@helixui/library 3.3.1 → 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 (321) hide show
  1. package/custom-elements.json +340 -71
  2. package/dist/components/hx-accordion/hx-accordion-item.d.ts +35 -0
  3. package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
  4. package/dist/components/hx-alert/hx-alert.d.ts +11 -0
  5. package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
  6. package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
  7. package/dist/components/hx-alert/index.js +1 -1
  8. package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
  9. package/dist/components/hx-badge/index.js +1 -1
  10. package/dist/components/hx-banner/hx-banner.d.ts +9 -1
  11. package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
  12. package/dist/components/hx-banner/index.js +1 -1
  13. package/dist/components/hx-button/hx-button.d.ts +11 -1
  14. package/dist/components/hx-button/hx-button.d.ts.map +1 -1
  15. package/dist/components/hx-button/index.js +1 -1
  16. package/dist/components/hx-button-group/hx-button-group.d.ts +13 -0
  17. package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
  18. package/dist/components/hx-button-group/index.js +1 -1
  19. package/dist/components/hx-checkbox/hx-checkbox.d.ts +153 -1
  20. package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
  21. package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
  22. package/dist/components/hx-checkbox/index.js +1 -1
  23. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +151 -2
  24. package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
  25. package/dist/components/hx-checkbox-group/index.js +1 -1
  26. package/dist/components/hx-color-picker/hx-color-picker.d.ts +163 -1
  27. package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
  28. package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
  29. package/dist/components/hx-color-picker/index.js +1 -1
  30. package/dist/components/hx-combobox/hx-combobox.d.ts +311 -2
  31. package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
  32. package/dist/components/hx-combobox/index.js +1 -1
  33. package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
  34. package/dist/components/hx-data-table/index.js +1 -1
  35. package/dist/components/hx-date-picker/hx-date-picker.d.ts +182 -56
  36. package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
  37. package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
  38. package/dist/components/hx-date-picker/index.js +1 -1
  39. package/dist/components/hx-dialog/hx-dialog.d.ts +240 -0
  40. package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
  41. package/dist/components/hx-dialog/index.js +1 -1
  42. package/dist/components/hx-drawer/hx-drawer.d.ts +201 -0
  43. package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
  44. package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
  45. package/dist/components/hx-drawer/index.js +1 -1
  46. package/dist/components/hx-dropdown/hx-dropdown.d.ts +168 -0
  47. package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
  48. package/dist/components/hx-dropdown/index.js +1 -1
  49. package/dist/components/hx-field/hx-field.d.ts +109 -0
  50. package/dist/components/hx-field/hx-field.d.ts.map +1 -1
  51. package/dist/components/hx-field/index.js +1 -1
  52. package/dist/components/hx-icon-button/hx-icon-button.d.ts +16 -3
  53. package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
  54. package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
  55. package/dist/components/hx-icon-button/index.js +1 -1
  56. package/dist/components/hx-link/hx-link.d.ts +10 -1
  57. package/dist/components/hx-link/hx-link.d.ts.map +1 -1
  58. package/dist/components/hx-link/index.js +1 -1
  59. package/dist/components/hx-list/hx-list-item.d.ts +27 -1
  60. package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
  61. package/dist/components/hx-list/hx-list.d.ts +28 -0
  62. package/dist/components/hx-list/hx-list.d.ts.map +1 -1
  63. package/dist/components/hx-list/index.js +1 -1
  64. package/dist/components/hx-menu/hx-menu-divider.d.ts +10 -0
  65. package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
  66. package/dist/components/hx-menu/hx-menu-item.d.ts +99 -2
  67. package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
  68. package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
  69. package/dist/components/hx-menu/hx-menu.d.ts +117 -2
  70. package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
  71. package/dist/components/hx-menu/index.js +1 -1
  72. package/dist/components/hx-meter/hx-meter.d.ts +39 -0
  73. package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
  74. package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
  75. package/dist/components/hx-meter/index.js +1 -1
  76. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +132 -1
  77. package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
  78. package/dist/components/hx-overflow-menu/index.js +1 -1
  79. package/dist/components/hx-phi-field/hx-phi-field.d.ts +0 -1
  80. package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
  81. package/dist/components/hx-popover/hx-popover.d.ts +91 -0
  82. package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
  83. package/dist/components/hx-popover/index.js +1 -1
  84. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +33 -0
  85. package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
  86. package/dist/components/hx-progress-bar/index.js +1 -1
  87. package/dist/components/hx-radio-group/hx-radio-group.d.ts +152 -1
  88. package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
  89. package/dist/components/hx-radio-group/hx-radio.d.ts +14 -0
  90. package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
  91. package/dist/components/hx-radio-group/index.js +1 -1
  92. package/dist/components/hx-select/hx-select.d.ts +304 -2
  93. package/dist/components/hx-select/hx-select.d.ts.map +1 -1
  94. package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
  95. package/dist/components/hx-select/index.js +1 -1
  96. package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
  97. package/dist/components/hx-side-nav/index.js +1 -1
  98. package/dist/components/hx-spinner/hx-spinner.d.ts +14 -0
  99. package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
  100. package/dist/components/hx-spinner/index.js +1 -1
  101. package/dist/components/hx-split-button/hx-split-button.d.ts +94 -7
  102. package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
  103. package/dist/components/hx-split-button/index.js +1 -1
  104. package/dist/components/hx-stat/hx-stat.d.ts +28 -0
  105. package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
  106. package/dist/components/hx-stat/index.js +1 -1
  107. package/dist/components/hx-switch/hx-switch.d.ts +78 -1
  108. package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
  109. package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
  110. package/dist/components/hx-switch/index.js +1 -1
  111. package/dist/components/hx-table/hx-td.d.ts +30 -3
  112. package/dist/components/hx-table/hx-td.d.ts.map +1 -1
  113. package/dist/components/hx-table/hx-th.d.ts +39 -3
  114. package/dist/components/hx-table/hx-th.d.ts.map +1 -1
  115. package/dist/components/hx-table/hx-tr.d.ts +26 -0
  116. package/dist/components/hx-table/hx-tr.d.ts.map +1 -1
  117. package/dist/components/hx-table/index.js +1 -1
  118. package/dist/components/hx-tabs/hx-tab-panel.d.ts +34 -0
  119. package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -1
  120. package/dist/components/hx-tabs/hx-tab.d.ts +45 -2
  121. package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
  122. package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
  123. package/dist/components/hx-tabs/hx-tabs.d.ts +32 -2
  124. package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
  125. package/dist/components/hx-tabs/index.js +1 -1
  126. package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
  127. package/dist/components/hx-tag/index.js +1 -1
  128. package/dist/components/hx-theme/hx-theme.d.ts +10 -5
  129. package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
  130. package/dist/components/hx-time-picker/hx-time-picker.d.ts +210 -2
  131. package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
  132. package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
  133. package/dist/components/hx-time-picker/index.js +1 -1
  134. package/dist/components/hx-toast/hx-toast-stack.d.ts +14 -0
  135. package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
  136. package/dist/components/hx-toast/hx-toast.d.ts +22 -3
  137. package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
  138. package/dist/components/hx-toast/index.js +1 -1
  139. package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
  140. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +110 -0
  141. package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
  142. package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
  143. package/dist/components/hx-toggle-button/index.js +1 -1
  144. package/dist/components/hx-tooltip/hx-tooltip.d.ts +52 -0
  145. package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
  146. package/dist/components/hx-tooltip/index.js +1 -1
  147. package/dist/components/hx-tree-view/hx-tree-item.d.ts +117 -12
  148. package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
  149. package/dist/components/hx-tree-view/hx-tree-view.d.ts +87 -7
  150. package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
  151. package/dist/components/hx-tree-view/index.js +1 -1
  152. package/dist/css/helix-all.css +221 -1
  153. package/dist/css/helix-core.css +81 -0
  154. package/dist/css/helix-feedback.css +14 -0
  155. package/dist/css/helix-forms.css +109 -1
  156. package/dist/css/helix-overlay.css +17 -0
  157. package/dist/css/hx-alert.css +9 -0
  158. package/dist/css/hx-badge.css +28 -0
  159. package/dist/css/hx-checkbox.css +18 -0
  160. package/dist/css/hx-color-picker.css +25 -0
  161. package/dist/css/hx-date-picker.css +2 -1
  162. package/dist/css/hx-drawer.css +17 -0
  163. package/dist/css/hx-icon-button.css +30 -0
  164. package/dist/css/hx-meter.css +5 -0
  165. package/dist/css/hx-select.css +19 -0
  166. package/dist/css/hx-switch.css +17 -0
  167. package/dist/css/hx-tag.css +23 -0
  168. package/dist/css/hx-time-picker.css +11 -0
  169. package/dist/css/hx-toggle-button.css +17 -0
  170. package/dist/css/index.css +1 -1
  171. package/dist/css/manifest.json +4 -1
  172. package/dist/index.js +38 -38
  173. package/dist/shared/aria-flatten-DY6v2vah.js +22 -0
  174. package/dist/shared/aria-flatten-DY6v2vah.js.map +1 -0
  175. package/dist/shared/aria-idref-CxvyzfQS.js +126 -0
  176. package/dist/shared/aria-idref-CxvyzfQS.js.map +1 -0
  177. package/dist/shared/hx-accordion-ZVzgDzTG.js.map +1 -1
  178. package/dist/shared/{hx-alert-CLn7CstP.js → hx-alert-Bto8-TIi.js} +55 -37
  179. package/dist/shared/hx-alert-Bto8-TIi.js.map +1 -0
  180. package/dist/shared/{hx-badge-CQXgOXJM.js → hx-badge-JlFtAdxS.js} +37 -9
  181. package/dist/shared/hx-badge-JlFtAdxS.js.map +1 -0
  182. package/dist/shared/{hx-banner-D3DzpfcP.js → hx-banner-fpRnciIO.js} +13 -5
  183. package/dist/shared/hx-banner-fpRnciIO.js.map +1 -0
  184. package/dist/shared/{hx-button-DPY6SPVT.js → hx-button-BOwAEcF1.js} +108 -85
  185. package/dist/shared/{hx-button-DPY6SPVT.js.map → hx-button-BOwAEcF1.js.map} +1 -1
  186. package/dist/shared/{hx-button-group-BI-QBqmO.js → hx-button-group-DcHP5MBv.js} +15 -16
  187. package/dist/shared/{hx-button-group-BI-QBqmO.js.map → hx-button-group-DcHP5MBv.js.map} +1 -1
  188. package/dist/shared/hx-checkbox-C48KYKFq.js +696 -0
  189. package/dist/shared/hx-checkbox-C48KYKFq.js.map +1 -0
  190. package/dist/shared/hx-checkbox-group-BJIAX3zU.js +496 -0
  191. package/dist/shared/hx-checkbox-group-BJIAX3zU.js.map +1 -0
  192. package/dist/shared/hx-color-picker-Dk4cBwYQ.js +1221 -0
  193. package/dist/shared/hx-color-picker-Dk4cBwYQ.js.map +1 -0
  194. package/dist/shared/hx-combobox-BTLO9qiK.js +1359 -0
  195. package/dist/shared/hx-combobox-BTLO9qiK.js.map +1 -0
  196. package/dist/shared/{hx-data-table-CLqVqdxr.js → hx-data-table-Ct3gQ6ya.js} +3 -2
  197. package/dist/shared/{hx-data-table-CLqVqdxr.js.map → hx-data-table-Ct3gQ6ya.js.map} +1 -1
  198. package/dist/shared/{hx-date-picker-2iRG1p74.js → hx-date-picker-CiR7FVnR.js} +542 -206
  199. package/dist/shared/hx-date-picker-CiR7FVnR.js.map +1 -0
  200. package/dist/shared/hx-dialog-AOZpHSuF.js +717 -0
  201. package/dist/shared/hx-dialog-AOZpHSuF.js.map +1 -0
  202. package/dist/shared/{hx-drawer-Y1Ui2IWJ.js → hx-drawer-DH6CdAN1.js} +300 -98
  203. package/dist/shared/hx-drawer-DH6CdAN1.js.map +1 -0
  204. package/dist/shared/hx-dropdown-DiLd40Lm.js +401 -0
  205. package/dist/shared/hx-dropdown-DiLd40Lm.js.map +1 -0
  206. package/dist/shared/{hx-field-B3Qo8OLS.js → hx-field-zw0U1KVi.js} +99 -38
  207. package/dist/shared/hx-field-zw0U1KVi.js.map +1 -0
  208. package/dist/shared/{hx-icon-button-CGNdQSFM.js → hx-icon-button-a6OpeQz5.js} +149 -68
  209. package/dist/shared/hx-icon-button-a6OpeQz5.js.map +1 -0
  210. package/dist/shared/{hx-link-C-O6vq0Q.js → hx-link-CMnZRUtQ.js} +55 -43
  211. package/dist/shared/hx-link-CMnZRUtQ.js.map +1 -0
  212. package/dist/shared/{hx-list-MyEhh8c7.js → hx-list-De66EtAP.js} +163 -107
  213. package/dist/shared/hx-list-De66EtAP.js.map +1 -0
  214. package/dist/shared/hx-menu-divider-BjiRIWKq.js +797 -0
  215. package/dist/shared/hx-menu-divider-BjiRIWKq.js.map +1 -0
  216. package/dist/shared/{hx-meter-BPscsw5t.js → hx-meter-BJdh6nrF.js} +105 -64
  217. package/dist/shared/hx-meter-BJdh6nrF.js.map +1 -0
  218. package/dist/shared/{hx-nav-item-xqRPOCWX.js → hx-nav-item-CODtUlew.js} +13 -9
  219. package/dist/shared/{hx-nav-item-xqRPOCWX.js.map → hx-nav-item-CODtUlew.js.map} +1 -1
  220. package/dist/shared/hx-overflow-menu-BQ4fiMYu.js +492 -0
  221. package/dist/shared/hx-overflow-menu-BQ4fiMYu.js.map +1 -0
  222. package/dist/shared/hx-phi-field-C19oxlrr.js.map +1 -1
  223. package/dist/shared/{hx-popover-B-FP3-wW.js → hx-popover-B9W8-tC0.js} +123 -66
  224. package/dist/shared/hx-popover-B9W8-tC0.js.map +1 -0
  225. package/dist/shared/hx-progress-bar-C8nDMdYa.js +290 -0
  226. package/dist/shared/hx-progress-bar-C8nDMdYa.js.map +1 -0
  227. package/dist/shared/hx-radio-Z1lV1zTO.js +822 -0
  228. package/dist/shared/hx-radio-Z1lV1zTO.js.map +1 -0
  229. package/dist/shared/hx-select-D18CnJ0e.js +1089 -0
  230. package/dist/shared/hx-select-D18CnJ0e.js.map +1 -0
  231. package/dist/shared/{hx-spinner-DL5AYr16.js → hx-spinner-BB0h2hKZ.js} +62 -34
  232. package/dist/shared/hx-spinner-BB0h2hKZ.js.map +1 -0
  233. package/dist/shared/{hx-split-button-Djnc5Aeg.js → hx-split-button-BoABoEm5.js} +153 -82
  234. package/dist/shared/hx-split-button-BoABoEm5.js.map +1 -0
  235. package/dist/shared/{hx-stat-WOcNV1Ry.js → hx-stat-Dtf9lz-O.js} +77 -47
  236. package/dist/shared/hx-stat-Dtf9lz-O.js.map +1 -0
  237. package/dist/shared/hx-switch-B6kr-EwE.js +540 -0
  238. package/dist/shared/hx-switch-B6kr-EwE.js.map +1 -0
  239. package/dist/shared/{hx-tab-panel-DspCrKqo.js → hx-tab-panel-BQtBXKLD.js} +255 -131
  240. package/dist/shared/hx-tab-panel-BQtBXKLD.js.map +1 -0
  241. package/dist/shared/{hx-tag-CNSmdyaK.js → hx-tag-C5aCUpVi.js} +63 -40
  242. package/dist/shared/hx-tag-C5aCUpVi.js.map +1 -0
  243. package/dist/shared/{hx-td-DnnEMIuA.js → hx-td-BGkFOJEK.js} +267 -123
  244. package/dist/shared/hx-td-BGkFOJEK.js.map +1 -0
  245. package/dist/shared/hx-theme-BsefFWTO.js.map +1 -1
  246. package/dist/shared/hx-time-picker-iwCD7rzW.js +1038 -0
  247. package/dist/shared/hx-time-picker-iwCD7rzW.js.map +1 -0
  248. package/dist/shared/{hx-toggle-button-iLiYrMbD.js → hx-toggle-button-BQ81EDkl.js} +226 -65
  249. package/dist/shared/hx-toggle-button-BQ81EDkl.js.map +1 -0
  250. package/dist/shared/{hx-tooltip-nYOv9OLu.js → hx-tooltip-DVqtKPCD.js} +68 -46
  251. package/dist/shared/hx-tooltip-DVqtKPCD.js.map +1 -0
  252. package/dist/shared/hx-tree-item-CHrUhuZL.js +925 -0
  253. package/dist/shared/hx-tree-item-CHrUhuZL.js.map +1 -0
  254. package/dist/shared/menu-roving-DmMnzJhn.js +14 -0
  255. package/dist/shared/menu-roving-DmMnzJhn.js.map +1 -0
  256. package/dist/shared/menu-tree-BNM0SYYq.js +42 -0
  257. package/dist/shared/menu-tree-BNM0SYYq.js.map +1 -0
  258. package/dist/shared/{toast-factory-YSznocIV.js → toast-factory-CL2BzdSB.js} +128 -77
  259. package/dist/shared/toast-factory-CL2BzdSB.js.map +1 -0
  260. package/dist/utils/aria-flatten.d.ts +56 -0
  261. package/dist/utils/aria-flatten.d.ts.map +1 -0
  262. package/dist/utils/aria-idref.d.ts +127 -0
  263. package/dist/utils/aria-idref.d.ts.map +1 -0
  264. package/dist/utils/menu-label.d.ts +18 -0
  265. package/dist/utils/menu-label.d.ts.map +1 -0
  266. package/dist/utils/menu-roving.d.ts +28 -0
  267. package/dist/utils/menu-roving.d.ts.map +1 -0
  268. package/dist/utils/menu-tree.d.ts +41 -0
  269. package/dist/utils/menu-tree.d.ts.map +1 -0
  270. package/dist/utils/tree-walk.d.ts +53 -0
  271. package/dist/utils/tree-walk.d.ts.map +1 -0
  272. package/figma-inventory.json +132 -20
  273. package/package.json +1 -1
  274. package/dist/shared/hx-alert-CLn7CstP.js.map +0 -1
  275. package/dist/shared/hx-badge-CQXgOXJM.js.map +0 -1
  276. package/dist/shared/hx-banner-D3DzpfcP.js.map +0 -1
  277. package/dist/shared/hx-checkbox-D7xma9YH.js +0 -524
  278. package/dist/shared/hx-checkbox-D7xma9YH.js.map +0 -1
  279. package/dist/shared/hx-checkbox-group-C9n315Ju.js +0 -323
  280. package/dist/shared/hx-checkbox-group-C9n315Ju.js.map +0 -1
  281. package/dist/shared/hx-color-picker-uRc865FJ.js +0 -882
  282. package/dist/shared/hx-color-picker-uRc865FJ.js.map +0 -1
  283. package/dist/shared/hx-combobox-DDzqNKEW.js +0 -924
  284. package/dist/shared/hx-combobox-DDzqNKEW.js.map +0 -1
  285. package/dist/shared/hx-date-picker-2iRG1p74.js.map +0 -1
  286. package/dist/shared/hx-dialog-DRN_1-Y-.js +0 -514
  287. package/dist/shared/hx-dialog-DRN_1-Y-.js.map +0 -1
  288. package/dist/shared/hx-drawer-Y1Ui2IWJ.js.map +0 -1
  289. package/dist/shared/hx-dropdown-LyaRc8Rf.js +0 -263
  290. package/dist/shared/hx-dropdown-LyaRc8Rf.js.map +0 -1
  291. package/dist/shared/hx-field-B3Qo8OLS.js.map +0 -1
  292. package/dist/shared/hx-icon-button-CGNdQSFM.js.map +0 -1
  293. package/dist/shared/hx-link-C-O6vq0Q.js.map +0 -1
  294. package/dist/shared/hx-list-MyEhh8c7.js.map +0 -1
  295. package/dist/shared/hx-menu-divider-C2omnPtj.js +0 -558
  296. package/dist/shared/hx-menu-divider-C2omnPtj.js.map +0 -1
  297. package/dist/shared/hx-meter-BPscsw5t.js.map +0 -1
  298. package/dist/shared/hx-overflow-menu-DCLsdIBy.js +0 -374
  299. package/dist/shared/hx-overflow-menu-DCLsdIBy.js.map +0 -1
  300. package/dist/shared/hx-popover-B-FP3-wW.js.map +0 -1
  301. package/dist/shared/hx-progress-bar-Bn3JEPUf.js +0 -258
  302. package/dist/shared/hx-progress-bar-Bn3JEPUf.js.map +0 -1
  303. package/dist/shared/hx-radio-CJvNU2yP.js +0 -621
  304. package/dist/shared/hx-radio-CJvNU2yP.js.map +0 -1
  305. package/dist/shared/hx-select-C8fEHQhC.js +0 -807
  306. package/dist/shared/hx-select-C8fEHQhC.js.map +0 -1
  307. package/dist/shared/hx-spinner-DL5AYr16.js.map +0 -1
  308. package/dist/shared/hx-split-button-Djnc5Aeg.js.map +0 -1
  309. package/dist/shared/hx-stat-WOcNV1Ry.js.map +0 -1
  310. package/dist/shared/hx-switch-BrZFaRue.js +0 -420
  311. package/dist/shared/hx-switch-BrZFaRue.js.map +0 -1
  312. package/dist/shared/hx-tab-panel-DspCrKqo.js.map +0 -1
  313. package/dist/shared/hx-tag-CNSmdyaK.js.map +0 -1
  314. package/dist/shared/hx-td-DnnEMIuA.js.map +0 -1
  315. package/dist/shared/hx-time-picker-BoEIZwzv.js +0 -688
  316. package/dist/shared/hx-time-picker-BoEIZwzv.js.map +0 -1
  317. package/dist/shared/hx-toggle-button-iLiYrMbD.js.map +0 -1
  318. package/dist/shared/hx-tooltip-nYOv9OLu.js.map +0 -1
  319. package/dist/shared/hx-tree-item-C2CiWuDE.js +0 -703
  320. package/dist/shared/hx-tree-item-C2CiWuDE.js.map +0 -1
  321. package/dist/shared/toast-factory-YSznocIV.js.map +0 -1
