@sekiui/elements 0.0.55 → 0.0.57
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 +1053 -91
- package/dist/cdn/p-BJCq8m2o.js +138 -0
- package/dist/cdn/p-BfRJQMIU.js +111 -0
- package/dist/cdn/{p-bMBhrs0a.js → p-Bp7tjKwQ.js} +427 -7
- package/dist/cdn/seki-button.js +1 -1
- package/dist/cdn/seki-card-action.d.ts +11 -0
- package/dist/cdn/seki-card-action.js +38 -0
- package/dist/cdn/seki-card-content.d.ts +11 -0
- package/dist/cdn/seki-card-content.js +38 -0
- package/dist/cdn/seki-card-description.d.ts +11 -0
- package/dist/cdn/seki-card-description.js +38 -0
- package/dist/cdn/seki-card-footer.d.ts +11 -0
- package/dist/cdn/seki-card-footer.js +44 -0
- package/dist/cdn/seki-card-header.d.ts +11 -0
- package/dist/cdn/seki-card-header.js +38 -0
- package/dist/cdn/seki-card-title.d.ts +11 -0
- package/dist/cdn/seki-card-title.js +59 -0
- package/dist/cdn/seki-card.d.ts +11 -0
- package/dist/cdn/seki-card.js +39 -0
- package/dist/cdn/seki-field-description.js +2 -2
- package/dist/cdn/seki-field-error.js +2 -2
- package/dist/cdn/seki-field-group.js +2 -2
- package/dist/cdn/seki-field-label.js +2 -2
- package/dist/cdn/seki-field-legend.js +2 -2
- package/dist/cdn/seki-field.js +2 -2
- package/dist/cdn/seki-fieldset.js +2 -2
- package/dist/cdn/seki-input.js +2 -2
- package/dist/cdn/seki-select-content.js +1 -1
- package/dist/cdn/seki-select-group.js +2 -2
- package/dist/cdn/seki-select-option.js +2 -2
- package/dist/cdn/seki-select-trigger.js +1 -1
- package/dist/cdn/seki-select.js +2 -2
- package/dist/cdn/seki-sidebar-content.d.ts +11 -0
- package/dist/cdn/seki-sidebar-content.js +38 -0
- package/dist/cdn/seki-sidebar-footer.d.ts +11 -0
- package/dist/cdn/seki-sidebar-footer.js +38 -0
- package/dist/cdn/seki-sidebar-group.d.ts +11 -0
- package/dist/cdn/seki-sidebar-group.js +131 -0
- package/dist/cdn/seki-sidebar-header.d.ts +11 -0
- package/dist/cdn/seki-sidebar-header.js +38 -0
- package/dist/cdn/seki-sidebar-menu-item.d.ts +11 -0
- package/dist/cdn/seki-sidebar-menu-item.js +200 -0
- package/dist/cdn/seki-sidebar-menu-sub.d.ts +11 -0
- package/dist/cdn/seki-sidebar-menu-sub.js +123 -0
- package/dist/cdn/seki-sidebar-menu.d.ts +11 -0
- package/dist/cdn/seki-sidebar-menu.js +38 -0
- package/dist/cdn/seki-sidebar-trigger.d.ts +11 -0
- package/dist/cdn/seki-sidebar-trigger.js +109 -0
- package/dist/cdn/seki-sidebar.d.ts +11 -0
- package/dist/cdn/seki-sidebar.js +380 -0
- package/dist/cdn/seki-skeleton.js +2 -2
- package/dist/cdn/seki-switch.js +1 -1
- package/dist/cdn/seki-tooltip.js +1 -1
- package/dist/cjs/{index-Dd6_-KaR.js → index-tQYksITZ.js} +426 -6
- package/dist/cjs/index.cjs.js +1115 -63
- package/dist/cjs/keyboard-Cjl5HYES.js +142 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/seki-button.cjs.entry.js +1 -1
- package/dist/cjs/seki-card-action.cjs.entry.js +17 -0
- package/dist/cjs/seki-card-content.cjs.entry.js +17 -0
- package/dist/cjs/seki-card-description.cjs.entry.js +17 -0
- package/dist/cjs/seki-card-footer.cjs.entry.js +22 -0
- package/dist/cjs/seki-card-header.cjs.entry.js +17 -0
- package/dist/cjs/seki-card-title.cjs.entry.js +37 -0
- package/dist/cjs/seki-card.cjs.entry.js +17 -0
- package/dist/cjs/seki-field-description.cjs.entry.js +2 -2
- package/dist/cjs/seki-field-error.cjs.entry.js +2 -2
- package/dist/cjs/seki-field-group.cjs.entry.js +2 -2
- package/dist/cjs/seki-field-label.cjs.entry.js +2 -2
- package/dist/cjs/seki-field-legend.cjs.entry.js +2 -2
- package/dist/cjs/seki-field.cjs.entry.js +2 -2
- package/dist/cjs/seki-fieldset.cjs.entry.js +2 -2
- package/dist/cjs/seki-input.cjs.entry.js +2 -2
- package/dist/cjs/seki-select-content.cjs.entry.js +1 -1
- package/dist/cjs/seki-select-group.cjs.entry.js +2 -2
- package/dist/cjs/seki-select-option.cjs.entry.js +2 -2
- package/dist/cjs/seki-select-trigger.cjs.entry.js +1 -1
- package/dist/cjs/seki-select.cjs.entry.js +2 -2
- package/dist/cjs/seki-sidebar-content.cjs.entry.js +20 -0
- package/dist/cjs/seki-sidebar-footer.cjs.entry.js +20 -0
- package/dist/cjs/seki-sidebar-group.cjs.entry.js +105 -0
- package/dist/cjs/seki-sidebar-header.cjs.entry.js +20 -0
- package/dist/cjs/seki-sidebar-menu-item.cjs.entry.js +174 -0
- package/dist/cjs/seki-sidebar-menu-sub.cjs.entry.js +99 -0
- package/dist/cjs/seki-sidebar-menu.cjs.entry.js +20 -0
- package/dist/cjs/seki-sidebar-trigger.cjs.entry.js +86 -0
- package/dist/cjs/seki-sidebar.cjs.entry.js +342 -0
- package/dist/cjs/seki-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/seki-switch.cjs.entry.js +81 -3
- package/dist/cjs/seki-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/sekiui.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +16 -0
- package/dist/collection/components/card/seki-card-action.js +50 -0
- package/dist/collection/components/card/seki-card-content.js +51 -0
- package/dist/collection/components/card/seki-card-description.js +48 -0
- package/dist/collection/components/card/seki-card-footer.js +83 -0
- package/dist/collection/components/card/seki-card-header.js +54 -0
- package/dist/collection/components/card/seki-card-title.js +95 -0
- package/dist/collection/components/card/seki-card.a11y.js +363 -0
- package/dist/collection/components/card/seki-card.css +608 -0
- package/dist/collection/components/card/seki-card.js +72 -0
- package/dist/collection/components/field/seki-field.js +1 -1
- package/dist/collection/components/field-description/seki-field-description.js +1 -1
- package/dist/collection/components/field-error/seki-field-error.js +1 -1
- package/dist/collection/components/field-group/seki-field-group.js +1 -1
- package/dist/collection/components/field-label/seki-field-label.js +1 -1
- package/dist/collection/components/field-legend/seki-field-legend.js +1 -1
- package/dist/collection/components/fieldset/seki-fieldset.js +1 -1
- package/dist/collection/components/input/seki-input.js +1 -1
- package/dist/collection/components/select/seki-select.js +1 -1
- package/dist/collection/components/select-group/seki-select-group.js +1 -1
- package/dist/collection/components/select-option/seki-select-option.js +1 -1
- package/dist/collection/components/sidebar/seki-sidebar-content.css +82 -0
- package/dist/collection/components/sidebar/seki-sidebar-content.js +33 -0
- package/dist/collection/components/sidebar/seki-sidebar-footer.css +44 -0
- package/dist/collection/components/sidebar/seki-sidebar-footer.js +31 -0
- package/dist/collection/components/sidebar/seki-sidebar-group.css +158 -0
- package/dist/collection/components/sidebar/seki-sidebar-group.js +300 -0
- package/dist/collection/components/sidebar/seki-sidebar-header.css +44 -0
- package/dist/collection/components/sidebar/seki-sidebar-header.js +32 -0
- package/dist/collection/components/sidebar/seki-sidebar-menu-item.css +196 -0
- package/dist/collection/components/sidebar/seki-sidebar-menu-item.js +403 -0
- package/dist/collection/components/sidebar/seki-sidebar-menu-sub.css +357 -0
- package/dist/collection/components/sidebar/seki-sidebar-menu-sub.js +256 -0
- package/dist/collection/components/sidebar/seki-sidebar-menu.css +25 -0
- package/dist/collection/components/sidebar/seki-sidebar-menu.js +32 -0
- package/dist/collection/components/sidebar/seki-sidebar-trigger.css +68 -0
- package/dist/collection/components/sidebar/seki-sidebar-trigger.js +175 -0
- package/dist/collection/components/sidebar/seki-sidebar.css +352 -0
- package/dist/collection/components/sidebar/seki-sidebar.js +812 -0
- package/dist/collection/components/sidebar/types.js +18 -0
- package/dist/collection/components/skeleton/seki-skeleton.js +1 -1
- package/dist/collection/index.js +7 -0
- package/dist/collection/services/focus.js +192 -0
- package/dist/collection/services/index.js +7 -0
- package/dist/collection/services/keyboard.js +136 -0
- package/dist/collection/services/media-query.js +254 -0
- package/dist/collection/types.js +41 -0
- package/dist/collection/utils/a11y.js +291 -0
- package/dist/collection/utils/common.js +286 -0
- package/dist/components/index.js +1053 -91
- package/dist/components/p-BJCq8m2o.js +138 -0
- package/dist/components/{p-QhPshhKB.js → p-BzYKy7d3.js} +427 -7
- package/dist/components/p-DwTISp-i.js +111 -0
- package/dist/components/seki-button.js +1 -1
- package/dist/components/seki-card-action.d.ts +11 -0
- package/dist/components/seki-card-action.js +38 -0
- package/dist/components/seki-card-content.d.ts +11 -0
- package/dist/components/seki-card-content.js +38 -0
- package/dist/components/seki-card-description.d.ts +11 -0
- package/dist/components/seki-card-description.js +38 -0
- package/dist/components/seki-card-footer.d.ts +11 -0
- package/dist/components/seki-card-footer.js +44 -0
- package/dist/components/seki-card-header.d.ts +11 -0
- package/dist/components/seki-card-header.js +38 -0
- package/dist/components/seki-card-title.d.ts +11 -0
- package/dist/components/seki-card-title.js +59 -0
- package/dist/components/seki-card.d.ts +11 -0
- package/dist/components/seki-card.js +39 -0
- package/dist/components/seki-field-description.js +2 -2
- package/dist/components/seki-field-error.js +2 -2
- package/dist/components/seki-field-group.js +2 -2
- package/dist/components/seki-field-label.js +2 -2
- package/dist/components/seki-field-legend.js +2 -2
- package/dist/components/seki-field.js +2 -2
- package/dist/components/seki-fieldset.js +2 -2
- package/dist/components/seki-input.js +2 -2
- package/dist/components/seki-select-content.js +1 -1
- package/dist/components/seki-select-group.js +2 -2
- package/dist/components/seki-select-option.js +2 -2
- package/dist/components/seki-select-trigger.js +1 -1
- package/dist/components/seki-select.js +2 -2
- package/dist/components/seki-sidebar-content.d.ts +11 -0
- package/dist/components/seki-sidebar-content.js +38 -0
- package/dist/components/seki-sidebar-footer.d.ts +11 -0
- package/dist/components/seki-sidebar-footer.js +38 -0
- package/dist/components/seki-sidebar-group.d.ts +11 -0
- package/dist/components/seki-sidebar-group.js +131 -0
- package/dist/components/seki-sidebar-header.d.ts +11 -0
- package/dist/components/seki-sidebar-header.js +38 -0
- package/dist/components/seki-sidebar-menu-item.d.ts +11 -0
- package/dist/components/seki-sidebar-menu-item.js +200 -0
- package/dist/components/seki-sidebar-menu-sub.d.ts +11 -0
- package/dist/components/seki-sidebar-menu-sub.js +123 -0
- package/dist/components/seki-sidebar-menu.d.ts +11 -0
- package/dist/components/seki-sidebar-menu.js +38 -0
- package/dist/components/seki-sidebar-trigger.d.ts +11 -0
- package/dist/components/seki-sidebar-trigger.js +109 -0
- package/dist/components/seki-sidebar.d.ts +11 -0
- package/dist/components/seki-sidebar.js +380 -0
- package/dist/components/seki-skeleton.js +2 -2
- package/dist/components/seki-switch.js +1 -1
- package/dist/components/seki-tooltip.js +1 -1
- package/dist/esm/{index-CuXbV_yz.js → index-Dfzpqq0a.js} +426 -6
- package/dist/esm/index.js +1053 -63
- package/dist/esm/keyboard-BJCq8m2o.js +138 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/seki-button.entry.js +1 -1
- package/dist/esm/seki-card-action.entry.js +15 -0
- package/dist/esm/seki-card-content.entry.js +15 -0
- package/dist/esm/seki-card-description.entry.js +15 -0
- package/dist/esm/seki-card-footer.entry.js +20 -0
- package/dist/esm/seki-card-header.entry.js +15 -0
- package/dist/esm/seki-card-title.entry.js +35 -0
- package/dist/esm/seki-card.entry.js +15 -0
- package/dist/esm/seki-field-description.entry.js +2 -2
- package/dist/esm/seki-field-error.entry.js +2 -2
- package/dist/esm/seki-field-group.entry.js +2 -2
- package/dist/esm/seki-field-label.entry.js +2 -2
- package/dist/esm/seki-field-legend.entry.js +2 -2
- package/dist/esm/seki-field.entry.js +2 -2
- package/dist/esm/seki-fieldset.entry.js +2 -2
- package/dist/esm/seki-input.entry.js +2 -2
- package/dist/esm/seki-select-content.entry.js +1 -1
- package/dist/esm/seki-select-group.entry.js +2 -2
- package/dist/esm/seki-select-option.entry.js +2 -2
- package/dist/esm/seki-select-trigger.entry.js +1 -1
- package/dist/esm/seki-select.entry.js +2 -2
- package/dist/esm/seki-sidebar-content.entry.js +18 -0
- package/dist/esm/seki-sidebar-footer.entry.js +18 -0
- package/dist/esm/seki-sidebar-group.entry.js +103 -0
- package/dist/esm/seki-sidebar-header.entry.js +18 -0
- package/dist/esm/seki-sidebar-menu-item.entry.js +172 -0
- package/dist/esm/seki-sidebar-menu-sub.entry.js +97 -0
- package/dist/esm/seki-sidebar-menu.entry.js +18 -0
- package/dist/esm/seki-sidebar-trigger.entry.js +84 -0
- package/dist/esm/seki-sidebar.entry.js +340 -0
- package/dist/esm/seki-skeleton.entry.js +2 -2
- package/dist/esm/seki-switch.entry.js +84 -2
- package/dist/esm/seki-tooltip.entry.js +1 -1
- package/dist/esm/sekiui.js +3 -3
- package/dist/sekiui/index.esm.js +1 -1
- package/dist/sekiui/p-01cfb4e7.entry.js +1 -0
- package/dist/sekiui/{p-431f46a1.entry.js → p-042ec460.entry.js} +1 -1
- package/dist/sekiui/{p-a36f1ac4.entry.js → p-10c008fc.entry.js} +1 -1
- package/dist/sekiui/p-352bd295.entry.js +1 -0
- package/dist/sekiui/p-37c5f4d9.entry.js +1 -0
- package/dist/sekiui/p-40fb71d6.entry.js +1 -0
- package/dist/sekiui/{p-eefbc037.entry.js → p-44191aed.entry.js} +1 -1
- package/dist/sekiui/{p-81709fc2.entry.js → p-4423d621.entry.js} +1 -1
- package/dist/sekiui/{p-e679d501.entry.js → p-4636588f.entry.js} +1 -1
- package/dist/sekiui/p-471b97a5.entry.js +1 -0
- package/dist/sekiui/{p-de4735fb.entry.js → p-56f0d754.entry.js} +1 -1
- package/dist/sekiui/p-5bc0f5aa.entry.js +1 -0
- package/dist/sekiui/p-6164cd8a.entry.js +1 -0
- package/dist/sekiui/{p-0fba4e2d.entry.js → p-635f4098.entry.js} +1 -1
- package/dist/sekiui/{p-434be19f.entry.js → p-743fc6d9.entry.js} +1 -1
- package/dist/sekiui/p-83e65cbe.entry.js +1 -0
- package/dist/sekiui/p-8b7bd061.entry.js +1 -0
- package/dist/sekiui/p-8d9a4878.entry.js +1 -0
- package/dist/sekiui/p-9cb9cdfe.entry.js +1 -0
- package/dist/sekiui/p-9f2d95d7.entry.js +1 -0
- package/dist/sekiui/p-BJCq8m2o.js +1 -0
- package/dist/sekiui/p-Dfzpqq0a.js +2 -0
- package/dist/sekiui/p-a1a71958.entry.js +1 -0
- package/dist/sekiui/{p-bf942ad5.entry.js → p-a71e0c55.entry.js} +1 -1
- package/dist/sekiui/{p-6ff91f7f.entry.js → p-ae227955.entry.js} +1 -1
- package/dist/sekiui/{p-80a41058.entry.js → p-b365f5fb.entry.js} +1 -1
- package/dist/sekiui/{p-6bde807e.entry.js → p-b387a2a5.entry.js} +1 -1
- package/dist/sekiui/p-b8590f4d.entry.js +1 -0
- package/dist/sekiui/p-c98b6d6a.entry.js +1 -0
- package/dist/sekiui/{p-7c2245be.entry.js → p-d73cdb9a.entry.js} +1 -1
- package/dist/sekiui/{p-a56602b3.entry.js → p-d96e770e.entry.js} +1 -1
- package/dist/sekiui/p-e62dd89b.entry.js +1 -0
- package/dist/sekiui/{p-386c00ac.entry.js → p-e7bb140c.entry.js} +1 -1
- package/dist/sekiui/{p-6e238adf.entry.js → p-eecc18f3.entry.js} +1 -1
- package/dist/sekiui/p-ff636955.entry.js +1 -0
- package/dist/sekiui/sekiui.esm.js +1 -1
- package/dist/types/components/card/seki-card-action.d.ts +16 -0
- package/dist/types/components/card/seki-card-content.d.ts +17 -0
- package/dist/types/components/card/seki-card-description.d.ts +14 -0
- package/dist/types/components/card/seki-card-footer.d.ts +24 -0
- package/dist/types/components/card/seki-card-header.d.ts +20 -0
- package/dist/types/components/card/seki-card-title.d.ts +20 -0
- package/dist/types/components/card/seki-card.a11y.d.ts +1 -0
- package/dist/types/components/card/seki-card.d.ts +23 -0
- package/dist/types/components/sidebar/seki-sidebar-content.d.ts +18 -0
- package/dist/types/components/sidebar/seki-sidebar-footer.d.ts +16 -0
- package/dist/types/components/sidebar/seki-sidebar-group.d.ts +81 -0
- package/dist/types/components/sidebar/seki-sidebar-header.d.ts +17 -0
- package/dist/types/components/sidebar/seki-sidebar-menu-item.d.ts +104 -0
- package/dist/types/components/sidebar/seki-sidebar-menu-sub.d.ts +81 -0
- package/dist/types/components/sidebar/seki-sidebar-menu.d.ts +17 -0
- package/dist/types/components/sidebar/seki-sidebar-trigger.d.ts +53 -0
- package/dist/types/components/sidebar/seki-sidebar.d.ts +185 -0
- package/dist/types/components/sidebar/types.d.ts +245 -0
- package/dist/types/components.d.ts +899 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/services/focus.d.ts +74 -0
- package/dist/types/services/index.d.ts +7 -0
- package/dist/types/services/keyboard.d.ts +74 -0
- package/dist/types/services/media-query.d.ts +121 -0
- package/dist/types/types.d.ts +105 -0
- package/dist/types/utils/a11y.d.ts +130 -0
- package/dist/types/utils/common.d.ts +142 -0
- package/package.json +2 -1
- package/dist/sekiui/p-9fe07f6e.entry.js +0 -1
- package/dist/sekiui/p-CuXbV_yz.js +0 -2
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, H as Host, a as getElement } from './index-Dfzpqq0a.js';
|
|
2
|
+
import { g as getKeyboardService } from './keyboard-BJCq8m2o.js';
|
|
3
|
+
|
|
4
|
+
const sekiSidebarCss = ":host{--sidebar-bg:var(--color-sidebar-bg, #f9fafb);--sidebar-foreground:var(--color-sidebar-foreground, #1f2937);--sidebar-primary:var(--color-sidebar-primary, #2563eb);--sidebar-accent:var(--color-sidebar-accent, #10b981);--sidebar-border:var(--color-sidebar-border, #e5e7eb);--sidebar-width:var(--sizing-sidebar-width, 250px);--sidebar-collapsed-width:var(--sizing-sidebar-collapsed-width, 64px);--sidebar-padding:var(--spacing-sidebar-padding, 1rem);--sidebar-gap:var(--spacing-sidebar-gap, 0.5rem);--sidebar-item-padding:var(--spacing-sidebar-item-padding, 0.75rem 1rem);--sidebar-item-height:var(--sizing-sidebar-item-height, 44px);--sidebar-item-border-radius:var(--radius-sidebar-item, 0.375rem);--sidebar-transition-duration:var(--duration-sidebar-transition, 200ms);--sidebar-z-header:10;--sidebar-z-footer:10;--sidebar-z-content:1;--sidebar-z-overlay:40}:host([data-theme=\"dark\"]),:host-context([data-theme=\"dark\"]){--sidebar-bg:var(--color-sidebar-bg-dark, #1f2937);--sidebar-foreground:var(--color-sidebar-foreground-dark, #f1f5f9);--sidebar-primary:var(--color-sidebar-primary-dark, #60a5fa);--sidebar-accent:var(--color-sidebar-accent-dark, #34d399);--sidebar-border:var(--color-sidebar-border-dark, #374151)}:host{display:flex;flex-direction:column;height:100%;width:var(--sidebar-width);background-color:var(--sidebar-bg);color:var(--sidebar-foreground);border-right:1px solid var(--sidebar-border);transition:width 200ms ease-linear;contain:layout style paint}:host([data-state=\"closed\"][data-collapse-mode=\"icon\"]){width:var(--sidebar-collapsed-width)}:host([data-collapsible=\"icon\"]){--group-collapsible:icon}:host([data-collapsible=\"offcanvas\"]){--group-collapsible:offcanvas}:host([data-collapsible=\"none\"]){--group-collapsible:none}:host([data-state=\"closed\"][data-collapse-mode=\"offcanvas\"]){position:fixed;left:0;top:0;height:100vh;width:var(--sidebar-width);transform:translateX(-100%);border-right:none;box-shadow:2px 0 8px rgba(0, 0, 0, 0.1);z-index:var(--sidebar-z-overlay);opacity:0;pointer-events:none}:host([data-state=\"open\"][data-collapse-mode=\"offcanvas\"]){position:fixed;left:0;top:0;height:100vh;width:var(--sidebar-width);transform:translateX(0);box-shadow:2px 0 8px rgba(0, 0, 0, 0.1);z-index:var(--sidebar-z-overlay);opacity:1;pointer-events:auto}:host([data-variant=\"floating\"]){position:absolute;border-radius:0.5rem;box-shadow:0 4px 6px rgba(0, 0, 0, 0.1);border:1px solid var(--sidebar-border)}:host([data-variant=\"inset\"]){border-right:1px solid var(--sidebar-border)}.sidebar-container{display:flex;flex-direction:column;height:100%;overflow:hidden}.sidebar-header{flex-shrink:0;padding:var(--sidebar-padding);border-bottom:1px solid var(--sidebar-border);position:sticky;top:0;z-index:var(--sidebar-z-header);background-color:var(--sidebar-bg)}.sidebar-header:empty{display:none}:host([data-state=\"closed\"][data-collapse-mode=\"icon\"]) .sidebar-header{padding:0.5rem;justify-content:center;align-items:center}:host([data-state=\"closed\"][data-collapse-mode=\"icon\"]) .sidebar-header>*{transition:margin 200ms ease-linear, opacity 200ms ease-linear}:host([data-state=\"closed\"][data-collapse-mode=\"icon\"]) .sidebar-header>:not(svg){margin:-0.5rem 0;opacity:0}.sidebar-content{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--sidebar-padding);gap:var(--sidebar-gap);display:flex;flex-direction:column;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;min-width:0}.sidebar-content::-webkit-scrollbar{width:8px}.sidebar-content::-webkit-scrollbar-track{background:transparent}.sidebar-content::-webkit-scrollbar-thumb{background-color:var(--sidebar-accent);border-radius:4px;opacity:0.5}.sidebar-content::-webkit-scrollbar-thumb:hover{opacity:0.7}.sidebar-footer{flex-shrink:0;padding:var(--sidebar-padding);border-top:1px solid var(--sidebar-border);position:sticky;bottom:0;z-index:var(--sidebar-z-footer);background-color:var(--sidebar-bg)}.sidebar-footer:empty{display:none}:host([data-state=\"closed\"][data-collapse-mode=\"icon\"]) .sidebar-footer{padding:0.5rem;justify-content:center;display:flex;align-items:center}:host([data-state=\"closed\"][data-collapse-mode=\"icon\"]) .sidebar-footer>*{transition:margin 200ms ease-linear, opacity 200ms ease-linear}:host([data-state=\"closed\"][data-collapse-mode=\"icon\"]) .sidebar-footer>:not(:first-child){margin:-0.5rem 0;opacity:0}@media (max-width: 767px){:host{position:fixed;left:0;top:0;height:100vh;width:var(--sidebar-width);transform:translateX(-100%);transition:transform var(--sidebar-transition-duration) ease-in-out;border-right:none;box-shadow:2px 0 8px rgba(0, 0, 0, 0.1);z-index:var(--sidebar-z-overlay);opacity:0;pointer-events:none}:host([data-state=\"open\"]){transform:translateX(0);opacity:1;pointer-events:auto}:host([data-collapse-mode=\"none\"]){position:static;width:100%;height:auto;border-right:none;border-bottom:1px solid var(--sidebar-border)}}@media (min-width: 768px) and (max-width: 1023px){:host{width:var(--sidebar-width)}:host([data-state=\"closed\"][data-collapse-mode=\"icon\"]){width:var(--sidebar-collapsed-width)}}@media (min-width: 1024px){:host{position:relative;width:var(--sidebar-width);height:100%;transform:none;z-index:auto}}:host-context(:focus-visible),:host:focus-visible{outline:2px solid var(--sidebar-primary);outline-offset:-2px}@media (prefers-reduced-motion: reduce){:host{transition:none}.sidebar-content{scroll-behavior:auto}}@media print{:host{display:none}}@media (prefers-contrast: more){:host{border-width:2px}.sidebar-header,.sidebar-footer{border-width:2px}}@supports (container-type: inline-size){:host{container-type:inline-size}}";
|
|
5
|
+
|
|
6
|
+
const SekiSidebar = class {
|
|
7
|
+
constructor(hostRef) {
|
|
8
|
+
registerInstance(this, hostRef);
|
|
9
|
+
this.openChange = createEvent(this, "openChange");
|
|
10
|
+
this.variantChange = createEvent(this, "variantChange");
|
|
11
|
+
this.collapseModeChange = createEvent(this, "collapseModeChange");
|
|
12
|
+
this.mobileStateChange = createEvent(this, "mobileStateChange");
|
|
13
|
+
/**
|
|
14
|
+
* Layout variant: standard, floating (detached), or inset
|
|
15
|
+
* @type {'sidebar' | 'floating' | 'inset'}
|
|
16
|
+
* @default 'sidebar'
|
|
17
|
+
*/
|
|
18
|
+
this.variant = 'sidebar';
|
|
19
|
+
/**
|
|
20
|
+
* Collapse mechanism: offcanvas (slides), icon (shrinks), or none (fixed)
|
|
21
|
+
* @type {'offcanvas' | 'icon' | 'none'}
|
|
22
|
+
* @default 'offcanvas'
|
|
23
|
+
*/
|
|
24
|
+
this.collapseMode = 'offcanvas';
|
|
25
|
+
/**
|
|
26
|
+
* Initial open/closed state
|
|
27
|
+
* @type {boolean}
|
|
28
|
+
* @default true
|
|
29
|
+
*/
|
|
30
|
+
this.defaultOpen = true;
|
|
31
|
+
/**
|
|
32
|
+
* Persist state to localStorage
|
|
33
|
+
* @type {boolean}
|
|
34
|
+
* @default false
|
|
35
|
+
*/
|
|
36
|
+
this.persistent = false;
|
|
37
|
+
/**
|
|
38
|
+
* Viewport width for mobile detection (px)
|
|
39
|
+
* @type {number}
|
|
40
|
+
* @default 768
|
|
41
|
+
*/
|
|
42
|
+
this.mobileBreakpoint = 768;
|
|
43
|
+
/**
|
|
44
|
+
* Position: left or right side of viewport
|
|
45
|
+
* @type {'left' | 'right'}
|
|
46
|
+
* @default 'left'
|
|
47
|
+
*/
|
|
48
|
+
this.side = 'left';
|
|
49
|
+
/**
|
|
50
|
+
* Storage key for persisted state
|
|
51
|
+
* @type {string}
|
|
52
|
+
* @default 'seki-sidebar-state'
|
|
53
|
+
*/
|
|
54
|
+
this.persistenceKey = 'seki-sidebar-state';
|
|
55
|
+
/**
|
|
56
|
+
* Internal state: whether sidebar is open/expanded
|
|
57
|
+
*/
|
|
58
|
+
this.isOpen = true;
|
|
59
|
+
/**
|
|
60
|
+
* Internal state: whether viewport is mobile
|
|
61
|
+
*/
|
|
62
|
+
this.isMobile = false;
|
|
63
|
+
/**
|
|
64
|
+
* Note: Context distribution to child components via parent-child DOM hierarchy
|
|
65
|
+
* Child components use closest('seki-sidebar') to access parent methods
|
|
66
|
+
*/
|
|
67
|
+
this.resizeObserver = null;
|
|
68
|
+
this.mediaQueryList = null;
|
|
69
|
+
this.keyboardShortcutId = `seki-sidebar-shortcut-${Math.random().toString(36).substr(2, 9)}`;
|
|
70
|
+
/**
|
|
71
|
+
* Handle media query changes for mobile detection
|
|
72
|
+
*/
|
|
73
|
+
this.handleMediaQueryChange = (mq) => {
|
|
74
|
+
const wasMobile = this.isMobile;
|
|
75
|
+
this.isMobile = !mq.matches;
|
|
76
|
+
if (wasMobile !== this.isMobile) {
|
|
77
|
+
this.mobileStateChange.emit({ isMobile: this.isMobile });
|
|
78
|
+
// Auto-collapse on mobile if offcanvas mode
|
|
79
|
+
if (this.isMobile && this.collapseMode === 'offcanvas') {
|
|
80
|
+
this.isOpen = false;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Component lifecycle: initialize state
|
|
87
|
+
*/
|
|
88
|
+
componentWillLoad() {
|
|
89
|
+
// Load persisted state if available
|
|
90
|
+
if (this.persistent) {
|
|
91
|
+
try {
|
|
92
|
+
const storage = typeof window !== 'undefined' && window.localStorage;
|
|
93
|
+
if (storage) {
|
|
94
|
+
const stored = storage.getItem(this.persistenceKey);
|
|
95
|
+
if (stored) {
|
|
96
|
+
const state = JSON.parse(stored);
|
|
97
|
+
if (typeof state.isOpen === 'boolean') {
|
|
98
|
+
this.isOpen = state.isOpen;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
this.isOpen = Boolean(this.defaultOpen);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.isOpen = Boolean(this.defaultOpen);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
this.isOpen = Boolean(this.defaultOpen);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch (e) {
|
|
113
|
+
console.warn('[seki-sidebar] Failed to load persisted state:', e);
|
|
114
|
+
this.isOpen = Boolean(this.defaultOpen);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
this.isOpen = Boolean(this.defaultOpen);
|
|
119
|
+
}
|
|
120
|
+
// Detect initial mobile state
|
|
121
|
+
this.detectMobileState();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Watch for variant changes
|
|
125
|
+
*/
|
|
126
|
+
watchVariant(newValue) {
|
|
127
|
+
if (newValue) {
|
|
128
|
+
this.variantChange.emit({ variant: newValue });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Watch for collapse mode changes
|
|
133
|
+
*/
|
|
134
|
+
watchCollapseMode(newValue) {
|
|
135
|
+
if (newValue) {
|
|
136
|
+
this.collapseModeChange.emit({ collapseMode: newValue });
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Component lifecycle: after render
|
|
141
|
+
*/
|
|
142
|
+
componentDidLoad() {
|
|
143
|
+
// Setup resize detection for mobile breakpoint
|
|
144
|
+
this.setupResizeDetection();
|
|
145
|
+
// Setup keyboard shortcut (Ctrl+B or Cmd+B)
|
|
146
|
+
this.setupKeyboardShortcut();
|
|
147
|
+
// Update context with current state
|
|
148
|
+
this.updateContext();
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Component lifecycle: on prop changes
|
|
152
|
+
*/
|
|
153
|
+
componentWillUpdate() {
|
|
154
|
+
this.updateContext();
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Component lifecycle: cleanup
|
|
158
|
+
*/
|
|
159
|
+
disconnectedCallback() {
|
|
160
|
+
if (this.resizeObserver) {
|
|
161
|
+
this.resizeObserver.disconnect();
|
|
162
|
+
}
|
|
163
|
+
if (this.mediaQueryList) {
|
|
164
|
+
this.mediaQueryList.removeListener(this.handleMediaQueryChange);
|
|
165
|
+
}
|
|
166
|
+
// Clean up keyboard shortcut service
|
|
167
|
+
getKeyboardService().unregisterShortcut(this.keyboardShortcutId);
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Listen for variant prop changes
|
|
171
|
+
*/
|
|
172
|
+
onVariantChange(newVariant) {
|
|
173
|
+
this.variantChange.emit({
|
|
174
|
+
variant: newVariant,
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Listen for collapseMode prop changes
|
|
179
|
+
*/
|
|
180
|
+
onCollapseModeChange(newMode) {
|
|
181
|
+
this.collapseModeChange.emit({
|
|
182
|
+
collapseMode: newMode,
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Detect if viewport is mobile
|
|
187
|
+
*/
|
|
188
|
+
detectMobileState() {
|
|
189
|
+
if (typeof window === 'undefined')
|
|
190
|
+
return;
|
|
191
|
+
const breakpoint = this.mobileBreakpoint;
|
|
192
|
+
this.mediaQueryList = window.matchMedia(`(min-width: ${breakpoint}px)`);
|
|
193
|
+
this.isMobile = !this.mediaQueryList.matches;
|
|
194
|
+
// Use addEventListener for better browser support
|
|
195
|
+
if (this.mediaQueryList.addEventListener) {
|
|
196
|
+
this.mediaQueryList.addEventListener('change', this.handleMediaQueryChange);
|
|
197
|
+
}
|
|
198
|
+
else {
|
|
199
|
+
// Fallback for older browsers
|
|
200
|
+
this.mediaQueryList.addListener(this.handleMediaQueryChange);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Setup resize detection using ResizeObserver
|
|
205
|
+
*/
|
|
206
|
+
setupResizeDetection() {
|
|
207
|
+
if (typeof window === 'undefined' || !('ResizeObserver' in window))
|
|
208
|
+
return;
|
|
209
|
+
const ResizeObserverClass = window.ResizeObserver;
|
|
210
|
+
this.resizeObserver = new ResizeObserverClass(() => {
|
|
211
|
+
this.detectMobileState();
|
|
212
|
+
});
|
|
213
|
+
const element = this.el;
|
|
214
|
+
if (element && this.resizeObserver) {
|
|
215
|
+
this.resizeObserver.observe(element);
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Setup keyboard shortcut for toggling sidebar (Ctrl+B or Cmd+B)
|
|
220
|
+
* Uses the KeyboardService for centralized event handling
|
|
221
|
+
*/
|
|
222
|
+
setupKeyboardShortcut() {
|
|
223
|
+
const keyboardService = getKeyboardService();
|
|
224
|
+
keyboardService.registerCtrlOrCmdShortcut(this.keyboardShortcutId, 'b', () => this.toggle(), true);
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Note: Context updates handled via event emissions and state changes
|
|
228
|
+
*/
|
|
229
|
+
updateContext() {
|
|
230
|
+
// State updates trigger reactive re-renders and event emissions
|
|
231
|
+
// Child components listen to these events
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Get current state synchronously
|
|
235
|
+
*/
|
|
236
|
+
getStateSync() {
|
|
237
|
+
var _a, _b;
|
|
238
|
+
return {
|
|
239
|
+
isOpen: Boolean(this.isOpen),
|
|
240
|
+
collapseMode: (_a = this.collapseMode) !== null && _a !== void 0 ? _a : 'offcanvas',
|
|
241
|
+
variant: (_b = this.variant) !== null && _b !== void 0 ? _b : 'sidebar',
|
|
242
|
+
isMobile: Boolean(this.isMobile),
|
|
243
|
+
persistenceKey: this.persistenceKey,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Open the sidebar (set isOpen=true)
|
|
248
|
+
* @returns {Promise<void>}
|
|
249
|
+
*/
|
|
250
|
+
async open() {
|
|
251
|
+
var _a;
|
|
252
|
+
this.isOpen = true;
|
|
253
|
+
this.openChange.emit({ isOpen: true });
|
|
254
|
+
(_a = this.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(this, true);
|
|
255
|
+
await this.persistState();
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Close the sidebar (set isOpen=false)
|
|
259
|
+
* @returns {Promise<void>}
|
|
260
|
+
*/
|
|
261
|
+
async close() {
|
|
262
|
+
var _a;
|
|
263
|
+
this.isOpen = false;
|
|
264
|
+
this.openChange.emit({ isOpen: false });
|
|
265
|
+
(_a = this.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(this, false);
|
|
266
|
+
await this.persistState();
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Toggle the sidebar open/closed state
|
|
270
|
+
* @returns {Promise<void>}
|
|
271
|
+
*/
|
|
272
|
+
async toggle() {
|
|
273
|
+
if (this.isOpen) {
|
|
274
|
+
await this.close();
|
|
275
|
+
}
|
|
276
|
+
else {
|
|
277
|
+
await this.open();
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
/**
|
|
281
|
+
* Get current sidebar state
|
|
282
|
+
* @returns {Promise<SidebarState>}
|
|
283
|
+
*/
|
|
284
|
+
async getState() {
|
|
285
|
+
return this.getStateSync();
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Update sidebar state
|
|
289
|
+
* @param {Partial<SidebarState>} state - Partial state object
|
|
290
|
+
* @returns {Promise<void>}
|
|
291
|
+
*/
|
|
292
|
+
async setState(state) {
|
|
293
|
+
var _a;
|
|
294
|
+
if (state.isOpen !== undefined) {
|
|
295
|
+
this.isOpen = state.isOpen;
|
|
296
|
+
this.openChange.emit({ isOpen: state.isOpen });
|
|
297
|
+
}
|
|
298
|
+
if (state.collapseMode !== undefined) {
|
|
299
|
+
this.collapseMode = state.collapseMode;
|
|
300
|
+
this.collapseModeChange.emit({ collapseMode: state.collapseMode });
|
|
301
|
+
}
|
|
302
|
+
if (state.variant !== undefined) {
|
|
303
|
+
this.variant = state.variant;
|
|
304
|
+
this.variantChange.emit({ variant: state.variant });
|
|
305
|
+
}
|
|
306
|
+
(_a = this.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(this, this.isOpen);
|
|
307
|
+
await this.persistState();
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Persist state to localStorage if persistent=true
|
|
311
|
+
*/
|
|
312
|
+
async persistState() {
|
|
313
|
+
if (!this.persistent)
|
|
314
|
+
return;
|
|
315
|
+
try {
|
|
316
|
+
const state = this.getStateSync();
|
|
317
|
+
const storage = typeof window !== 'undefined' && window.localStorage;
|
|
318
|
+
if (storage) {
|
|
319
|
+
storage.setItem(this.persistenceKey, JSON.stringify(state));
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
catch (e) {
|
|
323
|
+
console.warn('[seki-sidebar] Failed to persist state:', e);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Render the component
|
|
328
|
+
*/
|
|
329
|
+
render() {
|
|
330
|
+
return (h(Host, { key: '82055bbf43cae7732545e8e72b2b07b1485cdabc', role: "navigation", "aria-label": "Navigation sidebar", "data-state": this.isOpen ? 'open' : 'closed', "data-variant": this.variant, "data-collapse-mode": this.collapseMode, "data-mobile": this.isMobile }, h("div", { key: 'ea80ee13d88cb2814ea0fdf81174a70e28005a7e', class: "sidebar-container" }, h("div", { key: '990963e11792dec05f7dfc46374fd9495c45d061', class: "sidebar-header" }, h("slot", { key: 'a1383badaa23eaabdedc339b5f3c0fa9006f889b', name: "header" })), h("div", { key: 'a42b588e3975e14d46dc7a0d692625e165d27c27', class: "sidebar-content" }, h("slot", { key: '129065e3f26fb9c05d166e704b65b998de0ff999' })), h("div", { key: 'd88142484a511084430f197c7dc24c7f9a00186f', class: "sidebar-footer" }, h("slot", { key: '756e0971018fc4b9e23f36ed28a4ed45d7742ef2', name: "footer" })))));
|
|
331
|
+
}
|
|
332
|
+
get el() { return getElement(this); }
|
|
333
|
+
static get watchers() { return {
|
|
334
|
+
"variant": ["watchVariant"],
|
|
335
|
+
"collapseMode": ["watchCollapseMode"]
|
|
336
|
+
}; }
|
|
337
|
+
};
|
|
338
|
+
SekiSidebar.style = sekiSidebarCss;
|
|
339
|
+
|
|
340
|
+
export { SekiSidebar as seki_sidebar };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h } from './index-
|
|
1
|
+
import { r as registerInstance, h } from './index-Dfzpqq0a.js';
|
|
2
2
|
|
|
3
3
|
const sekiSkeletonCss = ":host{--seki-neutral-50:hsl(0, 0%, 98%);--seki-neutral-100:hsl(0, 0%, 96.1%);--seki-neutral-200:hsl(0, 0%, 89.8%);--seki-neutral-300:hsl(0, 0%, 83.1%);--seki-neutral-400:hsl(0, 0%, 63.9%);--seki-neutral-500:hsl(0, 0%, 45.1%);--seki-neutral-600:hsl(0, 0%, 32.2%);--seki-neutral-700:hsl(0, 0%, 25.1%);--seki-neutral-800:hsl(0, 0%, 14.9%);--seki-neutral-900:hsl(0, 0%, 9%);--seki-neutral-950:hsl(0, 0%, 3.9%);--seki-primary-50:hsl(210, 100%, 97%);--seki-primary-100:hsl(210, 95%, 93%);--seki-primary-200:hsl(210, 95%, 85%);--seki-primary-300:hsl(210, 90%, 73%);--seki-primary-400:hsl(210, 85%, 58%);--seki-primary-500:hsl(210, 80%, 48%);--seki-primary-600:hsl(210, 75%, 40%);--seki-primary-700:hsl(210, 70%, 32%);--seki-primary-800:hsl(210, 65%, 25%);--seki-primary-900:hsl(210, 60%, 18%);--seki-primary-950:hsl(210, 55%, 10%);--seki-success-500:hsl(142, 71%, 45%);--seki-success-600:hsl(142, 71%, 35%);--seki-warning-500:hsl(38, 92%, 50%);--seki-warning-600:hsl(38, 92%, 40%);--seki-destructive-500:hsl(0, 84.2%, 60.2%);--seki-destructive-600:hsl(0, 72%, 41%)}:host{--seki-background:hsl(0, 0%, 100%);--seki-foreground:hsl(0, 0%, 3.9%);--seki-muted:hsl(0, 0%, 96.1%);--seki-muted-foreground:hsl(0, 0%, 45.1%);--seki-card:hsl(0, 0%, 100%);--seki-card-foreground:hsl(0, 0%, 3.9%);--seki-popover:hsl(0, 0%, 100%);--seki-popover-foreground:hsl(0, 0%, 3.9%);--seki-border:hsl(0, 0%, 89.8%);--seki-input:hsl(0, 0%, 89.8%);--seki-primary:hsl(0, 0%, 9%);--seki-primary-foreground:hsl(0, 0%, 98%);--seki-secondary:hsl(0, 0%, 96.1%);--seki-secondary-foreground:hsl(0, 0%, 9%);--seki-accent:hsl(0, 0%, 96.1%);--seki-accent-foreground:hsl(0, 0%, 9%);--seki-destructive:hsl(0, 84.2%, 60.2%);--seki-destructive-foreground:hsl(0, 0%, 98%);--seki-ring:hsl(0, 0%, 3.9%);--seki-bg-primary:var(--seki-background);--seki-bg-secondary:var(--seki-muted);--seki-bg-tertiary:var(--seki-accent);--seki-text-primary:var(--seki-foreground);--seki-text-secondary:var(--seki-muted-foreground);--seki-text-tertiary:var(--seki-neutral-400);--seki-border-default:var(--seki-border);--seki-border-emphasis:var(--seki-neutral-300)}:host([data-theme='dark']){--seki-background:hsl(0, 0%, 3.9%);--seki-foreground:hsl(0, 0%, 98%);--seki-muted:hsl(0, 0%, 14.9%);--seki-muted-foreground:hsl(0, 0%, 63.9%);--seki-card:hsl(0, 0%, 3.9%);--seki-card-foreground:hsl(0, 0%, 98%);--seki-popover:hsl(0, 0%, 3.9%);--seki-popover-foreground:hsl(0, 0%, 98%);--seki-border:hsl(0, 0%, 14.9%);--seki-input:hsl(0, 0%, 14.9%);--seki-primary:hsl(0, 0%, 98%);--seki-primary-foreground:hsl(0, 0%, 9%);--seki-secondary:hsl(0, 0%, 14.9%);--seki-secondary-foreground:hsl(0, 0%, 98%);--seki-accent:hsl(0, 0%, 14.9%);--seki-accent-foreground:hsl(0, 0%, 98%);--seki-destructive:hsl(0, 62.8%, 30.6%);--seki-destructive-foreground:hsl(0, 0%, 98%);--seki-ring:hsl(0, 0%, 83.1%);--seki-bg-primary:var(--seki-background);--seki-bg-secondary:var(--seki-muted);--seki-bg-tertiary:var(--seki-accent);--seki-text-primary:var(--seki-foreground);--seki-text-secondary:var(--seki-muted-foreground);--seki-text-tertiary:var(--seki-neutral-600);--seki-border-default:var(--seki-border);--seki-border-emphasis:var(--seki-neutral-700);--seki-button-primary-hover-bg:hsl(0, 0%, 98%, 0.9);--seki-button-secondary-hover-bg:hsl(0, 0%, 14.9%, 0.8)}:host{--seki-button-primary-bg:var(--seki-primary);--seki-button-primary-text:var(--seki-primary-foreground);--seki-button-primary-border:transparent;--seki-button-primary-hover-bg:hsl(0, 0%, 9%, 0.9);--seki-button-primary-hover-text:var(--seki-primary-foreground);--seki-button-primary-hover-border:transparent;--seki-button-secondary-bg:var(--seki-secondary);--seki-button-secondary-text:var(--seki-secondary-foreground);--seki-button-secondary-border:transparent;--seki-button-secondary-hover-bg:hsl(0, 0%, 96.1%, 0.8);--seki-button-secondary-hover-text:var(--seki-secondary-foreground);--seki-button-secondary-hover-border:transparent;--seki-button-outline-bg:transparent;--seki-button-outline-text:var(--seki-foreground);--seki-button-outline-border:var(--seki-input);--seki-button-outline-hover-bg:var(--seki-accent);--seki-button-outline-hover-text:var(--seki-accent-foreground);--seki-button-outline-hover-border:var(--seki-input);--seki-button-ghost-bg:transparent;--seki-button-ghost-text:var(--seki-foreground);--seki-button-ghost-border:transparent;--seki-button-ghost-hover-bg:var(--seki-accent);--seki-button-ghost-hover-text:var(--seki-accent-foreground);--seki-button-ghost-hover-border:transparent;--seki-button-destructive-bg:var(--seki-destructive);--seki-button-destructive-text:var(--seki-destructive-foreground);--seki-button-destructive-border:transparent;--seki-button-destructive-hover-bg:hsl(0, 84.2%, 60.2%, 0.9);--seki-button-destructive-hover-border:transparent;--seki-button-sm-padding-x:var(--seki-spacing-3, 0.75rem);--seki-button-sm-padding-y:0.375rem;--seki-button-sm-font-size:var(--seki-text-sm, 0.875rem);--seki-button-sm-height:2.25rem;--seki-button-md-padding-x:var(--seki-spacing-4, 1rem);--seki-button-md-padding-y:var(--seki-spacing-2, 0.5rem);--seki-button-md-font-size:var(--seki-text-base, 1rem);--seki-button-md-height:2.5rem;--seki-button-lg-padding-x:2rem;--seki-button-lg-padding-y:0.5rem;--seki-button-lg-font-size:1rem;--seki-button-lg-height:2.75rem;--seki-button-icon-sm-size:2rem;--seki-button-icon-size:2.5rem;--seki-button-icon-lg-size:3rem;--seki-button-icon-gap:0.5rem;--seki-button-link-bg:transparent;--seki-button-link-text:var(--seki-primary);--seki-button-link-border:transparent;--seki-button-link-hover-bg:transparent;--seki-button-link-hover-text:var(--seki-primary);--seki-button-link-hover-border:transparent;--seki-button-radius:var(--seki-radius-md, 0.375rem);--seki-button-font-weight:var(--seki-font-medium, 500);--seki-button-transition-duration:150ms;--seki-button-transition-timing:ease-in-out;--seki-button-shadow:var(--seki-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));--seki-button-shadow-hover:var(--seki-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));--seki-button-disabled-opacity:0.5;--seki-input-bg:var(--seki-background);--seki-input-border:var(--seki-border);--seki-input-text:var(--seki-foreground);--seki-input-placeholder:var(--seki-muted-foreground);--seki-input-ring:var(--seki-ring);--seki-input-invalid-border:var(--seki-destructive);--seki-input-invalid-ring:var(--seki-destructive);--seki-input-disabled-opacity:0.5;--seki-input-radius:var(--seki-radius-md);--seki-input-ring-offset:2px;--seki-select-trigger-bg:var(--seki-background);--seki-select-trigger-border:1px solid var(--seki-border);--seki-select-trigger-bg-hover:var(--seki-muted);--seki-select-trigger-radius:var(--seki-radius-md);--seki-select-trigger-min-height:2.5rem;--seki-select-trigger-padding:0.5rem 0.75rem;--seki-select-trigger-gap:0.5rem;--seki-select-content-bg:var(--seki-popover);--seki-select-content-border:1px solid var(--seki-border);--seki-select-content-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1);--seki-select-content-radius:var(--seki-radius-md);--seki-select-content-padding:0.5rem 0;--seki-select-option-padding:0.5rem 0.75rem;--seki-select-option-gap:0.5rem;--seki-select-option-radius:var(--seki-radius-sm);--seki-select-option-bg-hover:var(--seki-muted);--seki-select-option-bg-selected:var(--seki-muted);--seki-select-group-label-padding:0.5rem 0.75rem;--seki-select-group-label-font-size:var(--seki-font-size-xs);--seki-select-group-label-font-weight:var(--seki-font-semibold);--seki-select-group-label-color:var(--seki-muted-foreground);--seki-select-group-separator:1px solid var(--seki-border)}:host{--seki-spacing-0:0;--seki-spacing-0-5:0.125rem;--seki-spacing-1:0.25rem;--seki-spacing-1-5:0.375rem;--seki-spacing-2:0.5rem;--seki-spacing-2-5:0.625rem;--seki-spacing-3:0.75rem;--seki-spacing-3-5:0.875rem;--seki-spacing-4:1rem;--seki-spacing-5:1.25rem;--seki-spacing-6:1.5rem;--seki-spacing-8:2rem;--seki-spacing-10:2.5rem;--seki-spacing-12:3rem;--seki-spacing-16:4rem;--seki-spacing-20:5rem;--seki-spacing-24:6rem;--seki-input-height-sm:2rem;--seki-input-height-md:2.5rem;--seki-input-height-lg:3rem;--seki-input-padding-x:0.75rem;--seki-input-padding-y:0.5rem;--seki-input-font-size:0.875rem;--seki-input-ring-offset:2px}:host{--seki-shadow-sm:0 1px 2px 0 rgb(0 0 0 / 0.05);--seki-shadow-md:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--seki-shadow-lg:0 10px 15px -3px rgb(0 0 0 / 0.15), 0 4px 6px -4px rgb(0 0 0 / 0.1)}:host{--seki-font-sans:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',\n Arial, sans-serif;--seki-font-mono:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;--seki-text-xs:0.75rem;--seki-text-sm:0.875rem;--seki-text-base:1rem;--seki-text-lg:1.125rem;--seki-text-xl:1.25rem;--seki-text-2xl:1.5rem;--seki-text-3xl:1.875rem;--seki-text-4xl:2.25rem;--seki-font-normal:400;--seki-font-medium:500;--seki-font-semibold:600;--seki-font-bold:700;--seki-leading-tight:1.25;--seki-leading-normal:1.5;--seki-leading-relaxed:1.75}:host{--seki-radius-sm:0.25rem;--seki-radius-md:0.375rem;--seki-radius-lg:0.5rem;--seki-radius-xl:1rem;}:host{display:inline-block}.skeleton{background-color:var(--seki-muted);border-radius:var(--seki-skeleton-radius, var(--seki-radius-md, 0.375rem));width:100%;height:100%;animation:skeleton-pulse 2s ease-in-out infinite}@keyframes skeleton-pulse{0%,100%{opacity:1}50%{opacity:0.5}}@media (prefers-reduced-motion: reduce){.skeleton{animation:none}}";
|
|
4
4
|
|
|
@@ -15,7 +15,7 @@ const SekiSkeleton = class {
|
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
17
|
render() {
|
|
18
|
-
return (h("div", { key: '
|
|
18
|
+
return (h("div", { key: '4f60930ca73fef0cf4b2c940cbb108e05380caeb', class: "skeleton", part: "skeleton", role: "status", "aria-busy": "true", "aria-label": this.ariaLabel || undefined }));
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
SekiSkeleton.style = sekiSkeletonCss;
|
|
@@ -1,2 +1,84 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, H as Host } from './index-Dfzpqq0a.js';
|
|
2
|
+
|
|
3
|
+
const sekiSwitchCss = ":host{--seki-neutral-50:hsl(0, 0%, 98%);--seki-neutral-100:hsl(0, 0%, 96.1%);--seki-neutral-200:hsl(0, 0%, 89.8%);--seki-neutral-300:hsl(0, 0%, 83.1%);--seki-neutral-400:hsl(0, 0%, 63.9%);--seki-neutral-500:hsl(0, 0%, 45.1%);--seki-neutral-600:hsl(0, 0%, 32.2%);--seki-neutral-700:hsl(0, 0%, 25.1%);--seki-neutral-800:hsl(0, 0%, 14.9%);--seki-neutral-900:hsl(0, 0%, 9%);--seki-neutral-950:hsl(0, 0%, 3.9%);--seki-primary-50:hsl(210, 100%, 97%);--seki-primary-100:hsl(210, 95%, 93%);--seki-primary-200:hsl(210, 95%, 85%);--seki-primary-300:hsl(210, 90%, 73%);--seki-primary-400:hsl(210, 85%, 58%);--seki-primary-500:hsl(210, 80%, 48%);--seki-primary-600:hsl(210, 75%, 40%);--seki-primary-700:hsl(210, 70%, 32%);--seki-primary-800:hsl(210, 65%, 25%);--seki-primary-900:hsl(210, 60%, 18%);--seki-primary-950:hsl(210, 55%, 10%);--seki-success-500:hsl(142, 71%, 45%);--seki-success-600:hsl(142, 71%, 35%);--seki-warning-500:hsl(38, 92%, 50%);--seki-warning-600:hsl(38, 92%, 40%);--seki-destructive-500:hsl(0, 84.2%, 60.2%);--seki-destructive-600:hsl(0, 72%, 41%)}:host{--seki-background:hsl(0, 0%, 100%);--seki-foreground:hsl(0, 0%, 3.9%);--seki-muted:hsl(0, 0%, 96.1%);--seki-muted-foreground:hsl(0, 0%, 45.1%);--seki-card:hsl(0, 0%, 100%);--seki-card-foreground:hsl(0, 0%, 3.9%);--seki-popover:hsl(0, 0%, 100%);--seki-popover-foreground:hsl(0, 0%, 3.9%);--seki-border:hsl(0, 0%, 89.8%);--seki-input:hsl(0, 0%, 89.8%);--seki-primary:hsl(0, 0%, 9%);--seki-primary-foreground:hsl(0, 0%, 98%);--seki-secondary:hsl(0, 0%, 96.1%);--seki-secondary-foreground:hsl(0, 0%, 9%);--seki-accent:hsl(0, 0%, 96.1%);--seki-accent-foreground:hsl(0, 0%, 9%);--seki-destructive:hsl(0, 84.2%, 60.2%);--seki-destructive-foreground:hsl(0, 0%, 98%);--seki-ring:hsl(0, 0%, 3.9%);--seki-bg-primary:var(--seki-background);--seki-bg-secondary:var(--seki-muted);--seki-bg-tertiary:var(--seki-accent);--seki-text-primary:var(--seki-foreground);--seki-text-secondary:var(--seki-muted-foreground);--seki-text-tertiary:var(--seki-neutral-400);--seki-border-default:var(--seki-border);--seki-border-emphasis:var(--seki-neutral-300)}:host([data-theme='dark']){--seki-background:hsl(0, 0%, 3.9%);--seki-foreground:hsl(0, 0%, 98%);--seki-muted:hsl(0, 0%, 14.9%);--seki-muted-foreground:hsl(0, 0%, 63.9%);--seki-card:hsl(0, 0%, 3.9%);--seki-card-foreground:hsl(0, 0%, 98%);--seki-popover:hsl(0, 0%, 3.9%);--seki-popover-foreground:hsl(0, 0%, 98%);--seki-border:hsl(0, 0%, 14.9%);--seki-input:hsl(0, 0%, 14.9%);--seki-primary:hsl(0, 0%, 98%);--seki-primary-foreground:hsl(0, 0%, 9%);--seki-secondary:hsl(0, 0%, 14.9%);--seki-secondary-foreground:hsl(0, 0%, 98%);--seki-accent:hsl(0, 0%, 14.9%);--seki-accent-foreground:hsl(0, 0%, 98%);--seki-destructive:hsl(0, 62.8%, 30.6%);--seki-destructive-foreground:hsl(0, 0%, 98%);--seki-ring:hsl(0, 0%, 83.1%);--seki-bg-primary:var(--seki-background);--seki-bg-secondary:var(--seki-muted);--seki-bg-tertiary:var(--seki-accent);--seki-text-primary:var(--seki-foreground);--seki-text-secondary:var(--seki-muted-foreground);--seki-text-tertiary:var(--seki-neutral-600);--seki-border-default:var(--seki-border);--seki-border-emphasis:var(--seki-neutral-700);--seki-button-primary-hover-bg:hsl(0, 0%, 98%, 0.9);--seki-button-secondary-hover-bg:hsl(0, 0%, 14.9%, 0.8)}:host{--seki-button-primary-bg:var(--seki-primary);--seki-button-primary-text:var(--seki-primary-foreground);--seki-button-primary-border:transparent;--seki-button-primary-hover-bg:hsl(0, 0%, 9%, 0.9);--seki-button-primary-hover-text:var(--seki-primary-foreground);--seki-button-primary-hover-border:transparent;--seki-button-secondary-bg:var(--seki-secondary);--seki-button-secondary-text:var(--seki-secondary-foreground);--seki-button-secondary-border:transparent;--seki-button-secondary-hover-bg:hsl(0, 0%, 96.1%, 0.8);--seki-button-secondary-hover-text:var(--seki-secondary-foreground);--seki-button-secondary-hover-border:transparent;--seki-button-outline-bg:transparent;--seki-button-outline-text:var(--seki-foreground);--seki-button-outline-border:var(--seki-input);--seki-button-outline-hover-bg:var(--seki-accent);--seki-button-outline-hover-text:var(--seki-accent-foreground);--seki-button-outline-hover-border:var(--seki-input);--seki-button-ghost-bg:transparent;--seki-button-ghost-text:var(--seki-foreground);--seki-button-ghost-border:transparent;--seki-button-ghost-hover-bg:var(--seki-accent);--seki-button-ghost-hover-text:var(--seki-accent-foreground);--seki-button-ghost-hover-border:transparent;--seki-button-destructive-bg:var(--seki-destructive);--seki-button-destructive-text:var(--seki-destructive-foreground);--seki-button-destructive-border:transparent;--seki-button-destructive-hover-bg:hsl(0, 84.2%, 60.2%, 0.9);--seki-button-destructive-hover-border:transparent;--seki-button-sm-padding-x:var(--seki-spacing-3, 0.75rem);--seki-button-sm-padding-y:0.375rem;--seki-button-sm-font-size:var(--seki-text-sm, 0.875rem);--seki-button-sm-height:2.25rem;--seki-button-md-padding-x:var(--seki-spacing-4, 1rem);--seki-button-md-padding-y:var(--seki-spacing-2, 0.5rem);--seki-button-md-font-size:var(--seki-text-base, 1rem);--seki-button-md-height:2.5rem;--seki-button-lg-padding-x:2rem;--seki-button-lg-padding-y:0.5rem;--seki-button-lg-font-size:1rem;--seki-button-lg-height:2.75rem;--seki-button-icon-sm-size:2rem;--seki-button-icon-size:2.5rem;--seki-button-icon-lg-size:3rem;--seki-button-icon-gap:0.5rem;--seki-button-link-bg:transparent;--seki-button-link-text:var(--seki-primary);--seki-button-link-border:transparent;--seki-button-link-hover-bg:transparent;--seki-button-link-hover-text:var(--seki-primary);--seki-button-link-hover-border:transparent;--seki-button-radius:var(--seki-radius-md, 0.375rem);--seki-button-font-weight:var(--seki-font-medium, 500);--seki-button-transition-duration:150ms;--seki-button-transition-timing:ease-in-out;--seki-button-shadow:var(--seki-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));--seki-button-shadow-hover:var(--seki-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));--seki-button-disabled-opacity:0.5;--seki-input-bg:var(--seki-background);--seki-input-border:var(--seki-border);--seki-input-text:var(--seki-foreground);--seki-input-placeholder:var(--seki-muted-foreground);--seki-input-ring:var(--seki-ring);--seki-input-invalid-border:var(--seki-destructive);--seki-input-invalid-ring:var(--seki-destructive);--seki-input-disabled-opacity:0.5;--seki-input-radius:var(--seki-radius-md);--seki-input-ring-offset:2px;--seki-select-trigger-bg:var(--seki-background);--seki-select-trigger-border:1px solid var(--seki-border);--seki-select-trigger-bg-hover:var(--seki-muted);--seki-select-trigger-radius:var(--seki-radius-md);--seki-select-trigger-min-height:2.5rem;--seki-select-trigger-padding:0.5rem 0.75rem;--seki-select-trigger-gap:0.5rem;--seki-select-content-bg:var(--seki-popover);--seki-select-content-border:1px solid var(--seki-border);--seki-select-content-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1);--seki-select-content-radius:var(--seki-radius-md);--seki-select-content-padding:0.5rem 0;--seki-select-option-padding:0.5rem 0.75rem;--seki-select-option-gap:0.5rem;--seki-select-option-radius:var(--seki-radius-sm);--seki-select-option-bg-hover:var(--seki-muted);--seki-select-option-bg-selected:var(--seki-muted);--seki-select-group-label-padding:0.5rem 0.75rem;--seki-select-group-label-font-size:var(--seki-font-size-xs);--seki-select-group-label-font-weight:var(--seki-font-semibold);--seki-select-group-label-color:var(--seki-muted-foreground);--seki-select-group-separator:1px solid var(--seki-border)}:host{--seki-spacing-0:0;--seki-spacing-0-5:0.125rem;--seki-spacing-1:0.25rem;--seki-spacing-1-5:0.375rem;--seki-spacing-2:0.5rem;--seki-spacing-2-5:0.625rem;--seki-spacing-3:0.75rem;--seki-spacing-3-5:0.875rem;--seki-spacing-4:1rem;--seki-spacing-5:1.25rem;--seki-spacing-6:1.5rem;--seki-spacing-8:2rem;--seki-spacing-10:2.5rem;--seki-spacing-12:3rem;--seki-spacing-16:4rem;--seki-spacing-20:5rem;--seki-spacing-24:6rem;--seki-input-height-sm:2rem;--seki-input-height-md:2.5rem;--seki-input-height-lg:3rem;--seki-input-padding-x:0.75rem;--seki-input-padding-y:0.5rem;--seki-input-font-size:0.875rem;--seki-input-ring-offset:2px}:host{--seki-shadow-sm:0 1px 2px 0 rgb(0 0 0 / 0.05);--seki-shadow-md:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--seki-shadow-lg:0 10px 15px -3px rgb(0 0 0 / 0.15), 0 4px 6px -4px rgb(0 0 0 / 0.1)}:host{--seki-font-sans:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',\n Arial, sans-serif;--seki-font-mono:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;--seki-text-xs:0.75rem;--seki-text-sm:0.875rem;--seki-text-base:1rem;--seki-text-lg:1.125rem;--seki-text-xl:1.25rem;--seki-text-2xl:1.5rem;--seki-text-3xl:1.875rem;--seki-text-4xl:2.25rem;--seki-font-normal:400;--seki-font-medium:500;--seki-font-semibold:600;--seki-font-bold:700;--seki-leading-tight:1.25;--seki-leading-normal:1.5;--seki-leading-relaxed:1.75}:host{--seki-radius-sm:0.25rem;--seki-radius-md:0.375rem;--seki-radius-lg:0.5rem;--seki-radius-xl:1rem;}:host{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.switch{width:var(--seki-switch-width, 2.75rem);height:var(--seki-switch-height, 1.5rem);position:relative;display:inline-flex;align-items:center;flex-shrink:0;background-color:var(--seki-switch-bg-unchecked, hsl(var(--muted, 240 4.8% 95.9%)));border-radius:9999px;cursor:pointer;transition:background-color var(--seki-switch-transition-duration, 150ms) ease-out;outline:none}.switch:focus-visible{outline:2px solid var(--seki-switch-focus-ring, hsl(var(--ring, 240 5% 64.9%)));outline-offset:2px}:host([data-state=\"checked\"]) .switch{background-color:var(--seki-switch-bg-checked, hsl(var(--primary, 240 5.9% 10%)))}:host([data-disabled]) .switch{background-color:var(--seki-switch-bg-disabled, hsl(var(--muted, 240 4.8% 95.9%) / 0.5));cursor:not-allowed;opacity:0.5}.thumb{width:var(--seki-switch-thumb-size, 1.25rem);height:var(--seki-switch-thumb-size, 1.25rem);background-color:var(--seki-switch-thumb-bg, hsl(var(--background, 0 0% 100%)));position:absolute;left:0.125rem;border-radius:50%;box-shadow:0 1px 2px 0 rgb(0 0 0 / 0.05);transition:transform var(--seki-switch-transition-duration, 150ms) ease-out;pointer-events:none}:host([data-state=\"checked\"]) .thumb{transform:translateX(calc(var(--seki-switch-width, 2.75rem) - var(--seki-switch-thumb-size, 1.25rem) - 0.25rem))}@media (prefers-color-scheme: dark){.switch{--seki-switch-bg-unchecked:hsl(var(--muted, 240 3.7% 15.9%))}.thumb{--seki-switch-thumb-bg:hsl(var(--background, 240 10% 3.9%))}}";
|
|
4
|
+
|
|
5
|
+
const SekiSwitch = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.sekiChange = createEvent(this, "sekiChange");
|
|
9
|
+
/**
|
|
10
|
+
* @description Initial checked state for uncontrolled mode. Ignored if checked prop is provided.
|
|
11
|
+
*/
|
|
12
|
+
this.defaultChecked = false;
|
|
13
|
+
/**
|
|
14
|
+
* @description Disables all interactions when true.
|
|
15
|
+
*/
|
|
16
|
+
this.disabled = false;
|
|
17
|
+
/**
|
|
18
|
+
* @description Marks switch as required for form validation.
|
|
19
|
+
*/
|
|
20
|
+
this.required = false;
|
|
21
|
+
/**
|
|
22
|
+
* @description Value sent in form data when switch is checked. Defaults to 'on'.
|
|
23
|
+
*/
|
|
24
|
+
this.value = 'on';
|
|
25
|
+
/**
|
|
26
|
+
* @description Internal checked state for uncontrolled mode.
|
|
27
|
+
*/
|
|
28
|
+
this.internalChecked = false;
|
|
29
|
+
/**
|
|
30
|
+
* Toggle switch state and emit event
|
|
31
|
+
*/
|
|
32
|
+
this.toggle = () => {
|
|
33
|
+
if (this.disabled) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const newCheckedState = !this.isChecked;
|
|
37
|
+
// Update internal state only in uncontrolled mode
|
|
38
|
+
if (this.checked === undefined) {
|
|
39
|
+
this.internalChecked = newCheckedState;
|
|
40
|
+
}
|
|
41
|
+
// Always emit event (for both controlled and uncontrolled)
|
|
42
|
+
this.sekiChange.emit({ checked: newCheckedState });
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Handle click events
|
|
46
|
+
*/
|
|
47
|
+
this.handleClick = () => {
|
|
48
|
+
this.toggle();
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Initialize internal checked state from defaultChecked
|
|
53
|
+
*/
|
|
54
|
+
componentWillLoad() {
|
|
55
|
+
this.internalChecked = this.defaultChecked;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get current checked state (controlled vs uncontrolled)
|
|
59
|
+
*/
|
|
60
|
+
get isChecked() {
|
|
61
|
+
return this.checked !== undefined ? this.checked : this.internalChecked;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Handle keyboard events (Space and Enter keys)
|
|
65
|
+
*/
|
|
66
|
+
handleKeyDown(event) {
|
|
67
|
+
if (this.disabled) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
// Toggle on Space or Enter
|
|
71
|
+
if (event.key === ' ' || event.key === 'Enter') {
|
|
72
|
+
event.preventDefault(); // Prevent page scroll on Space
|
|
73
|
+
this.toggle();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
render() {
|
|
77
|
+
const isChecked = this.isChecked;
|
|
78
|
+
const dataState = isChecked ? 'checked' : 'unchecked';
|
|
79
|
+
return (h(Host, { key: '3046a6647d7cfd10bf9789aa9cf3b7a88b9a3a10', "data-state": dataState, "data-disabled": this.disabled ? '' : null }, h("div", { key: 'cd8423b9f7295e5e3ef9d7e64ead3fe6502386a2', class: "switch", part: "switch", role: "switch", "aria-checked": isChecked ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel || undefined, "aria-required": this.required ? 'true' : undefined, tabindex: this.disabled ? -1 : 0, onClick: this.handleClick }, h("span", { key: '618ab67d5fab80323f64ec0b1b342561be2585b0', class: "thumb", part: "thumb" })), this.name && (h("input", { key: 'd51e9108038b8796175082231ca3ce7e61106f31', type: "checkbox", name: this.name, value: this.value, checked: isChecked, required: this.required, disabled: this.disabled, style: { display: 'none' }, tabindex: -1, "aria-hidden": "true" }))));
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
SekiSwitch.style = sekiSwitchCss;
|
|
83
|
+
|
|
84
|
+
export { SekiSwitch as seki_switch };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, a as getElement } from './index-Dfzpqq0a.js';
|
|
2
2
|
|
|
3
3
|
const sekiTooltipCss = ":host{--seki-neutral-50:hsl(0, 0%, 98%);--seki-neutral-100:hsl(0, 0%, 96.1%);--seki-neutral-200:hsl(0, 0%, 89.8%);--seki-neutral-300:hsl(0, 0%, 83.1%);--seki-neutral-400:hsl(0, 0%, 63.9%);--seki-neutral-500:hsl(0, 0%, 45.1%);--seki-neutral-600:hsl(0, 0%, 32.2%);--seki-neutral-700:hsl(0, 0%, 25.1%);--seki-neutral-800:hsl(0, 0%, 14.9%);--seki-neutral-900:hsl(0, 0%, 9%);--seki-neutral-950:hsl(0, 0%, 3.9%);--seki-primary-50:hsl(210, 100%, 97%);--seki-primary-100:hsl(210, 95%, 93%);--seki-primary-200:hsl(210, 95%, 85%);--seki-primary-300:hsl(210, 90%, 73%);--seki-primary-400:hsl(210, 85%, 58%);--seki-primary-500:hsl(210, 80%, 48%);--seki-primary-600:hsl(210, 75%, 40%);--seki-primary-700:hsl(210, 70%, 32%);--seki-primary-800:hsl(210, 65%, 25%);--seki-primary-900:hsl(210, 60%, 18%);--seki-primary-950:hsl(210, 55%, 10%);--seki-success-500:hsl(142, 71%, 45%);--seki-success-600:hsl(142, 71%, 35%);--seki-warning-500:hsl(38, 92%, 50%);--seki-warning-600:hsl(38, 92%, 40%);--seki-destructive-500:hsl(0, 84.2%, 60.2%);--seki-destructive-600:hsl(0, 72%, 41%)}:host{--seki-background:hsl(0, 0%, 100%);--seki-foreground:hsl(0, 0%, 3.9%);--seki-muted:hsl(0, 0%, 96.1%);--seki-muted-foreground:hsl(0, 0%, 45.1%);--seki-card:hsl(0, 0%, 100%);--seki-card-foreground:hsl(0, 0%, 3.9%);--seki-popover:hsl(0, 0%, 100%);--seki-popover-foreground:hsl(0, 0%, 3.9%);--seki-border:hsl(0, 0%, 89.8%);--seki-input:hsl(0, 0%, 89.8%);--seki-primary:hsl(0, 0%, 9%);--seki-primary-foreground:hsl(0, 0%, 98%);--seki-secondary:hsl(0, 0%, 96.1%);--seki-secondary-foreground:hsl(0, 0%, 9%);--seki-accent:hsl(0, 0%, 96.1%);--seki-accent-foreground:hsl(0, 0%, 9%);--seki-destructive:hsl(0, 84.2%, 60.2%);--seki-destructive-foreground:hsl(0, 0%, 98%);--seki-ring:hsl(0, 0%, 3.9%);--seki-bg-primary:var(--seki-background);--seki-bg-secondary:var(--seki-muted);--seki-bg-tertiary:var(--seki-accent);--seki-text-primary:var(--seki-foreground);--seki-text-secondary:var(--seki-muted-foreground);--seki-text-tertiary:var(--seki-neutral-400);--seki-border-default:var(--seki-border);--seki-border-emphasis:var(--seki-neutral-300)}:host([data-theme='dark']){--seki-background:hsl(0, 0%, 3.9%);--seki-foreground:hsl(0, 0%, 98%);--seki-muted:hsl(0, 0%, 14.9%);--seki-muted-foreground:hsl(0, 0%, 63.9%);--seki-card:hsl(0, 0%, 3.9%);--seki-card-foreground:hsl(0, 0%, 98%);--seki-popover:hsl(0, 0%, 3.9%);--seki-popover-foreground:hsl(0, 0%, 98%);--seki-border:hsl(0, 0%, 14.9%);--seki-input:hsl(0, 0%, 14.9%);--seki-primary:hsl(0, 0%, 98%);--seki-primary-foreground:hsl(0, 0%, 9%);--seki-secondary:hsl(0, 0%, 14.9%);--seki-secondary-foreground:hsl(0, 0%, 98%);--seki-accent:hsl(0, 0%, 14.9%);--seki-accent-foreground:hsl(0, 0%, 98%);--seki-destructive:hsl(0, 62.8%, 30.6%);--seki-destructive-foreground:hsl(0, 0%, 98%);--seki-ring:hsl(0, 0%, 83.1%);--seki-bg-primary:var(--seki-background);--seki-bg-secondary:var(--seki-muted);--seki-bg-tertiary:var(--seki-accent);--seki-text-primary:var(--seki-foreground);--seki-text-secondary:var(--seki-muted-foreground);--seki-text-tertiary:var(--seki-neutral-600);--seki-border-default:var(--seki-border);--seki-border-emphasis:var(--seki-neutral-700);--seki-button-primary-hover-bg:hsl(0, 0%, 98%, 0.9);--seki-button-secondary-hover-bg:hsl(0, 0%, 14.9%, 0.8)}:host{--seki-button-primary-bg:var(--seki-primary);--seki-button-primary-text:var(--seki-primary-foreground);--seki-button-primary-border:transparent;--seki-button-primary-hover-bg:hsl(0, 0%, 9%, 0.9);--seki-button-primary-hover-text:var(--seki-primary-foreground);--seki-button-primary-hover-border:transparent;--seki-button-secondary-bg:var(--seki-secondary);--seki-button-secondary-text:var(--seki-secondary-foreground);--seki-button-secondary-border:transparent;--seki-button-secondary-hover-bg:hsl(0, 0%, 96.1%, 0.8);--seki-button-secondary-hover-text:var(--seki-secondary-foreground);--seki-button-secondary-hover-border:transparent;--seki-button-outline-bg:transparent;--seki-button-outline-text:var(--seki-foreground);--seki-button-outline-border:var(--seki-input);--seki-button-outline-hover-bg:var(--seki-accent);--seki-button-outline-hover-text:var(--seki-accent-foreground);--seki-button-outline-hover-border:var(--seki-input);--seki-button-ghost-bg:transparent;--seki-button-ghost-text:var(--seki-foreground);--seki-button-ghost-border:transparent;--seki-button-ghost-hover-bg:var(--seki-accent);--seki-button-ghost-hover-text:var(--seki-accent-foreground);--seki-button-ghost-hover-border:transparent;--seki-button-destructive-bg:var(--seki-destructive);--seki-button-destructive-text:var(--seki-destructive-foreground);--seki-button-destructive-border:transparent;--seki-button-destructive-hover-bg:hsl(0, 84.2%, 60.2%, 0.9);--seki-button-destructive-hover-border:transparent;--seki-button-sm-padding-x:var(--seki-spacing-3, 0.75rem);--seki-button-sm-padding-y:0.375rem;--seki-button-sm-font-size:var(--seki-text-sm, 0.875rem);--seki-button-sm-height:2.25rem;--seki-button-md-padding-x:var(--seki-spacing-4, 1rem);--seki-button-md-padding-y:var(--seki-spacing-2, 0.5rem);--seki-button-md-font-size:var(--seki-text-base, 1rem);--seki-button-md-height:2.5rem;--seki-button-lg-padding-x:2rem;--seki-button-lg-padding-y:0.5rem;--seki-button-lg-font-size:1rem;--seki-button-lg-height:2.75rem;--seki-button-icon-sm-size:2rem;--seki-button-icon-size:2.5rem;--seki-button-icon-lg-size:3rem;--seki-button-icon-gap:0.5rem;--seki-button-link-bg:transparent;--seki-button-link-text:var(--seki-primary);--seki-button-link-border:transparent;--seki-button-link-hover-bg:transparent;--seki-button-link-hover-text:var(--seki-primary);--seki-button-link-hover-border:transparent;--seki-button-radius:var(--seki-radius-md, 0.375rem);--seki-button-font-weight:var(--seki-font-medium, 500);--seki-button-transition-duration:150ms;--seki-button-transition-timing:ease-in-out;--seki-button-shadow:var(--seki-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));--seki-button-shadow-hover:var(--seki-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));--seki-button-disabled-opacity:0.5;--seki-input-bg:var(--seki-background);--seki-input-border:var(--seki-border);--seki-input-text:var(--seki-foreground);--seki-input-placeholder:var(--seki-muted-foreground);--seki-input-ring:var(--seki-ring);--seki-input-invalid-border:var(--seki-destructive);--seki-input-invalid-ring:var(--seki-destructive);--seki-input-disabled-opacity:0.5;--seki-input-radius:var(--seki-radius-md);--seki-input-ring-offset:2px;--seki-select-trigger-bg:var(--seki-background);--seki-select-trigger-border:1px solid var(--seki-border);--seki-select-trigger-bg-hover:var(--seki-muted);--seki-select-trigger-radius:var(--seki-radius-md);--seki-select-trigger-min-height:2.5rem;--seki-select-trigger-padding:0.5rem 0.75rem;--seki-select-trigger-gap:0.5rem;--seki-select-content-bg:var(--seki-popover);--seki-select-content-border:1px solid var(--seki-border);--seki-select-content-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1);--seki-select-content-radius:var(--seki-radius-md);--seki-select-content-padding:0.5rem 0;--seki-select-option-padding:0.5rem 0.75rem;--seki-select-option-gap:0.5rem;--seki-select-option-radius:var(--seki-radius-sm);--seki-select-option-bg-hover:var(--seki-muted);--seki-select-option-bg-selected:var(--seki-muted);--seki-select-group-label-padding:0.5rem 0.75rem;--seki-select-group-label-font-size:var(--seki-font-size-xs);--seki-select-group-label-font-weight:var(--seki-font-semibold);--seki-select-group-label-color:var(--seki-muted-foreground);--seki-select-group-separator:1px solid var(--seki-border)}:host{--seki-spacing-0:0;--seki-spacing-0-5:0.125rem;--seki-spacing-1:0.25rem;--seki-spacing-1-5:0.375rem;--seki-spacing-2:0.5rem;--seki-spacing-2-5:0.625rem;--seki-spacing-3:0.75rem;--seki-spacing-3-5:0.875rem;--seki-spacing-4:1rem;--seki-spacing-5:1.25rem;--seki-spacing-6:1.5rem;--seki-spacing-8:2rem;--seki-spacing-10:2.5rem;--seki-spacing-12:3rem;--seki-spacing-16:4rem;--seki-spacing-20:5rem;--seki-spacing-24:6rem;--seki-input-height-sm:2rem;--seki-input-height-md:2.5rem;--seki-input-height-lg:3rem;--seki-input-padding-x:0.75rem;--seki-input-padding-y:0.5rem;--seki-input-font-size:0.875rem;--seki-input-ring-offset:2px}:host{--seki-shadow-sm:0 1px 2px 0 rgb(0 0 0 / 0.05);--seki-shadow-md:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--seki-shadow-lg:0 10px 15px -3px rgb(0 0 0 / 0.15), 0 4px 6px -4px rgb(0 0 0 / 0.1)}:host{--seki-font-sans:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',\n Arial, sans-serif;--seki-font-mono:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;--seki-text-xs:0.75rem;--seki-text-sm:0.875rem;--seki-text-base:1rem;--seki-text-lg:1.125rem;--seki-text-xl:1.25rem;--seki-text-2xl:1.5rem;--seki-text-3xl:1.875rem;--seki-text-4xl:2.25rem;--seki-font-normal:400;--seki-font-medium:500;--seki-font-semibold:600;--seki-font-bold:700;--seki-leading-tight:1.25;--seki-leading-normal:1.5;--seki-leading-relaxed:1.75}:host{--seki-radius-sm:0.25rem;--seki-radius-md:0.375rem;--seki-radius-lg:0.5rem;--seki-radius-xl:1rem;}:host{display:contents;--tooltip-bg:var(--seki-color-background);--tooltip-text:var(--seki-color-foreground);--tooltip-padding:var(--seki-spacing-2) var(--seki-spacing-3);--tooltip-radius:var(--seki-radius-md);--tooltip-shadow:var(--seki-shadow-md);--tooltip-font-size:var(--seki-font-size-body-sm);--tooltip-arrow-size:8px;--tooltip-transition-duration:200ms}@media (prefers-color-scheme: dark){:host{--tooltip-bg:var(--seki-color-background-dark, #1a1a1a);--tooltip-text:var(--seki-color-foreground-dark, #ffffff)}}:host([data-theme='dark']){--tooltip-bg:var(--seki-color-background-dark, #1a1a1a);--tooltip-text:var(--seki-color-foreground-dark, #ffffff)}.tooltip{position:fixed;box-sizing:border-box;background-color:var(--tooltip-bg);color:var(--tooltip-text);padding:var(--tooltip-padding);border-radius:var(--tooltip-radius);box-shadow:var(--tooltip-shadow);font-family:var(--seki-font-sans, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);font-size:var(--tooltip-font-size);line-height:1.5;max-width:280px;word-wrap:break-word;z-index:1000;pointer-events:auto;opacity:0;transform:scale(0.95) translateY(-4px);transition:opacity var(--tooltip-transition-duration) ease-out,\n transform var(--tooltip-transition-duration) ease-out;visibility:hidden}.tooltip--visible{opacity:1;transform:scale(1) translateY(0);visibility:visible}.tooltip-arrow{position:absolute;width:var(--tooltip-arrow-size);height:var(--tooltip-arrow-size);background-color:var(--tooltip-bg);transform:rotate(45deg);pointer-events:none}.tooltip[data-side='top']{margin-bottom:calc(var(--tooltip-arrow-size) / 2 + 4px)}.tooltip[data-side='top'] .tooltip-arrow{bottom:calc(var(--tooltip-arrow-size) / -2);left:50%;transform:translateX(-50%) rotate(45deg)}.tooltip[data-side='bottom']{margin-top:calc(var(--tooltip-arrow-size) / 2 + 4px)}.tooltip[data-side='bottom'] .tooltip-arrow{top:calc(var(--tooltip-arrow-size) / -2);left:50%;transform:translateX(-50%) rotate(45deg)}.tooltip[data-side='left']{margin-right:calc(var(--tooltip-arrow-size) / 2 + 4px)}.tooltip[data-side='left'] .tooltip-arrow{right:calc(var(--tooltip-arrow-size) / -2);top:50%;transform:translateY(-50%) rotate(45deg)}.tooltip[data-side='right']{margin-left:calc(var(--tooltip-arrow-size) / 2 + 4px)}.tooltip[data-side='right'] .tooltip-arrow{left:calc(var(--tooltip-arrow-size) / -2);top:50%;transform:translateY(-50%) rotate(45deg)}.tooltip:focus-visible{outline:2px solid var(--seki-accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){.tooltip{transition:opacity 0s, transform 0s}}::slotted([slot='content']){margin:0;line-height:inherit;font-size:inherit}::slotted([slot='trigger']){cursor:help}";
|
|
4
4
|
|
package/dist/esm/sekiui.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { p as promiseResolve, g as globalScripts, b as bootstrapLazy } from './index-
|
|
2
|
-
export { s as setNonce } from './index-
|
|
1
|
+
import { p as promiseResolve, g as globalScripts, b as bootstrapLazy } from './index-Dfzpqq0a.js';
|
|
2
|
+
export { s as setNonce } from './index-Dfzpqq0a.js';
|
|
3
3
|
|
|
4
4
|
/*
|
|
5
5
|
Stencil Client Patch Browser v4.38.0 | MIT Licensed | https://stenciljs.com
|
|
@@ -16,5 +16,5 @@ var patchBrowser = () => {
|
|
|
16
16
|
|
|
17
17
|
patchBrowser().then(async (options) => {
|
|
18
18
|
await globalScripts();
|
|
19
|
-
return bootstrapLazy([["seki-button",[[257,"seki-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"]}]]],["seki-field",[[257,"seki-field",{"orientation":[1],"invalid":[4]}]]],["seki-field-description",[[257,"seki-field-description",{"descriptorId":[1,"descriptor-id"],"componentId":[32],"getId":[64]}]]],["seki-field-error",[[257,"seki-field-error",{"errorId":[1,"error-id"],"visible":[4],"componentId":[32],"previousVisible":[32],"getId":[64],"setVisible":[64]},null,{"visible":["handleVisibleChange"]}]]],["seki-field-group",[[257,"seki-field-group",{"gap":[1]}]]],["seki-field-label",[[257,"seki-field-label",{"htmlFor":[1,"html-for"],"required":[4]}]]],["seki-field-legend",[[257,"seki-field-legend"]]],["seki-fieldset",[[257,"seki-fieldset",{"disabled":[4]}]]],["seki-input",[[321,"seki-input",{"type":[1],"value":[1537],"placeholder":[1],"disabled":[4],"readonly":[4],"required":[4],"name":[1],"autocomplete":[1],"min":[8],"max":[8],"step":[8],"pattern":[1],"minlength":[2],"maxlength":[2],"size":[1],"invalid":[4],"ariaLabel":[1,"aria-label"],"ariaDescribedby":[1,"aria-describedby"]}]]],["seki-select",[[257,"seki-select",{"value":[1032],"defaultValue":[8,"default-value"],"multiple":[4],"placeholder":[1],"disabled":[4],"required":[4],"open":[1028],"defaultOpen":[4,"default-open"],"name":[1],"maxVisiblePills":[2,"max-visible-pills"],"ariaLabel":[1,"aria-label"],"ariaLabelledby":[1,"aria-labelledby"],"ariaDescribedby":[1,"aria-describedby"],"placement":[1],"maxHeight":[1,"max-height"],"internalValue":[32],"isOpen":[32],"focusedOptionValue":[32],"registeredOptions":[32],"hasBeenActivated":[32],"searchBuffer":[32],"searchActive":[32],"openDropdown":[64],"closeDropdown":[64],"focusTrigger":[64],"clearSelection":[64],"handleKeyboard":[64]},null,{"value":["handleValuePropChange"],"open":["handleOpenPropChange"],"isOpen":["handleIsOpenChange"],"internalValue":["handleInternalValueChange"]}]]],["seki-select-content",[[257,"seki-select-content",{"forceUpdate":[32],"scrollToOption":[64]}]]],["seki-select-group",[[257,"seki-select-group",{"label":[1]}]]],["seki-select-option",[[257,"seki-select-option",{"value":[8],"label":[1],"disabled":[4]}]]],["seki-select-trigger",[[257,"seki-select-trigger",{"forceUpdate":[32]}]]],["seki-skeleton",[[257,"seki-skeleton",{"ariaLabel":[1,"aria-label"]}]]],["seki-switch",[[257,"seki-switch",{"checked":[4],"defaultChecked":[4,"default-checked"],"disabled":[4],"required":[4],"name":[1],"value":[1],"ariaLabel":[1,"aria-label"],"internalChecked":[32]},[[0,"keydown","handleKeyDown"]]]]],["seki-tooltip",[[257,"seki-tooltip",{"delay":[2],"side":[1],"disabled":[4],"offset":[2],"isVisible":[32],"currentPosition":[32],"show":[64],"hide":[64],"updatePosition":[64]}]]]], options);
|
|
19
|
+
return bootstrapLazy([["seki-button",[[257,"seki-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"]}]]],["seki-card",[[257,"seki-card",{"class":[1],"dataTestid":[1,"data-testid"]}]]],["seki-card-action",[[257,"seki-card-action",{"class":[1]}]]],["seki-card-content",[[257,"seki-card-content",{"class":[1]}]]],["seki-card-description",[[257,"seki-card-description",{"class":[1]}]]],["seki-card-footer",[[257,"seki-card-footer",{"alignment":[1],"class":[1]}]]],["seki-card-header",[[257,"seki-card-header",{"class":[1]}]]],["seki-card-title",[[257,"seki-card-title",{"level":[1],"class":[1]}]]],["seki-field",[[257,"seki-field",{"orientation":[1],"invalid":[4]}]]],["seki-field-description",[[257,"seki-field-description",{"descriptorId":[1,"descriptor-id"],"componentId":[32],"getId":[64]}]]],["seki-field-error",[[257,"seki-field-error",{"errorId":[1,"error-id"],"visible":[4],"componentId":[32],"previousVisible":[32],"getId":[64],"setVisible":[64]},null,{"visible":["handleVisibleChange"]}]]],["seki-field-group",[[257,"seki-field-group",{"gap":[1]}]]],["seki-field-label",[[257,"seki-field-label",{"htmlFor":[1,"html-for"],"required":[4]}]]],["seki-field-legend",[[257,"seki-field-legend"]]],["seki-fieldset",[[257,"seki-fieldset",{"disabled":[4]}]]],["seki-input",[[321,"seki-input",{"type":[1],"value":[1537],"placeholder":[1],"disabled":[4],"readonly":[4],"required":[4],"name":[1],"autocomplete":[1],"min":[8],"max":[8],"step":[8],"pattern":[1],"minlength":[2],"maxlength":[2],"size":[1],"invalid":[4],"ariaLabel":[1,"aria-label"],"ariaDescribedby":[1,"aria-describedby"]}]]],["seki-select",[[257,"seki-select",{"value":[1032],"defaultValue":[8,"default-value"],"multiple":[4],"placeholder":[1],"disabled":[4],"required":[4],"open":[1028],"defaultOpen":[4,"default-open"],"name":[1],"maxVisiblePills":[2,"max-visible-pills"],"ariaLabel":[1,"aria-label"],"ariaLabelledby":[1,"aria-labelledby"],"ariaDescribedby":[1,"aria-describedby"],"placement":[1],"maxHeight":[1,"max-height"],"internalValue":[32],"isOpen":[32],"focusedOptionValue":[32],"registeredOptions":[32],"hasBeenActivated":[32],"searchBuffer":[32],"searchActive":[32],"openDropdown":[64],"closeDropdown":[64],"focusTrigger":[64],"clearSelection":[64],"handleKeyboard":[64]},null,{"value":["handleValuePropChange"],"open":["handleOpenPropChange"],"isOpen":["handleIsOpenChange"],"internalValue":["handleInternalValueChange"]}]]],["seki-select-content",[[257,"seki-select-content",{"forceUpdate":[32],"scrollToOption":[64]}]]],["seki-select-group",[[257,"seki-select-group",{"label":[1]}]]],["seki-select-option",[[257,"seki-select-option",{"value":[8],"label":[1],"disabled":[4]}]]],["seki-select-trigger",[[257,"seki-select-trigger",{"forceUpdate":[32]}]]],["seki-sidebar",[[257,"seki-sidebar",{"variant":[1],"collapseMode":[1,"collapse-mode"],"defaultOpen":[516,"default-open"],"persistent":[516],"mobileBreakpoint":[514,"mobile-breakpoint"],"side":[1],"persistenceKey":[1,"persistence-key"],"onOpenChange":[16],"isOpen":[32],"isMobile":[32],"open":[64],"close":[64],"toggle":[64],"getState":[64],"setState":[64]},[[0,"variant","onVariantChange"],[0,"collapseMode","onCollapseModeChange"]],{"variant":["watchVariant"],"collapseMode":["watchCollapseMode"]}]]],["seki-sidebar-content",[[262,"seki-sidebar-content"]]],["seki-sidebar-footer",[[262,"seki-sidebar-footer"]]],["seki-sidebar-group",[[262,"seki-sidebar-group",{"title":[1],"collapsible":[516],"defaultCollapsed":[516,"default-collapsed"],"action":[16],"isCollapsed":[32],"isCollapsedState":[64],"setCollapsed":[64]}]]],["seki-sidebar-header",[[262,"seki-sidebar-header"]]],["seki-sidebar-menu",[[262,"seki-sidebar-menu"]]],["seki-sidebar-menu-item",[[262,"seki-sidebar-menu-item",{"href":[1],"target":[1],"disabled":[516],"isActive":[516,"is-active"],"badge":[16],"ariaLabel":[1,"aria-label"],"ariaCurrentValue":[1,"aria-current-value"]}]]],["seki-sidebar-menu-sub",[[262,"seki-sidebar-menu-sub",{"label":[1],"defaultCollapsed":[516,"default-collapsed"],"isCollapsed":[32],"isCollapsedState":[64],"setCollapsed":[64]}]]],["seki-sidebar-trigger",[[257,"seki-sidebar-trigger",{"ariaLabel":[1,"aria-label"],"icon":[1],"isOpen":[32]},[[16,"openChange","handleOpenChange"]]]]],["seki-skeleton",[[257,"seki-skeleton",{"ariaLabel":[1,"aria-label"]}]]],["seki-switch",[[257,"seki-switch",{"checked":[4],"defaultChecked":[4,"default-checked"],"disabled":[4],"required":[4],"name":[1],"value":[1],"ariaLabel":[1,"aria-label"],"internalChecked":[32]},[[0,"keydown","handleKeyDown"]]]]],["seki-tooltip",[[257,"seki-tooltip",{"delay":[2],"side":[1],"disabled":[4],"offset":[2],"isVisible":[32],"currentPosition":[32],"show":[64],"hide":[64],"updatePosition":[64]}]]]], options);
|
|
20
20
|
});
|
package/dist/sekiui/index.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,c as s,h as i,H as r}from"./p-CuXbV_yz.js";const t=class{constructor(i){e(this,i),this.sekiChange=s(this,"sekiChange"),this.defaultChecked=!1,this.disabled=!1,this.required=!1,this.value="on",this.internalChecked=!1,this.toggle=()=>{if(this.disabled)return;const e=!this.isChecked;void 0===this.checked&&(this.internalChecked=e),this.sekiChange.emit({checked:e})},this.handleClick=()=>{this.toggle()}}componentWillLoad(){this.internalChecked=this.defaultChecked}get isChecked(){return void 0!==this.checked?this.checked:this.internalChecked}handleKeyDown(e){this.disabled||" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),this.toggle())}render(){const e=this.isChecked;return i(r,{key:"3046a6647d7cfd10bf9789aa9cf3b7a88b9a3a10","data-state":e?"checked":"unchecked","data-disabled":this.disabled?"":null},i("div",{key:"cd8423b9f7295e5e3ef9d7e64ead3fe6502386a2",class:"switch",part:"switch",role:"switch","aria-checked":e?"true":"false","aria-disabled":this.disabled?"true":void 0,"aria-label":this.ariaLabel||void 0,"aria-required":this.required?"true":void 0,tabindex:this.disabled?-1:0,onClick:this.handleClick},i("span",{key:"618ab67d5fab80323f64ec0b1b342561be2585b0",class:"thumb",part:"thumb"})),this.name&&i("input",{key:"d51e9108038b8796175082231ca3ce7e61106f31",type:"checkbox",name:this.name,value:this.value,checked:e,required:this.required,disabled:this.disabled,style:{display:"none"},tabindex:-1,"aria-hidden":"true"}))}};t.style=":host{--seki-neutral-50:hsl(0, 0%, 98%);--seki-neutral-100:hsl(0, 0%, 96.1%);--seki-neutral-200:hsl(0, 0%, 89.8%);--seki-neutral-300:hsl(0, 0%, 83.1%);--seki-neutral-400:hsl(0, 0%, 63.9%);--seki-neutral-500:hsl(0, 0%, 45.1%);--seki-neutral-600:hsl(0, 0%, 32.2%);--seki-neutral-700:hsl(0, 0%, 25.1%);--seki-neutral-800:hsl(0, 0%, 14.9%);--seki-neutral-900:hsl(0, 0%, 9%);--seki-neutral-950:hsl(0, 0%, 3.9%);--seki-primary-50:hsl(210, 100%, 97%);--seki-primary-100:hsl(210, 95%, 93%);--seki-primary-200:hsl(210, 95%, 85%);--seki-primary-300:hsl(210, 90%, 73%);--seki-primary-400:hsl(210, 85%, 58%);--seki-primary-500:hsl(210, 80%, 48%);--seki-primary-600:hsl(210, 75%, 40%);--seki-primary-700:hsl(210, 70%, 32%);--seki-primary-800:hsl(210, 65%, 25%);--seki-primary-900:hsl(210, 60%, 18%);--seki-primary-950:hsl(210, 55%, 10%);--seki-success-500:hsl(142, 71%, 45%);--seki-success-600:hsl(142, 71%, 35%);--seki-warning-500:hsl(38, 92%, 50%);--seki-warning-600:hsl(38, 92%, 40%);--seki-destructive-500:hsl(0, 84.2%, 60.2%);--seki-destructive-600:hsl(0, 72%, 41%)}:host{--seki-background:hsl(0, 0%, 100%);--seki-foreground:hsl(0, 0%, 3.9%);--seki-muted:hsl(0, 0%, 96.1%);--seki-muted-foreground:hsl(0, 0%, 45.1%);--seki-card:hsl(0, 0%, 100%);--seki-card-foreground:hsl(0, 0%, 3.9%);--seki-popover:hsl(0, 0%, 100%);--seki-popover-foreground:hsl(0, 0%, 3.9%);--seki-border:hsl(0, 0%, 89.8%);--seki-input:hsl(0, 0%, 89.8%);--seki-primary:hsl(0, 0%, 9%);--seki-primary-foreground:hsl(0, 0%, 98%);--seki-secondary:hsl(0, 0%, 96.1%);--seki-secondary-foreground:hsl(0, 0%, 9%);--seki-accent:hsl(0, 0%, 96.1%);--seki-accent-foreground:hsl(0, 0%, 9%);--seki-destructive:hsl(0, 84.2%, 60.2%);--seki-destructive-foreground:hsl(0, 0%, 98%);--seki-ring:hsl(0, 0%, 3.9%);--seki-bg-primary:var(--seki-background);--seki-bg-secondary:var(--seki-muted);--seki-bg-tertiary:var(--seki-accent);--seki-text-primary:var(--seki-foreground);--seki-text-secondary:var(--seki-muted-foreground);--seki-text-tertiary:var(--seki-neutral-400);--seki-border-default:var(--seki-border);--seki-border-emphasis:var(--seki-neutral-300)}:host([data-theme='dark']){--seki-background:hsl(0, 0%, 3.9%);--seki-foreground:hsl(0, 0%, 98%);--seki-muted:hsl(0, 0%, 14.9%);--seki-muted-foreground:hsl(0, 0%, 63.9%);--seki-card:hsl(0, 0%, 3.9%);--seki-card-foreground:hsl(0, 0%, 98%);--seki-popover:hsl(0, 0%, 3.9%);--seki-popover-foreground:hsl(0, 0%, 98%);--seki-border:hsl(0, 0%, 14.9%);--seki-input:hsl(0, 0%, 14.9%);--seki-primary:hsl(0, 0%, 98%);--seki-primary-foreground:hsl(0, 0%, 9%);--seki-secondary:hsl(0, 0%, 14.9%);--seki-secondary-foreground:hsl(0, 0%, 98%);--seki-accent:hsl(0, 0%, 14.9%);--seki-accent-foreground:hsl(0, 0%, 98%);--seki-destructive:hsl(0, 62.8%, 30.6%);--seki-destructive-foreground:hsl(0, 0%, 98%);--seki-ring:hsl(0, 0%, 83.1%);--seki-bg-primary:var(--seki-background);--seki-bg-secondary:var(--seki-muted);--seki-bg-tertiary:var(--seki-accent);--seki-text-primary:var(--seki-foreground);--seki-text-secondary:var(--seki-muted-foreground);--seki-text-tertiary:var(--seki-neutral-600);--seki-border-default:var(--seki-border);--seki-border-emphasis:var(--seki-neutral-700);--seki-button-primary-hover-bg:hsl(0, 0%, 98%, 0.9);--seki-button-secondary-hover-bg:hsl(0, 0%, 14.9%, 0.8)}:host{--seki-button-primary-bg:var(--seki-primary);--seki-button-primary-text:var(--seki-primary-foreground);--seki-button-primary-border:transparent;--seki-button-primary-hover-bg:hsl(0, 0%, 9%, 0.9);--seki-button-primary-hover-text:var(--seki-primary-foreground);--seki-button-primary-hover-border:transparent;--seki-button-secondary-bg:var(--seki-secondary);--seki-button-secondary-text:var(--seki-secondary-foreground);--seki-button-secondary-border:transparent;--seki-button-secondary-hover-bg:hsl(0, 0%, 96.1%, 0.8);--seki-button-secondary-hover-text:var(--seki-secondary-foreground);--seki-button-secondary-hover-border:transparent;--seki-button-outline-bg:transparent;--seki-button-outline-text:var(--seki-foreground);--seki-button-outline-border:var(--seki-input);--seki-button-outline-hover-bg:var(--seki-accent);--seki-button-outline-hover-text:var(--seki-accent-foreground);--seki-button-outline-hover-border:var(--seki-input);--seki-button-ghost-bg:transparent;--seki-button-ghost-text:var(--seki-foreground);--seki-button-ghost-border:transparent;--seki-button-ghost-hover-bg:var(--seki-accent);--seki-button-ghost-hover-text:var(--seki-accent-foreground);--seki-button-ghost-hover-border:transparent;--seki-button-destructive-bg:var(--seki-destructive);--seki-button-destructive-text:var(--seki-destructive-foreground);--seki-button-destructive-border:transparent;--seki-button-destructive-hover-bg:hsl(0, 84.2%, 60.2%, 0.9);--seki-button-destructive-hover-border:transparent;--seki-button-sm-padding-x:var(--seki-spacing-3, 0.75rem);--seki-button-sm-padding-y:0.375rem;--seki-button-sm-font-size:var(--seki-text-sm, 0.875rem);--seki-button-sm-height:2.25rem;--seki-button-md-padding-x:var(--seki-spacing-4, 1rem);--seki-button-md-padding-y:var(--seki-spacing-2, 0.5rem);--seki-button-md-font-size:var(--seki-text-base, 1rem);--seki-button-md-height:2.5rem;--seki-button-lg-padding-x:2rem;--seki-button-lg-padding-y:0.5rem;--seki-button-lg-font-size:1rem;--seki-button-lg-height:2.75rem;--seki-button-icon-sm-size:2rem;--seki-button-icon-size:2.5rem;--seki-button-icon-lg-size:3rem;--seki-button-icon-gap:0.5rem;--seki-button-link-bg:transparent;--seki-button-link-text:var(--seki-primary);--seki-button-link-border:transparent;--seki-button-link-hover-bg:transparent;--seki-button-link-hover-text:var(--seki-primary);--seki-button-link-hover-border:transparent;--seki-button-radius:var(--seki-radius-md, 0.375rem);--seki-button-font-weight:var(--seki-font-medium, 500);--seki-button-transition-duration:150ms;--seki-button-transition-timing:ease-in-out;--seki-button-shadow:var(--seki-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));--seki-button-shadow-hover:var(--seki-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));--seki-button-disabled-opacity:0.5;--seki-input-bg:var(--seki-background);--seki-input-border:var(--seki-border);--seki-input-text:var(--seki-foreground);--seki-input-placeholder:var(--seki-muted-foreground);--seki-input-ring:var(--seki-ring);--seki-input-invalid-border:var(--seki-destructive);--seki-input-invalid-ring:var(--seki-destructive);--seki-input-disabled-opacity:0.5;--seki-input-radius:var(--seki-radius-md);--seki-input-ring-offset:2px;--seki-select-trigger-bg:var(--seki-background);--seki-select-trigger-border:1px solid var(--seki-border);--seki-select-trigger-bg-hover:var(--seki-muted);--seki-select-trigger-radius:var(--seki-radius-md);--seki-select-trigger-min-height:2.5rem;--seki-select-trigger-padding:0.5rem 0.75rem;--seki-select-trigger-gap:0.5rem;--seki-select-content-bg:var(--seki-popover);--seki-select-content-border:1px solid var(--seki-border);--seki-select-content-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1);--seki-select-content-radius:var(--seki-radius-md);--seki-select-content-padding:0.5rem 0;--seki-select-option-padding:0.5rem 0.75rem;--seki-select-option-gap:0.5rem;--seki-select-option-radius:var(--seki-radius-sm);--seki-select-option-bg-hover:var(--seki-muted);--seki-select-option-bg-selected:var(--seki-muted);--seki-select-group-label-padding:0.5rem 0.75rem;--seki-select-group-label-font-size:var(--seki-font-size-xs);--seki-select-group-label-font-weight:var(--seki-font-semibold);--seki-select-group-label-color:var(--seki-muted-foreground);--seki-select-group-separator:1px solid var(--seki-border)}:host{--seki-spacing-0:0;--seki-spacing-0-5:0.125rem;--seki-spacing-1:0.25rem;--seki-spacing-1-5:0.375rem;--seki-spacing-2:0.5rem;--seki-spacing-2-5:0.625rem;--seki-spacing-3:0.75rem;--seki-spacing-3-5:0.875rem;--seki-spacing-4:1rem;--seki-spacing-5:1.25rem;--seki-spacing-6:1.5rem;--seki-spacing-8:2rem;--seki-spacing-10:2.5rem;--seki-spacing-12:3rem;--seki-spacing-16:4rem;--seki-spacing-20:5rem;--seki-spacing-24:6rem;--seki-input-height-sm:2rem;--seki-input-height-md:2.5rem;--seki-input-height-lg:3rem;--seki-input-padding-x:0.75rem;--seki-input-padding-y:0.5rem;--seki-input-font-size:0.875rem;--seki-input-ring-offset:2px}:host{--seki-shadow-sm:0 1px 2px 0 rgb(0 0 0 / 0.05);--seki-shadow-md:0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--seki-shadow-lg:0 10px 15px -3px rgb(0 0 0 / 0.15), 0 4px 6px -4px rgb(0 0 0 / 0.1)}:host{--seki-font-sans:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',\n Arial, sans-serif;--seki-font-mono:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;--seki-text-xs:0.75rem;--seki-text-sm:0.875rem;--seki-text-base:1rem;--seki-text-lg:1.125rem;--seki-text-xl:1.25rem;--seki-text-2xl:1.5rem;--seki-text-3xl:1.875rem;--seki-text-4xl:2.25rem;--seki-font-normal:400;--seki-font-medium:500;--seki-font-semibold:600;--seki-font-bold:700;--seki-leading-tight:1.25;--seki-leading-normal:1.5;--seki-leading-relaxed:1.75}:host{--seki-radius-sm:0.25rem;--seki-radius-md:0.375rem;--seki-radius-lg:0.5rem;--seki-radius-xl:1rem;}:host{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}.switch{width:var(--seki-switch-width, 2.75rem);height:var(--seki-switch-height, 1.5rem);position:relative;display:inline-flex;align-items:center;flex-shrink:0;background-color:var(--seki-switch-bg-unchecked, hsl(var(--muted, 240 4.8% 95.9%)));border-radius:9999px;cursor:pointer;transition:background-color var(--seki-switch-transition-duration, 150ms) ease-out;outline:none}.switch:focus-visible{outline:2px solid var(--seki-switch-focus-ring, hsl(var(--ring, 240 5% 64.9%)));outline-offset:2px}:host([data-state=\"checked\"]) .switch{background-color:var(--seki-switch-bg-checked, hsl(var(--primary, 240 5.9% 10%)))}:host([data-disabled]) .switch{background-color:var(--seki-switch-bg-disabled, hsl(var(--muted, 240 4.8% 95.9%) / 0.5));cursor:not-allowed;opacity:0.5}.thumb{width:var(--seki-switch-thumb-size, 1.25rem);height:var(--seki-switch-thumb-size, 1.25rem);background-color:var(--seki-switch-thumb-bg, hsl(var(--background, 0 0% 100%)));position:absolute;left:0.125rem;border-radius:50%;box-shadow:0 1px 2px 0 rgb(0 0 0 / 0.05);transition:transform var(--seki-switch-transition-duration, 150ms) ease-out;pointer-events:none}:host([data-state=\"checked\"]) .thumb{transform:translateX(calc(var(--seki-switch-width, 2.75rem) - var(--seki-switch-thumb-size, 1.25rem) - 0.25rem))}@media (prefers-color-scheme: dark){.switch{--seki-switch-bg-unchecked:hsl(var(--muted, 240 3.7% 15.9%))}.thumb{--seki-switch-thumb-bg:hsl(var(--background, 240 10% 3.9%))}}";export{t as SekiSwitch}
|
|
1
|
+
export{seki_switch as SekiSwitch}from"./p-37c5f4d9.entry.js";export{K as KeyboardService,c as createKeyboardService,g as getKeyboardService}from"./p-BJCq8m2o.js";import"./p-Dfzpqq0a.js";class t{constructor(){this.focusTrapStack=new Map,this.previouslyFocusedElement=null}getFocusableElements(t=document){const n=["button:not([disabled])","a[href]","input:not([disabled])","textarea:not([disabled])","select:not([disabled])",'[tabindex]:not([tabindex="-1"])'].join(",");return Array.from(t.querySelectorAll(n)).filter((t=>{const n=window.getComputedStyle(t);return"none"!==n.display&&"hidden"!==n.visibility}))}isFocusable(t){return["button","a[href]","input","textarea","select","[tabindex]"].some((n=>t.matches(n)))&&!t.hasAttribute("disabled")}setFocus(t,n){var e;if(!t)return!1;try{return t.focus({preventScroll:null!==(e=null==n?void 0:n.preventScroll)&&void 0!==e&&e}),document.activeElement===t}catch(t){return console.warn("Failed to set focus:",t),!1}}createFocusTrap(t,n={}){if("undefined"==typeof window)return;const{initialFocus:e,restoreFocus:i=!0}=n;if(i&&(this.previouslyFocusedElement=document.activeElement),e)this.setFocus(e);else{const n=this.getFocusableElements(t);n.length>0&&this.setFocus(n[0])}t.addEventListener("keydown",(n=>{if("Tab"!==n.key)return;const e=this.getFocusableElements(t);if(0===e.length)return;const i=e.indexOf(document.activeElement);if(n.shiftKey){const t=i-1,r=t>=0?e[t]:e[e.length-1];n.preventDefault(),this.setFocus(r)}else{const t=i+1,r=t<e.length?e[t]:e[0];n.preventDefault(),this.setFocus(r)}})),this.focusTrapStack.set(t,this.previouslyFocusedElement)}releaseFocusTrap(t,n=!0){const e=this.focusTrapStack.get(t);this.focusTrapStack.delete(t),n&&e&&this.setFocus(e)}getFirstFocusable(t=document){const n=this.getFocusableElements(t);return n.length>0?n[0]:null}getLastFocusable(t=document){const n=this.getFocusableElements(t);return n.length>0?n[n.length-1]:null}focusNext(t=document){const n=this.getFocusableElements(t),e=n.indexOf(document.activeElement);return n.length>0&&(this.setFocus(n[(e+1)%n.length]),!0)}focusPrevious(t=document){const n=this.getFocusableElements(t),e=n.indexOf(document.activeElement);return n.length>0&&(this.setFocus(n[(e-1+n.length)%n.length]),!0)}clearFocusTraps(){this.focusTrapStack.clear()}}let n=null;function e(){return n||(n=new t),n}function i(){return new t}const r={sm:"640px",md:"768px",lg:"1024px",xl:"1280px","2xl":"1536px"};class o{constructor(t=r){this.listeners=new Map,this.resizeObserver=null,this.resizeListeners=new Map,this.breakpoints=t}registerMediaQuery(t,n,e){if("undefined"!=typeof window)try{const i=window.matchMedia(n),r={query:n,handler:e,matcher:i};e(i.matches),i.addEventListener("change",(t=>e(t.matches))),this.listeners.set(t,r)}catch(t){console.warn(`Failed to register media query "${n}":`,t)}}registerBreakpoint(t,n,e="min",i){const r=this.breakpoints[n];r?this.registerMediaQuery(t,"min"===e?`(min-width: ${r})`:`(max-width: ${r})`,i):console.warn(`Unknown breakpoint: ${n}`)}unregisterMediaQuery(t){const n=this.listeners.get(t);n&&n.matcher&&n.matcher.removeEventListener("change",(()=>{})),this.listeners.delete(t)}isMatching(t){if("undefined"==typeof window)return!1;try{return window.matchMedia(t).matches}catch(n){return console.warn(`Failed to check media query "${t}":`,n),!1}}isBreakpointActive(t,n="min"){const e=this.breakpoints[t];return!!e&&this.isMatching("min"===n?`(min-width: ${e})`:`(max-width: ${e})`)}getViewportWidth(){return"undefined"==typeof window?0:window.innerWidth}getViewportHeight(){return"undefined"==typeof window?0:window.innerHeight}isMobile(){return this.getViewportWidth()<768}isTablet(){const t=this.getViewportWidth();return t>=768&&t<1024}isDesktop(){return this.getViewportWidth()>=1024}prefersReducedMotion(){if("undefined"==typeof window)return!1;try{return window.matchMedia("(prefers-reduced-motion: reduce)").matches}catch(t){return!1}}prefersDarkMode(){if("undefined"==typeof window)return!1;try{return window.matchMedia("(prefers-color-scheme: dark)").matches}catch(t){return!1}}getOrientation(){return"undefined"==typeof window||window.innerHeight>window.innerWidth?"portrait":"landscape"}registerResizeListener(t,n,e=0){if("undefined"==typeof window)return;let i=null;const r=()=>{i&&clearTimeout(i),e>0?i=setTimeout((()=>{n(this.getViewportWidth(),this.getViewportHeight())}),e):n(this.getViewportWidth(),this.getViewportHeight())};this.resizeListeners.set(t,{handler:n,eventListener:r}),window.addEventListener("resize",r),n(this.getViewportWidth(),this.getViewportHeight())}unregisterResizeListener(t){if("undefined"==typeof window)return;const n=this.resizeListeners.get(t);n&&(window.removeEventListener("resize",n.eventListener),this.resizeListeners.delete(t))}cleanup(){this.listeners.forEach((t=>{t.matcher&&t.matcher.removeEventListener("change",(()=>{}))})),this.listeners.clear(),"undefined"!=typeof window&&this.resizeListeners.forEach((t=>{window.removeEventListener("resize",t.eventListener)})),this.resizeListeners.clear(),this.resizeObserver&&(this.resizeObserver.disconnect(),this.resizeObserver=null)}setBreakpoints(t){this.breakpoints=Object.assign(Object.assign({},r),t)}}let u=null;function s(t){return u||(u=new o(t)),u}function a(t){return new o(t||r)}let d=0;function f(t="id"){return`${t}-${++d}-${Math.random().toString(36).substr(2,9)}`}function l(){d=0}function h(t,n){let e=null;return(...i)=>{e&&clearTimeout(e),e=setTimeout((()=>t(...i)),n)}}function w(t,n){let e=0,i=null;return(...r)=>{const o=Date.now();o-e>=n?(e=o,t(...r)):(i&&clearTimeout(i),i=setTimeout((()=>{e=Date.now(),t(...r)}),n-(o-e)))}}function m(t,n){t.classList.add(n)}function p(t,n){t.classList.remove(n)}function b(t,n,e){t.classList.toggle(n,e)}function y(t,n){return t.classList.contains(n)}function $(t){const n={};return Array.from(t.attributes).forEach((t=>{if(t.name.startsWith("data-")){const e=t.name.slice(5);n[e]=t.value}})),n}function v(t,n,e){null===e?t.removeAttribute(`data-${n}`):t.setAttribute(`data-${n}`,e)}function x(t,n){return t.getAttribute(`data-${n}`)||void 0}function k(t,n,e){const i=new CustomEvent(n,{detail:e,bubbles:!0,cancelable:!0,composed:!0});t.dispatchEvent(i)}function F(t,n,e){const i=t=>{e(t.detail)};return t.addEventListener(n,i),()=>{t.removeEventListener(n,i)}}function T(t){const n=t.getBoundingClientRect();return{top:n.top+window.scrollY,left:n.left+window.scrollX}}function j(t){const n=t.getBoundingClientRect();return n.top<window.innerHeight&&n.bottom>0&&n.left<window.innerWidth&&n.right>0}function M(t,n={}){t.scrollIntoView(Object.assign({behavior:"smooth",block:"nearest",inline:"nearest"},n))}function O(t,n){return window.getComputedStyle(t).getPropertyValue(n)}function S(t){return new Promise((n=>setTimeout(n,t)))}function z(t,n=5e3){return new Promise(((e,i)=>{const r=document.querySelector(t);if(r)return void e(r);const o=new MutationObserver((()=>{const n=document.querySelector(t);n&&(o.disconnect(),e(n))}));o.observe(document.body,{childList:!0,subtree:!0}),setTimeout((()=>{o.disconnect(),i(new Error(`Element "${t}" not found within ${n}ms`))}),n)}))}function D(t){if(null===t||"object"!=typeof t)return t;if(t instanceof Date)return new Date(t.getTime());if(t instanceof Array)return t.map((t=>D(t)));if(t instanceof Object){const n={};return Object.keys(t).forEach((e=>{n[e]=D(t[e])})),n}return t}function q(t,...n){return n.reduce(((t,n)=>Object.assign(Object.assign({},t),n)),t)}function A(t){const n=document.createElement("div").style;return t in n?t:`webkit${t[0].toUpperCase()}${t.slice(1)}`in n?`webkit${t[0].toUpperCase()}${t.slice(1)}`:`moz${t[0].toUpperCase()}${t.slice(1)}`in n?`moz${t[0].toUpperCase()}${t.slice(1)}`:`ms${t[0].toUpperCase()}${t.slice(1)}`in n?`ms${t[0].toUpperCase()}${t.slice(1)}`:t}function E(t,n){const e=document.createElement("div");return e.style.setProperty(t,n),""!==e.style.getPropertyValue(t)}function L(){return new Promise((t=>requestAnimationFrame(t)))}function B(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}function P(t){return t.replace(/-./g,(t=>t[1].toUpperCase()))}function R(t="aria",n){return`${t}-${Date.now().toString(36)}-${Math.random().toString(36).substr(2,9)}${n?`-${n}`:""}`}function C(t,n){Object.entries(n).forEach((([n,e])=>{null===e||!1===e?t.removeAttribute(`aria-${n}`):t.setAttribute(`aria-${n}`,!0===e?"true":String(e))}))}function Q(t,n,e=!0){t.setAttribute(e?"aria-label":"aria-labelledby",n)}function V(t,n,e=!1){t.setAttribute(e?"aria-description":"aria-describedby",n)}function H(t,n,e="polite",i=!1){t.setAttribute("aria-live",e),i&&t.setAttribute("aria-atomic","true"),t.textContent=n}function J(t,n){n?(t.setAttribute("aria-disabled","true"),t.style.pointerEvents="none",t.style.opacity="0.5"):(t.removeAttribute("aria-disabled"),t.style.pointerEvents="",t.style.opacity="")}function N(t,n,e){t.setAttribute("aria-expanded",n?"true":"false"),e&&t.setAttribute("aria-controls",e)}function U(t,n){t.setAttribute("aria-selected",n?"true":"false")}function W(t,n){t.setAttribute("aria-checked",n)}function Z(t,n,e,i,r){t.setAttribute("aria-valuenow",String(n)),void 0!==e&&t.setAttribute("aria-valuemin",String(e)),void 0!==i&&t.setAttribute("aria-valuemax",String(i)),void 0!==r&&t.setAttribute("aria-valuetext",r)}function _(t,n="menu",e){t.setAttribute("aria-haspopup",n),e&&t.setAttribute("aria-owns",e)}function G(t,n){t.setAttribute("role",n)}function I(t){const n=t.getAttribute("aria-labelledby");if(n){const t=document.getElementById(n);if(t)return t.textContent||""}const e=t.getAttribute("aria-label");if(e)return e;return t.getAttribute("title")||t.textContent||""}function X(t,n){const e=document.createElement("a");return e.href=`#${n}`,e.textContent=t,e.className="sr-only",e.style.position="absolute",e.style.top="-9999px",e.style.left="-9999px",e.addEventListener("focus",(()=>{e.style.top="0",e.style.left="0"})),e.addEventListener("blur",(()=>{e.style.top="-9999px",e.style.left="-9999px"})),e}function Y(t){return"true"===t.getAttribute("aria-hidden")}function tt(t,n){n?t.setAttribute("aria-hidden","true"):t.removeAttribute("aria-hidden")}function nt(t,n="polite"){if("undefined"==typeof document)return;const e=document.createElement("div");e.setAttribute("aria-live",n),e.setAttribute("aria-atomic","true"),e.className="sr-only",e.style.position="absolute",e.style.left="-9999px",e.style.top="-9999px",e.textContent=t,document.body.appendChild(e),setTimeout((()=>{e.remove()}),1e3)}function et(t,n){const e=`h${n}`;t.tagName.toLowerCase()!==e&&t.setAttribute("role",e)}function it(t,n){const e=t=>{const e=n[t.key.toLowerCase()];e&&(t.preventDefault(),e(t))};return t.addEventListener("keydown",e),()=>{t.removeEventListener("keydown",e)}}function rt(t){const n=window.getComputedStyle(t);return!!(n.outline||n.boxShadow||n.border)}function ot(t){rt(t)||(t.style.outline="2px solid #4A90E2",t.style.outlineOffset="2px")}function ut(t){return["sidebar","floating","inset"].includes(t)}function st(t){return["offcanvas","icon","none"].includes(t)}function ct(t){return["sm","md","lg","icon-sm","icon","icon-lg"].includes(t)}function at(t){return["primary","secondary","outline","ghost","destructive","link"].includes(t)}function dt(t){return["top","right","bottom","left"].includes(t)}export{r as DEFAULT_BREAKPOINTS,t as FocusService,o as MediaQueryService,V as addAriaDescription,Q as addAriaLabel,m as addClass,H as announceAriaLive,nt as announceToScreenReader,B as camelToKebab,i as createFocusService,a as createMediaQueryService,X as createSkipLink,h as debounce,D as deepClone,k as dispatchCustomEvent,it as enableKeyboardNavigation,ot as ensureFocusVisible,R as generateAriaId,f as generateUniqueId,I as getAccessibleName,O as getComputedValue,x as getDataAttribute,$ as getDataAttributes,T as getElementOffset,e as getFocusService,s as getMediaQueryService,A as getPrefixedProperty,rt as hasAccessibleFocus,y as hasClass,Y as isAriaHidden,ct as isButtonSize,at as isButtonVariant,st as isCollapseMode,j as isElementInViewport,ut as isSidebarVariant,dt as isTooltipSide,P as kebabToCamel,q as mergeObjects,F as onCustomEvent,p as removeClass,L as requestAnimationFramePromise,l as resetIdCounter,M as scrollIntoView,C as setAriaAttributes,W as setAriaChecked,J as setAriaDisabled,N as setAriaExpanded,tt as setAriaHidden,_ as setAriaPopup,U as setAriaSelected,Z as setAriaValueNow,v as setDataAttribute,et as setHeadingLevel,G as setRole,E as supportsCSSFeature,w as throttle,b as toggleClass,S as wait,z as waitForElement}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e,h as t,H as r,a as i}from"./p-Dfzpqq0a.js";const o=class{constructor(t){e(this,t),this.ariaLabel="Toggle sidebar",this.isOpen=!0,this.parentSidebar=null,this.handleClick=async()=>{let e=this.parentSidebar;if(e||(e=document.querySelector("seki-sidebar"),this.parentSidebar=e),!e)return;const t=await e.getState();await e.setState({isOpen:!t.isOpen})},this.handleKeyDown=e=>{" "!==e.key&&"Enter"!==e.key||(e.preventDefault(),this.handleClick())}}connectedCallback(){var e,t;if(this.parentSidebar=null===(e=this.el)||void 0===e?void 0:e.closest("seki-sidebar"),this.parentSidebar||(this.parentSidebar=document.querySelector("seki-sidebar")),this.parentSidebar){const e=this.parentSidebar;null===(t=e.getState)||void 0===t||t.call(e).then((e=>{this.isOpen=e.isOpen}))}}handleOpenChange(e){e.detail&&"boolean"==typeof e.detail.isOpen&&(this.isOpen=e.detail.isOpen)}render(){return t(r,{key:"f031872df0db62782e7736739a4ec21890bedb5a"},t("button",{key:"f673e56848c712deca471b9b28c7f52ba346f809",class:"trigger-button","aria-expanded":this.isOpen,"aria-label":this.ariaLabel,onClick:this.handleClick,onKeyDown:this.handleKeyDown,type:"button"},this.icon&&t("span",{key:"17a389fc5025ce39e9c7e7ac4711efa7bc8477ee",class:"trigger-icon",innerHTML:this.icon}),!this.icon&&t("span",{key:"a2e7692e62bc23ee325d2f3e02bf34a2900d1873",class:"trigger-icon-default"},"☰")))}get el(){return i(this)}};o.style=':host{display:inline-block}.trigger-button{display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:1px solid transparent;border-radius:0.375rem;color:var(--sidebar-foreground);font-size:1.25rem;cursor:pointer;transition:background-color 200ms ease-in-out, border-color 200ms ease-in-out}.trigger-button:hover:not(:disabled){background-color:rgba(0, 0, 0, 0.05);border-color:var(--sidebar-border)}.trigger-button:active:not(:disabled){background-color:rgba(0, 0, 0, 0.1)}.trigger-button:focus-visible{outline:2px solid var(--sidebar-primary);outline-offset:2px}.trigger-button:disabled{opacity:0.5;cursor:not-allowed}.trigger-icon{display:flex;align-items:center;justify-content:center}.trigger-icon-default{font-size:1.25rem}:host-context([data-theme="dark"]) .trigger-button:hover:not(:disabled){background-color:rgba(255, 255, 255, 0.1)}:host-context([data-theme="dark"]) .trigger-button:active:not(:disabled){background-color:rgba(255, 255, 255, 0.15)}@media (prefers-reduced-motion: reduce){.trigger-button{transition:none}}';export{o as seki_sidebar_trigger}
|