@sekiui/elements 0.0.49 → 0.0.51

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.
Files changed (141) hide show
  1. package/dist/cdn/index.js +3 -3
  2. package/dist/cdn/{p-BLeUUc2-.js → p-bMBhrs0a.js} +29 -4
  3. package/dist/cdn/seki-button.js +2 -2
  4. package/dist/cdn/seki-field-description.js +2 -2
  5. package/dist/cdn/seki-field-error.js +2 -2
  6. package/dist/cdn/seki-field-group.js +2 -2
  7. package/dist/cdn/seki-field-label.js +2 -2
  8. package/dist/cdn/seki-field-legend.js +2 -2
  9. package/dist/cdn/seki-field.js +2 -2
  10. package/dist/cdn/seki-fieldset.js +2 -2
  11. package/dist/cdn/seki-input.js +2 -2
  12. package/dist/cdn/seki-select-content.d.ts +11 -0
  13. package/dist/cdn/seki-select-content.js +94 -0
  14. package/dist/cdn/seki-select-group.d.ts +11 -0
  15. package/dist/cdn/seki-select-group.js +42 -0
  16. package/dist/cdn/seki-select-option.d.ts +11 -0
  17. package/dist/cdn/seki-select-option.js +111 -0
  18. package/dist/cdn/seki-select-trigger.d.ts +11 -0
  19. package/dist/cdn/seki-select-trigger.js +149 -0
  20. package/dist/cdn/seki-select.d.ts +11 -0
  21. package/dist/cdn/seki-select.js +416 -0
  22. package/dist/cdn/seki-skeleton.js +3 -3
  23. package/dist/cjs/{index-BxD7Xe36.js → index-Dd6_-KaR.js} +29 -4
  24. package/dist/cjs/index.cjs.js +2 -2
  25. package/dist/cjs/loader.cjs.js +2 -2
  26. package/dist/cjs/seki-button.cjs.entry.js +2 -2
  27. package/dist/cjs/seki-field-description.cjs.entry.js +2 -2
  28. package/dist/cjs/seki-field-error.cjs.entry.js +2 -2
  29. package/dist/cjs/seki-field-group.cjs.entry.js +2 -2
  30. package/dist/cjs/seki-field-label.cjs.entry.js +2 -2
  31. package/dist/cjs/seki-field-legend.cjs.entry.js +2 -2
  32. package/dist/cjs/seki-field.cjs.entry.js +2 -2
  33. package/dist/cjs/seki-fieldset.cjs.entry.js +2 -2
  34. package/dist/cjs/seki-input.cjs.entry.js +2 -2
  35. package/dist/cjs/seki-select-content.cjs.entry.js +72 -0
  36. package/dist/cjs/seki-select-group.cjs.entry.js +21 -0
  37. package/dist/cjs/seki-select-option.cjs.entry.js +88 -0
  38. package/dist/cjs/seki-select-trigger.cjs.entry.js +128 -0
  39. package/dist/cjs/seki-select.cjs.entry.js +364 -0
  40. package/dist/cjs/seki-skeleton.cjs.entry.js +3 -3
  41. package/dist/cjs/seki-switch.cjs.entry.js +1 -1
  42. package/dist/cjs/sekiui.cjs.js +2 -2
  43. package/dist/collection/collection-manifest.json +5 -0
  44. package/dist/collection/components/button/seki-button.css +31 -0
  45. package/dist/collection/components/field/seki-field.css +31 -0
  46. package/dist/collection/components/field-description/seki-field-description.css +36 -3
  47. package/dist/collection/components/field-error/seki-field-error.css +36 -4
  48. package/dist/collection/components/field-group/seki-field-group.css +31 -0
  49. package/dist/collection/components/field-label/seki-field-label.css +36 -4
  50. package/dist/collection/components/field-legend/seki-field-legend.css +36 -4
  51. package/dist/collection/components/fieldset/seki-fieldset.css +31 -0
  52. package/dist/collection/components/input/seki-input.css +37 -3
  53. package/dist/collection/components/select/seki-select.css +441 -0
  54. package/dist/collection/components/select/seki-select.js +865 -0
  55. package/dist/collection/components/select-content/seki-select-content.css +434 -0
  56. package/dist/collection/components/select-content/seki-select-content.js +112 -0
  57. package/dist/collection/components/select-group/seki-select-group.css +428 -0
  58. package/dist/collection/components/select-group/seki-select-group.js +51 -0
  59. package/dist/collection/components/select-option/seki-select-option.css +458 -0
  60. package/dist/collection/components/select-option/seki-select-option.js +188 -0
  61. package/dist/collection/components/select-trigger/seki-select-trigger.css +514 -0
  62. package/dist/collection/components/select-trigger/seki-select-trigger.js +140 -0
  63. package/dist/collection/components/skeleton/seki-skeleton.css +31 -0
  64. package/dist/collection/components/skeleton/seki-skeleton.js +1 -1
  65. package/dist/collection/components/switch/seki-switch.css +31 -0
  66. package/dist/collection/utils/select/index.js +6 -0
  67. package/dist/collection/utils/select/select-context.js +38 -0
  68. package/dist/collection/utils/select/types.js +1 -0
  69. package/dist/components/index.js +3 -3
  70. package/dist/components/{p-BFmmBW7R.js → p-QhPshhKB.js} +29 -4
  71. package/dist/components/seki-button.js +2 -2
  72. package/dist/components/seki-field-description.js +2 -2
  73. package/dist/components/seki-field-error.js +2 -2
  74. package/dist/components/seki-field-group.js +2 -2
  75. package/dist/components/seki-field-label.js +2 -2
  76. package/dist/components/seki-field-legend.js +2 -2
  77. package/dist/components/seki-field.js +2 -2
  78. package/dist/components/seki-fieldset.js +2 -2
  79. package/dist/components/seki-input.js +2 -2
  80. package/dist/components/seki-select-content.d.ts +11 -0
  81. package/dist/components/seki-select-content.js +94 -0
  82. package/dist/components/seki-select-group.d.ts +11 -0
  83. package/dist/components/seki-select-group.js +42 -0
  84. package/dist/components/seki-select-option.d.ts +11 -0
  85. package/dist/components/seki-select-option.js +111 -0
  86. package/dist/components/seki-select-trigger.d.ts +11 -0
  87. package/dist/components/seki-select-trigger.js +149 -0
  88. package/dist/components/seki-select.d.ts +11 -0
  89. package/dist/components/seki-select.js +416 -0
  90. package/dist/components/seki-skeleton.js +3 -3
  91. package/dist/esm/{index-ByHohxc0.js → index-CuXbV_yz.js} +29 -4
  92. package/dist/esm/index.js +2 -2
  93. package/dist/esm/loader.js +3 -3
  94. package/dist/esm/seki-button.entry.js +2 -2
  95. package/dist/esm/seki-field-description.entry.js +2 -2
  96. package/dist/esm/seki-field-error.entry.js +2 -2
  97. package/dist/esm/seki-field-group.entry.js +2 -2
  98. package/dist/esm/seki-field-label.entry.js +2 -2
  99. package/dist/esm/seki-field-legend.entry.js +2 -2
  100. package/dist/esm/seki-field.entry.js +2 -2
  101. package/dist/esm/seki-fieldset.entry.js +2 -2
  102. package/dist/esm/seki-input.entry.js +2 -2
  103. package/dist/esm/seki-select-content.entry.js +70 -0
  104. package/dist/esm/seki-select-group.entry.js +19 -0
  105. package/dist/esm/seki-select-option.entry.js +86 -0
  106. package/dist/esm/seki-select-trigger.entry.js +126 -0
  107. package/dist/esm/seki-select.entry.js +362 -0
  108. package/dist/esm/seki-skeleton.entry.js +3 -3
  109. package/dist/esm/seki-switch.entry.js +1 -1
  110. package/dist/esm/sekiui.js +3 -3
  111. package/dist/sekiui/index.esm.js +1 -1
  112. package/dist/sekiui/{p-bc921daa.entry.js → p-0e89720a.entry.js} +1 -1
  113. package/dist/sekiui/{p-1b1a5e38.entry.js → p-0f64a7dd.entry.js} +1 -1
  114. package/dist/sekiui/p-20eb85c9.entry.js +1 -0
  115. package/dist/sekiui/{p-128cfe90.entry.js → p-23a61342.entry.js} +1 -1
  116. package/dist/sekiui/{p-459bb637.entry.js → p-4eef5a47.entry.js} +1 -1
  117. package/dist/sekiui/{p-d034b071.entry.js → p-5852ad8e.entry.js} +1 -1
  118. package/dist/sekiui/{p-1c923d08.entry.js → p-62236175.entry.js} +1 -1
  119. package/dist/sekiui/p-6e238adf.entry.js +1 -0
  120. package/dist/sekiui/{p-2ecf7587.entry.js → p-93d70750.entry.js} +1 -1
  121. package/dist/sekiui/{p-70281e83.entry.js → p-9fe07f6e.entry.js} +1 -1
  122. package/dist/sekiui/p-CuXbV_yz.js +2 -0
  123. package/dist/sekiui/{p-51f2af94.entry.js → p-aad78e67.entry.js} +1 -1
  124. package/dist/sekiui/{p-281803dd.entry.js → p-c878de6d.entry.js} +1 -1
  125. package/dist/sekiui/p-c93edddc.entry.js +1 -0
  126. package/dist/sekiui/p-d7492f49.entry.js +1 -0
  127. package/dist/sekiui/{p-3b2d3e96.entry.js → p-eb19f073.entry.js} +1 -1
  128. package/dist/sekiui/p-eefbc037.entry.js +1 -0
  129. package/dist/sekiui/sekiui.css +1 -1
  130. package/dist/sekiui/sekiui.esm.js +1 -1
  131. package/dist/types/components/select/seki-select.d.ts +92 -0
  132. package/dist/types/components/select-content/seki-select-content.d.ts +15 -0
  133. package/dist/types/components/select-group/seki-select-group.d.ts +10 -0
  134. package/dist/types/components/select-option/seki-select-option.d.ts +30 -0
  135. package/dist/types/components/select-trigger/seki-select-trigger.d.ts +21 -0
  136. package/dist/types/components.d.ts +314 -0
  137. package/dist/types/utils/select/index.d.ts +6 -0
  138. package/dist/types/utils/select/select-context.d.ts +19 -0
  139. package/dist/types/utils/select/types.d.ts +109 -0
  140. package/package.json +4 -1
  141. package/dist/sekiui/p-ByHohxc0.js +0 -2
