@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
|
@@ -21,10 +21,10 @@ const SekiTableRow$1 = /*@__PURE__*/ proxyCustomElement(class SekiTableRow exten
|
|
|
21
21
|
unregisterThemeSync(this.el);
|
|
22
22
|
}
|
|
23
23
|
render() {
|
|
24
|
-
return (h("tr", { key: '
|
|
24
|
+
return (h("tr", { key: '38970f379cb5701bb4bc65c5136375cbb2e3fc15', class: {
|
|
25
25
|
'seki-table-row': true,
|
|
26
26
|
'seki-table-row--selected': this.selected,
|
|
27
|
-
}, "data-state": this.selected ? 'selected' : undefined }, h("slot", { key: '
|
|
27
|
+
}, "data-state": this.selected ? 'selected' : undefined }, h("slot", { key: 'af31af867841f0c129a8ae15863703b2d5e28dcc' })));
|
|
28
28
|
}
|
|
29
29
|
get el() { return this; }
|
|
30
30
|
static get style() { return sekiTableRowCss; }
|
|
@@ -17,7 +17,7 @@ const SekiTable$1 = /*@__PURE__*/ proxyCustomElement(class SekiTable extends H {
|
|
|
17
17
|
unregisterThemeSync(this.el);
|
|
18
18
|
}
|
|
19
19
|
render() {
|
|
20
|
-
return (h("div", { key: '
|
|
20
|
+
return (h("div", { key: 'd70c0835e8f47912319255f805041d34f4554ed9', class: "seki-table-container" }, h("table", { key: 'a686da7245cbf7bc97f2bf6c96e0f7b3f04513fc', class: "seki-table", role: "table", "aria-label": this.ariaLabel }, h("slot", { key: '867c48b3a836259277b9d6f54fd17685bda5bccb' }))));
|
|
21
21
|
}
|
|
22
22
|
get el() { return this; }
|
|
23
23
|
static get style() { return sekiTableCss; }
|
|
@@ -10,6 +10,11 @@ const SekiTabsContent$1 = /*@__PURE__*/ proxyCustomElement(class SekiTabsContent
|
|
|
10
10
|
}
|
|
11
11
|
this.__attachShadow();
|
|
12
12
|
this._isSelected = false;
|
|
13
|
+
this.onTabsValueChange = () => {
|
|
14
|
+
var _a;
|
|
15
|
+
const context = this.getContext();
|
|
16
|
+
this._isSelected = (_a = context === null || context === void 0 ? void 0 : context.isSelected(this.value)) !== null && _a !== void 0 ? _a : false;
|
|
17
|
+
};
|
|
13
18
|
this.instanceId = ++SekiTabsContent.instanceCount;
|
|
14
19
|
}
|
|
15
20
|
getContext() {
|
|
@@ -29,28 +34,25 @@ const SekiTabsContent$1 = /*@__PURE__*/ proxyCustomElement(class SekiTabsContent
|
|
|
29
34
|
this._isSelected = (_a = context === null || context === void 0 ? void 0 : context.isSelected(this.value)) !== null && _a !== void 0 ? _a : false;
|
|
30
35
|
}
|
|
31
36
|
componentDidLoad() {
|
|
37
|
+
var _a, _b;
|
|
32
38
|
// Listen for value changes from parent tabs
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
tabs.addEventListener('sekiValueChange', () => {
|
|
36
|
-
var _a;
|
|
37
|
-
const context = this.getContext();
|
|
38
|
-
this._isSelected = (_a = context === null || context === void 0 ? void 0 : context.isSelected(this.value)) !== null && _a !== void 0 ? _a : false;
|
|
39
|
-
});
|
|
40
|
-
}
|
|
39
|
+
this.tabsEl = (_a = this.el.closest('seki-tabs')) !== null && _a !== void 0 ? _a : undefined;
|
|
40
|
+
(_b = this.tabsEl) === null || _b === void 0 ? void 0 : _b.addEventListener('sekiValueChange', this.onTabsValueChange);
|
|
41
41
|
}
|
|
42
42
|
connectedCallback() {
|
|
43
43
|
registerThemeSync(this.el);
|
|
44
44
|
}
|
|
45
45
|
disconnectedCallback() {
|
|
46
|
+
var _a;
|
|
46
47
|
unregisterThemeSync(this.el);
|
|
48
|
+
(_a = this.tabsEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('sekiValueChange', this.onTabsValueChange);
|
|
47
49
|
}
|
|
48
50
|
render() {
|
|
49
51
|
const isSelected = this._isSelected;
|
|
50
|
-
return (h(Host, { key: '
|
|
52
|
+
return (h(Host, { key: '7af297cd54e8bea988a1c9f070993150350d9703', "data-state": isSelected ? 'active' : 'inactive', role: "tabpanel", id: this.panelId, "aria-labelledby": this.triggerId, hidden: !isSelected, tabindex: isSelected ? 0 : -1 }, h("div", { key: '08c864b57ccd71d87470810c9b6cb7599143abae', part: "content", class: {
|
|
51
53
|
'tabs-content': true,
|
|
52
54
|
'tabs-content--active': isSelected,
|
|
53
|
-
} }, h("slot", { key: '
|
|
55
|
+
} }, h("slot", { key: '2d19c0f1bf8fbef4ce6f8ab374f921f4f0fa4ac1' }))));
|
|
54
56
|
}
|
|
55
57
|
get el() { return this; }
|
|
56
58
|
static get style() { return sekiTabsContentCss; }
|
|
@@ -25,10 +25,10 @@ const SekiTabsList$1 = /*@__PURE__*/ proxyCustomElement(class SekiTabsList exten
|
|
|
25
25
|
var _a;
|
|
26
26
|
const context = this.getContext();
|
|
27
27
|
const orientation = (_a = context === null || context === void 0 ? void 0 : context.orientation) !== null && _a !== void 0 ? _a : 'horizontal';
|
|
28
|
-
return (h(Host, { key: '
|
|
28
|
+
return (h(Host, { key: '32b805b2ce5b203dbd5a939d90dae450999dc409', "data-orientation": orientation }, h("div", { key: '544a4b05e3cd41768e17c276bec94c2b9d33eabc', part: "list", role: "tablist", "aria-orientation": orientation, class: {
|
|
29
29
|
'tabs-list': true,
|
|
30
30
|
[`tabs-list--${orientation}`]: true,
|
|
31
|
-
} }, h("slot", { key: '
|
|
31
|
+
} }, h("slot", { key: '3f6b2bb6f5bcbcfeb2065341e0eedde8c6a967c6' }))));
|
|
32
32
|
}
|
|
33
33
|
get el() { return this; }
|
|
34
34
|
static get style() { return sekiTabsListCss; }
|
|
@@ -14,6 +14,11 @@ const SekiTabsTrigger$1 = /*@__PURE__*/ proxyCustomElement(class SekiTabsTrigger
|
|
|
14
14
|
*/
|
|
15
15
|
this.disabled = false;
|
|
16
16
|
this._isSelected = false;
|
|
17
|
+
this.onTabsValueChange = () => {
|
|
18
|
+
var _a;
|
|
19
|
+
const context = this.getContext();
|
|
20
|
+
this._isSelected = (_a = context === null || context === void 0 ? void 0 : context.isSelected(this.value)) !== null && _a !== void 0 ? _a : false;
|
|
21
|
+
};
|
|
17
22
|
this.instanceId = ++SekiTabsTrigger.instanceCount;
|
|
18
23
|
}
|
|
19
24
|
getContext() {
|
|
@@ -33,15 +38,10 @@ const SekiTabsTrigger$1 = /*@__PURE__*/ proxyCustomElement(class SekiTabsTrigger
|
|
|
33
38
|
this._isSelected = (_a = context === null || context === void 0 ? void 0 : context.isSelected(this.value)) !== null && _a !== void 0 ? _a : false;
|
|
34
39
|
}
|
|
35
40
|
componentDidLoad() {
|
|
41
|
+
var _a, _b;
|
|
36
42
|
// Listen for value changes from parent tabs
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
tabs.addEventListener('sekiValueChange', () => {
|
|
40
|
-
var _a;
|
|
41
|
-
const context = this.getContext();
|
|
42
|
-
this._isSelected = (_a = context === null || context === void 0 ? void 0 : context.isSelected(this.value)) !== null && _a !== void 0 ? _a : false;
|
|
43
|
-
});
|
|
44
|
-
}
|
|
43
|
+
this.tabsEl = (_a = this.el.closest('seki-tabs')) !== null && _a !== void 0 ? _a : undefined;
|
|
44
|
+
(_b = this.tabsEl) === null || _b === void 0 ? void 0 : _b.addEventListener('sekiValueChange', this.onTabsValueChange);
|
|
45
45
|
}
|
|
46
46
|
handleClick() {
|
|
47
47
|
if (this.disabled)
|
|
@@ -157,14 +157,16 @@ const SekiTabsTrigger$1 = /*@__PURE__*/ proxyCustomElement(class SekiTabsTrigger
|
|
|
157
157
|
registerThemeSync(this.el);
|
|
158
158
|
}
|
|
159
159
|
disconnectedCallback() {
|
|
160
|
+
var _a;
|
|
160
161
|
unregisterThemeSync(this.el);
|
|
162
|
+
(_a = this.tabsEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('sekiValueChange', this.onTabsValueChange);
|
|
161
163
|
}
|
|
162
164
|
render() {
|
|
163
165
|
const isSelected = this._isSelected;
|
|
164
|
-
return (h(Host, { key: '
|
|
166
|
+
return (h(Host, { key: 'c5ac6f44d2498dc723c082b5a3cf8cc0514345c3', "data-state": isSelected ? 'active' : 'inactive', "data-disabled": this.disabled ? '' : undefined, tabindex: this.disabled ? -1 : 0, role: "tab", "aria-selected": isSelected ? 'true' : 'false', "aria-controls": this.panelId }, h("button", { key: 'd90ac732efef5ed590cbc7c5be482e6173216ed2', part: "trigger", type: "button", id: this.triggerId, class: {
|
|
165
167
|
'tabs-trigger': true,
|
|
166
168
|
'tabs-trigger--active': isSelected,
|
|
167
|
-
}, disabled: this.disabled, tabindex: -1 }, h("slot", { key: '
|
|
169
|
+
}, disabled: this.disabled, tabindex: -1 }, h("slot", { key: '76ffd78ccd3c355c1dcc41cab0fe0fe59b88bdff' }))));
|
|
168
170
|
}
|
|
169
171
|
get el() { return this; }
|
|
170
172
|
static get style() { return sekiTabsTriggerCss; }
|
|
@@ -69,10 +69,10 @@ const SekiTabs$1 = /*@__PURE__*/ proxyCustomElement(class SekiTabs extends H {
|
|
|
69
69
|
unregisterThemeSync(this.el);
|
|
70
70
|
}
|
|
71
71
|
render() {
|
|
72
|
-
return (h(Host, { key: '
|
|
72
|
+
return (h(Host, { key: '7ad13d3b99af4bbf3c0ca5e843eccc6161a7ca87', "data-orientation": this.orientation }, h("div", { key: '145c03db641722f8f63b65c9e8d5ec92da6f76c3', part: "tabs", class: {
|
|
73
73
|
'tabs': true,
|
|
74
74
|
[`tabs--${this.orientation}`]: true,
|
|
75
|
-
} }, h("slot", { key: '
|
|
75
|
+
} }, h("slot", { key: 'd12772fe0afda9d031e1a5ed65ef37226fe09598' }))));
|
|
76
76
|
}
|
|
77
77
|
get el() { return this; }
|
|
78
78
|
static get watchers() { return {
|
|
@@ -92,7 +92,7 @@ const SekiTextarea$1 = /*@__PURE__*/ proxyCustomElement(class SekiTextarea exten
|
|
|
92
92
|
unregisterThemeSync(this.el);
|
|
93
93
|
}
|
|
94
94
|
render() {
|
|
95
|
-
return (h("textarea", { key: '
|
|
95
|
+
return (h("textarea", { key: 'e36fc95f58c1d267267d35db9be1774951c9c1d7', value: this.value, placeholder: this.placeholder, disabled: this.disabled, readOnly: this.readonly, required: this.required, name: this.name, rows: this.rows, cols: this.cols, minlength: this.minlength, maxlength: this.maxlength, autocomplete: this.autocomplete, class: `textarea textarea--resize-${this.resize}${this.invalid ? ' textarea--invalid' : ''}`, "aria-label": this.ariaLabel, "aria-describedby": this.ariaDescribedby, "aria-invalid": this.invalid ? 'true' : null, "aria-disabled": this.disabled ? 'true' : null, onInput: this.handleInput, onChange: this.handleChange, onFocus: this.handleFocus, onBlur: this.handleBlur }));
|
|
96
96
|
}
|
|
97
97
|
static get formAssociated() { return true; }
|
|
98
98
|
get el() { return this; }
|
|
@@ -156,7 +156,7 @@ const SekiToggleGroup$1 = /*@__PURE__*/ proxyCustomElement(class SekiToggleGroup
|
|
|
156
156
|
unregisterThemeSync(this.el);
|
|
157
157
|
}
|
|
158
158
|
render() {
|
|
159
|
-
return (h(Host, { key: '
|
|
159
|
+
return (h(Host, { key: 'a58fde3e3b41fd41a7f0d11b860ddf0fdd60855c', role: "group", "aria-label": this.ariaLabel, "aria-orientation": this.orientation }, h("slot", { key: '039c82e1a77c6c2c6965c94df169ec000119f833' })));
|
|
160
160
|
}
|
|
161
161
|
get el() { return this; }
|
|
162
162
|
static get watchers() { return {
|
|
@@ -154,7 +154,7 @@ const SekiToggle$1 = /*@__PURE__*/ proxyCustomElement(class SekiToggle extends H
|
|
|
154
154
|
tabIndex = focusedValue === this.value ? 0 : -1;
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
|
-
return (h(Host, { key: '
|
|
157
|
+
return (h(Host, { key: 'b467caa09837abd63a820bef7a05d64f1e206efe', "data-state": dataState, "data-disabled": effectiveDisabled ? '' : null }, h("button", { key: '617420144589f944253aed3c88556aa0f3db73b7', type: "button", class: `toggle toggle--${effectiveVariant} toggle--${effectiveSize}`, part: "toggle", "aria-pressed": isPressed ? 'true' : 'false', "aria-disabled": effectiveDisabled ? 'true' : undefined, "aria-label": this.ariaLabel || undefined, disabled: effectiveDisabled, tabindex: tabIndex, onClick: this.handleClick }, h("slot", { key: '29ea33cb06d270e999dd41e1fcfe0bd58626f9ce' }))));
|
|
158
158
|
}
|
|
159
159
|
get el() { return this; }
|
|
160
160
|
static get style() { return sekiToggleCss; }
|
|
@@ -51,6 +51,7 @@ const SekiTooltip$1 = /*@__PURE__*/ proxyCustomElement(class SekiTooltip extends
|
|
|
51
51
|
this.longPressTimer = null;
|
|
52
52
|
this.touchStartX = 0;
|
|
53
53
|
this.touchStartY = 0;
|
|
54
|
+
this.hasLoaded = false;
|
|
54
55
|
/**
|
|
55
56
|
* Handle mouse enter on trigger
|
|
56
57
|
*/
|
|
@@ -305,10 +306,11 @@ const SekiTooltip$1 = /*@__PURE__*/ proxyCustomElement(class SekiTooltip extends
|
|
|
305
306
|
trigger.addEventListener('touchend', this.onTriggerTouchEnd);
|
|
306
307
|
// Escape key on document
|
|
307
308
|
document.addEventListener('keydown', this.onEscapeKey);
|
|
308
|
-
// Apply aria-describedby to trigger
|
|
309
|
+
// Apply aria-describedby to trigger (idempotent — keep the existing id so a
|
|
310
|
+
// re-attach after a DOM move doesn't regenerate it).
|
|
309
311
|
const contentSlot = this.el.querySelector('[slot="content"]');
|
|
310
312
|
if (contentSlot) {
|
|
311
|
-
const contentId = `tooltip-${Math.random().toString(36).substr(2, 9)}`;
|
|
313
|
+
const contentId = contentSlot.id || `tooltip-${Math.random().toString(36).substr(2, 9)}`;
|
|
312
314
|
contentSlot.id = contentId;
|
|
313
315
|
trigger.setAttribute('aria-describedby', contentId);
|
|
314
316
|
}
|
|
@@ -327,12 +329,23 @@ const SekiTooltip$1 = /*@__PURE__*/ proxyCustomElement(class SekiTooltip extends
|
|
|
327
329
|
trigger.removeEventListener('touchstart', this.onTriggerTouchStart);
|
|
328
330
|
trigger.removeEventListener('touchmove', this.onTriggerTouchMove);
|
|
329
331
|
trigger.removeEventListener('touchend', this.onTriggerTouchEnd);
|
|
332
|
+
// Escape key was registered on document in attachTriggerListeners; remove it
|
|
333
|
+
// here so it does not leak (and keep firing) after the tooltip is detached.
|
|
334
|
+
document.removeEventListener('keydown', this.onEscapeKey);
|
|
330
335
|
}
|
|
331
336
|
componentDidLoad() {
|
|
337
|
+
this.hasLoaded = true;
|
|
332
338
|
this.attachTriggerListeners();
|
|
333
339
|
}
|
|
334
340
|
connectedCallback() {
|
|
335
341
|
registerThemeSync(this.el);
|
|
342
|
+
// Re-attach on reconnect (e.g. the element was moved in the DOM). On first
|
|
343
|
+
// connect this is a no-op because children aren't ready yet — componentDidLoad
|
|
344
|
+
// handles the initial attach. addEventListener with the same handler refs is
|
|
345
|
+
// idempotent, so this never double-binds.
|
|
346
|
+
if (this.hasLoaded) {
|
|
347
|
+
this.attachTriggerListeners();
|
|
348
|
+
}
|
|
336
349
|
}
|
|
337
350
|
disconnectedCallback() {
|
|
338
351
|
unregisterThemeSync(this.el);
|
|
@@ -346,7 +359,7 @@ const SekiTooltip$1 = /*@__PURE__*/ proxyCustomElement(class SekiTooltip extends
|
|
|
346
359
|
clearTimeout(this.longPressTimer);
|
|
347
360
|
}
|
|
348
361
|
render() {
|
|
349
|
-
return (h("div", { key: '
|
|
362
|
+
return (h("div", { key: 'b8f98d6cf19b3bb54b78f2f556055e9bf0333d89', class: `tooltip ${this.isVisible ? 'tooltip--visible' : ''}`, role: "tooltip" }, h("slot", { key: 'fc7995ac5e2570ff72e5e0a66cb014687c9e9c93', name: "content" }), h("div", { key: '553c15d7abdf477ed87d5b5d728b0a26c5a779e5', class: "tooltip-arrow" })));
|
|
350
363
|
}
|
|
351
364
|
get el() { return this; }
|
|
352
365
|
static get style() { return sekiTooltipCss; }
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const NOOP_MIRROR = { disconnect() { } };
|
|
2
|
+
function mirrorAncestorAttributes(host, ancestorSelector, attributes, options = {}) {
|
|
3
|
+
const ancestor = host.closest(ancestorSelector);
|
|
4
|
+
if (!ancestor)
|
|
5
|
+
return NOOP_MIRROR;
|
|
6
|
+
const sync = () => {
|
|
7
|
+
for (const attr of attributes) {
|
|
8
|
+
const value = ancestor.getAttribute(attr);
|
|
9
|
+
if (value === null) {
|
|
10
|
+
host.removeAttribute(attr);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
host.setAttribute(attr, value);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
// Reflect current state, then keep it in sync with future attribute changes.
|
|
18
|
+
sync();
|
|
19
|
+
// MutationObserver is absent in non-DOM/test environments; the initial sync
|
|
20
|
+
// still runs, we just skip live updates there.
|
|
21
|
+
let observer;
|
|
22
|
+
if (typeof MutationObserver !== 'undefined') {
|
|
23
|
+
observer = new MutationObserver(sync);
|
|
24
|
+
observer.observe(ancestor, { attributes: true, attributeFilter: attributes });
|
|
25
|
+
}
|
|
26
|
+
let onEnter;
|
|
27
|
+
let onLeave;
|
|
28
|
+
if (options.trackHover) {
|
|
29
|
+
onEnter = () => host.setAttribute('data-parent-hover', '');
|
|
30
|
+
onLeave = () => host.removeAttribute('data-parent-hover');
|
|
31
|
+
ancestor.addEventListener('mouseenter', onEnter);
|
|
32
|
+
ancestor.addEventListener('mouseleave', onLeave);
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
disconnect() {
|
|
36
|
+
observer === null || observer === void 0 ? void 0 : observer.disconnect();
|
|
37
|
+
if (onEnter)
|
|
38
|
+
ancestor.removeEventListener('mouseenter', onEnter);
|
|
39
|
+
if (onLeave)
|
|
40
|
+
ancestor.removeEventListener('mouseleave', onLeave);
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export { mirrorAncestorAttributes as m };
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Focus trap utility for dialog and modal components.
|
|
3
|
+
*
|
|
4
|
+
* These helpers walk the *composed* (flattened) tree rather than a single
|
|
5
|
+
* shadow root. Dialog content is projected through a `<slot>`, so the actual
|
|
6
|
+
* focusable elements live in the host's light DOM — and custom elements like
|
|
7
|
+
* `seki-button` keep their focusable `<button>` inside their own shadow root.
|
|
8
|
+
* A plain `container.querySelectorAll()` never sees either, which is why the
|
|
9
|
+
* trap previously matched nothing.
|
|
10
|
+
*/
|
|
11
|
+
const FOCUSABLE_SELECTOR = [
|
|
12
|
+
'a[href]',
|
|
13
|
+
'button:not([disabled])',
|
|
14
|
+
'input:not([disabled])',
|
|
15
|
+
'select:not([disabled])',
|
|
16
|
+
'textarea:not([disabled])',
|
|
17
|
+
'[tabindex]:not([tabindex="-1"])',
|
|
18
|
+
'audio[controls]',
|
|
19
|
+
'video[controls]',
|
|
20
|
+
'[contenteditable]:not([contenteditable="false"])',
|
|
21
|
+
].join(', ');
|
|
22
|
+
function isFocusableCandidate(el) {
|
|
23
|
+
return el instanceof HTMLElement && el.matches(FOCUSABLE_SELECTOR);
|
|
24
|
+
}
|
|
25
|
+
function isHidden(el) {
|
|
26
|
+
return (el.hidden === true ||
|
|
27
|
+
el.getAttribute('aria-hidden') === 'true');
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Recursively collect focusable elements in composed-tree (DOM) order,
|
|
31
|
+
* descending through shadow roots and resolving `<slot>` assignments.
|
|
32
|
+
*/
|
|
33
|
+
function collectFocusable(node, out) {
|
|
34
|
+
// Resolve slots to their assigned (projected) elements.
|
|
35
|
+
if (node.tagName === 'SLOT') {
|
|
36
|
+
const assigned = node.assignedElements({ flatten: true });
|
|
37
|
+
for (const el of assigned) {
|
|
38
|
+
collectFocusable(el, out);
|
|
39
|
+
}
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
// Skip hidden subtrees entirely.
|
|
43
|
+
if (isHidden(node))
|
|
44
|
+
return;
|
|
45
|
+
if (isFocusableCandidate(node)) {
|
|
46
|
+
out.push(node);
|
|
47
|
+
}
|
|
48
|
+
// When an element hosts a shadow root, its rendered subtree is the shadow
|
|
49
|
+
// tree (light children only surface via slots inside it). Otherwise walk
|
|
50
|
+
// the light children directly.
|
|
51
|
+
const children = node.shadowRoot
|
|
52
|
+
? Array.from(node.shadowRoot.children)
|
|
53
|
+
: Array.from(node.children);
|
|
54
|
+
for (const child of children) {
|
|
55
|
+
collectFocusable(child, out);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Get all focusable elements within a container, crossing shadow-DOM and slot
|
|
60
|
+
* boundaries so projected content and nested web components are included.
|
|
61
|
+
*/
|
|
62
|
+
function getFocusableElements(container) {
|
|
63
|
+
var _a;
|
|
64
|
+
const out = [];
|
|
65
|
+
const root = (_a = container.shadowRoot) !== null && _a !== void 0 ? _a : container;
|
|
66
|
+
for (const child of Array.from(root.children)) {
|
|
67
|
+
collectFocusable(child, out);
|
|
68
|
+
}
|
|
69
|
+
return out;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Resolve the deepest active element, descending into nested shadow roots.
|
|
73
|
+
* `document.activeElement` only reports the outermost shadow host.
|
|
74
|
+
*/
|
|
75
|
+
function getDeepActiveElement() {
|
|
76
|
+
var _a;
|
|
77
|
+
let active = document.activeElement;
|
|
78
|
+
while ((_a = active === null || active === void 0 ? void 0 : active.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement) {
|
|
79
|
+
active = active.shadowRoot.activeElement;
|
|
80
|
+
}
|
|
81
|
+
return active;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Focus the first focusable element in a container.
|
|
85
|
+
*/
|
|
86
|
+
function focusFirst(container) {
|
|
87
|
+
const focusables = getFocusableElements(container);
|
|
88
|
+
if (focusables.length > 0) {
|
|
89
|
+
focusables[0].focus();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Trap focus within a container during Tab key navigation.
|
|
94
|
+
*/
|
|
95
|
+
function trapFocus(container, event) {
|
|
96
|
+
if (event.key !== 'Tab')
|
|
97
|
+
return;
|
|
98
|
+
const focusables = getFocusableElements(container);
|
|
99
|
+
if (focusables.length === 0) {
|
|
100
|
+
// Nothing focusable inside — keep focus from escaping the modal.
|
|
101
|
+
event.preventDefault();
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const first = focusables[0];
|
|
105
|
+
const last = focusables[focusables.length - 1];
|
|
106
|
+
const active = getDeepActiveElement();
|
|
107
|
+
// `contains()` does not cross shadow boundaries, so detect "escaped" focus by
|
|
108
|
+
// membership in the composed focusables list instead.
|
|
109
|
+
const isInside = active !== null && focusables.indexOf(active) !== -1;
|
|
110
|
+
if (event.shiftKey) {
|
|
111
|
+
if (active === first || !isInside) {
|
|
112
|
+
event.preventDefault();
|
|
113
|
+
last.focus();
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
if (active === last || !isInside) {
|
|
118
|
+
event.preventDefault();
|
|
119
|
+
first.focus();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
// Body scroll lock (reference-counted so stacked modals don't unlock early).
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
let scrollLockCount = 0;
|
|
127
|
+
let savedOverflow = '';
|
|
128
|
+
let savedPaddingRight = '';
|
|
129
|
+
/**
|
|
130
|
+
* Lock body scroll when a modal opens. Safe to nest: the lock is only applied
|
|
131
|
+
* on the first call and the original inline styles are restored on the last
|
|
132
|
+
* matching unlock.
|
|
133
|
+
*/
|
|
134
|
+
function lockBodyScroll() {
|
|
135
|
+
if (scrollLockCount === 0) {
|
|
136
|
+
savedOverflow = document.body.style.overflow;
|
|
137
|
+
savedPaddingRight = document.body.style.paddingRight;
|
|
138
|
+
const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
139
|
+
document.body.style.overflow = 'hidden';
|
|
140
|
+
if (scrollbarWidth > 0) {
|
|
141
|
+
document.body.style.paddingRight = `${scrollbarWidth}px`;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
scrollLockCount++;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Unlock body scroll when a modal closes. Only the final unlock restores the
|
|
148
|
+
* original inline styles.
|
|
149
|
+
*/
|
|
150
|
+
function unlockBodyScroll() {
|
|
151
|
+
if (scrollLockCount === 0)
|
|
152
|
+
return;
|
|
153
|
+
scrollLockCount--;
|
|
154
|
+
if (scrollLockCount === 0) {
|
|
155
|
+
document.body.style.overflow = savedOverflow;
|
|
156
|
+
document.body.style.paddingRight = savedPaddingRight;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export { focusFirst as f, lockBodyScroll as l, trapFocus as t, unlockBodyScroll as u };
|