@@ -127,8 +127,118 @@ export declare class HelixToggleButton extends HelixElement {
127
127
  checkValidity(): boolean;
128
128
  /** Reports validity and shows the browser's constraint validation UI. */
129
129
  reportValidity(): boolean;
130
+ /**
131
+ * Handle for the shared IDREF observer. See `installAriaIdrefMirror()`.
132
+ * @internal
133
+ */
134
+ private _ariaMirror;
135
+ /**
136
+ * Default-slot text content captured for use as the host's accessible name
137
+ * when no explicit `label`/`aria-label`/`aria-labelledby` is supplied.
138
+ * Codex round-1 finding #9.
139
+ * @internal
140
+ */
141
+ private _slotLabelText;
142
+ /** No-IDL-ref fallback tokens applied to the inner button. @internal */
143
+ private _fallbackAriaLabelledBy;
144
+ /** @internal */
145
+ private _fallbackAriaDescribedBy;
146
+ /** @internal */
147
+ private _fallbackAriaLabel;
148
+ /**
149
+ * Whether the platform supports IDL element references on `ElementInternals`.
150
+ * Drives the render-time branch between the modern path (host is the
151
+ * announced surface, inner button is `aria-hidden + tabindex=-1`) and the
152
+ * fallback path (inner button is the announced surface, host is demoted).
153
+ * Codex round-2 finding #2.
154
+ * @internal
155
+ */
156
+ private _supportsIdrefRefs;
157
+ /**
158
+ * Tracks whether the host's `tabindex` is managed by the component itself
159
+ * (vs. set explicitly by a consumer). Codex round-14 P2: a consumer-supplied
160
+ * `tabindex` (e.g. roving-tabindex toolbar pattern with `tabindex="-1"`)
161
+ * must survive disabled flips and re-renders. Only re-assert tabindex in
162
+ * `updated()` when the component originally claimed it.
163
+ * @internal
164
+ */
165
+ private _internalTabindexManaged;
166
+ connectedCallback(): void;
167
+ disconnectedCallback(): void;
168
+ /**
169
+ * Host-level keydown handler. Active only on the modern path; on the
170
+ * no-IDL-ref fallback the inner `<button>` owns native Space/Enter
171
+ * activation. Codex round-2 finding #2.
172
+ * @internal
173
+ */
174
+ private _handleHostKeyDown;
175
+ /**
176
+ * Host-level click router. The inner `<button>` is `aria-hidden + tabindex=-1`
177
+ * on modern browsers but still receives clicks via mouse activation; toggling
178
+ * is handled by the inner `_handleClick`. Host-level clicks (composed path
179
+ * origin === host) only come from AT activation or programmatic triggers,
180
+ * so we route those to the toggle pipeline.
181
+ *
182
+ * Codex round-2 finding #2: on no-IDL-ref browsers the inner button is the
183
+ * announced surface so this host-level routing is a no-op — AT activation
184
+ * lands on the inner button directly.
185
+ * @internal
186
+ */
187
+ private _handleHostClickRouted;
188
+ /** @internal */
189
+ private _invokeToggle;
190
+ /**
191
+ * Moves focus to the announced toggle-button surface. Codex round-1 finding
192
+ * `#1` made the host the canonical focus target on modern engines so AT
193
+ * announces a single widget. Round-7 finding `#9` extends that contract to
194
+ * the no-IDL-ref fallback: when the host is demoted (`tabindex=-1`,
195
+ * role/state cleared on `internals`) the inner `<button>` owns the announced
196
+ * semantics and tab order, so programmatic `focus()` must redirect there —
197
+ * otherwise scripted focus and error recovery land on the demoted host on
198
+ * unsupported engines.
199
+ */
200
+ focus(options?: FocusOptions): void;
130
201
  firstUpdated(changedProperties: PropertyValues<this>): void;
131
202
  updated(changedProperties: PropertyValues<this>): void;
203
+ /**
204
+ * Reads the default slot's flattened text content into `_slotLabelText`.
205
+ * Called from `firstUpdated()` and `slotchange` so host-canonical semantics
206
+ * pick up slotted label text. Codex round-1 finding #9.
207
+ * @internal
208
+ */
209
+ private _captureSlotLabelText;
210
+ /**
211
+ * Watches assigned default-slot nodes for in-place text mutations so the
212
+ * cached `_slotLabelText` (and thus `internals.ariaLabel`) stays in sync
213
+ * when a framework rewrites textContent of an already-assigned node without
214
+ * replacing it. `slotchange` does NOT fire for those mutations, so a
215
+ * separate observer is required. Codex round-13 P2.
216
+ * @internal
217
+ */
218
+ private _slotTextObserver;
219
+ /**
220
+ * (Re-)installs the mutation observer over the current set of assigned
221
+ * default-slot nodes. Disconnects any prior observer first so detached
222
+ * nodes stop firing into a torn-down host.
223
+ * @internal
224
+ */
225
+ private _installSlotTextObserver;
226
+ /** @internal */
227
+ private _handleDefaultSlotChange;
228
+ /**
229
+ * Mirrors toggle-button semantics onto the host via ElementInternals so that
230
+ * consumer-supplied `aria-label`, `aria-labelledby`, and `aria-describedby`
231
+ * on `<hx-toggle-button>` reach the announced control. The codex aria-group-2
232
+ * finding identified that the inner shadow `<button>` was the only carrier of
233
+ * the toggle role + pressed state, leaving host-level IDREF tokens stranded
234
+ * across the shadow boundary.
235
+ *
236
+ * The shadow `<button>` keeps `aria-pressed`/`aria-label` mirrored for
237
+ * backwards-compat with existing tests and for browsers without IDL element
238
+ * references; the host is the canonical announced surface.
239
+ * @internal
240
+ */
241
+ private _syncHostAriaSemantics;
132
242
  protected _onFormReset(): void;
133
243
  protected _onFormStateRestore(state: string | File | FormData | null, _mode: 'restore' | 'autocomplete'): void;
134
244
  protected _onFormDisabled(disabled: boolean): void;
@@ -1 +1 @@
1
- {"version":3,"file":"hx-toggle-button.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toggle-button/hx-toggle-button.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,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,qBACa,iBAAkB,SAAQ,YAAY;IACjD,OAAgB,MAAM,4BAAsD;IAI5E,gBAAgB;IAChB,OAAgB,cAAc,UAAQ;IAEtC,gBAAgB;IACW,OAAO,CAAC,YAAY,CAA0B;IAIzE;;;;OAIG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAe;IAElF;;;OAGG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;OAGG;IAEH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAEtC;;;;OAIG;IAEH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAEtC;;;OAGG;IAEH,QAAQ,UAAS;IAIjB,wCAAwC;IACxC,IAAa,QAAQ,IAAI,aAAa,CAErC;IAED,8CAA8C;IAC9C,IAAa,iBAAiB,IAAI,MAAM,CAEvC;IAED,2DAA2D;IAC3D,aAAa,IAAI,OAAO;IAIxB,yEAAyE;IACzE,cAAc,IAAI,OAAO;IAMhB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAgB3D,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAY5C,YAAY,IAAI,IAAI;cAIpB,mBAAmB,CACpC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,EACtC,KAAK,EAAE,SAAS,GAAG,cAAc,GAChC,IAAI;cAIY,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAM3D,gBAAgB;IAChB,OAAO,CAAC,cAAc;IAUtB,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAcvB,gBAAgB;IAChB,OAAO,CAAC,YAAY;IAyBpB,gBAAgB;IAChB,OAAO,CAAC,YAAY;IAgBX,MAAM;CAsBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,iBAAiB,CAAC;KACvC;CACF"}
1
+ {"version":3,"file":"hx-toggle-button.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toggle-button/hx-toggle-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,4CAA4C,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUnD,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,qBACa,iBAAkB,SAAQ,YAAY;IACjD,OAAgB,MAAM,4BAAsD;IAI5E,gBAAgB;IAChB,OAAgB,cAAc,UAAQ;IAEtC,gBAAgB;IACW,OAAO,CAAC,YAAY,CAA0B;IAIzE;;;;OAIG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAe;IAElF;;;OAGG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;OAGG;IAEH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAEtC;;;;OAIG;IAEH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAEtC;;;OAGG;IAEH,QAAQ,UAAS;IAIjB,wCAAwC;IACxC,IAAa,QAAQ,IAAI,aAAa,CAErC;IAED,8CAA8C;IAC9C,IAAa,iBAAiB,IAAI,MAAM,CAEvC;IAED,2DAA2D;IAC3D,aAAa,IAAI,OAAO;IAIxB,yEAAyE;IACzE,cAAc,IAAI,OAAO;IAIzB;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAsC;IAEzD;;;;;OAKG;IACM,OAAO,CAAC,cAAc,CAAc;IAE7C,wEAAwE;IAC/D,OAAO,CAAC,uBAAuB,CAAuB;IAC/D,gBAAgB;IACP,OAAO,CAAC,wBAAwB,CAAuB;IAChE,gBAAgB;IACP,OAAO,CAAC,kBAAkB,CAAuB;IAE1D;;;;;;;OAOG;IACM,OAAO,CAAC,kBAAkB,CAAQ;IAE3C;;;;;;;OAOG;IACH,OAAO,CAAC,wBAAwB,CAAS;IAIhC,iBAAiB,IAAI,IAAI;IAkCzB,oBAAoB,IAAI,IAAI;IAarC;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAQxB;IAEF;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,sBAAsB,CAQ5B;IAEF,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAYrB;;;;;;;;;OASG;IACM,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAQnC,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAwB3D,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA+B/D;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB,CAAiC;IAE1D;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAqBhC,gBAAgB;IAChB,OAAO,CAAC,wBAAwB;IAQhC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,sBAAsB;cAgFX,YAAY,IAAI,IAAI;cAIpB,mBAAmB,CACpC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,EACtC,KAAK,EAAE,SAAS,GAAG,cAAc,GAChC,IAAI;cAIY,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAM3D,gBAAgB;IAChB,OAAO,CAAC,cAAc;IAUtB,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAyBvB,gBAAgB;IAChB,OAAO,CAAC,YAAY;IAkCpB,gBAAgB;IAChB,OAAO,CAAC,YAAY;IAgBX,MAAM;CAyChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,kBAAkB,EAAE,iBAAiB,CAAC;KACvC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"hx-toggle-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toggle-button/hx-toggle-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,yBAiQnC,CAAC"}
1
+ {"version":3,"file":"hx-toggle-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toggle-button/hx-toggle-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,yBAkRnC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as t } from "../../shared/hx-toggle-button-iLiYrMbD.js";
1
+ import { H as t } from "../../shared/hx-toggle-button-BQ81EDkl.js";
2
2
  export {
3
3
  t as HelixToggleButton
4
4
  };
@@ -2,6 +2,37 @@ import { HelixElement } from '../../base/index.js';
2
2
  /**
3
3
  * A tooltip that displays contextual help text on hover or focus.
4
4
  *
5
+ * ## Architecture Note: Light-DOM Description Shim (group-4 round-1)
6
+ *
7
+ * `aria-describedby` IDREFs cannot resolve across the Shadow DOM boundary —
8
+ * the trigger lives in the consumer's light DOM and references a tooltip
9
+ * whose body is in this component's shadow root. The tooltip text must
10
+ * therefore be exposed in DOCUMENT scope.
11
+ *
12
+ * The shim is a single visually-hidden `<span>` appended to `document.body`
13
+ * with the `_tooltipId` as its `id`. The trigger's `aria-describedby` points
14
+ * at this span. The text content is mirrored from the slotted `content`
15
+ * slot on every relevant signal:
16
+ *
17
+ * 1. `firstUpdated` (initial wiring)
18
+ * 2. `slotchange` on the default slot AND the `content` slot (the slotted
19
+ * element list changes)
20
+ * 3. **Text-content mutations on the assigned `content` slot elements**
21
+ * (round-23 P2 pattern). Without this observer a framework that
22
+ * rewrites the slotted `<span slot="content">` `textContent` IN PLACE
23
+ * (Vue / React keyed text rerender) would leave the shim stale.
24
+ *
25
+ * Cleanup: `disconnectedCallback` removes the shim from `document.body`,
26
+ * disconnects the slot-text observer, and clears the timers. SSR is
27
+ * sidestepped by guarding `document` access — the shim is created lazily
28
+ * the first time `_setupTriggerAria()` runs in a browser environment.
29
+ *
30
+ * `role="tooltip"` is the correct APG role and is NEVER promoted to
31
+ * `role="dialog"` — APG explicitly forbids tooltips from holding focus and
32
+ * the tooltip body is not a focus target. No host-canonical `_internals`
33
+ * work is owed: the trigger is the announced surface, and it correctly
34
+ * references the tooltip via `aria-describedby`.
35
+ *
5
36
  * @summary Contextual help text and abbreviations with smart positioning.
6
37
  *
7
38
  * @tag hx-tooltip
@@ -97,11 +128,32 @@ export declare class HelixTooltip extends HelixElement {
97
128
  * @internal
98
129
  */
99
130
  private _lightDomDescription;
131
+ /**
132
+ * Watches in-place text mutations on the elements assigned to the
133
+ * `<slot name="content">`. Without this observer, a framework that
134
+ * rewrites the slotted `<span slot="content">` `textContent` in place
135
+ * would leave the document-scope shim stale — the `slotchange` event
136
+ * does NOT fire on descendant text mutations.
137
+ *
138
+ * The observer is reinstalled on every `_setupTriggerAria()` call against
139
+ * the deduped current set of assigned elements; it is fully torn down in
140
+ * `disconnectedCallback` to prevent leaks on SSR teardown.
141
+ * @internal
142
+ */
143
+ private _contentSlotTextObserver;
100
144
  connectedCallback(): void;
101
145
  disconnectedCallback(): void;
102
146
  firstUpdated(): void;
103
147
  /** @internal */
104
148
  private _setupTriggerAria;
149
+ /**
150
+ * (Re-)installs the slotted-content text observer over the deduped union
151
+ * of assigned `content` slot elements. Disconnects any previous observer
152
+ * before re-attaching so observer count is bounded by component lifetime,
153
+ * not by `slotchange` event count.
154
+ * @internal
155
+ */
156
+ private _installContentSlotTextObserver;
105
157
  /** @internal */
106
158
  private _scheduleShow;
107
159
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"hx-tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tooltip/hx-tooltip.ts"],"names":[],"mappings":"AACA,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AAMpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AAEH,qBACa,YAAa,SAAQ,YAAY;IAC5C,OAAgB,MAAM,4BAA6C;IAEnE;;;;;OAKG;IAEH,SAAS,EACL,KAAK,GACL,WAAW,GACX,SAAS,GACT,OAAO,GACP,aAAa,GACb,WAAW,GACX,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,UAAU,CAAS;IAEvB;;;OAGG;IAEH,SAAS,SAAO;IAEhB;;;OAGG;IAEH,SAAS,SAAO;IAEhB,gBAAgB;IACP,OAAO,CAAC,QAAQ,CAAS;IAElC,gBAAgB;IAChB,OAAO,CAAC,UAAU,CAA8C;IAChE,gBAAgB;IAChB,OAAO,CAAC,UAAU,CAA8C;IAEhE,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAE/C,gBAAgB;IACW,OAAO,CAAC,YAAY,CAA0B;IACzE,gBAAgB;IACe,OAAO,CAAC,YAAY,CAA0B;IAC7E,gBAAgB;IACW,OAAO,CAAC,eAAe,CAAsB;IACxE,gBAAgB;IACW,OAAO,CAAC,UAAU,CAAsB;IACnE,gBAAgB;IACS,OAAO,CAAC,QAAQ,CAAsB;IAE/D;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB,CAAgC;IAInD,iBAAiB,IAAI,IAAI;IAUzB,oBAAoB,IAAI,IAAI;IAQ5B,YAAY,IAAI,IAAI;IAM7B,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAuCzB,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAOrB,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAOrB,gBAAgB;YACF,KAAK;IAMnB,gBAAgB;IAChB,OAAO,CAAC,KAAK;IAIb,gBAAgB;IAChB,OAAO,CAAC,YAAY;IAapB,gBAAgB;YACF,eAAe;IA0C7B,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAMpB;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAavB,MAAM;CAyBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,YAAY,CAAC;KAC5B;CACF"}
1
+ {"version":3,"file":"hx-tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tooltip/hx-tooltip.ts"],"names":[],"mappings":"AACA,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;AAMpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmFG;AAEH,qBACa,YAAa,SAAQ,YAAY;IAC5C,OAAgB,MAAM,4BAA6C;IAEnE;;;;;OAKG;IAEH,SAAS,EACL,KAAK,GACL,WAAW,GACX,SAAS,GACT,OAAO,GACP,aAAa,GACb,WAAW,GACX,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,UAAU,CAAS;IAEvB;;;OAGG;IAEH,SAAS,SAAO;IAEhB;;;OAGG;IAEH,SAAS,SAAO;IAEhB,gBAAgB;IACP,OAAO,CAAC,QAAQ,CAAS;IAElC,gBAAgB;IAChB,OAAO,CAAC,UAAU,CAA8C;IAChE,gBAAgB;IAChB,OAAO,CAAC,UAAU,CAA8C;IAEhE,gBAAgB;IAChB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAE/C,gBAAgB;IACW,OAAO,CAAC,YAAY,CAA0B;IACzE,gBAAgB;IACe,OAAO,CAAC,YAAY,CAA0B;IAC7E,gBAAgB;IACW,OAAO,CAAC,eAAe,CAAsB;IACxE,gBAAgB;IACW,OAAO,CAAC,UAAU,CAAsB;IACnE,gBAAgB;IACS,OAAO,CAAC,QAAQ,CAAsB;IAE/D;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB,CAAgC;IAE5D;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,wBAAwB,CAAiC;IAIxD,iBAAiB,IAAI,IAAI;IAUzB,oBAAoB,IAAI,IAAI;IAa5B,YAAY,IAAI,IAAI;IAM7B,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IA0CzB;;;;;;OAMG;IACH,OAAO,CAAC,+BAA+B;IAsCvC,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAOrB,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAOrB,gBAAgB;YACF,KAAK;IAMnB,gBAAgB;IAChB,OAAO,CAAC,KAAK;IAIb,gBAAgB;IAChB,OAAO,CAAC,YAAY;IAapB,gBAAgB;YACF,eAAe;IA0C7B,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAMpB;IAEF;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAavB,MAAM;CAyBhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,YAAY,CAAC;KAC5B;CACF"}
@@ -1,4 +1,4 @@
1
- import { H as i } from "../../shared/hx-tooltip-nYOv9OLu.js";
1
+ import { H as i } from "../../shared/hx-tooltip-DVqtKPCD.js";
2
2
  export {
3
3
  i as HelixTooltip
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
@@ -1 +1 @@
1
- {"version":3,"file":"hx-tree-item.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tree-view/hx-tree-item.ts"],"names":[],"mappings":"AACA,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,uDAAuD;AACvD,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBACa,aAAc,SAAQ,YAAY;IAC7C,OAAgB,MAAM,4BAA8C;IAIpE;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,QAAQ,UAAS;IAIjB;;;OAGG;IACM,OAAO,CAAC,YAAY,CAAS;IAEtC;;;OAGG;IACM,OAAO,CAAC,aAAa,CAAS;IAEvC;;;OAGG;IACM,OAAO,CAAC,UAAU,CAAM;IAEjC;;;;OAIG;IACM,OAAO,CAAC,MAAM,CAAK;IAC5B;;;OAGG;IACM,OAAO,CAAC,SAAS,CAAK;IAC/B;;;OAGG;IACM,OAAO,CAAC,QAAQ,CAAK;IAC9B;;;OAGG;IACM,OAAO,CAAC,WAAW,CAAS;IAErC,gBAAgB;IACI,OAAO,CAAC,UAAU,CAAsB;IAI5D;;;OAGG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IASnF,iBAAiB,IAAI,IAAI;IAOlC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAMjC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;OAGG;IACH,OAAO,CAAC,eAAe;IAWvB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAgCtB;;;;;OAKG;IACH,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAItC,iDAAiD;IACxC,KAAK,IAAI,IAAI;IAMtB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAmBhB,MAAM;CA0ChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,aAAa,CAAC;KAC/B;CACF;AAED,oGAAoG;AACpG,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"hx-tree-item.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tree-view/hx-tree-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAYnD,uDAAuD;AACvD,MAAM,WAAW,sBAAsB;IACrC,oDAAoD;IACpD,IAAI,EAAE,aAAa,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,qBACa,aAAc,SAAQ,YAAY;IAC7C,OAAgB,MAAM,4BAA8C;IAEpE;;;;;;;;;;OAUG;IACH,MAAM,CAAC,+BAA+B,EAAE,OAAO,GAAG,IAAI,CAAQ;IAI9D;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,QAAQ,UAAS;IAIjB;;;OAGG;IACM,OAAO,CAAC,YAAY,CAAS;IAEtC;;;OAGG;IACM,OAAO,CAAC,aAAa,CAAS;IAEvC;;;OAGG;IACM,OAAO,CAAC,UAAU,CAAM;IAEjC;;;;OAIG;IACM,OAAO,CAAC,MAAM,CAAK;IAC5B;;;OAGG;IACM,OAAO,CAAC,SAAS,CAAK;IAC/B;;;OAGG;IACM,OAAO,CAAC,QAAQ,CAAK;IAC9B;;;OAGG;IACM,OAAO,CAAC,WAAW,CAAS;IAErC,gBAAgB;IACI,OAAO,CAAC,UAAU,CAAsB;IAI5D,gBAAgB;IAChB,OAAO,CAAC,kBAAkB,CAAQ;IAElC,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAAsC;IAEzD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,uBAAuB,CAAM;IAIrC;;;OAGG;IACH,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAiC3B;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IASnF,iBAAiB,IAAI,IAAI;IA0BzB,oBAAoB,IAAI,IAAI;IAQ5B,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAsB/D;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,sBAAsB;IA2E9B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAOjC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,WAAW;IAYnB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAWjB,gBAAgB;IAChB,OAAO,CAAC,YAAY,CAsBlB;IAEF,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAiCpB;IAIF;;;;;;OAMG;IACH,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAKtC;;;;;OAKG;IACM,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI;IAU5C;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAmBhB,MAAM;CA6EhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,aAAa,CAAC;KAC/B;CACF;AAED,oGAAoG;AACpG,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { PropertyValues } from 'lit';
1
2
  import { HelixElement } from '../../base/index.js';
2
3
  import { HelixTreeItem } from './hx-tree-item.js';
3
4
  /** Selection mode for the tree. */
@@ -13,10 +14,20 @@ export interface HxSelectDetail {
13
14
  * A hierarchical tree component for navigating nested data structures.
14
15
  * Used in healthcare applications for org charts, ICD-10 code hierarchies, and department navigation.
15
16
  *
16
- * Implements WAI-ARIA tree view pattern with `role="tree"` on the container
17
- * and `role="treeitem"` on each item. Supports `aria-label` via the `label` property
18
- * for screen reader identification. Full keyboard navigation: Arrow keys for movement,
19
- * Enter/Space for selection, Home/End for first/last item.
17
+ * Group 5c host-canonical: `role="tree"` lives on the **host** via
18
+ * `_internals.role` on the modern path. The host carries the announced
19
+ * surface so AT walks `<hx-tree-view>` (role=tree) slotted
20
+ * `<hx-tree-item>` (role=treeitem on host) directly without two layers of
21
+ * indirection. Consumer-supplied `aria-label` / `aria-labelledby` on the
22
+ * host are resolved via the shared IDREF mirror; cross-shadow naming uses
23
+ * `ariaLabelledByElements` (modern) with a flattened-string fallback
24
+ * (legacy). On the legacy fallback path the inner `[role="tree"]` carries
25
+ * the role + accessible name and the host role is suppressed so AT only
26
+ * sees one tree per logical surface (mirrors `hx-menu` round-8).
27
+ *
28
+ * Full keyboard navigation: Arrow keys for movement, Enter/Space for
29
+ * selection, Home/End for first/last item, ArrowRight/Left for
30
+ * expand/collapse + parent/child traversal, typeahead.
20
31
  *
21
32
  * ## Scale Limits
22
33
  *
@@ -35,7 +46,7 @@ export interface HxSelectDetail {
35
46
  *
36
47
  * @fires {CustomEvent<HxSelectDetail>} hx-select - Dispatched when a tree item is selected or deselected.
37
48
  *
38
- * @csspart tree - The tree container element with role="tree".
49
+ * @csspart tree - The tree container element with role="tree" (legacy fallback path) or the inner shadow surface (modern path; role lives on the host).
39
50
  *
40
51
  * @cssprop [--hx-tree-font-family=var(--hx-font-family-sans)] - Tree font family.
41
52
  * @cssprop [--hx-font-family-sans] - Font family.
@@ -48,8 +59,11 @@ export interface HxSelectDetail {
48
59
  export declare class HelixTreeView extends HelixElement {
49
60
  static styles: import('lit').CSSResult[];
50
61
  /**
51
- * Accessible label for the tree. Applied as `aria-label` on the tree container.
52
- * Provides context to screen readers about the tree's purpose.
62
+ * Accessible label for the tree. Used as a fallback when no
63
+ * consumer-supplied `aria-label` / `aria-labelledby` is present on the
64
+ * host. On the modern host-canonical path this projects onto
65
+ * `internals.ariaLabel`; on the legacy fallback path it appears as
66
+ * `aria-label` on the inner `[role="tree"]` element.
53
67
  * @attr label
54
68
  */
55
69
  label: string;
@@ -66,6 +80,32 @@ export declare class HelixTreeView extends HelixElement {
66
80
  /** Tracks whether the tree has any visible items, to decide the container tabindex. */
67
81
  /** @internal */
68
82
  private _hasVisibleItems;
83
+ /**
84
+ * Test seam (codex push-gate round-1 lift from group 5b): when set to
85
+ * `true` or `false`, overrides the platform `supportsIdrefElementReferences`
86
+ * probe before `connectedCallback` seeds `_supportsIdrefRefs`. Mirrors the
87
+ * hx-menu / hx-menu-item / hx-select seam — required so tests can
88
+ * deterministically exercise the legacy fallback render branch.
89
+ *
90
+ * Production code MUST NOT touch this field. It is `static` so the test
91
+ * stub cleanup is global and obvious.
92
+ * @internal
93
+ */
94
+ static __testSupportsIdrefRefsOverride: boolean | null;
95
+ /** @internal */
96
+ private _supportsIdrefRefs;
97
+ /** @internal */
98
+ private _ariaMirror;
99
+ /**
100
+ * Resolved accessible name for the tree — the single source of truth read
101
+ * by `_syncHostAriaSemantics()` (modern path: writes to
102
+ * `internals.ariaLabel`) and the fallback `render()` branch (legacy path:
103
+ * writes to inner `div[role="tree"]` `aria-label`). AccName 1.2 §4.3.1
104
+ * precedence: consumer host `aria-labelledby` (resolved + flattened) >
105
+ * consumer host `aria-label` > `label` property > literal "Tree".
106
+ * @internal
107
+ */
108
+ private _resolvedAccessibleName;
69
109
  /**
70
110
  * Cached flat list of visible items (depth-first, respects collapsed nodes).
71
111
  * Set to null to invalidate; rebuilt on next access.
@@ -98,8 +138,28 @@ export declare class HelixTreeView extends HelixElement {
98
138
  private _focusItem;
99
139
  /** @internal */
100
140
  private _handleTreeItemSelect;
141
+ /**
142
+ * Codex push-gate round-1 lift (mirrors hx-menu round-7 finding 2):
143
+ * `hx-tree-item-select` bubbles composed through every enclosing
144
+ * `hx-tree-view`. The outer tree would otherwise corrupt `_currentIndex`
145
+ * to `-1` (the bubbled item is not in its top-level list) and re-emit a
146
+ * duplicate `hx-select`. Only act when THIS tree is the closest
147
+ * enclosing tree of the dispatching item.
148
+ * @internal
149
+ */
150
+ private _handleItemSelectHost;
101
151
  /** @internal */
102
152
  private _handleKeyDown;
153
+ /**
154
+ * Codex push-gate round-1 lift (mirrors hx-menu round-7 finding 1):
155
+ * keydown bound on the host receives events bubbled out of nested
156
+ * tree-views. Without this guard the outer tree would run `_focusItem`
157
+ * over its own top-level items and steal focus back out of the inner
158
+ * tree. Only act when THIS tree is the closest enclosing tree of the
159
+ * keydown target.
160
+ * @internal
161
+ */
162
+ private _handleHostKeyDown;
103
163
  /**
104
164
  * Finds the next visible item (starting after `currentIndex`, wrapping around) whose
105
165
  * label text begins with the given lowercase character. Returns -1 if no match.
@@ -124,7 +184,27 @@ export declare class HelixTreeView extends HelixElement {
124
184
  */
125
185
  /** @internal */
126
186
  private _handleSlotChange;
187
+ connectedCallback(): void;
188
+ disconnectedCallback(): void;
189
+ updated(changedProperties: PropertyValues<this>): void;
127
190
  firstUpdated(): void;
191
+ /**
192
+ * Mirror tree semantics onto the host via ElementInternals so consumer-
193
+ * supplied `aria-label`, `aria-labelledby`, and the `label` property all
194
+ * reach the announced control. Falls back to a flattened-string label on
195
+ * engines that do not implement `ariaLabelledByElements`.
196
+ *
197
+ * Codex push-gate round-1 lift (mirrors hx-menu round-8 finding 1): on
198
+ * the legacy fallback path the inner `<div role="tree" aria-label="…">`
199
+ * is the announced surface. If we ALSO write `internals.role = 'tree'`
200
+ * onto the host, AT sees TWO trees for one logical surface — the
201
+ * duplicate-surface problem host-canonical migration is meant to
202
+ * eliminate. Suppress host role + label writes on the fallback path; the
203
+ * inner element is the canonical announced surface there. Modern path
204
+ * keeps the host as the canonical surface and clears the inner role.
205
+ * @internal
206
+ */
207
+ private _syncHostAriaSemantics;
128
208
  render(): import('lit').TemplateResult<1>;
129
209
  }
130
210
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"hx-tree-view.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tree-view/hx-tree-view.ts"],"names":[],"mappings":"AACA,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAA0B,MAAM,mBAAmB,CAAC;AAG/E,mCAAmC;AACnC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE3D,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,IAAI,EAAE,aAAa,CAAC;IACpB,wCAAwC;IACxC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBACa,aAAc,SAAQ,YAAY;IAC7C,OAAgB,MAAM,4BAA8C;IAIpE;;;;OAIG;IAEH,KAAK,SAAM;IAEX;;;;;;OAMG;IAEH,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAU;IAInD,gBAAgB;IACP,OAAO,CAAC,aAAa,CAAK;IAEnC,uFAAuF;IACvF,gBAAgB;IACP,OAAO,CAAC,gBAAgB,CAAS;IAI1C;;;;OAIG;IACH,OAAO,CAAC,mBAAmB,CAAgC;IAE3D;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAMpC;;;OAGG;IACH,gBAAgB;IAChB,OAAO,CAAC,gBAAgB;IAOxB,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IAgB5B,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAIzB;;;;OAIG;IACH,gBAAgB;IAChB,OAAO,CAAC,qBAAqB;IAM7B,gBAAgB;IAChB,OAAO,CAAC,UAAU;IAWlB,gBAAgB;IAChB,OAAO,CAAC,qBAAqB;IA0B7B,gBAAgB;IAChB,OAAO,CAAC,cAAc;IA0FtB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAa3B,gBAAgB;IAChB,OAAO,CAAC,cAAc;IAYtB;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;IAavC;;;;;;OAMG;IACH,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAehB,YAAY,IAAI,IAAI;IAWpB,MAAM;CA2BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,aAAa,CAAC;KAC/B;CACF;AAED,oGAAoG;AACpG,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"hx-tree-view.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tree-view/hx-tree-view.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,KAAK,EAAE,aAAa,EAA0B,MAAM,mBAAmB,CAAC;AAW/E,mCAAmC;AACnC,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE3D,6CAA6C;AAC7C,MAAM,WAAW,cAAc;IAC7B,qDAAqD;IACrD,IAAI,EAAE,aAAa,CAAC;IACpB,wCAAwC;IACxC,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,qBACa,aAAc,SAAQ,YAAY;IAC7C,OAAgB,MAAM,4BAA8C;IAIpE;;;;;;;OAOG;IAEH,KAAK,SAAM;IAEX;;;;;;OAMG;IAEH,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAU;IAInD,gBAAgB;IACP,OAAO,CAAC,aAAa,CAAK;IAEnC,uFAAuF;IACvF,gBAAgB;IACP,OAAO,CAAC,gBAAgB,CAAS;IAI1C;;;;;;;;;;OAUG;IACH,MAAM,CAAC,+BAA+B,EAAE,OAAO,GAAG,IAAI,CAAQ;IAE9D,gBAAgB;IAChB,OAAO,CAAC,kBAAkB,CAAQ;IAElC,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAAsC;IAEzD;;;;;;;;OAQG;IACH,OAAO,CAAC,uBAAuB,CAAM;IAIrC;;;;OAIG;IACH,OAAO,CAAC,mBAAmB,CAAgC;IAE3D;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAMpC;;;OAGG;IACH,gBAAgB;IAChB,OAAO,CAAC,gBAAgB;IAOxB,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IAgB5B,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAIzB;;;;OAIG;IACH,gBAAgB;IAChB,OAAO,CAAC,qBAAqB;IAM7B,gBAAgB;IAChB,OAAO,CAAC,UAAU;IAWlB,gBAAgB;IAChB,OAAO,CAAC,qBAAqB;IA0B7B;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB,CAQ3B;IAEF,gBAAgB;IAChB,OAAO,CAAC,cAAc;IA4FtB;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB,CAMxB;IAEF;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAa3B,gBAAgB;IAChB,OAAO,CAAC,cAAc;IAYtB;;;;;OAKG;IACH,OAAO,CAAC,+BAA+B;IAavC;;;;;;OAMG;IACH,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAehB,iBAAiB,IAAI,IAAI;IAyBzB,oBAAoB,IAAI,IAAI;IAQ5B,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAiBtD,YAAY,IAAI,IAAI;IAa7B;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,sBAAsB;IAqErB,MAAM;CA0ChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,aAAa,CAAC;KAC/B;CACF;AAED,oGAAoG;AACpG,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
- import { H as a, a as i } from "../../shared/hx-tree-item-C2CiWuDE.js";
1
+ import { H as a, a as i } from "../../shared/hx-tree-item-CHrUhuZL.js";
2
2
  export {
3
3
  a as HelixTreeItem,
4
4
  i as HelixTreeView