@@ -0,0 +1,364 @@
1
+ 'use strict';
2
+
3
+ var index = require('./index-Dd6_-KaR.js');
4
+
5
+ const sekiSelectCss = ":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{--seki-select-trigger-padding:var(--seki-spacing-2) var(--seki-spacing-3);--seki-select-trigger-gap:var(--seki-spacing-2);--seki-select-trigger-border:1px solid var(--seki-color-border);--seki-select-trigger-radius:var(--seki-radius-md);--seki-select-trigger-bg:var(--seki-color-background);--seki-select-trigger-bg-hover:var(--seki-color-muted);--seki-select-trigger-min-height:var(--seki-size-10);--seki-select-content-bg:var(--seki-color-background);--seki-select-content-border:1px solid var(--seki-color-border);--seki-select-content-radius:var(--seki-radius-md);--seki-select-content-shadow:var(--seki-shadow-lg);--seki-select-content-max-height:12.5rem;--seki-select-content-padding:var(--seki-spacing-1);--seki-select-option-padding:var(--seki-spacing-2) var(--seki-spacing-3);--seki-select-option-bg-hover:var(--seki-color-muted);--seki-select-option-bg-selected:var(--seki-color-accent);--seki-select-option-radius:var(--seki-radius-sm);--seki-select-option-gap:var(--seki-spacing-2);--seki-select-group-label-padding:var(--seki-spacing-2) var(--seki-spacing-3);--seki-select-group-label-font-size:var(--seki-font-size-sm);--seki-select-group-label-font-weight:var(--seki-font-weight-semibold);--seki-select-group-label-color:var(--seki-color-muted-foreground);--seki-select-group-separator:1px solid var(--seki-color-border);display:inline-block;position:relative;width:100%}.select-native{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}";
6
+
7
+ const SekiSelect = class {
8
+ constructor(hostRef) {
9
+ index.registerInstance(this, hostRef);
10
+ this.sekiChange = index.createEvent(this, "sekiChange");
11
+ this.sekiOpenChange = index.createEvent(this, "sekiOpenChange");
12
+ this.sekiValidate = index.createEvent(this, "sekiValidate");
13
+ /** Enable multi-select mode */
14
+ this.multiple = false;
15
+ /** Placeholder text shown when no selection */
16
+ this.placeholder = 'Select an option';
17
+ /** Disable all interactions */
18
+ this.disabled = false;
19
+ /** Mark as required for form validation */
20
+ this.required = false;
21
+ /** Initial dropdown open state (uncontrolled mode) */
22
+ this.defaultOpen = false;
23
+ /** Maximum visible pills in multi-select mode */
24
+ this.maxVisiblePills = 3;
25
+ /** Preferred dropdown placement */
26
+ this.placement = 'bottom';
27
+ /** Maximum dropdown height */
28
+ this.maxHeight = '12.5rem';
29
+ // ===========================
30
+ // State
31
+ // ===========================
32
+ this.internalValue = '';
33
+ this.isOpen = false;
34
+ this.focusedOptionValue = null;
35
+ this.registeredOptions = [];
36
+ this.hasBeenActivated = false;
37
+ this.searchBuffer = '';
38
+ this.searchActive = false;
39
+ this.contentId = `select-content-${Math.random().toString(36).substr(2, 9)}`;
40
+ this.triggerId = `select-trigger-${Math.random().toString(36).substr(2, 9)}`;
41
+ this.searchTimeoutId = null;
42
+ this.searchDebounce = 500;
43
+ this.handleClickOutside = (event) => {
44
+ // Only close if dropdown is open
45
+ if (!this.isOpen) {
46
+ return;
47
+ }
48
+ // Check if click is outside the select component
49
+ const target = event.target;
50
+ if (!this.el.contains(target)) {
51
+ this.handleOpenChange(false);
52
+ }
53
+ };
54
+ // ===========================
55
+ // Internal Handlers
56
+ // ===========================
57
+ this.handleValueChange = (newValue) => {
58
+ this.internalValue = newValue;
59
+ // Update controlled prop if it exists
60
+ if (this.value !== undefined) {
61
+ this.value = newValue;
62
+ }
63
+ // Emit change event
64
+ const selectedOptions = this.getSelectedOptions();
65
+ if (this.multiple && Array.isArray(newValue)) {
66
+ this.sekiChange.emit({
67
+ value: newValue,
68
+ options: selectedOptions,
69
+ });
70
+ }
71
+ else {
72
+ this.sekiChange.emit({
73
+ value: newValue,
74
+ option: selectedOptions[0],
75
+ });
76
+ }
77
+ // Close dropdown in single-select mode
78
+ if (!this.multiple) {
79
+ this.handleOpenChange(false);
80
+ }
81
+ };
82
+ this.handleOpenChange = (open) => {
83
+ this.isOpen = open;
84
+ // Update controlled prop if it exists
85
+ if (this.open !== undefined) {
86
+ this.open = open;
87
+ }
88
+ // Mark as activated when opened
89
+ if (open) {
90
+ this.hasBeenActivated = true;
91
+ }
92
+ // Emit event
93
+ this.sekiOpenChange.emit({ open });
94
+ // Validate on close if required
95
+ if (!open && this.required && this.hasBeenActivated) {
96
+ this.validateRequired();
97
+ }
98
+ };
99
+ this.handleOptionFocus = (value) => {
100
+ this.focusedOptionValue = value;
101
+ };
102
+ this.handleOptionSelect = (value) => {
103
+ if (this.multiple) {
104
+ const currentValue = Array.isArray(this.internalValue) ? this.internalValue : [];
105
+ if (currentValue.includes(value)) {
106
+ // Deselect
107
+ this.handleValueChange(currentValue.filter(v => v !== value));
108
+ }
109
+ else {
110
+ // Select
111
+ this.handleValueChange([...currentValue, value]);
112
+ }
113
+ }
114
+ else {
115
+ this.handleValueChange(value);
116
+ }
117
+ };
118
+ this.isValueSelected = (value) => {
119
+ if (this.multiple && Array.isArray(this.internalValue)) {
120
+ return this.internalValue.includes(value);
121
+ }
122
+ return this.internalValue === value;
123
+ };
124
+ this.getSelectedOptions = () => {
125
+ if (this.multiple && Array.isArray(this.internalValue)) {
126
+ return this.registeredOptions.filter(opt => this.internalValue.includes(opt.value));
127
+ }
128
+ return this.registeredOptions.filter(opt => opt.value === this.internalValue);
129
+ };
130
+ this.registerOption = (option) => {
131
+ this.registeredOptions = [...this.registeredOptions, option];
132
+ };
133
+ this.unregisterOption = (value) => {
134
+ this.registeredOptions = this.registeredOptions.filter(opt => opt.value !== value);
135
+ };
136
+ this.validateRequired = () => {
137
+ const isValid = this.multiple
138
+ ? Array.isArray(this.internalValue) && this.internalValue.length > 0
139
+ : Boolean(this.internalValue);
140
+ this.sekiValidate.emit({
141
+ valid: isValid,
142
+ errorMessage: isValid ? undefined : 'This field is required',
143
+ });
144
+ };
145
+ this.handleValidate = (valid, errorMessage) => {
146
+ this.sekiValidate.emit({ valid, errorMessage });
147
+ };
148
+ }
149
+ // ===========================
150
+ // Lifecycle
151
+ // ===========================
152
+ componentWillLoad() {
153
+ // Initialize internal state
154
+ if (this.value !== undefined) {
155
+ this.internalValue = this.value;
156
+ }
157
+ else if (this.defaultValue !== undefined) {
158
+ this.internalValue = this.defaultValue;
159
+ }
160
+ else {
161
+ this.internalValue = this.multiple ? [] : '';
162
+ }
163
+ if (this.open !== undefined) {
164
+ this.isOpen = this.open;
165
+ }
166
+ else if (this.defaultOpen) {
167
+ this.isOpen = this.defaultOpen;
168
+ }
169
+ // Expose context on the element for child components
170
+ this.el.selectContext = this.selectContext;
171
+ }
172
+ componentDidLoad() {
173
+ // Expose context on the element for child components
174
+ this.el.selectContext = this.selectContext;
175
+ // Add click-outside listener
176
+ this.clickOutsideListener = this.handleClickOutside.bind(this);
177
+ document.addEventListener('click', this.clickOutsideListener, true);
178
+ }
179
+ componentDidRender() {
180
+ // Update context reference after each render
181
+ this.el.selectContext = this.selectContext;
182
+ }
183
+ disconnectedCallback() {
184
+ // Clean up click-outside listener
185
+ if (this.clickOutsideListener) {
186
+ document.removeEventListener('click', this.clickOutsideListener, true);
187
+ }
188
+ }
189
+ handleValuePropChange(newValue) {
190
+ if (newValue !== undefined) {
191
+ this.internalValue = newValue;
192
+ }
193
+ this.updateContextOnElement();
194
+ }
195
+ handleOpenPropChange(newOpen) {
196
+ if (newOpen !== undefined) {
197
+ this.isOpen = newOpen;
198
+ }
199
+ this.updateContextOnElement();
200
+ }
201
+ handleIsOpenChange() {
202
+ this.updateContextOnElement();
203
+ }
204
+ handleInternalValueChange() {
205
+ this.updateContextOnElement();
206
+ }
207
+ updateContextOnElement() {
208
+ this.el.selectContext = this.selectContext;
209
+ }
210
+ // ===========================
211
+ // Methods
212
+ // ===========================
213
+ /** Programmatically open the dropdown */
214
+ async openDropdown() {
215
+ this.handleOpenChange(true);
216
+ }
217
+ /** Programmatically close the dropdown */
218
+ async closeDropdown() {
219
+ this.handleOpenChange(false);
220
+ }
221
+ /** Focus the trigger element */
222
+ async focusTrigger() {
223
+ // Implementation will focus the trigger
224
+ }
225
+ /** Clear all selections */
226
+ async clearSelection() {
227
+ this.handleValueChange(this.multiple ? [] : '');
228
+ }
229
+ /** Handle keyboard navigation (arrow keys, typeahead, etc.) */
230
+ async handleKeyboard(event) {
231
+ if (!this.isOpen) {
232
+ if (event.key === ' ' || event.key === 'Enter' || event.key === 'ArrowDown') {
233
+ event.preventDefault();
234
+ this.handleOpenChange(true);
235
+ }
236
+ return;
237
+ }
238
+ switch (event.key) {
239
+ case 'ArrowDown':
240
+ event.preventDefault();
241
+ this.focusNextOption();
242
+ break;
243
+ case 'ArrowUp':
244
+ event.preventDefault();
245
+ this.focusPreviousOption();
246
+ break;
247
+ case 'Enter':
248
+ event.preventDefault();
249
+ if (this.focusedOptionValue !== null) {
250
+ this.handleOptionSelect(this.focusedOptionValue);
251
+ }
252
+ break;
253
+ case 'Escape':
254
+ event.preventDefault();
255
+ this.handleOpenChange(false);
256
+ break;
257
+ case ' ':
258
+ // Typeahead search
259
+ event.preventDefault();
260
+ this.addToSearchBuffer(' ');
261
+ break;
262
+ default:
263
+ // Single character typeahead
264
+ if (event.key.length === 1 && !event.ctrlKey && !event.metaKey && !event.altKey) {
265
+ event.preventDefault();
266
+ this.addToSearchBuffer(event.key);
267
+ }
268
+ break;
269
+ }
270
+ }
271
+ focusNextOption() {
272
+ if (this.registeredOptions.length === 0)
273
+ return;
274
+ let nextIndex = 0;
275
+ if (this.focusedOptionValue !== null) {
276
+ const currentIndex = this.registeredOptions.findIndex(opt => opt.value === this.focusedOptionValue);
277
+ nextIndex = currentIndex >= 0 ? Math.min(currentIndex + 1, this.registeredOptions.length - 1) : 0;
278
+ }
279
+ const nextOption = this.registeredOptions[nextIndex];
280
+ if (nextOption && !nextOption.disabled) {
281
+ this.handleOptionFocus(nextOption.value);
282
+ }
283
+ }
284
+ focusPreviousOption() {
285
+ if (this.registeredOptions.length === 0)
286
+ return;
287
+ let prevIndex = this.registeredOptions.length - 1;
288
+ if (this.focusedOptionValue !== null) {
289
+ const currentIndex = this.registeredOptions.findIndex(opt => opt.value === this.focusedOptionValue);
290
+ prevIndex = currentIndex > 0 ? currentIndex - 1 : this.registeredOptions.length - 1;
291
+ }
292
+ const prevOption = this.registeredOptions[prevIndex];
293
+ if (prevOption && !prevOption.disabled) {
294
+ this.handleOptionFocus(prevOption.value);
295
+ }
296
+ }
297
+ addToSearchBuffer(char) {
298
+ this.searchBuffer += char;
299
+ this.searchActive = true;
300
+ // Clear existing timeout
301
+ if (this.searchTimeoutId !== null) {
302
+ clearTimeout(this.searchTimeoutId);
303
+ }
304
+ // Find first option matching the buffer
305
+ const matchingOption = this.registeredOptions.find(opt => !opt.disabled && opt.label.toLowerCase().startsWith(this.searchBuffer.toLowerCase()));
306
+ if (matchingOption) {
307
+ this.handleOptionFocus(matchingOption.value);
308
+ }
309
+ // Reset buffer after debounce
310
+ this.searchTimeoutId = window.setTimeout(() => {
311
+ this.searchBuffer = '';
312
+ this.searchActive = false;
313
+ }, this.searchDebounce);
314
+ }
315
+ // Context to provide to children
316
+ get selectContext() {
317
+ return {
318
+ value: this.internalValue,
319
+ multiple: this.multiple,
320
+ open: this.isOpen,
321
+ disabled: this.disabled,
322
+ required: this.required,
323
+ focusedOptionValue: this.focusedOptionValue,
324
+ contentId: this.contentId,
325
+ triggerId: this.triggerId,
326
+ ariaLabel: this.ariaLabel,
327
+ ariaLabelledby: this.ariaLabelledby,
328
+ ariaDescribedby: this.ariaDescribedby,
329
+ onValueChange: this.handleValueChange,
330
+ onOpenChange: this.handleOpenChange,
331
+ onOptionFocus: this.handleOptionFocus,
332
+ onOptionSelect: this.handleOptionSelect,
333
+ isValueSelected: this.isValueSelected,
334
+ getSelectedOptions: this.getSelectedOptions,
335
+ registerOption: this.registerOption,
336
+ unregisterOption: this.unregisterOption,
337
+ };
338
+ }
339
+ // ===========================
340
+ // Render
341
+ // ===========================
342
+ render() {
343
+ return (index.h(index.Host, { key: '7b85ab6beecb3d69f522a2362e47905afb4c2cfa' }, index.h("slot", { key: 'dd239306507d718a70dd508c00e871914eecacec' }), this.name && this.renderHiddenNativeElement()));
344
+ }
345
+ renderHiddenNativeElement() {
346
+ if (this.multiple) {
347
+ return (index.h("select", { class: "select-native", name: this.name, multiple: true, required: this.required, disabled: this.disabled, "aria-hidden": "true", tabindex: -1 }, Array.isArray(this.internalValue) &&
348
+ this.internalValue.map(val => (index.h("option", { value: val, selected: true }, val)))));
349
+ }
350
+ else {
351
+ return (index.h("input", { type: "hidden", class: "select-native", name: this.name, value: this.internalValue, required: this.required, disabled: this.disabled }));
352
+ }
353
+ }
354
+ get el() { return index.getElement(this); }
355
+ static get watchers() { return {
356
+ "value": ["handleValuePropChange"],
357
+ "open": ["handleOpenPropChange"],
358
+ "isOpen": ["handleIsOpenChange"],
359
+ "internalValue": ["handleInternalValueChange"]
360
+ }; }
361
+ };
362
+ SekiSelect.style = sekiSelectCss;
363
+
364
+ exports.seki_select = SekiSelect;
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BxD7Xe36.js');
3
+ var index = require('./index-Dd6_-KaR.js');
4
4
 
