@sekiui/elements 0.1.3 → 0.1.4

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 (337) hide show
  1. package/dist/cdn/index.js +1 -1
  2. package/dist/{components/p-Bml9QXVd.js → cdn/p--1ROPZet.js} +22 -12
  3. package/dist/cdn/p-B4SOpX_A.js +155 -0
  4. package/dist/cdn/{p-B7jKUvZz.js → p-C3WFySZp.js} +29 -3
  5. package/dist/cdn/p-COBvV3Rw.js +201 -0
  6. package/dist/cdn/seki-alert-dialog-content.js +10 -24
  7. package/dist/cdn/seki-alert-dialog.js +8 -10
  8. package/dist/cdn/seki-carousel-dots.js +1 -1
  9. package/dist/cdn/seki-carousel-next.js +1 -1
  10. package/dist/cdn/seki-carousel-previous.js +1 -1
  11. package/dist/cdn/seki-collapsible-content.js +23 -40
  12. package/dist/cdn/seki-collapsible-trigger.js +21 -5
  13. package/dist/cdn/seki-collapsible.js +18 -11
  14. package/dist/cdn/seki-combobox-content.js +15 -22
  15. package/dist/cdn/seki-combobox-input.js +1 -1
  16. package/dist/cdn/seki-combobox-item.js +1 -1
  17. package/dist/cdn/seki-combobox.js +1 -1
  18. package/dist/cdn/seki-command-empty.js +6 -22
  19. package/dist/cdn/seki-command-group.js +11 -13
  20. package/dist/cdn/seki-command-input.js +23 -8
  21. package/dist/cdn/seki-command-item.js +17 -0
  22. package/dist/cdn/seki-command.js +58 -57
  23. package/dist/cdn/seki-data-table.js +13 -6
  24. package/dist/cdn/seki-dialog-content.js +10 -25
  25. package/dist/cdn/seki-dialog-description.js +13 -7
  26. package/dist/cdn/seki-dialog-overlay.js +6 -15
  27. package/dist/cdn/seki-dialog-title.js +13 -7
  28. package/dist/cdn/seki-dialog.js +1 -1
  29. package/dist/cdn/seki-drawer-content.js +21 -24
  30. package/dist/cdn/seki-drawer.js +8 -7
  31. package/dist/cdn/seki-field-label.js +28 -2
  32. package/dist/cdn/seki-label.js +1 -1
  33. package/dist/cdn/seki-navigation-menu-content.js +1 -1
  34. package/dist/cdn/seki-navigation-menu-item.js +1 -1
  35. package/dist/cdn/seki-navigation-menu-trigger.js +1 -1
  36. package/dist/cdn/seki-navigation-menu.js +1 -1
  37. package/dist/cdn/seki-popover-content.js +14 -20
  38. package/dist/cdn/seki-popover.js +27 -17
  39. package/dist/cdn/seki-resizable-handle.js +1 -1
  40. package/dist/cdn/seki-resizable-panel-group.js +1 -1
  41. package/dist/cdn/seki-resizable-panel.js +1 -1
  42. package/dist/cdn/seki-select-content.js +14 -17
  43. package/dist/cdn/seki-select-option.js +23 -25
  44. package/dist/cdn/seki-select-trigger.js +32 -38
  45. package/dist/cdn/seki-select.js +30 -7
  46. package/dist/cdn/seki-sheet-content.js +24 -24
  47. package/dist/cdn/seki-sheet.js +8 -7
  48. package/dist/cdn/seki-toggle-group.js +1 -1
  49. package/dist/cdn/seki-toggle.js +1 -1
  50. package/dist/cjs/context-bridge-t3FBhOrW.js +159 -0
  51. package/dist/cjs/index.cjs.js +1 -0
  52. package/dist/cjs/label-association-sgmb4sai.js +203 -0
  53. package/dist/cjs/loader.cjs.js +1 -1
  54. package/dist/cjs/seki-alert-dialog-content.cjs.entry.js +10 -24
  55. package/dist/cjs/seki-alert-dialog.cjs.entry.js +7 -9
  56. package/dist/cjs/seki-carousel-dots.cjs.entry.js +1 -1
  57. package/dist/cjs/seki-carousel-next.cjs.entry.js +1 -1
  58. package/dist/cjs/seki-carousel-previous.cjs.entry.js +1 -1
  59. package/dist/cjs/seki-collapsible-content.cjs.entry.js +20 -39
  60. package/dist/cjs/seki-collapsible-trigger.cjs.entry.js +19 -4
  61. package/dist/cjs/seki-collapsible.cjs.entry.js +16 -10
  62. package/dist/cjs/seki-combobox-content.cjs.entry.js +15 -22
  63. package/dist/cjs/seki-combobox-input.cjs.entry.js +1 -1
  64. package/dist/cjs/seki-combobox-item.cjs.entry.js +1 -1
  65. package/dist/cjs/seki-combobox.cjs.entry.js +1 -1
  66. package/dist/cjs/seki-command-empty.cjs.entry.js +6 -22
  67. package/dist/cjs/seki-command-group.cjs.entry.js +11 -13
  68. package/dist/cjs/seki-command-input.cjs.entry.js +22 -8
  69. package/dist/cjs/seki-command-item.cjs.entry.js +17 -0
  70. package/dist/cjs/seki-command.cjs.entry.js +56 -56
  71. package/dist/cjs/seki-data-table.cjs.entry.js +10 -6
  72. package/dist/cjs/seki-dialog-content.cjs.entry.js +10 -25
  73. package/dist/cjs/seki-dialog-description.cjs.entry.js +10 -6
  74. package/dist/cjs/seki-dialog-overlay.cjs.entry.js +6 -15
  75. package/dist/cjs/seki-dialog-title.cjs.entry.js +10 -6
  76. package/dist/cjs/seki-dialog.cjs.entry.js +21 -12
  77. package/dist/cjs/seki-drawer-content.cjs.entry.js +20 -24
  78. package/dist/cjs/seki-drawer.cjs.entry.js +8 -7
  79. package/dist/cjs/seki-field-label.cjs.entry.js +26 -2
  80. package/dist/cjs/seki-label.cjs.entry.js +27 -3
  81. package/dist/cjs/seki-navigation-menu-content.cjs.entry.js +1 -1
  82. package/dist/cjs/seki-navigation-menu-item.cjs.entry.js +1 -1
  83. package/dist/cjs/seki-navigation-menu-trigger.cjs.entry.js +1 -1
  84. package/dist/cjs/seki-navigation-menu.cjs.entry.js +1 -1
  85. package/dist/cjs/seki-popover-content.cjs.entry.js +14 -20
  86. package/dist/cjs/seki-popover.cjs.entry.js +24 -16
  87. package/dist/cjs/seki-resizable-handle.cjs.entry.js +1 -1
  88. package/dist/cjs/seki-resizable-panel-group.cjs.entry.js +1 -1
  89. package/dist/cjs/seki-resizable-panel.cjs.entry.js +1 -1
  90. package/dist/cjs/seki-select-content.cjs.entry.js +14 -17
  91. package/dist/cjs/seki-select-option.cjs.entry.js +23 -25
  92. package/dist/cjs/seki-select-trigger.cjs.entry.js +32 -38
  93. package/dist/cjs/seki-select.cjs.entry.js +29 -7
  94. package/dist/cjs/seki-sheet-content.cjs.entry.js +22 -24
  95. package/dist/cjs/seki-sheet.cjs.entry.js +8 -7
  96. package/dist/cjs/seki-toggle-group.cjs.entry.js +1 -1
  97. package/dist/cjs/seki-toggle.cjs.entry.js +1 -1
  98. package/dist/cjs/sekiui.cjs.js +1 -1
  99. package/dist/collection/components/alert-dialog/seki-alert-dialog-content.js +10 -24
  100. package/dist/collection/components/alert-dialog/seki-alert-dialog.js +21 -9
  101. package/dist/collection/components/collapsible/seki-collapsible-content.js +23 -40
  102. package/dist/collection/components/collapsible/seki-collapsible-trigger.js +24 -4
  103. package/dist/collection/components/collapsible/seki-collapsible.js +31 -9
  104. package/dist/collection/components/combobox-content/seki-combobox-content.js +15 -22
  105. package/dist/collection/components/command/seki-command-empty.js +6 -22
  106. package/dist/collection/components/command/seki-command-group.js +11 -13
  107. package/dist/collection/components/command/seki-command-input.js +27 -8
  108. package/dist/collection/components/command/seki-command-item.js +17 -0
  109. package/dist/collection/components/command/seki-command.js +71 -55
  110. package/dist/collection/components/data-table/seki-data-table.js +64 -6
  111. package/dist/collection/components/dialog/seki-dialog-content.js +10 -25
  112. package/dist/collection/components/dialog/seki-dialog-description.js +17 -6
  113. package/dist/collection/components/dialog/seki-dialog-overlay.js +6 -15
  114. package/dist/collection/components/dialog/seki-dialog-title.js +17 -6
  115. package/dist/collection/components/dialog/seki-dialog.js +37 -12
  116. package/dist/collection/components/drawer/seki-drawer-content.js +22 -24
  117. package/dist/collection/components/drawer/seki-drawer.js +22 -7
  118. package/dist/collection/components/field-label/seki-field-label.js +39 -3
  119. package/dist/collection/components/label/seki-label.js +40 -4
  120. package/dist/collection/components/popover/seki-popover-content.js +14 -20
  121. package/dist/collection/components/popover/seki-popover.js +41 -15
  122. package/dist/collection/components/select/seki-select.js +30 -6
  123. package/dist/collection/components/select-content/seki-select-content.js +14 -17
  124. package/dist/collection/components/select-option/seki-select-option.js +23 -25
  125. package/dist/collection/components/select-trigger/seki-select-trigger.js +32 -38
  126. package/dist/collection/components/sheet/seki-sheet-content.js +25 -24
  127. package/dist/collection/components/sheet/seki-sheet.js +22 -7
  128. package/dist/collection/utils/context-bridge.js +105 -4
  129. package/dist/collection/utils/label-association.js +199 -0
  130. package/dist/components/index.js +1 -1
  131. package/dist/{cdn/p-Bml9QXVd.js → components/p--1ROPZet.js} +22 -12
  132. package/dist/components/p-B4SOpX_A.js +155 -0
  133. package/dist/components/{p-B7jKUvZz.js → p-C3WFySZp.js} +29 -3
  134. package/dist/components/p-COBvV3Rw.js +201 -0
  135. package/dist/components/seki-alert-dialog-content.js +10 -24
  136. package/dist/components/seki-alert-dialog.js +8 -10
  137. package/dist/components/seki-carousel-dots.js +1 -1
  138. package/dist/components/seki-carousel-next.js +1 -1
  139. package/dist/components/seki-carousel-previous.js +1 -1
  140. package/dist/components/seki-collapsible-content.js +23 -40
  141. package/dist/components/seki-collapsible-trigger.js +21 -5
  142. package/dist/components/seki-collapsible.js +18 -11
  143. package/dist/components/seki-combobox-content.js +15 -22
  144. package/dist/components/seki-combobox-input.js +1 -1
  145. package/dist/components/seki-combobox-item.js +1 -1
  146. package/dist/components/seki-combobox.js +1 -1
  147. package/dist/components/seki-command-empty.js +6 -22
  148. package/dist/components/seki-command-group.js +11 -13
  149. package/dist/components/seki-command-input.js +23 -8
  150. package/dist/components/seki-command-item.js +17 -0
  151. package/dist/components/seki-command.js +58 -57
  152. package/dist/components/seki-data-table.js +13 -6
  153. package/dist/components/seki-dialog-content.js +10 -25
  154. package/dist/components/seki-dialog-description.js +13 -7
  155. package/dist/components/seki-dialog-overlay.js +6 -15
  156. package/dist/components/seki-dialog-title.js +13 -7
  157. package/dist/components/seki-dialog.js +1 -1
  158. package/dist/components/seki-drawer-content.js +21 -24
  159. package/dist/components/seki-drawer.js +8 -7
  160. package/dist/components/seki-field-label.js +28 -2
  161. package/dist/components/seki-label.js +1 -1
  162. package/dist/components/seki-navigation-menu-content.js +1 -1
  163. package/dist/components/seki-navigation-menu-item.js +1 -1
  164. package/dist/components/seki-navigation-menu-trigger.js +1 -1
  165. package/dist/components/seki-navigation-menu.js +1 -1
  166. package/dist/components/seki-popover-content.js +14 -20
  167. package/dist/components/seki-popover.js +27 -17
  168. package/dist/components/seki-resizable-handle.js +1 -1
  169. package/dist/components/seki-resizable-panel-group.js +1 -1
  170. package/dist/components/seki-resizable-panel.js +1 -1
  171. package/dist/components/seki-select-content.js +14 -17
  172. package/dist/components/seki-select-option.js +23 -25
  173. package/dist/components/seki-select-trigger.js +32 -38
  174. package/dist/components/seki-select.js +30 -7
  175. package/dist/components/seki-sheet-content.js +24 -24
  176. package/dist/components/seki-sheet.js +8 -7
  177. package/dist/components/seki-toggle-group.js +1 -1
  178. package/dist/components/seki-toggle.js +1 -1
  179. package/dist/esm/context-bridge-B4SOpX_A.js +155 -0
  180. package/dist/esm/index.js +1 -0
  181. package/dist/esm/label-association-COBvV3Rw.js +201 -0
  182. package/dist/esm/loader.js +1 -1
  183. package/dist/esm/seki-alert-dialog-content.entry.js +10 -24
  184. package/dist/esm/seki-alert-dialog.entry.js +7 -9
  185. package/dist/esm/seki-carousel-dots.entry.js +1 -1
  186. package/dist/esm/seki-carousel-next.entry.js +1 -1
  187. package/dist/esm/seki-carousel-previous.entry.js +1 -1
  188. package/dist/esm/seki-collapsible-content.entry.js +20 -39
  189. package/dist/esm/seki-collapsible-trigger.entry.js +19 -4
  190. package/dist/esm/seki-collapsible.entry.js +16 -10
  191. package/dist/esm/seki-combobox-content.entry.js +15 -22
  192. package/dist/esm/seki-combobox-input.entry.js +1 -1
  193. package/dist/esm/seki-combobox-item.entry.js +1 -1
  194. package/dist/esm/seki-combobox.entry.js +1 -1
  195. package/dist/esm/seki-command-empty.entry.js +6 -22
  196. package/dist/esm/seki-command-group.entry.js +11 -13
  197. package/dist/esm/seki-command-input.entry.js +22 -8
  198. package/dist/esm/seki-command-item.entry.js +17 -0
  199. package/dist/esm/seki-command.entry.js +56 -56
  200. package/dist/esm/seki-data-table.entry.js +10 -6
  201. package/dist/esm/seki-dialog-content.entry.js +10 -25
  202. package/dist/esm/seki-dialog-description.entry.js +10 -6
  203. package/dist/esm/seki-dialog-overlay.entry.js +6 -15
  204. package/dist/esm/seki-dialog-title.entry.js +10 -6
  205. package/dist/esm/seki-dialog.entry.js +21 -12
  206. package/dist/esm/seki-drawer-content.entry.js +20 -24
  207. package/dist/esm/seki-drawer.entry.js +8 -7
  208. package/dist/esm/seki-field-label.entry.js +26 -2
  209. package/dist/esm/seki-label.entry.js +27 -3
  210. package/dist/esm/seki-navigation-menu-content.entry.js +1 -1
  211. package/dist/esm/seki-navigation-menu-item.entry.js +1 -1
  212. package/dist/esm/seki-navigation-menu-trigger.entry.js +1 -1
  213. package/dist/esm/seki-navigation-menu.entry.js +1 -1
  214. package/dist/esm/seki-popover-content.entry.js +14 -20
  215. package/dist/esm/seki-popover.entry.js +24 -16
  216. package/dist/esm/seki-resizable-handle.entry.js +1 -1
  217. package/dist/esm/seki-resizable-panel-group.entry.js +1 -1
  218. package/dist/esm/seki-resizable-panel.entry.js +1 -1
  219. package/dist/esm/seki-select-content.entry.js +14 -17
  220. package/dist/esm/seki-select-option.entry.js +23 -25
  221. package/dist/esm/seki-select-trigger.entry.js +32 -38
  222. package/dist/esm/seki-select.entry.js +29 -7
  223. package/dist/esm/seki-sheet-content.entry.js +22 -24
  224. package/dist/esm/seki-sheet.entry.js +8 -7
  225. package/dist/esm/seki-toggle-group.entry.js +1 -1
  226. package/dist/esm/seki-toggle.entry.js +1 -1
  227. package/dist/esm/sekiui.js +1 -1
  228. package/dist/sekiui/index.esm.js +1 -1
  229. package/dist/sekiui/{p-2459de33.entry.js → p-09131578.entry.js} +1 -1
  230. package/dist/sekiui/p-14ca64d7.entry.js +1 -0
  231. package/dist/sekiui/p-1564ab34.entry.js +1 -0
  232. package/dist/sekiui/p-1b7681eb.entry.js +1 -0
  233. package/dist/sekiui/{p-573fcf7e.entry.js → p-20e5e17a.entry.js} +1 -1
  234. package/dist/sekiui/p-2bd3c250.entry.js +1 -0
  235. package/dist/sekiui/p-2d50d0c2.entry.js +1 -0
  236. package/dist/sekiui/p-31db5c3f.entry.js +1 -0
  237. package/dist/sekiui/p-33dd3d17.entry.js +1 -0
  238. package/dist/sekiui/p-360d7dea.entry.js +1 -0
  239. package/dist/sekiui/p-3c6d6845.entry.js +1 -0
  240. package/dist/sekiui/{p-731740ec.entry.js → p-3cd3f36e.entry.js} +1 -1
  241. package/dist/sekiui/{p-1d173026.entry.js → p-3e456430.entry.js} +1 -1
  242. package/dist/sekiui/{p-e287c9b0.entry.js → p-4191a2cf.entry.js} +1 -1
  243. package/dist/sekiui/{p-b75f801b.entry.js → p-48fe9b46.entry.js} +1 -1
  244. package/dist/sekiui/{p-5a60c7f5.entry.js → p-5132d055.entry.js} +1 -1
  245. package/dist/sekiui/p-5700ac69.entry.js +1 -0
  246. package/dist/sekiui/{p-d2592287.entry.js → p-57e7170b.entry.js} +1 -1
  247. package/dist/sekiui/{p-edac50c7.entry.js → p-5dbd46b4.entry.js} +1 -1
  248. package/dist/sekiui/p-6923d926.entry.js +1 -0
  249. package/dist/sekiui/{p-22daeb37.entry.js → p-6c2e4ae8.entry.js} +1 -1
  250. package/dist/sekiui/p-6edbced1.entry.js +1 -0
  251. package/dist/sekiui/p-7dac94b2.entry.js +1 -0
  252. package/dist/sekiui/p-80dbf1f5.entry.js +1 -0
  253. package/dist/sekiui/p-817af69a.entry.js +1 -0
  254. package/dist/sekiui/{p-ddcdc3da.entry.js → p-8b3bc7c2.entry.js} +1 -1
  255. package/dist/sekiui/p-8fb55d56.entry.js +1 -0
  256. package/dist/sekiui/{p-a575f386.entry.js → p-92b800a2.entry.js} +1 -1
  257. package/dist/sekiui/{p-63e922dc.entry.js → p-938ce866.entry.js} +1 -1
  258. package/dist/sekiui/{p-d0533172.entry.js → p-95501e60.entry.js} +1 -1
  259. package/dist/sekiui/p-979708a0.entry.js +1 -0
  260. package/dist/sekiui/{p-faf09566.entry.js → p-9c921a6c.entry.js} +1 -1
  261. package/dist/sekiui/p-B4SOpX_A.js +1 -0
  262. package/dist/sekiui/p-COBvV3Rw.js +1 -0
  263. package/dist/sekiui/{p-fc6b3691.entry.js → p-a4fc4f1a.entry.js} +1 -1
  264. package/dist/sekiui/{p-d7bd5d5e.entry.js → p-b94e0f1b.entry.js} +1 -1
  265. package/dist/sekiui/{p-1c5fe316.entry.js → p-c6efedab.entry.js} +1 -1
  266. package/dist/sekiui/p-c8da7923.entry.js +1 -0
  267. package/dist/sekiui/p-c97fbaf2.entry.js +1 -0
  268. package/dist/sekiui/p-cb28d764.entry.js +1 -0
  269. package/dist/sekiui/{p-5f52b52d.entry.js → p-cc2ac0f0.entry.js} +1 -1
  270. package/dist/sekiui/{p-acebf429.entry.js → p-d32614a4.entry.js} +1 -1
  271. package/dist/sekiui/p-d3449109.entry.js +1 -0
  272. package/dist/sekiui/p-ddbf98ca.entry.js +1 -0
  273. package/dist/sekiui/p-eb03eb37.entry.js +1 -0
  274. package/dist/sekiui/{p-c57bbe35.entry.js → p-fc9e8583.entry.js} +1 -1
  275. package/dist/sekiui/sekiui.esm.js +1 -1
  276. package/dist/types/components/alert-dialog/seki-alert-dialog-content.d.ts +6 -3
  277. package/dist/types/components/alert-dialog/seki-alert-dialog.d.ts +5 -2
  278. package/dist/types/components/collapsible/seki-collapsible-content.d.ts +4 -5
  279. package/dist/types/components/collapsible/seki-collapsible-trigger.d.ts +11 -0
  280. package/dist/types/components/collapsible/seki-collapsible.d.ts +6 -2
  281. package/dist/types/components/combobox-content/seki-combobox-content.d.ts +3 -4
  282. package/dist/types/components/command/seki-command-empty.d.ts +2 -4
  283. package/dist/types/components/command/seki-command-group.d.ts +2 -3
  284. package/dist/types/components/command/seki-command-input.d.ts +5 -1
  285. package/dist/types/components/command/seki-command-item.d.ts +3 -0
  286. package/dist/types/components/command/seki-command.d.ts +19 -1
  287. package/dist/types/components/command/types.d.ts +9 -1
  288. package/dist/types/components/data-table/seki-data-table.d.ts +7 -2
  289. package/dist/types/components/dialog/seki-dialog-content.d.ts +6 -3
  290. package/dist/types/components/dialog/seki-dialog-description.d.ts +5 -1
  291. package/dist/types/components/dialog/seki-dialog-overlay.d.ts +2 -3
  292. package/dist/types/components/dialog/seki-dialog-title.d.ts +5 -1
  293. package/dist/types/components/dialog/seki-dialog.d.ts +9 -2
  294. package/dist/types/components/drawer/seki-drawer-content.d.ts +8 -3
  295. package/dist/types/components/drawer/seki-drawer.d.ts +5 -1
  296. package/dist/types/components/field-label/seki-field-label.d.ts +9 -1
  297. package/dist/types/components/label/seki-label.d.ts +11 -2
  298. package/dist/types/components/popover/seki-popover-content.d.ts +6 -3
  299. package/dist/types/components/popover/seki-popover.d.ts +7 -1
  300. package/dist/types/components/select/seki-select.d.ts +8 -0
  301. package/dist/types/components/select-content/seki-select-content.d.ts +3 -2
  302. package/dist/types/components/select-option/seki-select-option.d.ts +9 -3
  303. package/dist/types/components/select-trigger/seki-select-trigger.d.ts +10 -4
  304. package/dist/types/components/sheet/seki-sheet-content.d.ts +8 -4
  305. package/dist/types/components/sheet/seki-sheet.d.ts +5 -1
  306. package/dist/types/components.d.ts +61 -6
  307. package/dist/types/utils/context-bridge.d.ts +68 -4
  308. package/dist/types/utils/label-association.d.ts +58 -0
  309. package/package.json +1 -1
  310. package/dist/cdn/p-DJMgrCw3.js +0 -54
  311. package/dist/cjs/context-bridge-CywF7uJm.js +0 -57
  312. package/dist/components/p-DJMgrCw3.js +0 -54
  313. package/dist/esm/context-bridge-DJMgrCw3.js +0 -54
  314. package/dist/sekiui/p-063951fe.entry.js +0 -1
  315. package/dist/sekiui/p-326909c5.entry.js +0 -1
  316. package/dist/sekiui/p-3511d6e5.entry.js +0 -1
  317. package/dist/sekiui/p-4253845a.entry.js +0 -1
  318. package/dist/sekiui/p-565acaf2.entry.js +0 -1
  319. package/dist/sekiui/p-5a55a239.entry.js +0 -1
  320. package/dist/sekiui/p-5fd3b090.entry.js +0 -1
  321. package/dist/sekiui/p-6466865a.entry.js +0 -1
  322. package/dist/sekiui/p-9324d212.entry.js +0 -1
  323. package/dist/sekiui/p-959fef36.entry.js +0 -1
  324. package/dist/sekiui/p-DJMgrCw3.js +0 -1
  325. package/dist/sekiui/p-a55bc3d3.entry.js +0 -1
  326. package/dist/sekiui/p-ab56de7a.entry.js +0 -1
  327. package/dist/sekiui/p-ad62e316.entry.js +0 -1
  328. package/dist/sekiui/p-b8d3aa31.entry.js +0 -1
  329. package/dist/sekiui/p-b99c6433.entry.js +0 -1
  330. package/dist/sekiui/p-c15c21b4.entry.js +0 -1
  331. package/dist/sekiui/p-c529a6b8.entry.js +0 -1
  332. package/dist/sekiui/p-c99961a7.entry.js +0 -1
  333. package/dist/sekiui/p-d61319d6.entry.js +0 -1
  334. package/dist/sekiui/p-da9b3eaa.entry.js +0 -1
  335. package/dist/sekiui/p-eb50f8d5.entry.js +0 -1
  336. package/dist/sekiui/p-f886fe62.entry.js +0 -1
  337. package/dist/sekiui/p-fc288df2.entry.js +0 -1
