@sekiui/elements 0.0.57 → 0.0.59

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 (201) hide show
  1. package/dist/cdn/index.js +2 -2
  2. package/dist/cdn/{p-BfRJQMIU.js → p-Cpa2leXN.js} +1 -1
  3. package/dist/cdn/{p-Bp7tjKwQ.js → p-DxUZSKfL.js} +41 -3
  4. package/dist/cdn/seki-badge.d.ts +11 -0
  5. package/dist/cdn/seki-badge.js +109 -0
  6. package/dist/cdn/seki-button.js +1 -1
  7. package/dist/cdn/seki-card-action.js +1 -1
  8. package/dist/cdn/seki-card-content.js +1 -1
  9. package/dist/cdn/seki-card-description.js +1 -1
  10. package/dist/cdn/seki-card-footer.js +1 -1
  11. package/dist/cdn/seki-card-header.js +1 -1
  12. package/dist/cdn/seki-card-title.js +1 -1
  13. package/dist/cdn/seki-card.js +1 -1
  14. package/dist/cdn/seki-field-description.js +1 -1
  15. package/dist/cdn/seki-field-error.js +1 -1
  16. package/dist/cdn/seki-field-group.js +1 -1
  17. package/dist/cdn/seki-field-label.js +1 -1
  18. package/dist/cdn/seki-field-legend.js +1 -1
  19. package/dist/cdn/seki-field.js +1 -1
  20. package/dist/cdn/seki-fieldset.js +1 -1
  21. package/dist/cdn/seki-input.js +1 -1
  22. package/dist/cdn/seki-select-content.js +1 -1
  23. package/dist/cdn/seki-select-group.js +1 -1
  24. package/dist/cdn/seki-select-option.js +1 -1
  25. package/dist/cdn/seki-select-trigger.js +1 -1
  26. package/dist/cdn/seki-select.js +1 -1
  27. package/dist/cdn/seki-sidebar-content.js +1 -1
  28. package/dist/cdn/seki-sidebar-footer.js +1 -1
  29. package/dist/cdn/seki-sidebar-group.js +1 -1
  30. package/dist/cdn/seki-sidebar-header.js +1 -1
  31. package/dist/cdn/seki-sidebar-menu-item.js +1 -1
  32. package/dist/cdn/seki-sidebar-menu-sub.js +1 -1
  33. package/dist/cdn/seki-sidebar-menu.js +1 -1
  34. package/dist/cdn/seki-sidebar-trigger.js +1 -1
  35. package/dist/cdn/seki-sidebar.js +1 -1
  36. package/dist/cdn/seki-skeleton.js +1 -1
  37. package/dist/cdn/seki-switch.js +1 -1
  38. package/dist/cdn/seki-tooltip.js +1 -1
  39. package/dist/cjs/{index-tQYksITZ.js → index-D4RM3EID.js} +41 -3
  40. package/dist/cjs/index.cjs.js +1 -1
  41. package/dist/cjs/loader.cjs.js +2 -2
  42. package/dist/cjs/seki-badge.cjs.entry.js +85 -0
  43. package/dist/cjs/seki-button.cjs.entry.js +1 -1
  44. package/dist/cjs/seki-card-action.cjs.entry.js +1 -1
  45. package/dist/cjs/seki-card-content.cjs.entry.js +1 -1
  46. package/dist/cjs/seki-card-description.cjs.entry.js +1 -1
  47. package/dist/cjs/seki-card-footer.cjs.entry.js +1 -1
  48. package/dist/cjs/seki-card-header.cjs.entry.js +1 -1
  49. package/dist/cjs/seki-card-title.cjs.entry.js +1 -1
  50. package/dist/cjs/seki-card.cjs.entry.js +1 -1
  51. package/dist/cjs/seki-field-description.cjs.entry.js +1 -1
  52. package/dist/cjs/seki-field-error.cjs.entry.js +1 -1
  53. package/dist/cjs/seki-field-group.cjs.entry.js +1 -1
  54. package/dist/cjs/seki-field-label.cjs.entry.js +1 -1
  55. package/dist/cjs/seki-field-legend.cjs.entry.js +1 -1
  56. package/dist/cjs/seki-field.cjs.entry.js +1 -1
  57. package/dist/cjs/seki-fieldset.cjs.entry.js +1 -1
  58. package/dist/cjs/seki-input.cjs.entry.js +1 -1
  59. package/dist/cjs/seki-select-content.cjs.entry.js +1 -1
  60. package/dist/cjs/seki-select-group.cjs.entry.js +1 -1
  61. package/dist/cjs/seki-select-option.cjs.entry.js +1 -1
  62. package/dist/cjs/seki-select-trigger.cjs.entry.js +1 -1
  63. package/dist/cjs/seki-select.cjs.entry.js +1 -1
  64. package/dist/cjs/seki-sidebar-content.cjs.entry.js +1 -1
  65. package/dist/cjs/seki-sidebar-footer.cjs.entry.js +1 -1
  66. package/dist/cjs/seki-sidebar-group.cjs.entry.js +1 -1
  67. package/dist/cjs/seki-sidebar-header.cjs.entry.js +1 -1
  68. package/dist/cjs/seki-sidebar-menu-item.cjs.entry.js +1 -1
  69. package/dist/cjs/seki-sidebar-menu-sub.cjs.entry.js +1 -1
  70. package/dist/cjs/seki-sidebar-menu.cjs.entry.js +1 -1
  71. package/dist/cjs/seki-sidebar-trigger.cjs.entry.js +1 -1
  72. package/dist/cjs/seki-sidebar.cjs.entry.js +1 -1
  73. package/dist/cjs/seki-skeleton.cjs.entry.js +1 -1
  74. package/dist/cjs/seki-switch.cjs.entry.js +1 -1
  75. package/dist/cjs/seki-tooltip.cjs.entry.js +1 -1
  76. package/dist/cjs/sekiui.cjs.js +3 -3
  77. package/dist/collection/collection-manifest.json +3 -2
  78. package/dist/collection/components/badge/seki-badge.css +140 -0
  79. package/dist/collection/components/badge/seki-badge.interface.js +1 -0
  80. package/dist/collection/components/badge/seki-badge.js +199 -0
  81. package/dist/components/index.js +2 -2
  82. package/dist/components/{p-BzYKy7d3.js → p-BU1kuAZS.js} +41 -3
  83. package/dist/components/{p-DwTISp-i.js → p-wQy1sEm6.js} +1 -1
  84. package/dist/components/seki-badge.d.ts +11 -0
  85. package/dist/components/seki-badge.js +109 -0
  86. package/dist/components/seki-button.js +1 -1
  87. package/dist/components/seki-card-action.js +1 -1
  88. package/dist/components/seki-card-content.js +1 -1
  89. package/dist/components/seki-card-description.js +1 -1
  90. package/dist/components/seki-card-footer.js +1 -1
  91. package/dist/components/seki-card-header.js +1 -1
  92. package/dist/components/seki-card-title.js +1 -1
  93. package/dist/components/seki-card.js +1 -1
  94. package/dist/components/seki-field-description.js +1 -1
  95. package/dist/components/seki-field-error.js +1 -1
  96. package/dist/components/seki-field-group.js +1 -1
  97. package/dist/components/seki-field-label.js +1 -1
  98. package/dist/components/seki-field-legend.js +1 -1
  99. package/dist/components/seki-field.js +1 -1
  100. package/dist/components/seki-fieldset.js +1 -1
  101. package/dist/components/seki-input.js +1 -1
  102. package/dist/components/seki-select-content.js +1 -1
  103. package/dist/components/seki-select-group.js +1 -1
  104. package/dist/components/seki-select-option.js +1 -1
  105. package/dist/components/seki-select-trigger.js +1 -1
  106. package/dist/components/seki-select.js +1 -1
  107. package/dist/components/seki-sidebar-content.js +1 -1
  108. package/dist/components/seki-sidebar-footer.js +1 -1
  109. package/dist/components/seki-sidebar-group.js +1 -1
  110. package/dist/components/seki-sidebar-header.js +1 -1
  111. package/dist/components/seki-sidebar-menu-item.js +1 -1
  112. package/dist/components/seki-sidebar-menu-sub.js +1 -1
  113. package/dist/components/seki-sidebar-menu.js +1 -1
  114. package/dist/components/seki-sidebar-trigger.js +1 -1
  115. package/dist/components/seki-sidebar.js +1 -1
  116. package/dist/components/seki-skeleton.js +1 -1
  117. package/dist/components/seki-switch.js +1 -1
  118. package/dist/components/seki-tooltip.js +1 -1
  119. package/dist/esm/{index-Dfzpqq0a.js → index-DI_YjzRi.js} +41 -3
  120. package/dist/esm/index.js +1 -1
  121. package/dist/esm/loader.js +3 -3
  122. package/dist/esm/seki-badge.entry.js +83 -0
  123. package/dist/esm/seki-button.entry.js +1 -1
  124. package/dist/esm/seki-card-action.entry.js +1 -1
  125. package/dist/esm/seki-card-content.entry.js +1 -1
  126. package/dist/esm/seki-card-description.entry.js +1 -1
  127. package/dist/esm/seki-card-footer.entry.js +1 -1
  128. package/dist/esm/seki-card-header.entry.js +1 -1
  129. package/dist/esm/seki-card-title.entry.js +1 -1
  130. package/dist/esm/seki-card.entry.js +1 -1
  131. package/dist/esm/seki-field-description.entry.js +1 -1
  132. package/dist/esm/seki-field-error.entry.js +1 -1
  133. package/dist/esm/seki-field-group.entry.js +1 -1
  134. package/dist/esm/seki-field-label.entry.js +1 -1
  135. package/dist/esm/seki-field-legend.entry.js +1 -1
  136. package/dist/esm/seki-field.entry.js +1 -1
  137. package/dist/esm/seki-fieldset.entry.js +1 -1
  138. package/dist/esm/seki-input.entry.js +1 -1
  139. package/dist/esm/seki-select-content.entry.js +1 -1
  140. package/dist/esm/seki-select-group.entry.js +1 -1
  141. package/dist/esm/seki-select-option.entry.js +1 -1
  142. package/dist/esm/seki-select-trigger.entry.js +1 -1
  143. package/dist/esm/seki-select.entry.js +1 -1
  144. package/dist/esm/seki-sidebar-content.entry.js +1 -1
  145. package/dist/esm/seki-sidebar-footer.entry.js +1 -1
  146. package/dist/esm/seki-sidebar-group.entry.js +1 -1
  147. package/dist/esm/seki-sidebar-header.entry.js +1 -1
  148. package/dist/esm/seki-sidebar-menu-item.entry.js +1 -1
  149. package/dist/esm/seki-sidebar-menu-sub.entry.js +1 -1
  150. package/dist/esm/seki-sidebar-menu.entry.js +1 -1
  151. package/dist/esm/seki-sidebar-trigger.entry.js +1 -1
  152. package/dist/esm/seki-sidebar.entry.js +1 -1
  153. package/dist/esm/seki-skeleton.entry.js +1 -1
  154. package/dist/esm/seki-switch.entry.js +1 -1
  155. package/dist/esm/seki-tooltip.entry.js +1 -1
  156. package/dist/esm/sekiui.js +4 -4
  157. package/dist/sekiui/index.esm.js +1 -1
  158. package/dist/sekiui/{p-01cfb4e7.entry.js → p-0af1b81a.entry.js} +1 -1
  159. package/dist/sekiui/{p-471b97a5.entry.js → p-0ca6b9f0.entry.js} +1 -1
  160. package/dist/sekiui/{p-b365f5fb.entry.js → p-1480b41a.entry.js} +1 -1
  161. package/dist/sekiui/{p-a71e0c55.entry.js → p-161be4d4.entry.js} +1 -1
  162. package/dist/sekiui/{p-d73cdb9a.entry.js → p-1685e673.entry.js} +1 -1
  163. package/dist/sekiui/{p-83e65cbe.entry.js → p-26b629bc.entry.js} +1 -1
  164. package/dist/sekiui/{p-56f0d754.entry.js → p-27deb555.entry.js} +1 -1
  165. package/dist/sekiui/p-37fa684c.entry.js +1 -0
  166. package/dist/sekiui/{p-ae227955.entry.js → p-402a5db6.entry.js} +1 -1
  167. package/dist/sekiui/{p-b387a2a5.entry.js → p-40ba3ad6.entry.js} +1 -1
  168. package/dist/sekiui/{p-e7bb140c.entry.js → p-4867d02d.entry.js} +1 -1
  169. package/dist/sekiui/{p-8b7bd061.entry.js → p-4b29dbda.entry.js} +1 -1
  170. package/dist/sekiui/{p-d96e770e.entry.js → p-587fd313.entry.js} +1 -1
  171. package/dist/sekiui/{p-10c008fc.entry.js → p-58ab95eb.entry.js} +1 -1
  172. package/dist/sekiui/{p-e62dd89b.entry.js → p-60ff3543.entry.js} +1 -1
  173. package/dist/sekiui/{p-4636588f.entry.js → p-68b1fa1a.entry.js} +1 -1
  174. package/dist/sekiui/{p-5bc0f5aa.entry.js → p-6a922121.entry.js} +1 -1
  175. package/dist/sekiui/{p-ff636955.entry.js → p-6f5bf5af.entry.js} +1 -1
  176. package/dist/sekiui/{p-c98b6d6a.entry.js → p-84d47cab.entry.js} +1 -1
  177. package/dist/sekiui/{p-40fb71d6.entry.js → p-9dcd07b2.entry.js} +1 -1
  178. package/dist/sekiui/p-DI_YjzRi.js +2 -0
  179. package/dist/sekiui/p-ab9d1ba5.entry.js +1 -0
  180. package/dist/sekiui/{p-9cb9cdfe.entry.js → p-b525d85a.entry.js} +1 -1
  181. package/dist/sekiui/{p-352bd295.entry.js → p-b64e7007.entry.js} +1 -1
  182. package/dist/sekiui/{p-eecc18f3.entry.js → p-b7f2b568.entry.js} +1 -1
  183. package/dist/sekiui/{p-8d9a4878.entry.js → p-c642ab55.entry.js} +1 -1
  184. package/dist/sekiui/{p-44191aed.entry.js → p-c74bd925.entry.js} +1 -1
  185. package/dist/sekiui/{p-9f2d95d7.entry.js → p-c83d94c4.entry.js} +1 -1
  186. package/dist/sekiui/{p-37c5f4d9.entry.js → p-ce1bbe04.entry.js} +1 -1
  187. package/dist/sekiui/{p-a1a71958.entry.js → p-cf552ff9.entry.js} +1 -1
  188. package/dist/sekiui/{p-4423d621.entry.js → p-d194caf1.entry.js} +1 -1
  189. package/dist/sekiui/{p-635f4098.entry.js → p-dfa2f8cd.entry.js} +1 -1
  190. package/dist/sekiui/{p-6164cd8a.entry.js → p-e6d5f56e.entry.js} +1 -1
  191. package/dist/sekiui/{p-042ec460.entry.js → p-f1ffc3fa.entry.js} +1 -1
  192. package/dist/sekiui/{p-743fc6d9.entry.js → p-f863f36b.entry.js} +1 -1
  193. package/dist/sekiui/sekiui.esm.js +1 -1
  194. package/dist/types/components/badge/seki-badge.d.ts +43 -0
  195. package/dist/types/components/badge/seki-badge.interface.d.ts +88 -0
  196. package/dist/types/components.d.ts +91 -0
  197. package/dist/types/services/media-query.d.ts +1 -1
  198. package/dist/types/stencil-public-runtime.d.ts +19 -9
  199. package/package.json +10 -3
  200. package/dist/sekiui/p-Dfzpqq0a.js +0 -2
  201. package/dist/sekiui/p-b8590f4d.entry.js +0 -1
