@alfakit/vue 0.1.2 → 0.1.7

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 (281) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/AlfakitRoot.js.map +1 -1
  3. package/dist/AlfakitRoot.vue.d.ts.map +1 -1
  4. package/dist/AlfakitRoot.vue_vue_type_script_setup_true_lang.js +3 -1
  5. package/dist/AlfakitRoot.vue_vue_type_script_setup_true_lang.js.map +1 -1
  6. package/dist/components/actions/ActionGroupMenu.js.map +1 -1
  7. package/dist/components/actions/ActionGroupMenu.vue.d.ts.map +1 -1
  8. package/dist/components/actions/ActionGroupMenu.vue_vue_type_script_setup_true_lang.js +69 -65
  9. package/dist/components/actions/ActionGroupMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  10. package/dist/components/actions/ActionModal.js.map +1 -1
  11. package/dist/components/actions/ActionModal.vue.d.ts.map +1 -1
  12. package/dist/components/actions/ActionModal.vue_vue_type_script_setup_true_lang.js +17 -15
  13. package/dist/components/actions/ActionModal.vue_vue_type_script_setup_true_lang.js.map +1 -1
  14. package/dist/components/ai/AiCopilot.js.map +1 -1
  15. package/dist/components/ai/AiCopilot.vue.d.ts +2 -0
  16. package/dist/components/ai/AiCopilot.vue.d.ts.map +1 -1
  17. package/dist/components/ai/AiCopilot.vue_vue_type_script_setup_true_lang.js +7 -2
  18. package/dist/components/ai/AiCopilot.vue_vue_type_script_setup_true_lang.js.map +1 -1
  19. package/dist/components/cms/CmsPage.vue_vue_type_script_setup_true_lang.js +19 -19
  20. package/dist/components/cms/CmsPage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  21. package/dist/components/cms/LivePreview.js.map +1 -1
  22. package/dist/components/cms/LivePreview.vue.d.ts.map +1 -1
  23. package/dist/components/cms/LivePreview.vue_vue_type_script_setup_true_lang.js +83 -83
  24. package/dist/components/cms/LivePreview.vue_vue_type_script_setup_true_lang.js.map +1 -1
  25. package/dist/components/fields/BuilderField.js.map +1 -1
  26. package/dist/components/fields/BuilderField.vue.d.ts.map +1 -1
  27. package/dist/components/fields/BuilderField.vue_vue_type_script_setup_true_lang.js +162 -157
  28. package/dist/components/fields/BuilderField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  29. package/dist/components/fields/ImageEditorDialog.js.map +1 -1
  30. package/dist/components/fields/ImageEditorDialog.vue.d.ts.map +1 -1
  31. package/dist/components/fields/ImageEditorDialog.vue_vue_type_script_setup_true_lang.js +46 -46
  32. package/dist/components/fields/ImageEditorDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  33. package/dist/components/fields/KeyValueField.js.map +1 -1
  34. package/dist/components/fields/KeyValueField.vue.d.ts.map +1 -1
  35. package/dist/components/fields/KeyValueField.vue_vue_type_script_setup_true_lang.js +66 -66
  36. package/dist/components/fields/KeyValueField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  37. package/dist/components/fields/ModalTablePicker.js.map +1 -1
  38. package/dist/components/fields/ModalTablePicker.vue.d.ts.map +1 -1
  39. package/dist/components/fields/ModalTablePicker.vue_vue_type_script_setup_true_lang.js +113 -113
  40. package/dist/components/fields/ModalTablePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  41. package/dist/components/fields/RepeaterField.js.map +1 -1
  42. package/dist/components/fields/RepeaterField.vue.d.ts.map +1 -1
  43. package/dist/components/fields/RepeaterField.vue_vue_type_script_setup_true_lang.js +12 -12
  44. package/dist/components/fields/RepeaterField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  45. package/dist/components/fields/RichEditorInput.js.map +1 -1
  46. package/dist/components/fields/RichEditorInput.vue.d.ts.map +1 -1
  47. package/dist/components/fields/RichEditorInput.vue_vue_type_script_setup_true_lang.js +166 -165
  48. package/dist/components/fields/RichEditorInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  49. package/dist/components/fields/SliderField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  50. package/dist/components/fields/item-actions.d.ts +2 -2
  51. package/dist/components/fields/item-actions.d.ts.map +1 -1
  52. package/dist/components/fields/item-actions.js +31 -31
  53. package/dist/components/fields/item-actions.js.map +1 -1
  54. package/dist/components/form/FormBlock.js.map +1 -1
  55. package/dist/components/form/FormBlock.vue.d.ts.map +1 -1
  56. package/dist/components/form/FormBlock.vue_vue_type_script_setup_true_lang.js +1 -1
  57. package/dist/components/form/FormBlock.vue_vue_type_script_setup_true_lang.js.map +1 -1
  58. package/dist/components/form/form-context.js +25 -25
  59. package/dist/components/form/form-context.js.map +1 -1
  60. package/dist/components/kanban/KanbanBoard.js.map +1 -1
  61. package/dist/components/kanban/KanbanBoard.vue.d.ts.map +1 -1
  62. package/dist/components/kanban/KanbanBoard.vue_vue_type_script_setup_true_lang.js +5 -2
  63. package/dist/components/kanban/KanbanBoard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  64. package/dist/components/kanban/KanbanColumnHeader.js.map +1 -1
  65. package/dist/components/kanban/KanbanColumnHeader.vue.d.ts.map +1 -1
  66. package/dist/components/kanban/KanbanColumnHeader.vue_vue_type_script_setup_true_lang.js +64 -64
  67. package/dist/components/kanban/KanbanColumnHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  68. package/dist/components/layout/SectionComponent.js.map +1 -1
  69. package/dist/components/layout/SectionComponent.vue.d.ts.map +1 -1
  70. package/dist/components/layout/SectionComponent.vue_vue_type_script_setup_true_lang.js +23 -23
  71. package/dist/components/layout/SectionComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  72. package/dist/components/panel/DebugPanel.vue_vue_type_script_setup_true_lang.js +8 -8
  73. package/dist/components/panel/DebugPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  74. package/dist/components/panel/GlobalSearchPalette.js.map +1 -1
  75. package/dist/components/panel/GlobalSearchPalette.vue.d.ts.map +1 -1
  76. package/dist/components/panel/GlobalSearchPalette.vue_vue_type_script_setup_true_lang.js +102 -96
  77. package/dist/components/panel/GlobalSearchPalette.vue_vue_type_script_setup_true_lang.js.map +1 -1
  78. package/dist/components/panel/NavGroup.vue_vue_type_script_setup_true_lang.js +10 -10
  79. package/dist/components/panel/NavGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  80. package/dist/components/panel/NavGroupFlyout.vue_vue_type_script_setup_true_lang.js +9 -9
  81. package/dist/components/panel/NavGroupFlyout.vue_vue_type_script_setup_true_lang.js.map +1 -1
  82. package/dist/components/panel/NavItem.vue_vue_type_script_setup_true_lang.js +16 -16
  83. package/dist/components/panel/NavItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  84. package/dist/components/panel/NavSubItem.vue_vue_type_script_setup_true_lang.js +10 -10
  85. package/dist/components/panel/NavSubItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  86. package/dist/components/panel/TenantMenu.vue_vue_type_script_setup_true_lang.js +35 -35
  87. package/dist/components/panel/TenantMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  88. package/dist/components/panel/Topbar.vue_vue_type_script_setup_true_lang.js +11 -11
  89. package/dist/components/panel/Topbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  90. package/dist/components/realtime/use-live-updates.d.ts.map +1 -1
  91. package/dist/components/realtime/use-live-updates.js +24 -23
  92. package/dist/components/realtime/use-live-updates.js.map +1 -1
  93. package/dist/components/table/BooleanCell.vue_vue_type_script_setup_true_lang.js +2 -1
  94. package/dist/components/table/BooleanCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  95. package/dist/components/table/ColumnHeader.js.map +1 -1
  96. package/dist/components/table/ColumnHeader.vue.d.ts.map +1 -1
  97. package/dist/components/table/ColumnHeader.vue_vue_type_script_setup_true_lang.js +55 -49
  98. package/dist/components/table/ColumnHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  99. package/dist/components/table/ColumnManager.js.map +1 -1
  100. package/dist/components/table/ColumnManager.vue.d.ts.map +1 -1
  101. package/dist/components/table/ColumnManager.vue_vue_type_script_setup_true_lang.js +5 -4
  102. package/dist/components/table/ColumnManager.vue_vue_type_script_setup_true_lang.js.map +1 -1
  103. package/dist/components/table/ContentLayoutSort.js.map +1 -1
  104. package/dist/components/table/ContentLayoutSort.vue.d.ts.map +1 -1
  105. package/dist/components/table/ContentLayoutSort.vue_vue_type_script_setup_true_lang.js +5 -5
  106. package/dist/components/table/ContentLayoutSort.vue_vue_type_script_setup_true_lang.js.map +1 -1
  107. package/dist/components/table/SelectCell.vue_vue_type_script_setup_true_lang.js +2 -1
  108. package/dist/components/table/SelectCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  109. package/dist/components/table/SelectComboboxCell.vue_vue_type_script_setup_true_lang.js +2 -1
  110. package/dist/components/table/SelectComboboxCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  111. package/dist/components/table/TableCellContent.js.map +1 -1
  112. package/dist/components/table/TableCellContent.vue.d.ts.map +1 -1
  113. package/dist/components/table/TableCellContent.vue_vue_type_script_setup_true_lang.js +4 -3
  114. package/dist/components/table/TableCellContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  115. package/dist/components/table/TablePagination.js.map +1 -1
  116. package/dist/components/table/TablePagination.vue.d.ts.map +1 -1
  117. package/dist/components/table/TablePagination.vue_vue_type_script_setup_true_lang.js +87 -87
  118. package/dist/components/table/TablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  119. package/dist/components/table/TextInputCell.vue_vue_type_script_setup_true_lang.js +2 -1
  120. package/dist/components/table/TextInputCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  121. package/dist/components/table/cell-update.d.ts +6 -0
  122. package/dist/components/table/cell-update.d.ts.map +1 -1
  123. package/dist/components/table/cell-update.js.map +1 -1
  124. package/dist/components/translation-manager/TranslationManagerView.vue_vue_type_script_setup_true_lang.js +1 -1
  125. package/dist/components/translation-manager/TranslationManagerView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  126. package/dist/components/ui/CommandAutoHighlight.js +7 -0
  127. package/dist/components/ui/CommandAutoHighlight.js.map +1 -0
  128. package/dist/components/ui/CommandAutoHighlight.vue.d.ts +21 -0
  129. package/dist/components/ui/CommandAutoHighlight.vue.d.ts.map +1 -0
  130. package/dist/components/ui/CommandAutoHighlight.vue_vue_type_script_setup_true_lang.js +18 -0
  131. package/dist/components/ui/CommandAutoHighlight.vue_vue_type_script_setup_true_lang.js.map +1 -0
  132. package/dist/components/ui/DialogContent.js.map +1 -1
  133. package/dist/components/ui/DialogContent.vue.d.ts.map +1 -1
  134. package/dist/components/ui/DialogContent.vue_vue_type_script_setup_true_lang.js +13 -12
  135. package/dist/components/ui/DialogContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  136. package/dist/components/ui/PopoverContent.js.map +1 -1
  137. package/dist/components/ui/PopoverContent.vue.d.ts.map +1 -1
  138. package/dist/components/ui/PopoverContent.vue_vue_type_script_setup_true_lang.js +9 -8
  139. package/dist/components/ui/PopoverContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  140. package/dist/components/ui/SheetContent.js.map +1 -1
  141. package/dist/components/ui/SheetContent.vue.d.ts.map +1 -1
  142. package/dist/components/ui/SheetContent.vue_vue_type_script_setup_true_lang.js +13 -12
  143. package/dist/components/ui/SheetContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  144. package/dist/components/ui/TooltipContent.js.map +1 -1
  145. package/dist/components/ui/TooltipContent.vue.d.ts.map +1 -1
  146. package/dist/components/ui/TooltipContent.vue_vue_type_script_setup_true_lang.js +9 -8
  147. package/dist/components/ui/TooltipContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  148. package/dist/context.d.ts +7 -0
  149. package/dist/context.d.ts.map +1 -1
  150. package/dist/context.js +29 -26
  151. package/dist/context.js.map +1 -1
  152. package/dist/create-alfakit.d.ts.map +1 -1
  153. package/dist/create-alfakit.js +33 -31
  154. package/dist/create-alfakit.js.map +1 -1
  155. package/dist/eject-manifest.json +11 -2
  156. package/dist/index.d.ts +1 -0
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +219 -217
  159. package/dist/layouts/AppLayout.vue_vue_type_script_setup_true_lang.js +8 -8
  160. package/dist/layouts/AppLayout.vue_vue_type_script_setup_true_lang.js.map +1 -1
  161. package/dist/layouts/AuthLayout.vue_vue_type_script_setup_true_lang.js +9 -9
  162. package/dist/layouts/FullscreenLayout.vue_vue_type_script_setup_true_lang.js +8 -8
  163. package/dist/layouts/FullscreenLayout.vue_vue_type_script_setup_true_lang.js.map +1 -1
  164. package/dist/layouts/TopNavLayout.vue_vue_type_script_setup_true_lang.js +15 -15
  165. package/dist/layouts/TopNavLayout.vue_vue_type_script_setup_true_lang.js.map +1 -1
  166. package/dist/layouts/lazy-layouts.d.ts +10 -0
  167. package/dist/layouts/lazy-layouts.d.ts.map +1 -0
  168. package/dist/layouts/lazy-layouts.js +8 -0
  169. package/dist/layouts/lazy-layouts.js.map +1 -0
  170. package/dist/layouts/panel-layouts.d.ts +8 -0
  171. package/dist/layouts/panel-layouts.d.ts.map +1 -0
  172. package/dist/layouts/panel-layouts.js +15 -0
  173. package/dist/layouts/panel-layouts.js.map +1 -0
  174. package/dist/lib/lazy.d.ts.map +1 -1
  175. package/dist/lib/lazy.js +2 -2
  176. package/dist/lib/lazy.js.map +1 -1
  177. package/dist/pages/PageShell.js.map +1 -1
  178. package/dist/pages/PageShell.vue.d.ts.map +1 -1
  179. package/dist/pages/PageShell.vue_vue_type_script_setup_true_lang.js +39 -42
  180. package/dist/pages/PageShell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  181. package/dist/standalone/AlfakitComponent.js.map +1 -1
  182. package/dist/standalone/AlfakitComponent.vue.d.ts.map +1 -1
  183. package/dist/standalone/AlfakitComponent.vue_vue_type_script_setup_true_lang.js +56 -52
  184. package/dist/standalone/AlfakitComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  185. package/dist/standalone.css +7 -0
  186. package/dist/starter-kit/AlfakitStarterKitRoot.js.map +1 -1
  187. package/dist/starter-kit/AlfakitStarterKitRoot.vue.d.ts +2 -2
  188. package/dist/starter-kit/AlfakitStarterKitRoot.vue.d.ts.map +1 -1
  189. package/dist/starter-kit/AlfakitStarterKitRoot.vue_vue_type_script_setup_true_lang.js +17 -12
  190. package/dist/starter-kit/AlfakitStarterKitRoot.vue_vue_type_script_setup_true_lang.js.map +1 -1
  191. package/dist/starter-kit/dashboard-widgets.d.ts +54 -0
  192. package/dist/starter-kit/dashboard-widgets.d.ts.map +1 -0
  193. package/dist/starter-kit/dashboard-widgets.js +54 -0
  194. package/dist/starter-kit/dashboard-widgets.js.map +1 -0
  195. package/dist/starter-kit/index.d.ts +2 -1
  196. package/dist/starter-kit/index.d.ts.map +1 -1
  197. package/dist/starter-kit/index.js +5 -4
  198. package/dist/starter-kit/runtime.d.ts +6 -0
  199. package/dist/starter-kit/runtime.d.ts.map +1 -1
  200. package/dist/starter-kit/runtime.js +19 -15
  201. package/dist/starter-kit/runtime.js.map +1 -1
  202. package/dist/starter-kit/starter-kit.d.ts.map +1 -1
  203. package/dist/starter-kit/starter-kit.js +8 -8
  204. package/dist/starter-kit/starter-kit.js.map +1 -1
  205. package/dist/starter-kit/widgets/CopilotTrigger.js +7 -0
  206. package/dist/starter-kit/widgets/CopilotTrigger.js.map +1 -0
  207. package/dist/starter-kit/widgets/CopilotTrigger.vue.d.ts +12 -0
  208. package/dist/starter-kit/widgets/CopilotTrigger.vue.d.ts.map +1 -0
  209. package/dist/starter-kit/widgets/CopilotTrigger.vue_vue_type_script_setup_true_lang.js +23 -0
  210. package/dist/starter-kit/widgets/CopilotTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  211. package/dist/starter-kit/widgets/LoadedCopilot.js +7 -0
  212. package/dist/starter-kit/widgets/LoadedCopilot.js.map +1 -0
  213. package/dist/starter-kit/widgets/LoadedCopilot.vue.d.ts +8 -0
  214. package/dist/starter-kit/widgets/LoadedCopilot.vue.d.ts.map +1 -0
  215. package/dist/starter-kit/widgets/LoadedCopilot.vue_vue_type_script_setup_true_lang.js +31 -0
  216. package/dist/starter-kit/widgets/LoadedCopilot.vue_vue_type_script_setup_true_lang.js.map +1 -0
  217. package/dist/starter-kit/widgets/StarterKitImpersonationBanner.js +7 -0
  218. package/dist/starter-kit/widgets/StarterKitImpersonationBanner.js.map +1 -0
  219. package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue.d.ts +8 -0
  220. package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue.d.ts.map +1 -0
  221. package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue_vue_type_script_setup_true_lang.js +34 -0
  222. package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue_vue_type_script_setup_true_lang.js.map +1 -0
  223. package/dist/starter-kit/widgets/index.d.ts +40 -9
  224. package/dist/starter-kit/widgets/index.d.ts.map +1 -1
  225. package/dist/starter-kit/widgets/index.js +21 -18
  226. package/dist/starter-kit/widgets/index.js.map +1 -1
  227. package/dist/starter-kit/widgets/loaded.d.ts +10 -0
  228. package/dist/starter-kit/widgets/loaded.d.ts.map +1 -0
  229. package/dist/starter-kit/widgets/loaded.js +5 -0
  230. package/dist/styles.css +9 -2
  231. package/dist/themes.css +6 -1
  232. package/package.json +2 -2
  233. package/src/AlfakitRoot.vue +9 -1
  234. package/src/components/actions/ActionGroupMenu.vue +13 -1
  235. package/src/components/actions/ActionModal.vue +9 -0
  236. package/src/components/ai/AiCopilot.vue +7 -1
  237. package/src/components/cms/LivePreview.vue +8 -2
  238. package/src/components/fields/BuilderField.vue +15 -2
  239. package/src/components/fields/ImageEditorDialog.vue +7 -3
  240. package/src/components/fields/KeyValueField.vue +3 -2
  241. package/src/components/fields/ModalTablePicker.vue +7 -2
  242. package/src/components/fields/RepeaterField.vue +2 -3
  243. package/src/components/fields/RichEditorInput.vue +3 -0
  244. package/src/components/fields/item-actions.ts +31 -10
  245. package/src/components/form/FormBlock.vue +2 -1
  246. package/src/components/form/form-context.ts +2 -2
  247. package/src/components/kanban/KanbanBoard.vue +15 -3
  248. package/src/components/kanban/KanbanColumnHeader.vue +6 -4
  249. package/src/components/layout/SectionComponent.vue +10 -4
  250. package/src/components/panel/GlobalSearchPalette.vue +2 -0
  251. package/src/components/realtime/use-live-updates.ts +3 -1
  252. package/src/components/table/ColumnHeader.vue +23 -12
  253. package/src/components/table/ColumnManager.vue +12 -8
  254. package/src/components/table/ContentLayoutSort.vue +7 -1
  255. package/src/components/table/TableCellContent.vue +4 -2
  256. package/src/components/table/TablePagination.vue +12 -7
  257. package/src/components/table/cell-update.ts +6 -0
  258. package/src/components/ui/CommandAutoHighlight.vue +27 -0
  259. package/src/components/ui/DialogContent.vue +5 -1
  260. package/src/components/ui/PopoverContent.vue +5 -1
  261. package/src/components/ui/SheetContent.vue +5 -1
  262. package/src/components/ui/TooltipContent.vue +5 -1
  263. package/src/context.ts +10 -0
  264. package/src/create-alfakit.ts +5 -0
  265. package/src/index.ts +2 -0
  266. package/src/layouts/lazy-layouts.ts +14 -0
  267. package/src/layouts/panel-layouts.ts +17 -0
  268. package/src/lib/lazy.ts +11 -1
  269. package/src/pages/PageShell.vue +5 -6
  270. package/src/standalone/AlfakitComponent.vue +17 -6
  271. package/src/starter-kit/AlfakitStarterKitRoot.vue +12 -3
  272. package/src/starter-kit/dashboard-widgets.ts +93 -0
  273. package/src/starter-kit/index.ts +7 -1
  274. package/src/starter-kit/runtime.ts +17 -1
  275. package/src/starter-kit/starter-kit.ts +2 -1
  276. package/src/starter-kit/widgets/CopilotTrigger.vue +58 -0
  277. package/src/starter-kit/widgets/LoadedCopilot.vue +29 -0
  278. package/src/starter-kit/widgets/StarterKitImpersonationBanner.vue +57 -0
  279. package/src/starter-kit/widgets/index.ts +56 -11
  280. package/src/starter-kit/widgets/loaded.ts +9 -0
  281. package/src/styles.css +9 -2