@@ -212,6 +212,9 @@ export class SekiDataTable {
212
212
  // =========================================================================
213
213
  // Watchers
214
214
  // =========================================================================
215
+ fetchDataChanged() {
216
+ this.loadData();
217
+ }
215
218
  columnsChanged() {
216
219
  this.initializeColumns();
217
220
  }
@@ -420,10 +423,10 @@ export class SekiDataTable {
420
423
  const visibleColumns = this.getVisibleColumns();
421
424
  const totalPages = this.getTotalPages();
422
425
  const isLoading = this.state.loading || this.loading;
423
- return (h(Host, { key: 'c04fd92ce353ad13bdac6e06c62e0d4c49df7fde' }, h("div", { key: '3af3f6f85702103871892e57d81e26b8fcb8ecc8', class: "data-table" }, (this.searchable || this.columnPicker) && (h("div", { key: '380ed854e25f2fc1a3836d1c159f0ef0d7ce043e', class: "data-table__toolbar" }, this.searchable && (h("div", { key: '168edbf3bb61cb9a6451df5c24278c5a822bc426', class: "data-table__search" }, h("input", { key: 'd2a61ead41bc15fc10d88d5371595728d022e616', type: "text", class: "data-table__search-input", placeholder: this.searchPlaceholder, value: this.searchInputValue, onInput: this.handleSearchInput }), this.searchInputValue && (h("button", { key: 'aaa7308f94b9f4a1cf225cba796b6b7173bacc7e', type: "button", class: "data-table__search-clear", onClick: this.handleClearSearch, "aria-label": "Clear search" }, "\u00D7")))), h("div", { key: 'e305bee4964a6a21426831e1a05ce49a1d7ea02d', class: "data-table__toolbar-spacer" }), this.columnPicker && (h("button", { key: '46a57cc4174a26a6f6b6233dbbdb4e8ac7e96809', type: "button", class: "data-table__column-picker-btn" }, "Columns")))), h("div", { key: '12f509df155529d2d7797d3756e16affcd4b3dbe', class: {
426
+ return (h(Host, { key: '15535cda2a0f9026432cd29d3cca66471542293e' }, h("div", { key: '1a6d394f50582afa152912be44d3dc1b460647ec', class: "data-table" }, (this.searchable || this.columnPicker) && (h("div", { key: '5729cf6f2dfdd4f3280bcb37099348c91e18b589', class: "data-table__toolbar" }, this.searchable && (h("div", { key: '8594e5f8a45e84ecf2d0a07d0cc60ede27c06a25', class: "data-table__search" }, h("input", { key: 'afdbfe0c7b913fa6986fabd1b1746a1143fe45e5', type: "text", class: "data-table__search-input", placeholder: this.searchPlaceholder, value: this.searchInputValue, onInput: this.handleSearchInput }), this.searchInputValue && (h("button", { key: '4600532ab6612b7676425744a4d488793ba76d11', type: "button", class: "data-table__search-clear", onClick: this.handleClearSearch, "aria-label": "Clear search" }, "\u00D7")))), h("div", { key: '7394abd007401280dc2c5f4dc6511f4bfbc733ea', class: "data-table__toolbar-spacer" }), this.columnPicker && (h("button", { key: '3b058abfece531c57449b8c5c6c937efbbe238c2', type: "button", class: "data-table__column-picker-btn" }, "Columns")))), h("div", { key: '25642d9e9db56c73438a5f0b5cf4823b7147fb58', class: {
424
427
  'data-table__container': true,
425
428
  'data-table__container--virtual': this.virtualScroll,
426
- }, ref: el => (this.scrollContainerRef = el), onScroll: this.handleScroll }, h("table", { key: 'e1ec10b01a7532c235fbf4c88be0ccf98b92770a', class: "data-table__table", role: "grid" }, h("thead", { key: 'e0f501dd110457bff2c475b09563209d71551964', class: "data-table__head" }, h("tr", { key: '9542a39008d2b10772abf640ec3d62abe4afd308', class: "data-table__header-row", role: "row" }, this.selectable && (h("th", { key: '1a03b19a6716e96885fddc0a7b047634e0a60e4a', class: "data-table__th data-table__th--checkbox", role: "columnheader" }, h("input", { key: 'f3c3cde54af22263033cec4ecd735d1af0500e77', type: "checkbox", class: "data-table__checkbox", checked: this.isAllSelected(), indeterminate: this.isSomeSelected(), onChange: (e) => this.handleSelectAll(e.target.checked), "aria-label": "Select all rows" }))), this.expandable && (h("th", { key: '3470c4685f529805142e756c7b609ab4b17c9130', class: "data-table__th data-table__th--expand", role: "columnheader" }, h("span", { key: '6fdba33e0ef797c0259fca1a51b922bd8c8ad1ec', class: "sr-only" }, "Expand"))), visibleColumns.map(column => {
429
+ }, ref: el => (this.scrollContainerRef = el), onScroll: this.handleScroll }, h("table", { key: 'e7f32b0e32993c811a671486b9ba0ea3963b8c65', class: "data-table__table", role: "grid" }, h("thead", { key: '32e774b234f5585bf7e86b80e87e9fc4b0dd8879', class: "data-table__head" }, h("tr", { key: '0063401f0e59a4fa53d93356cb6d1c6f7f98b6c9', class: "data-table__header-row", role: "row" }, this.selectable && (h("th", { key: 'ef06fa478dfb5b88ad080a35958341f050752542', class: "data-table__th data-table__th--checkbox", role: "columnheader" }, h("input", { key: '46e938e0fd71d86f190968f6b8a3cb36fc25b313', type: "checkbox", class: "data-table__checkbox", checked: this.isAllSelected(), indeterminate: this.isSomeSelected(), onChange: (e) => this.handleSelectAll(e.target.checked), "aria-label": "Select all rows" }))), this.expandable && (h("th", { key: '51b2c56e81df98c93abb4b3ad36a7b644180e61c', class: "data-table__th data-table__th--expand", role: "columnheader" }, h("span", { key: '4057f8000cce3087201191ada05ace0e8e4fd888', class: "sr-only" }, "Expand"))), visibleColumns.map(column => {
427
430
  var _a, _b, _c;
428
431
  return (h("th", { key: column.field, class: {
429
432
  'data-table__th': true,
@@ -439,7 +442,7 @@ export class SekiDataTable {
439
442
  ? '↑'
440
443
  : '↓'
441
444
  : '↕'))), column.resizable && (h("div", { class: "data-table__resize-handle", onMouseDown: (e) => this.startResize(e, column) }))));
442
- }))), h("tbody", { key: '6ea94f1ce74f3a89f47b4ac639c84c0717b5bda8', class: "data-table__body", style: this.virtualScroll
445
+ }))), h("tbody", { key: '108750862419ff50da47dd4dac725a37dd4a4568', class: "data-table__body", style: this.virtualScroll
443
446
  ? {
444
447
  height: `${this.virtualScrollState.totalHeight}px`,
445
448
  position: 'relative',
@@ -482,12 +485,12 @@ export class SekiDataTable {
482
485
  /* Expanded content row */
483
486
  isExpanded && this.renderExpandedRow && (h("tr", { key: `${rowKey}-expanded`, class: "data-table__row data-table__row--expanded-content" }, h("td", { class: "data-table__td data-table__td--expanded-content", colSpan: visibleColumns.length + (this.selectable ? 1 : 0) + (this.expandable ? 1 : 0) }, h("div", { class: "data-table__expanded-content", innerHTML: this.renderExpandedRow(row) })))),
484
487
  ];
485
- })))), isLoading && this.state.rows.length > 0 && (h("div", { key: 'e0ca3f7b11df8a49252740a524c55fc494d17cb0', class: "data-table__loading-overlay" }, h("div", { key: 'a1ee63ae5045ba68371ad5d5bcbc286cf58f1141', class: "data-table__loading" }, "Loading...")))), h("div", { key: '567c17e0b546e9cbf0b151f5e058a1e5c8128d5f', class: "data-table__pagination" }, h("div", { key: '39b814ecda85ebb41d3e2bcbbb3015367edfc47e', class: "data-table__pagination-info" }, this.state.totalRows > 0
488
+ })))), isLoading && this.state.rows.length > 0 && (h("div", { key: 'b8e2ce3a23488dc4eb315d7aae2eee1a488b2ecf', class: "data-table__loading-overlay" }, h("div", { key: '3e43dddce5bd374c7dd3eb26a8591b54a5fc42fd', class: "data-table__loading" }, "Loading...")))), h("div", { key: 'e345e839e25ec07e16e76cc162b67b7f8cdf4c6a', class: "data-table__pagination" }, h("div", { key: '2146a5e6890f6f29287c6fe9c5d30eb79660d483', class: "data-table__pagination-info" }, this.state.totalRows > 0
486
489
  ? `${this.state.page * this.state.pageSize + 1}-${Math.min((this.state.page + 1) * this.state.pageSize, this.state.totalRows)} of ${this.state.totalRows}`
487
- : '0 results'), h("div", { key: 'e937607ecfcdd6257f5b34c38c24ca3caa04a736', class: "data-table__pagination-controls" }, h("select", { key: 'dd39176cb21e8f1c8000c87710ea22e8100d8de7', class: "data-table__page-size", onChange: (e) => {
490
+ : '0 results'), h("div", { key: '554fe4cb908614c48d7dddd538796c8301c674ed', class: "data-table__pagination-controls" }, h("select", { key: 'df31158d96da258dc59a1b8b34bdf0192c8da54c', class: "data-table__page-size", onChange: (e) => {
488
491
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
489
492
  this.handlePageSizeChange(Number(e.target.value));
490
- } }, this.parsePageSizeOptions().map(size => (h("option", { key: size, value: size, selected: size === this.state.pageSize }, size, " / page")))), h("button", { key: '70b60eaf9c0193ea8ef9ff95bacb05d720e3cba9', type: "button", class: "data-table__page-btn", disabled: this.state.page === 0, onClick: () => this.handlePageChange(0), "aria-label": "First page" }, "\u00AB\u00AB"), h("button", { key: 'cf36b9fae6c3cb821101a23abe071daceae5bd45', type: "button", class: "data-table__page-btn", disabled: this.state.page === 0, onClick: () => this.handlePageChange(this.state.page - 1), "aria-label": "Previous page" }, "\u00AB"), h("span", { key: '060b12a98b60f4888f280322547505ce42734f2d', class: "data-table__page-indicator" }, "Page ", this.state.page + 1, " of ", totalPages || 1), h("button", { key: '6b1962a2c3b75e979e69db4817e3b754ab9d9296', type: "button", class: "data-table__page-btn", disabled: this.state.page >= totalPages - 1, onClick: () => this.handlePageChange(this.state.page + 1), "aria-label": "Next page" }, "\u00BB"), h("button", { key: '47662fbec3bf8912e7beb740aa591ef94cc3a527', type: "button", class: "data-table__page-btn", disabled: this.state.page >= totalPages - 1, onClick: () => this.handlePageChange(totalPages - 1), "aria-label": "Last page" }, "\u00BB\u00BB"))))));
493
+ } }, this.parsePageSizeOptions().map(size => (h("option", { key: size, value: size, selected: size === this.state.pageSize }, size, " / page")))), h("button", { key: '7623ea8c30322aca869617976c0e8d25c0f08929', type: "button", class: "data-table__page-btn", disabled: this.state.page === 0, onClick: () => this.handlePageChange(0), "aria-label": "First page" }, "\u00AB\u00AB"), h("button", { key: 'e24bdc80a8f542a9eb490fc49d4acaf7268804ca', type: "button", class: "data-table__page-btn", disabled: this.state.page === 0, onClick: () => this.handlePageChange(this.state.page - 1), "aria-label": "Previous page" }, "\u00AB"), h("span", { key: 'bb14776ac673285917204f3ec0d24f51d21e41df', class: "data-table__page-indicator" }, "Page ", this.state.page + 1, " of ", totalPages || 1), h("button", { key: '1945572fc04df1778d212ba95f8aa5863037fa9e', type: "button", class: "data-table__page-btn", disabled: this.state.page >= totalPages - 1, onClick: () => this.handlePageChange(this.state.page + 1), "aria-label": "Next page" }, "\u00BB"), h("button", { key: '6a1571e72fde874357166c0001c1f4ed4fcc2652', type: "button", class: "data-table__page-btn", disabled: this.state.page >= totalPages - 1, onClick: () => this.handlePageChange(totalPages - 1), "aria-label": "Last page" }, "\u00BB\u00BB"))))));
491
494
  }
