@happyvertical/smrt-svelte 0.55.6 → 0.55.8

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 (318) hide show
  1. package/AGENTS.md +9 -31
  2. package/README.md +195 -5
  3. package/agents/browser-ai.md +47 -0
  4. package/agents/command-palette.md +85 -0
  5. package/agents/import-export.md +62 -0
  6. package/agents/overview-surfaces.md +255 -0
  7. package/agents/screens.md +57 -0
  8. package/agents/workspace.md +202 -5
  9. package/dist/browser-ai/adapters/stt/dictation-source.d.ts.map +1 -1
  10. package/dist/browser-ai/adapters/stt/dictation-source.js +8 -2
  11. package/dist/browser-ai/adapters/stt/factory.d.ts +6 -3
  12. package/dist/browser-ai/adapters/stt/factory.d.ts.map +1 -1
  13. package/dist/browser-ai/adapters/stt/factory.js +19 -9
  14. package/dist/browser-ai/adapters/stt/index.d.ts +3 -1
  15. package/dist/browser-ai/adapters/stt/index.d.ts.map +1 -1
  16. package/dist/browser-ai/adapters/stt/index.js +3 -1
  17. package/dist/browser-ai/adapters/stt/local-speech-model.d.ts +111 -0
  18. package/dist/browser-ai/adapters/stt/local-speech-model.d.ts.map +1 -0
  19. package/dist/browser-ai/adapters/stt/local-speech-model.js +377 -0
  20. package/dist/browser-ai/adapters/stt/local-speech.d.ts +82 -0
  21. package/dist/browser-ai/adapters/stt/local-speech.d.ts.map +1 -0
  22. package/dist/browser-ai/adapters/stt/local-speech.js +317 -0
  23. package/dist/browser-ai/adapters/stt/local-speech.worker.d.ts +2 -0
  24. package/dist/browser-ai/adapters/stt/local-speech.worker.d.ts.map +1 -0
  25. package/dist/browser-ai/adapters/stt/local-speech.worker.js +32 -0
  26. package/dist/browser-ai/adapters/stt/transformers-env.d.ts +8 -0
  27. package/dist/browser-ai/adapters/stt/transformers-env.d.ts.map +1 -0
  28. package/dist/browser-ai/adapters/stt/transformers-env.js +17 -0
  29. package/dist/browser-ai/adapters/stt/types.d.ts +54 -9
  30. package/dist/browser-ai/adapters/stt/types.d.ts.map +1 -1
  31. package/dist/browser-ai/adapters/tts/browser-synthesis.d.ts +5 -0
  32. package/dist/browser-ai/adapters/tts/browser-synthesis.d.ts.map +1 -1
  33. package/dist/browser-ai/adapters/tts/browser-synthesis.js +83 -55
  34. package/dist/browser-ai/capabilities/speech-probe.d.ts +29 -0
  35. package/dist/browser-ai/capabilities/speech-probe.d.ts.map +1 -0
  36. package/dist/browser-ai/capabilities/speech-probe.js +19 -0
  37. package/dist/browser-ai/core/errors.d.ts +9 -0
  38. package/dist/browser-ai/core/errors.d.ts.map +1 -1
  39. package/dist/browser-ai/core/errors.js +12 -0
  40. package/dist/browser-ai/index.d.ts +1 -0
  41. package/dist/browser-ai/index.d.ts.map +1 -1
  42. package/dist/browser-ai/index.js +1 -0
  43. package/dist/components/app/AppShell.svelte +587 -33
  44. package/dist/components/app/AppShell.svelte.d.ts +75 -4
  45. package/dist/components/app/AppShell.svelte.d.ts.map +1 -1
  46. package/dist/components/app/DockToggles.svelte +0 -1
  47. package/dist/components/app/dock-toggle.d.ts +7 -1
  48. package/dist/components/app/dock-toggle.d.ts.map +1 -1
  49. package/dist/components/app/index.d.ts +2 -1
  50. package/dist/components/app/index.d.ts.map +1 -1
  51. package/dist/components/app/slot-item.d.ts +21 -0
  52. package/dist/components/app/slot-item.d.ts.map +1 -0
  53. package/dist/components/app/slot-item.js +1 -0
  54. package/dist/components/command-palette/CommandPalette.svelte +75 -0
  55. package/dist/components/command-palette/CommandPalette.svelte.d.ts +22 -0
  56. package/dist/components/command-palette/CommandPalette.svelte.d.ts.map +1 -0
  57. package/dist/components/command-palette/CommandPaletteDialog.svelte +406 -0
  58. package/dist/components/command-palette/CommandPaletteDialog.svelte.d.ts +18 -0
  59. package/dist/components/command-palette/CommandPaletteDialog.svelte.d.ts.map +1 -0
  60. package/dist/components/command-palette/CommandPaletteTrigger.svelte +91 -0
  61. package/dist/components/command-palette/CommandPaletteTrigger.svelte.d.ts +17 -0
  62. package/dist/components/command-palette/CommandPaletteTrigger.svelte.d.ts.map +1 -0
  63. package/dist/components/command-palette/context.d.ts +18 -0
  64. package/dist/components/command-palette/context.d.ts.map +1 -0
  65. package/dist/components/command-palette/context.js +38 -0
  66. package/dist/components/command-palette/controller.svelte.d.ts +70 -0
  67. package/dist/components/command-palette/controller.svelte.d.ts.map +1 -0
  68. package/dist/components/command-palette/controller.svelte.js +379 -0
  69. package/dist/components/command-palette/hotkeys.d.ts +30 -0
  70. package/dist/components/command-palette/hotkeys.d.ts.map +1 -0
  71. package/dist/components/command-palette/hotkeys.js +161 -0
  72. package/dist/components/command-palette/index.d.ts +19 -0
  73. package/dist/components/command-palette/index.d.ts.map +1 -0
  74. package/dist/components/command-palette/index.js +17 -0
  75. package/dist/components/command-palette/match.d.ts +38 -0
  76. package/dist/components/command-palette/match.d.ts.map +1 -0
  77. package/dist/components/command-palette/match.js +172 -0
  78. package/dist/components/command-palette/providers.d.ts +159 -0
  79. package/dist/components/command-palette/providers.d.ts.map +1 -0
  80. package/dist/components/command-palette/providers.js +345 -0
  81. package/dist/components/command-palette/rank.d.ts +20 -0
  82. package/dist/components/command-palette/rank.d.ts.map +1 -0
  83. package/dist/components/command-palette/rank.js +74 -0
  84. package/dist/components/command-palette/types.d.ts +119 -0
  85. package/dist/components/command-palette/types.d.ts.map +1 -0
  86. package/dist/components/command-palette/types.js +10 -0
  87. package/dist/components/command-palette/use-provider.svelte.d.ts +14 -0
  88. package/dist/components/command-palette/use-provider.svelte.d.ts.map +1 -0
  89. package/dist/components/command-palette/use-provider.svelte.js +23 -0
  90. package/dist/components/forms/AddressInput.svelte +2 -15
  91. package/dist/components/forms/AddressInput.svelte.d.ts.map +1 -1
  92. package/dist/components/forms/DateRangeInput.svelte +2 -15
  93. package/dist/components/forms/DateRangeInput.svelte.d.ts.map +1 -1
  94. package/dist/components/forms/DateTimeInput.svelte +8 -15
  95. package/dist/components/forms/DateTimeInput.svelte.d.ts.map +1 -1
  96. package/dist/components/forms/MeasurementInput.svelte +2 -15
  97. package/dist/components/forms/MeasurementInput.svelte.d.ts.map +1 -1
  98. package/dist/components/forms/MoneyInput.svelte +8 -25
  99. package/dist/components/forms/MoneyInput.svelte.d.ts.map +1 -1
  100. package/dist/components/forms/NumberInput.svelte +7 -15
  101. package/dist/components/forms/NumberInput.svelte.d.ts.map +1 -1
  102. package/dist/components/forms/PhoneInput.svelte +7 -15
  103. package/dist/components/forms/PhoneInput.svelte.d.ts.map +1 -1
  104. package/dist/components/forms/SelectInput.svelte +34 -40
  105. package/dist/components/forms/SelectInput.svelte.d.ts.map +1 -1
  106. package/dist/components/forms/TextInput.svelte +20 -37
  107. package/dist/components/forms/TextInput.svelte.d.ts.map +1 -1
  108. package/dist/components/forms/TextareaInput.svelte +19 -35
  109. package/dist/components/forms/TextareaInput.svelte.d.ts.map +1 -1
  110. package/dist/components/import-export/ImportExport.svelte +678 -0
  111. package/dist/components/import-export/ImportExport.svelte.d.ts +5 -0
  112. package/dist/components/import-export/ImportExport.svelte.d.ts.map +1 -0
  113. package/dist/components/import-export/collection-adapter.d.ts +35 -0
  114. package/dist/components/import-export/collection-adapter.d.ts.map +1 -0
  115. package/dist/components/import-export/collection-adapter.js +42 -0
  116. package/dist/components/import-export/csv.d.ts +60 -0
  117. package/dist/components/import-export/csv.d.ts.map +1 -0
  118. package/dist/components/import-export/csv.js +192 -0
  119. package/dist/components/import-export/download.d.ts +4 -0
  120. package/dist/components/import-export/download.d.ts.map +1 -0
  121. package/dist/components/import-export/download.js +17 -0
  122. package/dist/components/import-export/export.d.ts +25 -0
  123. package/dist/components/import-export/export.d.ts.map +1 -0
  124. package/dist/components/import-export/export.js +68 -0
  125. package/dist/components/import-export/fields.d.ts +48 -0
  126. package/dist/components/import-export/fields.d.ts.map +1 -0
  127. package/dist/components/import-export/fields.js +103 -0
  128. package/dist/components/import-export/index.d.ts +12 -0
  129. package/dist/components/import-export/index.d.ts.map +1 -0
  130. package/dist/components/import-export/index.js +9 -0
  131. package/dist/components/import-export/mapping.d.ts +12 -0
  132. package/dist/components/import-export/mapping.d.ts.map +1 -0
  133. package/dist/components/import-export/mapping.js +38 -0
  134. package/dist/components/import-export/props.d.ts +34 -0
  135. package/dist/components/import-export/props.d.ts.map +1 -0
  136. package/dist/components/import-export/props.js +1 -0
  137. package/dist/components/import-export/report.d.ts +13 -0
  138. package/dist/components/import-export/report.d.ts.map +1 -0
  139. package/dist/components/import-export/report.js +50 -0
  140. package/dist/components/import-export/runner.d.ts +17 -0
  141. package/dist/components/import-export/runner.d.ts.map +1 -0
  142. package/dist/components/import-export/runner.js +39 -0
  143. package/dist/components/import-export/types.d.ts +100 -0
  144. package/dist/components/import-export/types.d.ts.map +1 -0
  145. package/dist/components/import-export/types.js +6 -0
  146. package/dist/components/import-export/validate.d.ts +39 -0
  147. package/dist/components/import-export/validate.d.ts.map +1 -0
  148. package/dist/components/import-export/validate.js +268 -0
  149. package/dist/components/overview/OverviewGrid.svelte +579 -0
  150. package/dist/components/overview/OverviewGrid.svelte.d.ts +5 -0
  151. package/dist/components/overview/OverviewGrid.svelte.d.ts.map +1 -0
  152. package/dist/components/overview/WidgetOptionsForm.svelte +193 -0
  153. package/dist/components/overview/WidgetOptionsForm.svelte.d.ts +5 -0
  154. package/dist/components/overview/WidgetOptionsForm.svelte.d.ts.map +1 -0
  155. package/dist/components/overview/controller.svelte.d.ts +92 -0
  156. package/dist/components/overview/controller.svelte.d.ts.map +1 -0
  157. package/dist/components/overview/controller.svelte.js +336 -0
  158. package/dist/components/overview/format.d.ts +13 -0
  159. package/dist/components/overview/format.d.ts.map +1 -0
  160. package/dist/components/overview/format.js +45 -0
  161. package/dist/components/overview/grid-types.d.ts +52 -0
  162. package/dist/components/overview/grid-types.d.ts.map +1 -0
  163. package/dist/components/overview/grid-types.js +1 -0
  164. package/dist/components/overview/index.d.ts +24 -0
  165. package/dist/components/overview/index.d.ts.map +1 -0
  166. package/dist/components/overview/index.js +22 -0
  167. package/dist/components/overview/load.d.ts +30 -0
  168. package/dist/components/overview/load.d.ts.map +1 -0
  169. package/dist/components/overview/load.js +92 -0
  170. package/dist/components/overview/markdown.d.ts +53 -0
  171. package/dist/components/overview/markdown.d.ts.map +1 -0
  172. package/dist/components/overview/markdown.js +203 -0
  173. package/dist/components/overview/model.d.ts +100 -0
  174. package/dist/components/overview/model.d.ts.map +1 -0
  175. package/dist/components/overview/model.js +460 -0
  176. package/dist/components/overview/recipe-widgets.d.ts +77 -0
  177. package/dist/components/overview/recipe-widgets.d.ts.map +1 -0
  178. package/dist/components/overview/recipe-widgets.js +151 -0
  179. package/dist/components/overview/registry.d.ts +45 -0
  180. package/dist/components/overview/registry.d.ts.map +1 -0
  181. package/dist/components/overview/registry.js +112 -0
  182. package/dist/components/overview/resize.d.ts +25 -0
  183. package/dist/components/overview/resize.d.ts.map +1 -0
  184. package/dist/components/overview/resize.js +41 -0
  185. package/dist/components/overview/schema.d.ts +34 -0
  186. package/dist/components/overview/schema.d.ts.map +1 -0
  187. package/dist/components/overview/schema.js +180 -0
  188. package/dist/components/overview/server.d.ts +14 -0
  189. package/dist/components/overview/server.d.ts.map +1 -0
  190. package/dist/components/overview/server.js +13 -0
  191. package/dist/components/overview/types.d.ts +235 -0
  192. package/dist/components/overview/types.d.ts.map +1 -0
  193. package/dist/components/overview/types.js +17 -0
  194. package/dist/components/overview/widgets/ChartWidget.svelte +111 -0
  195. package/dist/components/overview/widgets/ChartWidget.svelte.d.ts +6 -0
  196. package/dist/components/overview/widgets/ChartWidget.svelte.d.ts.map +1 -0
  197. package/dist/components/overview/widgets/MetricWidget.svelte +86 -0
  198. package/dist/components/overview/widgets/MetricWidget.svelte.d.ts +6 -0
  199. package/dist/components/overview/widgets/MetricWidget.svelte.d.ts.map +1 -0
  200. package/dist/components/overview/widgets/NoteWidget.svelte +61 -0
  201. package/dist/components/overview/widgets/NoteWidget.svelte.d.ts +5 -0
  202. package/dist/components/overview/widgets/NoteWidget.svelte.d.ts.map +1 -0
  203. package/dist/components/overview/widgets/RecordListWidget.svelte +91 -0
  204. package/dist/components/overview/widgets/RecordListWidget.svelte.d.ts +6 -0
  205. package/dist/components/overview/widgets/RecordListWidget.svelte.d.ts.map +1 -0
  206. package/dist/components/overview/widgets/ShortcutsWidget.svelte +80 -0
  207. package/dist/components/overview/widgets/ShortcutsWidget.svelte.d.ts +6 -0
  208. package/dist/components/overview/widgets/ShortcutsWidget.svelte.d.ts.map +1 -0
  209. package/dist/components/overview/widgets/core.d.ts +44 -0
  210. package/dist/components/overview/widgets/core.d.ts.map +1 -0
  211. package/dist/components/overview/widgets/core.js +222 -0
  212. package/dist/components/overview/widgets/data.d.ts +76 -0
  213. package/dist/components/overview/widgets/data.d.ts.map +1 -0
  214. package/dist/components/overview/widgets/data.js +40 -0
  215. package/dist/components/screens/DetailScreen.svelte +220 -0
  216. package/dist/components/screens/DetailScreen.svelte.d.ts +5 -0
  217. package/dist/components/screens/DetailScreen.svelte.d.ts.map +1 -0
  218. package/dist/components/screens/EditForm.svelte +313 -0
  219. package/dist/components/screens/EditForm.svelte.d.ts +5 -0
  220. package/dist/components/screens/EditForm.svelte.d.ts.map +1 -0
  221. package/dist/components/screens/ListScreen.svelte +191 -0
  222. package/dist/components/screens/ListScreen.svelte.d.ts +5 -0
  223. package/dist/components/screens/ListScreen.svelte.d.ts.map +1 -0
  224. package/dist/components/screens/RecipeScreens.svelte +237 -0
  225. package/dist/components/screens/RecipeScreens.svelte.d.ts +5 -0
  226. package/dist/components/screens/RecipeScreens.svelte.d.ts.map +1 -0
  227. package/dist/components/screens/fields.d.ts +54 -0
  228. package/dist/components/screens/fields.d.ts.map +1 -0
  229. package/dist/components/screens/fields.js +229 -0
  230. package/dist/components/screens/index.d.ts +8 -0
  231. package/dist/components/screens/index.d.ts.map +1 -0
  232. package/dist/components/screens/index.js +6 -0
  233. package/dist/components/screens/types.d.ts +215 -0
  234. package/dist/components/screens/types.d.ts.map +1 -0
  235. package/dist/components/screens/types.js +1 -0
  236. package/dist/components/screens/values.d.ts +62 -0
  237. package/dist/components/screens/values.d.ts.map +1 -0
  238. package/dist/components/screens/values.js +289 -0
  239. package/dist/components/sortable/Sortable.svelte +6 -33
  240. package/dist/components/sortable/Sortable.svelte.d.ts.map +1 -1
  241. package/dist/components/sortable/announce.d.ts +5 -0
  242. package/dist/components/sortable/announce.d.ts.map +1 -0
  243. package/dist/components/sortable/announce.js +33 -0
  244. package/dist/components/sortable/controller.svelte.d.ts +10 -0
  245. package/dist/components/sortable/controller.svelte.d.ts.map +1 -1
  246. package/dist/components/sortable/controller.svelte.js +29 -7
  247. package/dist/components/workspace/admin-shell/AdminShell.svelte +424 -58
  248. package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts +27 -2
  249. package/dist/components/workspace/admin-shell/AdminShell.svelte.d.ts.map +1 -1
  250. package/dist/components/workspace/admin-shell/ShellBrand.svelte +86 -0
  251. package/dist/components/workspace/admin-shell/ShellBrand.svelte.d.ts +18 -0
  252. package/dist/components/workspace/admin-shell/ShellBrand.svelte.d.ts.map +1 -0
  253. package/dist/components/workspace/admin-shell/ShellIconButton.svelte +77 -0
  254. package/dist/components/workspace/admin-shell/ShellIconButton.svelte.d.ts +26 -0
  255. package/dist/components/workspace/admin-shell/ShellIconButton.svelte.d.ts.map +1 -0
  256. package/dist/components/workspace/admin-shell/ShellLayoutEditor.svelte +88 -16
  257. package/dist/components/workspace/admin-shell/ShellLayoutEditor.svelte.d.ts.map +1 -1
  258. package/dist/components/workspace/admin-shell/ShellNavEditor.svelte +531 -0
  259. package/dist/components/workspace/admin-shell/ShellNavEditor.svelte.d.ts +26 -0
  260. package/dist/components/workspace/admin-shell/ShellNavEditor.svelte.d.ts.map +1 -0
  261. package/dist/components/workspace/admin-shell/ShellSectionIcon.svelte +57 -0
  262. package/dist/components/workspace/admin-shell/ShellSectionIcon.svelte.d.ts +22 -0
  263. package/dist/components/workspace/admin-shell/ShellSectionIcon.svelte.d.ts.map +1 -0
  264. package/dist/components/workspace/admin-shell/ShellSectionMenu.svelte +290 -0
  265. package/dist/components/workspace/admin-shell/ShellSectionMenu.svelte.d.ts +32 -0
  266. package/dist/components/workspace/admin-shell/ShellSectionMenu.svelte.d.ts.map +1 -0
  267. package/dist/components/workspace/admin-shell/TenantNav.svelte +67 -2
  268. package/dist/components/workspace/admin-shell/TenantNav.svelte.d.ts +8 -0
  269. package/dist/components/workspace/admin-shell/TenantNav.svelte.d.ts.map +1 -1
  270. package/dist/components/workspace/admin-shell/layout-controller.svelte.d.ts +67 -0
  271. package/dist/components/workspace/admin-shell/layout-controller.svelte.d.ts.map +1 -1
  272. package/dist/components/workspace/admin-shell/layout-controller.svelte.js +129 -1
  273. package/dist/components/workspace/admin-shell/layout.d.ts +122 -0
  274. package/dist/components/workspace/admin-shell/layout.d.ts.map +1 -1
  275. package/dist/components/workspace/admin-shell/layout.js +410 -10
  276. package/dist/components/workspace/admin-shell/settings.js +4 -4
  277. package/dist/components/workspace/admin-shell/shell-icons.d.ts +45 -0
  278. package/dist/components/workspace/admin-shell/shell-icons.d.ts.map +1 -0
  279. package/dist/components/workspace/admin-shell/shell-icons.js +66 -0
  280. package/dist/components/workspace/admin-shell/slot-labels.d.ts +33 -0
  281. package/dist/components/workspace/admin-shell/slot-labels.d.ts.map +1 -0
  282. package/dist/components/workspace/admin-shell/slot-labels.js +33 -0
  283. package/dist/components/workspace/admin-shell/slots.d.ts +50 -0
  284. package/dist/components/workspace/admin-shell/slots.d.ts.map +1 -0
  285. package/dist/components/workspace/admin-shell/slots.js +77 -0
  286. package/dist/components/workspace/admin-shell/state.svelte.d.ts +35 -0
  287. package/dist/components/workspace/admin-shell/state.svelte.d.ts.map +1 -1
  288. package/dist/components/workspace/admin-shell/state.svelte.js +111 -0
  289. package/dist/components/workspace/admin-shell/types.d.ts +101 -1
  290. package/dist/components/workspace/admin-shell/types.d.ts.map +1 -1
  291. package/dist/components/workspace/index.d.ts +9 -2
  292. package/dist/components/workspace/index.d.ts.map +1 -1
  293. package/dist/components/workspace/index.js +6 -0
  294. package/dist/components/workspace/manifest-nav.d.ts +20 -0
  295. package/dist/components/workspace/manifest-nav.d.ts.map +1 -1
  296. package/dist/components/workspace/manifest-nav.js +42 -13
  297. package/dist/i18n/server.d.ts +6 -0
  298. package/dist/i18n/server.d.ts.map +1 -1
  299. package/dist/i18n/server.js +6 -0
  300. package/dist/i18n/strings.import-export.d.ts +88 -0
  301. package/dist/i18n/strings.import-export.d.ts.map +1 -0
  302. package/dist/i18n/strings.import-export.js +88 -0
  303. package/dist/i18n/strings.overview.d.ts +100 -0
  304. package/dist/i18n/strings.overview.d.ts.map +1 -0
  305. package/dist/i18n/strings.overview.js +107 -0
  306. package/dist/i18n/strings.palette.d.ts +18 -0
  307. package/dist/i18n/strings.palette.d.ts.map +1 -0
  308. package/dist/i18n/strings.palette.js +18 -0
  309. package/dist/i18n/strings.screens.d.ts +31 -0
  310. package/dist/i18n/strings.screens.d.ts.map +1 -0
  311. package/dist/i18n/strings.screens.js +31 -0
  312. package/dist/i18n/strings.workspace.d.ts +49 -0
  313. package/dist/i18n/strings.workspace.d.ts.map +1 -1
  314. package/dist/i18n/strings.workspace.js +49 -0
  315. package/package.json +59 -19
  316. package/dist/browser-ai/adapters/stt/whisper-wasm.d.ts +0 -51
  317. package/dist/browser-ai/adapters/stt/whisper-wasm.d.ts.map +0 -1
  318. package/dist/browser-ai/adapters/stt/whisper-wasm.js +0 -380
