Moved from wayBetter for X so every wayBetter app gets the Store UI; the app passes its native
bridge, theme adapter, translator and (optionally) its own controls and button classes.
- storeModel.ts: wire types of the native store commands (InstallPreview, StoreCatalogView,
LinkEvent, StoreItem with `apps`), permission badges in the site's words, categories, item state
(install/installed/update/changed locally/built in), search, free theme ids, versions, previews.
- installController.ts: the install screen's state machine (links incl. those queued before the
shell listened, dropped files, store items, cancel, confirm), generic over the app's theme format
(`ThemeAdapter`: parse, ids, facts, save) and its bridge (`StoreBackend`: invoke/listen).
- InstallDialog.tsx (`InstallHost`): the screen (Install enabled after 1 s, Enter never installs,
tabs hidden via setOverlay) and the window-wide drop target. StoreView.tsx: search, kinds,
categories, cards, permission badges, install/update/remove; default controls or the app's.
- store.css: both, themed with framework `--wb-*` tokens (documented; dark defaults).
- storeMessages.ts + every framework catalog: 120 `wb.store.*`, `wb.install.*`, `wb.permission.*`
messages moved from the app catalogs with all existing translations; the six that named X take
`{site}`; generic words the components need copied with their translations.
- npm package: exports for the new modules and store.css, optional react/react-dom peers; @types
for the typecheck. Tests: models, controller flows with a fake bridge, every looked-up key exists.
14 lines
599 B
JSON
14 lines
599 B
JSON
{
|
|
"name": "@waybetter/shell",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"license": "GPL-3.0-or-later",
|
|
"type": "module",
|
|
"description": "wayBetter shell core: address bar, pane and link-drop models, profiles, update chip, command palette ranking, window controls, and the Store (install screen and Store view React components, install controller, catalog model). No dependencies (React is a peer of the two components). Published as part of the `waybetter` package (waybetter/shell/*).",
|
|
"exports": {
|
|
"./*": "./src/*"
|
|
},
|
|
"scripts": {
|
|
"test": "node --test tests/*.test.ts"
|
|
}
|
|
}
|