@sekiui/elements 0.0.41 → 0.0.45

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 (111) hide show
  1. package/README.md +79 -21
  2. package/dist/cdn/index.d.ts +33 -0
  3. package/dist/cdn/index.js +112 -0
  4. package/dist/{components/p-qBYH2h9w.js → cdn/p-BLeUUc2-.js} +44 -6
  5. package/dist/cdn/seki-button.d.ts +11 -0
  6. package/dist/cdn/seki-button.js +66 -0
  7. package/dist/cdn/seki-field-description.d.ts +11 -0
  8. package/dist/cdn/seki-field-description.js +66 -0
  9. package/dist/cdn/seki-field-error.d.ts +11 -0
  10. package/dist/cdn/seki-field-error.js +94 -0
  11. package/dist/cdn/seki-field-group.d.ts +11 -0
  12. package/dist/cdn/seki-field-group.js +46 -0
  13. package/dist/cdn/seki-field-label.d.ts +11 -0
  14. package/dist/cdn/seki-field-label.js +45 -0
  15. package/dist/cdn/seki-field-legend.d.ts +11 -0
  16. package/dist/cdn/seki-field-legend.js +36 -0
  17. package/dist/cdn/seki-field.d.ts +11 -0
  18. package/dist/cdn/seki-field.js +69 -0
  19. package/dist/cdn/seki-fieldset.d.ts +11 -0
  20. package/dist/cdn/seki-fieldset.js +43 -0
  21. package/dist/cdn/seki-input.d.ts +11 -0
  22. package/dist/cdn/seki-input.js +133 -0
  23. package/dist/cdn/seki-skeleton.d.ts +11 -0
  24. package/dist/cdn/seki-skeleton.js +46 -0
  25. package/dist/cdn/seki-switch.d.ts +11 -0
  26. package/dist/cdn/seki-switch.js +6 -0
  27. package/dist/cjs/{index-DwgP2ssn.js → index-BxD7Xe36.js} +50 -6
  28. package/dist/cjs/index.cjs.js +2 -2
  29. package/dist/cjs/loader.cjs.js +3 -4
  30. package/dist/cjs/seki-button.cjs.entry.js +2 -2
  31. package/dist/cjs/seki-field-description.cjs.entry.js +2 -2
  32. package/dist/cjs/seki-field-error.cjs.entry.js +2 -2
  33. package/dist/cjs/seki-field-group.cjs.entry.js +2 -2
  34. package/dist/cjs/seki-field-label.cjs.entry.js +2 -2
  35. package/dist/cjs/seki-field-legend.cjs.entry.js +2 -2
  36. package/dist/cjs/seki-field.cjs.entry.js +2 -2
  37. package/dist/cjs/seki-fieldset.cjs.entry.js +2 -2
  38. package/dist/cjs/seki-input.cjs.entry.js +38 -3
  39. package/dist/cjs/seki-skeleton.cjs.entry.js +2 -2
  40. package/dist/cjs/seki-switch.cjs.entry.js +1 -1
  41. package/dist/cjs/sekiui.cjs.js +3 -4
  42. package/dist/collection/components/button/seki-button.css +8 -8
  43. package/dist/collection/components/field/seki-field.css +15 -15
  44. package/dist/collection/components/field-description/seki-field-description.css +8 -8
  45. package/dist/collection/components/field-error/seki-field-error.css +8 -8
  46. package/dist/collection/components/field-group/seki-field-group.css +8 -8
  47. package/dist/collection/components/field-label/seki-field-label.css +8 -8
  48. package/dist/collection/components/field-legend/seki-field-legend.css +8 -8
  49. package/dist/collection/components/fieldset/seki-fieldset.css +8 -8
  50. package/dist/collection/components/input/seki-input.css +8 -8
  51. package/dist/collection/components/input/seki-input.js +30 -1
  52. package/dist/collection/components/skeleton/seki-skeleton.css +8 -8
  53. package/dist/collection/components/switch/seki-switch.css +355 -0
  54. package/dist/components/index.js +3 -3
  55. package/dist/components/p-BFmmBW7R.js +1363 -0
  56. package/dist/components/seki-button.js +2 -2
  57. package/dist/components/seki-field-description.js +2 -2
  58. package/dist/components/seki-field-error.js +2 -2
  59. package/dist/components/seki-field-group.js +2 -2
  60. package/dist/components/seki-field-label.js +2 -2
  61. package/dist/components/seki-field-legend.js +2 -2
  62. package/dist/components/seki-field.js +2 -2
  63. package/dist/components/seki-fieldset.js +2 -2
  64. package/dist/components/seki-input.js +33 -4
  65. package/dist/components/seki-skeleton.js +2 -2
  66. package/dist/esm/{index-DVaKDPWs.js → index-ByHohxc0.js} +50 -7
  67. package/dist/esm/index.js +2 -2
  68. package/dist/esm/loader.js +3 -4
  69. package/dist/esm/seki-button.entry.js +2 -2
  70. package/dist/esm/seki-field-description.entry.js +2 -2
  71. package/dist/esm/seki-field-error.entry.js +2 -2
  72. package/dist/esm/seki-field-group.entry.js +2 -2
  73. package/dist/esm/seki-field-label.entry.js +2 -2
  74. package/dist/esm/seki-field-legend.entry.js +2 -2
  75. package/dist/esm/seki-field.entry.js +2 -2
  76. package/dist/esm/seki-fieldset.entry.js +2 -2
  77. package/dist/esm/seki-input.entry.js +38 -3
  78. package/dist/esm/seki-skeleton.entry.js +2 -2
  79. package/dist/esm/seki-switch.entry.js +1 -1
  80. package/dist/esm/sekiui.js +3 -4
  81. package/dist/sekiui/index.esm.js +1 -1
  82. package/dist/sekiui/p-128cfe90.entry.js +1 -0
  83. package/dist/sekiui/p-1b1a5e38.entry.js +1 -0
  84. package/dist/sekiui/p-1c923d08.entry.js +1 -0
  85. package/dist/sekiui/p-281803dd.entry.js +1 -0
  86. package/dist/sekiui/p-2ecf7587.entry.js +1 -0
  87. package/dist/sekiui/p-3b2d3e96.entry.js +1 -0
  88. package/dist/sekiui/p-459bb637.entry.js +1 -0
  89. package/dist/sekiui/p-51f2af94.entry.js +1 -0
  90. package/dist/sekiui/{p-9798772a.entry.js → p-70281e83.entry.js} +1 -1
  91. package/dist/sekiui/p-ByHohxc0.js +2 -0
  92. package/dist/sekiui/p-bc921daa.entry.js +1 -0
  93. package/dist/sekiui/p-d034b071.entry.js +1 -0
  94. package/dist/sekiui/sekiui.css +2 -0
  95. package/dist/sekiui/sekiui.esm.js +1 -1
  96. package/dist/types/components/input/seki-input.d.ts +4 -0
  97. package/package.json +1 -1
  98. package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -5
  99. package/dist/esm/app-globals-DQuL1Twl.js +0 -3
  100. package/dist/sekiui/p-4471a11b.entry.js +0 -1
  101. package/dist/sekiui/p-6e145af3.entry.js +0 -1
  102. package/dist/sekiui/p-90ac85ad.entry.js +0 -1
  103. package/dist/sekiui/p-9b51119c.entry.js +0 -1
  104. package/dist/sekiui/p-DQuL1Twl.js +0 -1
  105. package/dist/sekiui/p-DVaKDPWs.js +0 -2
  106. package/dist/sekiui/p-b02ec16d.entry.js +0 -1
  107. package/dist/sekiui/p-b47f6624.entry.js +0 -1
  108. package/dist/sekiui/p-bfb09d37.entry.js +0 -1
  109. package/dist/sekiui/p-cc81fc67.entry.js +0 -1
  110. package/dist/sekiui/p-e57f16b3.entry.js +0 -1
  111. package/dist/sekiui/p-ea04d3b5.entry.js +0 -1
