@sekiui/elements 0.0.82 → 0.0.83
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/dist/cdn/p-BgtjDG0h.js +45 -0
- package/dist/cdn/{p-BgpxFAwm.js → p-BuBiWSGh.js} +18 -3
- package/dist/cdn/{p-o_nleCju.js → p-Cs0DgQw5.js} +25 -8
- package/dist/cdn/p-D50kwTtW.js +160 -0
- package/dist/cdn/p-DuJp0Kp6.js +63 -0
- package/dist/cdn/seki-accordion-content.js +10 -8
- package/dist/cdn/seki-accordion-item.js +12 -10
- package/dist/cdn/seki-accordion-trigger.js +12 -10
- package/dist/cdn/seki-alert-dialog-action.js +1 -1
- package/dist/cdn/seki-alert-dialog-cancel.js +1 -1
- package/dist/cdn/seki-alert-dialog-content.js +23 -21
- package/dist/cdn/seki-alert-dialog.js +1 -1
- package/dist/cdn/seki-button.js +1 -1
- package/dist/cdn/seki-calendar.js +1 -1
- package/dist/cdn/seki-carousel-dots.js +3 -3
- package/dist/cdn/seki-carousel-next.js +3 -3
- package/dist/cdn/seki-carousel-previous.js +3 -3
- package/dist/cdn/seki-carousel.js +22 -4
- package/dist/cdn/seki-collapsible-content.js +9 -5
- package/dist/cdn/seki-combobox-item.js +9 -2
- package/dist/cdn/seki-command-group.js +9 -7
- package/dist/cdn/seki-context-menu-content.js +17 -15
- package/dist/cdn/seki-context-menu.js +11 -2
- package/dist/cdn/seki-data-table.js +19 -16
- package/dist/cdn/seki-date-picker.js +1 -1
- package/dist/cdn/seki-dialog-content.js +23 -21
- package/dist/cdn/seki-dialog-overlay.js +10 -8
- package/dist/cdn/seki-dialog.js +1 -1
- package/dist/cdn/seki-dropdown-menu-content.js +23 -68
- package/dist/cdn/seki-dropdown-menu-radio.js +11 -9
- package/dist/cdn/seki-dropdown-menu-trigger.js +11 -9
- package/dist/cdn/seki-dropdown-menu.js +11 -2
- package/dist/cdn/seki-menubar-content.js +24 -42
- package/dist/cdn/seki-menubar-radio.js +11 -9
- package/dist/cdn/seki-menubar-trigger.js +12 -10
- package/dist/cdn/seki-menubar.js +11 -2
- package/dist/cdn/seki-navigation-menu-content.js +8 -3
- package/dist/cdn/seki-navigation-menu-item.js +2 -2
- package/dist/cdn/seki-navigation-menu-link.js +8 -3
- package/dist/cdn/seki-navigation-menu-list.js +7 -2
- package/dist/cdn/seki-navigation-menu-trigger.js +3 -3
- package/dist/cdn/seki-navigation-menu.js +5 -5
- package/dist/cdn/seki-popover-content.js +20 -65
- package/dist/cdn/seki-popover.js +13 -3
- package/dist/cdn/seki-scroll-bar.js +6 -2
- package/dist/cdn/seki-select-option.js +29 -13
- package/dist/cdn/seki-select.js +79 -33
- package/dist/cdn/seki-sidebar-menu-sub.js +17 -16
- package/dist/cdn/seki-sidebar-provider.js +13 -4
- package/dist/cdn/seki-sidebar-rail.js +7 -2
- package/dist/cdn/seki-slider.js +36 -4
- package/dist/cdn/seki-spinner.js +2 -2
- package/dist/cdn/seki-table-body.js +1 -1
- package/dist/cdn/seki-table-caption.js +1 -1
- package/dist/cdn/seki-table-footer.js +1 -1
- package/dist/cdn/seki-table-header.js +1 -1
- package/dist/cdn/seki-table-row.js +2 -2
- package/dist/cdn/seki-table.js +1 -1
- package/dist/cdn/seki-tabs-content.js +12 -10
- package/dist/cdn/seki-tabs-list.js +2 -2
- package/dist/cdn/seki-tabs-trigger.js +12 -10
- package/dist/cdn/seki-tabs.js +2 -2
- package/dist/cdn/seki-textarea.js +1 -1
- package/dist/cdn/seki-toggle-group.js +1 -1
- package/dist/cdn/seki-toggle.js +1 -1
- package/dist/cdn/seki-tooltip.js +16 -3
- package/dist/cjs/ancestor-attrs-CnUfqtWw.js +47 -0
- package/dist/cjs/focus-trap-CFl79SjZ.js +165 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/positioning-LQZBWMS6.js +65 -0
- package/dist/cjs/seki-accordion-content.cjs.entry.js +10 -8
- package/dist/cjs/seki-accordion-item.cjs.entry.js +12 -10
- package/dist/cjs/seki-accordion-trigger.cjs.entry.js +12 -10
- package/dist/cjs/seki-alert-dialog-action.cjs.entry.js +1 -1
- package/dist/cjs/seki-alert-dialog-cancel.cjs.entry.js +1 -1
- package/dist/cjs/seki-alert-dialog-content.cjs.entry.js +23 -21
- package/dist/cjs/seki-button.cjs.entry.js +1 -1
- package/dist/cjs/seki-calendar.cjs.entry.js +25 -8
- package/dist/cjs/seki-carousel-dots.cjs.entry.js +3 -3
- package/dist/cjs/seki-carousel-next.cjs.entry.js +3 -3
- package/dist/cjs/seki-carousel-previous.cjs.entry.js +3 -3
- package/dist/cjs/seki-carousel.cjs.entry.js +22 -4
- package/dist/cjs/seki-collapsible-content.cjs.entry.js +9 -5
- package/dist/cjs/seki-combobox-item.cjs.entry.js +9 -2
- package/dist/cjs/seki-command-group.cjs.entry.js +9 -7
- package/dist/cjs/seki-context-menu-content.cjs.entry.js +17 -15
- package/dist/cjs/seki-context-menu.cjs.entry.js +11 -2
- package/dist/cjs/seki-data-table.cjs.entry.js +19 -16
- package/dist/cjs/seki-dialog-content.cjs.entry.js +23 -21
- package/dist/cjs/seki-dialog-overlay.cjs.entry.js +10 -8
- package/dist/cjs/seki-dialog.cjs.entry.js +15 -2
- package/dist/cjs/seki-dropdown-menu-content.cjs.entry.js +23 -68
- package/dist/cjs/seki-dropdown-menu-radio.cjs.entry.js +11 -9
- package/dist/cjs/seki-dropdown-menu-trigger.cjs.entry.js +11 -9
- package/dist/cjs/seki-dropdown-menu.cjs.entry.js +11 -2
- package/dist/cjs/seki-menubar-content.cjs.entry.js +24 -42
- package/dist/cjs/seki-menubar-radio.cjs.entry.js +11 -9
- package/dist/cjs/seki-menubar-trigger.cjs.entry.js +12 -10
- package/dist/cjs/seki-menubar.cjs.entry.js +11 -2
- package/dist/cjs/seki-navigation-menu-content.cjs.entry.js +8 -3
- package/dist/cjs/seki-navigation-menu-item.cjs.entry.js +2 -2
- package/dist/cjs/seki-navigation-menu-link.cjs.entry.js +8 -3
- package/dist/cjs/seki-navigation-menu-list.cjs.entry.js +7 -2
- package/dist/cjs/seki-navigation-menu-trigger.cjs.entry.js +3 -3
- package/dist/cjs/seki-navigation-menu.cjs.entry.js +5 -5
- package/dist/cjs/seki-popover-content.cjs.entry.js +20 -65
- package/dist/cjs/seki-popover.cjs.entry.js +13 -3
- package/dist/cjs/seki-scroll-bar.cjs.entry.js +6 -2
- package/dist/cjs/seki-select-option.cjs.entry.js +29 -13
- package/dist/cjs/seki-select.cjs.entry.js +81 -30
- package/dist/cjs/seki-sidebar-menu-sub.cjs.entry.js +17 -16
- package/dist/cjs/seki-sidebar-provider.cjs.entry.js +13 -4
- package/dist/cjs/seki-sidebar-rail.cjs.entry.js +7 -2
- package/dist/cjs/seki-slider.cjs.entry.js +36 -1
- package/dist/cjs/seki-spinner.cjs.entry.js +2 -2
- package/dist/cjs/seki-table-body.cjs.entry.js +1 -1
- package/dist/cjs/seki-table-caption.cjs.entry.js +1 -1
- package/dist/cjs/seki-table-footer.cjs.entry.js +1 -1
- package/dist/cjs/seki-table-header.cjs.entry.js +1 -1
- package/dist/cjs/seki-table-row.cjs.entry.js +2 -2
- package/dist/cjs/seki-table.cjs.entry.js +1 -1
- package/dist/cjs/seki-tabs-content.cjs.entry.js +12 -10
- package/dist/cjs/seki-tabs-list.cjs.entry.js +2 -2
- package/dist/cjs/seki-tabs-trigger.cjs.entry.js +12 -10
- package/dist/cjs/seki-tabs.cjs.entry.js +2 -2
- package/dist/cjs/seki-textarea.cjs.entry.js +1 -1
- package/dist/cjs/seki-toggle-group.cjs.entry.js +1 -1
- package/dist/cjs/seki-toggle.cjs.entry.js +1 -1
- package/dist/cjs/seki-tooltip.cjs.entry.js +16 -3
- package/dist/cjs/sekiui.cjs.js +1 -1
- package/dist/collection/components/accordion/seki-accordion-content.js +10 -8
- package/dist/collection/components/accordion/seki-accordion-item.js +12 -10
- package/dist/collection/components/accordion/seki-accordion-trigger.js +12 -10
- package/dist/collection/components/alert-dialog/seki-alert-dialog-action.css +5 -5
- package/dist/collection/components/alert-dialog/seki-alert-dialog-cancel.css +4 -4
- package/dist/collection/components/alert-dialog/seki-alert-dialog-content.js +22 -20
- package/dist/collection/components/button/seki-button.css +9 -9
- package/dist/collection/components/calendar/seki-calendar.js +14 -5
- package/dist/collection/components/carousel/seki-carousel-dots.js +3 -3
- package/dist/collection/components/carousel/seki-carousel-next.js +3 -3
- package/dist/collection/components/carousel/seki-carousel-previous.js +3 -3
- package/dist/collection/components/carousel/seki-carousel.js +22 -4
- package/dist/collection/components/collapsible/seki-collapsible-content.js +9 -5
- package/dist/collection/components/combobox-item/seki-combobox-item.js +9 -2
- package/dist/collection/components/command/seki-command-group.js +9 -7
- package/dist/collection/components/context-menu/seki-context-menu-content.js +17 -15
- package/dist/collection/components/context-menu/seki-context-menu.js +11 -2
- package/dist/collection/components/data-table/seki-data-table.css +5 -5
- package/dist/collection/components/data-table/seki-data-table.js +18 -15
- package/dist/collection/components/dialog/seki-dialog-content.js +22 -20
- package/dist/collection/components/dialog/seki-dialog-overlay.js +10 -8
- package/dist/collection/components/dialog/seki-dialog.js +17 -1
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-content.js +23 -68
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-radio.js +11 -9
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-trigger.js +11 -9
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu.js +11 -2
- package/dist/collection/components/menubar/seki-menubar-content.js +24 -42
- package/dist/collection/components/menubar/seki-menubar-radio.js +11 -9
- package/dist/collection/components/menubar/seki-menubar-trigger.js +12 -10
- package/dist/collection/components/menubar/seki-menubar.js +11 -2
- package/dist/collection/components/navigation-menu/seki-navigation-menu-content.css +1 -1
- package/dist/collection/components/navigation-menu/seki-navigation-menu-content.js +7 -2
- package/dist/collection/components/navigation-menu/seki-navigation-menu-item.js +2 -2
- package/dist/collection/components/navigation-menu/seki-navigation-menu-link.css +1 -1
- package/dist/collection/components/navigation-menu/seki-navigation-menu-link.js +7 -2
- package/dist/collection/components/navigation-menu/seki-navigation-menu-list.css +1 -1
- package/dist/collection/components/navigation-menu/seki-navigation-menu-list.js +6 -1
- package/dist/collection/components/navigation-menu/seki-navigation-menu-trigger.js +3 -3
- package/dist/collection/components/navigation-menu/seki-navigation-menu.js +5 -5
- package/dist/collection/components/popover/seki-popover-content.js +20 -65
- package/dist/collection/components/popover/seki-popover.js +13 -3
- package/dist/collection/components/scroll-area/seki-scroll-bar.css +5 -5
- package/dist/collection/components/scroll-area/seki-scroll-bar.js +5 -1
- package/dist/collection/components/select/seki-select.js +77 -30
- package/dist/collection/components/select-option/seki-select-option.js +29 -13
- package/dist/collection/components/sidebar/seki-sidebar-menu-sub.js +17 -16
- package/dist/collection/components/sidebar/seki-sidebar-provider.js +13 -4
- package/dist/collection/components/sidebar/seki-sidebar-rail.css +6 -6
- package/dist/collection/components/sidebar/seki-sidebar-rail.js +6 -1
- package/dist/collection/components/slider/seki-slider.js +36 -2
- package/dist/collection/components/spinner/seki-spinner.js +2 -2
- package/dist/collection/components/table/seki-table-body.js +1 -1
- package/dist/collection/components/table/seki-table-caption.js +1 -1
- package/dist/collection/components/table/seki-table-footer.js +1 -1
- package/dist/collection/components/table/seki-table-header.js +1 -1
- package/dist/collection/components/table/seki-table-row.js +2 -2
- package/dist/collection/components/table/seki-table.js +1 -1
- package/dist/collection/components/tabs/seki-tabs-content.js +12 -10
- package/dist/collection/components/tabs/seki-tabs-list.js +2 -2
- package/dist/collection/components/tabs/seki-tabs-trigger.js +12 -10
- package/dist/collection/components/tabs/seki-tabs.js +2 -2
- package/dist/collection/components/textarea/seki-textarea.js +1 -1
- package/dist/collection/components/toggle/seki-toggle.js +1 -1
- package/dist/collection/components/toggle-group/seki-toggle-group.js +1 -1
- package/dist/collection/components/tooltip/seki-tooltip.js +16 -3
- package/dist/collection/utils/ancestor-attrs.js +43 -0
- package/dist/collection/utils/calendar/date-utils.js +12 -4
- package/dist/collection/utils/dialog/focus-trap.js +110 -21
- package/dist/collection/utils/positioning.js +61 -0
- package/dist/components/p-BgtjDG0h.js +45 -0
- package/dist/components/{p-tgCyk_Am.js → p-C87BOunl.js} +18 -3
- package/dist/components/p-D50kwTtW.js +160 -0
- package/dist/components/{p-DKbSEP4m.js → p-DFfIiiRa.js} +25 -8
- package/dist/components/p-DuJp0Kp6.js +63 -0
- package/dist/components/seki-accordion-content.js +10 -8
- package/dist/components/seki-accordion-item.js +12 -10
- package/dist/components/seki-accordion-trigger.js +12 -10
- package/dist/components/seki-alert-dialog-action.js +1 -1
- package/dist/components/seki-alert-dialog-cancel.js +1 -1
- package/dist/components/seki-alert-dialog-content.js +23 -21
- package/dist/components/seki-alert-dialog.js +1 -1
- package/dist/components/seki-button.js +1 -1
- package/dist/components/seki-calendar.js +1 -1
- package/dist/components/seki-carousel-dots.js +3 -3
- package/dist/components/seki-carousel-next.js +3 -3
- package/dist/components/seki-carousel-previous.js +3 -3
- package/dist/components/seki-carousel.js +22 -4
- package/dist/components/seki-collapsible-content.js +9 -5
- package/dist/components/seki-combobox-item.js +9 -2
- package/dist/components/seki-command-group.js +9 -7
- package/dist/components/seki-context-menu-content.js +17 -15
- package/dist/components/seki-context-menu.js +11 -2
- package/dist/components/seki-data-table.js +19 -16
- package/dist/components/seki-date-picker.js +1 -1
- package/dist/components/seki-dialog-content.js +23 -21
- package/dist/components/seki-dialog-overlay.js +10 -8
- package/dist/components/seki-dialog.js +1 -1
- package/dist/components/seki-dropdown-menu-content.js +23 -68
- package/dist/components/seki-dropdown-menu-radio.js +11 -9
- package/dist/components/seki-dropdown-menu-trigger.js +11 -9
- package/dist/components/seki-dropdown-menu.js +11 -2
- package/dist/components/seki-menubar-content.js +24 -42
- package/dist/components/seki-menubar-radio.js +11 -9
- package/dist/components/seki-menubar-trigger.js +12 -10
- package/dist/components/seki-menubar.js +11 -2
- package/dist/components/seki-navigation-menu-content.js +8 -3
- package/dist/components/seki-navigation-menu-item.js +2 -2
- package/dist/components/seki-navigation-menu-link.js +8 -3
- package/dist/components/seki-navigation-menu-list.js +7 -2
- package/dist/components/seki-navigation-menu-trigger.js +3 -3
- package/dist/components/seki-navigation-menu.js +5 -5
- package/dist/components/seki-popover-content.js +20 -65
- package/dist/components/seki-popover.js +13 -3
- package/dist/components/seki-scroll-bar.js +6 -2
- package/dist/components/seki-select-option.js +29 -13
- package/dist/components/seki-select.js +79 -33
- package/dist/components/seki-sidebar-menu-sub.js +17 -16
- package/dist/components/seki-sidebar-provider.js +13 -4
- package/dist/components/seki-sidebar-rail.js +7 -2
- package/dist/components/seki-slider.js +36 -4
- package/dist/components/seki-spinner.js +2 -2
- package/dist/components/seki-table-body.js +1 -1
- package/dist/components/seki-table-caption.js +1 -1
- package/dist/components/seki-table-footer.js +1 -1
- package/dist/components/seki-table-header.js +1 -1
- package/dist/components/seki-table-row.js +2 -2
- package/dist/components/seki-table.js +1 -1
- package/dist/components/seki-tabs-content.js +12 -10
- package/dist/components/seki-tabs-list.js +2 -2
- package/dist/components/seki-tabs-trigger.js +12 -10
- package/dist/components/seki-tabs.js +2 -2
- package/dist/components/seki-textarea.js +1 -1
- package/dist/components/seki-toggle-group.js +1 -1
- package/dist/components/seki-toggle.js +1 -1
- package/dist/components/seki-tooltip.js +16 -3
- package/dist/esm/ancestor-attrs-BgtjDG0h.js +45 -0
- package/dist/esm/focus-trap-D50kwTtW.js +160 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/positioning-DuJp0Kp6.js +63 -0
- package/dist/esm/seki-accordion-content.entry.js +10 -8
- package/dist/esm/seki-accordion-item.entry.js +12 -10
- package/dist/esm/seki-accordion-trigger.entry.js +12 -10
- package/dist/esm/seki-alert-dialog-action.entry.js +1 -1
- package/dist/esm/seki-alert-dialog-cancel.entry.js +1 -1
- package/dist/esm/seki-alert-dialog-content.entry.js +23 -21
- package/dist/esm/seki-button.entry.js +1 -1
- package/dist/esm/seki-calendar.entry.js +25 -8
- package/dist/esm/seki-carousel-dots.entry.js +3 -3
- package/dist/esm/seki-carousel-next.entry.js +3 -3
- package/dist/esm/seki-carousel-previous.entry.js +3 -3
- package/dist/esm/seki-carousel.entry.js +22 -4
- package/dist/esm/seki-collapsible-content.entry.js +9 -5
- package/dist/esm/seki-combobox-item.entry.js +9 -2
- package/dist/esm/seki-command-group.entry.js +9 -7
- package/dist/esm/seki-context-menu-content.entry.js +17 -15
- package/dist/esm/seki-context-menu.entry.js +11 -2
- package/dist/esm/seki-data-table.entry.js +19 -16
- package/dist/esm/seki-dialog-content.entry.js +23 -21
- package/dist/esm/seki-dialog-overlay.entry.js +10 -8
- package/dist/esm/seki-dialog.entry.js +15 -2
- package/dist/esm/seki-dropdown-menu-content.entry.js +23 -68
- package/dist/esm/seki-dropdown-menu-radio.entry.js +11 -9
- package/dist/esm/seki-dropdown-menu-trigger.entry.js +11 -9
- package/dist/esm/seki-dropdown-menu.entry.js +11 -2
- package/dist/esm/seki-menubar-content.entry.js +24 -42
- package/dist/esm/seki-menubar-radio.entry.js +11 -9
- package/dist/esm/seki-menubar-trigger.entry.js +12 -10
- package/dist/esm/seki-menubar.entry.js +11 -2
- package/dist/esm/seki-navigation-menu-content.entry.js +8 -3
- package/dist/esm/seki-navigation-menu-item.entry.js +2 -2
- package/dist/esm/seki-navigation-menu-link.entry.js +8 -3
- package/dist/esm/seki-navigation-menu-list.entry.js +7 -2
- package/dist/esm/seki-navigation-menu-trigger.entry.js +3 -3
- package/dist/esm/seki-navigation-menu.entry.js +5 -5
- package/dist/esm/seki-popover-content.entry.js +20 -65
- package/dist/esm/seki-popover.entry.js +13 -3
- package/dist/esm/seki-scroll-bar.entry.js +6 -2
- package/dist/esm/seki-select-option.entry.js +29 -13
- package/dist/esm/seki-select.entry.js +81 -30
- package/dist/esm/seki-sidebar-menu-sub.entry.js +17 -16
- package/dist/esm/seki-sidebar-provider.entry.js +13 -4
- package/dist/esm/seki-sidebar-rail.entry.js +7 -2
- package/dist/esm/seki-slider.entry.js +36 -1
- package/dist/esm/seki-spinner.entry.js +2 -2
- package/dist/esm/seki-table-body.entry.js +1 -1
- package/dist/esm/seki-table-caption.entry.js +1 -1
- package/dist/esm/seki-table-footer.entry.js +1 -1
- package/dist/esm/seki-table-header.entry.js +1 -1
- package/dist/esm/seki-table-row.entry.js +2 -2
- package/dist/esm/seki-table.entry.js +1 -1
- package/dist/esm/seki-tabs-content.entry.js +12 -10
- package/dist/esm/seki-tabs-list.entry.js +2 -2
- package/dist/esm/seki-tabs-trigger.entry.js +12 -10
- package/dist/esm/seki-tabs.entry.js +2 -2
- package/dist/esm/seki-textarea.entry.js +1 -1
- package/dist/esm/seki-toggle-group.entry.js +1 -1
- package/dist/esm/seki-toggle.entry.js +1 -1
- package/dist/esm/seki-tooltip.entry.js +16 -3
- package/dist/esm/sekiui.js +1 -1
- package/dist/sekiui/{p-40458a33.entry.js → p-01420aec.entry.js} +1 -1
- package/dist/sekiui/{p-9643e1d8.entry.js → p-021cb880.entry.js} +1 -1
- package/dist/sekiui/p-0ab43c7f.entry.js +1 -0
- package/dist/sekiui/p-14b6774a.entry.js +1 -0
- package/dist/sekiui/{p-d02efcf2.entry.js → p-1b8d2288.entry.js} +1 -1
- package/dist/sekiui/{p-67fffcd0.entry.js → p-1eb709fb.entry.js} +1 -1
- package/dist/sekiui/{p-24ea0d3d.entry.js → p-2de73747.entry.js} +1 -1
- package/dist/sekiui/p-32569d7d.entry.js +1 -0
- package/dist/sekiui/p-367d9a7f.entry.js +1 -0
- package/dist/sekiui/p-40c40d4f.entry.js +1 -0
- package/dist/sekiui/p-4572d290.entry.js +1 -0
- package/dist/sekiui/p-49024e9e.entry.js +1 -0
- package/dist/sekiui/{p-0c2344d1.entry.js → p-4bf8c2fa.entry.js} +1 -1
- package/dist/sekiui/p-4e60d2d0.entry.js +1 -0
- package/dist/sekiui/{p-5a853b23.entry.js → p-51b11242.entry.js} +1 -1
- package/dist/sekiui/{p-541f1dbb.entry.js → p-57e7685a.entry.js} +1 -1
- package/dist/sekiui/p-677a1751.entry.js +1 -0
- package/dist/sekiui/{p-66b1c2ac.entry.js → p-695a4986.entry.js} +1 -1
- package/dist/sekiui/p-71f6da8b.entry.js +1 -0
- package/dist/sekiui/{p-96073eae.entry.js → p-75d46bc7.entry.js} +1 -1
- package/dist/sekiui/p-7cd76bbb.entry.js +1 -0
- package/dist/sekiui/p-80b79cc0.entry.js +1 -0
- package/dist/sekiui/p-835f723b.entry.js +1 -0
- package/dist/sekiui/p-851d1c50.entry.js +1 -0
- package/dist/sekiui/{p-b664489e.entry.js → p-887b559d.entry.js} +1 -1
- package/dist/sekiui/{p-7bf379c4.entry.js → p-8c369957.entry.js} +1 -1
- package/dist/sekiui/{p-41f5488e.entry.js → p-8c57364a.entry.js} +1 -1
- package/dist/sekiui/p-8d888e3d.entry.js +1 -0
- package/dist/sekiui/{p-4c1b29de.entry.js → p-92b0241d.entry.js} +1 -1
- package/dist/sekiui/{p-fc6d6133.entry.js → p-966b2358.entry.js} +1 -1
- package/dist/sekiui/p-9a00c59c.entry.js +1 -0
- package/dist/sekiui/{p-b14ba603.entry.js → p-9af630c4.entry.js} +1 -1
- package/dist/sekiui/p-BgtjDG0h.js +1 -0
- package/dist/sekiui/p-D50kwTtW.js +1 -0
- package/dist/sekiui/p-DuJp0Kp6.js +1 -0
- package/dist/sekiui/p-a29160bc.entry.js +1 -0
- package/dist/sekiui/p-a6ae5c4b.entry.js +1 -0
- package/dist/sekiui/{p-c1bf976b.entry.js → p-b0d1e077.entry.js} +1 -1
- package/dist/sekiui/{p-73cbd067.entry.js → p-b2a60e91.entry.js} +1 -1
- package/dist/sekiui/{p-a5edaf79.entry.js → p-b43f9720.entry.js} +1 -1
- package/dist/sekiui/p-b5c242a0.entry.js +1 -0
- package/dist/sekiui/{p-d5b616c5.entry.js → p-bac67676.entry.js} +1 -1
- package/dist/sekiui/p-bc611a3d.entry.js +1 -0
- package/dist/sekiui/p-c004f467.entry.js +1 -0
- package/dist/sekiui/{p-41fae140.entry.js → p-cb657adb.entry.js} +1 -1
- package/dist/sekiui/{p-fa9a68be.entry.js → p-cfac56e7.entry.js} +1 -1
- package/dist/sekiui/{p-bf52433b.entry.js → p-d1a06cbc.entry.js} +1 -1
- package/dist/sekiui/p-d1f6efac.entry.js +1 -0
- package/dist/sekiui/{p-67aaf0f1.entry.js → p-d4ed816d.entry.js} +1 -1
- package/dist/sekiui/p-eaf626e5.entry.js +1 -0
- package/dist/sekiui/p-ed9034e4.entry.js +1 -0
- package/dist/sekiui/p-edd02332.entry.js +1 -0
- package/dist/sekiui/{p-bd9d106a.entry.js → p-ee40575b.entry.js} +1 -1
- package/dist/sekiui/{p-8344563b.entry.js → p-ef3679b0.entry.js} +1 -1
- package/dist/sekiui/p-f07b430e.entry.js +1 -0
- package/dist/sekiui/p-f3c69359.entry.js +1 -0
- package/dist/sekiui/p-f53b37e2.entry.js +1 -0
- package/dist/sekiui/p-f587cd57.entry.js +1 -0
- package/dist/sekiui/p-f7e1fdf0.entry.js +1 -0
- package/dist/sekiui/p-fb1370a9.entry.js +1 -0
- package/dist/sekiui/p-fde2877f.entry.js +1 -0
- package/dist/sekiui/p-fed3a547.entry.js +1 -0
- package/dist/sekiui/sekiui.esm.js +1 -1
- package/dist/types/components/accordion/seki-accordion-content.d.ts +2 -0
- package/dist/types/components/accordion/seki-accordion-item.d.ts +2 -0
- package/dist/types/components/accordion/seki-accordion-trigger.d.ts +2 -0
- package/dist/types/components/alert-dialog/seki-alert-dialog-content.d.ts +2 -0
- package/dist/types/components/carousel/seki-carousel.d.ts +3 -0
- package/dist/types/components/collapsible/seki-collapsible-content.d.ts +2 -0
- package/dist/types/components/combobox-item/seki-combobox-item.d.ts +1 -0
- package/dist/types/components/command/seki-command-group.d.ts +2 -0
- package/dist/types/components/context-menu/seki-context-menu-content.d.ts +2 -0
- package/dist/types/components/context-menu/seki-context-menu.d.ts +1 -0
- package/dist/types/components/dialog/seki-dialog-content.d.ts +2 -0
- package/dist/types/components/dialog/seki-dialog-overlay.d.ts +2 -0
- package/dist/types/components/dialog/seki-dialog.d.ts +1 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu-content.d.ts +2 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu-radio.d.ts +2 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu-trigger.d.ts +2 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu.d.ts +1 -0
- package/dist/types/components/menubar/seki-menubar-content.d.ts +2 -0
- package/dist/types/components/menubar/seki-menubar-radio.d.ts +2 -0
- package/dist/types/components/menubar/seki-menubar-trigger.d.ts +2 -0
- package/dist/types/components/menubar/seki-menubar.d.ts +1 -0
- package/dist/types/components/navigation-menu/seki-navigation-menu-content.d.ts +1 -0
- package/dist/types/components/navigation-menu/seki-navigation-menu-link.d.ts +1 -0
- package/dist/types/components/navigation-menu/seki-navigation-menu-list.d.ts +1 -0
- package/dist/types/components/popover/seki-popover-content.d.ts +2 -0
- package/dist/types/components/popover/seki-popover.d.ts +1 -0
- package/dist/types/components/scroll-area/seki-scroll-bar.d.ts +1 -0
- package/dist/types/components/select/seki-select.d.ts +8 -1
- package/dist/types/components/select-option/seki-select-option.d.ts +3 -1
- package/dist/types/components/sidebar/seki-sidebar-menu-sub.d.ts +2 -0
- package/dist/types/components/sidebar/seki-sidebar-rail.d.ts +1 -0
- package/dist/types/components/slider/seki-slider.d.ts +9 -0
- package/dist/types/components/tabs/seki-tabs-content.d.ts +2 -0
- package/dist/types/components/tabs/seki-tabs-trigger.d.ts +2 -0
- package/dist/types/components/tooltip/seki-tooltip.d.ts +1 -0
- package/dist/types/components.d.ts +32 -32
- package/dist/types/utils/ancestor-attrs.d.ts +18 -0
- package/dist/types/utils/calendar/date-utils.d.ts +9 -0
- package/dist/types/utils/dialog/focus-trap.d.ts +18 -7
- package/dist/types/utils/positioning.d.ts +34 -0
- package/package.json +25 -2
- package/dist/cdn/p-CP7ZtKCE.js +0 -71
- package/dist/cjs/focus-trap-C7ukllRZ.js +0 -76
- package/dist/components/p-CP7ZtKCE.js +0 -71
- package/dist/esm/focus-trap-CP7ZtKCE.js +0 -71
- package/dist/sekiui/p-107bdce6.entry.js +0 -1
- package/dist/sekiui/p-2548d7c3.entry.js +0 -1
- package/dist/sekiui/p-307a0de3.entry.js +0 -1
- package/dist/sekiui/p-397fb20e.entry.js +0 -1
- package/dist/sekiui/p-3e01b3c9.entry.js +0 -1
- package/dist/sekiui/p-4617d9c5.entry.js +0 -1
- package/dist/sekiui/p-4896a497.entry.js +0 -1
- package/dist/sekiui/p-4a47ea19.entry.js +0 -1
- package/dist/sekiui/p-4b0ee9e5.entry.js +0 -1
- package/dist/sekiui/p-598f9c5b.entry.js +0 -1
- package/dist/sekiui/p-635ca5ab.entry.js +0 -1
- package/dist/sekiui/p-63b3a53c.entry.js +0 -1
- package/dist/sekiui/p-63ffc38a.entry.js +0 -1
- package/dist/sekiui/p-6416552b.entry.js +0 -1
- package/dist/sekiui/p-66b59a4c.entry.js +0 -1
- package/dist/sekiui/p-70f149c3.entry.js +0 -1
- package/dist/sekiui/p-79062829.entry.js +0 -1
- package/dist/sekiui/p-7bf7ee5f.entry.js +0 -1
- package/dist/sekiui/p-8067a8f3.entry.js +0 -1
- package/dist/sekiui/p-884bde18.entry.js +0 -1
- package/dist/sekiui/p-91d532fa.entry.js +0 -1
- package/dist/sekiui/p-95749f03.entry.js +0 -1
- package/dist/sekiui/p-9d5b807f.entry.js +0 -1
- package/dist/sekiui/p-CP7ZtKCE.js +0 -1
- package/dist/sekiui/p-ac321aeb.entry.js +0 -1
- package/dist/sekiui/p-adc3cfff.entry.js +0 -1
- package/dist/sekiui/p-b945fc54.entry.js +0 -1
- package/dist/sekiui/p-bdb2d304.entry.js +0 -1
- package/dist/sekiui/p-c0ce45c3.entry.js +0 -1
- package/dist/sekiui/p-d2951ab4.entry.js +0 -1
- package/dist/sekiui/p-db37e4d2.entry.js +0 -1
- package/dist/sekiui/p-e51d76de.entry.js +0 -1
- package/dist/sekiui/p-f0bb516d.entry.js +0 -1
- package/dist/sekiui/p-f82ead84.entry.js +0 -1
|
@@ -16,6 +16,17 @@ function getWeekDays(weekStartsOn = 0) {
|
|
|
16
16
|
}
|
|
17
17
|
return days;
|
|
18
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* Whether a date is disabled by the min/max bounds or the explicit disabled list.
|
|
21
|
+
* Single source of truth shared by the grid generator and keyboard handlers.
|
|
22
|
+
*/
|
|
23
|
+
function isDateDisabled(date, options = {}) {
|
|
24
|
+
const { minDate = null, maxDate = null, disabledDates = [] } = options;
|
|
25
|
+
const disabledByRange = (minDate && index.dateFnsExports.isBefore(date, index.dateFnsExports.startOfDay(minDate))) ||
|
|
26
|
+
(maxDate && index.dateFnsExports.isAfter(date, index.dateFnsExports.startOfDay(maxDate)));
|
|
27
|
+
const disabledByList = disabledDates.some(d => index.dateFnsExports.isSameDay(date, d));
|
|
28
|
+
return Boolean(disabledByRange || disabledByList);
|
|
29
|
+
}
|
|
19
30
|
/**
|
|
20
31
|
* Get all days to display in a calendar month grid (6 weeks)
|
|
21
32
|
*/
|
|
@@ -29,9 +40,6 @@ function getCalendarDays(month, options = {}) {
|
|
|
29
40
|
const weeks = [];
|
|
30
41
|
let currentWeek = [];
|
|
31
42
|
for (const date of allDays) {
|
|
32
|
-
const isDisabledByRange = (minDate && index.dateFnsExports.isBefore(date, index.dateFnsExports.startOfDay(minDate))) ||
|
|
33
|
-
(maxDate && index.dateFnsExports.isAfter(date, index.dateFnsExports.startOfDay(maxDate)));
|
|
34
|
-
const isDisabledByList = disabledDates.some(d => index.dateFnsExports.isSameDay(date, d));
|
|
35
43
|
const isSelected = selectedDate ? index.dateFnsExports.isSameDay(date, selectedDate) : false;
|
|
36
44
|
let isInRange = false;
|
|
37
45
|
let isRangeStart = false;
|
|
@@ -55,7 +63,7 @@ function getCalendarDays(month, options = {}) {
|
|
|
55
63
|
isInRange,
|
|
56
64
|
isRangeStart,
|
|
57
65
|
isRangeEnd,
|
|
58
|
-
isDisabled:
|
|
66
|
+
isDisabled: isDateDisabled(date, { minDate, maxDate, disabledDates }),
|
|
59
67
|
};
|
|
60
68
|
currentWeek.push(day);
|
|
61
69
|
if (currentWeek.length === 7) {
|
|
@@ -198,9 +206,11 @@ const SekiCalendar = class {
|
|
|
198
206
|
}
|
|
199
207
|
};
|
|
200
208
|
this.handleKeyDown = (event) => {
|
|
201
|
-
|
|
209
|
+
// Anchor navigation on the currently focused day first so arrow keys move
|
|
210
|
+
// the focus freely instead of snapping back to the selected date each press.
|
|
211
|
+
const selectedDate = this.focusedDate ||
|
|
212
|
+
this.parseDate(this.selected) ||
|
|
202
213
|
this.parseDate(this.rangeFrom) ||
|
|
203
|
-
this.focusedDate ||
|
|
204
214
|
new Date();
|
|
205
215
|
let newDate = null;
|
|
206
216
|
switch (event.key) {
|
|
@@ -220,6 +230,13 @@ const SekiCalendar = class {
|
|
|
220
230
|
case ' ':
|
|
221
231
|
if (this.focusedDate) {
|
|
222
232
|
event.preventDefault();
|
|
233
|
+
// Compute the real disabled state so keyboard selection honours
|
|
234
|
+
// min/max bounds and disabledDates, matching mouse behaviour.
|
|
235
|
+
const isDisabled = isDateDisabled(this.focusedDate, {
|
|
236
|
+
minDate: this.parseDate(this.minDate),
|
|
237
|
+
maxDate: this.parseDate(this.maxDate),
|
|
238
|
+
disabledDates: this.parseDateArray(this.disabledDates),
|
|
239
|
+
});
|
|
223
240
|
this.handleDayClick({
|
|
224
241
|
date: this.focusedDate,
|
|
225
242
|
dayOfMonth: this.focusedDate.getDate(),
|
|
@@ -229,7 +246,7 @@ const SekiCalendar = class {
|
|
|
229
246
|
isInRange: false,
|
|
230
247
|
isRangeStart: false,
|
|
231
248
|
isRangeEnd: false,
|
|
232
|
-
isDisabled
|
|
249
|
+
isDisabled,
|
|
233
250
|
});
|
|
234
251
|
}
|
|
235
252
|
return;
|
|
@@ -327,7 +344,7 @@ const SekiCalendar = class {
|
|
|
327
344
|
});
|
|
328
345
|
const monthLabel = getMonthLabel(this.displayMonth);
|
|
329
346
|
const yearLabel = getYearLabel(this.displayMonth);
|
|
330
|
-
return (index$1.h("div", { key: '
|
|
347
|
+
return (index$1.h("div", { key: '02f3870b94d5acf0966ee58f6df9c454debf0504', class: "seki-calendar", role: "application", "aria-label": "Calendar", onKeyDown: this.handleKeyDown }, index$1.h("div", { key: '79966e3b0ddbe472309a4a93925efb39a71f7553', class: "seki-calendar__header" }, index$1.h("button", { key: '0defe4096d1c5e42e49c25e2b932fd90468b2314', type: "button", class: "seki-calendar__nav-button", "aria-label": "Go to previous month", onClick: this.handlePreviousMonth }, index$1.h("svg", { key: '58496bf79b7acf41619d722013639ff3ad7620e4', xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, index$1.h("path", { key: 'f631919367d32c2f64d83237225c1405d287b7ec', d: "m15 18-6-6 6-6" }))), index$1.h("div", { key: '42ce8be0497074129c0cbc418962e8cd16aa421e', class: "seki-calendar__heading" }, index$1.h("span", { key: 'd8af2466b5593af31e1dfcac7aac63423ca89439', class: "seki-calendar__month" }, monthLabel), index$1.h("span", { key: '00d175575d2e077f4a748b15cddc2ad32a59f42d', class: "seki-calendar__year" }, yearLabel)), index$1.h("button", { key: 'd42e541f90f6f64a16dee27f0bd3b141cc51b09d', type: "button", class: "seki-calendar__nav-button", "aria-label": "Go to next month", onClick: this.handleNextMonth }, index$1.h("svg", { key: 'e22466278dc8b5c843423bc5e4d1919be87697ad', xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, index$1.h("path", { key: '7d45d7db43e300697412862dcb1a983ba7e2114e', d: "m9 18 6-6-6-6" })))), index$1.h("table", { key: '21a3537b31cc36f175f29f5187df536ef7f13d47', class: "seki-calendar__table", role: "grid", "aria-label": `${monthLabel} ${yearLabel}` }, index$1.h("thead", { key: '976bf05093602c5297a295614bab28980c9929fb' }, index$1.h("tr", { key: '362733daf798b535d94a03e1c30d52c75aeac421', class: "seki-calendar__weekdays" }, this.weekDays.map(day => (index$1.h("th", { class: "seki-calendar__weekday", scope: "col", "aria-label": day }, day.slice(0, 2)))))), index$1.h("tbody", { key: '2764ea48c5e32439655f1990702ba8eb5b6eb3e3' }, weeks.map((week, weekIndex) => (index$1.h("tr", { key: weekIndex, class: "seki-calendar__week" }, week.map((day, dayIndex) => (index$1.h("td", { key: dayIndex, class: "seki-calendar__cell", role: "gridcell", "aria-selected": day.isSelected || day.isRangeStart || day.isRangeEnd, "aria-disabled": day.isDisabled }, index$1.h("button", { type: "button", class: this.getDayClasses(day), tabIndex: day.isSelected || day.isToday ? 0 : -1, disabled: day.isDisabled, onClick: () => this.handleDayClick(day), "aria-label": day.date.toDateString() }, day.dayOfMonth)))))))))));
|
|
331
348
|
}
|
|
332
349
|
get el() { return index$1.getElement(this); }
|
|
333
350
|
static get watchers() { return {
|
|
@@ -75,10 +75,10 @@ const SekiCarouselDots = class {
|
|
|
75
75
|
// Initial state
|
|
76
76
|
await this.updateState();
|
|
77
77
|
// Listen for slide changes
|
|
78
|
-
this.parentCarousel.addEventListener('
|
|
78
|
+
this.parentCarousel.addEventListener('sekiSlideChange', this.handleSlideChange);
|
|
79
79
|
this.unsubscribe = () => {
|
|
80
80
|
var _a;
|
|
81
|
-
(_a = this.parentCarousel) === null || _a === void 0 ? void 0 : _a.removeEventListener('
|
|
81
|
+
(_a = this.parentCarousel) === null || _a === void 0 ? void 0 : _a.removeEventListener('sekiSlideChange', this.handleSlideChange);
|
|
82
82
|
};
|
|
83
83
|
}
|
|
84
84
|
async updateState() {
|
|
@@ -90,7 +90,7 @@ const SekiCarouselDots = class {
|
|
|
90
90
|
}
|
|
91
91
|
render() {
|
|
92
92
|
const dots = Array.from({ length: this.scrollSnapCount }, (_, i) => i);
|
|
93
|
-
return (index.h(index.Host, { key: '
|
|
93
|
+
return (index.h(index.Host, { key: '177e32f3366f093b08997e67f61eafcd5149c543', class: "carousel-dots" }, index.h("div", { key: '2f2e62e001bb23f81d1d4c0d128da5681e4b3261', class: "carousel-dots__container", role: "tablist", "aria-label": "Carousel pagination" }, dots.map((index$1) => (index.h("button", { key: index$1, type: "button", class: {
|
|
94
94
|
'carousel-dots__dot': true,
|
|
95
95
|
'carousel-dots__dot--active': index$1 === this.selectedIndex,
|
|
96
96
|
}, role: "tab", "aria-selected": index$1 === this.selectedIndex ? 'true' : 'false', "aria-label": `Go to slide ${index$1 + 1}`, tabindex: index$1 === this.selectedIndex ? '0' : '-1', onClick: () => this.handleDotClick(index$1), onKeyDown: (e) => this.handleKeyDown(e, index$1) }, index.h("span", { class: "carousel-dots__dot-inner" })))))));
|
|
@@ -43,10 +43,10 @@ const SekiCarouselNext = class {
|
|
|
43
43
|
// Initial state
|
|
44
44
|
await this.updateState();
|
|
45
45
|
// Listen for slide changes
|
|
46
|
-
this.parentCarousel.addEventListener('
|
|
46
|
+
this.parentCarousel.addEventListener('sekiSlideChange', this.handleSlideChange);
|
|
47
47
|
this.unsubscribe = () => {
|
|
48
48
|
var _a;
|
|
49
|
-
(_a = this.parentCarousel) === null || _a === void 0 ? void 0 : _a.removeEventListener('
|
|
49
|
+
(_a = this.parentCarousel) === null || _a === void 0 ? void 0 : _a.removeEventListener('sekiSlideChange', this.handleSlideChange);
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
async updateState() {
|
|
@@ -56,7 +56,7 @@ const SekiCarouselNext = class {
|
|
|
56
56
|
this.disabled = !context.canScrollNext;
|
|
57
57
|
}
|
|
58
58
|
render() {
|
|
59
|
-
return (index.h(index.Host, { key: '
|
|
59
|
+
return (index.h(index.Host, { key: '267ae3c889aa77f1b15a4f9b5e4aa3cf46dab2f7', class: { 'carousel-nav': true, 'carousel-nav--next': true } }, index.h("button", { key: '5f50fac8181f643368c256530ec28996f5f8a164', type: "button", class: "carousel-nav__button", disabled: this.disabled, "aria-label": "Next slide", onClick: this.handleClick }, index.h("svg", { key: '878dac075db363ec2337615a3ec747fc1fc4a9f5', class: "carousel-nav__icon", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("polyline", { key: '55e835953c60b00c8974cef4d3d2258ab8385b95', points: "9 18 15 12 9 6" })))));
|
|
60
60
|
}
|
|
61
61
|
get el() { return index.getElement(this); }
|
|
62
62
|
};
|
|
@@ -43,10 +43,10 @@ const SekiCarouselPrevious = class {
|
|
|
43
43
|
// Initial state
|
|
44
44
|
await this.updateState();
|
|
45
45
|
// Listen for slide changes
|
|
46
|
-
this.parentCarousel.addEventListener('
|
|
46
|
+
this.parentCarousel.addEventListener('sekiSlideChange', this.handleSlideChange);
|
|
47
47
|
this.unsubscribe = () => {
|
|
48
48
|
var _a;
|
|
49
|
-
(_a = this.parentCarousel) === null || _a === void 0 ? void 0 : _a.removeEventListener('
|
|
49
|
+
(_a = this.parentCarousel) === null || _a === void 0 ? void 0 : _a.removeEventListener('sekiSlideChange', this.handleSlideChange);
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
52
|
async updateState() {
|
|
@@ -56,7 +56,7 @@ const SekiCarouselPrevious = class {
|
|
|
56
56
|
this.disabled = !context.canScrollPrev;
|
|
57
57
|
}
|
|
58
58
|
render() {
|
|
59
|
-
return (index.h(index.Host, { key: '
|
|
59
|
+
return (index.h(index.Host, { key: '65561be0cf5c06eb26257de6801bb46f8362b3ac', class: { 'carousel-nav': true, 'carousel-nav--prev': true } }, index.h("button", { key: '55c66c69c07f951d2a11d55b368b769712dc37a4', type: "button", class: "carousel-nav__button", disabled: this.disabled, "aria-label": "Previous slide", onClick: this.handleClick }, index.h("svg", { key: '46693095d37b5ac31662f836a12430afca78baaf', class: "carousel-nav__icon", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, index.h("polyline", { key: '7409dd4ba65445aaa3018204522556d75b37ca5f', points: "15 18 9 12 15 6" })))));
|
|
60
60
|
}
|
|
61
61
|
get el() { return index.getElement(this); }
|
|
62
62
|
};
|
|
@@ -1676,7 +1676,7 @@ const sekiCarouselCss = ":host{--seki-carousel-gap:1rem;--seki-carousel-arrow-si
|
|
|
1676
1676
|
const SekiCarousel = class {
|
|
1677
1677
|
constructor(hostRef) {
|
|
1678
1678
|
index.registerInstance(this, hostRef);
|
|
1679
|
-
this.slideChange = index.createEvent(this, "
|
|
1679
|
+
this.slideChange = index.createEvent(this, "sekiSlideChange");
|
|
1680
1680
|
// =========================================================================
|
|
1681
1681
|
// Props
|
|
1682
1682
|
// =========================================================================
|
|
@@ -1715,6 +1715,8 @@ const SekiCarousel = class {
|
|
|
1715
1715
|
this.emblaApi = null;
|
|
1716
1716
|
this.autoplayInterval = null;
|
|
1717
1717
|
this.viewportEl = null;
|
|
1718
|
+
this.initRafId = null;
|
|
1719
|
+
this.initRetries = 0;
|
|
1718
1720
|
this.handleSelect = () => {
|
|
1719
1721
|
this.updateState();
|
|
1720
1722
|
this.slideChange.emit({
|
|
@@ -1791,6 +1793,10 @@ const SekiCarousel = class {
|
|
|
1791
1793
|
var _a;
|
|
1792
1794
|
themeSync.unregisterThemeSync(this.el);
|
|
1793
1795
|
this.stopAutoplay();
|
|
1796
|
+
if (this.initRafId !== null) {
|
|
1797
|
+
cancelAnimationFrame(this.initRafId);
|
|
1798
|
+
this.initRafId = null;
|
|
1799
|
+
}
|
|
1794
1800
|
(_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
1795
1801
|
}
|
|
1796
1802
|
// =========================================================================
|
|
@@ -1859,10 +1865,20 @@ const SekiCarousel = class {
|
|
|
1859
1865
|
// Get the inner container (seki-carousel-content uses shadow: false)
|
|
1860
1866
|
const containerEl = this.viewportEl.querySelector('.carousel-content');
|
|
1861
1867
|
if (!containerEl) {
|
|
1862
|
-
//
|
|
1863
|
-
|
|
1868
|
+
// Content child hasn't rendered yet. Retry next frame, but bail if the
|
|
1869
|
+
// carousel was disconnected or we've exhausted the retry budget so this
|
|
1870
|
+
// can never become an unbounded, uncancellable rAF loop.
|
|
1871
|
+
if (!this.el.isConnected || this.initRetries >= SekiCarousel.MAX_INIT_RETRIES) {
|
|
1872
|
+
this.initRafId = null;
|
|
1873
|
+
return;
|
|
1874
|
+
}
|
|
1875
|
+
this.initRetries++;
|
|
1876
|
+
this.initRafId = requestAnimationFrame(() => this.initEmbla());
|
|
1864
1877
|
return;
|
|
1865
1878
|
}
|
|
1879
|
+
// Container found — reset retry bookkeeping.
|
|
1880
|
+
this.initRetries = 0;
|
|
1881
|
+
this.initRafId = null;
|
|
1866
1882
|
const options = {
|
|
1867
1883
|
loop: this.loop,
|
|
1868
1884
|
startIndex: this.startIndex,
|
|
@@ -1927,7 +1943,7 @@ const SekiCarousel = class {
|
|
|
1927
1943
|
// Render
|
|
1928
1944
|
// =========================================================================
|
|
1929
1945
|
render() {
|
|
1930
|
-
return (index.h(index.Host, { key: '
|
|
1946
|
+
return (index.h(index.Host, { key: 'af9fa29a7669fc4637111bb9efaf7c9f25c51603', class: "carousel", role: "region", "aria-roledescription": "carousel", "aria-label": this.ariaLabel, tabindex: "0", onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, onFocusIn: this.handleFocusIn, onFocusOut: this.handleFocusOut, onKeyDown: this.handleKeyDown }, index.h("div", { key: 'a5ef6de3283f4e92496a5b0dd2ac34baf93ca22a', class: "carousel__container" }, index.h("slot", { key: 'ddbc533588e097e1dbb76f7867d1426a76cc55d9' })), index.h("div", { key: '393015fda7b8a47826f83408acb704f0f792964b', class: "carousel__live-region", "aria-live": "polite", "aria-atomic": "true" }, `Slide ${this.selectedIndex + 1} of ${this.scrollSnapCount}`)));
|
|
1931
1947
|
}
|
|
1932
1948
|
get el() { return index.getElement(this); }
|
|
1933
1949
|
static get watchers() { return {
|
|
@@ -1937,6 +1953,8 @@ const SekiCarousel = class {
|
|
|
1937
1953
|
"dragFree": ["handleOptionsChange"]
|
|
1938
1954
|
}; }
|
|
1939
1955
|
};
|
|
1956
|
+
// ~1s of frames at 60fps; enough for child content to render without spinning forever.
|
|
1957
|
+
SekiCarousel.MAX_INIT_RETRIES = 60;
|
|
1940
1958
|
SekiCarousel.style = sekiCarouselCss;
|
|
1941
1959
|
|
|
1942
1960
|
exports.seki_carousel = SekiCarousel;
|
|
@@ -8,6 +8,9 @@ const sekiCollapsibleContentCss = ":host{--seki-neutral-50:hsl(0, 0%, 98%);--sek
|
|
|
8
8
|
const SekiCollapsibleContent = class {
|
|
9
9
|
constructor(hostRef) {
|
|
10
10
|
index.registerInstance(this, hostRef);
|
|
11
|
+
this.onCollapsibleOpenChange = () => {
|
|
12
|
+
this.syncWithContext();
|
|
13
|
+
};
|
|
11
14
|
this._isOpen = false;
|
|
12
15
|
this._isAnimating = false;
|
|
13
16
|
this._contentHeight = 0;
|
|
@@ -41,9 +44,8 @@ const SekiCollapsibleContent = class {
|
|
|
41
44
|
attributeFilter: ['data-state'],
|
|
42
45
|
});
|
|
43
46
|
// Also listen for custom events
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
});
|
|
47
|
+
this.collapsibleEl = parent;
|
|
48
|
+
this.collapsibleEl.addEventListener('sekiOpenChange', this.onCollapsibleOpenChange);
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
syncWithContext() {
|
|
@@ -69,10 +71,12 @@ const SekiCollapsibleContent = class {
|
|
|
69
71
|
themeSync.registerThemeSync(this.el);
|
|
70
72
|
}
|
|
71
73
|
disconnectedCallback() {
|
|
74
|
+
var _a;
|
|
72
75
|
themeSync.unregisterThemeSync(this.el);
|
|
73
76
|
if (this.observer) {
|
|
74
77
|
this.observer.disconnect();
|
|
75
78
|
}
|
|
79
|
+
(_a = this.collapsibleEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('sekiOpenChange', this.onCollapsibleOpenChange);
|
|
76
80
|
}
|
|
77
81
|
render() {
|
|
78
82
|
var _a, _b;
|
|
@@ -90,11 +94,11 @@ const SekiCollapsibleContent = class {
|
|
|
90
94
|
else {
|
|
91
95
|
contentStyle.height = '0';
|
|
92
96
|
}
|
|
93
|
-
return (index.h(index.Host, { key: '
|
|
97
|
+
return (index.h(index.Host, { key: 'bd513b01e2255e613b63f87ae98dd0f6f4ef8492', "data-state": this._isOpen ? 'open' : 'closed' }, index.h("div", { key: '787691395dd95623156e80c817198c57b0275e24', ref: (el) => (this.contentRef = el), part: "content", id: contentId, role: "region", "aria-labelledby": triggerId, "aria-hidden": !this._isOpen, class: {
|
|
94
98
|
'collapsible-content': true,
|
|
95
99
|
'collapsible-content--open': this._isOpen,
|
|
96
100
|
'collapsible-content--animating': this._isAnimating,
|
|
97
|
-
}, style: contentStyle }, index.h("div", { key: '
|
|
101
|
+
}, style: contentStyle }, index.h("div", { key: '6d40421fe1a88b650f97b781e9e7f84d96c49b08', class: "collapsible-content-inner" }, index.h("slot", { key: '34c249f5514a6952ae2b8ec9250cdfe81bbbfa0f' })))));
|
|
98
102
|
}
|
|
99
103
|
get el() { return index.getElement(this); }
|
|
100
104
|
};
|
|
@@ -13,6 +13,7 @@ const SekiComboboxItem = class {
|
|
|
13
13
|
this.isSelected = false;
|
|
14
14
|
this.isFocused = false;
|
|
15
15
|
this.itemId = `combobox-item-${Math.random().toString(36).substr(2, 9)}`;
|
|
16
|
+
this.hasRegistered = false;
|
|
16
17
|
this.handleClick = () => {
|
|
17
18
|
if (this.disabled)
|
|
18
19
|
return;
|
|
@@ -42,6 +43,11 @@ const SekiComboboxItem = class {
|
|
|
42
43
|
}
|
|
43
44
|
connectedCallback() {
|
|
44
45
|
themeSync.registerThemeSync(this.el);
|
|
46
|
+
// Re-register on reconnect (after a DOM move). componentWillLoad fires only
|
|
47
|
+
// once; parent registration is idempotent so this never duplicates.
|
|
48
|
+
if (this.hasRegistered) {
|
|
49
|
+
this.registerWithContext();
|
|
50
|
+
}
|
|
45
51
|
}
|
|
46
52
|
disconnectedCallback() {
|
|
47
53
|
themeSync.unregisterThemeSync(this.el);
|
|
@@ -64,6 +70,7 @@ const SekiComboboxItem = class {
|
|
|
64
70
|
disabled: this.disabled,
|
|
65
71
|
};
|
|
66
72
|
ctx.registerItem(item);
|
|
73
|
+
this.hasRegistered = true;
|
|
67
74
|
}
|
|
68
75
|
}
|
|
69
76
|
updateState() {
|
|
@@ -74,12 +81,12 @@ const SekiComboboxItem = class {
|
|
|
74
81
|
}
|
|
75
82
|
}
|
|
76
83
|
render() {
|
|
77
|
-
return (index.h(index.Host, { key: '
|
|
84
|
+
return (index.h(index.Host, { key: 'f319a878642420c67560fbf223202d61ad8fcbea' }, index.h("div", { key: '682f96162227071773c2450f63384d62b7e5c39e', id: this.itemId, class: {
|
|
78
85
|
'combobox-item': true,
|
|
79
86
|
'selected': this.isSelected,
|
|
80
87
|
'focused': this.isFocused,
|
|
81
88
|
'disabled': this.disabled,
|
|
82
|
-
}, role: "option", "aria-selected": this.isSelected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.handleClick, onMouseEnter: this.handleMouseEnter }, index.h("slot", { key: '
|
|
89
|
+
}, role: "option", "aria-selected": this.isSelected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.handleClick, onMouseEnter: this.handleMouseEnter }, index.h("slot", { key: 'f21ad109b3468aa420e57215ea4e3c3ea7152736' }), this.isSelected && (index.h("svg", { key: 'd7625ed734c9f90577793b9ed79182332dc7532b', class: "check-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2" }, index.h("polyline", { key: '649d4c36fc7f251c77a9a4197a8583f9188a2b64', points: "20 6 9 17 4 12" }))))));
|
|
83
90
|
}
|
|
84
91
|
get el() { return index.getElement(this); }
|
|
85
92
|
static get watchers() { return {
|
|
@@ -8,6 +8,10 @@ const sekiCommandGroupCss = ":host{--seki-neutral-50:hsl(0, 0%, 98%);--seki-neut
|
|
|
8
8
|
const SekiCommandGroup = class {
|
|
9
9
|
constructor(hostRef) {
|
|
10
10
|
index.registerInstance(this, hostRef);
|
|
11
|
+
this.onCommandValueChange = () => {
|
|
12
|
+
// Small delay to allow items to update first
|
|
13
|
+
requestAnimationFrame(() => this.updateVisibility());
|
|
14
|
+
};
|
|
11
15
|
/**
|
|
12
16
|
* Show even when all items are filtered out
|
|
13
17
|
*/
|
|
@@ -33,19 +37,17 @@ const SekiCommandGroup = class {
|
|
|
33
37
|
this._hasVisibleItems = items.some((item) => { var _a, _b; return (_b = (_a = item.isVisible) === null || _a === void 0 ? void 0 : _a.call(item)) !== null && _b !== void 0 ? _b : true; });
|
|
34
38
|
}
|
|
35
39
|
componentDidLoad() {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
// Small delay to allow items to update first
|
|
40
|
-
requestAnimationFrame(() => this.updateVisibility());
|
|
41
|
-
});
|
|
42
|
-
}
|
|
40
|
+
var _a, _b;
|
|
41
|
+
this.commandEl = (_a = this.el.closest('seki-command')) !== null && _a !== void 0 ? _a : undefined;
|
|
42
|
+
(_b = this.commandEl) === null || _b === void 0 ? void 0 : _b.addEventListener('sekiValueChange', this.onCommandValueChange);
|
|
43
43
|
}
|
|
44
44
|
connectedCallback() {
|
|
45
45
|
themeSync.registerThemeSync(this.el);
|
|
46
46
|
}
|
|
47
47
|
disconnectedCallback() {
|
|
48
|
+
var _a;
|
|
48
49
|
themeSync.unregisterThemeSync(this.el);
|
|
50
|
+
(_a = this.commandEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('sekiValueChange', this.onCommandValueChange);
|
|
49
51
|
}
|
|
50
52
|
render() {
|
|
51
53
|
const shouldShow = this.forceMount || this._hasVisibleItems;
|
|
@@ -8,6 +8,18 @@ const sekiContextMenuContentCss = ":host{--seki-neutral-50:hsl(0, 0%, 98%);--sek
|
|
|
8
8
|
const SekiContextMenuContent = class {
|
|
9
9
|
constructor(hostRef) {
|
|
10
10
|
index.registerInstance(this, hostRef);
|
|
11
|
+
this.onMenuOpenChange = () => {
|
|
12
|
+
var _a;
|
|
13
|
+
const context = this.getContext();
|
|
14
|
+
this._isOpen = (_a = context === null || context === void 0 ? void 0 : context.isOpen) !== null && _a !== void 0 ? _a : false;
|
|
15
|
+
if (this._isOpen) {
|
|
16
|
+
this._focusedIndex = 0;
|
|
17
|
+
requestAnimationFrame(() => {
|
|
18
|
+
this.updatePosition();
|
|
19
|
+
this.focusItem(0);
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
};
|
|
11
23
|
/**
|
|
12
24
|
* Internal open state
|
|
13
25
|
*/
|
|
@@ -37,21 +49,9 @@ const SekiContextMenuContent = class {
|
|
|
37
49
|
this._isOpen = (_a = context === null || context === void 0 ? void 0 : context.isOpen) !== null && _a !== void 0 ? _a : false;
|
|
38
50
|
}
|
|
39
51
|
componentDidLoad() {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
var _a;
|
|
44
|
-
const context = this.getContext();
|
|
45
|
-
this._isOpen = (_a = context === null || context === void 0 ? void 0 : context.isOpen) !== null && _a !== void 0 ? _a : false;
|
|
46
|
-
if (this._isOpen) {
|
|
47
|
-
this._focusedIndex = 0;
|
|
48
|
-
requestAnimationFrame(() => {
|
|
49
|
-
this.updatePosition();
|
|
50
|
-
this.focusItem(0);
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
});
|
|
54
|
-
}
|
|
52
|
+
var _a, _b;
|
|
53
|
+
this.menuEl = (_a = this.el.closest('seki-context-menu')) !== null && _a !== void 0 ? _a : undefined;
|
|
54
|
+
(_b = this.menuEl) === null || _b === void 0 ? void 0 : _b.addEventListener('sekiOpenChange', this.onMenuOpenChange);
|
|
55
55
|
}
|
|
56
56
|
componentDidRender() {
|
|
57
57
|
if (this._isOpen) {
|
|
@@ -131,7 +131,9 @@ const SekiContextMenuContent = class {
|
|
|
131
131
|
themeSync.registerThemeSync(this.el);
|
|
132
132
|
}
|
|
133
133
|
disconnectedCallback() {
|
|
134
|
+
var _a;
|
|
134
135
|
themeSync.unregisterThemeSync(this.el);
|
|
136
|
+
(_a = this.menuEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('sekiOpenChange', this.onMenuOpenChange);
|
|
135
137
|
}
|
|
136
138
|
render() {
|
|
137
139
|
if (!this._isOpen) {
|
|
@@ -92,7 +92,11 @@ const SekiContextMenu = class {
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
setupClickOutside() {
|
|
95
|
-
|
|
95
|
+
// Clear any pending timeout/handler first so a rapid open→close→open cannot
|
|
96
|
+
// leave a leaked listener or double-schedule.
|
|
97
|
+
this.removeClickOutside();
|
|
98
|
+
this.clickOutsideTimeout = setTimeout(() => {
|
|
99
|
+
this.clickOutsideTimeout = undefined;
|
|
96
100
|
this.clickOutsideHandler = (e) => {
|
|
97
101
|
const path = e.composedPath();
|
|
98
102
|
if (!path.includes(this.el)) {
|
|
@@ -103,6 +107,11 @@ const SekiContextMenu = class {
|
|
|
103
107
|
}, 0);
|
|
104
108
|
}
|
|
105
109
|
removeClickOutside() {
|
|
110
|
+
// Cancel a still-pending registration so it can't fire after close/disconnect.
|
|
111
|
+
if (this.clickOutsideTimeout !== undefined) {
|
|
112
|
+
clearTimeout(this.clickOutsideTimeout);
|
|
113
|
+
this.clickOutsideTimeout = undefined;
|
|
114
|
+
}
|
|
106
115
|
if (this.clickOutsideHandler) {
|
|
107
116
|
document.removeEventListener('click', this.clickOutsideHandler, { capture: true });
|
|
108
117
|
this.clickOutsideHandler = undefined;
|
|
@@ -136,7 +145,7 @@ const SekiContextMenu = class {
|
|
|
136
145
|
this.removeClickOutside();
|
|
137
146
|
}
|
|
138
147
|
render() {
|
|
139
|
-
return (index.h(index.Host, { key: '
|
|
148
|
+
return (index.h(index.Host, { key: '5b5df7991cfde56635d4ace1d7f3728effac91fd', "data-state": this._isOpen ? 'open' : 'closed' }, index.h("div", { key: '0ab469157d55ed82e05711a8a6f8d972b74bc4a1', part: "context-menu", class: "context-menu" }, index.h("slot", { key: '1ffbe73e2be43d3f3434e1712c47481c3dc62500' }))));
|
|
140
149
|
}
|
|
141
150
|
get el() { return index.getElement(this); }
|
|
142
151
|
static get watchers() { return {
|