@alfakit/vue 0.1.1 → 0.1.6

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 (372) 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/ActionButton.js.map +1 -1
  7. package/dist/components/actions/ActionButton.vue.d.ts.map +1 -1
  8. package/dist/components/actions/ActionButton.vue_vue_type_script_setup_true_lang.js +160 -159
  9. package/dist/components/actions/ActionButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  10. package/dist/components/actions/ActionGroupMenu.js.map +1 -1
  11. package/dist/components/actions/ActionGroupMenu.vue.d.ts.map +1 -1
  12. package/dist/components/actions/ActionGroupMenu.vue_vue_type_script_setup_true_lang.js +69 -65
  13. package/dist/components/actions/ActionGroupMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  14. package/dist/components/actions/ActionModal.js.map +1 -1
  15. package/dist/components/actions/ActionModal.vue.d.ts.map +1 -1
  16. package/dist/components/actions/ActionModal.vue_vue_type_script_setup_true_lang.js +221 -219
  17. package/dist/components/actions/ActionModal.vue_vue_type_script_setup_true_lang.js.map +1 -1
  18. package/dist/components/ai/AiCopilot.js.map +1 -1
  19. package/dist/components/ai/AiCopilot.vue.d.ts +2 -0
  20. package/dist/components/ai/AiCopilot.vue.d.ts.map +1 -1
  21. package/dist/components/ai/AiCopilot.vue_vue_type_script_setup_true_lang.js +7 -2
  22. package/dist/components/ai/AiCopilot.vue_vue_type_script_setup_true_lang.js.map +1 -1
  23. package/dist/components/cms/CmsPage.vue_vue_type_script_setup_true_lang.js +19 -19
  24. package/dist/components/cms/CmsPage.vue_vue_type_script_setup_true_lang.js.map +1 -1
  25. package/dist/components/cms/LivePreview.js.map +1 -1
  26. package/dist/components/cms/LivePreview.vue.d.ts.map +1 -1
  27. package/dist/components/cms/LivePreview.vue_vue_type_script_setup_true_lang.js +83 -83
  28. package/dist/components/cms/LivePreview.vue_vue_type_script_setup_true_lang.js.map +1 -1
  29. package/dist/components/fields/BuilderField.js.map +1 -1
  30. package/dist/components/fields/BuilderField.vue.d.ts.map +1 -1
  31. package/dist/components/fields/BuilderField.vue_vue_type_script_setup_true_lang.js +162 -157
  32. package/dist/components/fields/BuilderField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  33. package/dist/components/fields/ColorPickerField.js.map +1 -1
  34. package/dist/components/fields/ColorPickerField.vue.d.ts.map +1 -1
  35. package/dist/components/fields/ColorPickerField.vue_vue_type_script_setup_true_lang.js +1 -0
  36. package/dist/components/fields/ColorPickerField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  37. package/dist/components/fields/ComboboxSelect.js.map +1 -1
  38. package/dist/components/fields/ComboboxSelect.vue.d.ts.map +1 -1
  39. package/dist/components/fields/ComboboxSelect.vue_vue_type_script_setup_true_lang.js +1 -1
  40. package/dist/components/fields/ComboboxSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  41. package/dist/components/fields/FileUploadField.js.map +1 -1
  42. package/dist/components/fields/FileUploadField.vue.d.ts.map +1 -1
  43. package/dist/components/fields/FileUploadField.vue_vue_type_script_setup_true_lang.js +183 -183
  44. package/dist/components/fields/FileUploadField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  45. package/dist/components/fields/ImageEditorDialog.js.map +1 -1
  46. package/dist/components/fields/ImageEditorDialog.vue.d.ts.map +1 -1
  47. package/dist/components/fields/ImageEditorDialog.vue_vue_type_script_setup_true_lang.js +46 -46
  48. package/dist/components/fields/ImageEditorDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  49. package/dist/components/fields/KeyValueField.js.map +1 -1
  50. package/dist/components/fields/KeyValueField.vue.d.ts.map +1 -1
  51. package/dist/components/fields/KeyValueField.vue_vue_type_script_setup_true_lang.js +66 -66
  52. package/dist/components/fields/KeyValueField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  53. package/dist/components/fields/ModalTablePicker.js.map +1 -1
  54. package/dist/components/fields/ModalTablePicker.vue.d.ts.map +1 -1
  55. package/dist/components/fields/ModalTablePicker.vue_vue_type_script_setup_true_lang.js +113 -113
  56. package/dist/components/fields/ModalTablePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  57. package/dist/components/fields/OneTimeCodeInputField.js.map +1 -1
  58. package/dist/components/fields/OneTimeCodeInputField.vue_vue_type_script_setup_true_lang.js +1 -2
  59. package/dist/components/fields/OneTimeCodeInputField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  60. package/dist/components/fields/RepeaterField.js.map +1 -1
  61. package/dist/components/fields/RepeaterField.vue.d.ts.map +1 -1
  62. package/dist/components/fields/RepeaterField.vue_vue_type_script_setup_true_lang.js +12 -12
  63. package/dist/components/fields/RepeaterField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  64. package/dist/components/fields/RichEditorInput.js.map +1 -1
  65. package/dist/components/fields/RichEditorInput.vue.d.ts.map +1 -1
  66. package/dist/components/fields/RichEditorInput.vue_vue_type_script_setup_true_lang.js +166 -165
  67. package/dist/components/fields/RichEditorInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  68. package/dist/components/fields/SelectField.js.map +1 -1
  69. package/dist/components/fields/SelectField.vue.d.ts.map +1 -1
  70. package/dist/components/fields/SelectField.vue_vue_type_script_setup_true_lang.js +2 -2
  71. package/dist/components/fields/SelectField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  72. package/dist/components/fields/SliderField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  73. package/dist/components/fields/TableColumnHeaders.js.map +1 -1
  74. package/dist/components/fields/TableColumnHeaders.vue.d.ts.map +1 -1
  75. package/dist/components/fields/TableColumnHeaders.vue_vue_type_script_setup_true_lang.js +6 -3
  76. package/dist/components/fields/TableColumnHeaders.vue_vue_type_script_setup_true_lang.js.map +1 -1
  77. package/dist/components/fields/item-actions.d.ts +2 -2
  78. package/dist/components/fields/item-actions.d.ts.map +1 -1
  79. package/dist/components/fields/item-actions.js +31 -31
  80. package/dist/components/fields/item-actions.js.map +1 -1
  81. package/dist/components/file-manager/FileManagerView.js.map +1 -1
  82. package/dist/components/file-manager/FileManagerView.vue_vue_type_script_setup_true_lang.js +1 -1
  83. package/dist/components/file-manager/FileManagerView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  84. package/dist/components/form/FormBlock.js.map +1 -1
  85. package/dist/components/form/FormBlock.vue.d.ts.map +1 -1
  86. package/dist/components/form/FormBlock.vue_vue_type_script_setup_true_lang.js +81 -77
  87. package/dist/components/form/FormBlock.vue_vue_type_script_setup_true_lang.js.map +1 -1
  88. package/dist/components/form/form-context.js +25 -25
  89. package/dist/components/form/form-context.js.map +1 -1
  90. package/dist/components/kanban/KanbanBoard.js.map +1 -1
  91. package/dist/components/kanban/KanbanBoard.vue.d.ts.map +1 -1
  92. package/dist/components/kanban/KanbanBoard.vue_vue_type_script_setup_true_lang.js +5 -2
  93. package/dist/components/kanban/KanbanBoard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  94. package/dist/components/kanban/KanbanColumnHeader.js.map +1 -1
  95. package/dist/components/kanban/KanbanColumnHeader.vue.d.ts.map +1 -1
  96. package/dist/components/kanban/KanbanColumnHeader.vue_vue_type_script_setup_true_lang.js +64 -64
  97. package/dist/components/kanban/KanbanColumnHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  98. package/dist/components/layout/FusedGroupComponent.js.map +1 -1
  99. package/dist/components/layout/FusedGroupComponent.vue.d.ts.map +1 -1
  100. package/dist/components/layout/FusedGroupComponent.vue_vue_type_script_setup_true_lang.js +1 -0
  101. package/dist/components/layout/FusedGroupComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  102. package/dist/components/layout/SectionComponent.js.map +1 -1
  103. package/dist/components/layout/SectionComponent.vue.d.ts.map +1 -1
  104. package/dist/components/layout/SectionComponent.vue_vue_type_script_setup_true_lang.js +23 -23
  105. package/dist/components/layout/SectionComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  106. package/dist/components/layout/TabsComponent.js.map +1 -1
  107. package/dist/components/layout/TabsComponent.vue.d.ts.map +1 -1
  108. package/dist/components/layout/TabsComponent.vue_vue_type_script_setup_true_lang.js +76 -55
  109. package/dist/components/layout/TabsComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  110. package/dist/components/notifications/NotificationsMenu.js.map +1 -1
  111. package/dist/components/notifications/NotificationsMenu.vue.d.ts.map +1 -1
  112. package/dist/components/notifications/NotificationsMenu.vue_vue_type_script_setup_true_lang.js +44 -42
  113. package/dist/components/notifications/NotificationsMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  114. package/dist/components/panel/DebugPanel.vue_vue_type_script_setup_true_lang.js +8 -8
  115. package/dist/components/panel/DebugPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  116. package/dist/components/panel/GlobalSearch.js.map +1 -1
  117. package/dist/components/panel/GlobalSearch.vue.d.ts.map +1 -1
  118. package/dist/components/panel/GlobalSearch.vue_vue_type_script_setup_true_lang.js +1 -0
  119. package/dist/components/panel/GlobalSearch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  120. package/dist/components/panel/GlobalSearchPalette.js.map +1 -1
  121. package/dist/components/panel/GlobalSearchPalette.vue.d.ts.map +1 -1
  122. package/dist/components/panel/GlobalSearchPalette.vue_vue_type_script_setup_true_lang.js +102 -96
  123. package/dist/components/panel/GlobalSearchPalette.vue_vue_type_script_setup_true_lang.js.map +1 -1
  124. package/dist/components/panel/NavGroup.vue_vue_type_script_setup_true_lang.js +10 -10
  125. package/dist/components/panel/NavGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  126. package/dist/components/panel/NavGroupFlyout.vue_vue_type_script_setup_true_lang.js +9 -9
  127. package/dist/components/panel/NavGroupFlyout.vue_vue_type_script_setup_true_lang.js.map +1 -1
  128. package/dist/components/panel/NavItem.vue_vue_type_script_setup_true_lang.js +16 -16
  129. package/dist/components/panel/NavItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  130. package/dist/components/panel/NavSubItem.vue_vue_type_script_setup_true_lang.js +10 -10
  131. package/dist/components/panel/NavSubItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  132. package/dist/components/panel/ShortcutKeys.js.map +1 -1
  133. package/dist/components/panel/ShortcutKeys.vue.d.ts.map +1 -1
  134. package/dist/components/panel/ShortcutKeys.vue_vue_type_script_setup_true_lang.js +4 -1
  135. package/dist/components/panel/ShortcutKeys.vue_vue_type_script_setup_true_lang.js.map +1 -1
  136. package/dist/components/panel/TenantMenu.js.map +1 -1
  137. package/dist/components/panel/TenantMenu.vue_vue_type_script_setup_true_lang.js +37 -37
  138. package/dist/components/panel/TenantMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  139. package/dist/components/panel/Topbar.vue_vue_type_script_setup_true_lang.js +11 -11
  140. package/dist/components/panel/Topbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  141. package/dist/components/realtime/use-live-updates.d.ts.map +1 -1
  142. package/dist/components/realtime/use-live-updates.js +24 -23
  143. package/dist/components/realtime/use-live-updates.js.map +1 -1
  144. package/dist/components/table/BooleanCell.vue_vue_type_script_setup_true_lang.js +2 -1
  145. package/dist/components/table/BooleanCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  146. package/dist/components/table/ColumnHeader.js.map +1 -1
  147. package/dist/components/table/ColumnHeader.vue.d.ts.map +1 -1
  148. package/dist/components/table/ColumnHeader.vue_vue_type_script_setup_true_lang.js +55 -49
  149. package/dist/components/table/ColumnHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  150. package/dist/components/table/ColumnManager.js.map +1 -1
  151. package/dist/components/table/ColumnManager.vue.d.ts.map +1 -1
  152. package/dist/components/table/ColumnManager.vue_vue_type_script_setup_true_lang.js +5 -4
  153. package/dist/components/table/ColumnManager.vue_vue_type_script_setup_true_lang.js.map +1 -1
  154. package/dist/components/table/ContentLayoutSort.js.map +1 -1
  155. package/dist/components/table/ContentLayoutSort.vue.d.ts.map +1 -1
  156. package/dist/components/table/ContentLayoutSort.vue_vue_type_script_setup_true_lang.js +5 -5
  157. package/dist/components/table/ContentLayoutSort.vue_vue_type_script_setup_true_lang.js.map +1 -1
  158. package/dist/components/table/GroupHeaderRow.js.map +1 -1
  159. package/dist/components/table/GroupHeaderRow.vue.d.ts.map +1 -1
  160. package/dist/components/table/GroupHeaderRow.vue_vue_type_script_setup_true_lang.js +55 -34
  161. package/dist/components/table/GroupHeaderRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  162. package/dist/components/table/SelectCell.js.map +1 -1
  163. package/dist/components/table/SelectCell.vue.d.ts.map +1 -1
  164. package/dist/components/table/SelectCell.vue_vue_type_script_setup_true_lang.js +26 -20
  165. package/dist/components/table/SelectCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  166. package/dist/components/table/SelectComboboxCell.vue_vue_type_script_setup_true_lang.js +2 -1
  167. package/dist/components/table/SelectComboboxCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  168. package/dist/components/table/TableCellContent.js.map +1 -1
  169. package/dist/components/table/TableCellContent.vue.d.ts.map +1 -1
  170. package/dist/components/table/TableCellContent.vue_vue_type_script_setup_true_lang.js +4 -3
  171. package/dist/components/table/TableCellContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  172. package/dist/components/table/TablePagination.js.map +1 -1
  173. package/dist/components/table/TablePagination.vue.d.ts.map +1 -1
  174. package/dist/components/table/TablePagination.vue_vue_type_script_setup_true_lang.js +87 -87
  175. package/dist/components/table/TablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  176. package/dist/components/table/TextInputCell.js.map +1 -1
  177. package/dist/components/table/TextInputCell.vue.d.ts.map +1 -1
  178. package/dist/components/table/TextInputCell.vue_vue_type_script_setup_true_lang.js +40 -34
  179. package/dist/components/table/TextInputCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  180. package/dist/components/table/cell-update.d.ts +6 -0
  181. package/dist/components/table/cell-update.d.ts.map +1 -1
  182. package/dist/components/table/cell-update.js.map +1 -1
  183. package/dist/components/translation-manager/TranslationManagerView.vue_vue_type_script_setup_true_lang.js +1 -1
  184. package/dist/components/translation-manager/TranslationManagerView.vue_vue_type_script_setup_true_lang.js.map +1 -1
  185. package/dist/components/ui/CommandAutoHighlight.js +7 -0
  186. package/dist/components/ui/CommandAutoHighlight.js.map +1 -0
  187. package/dist/components/ui/CommandAutoHighlight.vue.d.ts +21 -0
  188. package/dist/components/ui/CommandAutoHighlight.vue.d.ts.map +1 -0
  189. package/dist/components/ui/CommandAutoHighlight.vue_vue_type_script_setup_true_lang.js +18 -0
  190. package/dist/components/ui/CommandAutoHighlight.vue_vue_type_script_setup_true_lang.js.map +1 -0
  191. package/dist/components/ui/DialogContent.js.map +1 -1
  192. package/dist/components/ui/DialogContent.vue.d.ts.map +1 -1
  193. package/dist/components/ui/DialogContent.vue_vue_type_script_setup_true_lang.js +13 -12
  194. package/dist/components/ui/DialogContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  195. package/dist/components/ui/PopoverContent.js.map +1 -1
  196. package/dist/components/ui/PopoverContent.vue.d.ts.map +1 -1
  197. package/dist/components/ui/PopoverContent.vue_vue_type_script_setup_true_lang.js +9 -8
  198. package/dist/components/ui/PopoverContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  199. package/dist/components/ui/SheetContent.js.map +1 -1
  200. package/dist/components/ui/SheetContent.vue.d.ts.map +1 -1
  201. package/dist/components/ui/SheetContent.vue_vue_type_script_setup_true_lang.js +13 -12
  202. package/dist/components/ui/SheetContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  203. package/dist/components/ui/TooltipContent.js.map +1 -1
  204. package/dist/components/ui/TooltipContent.vue.d.ts.map +1 -1
  205. package/dist/components/ui/TooltipContent.vue_vue_type_script_setup_true_lang.js +9 -8
  206. package/dist/components/ui/TooltipContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  207. package/dist/components.css +347 -0
  208. package/dist/context.d.ts +7 -0
  209. package/dist/context.d.ts.map +1 -1
  210. package/dist/context.js +29 -26
  211. package/dist/context.js.map +1 -1
  212. package/dist/create-alfakit.d.ts.map +1 -1
  213. package/dist/create-alfakit.js +33 -31
  214. package/dist/create-alfakit.js.map +1 -1
  215. package/dist/eject-manifest.json +11 -2
  216. package/dist/index.d.ts +1 -0
  217. package/dist/index.d.ts.map +1 -1
  218. package/dist/index.js +219 -217
  219. package/dist/layouts/AppLayout.vue_vue_type_script_setup_true_lang.js +8 -8
  220. package/dist/layouts/AppLayout.vue_vue_type_script_setup_true_lang.js.map +1 -1
  221. package/dist/layouts/AuthLayout.vue_vue_type_script_setup_true_lang.js +9 -9
  222. package/dist/layouts/FullscreenLayout.vue_vue_type_script_setup_true_lang.js +8 -8
  223. package/dist/layouts/FullscreenLayout.vue_vue_type_script_setup_true_lang.js.map +1 -1
  224. package/dist/layouts/TopNavLayout.vue_vue_type_script_setup_true_lang.js +15 -15
  225. package/dist/layouts/TopNavLayout.vue_vue_type_script_setup_true_lang.js.map +1 -1
  226. package/dist/layouts/lazy-layouts.d.ts +10 -0
  227. package/dist/layouts/lazy-layouts.d.ts.map +1 -0
  228. package/dist/layouts/lazy-layouts.js +8 -0
  229. package/dist/layouts/lazy-layouts.js.map +1 -0
  230. package/dist/layouts/panel-layouts.d.ts +8 -0
  231. package/dist/layouts/panel-layouts.d.ts.map +1 -0
  232. package/dist/layouts/panel-layouts.js +15 -0
  233. package/dist/layouts/panel-layouts.js.map +1 -0
  234. package/dist/lib/lazy.d.ts.map +1 -1
  235. package/dist/lib/lazy.js +2 -2
  236. package/dist/lib/lazy.js.map +1 -1
  237. package/dist/pages/PageShell.js.map +1 -1
  238. package/dist/pages/PageShell.vue.d.ts.map +1 -1
  239. package/dist/pages/PageShell.vue_vue_type_script_setup_true_lang.js +39 -42
  240. package/dist/pages/PageShell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  241. package/dist/standalone/AlfakitComponent.js.map +1 -1
  242. package/dist/standalone/AlfakitComponent.vue.d.ts.map +1 -1
  243. package/dist/standalone/AlfakitComponent.vue_vue_type_script_setup_true_lang.js +56 -52
  244. package/dist/standalone/AlfakitComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  245. package/dist/standalone/AlfakitToaster.js.map +1 -1
  246. package/dist/standalone/AlfakitToaster.vue.d.ts.map +1 -1
  247. package/dist/standalone/AlfakitToaster.vue_vue_type_script_setup_true_lang.js +23 -15
  248. package/dist/standalone/AlfakitToaster.vue_vue_type_script_setup_true_lang.js.map +1 -1
  249. package/dist/standalone.css +54 -0
  250. package/dist/starter-kit/AlfakitStarterKitRoot.js.map +1 -1
  251. package/dist/starter-kit/AlfakitStarterKitRoot.vue.d.ts +2 -2
  252. package/dist/starter-kit/AlfakitStarterKitRoot.vue.d.ts.map +1 -1
  253. package/dist/starter-kit/AlfakitStarterKitRoot.vue_vue_type_script_setup_true_lang.js +17 -12
  254. package/dist/starter-kit/AlfakitStarterKitRoot.vue_vue_type_script_setup_true_lang.js.map +1 -1
  255. package/dist/starter-kit/dashboard-widgets.d.ts +54 -0
  256. package/dist/starter-kit/dashboard-widgets.d.ts.map +1 -0
  257. package/dist/starter-kit/dashboard-widgets.js +54 -0
  258. package/dist/starter-kit/dashboard-widgets.js.map +1 -0
  259. package/dist/starter-kit/index.d.ts +2 -1
  260. package/dist/starter-kit/index.d.ts.map +1 -1
  261. package/dist/starter-kit/index.js +5 -4
  262. package/dist/starter-kit/runtime.d.ts +6 -0
  263. package/dist/starter-kit/runtime.d.ts.map +1 -1
  264. package/dist/starter-kit/runtime.js +19 -15
  265. package/dist/starter-kit/runtime.js.map +1 -1
  266. package/dist/starter-kit/starter-kit.d.ts.map +1 -1
  267. package/dist/starter-kit/starter-kit.js +8 -8
  268. package/dist/starter-kit/starter-kit.js.map +1 -1
  269. package/dist/starter-kit/widgets/CopilotTrigger.js +7 -0
  270. package/dist/starter-kit/widgets/CopilotTrigger.js.map +1 -0
  271. package/dist/starter-kit/widgets/CopilotTrigger.vue.d.ts +12 -0
  272. package/dist/starter-kit/widgets/CopilotTrigger.vue.d.ts.map +1 -0
  273. package/dist/starter-kit/widgets/CopilotTrigger.vue_vue_type_script_setup_true_lang.js +23 -0
  274. package/dist/starter-kit/widgets/CopilotTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  275. package/dist/starter-kit/widgets/LoadedCopilot.js +7 -0
  276. package/dist/starter-kit/widgets/LoadedCopilot.js.map +1 -0
  277. package/dist/starter-kit/widgets/LoadedCopilot.vue.d.ts +8 -0
  278. package/dist/starter-kit/widgets/LoadedCopilot.vue.d.ts.map +1 -0
  279. package/dist/starter-kit/widgets/LoadedCopilot.vue_vue_type_script_setup_true_lang.js +31 -0
  280. package/dist/starter-kit/widgets/LoadedCopilot.vue_vue_type_script_setup_true_lang.js.map +1 -0
  281. package/dist/starter-kit/widgets/SearchTrigger.js.map +1 -1
  282. package/dist/starter-kit/widgets/SearchTrigger.vue.d.ts.map +1 -1
  283. package/dist/starter-kit/widgets/SearchTrigger.vue_vue_type_script_setup_true_lang.js +1 -0
  284. package/dist/starter-kit/widgets/SearchTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  285. package/dist/starter-kit/widgets/StarterKitImpersonationBanner.js +7 -0
  286. package/dist/starter-kit/widgets/StarterKitImpersonationBanner.js.map +1 -0
  287. package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue.d.ts +8 -0
  288. package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue.d.ts.map +1 -0
  289. package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue_vue_type_script_setup_true_lang.js +34 -0
  290. package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue_vue_type_script_setup_true_lang.js.map +1 -0
  291. package/dist/starter-kit/widgets/TenantChooser.js.map +1 -1
  292. package/dist/starter-kit/widgets/TenantChooser.vue_vue_type_script_setup_true_lang.js +1 -1
  293. package/dist/starter-kit/widgets/TenantChooser.vue_vue_type_script_setup_true_lang.js.map +1 -1
  294. package/dist/starter-kit/widgets/index.d.ts +40 -9
  295. package/dist/starter-kit/widgets/index.d.ts.map +1 -1
  296. package/dist/starter-kit/widgets/index.js +21 -18
  297. package/dist/starter-kit/widgets/index.js.map +1 -1
  298. package/dist/starter-kit/widgets/loaded.d.ts +10 -0
  299. package/dist/starter-kit/widgets/loaded.d.ts.map +1 -0
  300. package/dist/starter-kit/widgets/loaded.js +5 -0
  301. package/dist/styles.css +9 -2
  302. package/dist/themes.css +8 -335
  303. package/package.json +3 -3
  304. package/src/AlfakitRoot.vue +9 -1
  305. package/src/components/actions/ActionButton.vue +14 -6
  306. package/src/components/actions/ActionGroupMenu.vue +13 -1
  307. package/src/components/actions/ActionModal.vue +12 -1
  308. package/src/components/ai/AiCopilot.vue +7 -1
  309. package/src/components/cms/LivePreview.vue +8 -2
  310. package/src/components/fields/BuilderField.vue +15 -2
  311. package/src/components/fields/ColorPickerField.vue +1 -0
  312. package/src/components/fields/ComboboxSelect.vue +1 -1
  313. package/src/components/fields/FileUploadField.vue +14 -11
  314. package/src/components/fields/ImageEditorDialog.vue +7 -3
  315. package/src/components/fields/KeyValueField.vue +3 -2
  316. package/src/components/fields/ModalTablePicker.vue +7 -2
  317. package/src/components/fields/OneTimeCodeInputField.vue +1 -1
  318. package/src/components/fields/RepeaterField.vue +2 -3
  319. package/src/components/fields/RichEditorInput.vue +3 -0
  320. package/src/components/fields/SelectField.vue +4 -2
  321. package/src/components/fields/TableColumnHeaders.vue +6 -1
  322. package/src/components/fields/item-actions.ts +31 -10
  323. package/src/components/file-manager/FileManagerView.vue +1 -1
  324. package/src/components/form/FormBlock.vue +26 -1
  325. package/src/components/form/form-context.ts +3 -3
  326. package/src/components/kanban/KanbanBoard.vue +15 -3
  327. package/src/components/kanban/KanbanColumnHeader.vue +6 -4
  328. package/src/components/layout/FusedGroupComponent.vue +1 -0
  329. package/src/components/layout/SectionComponent.vue +10 -4
  330. package/src/components/layout/TabsComponent.vue +61 -5
  331. package/src/components/notifications/NotificationsMenu.vue +11 -0
  332. package/src/components/panel/GlobalSearch.vue +1 -0
  333. package/src/components/panel/GlobalSearchPalette.vue +2 -0
  334. package/src/components/panel/ShortcutKeys.vue +1 -0
  335. package/src/components/panel/TenantMenu.vue +2 -2
  336. package/src/components/realtime/use-live-updates.ts +3 -1
  337. package/src/components/table/ColumnHeader.vue +23 -12
  338. package/src/components/table/ColumnManager.vue +12 -8
  339. package/src/components/table/ContentLayoutSort.vue +7 -1
  340. package/src/components/table/GroupHeaderRow.vue +27 -0
  341. package/src/components/table/SelectCell.vue +5 -2
  342. package/src/components/table/TableCellContent.vue +4 -2
  343. package/src/components/table/TablePagination.vue +12 -7
  344. package/src/components/table/TextInputCell.vue +11 -5
  345. package/src/components/table/cell-update.ts +6 -0
  346. package/src/components/ui/CommandAutoHighlight.vue +27 -0
  347. package/src/components/ui/DialogContent.vue +5 -1
  348. package/src/components/ui/PopoverContent.vue +5 -1
  349. package/src/components/ui/SheetContent.vue +5 -1
  350. package/src/components/ui/TooltipContent.vue +5 -1
  351. package/src/context.ts +10 -0
  352. package/src/create-alfakit.ts +5 -0
  353. package/src/index.ts +2 -0
  354. package/src/layouts/lazy-layouts.ts +14 -0
  355. package/src/layouts/panel-layouts.ts +17 -0
  356. package/src/lib/lazy.ts +11 -1
  357. package/src/pages/PageShell.vue +5 -6
  358. package/src/standalone/AlfakitComponent.vue +17 -6
  359. package/src/standalone/AlfakitToaster.vue +12 -2
  360. package/src/starter-kit/AlfakitStarterKitRoot.vue +12 -3
  361. package/src/starter-kit/dashboard-widgets.ts +93 -0
  362. package/src/starter-kit/index.ts +7 -1
  363. package/src/starter-kit/runtime.ts +17 -1
  364. package/src/starter-kit/starter-kit.ts +2 -1
  365. package/src/starter-kit/widgets/CopilotTrigger.vue +58 -0
  366. package/src/starter-kit/widgets/LoadedCopilot.vue +29 -0
  367. package/src/starter-kit/widgets/SearchTrigger.vue +1 -0
  368. package/src/starter-kit/widgets/StarterKitImpersonationBanner.vue +57 -0
  369. package/src/starter-kit/widgets/TenantChooser.vue +1 -1
  370. package/src/starter-kit/widgets/index.ts +56 -11
  371. package/src/starter-kit/widgets/loaded.ts +9 -0
  372. package/src/styles.css +9 -2
