waybetter 0.1.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +139 -6
- package/bin/waybetter.mjs +43 -0
- package/build/runtime.mjs +105 -0
- package/cli/buildenv.mjs +130 -0
- package/cli/dev.mjs +97 -0
- package/cli/i18n.mjs +382 -0
- package/cli/manifests.mjs +383 -0
- package/cli/release.mjs +437 -0
- package/cli/releasecheck.mjs +15 -0
- package/cli/remote.mjs +260 -0
- package/cli/store.mjs +378 -0
- package/cli/strings.mjs +123 -0
- package/dist/runtime/column.d.ts +93 -0
- package/dist/runtime/column.js +451 -0
- package/dist/runtime/column.js.map +1 -0
- package/dist/runtime/commandReport.d.ts +19 -0
- package/dist/runtime/commandReport.js +47 -0
- package/dist/runtime/commandReport.js.map +1 -0
- package/dist/runtime/commands.d.ts +72 -0
- package/dist/runtime/commands.js +214 -0
- package/dist/runtime/commands.js.map +1 -0
- package/dist/runtime/devErrors.d.ts +16 -0
- package/dist/runtime/devErrors.js +30 -0
- package/dist/runtime/devErrors.js.map +1 -0
- package/dist/runtime/domHub.d.ts +21 -0
- package/dist/runtime/domHub.js +139 -4
- package/dist/runtime/domHub.js.map +1 -1
- package/dist/runtime/featureModules.d.ts +157 -0
- package/dist/runtime/featureModules.js +484 -0
- package/dist/runtime/featureModules.js.map +1 -0
- package/dist/runtime/featureTable.d.ts +144 -0
- package/dist/runtime/featureTable.js +223 -0
- package/dist/runtime/featureTable.js.map +1 -0
- package/dist/runtime/fonts.d.ts +22 -0
- package/dist/runtime/fonts.js +72 -0
- package/dist/runtime/fonts.js.map +1 -0
- package/dist/runtime/i18n.d.ts +138 -0
- package/dist/runtime/i18n.js +614 -0
- package/dist/runtime/i18n.js.map +1 -0
- package/dist/runtime/i18nCheck.d.ts +30 -0
- package/dist/runtime/i18nCheck.js +224 -0
- package/dist/runtime/i18nCheck.js.map +1 -0
- package/dist/runtime/pageLang.d.ts +8 -0
- package/dist/runtime/pageLang.js +64 -0
- package/dist/runtime/pageLang.js.map +1 -0
- package/dist/runtime/pageStrings.d.ts +35 -0
- package/dist/runtime/pageStrings.js +76 -0
- package/dist/runtime/pageStrings.js.map +1 -0
- package/dist/runtime/panelButton.d.ts +33 -0
- package/dist/runtime/panelButton.js +83 -0
- package/dist/runtime/panelButton.js.map +1 -0
- package/dist/runtime/permissions.d.ts +47 -0
- package/dist/runtime/permissions.js +141 -0
- package/dist/runtime/permissions.js.map +1 -0
- package/dist/runtime/pluginApi.d.ts +51 -2
- package/dist/runtime/pluginApi.js +137 -22
- package/dist/runtime/pluginApi.js.map +1 -1
- package/dist/runtime/pluginI18n.d.ts +29 -0
- package/dist/runtime/pluginI18n.js +119 -0
- package/dist/runtime/pluginI18n.js.map +1 -0
- package/dist/runtime/settingsForm.d.ts +66 -0
- package/dist/runtime/settingsForm.js +114 -0
- package/dist/runtime/settingsForm.js.map +1 -0
- package/dist/runtime/site.d.ts +5 -0
- package/dist/runtime/site.js +1 -1
- package/dist/runtime/site.js.map +1 -1
- package/dist/runtime/siteRuntime.d.ts +144 -0
- package/dist/runtime/siteRuntime.js +175 -0
- package/dist/runtime/siteRuntime.js.map +1 -0
- package/dist/runtime/stringPackHook.d.ts +84 -0
- package/dist/runtime/stringPackHook.js +220 -0
- package/dist/runtime/stringPackHook.js.map +1 -0
- package/dist/runtime/stringPackTranslate.d.ts +61 -0
- package/dist/runtime/stringPackTranslate.js +267 -0
- package/dist/runtime/stringPackTranslate.js.map +1 -0
- package/dist/runtime/stringPacks.d.ts +248 -0
- package/dist/runtime/stringPacks.js +610 -0
- package/dist/runtime/stringPacks.js.map +1 -0
- package/dist/runtime/styles.d.ts +15 -0
- package/dist/runtime/styles.js +81 -0
- package/dist/runtime/styles.js.map +1 -0
- package/dist/runtime/textNet.d.ts +15 -0
- package/dist/runtime/textNet.js +131 -0
- package/dist/runtime/textNet.js.map +1 -0
- package/dist/runtime/themeApi.d.ts +121 -0
- package/dist/runtime/themeApi.js +220 -0
- package/dist/runtime/themeApi.js.map +1 -0
- package/dist/runtime/themeBar.d.ts +28 -0
- package/dist/runtime/themeBar.js +82 -0
- package/dist/runtime/themeBar.js.map +1 -0
- package/dist/runtime/themeChoice.d.ts +52 -0
- package/dist/runtime/themeChoice.js +69 -0
- package/dist/runtime/themeChoice.js.map +1 -0
- package/dist/runtime/themeComponents.d.ts +435 -0
- package/dist/runtime/themeComponents.js +476 -0
- package/dist/runtime/themeComponents.js.map +1 -0
- package/dist/runtime/themeDecor.d.ts +73 -0
- package/dist/runtime/themeDecor.js +133 -0
- package/dist/runtime/themeDecor.js.map +1 -0
- package/dist/runtime/themeDerive.d.ts +69 -0
- package/dist/runtime/themeDerive.js +117 -0
- package/dist/runtime/themeDerive.js.map +1 -0
- package/dist/runtime/themeDoctor.d.ts +52 -0
- package/dist/runtime/themeDoctor.js +112 -0
- package/dist/runtime/themeDoctor.js.map +1 -0
- package/dist/runtime/themeGuards.d.ts +60 -0
- package/dist/runtime/themeGuards.js +235 -0
- package/dist/runtime/themeGuards.js.map +1 -0
- package/dist/runtime/themeIcons.d.ts +130 -0
- package/dist/runtime/themeIcons.js +271 -0
- package/dist/runtime/themeIcons.js.map +1 -0
- package/dist/runtime/themeInk.d.ts +37 -0
- package/dist/runtime/themeInk.js +111 -0
- package/dist/runtime/themeInk.js.map +1 -0
- package/dist/runtime/themeInvariants.d.ts +39 -0
- package/dist/runtime/themeInvariants.js +273 -0
- package/dist/runtime/themeInvariants.js.map +1 -0
- package/dist/runtime/themeRuntime.d.ts +114 -0
- package/dist/runtime/themeRuntime.js +570 -0
- package/dist/runtime/themeRuntime.js.map +1 -0
- package/dist/runtime/themeSchema.d.ts +10 -0
- package/dist/runtime/themeSchema.js +150 -0
- package/dist/runtime/themeSchema.js.map +1 -0
- package/dist/runtime/themeSpec.d.ts +263 -0
- package/dist/runtime/themeSpec.js +435 -0
- package/dist/runtime/themeSpec.js.map +1 -0
- package/dist/runtime/themeTokens.d.ts +12 -0
- package/dist/runtime/themeTokens.js +14 -6
- package/dist/runtime/themeTokens.js.map +1 -1
- package/dist/runtime/themeVariants.d.ts +30 -0
- package/dist/runtime/themeVariants.js +53 -0
- package/dist/runtime/themeVariants.js.map +1 -0
- package/dist/runtime/ui.d.ts +192 -0
- package/dist/runtime/ui.js +926 -0
- package/dist/runtime/ui.js.map +1 -0
- package/dist/shell/InstallDialog.d.ts +40 -0
- package/dist/shell/InstallDialog.js +176 -0
- package/dist/shell/InstallDialog.js.map +1 -0
- package/dist/shell/StoreView.d.ts +78 -0
- package/dist/shell/StoreView.js +108 -0
- package/dist/shell/StoreView.js.map +1 -0
- package/dist/shell/addressModel.js.map +1 -1
- package/dist/shell/chrome.js.map +1 -1
- package/dist/shell/deckModel.d.ts +117 -0
- package/dist/shell/deckModel.js +267 -0
- package/dist/shell/deckModel.js.map +1 -0
- package/dist/shell/frame/AccountSwitcher.d.ts +42 -0
- package/dist/shell/frame/AccountSwitcher.js +243 -0
- package/dist/shell/frame/AccountSwitcher.js.map +1 -0
- package/dist/shell/frame/AddColumnDialog.d.ts +8 -0
- package/dist/shell/frame/AddColumnDialog.js +81 -0
- package/dist/shell/frame/AddColumnDialog.js.map +1 -0
- package/dist/shell/frame/AppMenu.d.ts +44 -0
- package/dist/shell/frame/AppMenu.js +721 -0
- package/dist/shell/frame/AppMenu.js.map +1 -0
- package/dist/shell/frame/CommandPalette.d.ts +7 -0
- package/dist/shell/frame/CommandPalette.js +118 -0
- package/dist/shell/frame/CommandPalette.js.map +1 -0
- package/dist/shell/frame/DeckView.d.ts +13 -0
- package/dist/shell/frame/DeckView.js +287 -0
- package/dist/shell/frame/DeckView.js.map +1 -0
- package/dist/shell/frame/FindBar.d.ts +10 -0
- package/dist/shell/frame/FindBar.js +108 -0
- package/dist/shell/frame/FindBar.js.map +1 -0
- package/dist/shell/frame/MediaPanel.d.ts +8 -0
- package/dist/shell/frame/MediaPanel.js +76 -0
- package/dist/shell/frame/MediaPanel.js.map +1 -0
- package/dist/shell/frame/NewTabPage.d.ts +9 -0
- package/dist/shell/frame/NewTabPage.js +71 -0
- package/dist/shell/frame/NewTabPage.js.map +1 -0
- package/dist/shell/frame/PaneTheme.d.ts +16 -0
- package/dist/shell/frame/PaneTheme.js +67 -0
- package/dist/shell/frame/PaneTheme.js.map +1 -0
- package/dist/shell/frame/ReportDialog.d.ts +3 -0
- package/dist/shell/frame/ReportDialog.js +95 -0
- package/dist/shell/frame/ReportDialog.js.map +1 -0
- package/dist/shell/frame/Shell.d.ts +9 -0
- package/dist/shell/frame/Shell.js +1139 -0
- package/dist/shell/frame/Shell.js.map +1 -0
- package/dist/shell/frame/Titlebar.d.ts +17 -0
- package/dist/shell/frame/Titlebar.js +79 -0
- package/dist/shell/frame/Titlebar.js.map +1 -0
- package/dist/shell/frame/TitlebarExtras.d.ts +4 -0
- package/dist/shell/frame/TitlebarExtras.js +202 -0
- package/dist/shell/frame/TitlebarExtras.js.map +1 -0
- package/dist/shell/frame/WebPanel.d.ts +4 -0
- package/dist/shell/frame/WebPanel.js +185 -0
- package/dist/shell/frame/WebPanel.js.map +1 -0
- package/dist/shell/frame/accountModel.d.ts +49 -0
- package/dist/shell/frame/accountModel.js +67 -0
- package/dist/shell/frame/accountModel.js.map +1 -0
- package/dist/shell/frame/accountSwitcher.css +91 -0
- package/dist/shell/frame/appI18n.d.ts +44 -0
- package/dist/shell/frame/appI18n.js +64 -0
- package/dist/shell/frame/appI18n.js.map +1 -0
- package/dist/shell/frame/appMenu.css +127 -0
- package/dist/shell/frame/backupModel.d.ts +38 -0
- package/dist/shell/frame/backupModel.js +192 -0
- package/dist/shell/frame/backupModel.js.map +1 -0
- package/dist/shell/frame/boot.d.ts +8 -0
- package/dist/shell/frame/boot.js +37 -0
- package/dist/shell/frame/boot.js.map +1 -0
- package/dist/shell/frame/brand.d.ts +1 -0
- package/dist/shell/frame/brand.js +4 -0
- package/dist/shell/frame/brand.js.map +1 -0
- package/dist/shell/frame/bridge.d.ts +35 -0
- package/dist/shell/frame/bridge.js +70 -0
- package/dist/shell/frame/bridge.js.map +1 -0
- package/dist/shell/frame/chromeTheme.d.ts +47 -0
- package/dist/shell/frame/chromeTheme.js +118 -0
- package/dist/shell/frame/chromeTheme.js.map +1 -0
- package/dist/shell/frame/deck.css +209 -0
- package/dist/shell/frame/deckStore.d.ts +89 -0
- package/dist/shell/frame/deckStore.js +239 -0
- package/dist/shell/frame/deckStore.js.map +1 -0
- package/dist/shell/frame/devHost.d.ts +35 -0
- package/dist/shell/frame/devHost.js +80 -0
- package/dist/shell/frame/devHost.js.map +1 -0
- package/dist/shell/frame/devModel.d.ts +7 -0
- package/dist/shell/frame/devModel.js +17 -0
- package/dist/shell/frame/devModel.js.map +1 -0
- package/dist/shell/frame/diag.d.ts +7 -0
- package/dist/shell/frame/diag.js +39 -0
- package/dist/shell/frame/diag.js.map +1 -0
- package/dist/shell/frame/edges.css +159 -0
- package/dist/shell/frame/findBar.css +14 -0
- package/dist/shell/frame/frameMessages.d.ts +248 -0
- package/dist/shell/frame/frameMessages.js +252 -0
- package/dist/shell/frame/frameMessages.js.map +1 -0
- package/dist/shell/frame/hooks.d.ts +39 -0
- package/dist/shell/frame/hooks.js +97 -0
- package/dist/shell/frame/hooks.js.map +1 -0
- package/dist/shell/frame/i18n.d.ts +27 -0
- package/dist/shell/frame/i18n.js +66 -0
- package/dist/shell/frame/i18n.js.map +1 -0
- package/dist/shell/frame/iconPack.d.ts +11 -0
- package/dist/shell/frame/iconPack.js +45 -0
- package/dist/shell/frame/iconPack.js.map +1 -0
- package/dist/shell/frame/icons.d.ts +71 -0
- package/dist/shell/frame/icons.js +75 -0
- package/dist/shell/frame/icons.js.map +1 -0
- package/dist/shell/frame/index.d.ts +34 -0
- package/dist/shell/frame/index.js +43 -0
- package/dist/shell/frame/index.js.map +1 -0
- package/dist/shell/frame/language.d.ts +58 -0
- package/dist/shell/frame/language.js +165 -0
- package/dist/shell/frame/language.js.map +1 -0
- package/dist/shell/frame/mediaModel.d.ts +47 -0
- package/dist/shell/frame/mediaModel.js +67 -0
- package/dist/shell/frame/mediaModel.js.map +1 -0
- package/dist/shell/frame/menuMessages.en.json +96 -0
- package/dist/shell/frame/menuModel.d.ts +319 -0
- package/dist/shell/frame/menuModel.js +301 -0
- package/dist/shell/frame/menuModel.js.map +1 -0
- package/dist/shell/frame/nativeMenu.d.ts +5 -0
- package/dist/shell/frame/nativeMenu.js +178 -0
- package/dist/shell/frame/nativeMenu.js.map +1 -0
- package/dist/shell/frame/nativeMenuModel.d.ts +102 -0
- package/dist/shell/frame/nativeMenuModel.js +186 -0
- package/dist/shell/frame/nativeMenuModel.js.map +1 -0
- package/dist/shell/frame/paletteModel.d.ts +139 -0
- package/dist/shell/frame/paletteModel.js +114 -0
- package/dist/shell/frame/paletteModel.js.map +1 -0
- package/dist/shell/frame/paneTheme.css +9 -0
- package/dist/shell/frame/pluginCommandStore.d.ts +23 -0
- package/dist/shell/frame/pluginCommandStore.js +70 -0
- package/dist/shell/frame/pluginCommandStore.js.map +1 -0
- package/dist/shell/frame/reportModel.d.ts +52 -0
- package/dist/shell/frame/reportModel.js +105 -0
- package/dist/shell/frame/reportModel.js.map +1 -0
- package/dist/shell/frame/safeStore.d.ts +7 -0
- package/dist/shell/frame/safeStore.js +40 -0
- package/dist/shell/frame/safeStore.js.map +1 -0
- package/dist/shell/frame/searchInput.d.ts +2 -0
- package/dist/shell/frame/searchInput.js +11 -0
- package/dist/shell/frame/searchInput.js.map +1 -0
- package/dist/shell/frame/shell.css +634 -0
- package/dist/shell/frame/site.d.ts +206 -0
- package/dist/shell/frame/site.js +22 -0
- package/dist/shell/frame/site.js.map +1 -0
- package/dist/shell/frame/state.d.ts +101 -0
- package/dist/shell/frame/state.js +286 -0
- package/dist/shell/frame/state.js.map +1 -0
- package/dist/shell/frame/syncGate.d.ts +10 -0
- package/dist/shell/frame/syncGate.js +36 -0
- package/dist/shell/frame/syncGate.js.map +1 -0
- package/dist/shell/frame/syncHost.d.ts +35 -0
- package/dist/shell/frame/syncHost.js +85 -0
- package/dist/shell/frame/syncHost.js.map +1 -0
- package/dist/shell/frame/tabStill.d.ts +2 -0
- package/dist/shell/frame/tabStill.js +62 -0
- package/dist/shell/frame/tabStill.js.map +1 -0
- package/dist/shell/frame/themeScopes.d.ts +29 -0
- package/dist/shell/frame/themeScopes.js +61 -0
- package/dist/shell/frame/themeScopes.js.map +1 -0
- package/dist/shell/frame/themeStore.d.ts +99 -0
- package/dist/shell/frame/themeStore.js +267 -0
- package/dist/shell/frame/themeStore.js.map +1 -0
- package/dist/shell/frame/windowBinding.d.ts +2 -0
- package/dist/shell/frame/windowBinding.js +7 -0
- package/dist/shell/frame/windowBinding.js.map +1 -0
- package/dist/shell/frame/workspaceModel.d.ts +82 -0
- package/dist/shell/frame/workspaceModel.js +250 -0
- package/dist/shell/frame/workspaceModel.js.map +1 -0
- package/dist/shell/frame/workspaces.css +84 -0
- package/dist/shell/frame/workspaces.d.ts +22 -0
- package/dist/shell/frame/workspaces.js +125 -0
- package/dist/shell/frame/workspaces.js.map +1 -0
- package/dist/shell/frame/zoomStore.d.ts +10 -0
- package/dist/shell/frame/zoomStore.js +65 -0
- package/dist/shell/frame/zoomStore.js.map +1 -0
- package/dist/shell/installController.d.ts +137 -0
- package/dist/shell/installController.js +172 -0
- package/dist/shell/installController.js.map +1 -0
- package/dist/shell/installerMessages.d.ts +30 -0
- package/dist/shell/installerMessages.js +36 -0
- package/dist/shell/installerMessages.js.map +1 -0
- package/dist/shell/linkDrop.js.map +1 -1
- package/dist/shell/messages.d.ts +16 -0
- package/dist/shell/messages.js +27 -0
- package/dist/shell/messages.js.map +1 -0
- package/dist/shell/palette.js.map +1 -1
- package/dist/shell/paneModel.d.ts +22 -0
- package/dist/shell/paneModel.js +24 -1
- package/dist/shell/paneModel.js.map +1 -1
- package/dist/shell/panel/Appearance.d.ts +8 -0
- package/dist/shell/panel/Appearance.js +265 -0
- package/dist/shell/panel/Appearance.js.map +1 -0
- package/dist/shell/panel/BackupPanel.d.ts +5 -0
- package/dist/shell/panel/BackupPanel.js +198 -0
- package/dist/shell/panel/BackupPanel.js.map +1 -0
- package/dist/shell/panel/DeveloperPanel.d.ts +4 -0
- package/dist/shell/panel/DeveloperPanel.js +51 -0
- package/dist/shell/panel/DeveloperPanel.js.map +1 -0
- package/dist/shell/panel/FeatureToggles.d.ts +13 -0
- package/dist/shell/panel/FeatureToggles.js +42 -0
- package/dist/shell/panel/FeatureToggles.js.map +1 -0
- package/dist/shell/panel/Home.d.ts +3 -0
- package/dist/shell/panel/Home.js +23 -0
- package/dist/shell/panel/Home.js.map +1 -0
- package/dist/shell/panel/IconPackInstall.d.ts +15 -0
- package/dist/shell/panel/IconPackInstall.js +41 -0
- package/dist/shell/panel/IconPackInstall.js.map +1 -0
- package/dist/shell/panel/LanguageSettings.d.ts +1 -0
- package/dist/shell/panel/LanguageSettings.js +54 -0
- package/dist/shell/panel/LanguageSettings.js.map +1 -0
- package/dist/shell/panel/MakePanel.d.ts +3 -0
- package/dist/shell/panel/MakePanel.js +237 -0
- package/dist/shell/panel/MakePanel.js.map +1 -0
- package/dist/shell/panel/MarkdownDoc.d.ts +6 -0
- package/dist/shell/panel/MarkdownDoc.js +35 -0
- package/dist/shell/panel/MarkdownDoc.js.map +1 -0
- package/dist/shell/panel/Modes.d.ts +40 -0
- package/dist/shell/panel/Modes.js +270 -0
- package/dist/shell/panel/Modes.js.map +1 -0
- package/dist/shell/panel/NavIcon.d.ts +4 -0
- package/dist/shell/panel/NavIcon.js +6 -0
- package/dist/shell/panel/NavIcon.js.map +1 -0
- package/dist/shell/panel/Panel.d.ts +7 -0
- package/dist/shell/panel/Panel.js +139 -0
- package/dist/shell/panel/Panel.js.map +1 -0
- package/dist/shell/panel/PluginFeatures.d.ts +24 -0
- package/dist/shell/panel/PluginFeatures.js +165 -0
- package/dist/shell/panel/PluginFeatures.js.map +1 -0
- package/dist/shell/panel/Plugins.d.ts +33 -0
- package/dist/shell/panel/Plugins.js +112 -0
- package/dist/shell/panel/Plugins.js.map +1 -0
- package/dist/shell/panel/PowerSettings.d.ts +4 -0
- package/dist/shell/panel/PowerSettings.js +52 -0
- package/dist/shell/panel/PowerSettings.js.map +1 -0
- package/dist/shell/panel/Settings.d.ts +23 -0
- package/dist/shell/panel/Settings.js +117 -0
- package/dist/shell/panel/Settings.js.map +1 -0
- package/dist/shell/panel/ShareSetup.d.ts +8 -0
- package/dist/shell/panel/ShareSetup.js +130 -0
- package/dist/shell/panel/ShareSetup.js.map +1 -0
- package/dist/shell/panel/StoreSection.d.ts +7 -0
- package/dist/shell/panel/StoreSection.js +78 -0
- package/dist/shell/panel/StoreSection.js.map +1 -0
- package/dist/shell/panel/StringPacks.d.ts +20 -0
- package/dist/shell/panel/StringPacks.js +131 -0
- package/dist/shell/panel/StringPacks.js.map +1 -0
- package/dist/shell/panel/ThemeBuilder.d.ts +5 -0
- package/dist/shell/panel/ThemeBuilder.js +205 -0
- package/dist/shell/panel/ThemeBuilder.js.map +1 -0
- package/dist/shell/panel/backup.css +34 -0
- package/dist/shell/panel/builder.css +240 -0
- package/dist/shell/panel/builderModel.d.ts +55 -0
- package/dist/shell/panel/builderModel.js +95 -0
- package/dist/shell/panel/builderModel.js.map +1 -0
- package/dist/shell/panel/compare.d.ts +10 -0
- package/dist/shell/panel/compare.js +51 -0
- package/dist/shell/panel/compare.js.map +1 -0
- package/dist/shell/panel/controls.d.ts +135 -0
- package/dist/shell/panel/controls.js +213 -0
- package/dist/shell/panel/controls.js.map +1 -0
- package/dist/shell/panel/featureModel.d.ts +69 -0
- package/dist/shell/panel/featureModel.js +79 -0
- package/dist/shell/panel/featureModel.js.map +1 -0
- package/dist/shell/panel/fonts/FontBrowser.d.ts +10 -0
- package/dist/shell/panel/fonts/FontBrowser.js +189 -0
- package/dist/shell/panel/fonts/FontBrowser.js.map +1 -0
- package/dist/shell/panel/fonts/FontRoles.d.ts +20 -0
- package/dist/shell/panel/fonts/FontRoles.js +77 -0
- package/dist/shell/panel/fonts/FontRoles.js.map +1 -0
- package/dist/shell/panel/fonts/catalog.d.ts +37 -0
- package/dist/shell/panel/fonts/catalog.js +68 -0
- package/dist/shell/panel/fonts/catalog.js.map +1 -0
- package/dist/shell/panel/fonts/googleFontsCatalog.json +1 -0
- package/dist/shell/panel/index.d.ts +20 -0
- package/dist/shell/panel/index.js +34 -0
- package/dist/shell/panel/index.js.map +1 -0
- package/dist/shell/panel/languageModel.d.ts +5 -0
- package/dist/shell/panel/languageModel.js +7 -0
- package/dist/shell/panel/languageModel.js.map +1 -0
- package/dist/shell/panel/make.css +73 -0
- package/dist/shell/panel/makeModel.d.ts +32 -0
- package/dist/shell/panel/makeModel.js +84 -0
- package/dist/shell/panel/makeModel.js.map +1 -0
- package/dist/shell/panel/markdown.d.ts +46 -0
- package/dist/shell/panel/markdown.js +100 -0
- package/dist/shell/panel/markdown.js.map +1 -0
- package/dist/shell/panel/nav.d.ts +12 -0
- package/dist/shell/panel/nav.js +50 -0
- package/dist/shell/panel/nav.js.map +1 -0
- package/dist/shell/panel/panel.css +401 -0
- package/dist/shell/panel/panelMessages.d.ts +803 -0
- package/dist/shell/panel/panelMessages.js +779 -0
- package/dist/shell/panel/panelMessages.js.map +1 -0
- package/dist/shell/panel/plugins.css +59 -0
- package/dist/shell/panel/setupModel.d.ts +87 -0
- package/dist/shell/panel/setupModel.js +152 -0
- package/dist/shell/panel/setupModel.js.map +1 -0
- package/dist/shell/panel/site.d.ts +259 -0
- package/dist/shell/panel/site.js +25 -0
- package/dist/shell/panel/site.js.map +1 -0
- package/dist/shell/panel/strings.css +7 -0
- package/dist/shell/panel/themes.d.ts +10 -0
- package/dist/shell/panel/themes.js +8 -0
- package/dist/shell/panel/themes.js.map +1 -0
- package/dist/shell/profileModel.d.ts +3 -2
- package/dist/shell/profileModel.js +7 -5
- package/dist/shell/profileModel.js.map +1 -1
- package/dist/shell/store.css +250 -0
- package/dist/shell/storeMessages.d.ts +193 -0
- package/dist/shell/storeMessages.js +196 -0
- package/dist/shell/storeMessages.js.map +1 -0
- package/dist/shell/storeModel.d.ts +205 -0
- package/dist/shell/storeModel.js +146 -0
- package/dist/shell/storeModel.js.map +1 -0
- package/dist/shell/stringPacksModel.d.ts +44 -0
- package/dist/shell/stringPacksModel.js +99 -0
- package/dist/shell/stringPacksModel.js.map +1 -0
- package/dist/shell/updateModel.d.ts +2 -1
- package/dist/shell/updateModel.js +5 -4
- package/dist/shell/updateModel.js.map +1 -1
- package/dist/shell/windowControls.d.ts +4 -0
- package/dist/shell/windowControls.js +5 -0
- package/dist/shell/windowControls.js.map +1 -1
- package/i18n-config.schema.json +29 -0
- package/i18n-meta.schema.json +26 -0
- package/i18n.schema.json +42 -0
- package/icons.schema.json +655 -0
- package/languages.schema.json +23 -0
- package/locales/ar-x-fm.json +11 -0
- package/locales/ar.json +1388 -0
- package/locales/bg.json +1387 -0
- package/locales/bn.json +1387 -0
- package/locales/ca.json +1387 -0
- package/locales/cs.json +1387 -0
- package/locales/da.json +1387 -0
- package/locales/de.json +1387 -0
- package/locales/el.json +1387 -0
- package/locales/en-GB.json +27 -0
- package/locales/en.json +1386 -0
- package/locales/en.meta.json +51 -0
- package/locales/es.json +1387 -0
- package/locales/eu.json +1387 -0
- package/locales/fa.json +1388 -0
- package/locales/fi.json +1387 -0
- package/locales/fil.json +1387 -0
- package/locales/fr.json +1387 -0
- package/locales/ga.json +1387 -0
- package/locales/gl.json +1387 -0
- package/locales/gu.json +1387 -0
- package/locales/ha.json +1387 -0
- package/locales/he.json +1388 -0
- package/locales/hi.json +1387 -0
- package/locales/hr.json +1387 -0
- package/locales/hu.json +1387 -0
- package/locales/id.json +1387 -0
- package/locales/ig.json +1387 -0
- package/locales/it.json +1387 -0
- package/locales/ja.json +1387 -0
- package/locales/kn.json +1387 -0
- package/locales/ko.json +1387 -0
- package/locales/mr.json +1387 -0
- package/locales/ms.json +1387 -0
- package/locales/nb.json +1387 -0
- package/locales/nl.json +1387 -0
- package/locales/pl.json +1387 -0
- package/locales/pt.json +1387 -0
- package/locales/ro.json +1387 -0
- package/locales/ru.json +1387 -0
- package/locales/sk.json +1387 -0
- package/locales/sr.json +1387 -0
- package/locales/sv.json +1387 -0
- package/locales/ta.json +1387 -0
- package/locales/th.json +1387 -0
- package/locales/tr.json +1387 -0
- package/locales/uk.json +1387 -0
- package/locales/ur.json +1388 -0
- package/locales/vi.json +1387 -0
- package/locales/yo.json +1387 -0
- package/locales/zh-Hans.json +1387 -0
- package/locales/zh-Hant.json +1387 -0
- package/package.json +138 -5
- package/store-catalog.schema.json +78 -0
- package/theme.schema.json +4668 -0
- package/windows/installer.nsi +946 -0
- package/windows/languages/Basque.nsh +28 -0
- package/windows/languages/Catalan.nsh +28 -0
- package/windows/languages/Croatian.nsh +28 -0
- package/windows/languages/Czech.nsh +28 -0
- package/windows/languages/Danish.nsh +28 -0
- package/windows/languages/Finnish.nsh +28 -0
- package/windows/languages/Galician.nsh +28 -0
- package/windows/languages/Greek.nsh +28 -0
- package/windows/languages/Hungarian.nsh +28 -0
- package/windows/languages/Indonesian.nsh +28 -0
- package/windows/languages/Irish.nsh +28 -0
- package/windows/languages/Malay.nsh +28 -0
- package/windows/languages/Polish.nsh +28 -0
- package/windows/languages/Romanian.nsh +28 -0
- package/windows/languages/Serbian.nsh +28 -0
- package/windows/languages/Slovak.nsh +28 -0
- package/windows/languages/Thai.nsh +28 -0
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/* wayBetter Store view (StoreView.tsx, `.wbs`), install screen and window drop target
|
|
2
|
+
(InstallDialog.tsx, `.wbi*`). Themed with the framework tokens below; an app maps them to its own
|
|
3
|
+
theme on `.wbs, .wbi-backdrop, .wbi-drop` (the screen is portaled to <body>). Defaults: a dark
|
|
4
|
+
neutral look, so the components work before an app themes them.
|
|
5
|
+
|
|
6
|
+
Tokens: --wb-text, --wb-text-2, --wb-text-rgb, --wb-muted, --wb-faint, --wb-elevated (screen),
|
|
7
|
+
--wb-card, --wb-field, --wb-ground (code), --wb-border, --wb-border-soft, --wb-border-strong,
|
|
8
|
+
--wb-hover, --wb-press, --wb-accent, --wb-accent-rgb, --wb-accent-soft, --wb-accent-ink,
|
|
9
|
+
--wb-on-accent, --wb-ok, --wb-warn, --wb-font, --wb-font-mono, --wb-shadow-pop, --wb-ring,
|
|
10
|
+
--wb-t2, --wb-t3, --wb-ease, --wb-ease-out. */
|
|
11
|
+
|
|
12
|
+
:where(.wbs, .wbi-backdrop, .wbi-drop) {
|
|
13
|
+
--wb-text: #eef0f7; --wb-text-2: #c3c7d4; --wb-text-rgb: 238 240 247; --wb-muted: #8a90a6; --wb-faint: #5d6379;
|
|
14
|
+
--wb-elevated: #0d1017; --wb-card: #0d1017; --wb-field: #11141c; --wb-ground: #07080c;
|
|
15
|
+
--wb-border: #1e2333; --wb-border-soft: #161a26; --wb-border-strong: #2a3044;
|
|
16
|
+
--wb-hover: rgb(238 240 247 / .06); --wb-press: rgb(238 240 247 / .1);
|
|
17
|
+
--wb-accent: #1d9bf0; --wb-accent-rgb: 29 155 240; --wb-accent-soft: rgb(29 155 240 / .14); --wb-accent-ink: #cfe6ff; --wb-on-accent: #fff;
|
|
18
|
+
--wb-ok: #3ecf8e; --wb-warn: #ffb020;
|
|
19
|
+
/* Status words on any card: the status hue pulled toward the text colour, so green/amber text stays
|
|
20
|
+
readable on light and silver themes too (a raw #3ecf8e was 1.03:1 on Windows 98 silver). */
|
|
21
|
+
--wb-ok-ink: color-mix(in oklab, var(--wb-ok) 42%, var(--wb-text)); --wb-warn-ink: color-mix(in oklab, var(--wb-warn) 42%, var(--wb-text));
|
|
22
|
+
--wb-danger-ink: color-mix(in oklab, #ff5c6c 50%, var(--wb-text));
|
|
23
|
+
--wb-font: system-ui, sans-serif; --wb-font-mono: ui-monospace, monospace;
|
|
24
|
+
--wb-shadow-pop: 0 18px 44px -14px rgba(0, 0, 0, .75), 0 3px 10px rgba(0, 0, 0, .35);
|
|
25
|
+
--wb-ring: 0 0 0 2px rgb(29 155 240 / .6);
|
|
26
|
+
--wb-t2: 160ms; --wb-t3: 240ms; --wb-ease: ease; --wb-ease-out: cubic-bezier(.2, .8, .2, 1);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* ---- Install screen ------------------------------------------------------------------------- */
|
|
30
|
+
|
|
31
|
+
.wbi-backdrop {
|
|
32
|
+
position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 28px 16px;
|
|
33
|
+
background: rgba(3, 4, 7, .6);
|
|
34
|
+
animation: wbi-fade var(--wb-t2) var(--wb-ease-out);
|
|
35
|
+
}
|
|
36
|
+
.wbi {
|
|
37
|
+
width: min(760px, 100%); max-height: min(88vh, 900px); display: flex; flex-direction: column;
|
|
38
|
+
background: var(--wb-elevated); color: var(--wb-text); border-radius: 16px;
|
|
39
|
+
box-shadow: var(--wb-shadow-pop), 0 0 0 1px var(--wb-border-strong);
|
|
40
|
+
font: 400 13px/1.45 var(--wb-font); overflow: hidden;
|
|
41
|
+
animation: wbi-rise var(--wb-t3) var(--wb-ease-out);
|
|
42
|
+
}
|
|
43
|
+
@keyframes wbi-fade { from { opacity: 0; } }
|
|
44
|
+
@keyframes wbi-rise { from { opacity: 0; transform: translateY(8px) scale(.985); } }
|
|
45
|
+
@media (prefers-reduced-motion: reduce) { .wbi, .wbi-backdrop { animation: none; } }
|
|
46
|
+
|
|
47
|
+
.wbi-head { display: flex; align-items: flex-start; gap: 14px; padding-block: 20px 14px; padding-inline: 22px 18px; border-bottom: 1px solid var(--wb-border-soft); }
|
|
48
|
+
.wbi-tile {
|
|
49
|
+
flex: none; width: 48px; height: 48px; border-radius: 13px; display: grid; place-items: center;
|
|
50
|
+
background: var(--wb-accent-soft); color: var(--wb-accent); box-shadow: inset 0 0 0 1px rgb(var(--wb-accent-rgb) / .35);
|
|
51
|
+
}
|
|
52
|
+
.wbi-title { min-width: 0; flex: 1; }
|
|
53
|
+
.wbi-eyebrow { display: block; font: 600 11px/1 var(--wb-font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--wb-muted); margin: 3px 0 7px; }
|
|
54
|
+
.wbi-title h2 { margin: 0; font: 700 21px/1.15 var(--wb-font); letter-spacing: -.02em; overflow-wrap: anywhere; }
|
|
55
|
+
.wbi-title p { margin: 5px 0 0; color: var(--wb-text-2); font-size: 13px; }
|
|
56
|
+
.wbi-close { flex: none; }
|
|
57
|
+
|
|
58
|
+
.wbi-body { overflow-y: auto; padding: 16px 22px 18px; display: grid; gap: 14px; min-height: 0; }
|
|
59
|
+
|
|
60
|
+
.wbi-source {
|
|
61
|
+
display: flex; align-items: center; gap: 12px; padding-block: 11px; padding-inline: 14px 12px; border-radius: 12px;
|
|
62
|
+
background: var(--wb-field); box-shadow: inset 0 0 0 1px var(--wb-border);
|
|
63
|
+
}
|
|
64
|
+
.wbi-source > svg { flex: none; color: var(--wb-muted); }
|
|
65
|
+
.wbi-source.is-store > svg { color: var(--wb-ok-ink); }
|
|
66
|
+
.wbi-source > div { min-width: 0; flex: 1; display: grid; gap: 2px; }
|
|
67
|
+
.wbi-source strong { font-weight: 600; }
|
|
68
|
+
.wbi-source code { font: 12px/1.4 var(--wb-font-mono); color: var(--wb-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
69
|
+
.wbi-verified {
|
|
70
|
+
flex: none; display: inline-flex; align-items: center; gap: 5px; padding-block: 4px; padding-inline: 7px 9px; border-radius: 999px;
|
|
71
|
+
font: 600 11.5px/1 var(--wb-font); color: var(--wb-ok-ink); background: rgb(62 207 142 / .12); box-shadow: inset 0 0 0 1px rgb(62 207 142 / .35);
|
|
72
|
+
}
|
|
73
|
+
.wbi-desc { margin: 0; color: var(--wb-text-2); }
|
|
74
|
+
|
|
75
|
+
.wbi-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px 16px; margin: 0; }
|
|
76
|
+
.wbi-fact { min-width: 0; }
|
|
77
|
+
.wbi-fact.is-wide { grid-column: 1 / -1; }
|
|
78
|
+
.wbi-fact dt { font: 600 10.5px/1 var(--wb-font-mono); letter-spacing: .07em; text-transform: uppercase; color: var(--wb-faint); margin-bottom: 5px; }
|
|
79
|
+
.wbi-fact dd { margin: 0; display: flex; align-items: center; gap: 8px; overflow-wrap: anywhere; }
|
|
80
|
+
.wbi-hash { font: 12px/1.45 var(--wb-font-mono); color: var(--wb-text-2); word-break: break-all; }
|
|
81
|
+
.wbi-copy {
|
|
82
|
+
flex: none; display: grid; place-items: center; width: 26px; height: 26px; border-radius: 7px; border: 0;
|
|
83
|
+
background: var(--wb-hover); color: var(--wb-muted); cursor: pointer;
|
|
84
|
+
}
|
|
85
|
+
.wbi-copy:hover { background: var(--wb-press); color: var(--wb-text); }
|
|
86
|
+
|
|
87
|
+
.wbi-perms h3 { margin: 0 0 8px; font: 650 13px/1.2 var(--wb-font); }
|
|
88
|
+
.wbi-perms ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
|
|
89
|
+
.wbi-perms li { display: grid; grid-template-columns: minmax(118px, auto) 1fr; gap: 10px; align-items: baseline; color: var(--wb-text-2); }
|
|
90
|
+
.wbi-chip {
|
|
91
|
+
justify-self: start; padding: 3px 9px; border-radius: 999px; font: 600 11.5px/1.3 var(--wb-font);
|
|
92
|
+
background: rgb(var(--wb-text-rgb) / .07); color: var(--wb-text); box-shadow: inset 0 0 0 1px var(--wb-border-strong);
|
|
93
|
+
}
|
|
94
|
+
.wbi-perms li.is-warn .wbi-chip { background: rgb(255 176 32 / .12); color: var(--wb-warn-ink); box-shadow: inset 0 0 0 1px rgb(255 176 32 / .35); }
|
|
95
|
+
.wbi-perms li.is-ok .wbi-chip { background: rgb(62 207 142 / .12); color: var(--wb-ok-ink); box-shadow: inset 0 0 0 1px rgb(62 207 142 / .32); }
|
|
96
|
+
.wbi-note { display: flex; gap: 8px; margin: 10px 0 0; padding: 9px 11px; border-radius: 10px; color: var(--wb-text-2); background: rgb(var(--wb-text-rgb) / .035); font-size: 12.5px; }
|
|
97
|
+
.wbi-note svg { flex: none; margin-top: 2px; color: var(--wb-warn-ink); }
|
|
98
|
+
.wbi-findings { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; font-size: 12.5px; color: var(--wb-text-2); }
|
|
99
|
+
.wbi-findings strong { margin-inline-end: 2px; }
|
|
100
|
+
.wbi-findings span { padding: 2px 8px; border-radius: 6px; background: rgb(255 176 32 / .1); color: var(--wb-warn-ink); }
|
|
101
|
+
|
|
102
|
+
.wbi-theme { display: grid; gap: 8px; }
|
|
103
|
+
.wbi-theme-preview { border-radius: 12px; overflow: hidden; box-shadow: 0 0 0 1px var(--wb-border); }
|
|
104
|
+
.wbi-warnings { margin: 0; padding-inline-start: 18px; color: var(--wb-warn-ink); font-size: 12.5px; }
|
|
105
|
+
|
|
106
|
+
.wbi-code { direction: ltr; border-radius: 12px; background: var(--wb-ground); box-shadow: inset 0 0 0 1px var(--wb-border); overflow: hidden; }
|
|
107
|
+
.wbi-code header { display: flex; justify-content: space-between; align-items: baseline; padding: 9px 12px; border-bottom: 1px solid var(--wb-border-soft); font-weight: 600; }
|
|
108
|
+
.wbi-code header small { color: var(--wb-faint); font: 11.5px var(--wb-font-mono); }
|
|
109
|
+
.wbi-code pre { margin: 0; max-height: 280px; overflow: auto; padding: 8px 0; font: 12px/1.55 var(--wb-font-mono); color: var(--wb-text-2); }
|
|
110
|
+
.wbi-code pre:focus-visible { outline: none; box-shadow: var(--wb-ring); }
|
|
111
|
+
.wbi-line { display: block; white-space: pre; padding-right: 14px; } /* rtl-ok: code is always left to right (.wbi-code is dir=ltr) */
|
|
112
|
+
.wbi-line i { display: inline-block; width: 44px; padding-right: 12px; text-align: right; font-style: normal; color: var(--wb-faint); user-select: none; } /* rtl-ok: code line numbers */
|
|
113
|
+
.wbi-more { width: 100%; border: 0; border-top: 1px solid var(--wb-border-soft); padding: 8px; background: transparent; color: var(--wb-accent-ink); font: 600 12px var(--wb-font); cursor: pointer; }
|
|
114
|
+
.wbi-more:hover { background: var(--wb-hover); }
|
|
115
|
+
|
|
116
|
+
.wbi-foot { display: flex; align-items: center; gap: 10px; padding-block: 12px 14px; padding-inline: 22px 18px; border-top: 1px solid var(--wb-border-soft); background: rgb(var(--wb-text-rgb) / .015); }
|
|
117
|
+
.wbi-foot-end { flex: 1; }
|
|
118
|
+
.wbi-check { display: inline-flex; align-items: center; gap: 8px; color: var(--wb-text-2); cursor: pointer; user-select: none; }
|
|
119
|
+
.wbi-check input { width: 15px; height: 15px; accent-color: var(--wb-accent); }
|
|
120
|
+
.wbi-install { position: relative; min-width: 104px; justify-content: center; overflow: hidden; }
|
|
121
|
+
.wbi-install.is-arming::after {
|
|
122
|
+
content: ''; position: absolute; left: 0; bottom: 0; height: 2px; width: 100%; background: rgb(255 255 255 / .7);
|
|
123
|
+
transform-origin: left; animation: wbi-arm 1s linear forwards;
|
|
124
|
+
}
|
|
125
|
+
@keyframes wbi-arm { from { transform: scaleX(0); } to { transform: scaleX(1); } }
|
|
126
|
+
|
|
127
|
+
.wbi-state { display: grid; justify-items: center; text-align: center; gap: 8px; padding: 34px 32px 26px; }
|
|
128
|
+
.wbi-state h2 { margin: 6px 0 0; font: 700 19px/1.2 var(--wb-font); letter-spacing: -.015em; }
|
|
129
|
+
.wbi-state p { margin: 0; max-width: 480px; color: var(--wb-text-2); }
|
|
130
|
+
.wbi-state .wbi-muted { color: var(--wb-muted); font-size: 12.5px; }
|
|
131
|
+
.wbi-state-actions { display: flex; gap: 10px; margin-top: 14px; }
|
|
132
|
+
.wbi-state-icon { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; }
|
|
133
|
+
.wbi-state-icon.is-ok { color: var(--wb-ok-ink); background: rgb(62 207 142 / .12); box-shadow: inset 0 0 0 1px rgb(62 207 142 / .35); }
|
|
134
|
+
.wbi-state-icon.is-warn { color: var(--wb-warn-ink); background: rgb(255 176 32 / .12); box-shadow: inset 0 0 0 1px rgb(255 176 32 / .35); }
|
|
135
|
+
.wbi-spinner { width: 34px; height: 34px; border-radius: 50%; border: 3px solid rgb(var(--wb-text-rgb) / .1); border-top-color: var(--wb-accent); animation: wbi-spin .8s linear infinite; }
|
|
136
|
+
@keyframes wbi-spin { to { transform: rotate(360deg); } }
|
|
137
|
+
|
|
138
|
+
.wbi-drop {
|
|
139
|
+
position: fixed; inset: 0; z-index: 95; display: grid; place-items: center; padding: 24px; pointer-events: none;
|
|
140
|
+
background: rgb(var(--wb-accent-rgb) / .1);
|
|
141
|
+
box-shadow: inset 0 0 0 3px rgb(var(--wb-accent-rgb) / .7);
|
|
142
|
+
}
|
|
143
|
+
.wbi-drop > div {
|
|
144
|
+
display: grid; justify-items: center; gap: 8px; max-width: 420px; padding: 26px 30px; border-radius: 16px; text-align: center;
|
|
145
|
+
background: var(--wb-elevated); box-shadow: var(--wb-shadow-pop), 0 0 0 1px var(--wb-border-strong); color: var(--wb-text-2);
|
|
146
|
+
}
|
|
147
|
+
.wbi-drop svg { color: var(--wb-accent); }
|
|
148
|
+
.wbi-drop strong { font: 700 17px/1.2 var(--wb-font); color: var(--wb-text); }
|
|
149
|
+
.wbi-drop code { font: 12px var(--wb-font-mono); color: var(--wb-accent-ink); }
|
|
150
|
+
|
|
151
|
+
@media (max-width: 560px) {
|
|
152
|
+
.wbi-perms li { grid-template-columns: 1fr; gap: 3px; }
|
|
153
|
+
.wbi-head { padding-block: 16px 12px; padding-inline: 16px 12px; }
|
|
154
|
+
.wbi-body { padding: 14px 16px; }
|
|
155
|
+
.wbi-foot { flex-wrap: wrap; padding: 12px 16px; }
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/* ---- Store view ----------------------------------------------------------------------------- */
|
|
159
|
+
|
|
160
|
+
.wbs { display: grid; gap: 14px; }
|
|
161
|
+
.wbs-intro { margin: -4px 0 0; color: var(--wb-muted); max-width: 720px; }
|
|
162
|
+
.wbs-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
|
|
163
|
+
.wbs-toolbar > :first-child { flex: 1 1 240px; min-width: 0; }
|
|
164
|
+
.wbs-cats { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
|
|
165
|
+
.wbs-cats button {
|
|
166
|
+
height: 28px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--wb-border); background: transparent;
|
|
167
|
+
color: var(--wb-text-2); font: 540 12.5px/1 inherit; cursor: pointer; transition: background-color .15s, border-color .15s;
|
|
168
|
+
}
|
|
169
|
+
.wbs-cats button:hover { background: var(--wb-field); }
|
|
170
|
+
.wbs-cats button.is-on { background: var(--wb-accent-soft); border-color: rgb(var(--wb-accent-rgb) / .45); color: var(--wb-text); }
|
|
171
|
+
.wbs-cats-end { flex: 1; }
|
|
172
|
+
.wbs-status { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--wb-muted); }
|
|
173
|
+
.wbs-status.is-ok svg { color: var(--wb-ok); }
|
|
174
|
+
.wbs-status.is-warn { color: var(--wb-warn-ink); }
|
|
175
|
+
.wbs-updates {
|
|
176
|
+
display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; padding: 10px 14px; border-radius: 12px;
|
|
177
|
+
background: var(--wb-accent-soft); border: 1px solid rgb(var(--wb-accent-rgb) / .35); color: var(--wb-text-2);
|
|
178
|
+
}
|
|
179
|
+
.wbs-updates strong { color: var(--wb-text); }
|
|
180
|
+
|
|
181
|
+
.wbs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
|
|
182
|
+
.wbs-card {
|
|
183
|
+
display: flex; flex-direction: column; min-width: 0; border-radius: 14px; overflow: hidden;
|
|
184
|
+
background: var(--wb-card); border: 1px solid var(--wb-border); transition: border-color .15s, transform .15s var(--wb-ease, ease);
|
|
185
|
+
}
|
|
186
|
+
.wbs-card:hover { border-color: var(--wb-border-strong); }
|
|
187
|
+
.wbs-card.is-skeleton { height: 290px; background: linear-gradient(100deg, var(--wb-card) 30%, var(--wb-field) 50%, var(--wb-card) 70%) 0 0 / 300% 100%; animation: wbs-shimmer 1.4s linear infinite; }
|
|
188
|
+
@keyframes wbs-shimmer { to { background-position: -150% 0; } }
|
|
189
|
+
@media (prefers-reduced-motion: reduce) { .wbs-card.is-skeleton { animation: none; } }
|
|
190
|
+
.wbs-img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; background: var(--wb-field); border-bottom: 1px solid var(--wb-border-soft); }
|
|
191
|
+
.wbs-swatch { position: relative; display: grid; place-items: center; }
|
|
192
|
+
.wbs-swatch span { position: absolute; left: 22%; right: 22%; top: 16%; bottom: 0; border-radius: 10px 10px 0 0; border: 0 solid; opacity: .95; }
|
|
193
|
+
.wbs-swatch i { position: absolute; left: 30%; width: 34%; top: 32%; height: 8px; border-radius: 4px; opacity: .8; }
|
|
194
|
+
.wbs-swatch b { position: absolute; left: 30%; width: 18%; top: 50%; height: 18px; border-radius: 9px; }
|
|
195
|
+
.wbs-swatch strong { font: 700 42px/1 inherit; color: var(--wb-muted); }
|
|
196
|
+
.wbs-card-body { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px 14px; flex: 1; }
|
|
197
|
+
.wbs-card-body header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
|
|
198
|
+
.wbs-card-body h3 { margin: 0; font: 650 15px/1.2 inherit; letter-spacing: -.01em; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
199
|
+
.wbs-meta { margin: 0; color: var(--wb-muted); font-size: 12px; }
|
|
200
|
+
.wbs-desc { margin: 0; color: var(--wb-text-2); font-size: 12.5px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
|
|
201
|
+
.wbs-perms { display: flex; flex-wrap: wrap; gap: 5px; list-style: none; margin: 2px 0 0; padding: 0; }
|
|
202
|
+
.wbs-perms li { padding: 2px 8px; border-radius: 999px; font-size: 11px; line-height: 1.5; color: var(--wb-text-2); background: rgb(var(--wb-text-rgb) / .06); border: 1px solid var(--wb-border); }
|
|
203
|
+
.wbs-perms li.is-warn { color: var(--wb-warn-ink); border-color: color-mix(in srgb, var(--wb-warn) 40%, transparent); background: color-mix(in srgb, var(--wb-warn) 10%, transparent); }
|
|
204
|
+
.wbs-perms li.is-ok { color: var(--wb-ok-ink); border-color: color-mix(in srgb, var(--wb-ok) 35%, transparent); background: color-mix(in srgb, var(--wb-ok) 9%, transparent); }
|
|
205
|
+
.wbs-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: auto; padding-top: 8px; }
|
|
206
|
+
.wbs-state { font-size: 12px; color: var(--wb-muted); margin-inline-end: auto; }
|
|
207
|
+
.wbs-state.is-ok { color: var(--wb-ok-ink); }
|
|
208
|
+
.wbs-foot { margin: 4px 0 0; color: var(--wb-muted); font-size: 12.5px; }
|
|
209
|
+
.wbs-foot code { font-family: var(--wb-font-mono, ui-monospace, monospace); color: var(--wb-text-2); }
|
|
210
|
+
|
|
211
|
+
/* ---- Default controls (an app usually passes its own) ---------------------------------------- */
|
|
212
|
+
|
|
213
|
+
.wb-btn {
|
|
214
|
+
display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 14px; border-radius: 9px; cursor: pointer;
|
|
215
|
+
border: 1px solid var(--wb-border-strong); background: var(--wb-field); color: var(--wb-text); font: 600 12.5px/1 var(--wb-font);
|
|
216
|
+
}
|
|
217
|
+
.wb-btn.is-sm { height: 28px; padding: 0 11px; }
|
|
218
|
+
.wb-btn:hover:not(:disabled) { background: var(--wb-press); }
|
|
219
|
+
.wb-btn:disabled { opacity: .5; cursor: default; }
|
|
220
|
+
.wb-btn.is-primary { background: var(--wb-accent); border-color: transparent; color: var(--wb-on-accent); }
|
|
221
|
+
.wb-btn.is-ghost { background: transparent; border-color: transparent; color: var(--wb-text-2); }
|
|
222
|
+
.wb-btn.is-danger { background: color-mix(in srgb, #f4212e 16%, transparent); border-color: color-mix(in srgb, #f4212e 45%, transparent); color: var(--wb-danger-ink); }
|
|
223
|
+
.wb-icon-btn { display: grid; place-items: center; width: 30px; height: 30px; border: 0; border-radius: 8px; background: transparent; color: var(--wb-muted); cursor: pointer; }
|
|
224
|
+
.wb-icon-btn:hover { background: var(--wb-hover); color: var(--wb-text); }
|
|
225
|
+
.wb-field { height: 32px; padding: 0 12px; border-radius: 9px; border: 1px solid var(--wb-border); background: var(--wb-field); color: var(--wb-text); font: 13px var(--wb-font); }
|
|
226
|
+
.wb-segmented { display: inline-flex; gap: 2px; padding: 2px; border-radius: 9px; background: var(--wb-field); border: 1px solid var(--wb-border); }
|
|
227
|
+
.wb-segmented button { height: 26px; padding: 0 12px; border: 0; border-radius: 7px; background: transparent; color: var(--wb-text-2); font: 600 12px/1 var(--wb-font); cursor: pointer; }
|
|
228
|
+
.wb-segmented button.is-on { background: var(--wb-accent-soft); color: var(--wb-text); }
|
|
229
|
+
.wb-empty { display: grid; justify-items: center; gap: 8px; padding: 32px 16px; text-align: center; color: var(--wb-text-2); }
|
|
230
|
+
.wb-empty p { margin: 0; max-width: 460px; color: var(--wb-muted); }
|
|
231
|
+
.wb-badge { padding: 2px 8px; border-radius: 999px; font: 600 11px/1.4 var(--wb-font); color: var(--wb-text-2); background: rgb(var(--wb-text-rgb) / .07); }
|
|
232
|
+
|
|
233
|
+
/* String packs on the install screen: what is ignored or cannot be replaced yet. */
|
|
234
|
+
.wbi-strings-notes { margin: 6px 0 0; padding-left: 18px; color: var(--wb-muted, inherit); font-size: 12.5px; }
|
|
235
|
+
|
|
236
|
+
/* Icon packs on the install screen: every drawing of the pack, as the shell will draw it. */
|
|
237
|
+
.wbi-pack-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(32px, 1fr)); gap: 6px; padding: 8px 0 0; }
|
|
238
|
+
.wbi-pack-grid span { display: grid; place-items: center; height: 32px; border-radius: 8px; background: rgb(var(--wb-text-rgb) / .06); color: var(--wb-text); }
|
|
239
|
+
.wbi-pack-grid svg { width: 20px; height: 20px; }
|
|
240
|
+
|
|
241
|
+
/* The switch of a built-in (area plugin) item in the Store. */
|
|
242
|
+
.wbs-switch { position: relative; display: inline-block; width: 34px; height: 20px; flex: none; cursor: pointer; }
|
|
243
|
+
.wbs-switch input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
|
|
244
|
+
.wbs-switch span { position: absolute; inset: 0; border-radius: 999px; background: rgb(var(--wb-text-rgb) / .22); transition: background .15s; pointer-events: none; }
|
|
245
|
+
.wbs-switch span::after { content: ''; position: absolute; top: 2px; inset-inline-start: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .15s; }
|
|
246
|
+
.wbs-switch input:checked + span { background: var(--wb-accent, #1d9bf0); }
|
|
247
|
+
.wbs-switch input:checked + span::after { transform: translateX(14px); }
|
|
248
|
+
.wbs-switch input:focus-visible + span { outline: 2px solid var(--wb-accent, #1d9bf0); outline-offset: 2px; }
|
|
249
|
+
[dir="rtl"] .wbs-switch input:checked + span::after { transform: translateX(-14px); }
|
|
250
|
+
@media (prefers-reduced-motion: reduce) { .wbs-switch span, .wbs-switch span::after { transition: none; } }
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
export declare const STORE_MESSAGES: {
|
|
2
|
+
readonly 'wb.permission.storage.label': "Storage";
|
|
3
|
+
readonly 'wb.permission.storage.detail': "Keeps its own settings in this app (api.storage).";
|
|
4
|
+
readonly 'wb.permission.ui.label': "Dialogs";
|
|
5
|
+
readonly 'wb.permission.ui.detail': "Shows dialogs, prompts and notifications (api.ui, api.toast).";
|
|
6
|
+
readonly 'wb.permission.clipboard.label': "Clipboard";
|
|
7
|
+
readonly 'wb.permission.clipboard.detail': "Copies text to your clipboard (api.copyText).";
|
|
8
|
+
readonly 'wb.permission.account.label': "Your account";
|
|
9
|
+
readonly 'wb.permission.account.detail': "Reads which {site} account is signed in: handle, name, avatar (api.account).";
|
|
10
|
+
readonly 'wb.permission.commands.label': "Commands";
|
|
11
|
+
readonly 'wb.permission.commands.detail': "Adds commands to the command palette (Ctrl+K) that run in this page (api.commands).";
|
|
12
|
+
readonly 'wb.permission.users.label': "Account details";
|
|
13
|
+
readonly 'wb.permission.users.detail': "Reads what {site}'s own responses said about accounts: verified, follows you (api.users).";
|
|
14
|
+
readonly 'wb.permission.network.label': "Internet";
|
|
15
|
+
readonly 'wb.permission.network.detail': "Says it contacts servers on the internet.";
|
|
16
|
+
readonly 'wb.permission.networkNone.label': "No network";
|
|
17
|
+
readonly 'wb.permission.networkNone.detail': "Says it never contacts a server; the install check found no network calls in its code.";
|
|
18
|
+
readonly 'wb.permission.legacy.label': "Legacy · full page access";
|
|
19
|
+
readonly 'wb.permission.legacy.detail': "No @permissions line: it gets the whole plugin API, like plugins before permissions.";
|
|
20
|
+
readonly 'wb.permission.none.label': "No special access";
|
|
21
|
+
readonly 'wb.permission.none.detail': "Only the basic page helpers (CSS, DOM, routes, keys, theme).";
|
|
22
|
+
readonly 'wb.permission.unknown': "Unknown permission.";
|
|
23
|
+
readonly 'wb.store.category.reading': "Reading";
|
|
24
|
+
readonly 'wb.store.category.writing': "Writing";
|
|
25
|
+
readonly 'wb.store.category.filters': "Filters";
|
|
26
|
+
readonly 'wb.store.category.focus': "Focus";
|
|
27
|
+
readonly 'wb.store.category.tools': "Tools";
|
|
28
|
+
readonly 'wb.store.category.dark': "Dark";
|
|
29
|
+
readonly 'wb.store.category.light': "Light";
|
|
30
|
+
readonly 'wb.store.category.icons': "Icons";
|
|
31
|
+
readonly 'wb.store.builtIn': "Built in";
|
|
32
|
+
readonly 'wb.store.use': "Use";
|
|
33
|
+
readonly 'wb.store.install': "Install";
|
|
34
|
+
readonly 'wb.store.updateTo': "Update to {version}";
|
|
35
|
+
readonly 'wb.store.modifiedTitle': "The installed file differs from the store's (edited, or from elsewhere). The store leaves it alone.";
|
|
36
|
+
readonly 'wb.store.modified': "Changed locally";
|
|
37
|
+
readonly 'wb.store.replace': "Replace";
|
|
38
|
+
readonly 'wb.store.installed': "Installed";
|
|
39
|
+
readonly 'wb.store.installedVersion': "Installed · v{version}";
|
|
40
|
+
readonly 'wb.store.offline': "Offline copy from {when}: {error}";
|
|
41
|
+
readonly 'wb.store.unreachableShort': "Store unreachable";
|
|
42
|
+
readonly 'wb.store.verified': "Signed catalog verified · updated {when}";
|
|
43
|
+
readonly 'wb.store.intro': "Themes and plugins from the wayBetter Store. The catalog is signed; wayBetter checks the signature and every download's SHA-256 before it shows the install screen. Plugins list the permissions they ask for.";
|
|
44
|
+
readonly 'wb.store.search': "Search the store";
|
|
45
|
+
readonly 'wb.store.searchPlaceholder': "Search themes and plugins";
|
|
46
|
+
readonly 'wb.store.kind': "Kind";
|
|
47
|
+
readonly 'wb.store.themes': "Themes";
|
|
48
|
+
readonly 'wb.store.checking': "Checking…";
|
|
49
|
+
readonly 'wb.store.refresh': "Refresh";
|
|
50
|
+
readonly 'wb.store.categories': "Categories";
|
|
51
|
+
readonly 'wb.store.everything': "Everything";
|
|
52
|
+
readonly 'wb.store.updates': "{count, plural, one {# update} other {# updates}} available";
|
|
53
|
+
readonly 'wb.store.unreachable': "The store is not reachable";
|
|
54
|
+
readonly 'wb.store.tryAgain': "Try again";
|
|
55
|
+
readonly 'wb.store.noCatalog': "No catalog yet.";
|
|
56
|
+
readonly 'wb.store.nothingChanged': "Nothing was installed or changed.";
|
|
57
|
+
readonly 'wb.store.noMatch': "Nothing matches";
|
|
58
|
+
readonly 'wb.store.noMatchHint': "Try another word or category.";
|
|
59
|
+
readonly 'wb.store.plugin': "Plugin";
|
|
60
|
+
readonly 'wb.store.by': "by {author}";
|
|
61
|
+
readonly 'wb.store.permissions': "Permissions";
|
|
62
|
+
readonly 'wb.store.themeNow': "{name} is your theme now.";
|
|
63
|
+
readonly 'wb.store.foot': "Have a theme or plugin file? Drop it on the wayBetter window, or open a waybetter://install link from waybetter.fyi. You always see this install screen first.";
|
|
64
|
+
readonly 'wb.install.lines': "{count, plural, one {# line} other {# lines}}";
|
|
65
|
+
readonly 'wb.install.moreLines': "Show {count, plural, one {# more line} other {# more lines}}";
|
|
66
|
+
readonly 'wb.install.reinstall': "Reinstall";
|
|
67
|
+
readonly 'wb.install.update': "Update";
|
|
68
|
+
readonly 'wb.install.eyebrow.install': "{kind, select, plugin {Install plugin} theme {Install theme} other {Install}}";
|
|
69
|
+
readonly 'wb.install.eyebrow.update': "{kind, select, plugin {Update plugin} theme {Update theme} other {Update}}";
|
|
70
|
+
readonly 'wb.install.eyebrow.reinstall': "{kind, select, plugin {Reinstall plugin} theme {Reinstall theme} other {Reinstall}}";
|
|
71
|
+
readonly 'wb.install.noAuthor': "No author or version given";
|
|
72
|
+
readonly 'wb.install.verified': "Verified";
|
|
73
|
+
readonly 'wb.install.installedNow': "Installed now";
|
|
74
|
+
readonly 'wb.install.identical': "v{version} (identical)";
|
|
75
|
+
readonly 'wb.install.on': "on";
|
|
76
|
+
readonly 'wb.install.replaces': "Replaces";
|
|
77
|
+
readonly 'wb.install.replacesValue': "your copy of this theme";
|
|
78
|
+
readonly 'wb.install.copyHash': "Copy SHA-256";
|
|
79
|
+
readonly 'wb.install.permissions': "Permissions it declares";
|
|
80
|
+
readonly 'wb.install.pageAccess': "Plugins run inside {site} with the same access as the page: they can read what {site} shows you and act in it. Permissions limit what the wayBetter API gives a plugin, not the page. Install only code you trust.";
|
|
81
|
+
readonly 'wb.install.theCode': "The code";
|
|
82
|
+
readonly 'wb.install.themeCss': "Theme CSS (runs in {site} like your Custom CSS)";
|
|
83
|
+
readonly 'wb.install.code': "Code that will be installed";
|
|
84
|
+
readonly 'wb.install.staysOn': "It stays on";
|
|
85
|
+
readonly 'wb.install.turnOn': "Turn it on now";
|
|
86
|
+
readonly 'wb.install.useNow': "Use it now";
|
|
87
|
+
readonly 'wb.install.installing': "Installing…";
|
|
88
|
+
readonly 'wb.install.done': "{name} is installed";
|
|
89
|
+
readonly 'wb.install.done.pluginOn': "It is running in your {site} tabs now. Turn it off any time in Plugins.";
|
|
90
|
+
readonly 'wb.install.done.pluginOff': "It is off. Turn it on in Plugins when you want it.";
|
|
91
|
+
readonly 'wb.install.done.themeOn': "It is your theme now. Switch back any time in Appearance.";
|
|
92
|
+
readonly 'wb.install.done.themeOff': "It is in your themes in Appearance.";
|
|
93
|
+
readonly 'wb.install.done.fonts': "It names Google fonts ({fonts}). Appearance can download them for you; until then it uses its fallback fonts.";
|
|
94
|
+
readonly 'wb.install.openPlugins': "Open Plugins";
|
|
95
|
+
readonly 'wb.install.openAppearance': "Open Appearance";
|
|
96
|
+
readonly 'wb.install.eyebrow.strings.install': "Install string pack";
|
|
97
|
+
readonly 'wb.install.eyebrow.strings.update': "Update string pack";
|
|
98
|
+
readonly 'wb.install.eyebrow.strings.reinstall': "Reinstall string pack";
|
|
99
|
+
readonly 'wb.install.err.stringsLarge': "String packs are limited to 2 MB.";
|
|
100
|
+
readonly 'wb.install.err.stringsNotInstalled': "The string pack was not installed";
|
|
101
|
+
readonly 'wb.install.license': "Licence";
|
|
102
|
+
readonly 'wb.install.credits': "Credits";
|
|
103
|
+
readonly 'wb.install.strings.dataOnly': "Data only: text that replaces {site}’s own words. No code and no styles; nothing in it runs. Words it does not change stay as {site} shows them.";
|
|
104
|
+
readonly 'wb.install.strings.language': "Language";
|
|
105
|
+
readonly 'wb.install.strings.count': "{count, plural, one {# string} other {# strings}}";
|
|
106
|
+
readonly 'wb.install.strings.coverage': "Coverage";
|
|
107
|
+
readonly 'wb.install.strings.coverageValue': "{translated} of {translatable} of {site}’s strings ({percent})";
|
|
108
|
+
readonly 'wb.install.strings.closed': "{count, plural, one {# more string of {site} cannot be replaced by a pack yet (rich text, number formats)} other {# more strings of {site} cannot be replaced by a pack yet (rich text, number formats)}}";
|
|
109
|
+
readonly 'wb.install.strings.unknown': "{count, plural, one {# key {site} does not have is ignored} other {# keys {site} does not have are ignored}}";
|
|
110
|
+
readonly 'wb.install.strings.refused': "{count, plural, one {# string does not fit {site}’s own and is not used} other {# strings do not fit {site}’s own and are not used}}";
|
|
111
|
+
readonly 'wb.install.strings.otherCatalog': "This pack is for another version of {site} (a different set of strings); it would change nothing here.";
|
|
112
|
+
readonly 'wb.install.strings.sample': "A sample";
|
|
113
|
+
readonly 'wb.install.strings.file': "The pack file";
|
|
114
|
+
readonly 'wb.install.done.stringsOn': "Your {site} tabs reload to show it. Turn it off any time in Languages.";
|
|
115
|
+
readonly 'wb.install.done.stringsOff': "It is off. Turn it on in Languages when you want it.";
|
|
116
|
+
readonly 'wb.install.openStrings': "Open Languages";
|
|
117
|
+
readonly 'wb.store.strings': "Languages";
|
|
118
|
+
readonly 'wb.store.stringsItem': "String pack";
|
|
119
|
+
readonly 'wb.install.eyebrow.icons.install': "Install icon pack";
|
|
120
|
+
readonly 'wb.install.eyebrow.icons.update': "Update icon pack";
|
|
121
|
+
readonly 'wb.install.eyebrow.icons.reinstall': "Reinstall icon pack";
|
|
122
|
+
readonly 'wb.install.err.icons': "This icon pack cannot be installed";
|
|
123
|
+
readonly 'wb.install.err.iconsNone': "{site} cannot install icon packs here.";
|
|
124
|
+
readonly 'wb.install.err.iconsLarge': "Icon packs are limited to 120 KB.";
|
|
125
|
+
readonly 'wb.install.err.iconsNotInstalled': "The icon pack was not installed";
|
|
126
|
+
readonly 'wb.install.err.opened': "This file cannot be installed";
|
|
127
|
+
readonly 'wb.install.icons.dataOnly': "Data only: drawings as path data and small pictures. No code and no styles; nothing in it runs.";
|
|
128
|
+
readonly 'wb.install.icons.license': "License";
|
|
129
|
+
readonly 'wb.install.icons.source': "Drawings from";
|
|
130
|
+
readonly 'wb.install.icons.count': "Icons";
|
|
131
|
+
readonly 'wb.install.icons.countValue': "{count, plural, one {# icon} other {# icons}}";
|
|
132
|
+
readonly 'wb.install.icons.file': "The pack file";
|
|
133
|
+
readonly 'wb.install.done.iconsOn': "It is your icon pack now. Switch back any time in Appearance.";
|
|
134
|
+
readonly 'wb.install.done.iconsOff': "It is in your icon packs in Appearance.";
|
|
135
|
+
readonly 'wb.store.icons': "Icons";
|
|
136
|
+
readonly 'wb.store.iconsItem': "Icon pack";
|
|
137
|
+
readonly 'wb.store.builtinTab': "Built in";
|
|
138
|
+
readonly 'wb.store.builtinItem': "Built in";
|
|
139
|
+
readonly 'wb.store.areaSwitch': "Turn {name} on or off";
|
|
140
|
+
readonly 'wb.store.areaOn': "On";
|
|
141
|
+
readonly 'wb.store.areaOff': "Off";
|
|
142
|
+
readonly 'wb.strings.section': "Languages";
|
|
143
|
+
readonly 'wb.strings.title': "String packs";
|
|
144
|
+
readonly 'wb.strings.intro': "A string pack replaces {site}’s own words with text: a language {site} does not offer, a better translation, or your own wording. Packs apply in this order; a later one wins where two change the same word. Words no pack changes stay exactly as {site} shows them.";
|
|
145
|
+
readonly 'wb.strings.empty': "No string packs yet";
|
|
146
|
+
readonly 'wb.strings.emptyHint': "Get one from the Store, or drop a .strings.json file on the window.";
|
|
147
|
+
readonly 'wb.strings.openStore': "Open the Store";
|
|
148
|
+
readonly 'wb.strings.by': "by {authors}";
|
|
149
|
+
readonly 'wb.strings.on': "Use {name}";
|
|
150
|
+
readonly 'wb.strings.up': "Move up";
|
|
151
|
+
readonly 'wb.strings.down': "Move down";
|
|
152
|
+
readonly 'wb.strings.remove': "Remove";
|
|
153
|
+
readonly 'wb.strings.removed': "{name} is removed.";
|
|
154
|
+
readonly 'wb.strings.applied': "Your {site} tabs reload to apply it.";
|
|
155
|
+
readonly 'wb.strings.limit': "At most 8 packs can be on at once.";
|
|
156
|
+
readonly 'wb.strings.dataOnly': "Data only";
|
|
157
|
+
readonly 'wb.strings.translate': "Translate mode";
|
|
158
|
+
readonly 'wb.strings.translateHint': "Every {site} tab shows a bar: click a word to change it. Your edits apply in that tab after a reload, and “Copy pack file” gives you a pack to share. While it is on, words carry invisible markers.";
|
|
159
|
+
readonly 'wb.install.doneButton': "Done";
|
|
160
|
+
readonly 'wb.install.drop': "Drop to install";
|
|
161
|
+
readonly 'wb.install.dropHint': "A theme (.json), a plugin (.plugin.js) or a string pack (.strings.json). You will see what it is before anything is installed.";
|
|
162
|
+
readonly 'wb.install.err.theme': "This theme cannot be installed";
|
|
163
|
+
readonly 'wb.install.stage.link': "{kind, select, plugin {Install plugin from {host}} theme {Install theme from {host}} other {Install from {host}}}";
|
|
164
|
+
readonly 'wb.install.stage.linkDetail': "Downloading and checking…";
|
|
165
|
+
readonly 'wb.install.err.kind': "“{file}” is not a theme, a plugin or a string pack";
|
|
166
|
+
readonly 'wb.install.err.kindHint': "wayBetter installs themes (.json), plugins (.plugin.js) and string packs (.strings.json). To attach a file to a post, drop it on {site}’s composer instead.";
|
|
167
|
+
readonly 'wb.install.err.large': "“{file}” is too large";
|
|
168
|
+
readonly 'wb.install.err.largeHint': "{kind, select, theme {Themes are limited to 2 MB.} other {Plugins are limited to 2 MB.}}";
|
|
169
|
+
readonly 'wb.install.stage.named': "Install {name}";
|
|
170
|
+
readonly 'wb.install.stage.fileDetail': "Checking the file…";
|
|
171
|
+
readonly 'wb.install.stage.storeDetail': "Downloading from the wayBetter Store and checking its signature…";
|
|
172
|
+
readonly 'wb.install.err.link': "This install link cannot be used";
|
|
173
|
+
readonly 'wb.install.err.notInstalled': "{kind, select, theme {The theme was not installed} other {The plugin was not installed}}";
|
|
174
|
+
readonly 'wb.install.untitled': "Untitled";
|
|
175
|
+
readonly 'wb.install.file': "File";
|
|
176
|
+
readonly 'wb.install.size': "Size";
|
|
177
|
+
readonly 'wb.install.themeFile': "Theme file";
|
|
178
|
+
readonly 'wb.store.all': "All";
|
|
179
|
+
readonly 'wb.store.pluginsTab': "Plugins";
|
|
180
|
+
readonly 'wb.store.theme': "Theme";
|
|
181
|
+
readonly 'wb.store.remove': "Remove";
|
|
182
|
+
readonly 'wb.store.keep': "Keep";
|
|
183
|
+
readonly 'wb.store.removed': "{name} removed.";
|
|
184
|
+
readonly 'wb.install.cancel': "Cancel";
|
|
185
|
+
readonly 'wb.install.close': "Close";
|
|
186
|
+
readonly 'wb.install.source.store': "wayBetter Store (signed catalog, sha256 verified)";
|
|
187
|
+
readonly 'wb.install.source.link': "Link: {host}";
|
|
188
|
+
readonly 'wb.install.source.file': "A file you dropped";
|
|
189
|
+
};
|
|
190
|
+
export type StoreKey = keyof typeof STORE_MESSAGES;
|
|
191
|
+
export type StoreParams = Readonly<Record<string, string | number>>;
|
|
192
|
+
/** The app's translator for these keys (framework catalogs merged in): the formatted message. */
|
|
193
|
+
export type StoreText = (key: StoreKey, params?: StoreParams) => string;
|