@sekiui/elements 0.1.6 → 0.1.7

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 (213) hide show
  1. package/dist/cjs/accordion-ids-Cjq6aIVd.js +42 -0
  2. package/dist/cjs/direction-Dt-r6_ec.js +14 -0
  3. package/dist/cjs/host-id-C3XieWsk.js +32 -0
  4. package/dist/cjs/layout-DR0fTNAb.js +109 -0
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/seki-accordion-content.cjs.entry.js +27 -25
  7. package/dist/cjs/seki-accordion-item.cjs.entry.js +13 -29
  8. package/dist/cjs/seki-accordion-trigger.cjs.entry.js +36 -28
  9. package/dist/cjs/seki-accordion.cjs.entry.js +18 -12
  10. package/dist/cjs/seki-carousel-dots.cjs.entry.js +15 -7
  11. package/dist/cjs/seki-carousel-next.cjs.entry.js +1 -1
  12. package/dist/cjs/seki-carousel-previous.cjs.entry.js +1 -1
  13. package/dist/cjs/seki-carousel.cjs.entry.js +51 -6
  14. package/dist/cjs/seki-combobox.cjs.entry.js +80 -1
  15. package/dist/cjs/seki-context-menu-content.cjs.entry.js +13 -16
  16. package/dist/cjs/seki-context-menu.cjs.entry.js +14 -9
  17. package/dist/cjs/seki-dropdown-menu-content.cjs.entry.js +13 -16
  18. package/dist/cjs/seki-dropdown-menu-trigger.cjs.entry.js +7 -15
  19. package/dist/cjs/seki-dropdown-menu.cjs.entry.js +14 -9
  20. package/dist/cjs/seki-hover-card-content.cjs.entry.js +27 -33
  21. package/dist/cjs/seki-hover-card-trigger.cjs.entry.js +10 -25
  22. package/dist/cjs/seki-hover-card.cjs.entry.js +7 -6
  23. package/dist/cjs/seki-radio-group-item.cjs.entry.js +18 -1
  24. package/dist/cjs/seki-radio-group.cjs.entry.js +8 -1
  25. package/dist/cjs/seki-resizable-handle.cjs.entry.js +72 -15
  26. package/dist/cjs/seki-resizable-panel-group.cjs.entry.js +11 -107
  27. package/dist/cjs/seki-resizable-panel.cjs.entry.js +5 -3
  28. package/dist/cjs/seki-tabs-content.cjs.entry.js +21 -19
  29. package/dist/cjs/seki-tabs-list.cjs.entry.js +8 -24
  30. package/dist/cjs/seki-tabs-trigger.cjs.entry.js +23 -31
  31. package/dist/cjs/seki-tabs.cjs.entry.js +15 -18
  32. package/dist/cjs/sekiui.cjs.js +1 -1
  33. package/dist/cjs/{tab-ids-BzpIZnUS.js → tab-ids-BOdn1Fu2.js} +14 -0
  34. package/dist/collection/collection-manifest.json +2 -2
  35. package/dist/collection/components/accordion/accordion-ids.js +36 -0
  36. package/dist/collection/components/accordion/seki-accordion-content.js +27 -25
  37. package/dist/collection/components/accordion/seki-accordion-item.js +12 -29
  38. package/dist/collection/components/accordion/seki-accordion-trigger.css +6 -2
  39. package/dist/collection/components/accordion/seki-accordion-trigger.js +37 -28
  40. package/dist/collection/components/accordion/seki-accordion.js +40 -11
  41. package/dist/collection/components/carousel/seki-carousel-dots.js +15 -7
  42. package/dist/collection/components/carousel/seki-carousel-navigation.css +9 -4
  43. package/dist/collection/components/carousel/seki-carousel.js +51 -6
  44. package/dist/collection/components/combobox/seki-combobox.js +103 -1
  45. package/dist/collection/components/context-menu/seki-context-menu-content.js +13 -16
  46. package/dist/collection/components/context-menu/seki-context-menu.js +31 -9
  47. package/dist/collection/components/dropdown-menu/seki-dropdown-menu-content.js +13 -16
  48. package/dist/collection/components/dropdown-menu/seki-dropdown-menu-trigger.js +7 -15
  49. package/dist/collection/components/dropdown-menu/seki-dropdown-menu.js +31 -9
  50. package/dist/collection/components/hover-card/seki-hover-card-content.js +27 -33
  51. package/dist/collection/components/hover-card/seki-hover-card-trigger.js +10 -25
  52. package/dist/collection/components/hover-card/seki-hover-card.js +24 -6
  53. package/dist/collection/components/radio-group/seki-radio-group-item.js +18 -1
  54. package/dist/collection/components/radio-group/seki-radio-group.js +25 -1
  55. package/dist/collection/components/resizable/layout.js +2 -0
  56. package/dist/collection/components/resizable/seki-resizable-handle.css +6 -2
  57. package/dist/collection/components/resizable/seki-resizable-handle.js +71 -14
  58. package/dist/collection/components/resizable/seki-resizable-panel-group.js +5 -2
  59. package/dist/collection/components/resizable/seki-resizable-panel.js +5 -3
  60. package/dist/collection/components/tabs/seki-tabs-content.js +24 -19
  61. package/dist/collection/components/tabs/seki-tabs-list.js +8 -24
  62. package/dist/collection/components/tabs/seki-tabs-trigger.js +24 -19
  63. package/dist/collection/components/tabs/seki-tabs.js +34 -18
  64. package/dist/collection/components/tabs/tab-ids.js +13 -0
  65. package/dist/collection/utils/host-id.js +27 -0
  66. package/dist/components/p-BD28aG2U.js +12 -0
  67. package/dist/components/p-BuvZJ6_r.js +39 -0
  68. package/dist/components/p-DmN32Mrm.js +103 -0
  69. package/dist/components/{p-CmuSriLz.js → p-bxPJJ6k4.js} +14 -1
  70. package/dist/components/p-ppXRAghy.js +29 -0
  71. package/dist/components/seki-accordion-content.js +27 -25
  72. package/dist/components/seki-accordion-item.js +12 -29
  73. package/dist/components/seki-accordion-trigger.js +38 -29
  74. package/dist/components/seki-accordion.js +22 -13
  75. package/dist/components/seki-carousel-dots.js +15 -7
  76. package/dist/components/seki-carousel-next.js +1 -1
  77. package/dist/components/seki-carousel-previous.js +1 -1
  78. package/dist/components/seki-carousel.js +51 -6
  79. package/dist/components/seki-combobox.js +81 -2
  80. package/dist/components/seki-context-menu-content.js +13 -16
  81. package/dist/components/seki-context-menu.js +14 -9
  82. package/dist/components/seki-dropdown-menu-content.js +13 -16
  83. package/dist/components/seki-dropdown-menu-trigger.js +7 -15
  84. package/dist/components/seki-dropdown-menu.js +14 -9
  85. package/dist/components/seki-hover-card-content.js +27 -33
  86. package/dist/components/seki-hover-card-trigger.js +10 -25
  87. package/dist/components/seki-hover-card.js +7 -6
  88. package/dist/components/seki-radio-group-item.js +18 -1
  89. package/dist/components/seki-radio-group.js +8 -1
  90. package/dist/components/seki-resizable-handle.js +72 -15
  91. package/dist/components/seki-resizable-panel-group.js +6 -102
  92. package/dist/components/seki-resizable-panel.js +5 -3
  93. package/dist/components/seki-tabs-content.js +23 -19
  94. package/dist/components/seki-tabs-list.js +8 -24
  95. package/dist/components/seki-tabs-trigger.js +25 -31
  96. package/dist/components/seki-tabs.js +16 -18
  97. package/dist/esm/accordion-ids-D58tRFZv.js +39 -0
  98. package/dist/esm/direction-BD28aG2U.js +12 -0
  99. package/dist/esm/host-id-ppXRAghy.js +29 -0
  100. package/dist/esm/layout-DmN32Mrm.js +103 -0
  101. package/dist/esm/loader.js +1 -1
  102. package/dist/esm/seki-accordion-content.entry.js +27 -25
  103. package/dist/esm/seki-accordion-item.entry.js +13 -29
  104. package/dist/esm/seki-accordion-trigger.entry.js +36 -28
  105. package/dist/esm/seki-accordion.entry.js +18 -12
  106. package/dist/esm/seki-carousel-dots.entry.js +15 -7
  107. package/dist/esm/seki-carousel-next.entry.js +1 -1
  108. package/dist/esm/seki-carousel-previous.entry.js +1 -1
  109. package/dist/esm/seki-carousel.entry.js +51 -6
  110. package/dist/esm/seki-combobox.entry.js +80 -1
  111. package/dist/esm/seki-context-menu-content.entry.js +13 -16
  112. package/dist/esm/seki-context-menu.entry.js +14 -9
  113. package/dist/esm/seki-dropdown-menu-content.entry.js +13 -16
  114. package/dist/esm/seki-dropdown-menu-trigger.entry.js +7 -15
  115. package/dist/esm/seki-dropdown-menu.entry.js +14 -9
  116. package/dist/esm/seki-hover-card-content.entry.js +27 -33
  117. package/dist/esm/seki-hover-card-trigger.entry.js +10 -25
  118. package/dist/esm/seki-hover-card.entry.js +7 -6
  119. package/dist/esm/seki-radio-group-item.entry.js +18 -1
  120. package/dist/esm/seki-radio-group.entry.js +8 -1
  121. package/dist/esm/seki-resizable-handle.entry.js +72 -15
  122. package/dist/esm/seki-resizable-panel-group.entry.js +6 -102
  123. package/dist/esm/seki-resizable-panel.entry.js +5 -3
  124. package/dist/esm/seki-tabs-content.entry.js +21 -19
  125. package/dist/esm/seki-tabs-list.entry.js +8 -24
  126. package/dist/esm/seki-tabs-trigger.entry.js +22 -30
  127. package/dist/esm/seki-tabs.entry.js +15 -18
  128. package/dist/esm/sekiui.js +1 -1
  129. package/dist/esm/{tab-ids-CmuSriLz.js → tab-ids-bxPJJ6k4.js} +14 -1
  130. package/dist/sekiui/p-05646b3d.entry.js +1 -0
  131. package/dist/sekiui/p-06307251.entry.js +1 -0
  132. package/dist/sekiui/p-13206751.entry.js +1 -0
  133. package/dist/sekiui/p-2681547f.entry.js +1 -0
  134. package/dist/sekiui/p-34880473.entry.js +1 -0
  135. package/dist/sekiui/{p-3a950a93.entry.js → p-44c4e0ca.entry.js} +1 -1
  136. package/dist/sekiui/p-45d3e21b.entry.js +1 -0
  137. package/dist/sekiui/p-5a222bfa.entry.js +1 -0
  138. package/dist/sekiui/p-68d2ef55.entry.js +1 -0
  139. package/dist/sekiui/p-78df4dc1.entry.js +1 -0
  140. package/dist/sekiui/p-81e180e1.entry.js +1 -0
  141. package/dist/sekiui/{p-5cb2a9fc.entry.js → p-99aba093.entry.js} +1 -1
  142. package/dist/sekiui/p-BD28aG2U.js +1 -0
  143. package/dist/sekiui/p-BuvZJ6_r.js +1 -0
  144. package/dist/sekiui/p-DmN32Mrm.js +1 -0
  145. package/dist/sekiui/p-ad26ccd9.entry.js +1 -0
  146. package/dist/sekiui/p-b3260d62.entry.js +1 -0
  147. package/dist/sekiui/p-bxPJJ6k4.js +1 -0
  148. package/dist/sekiui/{p-d26b63d0.entry.js → p-c906ad1e.entry.js} +1 -1
  149. package/dist/sekiui/p-cb621f86.entry.js +1 -0
  150. package/dist/sekiui/p-d4863b02.entry.js +1 -0
  151. package/dist/sekiui/p-d81d442f.entry.js +1 -0
  152. package/dist/sekiui/p-d9a625f4.entry.js +1 -0
  153. package/dist/sekiui/p-db922f6f.entry.js +1 -0
  154. package/dist/sekiui/p-e1fbadc1.entry.js +1 -0
  155. package/dist/sekiui/p-e3dc7f49.entry.js +1 -0
  156. package/dist/sekiui/{p-8a96f54c.entry.js → p-ea8654dc.entry.js} +1 -1
  157. package/dist/sekiui/p-eb76021c.entry.js +1 -0
  158. package/dist/sekiui/p-f049f47a.entry.js +1 -0
  159. package/dist/sekiui/p-f0650660.entry.js +1 -0
  160. package/dist/sekiui/p-ppXRAghy.js +1 -0
  161. package/dist/sekiui/sekiui.esm.js +1 -1
  162. package/dist/types/components/accordion/accordion-ids.d.ts +17 -0
  163. package/dist/types/components/accordion/seki-accordion-content.d.ts +3 -3
  164. package/dist/types/components/accordion/seki-accordion-item.d.ts +2 -9
  165. package/dist/types/components/accordion/seki-accordion-trigger.d.ts +4 -4
  166. package/dist/types/components/accordion/seki-accordion.d.ts +7 -2
  167. package/dist/types/components/carousel/seki-carousel.d.ts +10 -0
  168. package/dist/types/components/combobox/seki-combobox.d.ts +13 -0
  169. package/dist/types/components/context-menu/seki-context-menu-content.d.ts +3 -3
  170. package/dist/types/components/context-menu/seki-context-menu.d.ts +6 -0
  171. package/dist/types/components/dropdown-menu/seki-dropdown-menu-content.d.ts +3 -3
  172. package/dist/types/components/dropdown-menu/seki-dropdown-menu-trigger.d.ts +2 -4
  173. package/dist/types/components/dropdown-menu/seki-dropdown-menu.d.ts +6 -0
  174. package/dist/types/components/hover-card/seki-hover-card-content.d.ts +3 -1
  175. package/dist/types/components/hover-card/seki-hover-card-trigger.d.ts +2 -2
  176. package/dist/types/components/hover-card/seki-hover-card.d.ts +5 -1
  177. package/dist/types/components/radio-group/seki-radio-group-item.d.ts +3 -0
  178. package/dist/types/components/radio-group/seki-radio-group.d.ts +14 -0
  179. package/dist/types/components/resizable/layout.d.ts +2 -0
  180. package/dist/types/components/resizable/seki-resizable-handle.d.ts +13 -0
  181. package/dist/types/components/resizable/seki-resizable-panel-group.d.ts +1 -0
  182. package/dist/types/components/resizable/types.d.ts +2 -0
  183. package/dist/types/components/tabs/seki-tabs-content.d.ts +3 -4
  184. package/dist/types/components/tabs/seki-tabs-list.d.ts +2 -5
  185. package/dist/types/components/tabs/seki-tabs-trigger.d.ts +3 -4
  186. package/dist/types/components/tabs/seki-tabs.d.ts +8 -2
  187. package/dist/types/components/tabs/tab-ids.d.ts +5 -0
  188. package/dist/types/components.d.ts +14 -0
  189. package/dist/types/utils/host-id.d.ts +7 -0
  190. package/package.json +1 -1
  191. package/dist/sekiui/p-00ed0a52.entry.js +0 -1
  192. package/dist/sekiui/p-02fe58f7.entry.js +0 -1
  193. package/dist/sekiui/p-044e875d.entry.js +0 -1
  194. package/dist/sekiui/p-1971d77d.entry.js +0 -1
  195. package/dist/sekiui/p-233a4393.entry.js +0 -1
  196. package/dist/sekiui/p-2622ca4c.entry.js +0 -1
  197. package/dist/sekiui/p-28c64e07.entry.js +0 -1
  198. package/dist/sekiui/p-2bd22398.entry.js +0 -1
  199. package/dist/sekiui/p-368d2d15.entry.js +0 -1
  200. package/dist/sekiui/p-49742de9.entry.js +0 -1
  201. package/dist/sekiui/p-5bfb96fd.entry.js +0 -1
  202. package/dist/sekiui/p-5e596590.entry.js +0 -1
  203. package/dist/sekiui/p-78c8c4bf.entry.js +0 -1
  204. package/dist/sekiui/p-88ba7051.entry.js +0 -1
  205. package/dist/sekiui/p-90387022.entry.js +0 -1
  206. package/dist/sekiui/p-CmuSriLz.js +0 -1
  207. package/dist/sekiui/p-af71afe5.entry.js +0 -1
  208. package/dist/sekiui/p-b26b3102.entry.js +0 -1
  209. package/dist/sekiui/p-b43f6733.entry.js +0 -1
  210. package/dist/sekiui/p-bf687983.entry.js +0 -1
  211. package/dist/sekiui/p-eafe8a84.entry.js +0 -1
  212. package/dist/sekiui/p-ec0d8978.entry.js +0 -1
  213. package/dist/sekiui/p-f418ba3a.entry.js +0 -1