@@ -1,6 +1,13 @@
1
- import { applyShellLayout, hideShellEntry, isShellLayoutEmpty, moveShellItem, moveShellSection, normalizeShellLayout, resolveShellNavModel, SHELL_LAYOUT_VERSION, setShellLayoutPanel, showShellEntry, } from './layout.js';
1
+ import { applyShellLayout, createShellSection, deleteShellSection, hideShellEntry, isShellLayoutEmpty, moveShellItem, moveShellSection, normalizeShellLayout, placeShellItem, renameShellItem, renameShellSection, resetShellItemPlacement, resolveShellNavModel, resolveShellPlacements, SHELL_LAYOUT_VERSION, setShellLayoutPanel, setShellSectionIcon, setShellSectionTitleVisible, showShellEntry, } from './layout.js';
2
2
  import { resolveShellConfig } from './settings.js';
3
+ import { isShellSlot, } from './slots.js';
3
4
  import { PANEL_EDGES } from './types.js';
5
+ const REGION_EDGE = {
6
+ header: 'top',
7
+ footer: 'bottom',
8
+ leftSidebar: 'left',
9
+ rightSidebar: 'right',
10
+ };
4
11
  /**
5
12
  * The layout API: the same changes the `ShellLayoutEditor` makes, as plain
6
13
  * calls an assistant (or any host code) can make. Obtain it with
@@ -10,9 +17,30 @@ import { PANEL_EDGES } from './types.js';
10
17
  */
