@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
@@ -1,4 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
+ import { publishContext } from "../../utils/context-bridge";
2
3
  /**
3
4
  * @slot - The collapsible content (trigger and content)
4
5
  *
@@ -27,9 +28,19 @@ export class SekiCollapsible {
27
28
  componentWillLoad() {
28
29
  // Initialize with defaultOpen or open prop
29
30
  this._isOpen = this.open || this.defaultOpen;
31
+ // Publish before the first render so `<seki-collapsible open>` reaches the
32
+ // trigger and content at first paint (#323).
33
+ this.updateContext();
30
34
  }
31
35
  openChanged(newValue) {
36
+ if (newValue === this._isOpen)
37
+ return;
32
38
  this._isOpen = newValue;
39
+ this.updateContext();
40
+ this.sekiOpenChange.emit(newValue);
41
+ }
42
+ disabledChanged() {
43
+ this.updateContext();
33
44
  }
34
45
  /**
35
46
  * Toggle the collapsible open state
@@ -70,15 +81,8 @@ export class SekiCollapsible {
70
81
  get triggerId() {
71
82
  return `seki-collapsible-trigger-${this.instanceId}`;
72
83
  }
73
- componentDidLoad() {
74
- this.updateContext();
75
- }
76
- componentDidUpdate() {
77
- this.updateContext();
78
- }
79
84
  updateContext() {
80
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
81
- this.el._collapsibleContext = this.getContext();
85
+ publishContext(this.el, '_collapsibleContext', this.getContext(), this.collapsibleContextChange);
82
86
  }
83
87
  getContext() {
84
88
  return {
@@ -90,7 +94,7 @@ export class SekiCollapsible {
90
94
  };
91
95
  }
92
96
  render() {
93
- return (h(Host, { key: '9434ff084e0c2c680323036a2fd5e0718c7a5ec4', "data-state": this._isOpen ? 'open' : 'closed', "data-disabled": this.disabled ? '' : undefined }, h("div", { key: 'f83248fb6c62c5b9008389d35686b5ebd1858916', part: "collapsible", class: "collapsible" }, h("slot", { key: '804b2e5188aeaef8d57bc88c418ee745bdf296cd' }))));
97
+ return (h(Host, { key: '3b675841816d04cb9295ead7b0909d311904fa6a', "data-state": this._isOpen ? 'open' : 'closed', "data-disabled": this.disabled ? '' : undefined }, h("div", { key: '155a3ab25691993804c0acf8510dd8bccf39b1fe', part: "collapsible", class: "collapsible" }, h("slot", { key: '1f9979e76571f519d9d3601ba2fb86c35704ce9a' }))));
94
98
  }
95
99
  static get is() { return "seki-collapsible"; }
96
100
  static get encapsulation() { return "shadow"; }
@@ -189,6 +193,21 @@ export class SekiCollapsible {
189
193
  "resolved": "boolean",
190
194
  "references": {}
191
195
  }
196
+ }, {
197
+ "method": "collapsibleContextChange",
198
+ "name": "sekiContextChange",
199
+ "bubbles": true,
200
+ "cancelable": true,
201
+ "composed": true,
202
+ "docs": {
203
+ "tags": [],
204
+ "text": "Internal: notifies collapsible parts that `_collapsibleContext` changed.\nNot part of the public API; listen to `sekiOpenChange` instead."
205
+ },
206
+ "complexType": {
207
+ "original": "void",
208
+ "resolved": "void",
209
+ "references": {}
210
+ }
192
211
  }];
193
212
  }
194
213
  static get methods() {
@@ -251,6 +270,9 @@ export class SekiCollapsible {
251
270
  return [{
252
271
  "propName": "open",
253
272
  "methodName": "openChanged"
273
+ }, {
274
+ "propName": "disabled",
275
+ "methodName": "disabledChanged"
254
276
  }];
255
277
  }
256
278
  }
@@ -1,4 +1,5 @@
1
1
  import { Host, h } from "@stencil/core";
2
+ import { ContextConsumer } from "../../utils/context-bridge";
2
3
  /**
3
4
  * @slot - Combobox items
4
5
  */