@@ -1,6 +1,9 @@
1
1
  import { p as proxyCustomElement, H, h, e as Host } from './p-CBBntrZT.js';
2
+ import { g as getAccordionIds, r as resolveAccordionIds } from './p-BuvZJ6_r.js';
3
+ import { c as claimHostId } from './p-ppXRAghy.js';
4
+ import { C as ContextConsumer } from './p-B4SOpX_A.js';
2
5
 
3
- const sekiAccordionTriggerCss = ":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%);--seki-chart-1:hsl(12, 76%, 61%);--seki-chart-2:hsl(173, 58%, 39%);--seki-chart-3:hsl(197, 37%, 24%);--seki-chart-4:hsl(43, 74%, 66%);--seki-chart-5:hsl(27, 87%, 67%)}:host([data-theme='dark']){color-scheme:dark}:host([data-theme='light']){color-scheme:light}:host{--seki-background:light-dark(hsl(0, 0%, 100%), hsl(0, 0%, 3.9%));--seki-foreground:light-dark(hsl(0, 0%, 3.9%), hsl(0, 0%, 98%));--seki-muted:light-dark(hsl(0, 0%, 96.1%), hsl(0, 0%, 14.9%));--seki-muted-foreground:light-dark(hsl(0, 0%, 42%), hsl(0, 0%, 63.9%));--seki-card:light-dark(hsl(0, 0%, 100%), hsl(0, 0%, 3.9%));--seki-card-foreground:light-dark(hsl(0, 0%, 3.9%), hsl(0, 0%, 98%));--seki-popover:light-dark(hsl(0, 0%, 100%), hsl(0, 0%, 3.9%));--seki-popover-foreground:light-dark(hsl(0, 0%, 3.9%), hsl(0, 0%, 98%));--seki-border:light-dark(hsl(0, 0%, 89.8%), hsl(0, 0%, 14.9%));--seki-input:light-dark(hsl(0, 0%, 89.8%), hsl(0, 0%, 14.9%));--seki-primary:light-dark(hsl(0, 0%, 9%), hsl(0, 0%, 98%));--seki-primary-foreground:light-dark(hsl(0, 0%, 98%), hsl(0, 0%, 9%));--seki-primary-tint:light-dark(hsl(0, 0%, 9%, 0.06), hsl(0, 0%, 98%, 0.1));--seki-primary-tint-foreground:var(--seki-foreground);--seki-secondary:light-dark(hsl(0, 0%, 96.1%), hsl(0, 0%, 14.9%));--seki-secondary-foreground:light-dark(hsl(0, 0%, 9%), hsl(0, 0%, 98%));--seki-accent:light-dark(hsl(0, 0%, 96.1%), hsl(0, 0%, 14.9%));--seki-accent-foreground:light-dark(hsl(0, 0%, 9%), hsl(0, 0%, 98%));--seki-destructive:light-dark(hsl(0, 84.2%, 60.2%), hsl(0, 62.8%, 30.6%));--seki-destructive-foreground:hsl(0, 0%, 98%);--seki-destructive-bg:light-dark(hsl(0, 86%, 97%), rgba(239, 68, 68, 0.1));--seki-destructive-soft-foreground:light-dark(hsl(0, 63%, 31%), hsl(0, 91%, 71%));--seki-success:light-dark(hsl(142, 71%, 45%), hsl(142, 69%, 58%));--seki-success-foreground:light-dark(hsl(142, 64%, 24%), hsl(142, 69%, 58%));--seki-success-bg:light-dark(hsl(142, 76%, 97%), rgba(34, 197, 94, 0.1));--seki-warning:light-dark(hsl(38, 92%, 50%), hsl(43, 96%, 56%));--seki-warning-foreground:light-dark(hsl(21, 77%, 27%), hsl(43, 96%, 56%));--seki-warning-bg:light-dark(hsl(48, 96%, 96%), rgba(245, 158, 11, 0.1));--seki-info:light-dark(hsl(217, 91%, 60%), hsl(217, 92%, 68%));--seki-info-foreground:light-dark(hsl(224, 64%, 33%), hsl(217, 92%, 68%));--seki-info-bg:light-dark(hsl(214, 100%, 97%), rgba(59, 130, 246, 0.1));--seki-ring:light-dark(hsl(0, 0%, 3.9%), hsl(0, 0%, 83.1%));--seki-ring-shadow:hsl(0, 0%, 3.9%, 0.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:light-dark(var(--seki-neutral-400), var(--seki-neutral-600));--seki-border-default:var(--seki-border);--seki-border-emphasis:light-dark(var(--seki-neutral-300), var(--seki-neutral-700))}: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:light-dark(hsl(0, 0%, 9%, 0.9), hsl(0, 0%, 98%, 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:light-dark(hsl(0, 0%, 96.1%, 0.8), hsl(0, 0%, 14.9%, 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);--seki-shadow-xl:0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)}:host{--seki-shadow-xs-plus:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--seki-shadow-card:0 1px 3px 0 rgb(0 0 0 / 0.1);--seki-shadow-card-hover:0 4px 6px 0 rgb(0 0 0 / 0.1);--seki-shadow-thumb-hover:0 2px 6px 0 rgb(0 0 0 / 0.15);--seki-shadow-floating:0 4px 12px 0 rgb(0 0 0 / 0.15);--seki-shadow-floating-sm:0 2px 8px 0 rgb(0 0 0 / 0.1);--seki-shadow-overlay:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--seki-shadow-overlay-top:0 -10px 15px -3px rgb(0 0 0 / 0.1), 0 -4px 6px -4px rgb(0 0 0 / 0.1);--seki-drop-shadow-up:0 -2px 2px rgb(0 0 0 / 0.05);--seki-overlay:light-dark(rgb(0 0 0 / 0.5), rgb(0 0 0 / 0.7));--seki-overlay-strong:rgb(0 0 0 / 0.8)}: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-none:1;--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;--seki-radius-full:9999px;}:host{--seki-sidebar-width:16rem;--seki-sidebar-width-icon:3rem;--seki-sidebar-width-mobile:18rem;--seki-sidebar-background:light-dark(hsl(0, 0%, 98%), hsl(240, 5.9%, 10%));--seki-sidebar-foreground:light-dark(hsl(240, 5.3%, 26.1%), hsl(240, 4.8%, 95.9%));--seki-sidebar-primary:light-dark(hsl(240, 5.9%, 10%), hsl(0, 0%, 98%));--seki-sidebar-primary-foreground:light-dark(hsl(0, 0%, 98%), hsl(240, 5.9%, 10%));--seki-sidebar-accent:light-dark(hsl(240, 4.8%, 95.9%), hsl(240, 3.7%, 15.9%));--seki-sidebar-accent-foreground:light-dark(hsl(240, 5.9%, 10%), hsl(240, 4.8%, 95.9%));--seki-sidebar-border:light-dark(hsl(220, 13%, 91%), hsl(240, 3.7%, 15.9%));--seki-sidebar-ring:hsl(217.2, 91.2%, 59.8%);--seki-sidebar-muted-foreground:light-dark(hsl(240, 3.8%, 46.1%), hsl(240, 5%, 64.9%));--seki-sidebar-menu-button-height:2rem;--seki-sidebar-menu-button-height-lg:3rem;--seki-sidebar-menu-button-padding:0.5rem;--seki-sidebar-menu-button-gap:0.5rem;--seki-sidebar-menu-button-radius:var(--seki-radius-md, 0.375rem);--seki-sidebar-menu-sub-padding-left:1.75rem;--seki-sidebar-menu-sub-border-width:1px;--seki-sidebar-group-padding:0.5rem;--seki-sidebar-group-label-height:2rem;--seki-sidebar-group-label-padding:0.5rem;--seki-sidebar-header-height:auto;--seki-sidebar-footer-height:auto;--seki-sidebar-header-padding:0.5rem;--seki-sidebar-footer-padding:0.5rem;--seki-sidebar-content-padding:0.5rem;--seki-sidebar-rail-width:1rem;--seki-sidebar-transition-duration:200ms;--seki-sidebar-transition-timing:ease-in-out;--seki-sidebar-mobile-breakpoint:768px;--seki-sidebar-overlay-bg:hsla(0, 0%, 0%, 0.8)}:host{--seki-animation-fast:150ms;--seki-animation-normal:200ms;--seki-animation-slow:300ms;--seki-ease-in:cubic-bezier(0.4, 0, 1, 1);--seki-ease-out:cubic-bezier(0, 0, 0.2, 1);--seki-ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--seki-accordion-content-height:auto}@keyframes seki-fade-in{from{opacity:0}to{opacity:1}}@keyframes seki-fade-out{from{opacity:1}to{opacity:0}}@keyframes seki-scale-in{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}@keyframes seki-scale-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.95)}}@keyframes seki-slide-in-from-top{from{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes seki-slide-out-to-top{from{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes seki-slide-in-from-bottom{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes seki-slide-out-to-bottom{from{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes seki-slide-in-from-left{from{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes seki-slide-out-to-left{from{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes seki-slide-in-from-right{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes seki-slide-out-to-right{from{transform:translateX(0)}to{transform:translateX(100%)}}@keyframes seki-accordion-down{from{height:0;opacity:0}to{height:var(--seki-accordion-content-height);opacity:1}}@keyframes seki-accordion-up{from{height:var(--seki-accordion-content-height);opacity:1}to{height:0;opacity:0}}@keyframes seki-zoom-in{from{opacity:0;transform:scale(0.96)}to{opacity:1;transform:scale(1)}}@keyframes seki-zoom-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.96)}}@keyframes seki-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes seki-pulse{0%,100%{opacity:1}50%{opacity:0.5}}@keyframes seki-bounce{0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8, 0, 1, 1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}}@keyframes seki-collapsible-open{from{height:0;overflow:hidden}to{height:var(--seki-collapsible-content-height, auto)}}@keyframes seki-collapsible-close{from{height:var(--seki-collapsible-content-height, auto)}to{height:0;overflow:hidden}}@keyframes seki-toast-slide-in-right{from{transform:translateX(calc(100% + 1rem))}to{transform:translateX(0)}}@keyframes seki-toast-slide-out-right{from{transform:translateX(0)}to{transform:translateX(calc(100% + 1rem))}}@keyframes seki-toast-swipe-out{from{transform:translateX(var(--seki-toast-swipe-end-x, 0))}to{transform:translateX(calc(100% + 1rem))}}.seki-animate-fade-in{animation:seki-fade-in var(--seki-animation-normal) var(--seki-ease-out)}.seki-animate-fade-out{animation:seki-fade-out var(--seki-animation-normal) var(--seki-ease-in)}.seki-animate-scale-in{animation:seki-scale-in var(--seki-animation-normal) var(--seki-ease-out)}.seki-animate-scale-out{animation:seki-scale-out var(--seki-animation-normal) var(--seki-ease-in)}.seki-animate-spin{animation:seki-spin 1s linear infinite}.seki-animate-pulse{animation:seki-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite}.seki-animate-bounce{animation:seki-bounce 1s infinite}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}[data-theme='dark']{color-scheme:dark}[data-theme='light']{color-scheme:light}:host{display:block}:host([data-disabled]){pointer-events:none}.accordion-trigger{display:flex;flex:1;align-items:center;justify-content:space-between;width:100%;padding:1rem 0;font-family:var(--seki-font-sans, system-ui, sans-serif);font-size:var(--seki-font-size-sm, 0.875rem);font-weight:var(--seki-font-weight-medium, 500);line-height:var(--seki-line-height-normal, 1.5);color:inherit;text-align:left;background:transparent;border:none;cursor:pointer;transition:text-decoration-color 0.2s ease;-webkit-appearance:none;appearance:none}.accordion-trigger:hover{text-decoration:underline}.accordion-trigger:disabled{opacity:0.5;cursor:not-allowed;text-decoration:none}.accordion-trigger:focus-visible{outline:2px solid var(--seki-ring, hsl(240 5% 64.9%));outline-offset:2px;border-radius:var(--seki-radius-sm, 0.25rem)}.accordion-chevron{flex-shrink:0;width:1rem;height:1rem;color:var(--seki-muted-foreground, hsl(0, 0%, 42%));transition:transform var(--seki-animation-normal, 200ms) var(--seki-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1))}.accordion-chevron--open{transform:rotate(180deg)}@media (prefers-reduced-motion: reduce){.accordion-trigger,.accordion-chevron{transition:none}}";
6
+ const sekiAccordionTriggerCss = ":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%);--seki-chart-1:hsl(12, 76%, 61%);--seki-chart-2:hsl(173, 58%, 39%);--seki-chart-3:hsl(197, 37%, 24%);--seki-chart-4:hsl(43, 74%, 66%);--seki-chart-5:hsl(27, 87%, 67%)}:host([data-theme='dark']){color-scheme:dark}:host([data-theme='light']){color-scheme:light}:host{--seki-background:light-dark(hsl(0, 0%, 100%), hsl(0, 0%, 3.9%));--seki-foreground:light-dark(hsl(0, 0%, 3.9%), hsl(0, 0%, 98%));--seki-muted:light-dark(hsl(0, 0%, 96.1%), hsl(0, 0%, 14.9%));--seki-muted-foreground:light-dark(hsl(0, 0%, 42%), hsl(0, 0%, 63.9%));--seki-card:light-dark(hsl(0, 0%, 100%), hsl(0, 0%, 3.9%));--seki-card-foreground:light-dark(hsl(0, 0%, 3.9%), hsl(0, 0%, 98%));--seki-popover:light-dark(hsl(0, 0%, 100%), hsl(0, 0%, 3.9%));--seki-popover-foreground:light-dark(hsl(0, 0%, 3.9%), hsl(0, 0%, 98%));--seki-border:light-dark(hsl(0, 0%, 89.8%), hsl(0, 0%, 14.9%));--seki-input:light-dark(hsl(0, 0%, 89.8%), hsl(0, 0%, 14.9%));--seki-primary:light-dark(hsl(0, 0%, 9%), hsl(0, 0%, 98%));--seki-primary-foreground:light-dark(hsl(0, 0%, 98%), hsl(0, 0%, 9%));--seki-primary-tint:light-dark(hsl(0, 0%, 9%, 0.06), hsl(0, 0%, 98%, 0.1));--seki-primary-tint-foreground:var(--seki-foreground);--seki-secondary:light-dark(hsl(0, 0%, 96.1%), hsl(0, 0%, 14.9%));--seki-secondary-foreground:light-dark(hsl(0, 0%, 9%), hsl(0, 0%, 98%));--seki-accent:light-dark(hsl(0, 0%, 96.1%), hsl(0, 0%, 14.9%));--seki-accent-foreground:light-dark(hsl(0, 0%, 9%), hsl(0, 0%, 98%));--seki-destructive:light-dark(hsl(0, 84.2%, 60.2%), hsl(0, 62.8%, 30.6%));--seki-destructive-foreground:hsl(0, 0%, 98%);--seki-destructive-bg:light-dark(hsl(0, 86%, 97%), rgba(239, 68, 68, 0.1));--seki-destructive-soft-foreground:light-dark(hsl(0, 63%, 31%), hsl(0, 91%, 71%));--seki-success:light-dark(hsl(142, 71%, 45%), hsl(142, 69%, 58%));--seki-success-foreground:light-dark(hsl(142, 64%, 24%), hsl(142, 69%, 58%));--seki-success-bg:light-dark(hsl(142, 76%, 97%), rgba(34, 197, 94, 0.1));--seki-warning:light-dark(hsl(38, 92%, 50%), hsl(43, 96%, 56%));--seki-warning-foreground:light-dark(hsl(21, 77%, 27%), hsl(43, 96%, 56%));--seki-warning-bg:light-dark(hsl(48, 96%, 96%), rgba(245, 158, 11, 0.1));--seki-info:light-dark(hsl(217, 91%, 60%), hsl(217, 92%, 68%));--seki-info-foreground:light-dark(hsl(224, 64%, 33%), hsl(217, 92%, 68%));--seki-info-bg:light-dark(hsl(214, 100%, 97%), rgba(59, 130, 246, 0.1));--seki-ring:light-dark(hsl(0, 0%, 3.9%), hsl(0, 0%, 83.1%));--seki-ring-shadow:hsl(0, 0%, 3.9%, 0.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:light-dark(var(--seki-neutral-400), var(--seki-neutral-600));--seki-border-default:var(--seki-border);--seki-border-emphasis:light-dark(var(--seki-neutral-300), var(--seki-neutral-700))}: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:light-dark(hsl(0, 0%, 9%, 0.9), hsl(0, 0%, 98%, 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:light-dark(hsl(0, 0%, 96.1%, 0.8), hsl(0, 0%, 14.9%, 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);--seki-shadow-xl:0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)}:host{--seki-shadow-xs-plus:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--seki-shadow-card:0 1px 3px 0 rgb(0 0 0 / 0.1);--seki-shadow-card-hover:0 4px 6px 0 rgb(0 0 0 / 0.1);--seki-shadow-thumb-hover:0 2px 6px 0 rgb(0 0 0 / 0.15);--seki-shadow-floating:0 4px 12px 0 rgb(0 0 0 / 0.15);--seki-shadow-floating-sm:0 2px 8px 0 rgb(0 0 0 / 0.1);--seki-shadow-overlay:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--seki-shadow-overlay-top:0 -10px 15px -3px rgb(0 0 0 / 0.1), 0 -4px 6px -4px rgb(0 0 0 / 0.1);--seki-drop-shadow-up:0 -2px 2px rgb(0 0 0 / 0.05);--seki-overlay:light-dark(rgb(0 0 0 / 0.5), rgb(0 0 0 / 0.7));--seki-overlay-strong:rgb(0 0 0 / 0.8)}: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-none:1;--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;--seki-radius-full:9999px;}:host{--seki-sidebar-width:16rem;--seki-sidebar-width-icon:3rem;--seki-sidebar-width-mobile:18rem;--seki-sidebar-background:light-dark(hsl(0, 0%, 98%), hsl(240, 5.9%, 10%));--seki-sidebar-foreground:light-dark(hsl(240, 5.3%, 26.1%), hsl(240, 4.8%, 95.9%));--seki-sidebar-primary:light-dark(hsl(240, 5.9%, 10%), hsl(0, 0%, 98%));--seki-sidebar-primary-foreground:light-dark(hsl(0, 0%, 98%), hsl(240, 5.9%, 10%));--seki-sidebar-accent:light-dark(hsl(240, 4.8%, 95.9%), hsl(240, 3.7%, 15.9%));--seki-sidebar-accent-foreground:light-dark(hsl(240, 5.9%, 10%), hsl(240, 4.8%, 95.9%));--seki-sidebar-border:light-dark(hsl(220, 13%, 91%), hsl(240, 3.7%, 15.9%));--seki-sidebar-ring:hsl(217.2, 91.2%, 59.8%);--seki-sidebar-muted-foreground:light-dark(hsl(240, 3.8%, 46.1%), hsl(240, 5%, 64.9%));--seki-sidebar-menu-button-height:2rem;--seki-sidebar-menu-button-height-lg:3rem;--seki-sidebar-menu-button-padding:0.5rem;--seki-sidebar-menu-button-gap:0.5rem;--seki-sidebar-menu-button-radius:var(--seki-radius-md, 0.375rem);--seki-sidebar-menu-sub-padding-left:1.75rem;--seki-sidebar-menu-sub-border-width:1px;--seki-sidebar-group-padding:0.5rem;--seki-sidebar-group-label-height:2rem;--seki-sidebar-group-label-padding:0.5rem;--seki-sidebar-header-height:auto;--seki-sidebar-footer-height:auto;--seki-sidebar-header-padding:0.5rem;--seki-sidebar-footer-padding:0.5rem;--seki-sidebar-content-padding:0.5rem;--seki-sidebar-rail-width:1rem;--seki-sidebar-transition-duration:200ms;--seki-sidebar-transition-timing:ease-in-out;--seki-sidebar-mobile-breakpoint:768px;--seki-sidebar-overlay-bg:hsla(0, 0%, 0%, 0.8)}:host{--seki-animation-fast:150ms;--seki-animation-normal:200ms;--seki-animation-slow:300ms;--seki-ease-in:cubic-bezier(0.4, 0, 1, 1);--seki-ease-out:cubic-bezier(0, 0, 0.2, 1);--seki-ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--seki-accordion-content-height:auto}@keyframes seki-fade-in{from{opacity:0}to{opacity:1}}@keyframes seki-fade-out{from{opacity:1}to{opacity:0}}@keyframes seki-scale-in{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}@keyframes seki-scale-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.95)}}@keyframes seki-slide-in-from-top{from{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes seki-slide-out-to-top{from{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes seki-slide-in-from-bottom{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes seki-slide-out-to-bottom{from{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes seki-slide-in-from-left{from{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes seki-slide-out-to-left{from{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes seki-slide-in-from-right{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes seki-slide-out-to-right{from{transform:translateX(0)}to{transform:translateX(100%)}}@keyframes seki-accordion-down{from{height:0;opacity:0}to{height:var(--seki-accordion-content-height);opacity:1}}@keyframes seki-accordion-up{from{height:var(--seki-accordion-content-height);opacity:1}to{height:0;opacity:0}}@keyframes seki-zoom-in{from{opacity:0;transform:scale(0.96)}to{opacity:1;transform:scale(1)}}@keyframes seki-zoom-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.96)}}@keyframes seki-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes seki-pulse{0%,100%{opacity:1}50%{opacity:0.5}}@keyframes seki-bounce{0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8, 0, 1, 1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}}@keyframes seki-collapsible-open{from{height:0;overflow:hidden}to{height:var(--seki-collapsible-content-height, auto)}}@keyframes seki-collapsible-close{from{height:var(--seki-collapsible-content-height, auto)}to{height:0;overflow:hidden}}@keyframes seki-toast-slide-in-right{from{transform:translateX(calc(100% + 1rem))}to{transform:translateX(0)}}@keyframes seki-toast-slide-out-right{from{transform:translateX(0)}to{transform:translateX(calc(100% + 1rem))}}@keyframes seki-toast-swipe-out{from{transform:translateX(var(--seki-toast-swipe-end-x, 0))}to{transform:translateX(calc(100% + 1rem))}}.seki-animate-fade-in{animation:seki-fade-in var(--seki-animation-normal) var(--seki-ease-out)}.seki-animate-fade-out{animation:seki-fade-out var(--seki-animation-normal) var(--seki-ease-in)}.seki-animate-scale-in{animation:seki-scale-in var(--seki-animation-normal) var(--seki-ease-out)}.seki-animate-scale-out{animation:seki-scale-out var(--seki-animation-normal) var(--seki-ease-in)}.seki-animate-spin{animation:seki-spin 1s linear infinite}.seki-animate-pulse{animation:seki-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite}.seki-animate-bounce{animation:seki-bounce 1s infinite}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}[data-theme='dark']{color-scheme:dark}[data-theme='light']{color-scheme:light}:host{display:block}:host([data-disabled]){pointer-events:none}.accordion-trigger{display:flex;flex:1;align-items:center;justify-content:space-between;width:100%;padding:1rem 0;font-family:var(--seki-font-sans, system-ui, sans-serif);font-size:var(--seki-font-size-sm, 0.875rem);font-weight:var(--seki-font-weight-medium, 500);line-height:var(--seki-line-height-normal, 1.5);color:inherit;text-align:left;background:transparent;border:none;cursor:pointer;transition:text-decoration-color 0.2s ease;-webkit-appearance:none;appearance:none}.accordion-trigger:hover{text-decoration:underline}:host([data-disabled]) .accordion-trigger{opacity:0.5;cursor:not-allowed;text-decoration:none}:host(:focus-visible){outline:none}:host(:focus-visible) .accordion-trigger{outline:2px solid var(--seki-ring, hsl(240 5% 64.9%));outline-offset:2px;border-radius:var(--seki-radius-sm, 0.25rem)}.accordion-chevron{flex-shrink:0;width:1rem;height:1rem;color:var(--seki-muted-foreground, hsl(0, 0%, 42%));transition:transform var(--seki-animation-normal, 200ms) var(--seki-ease-in-out, cubic-bezier(0.4, 0, 0.2, 1))}.accordion-chevron--open{transform:rotate(180deg)}@media (prefers-reduced-motion: reduce){.accordion-trigger,.accordion-chevron{transition:none}}";
4
7
 