492
495
  static get is() { return "seki-data-table"; }
493
496
  static get encapsulation() { return "shadow"; }
@@ -848,6 +851,58 @@ export class SekiDataTable {
848
851
  "reflect": false,
849
852
  "attribute": "empty-message",
850
853
  "defaultValue": "'No data'"
854
+ },
855
+ "fetchData": {
856
+ "type": "unknown",
857
+ "mutable": false,
858
+ "complexType": {
859
+ "original": "FetchDataCallback",
860
+ "resolved": "((request: FetchRequest) => Promise<FetchResponse>) | undefined",
861
+ "references": {
862
+ "FetchDataCallback": {
863
+ "location": "import",
864
+ "path": "./interfaces",
865
+ "id": "src/components/data-table/interfaces.ts::FetchDataCallback"
866
+ }
867
+ }
868
+ },
869
+ "required": false,
870
+ "optional": true,
871
+ "docs": {
872
+ "tags": [{
873
+ "name": "Prop",
874
+ "text": ": in the lazy-loader build only\ndecorated members are proxied from the host element to the instance."
875
+ }],
876
+ "text": "Callback to fetch data. Set it as a JS property. Assigning or replacing it\n(re)loads the table. Must be a"
877
+ },
878
+ "getter": false,
879
+ "setter": false
880
+ },
881
+ "renderExpandedRow": {
882
+ "type": "unknown",
883
+ "mutable": false,
884
+ "complexType": {
885
+ "original": "RenderExpandedRowCallback",
886
+ "resolved": "((row: Record<string, unknown>) => string) | undefined",
887
+ "references": {
888
+ "RenderExpandedRowCallback": {
889
+ "location": "import",
890
+ "path": "./interfaces",
891
+ "id": "src/components/data-table/interfaces.ts::RenderExpandedRowCallback"
892
+ }
893
+ }
894
+ },
895
+ "required": false,
896
+ "optional": true,
897
+ "docs": {
898
+ "tags": [{
899
+ "name": "Prop",
900
+ "text": ", see fetchData)"
901
+ }],
902
+ "text": "Callback to render expanded row content (must be a"
903
+ },
904
+ "getter": false,
905
+ "setter": false
851
906
  }