5
- 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)}: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}}";
5
+ 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}}";
6
6
 
7
7
  const SekiSkeleton = class {
8
8
  constructor(hostRef) {
@@ -17,7 +17,7 @@ const SekiSkeleton = class {
17
17
  }
18
18
  }
19
19
  render() {
20
- return (index.h("div", { key: 'fb7e3abe8762cca61f0f950d6fb051c8ac30cec8', class: "skeleton", part: "skeleton", role: "status", "aria-busy": "true", "aria-label": this.ariaLabel || undefined }));
20
+ return (index.h("div", { key: '4908bccb6a551042c9bac657c07f656aa89e0fd0', class: "skeleton", part: "skeleton", role: "status", "aria-busy": "true", "aria-label": this.ariaLabel || undefined }));
21
21
  }
22
22
  };
23
23
  SekiSkeleton.style = sekiSkeletonCss;
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var index = require('./index.cjs.js');
4
- require('./index-BxD7Xe36.js');
4
+ require('./index-Dd6_-KaR.js');
5
5
 
6
6
 
7
7
 
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-BxD7Xe36.js');
3
+ var index = require('./index-Dd6_-KaR.js');
4
4
 
5
5
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
6
6
  /*
@@ -18,7 +18,7 @@ var patchBrowser = () => {
18
18
 
19
19
  patchBrowser().then(async (options) => {
20
20
  await index.globalScripts();
21
- return index.bootstrapLazy([["seki-button.cjs",[[257,"seki-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"]}]]],["seki-field.cjs",[[257,"seki-field",{"orientation":[1],"invalid":[4]}]]],["seki-field-description.cjs",[[257,"seki-field-description",{"descriptorId":[1,"descriptor-id"],"componentId":[32],"getId":[64]}]]],["seki-field-error.cjs",[[257,"seki-field-error",{"errorId":[1,"error-id"],"visible":[4],"componentId":[32],"previousVisible":[32],"getId":[64],"setVisible":[64]},null,{"visible":["handleVisibleChange"]}]]],["seki-field-group.cjs",[[257,"seki-field-group",{"gap":[1]}]]],["seki-field-label.cjs",[[257,"seki-field-label",{"htmlFor":[1,"html-for"],"required":[4]}]]],["seki-field-legend.cjs",[[257,"seki-field-legend"]]],["seki-fieldset.cjs",[[257,"seki-fieldset",{"disabled":[4]}]]],["seki-input.cjs",[[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-skeleton.cjs",[[257,"seki-skeleton",{"ariaLabel":[1,"aria-label"]}]]],["seki-switch.cjs",[[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"]]]]]], options);
21
+ return index.bootstrapLazy([["seki-button.cjs",[[257,"seki-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"]}]]],["seki-field.cjs",[[257,"seki-field",{"orientation":[1],"invalid":[4]}]]],["seki-field-description.cjs",[[257,"seki-field-description",{"descriptorId":[1,"descriptor-id"],"componentId":[32],"getId":[64]}]]],["seki-field-error.cjs",[[257,"seki-field-error",{"errorId":[1,"error-id"],"visible":[4],"componentId":[32],"previousVisible":[32],"getId":[64],"setVisible":[64]},null,{"visible":["handleVisibleChange"]}]]],["seki-field-group.cjs",[[257,"seki-field-group",{"gap":[1]}]]],["seki-field-label.cjs",[[257,"seki-field-label",{"htmlFor":[1,"html-for"],"required":[4]}]]],["seki-field-legend.cjs",[[257,"seki-field-legend"]]],["seki-fieldset.cjs",[[257,"seki-fieldset",{"disabled":[4]}]]],["seki-input.cjs",[[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.cjs",[[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.cjs",[[257,"seki-select-content",{"forceUpdate":[32],"scrollToOption":[64]}]]],["seki-select-group.cjs",[[257,"seki-select-group",{"label":[1]}]]],["seki-select-option.cjs",[[257,"seki-select-option",{"value":[8],"label":[1],"disabled":[4]}]]],["seki-select-trigger.cjs",[[257,"seki-select-trigger",{"forceUpdate":[32]}]]],["seki-skeleton.cjs",[[257,"seki-skeleton",{"ariaLabel":[1,"aria-label"]}]]],["seki-switch.cjs",[[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"]]]]]], options);
22
22
  });
23
23
 
24
24
  exports.setNonce = index.setNonce;
@@ -10,6 +10,11 @@
10
10
  "components/field-legend/seki-field-legend.js",
11
11
  "components/fieldset/seki-fieldset.js",
12
12
  "components/input/seki-input.js",
13
+ "components/select/seki-select.js",
14
+ "components/select-content/seki-select-content.js",
15
+ "components/select-group/seki-select-group.js",
16
+ "components/select-option/seki-select-option.js",
17
+ "components/select-trigger/seki-select-trigger.js",
13
18
  "components/skeleton/seki-skeleton.js"
14
19
  ],
15
20
  "compiler": {
@@ -257,6 +257,37 @@
257
257
  --seki-input-invalid-ring: var(--seki-destructive);
258
258
  --seki-input-disabled-opacity: 0.5;
259
259
  --seki-input-radius: var(--seki-radius-md);
260
+ --seki-input-ring-offset: 2px;
261
+
262
+ /* Select Component Colors */
263
+ --seki-select-trigger-bg: var(--seki-background);
264
+ --seki-select-trigger-border: 1px solid var(--seki-border);
265
+ --seki-select-trigger-bg-hover: var(--seki-muted);
266
+ --seki-select-trigger-radius: var(--seki-radius-md);
267
+ --seki-select-trigger-min-height: 2.5rem;
268
+ --seki-select-trigger-padding: 0.5rem 0.75rem;
269
+ --seki-select-trigger-gap: 0.5rem;
270
+
271
+ /* Select Content/Dropdown */
272
+ --seki-select-content-bg: var(--seki-popover);
273
+ --seki-select-content-border: 1px solid var(--seki-border);
274
+ --seki-select-content-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
275
+ --seki-select-content-radius: var(--seki-radius-md);
276
+ --seki-select-content-padding: 0.5rem 0;
277
+
278
+ /* Select Option */
279
+ --seki-select-option-padding: 0.5rem 0.75rem;
280
+ --seki-select-option-gap: 0.5rem;
281
+ --seki-select-option-radius: var(--seki-radius-sm);
282
+ --seki-select-option-bg-hover: var(--seki-muted);
283
+ --seki-select-option-bg-selected: var(--seki-muted);
284
+
285
+ /* Select Group */
286
+ --seki-select-group-label-padding: 0.5rem 0.75rem;
287
+ --seki-select-group-label-font-size: var(--seki-font-size-xs);
288
+ --seki-select-group-label-font-weight: var(--seki-font-semibold);
289
+ --seki-select-group-label-color: var(--seki-muted-foreground);
290
+ --seki-select-group-separator: 1px solid var(--seki-border);
260
291
  }
