@soybeanjs/ui 0.18.0 → 0.20.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 +2 -1
- package/README.zh-CN.md +2 -1
- package/dist/components/accordion/accordion.js +1 -1
- package/dist/components/accordion/variants.js +1 -1
- package/dist/components/affix/affix.js +1 -1
- package/dist/components/alert/alert.js +1 -1
- package/dist/components/alert/alert.vue.d.ts +2 -0
- package/dist/components/alert/variants.js +1 -1
- package/dist/components/anchor/anchor.js +1 -1
- package/dist/components/autocomplete/autocomplete.js +1 -1
- package/dist/components/autocomplete/variants.js +1 -1
- package/dist/components/avatar/avatar.js +1 -1
- package/dist/components/backtop/backtop.js +1 -1
- package/dist/components/badge/badge.js +1 -1
- package/dist/components/bottom-sheet/bottom-sheet.js +1 -1
- package/dist/components/breadcrumb/breadcrumb.js +1 -1
- package/dist/components/button/button-group.js +1 -1
- package/dist/components/button/button-group.vue.d.ts +0 -1
- package/dist/components/button/types.d.ts +1 -1
- package/dist/components/button/variants.js +1 -1
- package/dist/components/calendar/calendar.js +1 -1
- package/dist/components/calendar/variants.js +1 -1
- package/dist/components/calendar-range/calendar-range.js +1 -0
- package/dist/components/{range-calendar/range-calendar.vue.d.ts → calendar-range/calendar-range.vue.d.ts} +5 -5
- package/dist/components/calendar-range/index.d.ts +3 -0
- package/dist/components/calendar-range/index.js +1 -0
- package/dist/components/calendar-range/types.d.ts +32 -0
- package/dist/components/calendar-range/variants.js +1 -0
- package/dist/components/card/card-collapsible-trigger.js +1 -1
- package/dist/components/card/card.js +1 -1
- package/dist/components/carousel/carousel.js +1 -1
- package/dist/components/checkbox/checkbox-card-group.js +1 -1
- package/dist/components/checkbox/checkbox-card.js +1 -1
- package/dist/components/checkbox/checkbox-group.js +1 -1
- package/dist/components/checkbox/checkbox.js +1 -1
- package/dist/components/collapsible/collapsible.js +1 -1
- package/dist/components/collapsible/collapsible.vue.d.ts +1 -1
- package/dist/components/color-area/color-area.js +1 -1
- package/dist/components/color-area/color-area.vue.d.ts +5 -5
- package/dist/components/color-area/types.d.ts +3 -11
- package/dist/components/color-field/color-field.js +1 -1
- package/dist/components/color-field/color-field.vue.d.ts +3 -3
- package/dist/components/color-field/types.d.ts +3 -7
- package/dist/components/color-field/variants.js +1 -1
- package/dist/components/color-picker/color-picker.js +1 -1
- package/dist/components/color-picker/color-picker.vue.d.ts +21 -36
- package/dist/components/color-picker/index.d.ts +1 -1
- package/dist/components/color-picker/types.d.ts +6 -118
- package/dist/components/color-picker/variants.js +1 -1
- package/dist/components/color-slider/color-slider.js +1 -1
- package/dist/components/color-slider/color-slider.vue.d.ts +5 -5
- package/dist/components/color-slider/types.d.ts +3 -11
- package/dist/components/color-swatch/color-swatch.js +1 -1
- package/dist/components/color-swatch/color-swatch.vue.d.ts +2 -5
- package/dist/components/color-swatch/index.d.ts +3 -2
- package/dist/components/color-swatch/types.d.ts +9 -13
- package/dist/components/color-swatch-picker/color-swatch-picker.js +1 -1
- package/dist/components/color-swatch-picker/color-swatch-picker.vue.d.ts +6 -6
- package/dist/components/color-swatch-picker/types.d.ts +3 -19
- package/dist/components/color-swatch-picker/variants.d.ts +9 -9
- package/dist/components/color-swatch-picker/variants.js +1 -1
- package/dist/components/combobox/combobox.js +1 -1
- package/dist/components/command/command.js +1 -1
- package/dist/components/command/command.vue.d.ts +1 -1
- package/dist/components/command/variants.js +1 -1
- package/dist/components/config-provider/config-provider.js +1 -1
- package/dist/components/config-provider/types.d.ts +2 -4
- package/dist/components/context-menu/context-menu-checkbox.vue.d.ts +1 -1
- package/dist/components/context-menu/context-menu-radio.vue.d.ts +3 -3
- package/dist/components/context-menu/context-menu.vue.d.ts +1 -1
- package/dist/components/date-field/date-field.js +1 -1
- package/dist/components/date-field/date-field.vue.d.ts +4 -4
- package/dist/components/date-field/variants.js +1 -1
- package/dist/components/date-picker/date-picker.js +1 -1
- package/dist/components/date-picker/date-picker.vue.d.ts +17 -11
- package/dist/components/date-picker/index.d.ts +1 -1
- package/dist/components/date-picker/types.d.ts +7 -6
- package/dist/components/date-picker/variants.js +1 -1
- package/dist/components/date-range-field/date-range-field.js +1 -1
- package/dist/components/date-range-field/date-range-field.vue.d.ts +1 -3
- package/dist/components/date-range-field/index.d.ts +1 -1
- package/dist/components/date-range-field/types.d.ts +5 -49
- package/dist/components/date-range-field/variants.js +1 -1
- package/dist/components/date-range-picker/date-range-picker.js +1 -1
- package/dist/components/date-range-picker/date-range-picker.vue.d.ts +20 -14
- package/dist/components/date-range-picker/index.d.ts +1 -1
- package/dist/components/date-range-picker/types.d.ts +7 -39
- package/dist/components/dialog/dialog-provider.js +1 -1
- package/dist/components/dialog/dialog.js +1 -1
- package/dist/components/dialog/dialog.vue.d.ts +2 -0
- package/dist/components/dialog/variants.js +1 -1
- package/dist/components/drawer/drawer.js +1 -1
- package/dist/components/drawer/drawer.vue.d.ts +2 -0
- package/dist/components/drawer/variants.js +1 -1
- package/dist/components/dropdown-menu/dropdown-menu-checkbox.vue.d.ts +1 -1
- package/dist/components/dropdown-menu/dropdown-menu-radio.vue.d.ts +3 -3
- package/dist/components/dropdown-menu/dropdown-menu.vue.d.ts +1 -1
- package/dist/components/editable/editable.js +1 -1
- package/dist/components/editable/editable.vue.d.ts +2 -63
- package/dist/components/editable/index.d.ts +1 -1
- package/dist/components/editable/types.d.ts +10 -38
- package/dist/components/empty/empty.js +1 -1
- package/dist/components/empty/variants.js +1 -1
- package/dist/components/form/form-field-array.js +1 -1
- package/dist/components/form/form-field-base.js +1 -1
- package/dist/components/form/form-field.js +1 -1
- package/dist/components/form/form.js +1 -1
- package/dist/components/hover-card/hover-card.js +1 -1
- package/dist/components/hover-card/hover-card.vue.d.ts +2 -8
- package/dist/components/hover-card/index.d.ts +1 -1
- package/dist/components/hover-card/types.d.ts +9 -33
- package/dist/components/icon/types.d.ts +1 -1
- package/dist/components/input/input.js +1 -1
- package/dist/components/input/variants.js +1 -1
- package/dist/components/input-number/index.d.ts +1 -1
- package/dist/components/input-number/input-number.js +1 -1
- package/dist/components/input-number/input-number.vue.d.ts +6 -13
- package/dist/components/input-number/types.d.ts +8 -24
- package/dist/components/input-number/variants.js +1 -1
- package/dist/components/input-otp/input-otp.js +1 -1
- package/dist/components/input-otp/input-otp.vue.d.ts +2 -2
- package/dist/components/layout/layout-classic.js +1 -1
- package/dist/components/layout/layout.js +1 -1
- package/dist/components/layout/variants.js +1 -1
- package/dist/components/link/index.d.ts +2 -2
- package/dist/components/list/list.js +1 -1
- package/dist/components/menu/context.js +1 -1
- package/dist/components/menu/index.d.ts +1 -8
- package/dist/components/menu/variants.js +1 -1
- package/dist/components/menubar/menubar.js +1 -1
- package/dist/components/menubar/menubar.vue.d.ts +1 -1
- package/dist/components/navigation-menu/index.d.ts +1 -1
- package/dist/components/navigation-menu/navigation-menu.js +1 -1
- package/dist/components/navigation-menu/navigation-menu.vue.d.ts +2 -23
- package/dist/components/navigation-menu/types.d.ts +10 -115
- package/dist/components/navigation-menu/variants.js +1 -1
- package/dist/components/page-tabs/index.d.ts +1 -1
- package/dist/components/page-tabs/page-tabs.js +1 -1
- package/dist/components/page-tabs/page-tabs.vue.d.ts +6 -4
- package/dist/components/page-tabs/types.d.ts +10 -117
- package/dist/components/page-tabs/variants.js +1 -1
- package/dist/components/pagination/index.d.ts +1 -1
- package/dist/components/pagination/pagination.js +1 -1
- package/dist/components/pagination/pagination.vue.d.ts +2 -17
- package/dist/components/pagination/types.d.ts +8 -20
- package/dist/components/pagination/variants.js +1 -1
- package/dist/components/password/index.d.ts +3 -2
- package/dist/components/password/password.js +1 -1
- package/dist/components/password/password.vue.d.ts +2 -12
- package/dist/components/password/types.d.ts +8 -25
- package/dist/components/popconfirm/index.d.ts +3 -5
- package/dist/components/popconfirm/index.js +1 -1
- package/dist/components/popconfirm/popconfirm.js +1 -1
- package/dist/components/popconfirm/popconfirm.vue.d.ts +6 -27
- package/dist/components/popconfirm/types.d.ts +8 -209
- package/dist/components/popconfirm/variants.js +1 -1
- package/dist/components/popover/index.d.ts +1 -1
- package/dist/components/popover/popover.js +1 -1
- package/dist/components/popover/popover.vue.d.ts +2 -9
- package/dist/components/popover/types.d.ts +9 -37
- package/dist/components/popover/variants.js +1 -1
- package/dist/components/progress/index.d.ts +11 -3
- package/dist/components/progress/progress-circle.js +1 -1
- package/dist/components/progress/progress-circle.vue.d.ts +2 -10
- package/dist/components/progress/progress-provider.js +1 -1
- package/dist/components/progress/progress-provider.vue.d.ts +1 -1
- package/dist/components/progress/progress.js +1 -1
- package/dist/components/progress/progress.vue.d.ts +2 -11
- package/dist/components/progress/types.d.ts +16 -16
- package/dist/components/progress/variants.js +1 -1
- package/dist/components/radio-group/index.d.ts +2 -4
- package/dist/components/radio-group/index.js +1 -1
- package/dist/components/radio-group/radio-group-card.js +1 -0
- package/dist/components/radio-group/radio-group-card.vue.d.ts +22 -0
- package/dist/components/radio-group/radio-group.js +1 -1
- package/dist/components/radio-group/radio-group.vue.d.ts +6 -6
- package/dist/components/radio-group/types.d.ts +24 -67
- package/dist/components/radio-group/variants.js +1 -1
- package/dist/components/scroll-area/scroll-area.js +1 -1
- package/dist/components/scroll-area/scroll-area.vue.d.ts +2 -2
- package/dist/components/scroll-area/types.d.ts +3 -23
- package/dist/components/scroll-area/variants.js +1 -1
- package/dist/components/segment/segment.js +1 -1
- package/dist/components/segment/segment.vue.d.ts +2 -2
- package/dist/components/select/select.js +1 -1
- package/dist/components/select/select.vue.d.ts +1 -1
- package/dist/components/select/variants.js +1 -1
- package/dist/components/separator/separator.js +1 -1
- package/dist/components/separator/separator.vue.d.ts +11 -1
- package/dist/components/separator/types.d.ts +2 -10
- package/dist/components/separator/variants.js +1 -1
- package/dist/components/slider/slider.js +1 -1
- package/dist/components/slider/slider.vue.d.ts +6 -7
- package/dist/components/slider/types.d.ts +3 -15
- package/dist/components/splitter/splitter-group.js +1 -1
- package/dist/components/splitter/splitter-panel.js +1 -1
- package/dist/components/splitter/splitter-panel.vue.d.ts +2 -2
- package/dist/components/splitter/splitter-resize-handle.js +1 -1
- package/dist/components/splitter/variants.js +1 -1
- package/dist/components/stepper/index.d.ts +1 -1
- package/dist/components/stepper/stepper.js +1 -1
- package/dist/components/stepper/stepper.vue.d.ts +2 -104
- package/dist/components/stepper/types.d.ts +10 -55
- package/dist/components/stepper/variants.js +1 -1
- package/dist/components/switch/index.d.ts +1 -1
- package/dist/components/switch/switch.js +1 -1
- package/dist/components/switch/switch.vue.d.ts +2 -638
- package/dist/components/switch/types.d.ts +8 -12
- package/dist/components/switch/variants.d.ts +5 -5
- package/dist/components/switch/variants.js +1 -1
- package/dist/components/table/hooks.d.ts +3 -3
- package/dist/components/table/table-filter-popover.js +1 -1
- package/dist/components/table/table.js +1 -1
- package/dist/components/table/variants.js +1 -1
- package/dist/components/tabs/tabs.js +1 -1
- package/dist/components/tabs/tabs.vue.d.ts +2 -2
- package/dist/components/tabs/variants.js +1 -1
- package/dist/components/tags-input/index.d.ts +3 -4
- package/dist/components/tags-input/index.js +1 -1
- package/dist/components/tags-input/tags-input.js +1 -1
- package/dist/components/tags-input/tags-input.vue.d.ts +18 -22
- package/dist/components/tags-input/types.d.ts +8 -4
- package/dist/components/tags-input/variants.js +1 -1
- package/dist/components/textarea/index.d.ts +4 -2
- package/dist/components/textarea/index.js +1 -1
- package/dist/components/textarea/textarea.js +1 -1
- package/dist/components/textarea/textarea.vue.d.ts +4 -10
- package/dist/components/textarea/types.d.ts +9 -28
- package/dist/components/textarea/variants.d.ts +21 -21
- package/dist/components/textarea/variants.js +1 -1
- package/dist/components/time-field/index.d.ts +1 -1
- package/dist/components/time-field/time-field.js +1 -1
- package/dist/components/time-field/time-field.vue.d.ts +2 -9
- package/dist/components/time-field/types.d.ts +4 -37
- package/dist/components/time-range-field/index.d.ts +1 -1
- package/dist/components/time-range-field/time-range-field.js +1 -1
- package/dist/components/time-range-field/time-range-field.vue.d.ts +1 -3
- package/dist/components/time-range-field/types.d.ts +5 -49
- package/dist/components/toast/styles.js +36 -36
- package/dist/components/toast/toast-provider.js +1 -1
- package/dist/components/toast/variants.js +1 -1
- package/dist/components/toggle/toggle.js +1 -1
- package/dist/components/toggle-group/index.d.ts +3 -2
- package/dist/components/toggle-group/index.js +1 -1
- package/dist/components/toggle-group/toggle-group.js +1 -1
- package/dist/components/toggle-group/variants.js +1 -1
- package/dist/components/toolbar/toolbar.js +1 -1
- package/dist/components/toolbar/types.d.ts +5 -0
- package/dist/components/toolbar/variants.js +1 -1
- package/dist/components/tooltip/index.d.ts +1 -1
- package/dist/components/tooltip/tooltip.js +1 -1
- package/dist/components/tooltip/tooltip.vue.d.ts +2 -7
- package/dist/components/tooltip/types.d.ts +9 -37
- package/dist/components/tooltip/variants.js +1 -1
- package/dist/components/tree/tree-virtualizer.vue.d.ts +1 -1
- package/dist/components/tree/tree.vue.d.ts +2 -2
- package/dist/components/tree-menu/index.d.ts +1 -1
- package/dist/components/tree-menu/tree-menu-styled-item.js +1 -1
- package/dist/components/tree-menu/tree-menu.js +1 -1
- package/dist/components/tree-menu/tree-menu.vue.d.ts +3 -17
- package/dist/components/tree-menu/types.d.ts +12 -204
- package/dist/components/tree-menu/variants.js +1 -1
- package/dist/constants/components.d.ts +1 -7
- package/dist/constants/components.js +1 -1
- package/dist/index.d.ts +139 -158
- package/dist/index.js +1 -1
- package/dist/styles.css +250 -218
- package/dist/theme/shared.js +1 -1
- package/package.json +14 -14
- package/dist/components/color-picker/shared.js +0 -1
- package/dist/components/date-range-picker/variants.js +0 -1
- package/dist/components/month-picker/index.d.ts +0 -3
- package/dist/components/month-picker/index.js +0 -1
- package/dist/components/month-picker/month-picker.js +0 -1
- package/dist/components/month-picker/month-picker.vue.d.ts +0 -24
- package/dist/components/month-picker/types.d.ts +0 -86
- package/dist/components/month-picker/variants.js +0 -1
- package/dist/components/month-range-picker/index.d.ts +0 -3
- package/dist/components/month-range-picker/index.js +0 -1
- package/dist/components/month-range-picker/month-range-picker.js +0 -1
- package/dist/components/month-range-picker/month-range-picker.vue.d.ts +0 -29
- package/dist/components/month-range-picker/types.d.ts +0 -89
- package/dist/components/month-range-picker/variants.js +0 -1
- package/dist/components/navigation-menu/context.js +0 -1
- package/dist/components/navigation-menu/navigation-menu-item-slot.js +0 -1
- package/dist/components/navigation-menu/navigation-menu-option.js +0 -1
- package/dist/components/navigation-menu/navigation-menu-sub-option.js +0 -1
- package/dist/components/navigation-menu/shared.js +0 -1
- package/dist/components/page-tabs/hooks.js +0 -1
- package/dist/components/popconfirm/context.js +0 -1
- package/dist/components/popconfirm/popconfirm-cancel.js +0 -1
- package/dist/components/popconfirm/popconfirm-cancel.vue.d.ts +0 -25
- package/dist/components/popconfirm/popconfirm-confirm.js +0 -1
- package/dist/components/popconfirm/popconfirm-confirm.vue.d.ts +0 -22
- package/dist/components/radio-group/radio-card-group.js +0 -1
- package/dist/components/radio-group/radio-card-group.vue.d.ts +0 -22
- package/dist/components/radio-group/radio-card.js +0 -1
- package/dist/components/radio-group/radio-card.vue.d.ts +0 -22
- package/dist/components/radio-group/radio.js +0 -1
- package/dist/components/radio-group/radio.vue.d.ts +0 -18
- package/dist/components/range-calendar/index.d.ts +0 -3
- package/dist/components/range-calendar/index.js +0 -1
- package/dist/components/range-calendar/range-calendar.js +0 -1
- package/dist/components/range-calendar/types.d.ts +0 -188
- package/dist/components/range-calendar/variants.js +0 -1
- package/dist/components/tags-input/tags-input-item-delete.js +0 -1
- package/dist/components/tags-input/tags-input-item-delete.vue.d.ts +0 -18
- package/dist/components/time-field/variants.js +0 -1
- package/dist/components/time-picker/index.d.ts +0 -3
- package/dist/components/time-picker/index.js +0 -1
- package/dist/components/time-picker/time-picker.js +0 -1
- package/dist/components/time-picker/time-picker.vue.d.ts +0 -24
- package/dist/components/time-picker/types.d.ts +0 -68
- package/dist/components/time-picker/variants.js +0 -1
- package/dist/components/time-range-field/variants.js +0 -1
- package/dist/components/time-range-picker/index.d.ts +0 -3
- package/dist/components/time-range-picker/index.js +0 -1
- package/dist/components/time-range-picker/time-range-picker.js +0 -1
- package/dist/components/time-range-picker/time-range-picker.vue.d.ts +0 -28
- package/dist/components/time-range-picker/types.d.ts +0 -71
- package/dist/components/time-range-picker/variants.js +0 -1
- package/dist/components/toggle-group/toggle-group-item.js +0 -1
- package/dist/components/toggle-group/toggle-group-item.vue.d.ts +0 -22
- package/dist/components/tree-menu/context.js +0 -1
- package/dist/components/tree-menu/shared.js +0 -1
- package/dist/components/tree-menu/tree-menu-option-slot.js +0 -1
- package/dist/components/tree-menu/tree-menu-option.js +0 -1
- package/dist/components/tree-menu/tree-menu-options.js +0 -1
- package/dist/components/year-picker/index.d.ts +0 -3
- package/dist/components/year-picker/index.js +0 -1
- package/dist/components/year-picker/types.d.ts +0 -86
- package/dist/components/year-picker/variants.js +0 -1
- package/dist/components/year-picker/year-picker.js +0 -1
- package/dist/components/year-picker/year-picker.vue.d.ts +0 -24
- package/dist/components/year-range-picker/index.d.ts +0 -3
- package/dist/components/year-range-picker/index.js +0 -1
- package/dist/components/year-range-picker/types.d.ts +0 -90
- package/dist/components/year-range-picker/variants.js +0 -1
- package/dist/components/year-range-picker/year-range-picker.js +0 -1
- package/dist/components/year-range-picker/year-range-picker.vue.d.ts +0 -29
package/README.md
CHANGED
|
@@ -66,7 +66,7 @@ provideAccordionUi(ui); // headless reads this via useAccordionUi()
|
|
|
66
66
|
|
|
67
67
|
- **`ThemeColor`** — 8 semantic colors: `primary` · `destructive` · `success` · `warning` · `info` · `carbon` · `secondary` · `accent`
|
|
68
68
|
- **`ThemeSize`** — 6 sizes: `xs` · `sm` · `md` · `lg` · `xl` · `2xl` (base 16px at `md`)
|
|
69
|
-
- **`ConfigProvider`** — sets global `dir`, `locale`, `nonce`, and default `tooltip` config for the entire component tree
|
|
69
|
+
- **`ConfigProvider`** — sets global `dir`, `locale`, `nonce`, and default `tooltip` config for the entire component tree, including RTL layout switching
|
|
70
70
|
- **`cn()`** — Tailwind-aware class merge (`clsx` + `tailwind-merge`), used for conflict-free class composition
|
|
71
71
|
|
|
72
72
|
### Package Exports
|
|
@@ -194,6 +194,7 @@ import { AccordionRoot, AccordionItem, AccordionTrigger, AccordionContent } from
|
|
|
194
194
|
## ✨ Features
|
|
195
195
|
|
|
196
196
|
- **Accessible**: Follows WAI-ARIA patterns for roles, focus management, and keyboard navigation.
|
|
197
|
+
- **RTL ready**: Switch supported components between LTR and RTL layouts with `ConfigProvider`.
|
|
197
198
|
- **Headless-first**: Logic and styles are fully separated — use `@soybeanjs/headless` alone to build any design system.
|
|
198
199
|
- **Type Safe**: Written in strict TypeScript. All props, emits, slots, and context values are typed.
|
|
199
200
|
- **Customizable at every level**: Override individual slot classes via the `ui` prop, or swap the entire style layer.
|
package/README.zh-CN.md
CHANGED
|
@@ -66,7 +66,7 @@ provideAccordionUi(ui); // headless 通过 useAccordionUi() 读取
|
|
|
66
66
|
|
|
67
67
|
- **`ThemeColor`** — 8 种语义色:`primary` · `destructive` · `success` · `warning` · `info` · `carbon` · `secondary` · `accent`
|
|
68
68
|
- **`ThemeSize`** — 6 种尺寸:`xs` · `sm` · `md` · `lg` · `xl` · `2xl`(基准尺寸 `md` = 16px)
|
|
69
|
-
- **`ConfigProvider`** — 全局设置 `dir`、`locale`、`nonce` 及默认 `tooltip`
|
|
69
|
+
- **`ConfigProvider`** — 全局设置 `dir`、`locale`、`nonce` 及默认 `tooltip` 配置,应用于整个组件树,并支持 RTL 布局切换
|
|
70
70
|
- **`cn()`** — Tailwind 感知的类名合并工具(`clsx` + `tailwind-merge`),解决类名冲突
|
|
71
71
|
|
|
72
72
|
### 包导出
|
|
@@ -194,6 +194,7 @@ import { AccordionRoot, AccordionItem, AccordionTrigger, AccordionContent } from
|
|
|
194
194
|
## ✨ 特性
|
|
195
195
|
|
|
196
196
|
- **可访问性**:遵循 WAI-ARIA 模式,内置角色、焦点管理与键盘导航。
|
|
197
|
+
- **RTL 就绪**:通过 `ConfigProvider` 即可在已支持组件间切换 LTR / RTL 布局。
|
|
197
198
|
- **Headless 优先**:逻辑与样式完全分离—单独使用 `@soybeanjs/headless` 可构建任意设计系统。
|
|
198
199
|
- **类型安全**:严格 TypeScript 编写,所有 props、emits、slot 及 context 均有完整类型。
|
|
199
200
|
- **多级自定义**:通过 `ui` prop 覆盖单个橪位类名,也可替换整个样式层。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{accordionVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,mergeProps as s,normalizeProps as c,openBlock as l,renderList as u,renderSlot as d,toHandlers as f,unref as p,useSlots as m,withCtx as h}from"vue";import{AccordionCompact as g,provideAccordionUi as _}from"@soybeanjs/headless/accordion";import{useForwardListeners as v,useOmitProps as y}from"@soybeanjs/headless/composables";import{keysOf as b}from"@soybeanjs/utils";const x=a({name:`SAccordion`,__name:`accordion`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},items:{},itemProps:{},headerProps:{},triggerProps:{},contentProps:{},descriptionProps:{},collapsible:{type:Boolean},dir:{},disabled:{type:Boolean},orientation:{},unmountOnHide:{type:Boolean},modelValue:{},defaultValue:{},multiple:{},clearable:{type:Boolean},selectionBehavior:{}},emits:[`update:modelValue`],setup(a,{emit:x}){let S=a,C=x,w=m(),T=y(S,[`class`,`size`,`ui`]),E=v(C),D=n(()=>b(w).filter(e=>e!==`item`));return _(n(()=>e(t({size:S.size}),S.ui,{root:S.class}))),(e,t)=>(l(),r(p(g),s(p(T),f(p(E))),i({item:h(t=>[d(e.$slots,`item`,c(o(t)))]),_:2},[u(D.value,t=>({name:t,fn:h(n=>[d(e.$slots,t,c(o(n)))])}))]),1040))}});export{x as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{tv as e}from"tailwind-variants";const t=e({slots:{root:``,item:`border-b`,header:`flex`,content:[`overflow-hidden transition will-change-auto`,`data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up`],description:`m-0`,trigger:[`flex-1 flex items-center justify-start font-medium transition-all-200 bg-transparent`,`outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-primary/30`,`hover:underline [&[data-state=open]>.trigger-icon]:rotate-180`],triggerLeadingIcon:`shrink-0`,triggerIcon:`trigger-icon
|
|
1
|
+
import{tv as e}from"tailwind-variants";const t=e({slots:{root:``,item:`border-b`,header:`flex`,content:[`overflow-hidden transition will-change-auto`,`data-[state=open]:animate-accordion-down data-[state=closed]:animate-accordion-up`],description:`m-0`,trigger:[`flex-1 flex items-center justify-start font-medium transition-all-200 bg-transparent`,`outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-primary/30`,`hover:underline [&[data-state=open]>.trigger-icon]:rotate-180`],triggerLeadingIcon:`shrink-0`,triggerIcon:`trigger-icon ms-auto shrink-0 text-muted-foreground transition-transform-200`},variants:{size:{xs:{root:`text-2xs`,description:`pb-3`,trigger:`py-3 gap-2.5`},sm:{root:`text-xs`,description:`pb-3.5`,trigger:`py-3.5 gap-3`},md:{root:`text-sm`,description:`pb-4`,trigger:`py-4 gap-3.5`},lg:{root:`text-base`,description:`pb-4.5`,trigger:`py-4.5 gap-4`},xl:{root:`text-lg`,description:`pb-5`,trigger:`py-5 gap-4.5`},"2xl":{root:`text-2xl`,description:`pb-6`,trigger:`py-6 gap-5`}}},defaultVariants:{size:`md`}});export{t as accordionVariants};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{affixVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderSlot as l,toHandlers as u,unref as d,withCtx as f}from"vue";import{useForwardListeners as p,useOmitProps as m}from"@soybeanjs/headless/composables";import{AffixCompact as h,provideAffixUi as g}from"@soybeanjs/headless/affix";const _=i({name:`SAffix`,__name:`affix`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},placeholderProps:{},contentProps:{},offsetTop:{},offsetBottom:{},target:{type:[String,Function,null]}},emits:[`change`],setup(i,{emit:_}){let v=i,y=_,b=m(v,[`class`,`ui`]),x=p(y);return g(n(()=>e(t(),v.ui,{content:v.class}))),(e,t)=>(c(),r(d(h),o(d(b),u(d(x))),{default:f(t=>[l(e.$slots,`default`,s(a(t)))]),_:3},16))}});export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{alertVariants as n}from"./variants.js";import{buttonIconVariants as r}from"../button/variants.js";import{computed as i,createBlock as a,createSlots as o,defineComponent as s,mergeProps as c,openBlock as l,renderList as u,renderSlot as d,unref as f,useSlots as p,withCtx as m}from"vue";import{useOmitProps as h}from"@soybeanjs/headless/composables";import{keysOf as g}from"@soybeanjs/utils";import{AlertCompact as _,provideAlertUi as v}from"@soybeanjs/headless/alert";const y=s({name:`SAlert`,__name:`alert`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},color:{},variant:{},ui:{},title:{},description:{},icon:{},closable:{type:Boolean},contentProps:{},titleProps:{},descriptionProps:{},closeProps:{},open:{type:Boolean,default:void 0}},emits:[`update:open`,`close`],setup(s,{emit:y}){let b=s,x=y,S=p(),C=h(b,[`class`,`size`,`color`,`variant`,`ui`]),w=i(()=>g(S));return v(i(()=>e({...n({size:b.size,color:b.color,variant:b.variant}),$base:{close:r({size:t[b.size??`md`]})}},b.ui,{root:b.class}))),(e,t)=>(l(),a(f(_),c(f(C),{"onUpdate:open":t[0]||=e=>x(`update:open`,e)}),o({_:2},[u(w.value,t=>({name:t,fn:m(()=>[d(e.$slots,t)])}))]),1040))}});export{y as default};
|
|
@@ -4,8 +4,10 @@ import * as _$vue from "vue";
|
|
|
4
4
|
//#region src/components/alert/alert.vue.d.ts
|
|
5
5
|
type __VLS_Slots = AlertSlots;
|
|
6
6
|
declare const __VLS_base: _$vue.DefineComponent<AlertProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
|
|
7
|
+
close: (event: PointerEvent) => any;
|
|
7
8
|
"update:open": (open: boolean) => any;
|
|
8
9
|
}, string, _$vue.PublicProps, Readonly<AlertProps> & Readonly<{
|
|
10
|
+
onClose?: ((event: PointerEvent) => any) | undefined;
|
|
9
11
|
"onUpdate:open"?: ((open: boolean) => any) | undefined;
|
|
10
12
|
}>, {
|
|
11
13
|
open: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{tv as e}from"tailwind-variants";const t=e({slots:{root:`relative flex w-full rounded-lg border`,content:`flex-1 flex flex-col`,icon:`shrink-0`,title:`font-medium tracking-tight m-0`,description:`[&_p]:leading-relaxed m-0`,close:`absolute`},variants:{color:{primary:{root:`border-primary text-primary`,icon:`text-primary`},destructive:{root:`border-destructive text-destructive`,icon:`text-destructive`},success:{root:`border-success text-success`,icon:`text-success`},warning:{root:`border-warning text-warning`,icon:`text-warning`},info:{root:`border-info text-info`,icon:`text-info`},carbon:{root:`border-carbon text-carbon`,icon:`text-carbon`},secondary:{root:`border-secondary-foreground/50 text-secondary-foreground`,icon:`text-secondary-foreground`},accent:{root:`border-accent-foreground/50 text-accent-foreground`,icon:`text-accent-foreground`}},variant:{solid:{root:``},pure:{root:`bg-background text-foreground border-border`},outline:{root:`bg-background`},soft:{root:`border-transparent`},ghost:{root:``}},size:{xs:{root:`gap-2 px-2 py-1.75 text-2xs`,content:`gap-0.75`,title:`text-xs leading-3.125`,close:`top-1.25
|
|
1
|
+
import{tv as e}from"tailwind-variants";const t=e({slots:{root:`relative flex w-full rounded-lg border`,content:`flex-1 flex flex-col`,icon:`shrink-0`,title:`font-medium tracking-tight m-0`,description:`[&_p]:leading-relaxed m-0`,close:`absolute`},variants:{color:{primary:{root:`border-primary text-primary`,icon:`text-primary`},destructive:{root:`border-destructive text-destructive`,icon:`text-destructive`},success:{root:`border-success text-success`,icon:`text-success`},warning:{root:`border-warning text-warning`,icon:`text-warning`},info:{root:`border-info text-info`,icon:`text-info`},carbon:{root:`border-carbon text-carbon`,icon:`text-carbon`},secondary:{root:`border-secondary-foreground/50 text-secondary-foreground`,icon:`text-secondary-foreground`},accent:{root:`border-accent-foreground/50 text-accent-foreground`,icon:`text-accent-foreground`}},variant:{solid:{root:``},pure:{root:`bg-background text-foreground border-border`},outline:{root:`bg-background`},soft:{root:`border-transparent`},ghost:{root:``}},size:{xs:{root:`gap-2 px-2 py-1.75 text-2xs`,content:`gap-0.75`,title:`text-xs leading-3.125`,close:`top-1.25 end-1.25`},sm:{root:`gap-2.5 px-3 py-2.5 text-xs`,content:`gap-1`,title:`text-sm leading-3.75`,close:`top-1.875 end-1.875`},md:{root:`gap-3 px-4 py-3 text-sm`,content:`gap-1`,title:`text-base leading-4.375`,close:`top-2.25 end-2.25`},lg:{root:`gap-3.5 px-5 py-3.5 text-base`,content:`gap-1.25`,title:`text-lg leading-5`,close:`top-2.5 end-2.5`},xl:{root:`gap-4 px-6 py-4 text-lg`,content:`gap-1.5`,title:`text-xl leading-5.625`,close:`top-2.75 end-2.75`},"2xl":{root:`gap-4.5 px-7 py-4.5 text-xl`,content:`gap-2`,title:`text-2xl leading-6.25`,close:`top-3 end-3`}}},compoundVariants:[{color:`primary`,variant:`solid`,class:{root:`bg-primary text-primary-foreground`,icon:`text-primary-foreground`,close:`text-primary-foreground`}},{color:`destructive`,variant:`solid`,class:{root:`bg-destructive text-destructive-foreground`,icon:`text-destructive-foreground`,close:`text-destructive-foreground`}},{color:`success`,variant:`solid`,class:{root:`bg-success text-success-foreground`,icon:`text-success-foreground`,close:`text-success-foreground`}},{color:`warning`,variant:`solid`,class:{root:`bg-warning text-warning-foreground`,icon:`text-warning-foreground`,close:`text-warning-foreground`}},{color:`info`,variant:`solid`,class:{root:`bg-info text-info-foreground`,icon:`text-info-foreground`,close:`text-info-foreground`}},{color:`carbon`,variant:`solid`,class:{root:`bg-carbon text-carbon-foreground`,icon:`text-carbon-foreground`,close:`text-carbon-foreground`}},{color:`secondary`,variant:`solid`,class:{root:`bg-secondary text-secondary-foreground`,icon:`text-secondary-foreground`,close:`text-secondary-foreground`}},{color:`accent`,variant:`solid`,class:{root:`bg-accent text-accent-foreground`,icon:`text-accent-foreground`,close:`text-accent-foreground`}},{color:`primary`,variant:[`soft`,`ghost`],class:{root:`bg-primary/10`}},{color:`destructive`,variant:[`soft`,`ghost`],class:{root:`bg-destructive/10`}},{color:`success`,variant:[`soft`,`ghost`],class:{root:`bg-success/10`}},{color:`warning`,variant:[`soft`,`ghost`],class:{root:`bg-warning/10`}},{color:`info`,variant:[`soft`,`ghost`],class:{root:`bg-info/10`}},{color:`carbon`,variant:[`soft`,`ghost`],class:{root:`bg-carbon/10`}},{color:`secondary`,variant:[`soft`,`ghost`],class:{root:`bg-secondary-foreground/5`}},{color:`accent`,variant:[`soft`,`ghost`],class:{root:`bg-accent-foreground/5`}}],defaultVariants:{color:`primary`,variant:`ghost`,size:`md`}});export{t as alertVariants};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{anchorVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,toHandlers as s,unref as c}from"vue";import{useForwardListeners as l,useOmitProps as u}from"@soybeanjs/headless/composables";import{AnchorCompact as d,provideAnchorUi as f}from"@soybeanjs/headless/anchor";const p=i({name:`SAnchor`,__name:`anchor`,props:{color:{},size:{},ui:{},class:{type:[Boolean,null,String,Object,Array]},sticky:{type:Boolean,default:!0},items:{},linkProps:{},indicatorProps:{},titleProps:{},subProps:{},bounds:{},dir:{},getContainer:{},getCurrentAnchor:{},modelValue:{},offsetTop:{default:0},orientation:{},replace:{type:Boolean},targetOffset:{},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`activeChange`,`itemSelect`],setup(i,{emit:p}){let m=i,h=p,g=u(m,[`color`,`size`,`ui`,`class`,`sticky`]),_=l(h),v=n(()=>({"--soybean-anchor-offset-top":`${m.offsetTop}px`}));return f(n(()=>e(t({color:m.color,orientation:m.orientation,size:m.size,sticky:m.sticky}),m.ui,{root:m.class}))),(e,t)=>(o(),r(c(d),a(c(g),{items:i.items,style:v.value},s(c(_))),null,16,[`items`,`style`]))}});export{p as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{autocompleteVariants as t}from"./variants.js";import{computed as n,createBlock as r,createCommentVNode as i,createSlots as a,defineComponent as o,guardReactiveProps as s,mergeProps as c,normalizeProps as l,openBlock as u,renderList as d,renderSlot as f,toHandlers as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useForwardListeners as _,useOmitProps as v}from"@soybeanjs/headless/composables";import{keysOf as y}from"@soybeanjs/utils";import{AutocompleteCompact as b,provideAutocompleteUi as x}from"@soybeanjs/headless/autocomplete";const S=o({name:`SAutocomplete`,__name:`autocomplete`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},modelValue:{default:void 0},defaultValue:{},items:{},placeholder:{},clearable:{type:Boolean,default:!1},clearLabel:{default:`Clear input`},emptyLabel:{default:`No results found.`},fuseOptions:{},anchorProps:{},inputProps:{},triggerProps:{},portalProps:{},contentProps:{},viewportProps:{},groupProps:{},groupLabelProps:{},itemProps:{},itemIndicatorProps:{},separatorProps:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},dir:{},disabled:{type:Boolean},highlightOnHover:{type:Boolean},openOnFocus:{type:Boolean},openOnClick:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:open`,`highlight`,`select`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`size`,`ui`]),D=_(w),O=n(()=>y(T));return x(n(()=>e(t({size:C.size}),C.ui,{root:C.class}))),(e,t)=>(u(),r(m(b),c(m(E),{items:o.items},p(m(D))),a({_:2},[d(O.value,t=>({name:t,fn:g(n=>[i(` @vue-ignore ignore vue slot props type `),f(e.$slots,t,l(s(n)))])}))]),1040,[`items`]))}});export{S as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{tv as e}from"tailwind-variants";const t=e({slots:{root:`flex w-full flex-col`,anchor:[`group flex w-full items-center rounded-md border border-input bg-background text-foreground shadow-xs transition-all-150`,`outline-none focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],inputRoot:`flex min-w-0 grow items-center gap-2 bg-transparent`,inputControl:`min-w-0 grow border-0 bg-transparent px-0 outline-none placeholder:text-muted-foreground`,inputIcon:`shrink-0 text-muted-foreground`,inputClearable:[`flex shrink-0 items-center justify-center rounded-sm text-muted-foreground opacity-70 outline-none transition-opacity`,`hover:opacity-100 focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-offset-1`,`disabled:cursor-not-allowed disabled:opacity-40`],trigger:`flex shrink-0 items-center justify-center text-muted-foreground outline-none disabled:cursor-not-allowed`,triggerIcon:`size-1em`,popup:[`relative z-50 min-w-[--soybean-popper-anchor-width] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,`data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`],viewport:`max-h-80 overflow-y-auto overflow-x-hidden p-1`,empty:`py-6 text-center text-sm text-muted-foreground`,group:`overflow-hidden`,groupLabel:`px-2 py-1.5 text-xs font-medium text-muted-foreground`,item:[`relative flex w-full items-center rounded-sm outline-none select-none`,`data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`],itemIcon:`shrink-0 text-muted-foreground`,itemText:`grow truncate text-
|
|
1
|
+
import{tv as e}from"tailwind-variants";const t=e({slots:{root:`flex w-full flex-col`,anchor:[`group flex w-full items-center rounded-md border border-input bg-background text-foreground shadow-xs transition-all-150`,`outline-none focus-within:ring-3 focus-within:ring-offset-background focus-within:ring-primary/30`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],inputRoot:`flex min-w-0 grow items-center gap-2 bg-transparent`,inputControl:`min-w-0 grow border-0 bg-transparent px-0 outline-none placeholder:text-muted-foreground`,inputIcon:`shrink-0 text-muted-foreground`,inputClearable:[`flex shrink-0 items-center justify-center rounded-sm text-muted-foreground opacity-70 outline-none transition-opacity`,`hover:opacity-100 focus-visible:ring-2 focus-visible:ring-ring/50 focus-visible:ring-offset-1`,`disabled:cursor-not-allowed disabled:opacity-40`],trigger:`flex shrink-0 items-center justify-center text-muted-foreground outline-none disabled:cursor-not-allowed`,triggerIcon:`size-1em`,popup:[`relative z-50 min-w-[--soybean-popper-anchor-width] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md`,`data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,`data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95`,`data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2`],viewport:`max-h-80 overflow-y-auto overflow-x-hidden p-1`,empty:`py-6 text-center text-sm text-muted-foreground`,group:`overflow-hidden`,groupLabel:`px-2 py-1.5 text-xs font-medium text-muted-foreground`,item:[`relative flex w-full items-center rounded-sm outline-none select-none`,`data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`],itemIcon:`shrink-0 text-muted-foreground`,itemText:`grow truncate text-start`,itemIndicator:`ms-auto shrink-0 text-muted-foreground`,separator:`-mx-1 my-1 h-px bg-border`},variants:{size:{xs:{anchor:`min-h-6 gap-1 px-1.5 text-2xs`,inputRoot:`gap-1`,popup:`text-2xs`,viewport:`max-h-70 p-0.75`,groupLabel:`px-1 py-1 text-3xs`,item:`gap-1 px-1 py-1`,separator:`-mx-0.75 my-0.75`},sm:{anchor:`min-h-7 gap-1.5 px-2 text-xs`,inputRoot:`gap-1.5`,popup:`text-xs`,viewport:`max-h-75 p-0.875`,groupLabel:`px-1.5 py-1.25 text-2xs`,item:`gap-1.5 px-1.5 py-1.25`,separator:`-mx-0.875 my-0.875`},md:{anchor:`min-h-8 gap-2 px-2.5 text-sm`,inputRoot:`gap-2`,popup:`text-sm`,viewport:`max-h-80 p-1`,groupLabel:`px-2 py-1.5 text-xs`,item:`gap-2 px-2 py-1.5`,separator:`-mx-1 my-1`},lg:{anchor:`min-h-9 gap-2.5 px-3 text-base`,inputRoot:`gap-2.5`,popup:`text-base`,viewport:`max-h-90 p-1.25`,groupLabel:`px-2.5 py-1.75 text-sm`,item:`gap-2.5 px-2.5 py-1.75`,separator:`-mx-1.25 my-1.25`},xl:{anchor:`min-h-10 gap-3 px-3.5 text-lg`,inputRoot:`gap-3`,popup:`text-lg`,viewport:`max-h-100 p-1.5`,groupLabel:`px-3 py-2 text-base`,item:`gap-3 px-3 py-2`,separator:`-mx-1.5 my-1.5`},"2xl":{anchor:`min-h-12 gap-3.5 px-4 text-xl`,inputRoot:`gap-3.5`,popup:`text-xl`,viewport:`max-h-115 p-1.75`,groupLabel:`px-3.5 py-2.5 text-lg`,item:`gap-3.5 px-3.5 py-2.5`,separator:`-mx-1.75 my-1.75`}}},defaultVariants:{size:`md`}});export{t as autocompleteVariants};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{avatarVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,mergeProps as o,openBlock as s,renderList as c,renderSlot as l,unref as u,useSlots as d,withCtx as f}from"vue";import{useOmitProps as p}from"@soybeanjs/headless/composables";import{keysOf as m}from"@soybeanjs/utils";import{AvatarCompact as h,provideAvatarUi as g}from"@soybeanjs/headless/avatar";const _=a({name:`SAvatar`,__name:`avatar`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},src:{},delayMs:{},fallbackLabel:{},imageProps:{},fallbackProps:{}},emits:[`loadingStatusChange`],setup(a,{emit:_}){let v=a,y=_,b=d(),x=p(v,[`class`,`size`,`ui`]),S=n(()=>m(b));return g(n(()=>e(t({size:v.size}),v.ui,{root:v.class}))),(e,t)=>(s(),r(u(h),o(u(x),{onLoadingStatusChange:t[0]||=e=>y(`loadingStatusChange`,e)}),i({_:2},[c(S.value,t=>({name:t,fn:f(()=>[l(e.$slots,t)])}))]),1040))}});export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import{buttonVariants as t}from"../button/variants.js";import n from"../icon/icon.js";import{backtopVariants as r}from"./variants.js";import{computed as i,createBlock as a,createVNode as o,defineComponent as s,mergeProps as c,openBlock as l,renderSlot as u,toHandlers as d,unref as f,withCtx as p}from"vue";import{useForwardListeners as m,useOmitProps as h}from"@soybeanjs/headless/composables";import{Backtop as g}from"@soybeanjs/headless/backtop";const _=s({name:`SBacktop`,__name:`backtop`,props:{class:{type:[Boolean,null,String,Object,Array]},color:{default:`primary`},size:{default:`lg`},variant:{default:`solid`},shape:{default:`circle`},shadow:{default:`lg`},fitContent:{type:Boolean,default:!0},icon:{default:`lucide:arrow-up`},iconClass:{type:[Boolean,null,String,Object,Array]},iconProps:{},visibilityHeight:{},target:{},duration:{}},emits:[`change`,`click`],setup(s,{emit:_}){let v=s,y=_,b=h(v,[`class`,`color`,`size`,`variant`,`shape`,`shadow`,`fitContent`,`icon`,`iconClass`,`iconProps`]),x=m(y),S=i(()=>{let n=r({size:v.size});return e(t({color:v.color,size:v.size,variant:v.variant,shape:v.shape,shadow:v.shadow,fitContent:v.fitContent}),n,v.class)});return(e,t)=>(l(),a(f(g),c(f(b),{class:S.value},d(f(x))),{default:p(()=>[u(e.$slots,`default`,{},()=>[o(n,c(s.iconProps,{icon:s.icon,class:s.iconClass}),null,16,[`icon`,`class`])])]),_:3},16,[`class`]))}});export{_ as default};
|
|
1
|
+
import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import{buttonVariants as t}from"../button/variants.js";import n from"../icon/icon.js";import{backtopVariants as r}from"./variants.js";import{computed as i,createBlock as a,createVNode as o,defineComponent as s,mergeProps as c,openBlock as l,renderSlot as u,toHandlers as d,unref as f,withCtx as p}from"vue";import{useForwardListeners as m,useOmitProps as h}from"@soybeanjs/headless/composables";import{Backtop as g}from"@soybeanjs/headless/backtop";const _=s({name:`SBacktop`,__name:`backtop`,props:{class:{type:[Boolean,null,String,Object,Array]},color:{default:`primary`},size:{default:`lg`},variant:{default:`solid`},shape:{default:`circle`},shadow:{default:`lg`},fitContent:{type:Boolean,default:!0},icon:{default:`lucide:arrow-up`},iconClass:{type:[Boolean,null,String,Object,Array]},iconProps:{},visibilityHeight:{},target:{},duration:{},type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`change`,`click`],setup(s,{emit:_}){let v=s,y=_,b=h(v,[`class`,`color`,`size`,`variant`,`shape`,`shadow`,`fitContent`,`icon`,`iconClass`,`iconProps`]),x=m(y),S=i(()=>{let n=r({size:v.size});return e(t({color:v.color,size:v.size,variant:v.variant,shape:v.shape,shadow:v.shadow,fitContent:v.fitContent}),n,v.class)});return(e,t)=>(l(),a(f(g),c(f(b),{class:S.value},d(f(x))),{default:p(()=>[u(e.$slots,`default`,{},()=>[o(n,c(s.iconProps,{icon:s.icon,class:s.iconClass}),null,16,[`icon`,`class`])])]),_:3},16,[`class`]))}});export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{badgeVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,mergeProps as o,openBlock as s,renderList as c,renderSlot as l,unref as u,useSlots as d,withCtx as f}from"vue";import{useOmitProps as p}from"@soybeanjs/headless/composables";import{keysOf as m}from"@soybeanjs/utils";import{BadgeCompact as h,provideBadgeUi as g}from"@soybeanjs/headless/badge";const _=a({name:`SBadge`,__name:`badge`,props:{class:{type:[Boolean,null,String,Object,Array]},color:{},size:{},ui:{},position:{},content:{},contentProps:{},open:{type:Boolean,default:void 0}},emits:[`update:open`],setup(a,{emit:_}){let v=a,y=_,b=d(),x=p(v,[`class`,`color`,`size`,`ui`,`position`]),S=n(()=>m(b));return g(n(()=>e(t({color:v.color,size:v.size,position:v.position}),v.ui,{root:v.class}))),(e,t)=>(s(),r(u(h),o(u(x),{"onUpdate:open":t[0]||=e=>y(`update:open`,e)}),i({_:2},[c(S.value,t=>({name:t,fn:f(()=>[l(e.$slots,t)])}))]),1040))}});export{_ as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n,buttonVariants as r}from"../button/variants.js";import{dialogVariants as i}from"../dialog/variants.js";import{drawerVariants as a}from"../drawer/variants.js";import{bottomSheetVariants as o}from"./variants.js";import{computed as s,createBlock as c,createSlots as l,defineComponent as u,guardReactiveProps as d,mergeProps as f,normalizeProps as p,openBlock as m,renderList as h,renderSlot as g,toHandlers as _,unref as v,useSlots as y,withCtx as b}from"vue";import{useForwardListeners as x,useOmitProps as S}from"@soybeanjs/headless/composables";import{keysOf as C}from"@soybeanjs/utils";import{BottomSheetCompact as w,provideBottomSheetUi as T}from"@soybeanjs/headless/bottom-sheet";const E=u({name:`SBottomSheet`,__name:`bottom-sheet`,props:{title:{},description:{},icon:{},showClose:{type:Boolean,default:!0},pure:{type:Boolean},showCancel:{type:[String,Boolean]},cancelText:{},showConfirm:{type:Boolean,default:!0},confirmText:{},triggerProps:{},overlayProps:{},portalProps:{},popupProps:{},headerProps:{},contentProps:{},footerProps:{},titleProps:{},descriptionProps:{},closeProps:{},cancelProps:{},confirmProps:{},dir:{},isAlert:{type:Boolean},alertType:{},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean},modal:{type:Boolean,default:!0},activeSnapPoint:{},closeThreshold:{},shouldScaleBackground:{type:Boolean,default:!0},setBackgroundColorOnScale:{type:Boolean,default:!0},scrollLockTimeout:{},fixed:{type:Boolean},dismissible:{type:Boolean,default:!0},nested:{type:Boolean},direction:{},noBodyStyles:{type:Boolean},handleOnly:{type:Boolean},preventScrollRestoration:{type:Boolean},snapPoints:{},fadeFromIndex:{},handleProps:{},class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{}},emits:[`update:open`,`click`,`escapeKeyDown`,`pointerDownOutside`,`focusOutside`,`interactOutside`,`openAutoFocus`,`closeAutoFocus`,`confirm`,`cancel`,`drag`,`release`,`close`,`update:activeSnapPoint`],setup(u,{emit:E}){let D=u,O=E,k=y(),A=S(D,[`class`,`size`,`ui`]),j=x(O),M=s(()=>C(k));return T(s(()=>e(Object.assign(o({size:D.size}),i({size:D.size,pure:D.pure}),a({size:D.size,side:`bottom`}),{$base:{cancel:r({variant:`pure`,size:t[D.size??`md`]}),confirm:r({variant:`solid`,size:t[D.size??`md`]}),close:n({size:t[D.size??`md`]})}}),D.ui,{popup:D.class}))),(e,t)=>(m(),c(v(w),f(v(A),_(v(j))),l({_:2},[h(M.value,t=>({name:t,fn:b(n=>[g(e.$slots,t,p(d(n)))])}))]),1040))}});export{E as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{breadcrumbVariants as t}from"./variants.js";import{computed as n,createBlock as r,createCommentVNode as i,createSlots as a,defineComponent as o,guardReactiveProps as s,mergeProps as c,normalizeProps as l,openBlock as u,renderList as d,renderSlot as f,toHandlers as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useForwardListeners as _,useOmitProps as v}from"@soybeanjs/headless/composables";import{keysOf as y}from"@soybeanjs/utils";import{BreadcrumbCompact as b,provideBreadcrumbUi as x}from"@soybeanjs/headless/breadcrumb";const S=o({name:`SBreadcrumb`,__name:`breadcrumb`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},items:{},ellipsis:{type:[Boolean,Array,null]},listProps:{},itemProps:{},linkProps:{},pageProps:{},separatorProps:{},ellipsisProps:{}},emits:[`click`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`size`,`ui`]),D=_(w),O=n(()=>y(T));return x(n(()=>e(t({size:C.size}),C.ui,{root:C.class}))),(e,t)=>(u(),r(m(b),c(m(E),p(m(D))),a({_:2},[d(O.value,t=>({name:t,fn:g(n=>[i(` @vue-ignore ignore vue slot props type `),f(e.$slots,t,l(s(n)))])}))]),1040))}});export{S as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import{buttonGroupVariants as t}from"./variants.js";import{useConfigProvider as n}from"../config-provider/context.js";import
|
|
1
|
+
import{cn as e}from"../../theme/merge.js";import"../../theme/index.js";import{buttonGroupVariants as t}from"./variants.js";import{useConfigProvider as n}from"../config-provider/context.js";import{provideButtonGroupContext as r}from"./context.js";import{computed as i,createBlock as a,defineComponent as o,mergeProps as s,openBlock as c,renderSlot as l,unref as u,withCtx as d}from"vue";import{useOmitProps as f}from"@soybeanjs/headless/composables";import{Primitive as p}from"@soybeanjs/headless/primitive";import{transformPropsToContext as m}from"@soybeanjs/headless/shared";const h=o({name:`SButtonGroup`,__name:`button-group`,props:{orientation:{default:`horizontal`},dir:{},class:{type:[Boolean,null,String,Object,Array]},color:{},size:{},variant:{},shape:{},shadow:{},fitContent:{type:Boolean},type:{},disabled:{type:Boolean},asChild:{type:Boolean},as:{}},setup(o){let h=o,g=f(h,[`class`,`orientation`,`color`,`size`,`variant`,`shape`,`shadow`,`disabled`]),_=n(`ButtonGroup`),v=i(()=>e(t({orientation:h.orientation}),h.class)),y=i(()=>h.dir??_.dir.value);return r(m(h,[`color`,`size`,`variant`,`shape`,`shadow`,`fitContent`,`disabled`])),(e,t)=>(c(),a(u(p),s(u(g),{class:v.value,dir:y.value}),{default:d(()=>[l(e.$slots,`default`)]),_:3},16,[`class`,`dir`]))}});export{h as default};
|
|
@@ -8,7 +8,6 @@ type __VLS_Slots = {} & {
|
|
|
8
8
|
default?: (props: typeof __VLS_8) => any;
|
|
9
9
|
};
|
|
10
10
|
declare const __VLS_base: _$vue.DefineComponent<ButtonGroupProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<ButtonGroupProps> & Readonly<{}>, {
|
|
11
|
-
dir: _$_soybeanjs_headless0.Direction;
|
|
12
11
|
orientation: _$_soybeanjs_headless0.DataOrientation;
|
|
13
12
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
14
13
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -3,7 +3,7 @@ import { IconProps } from "../icon/types.js";
|
|
|
3
3
|
import { LinkProps } from "../link/types.js";
|
|
4
4
|
import { ButtonShadow, ButtonShape, ButtonVariant } from "./variants.js";
|
|
5
5
|
import { ButtonEmits, ButtonProps } from "@soybeanjs/headless/button";
|
|
6
|
-
import { Align, ClassValue, DataOrientation, Direction
|
|
6
|
+
import { Align, ClassValue, DataOrientation, Direction } from "@soybeanjs/headless/types";
|
|
7
7
|
|
|
8
8
|
//#region src/components/button/types.d.ts
|
|
9
9
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{tv as e}from"tailwind-variants";const t=e({base:[`inline-flex items-center justify-center font-medium transition-all-150`,`outline-none focus-visible:ring-3 focus-visible:ring-offset-background`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],variants:{color:{primary:`focus-visible:ring-primary/30`,destructive:`focus-visible:ring-destructive/30`,success:`focus-visible:ring-success/30`,warning:`focus-visible:ring-warning/30`,info:`focus-visible:ring-info/30`,carbon:`focus-visible:ring-carbon/30`,secondary:`focus-visible:ring-secondary-foreground/20`,accent:`focus-visible:ring-accent-foreground/20`},variant:{solid:`bg-primary text-primary-foreground hover:bg-primary/80 active:bg-primary-600`,pure:`border border-border bg-background text-accent-foreground hover:bg-accent/60 active:bg-accent`,plain:`border border-border bg-background text-foreground`,outline:`border bg-background`,dashed:`border border-dashed bg-background`,soft:`bg-primary/10 hover:bg-primary/10 active:bg-primary/20`,ghost:`bg-transparent`,link:`bg-transparent underline-offset-4 hover:underline`},size:{xs:`gap-1 text-2xs`,sm:`gap-2 text-xs`,md:`gap-3 text-sm`,lg:`gap-4 text-base`,xl:`gap-5 text-lg`,"2xl":`gap-6 text-xl`},shape:{auto:`rounded-md`,rounded:`rounded-full`,square:`h-8 w-8 p-0 gap-0 rounded-md`,circle:`h-8 w-8 p-0 gap-0 rounded-full`},shadow:{none:`shadow-none`,sm:`shadow-sm`,md:`shadow-md`,lg:`shadow-lg`},fitContent:{true:`w-fit h-fit`,false:``}},compoundVariants:[{color:`destructive`,variant:`solid`,class:`bg-destructive text-destructive-foreground hover:bg-destructive/80 active:bg-destructive-600`},{color:`success`,variant:`solid`,class:`bg-success text-success-foreground hover:bg-success/80 active:bg-success-600`},{color:`warning`,variant:`solid`,class:`bg-warning text-warning-foreground hover:bg-warning/80 active:bg-warning-600`},{color:`info`,variant:`solid`,class:`bg-info text-info-foreground hover:bg-info/80 active:bg-info-600`},{color:`carbon`,variant:`solid`,class:`bg-carbon text-carbon-foreground hover:bg-carbon/80 active:bg-carbon-600`},{color:`secondary`,variant:`solid`,class:`bg-secondary text-secondary-foreground hover:bg-secondary/80 active:bg-secondary-foreground/20`},{color:`accent`,variant:`solid`,class:`bg-accent text-accent-foreground hover:bg-accent/80 active:bg-accent-foreground/20`},{color:`primary`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-primary`},{color:`destructive`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-destructive`},{color:`success`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-success`},{color:`warning`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-warning`},{color:`info`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-info`},{color:`carbon`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-carbon`},{color:`secondary`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-secondary-foreground`},{color:`accent`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-accent-foreground`},{color:`primary`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-primary/10 active:bg-primary/20`},{color:`destructive`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-destructive/10 active:bg-destructive/20`},{color:`success`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-success/10 active:bg-success/20`},{color:`warning`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-warning/10 active:bg-warning/20`},{color:`info`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-info/10 active:bg-info/20`},{color:`carbon`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-carbon/10 active:bg-carbon/20`},{color:`secondary`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-secondary-foreground/10 active:bg-secondary-foreground/20`},{color:`accent`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-accent-foreground/10 active:bg-accent-foreground/20`},{color:`primary`,variant:`plain`,class:`hover:border-primary hover:text-primary`},{color:`destructive`,variant:`plain`,class:`hover:border-destructive hover:text-destructive`},{color:`success`,variant:`plain`,class:`hover:border-success hover:text-success`},{color:`warning`,variant:`plain`,class:`hover:border-warning hover:text-warning`},{color:`info`,variant:`plain`,class:`hover:border-info hover:text-info`},{color:`carbon`,variant:`plain`,class:`hover:border-carbon hover:text-carbon`},{color:`secondary`,variant:`plain`,class:`hover:border-secondary-foreground hover:text-secondary-foreground`},{color:`accent`,variant:`plain`,class:`hover:border-accent-foreground hover:text-accent-foreground`},{color:`primary`,variant:[`outline`,`dashed`],class:`border-primary`},{color:`destructive`,variant:[`outline`,`dashed`],class:`border-destructive`},{color:`success`,variant:[`outline`,`dashed`],class:`border-success`},{color:`warning`,variant:[`outline`,`dashed`],class:`border-warning`},{color:`info`,variant:[`outline`,`dashed`],class:`border-info`},{color:`carbon`,variant:[`outline`,`dashed`],class:`border-carbon`},{color:`secondary`,variant:[`outline`,`dashed`],class:`border-secondary-foreground`},{color:`accent`,variant:[`outline`,`dashed`],class:`border-accent-foreground`},{color:`destructive`,variant:`soft`,class:`bg-destructive/10 hover:bg-destructive/10 active:bg-destructive/20`},{color:`success`,variant:`soft`,class:`bg-success/10 hover:bg-success/10 active:bg-success/20`},{color:`warning`,variant:`soft`,class:`bg-warning/10 hover:bg-warning/10 active:bg-warning/20`},{color:`info`,variant:`soft`,class:`bg-info/10 hover:bg-info/10 active:bg-info/20`},{color:`carbon`,variant:`soft`,class:`bg-carbon/10 hover:bg-carbon/10 active:bg-carbon/20`},{color:`secondary`,variant:`soft`,class:`bg-secondary-foreground/10 hover:bg-secondary-foreground/10 active:bg-secondary-foreground/20`},{color:`accent`,variant:`soft`,class:`bg-accent-foreground/10 hover:bg-accent-foreground/10 active:bg-accent-foreground/20`},{size:`xs`,fitContent:!0,class:`p-0.75`},{size:`sm`,fitContent:!0,class:`p-0.875`},{size:`md`,fitContent:!0,class:`p-1`},{size:`lg`,fitContent:!0,class:`p-1.25`},{size:`xl`,fitContent:!0,class:`p-1.5`},{size:`2xl`,fitContent:!0,class:`p-1.75`},{size:`xs`,fitContent:!1,class:`h-6 px-1.5`},{size:`sm`,fitContent:!1,class:`h-7 px-2`},{size:`md`,fitContent:!1,class:`h-8 px-4`},{size:`lg`,fitContent:!1,class:`h-9 px-6`},{size:`xl`,fitContent:!1,class:`h-10 px-8`},{size:`2xl`,fitContent:!1,class:`h-12 px-10`},{size:`xs`,fitContent:!1,shape:[`square`,`circle`],class:`w-6`},{size:`sm`,fitContent:!1,shape:[`square`,`circle`],class:`w-7`},{size:`lg`,fitContent:!1,shape:[`square`,`circle`],class:`w-9`},{size:`xl`,fitContent:!1,shape:[`square`,`circle`],class:`w-10`},{size:`2xl`,fitContent:!1,shape:[`square`,`circle`],class:`w-12`},{variant:[`ghost`,`link`],shadow:[`sm`,`md`,`lg`],class:`shadow-none`},{variant:`plain`,shadow:`sm`,class:`active:shadow-md`},{variant:`plain`,shadow:`md`,class:`active:shadow-lg`},{variant:`plain`,shadow:`lg`,class:`active:shadow-xl`},{variant:`pure`,shadow:`sm`,class:`active:shadow-sm`},{variant:`pure`,shadow:`md`,class:`active:shadow-md`},{variant:`pure`,shadow:`lg`,class:`active:shadow-lg`}],defaultVariants:{color:`primary`,variant:`solid`,size:`md`,shape:`auto`,shadow:`sm`,fitContent:!1}}),n=e({base:`[&>*]:relative focus-visible:[&>*]:z-2 not-first:not-last:[&>*]:
|
|
1
|
+
import{tv as e}from"tailwind-variants";const t=e({base:[`inline-flex items-center justify-center font-medium transition-all-150`,`outline-none focus-visible:ring-3 focus-visible:ring-offset-background`,`data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50`],variants:{color:{primary:`focus-visible:ring-primary/30`,destructive:`focus-visible:ring-destructive/30`,success:`focus-visible:ring-success/30`,warning:`focus-visible:ring-warning/30`,info:`focus-visible:ring-info/30`,carbon:`focus-visible:ring-carbon/30`,secondary:`focus-visible:ring-secondary-foreground/20`,accent:`focus-visible:ring-accent-foreground/20`},variant:{solid:`bg-primary text-primary-foreground hover:bg-primary/80 active:bg-primary-600`,pure:`border border-border bg-background text-accent-foreground hover:bg-accent/60 active:bg-accent`,plain:`border border-border bg-background text-foreground`,outline:`border bg-background`,dashed:`border border-dashed bg-background`,soft:`bg-primary/10 hover:bg-primary/10 active:bg-primary/20`,ghost:`bg-transparent`,link:`bg-transparent underline-offset-4 hover:underline`},size:{xs:`gap-1 text-2xs`,sm:`gap-2 text-xs`,md:`gap-3 text-sm`,lg:`gap-4 text-base`,xl:`gap-5 text-lg`,"2xl":`gap-6 text-xl`},shape:{auto:`rounded-md`,rounded:`rounded-full`,square:`h-8 w-8 p-0 gap-0 rounded-md`,circle:`h-8 w-8 p-0 gap-0 rounded-full`},shadow:{none:`shadow-none`,sm:`shadow-sm`,md:`shadow-md`,lg:`shadow-lg`},fitContent:{true:`w-fit h-fit`,false:``}},compoundVariants:[{color:`destructive`,variant:`solid`,class:`bg-destructive text-destructive-foreground hover:bg-destructive/80 active:bg-destructive-600`},{color:`success`,variant:`solid`,class:`bg-success text-success-foreground hover:bg-success/80 active:bg-success-600`},{color:`warning`,variant:`solid`,class:`bg-warning text-warning-foreground hover:bg-warning/80 active:bg-warning-600`},{color:`info`,variant:`solid`,class:`bg-info text-info-foreground hover:bg-info/80 active:bg-info-600`},{color:`carbon`,variant:`solid`,class:`bg-carbon text-carbon-foreground hover:bg-carbon/80 active:bg-carbon-600`},{color:`secondary`,variant:`solid`,class:`bg-secondary text-secondary-foreground hover:bg-secondary/80 active:bg-secondary-foreground/20`},{color:`accent`,variant:`solid`,class:`bg-accent text-accent-foreground hover:bg-accent/80 active:bg-accent-foreground/20`},{color:`primary`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-primary`},{color:`destructive`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-destructive`},{color:`success`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-success`},{color:`warning`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-warning`},{color:`info`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-info`},{color:`carbon`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-carbon`},{color:`secondary`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-secondary-foreground`},{color:`accent`,variant:[`outline`,`dashed`,`soft`,`ghost`,`link`],class:`text-accent-foreground`},{color:`primary`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-primary/10 active:bg-primary/20`},{color:`destructive`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-destructive/10 active:bg-destructive/20`},{color:`success`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-success/10 active:bg-success/20`},{color:`warning`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-warning/10 active:bg-warning/20`},{color:`info`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-info/10 active:bg-info/20`},{color:`carbon`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-carbon/10 active:bg-carbon/20`},{color:`secondary`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-secondary-foreground/10 active:bg-secondary-foreground/20`},{color:`accent`,variant:[`outline`,`dashed`,`ghost`],class:`hover:bg-accent-foreground/10 active:bg-accent-foreground/20`},{color:`primary`,variant:`plain`,class:`hover:border-primary hover:text-primary`},{color:`destructive`,variant:`plain`,class:`hover:border-destructive hover:text-destructive`},{color:`success`,variant:`plain`,class:`hover:border-success hover:text-success`},{color:`warning`,variant:`plain`,class:`hover:border-warning hover:text-warning`},{color:`info`,variant:`plain`,class:`hover:border-info hover:text-info`},{color:`carbon`,variant:`plain`,class:`hover:border-carbon hover:text-carbon`},{color:`secondary`,variant:`plain`,class:`hover:border-secondary-foreground hover:text-secondary-foreground`},{color:`accent`,variant:`plain`,class:`hover:border-accent-foreground hover:text-accent-foreground`},{color:`primary`,variant:[`outline`,`dashed`],class:`border-primary`},{color:`destructive`,variant:[`outline`,`dashed`],class:`border-destructive`},{color:`success`,variant:[`outline`,`dashed`],class:`border-success`},{color:`warning`,variant:[`outline`,`dashed`],class:`border-warning`},{color:`info`,variant:[`outline`,`dashed`],class:`border-info`},{color:`carbon`,variant:[`outline`,`dashed`],class:`border-carbon`},{color:`secondary`,variant:[`outline`,`dashed`],class:`border-secondary-foreground`},{color:`accent`,variant:[`outline`,`dashed`],class:`border-accent-foreground`},{color:`destructive`,variant:`soft`,class:`bg-destructive/10 hover:bg-destructive/10 active:bg-destructive/20`},{color:`success`,variant:`soft`,class:`bg-success/10 hover:bg-success/10 active:bg-success/20`},{color:`warning`,variant:`soft`,class:`bg-warning/10 hover:bg-warning/10 active:bg-warning/20`},{color:`info`,variant:`soft`,class:`bg-info/10 hover:bg-info/10 active:bg-info/20`},{color:`carbon`,variant:`soft`,class:`bg-carbon/10 hover:bg-carbon/10 active:bg-carbon/20`},{color:`secondary`,variant:`soft`,class:`bg-secondary-foreground/10 hover:bg-secondary-foreground/10 active:bg-secondary-foreground/20`},{color:`accent`,variant:`soft`,class:`bg-accent-foreground/10 hover:bg-accent-foreground/10 active:bg-accent-foreground/20`},{size:`xs`,fitContent:!0,class:`p-0.75`},{size:`sm`,fitContent:!0,class:`p-0.875`},{size:`md`,fitContent:!0,class:`p-1`},{size:`lg`,fitContent:!0,class:`p-1.25`},{size:`xl`,fitContent:!0,class:`p-1.5`},{size:`2xl`,fitContent:!0,class:`p-1.75`},{size:`xs`,fitContent:!1,class:`h-6 px-1.5`},{size:`sm`,fitContent:!1,class:`h-7 px-2`},{size:`md`,fitContent:!1,class:`h-8 px-4`},{size:`lg`,fitContent:!1,class:`h-9 px-6`},{size:`xl`,fitContent:!1,class:`h-10 px-8`},{size:`2xl`,fitContent:!1,class:`h-12 px-10`},{size:`xs`,fitContent:!1,shape:[`square`,`circle`],class:`w-6`},{size:`sm`,fitContent:!1,shape:[`square`,`circle`],class:`w-7`},{size:`lg`,fitContent:!1,shape:[`square`,`circle`],class:`w-9`},{size:`xl`,fitContent:!1,shape:[`square`,`circle`],class:`w-10`},{size:`2xl`,fitContent:!1,shape:[`square`,`circle`],class:`w-12`},{variant:[`ghost`,`link`],shadow:[`sm`,`md`,`lg`],class:`shadow-none`},{variant:`plain`,shadow:`sm`,class:`active:shadow-md`},{variant:`plain`,shadow:`md`,class:`active:shadow-lg`},{variant:`plain`,shadow:`lg`,class:`active:shadow-xl`},{variant:`pure`,shadow:`sm`,class:`active:shadow-sm`},{variant:`pure`,shadow:`md`,class:`active:shadow-md`},{variant:`pure`,shadow:`lg`,class:`active:shadow-lg`}],defaultVariants:{color:`primary`,variant:`solid`,size:`md`,shape:`auto`,shadow:`sm`,fitContent:!1}}),n=e({base:`[&>*]:relative focus-visible:[&>*]:z-2 not-first:not-last:[&>*]:rounded-0`,variants:{orientation:{horizontal:`inline-flex not-last:[&>*]:border-e-0 focus-visible:[&>*]:border-e first:[&>*]:rounded-e-0 last:[&>*]:rounded-s-0`,vertical:`flex flex-col not-last:[&>*]:border-b-0 focus-visible:[&>*]:border-b first:[&>*]:rounded-b-0 last:[&>*]:rounded-t-0`}},defaultVariants:{orientation:`horizontal`}}),r=e=>t({size:`md`,color:`accent`,variant:`ghost`,shape:`square`,fitContent:!0,...e});export{n as buttonGroupVariants,r as buttonIconVariants,t as buttonVariants};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonIconVariants as n}from"../button/variants.js";import r from"../icon/icon.js";import i from"../select/select.js";import{calendarVariants as a}from"./variants.js";import{computed as o,createBlock as s,createSlots as c,createTextVNode as l,createVNode as u,defineComponent as d,guardReactiveProps as f,mergeProps as p,normalizeProps as m,openBlock as h,renderSlot as g,toDisplayString as _,toHandlers as v,unref as y,withCtx as b}from"vue";import{useForwardListeners as x,useOmitProps as S}from"@soybeanjs/headless/composables";import{useLocaleMessages as C}from"@soybeanjs/headless";import{CalendarCompact as w,provideCalendarUi as T}from"@soybeanjs/headless/calendar";const E=d({name:`SCalendar`,__name:`calendar`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},headerProps:{},headingProps:{},prevProps:{},nextProps:{},gridProps:{},gridHeadProps:{},gridBodyProps:{},gridRowProps:{},headCellProps:{},cellProps:{},cellTriggerProps:{},dir:{},locale:{},modelValue:{},defaultValue:{},multiple:{},placeholder:{},defaultPlaceholder:{},disabled:{type:Boolean},readonly:{type:Boolean},pagedNavigation:{type:Boolean},preventDeselect:{type:Boolean},weekStartsOn:{},weekdayFormat:{},calendarLabel:{},fixedWeeks:{type:Boolean},maxValue:{},minValue:{},numberOfMonths:{},initialFocus:{type:Boolean},isDateDisabled:{type:Function},isDateUnavailable:{type:Function},nextPage:{type:Function},prevPage:{type:Function},disableDaysOutsideCurrentView:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:placeholder`],setup(d,{emit:E}){let D=d,O=E,k=S(D,[`class`,`size`,`ui`]),A=x(O),j=C(),M=o(()=>({"aria-label":j.value.calendar.selectMonth})),N=o(()=>({"aria-label":j.value.calendar.selectYear})),P=o(()=>{let r=t[D.size||`md`];return e(Object.assign(a({size:D.size}),{$base:{prev:n({size:r,variant:`pure`}),next:n({size:r,variant:`pure`})}}),D.ui,{root:D.class})}),F=o(()=>t[D.size||`md`]);return T(P),(e,t)=>(h(),s(y(w),p(y(k),v(y(A))),c({prev:b(t=>[g(e.$slots,`prev`,m(f(t)),()=>[u(r,{icon:`lucide:chevron-left`})])]),next:b(t=>[g(e.$slots,`next`,m(f(t)),()=>[u(r,{icon:`lucide:chevron-right`})])]),"head-cell":b(t=>[g(e.$slots,`head-cell`,m(f(t)),()=>[l(_(t.label),1)])]),day:b(t=>[g(e.$slots,`day`,m(f(t)),()=>[l(_(t.dayValue),1)])]),default:b(t=>[g(e.$slots,`default`,m(f(t)))]),_:2},[e.$slots.heading?{name:`heading`,fn:b(t=>[g(e.$slots,`heading`,m(f(t)))]),key:`0`}:{name:`heading`,fn:b(({monthOptions:e,yearOptions:t,selectedMonth:n,selectedYear:r,onMonthChange:a,onYearChange:o})=>[u(i,{size:F.value,disabled:d.disabled,clearable:!1,items:e,"model-value":n,"trigger-props":M.value,ui:{trigger:`w-fit`},"onUpdate:modelValue":a},null,8,[`size`,`disabled`,`items`,`model-value`,`trigger-props`,`onUpdate:modelValue`]),u(i,{size:F.value,disabled:d.disabled,clearable:!1,items:t,"model-value":r,"trigger-props":N.value,ui:{popup:`max-h-72`,trigger:`w-fit`},"onUpdate:modelValue":o},null,8,[`size`,`disabled`,`items`,`model-value`,`trigger-props`,`onUpdate:modelValue`])]),key:`1`}]),1040))}});export{E as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{tv as e}from"tailwind-variants";const t=e({slots:{root:`inline-flex flex-col rounded-md border shadow-sm`,header:`flex items-center justify-between`,heading:`flex items-center justify-center font-medium`,prev
|
|
1
|
+
import{tv as e}from"tailwind-variants";const t=e({slots:{root:`inline-flex flex-col rounded-md border shadow-sm`,header:`flex items-center justify-between`,heading:`flex items-center justify-center font-medium`,prev:`rtl:rotate-180`,next:`rtl:rotate-180`,grid:`inline-table border-collapse`,gridHead:``,gridBody:``,gridRow:``,headCell:`rounded-md text-center font-normal text-muted-foreground`,cell:[`flex-1 text-center align-middle`,`focus-within:relative focus-within:z-20 [&:has([data-selected])]:rounded-md [&:has([data-selected])]:bg-accent`],cellTrigger:[`inline-flex items-center justify-center w-full h-full rounded-md transition-colors cursor-pointer`,`outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-ring focus-visible:ring-primary/30`,`data-[selected]:bg-primary data-[selected]:text-primary-foreground data-[selected]:font-medium`,`[&:not([data-selected]):hover]:bg-accent [&:not([data-selected]):hover]:text-accent-foreground`,`data-[disabled]:cursor-not-allowed data-[disabled]:text-muted-foreground data-[disabled]:opacity-50`,`[&[data-today]:not([data-selected])]:bg-accent [&[data-today]:not([data-selected])]:text-accent-foreground`,`data-[unavailable]:line-through data-[outside-view]:text-muted-foreground`]},variants:{size:{xs:{root:`gap-3 text-2xs p-2`,header:`gap-1.5`,gridRow:`mt-1.5`,heading:`gap-1.5`,headCell:`h-6 w-6 text-3xs`,cell:`h-6 w-6`},sm:{root:`gap-3.5 text-xs p-2.5`,header:`gap-2`,gridRow:`mt-1.75`,heading:`gap-2`,headCell:`h-7 w-7 text-2xs`,cell:`h-7 w-7`},md:{root:`gap-4 text-sm p-3`,header:`gap-2.5`,gridRow:`mt-2`,heading:`gap-2.5`,headCell:`h-8 w-8 text-xs`,cell:`h-8 w-8`},lg:{root:`gap-4.5 text-base p-3.5`,header:`gap-3`,gridRow:`mt-2.25`,heading:`gap-3`,headCell:`h-9 w-9 text-sm`,cell:`h-9 w-9`},xl:{root:`gap-5 text-lg p-4`,header:`gap-3.5`,gridRow:`mt-2.5`,heading:`gap-3.5`,headCell:`h-10 w-10 text-base`,cell:`h-10 w-10`},"2xl":{root:`gap-6 text-xl p-5`,header:`gap-4`,gridRow:`mt-3`,heading:`gap-4`,headCell:`h-12 w-12 text-lg`,cell:`h-12 w-12`}}},defaultVariants:{size:`md`}});export{t as calendarVariants};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import{miniSizeMap as t}from"../../theme/config.js";import"../../theme/index.js";import{buttonVariants as n}from"../button/variants.js";import r from"../select/select.js";import{calendarRangeVariants as i}from"./variants.js";import{computed as a,createBlock as o,createCommentVNode as s,createSlots as c,createVNode as l,defineComponent as u,guardReactiveProps as d,mergeProps as f,normalizeProps as p,openBlock as m,renderList as h,renderSlot as g,toHandlers as _,unref as v,useSlots as y,withCtx as b}from"vue";import{useForwardListeners as x,useOmitProps as S}from"@soybeanjs/headless/composables";import{keysOf as C}from"@soybeanjs/utils";import{useLocaleMessages as w}from"@soybeanjs/headless";import{CalendarRangeCompact as T,provideCalendarRangeUi as E}from"@soybeanjs/headless/calendar-range";const D=u({name:`SCalendarRange`,__name:`calendar-range`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},headerProps:{},headingProps:{},prevProps:{},nextProps:{},gridProps:{},gridHeadProps:{},gridBodyProps:{},gridRowProps:{},headCellProps:{},cellProps:{},cellTriggerProps:{},defaultValue:{},defaultPlaceholder:{},placeholder:{},modelValue:{},allowNonContiguousRanges:{type:Boolean},pagedNavigation:{type:Boolean},preventDeselect:{type:Boolean},maximumDays:{},weekStartsOn:{},weekdayFormat:{},calendarLabel:{},fixedWeeks:{type:Boolean},maxValue:{},minValue:{},locale:{},numberOfMonths:{},disabled:{type:Boolean},readonly:{type:Boolean},initialFocus:{type:Boolean},isDateDisabled:{type:Function},isDateUnavailable:{type:Function},isDateHighlightable:{type:Function},dir:{},nextPage:{type:Function},prevPage:{type:Function},disableDaysOutsideCurrentView:{type:Boolean},fixedDate:{},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:placeholder`,`update:startValue`],setup(u,{emit:D}){let O=u,k=D,A=y(),j=S(O,[`class`,`ui`,`size`]),M=x(k),N=w(),P=a(()=>({"aria-label":N.value.calendar.selectMonth})),F=a(()=>({"aria-label":N.value.calendar.selectYear})),I=a(()=>C(A).filter(e=>e!==`heading`)),L=a(()=>e(Object.assign(i({size:O.size}),{$base:{prev:n({size:O.size,variant:`pure`,fitContent:!0}),next:n({size:O.size,variant:`pure`,fitContent:!0})}}),O.ui,{root:O.class})),R=a(()=>t[O.size||`md`]);return E(L),(e,t)=>(m(),o(v(T),f(v(j),_(v(M))),c({_:2},[h(I.value,t=>({name:t,fn:b(n=>[s(` @vue-expect-error ignore slot props type `),g(e.$slots,t,p(d(n)))])})),e.$slots.heading?{name:`heading`,fn:b(t=>[g(e.$slots,`heading`,p(d(t)))]),key:`0`}:{name:`heading`,fn:b(({monthOptions:e,yearOptions:t,selectedMonth:n,selectedYear:i,onMonthChange:a,onYearChange:o})=>[l(r,{size:R.value,disabled:u.disabled,clearable:!1,items:e,"model-value":n,"trigger-props":P.value,ui:{trigger:`w-fit`},"onUpdate:modelValue":a},null,8,[`size`,`disabled`,`items`,`model-value`,`trigger-props`,`onUpdate:modelValue`]),l(r,{size:R.value,disabled:u.disabled,clearable:!1,items:t,"model-value":i,"trigger-props":F.value,ui:{popup:`max-h-72`,trigger:`w-fit`},"onUpdate:modelValue":o},null,8,[`size`,`disabled`,`items`,`model-value`,`trigger-props`,`onUpdate:modelValue`])]),key:`1`}]),1040))}});export{D as default};
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CalendarRangeProps, CalendarRangeSlots } from "./types.js";
|
|
2
2
|
import * as _$vue from "vue";
|
|
3
3
|
import * as _$_internationalized_date0 from "@internationalized/date";
|
|
4
4
|
import * as _$_soybeanjs_headless_date0 from "@soybeanjs/headless/date";
|
|
5
5
|
|
|
6
|
-
//#region src/components/range-
|
|
7
|
-
type __VLS_Slots =
|
|
8
|
-
declare const __VLS_base: _$vue.DefineComponent<
|
|
6
|
+
//#region src/components/calendar-range/calendar-range.vue.d.ts
|
|
7
|
+
type __VLS_Slots = CalendarRangeSlots;
|
|
8
|
+
declare const __VLS_base: _$vue.DefineComponent<CalendarRangeProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
|
|
9
9
|
"update:modelValue": (range: _$_soybeanjs_headless_date0.DateRange) => any;
|
|
10
10
|
"update:placeholder": (date: _$_internationalized_date0.DateValue) => any;
|
|
11
11
|
"update:startValue": (date: _$_internationalized_date0.DateValue | undefined) => any;
|
|
12
|
-
}, string, _$vue.PublicProps, Readonly<
|
|
12
|
+
}, string, _$vue.PublicProps, Readonly<CalendarRangeProps> & Readonly<{
|
|
13
13
|
"onUpdate:modelValue"?: ((range: _$_soybeanjs_headless_date0.DateRange) => any) | undefined;
|
|
14
14
|
"onUpdate:placeholder"?: ((date: _$_internationalized_date0.DateValue) => any) | undefined;
|
|
15
15
|
"onUpdate:startValue"?: ((date: _$_internationalized_date0.DateValue | undefined) => any) | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./calendar-range.js";
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ThemeSize } from "../../theme/types.js";
|
|
2
|
+
import { CalendarRangeCompactEmits, CalendarRangeCompactProps, CalendarRangeCompactSlots, CalendarRangeUi } from "@soybeanjs/headless/calendar-range";
|
|
3
|
+
import { ClassValue } from "@soybeanjs/headless/types";
|
|
4
|
+
|
|
5
|
+
//#region src/components/calendar-range/types.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* Properties for the CalendarRange component.
|
|
8
|
+
*/
|
|
9
|
+
interface CalendarRangeProps extends CalendarRangeCompactProps {
|
|
10
|
+
/**
|
|
11
|
+
* Additional class names applied to the root element.
|
|
12
|
+
*/
|
|
13
|
+
class?: ClassValue;
|
|
14
|
+
/**
|
|
15
|
+
* Visual size of the component.
|
|
16
|
+
*/
|
|
17
|
+
size?: ThemeSize;
|
|
18
|
+
/**
|
|
19
|
+
* Per-slot class overrides for the component.
|
|
20
|
+
*/
|
|
21
|
+
ui?: Partial<CalendarRangeUi>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Events for the CalendarRange component.
|
|
25
|
+
*/
|
|
26
|
+
type CalendarRangeEmits = CalendarRangeCompactEmits;
|
|
27
|
+
/**
|
|
28
|
+
* Slots for the CalendarRange component.
|
|
29
|
+
*/
|
|
30
|
+
type CalendarRangeSlots = CalendarRangeCompactSlots;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { CalendarRangeEmits, CalendarRangeProps, CalendarRangeSlots };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{tv as e}from"tailwind-variants";const t=e({slots:{root:`inline-flex flex-col gap-4 p-3 text-sm`,header:`flex items-center justify-between`,heading:`flex items-center justify-center font-medium`,prev:`rtl:rotate-180`,next:`rtl:rotate-180`,grid:`inline-table border-collapse`,gridHead:``,gridBody:``,gridRow:``,headCell:`rounded-md text-center font-normal text-muted-foreground`,cell:[`flex-1 text-center align-middle focus-within:relative focus-within:z-20`,`[&:has([data-selected])]:bg-accent first:[&:has([data-selected])]:rounded-s-md last:[&:has([data-selected])]:rounded-e-md`,`[&:has([data-selection-end])]:rounded-e-md [&:has([data-selection-start])]:rounded-s-md`],cellTrigger:[`inline-flex cursor-pointer items-center justify-center w-full h-full rounded-md font-normal transition-colors`,`focus-visible:outline-none focus-visible:ring-3 focus-visible:ring-offset-background focus-visible:ring-ring focus-visible:ring-primary/30`,`[&[data-today]:not([data-selected])]:bg-accent [&[data-today]:not([data-selected])]:text-accent-foreground`,`data-[selected]:text-foreground`,`data-[selection-start]:bg-primary data-[selection-start]:text-primary-foreground`,`data-[selection-end]:bg-primary data-[selection-end]:text-primary-foreground`,`[&[data-selection-start]:hover]:bg-primary data-[selection-start]:hover:text-primary-foreground data-[selection-start]:focus-visible:bg-primary data-[selection-start]:focus-visible:text-primary-foreground`,`[&[data-selection-end]:hover]:bg-primary data-[selection-end]:hover:text-primary-foreground data-[selection-end]:focus-visible:bg-primary data-[selection-end]:focus-visible:text-primary-foreground`,`data-[highlighted]:bg-accent/80 data-[highlighted]:text-foreground`,`hover:bg-accent hover:text-accent-foreground data-[outside-view]:text-muted-foreground`,`data-[disabled]:pointer-events-none data-[disabled]:text-muted-foreground data-[disabled]:opacity-50`,`data-[unavailable]:line-through`]},variants:{size:{xs:{root:`gap-3 text-2xs p-2`,header:`gap-1.5`,gridRow:`mt-1.5`,heading:`gap-1.5`,headCell:`h-6 w-6 text-3xs`,cell:`h-6 w-6`},sm:{root:`gap-3.5 text-xs p-2.5`,header:`gap-2`,gridRow:`mt-1.75`,heading:`gap-2`,headCell:`h-7 w-7 text-2xs`,cell:`h-7 w-7`},md:{root:`gap-4 text-sm p-3`,header:`gap-2.5`,gridRow:`mt-2`,heading:`gap-2.5`,headCell:`h-8 w-8 text-xs`,cell:`h-8 w-8`},lg:{root:`gap-4.5 text-base p-3.5`,header:`gap-3`,gridRow:`mt-2.25`,heading:`gap-3`,headCell:`h-9 w-9 text-sm`,cell:`h-9 w-9`},xl:{root:`gap-5 text-lg p-4`,header:`gap-3.5`,gridRow:`mt-2.5`,heading:`gap-3.5`,headCell:`h-10 w-10 text-base`,cell:`h-10 w-10`},"2xl":{root:`gap-6 text-xl p-5`,header:`gap-4`,gridRow:`mt-3`,heading:`gap-4`,headCell:`h-12 w-12 text-lg`,cell:`h-12 w-12`}}},defaultVariants:{size:`md`}});export{t as calendarRangeVariants};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"../button/button-icon.js";import{createBlock as t,defineComponent as n,guardReactiveProps as r,normalizeProps as i,openBlock as a,renderSlot as o,unref as s,withCtx as c}from"vue";import{CardCollapsibleTrigger as l}from"@soybeanjs/headless/card";const u=n({name:`SCardCollapsibleTrigger`,__name:`card-collapsible-trigger`,props:{disabledCollapsible:{type:Boolean},asChild:{type:Boolean,default:!0},as:{}},setup(n){let u=n;return(n,d)=>(a(),t(s(l),i(r(u)),{default:c(({open:r})=>[o(n.$slots,`default`,{open:r},()=>[r?(a(),t(e,{key:0,icon:`lucide:chevron-down`})):(a(),t(e,{key:1,icon:`lucide:chevron-right`}))])]),_:3},16))}});export{u as default};
|
|
1
|
+
import e from"../button/button-icon.js";import{createBlock as t,defineComponent as n,guardReactiveProps as r,normalizeProps as i,openBlock as a,renderSlot as o,unref as s,withCtx as c}from"vue";import{CardCollapsibleTrigger as l}from"@soybeanjs/headless/card";const u=n({name:`SCardCollapsibleTrigger`,__name:`card-collapsible-trigger`,props:{disabledCollapsible:{type:Boolean},type:{},disabled:{type:Boolean},asChild:{type:Boolean,default:!0},as:{}},setup(n){let u=n;return(n,d)=>(a(),t(s(l),i(r(u)),{default:c(({open:r})=>[o(n.$slots,`default`,{open:r},()=>[r?(a(),t(e,{key:0,icon:`lucide:chevron-down`})):(a(),t(e,{key:1,icon:`lucide:chevron-right`}))])]),_:3},16))}});export{u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{cardVariants as t}from"./variants.js";import{computed as n,createBlock as r,createSlots as i,defineComponent as a,guardReactiveProps as o,normalizeProps as s,openBlock as c,renderSlot as l,unref as u,useSlots as d,withCtx as f}from"vue";import{useOmitProps as p}from"@soybeanjs/headless/composables";import{CardCompact as m,provideCardUi as h}from"@soybeanjs/headless/card";const g=a({name:`SCard`,__name:`card`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},scrollable:{type:Boolean,default:!0},split:{type:Boolean},title:{},description:{},headerProps:{},contentProps:{},footerProps:{},titleRootProps:{},titleProps:{},descriptionProps:{},defaultOpen:{type:Boolean,default:!0},open:{type:Boolean,default:void 0},disabled:{type:Boolean},unmountOnHide:{type:Boolean},asChild:{type:Boolean},as:{}},setup(a){let g=a,_=p(g,[`class`,`size`,`ui`,`scrollable`,`split`]),v=d();return h(n(()=>e(t({size:g.size,scrollable:g.scrollable,split:g.split}),g.ui,{root:g.class}))),(e,t)=>(c(),r(u(m),s(o(u(_))),i({default:f(()=>[l(e.$slots,`default`)]),_:2},[v.header?{name:`header`,fn:f(()=>[l(e.$slots,`header`)]),key:`0`}:void 0,v[`title-leading`]?{name:`title-leading`,fn:f(()=>[l(e.$slots,`title-leading`)]),key:`1`}:void 0,v.title?{name:`title`,fn:f(()=>[l(e.$slots,`title`)]),key:`2`}:void 0,v[`title-trailing`]?{name:`title-trailing`,fn:f(()=>[l(e.$slots,`title-trailing`)]),key:`3`}:void 0,v.extra?{name:`extra`,fn:f(()=>[l(e.$slots,`extra`)]),key:`4`}:void 0,v.description?{name:`description`,fn:f(()=>[l(e.$slots,`description`)]),key:`5`}:void 0,v.footer?{name:`footer`,fn:f(()=>[l(e.$slots,`footer`)]),key:`6`}:void 0]),1040))}});export{g as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{buttonIconVariants as t}from"../button/variants.js";import{carouselVariants as n}from"./variants.js";import{computed as r,createBlock as i,createSlots as a,defineComponent as o,guardReactiveProps as s,mergeProps as c,normalizeProps as l,openBlock as u,renderList as d,renderSlot as f,toHandlers as p,unref as m,useSlots as h,withCtx as g}from"vue";import{useForwardListeners as _,useOmitProps as v}from"@soybeanjs/headless/composables";import{keysOf as y}from"@soybeanjs/utils";import{CarouselCompact as b,provideCarouselUi as x}from"@soybeanjs/headless/carousel";const S=o({name:`SCarousel`,__name:`carousel`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},size:{},floatNav:{type:Boolean},slides:{},contentProps:{},containerProps:{},itemProps:{},controlProps:{},navigationProps:{},previousProps:{},nextProps:{},dir:{},orientation:{},options:{},plugins:{}},emits:[`init`],setup(o,{emit:S}){let C=o,w=S,T=h(),E=v(C,[`class`,`ui`,`size`,`floatNav`]),D=_(w),O=r(()=>y(T).filter(e=>e!==`item`));return x(r(()=>e(Object.assign(n({size:C.size,orientation:C.orientation,floatNav:C.floatNav}),{$base:{previous:t({size:C.size,variant:`pure`,shape:`circle`}),next:t({size:C.size,variant:`pure`,shape:`circle`})}}),C.ui,{root:C.class}))),(e,t)=>(u(),i(m(b),c(m(E),p(m(D))),a({item:g(t=>[f(e.$slots,`item`,l(s(t)))]),_:2},[d(O.value,t=>({name:t,fn:g(n=>[f(e.$slots,t,l(s(n)))])}))]),1040))}});export{S as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{checkboxCardVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,unref as s}from"vue";import{useOmitProps as c}from"@soybeanjs/headless/composables";import{CheckboxCardGroupCompact as l,provideCheckboxCardUi as u}from"@soybeanjs/headless/checkbox";const d=i({name:`SCheckboxCardGroup`,__name:`checkbox-card-group`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},color:{},size:{},shape:{},items:{},rootProps:{},controlProps:{},indicatorProps:{},labelProps:{},modelValue:{},defaultValue:{},rovingFocus:{type:Boolean,default:!0},disabled:{type:Boolean},orientation:{},dir:{},loop:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(i,{emit:d}){let f=i,p=d,m=c(f,[`class`,`ui`,`color`,`size`,`shape`]),h=n(()=>e(t({color:f.color,size:f.size,shape:f.shape}),f.ui,{groupRoot:f.class}));return u(h),(e,t)=>(o(),r(s(l),a(s(m),{"content-class":h.value.content,"text-content-class":h.value.textContent,"icon-class":h.value.icon,"description-class":h.value.description,"onUpdate:modelValue":t[0]||=e=>p(`update:modelValue`,e)}),null,16,[`content-class`,`text-content-class`,`icon-class`,`description-class`]))}});export{d as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{checkboxCardVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,renderSlot as s,unref as c,withCtx as l}from"vue";import{useOmitProps as u}from"@soybeanjs/headless/composables";import{CheckboxCardCompact as d,provideCheckboxCardUi as f}from"@soybeanjs/headless/checkbox";const p=i({name:`SCheckboxCard`,__name:`checkbox-card`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},color:{},size:{},shape:{},icon:{},description:{},label:{},controlProps:{},indicatorProps:{},labelProps:{},id:{},modelValue:{type:[Boolean,String,null],default:void 0},defaultValue:{type:[Boolean,String]},value:{},disabled:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(i,{emit:p}){let m=i,h=p,g=u(m,[`class`,`ui`,`color`,`size`,`shape`]);return f(n(()=>e(t({color:m.color,size:m.size,shape:m.shape}),m.ui,{root:m.class}))),(e,t)=>(o(),r(c(d),a(c(g),{"onUpdate:modelValue":t[0]||=e=>h(`update:modelValue`,e)}),{description:l(()=>[s(e.$slots,`description`)]),default:l(()=>[s(e.$slots,`default`)]),_:3},16))}});export{p as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{checkboxVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,unref as s}from"vue";import{useOmitProps as c}from"@soybeanjs/headless/composables";import{CheckboxGroupCompact as l,provideCheckboxUi as u}from"@soybeanjs/headless/checkbox";const d=i({name:`SCheckboxGroup`,__name:`checkbox-group`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},color:{},size:{},shape:{},items:{},rootProps:{},controlProps:{},indicatorProps:{},labelProps:{},modelValue:{},defaultValue:{},rovingFocus:{type:Boolean,default:!0},disabled:{type:Boolean},orientation:{},dir:{},loop:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(i,{emit:d}){let f=i,p=d,m=c(f,[`class`,`ui`,`color`,`size`,`shape`]);return u(n(()=>e(t({color:f.color,size:f.size,shape:f.shape,orientation:f.orientation}),f.ui,{groupRoot:f.class}))),(e,t)=>(o(),r(s(l),a(s(m),{"onUpdate:modelValue":t[0]||=e=>p(`update:modelValue`,e)}),null,16))}});export{d as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{checkboxVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,renderSlot as s,unref as c,withCtx as l}from"vue";import{useOmitProps as u}from"@soybeanjs/headless/composables";import{CheckboxCompact as d,provideCheckboxUi as f}from"@soybeanjs/headless/checkbox";const p=i({name:`SCheckbox`,__name:`checkbox`,props:{class:{type:[Boolean,null,String,Object,Array]},ui:{},color:{},size:{},shape:{},label:{},controlProps:{},indicatorProps:{},labelProps:{},id:{},modelValue:{type:[Boolean,String,null],default:void 0},defaultValue:{type:[Boolean,String]},value:{},disabled:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`],setup(i,{emit:p}){let m=i,h=p,g=u(m,[`class`,`ui`,`color`,`size`,`shape`]);return f(n(()=>e(t({color:m.color,size:m.size,shape:m.shape}),m.ui,{root:m.class}))),(e,t)=>(o(),r(c(d),a(c(g),{"onUpdate:modelValue":t[0]||=e=>h(`update:modelValue`,e)}),{default:l(()=>[s(e.$slots,`default`)]),_:3},16))}});export{p as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{collapsibleVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,guardReactiveProps as a,mergeProps as o,normalizeProps as s,openBlock as c,renderSlot as l,unref as u,withCtx as d}from"vue";import{useOmitProps as f}from"@soybeanjs/headless/composables";import{CollapsibleRoot as p,provideCollapsibleUi as m}from"@soybeanjs/headless/collapsible";const h=i({name:`SCollapsible`,__name:`collapsible`,props:{size:{},ui:{},defaultOpen:{type:Boolean,default:!1},open:{type:Boolean,default:void 0},disabled:{type:Boolean},unmountOnHide:{type:Boolean,default:!0},asChild:{type:Boolean},as:{}},emits:[`update:open`],setup(i,{emit:h}){let g=i,_=h,v=f(g,[`class`,`size`,`ui`]);return m(n(()=>e(t({size:g.size}),g.ui))),(e,t)=>(c(),r(u(p),o(u(v),{"onUpdate:open":t[0]||=e=>_(`update:open`,e)}),{default:d(t=>[l(e.$slots,`default`,s(a(t)))]),_:3},16))}});export{h as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{colorAreaVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,toHandlers as s,unref as c}from"vue";import{useForwardListeners as l,useOmitProps as u}from"@soybeanjs/headless/composables";import{ColorAreaCompact as d,provideColorAreaUi as f}from"@soybeanjs/headless/color-area";const p=i({name:`SColorArea`,__name:`color-area`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},areaProps:{},thumbProps:{},modelValue:{},defaultValue:{},colorSpace:{},format:{},xChannel:{},yChannel:{},disabled:{type:Boolean},xName:{},yName:{},name:{},required:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:color`,`change`,`changeEnd`],setup(i,{emit:p}){let m=i,h=l(p),g=u(m,[`class`,`size`,`ui`]);return f(n(()=>e(t({size:m.size}),m.ui,{root:m.class}))),(e,t)=>(o(),r(c(d),a(c(g),s(c(h))),null,16))}});export{p as default};
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { ColorAreaProps } from "./types.js";
|
|
2
2
|
import * as _$vue from "vue";
|
|
3
|
-
import * as _$
|
|
3
|
+
import * as _$_soybeanjs_headless_types0 from "@soybeanjs/headless/types";
|
|
4
4
|
|
|
5
5
|
//#region src/components/color-area/color-area.vue.d.ts
|
|
6
6
|
declare const __VLS_export: _$vue.DefineComponent<ColorAreaProps, {}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {
|
|
7
|
-
"update:modelValue": (value: string) => any;
|
|
8
7
|
change: (value: string) => any;
|
|
9
|
-
"update:
|
|
8
|
+
"update:modelValue": (value: string) => any;
|
|
9
|
+
"update:color": (value: _$_soybeanjs_headless_types0.NormalizedColor) => any;
|
|
10
10
|
changeEnd: (value: string) => any;
|
|
11
11
|
}, string, _$vue.PublicProps, Readonly<ColorAreaProps> & Readonly<{
|
|
12
|
-
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
13
12
|
onChange?: ((value: string) => any) | undefined;
|
|
14
|
-
"onUpdate:
|
|
13
|
+
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
14
|
+
"onUpdate:color"?: ((value: _$_soybeanjs_headless_types0.NormalizedColor) => any) | undefined;
|
|
15
15
|
onChangeEnd?: ((value: string) => any) | undefined;
|
|
16
16
|
}>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
17
17
|
declare const _default: typeof __VLS_export;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { ThemeSize } from "../../theme/types.js";
|
|
2
|
-
import {
|
|
2
|
+
import { ColorAreaCompactEmits, ColorAreaCompactProps, ColorAreaUi } from "@soybeanjs/headless/color-area";
|
|
3
3
|
import { ClassValue } from "@soybeanjs/headless/types";
|
|
4
4
|
|
|
5
5
|
//#region src/components/color-area/types.d.ts
|
|
6
6
|
/**
|
|
7
7
|
* Properties for the ColorArea component.
|
|
8
8
|
*/
|
|
9
|
-
interface ColorAreaProps extends
|
|
9
|
+
interface ColorAreaProps extends ColorAreaCompactProps {
|
|
10
10
|
/**
|
|
11
11
|
* Additional class names applied to the root element.
|
|
12
12
|
*/
|
|
@@ -19,18 +19,10 @@ interface ColorAreaProps extends ColorAreaRootProps {
|
|
|
19
19
|
* Per-slot class overrides for the component.
|
|
20
20
|
*/
|
|
21
21
|
ui?: Partial<ColorAreaUi>;
|
|
22
|
-
/**
|
|
23
|
-
* Properties forwarded to the area element.
|
|
24
|
-
*/
|
|
25
|
-
areaProps?: ColorAreaAreaProps;
|
|
26
|
-
/**
|
|
27
|
-
* Properties forwarded to the thumb element.
|
|
28
|
-
*/
|
|
29
|
-
thumbProps?: ColorAreaThumbProps;
|
|
30
22
|
}
|
|
31
23
|
/**
|
|
32
24
|
* Events for the ColorArea component.
|
|
33
25
|
*/
|
|
34
|
-
type ColorAreaEmits =
|
|
26
|
+
type ColorAreaEmits = ColorAreaCompactEmits;
|
|
35
27
|
//#endregion
|
|
36
28
|
export { ColorAreaEmits, ColorAreaProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{mergeVariants as e}from"../../theme/shared.js";import"../../theme/index.js";import{colorFieldVariants as t}from"./variants.js";import{computed as n,createBlock as r,defineComponent as i,mergeProps as a,openBlock as o,toHandlers as s,unref as c}from"vue";import{useForwardListeners as l,useOmitProps as u}from"@soybeanjs/headless/composables";import{ColorFieldCompact as d,provideColorFieldUi as f}from"@soybeanjs/headless/color-field";const p=i({name:`SColorField`,__name:`color-field`,props:{class:{type:[Boolean,null,String,Object,Array]},size:{},ui:{},inputProps:{},modelValue:{},defaultValue:{},colorSpace:{},channel:{},format:{},placeholder:{},disabled:{type:Boolean},readonly:{type:Boolean},disableWheelChange:{type:Boolean},step:{},name:{},required:{type:Boolean},asChild:{type:Boolean},as:{}},emits:[`update:modelValue`,`update:color`],setup(i,{emit:p}){let m=i,h=l(p),g=u(m,[`class`,`size`,`ui`]);return f(n(()=>e(t({size:m.size}),m.ui,{root:m.class}))),(e,t)=>(o(),r(c(d),a(c(g),s(c(h))),null,16))}});export{p as default};
|