@svelte-atoms/core 1.0.0-alpha.26 → 1.0.0-alpha.28
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 +856 -645
- package/dist/components/accordion/accordion-root.svelte +2 -20
- package/dist/components/accordion/accordion-root.svelte.d.ts +2 -15
- package/dist/components/accordion/index.d.ts +2 -1
- package/dist/components/accordion/index.js +2 -1
- package/dist/components/accordion/item/accordion-item-body.svelte +2 -12
- package/dist/components/accordion/item/accordion-item-body.svelte.d.ts +2 -8
- package/dist/components/accordion/item/accordion-item-header.svelte +3 -13
- package/dist/components/accordion/item/accordion-item-header.svelte.d.ts +3 -20
- package/dist/components/accordion/item/accordion-item-indicator.svelte +3 -12
- package/dist/components/accordion/item/accordion-item-indicator.svelte.d.ts +2 -8
- package/dist/components/accordion/item/accordion-item-root.svelte +3 -17
- package/dist/components/accordion/item/accordion-item-root.svelte.d.ts +2 -12
- package/dist/components/accordion/item/index.d.ts +1 -0
- package/dist/components/accordion/item/types.d.ts +52 -0
- package/dist/components/accordion/item/types.js +1 -0
- package/dist/components/accordion/types.d.ts +21 -0
- package/dist/components/accordion/types.js +1 -0
- package/dist/components/alert/alert-actions.svelte +43 -52
- package/dist/components/alert/alert-actions.svelte.d.ts +3 -30
- package/dist/components/alert/alert-close-button.svelte +70 -79
- package/dist/components/alert/alert-close-button.svelte.d.ts +8 -35
- package/dist/components/alert/alert-content.svelte +43 -52
- package/dist/components/alert/alert-content.svelte.d.ts +3 -30
- package/dist/components/alert/alert-description.svelte +42 -51
- package/dist/components/alert/alert-description.svelte.d.ts +7 -10
- package/dist/components/alert/alert-icon.svelte +47 -56
- package/dist/components/alert/alert-icon.svelte.d.ts +2 -8
- package/dist/components/alert/alert-root.svelte +103 -118
- package/dist/components/alert/alert-root.svelte.d.ts +2 -13
- package/dist/components/alert/alert-title.svelte +42 -51
- package/dist/components/alert/alert-title.svelte.d.ts +2 -8
- package/dist/components/alert/alert.stories.svelte +401 -40
- package/dist/components/alert/alert.stories.svelte.d.ts +2 -5
- package/dist/components/alert/index.d.ts +1 -0
- package/dist/components/alert/index.js +1 -0
- package/dist/components/alert/types.d.ts +85 -0
- package/dist/components/alert/types.js +1 -0
- package/dist/components/atom/html-atom.svelte +205 -201
- package/dist/components/atom/html-atom.svelte.d.ts +2 -22
- package/dist/components/atom/snippet-renderer.svelte +5 -0
- package/dist/components/atom/snippet-renderer.svelte.d.ts +5 -0
- package/dist/components/atom/types.d.ts +7 -2
- package/dist/components/avatar/avatar.stories.svelte.d.ts +1 -1
- package/dist/components/avatar/types.d.ts +7 -2
- package/dist/components/badge/badge.stories.svelte.d.ts +1 -1
- package/dist/components/badge/types.d.ts +7 -2
- package/dist/components/breadcrumb/breadcrumb.stories.svelte.d.ts +1 -1
- package/dist/components/button/button.stories.svelte +60 -57
- package/dist/components/button/index.d.ts +1 -0
- package/dist/components/button/index.js +1 -0
- package/dist/components/button/types.d.ts +7 -2
- package/dist/components/calendar/atoms.d.ts +5 -0
- package/dist/components/calendar/atoms.js +5 -0
- package/dist/components/calendar/bond.svelte.d.ts +72 -0
- package/dist/components/calendar/bond.svelte.js +132 -0
- package/dist/components/calendar/calendar-body.svelte +107 -0
- package/dist/components/calendar/calendar-body.svelte.d.ts +8 -0
- package/dist/components/calendar/calendar-day.svelte +97 -0
- package/dist/components/calendar/calendar-day.svelte.d.ts +4 -0
- package/dist/components/calendar/calendar-header.svelte +33 -0
- package/dist/components/calendar/calendar-header.svelte.d.ts +7 -0
- package/dist/components/calendar/calendar-root.svelte +208 -0
- package/dist/components/calendar/calendar-root.svelte.d.ts +8 -0
- package/dist/components/calendar/calendar-week-day.svelte +34 -0
- package/dist/components/calendar/calendar-week-day.svelte.d.ts +9 -0
- package/dist/components/calendar/calendar.css +26 -0
- package/dist/components/calendar/calendar.stories.svelte +36 -0
- package/dist/components/calendar/calendar.stories.svelte.d.ts +6 -0
- package/dist/components/calendar/index.d.ts +4 -0
- package/dist/components/calendar/index.js +4 -0
- package/dist/components/calendar/runes.svelte.d.ts +3 -0
- package/dist/components/calendar/runes.svelte.js +25 -0
- package/dist/components/calendar/types.d.ts +62 -0
- package/dist/components/calendar/types.js +1 -0
- package/dist/components/card/card-body.svelte +2 -8
- package/dist/components/card/card-body.svelte.d.ts +7 -4
- package/dist/components/card/card-description.svelte +3 -10
- package/dist/components/card/card-description.svelte.d.ts +7 -7
- package/dist/components/card/card-footer.svelte +2 -9
- package/dist/components/card/card-footer.svelte.d.ts +7 -4
- package/dist/components/card/card-header.svelte +2 -9
- package/dist/components/card/card-header.svelte.d.ts +7 -4
- package/dist/components/card/card-media.svelte +2 -9
- package/dist/components/card/card-media.svelte.d.ts +7 -4
- package/dist/components/card/card-root.svelte +2 -2
- package/dist/components/card/card-root.svelte.d.ts +1 -1
- package/dist/components/card/card-subtitle.svelte +3 -10
- package/dist/components/card/card-subtitle.svelte.d.ts +12 -9
- package/dist/components/card/card-title.svelte +3 -10
- package/dist/components/card/card-title.svelte.d.ts +12 -9
- package/dist/components/card/index.d.ts +1 -0
- package/dist/components/card/index.js +1 -0
- package/dist/components/card/types.d.ts +57 -2
- package/dist/components/checkbox/types.d.ts +7 -2
- package/dist/components/collapsible/collapsible-body.svelte +2 -15
- package/dist/components/collapsible/collapsible-body.svelte.d.ts +2 -9
- package/dist/components/collapsible/collapsible-header.svelte +2 -15
- package/dist/components/collapsible/collapsible-header.svelte.d.ts +2 -9
- package/dist/components/collapsible/collapsible-indicator.svelte +4 -19
- package/dist/components/collapsible/collapsible-indicator.svelte.d.ts +3 -10
- package/dist/components/collapsible/collapsible-root.svelte +2 -21
- package/dist/components/collapsible/collapsible-root.svelte.d.ts +2 -14
- package/dist/components/collapsible/index.d.ts +1 -0
- package/dist/components/collapsible/index.js +1 -0
- package/dist/components/collapsible/types.d.ts +54 -0
- package/dist/components/collapsible/types.js +1 -0
- package/dist/components/combobox/combobox-root.svelte +2 -5
- package/dist/components/combobox/combobox-root.svelte.d.ts +5 -18
- package/dist/components/combobox/index.d.ts +1 -0
- package/dist/components/combobox/index.js +1 -0
- package/dist/components/combobox/types.d.ts +25 -0
- package/dist/components/combobox/types.js +1 -0
- package/dist/components/container/container.stories.svelte.d.ts +1 -1
- package/dist/components/container/types.d.ts +7 -2
- package/dist/components/contextmenu/contextmenu-trigger.svelte.d.ts +1 -1
- package/dist/components/contextmenu/types.d.ts +8 -0
- package/dist/components/contextmenu/types.js +1 -0
- package/dist/components/datagrid/bond.svelte.d.ts +2 -2
- package/dist/components/datagrid/datagrid-body.svelte +6 -13
- package/dist/components/datagrid/datagrid-body.svelte.d.ts +17 -20
- package/dist/components/datagrid/datagrid-checkbox.svelte +3 -10
- package/dist/components/datagrid/datagrid-checkbox.svelte.d.ts +4 -6
- package/dist/components/datagrid/datagrid-footer.svelte +1 -1
- package/dist/components/datagrid/datagrid-footer.svelte.d.ts +1 -1
- package/dist/components/datagrid/datagrid-header.svelte +2 -2
- package/dist/components/datagrid/datagrid-header.svelte.d.ts +1 -1
- package/dist/components/datagrid/datagrid-root.svelte +2 -2
- package/dist/components/datagrid/datagrid-root.svelte.d.ts +1 -1
- package/dist/components/datagrid/td/datagrid-td.svelte +3 -17
- package/dist/components/datagrid/td/datagrid-td.svelte.d.ts +7 -16
- package/dist/components/datagrid/th/datagrid-th.svelte +3 -24
- package/dist/components/datagrid/th/datagrid-th.svelte.d.ts +2 -20
- package/dist/components/datagrid/tr/bond.svelte.d.ts +3 -1
- package/dist/components/datagrid/tr/bond.svelte.js +4 -2
- package/dist/components/datagrid/tr/datagrid-tr.svelte +7 -22
- package/dist/components/datagrid/tr/datagrid-tr.svelte.d.ts +2 -18
- package/dist/components/datagrid/types.d.ts +85 -37
- package/dist/components/date-picker/atoms.d.ts +7 -0
- package/dist/components/date-picker/atoms.js +7 -0
- package/dist/components/date-picker/bond.svelte.d.ts +67 -0
- package/dist/components/date-picker/bond.svelte.js +174 -0
- package/dist/components/date-picker/date-picker-calendar.svelte +42 -0
- package/dist/components/date-picker/date-picker-calendar.svelte.d.ts +7 -0
- package/dist/components/date-picker/date-picker-header.svelte +105 -0
- package/dist/components/date-picker/date-picker-header.svelte.d.ts +7 -0
- package/dist/components/date-picker/date-picker-months.svelte +150 -0
- package/dist/components/date-picker/date-picker-months.svelte.d.ts +7 -0
- package/dist/components/date-picker/date-picker-root.svelte +94 -0
- package/dist/components/date-picker/date-picker-root.svelte.d.ts +17 -0
- package/dist/components/date-picker/date-picker-years.svelte +214 -0
- package/dist/components/date-picker/date-picker-years.svelte.d.ts +7 -0
- package/dist/components/date-picker/date-picker.stories.svelte +51 -0
- package/dist/components/date-picker/date-picker.stories.svelte.d.ts +3 -0
- package/dist/components/date-picker/index.d.ts +3 -0
- package/dist/components/date-picker/index.js +3 -0
- package/dist/components/date-picker/types.d.ts +1 -0
- package/dist/components/date-picker/types.js +1 -0
- package/dist/components/dialog/dialog-body.svelte +2 -8
- package/dist/components/dialog/dialog-body.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-close-button.svelte +7 -10
- package/dist/components/dialog/dialog-close-button.svelte.d.ts +7 -7
- package/dist/components/dialog/dialog-content.svelte +2 -8
- package/dist/components/dialog/dialog-content.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-description.svelte +2 -8
- package/dist/components/dialog/dialog-description.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-footer.svelte +2 -8
- package/dist/components/dialog/dialog-footer.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-header.svelte +2 -8
- package/dist/components/dialog/dialog-header.svelte.d.ts +2 -2
- package/dist/components/dialog/dialog-root.svelte +110 -123
- package/dist/components/dialog/dialog-root.svelte.d.ts +2 -12
- package/dist/components/dialog/dialog-title.svelte +3 -9
- package/dist/components/dialog/dialog-title.svelte.d.ts +7 -7
- package/dist/components/dialog/index.d.ts +1 -0
- package/dist/components/dialog/index.js +1 -0
- package/dist/components/dialog/types.d.ts +67 -0
- package/dist/components/dialog/types.js +1 -0
- package/dist/components/divider/types.d.ts +10 -0
- package/dist/components/divider/types.js +1 -0
- package/dist/components/drawer/drawer-backdrop.svelte +2 -11
- package/dist/components/drawer/drawer-backdrop.svelte.d.ts +3 -26
- package/dist/components/drawer/drawer-body.svelte +2 -16
- package/dist/components/drawer/drawer-body.svelte.d.ts +3 -16
- package/dist/components/drawer/drawer-content.svelte +2 -15
- package/dist/components/drawer/drawer-content.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-description.svelte +2 -15
- package/dist/components/drawer/drawer-description.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-footer.svelte +2 -15
- package/dist/components/drawer/drawer-footer.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-header.svelte +3 -16
- package/dist/components/drawer/drawer-header.svelte.d.ts +3 -14
- package/dist/components/drawer/drawer-root.svelte +93 -118
- package/dist/components/drawer/drawer-root.svelte.d.ts +3 -34
- package/dist/components/drawer/drawer-title.svelte +2 -15
- package/dist/components/drawer/drawer-title.svelte.d.ts +3 -14
- package/dist/components/drawer/index.d.ts +1 -0
- package/dist/components/drawer/index.js +1 -0
- package/dist/components/drawer/types.d.ts +86 -0
- package/dist/components/drawer/types.js +1 -0
- package/dist/components/dropdown/dropdown-query.svelte +2 -1
- package/dist/components/dropdown/dropdown-query.svelte.d.ts +11 -10
- package/dist/components/dropdown/dropdown-root.svelte +1 -1
- package/dist/components/dropdown/dropdown-trigger.svelte +2 -13
- package/dist/components/dropdown/dropdown-trigger.svelte.d.ts +1 -8
- package/dist/components/dropdown/dropdown-value.svelte +1 -1
- package/dist/components/dropdown/index.d.ts +1 -0
- package/dist/components/dropdown/index.js +1 -0
- package/dist/components/dropdown/types.d.ts +37 -0
- package/dist/components/dropdown/types.js +1 -0
- package/dist/components/element/html-element.svelte +85 -85
- package/dist/components/element/html-element.svelte.d.ts +2 -14
- package/dist/components/element/svg-element.svelte.d.ts +2 -14
- package/dist/components/element/types.d.ts +14 -7
- package/dist/components/form/bond.svelte.d.ts +1 -1
- package/dist/components/form/field/field-control.svelte +3 -20
- package/dist/components/form/field/field-control.svelte.d.ts +5 -19
- package/dist/components/form/field/field-label.svelte +1 -8
- package/dist/components/form/field/field-label.svelte.d.ts +1 -2
- package/dist/components/form/field/field-root.svelte +5 -34
- package/dist/components/form/field/field-root.svelte.d.ts +5 -20
- package/dist/components/form/index.d.ts +1 -0
- package/dist/components/form/index.js +1 -0
- package/dist/components/form/types.d.ts +76 -0
- package/dist/components/form/types.js +1 -0
- package/dist/components/icon/icon.svelte +3 -14
- package/dist/components/icon/icon.svelte.d.ts +4 -29
- package/dist/components/icon/types.d.ts +11 -7
- package/dist/components/image/image.stories.svelte.d.ts +1 -1
- package/dist/components/index.d.ts +3 -0
- package/dist/components/index.js +3 -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 +0 -4
- package/dist/components/input/input-control.svelte.d.ts +2 -3
- package/dist/components/input/input-icon.svelte.d.ts +1 -1
- package/dist/components/input/input-placeholder.svelte.d.ts +2 -19
- package/dist/components/input/types.d.ts +18 -7
- package/dist/components/label/index.d.ts +1 -0
- package/dist/components/label/index.js +1 -0
- package/dist/components/label/label.svelte +2 -18
- package/dist/components/label/label.svelte.d.ts +3 -27
- package/dist/components/label/types.d.ts +11 -0
- package/dist/components/label/types.js +1 -0
- package/dist/components/layer/layer-inner.svelte.d.ts +2 -19
- package/dist/components/layer/layer-root.svelte.d.ts +2 -19
- package/dist/components/layer/types.d.ts +11 -0
- package/dist/components/layer/types.js +1 -0
- package/dist/components/link/types.d.ts +8 -0
- package/dist/components/link/types.js +1 -0
- package/dist/components/list/types.d.ts +8 -0
- package/dist/components/list/types.js +1 -0
- package/dist/components/menu/index.d.ts +1 -0
- package/dist/components/menu/index.js +1 -0
- package/dist/components/menu/types.d.ts +15 -0
- package/dist/components/menu/types.js +1 -0
- package/dist/components/popover/index.d.ts +1 -0
- package/dist/components/popover/index.js +1 -0
- package/dist/components/popover/popover-arrow.svelte +111 -111
- package/dist/components/popover/popover-arrow.svelte.d.ts +2 -18
- package/dist/components/popover/popover-content.svelte +47 -8
- package/dist/components/popover/popover-root.svelte +16 -17
- package/dist/components/popover/popover-trigger.svelte +47 -47
- package/dist/components/popover/popover.stories.svelte +52 -67
- package/dist/components/popover/types.d.ts +32 -10
- package/dist/components/portal/active-portal.svelte +22 -22
- package/dist/components/portal/index.d.ts +1 -0
- package/dist/components/portal/index.js +1 -0
- package/dist/components/portal/portal-inner.svelte.d.ts +2 -19
- package/dist/components/portal/portal-root.svelte +2 -7
- package/dist/components/portal/portal-root.svelte.d.ts +2 -22
- package/dist/components/portal/teleport.svelte +50 -55
- package/dist/components/portal/teleport.svelte.d.ts +3 -22
- package/dist/components/portal/types.d.ts +39 -0
- package/dist/components/portal/types.js +1 -0
- package/dist/components/qr-code/index.d.ts +1 -0
- package/dist/components/qr-code/index.js +1 -0
- package/dist/components/qr-code/qr-code.stories.svelte +24 -0
- package/dist/components/qr-code/qr-code.stories.svelte.d.ts +26 -0
- package/dist/components/qr-code/qr-code.svelte +25 -0
- package/dist/components/qr-code/qr-code.svelte.d.ts +6 -0
- package/dist/components/radio/radio.svelte +1 -1
- package/dist/components/radio/radio.svelte.d.ts +14 -36
- package/dist/components/radio/types.svelte.d.ts +1 -1
- package/dist/components/root/root.svelte +121 -121
- package/dist/components/root/types.d.ts +8 -0
- package/dist/components/root/types.js +1 -0
- package/dist/components/scrollable/index.d.ts +1 -0
- package/dist/components/scrollable/index.js +1 -0
- package/dist/components/scrollable/scrollable-container.svelte +3 -10
- package/dist/components/scrollable/scrollable-container.svelte.d.ts +2 -6
- package/dist/components/scrollable/scrollable-content.svelte +2 -12
- package/dist/components/scrollable/scrollable-content.svelte.d.ts +1 -6
- package/dist/components/scrollable/scrollable-root.svelte +3 -23
- package/dist/components/scrollable/scrollable-root.svelte.d.ts +3 -19
- package/dist/components/scrollable/scrollable-thumb.svelte +2 -13
- package/dist/components/scrollable/scrollable-thumb.svelte.d.ts +1 -7
- package/dist/components/scrollable/scrollable-track.svelte +2 -13
- package/dist/components/scrollable/scrollable-track.svelte.d.ts +1 -7
- package/dist/components/scrollable/scrollable.stories.svelte.d.ts +1 -1
- package/dist/components/scrollable/types.d.ts +62 -0
- package/dist/components/scrollable/types.js +1 -0
- package/dist/components/sidebar/index.d.ts +1 -0
- package/dist/components/sidebar/index.js +1 -0
- package/dist/components/sidebar/types.d.ts +16 -5
- package/dist/components/stack/stack-root.svelte.d.ts +2 -19
- package/dist/components/stack/types.d.ts +12 -0
- package/dist/components/stack/types.js +1 -0
- package/dist/components/tabs/index.d.ts +1 -0
- package/dist/components/tabs/index.js +1 -0
- package/dist/components/tabs/tab/tab-body.svelte +2 -11
- package/dist/components/tabs/tab/tab-body.svelte.d.ts +2 -8
- package/dist/components/tabs/tab/tab-description.svelte +2 -11
- package/dist/components/tabs/tab/tab-description.svelte.d.ts +2 -8
- package/dist/components/tabs/tab/tab-header.svelte +2 -12
- package/dist/components/tabs/tab/tab-header.svelte.d.ts +2 -11
- package/dist/components/tabs/tab/tab-root.svelte +1 -1
- package/dist/components/tabs/types.d.ts +55 -0
- package/dist/components/tabs/types.js +1 -0
- package/dist/components/textarea/index.d.ts +1 -0
- package/dist/components/textarea/index.js +1 -0
- package/dist/components/textarea/types.d.ts +28 -0
- package/dist/components/textarea/types.js +1 -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 +3 -9
- package/dist/components/toast/toast-description.svelte.d.ts +8 -34
- package/dist/components/toast/toast-root.svelte +3 -16
- package/dist/components/toast/toast-root.svelte.d.ts +4 -43
- package/dist/components/toast/toast-title.svelte +2 -10
- package/dist/components/toast/toast-title.svelte.d.ts +2 -34
- package/dist/components/toast/types.d.ts +40 -0
- package/dist/components/toast/types.js +1 -0
- package/dist/components/tooltip/types.d.ts +13 -0
- package/dist/components/tooltip/types.js +1 -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 +2 -13
- package/dist/components/tree/tree-body.svelte.d.ts +2 -10
- package/dist/components/tree/tree-header.svelte +2 -14
- package/dist/components/tree/tree-header.svelte.d.ts +3 -29
- package/dist/components/tree/tree-indicator.svelte +4 -14
- package/dist/components/tree/tree-indicator.svelte.d.ts +3 -9
- package/dist/components/tree/tree-root.svelte +3 -18
- package/dist/components/tree/tree-root.svelte.d.ts +2 -12
- package/dist/components/tree/types.d.ts +59 -0
- package/dist/components/tree/types.js +1 -0
- package/dist/components/virtual/types.d.ts +23 -0
- package/dist/components/virtual/types.js +1 -0
- package/dist/components/virtual/virtual-root.svelte +2 -21
- package/dist/components/virtual/virtual-root.svelte.d.ts +1 -18
- package/dist/context/preset.svelte.d.ts +1 -1
- package/dist/icons/icon-arrow-down.svelte.d.ts +1 -1
- package/dist/icons/icon-checkmark.svelte.d.ts +1 -1
- package/dist/icons/icon-close.svelte.d.ts +1 -1
- package/dist/icons/icon-more-vert.svelte.d.ts +1 -1
- package/dist/runes/container.svelte.d.ts +2 -2
- package/dist/shared/bond.svelte.d.ts +1 -1
- package/dist/utils/state.d.ts +1 -1
- package/dist/utils/state.js +2 -1
- package/llm/variants.md +1261 -712
- package/package.json +464 -437
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { HtmlAtom } from '../atom';
|
|
3
|
+
import { PopoverBond } from '../popover';
|
|
4
|
+
import { Icon } from '../icon';
|
|
5
|
+
import { DatePickerBond } from './bond.svelte';
|
|
6
|
+
import { getYear, setYear } from 'date-fns';
|
|
7
|
+
import { cn } from '../../utils';
|
|
8
|
+
import { animate } from 'motion';
|
|
9
|
+
|
|
10
|
+
const popover = PopoverBond.get();
|
|
11
|
+
const datePicker = DatePickerBond.get();
|
|
12
|
+
const calendar = datePicker.calendar;
|
|
13
|
+
|
|
14
|
+
const pivote = $derived(datePicker?.state.props.pivote ?? new Date());
|
|
15
|
+
|
|
16
|
+
let yearPivote = $state(pivote.getFullYear());
|
|
17
|
+
|
|
18
|
+
const currentYear = $derived(getYear(pivote));
|
|
19
|
+
|
|
20
|
+
// Generate array of years to display (12 years: current ±5)
|
|
21
|
+
const yearsGrid = $derived.by(() => {
|
|
22
|
+
const years = [];
|
|
23
|
+
const startYear = yearPivote - 5;
|
|
24
|
+
for (let i = 0; i < 12; i++) {
|
|
25
|
+
years.push(startYear + i);
|
|
26
|
+
}
|
|
27
|
+
return years;
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
let { class: klass = '', preset = 'datepicker.years', children, ...restProps } = $props();
|
|
31
|
+
|
|
32
|
+
let scrollTimeout: NodeJS.Timeout | undefined = undefined;
|
|
33
|
+
|
|
34
|
+
function enter(node: HTMLElement) {
|
|
35
|
+
animate(
|
|
36
|
+
node,
|
|
37
|
+
{
|
|
38
|
+
scale: [0.8, 1]
|
|
39
|
+
},
|
|
40
|
+
{ duration: 100 / 1000, ease: 'circOut' }
|
|
41
|
+
);
|
|
42
|
+
return {
|
|
43
|
+
duration: 100
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
function exit(node: HTMLElement) {
|
|
48
|
+
animate(
|
|
49
|
+
node,
|
|
50
|
+
{
|
|
51
|
+
scale: 0.8
|
|
52
|
+
},
|
|
53
|
+
{ duration: 100 / 1000, ease: 'circOut' }
|
|
54
|
+
);
|
|
55
|
+
return {
|
|
56
|
+
duration: 100
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
function handlePreviousYear() {
|
|
61
|
+
yearPivote = yearPivote - 1;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function handleNextYear() {
|
|
65
|
+
yearPivote = yearPivote + 1;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
function handleYearSelect(year: number) {
|
|
69
|
+
if (!datePicker?.state.props.pivote) return;
|
|
70
|
+
const current = datePicker.state.props.pivote;
|
|
71
|
+
datePicker.state.props.pivote = setYear(current, year);
|
|
72
|
+
|
|
73
|
+
datePicker.state.closeYearsPicker();
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function handleWheel(event: WheelEvent) {
|
|
77
|
+
event.preventDefault();
|
|
78
|
+
|
|
79
|
+
// Clear any existing timeout
|
|
80
|
+
if (scrollTimeout) {
|
|
81
|
+
clearTimeout(scrollTimeout);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// Debounce the scroll event to avoid rapid year changes
|
|
85
|
+
scrollTimeout = setTimeout(() => {
|
|
86
|
+
const direction = event.deltaY > 0 ? 1 : -1; // Positive = scroll down = next year
|
|
87
|
+
yearPivote = yearPivote + direction;
|
|
88
|
+
}, 50);
|
|
89
|
+
}
|
|
90
|
+
</script>
|
|
91
|
+
|
|
92
|
+
{#if datePicker.state.isYearsPickerOpen}
|
|
93
|
+
<HtmlAtom
|
|
94
|
+
class={['absolute inset-0 z-2 flex flex-col gap-2 bg-inherit opacity-0', '$preset', klass]}
|
|
95
|
+
enter={(node) => {
|
|
96
|
+
animate(
|
|
97
|
+
node,
|
|
98
|
+
{
|
|
99
|
+
opacity: [0, 1]
|
|
100
|
+
},
|
|
101
|
+
{ duration: 100 / 1000, ease: 'anticipate' }
|
|
102
|
+
);
|
|
103
|
+
return {
|
|
104
|
+
duration: 100
|
|
105
|
+
};
|
|
106
|
+
}}
|
|
107
|
+
exit={(node) => {
|
|
108
|
+
animate(
|
|
109
|
+
node,
|
|
110
|
+
{
|
|
111
|
+
opacity: 0
|
|
112
|
+
},
|
|
113
|
+
{ duration: 100 / 1000, ease: 'anticipate' }
|
|
114
|
+
);
|
|
115
|
+
return {
|
|
116
|
+
duration: 100
|
|
117
|
+
};
|
|
118
|
+
}}
|
|
119
|
+
onwheel={handleWheel}
|
|
120
|
+
{preset}
|
|
121
|
+
{...restProps}
|
|
122
|
+
>
|
|
123
|
+
{#if children}
|
|
124
|
+
{@render children?.({
|
|
125
|
+
calendar,
|
|
126
|
+
popover,
|
|
127
|
+
currentYear,
|
|
128
|
+
yearsGrid,
|
|
129
|
+
onPrevious: handlePreviousYear,
|
|
130
|
+
onNext: handleNextYear,
|
|
131
|
+
onYearSelect: handleYearSelect
|
|
132
|
+
})}
|
|
133
|
+
{:else}
|
|
134
|
+
<HtmlAtom class="flex flex-1 flex-col" {enter} {exit}>
|
|
135
|
+
<!-- Navigation Bar -->
|
|
136
|
+
<nav
|
|
137
|
+
class="border-border text-foreground flex h-12 items-center justify-between gap-2 border-b px-2 py-2"
|
|
138
|
+
>
|
|
139
|
+
<!-- Previous Year Button -->
|
|
140
|
+
<button
|
|
141
|
+
type="button"
|
|
142
|
+
class="hover:bg-foreground/10 active:bg-foreground/20 flex size-8 cursor-pointer items-center justify-center rounded-md transition-colors"
|
|
143
|
+
onclick={handlePreviousYear}
|
|
144
|
+
aria-label="Previous year"
|
|
145
|
+
>
|
|
146
|
+
<Icon class="size-5">
|
|
147
|
+
<svg
|
|
148
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
149
|
+
class="size-full"
|
|
150
|
+
viewBox="0 0 24 24"
|
|
151
|
+
fill="none"
|
|
152
|
+
stroke="currentColor"
|
|
153
|
+
stroke-width="2"
|
|
154
|
+
stroke-linecap="round"
|
|
155
|
+
stroke-linejoin="round"
|
|
156
|
+
>
|
|
157
|
+
<path d="M15 18l-6-6 6-6" />
|
|
158
|
+
</svg>
|
|
159
|
+
</Icon>
|
|
160
|
+
</button>
|
|
161
|
+
|
|
162
|
+
<!-- Year Display -->
|
|
163
|
+
<div class="text-foreground flex-1 text-center text-sm font-semibold">
|
|
164
|
+
{currentYear}
|
|
165
|
+
</div>
|
|
166
|
+
|
|
167
|
+
<!-- Next Year Button -->
|
|
168
|
+
<button
|
|
169
|
+
type="button"
|
|
170
|
+
class="hover:bg-foreground/10 active:bg-foreground/20 flex size-8 cursor-pointer items-center justify-center rounded-md transition-colors"
|
|
171
|
+
onclick={handleNextYear}
|
|
172
|
+
aria-label="Next year"
|
|
173
|
+
>
|
|
174
|
+
<Icon class="size-5">
|
|
175
|
+
<svg
|
|
176
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
177
|
+
class="size-full"
|
|
178
|
+
viewBox="0 0 24 24"
|
|
179
|
+
fill="none"
|
|
180
|
+
stroke="currentColor"
|
|
181
|
+
stroke-width="2"
|
|
182
|
+
stroke-linecap="round"
|
|
183
|
+
stroke-linejoin="round"
|
|
184
|
+
>
|
|
185
|
+
<path d="M9 18l6-6-6-6" />
|
|
186
|
+
</svg>
|
|
187
|
+
</Icon>
|
|
188
|
+
</button>
|
|
189
|
+
</nav>
|
|
190
|
+
|
|
191
|
+
<!-- Years Grid -->
|
|
192
|
+
<div class="grid flex-1 grid-cols-4 gap-1 px-2 py-2">
|
|
193
|
+
{#each yearsGrid as year}
|
|
194
|
+
{@const isSelected = year === pivote.getFullYear()}
|
|
195
|
+
{@const isCurrent = year === currentYear}
|
|
196
|
+
<button
|
|
197
|
+
type="button"
|
|
198
|
+
class={cn(
|
|
199
|
+
'hover:bg-foreground/10 active:bg-foreground/20 rounded-md px-3 py-2 text-sm transition-colors',
|
|
200
|
+
isSelected && 'bg-primary text-primary-foreground hover:bg-primary/90',
|
|
201
|
+
isCurrent && !isSelected && 'ring-foreground/20 ring-1'
|
|
202
|
+
)}
|
|
203
|
+
onclick={() => handleYearSelect(year)}
|
|
204
|
+
aria-label="Select year {year}"
|
|
205
|
+
aria-current={isSelected ? 'date' : undefined}
|
|
206
|
+
>
|
|
207
|
+
{year}
|
|
208
|
+
</button>
|
|
209
|
+
{/each}
|
|
210
|
+
</div>
|
|
211
|
+
</HtmlAtom>
|
|
212
|
+
{/if}
|
|
213
|
+
</HtmlAtom>
|
|
214
|
+
{/if}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
<script module>
|
|
2
|
+
import { defineMeta } from '@storybook/addon-svelte-csf';
|
|
3
|
+
|
|
4
|
+
const { Story } = defineMeta({
|
|
5
|
+
title: 'Atoms/Date Picker'
|
|
6
|
+
});
|
|
7
|
+
</script>
|
|
8
|
+
|
|
9
|
+
<script lang="ts">
|
|
10
|
+
import { Root } from '../root';
|
|
11
|
+
import { DatePicker as ADatePicker } from '.';
|
|
12
|
+
import { Button } from '../button';
|
|
13
|
+
import { addDays, set, subDays } from 'date-fns';
|
|
14
|
+
import { date } from 'zod';
|
|
15
|
+
|
|
16
|
+
let value: Date | undefined = $state(undefined);
|
|
17
|
+
</script>
|
|
18
|
+
|
|
19
|
+
<Story name="Date Picker">
|
|
20
|
+
{#snippet children({ args })}
|
|
21
|
+
<Root>
|
|
22
|
+
{#snippet children({})}
|
|
23
|
+
<div class="flex h-fit items-center justify-center">
|
|
24
|
+
<ADatePicker.Root bind:value min={subDays(new Date(), 5)} max={addDays(new Date(), 15)}>
|
|
25
|
+
<ADatePicker.Trigger base={Button} class="w-sm gap-4">
|
|
26
|
+
{#if value}
|
|
27
|
+
<div>{value.toDateString()}</div>
|
|
28
|
+
{:else}
|
|
29
|
+
<div>Open Date Picker</div>
|
|
30
|
+
{/if}
|
|
31
|
+
|
|
32
|
+
<ADatePicker.Indicator class="ml-auto" />
|
|
33
|
+
</ADatePicker.Trigger>
|
|
34
|
+
<ADatePicker.Calendar>
|
|
35
|
+
<ADatePicker.Header class="col-span-full"></ADatePicker.Header>
|
|
36
|
+
<ADatePicker.WeekDays></ADatePicker.WeekDays>
|
|
37
|
+
<ADatePicker.Body>
|
|
38
|
+
{#snippet children({ day })}
|
|
39
|
+
<ADatePicker.Day {day} class=""></ADatePicker.Day>
|
|
40
|
+
{/snippet}
|
|
41
|
+
</ADatePicker.Body>
|
|
42
|
+
|
|
43
|
+
<ADatePicker.Years></ADatePicker.Years>
|
|
44
|
+
<ADatePicker.Months></ADatePicker.Months>
|
|
45
|
+
</ADatePicker.Calendar>
|
|
46
|
+
</ADatePicker.Root>
|
|
47
|
+
</div>
|
|
48
|
+
{/snippet}
|
|
49
|
+
</Root>
|
|
50
|
+
{/snippet}
|
|
51
|
+
</Story>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
<script module lang="ts">
|
|
2
|
-
export type DialogBodyProps<
|
|
3
|
-
E extends keyof HTMLElementTagNameMap,
|
|
4
|
-
B extends Base = Base
|
|
5
|
-
> = HtmlAtomProps<E, B>;
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
1
|
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import type { DialogBodyProps } from './types';
|
|
9
3
|
import { DialogBond } from './bond.svelte';
|
|
10
|
-
import { HtmlAtom, type
|
|
4
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
11
5
|
|
|
12
6
|
let {
|
|
13
7
|
class: klass,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import { type
|
|
1
|
+
import type { DialogBodyProps } from './types';
|
|
2
|
+
import { type Base } from '../atom';
|
|
3
3
|
declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
|
|
4
4
|
props: DialogBodyProps<E, B>;
|
|
5
5
|
exports: {};
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
-
<script
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
> = HtmlAtomProps<E, B>;
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
|
-
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
9
|
-
import { DialogBond } from './bond.svelte';
|
|
1
|
+
<script
|
|
2
|
+
lang="ts"
|
|
3
|
+
generics="E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base"
|
|
4
|
+
>
|
|
10
5
|
import { Icon } from '../icon';
|
|
11
6
|
import Close from '../../icons/icon-close.svelte';
|
|
12
|
-
import { HtmlAtom, type
|
|
7
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
8
|
+
import { DialogBond } from './bond.svelte';
|
|
9
|
+
import type { DialogCloseButtonProps } from './types';
|
|
13
10
|
|
|
14
11
|
const bond = DialogBond.get();
|
|
15
12
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
declare function $$render<E extends keyof HTMLElementTagNameMap = '
|
|
1
|
+
import { type Base } from '../atom';
|
|
2
|
+
import type { DialogCloseButtonProps } from './types';
|
|
3
|
+
declare function $$render<E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base>(): {
|
|
4
4
|
props: DialogCloseButtonProps<E, B>;
|
|
5
5
|
exports: {};
|
|
6
6
|
bindings: "";
|
|
7
7
|
slots: {};
|
|
8
8
|
events: {};
|
|
9
9
|
};
|
|
10
|
-
declare class __sveltets_Render<E extends keyof HTMLElementTagNameMap = '
|
|
10
|
+
declare class __sveltets_Render<E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base> {
|
|
11
11
|
props(): ReturnType<typeof $$render<E, B>>['props'];
|
|
12
12
|
events(): ReturnType<typeof $$render<E, B>>['events'];
|
|
13
13
|
slots(): ReturnType<typeof $$render<E, B>>['slots'];
|
|
@@ -15,12 +15,12 @@ declare class __sveltets_Render<E extends keyof HTMLElementTagNameMap = 'div', B
|
|
|
15
15
|
exports(): {};
|
|
16
16
|
}
|
|
17
17
|
interface $$IsomorphicComponent {
|
|
18
|
-
new <E extends keyof HTMLElementTagNameMap = '
|
|
18
|
+
new <E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<E, B>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<E, B>['props']>, ReturnType<__sveltets_Render<E, B>['events']>, ReturnType<__sveltets_Render<E, B>['slots']>> & {
|
|
19
19
|
$$bindings?: ReturnType<__sveltets_Render<E, B>['bindings']>;
|
|
20
20
|
} & ReturnType<__sveltets_Render<E, B>['exports']>;
|
|
21
|
-
<E extends keyof HTMLElementTagNameMap = '
|
|
21
|
+
<E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base>(internal: unknown, props: ReturnType<__sveltets_Render<E, B>['props']> & {}): ReturnType<__sveltets_Render<E, B>['exports']>;
|
|
22
22
|
z_$$bindings?: ReturnType<__sveltets_Render<any, any>['bindings']>;
|
|
23
23
|
}
|
|
24
24
|
declare const DialogCloseButton: $$IsomorphicComponent;
|
|
25
|
-
type DialogCloseButton<E extends keyof HTMLElementTagNameMap = '
|
|
25
|
+
type DialogCloseButton<E extends keyof HTMLElementTagNameMap = 'button', B extends Base = Base> = InstanceType<typeof DialogCloseButton<E, B>>;
|
|
26
26
|
export default DialogCloseButton;
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
<script module lang="ts">
|
|
2
|
-
export type DialogContentProps<
|
|
3
|
-
E extends keyof HTMLElementTagNameMap,
|
|
4
|
-
B extends Base = Base
|
|
5
|
-
> = HtmlAtomProps<E, B>;
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
1
|
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
9
2
|
import { animate as motion } from 'motion';
|
|
10
3
|
import { DURATION } from '../../shared';
|
|
11
|
-
import { HtmlAtom, type
|
|
4
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
12
5
|
import { DialogBond } from './bond.svelte';
|
|
6
|
+
import type { DialogContentProps } from './types';
|
|
13
7
|
|
|
14
8
|
const bond = DialogBond.get();
|
|
15
9
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
import { type Base } from '../atom';
|
|
2
|
+
import type { DialogContentProps } from './types';
|
|
3
3
|
declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
|
|
4
4
|
props: DialogContentProps<E, B>;
|
|
5
5
|
exports: {};
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
<script module lang="ts">
|
|
2
|
-
export type DialogDescriptionProps<
|
|
3
|
-
T extends keyof HTMLElementTagNameMap,
|
|
4
|
-
B extends Base = Base
|
|
5
|
-
> = HtmlAtomProps<T, B>;
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
1
|
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base">
|
|
2
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
3
|
+
import type { DialogDescriptionProps } from './types';
|
|
9
4
|
import { DialogBond } from './bond.svelte';
|
|
10
|
-
import { HtmlAtom, type HtmlAtomProps, type Base } from '../atom';
|
|
11
5
|
|
|
12
6
|
let {
|
|
13
7
|
class: klass = '',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
import { type Base } from '../atom';
|
|
2
|
+
import type { DialogDescriptionProps } from './types';
|
|
3
3
|
declare function $$render<E extends keyof HTMLElementTagNameMap = 'p', B extends Base = Base>(): {
|
|
4
4
|
props: DialogDescriptionProps<E, B>;
|
|
5
5
|
exports: {};
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
<script module lang="ts">
|
|
2
|
-
export type DialogFooterProps<
|
|
3
|
-
E extends keyof HTMLElementTagNameMap = 'div',
|
|
4
|
-
B extends Base = Base
|
|
5
|
-
> = HtmlAtomProps<E, B>;
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
1
|
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
9
3
|
import { DialogBond } from './bond.svelte';
|
|
10
|
-
import
|
|
4
|
+
import type { DialogFooterProps } from './types';
|
|
11
5
|
|
|
12
6
|
let {
|
|
13
7
|
class: klass = '',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
import { type Base } from '../atom';
|
|
2
|
+
import type { DialogFooterProps } from './types';
|
|
3
3
|
declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
|
|
4
4
|
props: DialogFooterProps<E, B>;
|
|
5
5
|
exports: {};
|
|
@@ -1,13 +1,7 @@
|
|
|
1
|
-
<script module lang="ts">
|
|
2
|
-
export type DialogHeaderProps<
|
|
3
|
-
E extends keyof HTMLElementTagNameMap = 'div',
|
|
4
|
-
B extends Base = Base
|
|
5
|
-
> = HtmlAtomProps<E, B>;
|
|
6
|
-
</script>
|
|
7
|
-
|
|
8
1
|
<script lang="ts" generics="E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base">
|
|
2
|
+
import { HtmlAtom, type Base } from '../atom';
|
|
3
|
+
import type { DialogHeaderProps } from './types';
|
|
9
4
|
import { DialogBond } from './bond.svelte';
|
|
10
|
-
import { HtmlAtom, type HtmlAtomProps, type Base } from '../atom';
|
|
11
5
|
|
|
12
6
|
let {
|
|
13
7
|
class: klass = '',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
1
|
+
import { type Base } from '../atom';
|
|
2
|
+
import type { DialogHeaderProps } from './types';
|
|
3
3
|
declare function $$render<E extends keyof HTMLElementTagNameMap = 'div', B extends Base = Base>(): {
|
|
4
4
|
props: DialogHeaderProps<E, B>;
|
|
5
5
|
exports: {};
|