@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":"ModalTablePicker.js","names":["_sfc_main","ModalTablePicker_vue_vue_type_script_setup_true_lang_default","ModalTablePicker_default"],"sources":["../../../src/components/fields/ModalTablePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ModalTableSelectResponse, ModalTableSelectSchema, TableQuery } from '@alfakit/core'\nimport {\n FILTERS_MODAL_WIDTH_CLASSES,\n debounce,\n modalTablePaging,\n toggleModalTableKey,\n} from '@alfakit/core'\nimport {\n ArrowDownIcon,\n ArrowUpDownIcon,\n ArrowUpIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n SearchIcon,\n} from '@lucide/vue'\nimport { computed, onScopeDispose, ref, watch } from 'vue'\nimport { useChoice, useT } from '../../context'\nimport { cn } from '../../lib/utils'\nimport { useFormStore } from '../form/form-context'\nimport TableCellContent from '../table/TableCellContent.vue'\nimport Button from '../ui/Button.vue'\nimport Checkbox from '../ui/Checkbox.vue'\nimport Dialog from '../ui/Dialog.vue'\nimport DialogContent from '../ui/DialogContent.vue'\nimport DialogDescription from '../ui/DialogDescription.vue'\nimport DialogFooter from '../ui/DialogFooter.vue'\nimport DialogHeader from '../ui/DialogHeader.vue'\nimport DialogTitle from '../ui/DialogTitle.vue'\nimport Input from '../ui/Input.vue'\nimport Skeleton from '../ui/Skeleton.vue'\nimport Table from '../ui/Table.vue'\nimport TableBody from '../ui/TableBody.vue'\nimport TableCell from '../ui/TableCell.vue'\nimport TableHead from '../ui/TableHead.vue'\nimport TableHeader from '../ui/TableHeader.vue'\nimport TableRow from '../ui/TableRow.vue'\nimport ModalTablePickerFilters from './ModalTablePickerFilters.vue'\n\nconst props = defineProps<{ component: ModalTableSelectSchema; initial: string[] }>()\nconst emit = defineEmits<{\n close: []\n confirm: [keys: string[], labels: Record<string, string>]\n}>()\nconst t = useT()\nconst choice = useChoice()\nconst form = useFormStore()\nconst multiple = computed(() => Boolean(props.component.multiple))\nconst query = ref<TableQuery>({})\nconst response = ref<ModalTableSelectResponse | null>(null)\nconst failed = ref(false)\nconst loading = ref(true)\nconst draft = ref<string[]>([...props.initial])\nconst labels = ref<Record<string, string>>({})\nconst search = ref('')\nlet controller: AbortController | null = null\n\nconst load = () => {\n controller?.abort()\n const current = new AbortController()\n controller = current\n loading.value = true\n\n form\n .modalTable(\n props.component.statePath,\n props.component.tableStateIdentifier,\n query.value,\n current.signal,\n )\n .then((next) => {\n if (!next) return\n response.value = next\n labels.value = { ...labels.value, ...next.labels }\n failed.value = false\n })\n .catch((error: unknown) => {\n if ((error as { name?: string }).name !== 'AbortError') failed.value = true\n })\n .finally(() => {\n if (!current.signal.aborted) loading.value = false\n })\n}\n\nwatch(query, load, { immediate: true, deep: true })\nonScopeDispose(() => controller?.abort())\n\nconst table = computed(() => response.value?.table)\nconst pushSearch = debounce((next: string) => {\n query.value = { ...query.value, search: next || null, page: null }\n}, 400)\nonScopeDispose(() => pushSearch.cancel())\n\nconst columns = computed(() =>\n table.value\n ? table.value.columns.filter((column) => table.value!.visibleColumns.includes(column.name))\n : [],\n)\nconst records = computed(() => table.value?.records ?? [])\nconst paging = computed(() => modalTablePaging(table.value?.pagination))\nconst atMax = computed(\n () =>\n multiple.value &&\n props.component.maxItems != null &&\n draft.value.length >= props.component.maxItems,\n)\nconst hasToolbar = computed(\n () => Boolean(table.value?.searchable) || (table.value?.filters?.length ?? 0) > 0,\n)\n\nconst toggle = (key: string) => {\n draft.value = toggleModalTableKey(draft.value, key, multiple.value, props.component.maxItems)\n}\nconst isSelectable = (key: string, selectable: boolean | undefined) =>\n selectable === true && (draft.value.includes(key) || !atMax.value)\nconst sort = (column: string) => {\n const direction =\n table.value?.sort?.column === column && table.value.sort.direction === 'asc' ? 'desc' : 'asc'\n query.value = { ...query.value, sort: column, direction, page: null }\n}\nconst ariaSortOf = (column: string) =>\n table.value?.sort?.column === column\n ? table.value.sort.direction === 'asc'\n ? 'ascending'\n : 'descending'\n : undefined\nconst goTo = (page: number) => {\n query.value = { ...query.value, page }\n}\nconst confirm = () =>\n emit(\n 'confirm',\n draft.value,\n Object.fromEntries(\n draft.value.filter((key) => labels.value[key]).map((key) => [key, labels.value[key]!]),\n ),\n )\n</script>\n\n<template>\n <Dialog :open=\"true\" @update:open=\"(open) => !open && emit('close')\">\n <DialogContent\n :class=\"\n cn(\n 'flex max-h-[90vh] flex-col gap-4',\n FILTERS_MODAL_WIDTH_CLASSES[props.component.modalWidth ?? '3xl'] ?? 'sm:max-w-3xl',\n )\n \"\n data-slot=\"modal-table-select-dialog\"\n >\n <DialogHeader>\n <DialogTitle>{{ props.component.modalHeading }}</DialogTitle>\n <!-- Escaped on the server (`Html::from()`), like action modal descriptions. -->\n <p\n v-if=\"props.component.modalDescription\"\n class=\"text-muted-foreground text-sm\"\n data-slot=\"modal-table-select-description\"\n v-html=\"props.component.modalDescription\"\n />\n <DialogDescription aria-live=\"polite\">{{\n choice('table.selected', draft.length, { count: draft.length }, ':count selected')\n }}</DialogDescription>\n </DialogHeader>\n <div v-if=\"table && hasToolbar\" class=\"flex flex-col gap-3\">\n <div v-if=\"table.searchable\" class=\"relative\">\n <SearchIcon\n class=\"text-muted-foreground pointer-events-none absolute start-2.5 top-1/2 size-4 -translate-y-1/2\"\n />\n <Input\n type=\"search\"\n :model-value=\"search\"\n :aria-label=\"table.searchPlaceholder\"\n :placeholder=\"table.searchPlaceholder\"\n class=\"ps-8\"\n @update:model-value=\"\n (next) => {\n search = String(next)\n pushSearch(String(next))\n }\n \"\n />\n </div>\n <ModalTablePickerFilters\n v-if=\"(table.filters?.length ?? 0) > 0\"\n :table=\"table\"\n :owner=\"form\"\n :path=\"props.component.statePath\"\n @change=\"(filters) => (query = { ...query, filters, page: null })\"\n />\n </div>\n <div class=\"min-h-0 flex-1 overflow-auto rounded-md border\" :aria-busy=\"loading\">\n <p v-if=\"failed\" role=\"alert\" class=\"text-destructive p-6 text-center text-sm\">\n {{ t('table_select.load_failed', {}, \"Couldn't load the records.\") }}\n </p>\n <div v-else-if=\"!table\" class=\"flex flex-col gap-2 p-4\" aria-hidden=\"true\">\n <Skeleton class=\"h-8 w-full\" />\n <Skeleton class=\"h-8 w-full\" />\n <Skeleton class=\"h-8 w-full\" />\n </div>\n <p v-else-if=\"records.length === 0\" class=\"text-muted-foreground p-6 text-center text-sm\">\n {{ table.emptyState.heading }}\n </p>\n <Table v-else :class=\"cn(loading && 'opacity-60')\">\n <TableHeader>\n <TableRow>\n <TableHead class=\"w-10\"\n ><span class=\"sr-only\">{{\n t('table.select_row', {}, 'Select row')\n }}</span></TableHead\n >\n <TableHead\n v-for=\"column in columns\"\n :key=\"column.name\"\n :aria-sort=\"ariaSortOf(column.name)\"\n >\n <button\n v-if=\"column.sortable\"\n type=\"button\"\n class=\"inline-flex items-center gap-1\"\n @click=\"sort(column.name)\"\n >\n {{ column.label }}\n <template v-if=\"table.sort?.column === column.name\">\n <ArrowUpIcon v-if=\"table.sort.direction === 'asc'\" class=\"size-3.5\" />\n <ArrowDownIcon v-else class=\"size-3.5\" />\n </template>\n <ArrowUpDownIcon v-else class=\"text-muted-foreground size-3.5\" />\n </button>\n <template v-else>{{ column.label }}</template>\n </TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n <TableRow\n v-for=\"record in records\"\n :key=\"String(record.key)\"\n :data-state=\"draft.includes(String(record.key)) ? 'selected' : undefined\"\n :class=\"cn(isSelectable(String(record.key), record.selectable) && 'cursor-pointer')\"\n @click=\"\n isSelectable(String(record.key), record.selectable) && toggle(String(record.key))\n \"\n >\n <TableCell class=\"w-10\" @click.stop>\n <Checkbox\n v-if=\"multiple\"\n :model-value=\"draft.includes(String(record.key))\"\n :disabled=\"!isSelectable(String(record.key), record.selectable)\"\n :aria-label=\"\n t(\n 'table_select.select_record',\n { label: labels[String(record.key)] ?? String(record.key) },\n 'Select :label',\n )\n \"\n @update:model-value=\"toggle(String(record.key))\"\n />\n <input\n v-else\n type=\"radio\"\n :name=\"`${props.component.statePath}-picker`\"\n class=\"accent-primary size-4\"\n :checked=\"draft.includes(String(record.key))\"\n :disabled=\"!isSelectable(String(record.key), record.selectable)\"\n :aria-label=\"\n t(\n 'table_select.select_record',\n { label: labels[String(record.key)] ?? String(record.key) },\n 'Select :label',\n )\n \"\n @change=\"toggle(String(record.key))\"\n />\n </TableCell>\n <TableCell v-for=\"column in columns\" :key=\"column.name\">\n <TableCellContent\n v-if=\"record.cells[column.name]\"\n :column=\"column\"\n :cell=\"record.cells[column.name]!\"\n :record-key=\"record.key\"\n token=\"\"\n :component=\"`picker:${props.component.statePath}`\"\n />\n </TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </div>\n <p v-if=\"atMax\" class=\"text-muted-foreground text-sm\" role=\"status\">\n {{\n choice(\n 'table_select.max_reached',\n props.component.maxItems ?? 0,\n { count: props.component.maxItems ?? 0 },\n 'You can select up to :count records.',\n )\n }}\n </p>\n <DialogFooter class=\"items-center sm:justify-between\">\n <nav\n v-if=\"paging\"\n class=\"flex items-center gap-2\"\n :aria-label=\"t('pagination', {}, 'Pagination')\"\n >\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon-sm\"\n :disabled=\"!paging.hasPrevious || loading\"\n :aria-label=\"t('table.previous', {}, 'Previous')\"\n @click=\"goTo(paging.page - 1)\"\n ><ChevronLeftIcon class=\"rtl:rotate-180\"\n /></Button>\n <span class=\"text-muted-foreground text-sm\">{{\n paging.total !== undefined\n ? t(\n 'table.showing',\n { first: paging.from, last: paging.to, total: paging.total },\n 'Showing :first–:last of :total',\n )\n : `${paging.from}–${paging.to}`\n }}</span>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon-sm\"\n :disabled=\"!paging.hasNext || loading\"\n :aria-label=\"t('table.next', {}, 'Next')\"\n @click=\"goTo(paging.page + 1)\"\n ><ChevronRightIcon class=\"rtl:rotate-180\"\n /></Button>\n </nav>\n <span v-else />\n <div class=\"flex gap-2\">\n <Button v-if=\"draft.length > 0\" type=\"button\" variant=\"ghost\" @click=\"draft = []\">{{\n t('table_select.clear', {}, 'Clear selection')\n }}</Button>\n <Button type=\"button\" variant=\"outline\" @click=\"emit('close')\">{{\n t('cancel', {}, 'Cancel')\n }}</Button>\n <Button type=\"button\" @click=\"confirm\">{{\n props.component.modalSubmitActionLabel ?? t('table_select.confirm', {}, 'Select')\n }}</Button>\n </div>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ModalTablePicker.js","names":["_sfc_main","ModalTablePicker_vue_vue_type_script_setup_true_lang_default","ModalTablePicker_default"],"sources":["../../../src/components/fields/ModalTablePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ModalTableSelectResponse, ModalTableSelectSchema, TableQuery } from '@alfakit/core'\nimport {\n FILTERS_MODAL_WIDTH_CLASSES,\n debounce,\n modalTablePaging,\n toggleModalTableKey,\n} from '@alfakit/core'\nimport {\n ArrowDownIcon,\n ArrowUpDownIcon,\n ArrowUpIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n SearchIcon,\n} from '@lucide/vue'\nimport { computed, onScopeDispose, ref, watch } from 'vue'\nimport { useChoice, useFormatter, useT } from '../../context'\nimport { cn } from '../../lib/utils'\nimport { useFormStore } from '../form/form-context'\nimport TableCellContent from '../table/TableCellContent.vue'\nimport Button from '../ui/Button.vue'\nimport Checkbox from '../ui/Checkbox.vue'\nimport Dialog from '../ui/Dialog.vue'\nimport DialogContent from '../ui/DialogContent.vue'\nimport DialogDescription from '../ui/DialogDescription.vue'\nimport DialogFooter from '../ui/DialogFooter.vue'\nimport DialogHeader from '../ui/DialogHeader.vue'\nimport DialogTitle from '../ui/DialogTitle.vue'\nimport Input from '../ui/Input.vue'\nimport Skeleton from '../ui/Skeleton.vue'\nimport Table from '../ui/Table.vue'\nimport TableBody from '../ui/TableBody.vue'\nimport TableCell from '../ui/TableCell.vue'\nimport TableHead from '../ui/TableHead.vue'\nimport TableHeader from '../ui/TableHeader.vue'\nimport TableRow from '../ui/TableRow.vue'\nimport ModalTablePickerFilters from './ModalTablePickerFilters.vue'\n\nconst props = defineProps<{ component: ModalTableSelectSchema; initial: string[] }>()\nconst emit = defineEmits<{\n close: []\n confirm: [keys: string[], labels: Record<string, string>]\n}>()\nconst t = useT()\nconst format = useFormatter()\nconst choice = useChoice()\nconst form = useFormStore()\nconst multiple = computed(() => Boolean(props.component.multiple))\nconst query = ref<TableQuery>({})\nconst response = ref<ModalTableSelectResponse | null>(null)\nconst failed = ref(false)\nconst loading = ref(true)\nconst draft = ref<string[]>([...props.initial])\nconst labels = ref<Record<string, string>>({})\nconst search = ref('')\nlet controller: AbortController | null = null\n\nconst load = () => {\n controller?.abort()\n const current = new AbortController()\n controller = current\n loading.value = true\n\n form\n .modalTable(\n props.component.statePath,\n props.component.tableStateIdentifier,\n query.value,\n current.signal,\n )\n .then((next) => {\n if (!next) return\n response.value = next\n labels.value = { ...labels.value, ...next.labels }\n failed.value = false\n })\n .catch((error: unknown) => {\n if ((error as { name?: string }).name !== 'AbortError') failed.value = true\n })\n .finally(() => {\n if (!current.signal.aborted) loading.value = false\n })\n}\n\nwatch(query, load, { immediate: true, deep: true })\nonScopeDispose(() => controller?.abort())\n\nconst table = computed(() => response.value?.table)\nconst pushSearch = debounce((next: string) => {\n query.value = { ...query.value, search: next || null, page: null }\n}, 400)\nonScopeDispose(() => pushSearch.cancel())\n\nconst columns = computed(() =>\n table.value\n ? table.value.columns.filter((column) => table.value!.visibleColumns.includes(column.name))\n : [],\n)\nconst records = computed(() => table.value?.records ?? [])\nconst paging = computed(() => modalTablePaging(table.value?.pagination))\nconst atMax = computed(\n () =>\n multiple.value &&\n props.component.maxItems != null &&\n draft.value.length >= props.component.maxItems,\n)\nconst hasToolbar = computed(\n () => Boolean(table.value?.searchable) || (table.value?.filters?.length ?? 0) > 0,\n)\n\nconst toggle = (key: string) => {\n draft.value = toggleModalTableKey(draft.value, key, multiple.value, props.component.maxItems)\n}\nconst isSelectable = (key: string, selectable: boolean | undefined) =>\n selectable === true && (draft.value.includes(key) || !atMax.value)\nconst sort = (column: string) => {\n const direction =\n table.value?.sort?.column === column && table.value.sort.direction === 'asc' ? 'desc' : 'asc'\n query.value = { ...query.value, sort: column, direction, page: null }\n}\nconst ariaSortOf = (column: string) =>\n table.value?.sort?.column === column\n ? table.value.sort.direction === 'asc'\n ? 'ascending'\n : 'descending'\n : undefined\nconst goTo = (page: number) => {\n query.value = { ...query.value, page }\n}\nconst confirm = () =>\n emit(\n 'confirm',\n draft.value,\n Object.fromEntries(\n draft.value.filter((key) => labels.value[key]).map((key) => [key, labels.value[key]!]),\n ),\n )\n</script>\n\n<template>\n <Dialog :open=\"true\" @update:open=\"(open) => !open && emit('close')\">\n <DialogContent\n :class=\"\n cn(\n 'flex max-h-[90vh] flex-col gap-4',\n FILTERS_MODAL_WIDTH_CLASSES[props.component.modalWidth ?? '3xl'] ?? 'sm:max-w-3xl',\n )\n \"\n data-slot=\"modal-table-select-dialog\"\n >\n <DialogHeader>\n <DialogTitle>{{ props.component.modalHeading }}</DialogTitle>\n <!-- Escaped on the server (`Html::from()`), like action modal descriptions. -->\n <p\n v-if=\"props.component.modalDescription\"\n class=\"text-muted-foreground text-sm\"\n data-slot=\"modal-table-select-description\"\n v-html=\"props.component.modalDescription\"\n />\n <DialogDescription aria-live=\"polite\">{{\n choice('table.selected', draft.length, { count: draft.length }, ':count selected')\n }}</DialogDescription>\n </DialogHeader>\n <div v-if=\"table && hasToolbar\" class=\"flex flex-col gap-3\">\n <div v-if=\"table.searchable\" class=\"relative\">\n <SearchIcon\n class=\"text-muted-foreground pointer-events-none absolute start-2.5 top-1/2 size-4 -translate-y-1/2\"\n />\n <Input\n type=\"search\"\n :model-value=\"search\"\n :aria-label=\"table.searchPlaceholder\"\n :placeholder=\"table.searchPlaceholder\"\n class=\"ps-8\"\n @update:model-value=\"\n (next) => {\n search = String(next)\n pushSearch(String(next))\n }\n \"\n />\n </div>\n <ModalTablePickerFilters\n v-if=\"(table.filters?.length ?? 0) > 0\"\n :table=\"table\"\n :owner=\"form\"\n :path=\"props.component.statePath\"\n @change=\"(filters) => (query = { ...query, filters, page: null })\"\n />\n </div>\n <div class=\"min-h-0 flex-1 overflow-auto rounded-md border\" :aria-busy=\"loading\">\n <p v-if=\"failed\" role=\"alert\" class=\"text-destructive p-6 text-center text-sm\">\n {{ t('table_select.load_failed', {}, \"Couldn't load the records.\") }}\n </p>\n <div v-else-if=\"!table\" class=\"flex flex-col gap-2 p-4\" aria-hidden=\"true\">\n <Skeleton class=\"h-8 w-full\" />\n <Skeleton class=\"h-8 w-full\" />\n <Skeleton class=\"h-8 w-full\" />\n </div>\n <p v-else-if=\"records.length === 0\" class=\"text-muted-foreground p-6 text-center text-sm\">\n {{ table.emptyState.heading }}\n </p>\n <Table v-else :class=\"cn(loading && 'opacity-60')\">\n <TableHeader>\n <TableRow>\n <TableHead class=\"w-10\"\n ><span class=\"sr-only\">{{\n t('table.select_row', {}, 'Select row')\n }}</span></TableHead\n >\n <TableHead\n v-for=\"column in columns\"\n :key=\"column.name\"\n :aria-sort=\"ariaSortOf(column.name)\"\n >\n <button\n v-if=\"column.sortable\"\n type=\"button\"\n class=\"inline-flex items-center gap-1\"\n @click=\"sort(column.name)\"\n >\n {{ column.label }}\n <template v-if=\"table.sort?.column === column.name\">\n <ArrowUpIcon v-if=\"table.sort.direction === 'asc'\" class=\"size-3.5\" />\n <ArrowDownIcon v-else class=\"size-3.5\" />\n </template>\n <ArrowUpDownIcon v-else class=\"text-muted-foreground size-3.5\" />\n </button>\n <template v-else>{{ column.label }}</template>\n </TableHead>\n </TableRow>\n </TableHeader>\n <TableBody>\n <TableRow\n v-for=\"record in records\"\n :key=\"String(record.key)\"\n :data-state=\"draft.includes(String(record.key)) ? 'selected' : undefined\"\n :class=\"cn(isSelectable(String(record.key), record.selectable) && 'cursor-pointer')\"\n @click=\"\n isSelectable(String(record.key), record.selectable) && toggle(String(record.key))\n \"\n >\n <TableCell class=\"w-10\" @click.stop>\n <Checkbox\n v-if=\"multiple\"\n :model-value=\"draft.includes(String(record.key))\"\n :disabled=\"!isSelectable(String(record.key), record.selectable)\"\n :aria-label=\"\n t(\n 'table_select.select_record',\n { label: labels[String(record.key)] ?? String(record.key) },\n 'Select :label',\n )\n \"\n @update:model-value=\"toggle(String(record.key))\"\n />\n <input\n v-else\n type=\"radio\"\n :name=\"`${props.component.statePath}-picker`\"\n class=\"accent-primary size-4\"\n :checked=\"draft.includes(String(record.key))\"\n :disabled=\"!isSelectable(String(record.key), record.selectable)\"\n :aria-label=\"\n t(\n 'table_select.select_record',\n { label: labels[String(record.key)] ?? String(record.key) },\n 'Select :label',\n )\n \"\n @change=\"toggle(String(record.key))\"\n />\n </TableCell>\n <TableCell v-for=\"column in columns\" :key=\"column.name\">\n <TableCellContent\n v-if=\"record.cells[column.name]\"\n :column=\"column\"\n :cell=\"record.cells[column.name]!\"\n :record-key=\"record.key\"\n token=\"\"\n :component=\"`picker:${props.component.statePath}`\"\n />\n </TableCell>\n </TableRow>\n </TableBody>\n </Table>\n </div>\n <p v-if=\"atMax\" class=\"text-muted-foreground text-sm\" role=\"status\">\n {{\n choice(\n 'table_select.max_reached',\n props.component.maxItems ?? 0,\n { count: props.component.maxItems ?? 0 },\n 'You can select up to :count records.',\n )\n }}\n </p>\n <DialogFooter class=\"items-center sm:justify-between\">\n <nav\n v-if=\"paging\"\n class=\"flex items-center gap-2\"\n :aria-label=\"t('pagination', {}, 'Pagination')\"\n >\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon-sm\"\n :disabled=\"!paging.hasPrevious || loading\"\n :aria-label=\"t('table.previous', {}, 'Previous')\"\n @click=\"goTo(paging.page - 1)\"\n ><ChevronLeftIcon class=\"rtl:rotate-180\"\n /></Button>\n <span class=\"text-muted-foreground text-sm\">{{\n paging.total !== undefined\n ? t(\n 'table.showing',\n {\n first: format.number(paging.from),\n last: format.number(paging.to),\n total: format.number(paging.total),\n },\n 'Showing :first–:last of :total',\n )\n : `${paging.from}–${paging.to}`\n }}</span>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"icon-sm\"\n :disabled=\"!paging.hasNext || loading\"\n :aria-label=\"t('table.next', {}, 'Next')\"\n @click=\"goTo(paging.page + 1)\"\n ><ChevronRightIcon class=\"rtl:rotate-180\"\n /></Button>\n </nav>\n <span v-else />\n <div class=\"flex gap-2\">\n <Button v-if=\"draft.length > 0\" type=\"button\" variant=\"ghost\" @click=\"draft = []\">{{\n t('table_select.clear', {}, 'Clear selection')\n }}</Button>\n <Button type=\"button\" variant=\"outline\" @click=\"emit('close')\">{{\n t('cancel', {}, 'Cancel')\n }}</Button>\n <Button type=\"button\" @click=\"confirm\">{{\n props.component.modalSubmitActionLabel ?? t('table_select.confirm', {}, 'Select')\n }}</Button>\n </div>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n</template>\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"ModalTablePicker.vue.d.ts","sourceRoot":"","sources":["../../../src/components/fields/ModalTablePicker.vue"],"names":[],"mappings":"AA6VA,OAAO,KAAK,EAA4B,sBAAsB,EAAc,MAAM,eAAe,CAAA;AAsCjG,KAAK,WAAW,GAAG;IAAE,SAAS,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;;;;;;;;AAu3B5E,wBAOG"}
1
+ {"version":3,"file":"ModalTablePicker.vue.d.ts","sourceRoot":"","sources":["../../../src/components/fields/ModalTablePicker.vue"],"names":[],"mappings":"AAkWA,OAAO,KAAK,EAA4B,sBAAsB,EAAc,MAAM,eAAe,CAAA;AAsCjG,KAAK,WAAW,GAAG;IAAE,SAAS,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;;;;;;;;AA63B5E,wBAOG"}
@@ -1,27 +1,27 @@
1
- import { useChoice as e, useT as t } from "../../context.js";
1
+ import { useChoice as e, useFormatter as t, useT as ee } from "../../context.js";
2
2
  import { cn as n } from "../../lib/utils.js";
3
3
  import r from "../ui/Button2.js";
4
- import { useFormStore as ee } from "../form/form-context.js";
5
- import te from "../ui/Checkbox.js";
6
- import ne from "../ui/Input.js";
7
- import re from "../ui/Table.js";
8
- import ie from "../ui/TableBody.js";
4
+ import { useFormStore as te } from "../form/form-context.js";
5
+ import ne from "../ui/Checkbox.js";
6
+ import re from "../ui/Input.js";
7
+ import ie from "../ui/Table.js";
8
+ import ae from "../ui/TableBody.js";
9
9
  import i from "../ui/TableCell.js";
10
10
  import a from "../ui/TableHead.js";
11
- import ae from "../ui/TableHeader.js";
11
+ import oe from "../ui/TableHeader.js";
12
12
  import o from "../ui/TableRow.js";
13
- import oe from "../ui/Dialog.js";
14
- import se from "../ui/DialogContent.js";
15
- import ce from "../ui/DialogDescription.js";
16
- import le from "../ui/DialogHeader.js";
17
- import ue from "../ui/DialogTitle.js";
18
- import de from "../table/TableCellContent.js";
19
- import fe from "../ui/DialogFooter.js";
13
+ import se from "../ui/Dialog.js";
14
+ import ce from "../ui/DialogContent.js";
15
+ import le from "../ui/DialogDescription.js";
16
+ import ue from "../ui/DialogHeader.js";
17
+ import de from "../ui/DialogTitle.js";
18
+ import fe from "../table/TableCellContent.js";
19
+ import pe from "../ui/DialogFooter.js";
20
20
  import s from "../ui/Skeleton.js";
21
- import pe from "./ModalTablePickerFilters.js";
21
+ import c from "./ModalTablePickerFilters.js";
22
22
  import { FILTERS_MODAL_WIDTH_CLASSES as me, debounce as he, modalTablePaging as ge, toggleModalTableKey as _e } from "@alfakit/core";
23
- import { Fragment as c, computed as l, createBlock as u, createCommentVNode as d, createElementBlock as f, createElementVNode as p, createTextVNode as m, createVNode as h, defineComponent as g, normalizeClass as _, onScopeDispose as v, openBlock as y, ref as b, renderList as x, toDisplayString as S, unref as C, watch as ve, withCtx as w, withModifiers as ye } from "vue";
24
- import { ArrowDownIcon as be, ArrowUpDownIcon as xe, ArrowUpIcon as Se, ChevronLeftIcon as T, ChevronRightIcon as Ce, SearchIcon as we } from "@lucide/vue";
23
+ import { Fragment as l, computed as u, createBlock as d, createCommentVNode as f, createElementBlock as p, createElementVNode as m, createTextVNode as h, createVNode as g, defineComponent as _, normalizeClass as v, onScopeDispose as y, openBlock as b, ref as x, renderList as S, toDisplayString as C, unref as w, watch as ve, withCtx as T, withModifiers as ye } from "vue";
24
+ import { ArrowDownIcon as be, ArrowUpDownIcon as xe, ArrowUpIcon as Se, ChevronLeftIcon as Ce, ChevronRightIcon as we, SearchIcon as Te } from "@lucide/vue";
25
25
  //#region src/components/fields/ModalTablePicker.vue?vue&type=script&setup=true&lang.ts
26
26
  var E = ["innerHTML"], D = {
27
27
  key: 0,
@@ -29,40 +29,40 @@ var E = ["innerHTML"], D = {
29
29
  }, O = {
30
30
  key: 0,
31
31
  class: "relative"
32
- }, k = ["aria-busy"], Te = {
32
+ }, Ee = ["aria-busy"], De = {
33
33
  key: 0,
34
34
  role: "alert",
35
35
  class: "text-destructive p-6 text-center text-sm"
36
- }, Ee = {
36
+ }, Oe = {
37
37
  key: 1,
38
38
  class: "flex flex-col gap-2 p-4",
39
39
  "aria-hidden": "true"
40
- }, De = {
40
+ }, ke = {
41
41
  key: 2,
42
42
  class: "text-muted-foreground p-6 text-center text-sm"
43
- }, Oe = { class: "sr-only" }, ke = ["onClick"], Ae = [
43
+ }, Ae = { class: "sr-only" }, je = ["onClick"], Me = [
44
44
  "name",
45
45
  "checked",
46
46
  "disabled",
47
47
  "aria-label",
48
48
  "onChange"
49
- ], je = {
49
+ ], Ne = {
50
50
  key: 1,
51
51
  class: "text-muted-foreground text-sm",
52
52
  role: "status"
53
- }, Me = ["aria-label"], Ne = { class: "text-muted-foreground text-sm" }, Pe = { key: 1 }, Fe = { class: "flex gap-2" }, A = /*@__PURE__*/ g({
53
+ }, Pe = ["aria-label"], Fe = { class: "text-muted-foreground text-sm" }, Ie = { key: 1 }, Le = { class: "flex gap-2" }, k = /*@__PURE__*/ _({
54
54
  __name: "ModalTablePicker",
55
55
  props: {
56
56
  component: {},
57
57
  initial: {}
58
58
  },
59
59
  emits: ["close", "confirm"],
60
- setup(g, { emit: A }) {
61
- let j = g, M = A, N = t(), P = e(), F = ee(), I = l(() => !!j.component.multiple), L = b({}), R = b(null), z = b(!1), B = b(!0), V = b([...j.initial]), H = b({}), U = b(""), W = null;
60
+ setup(_, { emit: k }) {
61
+ let A = _, j = k, M = ee(), N = t(), P = e(), F = te(), I = u(() => !!A.component.multiple), L = x({}), R = x(null), z = x(!1), B = x(!0), V = x([...A.initial]), H = x({}), U = x(""), W = null;
62
62
  ve(L, () => {
63
63
  W?.abort();
64
64
  let e = new AbortController();
65
- W = e, B.value = !0, F.modalTable(j.component.statePath, j.component.tableStateIdentifier, L.value, e.signal).then((e) => {
65
+ W = e, B.value = !0, F.modalTable(A.component.statePath, A.component.tableStateIdentifier, L.value, e.signal).then((e) => {
66
66
  e && (R.value = e, H.value = {
67
67
  ...H.value,
68
68
  ...e.labels
@@ -75,18 +75,18 @@ var E = ["innerHTML"], D = {
75
75
  }, {
76
76
  immediate: !0,
77
77
  deep: !0
78
- }), v(() => W?.abort());
79
- let G = l(() => R.value?.table), K = he((e) => {
78
+ }), y(() => W?.abort());
79
+ let G = u(() => R.value?.table), K = he((e) => {
80
80
  L.value = {
81
81
  ...L.value,
82
82
  search: e || null,
83
83
  page: null
84
84
  };
85
85
  }, 400);
86
- v(() => K.cancel());
87
- let q = l(() => G.value ? G.value.columns.filter((e) => G.value.visibleColumns.includes(e.name)) : []), J = l(() => G.value?.records ?? []), Y = l(() => ge(G.value?.pagination)), X = l(() => I.value && j.component.maxItems != null && V.value.length >= j.component.maxItems), Ie = l(() => !!G.value?.searchable || (G.value?.filters?.length ?? 0) > 0), Z = (e) => {
88
- V.value = _e(V.value, e, I.value, j.component.maxItems);
89
- }, Q = (e, t) => t === !0 && (V.value.includes(e) || !X.value), Le = (e) => {
86
+ y(() => K.cancel());
87
+ let q = u(() => G.value ? G.value.columns.filter((e) => G.value.visibleColumns.includes(e.name)) : []), J = u(() => G.value?.records ?? []), Y = u(() => ge(G.value?.pagination)), X = u(() => I.value && A.component.maxItems != null && V.value.length >= A.component.maxItems), Re = u(() => !!G.value?.searchable || (G.value?.filters?.length ?? 0) > 0), Z = (e) => {
88
+ V.value = _e(V.value, e, I.value, A.component.maxItems);
89
+ }, Q = (e, t) => t === !0 && (V.value.includes(e) || !X.value), ze = (e) => {
90
90
  let t = G.value?.sort?.column === e && G.value.sort.direction === "asc" ? "desc" : "asc";
91
91
  L.value = {
92
92
  ...L.value,
@@ -94,58 +94,58 @@ var E = ["innerHTML"], D = {
94
94
  direction: t,
95
95
  page: null
96
96
  };
97
- }, Re = (e) => G.value?.sort?.column === e ? G.value.sort.direction === "asc" ? "ascending" : "descending" : void 0, $ = (e) => {
97
+ }, Be = (e) => G.value?.sort?.column === e ? G.value.sort.direction === "asc" ? "ascending" : "descending" : void 0, $ = (e) => {
98
98
  L.value = {
99
99
  ...L.value,
100
100
  page: e
101
101
  };
102
- }, ze = () => M("confirm", V.value, Object.fromEntries(V.value.filter((e) => H.value[e]).map((e) => [e, H.value[e]])));
103
- return (e, t) => (y(), u(oe, {
102
+ }, Ve = () => j("confirm", V.value, Object.fromEntries(V.value.filter((e) => H.value[e]).map((e) => [e, H.value[e]])));
103
+ return (e, t) => (b(), d(se, {
104
104
  open: !0,
105
- "onUpdate:open": t[7] ||= (e) => !e && M("close")
105
+ "onUpdate:open": t[7] ||= (e) => !e && j("close")
106
106
  }, {
107
- default: w(() => [h(se, {
108
- class: _(C(n)("flex max-h-[90vh] flex-col gap-4", C(me)[j.component.modalWidth ?? "3xl"] ?? "sm:max-w-3xl")),
107
+ default: T(() => [g(ce, {
108
+ class: v(w(n)("flex max-h-[90vh] flex-col gap-4", w(me)[A.component.modalWidth ?? "3xl"] ?? "sm:max-w-3xl")),
109
109
  "data-slot": "modal-table-select-dialog"
110
110
  }, {
111
- default: w(() => [
112
- h(le, null, {
113
- default: w(() => [
114
- h(ue, null, {
115
- default: w(() => [m(S(j.component.modalHeading), 1)]),
111
+ default: T(() => [
112
+ g(ue, null, {
113
+ default: T(() => [
114
+ g(de, null, {
115
+ default: T(() => [h(C(A.component.modalHeading), 1)]),
116
116
  _: 1
117
117
  }),
118
- j.component.modalDescription ? (y(), f("p", {
118
+ A.component.modalDescription ? (b(), p("p", {
119
119
  key: 0,
120
120
  class: "text-muted-foreground text-sm",
121
121
  "data-slot": "modal-table-select-description",
122
- innerHTML: j.component.modalDescription
123
- }, null, 8, E)) : d("", !0),
124
- h(ce, { "aria-live": "polite" }, {
125
- default: w(() => [m(S(C(P)("table.selected", V.value.length, { count: V.value.length }, ":count selected")), 1)]),
122
+ innerHTML: A.component.modalDescription
123
+ }, null, 8, E)) : f("", !0),
124
+ g(le, { "aria-live": "polite" }, {
125
+ default: T(() => [h(C(w(P)("table.selected", V.value.length, { count: V.value.length }, ":count selected")), 1)]),
126
126
  _: 1
127
127
  })
128
128
  ]),
129
129
  _: 1
130
130
  }),
131
- G.value && Ie.value ? (y(), f("div", D, [G.value.searchable ? (y(), f("div", O, [h(C(we), { class: "text-muted-foreground pointer-events-none absolute start-2.5 top-1/2 size-4 -translate-y-1/2" }), h(ne, {
131
+ G.value && Re.value ? (b(), p("div", D, [G.value.searchable ? (b(), p("div", O, [g(w(Te), { class: "text-muted-foreground pointer-events-none absolute start-2.5 top-1/2 size-4 -translate-y-1/2" }), g(re, {
132
132
  type: "search",
133
133
  "model-value": U.value,
134
134
  "aria-label": G.value.searchPlaceholder,
135
135
  placeholder: G.value.searchPlaceholder,
136
136
  class: "ps-8",
137
137
  "onUpdate:modelValue": t[0] ||= (e) => {
138
- U.value = String(e), C(K)(String(e));
138
+ U.value = String(e), w(K)(String(e));
139
139
  }
140
140
  }, null, 8, [
141
141
  "model-value",
142
142
  "aria-label",
143
143
  "placeholder"
144
- ])])) : d("", !0), (G.value.filters?.length ?? 0) > 0 ? (y(), u(pe, {
144
+ ])])) : f("", !0), (G.value.filters?.length ?? 0) > 0 ? (b(), d(c, {
145
145
  key: 1,
146
146
  table: G.value,
147
- owner: C(F),
148
- path: j.component.statePath,
147
+ owner: w(F),
148
+ path: A.component.statePath,
149
149
  onChange: t[1] ||= (e) => L.value = {
150
150
  ...L.value,
151
151
  filters: e,
@@ -155,90 +155,90 @@ var E = ["innerHTML"], D = {
155
155
  "table",
156
156
  "owner",
157
157
  "path"
158
- ])) : d("", !0)])) : d("", !0),
159
- p("div", {
158
+ ])) : f("", !0)])) : f("", !0),
159
+ m("div", {
160
160
  class: "min-h-0 flex-1 overflow-auto rounded-md border",
161
161
  "aria-busy": B.value
162
- }, [z.value ? (y(), f("p", Te, S(C(N)("table_select.load_failed", {}, "Couldn't load the records.")), 1)) : G.value ? J.value.length === 0 ? (y(), f("p", De, S(G.value.emptyState.heading), 1)) : (y(), u(re, {
162
+ }, [z.value ? (b(), p("p", De, C(w(M)("table_select.load_failed", {}, "Couldn't load the records.")), 1)) : G.value ? J.value.length === 0 ? (b(), p("p", ke, C(G.value.emptyState.heading), 1)) : (b(), d(ie, {
163
163
  key: 3,
164
- class: _(C(n)(B.value && "opacity-60"))
164
+ class: v(w(n)(B.value && "opacity-60"))
165
165
  }, {
166
- default: w(() => [h(ae, null, {
167
- default: w(() => [h(o, null, {
168
- default: w(() => [h(a, { class: "w-10" }, {
169
- default: w(() => [p("span", Oe, S(C(N)("table.select_row", {}, "Select row")), 1)]),
166
+ default: T(() => [g(oe, null, {
167
+ default: T(() => [g(o, null, {
168
+ default: T(() => [g(a, { class: "w-10" }, {
169
+ default: T(() => [m("span", Ae, C(w(M)("table.select_row", {}, "Select row")), 1)]),
170
170
  _: 1
171
- }), (y(!0), f(c, null, x(q.value, (e) => (y(), u(a, {
171
+ }), (b(!0), p(l, null, S(q.value, (e) => (b(), d(a, {
172
172
  key: e.name,
173
- "aria-sort": Re(e.name)
173
+ "aria-sort": Be(e.name)
174
174
  }, {
175
- default: w(() => [e.sortable ? (y(), f("button", {
175
+ default: T(() => [e.sortable ? (b(), p("button", {
176
176
  key: 0,
177
177
  type: "button",
178
178
  class: "inline-flex items-center gap-1",
179
- onClick: (t) => Le(e.name)
180
- }, [m(S(e.label) + " ", 1), G.value.sort?.column === e.name ? (y(), f(c, { key: 0 }, [G.value.sort.direction === "asc" ? (y(), u(C(Se), {
179
+ onClick: (t) => ze(e.name)
180
+ }, [h(C(e.label) + " ", 1), G.value.sort?.column === e.name ? (b(), p(l, { key: 0 }, [G.value.sort.direction === "asc" ? (b(), d(w(Se), {
181
181
  key: 0,
182
182
  class: "size-3.5"
183
- })) : (y(), u(C(be), {
183
+ })) : (b(), d(w(be), {
184
184
  key: 1,
185
185
  class: "size-3.5"
186
- }))], 64)) : (y(), u(C(xe), {
186
+ }))], 64)) : (b(), d(w(xe), {
187
187
  key: 1,
188
188
  class: "text-muted-foreground size-3.5"
189
- }))], 8, ke)) : (y(), f(c, { key: 1 }, [m(S(e.label), 1)], 64))]),
189
+ }))], 8, je)) : (b(), p(l, { key: 1 }, [h(C(e.label), 1)], 64))]),
190
190
  _: 2
191
191
  }, 1032, ["aria-sort"]))), 128))]),
192
192
  _: 1
193
193
  })]),
194
194
  _: 1
195
- }), h(ie, null, {
196
- default: w(() => [(y(!0), f(c, null, x(J.value, (e) => (y(), u(o, {
195
+ }), g(ae, null, {
196
+ default: T(() => [(b(!0), p(l, null, S(J.value, (e) => (b(), d(o, {
197
197
  key: String(e.key),
198
198
  "data-state": V.value.includes(String(e.key)) ? "selected" : void 0,
199
- class: _(C(n)(Q(String(e.key), e.selectable) && "cursor-pointer")),
199
+ class: v(w(n)(Q(String(e.key), e.selectable) && "cursor-pointer")),
200
200
  onClick: (t) => Q(String(e.key), e.selectable) && Z(String(e.key))
201
201
  }, {
202
- default: w(() => [h(i, {
202
+ default: T(() => [g(i, {
203
203
  class: "w-10",
204
204
  onClick: t[2] ||= ye(() => {}, ["stop"])
205
205
  }, {
206
- default: w(() => [I.value ? (y(), u(te, {
206
+ default: T(() => [I.value ? (b(), d(ne, {
207
207
  key: 0,
208
208
  "model-value": V.value.includes(String(e.key)),
209
209
  disabled: !Q(String(e.key), e.selectable),
210
- "aria-label": C(N)("table_select.select_record", { label: H.value[String(e.key)] ?? String(e.key) }, "Select :label"),
210
+ "aria-label": w(M)("table_select.select_record", { label: H.value[String(e.key)] ?? String(e.key) }, "Select :label"),
211
211
  "onUpdate:modelValue": (t) => Z(String(e.key))
212
212
  }, null, 8, [
213
213
  "model-value",
214
214
  "disabled",
215
215
  "aria-label",
216
216
  "onUpdate:modelValue"
217
- ])) : (y(), f("input", {
217
+ ])) : (b(), p("input", {
218
218
  key: 1,
219
219
  type: "radio",
220
- name: `${j.component.statePath}-picker`,
220
+ name: `${A.component.statePath}-picker`,
221
221
  class: "accent-primary size-4",
222
222
  checked: V.value.includes(String(e.key)),
223
223
  disabled: !Q(String(e.key), e.selectable),
224
- "aria-label": C(N)("table_select.select_record", { label: H.value[String(e.key)] ?? String(e.key) }, "Select :label"),
224
+ "aria-label": w(M)("table_select.select_record", { label: H.value[String(e.key)] ?? String(e.key) }, "Select :label"),
225
225
  onChange: (t) => Z(String(e.key))
226
- }, null, 40, Ae))]),
226
+ }, null, 40, Me))]),
227
227
  _: 2
228
- }, 1024), (y(!0), f(c, null, x(q.value, (t) => (y(), u(i, { key: t.name }, {
229
- default: w(() => [e.cells[t.name] ? (y(), u(de, {
228
+ }, 1024), (b(!0), p(l, null, S(q.value, (t) => (b(), d(i, { key: t.name }, {
229
+ default: T(() => [e.cells[t.name] ? (b(), d(fe, {
230
230
  key: 0,
231
231
  column: t,
232
232
  cell: e.cells[t.name],
233
233
  "record-key": e.key,
234
234
  token: "",
235
- component: `picker:${j.component.statePath}`
235
+ component: `picker:${A.component.statePath}`
236
236
  }, null, 8, [
237
237
  "column",
238
238
  "cell",
239
239
  "record-key",
240
240
  "component"
241
- ])) : d("", !0)]),
241
+ ])) : f("", !0)]),
242
242
  _: 2
243
243
  }, 1024))), 128))]),
244
244
  _: 2
@@ -250,68 +250,68 @@ var E = ["innerHTML"], D = {
250
250
  _: 1
251
251
  })]),
252
252
  _: 1
253
- }, 8, ["class"])) : (y(), f("div", Ee, [
254
- h(s, { class: "h-8 w-full" }),
255
- h(s, { class: "h-8 w-full" }),
256
- h(s, { class: "h-8 w-full" })
257
- ]))], 8, k),
258
- X.value ? (y(), f("p", je, S(C(P)("table_select.max_reached", j.component.maxItems ?? 0, { count: j.component.maxItems ?? 0 }, "You can select up to :count records.")), 1)) : d("", !0),
259
- h(fe, { class: "items-center sm:justify-between" }, {
260
- default: w(() => [Y.value ? (y(), f("nav", {
253
+ }, 8, ["class"])) : (b(), p("div", Oe, [
254
+ g(s, { class: "h-8 w-full" }),
255
+ g(s, { class: "h-8 w-full" }),
256
+ g(s, { class: "h-8 w-full" })
257
+ ]))], 8, Ee),
258
+ X.value ? (b(), p("p", Ne, C(w(P)("table_select.max_reached", A.component.maxItems ?? 0, { count: A.component.maxItems ?? 0 }, "You can select up to :count records.")), 1)) : f("", !0),
259
+ g(pe, { class: "items-center sm:justify-between" }, {
260
+ default: T(() => [Y.value ? (b(), p("nav", {
261
261
  key: 0,
262
262
  class: "flex items-center gap-2",
263
- "aria-label": C(N)("pagination", {}, "Pagination")
263
+ "aria-label": w(M)("pagination", {}, "Pagination")
264
264
  }, [
265
- h(r, {
265
+ g(r, {
266
266
  type: "button",
267
267
  variant: "outline",
268
268
  size: "icon-sm",
269
269
  disabled: !Y.value.hasPrevious || B.value,
270
- "aria-label": C(N)("table.previous", {}, "Previous"),
270
+ "aria-label": w(M)("table.previous", {}, "Previous"),
271
271
  onClick: t[3] ||= (e) => $(Y.value.page - 1)
272
272
  }, {
273
- default: w(() => [h(C(T), { class: "rtl:rotate-180" })]),
273
+ default: T(() => [g(w(Ce), { class: "rtl:rotate-180" })]),
274
274
  _: 1
275
275
  }, 8, ["disabled", "aria-label"]),
276
- p("span", Ne, S(Y.value.total === void 0 ? `${Y.value.from}–${Y.value.to}` : C(N)("table.showing", {
277
- first: Y.value.from,
278
- last: Y.value.to,
279
- total: Y.value.total
276
+ m("span", Fe, C(Y.value.total === void 0 ? `${Y.value.from}–${Y.value.to}` : w(M)("table.showing", {
277
+ first: w(N).number(Y.value.from),
278
+ last: w(N).number(Y.value.to),
279
+ total: w(N).number(Y.value.total)
280
280
  }, "Showing :first–:last of :total")), 1),
281
- h(r, {
281
+ g(r, {
282
282
  type: "button",
283
283
  variant: "outline",
284
284
  size: "icon-sm",
285
285
  disabled: !Y.value.hasNext || B.value,
286
- "aria-label": C(N)("table.next", {}, "Next"),
286
+ "aria-label": w(M)("table.next", {}, "Next"),
287
287
  onClick: t[4] ||= (e) => $(Y.value.page + 1)
288
288
  }, {
289
- default: w(() => [h(C(Ce), { class: "rtl:rotate-180" })]),
289
+ default: T(() => [g(w(we), { class: "rtl:rotate-180" })]),
290
290
  _: 1
291
291
  }, 8, ["disabled", "aria-label"])
292
- ], 8, Me)) : (y(), f("span", Pe)), p("div", Fe, [
293
- V.value.length > 0 ? (y(), u(r, {
292
+ ], 8, Pe)) : (b(), p("span", Ie)), m("div", Le, [
293
+ V.value.length > 0 ? (b(), d(r, {
294
294
  key: 0,
295
295
  type: "button",
296
296
  variant: "ghost",
297
297
  onClick: t[5] ||= (e) => V.value = []
298
298
  }, {
299
- default: w(() => [m(S(C(N)("table_select.clear", {}, "Clear selection")), 1)]),
299
+ default: T(() => [h(C(w(M)("table_select.clear", {}, "Clear selection")), 1)]),
300
300
  _: 1
301
- })) : d("", !0),
302
- h(r, {
301
+ })) : f("", !0),
302
+ g(r, {
303
303
  type: "button",
304
304
  variant: "outline",
305
- onClick: t[6] ||= (e) => M("close")
305
+ onClick: t[6] ||= (e) => j("close")
306
306
  }, {
307
- default: w(() => [m(S(C(N)("cancel", {}, "Cancel")), 1)]),
307
+ default: T(() => [h(C(w(M)("cancel", {}, "Cancel")), 1)]),
308
308
  _: 1
309
309
  }),
310
- h(r, {
310
+ g(r, {
311
311
  type: "button",
312
- onClick: ze
312
+ onClick: Ve
313
313
  }, {
314
- default: w(() => [m(S(j.component.modalSubmitActionLabel ?? C(N)("table_select.confirm", {}, "Select")), 1)]),
314
+ default: T(() => [h(C(A.component.modalSubmitActionLabel ?? w(M)("table_select.confirm", {}, "Select")), 1)]),
315
315
  _: 1
316
316
  })
317
317
  ])]),
@@ -325,6 +325,6 @@ var E = ["innerHTML"], D = {
325
325
  }
326
326
  });
327
327
  //#endregion
328
- export { A as default };
328
+ export { k as default };
329
329
 
330
330
  //# sourceMappingURL=ModalTablePicker.vue_vue_type_script_setup_true_lang.js.map