@@ -1 +1 @@
1
- {"version":3,"file":"AppLayout.vue_vue_type_script_setup_true_lang.js","names":["AppSidebar","Topbar","BottomNav","_openBlock","_createBlock","TopNavLayout","_withCtx","_renderSlot","SidebarProvider","_normalizeStyle","_unref","_createVNode","Slot","_resolveDynamicComponent","SidebarInset","MobileTopbar","_createElementVNode","_normalizeClass","_createCommentVNode","Slot_default","AppSidebar_default","BottomNav_default","MobileTopbar_default","Topbar_default","SidebarInset_default","SidebarProvider_default","TopNavLayout_default","AppLayout_vue_vue_type_script_setup_true_lang_default","props","__props","pageProps","useAlfakitProps","registry","useRegistry","layout","computed","Sidebar","Bar","Bottom","mobilePreset","hasMobilePreset","showTopbar","hasTopbar","defaultOpen","sidebarDefaultOpen","width","openBlock","createBlock","withCtx","renderSlot","_ctx","normalizeStyle","unref","sidebarWidthStyle","createVNode","resolveDynamicComponent","createElementVNode","normalizeClass","cn","MAX_WIDTHS","createCommentVNode"],"sources":["../../src/layouts/AppLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n hasMobilePreset,\n hasTopbar,\n sidebarDefaultOpen,\n sidebarWidthStyle,\n type BreadcrumbSchema,\n type PageSchema,\n type Width,\n} from '@alfakit/core'\nimport { computed } from 'vue'\nimport AppSidebar from '../components/panel/AppSidebar.vue'\nimport BottomNav from '../components/panel/BottomNav.vue'\nimport MobileTopbar from '../components/panel/MobileTopbar.vue'\nimport Slot from '../components/panel/Slot.vue'\nimport Topbar from '../components/panel/Topbar.vue'\nimport SidebarInset from '../components/ui/SidebarInset.vue'\nimport SidebarProvider from '../components/ui/SidebarProvider.vue'\nimport { useAlfakitProps, useRegistry } from '../context'\nimport { cn } from '../lib/utils'\nimport { MAX_WIDTHS } from './max-widths'\nimport TopNavLayout from './TopNavLayout.vue'\n\n/** Sidebar + topbar shell used by every authenticated page. */\nconst props = defineProps<{\n breadcrumbs?: BreadcrumbSchema[]\n maxContentWidth?: Width | string\n page?: PageSchema\n}>()\nconst pageProps = useAlfakitProps()\nconst registry = useRegistry()\nconst layout = computed(() => pageProps.value.alfakit.theme?.design?.layout ?? 'sidebar')\n// Replace the sidebar or top bar everywhere with createAlfakit({ components: { 'panel:sidebar': … } }).\nconst Sidebar = computed(() => registry.resolve('panel:sidebar') ?? AppSidebar)\nconst Bar = computed(() => registry.resolve('panel:topbar') ?? Topbar)\n// The mobile preset's bottom bar (`Panel::mobile()`), hidden from `md` up.\nconst Bottom = computed(() => registry.resolve('panel:bottom-nav') ?? BottomNav)\nconst mobilePreset = computed(() => hasMobilePreset(pageProps.value.alfakit))\n// `topbar(false)`: no top bar, except a slim one with the sidebar toggle on phones.\nconst showTopbar = computed(() => hasTopbar(pageProps.value.alfakit))\n// The rail layout starts as icons only until the user expands it.\nconst defaultOpen = computed(() =>\n sidebarDefaultOpen(pageProps.value.alfakitSidebarOpen, layout.value),\n)\nconst width = computed(\n () => props.maxContentWidth ?? pageProps.value.alfakit.maxContentWidth ?? '7xl',\n)\n</script>\n\n<template>\n <TopNavLayout\n v-if=\"layout === 'topbar'\"\n :breadcrumbs=\"props.breadcrumbs\"\n :max-content-width=\"props.maxContentWidth\"\n >\n <slot />\n </TopNavLayout>\n <SidebarProvider v-else :default-open=\"defaultOpen\" :style=\"sidebarWidthStyle(pageProps.alfakit)\">\n <Slot name=\"body.start\" />\n <Slot name=\"layout.start\" />\n <component :is=\"Sidebar\" />\n <SidebarInset>\n <Slot name=\"topbar.before\" />\n <component :is=\"Bar\" v-if=\"showTopbar\" :breadcrumbs=\"props.breadcrumbs\" />\n <MobileTopbar v-else />\n <Slot name=\"topbar.after\" />\n <Slot name=\"content.before\" />\n <div\n data-slot=\"content\"\n :class=\"\n cn(\n 'mx-auto flex w-full min-w-0 flex-1 flex-col gap-6 p-4 md:p-6',\n MAX_WIDTHS[width] ?? 'max-w-7xl',\n )\n \"\n >\n <Slot name=\"content.start\" />\n <slot />\n <Slot name=\"content.end\" />\n </div>\n <Slot name=\"content.after\" />\n <Slot name=\"footer\" />\n </SidebarInset>\n <component :is=\"Bottom\" v-if=\"mobilePreset\" />\n <Slot name=\"layout.end\" />\n <Slot name=\"body.end\" />\n </SidebarProvider>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EAwBA,IAAM4B,IAAQC,GAKRC,IAAYC,EAAgB,GAC5BC,IAAWC,EAAY,GACvBC,IAASC,QAAeL,EAAU,MAAM,QAAQ,OAAO,QAAQ,UAAU,SAAS,GAElFM,IAAUD,QAAeH,EAAS,QAAQ,eAAe,KAAKhC,CAAU,GACxEqC,IAAMF,QAAeH,EAAS,QAAQ,cAAc,KAAK/B,CAAM,GAE/DqC,IAASH,QAAeH,EAAS,QAAQ,kBAAkB,KAAK9B,CAAS,GACzEqC,IAAeJ,QAAeK,EAAgBV,EAAU,MAAM,OAAO,CAAC,GAEtEW,IAAaN,QAAeO,EAAUZ,EAAU,MAAM,OAAO,CAAC,GAE9Da,IAAcR,QAClBS,EAAmBd,EAAU,MAAM,oBAAoBI,EAAO,KAAK,CACrE,GACMW,IAAQV,QACNP,EAAM,mBAAmBE,EAAU,MAAM,QAAQ,mBAAmB,KAC5E;mBAKUI,EAAA,UAAM,YADd/B,EAAA,GAAAC,EAMeC,GAAA;;GAJZ,aAAauB,EAAM;GACnB,qBAAmBA,EAAM;;GAE1B,SAAAtB,QAAQ,CAARC,EAAQ2C,EAAA,QAAA,SAAA,CAAA,CAAA;;EAEV/C,GAAAA,GAAAA,CAAAA,eAAAA,mBAAAA,CAAAA,MAAAA,EAAA,GAAAC,EA6BkBI,GAAA;;GA7BO,gBAAcmC,EAAA;GAAc,OAAKlC,EAAEC,EAAA2C,CAAA,CAAiB,CAAC3C,EAAAoB,CAAA,CAAS,CAAC,OAAO,CAAA;;GAC7F,SAAAxB,QAA0B;IAA1BK,EAA0BC,GAAA,EAApB,MAAK,aAAY,CAAA;IACvBD,EAA4BC,GAAA,EAAtB,MAAK,eAAc,CAAA;KACzBT,EAAA,GAAAC,EAA2BS,EAAXuB,EAAA,KAAO,CAAA;IACvBzB,EAqBeG,GAAA,MAAA;KApBb,SAAAR,QAA6B;MAA7BK,EAA6BC,GAAA,EAAvB,MAAK,gBAAe,CAAA;MACC6B,EAAA,SAA3BtC,EAAA,GAAAC,EAA0ES,EAA1DwB,EAAA,KAAG,GAAA;;OAAqB,aAAaT,EAAM;MAC3DzB,GAAAA,MAAAA,GAAAA,CAAAA,aAAAA,CAAAA,MAAAA,EAAA,GAAAC,EAAuBW,GAAA,EAAA,KAAA,EAAA,CAAA;MACvBJ,EAA4BC,GAAA,EAAtB,MAAK,eAAc,CAAA;MACzBD,EAA8BC,GAAA,EAAxB,MAAK,iBAAgB,CAAA;MAC3BI,EAYM,OAAA;OAXJ,aAAU;OACT,OAAKC,EAAaP,EAAAgD,CAAA,CAAE,CAAA,gEAA0FhD,EAAAiD,CAAA,CAAU,CAACd,EAAA,UAAK,WAAA,CAAA;;OAO/HlC,EAA6BC,GAAA,EAAvB,MAAK,gBAAe,CAAA;OAC1BL,EAAQ2C,EAAA,QAAA,SAAA;OACRvC,EAA2BC,GAAA,EAArB,MAAK,cAAa,CAAA;;MAE1BD,EAA6BC,GAAA,EAAvB,MAAK,gBAAe,CAAA;MAC1BD,EAAsBC,GAAA,EAAhB,MAAK,SAAQ,CAAA;;;;IAES2B,EAAA,SAA9BpC,EAAA,GAAAC,EAA8CS,EAA9ByB,EAAA,KAAM,GAAA,EAAA,KAAA,EAAA,CAAA,KAAAsB,EAAA,IAAA,EAAA;IACtBjD,EAA0BC,GAAA,EAApB,MAAK,aAAY,CAAA;IACvBD,EAAwBC,GAAA,EAAlB,MAAK,WAAU,CAAA"}
1
+ {"version":3,"file":"AppLayout.vue_vue_type_script_setup_true_lang.js","names":["AppSidebar","Topbar","BottomNav","_openBlock","_createBlock","TopNavLayout","_withCtx","_renderSlot","SidebarProvider","_normalizeStyle","_unref","_createVNode","Slot","_resolveDynamicComponent","SidebarInset","MobileTopbar","_createElementVNode","_normalizeClass","_createCommentVNode","Slot_default","AppSidebar_default","BottomNav_default","Topbar_default","SidebarInset_default","SidebarProvider_default","MobileTopbar_default","TopNavLayout_default","AppLayout_vue_vue_type_script_setup_true_lang_default","props","__props","pageProps","useAlfakitProps","registry","useRegistry","layout","computed","Sidebar","Bar","Bottom","mobilePreset","hasMobilePreset","showTopbar","hasTopbar","defaultOpen","sidebarDefaultOpen","width","openBlock","createBlock","withCtx","renderSlot","_ctx","normalizeStyle","unref","sidebarWidthStyle","createVNode","resolveDynamicComponent","createElementVNode","normalizeClass","cn","MAX_WIDTHS","createCommentVNode"],"sources":["../../src/layouts/AppLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n hasMobilePreset,\n hasTopbar,\n sidebarDefaultOpen,\n sidebarWidthStyle,\n type BreadcrumbSchema,\n type PageSchema,\n type Width,\n} from '@alfakit/core'\nimport { computed } from 'vue'\nimport AppSidebar from '../components/panel/AppSidebar.vue'\nimport BottomNav from '../components/panel/BottomNav.vue'\nimport MobileTopbar from '../components/panel/MobileTopbar.vue'\nimport Slot from '../components/panel/Slot.vue'\nimport Topbar from '../components/panel/Topbar.vue'\nimport SidebarInset from '../components/ui/SidebarInset.vue'\nimport SidebarProvider from '../components/ui/SidebarProvider.vue'\nimport { useAlfakitProps, useRegistry } from '../context'\nimport { cn } from '../lib/utils'\nimport { MAX_WIDTHS } from './max-widths'\nimport TopNavLayout from './TopNavLayout.vue'\n\n/** Sidebar + topbar shell used by every authenticated page. */\nconst props = defineProps<{\n breadcrumbs?: BreadcrumbSchema[]\n maxContentWidth?: Width | string\n page?: PageSchema\n}>()\nconst pageProps = useAlfakitProps()\nconst registry = useRegistry()\nconst layout = computed(() => pageProps.value.alfakit.theme?.design?.layout ?? 'sidebar')\n// Replace the sidebar or top bar everywhere with createAlfakit({ components: { 'panel:sidebar': … } }).\nconst Sidebar = computed(() => registry.resolve('panel:sidebar') ?? AppSidebar)\nconst Bar = computed(() => registry.resolve('panel:topbar') ?? Topbar)\n// The mobile preset's bottom bar (`Panel::mobile()`), hidden from `md` up.\nconst Bottom = computed(() => registry.resolve('panel:bottom-nav') ?? BottomNav)\nconst mobilePreset = computed(() => hasMobilePreset(pageProps.value.alfakit))\n// `topbar(false)`: no top bar, except a slim one with the sidebar toggle on phones.\nconst showTopbar = computed(() => hasTopbar(pageProps.value.alfakit))\n// The rail layout starts as icons only until the user expands it.\nconst defaultOpen = computed(() =>\n sidebarDefaultOpen(pageProps.value.alfakitSidebarOpen, layout.value),\n)\nconst width = computed(\n () => props.maxContentWidth ?? pageProps.value.alfakit.maxContentWidth ?? '7xl',\n)\n</script>\n\n<template>\n <TopNavLayout\n v-if=\"layout === 'topbar'\"\n :breadcrumbs=\"props.breadcrumbs\"\n :max-content-width=\"props.maxContentWidth\"\n >\n <slot />\n </TopNavLayout>\n <SidebarProvider v-else :default-open=\"defaultOpen\" :style=\"sidebarWidthStyle(pageProps.alfakit)\">\n <Slot name=\"body.start\" />\n <Slot name=\"layout.start\" />\n <component :is=\"Sidebar\" />\n <SidebarInset>\n <Slot name=\"topbar.before\" />\n <component :is=\"Bar\" v-if=\"showTopbar\" :breadcrumbs=\"props.breadcrumbs\" />\n <MobileTopbar v-else />\n <Slot name=\"topbar.after\" />\n <Slot name=\"content.before\" />\n <div\n data-slot=\"content\"\n :class=\"\n cn(\n 'mx-auto flex w-full min-w-0 flex-1 flex-col gap-6 p-4 md:p-6',\n MAX_WIDTHS[width] ?? 'max-w-7xl',\n )\n \"\n >\n <Slot name=\"content.start\" />\n <slot />\n <Slot name=\"content.end\" />\n </div>\n <Slot name=\"content.after\" />\n <Slot name=\"footer\" />\n </SidebarInset>\n <component :is=\"Bottom\" v-if=\"mobilePreset\" />\n <Slot name=\"layout.end\" />\n <Slot name=\"body.end\" />\n </SidebarProvider>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;EAwBA,IAAM4B,IAAQC,GAKRC,IAAYC,EAAgB,GAC5BC,IAAWC,EAAY,GACvBC,IAASC,QAAeL,EAAU,MAAM,QAAQ,OAAO,QAAQ,UAAU,SAAS,GAElFM,IAAUD,QAAeH,EAAS,QAAQ,eAAe,KAAKhC,CAAU,GACxEqC,IAAMF,QAAeH,EAAS,QAAQ,cAAc,KAAK/B,CAAM,GAE/DqC,IAASH,QAAeH,EAAS,QAAQ,kBAAkB,KAAK9B,CAAS,GACzEqC,IAAeJ,QAAeK,EAAgBV,EAAU,MAAM,OAAO,CAAC,GAEtEW,IAAaN,QAAeO,EAAUZ,EAAU,MAAM,OAAO,CAAC,GAE9Da,IAAcR,QAClBS,EAAmBd,EAAU,MAAM,oBAAoBI,EAAO,KAAK,CACrE,GACMW,IAAQV,QACNP,EAAM,mBAAmBE,EAAU,MAAM,QAAQ,mBAAmB,KAC5E;mBAKUI,EAAA,UAAM,YADd/B,EAAA,GAAAC,EAMeC,GAAA;;GAJZ,aAAauB,EAAM;GACnB,qBAAmBA,EAAM;;GAE1B,SAAAtB,QAAQ,CAARC,EAAQ2C,EAAA,QAAA,SAAA,CAAA,CAAA;;EAEV/C,GAAAA,GAAAA,CAAAA,eAAAA,mBAAAA,CAAAA,MAAAA,EAAA,GAAAC,EA6BkBI,GAAA;;GA7BO,gBAAcmC,EAAA;GAAc,OAAKlC,EAAEC,EAAA2C,CAAA,CAAiB,CAAC3C,EAAAoB,CAAA,CAAS,CAAC,OAAO,CAAA;;GAC7F,SAAAxB,QAA0B;IAA1BK,EAA0BC,GAAA,EAApB,MAAK,aAAY,CAAA;IACvBD,EAA4BC,GAAA,EAAtB,MAAK,eAAc,CAAA;KACzBT,EAAA,GAAAC,EAA2BS,EAAXuB,EAAA,KAAO,CAAA;IACvBzB,EAqBeG,GAAA,MAAA;KApBb,SAAAR,QAA6B;MAA7BK,EAA6BC,GAAA,EAAvB,MAAK,gBAAe,CAAA;MACC6B,EAAA,SAA3BtC,EAAA,GAAAC,EAA0ES,EAA1DwB,EAAA,KAAG,GAAA;;OAAqB,aAAaT,EAAM;MAC3DzB,GAAAA,MAAAA,GAAAA,CAAAA,aAAAA,CAAAA,MAAAA,EAAA,GAAAC,EAAuBW,GAAA,EAAA,KAAA,EAAA,CAAA;MACvBJ,EAA4BC,GAAA,EAAtB,MAAK,eAAc,CAAA;MACzBD,EAA8BC,GAAA,EAAxB,MAAK,iBAAgB,CAAA;MAC3BI,EAYM,OAAA;OAXJ,aAAU;OACT,OAAKC,EAAaP,EAAAgD,CAAA,CAAE,CAAA,gEAA0FhD,EAAAiD,CAAA,CAAU,CAACd,EAAA,UAAK,WAAA,CAAA;;OAO/HlC,EAA6BC,GAAA,EAAvB,MAAK,gBAAe,CAAA;OAC1BL,EAAQ2C,EAAA,QAAA,SAAA;OACRvC,EAA2BC,GAAA,EAArB,MAAK,cAAa,CAAA;;MAE1BD,EAA6BC,GAAA,EAAvB,MAAK,gBAAe,CAAA;MAC1BD,EAAsBC,GAAA,EAAhB,MAAK,SAAQ,CAAA;;;;IAES2B,EAAA,SAA9BpC,EAAA,GAAAC,EAA8CS,EAA9ByB,EAAA,KAAM,GAAA,EAAA,KAAA,EAAA,CAAA,KAAAsB,EAAA,IAAA,EAAA;IACtBjD,EAA0BC,GAAA,EAApB,MAAK,aAAY,CAAA;IACvBD,EAAwBC,GAAA,EAAlB,MAAK,WAAU,CAAA"}
@@ -6,10 +6,10 @@ import i from "../components/ui/CardContent.js";
6
6
  import a from "../components/panel/Brand.js";
7
7
  import o from "../components/panel/LocaleSwitcher.js";
8
8
  import s from "../components/panel/ThemeToggle.js";
9
- import { MAX_WIDTHS as c } from "./max-widths.js";
10
- import l from "../components/ui/CardDescription.js";
11
- import u from "../components/ui/CardHeader.js";
12
- import d from "../components/ui/CardTitle.js";
9
+ import c from "../components/ui/CardDescription.js";
10
+ import l from "../components/ui/CardHeader.js";
11
+ import u from "../components/ui/CardTitle.js";
12
+ import { MAX_WIDTHS as d } from "./max-widths.js";
13
13
  import { computed as f, createBlock as p, createCommentVNode as m, createElementBlock as h, createElementVNode as g, createTextVNode as _, createVNode as v, defineComponent as y, normalizeClass as b, openBlock as x, renderSlot as S, toDisplayString as C, unref as w, withCtx as T } from "vue";
14
14
  //#region src/layouts/AuthLayout.vue?vue&type=script&setup=true&lang.ts
15
15
  var E = { class: "bg-muted/40 flex min-h-svh flex-col items-center justify-center gap-6 p-6 md:p-10" }, D = { class: "absolute end-4 top-4 flex items-center gap-1" }, O = { class: "flex justify-center" }, k = /*@__PURE__*/ y({
@@ -20,8 +20,8 @@ var E = { class: "bg-muted/40 flex min-h-svh flex-col items-center justify-cente
20
20
  page: {}
21
21
  },
22
22
  setup(y) {
23
- let k = y, A = e(), j = f(() => c[A.value?.simplePageMaxContentWidth ?? "md"] ?? "max-w-md");
24
- return (e, c) => (x(), h("div", E, [
23
+ let k = y, A = e(), j = f(() => d[A.value?.simplePageMaxContentWidth ?? "md"] ?? "max-w-md");
24
+ return (e, d) => (x(), h("div", E, [
25
25
  v(n, { name: "simple.layout.start" }),
26
26
  g("div", D, [v(o), v(s)]),
27
27
  g("div", { class: b(w(t)("flex w-full flex-col gap-6", j.value)) }, [
@@ -30,11 +30,11 @@ var E = { class: "bg-muted/40 flex min-h-svh flex-col items-center justify-cente
30
30
  v(r, null, {
31
31
  default: T(() => [
32
32
  v(n, { name: "simple.page.start" }),
33
- k.heading || k.subheading ? (x(), p(u, {
33
+ k.heading || k.subheading ? (x(), p(l, {
34
34
  key: 0,
35
35
  class: "text-center"
36
36
  }, {
37
- default: T(() => [k.heading ? (x(), p(d, {
37
+ default: T(() => [k.heading ? (x(), p(u, {
38
38
  key: 0,
39
39
  role: "heading",
40
40
  "aria-level": "1",
@@ -42,7 +42,7 @@ var E = { class: "bg-muted/40 flex min-h-svh flex-col items-center justify-cente
42
42
  }, {
43
43
  default: T(() => [_(C(k.heading), 1)]),
44
44
  _: 1
45
- })) : m("", !0), k.subheading ? (x(), p(l, { key: 1 }, {
45
+ })) : m("", !0), k.subheading ? (x(), p(c, { key: 1 }, {
46
46
  default: T(() => [_(C(k.subheading), 1)]),
47
47
  _: 1
48
48
  })) : m("", !0)]),
@@ -5,10 +5,10 @@ import r from "../components/panel/Slot.js";
5
5
  import i from "../components/notifications/NotificationsMenu.js";
6
6
  import a from "../components/panel/Brand.js";
7
7
  import o from "../components/panel/UserMenu.js";
8
- import s from "../components/panel/TopbarLocaleSwitcher.js";
9
- import c from "../components/ui/Separator.js";
10
- import l from "../components/panel/DebugPanelSlot.js";
11
- import u from "../components/panel/ThemeToggle.js";
8
+ import s from "../components/panel/DebugPanelSlot.js";
9
+ import c from "../components/panel/ThemeToggle.js";
10
+ import l from "../components/ui/Separator.js";
11
+ import u from "../components/panel/TopbarLocaleSwitcher.js";
12
12
  import { Link as d } from "@inertiajs/vue3";
13
13
  import { computed as f, createBlock as p, createCommentVNode as m, createElementBlock as h, createElementVNode as g, createVNode as _, defineComponent as v, openBlock as y, renderSlot as b, toDisplayString as x, unref as S, withCtx as C } from "vue";
14
14
  import { LogOutIcon as w } from "@lucide/vue";
@@ -39,7 +39,7 @@ var T = {
39
39
  _(r, { name: "topbar.logo.before" }),
40
40
  _(a, { class: "hidden shrink-0 sm:flex" }),
41
41
  _(r, { name: "topbar.logo.after" }),
42
- _(c, {
42
+ _(l, {
43
43
  orientation: "vertical",
44
44
  class: "hidden h-4 sm:block"
45
45
  }),
@@ -48,9 +48,9 @@ var T = {
48
48
  g("div", O, [
49
49
  _(r, { name: "topbar.end" }),
50
50
  _(i),
51
- _(s),
52
51
  _(u),
53
- _(l),
52
+ _(c),
53
+ _(s),
54
54
  _(o, { variant: "topbar" }),
55
55
  I.value ? (y(), p(n, {
56
56
  key: 0,
@@ -77,7 +77,7 @@ var T = {
77
77
  _: 1
78
78
  })) : m("", !0)
79
79
  ])
80
- ])) : (y(), h("div", j, [_(l)])),
80
+ ])) : (y(), h("div", j, [_(s)])),
81
81
  g("main", M, [
82
82
  _(r, { name: "content.start" }),
83
83
  b(e.$slots, "default"),
@@ -1 +1 @@
1
- {"version":3,"file":"FullscreenLayout.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_createVNode","Slot","Brand","Separator","_createElementVNode","_toDisplayString","NotificationsMenu","TopbarLocaleSwitcher","ThemeToggle","DebugPanelSlot","UserMenu","_createBlock","Button","_withCtx","_unref","Icon","_createCommentVNode","_renderSlot","Icon_default","Button_default","Slot_default","NotificationsMenu_default","Brand_default","UserMenu_default","TopbarLocaleSwitcher_default","Separator_default","DebugPanelSlot_default","ThemeToggle_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","FullscreenLayout_vue_vue_type_script_setup_true_lang_default","props","__props","t","useT","header","computed","exitUrl","openBlock","createElementBlock","createVNode","createElementVNode","toDisplayString","createBlock","withCtx","unref","Link","LogOutIcon","createCommentVNode","renderSlot","_ctx"],"sources":["../../src/layouts/FullscreenLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PageSchema } from '@alfakit/core'\nimport { Link } from '@inertiajs/vue3'\nimport { LogOutIcon } from '@lucide/vue'\nimport { computed } from 'vue'\nimport NotificationsMenu from '../components/notifications/NotificationsMenu.vue'\nimport Brand from '../components/panel/Brand.vue'\nimport DebugPanelSlot from '../components/panel/DebugPanelSlot.vue'\nimport Slot from '../components/panel/Slot.vue'\nimport ThemeToggle from '../components/panel/ThemeToggle.vue'\nimport TopbarLocaleSwitcher from '../components/panel/TopbarLocaleSwitcher.vue'\nimport UserMenu from '../components/panel/UserMenu.vue'\nimport Button from '../components/ui/Button.vue'\nimport Separator from '../components/ui/Separator.vue'\nimport { useT } from '../context'\nimport { Icon } from '../lib/icons'\n\n/**\n * `$layout = 'fullscreen'`: the whole viewport for an app screen (point of sale, kiosk,\n * board). No sidebar or topbar; an optional slim header keeps the brand, the page title,\n * notifications, the user menu and a way back to the panel. Toasts, modals and the debug\n * panel work as on every other page. Replace it with `components: { 'layout:fullscreen': … }`.\n */\nconst props = defineProps<{ page?: PageSchema }>()\nconst t = useT()\nconst header = computed(() => props.page?.fullscreen?.header !== false)\nconst exitUrl = computed(() => props.page?.fullscreen?.exitUrl)\n</script>\n\n<template>\n <div data-layout=\"fullscreen\" class=\"bg-background flex h-svh min-h-0 flex-col\">\n <Slot name=\"body.start\" />\n <Slot name=\"layout.start\" />\n <header\n v-if=\"header\"\n data-slot=\"topbar\"\n data-variant=\"fullscreen\"\n class=\"bg-background flex h-12 shrink-0 items-center gap-3 border-b px-3 md:px-4\"\n >\n <Slot name=\"topbar.logo.before\" />\n <Brand class=\"hidden shrink-0 sm:flex\" />\n <Slot name=\"topbar.logo.after\" />\n <Separator orientation=\"vertical\" class=\"hidden h-4 sm:block\" />\n <h1 class=\"min-w-0 truncate text-sm font-semibold\">\n {{ props.page?.heading ?? props.page?.title }}\n </h1>\n <Slot name=\"topbar.start\" />\n <div class=\"ms-auto flex shrink-0 items-center gap-1\">\n <Slot name=\"topbar.end\" />\n <NotificationsMenu />\n <TopbarLocaleSwitcher />\n <ThemeToggle />\n <DebugPanelSlot />\n <UserMenu variant=\"topbar\" />\n <Button v-if=\"exitUrl\" variant=\"ghost\" size=\"sm\" as-child>\n <Link :href=\"exitUrl\" data-slot=\"fullscreen-exit\">\n <Icon\n name=\"alfakit::panels.widgets.account.logout-button\"\n :fallback=\"LogOutIcon\"\n class=\"rtl:rotate-180\"\n aria-hidden=\"true\"\n />\n <span class=\"hidden sm:inline\">{{ t('exit_fullscreen', {}, 'Exit') }}</span>\n <span class=\"sr-only sm:hidden\">{{ t('exit_fullscreen', {}, 'Exit') }}</span>\n </Link>\n </Button>\n </div>\n </header>\n <div v-else class=\"fixed end-3 bottom-3 z-40\">\n <DebugPanelSlot />\n </div>\n <main data-slot=\"content\" class=\"flex min-h-0 w-full min-w-0 flex-1 flex-col\">\n <Slot name=\"content.start\" />\n <slot />\n <Slot name=\"content.end\" />\n </main>\n <Slot name=\"layout.end\" />\n <Slot name=\"body.end\" />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBA,IAAMuC,IAAQC,GACRC,IAAIC,EAAK,GACTC,IAASC,QAAeL,EAAM,MAAM,YAAY,WAAW,EAAK,GAChEM,IAAUD,QAAeL,EAAM,MAAM,YAAY,OAAO;oBAI5DvC,EAAA,GAAAC,EAgDM,OAhDN6B,GAgDM;GA/CJ5B,EAA0BC,GAAA,EAApB,MAAK,aAAY,CAAA;GACvBD,EAA4BC,GAAA,EAAtB,MAAK,eAAc,CAAA;GAEjBwC,EAAA,SADR3C,EAAA,GAAAC,EAkCS,UAlCT8B,GAkCS;IA5BP7B,EAAkCC,GAAA,EAA5B,MAAK,qBAAoB,CAAA;IAC/BD,EAAyCE,GAAA,EAAlC,OAAM,0BAAyB,CAAA;IACtCF,EAAiCC,GAAA,EAA3B,MAAK,oBAAmB,CAAA;IAC9BD,EAAgEG,GAAA;KAArD,aAAY;KAAW,OAAM;;IACxCC,EAEK,MAFL0B,GAEKzB,EADAgC,EAAM,MAAM,WAAWA,EAAM,MAAM,KAAK,GAAA,CAAA;IAE7CrC,EAA4BC,GAAA,EAAtB,MAAK,eAAc,CAAA;IACzBG,EAmBM,OAnBN2B,GAmBM;KAlBJ/B,EAA0BC,GAAA,EAApB,MAAK,aAAY,CAAA;KACvBD,EAAqBM,CAAA;KACrBN,EAAwBO,CAAA;KACxBP,EAAeQ,CAAA;KACfR,EAAkBS,CAAA;KAClBT,EAA6BU,GAAA,EAAnB,SAAQ,SAAQ,CAAA;KACZiC,EAAA,SAAd7C,EAAA,GAAAa,EAWSC,GAAA;;MAXc,SAAQ;MAAQ,MAAK;MAAK,YAAA;;MAC/C,SAAAC,QASO,CATPb,EASOc,EAAAsC,CAAA,GAAA;OATA,MAAMT,EAAA;OAAS,aAAU;;OAC9B,SAAA9B,QAKE;QALFb,EAKEc,EAAAC,CAAA,GAAA;SAJA,MAAK;SACJ,UAAUD,EAAAuC,CAAA;SACX,OAAM;SACN,eAAY;;QAEdjD,EAA4E,QAA5E4B,GAA4E3B,EAA1CS,EAAAyB,CAAA,CAAC,CAAA,mBAAA,CAAA,GAAA,MAAA,CAAA,GAAA,CAAA;QACnCnC,EAA6E,QAA7E6B,GAA6E5B,EAA1CS,EAAAyB,CAAA,CAAC,CAAA,mBAAA,CAAA,GAAA,MAAA,CAAA,GAAA,CAAA;;;;;;;GAK5CzC,CAAAA,MAAAA,EAAA,GAAAC,EAEM,OAFNmC,GAEM,CADJlC,EAAkBS,CAAA,CAAA,CAAA;GAEpBL,EAIO,QAJP+B,GAIO;IAHLnC,EAA6BC,GAAA,EAAvB,MAAK,gBAAe,CAAA;IAC1BgB,EAAQuC,EAAA,QAAA,SAAA;IACRxD,EAA2BC,GAAA,EAArB,MAAK,cAAa,CAAA;;GAE1BD,EAA0BC,GAAA,EAApB,MAAK,aAAY,CAAA;GACvBD,EAAwBC,GAAA,EAAlB,MAAK,WAAU,CAAA"}
1
+ {"version":3,"file":"FullscreenLayout.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_createVNode","Slot","Brand","Separator","_createElementVNode","_toDisplayString","NotificationsMenu","TopbarLocaleSwitcher","ThemeToggle","DebugPanelSlot","UserMenu","_createBlock","Button","_withCtx","_unref","Icon","_createCommentVNode","_renderSlot","Icon_default","Button_default","Slot_default","NotificationsMenu_default","Brand_default","UserMenu_default","DebugPanelSlot_default","ThemeToggle_default","Separator_default","TopbarLocaleSwitcher_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","FullscreenLayout_vue_vue_type_script_setup_true_lang_default","props","__props","t","useT","header","computed","exitUrl","openBlock","createElementBlock","createVNode","createElementVNode","toDisplayString","createBlock","withCtx","unref","Link","LogOutIcon","createCommentVNode","renderSlot","_ctx"],"sources":["../../src/layouts/FullscreenLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PageSchema } from '@alfakit/core'\nimport { Link } from '@inertiajs/vue3'\nimport { LogOutIcon } from '@lucide/vue'\nimport { computed } from 'vue'\nimport NotificationsMenu from '../components/notifications/NotificationsMenu.vue'\nimport Brand from '../components/panel/Brand.vue'\nimport DebugPanelSlot from '../components/panel/DebugPanelSlot.vue'\nimport Slot from '../components/panel/Slot.vue'\nimport ThemeToggle from '../components/panel/ThemeToggle.vue'\nimport TopbarLocaleSwitcher from '../components/panel/TopbarLocaleSwitcher.vue'\nimport UserMenu from '../components/panel/UserMenu.vue'\nimport Button from '../components/ui/Button.vue'\nimport Separator from '../components/ui/Separator.vue'\nimport { useT } from '../context'\nimport { Icon } from '../lib/icons'\n\n/**\n * `$layout = 'fullscreen'`: the whole viewport for an app screen (point of sale, kiosk,\n * board). No sidebar or topbar; an optional slim header keeps the brand, the page title,\n * notifications, the user menu and a way back to the panel. Toasts, modals and the debug\n * panel work as on every other page. Replace it with `components: { 'layout:fullscreen': … }`.\n */\nconst props = defineProps<{ page?: PageSchema }>()\nconst t = useT()\nconst header = computed(() => props.page?.fullscreen?.header !== false)\nconst exitUrl = computed(() => props.page?.fullscreen?.exitUrl)\n</script>\n\n<template>\n <div data-layout=\"fullscreen\" class=\"bg-background flex h-svh min-h-0 flex-col\">\n <Slot name=\"body.start\" />\n <Slot name=\"layout.start\" />\n <header\n v-if=\"header\"\n data-slot=\"topbar\"\n data-variant=\"fullscreen\"\n class=\"bg-background flex h-12 shrink-0 items-center gap-3 border-b px-3 md:px-4\"\n >\n <Slot name=\"topbar.logo.before\" />\n <Brand class=\"hidden shrink-0 sm:flex\" />\n <Slot name=\"topbar.logo.after\" />\n <Separator orientation=\"vertical\" class=\"hidden h-4 sm:block\" />\n <h1 class=\"min-w-0 truncate text-sm font-semibold\">\n {{ props.page?.heading ?? props.page?.title }}\n </h1>\n <Slot name=\"topbar.start\" />\n <div class=\"ms-auto flex shrink-0 items-center gap-1\">\n <Slot name=\"topbar.end\" />\n <NotificationsMenu />\n <TopbarLocaleSwitcher />\n <ThemeToggle />\n <DebugPanelSlot />\n <UserMenu variant=\"topbar\" />\n <Button v-if=\"exitUrl\" variant=\"ghost\" size=\"sm\" as-child>\n <Link :href=\"exitUrl\" data-slot=\"fullscreen-exit\">\n <Icon\n name=\"alfakit::panels.widgets.account.logout-button\"\n :fallback=\"LogOutIcon\"\n class=\"rtl:rotate-180\"\n aria-hidden=\"true\"\n />\n <span class=\"hidden sm:inline\">{{ t('exit_fullscreen', {}, 'Exit') }}</span>\n <span class=\"sr-only sm:hidden\">{{ t('exit_fullscreen', {}, 'Exit') }}</span>\n </Link>\n </Button>\n </div>\n </header>\n <div v-else class=\"fixed end-3 bottom-3 z-40\">\n <DebugPanelSlot />\n </div>\n <main data-slot=\"content\" class=\"flex min-h-0 w-full min-w-0 flex-1 flex-col\">\n <Slot name=\"content.start\" />\n <slot />\n <Slot name=\"content.end\" />\n </main>\n <Slot name=\"layout.end\" />\n <Slot name=\"body.end\" />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBA,IAAMuC,IAAQC,GACRC,IAAIC,EAAK,GACTC,IAASC,QAAeL,EAAM,MAAM,YAAY,WAAW,EAAK,GAChEM,IAAUD,QAAeL,EAAM,MAAM,YAAY,OAAO;oBAI5DvC,EAAA,GAAAC,EAgDM,OAhDN6B,GAgDM;GA/CJ5B,EAA0BC,GAAA,EAApB,MAAK,aAAY,CAAA;GACvBD,EAA4BC,GAAA,EAAtB,MAAK,eAAc,CAAA;GAEjBwC,EAAA,SADR3C,EAAA,GAAAC,EAkCS,UAlCT8B,GAkCS;IA5BP7B,EAAkCC,GAAA,EAA5B,MAAK,qBAAoB,CAAA;IAC/BD,EAAyCE,GAAA,EAAlC,OAAM,0BAAyB,CAAA;IACtCF,EAAiCC,GAAA,EAA3B,MAAK,oBAAmB,CAAA;IAC9BD,EAAgEG,GAAA;KAArD,aAAY;KAAW,OAAM;;IACxCC,EAEK,MAFL0B,GAEKzB,EADAgC,EAAM,MAAM,WAAWA,EAAM,MAAM,KAAK,GAAA,CAAA;IAE7CrC,EAA4BC,GAAA,EAAtB,MAAK,eAAc,CAAA;IACzBG,EAmBM,OAnBN2B,GAmBM;KAlBJ/B,EAA0BC,GAAA,EAApB,MAAK,aAAY,CAAA;KACvBD,EAAqBM,CAAA;KACrBN,EAAwBO,CAAA;KACxBP,EAAeQ,CAAA;KACfR,EAAkBS,CAAA;KAClBT,EAA6BU,GAAA,EAAnB,SAAQ,SAAQ,CAAA;KACZiC,EAAA,SAAd7C,EAAA,GAAAa,EAWSC,GAAA;;MAXc,SAAQ;MAAQ,MAAK;MAAK,YAAA;;MAC/C,SAAAC,QASO,CATPb,EASOc,EAAAsC,CAAA,GAAA;OATA,MAAMT,EAAA;OAAS,aAAU;;OAC9B,SAAA9B,QAKE;QALFb,EAKEc,EAAAC,CAAA,GAAA;SAJA,MAAK;SACJ,UAAUD,EAAAuC,CAAA;SACX,OAAM;SACN,eAAY;;QAEdjD,EAA4E,QAA5E4B,GAA4E3B,EAA1CS,EAAAyB,CAAA,CAAC,CAAA,mBAAA,CAAA,GAAA,MAAA,CAAA,GAAA,CAAA;QACnCnC,EAA6E,QAA7E6B,GAA6E5B,EAA1CS,EAAAyB,CAAA,CAAC,CAAA,mBAAA,CAAA,GAAA,MAAA,CAAA,GAAA,CAAA;;;;;;;GAK5CzC,CAAAA,MAAAA,EAAA,GAAAC,EAEM,OAFNmC,GAEM,CADJlC,EAAkBS,CAAA,CAAA,CAAA;GAEpBL,EAIO,QAJP+B,GAIO;IAHLnC,EAA6BC,GAAA,EAAvB,MAAK,gBAAe,CAAA;IAC1BgB,EAAQuC,EAAA,QAAA,SAAA;IACRxD,EAA2BC,GAAA,EAArB,MAAK,cAAa,CAAA;;GAE1BD,EAA0BC,GAAA,EAApB,MAAK,aAAY,CAAA;GACvBD,EAAwBC,GAAA,EAAlB,MAAK,WAAU,CAAA"}
@@ -9,17 +9,17 @@ import u from "../components/ui/SheetHeader.js";
9
9
  import d from "../components/ui/SheetTitle.js";
10
10
  import f from "../components/ui/SheetTrigger.js";
11
11
  import p from "../lib/NewTabHint.js";
12
+ import m from "../components/panel/NavLabel.js";
12
13
  import ee from "../components/notifications/NotificationsMenu.js";
13
- import m from "../components/panel/Brand.js";
14
- import h from "../components/panel/GlobalSearch.js";
15
- import g from "../components/panel/NavLabel.js";
14
+ import h from "../components/panel/Brand.js";
15
+ import g from "../components/panel/GlobalSearch.js";
16
16
  import _ from "../components/panel/TenantMenu.js";
17
17
  import te from "../components/panel/UserMenu.js";
18
18
  import ne from "../components/panel/BottomNav.js";
19
- import re from "../components/panel/TopbarLocaleSwitcher.js";
20
- import ie from "../components/panel/Breadcrumbs.js";
21
- import v from "../components/panel/DebugPanelSlot.js";
22
- import y from "../components/panel/ThemeToggle.js";
19
+ import re from "../components/panel/Breadcrumbs.js";
20
+ import ie from "../components/panel/DebugPanelSlot.js";
21
+ import v from "../components/panel/ThemeToggle.js";
22
+ import y from "../components/panel/TopbarLocaleSwitcher.js";
23
23
  import { MAX_WIDTHS as b } from "./max-widths.js";
24
24
  import ae from "./TopNavGroupWrapper.js";
25
25
  import x from "./TopNavMenu.js";
@@ -75,7 +75,7 @@ var H = {
75
75
  }, {
76
76
  default: B(() => [k(u, { class: "border-b" }, {
77
77
  default: B(() => [k(d, { "as-child": "" }, {
78
- default: B(() => [O("div", null, [k(m)])]),
78
+ default: B(() => [O("div", null, [k(h)])]),
79
79
  _: 1
80
80
  })]),
81
81
  _: 1
@@ -92,7 +92,7 @@ var H = {
92
92
  default: B(() => [e.icon ? (N(), T(z(a), {
93
93
  key: 0,
94
94
  name: e.icon
95
- }, null, 8, ["name"])) : E("", !0), k(g, {
95
+ }, null, 8, ["name"])) : E("", !0), k(m, {
96
96
  text: e.label,
97
97
  html: e.labelHtml
98
98
  }, null, 8, ["text", "html"])]),
@@ -103,7 +103,7 @@ var H = {
103
103
  _: 1
104
104
  }, 8, ["open"]),
105
105
  k(s, { name: "topbar.logo.before" }),
106
- k(m, { class: "me-2 shrink-0" }),
106
+ k(h, { class: "me-2 shrink-0" }),
107
107
  k(s, { name: "topbar.logo.after" }),
108
108
  z(Y).tenancy?.current ? (N(), T(s, {
109
109
  key: 0,
@@ -162,7 +162,7 @@ var H = {
162
162
  key: 0,
163
163
  name: e.icon
164
164
  }, null, 8, ["name"])) : E("", !0),
165
- k(g, {
165
+ k(m, {
166
166
  text: e.label,
167
167
  html: e.labelHtml
168
168
  }, null, 8, ["text", "html"]),
@@ -181,7 +181,7 @@ var H = {
181
181
  default: B(() => [e.icon ? (N(), T(z(a), {
182
182
  key: 0,
183
183
  name: e.icon
184
- }, null, 8, ["name"])) : E("", !0), k(g, {
184
+ }, null, 8, ["name"])) : E("", !0), k(m, {
185
185
  text: e.label,
186
186
  html: e.labelHtml
187
187
  }, null, 8, ["text", "html"])]),
@@ -196,11 +196,11 @@ var H = {
196
196
  k(s, { name: "topbar.start" }),
197
197
  O("div", le, [
198
198
  k(s, { name: "topbar.end" }),
199
- k(h),
199
+ k(g),
200
200
  k(ee),
201
- k(re),
202
201
  k(y),
203
202
  k(v),
203
+ k(ie),
204
204
  k(te, { variant: "topbar" })
205
205
  ])
206
206
  ], 2)]),
@@ -210,7 +210,7 @@ var H = {
210
210
  "data-slot": "content",
211
211
  class: M(z(i)("mx-auto flex w-full min-w-0 flex-1 flex-col gap-6 p-4 md:p-6", Q.value))
212
212
  }, [
213
- z(Y).breadcrumbs && J.breadcrumbs && J.breadcrumbs.length > 0 ? (N(), T(ie, {
213
+ z(Y).breadcrumbs && J.breadcrumbs && J.breadcrumbs.length > 0 ? (N(), T(re, {
214
214
  key: 0,
215
215
  items: J.breadcrumbs
216
216
  }, null, 8, ["items"])) : E("", !0),
@@ -1 +1 @@
1
- {"version":3,"file":"TopNavLayout.vue_vue_type_script_setup_true_lang.js","names":["BottomNav","_openBlock","_createElementBlock","_createVNode","Slot","_createElementVNode","_normalizeClass","_unref","Sheet","_withCtx","SheetTrigger","Button","Icon","SheetContent","SheetHeader","SheetTitle","Brand","_Fragment","_renderList","_toDisplayString","_createCommentVNode","_createBlock","NavLabel","TenantMenu","TopNavGroupWrapper","TopNavMenu","_mergeProps","NewTabHint","GlobalSearch","NotificationsMenu","TopbarLocaleSwitcher","ThemeToggle","DebugPanelSlot","UserMenu","Breadcrumbs","_renderSlot","_resolveDynamicComponent","Icon_default","Button_default","Slot_default","Sheet_default","SheetContent_default","SheetHeader_default","SheetTitle_default","SheetTrigger_default","NewTabHint_default","NotificationsMenu_default","Brand_default","GlobalSearch_default","NavLabel_default","TenantMenu_default","UserMenu_default","BottomNav_default","TopbarLocaleSwitcher_default","Breadcrumbs_default","DebugPanelSlot_default","ThemeToggle_default","TopNavGroupWrapper_default","TopNavMenu_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","linkClass","TopNavLayout_vue_vue_type_script_setup_true_lang_default","props","__props","panel","usePanel","t","useT","direction","useDirection","registry","useRegistry","open","ref","Bottom","computed","mobilePreset","hasMobilePreset","width","MAX_WIDTHS","isActive","item","openBlock","createElementBlock","createVNode","createElementVNode","normalizeClass","unref","cn","_cache","$event","withCtx","MenuIcon","Fragment","renderList","group","index","toDisplayString","createCommentVNode","entry","createBlock","Link","mergeProps","PREFETCH_CACHE_FOR","renderSlot","_ctx","resolveDynamicComponent"],"sources":["../../src/layouts/TopNavLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n PREFETCH_CACHE_FOR,\n hasMobilePreset,\n type BreadcrumbSchema,\n type NavigationItemSchema,\n type Width,\n} from '@alfakit/core'\nimport { Link } from '@inertiajs/vue3'\nimport { MenuIcon } from '@lucide/vue'\nimport { computed, ref } from 'vue'\nimport NotificationsMenu from '../components/notifications/NotificationsMenu.vue'\nimport BottomNav from '../components/panel/BottomNav.vue'\nimport Brand from '../components/panel/Brand.vue'\nimport TenantMenu from '../components/panel/TenantMenu.vue'\nimport Breadcrumbs from '../components/panel/Breadcrumbs.vue'\nimport GlobalSearch from '../components/panel/GlobalSearch.vue'\nimport NavLabel from '../components/panel/NavLabel.vue'\nimport Slot from '../components/panel/Slot.vue'\nimport DebugPanelSlot from '../components/panel/DebugPanelSlot.vue'\nimport ThemeToggle from '../components/panel/ThemeToggle.vue'\nimport TopbarLocaleSwitcher from '../components/panel/TopbarLocaleSwitcher.vue'\nimport UserMenu from '../components/panel/UserMenu.vue'\nimport Button from '../components/ui/Button.vue'\nimport Sheet from '../components/ui/Sheet.vue'\nimport SheetContent from '../components/ui/SheetContent.vue'\nimport SheetHeader from '../components/ui/SheetHeader.vue'\nimport SheetTitle from '../components/ui/SheetTitle.vue'\nimport SheetTrigger from '../components/ui/SheetTrigger.vue'\nimport { useDirection, usePanel, useRegistry, useT } from '../context'\nimport { Icon } from '../lib/icons'\nimport { cn } from '../lib/utils'\nimport { MAX_WIDTHS } from './max-widths'\nimport TopNavGroupWrapper from './TopNavGroupWrapper.vue'\nimport TopNavMenu from './TopNavMenu.vue'\nimport NewTabHint from '../lib/NewTabHint.vue'\n\n/**\n * Navigation across the top instead of a sidebar (`layout: 'topbar'`). Ungrouped items are\n * links; labelled groups and items with children open as dropdowns.\n */\nconst props = defineProps<{ breadcrumbs?: BreadcrumbSchema[]; maxContentWidth?: Width | string }>()\nconst panel = usePanel()\nconst t = useT()\nconst direction = useDirection()\nconst registry = useRegistry()\nconst open = ref(false)\nconst Bottom = computed(() => registry.resolve('panel:bottom-nav') ?? BottomNav)\nconst mobilePreset = computed(() => hasMobilePreset(panel.value))\nconst width = computed(\n () => MAX_WIDTHS[props.maxContentWidth ?? panel.value.maxContentWidth ?? '7xl'] ?? 'max-w-7xl',\n)\n\nconst isActive = (item: NavigationItemSchema): boolean =>\n Boolean(item.active || item.children?.some(isActive))\n\nconst linkClass =\n 'text-muted-foreground hover:text-foreground hover:bg-accent data-[active=true]:bg-accent data-[active=true]:text-foreground inline-flex h-9 shrink-0 items-center gap-2 rounded-md px-3 text-sm font-medium transition-colors [&_svg]:size-4'\n</script>\n\n<template>\n <div data-slot=\"topnav-layout\" class=\"bg-background flex min-h-svh flex-col\">\n <Slot name=\"body.start\" />\n <Slot name=\"layout.start\" />\n <Slot name=\"topbar.before\" />\n <header\n data-slot=\"topbar\"\n class=\"bg-background/90 supports-[backdrop-filter]:bg-background/70 sticky top-0 z-30 border-b backdrop-blur\"\n >\n <div :class=\"cn('mx-auto flex h-14 w-full items-center gap-3 px-4 md:px-6', width)\">\n <Sheet :open=\"open\" @update:open=\"open = $event\">\n <SheetTrigger as-child>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n class=\"md:hidden\"\n :aria-label=\"t('toggle_sidebar', {}, 'Toggle sidebar')\"\n >\n <Icon name=\"alfakit::panels.topbar.open-sidebar-button\" :fallback=\"MenuIcon\" />\n </Button>\n </SheetTrigger>\n <SheetContent :side=\"direction === 'rtl' ? 'right' : 'left'\" class=\"w-72 p-0\">\n <SheetHeader class=\"border-b\">\n <SheetTitle as-child>\n <div><Brand /></div>\n </SheetTitle>\n </SheetHeader>\n <nav class=\"flex flex-col gap-4 overflow-y-auto p-4 text-sm\">\n <div\n v-for=\"(group, index) in panel.navigation\"\n :key=\"group.label ?? index\"\n class=\"flex flex-col gap-1\"\n >\n <p v-if=\"group.label\" class=\"text-muted-foreground px-2 text-xs font-medium\">\n {{ group.label }}\n </p>\n <Link\n v-for=\"item in group.items.flatMap((entry) => [entry, ...(entry.children ?? [])])\"\n :key=\"item.label\"\n :href=\"item.url ?? '#'\"\n :data-active=\"item.active ? 'true' : undefined\"\n class=\"hover:bg-accent data-[active=true]:bg-accent flex items-center gap-2 rounded-md px-2 py-2 font-medium [&_svg]:size-4\"\n @click=\"open = false\"\n >\n <Icon v-if=\"item.icon\" :name=\"item.icon\" />\n <NavLabel :text=\"item.label\" :html=\"item.labelHtml\" />\n </Link>\n </div>\n </nav>\n </SheetContent>\n </Sheet>\n <Slot name=\"topbar.logo.before\" />\n <Brand class=\"me-2 shrink-0\" />\n <Slot name=\"topbar.logo.after\" />\n <Slot v-if=\"panel.tenancy?.current\" name=\"tenant-menu.before\" />\n <TenantMenu variant=\"topbar\" />\n <Slot v-if=\"panel.tenancy?.current\" name=\"tenant-menu.after\" />\n <nav\n data-slot=\"topnav\"\n :aria-label=\"t('navigation', {}, 'Navigation')\"\n class=\"hidden min-w-0 flex-1 items-center gap-1 self-stretch overflow-x-auto md:flex\"\n >\n <TopNavGroupWrapper\n v-for=\"(group, index) in panel.navigation\"\n :key=\"group.label ?? `group-${index}`\"\n :attributes=\"group.extraTopbarAttributes\"\n >\n <TopNavMenu\n v-if=\"group.label\"\n :label=\"group.label\"\n :icon=\"group.icon\"\n :items=\"group.items\"\n :active=\"group.items.some(isActive)\"\n />\n <template v-for=\"item in group.items\" v-else :key=\"item.label\">\n <TopNavMenu\n v-if=\"item.children && item.children.length > 0\"\n :label=\"item.label\"\n :label-html=\"item.labelHtml\"\n :icon=\"item.icon\"\n :items=\"item.children\"\n :active=\"isActive(item)\"\n :attributes=\"item.extraAttributes\"\n />\n <a\n v-else-if=\"item.openInNewTab\"\n v-bind=\"item.extraAttributes ?? {}\"\n :href=\"item.url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n data-slot=\"topnav-link\"\n :class=\"linkClass\"\n >\n <Icon v-if=\"item.icon\" :name=\"item.icon\" />\n <NavLabel :text=\"item.label\" :html=\"item.labelHtml\" />\n <NewTabHint />\n </a>\n <Link\n v-else\n v-bind=\"item.extraAttributes ?? {}\"\n :href=\"item.url ?? '#'\"\n prefetch\n :cache-for=\"PREFETCH_CACHE_FOR\"\n data-slot=\"topnav-link\"\n :data-active=\"item.active ? 'true' : undefined\"\n :class=\"linkClass\"\n >\n <Icon v-if=\"item.icon\" :name=\"item.icon\" />\n <NavLabel :text=\"item.label\" :html=\"item.labelHtml\" />\n </Link>\n </template>\n </TopNavGroupWrapper>\n </nav>\n <Slot name=\"topbar.start\" />\n <div class=\"ms-auto flex shrink-0 items-center gap-1\">\n <Slot name=\"topbar.end\" />\n <GlobalSearch />\n <NotificationsMenu />\n <TopbarLocaleSwitcher />\n <ThemeToggle />\n <DebugPanelSlot />\n <UserMenu variant=\"topbar\" />\n </div>\n </div>\n </header>\n <Slot name=\"topbar.after\" />\n <Slot name=\"content.before\" />\n <main\n data-slot=\"content\"\n :class=\"cn('mx-auto flex w-full min-w-0 flex-1 flex-col gap-6 p-4 md:p-6', width)\"\n >\n <Breadcrumbs\n v-if=\"panel.breadcrumbs && props.breadcrumbs && props.breadcrumbs.length > 0\"\n :items=\"props.breadcrumbs\"\n />\n <Slot name=\"content.start\" />\n <slot />\n <Slot name=\"content.end\" />\n </main>\n <Slot name=\"content.after\" />\n <Slot name=\"footer\" />\n <component :is=\"Bottom\" v-if=\"mobilePreset\" />\n <Slot name=\"layout.end\" />\n <Slot name=\"body.end\" />\n </div>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"TopNavLayout.vue_vue_type_script_setup_true_lang.js","names":["BottomNav","_openBlock","_createElementBlock","_createVNode","Slot","_createElementVNode","_normalizeClass","_unref","Sheet","_withCtx","SheetTrigger","Button","Icon","SheetContent","SheetHeader","SheetTitle","Brand","_Fragment","_renderList","_toDisplayString","_createCommentVNode","_createBlock","NavLabel","TenantMenu","TopNavGroupWrapper","TopNavMenu","_mergeProps","NewTabHint","GlobalSearch","NotificationsMenu","TopbarLocaleSwitcher","ThemeToggle","DebugPanelSlot","UserMenu","Breadcrumbs","_renderSlot","_resolveDynamicComponent","Icon_default","Button_default","Slot_default","Sheet_default","SheetContent_default","SheetHeader_default","SheetTitle_default","SheetTrigger_default","NewTabHint_default","NavLabel_default","NotificationsMenu_default","Brand_default","GlobalSearch_default","TenantMenu_default","UserMenu_default","BottomNav_default","Breadcrumbs_default","DebugPanelSlot_default","ThemeToggle_default","TopbarLocaleSwitcher_default","TopNavGroupWrapper_default","TopNavMenu_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","linkClass","TopNavLayout_vue_vue_type_script_setup_true_lang_default","props","__props","panel","usePanel","t","useT","direction","useDirection","registry","useRegistry","open","ref","Bottom","computed","mobilePreset","hasMobilePreset","width","MAX_WIDTHS","isActive","item","openBlock","createElementBlock","createVNode","createElementVNode","normalizeClass","unref","cn","_cache","$event","withCtx","MenuIcon","Fragment","renderList","group","index","toDisplayString","createCommentVNode","entry","createBlock","Link","mergeProps","PREFETCH_CACHE_FOR","renderSlot","_ctx","resolveDynamicComponent"],"sources":["../../src/layouts/TopNavLayout.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n PREFETCH_CACHE_FOR,\n hasMobilePreset,\n type BreadcrumbSchema,\n type NavigationItemSchema,\n type Width,\n} from '@alfakit/core'\nimport { Link } from '@inertiajs/vue3'\nimport { MenuIcon } from '@lucide/vue'\nimport { computed, ref } from 'vue'\nimport NotificationsMenu from '../components/notifications/NotificationsMenu.vue'\nimport BottomNav from '../components/panel/BottomNav.vue'\nimport Brand from '../components/panel/Brand.vue'\nimport TenantMenu from '../components/panel/TenantMenu.vue'\nimport Breadcrumbs from '../components/panel/Breadcrumbs.vue'\nimport GlobalSearch from '../components/panel/GlobalSearch.vue'\nimport NavLabel from '../components/panel/NavLabel.vue'\nimport Slot from '../components/panel/Slot.vue'\nimport DebugPanelSlot from '../components/panel/DebugPanelSlot.vue'\nimport ThemeToggle from '../components/panel/ThemeToggle.vue'\nimport TopbarLocaleSwitcher from '../components/panel/TopbarLocaleSwitcher.vue'\nimport UserMenu from '../components/panel/UserMenu.vue'\nimport Button from '../components/ui/Button.vue'\nimport Sheet from '../components/ui/Sheet.vue'\nimport SheetContent from '../components/ui/SheetContent.vue'\nimport SheetHeader from '../components/ui/SheetHeader.vue'\nimport SheetTitle from '../components/ui/SheetTitle.vue'\nimport SheetTrigger from '../components/ui/SheetTrigger.vue'\nimport { useDirection, usePanel, useRegistry, useT } from '../context'\nimport { Icon } from '../lib/icons'\nimport { cn } from '../lib/utils'\nimport { MAX_WIDTHS } from './max-widths'\nimport TopNavGroupWrapper from './TopNavGroupWrapper.vue'\nimport TopNavMenu from './TopNavMenu.vue'\nimport NewTabHint from '../lib/NewTabHint.vue'\n\n/**\n * Navigation across the top instead of a sidebar (`layout: 'topbar'`). Ungrouped items are\n * links; labelled groups and items with children open as dropdowns.\n */\nconst props = defineProps<{ breadcrumbs?: BreadcrumbSchema[]; maxContentWidth?: Width | string }>()\nconst panel = usePanel()\nconst t = useT()\nconst direction = useDirection()\nconst registry = useRegistry()\nconst open = ref(false)\nconst Bottom = computed(() => registry.resolve('panel:bottom-nav') ?? BottomNav)\nconst mobilePreset = computed(() => hasMobilePreset(panel.value))\nconst width = computed(\n () => MAX_WIDTHS[props.maxContentWidth ?? panel.value.maxContentWidth ?? '7xl'] ?? 'max-w-7xl',\n)\n\nconst isActive = (item: NavigationItemSchema): boolean =>\n Boolean(item.active || item.children?.some(isActive))\n\nconst linkClass =\n 'text-muted-foreground hover:text-foreground hover:bg-accent data-[active=true]:bg-accent data-[active=true]:text-foreground inline-flex h-9 shrink-0 items-center gap-2 rounded-md px-3 text-sm font-medium transition-colors [&_svg]:size-4'\n</script>\n\n<template>\n <div data-slot=\"topnav-layout\" class=\"bg-background flex min-h-svh flex-col\">\n <Slot name=\"body.start\" />\n <Slot name=\"layout.start\" />\n <Slot name=\"topbar.before\" />\n <header\n data-slot=\"topbar\"\n class=\"bg-background/90 supports-[backdrop-filter]:bg-background/70 sticky top-0 z-30 border-b backdrop-blur\"\n >\n <div :class=\"cn('mx-auto flex h-14 w-full items-center gap-3 px-4 md:px-6', width)\">\n <Sheet :open=\"open\" @update:open=\"open = $event\">\n <SheetTrigger as-child>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n class=\"md:hidden\"\n :aria-label=\"t('toggle_sidebar', {}, 'Toggle sidebar')\"\n >\n <Icon name=\"alfakit::panels.topbar.open-sidebar-button\" :fallback=\"MenuIcon\" />\n </Button>\n </SheetTrigger>\n <SheetContent :side=\"direction === 'rtl' ? 'right' : 'left'\" class=\"w-72 p-0\">\n <SheetHeader class=\"border-b\">\n <SheetTitle as-child>\n <div><Brand /></div>\n </SheetTitle>\n </SheetHeader>\n <nav class=\"flex flex-col gap-4 overflow-y-auto p-4 text-sm\">\n <div\n v-for=\"(group, index) in panel.navigation\"\n :key=\"group.label ?? index\"\n class=\"flex flex-col gap-1\"\n >\n <p v-if=\"group.label\" class=\"text-muted-foreground px-2 text-xs font-medium\">\n {{ group.label }}\n </p>\n <Link\n v-for=\"item in group.items.flatMap((entry) => [entry, ...(entry.children ?? [])])\"\n :key=\"item.label\"\n :href=\"item.url ?? '#'\"\n :data-active=\"item.active ? 'true' : undefined\"\n class=\"hover:bg-accent data-[active=true]:bg-accent flex items-center gap-2 rounded-md px-2 py-2 font-medium [&_svg]:size-4\"\n @click=\"open = false\"\n >\n <Icon v-if=\"item.icon\" :name=\"item.icon\" />\n <NavLabel :text=\"item.label\" :html=\"item.labelHtml\" />\n </Link>\n </div>\n </nav>\n </SheetContent>\n </Sheet>\n <Slot name=\"topbar.logo.before\" />\n <Brand class=\"me-2 shrink-0\" />\n <Slot name=\"topbar.logo.after\" />\n <Slot v-if=\"panel.tenancy?.current\" name=\"tenant-menu.before\" />\n <TenantMenu variant=\"topbar\" />\n <Slot v-if=\"panel.tenancy?.current\" name=\"tenant-menu.after\" />\n <nav\n data-slot=\"topnav\"\n :aria-label=\"t('navigation', {}, 'Navigation')\"\n class=\"hidden min-w-0 flex-1 items-center gap-1 self-stretch overflow-x-auto md:flex\"\n >\n <TopNavGroupWrapper\n v-for=\"(group, index) in panel.navigation\"\n :key=\"group.label ?? `group-${index}`\"\n :attributes=\"group.extraTopbarAttributes\"\n >\n <TopNavMenu\n v-if=\"group.label\"\n :label=\"group.label\"\n :icon=\"group.icon\"\n :items=\"group.items\"\n :active=\"group.items.some(isActive)\"\n />\n <template v-for=\"item in group.items\" v-else :key=\"item.label\">\n <TopNavMenu\n v-if=\"item.children && item.children.length > 0\"\n :label=\"item.label\"\n :label-html=\"item.labelHtml\"\n :icon=\"item.icon\"\n :items=\"item.children\"\n :active=\"isActive(item)\"\n :attributes=\"item.extraAttributes\"\n />\n <a\n v-else-if=\"item.openInNewTab\"\n v-bind=\"item.extraAttributes ?? {}\"\n :href=\"item.url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n data-slot=\"topnav-link\"\n :class=\"linkClass\"\n >\n <Icon v-if=\"item.icon\" :name=\"item.icon\" />\n <NavLabel :text=\"item.label\" :html=\"item.labelHtml\" />\n <NewTabHint />\n </a>\n <Link\n v-else\n v-bind=\"item.extraAttributes ?? {}\"\n :href=\"item.url ?? '#'\"\n prefetch\n :cache-for=\"PREFETCH_CACHE_FOR\"\n data-slot=\"topnav-link\"\n :data-active=\"item.active ? 'true' : undefined\"\n :class=\"linkClass\"\n >\n <Icon v-if=\"item.icon\" :name=\"item.icon\" />\n <NavLabel :text=\"item.label\" :html=\"item.labelHtml\" />\n </Link>\n </template>\n </TopNavGroupWrapper>\n </nav>\n <Slot name=\"topbar.start\" />\n <div class=\"ms-auto flex shrink-0 items-center gap-1\">\n <Slot name=\"topbar.end\" />\n <GlobalSearch />\n <NotificationsMenu />\n <TopbarLocaleSwitcher />\n <ThemeToggle />\n <DebugPanelSlot />\n <UserMenu variant=\"topbar\" />\n </div>\n </div>\n </header>\n <Slot name=\"topbar.after\" />\n <Slot name=\"content.before\" />\n <main\n data-slot=\"content\"\n :class=\"cn('mx-auto flex w-full min-w-0 flex-1 flex-col gap-6 p-4 md:p-6', width)\"\n >\n <Breadcrumbs\n v-if=\"panel.breadcrumbs && props.breadcrumbs && props.breadcrumbs.length > 0\"\n :items=\"props.breadcrumbs\"\n />\n <Slot name=\"content.start\" />\n <slot />\n <Slot name=\"content.end\" />\n </main>\n <Slot name=\"content.after\" />\n <Slot name=\"footer\" />\n <component :is=\"Bottom\" v-if=\"mobilePreset\" />\n <Slot name=\"layout.end\" />\n <Slot name=\"body.end\" />\n </div>\n</template>\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { AnyComponent } from '../context';
2
+ /**
3
+ * The fullscreen layout (`$layout = 'fullscreen'`), loaded on demand by starter kit pages:
4
+ * they render in the host's layout, so the page chunk never imports the panel's header,
5
+ * menus and notifications for a layout few pages use. Only the starter kit registers it;
6
+ * `createAlfakit()` registers the layouts themselves up front (`panelLayouts`), so a panel's
7
+ * bundle has no extra lazy entry points.
8
+ */
9
+ export declare const lazyPanelLayouts: Record<string, AnyComponent>;
10
+ //# sourceMappingURL=lazy-layouts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-layouts.d.ts","sourceRoot":"","sources":["../../src/layouts/lazy-layouts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAG9C;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAEpB,CAAA"}
@@ -0,0 +1,8 @@
1
+ import { discoveredComponent as e } from "../lib/discovery.js";
2
+ import { lazyComponents as t } from "@alfakit/core";
3
+ //#region src/layouts/lazy-layouts.ts
4
+ var n = t({ "layout:fullscreen": () => import("./FullscreenLayout.js").then((e) => e.default) }).map(e).components;
5
+ //#endregion
6
+ export { n as lazyPanelLayouts };
7
+
8
+ //# sourceMappingURL=lazy-layouts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-layouts.js","names":["lazyPanelLayouts","lazyComponents","m","discoveredComponent"],"sources":["../../src/layouts/lazy-layouts.ts"],"sourcesContent":["import { lazyComponents } from '@alfakit/core'\nimport type { AnyComponent } from '../context'\nimport { discoveredComponent } from '../lib/discovery'\n\n/**\n * The fullscreen layout (`$layout = 'fullscreen'`), loaded on demand by starter kit pages:\n * they render in the host's layout, so the page chunk never imports the panel's header,\n * menus and notifications for a layout few pages use. Only the starter kit registers it;\n * `createAlfakit()` registers the layouts themselves up front (`panelLayouts`), so a panel's\n * bundle has no extra lazy entry points.\n */\nexport const lazyPanelLayouts: Record<string, AnyComponent> = lazyComponents<AnyComponent>({\n 'layout:fullscreen': () => import('./FullscreenLayout.vue').then((m) => m.default),\n}).map(discoveredComponent).components\n"],"mappings":";;;AAWA,IAAaA,IAAiDC,EAA6B,EACzF,2BAA2B,OAAO,wBAAyB,CAAC,MAAM,MAAMC,EAAE,OAAO,EACnF,CAAC,CAAC,CAAC,IAAIC,CAAmB,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { AnyComponent } from '../context';
2
+ /**
3
+ * The panel's own layouts (sidebar or top navigation, auth card, blank, fullscreen), which
4
+ * `createAlfakit()` registers up front. Starter kit pages render in the host's layout and
5
+ * never import these: `PageShell` loads one on demand if such a page asks for it.
6
+ */
7
+ export declare const panelLayouts: Record<string, AnyComponent>;
8
+ //# sourceMappingURL=panel-layouts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-layouts.d.ts","sourceRoot":"","sources":["../../src/layouts/panel-layouts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAM9C;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAKrD,CAAA"}
@@ -0,0 +1,15 @@
1
+ import e from "./BlankLayout.js";
2
+ import t from "./AppLayout.js";
3
+ import n from "./AuthLayout.js";
4
+ import r from "./FullscreenLayout.js";
5
+ //#region src/layouts/panel-layouts.ts
6
+ var i = {
7
+ "layout:app": t,
8
+ "layout:auth": n,
9
+ "layout:blank": e,
10
+ "layout:fullscreen": r
11
+ };
12
+ //#endregion
13
+ export { i as panelLayouts };
14
+
15
+ //# sourceMappingURL=panel-layouts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"panel-layouts.js","names":["AppLayout","AuthLayout","BlankLayout","FullscreenLayout","BlankLayout_default","AppLayout_default","AuthLayout_default","FullscreenLayout_default","panelLayouts"],"sources":["../../src/layouts/panel-layouts.ts"],"sourcesContent":["import type { AnyComponent } from '../context'\nimport AppLayout from './AppLayout.vue'\nimport AuthLayout from './AuthLayout.vue'\nimport BlankLayout from './BlankLayout.vue'\nimport FullscreenLayout from './FullscreenLayout.vue'\n\n/**\n * The panel's own layouts (sidebar or top navigation, auth card, blank, fullscreen), which\n * `createAlfakit()` registers up front. Starter kit pages render in the host's layout and\n * never import these: `PageShell` loads one on demand if such a page asks for it.\n */\nexport const panelLayouts: Record<string, AnyComponent> = {\n 'layout:app': AppLayout,\n 'layout:auth': AuthLayout,\n 'layout:blank': BlankLayout,\n 'layout:fullscreen': FullscreenLayout,\n}\n"],"mappings":";;;;;AAWA,IAAaQ,IAA6C;CACxD,cAAcR;CACd,eAAeC;CACf,gBAAgBC;CAChB,qBAAqBC;AACvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/lib/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,KAAK,CAAA;AAG9E;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAC9B,QAAQ,EAAE,SAAS,GAClB,SAAS,CAuBX"}
1
+ {"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/lib/lazy.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,KAAK,SAAS,EAAE,MAAM,KAAK,CAAA;AAG9E;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,EAC9B,QAAQ,EAAE,SAAS,GAClB,SAAS,CAiCX"}
package/dist/lib/lazy.js CHANGED
@@ -12,8 +12,8 @@ function i(i, a, o) {
12
12
  name: i,
13
13
  inheritAttrs: !1,
14
14
  setup(t, { attrs: n }) {
15
- let i = e();
16
- return () => r(i.value ? s ?? c : o, n);
15
+ let i = e(), a = null;
16
+ return () => i.value ? (a ??= s ?? c, r(a, n)) : r(o, n);
17
17
  }
18
18
  });
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"lazy.js","names":["lazyComponent","loaded","Async","defineAsyncComponent","load","component","fallback","defineComponent","mounted","useAppMounted","h","attrs"],"sources":["../../src/lib/lazy.ts"],"sourcesContent":["import { defineAsyncComponent, defineComponent, h, type Component } from 'vue'\nimport { useAppMounted } from './hydration'\n\n/**\n * A component whose code (and heavy dependencies such as Tiptap or Chart.js) loads on\n * first use. The server render and hydration show `fallback` and never start the import;\n * once the app has mounted, a loaded component renders straight away.\n */\nexport function lazyComponent(\n name: string,\n load: () => Promise<Component>,\n fallback: Component,\n): Component {\n let loaded: Component | null = null\n const Async = defineAsyncComponent({\n loader: () =>\n load().then((component) => {\n loaded = component\n\n return component\n }),\n loadingComponent: fallback,\n delay: 0,\n suspensible: false,\n })\n\n return defineComponent({\n name,\n inheritAttrs: false,\n setup(_, { attrs }) {\n const mounted = useAppMounted()\n\n return () => h(mounted.value ? (loaded ?? Async) : fallback, attrs)\n },\n })\n}\n"],"mappings":";;;AAQA,SAAgBA,EACd,GACA,GACA,GACW;CACX,IAAIC,IAA2B,MACzBC,IAAQC,EAAqB;EACjC,cACEC,EAAK,CAAC,CAAC,MAAM,OACX,IAASC,GAEFA,EACR;EACH,kBAAkBC;EAClB,OAAO;EACP,aAAa;CACf,CAAC;CAED,OAAOC,EAAgB;EACrB;EACA,cAAc;EACd,MAAM,GAAG,EAAE,YAAS;GAClB,IAAMC,IAAUC,EAAc;GAE9B,aAAaC,EAAEF,EAAQ,QAASP,KAAUC,IAASI,GAAUK,CAAK;EACpE;CACF,CAAC;AACH"}
1
+ {"version":3,"file":"lazy.js","names":["lazyComponent","loaded","Async","defineAsyncComponent","load","component","fallback","defineComponent","mounted","useAppMounted","h","attrs"],"sources":["../../src/lib/lazy.ts"],"sourcesContent":["import { defineAsyncComponent, defineComponent, h, type Component } from 'vue'\nimport { useAppMounted } from './hydration'\n\n/**\n * A component whose code (and heavy dependencies such as Tiptap or Chart.js) loads on\n * first use. The server render and hydration show `fallback` and never start the import;\n * once the app has mounted, a loaded component renders straight away.\n */\nexport function lazyComponent(\n name: string,\n load: () => Promise<Component>,\n fallback: Component,\n): Component {\n let loaded: Component | null = null\n const Async = defineAsyncComponent({\n loader: () =>\n load().then((component) => {\n loaded = component\n\n return component\n }),\n loadingComponent: fallback,\n delay: 0,\n suspensible: false,\n })\n\n return defineComponent({\n name,\n inheritAttrs: false,\n setup(_, { attrs }) {\n const mounted = useAppMounted()\n // Picked once per instance: switching from the async wrapper to the loaded component\n // on a later render would be a new component type, so Vue would remount it and its\n // state (a spreadsheet's undo history, an editor's selection) would be lost.\n let component: Component | null = null\n\n return () => {\n if (!mounted.value) return h(fallback, attrs)\n\n component ??= loaded ?? Async\n\n return h(component, attrs)\n }\n },\n })\n}\n"],"mappings":";;;AAQA,SAAgBA,EACd,GACA,GACA,GACW;CACX,IAAIC,IAA2B,MACzBC,IAAQC,EAAqB;EACjC,cACEC,EAAK,CAAC,CAAC,MAAM,OACX,IAASC,GAEFA,EACR;EACH,kBAAkBC;EAClB,OAAO;EACP,aAAa;CACf,CAAC;CAED,OAAOC,EAAgB;EACrB;EACA,cAAc;EACd,MAAM,GAAG,EAAE,YAAS;GAClB,IAAMC,IAAUC,EAAc,GAI1BJ,IAA8B;GAElC,aACOG,EAAQ,SAEb,MAAcP,KAAUC,GAEjBQ,EAAEL,GAAWM,CAAK,KAJED,EAAEJ,GAAUK,CAAK;EAMhD;CACF,CAAC;AACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"PageShell.js","names":["_sfc_main","PageShell_vue_vue_type_script_setup_true_lang_default","PageShell_default"],"sources":["../../src/pages/PageShell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PageSchema } from '@alfakit/core'\nimport { applyBodyAttributes } from '@alfakit/core'\nimport { computed, onBeforeUnmount, watch } from 'vue'\nimport KeyboardShortcuts from '../components/panel/KeyboardShortcuts.vue'\nimport Slot from '../components/panel/Slot.vue'\nimport { useRegistry } from '../context'\nimport AppLayout from '../layouts/AppLayout.vue'\nimport AuthLayout from '../layouts/AuthLayout.vue'\nimport BlankLayout from '../layouts/BlankLayout.vue'\nimport FullscreenLayout from '../layouts/FullscreenLayout.vue'\nimport SubNavigationLayout from '../components/panel/SubNavigationLayout.vue'\nimport ConflictBanner from '../components/realtime/ConflictBanner.vue'\nimport PageHeader from './PageHeader.vue'\n\nconst props = defineProps<{ page: PageSchema }>()\nconst registry = useRegistry()\n\n// Each layout can be replaced: createAlfakit({ components: { 'layout:app': MyLayout } }).\nconst Auth = computed(() => registry.resolve('layout:auth') ?? AuthLayout)\nconst Blank = computed(() => registry.resolve('layout:blank') ?? BlankLayout)\nconst Fullscreen = computed(() => registry.resolve('layout:fullscreen') ?? FullscreenLayout)\nconst App = computed(() => registry.resolve('layout:app') ?? AppLayout)\n// Edit pages: somebody else saved the record (`detectConflicts()`, `Panel::realtime()`).\nconst Conflicts = computed(() => registry.resolve('page:conflict-banner') ?? ConflictBanner)\n\n// The page's `$extraBodyAttributes` on `<body>` while it is open.\nlet undoBodyAttributes = () => {}\nwatch(\n () => JSON.stringify(props.page.extraBodyAttributes ?? null),\n () => {\n undoBodyAttributes()\n undoBodyAttributes = applyBodyAttributes(props.page.extraBodyAttributes)\n },\n { immediate: true },\n)\nonBeforeUnmount(() => undoBodyAttributes())\n</script>\n\n<template>\n <component\n :is=\"Auth\"\n v-if=\"props.page.layout === 'auth'\"\n :heading=\"props.page.heading ?? props.page.title\"\n :subheading=\"props.page.subheading\"\n :page=\"props.page\"\n >\n <slot />\n </component>\n <component :is=\"Blank\" v-else-if=\"props.page.layout === 'blank'\" :page=\"props.page\">\n <slot />\n </component>\n <component :is=\"Fullscreen\" v-else-if=\"props.page.layout === 'fullscreen'\" :page=\"props.page\">\n <slot />\n </component>\n <component\n :is=\"App\"\n v-else\n :breadcrumbs=\"props.page.breadcrumbs\"\n :max-content-width=\"props.page.maxContentWidth\"\n :page=\"props.page\"\n >\n <!-- `?` overlay, `/`, `g d` and panel command shortcuts (`keyboardShortcuts()`). -->\n <KeyboardShortcuts />\n <Slot name=\"page.start\" />\n <PageHeader :page=\"props.page\" />\n <component :is=\"Conflicts\" v-if=\"props.page.conflicts\" :page=\"props.page\" />\n <SubNavigationLayout v-if=\"props.page.subNavigation\" :navigation=\"props.page.subNavigation\">\n <slot />\n </SubNavigationLayout>\n <slot v-else />\n <Slot name=\"page.end\" />\n </component>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"PageShell.js","names":["_sfc_main","PageShell_vue_vue_type_script_setup_true_lang_default","PageShell_default"],"sources":["../../src/pages/PageShell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { PageSchema } from '@alfakit/core'\nimport { applyBodyAttributes } from '@alfakit/core'\nimport { computed, onBeforeUnmount, watch } from 'vue'\nimport KeyboardShortcuts from '../components/panel/KeyboardShortcuts.vue'\nimport Slot from '../components/panel/Slot.vue'\nimport { useRegistry } from '../context'\nimport BlankLayout from '../layouts/BlankLayout.vue'\nimport SubNavigationLayout from '../components/panel/SubNavigationLayout.vue'\nimport ConflictBanner from '../components/realtime/ConflictBanner.vue'\nimport PageHeader from './PageHeader.vue'\n\nconst props = defineProps<{ page: PageSchema }>()\nconst registry = useRegistry()\n\n// Each layout can be replaced: createAlfakit({ components: { 'layout:app': MyLayout } }).\n// `createAlfakit()` registers the panel's layouts (`panelLayouts`), the starter kit its content\n// layout; importing the panel layouts here would put the sidebar in every starter kit page.\nconst Auth = computed(() => registry.resolve('layout:auth') ?? BlankLayout)\nconst Blank = computed(() => registry.resolve('layout:blank') ?? BlankLayout)\nconst Fullscreen = computed(() => registry.resolve('layout:fullscreen') ?? BlankLayout)\nconst App = computed(() => registry.resolve('layout:app') ?? BlankLayout)\n// Edit pages: somebody else saved the record (`detectConflicts()`, `Panel::realtime()`).\nconst Conflicts = computed(() => registry.resolve('page:conflict-banner') ?? ConflictBanner)\n\n// The page's `$extraBodyAttributes` on `<body>` while it is open.\nlet undoBodyAttributes = () => {}\nwatch(\n () => JSON.stringify(props.page.extraBodyAttributes ?? null),\n () => {\n undoBodyAttributes()\n undoBodyAttributes = applyBodyAttributes(props.page.extraBodyAttributes)\n },\n { immediate: true },\n)\nonBeforeUnmount(() => undoBodyAttributes())\n</script>\n\n<template>\n <component\n :is=\"Auth\"\n v-if=\"props.page.layout === 'auth'\"\n :heading=\"props.page.heading ?? props.page.title\"\n :subheading=\"props.page.subheading\"\n :page=\"props.page\"\n >\n <slot />\n </component>\n <component :is=\"Blank\" v-else-if=\"props.page.layout === 'blank'\" :page=\"props.page\">\n <slot />\n </component>\n <component :is=\"Fullscreen\" v-else-if=\"props.page.layout === 'fullscreen'\" :page=\"props.page\">\n <slot />\n </component>\n <component\n :is=\"App\"\n v-else\n :breadcrumbs=\"props.page.breadcrumbs\"\n :max-content-width=\"props.page.maxContentWidth\"\n :page=\"props.page\"\n >\n <!-- `?` overlay, `/`, `g d` and panel command shortcuts (`keyboardShortcuts()`). -->\n <KeyboardShortcuts />\n <Slot name=\"page.start\" />\n <PageHeader :page=\"props.page\" />\n <component :is=\"Conflicts\" v-if=\"props.page.conflicts\" :page=\"props.page\" />\n <SubNavigationLayout v-if=\"props.page.subNavigation\" :navigation=\"props.page.subNavigation\">\n <slot />\n </SubNavigationLayout>\n <slot v-else />\n <Slot name=\"page.end\" />\n </component>\n</template>\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"PageShell.vue.d.ts","sourceRoot":"","sources":["../../src/pages/PageShell.vue"],"names":[],"mappings":"AA4EA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAc/C,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AA6JxC,QAAA,IAAI,OAAO,IAAU,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AAC5G,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AA+BhD,QAAA,MAAM,eAAe,kSAMnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAQ1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"PageShell.vue.d.ts","sourceRoot":"","sources":["../../src/pages/PageShell.vue"],"names":[],"mappings":"AA2EA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAW/C,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AA+JxC,QAAA,IAAI,OAAO,IAAU,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AAC5G,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AA+BhD,QAAA,MAAM,eAAe,kSAMnB,CAAC;wBACkB,eAAe,CAAC,OAAO,eAAe,EAAE,WAAW,CAAC;AAAzE,wBAA0E;AAQ1E,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -1,69 +1,66 @@
1
1
  import { useRegistry as e } from "../context.js";
2
2
  import t from "../components/panel/Slot.js";
3
3
  import n from "../components/panel/KeyboardShortcuts.js";
4
- import r from "../layouts/AppLayout.js";
5
- import i from "../layouts/AuthLayout.js";
6
- import a from "../layouts/BlankLayout.js";
7
- import o from "../layouts/FullscreenLayout.js";
8
- import s from "../components/panel/SubNavigationLayout.js";
9
- import c from "../components/realtime/ConflictBanner.js";
10
- import l from "./PageHeader.js";
11
- import { applyBodyAttributes as u } from "@alfakit/core";
12
- import { computed as d, createBlock as f, createCommentVNode as p, createVNode as m, defineComponent as h, onBeforeUnmount as g, openBlock as _, renderSlot as v, resolveDynamicComponent as y, watch as b, withCtx as x } from "vue";
4
+ import r from "../layouts/BlankLayout.js";
5
+ import i from "../components/panel/SubNavigationLayout.js";
6
+ import a from "../components/realtime/ConflictBanner.js";
7
+ import o from "./PageHeader.js";
8
+ import { applyBodyAttributes as s } from "@alfakit/core";
9
+ import { computed as c, createBlock as l, createCommentVNode as u, createVNode as d, defineComponent as f, onBeforeUnmount as p, openBlock as m, renderSlot as h, resolveDynamicComponent as g, watch as _, withCtx as v } from "vue";
13
10
  //#region src/pages/PageShell.vue?vue&type=script&setup=true&lang.ts
14
- var S = /*@__PURE__*/ h({
11
+ var y = /*@__PURE__*/ f({
15
12
  __name: "PageShell",
16
13
  props: { page: {} },
17
- setup(h) {
18
- let S = h, C = e(), w = d(() => C.resolve("layout:auth") ?? i), T = d(() => C.resolve("layout:blank") ?? a), E = d(() => C.resolve("layout:fullscreen") ?? o), D = d(() => C.resolve("layout:app") ?? r), O = d(() => C.resolve("page:conflict-banner") ?? c), k = () => {};
19
- return b(() => JSON.stringify(S.page.extraBodyAttributes ?? null), () => {
20
- k(), k = u(S.page.extraBodyAttributes);
21
- }, { immediate: !0 }), g(() => k()), (e, r) => S.page.layout === "auth" ? (_(), f(y(w.value), {
14
+ setup(f) {
15
+ let y = f, b = e(), x = c(() => b.resolve("layout:auth") ?? r), S = c(() => b.resolve("layout:blank") ?? r), C = c(() => b.resolve("layout:fullscreen") ?? r), w = c(() => b.resolve("layout:app") ?? r), T = c(() => b.resolve("page:conflict-banner") ?? a), E = () => {};
16
+ return _(() => JSON.stringify(y.page.extraBodyAttributes ?? null), () => {
17
+ E(), E = s(y.page.extraBodyAttributes);
18
+ }, { immediate: !0 }), p(() => E()), (e, r) => y.page.layout === "auth" ? (m(), l(g(x.value), {
22
19
  key: 0,
23
- heading: S.page.heading ?? S.page.title,
24
- subheading: S.page.subheading,
25
- page: S.page
20
+ heading: y.page.heading ?? y.page.title,
21
+ subheading: y.page.subheading,
22
+ page: y.page
26
23
  }, {
27
- default: x(() => [v(e.$slots, "default")]),
24
+ default: v(() => [h(e.$slots, "default")]),
28
25
  _: 3
29
26
  }, 8, [
30
27
  "heading",
31
28
  "subheading",
32
29
  "page"
33
- ])) : S.page.layout === "blank" ? (_(), f(y(T.value), {
30
+ ])) : y.page.layout === "blank" ? (m(), l(g(S.value), {
34
31
  key: 1,
35
- page: S.page
32
+ page: y.page
36
33
  }, {
37
- default: x(() => [v(e.$slots, "default")]),
34
+ default: v(() => [h(e.$slots, "default")]),
38
35
  _: 3
39
- }, 8, ["page"])) : S.page.layout === "fullscreen" ? (_(), f(y(E.value), {
36
+ }, 8, ["page"])) : y.page.layout === "fullscreen" ? (m(), l(g(C.value), {
40
37
  key: 2,
41
- page: S.page
38
+ page: y.page
42
39
  }, {
43
- default: x(() => [v(e.$slots, "default")]),
40
+ default: v(() => [h(e.$slots, "default")]),
44
41
  _: 3
45
- }, 8, ["page"])) : (_(), f(y(D.value), {
42
+ }, 8, ["page"])) : (m(), l(g(w.value), {
46
43
  key: 3,
47
- breadcrumbs: S.page.breadcrumbs,
48
- "max-content-width": S.page.maxContentWidth,
49
- page: S.page
44
+ breadcrumbs: y.page.breadcrumbs,
45
+ "max-content-width": y.page.maxContentWidth,
46
+ page: y.page
50
47
  }, {
51
- default: x(() => [
52
- m(n),
53
- m(t, { name: "page.start" }),
54
- m(l, { page: S.page }, null, 8, ["page"]),
55
- S.page.conflicts ? (_(), f(y(O.value), {
48
+ default: v(() => [
49
+ d(n),
50
+ d(t, { name: "page.start" }),
51
+ d(o, { page: y.page }, null, 8, ["page"]),
52
+ y.page.conflicts ? (m(), l(g(T.value), {
56
53
  key: 0,
57
- page: S.page
58
- }, null, 8, ["page"])) : p("", !0),
59
- S.page.subNavigation ? (_(), f(s, {
54
+ page: y.page
55
+ }, null, 8, ["page"])) : u("", !0),
56
+ y.page.subNavigation ? (m(), l(i, {
60
57
  key: 1,
61
- navigation: S.page.subNavigation
58
+ navigation: y.page.subNavigation
62
59
  }, {
63
- default: x(() => [v(e.$slots, "default")]),
60
+ default: v(() => [h(e.$slots, "default")]),
64
61
  _: 3
65
- }, 8, ["navigation"])) : v(e.$slots, "default", {}, void 0, void 0, 2),
66
- m(t, { name: "page.end" })
62
+ }, 8, ["navigation"])) : h(e.$slots, "default", {}, void 0, void 0, 2),
63
+ d(t, { name: "page.end" })
67
64
  ]),
68
65
  _: 3
69
66
  }, 8, [
@@ -74,6 +71,6 @@ var S = /*@__PURE__*/ h({
74
71
  }
75
72
  });
76
73
  //#endregion
77
- export { S as default };
74
+ export { y as default };
78
75
 
79
76
  //# sourceMappingURL=PageShell.vue_vue_type_script_setup_true_lang.js.map