@helixui/library 3.3.1-next.118 → 3.4.0

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 (249) hide show
  1. package/custom-elements.json +422 -322
  2. package/dist/components/hx-alert/hx-alert.d.ts +11 -0
  3. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  4. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  5. package/dist/components/hx-alert/index.js +1 -1
  6. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  7. package/dist/components/hx-badge/index.js +1 -1
  8. package/dist/components/hx-banner/hx-banner.d.ts +9 -1
  9. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  10. package/dist/components/hx-banner/index.js +1 -1
  11. package/dist/components/hx-button/hx-button.d.ts +11 -1
  12. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  13. package/dist/components/hx-button/index.js +1 -1
  14. package/dist/components/hx-button-group/hx-button-group.d.ts +13 -0
  15. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  16. package/dist/components/hx-button-group/index.js +1 -1
  17. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  18. package/dist/components/hx-checkbox/index.js +1 -1
  19. package/dist/components/hx-checkbox-group/index.js +1 -1
  20. package/dist/components/hx-color-picker/index.js +1 -1
  21. package/dist/components/hx-combobox/index.js +1 -1
  22. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  23. package/dist/components/hx-data-table/index.js +1 -1
  24. package/dist/components/hx-date-picker/index.js +1 -1
  25. package/dist/components/hx-dialog/index.js +1 -1
  26. package/dist/components/hx-drawer/hx-drawer.d.ts +201 -0
  27. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  28. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  29. package/dist/components/hx-drawer/index.js +1 -1
  30. package/dist/components/hx-dropdown/hx-dropdown.d.ts +96 -8
  31. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  32. package/dist/components/hx-dropdown/index.js +1 -1
  33. package/dist/components/hx-icon-button/hx-icon-button.d.ts +16 -3
  34. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  35. package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
  36. package/dist/components/hx-icon-button/index.js +1 -1
  37. package/dist/components/hx-link/hx-link.d.ts +10 -1
  38. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  39. package/dist/components/hx-link/index.js +1 -1
  40. package/dist/components/hx-list/hx-list-item.d.ts +27 -1
  41. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
  42. package/dist/components/hx-list/hx-list.d.ts +28 -0
  43. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  44. package/dist/components/hx-list/index.js +1 -1
  45. package/dist/components/hx-menu/hx-menu-divider.d.ts +10 -0
  46. package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
  47. package/dist/components/hx-menu/hx-menu-item.d.ts +99 -2
  48. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  49. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
  50. package/dist/components/hx-menu/hx-menu.d.ts +117 -2
  51. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  52. package/dist/components/hx-menu/index.js +1 -1
  53. package/dist/components/hx-meter/hx-meter.d.ts +39 -0
  54. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  55. package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
  56. package/dist/components/hx-meter/index.js +1 -1
  57. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +132 -1
  58. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  59. package/dist/components/hx-overflow-menu/index.js +1 -1
  60. package/dist/components/hx-phi-field/hx-phi-field.d.ts +0 -1
  61. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
  62. package/dist/components/hx-popover/index.js +1 -1
  63. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +33 -0
  64. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  65. package/dist/components/hx-progress-bar/index.js +1 -1
  66. package/dist/components/hx-radio-group/index.js +1 -1
  67. package/dist/components/hx-select/hx-select.d.ts +1 -0
  68. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  69. package/dist/components/hx-select/index.js +1 -1
  70. package/dist/components/hx-spinner/hx-spinner.d.ts +14 -0
  71. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  72. package/dist/components/hx-spinner/index.js +1 -1
  73. package/dist/components/hx-split-button/hx-split-button.d.ts +94 -7
  74. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  75. package/dist/components/hx-split-button/index.js +1 -1
  76. package/dist/components/hx-stat/hx-stat.d.ts +28 -0
  77. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  78. package/dist/components/hx-stat/index.js +1 -1
  79. package/dist/components/hx-switch/index.js +1 -1
  80. package/dist/components/hx-table/hx-td.d.ts +30 -3
  81. package/dist/components/hx-table/hx-td.d.ts.map +1 -1
  82. package/dist/components/hx-table/hx-th.d.ts +39 -3
  83. package/dist/components/hx-table/hx-th.d.ts.map +1 -1
  84. package/dist/components/hx-table/hx-tr.d.ts +26 -0
  85. package/dist/components/hx-table/hx-tr.d.ts.map +1 -1
  86. package/dist/components/hx-table/index.js +1 -1
  87. package/dist/components/hx-tabs/hx-tab-panel.d.ts +34 -0
  88. package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -1
  89. package/dist/components/hx-tabs/hx-tab.d.ts +45 -2
  90. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  91. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  92. package/dist/components/hx-tabs/hx-tabs.d.ts +32 -2
  93. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  94. package/dist/components/hx-tabs/index.js +1 -1
  95. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  96. package/dist/components/hx-tag/index.js +1 -1
  97. package/dist/components/hx-theme/hx-theme.d.ts +10 -5
  98. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  99. package/dist/components/hx-time-picker/hx-time-picker.d.ts +210 -2
  100. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  101. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
  102. package/dist/components/hx-time-picker/index.js +1 -1
  103. package/dist/components/hx-toast/hx-toast-stack.d.ts +14 -0
  104. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  105. package/dist/components/hx-toast/hx-toast.d.ts +22 -3
  106. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  107. package/dist/components/hx-toast/index.js +1 -1
  108. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
  109. package/dist/components/hx-toggle-button/index.js +1 -1
  110. package/dist/components/hx-tree-view/hx-tree-item.d.ts +117 -12
  111. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  112. package/dist/components/hx-tree-view/hx-tree-view.d.ts +87 -7
  113. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  114. package/dist/components/hx-tree-view/index.js +1 -1
  115. package/dist/css/helix-all.css +123 -0
  116. package/dist/css/helix-core.css +81 -0
  117. package/dist/css/helix-feedback.css +14 -0
  118. package/dist/css/helix-forms.css +11 -0
  119. package/dist/css/helix-overlay.css +17 -0
  120. package/dist/css/hx-alert.css +9 -0
  121. package/dist/css/hx-badge.css +28 -0
  122. package/dist/css/hx-drawer.css +17 -0
  123. package/dist/css/hx-icon-button.css +30 -0
  124. package/dist/css/hx-meter.css +5 -0
  125. package/dist/css/hx-tag.css +23 -0
  126. package/dist/css/hx-time-picker.css +11 -0
  127. package/dist/css/index.css +1 -1
  128. package/dist/css/manifest.json +3 -1
  129. package/dist/index.js +35 -35
  130. package/dist/shared/aria-idref-CxvyzfQS.js +126 -0
  131. package/dist/shared/aria-idref-CxvyzfQS.js.map +1 -0
  132. package/dist/shared/{hx-alert-CLn7CstP.js → hx-alert-Bto8-TIi.js} +55 -37
  133. package/dist/shared/hx-alert-Bto8-TIi.js.map +1 -0
  134. package/dist/shared/{hx-badge-CQXgOXJM.js → hx-badge-JlFtAdxS.js} +37 -9
  135. package/dist/shared/hx-badge-JlFtAdxS.js.map +1 -0
  136. package/dist/shared/{hx-banner-D3DzpfcP.js → hx-banner-fpRnciIO.js} +13 -5
  137. package/dist/shared/hx-banner-fpRnciIO.js.map +1 -0
  138. package/dist/shared/{hx-button-DPY6SPVT.js → hx-button-BOwAEcF1.js} +108 -85
  139. package/dist/shared/{hx-button-DPY6SPVT.js.map → hx-button-BOwAEcF1.js.map} +1 -1
  140. package/dist/shared/{hx-button-group-BI-QBqmO.js → hx-button-group-DcHP5MBv.js} +15 -16
  141. package/dist/shared/{hx-button-group-BI-QBqmO.js.map → hx-button-group-DcHP5MBv.js.map} +1 -1
  142. package/dist/shared/{hx-checkbox-BdgoUeWi.js → hx-checkbox-C48KYKFq.js} +87 -87
  143. package/dist/shared/hx-checkbox-C48KYKFq.js.map +1 -0
  144. package/dist/shared/{hx-checkbox-group-LWezHrvS.js → hx-checkbox-group-BJIAX3zU.js} +2 -2
  145. package/dist/shared/{hx-checkbox-group-LWezHrvS.js.map → hx-checkbox-group-BJIAX3zU.js.map} +1 -1
  146. package/dist/shared/{hx-color-picker-DVhZl88b.js → hx-color-picker-Dk4cBwYQ.js} +2 -2
  147. package/dist/shared/{hx-color-picker-DVhZl88b.js.map → hx-color-picker-Dk4cBwYQ.js.map} +1 -1
  148. package/dist/shared/{hx-combobox-DvlezcDV.js → hx-combobox-BTLO9qiK.js} +2 -2
  149. package/dist/shared/{hx-combobox-DvlezcDV.js.map → hx-combobox-BTLO9qiK.js.map} +1 -1
  150. package/dist/shared/{hx-data-table-CLqVqdxr.js → hx-data-table-Ct3gQ6ya.js} +3 -2
  151. package/dist/shared/{hx-data-table-CLqVqdxr.js.map → hx-data-table-Ct3gQ6ya.js.map} +1 -1
  152. package/dist/shared/{hx-date-picker-N-0aG5XL.js → hx-date-picker-CiR7FVnR.js} +2 -2
  153. package/dist/shared/{hx-date-picker-N-0aG5XL.js.map → hx-date-picker-CiR7FVnR.js.map} +1 -1
  154. package/dist/shared/{hx-dialog-DzB7VytW.js → hx-dialog-AOZpHSuF.js} +2 -2
  155. package/dist/shared/{hx-dialog-DzB7VytW.js.map → hx-dialog-AOZpHSuF.js.map} +1 -1
  156. package/dist/shared/{hx-drawer-Y1Ui2IWJ.js → hx-drawer-DH6CdAN1.js} +300 -98
  157. package/dist/shared/hx-drawer-DH6CdAN1.js.map +1 -0
  158. package/dist/shared/hx-dropdown-DiLd40Lm.js +401 -0
  159. package/dist/shared/hx-dropdown-DiLd40Lm.js.map +1 -0
  160. package/dist/shared/{hx-icon-button-CGNdQSFM.js → hx-icon-button-a6OpeQz5.js} +149 -68
  161. package/dist/shared/hx-icon-button-a6OpeQz5.js.map +1 -0
  162. package/dist/shared/{hx-link-C-O6vq0Q.js → hx-link-CMnZRUtQ.js} +55 -43
  163. package/dist/shared/hx-link-CMnZRUtQ.js.map +1 -0
  164. package/dist/shared/{hx-list-MyEhh8c7.js → hx-list-De66EtAP.js} +163 -107
  165. package/dist/shared/hx-list-De66EtAP.js.map +1 -0
  166. package/dist/shared/hx-menu-divider-BjiRIWKq.js +797 -0
  167. package/dist/shared/hx-menu-divider-BjiRIWKq.js.map +1 -0
  168. package/dist/shared/{hx-meter-BPscsw5t.js → hx-meter-BJdh6nrF.js} +105 -64
  169. package/dist/shared/hx-meter-BJdh6nrF.js.map +1 -0
  170. package/dist/shared/hx-overflow-menu-BQ4fiMYu.js +492 -0
  171. package/dist/shared/hx-overflow-menu-BQ4fiMYu.js.map +1 -0
  172. package/dist/shared/hx-phi-field-C19oxlrr.js.map +1 -1
  173. package/dist/shared/{hx-popover-CHxWY_cd.js → hx-popover-B9W8-tC0.js} +2 -2
  174. package/dist/shared/{hx-popover-CHxWY_cd.js.map → hx-popover-B9W8-tC0.js.map} +1 -1
  175. package/dist/shared/hx-progress-bar-C8nDMdYa.js +290 -0
  176. package/dist/shared/hx-progress-bar-C8nDMdYa.js.map +1 -0
  177. package/dist/shared/{hx-radio-CeGzARNk.js → hx-radio-Z1lV1zTO.js} +2 -2
  178. package/dist/shared/{hx-radio-CeGzARNk.js.map → hx-radio-Z1lV1zTO.js.map} +1 -1
  179. package/dist/shared/{hx-select-DrcS-YRJ.js → hx-select-D18CnJ0e.js} +2 -2
  180. package/dist/shared/hx-select-D18CnJ0e.js.map +1 -0
  181. package/dist/shared/{hx-spinner-DL5AYr16.js → hx-spinner-BB0h2hKZ.js} +62 -34
  182. package/dist/shared/hx-spinner-BB0h2hKZ.js.map +1 -0
  183. package/dist/shared/{hx-split-button-Djnc5Aeg.js → hx-split-button-BoABoEm5.js} +153 -82
  184. package/dist/shared/hx-split-button-BoABoEm5.js.map +1 -0
  185. package/dist/shared/{hx-stat-WOcNV1Ry.js → hx-stat-Dtf9lz-O.js} +77 -47
  186. package/dist/shared/hx-stat-Dtf9lz-O.js.map +1 -0
  187. package/dist/shared/{hx-switch-BX_8uNUs.js → hx-switch-B6kr-EwE.js} +2 -2
  188. package/dist/shared/{hx-switch-BX_8uNUs.js.map → hx-switch-B6kr-EwE.js.map} +1 -1
  189. package/dist/shared/{hx-tab-panel-DspCrKqo.js → hx-tab-panel-BQtBXKLD.js} +255 -131
  190. package/dist/shared/hx-tab-panel-BQtBXKLD.js.map +1 -0
  191. package/dist/shared/{hx-tag-CNSmdyaK.js → hx-tag-C5aCUpVi.js} +63 -40
  192. package/dist/shared/hx-tag-C5aCUpVi.js.map +1 -0
  193. package/dist/shared/{hx-td-DnnEMIuA.js → hx-td-BGkFOJEK.js} +267 -123
  194. package/dist/shared/hx-td-BGkFOJEK.js.map +1 -0
  195. package/dist/shared/hx-theme-BsefFWTO.js.map +1 -1
  196. package/dist/shared/hx-time-picker-iwCD7rzW.js +1038 -0
  197. package/dist/shared/hx-time-picker-iwCD7rzW.js.map +1 -0
  198. package/dist/shared/{hx-toggle-button-Dcz9IlUm.js → hx-toggle-button-BQ81EDkl.js} +2 -2
  199. package/dist/shared/{hx-toggle-button-Dcz9IlUm.js.map → hx-toggle-button-BQ81EDkl.js.map} +1 -1
  200. package/dist/shared/hx-tree-item-CHrUhuZL.js +925 -0
  201. package/dist/shared/hx-tree-item-CHrUhuZL.js.map +1 -0
  202. package/dist/shared/menu-roving-DmMnzJhn.js +14 -0
  203. package/dist/shared/menu-roving-DmMnzJhn.js.map +1 -0
  204. package/dist/shared/menu-tree-BNM0SYYq.js +42 -0
  205. package/dist/shared/menu-tree-BNM0SYYq.js.map +1 -0
  206. package/dist/shared/{toast-factory-YSznocIV.js → toast-factory-CL2BzdSB.js} +128 -77
  207. package/dist/shared/toast-factory-CL2BzdSB.js.map +1 -0
  208. package/dist/utils/aria-idref.d.ts.map +1 -1
  209. package/dist/utils/menu-label.d.ts +18 -0
  210. package/dist/utils/menu-label.d.ts.map +1 -0
  211. package/dist/utils/menu-roving.d.ts +28 -0
  212. package/dist/utils/menu-roving.d.ts.map +1 -0
  213. package/dist/utils/menu-tree.d.ts +41 -0
  214. package/dist/utils/menu-tree.d.ts.map +1 -0
  215. package/dist/utils/tree-walk.d.ts +53 -0
  216. package/dist/utils/tree-walk.d.ts.map +1 -0
  217. package/figma-inventory.json +69 -20
  218. package/package.json +2 -2
  219. package/dist/shared/aria-idref-Q0yiSR3p.js +0 -104
  220. package/dist/shared/aria-idref-Q0yiSR3p.js.map +0 -1
  221. package/dist/shared/hx-alert-CLn7CstP.js.map +0 -1
  222. package/dist/shared/hx-badge-CQXgOXJM.js.map +0 -1
  223. package/dist/shared/hx-banner-D3DzpfcP.js.map +0 -1
  224. package/dist/shared/hx-checkbox-BdgoUeWi.js.map +0 -1
  225. package/dist/shared/hx-drawer-Y1Ui2IWJ.js.map +0 -1
  226. package/dist/shared/hx-dropdown-DJWlF94E.js +0 -316
  227. package/dist/shared/hx-dropdown-DJWlF94E.js.map +0 -1
  228. package/dist/shared/hx-icon-button-CGNdQSFM.js.map +0 -1
  229. package/dist/shared/hx-link-C-O6vq0Q.js.map +0 -1
  230. package/dist/shared/hx-list-MyEhh8c7.js.map +0 -1
  231. package/dist/shared/hx-menu-divider-C2omnPtj.js +0 -558
  232. package/dist/shared/hx-menu-divider-C2omnPtj.js.map +0 -1
  233. package/dist/shared/hx-meter-BPscsw5t.js.map +0 -1
  234. package/dist/shared/hx-overflow-menu-DCLsdIBy.js +0 -374
  235. package/dist/shared/hx-overflow-menu-DCLsdIBy.js.map +0 -1
  236. package/dist/shared/hx-progress-bar-Bn3JEPUf.js +0 -258
  237. package/dist/shared/hx-progress-bar-Bn3JEPUf.js.map +0 -1
  238. package/dist/shared/hx-select-DrcS-YRJ.js.map +0 -1
  239. package/dist/shared/hx-spinner-DL5AYr16.js.map +0 -1
  240. package/dist/shared/hx-split-button-Djnc5Aeg.js.map +0 -1
  241. package/dist/shared/hx-stat-WOcNV1Ry.js.map +0 -1
  242. package/dist/shared/hx-tab-panel-DspCrKqo.js.map +0 -1
  243. package/dist/shared/hx-tag-CNSmdyaK.js.map +0 -1
  244. package/dist/shared/hx-td-DnnEMIuA.js.map +0 -1
  245. package/dist/shared/hx-time-picker-BoEIZwzv.js +0 -688
  246. package/dist/shared/hx-time-picker-BoEIZwzv.js.map +0 -1
  247. package/dist/shared/hx-tree-item-C2CiWuDE.js +0 -703
  248. package/dist/shared/hx-tree-item-C2CiWuDE.js.map +0 -1
  249. package/dist/shared/toast-factory-YSznocIV.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { H as b, a as l, b as s } from "../../shared/hx-tab-panel-DspCrKqo.js";
