@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.
- package/CHANGELOG.md +16 -0
- package/dist/AlfakitRoot.js.map +1 -1
- package/dist/AlfakitRoot.vue.d.ts.map +1 -1
- package/dist/AlfakitRoot.vue_vue_type_script_setup_true_lang.js +3 -1
- package/dist/AlfakitRoot.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/actions/ActionButton.js.map +1 -1
- package/dist/components/actions/ActionButton.vue.d.ts.map +1 -1
- package/dist/components/actions/ActionButton.vue_vue_type_script_setup_true_lang.js +160 -159
- package/dist/components/actions/ActionButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/actions/ActionGroupMenu.js.map +1 -1
- package/dist/components/actions/ActionGroupMenu.vue.d.ts.map +1 -1
- package/dist/components/actions/ActionGroupMenu.vue_vue_type_script_setup_true_lang.js +69 -65
- package/dist/components/actions/ActionGroupMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/actions/ActionModal.js.map +1 -1
- package/dist/components/actions/ActionModal.vue.d.ts.map +1 -1
- package/dist/components/actions/ActionModal.vue_vue_type_script_setup_true_lang.js +221 -219
- package/dist/components/actions/ActionModal.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ai/AiCopilot.js.map +1 -1
- package/dist/components/ai/AiCopilot.vue.d.ts +2 -0
- package/dist/components/ai/AiCopilot.vue.d.ts.map +1 -1
- package/dist/components/ai/AiCopilot.vue_vue_type_script_setup_true_lang.js +7 -2
- package/dist/components/ai/AiCopilot.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/cms/CmsPage.vue_vue_type_script_setup_true_lang.js +19 -19
- package/dist/components/cms/CmsPage.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/cms/LivePreview.js.map +1 -1
- package/dist/components/cms/LivePreview.vue.d.ts.map +1 -1
- package/dist/components/cms/LivePreview.vue_vue_type_script_setup_true_lang.js +83 -83
- package/dist/components/cms/LivePreview.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/BuilderField.js.map +1 -1
- package/dist/components/fields/BuilderField.vue.d.ts.map +1 -1
- package/dist/components/fields/BuilderField.vue_vue_type_script_setup_true_lang.js +162 -157
- package/dist/components/fields/BuilderField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/ColorPickerField.js.map +1 -1
- package/dist/components/fields/ColorPickerField.vue.d.ts.map +1 -1
- package/dist/components/fields/ColorPickerField.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/components/fields/ColorPickerField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/ComboboxSelect.js.map +1 -1
- package/dist/components/fields/ComboboxSelect.vue.d.ts.map +1 -1
- package/dist/components/fields/ComboboxSelect.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/fields/ComboboxSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/FileUploadField.js.map +1 -1
- package/dist/components/fields/FileUploadField.vue.d.ts.map +1 -1
- package/dist/components/fields/FileUploadField.vue_vue_type_script_setup_true_lang.js +183 -183
- package/dist/components/fields/FileUploadField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/ImageEditorDialog.js.map +1 -1
- package/dist/components/fields/ImageEditorDialog.vue.d.ts.map +1 -1
- package/dist/components/fields/ImageEditorDialog.vue_vue_type_script_setup_true_lang.js +46 -46
- package/dist/components/fields/ImageEditorDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/KeyValueField.js.map +1 -1
- package/dist/components/fields/KeyValueField.vue.d.ts.map +1 -1
- package/dist/components/fields/KeyValueField.vue_vue_type_script_setup_true_lang.js +66 -66
- package/dist/components/fields/KeyValueField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/ModalTablePicker.js.map +1 -1
- package/dist/components/fields/ModalTablePicker.vue.d.ts.map +1 -1
- package/dist/components/fields/ModalTablePicker.vue_vue_type_script_setup_true_lang.js +113 -113
- package/dist/components/fields/ModalTablePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/OneTimeCodeInputField.js.map +1 -1
- package/dist/components/fields/OneTimeCodeInputField.vue_vue_type_script_setup_true_lang.js +1 -2
- package/dist/components/fields/OneTimeCodeInputField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/RepeaterField.js.map +1 -1
- package/dist/components/fields/RepeaterField.vue.d.ts.map +1 -1
- package/dist/components/fields/RepeaterField.vue_vue_type_script_setup_true_lang.js +12 -12
- package/dist/components/fields/RepeaterField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/RichEditorInput.js.map +1 -1
- package/dist/components/fields/RichEditorInput.vue.d.ts.map +1 -1
- package/dist/components/fields/RichEditorInput.vue_vue_type_script_setup_true_lang.js +166 -165
- package/dist/components/fields/RichEditorInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/SelectField.js.map +1 -1
- package/dist/components/fields/SelectField.vue.d.ts.map +1 -1
- package/dist/components/fields/SelectField.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/components/fields/SelectField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/SliderField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/TableColumnHeaders.js.map +1 -1
- package/dist/components/fields/TableColumnHeaders.vue.d.ts.map +1 -1
- package/dist/components/fields/TableColumnHeaders.vue_vue_type_script_setup_true_lang.js +6 -3
- package/dist/components/fields/TableColumnHeaders.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/fields/item-actions.d.ts +2 -2
- package/dist/components/fields/item-actions.d.ts.map +1 -1
- package/dist/components/fields/item-actions.js +31 -31
- package/dist/components/fields/item-actions.js.map +1 -1
- package/dist/components/file-manager/FileManagerView.js.map +1 -1
- package/dist/components/file-manager/FileManagerView.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/file-manager/FileManagerView.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/form/FormBlock.js.map +1 -1
- package/dist/components/form/FormBlock.vue.d.ts.map +1 -1
- package/dist/components/form/FormBlock.vue_vue_type_script_setup_true_lang.js +81 -77
- package/dist/components/form/FormBlock.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/form/form-context.js +25 -25
- package/dist/components/form/form-context.js.map +1 -1
- package/dist/components/kanban/KanbanBoard.js.map +1 -1
- package/dist/components/kanban/KanbanBoard.vue.d.ts.map +1 -1
- package/dist/components/kanban/KanbanBoard.vue_vue_type_script_setup_true_lang.js +5 -2
- package/dist/components/kanban/KanbanBoard.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/kanban/KanbanColumnHeader.js.map +1 -1
- package/dist/components/kanban/KanbanColumnHeader.vue.d.ts.map +1 -1
- package/dist/components/kanban/KanbanColumnHeader.vue_vue_type_script_setup_true_lang.js +64 -64
- package/dist/components/kanban/KanbanColumnHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/layout/FusedGroupComponent.js.map +1 -1
- package/dist/components/layout/FusedGroupComponent.vue.d.ts.map +1 -1
- package/dist/components/layout/FusedGroupComponent.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/components/layout/FusedGroupComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/layout/SectionComponent.js.map +1 -1
- package/dist/components/layout/SectionComponent.vue.d.ts.map +1 -1
- package/dist/components/layout/SectionComponent.vue_vue_type_script_setup_true_lang.js +23 -23
- package/dist/components/layout/SectionComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/layout/TabsComponent.js.map +1 -1
- package/dist/components/layout/TabsComponent.vue.d.ts.map +1 -1
- package/dist/components/layout/TabsComponent.vue_vue_type_script_setup_true_lang.js +76 -55
- package/dist/components/layout/TabsComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/notifications/NotificationsMenu.js.map +1 -1
- package/dist/components/notifications/NotificationsMenu.vue.d.ts.map +1 -1
- package/dist/components/notifications/NotificationsMenu.vue_vue_type_script_setup_true_lang.js +44 -42
- package/dist/components/notifications/NotificationsMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/DebugPanel.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/components/panel/DebugPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/GlobalSearch.js.map +1 -1
- package/dist/components/panel/GlobalSearch.vue.d.ts.map +1 -1
- package/dist/components/panel/GlobalSearch.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/components/panel/GlobalSearch.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/GlobalSearchPalette.js.map +1 -1
- package/dist/components/panel/GlobalSearchPalette.vue.d.ts.map +1 -1
- package/dist/components/panel/GlobalSearchPalette.vue_vue_type_script_setup_true_lang.js +102 -96
- package/dist/components/panel/GlobalSearchPalette.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/NavGroup.vue_vue_type_script_setup_true_lang.js +10 -10
- package/dist/components/panel/NavGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/NavGroupFlyout.vue_vue_type_script_setup_true_lang.js +9 -9
- package/dist/components/panel/NavGroupFlyout.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/NavItem.vue_vue_type_script_setup_true_lang.js +16 -16
- package/dist/components/panel/NavItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/NavSubItem.vue_vue_type_script_setup_true_lang.js +10 -10
- package/dist/components/panel/NavSubItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/ShortcutKeys.js.map +1 -1
- package/dist/components/panel/ShortcutKeys.vue.d.ts.map +1 -1
- package/dist/components/panel/ShortcutKeys.vue_vue_type_script_setup_true_lang.js +4 -1
- package/dist/components/panel/ShortcutKeys.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/TenantMenu.js.map +1 -1
- package/dist/components/panel/TenantMenu.vue_vue_type_script_setup_true_lang.js +37 -37
- package/dist/components/panel/TenantMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/panel/Topbar.vue_vue_type_script_setup_true_lang.js +11 -11
- package/dist/components/panel/Topbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/realtime/use-live-updates.d.ts.map +1 -1
- package/dist/components/realtime/use-live-updates.js +24 -23
- package/dist/components/realtime/use-live-updates.js.map +1 -1
- package/dist/components/table/BooleanCell.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/table/BooleanCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/ColumnHeader.js.map +1 -1
- package/dist/components/table/ColumnHeader.vue.d.ts.map +1 -1
- package/dist/components/table/ColumnHeader.vue_vue_type_script_setup_true_lang.js +55 -49
- package/dist/components/table/ColumnHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/ColumnManager.js.map +1 -1
- package/dist/components/table/ColumnManager.vue.d.ts.map +1 -1
- package/dist/components/table/ColumnManager.vue_vue_type_script_setup_true_lang.js +5 -4
- package/dist/components/table/ColumnManager.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/ContentLayoutSort.js.map +1 -1
- package/dist/components/table/ContentLayoutSort.vue.d.ts.map +1 -1
- package/dist/components/table/ContentLayoutSort.vue_vue_type_script_setup_true_lang.js +5 -5
- package/dist/components/table/ContentLayoutSort.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/GroupHeaderRow.js.map +1 -1
- package/dist/components/table/GroupHeaderRow.vue.d.ts.map +1 -1
- package/dist/components/table/GroupHeaderRow.vue_vue_type_script_setup_true_lang.js +55 -34
- package/dist/components/table/GroupHeaderRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/SelectCell.js.map +1 -1
- package/dist/components/table/SelectCell.vue.d.ts.map +1 -1
- package/dist/components/table/SelectCell.vue_vue_type_script_setup_true_lang.js +26 -20
- package/dist/components/table/SelectCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/SelectComboboxCell.vue_vue_type_script_setup_true_lang.js +2 -1
- package/dist/components/table/SelectComboboxCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/TableCellContent.js.map +1 -1
- package/dist/components/table/TableCellContent.vue.d.ts.map +1 -1
- package/dist/components/table/TableCellContent.vue_vue_type_script_setup_true_lang.js +4 -3
- package/dist/components/table/TableCellContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/TablePagination.js.map +1 -1
- package/dist/components/table/TablePagination.vue.d.ts.map +1 -1
- package/dist/components/table/TablePagination.vue_vue_type_script_setup_true_lang.js +87 -87
- package/dist/components/table/TablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/TextInputCell.js.map +1 -1
- package/dist/components/table/TextInputCell.vue.d.ts.map +1 -1
- package/dist/components/table/TextInputCell.vue_vue_type_script_setup_true_lang.js +40 -34
- package/dist/components/table/TextInputCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/table/cell-update.d.ts +6 -0
- package/dist/components/table/cell-update.d.ts.map +1 -1
- package/dist/components/table/cell-update.js.map +1 -1
- package/dist/components/translation-manager/TranslationManagerView.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/components/translation-manager/TranslationManagerView.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ui/CommandAutoHighlight.js +7 -0
- package/dist/components/ui/CommandAutoHighlight.js.map +1 -0
- package/dist/components/ui/CommandAutoHighlight.vue.d.ts +21 -0
- package/dist/components/ui/CommandAutoHighlight.vue.d.ts.map +1 -0
- package/dist/components/ui/CommandAutoHighlight.vue_vue_type_script_setup_true_lang.js +18 -0
- package/dist/components/ui/CommandAutoHighlight.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/components/ui/DialogContent.js.map +1 -1
- package/dist/components/ui/DialogContent.vue.d.ts.map +1 -1
- package/dist/components/ui/DialogContent.vue_vue_type_script_setup_true_lang.js +13 -12
- package/dist/components/ui/DialogContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ui/PopoverContent.js.map +1 -1
- package/dist/components/ui/PopoverContent.vue.d.ts.map +1 -1
- package/dist/components/ui/PopoverContent.vue_vue_type_script_setup_true_lang.js +9 -8
- package/dist/components/ui/PopoverContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ui/SheetContent.js.map +1 -1
- package/dist/components/ui/SheetContent.vue.d.ts.map +1 -1
- package/dist/components/ui/SheetContent.vue_vue_type_script_setup_true_lang.js +13 -12
- package/dist/components/ui/SheetContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/ui/TooltipContent.js.map +1 -1
- package/dist/components/ui/TooltipContent.vue.d.ts.map +1 -1
- package/dist/components/ui/TooltipContent.vue_vue_type_script_setup_true_lang.js +9 -8
- package/dist/components/ui/TooltipContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components.css +347 -0
- package/dist/context.d.ts +7 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +29 -26
- package/dist/context.js.map +1 -1
- package/dist/create-alfakit.d.ts.map +1 -1
- package/dist/create-alfakit.js +33 -31
- package/dist/create-alfakit.js.map +1 -1
- package/dist/eject-manifest.json +11 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +219 -217
- package/dist/layouts/AppLayout.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/layouts/AppLayout.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/layouts/AuthLayout.vue_vue_type_script_setup_true_lang.js +9 -9
- package/dist/layouts/FullscreenLayout.vue_vue_type_script_setup_true_lang.js +8 -8
- package/dist/layouts/FullscreenLayout.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/layouts/TopNavLayout.vue_vue_type_script_setup_true_lang.js +15 -15
- package/dist/layouts/TopNavLayout.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/layouts/lazy-layouts.d.ts +10 -0
- package/dist/layouts/lazy-layouts.d.ts.map +1 -0
- package/dist/layouts/lazy-layouts.js +8 -0
- package/dist/layouts/lazy-layouts.js.map +1 -0
- package/dist/layouts/panel-layouts.d.ts +8 -0
- package/dist/layouts/panel-layouts.d.ts.map +1 -0
- package/dist/layouts/panel-layouts.js +15 -0
- package/dist/layouts/panel-layouts.js.map +1 -0
- package/dist/lib/lazy.d.ts.map +1 -1
- package/dist/lib/lazy.js +2 -2
- package/dist/lib/lazy.js.map +1 -1
- package/dist/pages/PageShell.js.map +1 -1
- package/dist/pages/PageShell.vue.d.ts.map +1 -1
- package/dist/pages/PageShell.vue_vue_type_script_setup_true_lang.js +39 -42
- package/dist/pages/PageShell.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/standalone/AlfakitComponent.js.map +1 -1
- package/dist/standalone/AlfakitComponent.vue.d.ts.map +1 -1
- package/dist/standalone/AlfakitComponent.vue_vue_type_script_setup_true_lang.js +56 -52
- package/dist/standalone/AlfakitComponent.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/standalone/AlfakitToaster.js.map +1 -1
- package/dist/standalone/AlfakitToaster.vue.d.ts.map +1 -1
- package/dist/standalone/AlfakitToaster.vue_vue_type_script_setup_true_lang.js +23 -15
- package/dist/standalone/AlfakitToaster.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/standalone.css +54 -0
- package/dist/starter-kit/AlfakitStarterKitRoot.js.map +1 -1
- package/dist/starter-kit/AlfakitStarterKitRoot.vue.d.ts +2 -2
- package/dist/starter-kit/AlfakitStarterKitRoot.vue.d.ts.map +1 -1
- package/dist/starter-kit/AlfakitStarterKitRoot.vue_vue_type_script_setup_true_lang.js +17 -12
- package/dist/starter-kit/AlfakitStarterKitRoot.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/starter-kit/dashboard-widgets.d.ts +54 -0
- package/dist/starter-kit/dashboard-widgets.d.ts.map +1 -0
- package/dist/starter-kit/dashboard-widgets.js +54 -0
- package/dist/starter-kit/dashboard-widgets.js.map +1 -0
- package/dist/starter-kit/index.d.ts +2 -1
- package/dist/starter-kit/index.d.ts.map +1 -1
- package/dist/starter-kit/index.js +5 -4
- package/dist/starter-kit/runtime.d.ts +6 -0
- package/dist/starter-kit/runtime.d.ts.map +1 -1
- package/dist/starter-kit/runtime.js +19 -15
- package/dist/starter-kit/runtime.js.map +1 -1
- package/dist/starter-kit/starter-kit.d.ts.map +1 -1
- package/dist/starter-kit/starter-kit.js +8 -8
- package/dist/starter-kit/starter-kit.js.map +1 -1
- package/dist/starter-kit/widgets/CopilotTrigger.js +7 -0
- package/dist/starter-kit/widgets/CopilotTrigger.js.map +1 -0
- package/dist/starter-kit/widgets/CopilotTrigger.vue.d.ts +12 -0
- package/dist/starter-kit/widgets/CopilotTrigger.vue.d.ts.map +1 -0
- package/dist/starter-kit/widgets/CopilotTrigger.vue_vue_type_script_setup_true_lang.js +23 -0
- package/dist/starter-kit/widgets/CopilotTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/starter-kit/widgets/LoadedCopilot.js +7 -0
- package/dist/starter-kit/widgets/LoadedCopilot.js.map +1 -0
- package/dist/starter-kit/widgets/LoadedCopilot.vue.d.ts +8 -0
- package/dist/starter-kit/widgets/LoadedCopilot.vue.d.ts.map +1 -0
- package/dist/starter-kit/widgets/LoadedCopilot.vue_vue_type_script_setup_true_lang.js +31 -0
- package/dist/starter-kit/widgets/LoadedCopilot.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/starter-kit/widgets/SearchTrigger.js.map +1 -1
- package/dist/starter-kit/widgets/SearchTrigger.vue.d.ts.map +1 -1
- package/dist/starter-kit/widgets/SearchTrigger.vue_vue_type_script_setup_true_lang.js +1 -0
- package/dist/starter-kit/widgets/SearchTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/starter-kit/widgets/StarterKitImpersonationBanner.js +7 -0
- package/dist/starter-kit/widgets/StarterKitImpersonationBanner.js.map +1 -0
- package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue.d.ts +8 -0
- package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue.d.ts.map +1 -0
- package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue_vue_type_script_setup_true_lang.js +34 -0
- package/dist/starter-kit/widgets/StarterKitImpersonationBanner.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/starter-kit/widgets/TenantChooser.js.map +1 -1
- package/dist/starter-kit/widgets/TenantChooser.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/starter-kit/widgets/TenantChooser.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/starter-kit/widgets/index.d.ts +40 -9
- package/dist/starter-kit/widgets/index.d.ts.map +1 -1
- package/dist/starter-kit/widgets/index.js +21 -18
- package/dist/starter-kit/widgets/index.js.map +1 -1
- package/dist/starter-kit/widgets/loaded.d.ts +10 -0
- package/dist/starter-kit/widgets/loaded.d.ts.map +1 -0
- package/dist/starter-kit/widgets/loaded.js +5 -0
- package/dist/styles.css +9 -2
- package/dist/themes.css +8 -335
- package/package.json +3 -3
- package/src/AlfakitRoot.vue +9 -1
- package/src/components/actions/ActionButton.vue +14 -6
- package/src/components/actions/ActionGroupMenu.vue +13 -1
- package/src/components/actions/ActionModal.vue +12 -1
- package/src/components/ai/AiCopilot.vue +7 -1
- package/src/components/cms/LivePreview.vue +8 -2
- package/src/components/fields/BuilderField.vue +15 -2
- package/src/components/fields/ColorPickerField.vue +1 -0
- package/src/components/fields/ComboboxSelect.vue +1 -1
- package/src/components/fields/FileUploadField.vue +14 -11
- package/src/components/fields/ImageEditorDialog.vue +7 -3
- package/src/components/fields/KeyValueField.vue +3 -2
- package/src/components/fields/ModalTablePicker.vue +7 -2
- package/src/components/fields/OneTimeCodeInputField.vue +1 -1
- package/src/components/fields/RepeaterField.vue +2 -3
- package/src/components/fields/RichEditorInput.vue +3 -0
- package/src/components/fields/SelectField.vue +4 -2
- package/src/components/fields/TableColumnHeaders.vue +6 -1
- package/src/components/fields/item-actions.ts +31 -10
- package/src/components/file-manager/FileManagerView.vue +1 -1
- package/src/components/form/FormBlock.vue +26 -1
- package/src/components/form/form-context.ts +3 -3
- package/src/components/kanban/KanbanBoard.vue +15 -3
- package/src/components/kanban/KanbanColumnHeader.vue +6 -4
- package/src/components/layout/FusedGroupComponent.vue +1 -0
- package/src/components/layout/SectionComponent.vue +10 -4
- package/src/components/layout/TabsComponent.vue +61 -5
- package/src/components/notifications/NotificationsMenu.vue +11 -0
- package/src/components/panel/GlobalSearch.vue +1 -0
- package/src/components/panel/GlobalSearchPalette.vue +2 -0
- package/src/components/panel/ShortcutKeys.vue +1 -0
- package/src/components/panel/TenantMenu.vue +2 -2
- package/src/components/realtime/use-live-updates.ts +3 -1
- package/src/components/table/ColumnHeader.vue +23 -12
- package/src/components/table/ColumnManager.vue +12 -8
- package/src/components/table/ContentLayoutSort.vue +7 -1
- package/src/components/table/GroupHeaderRow.vue +27 -0
- package/src/components/table/SelectCell.vue +5 -2
- package/src/components/table/TableCellContent.vue +4 -2
- package/src/components/table/TablePagination.vue +12 -7
- package/src/components/table/TextInputCell.vue +11 -5
- package/src/components/table/cell-update.ts +6 -0
- package/src/components/ui/CommandAutoHighlight.vue +27 -0
- package/src/components/ui/DialogContent.vue +5 -1
- package/src/components/ui/PopoverContent.vue +5 -1
- package/src/components/ui/SheetContent.vue +5 -1
- package/src/components/ui/TooltipContent.vue +5 -1
- package/src/context.ts +10 -0
- package/src/create-alfakit.ts +5 -0
- package/src/index.ts +2 -0
- package/src/layouts/lazy-layouts.ts +14 -0
- package/src/layouts/panel-layouts.ts +17 -0
- package/src/lib/lazy.ts +11 -1
- package/src/pages/PageShell.vue +5 -6
- package/src/standalone/AlfakitComponent.vue +17 -6
- package/src/standalone/AlfakitToaster.vue +12 -2
- package/src/starter-kit/AlfakitStarterKitRoot.vue +12 -3
- package/src/starter-kit/dashboard-widgets.ts +93 -0
- package/src/starter-kit/index.ts +7 -1
- package/src/starter-kit/runtime.ts +17 -1
- package/src/starter-kit/starter-kit.ts +2 -1
- package/src/starter-kit/widgets/CopilotTrigger.vue +58 -0
- package/src/starter-kit/widgets/LoadedCopilot.vue +29 -0
- package/src/starter-kit/widgets/SearchTrigger.vue +1 -0
- package/src/starter-kit/widgets/StarterKitImpersonationBanner.vue +57 -0
- package/src/starter-kit/widgets/TenantChooser.vue +1 -1
- package/src/starter-kit/widgets/index.ts +56 -11
- package/src/starter-kit/widgets/loaded.ts +9 -0
- package/src/styles.css +9 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KanbanColumnHeader.js","names":["_sfc_main","KanbanColumnHeader_vue_vue_type_script_setup_true_lang_default","KanbanColumnHeader_default"],"sources":["../../../src/components/kanban/KanbanColumnHeader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { KanbanColumnSchema } from '@alfakit/core'\nimport { kanbanWipState } from '@alfakit/core'\nimport { ChevronsLeftRightIcon, ChevronsRightLeftIcon, PlusIcon } from '@lucide/vue'\nimport { computed } from 'vue'\nimport { useT } from '../../context'\nimport { cssColor } from '../../lib/colors'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\nimport Badge from '../ui/Badge.vue'\nimport Button from '../ui/Button.vue'\n\nconst props = defineProps<{\n column: KanbanColumnSchema\n id: string\n collapsed: boolean\n creatable: boolean\n filtered: boolean\n}>()\nconst emit = defineEmits<{ toggle: []; create: [] }>()\nconst t = useT()\n\nconst wip = computed(() => kanbanWipState(props.column))\nconst shown = computed(() =>\n props.column.wipLimit !== undefined\n ? props.column.count\n : props.filtered\n ? props.column.total\n : props.column.count,\n)\nconst countLabel = computed(() => {\n const column = props.column\n\n if (column.wipLimit !== undefined) {\n return t('kanban.wip', { count: column.count, limit: column.wipLimit }, ':count of :limit')\n }\n\n return props.filtered && column.total !== column.count\n ? t(\n 'kanban.count_filtered',\n { shown: column.total, count: column.count },\n ':shown of :count cards',\n )\n :
|
|
1
|
+
{"version":3,"file":"KanbanColumnHeader.js","names":["_sfc_main","KanbanColumnHeader_vue_vue_type_script_setup_true_lang_default","KanbanColumnHeader_default"],"sources":["../../../src/components/kanban/KanbanColumnHeader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { KanbanColumnSchema } from '@alfakit/core'\nimport { kanbanWipState } from '@alfakit/core'\nimport { ChevronsLeftRightIcon, ChevronsRightLeftIcon, PlusIcon } from '@lucide/vue'\nimport { computed } from 'vue'\nimport { useChoice, useT } from '../../context'\nimport { cssColor } from '../../lib/colors'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\nimport Badge from '../ui/Badge.vue'\nimport Button from '../ui/Button.vue'\n\nconst props = defineProps<{\n column: KanbanColumnSchema\n id: string\n collapsed: boolean\n creatable: boolean\n filtered: boolean\n}>()\nconst emit = defineEmits<{ toggle: []; create: [] }>()\nconst t = useT()\nconst choice = useChoice()\n\nconst wip = computed(() => kanbanWipState(props.column))\nconst shown = computed(() =>\n props.column.wipLimit !== undefined\n ? props.column.count\n : props.filtered\n ? props.column.total\n : props.column.count,\n)\nconst countLabel = computed(() => {\n const column = props.column\n\n if (column.wipLimit !== undefined) {\n return t('kanban.wip', { count: column.count, limit: column.wipLimit }, ':count of :limit')\n }\n\n return props.filtered && column.total !== column.count\n ? t(\n 'kanban.count_filtered',\n { shown: column.total, count: column.count },\n ':shown of :count cards',\n )\n : choice('kanban.count', column.count, {}, '{1} :count card|[0,*] :count cards')\n})\nconst style = computed(() =>\n props.column.color ? { borderTopColor: cssColor(props.column.color) } : undefined,\n)\nconst toggleLabel = computed(() =>\n props.collapsed\n ? t('kanban.expand', { column: props.column.label }, 'Expand :column')\n : t('kanban.collapse', { column: props.column.label }, 'Collapse :column'),\n)\nconst addLabel = computed(() =>\n t('kanban.add_card', { column: props.column.label }, 'Add a card to :column'),\n)\n</script>\n\n<template>\n <div\n v-if=\"props.collapsed\"\n class=\"bg-muted/60 flex snap-start flex-col items-center gap-2 rounded-lg border border-t-4 px-1 py-2\"\n :style=\"style\"\n data-slot=\"kanban-column-header\"\n :data-column=\"props.column.key\"\n data-collapsed=\"\"\n :data-wip=\"wip ?? undefined\"\n >\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n :aria-label=\"toggleLabel\"\n :aria-expanded=\"false\"\n @click=\"emit('toggle')\"\n >\n <ChevronsLeftRightIcon aria-hidden=\"true\" />\n </Button>\n <span class=\"text-muted-foreground text-xs tabular-nums\" :title=\"countLabel\">{{ shown }}</span>\n <h3 :id=\"props.id\" class=\"text-sm font-medium [writing-mode:vertical-rl]\">\n {{ props.column.label }}\n </h3>\n </div>\n <div\n v-else\n class=\"bg-muted/60 flex snap-start flex-col gap-1 rounded-lg border border-t-4 px-3 py-2\"\n :style=\"style\"\n data-slot=\"kanban-column-header\"\n :data-column=\"props.column.key\"\n :data-wip=\"wip ?? undefined\"\n >\n <div class=\"flex items-center gap-2\">\n <Icon\n v-if=\"props.column.icon\"\n :name=\"props.column.icon\"\n class=\"text-muted-foreground size-4\"\n />\n <h3 :id=\"props.id\" class=\"min-w-0 truncate text-sm font-semibold\">\n {{ props.column.label }}\n </h3>\n <Badge\n variant=\"secondary\"\n :class=\"\n cn(\n 'h-5 px-1.5 tabular-nums',\n wip === 'over' && 'bg-destructive/15 text-destructive',\n wip === 'full' && 'bg-warning/15 text-warning',\n )\n \"\n :title=\"countLabel\"\n >\n <span aria-hidden=\"true\">{{\n props.column.wipLimit !== undefined\n ? `${props.column.count}/${props.column.wipLimit}`\n : shown\n }}</span>\n <span class=\"sr-only\">{{ countLabel }}</span>\n </Badge>\n <div class=\"ms-auto flex items-center\">\n <Button\n v-if=\"props.creatable\"\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n :aria-label=\"addLabel\"\n :title=\"addLabel\"\n @click=\"emit('create')\"\n >\n <PlusIcon aria-hidden=\"true\" />\n </Button>\n <Button\n v-if=\"props.column.collapsible\"\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n :aria-label=\"toggleLabel\"\n :title=\"toggleLabel\"\n :aria-expanded=\"true\"\n @click=\"emit('toggle')\"\n >\n <ChevronsRightLeftIcon aria-hidden=\"true\" />\n </Button>\n </div>\n </div>\n <p v-if=\"props.column.description\" class=\"text-muted-foreground line-clamp-2 text-xs\">\n {{ props.column.description }}\n </p>\n <p v-if=\"wip === 'over'\" class=\"text-destructive text-xs\">\n {{\n choice(\n 'kanban.wip_over',\n props.column.wipLimit ?? 0,\n { limit: props.column.wipLimit ?? 0 },\n '{1} Over the limit of :limit card|[0,*] Over the limit of :limit cards',\n )\n }}\n </p>\n <p v-if=\"wip === 'full' && props.column.wipStrict\" class=\"text-muted-foreground text-xs\">\n {{ t('kanban.wip_full', {}, 'This column is full') }}\n </p>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KanbanColumnHeader.vue.d.ts","sourceRoot":"","sources":["../../../src/components/kanban/KanbanColumnHeader.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"KanbanColumnHeader.vue.d.ts","sourceRoot":"","sources":["../../../src/components/kanban/KanbanColumnHeader.vue"],"names":[],"mappings":"AAqKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAWvD,KAAK,WAAW,GAAG;IACjB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAC;;;;;;;;AAiXF,wBAOG"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { cn as
|
|
3
|
-
import { cssColor as
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import { kanbanWipState as
|
|
8
|
-
import { computed as
|
|
9
|
-
import { ChevronsLeftRightIcon as
|
|
1
|
+
import { useChoice as e, useT as t } from "../../context.js";
|
|
2
|
+
import { cn as n } from "../../lib/utils.js";
|
|
3
|
+
import { cssColor as r } from "../../lib/colors.js";
|
|
4
|
+
import i from "../../lib/Icon.js";
|
|
5
|
+
import a from "../ui/Badge2.js";
|
|
6
|
+
import o from "../ui/Button2.js";
|
|
7
|
+
import { kanbanWipState as s } from "@alfakit/core";
|
|
8
|
+
import { computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createVNode as p, defineComponent as m, normalizeClass as h, normalizeStyle as g, openBlock as _, toDisplayString as v, unref as y, withCtx as b } from "vue";
|
|
9
|
+
import { ChevronsLeftRightIcon as x, ChevronsRightLeftIcon as S, PlusIcon as C } from "@lucide/vue";
|
|
10
10
|
//#region src/components/kanban/KanbanColumnHeader.vue?vue&type=script&setup=true&lang.ts
|
|
11
|
-
var
|
|
11
|
+
var w = ["data-column", "data-wip"], T = ["title"], E = ["id"], D = ["data-column", "data-wip"], O = { class: "flex items-center gap-2" }, k = ["id"], A = { "aria-hidden": "true" }, j = { class: "sr-only" }, M = { class: "ms-auto flex items-center" }, N = {
|
|
12
12
|
key: 0,
|
|
13
13
|
class: "text-muted-foreground line-clamp-2 text-xs"
|
|
14
|
-
},
|
|
14
|
+
}, P = {
|
|
15
15
|
key: 1,
|
|
16
16
|
class: "text-destructive text-xs"
|
|
17
|
-
},
|
|
17
|
+
}, F = {
|
|
18
18
|
key: 2,
|
|
19
19
|
class: "text-muted-foreground text-xs"
|
|
20
|
-
},
|
|
20
|
+
}, I = /*@__PURE__*/ m({
|
|
21
21
|
__name: "KanbanColumnHeader",
|
|
22
22
|
props: {
|
|
23
23
|
column: {},
|
|
@@ -27,103 +27,103 @@ var C = ["data-column", "data-wip"], w = ["title"], T = ["id"], E = ["data-colum
|
|
|
27
27
|
filtered: { type: Boolean }
|
|
28
28
|
},
|
|
29
29
|
emits: ["toggle", "create"],
|
|
30
|
-
setup(
|
|
31
|
-
let
|
|
32
|
-
let e =
|
|
33
|
-
return e.wipLimit === void 0 ?
|
|
30
|
+
setup(m, { emit: I }) {
|
|
31
|
+
let L = m, R = I, z = t(), B = e(), V = c(() => s(L.column)), H = c(() => L.column.wipLimit === void 0 && L.filtered ? L.column.total : L.column.count), U = c(() => {
|
|
32
|
+
let e = L.column;
|
|
33
|
+
return e.wipLimit === void 0 ? L.filtered && e.total !== e.count ? z("kanban.count_filtered", {
|
|
34
34
|
shown: e.total,
|
|
35
35
|
count: e.count
|
|
36
|
-
}, ":shown of :count cards") :
|
|
36
|
+
}, ":shown of :count cards") : B("kanban.count", e.count, {}, "{1} :count card|[0,*] :count cards") : z("kanban.wip", {
|
|
37
37
|
count: e.count,
|
|
38
38
|
limit: e.wipLimit
|
|
39
39
|
}, ":count of :limit");
|
|
40
|
-
}),
|
|
41
|
-
return (e,
|
|
40
|
+
}), W = c(() => L.column.color ? { borderTopColor: r(L.column.color) } : void 0), G = c(() => L.collapsed ? z("kanban.expand", { column: L.column.label }, "Expand :column") : z("kanban.collapse", { column: L.column.label }, "Collapse :column")), K = c(() => z("kanban.add_card", { column: L.column.label }, "Add a card to :column"));
|
|
41
|
+
return (e, t) => L.collapsed ? (_(), d("div", {
|
|
42
42
|
key: 0,
|
|
43
43
|
class: "bg-muted/60 flex snap-start flex-col items-center gap-2 rounded-lg border border-t-4 px-1 py-2",
|
|
44
|
-
style:
|
|
44
|
+
style: g(W.value),
|
|
45
45
|
"data-slot": "kanban-column-header",
|
|
46
|
-
"data-column":
|
|
46
|
+
"data-column": L.column.key,
|
|
47
47
|
"data-collapsed": "",
|
|
48
|
-
"data-wip":
|
|
48
|
+
"data-wip": V.value ?? void 0
|
|
49
49
|
}, [
|
|
50
|
-
|
|
50
|
+
p(o, {
|
|
51
51
|
type: "button",
|
|
52
52
|
variant: "ghost",
|
|
53
53
|
size: "icon-xs",
|
|
54
|
-
"aria-label":
|
|
54
|
+
"aria-label": G.value,
|
|
55
55
|
"aria-expanded": !1,
|
|
56
|
-
onClick:
|
|
56
|
+
onClick: t[0] ||= (e) => R("toggle")
|
|
57
57
|
}, {
|
|
58
|
-
default:
|
|
58
|
+
default: b(() => [p(y(x), { "aria-hidden": "true" })]),
|
|
59
59
|
_: 1
|
|
60
60
|
}, 8, ["aria-label"]),
|
|
61
|
-
|
|
61
|
+
f("span", {
|
|
62
62
|
class: "text-muted-foreground text-xs tabular-nums",
|
|
63
|
-
title:
|
|
64
|
-
},
|
|
65
|
-
|
|
66
|
-
id:
|
|
63
|
+
title: U.value
|
|
64
|
+
}, v(H.value), 9, T),
|
|
65
|
+
f("h3", {
|
|
66
|
+
id: L.id,
|
|
67
67
|
class: "text-sm font-medium [writing-mode:vertical-rl]"
|
|
68
|
-
},
|
|
69
|
-
], 12,
|
|
68
|
+
}, v(L.column.label), 9, E)
|
|
69
|
+
], 12, w)) : (_(), d("div", {
|
|
70
70
|
key: 1,
|
|
71
71
|
class: "bg-muted/60 flex snap-start flex-col gap-1 rounded-lg border border-t-4 px-3 py-2",
|
|
72
|
-
style:
|
|
72
|
+
style: g(W.value),
|
|
73
73
|
"data-slot": "kanban-column-header",
|
|
74
|
-
"data-column":
|
|
75
|
-
"data-wip":
|
|
74
|
+
"data-column": L.column.key,
|
|
75
|
+
"data-wip": V.value ?? void 0
|
|
76
76
|
}, [
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
f("div", O, [
|
|
78
|
+
L.column.icon ? (_(), l(y(i), {
|
|
79
79
|
key: 0,
|
|
80
|
-
name:
|
|
80
|
+
name: L.column.icon,
|
|
81
81
|
class: "text-muted-foreground size-4"
|
|
82
|
-
}, null, 8, ["name"])) :
|
|
83
|
-
|
|
84
|
-
id:
|
|
82
|
+
}, null, 8, ["name"])) : u("", !0),
|
|
83
|
+
f("h3", {
|
|
84
|
+
id: L.id,
|
|
85
85
|
class: "min-w-0 truncate text-sm font-semibold"
|
|
86
|
-
},
|
|
87
|
-
|
|
86
|
+
}, v(L.column.label), 9, k),
|
|
87
|
+
p(a, {
|
|
88
88
|
variant: "secondary",
|
|
89
|
-
class:
|
|
90
|
-
title:
|
|
89
|
+
class: h(y(n)("h-5 px-1.5 tabular-nums", V.value === "over" && "bg-destructive/15 text-destructive", V.value === "full" && "bg-warning/15 text-warning")),
|
|
90
|
+
title: U.value
|
|
91
91
|
}, {
|
|
92
|
-
default:
|
|
92
|
+
default: b(() => [f("span", A, v(L.column.wipLimit === void 0 ? H.value : `${L.column.count}/${L.column.wipLimit}`), 1), f("span", j, v(U.value), 1)]),
|
|
93
93
|
_: 1
|
|
94
94
|
}, 8, ["class", "title"]),
|
|
95
|
-
|
|
95
|
+
f("div", M, [L.creatable ? (_(), l(o, {
|
|
96
96
|
key: 0,
|
|
97
97
|
type: "button",
|
|
98
98
|
variant: "ghost",
|
|
99
99
|
size: "icon-xs",
|
|
100
|
-
"aria-label":
|
|
101
|
-
title:
|
|
102
|
-
onClick:
|
|
100
|
+
"aria-label": K.value,
|
|
101
|
+
title: K.value,
|
|
102
|
+
onClick: t[1] ||= (e) => R("create")
|
|
103
103
|
}, {
|
|
104
|
-
default:
|
|
104
|
+
default: b(() => [p(y(C), { "aria-hidden": "true" })]),
|
|
105
105
|
_: 1
|
|
106
|
-
}, 8, ["aria-label", "title"])) :
|
|
106
|
+
}, 8, ["aria-label", "title"])) : u("", !0), L.column.collapsible ? (_(), l(o, {
|
|
107
107
|
key: 1,
|
|
108
108
|
type: "button",
|
|
109
109
|
variant: "ghost",
|
|
110
110
|
size: "icon-xs",
|
|
111
|
-
"aria-label":
|
|
112
|
-
title:
|
|
111
|
+
"aria-label": G.value,
|
|
112
|
+
title: G.value,
|
|
113
113
|
"aria-expanded": !0,
|
|
114
|
-
onClick:
|
|
114
|
+
onClick: t[2] ||= (e) => R("toggle")
|
|
115
115
|
}, {
|
|
116
|
-
default:
|
|
116
|
+
default: b(() => [p(y(S), { "aria-hidden": "true" })]),
|
|
117
117
|
_: 1
|
|
118
|
-
}, 8, ["aria-label", "title"])) :
|
|
118
|
+
}, 8, ["aria-label", "title"])) : u("", !0)])
|
|
119
119
|
]),
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
], 12,
|
|
120
|
+
L.column.description ? (_(), d("p", N, v(L.column.description), 1)) : u("", !0),
|
|
121
|
+
V.value === "over" ? (_(), d("p", P, v(y(B)("kanban.wip_over", L.column.wipLimit ?? 0, { limit: L.column.wipLimit ?? 0 }, "{1} Over the limit of :limit card|[0,*] Over the limit of :limit cards")), 1)) : u("", !0),
|
|
122
|
+
V.value === "full" && L.column.wipStrict ? (_(), d("p", F, v(y(z)("kanban.wip_full", {}, "This column is full")), 1)) : u("", !0)
|
|
123
|
+
], 12, D));
|
|
124
124
|
}
|
|
125
125
|
});
|
|
126
126
|
//#endregion
|
|
127
|
-
export {
|
|
127
|
+
export { I as default };
|
|
128
128
|
|
|
129
129
|
//# sourceMappingURL=KanbanColumnHeader.vue_vue_type_script_setup_true_lang.js.map
|
package/dist/components/kanban/KanbanColumnHeader.vue_vue_type_script_setup_true_lang.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KanbanColumnHeader.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_normalizeStyle","_createVNode","Button","_withCtx","_unref","_createElementVNode","_toDisplayString","_createBlock","Icon","_createCommentVNode","Badge","_normalizeClass","Icon_default","Badge_default","Button_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","KanbanColumnHeader_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","t","useT","wip","computed","kanbanWipState","shown","countLabel","column","style","cssColor","toggleLabel","addLabel","openBlock","createElementBlock","normalizeStyle","createVNode","_cache","withCtx","unref","ChevronsLeftRightIcon","createElementVNode","toDisplayString","createBlock","createCommentVNode","normalizeClass","cn","PlusIcon","ChevronsRightLeftIcon"],"sources":["../../../src/components/kanban/KanbanColumnHeader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { KanbanColumnSchema } from '@alfakit/core'\nimport { kanbanWipState } from '@alfakit/core'\nimport { ChevronsLeftRightIcon, ChevronsRightLeftIcon, PlusIcon } from '@lucide/vue'\nimport { computed } from 'vue'\nimport { useT } from '../../context'\nimport { cssColor } from '../../lib/colors'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\nimport Badge from '../ui/Badge.vue'\nimport Button from '../ui/Button.vue'\n\nconst props = defineProps<{\n column: KanbanColumnSchema\n id: string\n collapsed: boolean\n creatable: boolean\n filtered: boolean\n}>()\nconst emit = defineEmits<{ toggle: []; create: [] }>()\nconst t = useT()\n\nconst wip = computed(() => kanbanWipState(props.column))\nconst shown = computed(() =>\n props.column.wipLimit !== undefined\n ? props.column.count\n : props.filtered\n ? props.column.total\n : props.column.count,\n)\nconst countLabel = computed(() => {\n const column = props.column\n\n if (column.wipLimit !== undefined) {\n return t('kanban.wip', { count: column.count, limit: column.wipLimit }, ':count of :limit')\n }\n\n return props.filtered && column.total !== column.count\n ? t(\n 'kanban.count_filtered',\n { shown: column.total, count: column.count },\n ':shown of :count cards',\n )\n :
|
|
1
|
+
{"version":3,"file":"KanbanColumnHeader.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_normalizeStyle","_createVNode","Button","_withCtx","_unref","_createElementVNode","_toDisplayString","_createBlock","Icon","_createCommentVNode","Badge","_normalizeClass","Icon_default","Badge_default","Button_default","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","KanbanColumnHeader_vue_vue_type_script_setup_true_lang_default","__emit","props","__props","emit","t","useT","choice","useChoice","wip","computed","kanbanWipState","shown","countLabel","column","style","cssColor","toggleLabel","addLabel","openBlock","createElementBlock","normalizeStyle","createVNode","_cache","withCtx","unref","ChevronsLeftRightIcon","createElementVNode","toDisplayString","createBlock","createCommentVNode","normalizeClass","cn","PlusIcon","ChevronsRightLeftIcon"],"sources":["../../../src/components/kanban/KanbanColumnHeader.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { KanbanColumnSchema } from '@alfakit/core'\nimport { kanbanWipState } from '@alfakit/core'\nimport { ChevronsLeftRightIcon, ChevronsRightLeftIcon, PlusIcon } from '@lucide/vue'\nimport { computed } from 'vue'\nimport { useChoice, useT } from '../../context'\nimport { cssColor } from '../../lib/colors'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\nimport Badge from '../ui/Badge.vue'\nimport Button from '../ui/Button.vue'\n\nconst props = defineProps<{\n column: KanbanColumnSchema\n id: string\n collapsed: boolean\n creatable: boolean\n filtered: boolean\n}>()\nconst emit = defineEmits<{ toggle: []; create: [] }>()\nconst t = useT()\nconst choice = useChoice()\n\nconst wip = computed(() => kanbanWipState(props.column))\nconst shown = computed(() =>\n props.column.wipLimit !== undefined\n ? props.column.count\n : props.filtered\n ? props.column.total\n : props.column.count,\n)\nconst countLabel = computed(() => {\n const column = props.column\n\n if (column.wipLimit !== undefined) {\n return t('kanban.wip', { count: column.count, limit: column.wipLimit }, ':count of :limit')\n }\n\n return props.filtered && column.total !== column.count\n ? t(\n 'kanban.count_filtered',\n { shown: column.total, count: column.count },\n ':shown of :count cards',\n )\n : choice('kanban.count', column.count, {}, '{1} :count card|[0,*] :count cards')\n})\nconst style = computed(() =>\n props.column.color ? { borderTopColor: cssColor(props.column.color) } : undefined,\n)\nconst toggleLabel = computed(() =>\n props.collapsed\n ? t('kanban.expand', { column: props.column.label }, 'Expand :column')\n : t('kanban.collapse', { column: props.column.label }, 'Collapse :column'),\n)\nconst addLabel = computed(() =>\n t('kanban.add_card', { column: props.column.label }, 'Add a card to :column'),\n)\n</script>\n\n<template>\n <div\n v-if=\"props.collapsed\"\n class=\"bg-muted/60 flex snap-start flex-col items-center gap-2 rounded-lg border border-t-4 px-1 py-2\"\n :style=\"style\"\n data-slot=\"kanban-column-header\"\n :data-column=\"props.column.key\"\n data-collapsed=\"\"\n :data-wip=\"wip ?? undefined\"\n >\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n :aria-label=\"toggleLabel\"\n :aria-expanded=\"false\"\n @click=\"emit('toggle')\"\n >\n <ChevronsLeftRightIcon aria-hidden=\"true\" />\n </Button>\n <span class=\"text-muted-foreground text-xs tabular-nums\" :title=\"countLabel\">{{ shown }}</span>\n <h3 :id=\"props.id\" class=\"text-sm font-medium [writing-mode:vertical-rl]\">\n {{ props.column.label }}\n </h3>\n </div>\n <div\n v-else\n class=\"bg-muted/60 flex snap-start flex-col gap-1 rounded-lg border border-t-4 px-3 py-2\"\n :style=\"style\"\n data-slot=\"kanban-column-header\"\n :data-column=\"props.column.key\"\n :data-wip=\"wip ?? undefined\"\n >\n <div class=\"flex items-center gap-2\">\n <Icon\n v-if=\"props.column.icon\"\n :name=\"props.column.icon\"\n class=\"text-muted-foreground size-4\"\n />\n <h3 :id=\"props.id\" class=\"min-w-0 truncate text-sm font-semibold\">\n {{ props.column.label }}\n </h3>\n <Badge\n variant=\"secondary\"\n :class=\"\n cn(\n 'h-5 px-1.5 tabular-nums',\n wip === 'over' && 'bg-destructive/15 text-destructive',\n wip === 'full' && 'bg-warning/15 text-warning',\n )\n \"\n :title=\"countLabel\"\n >\n <span aria-hidden=\"true\">{{\n props.column.wipLimit !== undefined\n ? `${props.column.count}/${props.column.wipLimit}`\n : shown\n }}</span>\n <span class=\"sr-only\">{{ countLabel }}</span>\n </Badge>\n <div class=\"ms-auto flex items-center\">\n <Button\n v-if=\"props.creatable\"\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n :aria-label=\"addLabel\"\n :title=\"addLabel\"\n @click=\"emit('create')\"\n >\n <PlusIcon aria-hidden=\"true\" />\n </Button>\n <Button\n v-if=\"props.column.collapsible\"\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-xs\"\n :aria-label=\"toggleLabel\"\n :title=\"toggleLabel\"\n :aria-expanded=\"true\"\n @click=\"emit('toggle')\"\n >\n <ChevronsRightLeftIcon aria-hidden=\"true\" />\n </Button>\n </div>\n </div>\n <p v-if=\"props.column.description\" class=\"text-muted-foreground line-clamp-2 text-xs\">\n {{ props.column.description }}\n </p>\n <p v-if=\"wip === 'over'\" class=\"text-destructive text-xs\">\n {{\n choice(\n 'kanban.wip_over',\n props.column.wipLimit ?? 0,\n { limit: props.column.wipLimit ?? 0 },\n '{1} Over the limit of :limit card|[0,*] Over the limit of :limit cards',\n )\n }}\n </p>\n <p v-if=\"wip === 'full' && props.column.wipStrict\" class=\"text-muted-foreground text-xs\">\n {{ t('kanban.wip_full', {}, 'This column is full') }}\n </p>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYA,IAAM+B,IAAQC,GAORC,IAAOH,GACPI,IAAIC,EAAK,GACTC,IAASC,EAAU,GAEnBC,IAAMC,QAAeC,EAAeT,EAAM,MAAM,CAAC,GACjDU,IAAQF,QACZR,EAAM,OAAO,aAAa,KAAA,KAEtBA,EAAM,WACJA,EAAM,OAAO,QACbA,EAAM,OAAO,KACrB,GACMW,IAAaH,QAAe;GAChC,IAAMI,IAASZ,EAAM;GAMrB,OAJIY,EAAO,aAAa,KAAA,IAIjBZ,EAAM,YAAYY,EAAO,UAAUA,EAAO,QAC7CT,EACE,yBACA;IAAE,OAAOS,EAAO;IAAO,OAAOA,EAAO;GAAM,GAC3C,wBACF,IACAP,EAAO,gBAAgBO,EAAO,OAAO,CAAC,GAAG,oCAAoC,IATxET,EAAE,cAAc;IAAE,OAAOS,EAAO;IAAO,OAAOA,EAAO;GAAS,GAAG,kBAAkB;EAU9F,CAAC,GACKC,IAAQL,QACZR,EAAM,OAAO,QAAQ,EAAE,gBAAgBc,EAASd,EAAM,OAAO,KAAK,EAAE,IAAI,KAAA,CAC1E,GACMe,IAAcP,QAClBR,EAAM,YACFG,EAAE,iBAAiB,EAAE,QAAQH,EAAM,OAAO,MAAM,GAAG,gBAAgB,IACnEG,EAAE,mBAAmB,EAAE,QAAQH,EAAM,OAAO,MAAM,GAAG,kBAAkB,CAC7E,GACMgB,IAAWR,QACfL,EAAE,mBAAmB,EAAE,QAAQH,EAAM,OAAO,MAAM,GAAG,uBAAuB,CAC9E;mBAKUA,EAAM,aADd/B,EAAA,GAAAC,EAuBM,OAAA;;GArBJ,OAAM;GACL,OAAKC,EAAE0C,EAAA,KAAK;GACb,aAAU;GACT,eAAab,EAAM,OAAO;GAC3B,kBAAe;GACd,YAAUO,EAAA,SAAO,KAAA;;GAElBnC,EASSC,GAAA;IARP,MAAK;IACL,SAAQ;IACR,MAAK;IACJ,cAAY0C,EAAA;IACZ,iBAAe;IACf,SAAK,AAAAM,EAAA,QAAA,MAAEnB,EAAI,QAAA;;IAEZ,SAAA5B,QAA4C,CAA5CF,EAA4CG,EAAAiD,CAAA,GAAA,EAArB,eAAY,OAAM,CAAA,CAAA,CAAA;;;GAE3ChD,EAA+F,QAAA;IAAzF,OAAM;IAA8C,OAAOmC,EAAA;GAAe,GAAAlC,EAAAiC,EAAA,KAAK,GAAA,GAAAvB,CAAA;GACrFX,EAEK,MAAA;IAFA,IAAIwB,EAAM;IAAI,OAAM;GACpB,GAAAvB,EAAAuB,EAAM,OAAO,KAAK,GAAA,GAAAZ,CAAA;EAGzBnB,GAAAA,IAAAA,CAAAA,MAAAA,EAAA,GAAAC,EA6EM,OAAA;;GA3EJ,OAAM;GACL,OAAKC,EAAE0C,EAAA,KAAK;GACb,aAAU;GACT,eAAab,EAAM,OAAO;GAC1B,YAAUO,EAAA,SAAO,KAAA;;GAElB/B,EAoDM,OApDNc,GAoDM;IAlDIU,EAAM,OAAO,QADrB/B,EAAA,GAAAS,EAIEH,EAAAI,CAAA,GAAA;;KAFC,MAAMqB,EAAM,OAAO;KACpB,OAAM;;IAERxB,EAEK,MAAA;KAFA,IAAIwB,EAAM;KAAI,OAAM;IACpB,GAAAvB,EAAAuB,EAAM,OAAO,KAAK,GAAA,GAAAT,CAAA;IAEvBnB,EAiBQS,GAAA;KAhBN,SAAQ;KACP,OAAKC,EAAaP,EAAAuD,CAAA,CAAE,CAAA,2BAAqDvB,EAAA,UAAG,UAAA,sCAAiEA,EAAA,UAAG,UAAA,4BAAA,CAAA;KAOhJ,OAAOI,EAAA;;KAER,SAAArC,QAIS,CAJTE,EAIS,QAJTgB,GAISf,EAHPuB,EAAM,OAAO,aAAa,KAAA,IAAuFU,EAAA,QAA5D,GAAAV,EAAM,OAAO,MAAK,GAAIA,EAAM,OAAO,UAA8B,GAAA,CAAA,GAIxHxB,EAA6C,QAA7CiB,GAA6ChB,EAApBkC,EAAA,KAAU,GAAA,CAAA,CAAA,CAAA;;;IAErCnC,EAwBM,OAxBNkB,GAwBM,CAtBIM,EAAM,aADd/B,EAAA,GAAAS,EAUSL,GAAA;;KARP,MAAK;KACL,SAAQ;KACR,MAAK;KACJ,cAAY2C,EAAA;KACZ,OAAOA,EAAA;KACP,SAAK,AAAAK,EAAA,QAAA,MAAEnB,EAAI,QAAA;;KAEZ,SAAA5B,QAA+B,CAA/BF,EAA+BG,EAAAwD,CAAA,GAAA,EAArB,eAAY,OAAM,CAAA,CAAA,CAAA;;IAGtB,GAAA,GAAA,CAAA,cAAA,OAAA,CAAA,KAAAH,EAAA,IAAA,EAAA,GAAA5B,EAAM,OAAO,eADrB/B,EAAA,GAAAS,EAWSL,GAAA;;KATP,MAAK;KACL,SAAQ;KACR,MAAK;KACJ,cAAY0C,EAAA;KACZ,OAAOA,EAAA;KACP,iBAAe;KACf,SAAK,AAAAM,EAAA,QAAA,MAAEnB,EAAI,QAAA;;KAEZ,SAAA5B,QAA4C,CAA5CF,EAA4CG,EAAAyD,CAAA,GAAA,EAArB,eAAY,OAAM,CAAA,CAAA,CAAA;;;;GAItChC,EAAM,OAAO,eAAtB/B,EAAA,GAAAC,EAEI,KAFJyB,GAEIlB,EADCuB,EAAM,OAAO,WAAW,GAAA,CAAA,KAAA4B,EAAA,IAAA,EAAA;GAEpBrB,EAAA,UAAG,UAAZtC,EAAA,GAAAC,EASI,KATJ0B,GASInB,EAPAF,EAAA8B,CAAA,CAAM,CAAA,mBAAyCL,EAAM,OAAO,YAAQ,GAA0B,EAAA,OAAAA,EAAM,OAAO,YAAQ,EAAA,GAAA,wEAAA,CAAA,GAAA,CAAA,KAAA4B,EAAA,IAAA,EAAA;GAQ9GrB,EAAA,UAAG,UAAeP,EAAM,OAAO,aAAxC/B,EAAA,GAAAC,EAEI,KAFJ2B,GAEIpB,EADCF,EAAA4B,CAAA,CAAC,CAAA,mBAAA,CAAA,GAAA,qBAAA,CAAA,GAAA,CAAA,KAAAyB,EAAA,IAAA,EAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FusedGroupComponent.js","names":["_sfc_main","FusedGroupComponent_vue_vue_type_script_setup_true_lang_default","FusedGroupComponent_default"],"sources":["../../../src/components/layout/FusedGroupComponent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { FusedGroupSchema } from '@alfakit/core'\nimport { collectFieldStatePaths, gridColumnsClasses } from '@alfakit/core'\nimport { computed, shallowRef, useId } from 'vue'\nimport { useStore } from '../../composables/use-store'\nimport { cn } from '../../lib/utils'\nimport { useOptionalFormStore } from '../form/form-context'\nimport { provideFusedGroup } from '../schema/fused-group'\nimport RenderComponent from '../schema/RenderComponent.vue'\n\n/**\n * Fields fused into one control: one border around them (styled by `themes.css`), the\n * group label above, and the fields' validation errors below.\n */\nconst props = defineProps<{ component: FusedGroupSchema }>()\n\nprovideFusedGroup()\n\nconst labelId = `${useId()}-label`\nconst store = useOptionalFormStore()\nconst state = store ? useStore(store.store) : shallowRef(null)\nconst paths = computed(() => collectFieldStatePaths(props.component.schema))\nconst errors = computed(() =>\n state.value\n ? paths.value\n .map((path) => state.value?.errors[path]?.[0])\n .filter((message): message is string => Boolean(message))\n : [],\n)\n</script>\n\n<template>\n <div\n data-slot=\"fused-group\"\n role=\"group\"\n :aria-labelledby=\"props.component.label ? labelId : undefined\"\n class=\"flex flex-col gap-1.5\"\n v-bind=\"props.component.extraAttributes\"\n >\n <span\n v-if=\"props.component.label\"\n :id=\"labelId\"\n class=\"text-sm leading-none font-medium select-none\"\n >\n {{ props.component.label }}\n </span>\n <div\n data-slot=\"fused-group-controls\"\n :data-invalid=\"errors.length ? '' : undefined\"\n :class=\"cn('grid', gridColumnsClasses(props.component.columns ?? { default: 1 }))\"\n >\n <RenderComponent\n v-for=\"child in props.component.schema ?? []\"\n :key=\"child.key\"\n :component=\"child\"\n />\n </div>\n <!-- The fields announce their own errors; this list is the visible copy. -->\n <div v-if=\"errors.length\" aria-hidden=\"true\" class=\"flex flex-col gap-0.5\">\n <p v-for=\"(message, index) in errors\" :key=\"index\" class=\"text-destructive text-xs\">\n {{ message }}\n </p>\n </div>\n </div>\n</template>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"FusedGroupComponent.js","names":["_sfc_main","FusedGroupComponent_vue_vue_type_script_setup_true_lang_default","FusedGroupComponent_default"],"sources":["../../../src/components/layout/FusedGroupComponent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { FusedGroupSchema } from '@alfakit/core'\nimport { collectFieldStatePaths, gridColumnsClasses } from '@alfakit/core'\nimport { computed, shallowRef, useId } from 'vue'\nimport { useStore } from '../../composables/use-store'\nimport { cn } from '../../lib/utils'\nimport { useOptionalFormStore } from '../form/form-context'\nimport { provideFusedGroup } from '../schema/fused-group'\nimport RenderComponent from '../schema/RenderComponent.vue'\n\n/**\n * Fields fused into one control: one border around them (styled by `themes.css`), the\n * group label above, and the fields' validation errors below.\n */\nconst props = defineProps<{ component: FusedGroupSchema }>()\n\nprovideFusedGroup()\n\nconst labelId = `${useId()}-label`\nconst store = useOptionalFormStore()\nconst state = store ? useStore(store.store) : shallowRef(null)\nconst paths = computed(() => collectFieldStatePaths(props.component.schema))\nconst errors = computed(() =>\n state.value\n ? paths.value\n .map((path) => state.value?.errors[path]?.[0])\n .filter((message): message is string => Boolean(message))\n : [],\n)\n</script>\n\n<template>\n <div\n data-slot=\"fused-group\"\n role=\"group\"\n :aria-labelledby=\"props.component.label ? labelId : undefined\"\n class=\"flex flex-col gap-1.5\"\n v-bind=\"props.component.extraAttributes\"\n >\n <span\n v-if=\"props.component.label\"\n :id=\"labelId\"\n data-slot=\"label\"\n class=\"text-sm leading-none font-medium select-none\"\n >\n {{ props.component.label }}\n </span>\n <div\n data-slot=\"fused-group-controls\"\n :data-invalid=\"errors.length ? '' : undefined\"\n :class=\"cn('grid', gridColumnsClasses(props.component.columns ?? { default: 1 }))\"\n >\n <RenderComponent\n v-for=\"child in props.component.schema ?? []\"\n :key=\"child.key\"\n :component=\"child\"\n />\n </div>\n <!-- The fields announce their own errors; this list is the visible copy. -->\n <div v-if=\"errors.length\" aria-hidden=\"true\" class=\"flex flex-col gap-0.5\">\n <p v-for=\"(message, index) in errors\" :key=\"index\" class=\"text-destructive text-xs\">\n {{ message }}\n </p>\n </div>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FusedGroupComponent.vue.d.ts","sourceRoot":"","sources":["../../../src/components/layout/FusedGroupComponent.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"FusedGroupComponent.vue.d.ts","sourceRoot":"","sources":["../../../src/components/layout/FusedGroupComponent.vue"],"names":[],"mappings":"AAoEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AASrD;;;GAGG;AACH,KAAK,WAAW,GAAG;IAAE,SAAS,EAAE,gBAAgB,CAAA;CAAE,CAAC;;AA0GnD,wBAMG"}
|
package/dist/components/layout/FusedGroupComponent.vue_vue_type_script_setup_true_lang.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FusedGroupComponent.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_mergeProps","_toDisplayString","_createCommentVNode","_createElementVNode","_normalizeClass","_unref","_Fragment","_renderList","_createBlock","RenderComponent","RenderComponent_default","_hoisted_1","_hoisted_2","_hoisted_3","FusedGroupComponent_vue_vue_type_script_setup_true_lang_default","props","__props","labelId","useId","store","useOptionalFormStore","state","useStore","shallowRef","paths","computed","collectFieldStatePaths","errors","path","message","openBlock","createElementBlock","mergeProps","toDisplayString","createCommentVNode","createElementVNode","normalizeClass","unref","cn","gridColumnsClasses","Fragment","renderList","createBlock","child","index"],"sources":["../../../src/components/layout/FusedGroupComponent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { FusedGroupSchema } from '@alfakit/core'\nimport { collectFieldStatePaths, gridColumnsClasses } from '@alfakit/core'\nimport { computed, shallowRef, useId } from 'vue'\nimport { useStore } from '../../composables/use-store'\nimport { cn } from '../../lib/utils'\nimport { useOptionalFormStore } from '../form/form-context'\nimport { provideFusedGroup } from '../schema/fused-group'\nimport RenderComponent from '../schema/RenderComponent.vue'\n\n/**\n * Fields fused into one control: one border around them (styled by `themes.css`), the\n * group label above, and the fields' validation errors below.\n */\nconst props = defineProps<{ component: FusedGroupSchema }>()\n\nprovideFusedGroup()\n\nconst labelId = `${useId()}-label`\nconst store = useOptionalFormStore()\nconst state = store ? useStore(store.store) : shallowRef(null)\nconst paths = computed(() => collectFieldStatePaths(props.component.schema))\nconst errors = computed(() =>\n state.value\n ? paths.value\n .map((path) => state.value?.errors[path]?.[0])\n .filter((message): message is string => Boolean(message))\n : [],\n)\n</script>\n\n<template>\n <div\n data-slot=\"fused-group\"\n role=\"group\"\n :aria-labelledby=\"props.component.label ? labelId : undefined\"\n class=\"flex flex-col gap-1.5\"\n v-bind=\"props.component.extraAttributes\"\n >\n <span\n v-if=\"props.component.label\"\n :id=\"labelId\"\n class=\"text-sm leading-none font-medium select-none\"\n >\n {{ props.component.label }}\n </span>\n <div\n data-slot=\"fused-group-controls\"\n :data-invalid=\"errors.length ? '' : undefined\"\n :class=\"cn('grid', gridColumnsClasses(props.component.columns ?? { default: 1 }))\"\n >\n <RenderComponent\n v-for=\"child in props.component.schema ?? []\"\n :key=\"child.key\"\n :component=\"child\"\n />\n </div>\n <!-- The fields announce their own errors; this list is the visible copy. -->\n <div v-if=\"errors.length\" aria-hidden=\"true\" class=\"flex flex-col gap-0.5\">\n <p v-for=\"(message, index) in errors\" :key=\"index\" class=\"text-destructive text-xs\">\n {{ message }}\n </p>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;EAcA,IAAMiB,IAAQC;EAEd,EAAkB;EAElB,IAAMC,IAAU,GAAGC,EAAM,EAAE,SACrBC,IAAQC,EAAqB,GAC7BC,IAAQF,IAAQG,EAASH,EAAM,KAAK,IAAII,EAAW,IAAI,GACvDC,IAAQC,QAAeC,EAAuBX,EAAM,UAAU,MAAM,CAAC,GACrEY,IAASF,QACbJ,EAAM,QACFG,EAAM,MACH,KAAK,MAASH,EAAM,OAAO,OAAOO,EAAK,GAAG,EAAE,CAAA,CAC5C,QAAQ,MAA+B,EAAQC,CAAQ,IAC1D,CAAC,CACP;oBAIE/B,EAAA,GAAAC,
|
|
1
|
+
{"version":3,"file":"FusedGroupComponent.vue_vue_type_script_setup_true_lang.js","names":["_openBlock","_createElementBlock","_mergeProps","_toDisplayString","_createCommentVNode","_createElementVNode","_normalizeClass","_unref","_Fragment","_renderList","_createBlock","RenderComponent","RenderComponent_default","_hoisted_1","_hoisted_2","_hoisted_3","FusedGroupComponent_vue_vue_type_script_setup_true_lang_default","props","__props","labelId","useId","store","useOptionalFormStore","state","useStore","shallowRef","paths","computed","collectFieldStatePaths","errors","path","message","openBlock","createElementBlock","mergeProps","toDisplayString","createCommentVNode","createElementVNode","normalizeClass","unref","cn","gridColumnsClasses","Fragment","renderList","createBlock","child","index"],"sources":["../../../src/components/layout/FusedGroupComponent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { FusedGroupSchema } from '@alfakit/core'\nimport { collectFieldStatePaths, gridColumnsClasses } from '@alfakit/core'\nimport { computed, shallowRef, useId } from 'vue'\nimport { useStore } from '../../composables/use-store'\nimport { cn } from '../../lib/utils'\nimport { useOptionalFormStore } from '../form/form-context'\nimport { provideFusedGroup } from '../schema/fused-group'\nimport RenderComponent from '../schema/RenderComponent.vue'\n\n/**\n * Fields fused into one control: one border around them (styled by `themes.css`), the\n * group label above, and the fields' validation errors below.\n */\nconst props = defineProps<{ component: FusedGroupSchema }>()\n\nprovideFusedGroup()\n\nconst labelId = `${useId()}-label`\nconst store = useOptionalFormStore()\nconst state = store ? useStore(store.store) : shallowRef(null)\nconst paths = computed(() => collectFieldStatePaths(props.component.schema))\nconst errors = computed(() =>\n state.value\n ? paths.value\n .map((path) => state.value?.errors[path]?.[0])\n .filter((message): message is string => Boolean(message))\n : [],\n)\n</script>\n\n<template>\n <div\n data-slot=\"fused-group\"\n role=\"group\"\n :aria-labelledby=\"props.component.label ? labelId : undefined\"\n class=\"flex flex-col gap-1.5\"\n v-bind=\"props.component.extraAttributes\"\n >\n <span\n v-if=\"props.component.label\"\n :id=\"labelId\"\n data-slot=\"label\"\n class=\"text-sm leading-none font-medium select-none\"\n >\n {{ props.component.label }}\n </span>\n <div\n data-slot=\"fused-group-controls\"\n :data-invalid=\"errors.length ? '' : undefined\"\n :class=\"cn('grid', gridColumnsClasses(props.component.columns ?? { default: 1 }))\"\n >\n <RenderComponent\n v-for=\"child in props.component.schema ?? []\"\n :key=\"child.key\"\n :component=\"child\"\n />\n </div>\n <!-- The fields announce their own errors; this list is the visible copy. -->\n <div v-if=\"errors.length\" aria-hidden=\"true\" class=\"flex flex-col gap-0.5\">\n <p v-for=\"(message, index) in errors\" :key=\"index\" class=\"text-destructive text-xs\">\n {{ message }}\n </p>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;EAcA,IAAMiB,IAAQC;EAEd,EAAkB;EAElB,IAAMC,IAAU,GAAGC,EAAM,EAAE,SACrBC,IAAQC,EAAqB,GAC7BC,IAAQF,IAAQG,EAASH,EAAM,KAAK,IAAII,EAAW,IAAI,GACvDC,IAAQC,QAAeC,EAAuBX,EAAM,UAAU,MAAM,CAAC,GACrEY,IAASF,QACbJ,EAAM,QACFG,EAAM,MACH,KAAK,MAASH,EAAM,OAAO,OAAOO,EAAK,GAAG,EAAE,CAAA,CAC5C,QAAQ,MAA+B,EAAQC,CAAQ,IAC1D,CAAC,CACP;oBAIE/B,EAAA,GAAAC,EAgCM,OAhCNC,EAgCM;GA/BJ,aAAU;GACV,MAAK;GACJ,mBAAiBe,EAAM,UAAU,QAAQE,IAAU,KAAA;GACpD,OAAM;EACE,GAAAF,EAAM,UAAU,eAAe,GAAA;GAG/BA,EAAM,UAAU,SADxBjB,EAAA,GAAAC,EAOO,QAAA;;IALJ,IAAIkB;IACL,aAAU;IACV,OAAM;GAEH,GAAAhB,EAAAc,EAAM,UAAU,KAAK,GAAA,CAAA,KAAAmB,EAAA,IAAA,EAAA;GAE1B/B,EAUM,OAAA;IATJ,aAAU;IACT,gBAAcwB,EAAA,MAAO,SAAM,KAAQ,KAAA;IACnC,OAAKvB,EAAEC,EAAAiC,CAAA,CAAE,CAAA,QAASjC,EAAAkC,CAAA,CAAkB,CAACxB,EAAM,UAAU,WAAO,EAAA,SAAA,EAAA,CAAA,CAAA,CAAA;GAE7DjB,GAAAA,EAAAA,EAAA,EAAA,GAAAC,EAIEO,GAAA,MAAAC,EAHgBQ,EAAM,UAAU,UAAM,CAAA,IAA/B,OADTjB,EAAA,GAAAU,EAIEC,GAAA;IAFC,KAAKkC,EAAM;IACX,WAAWA;;GAILhB,EAAA,MAAO,UAAlB7B,EAAA,GAAAC,EAIM,OAJNc,GAIM,EAHJf,EAAA,EAAA,GAAAC,EAEIO,GAAA,MAAAC,EAF0BoB,EAAA,QAAnB,GAAS,OAApB7B,EAAA,GAAAC,EAEI,KAAA;IAFmC,KAAK6C;IAAO,OAAM;GACpD,GAAA3C,EAAA4B,CAAO,GAAA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionComponent.js","names":["_sfc_main","SectionComponent_vue_vue_type_script_setup_true_lang_default","SectionComponent_default"],"sources":["../../../src/components/layout/SectionComponent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SectionSchema } from '@alfakit/core'\nimport {\n actionsAlignmentClass,\n headingTag,\n readPersisted,\n schemaGapClass,\n writePersisted,\n} from '@alfakit/core'\nimport { ChevronDownIcon } from '@lucide/vue'\nimport { computed, onMounted, ref } from 'vue'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\nimport { usePageActionContext } from '../actions/action-context'\nimport { useOptionalFormStore } from '../form/form-context'\nimport { useFieldActionContext } from '../schema/field-actions'\nimport ActionList from '../actions/ActionList.vue'\nimport SchemaRenderer from '../schema/SchemaRenderer.vue'\nimport Button from '../ui/Button.vue'\nimport Collapsible from '../ui/Collapsible.vue'\nimport CollapsibleContent from '../ui/CollapsibleContent.vue'\nimport CollapsibleTrigger from '../ui/CollapsibleTrigger.vue'\nimport { useT } from '../../context'\nimport DeferredSchema from './DeferredSchema.vue'\nimport MixedContent from './MixedContent.vue'\n\nconst props = defineProps<{ component: SectionSchema }>()\nconst open = ref(!props.component.collapsed)\n// Inside a form the section's actions run as field actions, so `$get` / `$set` work.\nconst sectionForm = useOptionalFormStore()\nconst pageContext = usePageActionContext()\nconst fieldContext = useFieldActionContext(() => props.component)\nconst context = computed(() => (sectionForm ? fieldContext.value : pageContext))\nconst heading = computed(() => headingTag(props.component.headingLevel))\nconst hasHeader = computed(() =>\n Boolean(\n props.component.heading ||\n props.component.description ||\n props.component.icon ||\n props.component.headerActions?.length ||\n props.component.afterHeader?.length,\n ),\n)\n\n// Stored after mounting, so the server render and hydration use the schema's default.\nonMounted(() => {\n const key = props.component.persistCollapsed\n\n if (!key) return\n\n const stored = readPersisted(key)\n\n if (stored !== null) open.value = stored !== 'collapsed'\n})\n\nfunction setOpen(next: boolean) {\n open.value = next\n\n if (props.component.persistCollapsed) {\n writePersisted(props.component.persistCollapsed, next ? 'expanded' : 'collapsed')\n }\n}\nconst hasFooterActions = computed(() => Boolean(props.component.footerActions?.length))\nconst hasFooter = computed(() => hasFooterActions.value || Boolean(props.component.footer?.length))\nconst t = useT()\n</script>\n\n<template>\n <Collapsible\n v-if=\"props.component.aside\"\n :open=\"!props.component.collapsible || open\"\n as-child\n @update:open=\"setOpen($event)\"\n >\n <section\n data-slot=\"section\"\n class=\"grid gap-6 lg:grid-cols-3\"\n v-bind=\"props.component.extraAttributes\"\n >\n <div v-if=\"hasHeader\" class=\"flex flex-wrap items-start gap-3 lg:col-span-1\">\n <Icon\n v-if=\"props.component.icon\"\n :name=\"props.component.icon\"\n class=\"text-muted-foreground mt-0.5 size-5\"\n />\n <div class=\"min-w-0 flex-1 basis-48\">\n <component\n :is=\"heading\"\n v-if=\"props.component.heading\"\n class=\"text-base leading-6 font-semibold\"\n >\n {{ props.component.heading }}\n </component>\n <p
|
|
1
|
+
{"version":3,"file":"SectionComponent.js","names":["_sfc_main","SectionComponent_vue_vue_type_script_setup_true_lang_default","SectionComponent_default"],"sources":["../../../src/components/layout/SectionComponent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { SectionSchema } from '@alfakit/core'\nimport {\n actionsAlignmentClass,\n headingTag,\n readPersisted,\n schemaGapClass,\n writePersisted,\n} from '@alfakit/core'\nimport { ChevronDownIcon } from '@lucide/vue'\nimport { computed, onMounted, ref } from 'vue'\nimport { Icon } from '../../lib/icons'\nimport { cn } from '../../lib/utils'\nimport { usePageActionContext } from '../actions/action-context'\nimport { useOptionalFormStore } from '../form/form-context'\nimport { useFieldActionContext } from '../schema/field-actions'\nimport ActionList from '../actions/ActionList.vue'\nimport SchemaRenderer from '../schema/SchemaRenderer.vue'\nimport Button from '../ui/Button.vue'\nimport Collapsible from '../ui/Collapsible.vue'\nimport CollapsibleContent from '../ui/CollapsibleContent.vue'\nimport CollapsibleTrigger from '../ui/CollapsibleTrigger.vue'\nimport { useT } from '../../context'\nimport DeferredSchema from './DeferredSchema.vue'\nimport MixedContent from './MixedContent.vue'\n\nconst props = defineProps<{ component: SectionSchema }>()\nconst open = ref(!props.component.collapsed)\n// Inside a form the section's actions run as field actions, so `$get` / `$set` work.\nconst sectionForm = useOptionalFormStore()\nconst pageContext = usePageActionContext()\nconst fieldContext = useFieldActionContext(() => props.component)\nconst context = computed(() => (sectionForm ? fieldContext.value : pageContext))\nconst heading = computed(() => headingTag(props.component.headingLevel))\nconst hasHeader = computed(() =>\n Boolean(\n props.component.heading ||\n props.component.description ||\n props.component.icon ||\n props.component.headerActions?.length ||\n props.component.afterHeader?.length,\n ),\n)\n\n// Stored after mounting, so the server render and hydration use the schema's default.\nonMounted(() => {\n const key = props.component.persistCollapsed\n\n if (!key) return\n\n const stored = readPersisted(key)\n\n if (stored !== null) open.value = stored !== 'collapsed'\n})\n\nfunction setOpen(next: boolean) {\n open.value = next\n\n if (props.component.persistCollapsed) {\n writePersisted(props.component.persistCollapsed, next ? 'expanded' : 'collapsed')\n }\n}\nconst hasFooterActions = computed(() => Boolean(props.component.footerActions?.length))\nconst hasFooter = computed(() => hasFooterActions.value || Boolean(props.component.footer?.length))\nconst t = useT()\n</script>\n\n<template>\n <Collapsible\n v-if=\"props.component.aside\"\n :open=\"!props.component.collapsible || open\"\n as-child\n @update:open=\"setOpen($event)\"\n >\n <section\n data-slot=\"section\"\n class=\"grid gap-6 lg:grid-cols-3\"\n v-bind=\"props.component.extraAttributes\"\n >\n <div v-if=\"hasHeader\" class=\"flex flex-wrap items-start gap-3 lg:col-span-1\">\n <Icon\n v-if=\"props.component.icon\"\n :name=\"props.component.icon\"\n class=\"text-muted-foreground mt-0.5 size-5\"\n />\n <div class=\"min-w-0 flex-1 basis-48\">\n <component\n :is=\"heading\"\n v-if=\"props.component.heading\"\n class=\"text-base leading-6 font-semibold break-words\"\n >\n {{ props.component.heading }}\n </component>\n <p\n v-if=\"props.component.description\"\n class=\"text-muted-foreground mt-1 text-sm break-words\"\n >\n {{ props.component.description }}\n </p>\n </div>\n <ActionList\n v-if=\"props.component.headerActions && props.component.headerActions.length > 0\"\n :actions=\"props.component.headerActions\"\n :context=\"context\"\n size=\"sm\"\n />\n <MixedContent :items=\"props.component.afterHeader\" name=\"section-after-header\" />\n <CollapsibleTrigger v-if=\"props.component.collapsible\" as-child>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n :aria-label=\"t('toggle_section', {}, 'Toggle section')\"\n >\n <Icon\n name=\"alfakit::schemas.section.collapse-button\"\n :fallback=\"ChevronDownIcon\"\n :class=\"cn('transition-transform', open && 'rotate-180')\"\n />\n </Button>\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent as-child>\n <div\n data-surface=\"section\"\n :class=\"\n cn(\n 'bg-card rounded-xl border shadow-xs lg:col-span-2',\n props.component.secondary && 'bg-muted/40',\n )\n \"\n >\n <div :class=\"cn('p-6', props.component.compact && 'p-4')\">\n <DeferredSchema v-slot=\"{ component: loaded }\" :component=\"props.component\">\n <SchemaRenderer\n :components=\"loaded.schema ?? []\"\n :columns=\"loaded.columns\"\n :class=\"schemaGapClass(loaded) || undefined\"\n />\n </DeferredSchema>\n </div>\n <div\n v-if=\"hasFooter\"\n data-slot=\"section-footer\"\n :class=\"\n cn(\n 'flex flex-wrap items-center gap-3 border-t px-6 py-4',\n props.component.compact && 'px-4 py-3',\n )\n \"\n >\n <ActionList\n v-if=\"hasFooterActions\"\n :actions=\"props.component.footerActions!\"\n :context=\"context\"\n :class=\"actionsAlignmentClass(props.component.footerActionsAlignment) || undefined\"\n />\n <MixedContent :items=\"props.component.footer\" name=\"section-footer-content\" />\n </div>\n </div>\n </CollapsibleContent>\n </section>\n </Collapsible>\n <Collapsible\n v-else\n :open=\"!props.component.collapsible || open\"\n as-child\n @update:open=\"setOpen($event)\"\n >\n <section\n data-slot=\"section\"\n data-surface=\"section\"\n :class=\"cn('bg-card rounded-xl border shadow-xs', props.component.secondary && 'bg-muted/40')\"\n v-bind=\"props.component.extraAttributes\"\n >\n <div\n v-if=\"hasHeader\"\n :class=\"\n cn(\n 'flex flex-wrap items-start gap-3 border-b px-6 py-4',\n props.component.compact && 'px-4 py-3',\n )\n \"\n >\n <Icon\n v-if=\"props.component.icon\"\n :name=\"props.component.icon\"\n class=\"text-muted-foreground mt-0.5 size-5\"\n />\n <div class=\"min-w-0 flex-1 basis-48\">\n <component\n :is=\"heading\"\n v-if=\"props.component.heading\"\n class=\"text-base leading-6 font-semibold break-words\"\n >\n {{ props.component.heading }}\n </component>\n <p\n v-if=\"props.component.description\"\n class=\"text-muted-foreground mt-1 text-sm break-words\"\n >\n {{ props.component.description }}\n </p>\n </div>\n <ActionList\n v-if=\"props.component.headerActions && props.component.headerActions.length > 0\"\n :actions=\"props.component.headerActions\"\n :context=\"context\"\n size=\"sm\"\n />\n <MixedContent :items=\"props.component.afterHeader\" name=\"section-after-header\" />\n <CollapsibleTrigger v-if=\"props.component.collapsible\" as-child>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n :aria-label=\"t('toggle_section', {}, 'Toggle section')\"\n >\n <Icon\n name=\"alfakit::schemas.section.collapse-button\"\n :fallback=\"ChevronDownIcon\"\n :class=\"cn('transition-transform', open && 'rotate-180')\"\n />\n </Button>\n </CollapsibleTrigger>\n </div>\n <CollapsibleContent>\n <div :class=\"cn('p-6', props.component.compact && 'p-4')\">\n <DeferredSchema v-slot=\"{ component: loaded }\" :component=\"props.component\">\n <SchemaRenderer\n :components=\"loaded.schema ?? []\"\n :columns=\"loaded.columns\"\n :class=\"schemaGapClass(loaded) || undefined\"\n />\n </DeferredSchema>\n </div>\n <div\n v-if=\"hasFooter\"\n data-slot=\"section-footer\"\n :class=\"\n cn(\n 'flex flex-wrap items-center gap-3 border-t px-6 py-4',\n props.component.compact && 'px-4 py-3',\n )\n \"\n >\n <ActionList\n v-if=\"hasFooterActions\"\n :actions=\"props.component.footerActions!\"\n :context=\"context\"\n :class=\"actionsAlignmentClass(props.component.footerActionsAlignment) || undefined\"\n />\n <MixedContent :items=\"props.component.footer\" name=\"section-footer-content\" />\n </div>\n </CollapsibleContent>\n </section>\n </Collapsible>\n</template>\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SectionComponent.vue.d.ts","sourceRoot":"","sources":["../../../src/components/layout/SectionComponent.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SectionComponent.vue.d.ts","sourceRoot":"","sources":["../../../src/components/layout/SectionComponent.vue"],"names":[],"mappings":"AAoQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAyBlD,KAAK,WAAW,GAAG;IAAE,SAAS,EAAE,aAAa,CAAA;CAAE,CAAC;;AA6iBhD,wBAMG"}
|
|
@@ -6,12 +6,12 @@ import i from "../ui/Button2.js";
|
|
|
6
6
|
import a from "../actions/ActionList.js";
|
|
7
7
|
import { useOptionalFormStore as o } from "../form/form-context.js";
|
|
8
8
|
import s from "../schema/SchemaRenderer.js";
|
|
9
|
-
import c from "../
|
|
10
|
-
import l from "
|
|
11
|
-
import u from "../ui/
|
|
12
|
-
import
|
|
13
|
-
import f from "./
|
|
14
|
-
import p from "
|
|
9
|
+
import { useFieldActionContext as c } from "../schema/field-actions.js";
|
|
10
|
+
import l from "./DeferredSchema.js";
|
|
11
|
+
import u from "../ui/Collapsible.js";
|
|
12
|
+
import d from "../ui/CollapsibleContent.js";
|
|
13
|
+
import f from "./MixedContent.js";
|
|
14
|
+
import p from "../ui/CollapsibleTrigger.js";
|
|
15
15
|
import { actionsAlignmentClass as m, headingTag as h, readPersisted as g, schemaGapClass as _, writePersisted as v } from "@alfakit/core";
|
|
16
16
|
import { computed as y, createBlock as b, createCommentVNode as x, createElementBlock as S, createElementVNode as C, createTextVNode as w, createVNode as T, defineComponent as E, mergeProps as D, normalizeClass as O, onMounted as k, openBlock as A, ref as j, resolveDynamicComponent as M, toDisplayString as N, unref as P, withCtx as F } from "vue";
|
|
17
17
|
import { ChevronDownIcon as I } from "@lucide/vue";
|
|
@@ -21,15 +21,15 @@ var L = {
|
|
|
21
21
|
class: "flex flex-wrap items-start gap-3 lg:col-span-1"
|
|
22
22
|
}, R = { class: "min-w-0 flex-1 basis-48" }, z = {
|
|
23
23
|
key: 1,
|
|
24
|
-
class: "text-muted-foreground mt-1 text-sm"
|
|
24
|
+
class: "text-muted-foreground mt-1 text-sm break-words"
|
|
25
25
|
}, B = { class: "min-w-0 flex-1 basis-48" }, V = {
|
|
26
26
|
key: 1,
|
|
27
|
-
class: "text-muted-foreground mt-1 text-sm"
|
|
27
|
+
class: "text-muted-foreground mt-1 text-sm break-words"
|
|
28
28
|
}, H = /*@__PURE__*/ E({
|
|
29
29
|
__name: "SectionComponent",
|
|
30
30
|
props: { component: {} },
|
|
31
31
|
setup(E) {
|
|
32
|
-
let H = E, U = j(!H.component.collapsed), W = o(), G = t(), K =
|
|
32
|
+
let H = E, U = j(!H.component.collapsed), W = o(), G = t(), K = c(() => H.component), q = y(() => W ? K.value : G), J = y(() => h(H.component.headingLevel)), Y = y(() => !!(H.component.heading || H.component.description || H.component.icon || H.component.headerActions?.length || H.component.afterHeader?.length));
|
|
33
33
|
k(() => {
|
|
34
34
|
let e = H.component.persistCollapsed;
|
|
35
35
|
if (!e) return;
|
|
@@ -40,7 +40,7 @@ var L = {
|
|
|
40
40
|
U.value = e, H.component.persistCollapsed && v(H.component.persistCollapsed, e ? "expanded" : "collapsed");
|
|
41
41
|
}
|
|
42
42
|
let Z = y(() => !!H.component.footerActions?.length), Q = y(() => Z.value || !!H.component.footer?.length), $ = e();
|
|
43
|
-
return (e, t) => H.component.aside ? (A(), b(
|
|
43
|
+
return (e, t) => H.component.aside ? (A(), b(u, {
|
|
44
44
|
key: 0,
|
|
45
45
|
open: !H.component.collapsible || U.value,
|
|
46
46
|
"as-child": "",
|
|
@@ -57,7 +57,7 @@ var L = {
|
|
|
57
57
|
}, null, 8, ["name"])) : x("", !0),
|
|
58
58
|
C("div", R, [H.component.heading ? (A(), b(M(J.value), {
|
|
59
59
|
key: 0,
|
|
60
|
-
class: "text-base leading-6 font-semibold"
|
|
60
|
+
class: "text-base leading-6 font-semibold break-words"
|
|
61
61
|
}, {
|
|
62
62
|
default: F(() => [w(N(H.component.heading), 1)]),
|
|
63
63
|
_: 1
|
|
@@ -68,11 +68,11 @@ var L = {
|
|
|
68
68
|
context: q.value,
|
|
69
69
|
size: "sm"
|
|
70
70
|
}, null, 8, ["actions", "context"])) : x("", !0),
|
|
71
|
-
T(
|
|
71
|
+
T(f, {
|
|
72
72
|
items: H.component.afterHeader,
|
|
73
73
|
name: "section-after-header"
|
|
74
74
|
}, null, 8, ["items"]),
|
|
75
|
-
H.component.collapsible ? (A(), b(
|
|
75
|
+
H.component.collapsible ? (A(), b(p, {
|
|
76
76
|
key: 2,
|
|
77
77
|
"as-child": ""
|
|
78
78
|
}, {
|
|
@@ -91,11 +91,11 @@ var L = {
|
|
|
91
91
|
}, 8, ["aria-label"])]),
|
|
92
92
|
_: 1
|
|
93
93
|
})) : x("", !0)
|
|
94
|
-
])) : x("", !0), T(
|
|
94
|
+
])) : x("", !0), T(d, { "as-child": "" }, {
|
|
95
95
|
default: F(() => [C("div", {
|
|
96
96
|
"data-surface": "section",
|
|
97
97
|
class: O(P(n)("bg-card rounded-xl border shadow-xs lg:col-span-2", H.component.secondary && "bg-muted/40"))
|
|
98
|
-
}, [C("div", { class: O(P(n)("p-6", H.component.compact && "p-4")) }, [T(
|
|
98
|
+
}, [C("div", { class: O(P(n)("p-6", H.component.compact && "p-4")) }, [T(l, { component: H.component }, {
|
|
99
99
|
default: F(({ component: e }) => [T(s, {
|
|
100
100
|
components: e.schema ?? [],
|
|
101
101
|
columns: e.columns,
|
|
@@ -119,14 +119,14 @@ var L = {
|
|
|
119
119
|
"actions",
|
|
120
120
|
"context",
|
|
121
121
|
"class"
|
|
122
|
-
])) : x("", !0), T(
|
|
122
|
+
])) : x("", !0), T(f, {
|
|
123
123
|
items: H.component.footer,
|
|
124
124
|
name: "section-footer-content"
|
|
125
125
|
}, null, 8, ["items"])], 2)) : x("", !0)], 2)]),
|
|
126
126
|
_: 1
|
|
127
127
|
})], 16)]),
|
|
128
128
|
_: 1
|
|
129
|
-
}, 8, ["open"])) : (A(), b(
|
|
129
|
+
}, 8, ["open"])) : (A(), b(u, {
|
|
130
130
|
key: 1,
|
|
131
131
|
open: !H.component.collapsible || U.value,
|
|
132
132
|
"as-child": "",
|
|
@@ -147,7 +147,7 @@ var L = {
|
|
|
147
147
|
}, null, 8, ["name"])) : x("", !0),
|
|
148
148
|
C("div", B, [H.component.heading ? (A(), b(M(J.value), {
|
|
149
149
|
key: 0,
|
|
150
|
-
class: "text-base leading-6 font-semibold"
|
|
150
|
+
class: "text-base leading-6 font-semibold break-words"
|
|
151
151
|
}, {
|
|
152
152
|
default: F(() => [w(N(H.component.heading), 1)]),
|
|
153
153
|
_: 1
|
|
@@ -158,11 +158,11 @@ var L = {
|
|
|
158
158
|
context: q.value,
|
|
159
159
|
size: "sm"
|
|
160
160
|
}, null, 8, ["actions", "context"])) : x("", !0),
|
|
161
|
-
T(
|
|
161
|
+
T(f, {
|
|
162
162
|
items: H.component.afterHeader,
|
|
163
163
|
name: "section-after-header"
|
|
164
164
|
}, null, 8, ["items"]),
|
|
165
|
-
H.component.collapsible ? (A(), b(
|
|
165
|
+
H.component.collapsible ? (A(), b(p, {
|
|
166
166
|
key: 2,
|
|
167
167
|
"as-child": ""
|
|
168
168
|
}, {
|
|
@@ -181,8 +181,8 @@ var L = {
|
|
|
181
181
|
}, 8, ["aria-label"])]),
|
|
182
182
|
_: 1
|
|
183
183
|
})) : x("", !0)
|
|
184
|
-
], 2)) : x("", !0), T(
|
|
185
|
-
default: F(() => [C("div", { class: O(P(n)("p-6", H.component.compact && "p-4")) }, [T(
|
|
184
|
+
], 2)) : x("", !0), T(d, null, {
|
|
185
|
+
default: F(() => [C("div", { class: O(P(n)("p-6", H.component.compact && "p-4")) }, [T(l, { component: H.component }, {
|
|
186
186
|
default: F(({ component: e }) => [T(s, {
|
|
187
187
|
components: e.schema ?? [],
|
|
188
188
|
columns: e.columns,
|
|
@@ -206,7 +206,7 @@ var L = {
|
|
|
206
206
|
"actions",
|
|
207
207
|
"context",
|
|
208
208
|
"class"
|
|
209
|
-
])) : x("", !0), T(
|
|
209
|
+
])) : x("", !0), T(f, {
|
|
210
210
|
items: H.component.footer,
|
|
211
211
|
name: "section-footer-content"
|
|
212
212
|
}, null, 8, ["items"])], 2)) : x("", !0)]),
|