261
292
 
262
293
  /**
@@ -257,6 +257,37 @@
257
257
  --seki-input-invalid-ring: var(--seki-destructive);
258
258
  --seki-input-disabled-opacity: 0.5;
259
259
  --seki-input-radius: var(--seki-radius-md);
260
+ --seki-input-ring-offset: 2px;
261
+
262
+ /* Select Component Colors */
263
+ --seki-select-trigger-bg: var(--seki-background);
264
+ --seki-select-trigger-border: 1px solid var(--seki-border);
265
+ --seki-select-trigger-bg-hover: var(--seki-muted);
266
+ --seki-select-trigger-radius: var(--seki-radius-md);
267
+ --seki-select-trigger-min-height: 2.5rem;
268
+ --seki-select-trigger-padding: 0.5rem 0.75rem;
269
+ --seki-select-trigger-gap: 0.5rem;
270
+
271
+ /* Select Content/Dropdown */
272
+ --seki-select-content-bg: var(--seki-popover);
273
+ --seki-select-content-border: 1px solid var(--seki-border);
274
+ --seki-select-content-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
275
+ --seki-select-content-radius: var(--seki-radius-md);
276
+ --seki-select-content-padding: 0.5rem 0;
277
+
278
+ /* Select Option */
279
+ --seki-select-option-padding: 0.5rem 0.75rem;
280
+ --seki-select-option-gap: 0.5rem;
281
+ --seki-select-option-radius: var(--seki-radius-sm);
282
+ --seki-select-option-bg-hover: var(--seki-muted);
283
+ --seki-select-option-bg-selected: var(--seki-muted);
284
+
285
+ /* Select Group */
286
+ --seki-select-group-label-padding: 0.5rem 0.75rem;
287
+ --seki-select-group-label-font-size: var(--seki-font-size-xs);
288
+ --seki-select-group-label-font-weight: var(--seki-font-semibold);
289
+ --seki-select-group-label-color: var(--seki-muted-foreground);
290
+ --seki-select-group-separator: 1px solid var(--seki-border);
260
291
  }
