@sekiui/elements 0.0.61 → 0.0.64
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/index.js +29 -3
- package/dist/cdn/p-BEWxzaxp.js +22503 -0
- package/dist/{components/p-D2lrrniN.js → cdn/p-BF5nneSK.js} +6 -3
- package/dist/cdn/p-BPP9Iksx.js +190 -0
- package/dist/cdn/p-CP7ZtKCE.js +71 -0
- package/dist/cdn/p-DIeC6vvw.js +111 -0
- package/dist/cdn/p-JroBYg3Q.js +33 -0
- package/dist/cdn/seki-accordion-content.d.ts +11 -0
- package/dist/cdn/seki-accordion-content.js +105 -0
- package/dist/cdn/seki-accordion-item.d.ts +11 -0
- package/dist/cdn/seki-accordion-item.js +93 -0
- package/dist/cdn/seki-accordion-trigger.d.ts +11 -0
- package/dist/cdn/seki-accordion-trigger.js +134 -0
- package/dist/cdn/seki-accordion.d.ts +11 -0
- package/dist/cdn/seki-accordion.js +138 -0
- package/dist/cdn/seki-alert-description.d.ts +11 -0
- package/dist/cdn/seki-alert-description.js +39 -0
- package/dist/cdn/seki-alert-title.d.ts +11 -0
- package/dist/cdn/seki-alert-title.js +39 -0
- package/dist/cdn/seki-alert.d.ts +11 -0
- package/dist/cdn/seki-alert.js +65 -0
- package/dist/cdn/seki-aspect-ratio.d.ts +11 -0
- package/dist/cdn/seki-aspect-ratio.js +56 -0
- package/dist/cdn/seki-avatar-fallback.d.ts +11 -0
- package/dist/cdn/seki-avatar-fallback.js +68 -0
- package/dist/cdn/seki-avatar-image.d.ts +11 -0
- package/dist/cdn/seki-avatar-image.js +78 -0
- package/dist/cdn/seki-avatar.d.ts +11 -0
- package/dist/cdn/seki-avatar.js +102 -0
- package/dist/cdn/seki-badge.js +2 -2
- package/dist/cdn/seki-breadcrumb-ellipsis.js +3 -3
- package/dist/cdn/seki-breadcrumb-item.js +3 -3
- package/dist/cdn/seki-breadcrumb-link.js +3 -3
- package/dist/cdn/seki-breadcrumb-list.js +3 -3
- package/dist/cdn/seki-breadcrumb-page.js +3 -3
- package/dist/cdn/seki-breadcrumb-separator.js +3 -3
- package/dist/cdn/seki-breadcrumb.js +3 -3
- package/dist/cdn/seki-button-group.d.ts +11 -0
- package/dist/cdn/seki-button-group.js +83 -0
- package/dist/cdn/seki-button.js +3 -3
- package/dist/cdn/seki-calendar.d.ts +11 -0
- package/dist/cdn/seki-calendar.js +6 -0
- package/dist/cdn/seki-card-action.js +3 -3
- package/dist/cdn/seki-card-content.js +3 -3
- package/dist/cdn/seki-card-description.js +3 -3
- package/dist/cdn/seki-card-footer.js +3 -3
- package/dist/cdn/seki-card-header.js +3 -3
- package/dist/cdn/seki-card-title.js +2 -2
- package/dist/cdn/seki-card.js +3 -3
- package/dist/cdn/seki-carousel-content.d.ts +11 -0
- package/dist/cdn/seki-carousel-content.js +36 -0
- package/dist/cdn/seki-carousel-dots.d.ts +11 -0
- package/dist/cdn/seki-carousel-dots.js +119 -0
- package/dist/cdn/seki-carousel-item.d.ts +11 -0
- package/dist/cdn/seki-carousel-item.js +43 -0
- package/dist/cdn/seki-carousel-next.d.ts +11 -0
- package/dist/cdn/seki-carousel-next.js +81 -0
- package/dist/cdn/seki-carousel-previous.d.ts +11 -0
- package/dist/cdn/seki-carousel-previous.js +81 -0
- package/dist/cdn/seki-carousel.d.ts +11 -0
- package/dist/cdn/seki-carousel.js +1981 -0
- package/dist/cdn/seki-checkbox.d.ts +11 -0
- package/dist/cdn/seki-checkbox.js +145 -0
- package/dist/cdn/seki-collapsible-content.d.ts +11 -0
- package/dist/cdn/seki-collapsible-content.js +121 -0
- package/dist/cdn/seki-collapsible-trigger.d.ts +11 -0
- package/dist/cdn/seki-collapsible-trigger.js +72 -0
- package/dist/cdn/seki-collapsible.d.ts +11 -0
- package/dist/cdn/seki-collapsible.js +131 -0
- package/dist/cdn/seki-data-table.d.ts +11 -0
- package/dist/cdn/seki-data-table.js +596 -0
- package/dist/cdn/seki-date-picker.d.ts +11 -0
- package/dist/cdn/seki-date-picker.js +251 -0
- package/dist/cdn/seki-dialog-close.d.ts +11 -0
- package/dist/cdn/seki-dialog-close.js +40 -0
- package/dist/cdn/seki-dialog-content.d.ts +11 -0
- package/dist/cdn/seki-dialog-content.js +120 -0
- package/dist/cdn/seki-dialog-description.d.ts +11 -0
- package/dist/cdn/seki-dialog-description.js +43 -0
- package/dist/cdn/seki-dialog-footer.d.ts +11 -0
- package/dist/cdn/seki-dialog-footer.js +36 -0
- package/dist/cdn/seki-dialog-header.d.ts +11 -0
- package/dist/cdn/seki-dialog-header.js +36 -0
- package/dist/cdn/seki-dialog-overlay.d.ts +11 -0
- package/dist/cdn/seki-dialog-overlay.js +75 -0
- package/dist/cdn/seki-dialog-title.d.ts +11 -0
- package/dist/cdn/seki-dialog-title.js +43 -0
- package/dist/cdn/seki-dialog-trigger.d.ts +11 -0
- package/dist/cdn/seki-dialog-trigger.js +41 -0
- package/dist/cdn/seki-dialog.d.ts +11 -0
- package/dist/cdn/seki-dialog.js +135 -0
- package/dist/cdn/seki-dropdown-menu-checkbox.d.ts +11 -0
- package/dist/cdn/seki-dropdown-menu-checkbox.js +79 -0
- package/dist/cdn/seki-dropdown-menu-content.d.ts +11 -0
- package/dist/cdn/seki-dropdown-menu-content.js +204 -0
- package/dist/cdn/seki-dropdown-menu-item.d.ts +11 -0
- package/dist/cdn/seki-dropdown-menu-item.js +73 -0
- package/dist/cdn/seki-dropdown-menu-label.d.ts +11 -0
- package/dist/cdn/seki-dropdown-menu-label.js +45 -0
- package/dist/cdn/seki-dropdown-menu-radio-group.d.ts +11 -0
- package/dist/cdn/seki-dropdown-menu-radio-group.js +66 -0
- package/dist/cdn/seki-dropdown-menu-radio.d.ts +11 -0
- package/dist/cdn/seki-dropdown-menu-radio.js +81 -0
- package/dist/cdn/seki-dropdown-menu-separator.d.ts +11 -0
- package/dist/cdn/seki-dropdown-menu-separator.js +36 -0
- package/dist/cdn/seki-dropdown-menu-shortcut.d.ts +11 -0
- package/dist/cdn/seki-dropdown-menu-shortcut.js +36 -0
- package/dist/cdn/seki-dropdown-menu-trigger.d.ts +11 -0
- package/dist/cdn/seki-dropdown-menu-trigger.js +60 -0
- package/dist/cdn/seki-dropdown-menu.d.ts +11 -0
- package/dist/cdn/seki-dropdown-menu.js +177 -0
- package/dist/cdn/seki-field-description.js +3 -3
- package/dist/cdn/seki-field-error.js +3 -3
- package/dist/cdn/seki-field-group.js +3 -3
- package/dist/cdn/seki-field-label.js +3 -3
- package/dist/cdn/seki-field-legend.js +3 -3
- package/dist/cdn/seki-field.js +3 -3
- package/dist/cdn/seki-fieldset.js +3 -3
- package/dist/cdn/seki-input.js +3 -3
- package/dist/cdn/seki-kbd.d.ts +11 -0
- package/dist/cdn/seki-kbd.js +42 -0
- package/dist/cdn/seki-navigation-menu-content.d.ts +11 -0
- package/dist/cdn/seki-navigation-menu-content.js +245 -0
- package/dist/cdn/seki-navigation-menu-item.d.ts +11 -0
- package/dist/cdn/seki-navigation-menu-item.js +135 -0
- package/dist/cdn/seki-navigation-menu-link.d.ts +11 -0
- package/dist/cdn/seki-navigation-menu-link.js +113 -0
- package/dist/cdn/seki-navigation-menu-list.d.ts +11 -0
- package/dist/cdn/seki-navigation-menu-list.js +132 -0
- package/dist/cdn/seki-navigation-menu-trigger.d.ts +11 -0
- package/dist/cdn/seki-navigation-menu-trigger.js +218 -0
- package/dist/cdn/seki-navigation-menu-viewport.d.ts +11 -0
- package/dist/cdn/seki-navigation-menu-viewport.js +6 -0
- package/dist/cdn/seki-navigation-menu.d.ts +11 -0
- package/dist/cdn/seki-navigation-menu.js +270 -0
- package/dist/cdn/seki-pagination-content.js +3 -3
- package/dist/cdn/seki-pagination-ellipsis.js +3 -3
- package/dist/cdn/seki-pagination-item.js +3 -3
- package/dist/cdn/seki-pagination-link.js +4 -4
- package/dist/cdn/seki-pagination-next.js +4 -4
- package/dist/cdn/seki-pagination-previous.js +4 -4
- package/dist/cdn/seki-pagination.js +3 -3
- package/dist/cdn/seki-popover-close.d.ts +11 -0
- package/dist/cdn/seki-popover-close.js +40 -0
- package/dist/cdn/seki-popover-content.d.ts +11 -0
- package/dist/cdn/seki-popover-content.js +161 -0
- package/dist/cdn/seki-popover-trigger.d.ts +11 -0
- package/dist/cdn/seki-popover-trigger.js +42 -0
- package/dist/cdn/seki-popover.d.ts +11 -0
- package/dist/cdn/seki-popover.js +192 -0
- package/dist/cdn/seki-progress.d.ts +11 -0
- package/dist/cdn/seki-progress.js +101 -0
- package/dist/cdn/seki-radio-group-item.d.ts +11 -0
- package/dist/cdn/seki-radio-group-item.js +83 -0
- package/dist/cdn/seki-radio-group.d.ts +11 -0
- package/dist/cdn/seki-radio-group.js +157 -0
- package/dist/cdn/seki-select-content.js +2 -2
- package/dist/cdn/seki-select-group.js +3 -3
- package/dist/cdn/seki-select-option.js +3 -3
- package/dist/cdn/seki-select-trigger.js +2 -2
- package/dist/cdn/seki-select.js +3 -3
- package/dist/cdn/seki-separator.js +2 -2
- package/dist/cdn/seki-sheet-close.js +3 -3
- package/dist/cdn/seki-sheet-content.js +4 -4
- package/dist/cdn/seki-sheet-description.js +3 -3
- package/dist/cdn/seki-sheet-footer.js +3 -3
- package/dist/cdn/seki-sheet-header.js +3 -3
- package/dist/cdn/seki-sheet-title.js +3 -3
- package/dist/cdn/seki-sheet-trigger.js +3 -3
- package/dist/cdn/seki-sheet.js +4 -4
- package/dist/cdn/seki-sidebar-content.js +3 -3
- package/dist/cdn/seki-sidebar-footer.js +3 -3
- package/dist/cdn/seki-sidebar-group-action.js +3 -3
- package/dist/cdn/seki-sidebar-group-content.js +3 -3
- package/dist/cdn/seki-sidebar-group-label.js +1 -1
- package/dist/cdn/seki-sidebar-group.js +4 -4
- package/dist/cdn/seki-sidebar-header.js +3 -3
- package/dist/cdn/seki-sidebar-inset.js +3 -3
- package/dist/cdn/seki-sidebar-menu-action.js +3 -3
- package/dist/cdn/seki-sidebar-menu-badge.js +3 -3
- package/dist/cdn/seki-sidebar-menu-button.js +6 -4
- package/dist/cdn/seki-sidebar-menu-item.js +3 -3
- package/dist/cdn/seki-sidebar-menu-skeleton.js +3 -3
- package/dist/cdn/seki-sidebar-menu-sub-button.js +4 -4
- package/dist/cdn/seki-sidebar-menu-sub-item.js +3 -3
- package/dist/cdn/seki-sidebar-menu-sub.js +8 -36
- package/dist/cdn/seki-sidebar-menu.js +3 -3
- package/dist/cdn/seki-sidebar-provider.js +3 -3
- package/dist/cdn/seki-sidebar-rail.js +3 -3
- package/dist/cdn/seki-sidebar-separator.js +3 -3
- package/dist/cdn/seki-sidebar-trigger.js +3 -3
- package/dist/cdn/seki-sidebar.js +4 -4
- package/dist/cdn/seki-skeleton.js +3 -3
- package/dist/cdn/seki-slider.d.ts +11 -0
- package/dist/cdn/seki-slider.js +289 -0
- package/dist/cdn/seki-spinner.d.ts +11 -0
- package/dist/cdn/seki-spinner.js +66 -0
- package/dist/cdn/seki-switch.js +1 -1
- package/dist/cdn/seki-table-body.d.ts +11 -0
- package/dist/cdn/seki-table-body.js +36 -0
- package/dist/cdn/seki-table-caption.d.ts +11 -0
- package/dist/cdn/seki-table-caption.js +36 -0
- package/dist/cdn/seki-table-cell.d.ts +11 -0
- package/dist/cdn/seki-table-cell.js +47 -0
- package/dist/cdn/seki-table-footer.d.ts +11 -0
- package/dist/cdn/seki-table-footer.js +36 -0
- package/dist/cdn/seki-table-head.d.ts +11 -0
- package/dist/cdn/seki-table-head.js +58 -0
- package/dist/cdn/seki-table-header.d.ts +11 -0
- package/dist/cdn/seki-table-header.js +36 -0
- package/dist/cdn/seki-table-row.d.ts +11 -0
- package/dist/cdn/seki-table-row.js +45 -0
- package/dist/cdn/seki-table.d.ts +11 -0
- package/dist/cdn/seki-table.js +38 -0
- package/dist/cdn/seki-tabs-content.d.ts +11 -0
- package/dist/cdn/seki-tabs-content.js +74 -0
- package/dist/cdn/seki-tabs-list.d.ts +11 -0
- package/dist/cdn/seki-tabs-list.js +48 -0
- package/dist/cdn/seki-tabs-trigger.d.ts +11 -0
- package/dist/cdn/seki-tabs-trigger.js +189 -0
- package/dist/cdn/seki-tabs.d.ts +11 -0
- package/dist/cdn/seki-tabs.js +103 -0
- package/dist/cdn/seki-textarea.d.ts +11 -0
- package/dist/cdn/seki-textarea.js +128 -0
- package/dist/cdn/seki-toaster.d.ts +11 -0
- package/dist/cdn/seki-toaster.js +147 -0
- package/dist/cdn/seki-toggle.d.ts +11 -0
- package/dist/cdn/seki-toggle.js +113 -0
- package/dist/cdn/seki-tooltip.js +3 -3
- package/dist/cjs/focus-trap-C7ukllRZ.js +76 -0
- package/dist/cjs/{index-DzoHqiUq.js → index-BAbJauWg.js} +4 -1
- package/dist/cjs/index-oP7sywWN.js +22143 -0
- package/dist/cjs/index.cjs.js +29 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/seki-accordion-content.cjs.entry.js +82 -0
- package/dist/cjs/seki-accordion-item.cjs.entry.js +70 -0
- package/dist/cjs/seki-accordion-trigger.cjs.entry.js +113 -0
- package/dist/cjs/seki-accordion.cjs.entry.js +109 -0
- package/dist/cjs/seki-alert-description.cjs.entry.js +18 -0
- package/dist/cjs/seki-alert-title.cjs.entry.js +18 -0
- package/dist/cjs/seki-alert.cjs.entry.js +44 -0
- package/dist/cjs/seki-aspect-ratio.cjs.entry.js +35 -0
- package/dist/cjs/seki-avatar-fallback.cjs.entry.js +46 -0
- package/dist/cjs/seki-avatar-image.cjs.entry.js +54 -0
- package/dist/cjs/seki-avatar.cjs.entry.js +75 -0
- package/dist/cjs/seki-badge.cjs.entry.js +2 -2
- package/dist/cjs/seki-breadcrumb-ellipsis.cjs.entry.js +3 -3
- package/dist/cjs/seki-breadcrumb-item.cjs.entry.js +3 -3
- package/dist/cjs/seki-breadcrumb-link.cjs.entry.js +3 -3
- package/dist/cjs/seki-breadcrumb-list.cjs.entry.js +3 -3
- package/dist/cjs/seki-breadcrumb-page.cjs.entry.js +3 -3
- package/dist/cjs/seki-breadcrumb-separator.cjs.entry.js +3 -3
- package/dist/cjs/seki-breadcrumb.cjs.entry.js +3 -3
- package/dist/cjs/seki-button-group.cjs.entry.js +60 -0
- package/dist/cjs/seki-button.cjs.entry.js +3 -3
- package/dist/cjs/seki-calendar.cjs.entry.js +332 -0
- package/dist/cjs/seki-card-action.cjs.entry.js +3 -3
- package/dist/cjs/seki-card-content.cjs.entry.js +3 -3
- package/dist/cjs/seki-card-description.cjs.entry.js +3 -3
- package/dist/cjs/seki-card-footer.cjs.entry.js +3 -3
- package/dist/cjs/seki-card-header.cjs.entry.js +3 -3
- package/dist/cjs/seki-card-title.cjs.entry.js +2 -2
- package/dist/cjs/seki-card.cjs.entry.js +3 -3
- package/dist/cjs/seki-carousel-content.cjs.entry.js +17 -0
- package/dist/cjs/seki-carousel-dots.cjs.entry.js +97 -0
- package/dist/cjs/seki-carousel-item.cjs.entry.js +22 -0
- package/dist/cjs/seki-carousel-next.cjs.entry.js +60 -0
- package/dist/cjs/seki-carousel-previous.cjs.entry.js +60 -0
- package/dist/cjs/seki-carousel.cjs.entry.js +1938 -0
- package/dist/cjs/seki-checkbox.cjs.entry.js +121 -0
- package/dist/cjs/seki-collapsible-content.cjs.entry.js +98 -0
- package/dist/cjs/seki-collapsible-trigger.cjs.entry.js +51 -0
- package/dist/cjs/seki-collapsible.cjs.entry.js +102 -0
- package/dist/cjs/seki-data-table.cjs.entry.js +542 -0
- package/dist/cjs/seki-date-picker.cjs.entry.js +206 -0
- package/dist/cjs/seki-dialog-close.cjs.entry.js +21 -0
- package/dist/cjs/seki-dialog-content.cjs.entry.js +98 -0
- package/dist/cjs/seki-dialog-description.cjs.entry.js +24 -0
- package/dist/cjs/seki-dialog-footer.cjs.entry.js +17 -0
- package/dist/cjs/seki-dialog-header.cjs.entry.js +17 -0
- package/dist/cjs/seki-dialog-overlay.cjs.entry.js +53 -0
- package/dist/cjs/seki-dialog-title.cjs.entry.js +24 -0
- package/dist/{sekiui/p-50802600.entry.js → cjs/seki-dialog-trigger.cjs.entry.js} +22 -1
- package/dist/cjs/seki-dialog.cjs.entry.js +109 -0
- package/dist/cjs/seki-dropdown-menu-checkbox.cjs.entry.js +54 -0
- package/dist/cjs/seki-dropdown-menu-content.cjs.entry.js +178 -0
- package/dist/cjs/seki-dropdown-menu-item.cjs.entry.js +51 -0
- package/dist/{sekiui/p-8c7b00ef.entry.js → cjs/seki-dropdown-menu-label.cjs.entry.js} +24 -1
- package/dist/cjs/seki-dropdown-menu-radio-group.cjs.entry.js +42 -0
- package/dist/cjs/seki-dropdown-menu-radio.cjs.entry.js +58 -0
- package/dist/cjs/seki-dropdown-menu-separator.cjs.entry.js +17 -0
- package/dist/cjs/seki-dropdown-menu-shortcut.cjs.entry.js +17 -0
- package/dist/cjs/seki-dropdown-menu-trigger.cjs.entry.js +39 -0
- package/dist/cjs/seki-dropdown-menu.cjs.entry.js +147 -0
- package/dist/cjs/seki-field-description.cjs.entry.js +3 -3
- package/dist/cjs/seki-field-error.cjs.entry.js +3 -3
- package/dist/cjs/seki-field-group.cjs.entry.js +3 -3
- package/dist/cjs/seki-field-label.cjs.entry.js +3 -3
- package/dist/cjs/seki-field-legend.cjs.entry.js +3 -3
- package/dist/cjs/seki-field.cjs.entry.js +3 -3
- package/dist/cjs/seki-fieldset.cjs.entry.js +3 -3
- package/dist/cjs/seki-input.cjs.entry.js +3 -3
- package/dist/cjs/seki-kbd.cjs.entry.js +21 -0
- package/dist/cjs/seki-navigation-menu-content.cjs.entry.js +217 -0
- package/dist/cjs/seki-navigation-menu-item.cjs.entry.js +109 -0
- package/dist/cjs/seki-navigation-menu-link.cjs.entry.js +88 -0
- package/dist/cjs/seki-navigation-menu-list.cjs.entry.js +111 -0
- package/dist/cjs/seki-navigation-menu-trigger.cjs.entry.js +195 -0
- package/dist/cjs/seki-navigation-menu-viewport.cjs.entry.js +164 -0
- package/dist/cjs/seki-navigation-menu.cjs.entry.js +233 -0
- package/dist/cjs/seki-pagination-content.cjs.entry.js +3 -3
- package/dist/cjs/seki-pagination-ellipsis.cjs.entry.js +3 -3
- package/dist/cjs/seki-pagination-item.cjs.entry.js +3 -3
- package/dist/cjs/seki-pagination-link.cjs.entry.js +4 -4
- package/dist/cjs/seki-pagination-next.cjs.entry.js +4 -4
- package/dist/cjs/seki-pagination-previous.cjs.entry.js +4 -4
- package/dist/cjs/seki-pagination.cjs.entry.js +3 -3
- package/dist/cjs/seki-popover-close.cjs.entry.js +21 -0
- package/dist/cjs/seki-popover-content.cjs.entry.js +134 -0
- package/dist/cjs/seki-popover-trigger.cjs.entry.js +23 -0
- package/dist/cjs/seki-popover.cjs.entry.js +159 -0
- package/dist/cjs/seki-progress.cjs.entry.js +75 -0
- package/dist/cjs/seki-radio-group-item.cjs.entry.js +57 -0
- package/dist/cjs/seki-radio-group.cjs.entry.js +129 -0
- package/dist/cjs/seki-select-content.cjs.entry.js +2 -2
- package/dist/cjs/seki-select-group.cjs.entry.js +3 -3
- package/dist/cjs/seki-select-option.cjs.entry.js +3 -3
- package/dist/cjs/seki-select-trigger.cjs.entry.js +2 -2
- package/dist/cjs/seki-select.cjs.entry.js +3 -3
- package/dist/cjs/seki-separator.cjs.entry.js +2 -2
- package/dist/cjs/seki-sheet-close.cjs.entry.js +3 -3
- package/dist/cjs/seki-sheet-content.cjs.entry.js +4 -4
- package/dist/cjs/seki-sheet-description.cjs.entry.js +3 -3
- package/dist/cjs/seki-sheet-footer.cjs.entry.js +3 -3
- package/dist/cjs/seki-sheet-header.cjs.entry.js +3 -3
- package/dist/cjs/seki-sheet-title.cjs.entry.js +3 -3
- package/dist/cjs/seki-sheet-trigger.cjs.entry.js +3 -3
- package/dist/cjs/seki-sheet.cjs.entry.js +4 -4
- package/dist/cjs/seki-sidebar-content.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-footer.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-group-action.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-group-content.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-group-label.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-group.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-header.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-inset.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-menu-action.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-menu-badge.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-menu-button.cjs.entry.js +6 -4
- package/dist/cjs/seki-sidebar-menu-item.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-menu-skeleton.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-menu-sub-button.cjs.entry.js +4 -4
- package/dist/cjs/seki-sidebar-menu-sub-item.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-menu-sub.cjs.entry.js +7 -33
- package/dist/cjs/seki-sidebar-menu.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-provider.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-rail.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-separator.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar-trigger.cjs.entry.js +3 -3
- package/dist/cjs/seki-sidebar.cjs.entry.js +4 -4
- package/dist/cjs/seki-skeleton.cjs.entry.js +3 -3
- package/dist/cjs/seki-slider.cjs.entry.js +258 -0
- package/dist/cjs/seki-spinner.cjs.entry.js +43 -0
- package/dist/cjs/seki-switch.cjs.entry.js +3 -3
- package/dist/cjs/seki-table-body.cjs.entry.js +17 -0
- package/dist/cjs/seki-table-caption.cjs.entry.js +17 -0
- package/dist/cjs/seki-table-cell.cjs.entry.js +25 -0
- package/dist/cjs/seki-table-footer.cjs.entry.js +17 -0
- package/dist/cjs/seki-table-head.cjs.entry.js +34 -0
- package/dist/cjs/seki-table-header.cjs.entry.js +17 -0
- package/dist/cjs/seki-table-row.cjs.entry.js +24 -0
- package/dist/cjs/seki-table.cjs.entry.js +17 -0
- package/dist/cjs/seki-tabs-content.cjs.entry.js +52 -0
- package/dist/{sekiui/p-638802c3.entry.js → cjs/seki-tabs-list.cjs.entry.js} +29 -1
- package/dist/cjs/seki-tabs-trigger.cjs.entry.js +166 -0
- package/dist/cjs/seki-tabs.cjs.entry.js +76 -0
- package/dist/cjs/seki-textarea.cjs.entry.js +99 -0
- package/dist/cjs/seki-toaster.cjs.entry.js +123 -0
- package/dist/cjs/seki-toggle.cjs.entry.js +86 -0
- package/dist/cjs/seki-tooltip.cjs.entry.js +3 -3
- package/dist/cjs/sekiui.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +77 -1
- package/dist/collection/components/accordion/seki-accordion-content.css +782 -0
- package/dist/collection/components/accordion/seki-accordion-content.js +99 -0
- package/dist/collection/components/accordion/seki-accordion-item.css +778 -0
- package/dist/collection/components/accordion/seki-accordion-item.js +128 -0
- package/dist/collection/components/accordion/seki-accordion-trigger.css +816 -0
- package/dist/collection/components/accordion/seki-accordion-trigger.js +144 -0
- package/dist/collection/components/accordion/seki-accordion.css +773 -0
- package/dist/collection/components/accordion/seki-accordion.js +271 -0
- package/dist/collection/components/alert/seki-alert-description.js +54 -0
- package/dist/collection/components/alert/seki-alert-title.js +51 -0
- package/dist/collection/components/alert/seki-alert.css +159 -0
- package/dist/collection/components/alert/seki-alert.js +97 -0
- package/dist/collection/components/aspect-ratio/seki-aspect-ratio.css +801 -0
- package/dist/collection/components/aspect-ratio/seki-aspect-ratio.interface.js +1 -0
- package/dist/collection/components/aspect-ratio/seki-aspect-ratio.js +69 -0
- package/dist/collection/components/avatar/seki-avatar-fallback.css +45 -0
- package/dist/collection/components/avatar/seki-avatar-fallback.js +91 -0
- package/dist/collection/components/avatar/seki-avatar-image.css +28 -0
- package/dist/collection/components/avatar/seki-avatar-image.js +147 -0
- package/dist/collection/components/avatar/seki-avatar.css +115 -0
- package/dist/collection/components/avatar/seki-avatar.js +176 -0
- package/dist/collection/components/badge/seki-badge.css +1 -1
- package/dist/collection/components/breadcrumb/seki-breadcrumb-ellipsis.js +1 -1
- package/dist/collection/components/breadcrumb/seki-breadcrumb-item.js +1 -1
- package/dist/collection/components/breadcrumb/seki-breadcrumb-link.js +1 -1
- package/dist/collection/components/breadcrumb/seki-breadcrumb-list.js +1 -1
- package/dist/collection/components/breadcrumb/seki-breadcrumb-page.js +1 -1
- package/dist/collection/components/breadcrumb/seki-breadcrumb-separator.js +1 -1
- package/dist/collection/components/breadcrumb/seki-breadcrumb.css +9 -9
- package/dist/collection/components/breadcrumb/seki-breadcrumb.js +1 -1
- package/dist/collection/components/button/seki-button.css +389 -18
- package/dist/collection/components/button/seki-button.js +1 -1
- package/dist/collection/components/button-group/seki-button-group.css +794 -0
- package/dist/collection/components/button-group/seki-button-group.js +125 -0
- package/dist/collection/components/calendar/seki-calendar.css +252 -0
- package/dist/collection/components/calendar/seki-calendar.js +567 -0
- package/dist/collection/components/card/seki-card-action.js +1 -1
- package/dist/collection/components/card/seki-card-content.js +1 -1
- package/dist/collection/components/card/seki-card-description.js +1 -1
- package/dist/collection/components/card/seki-card-footer.js +1 -1
- package/dist/collection/components/card/seki-card-header.js +1 -1
- package/dist/collection/components/card/seki-card.css +331 -32
- package/dist/collection/components/card/seki-card.js +1 -1
- package/dist/collection/components/carousel/seki-carousel-content.css +18 -0
- package/dist/collection/components/carousel/seki-carousel-content.js +24 -0
- package/dist/collection/components/carousel/seki-carousel-dots.css +57 -0
- package/dist/collection/components/carousel/seki-carousel-dots.js +110 -0
- package/dist/collection/components/carousel/seki-carousel-item.css +14 -0
- package/dist/collection/components/carousel/seki-carousel-item.js +54 -0
- package/dist/collection/components/carousel/seki-carousel-navigation.css +78 -0
- package/dist/collection/components/carousel/seki-carousel-next.js +72 -0
- package/dist/collection/components/carousel/seki-carousel-previous.js +72 -0
- package/dist/collection/components/carousel/seki-carousel.css +62 -0
- package/dist/collection/components/carousel/seki-carousel.js +574 -0
- package/dist/collection/components/checkbox/seki-checkbox.css +859 -0
- package/dist/collection/components/checkbox/seki-checkbox.js +338 -0
- package/dist/collection/components/collapsible/seki-collapsible-content.css +779 -0
- package/dist/collection/components/collapsible/seki-collapsible-content.js +115 -0
- package/dist/collection/components/collapsible/seki-collapsible-trigger.css +798 -0
- package/dist/collection/components/collapsible/seki-collapsible-trigger.js +100 -0
- package/dist/collection/components/collapsible/seki-collapsible.css +773 -0
- package/dist/collection/components/collapsible/seki-collapsible.js +254 -0
- package/dist/collection/components/data-table/interfaces.js +1 -0
- package/dist/collection/components/data-table/seki-data-table.css +1282 -0
- package/dist/collection/components/data-table/seki-data-table.js +1269 -0
- package/dist/collection/components/data-table/utils/virtual-scroll.js +37 -0
- package/dist/collection/components/date-picker/seki-date-picker.css +143 -0
- package/dist/collection/components/date-picker/seki-date-picker.js +628 -0
- package/dist/collection/components/dialog/seki-dialog-close.css +814 -0
- package/dist/collection/components/dialog/seki-dialog-close.js +55 -0
- package/dist/collection/components/dialog/seki-dialog-content.css +811 -0
- package/dist/collection/components/dialog/seki-dialog-content.js +163 -0
- package/dist/collection/components/dialog/seki-dialog-description.css +776 -0
- package/dist/collection/components/dialog/seki-dialog-description.js +32 -0
- package/dist/collection/components/dialog/seki-dialog-footer.css +776 -0
- package/dist/collection/components/dialog/seki-dialog-footer.js +25 -0
- package/dist/collection/components/dialog/seki-dialog-header.css +776 -0
- package/dist/collection/components/dialog/seki-dialog-header.js +25 -0
- package/dist/collection/components/dialog/seki-dialog-overlay.css +784 -0
- package/dist/collection/components/dialog/seki-dialog-overlay.js +107 -0
- package/dist/collection/components/dialog/seki-dialog-title.css +778 -0
- package/dist/collection/components/dialog/seki-dialog-title.js +32 -0
- package/dist/collection/components/dialog/seki-dialog-trigger.css +768 -0
- package/dist/collection/components/dialog/seki-dialog-trigger.js +56 -0
- package/dist/collection/components/dialog/seki-dialog.css +767 -0
- package/dist/collection/components/dialog/seki-dialog.js +258 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-checkbox.css +817 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-checkbox.js +134 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-content.css +796 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-content.js +278 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-item.css +804 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-item.js +122 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-label.css +780 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-label.js +58 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-radio-group.css +767 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-radio-group.js +109 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-radio.css +817 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-radio.js +134 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-separator.css +774 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-separator.js +23 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-shortcut.css +777 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-shortcut.js +25 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-trigger.css +768 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu-trigger.js +80 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu.css +768 -0
- package/dist/collection/components/dropdown-menu/seki-dropdown-menu.js +371 -0
- package/dist/collection/components/field/seki-field.css +317 -18
- package/dist/collection/components/field/seki-field.js +1 -1
- package/dist/collection/components/field-description/seki-field-description.css +317 -18
- package/dist/collection/components/field-description/seki-field-description.js +1 -1
- package/dist/collection/components/field-error/seki-field-error.css +317 -18
- package/dist/collection/components/field-error/seki-field-error.js +1 -1
- package/dist/collection/components/field-group/seki-field-group.css +317 -18
- package/dist/collection/components/field-group/seki-field-group.js +1 -1
- package/dist/collection/components/field-label/seki-field-label.css +317 -18
- package/dist/collection/components/field-label/seki-field-label.js +1 -1
- package/dist/collection/components/field-legend/seki-field-legend.css +317 -18
- package/dist/collection/components/field-legend/seki-field-legend.js +1 -1
- package/dist/collection/components/fieldset/seki-fieldset.css +323 -19
- package/dist/collection/components/fieldset/seki-fieldset.js +1 -1
- package/dist/collection/components/input/seki-input.css +318 -19
- package/dist/collection/components/input/seki-input.js +1 -1
- package/dist/collection/components/kbd/seki-kbd.css +836 -0
- package/dist/collection/components/kbd/seki-kbd.js +48 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu-content.css +58 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu-content.js +313 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu-item.css +27 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu-item.js +146 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu-link.css +88 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu-link.js +195 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu-list.css +19 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu-list.js +119 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu-trigger.css +81 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu-trigger.js +245 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu-viewport.css +73 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu-viewport.js +224 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu.css +945 -0
- package/dist/collection/components/navigation-menu/seki-navigation-menu.js +434 -0
- package/dist/collection/components/pagination/seki-pagination-content.js +1 -1
- package/dist/collection/components/pagination/seki-pagination-ellipsis.js +1 -1
- package/dist/collection/components/pagination/seki-pagination-item.js +1 -1
- package/dist/collection/components/pagination/seki-pagination-link.js +2 -2
- package/dist/collection/components/pagination/seki-pagination-next.js +2 -2
- package/dist/collection/components/pagination/seki-pagination-previous.js +2 -2
- package/dist/collection/components/pagination/seki-pagination.css +13 -12
- package/dist/collection/components/pagination/seki-pagination.js +1 -1
- package/dist/collection/components/popover/seki-popover-close.css +796 -0
- package/dist/collection/components/popover/seki-popover-close.js +55 -0
- package/dist/collection/components/popover/seki-popover-content.css +796 -0
- package/dist/collection/components/popover/seki-popover-content.js +245 -0
- package/dist/collection/components/popover/seki-popover-trigger.css +768 -0
- package/dist/collection/components/popover/seki-popover-trigger.js +57 -0
- package/dist/collection/components/popover/seki-popover.css +768 -0
- package/dist/collection/components/popover/seki-popover.js +426 -0
- package/dist/collection/components/progress/seki-progress.css +88 -0
- package/dist/collection/components/progress/seki-progress.js +162 -0
- package/dist/collection/components/radio-group/seki-radio-group-item.css +840 -0
- package/dist/collection/components/radio-group/seki-radio-group-item.js +205 -0
- package/dist/collection/components/radio-group/seki-radio-group.css +774 -0
- package/dist/collection/components/radio-group/seki-radio-group.js +319 -0
- package/dist/collection/components/select/seki-select.css +317 -18
- package/dist/collection/components/select/seki-select.js +1 -1
- package/dist/collection/components/select-content/seki-select-content.css +318 -19
- package/dist/collection/components/select-group/seki-select-group.css +317 -18
- package/dist/collection/components/select-group/seki-select-group.js +1 -1
- package/dist/collection/components/select-option/seki-select-option.css +317 -18
- package/dist/collection/components/select-option/seki-select-option.js +1 -1
- package/dist/collection/components/select-trigger/seki-select-trigger.css +335 -20
- package/dist/collection/components/separator/seki-separator.js +1 -1
- package/dist/collection/components/sheet/seki-sheet-close.js +1 -1
- package/dist/collection/components/sheet/seki-sheet-content.js +2 -2
- package/dist/collection/components/sheet/seki-sheet-description.js +1 -1
- package/dist/collection/components/sheet/seki-sheet-footer.js +1 -1
- package/dist/collection/components/sheet/seki-sheet-header.js +1 -1
- package/dist/collection/components/sheet/seki-sheet-title.js +1 -1
- package/dist/collection/components/sheet/seki-sheet-trigger.js +1 -1
- package/dist/collection/components/sheet/seki-sheet.css +3 -3
- package/dist/collection/components/sheet/seki-sheet.js +2 -2
- package/dist/collection/components/sidebar/seki-sidebar-content.css +318 -19
- package/dist/collection/components/sidebar/seki-sidebar-content.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-footer.css +317 -18
- package/dist/collection/components/sidebar/seki-sidebar-footer.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-group-action.css +318 -19
- package/dist/collection/components/sidebar/seki-sidebar-group-action.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-group-content.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-group-label.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-group.css +322 -21
- package/dist/collection/components/sidebar/seki-sidebar-group.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-header.css +317 -18
- package/dist/collection/components/sidebar/seki-sidebar-header.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-inset.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-menu-action.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-menu-badge.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-menu-button.js +4 -2
- package/dist/collection/components/sidebar/seki-sidebar-menu-item.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-menu-skeleton.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-menu-sub-button.js +2 -2
- package/dist/collection/components/sidebar/seki-sidebar-menu-sub-item.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-menu-sub.css +336 -30
- package/dist/collection/components/sidebar/seki-sidebar-menu-sub.js +6 -34
- package/dist/collection/components/sidebar/seki-sidebar-menu.css +342 -33
- package/dist/collection/components/sidebar/seki-sidebar-menu.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-provider.css +317 -18
- package/dist/collection/components/sidebar/seki-sidebar-provider.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-rail.css +317 -18
- package/dist/collection/components/sidebar/seki-sidebar-rail.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-separator.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-trigger.css +318 -19
- package/dist/collection/components/sidebar/seki-sidebar-trigger.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar.css +326 -59
- package/dist/collection/components/sidebar/seki-sidebar.js +2 -2
- package/dist/collection/components/skeleton/seki-skeleton.css +324 -19
- package/dist/collection/components/skeleton/seki-skeleton.js +1 -1
- package/dist/collection/components/slider/seki-slider.css +902 -0
- package/dist/collection/components/slider/seki-slider.js +514 -0
- package/dist/collection/components/spinner/seki-spinner.css +869 -0
- package/dist/collection/components/spinner/seki-spinner.interface.js +1 -0
- package/dist/collection/components/spinner/seki-spinner.js +127 -0
- package/dist/collection/components/switch/seki-switch.css +336 -22
- package/dist/collection/components/switch/seki-switch.js +1 -1
- package/dist/collection/components/table/seki-table-body.css +14 -0
- package/dist/collection/components/table/seki-table-body.js +23 -0
- package/dist/collection/components/table/seki-table-caption.css +18 -0
- package/dist/collection/components/table/seki-table-caption.js +23 -0
- package/dist/collection/components/table/seki-table-cell.css +29 -0
- package/dist/collection/components/table/seki-table-cell.js +82 -0
- package/dist/collection/components/table/seki-table-footer.css +21 -0
- package/dist/collection/components/table/seki-table-footer.js +23 -0
- package/dist/collection/components/table/seki-table-head.css +53 -0
- package/dist/collection/components/table/seki-table-head.js +130 -0
- package/dist/collection/components/table/seki-table-header.css +18 -0
- package/dist/collection/components/table/seki-table-header.js +23 -0
- package/dist/collection/components/table/seki-table-row.css +39 -0
- package/dist/collection/components/table/seki-table-row.js +56 -0
- package/dist/collection/components/table/seki-table.css +49 -0
- package/dist/collection/components/table/seki-table.js +59 -0
- package/dist/collection/components/tabs/seki-tabs-content.css +782 -0
- package/dist/collection/components/tabs/seki-tabs-content.js +90 -0
- package/dist/collection/components/tabs/seki-tabs-list.css +784 -0
- package/dist/collection/components/tabs/seki-tabs-list.js +37 -0
- package/dist/collection/components/tabs/seki-tabs-trigger.css +824 -0
- package/dist/collection/components/tabs/seki-tabs-trigger.js +239 -0
- package/dist/collection/components/tabs/seki-tabs.css +774 -0
- package/dist/collection/components/tabs/seki-tabs.js +198 -0
- package/dist/collection/components/textarea/seki-textarea.css +877 -0
- package/dist/collection/components/textarea/seki-textarea.js +481 -0
- package/dist/collection/components/toast/seki-toast.css +324 -0
- package/dist/collection/components/toast/seki-toaster.js +231 -0
- package/dist/collection/components/toast/toast.js +70 -0
- package/dist/collection/components/toggle/seki-toggle.css +888 -0
- package/dist/collection/components/toggle/seki-toggle.js +251 -0
- package/dist/collection/components/tooltip/seki-tooltip.css +318 -19
- package/dist/collection/components/tooltip/seki-tooltip.js +1 -1
- package/dist/collection/utils/calendar/date-utils.js +132 -0
- package/dist/collection/utils/common.js +26 -0
- package/dist/collection/utils/dialog/focus-trap.js +78 -0
- package/dist/components/index.js +29 -3
- package/dist/components/p-BUYuvIRE.js +33 -0
- package/dist/components/p-CDQKMFP5.js +190 -0
- package/dist/components/p-CP7ZtKCE.js +71 -0
- package/dist/{cdn/p-D31scOlb.js → components/p-C_O046uN.js} +6 -3
- package/dist/components/p-DvP7Vyt2.js +22503 -0
- package/dist/components/p-dCYFf9U9.js +111 -0
- package/dist/components/seki-accordion-content.d.ts +11 -0
- package/dist/components/seki-accordion-content.js +105 -0
- package/dist/components/seki-accordion-item.d.ts +11 -0
- package/dist/components/seki-accordion-item.js +93 -0
- package/dist/components/seki-accordion-trigger.d.ts +11 -0
- package/dist/components/seki-accordion-trigger.js +134 -0
- package/dist/components/seki-accordion.d.ts +11 -0
- package/dist/components/seki-accordion.js +138 -0
- package/dist/components/seki-alert-description.d.ts +11 -0
- package/dist/components/seki-alert-description.js +39 -0
- package/dist/components/seki-alert-title.d.ts +11 -0
- package/dist/components/seki-alert-title.js +39 -0
- package/dist/components/seki-alert.d.ts +11 -0
- package/dist/components/seki-alert.js +65 -0
- package/dist/components/seki-aspect-ratio.d.ts +11 -0
- package/dist/components/seki-aspect-ratio.js +56 -0
- package/dist/components/seki-avatar-fallback.d.ts +11 -0
- package/dist/components/seki-avatar-fallback.js +68 -0
- package/dist/components/seki-avatar-image.d.ts +11 -0
- package/dist/components/seki-avatar-image.js +78 -0
- package/dist/components/seki-avatar.d.ts +11 -0
- package/dist/components/seki-avatar.js +102 -0
- package/dist/components/seki-badge.js +2 -2
- package/dist/components/seki-breadcrumb-ellipsis.js +3 -3
- package/dist/components/seki-breadcrumb-item.js +3 -3
- package/dist/components/seki-breadcrumb-link.js +3 -3
- package/dist/components/seki-breadcrumb-list.js +3 -3
- package/dist/components/seki-breadcrumb-page.js +3 -3
- package/dist/components/seki-breadcrumb-separator.js +3 -3
- package/dist/components/seki-breadcrumb.js +3 -3
- package/dist/components/seki-button-group.d.ts +11 -0
- package/dist/components/seki-button-group.js +83 -0
- package/dist/components/seki-button.js +3 -3
- package/dist/components/seki-calendar.d.ts +11 -0
- package/dist/components/seki-calendar.js +6 -0
- package/dist/components/seki-card-action.js +3 -3
- package/dist/components/seki-card-content.js +3 -3
- package/dist/components/seki-card-description.js +3 -3
- package/dist/components/seki-card-footer.js +3 -3
- package/dist/components/seki-card-header.js +3 -3
- package/dist/components/seki-card-title.js +2 -2
- package/dist/components/seki-card.js +3 -3
- package/dist/components/seki-carousel-content.d.ts +11 -0
- package/dist/components/seki-carousel-content.js +36 -0
- package/dist/components/seki-carousel-dots.d.ts +11 -0
- package/dist/components/seki-carousel-dots.js +119 -0
- package/dist/components/seki-carousel-item.d.ts +11 -0
- package/dist/components/seki-carousel-item.js +43 -0
- package/dist/components/seki-carousel-next.d.ts +11 -0
- package/dist/components/seki-carousel-next.js +81 -0
- package/dist/components/seki-carousel-previous.d.ts +11 -0
- package/dist/components/seki-carousel-previous.js +81 -0
- package/dist/components/seki-carousel.d.ts +11 -0
- package/dist/components/seki-carousel.js +1981 -0
- package/dist/components/seki-checkbox.d.ts +11 -0
- package/dist/components/seki-checkbox.js +145 -0
- package/dist/components/seki-collapsible-content.d.ts +11 -0
- package/dist/components/seki-collapsible-content.js +121 -0
- package/dist/components/seki-collapsible-trigger.d.ts +11 -0
- package/dist/components/seki-collapsible-trigger.js +72 -0
- package/dist/components/seki-collapsible.d.ts +11 -0
- package/dist/components/seki-collapsible.js +131 -0
- package/dist/components/seki-data-table.d.ts +11 -0
- package/dist/components/seki-data-table.js +596 -0
- package/dist/components/seki-date-picker.d.ts +11 -0
- package/dist/components/seki-date-picker.js +251 -0
- package/dist/components/seki-dialog-close.d.ts +11 -0
- package/dist/components/seki-dialog-close.js +40 -0
- package/dist/components/seki-dialog-content.d.ts +11 -0
- package/dist/components/seki-dialog-content.js +120 -0
- package/dist/components/seki-dialog-description.d.ts +11 -0
- package/dist/components/seki-dialog-description.js +43 -0
- package/dist/components/seki-dialog-footer.d.ts +11 -0
- package/dist/components/seki-dialog-footer.js +36 -0
- package/dist/components/seki-dialog-header.d.ts +11 -0
- package/dist/components/seki-dialog-header.js +36 -0
- package/dist/components/seki-dialog-overlay.d.ts +11 -0
- package/dist/components/seki-dialog-overlay.js +75 -0
- package/dist/components/seki-dialog-title.d.ts +11 -0
- package/dist/components/seki-dialog-title.js +43 -0
- package/dist/components/seki-dialog-trigger.d.ts +11 -0
- package/dist/components/seki-dialog-trigger.js +41 -0
- package/dist/components/seki-dialog.d.ts +11 -0
- package/dist/components/seki-dialog.js +135 -0
- package/dist/components/seki-dropdown-menu-checkbox.d.ts +11 -0
- package/dist/components/seki-dropdown-menu-checkbox.js +79 -0
- package/dist/components/seki-dropdown-menu-content.d.ts +11 -0
- package/dist/components/seki-dropdown-menu-content.js +204 -0
- package/dist/components/seki-dropdown-menu-item.d.ts +11 -0
- package/dist/components/seki-dropdown-menu-item.js +73 -0
- package/dist/components/seki-dropdown-menu-label.d.ts +11 -0
- package/dist/components/seki-dropdown-menu-label.js +45 -0
- package/dist/components/seki-dropdown-menu-radio-group.d.ts +11 -0
- package/dist/components/seki-dropdown-menu-radio-group.js +66 -0
- package/dist/components/seki-dropdown-menu-radio.d.ts +11 -0
- package/dist/components/seki-dropdown-menu-radio.js +81 -0
- package/dist/components/seki-dropdown-menu-separator.d.ts +11 -0
- package/dist/components/seki-dropdown-menu-separator.js +36 -0
- package/dist/components/seki-dropdown-menu-shortcut.d.ts +11 -0
- package/dist/components/seki-dropdown-menu-shortcut.js +36 -0
- package/dist/components/seki-dropdown-menu-trigger.d.ts +11 -0
- package/dist/components/seki-dropdown-menu-trigger.js +60 -0
- package/dist/components/seki-dropdown-menu.d.ts +11 -0
- package/dist/components/seki-dropdown-menu.js +177 -0
- package/dist/components/seki-field-description.js +3 -3
- package/dist/components/seki-field-error.js +3 -3
- package/dist/components/seki-field-group.js +3 -3
- package/dist/components/seki-field-label.js +3 -3
- package/dist/components/seki-field-legend.js +3 -3
- package/dist/components/seki-field.js +3 -3
- package/dist/components/seki-fieldset.js +3 -3
- package/dist/components/seki-input.js +3 -3
- package/dist/components/seki-kbd.d.ts +11 -0
- package/dist/components/seki-kbd.js +42 -0
- package/dist/components/seki-navigation-menu-content.d.ts +11 -0
- package/dist/components/seki-navigation-menu-content.js +245 -0
- package/dist/components/seki-navigation-menu-item.d.ts +11 -0
- package/dist/components/seki-navigation-menu-item.js +135 -0
- package/dist/components/seki-navigation-menu-link.d.ts +11 -0
- package/dist/components/seki-navigation-menu-link.js +113 -0
- package/dist/components/seki-navigation-menu-list.d.ts +11 -0
- package/dist/components/seki-navigation-menu-list.js +132 -0
- package/dist/components/seki-navigation-menu-trigger.d.ts +11 -0
- package/dist/components/seki-navigation-menu-trigger.js +218 -0
- package/dist/components/seki-navigation-menu-viewport.d.ts +11 -0
- package/dist/components/seki-navigation-menu-viewport.js +6 -0
- package/dist/components/seki-navigation-menu.d.ts +11 -0
- package/dist/components/seki-navigation-menu.js +270 -0
- package/dist/components/seki-pagination-content.js +3 -3
- package/dist/components/seki-pagination-ellipsis.js +3 -3
- package/dist/components/seki-pagination-item.js +3 -3
- package/dist/components/seki-pagination-link.js +4 -4
- package/dist/components/seki-pagination-next.js +4 -4
- package/dist/components/seki-pagination-previous.js +4 -4
- package/dist/components/seki-pagination.js +3 -3
- package/dist/components/seki-popover-close.d.ts +11 -0
- package/dist/components/seki-popover-close.js +40 -0
- package/dist/components/seki-popover-content.d.ts +11 -0
- package/dist/components/seki-popover-content.js +161 -0
- package/dist/components/seki-popover-trigger.d.ts +11 -0
- package/dist/components/seki-popover-trigger.js +42 -0
- package/dist/components/seki-popover.d.ts +11 -0
- package/dist/components/seki-popover.js +192 -0
- package/dist/components/seki-progress.d.ts +11 -0
- package/dist/components/seki-progress.js +101 -0
- package/dist/components/seki-radio-group-item.d.ts +11 -0
- package/dist/components/seki-radio-group-item.js +83 -0
- package/dist/components/seki-radio-group.d.ts +11 -0
- package/dist/components/seki-radio-group.js +157 -0
- package/dist/components/seki-select-content.js +2 -2
- package/dist/components/seki-select-group.js +3 -3
- package/dist/components/seki-select-option.js +3 -3
- package/dist/components/seki-select-trigger.js +2 -2
- package/dist/components/seki-select.js +3 -3
- package/dist/components/seki-separator.js +2 -2
- package/dist/components/seki-sheet-close.js +3 -3
- package/dist/components/seki-sheet-content.js +4 -4
- package/dist/components/seki-sheet-description.js +3 -3
- package/dist/components/seki-sheet-footer.js +3 -3
- package/dist/components/seki-sheet-header.js +3 -3
- package/dist/components/seki-sheet-title.js +3 -3
- package/dist/components/seki-sheet-trigger.js +3 -3
- package/dist/components/seki-sheet.js +4 -4
- package/dist/components/seki-sidebar-content.js +3 -3
- package/dist/components/seki-sidebar-footer.js +3 -3
- package/dist/components/seki-sidebar-group-action.js +3 -3
- package/dist/components/seki-sidebar-group-content.js +3 -3
- package/dist/components/seki-sidebar-group-label.js +1 -1
- package/dist/components/seki-sidebar-group.js +4 -4
- package/dist/components/seki-sidebar-header.js +3 -3
- package/dist/components/seki-sidebar-inset.js +3 -3
- package/dist/components/seki-sidebar-menu-action.js +3 -3
- package/dist/components/seki-sidebar-menu-badge.js +3 -3
- package/dist/components/seki-sidebar-menu-button.js +6 -4
- package/dist/components/seki-sidebar-menu-item.js +3 -3
- package/dist/components/seki-sidebar-menu-skeleton.js +3 -3
- package/dist/components/seki-sidebar-menu-sub-button.js +4 -4
- package/dist/components/seki-sidebar-menu-sub-item.js +3 -3
- package/dist/components/seki-sidebar-menu-sub.js +8 -36
- package/dist/components/seki-sidebar-menu.js +3 -3
- package/dist/components/seki-sidebar-provider.js +3 -3
- package/dist/components/seki-sidebar-rail.js +3 -3
- package/dist/components/seki-sidebar-separator.js +3 -3
- package/dist/components/seki-sidebar-trigger.js +3 -3
- package/dist/components/seki-sidebar.js +4 -4
- package/dist/components/seki-skeleton.js +3 -3
- package/dist/components/seki-slider.d.ts +11 -0
- package/dist/components/seki-slider.js +289 -0
- package/dist/components/seki-spinner.d.ts +11 -0
- package/dist/components/seki-spinner.js +66 -0
- package/dist/components/seki-switch.js +1 -1
- package/dist/components/seki-table-body.d.ts +11 -0
- package/dist/components/seki-table-body.js +36 -0
- package/dist/components/seki-table-caption.d.ts +11 -0
- package/dist/components/seki-table-caption.js +36 -0
- package/dist/components/seki-table-cell.d.ts +11 -0
- package/dist/components/seki-table-cell.js +47 -0
- package/dist/components/seki-table-footer.d.ts +11 -0
- package/dist/components/seki-table-footer.js +36 -0
- package/dist/components/seki-table-head.d.ts +11 -0
- package/dist/components/seki-table-head.js +58 -0
- package/dist/components/seki-table-header.d.ts +11 -0
- package/dist/components/seki-table-header.js +36 -0
- package/dist/components/seki-table-row.d.ts +11 -0
- package/dist/components/seki-table-row.js +45 -0
- package/dist/components/seki-table.d.ts +11 -0
- package/dist/components/seki-table.js +38 -0
- package/dist/components/seki-tabs-content.d.ts +11 -0
- package/dist/components/seki-tabs-content.js +74 -0
- package/dist/components/seki-tabs-list.d.ts +11 -0
- package/dist/components/seki-tabs-list.js +48 -0
- package/dist/components/seki-tabs-trigger.d.ts +11 -0
- package/dist/components/seki-tabs-trigger.js +189 -0
- package/dist/components/seki-tabs.d.ts +11 -0
- package/dist/components/seki-tabs.js +103 -0
- package/dist/components/seki-textarea.d.ts +11 -0
- package/dist/components/seki-textarea.js +128 -0
- package/dist/components/seki-toaster.d.ts +11 -0
- package/dist/components/seki-toaster.js +147 -0
- package/dist/components/seki-toggle.d.ts +11 -0
- package/dist/components/seki-toggle.js +113 -0
- package/dist/components/seki-tooltip.js +3 -3
- package/dist/esm/focus-trap-CP7ZtKCE.js +71 -0
- package/dist/esm/{index-BGmDiTq4.js → index-DMWKw3IP.js} +4 -1
- package/dist/esm/index-iWCgRMLC.js +22141 -0
- package/dist/esm/index.js +28 -2
- package/dist/esm/loader.js +3 -3
- package/dist/esm/seki-accordion-content.entry.js +80 -0
- package/dist/esm/seki-accordion-item.entry.js +68 -0
- package/dist/esm/seki-accordion-trigger.entry.js +111 -0
- package/dist/esm/seki-accordion.entry.js +107 -0
- package/dist/esm/seki-alert-description.entry.js +16 -0
- package/dist/esm/seki-alert-title.entry.js +16 -0
- package/dist/esm/seki-alert.entry.js +42 -0
- package/dist/esm/seki-aspect-ratio.entry.js +33 -0
- package/dist/esm/seki-avatar-fallback.entry.js +44 -0
- package/dist/esm/seki-avatar-image.entry.js +52 -0
- package/dist/esm/seki-avatar.entry.js +73 -0
- package/dist/esm/seki-badge.entry.js +2 -2
- package/dist/esm/seki-breadcrumb-ellipsis.entry.js +3 -3
- package/dist/esm/seki-breadcrumb-item.entry.js +3 -3
- package/dist/esm/seki-breadcrumb-link.entry.js +3 -3
- package/dist/esm/seki-breadcrumb-list.entry.js +3 -3
- package/dist/esm/seki-breadcrumb-page.entry.js +3 -3
- package/dist/esm/seki-breadcrumb-separator.entry.js +3 -3
- package/dist/esm/seki-breadcrumb.entry.js +3 -3
- package/dist/esm/seki-button-group.entry.js +58 -0
- package/dist/esm/seki-button.entry.js +3 -3
- package/dist/esm/seki-calendar.entry.js +330 -0
- package/dist/esm/seki-card-action.entry.js +3 -3
- package/dist/esm/seki-card-content.entry.js +3 -3
- package/dist/esm/seki-card-description.entry.js +3 -3
- package/dist/esm/seki-card-footer.entry.js +3 -3
- package/dist/esm/seki-card-header.entry.js +3 -3
- package/dist/esm/seki-card-title.entry.js +2 -2
- package/dist/esm/seki-card.entry.js +3 -3
- package/dist/esm/seki-carousel-content.entry.js +15 -0
- package/dist/esm/seki-carousel-dots.entry.js +95 -0
- package/dist/esm/seki-carousel-item.entry.js +20 -0
- package/dist/esm/seki-carousel-next.entry.js +58 -0
- package/dist/esm/seki-carousel-previous.entry.js +58 -0
- package/dist/esm/seki-carousel.entry.js +1936 -0
- package/dist/esm/seki-checkbox.entry.js +119 -0
- package/dist/esm/seki-collapsible-content.entry.js +96 -0
- package/dist/esm/seki-collapsible-trigger.entry.js +49 -0
- package/dist/esm/seki-collapsible.entry.js +100 -0
- package/dist/esm/seki-data-table.entry.js +540 -0
- package/dist/esm/seki-date-picker.entry.js +204 -0
- package/dist/esm/seki-dialog-close.entry.js +19 -0
- package/dist/esm/seki-dialog-content.entry.js +96 -0
- package/dist/esm/seki-dialog-description.entry.js +22 -0
- package/dist/esm/seki-dialog-footer.entry.js +15 -0
- package/dist/esm/seki-dialog-header.entry.js +15 -0
- package/dist/esm/seki-dialog-overlay.entry.js +51 -0
- package/dist/esm/seki-dialog-title.entry.js +22 -0
- package/dist/esm/seki-dialog-trigger.entry.js +20 -0
- package/dist/esm/seki-dialog.entry.js +107 -0
- package/dist/esm/seki-dropdown-menu-checkbox.entry.js +52 -0
- package/dist/esm/seki-dropdown-menu-content.entry.js +176 -0
- package/dist/esm/seki-dropdown-menu-item.entry.js +49 -0
- package/dist/{sekiui/p-04352a21.entry.js → esm/seki-dropdown-menu-label.entry.js} +22 -1
- package/dist/esm/seki-dropdown-menu-radio-group.entry.js +40 -0
- package/dist/esm/seki-dropdown-menu-radio.entry.js +56 -0
- package/dist/{sekiui/p-c91f9078.entry.js → esm/seki-dropdown-menu-separator.entry.js} +15 -1
- package/dist/esm/seki-dropdown-menu-shortcut.entry.js +15 -0
- package/dist/esm/seki-dropdown-menu-trigger.entry.js +37 -0
- package/dist/esm/seki-dropdown-menu.entry.js +145 -0
- package/dist/esm/seki-field-description.entry.js +3 -3
- package/dist/esm/seki-field-error.entry.js +3 -3
- package/dist/esm/seki-field-group.entry.js +3 -3
- package/dist/esm/seki-field-label.entry.js +3 -3
- package/dist/esm/seki-field-legend.entry.js +3 -3
- package/dist/esm/seki-field.entry.js +3 -3
- package/dist/esm/seki-fieldset.entry.js +3 -3
- package/dist/esm/seki-input.entry.js +3 -3
- package/dist/esm/seki-kbd.entry.js +19 -0
- package/dist/esm/seki-navigation-menu-content.entry.js +215 -0
- package/dist/esm/seki-navigation-menu-item.entry.js +107 -0
- package/dist/esm/seki-navigation-menu-link.entry.js +86 -0
- package/dist/esm/seki-navigation-menu-list.entry.js +109 -0
- package/dist/esm/seki-navigation-menu-trigger.entry.js +193 -0
- package/dist/esm/seki-navigation-menu-viewport.entry.js +162 -0
- package/dist/esm/seki-navigation-menu.entry.js +231 -0
- package/dist/esm/seki-pagination-content.entry.js +3 -3
- package/dist/esm/seki-pagination-ellipsis.entry.js +3 -3
- package/dist/esm/seki-pagination-item.entry.js +3 -3
- package/dist/esm/seki-pagination-link.entry.js +4 -4
- package/dist/esm/seki-pagination-next.entry.js +4 -4
- package/dist/esm/seki-pagination-previous.entry.js +4 -4
- package/dist/esm/seki-pagination.entry.js +3 -3
- package/dist/esm/seki-popover-close.entry.js +19 -0
- package/dist/esm/seki-popover-content.entry.js +132 -0
- package/dist/esm/seki-popover-trigger.entry.js +21 -0
- package/dist/esm/seki-popover.entry.js +157 -0
- package/dist/esm/seki-progress.entry.js +73 -0
- package/dist/esm/seki-radio-group-item.entry.js +55 -0
- package/dist/esm/seki-radio-group.entry.js +127 -0
- package/dist/esm/seki-select-content.entry.js +2 -2
- package/dist/esm/seki-select-group.entry.js +3 -3
- package/dist/esm/seki-select-option.entry.js +3 -3
- package/dist/esm/seki-select-trigger.entry.js +2 -2
- package/dist/esm/seki-select.entry.js +3 -3
- package/dist/esm/seki-separator.entry.js +2 -2
- package/dist/esm/seki-sheet-close.entry.js +3 -3
- package/dist/esm/seki-sheet-content.entry.js +4 -4
- package/dist/esm/seki-sheet-description.entry.js +3 -3
- package/dist/esm/seki-sheet-footer.entry.js +3 -3
- package/dist/esm/seki-sheet-header.entry.js +3 -3
- package/dist/esm/seki-sheet-title.entry.js +3 -3
- package/dist/esm/seki-sheet-trigger.entry.js +3 -3
- package/dist/esm/seki-sheet.entry.js +4 -4
- package/dist/esm/seki-sidebar-content.entry.js +3 -3
- package/dist/esm/seki-sidebar-footer.entry.js +3 -3
- package/dist/esm/seki-sidebar-group-action.entry.js +3 -3
- package/dist/esm/seki-sidebar-group-content.entry.js +3 -3
- package/dist/esm/seki-sidebar-group-label.entry.js +3 -3
- package/dist/esm/seki-sidebar-group.entry.js +3 -3
- package/dist/esm/seki-sidebar-header.entry.js +3 -3
- package/dist/esm/seki-sidebar-inset.entry.js +3 -3
- package/dist/esm/seki-sidebar-menu-action.entry.js +3 -3
- package/dist/esm/seki-sidebar-menu-badge.entry.js +3 -3
- package/dist/esm/seki-sidebar-menu-button.entry.js +6 -4
- package/dist/esm/seki-sidebar-menu-item.entry.js +3 -3
- package/dist/esm/seki-sidebar-menu-skeleton.entry.js +3 -3
- package/dist/esm/seki-sidebar-menu-sub-button.entry.js +4 -4
- package/dist/esm/seki-sidebar-menu-sub-item.entry.js +3 -3
- package/dist/esm/seki-sidebar-menu-sub.entry.js +7 -33
- package/dist/esm/seki-sidebar-menu.entry.js +3 -3
- package/dist/esm/seki-sidebar-provider.entry.js +3 -3
- package/dist/esm/seki-sidebar-rail.entry.js +3 -3
- package/dist/esm/seki-sidebar-separator.entry.js +3 -3
- package/dist/esm/seki-sidebar-trigger.entry.js +3 -3
- package/dist/esm/seki-sidebar.entry.js +4 -4
- package/dist/esm/seki-skeleton.entry.js +3 -3
- package/dist/esm/seki-slider.entry.js +256 -0
- package/dist/esm/seki-spinner.entry.js +41 -0
- package/dist/esm/seki-switch.entry.js +3 -3
- package/dist/esm/seki-table-body.entry.js +15 -0
- package/dist/esm/seki-table-caption.entry.js +15 -0
- package/dist/esm/seki-table-cell.entry.js +23 -0
- package/dist/esm/seki-table-footer.entry.js +15 -0
- package/dist/esm/seki-table-head.entry.js +32 -0
- package/dist/esm/seki-table-header.entry.js +15 -0
- package/dist/esm/seki-table-row.entry.js +22 -0
- package/dist/esm/seki-table.entry.js +15 -0
- package/dist/esm/seki-tabs-content.entry.js +50 -0
- package/dist/esm/seki-tabs-list.entry.js +27 -0
- package/dist/esm/seki-tabs-trigger.entry.js +164 -0
- package/dist/esm/seki-tabs.entry.js +74 -0
- package/dist/esm/seki-textarea.entry.js +97 -0
- package/dist/esm/seki-toaster.entry.js +121 -0
- package/dist/esm/seki-toggle.entry.js +84 -0
- package/dist/esm/seki-tooltip.entry.js +3 -3
- package/dist/esm/sekiui.js +3 -3
- package/dist/sekiui/index.esm.js +1 -1
- package/dist/sekiui/p-0046df3b.entry.js +1 -0
- package/dist/sekiui/p-00f97767.entry.js +1 -0
- package/dist/sekiui/p-01209a40.entry.js +1 -0
- package/dist/sekiui/p-0228a5f0.entry.js +1 -0
- package/dist/sekiui/p-02db203d.entry.js +1 -0
- package/dist/sekiui/p-031f9127.entry.js +1 -0
- package/dist/sekiui/{p-f78f3bd1.entry.js → p-07a1344f.entry.js} +1 -1
- package/dist/{cdn/p-BHbxurmj.js → sekiui/p-085e109c.entry.js} +1 -33
- package/dist/sekiui/{p-b4aae4b5.entry.js → p-0868bf4c.entry.js} +1 -1
- package/dist/sekiui/p-0977b2e7.entry.js +1 -0
- package/dist/sekiui/{p-b0fa7367.entry.js → p-09996a45.entry.js} +1 -1
- package/dist/sekiui/p-09d2f9ac.entry.js +1 -0
- package/dist/sekiui/p-0b86b994.entry.js +1 -0
- package/dist/sekiui/p-0d12312f.entry.js +1 -0
- package/dist/sekiui/p-0dca70f1.entry.js +1 -0
- package/dist/sekiui/{p-89caba18.entry.js → p-0e3b26e6.entry.js} +1 -1
- package/dist/sekiui/p-0fce9401.entry.js +1 -0
- package/dist/sekiui/{p-64586664.entry.js → p-12d561e1.entry.js} +1 -1
- package/dist/sekiui/{p-610ee94a.entry.js → p-13162301.entry.js} +1 -1
- package/dist/sekiui/p-143f0310.entry.js +1 -0
- package/dist/sekiui/p-1450382e.entry.js +1 -0
- package/dist/sekiui/{p-443bc85e.entry.js → p-15264bb1.entry.js} +1 -1
- package/dist/sekiui/p-18d2d4d0.entry.js +1 -0
- package/dist/sekiui/p-1cafb949.entry.js +1 -0
- package/dist/sekiui/p-1d99afff.entry.js +1 -0
- package/dist/sekiui/p-1e9e86d0.entry.js +1 -0
- package/dist/sekiui/{p-e15ad7b9.entry.js → p-1f4267ea.entry.js} +1 -1
- package/dist/sekiui/{p-791aa8d4.entry.js → p-2421f4e1.entry.js} +1 -1
- package/dist/sekiui/p-25b02509.entry.js +1 -0
- package/dist/sekiui/p-25e67d85.entry.js +1 -0
- package/dist/sekiui/{p-10964d26.entry.js → p-305bbc98.entry.js} +1 -1
- package/dist/sekiui/p-352c12d1.entry.js +1 -0
- package/dist/sekiui/p-37081f6c.entry.js +1 -0
- package/dist/sekiui/p-3b882835.entry.js +1 -0
- package/dist/sekiui/{p-28d88915.entry.js → p-3edc1b78.entry.js} +1 -1
- package/dist/sekiui/p-3f557afe.entry.js +1 -0
- package/dist/sekiui/p-49c57dd7.entry.js +1 -0
- package/dist/sekiui/p-4a2144e8.entry.js +1 -0
- package/dist/sekiui/{p-11986f7b.entry.js → p-4a50043e.entry.js} +1 -1
- package/dist/sekiui/p-4bc7f9fe.entry.js +1 -0
- package/dist/sekiui/p-4e9f83b5.entry.js +1 -0
- package/dist/sekiui/p-505ad5ad.entry.js +1 -0
- package/dist/sekiui/{p-dd4eb7a1.entry.js → p-53f602eb.entry.js} +1 -1
- package/dist/sekiui/{p-83a7d43a.entry.js → p-54c8ab50.entry.js} +1 -1
- package/dist/sekiui/p-54d025ca.entry.js +1 -0
- package/dist/sekiui/p-589faa14.entry.js +1 -0
- package/dist/sekiui/p-598ddcbc.entry.js +1 -0
- package/dist/sekiui/p-5caa05a9.entry.js +1 -0
- package/dist/sekiui/{p-cf84e1fe.entry.js → p-5f383cf5.entry.js} +1 -1
- package/dist/sekiui/p-64197c6d.entry.js +1 -0
- package/dist/sekiui/p-6526511b.entry.js +1 -0
- package/dist/sekiui/p-67b2cbfe.entry.js +1 -0
- package/dist/sekiui/p-68a17592.entry.js +1 -0
- package/dist/sekiui/p-69b12832.entry.js +1 -0
- package/dist/sekiui/{p-997def36.entry.js → p-69d568a0.entry.js} +1 -1
- package/dist/sekiui/p-6a5777c9.entry.js +1 -0
- package/dist/sekiui/p-6bcdfc9f.entry.js +1 -0
- package/dist/sekiui/p-6fcc2712.entry.js +1 -0
- package/dist/sekiui/{p-18f4b5ac.entry.js → p-706b3351.entry.js} +1 -1
- package/dist/sekiui/p-7179fbae.entry.js +1 -0
- package/dist/sekiui/p-72fce202.entry.js +1 -0
- package/dist/sekiui/p-7335a65a.entry.js +1 -0
- package/dist/sekiui/p-75c12cb9.entry.js +1 -0
- package/dist/sekiui/p-765bf02c.entry.js +1 -0
- package/dist/sekiui/p-77146005.entry.js +1 -0
- package/dist/sekiui/p-7aa6c152.entry.js +1 -0
- package/dist/sekiui/p-7b10519a.entry.js +1 -0
- package/dist/sekiui/{p-a9c3a1eb.entry.js → p-7bdf347f.entry.js} +1 -1
- package/dist/sekiui/{p-962db19e.entry.js → p-7c75559a.entry.js} +1 -1
- package/dist/sekiui/p-7e621ce2.entry.js +1 -0
- package/dist/sekiui/p-7ec9ea66.entry.js +1 -0
- package/dist/sekiui/p-80cb25cc.entry.js +1 -0
- package/dist/sekiui/p-8515402e.entry.js +1 -0
- package/dist/sekiui/p-866c0857.entry.js +1 -0
- package/dist/sekiui/p-882f256e.entry.js +1 -0
- package/dist/sekiui/p-8966a28d.entry.js +1 -0
- package/dist/sekiui/p-97f64fa1.entry.js +1 -0
- package/dist/sekiui/{p-fc221992.entry.js → p-9cfd0c41.entry.js} +1 -1
- package/dist/sekiui/p-9d436e67.entry.js +1 -0
- package/dist/sekiui/p-9d958c7a.entry.js +1 -0
- package/dist/sekiui/p-9db819cf.entry.js +1 -0
- package/dist/sekiui/p-9e87ad12.entry.js +1 -0
- package/dist/sekiui/p-9f0fc24c.entry.js +1 -0
- package/dist/sekiui/p-CP7ZtKCE.js +1 -0
- package/dist/sekiui/p-DMWKw3IP.js +2 -0
- package/dist/sekiui/p-a082c299.entry.js +1 -0
- package/dist/sekiui/p-a1b8406c.entry.js +1 -0
- package/dist/sekiui/p-a896c5d2.entry.js +1 -0
- package/dist/sekiui/p-ab6d98a4.entry.js +1 -0
- package/dist/sekiui/p-ac18d9f6.entry.js +1 -0
- package/dist/sekiui/p-acbd75ad.entry.js +1 -0
- package/dist/sekiui/p-ace43fbb.entry.js +1 -0
- package/dist/sekiui/p-ad81897a.entry.js +1 -0
- package/dist/sekiui/p-afbdf831.entry.js +1 -0
- package/dist/sekiui/p-b19e2b9a.entry.js +1 -0
- package/dist/sekiui/p-b2f33d5d.entry.js +1 -0
- package/dist/sekiui/p-b48a4bd3.entry.js +1 -0
- package/dist/sekiui/p-b4cc7720.entry.js +1 -0
- package/dist/sekiui/p-b537a94e.entry.js +1 -0
- package/dist/sekiui/p-b6c8a13e.entry.js +1 -0
- package/dist/sekiui/p-b8710792.entry.js +1 -0
- package/dist/sekiui/p-bb037b13.entry.js +1 -0
- package/dist/sekiui/p-bc2a682c.entry.js +1 -0
- package/dist/sekiui/p-bd3f5b8d.entry.js +1 -0
- package/dist/sekiui/p-bf0e084f.entry.js +1 -0
- package/dist/sekiui/p-bf0fc580.entry.js +1 -0
- package/dist/sekiui/p-c3fabfaf.entry.js +1 -0
- package/dist/sekiui/p-c71e88f1.entry.js +1 -0
- package/dist/sekiui/p-c7c07176.entry.js +1 -0
- package/dist/sekiui/p-c87a1e68.entry.js +1 -0
- package/dist/sekiui/p-c8e6609c.entry.js +1 -0
- package/dist/sekiui/p-c9102343.entry.js +1 -0
- package/dist/sekiui/p-c9f4344b.entry.js +1 -0
- package/dist/sekiui/p-ca1dee5a.entry.js +1 -0
- package/dist/sekiui/p-cbb3cfc5.entry.js +1 -0
- package/dist/sekiui/p-d08d0dee.entry.js +1 -0
- package/dist/sekiui/p-d1ec1efa.entry.js +1 -0
- package/dist/sekiui/p-d23bdee7.entry.js +1 -0
- package/dist/sekiui/p-d634f921.entry.js +1 -0
- package/dist/sekiui/{p-69abaa3d.entry.js → p-d7a82090.entry.js} +1 -1
- package/dist/sekiui/p-d8c158b8.entry.js +1 -0
- package/dist/sekiui/p-dc55ac4f.entry.js +1 -0
- package/dist/sekiui/p-dcadf0f0.entry.js +1 -0
- package/dist/sekiui/p-dd0ed49c.entry.js +1 -0
- package/dist/sekiui/p-df5f3abc.entry.js +1 -0
- package/dist/sekiui/p-e2093eba.entry.js +1 -0
- package/dist/sekiui/{p-8fb5d3ee.entry.js → p-e2e01d65.entry.js} +1 -1
- package/dist/sekiui/p-e3b9398b.entry.js +1 -0
- package/dist/sekiui/p-e5b941b4.entry.js +1 -0
- package/dist/sekiui/p-e780bcfe.entry.js +1 -0
- package/dist/sekiui/p-e8c952bc.entry.js +1 -0
- package/dist/sekiui/p-e90babd3.entry.js +1 -0
- package/dist/sekiui/p-e98ea402.entry.js +1 -0
- package/dist/sekiui/p-e9f842fb.entry.js +1 -0
- package/dist/sekiui/p-ea539428.entry.js +1 -0
- package/dist/sekiui/p-eb2befd8.entry.js +1 -0
- package/dist/sekiui/p-ee6ac124.entry.js +1 -0
- package/dist/sekiui/p-f02bf468.entry.js +1 -0
- package/dist/sekiui/p-f182d4a1.entry.js +1 -0
- package/dist/sekiui/p-f2d18ba7.entry.js +1 -0
- package/dist/sekiui/p-f41807af.entry.js +1 -0
- package/dist/sekiui/p-f4ddf894.entry.js +1 -0
- package/dist/sekiui/p-f8125181.entry.js +1 -0
- package/dist/sekiui/p-f90c8e1c.entry.js +1 -0
- package/dist/sekiui/p-fad01ffd.entry.js +1 -0
- package/dist/sekiui/p-fc16a2fc.entry.js +1 -0
- package/dist/sekiui/p-fd320255.entry.js +1 -0
- package/dist/sekiui/p-ffbd965e.entry.js +1 -0
- package/dist/sekiui/p-iWCgRMLC.js +1 -0
- package/dist/sekiui/sekiui.css +2 -2
- package/dist/sekiui/sekiui.esm.js +1 -1
- package/dist/types/components/accordion/seki-accordion-content.d.ts +19 -0
- package/dist/types/components/accordion/seki-accordion-item.d.ts +40 -0
- package/dist/types/components/accordion/seki-accordion-trigger.d.ts +23 -0
- package/dist/types/components/accordion/seki-accordion.d.ts +61 -0
- package/dist/types/components/alert/seki-alert-description.d.ts +19 -0
- package/dist/types/components/alert/seki-alert-title.d.ts +16 -0
- package/dist/types/components/alert/seki-alert.d.ts +29 -0
- package/dist/types/components/aspect-ratio/seki-aspect-ratio.d.ts +17 -0
- package/dist/types/components/aspect-ratio/seki-aspect-ratio.interface.d.ts +11 -0
- package/dist/types/components/avatar/seki-avatar-fallback.d.ts +27 -0
- package/dist/types/components/avatar/seki-avatar-image.d.ts +41 -0
- package/dist/types/components/avatar/seki-avatar.d.ts +39 -0
- package/dist/types/components/button-group/seki-button-group.d.ts +19 -0
- package/dist/types/components/calendar/seki-calendar.d.ts +98 -0
- package/dist/types/components/carousel/seki-carousel-content.d.ts +9 -0
- package/dist/types/components/carousel/seki-carousel-dots.d.ts +21 -0
- package/dist/types/components/carousel/seki-carousel-item.d.ts +13 -0
- package/dist/types/components/carousel/seki-carousel-next.d.ts +19 -0
- package/dist/types/components/carousel/seki-carousel-previous.d.ts +19 -0
- package/dist/types/components/carousel/seki-carousel.d.ts +95 -0
- package/dist/types/components/checkbox/seki-checkbox.d.ts +86 -0
- package/dist/types/components/collapsible/seki-collapsible-content.d.ts +22 -0
- package/dist/types/components/collapsible/seki-collapsible-trigger.d.ts +18 -0
- package/dist/types/components/collapsible/seki-collapsible.d.ts +62 -0
- package/dist/types/components/data-table/interfaces.d.ts +208 -0
- package/dist/types/components/data-table/seki-data-table.d.ts +125 -0
- package/dist/types/components/data-table/utils/virtual-scroll.d.ts +37 -0
- package/dist/types/components/date-picker/seki-date-picker.d.ts +109 -0
- package/dist/types/components/dialog/seki-dialog-close.d.ts +13 -0
- package/dist/types/components/dialog/seki-dialog-content.d.ts +25 -0
- package/dist/types/components/dialog/seki-dialog-description.d.ts +12 -0
- package/dist/types/components/dialog/seki-dialog-footer.d.ts +10 -0
- package/dist/types/components/dialog/seki-dialog-header.d.ts +10 -0
- package/dist/types/components/dialog/seki-dialog-overlay.d.ts +20 -0
- package/dist/types/components/dialog/seki-dialog-title.d.ts +12 -0
- package/dist/types/components/dialog/seki-dialog-trigger.d.ts +14 -0
- package/dist/types/components/dialog/seki-dialog.d.ts +63 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu-checkbox.d.ts +29 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu-content.d.ts +39 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu-item.d.ts +27 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu-label.d.ts +14 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu-radio-group.d.ts +30 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu-radio.d.ts +31 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu-separator.d.ts +8 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu-shortcut.d.ts +10 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu-trigger.d.ts +17 -0
- package/dist/types/components/dropdown-menu/seki-dropdown-menu.d.ts +77 -0
- package/dist/types/components/kbd/seki-kbd.d.ts +7 -0
- package/dist/types/components/navigation-menu/seki-navigation-menu-content.d.ts +39 -0
- package/dist/types/components/navigation-menu/seki-navigation-menu-item.d.ts +31 -0
- package/dist/types/components/navigation-menu/seki-navigation-menu-link.d.ts +21 -0
- package/dist/types/components/navigation-menu/seki-navigation-menu-list.d.ts +21 -0
- package/dist/types/components/navigation-menu/seki-navigation-menu-trigger.d.ts +34 -0
- package/dist/types/components/navigation-menu/seki-navigation-menu-viewport.d.ts +28 -0
- package/dist/types/components/navigation-menu/seki-navigation-menu.d.ts +96 -0
- package/dist/types/components/popover/seki-popover-close.d.ts +13 -0
- package/dist/types/components/popover/seki-popover-content.d.ts +40 -0
- package/dist/types/components/popover/seki-popover-trigger.d.ts +14 -0
- package/dist/types/components/popover/seki-popover.d.ts +85 -0
- package/dist/types/components/progress/seki-progress.d.ts +37 -0
- package/dist/types/components/radio-group/seki-radio-group-item.d.ts +50 -0
- package/dist/types/components/radio-group/seki-radio-group.d.ts +86 -0
- package/dist/types/components/sidebar/seki-sidebar-menu-sub.d.ts +0 -3
- package/dist/types/components/slider/seki-slider.d.ts +130 -0
- package/dist/types/components/spinner/seki-spinner.d.ts +24 -0
- package/dist/types/components/spinner/seki-spinner.interface.d.ts +28 -0
- package/dist/types/components/table/seki-table-body.d.ts +8 -0
- package/dist/types/components/table/seki-table-caption.d.ts +8 -0
- package/dist/types/components/table/seki-table-cell.d.ts +17 -0
- package/dist/types/components/table/seki-table-footer.d.ts +8 -0
- package/dist/types/components/table/seki-table-head.d.ts +25 -0
- package/dist/types/components/table/seki-table-header.d.ts +8 -0
- package/dist/types/components/table/seki-table-row.d.ts +12 -0
- package/dist/types/components/table/seki-table.d.ts +25 -0
- package/dist/types/components/tabs/seki-tabs-content.d.ts +24 -0
- package/dist/types/components/tabs/seki-tabs-list.d.ts +12 -0
- package/dist/types/components/tabs/seki-tabs-trigger.d.ts +35 -0
- package/dist/types/components/tabs/seki-tabs.d.ts +51 -0
- package/dist/types/components/textarea/seki-textarea.d.ts +107 -0
- package/dist/types/components/toast/seki-toaster.d.ts +58 -0
- package/dist/types/components/toast/toast.d.ts +46 -0
- package/dist/types/components/toggle/seki-toggle.d.ts +67 -0
- package/dist/types/components.d.ts +6641 -1810
- package/dist/types/utils/calendar/date-utils.d.ts +68 -0
- package/dist/types/utils/common.d.ts +12 -0
- package/dist/types/utils/dialog/focus-trap.d.ts +27 -0
- package/package.json +7 -2
- package/dist/cdn/p-DB0EE9zX.js +0 -111
- package/dist/components/p-BwXR4cDh.js +0 -111
- package/dist/components/p-COLDALVZ.js +0 -33
- package/dist/sekiui/p-05d32c2b.entry.js +0 -1
- package/dist/sekiui/p-07c068ab.entry.js +0 -1
- package/dist/sekiui/p-0a2eeae8.entry.js +0 -1
- package/dist/sekiui/p-11fb8623.entry.js +0 -1
- package/dist/sekiui/p-1bab20f5.entry.js +0 -1
- package/dist/sekiui/p-1d130353.entry.js +0 -1
- package/dist/sekiui/p-243d94e7.entry.js +0 -1
- package/dist/sekiui/p-246f7350.entry.js +0 -1
- package/dist/sekiui/p-24c190b3.entry.js +0 -1
- package/dist/sekiui/p-25d33102.entry.js +0 -1
- package/dist/sekiui/p-33d00106.entry.js +0 -1
- package/dist/sekiui/p-3faad89c.entry.js +0 -1
- package/dist/sekiui/p-4e0d1d81.entry.js +0 -1
- package/dist/sekiui/p-581ada61.entry.js +0 -1
- package/dist/sekiui/p-5a06dd77.entry.js +0 -1
- package/dist/sekiui/p-6cbd155d.entry.js +0 -1
- package/dist/sekiui/p-7605bbc2.entry.js +0 -1
- package/dist/sekiui/p-7b1e1352.entry.js +0 -1
- package/dist/sekiui/p-885cd0b6.entry.js +0 -1
- package/dist/sekiui/p-96b0b777.entry.js +0 -1
- package/dist/sekiui/p-BGmDiTq4.js +0 -2
- package/dist/sekiui/p-a72e57e7.entry.js +0 -1
- package/dist/sekiui/p-ac1d1faa.entry.js +0 -1
- package/dist/sekiui/p-ac32edd9.entry.js +0 -1
- package/dist/sekiui/p-b2886975.entry.js +0 -1
- package/dist/sekiui/p-bdf13ed4.entry.js +0 -1
- package/dist/sekiui/p-c42e6264.entry.js +0 -1
- package/dist/sekiui/p-c5cc3f3e.entry.js +0 -1
- package/dist/sekiui/p-cec52ed7.entry.js +0 -1
- package/dist/sekiui/p-d12b6412.entry.js +0 -1
- package/dist/sekiui/p-d7a568dc.entry.js +0 -1
- package/dist/sekiui/p-ddb1d6bb.entry.js +0 -1
- package/dist/sekiui/p-e14fd923.entry.js +0 -1
- package/dist/sekiui/p-e3945122.entry.js +0 -1
- package/dist/sekiui/p-e4d3d274.entry.js +0 -1
- package/dist/sekiui/p-e825d1ef.entry.js +0 -1
- package/dist/sekiui/p-e91724f5.entry.js +0 -1
- package/dist/sekiui/p-edddd260.entry.js +0 -1
- package/dist/sekiui/p-ee507a57.entry.js +0 -1
- package/dist/sekiui/p-ee85d935.entry.js +0 -1
- package/dist/sekiui/p-f015db9f.entry.js +0 -1
- package/dist/sekiui/p-f10ca04d.entry.js +0 -1
- package/dist/sekiui/p-f5f61b67.entry.js +0 -1
- package/dist/sekiui/p-fe18f971.entry.js +0 -1
|
@@ -0,0 +1,1936 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-DMWKw3IP.js';
|
|
2
|
+
|
|
3
|
+
function isNumber(subject) {
|
|
4
|
+
return typeof subject === 'number';
|
|
5
|
+
}
|
|
6
|
+
function isString(subject) {
|
|
7
|
+
return typeof subject === 'string';
|
|
8
|
+
}
|
|
9
|
+
function isBoolean(subject) {
|
|
10
|
+
return typeof subject === 'boolean';
|
|
11
|
+
}
|
|
12
|
+
function isObject(subject) {
|
|
13
|
+
return Object.prototype.toString.call(subject) === '[object Object]';
|
|
14
|
+
}
|
|
15
|
+
function mathAbs(n) {
|
|
16
|
+
return Math.abs(n);
|
|
17
|
+
}
|
|
18
|
+
function mathSign(n) {
|
|
19
|
+
return Math.sign(n);
|
|
20
|
+
}
|
|
21
|
+
function deltaAbs(valueB, valueA) {
|
|
22
|
+
return mathAbs(valueB - valueA);
|
|
23
|
+
}
|
|
24
|
+
function factorAbs(valueB, valueA) {
|
|
25
|
+
if (valueB === 0 || valueA === 0) return 0;
|
|
26
|
+
if (mathAbs(valueB) <= mathAbs(valueA)) return 0;
|
|
27
|
+
const diff = deltaAbs(mathAbs(valueB), mathAbs(valueA));
|
|
28
|
+
return mathAbs(diff / valueB);
|
|
29
|
+
}
|
|
30
|
+
function roundToTwoDecimals(num) {
|
|
31
|
+
return Math.round(num * 100) / 100;
|
|
32
|
+
}
|
|
33
|
+
function arrayKeys(array) {
|
|
34
|
+
return objectKeys(array).map(Number);
|
|
35
|
+
}
|
|
36
|
+
function arrayLast(array) {
|
|
37
|
+
return array[arrayLastIndex(array)];
|
|
38
|
+
}
|
|
39
|
+
function arrayLastIndex(array) {
|
|
40
|
+
return Math.max(0, array.length - 1);
|
|
41
|
+
}
|
|
42
|
+
function arrayIsLastIndex(array, index) {
|
|
43
|
+
return index === arrayLastIndex(array);
|
|
44
|
+
}
|
|
45
|
+
function arrayFromNumber(n, startAt = 0) {
|
|
46
|
+
return Array.from(Array(n), (_, i) => startAt + i);
|
|
47
|
+
}
|
|
48
|
+
function objectKeys(object) {
|
|
49
|
+
return Object.keys(object);
|
|
50
|
+
}
|
|
51
|
+
function objectsMergeDeep(objectA, objectB) {
|
|
52
|
+
return [objectA, objectB].reduce((mergedObjects, currentObject) => {
|
|
53
|
+
objectKeys(currentObject).forEach(key => {
|
|
54
|
+
const valueA = mergedObjects[key];
|
|
55
|
+
const valueB = currentObject[key];
|
|
56
|
+
const areObjects = isObject(valueA) && isObject(valueB);
|
|
57
|
+
mergedObjects[key] = areObjects ? objectsMergeDeep(valueA, valueB) : valueB;
|
|
58
|
+
});
|
|
59
|
+
return mergedObjects;
|
|
60
|
+
}, {});
|
|
61
|
+
}
|
|
62
|
+
function isMouseEvent(evt, ownerWindow) {
|
|
63
|
+
return typeof ownerWindow.MouseEvent !== 'undefined' && evt instanceof ownerWindow.MouseEvent;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function Alignment(align, viewSize) {
|
|
67
|
+
const predefined = {
|
|
68
|
+
start,
|
|
69
|
+
center,
|
|
70
|
+
end
|
|
71
|
+
};
|
|
72
|
+
function start() {
|
|
73
|
+
return 0;
|
|
74
|
+
}
|
|
75
|
+
function center(n) {
|
|
76
|
+
return end(n) / 2;
|
|
77
|
+
}
|
|
78
|
+
function end(n) {
|
|
79
|
+
return viewSize - n;
|
|
80
|
+
}
|
|
81
|
+
function measure(n, index) {
|
|
82
|
+
if (isString(align)) return predefined[align](n);
|
|
83
|
+
return align(viewSize, n, index);
|
|
84
|
+
}
|
|
85
|
+
const self = {
|
|
86
|
+
measure
|
|
87
|
+
};
|
|
88
|
+
return self;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function EventStore() {
|
|
92
|
+
let listeners = [];
|
|
93
|
+
function add(node, type, handler, options = {
|
|
94
|
+
passive: true
|
|
95
|
+
}) {
|
|
96
|
+
let removeListener;
|
|
97
|
+
if ('addEventListener' in node) {
|
|
98
|
+
node.addEventListener(type, handler, options);
|
|
99
|
+
removeListener = () => node.removeEventListener(type, handler, options);
|
|
100
|
+
} else {
|
|
101
|
+
const legacyMediaQueryList = node;
|
|
102
|
+
legacyMediaQueryList.addListener(handler);
|
|
103
|
+
removeListener = () => legacyMediaQueryList.removeListener(handler);
|
|
104
|
+
}
|
|
105
|
+
listeners.push(removeListener);
|
|
106
|
+
return self;
|
|
107
|
+
}
|
|
108
|
+
function clear() {
|
|
109
|
+
listeners = listeners.filter(remove => remove());
|
|
110
|
+
}
|
|
111
|
+
const self = {
|
|
112
|
+
add,
|
|
113
|
+
clear
|
|
114
|
+
};
|
|
115
|
+
return self;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
function Animations(ownerDocument, ownerWindow, update, render) {
|
|
119
|
+
const documentVisibleHandler = EventStore();
|
|
120
|
+
const fixedTimeStep = 1000 / 60;
|
|
121
|
+
let lastTimeStamp = null;
|
|
122
|
+
let accumulatedTime = 0;
|
|
123
|
+
let animationId = 0;
|
|
124
|
+
function init() {
|
|
125
|
+
documentVisibleHandler.add(ownerDocument, 'visibilitychange', () => {
|
|
126
|
+
if (ownerDocument.hidden) reset();
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function destroy() {
|
|
130
|
+
stop();
|
|
131
|
+
documentVisibleHandler.clear();
|
|
132
|
+
}
|
|
133
|
+
function animate(timeStamp) {
|
|
134
|
+
if (!animationId) return;
|
|
135
|
+
if (!lastTimeStamp) {
|
|
136
|
+
lastTimeStamp = timeStamp;
|
|
137
|
+
update();
|
|
138
|
+
update();
|
|
139
|
+
}
|
|
140
|
+
const timeElapsed = timeStamp - lastTimeStamp;
|
|
141
|
+
lastTimeStamp = timeStamp;
|
|
142
|
+
accumulatedTime += timeElapsed;
|
|
143
|
+
while (accumulatedTime >= fixedTimeStep) {
|
|
144
|
+
update();
|
|
145
|
+
accumulatedTime -= fixedTimeStep;
|
|
146
|
+
}
|
|
147
|
+
const alpha = accumulatedTime / fixedTimeStep;
|
|
148
|
+
render(alpha);
|
|
149
|
+
if (animationId) {
|
|
150
|
+
animationId = ownerWindow.requestAnimationFrame(animate);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
function start() {
|
|
154
|
+
if (animationId) return;
|
|
155
|
+
animationId = ownerWindow.requestAnimationFrame(animate);
|
|
156
|
+
}
|
|
157
|
+
function stop() {
|
|
158
|
+
ownerWindow.cancelAnimationFrame(animationId);
|
|
159
|
+
lastTimeStamp = null;
|
|
160
|
+
accumulatedTime = 0;
|
|
161
|
+
animationId = 0;
|
|
162
|
+
}
|
|
163
|
+
function reset() {
|
|
164
|
+
lastTimeStamp = null;
|
|
165
|
+
accumulatedTime = 0;
|
|
166
|
+
}
|
|
167
|
+
const self = {
|
|
168
|
+
init,
|
|
169
|
+
destroy,
|
|
170
|
+
start,
|
|
171
|
+
stop,
|
|
172
|
+
update,
|
|
173
|
+
render
|
|
174
|
+
};
|
|
175
|
+
return self;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
function Axis(axis, contentDirection) {
|
|
179
|
+
const isRightToLeft = contentDirection === 'rtl';
|
|
180
|
+
const isVertical = axis === 'y';
|
|
181
|
+
const scroll = isVertical ? 'y' : 'x';
|
|
182
|
+
const cross = isVertical ? 'x' : 'y';
|
|
183
|
+
const sign = !isVertical && isRightToLeft ? -1 : 1;
|
|
184
|
+
const startEdge = getStartEdge();
|
|
185
|
+
const endEdge = getEndEdge();
|
|
186
|
+
function measureSize(nodeRect) {
|
|
187
|
+
const {
|
|
188
|
+
height,
|
|
189
|
+
width
|
|
190
|
+
} = nodeRect;
|
|
191
|
+
return isVertical ? height : width;
|
|
192
|
+
}
|
|
193
|
+
function getStartEdge() {
|
|
194
|
+
if (isVertical) return 'top';
|
|
195
|
+
return isRightToLeft ? 'right' : 'left';
|
|
196
|
+
}
|
|
197
|
+
function getEndEdge() {
|
|
198
|
+
if (isVertical) return 'bottom';
|
|
199
|
+
return isRightToLeft ? 'left' : 'right';
|
|
200
|
+
}
|
|
201
|
+
function direction(n) {
|
|
202
|
+
return n * sign;
|
|
203
|
+
}
|
|
204
|
+
const self = {
|
|
205
|
+
scroll,
|
|
206
|
+
cross,
|
|
207
|
+
startEdge,
|
|
208
|
+
endEdge,
|
|
209
|
+
measureSize,
|
|
210
|
+
direction
|
|
211
|
+
};
|
|
212
|
+
return self;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
function Limit(min = 0, max = 0) {
|
|
216
|
+
const length = mathAbs(min - max);
|
|
217
|
+
function reachedMin(n) {
|
|
218
|
+
return n < min;
|
|
219
|
+
}
|
|
220
|
+
function reachedMax(n) {
|
|
221
|
+
return n > max;
|
|
222
|
+
}
|
|
223
|
+
function reachedAny(n) {
|
|
224
|
+
return reachedMin(n) || reachedMax(n);
|
|
225
|
+
}
|
|
226
|
+
function constrain(n) {
|
|
227
|
+
if (!reachedAny(n)) return n;
|
|
228
|
+
return reachedMin(n) ? min : max;
|
|
229
|
+
}
|
|
230
|
+
function removeOffset(n) {
|
|
231
|
+
if (!length) return n;
|
|
232
|
+
return n - length * Math.ceil((n - max) / length);
|
|
233
|
+
}
|
|
234
|
+
const self = {
|
|
235
|
+
length,
|
|
236
|
+
max,
|
|
237
|
+
min,
|
|
238
|
+
constrain,
|
|
239
|
+
reachedAny,
|
|
240
|
+
reachedMax,
|
|
241
|
+
reachedMin,
|
|
242
|
+
removeOffset
|
|
243
|
+
};
|
|
244
|
+
return self;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
function Counter(max, start, loop) {
|
|
248
|
+
const {
|
|
249
|
+
constrain
|
|
250
|
+
} = Limit(0, max);
|
|
251
|
+
const loopEnd = max + 1;
|
|
252
|
+
let counter = withinLimit(start);
|
|
253
|
+
function withinLimit(n) {
|
|
254
|
+
return !loop ? constrain(n) : mathAbs((loopEnd + n) % loopEnd);
|
|
255
|
+
}
|
|
256
|
+
function get() {
|
|
257
|
+
return counter;
|
|
258
|
+
}
|
|
259
|
+
function set(n) {
|
|
260
|
+
counter = withinLimit(n);
|
|
261
|
+
return self;
|
|
262
|
+
}
|
|
263
|
+
function add(n) {
|
|
264
|
+
return clone().set(get() + n);
|
|
265
|
+
}
|
|
266
|
+
function clone() {
|
|
267
|
+
return Counter(max, get(), loop);
|
|
268
|
+
}
|
|
269
|
+
const self = {
|
|
270
|
+
get,
|
|
271
|
+
set,
|
|
272
|
+
add,
|
|
273
|
+
clone
|
|
274
|
+
};
|
|
275
|
+
return self;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
function DragHandler(axis, rootNode, ownerDocument, ownerWindow, target, dragTracker, location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, baseFriction, watchDrag) {
|
|
279
|
+
const {
|
|
280
|
+
cross: crossAxis,
|
|
281
|
+
direction
|
|
282
|
+
} = axis;
|
|
283
|
+
const focusNodes = ['INPUT', 'SELECT', 'TEXTAREA'];
|
|
284
|
+
const nonPassiveEvent = {
|
|
285
|
+
passive: false
|
|
286
|
+
};
|
|
287
|
+
const initEvents = EventStore();
|
|
288
|
+
const dragEvents = EventStore();
|
|
289
|
+
const goToNextThreshold = Limit(50, 225).constrain(percentOfView.measure(20));
|
|
290
|
+
const snapForceBoost = {
|
|
291
|
+
mouse: 300,
|
|
292
|
+
touch: 400
|
|
293
|
+
};
|
|
294
|
+
const freeForceBoost = {
|
|
295
|
+
mouse: 500,
|
|
296
|
+
touch: 600
|
|
297
|
+
};
|
|
298
|
+
const baseSpeed = dragFree ? 43 : 25;
|
|
299
|
+
let isMoving = false;
|
|
300
|
+
let startScroll = 0;
|
|
301
|
+
let startCross = 0;
|
|
302
|
+
let pointerIsDown = false;
|
|
303
|
+
let preventScroll = false;
|
|
304
|
+
let preventClick = false;
|
|
305
|
+
let isMouse = false;
|
|
306
|
+
function init(emblaApi) {
|
|
307
|
+
if (!watchDrag) return;
|
|
308
|
+
function downIfAllowed(evt) {
|
|
309
|
+
if (isBoolean(watchDrag) || watchDrag(emblaApi, evt)) down(evt);
|
|
310
|
+
}
|
|
311
|
+
const node = rootNode;
|
|
312
|
+
initEvents.add(node, 'dragstart', evt => evt.preventDefault(), nonPassiveEvent).add(node, 'touchmove', () => undefined, nonPassiveEvent).add(node, 'touchend', () => undefined).add(node, 'touchstart', downIfAllowed).add(node, 'mousedown', downIfAllowed).add(node, 'touchcancel', up).add(node, 'contextmenu', up).add(node, 'click', click, true);
|
|
313
|
+
}
|
|
314
|
+
function destroy() {
|
|
315
|
+
initEvents.clear();
|
|
316
|
+
dragEvents.clear();
|
|
317
|
+
}
|
|
318
|
+
function addDragEvents() {
|
|
319
|
+
const node = isMouse ? ownerDocument : rootNode;
|
|
320
|
+
dragEvents.add(node, 'touchmove', move, nonPassiveEvent).add(node, 'touchend', up).add(node, 'mousemove', move, nonPassiveEvent).add(node, 'mouseup', up);
|
|
321
|
+
}
|
|
322
|
+
function isFocusNode(node) {
|
|
323
|
+
const nodeName = node.nodeName || '';
|
|
324
|
+
return focusNodes.includes(nodeName);
|
|
325
|
+
}
|
|
326
|
+
function forceBoost() {
|
|
327
|
+
const boost = dragFree ? freeForceBoost : snapForceBoost;
|
|
328
|
+
const type = isMouse ? 'mouse' : 'touch';
|
|
329
|
+
return boost[type];
|
|
330
|
+
}
|
|
331
|
+
function allowedForce(force, targetChanged) {
|
|
332
|
+
const next = index.add(mathSign(force) * -1);
|
|
333
|
+
const baseForce = scrollTarget.byDistance(force, !dragFree).distance;
|
|
334
|
+
if (dragFree || mathAbs(force) < goToNextThreshold) return baseForce;
|
|
335
|
+
if (skipSnaps && targetChanged) return baseForce * 0.5;
|
|
336
|
+
return scrollTarget.byIndex(next.get(), 0).distance;
|
|
337
|
+
}
|
|
338
|
+
function down(evt) {
|
|
339
|
+
const isMouseEvt = isMouseEvent(evt, ownerWindow);
|
|
340
|
+
isMouse = isMouseEvt;
|
|
341
|
+
preventClick = dragFree && isMouseEvt && !evt.buttons && isMoving;
|
|
342
|
+
isMoving = deltaAbs(target.get(), location.get()) >= 2;
|
|
343
|
+
if (isMouseEvt && evt.button !== 0) return;
|
|
344
|
+
if (isFocusNode(evt.target)) return;
|
|
345
|
+
pointerIsDown = true;
|
|
346
|
+
dragTracker.pointerDown(evt);
|
|
347
|
+
scrollBody.useFriction(0).useDuration(0);
|
|
348
|
+
target.set(location);
|
|
349
|
+
addDragEvents();
|
|
350
|
+
startScroll = dragTracker.readPoint(evt);
|
|
351
|
+
startCross = dragTracker.readPoint(evt, crossAxis);
|
|
352
|
+
eventHandler.emit('pointerDown');
|
|
353
|
+
}
|
|
354
|
+
function move(evt) {
|
|
355
|
+
const isTouchEvt = !isMouseEvent(evt, ownerWindow);
|
|
356
|
+
if (isTouchEvt && evt.touches.length >= 2) return up(evt);
|
|
357
|
+
const lastScroll = dragTracker.readPoint(evt);
|
|
358
|
+
const lastCross = dragTracker.readPoint(evt, crossAxis);
|
|
359
|
+
const diffScroll = deltaAbs(lastScroll, startScroll);
|
|
360
|
+
const diffCross = deltaAbs(lastCross, startCross);
|
|
361
|
+
if (!preventScroll && !isMouse) {
|
|
362
|
+
if (!evt.cancelable) return up(evt);
|
|
363
|
+
preventScroll = diffScroll > diffCross;
|
|
364
|
+
if (!preventScroll) return up(evt);
|
|
365
|
+
}
|
|
366
|
+
const diff = dragTracker.pointerMove(evt);
|
|
367
|
+
if (diffScroll > dragThreshold) preventClick = true;
|
|
368
|
+
scrollBody.useFriction(0.3).useDuration(0.75);
|
|
369
|
+
animation.start();
|
|
370
|
+
target.add(direction(diff));
|
|
371
|
+
evt.preventDefault();
|
|
372
|
+
}
|
|
373
|
+
function up(evt) {
|
|
374
|
+
const currentLocation = scrollTarget.byDistance(0, false);
|
|
375
|
+
const targetChanged = currentLocation.index !== index.get();
|
|
376
|
+
const rawForce = dragTracker.pointerUp(evt) * forceBoost();
|
|
377
|
+
const force = allowedForce(direction(rawForce), targetChanged);
|
|
378
|
+
const forceFactor = factorAbs(rawForce, force);
|
|
379
|
+
const speed = baseSpeed - 10 * forceFactor;
|
|
380
|
+
const friction = baseFriction + forceFactor / 50;
|
|
381
|
+
preventScroll = false;
|
|
382
|
+
pointerIsDown = false;
|
|
383
|
+
dragEvents.clear();
|
|
384
|
+
scrollBody.useDuration(speed).useFriction(friction);
|
|
385
|
+
scrollTo.distance(force, !dragFree);
|
|
386
|
+
isMouse = false;
|
|
387
|
+
eventHandler.emit('pointerUp');
|
|
388
|
+
}
|
|
389
|
+
function click(evt) {
|
|
390
|
+
if (preventClick) {
|
|
391
|
+
evt.stopPropagation();
|
|
392
|
+
evt.preventDefault();
|
|
393
|
+
preventClick = false;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
function pointerDown() {
|
|
397
|
+
return pointerIsDown;
|
|
398
|
+
}
|
|
399
|
+
const self = {
|
|
400
|
+
init,
|
|
401
|
+
destroy,
|
|
402
|
+
pointerDown
|
|
403
|
+
};
|
|
404
|
+
return self;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
function DragTracker(axis, ownerWindow) {
|
|
408
|
+
const logInterval = 170;
|
|
409
|
+
let startEvent;
|
|
410
|
+
let lastEvent;
|
|
411
|
+
function readTime(evt) {
|
|
412
|
+
return evt.timeStamp;
|
|
413
|
+
}
|
|
414
|
+
function readPoint(evt, evtAxis) {
|
|
415
|
+
const property = evtAxis || axis.scroll;
|
|
416
|
+
const coord = `client${property === 'x' ? 'X' : 'Y'}`;
|
|
417
|
+
return (isMouseEvent(evt, ownerWindow) ? evt : evt.touches[0])[coord];
|
|
418
|
+
}
|
|
419
|
+
function pointerDown(evt) {
|
|
420
|
+
startEvent = evt;
|
|
421
|
+
lastEvent = evt;
|
|
422
|
+
return readPoint(evt);
|
|
423
|
+
}
|
|
424
|
+
function pointerMove(evt) {
|
|
425
|
+
const diff = readPoint(evt) - readPoint(lastEvent);
|
|
426
|
+
const expired = readTime(evt) - readTime(startEvent) > logInterval;
|
|
427
|
+
lastEvent = evt;
|
|
428
|
+
if (expired) startEvent = evt;
|
|
429
|
+
return diff;
|
|
430
|
+
}
|
|
431
|
+
function pointerUp(evt) {
|
|
432
|
+
if (!startEvent || !lastEvent) return 0;
|
|
433
|
+
const diffDrag = readPoint(lastEvent) - readPoint(startEvent);
|
|
434
|
+
const diffTime = readTime(evt) - readTime(startEvent);
|
|
435
|
+
const expired = readTime(evt) - readTime(lastEvent) > logInterval;
|
|
436
|
+
const force = diffDrag / diffTime;
|
|
437
|
+
const isFlick = diffTime && !expired && mathAbs(force) > 0.1;
|
|
438
|
+
return isFlick ? force : 0;
|
|
439
|
+
}
|
|
440
|
+
const self = {
|
|
441
|
+
pointerDown,
|
|
442
|
+
pointerMove,
|
|
443
|
+
pointerUp,
|
|
444
|
+
readPoint
|
|
445
|
+
};
|
|
446
|
+
return self;
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
function NodeRects() {
|
|
450
|
+
function measure(node) {
|
|
451
|
+
const {
|
|
452
|
+
offsetTop,
|
|
453
|
+
offsetLeft,
|
|
454
|
+
offsetWidth,
|
|
455
|
+
offsetHeight
|
|
456
|
+
} = node;
|
|
457
|
+
const offset = {
|
|
458
|
+
top: offsetTop,
|
|
459
|
+
right: offsetLeft + offsetWidth,
|
|
460
|
+
bottom: offsetTop + offsetHeight,
|
|
461
|
+
left: offsetLeft,
|
|
462
|
+
width: offsetWidth,
|
|
463
|
+
height: offsetHeight
|
|
464
|
+
};
|
|
465
|
+
return offset;
|
|
466
|
+
}
|
|
467
|
+
const self = {
|
|
468
|
+
measure
|
|
469
|
+
};
|
|
470
|
+
return self;
|
|
471
|
+
}
|
|
472
|
+
|
|
473
|
+
function PercentOfView(viewSize) {
|
|
474
|
+
function measure(n) {
|
|
475
|
+
return viewSize * (n / 100);
|
|
476
|
+
}
|
|
477
|
+
const self = {
|
|
478
|
+
measure
|
|
479
|
+
};
|
|
480
|
+
return self;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
function ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects) {
|
|
484
|
+
const observeNodes = [container].concat(slides);
|
|
485
|
+
let resizeObserver;
|
|
486
|
+
let containerSize;
|
|
487
|
+
let slideSizes = [];
|
|
488
|
+
let destroyed = false;
|
|
489
|
+
function readSize(node) {
|
|
490
|
+
return axis.measureSize(nodeRects.measure(node));
|
|
491
|
+
}
|
|
492
|
+
function init(emblaApi) {
|
|
493
|
+
if (!watchResize) return;
|
|
494
|
+
containerSize = readSize(container);
|
|
495
|
+
slideSizes = slides.map(readSize);
|
|
496
|
+
function defaultCallback(entries) {
|
|
497
|
+
for (const entry of entries) {
|
|
498
|
+
if (destroyed) return;
|
|
499
|
+
const isContainer = entry.target === container;
|
|
500
|
+
const slideIndex = slides.indexOf(entry.target);
|
|
501
|
+
const lastSize = isContainer ? containerSize : slideSizes[slideIndex];
|
|
502
|
+
const newSize = readSize(isContainer ? container : slides[slideIndex]);
|
|
503
|
+
const diffSize = mathAbs(newSize - lastSize);
|
|
504
|
+
if (diffSize >= 0.5) {
|
|
505
|
+
emblaApi.reInit();
|
|
506
|
+
eventHandler.emit('resize');
|
|
507
|
+
break;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
resizeObserver = new ResizeObserver(entries => {
|
|
512
|
+
if (isBoolean(watchResize) || watchResize(emblaApi, entries)) {
|
|
513
|
+
defaultCallback(entries);
|
|
514
|
+
}
|
|
515
|
+
});
|
|
516
|
+
ownerWindow.requestAnimationFrame(() => {
|
|
517
|
+
observeNodes.forEach(node => resizeObserver.observe(node));
|
|
518
|
+
});
|
|
519
|
+
}
|
|
520
|
+
function destroy() {
|
|
521
|
+
destroyed = true;
|
|
522
|
+
if (resizeObserver) resizeObserver.disconnect();
|
|
523
|
+
}
|
|
524
|
+
const self = {
|
|
525
|
+
init,
|
|
526
|
+
destroy
|
|
527
|
+
};
|
|
528
|
+
return self;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
function ScrollBody(location, offsetLocation, previousLocation, target, baseDuration, baseFriction) {
|
|
532
|
+
let scrollVelocity = 0;
|
|
533
|
+
let scrollDirection = 0;
|
|
534
|
+
let scrollDuration = baseDuration;
|
|
535
|
+
let scrollFriction = baseFriction;
|
|
536
|
+
let rawLocation = location.get();
|
|
537
|
+
let rawLocationPrevious = 0;
|
|
538
|
+
function seek() {
|
|
539
|
+
const displacement = target.get() - location.get();
|
|
540
|
+
const isInstant = !scrollDuration;
|
|
541
|
+
let scrollDistance = 0;
|
|
542
|
+
if (isInstant) {
|
|
543
|
+
scrollVelocity = 0;
|
|
544
|
+
previousLocation.set(target);
|
|
545
|
+
location.set(target);
|
|
546
|
+
scrollDistance = displacement;
|
|
547
|
+
} else {
|
|
548
|
+
previousLocation.set(location);
|
|
549
|
+
scrollVelocity += displacement / scrollDuration;
|
|
550
|
+
scrollVelocity *= scrollFriction;
|
|
551
|
+
rawLocation += scrollVelocity;
|
|
552
|
+
location.add(scrollVelocity);
|
|
553
|
+
scrollDistance = rawLocation - rawLocationPrevious;
|
|
554
|
+
}
|
|
555
|
+
scrollDirection = mathSign(scrollDistance);
|
|
556
|
+
rawLocationPrevious = rawLocation;
|
|
557
|
+
return self;
|
|
558
|
+
}
|
|
559
|
+
function settled() {
|
|
560
|
+
const diff = target.get() - offsetLocation.get();
|
|
561
|
+
return mathAbs(diff) < 0.001;
|
|
562
|
+
}
|
|
563
|
+
function duration() {
|
|
564
|
+
return scrollDuration;
|
|
565
|
+
}
|
|
566
|
+
function direction() {
|
|
567
|
+
return scrollDirection;
|
|
568
|
+
}
|
|
569
|
+
function velocity() {
|
|
570
|
+
return scrollVelocity;
|
|
571
|
+
}
|
|
572
|
+
function useBaseDuration() {
|
|
573
|
+
return useDuration(baseDuration);
|
|
574
|
+
}
|
|
575
|
+
function useBaseFriction() {
|
|
576
|
+
return useFriction(baseFriction);
|
|
577
|
+
}
|
|
578
|
+
function useDuration(n) {
|
|
579
|
+
scrollDuration = n;
|
|
580
|
+
return self;
|
|
581
|
+
}
|
|
582
|
+
function useFriction(n) {
|
|
583
|
+
scrollFriction = n;
|
|
584
|
+
return self;
|
|
585
|
+
}
|
|
586
|
+
const self = {
|
|
587
|
+
direction,
|
|
588
|
+
duration,
|
|
589
|
+
velocity,
|
|
590
|
+
seek,
|
|
591
|
+
settled,
|
|
592
|
+
useBaseFriction,
|
|
593
|
+
useBaseDuration,
|
|
594
|
+
useFriction,
|
|
595
|
+
useDuration
|
|
596
|
+
};
|
|
597
|
+
return self;
|
|
598
|
+
}
|
|
599
|
+
|
|
600
|
+
function ScrollBounds(limit, location, target, scrollBody, percentOfView) {
|
|
601
|
+
const pullBackThreshold = percentOfView.measure(10);
|
|
602
|
+
const edgeOffsetTolerance = percentOfView.measure(50);
|
|
603
|
+
const frictionLimit = Limit(0.1, 0.99);
|
|
604
|
+
let disabled = false;
|
|
605
|
+
function shouldConstrain() {
|
|
606
|
+
if (disabled) return false;
|
|
607
|
+
if (!limit.reachedAny(target.get())) return false;
|
|
608
|
+
if (!limit.reachedAny(location.get())) return false;
|
|
609
|
+
return true;
|
|
610
|
+
}
|
|
611
|
+
function constrain(pointerDown) {
|
|
612
|
+
if (!shouldConstrain()) return;
|
|
613
|
+
const edge = limit.reachedMin(location.get()) ? 'min' : 'max';
|
|
614
|
+
const diffToEdge = mathAbs(limit[edge] - location.get());
|
|
615
|
+
const diffToTarget = target.get() - location.get();
|
|
616
|
+
const friction = frictionLimit.constrain(diffToEdge / edgeOffsetTolerance);
|
|
617
|
+
target.subtract(diffToTarget * friction);
|
|
618
|
+
if (!pointerDown && mathAbs(diffToTarget) < pullBackThreshold) {
|
|
619
|
+
target.set(limit.constrain(target.get()));
|
|
620
|
+
scrollBody.useDuration(25).useBaseFriction();
|
|
621
|
+
}
|
|
622
|
+
}
|
|
623
|
+
function toggleActive(active) {
|
|
624
|
+
disabled = !active;
|
|
625
|
+
}
|
|
626
|
+
const self = {
|
|
627
|
+
shouldConstrain,
|
|
628
|
+
constrain,
|
|
629
|
+
toggleActive
|
|
630
|
+
};
|
|
631
|
+
return self;
|
|
632
|
+
}
|
|
633
|
+
|
|
634
|
+
function ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance) {
|
|
635
|
+
const scrollBounds = Limit(-contentSize + viewSize, 0);
|
|
636
|
+
const snapsBounded = measureBounded();
|
|
637
|
+
const scrollContainLimit = findScrollContainLimit();
|
|
638
|
+
const snapsContained = measureContained();
|
|
639
|
+
function usePixelTolerance(bound, snap) {
|
|
640
|
+
return deltaAbs(bound, snap) <= 1;
|
|
641
|
+
}
|
|
642
|
+
function findScrollContainLimit() {
|
|
643
|
+
const startSnap = snapsBounded[0];
|
|
644
|
+
const endSnap = arrayLast(snapsBounded);
|
|
645
|
+
const min = snapsBounded.lastIndexOf(startSnap);
|
|
646
|
+
const max = snapsBounded.indexOf(endSnap) + 1;
|
|
647
|
+
return Limit(min, max);
|
|
648
|
+
}
|
|
649
|
+
function measureBounded() {
|
|
650
|
+
return snapsAligned.map((snapAligned, index) => {
|
|
651
|
+
const {
|
|
652
|
+
min,
|
|
653
|
+
max
|
|
654
|
+
} = scrollBounds;
|
|
655
|
+
const snap = scrollBounds.constrain(snapAligned);
|
|
656
|
+
const isFirst = !index;
|
|
657
|
+
const isLast = arrayIsLastIndex(snapsAligned, index);
|
|
658
|
+
if (isFirst) return max;
|
|
659
|
+
if (isLast) return min;
|
|
660
|
+
if (usePixelTolerance(min, snap)) return min;
|
|
661
|
+
if (usePixelTolerance(max, snap)) return max;
|
|
662
|
+
return snap;
|
|
663
|
+
}).map(scrollBound => parseFloat(scrollBound.toFixed(3)));
|
|
664
|
+
}
|
|
665
|
+
function measureContained() {
|
|
666
|
+
if (contentSize <= viewSize + pixelTolerance) return [scrollBounds.max];
|
|
667
|
+
if (containScroll === 'keepSnaps') return snapsBounded;
|
|
668
|
+
const {
|
|
669
|
+
min,
|
|
670
|
+
max
|
|
671
|
+
} = scrollContainLimit;
|
|
672
|
+
return snapsBounded.slice(min, max);
|
|
673
|
+
}
|
|
674
|
+
const self = {
|
|
675
|
+
snapsContained,
|
|
676
|
+
scrollContainLimit
|
|
677
|
+
};
|
|
678
|
+
return self;
|
|
679
|
+
}
|
|
680
|
+
|
|
681
|
+
function ScrollLimit(contentSize, scrollSnaps, loop) {
|
|
682
|
+
const max = scrollSnaps[0];
|
|
683
|
+
const min = loop ? max - contentSize : arrayLast(scrollSnaps);
|
|
684
|
+
const limit = Limit(min, max);
|
|
685
|
+
const self = {
|
|
686
|
+
limit
|
|
687
|
+
};
|
|
688
|
+
return self;
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
function ScrollLooper(contentSize, limit, location, vectors) {
|
|
692
|
+
const jointSafety = 0.1;
|
|
693
|
+
const min = limit.min + jointSafety;
|
|
694
|
+
const max = limit.max + jointSafety;
|
|
695
|
+
const {
|
|
696
|
+
reachedMin,
|
|
697
|
+
reachedMax
|
|
698
|
+
} = Limit(min, max);
|
|
699
|
+
function shouldLoop(direction) {
|
|
700
|
+
if (direction === 1) return reachedMax(location.get());
|
|
701
|
+
if (direction === -1) return reachedMin(location.get());
|
|
702
|
+
return false;
|
|
703
|
+
}
|
|
704
|
+
function loop(direction) {
|
|
705
|
+
if (!shouldLoop(direction)) return;
|
|
706
|
+
const loopDistance = contentSize * (direction * -1);
|
|
707
|
+
vectors.forEach(v => v.add(loopDistance));
|
|
708
|
+
}
|
|
709
|
+
const self = {
|
|
710
|
+
loop
|
|
711
|
+
};
|
|
712
|
+
return self;
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
function ScrollProgress(limit) {
|
|
716
|
+
const {
|
|
717
|
+
max,
|
|
718
|
+
length
|
|
719
|
+
} = limit;
|
|
720
|
+
function get(n) {
|
|
721
|
+
const currentLocation = n - max;
|
|
722
|
+
return length ? currentLocation / -length : 0;
|
|
723
|
+
}
|
|
724
|
+
const self = {
|
|
725
|
+
get
|
|
726
|
+
};
|
|
727
|
+
return self;
|
|
728
|
+
}
|
|
729
|
+
|
|
730
|
+
function ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll) {
|
|
731
|
+
const {
|
|
732
|
+
startEdge,
|
|
733
|
+
endEdge
|
|
734
|
+
} = axis;
|
|
735
|
+
const {
|
|
736
|
+
groupSlides
|
|
737
|
+
} = slidesToScroll;
|
|
738
|
+
const alignments = measureSizes().map(alignment.measure);
|
|
739
|
+
const snaps = measureUnaligned();
|
|
740
|
+
const snapsAligned = measureAligned();
|
|
741
|
+
function measureSizes() {
|
|
742
|
+
return groupSlides(slideRects).map(rects => arrayLast(rects)[endEdge] - rects[0][startEdge]).map(mathAbs);
|
|
743
|
+
}
|
|
744
|
+
function measureUnaligned() {
|
|
745
|
+
return slideRects.map(rect => containerRect[startEdge] - rect[startEdge]).map(snap => -mathAbs(snap));
|
|
746
|
+
}
|
|
747
|
+
function measureAligned() {
|
|
748
|
+
return groupSlides(snaps).map(g => g[0]).map((snap, index) => snap + alignments[index]);
|
|
749
|
+
}
|
|
750
|
+
const self = {
|
|
751
|
+
snaps,
|
|
752
|
+
snapsAligned
|
|
753
|
+
};
|
|
754
|
+
return self;
|
|
755
|
+
}
|
|
756
|
+
|
|
757
|
+
function SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes) {
|
|
758
|
+
const {
|
|
759
|
+
groupSlides
|
|
760
|
+
} = slidesToScroll;
|
|
761
|
+
const {
|
|
762
|
+
min,
|
|
763
|
+
max
|
|
764
|
+
} = scrollContainLimit;
|
|
765
|
+
const slideRegistry = createSlideRegistry();
|
|
766
|
+
function createSlideRegistry() {
|
|
767
|
+
const groupedSlideIndexes = groupSlides(slideIndexes);
|
|
768
|
+
const doNotContain = !containSnaps || containScroll === 'keepSnaps';
|
|
769
|
+
if (scrollSnaps.length === 1) return [slideIndexes];
|
|
770
|
+
if (doNotContain) return groupedSlideIndexes;
|
|
771
|
+
return groupedSlideIndexes.slice(min, max).map((group, index, groups) => {
|
|
772
|
+
const isFirst = !index;
|
|
773
|
+
const isLast = arrayIsLastIndex(groups, index);
|
|
774
|
+
if (isFirst) {
|
|
775
|
+
const range = arrayLast(groups[0]) + 1;
|
|
776
|
+
return arrayFromNumber(range);
|
|
777
|
+
}
|
|
778
|
+
if (isLast) {
|
|
779
|
+
const range = arrayLastIndex(slideIndexes) - arrayLast(groups)[0] + 1;
|
|
780
|
+
return arrayFromNumber(range, arrayLast(groups)[0]);
|
|
781
|
+
}
|
|
782
|
+
return group;
|
|
783
|
+
});
|
|
784
|
+
}
|
|
785
|
+
const self = {
|
|
786
|
+
slideRegistry
|
|
787
|
+
};
|
|
788
|
+
return self;
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
function ScrollTarget(loop, scrollSnaps, contentSize, limit, targetVector) {
|
|
792
|
+
const {
|
|
793
|
+
reachedAny,
|
|
794
|
+
removeOffset,
|
|
795
|
+
constrain
|
|
796
|
+
} = limit;
|
|
797
|
+
function minDistance(distances) {
|
|
798
|
+
return distances.concat().sort((a, b) => mathAbs(a) - mathAbs(b))[0];
|
|
799
|
+
}
|
|
800
|
+
function findTargetSnap(target) {
|
|
801
|
+
const distance = loop ? removeOffset(target) : constrain(target);
|
|
802
|
+
const ascDiffsToSnaps = scrollSnaps.map((snap, index) => ({
|
|
803
|
+
diff: shortcut(snap - distance, 0),
|
|
804
|
+
index
|
|
805
|
+
})).sort((d1, d2) => mathAbs(d1.diff) - mathAbs(d2.diff));
|
|
806
|
+
const {
|
|
807
|
+
index
|
|
808
|
+
} = ascDiffsToSnaps[0];
|
|
809
|
+
return {
|
|
810
|
+
index,
|
|
811
|
+
distance
|
|
812
|
+
};
|
|
813
|
+
}
|
|
814
|
+
function shortcut(target, direction) {
|
|
815
|
+
const targets = [target, target + contentSize, target - contentSize];
|
|
816
|
+
if (!loop) return target;
|
|
817
|
+
if (!direction) return minDistance(targets);
|
|
818
|
+
const matchingTargets = targets.filter(t => mathSign(t) === direction);
|
|
819
|
+
if (matchingTargets.length) return minDistance(matchingTargets);
|
|
820
|
+
return arrayLast(targets) - contentSize;
|
|
821
|
+
}
|
|
822
|
+
function byIndex(index, direction) {
|
|
823
|
+
const diffToSnap = scrollSnaps[index] - targetVector.get();
|
|
824
|
+
const distance = shortcut(diffToSnap, direction);
|
|
825
|
+
return {
|
|
826
|
+
index,
|
|
827
|
+
distance
|
|
828
|
+
};
|
|
829
|
+
}
|
|
830
|
+
function byDistance(distance, snap) {
|
|
831
|
+
const target = targetVector.get() + distance;
|
|
832
|
+
const {
|
|
833
|
+
index,
|
|
834
|
+
distance: targetSnapDistance
|
|
835
|
+
} = findTargetSnap(target);
|
|
836
|
+
const reachedBound = !loop && reachedAny(target);
|
|
837
|
+
if (!snap || reachedBound) return {
|
|
838
|
+
index,
|
|
839
|
+
distance
|
|
840
|
+
};
|
|
841
|
+
const diffToSnap = scrollSnaps[index] - targetSnapDistance;
|
|
842
|
+
const snapDistance = distance + shortcut(diffToSnap, 0);
|
|
843
|
+
return {
|
|
844
|
+
index,
|
|
845
|
+
distance: snapDistance
|
|
846
|
+
};
|
|
847
|
+
}
|
|
848
|
+
const self = {
|
|
849
|
+
byDistance,
|
|
850
|
+
byIndex,
|
|
851
|
+
shortcut
|
|
852
|
+
};
|
|
853
|
+
return self;
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
function ScrollTo(animation, indexCurrent, indexPrevious, scrollBody, scrollTarget, targetVector, eventHandler) {
|
|
857
|
+
function scrollTo(target) {
|
|
858
|
+
const distanceDiff = target.distance;
|
|
859
|
+
const indexDiff = target.index !== indexCurrent.get();
|
|
860
|
+
targetVector.add(distanceDiff);
|
|
861
|
+
if (distanceDiff) {
|
|
862
|
+
if (scrollBody.duration()) {
|
|
863
|
+
animation.start();
|
|
864
|
+
} else {
|
|
865
|
+
animation.update();
|
|
866
|
+
animation.render(1);
|
|
867
|
+
animation.update();
|
|
868
|
+
}
|
|
869
|
+
}
|
|
870
|
+
if (indexDiff) {
|
|
871
|
+
indexPrevious.set(indexCurrent.get());
|
|
872
|
+
indexCurrent.set(target.index);
|
|
873
|
+
eventHandler.emit('select');
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
function distance(n, snap) {
|
|
877
|
+
const target = scrollTarget.byDistance(n, snap);
|
|
878
|
+
scrollTo(target);
|
|
879
|
+
}
|
|
880
|
+
function index(n, direction) {
|
|
881
|
+
const targetIndex = indexCurrent.clone().set(n);
|
|
882
|
+
const target = scrollTarget.byIndex(targetIndex.get(), direction);
|
|
883
|
+
scrollTo(target);
|
|
884
|
+
}
|
|
885
|
+
const self = {
|
|
886
|
+
distance,
|
|
887
|
+
index
|
|
888
|
+
};
|
|
889
|
+
return self;
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
function SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus) {
|
|
893
|
+
const focusListenerOptions = {
|
|
894
|
+
passive: true,
|
|
895
|
+
capture: true
|
|
896
|
+
};
|
|
897
|
+
let lastTabPressTime = 0;
|
|
898
|
+
function init(emblaApi) {
|
|
899
|
+
if (!watchFocus) return;
|
|
900
|
+
function defaultCallback(index) {
|
|
901
|
+
const nowTime = new Date().getTime();
|
|
902
|
+
const diffTime = nowTime - lastTabPressTime;
|
|
903
|
+
if (diffTime > 10) return;
|
|
904
|
+
eventHandler.emit('slideFocusStart');
|
|
905
|
+
root.scrollLeft = 0;
|
|
906
|
+
const group = slideRegistry.findIndex(group => group.includes(index));
|
|
907
|
+
if (!isNumber(group)) return;
|
|
908
|
+
scrollBody.useDuration(0);
|
|
909
|
+
scrollTo.index(group, 0);
|
|
910
|
+
eventHandler.emit('slideFocus');
|
|
911
|
+
}
|
|
912
|
+
eventStore.add(document, 'keydown', registerTabPress, false);
|
|
913
|
+
slides.forEach((slide, slideIndex) => {
|
|
914
|
+
eventStore.add(slide, 'focus', evt => {
|
|
915
|
+
if (isBoolean(watchFocus) || watchFocus(emblaApi, evt)) {
|
|
916
|
+
defaultCallback(slideIndex);
|
|
917
|
+
}
|
|
918
|
+
}, focusListenerOptions);
|
|
919
|
+
});
|
|
920
|
+
}
|
|
921
|
+
function registerTabPress(event) {
|
|
922
|
+
if (event.code === 'Tab') lastTabPressTime = new Date().getTime();
|
|
923
|
+
}
|
|
924
|
+
const self = {
|
|
925
|
+
init
|
|
926
|
+
};
|
|
927
|
+
return self;
|
|
928
|
+
}
|
|
929
|
+
|
|
930
|
+
function Vector1D(initialValue) {
|
|
931
|
+
let value = initialValue;
|
|
932
|
+
function get() {
|
|
933
|
+
return value;
|
|
934
|
+
}
|
|
935
|
+
function set(n) {
|
|
936
|
+
value = normalizeInput(n);
|
|
937
|
+
}
|
|
938
|
+
function add(n) {
|
|
939
|
+
value += normalizeInput(n);
|
|
940
|
+
}
|
|
941
|
+
function subtract(n) {
|
|
942
|
+
value -= normalizeInput(n);
|
|
943
|
+
}
|
|
944
|
+
function normalizeInput(n) {
|
|
945
|
+
return isNumber(n) ? n : n.get();
|
|
946
|
+
}
|
|
947
|
+
const self = {
|
|
948
|
+
get,
|
|
949
|
+
set,
|
|
950
|
+
add,
|
|
951
|
+
subtract
|
|
952
|
+
};
|
|
953
|
+
return self;
|
|
954
|
+
}
|
|
955
|
+
|
|
956
|
+
function Translate(axis, container) {
|
|
957
|
+
const translate = axis.scroll === 'x' ? x : y;
|
|
958
|
+
const containerStyle = container.style;
|
|
959
|
+
let previousTarget = null;
|
|
960
|
+
let disabled = false;
|
|
961
|
+
function x(n) {
|
|
962
|
+
return `translate3d(${n}px,0px,0px)`;
|
|
963
|
+
}
|
|
964
|
+
function y(n) {
|
|
965
|
+
return `translate3d(0px,${n}px,0px)`;
|
|
966
|
+
}
|
|
967
|
+
function to(target) {
|
|
968
|
+
if (disabled) return;
|
|
969
|
+
const newTarget = roundToTwoDecimals(axis.direction(target));
|
|
970
|
+
if (newTarget === previousTarget) return;
|
|
971
|
+
containerStyle.transform = translate(newTarget);
|
|
972
|
+
previousTarget = newTarget;
|
|
973
|
+
}
|
|
974
|
+
function toggleActive(active) {
|
|
975
|
+
disabled = !active;
|
|
976
|
+
}
|
|
977
|
+
function clear() {
|
|
978
|
+
if (disabled) return;
|
|
979
|
+
containerStyle.transform = '';
|
|
980
|
+
if (!container.getAttribute('style')) container.removeAttribute('style');
|
|
981
|
+
}
|
|
982
|
+
const self = {
|
|
983
|
+
clear,
|
|
984
|
+
to,
|
|
985
|
+
toggleActive
|
|
986
|
+
};
|
|
987
|
+
return self;
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
function SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, location, slides) {
|
|
991
|
+
const roundingSafety = 0.5;
|
|
992
|
+
const ascItems = arrayKeys(slideSizesWithGaps);
|
|
993
|
+
const descItems = arrayKeys(slideSizesWithGaps).reverse();
|
|
994
|
+
const loopPoints = startPoints().concat(endPoints());
|
|
995
|
+
function removeSlideSizes(indexes, from) {
|
|
996
|
+
return indexes.reduce((a, i) => {
|
|
997
|
+
return a - slideSizesWithGaps[i];
|
|
998
|
+
}, from);
|
|
999
|
+
}
|
|
1000
|
+
function slidesInGap(indexes, gap) {
|
|
1001
|
+
return indexes.reduce((a, i) => {
|
|
1002
|
+
const remainingGap = removeSlideSizes(a, gap);
|
|
1003
|
+
return remainingGap > 0 ? a.concat([i]) : a;
|
|
1004
|
+
}, []);
|
|
1005
|
+
}
|
|
1006
|
+
function findSlideBounds(offset) {
|
|
1007
|
+
return snaps.map((snap, index) => ({
|
|
1008
|
+
start: snap - slideSizes[index] + roundingSafety + offset,
|
|
1009
|
+
end: snap + viewSize - roundingSafety + offset
|
|
1010
|
+
}));
|
|
1011
|
+
}
|
|
1012
|
+
function findLoopPoints(indexes, offset, isEndEdge) {
|
|
1013
|
+
const slideBounds = findSlideBounds(offset);
|
|
1014
|
+
return indexes.map(index => {
|
|
1015
|
+
const initial = isEndEdge ? 0 : -contentSize;
|
|
1016
|
+
const altered = isEndEdge ? contentSize : 0;
|
|
1017
|
+
const boundEdge = isEndEdge ? 'end' : 'start';
|
|
1018
|
+
const loopPoint = slideBounds[index][boundEdge];
|
|
1019
|
+
return {
|
|
1020
|
+
index,
|
|
1021
|
+
loopPoint,
|
|
1022
|
+
slideLocation: Vector1D(-1),
|
|
1023
|
+
translate: Translate(axis, slides[index]),
|
|
1024
|
+
target: () => location.get() > loopPoint ? initial : altered
|
|
1025
|
+
};
|
|
1026
|
+
});
|
|
1027
|
+
}
|
|
1028
|
+
function startPoints() {
|
|
1029
|
+
const gap = scrollSnaps[0];
|
|
1030
|
+
const indexes = slidesInGap(descItems, gap);
|
|
1031
|
+
return findLoopPoints(indexes, contentSize, false);
|
|
1032
|
+
}
|
|
1033
|
+
function endPoints() {
|
|
1034
|
+
const gap = viewSize - scrollSnaps[0] - 1;
|
|
1035
|
+
const indexes = slidesInGap(ascItems, gap);
|
|
1036
|
+
return findLoopPoints(indexes, -contentSize, true);
|
|
1037
|
+
}
|
|
1038
|
+
function canLoop() {
|
|
1039
|
+
return loopPoints.every(({
|
|
1040
|
+
index
|
|
1041
|
+
}) => {
|
|
1042
|
+
const otherIndexes = ascItems.filter(i => i !== index);
|
|
1043
|
+
return removeSlideSizes(otherIndexes, viewSize) <= 0.1;
|
|
1044
|
+
});
|
|
1045
|
+
}
|
|
1046
|
+
function loop() {
|
|
1047
|
+
loopPoints.forEach(loopPoint => {
|
|
1048
|
+
const {
|
|
1049
|
+
target,
|
|
1050
|
+
translate,
|
|
1051
|
+
slideLocation
|
|
1052
|
+
} = loopPoint;
|
|
1053
|
+
const shiftLocation = target();
|
|
1054
|
+
if (shiftLocation === slideLocation.get()) return;
|
|
1055
|
+
translate.to(shiftLocation);
|
|
1056
|
+
slideLocation.set(shiftLocation);
|
|
1057
|
+
});
|
|
1058
|
+
}
|
|
1059
|
+
function clear() {
|
|
1060
|
+
loopPoints.forEach(loopPoint => loopPoint.translate.clear());
|
|
1061
|
+
}
|
|
1062
|
+
const self = {
|
|
1063
|
+
canLoop,
|
|
1064
|
+
clear,
|
|
1065
|
+
loop,
|
|
1066
|
+
loopPoints
|
|
1067
|
+
};
|
|
1068
|
+
return self;
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
function SlidesHandler(container, eventHandler, watchSlides) {
|
|
1072
|
+
let mutationObserver;
|
|
1073
|
+
let destroyed = false;
|
|
1074
|
+
function init(emblaApi) {
|
|
1075
|
+
if (!watchSlides) return;
|
|
1076
|
+
function defaultCallback(mutations) {
|
|
1077
|
+
for (const mutation of mutations) {
|
|
1078
|
+
if (mutation.type === 'childList') {
|
|
1079
|
+
emblaApi.reInit();
|
|
1080
|
+
eventHandler.emit('slidesChanged');
|
|
1081
|
+
break;
|
|
1082
|
+
}
|
|
1083
|
+
}
|
|
1084
|
+
}
|
|
1085
|
+
mutationObserver = new MutationObserver(mutations => {
|
|
1086
|
+
if (destroyed) return;
|
|
1087
|
+
if (isBoolean(watchSlides) || watchSlides(emblaApi, mutations)) {
|
|
1088
|
+
defaultCallback(mutations);
|
|
1089
|
+
}
|
|
1090
|
+
});
|
|
1091
|
+
mutationObserver.observe(container, {
|
|
1092
|
+
childList: true
|
|
1093
|
+
});
|
|
1094
|
+
}
|
|
1095
|
+
function destroy() {
|
|
1096
|
+
if (mutationObserver) mutationObserver.disconnect();
|
|
1097
|
+
destroyed = true;
|
|
1098
|
+
}
|
|
1099
|
+
const self = {
|
|
1100
|
+
init,
|
|
1101
|
+
destroy
|
|
1102
|
+
};
|
|
1103
|
+
return self;
|
|
1104
|
+
}
|
|
1105
|
+
|
|
1106
|
+
function SlidesInView(container, slides, eventHandler, threshold) {
|
|
1107
|
+
const intersectionEntryMap = {};
|
|
1108
|
+
let inViewCache = null;
|
|
1109
|
+
let notInViewCache = null;
|
|
1110
|
+
let intersectionObserver;
|
|
1111
|
+
let destroyed = false;
|
|
1112
|
+
function init() {
|
|
1113
|
+
intersectionObserver = new IntersectionObserver(entries => {
|
|
1114
|
+
if (destroyed) return;
|
|
1115
|
+
entries.forEach(entry => {
|
|
1116
|
+
const index = slides.indexOf(entry.target);
|
|
1117
|
+
intersectionEntryMap[index] = entry;
|
|
1118
|
+
});
|
|
1119
|
+
inViewCache = null;
|
|
1120
|
+
notInViewCache = null;
|
|
1121
|
+
eventHandler.emit('slidesInView');
|
|
1122
|
+
}, {
|
|
1123
|
+
root: container.parentElement,
|
|
1124
|
+
threshold
|
|
1125
|
+
});
|
|
1126
|
+
slides.forEach(slide => intersectionObserver.observe(slide));
|
|
1127
|
+
}
|
|
1128
|
+
function destroy() {
|
|
1129
|
+
if (intersectionObserver) intersectionObserver.disconnect();
|
|
1130
|
+
destroyed = true;
|
|
1131
|
+
}
|
|
1132
|
+
function createInViewList(inView) {
|
|
1133
|
+
return objectKeys(intersectionEntryMap).reduce((list, slideIndex) => {
|
|
1134
|
+
const index = parseInt(slideIndex);
|
|
1135
|
+
const {
|
|
1136
|
+
isIntersecting
|
|
1137
|
+
} = intersectionEntryMap[index];
|
|
1138
|
+
const inViewMatch = inView && isIntersecting;
|
|
1139
|
+
const notInViewMatch = !inView && !isIntersecting;
|
|
1140
|
+
if (inViewMatch || notInViewMatch) list.push(index);
|
|
1141
|
+
return list;
|
|
1142
|
+
}, []);
|
|
1143
|
+
}
|
|
1144
|
+
function get(inView = true) {
|
|
1145
|
+
if (inView && inViewCache) return inViewCache;
|
|
1146
|
+
if (!inView && notInViewCache) return notInViewCache;
|
|
1147
|
+
const slideIndexes = createInViewList(inView);
|
|
1148
|
+
if (inView) inViewCache = slideIndexes;
|
|
1149
|
+
if (!inView) notInViewCache = slideIndexes;
|
|
1150
|
+
return slideIndexes;
|
|
1151
|
+
}
|
|
1152
|
+
const self = {
|
|
1153
|
+
init,
|
|
1154
|
+
destroy,
|
|
1155
|
+
get
|
|
1156
|
+
};
|
|
1157
|
+
return self;
|
|
1158
|
+
}
|
|
1159
|
+
|
|
1160
|
+
function SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow) {
|
|
1161
|
+
const {
|
|
1162
|
+
measureSize,
|
|
1163
|
+
startEdge,
|
|
1164
|
+
endEdge
|
|
1165
|
+
} = axis;
|
|
1166
|
+
const withEdgeGap = slideRects[0] && readEdgeGap;
|
|
1167
|
+
const startGap = measureStartGap();
|
|
1168
|
+
const endGap = measureEndGap();
|
|
1169
|
+
const slideSizes = slideRects.map(measureSize);
|
|
1170
|
+
const slideSizesWithGaps = measureWithGaps();
|
|
1171
|
+
function measureStartGap() {
|
|
1172
|
+
if (!withEdgeGap) return 0;
|
|
1173
|
+
const slideRect = slideRects[0];
|
|
1174
|
+
return mathAbs(containerRect[startEdge] - slideRect[startEdge]);
|
|
1175
|
+
}
|
|
1176
|
+
function measureEndGap() {
|
|
1177
|
+
if (!withEdgeGap) return 0;
|
|
1178
|
+
const style = ownerWindow.getComputedStyle(arrayLast(slides));
|
|
1179
|
+
return parseFloat(style.getPropertyValue(`margin-${endEdge}`));
|
|
1180
|
+
}
|
|
1181
|
+
function measureWithGaps() {
|
|
1182
|
+
return slideRects.map((rect, index, rects) => {
|
|
1183
|
+
const isFirst = !index;
|
|
1184
|
+
const isLast = arrayIsLastIndex(rects, index);
|
|
1185
|
+
if (isFirst) return slideSizes[index] + startGap;
|
|
1186
|
+
if (isLast) return slideSizes[index] + endGap;
|
|
1187
|
+
return rects[index + 1][startEdge] - rect[startEdge];
|
|
1188
|
+
}).map(mathAbs);
|
|
1189
|
+
}
|
|
1190
|
+
const self = {
|
|
1191
|
+
slideSizes,
|
|
1192
|
+
slideSizesWithGaps,
|
|
1193
|
+
startGap,
|
|
1194
|
+
endGap
|
|
1195
|
+
};
|
|
1196
|
+
return self;
|
|
1197
|
+
}
|
|
1198
|
+
|
|
1199
|
+
function SlidesToScroll(axis, viewSize, slidesToScroll, loop, containerRect, slideRects, startGap, endGap, pixelTolerance) {
|
|
1200
|
+
const {
|
|
1201
|
+
startEdge,
|
|
1202
|
+
endEdge,
|
|
1203
|
+
direction
|
|
1204
|
+
} = axis;
|
|
1205
|
+
const groupByNumber = isNumber(slidesToScroll);
|
|
1206
|
+
function byNumber(array, groupSize) {
|
|
1207
|
+
return arrayKeys(array).filter(i => i % groupSize === 0).map(i => array.slice(i, i + groupSize));
|
|
1208
|
+
}
|
|
1209
|
+
function bySize(array) {
|
|
1210
|
+
if (!array.length) return [];
|
|
1211
|
+
return arrayKeys(array).reduce((groups, rectB, index) => {
|
|
1212
|
+
const rectA = arrayLast(groups) || 0;
|
|
1213
|
+
const isFirst = rectA === 0;
|
|
1214
|
+
const isLast = rectB === arrayLastIndex(array);
|
|
1215
|
+
const edgeA = containerRect[startEdge] - slideRects[rectA][startEdge];
|
|
1216
|
+
const edgeB = containerRect[startEdge] - slideRects[rectB][endEdge];
|
|
1217
|
+
const gapA = !loop && isFirst ? direction(startGap) : 0;
|
|
1218
|
+
const gapB = !loop && isLast ? direction(endGap) : 0;
|
|
1219
|
+
const chunkSize = mathAbs(edgeB - gapB - (edgeA + gapA));
|
|
1220
|
+
if (index && chunkSize > viewSize + pixelTolerance) groups.push(rectB);
|
|
1221
|
+
if (isLast) groups.push(array.length);
|
|
1222
|
+
return groups;
|
|
1223
|
+
}, []).map((currentSize, index, groups) => {
|
|
1224
|
+
const previousSize = Math.max(groups[index - 1] || 0);
|
|
1225
|
+
return array.slice(previousSize, currentSize);
|
|
1226
|
+
});
|
|
1227
|
+
}
|
|
1228
|
+
function groupSlides(array) {
|
|
1229
|
+
return groupByNumber ? byNumber(array, slidesToScroll) : bySize(array);
|
|
1230
|
+
}
|
|
1231
|
+
const self = {
|
|
1232
|
+
groupSlides
|
|
1233
|
+
};
|
|
1234
|
+
return self;
|
|
1235
|
+
}
|
|
1236
|
+
|
|
1237
|
+
function Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler) {
|
|
1238
|
+
// Options
|
|
1239
|
+
const {
|
|
1240
|
+
align,
|
|
1241
|
+
axis: scrollAxis,
|
|
1242
|
+
direction,
|
|
1243
|
+
startIndex,
|
|
1244
|
+
loop,
|
|
1245
|
+
duration,
|
|
1246
|
+
dragFree,
|
|
1247
|
+
dragThreshold,
|
|
1248
|
+
inViewThreshold,
|
|
1249
|
+
slidesToScroll: groupSlides,
|
|
1250
|
+
skipSnaps,
|
|
1251
|
+
containScroll,
|
|
1252
|
+
watchResize,
|
|
1253
|
+
watchSlides,
|
|
1254
|
+
watchDrag,
|
|
1255
|
+
watchFocus
|
|
1256
|
+
} = options;
|
|
1257
|
+
// Measurements
|
|
1258
|
+
const pixelTolerance = 2;
|
|
1259
|
+
const nodeRects = NodeRects();
|
|
1260
|
+
const containerRect = nodeRects.measure(container);
|
|
1261
|
+
const slideRects = slides.map(nodeRects.measure);
|
|
1262
|
+
const axis = Axis(scrollAxis, direction);
|
|
1263
|
+
const viewSize = axis.measureSize(containerRect);
|
|
1264
|
+
const percentOfView = PercentOfView(viewSize);
|
|
1265
|
+
const alignment = Alignment(align, viewSize);
|
|
1266
|
+
const containSnaps = !loop && !!containScroll;
|
|
1267
|
+
const readEdgeGap = loop || !!containScroll;
|
|
1268
|
+
const {
|
|
1269
|
+
slideSizes,
|
|
1270
|
+
slideSizesWithGaps,
|
|
1271
|
+
startGap,
|
|
1272
|
+
endGap
|
|
1273
|
+
} = SlideSizes(axis, containerRect, slideRects, slides, readEdgeGap, ownerWindow);
|
|
1274
|
+
const slidesToScroll = SlidesToScroll(axis, viewSize, groupSlides, loop, containerRect, slideRects, startGap, endGap, pixelTolerance);
|
|
1275
|
+
const {
|
|
1276
|
+
snaps,
|
|
1277
|
+
snapsAligned
|
|
1278
|
+
} = ScrollSnaps(axis, alignment, containerRect, slideRects, slidesToScroll);
|
|
1279
|
+
const contentSize = -arrayLast(snaps) + arrayLast(slideSizesWithGaps);
|
|
1280
|
+
const {
|
|
1281
|
+
snapsContained,
|
|
1282
|
+
scrollContainLimit
|
|
1283
|
+
} = ScrollContain(viewSize, contentSize, snapsAligned, containScroll, pixelTolerance);
|
|
1284
|
+
const scrollSnaps = containSnaps ? snapsContained : snapsAligned;
|
|
1285
|
+
const {
|
|
1286
|
+
limit
|
|
1287
|
+
} = ScrollLimit(contentSize, scrollSnaps, loop);
|
|
1288
|
+
// Indexes
|
|
1289
|
+
const index = Counter(arrayLastIndex(scrollSnaps), startIndex, loop);
|
|
1290
|
+
const indexPrevious = index.clone();
|
|
1291
|
+
const slideIndexes = arrayKeys(slides);
|
|
1292
|
+
// Animation
|
|
1293
|
+
const update = ({
|
|
1294
|
+
dragHandler,
|
|
1295
|
+
scrollBody,
|
|
1296
|
+
scrollBounds,
|
|
1297
|
+
options: {
|
|
1298
|
+
loop
|
|
1299
|
+
}
|
|
1300
|
+
}) => {
|
|
1301
|
+
if (!loop) scrollBounds.constrain(dragHandler.pointerDown());
|
|
1302
|
+
scrollBody.seek();
|
|
1303
|
+
};
|
|
1304
|
+
const render = ({
|
|
1305
|
+
scrollBody,
|
|
1306
|
+
translate,
|
|
1307
|
+
location,
|
|
1308
|
+
offsetLocation,
|
|
1309
|
+
previousLocation,
|
|
1310
|
+
scrollLooper,
|
|
1311
|
+
slideLooper,
|
|
1312
|
+
dragHandler,
|
|
1313
|
+
animation,
|
|
1314
|
+
eventHandler,
|
|
1315
|
+
scrollBounds,
|
|
1316
|
+
options: {
|
|
1317
|
+
loop
|
|
1318
|
+
}
|
|
1319
|
+
}, alpha) => {
|
|
1320
|
+
const shouldSettle = scrollBody.settled();
|
|
1321
|
+
const withinBounds = !scrollBounds.shouldConstrain();
|
|
1322
|
+
const hasSettled = loop ? shouldSettle : shouldSettle && withinBounds;
|
|
1323
|
+
const hasSettledAndIdle = hasSettled && !dragHandler.pointerDown();
|
|
1324
|
+
if (hasSettledAndIdle) animation.stop();
|
|
1325
|
+
const interpolatedLocation = location.get() * alpha + previousLocation.get() * (1 - alpha);
|
|
1326
|
+
offsetLocation.set(interpolatedLocation);
|
|
1327
|
+
if (loop) {
|
|
1328
|
+
scrollLooper.loop(scrollBody.direction());
|
|
1329
|
+
slideLooper.loop();
|
|
1330
|
+
}
|
|
1331
|
+
translate.to(offsetLocation.get());
|
|
1332
|
+
if (hasSettledAndIdle) eventHandler.emit('settle');
|
|
1333
|
+
if (!hasSettled) eventHandler.emit('scroll');
|
|
1334
|
+
};
|
|
1335
|
+
const animation = Animations(ownerDocument, ownerWindow, () => update(engine), alpha => render(engine, alpha));
|
|
1336
|
+
// Shared
|
|
1337
|
+
const friction = 0.68;
|
|
1338
|
+
const startLocation = scrollSnaps[index.get()];
|
|
1339
|
+
const location = Vector1D(startLocation);
|
|
1340
|
+
const previousLocation = Vector1D(startLocation);
|
|
1341
|
+
const offsetLocation = Vector1D(startLocation);
|
|
1342
|
+
const target = Vector1D(startLocation);
|
|
1343
|
+
const scrollBody = ScrollBody(location, offsetLocation, previousLocation, target, duration, friction);
|
|
1344
|
+
const scrollTarget = ScrollTarget(loop, scrollSnaps, contentSize, limit, target);
|
|
1345
|
+
const scrollTo = ScrollTo(animation, index, indexPrevious, scrollBody, scrollTarget, target, eventHandler);
|
|
1346
|
+
const scrollProgress = ScrollProgress(limit);
|
|
1347
|
+
const eventStore = EventStore();
|
|
1348
|
+
const slidesInView = SlidesInView(container, slides, eventHandler, inViewThreshold);
|
|
1349
|
+
const {
|
|
1350
|
+
slideRegistry
|
|
1351
|
+
} = SlideRegistry(containSnaps, containScroll, scrollSnaps, scrollContainLimit, slidesToScroll, slideIndexes);
|
|
1352
|
+
const slideFocus = SlideFocus(root, slides, slideRegistry, scrollTo, scrollBody, eventStore, eventHandler, watchFocus);
|
|
1353
|
+
// Engine
|
|
1354
|
+
const engine = {
|
|
1355
|
+
ownerDocument,
|
|
1356
|
+
ownerWindow,
|
|
1357
|
+
eventHandler,
|
|
1358
|
+
containerRect,
|
|
1359
|
+
slideRects,
|
|
1360
|
+
animation,
|
|
1361
|
+
axis,
|
|
1362
|
+
dragHandler: DragHandler(axis, root, ownerDocument, ownerWindow, target, DragTracker(axis, ownerWindow), location, animation, scrollTo, scrollBody, scrollTarget, index, eventHandler, percentOfView, dragFree, dragThreshold, skipSnaps, friction, watchDrag),
|
|
1363
|
+
eventStore,
|
|
1364
|
+
percentOfView,
|
|
1365
|
+
index,
|
|
1366
|
+
indexPrevious,
|
|
1367
|
+
limit,
|
|
1368
|
+
location,
|
|
1369
|
+
offsetLocation,
|
|
1370
|
+
previousLocation,
|
|
1371
|
+
options,
|
|
1372
|
+
resizeHandler: ResizeHandler(container, eventHandler, ownerWindow, slides, axis, watchResize, nodeRects),
|
|
1373
|
+
scrollBody,
|
|
1374
|
+
scrollBounds: ScrollBounds(limit, offsetLocation, target, scrollBody, percentOfView),
|
|
1375
|
+
scrollLooper: ScrollLooper(contentSize, limit, offsetLocation, [location, offsetLocation, previousLocation, target]),
|
|
1376
|
+
scrollProgress,
|
|
1377
|
+
scrollSnapList: scrollSnaps.map(scrollProgress.get),
|
|
1378
|
+
scrollSnaps,
|
|
1379
|
+
scrollTarget,
|
|
1380
|
+
scrollTo,
|
|
1381
|
+
slideLooper: SlideLooper(axis, viewSize, contentSize, slideSizes, slideSizesWithGaps, snaps, scrollSnaps, offsetLocation, slides),
|
|
1382
|
+
slideFocus,
|
|
1383
|
+
slidesHandler: SlidesHandler(container, eventHandler, watchSlides),
|
|
1384
|
+
slidesInView,
|
|
1385
|
+
slideIndexes,
|
|
1386
|
+
slideRegistry,
|
|
1387
|
+
slidesToScroll,
|
|
1388
|
+
target,
|
|
1389
|
+
translate: Translate(axis, container)
|
|
1390
|
+
};
|
|
1391
|
+
return engine;
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
function EventHandler() {
|
|
1395
|
+
let listeners = {};
|
|
1396
|
+
let api;
|
|
1397
|
+
function init(emblaApi) {
|
|
1398
|
+
api = emblaApi;
|
|
1399
|
+
}
|
|
1400
|
+
function getListeners(evt) {
|
|
1401
|
+
return listeners[evt] || [];
|
|
1402
|
+
}
|
|
1403
|
+
function emit(evt) {
|
|
1404
|
+
getListeners(evt).forEach(e => e(api, evt));
|
|
1405
|
+
return self;
|
|
1406
|
+
}
|
|
1407
|
+
function on(evt, cb) {
|
|
1408
|
+
listeners[evt] = getListeners(evt).concat([cb]);
|
|
1409
|
+
return self;
|
|
1410
|
+
}
|
|
1411
|
+
function off(evt, cb) {
|
|
1412
|
+
listeners[evt] = getListeners(evt).filter(e => e !== cb);
|
|
1413
|
+
return self;
|
|
1414
|
+
}
|
|
1415
|
+
function clear() {
|
|
1416
|
+
listeners = {};
|
|
1417
|
+
}
|
|
1418
|
+
const self = {
|
|
1419
|
+
init,
|
|
1420
|
+
emit,
|
|
1421
|
+
off,
|
|
1422
|
+
on,
|
|
1423
|
+
clear
|
|
1424
|
+
};
|
|
1425
|
+
return self;
|
|
1426
|
+
}
|
|
1427
|
+
|
|
1428
|
+
const defaultOptions = {
|
|
1429
|
+
align: 'center',
|
|
1430
|
+
axis: 'x',
|
|
1431
|
+
container: null,
|
|
1432
|
+
slides: null,
|
|
1433
|
+
containScroll: 'trimSnaps',
|
|
1434
|
+
direction: 'ltr',
|
|
1435
|
+
slidesToScroll: 1,
|
|
1436
|
+
inViewThreshold: 0,
|
|
1437
|
+
breakpoints: {},
|
|
1438
|
+
dragFree: false,
|
|
1439
|
+
dragThreshold: 10,
|
|
1440
|
+
loop: false,
|
|
1441
|
+
skipSnaps: false,
|
|
1442
|
+
duration: 25,
|
|
1443
|
+
startIndex: 0,
|
|
1444
|
+
active: true,
|
|
1445
|
+
watchDrag: true,
|
|
1446
|
+
watchResize: true,
|
|
1447
|
+
watchSlides: true,
|
|
1448
|
+
watchFocus: true
|
|
1449
|
+
};
|
|
1450
|
+
|
|
1451
|
+
function OptionsHandler(ownerWindow) {
|
|
1452
|
+
function mergeOptions(optionsA, optionsB) {
|
|
1453
|
+
return objectsMergeDeep(optionsA, optionsB || {});
|
|
1454
|
+
}
|
|
1455
|
+
function optionsAtMedia(options) {
|
|
1456
|
+
const optionsAtMedia = options.breakpoints || {};
|
|
1457
|
+
const matchedMediaOptions = objectKeys(optionsAtMedia).filter(media => ownerWindow.matchMedia(media).matches).map(media => optionsAtMedia[media]).reduce((a, mediaOption) => mergeOptions(a, mediaOption), {});
|
|
1458
|
+
return mergeOptions(options, matchedMediaOptions);
|
|
1459
|
+
}
|
|
1460
|
+
function optionsMediaQueries(optionsList) {
|
|
1461
|
+
return optionsList.map(options => objectKeys(options.breakpoints || {})).reduce((acc, mediaQueries) => acc.concat(mediaQueries), []).map(ownerWindow.matchMedia);
|
|
1462
|
+
}
|
|
1463
|
+
const self = {
|
|
1464
|
+
mergeOptions,
|
|
1465
|
+
optionsAtMedia,
|
|
1466
|
+
optionsMediaQueries
|
|
1467
|
+
};
|
|
1468
|
+
return self;
|
|
1469
|
+
}
|
|
1470
|
+
|
|
1471
|
+
function PluginsHandler(optionsHandler) {
|
|
1472
|
+
let activePlugins = [];
|
|
1473
|
+
function init(emblaApi, plugins) {
|
|
1474
|
+
activePlugins = plugins.filter(({
|
|
1475
|
+
options
|
|
1476
|
+
}) => optionsHandler.optionsAtMedia(options).active !== false);
|
|
1477
|
+
activePlugins.forEach(plugin => plugin.init(emblaApi, optionsHandler));
|
|
1478
|
+
return plugins.reduce((map, plugin) => Object.assign(map, {
|
|
1479
|
+
[plugin.name]: plugin
|
|
1480
|
+
}), {});
|
|
1481
|
+
}
|
|
1482
|
+
function destroy() {
|
|
1483
|
+
activePlugins = activePlugins.filter(plugin => plugin.destroy());
|
|
1484
|
+
}
|
|
1485
|
+
const self = {
|
|
1486
|
+
init,
|
|
1487
|
+
destroy
|
|
1488
|
+
};
|
|
1489
|
+
return self;
|
|
1490
|
+
}
|
|
1491
|
+
|
|
1492
|
+
function EmblaCarousel(root, userOptions, userPlugins) {
|
|
1493
|
+
const ownerDocument = root.ownerDocument;
|
|
1494
|
+
const ownerWindow = ownerDocument.defaultView;
|
|
1495
|
+
const optionsHandler = OptionsHandler(ownerWindow);
|
|
1496
|
+
const pluginsHandler = PluginsHandler(optionsHandler);
|
|
1497
|
+
const mediaHandlers = EventStore();
|
|
1498
|
+
const eventHandler = EventHandler();
|
|
1499
|
+
const {
|
|
1500
|
+
mergeOptions,
|
|
1501
|
+
optionsAtMedia,
|
|
1502
|
+
optionsMediaQueries
|
|
1503
|
+
} = optionsHandler;
|
|
1504
|
+
const {
|
|
1505
|
+
on,
|
|
1506
|
+
off,
|
|
1507
|
+
emit
|
|
1508
|
+
} = eventHandler;
|
|
1509
|
+
const reInit = reActivate;
|
|
1510
|
+
let destroyed = false;
|
|
1511
|
+
let engine;
|
|
1512
|
+
let optionsBase = mergeOptions(defaultOptions, EmblaCarousel.globalOptions);
|
|
1513
|
+
let options = mergeOptions(optionsBase);
|
|
1514
|
+
let pluginList = [];
|
|
1515
|
+
let pluginApis;
|
|
1516
|
+
let container;
|
|
1517
|
+
let slides;
|
|
1518
|
+
function storeElements() {
|
|
1519
|
+
const {
|
|
1520
|
+
container: userContainer,
|
|
1521
|
+
slides: userSlides
|
|
1522
|
+
} = options;
|
|
1523
|
+
const customContainer = isString(userContainer) ? root.querySelector(userContainer) : userContainer;
|
|
1524
|
+
container = customContainer || root.children[0];
|
|
1525
|
+
const customSlides = isString(userSlides) ? container.querySelectorAll(userSlides) : userSlides;
|
|
1526
|
+
slides = [].slice.call(customSlides || container.children);
|
|
1527
|
+
}
|
|
1528
|
+
function createEngine(options) {
|
|
1529
|
+
const engine = Engine(root, container, slides, ownerDocument, ownerWindow, options, eventHandler);
|
|
1530
|
+
if (options.loop && !engine.slideLooper.canLoop()) {
|
|
1531
|
+
const optionsWithoutLoop = Object.assign({}, options, {
|
|
1532
|
+
loop: false
|
|
1533
|
+
});
|
|
1534
|
+
return createEngine(optionsWithoutLoop);
|
|
1535
|
+
}
|
|
1536
|
+
return engine;
|
|
1537
|
+
}
|
|
1538
|
+
function activate(withOptions, withPlugins) {
|
|
1539
|
+
if (destroyed) return;
|
|
1540
|
+
optionsBase = mergeOptions(optionsBase, withOptions);
|
|
1541
|
+
options = optionsAtMedia(optionsBase);
|
|
1542
|
+
pluginList = withPlugins || pluginList;
|
|
1543
|
+
storeElements();
|
|
1544
|
+
engine = createEngine(options);
|
|
1545
|
+
optionsMediaQueries([optionsBase, ...pluginList.map(({
|
|
1546
|
+
options
|
|
1547
|
+
}) => options)]).forEach(query => mediaHandlers.add(query, 'change', reActivate));
|
|
1548
|
+
if (!options.active) return;
|
|
1549
|
+
engine.translate.to(engine.location.get());
|
|
1550
|
+
engine.animation.init();
|
|
1551
|
+
engine.slidesInView.init();
|
|
1552
|
+
engine.slideFocus.init(self);
|
|
1553
|
+
engine.eventHandler.init(self);
|
|
1554
|
+
engine.resizeHandler.init(self);
|
|
1555
|
+
engine.slidesHandler.init(self);
|
|
1556
|
+
if (engine.options.loop) engine.slideLooper.loop();
|
|
1557
|
+
if (container.offsetParent && slides.length) engine.dragHandler.init(self);
|
|
1558
|
+
pluginApis = pluginsHandler.init(self, pluginList);
|
|
1559
|
+
}
|
|
1560
|
+
function reActivate(withOptions, withPlugins) {
|
|
1561
|
+
const startIndex = selectedScrollSnap();
|
|
1562
|
+
deActivate();
|
|
1563
|
+
activate(mergeOptions({
|
|
1564
|
+
startIndex
|
|
1565
|
+
}, withOptions), withPlugins);
|
|
1566
|
+
eventHandler.emit('reInit');
|
|
1567
|
+
}
|
|
1568
|
+
function deActivate() {
|
|
1569
|
+
engine.dragHandler.destroy();
|
|
1570
|
+
engine.eventStore.clear();
|
|
1571
|
+
engine.translate.clear();
|
|
1572
|
+
engine.slideLooper.clear();
|
|
1573
|
+
engine.resizeHandler.destroy();
|
|
1574
|
+
engine.slidesHandler.destroy();
|
|
1575
|
+
engine.slidesInView.destroy();
|
|
1576
|
+
engine.animation.destroy();
|
|
1577
|
+
pluginsHandler.destroy();
|
|
1578
|
+
mediaHandlers.clear();
|
|
1579
|
+
}
|
|
1580
|
+
function destroy() {
|
|
1581
|
+
if (destroyed) return;
|
|
1582
|
+
destroyed = true;
|
|
1583
|
+
mediaHandlers.clear();
|
|
1584
|
+
deActivate();
|
|
1585
|
+
eventHandler.emit('destroy');
|
|
1586
|
+
eventHandler.clear();
|
|
1587
|
+
}
|
|
1588
|
+
function scrollTo(index, jump, direction) {
|
|
1589
|
+
if (!options.active || destroyed) return;
|
|
1590
|
+
engine.scrollBody.useBaseFriction().useDuration(jump === true ? 0 : options.duration);
|
|
1591
|
+
engine.scrollTo.index(index, direction || 0);
|
|
1592
|
+
}
|
|
1593
|
+
function scrollNext(jump) {
|
|
1594
|
+
const next = engine.index.add(1).get();
|
|
1595
|
+
scrollTo(next, jump, -1);
|
|
1596
|
+
}
|
|
1597
|
+
function scrollPrev(jump) {
|
|
1598
|
+
const prev = engine.index.add(-1).get();
|
|
1599
|
+
scrollTo(prev, jump, 1);
|
|
1600
|
+
}
|
|
1601
|
+
function canScrollNext() {
|
|
1602
|
+
const next = engine.index.add(1).get();
|
|
1603
|
+
return next !== selectedScrollSnap();
|
|
1604
|
+
}
|
|
1605
|
+
function canScrollPrev() {
|
|
1606
|
+
const prev = engine.index.add(-1).get();
|
|
1607
|
+
return prev !== selectedScrollSnap();
|
|
1608
|
+
}
|
|
1609
|
+
function scrollSnapList() {
|
|
1610
|
+
return engine.scrollSnapList;
|
|
1611
|
+
}
|
|
1612
|
+
function scrollProgress() {
|
|
1613
|
+
return engine.scrollProgress.get(engine.offsetLocation.get());
|
|
1614
|
+
}
|
|
1615
|
+
function selectedScrollSnap() {
|
|
1616
|
+
return engine.index.get();
|
|
1617
|
+
}
|
|
1618
|
+
function previousScrollSnap() {
|
|
1619
|
+
return engine.indexPrevious.get();
|
|
1620
|
+
}
|
|
1621
|
+
function slidesInView() {
|
|
1622
|
+
return engine.slidesInView.get();
|
|
1623
|
+
}
|
|
1624
|
+
function slidesNotInView() {
|
|
1625
|
+
return engine.slidesInView.get(false);
|
|
1626
|
+
}
|
|
1627
|
+
function plugins() {
|
|
1628
|
+
return pluginApis;
|
|
1629
|
+
}
|
|
1630
|
+
function internalEngine() {
|
|
1631
|
+
return engine;
|
|
1632
|
+
}
|
|
1633
|
+
function rootNode() {
|
|
1634
|
+
return root;
|
|
1635
|
+
}
|
|
1636
|
+
function containerNode() {
|
|
1637
|
+
return container;
|
|
1638
|
+
}
|
|
1639
|
+
function slideNodes() {
|
|
1640
|
+
return slides;
|
|
1641
|
+
}
|
|
1642
|
+
const self = {
|
|
1643
|
+
canScrollNext,
|
|
1644
|
+
canScrollPrev,
|
|
1645
|
+
containerNode,
|
|
1646
|
+
internalEngine,
|
|
1647
|
+
destroy,
|
|
1648
|
+
off,
|
|
1649
|
+
on,
|
|
1650
|
+
emit,
|
|
1651
|
+
plugins,
|
|
1652
|
+
previousScrollSnap,
|
|
1653
|
+
reInit,
|
|
1654
|
+
rootNode,
|
|
1655
|
+
scrollNext,
|
|
1656
|
+
scrollPrev,
|
|
1657
|
+
scrollProgress,
|
|
1658
|
+
scrollSnapList,
|
|
1659
|
+
scrollTo,
|
|
1660
|
+
selectedScrollSnap,
|
|
1661
|
+
slideNodes,
|
|
1662
|
+
slidesInView,
|
|
1663
|
+
slidesNotInView
|
|
1664
|
+
};
|
|
1665
|
+
activate(userOptions, userPlugins);
|
|
1666
|
+
setTimeout(() => eventHandler.emit('init'), 0);
|
|
1667
|
+
return self;
|
|
1668
|
+
}
|
|
1669
|
+
EmblaCarousel.globalOptions = undefined;
|
|
1670
|
+
|
|
1671
|
+
const sekiCarouselCss = ":host{--seki-carousel-gap:1rem;--seki-carousel-arrow-size:2.5rem;--seki-carousel-arrow-bg:rgba(255, 255, 255, 0.8);--seki-carousel-arrow-bg-hover:rgba(255, 255, 255, 0.95);--seki-carousel-arrow-color:var(--seki-color-foreground, #0f172a);--seki-carousel-dot-size:0.5rem;--seki-carousel-dot-active-size:0.625rem;--seki-carousel-dot-gap:0.5rem;--seki-carousel-dot-color:var(--seki-color-muted, #94a3b8);--seki-carousel-dot-active-color:var(--seki-color-primary, #0f172a);display:block;position:relative;width:100%}:host(:focus){outline:none}:host(:focus-visible){outline:2px solid var(--seki-color-ring, #3b82f6);outline-offset:2px;border-radius:var(--seki-radius-md, 0.375rem)}.carousel__container{position:relative;width:100%}.carousel__live-region{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}:host([data-theme=\"dark\"]),:host-context([data-theme=\"dark\"]){--seki-carousel-arrow-bg:rgba(30, 41, 59, 0.8);--seki-carousel-arrow-bg-hover:rgba(30, 41, 59, 0.95);--seki-carousel-arrow-color:#f8fafc;--seki-carousel-dot-color:#64748b;--seki-carousel-dot-active-color:#f8fafc}@media (prefers-reduced-motion: reduce){:host *{transition:none !important;animation:none !important}}";
|
|
1672
|
+
|
|
1673
|
+
const SekiCarousel = class {
|
|
1674
|
+
constructor(hostRef) {
|
|
1675
|
+
registerInstance(this, hostRef);
|
|
1676
|
+
this.slideChange = createEvent(this, "seki-slide-change");
|
|
1677
|
+
// =========================================================================
|
|
1678
|
+
// Props
|
|
1679
|
+
// =========================================================================
|
|
1680
|
+
/** Enable infinite loop scrolling */
|
|
1681
|
+
this.loop = false;
|
|
1682
|
+
/** Enable autoplay */
|
|
1683
|
+
this.autoplay = false;
|
|
1684
|
+
/** Autoplay delay in milliseconds */
|
|
1685
|
+
this.autoplayDelay = 4000;
|
|
1686
|
+
/** Pause autoplay on hover */
|
|
1687
|
+
this.pauseOnHover = true;
|
|
1688
|
+
/** Number of slides to scroll at once */
|
|
1689
|
+
this.slidesToScroll = 1;
|
|
1690
|
+
/** Initial slide index */
|
|
1691
|
+
this.startIndex = 0;
|
|
1692
|
+
/** Enable momentum/free scrolling */
|
|
1693
|
+
this.dragFree = false;
|
|
1694
|
+
/** Accessible label for the carousel */
|
|
1695
|
+
this.ariaLabel = 'Carousel';
|
|
1696
|
+
// =========================================================================
|
|
1697
|
+
// State
|
|
1698
|
+
// =========================================================================
|
|
1699
|
+
/** Currently selected slide index */
|
|
1700
|
+
this.selectedIndex = 0;
|
|
1701
|
+
/** Total number of scroll snaps */
|
|
1702
|
+
this.scrollSnapCount = 0;
|
|
1703
|
+
/** Whether can scroll to previous */
|
|
1704
|
+
this.canScrollPrev = false;
|
|
1705
|
+
/** Whether can scroll to next */
|
|
1706
|
+
this.canScrollNext = false;
|
|
1707
|
+
/** Whether autoplay is currently paused */
|
|
1708
|
+
this.autoplayPaused = false;
|
|
1709
|
+
// =========================================================================
|
|
1710
|
+
// Private
|
|
1711
|
+
// =========================================================================
|
|
1712
|
+
this.emblaApi = null;
|
|
1713
|
+
this.autoplayInterval = null;
|
|
1714
|
+
this.viewportEl = null;
|
|
1715
|
+
this.handleSelect = () => {
|
|
1716
|
+
this.updateState();
|
|
1717
|
+
this.slideChange.emit({
|
|
1718
|
+
index: this.selectedIndex,
|
|
1719
|
+
total: this.scrollSnapCount,
|
|
1720
|
+
});
|
|
1721
|
+
};
|
|
1722
|
+
this.handleReInit = () => {
|
|
1723
|
+
this.updateState();
|
|
1724
|
+
};
|
|
1725
|
+
this.handlePointerDown = () => {
|
|
1726
|
+
if (this.autoplay) {
|
|
1727
|
+
this.pauseAutoplay();
|
|
1728
|
+
}
|
|
1729
|
+
};
|
|
1730
|
+
this.handlePointerUp = () => {
|
|
1731
|
+
if (this.autoplay && this.autoplayPaused) {
|
|
1732
|
+
this.resumeAutoplay();
|
|
1733
|
+
}
|
|
1734
|
+
};
|
|
1735
|
+
this.handleMouseEnter = () => {
|
|
1736
|
+
if (this.autoplay && this.pauseOnHover) {
|
|
1737
|
+
this.pauseAutoplay();
|
|
1738
|
+
}
|
|
1739
|
+
};
|
|
1740
|
+
this.handleMouseLeave = () => {
|
|
1741
|
+
if (this.autoplay && this.pauseOnHover && this.autoplayPaused) {
|
|
1742
|
+
this.resumeAutoplay();
|
|
1743
|
+
}
|
|
1744
|
+
};
|
|
1745
|
+
this.handleFocusIn = () => {
|
|
1746
|
+
if (this.autoplay) {
|
|
1747
|
+
this.pauseAutoplay();
|
|
1748
|
+
}
|
|
1749
|
+
};
|
|
1750
|
+
this.handleFocusOut = (event) => {
|
|
1751
|
+
// Only resume if focus is leaving the carousel entirely
|
|
1752
|
+
if (this.autoplay && !this.el.contains(event.relatedTarget)) {
|
|
1753
|
+
this.resumeAutoplay();
|
|
1754
|
+
}
|
|
1755
|
+
};
|
|
1756
|
+
this.handleKeyDown = (event) => {
|
|
1757
|
+
var _a, _b, _c, _d;
|
|
1758
|
+
switch (event.key) {
|
|
1759
|
+
case 'ArrowLeft':
|
|
1760
|
+
event.preventDefault();
|
|
1761
|
+
(_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollPrev();
|
|
1762
|
+
break;
|
|
1763
|
+
case 'ArrowRight':
|
|
1764
|
+
event.preventDefault();
|
|
1765
|
+
(_b = this.emblaApi) === null || _b === void 0 ? void 0 : _b.scrollNext();
|
|
1766
|
+
break;
|
|
1767
|
+
case 'Home':
|
|
1768
|
+
event.preventDefault();
|
|
1769
|
+
(_c = this.emblaApi) === null || _c === void 0 ? void 0 : _c.scrollTo(0);
|
|
1770
|
+
break;
|
|
1771
|
+
case 'End':
|
|
1772
|
+
event.preventDefault();
|
|
1773
|
+
(_d = this.emblaApi) === null || _d === void 0 ? void 0 : _d.scrollTo(this.scrollSnapCount - 1);
|
|
1774
|
+
break;
|
|
1775
|
+
}
|
|
1776
|
+
};
|
|
1777
|
+
}
|
|
1778
|
+
// =========================================================================
|
|
1779
|
+
// Lifecycle
|
|
1780
|
+
// =========================================================================
|
|
1781
|
+
componentDidLoad() {
|
|
1782
|
+
this.initEmbla();
|
|
1783
|
+
}
|
|
1784
|
+
disconnectedCallback() {
|
|
1785
|
+
var _a;
|
|
1786
|
+
this.stopAutoplay();
|
|
1787
|
+
(_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
1788
|
+
}
|
|
1789
|
+
// =========================================================================
|
|
1790
|
+
// Watchers
|
|
1791
|
+
// =========================================================================
|
|
1792
|
+
handleAutoplayChange(newValue) {
|
|
1793
|
+
if (newValue) {
|
|
1794
|
+
this.startAutoplay();
|
|
1795
|
+
}
|
|
1796
|
+
else {
|
|
1797
|
+
this.stopAutoplay();
|
|
1798
|
+
}
|
|
1799
|
+
}
|
|
1800
|
+
handleOptionsChange() {
|
|
1801
|
+
var _a;
|
|
1802
|
+
// Reinitialize Embla with new options
|
|
1803
|
+
(_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.destroy();
|
|
1804
|
+
this.initEmbla();
|
|
1805
|
+
}
|
|
1806
|
+
// =========================================================================
|
|
1807
|
+
// Public Methods
|
|
1808
|
+
// =========================================================================
|
|
1809
|
+
/** Scroll to the previous slide */
|
|
1810
|
+
async scrollPrev() {
|
|
1811
|
+
var _a;
|
|
1812
|
+
(_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollPrev();
|
|
1813
|
+
}
|
|
1814
|
+
/** Scroll to the next slide */
|
|
1815
|
+
async scrollNext() {
|
|
1816
|
+
var _a;
|
|
1817
|
+
(_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollNext();
|
|
1818
|
+
}
|
|
1819
|
+
/** Scroll to a specific slide index */
|
|
1820
|
+
async goToSlide(index) {
|
|
1821
|
+
var _a;
|
|
1822
|
+
(_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollTo(index);
|
|
1823
|
+
}
|
|
1824
|
+
/** Get the currently selected slide index */
|
|
1825
|
+
async getSelectedIndex() {
|
|
1826
|
+
var _a, _b;
|
|
1827
|
+
return (_b = (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.selectedScrollSnap()) !== null && _b !== void 0 ? _b : 0;
|
|
1828
|
+
}
|
|
1829
|
+
/** Get the carousel context for child components */
|
|
1830
|
+
async getContext() {
|
|
1831
|
+
return {
|
|
1832
|
+
emblaApi: this.emblaApi,
|
|
1833
|
+
selectedIndex: this.selectedIndex,
|
|
1834
|
+
scrollSnapCount: this.scrollSnapCount,
|
|
1835
|
+
canScrollPrev: this.canScrollPrev,
|
|
1836
|
+
canScrollNext: this.canScrollNext,
|
|
1837
|
+
scrollPrev: () => { var _a; return (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollPrev(); },
|
|
1838
|
+
scrollNext: () => { var _a; return (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollNext(); },
|
|
1839
|
+
scrollTo: (index) => { var _a; return (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollTo(index); },
|
|
1840
|
+
};
|
|
1841
|
+
}
|
|
1842
|
+
// =========================================================================
|
|
1843
|
+
// Private Methods
|
|
1844
|
+
// =========================================================================
|
|
1845
|
+
initEmbla() {
|
|
1846
|
+
var _a;
|
|
1847
|
+
// Find the viewport element (seki-carousel-content)
|
|
1848
|
+
this.viewportEl = this.el.querySelector('seki-carousel-content');
|
|
1849
|
+
if (!this.viewportEl) {
|
|
1850
|
+
console.warn('seki-carousel: No seki-carousel-content found');
|
|
1851
|
+
return;
|
|
1852
|
+
}
|
|
1853
|
+
// Get the inner container
|
|
1854
|
+
const containerEl = (_a = this.viewportEl.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.carousel-content');
|
|
1855
|
+
if (!containerEl) {
|
|
1856
|
+
// Wait for content to render
|
|
1857
|
+
requestAnimationFrame(() => this.initEmbla());
|
|
1858
|
+
return;
|
|
1859
|
+
}
|
|
1860
|
+
const options = {
|
|
1861
|
+
loop: this.loop,
|
|
1862
|
+
startIndex: this.startIndex,
|
|
1863
|
+
slidesToScroll: this.slidesToScroll,
|
|
1864
|
+
dragFree: this.dragFree,
|
|
1865
|
+
containScroll: 'trimSnaps',
|
|
1866
|
+
};
|
|
1867
|
+
this.emblaApi = EmblaCarousel(this.viewportEl, options);
|
|
1868
|
+
// Set up event listeners
|
|
1869
|
+
this.emblaApi.on('select', this.handleSelect);
|
|
1870
|
+
this.emblaApi.on('reInit', this.handleReInit);
|
|
1871
|
+
this.emblaApi.on('pointerDown', this.handlePointerDown);
|
|
1872
|
+
this.emblaApi.on('pointerUp', this.handlePointerUp);
|
|
1873
|
+
// Initial state update
|
|
1874
|
+
this.updateState();
|
|
1875
|
+
// Start autoplay if enabled
|
|
1876
|
+
if (this.autoplay) {
|
|
1877
|
+
this.startAutoplay();
|
|
1878
|
+
}
|
|
1879
|
+
}
|
|
1880
|
+
updateState() {
|
|
1881
|
+
if (!this.emblaApi)
|
|
1882
|
+
return;
|
|
1883
|
+
this.selectedIndex = this.emblaApi.selectedScrollSnap();
|
|
1884
|
+
this.scrollSnapCount = this.emblaApi.scrollSnapList().length;
|
|
1885
|
+
this.canScrollPrev = this.emblaApi.canScrollPrev();
|
|
1886
|
+
this.canScrollNext = this.emblaApi.canScrollNext();
|
|
1887
|
+
}
|
|
1888
|
+
startAutoplay() {
|
|
1889
|
+
if (this.autoplayInterval)
|
|
1890
|
+
return;
|
|
1891
|
+
// Check for reduced motion preference
|
|
1892
|
+
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
|
|
1893
|
+
return;
|
|
1894
|
+
}
|
|
1895
|
+
this.autoplayInterval = setInterval(() => {
|
|
1896
|
+
if (!this.autoplayPaused && this.emblaApi) {
|
|
1897
|
+
if (this.loop || this.canScrollNext) {
|
|
1898
|
+
this.emblaApi.scrollNext();
|
|
1899
|
+
}
|
|
1900
|
+
else {
|
|
1901
|
+
// Reset to start if not looping
|
|
1902
|
+
this.emblaApi.scrollTo(0);
|
|
1903
|
+
}
|
|
1904
|
+
}
|
|
1905
|
+
}, this.autoplayDelay);
|
|
1906
|
+
}
|
|
1907
|
+
stopAutoplay() {
|
|
1908
|
+
if (this.autoplayInterval) {
|
|
1909
|
+
clearInterval(this.autoplayInterval);
|
|
1910
|
+
this.autoplayInterval = null;
|
|
1911
|
+
}
|
|
1912
|
+
this.autoplayPaused = false;
|
|
1913
|
+
}
|
|
1914
|
+
pauseAutoplay() {
|
|
1915
|
+
this.autoplayPaused = true;
|
|
1916
|
+
}
|
|
1917
|
+
resumeAutoplay() {
|
|
1918
|
+
this.autoplayPaused = false;
|
|
1919
|
+
}
|
|
1920
|
+
// =========================================================================
|
|
1921
|
+
// Render
|
|
1922
|
+
// =========================================================================
|
|
1923
|
+
render() {
|
|
1924
|
+
return (h(Host, { key: 'a7eb148f26f940d3924989a014770530044b6ff6', 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 }, h("div", { key: 'c0a1b637c07a58f8e73202396a1f29464fc2c758', class: "carousel__container" }, h("slot", { key: 'eb4dc7088cb11ecbf35c11c3ead292ac7f292a5a' })), h("div", { key: '78c4cdecff0fb89908279dc0a589dd174801bbd3', class: "carousel__live-region", "aria-live": "polite", "aria-atomic": "true" }, `Slide ${this.selectedIndex + 1} of ${this.scrollSnapCount}`)));
|
|
1925
|
+
}
|
|
1926
|
+
get el() { return getElement(this); }
|
|
1927
|
+
static get watchers() { return {
|
|
1928
|
+
"autoplay": ["handleAutoplayChange"],
|
|
1929
|
+
"loop": ["handleOptionsChange"],
|
|
1930
|
+
"slidesToScroll": ["handleOptionsChange"],
|
|
1931
|
+
"dragFree": ["handleOptionsChange"]
|
|
1932
|
+
}; }
|
|
1933
|
+
};
|
|
1934
|
+
SekiCarousel.style = sekiCarouselCss;
|
|
1935
|
+
|
|
1936
|
+
export { SekiCarousel as seki_carousel };
|