11
18
  export class ShellLayoutController {
12
19
  options;
20
+ editingState = $state(false);
13
21
  constructor(options) {
14
22
  this.options = options;
15
23
  }
24
+ /** Whether in-place layout editing is offered by the host. */
25
+ get editable() {
26
+ return this.options.editable?.() ?? false;
27
+ }
28
+ /** Whether the shell is in layout edit mode (always false if not `editable`). */
29
+ get editing() {
30
+ return this.editable && this.editingState;
31
+ }
32
+ /**
33
+ * Enter or leave layout edit mode. Returns whether the mode changed; entering
34
+ * is refused (`false`) when the host did not opt in.
35
+ */
36
+ setEditing(editing) {
37
+ if (editing && !this.editable)
38
+ return false;
39
+ if (this.editingState === editing)
40
+ return false;
41
+ this.editingState = editing;
42
+ return true;
43
+ }
16
44
  /** The layout in force, normalized. */
17
45
  get layout() {
18
46
  return normalizeShellLayout(this.options.layout() ?? { version: SHELL_LAYOUT_VERSION });
@@ -43,6 +71,46 @@ export class ShellLayoutController {
43
71
  };
44
72
  });
45
73
  }
74
+ /** The movable shell items with their default and current slots. */
75
+ get placementItems() {
76
+ const items = this.options.items?.() ?? [];
77
+ const placed = resolveShellPlacements(items, this.layout);
78
+ const slotOf = new Map();
79
+ for (const [slot, ids] of Object.entries(placed)) {
80
+ for (const id of ids)
81
+ slotOf.set(id, slot);
82
+ }
83
+ const seen = new Set();
84
+ const out = [];
85
+ for (const item of items) {
86
+ if (seen.has(item.id))
87
+ continue;
88
+ seen.add(item.id);
89
+ const slot = slotOf.get(item.id) ?? item.slot;
90
+ out.push({
91
+ id: item.id,
92
+ label: item.label,
93
+ defaultSlot: item.slot,
94
+ slot,
95
+ moved: slot !== item.slot,
96
+ });
97
+ }
98
+ return out;
99
+ }
100
+ /** Items per slot in display order (every slot present, possibly empty). */
101
+ get placements() {
102
+ const views = new Map(this.placementItems.map((view) => [view.id, view]));
103
+ const placed = resolveShellPlacements(this.options.items?.() ?? [], this.layout);
104
+ return Object.fromEntries(Object.entries(placed).map(([slot, ids]) => [
105
+ slot,
106
+ ids.flatMap((id) => views.get(id) ?? []),
107
+ ]));
108
+ }
109
+ /** Whether a region is shown (its edge is available and not hidden). */
110
+ isRegionVisible(region) {
111
+ const edge = REGION_EDGE[region];
112
+ return this.panels.find((panel) => panel.edge === edge)?.visible ?? false;
113
+ }
46
114
  /** Whether a customization is in force. */