1
+ import { H as b, a as l, b as s } from "../../shared/hx-tab-panel-BQtBXKLD.js";
2
2
  export {
3
3
  b as HelixTab,
4
4
  l as HelixTabPanel,
@@ -1 +1 @@
1
- {"version":3,"file":"hx-tag.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tag/hx-tag.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,yBA8J1B,CAAC"}
1
+ {"version":3,"file":"hx-tag.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tag/hx-tag.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,yBAqL1B,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as o } from "../../shared/hx-tag-CNSmdyaK.js";
1
+ import { H as o } from "../../shared/hx-tag-C5aCUpVi.js";
2
2
  export {
3
3
  o as HelixTag
4
4
  };
@@ -50,8 +50,9 @@ export type ThemeName = 'light' | 'dark' | 'high-contrast' | 'auto';
50
50
  *
51
51
  * @csspart base - The inner slot wrapper element. `display: contents` — no layout effect.
52
52
  *
53
- * @cssprop [--hx-*] - All design tokens for the selected theme are injected
54
- * as CSS custom properties on the host element.
53
+ * Theme-injected CSS custom properties (semantic surface full token catalog
54
+ * lives in `@helixui/tokens`; the wildcard `--hx-*` was previously documented
55
+ * here but the CEM cssProperties[] surface requires explicit names).
55
56
  *
56
57
  * @example Drupal Twig — wrap a region with a dark theme:
57
58
  * ```twig
@@ -76,9 +77,13 @@ export type ThemeName = 'light' | 'dark' | 'high-contrast' | 'auto';
76
77
  * <!-- Clinical dashboard content -->
77
78
  * </hx-theme>
78
79
  * ```
79
- * @cssprop [--hx-color-text-primary] - Color.
80
- * @cssprop [--hx-space-4] - Spacing token.
81
- * @cssprop [--hx-duration-fast] - Animation duration.
80
+ * @cssprop [--hx-color-text-primary] - Primary text color (theme-injected).
81
+ * @cssprop [--hx-color-surface-base] - Base surface background (theme-injected).
82
+ * @cssprop [--hx-color-border-default] - Default border color (theme-injected).
83
+ * @cssprop [--hx-space-4] - Spacing token (theme-injected).
84
+ * @cssprop [--hx-duration-fast] - Animation duration (theme-injected).
85
+ * @cssprop [--hx-radius-md] - Medium border-radius (theme-injected).
86
+ * @cssprop [--hx-font-family-body] - Body font family (theme-injected).
82
87
  */
83
88
  export declare class HelixTheme extends HelixElement {
84
89
  static styles: import('lit').CSSResult[];
@@ -1 +1 @@
1
- {"version":3,"file":"hx-theme.d.ts","sourceRoot":"","sources":["../../../src/components/hx-theme/hx-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUnD,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAC;AA+HpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,qBACa,UAAW,SAAQ,YAAY;IAC1C,OAAgB,MAAM,4BAAsB;IAE5C;;;;;;;OAOG;IAEH,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAW;IAK7D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IAEH,KAAK,SAAM;IAEX;;;;;;;;;;;OAWG;IAEH,MAAM,EAAE,UAAU,CAAU;IAE5B;;;;;;OAMG;IAEH,OAAO,EAAE,WAAW,CAAiB;IAErC,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAA+B;IAClD,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAA6B;IAClD,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAA8B;IACjD,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAA8B;IACnD,4DAA4D;IAC5D,OAAO,CAAC,YAAY,CAA+B;IACnD,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAA6B;IACnD;;;4EAGwE;IACxE,OAAO,CAAC,qBAAqB,CAAuB;IAE3C,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAWjD,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA2B5C,oBAAoB,IAAI,IAAI;IAMrC;;;;OAIG;IACH,IAAI,cAAc,IAAI,OAAO,GAAG,MAAM,GAAG,eAAe,CAMvD;IAED;;;;OAIG;IACH,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CASxC;IAED,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAcvB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAUzB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAQzB,+EAA+E;IAC/E,OAAO,CAAC,kBAAkB;IAS1B,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAQ1B,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB;IAO5B,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IAgE5B,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAcZ,MAAM;CAQhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,UAAU,CAAC;KACxB;CACF;AAED,6FAA6F;AAC7F,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC"}
1
+ {"version":3,"file":"hx-theme.d.ts","sourceRoot":"","sources":["../../../src/components/hx-theme/hx-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUnD,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAC;AA+HpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,qBACa,UAAW,SAAQ,YAAY;IAC1C,OAAgB,MAAM,4BAAsB;IAE5C;;;;;;;OAOG;IAEH,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAW;IAK7D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IAEH,KAAK,SAAM;IAEX;;;;;;;;;;;OAWG;IAEH,MAAM,EAAE,UAAU,CAAU;IAE5B;;;;;;OAMG;IAEH,OAAO,EAAE,WAAW,CAAiB;IAErC,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAA+B;IAClD,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAA6B;IAClD,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAA8B;IACjD,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAA8B;IACnD,4DAA4D;IAC5D,OAAO,CAAC,YAAY,CAA+B;IACnD,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAA6B;IACnD;;;4EAGwE;IACxE,OAAO,CAAC,qBAAqB,CAAuB;IAE3C,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAWjD,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA2B5C,oBAAoB,IAAI,IAAI;IAMrC;;;;OAIG;IACH,IAAI,cAAc,IAAI,OAAO,GAAG,MAAM,GAAG,eAAe,CAMvD;IAED;;;;OAIG;IACH,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CASxC;IAED,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAcvB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAUzB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAQzB,+EAA+E;IAC/E,OAAO,CAAC,kBAAkB;IAS1B,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAQ1B,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB;IAO5B,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IAgE5B,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAcZ,MAAM;CAQhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,UAAU,CAAC;KACxB;CACF;AAED,6FAA6F;AAC7F,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC"}
@@ -85,6 +85,14 @@ export declare class HelixTimePicker extends HelixTimePicker_base {
85
85
  * @internal
86
86
  */
87
87
  static formAssociated: boolean;
88
+ /**
89
+ * Test seam: when set to `true` or `false`, overrides the platform
90
+ * `supportsIdrefElementReferences` probe before `connectedCallback` seeds
91
+ * `_supportsIdrefRefs`. Production code MUST NOT touch this field. It is a
92
+ * `static` so the test stub cleanup is global and obvious.
93
+ * @internal
94
+ */
95
+ static __testSupportsIdrefRefsOverride: boolean | null;
88
96
  /**
89
97
  * The name submitted with the form. Value is always HH:MM (24-hour).
90
98
  * @attr name
@@ -135,6 +143,13 @@ export declare class HelixTimePicker extends HelixTimePicker_base {
135
143
  * @attr format
136
144
  */
137
145
  format: '12h' | '24h';
146
+ /**
147
+ * Accessible name for screen readers, if different from the visible label.
148
+ * Uses `accessible-label` attribute instead of `aria-label` to avoid
149
+ * ARIAMixin shadowing on the host element. Highest-precedence naming source.
150
+ * @attr accessible-label
151
+ */
152
+ accessibleLabel: string | null;
138
153
  /**
139
154
  * Whether the dropdown listbox is currently open.
140
155
  * @internal
@@ -166,10 +181,36 @@ export declare class HelixTimePicker extends HelixTimePicker_base {
166
181
  */
167
182
  private _hasHelpSlot;
168
183
  /**
169
- * The ID of the slotted label element, used for aria-labelledby cross-root linking.
184
+ * Source of the accessible name. Discriminated union avoids string sentinels.
170
185
  * @internal
171
186
  */
172
- private _slottedLabelId;
187
+ private _labelSource;
188
+ /**
189
+ * Flattened, trimmed text content from all label-slot nodes — used to drive
190
+ * the inner input's `aria-label` on the no-IDL-ref fallback path and to
191
+ * gate `_hasLabelSlot` per AccName 1.2.
192
+ * @internal
193
+ */
194
+ private _labelSlotText;
195
+ /**
196
+ * Whether the platform supports IDL element references on `ElementInternals`.
197
+ * Drives the cross-shadow naming strategy for the inner `<input>`.
198
+ * @internal
199
+ */
200
+ private _supportsIdrefRefs;
201
+ /**
202
+ * Cached invalidity flag derived from `internals.validity.valid`, the
203
+ * `error` property, and the slotted error content. Drives `aria-invalid`
204
+ * on the inner input.
205
+ * @internal
206
+ */
207
+ private _invalid;
208
+ /**
209
+ * Deferred copy of `error` driven through reactive state so the persistent
210
+ * live region can re-announce on transitions without direct DOM mutation.
211
+ * @internal
212
+ */
213
+ private _announcedError;
173
214
  private readonly _id;
174
215
  /**
175
216
  * Unique ID for the listbox element, referenced by `aria-controls` on the combobox input.
@@ -186,6 +227,22 @@ export declare class HelixTimePicker extends HelixTimePicker_base {
186
227
  * @internal
187
228
  */
188
229
  private readonly _helpId;
230
+ /**
231
+ * Unique ID for the internal `<label>` element, referenced by inner input
232
+ * `aria-labelledby` when the `label` property names the field.
233
+ * @internal
234
+ */
235
+ private readonly _labelId;
236
+ /**
237
+ * Id of the synthesized in-shadow span that mirrors the consumer-resolved
238
+ * description text. Appended to the inner input's `aria-describedby` so AT
239
+ * picks the consumer description up through the standard described-by
240
+ * channel — `aria-description` is intentionally NOT written, because the
241
+ * W3C AccName algorithm ignores `aria-description` whenever
242
+ * `aria-describedby` is also present.
243
+ * @internal
244
+ */
245
+ private readonly _consumerDescId;
189
246
  /**
190
247
  * Reference to the text input element inside the shadow DOM.
191
248
  * @internal
@@ -211,6 +268,64 @@ export declare class HelixTimePicker extends HelixTimePicker_base {
211
268
  * @internal
212
269
  */
213
270
  private get _slots();
271
+ /** Handle for the shared IDREF observer. @internal */
272
+ private _ariaMirror;
273
+ /**
274
+ * Watches assigned `<slot name="help-text">` nodes for in-place text
275
+ * mutations so help-text effective state stays in sync with consumer
276
+ * `textContent` writes that don't trigger a `slotchange` event.
277
+ * @internal
278
+ */
279
+ private _helpSlotTextObserver;
280
+ /**
281
+ * Watches assigned `<slot name="error">` nodes for in-place text mutations.
282
+ * @internal
283
+ */
284
+ private _errorSlotTextObserver;
285
+ /**
286
+ * Dedicated host observer scoped to `aria-describedby` with
287
+ * `attributeOldValue: true`. Governed by the disconnect-during-strip
288
+ * discipline.
289
+ * @internal
290
+ */
291
+ private _hostDescribedByObserver;
292
+ /**
293
+ * Most recently observed *consumer-supplied* `aria-labelledby` baseline.
294
+ * Refreshed on every sync. Modern + legacy paths leave the host attribute
295
+ * in place, so the live attribute IS the cache.
296
+ * @internal
297
+ */
298
+ private _consumerLabelledBy;
299
+ /** @internal — see `_consumerLabelledBy`. */
300
+ private _consumerDescribedBy;
301
+ /**
302
+ * Direct references to ALL labellable elements projected into
303
+ * `<slot name="label">`. Aggregating every assigned element preserves
304
+ * composed labels such as
305
+ * `<svg slot="label" aria-hidden="true">…</svg><span slot="label">Time</span>`.
306
+ * The modern path passes the visible subset to
307
+ * `internals.ariaLabelledByElements`; the fallback path text-flattens every
308
+ * non-hidden node into `_labelSlotText` per AccName 1.2.
309
+ * @internal
310
+ */
311
+ private _slottedLabelEls;
312
+ /**
313
+ * Watches in-place text mutations on the assigned slotted label nodes. The
314
+ * `slotchange` event covers add/remove/replace; this MO covers
315
+ * `node.textContent = '…'` updates on an unchanged node (consumer i18n
316
+ * re-renders) and `aria-hidden` / `hidden` toggles per AccName 1.2 §4.3.10.
317
+ * @internal
318
+ */
319
+ private _labelSlotTextObserver;
320
+ /**
321
+ * Watches in-place text mutations on consumer light-DOM elements resolved
322
+ * from host `aria-labelledby` / `aria-describedby`. Without this, a consumer
323
+ * keeping the same `<label id="…">` but mutating its `textContent` (e.g.
324
+ * i18n re-render) would leave the inner input's `aria-label` and
325
+ * synthesized description span stale indefinitely.
326
+ * @internal
327
+ */
328
+ private _externalRefsObserver;
214
329
  /**
215
330
  * Closes the listbox when a click is detected outside the component; bound for stable add/removeEventListener calls.
216
331
  * @internal
@@ -220,6 +335,99 @@ export declare class HelixTimePicker extends HelixTimePicker_base {
220
335
  disconnectedCallback(): void;
221
336
  willUpdate(changed: PropertyValues<this>): void;
222
337
  updated(changed: PropertyValues<this>): void;
338
+ firstUpdated(changed: PropertyValues<this>): void;
339
+ /**
340
+ * Synchronous slot-state seed. Mirrors the side effects of the three
341
+ * `_handle*SlotChange` handlers (label / help-text / error) but is driven by
342
+ * direct `slot.assignedNodes()` reads so we can populate state BEFORE the
343
+ * microtask `slotchange` events fire after the first render.
344
+ * @internal
345
+ */
346
+ private _seedSlotStateSync;
347
+ /**
348
+ * Reads the label slot's assigned nodes and computes the discriminated
349
+ * naming state. An empty whitespace-only slot does NOT count as a useful
350
+ * name. Aggregates ALL assigned elements (not just the first); per AccName
351
+ * 1.2 §4.3.10, `aria-hidden="true"` and `[hidden]` elements contribute zero
352
+ * to the accessible name (their text is skipped during flattening).
353
+ * @internal
354
+ */
355
+ private _readLabelSlotState;
356
+ /**
357
+ * Re-evaluate the help-text slot's "has meaningful content" state from its
358
+ * current effective text. Mirrors the slotchange-handler logic but is
359
+ * invocable from the in-place mutation observer so that clearing
360
+ * `textContent` on the same slotted node flips `_hasHelpSlot` back to
361
+ * `false`. Uses AccName-aware flatten so descendants carrying
362
+ * `aria-hidden="true"` or `hidden` do NOT count toward "has meaningful
363
+ * content".
364
+ * @internal
365
+ */
366
+ private _readHelpSlotStateSync;
367
+ /**
368
+ * Re-evaluate the error slot's "has meaningful content" state from its
369
+ * current effective text. AccName-aware so visibility-suppressed roots /
370
+ * descendants don't keep the field stuck in error state.
371
+ * @internal
372
+ */
373
+ private _readErrorSlotStateSync;
374
+ /**
375
+ * (Re-)installs a `MutationObserver` against the deduped union of
376
+ * consumer-resolved label/description elements. Watches `characterData`,
377
+ * `childList`, `subtree`, and aria-hidden/hidden attribute toggles so any
378
+ * in-place text or visibility mutation triggers a fresh sync.
379
+ * @internal
380
+ */
381
+ private _installExternalRefsObserver;
382
+ /**
383
+ * Resolves consumer-supplied label/description IDREFs on the host and writes
384
+ * the canonical combobox ARIA onto the **inner `<input>`** per W3C APG
385
+ * editable combobox pattern. The inner input owns `role="combobox"`
386
+ * (replacing its implicit textbox role) and all combobox state ARIA so AT
387
+ * sees a single announced + focused surface.
388
+ *
389
+ * Cross-shadow naming uses a belt-and-suspenders strategy:
390
+ *
391
+ * 1. **Modern path** (`_supportsIdrefRefs === true`): consumer-resolved
392
+ * label/description elements are written onto
393
+ * `internals.ariaLabelledByElements` / `internals.ariaDescribedByElements`
394
+ * on the host. Host-level `aria-labelledby` / `aria-describedby`
395
+ * attributes are LEFT IN PLACE so AT walking up the DOM also sees them.
396
+ * The text content of the resolved elements is also flattened onto the
397
+ * inner input as `aria-label` so AT that does not walk up still
398
+ * announces the right name.
399
+ *
400
+ * 2. **Legacy fallback** (`_supportsIdrefRefs === false`): the resolved-
401
+ * element text is flattened onto the inner input as `aria-label` and
402
+ * mirrored into a synthesized in-shadow span pointed at by the inner
403
+ * input's `aria-describedby`.
404
+ *
405
+ * Writing `aria-labelledby="<light-DOM id>"` directly on the shadow-DOM
406
+ * inner input is INTENTIONALLY avoided: light-DOM ids do not resolve from
407
+ * inside a shadow root.
408
+ * @internal
409
+ */
410
+ private _syncHostAriaSemantics;
411
+ /**
412
+ * (Re-)installs the help-text slot text/visibility observer.
413
+ * @internal
414
+ */
415
+ private _installHelpSlotTextObserver;
416
+ /**
417
+ * (Re-)installs the error slot text/visibility observer.
418
+ * @internal
419
+ */
420
+ private _installErrorSlotTextObserver;
421
+ /**
422
+ * (Re-)installs the label slot text/visibility observer over the current
423
+ * set of slotted label elements.
424
+ * @internal
425
+ */
426
+ private _installLabelSlotTextObserver;
427
+ /**
428
+ * Recomputes the discriminated label source. @internal
429
+ */
430
+ private _refreshLabelSource;
223
431
  /** @internal */
224
432
  _updateValidity(): void;
225
433
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"hx-time-picker.d.ts","sourceRoot":"","sources":["../../../src/components/hx-time-picker/hx-time-picker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hx-time-picker.d.ts","sourceRoot":"","sources":["../../../src/components/hx-time-picker/hx-time-picker.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hx-time-picker.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-time-picker/hx-time-picker.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,yBAuOjC,CAAC"}
1
+ {"version":3,"file":"hx-time-picker.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-time-picker/hx-time-picker.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,yBAkPjC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as r } from "../../shared/hx-time-picker-BoEIZwzv.js";
1
+ import { H as r } from "../../shared/hx-time-picker-iwCD7rzW.js";
2
2
  export {
3
3
  r as HelixTimePicker
4
4
  };
@@ -13,6 +13,20 @@ export type ToastStackPlacement = 'top-start' | 'top-center' | 'top-end' | 'bott
13
13
  * @csspart base - The inner stack container div.
14
14
  *
15
15
  * @cssprop [--hx-z-index-toast=9000] - Z-index for the fixed stack.
16
+ *
17
+ * ─── ARIA scope (group-6 §3.2 / §5.9) ─────────────────────────────────────
18
+ *
19
+ * `hx-toast-stack` deliberately has NO `role`, `aria-live`, `aria-atomic`,
20
+ * or `aria-relevant` on its host or inner container. Each child `hx-toast`
21
+ * is its own live region (role=alert/status via ElementInternals). Wrapping
22
+ * those toasts in a second live region (e.g. `role="log"` on the stack)
23
+ * would create nested live regions, which causes older NVDA/JAWS to
24
+ * announce every toast TWICE — once for the toast's own role, once for the
25
+ * surrounding log region.
26
+ *
27
+ * The stack is purely a positional/z-index container; it is invisible to
28
+ * the AT tree. Do NOT add a container role unless this entire architecture
29
+ * is rewritten so individual toasts no longer carry their own roles.
16
30
  */
17
31
  export declare class HelixToastStack extends HelixElement {
18
32
  static styles: import('lit').CSSResult[];
@@ -1 +1 @@
1
- {"version":3,"file":"hx-toast-stack.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toast/hx-toast-stack.ts"],"names":[],"mappings":"AACA,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,YAAY,GACZ,SAAS,GACT,cAAc,GACd,eAAe,GACf,YAAY,CAAC;AAEjB;;;;;;;;;;;;;GAaG;AACH,qBACa,eAAgB,SAAQ,YAAY;IAC/C,OAAgB,MAAM,4BAA2B;IAEjD;;;OAGG;IAEH,SAAS,EACL,WAAW,GACX,YAAY,GACZ,SAAS,GACT,cAAc,GACd,eAAe,GACf,YAAY,CAAgB;IAEhC;;;OAGG;IAEH,UAAU,SAAK;IAEN,MAAM;CAahB;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,eAAe,CAAC;KACnC;CACF"}
1
+ {"version":3,"file":"hx-toast-stack.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toast/hx-toast-stack.ts"],"names":[],"mappings":"AACA,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,YAAY,GACZ,SAAS,GACT,cAAc,GACd,eAAe,GACf,YAAY,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBACa,eAAgB,SAAQ,YAAY;IAC/C,OAAgB,MAAM,4BAA2B;IAEjD;;;OAGG;IAEH,SAAS,EACL,WAAW,GACX,YAAY,GACZ,SAAS,GACT,cAAc,GACd,eAAe,GACf,YAAY,CAAgB;IAEhC;;;OAGG;IAEH,UAAU,SAAK;IAEN,MAAM;CAahB;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,eAAe,CAAC;KACnC;CACF"}
@@ -97,8 +97,22 @@ export declare class HelixToast extends HelixElement {
97
97
  private _timerStartedAt;
98
98
  /** @internal */
99
99
  private _timerRemaining;
100
+ connectedCallback(): void;
100
101
  updated(changedProperties: PropertyValues<this>): void;
101
102
  disconnectedCallback(): void;
103
+ /**
104
+ * (group-6 §5.3) WCAG 2.2.3 (Level AA — No Time Limits) audit. When
105
+ * `duration` is shorter than the role-implied minimum-display-time for the
106
+ * current variant, surface a developer warning recommending a longer
107
+ * duration or `duration=0` for persistent toasts. Danger toasts in
108
+ * particular are safety-critical and routinely need more than 5 seconds
109
+ * for screen readers to finish reading.
110
+ *
111
+ * Fires only in DEV builds (Vite tree-shakes the call in production).
112
+ *
113
+ * @internal
114
+ */
115
+ private _auditWcag223;
102
116
  /** Show the toast. */
103
117
  show(): void;
104
118
  /** Hide the toast. */
@@ -127,11 +141,16 @@ export declare class HelixToast extends HelixElement {
127
141
  private _handleClose;
128
142
  /** @internal */
129
143
  private _handleActionSlotChange;
130
- /** @internal */
144
+ /**
145
+ * @internal
146
+ * Variant→role mapping (harmonized with hx-alert/hx-banner per group-6):
147
+ * only `danger` is assertive (role=alert); all other variants are polite
148
+ * (role=status). role implies aria-live, so we do NOT also expose an
149
+ * `_ariaLive` getter — that path was removed when the inner div stopped
150
+ * carrying explicit aria-live (§5.1 double-announce mitigation).
151
+ */
131
152
  private get _role();
132
153
  /** @internal */
133
- private get _ariaLive();
134
- /** @internal */
135
154
  private _renderSuccessIcon;
136
155
  /** @internal */
137
156
  private _renderWarningIcon;
@@ -1 +1 @@
1
- {"version":3,"file":"hx-toast.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toast/hx-toast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,qBACa,UAAW,SAAQ,YAAY;IAO1C,OAAgB,MAAM,4BAAsB;IAI5C;;;OAGG;IAEH,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAa;IAE3E;;;OAGG;IAEH,QAAQ,SAAQ;IAEhB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,IAAI,UAAS;IAEb;;;OAGG;IAEH,UAAU,SAA0B;IAIpC,gBAAgB;IACC,OAAO,CAAC,QAAQ,CAAsB;IAEvD,oEAAoE;IAC3D,OAAO,CAAC,iBAAiB,CAAS;IAE3C,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAA8C;IAI5D,0EAA0E;IAC1E,OAAO,KAAK,cAAc,GAIzB;IAED,gBAAgB;IAChB,OAAO,CAAC,eAAe,CAAuB;IAE9C,gBAAgB;IAChB,OAAO,CAAC,eAAe,CAAuB;IAIrC,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAiBtD,oBAAoB,IAAI,IAAI;IAOrC,sBAAsB;IACtB,IAAI,IAAI,IAAI;IAMZ,sBAAsB;IACtB,IAAI,IAAI,IAAI;IAQZ,gBAAgB;IAChB,OAAO,CAAC,WAAW;IAUnB,gBAAgB;IAChB,OAAO,CAAC,WAAW;IASnB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAOzB,gBAAgB;IAChB,OAAO,CAAC,WAAW;IAMnB,gBAAgB;IAChB,OAAO,CAAC,SAAS;IAIjB,gBAAgB;IAChB,OAAO,CAAC,SAAS;IAsBjB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAIzB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAMzB,gBAAgB;IAChB,OAAO,CAAC,cAAc;IAItB,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAMvB,gBAAgB;IAChB,OAAO,CAAC,YAAY;IAIpB,gBAAgB;IAChB,OAAO,CAAC,uBAAuB;IAU/B,gBAAgB;IAChB,OAAO,KAAK,KAAK,GAEhB;IAED,gBAAgB;IAChB,OAAO,KAAK,SAAS,GAEpB;IAMD,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAS1B,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAS1B,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IASzB,gBAAgB;IAChB,OAAO,CAAC,eAAe;IASvB,4FAA4F;IAC5F,OAAO,KAAK,YAAY,GAavB;IAID,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAKtC;IAEF,gBAAgB;IAChB,OAAO,KAAK,cAAc,GAEzB;IAIQ,MAAM;CA6DhB;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,UAAU,CAAC;KACxB;CACF"}
1
+ {"version":3,"file":"hx-toast.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toast/hx-toast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAejF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,qBACa,UAAW,SAAQ,YAAY;IAO1C,OAAgB,MAAM,4BAAsB;IAI5C;;;OAGG;IAEH,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAa;IAE3E;;;OAGG;IAEH,QAAQ,SAAQ;IAEhB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,IAAI,UAAS;IAEb;;;OAGG;IAEH,UAAU,SAA0B;IAIpC,gBAAgB;IACC,OAAO,CAAC,QAAQ,CAAsB;IAEvD,oEAAoE;IAC3D,OAAO,CAAC,iBAAiB,CAAS;IAE3C,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAA8C;IAI5D,0EAA0E;IAC1E,OAAO,KAAK,cAAc,GAIzB;IAED,gBAAgB;IAChB,OAAO,CAAC,eAAe,CAAuB;IAE9C,gBAAgB;IAChB,OAAO,CAAC,eAAe,CAAuB;IAIrC,iBAAiB,IAAI,IAAI;IAsBzB,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA0BtD,oBAAoB,IAAI,IAAI;IAKrC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IAarB,sBAAsB;IACtB,IAAI,IAAI,IAAI;IAMZ,sBAAsB;IACtB,IAAI,IAAI,IAAI;IAQZ,gBAAgB;IAChB,OAAO,CAAC,WAAW;IAUnB,gBAAgB;IAChB,OAAO,CAAC,WAAW;IASnB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAOzB,gBAAgB;IAChB,OAAO,CAAC,WAAW;IAMnB,gBAAgB;IAChB,OAAO,CAAC,SAAS;IAIjB,gBAAgB;IAChB,OAAO,CAAC,SAAS;IAsBjB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAIzB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAMzB,gBAAgB;IAChB,OAAO,CAAC,cAAc;IAItB,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAMvB,gBAAgB;IAChB,OAAO,CAAC,YAAY;IAIpB,gBAAgB;IAChB,OAAO,CAAC,uBAAuB;IAU/B;;;;;;;OAOG;IACH,OAAO,KAAK,KAAK,GAEhB;IAMD,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAS1B,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAS1B,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IASzB,gBAAgB;IAChB,OAAO,CAAC,eAAe;IASvB,4FAA4F;IAC5F,OAAO,KAAK,YAAY,GAavB;IAID,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAKtC;IAEF,gBAAgB;IAChB,OAAO,KAAK,cAAc,GAEzB;IAYQ,MAAM;CA0DhB;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,UAAU,CAAC;KACxB;CACF"}
@@ -1,4 +1,4 @@
1
- import { H as s, a as o, t as e } from "../../shared/toast-factory-YSznocIV.js";
1
+ import { H as s, a as o, t as e } from "../../shared/toast-factory-CL2BzdSB.js";
2
2
  export {
3
3
  s as HelixToast,
4
4
  o as HelixToastStack,
@@ -1 +1 @@
1
- {"version":3,"file":"toast-factory.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toast/toast-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CA6CvD"}
1
+ {"version":3,"file":"toast-factory.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toast/toast-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC;AA6BD;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CA4EvD"}
@@ -1,4 +1,4 @@
1
- import { H as t } from "../../shared/hx-toggle-button-Dcz9IlUm.js";
1
+ import { H as t } from "../../shared/hx-toggle-button-BQ81EDkl.js";
2
2
  export {
3
3
  t as HelixToggleButton
4
4
  };
@@ -1,3 +1,4 @@
1
+ import { PropertyValues } from 'lit';
1
2
  import { HelixElement } from '../../base/index.js';
2
3
  /** Detail type for the `hx-tree-item-select` event. */
3
4
  export interface HxTreeItemSelectDetail {
@@ -8,6 +9,27 @@ export interface HxTreeItemSelectDetail {
8
9
  * A tree item used within an hx-tree-view component.
9
10
  * Supports expand/collapse, selection, keyboard navigation, and icon/children slots.
10
11
  *
12
+ * Group 5c host-canonical: `role="treeitem"` lives on the **host** via
13
+ * `_internals.role`. The roving tabindex is written to the host on the
14
+ * modern path so the host is the focusable surface and lands directly
15
+ * under the parent `<hx-tree-view>` (which carries `role="tree"`) in the
16
+ * AT-walked tree. The inner `.item-row` is presentational on the modern
17
+ * path — no role, no aria-* attributes — and carries only click/keyboard
18
+ * event handlers. Keyboard activation (Enter/Space) and expand/collapse
19
+ * (ArrowLeft/Right at the leaf level) are owned by the host's `keydown`
20
+ * handler; ArrowUp/Down/Home/End and typeahead bubble to the parent
21
+ * `<hx-tree-view>` for navigation.
22
+ *
23
+ * The nested `[role="group"]` element that wraps the `slot="children"`
24
+ * stays in the inner shadow DOM regardless of path — that group is a
25
+ * separate sub-surface for the children, not a duplicate of the
26
+ * treeitem role.
27
+ *
28
+ * On the legacy fallback path the inner `.item-row` carries
29
+ * `role="treeitem"` + aria-* state, the host role is suppressed, and the
30
+ * roving tabindex is written to the inner element so there is only ONE
31
+ * focusable surface per item (mirrors hx-menu-item round-8).
32
+ *
11
33
  * @summary Individual item within an hx-tree-view hierarchical tree.
12
34
  *
13
35
  * @tag hx-tree-item
@@ -17,10 +39,10 @@ export interface HxTreeItemSelectDetail {
17
39
  * @slot children - Nested hx-tree-item elements for sub-tree.
18
40
  *
19
41
  * @csspart item - The outer item container.
20
- * @csspart row - The interactive item row (contains expand icon, icon slot, and label).
42
+ * @csspart row - The interactive item row (presentational on the modern path; carries role="treeitem" + aria-* on the legacy fallback).
21
43
  * @csspart expand-icon - The expand/collapse toggle button.
22
44
  * @csspart label - The label text content area.
23
- * @csspart children - The children container.
45
+ * @csspart children - The children container (always carries role="group").
24
46
  *
25
47
  * @cssprop [--hx-tree-item-color=var(--hx-color-neutral-900)] - Item text color.
26
48
  * @cssprop [--hx-tree-item-hover-bg=var(--hx-color-neutral-100)] - Hover background color.
@@ -34,6 +56,18 @@ export interface HxTreeItemSelectDetail {
34
56
  */
35
57
  export declare class HelixTreeItem extends HelixElement {
36
58
  static styles: import('lit').CSSResult[];
59
+ /**
60
+ * Test seam (codex push-gate round-1 lift from group 5b): when set to
61
+ * `true` or `false`, overrides the platform `supportsIdrefElementReferences`
62
+ * probe before `connectedCallback` seeds `_supportsIdrefRefs`. Mirrors the
63
+ * hx-menu-item / hx-select seam — required so tests can deterministically
64
+ * exercise the legacy fallback render branch.
65
+ *
66
+ * Production code MUST NOT touch this field. It is `static` so the test
67
+ * stub cleanup is global and obvious.
68
+ * @internal
69
+ */
70
+ static __testSupportsIdrefRefsOverride: boolean | null;
37
71
  /**
38
72
  * Whether the item is expanded (showing children).
39
73
  * @attr expanded
@@ -87,6 +121,22 @@ export declare class HelixTreeItem extends HelixElement {
87
121
  private _selectable;
88
122
  /** @internal */
89
123
  private _itemRowEl;
124
+ /** @internal */
125
+ private _supportsIdrefRefs;
126
+ /** @internal */
127
+ private _ariaMirror;
128
+ /**
129
+ * Resolved accessible name override for the tree item — read by both
130
+ * `_syncHostAriaSemantics()` (modern path: host `internals.ariaLabel`)
131
+ * and the fallback `render()` branch (legacy path: inner
132
+ * `div[role="treeitem"]` `aria-label`). Empty string means "no override"
133
+ * — slotted text content provides the implicit name through the
134
+ * announced surface (host on modern; inner row on fallback). AccName 1.2
135
+ * §4.3.1 precedence: consumer host `aria-labelledby` (flattened) >
136
+ * consumer host `aria-label` > implicit slotted text.
137
+ * @internal
138
+ */
139
+ private _resolvedAccessibleName;
90
140
  /**
91
141
  * Whether this item has slotted children.
92
142
  * @returns True if one or more elements are assigned to the children slot.
@@ -111,6 +161,34 @@ export declare class HelixTreeItem extends HelixElement {
111
161
  */
112
162
  setAriaMetadata(level: number, posInSet: number, setSize: number, selectable: boolean): void;
113
163
  connectedCallback(): void;
164
+ disconnectedCallback(): void;
165
+ updated(changedProperties: PropertyValues<this>): void;
166
+ /**
167
+ * Apply the roving tabindex through the right surface for the active
168
+ * path. On the modern host-canonical path the host carries the role +
169
+ * tabindex; on the legacy fallback path the inner `.item-row` carries
170
+ * both via the template, so the host MUST stay out of the tab order to
171
+ * avoid a double-focusable per item (mirrors hx-menu-item round-1
172
+ * finding 3).
173
+ * @internal
174
+ */
175
+ private _applyHostTabIndex;
176
+ /**
177
+ * Mirror treeitem semantics onto the host via ElementInternals so
178
+ * consumer-supplied `aria-label`, `aria-labelledby`, expand/select state,
179
+ * and tree position all reach the announced control.
180
+ *
181
+ * Codex push-gate round-1 lift (mirrors hx-menu-item round-6 finding 2):
182
+ * on the legacy fallback path the inner `.item-row` already exposes
183
+ * role="treeitem" + aria-* via the template. If we ALSO write those onto
184
+ * the host's ElementInternals, AT sees TWO treeitems for one logical
185
+ * option — the duplicate-surface problem host-canonical migration is
186
+ * meant to eliminate. Suppress all of these state writes on the host
187
+ * when the fallback path is in effect; the inner element is the
188
+ * canonical announced surface.
189
+ * @internal
190
+ */
191
+ private _syncHostAriaSemantics;
114
192
  /**
115
193
  * Updates _hasChildren and recomputes ARIA metadata when the children slot assignment changes.
116
194
  * @internal
@@ -122,29 +200,56 @@ export declare class HelixTreeItem extends HelixElement {
122
200
  */
123
201
  private _handleLabelSlotChange;
124
202
  /**
125
- * Toggles the expanded state when the expand/collapse button is clicked, stopping event propagation.
203
+ * Origin guard for host-bound click/keydown handlers. Returns `true` only
204
+ * when the event originated on THIS host's surface (its shadow tree or
205
+ * itself) and not on a nested `hx-tree-item` projected into the
206
+ * `children` slot.
207
+ *
208
+ * Codex push-gate round-1 lift (mirrors hx-menu-item round-5 P1):
209
+ * children are slotted descendants in the parent's light DOM. Click/
210
+ * keydown events from a Child item bubble through the parent host's
211
+ * listeners — without this guard, selecting Child also activates
212
+ * Parent (double `hx-tree-item-select`) and Enter/Space on Child
213
+ * re-trigger Parent's handlers.
214
+ *
215
+ * Uses the shared `findClosestTreeItem` walker (composed-tree, crosses
216
+ * shadow + slot boundaries) so the test bed is reused across the
217
+ * tree family. The event is "ours" iff the closest `hx-tree-item`
218
+ * ancestor of the original target is `this`.
126
219
  * @internal
127
220
  */
128
- private _handleExpandClick;
221
+ private _isOwnEvent;
129
222
  /**
130
- * Dispatches the hx-tree-item-select event when the item is activated via click or keyboard.
223
+ * Toggles the expanded state when the expand/collapse button is clicked, stopping event propagation.
131
224
  * @internal
132
225
  */
133
- private _handleRowClick;
226
+ private _handleExpandClick;
134
227
  /**
135
- * Handles keyboard interaction for the tree item, including expand/collapse, activation, and delegation of list-navigation keys to the parent tree.
228
+ * Dispatches the hx-tree-item-select event when the item is activated via
229
+ * click or keyboard. The host listens for click; this method is also
230
+ * invoked from the Enter/Space keydown branch.
136
231
  * @internal
137
232
  */
233
+ private _activate;
234
+ /** @internal */
235
+ private _handleClick;
236
+ /** @internal */
138
237
  private _handleKeyDown;
139
238
  /**
140
239
  * Sets the roving tabindex state for this item.
141
- * When `active` is true, the item row gets `tabindex="0"` making it the
142
- * Tab-reachable item in the tree. All other items should be set to false.
143
- * Called by the parent hx-tree-view to manage the roving tabindex pattern.
240
+ * When `active` is true, the host (modern) or inner row (fallback) gets
241
+ * `tabindex="0"` making it the Tab-reachable surface in the tree. All
242
+ * other items should be set to false. Called by the parent hx-tree-view
243
+ * to manage the roving tabindex pattern.
144
244
  */
145
245
  setRovingActive(active: boolean): void;
146
- /** Focus this item's interactive row element. */
147
- focus(): void;
246
+ /**
247
+ * Focus this item. On the modern host-canonical path, focus lands on the
248
+ * host (which carries the roving tabindex and announced role). On the
249
+ * legacy fallback path, focus delegates to the inner `.item-row` which
250
+ * still carries the role.
251
+ */
252
+ focus(options?: FocusOptions): void;
148
253
  /**
149
254
  * Renders the expand/collapse chevron button, or a placeholder span when the item has no children.
150
255
  * @internal