@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
@@ -1,703 +0,0 @@
1
- import { css as b, nothing as p, html as x } from "lit";
2
- import { property as m, state as c, customElement as g, query as w } from "lit/decorators.js";
3
- import { a as _ } from "./forced-colors-CTEDFRGa.js";
4
- import { H as y } from "./helix-element-BNEYeiys.js";
5
- import { classMap as I } from "lit/directives/class-map.js";
6
- const C = b`
7
- :host {
8
- display: block;
9
- contain: layout style;
10
- font-family: var(--hx-tree-font-family, var(--hx-font-family-sans, sans-serif));
11
- }
12
-
13
- * {
14
- box-sizing: border-box;
15
- }
16
-
17
- .tree {
18
- display: block;
19
- outline: none;
20
- }
21
-
22
- .tree:focus-visible {
23
- outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #0f7078);
24
- outline-offset: var(--hx-focus-ring-offset, 2px);
25
- border-radius: var(--hx-border-radius-sm, 0.25rem);
26
- }
27
-
28
- /* ─── High Contrast Mode (forced-colors) ─── */
29
-
30
- @media (forced-colors: active) {
31
- .tree:focus-visible {
32
- outline: 3px solid Highlight;
33
- outline-offset: 2px;
34
- }
35
- }
36
- `;
37
- var k = Object.defineProperty, S = Object.getOwnPropertyDescriptor, f = (e, t, i, s) => {
38
- for (var r = s > 1 ? void 0 : s ? S(t, i) : t, n = e.length - 1, o; n >= 0; n--)
39
- (o = e[n]) && (r = (s ? o(t, i, r) : o(r)) || r);
40
- return s && r && k(t, i, r), r;
41
- };
42
- let d = class extends y {
43
- constructor() {
44
- super(...arguments), this.label = "", this.selection = "none", this._currentIndex = 0, this._hasVisibleItems = !1, this._cachedVisibleItems = null;
45
- }
46
- /**
47
- * Invalidate the visible-items cache. Call after any expand/collapse or structural change.
48
- * @internal
49
- */
50
- _invalidateVisibleItemsCache() {
51
- this._cachedVisibleItems = null;
52
- }
53
- // ─── Internal Helpers ───
54
- /**
55
- * Returns a flat ordered list of all visible (not inside a collapsed item) hx-tree-items
56
- * in depth-first order. Result is cached; invalidated on expand/collapse/slotchange.
57
- */
58
- /** @internal */
59
- _getVisibleItems() {
60
- return this._cachedVisibleItems || (this._cachedVisibleItems = this._collectVisibleItems(this)), this._cachedVisibleItems;
61
- }
62
- /** @internal */
63
- _collectVisibleItems(e) {
64
- const t = [];
65
- for (const i of Array.from(e.children))
66
- if (i.tagName.toLowerCase() === "hx-tree-item") {
67
- const s = i;
68
- t.push(s), s.expanded && t.push(...this._collectVisibleItems(s));
69
- } else
70
- t.push(...this._collectVisibleItems(i));
71
- return t;
72
- }
73
- /** @internal */
74
- _getSelectedItems() {
75
- return Array.from(this.querySelectorAll("hx-tree-item[selected]"));
76
- }
77
- /**
78
- * Updates the roving tabindex across all visible items so that only the
79
- * item at `activeIndex` has `tabindex="0"`. All others receive `tabindex="-1"`.
80
- * This is called whenever the active item changes (navigation, initial render).
81
- */
82
- /** @internal */
83
- _updateRovingTabindex(e, t) {
84
- e.forEach((i, s) => {
85
- i.setRovingActive(s === t);
86
- });
87
- }
88
- /** @internal */
89
- _focusItem(e) {
90
- var s;
91
- const t = this._getVisibleItems();
92
- if (t.length === 0) return;
93
- const i = Math.max(0, Math.min(e, t.length - 1));
94
- this._currentIndex = i, this._updateRovingTabindex(t, i), (s = t[i]) == null || s.focus();
95
- }
96
- // ─── Event Handling ───
97
- /** @internal */
98
- _handleTreeItemSelect(e) {
99
- if (!(e instanceof CustomEvent)) return;
100
- const i = e.detail.item;
101
- if (this.selection !== "none") {
102
- if (this.selection === "single") {
103
- const s = i.selected;
104
- this._getSelectedItems().forEach((r) => {
105
- r.selected = !1;
106
- }), i.selected = !s;
107
- } else this.selection === "multiple" && (i.selected = !i.selected);
108
- this.dispatchEvent(
109
- new CustomEvent("hx-select", {
110
- bubbles: !0,
111
- composed: !0,
112
- detail: { item: i, selected: i.selected }
113
- })
114
- );
115
- }
116
- }
117
- /** @internal */
118
- _handleKeyDown(e) {
119
- var r, n, o;
120
- const t = this._getVisibleItems();
121
- if (t.length === 0) return;
122
- let i = this._currentIndex;
123
- const s = document.activeElement;
124
- for (let a = 0; a < t.length; a++)
125
- if (t[a] === s || (n = (r = t[a]) == null ? void 0 : r.shadowRoot) != null && n.activeElement) {
126
- i = a;
127
- break;
128
- }
129
- switch (e.key) {
130
- case "ArrowDown": {
131
- e.preventDefault();
132
- const a = i < t.length - 1 ? i + 1 : 0;
133
- this._focusItem(a);
134
- break;
135
- }
136
- case "ArrowUp": {
137
- e.preventDefault();
138
- const a = i > 0 ? i - 1 : t.length - 1;
139
- this._focusItem(a);
140
- break;
141
- }
142
- case "ArrowLeft": {
143
- e.preventDefault();
144
- const a = t[i];
145
- if (!a) break;
146
- if (a.expanded && a.hasChildItems)
147
- a.expanded = !1, this._invalidateVisibleItemsCache();
148
- else {
149
- const u = (o = a.parentElement) == null ? void 0 : o.closest("hx-tree-item");
150
- if (u) {
151
- const v = t.indexOf(u);
152
- v >= 0 && this._focusItem(v);
153
- }
154
- }
155
- break;
156
- }
157
- case "ArrowRight": {
158
- e.preventDefault();
159
- const a = t[i];
160
- if (!a) break;
161
- a.hasChildItems && (a.expanded ? this._focusItem(i + 1) : (a.expanded = !0, this._invalidateVisibleItemsCache()));
162
- break;
163
- }
164
- case "Home": {
165
- e.preventDefault(), this._focusItem(0);
166
- break;
167
- }
168
- case "End": {
169
- e.preventDefault(), this._focusItem(t.length - 1);
170
- break;
171
- }
172
- default: {
173
- if (e.key.length === 1) {
174
- e.preventDefault();
175
- const a = this._findTypeaheadMatch(e.key.toLowerCase(), i);
176
- a !== -1 && this._focusItem(a);
177
- }
178
- break;
179
- }
180
- }
181
- }
182
- /**
183
- * Finds the next visible item (starting after `currentIndex`, wrapping around) whose
184
- * label text begins with the given lowercase character. Returns -1 if no match.
185
- * @internal
186
- */
187
- _findTypeaheadMatch(e, t) {
188
- const i = this._getVisibleItems();
189
- if (i.length === 0) return -1;
190
- for (let s = 1; s <= i.length; s++) {
191
- const r = (t + s) % i.length, n = i[r];
192
- if (n && n.labelText.toLowerCase().startsWith(e))
193
- return r;
194
- }
195
- return -1;
196
- }
197
- /** @internal */
198
- _handleFocusIn(e) {
199
- e.target === e.currentTarget && this._getVisibleItems().length > 0 && this._focusItem(this._currentIndex);
200
- }
201
- /**
202
- * Compute and push ARIA position metadata (level, posInSet, setSize, selectable) to all
203
- * direct hx-tree-item children of a container in a single O(n) pass.
204
- * Each item also recurses for its own children, building the full tree in O(total-items) total.
205
- * @internal
206
- */
207
- _updateAriaMetadataForContainer(e, t) {
208
- const i = this.selection === "single" || this.selection === "multiple", s = Array.from(e.children).filter(
209
- (n) => n.tagName.toLowerCase() === "hx-tree-item"
210
- ), r = s.length;
211
- s.forEach((n, o) => {
212
- n.setAriaMetadata(t, o + 1, r, i), this._updateAriaMetadataForContainer(n, t + 1);
213
- });
214
- }
215
- /**
216
- * Initializes the roving tabindex after items are first slotted in.
217
- * Ensures the active item (index 0 by default) has tabindex="0" from the start,
218
- * so a Tab into the tree lands directly on the first item without a redirect.
219
- * Also updates `_hasVisibleItems` so the container tabindex re-renders correctly.
220
- * Pushes O(n) ARIA metadata to all items to replace the O(n^2) per-item ancestor walk.
221
- */
222
- /** @internal */
223
- _handleSlotChange() {
224
- this._invalidateVisibleItemsCache(), this._updateAriaMetadataForContainer(this, 1);
225
- const e = this._getVisibleItems();
226
- if (this._hasVisibleItems = e.length > 0, e.length === 0) return;
227
- const t = Math.min(this._currentIndex, e.length - 1);
228
- this._currentIndex = t, this._updateRovingTabindex(e, t);
229
- }
230
- // ─── Lifecycle ───
231
- firstUpdated() {
232
- this.label;
233
- }
234
- // ─── Render ───
235
- render() {
236
- const e = this._hasVisibleItems ? "-1" : "0";
237
- return x`
238
- <div
239
- part="tree"
240
- class="tree"
241
- role="tree"
242
- tabindex=${e}
243
- aria-label=${this.label || "Tree"}
244
- aria-multiselectable=${this.selection === "none" ? p : this.selection === "multiple" ? "true" : "false"}
245
- @hx-tree-item-select=${this._handleTreeItemSelect}
246
- @keydown=${this._handleKeyDown}
247
- @focusin=${this._handleFocusIn}
248
- >
249
- <slot @slotchange=${this._handleSlotChange}></slot>
250
- </div>
251
- `;
252
- }
253
- };
254
- d.styles = [C, _];
255
- f([
256
- m({ type: String, reflect: !0 })
257
- ], d.prototype, "label", 2);
258
- f([
259
- m({ type: String, reflect: !0 })
260
- ], d.prototype, "selection", 2);
261
- f([
262
- c()
263
- ], d.prototype, "_currentIndex", 2);
264
- f([
265
- c()
266
- ], d.prototype, "_hasVisibleItems", 2);
267
- d = f([
268
- g("hx-tree-view")
269
- ], d);
270
- const E = b`
271
- :host {
272
- display: block;
273
- contain: layout style;
274
- }
275
-
276
- * {
277
- box-sizing: border-box;
278
- }
279
-
280
- /* ─── Item Container ─── */
281
-
282
- .item {
283
- display: block;
284
- }
285
-
286
- /* ─── Item Row ─── */
287
-
288
- .item-row {
289
- display: flex;
290
- align-items: center;
291
- min-height: var(--hx-touch-target-min, 44px);
292
- gap: var(--hx-tree-item-gap, var(--hx-space-2, 0.5rem));
293
- padding: var(--hx-tree-item-padding-y, var(--hx-space-2, 0.5rem))
294
- var(--hx-tree-item-padding-x, var(--hx-space-2, 0.5rem));
295
- padding-inline-start: calc(
296
- var(--hx-tree-item-padding-x, var(--hx-space-2, 0.5rem)) + var(--_indent-level, 0) *
297
- var(--hx-tree-indent-size, 1.5rem)
298
- );
299
- border-radius: var(--hx-tree-item-border-radius, var(--hx-border-radius-sm, 0.25rem));
300
- cursor: pointer;
301
- outline: none;
302
- color: var(--hx-tree-item-color, var(--hx-color-neutral-900, #0d1825));
303
- font-family: var(--hx-tree-item-font-family, var(--hx-font-family-sans, sans-serif));
304
- font-size: var(--hx-tree-item-font-size, var(--hx-font-size-sm, 0.875rem));
305
- line-height: var(--hx-line-height-normal, 1.5);
306
- transition: background-color var(--hx-transition-fast, 150ms ease);
307
- user-select: none;
308
- }
309
-
310
- .item-row:hover {
311
- background-color: var(--hx-tree-item-hover-bg, var(--hx-color-neutral-100, #ebeee9));
312
- }
313
-
314
- .item-row:focus-visible {
315
- outline: var(--hx-focus-ring-width, 2px) solid
316
- var(--hx-tree-item-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
317
- outline-offset: var(--hx-focus-ring-offset, -2px);
318
- }
319
-
320
- /* ─── Selected State ─── */
321
-
322
- :host([selected]) .item-row {
323
- background-color: var(--hx-tree-item-selected-bg, var(--hx-color-primary-100, #dbf0f0));
324
- color: var(--hx-tree-item-selected-color, var(--hx-color-primary-800, #07494a));
325
- }
326
-
327
- :host([selected]) .item-row:hover {
328
- background-color: var(--hx-tree-item-selected-hover-bg, var(--hx-color-primary-200, #bce1e1));
329
- }
330
-
331
- /* ─── Disabled State ─── */
332
-
333
- :host([disabled]) .item-row {
334
- opacity: var(--hx-opacity-disabled, 0.5);
335
- cursor: not-allowed;
336
- pointer-events: none;
337
- }
338
-
339
- /* ─── Expand Icon ─── */
340
-
341
- .expand-icon {
342
- display: flex;
343
- align-items: center;
344
- justify-content: center;
345
- flex-shrink: 0;
346
- width: var(--hx-space-4, 1rem);
347
- height: var(--hx-space-4, 1rem);
348
- }
349
-
350
- .expand-btn {
351
- display: flex;
352
- align-items: center;
353
- justify-content: center;
354
- width: var(--hx-space-4, 1rem);
355
- height: var(--hx-space-4, 1rem);
356
- padding: 0;
357
- border: none;
358
- background: transparent;
359
- color: var(--hx-tree-item-expand-icon-color, var(--hx-color-neutral-500, #66787b));
360
- cursor: pointer;
361
- border-radius: var(--hx-border-radius-sm, 0.25rem);
362
- transition: transform var(--hx-transition-fast, 150ms ease);
363
- pointer-events: auto;
364
- }
365
-
366
- .expand-btn:hover {
367
- background-color: var(
368
- --hx-tree-item-expand-hover-bg,
369
- var(--hx-overlay-black-6, rgba(0, 0, 0, 0.06))
370
- );
371
- }
372
-
373
- .expand-btn:focus-visible {
374
- outline: var(--hx-focus-ring-width, 2px) solid
375
- var(--hx-tree-item-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
376
- outline-offset: var(--hx-focus-ring-offset, 2px);
377
- }
378
-
379
- .expand-btn svg {
380
- width: var(--hx-space-3, 0.75rem);
381
- height: var(--hx-space-3, 0.75rem);
382
- stroke: currentColor;
383
- fill: none;
384
- stroke-width: 2;
385
- stroke-linecap: round;
386
- stroke-linejoin: round;
387
- transition: transform var(--hx-transition-fast, 150ms ease);
388
- }
389
-
390
- :host([expanded]) .expand-btn svg {
391
- transform: rotate(90deg);
392
- }
393
-
394
- .expand-placeholder {
395
- display: block;
396
- width: var(--hx-space-4, 1rem);
397
- flex-shrink: 0;
398
- }
399
-
400
- /* ─── Icon Slot ─── */
401
-
402
- .item-icon {
403
- display: flex;
404
- align-items: center;
405
- flex-shrink: 0;
406
- color: var(--hx-tree-item-icon-color, var(--hx-color-neutral-500, #66787b));
407
- }
408
-
409
- .item-icon:empty {
410
- display: none;
411
- }
412
-
413
- /* ─── Label ─── */
414
-
415
- .item-label {
416
- flex: 1;
417
- min-width: 0;
418
- overflow: hidden;
419
- text-overflow: ellipsis;
420
- white-space: nowrap;
421
- }
422
-
423
- /* ─── Children (animated) ─── */
424
-
425
- .children {
426
- display: grid;
427
- grid-template-rows: 0fr;
428
- transition: grid-template-rows var(--hx-transition-base, 200ms ease);
429
- --_indent-level: calc(var(--_indent-level, 0) + 1);
430
- }
431
-
432
- .children--expanded {
433
- grid-template-rows: 1fr;
434
- }
435
-
436
- @media (prefers-reduced-motion: reduce) {
437
- .item-row,
438
- .expand-btn,
439
- .expand-btn svg,
440
- .children {
441
- transition: none;
442
- }
443
- }
444
-
445
- /* ─── Forced Colors (Windows High Contrast) ─── */
446
-
447
- @media (forced-colors: active) {
448
- .item-row:focus-visible {
449
- outline: 3px solid Highlight;
450
- outline-offset: -2px;
451
- }
452
-
453
- .expand-btn:focus-visible {
454
- outline: 3px solid Highlight;
455
- outline-offset: 2px;
456
- }
457
-
458
- :host([selected]) .item-row {
459
- outline: 2px solid Highlight;
460
- }
461
- }
462
-
463
- .children-inner {
464
- overflow: hidden;
465
- }
466
- `;
467
- var $ = Object.defineProperty, A = Object.getOwnPropertyDescriptor, h = (e, t, i, s) => {
468
- for (var r = s > 1 ? void 0 : s ? A(t, i) : t, n = e.length - 1, o; n >= 0; n--)
469
- (o = e[n]) && (r = (s ? o(t, i, r) : o(r)) || r);
470
- return s && r && $(t, i, r), r;
471
- };
472
- let l = class extends y {
473
- constructor() {
474
- super(...arguments), this.expanded = !1, this.selected = !1, this.disabled = !1, this._hasChildren = !1, this._rovingActive = !1, this._labelText = "", this._level = 1, this._posInSet = 1, this._setSize = 1, this._selectable = !1;
475
- }
476
- // ─── Computed ARIA ───
477
- /**
478
- * Whether this item has slotted children.
479
- * @returns True if one or more elements are assigned to the children slot.
480
- */
481
- get hasChildItems() {
482
- return this._hasChildren;
483
- }
484
- /**
485
- * The text content of the item's label slot, used for typeahead keyboard navigation.
486
- * Returns an empty string until the label slot has been assigned.
487
- */
488
- get labelText() {
489
- return this._labelText;
490
- }
491
- /**
492
- * Recompute all cached ARIA metadata in a single DOM pass.
493
- * Called on connect, slotchange, and whenever structural context may change.
494
- * @internal
495
- */
496
- _updateAriaMetadata() {
497
- let e = 1, t = this.parentElement;
498
- for (; t; )
499
- t.tagName.toLowerCase() === "hx-tree-item" && e++, t = t.parentElement;
500
- this._level = e;
501
- const i = this.parentElement;
502
- if (i) {
503
- const r = Array.from(i.children).filter(
504
- (n) => n.tagName.toLowerCase() === "hx-tree-item"
505
- );
506
- this._posInSet = r.indexOf(this) + 1, this._setSize = r.length;
507
- } else
508
- this._posInSet = 1, this._setSize = 1;
509
- const s = this.closest("hx-tree-view");
510
- if (s) {
511
- const r = s.getAttribute("selection");
512
- this._selectable = r === "single" || r === "multiple";
513
- } else
514
- this._selectable = !1;
515
- }
516
- /**
517
- * Set ARIA position metadata from the parent hx-tree-view in a single O(n) pass.
518
- * Calling this avoids the O(n^2) ancestor-walk + sibling-iteration in _updateAriaMetadata
519
- * when the parent already knows the layout.
520
- * @internal
521
- */
522
- setAriaMetadata(e, t, i, s) {
523
- this._level = e, this._posInSet = t, this._setSize = i, this._selectable = s;
524
- }
525
- // ─── Lifecycle ───
526
- connectedCallback() {
527
- super.connectedCallback(), this._updateAriaMetadata();
528
- }
529
- // ─── Children Detection ───
530
- /**
531
- * Updates _hasChildren and recomputes ARIA metadata when the children slot assignment changes.
532
- * @internal
533
- */
534
- _handleChildrenSlotChange(e) {
535
- const t = e.target;
536
- this._hasChildren = t.assignedElements().length > 0, this._updateAriaMetadata();
537
- }
538
- /**
539
- * Captures the text content from the default (label) slot for use on the children group label.
540
- * @internal
541
- */
542
- _handleLabelSlotChange(e) {
543
- const i = e.target.assignedNodes({ flatten: !0 });
544
- this._labelText = i.map((s) => s.textContent ?? "").join("").trim();
545
- }
546
- // ─── Event Handlers ───
547
- /**
548
- * Toggles the expanded state when the expand/collapse button is clicked, stopping event propagation.
549
- * @internal
550
- */
551
- _handleExpandClick(e) {
552
- e.stopPropagation(), !this.disabled && (this.expanded = !this.expanded);
553
- }
554
- /**
555
- * Dispatches the hx-tree-item-select event when the item is activated via click or keyboard.
556
- * @internal
557
- */
558
- _handleRowClick() {
559
- this.disabled || this.dispatchEvent(
560
- new CustomEvent("hx-tree-item-select", {
561
- bubbles: !0,
562
- composed: !0,
563
- detail: { item: this }
564
- })
565
- );
566
- }
567
- /**
568
- * Handles keyboard interaction for the tree item, including expand/collapse, activation, and delegation of list-navigation keys to the parent tree.
569
- * @internal
570
- */
571
- _handleKeyDown(e) {
572
- if (!this.disabled)
573
- switch (e.key) {
574
- case "ArrowRight":
575
- e.preventDefault(), this._hasChildren && !this.expanded && (this.expanded = !0);
576
- break;
577
- case "ArrowLeft":
578
- e.preventDefault(), this._hasChildren && this.expanded && (this.expanded = !1);
579
- break;
580
- case "Enter":
581
- case " ":
582
- e.preventDefault(), this._handleRowClick();
583
- break;
584
- }
585
- }
586
- // ─── Public API ───
587
- /**
588
- * Sets the roving tabindex state for this item.
589
- * When `active` is true, the item row gets `tabindex="0"` making it the
590
- * Tab-reachable item in the tree. All other items should be set to false.
591
- * Called by the parent hx-tree-view to manage the roving tabindex pattern.
592
- */
593
- setRovingActive(e) {
594
- this._rovingActive = e;
595
- }
596
- /** Focus this item's interactive row element. */
597
- focus() {
598
- var e;
599
- (e = this._itemRowEl) == null || e.focus();
600
- }
601
- // ─── Render ───
602
- /**
603
- * Renders the expand/collapse chevron button, or a placeholder span when the item has no children.
604
- * @internal
605
- */
606
- _renderExpandIcon() {
607
- return this._hasChildren ? x`
608
- <button
609
- part="expand-icon"
610
- class="expand-btn"
611
- tabindex="-1"
612
- aria-label="${this.expanded ? "Collapse" : "Expand"}"
613
- @click=${this._handleExpandClick}
614
- >
615
- <svg viewBox="0 0 16 16" aria-hidden="true">
616
- <polyline points="6 4 10 8 6 12" />
617
- </svg>
618
- </button>
619
- ` : x`<span class="expand-placeholder" aria-hidden="true"></span>`;
620
- }
621
- render() {
622
- const e = this._hasChildren ? String(this.expanded) : p, t = this._selectable ? String(this.selected) : p;
623
- return x`
624
- <div part="item" class="item">
625
- <div
626
- part="row"
627
- class="item-row"
628
- role="treeitem"
629
- tabindex=${this._rovingActive ? "0" : "-1"}
630
- aria-expanded=${e}
631
- aria-selected=${t}
632
- aria-disabled=${this.disabled ? "true" : p}
633
- aria-level=${this._level}
634
- aria-posinset=${this._posInSet}
635
- aria-setsize=${this._setSize}
636
- @click=${this._handleRowClick}
637
- @keydown=${this._handleKeyDown}
638
- >
639
- ${this._renderExpandIcon()}
640
- <span class="item-icon">
641
- <slot name="icon"></slot>
642
- </span>
643
- <span part="label" class="item-label">
644
- <slot @slotchange=${this._handleLabelSlotChange}></slot>
645
- </span>
646
- </div>
647
- <div
648
- part="children"
649
- class=${I({ children: !0, "children--expanded": this.expanded })}
650
- role="group"
651
- aria-label=${this._labelText ? `${this._labelText} children` : "children"}
652
- aria-hidden=${!this.expanded || p}
653
- >
654
- <div class="children-inner">
655
- <slot name="children" @slotchange=${this._handleChildrenSlotChange}></slot>
656
- </div>
657
- </div>
658
- </div>
659
- `;
660
- }
661
- };
662
- l.styles = [E, _];
663
- h([
664
- m({ type: Boolean, reflect: !0 })
665
- ], l.prototype, "expanded", 2);
666
- h([
667
- m({ type: Boolean, reflect: !0 })
668
- ], l.prototype, "selected", 2);
669
- h([
670
- m({ type: Boolean, reflect: !0 })
671
- ], l.prototype, "disabled", 2);
672
- h([
673
- c()
674
- ], l.prototype, "_hasChildren", 2);
675
- h([
676
- c()
677
- ], l.prototype, "_rovingActive", 2);
678
- h([
679
- c()
680
- ], l.prototype, "_labelText", 2);
681
- h([
682
- c()
683
- ], l.prototype, "_level", 2);
684
- h([
685
- c()
686
- ], l.prototype, "_posInSet", 2);
687
- h([
688
- c()
689
- ], l.prototype, "_setSize", 2);
690
- h([
691
- c()
692
- ], l.prototype, "_selectable", 2);
693
- h([
694
- w(".item-row")
695
- ], l.prototype, "_itemRowEl", 2);
696
- l = h([
697
- g("hx-tree-item")
698
- ], l);
699
- export {
700
- l as H,
701
- d as a
702
- };
703
- //# sourceMappingURL=hx-tree-item-C2CiWuDE.js.map