261
292
 
262
293
  /**
@@ -257,6 +257,37 @@
257
257
  --seki-input-invalid-ring: var(--seki-destructive);
258
258
  --seki-input-disabled-opacity: 0.5;
259
259
  --seki-input-radius: var(--seki-radius-md);
260
+ --seki-input-ring-offset: 2px;
261
+
262
+ /* Select Component Colors */
263
+ --seki-select-trigger-bg: var(--seki-background);
264
+ --seki-select-trigger-border: 1px solid var(--seki-border);
265
+ --seki-select-trigger-bg-hover: var(--seki-muted);
266
+ --seki-select-trigger-radius: var(--seki-radius-md);
267
+ --seki-select-trigger-min-height: 2.5rem;
268
+ --seki-select-trigger-padding: 0.5rem 0.75rem;
269
+ --seki-select-trigger-gap: 0.5rem;
270
+
271
+ /* Select Content/Dropdown */
272
+ --seki-select-content-bg: var(--seki-popover);
273
+ --seki-select-content-border: 1px solid var(--seki-border);
274
+ --seki-select-content-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);
275
+ --seki-select-content-radius: var(--seki-radius-md);
276
+ --seki-select-content-padding: 0.5rem 0;
277
+
278
+ /* Select Option */
279
+ --seki-select-option-padding: 0.5rem 0.75rem;
280
+ --seki-select-option-gap: 0.5rem;
281
+ --seki-select-option-radius: var(--seki-radius-sm);
282
+ --seki-select-option-bg-hover: var(--seki-muted);
283
+ --seki-select-option-bg-selected: var(--seki-muted);
284
+
285
+ /* Select Group */
286
+ --seki-select-group-label-padding: 0.5rem 0.75rem;
287
+ --seki-select-group-label-font-size: var(--seki-font-size-xs);
288
+ --seki-select-group-label-font-weight: var(--seki-font-semibold);
289
+ --seki-select-group-label-color: var(--seki-muted-foreground);
290
+ --seki-select-group-separator: 1px solid var(--seki-border);
260
291
  }
261
292
 
262
293
  /**
@@ -359,9 +390,11 @@
359
390
  }
360
391
 
361
392
  .description {
362
- color: var(--seki-description-color, hsl(var(--seki-muted-foreground)));
363
- font-size: var(--seki-description-font-size, 0.875rem);
364
- line-height: var(--seki-description-line-height, 1.4);
393
+ color: var(--seki-description-color, var(--seki-muted-foreground));
394
+ font-family: var(--seki-font-sans);
395
+ font-size: var(--seki-description-font-size, var(--seki-font-size-sm));
396
+ font-weight: var(--seki-font-normal);
397
+ line-height: var(--seki-description-line-height, var(--seki-leading-relaxed));
365
398
  }
366
399
 
367
400
  /* Reduced motion */