@@ -1,21 +1,21 @@
1
1
  import { usePanel as e, useT as t } from "../../context.js";
2
2
  import n from "../../lib/Icon.js";
3
- import r from "../ui/DropdownMenu.js";
4
- import i from "../ui/DropdownMenuContent.js";
5
- import a from "../ui/DropdownMenuItem.js";
6
- import o from "../ui/DropdownMenuSeparator.js";
7
- import s from "../ui/DropdownMenuTrigger.js";
8
- import ee from "../ui/DropdownMenuLabel.js";
9
- import te from "../ui/SidebarMenuButton.js";
10
- import c from "./NavLabel.js";
11
- import l from "../ui/Avatar.js";
12
- import u from "../ui/AvatarFallback.js";
13
- import d from "../ui/AvatarImage.js";
3
+ import ee from "../ui/DropdownMenu.js";
4
+ import r from "../ui/DropdownMenuContent.js";
5
+ import i from "../ui/DropdownMenuItem.js";
6
+ import a from "../ui/DropdownMenuSeparator.js";
7
+ import o from "../ui/DropdownMenuTrigger.js";
8
+ import te from "../ui/DropdownMenuLabel.js";
9
+ import s from "./NavLabel.js";
10
+ import c from "../ui/Avatar.js";
11
+ import l from "../ui/AvatarFallback.js";
12
+ import u from "../ui/AvatarImage.js";
13
+ import d from "../ui/SidebarMenuButton.js";
14
14
  import f from "./MenuItemEntry.js";
