packages/shell/src/frame (waybetter/shell/frame): the whole shell of an app. An app describes its site (ShellSite: names and pages, account rules, search, address chips and completions, its panel tab, the new-tab page, palette items, deck column kinds and flags and an optional compose dock, the media panel's composer rule, a theme store, overlays, the native features it serves) and passes its Tauri API and i18n instance; createShell returns the root component. - Shell.tsx: dockview host (tabs in the titlebar row, splits, drag-link drops, shortcuts, context menu, deck back-and-forth, session restore, workspace on start, overlay raise); state.ts (pane placeholders, tabs_sync one-in-flight via syncGate, shell_raise layer, profiles, layout). - WebPanel (address bar), NewTabPage, CommandPalette + paletteModel (frame groups; site items), DeckView + AddColumnDialog + deckStore (site column kinds), PaneTheme + themeStore (createThemeStore over the app's ThemeAdapter) + chromeTheme (ChromeTheme input) + themeScopes, Titlebar + TitlebarExtras + icons + brand (wB mark data URI), AccountSwitcher + accountModel, workspaces + workspaceModel, backupModel, syncHost, devHost + devModel, pluginCommandStore, MediaPanel + mediaModel, searchInput, hooks, bridge (installPreviewMocks), i18n, boot.ts (bootScript: the first-frame boot.js), CSS themed with --wb-* tokens. - paneModel: paneVisibility, raiseSupported, cssRgb; deckModel: isSourcePage. - Includes the live-QA titlebar fix (dock ResizeObserver + rAF titlebar marks, dock sized by its insets). - tests/frame.test.ts: every frame key has English and is used, palette order with a site, address fallback, layout gate, boot script, chrome variables, switcher rules, workspaces, deck settings with site flags. - npm package 0.4.0: exports ./shell/frame, ./shell/frame/*, ./shell/frame/*.css (copied by the build); dockview and acorn optional peers; root devDependencies dockview, acorn.
37 lines
1.6 KiB
JSON
37 lines
1.6 KiB
JSON
{
|
|
"name": "waybetter",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"license": "GPL-3.0-or-later",
|
|
"type": "module",
|
|
"description": "wayBetter: a framework for desktop apps that extend one website in place (tabs, splits, accounts, plugins, themes).",
|
|
"packageManager": "bun@1.4.2",
|
|
"workspaces": [
|
|
"packages/*"
|
|
],
|
|
"scripts": {
|
|
"typecheck": "tsc -p tsconfig.json && tsc -p packages/create-waybetter/tsconfig.json",
|
|
"test": "bun run test:ts && bun run test:rust && bun run test:create && bun run test:cli",
|
|
"test:ts": "node --test packages/runtime/tests/*.test.ts packages/shell/tests/*.test.ts",
|
|
"test:create": "node --test packages/create-waybetter/tests/*.test.mjs",
|
|
"test:cli": "node --test packages/waybetter/tests/*.test.mjs",
|
|
"test:rust": "cargo test --manifest-path crates/waybetter-host/Cargo.toml --locked --features net",
|
|
"check:tauri": "cargo check --manifest-path crates/waybetter-host/Cargo.toml --features app,net",
|
|
"build": "bun run typecheck && cargo build --manifest-path crates/waybetter-host/Cargo.toml --locked",
|
|
"build:packages": "cd packages/waybetter && npm run build",
|
|
"pack:check": "bun run build:packages && npm pack ./packages/waybetter --dry-run && npm pack ./packages/create-waybetter --dry-run",
|
|
"check": "bun run typecheck && bun run build:packages && bun run test"
|
|
},
|
|
"devDependencies": {
|
|
"@types/node": "^24.0.0",
|
|
"@types/react": "^19.0.0",
|
|
"@types/react-dom": "^19.0.0",
|
|
"acorn": "^8.15.0",
|
|
"dockview": "^4",
|
|
"typescript": "^5.9.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=24.0.0",
|
|
"bun": ">=1.4.2"
|
|
}
|
|
}
|