@svelte-atoms/core 1.0.0-alpha.41 → 1.0.0-alpha.44
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/LICENSE +21 -21
- package/README.md +67 -197
- package/dist/attachments/clickout.svelte.d.ts +4 -1
- package/dist/attachments/clickout.svelte.js +2 -1
- package/dist/components/accordion/accordion-root.svelte +61 -66
- package/dist/components/accordion/accordion-root.svelte.d.ts +2 -2
- package/dist/components/accordion/bond.svelte.d.ts +11 -10
- package/dist/components/accordion/bond.svelte.js +26 -16
- package/dist/components/accordion/item/accordion-item-body.svelte +3 -1
- package/dist/components/accordion/item/accordion-item-header.svelte +1 -1
- package/dist/components/accordion/item/accordion-item-indicator.svelte +1 -1
- package/dist/components/accordion/item/accordion-item-root.svelte +3 -2
- package/dist/components/accordion/item/bond.svelte.d.ts +32 -18
- package/dist/components/accordion/item/bond.svelte.js +88 -64
- package/dist/components/accordion/item/types.d.ts +4 -24
- package/dist/components/accordion/types.d.ts +5 -9
- package/dist/components/alert/alert-root.svelte +68 -68
- package/dist/components/alert/types.d.ts +12 -46
- package/dist/components/atom/html-atom.svelte +84 -95
- package/dist/components/atom/html-atom.svelte.d.ts +1 -2
- package/dist/components/atom/index.d.ts +1 -0
- package/dist/components/atom/index.js +1 -0
- package/dist/components/atom/types.d.ts +52 -10
- package/dist/components/atom/types.js +1 -1
- package/dist/components/atom/utils.d.ts +10 -3
- package/dist/components/atom/utils.js +112 -45
- package/dist/components/avatar/types.d.ts +1 -6
- package/dist/components/badge/index.d.ts +1 -0
- package/dist/components/badge/types.d.ts +4 -7
- package/dist/components/button/button.svelte +31 -31
- package/dist/components/button/types.d.ts +9 -6
- package/dist/components/calendar/calendar-body.svelte +0 -1
- package/dist/components/calendar/calendar-day.svelte +99 -99
- package/dist/components/calendar/calendar-header.svelte +1 -1
- package/dist/components/calendar/calendar-root.svelte +206 -206
- package/dist/components/calendar/calendar-root.svelte.d.ts +1 -1
- package/dist/components/calendar/calendar-week-day.svelte +33 -33
- package/dist/components/calendar/types.d.ts +7 -10
- package/dist/components/card/card-root.svelte +92 -92
- package/dist/components/card/types.d.ts +12 -51
- package/dist/components/checkbox/checkbox.svelte +65 -55
- package/dist/components/checkbox/checkbox.svelte.d.ts +1 -3
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/checkbox/index.js +1 -0
- package/dist/components/checkbox/motion.d.ts +17 -0
- package/dist/components/checkbox/motion.js +34 -0
- package/dist/components/checkbox/types.d.ts +14 -7
- package/dist/components/chip/chip-close-button.svelte +33 -0
- package/dist/components/chip/chip-close-button.svelte.d.ts +4 -0
- package/dist/components/chip/chip.svelte +34 -41
- package/dist/components/chip/chip.svelte.d.ts +1 -3
- package/dist/components/chip/index.d.ts +2 -0
- package/dist/components/chip/index.js +2 -0
- package/dist/components/chip/types.d.ts +15 -8
- package/dist/components/collapsible/bond.svelte.d.ts +34 -24
- package/dist/components/collapsible/bond.svelte.js +73 -60
- package/dist/components/collapsible/collapsible-body.svelte +1 -1
- package/dist/components/collapsible/collapsible-header.svelte +1 -1
- package/dist/components/collapsible/collapsible-indicator.svelte +1 -1
- package/dist/components/collapsible/collapsible-root.svelte +67 -67
- package/dist/components/collapsible/types.d.ts +10 -22
- package/dist/components/combobox/bond.svelte.d.ts +13 -8
- package/dist/components/combobox/bond.svelte.js +30 -20
- package/dist/components/combobox/combobox-control.svelte +66 -66
- package/dist/components/combobox/combobox-item.svelte +62 -62
- package/dist/components/combobox/combobox-root.svelte +65 -65
- package/dist/components/combobox/combobox-root.svelte.d.ts +2 -2
- package/dist/components/combobox/combobox-selections.svelte +17 -17
- package/dist/components/combobox/combobox-trigger.svelte +34 -34
- package/dist/components/combobox/types.d.ts +6 -10
- package/dist/components/container/index.d.ts +1 -0
- package/dist/components/container/types.d.ts +6 -12
- package/dist/components/context-menu/atoms.d.ts +4 -0
- package/dist/components/context-menu/atoms.js +4 -0
- package/dist/components/context-menu/context-menu-content.svelte +52 -0
- package/dist/components/context-menu/context-menu-content.svelte.d.ts +27 -0
- package/dist/components/context-menu/context-menu-root.svelte +8 -0
- package/dist/components/context-menu/context-menu-root.svelte.d.ts +4 -0
- package/dist/components/context-menu/context-menu-trigger.svelte +59 -0
- package/dist/components/context-menu/context-menu-trigger.svelte.d.ts +27 -0
- package/dist/components/context-menu/index.d.ts +2 -0
- package/dist/components/context-menu/index.js +2 -0
- package/dist/components/{contextmenu → context-menu}/types.d.ts +1 -6
- package/dist/components/datagrid/atoms.d.ts +11 -5
- package/dist/components/datagrid/atoms.js +11 -5
- package/dist/components/datagrid/bond.svelte.d.ts +29 -14
- package/dist/components/datagrid/bond.svelte.js +45 -33
- package/dist/components/datagrid/cell/bond.svelte.d.ts +29 -0
- package/dist/components/datagrid/cell/bond.svelte.js +42 -0
- package/dist/components/datagrid/cell/datagrid-cell.svelte +49 -0
- package/dist/components/datagrid/cell/datagrid-cell.svelte.d.ts +26 -0
- package/dist/components/datagrid/cell/index.d.ts +4 -0
- package/dist/components/datagrid/cell/index.js +4 -0
- package/dist/components/datagrid/col/index.d.ts +4 -0
- package/dist/components/datagrid/col/index.js +4 -0
- package/dist/components/datagrid/column/bond.svelte.d.ts +45 -0
- package/dist/components/datagrid/column/bond.svelte.js +76 -0
- package/dist/components/datagrid/{th/datagrid-th-sort-icon.svelte → column/datagrid-column-sort-icon.svelte} +3 -3
- package/dist/components/datagrid/{th/datagrid-th-sort-icon.svelte.d.ts → column/datagrid-column-sort-icon.svelte.d.ts} +3 -3
- package/dist/components/datagrid/{th/datagrid-th.svelte → column/datagrid-column.svelte} +27 -36
- package/dist/components/datagrid/column/datagrid-column.svelte.d.ts +26 -0
- package/dist/components/datagrid/column/index.d.ts +4 -0
- package/dist/components/datagrid/column/index.js +4 -0
- package/dist/components/datagrid/context.d.ts +2 -29
- package/dist/components/datagrid/context.js +4 -18
- package/dist/components/datagrid/datagrid-body.svelte +7 -20
- package/dist/components/datagrid/datagrid-body.svelte.d.ts +8 -15
- package/dist/components/datagrid/datagrid-checkbox.svelte +60 -63
- package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +1 -3
- package/dist/components/datagrid/datagrid-footer.svelte +27 -34
- package/dist/components/datagrid/datagrid-footer.svelte.d.ts +12 -12
- package/dist/components/datagrid/datagrid-header.svelte +10 -17
- package/dist/components/datagrid/datagrid-header.svelte.d.ts +12 -12
- package/dist/components/datagrid/datagrid-root.svelte +49 -59
- package/dist/components/datagrid/datagrid-root.svelte.d.ts +15 -14
- package/dist/components/datagrid/row/bond.svelte.d.ts +42 -0
- package/dist/components/datagrid/row/bond.svelte.js +72 -0
- package/dist/components/datagrid/{tr/datagrid-tr.css → row/datagrid-row.css} +1 -1
- package/dist/components/datagrid/row/datagrid-row.svelte +64 -0
- package/dist/components/datagrid/row/datagrid-row.svelte.d.ts +27 -0
- package/dist/components/datagrid/row/index.d.ts +4 -0
- package/dist/components/datagrid/row/index.js +4 -0
- package/dist/components/datagrid/types.d.ts +56 -116
- package/dist/components/date-picker/bond.svelte.d.ts +0 -12
- package/dist/components/date-picker/date-picker-calendar.svelte +58 -58
- package/dist/components/date-picker/date-picker-months.svelte +1 -1
- package/dist/components/date-picker/date-picker-root.svelte +96 -96
- package/dist/components/date-picker/date-picker-root.svelte.d.ts +1 -1
- package/dist/components/date-picker/date-picker-years.svelte +1 -1
- package/dist/components/date-picker/types.d.ts +6 -3
- package/dist/components/dialog/atoms.d.ts +1 -1
- package/dist/components/dialog/atoms.js +1 -1
- package/dist/components/dialog/bond.svelte.d.ts +66 -28
- package/dist/components/dialog/bond.svelte.js +136 -117
- package/dist/components/dialog/dialog-body.svelte +1 -1
- package/dist/components/dialog/dialog-close.svelte +58 -0
- package/dist/components/dialog/dialog-close.svelte.d.ts +26 -0
- package/dist/components/dialog/dialog-content.svelte +2 -2
- package/dist/components/dialog/dialog-description.svelte +1 -1
- package/dist/components/dialog/dialog-footer.svelte +1 -1
- package/dist/components/dialog/dialog-header.svelte +1 -1
- package/dist/components/dialog/dialog-root.svelte +102 -82
- package/dist/components/dialog/dialog-title.svelte +1 -1
- package/dist/components/dialog/motion.svelte.js +68 -26
- package/dist/components/dialog/types.d.ts +16 -51
- package/dist/components/divider/types.d.ts +1 -6
- package/dist/components/drawer/bond.svelte.d.ts +61 -36
- package/dist/components/drawer/bond.svelte.js +149 -121
- package/dist/components/drawer/drawer-backdrop.svelte +2 -1
- package/dist/components/drawer/drawer-body.svelte +1 -1
- package/dist/components/drawer/drawer-content.svelte +5 -5
- package/dist/components/drawer/drawer-content.svelte.d.ts +4 -1
- package/dist/components/drawer/drawer-description.svelte +1 -1
- package/dist/components/drawer/drawer-footer.svelte +1 -1
- package/dist/components/drawer/drawer-header.svelte +1 -1
- package/dist/components/drawer/drawer-root.svelte +96 -87
- package/dist/components/drawer/drawer-title.svelte +1 -1
- package/dist/components/drawer/motion.d.ts +59 -5
- package/dist/components/drawer/motion.js +133 -15
- package/dist/components/drawer/types.d.ts +15 -24
- package/dist/components/dropdown/atoms.d.ts +4 -8
- package/dist/components/dropdown/atoms.js +4 -9
- package/dist/components/dropdown/bond.svelte.d.ts +4 -53
- package/dist/components/dropdown/bond.svelte.js +4 -89
- package/dist/components/dropdown/dropdown-query.svelte +43 -43
- package/dist/components/dropdown/dropdown-root.svelte +79 -79
- package/dist/components/dropdown/dropdown-root.svelte.d.ts +4 -4
- package/dist/components/dropdown/dropdown-selection.svelte +55 -55
- package/dist/components/dropdown/dropdown-selections.svelte +70 -70
- package/dist/components/dropdown/dropdown-trigger.svelte +30 -30
- package/dist/components/dropdown/index.d.ts +43 -7
- package/dist/components/dropdown/index.js +34 -6
- package/dist/components/dropdown/item/bond.svelte.d.ts +36 -0
- package/dist/components/dropdown/item/bond.svelte.js +85 -0
- package/dist/components/dropdown/item/controller.svelte.d.ts +1 -1
- package/dist/components/dropdown/item/dropdown-item.svelte +81 -107
- package/dist/components/dropdown/item/index.d.ts +11 -3
- package/dist/components/dropdown/item/index.js +10 -3
- package/dist/components/dropdown/types.d.ts +2 -67
- package/dist/components/dropdown-menu/atoms.d.ts +9 -0
- package/dist/components/dropdown-menu/atoms.js +9 -0
- package/dist/components/dropdown-menu/attachments.svelte.d.ts +2 -0
- package/dist/components/dropdown-menu/attachments.svelte.js +5 -0
- package/dist/components/dropdown-menu/bond.svelte.d.ts +72 -0
- package/dist/components/dropdown-menu/bond.svelte.js +173 -0
- package/dist/components/dropdown-menu/dropdown-menu-content.svelte +40 -0
- package/dist/components/dropdown-menu/dropdown-menu-content.svelte.d.ts +37 -0
- package/dist/components/dropdown-menu/dropdown-menu-root.svelte +14 -0
- package/dist/components/dropdown-menu/dropdown-menu-root.svelte.d.ts +4 -0
- package/dist/components/dropdown-menu/index.d.ts +7 -0
- package/dist/components/dropdown-menu/index.js +6 -0
- package/dist/components/dropdown-menu/item/bond.svelte.d.ts +26 -0
- package/dist/components/dropdown-menu/item/bond.svelte.js +54 -0
- package/dist/components/dropdown-menu/item/controller.svelte.d.ts +39 -0
- package/dist/components/dropdown-menu/item/controller.svelte.js +73 -0
- package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte +75 -0
- package/dist/components/dropdown-menu/item/dropdown-menu-item.svelte.d.ts +32 -0
- package/dist/components/dropdown-menu/item/index.d.ts +3 -0
- package/dist/components/dropdown-menu/item/index.js +3 -0
- package/dist/components/dropdown-menu/item/types.d.ts +57 -0
- package/dist/components/dropdown-menu/item/types.js +1 -0
- package/dist/components/dropdown-menu/types.d.ts +3 -0
- package/dist/components/dropdown-menu/types.js +1 -0
- package/dist/components/element/html-element.svelte +114 -85
- package/dist/components/element/html-element.svelte.d.ts +1 -1
- package/dist/components/element/svg-element.svelte +88 -88
- package/dist/components/element/types.d.ts +32 -20
- package/dist/components/form/field/atoms.d.ts +1 -1
- package/dist/components/form/field/atoms.js +1 -1
- package/dist/components/form/field/bond.svelte.js +0 -6
- package/dist/components/form/field/field-control.svelte +30 -9
- package/dist/components/form/field/field-control.svelte.d.ts +12 -22
- package/dist/components/form/field/field-helper-text.svelte +23 -0
- package/dist/components/form/field/field-helper-text.svelte.d.ts +26 -0
- package/dist/components/form/field/field-label.svelte +5 -7
- package/dist/components/form/field/field-label.svelte.d.ts +2 -2
- package/dist/components/form/field/field-root.svelte +17 -8
- package/dist/components/form/form-root.svelte +66 -66
- package/dist/components/form/types.d.ts +34 -58
- package/dist/components/icon/icon.svelte +40 -40
- package/dist/components/icon/types.d.ts +4 -7
- package/dist/components/image/index.d.ts +2 -0
- package/dist/components/image/index.js +2 -1
- package/dist/components/index.d.ts +11 -0
- package/dist/components/index.js +11 -0
- package/dist/components/input/atoms.d.ts +19 -1
- package/dist/components/input/atoms.js +19 -1
- package/dist/components/input/color/color-control.svelte +197 -0
- package/dist/components/input/color/color-control.svelte.d.ts +4 -0
- package/dist/components/input/color/index.d.ts +5 -0
- package/dist/components/input/color/index.js +5 -0
- package/dist/components/input/color/segment.svelte +240 -0
- package/dist/components/input/color/segment.svelte.d.ts +6 -0
- package/dist/components/input/color/shared.d.ts +23 -0
- package/dist/components/input/color/shared.js +349 -0
- package/dist/components/input/color/swatch.svelte +23 -0
- package/dist/components/input/color/swatch.svelte.d.ts +8 -0
- package/dist/components/input/color/types.d.ts +56 -0
- package/dist/components/input/color/types.js +2 -0
- package/dist/components/input/index.d.ts +1 -0
- package/dist/components/input/index.js +1 -0
- package/dist/components/input/input-control.svelte +3 -1
- package/dist/components/input/input-currency-control.svelte +189 -0
- package/dist/components/input/input-currency-control.svelte.d.ts +4 -0
- package/dist/components/input/input-email-control.svelte +128 -0
- package/dist/components/input/input-email-control.svelte.d.ts +4 -0
- package/dist/components/input/input-file-control.svelte +127 -0
- package/dist/components/input/input-file-control.svelte.d.ts +4 -0
- package/dist/components/input/input-icon.svelte.d.ts +1 -1
- package/dist/components/input/input-location.svelte +335 -0
- package/dist/components/input/input-location.svelte.d.ts +4 -0
- package/dist/components/input/input-number-control.svelte +114 -0
- package/dist/components/input/input-number-control.svelte.d.ts +6 -0
- package/dist/components/input/input-otp-control.svelte +206 -0
- package/dist/components/input/input-otp-control.svelte.d.ts +4 -0
- package/dist/components/input/input-password-control.svelte +91 -0
- package/dist/components/input/input-password-control.svelte.d.ts +3 -0
- package/dist/components/input/input-phone-control.svelte +394 -0
- package/dist/components/input/input-phone-control.svelte.d.ts +4 -0
- package/dist/components/input/input-placeholder.svelte.d.ts +1 -1
- package/dist/components/input/input-root.svelte +74 -74
- package/dist/components/input/input-text-control.svelte +59 -0
- package/dist/components/input/input-text-control.svelte.d.ts +4 -0
- package/dist/components/input/input-url-control.svelte +218 -0
- package/dist/components/input/input-url-control.svelte.d.ts +4 -0
- package/dist/components/input/time/datetime-control.svelte +281 -0
- package/dist/components/input/time/datetime-control.svelte.d.ts +5 -0
- package/dist/components/input/time/index.d.ts +6 -0
- package/dist/components/input/time/index.js +6 -0
- package/dist/components/input/time/segment.svelte +143 -0
- package/dist/components/input/time/segment.svelte.d.ts +6 -0
- package/dist/components/input/time/shared.d.ts +29 -0
- package/dist/components/input/time/shared.js +150 -0
- package/dist/components/input/time/time-control.svelte +237 -0
- package/dist/components/input/time/time-control.svelte.d.ts +3 -0
- package/dist/components/input/time/types.d.ts +34 -0
- package/dist/components/input/time/types.js +4 -0
- package/dist/components/input/types.d.ts +355 -17
- package/dist/components/label/types.d.ts +4 -7
- package/dist/components/layer/bond.svelte.d.ts +2 -2
- package/dist/components/layer/bond.svelte.js +1 -1
- package/dist/components/layer/index.d.ts +1 -0
- package/dist/components/layer/layer-inner.svelte.d.ts +1 -1
- package/dist/components/layer/layer-root.svelte +65 -65
- package/dist/components/layer/layer-root.svelte.d.ts +1 -1
- package/dist/components/layer/types.d.ts +6 -6
- package/dist/components/lazy/index.d.ts +1 -0
- package/dist/components/lazy/lazy.svelte +29 -29
- package/dist/components/lazy/types.d.ts +4 -4
- package/dist/components/link/index.d.ts +1 -0
- package/dist/components/link/types.d.ts +5 -6
- package/dist/components/list/index.d.ts +1 -0
- package/dist/components/list/types.d.ts +5 -6
- package/dist/components/menu/atoms.d.ts +2 -7
- package/dist/components/menu/atoms.js +2 -7
- package/dist/components/menu/bond.svelte.d.ts +9 -23
- package/dist/components/menu/bond.svelte.js +6 -0
- package/dist/components/menu/index.d.ts +40 -4
- package/dist/components/menu/index.js +26 -3
- package/dist/components/menu/item/bond.svelte.d.ts +27 -0
- package/dist/components/menu/item/bond.svelte.js +54 -0
- package/dist/components/menu/item/controller.svelte.d.ts +1 -1
- package/dist/components/menu/item/index.d.ts +5 -2
- package/dist/components/menu/item/index.js +4 -2
- package/dist/components/menu/item/menu-item.svelte +87 -103
- package/dist/components/menu/item/menu-item.svelte.d.ts +15 -14
- package/dist/components/menu/item/types.d.ts +5 -12
- package/dist/components/menu/menu-content.svelte +40 -40
- package/dist/components/menu/menu-root.svelte +15 -15
- package/dist/components/menu/menu-root.svelte.d.ts +1 -1
- package/dist/components/menu/types.d.ts +2 -6
- package/dist/components/popover/bond.svelte.d.ts +67 -39
- package/dist/components/popover/bond.svelte.js +159 -197
- package/dist/components/popover/index.d.ts +3 -1
- package/dist/components/popover/index.js +3 -1
- package/dist/components/popover/motion.d.ts +29 -1
- package/dist/components/popover/motion.js +128 -50
- package/dist/components/popover/popover-arrow.svelte +97 -110
- package/dist/components/popover/popover-arrow.svelte.d.ts +1 -2
- package/dist/components/popover/popover-content.svelte +159 -123
- package/dist/components/popover/popover-engine.svelte +118 -0
- package/dist/components/popover/popover-engine.svelte.d.ts +3 -0
- package/dist/components/popover/popover-indicator.svelte +2 -13
- package/dist/components/popover/popover-indicator.svelte.d.ts +0 -6
- package/dist/components/popover/popover-root.svelte +87 -49
- package/dist/components/popover/popover-root.svelte.d.ts +2 -1
- package/dist/components/popover/popover-trigger.svelte +35 -35
- package/dist/components/popover/strategies/floating.svelte +109 -0
- package/dist/components/popover/strategies/floating.svelte.d.ts +3 -0
- package/dist/components/popover/strategies/index.d.ts +1 -0
- package/dist/components/popover/strategies/index.js +1 -0
- package/dist/components/popover/strategy-types.d.ts +40 -0
- package/dist/components/popover/strategy-types.js +1 -0
- package/dist/components/popover/types.d.ts +10 -36
- package/dist/components/portal/active-portal.svelte +5 -4
- package/dist/components/portal/bond.svelte.d.ts +12 -8
- package/dist/components/portal/bond.svelte.js +25 -27
- package/dist/components/portal/index.d.ts +1 -0
- package/dist/components/portal/index.js +1 -0
- package/dist/components/portal/portal-inner.svelte +1 -1
- package/dist/components/portal/portal-inner.svelte.d.ts +1 -1
- package/dist/components/portal/portal-root.svelte +76 -76
- package/dist/components/portal/portal-root.svelte.d.ts +1 -1
- package/dist/components/portal/portals/bond.svelte.d.ts +2 -2
- package/dist/components/portal/portals/bond.svelte.js +2 -2
- package/dist/components/portal/teleport.svelte +47 -49
- package/dist/components/portal/teleport.svelte.d.ts +1 -2
- package/dist/components/portal/types.d.ts +7 -25
- package/dist/components/portal/utils.js +3 -3
- package/dist/components/portal/zlayer.svelte.d.ts +16 -0
- package/dist/components/portal/zlayer.svelte.js +25 -0
- package/dist/components/radio/index.d.ts +2 -0
- package/dist/components/radio/index.js +1 -0
- package/dist/components/radio/motion.d.ts +24 -0
- package/dist/components/radio/motion.js +59 -0
- package/dist/components/radio/radio.svelte +22 -12
- package/dist/components/radio/types.d.ts +5 -14
- package/dist/components/root/bond.svelte.d.ts +2 -2
- package/dist/components/root/bond.svelte.js +1 -1
- package/dist/components/root/root.svelte +82 -92
- package/dist/components/root/root.svelte.d.ts +2 -2
- package/dist/components/root/types.d.ts +4 -15
- package/dist/components/scrollable/atoms.d.ts +1 -0
- package/dist/components/scrollable/atoms.js +1 -0
- package/dist/components/scrollable/bond.svelte.d.ts +73 -189
- package/dist/components/scrollable/bond.svelte.js +195 -371
- package/dist/components/scrollable/scrollable-container.css +22 -22
- package/dist/components/scrollable/scrollable-container.svelte +66 -61
- package/dist/components/scrollable/scrollable-container.svelte.d.ts +12 -12
- package/dist/components/scrollable/scrollable-content.svelte +22 -17
- package/dist/components/scrollable/scrollable-content.svelte.d.ts +12 -12
- package/dist/components/scrollable/scrollable-root.svelte +106 -101
- package/dist/components/scrollable/scrollable-root.svelte.d.ts +12 -12
- package/dist/components/scrollable/scrollable-thumb.svelte +21 -45
- package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +12 -12
- package/dist/components/scrollable/scrollable-track.svelte +21 -22
- package/dist/components/scrollable/scrollable-track.svelte.d.ts +12 -12
- package/dist/components/scrollable/types.d.ts +15 -38
- package/dist/components/select/atoms.d.ts +8 -0
- package/dist/components/select/atoms.js +8 -0
- package/dist/components/select/attachments.svelte.d.ts +2 -0
- package/dist/components/select/attachments.svelte.js +5 -0
- package/dist/components/select/bond.svelte.d.ts +56 -0
- package/dist/components/select/bond.svelte.js +112 -0
- package/dist/components/select/index.d.ts +11 -0
- package/dist/components/select/index.js +10 -0
- package/dist/components/select/item/attachments.svelte.d.ts +3 -0
- package/dist/components/select/item/attachments.svelte.js +6 -0
- package/dist/components/select/item/bond.svelte.d.ts +33 -0
- package/dist/components/select/item/bond.svelte.js +77 -0
- package/dist/components/select/item/controller.svelte.d.ts +39 -0
- package/dist/components/select/item/controller.svelte.js +105 -0
- package/dist/components/select/item/index.d.ts +5 -0
- package/dist/components/select/item/index.js +5 -0
- package/dist/components/select/item/select-item.svelte +81 -0
- package/dist/components/select/item/select-item.svelte.d.ts +25 -0
- package/dist/components/select/item/types.d.ts +29 -0
- package/dist/components/select/item/types.js +1 -0
- package/dist/components/select/runes.svelte.d.ts +10 -0
- package/dist/components/select/runes.svelte.js +15 -0
- package/dist/components/select/select-placeholder.svelte +40 -0
- package/dist/components/select/select-placeholder.svelte.d.ts +34 -0
- package/dist/components/select/select-root.svelte +80 -0
- package/dist/components/select/select-root.svelte.d.ts +30 -0
- package/dist/components/select/select-selection.svelte +55 -0
- package/dist/components/select/select-selection.svelte.d.ts +26 -0
- package/dist/components/select/select-selections.svelte +70 -0
- package/dist/components/select/select-selections.svelte.d.ts +5 -0
- package/dist/components/select/select-trigger.svelte +30 -0
- package/dist/components/select/select-trigger.svelte.d.ts +26 -0
- package/dist/components/select/types.d.ts +61 -0
- package/dist/components/select/types.js +1 -0
- package/dist/components/sidebar/bond.svelte.d.ts +10 -7
- package/dist/components/sidebar/bond.svelte.js +20 -15
- package/dist/components/sidebar/sidebar-content.svelte +1 -1
- package/dist/components/sidebar/sidebar-root.svelte +50 -41
- package/dist/components/sidebar/types.d.ts +10 -15
- package/dist/components/slider/index.d.ts +2 -0
- package/dist/components/slider/index.js +2 -0
- package/dist/components/slider/slider.svelte +164 -0
- package/dist/components/slider/slider.svelte.d.ts +6 -0
- package/dist/components/slider/types.d.ts +78 -0
- package/dist/components/slider/types.js +1 -0
- package/dist/components/stack/bond.svelte.d.ts +50 -0
- package/dist/components/stack/bond.svelte.js +174 -0
- package/dist/components/stack/index.d.ts +2 -0
- package/dist/components/stack/index.js +2 -0
- package/dist/components/stack/stack-item.svelte +40 -4
- package/dist/components/stack/stack-item.svelte.d.ts +6 -5
- package/dist/components/stack/stack-root.svelte +33 -4
- package/dist/components/stack/stack-root.svelte.d.ts +14 -5
- package/dist/components/stack/types.d.ts +11 -10
- package/dist/components/stepper/bond.svelte.d.ts +8 -7
- package/dist/components/stepper/bond.svelte.js +14 -11
- package/dist/components/stepper/step/README.md +97 -97
- package/dist/components/stepper/step/bond.svelte.d.ts +74 -63
- package/dist/components/stepper/step/bond.svelte.js +105 -69
- package/dist/components/stepper/step/step-body.svelte +39 -39
- package/dist/components/stepper/step/step-description.svelte +33 -33
- package/dist/components/stepper/step/step-header.svelte +34 -34
- package/dist/components/stepper/step/step-indicator.svelte +62 -62
- package/dist/components/stepper/step/step-root.svelte +42 -42
- package/dist/components/stepper/step/step-separator.svelte +48 -48
- package/dist/components/stepper/step/step-title.svelte +33 -33
- package/dist/components/stepper/step/types.d.ts +13 -57
- package/dist/components/stepper/stepper-body.svelte +31 -43
- package/dist/components/stepper/stepper-content.svelte +45 -45
- package/dist/components/stepper/stepper-footer.svelte +31 -31
- package/dist/components/stepper/stepper-header.svelte +27 -39
- package/dist/components/stepper/stepper-root.svelte +55 -61
- package/dist/components/stepper/types.d.ts +10 -36
- package/dist/components/swatch/index.d.ts +1 -0
- package/dist/components/swatch/index.js +1 -0
- package/dist/components/swatch/swatch.svelte +57 -0
- package/dist/components/swatch/swatch.svelte.d.ts +9 -0
- package/dist/components/switch/index.d.ts +2 -0
- package/dist/components/switch/index.js +2 -0
- package/dist/components/switch/switch.svelte +76 -0
- package/dist/components/switch/switch.svelte.d.ts +6 -0
- package/dist/components/switch/types.d.ts +43 -0
- package/dist/components/switch/types.js +1 -0
- package/dist/components/tabs/bond.svelte.d.ts +38 -19
- package/dist/components/tabs/bond.svelte.js +53 -46
- package/dist/components/tabs/tab/attachments.svelte.d.ts +5 -2
- package/dist/components/tabs/tab/attachments.svelte.js +4 -3
- package/dist/components/tabs/tab/bond.svelte.d.ts +35 -23
- package/dist/components/tabs/tab/bond.svelte.js +81 -56
- package/dist/components/tabs/tab/tab-body.svelte +61 -43
- package/dist/components/tabs/tab/tab-description.svelte +33 -33
- package/dist/components/tabs/tab/tab-header.svelte +61 -61
- package/dist/components/tabs/tab/tab-root.svelte +49 -50
- package/dist/components/tabs/tab/tab-root.svelte.d.ts +13 -35
- package/dist/components/tabs/tabs-body.svelte +39 -35
- package/dist/components/tabs/tabs-body.svelte.d.ts +1 -1
- package/dist/components/tabs/tabs-content.svelte +32 -51
- package/dist/components/tabs/tabs-header.svelte +32 -32
- package/dist/components/tabs/tabs-root.svelte +56 -56
- package/dist/components/tabs/types.d.ts +20 -37
- package/dist/components/textarea/types.d.ts +6 -12
- package/dist/components/toast/atoms.d.ts +1 -0
- package/dist/components/toast/atoms.js +1 -0
- package/dist/components/toast/index.d.ts +1 -0
- package/dist/components/toast/index.js +1 -0
- package/dist/components/toast/manager.svelte.d.ts +38 -0
- package/dist/components/toast/manager.svelte.js +82 -0
- package/dist/components/toast/toast-description.svelte.d.ts +1 -1
- package/dist/components/toast/toast-root-managed.svelte +64 -0
- package/dist/components/toast/toast-root-managed.svelte.d.ts +7 -0
- package/dist/components/toast/toast-root.svelte.d.ts +1 -1
- package/dist/components/toast/toast-title.svelte.d.ts +1 -1
- package/dist/components/toast/toast-toaster.svelte +42 -0
- package/dist/components/toast/toast-toaster.svelte.d.ts +4 -0
- package/dist/components/toast/types.d.ts +22 -31
- package/dist/components/tooltip/index.d.ts +1 -0
- package/dist/components/tooltip/tooltip-trigger.svelte +39 -39
- package/dist/components/tooltip/types.d.ts +5 -8
- package/dist/components/tree/bond.svelte.d.ts +28 -19
- package/dist/components/tree/bond.svelte.js +62 -53
- package/dist/components/tree/tree-body.svelte +1 -1
- package/dist/components/tree/tree-header.svelte +1 -1
- package/dist/components/tree/tree-header.svelte.d.ts +1 -1
- package/dist/components/tree/tree-indicator.svelte +1 -1
- package/dist/components/tree/tree-root.svelte +66 -66
- package/dist/components/tree/types.d.ts +4 -28
- package/dist/components/virtual/index.d.ts +2 -0
- package/dist/components/virtual/index.js +2 -0
- package/dist/components/virtual/types.d.ts +1 -6
- package/dist/constants/motion.d.ts +9 -0
- package/dist/constants/motion.js +9 -0
- package/dist/context/index.d.ts +1 -1
- package/dist/context/preset.svelte.d.ts +169 -2
- package/dist/runes/color-scheme.svelte.js +17 -5
- package/dist/shared/bond.svelte.d.ts +29 -3
- package/dist/shared/bond.svelte.js +126 -4
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/motion.d.ts +1 -0
- package/dist/shared/motion.js +2 -8
- package/dist/types/index.d.ts +4 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/promise.svelte.d.ts +5 -0
- package/dist/utils/promise.svelte.js +17 -0
- package/dist/utils/variant.d.ts +10 -1
- package/dist/utils/variant.js +11 -1
- package/package.json +171 -48
- package/dist/components/accordion/accordion.stories.svelte +0 -70
- package/dist/components/accordion/accordion.stories.svelte.d.ts +0 -18
- package/dist/components/alert/alert.stories.svelte +0 -400
- package/dist/components/alert/alert.stories.svelte.d.ts +0 -3
- package/dist/components/avatar/avatar.stories.svelte +0 -22
- package/dist/components/avatar/avatar.stories.svelte.d.ts +0 -26
- package/dist/components/badge/badge.stories.svelte +0 -12
- package/dist/components/badge/badge.stories.svelte.d.ts +0 -26
- package/dist/components/breadcrumb/breadcrumb.stories.svelte +0 -16
- package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +0 -26
- package/dist/components/button/button.stories.svelte +0 -27
- package/dist/components/button/button.stories.svelte.d.ts +0 -18
- package/dist/components/calendar/calendar.stories.svelte +0 -26
- package/dist/components/calendar/calendar.stories.svelte.d.ts +0 -26
- package/dist/components/card/card.stories.svelte +0 -133
- package/dist/components/card/card.stories.svelte.d.ts +0 -19
- package/dist/components/checkbox/checkbox.stories.svelte +0 -22
- package/dist/components/checkbox/checkbox.stories.svelte.d.ts +0 -6
- package/dist/components/collapsible/collapsible.stories.svelte +0 -172
- package/dist/components/collapsible/collapsible.stories.svelte.d.ts +0 -18
- package/dist/components/combobox/combobox.stories.svelte +0 -63
- package/dist/components/combobox/combobox.stories.svelte.d.ts +0 -3
- package/dist/components/container/container.stories.svelte +0 -20
- package/dist/components/container/container.stories.svelte.d.ts +0 -26
- package/dist/components/contextmenu/atoms.d.ts +0 -0
- package/dist/components/contextmenu/atoms.js +0 -1
- package/dist/components/contextmenu/contextmenu-trigger.svelte +0 -0
- package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +0 -26
- package/dist/components/contextmenu/indext.d.ts +0 -0
- package/dist/components/contextmenu/indext.js +0 -1
- package/dist/components/datagrid/datagrid.stories.svelte +0 -72
- package/dist/components/datagrid/datagrid.stories.svelte.d.ts +0 -6
- package/dist/components/datagrid/td/bond.svelte.d.ts +0 -28
- package/dist/components/datagrid/td/bond.svelte.js +0 -40
- package/dist/components/datagrid/td/datagrid-td.svelte +0 -66
- package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +0 -30
- package/dist/components/datagrid/td/index.d.ts +0 -2
- package/dist/components/datagrid/td/index.js +0 -2
- package/dist/components/datagrid/th/bond.svelte.d.ts +0 -38
- package/dist/components/datagrid/th/bond.svelte.js +0 -66
- package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +0 -26
- package/dist/components/datagrid/th/index.d.ts +0 -2
- package/dist/components/datagrid/th/index.js +0 -2
- package/dist/components/datagrid/tr/bond.svelte.d.ts +0 -37
- package/dist/components/datagrid/tr/bond.svelte.js +0 -72
- package/dist/components/datagrid/tr/datagrid-tr.svelte +0 -90
- package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +0 -28
- package/dist/components/datagrid/tr/index.d.ts +0 -2
- package/dist/components/datagrid/tr/index.js +0 -2
- package/dist/components/date-picker/date-picker.stories.svelte +0 -35
- package/dist/components/date-picker/date-picker.stories.svelte.d.ts +0 -3
- package/dist/components/dialog/dialog.stories.svelte +0 -64
- package/dist/components/dialog/dialog.stories.svelte.d.ts +0 -3
- package/dist/components/drawer/drawer.stories.svelte +0 -141
- package/dist/components/drawer/drawer.stories.svelte.d.ts +0 -3
- package/dist/components/dropdown/dropdown.stories.svelte +0 -127
- package/dist/components/dropdown/dropdown.stories.svelte.d.ts +0 -3
- package/dist/components/element/element.stories.svelte +0 -37
- package/dist/components/element/element.stories.svelte.d.ts +0 -3
- package/dist/components/form/field/field-errors.svelte +0 -9
- package/dist/components/form/field/field-errors.svelte.d.ts +0 -11
- package/dist/components/form/form.stories.svelte +0 -96
- package/dist/components/form/form.stories.svelte.d.ts +0 -18
- package/dist/components/image/image.stories.svelte +0 -20
- package/dist/components/image/image.stories.svelte.d.ts +0 -26
- package/dist/components/input/input.stories.svelte +0 -35
- package/dist/components/input/input.stories.svelte.d.ts +0 -18
- package/dist/components/label/label.stories.svelte +0 -15
- package/dist/components/label/label.stories.svelte.d.ts +0 -26
- package/dist/components/lazy/lazy.stories.svelte +0 -28
- package/dist/components/lazy/lazy.stories.svelte.d.ts +0 -19
- package/dist/components/link/link.stories.svelte +0 -15
- package/dist/components/link/link.stories.svelte.d.ts +0 -26
- package/dist/components/menu/menu.stories.svelte +0 -33
- package/dist/components/menu/menu.stories.svelte.d.ts +0 -3
- package/dist/components/popover/popover.stories.svelte +0 -37
- package/dist/components/popover/popover.stories.svelte.d.ts +0 -3
- package/dist/components/qr-code/qr-code.stories.svelte +0 -18
- package/dist/components/qr-code/qr-code.stories.svelte.d.ts +0 -26
- package/dist/components/radio/radio-group.stories.svelte +0 -41
- package/dist/components/radio/radio-group.stories.svelte.d.ts +0 -6
- package/dist/components/radio/radio.stories.svelte +0 -17
- package/dist/components/radio/radio.stories.svelte.d.ts +0 -6
- package/dist/components/root/l0-portal.svelte +0 -8
- package/dist/components/root/l0-portal.svelte.d.ts +0 -26
- package/dist/components/root/l1-portal.svelte +0 -7
- package/dist/components/root/l1-portal.svelte.d.ts +0 -26
- package/dist/components/root/toasts-portal.svelte +0 -7
- package/dist/components/root/toasts-portal.svelte.d.ts +0 -26
- package/dist/components/scrollable/scrollable.stories.svelte +0 -116
- package/dist/components/scrollable/scrollable.stories.svelte.d.ts +0 -26
- package/dist/components/sidebar/sidebar.stories.svelte +0 -43
- package/dist/components/sidebar/sidebar.stories.svelte.d.ts +0 -3
- package/dist/components/stepper/stepper.stories.svelte +0 -264
- package/dist/components/stepper/stepper.stories.svelte.d.ts +0 -4
- package/dist/components/tabs/tabs.stories.svelte +0 -70
- package/dist/components/tabs/tabs.stories.svelte.d.ts +0 -3
- package/dist/components/tooltip/tooltip.stories.svelte +0 -32
- package/dist/components/tooltip/tooltip.stories.svelte.d.ts +0 -3
- package/dist/components/tree/tree.stories.svelte +0 -142
- package/dist/components/tree/tree.stories.svelte.d.ts +0 -3
- /package/dist/components/{contextmenu → context-menu}/types.js +0 -0
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
-
import { defineState } from '../../utils';
|
|
3
|
-
import { defineProperty } from '../../utils/state';
|
|
4
|
-
import { HtmlAtom, type Base } from '../atom';
|
|
5
|
-
import { CardBond, CardBondState, type CardBondProps } from './bond.svelte';
|
|
6
|
-
import type { CardRootProps } from './types';
|
|
7
|
-
import './card.css';
|
|
8
|
-
|
|
9
|
-
let {
|
|
10
|
-
class: klass = '',
|
|
11
|
-
disabled = false,
|
|
12
|
-
factory = _factory,
|
|
13
|
-
children = undefined,
|
|
14
|
-
onclick = undefined,
|
|
15
|
-
onkeydown = undefined,
|
|
16
|
-
onmount = undefined,
|
|
17
|
-
ondestroy = undefined,
|
|
18
|
-
animate = undefined,
|
|
19
|
-
enter = undefined,
|
|
20
|
-
exit = undefined,
|
|
21
|
-
initial = undefined,
|
|
22
|
-
...restProps
|
|
23
|
-
}: CardRootProps<E, B> = $props();
|
|
24
|
-
|
|
25
|
-
const bondProps = defineState<CardBondProps>(
|
|
26
|
-
[
|
|
27
|
-
defineProperty(
|
|
28
|
-
'disabled',
|
|
29
|
-
() => disabled,
|
|
30
|
-
(v) => {
|
|
31
|
-
disabled = v;
|
|
32
|
-
}
|
|
33
|
-
),
|
|
34
|
-
defineProperty('rest', () => restProps)
|
|
35
|
-
],
|
|
36
|
-
() => ({})
|
|
37
|
-
);
|
|
38
|
-
const bond = _factory(bondProps).share();
|
|
39
|
-
|
|
40
|
-
// Disabled styles
|
|
41
|
-
const disabledStyles = disabled ? 'opacity-50 cursor-not-allowed' : '';
|
|
42
|
-
|
|
43
|
-
const rootProps = $derived({
|
|
44
|
-
...bond?.root(),
|
|
45
|
-
...restProps
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
function _factory(props: typeof bondProps) {
|
|
49
|
-
const bondState = new CardBondState(() => props);
|
|
50
|
-
return new CardBond(bondState);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
function handleClick(event: MouseEvent) {
|
|
54
|
-
if (disabled) return;
|
|
55
|
-
onclick?.(event);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
function handleKeydown(event: KeyboardEvent) {
|
|
59
|
-
if (disabled) return;
|
|
60
|
-
if (event.key === 'Enter' || event.key === ' ') {
|
|
61
|
-
event.preventDefault();
|
|
62
|
-
onclick?.(event as unknown as MouseEvent);
|
|
63
|
-
}
|
|
64
|
-
onkeydown?.(event);
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export function getBond() {
|
|
68
|
-
return bond;
|
|
69
|
-
}
|
|
70
|
-
</script>
|
|
71
|
-
|
|
72
|
-
<HtmlAtom
|
|
73
|
-
preset="card"
|
|
74
|
-
class={[
|
|
75
|
-
'card bg-card border-border flex flex-col overflow-clip rounded-lg border shadow-sm',
|
|
76
|
-
disabledStyles,
|
|
77
|
-
'$preset',
|
|
78
|
-
klass
|
|
79
|
-
]}
|
|
80
|
-
{bond}
|
|
81
|
-
enter={enter?.bind(bond.state)}
|
|
82
|
-
exit={exit?.bind(bond.state)}
|
|
83
|
-
initial={initial?.bind(bond.state)}
|
|
84
|
-
animate={animate?.bind(bond.state)}
|
|
85
|
-
onmount={onmount?.bind(bond.state)}
|
|
86
|
-
ondestroy={ondestroy?.bind(bond.state)}
|
|
87
|
-
onclick={handleClick}
|
|
88
|
-
onkeydown={handleKeydown}
|
|
89
|
-
{...rootProps}
|
|
90
|
-
>
|
|
91
|
-
{@render children?.({ card: bond })}
|
|
92
|
-
</HtmlAtom>
|
|
1
|
+
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import { defineState } from '../../utils';
|
|
3
|
+
import { defineProperty } from '../../utils/state';
|
|
4
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
5
|
+
import { CardBond, CardBondState, type CardBondProps } from './bond.svelte';
|
|
6
|
+
import type { CardRootProps } from './types';
|
|
7
|
+
import './card.css';
|
|
8
|
+
|
|
9
|
+
let {
|
|
10
|
+
class: klass = '',
|
|
11
|
+
disabled = false,
|
|
12
|
+
factory = _factory,
|
|
13
|
+
children = undefined,
|
|
14
|
+
onclick = undefined,
|
|
15
|
+
onkeydown = undefined,
|
|
16
|
+
onmount = undefined,
|
|
17
|
+
ondestroy = undefined,
|
|
18
|
+
animate = undefined,
|
|
19
|
+
enter = undefined,
|
|
20
|
+
exit = undefined,
|
|
21
|
+
initial = undefined,
|
|
22
|
+
...restProps
|
|
23
|
+
}: CardRootProps<E, B> = $props();
|
|
24
|
+
|
|
25
|
+
const bondProps = defineState<CardBondProps>(
|
|
26
|
+
[
|
|
27
|
+
defineProperty(
|
|
28
|
+
'disabled',
|
|
29
|
+
() => disabled,
|
|
30
|
+
(v) => {
|
|
31
|
+
disabled = v;
|
|
32
|
+
}
|
|
33
|
+
),
|
|
34
|
+
defineProperty('rest', () => restProps)
|
|
35
|
+
],
|
|
36
|
+
() => ({})
|
|
37
|
+
);
|
|
38
|
+
const bond = _factory(bondProps).share();
|
|
39
|
+
|
|
40
|
+
// Disabled styles
|
|
41
|
+
const disabledStyles = disabled ? 'opacity-50 cursor-not-allowed' : '';
|
|
42
|
+
|
|
43
|
+
const rootProps = $derived({
|
|
44
|
+
...bond?.root(),
|
|
45
|
+
...restProps
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
function _factory(props: typeof bondProps) {
|
|
49
|
+
const bondState = new CardBondState(() => props);
|
|
50
|
+
return new CardBond(bondState);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function handleClick(event: MouseEvent) {
|
|
54
|
+
if (disabled) return;
|
|
55
|
+
onclick?.(event);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
function handleKeydown(event: KeyboardEvent) {
|
|
59
|
+
if (disabled) return;
|
|
60
|
+
if (event.key === 'Enter' || event.key === ' ') {
|
|
61
|
+
event.preventDefault();
|
|
62
|
+
onclick?.(event as unknown as MouseEvent);
|
|
63
|
+
}
|
|
64
|
+
onkeydown?.(event);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function getBond() {
|
|
68
|
+
return bond;
|
|
69
|
+
}
|
|
70
|
+
</script>
|
|
71
|
+
|
|
72
|
+
<HtmlAtom
|
|
73
|
+
preset="card"
|
|
74
|
+
class={[
|
|
75
|
+
'card bg-card border-border flex flex-col overflow-clip rounded-lg border shadow-sm',
|
|
76
|
+
disabledStyles,
|
|
77
|
+
'$preset',
|
|
78
|
+
klass
|
|
79
|
+
]}
|
|
80
|
+
{bond}
|
|
81
|
+
enter={enter?.bind(bond.state)}
|
|
82
|
+
exit={exit?.bind(bond.state)}
|
|
83
|
+
initial={initial?.bind(bond.state)}
|
|
84
|
+
animate={animate?.bind(bond.state)}
|
|
85
|
+
onmount={onmount?.bind(bond.state)}
|
|
86
|
+
ondestroy={ondestroy?.bind(bond.state)}
|
|
87
|
+
onclick={handleClick}
|
|
88
|
+
onkeydown={handleKeydown}
|
|
89
|
+
{...rootProps}
|
|
90
|
+
>
|
|
91
|
+
{@render children?.({ card: bond })}
|
|
92
|
+
</HtmlAtom>
|
|
@@ -1,68 +1,29 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
2
|
import type { CardBond } from './bond.svelte';
|
|
3
|
-
import type { HtmlAtomProps, Base } from '../atom';
|
|
3
|
+
import type { HtmlAtomProps, Base, SnippetProps } from '../atom';
|
|
4
4
|
import type { Factory } from '../../types';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*/
|
|
8
|
-
export interface CardExtendProps {
|
|
5
|
+
export interface CardSnippetProps extends SnippetProps {
|
|
6
|
+
card: CardBond;
|
|
9
7
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
*/
|
|
13
|
-
export interface CardHeaderExtendProps {
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Extend this interface to add custom card body/content properties in your application.
|
|
17
|
-
*/
|
|
18
|
-
export interface CardBodyExtendProps {
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Extend this interface to add custom card footer properties in your application.
|
|
22
|
-
*/
|
|
23
|
-
export interface CardFooterExtendProps {
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Extend this interface to add custom card title properties in your application.
|
|
27
|
-
*/
|
|
28
|
-
export interface CardTitleExtendProps {
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Extend this interface to add custom card subtitle properties in your application.
|
|
32
|
-
*/
|
|
33
|
-
export interface CardSubtitleExtendProps {
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Extend this interface to add custom card description properties in your application.
|
|
37
|
-
*/
|
|
38
|
-
export interface CardDescriptionExtendProps {
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Extend this interface to add custom card media properties in your application.
|
|
42
|
-
*/
|
|
43
|
-
export interface CardMediaExtendProps {
|
|
44
|
-
}
|
|
45
|
-
export interface CardRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends Omit<HtmlAtomProps<E, B>, 'children'>, CardExtendProps {
|
|
8
|
+
export type CardChildren = Snippet<[CardSnippetProps]>;
|
|
9
|
+
export interface CardRootProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
|
|
46
10
|
disabled?: boolean;
|
|
47
11
|
factory?: Factory<CardBond>;
|
|
48
|
-
children?: Snippet<[{
|
|
49
|
-
card: CardBond;
|
|
50
|
-
}]>;
|
|
51
12
|
onclick?: (event: MouseEvent) => void;
|
|
52
13
|
onkeydown?: (event: KeyboardEvent) => void;
|
|
53
14
|
}
|
|
54
|
-
export interface CardHeaderProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B
|
|
15
|
+
export interface CardHeaderProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
|
|
55
16
|
}
|
|
56
|
-
export interface CardBodyProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B
|
|
17
|
+
export interface CardBodyProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
|
|
57
18
|
}
|
|
58
|
-
export interface CardFooterProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B
|
|
19
|
+
export interface CardFooterProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
|
|
59
20
|
}
|
|
60
|
-
export interface CardTitleProps<E extends keyof HTMLElementTagNameMap = 'h3', B extends Base = Base> extends HtmlAtomProps<E, B
|
|
21
|
+
export interface CardTitleProps<E extends keyof HTMLElementTagNameMap = 'h3', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
|
|
61
22
|
}
|
|
62
|
-
export interface CardSubtitleProps<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> extends HtmlAtomProps<E, B
|
|
23
|
+
export interface CardSubtitleProps<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
|
|
63
24
|
}
|
|
64
|
-
export interface CardDescriptionProps<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> extends HtmlAtomProps<E, B
|
|
25
|
+
export interface CardDescriptionProps<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
|
|
65
26
|
}
|
|
66
|
-
export interface CardMediaProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B
|
|
27
|
+
export interface CardMediaProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> extends HtmlAtomProps<E, B, CardChildren> {
|
|
67
28
|
}
|
|
68
29
|
export type CardContentProps<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base> = CardBodyProps<E, B>;
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
-
import { circOut } from 'svelte/easing';
|
|
3
|
-
import type { HTMLInputAttributes } from 'svelte/elements';
|
|
4
|
-
import { scale } from 'svelte/transition';
|
|
5
2
|
import { Icon } from '../icon';
|
|
6
3
|
import { HtmlAtom } from '../atom';
|
|
7
4
|
import CheckmarkRegularIcon from '../../icons/icon-checkmark.svelte';
|
|
8
|
-
import { DURATION } from '../../shared';
|
|
9
5
|
import type { CheckboxProps } from './types';
|
|
6
|
+
import { animateCheckboxIndicator } from './motion';
|
|
10
7
|
import './checkbox.css';
|
|
8
|
+
import { Input } from '../input';
|
|
11
9
|
|
|
12
10
|
let {
|
|
13
11
|
class: klass = '',
|
|
@@ -29,8 +27,9 @@
|
|
|
29
27
|
onfocus,
|
|
30
28
|
onclick = undefined,
|
|
31
29
|
...restProps
|
|
32
|
-
}: CheckboxProps
|
|
30
|
+
}: CheckboxProps = $props();
|
|
33
31
|
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
34
33
|
let checkboxElement: HTMLInputElement | undefined = $state();
|
|
35
34
|
|
|
36
35
|
// Computed state for visual representation
|
|
@@ -38,27 +37,34 @@
|
|
|
38
37
|
const isIndeterminate = $derived(indeterminate === true);
|
|
39
38
|
const showCheckmark = $derived(isChecked && !isIndeterminate);
|
|
40
39
|
|
|
40
|
+
const overlayContent = $derived(isIndeterminate ? indeterminateSnippet : showCheckmark ? checkedSnippet : undefined);
|
|
41
|
+
|
|
41
42
|
function handleChange(ev: Event) {
|
|
42
43
|
onchange?.(ev, {
|
|
43
|
-
checked: checked
|
|
44
|
-
value: checked,
|
|
45
|
-
type: 'boolean'
|
|
44
|
+
checked: checked
|
|
46
45
|
});
|
|
47
46
|
}
|
|
48
47
|
|
|
49
48
|
function handleInput(ev: Event) {
|
|
50
49
|
oninput?.(ev, {
|
|
51
|
-
checked: checked
|
|
52
|
-
value: checked,
|
|
53
|
-
type: 'boolean'
|
|
50
|
+
checked: checked
|
|
54
51
|
});
|
|
55
52
|
}
|
|
56
53
|
|
|
57
54
|
function handleClick(ev: MouseEvent) {
|
|
58
55
|
if (disabled) return;
|
|
56
|
+
|
|
57
|
+
// Check if click originated from the hidden input (via label click)
|
|
58
|
+
// If so, the input's bind:checked will handle the toggle
|
|
59
|
+
console.log(ev.target);
|
|
60
|
+
if (ev.target === checkboxElement) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
59
63
|
|
|
64
|
+
// Let user's onclick handler run first
|
|
60
65
|
onclick?.(ev);
|
|
61
66
|
|
|
67
|
+
// If user prevented default, don't toggle
|
|
62
68
|
if (ev.defaultPrevented) {
|
|
63
69
|
return;
|
|
64
70
|
}
|
|
@@ -69,22 +75,64 @@
|
|
|
69
75
|
indeterminate = false;
|
|
70
76
|
checked = true;
|
|
71
77
|
} else {
|
|
72
|
-
//
|
|
78
|
+
// Checked → unchecked or unchecked → checked
|
|
79
|
+
ev.stopPropagation(); // Prevent click from bubbling to label and toggling again
|
|
73
80
|
checked = !checked;
|
|
74
81
|
}
|
|
75
82
|
|
|
76
|
-
// Trigger input event manually if needed
|
|
77
83
|
handleInput(ev);
|
|
78
84
|
}
|
|
79
85
|
</script>
|
|
80
86
|
|
|
87
|
+
{#snippet indeterminateSnippet()}
|
|
88
|
+
<HtmlAtom
|
|
89
|
+
preset="checkbox.indeterminate"
|
|
90
|
+
class={[
|
|
91
|
+
'checkbox-indeterminate pointer-events-none flex size-full scale-50 items-center justify-center rounded-inherit bg-current'
|
|
92
|
+
]}
|
|
93
|
+
base={indeterminateContent}
|
|
94
|
+
enter={animateCheckboxIndicator()}
|
|
95
|
+
exit={animateCheckboxIndicator()}
|
|
96
|
+
/>
|
|
97
|
+
{/snippet}
|
|
98
|
+
|
|
99
|
+
{#snippet customCheckedSnippet()}
|
|
100
|
+
<HtmlAtom
|
|
101
|
+
preset="checkbox.checkmark"
|
|
102
|
+
class={[
|
|
103
|
+
'checkbox-indicator text-accent pointer-events-none flex h-full content-center items-center justify-center overflow-hidden p-0.5'
|
|
104
|
+
]}
|
|
105
|
+
base={checkedContent}
|
|
106
|
+
enter={animateCheckboxIndicator()}
|
|
107
|
+
exit={animateCheckboxIndicator()}
|
|
108
|
+
/>
|
|
109
|
+
{/snippet}
|
|
110
|
+
|
|
111
|
+
{#snippet defaultCheckedSnippet()}
|
|
112
|
+
<HtmlAtom
|
|
113
|
+
preset="checkbox.checkmark"
|
|
114
|
+
class={[
|
|
115
|
+
'checkbox-indicator text-accent pointer-events-none flex h-full content-center items-center justify-center overflow-hidden p-0.5'
|
|
116
|
+
]}
|
|
117
|
+
enter={animateCheckboxIndicator()}
|
|
118
|
+
exit={animateCheckboxIndicator()}
|
|
119
|
+
>
|
|
120
|
+
<Icon class="h-full p-0" src={CheckmarkRegularIcon} />
|
|
121
|
+
</HtmlAtom>
|
|
122
|
+
{/snippet}
|
|
123
|
+
|
|
124
|
+
{#snippet checkedSnippet()}
|
|
125
|
+
{@const content = checkedContent ? customCheckedSnippet : defaultCheckedSnippet}
|
|
126
|
+
{@render content?.()}
|
|
127
|
+
{/snippet}
|
|
128
|
+
|
|
81
129
|
<!-- svelte-ignore a11y_click_events_have_key_events -->
|
|
82
130
|
<!-- svelte-ignore a11y_no_noninteractive_element_interactions -->
|
|
83
|
-
<
|
|
131
|
+
<Input.Root
|
|
84
132
|
preset="checkbox"
|
|
85
133
|
as="div"
|
|
86
134
|
class={[
|
|
87
|
-
'checkbox-root
|
|
135
|
+
'checkbox-root aspect-square shrink-0 text-foreground h-5 w-fit cursor-pointer rounded-sm outline-0 outline-offset-2 transition-colors duration-100',
|
|
88
136
|
isChecked && 'bg-foreground',
|
|
89
137
|
'$preset',
|
|
90
138
|
klass,
|
|
@@ -117,43 +165,5 @@
|
|
|
117
165
|
tabindex="-1"
|
|
118
166
|
/>
|
|
119
167
|
|
|
120
|
-
{
|
|
121
|
-
|
|
122
|
-
<HtmlAtom
|
|
123
|
-
preset="checkbox.indeterminate"
|
|
124
|
-
class={[
|
|
125
|
-
'checkbox-indeterminate pointer-events-none flex size-full scale-50 items-center justify-center rounded-[inherit] bg-current'
|
|
126
|
-
]}
|
|
127
|
-
base={indeterminateContent}
|
|
128
|
-
/>
|
|
129
|
-
{:else}
|
|
130
|
-
<HtmlAtom
|
|
131
|
-
preset="checkbox.indeterminate"
|
|
132
|
-
class={[
|
|
133
|
-
'checkbox-indeterminate pointer-events-none flex size-full scale-50 items-center justify-center rounded-[inherit] bg-current'
|
|
134
|
-
]}
|
|
135
|
-
/>
|
|
136
|
-
{/if}
|
|
137
|
-
{:else if showCheckmark}
|
|
138
|
-
{#if checkedContent}
|
|
139
|
-
<HtmlAtom
|
|
140
|
-
preset="checkbox.checkmark"
|
|
141
|
-
class={[
|
|
142
|
-
'checkbox-indicator text-accent pointer-events-none flex h-full content-center items-center justify-center overflow-hidden p-0.5'
|
|
143
|
-
]}
|
|
144
|
-
base={checkedContent}
|
|
145
|
-
/>
|
|
146
|
-
{:else}
|
|
147
|
-
<HtmlAtom
|
|
148
|
-
preset="checkbox.checkmark"
|
|
149
|
-
class={[
|
|
150
|
-
'checkbox-indicator text-accent pointer-events-none flex h-full content-center items-center justify-center overflow-hidden p-0.5'
|
|
151
|
-
]}
|
|
152
|
-
enter={(node) => scale(node, { duration: DURATION.fast, easing: circOut, start: 0.6 })}
|
|
153
|
-
exit={(node) => scale(node, { duration: DURATION.fast, easing: circOut, start: 0.6 })}
|
|
154
|
-
>
|
|
155
|
-
<Icon class="h-full p-0" src={CheckmarkRegularIcon} />
|
|
156
|
-
</HtmlAtom>
|
|
157
|
-
{/if}
|
|
158
|
-
{/if}
|
|
159
|
-
</HtmlAtom>
|
|
168
|
+
{@render overlayContent?.()}
|
|
169
|
+
</Input.Root>
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import type { HTMLInputAttributes } from 'svelte/elements';
|
|
2
1
|
import type { CheckboxProps } from './types';
|
|
3
2
|
import './checkbox.css';
|
|
4
|
-
|
|
5
|
-
declare const Checkbox: import("svelte").Component<$$ComponentProps, {}, "value" | "group" | "checked" | "indeterminate">;
|
|
3
|
+
declare const Checkbox: import("svelte").Component<CheckboxProps, {}, "value" | "group" | "checked" | "indeterminate">;
|
|
6
4
|
type Checkbox = ReturnType<typeof Checkbox>;
|
|
7
5
|
export default Checkbox;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { EasingFunction } from 'svelte/transition';
|
|
2
|
+
import type { TransitionFunction } from '../element';
|
|
3
|
+
export type AnimateCheckboxIndicatorParams = {
|
|
4
|
+
/** Animation duration in milliseconds */
|
|
5
|
+
duration?: number;
|
|
6
|
+
/** Delay before animation starts in milliseconds (default: 0) */
|
|
7
|
+
delay?: number;
|
|
8
|
+
/** Custom easing function (default: cubicIn) */
|
|
9
|
+
easing?: EasingFunction;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Exit transition for checkbox indicator (uncheck/clear indeterminate)
|
|
13
|
+
* Quick scale and fade out
|
|
14
|
+
*
|
|
15
|
+
* Respects prefers-reduced-motion by using instant transition
|
|
16
|
+
*/
|
|
17
|
+
export declare function animateCheckboxIndicator(params?: AnimateCheckboxIndicatorParams): TransitionFunction<HTMLElement>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { cubicIn } from 'svelte/easing';
|
|
2
|
+
/**
|
|
3
|
+
* Check if user prefers reduced motion
|
|
4
|
+
*/
|
|
5
|
+
function prefersReducedMotion() {
|
|
6
|
+
if (typeof window === 'undefined')
|
|
7
|
+
return false;
|
|
8
|
+
return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Exit transition for checkbox indicator (uncheck/clear indeterminate)
|
|
12
|
+
* Quick scale and fade out
|
|
13
|
+
*
|
|
14
|
+
* Respects prefers-reduced-motion by using instant transition
|
|
15
|
+
*/
|
|
16
|
+
export function animateCheckboxIndicator(params = {}) {
|
|
17
|
+
const { duration = 100, delay = 0, easing = cubicIn } = params;
|
|
18
|
+
return () => {
|
|
19
|
+
// If user prefers reduced motion, use instant transition
|
|
20
|
+
if (prefersReducedMotion()) {
|
|
21
|
+
return {
|
|
22
|
+
duration: 0,
|
|
23
|
+
delay: 0,
|
|
24
|
+
css: () => ''
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
return () => ({
|
|
28
|
+
duration,
|
|
29
|
+
delay,
|
|
30
|
+
easing,
|
|
31
|
+
css: (t) => `transform: scale(${t}); opacity: ${t};`
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
}
|
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
import { type Component, type Snippet } from 'svelte';
|
|
2
|
-
import { type HtmlAtomProps } from '../atom';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export interface CheckboxExtendProps {
|
|
2
|
+
import { type HtmlAtomProps, type SnippetProps } from '../atom';
|
|
3
|
+
export interface CheckboxSnippetProps extends SnippetProps {
|
|
4
|
+
checked?: boolean;
|
|
5
|
+
indeterminate?: boolean;
|
|
7
6
|
}
|
|
8
|
-
export
|
|
7
|
+
export type CheckboxChildren = Snippet<[CheckboxSnippetProps]>;
|
|
8
|
+
export interface CheckboxProps extends HtmlAtomProps<'button', never, CheckboxChildren> {
|
|
9
9
|
value?: string;
|
|
10
10
|
group?: string[];
|
|
11
11
|
checked?: boolean;
|
|
12
12
|
indeterminate?: boolean;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
id?: string;
|
|
15
|
+
name?: string;
|
|
13
16
|
checkedContent?: Component | Snippet;
|
|
14
17
|
indeterminateContent?: Component | Snippet;
|
|
15
|
-
children?: Snippet<[]>;
|
|
16
18
|
onclick?: (ev?: Event) => void;
|
|
17
19
|
onchange?: (ev?: Event, options?: {
|
|
18
20
|
checked: boolean;
|
|
19
21
|
}) => void;
|
|
22
|
+
oninput?: (ev?: Event, options?: {
|
|
23
|
+
checked: boolean;
|
|
24
|
+
}) => void;
|
|
25
|
+
onblur?: () => void;
|
|
26
|
+
onfocus?: () => void;
|
|
20
27
|
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { HtmlAtom } from '../atom';
|
|
3
|
+
import { Icon } from '../icon';
|
|
4
|
+
import type { ChipCloseButtonProps } from './types';
|
|
5
|
+
import CloseIcon from '../../icons/icon-close.svelte';
|
|
6
|
+
|
|
7
|
+
let {
|
|
8
|
+
class: klass = '',
|
|
9
|
+
preset = 'chip.close-button',
|
|
10
|
+
icon = undefined,
|
|
11
|
+
onclick = undefined,
|
|
12
|
+
...restProps
|
|
13
|
+
}: ChipCloseButtonProps = $props();
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<HtmlAtom
|
|
17
|
+
{preset}
|
|
18
|
+
as="button"
|
|
19
|
+
class={[
|
|
20
|
+
'bg-foreground/0 hover:bg-foreground/5 active:bg-foreground/10 inline-flex aspect-square h-full cursor-pointer items-center justify-center rounded-xs p-0.5',
|
|
21
|
+
'$preset',
|
|
22
|
+
klass
|
|
23
|
+
]}
|
|
24
|
+
type="button"
|
|
25
|
+
{onclick}
|
|
26
|
+
{...restProps}
|
|
27
|
+
>
|
|
28
|
+
{#if icon}
|
|
29
|
+
{@render icon?.()}
|
|
30
|
+
{:else}
|
|
31
|
+
<Icon src={CloseIcon} class="h-full" />
|
|
32
|
+
{/if}
|
|
33
|
+
</HtmlAtom>
|
|
@@ -1,41 +1,34 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
'
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
{#if icon}
|
|
36
|
-
{@render icon?.()}
|
|
37
|
-
{:else}
|
|
38
|
-
<Icon src={CloseIcon} class="h-full" />
|
|
39
|
-
{/if}
|
|
40
|
-
</button>
|
|
41
|
-
</HtmlAtom>
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { HtmlAtom } from '../atom';
|
|
3
|
+
import type { ChipProps } from './types';
|
|
4
|
+
import ChipCloseButton from './chip-close-button.svelte';
|
|
5
|
+
|
|
6
|
+
let {
|
|
7
|
+
class: klass = '',
|
|
8
|
+
preset = 'chip',
|
|
9
|
+
children = undefined,
|
|
10
|
+
icon = undefined,
|
|
11
|
+
closeButton = undefined,
|
|
12
|
+
onclose = undefined,
|
|
13
|
+
...restProps
|
|
14
|
+
}: ChipProps = $props();
|
|
15
|
+
</script>
|
|
16
|
+
|
|
17
|
+
<HtmlAtom
|
|
18
|
+
{preset}
|
|
19
|
+
as="div"
|
|
20
|
+
class={[
|
|
21
|
+
'chip text-foreground bg-foreground/5 border-border hover:bg-foreground/10 active:bg-foreground/15 disabled:bg-muted disabled:text-muted-foreground w-fit cursor-pointer rounded-md px-3 py-1 transition-colors duration-100',
|
|
22
|
+
'$preset',
|
|
23
|
+
klass
|
|
24
|
+
]}
|
|
25
|
+
{...restProps}
|
|
26
|
+
>
|
|
27
|
+
{@render children?.()}
|
|
28
|
+
|
|
29
|
+
{#if closeButton}
|
|
30
|
+
{@render closeButton?.()}
|
|
31
|
+
{:else}
|
|
32
|
+
<ChipCloseButton {icon} onclick={onclose} />
|
|
33
|
+
{/if}
|
|
34
|
+
</HtmlAtom>
|