@svelte-atoms/core 1.0.0-alpha.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +590 -0
- package/dist/actions/animation.svelte.d.ts +6 -0
- package/dist/actions/animation.svelte.js +14 -0
- package/dist/actions/clickout.svelte.d.ts +2 -0
- package/dist/actions/clickout.svelte.js +15 -0
- package/dist/actions/popover.svelte.d.ts +19 -0
- package/dist/actions/popover.svelte.js +81 -0
- package/dist/actions/portal.svelte.d.ts +8 -0
- package/dist/actions/portal.svelte.js +32 -0
- package/dist/attachments/clickout.svelte.d.ts +1 -0
- package/dist/attachments/clickout.svelte.js +15 -0
- package/dist/attachments/event.svelte.d.ts +3 -0
- package/dist/attachments/event.svelte.js +7 -0
- package/dist/attachments/gsap.svelte.d.ts +2 -0
- package/dist/attachments/gsap.svelte.js +26 -0
- package/dist/attachments/index.d.ts +2 -0
- package/dist/attachments/index.js +2 -0
- package/dist/attachments/portal.svelte.d.ts +2 -0
- package/dist/attachments/portal.svelte.js +24 -0
- package/dist/attachments/resize-observer.svelte.d.ts +1 -0
- package/dist/attachments/resize-observer.svelte.js +7 -0
- package/dist/components/accordion/accordion-root.svelte +88 -0
- package/dist/components/accordion/accordion-root.svelte.d.ts +44 -0
- package/dist/components/accordion/accordion.stories.svelte +134 -0
- package/dist/components/accordion/accordion.stories.svelte.d.ts +18 -0
- package/dist/components/accordion/atoms.d.ts +1 -0
- package/dist/components/accordion/atoms.js +1 -0
- package/dist/components/accordion/attachments.svelte.d.ts +2 -0
- package/dist/components/accordion/attachments.svelte.js +5 -0
- package/dist/components/accordion/bond.svelte.d.ts +40 -0
- package/dist/components/accordion/bond.svelte.js +81 -0
- package/dist/components/accordion/index.d.ts +2 -0
- package/dist/components/accordion/index.js +2 -0
- package/dist/components/accordion/item/accordion-item-body.svelte +63 -0
- package/dist/components/accordion/item/accordion-item-body.svelte.d.ts +32 -0
- package/dist/components/accordion/item/accordion-item-header.svelte +67 -0
- package/dist/components/accordion/item/accordion-item-header.svelte.d.ts +44 -0
- package/dist/components/accordion/item/accordion-item-indicator.svelte +70 -0
- package/dist/components/accordion/item/accordion-item-indicator.svelte.d.ts +32 -0
- package/dist/components/accordion/item/accordion-item-root.svelte +84 -0
- package/dist/components/accordion/item/accordion-item-root.svelte.d.ts +41 -0
- package/dist/components/accordion/item/atoms.d.ts +4 -0
- package/dist/components/accordion/item/atoms.js +4 -0
- package/dist/components/accordion/item/attachments.svelte.d.ts +3 -0
- package/dist/components/accordion/item/attachments.svelte.js +6 -0
- package/dist/components/accordion/item/bond.svelte.d.ts +63 -0
- package/dist/components/accordion/item/bond.svelte.js +141 -0
- package/dist/components/accordion/item/index.d.ts +1 -0
- package/dist/components/accordion/item/index.js +1 -0
- package/dist/components/alert/alert-actions.svelte +61 -0
- package/dist/components/alert/alert-actions.svelte.d.ts +32 -0
- package/dist/components/alert/alert-close-button.svelte +82 -0
- package/dist/components/alert/alert-close-button.svelte.d.ts +32 -0
- package/dist/components/alert/alert-content.svelte +61 -0
- package/dist/components/alert/alert-content.svelte.d.ts +32 -0
- package/dist/components/alert/alert-description.svelte +58 -0
- package/dist/components/alert/alert-description.svelte.d.ts +32 -0
- package/dist/components/alert/alert-icon.svelte +61 -0
- package/dist/components/alert/alert-icon.svelte.d.ts +32 -0
- package/dist/components/alert/alert-root.svelte +123 -0
- package/dist/components/alert/alert-root.svelte.d.ts +43 -0
- package/dist/components/alert/alert-title.svelte +58 -0
- package/dist/components/alert/alert-title.svelte.d.ts +32 -0
- package/dist/components/alert/alert.css +18 -0
- package/dist/components/alert/alert.stories.svelte +40 -0
- package/dist/components/alert/alert.stories.svelte.d.ts +6 -0
- package/dist/components/alert/atoms.d.ts +7 -0
- package/dist/components/alert/atoms.js +7 -0
- package/dist/components/alert/attachments.svelte.d.ts +2 -0
- package/dist/components/alert/attachments.svelte.js +5 -0
- package/dist/components/alert/bond.svelte.d.ts +65 -0
- package/dist/components/alert/bond.svelte.js +126 -0
- package/dist/components/alert/index.d.ts +2 -0
- package/dist/components/alert/index.js +1 -0
- package/dist/components/atom/html-atom.svelte +35 -0
- package/dist/components/atom/html-atom.svelte.d.ts +39 -0
- package/dist/components/atom/index.d.ts +1 -0
- package/dist/components/atom/index.js +1 -0
- package/dist/components/atom/types.d.ts +9 -0
- package/dist/components/atom/types.js +1 -0
- package/dist/components/avatar/avatar.css +3 -0
- package/dist/components/avatar/avatar.stories.svelte +27 -0
- package/dist/components/avatar/avatar.stories.svelte.d.ts +26 -0
- package/dist/components/avatar/avatar.svelte +45 -0
- package/dist/components/avatar/avatar.svelte.d.ts +5 -0
- package/dist/components/avatar/index.d.ts +1 -0
- package/dist/components/avatar/index.js +1 -0
- package/dist/components/avatar/types.d.ts +7 -0
- package/dist/components/avatar/types.js +1 -0
- package/dist/components/badge/badge.stories.svelte +17 -0
- package/dist/components/badge/badge.stories.svelte.d.ts +26 -0
- package/dist/components/badge/badge.svelte +29 -0
- package/dist/components/badge/badge.svelte.d.ts +3 -0
- package/dist/components/badge/index.d.ts +2 -0
- package/dist/components/badge/index.js +1 -0
- package/dist/components/badge/types.d.ts +5 -0
- package/dist/components/badge/types.js +1 -0
- package/dist/components/breadcrumb/atoms.d.ts +3 -0
- package/dist/components/breadcrumb/atoms.js +3 -0
- package/dist/components/breadcrumb/breadcrumb-item.svelte +31 -0
- package/dist/components/breadcrumb/breadcrumb-item.svelte.d.ts +31 -0
- package/dist/components/breadcrumb/breadcrumb-root.svelte +29 -0
- package/dist/components/breadcrumb/breadcrumb-root.svelte.d.ts +30 -0
- package/dist/components/breadcrumb/breadcrumb-separator.svelte +29 -0
- package/dist/components/breadcrumb/breadcrumb-separator.svelte.d.ts +30 -0
- package/dist/components/breadcrumb/breadcrumb.stories.svelte +21 -0
- package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +26 -0
- package/dist/components/breadcrumb/index.d.ts +2 -0
- package/dist/components/breadcrumb/index.js +2 -0
- package/dist/components/breadcrumb/types.d.ts +0 -0
- package/dist/components/breadcrumb/types.js +1 -0
- package/dist/components/button/button.stories.svelte +17 -0
- package/dist/components/button/button.stories.svelte.d.ts +26 -0
- package/dist/components/button/button.svelte +35 -0
- package/dist/components/button/button.svelte.d.ts +3 -0
- package/dist/components/button/index.d.ts +1 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/button/types.d.ts +6 -0
- package/dist/components/button/types.js +1 -0
- package/dist/components/card/atoms.d.ts +8 -0
- package/dist/components/card/atoms.js +8 -0
- package/dist/components/card/attachments.svelte.d.ts +2 -0
- package/dist/components/card/attachments.svelte.js +5 -0
- package/dist/components/card/bond.svelte.d.ts +66 -0
- package/dist/components/card/bond.svelte.js +143 -0
- package/dist/components/card/card-body.svelte +55 -0
- package/dist/components/card/card-body.svelte.d.ts +26 -0
- package/dist/components/card/card-description.svelte +55 -0
- package/dist/components/card/card-description.svelte.d.ts +26 -0
- package/dist/components/card/card-footer.svelte +55 -0
- package/dist/components/card/card-footer.svelte.d.ts +26 -0
- package/dist/components/card/card-header.svelte +55 -0
- package/dist/components/card/card-header.svelte.d.ts +26 -0
- package/dist/components/card/card-media.svelte +55 -0
- package/dist/components/card/card-media.svelte.d.ts +26 -0
- package/dist/components/card/card-root.svelte +96 -0
- package/dist/components/card/card-root.svelte.d.ts +32 -0
- package/dist/components/card/card-subtitle.svelte +55 -0
- package/dist/components/card/card-subtitle.svelte.d.ts +26 -0
- package/dist/components/card/card-title.svelte +55 -0
- package/dist/components/card/card-title.svelte.d.ts +26 -0
- package/dist/components/card/card.css +27 -0
- package/dist/components/card/card.stories.svelte +145 -0
- package/dist/components/card/card.stories.svelte.d.ts +19 -0
- package/dist/components/card/index.d.ts +1 -0
- package/dist/components/card/index.js +1 -0
- package/dist/components/card/types.d.ts +13 -0
- package/dist/components/card/types.js +1 -0
- package/dist/components/checkbox/checkbox-checked.svelte +20 -0
- package/dist/components/checkbox/checkbox-checked.svelte.d.ts +3 -0
- package/dist/components/checkbox/checkbox.css +16 -0
- package/dist/components/checkbox/checkbox.stories.svelte +27 -0
- package/dist/components/checkbox/checkbox.stories.svelte.d.ts +6 -0
- package/dist/components/checkbox/checkbox.svelte +154 -0
- package/dist/components/checkbox/checkbox.svelte.d.ts +4 -0
- package/dist/components/checkbox/index.d.ts +1 -0
- package/dist/components/checkbox/index.js +1 -0
- package/dist/components/checkbox/types.d.ts +15 -0
- package/dist/components/checkbox/types.js +2 -0
- package/dist/components/collapsible/atoms.d.ts +4 -0
- package/dist/components/collapsible/atoms.js +4 -0
- package/dist/components/collapsible/attachments.svelte.d.ts +2 -0
- package/dist/components/collapsible/attachments.svelte.js +5 -0
- package/dist/components/collapsible/bond.svelte.d.ts +57 -0
- package/dist/components/collapsible/bond.svelte.js +96 -0
- package/dist/components/collapsible/collapsible-body.svelte +58 -0
- package/dist/components/collapsible/collapsible-body.svelte.d.ts +33 -0
- package/dist/components/collapsible/collapsible-header.svelte +62 -0
- package/dist/components/collapsible/collapsible-header.svelte.d.ts +33 -0
- package/dist/components/collapsible/collapsible-indicator.svelte +74 -0
- package/dist/components/collapsible/collapsible-indicator.svelte.d.ts +33 -0
- package/dist/components/collapsible/collapsible-root.svelte +94 -0
- package/dist/components/collapsible/collapsible-root.svelte.d.ts +43 -0
- package/dist/components/collapsible/collapsible.stories.svelte +175 -0
- package/dist/components/collapsible/collapsible.stories.svelte.d.ts +18 -0
- package/dist/components/collapsible/index.d.ts +2 -0
- package/dist/components/collapsible/index.js +2 -0
- package/dist/components/combobox/atoms.d.ts +5 -0
- package/dist/components/combobox/atoms.js +5 -0
- package/dist/components/combobox/attachments.svelte.d.ts +2 -0
- package/dist/components/combobox/attachments.svelte.js +5 -0
- package/dist/components/combobox/bond.svelte.d.ts +32 -0
- package/dist/components/combobox/bond.svelte.js +70 -0
- package/dist/components/combobox/combobox-input.svelte +59 -0
- package/dist/components/combobox/combobox-input.svelte.d.ts +12 -0
- package/dist/components/combobox/combobox-root.svelte +68 -0
- package/dist/components/combobox/combobox-root.svelte.d.ts +43 -0
- package/dist/components/combobox/combobox-trigger.svelte +50 -0
- package/dist/components/combobox/combobox-trigger.svelte.d.ts +36 -0
- package/dist/components/combobox/compobox-item.svelte +73 -0
- package/dist/components/combobox/compobox-item.svelte.d.ts +36 -0
- package/dist/components/combobox/compobox.stories.svelte +53 -0
- package/dist/components/combobox/compobox.stories.svelte.d.ts +3 -0
- package/dist/components/combobox/index.d.ts +1 -0
- package/dist/components/combobox/index.js +1 -0
- package/dist/components/contaiener/container.stories.svelte +25 -0
- package/dist/components/contaiener/container.stories.svelte.d.ts +26 -0
- package/dist/components/contaiener/container.svelte +67 -0
- package/dist/components/contaiener/container.svelte.d.ts +3 -0
- package/dist/components/contaiener/index.d.ts +0 -0
- package/dist/components/contaiener/index.js +1 -0
- package/dist/components/contaiener/types.d.ts +14 -0
- package/dist/components/contaiener/types.js +1 -0
- package/dist/components/contextmenu/atoms.d.ts +0 -0
- package/dist/components/contextmenu/atoms.js +1 -0
- package/dist/components/contextmenu/contextmenu-trigger.svelte +0 -0
- package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +26 -0
- package/dist/components/contextmenu/indext.d.ts +0 -0
- package/dist/components/contextmenu/indext.js +1 -0
- package/dist/components/datagrid/atoms.d.ts +8 -0
- package/dist/components/datagrid/atoms.js +8 -0
- package/dist/components/datagrid/attachments.svelte.d.ts +2 -0
- package/dist/components/datagrid/attachments.svelte.js +5 -0
- package/dist/components/datagrid/bond.svelte.d.ts +39 -0
- package/dist/components/datagrid/bond.svelte.js +88 -0
- package/dist/components/datagrid/context.d.ts +36 -0
- package/dist/components/datagrid/context.js +24 -0
- package/dist/components/datagrid/datagrid-body.svelte +49 -0
- package/dist/components/datagrid/datagrid-body.svelte.d.ts +36 -0
- package/dist/components/datagrid/datagrid-checkbox.svelte +115 -0
- package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +8 -0
- package/dist/components/datagrid/datagrid-footer.svelte +40 -0
- package/dist/components/datagrid/datagrid-footer.svelte.d.ts +26 -0
- package/dist/components/datagrid/datagrid-header.svelte +59 -0
- package/dist/components/datagrid/datagrid-header.svelte.d.ts +26 -0
- package/dist/components/datagrid/datagrid-root.svelte +67 -0
- package/dist/components/datagrid/datagrid-root.svelte.d.ts +31 -0
- package/dist/components/datagrid/datagrid.css +47 -0
- package/dist/components/datagrid/datagrid.stories.svelte +75 -0
- package/dist/components/datagrid/datagrid.stories.svelte.d.ts +6 -0
- package/dist/components/datagrid/index.d.ts +3 -0
- package/dist/components/datagrid/index.js +3 -0
- package/dist/components/datagrid/td/bond.svelte.d.ts +28 -0
- package/dist/components/datagrid/td/bond.svelte.js +40 -0
- package/dist/components/datagrid/td/datagrid-td.svelte +90 -0
- package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +39 -0
- package/dist/components/datagrid/td/index.d.ts +2 -0
- package/dist/components/datagrid/td/index.js +2 -0
- package/dist/components/datagrid/th/bond.svelte.d.ts +38 -0
- package/dist/components/datagrid/th/bond.svelte.js +66 -0
- package/dist/components/datagrid/th/datagrid-th-sort-icon.svelte +56 -0
- package/dist/components/datagrid/th/datagrid-th-sort-icon.svelte.d.ts +35 -0
- package/dist/components/datagrid/th/datagrid-th.svelte +131 -0
- package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +44 -0
- package/dist/components/datagrid/th/index.d.ts +2 -0
- package/dist/components/datagrid/th/index.js +2 -0
- package/dist/components/datagrid/tr/bond.svelte.d.ts +33 -0
- package/dist/components/datagrid/tr/bond.svelte.js +68 -0
- package/dist/components/datagrid/tr/datagrid-tr.css +7 -0
- package/dist/components/datagrid/tr/datagrid-tr.svelte +108 -0
- package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +44 -0
- package/dist/components/datagrid/tr/index.d.ts +2 -0
- package/dist/components/datagrid/tr/index.js +2 -0
- package/dist/components/datagrid/types.d.ts +103 -0
- package/dist/components/datagrid/types.js +1 -0
- package/dist/components/dialog/atoms.d.ts +6 -0
- package/dist/components/dialog/atoms.js +6 -0
- package/dist/components/dialog/attachements.svelte.d.ts +3 -0
- package/dist/components/dialog/attachements.svelte.js +9 -0
- package/dist/components/dialog/bond.svelte.d.ts +61 -0
- package/dist/components/dialog/bond.svelte.js +129 -0
- package/dist/components/dialog/dialog-body.svelte +55 -0
- package/dist/components/dialog/dialog-body.svelte.d.ts +26 -0
- package/dist/components/dialog/dialog-close-button.svelte +69 -0
- package/dist/components/dialog/dialog-close-button.svelte.d.ts +26 -0
- package/dist/components/dialog/dialog-content.svelte +77 -0
- package/dist/components/dialog/dialog-content.svelte.d.ts +26 -0
- package/dist/components/dialog/dialog-description.svelte +51 -0
- package/dist/components/dialog/dialog-description.svelte.d.ts +26 -0
- package/dist/components/dialog/dialog-footer.svelte +55 -0
- package/dist/components/dialog/dialog-footer.svelte.d.ts +26 -0
- package/dist/components/dialog/dialog-header.svelte +55 -0
- package/dist/components/dialog/dialog-header.svelte.d.ts +26 -0
- package/dist/components/dialog/dialog-root.svelte +123 -0
- package/dist/components/dialog/dialog-root.svelte.d.ts +39 -0
- package/dist/components/dialog/dialog-title.svelte +51 -0
- package/dist/components/dialog/dialog-title.svelte.d.ts +26 -0
- package/dist/components/dialog/dialog.stories.svelte +67 -0
- package/dist/components/dialog/dialog.stories.svelte.d.ts +3 -0
- package/dist/components/dialog/index.d.ts +1 -0
- package/dist/components/dialog/index.js +1 -0
- package/dist/components/divider/divider.svelte +30 -0
- package/dist/components/divider/divider.svelte.d.ts +17 -0
- package/dist/components/divider/index.d.ts +1 -0
- package/dist/components/divider/index.js +1 -0
- package/dist/components/drawer/README.MD +98 -0
- package/dist/components/drawer/atoms.d.ts +8 -0
- package/dist/components/drawer/atoms.js +8 -0
- package/dist/components/drawer/attachments.svelte.d.ts +6 -0
- package/dist/components/drawer/attachments.svelte.js +82 -0
- package/dist/components/drawer/bond.svelte.d.ts +67 -0
- package/dist/components/drawer/bond.svelte.js +144 -0
- package/dist/components/drawer/drawer-backdrop.svelte +56 -0
- package/dist/components/drawer/drawer-backdrop.svelte.d.ts +29 -0
- package/dist/components/drawer/drawer-body.svelte +62 -0
- package/dist/components/drawer/drawer-body.svelte.d.ts +40 -0
- package/dist/components/drawer/drawer-content.svelte +64 -0
- package/dist/components/drawer/drawer-content.svelte.d.ts +38 -0
- package/dist/components/drawer/drawer-description.svelte +60 -0
- package/dist/components/drawer/drawer-description.svelte.d.ts +38 -0
- package/dist/components/drawer/drawer-footer.svelte +60 -0
- package/dist/components/drawer/drawer-footer.svelte.d.ts +38 -0
- package/dist/components/drawer/drawer-header.svelte +61 -0
- package/dist/components/drawer/drawer-header.svelte.d.ts +38 -0
- package/dist/components/drawer/drawer-root.svelte +116 -0
- package/dist/components/drawer/drawer-root.svelte.d.ts +60 -0
- package/dist/components/drawer/drawer-title.svelte +60 -0
- package/dist/components/drawer/drawer-title.svelte.d.ts +38 -0
- package/dist/components/drawer/drawer.stories.svelte +224 -0
- package/dist/components/drawer/drawer.stories.svelte.d.ts +3 -0
- package/dist/components/drawer/index.d.ts +3 -0
- package/dist/components/drawer/index.js +3 -0
- package/dist/components/dropdown/atoms.d.ts +9 -0
- package/dist/components/dropdown/atoms.js +9 -0
- package/dist/components/dropdown/attachments.svelte.d.ts +2 -0
- package/dist/components/dropdown/attachments.svelte.js +5 -0
- package/dist/components/dropdown/bond.svelte.d.ts +49 -0
- package/dist/components/dropdown/bond.svelte.js +114 -0
- package/dist/components/dropdown/dropdown-placeholder.svelte +41 -0
- package/dist/components/dropdown/dropdown-placeholder.svelte.d.ts +34 -0
- package/dist/components/dropdown/dropdown-query.svelte +64 -0
- package/dist/components/dropdown/dropdown-query.svelte.d.ts +34 -0
- package/dist/components/dropdown/dropdown-root.svelte +59 -0
- package/dist/components/dropdown/dropdown-root.svelte.d.ts +42 -0
- package/dist/components/dropdown/dropdown-trigger.svelte +60 -0
- package/dist/components/dropdown/dropdown-trigger.svelte.d.ts +33 -0
- package/dist/components/dropdown/dropdown-value.svelte +66 -0
- package/dist/components/dropdown/dropdown-value.svelte.d.ts +37 -0
- package/dist/components/dropdown/dropdown-values.svelte +17 -0
- package/dist/components/dropdown/dropdown-values.svelte.d.ts +6 -0
- package/dist/components/dropdown/dropdown.stories.svelte +74 -0
- package/dist/components/dropdown/dropdown.stories.svelte.d.ts +3 -0
- package/dist/components/dropdown/index.d.ts +2 -0
- package/dist/components/dropdown/index.js +2 -0
- package/dist/components/dropdown/item/attachments.svelte.d.ts +3 -0
- package/dist/components/dropdown/item/attachments.svelte.js +6 -0
- package/dist/components/dropdown/item/bond.svelte.d.ts +37 -0
- package/dist/components/dropdown/item/bond.svelte.js +87 -0
- package/dist/components/dropdown/item/dropdown-item.svelte +98 -0
- package/dist/components/dropdown/item/dropdown-item.svelte.d.ts +38 -0
- package/dist/components/dropdown/runes.svelte.d.ts +6 -0
- package/dist/components/dropdown/runes.svelte.js +15 -0
- package/dist/components/element/html-element.svelte +93 -0
- package/dist/components/element/html-element.svelte.d.ts +38 -0
- package/dist/components/element/index.d.ts +4 -0
- package/dist/components/element/index.js +4 -0
- package/dist/components/element/mathml-element.svelte +90 -0
- package/dist/components/element/mathml-element.svelte.d.ts +25 -0
- package/dist/components/element/svg-element.svelte +90 -0
- package/dist/components/element/svg-element.svelte.d.ts +38 -0
- package/dist/components/element/types.d.ts +29 -0
- package/dist/components/element/types.js +1 -0
- package/dist/components/form/atoms.d.ts +2 -0
- package/dist/components/form/atoms.js +2 -0
- package/dist/components/form/attachments.svelte.d.ts +2 -0
- package/dist/components/form/attachments.svelte.js +5 -0
- package/dist/components/form/bond.svelte.d.ts +28 -0
- package/dist/components/form/bond.svelte.js +47 -0
- package/dist/components/form/field/atoms.d.ts +4 -0
- package/dist/components/form/field/atoms.js +4 -0
- package/dist/components/form/field/attachments.svelte.d.ts +2 -0
- package/dist/components/form/field/attachments.svelte.js +5 -0
- package/dist/components/form/field/bond.svelte.d.ts +80 -0
- package/dist/components/form/field/bond.svelte.js +159 -0
- package/dist/components/form/field/field-control.svelte +66 -0
- package/dist/components/form/field/field-control.svelte.d.ts +50 -0
- package/dist/components/form/field/field-errors.svelte +9 -0
- package/dist/components/form/field/field-errors.svelte.d.ts +11 -0
- package/dist/components/form/field/field-label.svelte +45 -0
- package/dist/components/form/field/field-label.svelte.d.ts +27 -0
- package/dist/components/form/field/field-root.svelte +93 -0
- package/dist/components/form/field/field-root.svelte.d.ts +46 -0
- package/dist/components/form/field/index.d.ts +1 -0
- package/dist/components/form/field/index.js +1 -0
- package/dist/components/form/field/validation-adapters.d.ts +20 -0
- package/dist/components/form/field/validation-adapters.js +41 -0
- package/dist/components/form/form-root.svelte +74 -0
- package/dist/components/form/form-root.svelte.d.ts +50 -0
- package/dist/components/form/form.stories.svelte +99 -0
- package/dist/components/form/form.stories.svelte.d.ts +18 -0
- package/dist/components/form/index.d.ts +5 -0
- package/dist/components/form/index.js +4 -0
- package/dist/components/form/validation-adapters.d.ts +11 -0
- package/dist/components/form/validation-adapters.js +82 -0
- package/dist/components/icon/icon.svelte +61 -0
- package/dist/components/icon/icon.svelte.d.ts +32 -0
- package/dist/components/icon/index.d.ts +2 -0
- package/dist/components/icon/index.js +2 -0
- package/dist/components/icon/types.d.ts +7 -0
- package/dist/components/icon/types.js +1 -0
- package/dist/components/image/image.stories.svelte +23 -0
- package/dist/components/image/image.stories.svelte.d.ts +26 -0
- package/dist/components/image/image.svelte +37 -0
- package/dist/components/image/image.svelte.d.ts +8 -0
- package/dist/components/image/index.d.ts +0 -0
- package/dist/components/image/index.js +1 -0
- package/dist/components/image/types.d.ts +0 -0
- package/dist/components/image/types.js +1 -0
- package/dist/components/index.d.ts +36 -0
- package/dist/components/index.js +36 -0
- package/dist/components/input/atoms.d.ts +4 -0
- package/dist/components/input/atoms.js +4 -0
- package/dist/components/input/attachments.svelte.d.ts +2 -0
- package/dist/components/input/attachments.svelte.js +5 -0
- package/dist/components/input/bond.svelte.d.ts +49 -0
- package/dist/components/input/bond.svelte.js +76 -0
- package/dist/components/input/index.d.ts +2 -0
- package/dist/components/input/index.js +2 -0
- package/dist/components/input/input-icon.svelte +16 -0
- package/dist/components/input/input-icon.svelte.d.ts +4 -0
- package/dist/components/input/input-placeholder.svelte +61 -0
- package/dist/components/input/input-placeholder.svelte.d.ts +25 -0
- package/dist/components/input/input-root.svelte +83 -0
- package/dist/components/input/input-root.svelte.d.ts +30 -0
- package/dist/components/input/input-value.svelte +110 -0
- package/dist/components/input/input-value.svelte.d.ts +16 -0
- package/dist/components/input/input.stories.svelte +34 -0
- package/dist/components/input/input.stories.svelte.d.ts +18 -0
- package/dist/components/label/index.d.ts +1 -0
- package/dist/components/label/index.js +1 -0
- package/dist/components/label/label.stories.svelte +26 -0
- package/dist/components/label/label.stories.svelte.d.ts +6 -0
- package/dist/components/label/label.svelte +39 -0
- package/dist/components/label/label.svelte.d.ts +30 -0
- package/dist/components/layer/atoms.d.ts +2 -0
- package/dist/components/layer/atoms.js +2 -0
- package/dist/components/layer/attachments.svelte.d.ts +2 -0
- package/dist/components/layer/attachments.svelte.js +5 -0
- package/dist/components/layer/bond.svelte.d.ts +23 -0
- package/dist/components/layer/bond.svelte.js +48 -0
- package/dist/components/layer/index.d.ts +2 -0
- package/dist/components/layer/index.js +2 -0
- package/dist/components/layer/layer-inner.svelte +56 -0
- package/dist/components/layer/layer-inner.svelte.d.ts +25 -0
- package/dist/components/layer/layer-root.svelte +75 -0
- package/dist/components/layer/layer-root.svelte.d.ts +29 -0
- package/dist/components/link/index.d.ts +1 -0
- package/dist/components/link/index.js +1 -0
- package/dist/components/link/link.stories.svelte +26 -0
- package/dist/components/link/link.stories.svelte.d.ts +6 -0
- package/dist/components/link/link.svelte +27 -0
- package/dist/components/link/link.svelte.d.ts +25 -0
- package/dist/components/list/atoms.d.ts +5 -0
- package/dist/components/list/atoms.js +5 -0
- package/dist/components/list/index.d.ts +1 -0
- package/dist/components/list/index.js +1 -0
- package/dist/components/list/list-divider.svelte +29 -0
- package/dist/components/list/list-divider.svelte.d.ts +30 -0
- package/dist/components/list/list-group.svelte +28 -0
- package/dist/components/list/list-group.svelte.d.ts +30 -0
- package/dist/components/list/list-item.svelte +28 -0
- package/dist/components/list/list-item.svelte.d.ts +30 -0
- package/dist/components/list/list-root.svelte +28 -0
- package/dist/components/list/list-root.svelte.d.ts +30 -0
- package/dist/components/list/list-title.svelte +29 -0
- package/dist/components/list/list-title.svelte.d.ts +30 -0
- package/dist/components/menu/atoms.d.ts +3 -0
- package/dist/components/menu/atoms.js +3 -0
- package/dist/components/menu/attachments.svelte.d.ts +2 -0
- package/dist/components/menu/attachments.svelte.js +5 -0
- package/dist/components/menu/index.d.ts +2 -0
- package/dist/components/menu/index.js +2 -0
- package/dist/components/menu/menu-item.svelte +56 -0
- package/dist/components/menu/menu-item.svelte.d.ts +37 -0
- package/dist/components/menu/menu-list.svelte +44 -0
- package/dist/components/menu/menu-list.svelte.d.ts +36 -0
- package/dist/components/menu/menu.stories.svelte +36 -0
- package/dist/components/menu/menu.stories.svelte.d.ts +3 -0
- package/dist/components/popover/atoms.d.ts +5 -0
- package/dist/components/popover/atoms.js +5 -0
- package/dist/components/popover/attachments.svelte.d.ts +3 -0
- package/dist/components/popover/attachments.svelte.js +18 -0
- package/dist/components/popover/bond.svelte.d.ts +77 -0
- package/dist/components/popover/bond.svelte.js +203 -0
- package/dist/components/popover/index.d.ts +3 -0
- package/dist/components/popover/index.js +3 -0
- package/dist/components/popover/popover-arrow.svelte +121 -0
- package/dist/components/popover/popover-arrow.svelte.d.ts +26 -0
- package/dist/components/popover/popover-content.svelte +153 -0
- package/dist/components/popover/popover-content.svelte.d.ts +41 -0
- package/dist/components/popover/popover-indicator.svelte +48 -0
- package/dist/components/popover/popover-indicator.svelte.d.ts +12 -0
- package/dist/components/popover/popover-root.svelte +63 -0
- package/dist/components/popover/popover-root.svelte.d.ts +21 -0
- package/dist/components/popover/popover-trigger.svelte +63 -0
- package/dist/components/popover/popover-trigger.svelte.d.ts +32 -0
- package/dist/components/popover/popover.stories.svelte +66 -0
- package/dist/components/popover/popover.stories.svelte.d.ts +3 -0
- package/dist/components/portal/active-portal.svelte +16 -0
- package/dist/components/portal/active-portal.svelte.d.ts +13 -0
- package/dist/components/portal/atoms.d.ts +2 -0
- package/dist/components/portal/atoms.js +2 -0
- package/dist/components/portal/attachements.svelte.d.ts +2 -0
- package/dist/components/portal/attachements.svelte.js +5 -0
- package/dist/components/portal/bond.svelte.d.ts +27 -0
- package/dist/components/portal/bond.svelte.js +54 -0
- package/dist/components/portal/index.d.ts +7 -0
- package/dist/components/portal/index.js +7 -0
- package/dist/components/portal/portal-inner.svelte +55 -0
- package/dist/components/portal/portal-inner.svelte.d.ts +25 -0
- package/dist/components/portal/portal-root.svelte +97 -0
- package/dist/components/portal/portal-root.svelte.d.ts +36 -0
- package/dist/components/portal/portals/bond.svelte.d.ts +20 -0
- package/dist/components/portal/portals/bond.svelte.js +36 -0
- package/dist/components/portal/portals/index.d.ts +2 -0
- package/dist/components/portal/portals/index.js +2 -0
- package/dist/components/portal/portals/portals.svelte +17 -0
- package/dist/components/portal/portals/portals.svelte.d.ts +9 -0
- package/dist/components/portal/teleport.svelte +49 -0
- package/dist/components/portal/teleport.svelte.d.ts +29 -0
- package/dist/components/portal/utils.d.ts +1 -0
- package/dist/components/portal/utils.js +19 -0
- package/dist/components/radio/context.d.ts +10 -0
- package/dist/components/radio/context.js +8 -0
- package/dist/components/radio/index.d.ts +2 -0
- package/dist/components/radio/index.js +2 -0
- package/dist/components/radio/radio-group.stories.svelte +50 -0
- package/dist/components/radio/radio-group.stories.svelte.d.ts +6 -0
- package/dist/components/radio/radio-group.svelte +53 -0
- package/dist/components/radio/radio-group.svelte.d.ts +13 -0
- package/dist/components/radio/radio.stories.svelte +26 -0
- package/dist/components/radio/radio.stories.svelte.d.ts +6 -0
- package/dist/components/radio/radio.svelte +113 -0
- package/dist/components/radio/radio.svelte.d.ts +38 -0
- package/dist/components/radio/types.svelte +0 -0
- package/dist/components/radio/types.svelte.d.ts +26 -0
- package/dist/components/root/bond.svelte.d.ts +26 -0
- package/dist/components/root/bond.svelte.js +36 -0
- package/dist/components/root/index.d.ts +2 -0
- package/dist/components/root/index.js +2 -0
- package/dist/components/root/root.css +161 -0
- package/dist/components/root/root.svelte +108 -0
- package/dist/components/root/root.svelte.d.ts +8 -0
- package/dist/components/scrollable/atoms.d.ts +5 -0
- package/dist/components/scrollable/atoms.js +5 -0
- package/dist/components/scrollable/attachments.svelte.d.ts +2 -0
- package/dist/components/scrollable/attachments.svelte.js +5 -0
- package/dist/components/scrollable/bond.svelte.d.ts +268 -0
- package/dist/components/scrollable/bond.svelte.js +481 -0
- package/dist/components/scrollable/index.d.ts +7 -0
- package/dist/components/scrollable/index.js +3 -0
- package/dist/components/scrollable/scrollable-container.svelte +90 -0
- package/dist/components/scrollable/scrollable-container.svelte.d.ts +30 -0
- package/dist/components/scrollable/scrollable-content.svelte +60 -0
- package/dist/components/scrollable/scrollable-content.svelte.d.ts +30 -0
- package/dist/components/scrollable/scrollable-root.svelte +128 -0
- package/dist/components/scrollable/scrollable-root.svelte.d.ts +46 -0
- package/dist/components/scrollable/scrollable-thumb.svelte +91 -0
- package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +31 -0
- package/dist/components/scrollable/scrollable-track.svelte +75 -0
- package/dist/components/scrollable/scrollable-track.svelte.d.ts +31 -0
- package/dist/components/scrollable/scrollable.stories.svelte +126 -0
- package/dist/components/scrollable/scrollable.stories.svelte.d.ts +26 -0
- package/dist/components/sidebar/atoms.d.ts +2 -0
- package/dist/components/sidebar/atoms.js +2 -0
- package/dist/components/sidebar/attachments.svelte.d.ts +3 -0
- package/dist/components/sidebar/attachments.svelte.js +21 -0
- package/dist/components/sidebar/bond.svelte.d.ts +35 -0
- package/dist/components/sidebar/bond.svelte.js +55 -0
- package/dist/components/sidebar/index.d.ts +2 -0
- package/dist/components/sidebar/index.js +2 -0
- package/dist/components/sidebar/sidebar-content.svelte +62 -0
- package/dist/components/sidebar/sidebar-content.svelte.d.ts +33 -0
- package/dist/components/sidebar/sidebar-root.svelte +96 -0
- package/dist/components/sidebar/sidebar-root.svelte.d.ts +42 -0
- package/dist/components/sidebar/sidebar.stories.svelte +52 -0
- package/dist/components/sidebar/sidebar.stories.svelte.d.ts +3 -0
- package/dist/components/stack/atoms.d.ts +2 -0
- package/dist/components/stack/atoms.js +2 -0
- package/dist/components/stack/index.d.ts +1 -0
- package/dist/components/stack/index.js +1 -0
- package/dist/components/stack/stack-item.svelte +28 -0
- package/dist/components/stack/stack-item.svelte.d.ts +30 -0
- package/dist/components/stack/stack-root.svelte +37 -0
- package/dist/components/stack/stack-root.svelte.d.ts +26 -0
- package/dist/components/stack/stack.css +8 -0
- package/dist/components/tabs/atoms.d.ts +3 -0
- package/dist/components/tabs/atoms.js +3 -0
- package/dist/components/tabs/attachments.svelte.d.ts +2 -0
- package/dist/components/tabs/attachments.svelte.js +5 -0
- package/dist/components/tabs/bond.svelte.d.ts +43 -0
- package/dist/components/tabs/bond.svelte.js +88 -0
- package/dist/components/tabs/index.d.ts +2 -0
- package/dist/components/tabs/index.js +2 -0
- package/dist/components/tabs/tab/atoms.d.ts +4 -0
- package/dist/components/tabs/tab/atoms.js +4 -0
- package/dist/components/tabs/tab/attachments.svelte.d.ts +3 -0
- package/dist/components/tabs/tab/attachments.svelte.js +6 -0
- package/dist/components/tabs/tab/bond.svelte.d.ts +53 -0
- package/dist/components/tabs/tab/bond.svelte.js +110 -0
- package/dist/components/tabs/tab/index.d.ts +1 -0
- package/dist/components/tabs/tab/index.js +1 -0
- package/dist/components/tabs/tab/tab-body.svelte +68 -0
- package/dist/components/tabs/tab/tab-body.svelte.d.ts +32 -0
- package/dist/components/tabs/tab/tab-description.svelte +53 -0
- package/dist/components/tabs/tab/tab-description.svelte.d.ts +32 -0
- package/dist/components/tabs/tab/tab-header.svelte +84 -0
- package/dist/components/tabs/tab/tab-header.svelte.d.ts +35 -0
- package/dist/components/tabs/tab/tab-root.svelte +91 -0
- package/dist/components/tabs/tab/tab-root.svelte.d.ts +45 -0
- package/dist/components/tabs/tabs-body.svelte +48 -0
- package/dist/components/tabs/tabs-body.svelte.d.ts +36 -0
- package/dist/components/tabs/tabs-header.svelte +49 -0
- package/dist/components/tabs/tabs-header.svelte.d.ts +36 -0
- package/dist/components/tabs/tabs-root.svelte +75 -0
- package/dist/components/tabs/tabs-root.svelte.d.ts +44 -0
- package/dist/components/tabs/tabs.stories.svelte +59 -0
- package/dist/components/tabs/tabs.stories.svelte.d.ts +3 -0
- package/dist/components/textarea/atoms.d.ts +2 -0
- package/dist/components/textarea/atoms.js +2 -0
- package/dist/components/textarea/index.d.ts +1 -0
- package/dist/components/textarea/index.js +1 -0
- package/dist/components/textarea/textarea-input.svelte +7 -0
- package/dist/components/textarea/textarea-input.svelte.d.ts +6 -0
- package/dist/components/textarea/textarea-root.svelte +12 -0
- package/dist/components/textarea/textarea-root.svelte.d.ts +13 -0
- package/dist/components/toast/atoms.d.ts +3 -0
- package/dist/components/toast/atoms.js +3 -0
- package/dist/components/toast/attachments.svelte.d.ts +2 -0
- package/dist/components/toast/attachments.svelte.js +5 -0
- package/dist/components/toast/bond.d.ts +35 -0
- package/dist/components/toast/bond.js +59 -0
- package/dist/components/toast/index.d.ts +1 -0
- package/dist/components/toast/index.js +1 -0
- package/dist/components/toast/toast-description.svelte +45 -0
- package/dist/components/toast/toast-description.svelte.d.ts +33 -0
- package/dist/components/toast/toast-root.svelte +77 -0
- package/dist/components/toast/toast-root.svelte.d.ts +42 -0
- package/dist/components/toast/toast-title.svelte +46 -0
- package/dist/components/toast/toast-title.svelte.d.ts +34 -0
- package/dist/components/tooltip/atoms.d.ts +2 -0
- package/dist/components/tooltip/atoms.js +2 -0
- package/dist/components/tooltip/attachments.svelte.d.ts +2 -0
- package/dist/components/tooltip/attachments.svelte.js +5 -0
- package/dist/components/tooltip/index.d.ts +1 -0
- package/dist/components/tooltip/index.js +1 -0
- package/dist/components/tooltip/tooltip-trigger.svelte +37 -0
- package/dist/components/tooltip/tooltip-trigger.svelte.d.ts +6 -0
- package/dist/components/tooltip/tooltip.stories.svelte +35 -0
- package/dist/components/tooltip/tooltip.stories.svelte.d.ts +3 -0
- package/dist/components/tree/atoms.d.ts +4 -0
- package/dist/components/tree/atoms.js +4 -0
- package/dist/components/tree/attachments.svelte.d.ts +2 -0
- package/dist/components/tree/attachments.svelte.js +5 -0
- package/dist/components/tree/bond.svelte.d.ts +48 -0
- package/dist/components/tree/bond.svelte.js +93 -0
- package/dist/components/tree/index.d.ts +1 -0
- package/dist/components/tree/index.js +1 -0
- package/dist/components/tree/tree-body.svelte +56 -0
- package/dist/components/tree/tree-body.svelte.d.ts +34 -0
- package/dist/components/tree/tree-header.svelte +76 -0
- package/dist/components/tree/tree-header.svelte.d.ts +35 -0
- package/dist/components/tree/tree-indicator.svelte +60 -0
- package/dist/components/tree/tree-indicator.svelte.d.ts +32 -0
- package/dist/components/tree/tree-root.svelte +87 -0
- package/dist/components/tree/tree-root.svelte.d.ts +41 -0
- package/dist/components/tree/tree.stories.svelte +134 -0
- package/dist/components/tree/tree.stories.svelte.d.ts +3 -0
- package/dist/components/virtual/virtual-root.svelte +258 -0
- package/dist/components/virtual/virtual-root.svelte.d.ts +42 -0
- package/dist/context/index.d.ts +1 -0
- package/dist/context/index.js +1 -0
- package/dist/context/preset.svelte.d.ts +12 -0
- package/dist/context/preset.svelte.js +15 -0
- package/dist/helpers/injector.svelte +60 -0
- package/dist/helpers/injector.svelte.d.ts +34 -0
- package/dist/icons/icon-arrow-down.svelte +11 -0
- package/dist/icons/icon-arrow-down.svelte.d.ts +26 -0
- package/dist/icons/icon-checkmark.svelte +6 -0
- package/dist/icons/icon-checkmark.svelte.d.ts +26 -0
- package/dist/icons/icon-close.svelte +9 -0
- package/dist/icons/icon-close.svelte.d.ts +26 -0
- package/dist/icons/icon-more-vert.svelte +6 -0
- package/dist/icons/icon-more-vert.svelte.d.ts +26 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +8 -0
- package/dist/runes/color-scheme.svelte.d.ts +4 -0
- package/dist/runes/color-scheme.svelte.js +21 -0
- package/dist/runes/container.svelte.d.ts +7 -0
- package/dist/runes/container.svelte.js +26 -0
- package/dist/runes/index.d.ts +2 -0
- package/dist/runes/index.js +2 -0
- package/dist/runes/lifecycles.svelte.d.ts +3 -0
- package/dist/runes/lifecycles.svelte.js +14 -0
- package/dist/runes/viewport.svelte.d.ts +7 -0
- package/dist/runes/viewport.svelte.js +21 -0
- package/dist/shared/bond.svelte.d.ts +22 -0
- package/dist/shared/bond.svelte.js +39 -0
- package/dist/shared/dom.svelte.d.ts +0 -0
- package/dist/shared/dom.svelte.js +1 -0
- package/dist/shared/index.d.ts +2 -0
- package/dist/shared/index.js +2 -0
- package/dist/shared/motion.d.ts +8 -0
- package/dist/shared/motion.js +8 -0
- package/dist/types/index.d.ts +17 -0
- package/dist/types/index.js +1 -0
- package/dist/utils/dom.svelte.d.ts +2 -0
- package/dist/utils/dom.svelte.js +6 -0
- package/dist/utils/gsap.d.ts +2 -0
- package/dist/utils/gsap.js +8 -0
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.js +12 -0
- package/dist/utils/state.d.ts +3 -0
- package/dist/utils/state.js +18 -0
- package/package.json +435 -0
package/README.md
ADDED
|
@@ -0,0 +1,590 @@
|
|
|
1
|
+
# ⚛️ @svelte-atoms/core
|
|
2
|
+
|
|
3
|
+
> A modern, modular, and accessible Svelte 5 UI component library built with composability at its core.
|
|
4
|
+
|
|
5
|
+
**@svelte-atoms/core** is a comprehensive Svelte component library that provides fundamental building blocks ("atoms") for creating sophisticated, interactive design systems. Each component is designed with accessibility, type safety, and developer experience in mind. Built with Svelte 5 runes for optimal reactivity and performance.
|
|
6
|
+
|
|
7
|
+
[](https://www.npmjs.com/package/@svelte-atoms/core)
|
|
8
|
+
[](LICENSE)
|
|
9
|
+
[](https://www.typescriptlang.org/)
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## ✨ Features
|
|
14
|
+
|
|
15
|
+
### 🧱 **Bond Architecture**
|
|
16
|
+
|
|
17
|
+
Built around the concept of "Bonds" - self-contained, reusable state management classes that encapsulate component state and DOM interactions. Each component uses the Bond pattern for consistent, predictable behavior.
|
|
18
|
+
|
|
19
|
+
### 🔗 **Context-Driven Communication**
|
|
20
|
+
|
|
21
|
+
Components seamlessly communicate through Svelte's context API using standardized static methods (`Bond.get()` / `Bond.set()`), enabling powerful parent-child relationships without prop drilling.
|
|
22
|
+
|
|
23
|
+
### ♿ **Accessibility First**
|
|
24
|
+
|
|
25
|
+
Every component includes proper ARIA attributes, keyboard navigation, and focus management out of the box.
|
|
26
|
+
|
|
27
|
+
### 🔧 **Highly Extensible**
|
|
28
|
+
|
|
29
|
+
Easily extend components with custom behaviors, animations, and styling while maintaining the core functionality.
|
|
30
|
+
|
|
31
|
+
### 🎯 **Type Safety**
|
|
32
|
+
|
|
33
|
+
Fully written in TypeScript with comprehensive type definitions for a robust development experience.
|
|
34
|
+
|
|
35
|
+
### ⚡ **Reactive by Design**
|
|
36
|
+
|
|
37
|
+
Leverages Svelte's fine-grained reactivity system for optimal performance and smooth user interactions.
|
|
38
|
+
|
|
39
|
+
### 🎨 **Headless & Stylable**
|
|
40
|
+
|
|
41
|
+
Components are headless by default, giving you complete control over styling while providing sensible defaults.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 📦 Available Components
|
|
46
|
+
|
|
47
|
+
Our comprehensive collection of UI components with implementation status:
|
|
48
|
+
|
|
49
|
+
### Layout & Navigation
|
|
50
|
+
|
|
51
|
+
- ✅ **Accordion** - Collapsible content sections
|
|
52
|
+
- ✅ **Breadcrumb** - Navigation hierarchy
|
|
53
|
+
- ✅ **Sidebar** - Collapsible side navigation
|
|
54
|
+
- ✅ **Tabs** - Tabbed interfaces
|
|
55
|
+
- ✅ **Tree** - Hierarchical data structures
|
|
56
|
+
- ❌ **Navigation** - Main navigation component
|
|
57
|
+
- ❌ **Stepper** - Multi-step process indicator
|
|
58
|
+
- ❌ **Pagination** - Page navigation controls
|
|
59
|
+
|
|
60
|
+
### Forms & Input
|
|
61
|
+
|
|
62
|
+
- ✅ **Button** - Interactive buttons with variants
|
|
63
|
+
- ✅ **Checkbox** - Multi-select inputs
|
|
64
|
+
- ✅ **Combobox** - Searchable select inputs
|
|
65
|
+
- ✅ **Input** - Text input fields
|
|
66
|
+
- ✅ **Radio** - Single-select inputs
|
|
67
|
+
- ✅ **Slider** - Range input controls
|
|
68
|
+
- ✅ **Switch** - Toggle controls
|
|
69
|
+
- ✅ **Textarea** - Multi-line text inputs
|
|
70
|
+
- ✅ **Form** - Form validation and state management
|
|
71
|
+
- ❌ **Select** - Standard dropdown select
|
|
72
|
+
- ❌ **DatePicker** - Date selection component
|
|
73
|
+
- ❌ **TimePicker** - Time selection component
|
|
74
|
+
- ❌ **FileUpload** - File upload component
|
|
75
|
+
- ❌ **ColorPicker** - Color selection component
|
|
76
|
+
- ❌ **Rating** - Star rating component
|
|
77
|
+
|
|
78
|
+
### Data Display
|
|
79
|
+
|
|
80
|
+
- ✅ **Avatar** - User profile images
|
|
81
|
+
- ✅ **Badge** - Status indicators
|
|
82
|
+
- ✅ **DataGrid** - Advanced data tables
|
|
83
|
+
- ✅ **Divider** - Content separators
|
|
84
|
+
- ✅ **Icon** - Scalable icons
|
|
85
|
+
- ✅ **Label** - Form labels
|
|
86
|
+
- ✅ **Link** - Navigation links
|
|
87
|
+
- ✅ **List** - Structured lists
|
|
88
|
+
- ❌ **Table** - Simple data tables
|
|
89
|
+
- ❌ **Card** - Content containers
|
|
90
|
+
- ❌ **Chip** - Compact information display
|
|
91
|
+
- ❌ **Progress** - Progress indicators
|
|
92
|
+
- ❌ **Skeleton** - Loading placeholders
|
|
93
|
+
- ❌ **Timeline** - Event timeline display
|
|
94
|
+
- ❌ **Calendar** - Date display component
|
|
95
|
+
- ❌ **Stats** - Statistical data display
|
|
96
|
+
|
|
97
|
+
### Overlays & Feedback
|
|
98
|
+
|
|
99
|
+
- ✅ **Dialog** - Modal dialogs
|
|
100
|
+
- ✅ **Dropdown** - Contextual menus
|
|
101
|
+
- ✅ **Popover** - Contextual information
|
|
102
|
+
- ✅ **Slideover** - Side panel overlays
|
|
103
|
+
- ✅ **Toast** - Notification messages
|
|
104
|
+
- ✅ **Tooltip** - Contextual hints
|
|
105
|
+
- ✅ **ContextMenu** - Right-click menus
|
|
106
|
+
- ❌ **Alert** - Alert messages
|
|
107
|
+
- ❌ **Banner** - Full-width notifications
|
|
108
|
+
- ❌ **Modal** - Standard modal dialogs
|
|
109
|
+
- ❌ **Drawer** - Slide-out panels
|
|
110
|
+
- ❌ **Notification** - System notifications
|
|
111
|
+
- ❌ **Spotlight** - Feature highlighting
|
|
112
|
+
|
|
113
|
+
### Media & Graphics
|
|
114
|
+
|
|
115
|
+
- ❌ **Image** - Enhanced image component
|
|
116
|
+
- ❌ **Gallery** - Image gallery component
|
|
117
|
+
- ❌ **Carousel** - Content carousel
|
|
118
|
+
- ❌ **Video** - Video player component
|
|
119
|
+
- ❌ **Chart** - Data visualization charts
|
|
120
|
+
|
|
121
|
+
### Utilities & Layout
|
|
122
|
+
|
|
123
|
+
- ✅ **Portal** - Declare a portal anywhere in DOM
|
|
124
|
+
- ✅ **Teleport** - Render content in a specific portal
|
|
125
|
+
- ✅ **Root** - Application root container
|
|
126
|
+
- ✅ **Layer** - Layer management utility
|
|
127
|
+
- ✅ **Collapsible** - Generic collapsible wrapper
|
|
128
|
+
- ❌ **Container** - Layout container
|
|
129
|
+
- ❌ **Spacer** - Space management utility
|
|
130
|
+
- ❌ **Responsive** - Responsive utilities
|
|
131
|
+
- ❌ **ScrollArea** - Custom scrollbar component
|
|
132
|
+
- ❌ **VirtualList** - Virtual scrolling list
|
|
133
|
+
|
|
134
|
+
### Status: **35/65** components implemented (54%)
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 🏗️ Architecture
|
|
139
|
+
|
|
140
|
+
The library is organized into distinct layers for maximum maintainability and extensibility:
|
|
141
|
+
|
|
142
|
+
```
|
|
143
|
+
src/lib/
|
|
144
|
+
├── atoms/ # 30+ Core UI components
|
|
145
|
+
├── shared/ # Base classes (Bond, BondState) and utilities
|
|
146
|
+
├── helpers/ # Helper functions and components
|
|
147
|
+
├── actions/ # Svelte actions for behaviors
|
|
148
|
+
├── attachments/ # DOM attachment utilities
|
|
149
|
+
├── runes/ # Reactive utilities (Svelte 5 runes)
|
|
150
|
+
├── types/ # TypeScript type definitions
|
|
151
|
+
└── utils/ # General utility functions
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Bond Pattern
|
|
155
|
+
|
|
156
|
+
Each component follows a consistent Bond pattern:
|
|
157
|
+
|
|
158
|
+
- **Bond Class**: Manages component state and DOM interactions
|
|
159
|
+
- **BondState Class**: Holds reactive component state using Svelte 5 runes
|
|
160
|
+
- **Context Methods**: Static `CONTEXT_KEY`, `get()`, and `set()` methods for component communication
|
|
161
|
+
- **Component Files**: Svelte components that use the Bond for behavior
|
|
162
|
+
|
|
163
|
+
```typescript
|
|
164
|
+
class MyComponentBond extends Bond<MyComponentBondState> {
|
|
165
|
+
static CONTEXT_KEY = '@atoms/context/my-component';
|
|
166
|
+
|
|
167
|
+
static get(): MyComponentBond | undefined {
|
|
168
|
+
return getContext(MyComponentBond.CONTEXT_KEY);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
static set(bond: MyComponentBond): MyComponentBond {
|
|
172
|
+
return setContext(MyComponentBond.CONTEXT_KEY, bond);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## 🚀 Quick Start
|
|
180
|
+
|
|
181
|
+
### Installation
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
npm install @svelte-atoms/core
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### Basic Usage
|
|
188
|
+
|
|
189
|
+
```svelte
|
|
190
|
+
<script lang="ts">
|
|
191
|
+
import { Button, Dialog, Input } from '@svelte-atoms/core';
|
|
192
|
+
|
|
193
|
+
let dialogOpen = $state(false);
|
|
194
|
+
let inputValue = '';
|
|
195
|
+
</script>
|
|
196
|
+
|
|
197
|
+
<!-- Simple Button -->
|
|
198
|
+
<Button.Root onclick={() => (dialogOpen = true)}>Open Dialog</Button.Root>
|
|
199
|
+
|
|
200
|
+
<!-- Dialog with Input -->
|
|
201
|
+
<Dialog.Root bind:open={dialogOpen}>
|
|
202
|
+
<Dialog.Content>
|
|
203
|
+
<Dialog.Header>
|
|
204
|
+
<Dialog.Title>Enter your name</Dialog.Title>
|
|
205
|
+
</Dialog.Header>
|
|
206
|
+
<Dialog.Body>
|
|
207
|
+
<Input.Root bind:value={inputValue} placeholder="Your name..." />
|
|
208
|
+
</Dialog.Body>
|
|
209
|
+
<Dialog.Footer>
|
|
210
|
+
<Button.Root onclick={() => (dialogOpen = false)}>Cancel</Button.Root>
|
|
211
|
+
<Button.Root variant="primary" onclick={() => (dialogOpen = false)}>Confirm</Button.Root>
|
|
212
|
+
</Dialog.Footer>
|
|
213
|
+
</Dialog.Content>
|
|
214
|
+
</Dialog.Root>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Advanced Usage with Bonds
|
|
218
|
+
|
|
219
|
+
For more control, you can use the Bond system directly:
|
|
220
|
+
|
|
221
|
+
```svelte
|
|
222
|
+
<script lang="ts">
|
|
223
|
+
import { DialogBond, DialogBondState } from '@svelte-atoms/core/dialog';
|
|
224
|
+
|
|
225
|
+
// Create dialog state
|
|
226
|
+
const dialogState = new DialogBondState(() => ({
|
|
227
|
+
open: false,
|
|
228
|
+
disabled: false,
|
|
229
|
+
extend: {}
|
|
230
|
+
}));
|
|
231
|
+
|
|
232
|
+
// Create dialog bond
|
|
233
|
+
const dialogBond = new DialogBond(dialogState);
|
|
234
|
+
DialogBond.set(dialogBond); // Make available via context
|
|
235
|
+
|
|
236
|
+
// Reactive values
|
|
237
|
+
const isOpen = $derived(dialogBond.state.props.open);
|
|
238
|
+
</script>
|
|
239
|
+
|
|
240
|
+
<div {...dialogBond.root()}>
|
|
241
|
+
<button {...dialogBond.trigger()} onclick={() => dialogBond.state.toggle()}>
|
|
242
|
+
Toggle Dialog
|
|
243
|
+
</button>
|
|
244
|
+
|
|
245
|
+
{#if isOpen}
|
|
246
|
+
<div {...dialogBond.overlay()}>
|
|
247
|
+
<div {...dialogBond.content()}>
|
|
248
|
+
<h2 {...dialogBond.title()}>Dialog Title</h2>
|
|
249
|
+
<p>Dialog content goes here...</p>
|
|
250
|
+
<button onclick={() => dialogBond.state.close()}>Close</button>
|
|
251
|
+
</div>
|
|
252
|
+
</div>
|
|
253
|
+
{/if}
|
|
254
|
+
</div>
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## 📖 Documentation
|
|
260
|
+
|
|
261
|
+
### Component Examples
|
|
262
|
+
|
|
263
|
+
#### Dropdown with Multiple Selection
|
|
264
|
+
|
|
265
|
+
```svelte
|
|
266
|
+
<script lang="ts">
|
|
267
|
+
import { Dropdown } from '@svelte-atoms/core';
|
|
268
|
+
|
|
269
|
+
let selectedValues = ['option1'];
|
|
270
|
+
const options = [
|
|
271
|
+
{ value: 'option1', label: 'Option 1' },
|
|
272
|
+
{ value: 'option2', label: 'Option 2' },
|
|
273
|
+
{ value: 'option3', label: 'Option 3' }
|
|
274
|
+
];
|
|
275
|
+
</script>
|
|
276
|
+
|
|
277
|
+
<Dropdown.Root multiple bind:values={selectedValues}>
|
|
278
|
+
<Dropdown.Trigger>
|
|
279
|
+
Select options ({selectedValues.length} selected)
|
|
280
|
+
</Dropdown.Trigger>
|
|
281
|
+
|
|
282
|
+
<Dropdown.Content>
|
|
283
|
+
{#each options as option}
|
|
284
|
+
<Dropdown.Item value={option.value}>
|
|
285
|
+
{option.label}
|
|
286
|
+
</Dropdown.Item>
|
|
287
|
+
{/each}
|
|
288
|
+
</Dropdown.Content>
|
|
289
|
+
</Dropdown.Root>
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
#### Form with Validation
|
|
293
|
+
|
|
294
|
+
```svelte
|
|
295
|
+
<script lang="ts">
|
|
296
|
+
import { Form, Input, Button } from '@svelte-atoms/core';
|
|
297
|
+
import { z } from 'zod';
|
|
298
|
+
|
|
299
|
+
const schema = z.object({
|
|
300
|
+
email: z.string().email('Invalid email address'),
|
|
301
|
+
password: z.string().min(8, 'Password must be at least 8 characters')
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
let formData = { email: '', password: '' };
|
|
305
|
+
let errors = {};
|
|
306
|
+
</script>
|
|
307
|
+
|
|
308
|
+
<Form.Root {schema} bind:value={formData} bind:errors>
|
|
309
|
+
<Form.Field name="email">
|
|
310
|
+
<Form.Label>Email</Form.Label>
|
|
311
|
+
<Form.Control>
|
|
312
|
+
<Input.Root type="email" placeholder="Enter your email" bind:value={formData.email} />
|
|
313
|
+
</Form.Control>
|
|
314
|
+
{#if errors.email}
|
|
315
|
+
<Form.Error>{errors.email}</Form.Error>
|
|
316
|
+
{/if}
|
|
317
|
+
</Form.Field>
|
|
318
|
+
|
|
319
|
+
<Form.Field name="password">
|
|
320
|
+
<Form.Label>Password</Form.Label>
|
|
321
|
+
<Form.Control>
|
|
322
|
+
<Input.Root
|
|
323
|
+
type="password"
|
|
324
|
+
placeholder="Enter your password"
|
|
325
|
+
bind:value={formData.password}
|
|
326
|
+
/>
|
|
327
|
+
</Form.Control>
|
|
328
|
+
{#if errors.password}
|
|
329
|
+
<Form.Error>{errors.password}</Form.Error>
|
|
330
|
+
{/if}
|
|
331
|
+
</Form.Field>
|
|
332
|
+
|
|
333
|
+
<Button.Root type="submit">Submit</Button.Root>
|
|
334
|
+
</Form.Root>
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
#### Data Grid with Sorting and Selection
|
|
338
|
+
|
|
339
|
+
```svelte
|
|
340
|
+
<script lang="ts">
|
|
341
|
+
import { DataGrid, Checkbox } from '@svelte-atoms/core';
|
|
342
|
+
|
|
343
|
+
let data = [
|
|
344
|
+
{ id: 1, name: 'John Doe', email: 'john@example.com', role: 'Admin' },
|
|
345
|
+
{ id: 2, name: 'Jane Smith', email: 'jane@example.com', role: 'User' },
|
|
346
|
+
{ id: 3, name: 'Bob Johnson', email: 'bob@example.com', role: 'Editor' }
|
|
347
|
+
];
|
|
348
|
+
|
|
349
|
+
let selectedRows = [];
|
|
350
|
+
</script>
|
|
351
|
+
|
|
352
|
+
<DataGrid.Root {data} bind:selectedRows multiple>
|
|
353
|
+
<DataGrid.Header>
|
|
354
|
+
<DataGrid.Row>
|
|
355
|
+
<DataGrid.HeaderCell>
|
|
356
|
+
<Checkbox.Root />
|
|
357
|
+
</DataGrid.HeaderCell>
|
|
358
|
+
<DataGrid.HeaderCell sortable="name">Name</DataGrid.HeaderCell>
|
|
359
|
+
<DataGrid.HeaderCell sortable="email">Email</DataGrid.HeaderCell>
|
|
360
|
+
<DataGrid.HeaderCell>Role</DataGrid.HeaderCell>
|
|
361
|
+
</DataGrid.Row>
|
|
362
|
+
</DataGrid.Header>
|
|
363
|
+
|
|
364
|
+
<DataGrid.Body>
|
|
365
|
+
{#each data as row}
|
|
366
|
+
<DataGrid.Row value={row.id}>
|
|
367
|
+
<DataGrid.Cell>
|
|
368
|
+
<Checkbox.Root value={row.id} />
|
|
369
|
+
</DataGrid.Cell>
|
|
370
|
+
<DataGrid.Cell>{row.name}</DataGrid.Cell>
|
|
371
|
+
<DataGrid.Cell>{row.email}</DataGrid.Cell>
|
|
372
|
+
<DataGrid.Cell>{row.role}</DataGrid.Cell>
|
|
373
|
+
</DataGrid.Row>
|
|
374
|
+
{/each}
|
|
375
|
+
</DataGrid.Body>
|
|
376
|
+
</DataGrid.Root>
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
---
|
|
380
|
+
|
|
381
|
+
## 🎨 Styling
|
|
382
|
+
|
|
383
|
+
@svelte-atoms/core is completely headless, giving you full control over styling. Here are some approaches:
|
|
384
|
+
|
|
385
|
+
### CSS Classes
|
|
386
|
+
|
|
387
|
+
```css
|
|
388
|
+
/* Default button styles */
|
|
389
|
+
.btn {
|
|
390
|
+
@apply rounded-md px-4 py-2 font-medium transition-colors;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
.btn-primary {
|
|
394
|
+
@apply bg-blue-600 text-white hover:bg-blue-700;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
.btn-secondary {
|
|
398
|
+
@apply bg-gray-200 text-gray-900 hover:bg-gray-300;
|
|
399
|
+
}
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### CSS-in-JS with Style Props
|
|
403
|
+
|
|
404
|
+
```svelte
|
|
405
|
+
<Button.Root class="rounded-md bg-blue-600 px-4 py-2 text-white hover:bg-blue-700">
|
|
406
|
+
Styled Button
|
|
407
|
+
</Button.Root>
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
### Custom CSS Variables
|
|
411
|
+
|
|
412
|
+
```css
|
|
413
|
+
:root {
|
|
414
|
+
--atomic-primary: #3b82f6;
|
|
415
|
+
--atomic-secondary: #6b7280;
|
|
416
|
+
--atomic-success: #10b981;
|
|
417
|
+
--atomic-danger: #ef4444;
|
|
418
|
+
--atomic-warning: #f59e0b;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
.atomic-button {
|
|
422
|
+
background-color: var(--atomic-primary);
|
|
423
|
+
color: white;
|
|
424
|
+
}
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## 🧪 Development
|
|
430
|
+
|
|
431
|
+
### Prerequisites
|
|
432
|
+
|
|
433
|
+
- Node.js 18+
|
|
434
|
+
- Bun (recommended) or npm
|
|
435
|
+
|
|
436
|
+
### Setup
|
|
437
|
+
|
|
438
|
+
1. **Clone the repository:**
|
|
439
|
+
|
|
440
|
+
```bash
|
|
441
|
+
git clone https://github.com/ryu-man/svelte-atoms.git
|
|
442
|
+
cd svelte-atoms
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
2. **Install dependencies:**
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
bun install
|
|
449
|
+
# or
|
|
450
|
+
npm install
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
3. **Start development server:**
|
|
454
|
+
|
|
455
|
+
```bash
|
|
456
|
+
bun dev
|
|
457
|
+
# or
|
|
458
|
+
npm run dev
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
4. **Run Storybook:**
|
|
462
|
+
```bash
|
|
463
|
+
bun storybook
|
|
464
|
+
# or
|
|
465
|
+
npm run storybook
|
|
466
|
+
```
|
|
467
|
+
|
|
468
|
+
### Testing
|
|
469
|
+
|
|
470
|
+
```bash
|
|
471
|
+
# Run all tests
|
|
472
|
+
bun test
|
|
473
|
+
|
|
474
|
+
# Unit tests only
|
|
475
|
+
bun test:unit
|
|
476
|
+
|
|
477
|
+
# E2E tests only
|
|
478
|
+
bun test:e2e
|
|
479
|
+
|
|
480
|
+
# Run tests in watch mode
|
|
481
|
+
bun test:unit --watch
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
### Building
|
|
485
|
+
|
|
486
|
+
```bash
|
|
487
|
+
# Build library
|
|
488
|
+
bun run build
|
|
489
|
+
|
|
490
|
+
# Build Storybook
|
|
491
|
+
bun run build-storybook
|
|
492
|
+
```
|
|
493
|
+
|
|
494
|
+
---
|
|
495
|
+
|
|
496
|
+
## 🤝 Contributing
|
|
497
|
+
|
|
498
|
+
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
499
|
+
|
|
500
|
+
### Development Workflow
|
|
501
|
+
|
|
502
|
+
1. Fork the repository
|
|
503
|
+
2. Create a feature branch: `git checkout -b feature/amazing-feature`
|
|
504
|
+
3. Make your changes and add tests
|
|
505
|
+
4. Run the test suite: `bun test`
|
|
506
|
+
5. Commit your changes: `git commit -m 'Add amazing feature'`
|
|
507
|
+
6. Push to the branch: `git push origin feature/amazing-feature`
|
|
508
|
+
7. Open a Pull Request
|
|
509
|
+
|
|
510
|
+
### Creating New Components
|
|
511
|
+
|
|
512
|
+
When adding new components, follow these guidelines:
|
|
513
|
+
|
|
514
|
+
1. **Create the bond structure:**
|
|
515
|
+
|
|
516
|
+
```
|
|
517
|
+
src/lib/atoms/my-component/
|
|
518
|
+
├── bond.svelte.ts # Core bond logic (Bond + BondState classes)
|
|
519
|
+
├── index.ts # Public exports
|
|
520
|
+
├── components.ts # Component exports
|
|
521
|
+
├── my-component-root.svelte
|
|
522
|
+
├── my-component-content.svelte
|
|
523
|
+
└── README.md # Component documentation
|
|
524
|
+
```
|
|
525
|
+
|
|
526
|
+
2. **Implement accessibility features:**
|
|
527
|
+
- ARIA attributes
|
|
528
|
+
- Keyboard navigation
|
|
529
|
+
- Focus management
|
|
530
|
+
- Screen reader support
|
|
531
|
+
|
|
532
|
+
3. **Add comprehensive tests:**
|
|
533
|
+
- Unit tests for bond logic
|
|
534
|
+
- Component integration tests
|
|
535
|
+
- Accessibility tests
|
|
536
|
+
|
|
537
|
+
4. **Create Storybook stories:**
|
|
538
|
+
- Basic usage examples
|
|
539
|
+
- Advanced configurations
|
|
540
|
+
- Interactive demos
|
|
541
|
+
|
|
542
|
+
---
|
|
543
|
+
|
|
544
|
+
## 📚 Resources
|
|
545
|
+
|
|
546
|
+
- **[Documentation](https://svelte-atoms.dev)** - Comprehensive documentation
|
|
547
|
+
- **[Storybook](https://storybook.svelte-atoms.dev/)** - Interactive component documentation
|
|
548
|
+
- **[GitHub](https://github.com/ryu-man/svelte-atoms)** - Source code and issues
|
|
549
|
+
- **[@svelte-atoms/alchemist](../alchimist)** - Data visualization companion library
|
|
550
|
+
|
|
551
|
+
---
|
|
552
|
+
|
|
553
|
+
## 🗺️ Roadmap
|
|
554
|
+
|
|
555
|
+
### v1.0.0 (Current - Alpha)
|
|
556
|
+
|
|
557
|
+
- ✅ Bond architecture with Svelte 5 runes
|
|
558
|
+
- ✅ 35+ essential components
|
|
559
|
+
- ✅ TypeScript support
|
|
560
|
+
- ✅ Accessibility features
|
|
561
|
+
- ✅ Storybook documentation
|
|
562
|
+
- ✅ Standardized context pattern
|
|
563
|
+
|
|
564
|
+
---
|
|
565
|
+
|
|
566
|
+
## 📄 License
|
|
567
|
+
|
|
568
|
+
MIT License - see the [LICENSE](LICENSE) file for details.
|
|
569
|
+
|
|
570
|
+
---
|
|
571
|
+
|
|
572
|
+
## 🙏 Acknowledgements
|
|
573
|
+
|
|
574
|
+
- [Svelte](https://svelte.dev/) - The amazing framework that powers this library
|
|
575
|
+
- [Floating UI](https://floating-ui.com/) - For advanced positioning logic
|
|
576
|
+
- [Tailwind CSS](https://tailwindcss.com/) - For styling
|
|
577
|
+
- [Storybook](https://storybook.js.org/) - For component documentation and testing
|
|
578
|
+
- [Vitest](https://vitest.dev/) - For fast and reliable testing
|
|
579
|
+
- [Playwright](https://playwright.dev/) - For end-to-end testing
|
|
580
|
+
|
|
581
|
+
---
|
|
582
|
+
|
|
583
|
+
<div align="center">
|
|
584
|
+
<p>Built with ❤️ by the Svelte Atoms team</p>
|
|
585
|
+
<p>
|
|
586
|
+
<a href="https://github.com/ryu-man/svelte-atoms">GitHub</a> •
|
|
587
|
+
<a href="https://svelte-atoms.dev">Documentation</a> •
|
|
588
|
+
<a href="https://storybook.svelte-atoms.dev">Storybook</a>
|
|
589
|
+
</p>
|
|
590
|
+
</div>
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function animate(node: HTMLElement | SVGElement, fn: () => gsap.TweenVars): void;
|
|
2
|
+
export type GsapFromToParams = {
|
|
3
|
+
from: gsap.TweenVars;
|
|
4
|
+
to: gsap.TweenVars;
|
|
5
|
+
};
|
|
6
|
+
export declare function gsapFromTo(node: HTMLElement | SVGElement, fn: () => GsapFromToParams): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { gsap } from 'gsap';
|
|
2
|
+
export function animate(node, fn) {
|
|
3
|
+
gsap.set(node, fn());
|
|
4
|
+
$effect(() => {
|
|
5
|
+
gsap.to(node, fn());
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
export function gsapFromTo(node, fn) {
|
|
9
|
+
gsap.set(node, { ...fn().from });
|
|
10
|
+
$effect(() => {
|
|
11
|
+
const { from, to } = fn();
|
|
12
|
+
gsap.fromTo(node, { ...from }, { ...to });
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function clickout(node, onclick) {
|
|
2
|
+
const handler = (ev) => {
|
|
3
|
+
const target = ev.target;
|
|
4
|
+
if (!node.contains(target)) {
|
|
5
|
+
onclick?.(ev);
|
|
6
|
+
}
|
|
7
|
+
};
|
|
8
|
+
document.addEventListener('click', handler);
|
|
9
|
+
return () => {
|
|
10
|
+
document.removeEventListener('click', handler);
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function clickoutAction(node, onclick) {
|
|
14
|
+
$effect(() => clickout(node, onclick));
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type AutoPlacementOptions, type ComputePositionReturn } from '@floating-ui/dom';
|
|
2
|
+
type PopoverElement = HTMLElement;
|
|
3
|
+
type OnChangeParams = ComputePositionReturn & {
|
|
4
|
+
dx: number;
|
|
5
|
+
dy: number;
|
|
6
|
+
};
|
|
7
|
+
type OnMountCallback = (p: OnChangeParams) => void;
|
|
8
|
+
export type PopoverParams = AutoPlacementOptions & {
|
|
9
|
+
open?: boolean;
|
|
10
|
+
target?: HTMLElement;
|
|
11
|
+
reference?: HTMLElement;
|
|
12
|
+
offset?: number;
|
|
13
|
+
animate?: (node: PopoverElement, params: ComputePositionReturn) => void;
|
|
14
|
+
onMount?: () => void | (() => void);
|
|
15
|
+
onDestroy?: () => void;
|
|
16
|
+
onChange?: OnMountCallback;
|
|
17
|
+
};
|
|
18
|
+
export declare function popover(node: HTMLElement, fn: () => PopoverParams): void;
|
|
19
|
+
export {};
|