@ecoma-io/loom 0.1.0 → 0.2.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 +54 -57
- package/dist/blocks/AppHeader/AppHeader.js.map +1 -1
- package/dist/blocks/AppHeader/AppHeader.vue.d.ts +5 -6
- package/dist/blocks/AppHeader/AppHeader.vue.d.ts.map +1 -1
- package/dist/blocks/AppHeader/AppHeader.vue_vue_type_script_setup_true_lang.js +6 -7
- package/dist/blocks/AppHeader/AppHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/blocks/DashboardGrid/DashboardGrid.vue.d.ts +1 -1
- package/dist/blocks/DashboardGrid/DashboardGrid.vue.d.ts.map +1 -1
- package/dist/blocks/DesktopAppShell/DesktopAppShell.js +7 -0
- package/dist/blocks/DesktopAppShell/DesktopAppShell.js.map +1 -0
- package/dist/blocks/DesktopAppShell/DesktopAppShell.vue.d.ts +102 -0
- package/dist/blocks/DesktopAppShell/DesktopAppShell.vue.d.ts.map +1 -0
- package/dist/blocks/DesktopAppShell/DesktopAppShell.vue_vue_type_script_setup_true_lang.js +74 -0
- package/dist/blocks/DesktopAppShell/DesktopAppShell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/blocks/ErrorState/ErrorState.js +7 -0
- package/dist/blocks/ErrorState/ErrorState.js.map +1 -0
- package/dist/blocks/ErrorState/ErrorState.vue.d.ts +44 -0
- package/dist/blocks/ErrorState/ErrorState.vue.d.ts.map +1 -0
- package/dist/blocks/ErrorState/ErrorState.vue_vue_type_script_setup_true_lang.js +60 -0
- package/dist/blocks/ErrorState/ErrorState.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/blocks/FormActions/FormActions.js +7 -0
- package/dist/blocks/FormActions/FormActions.js.map +1 -0
- package/dist/blocks/FormActions/FormActions.vue.d.ts +51 -0
- package/dist/blocks/FormActions/FormActions.vue.d.ts.map +1 -0
- package/dist/blocks/FormActions/FormActions.vue_vue_type_script_setup_true_lang.js +21 -0
- package/dist/blocks/FormActions/FormActions.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/blocks/FormSection/FormSection.js +7 -0
- package/dist/blocks/FormSection/FormSection.js.map +1 -0
- package/dist/blocks/FormSection/FormSection.vue.d.ts +85 -0
- package/dist/blocks/FormSection/FormSection.vue.d.ts.map +1 -0
- package/dist/blocks/FormSection/FormSection.vue_vue_type_script_setup_true_lang.js +62 -0
- package/dist/blocks/FormSection/FormSection.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/blocks/LoadingState/LoadingState.js +7 -0
- package/dist/blocks/LoadingState/LoadingState.js.map +1 -0
- package/dist/blocks/LoadingState/LoadingState.vue.d.ts +22 -0
- package/dist/blocks/LoadingState/LoadingState.vue.d.ts.map +1 -0
- package/dist/blocks/LoadingState/LoadingState.vue_vue_type_script_setup_true_lang.js +57 -0
- package/dist/blocks/LoadingState/LoadingState.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/blocks/MetricCard/MetricCard.js +7 -0
- package/dist/blocks/MetricCard/MetricCard.js.map +1 -0
- package/dist/blocks/MetricCard/MetricCard.vue.d.ts +59 -0
- package/dist/blocks/MetricCard/MetricCard.vue.d.ts.map +1 -0
- package/dist/blocks/MetricCard/MetricCard.vue_vue_type_script_setup_true_lang.js +63 -0
- package/dist/blocks/MetricCard/MetricCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/blocks/SidebarNav/SidebarNav.js.map +1 -1
- package/dist/blocks/SidebarNav/SidebarNav.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/blocks/TitleBar/TitleBar.js.map +1 -1
- package/dist/blocks/TitleBar/TitleBar.vue.d.ts +37 -3
- package/dist/blocks/TitleBar/TitleBar.vue.d.ts.map +1 -1
- package/dist/blocks/TitleBar/TitleBar.vue_vue_type_script_setup_true_lang.js +14 -14
- package/dist/blocks/TitleBar/TitleBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/blocks/ToastStack/ToastStack.js.map +1 -1
- package/dist/blocks/ToastStack/ToastStack.vue.d.ts +20 -0
- package/dist/blocks/ToastStack/ToastStack.vue.d.ts.map +1 -1
- package/dist/blocks/ToastStack/ToastStack.vue_vue_type_script_setup_true_lang.js +16 -5
- package/dist/blocks/ToastStack/ToastStack.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/composition/Center/Center.js +7 -0
- package/dist/composition/Center/Center.js.map +1 -0
- package/dist/composition/Center/Center.vue.d.ts +40 -0
- package/dist/composition/Center/Center.vue.d.ts.map +1 -0
- package/dist/composition/Center/Center.vue_vue_type_script_setup_true_lang.js +29 -0
- package/dist/composition/Center/Center.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/Frame/Frame.js +7 -0
- package/dist/composition/Frame/Frame.js.map +1 -0
- package/dist/composition/Frame/Frame.vue.d.ts +35 -0
- package/dist/composition/Frame/Frame.vue.d.ts.map +1 -0
- package/dist/composition/Frame/Frame.vue_vue_type_script_setup_true_lang.js +29 -0
- package/dist/composition/Frame/Frame.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/Grid/Grid.js +7 -0
- package/dist/composition/Grid/Grid.js.map +1 -0
- package/dist/composition/Grid/Grid.vue.d.ts +41 -0
- package/dist/composition/Grid/Grid.vue.d.ts.map +1 -0
- package/dist/composition/Grid/Grid.vue_vue_type_script_setup_true_lang.js +27 -0
- package/dist/composition/Grid/Grid.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/Inline/Inline.js +7 -0
- package/dist/composition/Inline/Inline.js.map +1 -0
- package/dist/composition/Inline/Inline.vue.d.ts +46 -0
- package/dist/composition/Inline/Inline.vue.d.ts.map +1 -0
- package/dist/composition/Inline/Inline.vue_vue_type_script_setup_true_lang.js +35 -0
- package/dist/composition/Inline/Inline.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/ScrollReel/ScrollReel.js +7 -0
- package/dist/composition/ScrollReel/ScrollReel.js.map +1 -0
- package/dist/composition/ScrollReel/ScrollReel.vue.d.ts +42 -0
- package/dist/composition/ScrollReel/ScrollReel.vue.d.ts.map +1 -0
- package/dist/composition/ScrollReel/ScrollReel.vue_vue_type_script_setup_true_lang.js +79 -0
- package/dist/composition/ScrollReel/ScrollReel.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/Sidebar/Sidebar.js +7 -0
- package/dist/composition/Sidebar/Sidebar.js.map +1 -0
- package/dist/composition/Sidebar/Sidebar.vue.d.ts +52 -0
- package/dist/composition/Sidebar/Sidebar.vue.d.ts.map +1 -0
- package/dist/composition/Sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js +36 -0
- package/dist/composition/Sidebar/Sidebar.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/Split/Split.js +7 -0
- package/dist/composition/Split/Split.js.map +1 -0
- package/dist/composition/Split/Split.vue.d.ts +58 -0
- package/dist/composition/Split/Split.vue.d.ts.map +1 -0
- package/dist/composition/Split/Split.vue_vue_type_script_setup_true_lang.js +40 -0
- package/dist/composition/Split/Split.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/composition/Stack/Stack.js +7 -0
- package/dist/composition/Stack/Stack.js.map +1 -0
- package/dist/composition/Stack/Stack.vue.d.ts +43 -0
- package/dist/composition/Stack/Stack.vue.d.ts.map +1 -0
- package/dist/composition/Stack/Stack.vue_vue_type_script_setup_true_lang.js +30 -0
- package/dist/composition/Stack/Stack.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/index.d.ts +119 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +83 -5
- package/dist/layouts/AppShell/AppShell.js +7 -0
- package/dist/layouts/AppShell/AppShell.js.map +1 -0
- package/dist/layouts/AppShell/AppShell.vue.d.ts +51 -0
- package/dist/layouts/AppShell/AppShell.vue.d.ts.map +1 -0
- package/dist/layouts/AppShell/AppShell.vue_vue_type_script_setup_true_lang.js +47 -0
- package/dist/layouts/AppShell/AppShell.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/Centered/Centered.js +7 -0
- package/dist/layouts/Centered/Centered.js.map +1 -0
- package/dist/layouts/Centered/Centered.vue.d.ts +48 -0
- package/dist/layouts/Centered/Centered.vue.d.ts.map +1 -0
- package/dist/layouts/Centered/Centered.vue_vue_type_script_setup_true_lang.js +35 -0
- package/dist/layouts/Centered/Centered.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/Dashboard/Dashboard.js +7 -0
- package/dist/layouts/Dashboard/Dashboard.js.map +1 -0
- package/dist/layouts/Dashboard/Dashboard.vue.d.ts +60 -0
- package/dist/layouts/Dashboard/Dashboard.vue.d.ts.map +1 -0
- package/dist/layouts/Dashboard/Dashboard.vue_vue_type_script_setup_true_lang.js +64 -0
- package/dist/layouts/Dashboard/Dashboard.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/FormLayout/FormLayout.js +7 -0
- package/dist/layouts/FormLayout/FormLayout.js.map +1 -0
- package/dist/layouts/FormLayout/FormLayout.vue.d.ts +46 -0
- package/dist/layouts/FormLayout/FormLayout.vue.d.ts.map +1 -0
- package/dist/layouts/FormLayout/FormLayout.vue_vue_type_script_setup_true_lang.js +28 -0
- package/dist/layouts/FormLayout/FormLayout.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/MasterDetail/MasterDetail.js +7 -0
- package/dist/layouts/MasterDetail/MasterDetail.js.map +1 -0
- package/dist/layouts/MasterDetail/MasterDetail.vue.d.ts +49 -0
- package/dist/layouts/MasterDetail/MasterDetail.vue.d.ts.map +1 -0
- package/dist/layouts/MasterDetail/MasterDetail.vue_vue_type_script_setup_true_lang.js +42 -0
- package/dist/layouts/MasterDetail/MasterDetail.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/Reading/Reading.js +7 -0
- package/dist/layouts/Reading/Reading.js.map +1 -0
- package/dist/layouts/Reading/Reading.vue.d.ts +24 -0
- package/dist/layouts/Reading/Reading.vue.d.ts.map +1 -0
- package/dist/layouts/Reading/Reading.vue_vue_type_script_setup_true_lang.js +29 -0
- package/dist/layouts/Reading/Reading.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/Settings/Settings.js +7 -0
- package/dist/layouts/Settings/Settings.js.map +1 -0
- package/dist/layouts/Settings/Settings.vue.d.ts +39 -0
- package/dist/layouts/Settings/Settings.vue.d.ts.map +1 -0
- package/dist/layouts/Settings/Settings.vue_vue_type_script_setup_true_lang.js +35 -0
- package/dist/layouts/Settings/Settings.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/layouts/SplitLayout/SplitLayout.js +7 -0
- package/dist/layouts/SplitLayout/SplitLayout.js.map +1 -0
- package/dist/layouts/SplitLayout/SplitLayout.vue.d.ts +63 -0
- package/dist/layouts/SplitLayout/SplitLayout.vue.d.ts.map +1 -0
- package/dist/layouts/SplitLayout/SplitLayout.vue_vue_type_script_setup_true_lang.js +46 -0
- package/dist/layouts/SplitLayout/SplitLayout.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/lib/ancestor-disabled.d.ts +35 -0
- package/dist/lib/ancestor-disabled.d.ts.map +1 -0
- package/dist/lib/ancestor-disabled.js +86 -0
- package/dist/lib/ancestor-disabled.js.map +1 -0
- package/dist/lib/cn.d.ts.map +1 -1
- package/dist/lib/cn.js +46 -1
- package/dist/lib/cn.js.map +1 -1
- package/dist/lib/count-labels.d.ts +78 -0
- package/dist/lib/count-labels.d.ts.map +1 -0
- package/dist/lib/count-labels.js +29 -0
- package/dist/lib/count-labels.js.map +1 -0
- package/dist/lib/date-labels.d.ts +278 -0
- package/dist/lib/date-labels.d.ts.map +1 -0
- package/dist/lib/date-labels.js +157 -0
- package/dist/lib/date-labels.js.map +1 -0
- package/dist/lib/field-context.d.ts +178 -0
- package/dist/lib/field-context.d.ts.map +1 -0
- package/dist/lib/field-context.js +106 -0
- package/dist/lib/field-context.js.map +1 -0
- package/dist/lib/label-registry.d.ts +75 -0
- package/dist/lib/label-registry.d.ts.map +1 -0
- package/dist/lib/labels.d.ts +116 -0
- package/dist/lib/labels.d.ts.map +1 -0
- package/dist/lib/labels.js +84 -0
- package/dist/lib/labels.js.map +1 -0
- package/dist/lib/theme.d.ts +68 -0
- package/dist/lib/theme.d.ts.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/CalendarDate.js +236 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/CalendarDate.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/calendars/GregorianCalendar.js +117 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/calendars/GregorianCalendar.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/conversion.js +142 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/conversion.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/manipulation.js +280 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/manipulation.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/queries.js +40 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/queries.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/string.js +69 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/string.js.map +1 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/utils.js +8 -0
- package/dist/node_modules/.pnpm/@internationalized_date@3.12.3/node_modules/@internationalized/date/dist/private/utils.js.map +1 -0
- package/dist/primitives/Accordion/Accordion.js +7 -0
- package/dist/primitives/Accordion/Accordion.js.map +1 -0
- package/dist/primitives/Accordion/Accordion.vue.d.ts +68 -0
- package/dist/primitives/Accordion/Accordion.vue.d.ts.map +1 -0
- package/dist/primitives/Accordion/Accordion.vue_vue_type_script_setup_true_lang.js +67 -0
- package/dist/primitives/Accordion/Accordion.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/AlertDialog/AlertDialog.js +7 -0
- package/dist/primitives/AlertDialog/AlertDialog.js.map +1 -0
- package/dist/primitives/AlertDialog/AlertDialog.vue.d.ts +94 -0
- package/dist/primitives/AlertDialog/AlertDialog.vue.d.ts.map +1 -0
- package/dist/primitives/AlertDialog/AlertDialog.vue_vue_type_script_setup_true_lang.js +99 -0
- package/dist/primitives/AlertDialog/AlertDialog.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Avatar/Avatar.js +2 -2
- package/dist/primitives/Avatar/Avatar.js.map +1 -1
- package/dist/primitives/Avatar/Avatar.vue.d.ts +30 -3
- package/dist/primitives/Avatar/Avatar.vue.d.ts.map +1 -1
- package/dist/primitives/Avatar/Avatar.vue_vue_type_script_setup_true_lang.js +95 -14
- package/dist/primitives/Avatar/Avatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/AvatarGroup/AvatarGroup.js +7 -0
- package/dist/primitives/AvatarGroup/AvatarGroup.js.map +1 -0
- package/dist/primitives/AvatarGroup/AvatarGroup.vue.d.ts +104 -0
- package/dist/primitives/AvatarGroup/AvatarGroup.vue.d.ts.map +1 -0
- package/dist/primitives/AvatarGroup/AvatarGroup.vue_vue_type_script_setup_true_lang.js +139 -0
- package/dist/primitives/AvatarGroup/AvatarGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Badge/Badge.js.map +1 -1
- package/dist/primitives/Badge/Badge.vue.d.ts +6 -6
- package/dist/primitives/Badge/Badge.vue.d.ts.map +1 -1
- package/dist/primitives/Badge/Badge.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/primitives/Badge/Badge.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Breadcrumb/Breadcrumb.js +7 -0
- package/dist/primitives/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/primitives/Breadcrumb/Breadcrumb.vue.d.ts +25 -0
- package/dist/primitives/Breadcrumb/Breadcrumb.vue.d.ts.map +1 -0
- package/dist/primitives/Breadcrumb/Breadcrumb.vue_vue_type_script_setup_true_lang.js +48 -0
- package/dist/primitives/Breadcrumb/Breadcrumb.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Button/Button.js +2 -2
- package/dist/primitives/Button/Button.js.map +1 -1
- package/dist/primitives/Button/Button.vue.d.ts +31 -8
- package/dist/primitives/Button/Button.vue.d.ts.map +1 -1
- package/dist/primitives/Button/Button.vue_vue_type_script_setup_true_lang.js +32 -16
- package/dist/primitives/Button/Button.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Checkbox/Checkbox.js.map +1 -1
- package/dist/primitives/Checkbox/Checkbox.vue.d.ts +18 -3
- package/dist/primitives/Checkbox/Checkbox.vue.d.ts.map +1 -1
- package/dist/primitives/Checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +46 -7
- package/dist/primitives/Checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Chip/Chip.js +7 -0
- package/dist/primitives/Chip/Chip.js.map +1 -0
- package/dist/primitives/Chip/Chip.vue.d.ts +79 -0
- package/dist/primitives/Chip/Chip.vue.d.ts.map +1 -0
- package/dist/primitives/Chip/Chip.vue_vue_type_script_setup_true_lang.js +139 -0
- package/dist/primitives/Chip/Chip.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/ColorPicker/ColorPicker.js +7 -0
- package/dist/primitives/ColorPicker/ColorPicker.js.map +1 -0
- package/dist/primitives/ColorPicker/ColorPicker.vue.d.ts +125 -0
- package/dist/primitives/ColorPicker/ColorPicker.vue.d.ts.map +1 -0
- package/dist/primitives/ColorPicker/ColorPicker.vue_vue_type_script_setup_true_lang.js +301 -0
- package/dist/primitives/ColorPicker/ColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Combobox/Combobox.js +7 -0
- package/dist/primitives/Combobox/Combobox.js.map +1 -0
- package/dist/primitives/Combobox/Combobox.vue.d.ts +205 -0
- package/dist/primitives/Combobox/Combobox.vue.d.ts.map +1 -0
- package/dist/primitives/Combobox/Combobox.vue_vue_type_script_setup_true_lang.js +345 -0
- package/dist/primitives/Combobox/Combobox.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/ContextMenu/ContextMenu.js +7 -0
- package/dist/primitives/ContextMenu/ContextMenu.js.map +1 -0
- package/dist/primitives/ContextMenu/ContextMenu.vue.d.ts +55 -0
- package/dist/primitives/ContextMenu/ContextMenu.vue.d.ts.map +1 -0
- package/dist/primitives/ContextMenu/ContextMenu.vue_vue_type_script_setup_true_lang.js +82 -0
- package/dist/primitives/ContextMenu/ContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/DatePicker/DatePicker.js +7 -0
- package/dist/primitives/DatePicker/DatePicker.js.map +1 -0
- package/dist/primitives/DatePicker/DatePicker.vue.d.ts +102 -0
- package/dist/primitives/DatePicker/DatePicker.vue.d.ts.map +1 -0
- package/dist/primitives/DatePicker/DatePicker.vue_vue_type_script_setup_true_lang.js +292 -0
- package/dist/primitives/DatePicker/DatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/DateRangePicker/DateRangePicker.js +7 -0
- package/dist/primitives/DateRangePicker/DateRangePicker.js.map +1 -0
- package/dist/primitives/DateRangePicker/DateRangePicker.vue.d.ts +173 -0
- package/dist/primitives/DateRangePicker/DateRangePicker.vue.d.ts.map +1 -0
- package/dist/primitives/DateRangePicker/DateRangePicker.vue_vue_type_script_setup_true_lang.js +412 -0
- package/dist/primitives/DateRangePicker/DateRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/DateTimePicker/DateTimePicker.js +7 -0
- package/dist/primitives/DateTimePicker/DateTimePicker.js.map +1 -0
- package/dist/primitives/DateTimePicker/DateTimePicker.vue.d.ts +113 -0
- package/dist/primitives/DateTimePicker/DateTimePicker.vue.d.ts.map +1 -0
- package/dist/primitives/DateTimePicker/DateTimePicker.vue_vue_type_script_setup_true_lang.js +358 -0
- package/dist/primitives/DateTimePicker/DateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/DateTimeRangePicker/DateTimeRangePicker.js +7 -0
- package/dist/primitives/DateTimeRangePicker/DateTimeRangePicker.js.map +1 -0
- package/dist/primitives/DateTimeRangePicker/DateTimeRangePicker.vue.d.ts +181 -0
- package/dist/primitives/DateTimeRangePicker/DateTimeRangePicker.vue.d.ts.map +1 -0
- package/dist/primitives/DateTimeRangePicker/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js +562 -0
- package/dist/primitives/DateTimeRangePicker/DateTimeRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Dialog/Dialog.js +2 -2
- package/dist/primitives/Dialog/Dialog.js.map +1 -1
- package/dist/primitives/Dialog/Dialog.vue.d.ts +39 -0
- package/dist/primitives/Dialog/Dialog.vue.d.ts.map +1 -1
- package/dist/primitives/Dialog/Dialog.vue_vue_type_script_setup_true_lang.js +14 -5
- package/dist/primitives/Dialog/Dialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Drawer/Drawer.js +7 -0
- package/dist/primitives/Drawer/Drawer.js.map +1 -0
- package/dist/primitives/Drawer/Drawer.vue.d.ts +110 -0
- package/dist/primitives/Drawer/Drawer.vue.d.ts.map +1 -0
- package/dist/primitives/Drawer/Drawer.vue_vue_type_script_setup_true_lang.js +223 -0
- package/dist/primitives/Drawer/Drawer.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/DropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/primitives/DropdownMenu/DropdownMenu.vue.d.ts.map +1 -1
- package/dist/primitives/DropdownMenu/DropdownMenu.vue_vue_type_script_setup_true_lang.js +2 -2
- package/dist/primitives/DropdownMenu/DropdownMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Editable/Editable.js +7 -0
- package/dist/primitives/Editable/Editable.js.map +1 -0
- package/dist/primitives/Editable/Editable.vue.d.ts +200 -0
- package/dist/primitives/Editable/Editable.vue.d.ts.map +1 -0
- package/dist/primitives/Editable/Editable.vue_vue_type_script_setup_true_lang.js +275 -0
- package/dist/primitives/Editable/Editable.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Field/Field.js.map +1 -1
- package/dist/primitives/Field/Field.vue.d.ts +32 -17
- package/dist/primitives/Field/Field.vue.d.ts.map +1 -1
- package/dist/primitives/Field/Field.vue_vue_type_script_setup_true_lang.js +51 -18
- package/dist/primitives/Field/Field.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Fieldset/Fieldset.js +7 -0
- package/dist/primitives/Fieldset/Fieldset.js.map +1 -0
- package/dist/primitives/Fieldset/Fieldset.vue.d.ts +91 -0
- package/dist/primitives/Fieldset/Fieldset.vue.d.ts.map +1 -0
- package/dist/primitives/Fieldset/Fieldset.vue_vue_type_script_setup_true_lang.js +138 -0
- package/dist/primitives/Fieldset/Fieldset.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/FileUpload/FileUpload.js +7 -0
- package/dist/primitives/FileUpload/FileUpload.js.map +1 -0
- package/dist/primitives/FileUpload/FileUpload.vue.d.ts +132 -0
- package/dist/primitives/FileUpload/FileUpload.vue.d.ts.map +1 -0
- package/dist/primitives/FileUpload/FileUpload.vue_vue_type_script_setup_true_lang.js +359 -0
- package/dist/primitives/FileUpload/FileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/HoverCard/HoverCard.js +7 -0
- package/dist/primitives/HoverCard/HoverCard.js.map +1 -0
- package/dist/primitives/HoverCard/HoverCard.vue.d.ts +68 -0
- package/dist/primitives/HoverCard/HoverCard.vue.d.ts.map +1 -0
- package/dist/primitives/HoverCard/HoverCard.vue_vue_type_script_setup_true_lang.js +62 -0
- package/dist/primitives/HoverCard/HoverCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/IconButton/IconButton.js +7 -0
- package/dist/primitives/IconButton/IconButton.js.map +1 -0
- package/dist/primitives/IconButton/IconButton.vue.d.ts +45 -0
- package/dist/primitives/IconButton/IconButton.vue.d.ts.map +1 -0
- package/dist/primitives/IconButton/IconButton.vue_vue_type_script_setup_true_lang.js +58 -0
- package/dist/primitives/IconButton/IconButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Indicator/Indicator.js +7 -0
- package/dist/primitives/Indicator/Indicator.js.map +1 -0
- package/dist/primitives/Indicator/Indicator.vue.d.ts +144 -0
- package/dist/primitives/Indicator/Indicator.vue.d.ts.map +1 -0
- package/dist/primitives/Indicator/Indicator.vue_vue_type_script_setup_true_lang.js +198 -0
- package/dist/primitives/Indicator/Indicator.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Link/Link.js +7 -0
- package/dist/primitives/Link/Link.js.map +1 -0
- package/dist/primitives/Link/Link.vue.d.ts +46 -0
- package/dist/primitives/Link/Link.vue.d.ts.map +1 -0
- package/dist/primitives/Link/Link.vue_vue_type_script_setup_true_lang.js +85 -0
- package/dist/primitives/Link/Link.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Menubar/Menubar.js.map +1 -1
- package/dist/primitives/Menubar/Menubar.vue.d.ts.map +1 -1
- package/dist/primitives/Menubar/Menubar.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/primitives/Menubar/Menubar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/NumberField/NumberField.js +2 -2
- package/dist/primitives/NumberField/NumberField.js.map +1 -1
- package/dist/primitives/NumberField/NumberField.vue.d.ts +86 -25
- package/dist/primitives/NumberField/NumberField.vue.d.ts.map +1 -1
- package/dist/primitives/NumberField/NumberField.vue_vue_type_script_setup_true_lang.js +83 -39
- package/dist/primitives/NumberField/NumberField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/OtpInput/OtpInput.js +7 -0
- package/dist/primitives/OtpInput/OtpInput.js.map +1 -0
- package/dist/primitives/OtpInput/OtpInput.vue.d.ts +110 -0
- package/dist/primitives/OtpInput/OtpInput.vue.d.ts.map +1 -0
- package/dist/primitives/OtpInput/OtpInput.vue_vue_type_script_setup_true_lang.js +130 -0
- package/dist/primitives/OtpInput/OtpInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Pagination/Pagination.js +7 -0
- package/dist/primitives/Pagination/Pagination.js.map +1 -0
- package/dist/primitives/Pagination/Pagination.vue.d.ts +143 -0
- package/dist/primitives/Pagination/Pagination.vue.d.ts.map +1 -0
- package/dist/primitives/Pagination/Pagination.vue_vue_type_script_setup_true_lang.js +231 -0
- package/dist/primitives/Pagination/Pagination.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Progress/Progress.js +2 -2
- package/dist/primitives/Progress/Progress.js.map +1 -1
- package/dist/primitives/Progress/Progress.vue.d.ts +81 -15
- package/dist/primitives/Progress/Progress.vue.d.ts.map +1 -1
- package/dist/primitives/Progress/Progress.vue_vue_type_script_setup_true_lang.js +88 -22
- package/dist/primitives/Progress/Progress.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/RadialProgress/RadialProgress.js +7 -0
- package/dist/primitives/RadialProgress/RadialProgress.js.map +1 -0
- package/dist/primitives/RadialProgress/RadialProgress.vue.d.ts +96 -0
- package/dist/primitives/RadialProgress/RadialProgress.vue.d.ts.map +1 -0
- package/dist/primitives/RadialProgress/RadialProgress.vue_vue_type_script_setup_true_lang.js +189 -0
- package/dist/primitives/RadialProgress/RadialProgress.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/primitives/RadioGroup/RadioGroup.vue.d.ts +7 -7
- package/dist/primitives/RadioGroup/RadioGroup.vue.d.ts.map +1 -1
- package/dist/primitives/RadioGroup/RadioGroup.vue_vue_type_script_setup_true_lang.js +26 -9
- package/dist/primitives/RadioGroup/RadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Rating/Rating.js +7 -0
- package/dist/primitives/Rating/Rating.js.map +1 -0
- package/dist/primitives/Rating/Rating.vue.d.ts +113 -0
- package/dist/primitives/Rating/Rating.vue.d.ts.map +1 -0
- package/dist/primitives/Rating/Rating.vue_vue_type_script_setup_true_lang.js +282 -0
- package/dist/primitives/Rating/Rating.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/ScrollArea/ScrollArea.js +7 -0
- package/dist/primitives/ScrollArea/ScrollArea.js.map +1 -0
- package/dist/primitives/ScrollArea/ScrollArea.vue.d.ts +25 -0
- package/dist/primitives/ScrollArea/ScrollArea.vue.d.ts.map +1 -0
- package/dist/primitives/ScrollArea/ScrollArea.vue_vue_type_script_setup_true_lang.js +45 -0
- package/dist/primitives/ScrollArea/ScrollArea.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/primitives/SegmentedControl/SegmentedControl.vue.d.ts +5 -5
- package/dist/primitives/SegmentedControl/SegmentedControl.vue.d.ts.map +1 -1
- package/dist/primitives/SegmentedControl/SegmentedControl.vue_vue_type_script_setup_true_lang.js +51 -8
- package/dist/primitives/SegmentedControl/SegmentedControl.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Select/Select.js.map +1 -1
- package/dist/primitives/Select/Select.vue.d.ts +10 -10
- package/dist/primitives/Select/Select.vue.d.ts.map +1 -1
- package/dist/primitives/Select/Select.vue_vue_type_script_setup_true_lang.js +105 -52
- package/dist/primitives/Select/Select.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Skeleton/Skeleton.vue.d.ts +1 -1
- package/dist/primitives/Slider/Slider.js.map +1 -1
- package/dist/primitives/Slider/Slider.vue.d.ts +24 -4
- package/dist/primitives/Slider/Slider.vue.d.ts.map +1 -1
- package/dist/primitives/Slider/Slider.vue_vue_type_script_setup_true_lang.js +79 -9
- package/dist/primitives/Slider/Slider.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/SpeedDial/SpeedDial.js +7 -0
- package/dist/primitives/SpeedDial/SpeedDial.js.map +1 -0
- package/dist/primitives/SpeedDial/SpeedDial.vue.d.ts +58 -0
- package/dist/primitives/SpeedDial/SpeedDial.vue.d.ts.map +1 -0
- package/dist/primitives/SpeedDial/SpeedDial.vue_vue_type_script_setup_true_lang.js +175 -0
- package/dist/primitives/SpeedDial/SpeedDial.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Stepper/Stepper.js +7 -0
- package/dist/primitives/Stepper/Stepper.js.map +1 -0
- package/dist/primitives/Stepper/Stepper.vue.d.ts +119 -0
- package/dist/primitives/Stepper/Stepper.vue.d.ts.map +1 -0
- package/dist/primitives/Stepper/Stepper.vue_vue_type_script_setup_true_lang.js +202 -0
- package/dist/primitives/Stepper/Stepper.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Switch/Switch.js.map +1 -1
- package/dist/primitives/Switch/Switch.vue.d.ts +13 -3
- package/dist/primitives/Switch/Switch.vue.d.ts.map +1 -1
- package/dist/primitives/Switch/Switch.vue_vue_type_script_setup_true_lang.js +34 -5
- package/dist/primitives/Switch/Switch.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Tabs/Tabs.js.map +1 -1
- package/dist/primitives/Tabs/Tabs.vue.d.ts.map +1 -1
- package/dist/primitives/Tabs/Tabs.vue_vue_type_script_setup_true_lang.js +1 -1
- package/dist/primitives/Tabs/Tabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/TagsInput/TagsInput.js +7 -0
- package/dist/primitives/TagsInput/TagsInput.js.map +1 -0
- package/dist/primitives/TagsInput/TagsInput.vue.d.ts +156 -0
- package/dist/primitives/TagsInput/TagsInput.vue.d.ts.map +1 -0
- package/dist/primitives/TagsInput/TagsInput.vue_vue_type_script_setup_true_lang.js +387 -0
- package/dist/primitives/TagsInput/TagsInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/TextField/TextField.js +2 -2
- package/dist/primitives/TextField/TextField.js.map +1 -1
- package/dist/primitives/TextField/TextField.vue.d.ts +119 -10
- package/dist/primitives/TextField/TextField.vue.d.ts.map +1 -1
- package/dist/primitives/TextField/TextField.vue_vue_type_script_setup_true_lang.js +270 -21
- package/dist/primitives/TextField/TextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Textarea/Textarea.js +2 -2
- package/dist/primitives/Textarea/Textarea.js.map +1 -1
- package/dist/primitives/Textarea/Textarea.vue.d.ts +114 -14
- package/dist/primitives/Textarea/Textarea.vue.d.ts.map +1 -1
- package/dist/primitives/Textarea/Textarea.vue_vue_type_script_setup_true_lang.js +216 -20
- package/dist/primitives/Textarea/Textarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/TimePicker/TimePicker.js +7 -0
- package/dist/primitives/TimePicker/TimePicker.js.map +1 -0
- package/dist/primitives/TimePicker/TimePicker.vue.d.ts +111 -0
- package/dist/primitives/TimePicker/TimePicker.vue.d.ts.map +1 -0
- package/dist/primitives/TimePicker/TimePicker.vue_vue_type_script_setup_true_lang.js +185 -0
- package/dist/primitives/TimePicker/TimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/dist/primitives/Toast/Toast.js +2 -1
- package/dist/primitives/Toast/Toast.js.map +1 -1
- package/dist/primitives/Toast/Toast.vue.d.ts +29 -3
- package/dist/primitives/Toast/Toast.vue.d.ts.map +1 -1
- package/dist/primitives/Toast/Toast.vue_vue_type_script_setup_true_lang.js +17 -7
- package/dist/primitives/Toast/Toast.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Toast/ToastItem.js +2 -2
- package/dist/primitives/Toast/ToastItem.js.map +1 -1
- package/dist/primitives/Toast/ToastItem.vue.d.ts +69 -12
- package/dist/primitives/Toast/ToastItem.vue.d.ts.map +1 -1
- package/dist/primitives/Toast/ToastItem.vue_vue_type_script_setup_true_lang.js +23 -23
- package/dist/primitives/Toast/ToastItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/primitives/Tooltip/Tooltip.vue.d.ts +1 -1
- package/dist/primitives/Tooltip/Tooltip.vue.d.ts.map +1 -1
- package/dist/primitives/WindowControls/WindowControls.js +2 -2
- package/dist/primitives/WindowControls/WindowControls.js.map +1 -1
- package/dist/primitives/WindowControls/WindowControls.vue.d.ts +66 -10
- package/dist/primitives/WindowControls/WindowControls.vue.d.ts.map +1 -1
- package/dist/primitives/WindowControls/WindowControls.vue_vue_type_script_setup_true_lang.js +23 -13
- package/dist/primitives/WindowControls/WindowControls.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/styles/global.css +116 -17
- package/dist/styles/theme.contrast.test.ts +460 -0
- package/dist/styles/theme.css +239 -41
- package/dist/theme.js +171 -0
- package/dist/theme.js.map +1 -0
- package/package.json +14 -4
- package/dist/icons/BrandMark.d.ts +0 -18
- package/dist/icons/BrandMark.d.ts.map +0 -1
- package/dist/icons/BrandMark.js +0 -47
- package/dist/icons/BrandMark.js.map +0 -1
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ErrorState — the shape of "something went wrong": icon → title → optional
|
|
3
|
+
* description → optional retry action, centered in the error region. This is
|
|
4
|
+
* EmptyState's mirror: where that block says "nothing here yet" and invites
|
|
5
|
+
* the next step, this one says "something broke" and offers a retry.
|
|
6
|
+
*
|
|
7
|
+
* No staggered entrance. EmptyState is content appearing — a welcome, budgeted
|
|
8
|
+
* like a panel reveal. An error is not content; it is a problem that needs
|
|
9
|
+
* attention now, and a fade-rise film that delays the message reads as
|
|
10
|
+
* indifference. Everything renders at once.
|
|
11
|
+
*
|
|
12
|
+
* The icon sits in a hairline medallion — the same shape as EmptyState's, but
|
|
13
|
+
* tinted `bg-destructive/10` with a `border-destructive/30` ring — because a
|
|
14
|
+
* bare glyph in a region that already signals alarm has no anchor and the
|
|
15
|
+
* colour alone does the work that EmptyState's neutral medallion needed
|
|
16
|
+
* `bg-subtle` for. The icon is decorative and `aria-hidden`; the title already
|
|
17
|
+
* carries the meaning.
|
|
18
|
+
*
|
|
19
|
+
* The action slot is semantically a retry affordance but remains a generic
|
|
20
|
+
* slot — the host owns the wording and behaviour, and no fallback copy ships
|
|
21
|
+
* with the component.
|
|
22
|
+
*/
|
|
23
|
+
type __VLS_Props = {
|
|
24
|
+
/** What went wrong, stated plainly — always shown. */
|
|
25
|
+
title: string;
|
|
26
|
+
/** More context about the error. Omit rather than pad the region with filler copy. */
|
|
27
|
+
description?: string;
|
|
28
|
+
};
|
|
29
|
+
declare var __VLS_1: {}, __VLS_3: {};
|
|
30
|
+
type __VLS_Slots = {} & {
|
|
31
|
+
icon?: (props: typeof __VLS_1) => any;
|
|
32
|
+
} & {
|
|
33
|
+
action?: (props: typeof __VLS_3) => any;
|
|
34
|
+
};
|
|
35
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
36
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
37
|
+
declare const _default: typeof __VLS_export;
|
|
38
|
+
export default _default;
|
|
39
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
40
|
+
new (): {
|
|
41
|
+
$slots: S;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=ErrorState.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorState.vue.d.ts","sourceRoot":"","sources":["../../../src/blocks/ErrorState/ErrorState.vue"],"names":[],"mappings":"AAsDA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,KAAK,WAAW,GAAG;IACjB,sDAAsD;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAwEF,QAAA,IAAI,OAAO,IAAU,EAAE,OAAO,IAAW,CAAE;AAC3C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GACzC;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK9C,QAAA,MAAM,UAAU,kSAEd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { createCommentVNode, createElementBlock, createElementVNode, defineComponent, openBlock, renderSlot, toDisplayString } from "vue";
|
|
2
|
+
//#region src/blocks/ErrorState/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 [&_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 block 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":["../../../src/blocks/ErrorState/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 block 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 [&_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 FormActions_vue_vue_type_script_setup_true_lang_default from "./FormActions.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/blocks/FormActions/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":["../../../src/blocks/FormActions/FormActions.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * FormActions — the submit/cancel button row at the bottom of a form. A block\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 block 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 */\nexport type FormActionsAlign = \"right\" | \"left\" | \"between\";\n</script>\n\n<script setup lang=\"ts\">\nimport { cn } from \"../../lib/cn\";\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 <div :class=\"cn('flex items-center gap-3 border-t border-border pt-6', justify[align])\">\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,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FormActions — the submit/cancel button row at the bottom of a form. A block
|
|
3
|
+
* that owns the layout of form actions so every form in the product has the
|
|
4
|
+
* same action alignment: primary action right, cancel left, separated from the
|
|
5
|
+
* form content by a top border.
|
|
6
|
+
*
|
|
7
|
+
* The block exists because "submit right, cancel left" is a layout decision
|
|
8
|
+
* repeated in every form, and getting the spacing and alignment wrong is easy.
|
|
9
|
+
* It owns the geometry; the host owns the button text and behavior.
|
|
10
|
+
*
|
|
11
|
+
* The default slot carries the primary actions (submit, save) and the `cancel`
|
|
12
|
+
* slot carries the secondary action. In "between" mode the two slots sit at
|
|
13
|
+
* opposite ends; in "right" or "left" mode everything goes through the default
|
|
14
|
+
* slot, shifted to one side.
|
|
15
|
+
*/
|
|
16
|
+
export type FormActionsAlign = "right" | "left" | "between";
|
|
17
|
+
declare const _default: typeof __VLS_export;
|
|
18
|
+
export default _default;
|
|
19
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
20
|
+
/**
|
|
21
|
+
* How the action row distributes its content.
|
|
22
|
+
* - "between": cancel slot left, primary actions right (default — the
|
|
23
|
+
* arrangement most forms need)
|
|
24
|
+
* - "right": all actions pushed right (short forms, single CTA)
|
|
25
|
+
* - "left": all actions pushed left (right-to-left locales, or a design
|
|
26
|
+
* that calls for it)
|
|
27
|
+
*/
|
|
28
|
+
align?: FormActionsAlign;
|
|
29
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
30
|
+
/**
|
|
31
|
+
* How the action row distributes its content.
|
|
32
|
+
* - "between": cancel slot left, primary actions right (default — the
|
|
33
|
+
* arrangement most forms need)
|
|
34
|
+
* - "right": all actions pushed right (short forms, single CTA)
|
|
35
|
+
* - "left": all actions pushed left (right-to-left locales, or a design
|
|
36
|
+
* that calls for it)
|
|
37
|
+
*/
|
|
38
|
+
align?: FormActionsAlign;
|
|
39
|
+
}> & Readonly<{}>, {
|
|
40
|
+
align: FormActionsAlign;
|
|
41
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
42
|
+
cancel?: (props: {}) => any;
|
|
43
|
+
} & {
|
|
44
|
+
default?: (props: {}) => any;
|
|
45
|
+
}>;
|
|
46
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
47
|
+
new (): {
|
|
48
|
+
$slots: S;
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=FormActions.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormActions.vue.d.ts","sourceRoot":"","sources":["../../../src/blocks/FormActions/FormActions.vue"],"names":[],"mappings":"AA4DA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;wBACvC,OAAO,YAAY;AAAxC,wBAAyC;AACzC,QAAA,MAAM,YAAY;IAEd;;;;;;;OAOG;YACK,gBAAgB;;IARxB;;;;;;;OAOG;YACK,gBAAgB;;WAAhB,gBAAgB;;aA0Cf,CAAC,KAAK,IAAgB,KAAK,GAAG;;cAC7B,CAAC,KAAK,IAAgB,KAAK,GAAG;EAUxC,CAAC;AAWL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { cn } from "../../lib/cn.js";
|
|
2
|
+
import { createElementBlock, defineComponent, normalizeClass, openBlock, renderSlot, unref } from "vue";
|
|
3
|
+
//#region src/blocks/FormActions/FormActions.vue?vue&type=script&setup=true&lang.ts
|
|
4
|
+
var FormActions_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
5
|
+
__name: "FormActions",
|
|
6
|
+
props: { align: { default: "between" } },
|
|
7
|
+
setup(__props) {
|
|
8
|
+
const justify = {
|
|
9
|
+
between: "justify-between",
|
|
10
|
+
right: "justify-end",
|
|
11
|
+
left: "justify-start"
|
|
12
|
+
};
|
|
13
|
+
return (_ctx, _cache) => {
|
|
14
|
+
return openBlock(), createElementBlock("div", { class: normalizeClass(unref(cn)("flex items-center gap-3 border-t border-border pt-6", justify[__props.align])) }, [renderSlot(_ctx.$slots, "cancel"), renderSlot(_ctx.$slots, "default")], 2);
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
//#endregion
|
|
19
|
+
export { FormActions_vue_vue_type_script_setup_true_lang_default as default };
|
|
20
|
+
|
|
21
|
+
//# 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":["../../../src/blocks/FormActions/FormActions.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * FormActions — the submit/cancel button row at the bottom of a form. A block\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 block 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 */\nexport type FormActionsAlign = \"right\" | \"left\" | \"between\";\n</script>\n\n<script setup lang=\"ts\">\nimport { cn } from \"../../lib/cn\";\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 <div :class=\"cn('flex items-center gap-3 border-t border-border pt-6', justify[align])\">\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":";;;;;;;EAqCA,MAAM,UAA4C;GAChD,SAAS;GACT,OAAO;GACP,MAAM;EACR;;GAME,OAAA,UAAA,GAAA,mBAKM,OAAA,EALA,OAAK,eAAE,MAAA,EAAA,CAAE,CAAA,uDAAwD,QAAQ,QAAA,MAAK,CAAA,EAAA,GAAA,CAElF,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 src/blocks/FormSection/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":["../../../src/blocks/FormSection/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 block 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 \"../../primitives/Fieldset/Fieldset.vue\";\nimport { cn } from \"../../lib/cn\";\nimport { optional } from \"../../lib/props\";\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,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FormSection — a labeled group of form fields with an optional
|
|
3
|
+
* description, the arrangement every form page reaches for repeatedly: a
|
|
4
|
+
* Fieldset (for the accessible `<fieldset>/<legend>` semantics, disabled/
|
|
5
|
+
* readonly propagation, and hint/error line) with vertical Stack spacing
|
|
6
|
+
* between the fields.
|
|
7
|
+
*
|
|
8
|
+
* The block exists because that composition is written at every form page
|
|
9
|
+
* and the spacing between sections is a layout decision it can own once.
|
|
10
|
+
* It is a thin convenience over Fieldset, not a replacement: when a group
|
|
11
|
+
* needs a shape FormSection does not offer, Fieldset is still the right
|
|
12
|
+
* primitive.
|
|
13
|
+
*
|
|
14
|
+
* `description` is NOT Fieldset's `hint`. The description sits between the
|
|
15
|
+
* legend and the fields — it orients the person filling the form ("Where
|
|
16
|
+
* should we ship your order?"). The hint sits below the fields and
|
|
17
|
+
* supplements the controls themselves ("Street address, P.O. box, or
|
|
18
|
+
* military address"). They serve different readers at different points in
|
|
19
|
+
* the form and both can be present at once.
|
|
20
|
+
*/
|
|
21
|
+
export type FormSectionGap = "sm" | "md" | "lg";
|
|
22
|
+
declare const gapClass: Record<FormSectionGap, string>;
|
|
23
|
+
export { gapClass };
|
|
24
|
+
declare const _default: typeof __VLS_export;
|
|
25
|
+
export default _default;
|
|
26
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
27
|
+
/** The section title — rendered as a real `<legend>` by Fieldset. */
|
|
28
|
+
legend?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Supporting text shown below the legend, above the fields.
|
|
31
|
+
* NOT the same as `hint`, which sits below the fields — this orients the
|
|
32
|
+
* person filling the form, while `hint` supplements the controls.
|
|
33
|
+
*/
|
|
34
|
+
description?: string;
|
|
35
|
+
/** Forwarded to Fieldset: supporting text shown below the group. Hidden while `error` is set. */
|
|
36
|
+
hint?: string;
|
|
37
|
+
/** Forwarded to Fieldset: the group's error message. Replaces `hint`. */
|
|
38
|
+
error?: string;
|
|
39
|
+
/** Forwarded to Fieldset: marks the group mandatory and appends a destructive asterisk. */
|
|
40
|
+
required?: boolean;
|
|
41
|
+
/** Forwarded to Fieldset: disables every control inside, slotted ones included. */
|
|
42
|
+
disabled?: boolean;
|
|
43
|
+
/** Forwarded to Fieldset: renders every Loom control inside read-only. */
|
|
44
|
+
readonly?: boolean | undefined;
|
|
45
|
+
/** Forwarded to Fieldset: set on the `<fieldset>`, used to derive the hint/error id. */
|
|
46
|
+
id?: string;
|
|
47
|
+
/** Gap between fields — mirrors Stack's gap scale. */
|
|
48
|
+
gap?: FormSectionGap;
|
|
49
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
50
|
+
/** The section title — rendered as a real `<legend>` by Fieldset. */
|
|
51
|
+
legend?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Supporting text shown below the legend, above the fields.
|
|
54
|
+
* NOT the same as `hint`, which sits below the fields — this orients the
|
|
55
|
+
* person filling the form, while `hint` supplements the controls.
|
|
56
|
+
*/
|
|
57
|
+
description?: string;
|
|
58
|
+
/** Forwarded to Fieldset: supporting text shown below the group. Hidden while `error` is set. */
|
|
59
|
+
hint?: string;
|
|
60
|
+
/** Forwarded to Fieldset: the group's error message. Replaces `hint`. */
|
|
61
|
+
error?: string;
|
|
62
|
+
/** Forwarded to Fieldset: marks the group mandatory and appends a destructive asterisk. */
|
|
63
|
+
required?: boolean;
|
|
64
|
+
/** Forwarded to Fieldset: disables every control inside, slotted ones included. */
|
|
65
|
+
disabled?: boolean;
|
|
66
|
+
/** Forwarded to Fieldset: renders every Loom control inside read-only. */
|
|
67
|
+
readonly?: boolean | undefined;
|
|
68
|
+
/** Forwarded to Fieldset: set on the `<fieldset>`, used to derive the hint/error id. */
|
|
69
|
+
id?: string;
|
|
70
|
+
/** Gap between fields — mirrors Stack's gap scale. */
|
|
71
|
+
gap?: FormSectionGap;
|
|
72
|
+
}> & Readonly<{}>, {
|
|
73
|
+
gap: FormSectionGap;
|
|
74
|
+
disabled: boolean;
|
|
75
|
+
readonly: boolean | undefined;
|
|
76
|
+
required: boolean;
|
|
77
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
78
|
+
default?: (props: {}) => any;
|
|
79
|
+
}>;
|
|
80
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
81
|
+
new (): {
|
|
82
|
+
$slots: S;
|
|
83
|
+
};
|
|
84
|
+
};
|
|
85
|
+
//# sourceMappingURL=FormSection.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormSection.vue.d.ts","sourceRoot":"","sources":["../../../src/blocks/FormSection/FormSection.vue"],"names":[],"mappings":"AAiGA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEhD,QAAA,MAAM,QAAQ,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAInC,CAAC;AAEX,OAAO,EAAE,QAAQ,EAAE,CAAC;wBACC,OAAO,YAAY;AAAxC,wBAAyC;AACzC,QAAA,MAAM,YAAY;IAEd,qEAAqE;aAC5D,MAAM;IACf;;;;OAIG;kBACW,MAAM;IACpB,iGAAiG;WAC1F,MAAM;IACb,yEAAyE;YACjE,MAAM;IACd,2FAA2F;eAChF,OAAO;IAClB,mFAAmF;eACxE,OAAO;IAClB,0EAA0E;eAC/D,OAAO,GAAG,SAAS;IAC9B,wFAAwF;SACnF,MAAM;IACX,sDAAsD;UAChD,cAAc;;IArBpB,qEAAqE;aAC5D,MAAM;IACf;;;;OAIG;kBACW,MAAM;IACpB,iGAAiG;WAC1F,MAAM;IACb,yEAAyE;YACjE,MAAM;IACd,2FAA2F;eAChF,OAAO;IAClB,mFAAmF;eACxE,OAAO;IAClB,0EAA0E;eAC/D,OAAO,GAAG,SAAS;IAC9B,wFAAwF;SACnF,MAAM;IACX,sDAAsD;UAChD,cAAc;;SAAd,cAAc;cANT,OAAO;cAEP,OAAO,GAAG,SAAS;cAJnB,OAAO;;cAqFR,CAAC,KAAK,IAAgB,KAAK,GAAG;EAUxC,CAAC;AAWL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { cn } from "../../lib/cn.js";
|
|
2
|
+
import { optional } from "../../lib/props.js";
|
|
3
|
+
import Fieldset_default from "../../primitives/Fieldset/Fieldset.js";
|
|
4
|
+
import { createBlock, createCommentVNode, createElementBlock, createElementVNode, defineComponent, mergeProps, normalizeClass, openBlock, renderSlot, toDisplayString, unref, withCtx } from "vue";
|
|
5
|
+
//#region src/blocks/FormSection/FormSection.vue?vue&type=script&setup=true&lang.ts
|
|
6
|
+
var _hoisted_1 = {
|
|
7
|
+
key: 0,
|
|
8
|
+
class: "max-w-prose text-small text-muted-foreground"
|
|
9
|
+
};
|
|
10
|
+
var gapClass = {
|
|
11
|
+
sm: "gap-2 sm:gap-3",
|
|
12
|
+
md: "gap-3 sm:gap-4",
|
|
13
|
+
lg: "gap-4 sm:gap-6"
|
|
14
|
+
};
|
|
15
|
+
var FormSection_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
16
|
+
__name: "FormSection",
|
|
17
|
+
props: {
|
|
18
|
+
legend: {},
|
|
19
|
+
description: {},
|
|
20
|
+
hint: {},
|
|
21
|
+
error: {},
|
|
22
|
+
required: {
|
|
23
|
+
type: Boolean,
|
|
24
|
+
default: false
|
|
25
|
+
},
|
|
26
|
+
disabled: {
|
|
27
|
+
type: Boolean,
|
|
28
|
+
default: false
|
|
29
|
+
},
|
|
30
|
+
readonly: {
|
|
31
|
+
type: Boolean,
|
|
32
|
+
default: void 0
|
|
33
|
+
},
|
|
34
|
+
id: {},
|
|
35
|
+
gap: { default: "md" }
|
|
36
|
+
},
|
|
37
|
+
setup(__props) {
|
|
38
|
+
return (_ctx, _cache) => {
|
|
39
|
+
return openBlock(), createBlock(Fieldset_default, mergeProps(unref(optional)({
|
|
40
|
+
legend: __props.legend,
|
|
41
|
+
hint: __props.hint,
|
|
42
|
+
error: __props.error,
|
|
43
|
+
id: __props.id
|
|
44
|
+
}), {
|
|
45
|
+
required: __props.required,
|
|
46
|
+
disabled: __props.disabled,
|
|
47
|
+
readonly: __props.readonly
|
|
48
|
+
}), {
|
|
49
|
+
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)]),
|
|
50
|
+
_: 3
|
|
51
|
+
}, 16, [
|
|
52
|
+
"required",
|
|
53
|
+
"disabled",
|
|
54
|
+
"readonly"
|
|
55
|
+
]);
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
//#endregion
|
|
60
|
+
export { FormSection_vue_vue_type_script_setup_true_lang_default as default, gapClass };
|
|
61
|
+
|
|
62
|
+
//# 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":["../../../src/blocks/FormSection/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 block 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 \"../../primitives/Fieldset/Fieldset.vue\";\nimport { cn } from \"../../lib/cn\";\nimport { optional } from \"../../lib/props\";\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;;;;;;;;;;;;;;;;;;;;;;;;;GA+CE,OAAA,UAAA,GAAA,YAaW,kBAbX,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 src/blocks/LoadingState/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":["../../../src/blocks/LoadingState/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 block 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 \"../../primitives/Spinner/Spinner.vue\";\nimport Skeleton from \"../../primitives/Skeleton/Skeleton.vue\";\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":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
type __VLS_Props = {
|
|
2
|
+
/** Shown below the spinner in spinner mode. Omit for a spinner-only wait. */
|
|
3
|
+
label?: string;
|
|
4
|
+
/** `spinner` for short indeterminate waits; `skeleton` for content-shaped waits. */
|
|
5
|
+
mode?: "spinner" | "skeleton";
|
|
6
|
+
};
|
|
7
|
+
declare var __VLS_6: {};
|
|
8
|
+
type __VLS_Slots = {} & {
|
|
9
|
+
default?: (props: typeof __VLS_6) => any;
|
|
10
|
+
};
|
|
11
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
|
|
12
|
+
mode: "spinner" | "skeleton";
|
|
13
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
14
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
15
|
+
declare const _default: typeof __VLS_export;
|
|
16
|
+
export default _default;
|
|
17
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
18
|
+
new (): {
|
|
19
|
+
$slots: S;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=LoadingState.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadingState.vue.d.ts","sourceRoot":"","sources":["../../../src/blocks/LoadingState/LoadingState.vue"],"names":[],"mappings":"AAkFA,KAAK,WAAW,GAAG;IACf,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oFAAoF;IACpF,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;CAC/B,CAAC;AA6FJ,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;UArGL,SAAS,GAAG,UAAU;6EAwG/B,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import Skeleton_default from "../../primitives/Skeleton/Skeleton.js";
|
|
2
|
+
import Spinner_default from "../../primitives/Spinner/Spinner.js";
|
|
3
|
+
import { createCommentVNode, createElementBlock, createVNode, defineComponent, openBlock, renderSlot, toDisplayString } from "vue";
|
|
4
|
+
//#region src/blocks/LoadingState/LoadingState.vue?vue&type=script&setup=true&lang.ts
|
|
5
|
+
var _hoisted_1 = {
|
|
6
|
+
key: 0,
|
|
7
|
+
class: "flex flex-col items-center justify-center gap-3 px-6 py-10 sm:py-14"
|
|
8
|
+
};
|
|
9
|
+
var _hoisted_2 = {
|
|
10
|
+
key: 0,
|
|
11
|
+
class: "text-small text-muted-foreground"
|
|
12
|
+
};
|
|
13
|
+
var _hoisted_3 = {
|
|
14
|
+
key: 1,
|
|
15
|
+
class: "flex flex-col gap-3 px-6 py-10 sm:py-14"
|
|
16
|
+
};
|
|
17
|
+
var LoadingState_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
|
|
18
|
+
__name: "LoadingState",
|
|
19
|
+
props: {
|
|
20
|
+
label: {},
|
|
21
|
+
mode: { default: "spinner" }
|
|
22
|
+
},
|
|
23
|
+
setup(__props) {
|
|
24
|
+
/**
|
|
25
|
+
* LoadingState — the shape of "not yet known": a Spinner for short waits or a
|
|
26
|
+
* column of skeleton lines for content-shaped waits. This replaces the "flash
|
|
27
|
+
* of EmptyState" antipattern — never show EmptyState before the real result is
|
|
28
|
+
* known, because an empty state that flickers and disappears is a short-lived
|
|
29
|
+
* lie.
|
|
30
|
+
*
|
|
31
|
+
* Two modes controlled by `mode`:
|
|
32
|
+
* - `spinner` (default): centred Spinner with an optional label. Good for
|
|
33
|
+
* indeterminate waits where the host does not know the content shape.
|
|
34
|
+
* - `skeleton`: a column of skeleton lines that approximate the content the
|
|
35
|
+
* host is loading. The default lines are three bars of varying width — enough
|
|
36
|
+
* to suggest paragraph-shaped content without the host having to compose
|
|
37
|
+
* anything. Hosts that know their own shape provide a default slot and render
|
|
38
|
+
* whatever Skeleton arrangement matches their real layout.
|
|
39
|
+
*
|
|
40
|
+
* The Spinner carries its own accessible label (`aria-label` on the primitive)
|
|
41
|
+
* so this block does not add a redundant one. The skeleton lines are purely
|
|
42
|
+
* decorative (`aria-hidden` on each Skeleton) — the host's real content will
|
|
43
|
+
* replace them.
|
|
44
|
+
*/
|
|
45
|
+
return (_ctx, _cache) => {
|
|
46
|
+
return __props.mode === "spinner" ? (openBlock(), createElementBlock("div", _hoisted_1, [createVNode(Spinner_default, { size: "lg" }), __props.label ? (openBlock(), createElementBlock("p", _hoisted_2, toDisplayString(__props.label), 1)) : createCommentVNode("", true)])) : (openBlock(), createElementBlock("div", _hoisted_3, [renderSlot(_ctx.$slots, "default", {}, () => [
|
|
47
|
+
createVNode(Skeleton_default, { class: "h-4 w-full" }),
|
|
48
|
+
createVNode(Skeleton_default, { class: "h-4 w-3/4" }),
|
|
49
|
+
createVNode(Skeleton_default, { class: "h-4 w-5/6" })
|
|
50
|
+
])]));
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
//#endregion
|
|
55
|
+
export { LoadingState_vue_vue_type_script_setup_true_lang_default as default };
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=LoadingState.vue_vue_type_script_setup_true_lang.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadingState.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/blocks/LoadingState/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 block 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 \"../../primitives/Spinner/Spinner.vue\";\nimport Skeleton from \"../../primitives/Skeleton/Skeleton.vue\";\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCU,OAAA,QAAA,SAAI,aADZ,UAAA,GAAA,mBAMM,OANN,YAMM,CAFJ,YAAqB,iBAAA,EAAZ,MAAK,KAAI,CAAA,GACT,QAAA,SAAT,UAAA,GAAA,mBAAwE,KAAxE,YAAwE,gBAAZ,QAAA,KAAK,GAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,CAAA,CAAA,MAEnE,UAAA,GAAA,mBASM,OATN,YASM,CARJ,WAOO,KAAA,QAAA,WAAA,CAAA,SAAA;IAHL,YAA+B,kBAAA,EAArB,OAAM,aAAY,CAAA;IAC5B,YAA8B,kBAAA,EAApB,OAAM,YAAW,CAAA;IAC3B,YAA8B,kBAAA,EAApB,OAAM,YAAW,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import MetricCard_vue_vue_type_script_setup_true_lang_default from "./MetricCard.vue_vue_type_script_setup_true_lang.js";
|
|
2
|
+
//#region src/blocks/MetricCard/MetricCard.vue
|
|
3
|
+
var MetricCard_default = MetricCard_vue_vue_type_script_setup_true_lang_default;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { MetricCard_default as default };
|
|
6
|
+
|
|
7
|
+
//# sourceMappingURL=MetricCard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetricCard.js","names":[],"sources":["../../../src/blocks/MetricCard/MetricCard.vue"],"sourcesContent":["<script lang=\"ts\">\n/**\n * MetricCard — one KPI on a dashboard: a compact surface carrying a metric\n * value, its label, and an optional trend arrow. The shape is fixed (icon →\n * label → value + trend) because a hand-rolled metric row drifts from call\n * site to call site — the icon above the label here, the trend on a second\n * line there — and this block pins one layout so the row scans left-to-right.\n *\n * The trend is always inline with the value, never a separate line. A trend\n * on its own row reads as a second metric; sharing the value line reads as\n * context for that metric, which is what it is. The arrows are inline SVGs\n * (12px) rather than an icon-library dependency: a trend indicator is a\n * single directional glyph, and pulling in an icon package for three paths\n * is weight the host did not ask for.\n *\n * Colour encodes direction but is never the only signal: the arrow shape\n * distinguishes up from down even without hue, and \"flat\" is an em dash\n * rather than a horizontal arrow that could be mistaken for a minus sign or\n * a separator. `text-success` / `text-destructive` / `text-muted-foreground`\n * are the semantic tokens rather than fixed greens and reds, so the card\n * adapts to whatever the theme maps those to.\n */\nexport type MetricCardTrend = \"up\" | \"down\" | \"flat\";\n</script>\n\n<script setup lang=\"ts\">\nimport { cn } from \"../../lib/cn\";\n\ndefineProps<{\n /** The metric value — a formatted string or number the host has already\n * localised (e.g. \"1,234\", \"98.5%\", \"$42k\"). Raw numbers are not\n * formatted by the card; the host owns formatting so the same value\n * can be \"$42k\" in one place and \"42,000\" in another. */\n value: string | number;\n /** What the metric measures — always shown. */\n label: string;\n /** Direction of change. When absent, no trend indicator is rendered. */\n trend?: MetricCardTrend;\n /** The trend magnitude (e.g. \"+12.5%\", \"-3.2%\"). Shown only when `trend`\n * is also provided; a magnitude with no direction has no meaning. */\n trendValue?: string;\n}>();\n</script>\n\n<template>\n <div :class=\"cn('rounded-lg border border-border bg-card p-4')\">\n <!-- Decorative icon — hidden from assistive tech because the label and\n value already carry the metric's meaning. -->\n <div\n v-if=\"$slots.icon\"\n aria-hidden=\"true\"\n class=\"mb-2 text-muted-foreground [&_svg]:h-4 [&_svg]:w-4\"\n >\n <slot name=\"icon\" />\n </div>\n <p class=\"text-small text-muted-foreground\">{{ label }}</p>\n <div class=\"flex items-baseline gap-1.5\">\n <span class=\"text-2xl font-semibold tracking-tight text-foreground\">\n {{ value }}\n </span>\n <span\n v-if=\"trend\"\n :class=\"\n cn('inline-flex items-center gap-0.5 text-small font-medium', {\n 'text-success': trend === 'up',\n 'text-destructive': trend === 'down',\n 'text-muted-foreground': trend === 'flat',\n })\n \"\n >\n <!-- Up arrow: a single upward stroke with a chevron head. -->\n <svg\n v-if=\"trend === 'up'\"\n class=\"inline h-3 w-3\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 2v8M3 5l3-3 3 3\" />\n </svg>\n <!-- Down arrow: a single downward stroke with a chevron head. -->\n <svg\n v-else-if=\"trend === 'down'\"\n class=\"inline h-3 w-3\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n aria-hidden=\"true\"\n >\n <path d=\"M6 10V2M3 7l3 3 3-3\" />\n </svg>\n <!-- Flat: an em dash rather than a horizontal arrow — a horizontal\n arrow at this size reads as a minus sign or a separator. -->\n <span v-else aria-hidden=\"true\">—</span>\n <span v-if=\"trendValue\">{{ trendValue }}</span>\n </span>\n </div>\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MetricCard — one KPI on a dashboard: a compact surface carrying a metric
|
|
3
|
+
* value, its label, and an optional trend arrow. The shape is fixed (icon →
|
|
4
|
+
* label → value + trend) because a hand-rolled metric row drifts from call
|
|
5
|
+
* site to call site — the icon above the label here, the trend on a second
|
|
6
|
+
* line there — and this block pins one layout so the row scans left-to-right.
|
|
7
|
+
*
|
|
8
|
+
* The trend is always inline with the value, never a separate line. A trend
|
|
9
|
+
* on its own row reads as a second metric; sharing the value line reads as
|
|
10
|
+
* context for that metric, which is what it is. The arrows are inline SVGs
|
|
11
|
+
* (12px) rather than an icon-library dependency: a trend indicator is a
|
|
12
|
+
* single directional glyph, and pulling in an icon package for three paths
|
|
13
|
+
* is weight the host did not ask for.
|
|
14
|
+
*
|
|
15
|
+
* Colour encodes direction but is never the only signal: the arrow shape
|
|
16
|
+
* distinguishes up from down even without hue, and "flat" is an em dash
|
|
17
|
+
* rather than a horizontal arrow that could be mistaken for a minus sign or
|
|
18
|
+
* a separator. `text-success` / `text-destructive` / `text-muted-foreground`
|
|
19
|
+
* are the semantic tokens rather than fixed greens and reds, so the card
|
|
20
|
+
* adapts to whatever the theme maps those to.
|
|
21
|
+
*/
|
|
22
|
+
export type MetricCardTrend = "up" | "down" | "flat";
|
|
23
|
+
declare const _default: typeof __VLS_export;
|
|
24
|
+
export default _default;
|
|
25
|
+
declare const __VLS_export: __VLS_WithSlots<import("vue").DefineComponent<{
|
|
26
|
+
/** The metric value — a formatted string or number the host has already
|
|
27
|
+
* localised (e.g. "1,234", "98.5%", "$42k"). Raw numbers are not
|
|
28
|
+
* formatted by the card; the host owns formatting so the same value
|
|
29
|
+
* can be "$42k" in one place and "42,000" in another. */
|
|
30
|
+
value: string | number;
|
|
31
|
+
/** What the metric measures — always shown. */
|
|
32
|
+
label: string;
|
|
33
|
+
/** Direction of change. When absent, no trend indicator is rendered. */
|
|
34
|
+
trend?: MetricCardTrend;
|
|
35
|
+
/** The trend magnitude (e.g. "+12.5%", "-3.2%"). Shown only when `trend`
|
|
36
|
+
* is also provided; a magnitude with no direction has no meaning. */
|
|
37
|
+
trendValue?: string;
|
|
38
|
+
}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{
|
|
39
|
+
/** The metric value — a formatted string or number the host has already
|
|
40
|
+
* localised (e.g. "1,234", "98.5%", "$42k"). Raw numbers are not
|
|
41
|
+
* formatted by the card; the host owns formatting so the same value
|
|
42
|
+
* can be "$42k" in one place and "42,000" in another. */
|
|
43
|
+
value: string | number;
|
|
44
|
+
/** What the metric measures — always shown. */
|
|
45
|
+
label: string;
|
|
46
|
+
/** Direction of change. When absent, no trend indicator is rendered. */
|
|
47
|
+
trend?: MetricCardTrend;
|
|
48
|
+
/** The trend magnitude (e.g. "+12.5%", "-3.2%"). Shown only when `trend`
|
|
49
|
+
* is also provided; a magnitude with no direction has no meaning. */
|
|
50
|
+
trendValue?: string;
|
|
51
|
+
}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
52
|
+
icon?: (props: {}) => any;
|
|
53
|
+
}>;
|
|
54
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
55
|
+
new (): {
|
|
56
|
+
$slots: S;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=MetricCard.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetricCard.vue.d.ts","sourceRoot":"","sources":["../../../src/blocks/MetricCard/MetricCard.vue"],"names":[],"mappings":"AA4GA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;wBAChC,OAAO,YAAY;AAAxC,wBAAyC;AACzC,QAAA,MAAM,YAAY;IAEhB;;;8DAG0D;WACnD,MAAM,GAAG,MAAM;IACtB,+CAA+C;WACxC,MAAM;IACb,wEAAwE;YAChE,eAAe;IACvB;0EACsE;iBACzD,MAAM;;IAXnB;;;8DAG0D;WACnD,MAAM,GAAG,MAAM;IACtB,+CAA+C;WACxC,MAAM;IACb,wEAAwE;YAChE,eAAe;IACvB;0EACsE;iBACzD,MAAM;;WAgHV,CAAC,KAAK,IAAgB,KAAK,GAAG;EASrC,CAAC;AACL,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
|