852
907
  };
853
908
  }
@@ -1262,6 +1317,9 @@ export class SekiDataTable {
1262
1317
  static get elementRef() { return "el"; }
1263
1318
  static get watchers() {
1264
1319
  return [{
1320
+ "propName": "fetchData",
1321
+ "methodName": "fetchDataChanged"
1322
+ }, {
1265
1323
  "propName": "columns",
1266
1324
  "methodName": "columnsChanged"
1267
1325
  }, {
@@ -1,5 +1,6 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { trapFocus, focusFirst } from "../../utils/dialog/focus-trap";
3
+ import { ContextConsumer } from "../../utils/context-bridge";
3
4
  /**
4
5
  * Dialog content panel
5
6
  *
@@ -9,6 +10,11 @@ import { trapFocus, focusFirst } from "../../utils/dialog/focus-trap";
9
10
  */
10
11
  export class SekiDialogContent {
11
12
  constructor() {
13
+ this.dialogConsumer = new ContextConsumer('seki-dialog', '_dialogContext', () => this.onDialogOpenChange());
14
+ /**
15
+ * Re-read the parent's context. Runs once on connect (picking up a dialog
16
+ * that is already open, e.g. `<seki-dialog open>`) and on every publish.
17
+ */
12
18
  this.onDialogOpenChange = () => {
13
19
  var _a, _b;
14
20
  const context = this.getContext();
@@ -33,24 +39,10 @@ export class SekiDialogContent {
33
39
  this._isOpen = false;
34
40
  }
35
41
  getContext() {
36
- const dialog = this.el.closest('seki-dialog');
37
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
- return dialog ? dialog._dialogContext : null;
42
+ return this.dialogConsumer.context;
39
43
  }
40
- componentWillRender() {
41
- var _a, _b;
42
- const context = this.getContext();
43
- const wasOpen = this._isOpen;
44
- this._isOpen = (_a = context === null || context === void 0 ? void 0 : context.isOpen) !== null && _a !== void 0 ? _a : false;
45
- // Handle focus on open
46
- if (!wasOpen && this._isOpen) {
47
- this.previousActiveElement = document.activeElement;
48
- // Focus will be set in componentDidRender
49
- }
50
- // Handle focus on close
51
- if (wasOpen && !this._isOpen) {
52
- (_b = this.previousActiveElement) === null || _b === void 0 ? void 0 : _b.focus();
53
- }
44
+ connectedCallback() {
45
+ this.dialogConsumer.connect(this.el);
54
46
  }
55
47
  componentDidRender() {
56
48
  if (this._isOpen && this.contentRef) {
@@ -62,12 +54,6 @@ export class SekiDialogContent {
62
54
  });
63
55
  }
64
56
  }
65
- componentDidLoad() {
66
- var _a, _b;
67
- // Listen for context changes
68
- this.dialogEl = (_a = this.el.closest('seki-dialog')) !== null && _a !== void 0 ? _a : undefined;
69
- (_b = this.dialogEl) === null || _b === void 0 ? void 0 : _b.addEventListener('sekiOpenChange', this.onDialogOpenChange);
70
- }
71
57
  handleKeyDown(event) {
72
58
  if (!this._isOpen)
73
59
  return;
@@ -85,8 +71,7 @@ export class SekiDialogContent {
85
71
  }
86
72
  }
87
73
  disconnectedCallback() {
88
- var _a;
89
- (_a = this.dialogEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('sekiOpenChange', this.onDialogOpenChange);
74
+ this.dialogConsumer.disconnect();
90
75
  }
91
76
  render() {
92
77
  const context = this.getContext();
@@ -1,4 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
+ import { ContextConsumer } from "../../utils/context-bridge";
2
3
  /**
3
4
  * Dialog description
4
5
  *
@@ -7,14 +8,19 @@ import { h, Host } from "@stencil/core";
7
8
  * @part description - The description element
8
9
  */
9
10
  export class SekiDialogDescription {
10
- getContext() {
11
- const dialog = this.el.closest('seki-dialog');
12
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- return dialog ? dialog._dialogContext : null;
11
+ constructor() {
12
+ this.dialogConsumer = new ContextConsumer('seki-dialog', '_dialogContext', context => {
13
+ this._id = context === null || context === void 0 ? void 0 : context.descriptionId;
14
+ });
15
+ }
16
+ connectedCallback() {
17
+ this.dialogConsumer.connect(this.el);
18
+ }
19
+ disconnectedCallback() {
20
+ this.dialogConsumer.disconnect();
14
21
  }
15
22
  render() {
16
- const context = this.getContext();
17
- return (h(Host, { key: '7b0104247624e150d1b1d8076ed21b2169fc097b' }, h("p", { key: '5db65c820a6e146aafe89b4f542386019b12a614', part: "description", id: context === null || context === void 0 ? void 0 : context.descriptionId, class: "dialog-description" }, h("slot", { key: '85320e13964565ab011a2cba7b0b8cd8eaacf80a' }))));
23
+ return (h(Host, { key: '635ff7451517dce9556fda6c25510644dc7855d2' }, h("p", { key: 'e07527f9157e61cdff3e4188c8b3892407d3f205', part: "description", id: this._id, class: "dialog-description" }, h("slot", { key: '7299a25bfd795663507202ff2b92b8e6438de2e1' }))));
18
24
  }
19
25
  static get is() { return "seki-dialog-description"; }
20
26
  static get encapsulation() { return "shadow"; }
@@ -28,5 +34,10 @@ export class SekiDialogDescription {
28
34
  "$": ["seki-dialog-description.css"]
29
35
  };
30
36
  }
37
+ static get states() {
38
+ return {
39
+ "_id": {}
40
+ };
41
+ }
31
42
  static get elementRef() { return "el"; }
32
43
  }
@@ -1,4 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
+ import { ContextConsumer } from "../../utils/context-bridge";
2
3
  /**
3
4
  * Dialog overlay (backdrop)
4
5
  *
@@ -11,6 +12,7 @@ export class SekiDialogOverlay {
11
12
  */
12
13
  this.closeOnClick = true;
13
14
  this._isOpen = false;
15
+ this.dialogConsumer = new ContextConsumer('seki-dialog', '_dialogContext', () => this.onDialogOpenChange());
14
16
  this.onDialogOpenChange = () => {
15
17
  var _a;
16
18
  const context = this.getContext();
@@ -23,24 +25,13 @@ export class SekiDialogOverlay {
23
25
  };
24
26
  }
25
27
  getContext() {
26
- const dialog = this.el.closest('seki-dialog');
27
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
- return dialog ? dialog._dialogContext : null;
28
+ return this.dialogConsumer.context;
29
29
  }
30
- componentWillRender() {
31
- var _a;
32
- const context = this.getContext();
33
- this._isOpen = (_a = context === null || context === void 0 ? void 0 : context.isOpen) !== null && _a !== void 0 ? _a : false;
34
- }
35
- componentDidLoad() {
36
- var _a, _b;
37
- // Listen for context changes
38
- this.dialogEl = (_a = this.el.closest('seki-dialog')) !== null && _a !== void 0 ? _a : undefined;
39
- (_b = this.dialogEl) === null || _b === void 0 ? void 0 : _b.addEventListener('sekiOpenChange', this.onDialogOpenChange);
30
+ connectedCallback() {
31
+ this.dialogConsumer.connect(this.el);
40
32
  }
41
33
  disconnectedCallback() {
42
- var _a;
43
- (_a = this.dialogEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('sekiOpenChange', this.onDialogOpenChange);
34
+ this.dialogConsumer.disconnect();
44
35
  }
45
36
  render() {
46
37
  if (!this._isOpen) {
@@ -1,4 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
+ import { ContextConsumer } from "../../utils/context-bridge";
2
3
  /**
3
4
  * Dialog title
4
5
  *
@@ -7,14 +8,19 @@ import { h, Host } from "@stencil/core";
7
8
  * @part title - The title element
8
9
  */
9
10
  export class SekiDialogTitle {
10
- getContext() {
11
- const dialog = this.el.closest('seki-dialog');
12
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
- return dialog ? dialog._dialogContext : null;
11
+ constructor() {
12
+ this.dialogConsumer = new ContextConsumer('seki-dialog', '_dialogContext', context => {
13
+ this._id = context === null || context === void 0 ? void 0 : context.titleId;
14
+ });
15
+ }
16
+ connectedCallback() {
17
+ this.dialogConsumer.connect(this.el);
18
+ }
19
+ disconnectedCallback() {
20
+ this.dialogConsumer.disconnect();
14
21
  }
15
22
  render() {
16
- const context = this.getContext();
17
- return (h(Host, { key: '8563ff00c6d6be076fcbf1c407abb8c4c3dac8ba' }, h("h2", { key: '95f31b424091d535abef32134e3304374b0c177d', part: "title", id: context === null || context === void 0 ? void 0 : context.titleId, class: "dialog-title" }, h("slot", { key: '308643273e0800c08e618c3c77386143f1281890' }))));
23
+ return (h(Host, { key: '7ffac23990c2de77d4ab06b5f9ad180eb941d651' }, h("h2", { key: '1d46ec7882f26e9657180af839ce8c1ddecca3ba', part: "title", id: this._id, class: "dialog-title" }, h("slot", { key: '4b361e327dfaa9b11df17d7b551d4d27bb07f5d7' }))));
18
24
  }
19
25
  static get is() { return "seki-dialog-title"; }
20
26
  static get encapsulation() { return "shadow"; }
@@ -28,5 +34,10 @@ export class SekiDialogTitle {
28
34
  "$": ["seki-dialog-title.css"]
29
35
  };
30
36
  }
37
+ static get states() {
38
+ return {
39
+ "_id": {}
40
+ };
41
+ }
31
42
  static get elementRef() { return "el"; }
32
43
  }
@@ -1,5 +1,6 @@
1
1
  import { h, Host } from "@stencil/core";
2
2
  import { lockBodyScroll, unlockBodyScroll } from "../../utils/dialog/focus-trap";
3
+ import { publishContext } from "../../utils/context-bridge";
3
4
  /**
4
5
  * Dialog root component for modal dialogs
5
6
  *
@@ -29,6 +30,19 @@ export class SekiDialog {
29
30
  }
30
31
  componentWillLoad() {
31
32
  this._isOpen = this.open || this.defaultOpen;
33
+ // Publish before the first render so parts that render with this dialog
34
+ // (or upgrade before it, under one-module-per-tag loading) see `open`
35
+ // declared in HTML (#323).
36
+ this.publish();
37
+ }
38
+ componentDidLoad() {
39
+ // A dialog declared open in HTML never went through openDialog().
40
+ if (this._isOpen && this.modal) {
41
+ lockBodyScroll();
42
+ }
43
+ }
44
+ handleModalChange() {
45
+ this.publish();
32
46
  }
33
47
  handleOpenPropChange(newValue) {
34
48
  // Honour controlled `open` updates after first render. Without this, setting
@@ -57,8 +71,7 @@ export class SekiDialog {
57
71
  // Update context for child components before emitting, so that any listener
58
72
  // reading _dialogContext synchronously (e.g. seki-dialog-content) sees isOpen
59
73
  // already updated.
60
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
- this.el._dialogContext = this.getContext();
74
+ this.publish();
62
75
  this.sekiOpenChange.emit(true);
63
76
  if (this.modal) {
64
77
  lockBodyScroll();
@@ -75,8 +88,7 @@ export class SekiDialog {
75
88
  // Update context for child components before emitting, so that any listener
76
89
  // reading _dialogContext synchronously (e.g. seki-dialog-content) sees isOpen
77
90
  // already updated.
78
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
- this.el._dialogContext = this.getContext();
91
+ this.publish();
80
92
  this.sekiOpenChange.emit(false);
81
93
  if (this.modal) {
82
94
  unlockBodyScroll();
@@ -98,13 +110,8 @@ export class SekiDialog {
98
110
  close: () => this.closeDialog(),
99
111
  };
100
112
  }
101
- componentDidLoad() {
102
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
103
- this.el._dialogContext = this.getContext();
104
- }
105
- componentDidUpdate() {
106
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
107
- this.el._dialogContext = this.getContext();
113
+ publish() {
114
+ publishContext(this.el, '_dialogContext', this.getContext(), this.dialogContextChange);
108
115
  }
109
116
  disconnectedCallback() {
110
117
  // Ensure body scroll is unlocked if component is removed while open
@@ -113,7 +120,7 @@ export class SekiDialog {
113
120
  }
114
121
  }
115
122
  render() {
116
- return (h(Host, { key: 'e647d4403eb9d3d3fa4a8da8b218659f9942c9e5', "data-state": this._isOpen ? 'open' : 'closed' }, h("div", { key: '16eaa11585e656a62da1cf02a75d7d49610d65ae', part: "dialog", class: "dialog" }, h("slot", { key: 'a281ff724e3518a74f87bd9cab3bd70304e38cde' }))));
123
+ return (h(Host, { key: 'a1aa2d420059b896076fc23e80ad0843c54ca6e9', "data-state": this._isOpen ? 'open' : 'closed' }, h("div", { key: 'c84e45a16884cc61fb26e4a5fd5b96547405bcea', part: "dialog", class: "dialog" }, h("slot", { key: '13f5b8cbae8ba716473dabdef44e5ea08f5a881b' }))));
117
124
  }
118
125
  static get is() { return "seki-dialog"; }
119
126
  static get encapsulation() { return "shadow"; }
@@ -212,6 +219,21 @@ export class SekiDialog {
212
219
  "resolved": "boolean",
213
220
  "references": {}
214
221
  }
222
+ }, {
223
+ "method": "dialogContextChange",
224
+ "name": "sekiContextChange",
225
+ "bubbles": true,
226
+ "cancelable": true,
227
+ "composed": true,
228
+ "docs": {
229
+ "tags": [],
230
+ "text": "Internal: notifies dialog parts (content, overlay, title, description)\nthat `_dialogContext` changed. Not part of the public API; listen to\n`sekiOpenChange` instead."
231
+ },
232
+ "complexType": {
233
+ "original": "void",
234
+ "resolved": "void",
235
+ "references": {}
236
+ }
215
237
  }];
216
238
  }
217
239
  static get methods() {
@@ -255,6 +277,9 @@ export class SekiDialog {
255
277
  static get elementRef() { return "el"; }
256
278
  static get watchers() {
257
279
  return [{
280
+ "propName": "modal",
281
+ "methodName": "handleModalChange"
282
+ }, {
258
283
  "propName": "open",
259
284
  "methodName": "handleOpenPropChange"
260
285
  }];
@@ -1,4 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
+ import { ContextConsumer } from "../../utils/context-bridge";
2
3
  /**
3
4
  * seki-drawer-content: Container for drawer content with gesture support
4
5
  *
@@ -52,9 +53,7 @@ export class SekiDrawerContent {
52
53
  this.startX = 0;
53
54
  this.contentEl = null;
54
55
  this.positions = [];
55
- this.onDrawerOpenChange = () => {
56
- this.syncOpenState();
57
- };
56
+ this.drawerConsumer = new ContextConsumer('seki-drawer', '_drawerContext', () => this.syncOpenState());
58
57
  this.handleCloseClick = () => {
59
58
  this.requestClose.emit();
60
59
  };
@@ -152,29 +151,28 @@ export class SekiDrawerContent {
152
151
  get isHorizontal() {
153
152
  return this.direction === 'left' || this.direction === 'right';
154
153
  }
154
+ connectedCallback() {
155
+ this.drawerConsumer.connect(this.el);
156
+ this.propagateDirection();
157
+ }
155
158
  componentWillLoad() {
156
- var _a;
157
159
  this.parseSnapPoints();
158
- this.drawerEl = (_a = this.el.closest('seki-drawer')) !== null && _a !== void 0 ? _a : undefined;
159
- // Propagate direction to parent for styling
160
- if (this.drawerEl) {
161
- this.drawerEl.setAttribute('data-direction', this.direction);
162
- this.syncOpenState();
163
- }
164
160
  }
165
- componentDidLoad() {
166
- var _a, _b, _c;
167
- (_a = this.drawerEl) === null || _a === void 0 ? void 0 : _a.addEventListener('drawerOpen', this.onDrawerOpenChange);
168
- (_b = this.drawerEl) === null || _b === void 0 ? void 0 : _b.addEventListener('drawerClose', this.onDrawerOpenChange);
169
- (_c = this.drawerEl) === null || _c === void 0 ? void 0 : _c.addEventListener('drawerSnap', this.onDrawerOpenChange);
161
+ /** Propagate the direction to the parent for styling. */
162
+ propagateDirection() {
163
+ var _a;
164
+ (_a = this.drawerConsumer.parent) === null || _a === void 0 ? void 0 : _a.setAttribute('data-direction', this.direction);
170
165
  }
166
+ /**
167
+ * Re-read the parent's open state. Runs once on connect (picking up a drawer
168
+ * that is already open, e.g. `<seki-drawer open>`) and on every publish.
169
+ */
171
170
  syncOpenState() {
172
- var _a;
173
- if (!this.drawerEl)
171
+ var _a, _b;
172
+ // No seki-drawer parent: stay open (standalone use).
173
+ if (!this.drawerConsumer.parent)
174
174
  return;
175
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
176
- const context = this.drawerEl._drawerContext;
177
- this._isOpen = (_a = context === null || context === void 0 ? void 0 : context.isOpen) !== null && _a !== void 0 ? _a : false;
175
+ this._isOpen = (_b = (_a = this.drawerConsumer.context) === null || _a === void 0 ? void 0 : _a.isOpen) !== null && _b !== void 0 ? _b : false;
178
176
  }
179
177
  parseSnapPoints() {
180
178
  const points = this.snapPoints
@@ -237,10 +235,7 @@ export class SekiDrawerContent {
237
235
  }
238
236
  }
239
237
  disconnectedCallback() {
240
- var _a, _b, _c;
241
- (_a = this.drawerEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('drawerOpen', this.onDrawerOpenChange);
242
- (_b = this.drawerEl) === null || _b === void 0 ? void 0 : _b.removeEventListener('drawerClose', this.onDrawerOpenChange);
243
- (_c = this.drawerEl) === null || _c === void 0 ? void 0 : _c.removeEventListener('drawerSnap', this.onDrawerOpenChange);
238
+ this.drawerConsumer.disconnect();
244
239
  }
245
240
  render() {
246
241
  if (!this._isOpen) {
@@ -449,6 +444,9 @@ export class SekiDrawerContent {
449
444
  static get elementRef() { return "el"; }
450
445
  static get watchers() {
451
446
  return [{
447
+ "propName": "direction",
448
+ "methodName": "propagateDirection"
449
+ }, {
452
450
  "propName": "snapPoints",
453
451
  "methodName": "parseSnapPoints"
454
452
  }];
@@ -1,4 +1,5 @@
1
1
  import { h } from "@stencil/core";
2
+ import { publishContext } from "../../utils/context-bridge";
2
3
  /**
3
4
  * seki-drawer: Mobile-friendly drawer component with swipe gestures
4
5
  *
@@ -40,8 +41,8 @@ export class SekiDrawer {
40
41
  this._isOpen = this.open || this.defaultOpen;
41
42
  this.open = this._isOpen;
42
43
  this.currentSnapPoint = this._isOpen ? 1 : 0;
43
- }
44
- componentDidLoad() {
44
+ // Publish before the first render so `<seki-drawer open>` shows its content
45
+ // at first paint (#323).
45
46
  this.updateContext();
46
47
  }
47
48
  handleOpenPropChange(newValue) {
@@ -111,9 +112,8 @@ export class SekiDrawer {
111
112
  }
112
113
  updateContext() {
113
114
  // seki-drawer-content has no other way to know this drawer's open state —
114
- // it reads this off the host element via closest('seki-drawer').
115
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
116
- this.el._drawerContext = { isOpen: this._isOpen };
115
+ // it reads this off the host element (see consumeContext in context-bridge).
116
+ publishContext(this.el, '_drawerContext', { isOpen: this._isOpen }, this.drawerContextChange);
117
117
  }
118
118
  handleTriggerClick() {
119
119
  this.toggleDrawer();
@@ -130,10 +130,10 @@ export class SekiDrawer {
130
130
  }
131
131
  }
132
132
  render() {
133
- return (h("div", { key: '8740a2d8aad6119d9388b744fd0f7679c771e572', class: {
133
+ return (h("div", { key: '8e9c6c60ed2747b2e04f9057031fb98e98e39554', class: {
134
134
  'seki-drawer': true,
135
135
  'seki-drawer--open': this._isOpen,
136
- }, "data-snap-point": this.currentSnapPoint, part: "drawer" }, h("slot", { key: '54a1e6c7293e36038e24ee64c463f3329843fe35' }), this._isOpen && (h("div", { key: '89d7c1556c00b8e1faba0e96a6d66016d9790ade', class: "seki-drawer-overlay", part: "overlay", onClick: () => this.closeDrawer() }))));
136
+ }, "data-snap-point": this.currentSnapPoint, part: "drawer" }, h("slot", { key: '8366502b9a1aa0404dfbabaaeedbb4d6b5c52080' }), this._isOpen && (h("div", { key: '693cb80fc7442b8eb3083dbc13704cd6a8b87685', class: "seki-drawer-overlay", part: "overlay", onClick: () => this.closeDrawer() }))));
137
137
  }
138
138
  static get is() { return "seki-drawer"; }
139
139
  static get encapsulation() { return "shadow"; }
@@ -258,6 +258,21 @@ export class SekiDrawer {
258
258
  "resolved": "boolean",
259
259
  "references": {}
260
260
  }
261
+ }, {
262
+ "method": "drawerContextChange",
263
+ "name": "sekiContextChange",
264
+ "bubbles": true,
265
+ "cancelable": true,
266
+ "composed": true,
267
+ "docs": {
268
+ "tags": [],
269
+ "text": "Internal: notifies seki-drawer-content that `_drawerContext` changed. Not\npart of the public API; listen to `sekiOpenChange` instead."
270
+ },
271
+ "complexType": {
272
+ "original": "void",
273
+ "resolved": "void",
274
+ "references": {}
275
+ }
261
276
  }];
262
277
  }
263
278
  static get methods() {
@@ -1,4 +1,5 @@
1
1
  import { h } from "@stencil/core";
2
+ import { LabelBinding } from "../../utils/label-association";
2
3
  export class SekiFieldLabel {
3
4
  constructor() {
4
5
  /**
@@ -7,9 +8,29 @@ export class SekiFieldLabel {
7
8
  */
8
9
  this.required = false;
9
10
  }
11
+ onForChange() {
12
+ var _a;
13
+ (_a = this.binding) === null || _a === void 0 ? void 0 : _a.sync();
14
+ }
15
+ /** Forward clicks to the labelled control (see utils/label-association.ts). */
16
+ onClick(event) {
17
+ var _a;
18
+ (_a = this.binding) === null || _a === void 0 ? void 0 : _a.handleClick(event);
19
+ }
20
+ connectedCallback() {
21
+ this.binding = new LabelBinding(this.el, () => this.htmlFor);
22
+ }
23
+ componentDidLoad() {
24
+ var _a, _b;
25
+ (_a = this.binding) === null || _a === void 0 ? void 0 : _a.sync();
26
+ (_b = this.binding) === null || _b === void 0 ? void 0 : _b.observe();
27
+ }
28
+ disconnectedCallback() {
29
+ var _a;
30
+ (_a = this.binding) === null || _a === void 0 ? void 0 : _a.disconnect();
31
+ }
10
32
  render() {
11
- const labelProps = this.htmlFor ? { for: this.htmlFor } : {};
12
- return (h("label", Object.assign({ key: 'ff0853ec0cd7216d1357f6a67d31d477ed244c24' }, labelProps), h("slot", { key: 'caf0af6159cd63804748b99a66d20c1f40a23111' }), this.required && h("span", { key: '0628546ed8740017449a543dcb1b2bfa279ff254', class: "required-indicator" }, " *")));
33
+ return (h("label", { key: '012428a2524290c08330f7e9163c4f040a01c5c4' }, h("slot", { key: 'fec4e4466151bf66657c4326fa8978dac8137692', onSlotchange: () => { var _a; return (_a = this.binding) === null || _a === void 0 ? void 0 : _a.sync(); } }), this.required && h("span", { key: 'b21ecf7ad0432714e7160bf0ec911450eb1f7027', class: "required-indicator" }, " *")));
13
34
  }
14
35
  static get is() { return "seki-field-label"; }
15
36
  static get encapsulation() { return "shadow"; }
@@ -37,7 +58,7 @@ export class SekiFieldLabel {
37
58
  "optional": true,
38
59
  "docs": {
39
60
  "tags": [],
40
- "text": "ID of the form control this label is for\nSets the `for` attribute on the label element"
61
+ "text": "ID of the form control this label is for\nResolved in the label's own root node (not this component's shadow root), so it\nreaches light-DOM controls. Falls back to the control nested in the label."
41
62
  },
42
63
  "getter": false,
43
64
  "setter": false,
@@ -67,4 +88,19 @@ export class SekiFieldLabel {
67
88
  };
68
89
  }
69
90
  static get elementRef() { return "el"; }
91
+ static get watchers() {
92
+ return [{
93
+ "propName": "htmlFor",
94
+ "methodName": "onForChange"
95
+ }];
96
+ }
97
+ static get listeners() {
98
+ return [{
99
+ "name": "click",
100
+ "method": "onClick",
101
+ "target": undefined,
102
+ "capture": false,
103
+ "passive": false
104
+ }];
105
+ }
70
106
  }