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.
Files changed (537) hide show
  1. package/README.md +139 -6
  2. package/bin/waybetter.mjs +43 -0
  3. package/build/runtime.mjs +105 -0
  4. package/cli/buildenv.mjs +130 -0
  5. package/cli/dev.mjs +97 -0
  6. package/cli/i18n.mjs +382 -0
  7. package/cli/manifests.mjs +383 -0
  8. package/cli/release.mjs +437 -0
  9. package/cli/releasecheck.mjs +15 -0
  10. package/cli/remote.mjs +260 -0
  11. package/cli/store.mjs +378 -0
  12. package/cli/strings.mjs +123 -0
  13. package/dist/runtime/column.d.ts +93 -0
  14. package/dist/runtime/column.js +451 -0
  15. package/dist/runtime/column.js.map +1 -0
  16. package/dist/runtime/commandReport.d.ts +19 -0
  17. package/dist/runtime/commandReport.js +47 -0
  18. package/dist/runtime/commandReport.js.map +1 -0
  19. package/dist/runtime/commands.d.ts +72 -0
  20. package/dist/runtime/commands.js +214 -0
  21. package/dist/runtime/commands.js.map +1 -0
  22. package/dist/runtime/devErrors.d.ts +16 -0
  23. package/dist/runtime/devErrors.js +30 -0
  24. package/dist/runtime/devErrors.js.map +1 -0
  25. package/dist/runtime/domHub.d.ts +21 -0
  26. package/dist/runtime/domHub.js +139 -4
  27. package/dist/runtime/domHub.js.map +1 -1
  28. package/dist/runtime/featureModules.d.ts +157 -0
  29. package/dist/runtime/featureModules.js +484 -0
  30. package/dist/runtime/featureModules.js.map +1 -0
  31. package/dist/runtime/featureTable.d.ts +144 -0
  32. package/dist/runtime/featureTable.js +223 -0
  33. package/dist/runtime/featureTable.js.map +1 -0
  34. package/dist/runtime/fonts.d.ts +22 -0
  35. package/dist/runtime/fonts.js +72 -0
  36. package/dist/runtime/fonts.js.map +1 -0
  37. package/dist/runtime/i18n.d.ts +138 -0
  38. package/dist/runtime/i18n.js +614 -0
  39. package/dist/runtime/i18n.js.map +1 -0
  40. package/dist/runtime/i18nCheck.d.ts +30 -0
  41. package/dist/runtime/i18nCheck.js +224 -0
  42. package/dist/runtime/i18nCheck.js.map +1 -0
  43. package/dist/runtime/pageLang.d.ts +8 -0
  44. package/dist/runtime/pageLang.js +64 -0
  45. package/dist/runtime/pageLang.js.map +1 -0
  46. package/dist/runtime/pageStrings.d.ts +35 -0
  47. package/dist/runtime/pageStrings.js +76 -0
  48. package/dist/runtime/pageStrings.js.map +1 -0
  49. package/dist/runtime/panelButton.d.ts +33 -0
  50. package/dist/runtime/panelButton.js +83 -0
  51. package/dist/runtime/panelButton.js.map +1 -0
  52. package/dist/runtime/permissions.d.ts +47 -0
  53. package/dist/runtime/permissions.js +141 -0
  54. package/dist/runtime/permissions.js.map +1 -0
  55. package/dist/runtime/pluginApi.d.ts +51 -2
  56. package/dist/runtime/pluginApi.js +137 -22
  57. package/dist/runtime/pluginApi.js.map +1 -1
  58. package/dist/runtime/pluginI18n.d.ts +29 -0
  59. package/dist/runtime/pluginI18n.js +119 -0
  60. package/dist/runtime/pluginI18n.js.map +1 -0
  61. package/dist/runtime/settingsForm.d.ts +66 -0
  62. package/dist/runtime/settingsForm.js +114 -0
  63. package/dist/runtime/settingsForm.js.map +1 -0
  64. package/dist/runtime/site.d.ts +5 -0
  65. package/dist/runtime/site.js +1 -1
  66. package/dist/runtime/site.js.map +1 -1
  67. package/dist/runtime/siteRuntime.d.ts +144 -0
  68. package/dist/runtime/siteRuntime.js +175 -0
  69. package/dist/runtime/siteRuntime.js.map +1 -0
  70. package/dist/runtime/stringPackHook.d.ts +84 -0
  71. package/dist/runtime/stringPackHook.js +220 -0
  72. package/dist/runtime/stringPackHook.js.map +1 -0
  73. package/dist/runtime/stringPackTranslate.d.ts +61 -0
  74. package/dist/runtime/stringPackTranslate.js +267 -0
  75. package/dist/runtime/stringPackTranslate.js.map +1 -0
  76. package/dist/runtime/stringPacks.d.ts +248 -0
  77. package/dist/runtime/stringPacks.js +610 -0
  78. package/dist/runtime/stringPacks.js.map +1 -0
  79. package/dist/runtime/styles.d.ts +15 -0
  80. package/dist/runtime/styles.js +81 -0
  81. package/dist/runtime/styles.js.map +1 -0
  82. package/dist/runtime/textNet.d.ts +15 -0
  83. package/dist/runtime/textNet.js +131 -0
  84. package/dist/runtime/textNet.js.map +1 -0
  85. package/dist/runtime/themeApi.d.ts +121 -0
  86. package/dist/runtime/themeApi.js +220 -0
  87. package/dist/runtime/themeApi.js.map +1 -0
  88. package/dist/runtime/themeBar.d.ts +28 -0
  89. package/dist/runtime/themeBar.js +82 -0
  90. package/dist/runtime/themeBar.js.map +1 -0
  91. package/dist/runtime/themeChoice.d.ts +52 -0
  92. package/dist/runtime/themeChoice.js +69 -0
  93. package/dist/runtime/themeChoice.js.map +1 -0
  94. package/dist/runtime/themeComponents.d.ts +435 -0
  95. package/dist/runtime/themeComponents.js +476 -0
  96. package/dist/runtime/themeComponents.js.map +1 -0
  97. package/dist/runtime/themeDecor.d.ts +73 -0
  98. package/dist/runtime/themeDecor.js +133 -0
  99. package/dist/runtime/themeDecor.js.map +1 -0
  100. package/dist/runtime/themeDerive.d.ts +69 -0
  101. package/dist/runtime/themeDerive.js +117 -0
  102. package/dist/runtime/themeDerive.js.map +1 -0
  103. package/dist/runtime/themeDoctor.d.ts +52 -0
  104. package/dist/runtime/themeDoctor.js +112 -0
  105. package/dist/runtime/themeDoctor.js.map +1 -0
  106. package/dist/runtime/themeGuards.d.ts +60 -0
  107. package/dist/runtime/themeGuards.js +235 -0
  108. package/dist/runtime/themeGuards.js.map +1 -0
  109. package/dist/runtime/themeIcons.d.ts +130 -0
  110. package/dist/runtime/themeIcons.js +271 -0
  111. package/dist/runtime/themeIcons.js.map +1 -0
  112. package/dist/runtime/themeInk.d.ts +37 -0
  113. package/dist/runtime/themeInk.js +111 -0
  114. package/dist/runtime/themeInk.js.map +1 -0
  115. package/dist/runtime/themeInvariants.d.ts +39 -0
  116. package/dist/runtime/themeInvariants.js +273 -0
  117. package/dist/runtime/themeInvariants.js.map +1 -0
  118. package/dist/runtime/themeRuntime.d.ts +114 -0
  119. package/dist/runtime/themeRuntime.js +570 -0
  120. package/dist/runtime/themeRuntime.js.map +1 -0
  121. package/dist/runtime/themeSchema.d.ts +10 -0
  122. package/dist/runtime/themeSchema.js +150 -0
  123. package/dist/runtime/themeSchema.js.map +1 -0
  124. package/dist/runtime/themeSpec.d.ts +263 -0
  125. package/dist/runtime/themeSpec.js +435 -0
  126. package/dist/runtime/themeSpec.js.map +1 -0
  127. package/dist/runtime/themeTokens.d.ts +12 -0
  128. package/dist/runtime/themeTokens.js +14 -6
  129. package/dist/runtime/themeTokens.js.map +1 -1
  130. package/dist/runtime/themeVariants.d.ts +30 -0
  131. package/dist/runtime/themeVariants.js +53 -0
  132. package/dist/runtime/themeVariants.js.map +1 -0
  133. package/dist/runtime/ui.d.ts +192 -0
  134. package/dist/runtime/ui.js +926 -0
  135. package/dist/runtime/ui.js.map +1 -0
  136. package/dist/shell/InstallDialog.d.ts +40 -0
  137. package/dist/shell/InstallDialog.js +176 -0
  138. package/dist/shell/InstallDialog.js.map +1 -0
  139. package/dist/shell/StoreView.d.ts +78 -0
  140. package/dist/shell/StoreView.js +108 -0
  141. package/dist/shell/StoreView.js.map +1 -0
  142. package/dist/shell/addressModel.js.map +1 -1
  143. package/dist/shell/chrome.js.map +1 -1
  144. package/dist/shell/deckModel.d.ts +117 -0
  145. package/dist/shell/deckModel.js +267 -0
  146. package/dist/shell/deckModel.js.map +1 -0
  147. package/dist/shell/frame/AccountSwitcher.d.ts +42 -0
  148. package/dist/shell/frame/AccountSwitcher.js +243 -0
  149. package/dist/shell/frame/AccountSwitcher.js.map +1 -0
  150. package/dist/shell/frame/AddColumnDialog.d.ts +8 -0
  151. package/dist/shell/frame/AddColumnDialog.js +81 -0
  152. package/dist/shell/frame/AddColumnDialog.js.map +1 -0
  153. package/dist/shell/frame/AppMenu.d.ts +44 -0
  154. package/dist/shell/frame/AppMenu.js +721 -0
  155. package/dist/shell/frame/AppMenu.js.map +1 -0
  156. package/dist/shell/frame/CommandPalette.d.ts +7 -0
  157. package/dist/shell/frame/CommandPalette.js +118 -0
  158. package/dist/shell/frame/CommandPalette.js.map +1 -0
  159. package/dist/shell/frame/DeckView.d.ts +13 -0
  160. package/dist/shell/frame/DeckView.js +287 -0
  161. package/dist/shell/frame/DeckView.js.map +1 -0
  162. package/dist/shell/frame/FindBar.d.ts +10 -0
  163. package/dist/shell/frame/FindBar.js +108 -0
  164. package/dist/shell/frame/FindBar.js.map +1 -0
  165. package/dist/shell/frame/MediaPanel.d.ts +8 -0
  166. package/dist/shell/frame/MediaPanel.js +76 -0
  167. package/dist/shell/frame/MediaPanel.js.map +1 -0
  168. package/dist/shell/frame/NewTabPage.d.ts +9 -0
  169. package/dist/shell/frame/NewTabPage.js +71 -0
  170. package/dist/shell/frame/NewTabPage.js.map +1 -0
  171. package/dist/shell/frame/PaneTheme.d.ts +16 -0
  172. package/dist/shell/frame/PaneTheme.js +67 -0
  173. package/dist/shell/frame/PaneTheme.js.map +1 -0
  174. package/dist/shell/frame/ReportDialog.d.ts +3 -0
  175. package/dist/shell/frame/ReportDialog.js +95 -0
  176. package/dist/shell/frame/ReportDialog.js.map +1 -0
  177. package/dist/shell/frame/Shell.d.ts +9 -0
  178. package/dist/shell/frame/Shell.js +1139 -0
  179. package/dist/shell/frame/Shell.js.map +1 -0
  180. package/dist/shell/frame/Titlebar.d.ts +17 -0
  181. package/dist/shell/frame/Titlebar.js +79 -0
  182. package/dist/shell/frame/Titlebar.js.map +1 -0
  183. package/dist/shell/frame/TitlebarExtras.d.ts +4 -0
  184. package/dist/shell/frame/TitlebarExtras.js +202 -0
  185. package/dist/shell/frame/TitlebarExtras.js.map +1 -0
  186. package/dist/shell/frame/WebPanel.d.ts +4 -0
  187. package/dist/shell/frame/WebPanel.js +185 -0
  188. package/dist/shell/frame/WebPanel.js.map +1 -0
  189. package/dist/shell/frame/accountModel.d.ts +49 -0
  190. package/dist/shell/frame/accountModel.js +67 -0
  191. package/dist/shell/frame/accountModel.js.map +1 -0
  192. package/dist/shell/frame/accountSwitcher.css +91 -0
  193. package/dist/shell/frame/appI18n.d.ts +44 -0
  194. package/dist/shell/frame/appI18n.js +64 -0
  195. package/dist/shell/frame/appI18n.js.map +1 -0
  196. package/dist/shell/frame/appMenu.css +127 -0
  197. package/dist/shell/frame/backupModel.d.ts +38 -0
  198. package/dist/shell/frame/backupModel.js +192 -0
  199. package/dist/shell/frame/backupModel.js.map +1 -0
  200. package/dist/shell/frame/boot.d.ts +8 -0
  201. package/dist/shell/frame/boot.js +37 -0
  202. package/dist/shell/frame/boot.js.map +1 -0
  203. package/dist/shell/frame/brand.d.ts +1 -0
  204. package/dist/shell/frame/brand.js +4 -0
  205. package/dist/shell/frame/brand.js.map +1 -0
  206. package/dist/shell/frame/bridge.d.ts +35 -0
  207. package/dist/shell/frame/bridge.js +70 -0
  208. package/dist/shell/frame/bridge.js.map +1 -0
  209. package/dist/shell/frame/chromeTheme.d.ts +47 -0
  210. package/dist/shell/frame/chromeTheme.js +118 -0
  211. package/dist/shell/frame/chromeTheme.js.map +1 -0
  212. package/dist/shell/frame/deck.css +209 -0
  213. package/dist/shell/frame/deckStore.d.ts +89 -0
  214. package/dist/shell/frame/deckStore.js +239 -0
  215. package/dist/shell/frame/deckStore.js.map +1 -0
  216. package/dist/shell/frame/devHost.d.ts +35 -0
  217. package/dist/shell/frame/devHost.js +80 -0
  218. package/dist/shell/frame/devHost.js.map +1 -0
  219. package/dist/shell/frame/devModel.d.ts +7 -0
  220. package/dist/shell/frame/devModel.js +17 -0
  221. package/dist/shell/frame/devModel.js.map +1 -0
  222. package/dist/shell/frame/diag.d.ts +7 -0
  223. package/dist/shell/frame/diag.js +39 -0
  224. package/dist/shell/frame/diag.js.map +1 -0
  225. package/dist/shell/frame/edges.css +159 -0
  226. package/dist/shell/frame/findBar.css +14 -0
  227. package/dist/shell/frame/frameMessages.d.ts +248 -0
  228. package/dist/shell/frame/frameMessages.js +252 -0
  229. package/dist/shell/frame/frameMessages.js.map +1 -0
  230. package/dist/shell/frame/hooks.d.ts +39 -0
  231. package/dist/shell/frame/hooks.js +97 -0
  232. package/dist/shell/frame/hooks.js.map +1 -0
  233. package/dist/shell/frame/i18n.d.ts +27 -0
  234. package/dist/shell/frame/i18n.js +66 -0
  235. package/dist/shell/frame/i18n.js.map +1 -0
  236. package/dist/shell/frame/iconPack.d.ts +11 -0
  237. package/dist/shell/frame/iconPack.js +45 -0
  238. package/dist/shell/frame/iconPack.js.map +1 -0
  239. package/dist/shell/frame/icons.d.ts +71 -0
  240. package/dist/shell/frame/icons.js +75 -0
  241. package/dist/shell/frame/icons.js.map +1 -0
  242. package/dist/shell/frame/index.d.ts +34 -0
  243. package/dist/shell/frame/index.js +43 -0
  244. package/dist/shell/frame/index.js.map +1 -0
  245. package/dist/shell/frame/language.d.ts +58 -0
  246. package/dist/shell/frame/language.js +165 -0
  247. package/dist/shell/frame/language.js.map +1 -0
  248. package/dist/shell/frame/mediaModel.d.ts +47 -0
  249. package/dist/shell/frame/mediaModel.js +67 -0
  250. package/dist/shell/frame/mediaModel.js.map +1 -0
  251. package/dist/shell/frame/menuMessages.en.json +96 -0
  252. package/dist/shell/frame/menuModel.d.ts +319 -0
  253. package/dist/shell/frame/menuModel.js +301 -0
  254. package/dist/shell/frame/menuModel.js.map +1 -0
  255. package/dist/shell/frame/nativeMenu.d.ts +5 -0
  256. package/dist/shell/frame/nativeMenu.js +178 -0
  257. package/dist/shell/frame/nativeMenu.js.map +1 -0
  258. package/dist/shell/frame/nativeMenuModel.d.ts +102 -0
  259. package/dist/shell/frame/nativeMenuModel.js +186 -0
  260. package/dist/shell/frame/nativeMenuModel.js.map +1 -0
  261. package/dist/shell/frame/paletteModel.d.ts +139 -0
  262. package/dist/shell/frame/paletteModel.js +114 -0
  263. package/dist/shell/frame/paletteModel.js.map +1 -0
  264. package/dist/shell/frame/paneTheme.css +9 -0
  265. package/dist/shell/frame/pluginCommandStore.d.ts +23 -0
  266. package/dist/shell/frame/pluginCommandStore.js +70 -0
  267. package/dist/shell/frame/pluginCommandStore.js.map +1 -0
  268. package/dist/shell/frame/reportModel.d.ts +52 -0
  269. package/dist/shell/frame/reportModel.js +105 -0
  270. package/dist/shell/frame/reportModel.js.map +1 -0
  271. package/dist/shell/frame/safeStore.d.ts +7 -0
  272. package/dist/shell/frame/safeStore.js +40 -0
  273. package/dist/shell/frame/safeStore.js.map +1 -0
  274. package/dist/shell/frame/searchInput.d.ts +2 -0
  275. package/dist/shell/frame/searchInput.js +11 -0
  276. package/dist/shell/frame/searchInput.js.map +1 -0
  277. package/dist/shell/frame/shell.css +634 -0
  278. package/dist/shell/frame/site.d.ts +206 -0
  279. package/dist/shell/frame/site.js +22 -0
  280. package/dist/shell/frame/site.js.map +1 -0
  281. package/dist/shell/frame/state.d.ts +101 -0
  282. package/dist/shell/frame/state.js +286 -0
  283. package/dist/shell/frame/state.js.map +1 -0
  284. package/dist/shell/frame/syncGate.d.ts +10 -0
  285. package/dist/shell/frame/syncGate.js +36 -0
  286. package/dist/shell/frame/syncGate.js.map +1 -0
  287. package/dist/shell/frame/syncHost.d.ts +35 -0
  288. package/dist/shell/frame/syncHost.js +85 -0
  289. package/dist/shell/frame/syncHost.js.map +1 -0
  290. package/dist/shell/frame/tabStill.d.ts +2 -0
  291. package/dist/shell/frame/tabStill.js +62 -0
  292. package/dist/shell/frame/tabStill.js.map +1 -0
  293. package/dist/shell/frame/themeScopes.d.ts +29 -0
  294. package/dist/shell/frame/themeScopes.js +61 -0
  295. package/dist/shell/frame/themeScopes.js.map +1 -0
  296. package/dist/shell/frame/themeStore.d.ts +99 -0
  297. package/dist/shell/frame/themeStore.js +267 -0
  298. package/dist/shell/frame/themeStore.js.map +1 -0
  299. package/dist/shell/frame/windowBinding.d.ts +2 -0
  300. package/dist/shell/frame/windowBinding.js +7 -0
  301. package/dist/shell/frame/windowBinding.js.map +1 -0
  302. package/dist/shell/frame/workspaceModel.d.ts +82 -0
  303. package/dist/shell/frame/workspaceModel.js +250 -0
  304. package/dist/shell/frame/workspaceModel.js.map +1 -0
  305. package/dist/shell/frame/workspaces.css +84 -0
  306. package/dist/shell/frame/workspaces.d.ts +22 -0
  307. package/dist/shell/frame/workspaces.js +125 -0
  308. package/dist/shell/frame/workspaces.js.map +1 -0
  309. package/dist/shell/frame/zoomStore.d.ts +10 -0
  310. package/dist/shell/frame/zoomStore.js +65 -0
  311. package/dist/shell/frame/zoomStore.js.map +1 -0
  312. package/dist/shell/installController.d.ts +137 -0
  313. package/dist/shell/installController.js +172 -0
  314. package/dist/shell/installController.js.map +1 -0
  315. package/dist/shell/installerMessages.d.ts +30 -0
  316. package/dist/shell/installerMessages.js +36 -0
  317. package/dist/shell/installerMessages.js.map +1 -0
  318. package/dist/shell/linkDrop.js.map +1 -1
  319. package/dist/shell/messages.d.ts +16 -0
  320. package/dist/shell/messages.js +27 -0
  321. package/dist/shell/messages.js.map +1 -0
  322. package/dist/shell/palette.js.map +1 -1
  323. package/dist/shell/paneModel.d.ts +22 -0
  324. package/dist/shell/paneModel.js +24 -1
  325. package/dist/shell/paneModel.js.map +1 -1
  326. package/dist/shell/panel/Appearance.d.ts +8 -0
  327. package/dist/shell/panel/Appearance.js +265 -0
  328. package/dist/shell/panel/Appearance.js.map +1 -0
  329. package/dist/shell/panel/BackupPanel.d.ts +5 -0
  330. package/dist/shell/panel/BackupPanel.js +198 -0
  331. package/dist/shell/panel/BackupPanel.js.map +1 -0
  332. package/dist/shell/panel/DeveloperPanel.d.ts +4 -0
  333. package/dist/shell/panel/DeveloperPanel.js +51 -0
  334. package/dist/shell/panel/DeveloperPanel.js.map +1 -0
  335. package/dist/shell/panel/FeatureToggles.d.ts +13 -0
  336. package/dist/shell/panel/FeatureToggles.js +42 -0
  337. package/dist/shell/panel/FeatureToggles.js.map +1 -0
  338. package/dist/shell/panel/Home.d.ts +3 -0
  339. package/dist/shell/panel/Home.js +23 -0
  340. package/dist/shell/panel/Home.js.map +1 -0
  341. package/dist/shell/panel/IconPackInstall.d.ts +15 -0
  342. package/dist/shell/panel/IconPackInstall.js +41 -0
  343. package/dist/shell/panel/IconPackInstall.js.map +1 -0
  344. package/dist/shell/panel/LanguageSettings.d.ts +1 -0
  345. package/dist/shell/panel/LanguageSettings.js +54 -0
  346. package/dist/shell/panel/LanguageSettings.js.map +1 -0
  347. package/dist/shell/panel/MakePanel.d.ts +3 -0
  348. package/dist/shell/panel/MakePanel.js +237 -0
  349. package/dist/shell/panel/MakePanel.js.map +1 -0
  350. package/dist/shell/panel/MarkdownDoc.d.ts +6 -0
  351. package/dist/shell/panel/MarkdownDoc.js +35 -0
  352. package/dist/shell/panel/MarkdownDoc.js.map +1 -0
  353. package/dist/shell/panel/Modes.d.ts +40 -0
  354. package/dist/shell/panel/Modes.js +270 -0
  355. package/dist/shell/panel/Modes.js.map +1 -0
  356. package/dist/shell/panel/NavIcon.d.ts +4 -0
  357. package/dist/shell/panel/NavIcon.js +6 -0
  358. package/dist/shell/panel/NavIcon.js.map +1 -0
  359. package/dist/shell/panel/Panel.d.ts +7 -0
  360. package/dist/shell/panel/Panel.js +139 -0
  361. package/dist/shell/panel/Panel.js.map +1 -0
  362. package/dist/shell/panel/PluginFeatures.d.ts +24 -0
  363. package/dist/shell/panel/PluginFeatures.js +165 -0
  364. package/dist/shell/panel/PluginFeatures.js.map +1 -0
  365. package/dist/shell/panel/Plugins.d.ts +33 -0
  366. package/dist/shell/panel/Plugins.js +112 -0
  367. package/dist/shell/panel/Plugins.js.map +1 -0
  368. package/dist/shell/panel/PowerSettings.d.ts +4 -0
  369. package/dist/shell/panel/PowerSettings.js +52 -0
  370. package/dist/shell/panel/PowerSettings.js.map +1 -0
  371. package/dist/shell/panel/Settings.d.ts +23 -0
  372. package/dist/shell/panel/Settings.js +117 -0
  373. package/dist/shell/panel/Settings.js.map +1 -0
  374. package/dist/shell/panel/ShareSetup.d.ts +8 -0
  375. package/dist/shell/panel/ShareSetup.js +130 -0
  376. package/dist/shell/panel/ShareSetup.js.map +1 -0
  377. package/dist/shell/panel/StoreSection.d.ts +7 -0
  378. package/dist/shell/panel/StoreSection.js +78 -0
  379. package/dist/shell/panel/StoreSection.js.map +1 -0
  380. package/dist/shell/panel/StringPacks.d.ts +20 -0
  381. package/dist/shell/panel/StringPacks.js +131 -0
  382. package/dist/shell/panel/StringPacks.js.map +1 -0
  383. package/dist/shell/panel/ThemeBuilder.d.ts +5 -0
  384. package/dist/shell/panel/ThemeBuilder.js +205 -0
  385. package/dist/shell/panel/ThemeBuilder.js.map +1 -0
  386. package/dist/shell/panel/backup.css +34 -0
  387. package/dist/shell/panel/builder.css +240 -0
  388. package/dist/shell/panel/builderModel.d.ts +55 -0
  389. package/dist/shell/panel/builderModel.js +95 -0
  390. package/dist/shell/panel/builderModel.js.map +1 -0
  391. package/dist/shell/panel/compare.d.ts +10 -0
  392. package/dist/shell/panel/compare.js +51 -0
  393. package/dist/shell/panel/compare.js.map +1 -0
  394. package/dist/shell/panel/controls.d.ts +135 -0
  395. package/dist/shell/panel/controls.js +213 -0
  396. package/dist/shell/panel/controls.js.map +1 -0
  397. package/dist/shell/panel/featureModel.d.ts +69 -0
  398. package/dist/shell/panel/featureModel.js +79 -0
  399. package/dist/shell/panel/featureModel.js.map +1 -0
  400. package/dist/shell/panel/fonts/FontBrowser.d.ts +10 -0
  401. package/dist/shell/panel/fonts/FontBrowser.js +189 -0
  402. package/dist/shell/panel/fonts/FontBrowser.js.map +1 -0
  403. package/dist/shell/panel/fonts/FontRoles.d.ts +20 -0
  404. package/dist/shell/panel/fonts/FontRoles.js +77 -0
  405. package/dist/shell/panel/fonts/FontRoles.js.map +1 -0
  406. package/dist/shell/panel/fonts/catalog.d.ts +37 -0
  407. package/dist/shell/panel/fonts/catalog.js +68 -0
  408. package/dist/shell/panel/fonts/catalog.js.map +1 -0
  409. package/dist/shell/panel/fonts/googleFontsCatalog.json +1 -0
  410. package/dist/shell/panel/index.d.ts +20 -0
  411. package/dist/shell/panel/index.js +34 -0
  412. package/dist/shell/panel/index.js.map +1 -0
  413. package/dist/shell/panel/languageModel.d.ts +5 -0
  414. package/dist/shell/panel/languageModel.js +7 -0
  415. package/dist/shell/panel/languageModel.js.map +1 -0
  416. package/dist/shell/panel/make.css +73 -0
  417. package/dist/shell/panel/makeModel.d.ts +32 -0
  418. package/dist/shell/panel/makeModel.js +84 -0
  419. package/dist/shell/panel/makeModel.js.map +1 -0
  420. package/dist/shell/panel/markdown.d.ts +46 -0
  421. package/dist/shell/panel/markdown.js +100 -0
  422. package/dist/shell/panel/markdown.js.map +1 -0
  423. package/dist/shell/panel/nav.d.ts +12 -0
  424. package/dist/shell/panel/nav.js +50 -0
  425. package/dist/shell/panel/nav.js.map +1 -0
  426. package/dist/shell/panel/panel.css +401 -0
  427. package/dist/shell/panel/panelMessages.d.ts +803 -0
  428. package/dist/shell/panel/panelMessages.js +779 -0
  429. package/dist/shell/panel/panelMessages.js.map +1 -0
  430. package/dist/shell/panel/plugins.css +59 -0
  431. package/dist/shell/panel/setupModel.d.ts +87 -0
  432. package/dist/shell/panel/setupModel.js +152 -0
  433. package/dist/shell/panel/setupModel.js.map +1 -0
  434. package/dist/shell/panel/site.d.ts +259 -0
  435. package/dist/shell/panel/site.js +25 -0
  436. package/dist/shell/panel/site.js.map +1 -0
  437. package/dist/shell/panel/strings.css +7 -0
  438. package/dist/shell/panel/themes.d.ts +10 -0
  439. package/dist/shell/panel/themes.js +8 -0
  440. package/dist/shell/panel/themes.js.map +1 -0
  441. package/dist/shell/profileModel.d.ts +3 -2
  442. package/dist/shell/profileModel.js +7 -5
  443. package/dist/shell/profileModel.js.map +1 -1
  444. package/dist/shell/store.css +250 -0
  445. package/dist/shell/storeMessages.d.ts +193 -0
  446. package/dist/shell/storeMessages.js +196 -0
  447. package/dist/shell/storeMessages.js.map +1 -0
  448. package/dist/shell/storeModel.d.ts +205 -0
  449. package/dist/shell/storeModel.js +146 -0
  450. package/dist/shell/storeModel.js.map +1 -0
  451. package/dist/shell/stringPacksModel.d.ts +44 -0
  452. package/dist/shell/stringPacksModel.js +99 -0
  453. package/dist/shell/stringPacksModel.js.map +1 -0
  454. package/dist/shell/updateModel.d.ts +2 -1
  455. package/dist/shell/updateModel.js +5 -4
  456. package/dist/shell/updateModel.js.map +1 -1
  457. package/dist/shell/windowControls.d.ts +4 -0
  458. package/dist/shell/windowControls.js +5 -0
  459. package/dist/shell/windowControls.js.map +1 -1
  460. package/i18n-config.schema.json +29 -0
  461. package/i18n-meta.schema.json +26 -0
  462. package/i18n.schema.json +42 -0
  463. package/icons.schema.json +655 -0
  464. package/languages.schema.json +23 -0
  465. package/locales/ar-x-fm.json +11 -0
  466. package/locales/ar.json +1388 -0
  467. package/locales/bg.json +1387 -0
  468. package/locales/bn.json +1387 -0
  469. package/locales/ca.json +1387 -0
  470. package/locales/cs.json +1387 -0
  471. package/locales/da.json +1387 -0
  472. package/locales/de.json +1387 -0
  473. package/locales/el.json +1387 -0
  474. package/locales/en-GB.json +27 -0
  475. package/locales/en.json +1386 -0
  476. package/locales/en.meta.json +51 -0
  477. package/locales/es.json +1387 -0
  478. package/locales/eu.json +1387 -0
  479. package/locales/fa.json +1388 -0
  480. package/locales/fi.json +1387 -0
  481. package/locales/fil.json +1387 -0
  482. package/locales/fr.json +1387 -0
  483. package/locales/ga.json +1387 -0
  484. package/locales/gl.json +1387 -0
  485. package/locales/gu.json +1387 -0
  486. package/locales/ha.json +1387 -0
  487. package/locales/he.json +1388 -0
  488. package/locales/hi.json +1387 -0
  489. package/locales/hr.json +1387 -0
  490. package/locales/hu.json +1387 -0
  491. package/locales/id.json +1387 -0
  492. package/locales/ig.json +1387 -0
  493. package/locales/it.json +1387 -0
  494. package/locales/ja.json +1387 -0
  495. package/locales/kn.json +1387 -0
  496. package/locales/ko.json +1387 -0
  497. package/locales/mr.json +1387 -0
  498. package/locales/ms.json +1387 -0
  499. package/locales/nb.json +1387 -0
  500. package/locales/nl.json +1387 -0
  501. package/locales/pl.json +1387 -0
  502. package/locales/pt.json +1387 -0
  503. package/locales/ro.json +1387 -0
  504. package/locales/ru.json +1387 -0
  505. package/locales/sk.json +1387 -0
  506. package/locales/sr.json +1387 -0
  507. package/locales/sv.json +1387 -0
  508. package/locales/ta.json +1387 -0
  509. package/locales/th.json +1387 -0
  510. package/locales/tr.json +1387 -0
  511. package/locales/uk.json +1387 -0
  512. package/locales/ur.json +1388 -0
  513. package/locales/vi.json +1387 -0
  514. package/locales/yo.json +1387 -0
  515. package/locales/zh-Hans.json +1387 -0
  516. package/locales/zh-Hant.json +1387 -0
  517. package/package.json +138 -5
  518. package/store-catalog.schema.json +78 -0
  519. package/theme.schema.json +4668 -0
  520. package/windows/installer.nsi +946 -0
  521. package/windows/languages/Basque.nsh +28 -0
  522. package/windows/languages/Catalan.nsh +28 -0
  523. package/windows/languages/Croatian.nsh +28 -0
  524. package/windows/languages/Czech.nsh +28 -0
  525. package/windows/languages/Danish.nsh +28 -0
  526. package/windows/languages/Finnish.nsh +28 -0
  527. package/windows/languages/Galician.nsh +28 -0
  528. package/windows/languages/Greek.nsh +28 -0
  529. package/windows/languages/Hungarian.nsh +28 -0
  530. package/windows/languages/Indonesian.nsh +28 -0
  531. package/windows/languages/Irish.nsh +28 -0
  532. package/windows/languages/Malay.nsh +28 -0
  533. package/windows/languages/Polish.nsh +28 -0
  534. package/windows/languages/Romanian.nsh +28 -0
  535. package/windows/languages/Serbian.nsh +28 -0
  536. package/windows/languages/Slovak.nsh +28 -0
  537. package/windows/languages/Thai.nsh +28 -0