5
8
  const SekiAccordionTrigger$1 = /*@__PURE__*/ proxyCustomElement(class SekiAccordionTrigger extends H {
6
9
  constructor(registerHost) {
@@ -10,21 +13,32 @@ const SekiAccordionTrigger$1 = /*@__PURE__*/ proxyCustomElement(class SekiAccord
10
13
  }
11
14
  this.__attachShadow();
12
15
  this._isOpen = false;
13
- this.onAccordionValueChange = () => {
14
- var _a;
15
- const context = this.getItemContext();
16
- this._isOpen = (_a = context === null || context === void 0 ? void 0 : context.isOpen) !== null && _a !== void 0 ? _a : false;
17
- };
16
+ this._disabled = false;
17
+ this.accordion = new ContextConsumer('seki-accordion', '_accordionContext', (ctx) => {
18
+ var _a, _b;
19
+ this._isOpen = this.readIsOpen();
20
+ // Derived from the accordion and the item's attribute (what handleClick
21
+ // checks), not from the item's cached context, which may not exist yet when
22
+ // the item upgrades after this trigger.
23
+ const item = this.el.closest('seki-accordion-item');
24
+ this._disabled = ((_a = item === null || item === void 0 ? void 0 : item.hasAttribute('disabled')) !== null && _a !== void 0 ? _a : false) || ((_b = ctx === null || ctx === void 0 ? void 0 : ctx.disabled) !== null && _b !== void 0 ? _b : false);
25
+ });
26
+ }
27
+ // Read open state straight from the accordion: the item's cached context may
28
+ // not have been refreshed yet when this listener runs.
29
+ readIsOpen() {
30
+ var _a, _b, _c;
31
+ const value = (_a = this.el.closest('seki-accordion-item')) === null || _a === void 0 ? void 0 : _a.getAttribute('value');
32
+ const ctx = this.accordion.context;
33
+ return value && ctx ? ctx.isItemOpen(value) : ((_c = (_b = this.getItemContext()) === null || _b === void 0 ? void 0 : _b.isOpen) !== null && _c !== void 0 ? _c : false);
18
34
  }
19
35
  getItemContext() {
20
36
  const item = this.el.closest('seki-accordion-item');
21
37
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
38
  return item ? item._accordionItemContext : null;
23
39
  }
24
- componentWillRender() {
25
- var _a;
26
- const context = this.getItemContext();
27
- this._isOpen = (_a = context === null || context === void 0 ? void 0 : context.isOpen) !== null && _a !== void 0 ? _a : false;
40
+ connectedCallback() {
41
+ this.accordion.connect(this.el);
28
42
  }
29
43
  handleClick() {
30
44
  // Direct method call - no closures, no timing issues
@@ -105,34 +119,29 @@ const SekiAccordionTrigger$1 = /*@__PURE__*/ proxyCustomElement(class SekiAccord
105
119
  const triggers = this.getAllTriggers();
106
120
  (_a = triggers[triggers.length - 1]) === null || _a === void 0 ? void 0 : _a.focus();
107
121
  }
108
- componentDidLoad() {
109
- var _a, _b;
110
- // Listen for value changes from parent accordion
111
- this.accordionEl = (_a = this.el.closest('seki-accordion')) !== null && _a !== void 0 ? _a : undefined;
112
- (_b = this.accordionEl) === null || _b === void 0 ? void 0 : _b.addEventListener('sekiValueChange', this.onAccordionValueChange);
113
- }
114
122
  disconnectedCallback() {
115
- var _a;
116
- (_a = this.accordionEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('sekiValueChange', this.onAccordionValueChange);
123
+ this.accordion.disconnect();
117
124
  }
118
125
  render() {
119
- var _a, _b, _c, _d;
120
- const context = this.getItemContext();
121
- const isOpen = (_a = context === null || context === void 0 ? void 0 : context.isOpen) !== null && _a !== void 0 ? _a : false;
122
- const disabled = (_b = context === null || context === void 0 ? void 0 : context.disabled) !== null && _b !== void 0 ? _b : false;
123
- const contentId = (_c = context === null || context === void 0 ? void 0 : context.contentId) !== null && _c !== void 0 ? _c : '';
124
- const triggerId = (_d = context === null || context === void 0 ? void 0 : context.triggerId) !== null && _d !== void 0 ? _d : '';
125
- return (h(Host, { key: 'ecc2cf4c4c44872c22755937e4056f2c5e6dbc8e', "data-state": isOpen ? 'open' : 'closed', "data-disabled": disabled ? '' : undefined, tabindex: disabled ? -1 : 0, role: "button" }, h("button", { key: '03e96da86d67bd9ff1d0630c312658d81e20cee0', part: "trigger", type: "button", id: triggerId, class: "accordion-trigger", "aria-expanded": isOpen ? 'true' : 'false', "aria-controls": contentId, disabled: disabled,
126
- // The host is the single tab stop and handles the keyboard.
127
- tabindex: -1 }, h("slot", { key: 'b2040f79657b46c4b081f2c1a72d6f81521766d4' }), h("svg", { key: 'bda6e302ee1d4e723b17a7807c0d2c8c879241a7', part: "icon", class: {
126
+ const isOpen = this._isOpen;
127
+ const disabled = this._disabled;
128
+ // IDREFs cannot cross shadow roots, so the id / aria-controls / aria-expanded
129
+ // live on this light-DOM host and point at the content host. An author id on
130
+ // either host is kept.
131
+ const item = this.el.closest('seki-accordion-item');
132
+ const ids = getAccordionIds(item);
133
+ const hostId = claimHostId(this.el, ids.triggerId);
134
+ const { contentId } = resolveAccordionIds(item);
135
+ return (h(Host, { key: 'e8460b73584f77661d9ef18d0b84042ccce84545', id: hostId, "data-state": isOpen ? 'open' : 'closed', "data-disabled": disabled ? '' : undefined, tabindex: disabled ? -1 : 0, role: "button", "aria-expanded": isOpen ? 'true' : 'false', "aria-controls": contentId, "aria-disabled": disabled ? 'true' : undefined }, h("div", { key: '025c1edaf275243cc2364db8d8e9cf2d19b23acd', part: "trigger", class: "accordion-trigger" }, h("slot", { key: '859a324fb14c061aea66533206a155c5080cb172' }), h("svg", { key: '87a6a132ee575ef3a7702d2a4873c9d8f6d5885e', part: "icon", class: {
128
136
  'accordion-chevron': true,
129
137
  'accordion-chevron--open': isOpen,
130
- }, xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("path", { key: '2507810e95127aee8bf85af8f4930e2644975625', d: "m6 9 6 6 6-6" })))));
138
+ }, xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("path", { key: '849c07b8fa675659f8bb7cb035dde02820796cfd', d: "m6 9 6 6 6-6" })))));
131
139
  }
132
140
  get el() { return this; }
133
141
  static get style() { return sekiAccordionTriggerCss; }
134
142
  }, [257, "seki-accordion-trigger", {
135
- "_isOpen": [32]
143
+ "_isOpen": [32],
144
+ "_disabled": [32]
136
145
  }, [[0, "click", "handleClick"], [0, "keydown", "handleKeyDown"]]]);
137
146
  function defineCustomElement$1() {
138
147
  if (typeof customElements === "undefined") {
@@ -1,4 +1,5 @@
1
1
  import { p as proxyCustomElement, H, d as createEvent, h, e as Host } from './p-CBBntrZT.js';
2
+ import { p as publishContext } from './p-B4SOpX_A.js';
2
3
 
3
4
  const sekiAccordionCss = ":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%);--seki-chart-1:hsl(12, 76%, 61%);--seki-chart-2:hsl(173, 58%, 39%);--seki-chart-3:hsl(197, 37%, 24%);--seki-chart-4:hsl(43, 74%, 66%);--seki-chart-5:hsl(27, 87%, 67%)}:host([data-theme='dark']){color-scheme:dark}:host([data-theme='light']){color-scheme:light}:host{--seki-background:light-dark(hsl(0, 0%, 100%), hsl(0, 0%, 3.9%));--seki-foreground:light-dark(hsl(0, 0%, 3.9%), hsl(0, 0%, 98%));--seki-muted:light-dark(hsl(0, 0%, 96.1%), hsl(0, 0%, 14.9%));--seki-muted-foreground:light-dark(hsl(0, 0%, 42%), hsl(0, 0%, 63.9%));--seki-card:light-dark(hsl(0, 0%, 100%), hsl(0, 0%, 3.9%));--seki-card-foreground:light-dark(hsl(0, 0%, 3.9%), hsl(0, 0%, 98%));--seki-popover:light-dark(hsl(0, 0%, 100%), hsl(0, 0%, 3.9%));--seki-popover-foreground:light-dark(hsl(0, 0%, 3.9%), hsl(0, 0%, 98%));--seki-border:light-dark(hsl(0, 0%, 89.8%), hsl(0, 0%, 14.9%));--seki-input:light-dark(hsl(0, 0%, 89.8%), hsl(0, 0%, 14.9%));--seki-primary:light-dark(hsl(0, 0%, 9%), hsl(0, 0%, 98%));--seki-primary-foreground:light-dark(hsl(0, 0%, 98%), hsl(0, 0%, 9%));--seki-primary-tint:light-dark(hsl(0, 0%, 9%, 0.06), hsl(0, 0%, 98%, 0.1));--seki-primary-tint-foreground:var(--seki-foreground);--seki-secondary:light-dark(hsl(0, 0%, 96.1%), hsl(0, 0%, 14.9%));--seki-secondary-foreground:light-dark(hsl(0, 0%, 9%), hsl(0, 0%, 98%));--seki-accent:light-dark(hsl(0, 0%, 96.1%), hsl(0, 0%, 14.9%));--seki-accent-foreground:light-dark(hsl(0, 0%, 9%), hsl(0, 0%, 98%));--seki-destructive:light-dark(hsl(0, 84.2%, 60.2%), hsl(0, 62.8%, 30.6%));--seki-destructive-foreground:hsl(0, 0%, 98%);--seki-destructive-bg:light-dark(hsl(0, 86%, 97%), rgba(239, 68, 68, 0.1));--seki-destructive-soft-foreground:light-dark(hsl(0, 63%, 31%), hsl(0, 91%, 71%));--seki-success:light-dark(hsl(142, 71%, 45%), hsl(142, 69%, 58%));--seki-success-foreground:light-dark(hsl(142, 64%, 24%), hsl(142, 69%, 58%));--seki-success-bg:light-dark(hsl(142, 76%, 97%), rgba(34, 197, 94, 0.1));--seki-warning:light-dark(hsl(38, 92%, 50%), hsl(43, 96%, 56%));--seki-warning-foreground:light-dark(hsl(21, 77%, 27%), hsl(43, 96%, 56%));--seki-warning-bg:light-dark(hsl(48, 96%, 96%), rgba(245, 158, 11, 0.1));--seki-info:light-dark(hsl(217, 91%, 60%), hsl(217, 92%, 68%));--seki-info-foreground:light-dark(hsl(224, 64%, 33%), hsl(217, 92%, 68%));--seki-info-bg:light-dark(hsl(214, 100%, 97%), rgba(59, 130, 246, 0.1));--seki-ring:light-dark(hsl(0, 0%, 3.9%), hsl(0, 0%, 83.1%));--seki-ring-shadow:hsl(0, 0%, 3.9%, 0.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:light-dark(var(--seki-neutral-400), var(--seki-neutral-600));--seki-border-default:var(--seki-border);--seki-border-emphasis:light-dark(var(--seki-neutral-300), var(--seki-neutral-700))}: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:light-dark(hsl(0, 0%, 9%, 0.9), hsl(0, 0%, 98%, 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:light-dark(hsl(0, 0%, 96.1%, 0.8), hsl(0, 0%, 14.9%, 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);--seki-shadow-xl:0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)}:host{--seki-shadow-xs-plus:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--seki-shadow-card:0 1px 3px 0 rgb(0 0 0 / 0.1);--seki-shadow-card-hover:0 4px 6px 0 rgb(0 0 0 / 0.1);--seki-shadow-thumb-hover:0 2px 6px 0 rgb(0 0 0 / 0.15);--seki-shadow-floating:0 4px 12px 0 rgb(0 0 0 / 0.15);--seki-shadow-floating-sm:0 2px 8px 0 rgb(0 0 0 / 0.1);--seki-shadow-overlay:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--seki-shadow-overlay-top:0 -10px 15px -3px rgb(0 0 0 / 0.1), 0 -4px 6px -4px rgb(0 0 0 / 0.1);--seki-drop-shadow-up:0 -2px 2px rgb(0 0 0 / 0.05);--seki-overlay:light-dark(rgb(0 0 0 / 0.5), rgb(0 0 0 / 0.7));--seki-overlay-strong:rgb(0 0 0 / 0.8)}: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-none:1;--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;--seki-radius-full:9999px;}:host{--seki-sidebar-width:16rem;--seki-sidebar-width-icon:3rem;--seki-sidebar-width-mobile:18rem;--seki-sidebar-background:light-dark(hsl(0, 0%, 98%), hsl(240, 5.9%, 10%));--seki-sidebar-foreground:light-dark(hsl(240, 5.3%, 26.1%), hsl(240, 4.8%, 95.9%));--seki-sidebar-primary:light-dark(hsl(240, 5.9%, 10%), hsl(0, 0%, 98%));--seki-sidebar-primary-foreground:light-dark(hsl(0, 0%, 98%), hsl(240, 5.9%, 10%));--seki-sidebar-accent:light-dark(hsl(240, 4.8%, 95.9%), hsl(240, 3.7%, 15.9%));--seki-sidebar-accent-foreground:light-dark(hsl(240, 5.9%, 10%), hsl(240, 4.8%, 95.9%));--seki-sidebar-border:light-dark(hsl(220, 13%, 91%), hsl(240, 3.7%, 15.9%));--seki-sidebar-ring:hsl(217.2, 91.2%, 59.8%);--seki-sidebar-muted-foreground:light-dark(hsl(240, 3.8%, 46.1%), hsl(240, 5%, 64.9%));--seki-sidebar-menu-button-height:2rem;--seki-sidebar-menu-button-height-lg:3rem;--seki-sidebar-menu-button-padding:0.5rem;--seki-sidebar-menu-button-gap:0.5rem;--seki-sidebar-menu-button-radius:var(--seki-radius-md, 0.375rem);--seki-sidebar-menu-sub-padding-left:1.75rem;--seki-sidebar-menu-sub-border-width:1px;--seki-sidebar-group-padding:0.5rem;--seki-sidebar-group-label-height:2rem;--seki-sidebar-group-label-padding:0.5rem;--seki-sidebar-header-height:auto;--seki-sidebar-footer-height:auto;--seki-sidebar-header-padding:0.5rem;--seki-sidebar-footer-padding:0.5rem;--seki-sidebar-content-padding:0.5rem;--seki-sidebar-rail-width:1rem;--seki-sidebar-transition-duration:200ms;--seki-sidebar-transition-timing:ease-in-out;--seki-sidebar-mobile-breakpoint:768px;--seki-sidebar-overlay-bg:hsla(0, 0%, 0%, 0.8)}:host{--seki-animation-fast:150ms;--seki-animation-normal:200ms;--seki-animation-slow:300ms;--seki-ease-in:cubic-bezier(0.4, 0, 1, 1);--seki-ease-out:cubic-bezier(0, 0, 0.2, 1);--seki-ease-in-out:cubic-bezier(0.4, 0, 0.2, 1);--seki-accordion-content-height:auto}@keyframes seki-fade-in{from{opacity:0}to{opacity:1}}@keyframes seki-fade-out{from{opacity:1}to{opacity:0}}@keyframes seki-scale-in{from{opacity:0;transform:scale(0.95)}to{opacity:1;transform:scale(1)}}@keyframes seki-scale-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.95)}}@keyframes seki-slide-in-from-top{from{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes seki-slide-out-to-top{from{transform:translateY(0)}to{transform:translateY(-100%)}}@keyframes seki-slide-in-from-bottom{from{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes seki-slide-out-to-bottom{from{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes seki-slide-in-from-left{from{transform:translateX(-100%)}to{transform:translateX(0)}}@keyframes seki-slide-out-to-left{from{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes seki-slide-in-from-right{from{transform:translateX(100%)}to{transform:translateX(0)}}@keyframes seki-slide-out-to-right{from{transform:translateX(0)}to{transform:translateX(100%)}}@keyframes seki-accordion-down{from{height:0;opacity:0}to{height:var(--seki-accordion-content-height);opacity:1}}@keyframes seki-accordion-up{from{height:var(--seki-accordion-content-height);opacity:1}to{height:0;opacity:0}}@keyframes seki-zoom-in{from{opacity:0;transform:scale(0.96)}to{opacity:1;transform:scale(1)}}@keyframes seki-zoom-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(0.96)}}@keyframes seki-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes seki-pulse{0%,100%{opacity:1}50%{opacity:0.5}}@keyframes seki-bounce{0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(0.8, 0, 1, 1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}}@keyframes seki-collapsible-open{from{height:0;overflow:hidden}to{height:var(--seki-collapsible-content-height, auto)}}@keyframes seki-collapsible-close{from{height:var(--seki-collapsible-content-height, auto)}to{height:0;overflow:hidden}}@keyframes seki-toast-slide-in-right{from{transform:translateX(calc(100% + 1rem))}to{transform:translateX(0)}}@keyframes seki-toast-slide-out-right{from{transform:translateX(0)}to{transform:translateX(calc(100% + 1rem))}}@keyframes seki-toast-swipe-out{from{transform:translateX(var(--seki-toast-swipe-end-x, 0))}to{transform:translateX(calc(100% + 1rem))}}.seki-animate-fade-in{animation:seki-fade-in var(--seki-animation-normal) var(--seki-ease-out)}.seki-animate-fade-out{animation:seki-fade-out var(--seki-animation-normal) var(--seki-ease-in)}.seki-animate-scale-in{animation:seki-scale-in var(--seki-animation-normal) var(--seki-ease-out)}.seki-animate-scale-out{animation:seki-scale-out var(--seki-animation-normal) var(--seki-ease-in)}.seki-animate-spin{animation:seki-spin 1s linear infinite}.seki-animate-pulse{animation:seki-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite}.seki-animate-bounce{animation:seki-bounce 1s infinite}@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important}}[data-theme='dark']{color-scheme:dark}[data-theme='light']{color-scheme:light}:host{display:block}:host([disabled]){pointer-events:none;opacity:0.5}.accordion{display:flex;flex-direction:column}";
4
5
 
@@ -10,6 +11,7 @@ const SekiAccordion$1 = /*@__PURE__*/ proxyCustomElement(class SekiAccordion ext
10
11
  }
11
12
  this.__attachShadow();
12
13
  this.sekiValueChange = createEvent(this, "sekiValueChange");
14
+ this.contextChange = createEvent(this, "sekiContextChange");
13
15
  /**
14
16
  * Accordion type - single allows only one item open, multiple allows many
15
17
  */
@@ -34,10 +36,14 @@ const SekiAccordion$1 = /*@__PURE__*/ proxyCustomElement(class SekiAccordion ext
34
36
  if (initialValue) {
35
37
  this._openItems = Array.isArray(initialValue) ? [...initialValue] : [initialValue];
36
38
  }
39
+ // Parts already upgraded hear this; parts that upgrade later read it when
40
+ // they connect (#384).
41
+ this.publish();
37
42
  }
38
43
  valueChanged(newValue) {
39
44
  if (newValue !== undefined) {
40
45
  this._openItems = Array.isArray(newValue) ? [...newValue] : [newValue];
46
+ this.publish();
41
47
  // Programmatic `accordionEl.value = x` must notify already-mounted
42
48
  // children the same way toggleItem() does (found during #261 audit).
43
49
  this.sekiValueChange.emit(newValue);
@@ -55,6 +61,7 @@ const SekiAccordion$1 = /*@__PURE__*/ proxyCustomElement(class SekiAccordion ext
55
61
  // Only close if collapsible
56
62
  if (this.collapsible) {
57
63
  this._openItems = [];
64
+ this.publish();
58
65
  // Unlike the open/multiple-mode branches below, this direct emit
59
66
  // must stay: @Watch('value')'s handler skips emitting when
60
67
  // newValue is undefined (a pre-existing guard), so this is the
@@ -84,9 +91,10 @@ const SekiAccordion$1 = /*@__PURE__*/ proxyCustomElement(class SekiAccordion ext
84
91
  // separate emit needed (found during #268).
85
92
  this.value = [...this._openItems];
86
93
  }
87
- // Update context for child components
88
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
89
- this.el._accordionContext = this.getContext();
94
+ this.publish();
95
+ }
96
+ publish() {
97
+ publishContext(this.el, '_accordionContext', this.getContext(), this.contextChange);
90
98
  }
91
99
  isItemOpen(itemValue) {
92
100
  return this._openItems.includes(itemValue);
@@ -101,20 +109,18 @@ const SekiAccordion$1 = /*@__PURE__*/ proxyCustomElement(class SekiAccordion ext
101
109
  isItemOpen: (itemValue) => this.isItemOpen(itemValue),
102
110
  };
103
111
  }
104
- componentDidLoad() {
105
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
106
- this.el._accordionContext = this.getContext();
107
- }
108
- componentDidUpdate() {
109
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
110
- this.el._accordionContext = this.getContext();
112
+ settingsChanged() {
113
+ this.publish();
111
114
  }
112
115
  render() {
113
- return (h(Host, { key: '1b5ed02b2fc9c58659f70b4ef98b7624623a9477', "data-disabled": this.disabled ? '' : undefined }, h("div", { key: 'e9f375c32d554de4024996920b4cf58bff77b954', part: "accordion", class: "accordion" }, h("slot", { key: '635d3cb635711653bc0951f1c4088746ecdcaab8' }))));
116
+ return (h(Host, { key: '604f9f0845c8c3facd643ccf8eab22139443ed97', "data-disabled": this.disabled ? '' : undefined }, h("div", { key: 'fee00af3c001cd0553d17021df330e62096d3413', part: "accordion", class: "accordion" }, h("slot", { key: 'b1c5b80cb3fda3015b2bfebef43d174897cd085f' }))));
114
117
  }
115
118
  get el() { return this; }
116
119
  static get watchers() { return {
117
- "value": ["valueChanged"]
120
+ "value": ["valueChanged"],
121
+ "disabled": ["settingsChanged"],
122
+ "collapsible": ["settingsChanged"],
123
+ "type": ["settingsChanged"]
118
124
  }; }
119
125
  static get style() { return sekiAccordionCss; }
120
126
  }, [257, "seki-accordion", {
@@ -126,7 +132,10 @@ const SekiAccordion$1 = /*@__PURE__*/ proxyCustomElement(class SekiAccordion ext
126
132
  "_openItems": [32],
127
133
  "toggleItem": [64]
128
134
  }, undefined, {
129
- "value": ["valueChanged"]
135
+ "value": ["valueChanged"],
136
+ "disabled": ["settingsChanged"],
137
+ "collapsible": ["settingsChanged"],
138
+ "type": ["settingsChanged"]
130
139
  }]);
131
140
  function defineCustomElement$1() {
132
141
  if (typeof customElements === "undefined") {
@@ -1,6 +1,7 @@
1
1
  import { p as proxyCustomElement, H, h, e as Host } from './p-CBBntrZT.js';
2
2
  import { s as subscribeToContextChange } from './p-B4SOpX_A.js';
3
3
  import { w as whenDefined } from './p-C9-yH6MD.js';
4
+ import { i as isRtl } from './p-BD28aG2U.js';
4
5
 
5
6
  const sekiCarouselDotsCss = ":host{display:flex;justify-content:center;width:100%;padding-top:0.75rem}.carousel-dots__container{display:flex;align-items:center;justify-content:center;gap:var(--seki-carousel-dot-gap, 0.5rem)}.carousel-dots__dot{display:flex;align-items:center;justify-content:center;padding:0.25rem;border:none;background:transparent;cursor:pointer;transition:transform 0.2s ease}.carousel-dots__dot:hover{transform:scale(1.2)}.carousel-dots__dot:focus-visible{outline:2px solid var(--seki-ring, hsl(0, 0%, 3.9%));outline-offset:2px;border-radius:50%}.carousel-dots__dot-inner{display:block;width:var(--seki-carousel-dot-size, 0.5rem);height:var(--seki-carousel-dot-size, 0.5rem);border-radius:50%;background:var(--seki-carousel-dot-color, var(--seki-muted-foreground, hsl(0, 0%, 42%)));transition:background-color 0.2s ease, width 0.2s ease, height 0.2s ease}.carousel-dots__dot--active .carousel-dots__dot-inner{width:var(--seki-carousel-dot-active-size, 0.625rem);height:var(--seki-carousel-dot-active-size, 0.625rem);background:var(--seki-carousel-dot-active-color, var(--seki-foreground, hsl(0, 0%, 3.9%)))}@media (prefers-reduced-motion: reduce){.carousel-dots__dot,.carousel-dots__dot-inner{transition:none}}";
6
7
 
@@ -29,26 +30,33 @@ const SekiCarouselDots$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarouselDo
29
30
  if (!dots)
30
31
  return;
31
32
  let targetIndex = null;
33
+ // Dots are laid out in the inline direction, so Left/Right are visual:
34
+ // in RTL the next dot is to the left.
35
+ const rtl = isRtl(this.el);
36
+ const prevKey = rtl ? 'ArrowRight' : 'ArrowLeft';
37
+ const nextKey = rtl ? 'ArrowLeft' : 'ArrowRight';
32
38
  switch (event.key) {
33
- case 'ArrowLeft':
39
+ case prevKey:
34
40
  case 'ArrowUp':
35
- event.preventDefault();
36
41
  targetIndex = index > 0 ? index - 1 : this.scrollSnapCount - 1;
37
42
  break;
38
- case 'ArrowRight':
43
+ case nextKey:
39
44
  case 'ArrowDown':
40
- event.preventDefault();
41
45
  targetIndex = index < this.scrollSnapCount - 1 ? index + 1 : 0;
42
46
  break;
43
47
  case 'Home':
44
- event.preventDefault();
45
48
  targetIndex = 0;
46
49
  break;
47
50
  case 'End':
48
- event.preventDefault();
49
51
  targetIndex = this.scrollSnapCount - 1;
50
52
  break;
51
53
  }
54
+ if (targetIndex !== null) {
55
+ event.preventDefault();
56
+ // The dots sit inside <seki-carousel>, whose own arrow-key handler would
57
+ // otherwise advance a second time.
58
+ event.stopPropagation();
59
+ }
52
60
  if (targetIndex !== null) {
53
61
  (_b = dots[targetIndex]) === null || _b === void 0 ? void 0 : _b.focus();
54
62
  this.handleDotClick(targetIndex);
@@ -95,7 +103,7 @@ const SekiCarouselDots$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarouselDo
95
103
  }
96
104
  render() {
97
105
  const dots = Array.from({ length: this.scrollSnapCount }, (_, i) => i);
98
- return (h(Host, { key: '56d50497d6c68d6533d9d42544b3093a58d96a93', class: "carousel-dots" }, h("div", { key: 'eb9da4064571b863d0a214a9189725606aa6367f', class: "carousel-dots__container", role: "tablist", "aria-label": "Carousel pagination" }, dots.map((index) => (h("button", { key: index, type: "button", class: {
106
+ return (h(Host, { key: '54e11889da62fbd901a297bbc733af13c3920efc', class: "carousel-dots" }, h("div", { key: 'e14079fbfcef9b48cac10deaae16ebefbb949b38', class: "carousel-dots__container", role: "tablist", "aria-label": "Carousel pagination" }, dots.map((index) => (h("button", { key: index, type: "button", class: {
99
107
  'carousel-dots__dot': true,
100
108
  'carousel-dots__dot--active': index === this.selectedIndex,
101
109
  }, role: "tab", "aria-selected": index === this.selectedIndex ? 'true' : 'false', "aria-label": `Go to slide ${index + 1}`, tabindex: index === this.selectedIndex ? '0' : '-1', onClick: () => this.handleDotClick(index), onKeyDown: (e) => this.handleKeyDown(e, index) }, h("span", { class: "carousel-dots__dot-inner" })))))));
@@ -2,7 +2,7 @@ import { p as proxyCustomElement, H, h, e as Host } from './p-CBBntrZT.js';
2
2
  import { s as subscribeToContextChange } from './p-B4SOpX_A.js';
3
3
  import { w as whenDefined } from './p-C9-yH6MD.js';
4
4
 
5
- const sekiCarouselNavigationCss = ":host{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);z-index:10}:host(.carousel-nav--prev){left:0.5rem}:host(.carousel-nav--next){right:0.5rem}.carousel-nav__button{display:flex;align-items:center;justify-content:center;width:var(--seki-carousel-arrow-size, 2.5rem);height:var(--seki-carousel-arrow-size, 2.5rem);padding:0;border:none;border-radius:50%;background:var(--seki-carousel-arrow-bg, var(--seki-background, hsl(0, 0%, 100%)));color:var(--seki-carousel-arrow-color, var(--seki-foreground, hsl(0, 0%, 3.9%)));cursor:pointer;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:background-color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;box-shadow:var(--seki-shadow-floating-sm, 0 2px 8px 0 rgb(0 0 0 / 0.1))}.carousel-nav__button:hover:not(:disabled){background:var(--seki-carousel-arrow-bg-hover, var(--seki-accent, hsl(0, 0%, 96.1%)));transform:scale(1.05)}.carousel-nav__button:focus-visible{outline:2px solid var(--seki-ring, hsl(0, 0%, 3.9%));outline-offset:2px}.carousel-nav__button:disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}.carousel-nav__icon{width:1.25rem;height:1.25rem;flex-shrink:0}@media (max-width: 480px){:host(.carousel-nav--prev){left:0.25rem}:host(.carousel-nav--next){right:0.25rem}.carousel-nav__button{width:2rem;height:2rem}.carousel-nav__icon{width:1rem;height:1rem}}@media (prefers-reduced-motion: reduce){.carousel-nav__button{transition:none}.carousel-nav__button:hover:not(:disabled){transform:none}}";
5
+ const sekiCarouselNavigationCss = ":host{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);z-index:10}:host(.carousel-nav--prev){inset-inline-start:0.5rem}:host(.carousel-nav--next){inset-inline-end:0.5rem}.carousel-nav__button{display:flex;align-items:center;justify-content:center;width:var(--seki-carousel-arrow-size, 2.5rem);height:var(--seki-carousel-arrow-size, 2.5rem);padding:0;border:none;border-radius:50%;background:var(--seki-carousel-arrow-bg, var(--seki-background, hsl(0, 0%, 100%)));color:var(--seki-carousel-arrow-color, var(--seki-foreground, hsl(0, 0%, 3.9%)));cursor:pointer;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:background-color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;box-shadow:var(--seki-shadow-floating-sm, 0 2px 8px 0 rgb(0 0 0 / 0.1))}.carousel-nav__button:hover:not(:disabled){background:var(--seki-carousel-arrow-bg-hover, var(--seki-accent, hsl(0, 0%, 96.1%)));transform:scale(1.05)}.carousel-nav__button:focus-visible{outline:2px solid var(--seki-ring, hsl(0, 0%, 3.9%));outline-offset:2px}.carousel-nav__button:disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}.carousel-nav__icon{width:1.25rem;height:1.25rem;flex-shrink:0}.carousel-nav__icon:dir(rtl){transform:scaleX(-1)}@media (max-width: 480px){:host(.carousel-nav--prev){inset-inline-start:0.25rem}:host(.carousel-nav--next){inset-inline-end:0.25rem}.carousel-nav__button{width:2rem;height:2rem}.carousel-nav__icon{width:1rem;height:1rem}}@media (prefers-reduced-motion: reduce){.carousel-nav__button{transition:none}.carousel-nav__button:hover:not(:disabled){transform:none}}";
6
6
 
7
7
  const SekiCarouselNext$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarouselNext extends H {
8
8
  constructor(registerHost) {
@@ -2,7 +2,7 @@ import { p as proxyCustomElement, H, h, e as Host } from './p-CBBntrZT.js';
2
2
  import { s as subscribeToContextChange } from './p-B4SOpX_A.js';
3
3
  import { w as whenDefined } from './p-C9-yH6MD.js';
4
4
 
5
- const sekiCarouselNavigationCss = ":host{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);z-index:10}:host(.carousel-nav--prev){left:0.5rem}:host(.carousel-nav--next){right:0.5rem}.carousel-nav__button{display:flex;align-items:center;justify-content:center;width:var(--seki-carousel-arrow-size, 2.5rem);height:var(--seki-carousel-arrow-size, 2.5rem);padding:0;border:none;border-radius:50%;background:var(--seki-carousel-arrow-bg, var(--seki-background, hsl(0, 0%, 100%)));color:var(--seki-carousel-arrow-color, var(--seki-foreground, hsl(0, 0%, 3.9%)));cursor:pointer;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:background-color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;box-shadow:var(--seki-shadow-floating-sm, 0 2px 8px 0 rgb(0 0 0 / 0.1))}.carousel-nav__button:hover:not(:disabled){background:var(--seki-carousel-arrow-bg-hover, var(--seki-accent, hsl(0, 0%, 96.1%)));transform:scale(1.05)}.carousel-nav__button:focus-visible{outline:2px solid var(--seki-ring, hsl(0, 0%, 3.9%));outline-offset:2px}.carousel-nav__button:disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}.carousel-nav__icon{width:1.25rem;height:1.25rem;flex-shrink:0}@media (max-width: 480px){:host(.carousel-nav--prev){left:0.25rem}:host(.carousel-nav--next){right:0.25rem}.carousel-nav__button{width:2rem;height:2rem}.carousel-nav__icon{width:1rem;height:1rem}}@media (prefers-reduced-motion: reduce){.carousel-nav__button{transition:none}.carousel-nav__button:hover:not(:disabled){transform:none}}";
5
+ const sekiCarouselNavigationCss = ":host{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);z-index:10}:host(.carousel-nav--prev){inset-inline-start:0.5rem}:host(.carousel-nav--next){inset-inline-end:0.5rem}.carousel-nav__button{display:flex;align-items:center;justify-content:center;width:var(--seki-carousel-arrow-size, 2.5rem);height:var(--seki-carousel-arrow-size, 2.5rem);padding:0;border:none;border-radius:50%;background:var(--seki-carousel-arrow-bg, var(--seki-background, hsl(0, 0%, 100%)));color:var(--seki-carousel-arrow-color, var(--seki-foreground, hsl(0, 0%, 3.9%)));cursor:pointer;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:background-color 0.2s ease, opacity 0.2s ease, transform 0.2s ease;box-shadow:var(--seki-shadow-floating-sm, 0 2px 8px 0 rgb(0 0 0 / 0.1))}.carousel-nav__button:hover:not(:disabled){background:var(--seki-carousel-arrow-bg-hover, var(--seki-accent, hsl(0, 0%, 96.1%)));transform:scale(1.05)}.carousel-nav__button:focus-visible{outline:2px solid var(--seki-ring, hsl(0, 0%, 3.9%));outline-offset:2px}.carousel-nav__button:disabled{opacity:0.5;cursor:not-allowed;pointer-events:none}.carousel-nav__icon{width:1.25rem;height:1.25rem;flex-shrink:0}.carousel-nav__icon:dir(rtl){transform:scaleX(-1)}@media (max-width: 480px){:host(.carousel-nav--prev){inset-inline-start:0.25rem}:host(.carousel-nav--next){inset-inline-end:0.25rem}.carousel-nav__button{width:2rem;height:2rem}.carousel-nav__icon{width:1rem;height:1rem}}@media (prefers-reduced-motion: reduce){.carousel-nav__button{transition:none}.carousel-nav__button:hover:not(:disabled){transform:none}}";
6
6
 
7
7
  const SekiCarouselPrevious$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarouselPrevious extends H {
8
8
  constructor(registerHost) {
@@ -1,5 +1,6 @@
1
1
  import { p as proxyCustomElement, H, d as createEvent, h, e as Host } from './p-CBBntrZT.js';
2
2
  import { i as isDefined, w as whenDefined } from './p-C9-yH6MD.js';
3
+ import { i as isRtl } from './p-BD28aG2U.js';
3
4
 
4
5
  const sekiCarouselCss = ":host{--seki-carousel-gap:1rem;--seki-carousel-arrow-size:2.5rem;--seki-carousel-arrow-bg:light-dark(rgba(255, 255, 255, 0.8), rgba(30, 41, 59, 0.8));--seki-carousel-arrow-bg-hover:light-dark(rgba(255, 255, 255, 0.95), rgba(30, 41, 59, 0.95));--seki-carousel-arrow-color:var(--seki-foreground, #0f172a);--seki-carousel-dot-size:0.5rem;--seki-carousel-dot-active-size:0.625rem;--seki-carousel-dot-gap:0.5rem;--seki-carousel-dot-color:light-dark(var(--seki-muted, #94a3b8), var(--seki-muted-foreground, hsl(0, 0%, 63.9%)));--seki-carousel-dot-active-color:light-dark(var(--seki-primary, #0f172a), var(--seki-foreground, hsl(0, 0%, 98%)));display:block;position:relative;width:100%}:host(:focus){outline:none}:host(:focus-visible){outline:2px solid var(--seki-ring, #3b82f6);outline-offset:2px;border-radius:var(--seki-radius-md, 0.375rem)}.carousel__container{position:relative;width:100%}.carousel__live-region{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}@media (prefers-reduced-motion: reduce){:host *{transition:none !important;animation:none !important}}";
5
6
 
@@ -73,6 +74,16 @@ const SekiCarousel$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarousel exten
73
74
  /** Slide to come back to when Embla is re-created after a move or option change. */
74
75
  this.resumeIndex = null;
75
76
  this.waitedForContentDefinition = false;
77
+ /** Direction Embla was created with; compared on `dir` changes (#381). */
78
+ this.appliedRtl = null;
79
+ this.dirObserver = null;
80
+ this.handleDirectionChange = () => {
81
+ if (!this.emblaApi || this.appliedRtl === null || isRtl(this.el) === this.appliedRtl)
82
+ return;
83
+ // teardownEmbla() records the selected slide in resumeIndex.
84
+ this.teardownEmbla();
85
+ this.initEmbla();
86
+ };
76
87
  this.handleSelect = () => {
77
88
  this.updateState();
78
89
  this.slideChange.emit({
@@ -115,23 +126,31 @@ const SekiCarousel$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarousel exten
115
126
  }
116
127
  };
117
128
  this.handleKeyDown = (event) => {
118
- var _a, _b, _c, _d;
129
+ var _a, _b, _c, _d, _e, _f;
130
+ // Arrow keys are visual: in RTL the next slide is to the left.
131
+ const rtl = isRtl(this.el);
119
132
  switch (event.key) {
120
133
  case 'ArrowLeft':
121
134
  event.preventDefault();
122
- (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollPrev();
135
+ if (rtl)
136
+ (_a = this.emblaApi) === null || _a === void 0 ? void 0 : _a.scrollNext();
137
+ else
138
+ (_b = this.emblaApi) === null || _b === void 0 ? void 0 : _b.scrollPrev();
123
139
  break;
124
140
  case 'ArrowRight':
125
141
  event.preventDefault();
126
- (_b = this.emblaApi) === null || _b === void 0 ? void 0 : _b.scrollNext();
142
+ if (rtl)
143
+ (_c = this.emblaApi) === null || _c === void 0 ? void 0 : _c.scrollPrev();
144
+ else
145
+ (_d = this.emblaApi) === null || _d === void 0 ? void 0 : _d.scrollNext();
127
146
  break;
128
147
  case 'Home':
129
148
  event.preventDefault();
130
- (_c = this.emblaApi) === null || _c === void 0 ? void 0 : _c.scrollTo(0);
149
+ (_e = this.emblaApi) === null || _e === void 0 ? void 0 : _e.scrollTo(0);
131
150
  break;
132
151
  case 'End':
133
152
  event.preventDefault();
134
- (_d = this.emblaApi) === null || _d === void 0 ? void 0 : _d.scrollTo(this.scrollSnapCount - 1);
153
+ (_f = this.emblaApi) === null || _f === void 0 ? void 0 : _f.scrollTo(this.scrollSnapCount - 1);
135
154
  break;
136
155
  }
137
156
  };
@@ -144,6 +163,7 @@ const SekiCarousel$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarousel exten
144
163
  // once, so a carousel that is moved in the DOM (keyed lists, portals,
145
164
  // drag-and-drop) is set up again from connectedCallback (#333).
146
165
  connectedCallback() {
166
+ this.observeDirection();
147
167
  if (this.hasLoaded)
148
168
  this.initEmbla();
149
169
  }
@@ -152,6 +172,9 @@ const SekiCarousel$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarousel exten
152
172
  this.initEmbla();
153
173
  }
154
174
  disconnectedCallback() {
175
+ var _a;
176
+ (_a = this.dirObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
177
+ this.dirObserver = null;
155
178
  this.teardownEmbla();
156
179
  }
157
180
  // =========================================================================
@@ -211,6 +234,24 @@ const SekiCarousel$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarousel exten
211
234
  // =========================================================================
212
235
  // Private Methods
213
236
  // =========================================================================
237
+ /**
238
+ * Embla's `direction` is fixed at creation, so watch the `dir` attribute of
239
+ * every ancestor (crossing shadow roots) and re-create Embla when the computed
240
+ * direction actually flips. Attribute-filtered and non-subtree, so it is cheap.
241
+ */
242
+ observeDirection() {
243
+ var _a, _b, _c;
244
+ (_a = this.dirObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
245
+ if (typeof MutationObserver === 'undefined')
246
+ return;
247
+ this.dirObserver = new MutationObserver(this.handleDirectionChange);
248
+ let node = this.el;
249
+ while (node) {
250
+ if (node.nodeType === Node.ELEMENT_NODE)
251
+ this.dirObserver.observe(node, { attributes: true, attributeFilter: ['dir'] });
252
+ node = (_c = (_b = node.parentNode) !== null && _b !== void 0 ? _b : node.host) !== null && _c !== void 0 ? _c : null;
253
+ }
254
+ }
214
255
  /** Stop autoplay, cancel a pending init and destroy Embla. Idempotent. */
215
256
  teardownEmbla() {
216
257
  this.initGeneration++;
@@ -269,6 +310,7 @@ const SekiCarousel$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarousel exten
269
310
  // Container found — reset retry bookkeeping.
270
311
  this.initRetries = 0;
271
312
  this.initRafId = null;
313
+ const rtl = isRtl(this.el);
272
314
  const options = {
273
315
  loop: this.loop,
274
316
  // Keep the current slide when re-created (DOM move, option change).
@@ -276,6 +318,8 @@ const SekiCarousel$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarousel exten
276
318
  slidesToScroll: this.slidesToScroll,
277
319
  dragFree: this.dragFree,
278
320
  containScroll: 'trimSnaps',
321
+ // Slides flow right-to-left under dir="rtl"; embla must scroll to match.
322
+ direction: rtl ? 'rtl' : 'ltr',
279
323
  };
280
324
  let EmblaCarousel;
281
325
  try {
@@ -290,6 +334,7 @@ const SekiCarousel$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarousel exten
290
334
  if (!this.el.isConnected || !this.viewportEl || generation !== this.initGeneration || this.emblaApi)
291
335
  return;
292
336
  this.emblaApi = EmblaCarousel(this.viewportEl, options);
337
+ this.appliedRtl = rtl;
293
338
  // Set up event listeners
294
339
  this.emblaApi.on('select', this.handleSelect);
295
340
  this.emblaApi.on('reInit', this.handleReInit);
@@ -349,7 +394,7 @@ const SekiCarousel$1 = /*@__PURE__*/ proxyCustomElement(class SekiCarousel exten
349
394
  // Render
350
395
  // =========================================================================
351
396
  render() {
352
- return (h(Host, { key: '2f0a761a9c673b84aecb4733676d0baf60c9b7a6', class: "carousel", role: "region", "aria-roledescription": "carousel", "aria-label": this.ariaLabel, tabindex: "0", onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, onFocusIn: this.handleFocusIn, onFocusOut: this.handleFocusOut, onKeyDown: this.handleKeyDown }, h("div", { key: 'd2c07222335e50b5ff119989444d5389e3e4f6d3', class: "carousel__container" }, h("slot", { key: '1581ad7b8a049b9efaa0941f284e0e9d04a53a5d' })), h("div", { key: '56edee3b1ed6f6729eed4cb7ebf9c024db351be6', class: "carousel__live-region", "aria-live": "polite", "aria-atomic": "true" }, `Slide ${this.selectedIndex + 1} of ${this.scrollSnapCount}`)));
397
+ return (h(Host, { key: 'b55deaf2dd34be409d82b9edc6171bd17e479fa5', class: "carousel", role: "region", "aria-roledescription": "carousel", "aria-label": this.ariaLabel, tabindex: "0", onMouseEnter: this.handleMouseEnter, onMouseLeave: this.handleMouseLeave, onFocusIn: this.handleFocusIn, onFocusOut: this.handleFocusOut, onKeyDown: this.handleKeyDown }, h("div", { key: '4e24a73b01d4f839d8f1f7feb2957664016cb6ad', class: "carousel__container" }, h("slot", { key: '0ba983eb5c01d434a5fa25073dcccdc58c8c35d3' })), h("div", { key: 'f1a62d565f8f6cda368ac6d15c95c53e1598bed6', class: "carousel__live-region", "aria-live": "polite", "aria-atomic": "true" }, `Slide ${this.selectedIndex + 1} of ${this.scrollSnapCount}`)));
353
398
  }
354
399
  get el() { return this; }
355
400
  static get watchers() { return {