@@ -15,7 +15,7 @@
15
15
  PRIMITIVE COLOR TOKENS (Layer 1: Raw Values)
16
16
  ============================================================================= */
17
17
 
18
- :root {
18
+ :host {
19
19
  /* Neutral Scale (50-950) - shadcn/ui inspired */
20
20
  --seki-neutral-50: hsl(0, 0%, 98%);
21
21
  --seki-neutral-100: hsl(0, 0%, 96.1%);
@@ -55,7 +55,7 @@
55
55
  SEMANTIC TOKENS (Layer 2: shadcn/ui Style)
56
56
  ============================================================================= */
57
57
 
58
- :root {
58
+ :host {
59
59
  /* Base */
60
60
  --seki-background: hsl(0, 0%, 100%);
61
61
  --seki-foreground: hsl(0, 0%, 3.9%);
@@ -107,7 +107,7 @@
107
107
  }
108
108
 
109
109
  /* Dark Mode Semantic Tokens */
110
- :root[data-theme='dark'] {
110
+ :host([data-theme='dark']) {
111
111
  /* Base */
112
112
  --seki-background: hsl(0, 0%, 3.9%);
113
113
  --seki-foreground: hsl(0, 0%, 98%);
@@ -166,7 +166,7 @@
166
166
  COMPONENT TOKENS (Layer 3: Button-Specific - shadcn/ui Style)
167
167
  ============================================================================= */
168
168
 
169
- :root {
169
+ :host {
170
170
  /* Button Variant: Primary (default in shadcn/ui) */
171
171
  --seki-button-primary-bg: var(--seki-primary);
172
172
  --seki-button-primary-text: var(--seki-primary-foreground);
@@ -264,7 +264,7 @@
264
264
  * 4px base unit, rem-based scale
265
265
  */
266
266
 
267
- :root {
267
+ :host {
268
268
  /* Spacing Scale (4px base unit) */
269
269
  --seki-spacing-0: 0;
270
270
  --seki-spacing-0-5: 0.125rem; /* 2px */
@@ -299,7 +299,7 @@
299
299
  * Subtle elevation system
300
300
  */
301
301
 
302
- :root {
302
+ :host {
303
303
  /* Shadow Levels */
304
304
  --seki-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
305
305
  --seki-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
@@ -311,7 +311,7 @@
311
311
  * System font stacks, sizes, weights, line heights
312
312
  */
313
313
 
314
- :root {
314
+ :host {
315
315
  /* Font Families */
316
316
  --seki-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
317
317
  Arial, sans-serif;
@@ -344,7 +344,7 @@
344
344
  * Four-level radius system
345
345
  */
346
346
 
347
- :root {
347
+ :host {
348
348
  /* Border Radius Levels */
349
349
  --seki-radius-sm: 0.25rem; /* 4px */
350
350
  --seki-radius-md: 0.375rem; /* 6px */
@@ -364,7 +364,7 @@
364
364
  }
365
365
 
366
366
  /* Vertical orientation (default) */
367
- .field[data-orientation="vertical"] {
367
+ :host([data-orientation="vertical"]) .field {
368
368
  grid-template-columns: 1fr;
369
369
  grid-template-areas:
370
370
  "label"
@@ -374,7 +374,7 @@
374
374
  }
375
375
 
376
376
  /* Horizontal orientation */
377
- .field[data-orientation="horizontal"] {
377
+ :host([data-orientation="horizontal"]) .field {
378
378
  grid-template-columns: auto 1fr;
379
379
  grid-template-areas:
380
380
  "label control"
@@ -384,12 +384,12 @@
384
384
  align-items: start;
385
385
  }
386
386
 
387
- .field[data-orientation="horizontal"] .field-label {
387
+ :host([data-orientation="horizontal"]) .field-label {
388
388
  padding-top: 0.25rem; /* Align with input */
389
389
  }
390
390
 
391
391
  /* Responsive orientation - uses container queries */
392
- .field[data-orientation="responsive"] {
392
+ :host([data-orientation="responsive"]) .field {
393
393
  container-type: inline-size;
394
394
  grid-template-columns: 1fr;
395
395
  grid-template-areas:
@@ -400,7 +400,7 @@
400
400
  }
401
401
 
402
402
  @container (min-width: 600px) {
403
- .field[data-orientation="responsive"] {
403
+ :host([data-orientation="responsive"]) .field {
404
404
  grid-template-columns: auto 1fr;
405
405
  grid-template-areas:
406
406
  "label control"
@@ -409,7 +409,7 @@
409
409
  gap: var(--seki-field-gap-horizontal, 1rem) var(--seki-field-spacing, 0.5rem);
410
410
  }
411
411
 
412
- .field[data-orientation="responsive"] .field-label {
412
+ :host([data-orientation="responsive"]) .field-label {
413
413
  padding-top: 0.25rem;
414
414
  }
415
415
  }
@@ -439,7 +439,7 @@
439
439
  }
440
440
 
441
441
  /* Invalid state styling */
442
- .field[data-invalid] {
442
+ :host([data-invalid]) .field {
443
443
  /* Visual indicator for invalid state (handled by individual components) */
444
444
  }
445
445
 
@@ -15,7 +15,7 @@
15
15
  PRIMITIVE COLOR TOKENS (Layer 1: Raw Values)
16
16
  ============================================================================= */
17
17
 
18
- :root {
18
+ :host {
19
19
  /* Neutral Scale (50-950) - shadcn/ui inspired */
20
20
  --seki-neutral-50: hsl(0, 0%, 98%);
21
21
  --seki-neutral-100: hsl(0, 0%, 96.1%);
@@ -55,7 +55,7 @@
55
55
  SEMANTIC TOKENS (Layer 2: shadcn/ui Style)
56
56
  ============================================================================= */
57
57
 
58
- :root {
58
+ :host {
59
59
  /* Base */
60
60
  --seki-background: hsl(0, 0%, 100%);
61
61
  --seki-foreground: hsl(0, 0%, 3.9%);
@@ -107,7 +107,7 @@
107
107
  }
108
108
 
109
109
  /* Dark Mode Semantic Tokens */
110
- :root[data-theme='dark'] {
110
+ :host([data-theme='dark']) {
111
111
  /* Base */
112
112
  --seki-background: hsl(0, 0%, 3.9%);
113
113
  --seki-foreground: hsl(0, 0%, 98%);
@@ -166,7 +166,7 @@
166
166
  COMPONENT TOKENS (Layer 3: Button-Specific - shadcn/ui Style)
167
167
  ============================================================================= */
168
168
 
169
- :root {
169
+ :host {
170
170
  /* Button Variant: Primary (default in shadcn/ui) */
171
171
  --seki-button-primary-bg: var(--seki-primary);
172
172
  --seki-button-primary-text: var(--seki-primary-foreground);
@@ -264,7 +264,7 @@
264
264
  * 4px base unit, rem-based scale
265
265
  */
266
266
 
267
- :root {
267
+ :host {
268
268
  /* Spacing Scale (4px base unit) */
269
269
  --seki-spacing-0: 0;
270
270
  --seki-spacing-0-5: 0.125rem; /* 2px */
@@ -299,7 +299,7 @@
299
299
  * Subtle elevation system
300
300
  */
301
301
 
302
- :root {
302
+ :host {
303
303
  /* Shadow Levels */
304
304
  --seki-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
305
305
  --seki-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
@@ -311,7 +311,7 @@
311
311
  * System font stacks, sizes, weights, line heights
312
312
  */
313
313
 
314
- :root {
314
+ :host {
315
315
  /* Font Families */
316
316
  --seki-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
317
317
  Arial, sans-serif;
@@ -344,7 +344,7 @@
344
344
  * Four-level radius system
345
345
  */
346
346
 
347
- :root {
347
+ :host {
348
348
  /* Border Radius Levels */
349
349
  --seki-radius-sm: 0.25rem; /* 4px */
350
350
  --seki-radius-md: 0.375rem; /* 6px */
@@ -15,7 +15,7 @@
15
15
  PRIMITIVE COLOR TOKENS (Layer 1: Raw Values)
16
16
  ============================================================================= */
17
17
 
18
- :root {
18
+ :host {
19
19
  /* Neutral Scale (50-950) - shadcn/ui inspired */
20
20
  --seki-neutral-50: hsl(0, 0%, 98%);
21
21
  --seki-neutral-100: hsl(0, 0%, 96.1%);
@@ -55,7 +55,7 @@
55
55
  SEMANTIC TOKENS (Layer 2: shadcn/ui Style)
56
56
  ============================================================================= */
57
57
 
58
- :root {
58
+ :host {
59
59
  /* Base */
60
60
  --seki-background: hsl(0, 0%, 100%);
61
61
  --seki-foreground: hsl(0, 0%, 3.9%);
@@ -107,7 +107,7 @@
107
107
  }
108
108
 
109
109
  /* Dark Mode Semantic Tokens */
110
- :root[data-theme='dark'] {
110
+ :host([data-theme='dark']) {
111
111
  /* Base */
112
112
  --seki-background: hsl(0, 0%, 3.9%);
113
113
  --seki-foreground: hsl(0, 0%, 98%);
@@ -166,7 +166,7 @@
166
166
  COMPONENT TOKENS (Layer 3: Button-Specific - shadcn/ui Style)
167
167
  ============================================================================= */
168
168
 
169
- :root {
169
+ :host {
170
170
  /* Button Variant: Primary (default in shadcn/ui) */
171
171
  --seki-button-primary-bg: var(--seki-primary);
172
172
  --seki-button-primary-text: var(--seki-primary-foreground);
@@ -264,7 +264,7 @@
264
264
  * 4px base unit, rem-based scale
265
265
  */
266
266
 
267
- :root {
267
+ :host {
268
268
  /* Spacing Scale (4px base unit) */
269
269
  --seki-spacing-0: 0;
270
270
  --seki-spacing-0-5: 0.125rem; /* 2px */
@@ -299,7 +299,7 @@
299
299
  * Subtle elevation system
300
300
  */
301
301
 
302
- :root {
302
+ :host {
303
303
  /* Shadow Levels */
304
304
  --seki-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
305
305
  --seki-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
@@ -311,7 +311,7 @@
311
311
  * System font stacks, sizes, weights, line heights
312
312
  */
313
313
 
314
- :root {
314
+ :host {
315
315
  /* Font Families */
316
316
  --seki-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
317
317
  Arial, sans-serif;
@@ -344,7 +344,7 @@
344
344
  * Four-level radius system
345
345
  */
346
346
 
347
- :root {
347
+ :host {
348
348
  /* Border Radius Levels */
349
349
  --seki-radius-sm: 0.25rem; /* 4px */
350
350
  --seki-radius-md: 0.375rem; /* 6px */
@@ -15,7 +15,7 @@
15
15
  PRIMITIVE COLOR TOKENS (Layer 1: Raw Values)
16
16
  ============================================================================= */
17
17
 
18
- :root {
18
+ :host {
19
19
  /* Neutral Scale (50-950) - shadcn/ui inspired */
20
20
  --seki-neutral-50: hsl(0, 0%, 98%);
21
21
  --seki-neutral-100: hsl(0, 0%, 96.1%);
@@ -55,7 +55,7 @@
55
55
  SEMANTIC TOKENS (Layer 2: shadcn/ui Style)
56
56
  ============================================================================= */
57
57
 
58
- :root {
58
+ :host {
59
59
  /* Base */
60
60
  --seki-background: hsl(0, 0%, 100%);
61
61
  --seki-foreground: hsl(0, 0%, 3.9%);
@@ -107,7 +107,7 @@
107
107
  }
108
108
 
109
109
  /* Dark Mode Semantic Tokens */
110
- :root[data-theme='dark'] {
110
+ :host([data-theme='dark']) {
111
111
  /* Base */
112
112
  --seki-background: hsl(0, 0%, 3.9%);
113
113
  --seki-foreground: hsl(0, 0%, 98%);
@@ -166,7 +166,7 @@
166
166
  COMPONENT TOKENS (Layer 3: Button-Specific - shadcn/ui Style)
167
167
  ============================================================================= */
168
168
 
169
- :root {
169
+ :host {
170
170
  /* Button Variant: Primary (default in shadcn/ui) */
171
171
  --seki-button-primary-bg: var(--seki-primary);
172
172
  --seki-button-primary-text: var(--seki-primary-foreground);
@@ -264,7 +264,7 @@
264
264
  * 4px base unit, rem-based scale
265
265
  */
266
266
 
267
- :root {
267
+ :host {
268
268
  /* Spacing Scale (4px base unit) */
269
269
  --seki-spacing-0: 0;
270
270
  --seki-spacing-0-5: 0.125rem; /* 2px */
@@ -299,7 +299,7 @@
299
299
  * Subtle elevation system
300
300
  */
301
301
 
302
- :root {
302
+ :host {
303
303
  /* Shadow Levels */
304
304
  --seki-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
305
305
  --seki-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
@@ -311,7 +311,7 @@
311
311
  * System font stacks, sizes, weights, line heights
312
312
  */
313
313
 
314
- :root {
314
+ :host {
315
315
  /* Font Families */
316
316
  --seki-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
317
317
  Arial, sans-serif;
@@ -344,7 +344,7 @@
344
344
  * Four-level radius system
345
345
  */
346
346
 
347
- :root {
347
+ :host {
348
348
  /* Border Radius Levels */
349
349
  --seki-radius-sm: 0.25rem; /* 4px */
350
350
  --seki-radius-md: 0.375rem; /* 6px */
@@ -15,7 +15,7 @@
15
15
  PRIMITIVE COLOR TOKENS (Layer 1: Raw Values)
16
16
  ============================================================================= */
17
17
 
18
- :root {
18
+ :host {
19
19
  /* Neutral Scale (50-950) - shadcn/ui inspired */
20
20
  --seki-neutral-50: hsl(0, 0%, 98%);
21
21
  --seki-neutral-100: hsl(0, 0%, 96.1%);
@@ -55,7 +55,7 @@
55
55
  SEMANTIC TOKENS (Layer 2: shadcn/ui Style)
56
56
  ============================================================================= */
57
57
 
58
- :root {
58
+ :host {
59
59
  /* Base */
60
60
  --seki-background: hsl(0, 0%, 100%);
61
61
  --seki-foreground: hsl(0, 0%, 3.9%);
@@ -107,7 +107,7 @@
107
107
  }
108
108
 
109
109
  /* Dark Mode Semantic Tokens */
110
- :root[data-theme='dark'] {
110
+ :host([data-theme='dark']) {
111
111
  /* Base */
112
112
  --seki-background: hsl(0, 0%, 3.9%);
113
113
  --seki-foreground: hsl(0, 0%, 98%);
@@ -166,7 +166,7 @@
166
166
  COMPONENT TOKENS (Layer 3: Button-Specific - shadcn/ui Style)
167
167
  ============================================================================= */
168
168
 
169
- :root {
169
+ :host {
170
170
  /* Button Variant: Primary (default in shadcn/ui) */
171
171
  --seki-button-primary-bg: var(--seki-primary);
172
172
  --seki-button-primary-text: var(--seki-primary-foreground);
@@ -264,7 +264,7 @@
264
264
  * 4px base unit, rem-based scale
265
265
  */
266
266
 
267
- :root {
267
+ :host {
268
268
  /* Spacing Scale (4px base unit) */
269
269
  --seki-spacing-0: 0;
270
270
  --seki-spacing-0-5: 0.125rem; /* 2px */
@@ -299,7 +299,7 @@
299
299
  * Subtle elevation system
300
300
  */
301
301
 
302
- :root {
302
+ :host {
303
303
  /* Shadow Levels */
304
304
  --seki-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
305
305
  --seki-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
@@ -311,7 +311,7 @@
311
311
  * System font stacks, sizes, weights, line heights
312
312
  */
313
313
 
314
- :root {
314
+ :host {
315
315
  /* Font Families */
316
316
  --seki-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
317
317
  Arial, sans-serif;
@@ -344,7 +344,7 @@
344
344
  * Four-level radius system
345
345
  */
346
346
 
347
- :root {
347
+ :host {
348
348
  /* Border Radius Levels */
349
349
  --seki-radius-sm: 0.25rem; /* 4px */
350
350
  --seki-radius-md: 0.375rem; /* 6px */
@@ -15,7 +15,7 @@
15
15
  PRIMITIVE COLOR TOKENS (Layer 1: Raw Values)
16
16
  ============================================================================= */
17
17
 
18
- :root {
18
+ :host {
19
19
  /* Neutral Scale (50-950) - shadcn/ui inspired */
20
20
  --seki-neutral-50: hsl(0, 0%, 98%);
21
21
  --seki-neutral-100: hsl(0, 0%, 96.1%);
@@ -55,7 +55,7 @@
55
55
  SEMANTIC TOKENS (Layer 2: shadcn/ui Style)
56
56
  ============================================================================= */
57
57
 
58
- :root {
58
+ :host {
59
59
  /* Base */
60
60
  --seki-background: hsl(0, 0%, 100%);
61
61
  --seki-foreground: hsl(0, 0%, 3.9%);
@@ -107,7 +107,7 @@
107
107
  }
108
108
 
109
109
  /* Dark Mode Semantic Tokens */
110
- :root[data-theme='dark'] {
110
+ :host([data-theme='dark']) {
111
111
  /* Base */
112
112
  --seki-background: hsl(0, 0%, 3.9%);
113
113
  --seki-foreground: hsl(0, 0%, 98%);
@@ -166,7 +166,7 @@
166
166
  COMPONENT TOKENS (Layer 3: Button-Specific - shadcn/ui Style)
167
167
  ============================================================================= */
168
168
 
169
- :root {
169
+ :host {
170
170
  /* Button Variant: Primary (default in shadcn/ui) */
171
171
  --seki-button-primary-bg: var(--seki-primary);
172
172
  --seki-button-primary-text: var(--seki-primary-foreground);
@@ -264,7 +264,7 @@
264
264
  * 4px base unit, rem-based scale
265
265
  */
266
266
 
267
- :root {
267
+ :host {
268
268
  /* Spacing Scale (4px base unit) */
269
269
  --seki-spacing-0: 0;
270
270
  --seki-spacing-0-5: 0.125rem; /* 2px */
@@ -299,7 +299,7 @@
299
299
  * Subtle elevation system
300
300
  */
301
301
 
302
- :root {
302
+ :host {
303
303
  /* Shadow Levels */
304
304
  --seki-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
305
305
  --seki-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
@@ -311,7 +311,7 @@
311
311
  * System font stacks, sizes, weights, line heights
312
312
  */
313
313
 
314
- :root {
314
+ :host {
315
315
  /* Font Families */
316
316
  --seki-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
317
317
  Arial, sans-serif;
@@ -344,7 +344,7 @@
344
344
  * Four-level radius system
345
345
  */
346
346
 
347
- :root {
347
+ :host {
348
348
  /* Border Radius Levels */
349
349
  --seki-radius-sm: 0.25rem; /* 4px */
350
350
  --seki-radius-md: 0.375rem; /* 6px */
@@ -15,7 +15,7 @@
15
15
  PRIMITIVE COLOR TOKENS (Layer 1: Raw Values)
16
16
  ============================================================================= */
17
17
 
18
- :root {
18
+ :host {
19
19
  /* Neutral Scale (50-950) - shadcn/ui inspired */
20
20
  --seki-neutral-50: hsl(0, 0%, 98%);
21
21
  --seki-neutral-100: hsl(0, 0%, 96.1%);
@@ -55,7 +55,7 @@
55
55
  SEMANTIC TOKENS (Layer 2: shadcn/ui Style)
56
56
  ============================================================================= */
57
57
 
58
- :root {
58
+ :host {
59
59
  /* Base */
60
60
  --seki-background: hsl(0, 0%, 100%);
61
61
  --seki-foreground: hsl(0, 0%, 3.9%);
@@ -107,7 +107,7 @@
107
107
  }
108
108
 
109
109
  /* Dark Mode Semantic Tokens */
110
- :root[data-theme='dark'] {
110
+ :host([data-theme='dark']) {
111
111
  /* Base */
112
112
  --seki-background: hsl(0, 0%, 3.9%);
113
113
  --seki-foreground: hsl(0, 0%, 98%);
@@ -166,7 +166,7 @@
166
166
  COMPONENT TOKENS (Layer 3: Button-Specific - shadcn/ui Style)
167
167
  ============================================================================= */
168
168
 
169
- :root {
169
+ :host {
170
170
  /* Button Variant: Primary (default in shadcn/ui) */
171
171
  --seki-button-primary-bg: var(--seki-primary);
172
172
  --seki-button-primary-text: var(--seki-primary-foreground);
@@ -264,7 +264,7 @@
264
264
  * 4px base unit, rem-based scale
265
265
  */
266
266
 
267
- :root {
267
+ :host {
268
268
  /* Spacing Scale (4px base unit) */
269
269
  --seki-spacing-0: 0;
270
270
  --seki-spacing-0-5: 0.125rem; /* 2px */
@@ -299,7 +299,7 @@
299
299
  * Subtle elevation system
300
300
  */
301
301
 
302
- :root {
302
+ :host {
303
303
  /* Shadow Levels */
304
304
  --seki-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
305
305
  --seki-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
@@ -311,7 +311,7 @@
311
311
  * System font stacks, sizes, weights, line heights
312
312
  */
313
313
 
314
- :root {
314
+ :host {
315
315
  /* Font Families */
316
316
  --seki-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
317
317
  Arial, sans-serif;
@@ -344,7 +344,7 @@
344
344
  * Four-level radius system
345
345
  */
346
346
 
347
- :root {
347
+ :host {
348
348
  /* Border Radius Levels */
349
349
  --seki-radius-sm: 0.25rem; /* 4px */
350
350
  --seki-radius-md: 0.375rem; /* 6px */
@@ -15,7 +15,7 @@
15
15
  PRIMITIVE COLOR TOKENS (Layer 1: Raw Values)
16
16
  ============================================================================= */
17
17
 
18
- :root {
18
+ :host {
19
19
  /* Neutral Scale (50-950) - shadcn/ui inspired */
20
20
  --seki-neutral-50: hsl(0, 0%, 98%);
21
21
  --seki-neutral-100: hsl(0, 0%, 96.1%);
@@ -55,7 +55,7 @@
55
55
  SEMANTIC TOKENS (Layer 2: shadcn/ui Style)
56
56
  ============================================================================= */
57
57
 
58
- :root {
58
+ :host {
59
59
  /* Base */
60
60
  --seki-background: hsl(0, 0%, 100%);
61
61
  --seki-foreground: hsl(0, 0%, 3.9%);
@@ -107,7 +107,7 @@
107
107
  }
108
108
 
109
109
  /* Dark Mode Semantic Tokens */
110
- :root[data-theme='dark'] {
110
+ :host([data-theme='dark']) {
111
111
  /* Base */
112
112
  --seki-background: hsl(0, 0%, 3.9%);
113
113
  --seki-foreground: hsl(0, 0%, 98%);
@@ -166,7 +166,7 @@
166
166
  COMPONENT TOKENS (Layer 3: Button-Specific - shadcn/ui Style)
167
167
  ============================================================================= */
168
168
 
169
- :root {
169
+ :host {
170
170
  /* Button Variant: Primary (default in shadcn/ui) */
171
171
  --seki-button-primary-bg: var(--seki-primary);
172
172
  --seki-button-primary-text: var(--seki-primary-foreground);
@@ -264,7 +264,7 @@
264
264
  * 4px base unit, rem-based scale
265
265
  */
266
266
 
267
- :root {
267
+ :host {
268
268
  /* Spacing Scale (4px base unit) */
269
269
  --seki-spacing-0: 0;
270
270
  --seki-spacing-0-5: 0.125rem; /* 2px */
@@ -299,7 +299,7 @@
299
299
  * Subtle elevation system
300
300
  */
301
301
 
302
- :root {
302
+ :host {
303
303
  /* Shadow Levels */
304
304
  --seki-shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);
305
305
  --seki-shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
@@ -311,7 +311,7 @@
311
311
  * System font stacks, sizes, weights, line heights
312
312
  */
313
313
 
314
- :root {
314
+ :host {
315
315
  /* Font Families */
316
316
  --seki-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue',
317
317
  Arial, sans-serif;
@@ -344,7 +344,7 @@
344
344
  * Four-level radius system
345
345
  */
346
346
 
347
- :root {
347
+ :host {
348
348
  /* Border Radius Levels */
349
349
  --seki-radius-sm: 0.25rem; /* 4px */
350
350
  --seki-radius-md: 0.375rem; /* 6px */
@@ -32,11 +32,19 @@ export class SekiInput {
32
32
  this.handleInput = (event) => {
33
33
  const target = event.target;
34
34
  this.value = target.value;
35
+ // Only call setFormValue if internals is available (not in test environment)
36
+ if (this.internals && typeof this.internals.setFormValue === 'function') {
37
+ this.internals.setFormValue(this.value);
38
+ }
35
39
  this.sekiInput.emit({ value: this.value, nativeEvent: event });
36
40
  };
37
41
  this.handleChange = (event) => {
38
42
  const target = event.target;
39
43
  this.value = target.value;
44
+ // Only call setFormValue if internals is available (not in test environment)
45
+ if (this.internals && typeof this.internals.setFormValue === 'function') {
46
+ this.internals.setFormValue(this.value);
47
+ }
40
48
  this.sekiChange.emit({ value: this.value, nativeEvent: event });
41
49
  };
42
50
  this.handleFocus = (event) => {
@@ -47,11 +55,31 @@ export class SekiInput {
47
55
  this.sekiBlur.emit({ value: target.value, nativeEvent: event });
48
56
  };
49
57
  }
58
+ // Form-associated lifecycle callbacks
59
+ formResetCallback() {
60
+ this.value = '';
61
+ if (this.internals && typeof this.internals.setFormValue === 'function') {
62
+ this.internals.setFormValue('');
63
+ }
64
+ }
65
+ formStateRestoreCallback(state) {
66
+ this.value = state;
67
+ if (this.internals && typeof this.internals.setFormValue === 'function') {
68
+ this.internals.setFormValue(state);
69
+ }
70
+ }
71
+ componentWillLoad() {
72
+ // Set initial form value
73
+ if (this.internals && typeof this.internals.setFormValue === 'function') {
74
+ this.internals.setFormValue(this.value || '');
75
+ }
76
+ }
50
77
  render() {
51
- return (h("input", { key: '95dc9689258f013b3eeda42f2d0df353cc3d0edc', 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 }));
78
+ return (h("input", { key: '064e47b431dd96aeaace5092ff3e7fe3ebf9b6c1', 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 }));
52
79
  }
53
80
  static get is() { return "seki-input"; }
54
81
  static get encapsulation() { return "shadow"; }
82
+ static get formAssociated() { return true; }
55
83
  static get originalStyleUrls() {
56
84
  return {
57
85
  "$": ["seki-input.css"]
@@ -500,4 +528,5 @@ export class SekiInput {
500
528
  }
501
529
  }];
502
530
  }
531
+ static get attachInternalsMemberName() { return "internals"; }
503
532
  }