@svelte-atoms/core 1.0.0-alpha.41 → 1.0.0-alpha.46
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 +80 -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 +8 -9
- package/dist/components/accordion/item/accordion-item-header.svelte +1 -14
- package/dist/components/accordion/item/accordion-item-indicator.svelte +1 -13
- package/dist/components/accordion/item/accordion-item-root.svelte +3 -14
- 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-actions.svelte +0 -12
- package/dist/components/alert/alert-close-button.svelte +0 -12
- package/dist/components/alert/alert-content.svelte +0 -12
- package/dist/components/alert/alert-description.svelte +0 -12
- package/dist/components/alert/alert-icon.svelte +0 -12
- package/dist/components/alert/alert-root.svelte +56 -68
- package/dist/components/alert/alert-title.svelte +0 -12
- package/dist/components/alert/types.d.ts +12 -46
- package/dist/components/atom/html-atom.svelte +98 -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 +61 -10
- package/dist/components/atom/types.js +1 -1
- package/dist/components/atom/utils/base.d.ts +6 -0
- package/dist/components/atom/utils/base.js +8 -0
- package/dist/components/atom/utils/cache.d.ts +17 -0
- package/dist/components/atom/utils/cache.js +134 -0
- package/dist/components/atom/utils/classes.d.ts +14 -0
- package/dist/components/atom/utils/classes.js +42 -0
- package/dist/components/atom/utils/constants.d.ts +9 -0
- package/dist/components/atom/utils/constants.js +9 -0
- package/dist/components/atom/utils/index.d.ts +6 -0
- package/dist/components/atom/utils/index.js +5 -0
- package/dist/components/atom/utils/preset.d.ts +22 -0
- package/dist/components/atom/utils/preset.js +94 -0
- package/dist/components/atom/utils/props.d.ts +13 -0
- package/dist/components/atom/utils/props.js +60 -0
- package/dist/components/atom/utils/variants.d.ts +31 -0
- package/dist/components/atom/utils/variants.js +270 -0
- 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-body.svelte +0 -12
- package/dist/components/card/card-description.svelte +0 -12
- package/dist/components/card/card-footer.svelte +0 -12
- package/dist/components/card/card-header.svelte +0 -12
- package/dist/components/card/card-media.svelte +0 -12
- package/dist/components/card/card-root.svelte +80 -92
- package/dist/components/card/card-subtitle.svelte +0 -12
- package/dist/components/card/card-title.svelte +0 -12
- 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 +6 -13
- package/dist/components/collapsible/collapsible-header.svelte +1 -13
- package/dist/components/collapsible/collapsible-indicator.svelte +1 -13
- package/dist/components/collapsible/collapsible-root.svelte +55 -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 +54 -66
- package/dist/components/combobox/combobox-item.svelte +50 -62
- package/dist/components/combobox/combobox-item.svelte.d.ts +0 -6
- 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/index.d.ts +1 -1
- package/dist/components/combobox/types.d.ts +6 -10
- package/dist/components/container/container.svelte +0 -12
- 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} +6 -15
- package/dist/components/datagrid/{th/datagrid-th.svelte.d.ts → column/datagrid-column-sort-icon.svelte.d.ts} +6 -5
- 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 +24 -21
- 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 -13
- package/dist/components/dialog/dialog-close-button.svelte +0 -12
- package/dist/components/dialog/dialog-close.svelte +46 -0
- package/dist/components/dialog/dialog-close.svelte.d.ts +26 -0
- package/dist/components/dialog/dialog-content.svelte +6 -14
- package/dist/components/dialog/dialog-description.svelte +1 -13
- package/dist/components/dialog/dialog-footer.svelte +1 -13
- package/dist/components/dialog/dialog-header.svelte +1 -13
- package/dist/components/dialog/dialog-root.svelte +102 -82
- package/dist/components/dialog/dialog-title.svelte +1 -13
- package/dist/components/dialog/index.d.ts +3 -0
- package/dist/components/dialog/index.js +3 -0
- 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 -13
- package/dist/components/drawer/drawer-body.svelte +1 -13
- package/dist/components/drawer/drawer-content.svelte +8 -15
- package/dist/components/drawer/drawer-content.svelte.d.ts +4 -1
- package/dist/components/drawer/drawer-description.svelte +1 -13
- package/dist/components/drawer/drawer-footer.svelte +1 -13
- package/dist/components/drawer/drawer-header.svelte +1 -13
- package/dist/components/drawer/drawer-root.svelte +97 -87
- package/dist/components/drawer/drawer-title.svelte +1 -13
- 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-placeholder.svelte +0 -6
- package/dist/components/dropdown/dropdown-placeholder.svelte.d.ts +0 -6
- package/dist/components/dropdown/dropdown-query.svelte +31 -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 +68 -0
- package/dist/components/dropdown-menu/bond.svelte.js +173 -0
- package/dist/components/dropdown-menu/dropdown-menu-content.svelte +28 -0
- package/dist/components/dropdown-menu/dropdown-menu-content.svelte.d.ts +31 -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.d.ts +29 -17
- package/dist/components/form/field/bond.svelte.js +73 -55
- package/dist/components/form/field/field-control.svelte +36 -12
- 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 +6 -8
- package/dist/components/form/field/field-label.svelte.d.ts +2 -2
- package/dist/components/form/field/field-root.svelte +18 -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 +13 -0
- package/dist/components/index.js +13 -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 +115 -0
- package/dist/components/input/input-file-control.svelte.d.ts +4 -0
- package/dist/components/input/input-icon.svelte +3 -3
- 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 +107 -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 +64 -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/kbd/index.d.ts +3 -0
- package/dist/components/kbd/index.js +3 -0
- package/dist/components/kbd/kbd.svelte +19 -0
- package/dist/components/kbd/kbd.svelte.d.ts +4 -0
- package/dist/components/kbd/shortcut.svelte +38 -0
- package/dist/components/kbd/shortcut.svelte.d.ts +4 -0
- package/dist/components/kbd/types.d.ts +20 -0
- package/dist/components/kbd/types.js +1 -0
- 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 +0 -12
- package/dist/components/layer/layer-inner.svelte.d.ts +1 -1
- package/dist/components/layer/layer-root.svelte +53 -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 +28 -40
- package/dist/components/menu/menu-content.svelte.d.ts +0 -6
- 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 +95 -39
- package/dist/components/popover/bond.svelte.js +212 -197
- package/dist/components/popover/index.d.ts +4 -1
- package/dist/components/popover/index.js +4 -1
- package/dist/components/popover/motion.svelte.d.ts +34 -0
- package/dist/components/popover/motion.svelte.js +135 -0
- package/dist/components/popover/popover-arrow.svelte +99 -110
- package/dist/components/popover/popover-arrow.svelte.d.ts +1 -2
- package/dist/components/popover/popover-content.svelte +86 -123
- 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-overlay.svelte +98 -0
- package/dist/components/popover/popover-overlay.svelte.d.ts +4 -0
- 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 +44 -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 +17 -38
- 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 -13
- package/dist/components/portal/portal-inner.svelte.d.ts +1 -1
- package/dist/components/portal/portal-root.svelte +64 -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/progress/index.d.ts +3 -0
- package/dist/components/progress/index.js +3 -0
- package/dist/components/progress/progress-circular.svelte +99 -0
- package/dist/components/progress/progress-circular.svelte.d.ts +6 -0
- package/dist/components/progress/progress-linear.svelte +66 -0
- package/dist/components/progress/progress-linear.svelte.d.ts +6 -0
- package/dist/components/progress/types.d.ts +18 -0
- package/dist/components/progress/types.js +1 -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 +54 -61
- package/dist/components/scrollable/scrollable-container.svelte.d.ts +12 -12
- package/dist/components/scrollable/scrollable-content.svelte +10 -17
- package/dist/components/scrollable/scrollable-content.svelte.d.ts +12 -12
- package/dist/components/scrollable/scrollable-root.svelte +94 -101
- package/dist/components/scrollable/scrollable-root.svelte.d.ts +12 -12
- package/dist/components/scrollable/scrollable-thumb.svelte +10 -45
- package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +12 -12
- package/dist/components/scrollable/scrollable-track.svelte +9 -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 +52 -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 +34 -0
- package/dist/components/select/select-placeholder.svelte.d.ts +28 -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 +6 -13
- 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 +180 -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 +44 -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 +78 -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 +37 -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 +64 -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/attachments.svelte.d.ts +10 -2
- package/dist/components/toast/attachments.svelte.js +9 -1
- package/dist/components/toast/bond.svelte.d.ts +73 -0
- package/dist/components/toast/bond.svelte.js +132 -0
- package/dist/components/toast/index.d.ts +1 -0
- package/dist/components/toast/index.js +1 -0
- package/dist/components/toast/toast-close.svelte +47 -0
- package/dist/components/toast/toast-close.svelte.d.ts +26 -0
- package/dist/components/toast/toast-description.svelte +16 -24
- package/dist/components/toast/toast-description.svelte.d.ts +15 -19
- package/dist/components/toast/toast-root.svelte +36 -26
- package/dist/components/toast/toast-root.svelte.d.ts +16 -15
- package/dist/components/toast/toast-title.svelte +17 -22
- package/dist/components/toast/toast-title.svelte.d.ts +13 -13
- package/dist/components/toast/toaster.svelte.d.ts +38 -0
- package/dist/components/toast/toaster.svelte.js +107 -0
- package/dist/components/toast/types.d.ts +14 -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 +6 -13
- package/dist/components/tree/tree-header.svelte +1 -13
- package/dist/components/tree/tree-header.svelte.d.ts +1 -1
- package/dist/components/tree/tree-indicator.svelte +1 -13
- package/dist/components/tree/tree-root.svelte +54 -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 +186 -3
- package/dist/context/preset.svelte.js +29 -3
- 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/atom/utils.d.ts +0 -37
- package/dist/components/atom/utils.js +0 -208
- 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-sort-icon.svelte.d.ts +0 -33
- 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/motion.d.ts +0 -6
- package/dist/components/popover/motion.js +0 -57
- 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/toast/bond.d.ts +0 -35
- package/dist/components/toast/bond.js +0 -59
- 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
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Two-level cache for resolved variants (legacy / public API).
|
|
3
|
+
*
|
|
4
|
+
* - Outer key: bond instance (WeakMap — automatically GC'd when the bond is destroyed).
|
|
5
|
+
* - Inner key: JSON-stringified variant-relevant props.
|
|
6
|
+
* - Bond-less calls share a single flat Map.
|
|
7
|
+
*
|
|
8
|
+
* Kept exported for backward compatibility. Internal callers prefer
|
|
9
|
+
* `getDefCacheMap` which avoids global cross-component cache pollution.
|
|
10
|
+
*/
|
|
11
|
+
const variantCacheByBond = new WeakMap();
|
|
12
|
+
const variantCacheNoBond = new Map();
|
|
13
|
+
export const MAX_CACHE_SIZE = 100;
|
|
14
|
+
export function getCacheMap(bond) {
|
|
15
|
+
if (!bond)
|
|
16
|
+
return variantCacheNoBond;
|
|
17
|
+
let map = variantCacheByBond.get(bond);
|
|
18
|
+
if (!map) {
|
|
19
|
+
map = new Map();
|
|
20
|
+
variantCacheByBond.set(bond, map);
|
|
21
|
+
}
|
|
22
|
+
return map;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Per-definition cache. The cache map is scoped to a `(def, bond)` pair, so
|
|
26
|
+
* different atoms never share the same eviction window — eliminating the
|
|
27
|
+
* cross-component thrash of the legacy global Map.
|
|
28
|
+
*
|
|
29
|
+
* `def` is keyed by reference via WeakMap, so cache entries are GC'd when
|
|
30
|
+
* the variant definition is no longer reachable.
|
|
31
|
+
*/
|
|
32
|
+
const defCacheBondMap = new WeakMap();
|
|
33
|
+
const defCacheNoBondMap = new WeakMap();
|
|
34
|
+
export function getDefCacheMap(def, bond) {
|
|
35
|
+
if (!bond) {
|
|
36
|
+
let m = defCacheNoBondMap.get(def);
|
|
37
|
+
if (!m) {
|
|
38
|
+
m = new Map();
|
|
39
|
+
defCacheNoBondMap.set(def, m);
|
|
40
|
+
}
|
|
41
|
+
return m;
|
|
42
|
+
}
|
|
43
|
+
const bondKey = bond;
|
|
44
|
+
let inner = defCacheBondMap.get(bondKey);
|
|
45
|
+
if (!inner) {
|
|
46
|
+
inner = new WeakMap();
|
|
47
|
+
defCacheBondMap.set(bondKey, inner);
|
|
48
|
+
}
|
|
49
|
+
let m = inner.get(def);
|
|
50
|
+
if (!m) {
|
|
51
|
+
m = new Map();
|
|
52
|
+
inner.set(def, m);
|
|
53
|
+
}
|
|
54
|
+
return m;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Performs a true-LRU lookup (touch on hit) and returns the cached value, or
|
|
58
|
+
* `undefined` if absent. Avoids the FIFO eviction bug of the previous impl.
|
|
59
|
+
*/
|
|
60
|
+
export function lruGet(map, key) {
|
|
61
|
+
const v = map.get(key);
|
|
62
|
+
if (v === undefined)
|
|
63
|
+
return undefined;
|
|
64
|
+
// Re-insert to mark as most-recently-used (Map preserves insertion order).
|
|
65
|
+
map.delete(key);
|
|
66
|
+
map.set(key, v);
|
|
67
|
+
return v;
|
|
68
|
+
}
|
|
69
|
+
/** Insert with capacity eviction of the least-recently-used entry. */
|
|
70
|
+
export function lruSet(map, key, value, max) {
|
|
71
|
+
if (map.size >= max) {
|
|
72
|
+
const firstKey = map.keys().next().value;
|
|
73
|
+
if (firstKey !== undefined)
|
|
74
|
+
map.delete(firstKey);
|
|
75
|
+
}
|
|
76
|
+
map.set(key, value);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Cached `Object.keys(obj)` keyed by `obj` reference. Variant maps are stable
|
|
80
|
+
* per definition, so we avoid re-allocating the keys array every render.
|
|
81
|
+
*/
|
|
82
|
+
const ownKeysCache = new WeakMap();
|
|
83
|
+
const EMPTY_KEYS = Object.freeze([]);
|
|
84
|
+
export function getCachedOwnKeys(obj) {
|
|
85
|
+
if (!obj)
|
|
86
|
+
return EMPTY_KEYS;
|
|
87
|
+
let keys = ownKeysCache.get(obj);
|
|
88
|
+
if (!keys) {
|
|
89
|
+
keys = Object.keys(obj);
|
|
90
|
+
ownKeysCache.set(obj, keys);
|
|
91
|
+
}
|
|
92
|
+
return keys;
|
|
93
|
+
}
|
|
94
|
+
/** Returns true if `obj` has at least one own enumerable key. */
|
|
95
|
+
export function hasOwnKeys(obj) {
|
|
96
|
+
for (const k in obj)
|
|
97
|
+
if (Object.hasOwn(obj, k))
|
|
98
|
+
return true;
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Cached `hasOwnKeys` keyed weakly by the input object. Defaults objects are
|
|
103
|
+
* stable per variant definition, so we avoid re-walking the prototype chain
|
|
104
|
+
* on every render. Sentinel `null` is treated as "no" without consuming a slot.
|
|
105
|
+
*/
|
|
106
|
+
const hasOwnKeysCache = new WeakMap();
|
|
107
|
+
export function hasOwnKeysCached(obj) {
|
|
108
|
+
if (!obj)
|
|
109
|
+
return false;
|
|
110
|
+
const cached = hasOwnKeysCache.get(obj);
|
|
111
|
+
if (cached !== undefined)
|
|
112
|
+
return cached;
|
|
113
|
+
const result = hasOwnKeys(obj);
|
|
114
|
+
hasOwnKeysCache.set(obj, result);
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Cached non-`class` keys for a compound variant condition. Compounds are
|
|
119
|
+
* stable per variant definition, so their condition keys never change.
|
|
120
|
+
* Weakly keyed → freed when the compound object is unreachable.
|
|
121
|
+
*/
|
|
122
|
+
const compoundKeysCache = new WeakMap();
|
|
123
|
+
export function getCompoundConditionKeys(compound) {
|
|
124
|
+
let keys = compoundKeysCache.get(compound);
|
|
125
|
+
if (!keys) {
|
|
126
|
+
keys = [];
|
|
127
|
+
for (const k in compound) {
|
|
128
|
+
if (Object.hasOwn(compound, k) && k !== 'class')
|
|
129
|
+
keys.push(k);
|
|
130
|
+
}
|
|
131
|
+
compoundKeysCache.set(compound, keys);
|
|
132
|
+
}
|
|
133
|
+
return keys;
|
|
134
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type ClassValue } from '../../../utils';
|
|
2
|
+
/**
|
|
3
|
+
* Merges user-supplied class, preset class, and resolved variant class into a
|
|
4
|
+
* single Tailwind-safe class string.
|
|
5
|
+
*
|
|
6
|
+
* Supports the special `$preset` placeholder inside the user class string, which
|
|
7
|
+
* lets the caller control exactly where the preset classes are injected.
|
|
8
|
+
*
|
|
9
|
+
* Rules:
|
|
10
|
+
* - No `$preset` → normal merge: `cn(userClass, variantClass)`.
|
|
11
|
+
* - Has `$preset` → only the **last** occurrence acts as the injection point:
|
|
12
|
+
* `beforePlaceholder + presetClass + variantClass + afterPlaceholder`.
|
|
13
|
+
*/
|
|
14
|
+
export declare function mergeClassesWithPreset(userClass: string | ClassValue | undefined, presetClass: ClassValue | undefined, variantClass: ClassValue | undefined): string;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { cn } from '../../../utils';
|
|
2
|
+
/**
|
|
3
|
+
* Merges user-supplied class, preset class, and resolved variant class into a
|
|
4
|
+
* single Tailwind-safe class string.
|
|
5
|
+
*
|
|
6
|
+
* Supports the special `$preset` placeholder inside the user class string, which
|
|
7
|
+
* lets the caller control exactly where the preset classes are injected.
|
|
8
|
+
*
|
|
9
|
+
* Rules:
|
|
10
|
+
* - No `$preset` → normal merge: `cn(userClass, variantClass)`.
|
|
11
|
+
* - Has `$preset` → only the **last** occurrence acts as the injection point:
|
|
12
|
+
* `beforePlaceholder + presetClass + variantClass + afterPlaceholder`.
|
|
13
|
+
*/
|
|
14
|
+
export function mergeClassesWithPreset(userClass, presetClass, variantClass) {
|
|
15
|
+
// Fast path: user class is a plain string and contains no `$preset` placeholder
|
|
16
|
+
// — by far the most common case. Skip the prelim `cn()` call entirely.
|
|
17
|
+
if (typeof userClass === 'string') {
|
|
18
|
+
if (userClass.indexOf('$preset') === -1) {
|
|
19
|
+
return cn(userClass, variantClass ?? '');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
else if (userClass == null) {
|
|
23
|
+
return cn(variantClass ?? '');
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
// Non-string ClassValue (array/object) — must run through `cn()` first
|
|
27
|
+
// to detect a `$preset` placeholder potentially nested inside.
|
|
28
|
+
const merged = cn(userClass);
|
|
29
|
+
if (merged.indexOf('$preset') === -1) {
|
|
30
|
+
return cn(merged, variantClass ?? '');
|
|
31
|
+
}
|
|
32
|
+
const lastIdx = merged.lastIndexOf('$preset');
|
|
33
|
+
return cn(merged.slice(0, lastIdx), cn(presetClass), variantClass ?? '', merged.slice(lastIdx + '$preset'.length));
|
|
34
|
+
}
|
|
35
|
+
// Slow path: `$preset` placeholder resolution for string `userClass`.
|
|
36
|
+
const klassStr = userClass;
|
|
37
|
+
const lastIdx = klassStr.lastIndexOf('$preset');
|
|
38
|
+
const beforeLastPlaceholder = klassStr.slice(0, lastIdx);
|
|
39
|
+
const afterLastPlaceholder = klassStr.slice(lastIdx + '$preset'.length);
|
|
40
|
+
const presetClassString = cn(presetClass);
|
|
41
|
+
return cn(beforeLastPlaceholder, presetClassString, variantClass ?? '', afterLastPlaceholder);
|
|
42
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Props stripped when spreading preset props onto the element.
|
|
3
|
+
* These are internal atom configuration keys that are not valid DOM attributes.
|
|
4
|
+
*/
|
|
5
|
+
export declare const PRESET_SKIP: Set<string>;
|
|
6
|
+
/**
|
|
7
|
+
* Props stripped when spreading resolved variant objects.
|
|
8
|
+
*/
|
|
9
|
+
export declare const VARIANTS_SKIP: Set<string>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Props stripped when spreading preset props onto the element.
|
|
3
|
+
* These are internal atom configuration keys that are not valid DOM attributes.
|
|
4
|
+
*/
|
|
5
|
+
export const PRESET_SKIP = new Set(['class', 'base', 'as', 'variants', 'compounds', 'defaults']);
|
|
6
|
+
/**
|
|
7
|
+
* Props stripped when spreading resolved variant objects.
|
|
8
|
+
*/
|
|
9
|
+
export const VARIANTS_SKIP = new Set(['class', 'variants', 'compounds', 'defaults']);
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { resolvePreset } from './preset';
|
|
2
|
+
export { isSnippetBase } from './base';
|
|
3
|
+
export { mergeClassesWithPreset } from './classes';
|
|
4
|
+
export { resolveVariants, mergeVariants, resolveLocalVariants } from './variants';
|
|
5
|
+
export { extractRestProps } from './props';
|
|
6
|
+
export type { ResolvedProps } from './cache';
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { PresetEntryRecord, PresetEntryValue } from '../../../context/preset.svelte';
|
|
2
|
+
/**
|
|
3
|
+
* Merges an ordered list of {@link PresetEntryRecord}s into a single record.
|
|
4
|
+
*
|
|
5
|
+
* - `class`: collected into an array (all classes preserved, later ones appended)
|
|
6
|
+
* - `compounds`: arrays concatenated
|
|
7
|
+
* - `attachments`: arrays concatenated
|
|
8
|
+
* - `variants`: deep-merged
|
|
9
|
+
* - `defaults`: shallow-merged
|
|
10
|
+
* - any other field: last entry wins
|
|
11
|
+
*/
|
|
12
|
+
export declare function mergePresetRecords(records: PresetEntryRecord[]): PresetEntryRecord | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* Resolves a preset to its concrete value.
|
|
15
|
+
*
|
|
16
|
+
* - If `preset` is falsy, returns `undefined`.
|
|
17
|
+
* - If it is an array, each entry is resolved (unwrapping deferred factories)
|
|
18
|
+
* and the results are merged via {@link mergePresetRecords}.
|
|
19
|
+
* - Otherwise, unwraps up to two levels of factory functions.
|
|
20
|
+
*/
|
|
21
|
+
export declare function resolvePreset(preset: PresetEntryValue | Array<PresetEntryValue> | undefined): PresetEntryRecord | undefined;
|
|
22
|
+
export declare function resolvePreset<T>(preset: T | (() => T) | undefined): T | undefined;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { merge } from 'es-toolkit';
|
|
2
|
+
import { call } from '../../../utils/function';
|
|
3
|
+
/**
|
|
4
|
+
* Merges an ordered list of {@link PresetEntryRecord}s into a single record.
|
|
5
|
+
*
|
|
6
|
+
* - `class`: collected into an array (all classes preserved, later ones appended)
|
|
7
|
+
* - `compounds`: arrays concatenated
|
|
8
|
+
* - `attachments`: arrays concatenated
|
|
9
|
+
* - `variants`: deep-merged
|
|
10
|
+
* - `defaults`: shallow-merged
|
|
11
|
+
* - any other field: last entry wins
|
|
12
|
+
*/
|
|
13
|
+
export function mergePresetRecords(records) {
|
|
14
|
+
const len = records.length;
|
|
15
|
+
if (!len)
|
|
16
|
+
return undefined;
|
|
17
|
+
if (len === 1)
|
|
18
|
+
return records[0];
|
|
19
|
+
const result = {};
|
|
20
|
+
const classes = [];
|
|
21
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
22
|
+
const compounds = [];
|
|
23
|
+
const attachments = [];
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
25
|
+
const variantsList = [];
|
|
26
|
+
for (let i = 0; i < len; i++) {
|
|
27
|
+
const record = records[i];
|
|
28
|
+
if (!record)
|
|
29
|
+
continue;
|
|
30
|
+
if (record.class !== undefined)
|
|
31
|
+
classes.push(record.class);
|
|
32
|
+
const recCompounds = record.compounds;
|
|
33
|
+
if (recCompounds?.length) {
|
|
34
|
+
for (let j = 0, jlen = recCompounds.length; j < jlen; j++)
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
36
|
+
compounds.push(recCompounds[j]);
|
|
37
|
+
}
|
|
38
|
+
const recAttachments = record.attachments;
|
|
39
|
+
if (recAttachments?.length) {
|
|
40
|
+
for (let j = 0, jlen = recAttachments.length; j < jlen; j++)
|
|
41
|
+
attachments.push(recAttachments[j]);
|
|
42
|
+
}
|
|
43
|
+
if (record.variants)
|
|
44
|
+
variantsList.push(record.variants);
|
|
45
|
+
if (record.defaults)
|
|
46
|
+
result.defaults =
|
|
47
|
+
result.defaults !== undefined
|
|
48
|
+
? { ...result.defaults, ...record.defaults }
|
|
49
|
+
: record.defaults;
|
|
50
|
+
// Copy remaining own keys directly — avoids allocating an intermediate `rest` object.
|
|
51
|
+
// Use hasOwnProperty guard so prototype-chain properties are never copied.
|
|
52
|
+
for (const key in record) {
|
|
53
|
+
if (!Object.prototype.hasOwnProperty.call(record, key) ||
|
|
54
|
+
key === 'class' ||
|
|
55
|
+
key === 'compounds' ||
|
|
56
|
+
key === 'attachments' ||
|
|
57
|
+
key === 'variants' ||
|
|
58
|
+
key === 'defaults')
|
|
59
|
+
continue;
|
|
60
|
+
result[key] = record[key];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (classes.length)
|
|
64
|
+
result.class = classes.length === 1 ? classes[0] : classes;
|
|
65
|
+
if (compounds.length)
|
|
66
|
+
result.compounds = compounds;
|
|
67
|
+
if (attachments.length)
|
|
68
|
+
result.attachments = attachments;
|
|
69
|
+
// Single merge pass over all variant maps — avoids N-1 intermediate objects
|
|
70
|
+
if (variantsList.length) {
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
72
|
+
let merged = {};
|
|
73
|
+
for (let j = 0; j < variantsList.length; j++)
|
|
74
|
+
merged = merge(merged, variantsList[j]);
|
|
75
|
+
result.variants = merged;
|
|
76
|
+
}
|
|
77
|
+
return result;
|
|
78
|
+
}
|
|
79
|
+
export function resolvePreset(preset) {
|
|
80
|
+
if (!preset)
|
|
81
|
+
return undefined;
|
|
82
|
+
if (Array.isArray(preset)) {
|
|
83
|
+
const resolved = [];
|
|
84
|
+
for (const entry of preset) {
|
|
85
|
+
const value = resolvePreset(entry);
|
|
86
|
+
if (value)
|
|
87
|
+
resolved.push(value);
|
|
88
|
+
}
|
|
89
|
+
return mergePresetRecords(resolved);
|
|
90
|
+
}
|
|
91
|
+
const result = call(preset);
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
93
|
+
return typeof result === 'function' ? result() : result;
|
|
94
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ResolvedProps } from './cache';
|
|
2
|
+
/**
|
|
3
|
+
* Builds the final spread-ready props object by layering, in ascending priority:
|
|
4
|
+
* fallback → preset → mergedVariants → restProps.
|
|
5
|
+
*
|
|
6
|
+
* `fallback` is the lowest-priority source and is intended for internal defaults
|
|
7
|
+
* (e.g. a default `animate` function) that should only apply when neither the
|
|
8
|
+
* preset nor the consumer has specified the prop.
|
|
9
|
+
*
|
|
10
|
+
* Internal atom keys (`class`, `base`, `as`, …) are stripped; Symbol-keyed
|
|
11
|
+
* attachment props are preserved at every layer.
|
|
12
|
+
*/
|
|
13
|
+
export declare function extractRestProps(preset: Record<string, any> | undefined, mergedVariants: ResolvedProps | undefined, restProps: Record<string, unknown>, fallback?: Record<string, any> | undefined): Record<string, unknown>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { PRESET_SKIP, VARIANTS_SKIP } from './constants';
|
|
2
|
+
/**
|
|
3
|
+
* Copies own string-keyed props from `src` into `result`, skipping any keys in
|
|
4
|
+
* `skip` (or no skip list when `skip` is undefined). Falls back to `for...in`
|
|
5
|
+
* which only iterates own + enumerable inherited keys; the additional
|
|
6
|
+
* `Object.hasOwn` guard mirrors the original behavior for safety.
|
|
7
|
+
*/
|
|
8
|
+
function copyStringKeys(src, skip, result) {
|
|
9
|
+
for (const k in src) {
|
|
10
|
+
if (!Object.hasOwn(src, k))
|
|
11
|
+
continue;
|
|
12
|
+
if (skip && skip.has(k))
|
|
13
|
+
continue;
|
|
14
|
+
result[k] = src[k];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Copies symbol-keyed props from `src` into `result`. Only allocates the
|
|
19
|
+
* symbols array when the source actually has any (the 99% case has none).
|
|
20
|
+
*/
|
|
21
|
+
function copySymbolKeys(src, result) {
|
|
22
|
+
const syms = Object.getOwnPropertySymbols(src);
|
|
23
|
+
if (syms.length === 0)
|
|
24
|
+
return;
|
|
25
|
+
for (const s of syms)
|
|
26
|
+
result[s] = src[s];
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Builds the final spread-ready props object by layering, in ascending priority:
|
|
30
|
+
* fallback → preset → mergedVariants → restProps.
|
|
31
|
+
*
|
|
32
|
+
* `fallback` is the lowest-priority source and is intended for internal defaults
|
|
33
|
+
* (e.g. a default `animate` function) that should only apply when neither the
|
|
34
|
+
* preset nor the consumer has specified the prop.
|
|
35
|
+
*
|
|
36
|
+
* Internal atom keys (`class`, `base`, `as`, …) are stripped; Symbol-keyed
|
|
37
|
+
* attachment props are preserved at every layer.
|
|
38
|
+
*/
|
|
39
|
+
export function extractRestProps(
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
+
preset, mergedVariants, restProps,
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
43
|
+
fallback) {
|
|
44
|
+
const result = {};
|
|
45
|
+
if (fallback) {
|
|
46
|
+
copyStringKeys(fallback, PRESET_SKIP, result);
|
|
47
|
+
copySymbolKeys(fallback, result);
|
|
48
|
+
}
|
|
49
|
+
if (preset) {
|
|
50
|
+
copyStringKeys(preset, PRESET_SKIP, result);
|
|
51
|
+
copySymbolKeys(preset, result);
|
|
52
|
+
}
|
|
53
|
+
if (mergedVariants) {
|
|
54
|
+
copyStringKeys(mergedVariants, VARIANTS_SKIP, result);
|
|
55
|
+
copySymbolKeys(mergedVariants, result);
|
|
56
|
+
}
|
|
57
|
+
copyStringKeys(restProps, undefined, result);
|
|
58
|
+
copySymbolKeys(restProps, result);
|
|
59
|
+
return result;
|
|
60
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Bond } from '../../../shared';
|
|
2
|
+
import { type ClassValue, type VariantDefinition } from '../../../utils';
|
|
3
|
+
import { type ResolvedProps } from './cache';
|
|
4
|
+
type AnyVariantDefinition = VariantDefinition<any>;
|
|
5
|
+
/**
|
|
6
|
+
* Resolves a `VariantDefinition` to a concrete `ResolvedProps` object.
|
|
7
|
+
*
|
|
8
|
+
* Results are cached in a per-definition LRU keyed by bond instance + a fast
|
|
9
|
+
* structural key over variant-relevant props, so the same inputs always return
|
|
10
|
+
* the same (reference-equal) object without re-computing.
|
|
11
|
+
*/
|
|
12
|
+
export declare function resolveVariants(def: AnyVariantDefinition, bond: Bond | null | undefined, props: Record<string, unknown>): ResolvedProps;
|
|
13
|
+
/**
|
|
14
|
+
* Merges preset variant definitions with locally-supplied resolved variant props.
|
|
15
|
+
* Local values always take precedence; classes are concatenated (preset first).
|
|
16
|
+
*/
|
|
17
|
+
export declare function mergeVariants(presetVariants: Record<string, any> | undefined, presetClass: ClassValue | undefined, presetCompounds: Array<Record<string, any>> | undefined, presetDefaults: Record<string, any> | undefined, localVariants: ResolvedProps | undefined, bond: Bond | null | undefined, props: Record<string, unknown>): ResolvedProps | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Resolves locally-supplied `variants` to a `ResolvedProps` object.
|
|
20
|
+
*
|
|
21
|
+
* Handles three shapes:
|
|
22
|
+
* - A function tagged with `VARIANT_DEF_TAG` (created by `defineVariants`) → routed through the
|
|
23
|
+
* cached `resolveVariants` engine.
|
|
24
|
+
* - A plain function (manual/legacy) → called with a per-(fn, bond) snapshot
|
|
25
|
+
* cache so re-renders with the same primitive props return the same result
|
|
26
|
+
* reference. Falls back to direct invocation when props contain non-primitive
|
|
27
|
+
* values.
|
|
28
|
+
* - A raw `VariantDefinition` object → resolved through the cache.
|
|
29
|
+
*/
|
|
30
|
+
export declare function resolveLocalVariants(variants: any, bond: Bond | null | undefined, props: Record<string, unknown>): ResolvedProps | undefined;
|
|
31
|
+
export {};
|