15
15
  import ne from "./MenuItemEntries.js";
16
16
  import { filterTenants as re, initials as p, tenantNameText as m } from "@alfakit/core";
17
- import { Link as h, router as ie } from "@inertiajs/vue3";
18
- import { Fragment as g, computed as _, createBlock as v, createCommentVNode as y, createElementBlock as b, createElementVNode as x, createTextVNode as S, createVNode as C, defineComponent as w, openBlock as T, ref as ae, renderList as oe, toDisplayString as E, unref as D, vModelText as O, withCtx as k, withDirectives as A, withModifiers as j } from "vue";
17
+ import { Link as h, router as g } from "@inertiajs/vue3";
18
+ import { Fragment as ie, computed as _, createBlock as v, createCommentVNode as y, createElementBlock as b, createElementVNode as x, createTextVNode as S, createVNode as C, defineComponent as w, openBlock as T, ref as ae, renderList as oe, toDisplayString as E, unref as D, vModelText as O, withCtx as k, withDirectives as A, withModifiers as j } from "vue";
19
19
  import { CheckIcon as M, ChevronsUpDownIcon as N, PlusIcon as P, SearchIcon as F, SettingsIcon as I } from "@lucide/vue";
20
20
  //#region src/components/panel/TenantMenu.vue?vue&type=script&setup=true&lang.ts