@@ -8,32 +9,24 @@ export class SekiComboboxContent {
8
9
  this.maxHeight = '15rem';
9
10
  this.isOpen = false;
10
11
  this.listboxId = '';
12
+ // Follow the published context, not the host's aria-expanded attribute: the
13
+ // old MutationObserver only worked because seki-combobox happens to reflect
14
+ // its open state there, and it was never disconnected (#323).
15
+ this.comboboxConsumer = new ContextConsumer('seki-combobox', 'comboboxContext', ctx => {
16
+ if (ctx) {
17
+ this.isOpen = ctx.open;
18
+ this.listboxId = ctx.listboxId;
19
+ }
20
+ });
11
21
  }
12
- getContext() {
13
- const combobox = this.el.closest('seki-combobox');
14
- return (combobox === null || combobox === void 0 ? void 0 : combobox.comboboxContext) || null;
15
- }
16
- componentDidLoad() {
17
- this.updateState();
18
- // Set up mutation observer to watch for context changes
19
- this.observeParent();
20
- }
21
- observeParent() {
22
- const combobox = this.el.closest('seki-combobox');
23
- if (combobox) {
24
- const observer = new MutationObserver(() => this.updateState());
25
- observer.observe(combobox, { attributes: true, subtree: false });
26
- }
22
+ connectedCallback() {
23
+ this.comboboxConsumer.connect(this.el);
27
24
  }
28
- updateState() {
29
- const ctx = this.getContext();
30
- if (ctx) {
31
- this.isOpen = ctx.open;
32
- this.listboxId = ctx.listboxId;
33
- }
25
+ disconnectedCallback() {
26
+ this.comboboxConsumer.disconnect();
34
27
  }
35
28
  render() {
36
- return (h(Host, { key: '9ca02f1ae2ea34a674798ba7ef378a4bfff89f15', class: { 'hidden': !this.isOpen } }, h("div", { key: 'e6c7d6b245e31be15e474458a9037fd237d1d389', id: this.listboxId, class: "combobox-content", role: "listbox", style: { maxHeight: this.maxHeight } }, h("slot", { key: '1fe0843f17b6a75214ff6ca16e5ca79929192025' }))));
29
+ return (h(Host, { key: '08fdcae6d7a7094a52741c0482f5b96ddbda3426', class: { 'hidden': !this.isOpen } }, h("div", { key: 'ad07c879b50568cfeb24b9bc1fb012ceb6503eaa', id: this.listboxId, class: "combobox-content", role: "listbox", style: { maxHeight: this.maxHeight } }, h("slot", { key: 'c3c569b4520d814ea75dd3f1fe3702b759a1958e' }))));
37
30
  }
38
31
  static get is() { return "seki-combobox-content"; }
39
32
  static get encapsulation() { return "shadow"; }
@@ -1,4 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
+ import { ContextConsumer } from "../../utils/context-bridge";
2
3
  /**
3
4
  * Command empty state - shown when no results match
4
5
  *
@@ -9,33 +10,16 @@ import { h, Host } from "@stencil/core";
9
10
  export class SekiCommandEmpty {
10
11
  constructor() {
11
12
  this._visible = false;
12
- this.handleValueChange = () => {
13
+ this.commandConsumer = new ContextConsumer('seki-command', '_commandContext', context => {
13
14
  var _a;
14
- const context = this.getContext();
15
15
  this._visible = (_a = context === null || context === void 0 ? void 0 : context.isEmpty) !== null && _a !== void 0 ? _a : false;
16
- };
17
- }
18
- getContext() {
19
- const command = this.el.closest('seki-command');
20
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
- return command ? command._commandContext : null;
16
+ });
22
17
  }
23
- componentWillRender() {
24
- var _a;
25
- const context = this.getContext();
26
- this._visible = (_a = context === null || context === void 0 ? void 0 : context.isEmpty) !== null && _a !== void 0 ? _a : false;
27
- }
28
- componentDidLoad() {
29
- const command = this.el.closest('seki-command');
30
- if (command) {
31
- command.addEventListener('sekiValueChange', this.handleValueChange);
32
- }
18
+ connectedCallback() {
19
+ this.commandConsumer.connect(this.el);
33
20
  }
34
21
  disconnectedCallback() {
35
- const command = this.el.closest('seki-command');
36
- if (command) {
37
- command.removeEventListener('sekiValueChange', this.handleValueChange);
38
- }
22
+ this.commandConsumer.disconnect();
39
23
  }
40
24
  render() {
41
25
  if (!this._visible) {
@@ -1,4 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
+ import { ContextConsumer } from "../../utils/context-bridge";
2
3
  /**
3
4
  * Command group - groups related items with a heading
4
5
  *
@@ -9,10 +10,9 @@ import { h, Host } from "@stencil/core";
9
10
  */
10
11
  export class SekiCommandGroup {
11
12
  constructor() {
12
- this.onCommandValueChange = () => {
13
- // Small delay to allow items to update first
14
- requestAnimationFrame(() => this.updateVisibility());
15
- };
13
+ // Recomputed from the parent's context on every publish, including a
14
+ // `value` set from outside (which never fired sekiValueChange) (#323).
15
+ this.commandConsumer = new ContextConsumer('seki-command', '_commandContext', () => this.updateVisibility());
16
16
  /**
17
17
  * Show even when all items are filtered out
18
18
  */
@@ -33,18 +33,16 @@ export class SekiCommandGroup {
33
33
  * Update visibility based on child items
34
34
  */
35
35
  updateVisibility() {
36
- const items = this.getItems();
37
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
- this._hasVisibleItems = items.some((item) => { var _a, _b; return (_b = (_a = item.isVisible) === null || _a === void 0 ? void 0 : _a.call(item)) !== null && _b !== void 0 ? _b : true; });
36
+ const context = this.commandConsumer.context;
37
+ if (!context)
38
+ return;
39
+ this._hasVisibleItems = this.getItems().some(item => context.isItemMatch(item));
39
40
  }
40
- componentDidLoad() {
41
- var _a, _b;
42
- this.commandEl = (_a = this.el.closest('seki-command')) !== null && _a !== void 0 ? _a : undefined;
43
- (_b = this.commandEl) === null || _b === void 0 ? void 0 : _b.addEventListener('sekiValueChange', this.onCommandValueChange);
41
+ connectedCallback() {
42
+ this.commandConsumer.connect(this.el);
44
43
  }
45
44
  disconnectedCallback() {
46
- var _a;
47
- (_a = this.commandEl) === null || _a === void 0 ? void 0 : _a.removeEventListener('sekiValueChange', this.onCommandValueChange);
45
+ this.commandConsumer.disconnect();
48
46
  }
49
47
  render() {
50
48
  const shouldShow = this.forceMount || this._hasVisibleItems;
@@ -1,4 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
+ import { ContextConsumer } from "../../utils/context-bridge";
2
3
  /**
3
4
  * Command input - search field for filtering items
4
5
  *
@@ -12,6 +13,20 @@ export class SekiCommandInput {
12
13
  * Placeholder text
13
14
  */
14
15
  this.placeholder = 'Type a command or search...';
16
+ /** The parent command's search value, mirrored from its context. */
17
+ this._value = '';
18
+ // Follow the parent's value so `<seki-command value="...">` and
19
+ // `command.value = ...` show up in the field, not just typed input (#323).
20
+ this.commandConsumer = new ContextConsumer('seki-command', '_commandContext', context => {
21
+ var _a;
22
+ const value = (_a = context === null || context === void 0 ? void 0 : context.value) !== null && _a !== void 0 ? _a : '';
23
+ this._value = value;
24
+ // Keep the live field in step even when the re-render is skipped because
25
+ // _value did not change (e.g. the user typed it).
26
+ if (this.inputRef && this.inputRef.value !== value) {
27
+ this.inputRef.value = value;
28
+ }
29
+ });
15
30
  this.handleInput = (event) => {
16
31
  const target = event.target;
17
32
  this.sekiCommandInputChange.emit(target.value);
@@ -23,10 +38,11 @@ export class SekiCommandInput {
23
38
  }
24
39
  };
25
40
  }
26
- getContext() {
27
- const command = this.el.closest('seki-command');
28
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
- return command ? command._commandContext : null;
41
+ connectedCallback() {
42
+ this.commandConsumer.connect(this.el);
43
+ }
44
+ disconnectedCallback() {
45
+ this.commandConsumer.disconnect();
30
46
  }
31
47
  /**
32
48
  * Focus the input
@@ -43,10 +59,8 @@ export class SekiCommandInput {
43
59
  });
44
60
  }
45
61
  render() {
46
- var _a;
47
- const context = this.getContext();
48
- const value = (_a = context === null || context === void 0 ? void 0 : context.value) !== null && _a !== void 0 ? _a : '';
49
- return (h(Host, { key: '5652d7fbc44c5fc236e73991632631885273144f' }, h("div", { key: 'e1ae542f5aac09fb7d145d2b093c4a7f2905ee3a', part: "input-wrapper", class: "command-input-wrapper" }, h("svg", { key: '63c9c6f7e9285e08b497452caf7e323cac76d7d4', part: "icon", class: "command-input-icon", 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("circle", { key: '9d270ed1fe6610db1f2803d5b058fdd846b93cb3', cx: "11", cy: "11", r: "8" }), h("path", { key: '840ca57335907d4a358d97e2da3f3d8393ecaf9e', d: "m21 21-4.3-4.3" })), h("input", { key: 'e79f08cebbd4f59f18a813644b902fa5ac93d966', ref: (el) => (this.inputRef = el), part: "input", type: "text", class: "command-input", placeholder: this.placeholder, value: value, role: "combobox", "aria-expanded": "true", "aria-controls": "command-list", "aria-autocomplete": "list", onInput: this.handleInput, onKeyDown: this.handleKeyDown }))));
62
+ const value = this._value;
63
+ return (h(Host, { key: 'b12d460fd004bb51fffe1736e1cf508a38174bc2' }, h("div", { key: '6f7dfca8a574b79c28b747d8a256507cffbd03ac', part: "input-wrapper", class: "command-input-wrapper" }, h("svg", { key: 'a7a04d003ce6ff04abfe0db3ccddd1d15b1891dc', part: "icon", class: "command-input-icon", 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("circle", { key: 'df534fd0e6f6472ab8b3a09adae7cf15d3be6724', cx: "11", cy: "11", r: "8" }), h("path", { key: '60b0ef61ea3dd7f64446a13173ecd171afb02f4c', d: "m21 21-4.3-4.3" })), h("input", { key: '1aa9388b9aae712482eabbc0aa8b6832af954782', ref: (el) => (this.inputRef = el), part: "input", type: "text", class: "command-input", placeholder: this.placeholder, value: value, role: "combobox", "aria-expanded": "true", "aria-controls": "command-list", "aria-autocomplete": "list", onInput: this.handleInput, onKeyDown: this.handleKeyDown }))));
50
64
  }
51
65
  static get is() { return "seki-command-input"; }
52
66
  static get encapsulation() { return "shadow"; }
@@ -84,6 +98,11 @@ export class SekiCommandInput {
84
98
  }
85
99
  };
86
100
  }
101
+ static get states() {
102
+ return {
103
+ "_value": {}
104
+ };
105
+ }
87
106
  static get events() {
88
107
  return [{
89
108
  "method": "sekiCommandInputChange",
@@ -1,4 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
+ import { ContextConsumer } from "../../utils/context-bridge";
2
3
  /**
3
4
  * Command item - selectable option in the command list
4
5
  *
@@ -21,6 +22,16 @@ export class SekiCommandItem {
21
22
  * Whether this item matches the current filter
22
23
  */
23
24
  this._visible = true;
25
+ // Visibility and highlight come from the parent's context, so an item added
26
+ // after mount is filtered against the current search right away and
27
+ // filtering works in the lazy build, where seki-command cannot call this
28
+ // class's plain methods through the host element (#323).
29
+ this.commandConsumer = new ContextConsumer('seki-command', '_commandContext', context => {
30
+ if (!context)
31
+ return;
32
+ this._visible = context.isItemMatch(this.el);
33
+ this._highlighted = context.highlightedItem === this.el;
34
+ });
24
35
  this.handleClick = () => {
25
36
  if (this.disabled)
26
37
  return;
@@ -38,6 +49,12 @@ export class SekiCommandItem {
38
49
  };
39
50
  this.instanceId = `seki-command-item-${++SekiCommandItem.instanceCount}`;
40
51
  }
52
+ connectedCallback() {
53
+ this.commandConsumer.connect(this.el);
54
+ }
55
+ disconnectedCallback() {
56
+ this.commandConsumer.disconnect();
57
+ }
41
58
  /**
42
59
  * Get the searchable text for this item
43
60
  */
@@ -1,4 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
+ import { publishContext } from "../../utils/context-bridge";
2
3
  /**
3
4
  * Command root component - command palette for navigation
4
5
  *
@@ -24,31 +25,61 @@ export class SekiCommand {
24
25
  * Currently highlighted item index
25
26
  */
26
27
  this._highlightedIndex = 0;
28
+ /**
29
+ * Whether an item matches the current search. Computed from the item's host
30
+ * (text + `keywords`) rather than by calling methods on it: the item's plain
31
+ * class methods do not exist on the host element in the lazy-loaded build,
32
+ * which is why filtering never happened there before #323.
33
+ */
34
+ this.matchesItem = (item) => {
35
+ var _a, _b, _c, _d;
36
+ if (!this.filter)
37
+ return true;
38
+ const searchValue = this._value.toLowerCase().trim();
39
+ if (searchValue === '')
40
+ return true;
41
+ const keywords = (_b = (_a = item.keywords) !== null && _a !== void 0 ? _a : item.getAttribute('keywords')) !== null && _b !== void 0 ? _b : '';
42
+ const searchText = `${(_d = (_c = item.textContent) === null || _c === void 0 ? void 0 : _c.trim()) !== null && _d !== void 0 ? _d : ''} ${keywords}`.toLowerCase();
43
+ return searchText.includes(searchValue);
44
+ };
27
45
  }
28
46
  valueChanged(newValue) {
29
47
  this._value = newValue;
30
- this.applyFilter();
48
+ // resetHighlight() republishes the context, which refilters every part.
31
49
  this.resetHighlight();
32
50
  }
51
+ filterChanged() {
52
+ this.resetHighlight();
53
+ }
54
+ connectedCallback() {
55
+ // Filtering, the empty state and the highlight all derive from which
56
+ // items exist, so a later DOM change has to be republished to the parts.
57
+ if (typeof MutationObserver !== 'undefined') {
58
+ this.itemObserver = new MutationObserver(() => this.updateContext());
59
+ this.itemObserver.observe(this.el, { childList: true, subtree: true, characterData: true });
60
+ }
61
+ }
62
+ disconnectedCallback() {
63
+ var _a;
64
+ (_a = this.itemObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
65
+ this.itemObserver = undefined;
66
+ }
33
67
  componentWillLoad() {
34
68
  this._value = this.value;
69
+ // Publish before the first render so parts see `value` declared in HTML
70
+ // (#323).
71
+ this.updateContext();
35
72
  }
36
73
  componentDidLoad() {
37
- // Set initial context
38
- this.updateContext();
39
- // Apply initial filter
40
- this.applyFilter();
41
74
  // Set initial highlight
42
75
  requestAnimationFrame(() => this.resetHighlight());
43
76
  }
44
77
  handleInputChange(event) {
45
78
  event.stopPropagation();
46
79
  this._value = event.detail;
80
+ // @Watch('value') refilters, resets the highlight and republishes.
47
81
  this.value = event.detail;
48
82
  this.sekiValueChange.emit(event.detail);
49
- this.applyFilter();
50
- this.resetHighlight();
51
- this.updateContext();
52
83
  }
53
84
  handleItemSelect(event) {
54
85
  event.stopPropagation();
@@ -109,37 +140,12 @@ export class SekiCommand {
109
140
  getAllItems() {
110
141
  return Array.from(this.el.querySelectorAll('seki-command-item'));
111
142
  }
112
- getVisibleItems() {
113
- return this.getAllItems().filter((item) => {
114
- var _a, _b, _c, _d;
115
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
116
- const isVisible = (_c = (_b = (_a = item).isVisible) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : true;
117
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
118
- const isDisabled = (_d = item.disabled) !== null && _d !== void 0 ? _d : false;
119
- return isVisible && !isDisabled;
120
- });
143
+ isItemDisabled(item) {
144
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
145
+ return Boolean(item.disabled);
121
146
  }
122
- applyFilter() {
123
- if (!this.filter)
124
- return;
125
- const searchValue = this._value.toLowerCase().trim();
126
- const items = this.getAllItems();
127
- items.forEach((item) => {
128
- var _a, _b, _c, _d, _e, _f, _g;
129
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
130
- const searchText = (_e = (_c = (_b = (_a = item).getSearchText) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : (_d = item.textContent) === null || _d === void 0 ? void 0 : _d.toLowerCase()) !== null && _e !== void 0 ? _e : '';
131
- const matches = searchValue === '' || searchText.includes(searchValue);
132
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
133
- (_g = (_f = item).setVisible) === null || _g === void 0 ? void 0 : _g.call(_f, matches);
134
- });
135
- // Update groups visibility
136
- const groups = Array.from(this.el.querySelectorAll('seki-command-group'));
137
- groups.forEach((group) => {
138
- var _a, _b;
139
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
140
- (_b = (_a = group).updateVisibility) === null || _b === void 0 ? void 0 : _b.call(_a);
141
- });
142
- this.updateContext();
147
+ getVisibleItems() {
148
+ return this.getAllItems().filter(item => this.matchesItem(item) && !this.isItemDisabled(item));
143
149
  }
144
150
  resetHighlight() {
145
151
  this._highlightedIndex = 0;
@@ -147,20 +153,10 @@ export class SekiCommand {
147
153
  this.updateHighlight(items);
148
154
  }
149
155
  updateHighlight(items) {
150
- var _a, _b, _c;
151
- // Clear all highlights
152
- this.getAllItems().forEach((item) => {
153
- var _a, _b;
154
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
155
- (_b = (_a = item).setHighlighted) === null || _b === void 0 ? void 0 : _b.call(_a, false);
156
- });
157
- // Set new highlight
156
+ var _a, _b;
157
+ // Items render their highlight from context.highlightedItem.
158
158
  if (items.length > 0 && this._highlightedIndex >= 0 && this._highlightedIndex < items.length) {
159
- const item = items[this._highlightedIndex];
160
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
161
- (_b = (_a = item).setHighlighted) === null || _b === void 0 ? void 0 : _b.call(_a, true);
162
- // Scroll into view
163
- (_c = item.scrollIntoView) === null || _c === void 0 ? void 0 : _c.call(item, { block: 'nearest' });
159
+ (_b = (_a = items[this._highlightedIndex]).scrollIntoView) === null || _b === void 0 ? void 0 : _b.call(_a, { block: 'nearest' });
164
160
  }
165
161
  this.updateContext();
166
162
  }
@@ -174,7 +170,10 @@ export class SekiCommand {
174
170
  value: this._value,
175
171
  highlightedIndex: this._highlightedIndex,
176
172
  highlightedId,
177
- isEmpty: visibleItems.length === 0,
173
+ highlightedItem: highlightedItem !== null && highlightedItem !== void 0 ? highlightedItem : null,
174
+ // Disabled items still render, so they count as results.
175
+ isEmpty: !this.getAllItems().some(this.matchesItem),
176
+ isItemMatch: this.matchesItem,
178
177
  filter: (text) => {
179
178
  const searchValue = this._value.toLowerCase().trim();
180
179
  return searchValue === '' || text.toLowerCase().includes(searchValue);
@@ -182,11 +181,10 @@ export class SekiCommand {
182
181
  };
183
182
  }
184
183
  updateContext() {
185
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
186
- this.el._commandContext = this.getContext();
184
+ publishContext(this.el, '_commandContext', this.getContext(), this.commandContextChange);
187
185
  }
188
186
  render() {
189
- return (h(Host, { key: 'c9623610f679b3bda03500c54cd269a6830afd77' }, h("div", { key: '4ff6ad934f5e28020389521c381f2d7af1b40153', part: "command", class: "command" }, h("slot", { key: '8e318bd7bc0a213eb5b1564d26711e4a63153f5b' }))));
187
+ return (h(Host, { key: '7f80dd8be39e51feac86933c35ddf845b99b76ef' }, h("div", { key: 'cbc2a0040641591e9036e863ec45d9b11c9c2a42', part: "command", class: "command" }, h("slot", { key: 'abf6c4cdb4ee49b69997de1618c9ce96df753633' }))));
190
188
  }
191
189
  static get is() { return "seki-command"; }
192
190
  static get encapsulation() { return "shadow"; }
@@ -281,6 +279,21 @@ export class SekiCommand {
281
279
  "resolved": "string",
282
280
  "references": {}
283
281
  }
282
+ }, {
283
+ "method": "commandContextChange",
284
+ "name": "sekiContextChange",
285
+ "bubbles": true,
286
+ "cancelable": true,
287
+ "composed": true,
288
+ "docs": {
289
+ "tags": [],
290
+ "text": "Internal: notifies command parts (input, items, groups, empty state) that\n`_commandContext` changed. Not part of the public API; listen to\n`sekiValueChange` instead."
291
+ },
292
+ "complexType": {
293
+ "original": "void",
294
+ "resolved": "void",
295
+ "references": {}
296
+ }
284
297
  }];
285
298
  }
286
299
  static get elementRef() { return "el"; }
@@ -288,6 +301,9 @@ export class SekiCommand {
288
301
  return [{
289
302
  "propName": "value",
290
303
  "methodName": "valueChanged"
304
+ }, {
305
+ "propName": "filter",
306
+ "methodName": "filterChanged"
291
307
  }];
292
308
  }
293
309
  static get listeners() {