@ecoma-io/loom 0.5.0 → 0.6.0
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/README.md +188 -101
- package/dist/a11y.js +4 -3
- package/dist/composition/center/src/Center.js.map +1 -0
- package/dist/composition/center/src/Center.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/dashboard-grid/src/DashboardGrid.js +7 -0
- package/dist/composition/dashboard-grid/src/DashboardGrid.js.map +1 -0
- package/dist/composition/dashboard-grid/src/DashboardGrid.vue_vue_type_script_setup_true_lang.js +45 -0
- package/dist/composition/dashboard-grid/src/DashboardGrid.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/frame/src/Frame.js.map +1 -0
- package/dist/composition/frame/src/Frame.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/grid/src/Grid.js.map +1 -0
- package/dist/composition/grid/src/Grid.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/inline/src/Inline.js.map +1 -0
- package/dist/composition/inline/src/Inline.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/scroll-reel/src/ScrollReel.js.map +1 -0
- package/dist/composition/scroll-reel/src/ScrollReel.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/sidebar/src/Sidebar.js.map +1 -0
- package/dist/composition/sidebar/src/Sidebar.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/split/src/Split.js.map +1 -0
- package/dist/composition/split/src/Split.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/stack/src/Stack.js.map +1 -0
- package/dist/composition/stack/src/Stack.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/core/src/a11y-contract.js +558 -0
- package/dist/core/src/a11y-contract.js.map +1 -0
- package/dist/core/src/a11y-scope.js +151 -0
- package/dist/core/src/a11y-scope.js.map +1 -0
- package/dist/core/src/attrs.js.map +1 -0
- package/dist/core/src/cn.js +61 -0
- package/dist/core/src/cn.js.map +1 -0
- package/dist/core/src/icon-defaults.js.map +1 -0
- package/dist/core/src/index.js +9 -0
- package/dist/core/src/motion.js +31 -0
- package/dist/core/src/motion.js.map +1 -0
- package/dist/core/src/props.js.map +1 -0
- package/dist/core/src/theme.js.map +1 -0
- package/dist/index.js +287 -285
- package/dist/labels/src/ancestor-disabled.js.map +1 -0
- package/dist/labels/src/count-labels.js.map +1 -0
- package/dist/labels/src/date-labels.js +206 -0
- package/dist/labels/src/date-labels.js.map +1 -0
- package/dist/labels/src/field-context.js.map +1 -0
- package/dist/labels/src/labels.js.map +1 -0
- package/dist/layouts/app-shell/src/AppShell.js.map +1 -0
- package/dist/layouts/app-shell/src/AppShell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/centered/src/Centered.js.map +1 -0
- package/dist/layouts/centered/src/Centered.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/dashboard/src/Dashboard.js.map +1 -0
- package/dist/layouts/dashboard/src/Dashboard.vue_vue_type_script_setup_true_lang.js +65 -0
- package/dist/layouts/dashboard/src/Dashboard.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/desktop-app-shell/src/DesktopAppShell.js +7 -0
- package/dist/layouts/desktop-app-shell/src/DesktopAppShell.js.map +1 -0
- package/dist/layouts/desktop-app-shell/src/DesktopAppShell.vue_vue_type_script_setup_true_lang.js +76 -0
- package/dist/layouts/desktop-app-shell/src/DesktopAppShell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/form-layout/src/FormLayout.js.map +1 -0
- package/dist/layouts/form-layout/src/FormLayout.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/master-detail/src/MasterDetail.js.map +1 -0
- package/dist/layouts/master-detail/src/MasterDetail.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/reading/src/Reading.js.map +1 -0
- package/dist/layouts/reading/src/Reading.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/settings/src/Settings.js.map +1 -0
- package/dist/layouts/settings/src/Settings.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/split-layout/src/SplitLayout.js.map +1 -0
- package/dist/layouts/split-layout/src/SplitLayout.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/packages/composition/dashboard-grid/src/DashboardGrid.vue.d.ts +26 -0
- package/dist/packages/composition/dashboard-grid/src/DashboardGrid.vue.d.ts.map +1 -0
- package/dist/packages/composition/dashboard-grid/src/index.d.ts.map +1 -0
- package/dist/packages/composition/split/src/Split.vue.d.ts.map +1 -1
- package/dist/packages/core/src/a11y-contract.d.ts +417 -0
- package/dist/packages/core/src/a11y-contract.d.ts.map +1 -0
- package/dist/packages/core/src/a11y-scope.d.ts +5 -3
- package/dist/packages/core/src/a11y-scope.d.ts.map +1 -1
- package/dist/packages/core/src/index.d.ts +7 -1
- package/dist/packages/core/src/index.d.ts.map +1 -1
- package/dist/packages/core/src/motion.d.ts +15 -6
- package/dist/packages/core/src/motion.d.ts.map +1 -1
- package/dist/packages/core/src/responsive-contract.d.ts +155 -0
- package/dist/packages/core/src/responsive-contract.d.ts.map +1 -0
- package/dist/packages/labels/src/component-shapes.d.ts +2 -0
- package/dist/packages/labels/src/component-shapes.d.ts.map +1 -1
- package/dist/packages/layouts/dashboard/src/Dashboard.vue.d.ts.map +1 -1
- package/dist/packages/layouts/desktop-app-shell/src/DesktopAppShell.vue.d.ts +103 -0
- package/dist/packages/layouts/desktop-app-shell/src/index.d.ts.map +1 -0
- package/dist/packages/loom/src/a11y.d.ts +2 -1
- package/dist/packages/loom/src/index.d.ts +23 -23
- package/dist/packages/patterns/app-header/src/AppHeader.vue.d.ts +82 -0
- package/dist/packages/patterns/app-header/src/AppHeader.vue.d.ts.map +1 -0
- package/dist/packages/patterns/app-header/src/index.d.ts.map +1 -0
- package/dist/packages/patterns/empty-state/src/EmptyState.vue.d.ts +54 -0
- package/dist/packages/patterns/empty-state/src/EmptyState.vue.d.ts.map +1 -0
- package/dist/packages/patterns/empty-state/src/index.d.ts.map +1 -0
- package/dist/packages/patterns/error-state/src/ErrorState.vue.d.ts +44 -0
- package/dist/packages/patterns/error-state/src/ErrorState.vue.d.ts.map +1 -0
- package/dist/packages/patterns/error-state/src/index.d.ts.map +1 -0
- package/dist/packages/patterns/form-actions/src/FormActions.vue.d.ts +56 -0
- package/dist/packages/patterns/form-actions/src/FormActions.vue.d.ts.map +1 -0
- package/dist/packages/patterns/form-actions/src/index.d.ts.map +1 -0
- package/dist/packages/patterns/form-section/src/FormSection.vue.d.ts +85 -0
- package/dist/packages/patterns/form-section/src/FormSection.vue.d.ts.map +1 -0
- package/dist/packages/patterns/form-section/src/index.d.ts.map +1 -0
- package/dist/packages/patterns/loading-state/src/LoadingState.vue.d.ts.map +1 -0
- package/dist/packages/patterns/loading-state/src/index.d.ts.map +1 -0
- package/dist/packages/patterns/metric-card/src/MetricCard.vue.d.ts +77 -0
- package/dist/packages/patterns/metric-card/src/MetricCard.vue.d.ts.map +1 -0
- package/dist/packages/patterns/metric-card/src/index.d.ts.map +1 -0
- package/dist/packages/patterns/page-header/src/PageHeader.vue.d.ts.map +1 -0
- package/dist/packages/patterns/page-header/src/index.d.ts.map +1 -0
- package/dist/packages/patterns/row-actions/src/RowActions.vue.d.ts.map +1 -0
- package/dist/packages/patterns/row-actions/src/index.d.ts.map +1 -0
- package/dist/packages/patterns/sidebar-nav/src/SidebarNav.vue.d.ts.map +1 -0
- package/dist/packages/patterns/sidebar-nav/src/index.d.ts.map +1 -0
- package/dist/packages/patterns/title-bar/src/TitleBar.vue.d.ts +83 -0
- package/dist/packages/patterns/title-bar/src/index.d.ts.map +1 -0
- package/dist/packages/patterns/toast-stack/src/index.d.ts.map +1 -0
- package/dist/packages/primitives/list/src/ListItem.vue.d.ts +1 -1
- package/dist/packages/primitives/list/src/ListItem.vue.d.ts.map +1 -1
- package/dist/packages/primitives/surface/src/Surface.vue.d.ts +2 -2
- package/dist/packages/primitives/surface/src/Surface.vue.d.ts.map +1 -1
- package/dist/packages/primitives/table/src/TableRow.vue.d.ts +2 -2
- package/dist/packages/primitives/table/src/TableRow.vue.d.ts.map +1 -1
- package/dist/patterns/app-header/src/AppHeader.js +7 -0
- package/dist/patterns/app-header/src/AppHeader.js.map +1 -0
- package/dist/patterns/app-header/src/AppHeader.vue_vue_type_script_setup_true_lang.js +96 -0
- package/dist/patterns/app-header/src/AppHeader.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/patterns/empty-state/src/EmptyState.js +7 -0
- package/dist/patterns/empty-state/src/EmptyState.js.map +1 -0
- package/dist/patterns/empty-state/src/EmptyState.vue_vue_type_script_setup_true_lang.js +73 -0
- package/dist/patterns/empty-state/src/EmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/patterns/error-state/src/ErrorState.js +7 -0
- package/dist/patterns/error-state/src/ErrorState.js.map +1 -0
- package/dist/patterns/error-state/src/ErrorState.vue_vue_type_script_setup_true_lang.js +60 -0
- package/dist/patterns/error-state/src/ErrorState.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/patterns/error-summary/src/ErrorSummary.js +7 -0
- package/dist/patterns/error-summary/src/ErrorSummary.js.map +1 -0
- package/dist/patterns/error-summary/src/ErrorSummary.vue_vue_type_script_setup_true_lang.js +90 -0
- package/dist/patterns/error-summary/src/ErrorSummary.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/patterns/form-actions/src/FormActions.js +7 -0
- package/dist/patterns/form-actions/src/FormActions.js.map +1 -0
- package/dist/patterns/form-actions/src/FormActions.vue_vue_type_script_setup_true_lang.js +22 -0
- package/dist/patterns/form-actions/src/FormActions.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/patterns/form-section/src/FormSection.js +7 -0
- package/dist/patterns/form-section/src/FormSection.js.map +1 -0
- package/dist/patterns/form-section/src/FormSection.vue_vue_type_script_setup_true_lang.js +64 -0
- package/dist/patterns/form-section/src/FormSection.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/patterns/loading-state/src/LoadingState.js +7 -0
- package/dist/patterns/loading-state/src/LoadingState.js.map +1 -0
- package/dist/patterns/loading-state/src/LoadingState.vue_vue_type_script_setup_true_lang.js +59 -0
- package/dist/patterns/loading-state/src/LoadingState.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/patterns/metric-card/src/MetricCard.js +7 -0
- package/dist/patterns/metric-card/src/MetricCard.js.map +1 -0
- package/dist/patterns/metric-card/src/MetricCard.vue_vue_type_script_setup_true_lang.js +87 -0
- package/dist/patterns/metric-card/src/MetricCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/patterns/page-header/src/PageHeader.js +7 -0
- package/dist/patterns/page-header/src/PageHeader.js.map +1 -0
- package/dist/patterns/page-header/src/PageHeader.vue_vue_type_script_setup_true_lang.js +68 -0
- package/dist/patterns/page-header/src/PageHeader.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/patterns/row-actions/src/RowActions.js +7 -0
- package/dist/patterns/row-actions/src/RowActions.js.map +1 -0
- package/dist/patterns/row-actions/src/RowActions.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/patterns/row-actions/src/RowActions.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/patterns/sidebar-nav/src/SidebarNav.js +7 -0
- package/dist/patterns/sidebar-nav/src/SidebarNav.js.map +1 -0
- package/dist/patterns/sidebar-nav/src/SidebarNav.vue_vue_type_script_setup_true_lang.js +129 -0
- package/dist/patterns/sidebar-nav/src/SidebarNav.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/patterns/title-bar/src/TitleBar.js +7 -0
- package/dist/patterns/title-bar/src/TitleBar.js.map +1 -0
- package/dist/patterns/title-bar/src/TitleBar.vue_vue_type_script_setup_true_lang.js +69 -0
- package/dist/patterns/title-bar/src/TitleBar.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/patterns/toast-stack/src/ToastStack.js +7 -0
- package/dist/patterns/toast-stack/src/ToastStack.js.map +1 -0
- package/dist/patterns/toast-stack/src/ToastStack.vue_vue_type_script_setup_true_lang.js +52 -0
- package/dist/patterns/toast-stack/src/ToastStack.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/accordion/src/Accordion.js.map +1 -0
- package/dist/primitives/accordion/src/Accordion.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/alert/src/Alert.js.map +1 -0
- package/dist/primitives/alert/src/Alert.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/alert-dialog/src/AlertDialog.js.map +1 -0
- package/dist/primitives/alert-dialog/src/AlertDialog.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/avatar/src/Avatar.js.map +1 -0
- package/dist/primitives/avatar/src/Avatar.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/avatar-group/src/AvatarGroup.js.map +1 -0
- package/dist/primitives/avatar-group/src/AvatarGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/badge/src/Badge.js.map +1 -0
- package/dist/primitives/badge/src/Badge.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/breadcrumb/src/Breadcrumb.js.map +1 -0
- package/dist/primitives/breadcrumb/src/Breadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/button/src/Button.js.map +1 -0
- package/dist/primitives/button/src/Button.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/calendar/src/Calendar.js.map +1 -0
- package/dist/primitives/calendar/src/Calendar.vue_vue_type_script_setup_true_lang.js +202 -0
- package/dist/primitives/calendar/src/Calendar.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/card/src/Card.js.map +1 -0
- package/dist/primitives/card/src/Card.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/carousel/src/Carousel.js.map +1 -0
- package/dist/primitives/carousel/src/Carousel.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/checkbox/src/Checkbox.js.map +1 -0
- package/dist/primitives/checkbox/src/Checkbox.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/chip/src/Chip.js.map +1 -0
- package/dist/primitives/chip/src/Chip.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/collapse/src/Collapse.js.map +1 -0
- package/dist/primitives/collapse/src/Collapse.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/color-picker/src/ColorPicker.js.map +1 -0
- package/dist/primitives/color-picker/src/ColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/combobox/src/Combobox.js.map +1 -0
- package/dist/primitives/combobox/src/Combobox.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/command/src/Command.js.map +1 -0
- package/dist/primitives/command/src/Command.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/context-menu/src/ContextMenu.js.map +1 -0
- package/dist/primitives/context-menu/src/ContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/copy-button/src/CopyButton.js.map +1 -0
- package/dist/primitives/copy-button/src/CopyButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/copy-button/src/index.js +3 -0
- package/dist/primitives/data-grid/src/DataGrid.js.map +1 -0
- package/dist/primitives/data-grid/src/DataGrid.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/date-picker/src/DatePicker.js.map +1 -0
- package/dist/primitives/date-picker/src/DatePicker.vue_vue_type_script_setup_true_lang.js +292 -0
- package/dist/primitives/date-picker/src/DatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/date-range-picker/src/DateRangePicker.js.map +1 -0
- package/dist/primitives/date-range-picker/src/DateRangePicker.vue_vue_type_script_setup_true_lang.js +417 -0
- package/dist/primitives/date-range-picker/src/DateRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/date-time-picker/src/DateTimePicker.js.map +1 -0
- package/dist/primitives/date-time-picker/src/DateTimePicker.vue_vue_type_script_setup_true_lang.js +359 -0
- package/dist/primitives/date-time-picker/src/DateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/date-time-range-picker/src/DateTimeRangePicker.js.map +1 -0
- package/dist/primitives/date-time-range-picker/src/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js +563 -0
- package/dist/primitives/date-time-range-picker/src/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/dialog/src/Dialog.js.map +1 -0
- package/dist/primitives/dialog/src/Dialog.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/drawer/src/Drawer.js.map +1 -0
- package/dist/primitives/drawer/src/Drawer.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/dropdown-menu/src/DropdownMenu.js.map +1 -0
- package/dist/primitives/dropdown-menu/src/DropdownMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/editable/src/Editable.js.map +1 -0
- package/dist/primitives/editable/src/Editable.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/field/src/Field.js.map +1 -0
- package/dist/primitives/field/src/Field.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/fieldset/src/Fieldset.js.map +1 -0
- package/dist/primitives/fieldset/src/Fieldset.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/file-upload/src/FileUpload.js.map +1 -0
- package/dist/primitives/file-upload/src/FileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/hover-card/src/HoverCard.js.map +1 -0
- package/dist/primitives/hover-card/src/HoverCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/icon-button/src/IconButton.js.map +1 -0
- package/dist/primitives/icon-button/src/IconButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/indicator/src/Indicator.js.map +1 -0
- package/dist/primitives/indicator/src/Indicator.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/inline-error/src/InlineError.js.map +1 -0
- package/dist/primitives/inline-error/src/InlineError.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/kbd/src/Kbd.js.map +1 -0
- package/dist/primitives/kbd/src/Kbd.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/link/src/Link.js.map +1 -0
- package/dist/primitives/link/src/Link.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/list/src/List.js.map +1 -0
- package/dist/primitives/list/src/List.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/list/src/ListItem.js.map +1 -0
- package/dist/primitives/list/src/ListItem.vue_vue_type_script_setup_true_lang.js +101 -0
- package/dist/primitives/list/src/ListItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/live-region/src/LiveRegion.js.map +1 -0
- package/dist/primitives/live-region/src/LiveRegion.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/live-region/src/context.js.map +1 -0
- package/dist/primitives/live-region/src/useAnnounce.js.map +1 -0
- package/dist/primitives/menubar/src/Menubar.js.map +1 -0
- package/dist/primitives/menubar/src/Menubar.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/meter/src/Meter.js.map +1 -0
- package/dist/primitives/meter/src/Meter.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/navigation-menu/src/NavigationMenu.js.map +1 -0
- package/dist/primitives/navigation-menu/src/NavigationMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/number-field/src/NumberField.js.map +1 -0
- package/dist/primitives/number-field/src/NumberField.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/otp-input/src/OtpInput.js.map +1 -0
- package/dist/primitives/otp-input/src/OtpInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/pagination/src/Pagination.js.map +1 -0
- package/dist/primitives/pagination/src/Pagination.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/popover/src/Popover.js.map +1 -0
- package/dist/primitives/popover/src/Popover.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/progress/src/Progress.js.map +1 -0
- package/dist/primitives/progress/src/Progress.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/radial-progress/src/RadialProgress.js.map +1 -0
- package/dist/primitives/radial-progress/src/RadialProgress.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/radio-group/src/RadioGroup.js.map +1 -0
- package/dist/primitives/radio-group/src/RadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/rating/src/Rating.js.map +1 -0
- package/dist/primitives/rating/src/Rating.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/scroll-area/src/ScrollArea.js.map +1 -0
- package/dist/primitives/scroll-area/src/ScrollArea.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/segmented-control/src/SegmentedControl.js.map +1 -0
- package/dist/primitives/segmented-control/src/SegmentedControl.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/select/src/Select.js.map +1 -0
- package/dist/primitives/select/src/Select.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/separator/src/Separator.js.map +1 -0
- package/dist/primitives/separator/src/Separator.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/skeleton/src/Skeleton.js.map +1 -0
- package/dist/primitives/skeleton/src/Skeleton.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/skip-link/src/SkipLink.js.map +1 -0
- package/dist/primitives/skip-link/src/SkipLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/slider/src/Slider.js.map +1 -0
- package/dist/primitives/slider/src/Slider.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/speed-dial/src/SpeedDial.js.map +1 -0
- package/dist/primitives/speed-dial/src/SpeedDial.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/spinner/src/Spinner.js.map +1 -0
- package/dist/primitives/spinner/src/Spinner.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/stepper/src/Stepper.js.map +1 -0
- package/dist/primitives/stepper/src/Stepper.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/surface/src/Surface.js.map +1 -0
- package/dist/primitives/surface/src/Surface.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/switch/src/Switch.js.map +1 -0
- package/dist/primitives/switch/src/Switch.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/table/src/Table.js.map +1 -0
- package/dist/primitives/table/src/Table.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/table/src/TableCell.js.map +1 -0
- package/dist/primitives/table/src/TableCell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/table/src/TableHead.js.map +1 -0
- package/dist/primitives/table/src/TableHead.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/table/src/TableRow.js.map +1 -0
- package/dist/primitives/table/src/TableRow.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/tabs/src/Tabs.js.map +1 -0
- package/dist/primitives/tabs/src/Tabs.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/tags-input/src/TagsInput.js.map +1 -0
- package/dist/primitives/tags-input/src/TagsInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/text-field/src/TextField.js.map +1 -0
- package/dist/primitives/text-field/src/TextField.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/textarea/src/Textarea.js.map +1 -0
- package/dist/primitives/textarea/src/Textarea.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/time-picker/src/TimePicker.js.map +1 -0
- package/dist/primitives/time-picker/src/TimePicker.vue_vue_type_script_setup_true_lang.js +189 -0
- package/dist/primitives/time-picker/src/TimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/timeline/src/Timeline.js.map +1 -0
- package/dist/primitives/timeline/src/Timeline.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/timeline/src/TimelineItem.js.map +1 -0
- package/dist/primitives/timeline/src/TimelineItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/timeline/src/index.js +5 -0
- package/dist/primitives/toast/src/Toast.js.map +1 -0
- package/dist/primitives/toast/src/Toast.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/toast/src/ToastItem.js.map +1 -0
- package/dist/primitives/toast/src/ToastItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/toggle-group/src/ToggleGroup.js.map +1 -0
- package/dist/primitives/toggle-group/src/ToggleGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/toolbar/src/Toolbar.js.map +1 -0
- package/dist/primitives/toolbar/src/Toolbar.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/toolbar/src/ToolbarSeparator.js.map +1 -0
- package/dist/primitives/toolbar/src/ToolbarSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/tooltip/src/Tooltip.js.map +1 -0
- package/dist/primitives/tooltip/src/Tooltip.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/tree-view/src/TreeView.js.map +1 -0
- package/dist/primitives/tree-view/src/TreeView.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/tree-view/src/TreeViewNode.js.map +1 -0
- package/dist/primitives/tree-view/src/TreeViewNode.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/tree-view/src/context.js.map +1 -0
- package/dist/primitives/visually-hidden/src/VisuallyHidden.js.map +1 -0
- package/dist/primitives/visually-hidden/src/VisuallyHidden.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/window-controls/src/WindowControls.js.map +1 -0
- package/dist/primitives/window-controls/src/WindowControls.vue_vue_type_script_setup_true_lang.js +127 -0
- package/dist/primitives/window-controls/src/WindowControls.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/styles/theme.css +30 -6
- package/dist/theme.js +2 -2
- package/package.json +5 -4
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/CalendarDate.js +0 -236
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/CalendarDate.js.map +0 -1
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/calendars/GregorianCalendar.js +0 -117
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/calendars/GregorianCalendar.js.map +0 -1
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/conversion.js +0 -142
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/conversion.js.map +0 -1
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/manipulation.js +0 -280
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/manipulation.js.map +0 -1
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/queries.js +0 -40
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/queries.js.map +0 -1
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/string.js +0 -69
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/string.js.map +0 -1
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/utils.js +0 -8
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.4/node_modules/@internationalized/date/dist/private/utils.js.map +0 -1
- package/dist/packages/blocks/app-header/src/AppHeader.js +0 -7
- package/dist/packages/blocks/app-header/src/AppHeader.js.map +0 -1
- package/dist/packages/blocks/app-header/src/AppHeader.vue.d.ts +0 -82
- package/dist/packages/blocks/app-header/src/AppHeader.vue.d.ts.map +0 -1
- package/dist/packages/blocks/app-header/src/AppHeader.vue_vue_type_script_setup_true_lang.js +0 -96
- package/dist/packages/blocks/app-header/src/AppHeader.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/app-header/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/dashboard-grid/src/DashboardGrid.js +0 -7
- package/dist/packages/blocks/dashboard-grid/src/DashboardGrid.js.map +0 -1
- package/dist/packages/blocks/dashboard-grid/src/DashboardGrid.vue.d.ts +0 -42
- package/dist/packages/blocks/dashboard-grid/src/DashboardGrid.vue.d.ts.map +0 -1
- package/dist/packages/blocks/dashboard-grid/src/DashboardGrid.vue_vue_type_script_setup_true_lang.js +0 -45
- package/dist/packages/blocks/dashboard-grid/src/DashboardGrid.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/dashboard-grid/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/desktop-app-shell/src/DesktopAppShell.js +0 -7
- package/dist/packages/blocks/desktop-app-shell/src/DesktopAppShell.js.map +0 -1
- package/dist/packages/blocks/desktop-app-shell/src/DesktopAppShell.vue.d.ts +0 -102
- package/dist/packages/blocks/desktop-app-shell/src/DesktopAppShell.vue_vue_type_script_setup_true_lang.js +0 -76
- package/dist/packages/blocks/desktop-app-shell/src/DesktopAppShell.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/desktop-app-shell/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/empty-state/src/EmptyState.js +0 -7
- package/dist/packages/blocks/empty-state/src/EmptyState.js.map +0 -1
- package/dist/packages/blocks/empty-state/src/EmptyState.vue.d.ts +0 -50
- package/dist/packages/blocks/empty-state/src/EmptyState.vue.d.ts.map +0 -1
- package/dist/packages/blocks/empty-state/src/EmptyState.vue_vue_type_script_setup_true_lang.js +0 -70
- package/dist/packages/blocks/empty-state/src/EmptyState.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/empty-state/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/error-state/src/ErrorState.js +0 -7
- package/dist/packages/blocks/error-state/src/ErrorState.js.map +0 -1
- package/dist/packages/blocks/error-state/src/ErrorState.vue.d.ts +0 -44
- package/dist/packages/blocks/error-state/src/ErrorState.vue.d.ts.map +0 -1
- package/dist/packages/blocks/error-state/src/ErrorState.vue_vue_type_script_setup_true_lang.js +0 -60
- package/dist/packages/blocks/error-state/src/ErrorState.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/error-state/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/error-summary/src/ErrorSummary.js +0 -7
- package/dist/packages/blocks/error-summary/src/ErrorSummary.js.map +0 -1
- package/dist/packages/blocks/error-summary/src/ErrorSummary.vue_vue_type_script_setup_true_lang.js +0 -90
- package/dist/packages/blocks/error-summary/src/ErrorSummary.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/form-actions/src/FormActions.js +0 -7
- package/dist/packages/blocks/form-actions/src/FormActions.js.map +0 -1
- package/dist/packages/blocks/form-actions/src/FormActions.vue.d.ts +0 -51
- package/dist/packages/blocks/form-actions/src/FormActions.vue.d.ts.map +0 -1
- package/dist/packages/blocks/form-actions/src/FormActions.vue_vue_type_script_setup_true_lang.js +0 -22
- package/dist/packages/blocks/form-actions/src/FormActions.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/form-actions/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/form-section/src/FormSection.js +0 -7
- package/dist/packages/blocks/form-section/src/FormSection.js.map +0 -1
- package/dist/packages/blocks/form-section/src/FormSection.vue.d.ts +0 -85
- package/dist/packages/blocks/form-section/src/FormSection.vue.d.ts.map +0 -1
- package/dist/packages/blocks/form-section/src/FormSection.vue_vue_type_script_setup_true_lang.js +0 -64
- package/dist/packages/blocks/form-section/src/FormSection.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/form-section/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/loading-state/src/LoadingState.js +0 -7
- package/dist/packages/blocks/loading-state/src/LoadingState.js.map +0 -1
- package/dist/packages/blocks/loading-state/src/LoadingState.vue.d.ts.map +0 -1
- package/dist/packages/blocks/loading-state/src/LoadingState.vue_vue_type_script_setup_true_lang.js +0 -59
- package/dist/packages/blocks/loading-state/src/LoadingState.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/loading-state/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/metric-card/src/MetricCard.js +0 -7
- package/dist/packages/blocks/metric-card/src/MetricCard.js.map +0 -1
- package/dist/packages/blocks/metric-card/src/MetricCard.vue.d.ts +0 -77
- package/dist/packages/blocks/metric-card/src/MetricCard.vue.d.ts.map +0 -1
- package/dist/packages/blocks/metric-card/src/MetricCard.vue_vue_type_script_setup_true_lang.js +0 -87
- package/dist/packages/blocks/metric-card/src/MetricCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/metric-card/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/page-header/src/PageHeader.js +0 -7
- package/dist/packages/blocks/page-header/src/PageHeader.js.map +0 -1
- package/dist/packages/blocks/page-header/src/PageHeader.vue.d.ts.map +0 -1
- package/dist/packages/blocks/page-header/src/PageHeader.vue_vue_type_script_setup_true_lang.js +0 -68
- package/dist/packages/blocks/page-header/src/PageHeader.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/page-header/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/row-actions/src/RowActions.js +0 -7
- package/dist/packages/blocks/row-actions/src/RowActions.js.map +0 -1
- package/dist/packages/blocks/row-actions/src/RowActions.vue.d.ts.map +0 -1
- package/dist/packages/blocks/row-actions/src/RowActions.vue_vue_type_script_setup_true_lang.js +0 -47
- package/dist/packages/blocks/row-actions/src/RowActions.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/row-actions/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/sidebar-nav/src/SidebarNav.js +0 -7
- package/dist/packages/blocks/sidebar-nav/src/SidebarNav.js.map +0 -1
- package/dist/packages/blocks/sidebar-nav/src/SidebarNav.vue.d.ts.map +0 -1
- package/dist/packages/blocks/sidebar-nav/src/SidebarNav.vue_vue_type_script_setup_true_lang.js +0 -129
- package/dist/packages/blocks/sidebar-nav/src/SidebarNav.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/sidebar-nav/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/title-bar/src/TitleBar.js +0 -7
- package/dist/packages/blocks/title-bar/src/TitleBar.js.map +0 -1
- package/dist/packages/blocks/title-bar/src/TitleBar.vue.d.ts +0 -83
- package/dist/packages/blocks/title-bar/src/TitleBar.vue_vue_type_script_setup_true_lang.js +0 -69
- package/dist/packages/blocks/title-bar/src/TitleBar.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/title-bar/src/index.d.ts.map +0 -1
- package/dist/packages/blocks/toast-stack/src/ToastStack.js +0 -7
- package/dist/packages/blocks/toast-stack/src/ToastStack.js.map +0 -1
- package/dist/packages/blocks/toast-stack/src/ToastStack.vue_vue_type_script_setup_true_lang.js +0 -52
- package/dist/packages/blocks/toast-stack/src/ToastStack.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/blocks/toast-stack/src/index.d.ts.map +0 -1
- package/dist/packages/composition/center/src/Center.js.map +0 -1
- package/dist/packages/composition/center/src/Center.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/composition/frame/src/Frame.js.map +0 -1
- package/dist/packages/composition/frame/src/Frame.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/composition/grid/src/Grid.js.map +0 -1
- package/dist/packages/composition/grid/src/Grid.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/composition/inline/src/Inline.js.map +0 -1
- package/dist/packages/composition/inline/src/Inline.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/composition/scroll-reel/src/ScrollReel.js.map +0 -1
- package/dist/packages/composition/scroll-reel/src/ScrollReel.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/composition/sidebar/src/Sidebar.js.map +0 -1
- package/dist/packages/composition/sidebar/src/Sidebar.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/composition/split/src/Split.js.map +0 -1
- package/dist/packages/composition/split/src/Split.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/composition/stack/src/Stack.js.map +0 -1
- package/dist/packages/composition/stack/src/Stack.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/core/src/a11y-scope.js +0 -149
- package/dist/packages/core/src/a11y-scope.js.map +0 -1
- package/dist/packages/core/src/attrs.js.map +0 -1
- package/dist/packages/core/src/cn.js +0 -61
- package/dist/packages/core/src/cn.js.map +0 -1
- package/dist/packages/core/src/icon-defaults.js.map +0 -1
- package/dist/packages/core/src/index.js +0 -8
- package/dist/packages/core/src/motion.js +0 -27
- package/dist/packages/core/src/motion.js.map +0 -1
- package/dist/packages/core/src/props.js.map +0 -1
- package/dist/packages/core/src/theme.js.map +0 -1
- package/dist/packages/labels/src/ancestor-disabled.js.map +0 -1
- package/dist/packages/labels/src/count-labels.js.map +0 -1
- package/dist/packages/labels/src/date-labels.js +0 -206
- package/dist/packages/labels/src/date-labels.js.map +0 -1
- package/dist/packages/labels/src/field-context.js.map +0 -1
- package/dist/packages/labels/src/labels.js.map +0 -1
- package/dist/packages/layouts/app-shell/src/AppShell.js.map +0 -1
- package/dist/packages/layouts/app-shell/src/AppShell.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/layouts/centered/src/Centered.js.map +0 -1
- package/dist/packages/layouts/centered/src/Centered.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/layouts/dashboard/src/Dashboard.js.map +0 -1
- package/dist/packages/layouts/dashboard/src/Dashboard.vue_vue_type_script_setup_true_lang.js +0 -65
- package/dist/packages/layouts/dashboard/src/Dashboard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/layouts/form-layout/src/FormLayout.js.map +0 -1
- package/dist/packages/layouts/form-layout/src/FormLayout.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/layouts/master-detail/src/MasterDetail.js.map +0 -1
- package/dist/packages/layouts/master-detail/src/MasterDetail.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/layouts/reading/src/Reading.js.map +0 -1
- package/dist/packages/layouts/reading/src/Reading.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/layouts/settings/src/Settings.js.map +0 -1
- package/dist/packages/layouts/settings/src/Settings.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/layouts/split-layout/src/SplitLayout.js.map +0 -1
- package/dist/packages/layouts/split-layout/src/SplitLayout.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/accordion/src/Accordion.js.map +0 -1
- package/dist/packages/primitives/accordion/src/Accordion.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/alert/src/Alert.js.map +0 -1
- package/dist/packages/primitives/alert/src/Alert.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/alert-dialog/src/AlertDialog.js.map +0 -1
- package/dist/packages/primitives/alert-dialog/src/AlertDialog.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/avatar/src/Avatar.js.map +0 -1
- package/dist/packages/primitives/avatar/src/Avatar.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/avatar-group/src/AvatarGroup.js.map +0 -1
- package/dist/packages/primitives/avatar-group/src/AvatarGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/badge/src/Badge.js.map +0 -1
- package/dist/packages/primitives/badge/src/Badge.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/breadcrumb/src/Breadcrumb.js.map +0 -1
- package/dist/packages/primitives/breadcrumb/src/Breadcrumb.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/button/src/Button.js.map +0 -1
- package/dist/packages/primitives/button/src/Button.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/calendar/src/Calendar.js.map +0 -1
- package/dist/packages/primitives/calendar/src/Calendar.vue_vue_type_script_setup_true_lang.js +0 -204
- package/dist/packages/primitives/calendar/src/Calendar.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/card/src/Card.js.map +0 -1
- package/dist/packages/primitives/card/src/Card.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/carousel/src/Carousel.js.map +0 -1
- package/dist/packages/primitives/carousel/src/Carousel.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/checkbox/src/Checkbox.js.map +0 -1
- package/dist/packages/primitives/checkbox/src/Checkbox.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/chip/src/Chip.js.map +0 -1
- package/dist/packages/primitives/chip/src/Chip.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/collapse/src/Collapse.js.map +0 -1
- package/dist/packages/primitives/collapse/src/Collapse.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/color-picker/src/ColorPicker.js.map +0 -1
- package/dist/packages/primitives/color-picker/src/ColorPicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/combobox/src/Combobox.js.map +0 -1
- package/dist/packages/primitives/combobox/src/Combobox.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/command/src/Command.js.map +0 -1
- package/dist/packages/primitives/command/src/Command.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/context-menu/src/ContextMenu.js.map +0 -1
- package/dist/packages/primitives/context-menu/src/ContextMenu.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/copy-button/src/CopyButton.js.map +0 -1
- package/dist/packages/primitives/copy-button/src/CopyButton.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/copy-button/src/index.js +0 -3
- package/dist/packages/primitives/data-grid/src/DataGrid.js.map +0 -1
- package/dist/packages/primitives/data-grid/src/DataGrid.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/date-picker/src/DatePicker.js.map +0 -1
- package/dist/packages/primitives/date-picker/src/DatePicker.vue_vue_type_script_setup_true_lang.js +0 -294
- package/dist/packages/primitives/date-picker/src/DatePicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/date-range-picker/src/DateRangePicker.js.map +0 -1
- package/dist/packages/primitives/date-range-picker/src/DateRangePicker.vue_vue_type_script_setup_true_lang.js +0 -419
- package/dist/packages/primitives/date-range-picker/src/DateRangePicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/date-time-picker/src/DateTimePicker.js.map +0 -1
- package/dist/packages/primitives/date-time-picker/src/DateTimePicker.vue_vue_type_script_setup_true_lang.js +0 -361
- package/dist/packages/primitives/date-time-picker/src/DateTimePicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/date-time-range-picker/src/DateTimeRangePicker.js.map +0 -1
- package/dist/packages/primitives/date-time-range-picker/src/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js +0 -565
- package/dist/packages/primitives/date-time-range-picker/src/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/dialog/src/Dialog.js.map +0 -1
- package/dist/packages/primitives/dialog/src/Dialog.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/drawer/src/Drawer.js.map +0 -1
- package/dist/packages/primitives/drawer/src/Drawer.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/dropdown-menu/src/DropdownMenu.js.map +0 -1
- package/dist/packages/primitives/dropdown-menu/src/DropdownMenu.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/editable/src/Editable.js.map +0 -1
- package/dist/packages/primitives/editable/src/Editable.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/field/src/Field.js.map +0 -1
- package/dist/packages/primitives/field/src/Field.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/fieldset/src/Fieldset.js.map +0 -1
- package/dist/packages/primitives/fieldset/src/Fieldset.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/file-upload/src/FileUpload.js.map +0 -1
- package/dist/packages/primitives/file-upload/src/FileUpload.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/hover-card/src/HoverCard.js.map +0 -1
- package/dist/packages/primitives/hover-card/src/HoverCard.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/icon-button/src/IconButton.js.map +0 -1
- package/dist/packages/primitives/icon-button/src/IconButton.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/indicator/src/Indicator.js.map +0 -1
- package/dist/packages/primitives/indicator/src/Indicator.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/inline-error/src/InlineError.js.map +0 -1
- package/dist/packages/primitives/inline-error/src/InlineError.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/kbd/src/Kbd.js.map +0 -1
- package/dist/packages/primitives/kbd/src/Kbd.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/link/src/Link.js.map +0 -1
- package/dist/packages/primitives/link/src/Link.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/list/src/List.js.map +0 -1
- package/dist/packages/primitives/list/src/List.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/list/src/ListItem.js.map +0 -1
- package/dist/packages/primitives/list/src/ListItem.vue_vue_type_script_setup_true_lang.js +0 -101
- package/dist/packages/primitives/list/src/ListItem.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/live-region/src/LiveRegion.js.map +0 -1
- package/dist/packages/primitives/live-region/src/LiveRegion.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/live-region/src/context.js.map +0 -1
- package/dist/packages/primitives/live-region/src/useAnnounce.js.map +0 -1
- package/dist/packages/primitives/menubar/src/Menubar.js.map +0 -1
- package/dist/packages/primitives/menubar/src/Menubar.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/meter/src/Meter.js.map +0 -1
- package/dist/packages/primitives/meter/src/Meter.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/navigation-menu/src/NavigationMenu.js.map +0 -1
- package/dist/packages/primitives/navigation-menu/src/NavigationMenu.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/number-field/src/NumberField.js.map +0 -1
- package/dist/packages/primitives/number-field/src/NumberField.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/otp-input/src/OtpInput.js.map +0 -1
- package/dist/packages/primitives/otp-input/src/OtpInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/pagination/src/Pagination.js.map +0 -1
- package/dist/packages/primitives/pagination/src/Pagination.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/popover/src/Popover.js.map +0 -1
- package/dist/packages/primitives/popover/src/Popover.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/progress/src/Progress.js.map +0 -1
- package/dist/packages/primitives/progress/src/Progress.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/radial-progress/src/RadialProgress.js.map +0 -1
- package/dist/packages/primitives/radial-progress/src/RadialProgress.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/radio-group/src/RadioGroup.js.map +0 -1
- package/dist/packages/primitives/radio-group/src/RadioGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/rating/src/Rating.js.map +0 -1
- package/dist/packages/primitives/rating/src/Rating.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/scroll-area/src/ScrollArea.js.map +0 -1
- package/dist/packages/primitives/scroll-area/src/ScrollArea.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/segmented-control/src/SegmentedControl.js.map +0 -1
- package/dist/packages/primitives/segmented-control/src/SegmentedControl.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/select/src/Select.js.map +0 -1
- package/dist/packages/primitives/select/src/Select.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/separator/src/Separator.js.map +0 -1
- package/dist/packages/primitives/separator/src/Separator.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/skeleton/src/Skeleton.js.map +0 -1
- package/dist/packages/primitives/skeleton/src/Skeleton.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/skip-link/src/SkipLink.js.map +0 -1
- package/dist/packages/primitives/skip-link/src/SkipLink.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/slider/src/Slider.js.map +0 -1
- package/dist/packages/primitives/slider/src/Slider.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/speed-dial/src/SpeedDial.js.map +0 -1
- package/dist/packages/primitives/speed-dial/src/SpeedDial.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/spinner/src/Spinner.js.map +0 -1
- package/dist/packages/primitives/spinner/src/Spinner.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/stepper/src/Stepper.js.map +0 -1
- package/dist/packages/primitives/stepper/src/Stepper.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/surface/src/Surface.js.map +0 -1
- package/dist/packages/primitives/surface/src/Surface.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/switch/src/Switch.js.map +0 -1
- package/dist/packages/primitives/switch/src/Switch.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/table/src/Table.js.map +0 -1
- package/dist/packages/primitives/table/src/Table.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/table/src/TableCell.js.map +0 -1
- package/dist/packages/primitives/table/src/TableCell.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/table/src/TableHead.js.map +0 -1
- package/dist/packages/primitives/table/src/TableHead.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/table/src/TableRow.js.map +0 -1
- package/dist/packages/primitives/table/src/TableRow.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/tabs/src/Tabs.js.map +0 -1
- package/dist/packages/primitives/tabs/src/Tabs.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/tags-input/src/TagsInput.js.map +0 -1
- package/dist/packages/primitives/tags-input/src/TagsInput.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/text-field/src/TextField.js.map +0 -1
- package/dist/packages/primitives/text-field/src/TextField.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/textarea/src/Textarea.js.map +0 -1
- package/dist/packages/primitives/textarea/src/Textarea.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/time-picker/src/TimePicker.js.map +0 -1
- package/dist/packages/primitives/time-picker/src/TimePicker.vue_vue_type_script_setup_true_lang.js +0 -189
- package/dist/packages/primitives/time-picker/src/TimePicker.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/timeline/src/Timeline.js.map +0 -1
- package/dist/packages/primitives/timeline/src/Timeline.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/timeline/src/TimelineItem.js.map +0 -1
- package/dist/packages/primitives/timeline/src/TimelineItem.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/timeline/src/index.js +0 -5
- package/dist/packages/primitives/toast/src/Toast.js.map +0 -1
- package/dist/packages/primitives/toast/src/Toast.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/toast/src/ToastItem.js.map +0 -1
- package/dist/packages/primitives/toast/src/ToastItem.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/toggle-group/src/ToggleGroup.js.map +0 -1
- package/dist/packages/primitives/toggle-group/src/ToggleGroup.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/toolbar/src/Toolbar.js.map +0 -1
- package/dist/packages/primitives/toolbar/src/Toolbar.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/toolbar/src/ToolbarSeparator.js.map +0 -1
- package/dist/packages/primitives/toolbar/src/ToolbarSeparator.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/tooltip/src/Tooltip.js.map +0 -1
- package/dist/packages/primitives/tooltip/src/Tooltip.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/tree-view/src/TreeView.js.map +0 -1
- package/dist/packages/primitives/tree-view/src/TreeView.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/tree-view/src/TreeViewNode.js.map +0 -1
- package/dist/packages/primitives/tree-view/src/TreeViewNode.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/tree-view/src/context.js.map +0 -1
- package/dist/packages/primitives/visually-hidden/src/VisuallyHidden.js.map +0 -1
- package/dist/packages/primitives/visually-hidden/src/VisuallyHidden.vue_vue_type_script_setup_true_lang.js.map +0 -1
- package/dist/packages/primitives/window-controls/src/WindowControls.js.map +0 -1
- package/dist/packages/primitives/window-controls/src/WindowControls.vue_vue_type_script_setup_true_lang.js +0 -124
- package/dist/packages/primitives/window-controls/src/WindowControls.vue_vue_type_script_setup_true_lang.js.map +0 -1
- /package/dist/{packages/composition → composition}/center/src/Center.js +0 -0
- /package/dist/{packages/composition → composition}/center/src/Center.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/composition → composition}/center/src/index.js +0 -0
- /package/dist/{packages/blocks → composition}/dashboard-grid/src/index.js +0 -0
- /package/dist/{packages/composition → composition}/frame/src/Frame.js +0 -0
- /package/dist/{packages/composition → composition}/frame/src/Frame.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/composition → composition}/frame/src/index.js +0 -0
- /package/dist/{packages/composition → composition}/grid/src/Grid.js +0 -0
- /package/dist/{packages/composition → composition}/grid/src/Grid.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/composition → composition}/grid/src/index.js +0 -0
- /package/dist/{packages/composition → composition}/inline/src/Inline.js +0 -0
- /package/dist/{packages/composition → composition}/inline/src/Inline.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/composition → composition}/inline/src/index.js +0 -0
- /package/dist/{packages/composition → composition}/scroll-reel/src/ScrollReel.js +0 -0
- /package/dist/{packages/composition → composition}/scroll-reel/src/ScrollReel.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/composition → composition}/scroll-reel/src/index.js +0 -0
- /package/dist/{packages/composition → composition}/sidebar/src/Sidebar.js +0 -0
- /package/dist/{packages/composition → composition}/sidebar/src/Sidebar.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/composition → composition}/sidebar/src/index.js +0 -0
- /package/dist/{packages/composition → composition}/split/src/Split.js +0 -0
- /package/dist/{packages/composition → composition}/split/src/Split.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/composition → composition}/split/src/index.js +0 -0
- /package/dist/{packages/composition → composition}/stack/src/Stack.js +0 -0
- /package/dist/{packages/composition → composition}/stack/src/Stack.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/composition → composition}/stack/src/index.js +0 -0
- /package/dist/{packages/core → core}/src/attrs.js +0 -0
- /package/dist/{packages/core → core}/src/icon-defaults.js +0 -0
- /package/dist/{packages/core → core}/src/props.js +0 -0
- /package/dist/{packages/core → core}/src/theme.js +0 -0
- /package/dist/{packages/labels → labels}/src/ancestor-disabled.js +0 -0
- /package/dist/{packages/labels → labels}/src/count-labels.js +0 -0
- /package/dist/{packages/labels → labels}/src/field-context.js +0 -0
- /package/dist/{packages/labels → labels}/src/index.js +0 -0
- /package/dist/{packages/labels → labels}/src/labels.js +0 -0
- /package/dist/{packages/layouts → layouts}/app-shell/src/AppShell.js +0 -0
- /package/dist/{packages/layouts → layouts}/app-shell/src/AppShell.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/layouts → layouts}/app-shell/src/index.js +0 -0
- /package/dist/{packages/layouts → layouts}/centered/src/Centered.js +0 -0
- /package/dist/{packages/layouts → layouts}/centered/src/Centered.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/layouts → layouts}/centered/src/index.js +0 -0
- /package/dist/{packages/layouts → layouts}/dashboard/src/Dashboard.js +0 -0
- /package/dist/{packages/layouts → layouts}/dashboard/src/index.js +0 -0
- /package/dist/{packages/blocks → layouts}/desktop-app-shell/src/index.js +0 -0
- /package/dist/{packages/layouts → layouts}/form-layout/src/FormLayout.js +0 -0
- /package/dist/{packages/layouts → layouts}/form-layout/src/FormLayout.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/layouts → layouts}/form-layout/src/index.js +0 -0
- /package/dist/{packages/layouts → layouts}/master-detail/src/MasterDetail.js +0 -0
- /package/dist/{packages/layouts → layouts}/master-detail/src/MasterDetail.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/layouts → layouts}/master-detail/src/index.js +0 -0
- /package/dist/{packages/layouts → layouts}/reading/src/Reading.js +0 -0
- /package/dist/{packages/layouts → layouts}/reading/src/Reading.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/layouts → layouts}/reading/src/index.js +0 -0
- /package/dist/{packages/layouts → layouts}/settings/src/Settings.js +0 -0
- /package/dist/{packages/layouts → layouts}/settings/src/Settings.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/layouts → layouts}/settings/src/index.js +0 -0
- /package/dist/{packages/layouts → layouts}/split-layout/src/SplitLayout.js +0 -0
- /package/dist/{packages/layouts → layouts}/split-layout/src/SplitLayout.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/layouts → layouts}/split-layout/src/index.js +0 -0
- /package/dist/packages/{blocks → composition}/dashboard-grid/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → layouts}/desktop-app-shell/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/app-header/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/empty-state/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/error-state/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/error-summary/src/ErrorSummary.vue.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/error-summary/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/form-actions/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/form-section/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/loading-state/src/LoadingState.vue.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/loading-state/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/metric-card/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/page-header/src/PageHeader.vue.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/page-header/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/row-actions/src/RowActions.vue.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/row-actions/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/sidebar-nav/src/SidebarNav.vue.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/sidebar-nav/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/title-bar/src/index.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/toast-stack/src/ToastStack.vue.d.ts +0 -0
- /package/dist/packages/{blocks → patterns}/toast-stack/src/index.d.ts +0 -0
- /package/dist/{packages/blocks → patterns}/app-header/src/index.js +0 -0
- /package/dist/{packages/blocks → patterns}/empty-state/src/index.js +0 -0
- /package/dist/{packages/blocks → patterns}/error-state/src/index.js +0 -0
- /package/dist/{packages/blocks → patterns}/error-summary/src/index.js +0 -0
- /package/dist/{packages/blocks → patterns}/form-actions/src/index.js +0 -0
- /package/dist/{packages/blocks → patterns}/form-section/src/index.js +0 -0
- /package/dist/{packages/blocks → patterns}/loading-state/src/index.js +0 -0
- /package/dist/{packages/blocks → patterns}/metric-card/src/index.js +0 -0
- /package/dist/{packages/blocks → patterns}/page-header/src/index.js +0 -0
- /package/dist/{packages/blocks → patterns}/row-actions/src/index.js +0 -0
- /package/dist/{packages/blocks → patterns}/sidebar-nav/src/index.js +0 -0
- /package/dist/{packages/blocks → patterns}/title-bar/src/index.js +0 -0
- /package/dist/{packages/blocks → patterns}/toast-stack/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/accordion/src/Accordion.js +0 -0
- /package/dist/{packages/primitives → primitives}/accordion/src/Accordion.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/accordion/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/alert/src/Alert.js +0 -0
- /package/dist/{packages/primitives → primitives}/alert/src/Alert.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/alert/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/alert-dialog/src/AlertDialog.js +0 -0
- /package/dist/{packages/primitives → primitives}/alert-dialog/src/AlertDialog.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/alert-dialog/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/avatar/src/Avatar.js +0 -0
- /package/dist/{packages/primitives → primitives}/avatar/src/Avatar.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/avatar/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/avatar-group/src/AvatarGroup.js +0 -0
- /package/dist/{packages/primitives → primitives}/avatar-group/src/AvatarGroup.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/avatar-group/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/badge/src/Badge.js +0 -0
- /package/dist/{packages/primitives → primitives}/badge/src/Badge.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/badge/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/breadcrumb/src/Breadcrumb.js +0 -0
- /package/dist/{packages/primitives → primitives}/breadcrumb/src/Breadcrumb.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/breadcrumb/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/button/src/Button.js +0 -0
- /package/dist/{packages/primitives → primitives}/button/src/Button.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/button/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/calendar/src/Calendar.js +0 -0
- /package/dist/{packages/primitives → primitives}/calendar/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/card/src/Card.js +0 -0
- /package/dist/{packages/primitives → primitives}/card/src/Card.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/card/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/carousel/src/Carousel.js +0 -0
- /package/dist/{packages/primitives → primitives}/carousel/src/Carousel.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/carousel/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/checkbox/src/Checkbox.js +0 -0
- /package/dist/{packages/primitives → primitives}/checkbox/src/Checkbox.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/checkbox/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/chip/src/Chip.js +0 -0
- /package/dist/{packages/primitives → primitives}/chip/src/Chip.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/chip/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/collapse/src/Collapse.js +0 -0
- /package/dist/{packages/primitives → primitives}/collapse/src/Collapse.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/collapse/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/color-picker/src/ColorPicker.js +0 -0
- /package/dist/{packages/primitives → primitives}/color-picker/src/ColorPicker.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/color-picker/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/combobox/src/Combobox.js +0 -0
- /package/dist/{packages/primitives → primitives}/combobox/src/Combobox.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/combobox/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/command/src/Command.js +0 -0
- /package/dist/{packages/primitives → primitives}/command/src/Command.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/command/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/context-menu/src/ContextMenu.js +0 -0
- /package/dist/{packages/primitives → primitives}/context-menu/src/ContextMenu.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/context-menu/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/copy-button/src/CopyButton.js +0 -0
- /package/dist/{packages/primitives → primitives}/copy-button/src/CopyButton.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/data-grid/src/DataGrid.js +0 -0
- /package/dist/{packages/primitives → primitives}/data-grid/src/DataGrid.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/data-grid/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/date-picker/src/DatePicker.js +0 -0
- /package/dist/{packages/primitives → primitives}/date-picker/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/date-range-picker/src/DateRangePicker.js +0 -0
- /package/dist/{packages/primitives → primitives}/date-range-picker/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/date-time-picker/src/DateTimePicker.js +0 -0
- /package/dist/{packages/primitives → primitives}/date-time-picker/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/date-time-range-picker/src/DateTimeRangePicker.js +0 -0
- /package/dist/{packages/primitives → primitives}/date-time-range-picker/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/dialog/src/Dialog.js +0 -0
- /package/dist/{packages/primitives → primitives}/dialog/src/Dialog.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/dialog/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/drawer/src/Drawer.js +0 -0
- /package/dist/{packages/primitives → primitives}/drawer/src/Drawer.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/drawer/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/dropdown-menu/src/DropdownMenu.js +0 -0
- /package/dist/{packages/primitives → primitives}/dropdown-menu/src/DropdownMenu.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/dropdown-menu/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/editable/src/Editable.js +0 -0
- /package/dist/{packages/primitives → primitives}/editable/src/Editable.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/editable/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/field/src/Field.js +0 -0
- /package/dist/{packages/primitives → primitives}/field/src/Field.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/field/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/fieldset/src/Fieldset.js +0 -0
- /package/dist/{packages/primitives → primitives}/fieldset/src/Fieldset.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/fieldset/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/file-upload/src/FileUpload.js +0 -0
- /package/dist/{packages/primitives → primitives}/file-upload/src/FileUpload.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/file-upload/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/hover-card/src/HoverCard.js +0 -0
- /package/dist/{packages/primitives → primitives}/hover-card/src/HoverCard.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/hover-card/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/icon-button/src/IconButton.js +0 -0
- /package/dist/{packages/primitives → primitives}/icon-button/src/IconButton.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/icon-button/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/indicator/src/Indicator.js +0 -0
- /package/dist/{packages/primitives → primitives}/indicator/src/Indicator.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/indicator/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/inline-error/src/InlineError.js +0 -0
- /package/dist/{packages/primitives → primitives}/inline-error/src/InlineError.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/inline-error/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/kbd/src/Kbd.js +0 -0
- /package/dist/{packages/primitives → primitives}/kbd/src/Kbd.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/kbd/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/link/src/Link.js +0 -0
- /package/dist/{packages/primitives → primitives}/link/src/Link.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/link/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/list/src/List.js +0 -0
- /package/dist/{packages/primitives → primitives}/list/src/List.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/list/src/ListItem.js +0 -0
- /package/dist/{packages/primitives → primitives}/list/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/live-region/src/LiveRegion.js +0 -0
- /package/dist/{packages/primitives → primitives}/live-region/src/LiveRegion.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/live-region/src/context.js +0 -0
- /package/dist/{packages/primitives → primitives}/live-region/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/live-region/src/useAnnounce.js +0 -0
- /package/dist/{packages/primitives → primitives}/menubar/src/Menubar.js +0 -0
- /package/dist/{packages/primitives → primitives}/menubar/src/Menubar.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/menubar/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/meter/src/Meter.js +0 -0
- /package/dist/{packages/primitives → primitives}/meter/src/Meter.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/meter/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/navigation-menu/src/NavigationMenu.js +0 -0
- /package/dist/{packages/primitives → primitives}/navigation-menu/src/NavigationMenu.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/navigation-menu/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/number-field/src/NumberField.js +0 -0
- /package/dist/{packages/primitives → primitives}/number-field/src/NumberField.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/number-field/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/otp-input/src/OtpInput.js +0 -0
- /package/dist/{packages/primitives → primitives}/otp-input/src/OtpInput.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/otp-input/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/pagination/src/Pagination.js +0 -0
- /package/dist/{packages/primitives → primitives}/pagination/src/Pagination.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/pagination/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/popover/src/Popover.js +0 -0
- /package/dist/{packages/primitives → primitives}/popover/src/Popover.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/popover/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/progress/src/Progress.js +0 -0
- /package/dist/{packages/primitives → primitives}/progress/src/Progress.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/progress/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/radial-progress/src/RadialProgress.js +0 -0
- /package/dist/{packages/primitives → primitives}/radial-progress/src/RadialProgress.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/radial-progress/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/radio-group/src/RadioGroup.js +0 -0
- /package/dist/{packages/primitives → primitives}/radio-group/src/RadioGroup.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/radio-group/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/rating/src/Rating.js +0 -0
- /package/dist/{packages/primitives → primitives}/rating/src/Rating.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/rating/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/scroll-area/src/ScrollArea.js +0 -0
- /package/dist/{packages/primitives → primitives}/scroll-area/src/ScrollArea.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/scroll-area/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/segmented-control/src/SegmentedControl.js +0 -0
- /package/dist/{packages/primitives → primitives}/segmented-control/src/SegmentedControl.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/segmented-control/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/select/src/Select.js +0 -0
- /package/dist/{packages/primitives → primitives}/select/src/Select.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/select/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/separator/src/Separator.js +0 -0
- /package/dist/{packages/primitives → primitives}/separator/src/Separator.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/separator/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/skeleton/src/Skeleton.js +0 -0
- /package/dist/{packages/primitives → primitives}/skeleton/src/Skeleton.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/skeleton/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/skip-link/src/SkipLink.js +0 -0
- /package/dist/{packages/primitives → primitives}/skip-link/src/SkipLink.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/skip-link/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/slider/src/Slider.js +0 -0
- /package/dist/{packages/primitives → primitives}/slider/src/Slider.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/slider/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/speed-dial/src/SpeedDial.js +0 -0
- /package/dist/{packages/primitives → primitives}/speed-dial/src/SpeedDial.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/speed-dial/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/spinner/src/Spinner.js +0 -0
- /package/dist/{packages/primitives → primitives}/spinner/src/Spinner.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/spinner/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/stepper/src/Stepper.js +0 -0
- /package/dist/{packages/primitives → primitives}/stepper/src/Stepper.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/stepper/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/surface/src/Surface.js +0 -0
- /package/dist/{packages/primitives → primitives}/surface/src/Surface.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/surface/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/switch/src/Switch.js +0 -0
- /package/dist/{packages/primitives → primitives}/switch/src/Switch.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/switch/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/table/src/Table.js +0 -0
- /package/dist/{packages/primitives → primitives}/table/src/Table.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/table/src/TableCell.js +0 -0
- /package/dist/{packages/primitives → primitives}/table/src/TableCell.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/table/src/TableHead.js +0 -0
- /package/dist/{packages/primitives → primitives}/table/src/TableHead.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/table/src/TableRow.js +0 -0
- /package/dist/{packages/primitives → primitives}/table/src/TableRow.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/table/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/tabs/src/Tabs.js +0 -0
- /package/dist/{packages/primitives → primitives}/tabs/src/Tabs.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/tabs/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/tags-input/src/TagsInput.js +0 -0
- /package/dist/{packages/primitives → primitives}/tags-input/src/TagsInput.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/tags-input/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/text-field/src/TextField.js +0 -0
- /package/dist/{packages/primitives → primitives}/text-field/src/TextField.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/text-field/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/textarea/src/Textarea.js +0 -0
- /package/dist/{packages/primitives → primitives}/textarea/src/Textarea.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/textarea/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/time-picker/src/TimePicker.js +0 -0
- /package/dist/{packages/primitives → primitives}/time-picker/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/timeline/src/Timeline.js +0 -0
- /package/dist/{packages/primitives → primitives}/timeline/src/Timeline.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/timeline/src/TimelineItem.js +0 -0
- /package/dist/{packages/primitives → primitives}/timeline/src/TimelineItem.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/toast/src/Toast.js +0 -0
- /package/dist/{packages/primitives → primitives}/toast/src/Toast.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/toast/src/ToastItem.js +0 -0
- /package/dist/{packages/primitives → primitives}/toast/src/ToastItem.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/toast/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/toggle-group/src/ToggleGroup.js +0 -0
- /package/dist/{packages/primitives → primitives}/toggle-group/src/ToggleGroup.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/toggle-group/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/toolbar/src/Toolbar.js +0 -0
- /package/dist/{packages/primitives → primitives}/toolbar/src/Toolbar.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/toolbar/src/ToolbarSeparator.js +0 -0
- /package/dist/{packages/primitives → primitives}/toolbar/src/ToolbarSeparator.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/toolbar/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/tooltip/src/Tooltip.js +0 -0
- /package/dist/{packages/primitives → primitives}/tooltip/src/Tooltip.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/tooltip/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/tree-view/src/TreeView.js +0 -0
- /package/dist/{packages/primitives → primitives}/tree-view/src/TreeView.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/tree-view/src/TreeViewNode.js +0 -0
- /package/dist/{packages/primitives → primitives}/tree-view/src/TreeViewNode.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/tree-view/src/context.js +0 -0
- /package/dist/{packages/primitives → primitives}/tree-view/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/visually-hidden/src/VisuallyHidden.js +0 -0
- /package/dist/{packages/primitives → primitives}/visually-hidden/src/VisuallyHidden.vue_vue_type_script_setup_true_lang.js +0 -0
- /package/dist/{packages/primitives → primitives}/visually-hidden/src/index.js +0 -0
- /package/dist/{packages/primitives → primitives}/window-controls/src/WindowControls.js +0 -0
- /package/dist/{packages/primitives → primitives}/window-controls/src/index.js +0 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { createCommentVNode, createElementBlock, defineComponent, openBlock, renderSlot } from "vue";
|
|
2
|
+
//#region packages/patterns/app-header/src/AppHeader.vue?vue&type=script&setup=true&lang.ts
|
|
3
|
+
var _hoisted_1 = ["aria-label"];
|
|
4
|
+
var _hoisted_2 = {
|
|
5
|
+
key: 0,
|
|
6
|
+
class: "flex shrink-0 items-center gap-2"
|
|
7
|
+
};
|
|
8
|
+
var _hoisted_3 = {
|
|
9
|
+
key: 1,
|
|
10
|
+
class: "order-last min-w-0 basis-full sm:order-none sm:max-w-sm sm:flex-1 sm:basis-auto lg:max-w-md"
|
|
11
|
+
};
|
|
12
|
+
var _hoisted_4 = {
|
|
13
|
+
key: 2,
|
|
14
|
+
class: "ml-auto flex shrink-0 items-center gap-1 sm:gap-2"
|
|
15
|
+
};
|
|
16
|
+
var AppHeader_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
17
|
+
__name: "AppHeader",
|
|
18
|
+
props: { ariaLabel: {} },
|
|
19
|
+
setup(__props) {
|
|
20
|
+
/**
|
|
21
|
+
* AppHeader — the web app's TOP BAR: the shell-level strip that stays on
|
|
22
|
+
* screen above every surface, distinct from two components it is easy to
|
|
23
|
+
* confuse with:
|
|
24
|
+
*
|
|
25
|
+
* - **`PageHeader`** — a surface's own pinned title band, sitting *inside*
|
|
26
|
+
* the content area this bar sits above.
|
|
27
|
+
* - **`TitleBar`** — the desktop window's native chrome (drag region, window
|
|
28
|
+
* controls). This bar is browser content, not window furniture.
|
|
29
|
+
*
|
|
30
|
+
* Layout is three regions, so callers never hand-tune widths: brand (left) ·
|
|
31
|
+
* optional search · a trailing cluster for a leading control, notifications, and
|
|
32
|
+
* the user menu, pushed right by `ml-auto`. Every region is a named slot —
|
|
33
|
+
* this pattern owns the strip's geometry and elevation, never its content or
|
|
34
|
+
* behavior.
|
|
35
|
+
*
|
|
36
|
+
* The trailing cluster is pushed right by its own `ml-auto`, not by a spacer
|
|
37
|
+
* element. A spacer works, but it is a second `flex-1` beside the search
|
|
38
|
+
* field, so the two end up splitting the free space instead of the field
|
|
39
|
+
* taking what is actually left; `ml-auto` costs no element and no width, and
|
|
40
|
+
* keeps the cluster flush right even when no search is slotted at all.
|
|
41
|
+
*
|
|
42
|
+
* **Below `sm` the bar is two rows, and that is the point of this pattern's
|
|
43
|
+
* responsive behavior.** A brand, a real search field, and a leading control +
|
|
44
|
+
* notifications + account cluster do not fit across a 390px viewport: on
|
|
45
|
+
* that width the search field is left about 60px and renders as a magnifier
|
|
46
|
+
* glyph pressed against the org name — a control that is technically present
|
|
47
|
+
* and practically unusable. So the search takes a full-width second row
|
|
48
|
+
* (`basis-full` + `order-last`), the header height goes from fixed to
|
|
49
|
+
* `min-h-14`, and from `sm` up it snaps back to the single `flex-nowrap` row.
|
|
50
|
+
* Wrapping rather than hiding is deliberate: the host slotted a search
|
|
51
|
+
* because its users need one, and a pattern does not get to decide they need
|
|
52
|
+
* it less on a phone.
|
|
53
|
+
*
|
|
54
|
+
* The `order-last` is the one thing to keep in mind if this changes: it
|
|
55
|
+
* moves the search visually below the cluster while leaving it before the
|
|
56
|
+
* cluster in the DOM, so on a phone the tab order reaches search first. That
|
|
57
|
+
* is the better of the two mismatches — search is the more-used control —
|
|
58
|
+
* but it is a mismatch, so do not extend `order-*` to the other regions.
|
|
59
|
+
*
|
|
60
|
+
* **Pinned, and separated by a hairline — never a shadow.** It sits on
|
|
61
|
+
* `bg-card` (the raised plane), one step above the content it sits over,
|
|
62
|
+
* unlike `PageHeader` which shares the content's own `bg-background` plane.
|
|
63
|
+
* Because content scrolls *under* it, the surface is translucent + blurred
|
|
64
|
+
* so the motion beneath stays legible as depth — the opaque `bg-card` is
|
|
65
|
+
* declared first and stays the fallback wherever `backdrop-filter` is
|
|
66
|
+
* unsupported, so the bar is never a see-through smear.
|
|
67
|
+
*
|
|
68
|
+
* Widths step rather than hold one value: gutters open up from `sm` and
|
|
69
|
+
* again on wide desktops (`3xl`, 1920px), where a 16px gutter beside a
|
|
70
|
+
* 1920px canvas reads as an accident.
|
|
71
|
+
*
|
|
72
|
+
* Deliberately neutral: this is shell chrome shared by every user and every
|
|
73
|
+
* action alike, so it never wears `--primary`/`--accent` — the bar stays
|
|
74
|
+
* uncommitted until a specific action is happening on the surface below.
|
|
75
|
+
*/
|
|
76
|
+
return (_ctx, _cache) => {
|
|
77
|
+
return openBlock(), createElementBlock("header", {
|
|
78
|
+
"data-loom-app-header": "",
|
|
79
|
+
"aria-label": __props.ariaLabel,
|
|
80
|
+
class: "sticky top-0 z-30 flex min-h-14 flex-wrap items-center gap-x-2 gap-y-2 border-b border-border bg-card px-3 py-2 text-card-foreground backdrop-blur-md supports-[backdrop-filter]:bg-card/80 sm:h-14 sm:flex-nowrap sm:gap-x-3 sm:px-4 sm:py-0 lg:px-6 3xl:h-16 3xl:px-8"
|
|
81
|
+
}, [
|
|
82
|
+
_ctx.$slots.brand ? (openBlock(), createElementBlock("div", _hoisted_2, [renderSlot(_ctx.$slots, "brand")])) : createCommentVNode("", true),
|
|
83
|
+
_ctx.$slots.search ? (openBlock(), createElementBlock("div", _hoisted_3, [renderSlot(_ctx.$slots, "search")])) : createCommentVNode("", true),
|
|
84
|
+
_ctx.$slots.leading || _ctx.$slots.notifications || _ctx.$slots.userMenu ? (openBlock(), createElementBlock("div", _hoisted_4, [
|
|
85
|
+
renderSlot(_ctx.$slots, "leading"),
|
|
86
|
+
renderSlot(_ctx.$slots, "notifications"),
|
|
87
|
+
renderSlot(_ctx.$slots, "userMenu")
|
|
88
|
+
])) : createCommentVNode("", true)
|
|
89
|
+
], 8, _hoisted_1);
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
//#endregion
|
|
94
|
+
export { AppHeader_vue_vue_type_script_setup_true_lang_default as default };
|
|
95
|
+
|
|
96
|
+
//# sourceMappingURL=AppHeader.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppHeader.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../../packages/patterns/app-header/src/AppHeader.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * AppHeader — the web app's TOP BAR: the shell-level strip that stays on\n * screen above every surface, distinct from two components it is easy to\n * confuse with:\n *\n * - **`PageHeader`** — a surface's own pinned title band, sitting *inside*\n * the content area this bar sits above.\n * - **`TitleBar`** — the desktop window's native chrome (drag region, window\n * controls). This bar is browser content, not window furniture.\n *\n * Layout is three regions, so callers never hand-tune widths: brand (left) ·\n * optional search · a trailing cluster for a leading control, notifications, and\n * the user menu, pushed right by `ml-auto`. Every region is a named slot —\n * this pattern owns the strip's geometry and elevation, never its content or\n * behavior.\n *\n * The trailing cluster is pushed right by its own `ml-auto`, not by a spacer\n * element. A spacer works, but it is a second `flex-1` beside the search\n * field, so the two end up splitting the free space instead of the field\n * taking what is actually left; `ml-auto` costs no element and no width, and\n * keeps the cluster flush right even when no search is slotted at all.\n *\n * **Below `sm` the bar is two rows, and that is the point of this pattern's\n * responsive behavior.** A brand, a real search field, and a leading control +\n * notifications + account cluster do not fit across a 390px viewport: on\n * that width the search field is left about 60px and renders as a magnifier\n * glyph pressed against the org name — a control that is technically present\n * and practically unusable. So the search takes a full-width second row\n * (`basis-full` + `order-last`), the header height goes from fixed to\n * `min-h-14`, and from `sm` up it snaps back to the single `flex-nowrap` row.\n * Wrapping rather than hiding is deliberate: the host slotted a search\n * because its users need one, and a pattern does not get to decide they need\n * it less on a phone.\n *\n * The `order-last` is the one thing to keep in mind if this changes: it\n * moves the search visually below the cluster while leaving it before the\n * cluster in the DOM, so on a phone the tab order reaches search first. That\n * is the better of the two mismatches — search is the more-used control —\n * but it is a mismatch, so do not extend `order-*` to the other regions.\n *\n * **Pinned, and separated by a hairline — never a shadow.** It sits on\n * `bg-card` (the raised plane), one step above the content it sits over,\n * unlike `PageHeader` which shares the content's own `bg-background` plane.\n * Because content scrolls *under* it, the surface is translucent + blurred\n * so the motion beneath stays legible as depth — the opaque `bg-card` is\n * declared first and stays the fallback wherever `backdrop-filter` is\n * unsupported, so the bar is never a see-through smear.\n *\n * Widths step rather than hold one value: gutters open up from `sm` and\n * again on wide desktops (`3xl`, 1920px), where a 16px gutter beside a\n * 1920px canvas reads as an accident.\n *\n * Deliberately neutral: this is shell chrome shared by every user and every\n * action alike, so it never wears `--primary`/`--accent` — the bar stays\n * uncommitted until a specific action is happening on the surface below.\n */\ndefineProps<{\n /** Accessible name for the `<header>` landmark, for a page with more than one header-like region. */\n ariaLabel?: string;\n}>();\n</script>\n\n<template>\n <!-- `data-loom-app-header` is the hook `global.css` uses to add the\n safe-area inset to the bar's top padding (the same vendor-rule pattern\n as `[data-loom-titlebar]`): a PWA under a notch or a title-bar overlay\n must not paint its first row into reserved space. -->\n <header\n data-loom-app-header=\"\"\n :aria-label=\"ariaLabel\"\n class=\"sticky top-0 z-30 flex min-h-14 flex-wrap items-center gap-x-2 gap-y-2 border-b border-border bg-card px-3 py-2 text-card-foreground backdrop-blur-md supports-[backdrop-filter]:bg-card/80 sm:h-14 sm:flex-nowrap sm:gap-x-3 sm:px-4 sm:py-0 lg:px-6 3xl:h-16 3xl:px-8\"\n >\n <div v-if=\"$slots.brand\" class=\"flex shrink-0 items-center gap-2\">\n <!-- @slot The product mark and name, leftmost. -->\n <slot name=\"brand\" />\n </div>\n\n <!-- Own full-width row below `sm` (see the doc header on `order-last`);\n from `sm` up it rejoins the row and takes a cap so it never stretches\n into a banner on a wide canvas. -->\n <div\n v-if=\"$slots.search\"\n class=\"order-last min-w-0 basis-full sm:order-none sm:max-w-sm sm:flex-1 sm:basis-auto lg:max-w-md\"\n >\n <!-- @slot The app's global search field. Exactly one control — a filter belongs to `PageHeader` or the content area, not here. -->\n <slot name=\"search\" />\n </div>\n\n <div\n v-if=\"$slots.leading || $slots.notifications || $slots.userMenu\"\n class=\"ml-auto flex shrink-0 items-center gap-1 sm:gap-2\"\n >\n <!-- @slot A leading control in the trailing cluster — workspace switcher, org selector, breadcrumb, etc. -->\n <slot name=\"leading\" />\n <!-- @slot The notifications trigger, between the leading control and the account menu. -->\n <slot name=\"notifications\" />\n <!-- @slot The account menu, trailing the cluster. -->\n <slot name=\"userMenu\" />\n </div>\n </header>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEE,OAAA,UAAA,GAAA,mBAgCS,UAAA;IA/BP,wBAAqB;IACpB,cAAY,QAAA;IACb,OAAM;;IAEKA,KAAAA,OAAO,SAAlB,UAAA,GAAA,mBAGM,OAHN,YAGM,CADJ,WAAqB,KAAA,QAAA,OAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA;IAOfA,KAAAA,OAAO,UADf,UAAA,GAAA,mBAMM,OANN,YAMM,CADJ,WAAsB,KAAA,QAAA,QAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA;IAIhBA,KAAAA,OAAO,WAAWA,KAAAA,OAAO,iBAAiBA,KAAAA,OAAO,YADzD,UAAA,GAAA,mBAUM,OAVN,YAUM;KALJ,WAAuB,KAAA,QAAA,SAAA;KAEvB,WAA6B,KAAA,QAAA,eAAA;KAE7B,WAAwB,KAAA,QAAA,UAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import EmptyState_vue_vue_type_script_setup_true_lang_default from "./EmptyState.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/patterns/empty-state/src/EmptyState.vue
|
|
3
|
+
var EmptyState_default = EmptyState_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { EmptyState_default as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=EmptyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.js","names":[],"sources":["../../../../packages/patterns/empty-state/src/EmptyState.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { EMPTY_STATE_STAGGER_STEP_MS, staggerDelay } from \"@ecoma-io/loom-core\";\n\n/**\n * EmptyState — the shape of \"nothing here yet\": icon → title → optional\n * description → at most ONE call-to-action, centered in the empty region. An\n * empty region should explain itself and invite the next step — empty is a\n * welcome, never an error (a failed load renders `InlineError`; an empty\n * *result* renders this).\n *\n * The entrance is a staggered fade-rise film (icon, title, description,\n * action — one 60ms step apart): this is content appearing, not action\n * feedback, so it budgets like a panel rather than against the\n * interaction-feedback ceiling, all token-tier CSS. The step is the\n * empty-state family's own (`EMPTY_STATE_STAGGER_STEP_MS` in core's motion\n * vocabulary) and the delays are computed, not inlined — a stagger the\n * pattern decided alone is a duration family of one, which is how the list\n * staggers drifted before core took them. Purely presentational: the icon\n * comes via the `icon` slot (decorative, hidden from assistive tech), the\n * CTA via the `action` slot — the host owns behavior and wording, and no\n * fallback copy ships with the component.\n *\n * The icon sits in a hairline medallion — a `bg-subtle` disc with a `border`\n * ring — rather than floating bare. Two reasons: the glyph itself is sized\n * 20px, the emphasis step for an empty-state icon, and a 20px stroke drawing\n * alone in a large blank region has nothing to hold it, so it reads as a\n * stray mark; the medallion gives it a shape to anchor without adding a\n * shadow (a disc is a surface plus a hairline, never a float). `bg-subtle`\n * is chosen over `bg-card` so the disc stays visible on `bg-card` and\n * `bg-background` alike — this pattern is dropped into both.\n *\n * Type comes from the named scale (`text-title` / `text-small`), not\n * hand-picked `text-sm`/`text-xs` — the empty state is a titled moment, not\n * a caption.\n */\ndefineProps<{\n /** What is missing, stated plainly — always shown. */\n title: string;\n /** What to do about it. Omit rather than pad the region with filler copy. */\n description?: string;\n}>();\n</script>\n\n<template>\n <div class=\"flex flex-col items-center justify-center gap-1.5 px-6 py-10 text-center sm:py-14\">\n <div\n v-if=\"$slots.icon\"\n aria-hidden=\"true\"\n class=\"animate-fade-rise mb-3 grid h-12 w-12 place-items-center rounded-full border border-border bg-subtle text-muted-foreground [&_svg]:h-5 [&_svg]:w-5\"\n >\n <slot name=\"icon\" />\n </div>\n <!-- One paragraph, not a short titled one before a longer one. The empty\n state is a single message, and a short, larger, bolder <p> sitting\n before a smaller one is exactly the fake-heading shape `p-as-heading`\n flags (WCAG 1.3.1; measured 2026-08-26 on this pattern's own demo).\n Block spans keep the stacked look and the stagger. -->\n <p>\n <span\n class=\"block animate-fade-rise text-title text-foreground\"\n :style=\"{ animationDelay: staggerDelay(1, EMPTY_STATE_STAGGER_STEP_MS) }\"\n >\n {{ title }}\n </span>\n <span\n v-if=\"description\"\n class=\"mt-1.5 block animate-fade-rise max-w-sm text-balance text-small text-muted-foreground\"\n :style=\"{ animationDelay: staggerDelay(2, EMPTY_STATE_STAGGER_STEP_MS) }\"\n >\n {{ description }}\n </span>\n </p>\n <div\n v-if=\"$slots.action\"\n class=\"animate-fade-rise mt-4\"\n :style=\"{ animationDelay: staggerDelay(3, EMPTY_STATE_STAGGER_STEP_MS) }\"\n >\n <slot name=\"action\" />\n </div>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { staggerDelay } from "../../../core/src/motion.js";
|
|
2
|
+
import "../../../core/src/index.js";
|
|
3
|
+
import { createCommentVNode, createElementBlock, createElementVNode, defineComponent, normalizeStyle, openBlock, renderSlot, toDisplayString, unref } from "vue";
|
|
4
|
+
//#region packages/patterns/empty-state/src/EmptyState.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var _hoisted_1 = { class: "flex flex-col items-center justify-center gap-1.5 px-6 py-10 text-center sm:py-14" };
|
|
6
|
+
var _hoisted_2 = {
|
|
7
|
+
key: 0,
|
|
8
|
+
"aria-hidden": "true",
|
|
9
|
+
class: "animate-fade-rise mb-3 grid h-12 w-12 place-items-center rounded-full border border-border bg-subtle text-muted-foreground [&_svg]:h-5 [&_svg]:w-5"
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* EmptyState — the shape of "nothing here yet": icon → title → optional
|
|
13
|
+
* description → at most ONE call-to-action, centered in the empty region. An
|
|
14
|
+
* empty region should explain itself and invite the next step — empty is a
|
|
15
|
+
* welcome, never an error (a failed load renders `InlineError`; an empty
|
|
16
|
+
* *result* renders this).
|
|
17
|
+
*
|
|
18
|
+
* The entrance is a staggered fade-rise film (icon, title, description,
|
|
19
|
+
* action — one 60ms step apart): this is content appearing, not action
|
|
20
|
+
* feedback, so it budgets like a panel rather than against the
|
|
21
|
+
* interaction-feedback ceiling, all token-tier CSS. The step is the
|
|
22
|
+
* empty-state family's own (`EMPTY_STATE_STAGGER_STEP_MS` in core's motion
|
|
23
|
+
* vocabulary) and the delays are computed, not inlined — a stagger the
|
|
24
|
+
* pattern decided alone is a duration family of one, which is how the list
|
|
25
|
+
* staggers drifted before core took them. Purely presentational: the icon
|
|
26
|
+
* comes via the `icon` slot (decorative, hidden from assistive tech), the
|
|
27
|
+
* CTA via the `action` slot — the host owns behavior and wording, and no
|
|
28
|
+
* fallback copy ships with the component.
|
|
29
|
+
*
|
|
30
|
+
* The icon sits in a hairline medallion — a `bg-subtle` disc with a `border`
|
|
31
|
+
* ring — rather than floating bare. Two reasons: the glyph itself is sized
|
|
32
|
+
* 20px, the emphasis step for an empty-state icon, and a 20px stroke drawing
|
|
33
|
+
* alone in a large blank region has nothing to hold it, so it reads as a
|
|
34
|
+
* stray mark; the medallion gives it a shape to anchor without adding a
|
|
35
|
+
* shadow (a disc is a surface plus a hairline, never a float). `bg-subtle`
|
|
36
|
+
* is chosen over `bg-card` so the disc stays visible on `bg-card` and
|
|
37
|
+
* `bg-background` alike — this pattern is dropped into both.
|
|
38
|
+
*
|
|
39
|
+
* Type comes from the named scale (`text-title` / `text-small`), not
|
|
40
|
+
* hand-picked `text-sm`/`text-xs` — the empty state is a titled moment, not
|
|
41
|
+
* a caption.
|
|
42
|
+
*/
|
|
43
|
+
var EmptyState_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
44
|
+
__name: "EmptyState",
|
|
45
|
+
props: {
|
|
46
|
+
title: {},
|
|
47
|
+
description: {}
|
|
48
|
+
},
|
|
49
|
+
setup(__props) {
|
|
50
|
+
return (_ctx, _cache) => {
|
|
51
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
52
|
+
_ctx.$slots.icon ? (openBlock(), createElementBlock("div", _hoisted_2, [renderSlot(_ctx.$slots, "icon")])) : createCommentVNode("", true),
|
|
53
|
+
createElementVNode("p", null, [createElementVNode("span", {
|
|
54
|
+
class: "block animate-fade-rise text-title text-foreground",
|
|
55
|
+
style: normalizeStyle({ animationDelay: unref(staggerDelay)(1, unref(60)) })
|
|
56
|
+
}, toDisplayString(__props.title), 5), __props.description ? (openBlock(), createElementBlock("span", {
|
|
57
|
+
key: 0,
|
|
58
|
+
class: "mt-1.5 block animate-fade-rise max-w-sm text-balance text-small text-muted-foreground",
|
|
59
|
+
style: normalizeStyle({ animationDelay: unref(staggerDelay)(2, unref(60)) })
|
|
60
|
+
}, toDisplayString(__props.description), 5)) : createCommentVNode("", true)]),
|
|
61
|
+
_ctx.$slots.action ? (openBlock(), createElementBlock("div", {
|
|
62
|
+
key: 1,
|
|
63
|
+
class: "animate-fade-rise mt-4",
|
|
64
|
+
style: normalizeStyle({ animationDelay: unref(staggerDelay)(3, unref(60)) })
|
|
65
|
+
}, [renderSlot(_ctx.$slots, "action")], 4)) : createCommentVNode("", true)
|
|
66
|
+
]);
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
//#endregion
|
|
71
|
+
export { EmptyState_vue_vue_type_script_setup_true_lang_default as default };
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=EmptyState.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../../packages/patterns/empty-state/src/EmptyState.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { EMPTY_STATE_STAGGER_STEP_MS, staggerDelay } from \"@ecoma-io/loom-core\";\n\n/**\n * EmptyState — the shape of \"nothing here yet\": icon → title → optional\n * description → at most ONE call-to-action, centered in the empty region. An\n * empty region should explain itself and invite the next step — empty is a\n * welcome, never an error (a failed load renders `InlineError`; an empty\n * *result* renders this).\n *\n * The entrance is a staggered fade-rise film (icon, title, description,\n * action — one 60ms step apart): this is content appearing, not action\n * feedback, so it budgets like a panel rather than against the\n * interaction-feedback ceiling, all token-tier CSS. The step is the\n * empty-state family's own (`EMPTY_STATE_STAGGER_STEP_MS` in core's motion\n * vocabulary) and the delays are computed, not inlined — a stagger the\n * pattern decided alone is a duration family of one, which is how the list\n * staggers drifted before core took them. Purely presentational: the icon\n * comes via the `icon` slot (decorative, hidden from assistive tech), the\n * CTA via the `action` slot — the host owns behavior and wording, and no\n * fallback copy ships with the component.\n *\n * The icon sits in a hairline medallion — a `bg-subtle` disc with a `border`\n * ring — rather than floating bare. Two reasons: the glyph itself is sized\n * 20px, the emphasis step for an empty-state icon, and a 20px stroke drawing\n * alone in a large blank region has nothing to hold it, so it reads as a\n * stray mark; the medallion gives it a shape to anchor without adding a\n * shadow (a disc is a surface plus a hairline, never a float). `bg-subtle`\n * is chosen over `bg-card` so the disc stays visible on `bg-card` and\n * `bg-background` alike — this pattern is dropped into both.\n *\n * Type comes from the named scale (`text-title` / `text-small`), not\n * hand-picked `text-sm`/`text-xs` — the empty state is a titled moment, not\n * a caption.\n */\ndefineProps<{\n /** What is missing, stated plainly — always shown. */\n title: string;\n /** What to do about it. Omit rather than pad the region with filler copy. */\n description?: string;\n}>();\n</script>\n\n<template>\n <div class=\"flex flex-col items-center justify-center gap-1.5 px-6 py-10 text-center sm:py-14\">\n <div\n v-if=\"$slots.icon\"\n aria-hidden=\"true\"\n class=\"animate-fade-rise mb-3 grid h-12 w-12 place-items-center rounded-full border border-border bg-subtle text-muted-foreground [&_svg]:h-5 [&_svg]:w-5\"\n >\n <slot name=\"icon\" />\n </div>\n <!-- One paragraph, not a short titled one before a longer one. The empty\n state is a single message, and a short, larger, bolder <p> sitting\n before a smaller one is exactly the fake-heading shape `p-as-heading`\n flags (WCAG 1.3.1; measured 2026-08-26 on this pattern's own demo).\n Block spans keep the stacked look and the stagger. -->\n <p>\n <span\n class=\"block animate-fade-rise text-title text-foreground\"\n :style=\"{ animationDelay: staggerDelay(1, EMPTY_STATE_STAGGER_STEP_MS) }\"\n >\n {{ title }}\n </span>\n <span\n v-if=\"description\"\n class=\"mt-1.5 block animate-fade-rise max-w-sm text-balance text-small text-muted-foreground\"\n :style=\"{ animationDelay: staggerDelay(2, EMPTY_STATE_STAGGER_STEP_MS) }\"\n >\n {{ description }}\n </span>\n </p>\n <div\n v-if=\"$slots.action\"\n class=\"animate-fade-rise mt-4\"\n :style=\"{ animationDelay: staggerDelay(3, EMPTY_STATE_STAGGER_STEP_MS) }\"\n >\n <slot name=\"action\" />\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CE,OAAA,UAAA,GAAA,mBAmCM,OAnCN,YAmCM;IAjCIA,KAAAA,OAAO,QADf,UAAA,GAAA,mBAMM,OANN,YAMM,CADJ,WAAoB,KAAA,QAAA,MAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA;IAOtB,mBAcI,KAAA,MAAA,CAbF,mBAKO,QAAA;KAJL,OAAM;KACL,OAAK,eAAA,EAAA,gBAAoB,MAAA,YAAA,CAAY,CAAA,GAAI,MAAA,EAAA,CAA2B,EAAA,CAAA;IAElE,GAAA,gBAAA,QAAA,KAAK,GAAA,CAAA,GAGF,QAAA,eADR,UAAA,GAAA,mBAMO,QAAA;;KAJL,OAAM;KACL,OAAK,eAAA,EAAA,gBAAoB,MAAA,YAAA,CAAY,CAAA,GAAI,MAAA,EAAA,CAA2B,EAAA,CAAA;IAElE,GAAA,gBAAA,QAAA,WAAW,GAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,CAAA,CAAA;IAIVA,KAAAA,OAAO,UADf,UAAA,GAAA,mBAMM,OAAA;;KAJJ,OAAM;KACL,OAAK,eAAA,EAAA,gBAAoB,MAAA,YAAA,CAAY,CAAA,GAAI,MAAA,EAAA,CAA2B,EAAA,CAAA;IAErE,GAAA,CAAA,WAAsB,KAAA,QAAA,QAAA,CAAA,GAAA,CAAA,KAAA,mBAAA,IAAA,IAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import ErrorState_vue_vue_type_script_setup_true_lang_default from "./ErrorState.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/patterns/error-state/src/ErrorState.vue
|
|
3
|
+
var ErrorState_default = ErrorState_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { ErrorState_default as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=ErrorState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorState.js","names":[],"sources":["../../../../packages/patterns/error-state/src/ErrorState.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * ErrorState — the shape of \"something went wrong\": icon → title → optional\n * description → optional retry action, centered in the error region. This is\n * EmptyState's mirror: where that pattern says \"nothing here yet\" and invites\n * the next step, this one says \"something broke\" and offers a retry.\n *\n * No staggered entrance. EmptyState is content appearing — a welcome, budgeted\n * like a panel reveal. An error is not content; it is a problem that needs\n * attention now, and a fade-rise film that delays the message reads as\n * indifference. Everything renders at once.\n *\n * The icon sits in a hairline medallion — the same shape as EmptyState's, but\n * tinted `bg-destructive/10` with a `border-destructive/30` ring — because a\n * bare glyph in a region that already signals alarm has no anchor and the\n * colour alone does the work that EmptyState's neutral medallion needed\n * `bg-subtle` for. The icon is decorative and `aria-hidden`; the title already\n * carries the meaning.\n *\n * The action slot is semantically a retry affordance but remains a generic\n * slot — the host owns the wording and behaviour, and no fallback copy ships\n * with the component.\n */\ndefineProps<{\n /** What went wrong, stated plainly — always shown. */\n title: string;\n /** More context about the error. Omit rather than pad the region with filler copy. */\n description?: string;\n}>();\n</script>\n\n<template>\n <div class=\"flex flex-col items-center justify-center gap-1.5 px-6 py-10 text-center sm:py-14\">\n <div\n v-if=\"$slots.icon\"\n aria-hidden=\"true\"\n class=\"grid h-12 w-12 place-items-center rounded-full border border-destructive/30 bg-destructive/10 text-destructive-text [&_svg]:h-5 [&_svg]:w-5\"\n >\n <slot name=\"icon\" />\n </div>\n <p class=\"text-title text-foreground\">\n {{ title }}\n </p>\n <p v-if=\"description\" class=\"max-w-sm text-balance text-small text-muted-foreground\">\n {{ description }}\n </p>\n <div v-if=\"$slots.action\" class=\"mt-4\">\n <slot name=\"action\" />\n </div>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { createCommentVNode, createElementBlock, createElementVNode, defineComponent, openBlock, renderSlot, toDisplayString } from "vue";
|
|
2
|
+
//#region packages/patterns/error-state/src/ErrorState.vue?vue&type=script&setup=true&lang.ts
|
|
3
|
+
var _hoisted_1 = { class: "flex flex-col items-center justify-center gap-1.5 px-6 py-10 text-center sm:py-14" };
|
|
4
|
+
var _hoisted_2 = {
|
|
5
|
+
key: 0,
|
|
6
|
+
"aria-hidden": "true",
|
|
7
|
+
class: "grid h-12 w-12 place-items-center rounded-full border border-destructive/30 bg-destructive/10 text-destructive-text [&_svg]:h-5 [&_svg]:w-5"
|
|
8
|
+
};
|
|
9
|
+
var _hoisted_3 = { class: "text-title text-foreground" };
|
|
10
|
+
var _hoisted_4 = {
|
|
11
|
+
key: 1,
|
|
12
|
+
class: "max-w-sm text-balance text-small text-muted-foreground"
|
|
13
|
+
};
|
|
14
|
+
var _hoisted_5 = {
|
|
15
|
+
key: 2,
|
|
16
|
+
class: "mt-4"
|
|
17
|
+
};
|
|
18
|
+
var ErrorState_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
19
|
+
__name: "ErrorState",
|
|
20
|
+
props: {
|
|
21
|
+
title: {},
|
|
22
|
+
description: {}
|
|
23
|
+
},
|
|
24
|
+
setup(__props) {
|
|
25
|
+
/**
|
|
26
|
+
* ErrorState — the shape of "something went wrong": icon → title → optional
|
|
27
|
+
* description → optional retry action, centered in the error region. This is
|
|
28
|
+
* EmptyState's mirror: where that pattern says "nothing here yet" and invites
|
|
29
|
+
* the next step, this one says "something broke" and offers a retry.
|
|
30
|
+
*
|
|
31
|
+
* No staggered entrance. EmptyState is content appearing — a welcome, budgeted
|
|
32
|
+
* like a panel reveal. An error is not content; it is a problem that needs
|
|
33
|
+
* attention now, and a fade-rise film that delays the message reads as
|
|
34
|
+
* indifference. Everything renders at once.
|
|
35
|
+
*
|
|
36
|
+
* The icon sits in a hairline medallion — the same shape as EmptyState's, but
|
|
37
|
+
* tinted `bg-destructive/10` with a `border-destructive/30` ring — because a
|
|
38
|
+
* bare glyph in a region that already signals alarm has no anchor and the
|
|
39
|
+
* colour alone does the work that EmptyState's neutral medallion needed
|
|
40
|
+
* `bg-subtle` for. The icon is decorative and `aria-hidden`; the title already
|
|
41
|
+
* carries the meaning.
|
|
42
|
+
*
|
|
43
|
+
* The action slot is semantically a retry affordance but remains a generic
|
|
44
|
+
* slot — the host owns the wording and behaviour, and no fallback copy ships
|
|
45
|
+
* with the component.
|
|
46
|
+
*/
|
|
47
|
+
return (_ctx, _cache) => {
|
|
48
|
+
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
49
|
+
_ctx.$slots.icon ? (openBlock(), createElementBlock("div", _hoisted_2, [renderSlot(_ctx.$slots, "icon")])) : createCommentVNode("", true),
|
|
50
|
+
createElementVNode("p", _hoisted_3, toDisplayString(__props.title), 1),
|
|
51
|
+
__props.description ? (openBlock(), createElementBlock("p", _hoisted_4, toDisplayString(__props.description), 1)) : createCommentVNode("", true),
|
|
52
|
+
_ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_5, [renderSlot(_ctx.$slots, "action")])) : createCommentVNode("", true)
|
|
53
|
+
]);
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
//#endregion
|
|
58
|
+
export { ErrorState_vue_vue_type_script_setup_true_lang_default as default };
|
|
59
|
+
|
|
60
|
+
//# sourceMappingURL=ErrorState.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorState.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../../packages/patterns/error-state/src/ErrorState.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * ErrorState — the shape of \"something went wrong\": icon → title → optional\n * description → optional retry action, centered in the error region. This is\n * EmptyState's mirror: where that pattern says \"nothing here yet\" and invites\n * the next step, this one says \"something broke\" and offers a retry.\n *\n * No staggered entrance. EmptyState is content appearing — a welcome, budgeted\n * like a panel reveal. An error is not content; it is a problem that needs\n * attention now, and a fade-rise film that delays the message reads as\n * indifference. Everything renders at once.\n *\n * The icon sits in a hairline medallion — the same shape as EmptyState's, but\n * tinted `bg-destructive/10` with a `border-destructive/30` ring — because a\n * bare glyph in a region that already signals alarm has no anchor and the\n * colour alone does the work that EmptyState's neutral medallion needed\n * `bg-subtle` for. The icon is decorative and `aria-hidden`; the title already\n * carries the meaning.\n *\n * The action slot is semantically a retry affordance but remains a generic\n * slot — the host owns the wording and behaviour, and no fallback copy ships\n * with the component.\n */\ndefineProps<{\n /** What went wrong, stated plainly — always shown. */\n title: string;\n /** More context about the error. Omit rather than pad the region with filler copy. */\n description?: string;\n}>();\n</script>\n\n<template>\n <div class=\"flex flex-col items-center justify-center gap-1.5 px-6 py-10 text-center sm:py-14\">\n <div\n v-if=\"$slots.icon\"\n aria-hidden=\"true\"\n class=\"grid h-12 w-12 place-items-center rounded-full border border-destructive/30 bg-destructive/10 text-destructive-text [&_svg]:h-5 [&_svg]:w-5\"\n >\n <slot name=\"icon\" />\n </div>\n <p class=\"text-title text-foreground\">\n {{ title }}\n </p>\n <p v-if=\"description\" class=\"max-w-sm text-balance text-small text-muted-foreground\">\n {{ description }}\n </p>\n <div v-if=\"$slots.action\" class=\"mt-4\">\n <slot name=\"action\" />\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCE,OAAA,UAAA,GAAA,mBAiBM,OAjBN,YAiBM;IAfIA,KAAAA,OAAO,QADf,UAAA,GAAA,mBAMM,OANN,YAMM,CADJ,WAAoB,KAAA,QAAA,MAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA;IAEtB,mBAEI,KAFJ,YAEI,gBADC,QAAA,KAAK,GAAA,CAAA;IAED,QAAA,eAAT,UAAA,GAAA,mBAEI,KAFJ,YAEI,gBADC,QAAA,WAAW,GAAA,CAAA,KAAA,mBAAA,IAAA,IAAA;IAELA,KAAAA,OAAO,UAAlB,UAAA,GAAA,mBAEM,OAFN,YAEM,CADJ,WAAsB,KAAA,QAAA,QAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import ErrorSummary_vue_vue_type_script_setup_true_lang_default, { ERROR_SUMMARY_LABELS } from "./ErrorSummary.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/patterns/error-summary/src/ErrorSummary.vue
|
|
3
|
+
var ErrorSummary_default = ErrorSummary_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { ERROR_SUMMARY_LABELS, ErrorSummary_default as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=ErrorSummary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorSummary.js","names":[],"sources":["../../../../packages/patterns/error-summary/src/ErrorSummary.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ErrorSummaryLabels, LabelOverrides } from \"@ecoma-io/loom-labels\";\n\n/** One invalid field the summary lists. */\nexport interface ErrorSummaryEntry {\n /** The id of the element the entry links to — the invalid field's control. Give it `tabindex=\"-1\"` (or be natively focusable) so focus can land. */\n id: string;\n /** The error text for that field. */\n message: string;\n /** The field's visible label, spoken ahead of the message in the link text. */\n fieldLabel?: string;\n}\n\n/**\n * Loom's English, co-located with the component so it tree-shakes with it.\n * `heading` takes the count rather than a finished sentence for the reason\n * `LabelOf` in `@ecoma-io/loom-labels` records: plurals are a language\n * decision, and Loom's English has no right to make it for anyone else.\n */\nexport const ERROR_SUMMARY_LABELS: ErrorSummaryLabels = {\n heading: ({ count }) =>\n `There is a problem (${String(count)} ${count === 1 ? \"error\" : \"errors\"})`,\n description: () => \"\",\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { nextTick, ref, useId, watch } from \"vue\";\nimport { TriangleAlert } from \"@lucide/vue\";\nimport { cn } from \"@ecoma-io/loom-core\";\nimport { useLabels } from \"@ecoma-io/loom-labels\";\n\n/**\n * ErrorSummary — the GOV.UK error-summary pattern. On submit-failure, focus\n * moves to a summary listing every field error, each entry a link that moves\n * focus to the invalid field. The container takes `tabindex=\"-1\"` and is\n * focused programmatically whenever the errors first render or change while\n * the form stays invalid.\n *\n * The announcement happens once. `role=\"alert\"` exists only between the\n * summary's appearance and the focus this component immediately gives it —\n * a region that stayed alert would re-announce the whole list on every\n * later change, which is the failure the pattern exists to avoid. Where\n * InlineError annotates one field, this orients the reader across the whole\n * form.\n */\nconst props = defineProps<{\n /** Every invalid field, most important first. Give each `id` a focusable target. */\n errors: ErrorSummaryEntry[];\n /** Names for the summary's own copy — the heading takes the count, so a host owns its plural forms. */\n labels?: LabelOverrides<ErrorSummaryLabels> | undefined;\n}>();\n\nconst text = useLabels(\"errorSummary\", ERROR_SUMMARY_LABELS, () => props.labels);\n\nconst box = ref<HTMLElement | null>(null);\nconst headingId = useId();\nconst announcing = ref(false);\n// True while the form is known to be invalid: the announcement belongs to\n// the empty→invalid transition alone, not to any later change of detail.\nlet invalid = false;\n\nwatch(\n () => props.errors,\n async (errors) => {\n if (errors.length === 0) {\n invalid = false;\n return;\n }\n announcing.value = !invalid;\n invalid = true;\n await nextTick();\n box.value?.focus();\n },\n { deep: true, immediate: true },\n);\n\nfunction focusField(id: string): void {\n // The link's native jump is suppressed: focusing scrolls the field into\n // view, and a jump-to-anchor from a link moves no focus at all when the\n // target is a tabindex=\"-1\" field — which is the documented host contract.\n document.getElementById(id)?.focus();\n}\n</script>\n\n<template>\n <!-- Mounted only while invalid, like InlineError: `v-if`, never `v-show` —\n a summary that never leaves the DOM cannot announce its return. -->\n <div\n v-if=\"errors.length > 0\"\n ref=\"box\"\n tabindex=\"-1\"\n :role=\"announcing ? 'alert' : undefined\"\n :aria-labelledby=\"headingId\"\n :class=\"\n cn(\n 'rounded-md border border-destructive/30 bg-destructive/10 px-4 py-3 text-destructive-text',\n 'animate-fade-rise',\n 'focus:outline-2 focus:outline-offset-2 focus:outline-destructive',\n )\n \"\n @focus=\"announcing = false\"\n >\n <div class=\"flex items-start gap-2\">\n <TriangleAlert class=\"mt-0.5 h-4 w-4 shrink-0\" aria-hidden=\"true\" />\n <div class=\"min-w-0\">\n <h2 :id=\"headingId\" class=\"text-sm font-semibold\">\n {{ text.heading({ count: errors.length }) }}\n </h2>\n <p v-if=\"text.description({ count: errors.length }) !== ''\" class=\"mt-1 text-sm\">\n {{ text.description({ count: errors.length }) }}\n </p>\n <ul class=\"mt-2 list-disc space-y-1 pl-5\">\n <li v-for=\"error in errors\" :key=\"error.id\">\n <a\n :href=\"`#${error.id}`\"\n class=\"font-medium underline underline-offset-2\"\n @click.prevent=\"focusField(error.id)\"\n >{{ error.fieldLabel ? `${error.fieldLabel}: ${error.message}` : error.message }}</a\n >\n </li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { cn } from "../../../core/src/cn.js";
|
|
2
|
+
import "../../../core/src/index.js";
|
|
3
|
+
import { useLabels } from "../../../labels/src/labels.js";
|
|
4
|
+
import "../../../labels/src/index.js";
|
|
5
|
+
import { Fragment, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, nextTick, normalizeClass, openBlock, ref, renderList, toDisplayString, unref, useId, watch, withModifiers } from "vue";
|
|
6
|
+
import { TriangleAlert } from "@lucide/vue";
|
|
7
|
+
//#region packages/patterns/error-summary/src/ErrorSummary.vue?vue&type=script&setup=true&lang.ts
|
|
8
|
+
var _hoisted_1 = ["role", "aria-labelledby"];
|
|
9
|
+
var _hoisted_2 = { class: "flex items-start gap-2" };
|
|
10
|
+
var _hoisted_3 = { class: "min-w-0" };
|
|
11
|
+
var _hoisted_4 = ["id"];
|
|
12
|
+
var _hoisted_5 = {
|
|
13
|
+
key: 0,
|
|
14
|
+
class: "mt-1 text-sm"
|
|
15
|
+
};
|
|
16
|
+
var _hoisted_6 = { class: "mt-2 list-disc space-y-1 pl-5" };
|
|
17
|
+
var _hoisted_7 = ["href", "onClick"];
|
|
18
|
+
/**
|
|
19
|
+
* Loom's English, co-located with the component so it tree-shakes with it.
|
|
20
|
+
* `heading` takes the count rather than a finished sentence for the reason
|
|
21
|
+
* `LabelOf` in `@ecoma-io/loom-labels` records: plurals are a language
|
|
22
|
+
* decision, and Loom's English has no right to make it for anyone else.
|
|
23
|
+
*/
|
|
24
|
+
var ERROR_SUMMARY_LABELS = {
|
|
25
|
+
heading: ({ count }) => `There is a problem (${String(count)} ${count === 1 ? "error" : "errors"})`,
|
|
26
|
+
description: () => ""
|
|
27
|
+
};
|
|
28
|
+
var ErrorSummary_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
29
|
+
__name: "ErrorSummary",
|
|
30
|
+
props: {
|
|
31
|
+
errors: {},
|
|
32
|
+
labels: {}
|
|
33
|
+
},
|
|
34
|
+
setup(__props) {
|
|
35
|
+
const props = __props;
|
|
36
|
+
const text = useLabels("errorSummary", ERROR_SUMMARY_LABELS, () => props.labels);
|
|
37
|
+
const box = ref(null);
|
|
38
|
+
const headingId = useId();
|
|
39
|
+
const announcing = ref(false);
|
|
40
|
+
let invalid = false;
|
|
41
|
+
watch(() => props.errors, async (errors) => {
|
|
42
|
+
if (errors.length === 0) {
|
|
43
|
+
invalid = false;
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
announcing.value = !invalid;
|
|
47
|
+
invalid = true;
|
|
48
|
+
await nextTick();
|
|
49
|
+
box.value?.focus();
|
|
50
|
+
}, {
|
|
51
|
+
deep: true,
|
|
52
|
+
immediate: true
|
|
53
|
+
});
|
|
54
|
+
function focusField(id) {
|
|
55
|
+
document.getElementById(id)?.focus();
|
|
56
|
+
}
|
|
57
|
+
return (_ctx, _cache) => {
|
|
58
|
+
return __props.errors.length > 0 ? (openBlock(), createElementBlock("div", {
|
|
59
|
+
key: 0,
|
|
60
|
+
ref_key: "box",
|
|
61
|
+
ref: box,
|
|
62
|
+
tabindex: "-1",
|
|
63
|
+
role: announcing.value ? "alert" : void 0,
|
|
64
|
+
"aria-labelledby": unref(headingId),
|
|
65
|
+
class: normalizeClass(unref(cn)("rounded-md border border-destructive/30 bg-destructive/10 px-4 py-3 text-destructive-text", "animate-fade-rise", "focus:outline-2 focus:outline-offset-2 focus:outline-destructive")),
|
|
66
|
+
onFocus: _cache[0] || (_cache[0] = ($event) => announcing.value = false)
|
|
67
|
+
}, [createElementVNode("div", _hoisted_2, [createVNode(unref(TriangleAlert), {
|
|
68
|
+
class: "mt-0.5 h-4 w-4 shrink-0",
|
|
69
|
+
"aria-hidden": "true"
|
|
70
|
+
}), createElementVNode("div", _hoisted_3, [
|
|
71
|
+
createElementVNode("h2", {
|
|
72
|
+
id: unref(headingId),
|
|
73
|
+
class: "text-sm font-semibold"
|
|
74
|
+
}, toDisplayString(unref(text).heading({ count: __props.errors.length })), 9, _hoisted_4),
|
|
75
|
+
unref(text).description({ count: __props.errors.length }) !== "" ? (openBlock(), createElementBlock("p", _hoisted_5, toDisplayString(unref(text).description({ count: __props.errors.length })), 1)) : createCommentVNode("", true),
|
|
76
|
+
createElementVNode("ul", _hoisted_6, [(openBlock(true), createElementBlock(Fragment, null, renderList(__props.errors, (error) => {
|
|
77
|
+
return openBlock(), createElementBlock("li", { key: error.id }, [createElementVNode("a", {
|
|
78
|
+
href: `#${error.id}`,
|
|
79
|
+
class: "font-medium underline underline-offset-2",
|
|
80
|
+
onClick: withModifiers(($event) => focusField(error.id), ["prevent"])
|
|
81
|
+
}, toDisplayString(error.fieldLabel ? `${error.fieldLabel}: ${error.message}` : error.message), 9, _hoisted_7)]);
|
|
82
|
+
}), 128))])
|
|
83
|
+
])])], 42, _hoisted_1)) : createCommentVNode("", true);
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
//#endregion
|
|
88
|
+
export { ERROR_SUMMARY_LABELS, ErrorSummary_vue_vue_type_script_setup_true_lang_default as default };
|
|
89
|
+
|
|
90
|
+
//# sourceMappingURL=ErrorSummary.vue_vue_type_script_setup_true_lang.js.map
|
package/dist/patterns/error-summary/src/ErrorSummary.vue_vue_type_script_setup_true_lang.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorSummary.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../packages/patterns/error-summary/src/ErrorSummary.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { ErrorSummaryLabels, LabelOverrides } from \"@ecoma-io/loom-labels\";\n\n/** One invalid field the summary lists. */\nexport interface ErrorSummaryEntry {\n /** The id of the element the entry links to — the invalid field's control. Give it `tabindex=\"-1\"` (or be natively focusable) so focus can land. */\n id: string;\n /** The error text for that field. */\n message: string;\n /** The field's visible label, spoken ahead of the message in the link text. */\n fieldLabel?: string;\n}\n\n/**\n * Loom's English, co-located with the component so it tree-shakes with it.\n * `heading` takes the count rather than a finished sentence for the reason\n * `LabelOf` in `@ecoma-io/loom-labels` records: plurals are a language\n * decision, and Loom's English has no right to make it for anyone else.\n */\nexport const ERROR_SUMMARY_LABELS: ErrorSummaryLabels = {\n heading: ({ count }) =>\n `There is a problem (${String(count)} ${count === 1 ? \"error\" : \"errors\"})`,\n description: () => \"\",\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { nextTick, ref, useId, watch } from \"vue\";\nimport { TriangleAlert } from \"@lucide/vue\";\nimport { cn } from \"@ecoma-io/loom-core\";\nimport { useLabels } from \"@ecoma-io/loom-labels\";\n\n/**\n * ErrorSummary — the GOV.UK error-summary pattern. On submit-failure, focus\n * moves to a summary listing every field error, each entry a link that moves\n * focus to the invalid field. The container takes `tabindex=\"-1\"` and is\n * focused programmatically whenever the errors first render or change while\n * the form stays invalid.\n *\n * The announcement happens once. `role=\"alert\"` exists only between the\n * summary's appearance and the focus this component immediately gives it —\n * a region that stayed alert would re-announce the whole list on every\n * later change, which is the failure the pattern exists to avoid. Where\n * InlineError annotates one field, this orients the reader across the whole\n * form.\n */\nconst props = defineProps<{\n /** Every invalid field, most important first. Give each `id` a focusable target. */\n errors: ErrorSummaryEntry[];\n /** Names for the summary's own copy — the heading takes the count, so a host owns its plural forms. */\n labels?: LabelOverrides<ErrorSummaryLabels> | undefined;\n}>();\n\nconst text = useLabels(\"errorSummary\", ERROR_SUMMARY_LABELS, () => props.labels);\n\nconst box = ref<HTMLElement | null>(null);\nconst headingId = useId();\nconst announcing = ref(false);\n// True while the form is known to be invalid: the announcement belongs to\n// the empty→invalid transition alone, not to any later change of detail.\nlet invalid = false;\n\nwatch(\n () => props.errors,\n async (errors) => {\n if (errors.length === 0) {\n invalid = false;\n return;\n }\n announcing.value = !invalid;\n invalid = true;\n await nextTick();\n box.value?.focus();\n },\n { deep: true, immediate: true },\n);\n\nfunction focusField(id: string): void {\n // The link's native jump is suppressed: focusing scrolls the field into\n // view, and a jump-to-anchor from a link moves no focus at all when the\n // target is a tabindex=\"-1\" field — which is the documented host contract.\n document.getElementById(id)?.focus();\n}\n</script>\n\n<template>\n <!-- Mounted only while invalid, like InlineError: `v-if`, never `v-show` —\n a summary that never leaves the DOM cannot announce its return. -->\n <div\n v-if=\"errors.length > 0\"\n ref=\"box\"\n tabindex=\"-1\"\n :role=\"announcing ? 'alert' : undefined\"\n :aria-labelledby=\"headingId\"\n :class=\"\n cn(\n 'rounded-md border border-destructive/30 bg-destructive/10 px-4 py-3 text-destructive-text',\n 'animate-fade-rise',\n 'focus:outline-2 focus:outline-offset-2 focus:outline-destructive',\n )\n \"\n @focus=\"announcing = false\"\n >\n <div class=\"flex items-start gap-2\">\n <TriangleAlert class=\"mt-0.5 h-4 w-4 shrink-0\" aria-hidden=\"true\" />\n <div class=\"min-w-0\">\n <h2 :id=\"headingId\" class=\"text-sm font-semibold\">\n {{ text.heading({ count: errors.length }) }}\n </h2>\n <p v-if=\"text.description({ count: errors.length }) !== ''\" class=\"mt-1 text-sm\">\n {{ text.description({ count: errors.length }) }}\n </p>\n <ul class=\"mt-2 list-disc space-y-1 pl-5\">\n <li v-for=\"error in errors\" :key=\"error.id\">\n <a\n :href=\"`#${error.id}`\"\n class=\"font-medium underline underline-offset-2\"\n @click.prevent=\"focusField(error.id)\"\n >{{ error.fieldLabel ? `${error.fieldLabel}: ${error.message}` : error.message }}</a\n >\n </li>\n </ul>\n </div>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAmBA,IAAa,uBAA2C;CACtD,UAAU,EAAE,YACV,uBAAuB,OAAO,KAAK,EAAE,GAAG,UAAU,IAAI,UAAU,SAAS;CAC3E,mBAAmB;AACrB;;;;;;;;EAuBA,MAAM,QAAQ;EAOd,MAAM,OAAO,UAAU,gBAAgB,4BAA4B,MAAM,MAAM;EAE/E,MAAM,MAAM,IAAwB,IAAI;EACxC,MAAM,YAAY,MAAM;EACxB,MAAM,aAAa,IAAI,KAAK;EAG5B,IAAI,UAAU;EAEd,YACQ,MAAM,QACZ,OAAO,WAAW;GAChB,IAAI,OAAO,WAAW,GAAG;IACvB,UAAU;IACV;GACF;GACA,WAAW,QAAQ,CAAC;GACpB,UAAU;GACV,MAAM,SAAS;GACf,IAAI,OAAO,MAAM;EACnB,GACA;GAAE,MAAM;GAAM,WAAW;EAAK,CAChC;EAEA,SAAS,WAAW,IAAkB;GAIpC,SAAS,eAAe,EAAE,CAAC,EAAE,MAAM;EACrC;;GAOU,OAAA,QAAA,OAAO,SAAM,KADrB,UAAA,GAAA,mBAoCM,OAAA;;IAlCA,SAAA;IAAJ,KAAI;IACJ,UAAS;IACR,MAAM,WAAA,QAAU,UAAa,KAAA;IAC7B,mBAAiB,MAAA,SAAA;IACjB,OAAK,eAAS,MAAA,EAAA,CAAE,CAAA,6FAAA,qBAAA,kEAAA,CAAA;IAOhB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,WAAA,QAAU;GAElB,GAAA,CAAA,mBAoBM,OApBN,YAoBM,CAnBJ,YAAoE,MAAA,aAAA,GAAA;IAArD,OAAM;IAA0B,eAAY;GAC3D,CAAA,GAAA,mBAiBM,OAjBN,YAiBM;IAhBJ,mBAEK,MAAA;KAFA,IAAI,MAAA,SAAA;KAAW,OAAM;IACrB,GAAA,gBAAA,MAAA,IAAA,CAAI,CAAC,QAAO,EAAA,OAAU,QAAA,OAAO,OAAM,CAAA,CAAA,GAAA,GAAA,UAAA;IAE/B,MAAA,IAAA,CAAI,CAAC,YAAW,EAAA,OAAU,QAAA,OAAO,OAAM,CAAA,MAAA,MAAhD,UAAA,GAAA,mBAEI,KAFJ,YAEI,gBADC,MAAA,IAAA,CAAI,CAAC,YAAW,EAAA,OAAU,QAAA,OAAO,OAAM,CAAA,CAAA,GAAA,CAAA,KAAA,mBAAA,IAAA,IAAA;IAE5C,mBASK,MATL,YASK,EARH,UAAA,IAAA,GAAA,mBAOK,UAAA,MAAA,WAPe,QAAA,SAAT,UAAK;KAAhB,OAAA,UAAA,GAAA,mBAOK,MAAA,EAPwB,KAAK,MAAM,GAAA,GAAA,CACtC,mBAKC,KAAA;MAJE,MAAI,IAAM,MAAM;MACjB,OAAM;MACL,SAAK,eAAA,WAAU,WAAW,MAAM,EAAE,GAAA,CAAA,SAAA,CAAA;KAC/B,GAAA,gBAAA,MAAM,aAAU,GAAM,MAAM,WAAU,IAAK,MAAM,YAAY,MAAM,OAAO,GAAA,GAAA,UAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import FormActions_vue_vue_type_script_setup_true_lang_default from "./FormActions.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/patterns/form-actions/src/FormActions.vue
|
|
3
|
+
var FormActions_default = FormActions_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { FormActions_default as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=FormActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormActions.js","names":[],"sources":["../../../../packages/patterns/form-actions/src/FormActions.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * FormActions — the submit/cancel button row at the bottom of a form. A pattern\n * that owns the layout of form actions so every form in the product has the\n * same action alignment: primary action right, cancel left, separated from the\n * form content by a top border.\n *\n * The pattern exists because \"submit right, cancel left\" is a layout decision\n * repeated in every form, and getting the spacing and alignment wrong is easy.\n * It owns the geometry; the host owns the button text and behavior.\n *\n * The default slot carries the primary actions (submit, save) and the `cancel`\n * slot carries the secondary action. In \"between\" mode the two slots sit at\n * opposite ends; in \"right\" or \"left\" mode everything goes through the default\n * slot, shifted to one side.\n *\n * The row wraps rather than scrolls or shrinks: a cancel slot plus several\n * primary actions cannot be guaranteed to fit a phone width, and an action\n * row that pushes past the viewport is the one overflow the interface\n * contract names outright.\n */\nexport type FormActionsAlign = \"right\" | \"left\" | \"between\";\n</script>\n\n<script setup lang=\"ts\">\nimport { cn } from \"@ecoma-io/loom-core\";\n\nwithDefaults(\n defineProps<{\n /**\n * How the action row distributes its content.\n * - \"between\": cancel slot left, primary actions right (default — the\n * arrangement most forms need)\n * - \"right\": all actions pushed right (short forms, single CTA)\n * - \"left\": all actions pushed left (right-to-left locales, or a design\n * that calls for it)\n */\n align?: FormActionsAlign;\n }>(),\n { align: \"between\" },\n);\n\nconst justify: Record<FormActionsAlign, string> = {\n between: \"justify-between\",\n right: \"justify-end\",\n left: \"justify-start\",\n};\n</script>\n\n<template>\n <!-- border-t separates the actions from the form content above without\n needing a wrapping section or extra spacing rules -->\n <!-- The gap is FormSection's sm band, not its md band, on purpose: sm:gap-3\n keeps the gap every existing form already renders at and above `sm`, so\n only the phone band — the band where the row actually wraps — tightens. -->\n <div\n :class=\"\n cn('flex flex-wrap items-center gap-2 sm:gap-3 border-t border-border pt-6', justify[align])\n \"\n >\n <!-- @slot The secondary/cancel action — placed on the left in \"between\" mode. -->\n <slot name=\"cancel\" />\n <!-- @slot The primary actions (submit, save) — placed on the right in \"between\" mode. -->\n <slot />\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { cn } from "../../../core/src/cn.js";
|
|
2
|
+
import "../../../core/src/index.js";
|
|
3
|
+
import { createElementBlock, defineComponent, normalizeClass, openBlock, renderSlot, unref } from "vue";
|
|
4
|
+
//#region packages/patterns/form-actions/src/FormActions.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var FormActions_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
6
|
+
__name: "FormActions",
|
|
7
|
+
props: { align: { default: "between" } },
|
|
8
|
+
setup(__props) {
|
|
9
|
+
const justify = {
|
|
10
|
+
between: "justify-between",
|
|
11
|
+
right: "justify-end",
|
|
12
|
+
left: "justify-start"
|
|
13
|
+
};
|
|
14
|
+
return (_ctx, _cache) => {
|
|
15
|
+
return openBlock(), createElementBlock("div", { class: normalizeClass(unref(cn)("flex flex-wrap items-center gap-2 sm:gap-3 border-t border-border pt-6", justify[__props.align])) }, [renderSlot(_ctx.$slots, "cancel"), renderSlot(_ctx.$slots, "default")], 2);
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
//#endregion
|
|
20
|
+
export { FormActions_vue_vue_type_script_setup_true_lang_default as default };
|
|
21
|
+
|
|
22
|
+
//# sourceMappingURL=FormActions.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormActions.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../packages/patterns/form-actions/src/FormActions.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * FormActions — the submit/cancel button row at the bottom of a form. A pattern\n * that owns the layout of form actions so every form in the product has the\n * same action alignment: primary action right, cancel left, separated from the\n * form content by a top border.\n *\n * The pattern exists because \"submit right, cancel left\" is a layout decision\n * repeated in every form, and getting the spacing and alignment wrong is easy.\n * It owns the geometry; the host owns the button text and behavior.\n *\n * The default slot carries the primary actions (submit, save) and the `cancel`\n * slot carries the secondary action. In \"between\" mode the two slots sit at\n * opposite ends; in \"right\" or \"left\" mode everything goes through the default\n * slot, shifted to one side.\n *\n * The row wraps rather than scrolls or shrinks: a cancel slot plus several\n * primary actions cannot be guaranteed to fit a phone width, and an action\n * row that pushes past the viewport is the one overflow the interface\n * contract names outright.\n */\nexport type FormActionsAlign = \"right\" | \"left\" | \"between\";\n</script>\n\n<script setup lang=\"ts\">\nimport { cn } from \"@ecoma-io/loom-core\";\n\nwithDefaults(\n defineProps<{\n /**\n * How the action row distributes its content.\n * - \"between\": cancel slot left, primary actions right (default — the\n * arrangement most forms need)\n * - \"right\": all actions pushed right (short forms, single CTA)\n * - \"left\": all actions pushed left (right-to-left locales, or a design\n * that calls for it)\n */\n align?: FormActionsAlign;\n }>(),\n { align: \"between\" },\n);\n\nconst justify: Record<FormActionsAlign, string> = {\n between: \"justify-between\",\n right: \"justify-end\",\n left: \"justify-start\",\n};\n</script>\n\n<template>\n <!-- border-t separates the actions from the form content above without\n needing a wrapping section or extra spacing rules -->\n <!-- The gap is FormSection's sm band, not its md band, on purpose: sm:gap-3\n keeps the gap every existing form already renders at and above `sm`, so\n only the phone band — the band where the row actually wraps — tightens. -->\n <div\n :class=\"\n cn('flex flex-wrap items-center gap-2 sm:gap-3 border-t border-border pt-6', justify[align])\n \"\n >\n <!-- @slot The secondary/cancel action — placed on the left in \"between\" mode. -->\n <slot name=\"cancel\" />\n <!-- @slot The primary actions (submit, save) — placed on the right in \"between\" mode. -->\n <slot />\n </div>\n</template>\n"],"mappings":";;;;;;;;EA0CA,MAAM,UAA4C;GAChD,SAAS;GACT,OAAO;GACP,MAAM;EACR;;GASE,OAAA,UAAA,GAAA,mBASM,OAAA,EARH,OAAK,eAAS,MAAA,EAAA,CAAE,CAAA,0EAA2E,QAAQ,QAAA,MAAK,CAAA,EAAA,GAAA,CAKzG,WAAsB,KAAA,QAAA,QAAA,GAEtB,WAAQ,KAAA,QAAA,SAAA,CAAA,GAAA,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import FormSection_vue_vue_type_script_setup_true_lang_default, { gapClass } from "./FormSection.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/patterns/form-section/src/FormSection.vue
|
|
3
|
+
var FormSection_default = FormSection_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { FormSection_default as default, gapClass };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=FormSection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormSection.js","names":[],"sources":["../../../../packages/patterns/form-section/src/FormSection.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * FormSection — a labeled group of form fields with an optional\n * description, the arrangement every form page reaches for repeatedly: a\n * Fieldset (for the accessible `<fieldset>/<legend>` semantics, disabled/\n * readonly propagation, and hint/error line) with vertical Stack spacing\n * between the fields.\n *\n * The pattern exists because that composition is written at every form page\n * and the spacing between sections is a layout decision it can own once.\n * It is a thin convenience over Fieldset, not a replacement: when a group\n * needs a shape FormSection does not offer, Fieldset is still the right\n * primitive.\n *\n * `description` is NOT Fieldset's `hint`. The description sits between the\n * legend and the fields — it orients the person filling the form (\"Where\n * should we ship your order?\"). The hint sits below the fields and\n * supplements the controls themselves (\"Street address, P.O. box, or\n * military address\"). They serve different readers at different points in\n * the form and both can be present at once.\n */\nexport type FormSectionGap = \"sm\" | \"md\" | \"lg\";\n\nconst gapClass: Record<FormSectionGap, string> = {\n sm: \"gap-2 sm:gap-3\",\n md: \"gap-3 sm:gap-4\",\n lg: \"gap-4 sm:gap-6\",\n} as const;\n\nexport { gapClass };\n</script>\n\n<script setup lang=\"ts\">\nimport Fieldset from \"@ecoma-io/loom-fieldset\";\nimport { cn, optional } from \"@ecoma-io/loom-core\";\n\nwithDefaults(\n defineProps<{\n /** The section title — rendered as a real `<legend>` by Fieldset. */\n legend?: string;\n /**\n * Supporting text shown below the legend, above the fields.\n * NOT the same as `hint`, which sits below the fields — this orients the\n * person filling the form, while `hint` supplements the controls.\n */\n description?: string;\n /** Forwarded to Fieldset: supporting text shown below the group. Hidden while `error` is set. */\n hint?: string;\n /** Forwarded to Fieldset: the group's error message. Replaces `hint`. */\n error?: string;\n /** Forwarded to Fieldset: marks the group mandatory and appends a destructive asterisk. */\n required?: boolean;\n /** Forwarded to Fieldset: disables every control inside, slotted ones included. */\n disabled?: boolean;\n /** Forwarded to Fieldset: renders every Loom control inside read-only. */\n readonly?: boolean | undefined;\n /** Forwarded to Fieldset: set on the `<fieldset>`, used to derive the hint/error id. */\n id?: string;\n /** Gap between fields — mirrors Stack's gap scale. */\n gap?: FormSectionGap;\n }>(),\n {\n required: false,\n disabled: false,\n // Explicitly `undefined`, not `false`: matches Fieldset's own default so\n // an absent prop does not overrule a Field or control that set it.\n readonly: undefined,\n gap: \"md\",\n },\n);\n</script>\n\n<template>\n <Fieldset\n v-bind=\"optional({ legend, hint, error, id })\"\n :required=\"required\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <p v-if=\"description\" class=\"max-w-prose text-small text-muted-foreground\">\n {{ description }}\n </p>\n <div :class=\"cn('flex flex-col', gapClass[gap])\">\n <!-- @slot The form fields in the section. -->\n <slot />\n </div>\n </Fieldset>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { cn } from "../../../core/src/cn.js";
|
|
2
|
+
import { optional } from "../../../core/src/props.js";
|
|
3
|
+
import "../../../core/src/index.js";
|
|
4
|
+
import Fieldset_default from "../../../primitives/fieldset/src/Fieldset.js";
|
|
5
|
+
import "../../../primitives/fieldset/src/index.js";
|
|
6
|
+
import { createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, normalizeClass, openBlock, renderSlot, toDisplayString, unref, withCtx } from "vue";
|
|
7
|
+
//#region packages/patterns/form-section/src/FormSection.vue?vue&type=script&setup=true&lang.ts
|
|
8
|
+
var _hoisted_1 = {
|
|
9
|
+
key: 0,
|
|
10
|
+
class: "max-w-prose text-small text-muted-foreground"
|
|
11
|
+
};
|
|
12
|
+
var gapClass = {
|
|
13
|
+
sm: "gap-2 sm:gap-3",
|
|
14
|
+
md: "gap-3 sm:gap-4",
|
|
15
|
+
lg: "gap-4 sm:gap-6"
|
|
16
|
+
};
|
|
17
|
+
var FormSection_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
18
|
+
__name: "FormSection",
|
|
19
|
+
props: {
|
|
20
|
+
legend: {},
|
|
21
|
+
description: {},
|
|
22
|
+
hint: {},
|
|
23
|
+
error: {},
|
|
24
|
+
required: {
|
|
25
|
+
type: Boolean,
|
|
26
|
+
default: false
|
|
27
|
+
},
|
|
28
|
+
disabled: {
|
|
29
|
+
type: Boolean,
|
|
30
|
+
default: false
|
|
31
|
+
},
|
|
32
|
+
readonly: {
|
|
33
|
+
type: Boolean,
|
|
34
|
+
default: void 0
|
|
35
|
+
},
|
|
36
|
+
id: {},
|
|
37
|
+
gap: { default: "md" }
|
|
38
|
+
},
|
|
39
|
+
setup(__props) {
|
|
40
|
+
return (_ctx, _cache) => {
|
|
41
|
+
return openBlock(), createBlock(unref(Fieldset_default), mergeProps(unref(optional)({
|
|
42
|
+
legend: __props.legend,
|
|
43
|
+
hint: __props.hint,
|
|
44
|
+
error: __props.error,
|
|
45
|
+
id: __props.id
|
|
46
|
+
}), {
|
|
47
|
+
required: __props.required,
|
|
48
|
+
disabled: __props.disabled,
|
|
49
|
+
readonly: __props.readonly
|
|
50
|
+
}), {
|
|
51
|
+
default: withCtx(() => [__props.description ? (openBlock(), createElementBlock("p", _hoisted_1, toDisplayString(__props.description), 1)) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(unref(cn)("flex flex-col", gapClass[__props.gap])) }, [renderSlot(_ctx.$slots, "default")], 2)]),
|
|
52
|
+
_: 3
|
|
53
|
+
}, 16, [
|
|
54
|
+
"required",
|
|
55
|
+
"disabled",
|
|
56
|
+
"readonly"
|
|
57
|
+
]);
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
//#endregion
|
|
62
|
+
export { FormSection_vue_vue_type_script_setup_true_lang_default as default, gapClass };
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=FormSection.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormSection.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../packages/patterns/form-section/src/FormSection.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * FormSection — a labeled group of form fields with an optional\n * description, the arrangement every form page reaches for repeatedly: a\n * Fieldset (for the accessible `<fieldset>/<legend>` semantics, disabled/\n * readonly propagation, and hint/error line) with vertical Stack spacing\n * between the fields.\n *\n * The pattern exists because that composition is written at every form page\n * and the spacing between sections is a layout decision it can own once.\n * It is a thin convenience over Fieldset, not a replacement: when a group\n * needs a shape FormSection does not offer, Fieldset is still the right\n * primitive.\n *\n * `description` is NOT Fieldset's `hint`. The description sits between the\n * legend and the fields — it orients the person filling the form (\"Where\n * should we ship your order?\"). The hint sits below the fields and\n * supplements the controls themselves (\"Street address, P.O. box, or\n * military address\"). They serve different readers at different points in\n * the form and both can be present at once.\n */\nexport type FormSectionGap = \"sm\" | \"md\" | \"lg\";\n\nconst gapClass: Record<FormSectionGap, string> = {\n sm: \"gap-2 sm:gap-3\",\n md: \"gap-3 sm:gap-4\",\n lg: \"gap-4 sm:gap-6\",\n} as const;\n\nexport { gapClass };\n</script>\n\n<script setup lang=\"ts\">\nimport Fieldset from \"@ecoma-io/loom-fieldset\";\nimport { cn, optional } from \"@ecoma-io/loom-core\";\n\nwithDefaults(\n defineProps<{\n /** The section title — rendered as a real `<legend>` by Fieldset. */\n legend?: string;\n /**\n * Supporting text shown below the legend, above the fields.\n * NOT the same as `hint`, which sits below the fields — this orients the\n * person filling the form, while `hint` supplements the controls.\n */\n description?: string;\n /** Forwarded to Fieldset: supporting text shown below the group. Hidden while `error` is set. */\n hint?: string;\n /** Forwarded to Fieldset: the group's error message. Replaces `hint`. */\n error?: string;\n /** Forwarded to Fieldset: marks the group mandatory and appends a destructive asterisk. */\n required?: boolean;\n /** Forwarded to Fieldset: disables every control inside, slotted ones included. */\n disabled?: boolean;\n /** Forwarded to Fieldset: renders every Loom control inside read-only. */\n readonly?: boolean | undefined;\n /** Forwarded to Fieldset: set on the `<fieldset>`, used to derive the hint/error id. */\n id?: string;\n /** Gap between fields — mirrors Stack's gap scale. */\n gap?: FormSectionGap;\n }>(),\n {\n required: false,\n disabled: false,\n // Explicitly `undefined`, not `false`: matches Fieldset's own default so\n // an absent prop does not overrule a Field or control that set it.\n readonly: undefined,\n gap: \"md\",\n },\n);\n</script>\n\n<template>\n <Fieldset\n v-bind=\"optional({ legend, hint, error, id })\"\n :required=\"required\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n >\n <p v-if=\"description\" class=\"max-w-prose text-small text-muted-foreground\">\n {{ description }}\n </p>\n <div :class=\"cn('flex flex-col', gapClass[gap])\">\n <!-- @slot The form fields in the section. -->\n <slot />\n </div>\n </Fieldset>\n</template>\n"],"mappings":";;;;;;;;;;;AAuBA,IAAM,WAA2C;CAC/C,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;;;;;;;;;;;;;;;;;;;;;;;;;GA8CE,OAAA,UAAA,GAAA,YAaW,MAAA,gBAAA,GAbX,WACU,MAYC,QAAA,CAZO,CAAA;IAAA,QAAG,QAAA;IAAM,MAAE,QAAA;IAAI,OAAE,QAAA;IAAK,IAAE,QAAA;GAAE,CAAA,GAAA;IACzC,UAAU,QAAA;IACV,UAAU,QAAA;IACV,UAAU,QAAA;;IAEX,SAAA,cAEI,CAFK,QAAA,eAAT,UAAA,GAAA,mBAEI,KAFJ,YAEI,gBADC,QAAA,WAAW,GAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,GAEhB,mBAGM,OAAA,EAHA,OAAK,eAAE,MAAA,EAAA,CAAE,CAAA,iBAAkB,SAAS,QAAA,IAAG,CAAA,EAAA,GAAA,CAE3C,WAAQ,KAAA,QAAA,SAAA,CAAA,GAAA,CAAA,CAAA,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import LoadingState_vue_vue_type_script_setup_true_lang_default from "./LoadingState.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region packages/patterns/loading-state/src/LoadingState.vue
|
|
3
|
+
var LoadingState_default = LoadingState_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { LoadingState_default as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=LoadingState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadingState.js","names":[],"sources":["../../../../packages/patterns/loading-state/src/LoadingState.vue"],"sourcesContent":["<script setup lang=\"ts\">\n/**\n * LoadingState — the shape of \"not yet known\": a Spinner for short waits or a\n * column of skeleton lines for content-shaped waits. This replaces the \"flash\n * of EmptyState\" antipattern — never show EmptyState before the real result is\n * known, because an empty state that flickers and disappears is a short-lived\n * lie.\n *\n * Two modes controlled by `mode`:\n * - `spinner` (default): centred Spinner with an optional label. Good for\n * indeterminate waits where the host does not know the content shape.\n * - `skeleton`: a column of skeleton lines that approximate the content the\n * host is loading. The default lines are three bars of varying width — enough\n * to suggest paragraph-shaped content without the host having to compose\n * anything. Hosts that know their own shape provide a default slot and render\n * whatever Skeleton arrangement matches their real layout.\n *\n * The Spinner carries its own accessible label (`aria-label` on the primitive)\n * so this pattern does not add a redundant one. The skeleton lines are purely\n * decorative (`aria-hidden` on each Skeleton) — the host's real content will\n * replace them.\n */\nimport Spinner from \"@ecoma-io/loom-spinner\";\nimport Skeleton from \"@ecoma-io/loom-skeleton\";\n\nwithDefaults(\n defineProps<{\n /** Shown below the spinner in spinner mode. Omit for a spinner-only wait. */\n label?: string;\n /** `spinner` for short indeterminate waits; `skeleton` for content-shaped waits. */\n mode?: \"spinner\" | \"skeleton\";\n }>(),\n { mode: \"spinner\" },\n);\n</script>\n\n<template>\n <div\n v-if=\"mode === 'spinner'\"\n class=\"flex flex-col items-center justify-center gap-3 px-6 py-10 sm:py-14\"\n >\n <Spinner size=\"lg\" />\n <p v-if=\"label\" class=\"text-small text-muted-foreground\">{{ label }}</p>\n </div>\n <div v-else class=\"flex flex-col gap-3 px-6 py-10 sm:py-14\">\n <slot>\n <!-- Default skeleton lines approximate paragraph-shaped content without\n requiring the host to compose anything. Hosts that know their own\n shape slot their own Skeleton arrangement instead. -->\n <Skeleton class=\"h-4 w-full\" />\n <Skeleton class=\"h-4 w-3/4\" />\n <Skeleton class=\"h-4 w-5/6\" />\n </slot>\n </div>\n</template>\n"],"mappings":""}
|