21
21
  var L = {
@@ -46,21 +46,21 @@ var L = {
46
46
  props: { variant: { default: "sidebar" } },
47
47
  setup(w) {
48
48
  let K = w, q = t(), J = e(), Y = _(() => J.value.tenancy), X = _(() => Y.value?.current), Z = ae(""), Q = _(() => Y.value?.switcher !== !1 && (Y.value?.tenants.length ?? 0) > 0), $ = _(() => Y.value?.searchable ? re(Y.value.tenants, Z.value) : Y.value?.tenants ?? []);
49
- return (e, t) => Y.value && X.value ? (T(), v(r, { key: 0 }, {
50
- default: k(() => [C(s, { "as-child": "" }, {
49
+ return (e, t) => Y.value && X.value ? (T(), v(ee, { key: 0 }, {
50
+ default: k(() => [C(o, { "as-child": "" }, {
51
51
  default: k(() => [K.variant === "topbar" ? (T(), b("button", L, [
52
- C(l, { class: "size-6 rounded-md" }, {
53
- default: k(() => [X.value.avatar ? (T(), v(d, {
52
+ C(c, { class: "size-6 rounded-md" }, {
53
+ default: k(() => [X.value.avatar ? (T(), v(u, {
54
54
  key: 0,
55
55
  src: X.value.avatar,
56
56
  alt: ""
57
- }, null, 8, ["src"])) : y("", !0), C(u, { class: "rounded-md text-[10px]" }, {
57
+ }, null, 8, ["src"])) : y("", !0), C(l, { class: "rounded-md text-[10px]" }, {
58
58
  default: k(() => [S(E(D(p)(D(m)(X.value))), 1)]),
59
59
  _: 1
60
60
  })]),
61
61
  _: 1
62
62
  }),
63
- x("span", R, [X.value.label ? (T(), b("span", z, E(X.value.label), 1)) : y("", !0), C(c, {
63
+ x("span", R, [X.value.label ? (T(), b("span", z, E(X.value.label), 1)) : y("", !0), C(s, {
64
64
  class: "truncate",
65
65
  text: X.value.name,
66
66
  html: X.value.nameHtml
@@ -70,18 +70,18 @@ var L = {
70
70
  fallback: D(N),
71
71
  class: "text-muted-foreground size-4 shrink-0"
72
72
  }, null, 8, ["fallback"])
73
- ])) : (T(), v(te, {
73
+ ])) : (T(), v(d, {
74
74
  key: 1,
75
75
  size: "lg",
76
76
  class: "data-[state=open]:bg-sidebar-accent"
77
77
  }, {
78
78
  default: k(() => [
79
- C(l, { class: "size-8 rounded-lg" }, {
80
- default: k(() => [X.value.avatar ? (T(), v(d, {
79
+ C(c, { class: "size-8 rounded-lg" }, {
80
+ default: k(() => [X.value.avatar ? (T(), v(u, {
81
81
  key: 0,
82
82
  src: X.value.avatar,
83
83
  alt: D(m)(X.value)
84
- }, null, 8, ["src", "alt"])) : y("", !0), C(u, { class: "rounded-lg" }, {
84
+ }, null, 8, ["src", "alt"])) : y("", !0), C(l, { class: "rounded-lg" }, {
85
85
  default: k(() => [S(E(D(p)(D(m)(X.value))), 1)]),
86
86
  _: 1
87
87
  })]),
@@ -89,7 +89,7 @@ var L = {
89
89
  }),
90
90
  x("div", B, [
91
91
  X.value.label ? (T(), b("span", V, E(X.value.label), 1)) : y("", !0),
92
- C(c, {
92
+ C(s, {
93
93
  class: "truncate font-medium",
94
94
  text: X.value.name,
95
95
  html: X.value.nameHtml
@@ -105,14 +105,14 @@ var L = {
105
105
  _: 1
106
106
  }))]),
107
107
  _: 1
108
- }), C(i, {
108
+ }), C(r, {
109
109
  class: "min-w-56 rounded-lg",
110
110
  side: "bottom",
111
111
  align: "start",
112
112
  "side-offset": 4
113
113
  }, {
114
114
  default: k(() => [
115
- Q.value ? (T(), v(ee, {
115
+ Q.value ? (T(), v(te, {
116
116
  key: 0,
117
117
  class: "text-muted-foreground text-xs"
118
118
  }, {
@@ -131,23 +131,23 @@ var L = {
131
131
  onKeydown: t[1] ||= j(() => {}, ["stop"])
132
132
  }, null, 40, W), [[O, Z.value]])])) : y("", !0),
133
133
  Q.value && Y.value.searchable && $.value.length === 0 ? (T(), b("p", G, E(D(q)("no_results", {}, "No results.")), 1)) : y("", !0),
134
- (T(!0), b(g, null, oe($.value, (e) => (T(), v(a, {
134
+ (T(!0), b(ie, null, oe($.value, (e) => (T(), v(i, {
135
135
  key: String(e.id),
136
- onSelect: (t) => D(ie).visit(e.url)
136
+ onSelect: (t) => D(g).visit(e.url)
137
137
  }, {
138
138
  default: k(() => [
139
- C(l, { class: "size-6 rounded-sm" }, {
140
- default: k(() => [e.avatar ? (T(), v(d, {
139
+ C(c, { class: "size-6 rounded-sm" }, {
140
+ default: k(() => [e.avatar ? (T(), v(u, {
141
141
  key: 0,
142
142
  src: e.avatar,
143
143
  alt: D(m)(e)
144
- }, null, 8, ["src", "alt"])) : y("", !0), C(u, { class: "rounded-sm text-[10px]" }, {
144
+ }, null, 8, ["src", "alt"])) : y("", !0), C(l, { class: "rounded-sm text-[10px]" }, {
145
145
  default: k(() => [S(E(D(p)(D(m)(e))), 1)]),
146
146
  _: 2
147
147
  }, 1024)]),
148
148
  _: 2
149
149
  }, 1024),
150
- C(c, {
150
+ C(s, {
151
151
  class: "flex-1 truncate",
152
152
  text: e.name,
153
153
  html: e.nameHtml
@@ -159,12 +159,12 @@ var L = {
159
159
  ]),
160
160
  _: 2
161
161
  }, 1032, ["onSelect"]))), 128)),
162
- Q.value && (Y.value.registrationUrl || Y.value.profileUrl || Y.value.menu?.length) ? (T(), v(o, { key: 3 })) : y("", !0),
162
+ Q.value && (Y.value.registrationUrl || Y.value.profileUrl || Y.value.menu?.length) ? (T(), v(a, { key: 3 })) : y("", !0),
163
163
  Y.value.profile ? (T(), v(f, {
164
164
  key: 4,
165
165
  item: Y.value.profile,
166
166
  menu: "tenantMenu"
167
- }, null, 8, ["item"])) : Y.value.profileUrl ? (T(), v(a, {
167
+ }, null, 8, ["item"])) : Y.value.profileUrl ? (T(), v(i, {
168
168
  key: 5,
169
169
  "as-child": ""
170
170
  }, {
@@ -175,7 +175,7 @@ var L = {
175
175
  default: k(() => [C(D(n), {
176
176
  name: "alfakit::panels.tenant-menu.profile-button",
177
177
  fallback: D(I)
178
- }, null, 8, ["fallback"]), S(" " + E(D(q)("tenancy.profile", {}, "Settings")), 1)]),
178
+ }, null, 8, ["fallback"]), S(" " + E(Y.value.profileLabel ?? D(q)("tenancy.profile", {}, "Settings")), 1)]),
179
179
  _: 1
180
180
  }, 8, ["href"])]),
181
181
  _: 1
@@ -189,7 +189,7 @@ var L = {
189
189
  key: 7,
190
190
  item: Y.value.registration,
191
191
  menu: "tenantMenu"
192
- }, null, 8, ["item"])) : Y.value.registrationUrl ? (T(), v(a, {
192
+ }, null, 8, ["item"])) : Y.value.registrationUrl ? (T(), v(i, {
193
193
  key: 8,
194
194
  "as-child": ""
195
195
  }, {
@@ -200,7 +200,7 @@ var L = {
200
200
  default: k(() => [C(D(n), {
201
201
  name: "alfakit::panels.tenant-menu.registration-button",
202
202
  fallback: D(P)
203
- }, null, 8, ["fallback"]), S(" " + E(D(q)("tenancy.register", {}, "New")), 1)]),
203
+ }, null, 8, ["fallback"]), S(" " + E(Y.value.registrationLabel ?? D(q)("tenancy.register", {}, "New")), 1)]),
204
204
  _: 1
205
205
  }, 8, ["href"])]),
206
206
  _: 1
@@ -1 +1 @@
1
- {"version":3,"file":"TenantMenu.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","DropdownMenu","_withCtx","_createVNode","DropdownMenuTrigger","_createElementBlock","Avatar","AvatarImage","_createCommentVNode","AvatarFallback","_createTextVNode","_toDisplayString","_unref","_createElementVNode","NavLabel","Icon","SidebarMenuButton","DropdownMenuContent","DropdownMenuLabel","_withDirectives","_withModifiers","_vModelText","_Fragment","_renderList","DropdownMenuItem","DropdownMenuSeparator","MenuItemEntry","MenuItemEntries","Icon_default","DropdownMenu_default","DropdownMenuContent_default","DropdownMenuItem_default","DropdownMenuSeparator_default","DropdownMenuTrigger_default","DropdownMenuLabel_default","SidebarMenuButton_default","NavLabel_default","Avatar_default","AvatarFallback_default","AvatarImage_default","MenuItemEntry_default","MenuItemEntries_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","TenantMenu_vue_vue_type_script_setup_true_lang_default","props","__props","t","useT","panel","usePanel","tenancy","computed","current","search","ref","hasSwitcher","tenants","filterTenants","openBlock","createBlock","withCtx","createVNode","createElementBlock","createCommentVNode","createTextVNode","toDisplayString","unref","initials","tenantNameText","createElementVNode","ChevronsUpDownIcon","SearchIcon","withDirectives","_cache","$event","withModifiers","vModelText","Fragment","renderList","tenant","router","CheckIcon","Link","SettingsIcon","PlusIcon"],"sources":["../../../src/components/panel/TenantMenu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { filterTenants, initials, tenantNameText } from '@alfakit/core'\nimport { Link, router } from '@inertiajs/vue3'\nimport { CheckIcon, ChevronsUpDownIcon, PlusIcon, SearchIcon, SettingsIcon } from '@lucide/vue'\nimport { computed, ref } from 'vue'\nimport { usePanel, useT } from '../../context'\nimport { Icon } from '../../lib/icons'\nimport Avatar from '../ui/Avatar.vue'\nimport AvatarFallback from '../ui/AvatarFallback.vue'\nimport AvatarImage from '../ui/AvatarImage.vue'\nimport DropdownMenu from '../ui/DropdownMenu.vue'\nimport DropdownMenuContent from '../ui/DropdownMenuContent.vue'\nimport DropdownMenuItem from '../ui/DropdownMenuItem.vue'\nimport DropdownMenuLabel from '../ui/DropdownMenuLabel.vue'\nimport DropdownMenuSeparator from '../ui/DropdownMenuSeparator.vue'\nimport DropdownMenuTrigger from '../ui/DropdownMenuTrigger.vue'\nimport SidebarMenuButton from '../ui/SidebarMenuButton.vue'\nimport MenuItemEntries from './MenuItemEntries.vue'\nimport MenuItemEntry from './MenuItemEntry.vue'\nimport NavLabel from './NavLabel.vue'\n\n/**\n * The tenant switcher: a sidebar header button, or a compact button in the top bar of the\n * `topbar` layout (`variant=\"topbar\"`), where the store name shows from `lg` up.\n */\nconst props = withDefaults(defineProps<{ variant?: 'sidebar' | 'topbar' }>(), {\n variant: 'sidebar',\n})\n\nconst t = useT()\nconst panel = usePanel()\nconst tenancy = computed(() => panel.value.tenancy)\nconst current = computed(() => tenancy.value?.current)\nconst search = ref('')\n// `tenantSwitcher(false)` sends no tenants; `searchableTenantMenu()` adds a search field.\nconst hasSwitcher = computed(\n () => tenancy.value?.switcher !== false && (tenancy.value?.tenants.length ?? 0) > 0,\n)\nconst tenants = computed(() =>\n tenancy.value?.searchable\n ? filterTenants(tenancy.value.tenants, search.value)\n : (tenancy.value?.tenants ?? []),\n)\n</script>\n\n<template>\n <DropdownMenu v-if=\"tenancy && current\">\n <DropdownMenuTrigger as-child>\n <button\n v-if=\"props.variant === 'topbar'\"\n type=\"button\"\n data-slot=\"tenant-menu\"\n class=\"hover:bg-accent data-[state=open]:bg-accent inline-flex h-9 max-w-60 shrink-0 items-center gap-2 rounded-md px-2 text-sm font-medium\"\n >\n <Avatar class=\"size-6 rounded-md\">\n <AvatarImage v-if=\"current.avatar\" :src=\"current.avatar\" alt=\"\" />\n <AvatarFallback class=\"rounded-md text-[10px]\">{{\n initials(tenantNameText(current))\n }}</AvatarFallback>\n </Avatar>\n <span\n class=\"sr-only min-w-0 truncate lg:not-sr-only lg:grid lg:text-start lg:leading-tight\"\n >\n <span\n v-if=\"current.label\"\n data-slot=\"tenant-menu-label\"\n class=\"text-muted-foreground text-[10px]\"\n >{{ current.label }}\n </span>\n <NavLabel class=\"truncate\" :text=\"current.name\" :html=\"current.nameHtml\" />\n </span>\n <Icon\n name=\"alfakit::panels.tenant-menu.toggle-button\"\n :fallback=\"ChevronsUpDownIcon\"\n class=\"text-muted-foreground size-4 shrink-0\"\n />\n </button>\n <SidebarMenuButton v-else size=\"lg\" class=\"data-[state=open]:bg-sidebar-accent\">\n <Avatar class=\"size-8 rounded-lg\">\n <AvatarImage v-if=\"current.avatar\" :src=\"current.avatar\" :alt=\"tenantNameText(current)\" />\n <AvatarFallback class=\"rounded-lg\">{{\n initials(tenantNameText(current))\n }}</AvatarFallback>\n </Avatar>\n <div class=\"grid flex-1 text-start text-sm leading-tight\">\n <!-- `HasCurrentTenantLabel`: a caption above the name instead of the brand. -->\n <span\n v-if=\"current.label\"\n data-slot=\"tenant-menu-label\"\n class=\"text-muted-foreground truncate text-xs\"\n >{{ current.label }}</span\n >\n <NavLabel class=\"truncate font-medium\" :text=\"current.name\" :html=\"current.nameHtml\" />\n <span v-if=\"!current.label\" class=\"text-muted-foreground truncate text-xs\">{{\n panel.brandName\n }}</span>\n </div>\n <Icon\n name=\"alfakit::panels.tenant-menu.toggle-button\"\n :fallback=\"ChevronsUpDownIcon\"\n class=\"ms-auto size-4\"\n />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent class=\"min-w-56 rounded-lg\" side=\"bottom\" align=\"start\" :side-offset=\"4\">\n <DropdownMenuLabel v-if=\"hasSwitcher\" class=\"text-muted-foreground text-xs\">{{\n t('tenancy.switch', {}, 'Switch')\n }}</DropdownMenuLabel>\n <div\n v-if=\"hasSwitcher && tenancy.searchable\"\n data-slot=\"tenant-menu-search\"\n class=\"relative px-1 pb-1\"\n >\n <SearchIcon\n class=\"text-muted-foreground pointer-events-none absolute start-3 top-1/2 size-3.5 -translate-y-1/2\"\n aria-hidden=\"true\"\n />\n <!-- Keep the menu's type-ahead from taking the keys. -->\n <input\n v-model=\"search\"\n type=\"search\"\n :placeholder=\"t('tenancy.search', {}, 'Search')\"\n :aria-label=\"t('tenancy.search', {}, 'Search')\"\n class=\"border-input focus-visible:ring-ring/50 h-8 w-full rounded-md border bg-transparent ps-7 pe-2 text-sm outline-none focus-visible:ring-[3px]\"\n @keydown.stop\n />\n </div>\n <p\n v-if=\"hasSwitcher && tenancy.searchable && tenants.length === 0\"\n class=\"text-muted-foreground px-2 py-1.5 text-sm\"\n >\n {{ t('no_results', {}, 'No results.') }}\n </p>\n <DropdownMenuItem\n v-for=\"tenant in tenants\"\n :key=\"String(tenant.id)\"\n @select=\"router.visit(tenant.url)\"\n >\n <Avatar class=\"size-6 rounded-sm\">\n <AvatarImage v-if=\"tenant.avatar\" :src=\"tenant.avatar\" :alt=\"tenantNameText(tenant)\" />\n <AvatarFallback class=\"rounded-sm text-[10px]\">{{\n initials(tenantNameText(tenant))\n }}</AvatarFallback>\n </Avatar>\n <NavLabel class=\"flex-1 truncate\" :text=\"tenant.name\" :html=\"tenant.nameHtml\" />\n <CheckIcon v-if=\"String(tenant.id) === String(current.id)\" class=\"size-4\" />\n </DropdownMenuItem>\n <DropdownMenuSeparator\n v-if=\"\n hasSwitcher && (tenancy.registrationUrl || tenancy.profileUrl || tenancy.menu?.length)\n \"\n />\n <MenuItemEntry v-if=\"tenancy.profile\" :item=\"tenancy.profile\" menu=\"tenantMenu\" />\n <DropdownMenuItem v-else-if=\"tenancy.profileUrl\" as-child>\n <Link :href=\"tenancy.profileUrl\" class=\"w-full\"\n ><Icon name=\"alfakit::panels.tenant-menu.profile-button\" :fallback=\"SettingsIcon\" />\n {{ t('tenancy.profile', {}, 'Settings') }}</Link\n >\n </DropdownMenuItem>\n <MenuItemEntries v-if=\"tenancy.menu\" :items=\"tenancy.menu\" menu=\"tenantMenu\" />\n <MenuItemEntry v-if=\"tenancy.registration\" :item=\"tenancy.registration\" menu=\"tenantMenu\" />\n <DropdownMenuItem v-else-if=\"tenancy.registrationUrl\" as-child>\n <Link :href=\"tenancy.registrationUrl\" class=\"w-full\"\n ><Icon name=\"alfakit::panels.tenant-menu.registration-button\" :fallback=\"PlusIcon\" />\n {{ t('tenancy.register', {}, 'New') }}</Link\n >\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"TenantMenu.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","DropdownMenu","_withCtx","_createVNode","DropdownMenuTrigger","_createElementBlock","Avatar","AvatarImage","_createCommentVNode","AvatarFallback","_createTextVNode","_toDisplayString","_unref","_createElementVNode","NavLabel","Icon","SidebarMenuButton","DropdownMenuContent","DropdownMenuLabel","_withDirectives","_withModifiers","_vModelText","_Fragment","_renderList","DropdownMenuItem","DropdownMenuSeparator","MenuItemEntry","MenuItemEntries","Icon_default","DropdownMenu_default","DropdownMenuContent_default","DropdownMenuItem_default","DropdownMenuSeparator_default","DropdownMenuTrigger_default","DropdownMenuLabel_default","NavLabel_default","Avatar_default","AvatarFallback_default","AvatarImage_default","SidebarMenuButton_default","MenuItemEntry_default","MenuItemEntries_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","TenantMenu_vue_vue_type_script_setup_true_lang_default","props","__props","t","useT","panel","usePanel","tenancy","computed","current","search","ref","hasSwitcher","tenants","filterTenants","openBlock","createBlock","withCtx","createVNode","createElementBlock","createCommentVNode","createTextVNode","toDisplayString","unref","initials","tenantNameText","createElementVNode","ChevronsUpDownIcon","SearchIcon","withDirectives","_cache","$event","withModifiers","vModelText","Fragment","renderList","tenant","router","CheckIcon","Link","SettingsIcon","PlusIcon"],"sources":["../../../src/components/panel/TenantMenu.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { filterTenants, initials, tenantNameText } from '@alfakit/core'\nimport { Link, router } from '@inertiajs/vue3'\nimport { CheckIcon, ChevronsUpDownIcon, PlusIcon, SearchIcon, SettingsIcon } from '@lucide/vue'\nimport { computed, ref } from 'vue'\nimport { usePanel, useT } from '../../context'\nimport { Icon } from '../../lib/icons'\nimport Avatar from '../ui/Avatar.vue'\nimport AvatarFallback from '../ui/AvatarFallback.vue'\nimport AvatarImage from '../ui/AvatarImage.vue'\nimport DropdownMenu from '../ui/DropdownMenu.vue'\nimport DropdownMenuContent from '../ui/DropdownMenuContent.vue'\nimport DropdownMenuItem from '../ui/DropdownMenuItem.vue'\nimport DropdownMenuLabel from '../ui/DropdownMenuLabel.vue'\nimport DropdownMenuSeparator from '../ui/DropdownMenuSeparator.vue'\nimport DropdownMenuTrigger from '../ui/DropdownMenuTrigger.vue'\nimport SidebarMenuButton from '../ui/SidebarMenuButton.vue'\nimport MenuItemEntries from './MenuItemEntries.vue'\nimport MenuItemEntry from './MenuItemEntry.vue'\nimport NavLabel from './NavLabel.vue'\n\n/**\n * The tenant switcher: a sidebar header button, or a compact button in the top bar of the\n * `topbar` layout (`variant=\"topbar\"`), where the store name shows from `lg` up.\n */\nconst props = withDefaults(defineProps<{ variant?: 'sidebar' | 'topbar' }>(), {\n variant: 'sidebar',\n})\n\nconst t = useT()\nconst panel = usePanel()\nconst tenancy = computed(() => panel.value.tenancy)\nconst current = computed(() => tenancy.value?.current)\nconst search = ref('')\n// `tenantSwitcher(false)` sends no tenants; `searchableTenantMenu()` adds a search field.\nconst hasSwitcher = computed(\n () => tenancy.value?.switcher !== false && (tenancy.value?.tenants.length ?? 0) > 0,\n)\nconst tenants = computed(() =>\n tenancy.value?.searchable\n ? filterTenants(tenancy.value.tenants, search.value)\n : (tenancy.value?.tenants ?? []),\n)\n</script>\n\n<template>\n <DropdownMenu v-if=\"tenancy && current\">\n <DropdownMenuTrigger as-child>\n <button\n v-if=\"props.variant === 'topbar'\"\n type=\"button\"\n data-slot=\"tenant-menu\"\n class=\"hover:bg-accent data-[state=open]:bg-accent inline-flex h-9 max-w-60 shrink-0 items-center gap-2 rounded-md px-2 text-sm font-medium\"\n >\n <Avatar class=\"size-6 rounded-md\">\n <AvatarImage v-if=\"current.avatar\" :src=\"current.avatar\" alt=\"\" />\n <AvatarFallback class=\"rounded-md text-[10px]\">{{\n initials(tenantNameText(current))\n }}</AvatarFallback>\n </Avatar>\n <span\n class=\"sr-only min-w-0 truncate lg:not-sr-only lg:grid lg:text-start lg:leading-tight\"\n >\n <span\n v-if=\"current.label\"\n data-slot=\"tenant-menu-label\"\n class=\"text-muted-foreground text-[10px]\"\n >{{ current.label }}\n </span>\n <NavLabel class=\"truncate\" :text=\"current.name\" :html=\"current.nameHtml\" />\n </span>\n <Icon\n name=\"alfakit::panels.tenant-menu.toggle-button\"\n :fallback=\"ChevronsUpDownIcon\"\n class=\"text-muted-foreground size-4 shrink-0\"\n />\n </button>\n <SidebarMenuButton v-else size=\"lg\" class=\"data-[state=open]:bg-sidebar-accent\">\n <Avatar class=\"size-8 rounded-lg\">\n <AvatarImage v-if=\"current.avatar\" :src=\"current.avatar\" :alt=\"tenantNameText(current)\" />\n <AvatarFallback class=\"rounded-lg\">{{\n initials(tenantNameText(current))\n }}</AvatarFallback>\n </Avatar>\n <div class=\"grid flex-1 text-start text-sm leading-tight\">\n <!-- `HasCurrentTenantLabel`: a caption above the name instead of the brand. -->\n <span\n v-if=\"current.label\"\n data-slot=\"tenant-menu-label\"\n class=\"text-muted-foreground truncate text-xs\"\n >{{ current.label }}</span\n >\n <NavLabel class=\"truncate font-medium\" :text=\"current.name\" :html=\"current.nameHtml\" />\n <span v-if=\"!current.label\" class=\"text-muted-foreground truncate text-xs\">{{\n panel.brandName\n }}</span>\n </div>\n <Icon\n name=\"alfakit::panels.tenant-menu.toggle-button\"\n :fallback=\"ChevronsUpDownIcon\"\n class=\"ms-auto size-4\"\n />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent class=\"min-w-56 rounded-lg\" side=\"bottom\" align=\"start\" :side-offset=\"4\">\n <DropdownMenuLabel v-if=\"hasSwitcher\" class=\"text-muted-foreground text-xs\">{{\n t('tenancy.switch', {}, 'Switch')\n }}</DropdownMenuLabel>\n <div\n v-if=\"hasSwitcher && tenancy.searchable\"\n data-slot=\"tenant-menu-search\"\n class=\"relative px-1 pb-1\"\n >\n <SearchIcon\n class=\"text-muted-foreground pointer-events-none absolute start-3 top-1/2 size-3.5 -translate-y-1/2\"\n aria-hidden=\"true\"\n />\n <!-- Keep the menu's type-ahead from taking the keys. -->\n <input\n v-model=\"search\"\n type=\"search\"\n :placeholder=\"t('tenancy.search', {}, 'Search')\"\n :aria-label=\"t('tenancy.search', {}, 'Search')\"\n class=\"border-input focus-visible:ring-ring/50 h-8 w-full rounded-md border bg-transparent ps-7 pe-2 text-sm outline-none focus-visible:ring-[3px]\"\n @keydown.stop\n />\n </div>\n <p\n v-if=\"hasSwitcher && tenancy.searchable && tenants.length === 0\"\n class=\"text-muted-foreground px-2 py-1.5 text-sm\"\n >\n {{ t('no_results', {}, 'No results.') }}\n </p>\n <DropdownMenuItem\n v-for=\"tenant in tenants\"\n :key=\"String(tenant.id)\"\n @select=\"router.visit(tenant.url)\"\n >\n <Avatar class=\"size-6 rounded-sm\">\n <AvatarImage v-if=\"tenant.avatar\" :src=\"tenant.avatar\" :alt=\"tenantNameText(tenant)\" />\n <AvatarFallback class=\"rounded-sm text-[10px]\">{{\n initials(tenantNameText(tenant))\n }}</AvatarFallback>\n </Avatar>\n <NavLabel class=\"flex-1 truncate\" :text=\"tenant.name\" :html=\"tenant.nameHtml\" />\n <CheckIcon v-if=\"String(tenant.id) === String(current.id)\" class=\"size-4\" />\n </DropdownMenuItem>\n <DropdownMenuSeparator\n v-if=\"\n hasSwitcher && (tenancy.registrationUrl || tenancy.profileUrl || tenancy.menu?.length)\n \"\n />\n <MenuItemEntry v-if=\"tenancy.profile\" :item=\"tenancy.profile\" menu=\"tenantMenu\" />\n <DropdownMenuItem v-else-if=\"tenancy.profileUrl\" as-child>\n <Link :href=\"tenancy.profileUrl\" class=\"w-full\"\n ><Icon name=\"alfakit::panels.tenant-menu.profile-button\" :fallback=\"SettingsIcon\" />\n {{ tenancy.profileLabel ?? t('tenancy.profile', {}, 'Settings') }}</Link\n >\n </DropdownMenuItem>\n <MenuItemEntries v-if=\"tenancy.menu\" :items=\"tenancy.menu\" menu=\"tenantMenu\" />\n <MenuItemEntry v-if=\"tenancy.registration\" :item=\"tenancy.registration\" menu=\"tenantMenu\" />\n <DropdownMenuItem v-else-if=\"tenancy.registrationUrl\" as-child>\n <Link :href=\"tenancy.registrationUrl\" class=\"w-full\"\n ><Icon name=\"alfakit::panels.tenant-menu.registration-button\" :fallback=\"PlusIcon\" />\n {{ tenancy.registrationLabel ?? t('tenancy.register', {}, 'New') }}</Link\n >\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n</template>\n"],"mappings":"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"}
@@ -3,12 +3,12 @@ import t from "./Slot.js";
3
3
  import n from "../notifications/NotificationsMenu.js";
4
4
  import r from "./GlobalSearch.js";
5
5
  import i from "./UserMenu.js";
6
- import a from "../ui/SidebarTrigger.js";
7
- import o from "./TopbarLocaleSwitcher.js";
8
- import s from "../ui/Separator.js";
9
- import c from "./Breadcrumbs.js";
10
- import l from "./DebugPanelSlot.js";
11
- import u from "./ThemeToggle.js";
6
+ import a from "./Breadcrumbs.js";
7
+ import o from "./DebugPanelSlot.js";
8
+ import s from "./ThemeToggle.js";
9
+ import c from "../ui/Separator.js";
10
+ import l from "../ui/SidebarTrigger.js";
11
+ import u from "./TopbarLocaleSwitcher.js";
12
12
  import { createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createVNode as h, defineComponent as g, openBlock as _, unref as v } from "vue";
13
13
  //#region src/components/panel/Topbar.vue?vue&type=script&setup=true&lang.ts
14
14
  var y = {
@@ -20,12 +20,12 @@ var y = {
20
20
  setup(g) {
21
21
  let x = g, S = e();
22
22
  return (e, g) => (_(), p("header", y, [
23
- h(a, { class: "-ms-1" }),
24
- h(s, {
23
+ h(l, { class: "-ms-1" }),
24
+ h(c, {
25
25
  orientation: "vertical",
26
26
  class: "me-2 h-4"
27
27
  }),
28
- v(S).breadcrumbs && x.breadcrumbs ? (_(), d(c, {
28
+ v(S).breadcrumbs && x.breadcrumbs ? (_(), d(a, {
29
29
  key: 0,
30
30
  items: x.breadcrumbs
31
31
  }, null, 8, ["items"])) : f("", !0),
@@ -34,9 +34,9 @@ var y = {
34
34
  h(t, { name: "topbar.end" }),
35
35
  v(S).topNavigation || v(S).globalSearch?.position !== "sidebar" ? (_(), d(r, { key: 0 })) : f("", !0),
36
36
  v(S).databaseNotifications?.position === "sidebar" ? f("", !0) : (_(), d(n, { key: 1 })),
37
- h(o),
38
37
  h(u),
39
- h(l),
38
+ h(s),
39
+ h(o),
40
40
  v(S).topNavigation || v(S).userMenu?.position === "topbar" ? (_(), d(i, {
41
41
  key: 2,
42
42
  variant: "topbar"
@@ -1 +1 @@
1
- {"version":3,"file":"Topbar.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_createVNode","SidebarTrigger","Separator","_unref","_createBlock","Breadcrumbs","_createCommentVNode","Slot","_createElementVNode","GlobalSearch","NotificationsMenu","TopbarLocaleSwitcher","ThemeToggle","DebugPanelSlot","UserMenu","Slot_default","NotificationsMenu_default","GlobalSearch_default","UserMenu_default","SidebarTrigger_default","TopbarLocaleSwitcher_default","Separator_default","Breadcrumbs_default","DebugPanelSlot_default","ThemeToggle_default","_hoisted_1","_hoisted_2","Topbar_vue_vue_type_script_setup_true_lang_default","props","__props","panel","usePanel","openBlock","createElementBlock","createVNode","unref","createBlock","createCommentVNode","createElementVNode"],"sources":["../../../src/components/panel/Topbar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { BreadcrumbSchema } from '@alfakit/core'\nimport { usePanel } from '../../context'\nimport NotificationsMenu from '../notifications/NotificationsMenu.vue'\nimport Separator from '../ui/Separator.vue'\nimport SidebarTrigger from '../ui/SidebarTrigger.vue'\nimport Breadcrumbs from './Breadcrumbs.vue'\nimport DebugPanelSlot from './DebugPanelSlot.vue'\nimport GlobalSearch from './GlobalSearch.vue'\nimport Slot from './Slot.vue'\nimport ThemeToggle from './ThemeToggle.vue'\nimport TopbarLocaleSwitcher from './TopbarLocaleSwitcher.vue'\nimport UserMenu from './UserMenu.vue'\n\nconst props = defineProps<{ breadcrumbs?: BreadcrumbSchema[] }>()\nconst panel = usePanel()\n</script>\n\n<template>\n <header\n data-slot=\"topbar\"\n class=\"bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-20 flex h-14 min-w-0 shrink-0 items-center gap-2 border-b px-4 backdrop-blur\"\n >\n <SidebarTrigger class=\"-ms-1\" />\n <Separator orientation=\"vertical\" class=\"me-2 h-4\" />\n <Breadcrumbs v-if=\"panel.breadcrumbs && props.breadcrumbs\" :items=\"props.breadcrumbs\" />\n <Slot name=\"topbar.start\" />\n <div class=\"ms-auto flex items-center gap-1\">\n <Slot name=\"topbar.end\" />\n <!-- `globalSearch(position: Sidebar)` moves the field to the sidebar header. -->\n <GlobalSearch v-if=\"panel.topNavigation || panel.globalSearch?.position !== 'sidebar'\" />\n <NotificationsMenu v-if=\"panel.databaseNotifications?.position !== 'sidebar'\" />\n <TopbarLocaleSwitcher />\n <ThemeToggle />\n <DebugPanelSlot />\n <!-- `userMenu(position: Topbar)` moves the menu out of the sidebar footer. -->\n <UserMenu\n v-if=\"panel.topNavigation || panel.userMenu?.position === 'topbar'\"\n variant=\"topbar\"\n />\n </div>\n </header>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAcA,IAAM8B,IAAQC,GACRC,IAAQC,EAAS;oBAIrBjC,EAAA,GAAAC,EAsBS,UAtBT0B,GAsBS;GAlBPzB,EAAgCC,GAAA,EAAhB,OAAM,QAAO,CAAA;GAC7BD,EAAqDE,GAAA;IAA1C,aAAY;IAAW,OAAM;;GACrBC,EAAA2B,CAAA,CAAK,CAAC,eAAeF,EAAM,eAA9C9B,EAAA,GAAAM,EAAwFC,GAAA;;IAA5B,OAAOuB,EAAM;;GACzE5B,EAA4BO,GAAA,EAAtB,MAAK,eAAc,CAAA;GACzBC,EAaM,OAbNkB,GAaM;IAZJ1B,EAA0BO,GAAA,EAApB,MAAK,aAAY,CAAA;IAEHJ,EAAA2B,CAAA,CAAK,CAAC,iBAAiB3B,EAAA2B,CAAA,CAAK,CAAC,cAAc,aAAQ,aAAvEhC,EAAA,GAAAM,EAAyFK,GAAA,EAAA,KAAA,EAAA,CAAA,KAAA4B,EAAA,IAAA,EAAA;IAChElC,EAAA2B,CAAA,CAAK,CAAC,uBAAuB,aAAQ,YAAkBO,EAAA,IAAA,EAAA,KAAhFvC,EAAA,GAAAM,EAAgFM,GAAA,EAAA,KAAA,EAAA,CAAA;IAChFV,EAAwBW,CAAA;IACxBX,EAAeY,CAAA;IACfZ,EAAkBa,CAAA;IAGVV,EAAA2B,CAAA,CAAK,CAAC,iBAAiB3B,EAAA2B,CAAA,CAAK,CAAC,UAAU,aAAQ,YADvDhC,EAAA,GAAAM,EAGEU,GAAA;;KADA,SAAQ"}
1
+ {"version":3,"file":"Topbar.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_createVNode","SidebarTrigger","Separator","_unref","_createBlock","Breadcrumbs","_createCommentVNode","Slot","_createElementVNode","GlobalSearch","NotificationsMenu","TopbarLocaleSwitcher","ThemeToggle","DebugPanelSlot","UserMenu","Slot_default","NotificationsMenu_default","GlobalSearch_default","UserMenu_default","Breadcrumbs_default","DebugPanelSlot_default","ThemeToggle_default","Separator_default","SidebarTrigger_default","TopbarLocaleSwitcher_default","_hoisted_1","_hoisted_2","Topbar_vue_vue_type_script_setup_true_lang_default","props","__props","panel","usePanel","openBlock","createElementBlock","createVNode","unref","createBlock","createCommentVNode","createElementVNode"],"sources":["../../../src/components/panel/Topbar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { BreadcrumbSchema } from '@alfakit/core'\nimport { usePanel } from '../../context'\nimport NotificationsMenu from '../notifications/NotificationsMenu.vue'\nimport Separator from '../ui/Separator.vue'\nimport SidebarTrigger from '../ui/SidebarTrigger.vue'\nimport Breadcrumbs from './Breadcrumbs.vue'\nimport DebugPanelSlot from './DebugPanelSlot.vue'\nimport GlobalSearch from './GlobalSearch.vue'\nimport Slot from './Slot.vue'\nimport ThemeToggle from './ThemeToggle.vue'\nimport TopbarLocaleSwitcher from './TopbarLocaleSwitcher.vue'\nimport UserMenu from './UserMenu.vue'\n\nconst props = defineProps<{ breadcrumbs?: BreadcrumbSchema[] }>()\nconst panel = usePanel()\n</script>\n\n<template>\n <header\n data-slot=\"topbar\"\n class=\"bg-background/80 supports-[backdrop-filter]:bg-background/60 sticky top-0 z-20 flex h-14 min-w-0 shrink-0 items-center gap-2 border-b px-4 backdrop-blur\"\n >\n <SidebarTrigger class=\"-ms-1\" />\n <Separator orientation=\"vertical\" class=\"me-2 h-4\" />\n <Breadcrumbs v-if=\"panel.breadcrumbs && props.breadcrumbs\" :items=\"props.breadcrumbs\" />\n <Slot name=\"topbar.start\" />\n <div class=\"ms-auto flex items-center gap-1\">\n <Slot name=\"topbar.end\" />\n <!-- `globalSearch(position: Sidebar)` moves the field to the sidebar header. -->\n <GlobalSearch v-if=\"panel.topNavigation || panel.globalSearch?.position !== 'sidebar'\" />\n <NotificationsMenu v-if=\"panel.databaseNotifications?.position !== 'sidebar'\" />\n <TopbarLocaleSwitcher />\n <ThemeToggle />\n <DebugPanelSlot />\n <!-- `userMenu(position: Topbar)` moves the menu out of the sidebar footer. -->\n <UserMenu\n v-if=\"panel.topNavigation || panel.userMenu?.position === 'topbar'\"\n variant=\"topbar\"\n />\n </div>\n </header>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;EAcA,IAAM8B,IAAQC,GACRC,IAAQC,EAAS;oBAIrBjC,EAAA,GAAAC,EAsBS,UAtBT0B,GAsBS;GAlBPzB,EAAgCC,GAAA,EAAhB,OAAM,QAAO,CAAA;GAC7BD,EAAqDE,GAAA;IAA1C,aAAY;IAAW,OAAM;;GACrBC,EAAA2B,CAAA,CAAK,CAAC,eAAeF,EAAM,eAA9C9B,EAAA,GAAAM,EAAwFC,GAAA;;IAA5B,OAAOuB,EAAM;;GACzE5B,EAA4BO,GAAA,EAAtB,MAAK,eAAc,CAAA;GACzBC,EAaM,OAbNkB,GAaM;IAZJ1B,EAA0BO,GAAA,EAApB,MAAK,aAAY,CAAA;IAEHJ,EAAA2B,CAAA,CAAK,CAAC,iBAAiB3B,EAAA2B,CAAA,CAAK,CAAC,cAAc,aAAQ,aAAvEhC,EAAA,GAAAM,EAAyFK,GAAA,EAAA,KAAA,EAAA,CAAA,KAAA4B,EAAA,IAAA,EAAA;IAChElC,EAAA2B,CAAA,CAAK,CAAC,uBAAuB,aAAQ,YAAkBO,EAAA,IAAA,EAAA,KAAhFvC,EAAA,GAAAM,EAAgFM,GAAA,EAAA,KAAA,EAAA,CAAA;IAChFV,EAAwBW,CAAA;IACxBX,EAAeY,CAAA;IACfZ,EAAkBa,CAAA;IAGVV,EAAA2B,CAAA,CAAK,CAAC,iBAAiB3B,EAAA2B,CAAA,CAAK,CAAC,UAAU,aAAQ,YADvDhC,EAAA,GAAAM,EAGEU,GAAA;;KADA,SAAQ"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-live-updates.d.ts","sourceRoot":"","sources":["../../../src/components/realtime/use-live-updates.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,eAAe,CAAA;AACtB,OAAO,EAAgD,KAAK,UAAU,EAAE,MAAM,KAAK,CAAA;AAGnF;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM;IACZ,IAAI,EAAE,iBAAiB,GAAG,SAAS,CAAA;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,aAAa,CAAC;QAAE,GAAG,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CACpD,GACA;IAAE,UAAU,EAAE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAA;CAAE,CA+DrF"}
1
+ {"version":3,"file":"use-live-updates.d.ts","sourceRoot":"","sources":["../../../src/components/realtime/use-live-updates.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EAEX,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACf,MAAM,eAAe,CAAA;AACtB,OAAO,EAAgD,KAAK,UAAU,EAAE,MAAM,KAAK,CAAA;AAGnF;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM;IACZ,IAAI,EAAE,iBAAiB,GAAG,SAAS,CAAA;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,OAAO,CAAC,EAAE,aAAa,CAAC;QAAE,GAAG,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,GAAG,IAAI,CAAA;CACpD,GACA;IAAE,UAAU,EAAE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAAC,KAAK,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAA;CAAE,CAiErF"}
@@ -1,20 +1,20 @@
1
- import { usePollComponent as e } from "../../context.js";
2
- import { LiveUpdates as t, shownRecordKeys as n } from "@alfakit/core";
3
- import { onMounted as r, onScopeDispose as i, shallowRef as a, watch as o } from "vue";
1
+ import { usePollComponent as e, useRefreshComponents as t } from "../../context.js";
2
+ import { LiveUpdates as n, shownRecordKeys as r } from "@alfakit/core";
3
+ import { onMounted as i, onScopeDispose as a, shallowRef as o, watch as s } from "vue";
4
4
  //#region src/components/realtime/use-live-updates.ts
5
- function s(s) {
6
- let c = e(), l = a(null), u = a({
5
+ function c(c) {
6
+ let l = e(), u = t(), d = o(null), f = o({
7
7
  pending: 0,
8
8
  connected: !1
9
- }), d = null, f = null, p = () => {
10
- d?.(), f?.(), d = null, f = null;
9
+ }), p = null, m = null, h = () => {
10
+ p?.(), m?.(), p = null, m = null;
11
11
  };
12
- return r(() => {
13
- o(() => {
14
- let { records: e } = s();
12
+ return i(() => {
13
+ s(() => {
14
+ let { records: e } = c();
15
15
  return e;
16
- }, (e) => l.value?.setShownKeys(e === void 0 ? null : n(e)), { immediate: !0 }), o(() => {
17
- let { live: e, target: t, polling: n, records: r } = s();
16
+ }, (e) => d.value?.setShownKeys(e === void 0 ? null : r(e)), { immediate: !0 }), s(() => {
17
+ let { live: e, target: t, polling: n, records: r } = c();
18
18
  return JSON.stringify([
19
19
  e ?? null,
20
20
  t,
@@ -22,26 +22,27 @@ function s(s) {
22
22
  r === void 0
23
23
  ]);
24
24
  }, () => {
25
- p();
26
- let { live: e, target: r, polling: i, records: a } = s();
25
+ h();
26
+ let { live: e, target: t, polling: i, records: a } = c();
27
27
  if (!e) {
28
- l.value = null;
28
+ d.value = null;
29
29
  return;
30
30
  }
31
- let o = new t({
31
+ let o = new n({
32
32
  live: e,
33
- target: r,
33
+ target: t,
34
34
  polling: i,
35
- poll: c
35
+ poll: l,
36
+ refresh: u
36
37
  });
37
- l.value = o, o.setShownKeys(a === void 0 ? null : n(a)), u.value = o.store.get(), f = o.store.subscribe((e) => u.value = e), d = o.start();
38
+ d.value = o, o.setShownKeys(a === void 0 ? null : r(a)), f.value = o.store.get(), m = o.store.subscribe((e) => f.value = e), p = o.start();
38
39
  }, { immediate: !0 });
39
- }), i(p), {
40
- controller: l,
41
- state: u
40
+ }), a(h), {
41
+ controller: d,
42
+ state: f
42
43
  };
43
44
  }
44
45
  //#endregion
45
- export { s as useLiveUpdates };
46
+ export { c as useLiveUpdates };
46
47
 
47
48
  //# sourceMappingURL=use-live-updates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-live-updates.js","names":["useLiveUpdates","poll","usePollComponent","controller","shallowRef","state","stop","unsubscribe","dispose","onMounted","watch","source","records","shownRecordKeys","live","target","polling","next","LiveUpdates","value","onScopeDispose"],"sources":["../../../src/components/realtime/use-live-updates.ts"],"sourcesContent":["import {\n LiveUpdates,\n shownRecordKeys,\n type LiveUpdatesSchema,\n type LiveUpdatesState,\n type RecordKey,\n} from '@alfakit/core'\nimport { onMounted, onScopeDispose, shallowRef, watch, type ShallowRef } from 'vue'\nimport { usePollComponent } from '../../context'\n\n/**\n * Follow `live()` updates of a table or widget: refresh it in place when its records\n * change, polling instead without Echo. Browser only. Returns the controller and its state\n * (`pending` counts created records for `<LiveRecordsPill>`).\n */\nexport function useLiveUpdates(\n source: () => {\n live: LiveUpdatesSchema | undefined\n target: string\n polling?: boolean\n records?: ReadonlyArray<{ key?: RecordKey }> | null\n },\n): { controller: ShallowRef<LiveUpdates | null>; state: ShallowRef<LiveUpdatesState> } {\n const poll = usePollComponent()\n const controller = shallowRef<LiveUpdates | null>(null)\n const state = shallowRef<LiveUpdatesState>({ pending: 0, connected: false })\n let stop: (() => void) | null = null\n let unsubscribe: (() => void) | null = null\n\n const dispose = () => {\n stop?.()\n unsubscribe?.()\n stop = null\n unsubscribe = null\n }\n\n onMounted(() => {\n watch(\n () => {\n const { records } = source()\n\n return records\n },\n (records) =>\n controller.value?.setShownKeys(records === undefined ? null : shownRecordKeys(records)),\n { immediate: true },\n )\n\n watch(\n () => {\n const { live, target, polling, records } = source()\n\n return JSON.stringify([live ?? null, target, Boolean(polling), records === undefined])\n },\n () => {\n dispose()\n\n const { live, target, polling, records } = source()\n\n if (!live) {\n controller.value = null\n\n return\n }\n\n const next = new LiveUpdates({\n live,\n target,\n polling,\n poll,\n })\n\n controller.value = next\n next.setShownKeys(records === undefined ? null : shownRecordKeys(records))\n state.value = next.store.get()\n unsubscribe = next.store.subscribe((value) => (state.value = value))\n stop = next.start()\n },\n { immediate: true },\n )\n })\n\n onScopeDispose(dispose)\n\n return { controller, state }\n}\n"],"mappings":";;;;AAeA,SAAgBA,EACd,GAMqF;CACrF,IAAMC,IAAOC,EAAiB,GACxBC,IAAaC,EAA+B,IAAI,GAChDC,IAAQD,EAA6B;EAAE,SAAS;EAAG,WAAW;CAAM,CAAC,GACvEE,IAA4B,MAC5BC,IAAmC,MAEjCC,UAAgB;EAIpB,AAHAF,IAAO,GACPC,IAAc,GACd,IAAO,MACP,IAAc;CAChB;CAkDA,OAhDAE,QAAgB;EAYd,AAXAC,QACQ;GACJ,IAAM,EAAE,eAAYC,EAAO;GAE3B,OAAOC;EACT,IACC,MACCT,EAAW,OAAO,aAAaS,MAAY,KAAA,IAAY,OAAOC,EAAgBD,CAAO,CAAC,GACxF,EAAE,WAAW,GAAK,CACpB,GAEAF,QACQ;GACJ,IAAM,EAAE,SAAM,WAAQ,YAAS,eAAYC,EAAO;GAElD,OAAO,KAAK,UAAU;IAACG,KAAQ;IAAMC;IAAQ,EAAQC;IAAUJ,MAAY,KAAA;GAAS,CAAC;EACvF,SACM;GACJ,EAAQ;GAER,IAAM,EAAE,SAAM,WAAQ,YAAS,eAAYD,EAAO;GAElD,IAAI,CAACG,GAAM;IACT,EAAW,QAAQ;IAEnB;GACF;GAEA,IAAMG,IAAO,IAAIC,EAAY;IAC3B;IACA;IACA;IACA;GACF,CAAC;GAMD,AAJA,EAAW,QAAQD,GACnBA,EAAK,aAAaL,MAAY,KAAA,IAAY,OAAOC,EAAgBD,CAAO,CAAC,GACzE,EAAM,QAAQK,EAAK,MAAM,IAAI,GAC7B,IAAcA,EAAK,MAAM,WAAW,MAAW,EAAM,QAAQE,CAAM,GACnE,IAAOF,EAAK,MAAM;EACpB,GACA,EAAE,WAAW,GAAK,CACpB;CACF,CAAC,GAEDG,EAAeZ,CAAO,GAEf;EAAE;EAAY;CAAM;AAC7B"}
1
+ {"version":3,"file":"use-live-updates.js","names":["useLiveUpdates","poll","usePollComponent","refresh","useRefreshComponents","controller","shallowRef","state","stop","unsubscribe","dispose","onMounted","watch","source","records","shownRecordKeys","live","target","polling","next","LiveUpdates","value","onScopeDispose"],"sources":["../../../src/components/realtime/use-live-updates.ts"],"sourcesContent":["import {\n LiveUpdates,\n shownRecordKeys,\n type LiveUpdatesSchema,\n type LiveUpdatesState,\n type RecordKey,\n} from '@alfakit/core'\nimport { onMounted, onScopeDispose, shallowRef, watch, type ShallowRef } from 'vue'\nimport { usePollComponent, useRefreshComponents } from '../../context'\n\n/**\n * Follow `live()` updates of a table or widget: refresh it in place when its records\n * change, polling instead without Echo. Browser only. Returns the controller and its state\n * (`pending` counts created records for `<LiveRecordsPill>`).\n */\nexport function useLiveUpdates(\n source: () => {\n live: LiveUpdatesSchema | undefined\n target: string\n polling?: boolean\n records?: ReadonlyArray<{ key?: RecordKey }> | null\n },\n): { controller: ShallowRef<LiveUpdates | null>; state: ShallowRef<LiveUpdatesState> } {\n const poll = usePollComponent()\n const refresh = useRefreshComponents()\n const controller = shallowRef<LiveUpdates | null>(null)\n const state = shallowRef<LiveUpdatesState>({ pending: 0, connected: false })\n let stop: (() => void) | null = null\n let unsubscribe: (() => void) | null = null\n\n const dispose = () => {\n stop?.()\n unsubscribe?.()\n stop = null\n unsubscribe = null\n }\n\n onMounted(() => {\n watch(\n () => {\n const { records } = source()\n\n return records\n },\n (records) =>\n controller.value?.setShownKeys(records === undefined ? null : shownRecordKeys(records)),\n { immediate: true },\n )\n\n watch(\n () => {\n const { live, target, polling, records } = source()\n\n return JSON.stringify([live ?? null, target, Boolean(polling), records === undefined])\n },\n () => {\n dispose()\n\n const { live, target, polling, records } = source()\n\n if (!live) {\n controller.value = null\n\n return\n }\n\n const next = new LiveUpdates({\n live,\n target,\n polling,\n poll,\n refresh,\n })\n\n controller.value = next\n next.setShownKeys(records === undefined ? null : shownRecordKeys(records))\n state.value = next.store.get()\n unsubscribe = next.store.subscribe((value) => (state.value = value))\n stop = next.start()\n },\n { immediate: true },\n )\n })\n\n onScopeDispose(dispose)\n\n return { controller, state }\n}\n"],"mappings":";;;;AAeA,SAAgBA,EACd,GAMqF;CACrF,IAAMC,IAAOC,EAAiB,GACxBC,IAAUC,EAAqB,GAC/BC,IAAaC,EAA+B,IAAI,GAChDC,IAAQD,EAA6B;EAAE,SAAS;EAAG,WAAW;CAAM,CAAC,GACvEE,IAA4B,MAC5BC,IAAmC,MAEjCC,UAAgB;EAIpB,AAHAF,IAAO,GACPC,IAAc,GACd,IAAO,MACP,IAAc;CAChB;CAmDA,OAjDAE,QAAgB;EAYd,AAXAC,QACQ;GACJ,IAAM,EAAE,eAAYC,EAAO;GAE3B,OAAOC;EACT,IACC,MACCT,EAAW,OAAO,aAAaS,MAAY,KAAA,IAAY,OAAOC,EAAgBD,CAAO,CAAC,GACxF,EAAE,WAAW,GAAK,CACpB,GAEAF,QACQ;GACJ,IAAM,EAAE,SAAM,WAAQ,YAAS,eAAYC,EAAO;GAElD,OAAO,KAAK,UAAU;IAACG,KAAQ;IAAMC;IAAQ,EAAQC;IAAUJ,MAAY,KAAA;GAAS,CAAC;EACvF,SACM;GACJ,EAAQ;GAER,IAAM,EAAE,SAAM,WAAQ,YAAS,eAAYD,EAAO;GAElD,IAAI,CAACG,GAAM;IACT,EAAW,QAAQ;IAEnB;GACF;GAEA,IAAMG,IAAO,IAAIC,EAAY;IAC3B;IACA;IACA;IACA;IACA;GACF,CAAC;GAMD,AAJA,EAAW,QAAQD,GACnBA,EAAK,aAAaL,MAAY,KAAA,IAAY,OAAOC,EAAgBD,CAAO,CAAC,GACzE,EAAM,QAAQK,EAAK,MAAM,IAAI,GAC7B,IAAcA,EAAK,MAAM,WAAW,MAAW,EAAM,QAAQE,CAAM,GACnE,IAAOF,EAAK,MAAM;EACpB,GACA,EAAE,WAAW,GAAK,CACpB;CACF,CAAC,GAEDG,EAAeZ,CAAO,GAEf;EAAE;EAAY;CAAM;AAC7B"}
@@ -13,7 +13,8 @@ var b = /*@__PURE__*/ m({
13
13
  cell: {},
14
14
  recordKey: {},
15
15
  token: {},
16
- component: {}
16
+ component: {},
17
+ fromRegistry: { type: Boolean }
17
18
  },
18
19
  setup(m) {
19
20
  let b = m, { update: x, saving: S } = c(b), C = _(!!b.cell.state), w = l(() => !!b.cell.disabled || S.value), T = l(() => b.column), E = (e) => {
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanCell.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","Checkbox","_withModifiers","_createElementBlock","_createVNode","Switch","_normalizeClass","_unref","Icon","_createCommentVNode","Icon_default","Checkbox_default","Switch_default","BooleanCell_vue_vue_type_script_setup_true_lang_default","props","__props","useCellUpdate","checked","ref","disabled","computed","saving","toggle","onChange","next","update","openBlock","createBlock","_cache","$event","withModifiers","createElementBlock","createVNode","normalizeClass","unref","cn","colorClass","switchOnColorClasses","switchOffColorClasses","textColorClasses","createCommentVNode"],"sources":["../../../src/components/table/BooleanCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ToggleColumnSchema } from '@alfakit/core'\nimport { computed, ref } from 'vue'\nimport {\n colorClass,\n switchOffColorClasses,\n switchOnColorClasses,\n textColorClasses,\n} from '../../lib/colors'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\nimport Checkbox from '../ui/Checkbox.vue'\nimport Switch from '../ui/Switch.vue'\nimport { useCellUpdate, type CellProps } from './cell-update'\n\nconst props = defineProps<CellProps>()\nconst { update, saving } = useCellUpdate(props)\nconst checked = ref(Boolean(props.cell.state))\nconst disabled = computed(() => Boolean(props.cell.disabled) || saving.value)\nconst toggle = computed(() => props.column as ToggleColumnSchema)\n\nconst onChange = (next: boolean) => {\n checked.value = next\n void update(next)\n}\n</script>\n\n<template>\n <Checkbox\n v-if=\"props.column.type === 'CheckboxColumn'\"\n :model-value=\"checked\"\n :disabled=\"disabled\"\n :aria-label=\"props.column.label || props.column.name\"\n @update:model-value=\"onChange($event === true)\"\n @click.stop\n />\n <span v-else class=\"inline-flex items-center gap-2\" @click.stop>\n <Switch\n :model-value=\"checked\"\n :disabled=\"disabled\"\n :aria-label=\"props.column.label || props.column.name\"\n :class=\"\n cn(\n toggle.onColor && colorClass(switchOnColorClasses, toggle.onColor),\n toggle.offColor && colorClass(switchOffColorClasses, toggle.offColor),\n )\n \"\n @update:model-value=\"onChange\"\n />\n <Icon\n v-if=\"checked ? toggle.onIcon : toggle.offIcon\"\n :name=\"checked ? toggle.onIcon : toggle.offIcon\"\n :class=\"colorClass(textColorClasses, checked ? toggle.onColor : toggle.offColor, 'gray')\"\n />\n </span>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;EAeA,IAAMe,IAAQC,GACR,EAAE,WAAQ,cAAWC,EAAcF,CAAK,GACxCG,IAAUC,EAAI,EAAQJ,EAAM,KAAK,KAAM,GACvCK,IAAWC,QAAe,EAAQN,EAAM,KAAK,YAAaO,EAAO,KAAK,GACtEC,IAASF,QAAeN,EAAM,MAA4B,GAE1DS,KAAY,MAAkB;GAElC,AADA,EAAQ,QAAQC,GAChBC,EAAYD,CAAI;EAClB;mBAKUV,EAAM,OAAO,SAAI,oBADzBf,EAAA,GAAAC,EAOEC,GAAA;;GALC,eAAagB,EAAA;GACb,UAAUE,EAAA;GACV,cAAYL,EAAM,OAAO,SAASA,EAAM,OAAO;GAC/C,uBAAkB,AAAAc,EAAA,QAAA,MAAEL,EAASM,MAAM,EAAA;GACnC,SAAK,AAAAD,EAAA,OAAA1B,QAAN,CAAA,GAAW,CAAA,MAAA,CAAA;;;;;EAEbH,CAAAA,MAAAA,EAAA,GAAAI,EAkBO,QAAA;;GAlBM,OAAM;GAAkC,SAAK,AAAAyB,EAAA,OAAA1B,QAAN,CAAA,GAAW,CAAA,MAAA,CAAA;EAC7DE,GAAAA,CAAAA,EAWEC,GAAA;GAVC,eAAaY,EAAA;GACb,UAAUE,EAAA;GACV,cAAYL,EAAM,OAAO,SAASA,EAAM,OAAO;GAC/C,OAAKR,EAAWC,EAAA4B,CAAA,CAAE,CAAYb,EAAA,MAAO,WAAWf,EAAA6B,CAAA,CAAU,CAAC7B,EAAA8B,CAAA,GAAsBf,EAAA,MAAO,OAAO,GAAaA,EAAA,MAAO,YAAYf,EAAA6B,CAAA,CAAU,CAAC7B,EAAA+B,CAAA,GAAuBhB,EAAA,MAAO,QAAQ,CAAA,CAAA;GAMhL,uBAAoBC;;;;;;EAGf,CAAA,IAAAN,EAAA,QAAUK,EAAA,MAAO,SAASA,EAAA,MAAO,YADzCvB,EAAA,GAAAC,EAIEO,EAAAC,CAAA,GAAA;;GAFC,MAAMS,EAAA,QAAUK,EAAA,MAAO,SAASA,EAAA,MAAO;GACvC,OAAKhB,EAAEC,EAAA6B,CAAA,CAAU,CAAC7B,EAAAgC,CAAA,GAAkBtB,EAAA,QAAUK,EAAA,MAAO,UAAUA,EAAA,MAAO,UAAQ,MAAA,CAAA"}
1
+ {"version":3,"file":"BooleanCell.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createBlock","Checkbox","_withModifiers","_createElementBlock","_createVNode","Switch","_normalizeClass","_unref","Icon","_createCommentVNode","Icon_default","Checkbox_default","Switch_default","BooleanCell_vue_vue_type_script_setup_true_lang_default","props","__props","useCellUpdate","checked","ref","disabled","computed","saving","toggle","onChange","next","update","openBlock","createBlock","_cache","$event","withModifiers","createElementBlock","createVNode","normalizeClass","unref","cn","colorClass","switchOnColorClasses","switchOffColorClasses","textColorClasses","createCommentVNode"],"sources":["../../../src/components/table/BooleanCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ToggleColumnSchema } from '@alfakit/core'\nimport { computed, ref } from 'vue'\nimport {\n colorClass,\n switchOffColorClasses,\n switchOnColorClasses,\n textColorClasses,\n} from '../../lib/colors'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\nimport Checkbox from '../ui/Checkbox.vue'\nimport Switch from '../ui/Switch.vue'\nimport { useCellUpdate, type CellProps } from './cell-update'\n\nconst props = defineProps<CellProps>()\nconst { update, saving } = useCellUpdate(props)\nconst checked = ref(Boolean(props.cell.state))\nconst disabled = computed(() => Boolean(props.cell.disabled) || saving.value)\nconst toggle = computed(() => props.column as ToggleColumnSchema)\n\nconst onChange = (next: boolean) => {\n checked.value = next\n void update(next)\n}\n</script>\n\n<template>\n <Checkbox\n v-if=\"props.column.type === 'CheckboxColumn'\"\n :model-value=\"checked\"\n :disabled=\"disabled\"\n :aria-label=\"props.column.label || props.column.name\"\n @update:model-value=\"onChange($event === true)\"\n @click.stop\n />\n <span v-else class=\"inline-flex items-center gap-2\" @click.stop>\n <Switch\n :model-value=\"checked\"\n :disabled=\"disabled\"\n :aria-label=\"props.column.label || props.column.name\"\n :class=\"\n cn(\n toggle.onColor && colorClass(switchOnColorClasses, toggle.onColor),\n toggle.offColor && colorClass(switchOffColorClasses, toggle.offColor),\n )\n \"\n @update:model-value=\"onChange\"\n />\n <Icon\n v-if=\"checked ? toggle.onIcon : toggle.offIcon\"\n :name=\"checked ? toggle.onIcon : toggle.offIcon\"\n :class=\"colorClass(textColorClasses, checked ? toggle.onColor : toggle.offColor, 'gray')\"\n />\n </span>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;EAeA,IAAMe,IAAQC,GACR,EAAE,WAAQ,cAAWC,EAAcF,CAAK,GACxCG,IAAUC,EAAI,EAAQJ,EAAM,KAAK,KAAM,GACvCK,IAAWC,QAAe,EAAQN,EAAM,KAAK,YAAaO,EAAO,KAAK,GACtEC,IAASF,QAAeN,EAAM,MAA4B,GAE1DS,KAAY,MAAkB;GAElC,AADA,EAAQ,QAAQC,GAChBC,EAAYD,CAAI;EAClB;mBAKUV,EAAM,OAAO,SAAI,oBADzBf,EAAA,GAAAC,EAOEC,GAAA;;GALC,eAAagB,EAAA;GACb,UAAUE,EAAA;GACV,cAAYL,EAAM,OAAO,SAASA,EAAM,OAAO;GAC/C,uBAAkB,AAAAc,EAAA,QAAA,MAAEL,EAASM,MAAM,EAAA;GACnC,SAAK,AAAAD,EAAA,OAAA1B,QAAN,CAAA,GAAW,CAAA,MAAA,CAAA;;;;;EAEbH,CAAAA,MAAAA,EAAA,GAAAI,EAkBO,QAAA;;GAlBM,OAAM;GAAkC,SAAK,AAAAyB,EAAA,OAAA1B,QAAN,CAAA,GAAW,CAAA,MAAA,CAAA;EAC7DE,GAAAA,CAAAA,EAWEC,GAAA;GAVC,eAAaY,EAAA;GACb,UAAUE,EAAA;GACV,cAAYL,EAAM,OAAO,SAASA,EAAM,OAAO;GAC/C,OAAKR,EAAWC,EAAA4B,CAAA,CAAE,CAAYb,EAAA,MAAO,WAAWf,EAAA6B,CAAA,CAAU,CAAC7B,EAAA8B,CAAA,GAAsBf,EAAA,MAAO,OAAO,GAAaA,EAAA,MAAO,YAAYf,EAAA6B,CAAA,CAAU,CAAC7B,EAAA+B,CAAA,GAAuBhB,EAAA,MAAO,QAAQ,CAAA,CAAA;GAMhL,uBAAoBC;;;;;;EAGf,CAAA,IAAAN,EAAA,QAAUK,EAAA,MAAO,SAASA,EAAA,MAAO,YADzCvB,EAAA,GAAAC,EAIEO,EAAAC,CAAA,GAAA;;GAFC,MAAMS,EAAA,QAAUK,EAAA,MAAO,SAASA,EAAA,MAAO;GACvC,OAAKhB,EAAEC,EAAA6B,CAAA,CAAU,CAAC7B,EAAAgC,CAAA,GAAkBtB,EAAA,QAAUK,EAAA,MAAO,UAAUA,EAAA,MAAO,UAAQ,MAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnHeader.js","names":["_sfc_main","ColumnHeader_vue_vue_type_script_setup_true_lang_default","ColumnHeader_default"],"sources":["../../../src/components/table/ColumnHeader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ColumnSchema, TableSchema } from '@alfakit/core'\nimport { ariaSort, columnVisibilityClasses, visitTable } from '@alfakit/core'\nimport { ArrowDownIcon, ArrowUpDownIcon, ArrowUpIcon } from '@lucide/vue'\nimport { createReusableTemplate } from '@vueuse/core'\nimport { ref } from 'vue'\nimport { useT } from '../../context'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\nimport Slot from '../panel/Slot.vue'\nimport Input from '../ui/Input.vue'\nimport Spinner from '../ui/Spinner.vue'\nimport TableHead from '../ui/TableHead.vue'\n\nconst ALIGN: Record<string, string> = {\n start: 'text-start',\n center: 'text-center',\n end: 'text-end',\n between: 'text-start',\n justify: 'text-justify',\n}\n\n/** A column's header cell: label, sort button and individual search input. */\nconst props = defineProps<{\n table: TableSchema\n column: ColumnSchema\n rowSpan?: number\n /** The table's component key (`relationManager:<class>`, `widget:<id>`), for slots. */\n component?: string | null\n}>()\nconst t = useT()\nconst [DefineLabel, ColumnHeaderLabel] = createReusableTemplate()\n\n// A spinner replaces the sort icon until the sorted records arrive.\nconst sorting = ref(false)\n\nconst sort = () => {\n const direction =\n props.table.sort?.column === props.column.name && props.table.sort.direction === 'asc'\n ? 'desc'\n : 'asc'\n sorting.value = true\n visitTable(props.table.identifier, { sort: props.column.name, direction }, ['page'], {\n onFinish: () => {\n sorting.value = false\n },\n })\n}\n\nconst columnSearch = (event: Event) => {\n visitTable(\n props.table.identifier,\n {\n columnSearch: {\n ...(props.table.columnSearches ?? {}),\n [props.column.name]: (event.target as HTMLInputElement).value,\n },\n },\n ['page'],\n )\n}\n</script>\n\n<template>\n <DefineLabel>\n <button\n v-if=\"props.column.sortable\"\n type=\"button\"\n class=\"hover:text-foreground inline-flex items-center gap-1\"\n :aria-busy=\"sorting || undefined\"\n @click=\"sort\"\n >\n {{ props.column.label }}\n <Spinner v-if=\"sorting\" data-slot=\"table-sort-spinner\" class=\"size-3.5\" />\n <template v-else-if=\"props.table.sort?.column === props.column.name\">\n <Icon\n v-if=\"props.table.sort?.direction === 'asc'\"\n name=\"alfakit::tables.header-cell.sort-asc-button\"\n :fallback=\"ArrowUpIcon\"\n class=\"size-3.5\"\n aria-hidden=\"true\"\n />\n <Icon\n v-else\n name=\"alfakit::tables.header-cell.sort-desc-button\"\n :fallback=\"ArrowDownIcon\"\n class=\"size-3.5\"\n aria-hidden=\"true\"\n />\n </template>\n <Icon\n v-else\n name=\"alfakit::tables.header-cell.sort-button\"\n :fallback=\"ArrowUpDownIcon\"\n class=\"size-3.5 opacity-40\"\n aria-hidden=\"true\"\n />\n </button>\n <template v-else>{{ props.column.label }}</template>\n </DefineLabel>\n <TableHead\n :rowspan=\"props.rowSpan\"\n :class=\"\n cn(\n ALIGN[props.column.alignment ?? 'start'],\n props.column.wrapHeader ? 'whitespace-normal' : undefined,\n props.column.grow === false && 'w-0',\n columnVisibilityClasses(props.column),\n )\n \"\n :style=\"props.column.width ? { width: props.column.width } : undefined\"\n :aria-sort=\"\n props.column.sortable\n ? ariaSort(props.column.name, props.table.sort?.column, props.table.sort?.direction)\n : undefined\n \"\n v-bind=\"props.column.extraHeaderAttributes\"\n >\n <div class=\"flex flex-col gap-1\">\n <span\n v-if=\"props.column.headerTooltip\"\n :title=\"props.column.headerTooltip\"\n data-slot=\"header-tooltip\"\n >\n <ColumnHeaderLabel />\n <span class=\"sr-only\"> ({{ props.column.headerTooltip }})</span>\n </span>\n <ColumnHeaderLabel v-else />\n <Slot\n name=\"table.header-cell\"\n :scope=\"props.component\"\n :data=\"{ column: props.column.name }\"\n />\n <Input\n v-if=\"props.column.searchable\"\n type=\"search\"\n :model-value=\"props.table.columnSearches?.[props.column.name] ?? ''\"\n :placeholder=\"t('search', {}, 'Search')\"\n :aria-label=\"`${t('search', {}, 'Search')} ${props.column.label}`\"\n class=\"h-7 text-xs font-normal\"\n @keydown.enter=\"columnSearch\"\n />\n </div>\n </TableHead>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ColumnHeader.js","names":["_sfc_main","ColumnHeader_vue_vue_type_script_setup_true_lang_default","ColumnHeader_default"],"sources":["../../../src/components/table/ColumnHeader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ColumnSchema, TableSchema } from '@alfakit/core'\nimport { ariaSort, columnVisibilityClasses, debounce, visitTable } from '@alfakit/core'\nimport { ArrowDownIcon, ArrowUpDownIcon, ArrowUpIcon } from '@lucide/vue'\nimport { createReusableTemplate } from '@vueuse/core'\nimport { onBeforeUnmount, ref } from 'vue'\nimport { useT } from '../../context'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\nimport Slot from '../panel/Slot.vue'\nimport Input from '../ui/Input.vue'\nimport Spinner from '../ui/Spinner.vue'\nimport TableHead from '../ui/TableHead.vue'\n\nconst ALIGN: Record<string, string> = {\n start: 'text-start',\n center: 'text-center',\n end: 'text-end',\n between: 'text-start',\n justify: 'text-justify',\n}\n\n/** A column's header cell: label, sort button and individual search input. */\nconst props = defineProps<{\n table: TableSchema\n column: ColumnSchema\n rowSpan?: number\n /** The table's component key (`relationManager:<class>`, `widget:<id>`), for slots. */\n component?: string | null\n}>()\nconst t = useT()\nconst [DefineLabel, ColumnHeaderLabel] = createReusableTemplate()\n\n// A spinner replaces the sort icon until the sorted records arrive.\nconst sorting = ref(false)\n\nconst sort = () => {\n const direction =\n props.table.sort?.column === props.column.name && props.table.sort.direction === 'asc'\n ? 'desc'\n : 'asc'\n sorting.value = true\n visitTable(props.table.identifier, { sort: props.column.name, direction }, ['page'], {\n onFinish: () => {\n sorting.value = false\n },\n })\n}\n\n// The column search applies after the same pause as the table search; Enter applies at once.\nconst pushColumnSearch = debounce(\n (value: string) =>\n visitTable(\n props.table.identifier,\n { columnSearch: { ...(props.table.columnSearches ?? {}), [props.column.name]: value } },\n ['page'],\n ),\n props.table.searchDebounce,\n)\n\nonBeforeUnmount(() => pushColumnSearch.cancel())\n\nconst onColumnSearchInput = (value: string) => {\n if (!props.table.searchOnBlur) pushColumnSearch(value)\n}\n\nconst columnSearch = (event: Event) => {\n pushColumnSearch((event.target as HTMLInputElement).value)\n pushColumnSearch.flush()\n}\n</script>\n\n<template>\n <DefineLabel>\n <button\n v-if=\"props.column.sortable\"\n type=\"button\"\n class=\"hover:text-foreground inline-flex items-center gap-1\"\n :aria-busy=\"sorting || undefined\"\n @click=\"sort\"\n >\n {{ props.column.label }}\n <Spinner v-if=\"sorting\" data-slot=\"table-sort-spinner\" class=\"size-3.5\" />\n <template v-else-if=\"props.table.sort?.column === props.column.name\">\n <Icon\n v-if=\"props.table.sort?.direction === 'asc'\"\n name=\"alfakit::tables.header-cell.sort-asc-button\"\n :fallback=\"ArrowUpIcon\"\n class=\"size-3.5\"\n aria-hidden=\"true\"\n />\n <Icon\n v-else\n name=\"alfakit::tables.header-cell.sort-desc-button\"\n :fallback=\"ArrowDownIcon\"\n class=\"size-3.5\"\n aria-hidden=\"true\"\n />\n </template>\n <Icon\n v-else\n name=\"alfakit::tables.header-cell.sort-button\"\n :fallback=\"ArrowUpDownIcon\"\n class=\"size-3.5 opacity-40\"\n aria-hidden=\"true\"\n />\n </button>\n <template v-else>{{ props.column.label }}</template>\n </DefineLabel>\n <TableHead\n :rowspan=\"props.rowSpan\"\n :class=\"\n cn(\n ALIGN[props.column.alignment ?? 'start'],\n props.column.wrapHeader ? 'whitespace-normal' : undefined,\n props.column.grow === false && 'w-0',\n columnVisibilityClasses(props.column),\n )\n \"\n :style=\"props.column.width ? { width: props.column.width } : undefined\"\n :aria-sort=\"\n props.column.sortable\n ? ariaSort(props.column.name, props.table.sort?.column, props.table.sort?.direction)\n : undefined\n \"\n v-bind=\"props.column.extraHeaderAttributes\"\n >\n <div class=\"flex flex-col gap-1\">\n <span\n v-if=\"props.column.headerTooltip\"\n :title=\"props.column.headerTooltip\"\n data-slot=\"header-tooltip\"\n >\n <ColumnHeaderLabel />\n <span class=\"sr-only\"> ({{ props.column.headerTooltip }})</span>\n </span>\n <ColumnHeaderLabel v-else />\n <Slot\n name=\"table.header-cell\"\n :scope=\"props.component\"\n :data=\"{ column: props.column.name }\"\n />\n <Input\n v-if=\"props.column.searchable\"\n type=\"search\"\n :model-value=\"props.table.columnSearches?.[props.column.name] ?? ''\"\n :placeholder=\"t('search', {}, 'Search')\"\n :aria-label=\"`${t('search', {}, 'Search')} ${props.column.label}`\"\n class=\"h-7 text-xs font-normal\"\n @update:model-value=\"onColumnSearchInput\"\n @blur=\"props.table.searchOnBlur && columnSearch($event)\"\n @keydown.enter=\"columnSearch\"\n />\n </div>\n </TableHead>\n</template>\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnHeader.vue.d.ts","sourceRoot":"","sources":["../../../src/components/table/ColumnHeader.vue"],"names":[],"mappings":"AAmJA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAqB9D,8EAA8E;AAC9E,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,YAAY,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B,CAAC;;AA+RF,wBAMG"}
1
+ {"version":3,"file":"ColumnHeader.vue.d.ts","sourceRoot":"","sources":["../../../src/components/table/ColumnHeader.vue"],"names":[],"mappings":"AA8JA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAqB9D,8EAA8E;AAC9E,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,WAAW,CAAA;IAClB,MAAM,EAAE,YAAY,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B,CAAC;;AAoTF,wBAMG"}