@@ -0,0 +1,159 @@
1
+ /*
2
+ * Bevelled chrome: the app's own window drawn like the theme it shows when that theme is built from
3
+ * raised and sunken edges (a Windows 98 theme). chromeVars() sets `--wb-c-edges: bevel` and the edge
4
+ * colors; themeStore (and boot.js on the first frame) mirror it on `html[data-wb-edges=bevel]`.
5
+ *
6
+ * The edges are 98.css's (MIT, (c) Jordan Scales, https://github.com/jdan/98.css): a raised part has a
7
+ * highlight and a light line on its top and left and a shadow and a near-black line on its bottom and
8
+ * right; a sunken field has the same four lines the other way round. Here they come from the theme's
9
+ * own face color (--wb-c-face, --wb-c-bevel-*), so any palette can be bevelled.
10
+ *
11
+ * Square corners come from the radius scale (the theme's radius 0 makes --bt-rs 0); this file only
12
+ * draws faces, edges, the title bar and selection. Two levels: the window (title bar, caption
13
+ * buttons, menus, palette, scrollbars) follows the global theme on `html[data-wb-edges]`; each pane
14
+ * (its tabs, toolbar, address field, settings panel) follows its own theme on `.dv-groupview.wb-bevel`,
15
+ * which themeStore sets on every dock group whose theme (the pane's own, else the global one) is
16
+ * bevelled. So a Windows 98 pane is bevelled inside a flat window, and a flat pane stays flat inside
17
+ * a Windows 98 window.
18
+ */
19
+ html[data-wb-edges=bevel], .dv-groupview.wb-bevel {
20
+ --bt-bv-face: var(--wb-c-face, #c0c0c0); --bt-bv-text: var(--wb-c-face-text, #000000);
21
+ --bt-bv-hi: var(--wb-c-bevel-hi, #ffffff); --bt-bv-lt: var(--wb-c-bevel-lt, #dfdfdf); --bt-bv-sh: var(--wb-c-bevel-sh, #808080); --bt-bv-dk: var(--wb-c-bevel-dk, #0a0a0a);
22
+ --bt-bv-out: inset -1px -1px var(--bt-bv-dk), inset 1px 1px var(--bt-bv-hi), inset -2px -2px var(--bt-bv-sh), inset 2px 2px var(--bt-bv-lt);
23
+ --bt-bv-window: inset -1px -1px var(--bt-bv-dk), inset 1px 1px var(--bt-bv-lt), inset -2px -2px var(--bt-bv-sh), inset 2px 2px var(--bt-bv-hi);
24
+ --bt-bv-in: inset -1px -1px var(--bt-bv-hi), inset 1px 1px var(--bt-bv-sh), inset -2px -2px var(--bt-bv-lt), inset 2px 2px var(--bt-bv-dk);
25
+ --bt-bv-pressed: inset -1px -1px var(--bt-bv-hi), inset 1px 1px var(--bt-bv-dk), inset -2px -2px var(--bt-bv-lt), inset 2px 2px var(--bt-bv-sh);
26
+ --bt-bv-etched: inset -1px -1px var(--bt-bv-hi), inset 1px 1px var(--bt-bv-sh), inset -2px -2px var(--bt-bv-sh), inset 2px 2px var(--bt-bv-hi);
27
+ --bt-bv-title: linear-gradient(90deg, var(--wb-c-title-from, #000080), var(--wb-c-title-to, #1084d0));
28
+ --bt-bv-title-text: var(--wb-c-title-text, #ffffff);
29
+ --bt-bv-select: var(--wb-c-select, #000080); --bt-bv-select-text: var(--wb-c-select-text, #ffffff);
30
+ /* The shell's surfaces become the face; text fields stay the theme's background. */
31
+ --bt-ground: var(--bt-bv-face); --bt-chrome: var(--bt-bv-face); --bt-field: var(--wb-c-ground, #ffffff); --bt-raised: var(--bt-bv-face); --bt-raised-2: var(--bt-bv-face);
32
+ --bt-text: var(--bt-bv-text); --bt-text-2: var(--bt-bv-text);
33
+ --bt-hover: transparent; --bt-press: transparent; --bt-shadow-pop: var(--bt-bv-window);
34
+ --bt-ring: 0 0 0 1px var(--bt-bv-dk);
35
+ }
36
+ html[data-wb-edges=bevel] :where(.bt-shell, .bt-menu, .bt-palette, .bt-media, .btp) :focus-visible { outline: 1px dotted var(--bt-bv-text); outline-offset: -4px; }
37
+
38
+ /* ------------------------------------------------------------------------------------------------
39
+ * Title bar: the active window's gradient across the tab row; tabs are a tab control on its floor. */
40
+ html[data-wb-edges=bevel] .bt-shell { background: var(--bt-bv-title) top / 100% var(--bt-titlebar-h) no-repeat, var(--bt-bv-face); }
41
+ html[data-wb-edges=bevel] .bt-shell--empty .bt-titlebar { background: var(--bt-bv-title); }
42
+ .bt-shell .dv-groupview.wb-bevel.bt-group--in-titlebar > .dv-tabs-and-actions-container { background: transparent; }
43
+ .bt-shell .dv-groupview.wb-bevel .dv-tabs-and-actions-container { background: var(--bt-bv-face); }
44
+ .bt-shell .dv-groupview.wb-bevel .dv-tabs-container .dv-tab {
45
+ --bt-tab-bg: var(--bt-bv-face); --bt-tab-fg: var(--bt-bv-text);
46
+ height: 28px; margin: 8px 2px 0 0; box-shadow: inset -1px 0 var(--bt-bv-dk), inset 1px 1px var(--bt-bv-hi), inset -2px 0 var(--bt-bv-sh), inset 2px 2px var(--bt-bv-lt);
47
+ }
48
+ .bt-shell .dv-groupview.wb-bevel.bt-group--in-titlebar .dv-tabs-container .dv-tab { height: 30px; margin-top: 14px; }
49
+ .bt-shell .dv-groupview.wb-bevel .dv-tabs-container .dv-tab.dv-inactive-tab:hover { --bt-tab-bg: var(--bt-bv-face); --bt-tab-fg: var(--bt-bv-text); }
50
+ /* The selected tab stands 2px taller and runs into the toolbar under it, like a 98 tab control. */
51
+ .bt-shell .dv-groupview.wb-bevel .dv-tabs-container .dv-tab.dv-active-tab,
52
+ .bt-shell .dv-groupview.wb-bevel.dv-inactive-group .dv-tabs-container .dv-tab.dv-active-tab {
53
+ --bt-tab-bg: var(--bt-bv-face); --bt-tab-fg: var(--bt-bv-text); z-index: 1; font-weight: 700;
54
+ box-shadow: inset -1px 0 var(--bt-bv-dk), inset 1px 1px var(--bt-bv-hi), inset -2px 0 var(--bt-bv-sh), inset 2px 2px var(--bt-bv-lt);
55
+ }
56
+ .bt-shell .dv-groupview.wb-bevel.bt-group--in-titlebar .dv-tabs-container .dv-tab.dv-active-tab { height: 32px; margin-top: 12px; }
57
+ .bt-shell .dv-groupview.wb-bevel .dv-tabs-container .dv-tab.dv-active-tab::after { display: none; }
58
+ .bt-shell .dv-groupview.wb-bevel.dv-inactive-group .dv-tabs-container .dv-tab.dv-active-tab { font-weight: 400; }
59
+ .bt-shell .dv-groupview.wb-bevel .dv-tabs-container .dv-tab:has(.bt-tab--pinned) + .dv-tab:not(:has(.bt-tab--pinned))::before { background: var(--bt-bv-sh); }
60
+ .dv-groupview.wb-bevel .bt-tab-close { color: var(--bt-bv-text); }
61
+ .dv-groupview.wb-bevel .bt-tab-close:hover { background: transparent; box-shadow: var(--bt-bv-out); }
62
+ .dv-groupview.wb-bevel .bt-tab-close:active { box-shadow: var(--bt-bv-pressed); }
63
+ /* Things drawn straight on the title bar take its label color. */
64
+ html[data-wb-edges=bevel] .bt-group--in-titlebar .bt-group-actions .bt-icon,
65
+ html[data-wb-edges=bevel] .bt-shell .bt-group--in-titlebar .dv-tabs-overflow-dropdown-default { color: var(--bt-bv-title-text); }
66
+ html[data-wb-edges=bevel] .bt-group--in-titlebar .bt-group-actions .bt-icon:hover { color: var(--bt-bv-text); background: var(--bt-bv-face); box-shadow: var(--bt-bv-out); }
67
+ /* Caption buttons: three small raised buttons, the close one apart. */
68
+ html[data-wb-edges=bevel] .bt-captions { align-items: center; gap: 2px; padding-inline-end: 6px; }
69
+ html[data-wb-edges=bevel] .bt-caption { width: 22px; height: 20px; color: var(--bt-bv-text); background: var(--bt-bv-face); box-shadow: var(--bt-bv-out); }
70
+ html[data-wb-edges=bevel] .bt-caption:hover { background: var(--bt-bv-face); color: var(--bt-bv-text); }
71
+ html[data-wb-edges=bevel] .bt-caption:active { box-shadow: var(--bt-bv-pressed); }
72
+ html[data-wb-edges=bevel] .bt-caption--close { margin-inline-start: 2px; }
73
+ html[data-wb-edges=bevel] .bt-caption--close:hover, html[data-wb-edges=bevel] .bt-caption--close:active { background: var(--bt-bv-face); color: var(--bt-bv-text); }
74
+ html[data-wb-edges=bevel] .bt-shell .bt-caption svg { width: 8px; height: 8px; stroke-width: 2; }
75
+ /* Titlebar buttons (account switcher, update chip, workspaces) are raised buttons on the title bar. */
76
+ html[data-wb-edges=bevel] :is(.bt-profile-switcher, .bt-update-chip, .bt-ws-button) { border: 0; background: var(--bt-bv-face); color: var(--bt-bv-text); box-shadow: var(--bt-bv-out); }
77
+ html[data-wb-edges=bevel] :is(.bt-profile-switcher, .bt-update-chip, .bt-ws-button):hover { background: var(--bt-bv-face); }
78
+ html[data-wb-edges=bevel] :is(.bt-profile-switcher[aria-expanded=true], .bt-update-chip:active, .bt-ws-button[aria-expanded=true]) { box-shadow: var(--bt-bv-pressed); }
79
+
80
+ /* ------------------------------------------------------------------------------------------------
81
+ * Toolbar: flat buttons that rise under the pointer, a sunken address field, the wB button raised. */
82
+ .dv-groupview.wb-bevel .bt-addressbar { background: var(--bt-bv-face); border-bottom: 0; box-shadow: inset 0 -1px var(--bt-bv-sh), inset 0 -2px var(--bt-bv-hi); }
83
+ .dv-groupview.wb-bevel .bt-icon { color: var(--bt-bv-text); }
84
+ .dv-groupview.wb-bevel .bt-icon:hover:not(:disabled) { background: transparent; box-shadow: inset -1px -1px var(--bt-bv-sh), inset 1px 1px var(--bt-bv-hi); }
85
+ .dv-groupview.wb-bevel .bt-icon:active:not(:disabled) { box-shadow: inset -1px -1px var(--bt-bv-hi), inset 1px 1px var(--bt-bv-sh); }
86
+ .dv-groupview.wb-bevel .bt-icon:disabled { color: var(--bt-bv-sh); }
87
+ .dv-groupview.wb-bevel .bt-omni { border: 0; background: var(--bt-field); box-shadow: var(--bt-bv-in); padding-inline: 6px; }
88
+ .dv-groupview.wb-bevel .bt-omni:hover { box-shadow: var(--bt-bv-in); }
89
+ .dv-groupview.wb-bevel .bt-omni:focus-within, .dv-groupview.wb-bevel .bt-omni:focus-visible { box-shadow: var(--bt-bv-in); }
90
+ .dv-groupview.wb-bevel .bt-omni-progress { background: var(--bt-bv-select); }
91
+ .dv-groupview.wb-bevel .bt-brand-button { border: 0; background: var(--bt-bv-face); box-shadow: var(--bt-bv-out); }
92
+ .dv-groupview.wb-bevel .bt-brand-button:hover { border: 0; background: var(--bt-bv-face); }
93
+ .dv-groupview.wb-bevel .bt-brand-button:active, .dv-groupview.wb-bevel .bt-pane-menu[aria-expanded=true] { background: var(--bt-bv-face); box-shadow: var(--bt-bv-pressed); }
94
+ .dv-groupview.wb-bevel .bt-brand-button:hover .bt-wb { transform: none; }
95
+
96
+ /* ------------------------------------------------------------------------------------------------
97
+ * Menus, the palette, popovers: a window edge on the face; the row under the pointer is selected. */
98
+ html[data-wb-edges=bevel] :is(.bt-menu, .bt-palette) { border: 0; background: var(--bt-bv-face); box-shadow: var(--bt-bv-window); color: var(--bt-bv-text); }
99
+ html[data-wb-edges=bevel] .bt-menu { padding: 3px; }
100
+ html[data-wb-edges=bevel] .bt-menu button:hover:not(:disabled), html[data-wb-edges=bevel] .bt-menu button:focus-visible,
101
+ html[data-wb-edges=bevel] .bt-menu button[aria-expanded=true] { background: var(--bt-bv-select); color: var(--bt-bv-select-text); outline: 0; }
102
+ html[data-wb-edges=bevel] .bt-menu button:hover:not(:disabled) :is(.bt-glyph, .bt-menu-keys, small, svg),
103
+ html[data-wb-edges=bevel] .bt-menu button:focus-visible :is(.bt-glyph, .bt-menu-keys, small, svg),
104
+ html[data-wb-edges=bevel] .bt-menu button[aria-expanded=true] :is(.bt-glyph, .bt-menu-keys, small, svg) { color: var(--bt-bv-select-text); }
105
+ /* Every line of a selected row (a title and its subline, as in the workspaces and accounts menus) takes the selection's ink. */
106
+ html[data-wb-edges=bevel] .bt-menu button:is(:hover:not(:disabled), :focus-visible, [aria-expanded=true]) * { color: var(--bt-bv-select-text) !important; }
107
+ html[data-wb-edges=bevel] .bt-menu button > .bt-glyph { color: var(--bt-bv-text); }
108
+ html[data-wb-edges=bevel] .bt-menu button:disabled { color: var(--bt-bv-sh); text-shadow: 1px 1px var(--bt-bv-hi); }
109
+ html[data-wb-edges=bevel] .bt-menu-keys { color: var(--bt-bv-text); }
110
+ html[data-wb-edges=bevel] .bt-menu hr { border-top: 1px solid var(--bt-bv-sh); border-bottom: 1px solid var(--bt-bv-hi); margin: 3px 2px; }
111
+ html[data-wb-edges=bevel] .bt-palette::before { display: none; }
112
+ html[data-wb-edges=bevel] .bt-palette-field { border-bottom: 0; box-shadow: inset 0 -1px var(--bt-bv-sh), inset 0 -2px var(--bt-bv-hi); }
113
+ html[data-wb-edges=bevel] .bt-palette-backdrop { background: transparent; }
114
+ html[data-wb-edges=bevel] .bt-kbd { background: var(--bt-bv-face); box-shadow: var(--bt-bv-out); color: var(--bt-bv-text); }
115
+ /* Text fields and steppers inside menus are sunken. */
116
+ html[data-wb-edges=bevel] .bt-menu :is(input[type=text], input:not([type]), .bt-app-zoom-step, .bt-deck-input) { border: 0; background: var(--bt-field); box-shadow: var(--bt-bv-in); }
117
+
118
+ /* ------------------------------------------------------------------------------------------------
119
+ * The settings panel: a dialog face, etched group boxes, raised buttons, sunken fields, a selected
120
+ * section in the title bar's color. */
121
+ .dv-groupview.wb-bevel .btp {
122
+ --c-ground: var(--bt-bv-face); --c-chrome: var(--bt-bv-face); --c-card: var(--bt-bv-face); --c-raise: var(--bt-bv-face); --c-popover: var(--bt-bv-face);
123
+ --c-text: var(--bt-bv-text); --c-line: var(--bt-bv-sh); --c-line-soft: var(--bt-bv-sh); --c-line-strong: var(--bt-bv-dk);
124
+ --c-accent: var(--bt-bv-select); --c-accent-ink: var(--bt-bv-select-text); --c-brush: var(--bt-bv-title);
125
+ letter-spacing: 0; -webkit-font-smoothing: auto;
126
+ }
127
+ .dv-groupview.wb-bevel .btp-head { background: var(--bt-bv-face); }
128
+ .dv-groupview.wb-bevel .btp-head::after { opacity: 1; height: 2px; background: none; box-shadow: inset 0 1px var(--bt-bv-sh), inset 0 -1px var(--bt-bv-hi); }
129
+ .dv-groupview.wb-bevel .btp-nav { border-bottom: 0; box-shadow: inset 0 -1px var(--bt-bv-sh), inset 0 -2px var(--bt-bv-hi); }
130
+ .dv-groupview.wb-bevel .btp-nav button { color: var(--bt-bv-text); }
131
+ .dv-groupview.wb-bevel .btp-nav button:hover { background: transparent; box-shadow: inset -1px -1px var(--bt-bv-sh), inset 1px 1px var(--bt-bv-hi); }
132
+ .dv-groupview.wb-bevel .btp-nav button.is-on { background: var(--bt-bv-select); color: var(--bt-bv-select-text); box-shadow: none; }
133
+ .dv-groupview.wb-bevel .btp-nav button.is-on svg { color: var(--bt-bv-select-text); }
134
+ .dv-groupview.wb-bevel .btp .bt-card { border: 0; box-shadow: var(--bt-bv-etched); padding: 2px; }
135
+ .dv-groupview.wb-bevel .btp :is(.bt-btn, .bt-select-button, .bt-stepper button, .bt-inputrow button) { border: 0; background: var(--bt-bv-face); color: var(--bt-bv-text); box-shadow: var(--bt-bv-out); }
136
+ .dv-groupview.wb-bevel .btp :is(.bt-btn, .bt-select-button, .bt-stepper button, .bt-inputrow button):hover:not(:disabled) { border: 0; background: var(--bt-bv-face); }
137
+ .dv-groupview.wb-bevel .btp :is(.bt-btn, .bt-stepper button, .bt-inputrow button):active:not(:disabled) { transform: none; box-shadow: var(--bt-bv-pressed); }
138
+ /* The default button carries the extra dark frame of a 98 dialog's default button. */
139
+ .dv-groupview.wb-bevel .btp .bt-btn.is-primary { box-shadow: inset 0 0 0 1px var(--bt-bv-dk), inset -2px -2px var(--bt-bv-dk), inset 2px 2px var(--bt-bv-hi), inset -3px -3px var(--bt-bv-sh), inset 3px 3px var(--bt-bv-lt); }
140
+ .dv-groupview.wb-bevel .btp .bt-btn.is-ghost { box-shadow: none; }
141
+ .dv-groupview.wb-bevel .btp .bt-btn.is-ghost:hover:not(:disabled) { box-shadow: var(--bt-bv-out); }
142
+ .dv-groupview.wb-bevel .btp .bt-btn:disabled { opacity: 1; color: var(--bt-bv-sh); text-shadow: 1px 1px var(--bt-bv-hi); }
143
+ .dv-groupview.wb-bevel .btp .bt-btn.is-danger { background: var(--bt-bv-face); color: var(--c-danger); }
144
+ .dv-groupview.wb-bevel .btp :is(.bt-input, .btp-input, .bt-inputrow, .bt-search, .bt-hex, .bt-code, .wb-builder-name) { border: 0; background: var(--wb-c-ground, #ffffff); box-shadow: var(--bt-bv-in); }
145
+ .dv-groupview.wb-bevel .btp :is(.bt-input, .btp-input, .bt-inputrow, .bt-search):is(:focus, :focus-within) { box-shadow: var(--bt-bv-in); }
146
+ .dv-groupview.wb-bevel .btp .bt-seg { border: 0; background: var(--bt-bv-face); box-shadow: var(--bt-bv-in); }
147
+ .dv-groupview.wb-bevel .btp .bt-seg-thumb { background: var(--bt-bv-face); box-shadow: var(--bt-bv-out); }
148
+ .dv-groupview.wb-bevel .btp .bt-toggle { box-shadow: var(--bt-bv-in); }
149
+ .dv-groupview.wb-bevel .btp .bt-toggle-knob { box-shadow: var(--bt-bv-out); background: var(--bt-bv-face); }
150
+ .dv-groupview.wb-bevel .btp :is(.bt-select-list, .bt-popover) { border: 0; background: var(--bt-bv-face); box-shadow: var(--bt-bv-window); }
151
+ .dv-groupview.wb-bevel .btp .bt-select-list li.is-active { background: var(--bt-bv-select); color: var(--bt-bv-select-text); }
152
+
153
+ /* Classic scrollbars: a dithered track, raised thumb and arrows. */
154
+ html[data-wb-edges=bevel] :is(.bt-shell, .bt-menu, .bt-palette, .btp) * { scrollbar-width: auto; scrollbar-color: auto; }
155
+ html[data-wb-edges=bevel] ::-webkit-scrollbar { width: 16px; height: 16px; }
156
+ html[data-wb-edges=bevel] ::-webkit-scrollbar-track { background: repeating-conic-gradient(var(--bt-bv-face) 0 25%, var(--bt-bv-hi) 0 50%) 0 0 / 2px 2px; }
157
+ html[data-wb-edges=bevel] ::-webkit-scrollbar-thumb { background: var(--bt-bv-face); box-shadow: var(--bt-bv-out); border-radius: 0; }
158
+ html[data-wb-edges=bevel] ::-webkit-scrollbar-button:single-button { display: block; width: 16px; height: 16px; background: var(--bt-bv-face); box-shadow: var(--bt-bv-out); }
159
+ html[data-wb-edges=bevel] ::-webkit-scrollbar-corner { background: var(--bt-bv-face); }
@@ -0,0 +1,14 @@
1
+ /* Find in page (FindBar.tsx): the find field takes the address field's place in its pane's toolbar,
2
+ so it borrows that field's shape (.bt-omni, shell.css) and only adds what is its own. */
3
+ .bt-omni.bt-find input { font: 400 13px/1 var(--bt-ui); }
4
+ .bt-omni.bt-find input::placeholder { color: var(--bt-faint); }
5
+ .bt-find-count { flex: none; padding-inline: 6px 4px; color: var(--bt-muted); font: 500 11.5px/1 var(--bt-mono); font-variant-numeric: tabular-nums; white-space: nowrap; }
6
+ .bt-find.is-none .bt-find-count { color: var(--bt-danger); }
7
+ .bt-find .bt-omni-action { color: var(--bt-muted); }
8
+ .bt-find .bt-omni-action:disabled { color: var(--bt-faint); opacity: .6; cursor: default; background: transparent; }
9
+ .bt-shell .bt-find .bt-omni-action svg { width: 15px; height: 15px; }
10
+ .bt-shell .bt-find .bt-find-up { transform: rotate(180deg); }
11
+
12
+ /* In a deck column the bar lies over the column's header (DeckView.tsx): same field, the column's width. */
13
+ .bt-col-find { position: absolute; inset: 0; z-index: 3; border-radius: inherit; display: flex; align-items: center; padding-inline: 8px; background: var(--bt-chrome); }
14
+ .bt-col-find .bt-find { flex: 1; min-width: 0; height: 32px; }
@@ -0,0 +1,248 @@
1
+ export declare const FRAME_MESSAGES: {
2
+ readonly 'wb.acct.actions': "{name} actions";
3
+ readonly 'wb.acct.add': "Add account";
4
+ readonly 'wb.acct.addHint': "Signs in to {site} in a new pane";
5
+ readonly 'wb.acct.buttonLabel': "Accounts. This pane: {name}";
6
+ readonly 'wb.acct.buttonTitle': "This pane: {pane}\nNew tabs: {tabs}";
7
+ readonly 'wb.acct.goToPane': "Go to pane";
8
+ readonly 'wb.acct.headAfter': "new tab";
9
+ readonly 'wb.acct.headBefore': "Click to open its feed beside this pane ·";
10
+ readonly 'wb.acct.more': "More";
11
+ readonly 'wb.acct.moreFor': "More for {name}";
12
+ readonly 'wb.acct.newTabs': "New tabs";
13
+ readonly 'wb.acct.newTabsOpenHere': "New tabs open here";
14
+ readonly 'wb.acct.newTabsTitle': "New tabs open in this account";
15
+ readonly 'wb.acct.notRemoved': "Not removed: a tab of this account is still open. Close it and try again.";
16
+ readonly 'wb.acct.openBeside': "Open beside";
17
+ readonly 'wb.acct.openNewTab': "Open in new tab";
18
+ readonly 'wb.acct.remove': "Remove from this computer…";
19
+ readonly 'wb.acct.removeConfirm': "Remove “{name}” from this computer? {tabs, plural, =0 {} one {Its open tab closes, } other {Its # open tabs close, }}its sign-in and site data here are deleted. The {site} account itself is not touched.";
20
+ readonly 'wb.acct.rowLabel': "{name}. {hint}";
21
+ readonly 'wb.acct.rowLabelNew': "{name}, not signed in. {hint}";
22
+ readonly 'wb.acct.rowLabelOut': "{name}, signed out. {hint}";
23
+ readonly 'wb.acct.shift': "Shift";
24
+ readonly 'wb.acct.shiftClick': "Shift click";
25
+ readonly 'wb.acct.signIn': "Sign in on {site}";
26
+ readonly 'wb.acct.signInBeside': "Sign in beside";
27
+ readonly 'wb.acct.signOut': "Sign out on {site}…";
28
+ readonly 'wb.acct.signOutTitle': "Opens {site}’s own sign-out page for this account";
29
+ readonly 'wb.acct.signedOut': "Signed out · {handle}";
30
+ readonly 'wb.acct.thisPane': "This pane";
31
+ readonly 'wb.acct.title': "Accounts";
32
+ readonly 'wb.acct.useForNewTabs': "Use for new tabs";
33
+ readonly 'wb.addcol.account': "Account";
34
+ readonly 'wb.addcol.add': "add";
35
+ readonly 'wb.addcol.close': "close";
36
+ readonly 'wb.addcol.signedOut': "signed out";
37
+ readonly 'wb.addcol.submit': "Add column";
38
+ readonly 'wb.addcol.to': "to {deck}";
39
+ readonly 'wb.addcol.type': "Column type";
40
+ readonly 'wb.backup.alertsOn': "On · {count, plural, one {# keyword} other {# keywords}}";
41
+ readonly 'wb.backup.detail.addsAccounts': "Adds {names} (sign in again there; logins are never in a backup)";
42
+ readonly 'wb.backup.detail.changed': "{count} changed: {names}";
43
+ readonly 'wb.backup.detail.css': "{count, plural, one {# character} other {# characters}} (here: {here})";
44
+ readonly 'wb.backup.detail.customizations': "Accent or customizations differ";
45
+ readonly 'wb.backup.detail.decks': "{count, plural, =0 {No decks} one {# deck: {names}} other {# decks: {names}}}; replaces the decks here";
46
+ readonly 'wb.backup.detail.differs': "Differs from this computer";
47
+ readonly 'wb.backup.detail.drafts': "{count, plural, one {# draft} other {# drafts}}, added as new drafts (existing ones stay; exact duplicates are skipped)";
48
+ readonly 'wb.backup.detail.importedThemes': "{count, plural, one {# imported theme} other {# imported themes}}: {names}";
49
+ readonly 'wb.backup.detail.keywords': "{count, plural, one {# keyword} other {# keywords}}";
50
+ readonly 'wb.backup.detail.newPlugins': "{count, plural, one {# new plugin file} other {# new plugin files}}: {names}";
51
+ readonly 'wb.backup.detail.noneRemoved': "No account is removed.";
52
+ readonly 'wb.backup.detail.renames': "Renames/recolors {names}";
53
+ readonly 'wb.backup.detail.same': "Same as on this computer";
54
+ readonly 'wb.backup.detail.scopes': "Account/pane themes";
55
+ readonly 'wb.backup.detail.scopesAccounts': "Account/pane themes: {count, plural, one {# account} other {# accounts}}";
56
+ readonly 'wb.backup.detail.settingsDiffer': "{count, plural, one {# setting differs} other {# settings differ}}: {names}";
57
+ readonly 'wb.backup.detail.theme': "Theme: {from} → {to}";
58
+ readonly 'wb.backup.detail.turnsOff': "Turns off: {names}";
59
+ readonly 'wb.backup.detail.turnsOn': "Turns on: {names}";
60
+ readonly 'wb.backup.detail.tweaksDiffer': "{count, plural, one {# tweak differs} other {# tweaks differ}}: {names}";
61
+ readonly 'wb.backup.detail.workspaces': "{count, plural, one {# workspace} other {# workspaces}}; replaces the list here";
62
+ readonly 'wb.backup.detail.workspacesNew': "{count, plural, one {# workspace} other {# workspaces}} (new: {names}); replaces the list here";
63
+ readonly 'wb.backup.fromDevice': "Settings from {device}";
64
+ readonly 'wb.backup.section.accounts': "Accounts";
65
+ readonly 'wb.backup.section.alerts': "Keyword alerts";
66
+ readonly 'wb.backup.section.customCss': "Custom CSS";
67
+ readonly 'wb.backup.section.decks': "Decks";
68
+ readonly 'wb.backup.section.drafts': "Drafts";
69
+ readonly 'wb.backup.section.features': "{site} tweaks";
70
+ readonly 'wb.backup.section.plugins': "Plugins";
71
+ readonly 'wb.backup.section.settings': "Browser & links";
72
+ readonly 'wb.backup.section.themes': "Themes";
73
+ readonly 'wb.backup.section.workspaces': "Workspaces";
74
+ readonly 'wb.chip.dev.errors': "{count, plural, one {# error} other {# errors}}";
75
+ readonly 'wb.chip.dev.label': "Dev";
76
+ readonly 'wb.chip.dev.title': "Developer mode: plugins, custom CSS and the watched theme reload on save";
77
+ readonly 'wb.chip.sync.title': "Settings synced from {device} {when}. Review what would change before anything is applied.";
78
+ readonly 'wb.common.cancel': "Cancel";
79
+ readonly 'wb.common.close': "Close";
80
+ readonly 'wb.common.loading': "Loading…";
81
+ readonly 'wb.common.off': "Off";
82
+ readonly 'wb.common.open': "Open";
83
+ readonly 'wb.common.remove': "Remove";
84
+ readonly 'wb.common.removeItem': "Remove {item}";
85
+ readonly 'wb.common.save': "Save";
86
+ readonly 'wb.deck.addColumn': "Add a column";
87
+ readonly 'wb.deck.backTo': "Back to {title}";
88
+ readonly 'wb.deck.column': "Column";
89
+ readonly 'wb.deck.columnCount': "{count, plural, one {# column} other {# columns}}";
90
+ readonly 'wb.deck.columnLabel': "{title} column";
91
+ readonly 'wb.deck.emptyHint': "Columns of {site} side by side, each in the account you pick. Every post, like and reply is {site}’s own.";
92
+ readonly 'wb.deck.filters': "Filters";
93
+ readonly 'wb.deck.filters.label': "Column filters";
94
+ readonly 'wb.deck.gone': "This deck is gone";
95
+ readonly 'wb.deck.goneHint': "It was removed in another window or from settings.";
96
+ readonly 'wb.deck.hideReplies': "Hide replies";
97
+ readonly 'wb.deck.hideRepliesHint': "Replies shown outside their thread";
98
+ readonly 'wb.deck.hideReposts': "Hide reposts";
99
+ readonly 'wb.deck.hideRepostsHint': "Only original posts";
100
+ readonly 'wb.deck.jumpUnread': "Jump to unread";
101
+ readonly 'wb.deck.jumpUnreadTitle': "Jump to unread (Alt+U)";
102
+ readonly 'wb.deck.key.columns': "columns";
103
+ readonly 'wb.deck.key.jump': "jump";
104
+ readonly 'wb.deck.key.post': "post";
105
+ readonly 'wb.deck.key.read': "mark read";
106
+ readonly 'wb.deck.markRead': "Mark all read";
107
+ readonly 'wb.deck.mediaOnly': "Media only";
108
+ readonly 'wb.deck.mediaOnlyHint': "Posts with photos, videos or cards";
109
+ readonly 'wb.deck.memoryTitle': "Each visible column is a full {site} page (about {count} fit one page; off-page columns are parked).";
110
+ readonly 'wb.deck.menu': "Column menu";
111
+ readonly 'wb.deck.moveLeft': "Move left";
112
+ readonly 'wb.deck.moveRight': "Move right";
113
+ readonly 'wb.deck.muteLabel': "Mute a word or regular expression";
114
+ readonly 'wb.deck.mutePlaceholder': "Mute a word or /regex/";
115
+ readonly 'wb.deck.newCount': "{count} new";
116
+ readonly 'wb.deck.next': "Next page";
117
+ readonly 'wb.deck.nextTitle': "Next page (Alt+PageDown)";
118
+ readonly 'wb.deck.onScreen': "{visible}/{total} on screen";
119
+ readonly 'wb.deck.openAsTab': "Open as tab";
120
+ readonly 'wb.deck.page': "Page {n}";
121
+ readonly 'wb.deck.pages': "Deck pages";
122
+ readonly 'wb.deck.post': "Post";
123
+ readonly 'wb.deck.postTitle': "Post (Ctrl+Alt+N)";
124
+ readonly 'wb.deck.prev': "Previous page";
125
+ readonly 'wb.deck.prevTitle': "Previous page (Alt+PageUp)";
126
+ readonly 'wb.deck.remove': "Remove column";
127
+ readonly 'wb.deck.settings': "Deck settings";
128
+ readonly 'wb.deck.title': "Deck";
129
+ readonly 'wb.deck.unreadLabel': "{count} unread, jump to them";
130
+ readonly 'wb.deck.unreadTitle': "Unread in this deck";
131
+ readonly 'wb.deck.viewingPost': "Viewing a post";
132
+ readonly 'wb.deck.width': "Width";
133
+ readonly 'wb.deck.widthLabel': "Column width";
134
+ readonly 'wb.dev.reloaded': "Reloaded {file}";
135
+ readonly 'wb.media.add': "+ Add";
136
+ readonly 'wb.media.addFolder': "Add folder…";
137
+ readonly 'wb.media.attachTitle': "{name} — attach to the composer";
138
+ readonly 'wb.media.clickToAttach': "Click to attach to the {site} composer";
139
+ readonly 'wb.media.clipEmpty': "Copy an image or some text and it appears here.";
140
+ readonly 'wb.media.clipOff': "Clipboard history is off. Turn it on in Settings to keep your last {count} copied images and texts on this device.";
141
+ readonly 'wb.media.clipboard': "Clipboard";
142
+ readonly 'wb.media.closeTitle': "Close (Esc)";
143
+ readonly 'wb.media.copiedImage': "Copied image";
144
+ readonly 'wb.media.gallery': "Gallery";
145
+ readonly 'wb.media.image': "Image";
146
+ readonly 'wb.media.noComposer': "Open an {site} tab with a composer first.";
147
+ readonly 'wb.media.noImages': "No images in these folders yet.";
148
+ readonly 'wb.media.now': "now";
149
+ readonly 'wb.media.pickFolders': "Pick folders (screenshots, exports) to see their newest images here.";
150
+ readonly 'wb.media.putIn': "Put into the composer";
151
+ readonly 'wb.media.removeFromHistory': "Remove from history";
152
+ readonly 'wb.media.title': "Gallery and clipboard";
153
+ readonly 'wb.media.youPost': "You still post it yourself";
154
+ readonly 'wb.newtab.commands': "Commands";
155
+ readonly 'wb.newtab.enter': "Enter";
156
+ readonly 'wb.newtab.goTo': "Go to";
157
+ readonly 'wb.newtab.openAs': "Open as";
158
+ readonly 'wb.newtab.openLinksAs': "Open links as";
159
+ readonly 'wb.newtab.recent': "Recently closed";
160
+ readonly 'wb.newtab.reopen': "Reopen tab";
161
+ readonly 'wb.newtab.split': "Split";
162
+ readonly 'wb.palette.active': "Active";
163
+ readonly 'wb.palette.addColumn': "Add column…";
164
+ readonly 'wb.palette.focusColumn': "Focus {name}";
165
+ readonly 'wb.palette.group.deck': "Deck";
166
+ readonly 'wb.palette.group.profiles': "Profiles";
167
+ readonly 'wb.palette.group.tabs': "Tabs";
168
+ readonly 'wb.palette.group.workspaces': "Workspaces";
169
+ readonly 'wb.palette.media': "Gallery & clipboard";
170
+ readonly 'wb.palette.navigate': "Navigate";
171
+ readonly 'wb.palette.newDeck': "New deck";
172
+ readonly 'wb.palette.newTabAs': "New tab as {name}";
173
+ readonly 'wb.palette.next': "Next";
174
+ readonly 'wb.palette.none': "No matches";
175
+ readonly 'wb.palette.onStart': "on start";
176
+ readonly 'wb.palette.openPower': "Open deck";
177
+ readonly 'wb.palette.plugins': "Plugins";
178
+ readonly 'wb.palette.switchTo': "Switch to {name}";
179
+ readonly 'wb.palette.title': "Command palette";
180
+ readonly 'wb.pane.followAccount': "Follow account";
181
+ readonly 'wb.pane.followApp': "Follow app";
182
+ readonly 'wb.pane.theme': "Theme for this pane";
183
+ readonly 'wb.pane.themesLink': "Account and pane themes…";
184
+ readonly 'wb.shell.deck.default': "Deck";
185
+ readonly 'wb.shell.menu.close': "Close tab";
186
+ readonly 'wb.shell.menu.closeOthers': "Close other tabs";
187
+ readonly 'wb.shell.menu.copyLink': "Copy link";
188
+ readonly 'wb.shell.menu.duplicate': "Duplicate";
189
+ readonly 'wb.shell.menu.openBrowser': "Open in your browser";
190
+ readonly 'wb.shell.menu.paneTheme': "Theme for this pane…";
191
+ readonly 'wb.shell.menu.pin': "Pin tab";
192
+ readonly 'wb.shell.menu.reload': "Reload";
193
+ readonly 'wb.shell.menu.splitDown': "Split down";
194
+ readonly 'wb.shell.menu.splitRight': "Split right";
195
+ readonly 'wb.shell.menu.unpin': "Unpin tab";
196
+ readonly 'wb.shell.tab.account': "Account: {name}";
197
+ readonly 'wb.shell.tab.closeTitle': "Close (Ctrl+W)";
198
+ readonly 'wb.shell.tab.new': "New tab";
199
+ readonly 'wb.shell.tab.newTitle': "New tab (Ctrl+T)";
200
+ readonly 'wb.shell.window.maximize': "Maximize";
201
+ readonly 'wb.shell.window.minimize': "Minimize";
202
+ readonly 'wb.shell.window.restore': "Restore";
203
+ readonly 'wb.web.address': "Address";
204
+ readonly 'wb.web.addressValue': "Address: {url}";
205
+ readonly 'wb.web.back': "Back";
206
+ readonly 'wb.web.backTitle': "Back (Alt+←)";
207
+ readonly 'wb.web.forward': "Forward";
208
+ readonly 'wb.web.forwardTitle': "Forward (Alt+→)";
209
+ readonly 'wb.web.insecure': "Not secure";
210
+ readonly 'wb.web.paneAccount': "This pane’s account: {name}";
211
+ readonly 'wb.web.reloadTitle': "Reload (Ctrl+R)";
212
+ readonly 'wb.web.splitMore': "Split and pane options";
213
+ readonly 'wb.web.splitTitle': "Split right (Ctrl+\\)";
214
+ readonly 'wb.web.stop': "Stop";
215
+ readonly 'wb.web.tabKey': "Tab";
216
+ readonly 'wb.ws.default': "My workspace";
217
+ readonly 'wb.ws.defaultN': "My workspace {n}";
218
+ readonly 'wb.ws.deleteConfirm': "Delete {name}? Open tabs stay open.";
219
+ readonly 'wb.ws.deleteNamed': "Delete {name}";
220
+ readonly 'wb.ws.empty': "No saved workspaces yet. Save this layout to switch back to it any time.";
221
+ readonly 'wb.ws.err.id': "Invalid workspace id.";
222
+ readonly 'wb.ws.err.noLayout': "There is no layout to save.";
223
+ readonly 'wb.ws.err.noTabs': "There are no tabs to save.";
224
+ readonly 'wb.ws.err.tooLarge': "This layout is too large to save as a workspace.";
225
+ readonly 'wb.ws.err.tooMany': "At most {count} workspaces. Delete one first.";
226
+ readonly 'wb.ws.hint': "Tabs, splits, decks, accounts and pane themes, reopened in one click";
227
+ readonly 'wb.ws.name': "Workspace name";
228
+ readonly 'wb.ws.namePlaceholder': "Name, e.g. Launch day";
229
+ readonly 'wb.ws.named': "Workspace {name}";
230
+ readonly 'wb.ws.newName': "New name for {name}";
231
+ readonly 'wb.ws.notReady': "The window is not ready yet.";
232
+ readonly 'wb.ws.onStart': "On start";
233
+ readonly 'wb.ws.onStartTitle': "Opens when wayBetter starts";
234
+ readonly 'wb.ws.openNow': "open now";
235
+ readonly 'wb.ws.rename': "Rename";
236
+ readonly 'wb.ws.renameNamed': "Rename {name}";
237
+ readonly 'wb.ws.save': "Save layout as workspace…";
238
+ readonly 'wb.ws.saveMeta': "{count, plural, one {# open tab} other {# open tabs}} · also in Ctrl+K";
239
+ readonly 'wb.ws.setStart': "Open this workspace when wayBetter starts";
240
+ readonly 'wb.ws.setStartNamed': "Open {name} on start";
241
+ readonly 'wb.ws.stopStart': "Stop opening on start";
242
+ readonly 'wb.ws.stopStartNamed': "Stop opening {name} on start";
243
+ readonly 'wb.ws.tabs': "{count, plural, one {# tab} other {# tabs}}";
244
+ readonly 'wb.ws.title': "Workspaces";
245
+ readonly 'wb.ws.update': "Save the current layout over this workspace";
246
+ readonly 'wb.ws.updateNamed': "Update {name} with the current layout";
247
+ };
248
+ export type FrameKey = keyof typeof FRAME_MESSAGES;