@@ -1 +1 @@
1
- import{r as e,c as i,h as s}from"./p-Dfzpqq0a.js";const t=class{constructor(s){e(this,s),this.sekiInput=i(this,"sekiInput"),this.sekiChange=i(this,"sekiChange"),this.sekiFocus=i(this,"sekiFocus"),this.sekiBlur=i(this,"sekiBlur"),s.$hostElement$["s-ei"]?this.internals=s.$hostElement$["s-ei"]:(this.internals=s.$hostElement$.attachInternals(),s.$hostElement$["s-ei"]=this.internals),this.type="text",this.value="",this.disabled=!1,this.readonly=!1,this.required=!1,this.size="md",this.invalid=!1,this.handleInput=e=>{this.value=e.target.value,this.internals&&"function"==typeof this.internals.setFormValue&&this.internals.setFormValue(this.value),this.sekiInput.emit({value:this.value,nativeEvent:e})},this.handleChange=e=>{this.value=e.target.value,this.internals&&"function"==typeof this.internals.setFormValue&&this.internals.setFormValue(this.value),this.sekiChange.emit({value:this.value,nativeEvent:e})},this.handleFocus=e=>{this.sekiFocus.emit({nativeEvent:e})},this.handleBlur=e=>{this.sekiBlur.emit({value:e.target.value,nativeEvent:e})}}formResetCallback(){this.value="",this.internals&&"function"==typeof this.internals.setFormValue&&this.internals.setFormValue("")}formStateRestoreCallback(e){this.value=e,this.internals&&"function"==typeof this.internals.setFormValue&&this.internals.setFormValue(e)}componentWillLoad(){this.internals&&"function"==typeof this.internals.setFormValue&&this.internals.setFormValue(this.value||"")}render(){return s("input",{key:"a45cad3b7568ea245c39cbc972ff01afd601cf72",type:this.type,value:this.value,placeholder:this.placeholder,disabled:this.disabled,readOnly:this.readonly,required:this.required,name:this.name,autocomplete:this.autocomplete,min:this.min,max:this.max,step:this.step,pattern:this.pattern,minlength:this.minlength,maxlength:this.maxlength,class:`input input--${this.size}${this.invalid?" input--invalid":""}`,"aria-label":this.ariaLabel,"aria-describedby":this.ariaDescribedby,"aria-invalid":this.invalid?"true":null,"aria-disabled":this.disabled?"true":null,onInput:this.handleInput,onChange:this.handleChange,onFocus:this.handleFocus,onBlur:this.handleBlur})}static get formAssociated(){return!0}};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-block;width:100%}.input{box-sizing:border-box;width:100%;font-family:var(--seki-font-sans);font-size:var(--seki-input-font-size, var(--seki-font-size-base));font-weight:var(--seki-font-normal);line-height:var(--seki-leading-normal);border-radius:var(--seki-input-radius);border:1px solid var(--seki-input-border);background:var(--seki-input-bg);color:var(--seki-input-text);padding:var(--seki-input-padding-y) var(--seki-input-padding-x);transition:border-color 0.2s ease, box-shadow 0.2s ease}.input::placeholder{color:var(--seki-input-placeholder)}.input:focus-visible{outline:2px solid var(--seki-input-ring);outline-offset:var(--seki-input-ring-offset);border-color:var(--seki-input-ring)}.input:disabled{cursor:not-allowed;opacity:var(--seki-input-disabled-opacity)}.input:read-only{background:var(--seki-muted)}.input--invalid{border-color:var(--seki-input-invalid-border)}.input--invalid:focus-visible{outline-color:var(--seki-input-invalid-ring);border-color:var(--seki-input-invalid-border)}.input--sm{height:var(--seki-input-height-sm);font-size:var(--seki-font-size-sm);padding:calc(var(--seki-input-padding-y) * 0.75) calc(var(--seki-input-padding-x) * 0.875)}.input--md{height:var(--seki-input-height-md);font-size:var(--seki-font-size-base)}.input--lg{height:var(--seki-input-height-lg);font-size:var(--seki-font-size-lg);padding:calc(var(--seki-input-padding-y) * 1.25) calc(var(--seki-input-padding-x) * 1.125)}.input[type=\"file\"]::file-selector-button{border:0;background:transparent;font-size:var(--seki-input-font-size);font-weight:500;margin-right:0.75rem;cursor:pointer;color:var(--seki-input-text)}.input[type=\"file\"]::file-selector-button:hover{text-decoration:underline}@media (prefers-reduced-motion: reduce){.input{transition:none}}";export{t as seki_input}
1
+ import{r as e,c as i,h as s}from"./p-DI_YjzRi.js";const t=class{constructor(s){e(this,s),this.sekiInput=i(this,"sekiInput"),this.sekiChange=i(this,"sekiChange"),this.sekiFocus=i(this,"sekiFocus"),this.sekiBlur=i(this,"sekiBlur"),s.$hostElement$["s-ei"]?this.internals=s.$hostElement$["s-ei"]:(this.internals=s.$hostElement$.attachInternals(),s.$hostElement$["s-ei"]=this.internals),this.type="text",this.value="",this.disabled=!1,this.readonly=!1,this.required=!1,this.size="md",this.invalid=!1,this.handleInput=e=>{this.value=e.target.value,this.internals&&"function"==typeof this.internals.setFormValue&&this.internals.setFormValue(this.value),this.sekiInput.emit({value:this.value,nativeEvent:e})},this.handleChange=e=>{this.value=e.target.value,this.internals&&"function"==typeof this.internals.setFormValue&&this.internals.setFormValue(this.value),this.sekiChange.emit({value:this.value,nativeEvent:e})},this.handleFocus=e=>{this.sekiFocus.emit({nativeEvent:e})},this.handleBlur=e=>{this.sekiBlur.emit({value:e.target.value,nativeEvent:e})}}formResetCallback(){this.value="",this.internals&&"function"==typeof this.internals.setFormValue&&this.internals.setFormValue("")}formStateRestoreCallback(e){this.value=e,this.internals&&"function"==typeof this.internals.setFormValue&&this.internals.setFormValue(e)}componentWillLoad(){this.internals&&"function"==typeof this.internals.setFormValue&&this.internals.setFormValue(this.value||"")}render(){return s("input",{key:"a45cad3b7568ea245c39cbc972ff01afd601cf72",type:this.type,value:this.value,placeholder:this.placeholder,disabled:this.disabled,readOnly:this.readonly,required:this.required,name:this.name,autocomplete:this.autocomplete,min:this.min,max:this.max,step:this.step,pattern:this.pattern,minlength:this.minlength,maxlength:this.maxlength,class:`input input--${this.size}${this.invalid?" input--invalid":""}`,"aria-label":this.ariaLabel,"aria-describedby":this.ariaDescribedby,"aria-invalid":this.invalid?"true":null,"aria-disabled":this.disabled?"true":null,onInput:this.handleInput,onChange:this.handleChange,onFocus:this.handleFocus,onBlur:this.handleBlur})}static get formAssociated(){return!0}};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-block;width:100%}.input{box-sizing:border-box;width:100%;font-family:var(--seki-font-sans);font-size:var(--seki-input-font-size, var(--seki-font-size-base));font-weight:var(--seki-font-normal);line-height:var(--seki-leading-normal);border-radius:var(--seki-input-radius);border:1px solid var(--seki-input-border);background:var(--seki-input-bg);color:var(--seki-input-text);padding:var(--seki-input-padding-y) var(--seki-input-padding-x);transition:border-color 0.2s ease, box-shadow 0.2s ease}.input::placeholder{color:var(--seki-input-placeholder)}.input:focus-visible{outline:2px solid var(--seki-input-ring);outline-offset:var(--seki-input-ring-offset);border-color:var(--seki-input-ring)}.input:disabled{cursor:not-allowed;opacity:var(--seki-input-disabled-opacity)}.input:read-only{background:var(--seki-muted)}.input--invalid{border-color:var(--seki-input-invalid-border)}.input--invalid:focus-visible{outline-color:var(--seki-input-invalid-ring);border-color:var(--seki-input-invalid-border)}.input--sm{height:var(--seki-input-height-sm);font-size:var(--seki-font-size-sm);padding:calc(var(--seki-input-padding-y) * 0.75) calc(var(--seki-input-padding-x) * 0.875)}.input--md{height:var(--seki-input-height-md);font-size:var(--seki-font-size-base)}.input--lg{height:var(--seki-input-height-lg);font-size:var(--seki-font-size-lg);padding:calc(var(--seki-input-padding-y) * 1.25) calc(var(--seki-input-padding-x) * 1.125)}.input[type=\"file\"]::file-selector-button{border:0;background:transparent;font-size:var(--seki-input-font-size);font-weight:500;margin-right:0.75rem;cursor:pointer;color:var(--seki-input-text)}.input[type=\"file\"]::file-selector-button:hover{text-decoration:underline}@media (prefers-reduced-motion: reduce){.input{transition:none}}";export{t as seki_input}
@@ -1 +1 @@
1
- import{r as e,h as n,H as i,a as s}from"./p-Dfzpqq0a.js";const r=class{constructor(n){e(this,n),this.orientation="vertical",this.invalid=!1}hasMultipleControls(){const e=this.el.querySelectorAll(":not([slot])");return Array.from(e).filter((e=>{if(e.nodeType!==Node.ELEMENT_NODE)return!1;const n=e.tagName.toLowerCase();return["input","select","textarea","button"].includes(n)||n.startsWith("seki-")})).length>1}render(){const e=this.hasMultipleControls();return n(i,{key:"4d4811ebe41e0ac3103d3c2e6057679556d9ea8f","data-orientation":this.orientation,"data-invalid":this.invalid?"":void 0,role:e?"group":void 0},n("div",{key:"de3078e15975b74d5daf8a898906eac941859a28",class:"field"},n("div",{key:"654fa59185f2e28a41ac17b41f3bccbeeddeaeeb",class:"field-label"},n("slot",{key:"0e5d795106bcbd6741894d384c2458bd5835c9f2",name:"label"})),n("div",{key:"9389fbfe76438bfc9de827608369463415cfe813",class:"field-control"},n("slot",{key:"df767c630d1c5d74a70e602106280af19359becd"})),n("div",{key:"9c1f633ffd2baddfc3a35218a2c6556bdc2408e3",class:"field-description"},n("slot",{key:"b25d944acc695145a7aac0df0e0ea9ba229c950d",name:"description"})),n("div",{key:"e620012a73cffa6e7e555d43f48c3f2dddf0e84b",class:"field-error"},n("slot",{key:"e09a83a71f180f74e981333f9516c6652e8e1751",name:"error"}))))}get el(){return s(this)}};r.style='/**\n * SekiUI Design Tokens - Index\n * Aggregates all design token files into a single entry point\n *\n * Import this file to get access to all design tokens:\n * @import \'../tokens/index.css\';\n */\n\n/**\n * SekiUI Design Tokens - Colors\n * Based on shadcn/ui color system\n */\n\n/* =============================================================================\n PRIMITIVE COLOR TOKENS (Layer 1: Raw Values)\n ============================================================================= */\n\n:host {\n /* Neutral Scale (50-950) - shadcn/ui inspired */\n --seki-neutral-50: hsl(0, 0%, 98%);\n --seki-neutral-100: hsl(0, 0%, 96.1%);\n --seki-neutral-200: hsl(0, 0%, 89.8%);\n --seki-neutral-300: hsl(0, 0%, 83.1%);\n --seki-neutral-400: hsl(0, 0%, 63.9%);\n --seki-neutral-500: hsl(0, 0%, 45.1%);\n --seki-neutral-600: hsl(0, 0%, 32.2%);\n --seki-neutral-700: hsl(0, 0%, 25.1%);\n --seki-neutral-800: hsl(0, 0%, 14.9%);\n --seki-neutral-900: hsl(0, 0%, 9%);\n --seki-neutral-950: hsl(0, 0%, 3.9%);\n\n /* Primary/Accent Scale (50-950) */\n --seki-primary-50: hsl(210, 100%, 97%);\n --seki-primary-100: hsl(210, 95%, 93%);\n --seki-primary-200: hsl(210, 95%, 85%);\n --seki-primary-300: hsl(210, 90%, 73%);\n --seki-primary-400: hsl(210, 85%, 58%);\n --seki-primary-500: hsl(210, 80%, 48%);\n --seki-primary-600: hsl(210, 75%, 40%);\n --seki-primary-700: hsl(210, 70%, 32%);\n --seki-primary-800: hsl(210, 65%, 25%);\n --seki-primary-900: hsl(210, 60%, 18%);\n --seki-primary-950: hsl(210, 55%, 10%);\n\n /* Semantic Color Primitives */\n --seki-success-500: hsl(142, 71%, 45%);\n --seki-success-600: hsl(142, 71%, 35%);\n --seki-warning-500: hsl(38, 92%, 50%);\n --seki-warning-600: hsl(38, 92%, 40%);\n --seki-destructive-500: hsl(0, 84.2%, 60.2%);\n --seki-destructive-600: hsl(0, 72%, 41%);\n}\n\n/* =============================================================================\n SEMANTIC TOKENS (Layer 2: shadcn/ui Style)\n ============================================================================= */\n\n:host {\n /* Base */\n --seki-background: hsl(0, 0%, 100%);\n --seki-foreground: hsl(0, 0%, 3.9%);\n\n /* Muted */\n --seki-muted: hsl(0, 0%, 96.1%);\n --seki-muted-foreground: hsl(0, 0%, 45.1%);\n\n /* Card */\n --seki-card: hsl(0, 0%, 100%);\n --seki-card-foreground: hsl(0, 0%, 3.9%);\n\n /* Popover */\n --seki-popover: hsl(0, 0%, 100%);\n --seki-popover-foreground: hsl(0, 0%, 3.9%);\n\n /* Border */\n --seki-border: hsl(0, 0%, 89.8%);\n --seki-input: hsl(0, 0%, 89.8%);\n\n /* Primary */\n --seki-primary: hsl(0, 0%, 9%);\n --seki-primary-foreground: hsl(0, 0%, 98%);\n\n /* Secondary */\n --seki-secondary: hsl(0, 0%, 96.1%);\n --seki-secondary-foreground: hsl(0, 0%, 9%);\n\n /* Accent */\n --seki-accent: hsl(0, 0%, 96.1%);\n --seki-accent-foreground: hsl(0, 0%, 9%);\n\n /* Destructive */\n --seki-destructive: hsl(0, 84.2%, 60.2%);\n --seki-destructive-foreground: hsl(0, 0%, 98%);\n\n /* Ring */\n --seki-ring: hsl(0, 0%, 3.9%);\n\n /* Legacy aliases for backward compatibility */\n --seki-bg-primary: var(--seki-background);\n --seki-bg-secondary: var(--seki-muted);\n --seki-bg-tertiary: var(--seki-accent);\n --seki-text-primary: var(--seki-foreground);\n --seki-text-secondary: var(--seki-muted-foreground);\n --seki-text-tertiary: var(--seki-neutral-400);\n --seki-border-default: var(--seki-border);\n --seki-border-emphasis: var(--seki-neutral-300);\n}\n\n/* Dark Mode Semantic Tokens */\n:host([data-theme=\'dark\']) {\n /* Base */\n --seki-background: hsl(0, 0%, 3.9%);\n --seki-foreground: hsl(0, 0%, 98%);\n\n /* Muted */\n --seki-muted: hsl(0, 0%, 14.9%);\n --seki-muted-foreground: hsl(0, 0%, 63.9%);\n\n /* Card */\n --seki-card: hsl(0, 0%, 3.9%);\n --seki-card-foreground: hsl(0, 0%, 98%);\n\n /* Popover */\n --seki-popover: hsl(0, 0%, 3.9%);\n --seki-popover-foreground: hsl(0, 0%, 98%);\n\n /* Border */\n --seki-border: hsl(0, 0%, 14.9%);\n --seki-input: hsl(0, 0%, 14.9%);\n\n /* Primary */\n --seki-primary: hsl(0, 0%, 98%);\n --seki-primary-foreground: hsl(0, 0%, 9%);\n\n /* Secondary */\n --seki-secondary: hsl(0, 0%, 14.9%);\n --seki-secondary-foreground: hsl(0, 0%, 98%);\n\n /* Accent */\n --seki-accent: hsl(0, 0%, 14.9%);\n --seki-accent-foreground: hsl(0, 0%, 98%);\n\n /* Destructive */\n --seki-destructive: hsl(0, 62.8%, 30.6%);\n --seki-destructive-foreground: hsl(0, 0%, 98%);\n\n /* Ring */\n --seki-ring: hsl(0, 0%, 83.1%);\n\n /* Legacy aliases for backward compatibility */\n --seki-bg-primary: var(--seki-background);\n --seki-bg-secondary: var(--seki-muted);\n --seki-bg-tertiary: var(--seki-accent);\n --seki-text-primary: var(--seki-foreground);\n --seki-text-secondary: var(--seki-muted-foreground);\n --seki-text-tertiary: var(--seki-neutral-600);\n --seki-border-default: var(--seki-border);\n --seki-border-emphasis: var(--seki-neutral-700);\n\n /* Button overrides for dark mode */\n --seki-button-primary-hover-bg: hsl(0, 0%, 98%, 0.9);\n --seki-button-secondary-hover-bg: hsl(0, 0%, 14.9%, 0.8);\n}\n\n/* =============================================================================\n COMPONENT TOKENS (Layer 3: Button-Specific - shadcn/ui Style)\n ============================================================================= */\n\n:host {\n /* Button Variant: Primary (default in shadcn/ui) */\n --seki-button-primary-bg: var(--seki-primary);\n --seki-button-primary-text: var(--seki-primary-foreground);\n --seki-button-primary-border: transparent;\n --seki-button-primary-hover-bg: hsl(0, 0%, 9%, 0.9);\n --seki-button-primary-hover-text: var(--seki-primary-foreground);\n --seki-button-primary-hover-border: transparent;\n\n /* Button Variant: Secondary */\n --seki-button-secondary-bg: var(--seki-secondary);\n --seki-button-secondary-text: var(--seki-secondary-foreground);\n --seki-button-secondary-border: transparent;\n --seki-button-secondary-hover-bg: hsl(0, 0%, 96.1%, 0.8);\n --seki-button-secondary-hover-text: var(--seki-secondary-foreground);\n --seki-button-secondary-hover-border: transparent;\n\n /* Button Variant: Outline */\n --seki-button-outline-bg: transparent;\n --seki-button-outline-text: var(--seki-foreground);\n --seki-button-outline-border: var(--seki-input);\n --seki-button-outline-hover-bg: var(--seki-accent);\n --seki-button-outline-hover-text: var(--seki-accent-foreground);\n --seki-button-outline-hover-border: var(--seki-input);\n\n /* Button Variant: Ghost */\n --seki-button-ghost-bg: transparent;\n --seki-button-ghost-text: var(--seki-foreground);\n --seki-button-ghost-border: transparent;\n --seki-button-ghost-hover-bg: var(--seki-accent);\n --seki-button-ghost-hover-text: var(--seki-accent-foreground);\n --seki-button-ghost-hover-border: transparent;\n\n /* Button Variant: Destructive */\n --seki-button-destructive-bg: var(--seki-destructive);\n --seki-button-destructive-text: var(--seki-destructive-foreground);\n --seki-button-destructive-border: transparent;\n --seki-button-destructive-hover-bg: hsl(0, 84.2%, 60.2%, 0.9);\n --seki-button-destructive-hover-border: transparent;\n\n /* Button Sizing: Small */\n --seki-button-sm-padding-x: var(--seki-spacing-3, 0.75rem);\n --seki-button-sm-padding-y: 0.375rem;\n --seki-button-sm-font-size: var(--seki-text-sm, 0.875rem);\n --seki-button-sm-height: 2.25rem; /* Updated from 2rem to match shadcn (36px) */\n\n /* Button Sizing: Medium (default) */\n --seki-button-md-padding-x: var(--seki-spacing-4, 1rem);\n --seki-button-md-padding-y: var(--seki-spacing-2, 0.5rem);\n --seki-button-md-font-size: var(--seki-text-base, 1rem);\n --seki-button-md-height: 2.5rem;\n\n /* Button Sizing: Large */\n --seki-button-lg-padding-x: 2rem; /* Updated from 1.25rem to match shadcn */\n --seki-button-lg-padding-y: 0.5rem;\n --seki-button-lg-font-size: 1rem; /* Updated from 1.125rem to match shadcn */\n --seki-button-lg-height: 2.75rem; /* Updated from 3rem to match shadcn (44px) */\n\n /* Button Sizing: Icon-only (NEW - shadcn compatibility) */\n --seki-button-icon-sm-size: 2rem; /* 32x32px square */\n --seki-button-icon-size: 2.5rem; /* 40x40px square */\n --seki-button-icon-lg-size: 3rem; /* 48x48px square */\n --seki-button-icon-gap: 0.5rem; /* 8px gap between icon and text */\n\n /* Button Variant: Link (NEW - shadcn compatibility) */\n --seki-button-link-bg: transparent;\n --seki-button-link-text: var(--seki-primary);\n --seki-button-link-border: transparent;\n --seki-button-link-hover-bg: transparent;\n --seki-button-link-hover-text: var(--seki-primary);\n --seki-button-link-hover-border: transparent;\n\n /* Button Common */\n --seki-button-radius: var(--seki-radius-md, 0.375rem);\n --seki-button-font-weight: var(--seki-font-medium, 500);\n --seki-button-transition-duration: 150ms;\n --seki-button-transition-timing: ease-in-out;\n --seki-button-shadow: var(--seki-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));\n --seki-button-shadow-hover: var(--seki-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));\n --seki-button-disabled-opacity: 0.5;\n\n /* Input Component Colors */\n --seki-input-bg: var(--seki-background);\n --seki-input-border: var(--seki-border);\n --seki-input-text: var(--seki-foreground);\n --seki-input-placeholder: var(--seki-muted-foreground);\n --seki-input-ring: var(--seki-ring);\n --seki-input-invalid-border: var(--seki-destructive);\n --seki-input-invalid-ring: var(--seki-destructive);\n --seki-input-disabled-opacity: 0.5;\n --seki-input-radius: var(--seki-radius-md);\n --seki-input-ring-offset: 2px;\n\n /* Select Component Colors */\n --seki-select-trigger-bg: var(--seki-background);\n --seki-select-trigger-border: 1px solid var(--seki-border);\n --seki-select-trigger-bg-hover: var(--seki-muted);\n --seki-select-trigger-radius: var(--seki-radius-md);\n --seki-select-trigger-min-height: 2.5rem;\n --seki-select-trigger-padding: 0.5rem 0.75rem;\n --seki-select-trigger-gap: 0.5rem;\n\n /* Select Content/Dropdown */\n --seki-select-content-bg: var(--seki-popover);\n --seki-select-content-border: 1px solid var(--seki-border);\n --seki-select-content-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);\n --seki-select-content-radius: var(--seki-radius-md);\n --seki-select-content-padding: 0.5rem 0;\n\n /* Select Option */\n --seki-select-option-padding: 0.5rem 0.75rem;\n --seki-select-option-gap: 0.5rem;\n --seki-select-option-radius: var(--seki-radius-sm);\n --seki-select-option-bg-hover: var(--seki-muted);\n --seki-select-option-bg-selected: var(--seki-muted);\n\n /* Select Group */\n --seki-select-group-label-padding: 0.5rem 0.75rem;\n --seki-select-group-label-font-size: var(--seki-font-size-xs);\n --seki-select-group-label-font-weight: var(--seki-font-semibold);\n --seki-select-group-label-color: var(--seki-muted-foreground);\n --seki-select-group-separator: 1px solid var(--seki-border);\n}\n\n/**\n * SekiUI Design Tokens - Spacing\n * 4px base unit, rem-based scale\n */\n\n:host {\n /* Spacing Scale (4px base unit) */\n --seki-spacing-0: 0;\n --seki-spacing-0-5: 0.125rem; /* 2px */\n --seki-spacing-1: 0.25rem; /* 4px */\n --seki-spacing-1-5: 0.375rem; /* 6px */\n --seki-spacing-2: 0.5rem; /* 8px */\n --seki-spacing-2-5: 0.625rem; /* 10px */\n --seki-spacing-3: 0.75rem; /* 12px */\n --seki-spacing-3-5: 0.875rem; /* 14px */\n --seki-spacing-4: 1rem; /* 16px */\n --seki-spacing-5: 1.25rem; /* 20px */\n --seki-spacing-6: 1.5rem; /* 24px */\n --seki-spacing-8: 2rem; /* 32px */\n --seki-spacing-10: 2.5rem; /* 40px */\n --seki-spacing-12: 3rem; /* 48px */\n --seki-spacing-16: 4rem; /* 64px */\n --seki-spacing-20: 5rem; /* 80px */\n --seki-spacing-24: 6rem; /* 96px */\n\n /* Input Component Tokens */\n --seki-input-height-sm: 2rem; /* 32px */\n --seki-input-height-md: 2.5rem; /* 40px - default */\n --seki-input-height-lg: 3rem; /* 48px */\n --seki-input-padding-x: 0.75rem; /* 12px */\n --seki-input-padding-y: 0.5rem; /* 8px */\n --seki-input-font-size: 0.875rem; /* 14px */\n --seki-input-ring-offset: 2px;\n}\n\n/**\n * SekiUI Design Tokens - Shadows\n * Subtle elevation system\n */\n\n:host {\n /* Shadow Levels */\n --seki-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --seki-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --seki-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.15), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n\n/**\n * SekiUI Design Tokens - Typography\n * System font stacks, sizes, weights, line heights\n */\n\n:host {\n /* Font Families */\n --seki-font-sans: -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, \'Helvetica Neue\',\n Arial, sans-serif;\n --seki-font-mono: ui-monospace, SFMono-Regular, \'SF Mono\', Menlo, Consolas, monospace;\n\n /* Font Sizes (rem-based) */\n --seki-text-xs: 0.75rem; /* 12px */\n --seki-text-sm: 0.875rem; /* 14px */\n --seki-text-base: 1rem; /* 16px */\n --seki-text-lg: 1.125rem; /* 18px */\n --seki-text-xl: 1.25rem; /* 20px */\n --seki-text-2xl: 1.5rem; /* 24px */\n --seki-text-3xl: 1.875rem; /* 30px */\n --seki-text-4xl: 2.25rem; /* 36px */\n\n /* Font Weights */\n --seki-font-normal: 400;\n --seki-font-medium: 500;\n --seki-font-semibold: 600;\n --seki-font-bold: 700;\n\n /* Line Heights */\n --seki-leading-tight: 1.25;\n --seki-leading-normal: 1.5;\n --seki-leading-relaxed: 1.75;\n}\n\n/**\n * SekiUI Design Tokens - Border Radius\n * Four-level radius system\n */\n\n:host {\n /* Border Radius Levels */\n --seki-radius-sm: 0.25rem; /* 4px */\n --seki-radius-md: 0.375rem; /* 6px */\n --seki-radius-lg: 0.5rem; /* 8px */\n --seki-radius-xl: 1rem; /* 16px */\n}\n\n\n\n:host {\n display: block;\n}\n\n.field {\n display: grid;\n gap: var(--seki-field-spacing, 0.5rem);\n}\n\n/* Vertical orientation (default) */\n:host([data-orientation="vertical"]) .field {\n grid-template-columns: 1fr;\n grid-template-areas:\n "label"\n "control"\n "description"\n "error";\n}\n\n/* Horizontal orientation */\n:host([data-orientation="horizontal"]) .field {\n grid-template-columns: auto 1fr;\n grid-template-areas:\n "label control"\n "description description"\n "error error";\n gap: var(--seki-field-gap-horizontal, 1rem) var(--seki-field-spacing, 0.5rem);\n align-items: start;\n}\n\n:host([data-orientation="horizontal"]) .field-label {\n padding-top: 0.25rem; /* Align with input */\n}\n\n/* Responsive orientation - uses container queries */\n:host([data-orientation="responsive"]) .field {\n container-type: inline-size;\n grid-template-columns: 1fr;\n grid-template-areas:\n "label"\n "control"\n "description"\n "error";\n}\n\n@container (min-width: 600px) {\n :host([data-orientation="responsive"]) .field {\n grid-template-columns: auto 1fr;\n grid-template-areas:\n "label control"\n "description description"\n "error error";\n gap: var(--seki-field-gap-horizontal, 1rem) var(--seki-field-spacing, 0.5rem);\n }\n\n :host([data-orientation="responsive"]) .field-label {\n padding-top: 0.25rem;\n }\n}\n\n/* Grid areas */\n.field-label {\n grid-area: label;\n}\n\n.field-control {\n grid-area: control;\n}\n\n.field-description {\n grid-area: description;\n}\n\n.field-error {\n grid-area: error;\n}\n\n/* Hide empty slots */\n.field-label:empty,\n.field-description:empty,\n.field-error:empty {\n display: none;\n}\n\n/* Invalid state styling */\n:host([data-invalid]) .field {\n /* Visual indicator for invalid state (handled by individual components) */\n}\n\n/* Reduced motion */\n@media (prefers-reduced-motion: reduce) {\n .field {\n transition: none;\n }\n}\n';export{r as seki_field}
1
+ import{r as e,h as n,H as i,a as s}from"./p-DI_YjzRi.js";const r=class{constructor(n){e(this,n),this.orientation="vertical",this.invalid=!1}hasMultipleControls(){const e=this.el.querySelectorAll(":not([slot])");return Array.from(e).filter((e=>{if(e.nodeType!==Node.ELEMENT_NODE)return!1;const n=e.tagName.toLowerCase();return["input","select","textarea","button"].includes(n)||n.startsWith("seki-")})).length>1}render(){const e=this.hasMultipleControls();return n(i,{key:"4d4811ebe41e0ac3103d3c2e6057679556d9ea8f","data-orientation":this.orientation,"data-invalid":this.invalid?"":void 0,role:e?"group":void 0},n("div",{key:"de3078e15975b74d5daf8a898906eac941859a28",class:"field"},n("div",{key:"654fa59185f2e28a41ac17b41f3bccbeeddeaeeb",class:"field-label"},n("slot",{key:"0e5d795106bcbd6741894d384c2458bd5835c9f2",name:"label"})),n("div",{key:"9389fbfe76438bfc9de827608369463415cfe813",class:"field-control"},n("slot",{key:"df767c630d1c5d74a70e602106280af19359becd"})),n("div",{key:"9c1f633ffd2baddfc3a35218a2c6556bdc2408e3",class:"field-description"},n("slot",{key:"b25d944acc695145a7aac0df0e0ea9ba229c950d",name:"description"})),n("div",{key:"e620012a73cffa6e7e555d43f48c3f2dddf0e84b",class:"field-error"},n("slot",{key:"e09a83a71f180f74e981333f9516c6652e8e1751",name:"error"}))))}get el(){return s(this)}};r.style='/**\n * SekiUI Design Tokens - Index\n * Aggregates all design token files into a single entry point\n *\n * Import this file to get access to all design tokens:\n * @import \'../tokens/index.css\';\n */\n\n/**\n * SekiUI Design Tokens - Colors\n * Based on shadcn/ui color system\n */\n\n/* =============================================================================\n PRIMITIVE COLOR TOKENS (Layer 1: Raw Values)\n ============================================================================= */\n\n:host {\n /* Neutral Scale (50-950) - shadcn/ui inspired */\n --seki-neutral-50: hsl(0, 0%, 98%);\n --seki-neutral-100: hsl(0, 0%, 96.1%);\n --seki-neutral-200: hsl(0, 0%, 89.8%);\n --seki-neutral-300: hsl(0, 0%, 83.1%);\n --seki-neutral-400: hsl(0, 0%, 63.9%);\n --seki-neutral-500: hsl(0, 0%, 45.1%);\n --seki-neutral-600: hsl(0, 0%, 32.2%);\n --seki-neutral-700: hsl(0, 0%, 25.1%);\n --seki-neutral-800: hsl(0, 0%, 14.9%);\n --seki-neutral-900: hsl(0, 0%, 9%);\n --seki-neutral-950: hsl(0, 0%, 3.9%);\n\n /* Primary/Accent Scale (50-950) */\n --seki-primary-50: hsl(210, 100%, 97%);\n --seki-primary-100: hsl(210, 95%, 93%);\n --seki-primary-200: hsl(210, 95%, 85%);\n --seki-primary-300: hsl(210, 90%, 73%);\n --seki-primary-400: hsl(210, 85%, 58%);\n --seki-primary-500: hsl(210, 80%, 48%);\n --seki-primary-600: hsl(210, 75%, 40%);\n --seki-primary-700: hsl(210, 70%, 32%);\n --seki-primary-800: hsl(210, 65%, 25%);\n --seki-primary-900: hsl(210, 60%, 18%);\n --seki-primary-950: hsl(210, 55%, 10%);\n\n /* Semantic Color Primitives */\n --seki-success-500: hsl(142, 71%, 45%);\n --seki-success-600: hsl(142, 71%, 35%);\n --seki-warning-500: hsl(38, 92%, 50%);\n --seki-warning-600: hsl(38, 92%, 40%);\n --seki-destructive-500: hsl(0, 84.2%, 60.2%);\n --seki-destructive-600: hsl(0, 72%, 41%);\n}\n\n/* =============================================================================\n SEMANTIC TOKENS (Layer 2: shadcn/ui Style)\n ============================================================================= */\n\n:host {\n /* Base */\n --seki-background: hsl(0, 0%, 100%);\n --seki-foreground: hsl(0, 0%, 3.9%);\n\n /* Muted */\n --seki-muted: hsl(0, 0%, 96.1%);\n --seki-muted-foreground: hsl(0, 0%, 45.1%);\n\n /* Card */\n --seki-card: hsl(0, 0%, 100%);\n --seki-card-foreground: hsl(0, 0%, 3.9%);\n\n /* Popover */\n --seki-popover: hsl(0, 0%, 100%);\n --seki-popover-foreground: hsl(0, 0%, 3.9%);\n\n /* Border */\n --seki-border: hsl(0, 0%, 89.8%);\n --seki-input: hsl(0, 0%, 89.8%);\n\n /* Primary */\n --seki-primary: hsl(0, 0%, 9%);\n --seki-primary-foreground: hsl(0, 0%, 98%);\n\n /* Secondary */\n --seki-secondary: hsl(0, 0%, 96.1%);\n --seki-secondary-foreground: hsl(0, 0%, 9%);\n\n /* Accent */\n --seki-accent: hsl(0, 0%, 96.1%);\n --seki-accent-foreground: hsl(0, 0%, 9%);\n\n /* Destructive */\n --seki-destructive: hsl(0, 84.2%, 60.2%);\n --seki-destructive-foreground: hsl(0, 0%, 98%);\n\n /* Ring */\n --seki-ring: hsl(0, 0%, 3.9%);\n\n /* Legacy aliases for backward compatibility */\n --seki-bg-primary: var(--seki-background);\n --seki-bg-secondary: var(--seki-muted);\n --seki-bg-tertiary: var(--seki-accent);\n --seki-text-primary: var(--seki-foreground);\n --seki-text-secondary: var(--seki-muted-foreground);\n --seki-text-tertiary: var(--seki-neutral-400);\n --seki-border-default: var(--seki-border);\n --seki-border-emphasis: var(--seki-neutral-300);\n}\n\n/* Dark Mode Semantic Tokens */\n:host([data-theme=\'dark\']) {\n /* Base */\n --seki-background: hsl(0, 0%, 3.9%);\n --seki-foreground: hsl(0, 0%, 98%);\n\n /* Muted */\n --seki-muted: hsl(0, 0%, 14.9%);\n --seki-muted-foreground: hsl(0, 0%, 63.9%);\n\n /* Card */\n --seki-card: hsl(0, 0%, 3.9%);\n --seki-card-foreground: hsl(0, 0%, 98%);\n\n /* Popover */\n --seki-popover: hsl(0, 0%, 3.9%);\n --seki-popover-foreground: hsl(0, 0%, 98%);\n\n /* Border */\n --seki-border: hsl(0, 0%, 14.9%);\n --seki-input: hsl(0, 0%, 14.9%);\n\n /* Primary */\n --seki-primary: hsl(0, 0%, 98%);\n --seki-primary-foreground: hsl(0, 0%, 9%);\n\n /* Secondary */\n --seki-secondary: hsl(0, 0%, 14.9%);\n --seki-secondary-foreground: hsl(0, 0%, 98%);\n\n /* Accent */\n --seki-accent: hsl(0, 0%, 14.9%);\n --seki-accent-foreground: hsl(0, 0%, 98%);\n\n /* Destructive */\n --seki-destructive: hsl(0, 62.8%, 30.6%);\n --seki-destructive-foreground: hsl(0, 0%, 98%);\n\n /* Ring */\n --seki-ring: hsl(0, 0%, 83.1%);\n\n /* Legacy aliases for backward compatibility */\n --seki-bg-primary: var(--seki-background);\n --seki-bg-secondary: var(--seki-muted);\n --seki-bg-tertiary: var(--seki-accent);\n --seki-text-primary: var(--seki-foreground);\n --seki-text-secondary: var(--seki-muted-foreground);\n --seki-text-tertiary: var(--seki-neutral-600);\n --seki-border-default: var(--seki-border);\n --seki-border-emphasis: var(--seki-neutral-700);\n\n /* Button overrides for dark mode */\n --seki-button-primary-hover-bg: hsl(0, 0%, 98%, 0.9);\n --seki-button-secondary-hover-bg: hsl(0, 0%, 14.9%, 0.8);\n}\n\n/* =============================================================================\n COMPONENT TOKENS (Layer 3: Button-Specific - shadcn/ui Style)\n ============================================================================= */\n\n:host {\n /* Button Variant: Primary (default in shadcn/ui) */\n --seki-button-primary-bg: var(--seki-primary);\n --seki-button-primary-text: var(--seki-primary-foreground);\n --seki-button-primary-border: transparent;\n --seki-button-primary-hover-bg: hsl(0, 0%, 9%, 0.9);\n --seki-button-primary-hover-text: var(--seki-primary-foreground);\n --seki-button-primary-hover-border: transparent;\n\n /* Button Variant: Secondary */\n --seki-button-secondary-bg: var(--seki-secondary);\n --seki-button-secondary-text: var(--seki-secondary-foreground);\n --seki-button-secondary-border: transparent;\n --seki-button-secondary-hover-bg: hsl(0, 0%, 96.1%, 0.8);\n --seki-button-secondary-hover-text: var(--seki-secondary-foreground);\n --seki-button-secondary-hover-border: transparent;\n\n /* Button Variant: Outline */\n --seki-button-outline-bg: transparent;\n --seki-button-outline-text: var(--seki-foreground);\n --seki-button-outline-border: var(--seki-input);\n --seki-button-outline-hover-bg: var(--seki-accent);\n --seki-button-outline-hover-text: var(--seki-accent-foreground);\n --seki-button-outline-hover-border: var(--seki-input);\n\n /* Button Variant: Ghost */\n --seki-button-ghost-bg: transparent;\n --seki-button-ghost-text: var(--seki-foreground);\n --seki-button-ghost-border: transparent;\n --seki-button-ghost-hover-bg: var(--seki-accent);\n --seki-button-ghost-hover-text: var(--seki-accent-foreground);\n --seki-button-ghost-hover-border: transparent;\n\n /* Button Variant: Destructive */\n --seki-button-destructive-bg: var(--seki-destructive);\n --seki-button-destructive-text: var(--seki-destructive-foreground);\n --seki-button-destructive-border: transparent;\n --seki-button-destructive-hover-bg: hsl(0, 84.2%, 60.2%, 0.9);\n --seki-button-destructive-hover-border: transparent;\n\n /* Button Sizing: Small */\n --seki-button-sm-padding-x: var(--seki-spacing-3, 0.75rem);\n --seki-button-sm-padding-y: 0.375rem;\n --seki-button-sm-font-size: var(--seki-text-sm, 0.875rem);\n --seki-button-sm-height: 2.25rem; /* Updated from 2rem to match shadcn (36px) */\n\n /* Button Sizing: Medium (default) */\n --seki-button-md-padding-x: var(--seki-spacing-4, 1rem);\n --seki-button-md-padding-y: var(--seki-spacing-2, 0.5rem);\n --seki-button-md-font-size: var(--seki-text-base, 1rem);\n --seki-button-md-height: 2.5rem;\n\n /* Button Sizing: Large */\n --seki-button-lg-padding-x: 2rem; /* Updated from 1.25rem to match shadcn */\n --seki-button-lg-padding-y: 0.5rem;\n --seki-button-lg-font-size: 1rem; /* Updated from 1.125rem to match shadcn */\n --seki-button-lg-height: 2.75rem; /* Updated from 3rem to match shadcn (44px) */\n\n /* Button Sizing: Icon-only (NEW - shadcn compatibility) */\n --seki-button-icon-sm-size: 2rem; /* 32x32px square */\n --seki-button-icon-size: 2.5rem; /* 40x40px square */\n --seki-button-icon-lg-size: 3rem; /* 48x48px square */\n --seki-button-icon-gap: 0.5rem; /* 8px gap between icon and text */\n\n /* Button Variant: Link (NEW - shadcn compatibility) */\n --seki-button-link-bg: transparent;\n --seki-button-link-text: var(--seki-primary);\n --seki-button-link-border: transparent;\n --seki-button-link-hover-bg: transparent;\n --seki-button-link-hover-text: var(--seki-primary);\n --seki-button-link-hover-border: transparent;\n\n /* Button Common */\n --seki-button-radius: var(--seki-radius-md, 0.375rem);\n --seki-button-font-weight: var(--seki-font-medium, 500);\n --seki-button-transition-duration: 150ms;\n --seki-button-transition-timing: ease-in-out;\n --seki-button-shadow: var(--seki-shadow-sm, 0 1px 2px 0 rgb(0 0 0 / 0.05));\n --seki-button-shadow-hover: var(--seki-shadow-md, 0 4px 6px -1px rgb(0 0 0 / 0.1));\n --seki-button-disabled-opacity: 0.5;\n\n /* Input Component Colors */\n --seki-input-bg: var(--seki-background);\n --seki-input-border: var(--seki-border);\n --seki-input-text: var(--seki-foreground);\n --seki-input-placeholder: var(--seki-muted-foreground);\n --seki-input-ring: var(--seki-ring);\n --seki-input-invalid-border: var(--seki-destructive);\n --seki-input-invalid-ring: var(--seki-destructive);\n --seki-input-disabled-opacity: 0.5;\n --seki-input-radius: var(--seki-radius-md);\n --seki-input-ring-offset: 2px;\n\n /* Select Component Colors */\n --seki-select-trigger-bg: var(--seki-background);\n --seki-select-trigger-border: 1px solid var(--seki-border);\n --seki-select-trigger-bg-hover: var(--seki-muted);\n --seki-select-trigger-radius: var(--seki-radius-md);\n --seki-select-trigger-min-height: 2.5rem;\n --seki-select-trigger-padding: 0.5rem 0.75rem;\n --seki-select-trigger-gap: 0.5rem;\n\n /* Select Content/Dropdown */\n --seki-select-content-bg: var(--seki-popover);\n --seki-select-content-border: 1px solid var(--seki-border);\n --seki-select-content-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1);\n --seki-select-content-radius: var(--seki-radius-md);\n --seki-select-content-padding: 0.5rem 0;\n\n /* Select Option */\n --seki-select-option-padding: 0.5rem 0.75rem;\n --seki-select-option-gap: 0.5rem;\n --seki-select-option-radius: var(--seki-radius-sm);\n --seki-select-option-bg-hover: var(--seki-muted);\n --seki-select-option-bg-selected: var(--seki-muted);\n\n /* Select Group */\n --seki-select-group-label-padding: 0.5rem 0.75rem;\n --seki-select-group-label-font-size: var(--seki-font-size-xs);\n --seki-select-group-label-font-weight: var(--seki-font-semibold);\n --seki-select-group-label-color: var(--seki-muted-foreground);\n --seki-select-group-separator: 1px solid var(--seki-border);\n}\n\n/**\n * SekiUI Design Tokens - Spacing\n * 4px base unit, rem-based scale\n */\n\n:host {\n /* Spacing Scale (4px base unit) */\n --seki-spacing-0: 0;\n --seki-spacing-0-5: 0.125rem; /* 2px */\n --seki-spacing-1: 0.25rem; /* 4px */\n --seki-spacing-1-5: 0.375rem; /* 6px */\n --seki-spacing-2: 0.5rem; /* 8px */\n --seki-spacing-2-5: 0.625rem; /* 10px */\n --seki-spacing-3: 0.75rem; /* 12px */\n --seki-spacing-3-5: 0.875rem; /* 14px */\n --seki-spacing-4: 1rem; /* 16px */\n --seki-spacing-5: 1.25rem; /* 20px */\n --seki-spacing-6: 1.5rem; /* 24px */\n --seki-spacing-8: 2rem; /* 32px */\n --seki-spacing-10: 2.5rem; /* 40px */\n --seki-spacing-12: 3rem; /* 48px */\n --seki-spacing-16: 4rem; /* 64px */\n --seki-spacing-20: 5rem; /* 80px */\n --seki-spacing-24: 6rem; /* 96px */\n\n /* Input Component Tokens */\n --seki-input-height-sm: 2rem; /* 32px */\n --seki-input-height-md: 2.5rem; /* 40px - default */\n --seki-input-height-lg: 3rem; /* 48px */\n --seki-input-padding-x: 0.75rem; /* 12px */\n --seki-input-padding-y: 0.5rem; /* 8px */\n --seki-input-font-size: 0.875rem; /* 14px */\n --seki-input-ring-offset: 2px;\n}\n\n/**\n * SekiUI Design Tokens - Shadows\n * Subtle elevation system\n */\n\n:host {\n /* Shadow Levels */\n --seki-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);\n --seki-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);\n --seki-shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.15), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n}\n\n/**\n * SekiUI Design Tokens - Typography\n * System font stacks, sizes, weights, line heights\n */\n\n:host {\n /* Font Families */\n --seki-font-sans: -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, \'Helvetica Neue\',\n Arial, sans-serif;\n --seki-font-mono: ui-monospace, SFMono-Regular, \'SF Mono\', Menlo, Consolas, monospace;\n\n /* Font Sizes (rem-based) */\n --seki-text-xs: 0.75rem; /* 12px */\n --seki-text-sm: 0.875rem; /* 14px */\n --seki-text-base: 1rem; /* 16px */\n --seki-text-lg: 1.125rem; /* 18px */\n --seki-text-xl: 1.25rem; /* 20px */\n --seki-text-2xl: 1.5rem; /* 24px */\n --seki-text-3xl: 1.875rem; /* 30px */\n --seki-text-4xl: 2.25rem; /* 36px */\n\n /* Font Weights */\n --seki-font-normal: 400;\n --seki-font-medium: 500;\n --seki-font-semibold: 600;\n --seki-font-bold: 700;\n\n /* Line Heights */\n --seki-leading-tight: 1.25;\n --seki-leading-normal: 1.5;\n --seki-leading-relaxed: 1.75;\n}\n\n/**\n * SekiUI Design Tokens - Border Radius\n * Four-level radius system\n */\n\n:host {\n /* Border Radius Levels */\n --seki-radius-sm: 0.25rem; /* 4px */\n --seki-radius-md: 0.375rem; /* 6px */\n --seki-radius-lg: 0.5rem; /* 8px */\n --seki-radius-xl: 1rem; /* 16px */\n}\n\n\n\n:host {\n display: block;\n}\n\n.field {\n display: grid;\n gap: var(--seki-field-spacing, 0.5rem);\n}\n\n/* Vertical orientation (default) */\n:host([data-orientation="vertical"]) .field {\n grid-template-columns: 1fr;\n grid-template-areas:\n "label"\n "control"\n "description"\n "error";\n}\n\n/* Horizontal orientation */\n:host([data-orientation="horizontal"]) .field {\n grid-template-columns: auto 1fr;\n grid-template-areas:\n "label control"\n "description description"\n "error error";\n gap: var(--seki-field-gap-horizontal, 1rem) var(--seki-field-spacing, 0.5rem);\n align-items: start;\n}\n\n:host([data-orientation="horizontal"]) .field-label {\n padding-top: 0.25rem; /* Align with input */\n}\n\n/* Responsive orientation - uses container queries */\n:host([data-orientation="responsive"]) .field {\n container-type: inline-size;\n grid-template-columns: 1fr;\n grid-template-areas:\n "label"\n "control"\n "description"\n "error";\n}\n\n@container (min-width: 600px) {\n :host([data-orientation="responsive"]) .field {\n grid-template-columns: auto 1fr;\n grid-template-areas:\n "label control"\n "description description"\n "error error";\n gap: var(--seki-field-gap-horizontal, 1rem) var(--seki-field-spacing, 0.5rem);\n }\n\n :host([data-orientation="responsive"]) .field-label {\n padding-top: 0.25rem;\n }\n}\n\n/* Grid areas */\n.field-label {\n grid-area: label;\n}\n\n.field-control {\n grid-area: control;\n}\n\n.field-description {\n grid-area: description;\n}\n\n.field-error {\n grid-area: error;\n}\n\n/* Hide empty slots */\n.field-label:empty,\n.field-description:empty,\n.field-error:empty {\n display: none;\n}\n\n/* Invalid state styling */\n:host([data-invalid]) .field {\n /* Visual indicator for invalid state (handled by individual components) */\n}\n\n/* Reduced motion */\n@media (prefers-reduced-motion: reduce) {\n .field {\n transition: none;\n }\n}\n';export{r as seki_field}
@@ -1 +1 @@
1
- import{p as e,g as a,b as i}from"./p-Dfzpqq0a.js";export{s as setNonce}from"./p-Dfzpqq0a.js";(()=>{const a=import.meta.url,i={};return""!==a&&(i.resourcesUrl=new URL(".",a).href),e(i)})().then((async e=>(await a(),i([["p-b387a2a5",[[257,"seki-button",{variant:[1],size:[1],disabled:[4],type:[1],ariaLabel:[1,"aria-label"]}]]],["p-6164cd8a",[[257,"seki-card",{class:[1],dataTestid:[1,"data-testid"]}]]],["p-a1a71958",[[257,"seki-card-action",{class:[1]}]]],["p-c98b6d6a",[[257,"seki-card-content",{class:[1]}]]],["p-352bd295",[[257,"seki-card-description",{class:[1]}]]],["p-8d9a4878",[[257,"seki-card-footer",{alignment:[1],class:[1]}]]],["p-5bc0f5aa",[[257,"seki-card-header",{class:[1]}]]],["p-ff636955",[[257,"seki-card-title",{level:[1],class:[1]}]]],["p-743fc6d9",[[257,"seki-field",{orientation:[1],invalid:[4]}]]],["p-4636588f",[[257,"seki-field-description",{descriptorId:[1,"descriptor-id"],componentId:[32],getId:[64]}]]],["p-56f0d754",[[257,"seki-field-error",{errorId:[1,"error-id"],visible:[4],componentId:[32],previousVisible:[32],getId:[64],setVisible:[64]},null,{visible:["handleVisibleChange"]}]]],["p-d73cdb9a",[[257,"seki-field-group",{gap:[1]}]]],["p-635f4098",[[257,"seki-field-label",{htmlFor:[1,"html-for"],required:[4]}]]],["p-e7bb140c",[[257,"seki-field-legend"]]],["p-b365f5fb",[[257,"seki-fieldset",{disabled:[4]}]]],["p-042ec460",[[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"]}]]],["p-ae227955",[[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"]}]]],["p-eecc18f3",[[257,"seki-select-content",{forceUpdate:[32],scrollToOption:[64]}]]],["p-a71e0c55",[[257,"seki-select-group",{label:[1]}]]],["p-d96e770e",[[257,"seki-select-option",{value:[8],label:[1],disabled:[4]}]]],["p-44191aed",[[257,"seki-select-trigger",{forceUpdate:[32]}]]],["p-471b97a5",[[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"]}]]],["p-40fb71d6",[[262,"seki-sidebar-content"]]],["p-9f2d95d7",[[262,"seki-sidebar-footer"]]],["p-b8590f4d",[[262,"seki-sidebar-group",{title:[1],collapsible:[516],defaultCollapsed:[516,"default-collapsed"],action:[16],isCollapsed:[32],isCollapsedState:[64],setCollapsed:[64]}]]],["p-e62dd89b",[[262,"seki-sidebar-header"]]],["p-9cb9cdfe",[[262,"seki-sidebar-menu"]]],["p-83e65cbe",[[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"]}]]],["p-8b7bd061",[[262,"seki-sidebar-menu-sub",{label:[1],defaultCollapsed:[516,"default-collapsed"],isCollapsed:[32],isCollapsedState:[64],setCollapsed:[64]}]]],["p-01cfb4e7",[[257,"seki-sidebar-trigger",{ariaLabel:[1,"aria-label"],icon:[1],isOpen:[32]},[[16,"openChange","handleOpenChange"]]]]],["p-10c008fc",[[257,"seki-skeleton",{ariaLabel:[1,"aria-label"]}]]],["p-37c5f4d9",[[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"]]]]],["p-4423d621",[[257,"seki-tooltip",{delay:[2],side:[1],disabled:[4],offset:[2],isVisible:[32],currentPosition:[32],show:[64],hide:[64],updatePosition:[64]}]]]],e))));
1
+ import{p as e,g as a,b as i}from"./p-DI_YjzRi.js";export{s as setNonce}from"./p-DI_YjzRi.js";(()=>{const a=import.meta.url,i={};return""!==a&&(i.resourcesUrl=new URL(".",a).href),e(i)})().then((async e=>(await a(),i([["p-ab9d1ba5",[[257,"seki-badge",{variant:[1],rounded:[4],number:[2],max:[2]}]]],["p-40ba3ad6",[[257,"seki-button",{variant:[1],size:[1],disabled:[4],type:[1],ariaLabel:[1,"aria-label"]}]]],["p-e6d5f56e",[[257,"seki-card",{class:[1],dataTestid:[1,"data-testid"]}]]],["p-cf552ff9",[[257,"seki-card-action",{class:[1]}]]],["p-84d47cab",[[257,"seki-card-content",{class:[1]}]]],["p-b64e7007",[[257,"seki-card-description",{class:[1]}]]],["p-c642ab55",[[257,"seki-card-footer",{alignment:[1],class:[1]}]]],["p-6a922121",[[257,"seki-card-header",{class:[1]}]]],["p-6f5bf5af",[[257,"seki-card-title",{level:[1],class:[1]}]]],["p-f863f36b",[[257,"seki-field",{orientation:[1],invalid:[4]}]]],["p-68b1fa1a",[[257,"seki-field-description",{descriptorId:[1,"descriptor-id"],componentId:[32],getId:[64]}]]],["p-27deb555",[[257,"seki-field-error",{errorId:[1,"error-id"],visible:[4],componentId:[32],previousVisible:[32],getId:[64],setVisible:[64]},null,{visible:["handleVisibleChange"]}]]],["p-1685e673",[[257,"seki-field-group",{gap:[1]}]]],["p-dfa2f8cd",[[257,"seki-field-label",{htmlFor:[1,"html-for"],required:[4]}]]],["p-4867d02d",[[257,"seki-field-legend"]]],["p-1480b41a",[[257,"seki-fieldset",{disabled:[4]}]]],["p-f1ffc3fa",[[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"]}]]],["p-402a5db6",[[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"]}]]],["p-b7f2b568",[[257,"seki-select-content",{forceUpdate:[32],scrollToOption:[64]}]]],["p-161be4d4",[[257,"seki-select-group",{label:[1]}]]],["p-587fd313",[[257,"seki-select-option",{value:[8],label:[1],disabled:[4]}]]],["p-c74bd925",[[257,"seki-select-trigger",{forceUpdate:[32]}]]],["p-0ca6b9f0",[[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"]}]]],["p-9dcd07b2",[[262,"seki-sidebar-content"]]],["p-c83d94c4",[[262,"seki-sidebar-footer"]]],["p-37fa684c",[[262,"seki-sidebar-group",{title:[1],collapsible:[516],defaultCollapsed:[516,"default-collapsed"],action:[16],isCollapsed:[32],isCollapsedState:[64],setCollapsed:[64]}]]],["p-60ff3543",[[262,"seki-sidebar-header"]]],["p-b525d85a",[[262,"seki-sidebar-menu"]]],["p-26b629bc",[[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"]}]]],["p-4b29dbda",[[262,"seki-sidebar-menu-sub",{label:[1],defaultCollapsed:[516,"default-collapsed"],isCollapsed:[32],isCollapsedState:[64],setCollapsed:[64]}]]],["p-0af1b81a",[[257,"seki-sidebar-trigger",{ariaLabel:[1,"aria-label"],icon:[1],isOpen:[32]},[[16,"openChange","handleOpenChange"]]]]],["p-58ab95eb",[[257,"seki-skeleton",{ariaLabel:[1,"aria-label"]}]]],["p-ce1bbe04",[[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"]]]]],["p-d194caf1",[[257,"seki-tooltip",{delay:[2],side:[1],disabled:[4],offset:[2],isVisible:[32],currentPosition:[32],show:[64],hide:[64],updatePosition:[64]}]]]],e))));
@@ -0,0 +1,43 @@
1
+ import { BadgeVariant } from './seki-badge.interface';
2
+ /**
3
+ * seki-badge: Presentational badge component for displaying small pieces of information
4
+ *
5
+ * @component Badge
6
+ * @example
7
+ * <seki-badge variant="default">Label</seki-badge>
8
+ * <seki-badge variant="secondary">
9
+ * <span slot="icon">ℹ</span>
10
+ * Secondary
11
+ * </seki-badge>
12
+ */
13
+ export declare class SekiBadge {
14
+ el: HTMLElement;
15
+ /**
16
+ * Visual variant of the badge
17
+ * @default 'default'
18
+ */
19
+ variant?: BadgeVariant;
20
+ /**
21
+ * Enable rounded pill styling
22
+ * @default false
23
+ */
24
+ rounded?: boolean;
25
+ /**
26
+ * Number to display in the badge
27
+ * When set, displays the number instead of text content
28
+ * @default undefined
29
+ */
30
+ number?: number;
31
+ /**
32
+ * Maximum limit for number badge
33
+ * If number exceeds this, shows "max+" instead
34
+ * Only used when number prop is set
35
+ * @default undefined
36
+ */
37
+ max?: number;
38
+ componentWillLoad(): void;
39
+ render(): any;
40
+ private renderNumberBadge;
41
+ private renderTextBadge;
42
+ private hasSlot;
43
+ }
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Badge Component Props Interface
3
+ * Defines all configurable properties for the seki-badge Web Component
4
+ */
5
+ /**
6
+ * Variant types for badge styling
7
+ * - default: Standard badge with primary color
8
+ * - secondary: Muted appearance for secondary information
9
+ * - destructive: Warning/error state with red tones
10
+ * - outline: Border-only variant without background fill
11
+ */
12
+ export type BadgeVariant = 'default' | 'secondary' | 'destructive' | 'outline';
13
+ /**
14
+ * Props interface for seki-badge component
15
+ *
16
+ * @example
17
+ * ```tsx
18
+ * const props: SekiBadgeProps = {
19
+ * variant: 'default',
20
+ * rounded: true,
21
+ * className: 'custom-badge'
22
+ * }
23
+ * ```
24
+ *
25
+ * @example Number badge
26
+ * ```tsx
27
+ * const props: SekiBadgeProps = {
28
+ * number: 21,
29
+ * max: 20 // Shows "20+"
30
+ * }
31
+ * ```
32
+ */
33
+ export interface SekiBadgeProps {
34
+ /**
35
+ * Visual variant of the badge
36
+ * @default 'default'
37
+ */
38
+ variant?: BadgeVariant;
39
+ /**
40
+ * Enable rounded pill styling
41
+ * @default false
42
+ */
43
+ rounded?: boolean;
44
+ /**
45
+ * Additional CSS class names to apply
46
+ * @default undefined
47
+ */
48
+ className?: string;
49
+ /**
50
+ * Number to display in the badge
51
+ * When set, displays the number instead of text content
52
+ * @default undefined
53
+ */
54
+ number?: number;
55
+ /**
56
+ * Maximum limit for number badge
57
+ * If number exceeds this, shows "max+" instead
58
+ * Only used when number prop is set
59
+ * @default undefined
60
+ */
61
+ max?: number;
62
+ }
63
+ /**
64
+ * Badge component interface for TypeScript consumers
65
+ * Extends HTMLElement with badge-specific properties
66
+ */
67
+ export interface SekiBadgeElement extends HTMLElement {
68
+ /**
69
+ * Visual variant of the badge
70
+ */
71
+ variant?: BadgeVariant;
72
+ /**
73
+ * Enable rounded pill styling
74
+ */
75
+ rounded?: boolean;
76
+ /**
77
+ * Number to display in the badge
78
+ */
79
+ number?: number;
80
+ /**
81
+ * Maximum limit for number badge
82
+ */
83
+ max?: number;
84
+ /**
85
+ * Additional CSS classes (inherited from HTMLElement)
86
+ */
87
+ className: string;
88
+ }
@@ -5,15 +5,48 @@
5
5
  * It contains typing information for all components that exist in this project.
6
6
  */
7
7
  import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
+ import { BadgeVariant } from "./components/badge/seki-badge.interface";
8
9
  import { Event } from "./stencil-public-runtime";
9
10
  import { SelectChangeEventDetail, SelectOpenChangeEventDetail, SelectPlacement, SelectValidateEventDetail, SelectValue } from "./utils/select";
10
11
  import { CollapsedChangeDetail, CollapseModeChangeDetail, MobileStateChangeDetail, NavigateDetail, OpenChangeDetail, SidebarGroupProps, SidebarMenuItemProps, SidebarMenuSubProps, SidebarProps, SidebarState, SidebarTriggerProps, VariantChangeDetail } from "./components/sidebar/types";
11
12
  import { TooltipHideDetail, TooltipPositionedDetail, TooltipShowDetail, TooltipSide } from "./components/tooltip/seki-tooltip";
13
+ export { BadgeVariant } from "./components/badge/seki-badge.interface";
12
14
  export { Event } from "./stencil-public-runtime";
13
15
  export { SelectChangeEventDetail, SelectOpenChangeEventDetail, SelectPlacement, SelectValidateEventDetail, SelectValue } from "./utils/select";
14
16
  export { CollapsedChangeDetail, CollapseModeChangeDetail, MobileStateChangeDetail, NavigateDetail, OpenChangeDetail, SidebarGroupProps, SidebarMenuItemProps, SidebarMenuSubProps, SidebarProps, SidebarState, SidebarTriggerProps, VariantChangeDetail } from "./components/sidebar/types";
15
17
  export { TooltipHideDetail, TooltipPositionedDetail, TooltipShowDetail, TooltipSide } from "./components/tooltip/seki-tooltip";
16
18
  export namespace Components {
19
+ /**
20
+ * seki-badge: Presentational badge component for displaying small pieces of information
21
+ * @component Badge
22
+ * @example <seki-badge variant="default">Label</seki-badge>
23
+ * <seki-badge variant="secondary">
24
+ * <span slot="icon">ℹ</span>
25
+ * Secondary
26
+ * </seki-badge>
27
+ */
28
+ interface SekiBadge {
29
+ /**
30
+ * Maximum limit for number badge If number exceeds this, shows "max+" instead Only used when number prop is set
31
+ * @default undefined
32
+ */
33
+ "max"?: number;
34
+ /**
35
+ * Number to display in the badge When set, displays the number instead of text content
36
+ * @default undefined
37
+ */
38
+ "number"?: number;
39
+ /**
40
+ * Enable rounded pill styling
41
+ * @default false
42
+ */
43
+ "rounded"?: boolean;
44
+ /**
45
+ * Visual variant of the badge
46
+ * @default 'default'
47
+ */
48
+ "variant"?: BadgeVariant;
49
+ }
17
50
  interface SekiButton {
18
51
  /**
19
52
  * Accessible label for screen readers. Required for icon-only buttons.
@@ -749,6 +782,21 @@ export interface SekiTooltipCustomEvent<T> extends CustomEvent<T> {
749
782
  target: HTMLSekiTooltipElement;
750
783
  }
751
784
  declare global {
785
+ /**
786
+ * seki-badge: Presentational badge component for displaying small pieces of information
787
+ * @component Badge
788
+ * @example <seki-badge variant="default">Label</seki-badge>
789
+ * <seki-badge variant="secondary">
790
+ * <span slot="icon">ℹ</span>
791
+ * Secondary
792
+ * </seki-badge>
793
+ */
794
+ interface HTMLSekiBadgeElement extends Components.SekiBadge, HTMLStencilElement {
795
+ }
796
+ var HTMLSekiBadgeElement: {
797
+ prototype: HTMLSekiBadgeElement;
798
+ new (): HTMLSekiBadgeElement;
799
+ };
752
800
  interface HTMLSekiButtonElement extends Components.SekiButton, HTMLStencilElement {
753
801
  }
754
802
  var HTMLSekiButtonElement: {
@@ -1137,6 +1185,7 @@ declare global {
1137
1185
  new (): HTMLSekiTooltipElement;
1138
1186
  };
1139
1187
  interface HTMLElementTagNameMap {
1188
+ "seki-badge": HTMLSekiBadgeElement;
1140
1189
  "seki-button": HTMLSekiButtonElement;
1141
1190
  "seki-card": HTMLSekiCardElement;
1142
1191
  "seki-card-action": HTMLSekiCardActionElement;
@@ -1173,6 +1222,37 @@ declare global {
1173
1222
  }
1174
1223
  }
1175
1224
  declare namespace LocalJSX {
1225
+ /**
1226
+ * seki-badge: Presentational badge component for displaying small pieces of information
1227
+ * @component Badge
1228
+ * @example <seki-badge variant="default">Label</seki-badge>
1229
+ * <seki-badge variant="secondary">
1230
+ * <span slot="icon">ℹ</span>
1231
+ * Secondary
1232
+ * </seki-badge>
1233
+ */
1234
+ interface SekiBadge {
1235
+ /**
1236
+ * Maximum limit for number badge If number exceeds this, shows "max+" instead Only used when number prop is set
1237
+ * @default undefined
1238
+ */
1239
+ "max"?: number;
1240
+ /**
1241
+ * Number to display in the badge When set, displays the number instead of text content
1242
+ * @default undefined
1243
+ */
1244
+ "number"?: number;
1245
+ /**
1246
+ * Enable rounded pill styling
1247
+ * @default false
1248
+ */
1249
+ "rounded"?: boolean;
1250
+ /**
1251
+ * Visual variant of the badge
1252
+ * @default 'default'
1253
+ */
1254
+ "variant"?: BadgeVariant;
1255
+ }
1176
1256
  interface SekiButton {
1177
1257
  /**
1178
1258
  * Accessible label for screen readers. Required for icon-only buttons.
@@ -1859,6 +1939,7 @@ declare namespace LocalJSX {
1859
1939
  "side"?: TooltipSide;
1860
1940
  }
1861
1941
  interface IntrinsicElements {
1942
+ "seki-badge": SekiBadge;
1862
1943
  "seki-button": SekiButton;
1863
1944
  "seki-card": SekiCard;
1864
1945
  "seki-card-action": SekiCardAction;
@@ -1898,6 +1979,16 @@ export { LocalJSX as JSX };
1898
1979
  declare module "@stencil/core" {
1899
1980
  export namespace JSX {
1900
1981
  interface IntrinsicElements {
1982
+ /**
1983
+ * seki-badge: Presentational badge component for displaying small pieces of information
1984
+ * @component Badge
1985
+ * @example <seki-badge variant="default">Label</seki-badge>
1986
+ * <seki-badge variant="secondary">
1987
+ * <span slot="icon">ℹ</span>
1988
+ * Secondary
1989
+ * </seki-badge>
1990
+ */
1991
+ "seki-badge": LocalJSX.SekiBadge & JSXBase.HTMLAttributes<HTMLSekiBadgeElement>;
1901
1992
  "seki-button": LocalJSX.SekiButton & JSXBase.HTMLAttributes<HTMLSekiButtonElement>;
1902
1993
  /**
1903
1994
  * Flexible container for organizing related content with optional header,
@@ -46,7 +46,7 @@ export declare class MediaQueryService {
46
46
  * @param type - Type of match: 'min' (mobile-first) or 'max' (desktop-first)
47
47
  * @param handler - Callback when breakpoint matches
48
48
  */
49
- registerBreakpoint(id: string, breakpoint: keyof BreakpointConfig, type: ("min" | "max") | undefined, handler: (match: boolean) => void): void;
49
+ registerBreakpoint(id: string, breakpoint: keyof BreakpointConfig, type: "min" | "max" | undefined, handler: (match: boolean) => void): void;
50
50
  /**
51
51
  * Unregister a media query listener
52
52
  */
@@ -1,5 +1,6 @@
1
1
  type CustomMethodDecorator<T> = (target: object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor<T>) => TypedPropertyDescriptor<T> | void;
2
- type UnionToIntersection<U> = (U extends any ? (x: U) => void : never) extends (x: infer I) => void ? I : never;
2
+ type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
3
+ type MixinInstance<F> = F extends (base: MixedInCtor) => MixedInCtor<infer I> ? I : never;
3
4
  export interface ComponentDecorator {
4
5
  (opts?: ComponentOptions): ClassDecorator;
5
6
  }
@@ -364,18 +365,27 @@ export declare function readTask(task: RafCallback): void;
364
365
  * Unhandled exception raised while rendering, during event handling, or lifecycles will trigger the custom event handler.
365
366
  */
366
367
  export declare const setErrorHandler: (handler: ErrorHandler) => void;
367
- export type MixinFactory = <TBase extends new (...args: any[]) => any>(base: TBase) => abstract new (...args: ConstructorParameters<TBase>) => any;
368
+ /**
369
+ * @deprecated - Use `MixedInCtor` instead:
370
+ * ```ts
371
+ * import { MixedInCtor } from '@stencil/core';
372
+ *
373
+ * const AFactoryFn = <B extends MixedInCtor>(Base: B) => {class A extends Base { propA = A }; return A;}
374
+ * ```
375
+ */
376
+ export type MixinFactory = (base: MixedInCtor) => MixedInCtor;
377
+ export type MixedInCtor<T = {}> = new (...args: any[]) => T;
368
378
  /**
369
379
  * Compose multiple mixin classes into a single constructor.
370
380
  * The resulting class has the combined instance types of all mixed-in classes.
371
381
  *
372
382
  * Example:
373
- * ```
374
- * import { Mixin, MixinFactory } from '@stencil/core';
383
+ * ```ts
384
+ * import { Mixin, MixedInCtor } from '@stencil/core';
375
385
  *
376
- * const AWrap: MixinFactory = (Base) => {class A extends Base { propA = A }; return A;}
377
- * const BWrap: MixinFactory = (Base) => {class B extends Base { propB = B }; return B;}
378
- * const CWrap: MixinFactory = (Base) => {class C extends Base { propC = C }; return C;}
386
+ * const AWrap = <B extends MixedInCtor>(Base: B) => {class A extends Base { propA = A }; return A;}
387
+ * const BWrap = <B extends MixedInCtor>(Base: B) => {class B extends Base { propB = B }; return B;}
388
+ * const CWrap = <B extends MixedInCtor>(Base: B) => {class C extends Base { propC = C }; return C;}
379
389
  *
380
390
  * class X extends Mixin(AWrap, BWrap, CWrap) {
381
391
  * render() { return <div>{this.propA} {this.propB} {this.propC}</div>; }
@@ -383,9 +393,9 @@ export type MixinFactory = <TBase extends new (...args: any[]) => any>(base: TBa
383
393
  * ```
384
394
  *
385
395
  * @param mixinFactories mixin factory functions that return a class which extends from the provided class.
386
- * @returns a class that that is composed from extending each of the provided classes in the order they were provided.
396
+ * @returns a class that is composed from extending each of the provided classes in the order they were provided.
387
397
  */
388
- export declare function Mixin<TMixins extends readonly MixinFactory[]>(...mixinFactories: TMixins): abstract new (...args: any[]) => UnionToIntersection<InstanceType<ReturnType<TMixins[number]>>>;
398
+ export declare function Mixin<const TMixins extends readonly MixinFactory[]>(...mixinFactories: TMixins): abstract new (...args: any[]) => UnionToIntersection<MixinInstance<TMixins[number]>>;
389
399
  /**
390
400
  * This file gets copied to all distributions of stencil component collections.
391
401
  * - no imports
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sekiui/elements",
3
- "version": "0.0.57",
3
+ "version": "0.0.59",
4
4
  "description": "Modern, accessible Web Components with shadcn/ui-inspired design",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
@@ -47,6 +47,7 @@
47
47
  "@typescript-eslint/eslint-plugin": "^8.46.0",
48
48
  "@typescript-eslint/parser": "^8.46.0",
49
49
  "axe-core": "^4.10.3",
50
+ "babel-plugin-istanbul": "^7.0.1",
50
51
  "eslint": "^9.37.0",
51
52
  "eslint-config-prettier": "^10.1.8",
52
53
  "eslint-plugin-storybook": "9.1.10",
@@ -54,10 +55,16 @@
54
55
  "jest-cli": "^29.7.0",
55
56
  "lit": "^3.3.1",
56
57
  "prettier": "^3.6.2",
57
- "puppeteer": "^20.9.0",
58
- "storybook": "^9.1.10"
58
+ "puppeteer": "^24.29.0",
59
+ "storybook": "^9.1.10",
60
+ "test-exclude": "^7.0.1"
59
61
  },
60
62
  "dependencies": {
61
63
  "@floating-ui/dom": "^1.7.4"
64
+ },
65
+ "overrides": {
66
+ "glob": ">=10.0.0",
67
+ "inflight": "npm:lru-cache@^10.0.0",
68
+ "test-exclude": "^7.0.1"
62
69
  }
63
70
  }