47
115
  get customized() {
48
116
  return !isShellLayoutEmpty(this.layout);
@@ -84,6 +152,66 @@ export class ShellLayoutController {
84
152
  return false;
85
153
  return this.apply(setShellLayoutPanel(this.layout, edge, patch, this.options.panels()));
86
154
  }
155
+ /**
156
+ * Rename a section (host or custom). A blank label restores the host's
157
+ * suggested heading (custom sections ignore blank labels).
158
+ */
159
+ renameSection(sectionId, label) {
160
+ return this.apply(renameShellSection(this.options.nav(), this.options.groups(), this.layout, sectionId, label));
161
+ }
162
+ /**
163
+ * Rename a navigation item (by its id). `null` or a blank label restores
164
+ * the host's label. Returns whether the layout changed.
165
+ */
166
+ renameItem(itemId, label) {
167
+ return this.apply(renameShellItem(this.options.nav(), this.options.groups(), this.layout, itemId, label));
168
+ }
169
+ /**
170
+ * Set a section's icon (a shell or host icon name). `null` or blank
171
+ * restores the host's suggested icon.
172
+ */
173
+ setSectionIcon(sectionId, icon) {
174
+ return this.apply(setShellSectionIcon(this.options.nav(), this.options.groups(), this.layout, sectionId, icon));
175
+ }
176
+ /** Show or hide a section's title; hidden titles render its items flat. */
177
+ setSectionTitleVisible(sectionId, visible) {
178
+ return this.apply(setShellSectionTitleVisible(this.options.nav(), this.options.groups(), this.layout, sectionId, visible));
179
+ }
180
+ /** Create an empty custom section; returns its id, or `null` when blank. */
181
+ createSection(label) {
182
+ const before = this.layout.customSections?.length ?? 0;
183
+ const next = createShellSection(this.options.nav(), this.options.groups(), this.layout, label);
184
+ if (!this.apply(next))
185
+ return null;
186
+ // Read the id from the proposed layout: with a controlled `layout` prop
187
+ // the host may not have applied it yet.
188
+ const list = next.customSections ?? [];
189
+ return list.length > before ? (list[list.length - 1]?.id ?? null) : null;
190
+ }
191
+ /** Delete a custom section; its items return to their default sections. */
192
+ deleteSection(sectionId) {
193
+ return this.apply(deleteShellSection(this.layout, sectionId));
194
+ }
195
+ /**
196
+ * Move a shell item (`dock:<tool>`, `slot:<slot>`, or a host item id) to
197
+ * `slot`. Unknown ids and slots are no-ops. If the slot's region is hidden
198
+ * the item still renders, via the slot's fallback chain.
199
+ */
200
+ placeItem(itemId, slot) {
201
+ if (!isShellSlot(slot))
202
+ return false;
203
+ const item = this.placementItems.find((view) => view.id === itemId);
204
+ if (!item)
205
+ return false;
206
+ // Placing an item where it already is must not reorder it.
207
+ if (item.slot === slot)
208
+ return false;
209
+ return this.apply(placeShellItem(this.layout, itemId, slot, item.defaultSlot));
210
+ }
211
+ /** Return a shell item to its default slot. */
212
+ resetItem(itemId) {
213
+ return this.apply(resetShellItemPlacement(this.layout, itemId));
214
+ }
87
215
  /** Drop every customization. */
88
216
  reset() {
89
217
  return this.apply({ version: SHELL_LAYOUT_VERSION });
@@ -13,11 +13,38 @@
13
13
  * section, {@link SHELL_NAV_ROOT_SECTION_ID}, which always renders first and
14
14
  * cannot be reordered or hidden as a whole.
15
15
  */
16
+ import { type ShellPlacementItem, type ShellRegion, type ShellSlot } from './slots.js';
16
17
  import type { PanelEdge, ShellNavGroup, ShellNavItem, ShellPanelDefaults } from './types.js';
17
18
  /** The only layout format version this package reads and writes. */
18
19
  export declare const SHELL_LAYOUT_VERSION: 1;
19
20
  /** Section id of the flat `nav` items rendered above all groups. */
20
21
  export declare const SHELL_NAV_ROOT_SECTION_ID = "@root";
22
+ /** Prefix of the ids of user-created sections. */
23
+ export declare const SHELL_CUSTOM_SECTION_PREFIX = "custom:";
24
+ /** A user's override of one section's presentation. */
25
+ export interface ShellLayoutSection {
26
+ /** Replaces the section's heading. */
27
+ label?: string;
28
+ /** `false` renders the section's items flat, without a visible heading. */
29
+ showTitle?: boolean;
30
+ /** Replaces the section's icon (a shell icon name or a host icon name). */
31
+ icon?: string;
32
+ }
33
+ /** A user's override of one navigation item's presentation. */
34
+ export interface ShellLayoutItem {
35
+ /** Replaces the item's label wherever the shell shows it. */
36
+ label?: string;
37
+ /**
38
+ * Replaces the item's `description` (the line on a section card). Set by
39
+ * hosts or presets; the layout editor does not edit it.
40
+ */
41
+ description?: string;
42
+ }
43
+ /** A section the user created (its id starts with `custom:`). */
44
+ export interface ShellLayoutCustomSection {
45
+ id: string;
46
+ label: string;
47
+ }
21
48
  /** A user's choice for one edge panel. */
22
49
  export interface ShellLayoutPanel {
23
50
  /** `false` hides the edge; absent or `true` keeps it as configured. */
@@ -39,8 +66,31 @@ export interface ShellLayout {
39
66
  hidden?: string[];
40
67
  /** Item id to the id of the section it was moved into. */
41
68
  moved?: Record<string, string>;
69
+ /**
70
+ * Per section id presentation overrides: a new heading and/or whether the
71
+ * title shows. Sections are suggested by the host; these are the user's.
72
+ */
73
+ sections?: Record<string, ShellLayoutSection>;
74
+ /**
75
+ * Per navigation item id presentation overrides: a new label (e.g. "Sales
76
+ * orders" becomes "Work orders"). The host's original label stays on the
77
+ * applied item as `defaultLabel`. Additive; layouts without it load unchanged.
78
+ */
79
+ items?: Record<string, ShellLayoutItem>;
80
+ /**
81
+ * Sections the user created. They join `sectionOrder` like host sections;
82
+ * items move in through `moved`. Empty ones show in an editor, not the nav.
83
+ */
84
+ customSections?: ShellLayoutCustomSection[];
42
85
  /** Per edge panel overrides. */
43
86
  panels?: Partial<Record<PanelEdge, ShellLayoutPanel>>;
87
+ /**
88
+ * Shell item id (`dock:<tool>`, `slot:<slot>`, or a host `slotItems` id) to
89
+ * the slot the user moved it to. Applied before the hidden-region fallback;
90
+ * unknown ids and slots are ignored. Items placed into a slot follow the
91
+ * slot's own items, in the order of this record.
92
+ */
93
+ placements?: Record<string, ShellSlot>;
44
94
  }
45
95
  /** An item as the layout sees it. */
46
96
  export interface ShellNavModelItem {
@@ -52,13 +102,28 @@ export interface ShellNavModelItem {
52
102
  sectionId: string;
53
103
  /** Hidden by its own id. */
54
104
  hidden: boolean;
105
+ /** The displayed label (the user's rename, else the host's). */
106
+ label: string;
107
+ /** The host's label (`item.label`). */
108
+ defaultLabel: string;
55
109
  }
56
110
  /** A section as the layout sees it. */
57
111
  export interface ShellNavModelSection {
58
112
  id: string;
59
113
  /** `null` for the implicit root section of flat `nav` items. */
60
114
  group: ShellNavGroup | null;
115
+ /** The displayed heading (the user's rename, else the host's). */
61
116
  heading: string | null;
117
+ /** The host's suggested heading; `null` for the root and custom sections. */
118
+ defaultHeading: string | null;
119
+ /** Created by the user rather than suggested by the host. */
120
+ custom: boolean;
121
+ /** Whether the title is displayed (the root has none). */
122
+ titleVisible: boolean;
123
+ /** The displayed icon (the user's choice, else the host's), if any. */
124
+ icon: string | null;
125
+ /** The host's suggested icon; `null` when it suggests none. */
126
+ defaultIcon: string | null;
62
127
  hidden: boolean;
63
128
  /** Items in display order, including hidden ones. */
64
129
  items: ShellNavModelItem[];
@@ -117,4 +182,61 @@ export declare function showShellEntry(layout: ShellLayout | null | undefined, i
117
182
  * defaults (`defaults`, when given) are dropped to keep the layout sparse.
118
183
  */
119
184
  export declare function setShellLayoutPanel(layout: ShellLayout | null | undefined, edge: PanelEdge, patch: ShellLayoutPanel, defaults?: ShellPanelDefaults): ShellLayout;
185
+ /**
186
+ * Rename a section. A blank label, or the host's own heading, removes the
187
+ * override (the section goes back to the suggested name). A custom section's
188
+ * label is replaced outright and a blank label is ignored. Unknown ids and the
189
+ * root section are ignored.
190
+ */
191
+ export declare function renameShellSection(nav: readonly ShellNavItem[], groups: readonly ShellNavGroup[], layout: ShellLayout | null | undefined, sectionId: string, label: string): ShellLayout;
192
+ /**
193
+ * Rename a navigation item. A blank label (or `null`), or the host's own
194
+ * label, removes the override. Unknown ids are ignored. Items keep their id,
195
+ * so a rename survives reordering and moving between sections.
196
+ */
197
+ export declare function renameShellItem(nav: readonly ShellNavItem[], groups: readonly ShellNavGroup[], layout: ShellLayout | null | undefined, itemId: string, label: string | null): ShellLayout;
198
+ /**
199
+ * Show or hide a section's title. Hidden titles render the items flat (the
200
+ * shell keeps an accessible group name). Matching the host's suggestion drops
201
+ * the override.
202
+ */
203
+ export declare function setShellSectionTitleVisible(nav: readonly ShellNavItem[], groups: readonly ShellNavGroup[], layout: ShellLayout | null | undefined, sectionId: string, visible: boolean): ShellLayout;
204
+ /**
205
+ * Set a section's icon. A blank icon (or `null`), or the host's own icon,
206
+ * removes the override. Works for host and custom sections; unknown ids and
207
+ * the root section are ignored.
208
+ */
209
+ export declare function setShellSectionIcon(nav: readonly ShellNavItem[], groups: readonly ShellNavGroup[], layout: ShellLayout | null | undefined, sectionId: string, icon: string | null): ShellLayout;
210
+ /**
211
+ * Create an empty user section named `label` (blank labels are ignored). It
212
+ * gets a unique `custom:` id and lands after the existing sections; read the
213
+ * new id from the last entry of `customSections`.
214
+ */
215
+ export declare function createShellSection(nav: readonly ShellNavItem[], groups: readonly ShellNavGroup[], layout: ShellLayout | null | undefined, label: string): ShellLayout;
216
+ /**
217
+ * Delete a user-created section. Its items return to the sections the host
218
+ * suggested; host sections cannot be deleted (hide them instead).
219
+ */
220
+ export declare function deleteShellSection(layout: ShellLayout | null | undefined, sectionId: string): ShellLayout;
221
+ /**
222
+ * Where each item lives once the layout's `placements` are applied, before any
223
+ * hidden-region fallback. Items stay in the order given within their default
224
+ * slot; items placed into a slot follow, in placement order. Placements for
225
+ * ids not in `items` are ignored. Every slot is present, possibly empty.
226
+ */
227
+ export declare function resolveShellPlacements(items: readonly ShellPlacementItem[], layout?: ShellLayout | null): Record<ShellSlot, string[]>;
228
+ /**
229
+ * {@link resolveShellPlacements} followed by the hidden-region fallback: an
230
+ * item whose slot's region is not `visible` moves along the slot's fallback
231
+ * chain to the first visible slot (and is dropped only if none is visible).
232
+ */
233
+ export declare function resolveShellVisiblePlacements(items: readonly ShellPlacementItem[], layout: ShellLayout | null | undefined, visible: (region: ShellRegion) => boolean): Record<ShellSlot, string[]>;
234
+ /**
235
+ * Place an item in `slot`. Unknown slots are ignored. When `defaultSlot` (the
236
+ * item's own default) is given and equals `slot`, the override is removed so
237
+ * the layout stays sparse. Re-placing an item puts it last in its slot.
238
+ */
239
+ export declare function placeShellItem(layout: ShellLayout | null | undefined, itemId: string, slot: ShellSlot, defaultSlot?: ShellSlot): ShellLayout;
240
+ /** Remove an item's placement override; it returns to its default slot. */
241
+ export declare function resetShellItemPlacement(layout: ShellLayout | null | undefined, itemId: string): ShellLayout;
120
242
  //# sourceMappingURL=layout.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/layout.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../src/components/workspace/admin-shell/layout.ts"],"names":[],"mappings":"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"}