@helixui/library 3.3.1-next.118 → 3.4.0-next.121
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.
- package/custom-elements.json +422 -322
- package/dist/components/hx-alert/hx-alert.d.ts +11 -0
- package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
- package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
- package/dist/components/hx-alert/index.js +1 -1
- package/dist/components/hx-badge/hx-badge.styles.d.ts.map +1 -1
- package/dist/components/hx-badge/index.js +1 -1
- package/dist/components/hx-banner/hx-banner.d.ts +9 -1
- package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
- package/dist/components/hx-banner/index.js +1 -1
- package/dist/components/hx-button/hx-button.d.ts +11 -1
- package/dist/components/hx-button/hx-button.d.ts.map +1 -1
- package/dist/components/hx-button/index.js +1 -1
- package/dist/components/hx-button-group/hx-button-group.d.ts +13 -0
- package/dist/components/hx-button-group/hx-button-group.d.ts.map +1 -1
- package/dist/components/hx-button-group/index.js +1 -1
- package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
- package/dist/components/hx-checkbox/index.js +1 -1
- package/dist/components/hx-checkbox-group/index.js +1 -1
- package/dist/components/hx-color-picker/index.js +1 -1
- package/dist/components/hx-combobox/index.js +1 -1
- package/dist/components/hx-data-table/hx-data-table.d.ts.map +1 -1
- package/dist/components/hx-data-table/index.js +1 -1
- package/dist/components/hx-date-picker/index.js +1 -1
- package/dist/components/hx-dialog/index.js +1 -1
- package/dist/components/hx-drawer/hx-drawer.d.ts +201 -0
- package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
- package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
- package/dist/components/hx-drawer/index.js +1 -1
- package/dist/components/hx-dropdown/hx-dropdown.d.ts +96 -8
- package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
- package/dist/components/hx-dropdown/index.js +1 -1
- package/dist/components/hx-icon-button/hx-icon-button.d.ts +16 -3
- package/dist/components/hx-icon-button/hx-icon-button.d.ts.map +1 -1
- package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
- package/dist/components/hx-icon-button/index.js +1 -1
- package/dist/components/hx-link/hx-link.d.ts +10 -1
- package/dist/components/hx-link/hx-link.d.ts.map +1 -1
- package/dist/components/hx-link/index.js +1 -1
- package/dist/components/hx-list/hx-list-item.d.ts +27 -1
- package/dist/components/hx-list/hx-list-item.d.ts.map +1 -1
- package/dist/components/hx-list/hx-list.d.ts +28 -0
- package/dist/components/hx-list/hx-list.d.ts.map +1 -1
- package/dist/components/hx-list/index.js +1 -1
- package/dist/components/hx-menu/hx-menu-divider.d.ts +10 -0
- package/dist/components/hx-menu/hx-menu-divider.d.ts.map +1 -1
- package/dist/components/hx-menu/hx-menu-item.d.ts +99 -2
- package/dist/components/hx-menu/hx-menu-item.d.ts.map +1 -1
- package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
- package/dist/components/hx-menu/hx-menu.d.ts +117 -2
- package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
- package/dist/components/hx-menu/index.js +1 -1
- package/dist/components/hx-meter/hx-meter.d.ts +39 -0
- package/dist/components/hx-meter/hx-meter.d.ts.map +1 -1
- package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
- package/dist/components/hx-meter/index.js +1 -1
- package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +132 -1
- package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
- package/dist/components/hx-overflow-menu/index.js +1 -1
- package/dist/components/hx-phi-field/hx-phi-field.d.ts +0 -1
- package/dist/components/hx-phi-field/hx-phi-field.d.ts.map +1 -1
- package/dist/components/hx-popover/index.js +1 -1
- package/dist/components/hx-progress-bar/hx-progress-bar.d.ts +33 -0
- package/dist/components/hx-progress-bar/hx-progress-bar.d.ts.map +1 -1
- package/dist/components/hx-progress-bar/index.js +1 -1
- package/dist/components/hx-radio-group/index.js +1 -1
- package/dist/components/hx-select/hx-select.d.ts +1 -0
- package/dist/components/hx-select/hx-select.d.ts.map +1 -1
- package/dist/components/hx-select/index.js +1 -1
- package/dist/components/hx-spinner/hx-spinner.d.ts +14 -0
- package/dist/components/hx-spinner/hx-spinner.d.ts.map +1 -1
- package/dist/components/hx-spinner/index.js +1 -1
- package/dist/components/hx-split-button/hx-split-button.d.ts +94 -7
- package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
- package/dist/components/hx-split-button/index.js +1 -1
- package/dist/components/hx-stat/hx-stat.d.ts +28 -0
- package/dist/components/hx-stat/hx-stat.d.ts.map +1 -1
- package/dist/components/hx-stat/index.js +1 -1
- package/dist/components/hx-switch/index.js +1 -1
- package/dist/components/hx-table/hx-td.d.ts +30 -3
- package/dist/components/hx-table/hx-td.d.ts.map +1 -1
- package/dist/components/hx-table/hx-th.d.ts +39 -3
- package/dist/components/hx-table/hx-th.d.ts.map +1 -1
- package/dist/components/hx-table/hx-tr.d.ts +26 -0
- package/dist/components/hx-table/hx-tr.d.ts.map +1 -1
- package/dist/components/hx-table/index.js +1 -1
- package/dist/components/hx-tabs/hx-tab-panel.d.ts +34 -0
- package/dist/components/hx-tabs/hx-tab-panel.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tab.d.ts +45 -2
- package/dist/components/hx-tabs/hx-tab.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tab.styles.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tabs.d.ts +32 -2
- package/dist/components/hx-tabs/hx-tabs.d.ts.map +1 -1
- package/dist/components/hx-tabs/index.js +1 -1
- package/dist/components/hx-tag/hx-tag.styles.d.ts.map +1 -1
- package/dist/components/hx-tag/index.js +1 -1
- package/dist/components/hx-theme/hx-theme.d.ts +10 -5
- package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
- package/dist/components/hx-time-picker/hx-time-picker.d.ts +210 -2
- package/dist/components/hx-time-picker/hx-time-picker.d.ts.map +1 -1
- package/dist/components/hx-time-picker/hx-time-picker.styles.d.ts.map +1 -1
- package/dist/components/hx-time-picker/index.js +1 -1
- package/dist/components/hx-toast/hx-toast-stack.d.ts +14 -0
- package/dist/components/hx-toast/hx-toast-stack.d.ts.map +1 -1
- package/dist/components/hx-toast/hx-toast.d.ts +22 -3
- package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
- package/dist/components/hx-toast/index.js +1 -1
- package/dist/components/hx-toast/toast-factory.d.ts.map +1 -1
- package/dist/components/hx-toggle-button/index.js +1 -1
- package/dist/components/hx-tree-view/hx-tree-item.d.ts +117 -12
- package/dist/components/hx-tree-view/hx-tree-item.d.ts.map +1 -1
- package/dist/components/hx-tree-view/hx-tree-view.d.ts +87 -7
- package/dist/components/hx-tree-view/hx-tree-view.d.ts.map +1 -1
- package/dist/components/hx-tree-view/index.js +1 -1
- package/dist/css/helix-all.css +123 -0
- package/dist/css/helix-core.css +81 -0
- package/dist/css/helix-feedback.css +14 -0
- package/dist/css/helix-forms.css +11 -0
- package/dist/css/helix-overlay.css +17 -0
- package/dist/css/hx-alert.css +9 -0
- package/dist/css/hx-badge.css +28 -0
- package/dist/css/hx-drawer.css +17 -0
- package/dist/css/hx-icon-button.css +30 -0
- package/dist/css/hx-meter.css +5 -0
- package/dist/css/hx-tag.css +23 -0
- package/dist/css/hx-time-picker.css +11 -0
- package/dist/css/index.css +1 -1
- package/dist/css/manifest.json +3 -1
- package/dist/index.js +35 -35
- package/dist/shared/aria-idref-CxvyzfQS.js +126 -0
- package/dist/shared/aria-idref-CxvyzfQS.js.map +1 -0
- package/dist/shared/{hx-alert-CLn7CstP.js → hx-alert-Bto8-TIi.js} +55 -37
- package/dist/shared/hx-alert-Bto8-TIi.js.map +1 -0
- package/dist/shared/{hx-badge-CQXgOXJM.js → hx-badge-JlFtAdxS.js} +37 -9
- package/dist/shared/hx-badge-JlFtAdxS.js.map +1 -0
- package/dist/shared/{hx-banner-D3DzpfcP.js → hx-banner-fpRnciIO.js} +13 -5
- package/dist/shared/hx-banner-fpRnciIO.js.map +1 -0
- package/dist/shared/{hx-button-DPY6SPVT.js → hx-button-BOwAEcF1.js} +108 -85
- package/dist/shared/{hx-button-DPY6SPVT.js.map → hx-button-BOwAEcF1.js.map} +1 -1
- package/dist/shared/{hx-button-group-BI-QBqmO.js → hx-button-group-DcHP5MBv.js} +15 -16
- package/dist/shared/{hx-button-group-BI-QBqmO.js.map → hx-button-group-DcHP5MBv.js.map} +1 -1
- package/dist/shared/{hx-checkbox-BdgoUeWi.js → hx-checkbox-C48KYKFq.js} +87 -87
- package/dist/shared/hx-checkbox-C48KYKFq.js.map +1 -0
- package/dist/shared/{hx-checkbox-group-LWezHrvS.js → hx-checkbox-group-BJIAX3zU.js} +2 -2
- package/dist/shared/{hx-checkbox-group-LWezHrvS.js.map → hx-checkbox-group-BJIAX3zU.js.map} +1 -1
- package/dist/shared/{hx-color-picker-DVhZl88b.js → hx-color-picker-Dk4cBwYQ.js} +2 -2
- package/dist/shared/{hx-color-picker-DVhZl88b.js.map → hx-color-picker-Dk4cBwYQ.js.map} +1 -1
- package/dist/shared/{hx-combobox-DvlezcDV.js → hx-combobox-BTLO9qiK.js} +2 -2
- package/dist/shared/{hx-combobox-DvlezcDV.js.map → hx-combobox-BTLO9qiK.js.map} +1 -1
- package/dist/shared/{hx-data-table-CLqVqdxr.js → hx-data-table-Ct3gQ6ya.js} +3 -2
- package/dist/shared/{hx-data-table-CLqVqdxr.js.map → hx-data-table-Ct3gQ6ya.js.map} +1 -1
- package/dist/shared/{hx-date-picker-N-0aG5XL.js → hx-date-picker-CiR7FVnR.js} +2 -2
- package/dist/shared/{hx-date-picker-N-0aG5XL.js.map → hx-date-picker-CiR7FVnR.js.map} +1 -1
- package/dist/shared/{hx-dialog-DzB7VytW.js → hx-dialog-AOZpHSuF.js} +2 -2
- package/dist/shared/{hx-dialog-DzB7VytW.js.map → hx-dialog-AOZpHSuF.js.map} +1 -1
- package/dist/shared/{hx-drawer-Y1Ui2IWJ.js → hx-drawer-DH6CdAN1.js} +300 -98
- package/dist/shared/hx-drawer-DH6CdAN1.js.map +1 -0
- package/dist/shared/hx-dropdown-DiLd40Lm.js +401 -0
- package/dist/shared/hx-dropdown-DiLd40Lm.js.map +1 -0
- package/dist/shared/{hx-icon-button-CGNdQSFM.js → hx-icon-button-a6OpeQz5.js} +149 -68
- package/dist/shared/hx-icon-button-a6OpeQz5.js.map +1 -0
- package/dist/shared/{hx-link-C-O6vq0Q.js → hx-link-CMnZRUtQ.js} +55 -43
- package/dist/shared/hx-link-CMnZRUtQ.js.map +1 -0
- package/dist/shared/{hx-list-MyEhh8c7.js → hx-list-De66EtAP.js} +163 -107
- package/dist/shared/hx-list-De66EtAP.js.map +1 -0
- package/dist/shared/hx-menu-divider-BjiRIWKq.js +797 -0
- package/dist/shared/hx-menu-divider-BjiRIWKq.js.map +1 -0
- package/dist/shared/{hx-meter-BPscsw5t.js → hx-meter-BJdh6nrF.js} +105 -64
- package/dist/shared/hx-meter-BJdh6nrF.js.map +1 -0
- package/dist/shared/hx-overflow-menu-BQ4fiMYu.js +492 -0
- package/dist/shared/hx-overflow-menu-BQ4fiMYu.js.map +1 -0
- package/dist/shared/hx-phi-field-C19oxlrr.js.map +1 -1
- package/dist/shared/{hx-popover-CHxWY_cd.js → hx-popover-B9W8-tC0.js} +2 -2
- package/dist/shared/{hx-popover-CHxWY_cd.js.map → hx-popover-B9W8-tC0.js.map} +1 -1
- package/dist/shared/hx-progress-bar-C8nDMdYa.js +290 -0
- package/dist/shared/hx-progress-bar-C8nDMdYa.js.map +1 -0
- package/dist/shared/{hx-radio-CeGzARNk.js → hx-radio-Z1lV1zTO.js} +2 -2
- package/dist/shared/{hx-radio-CeGzARNk.js.map → hx-radio-Z1lV1zTO.js.map} +1 -1
- package/dist/shared/{hx-select-DrcS-YRJ.js → hx-select-D18CnJ0e.js} +2 -2
- package/dist/shared/hx-select-D18CnJ0e.js.map +1 -0
- package/dist/shared/{hx-spinner-DL5AYr16.js → hx-spinner-BB0h2hKZ.js} +62 -34
- package/dist/shared/hx-spinner-BB0h2hKZ.js.map +1 -0
- package/dist/shared/{hx-split-button-Djnc5Aeg.js → hx-split-button-BoABoEm5.js} +153 -82
- package/dist/shared/hx-split-button-BoABoEm5.js.map +1 -0
- package/dist/shared/{hx-stat-WOcNV1Ry.js → hx-stat-Dtf9lz-O.js} +77 -47
- package/dist/shared/hx-stat-Dtf9lz-O.js.map +1 -0
- package/dist/shared/{hx-switch-BX_8uNUs.js → hx-switch-B6kr-EwE.js} +2 -2
- package/dist/shared/{hx-switch-BX_8uNUs.js.map → hx-switch-B6kr-EwE.js.map} +1 -1
- package/dist/shared/{hx-tab-panel-DspCrKqo.js → hx-tab-panel-BQtBXKLD.js} +255 -131
- package/dist/shared/hx-tab-panel-BQtBXKLD.js.map +1 -0
- package/dist/shared/{hx-tag-CNSmdyaK.js → hx-tag-C5aCUpVi.js} +63 -40
- package/dist/shared/hx-tag-C5aCUpVi.js.map +1 -0
- package/dist/shared/{hx-td-DnnEMIuA.js → hx-td-BGkFOJEK.js} +267 -123
- package/dist/shared/hx-td-BGkFOJEK.js.map +1 -0
- package/dist/shared/hx-theme-BsefFWTO.js.map +1 -1
- package/dist/shared/hx-time-picker-iwCD7rzW.js +1038 -0
- package/dist/shared/hx-time-picker-iwCD7rzW.js.map +1 -0
- package/dist/shared/{hx-toggle-button-Dcz9IlUm.js → hx-toggle-button-BQ81EDkl.js} +2 -2
- package/dist/shared/{hx-toggle-button-Dcz9IlUm.js.map → hx-toggle-button-BQ81EDkl.js.map} +1 -1
- package/dist/shared/hx-tree-item-CHrUhuZL.js +925 -0
- package/dist/shared/hx-tree-item-CHrUhuZL.js.map +1 -0
- package/dist/shared/menu-roving-DmMnzJhn.js +14 -0
- package/dist/shared/menu-roving-DmMnzJhn.js.map +1 -0
- package/dist/shared/menu-tree-BNM0SYYq.js +42 -0
- package/dist/shared/menu-tree-BNM0SYYq.js.map +1 -0
- package/dist/shared/{toast-factory-YSznocIV.js → toast-factory-CL2BzdSB.js} +128 -77
- package/dist/shared/toast-factory-CL2BzdSB.js.map +1 -0
- package/dist/utils/aria-idref.d.ts.map +1 -1
- package/dist/utils/menu-label.d.ts +18 -0
- package/dist/utils/menu-label.d.ts.map +1 -0
- package/dist/utils/menu-roving.d.ts +28 -0
- package/dist/utils/menu-roving.d.ts.map +1 -0
- package/dist/utils/menu-tree.d.ts +41 -0
- package/dist/utils/menu-tree.d.ts.map +1 -0
- package/dist/utils/tree-walk.d.ts +53 -0
- package/dist/utils/tree-walk.d.ts.map +1 -0
- package/figma-inventory.json +69 -20
- package/package.json +2 -2
- package/dist/shared/aria-idref-Q0yiSR3p.js +0 -104
- package/dist/shared/aria-idref-Q0yiSR3p.js.map +0 -1
- package/dist/shared/hx-alert-CLn7CstP.js.map +0 -1
- package/dist/shared/hx-badge-CQXgOXJM.js.map +0 -1
- package/dist/shared/hx-banner-D3DzpfcP.js.map +0 -1
- package/dist/shared/hx-checkbox-BdgoUeWi.js.map +0 -1
- package/dist/shared/hx-drawer-Y1Ui2IWJ.js.map +0 -1
- package/dist/shared/hx-dropdown-DJWlF94E.js +0 -316
- package/dist/shared/hx-dropdown-DJWlF94E.js.map +0 -1
- package/dist/shared/hx-icon-button-CGNdQSFM.js.map +0 -1
- package/dist/shared/hx-link-C-O6vq0Q.js.map +0 -1
- package/dist/shared/hx-list-MyEhh8c7.js.map +0 -1
- package/dist/shared/hx-menu-divider-C2omnPtj.js +0 -558
- package/dist/shared/hx-menu-divider-C2omnPtj.js.map +0 -1
- package/dist/shared/hx-meter-BPscsw5t.js.map +0 -1
- package/dist/shared/hx-overflow-menu-DCLsdIBy.js +0 -374
- package/dist/shared/hx-overflow-menu-DCLsdIBy.js.map +0 -1
- package/dist/shared/hx-progress-bar-Bn3JEPUf.js +0 -258
- package/dist/shared/hx-progress-bar-Bn3JEPUf.js.map +0 -1
- package/dist/shared/hx-select-DrcS-YRJ.js.map +0 -1
- package/dist/shared/hx-spinner-DL5AYr16.js.map +0 -1
- package/dist/shared/hx-split-button-Djnc5Aeg.js.map +0 -1
- package/dist/shared/hx-stat-WOcNV1Ry.js.map +0 -1
- package/dist/shared/hx-tab-panel-DspCrKqo.js.map +0 -1
- package/dist/shared/hx-tag-CNSmdyaK.js.map +0 -1
- package/dist/shared/hx-td-DnnEMIuA.js.map +0 -1
- package/dist/shared/hx-time-picker-BoEIZwzv.js +0 -688
- package/dist/shared/hx-time-picker-BoEIZwzv.js.map +0 -1
- package/dist/shared/hx-tree-item-C2CiWuDE.js +0 -703
- package/dist/shared/hx-tree-item-C2CiWuDE.js.map +0 -1
- package/dist/shared/toast-factory-YSznocIV.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-tree-item.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tree-view/hx-tree-item.ts"],"names":[],"mappings":"
|
|
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
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
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.
|
|
52
|
-
*
|
|
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":"
|
|
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"}
|
package/dist/css/helix-all.css
CHANGED
|
@@ -258,6 +258,15 @@
|
|
|
258
258
|
min-width: 0;
|
|
259
259
|
}
|
|
260
260
|
|
|
261
|
+
/* (group-6 5.1) Wrapper around the default slot. Carries aria-hidden=true
|
|
262
|
+
so the visible message text is not double-announced alongside the
|
|
263
|
+
sr-only announcer. display:contents keeps the wrapper visually
|
|
264
|
+
transparent so children participate in the parent flex layout as if
|
|
265
|
+
the wrapper were not there. */
|
|
266
|
+
.alert__default-slot {
|
|
267
|
+
display: contents;
|
|
268
|
+
}
|
|
269
|
+
|
|
261
270
|
/* ─── Actions ─── */
|
|
262
271
|
/* Hidden by default; shown via JS slotchange detection to avoid invisible */
|
|
263
272
|
/* margin-top spacing when no actions are slotted. */
|
|
@@ -721,6 +730,9 @@
|
|
|
721
730
|
@media (forced-colors: active) {
|
|
722
731
|
.badge {
|
|
723
732
|
border: 1px solid CanvasText;
|
|
733
|
+
forced-color-adjust: none;
|
|
734
|
+
background-color: Canvas;
|
|
735
|
+
color: CanvasText;
|
|
724
736
|
}
|
|
725
737
|
|
|
726
738
|
.badge--pulse {
|
|
@@ -730,6 +742,31 @@
|
|
|
730
742
|
.badge__remove-button {
|
|
731
743
|
color: ButtonText;
|
|
732
744
|
}
|
|
745
|
+
|
|
746
|
+
/* Per-semantic-variant forced-colors fallbacks. The visually-hidden
|
|
747
|
+
semantic variant label (.badge__variant-label) keeps AT users
|
|
748
|
+
informed; these blocks restore visual semantic distinction for
|
|
749
|
+
sighted users in HCM where bg/color collapse to system defaults.
|
|
750
|
+
Pattern: distinct border-style per variant. */
|
|
751
|
+
.badge--success {
|
|
752
|
+
border-style: solid;
|
|
753
|
+
border-width: 2px;
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
.badge--warning {
|
|
757
|
+
border-style: dashed;
|
|
758
|
+
border-width: 2px;
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
.badge--error {
|
|
762
|
+
border-style: double;
|
|
763
|
+
border-width: 3px;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
.badge--info {
|
|
767
|
+
border-style: dotted;
|
|
768
|
+
border-width: 2px;
|
|
769
|
+
}
|
|
733
770
|
}
|
|
734
771
|
/* ── hx-banner ── */
|
|
735
772
|
:host {
|
|
@@ -5106,6 +5143,23 @@
|
|
|
5106
5143
|
margin: 0;
|
|
5107
5144
|
}
|
|
5108
5145
|
|
|
5146
|
+
/* ─── Synthesized consumer-description span ─── */
|
|
5147
|
+
/* Visually hidden mirror of consumer-resolved aria-describedby text used by */
|
|
5148
|
+
/* the host-canonical ARIA pipeline. Always present in the shadow tree so AT */
|
|
5149
|
+
/* can resolve the same-root id even when the description is currently empty. */
|
|
5150
|
+
|
|
5151
|
+
.drawer-sr-only {
|
|
5152
|
+
position: absolute;
|
|
5153
|
+
width: 1px;
|
|
5154
|
+
height: 1px;
|
|
5155
|
+
padding: 0;
|
|
5156
|
+
margin: -1px;
|
|
5157
|
+
overflow: hidden;
|
|
5158
|
+
clip: rect(0, 0, 0, 0);
|
|
5159
|
+
white-space: nowrap;
|
|
5160
|
+
border: 0;
|
|
5161
|
+
}
|
|
5162
|
+
|
|
5109
5163
|
/* ─── Body ─── */
|
|
5110
5164
|
|
|
5111
5165
|
.drawer-body {
|
|
@@ -6041,12 +6095,37 @@ export const helixGridItemStyles = css`
|
|
|
6041
6095
|
multiplicative stacking (0.5 * 0.5 = 0.25). Do not add opacity here. */
|
|
6042
6096
|
}
|
|
6043
6097
|
|
|
6098
|
+
/* ─── Loading State ─── */
|
|
6099
|
+
|
|
6100
|
+
.button--loading {
|
|
6101
|
+
position: relative;
|
|
6102
|
+
cursor: wait;
|
|
6103
|
+
}
|
|
6104
|
+
|
|
6105
|
+
.button__spinner {
|
|
6106
|
+
width: 1em;
|
|
6107
|
+
height: 1em;
|
|
6108
|
+
flex-shrink: 0;
|
|
6109
|
+
animation: hx-icon-button-spin var(--hx-duration-spinner, 750ms) linear infinite;
|
|
6110
|
+
}
|
|
6111
|
+
|
|
6112
|
+
@keyframes hx-icon-button-spin {
|
|
6113
|
+
to {
|
|
6114
|
+
transform: rotate(360deg);
|
|
6115
|
+
}
|
|
6116
|
+
}
|
|
6117
|
+
|
|
6044
6118
|
/* ─── Reduced Motion ─── */
|
|
6045
6119
|
|
|
6046
6120
|
@media (prefers-reduced-motion: reduce) {
|
|
6047
6121
|
.button {
|
|
6048
6122
|
transition: none;
|
|
6049
6123
|
}
|
|
6124
|
+
|
|
6125
|
+
.button__spinner {
|
|
6126
|
+
animation: none;
|
|
6127
|
+
opacity: var(--hx-opacity-muted, 0.6);
|
|
6128
|
+
}
|
|
6050
6129
|
}
|
|
6051
6130
|
|
|
6052
6131
|
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
@@ -6074,6 +6153,11 @@ export const helixGridItemStyles = css`
|
|
|
6074
6153
|
:host([disabled]) {
|
|
6075
6154
|
opacity: 1;
|
|
6076
6155
|
}
|
|
6156
|
+
|
|
6157
|
+
.button--loading .button__spinner {
|
|
6158
|
+
stroke: ButtonText;
|
|
6159
|
+
forced-color-adjust: none;
|
|
6160
|
+
}
|
|
6077
6161
|
}
|
|
6078
6162
|
/* ── hx-image ── */
|
|
6079
6163
|
:host {
|
|
@@ -6451,6 +6535,11 @@ export const helixGridItemStyles = css`
|
|
|
6451
6535
|
/* ─── Forced Colors (Windows High Contrast) ─── */
|
|
6452
6536
|
|
|
6453
6537
|
@media (forced-colors: active) {
|
|
6538
|
+
.meter:focus-visible {
|
|
6539
|
+
outline: 2px solid Highlight;
|
|
6540
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
6541
|
+
}
|
|
6542
|
+
|
|
6454
6543
|
.meter__track {
|
|
6455
6544
|
border: 1px solid CanvasText;
|
|
6456
6545
|
}
|
|
@@ -11184,11 +11273,34 @@ export const helixTableSectionBaseStyles = css`
|
|
|
11184
11273
|
@media (forced-colors: active) {
|
|
11185
11274
|
.tag {
|
|
11186
11275
|
border-color: CanvasText;
|
|
11276
|
+
forced-color-adjust: none;
|
|
11277
|
+
background-color: Canvas;
|
|
11278
|
+
color: CanvasText;
|
|
11187
11279
|
}
|
|
11188
11280
|
|
|
11189
11281
|
.tag__remove-button {
|
|
11190
11282
|
color: ButtonText;
|
|
11191
11283
|
}
|
|
11284
|
+
|
|
11285
|
+
/* Per-semantic-variant forced-colors fallbacks. The visually-hidden
|
|
11286
|
+
semantic variant label (.tag__variant-label) keeps AT users
|
|
11287
|
+
informed; these blocks restore visual semantic distinction for
|
|
11288
|
+
sighted users in HCM where bg/color collapse to system defaults.
|
|
11289
|
+
Pattern: distinct border-style per variant (matches hx-badge). */
|
|
11290
|
+
.tag--success {
|
|
11291
|
+
border-style: solid;
|
|
11292
|
+
border-width: 2px;
|
|
11293
|
+
}
|
|
11294
|
+
|
|
11295
|
+
.tag--warning {
|
|
11296
|
+
border-style: dashed;
|
|
11297
|
+
border-width: 2px;
|
|
11298
|
+
}
|
|
11299
|
+
|
|
11300
|
+
.tag--danger {
|
|
11301
|
+
border-style: double;
|
|
11302
|
+
border-width: 3px;
|
|
11303
|
+
}
|
|
11192
11304
|
}
|
|
11193
11305
|
/* ── hx-text ── */
|
|
11194
11306
|
:host {
|
|
@@ -12218,6 +12330,17 @@ export const helixTableSectionBaseStyles = css`
|
|
|
12218
12330
|
.field__error {
|
|
12219
12331
|
color: var(--hx-time-picker-error-color, var(--hx-color-error-text, #c92a2a));
|
|
12220
12332
|
}
|
|
12333
|
+
.field__sr-only {
|
|
12334
|
+
position: absolute;
|
|
12335
|
+
width: 1px;
|
|
12336
|
+
height: 1px;
|
|
12337
|
+
padding: 0;
|
|
12338
|
+
margin: -1px;
|
|
12339
|
+
overflow: hidden;
|
|
12340
|
+
clip: rect(0, 0, 0, 0);
|
|
12341
|
+
white-space: nowrap;
|
|
12342
|
+
border: 0;
|
|
12343
|
+
}
|
|
12221
12344
|
@media (forced-colors: active) {
|
|
12222
12345
|
.field__combobox {
|
|
12223
12346
|
border-color: ButtonText;
|
package/dist/css/helix-core.css
CHANGED
|
@@ -337,6 +337,9 @@
|
|
|
337
337
|
@media (forced-colors: active) {
|
|
338
338
|
.badge {
|
|
339
339
|
border: 1px solid CanvasText;
|
|
340
|
+
forced-color-adjust: none;
|
|
341
|
+
background-color: Canvas;
|
|
342
|
+
color: CanvasText;
|
|
340
343
|
}
|
|
341
344
|
|
|
342
345
|
.badge--pulse {
|
|
@@ -346,6 +349,31 @@
|
|
|
346
349
|
.badge__remove-button {
|
|
347
350
|
color: ButtonText;
|
|
348
351
|
}
|
|
352
|
+
|
|
353
|
+
/* Per-semantic-variant forced-colors fallbacks. The visually-hidden
|
|
354
|
+
semantic variant label (.badge__variant-label) keeps AT users
|
|
355
|
+
informed; these blocks restore visual semantic distinction for
|
|
356
|
+
sighted users in HCM where bg/color collapse to system defaults.
|
|
357
|
+
Pattern: distinct border-style per variant. */
|
|
358
|
+
.badge--success {
|
|
359
|
+
border-style: solid;
|
|
360
|
+
border-width: 2px;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.badge--warning {
|
|
364
|
+
border-style: dashed;
|
|
365
|
+
border-width: 2px;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
.badge--error {
|
|
369
|
+
border-style: double;
|
|
370
|
+
border-width: 3px;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
.badge--info {
|
|
374
|
+
border-style: dotted;
|
|
375
|
+
border-width: 2px;
|
|
376
|
+
}
|
|
349
377
|
}
|
|
350
378
|
/* ── hx-button ── */
|
|
351
379
|
:host {
|
|
@@ -1430,12 +1458,37 @@
|
|
|
1430
1458
|
multiplicative stacking (0.5 * 0.5 = 0.25). Do not add opacity here. */
|
|
1431
1459
|
}
|
|
1432
1460
|
|
|
1461
|
+
/* ─── Loading State ─── */
|
|
1462
|
+
|
|
1463
|
+
.button--loading {
|
|
1464
|
+
position: relative;
|
|
1465
|
+
cursor: wait;
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1468
|
+
.button__spinner {
|
|
1469
|
+
width: 1em;
|
|
1470
|
+
height: 1em;
|
|
1471
|
+
flex-shrink: 0;
|
|
1472
|
+
animation: hx-icon-button-spin var(--hx-duration-spinner, 750ms) linear infinite;
|
|
1473
|
+
}
|
|
1474
|
+
|
|
1475
|
+
@keyframes hx-icon-button-spin {
|
|
1476
|
+
to {
|
|
1477
|
+
transform: rotate(360deg);
|
|
1478
|
+
}
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1433
1481
|
/* ─── Reduced Motion ─── */
|
|
1434
1482
|
|
|
1435
1483
|
@media (prefers-reduced-motion: reduce) {
|
|
1436
1484
|
.button {
|
|
1437
1485
|
transition: none;
|
|
1438
1486
|
}
|
|
1487
|
+
|
|
1488
|
+
.button__spinner {
|
|
1489
|
+
animation: none;
|
|
1490
|
+
opacity: var(--hx-opacity-muted, 0.6);
|
|
1491
|
+
}
|
|
1439
1492
|
}
|
|
1440
1493
|
|
|
1441
1494
|
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
@@ -1463,6 +1516,11 @@
|
|
|
1463
1516
|
:host([disabled]) {
|
|
1464
1517
|
opacity: 1;
|
|
1465
1518
|
}
|
|
1519
|
+
|
|
1520
|
+
.button--loading .button__spinner {
|
|
1521
|
+
stroke: ButtonText;
|
|
1522
|
+
forced-color-adjust: none;
|
|
1523
|
+
}
|
|
1466
1524
|
}
|
|
1467
1525
|
/* ── hx-image ── */
|
|
1468
1526
|
:host {
|
|
@@ -2007,11 +2065,34 @@
|
|
|
2007
2065
|
@media (forced-colors: active) {
|
|
2008
2066
|
.tag {
|
|
2009
2067
|
border-color: CanvasText;
|
|
2068
|
+
forced-color-adjust: none;
|
|
2069
|
+
background-color: Canvas;
|
|
2070
|
+
color: CanvasText;
|
|
2010
2071
|
}
|
|
2011
2072
|
|
|
2012
2073
|
.tag__remove-button {
|
|
2013
2074
|
color: ButtonText;
|
|
2014
2075
|
}
|
|
2076
|
+
|
|
2077
|
+
/* Per-semantic-variant forced-colors fallbacks. The visually-hidden
|
|
2078
|
+
semantic variant label (.tag__variant-label) keeps AT users
|
|
2079
|
+
informed; these blocks restore visual semantic distinction for
|
|
2080
|
+
sighted users in HCM where bg/color collapse to system defaults.
|
|
2081
|
+
Pattern: distinct border-style per variant (matches hx-badge). */
|
|
2082
|
+
.tag--success {
|
|
2083
|
+
border-style: solid;
|
|
2084
|
+
border-width: 2px;
|
|
2085
|
+
}
|
|
2086
|
+
|
|
2087
|
+
.tag--warning {
|
|
2088
|
+
border-style: dashed;
|
|
2089
|
+
border-width: 2px;
|
|
2090
|
+
}
|
|
2091
|
+
|
|
2092
|
+
.tag--danger {
|
|
2093
|
+
border-style: double;
|
|
2094
|
+
border-width: 3px;
|
|
2095
|
+
}
|
|
2015
2096
|
}
|
|
2016
2097
|
/* ── hx-text ── */
|
|
2017
2098
|
:host {
|
|
@@ -109,6 +109,15 @@
|
|
|
109
109
|
min-width: 0;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
+
/* (group-6 5.1) Wrapper around the default slot. Carries aria-hidden=true
|
|
113
|
+
so the visible message text is not double-announced alongside the
|
|
114
|
+
sr-only announcer. display:contents keeps the wrapper visually
|
|
115
|
+
transparent so children participate in the parent flex layout as if
|
|
116
|
+
the wrapper were not there. */
|
|
117
|
+
.alert__default-slot {
|
|
118
|
+
display: contents;
|
|
119
|
+
}
|
|
120
|
+
|
|
112
121
|
/* ─── Actions ─── */
|
|
113
122
|
/* Hidden by default; shown via JS slotchange detection to avoid invisible */
|
|
114
123
|
/* margin-top spacing when no actions are slotted. */
|
|
@@ -574,6 +583,11 @@
|
|
|
574
583
|
/* ─── Forced Colors (Windows High Contrast) ─── */
|
|
575
584
|
|
|
576
585
|
@media (forced-colors: active) {
|
|
586
|
+
.meter:focus-visible {
|
|
587
|
+
outline: 2px solid Highlight;
|
|
588
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
589
|
+
}
|
|
590
|
+
|
|
577
591
|
.meter__track {
|
|
578
592
|
border: 1px solid CanvasText;
|
|
579
593
|
}
|
package/dist/css/helix-forms.css
CHANGED
|
@@ -4403,6 +4403,17 @@
|
|
|
4403
4403
|
.field__error {
|
|
4404
4404
|
color: var(--hx-time-picker-error-color, var(--hx-color-error-text, #c92a2a));
|
|
4405
4405
|
}
|
|
4406
|
+
.field__sr-only {
|
|
4407
|
+
position: absolute;
|
|
4408
|
+
width: 1px;
|
|
4409
|
+
height: 1px;
|
|
4410
|
+
padding: 0;
|
|
4411
|
+
margin: -1px;
|
|
4412
|
+
overflow: hidden;
|
|
4413
|
+
clip: rect(0, 0, 0, 0);
|
|
4414
|
+
white-space: nowrap;
|
|
4415
|
+
border: 0;
|
|
4416
|
+
}
|
|
4406
4417
|
@media (forced-colors: active) {
|
|
4407
4418
|
.field__combobox {
|
|
4408
4419
|
border-color: ButtonText;
|
|
@@ -456,6 +456,23 @@
|
|
|
456
456
|
margin: 0;
|
|
457
457
|
}
|
|
458
458
|
|
|
459
|
+
/* ─── Synthesized consumer-description span ─── */
|
|
460
|
+
/* Visually hidden mirror of consumer-resolved aria-describedby text used by */
|
|
461
|
+
/* the host-canonical ARIA pipeline. Always present in the shadow tree so AT */
|
|
462
|
+
/* can resolve the same-root id even when the description is currently empty. */
|
|
463
|
+
|
|
464
|
+
.drawer-sr-only {
|
|
465
|
+
position: absolute;
|
|
466
|
+
width: 1px;
|
|
467
|
+
height: 1px;
|
|
468
|
+
padding: 0;
|
|
469
|
+
margin: -1px;
|
|
470
|
+
overflow: hidden;
|
|
471
|
+
clip: rect(0, 0, 0, 0);
|
|
472
|
+
white-space: nowrap;
|
|
473
|
+
border: 0;
|
|
474
|
+
}
|
|
475
|
+
|
|
459
476
|
/* ─── Body ─── */
|
|
460
477
|
|
|
461
478
|
.drawer-body {
|
package/dist/css/hx-alert.css
CHANGED
|
@@ -107,6 +107,15 @@
|
|
|
107
107
|
min-width: 0;
|
|
108
108
|
}
|
|
109
109
|
|
|
110
|
+
/* (group-6 5.1) Wrapper around the default slot. Carries aria-hidden=true
|
|
111
|
+
so the visible message text is not double-announced alongside the
|
|
112
|
+
sr-only announcer. display:contents keeps the wrapper visually
|
|
113
|
+
transparent so children participate in the parent flex layout as if
|
|
114
|
+
the wrapper were not there. */
|
|
115
|
+
.alert__default-slot {
|
|
116
|
+
display: contents;
|
|
117
|
+
}
|
|
118
|
+
|
|
110
119
|
/* ─── Actions ─── */
|
|
111
120
|
/* Hidden by default; shown via JS slotchange detection to avoid invisible */
|
|
112
121
|
/* margin-top spacing when no actions are slotted. */
|
package/dist/css/hx-badge.css
CHANGED
|
@@ -201,6 +201,9 @@
|
|
|
201
201
|
@media (forced-colors: active) {
|
|
202
202
|
.badge {
|
|
203
203
|
border: 1px solid CanvasText;
|
|
204
|
+
forced-color-adjust: none;
|
|
205
|
+
background-color: Canvas;
|
|
206
|
+
color: CanvasText;
|
|
204
207
|
}
|
|
205
208
|
|
|
206
209
|
.badge--pulse {
|
|
@@ -210,4 +213,29 @@
|
|
|
210
213
|
.badge__remove-button {
|
|
211
214
|
color: ButtonText;
|
|
212
215
|
}
|
|
216
|
+
|
|
217
|
+
/* Per-semantic-variant forced-colors fallbacks. The visually-hidden
|
|
218
|
+
semantic variant label (.badge__variant-label) keeps AT users
|
|
219
|
+
informed; these blocks restore visual semantic distinction for
|
|
220
|
+
sighted users in HCM where bg/color collapse to system defaults.
|
|
221
|
+
Pattern: distinct border-style per variant. */
|
|
222
|
+
.badge--success {
|
|
223
|
+
border-style: solid;
|
|
224
|
+
border-width: 2px;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.badge--warning {
|
|
228
|
+
border-style: dashed;
|
|
229
|
+
border-width: 2px;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
.badge--error {
|
|
233
|
+
border-style: double;
|
|
234
|
+
border-width: 3px;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
.badge--info {
|
|
238
|
+
border-style: dotted;
|
|
239
|
+
border-width: 2px;
|
|
240
|
+
}
|
|
213
241
|
}
|
package/dist/css/hx-drawer.css
CHANGED
|
@@ -239,6 +239,23 @@
|
|
|
239
239
|
margin: 0;
|
|
240
240
|
}
|
|
241
241
|
|
|
242
|
+
/* ─── Synthesized consumer-description span ─── */
|
|
243
|
+
/* Visually hidden mirror of consumer-resolved aria-describedby text used by */
|
|
244
|
+
/* the host-canonical ARIA pipeline. Always present in the shadow tree so AT */
|
|
245
|
+
/* can resolve the same-root id even when the description is currently empty. */
|
|
246
|
+
|
|
247
|
+
.drawer-sr-only {
|
|
248
|
+
position: absolute;
|
|
249
|
+
width: 1px;
|
|
250
|
+
height: 1px;
|
|
251
|
+
padding: 0;
|
|
252
|
+
margin: -1px;
|
|
253
|
+
overflow: hidden;
|
|
254
|
+
clip: rect(0, 0, 0, 0);
|
|
255
|
+
white-space: nowrap;
|
|
256
|
+
border: 0;
|
|
257
|
+
}
|
|
258
|
+
|
|
242
259
|
/* ─── Body ─── */
|
|
243
260
|
|
|
244
261
|
.drawer-body {
|
|
@@ -151,12 +151,37 @@
|
|
|
151
151
|
multiplicative stacking (0.5 * 0.5 = 0.25). Do not add opacity here. */
|
|
152
152
|
}
|
|
153
153
|
|
|
154
|
+
/* ─── Loading State ─── */
|
|
155
|
+
|
|
156
|
+
.button--loading {
|
|
157
|
+
position: relative;
|
|
158
|
+
cursor: wait;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.button__spinner {
|
|
162
|
+
width: 1em;
|
|
163
|
+
height: 1em;
|
|
164
|
+
flex-shrink: 0;
|
|
165
|
+
animation: hx-icon-button-spin var(--hx-duration-spinner, 750ms) linear infinite;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
@keyframes hx-icon-button-spin {
|
|
169
|
+
to {
|
|
170
|
+
transform: rotate(360deg);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
154
174
|
/* ─── Reduced Motion ─── */
|
|
155
175
|
|
|
156
176
|
@media (prefers-reduced-motion: reduce) {
|
|
157
177
|
.button {
|
|
158
178
|
transition: none;
|
|
159
179
|
}
|
|
180
|
+
|
|
181
|
+
.button__spinner {
|
|
182
|
+
animation: none;
|
|
183
|
+
opacity: var(--hx-opacity-muted, 0.6);
|
|
184
|
+
}
|
|
160
185
|
}
|
|
161
186
|
|
|
162
187
|
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
@@ -184,4 +209,9 @@
|
|
|
184
209
|
:host([disabled]) {
|
|
185
210
|
opacity: 1;
|
|
186
211
|
}
|
|
212
|
+
|
|
213
|
+
.button--loading .button__spinner {
|
|
214
|
+
stroke: ButtonText;
|
|
215
|
+
forced-color-adjust: none;
|
|
216
|
+
}
|
|
187
217
|
}
|