@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
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Abdelhalim Riache [https://github.com/ryu-man](https://github.com/ryu-man)
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Abdelhalim Riache [https://github.com/ryu-man](https://github.com/ryu-man)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,245 +1,108 @@
|
|
|
1
1
|
# @svelte-atoms/core
|
|
2
2
|
|
|
3
|
-
> A modern,
|
|
3
|
+
> A modern, headless, and accessible Svelte 5 UI component library built for composability and extensibility.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@svelte-atoms/core)
|
|
6
6
|
[](https://deepwiki.com/svelte-atoms/core)
|
|
7
7
|
[](LICENSE)
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Why Svelte Atoms?
|
|
10
10
|
|
|
11
|
-
-
|
|
12
|
-
- **
|
|
13
|
-
-
|
|
14
|
-
- **
|
|
15
|
-
- **
|
|
16
|
-
-
|
|
11
|
+
- **🎯 Headless First** - Complete styling control with sensible defaults
|
|
12
|
+
- **🔗 Bond Architecture** - Self-contained state management with context-based communication
|
|
13
|
+
- **♿ Accessible** - ARIA attributes, keyboard navigation, and focus management included
|
|
14
|
+
- **🎨 Composable** - Build complex UIs by combining simple, reusable components
|
|
15
|
+
- **📘 Type Safe** - Full TypeScript support with extensible type definitions
|
|
16
|
+
- **⚡ Svelte 5 Native** - Built for Svelte 5 runes, snippets, and modern reactivity
|
|
17
17
|
|
|
18
|
-
##
|
|
19
|
-
|
|
20
|
-
- **[Documentation](https://sacore.netlify.app/)** - Complete guides, API references, and examples
|
|
21
|
-
- **[Storybook](https://statuesque-boba-0fb888.netlify.app/)** - Interactive component playground
|
|
22
|
-
|
|
23
|
-
## Installation
|
|
18
|
+
## Quick Start
|
|
24
19
|
|
|
25
20
|
```bash
|
|
26
21
|
npm install @svelte-atoms/core
|
|
27
22
|
```
|
|
28
23
|
|
|
29
|
-
## Usage
|
|
30
|
-
|
|
31
|
-
### Basic Example
|
|
32
|
-
|
|
33
24
|
```svelte
|
|
34
25
|
<script lang="ts">
|
|
35
|
-
import { Button, Dialog
|
|
26
|
+
import { Button, Dialog } from '@svelte-atoms/core';
|
|
36
27
|
|
|
37
|
-
let
|
|
38
|
-
let inputValue = '';
|
|
28
|
+
let open = $state(false);
|
|
39
29
|
</script>
|
|
40
30
|
|
|
41
|
-
<Button onclick={() => (
|
|
31
|
+
<Button onclick={() => (open = true)}>Open Dialog</Button>
|
|
42
32
|
|
|
43
|
-
<Dialog.Root bind:open
|
|
33
|
+
<Dialog.Root bind:open>
|
|
44
34
|
<Dialog.Content>
|
|
45
35
|
<Dialog.Header>
|
|
46
|
-
<Dialog.Title>
|
|
36
|
+
<Dialog.Title>Welcome</Dialog.Title>
|
|
47
37
|
</Dialog.Header>
|
|
48
38
|
<Dialog.Body>
|
|
49
|
-
<
|
|
50
|
-
<Input.Control bind:value={inputValue} placeholder="Your name..." />
|
|
51
|
-
</Input.Root>
|
|
39
|
+
<p>This is a headless, accessible dialog component.</p>
|
|
52
40
|
</Dialog.Body>
|
|
53
41
|
<Dialog.Footer>
|
|
54
|
-
<Button onclick={() => (
|
|
55
|
-
<Button variant="primary" onclick={() => (dialogOpen = false)}>Confirm</Button>
|
|
42
|
+
<Button onclick={() => (open = false)}>Close</Button>
|
|
56
43
|
</Dialog.Footer>
|
|
57
44
|
</Dialog.Content>
|
|
58
45
|
</Dialog.Root>
|
|
59
46
|
```
|
|
60
47
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
Combine components to create complex UIs:
|
|
64
|
-
|
|
65
|
-
```svelte
|
|
66
|
-
<script lang="ts">
|
|
67
|
-
import { Dropdown, Input, Root, filter } from '@svelte-atoms/core';
|
|
68
|
-
import { flip } from 'svelte/animate';
|
|
69
|
-
|
|
70
|
-
let data = [
|
|
71
|
-
{ id: 1, value: 'apple', text: 'Apple' },
|
|
72
|
-
{ id: 2, value: 'banana', text: 'Banana' },
|
|
73
|
-
{ id: 3, value: 'cherry', text: 'Cherry' }
|
|
74
|
-
];
|
|
75
|
-
|
|
76
|
-
let open = $state(false);
|
|
77
|
-
const dd = filter(
|
|
78
|
-
() => data,
|
|
79
|
-
(query, item) => item.text.toLowerCase().includes(query.toLowerCase())
|
|
80
|
-
);
|
|
81
|
-
</script>
|
|
82
|
-
|
|
83
|
-
<Dropdown.Root
|
|
84
|
-
bind:open
|
|
85
|
-
multiple
|
|
86
|
-
keys={data.map((item) => item.value)}
|
|
87
|
-
onquerychange={(q) => (dd.query = q)}
|
|
88
|
-
>
|
|
89
|
-
{#snippet children({ dropdown })}
|
|
90
|
-
<Dropdown.Trigger
|
|
91
|
-
base={Input.Root}
|
|
92
|
-
onclick={(ev) => {
|
|
93
|
-
ev.preventDefault();
|
|
94
|
-
dropdown.state.open();
|
|
95
|
-
}}
|
|
96
|
-
>
|
|
97
|
-
{#each dropdown?.state?.selectedItems ?? [] as item (item.id)}
|
|
98
|
-
<div animate:flip={{ duration: 200 }}>
|
|
99
|
-
<Dropdown.Value value={item.value}>{item.text}</Dropdown.Value>
|
|
100
|
-
</div>
|
|
101
|
-
{/each}
|
|
102
|
-
<Dropdown.Query placeholder="Search..." />
|
|
103
|
-
</Dropdown.Trigger>
|
|
104
|
-
|
|
105
|
-
<Dropdown.Content>
|
|
106
|
-
{#each dd.current as item (item.id)}
|
|
107
|
-
<div animate:flip={{ duration: 200 }}>
|
|
108
|
-
<Dropdown.Item value={item.value}>{item.text}</Dropdown.Item>
|
|
109
|
-
</div>
|
|
110
|
-
{/each}
|
|
111
|
-
</Dropdown.Content>
|
|
112
|
-
{/snippet}
|
|
113
|
-
</Dropdown.Root>
|
|
114
|
-
```
|
|
48
|
+
## Core Concepts
|
|
115
49
|
|
|
116
|
-
###
|
|
50
|
+
### Composability with `base` and `as`
|
|
117
51
|
|
|
118
|
-
Transform
|
|
52
|
+
Transform any component into another element or wrap it with custom logic:
|
|
119
53
|
|
|
120
54
|
```svelte
|
|
121
55
|
<script lang="ts">
|
|
122
56
|
import { Button, Popover, Input } from '@svelte-atoms/core';
|
|
123
57
|
</script>
|
|
124
58
|
|
|
125
|
-
<!--
|
|
126
|
-
<Popover.Root>
|
|
127
|
-
<Popover.Trigger base={Button} variant="outline">Open Popover</Popover.Trigger>
|
|
128
|
-
<Popover.Content class="p-4">
|
|
129
|
-
<h4 class="font-semibold">Settings</h4>
|
|
130
|
-
<p class="text-sm">Configure your preferences here.</p>
|
|
131
|
-
</Popover.Content>
|
|
132
|
-
</Popover.Root>
|
|
133
|
-
|
|
134
|
-
<!-- Use Input.Root as Popover trigger -->
|
|
59
|
+
<!-- Button as Popover trigger -->
|
|
135
60
|
<Popover.Root>
|
|
136
|
-
<Popover.Trigger base={
|
|
137
|
-
|
|
61
|
+
<Popover.Trigger base={Button} variant="outline">
|
|
62
|
+
Open Popover
|
|
138
63
|
</Popover.Trigger>
|
|
139
|
-
<Popover.Content
|
|
140
|
-
<p
|
|
64
|
+
<Popover.Content>
|
|
65
|
+
<p>Configure your preferences here.</p>
|
|
141
66
|
</Popover.Content>
|
|
142
67
|
</Popover.Root>
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
### Working with Animations
|
|
146
68
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
<
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
{ id: 1, text: 'Task 1' },
|
|
157
|
-
{ id: 2, text: 'Task 2' },
|
|
158
|
-
{ id: 3, text: 'Task 3' }
|
|
159
|
-
]);
|
|
160
|
-
|
|
161
|
-
function removeItem(id: number) {
|
|
162
|
-
items = items.filter((item) => item.id !== id);
|
|
163
|
-
}
|
|
164
|
-
</script>
|
|
165
|
-
|
|
166
|
-
<List.Root>
|
|
167
|
-
{#each items as item (item.id)}
|
|
168
|
-
<div animate:flip={{ duration: 300 }}>
|
|
169
|
-
<List.Item>
|
|
170
|
-
<span>{item.text}</span>
|
|
171
|
-
<Button size="sm" onclick={() => removeItem(item.id)}>Remove</Button>
|
|
172
|
-
</List.Item>
|
|
173
|
-
</div>
|
|
174
|
-
{/each}
|
|
175
|
-
</List.Root>
|
|
69
|
+
<!-- Input as Dropdown trigger -->
|
|
70
|
+
<Dropdown.Root>
|
|
71
|
+
<Dropdown.Trigger base={Input.Root}>
|
|
72
|
+
<Input.Control placeholder="Search..." />
|
|
73
|
+
</Dropdown.Trigger>
|
|
74
|
+
<Dropdown.Content>
|
|
75
|
+
<!-- items -->
|
|
76
|
+
</Dropdown.Content>
|
|
77
|
+
</Dropdown.Root>
|
|
176
78
|
```
|
|
177
79
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
```svelte
|
|
181
|
-
<script lang="ts">
|
|
182
|
-
import { Dialog, Button, toTransitionConfig } from '@svelte-atoms/core';
|
|
183
|
-
import { animate } from 'motion';
|
|
184
|
-
|
|
185
|
-
let open = $state(false);
|
|
186
|
-
</script>
|
|
80
|
+
### Typed Snippets for Extensibility
|
|
187
81
|
|
|
188
|
-
|
|
82
|
+
All components expose typed snippet props for maximum flexibility:
|
|
189
83
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
exit={(node) => {
|
|
201
|
-
const duration = 0.1;
|
|
202
|
-
const animation = animate(node, { opacity: 0 }, { duration: 0.1 });
|
|
203
|
-
return { duration };
|
|
204
|
-
}}
|
|
205
|
-
/>
|
|
206
|
-
<Dialog.Content
|
|
207
|
-
initial={(node) => {
|
|
208
|
-
node.style.opacity = '0';
|
|
209
|
-
node.style.scale = '0.95';
|
|
210
|
-
}}
|
|
211
|
-
enter={(node) => {
|
|
212
|
-
const duration = 0.3;
|
|
213
|
-
const animation = animate(node, { opacity: 1, scale: 1 }, { duration, easing: 'ease-out' });
|
|
214
|
-
return { duration };
|
|
215
|
-
}}
|
|
216
|
-
exit={(node) => {
|
|
217
|
-
const animation = animate(node, { opacity: 0, scale: 0.95 }, { duration, easing: 'ease-in' });
|
|
218
|
-
return { duration };
|
|
219
|
-
}}
|
|
220
|
-
>
|
|
221
|
-
<Dialog.Header>
|
|
222
|
-
<Dialog.Title>Animated Dialog</Dialog.Title>
|
|
223
|
-
</Dialog.Header>
|
|
224
|
-
<Dialog.Body>
|
|
225
|
-
<p>This dialog animates with custom Motion transitions using lifecycle hooks.</p>
|
|
226
|
-
</Dialog.Body>
|
|
227
|
-
<Dialog.Footer>
|
|
228
|
-
<Button onclick={() => (open = false)}>Close</Button>
|
|
229
|
-
</Dialog.Footer>
|
|
230
|
-
</Dialog.Content>
|
|
84
|
+
```svelte
|
|
85
|
+
<Dialog.Root>
|
|
86
|
+
{#snippet children({ dialog })}
|
|
87
|
+
<Dialog.Content>
|
|
88
|
+
<Dialog.Body>
|
|
89
|
+
<p>Access the dialog bond directly</p>
|
|
90
|
+
<button onclick={() => dialog.close()}>Close via bond</button>
|
|
91
|
+
</Dialog.Body>
|
|
92
|
+
</Dialog.Content>
|
|
93
|
+
{/snippet}
|
|
231
94
|
</Dialog.Root>
|
|
232
95
|
```
|
|
233
96
|
|
|
234
97
|
### Styling with Variants
|
|
235
98
|
|
|
236
|
-
|
|
99
|
+
Create reusable variants locally or globally:
|
|
237
100
|
|
|
238
101
|
```typescript
|
|
239
102
|
import { defineVariants } from '@svelte-atoms/core/utils';
|
|
240
103
|
|
|
241
104
|
const buttonVariants = defineVariants({
|
|
242
|
-
class: 'inline-flex items-center justify-center rounded-md
|
|
105
|
+
class: 'inline-flex items-center justify-center rounded-md',
|
|
243
106
|
variants: {
|
|
244
107
|
variant: {
|
|
245
108
|
primary: 'bg-blue-500 text-white hover:bg-blue-600',
|
|
@@ -258,32 +121,39 @@ const buttonVariants = defineVariants({
|
|
|
258
121
|
});
|
|
259
122
|
```
|
|
260
123
|
|
|
124
|
+
## Components
|
|
125
|
+
|
|
126
|
+
**Layout:** Container, Stack, Layer, Portal
|
|
127
|
+
**Forms:** Input, Textarea, Checkbox, Radio, Select, Combobox, Form
|
|
128
|
+
**Overlays:** Dialog, Drawer, Popover, Tooltip, Toast
|
|
129
|
+
**Navigation:** Tabs, Sidebar, Menu, Dropdown
|
|
130
|
+
**Display:** Card, Alert, Badge, Chip, List, Datagrid, Calendar
|
|
131
|
+
**Utilities:** Root, Lazy, Link, Button
|
|
132
|
+
|
|
133
|
+
[View all components in Storybook →](https://statuesque-boba-0fb888.netlify.app/)
|
|
134
|
+
|
|
135
|
+
## Documentation
|
|
136
|
+
|
|
137
|
+
- **[Full Documentation](https://sacore.netlify.app/)** - Guides, API references, and examples
|
|
138
|
+
- **[Storybook](https://statuesque-boba-0fb888.netlify.app/)** - Interactive component playground
|
|
139
|
+
- **[GitHub](https://github.com/svelte-atoms/core)** - Source code and issues
|
|
140
|
+
|
|
261
141
|
## Development
|
|
262
142
|
|
|
263
143
|
```bash
|
|
264
|
-
# Clone
|
|
144
|
+
# Clone and install
|
|
265
145
|
git clone https://github.com/svelte-atoms/core.git
|
|
266
|
-
cd
|
|
267
|
-
|
|
268
|
-
# Install dependencies
|
|
146
|
+
cd core
|
|
269
147
|
bun install
|
|
270
148
|
|
|
271
149
|
# Start dev server
|
|
272
150
|
bun dev
|
|
273
151
|
|
|
274
|
-
# Run tests
|
|
275
|
-
bun test
|
|
276
|
-
|
|
277
152
|
# Build library
|
|
278
153
|
bun run build
|
|
279
154
|
```
|
|
280
155
|
|
|
281
156
|
## License
|
|
282
157
|
|
|
283
|
-
MIT
|
|
284
|
-
|
|
285
|
-
---
|
|
158
|
+
MIT © [Svelte Atoms Team](https://github.com/svelte-atoms)
|
|
286
159
|
|
|
287
|
-
<div align="center">
|
|
288
|
-
<p>Built with ❤️ by the Svelte Atoms team</p>
|
|
289
|
-
</div>
|
|
@@ -1 +1,4 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type ClickoutOptions = AddEventListenerOptions & {
|
|
2
|
+
type?: 'click' | 'pointerdown' | 'mousedown';
|
|
3
|
+
};
|
|
4
|
+
export declare function clickout<T extends Element>(onclick?: (ev: PointerEvent, node?: T) => void, options?: ClickoutOptions): (node: T) => () => void;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { on } from 'svelte/events';
|
|
2
2
|
export function clickout(onclick, options) {
|
|
3
3
|
return (node) => {
|
|
4
|
+
const type = options?.type ?? 'click';
|
|
4
5
|
const handler = (ev) => {
|
|
5
6
|
const target = ev.target;
|
|
6
7
|
if (!node.contains(target)) {
|
|
7
8
|
onclick?.(ev, node);
|
|
8
9
|
}
|
|
9
10
|
};
|
|
10
|
-
const cleanup = on(window,
|
|
11
|
+
const cleanup = on(window, type, handler, options);
|
|
11
12
|
return () => {
|
|
12
13
|
cleanup();
|
|
13
14
|
};
|
|
@@ -1,66 +1,61 @@
|
|
|
1
|
-
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
-
import { defineProperty, defineState } from '../../utils';
|
|
3
|
-
import { HtmlAtom, type Base } from '../atom';
|
|
4
|
-
import { AccordionBond, AccordionState, type AccordionStateProps } from './bond.svelte';
|
|
5
|
-
import type { AccordionRootProps } from './types';
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
{
|
|
61
|
-
|
|
62
|
-
class={['bg-card border-border flex list-none flex-col', '$preset', klass]}
|
|
63
|
-
{...rootProps}
|
|
64
|
-
>
|
|
65
|
-
{@render children?.({ accordion: bond })}
|
|
66
|
-
</HtmlAtom>
|
|
1
|
+
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import { defineProperty, defineState } from '../../utils';
|
|
3
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
4
|
+
import { AccordionBond, AccordionState, type AccordionStateProps } from './bond.svelte';
|
|
5
|
+
import type { AccordionRootProps } from './types';
|
|
6
|
+
import { untrack } from 'svelte';
|
|
7
|
+
|
|
8
|
+
let {
|
|
9
|
+
value = $bindable(undefined),
|
|
10
|
+
values = $bindable([]),
|
|
11
|
+
data = $bindable([]),
|
|
12
|
+
class: klass = '',
|
|
13
|
+
multiple = false,
|
|
14
|
+
collapsible = false,
|
|
15
|
+
disabled = false,
|
|
16
|
+
children = undefined,
|
|
17
|
+
factory = _factory,
|
|
18
|
+
preset = 'accordion',
|
|
19
|
+
...restProps
|
|
20
|
+
}: AccordionRootProps<E, B> = $props();
|
|
21
|
+
|
|
22
|
+
const bondProps = defineState<AccordionStateProps>([
|
|
23
|
+
defineProperty(
|
|
24
|
+
'values',
|
|
25
|
+
() => (multiple ? values : ([value].filter(Boolean) as string[])),
|
|
26
|
+
(v) => {
|
|
27
|
+
values = v;
|
|
28
|
+
value = values[0];
|
|
29
|
+
}
|
|
30
|
+
),
|
|
31
|
+
defineProperty('multiple', () => multiple),
|
|
32
|
+
defineProperty('collapsible', () => collapsible),
|
|
33
|
+
defineProperty('disabled', () => disabled),
|
|
34
|
+
defineProperty('rest', () => restProps)
|
|
35
|
+
]);
|
|
36
|
+
const bond = untrack(()=> factory(bondProps)).share();
|
|
37
|
+
|
|
38
|
+
const rootProps = $derived({
|
|
39
|
+
...bond.root().spread,
|
|
40
|
+
...restProps
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
function _factory(props: typeof bondProps = bondProps) {
|
|
44
|
+
const bondState = new AccordionState(() => props);
|
|
45
|
+
|
|
46
|
+
return new AccordionBond(bondState);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export function getBond() {
|
|
50
|
+
return bond;
|
|
51
|
+
}
|
|
52
|
+
</script>
|
|
53
|
+
|
|
54
|
+
<HtmlAtom
|
|
55
|
+
{preset}
|
|
56
|
+
{bond}
|
|
57
|
+
class={['bg-card border-border flex list-none flex-col', '$preset', klass]}
|
|
58
|
+
{...rootProps}
|
|
59
|
+
>
|
|
60
|
+
{@render children?.({ accordion: bond })}
|
|
61
|
+
</HtmlAtom>
|
|
@@ -6,7 +6,7 @@ declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B exten
|
|
|
6
6
|
exports: {
|
|
7
7
|
getBond: () => AccordionBond;
|
|
8
8
|
};
|
|
9
|
-
bindings: "
|
|
9
|
+
bindings: "data" | "values" | "value";
|
|
10
10
|
slots: {};
|
|
11
11
|
events: {};
|
|
12
12
|
};
|
|
@@ -14,7 +14,7 @@ declare class __sveltets_Render<E extends keyof HTMLElementTagNameMap = 'div', B
|
|
|
14
14
|
props(): ReturnType<typeof $$render<E, B>>['props'];
|
|
15
15
|
events(): ReturnType<typeof $$render<E, B>>['events'];
|
|
16
16
|
slots(): ReturnType<typeof $$render<E, B>>['slots'];
|
|
17
|
-
bindings(): "
|
|
17
|
+
bindings(): "data" | "values" | "value";
|
|
18
18
|
exports(): {
|
|
19
19
|
getBond: () => AccordionBond;
|
|
20
20
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { AccordionItemBond } from './item/bond.svelte';
|
|
2
|
-
import { Bond, BondState, type BondStateProps } from '../../shared/bond.svelte';
|
|
2
|
+
import { Bond, BondState, BondAtom, type BondStateProps } from '../../shared/bond.svelte';
|
|
3
3
|
export type AccordionStateProps = BondStateProps & {
|
|
4
4
|
open: boolean;
|
|
5
5
|
value?: string;
|
|
@@ -13,19 +13,20 @@ export type AccordionElements = {
|
|
|
13
13
|
root: HTMLElement;
|
|
14
14
|
indicator: HTMLElement;
|
|
15
15
|
};
|
|
16
|
-
export declare class
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
share(): this;
|
|
20
|
-
root(): {
|
|
21
|
-
[x: symbol]: (node: HTMLElement) => void;
|
|
16
|
+
export declare class AccordionRootAtom extends BondAtom<AccordionBond> {
|
|
17
|
+
constructor(bond: AccordionBond);
|
|
18
|
+
get attrs(): {
|
|
22
19
|
'aria-expand': boolean;
|
|
23
20
|
'aria-disabled': boolean;
|
|
24
21
|
'aria-multiselectable': boolean;
|
|
25
|
-
'data-atom': string;
|
|
26
|
-
'data-kind': string;
|
|
27
|
-
id: string;
|
|
28
22
|
};
|
|
23
|
+
}
|
|
24
|
+
export declare class AccordionBond extends Bond<AccordionStateProps, AccordionState, AccordionElements> {
|
|
25
|
+
static CONTEXT_KEY: string;
|
|
26
|
+
constructor(s: AccordionState);
|
|
27
|
+
share(): this;
|
|
28
|
+
/** Handle for granular access to root attrs and attachment */
|
|
29
|
+
root(): AccordionRootAtom;
|
|
29
30
|
static get(): AccordionBond | undefined;
|
|
30
31
|
static set(bond: AccordionBond): AccordionBond;
|
|
31
32
|
}
|