@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-tag.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tag/hx-tag.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"hx-tag.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-tag/hx-tag.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,yBAqL1B,CAAC"}
|
|
@@ -50,8 +50,9 @@ export type ThemeName = 'light' | 'dark' | 'high-contrast' | 'auto';
|
|
|
50
50
|
*
|
|
51
51
|
* @csspart base - The inner slot wrapper element. `display: contents` — no layout effect.
|
|
52
52
|
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
53
|
+
* Theme-injected CSS custom properties (semantic surface — full token catalog
|
|
54
|
+
* lives in `@helixui/tokens`; the wildcard `--hx-*` was previously documented
|
|
55
|
+
* here but the CEM cssProperties[] surface requires explicit names).
|
|
55
56
|
*
|
|
56
57
|
* @example Drupal Twig — wrap a region with a dark theme:
|
|
57
58
|
* ```twig
|
|
@@ -76,9 +77,13 @@ export type ThemeName = 'light' | 'dark' | 'high-contrast' | 'auto';
|
|
|
76
77
|
* <!-- Clinical dashboard content -->
|
|
77
78
|
* </hx-theme>
|
|
78
79
|
* ```
|
|
79
|
-
* @cssprop [--hx-color-text-primary] -
|
|
80
|
-
* @cssprop [--hx-
|
|
81
|
-
* @cssprop [--hx-
|
|
80
|
+
* @cssprop [--hx-color-text-primary] - Primary text color (theme-injected).
|
|
81
|
+
* @cssprop [--hx-color-surface-base] - Base surface background (theme-injected).
|
|
82
|
+
* @cssprop [--hx-color-border-default] - Default border color (theme-injected).
|
|
83
|
+
* @cssprop [--hx-space-4] - Spacing token (theme-injected).
|
|
84
|
+
* @cssprop [--hx-duration-fast] - Animation duration (theme-injected).
|
|
85
|
+
* @cssprop [--hx-radius-md] - Medium border-radius (theme-injected).
|
|
86
|
+
* @cssprop [--hx-font-family-body] - Body font family (theme-injected).
|
|
82
87
|
*/
|
|
83
88
|
export declare class HelixTheme extends HelixElement {
|
|
84
89
|
static styles: import('lit').CSSResult[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-theme.d.ts","sourceRoot":"","sources":["../../../src/components/hx-theme/hx-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUnD,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAC;AA+HpE
|
|
1
|
+
{"version":3,"file":"hx-theme.d.ts","sourceRoot":"","sources":["../../../src/components/hx-theme/hx-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUnD,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAC;AA+HpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,qBACa,UAAW,SAAQ,YAAY;IAC1C,OAAgB,MAAM,4BAAsB;IAE5C;;;;;;;OAOG;IAEH,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAW;IAK7D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IAEH,KAAK,SAAM;IAEX;;;;;;;;;;;OAWG;IAEH,MAAM,EAAE,UAAU,CAAU;IAE5B;;;;;;OAMG;IAEH,OAAO,EAAE,WAAW,CAAiB;IAErC,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAA+B;IAClD,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAA6B;IAClD,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAA8B;IACjD,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAA8B;IACnD,4DAA4D;IAC5D,OAAO,CAAC,YAAY,CAA+B;IACnD,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAA6B;IACnD;;;4EAGwE;IACxE,OAAO,CAAC,qBAAqB,CAAuB;IAE3C,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAWjD,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA2B5C,oBAAoB,IAAI,IAAI;IAMrC;;;;OAIG;IACH,IAAI,cAAc,IAAI,OAAO,GAAG,MAAM,GAAG,eAAe,CAMvD;IAED;;;;OAIG;IACH,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CASxC;IAED,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAcvB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAUzB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAQzB,+EAA+E;IAC/E,OAAO,CAAC,kBAAkB;IAS1B,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAQ1B,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB;IAO5B,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IAgE5B,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAcZ,MAAM;CAQhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,UAAU,CAAC;KACxB;CACF;AAED,6FAA6F;AAC7F,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC"}
|
|
@@ -85,6 +85,14 @@ export declare class HelixTimePicker extends HelixTimePicker_base {
|
|
|
85
85
|
* @internal
|
|
86
86
|
*/
|
|
87
87
|
static formAssociated: boolean;
|
|
88
|
+
/**
|
|
89
|
+
* Test seam: when set to `true` or `false`, overrides the platform
|
|
90
|
+
* `supportsIdrefElementReferences` probe before `connectedCallback` seeds
|
|
91
|
+
* `_supportsIdrefRefs`. Production code MUST NOT touch this field. It is a
|
|
92
|
+
* `static` so the test stub cleanup is global and obvious.
|
|
93
|
+
* @internal
|
|
94
|
+
*/
|
|
95
|
+
static __testSupportsIdrefRefsOverride: boolean | null;
|
|
88
96
|
/**
|
|
89
97
|
* The name submitted with the form. Value is always HH:MM (24-hour).
|
|
90
98
|
* @attr name
|
|
@@ -135,6 +143,13 @@ export declare class HelixTimePicker extends HelixTimePicker_base {
|
|
|
135
143
|
* @attr format
|
|
136
144
|
*/
|
|
137
145
|
format: '12h' | '24h';
|
|
146
|
+
/**
|
|
147
|
+
* Accessible name for screen readers, if different from the visible label.
|
|
148
|
+
* Uses `accessible-label` attribute instead of `aria-label` to avoid
|
|
149
|
+
* ARIAMixin shadowing on the host element. Highest-precedence naming source.
|
|
150
|
+
* @attr accessible-label
|
|
151
|
+
*/
|
|
152
|
+
accessibleLabel: string | null;
|
|
138
153
|
/**
|
|
139
154
|
* Whether the dropdown listbox is currently open.
|
|
140
155
|
* @internal
|
|
@@ -166,10 +181,36 @@ export declare class HelixTimePicker extends HelixTimePicker_base {
|
|
|
166
181
|
*/
|
|
167
182
|
private _hasHelpSlot;
|
|
168
183
|
/**
|
|
169
|
-
*
|
|
184
|
+
* Source of the accessible name. Discriminated union avoids string sentinels.
|
|
170
185
|
* @internal
|
|
171
186
|
*/
|
|
172
|
-
private
|
|
187
|
+
private _labelSource;
|
|
188
|
+
/**
|
|
189
|
+
* Flattened, trimmed text content from all label-slot nodes — used to drive
|
|
190
|
+
* the inner input's `aria-label` on the no-IDL-ref fallback path and to
|
|
191
|
+
* gate `_hasLabelSlot` per AccName 1.2.
|
|
192
|
+
* @internal
|
|
193
|
+
*/
|
|
194
|
+
private _labelSlotText;
|
|
195
|
+
/**
|
|
196
|
+
* Whether the platform supports IDL element references on `ElementInternals`.
|
|
197
|
+
* Drives the cross-shadow naming strategy for the inner `<input>`.
|
|
198
|
+
* @internal
|
|
199
|
+
*/
|
|
200
|
+
private _supportsIdrefRefs;
|
|
201
|
+
/**
|
|
202
|
+
* Cached invalidity flag derived from `internals.validity.valid`, the
|
|
203
|
+
* `error` property, and the slotted error content. Drives `aria-invalid`
|
|
204
|
+
* on the inner input.
|
|
205
|
+
* @internal
|
|
206
|
+
*/
|
|
207
|
+
private _invalid;
|
|
208
|
+
/**
|
|
209
|
+
* Deferred copy of `error` driven through reactive state so the persistent
|
|
210
|
+
* live region can re-announce on transitions without direct DOM mutation.
|
|
211
|
+
* @internal
|
|
212
|
+
*/
|
|
213
|
+
private _announcedError;
|
|
173
214
|
private readonly _id;
|
|
174
215
|
/**
|
|
175
216
|
* Unique ID for the listbox element, referenced by `aria-controls` on the combobox input.
|
|
@@ -186,6 +227,22 @@ export declare class HelixTimePicker extends HelixTimePicker_base {
|
|
|
186
227
|
* @internal
|
|
187
228
|
*/
|
|
188
229
|
private readonly _helpId;
|
|
230
|
+
/**
|
|
231
|
+
* Unique ID for the internal `<label>` element, referenced by inner input
|
|
232
|
+
* `aria-labelledby` when the `label` property names the field.
|
|
233
|
+
* @internal
|
|
234
|
+
*/
|
|
235
|
+
private readonly _labelId;
|
|
236
|
+
/**
|
|
237
|
+
* Id of the synthesized in-shadow span that mirrors the consumer-resolved
|
|
238
|
+
* description text. Appended to the inner input's `aria-describedby` so AT
|
|
239
|
+
* picks the consumer description up through the standard described-by
|
|
240
|
+
* channel — `aria-description` is intentionally NOT written, because the
|
|
241
|
+
* W3C AccName algorithm ignores `aria-description` whenever
|
|
242
|
+
* `aria-describedby` is also present.
|
|
243
|
+
* @internal
|
|
244
|
+
*/
|
|
245
|
+
private readonly _consumerDescId;
|
|
189
246
|
/**
|
|
190
247
|
* Reference to the text input element inside the shadow DOM.
|
|
191
248
|
* @internal
|
|
@@ -211,6 +268,64 @@ export declare class HelixTimePicker extends HelixTimePicker_base {
|
|
|
211
268
|
* @internal
|
|
212
269
|
*/
|
|
213
270
|
private get _slots();
|
|
271
|
+
/** Handle for the shared IDREF observer. @internal */
|
|
272
|
+
private _ariaMirror;
|
|
273
|
+
/**
|
|
274
|
+
* Watches assigned `<slot name="help-text">` nodes for in-place text
|
|
275
|
+
* mutations so help-text effective state stays in sync with consumer
|
|
276
|
+
* `textContent` writes that don't trigger a `slotchange` event.
|
|
277
|
+
* @internal
|
|
278
|
+
*/
|
|
279
|
+
private _helpSlotTextObserver;
|
|
280
|
+
/**
|
|
281
|
+
* Watches assigned `<slot name="error">` nodes for in-place text mutations.
|
|
282
|
+
* @internal
|
|
283
|
+
*/
|
|
284
|
+
private _errorSlotTextObserver;
|
|
285
|
+
/**
|
|
286
|
+
* Dedicated host observer scoped to `aria-describedby` with
|
|
287
|
+
* `attributeOldValue: true`. Governed by the disconnect-during-strip
|
|
288
|
+
* discipline.
|
|
289
|
+
* @internal
|
|
290
|
+
*/
|
|
291
|
+
private _hostDescribedByObserver;
|
|
292
|
+
/**
|
|
293
|
+
* Most recently observed *consumer-supplied* `aria-labelledby` baseline.
|
|
294
|
+
* Refreshed on every sync. Modern + legacy paths leave the host attribute
|
|
295
|
+
* in place, so the live attribute IS the cache.
|
|
296
|
+
* @internal
|
|
297
|
+
*/
|
|
298
|
+
private _consumerLabelledBy;
|
|
299
|
+
/** @internal — see `_consumerLabelledBy`. */
|
|
300
|
+
private _consumerDescribedBy;
|
|
301
|
+
/**
|
|
302
|
+
* Direct references to ALL labellable elements projected into
|
|
303
|
+
* `<slot name="label">`. Aggregating every assigned element preserves
|
|
304
|
+
* composed labels such as
|
|
305
|
+
* `<svg slot="label" aria-hidden="true">…</svg><span slot="label">Time</span>`.
|
|
306
|
+
* The modern path passes the visible subset to
|
|
307
|
+
* `internals.ariaLabelledByElements`; the fallback path text-flattens every
|
|
308
|
+
* non-hidden node into `_labelSlotText` per AccName 1.2.
|
|
309
|
+
* @internal
|
|
310
|
+
*/
|
|
311
|
+
private _slottedLabelEls;
|
|
312
|
+
/**
|
|
313
|
+
* Watches in-place text mutations on the assigned slotted label nodes. The
|
|
314
|
+
* `slotchange` event covers add/remove/replace; this MO covers
|
|
315
|
+
* `node.textContent = '…'` updates on an unchanged node (consumer i18n
|
|
316
|
+
* re-renders) and `aria-hidden` / `hidden` toggles per AccName 1.2 §4.3.10.
|
|
317
|
+
* @internal
|
|
318
|
+
*/
|
|
319
|
+
private _labelSlotTextObserver;
|
|
320
|
+
/**
|
|
321
|
+
* Watches in-place text mutations on consumer light-DOM elements resolved
|
|
322
|
+
* from host `aria-labelledby` / `aria-describedby`. Without this, a consumer
|
|
323
|
+
* keeping the same `<label id="…">` but mutating its `textContent` (e.g.
|
|
324
|
+
* i18n re-render) would leave the inner input's `aria-label` and
|
|
325
|
+
* synthesized description span stale indefinitely.
|
|
326
|
+
* @internal
|
|
327
|
+
*/
|
|
328
|
+
private _externalRefsObserver;
|
|
214
329
|
/**
|
|
215
330
|
* Closes the listbox when a click is detected outside the component; bound for stable add/removeEventListener calls.
|
|
216
331
|
* @internal
|
|
@@ -220,6 +335,99 @@ export declare class HelixTimePicker extends HelixTimePicker_base {
|
|
|
220
335
|
disconnectedCallback(): void;
|
|
221
336
|
willUpdate(changed: PropertyValues<this>): void;
|
|
222
337
|
updated(changed: PropertyValues<this>): void;
|
|
338
|
+
firstUpdated(changed: PropertyValues<this>): void;
|
|
339
|
+
/**
|
|
340
|
+
* Synchronous slot-state seed. Mirrors the side effects of the three
|
|
341
|
+
* `_handle*SlotChange` handlers (label / help-text / error) but is driven by
|
|
342
|
+
* direct `slot.assignedNodes()` reads so we can populate state BEFORE the
|
|
343
|
+
* microtask `slotchange` events fire after the first render.
|
|
344
|
+
* @internal
|
|
345
|
+
*/
|
|
346
|
+
private _seedSlotStateSync;
|
|
347
|
+
/**
|
|
348
|
+
* Reads the label slot's assigned nodes and computes the discriminated
|
|
349
|
+
* naming state. An empty whitespace-only slot does NOT count as a useful
|
|
350
|
+
* name. Aggregates ALL assigned elements (not just the first); per AccName
|
|
351
|
+
* 1.2 §4.3.10, `aria-hidden="true"` and `[hidden]` elements contribute zero
|
|
352
|
+
* to the accessible name (their text is skipped during flattening).
|
|
353
|
+
* @internal
|
|
354
|
+
*/
|
|
355
|
+
private _readLabelSlotState;
|
|
356
|
+
/**
|
|
357
|
+
* Re-evaluate the help-text slot's "has meaningful content" state from its
|
|
358
|
+
* current effective text. Mirrors the slotchange-handler logic but is
|
|
359
|
+
* invocable from the in-place mutation observer so that clearing
|
|
360
|
+
* `textContent` on the same slotted node flips `_hasHelpSlot` back to
|
|
361
|
+
* `false`. Uses AccName-aware flatten so descendants carrying
|
|
362
|
+
* `aria-hidden="true"` or `hidden` do NOT count toward "has meaningful
|
|
363
|
+
* content".
|
|
364
|
+
* @internal
|
|
365
|
+
*/
|
|
366
|
+
private _readHelpSlotStateSync;
|
|
367
|
+
/**
|
|
368
|
+
* Re-evaluate the error slot's "has meaningful content" state from its
|
|
369
|
+
* current effective text. AccName-aware so visibility-suppressed roots /
|
|
370
|
+
* descendants don't keep the field stuck in error state.
|
|
371
|
+
* @internal
|
|
372
|
+
*/
|
|
373
|
+
private _readErrorSlotStateSync;
|
|
374
|
+
/**
|
|
375
|
+
* (Re-)installs a `MutationObserver` against the deduped union of
|
|
376
|
+
* consumer-resolved label/description elements. Watches `characterData`,
|
|
377
|
+
* `childList`, `subtree`, and aria-hidden/hidden attribute toggles so any
|
|
378
|
+
* in-place text or visibility mutation triggers a fresh sync.
|
|
379
|
+
* @internal
|
|
380
|
+
*/
|
|
381
|
+
private _installExternalRefsObserver;
|
|
382
|
+
/**
|
|
383
|
+
* Resolves consumer-supplied label/description IDREFs on the host and writes
|
|
384
|
+
* the canonical combobox ARIA onto the **inner `<input>`** per W3C APG
|
|
385
|
+
* editable combobox pattern. The inner input owns `role="combobox"`
|
|
386
|
+
* (replacing its implicit textbox role) and all combobox state ARIA so AT
|
|
387
|
+
* sees a single announced + focused surface.
|
|
388
|
+
*
|
|
389
|
+
* Cross-shadow naming uses a belt-and-suspenders strategy:
|
|
390
|
+
*
|
|
391
|
+
* 1. **Modern path** (`_supportsIdrefRefs === true`): consumer-resolved
|
|
392
|
+
* label/description elements are written onto
|
|
393
|
+
* `internals.ariaLabelledByElements` / `internals.ariaDescribedByElements`
|
|
394
|
+
* on the host. Host-level `aria-labelledby` / `aria-describedby`
|
|
395
|
+
* attributes are LEFT IN PLACE so AT walking up the DOM also sees them.
|
|
396
|
+
* The text content of the resolved elements is also flattened onto the
|
|
397
|
+
* inner input as `aria-label` so AT that does not walk up still
|
|
398
|
+
* announces the right name.
|
|
399
|
+
*
|
|
400
|
+
* 2. **Legacy fallback** (`_supportsIdrefRefs === false`): the resolved-
|
|
401
|
+
* element text is flattened onto the inner input as `aria-label` and
|
|
402
|
+
* mirrored into a synthesized in-shadow span pointed at by the inner
|
|
403
|
+
* input's `aria-describedby`.
|
|
404
|
+
*
|
|
405
|
+
* Writing `aria-labelledby="<light-DOM id>"` directly on the shadow-DOM
|
|
406
|
+
* inner input is INTENTIONALLY avoided: light-DOM ids do not resolve from
|
|
407
|
+
* inside a shadow root.
|
|
408
|
+
* @internal
|
|
409
|
+
*/
|
|
410
|
+
private _syncHostAriaSemantics;
|
|
411
|
+
/**
|
|
412
|
+
* (Re-)installs the help-text slot text/visibility observer.
|
|
413
|
+
* @internal
|
|
414
|
+
*/
|
|
415
|
+
private _installHelpSlotTextObserver;
|
|
416
|
+
/**
|
|
417
|
+
* (Re-)installs the error slot text/visibility observer.
|
|
418
|
+
* @internal
|
|
419
|
+
*/
|
|
420
|
+
private _installErrorSlotTextObserver;
|
|
421
|
+
/**
|
|
422
|
+
* (Re-)installs the label slot text/visibility observer over the current
|
|
423
|
+
* set of slotted label elements.
|
|
424
|
+
* @internal
|
|
425
|
+
*/
|
|
426
|
+
private _installLabelSlotTextObserver;
|
|
427
|
+
/**
|
|
428
|
+
* Recomputes the discriminated label source. @internal
|
|
429
|
+
*/
|
|
430
|
+
private _refreshLabelSource;
|
|
223
431
|
/** @internal */
|
|
224
432
|
_updateValidity(): void;
|
|
225
433
|
/** @internal */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-time-picker.d.ts","sourceRoot":"","sources":["../../../src/components/hx-time-picker/hx-time-picker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAmB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"hx-time-picker.d.ts","sourceRoot":"","sources":["../../../src/components/hx-time-picker/hx-time-picker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-time-picker.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-time-picker/hx-time-picker.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"hx-time-picker.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-time-picker/hx-time-picker.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,yBAkPjC,CAAC"}
|
|
@@ -13,6 +13,20 @@ export type ToastStackPlacement = 'top-start' | 'top-center' | 'top-end' | 'bott
|
|
|
13
13
|
* @csspart base - The inner stack container div.
|
|
14
14
|
*
|
|
15
15
|
* @cssprop [--hx-z-index-toast=9000] - Z-index for the fixed stack.
|
|
16
|
+
*
|
|
17
|
+
* ─── ARIA scope (group-6 §3.2 / §5.9) ─────────────────────────────────────
|
|
18
|
+
*
|
|
19
|
+
* `hx-toast-stack` deliberately has NO `role`, `aria-live`, `aria-atomic`,
|
|
20
|
+
* or `aria-relevant` on its host or inner container. Each child `hx-toast`
|
|
21
|
+
* is its own live region (role=alert/status via ElementInternals). Wrapping
|
|
22
|
+
* those toasts in a second live region (e.g. `role="log"` on the stack)
|
|
23
|
+
* would create nested live regions, which causes older NVDA/JAWS to
|
|
24
|
+
* announce every toast TWICE — once for the toast's own role, once for the
|
|
25
|
+
* surrounding log region.
|
|
26
|
+
*
|
|
27
|
+
* The stack is purely a positional/z-index container; it is invisible to
|
|
28
|
+
* the AT tree. Do NOT add a container role unless this entire architecture
|
|
29
|
+
* is rewritten so individual toasts no longer carry their own roles.
|
|
16
30
|
*/
|
|
17
31
|
export declare class HelixToastStack extends HelixElement {
|
|
18
32
|
static styles: import('lit').CSSResult[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-toast-stack.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toast/hx-toast-stack.ts"],"names":[],"mappings":"AACA,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,YAAY,GACZ,SAAS,GACT,cAAc,GACd,eAAe,GACf,YAAY,CAAC;AAEjB
|
|
1
|
+
{"version":3,"file":"hx-toast-stack.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toast/hx-toast-stack.ts"],"names":[],"mappings":"AACA,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,MAAM,mBAAmB,GAC3B,WAAW,GACX,YAAY,GACZ,SAAS,GACT,cAAc,GACd,eAAe,GACf,YAAY,CAAC;AAEjB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBACa,eAAgB,SAAQ,YAAY;IAC/C,OAAgB,MAAM,4BAA2B;IAEjD;;;OAGG;IAEH,SAAS,EACL,WAAW,GACX,YAAY,GACZ,SAAS,GACT,cAAc,GACd,eAAe,GACf,YAAY,CAAgB;IAEhC;;;OAGG;IAEH,UAAU,SAAK;IAEN,MAAM;CAahB;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,eAAe,CAAC;KACnC;CACF"}
|
|
@@ -97,8 +97,22 @@ export declare class HelixToast extends HelixElement {
|
|
|
97
97
|
private _timerStartedAt;
|
|
98
98
|
/** @internal */
|
|
99
99
|
private _timerRemaining;
|
|
100
|
+
connectedCallback(): void;
|
|
100
101
|
updated(changedProperties: PropertyValues<this>): void;
|
|
101
102
|
disconnectedCallback(): void;
|
|
103
|
+
/**
|
|
104
|
+
* (group-6 §5.3) WCAG 2.2.3 (Level AA — No Time Limits) audit. When
|
|
105
|
+
* `duration` is shorter than the role-implied minimum-display-time for the
|
|
106
|
+
* current variant, surface a developer warning recommending a longer
|
|
107
|
+
* duration or `duration=0` for persistent toasts. Danger toasts in
|
|
108
|
+
* particular are safety-critical and routinely need more than 5 seconds
|
|
109
|
+
* for screen readers to finish reading.
|
|
110
|
+
*
|
|
111
|
+
* Fires only in DEV builds (Vite tree-shakes the call in production).
|
|
112
|
+
*
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
private _auditWcag223;
|
|
102
116
|
/** Show the toast. */
|
|
103
117
|
show(): void;
|
|
104
118
|
/** Hide the toast. */
|
|
@@ -127,11 +141,16 @@ export declare class HelixToast extends HelixElement {
|
|
|
127
141
|
private _handleClose;
|
|
128
142
|
/** @internal */
|
|
129
143
|
private _handleActionSlotChange;
|
|
130
|
-
/**
|
|
144
|
+
/**
|
|
145
|
+
* @internal
|
|
146
|
+
* Variant→role mapping (harmonized with hx-alert/hx-banner per group-6):
|
|
147
|
+
* only `danger` is assertive (role=alert); all other variants are polite
|
|
148
|
+
* (role=status). role implies aria-live, so we do NOT also expose an
|
|
149
|
+
* `_ariaLive` getter — that path was removed when the inner div stopped
|
|
150
|
+
* carrying explicit aria-live (§5.1 double-announce mitigation).
|
|
151
|
+
*/
|
|
131
152
|
private get _role();
|
|
132
153
|
/** @internal */
|
|
133
|
-
private get _ariaLive();
|
|
134
|
-
/** @internal */
|
|
135
154
|
private _renderSuccessIcon;
|
|
136
155
|
/** @internal */
|
|
137
156
|
private _renderWarningIcon;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-toast.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toast/hx-toast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"hx-toast.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toast/hx-toast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AACzD,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAejF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,qBACa,UAAW,SAAQ,YAAY;IAO1C,OAAgB,MAAM,4BAAsB;IAI5C;;;OAGG;IAEH,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAa;IAE3E;;;OAGG;IAEH,QAAQ,SAAQ;IAEhB;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;OAGG;IAEH,IAAI,UAAS;IAEb;;;OAGG;IAEH,UAAU,SAA0B;IAIpC,gBAAgB;IACC,OAAO,CAAC,QAAQ,CAAsB;IAEvD,oEAAoE;IAC3D,OAAO,CAAC,iBAAiB,CAAS;IAE3C,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAA8C;IAI5D,0EAA0E;IAC1E,OAAO,KAAK,cAAc,GAIzB;IAED,gBAAgB;IAChB,OAAO,CAAC,eAAe,CAAuB;IAE9C,gBAAgB;IAChB,OAAO,CAAC,eAAe,CAAuB;IAIrC,iBAAiB,IAAI,IAAI;IAsBzB,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA0BtD,oBAAoB,IAAI,IAAI;IAKrC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,aAAa;IAarB,sBAAsB;IACtB,IAAI,IAAI,IAAI;IAMZ,sBAAsB;IACtB,IAAI,IAAI,IAAI;IAQZ,gBAAgB;IAChB,OAAO,CAAC,WAAW;IAUnB,gBAAgB;IAChB,OAAO,CAAC,WAAW;IASnB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAOzB,gBAAgB;IAChB,OAAO,CAAC,WAAW;IAMnB,gBAAgB;IAChB,OAAO,CAAC,SAAS;IAIjB,gBAAgB;IAChB,OAAO,CAAC,SAAS;IAsBjB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAIzB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAMzB,gBAAgB;IAChB,OAAO,CAAC,cAAc;IAItB,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAMvB,gBAAgB;IAChB,OAAO,CAAC,YAAY;IAIpB,gBAAgB;IAChB,OAAO,CAAC,uBAAuB;IAU/B;;;;;;;OAOG;IACH,OAAO,KAAK,KAAK,GAEhB;IAMD,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAS1B,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAS1B,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IASzB,gBAAgB;IAChB,OAAO,CAAC,eAAe;IASvB,4FAA4F;IAC5F,OAAO,KAAK,YAAY,GAavB;IAID,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAKtC;IAEF,gBAAgB;IAChB,OAAO,KAAK,cAAc,GAEzB;IAYQ,MAAM;CA0DhB;AAID,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,UAAU,CAAC;KACxB;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toast-factory.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toast/toast-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"toast-factory.d.ts","sourceRoot":"","sources":["../../../src/components/hx-toast/toast-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC;AA6BD;;;;;;;;;;GAUG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,YAAY,GAAG,UAAU,CA4EvD"}
|
|
@@ -1,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 (
|
|
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
|
-
*
|
|
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
|
|
221
|
+
private _isOwnEvent;
|
|
129
222
|
/**
|
|
130
|
-
*
|
|
223
|
+
* Toggles the expanded state when the expand/collapse button is clicked, stopping event propagation.
|
|
131
224
|
* @internal
|
|
132
225
|
*/
|
|
133
|
-
private
|
|
226
|
+
private _handleExpandClick;
|
|
134
227
|
/**
|
|
135
|
-
*
|
|
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
|
|
142
|
-
* Tab-reachable
|
|
143
|
-
* Called by the parent hx-tree-view
|
|
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
|
-
/**
|
|
147
|
-
|
|
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
|