@helixui/library 3.3.1 → 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 +340 -71
- package/dist/components/hx-accordion/hx-accordion-item.d.ts +35 -0
- package/dist/components/hx-accordion/hx-accordion-item.d.ts.map +1 -1
- 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 +153 -1
- package/dist/components/hx-checkbox/hx-checkbox.d.ts.map +1 -1
- package/dist/components/hx-checkbox/hx-checkbox.styles.d.ts.map +1 -1
- package/dist/components/hx-checkbox/index.js +1 -1
- package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts +151 -2
- package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
- package/dist/components/hx-checkbox-group/index.js +1 -1
- package/dist/components/hx-color-picker/hx-color-picker.d.ts +163 -1
- package/dist/components/hx-color-picker/hx-color-picker.d.ts.map +1 -1
- package/dist/components/hx-color-picker/hx-color-picker.styles.d.ts.map +1 -1
- package/dist/components/hx-color-picker/index.js +1 -1
- package/dist/components/hx-combobox/hx-combobox.d.ts +311 -2
- package/dist/components/hx-combobox/hx-combobox.d.ts.map +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/hx-date-picker.d.ts +182 -56
- package/dist/components/hx-date-picker/hx-date-picker.d.ts.map +1 -1
- package/dist/components/hx-date-picker/hx-date-picker.styles.d.ts.map +1 -1
- package/dist/components/hx-date-picker/index.js +1 -1
- package/dist/components/hx-dialog/hx-dialog.d.ts +240 -0
- package/dist/components/hx-dialog/hx-dialog.d.ts.map +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 +168 -0
- 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-field/hx-field.d.ts +109 -0
- package/dist/components/hx-field/hx-field.d.ts.map +1 -1
- package/dist/components/hx-field/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/hx-popover.d.ts +91 -0
- package/dist/components/hx-popover/hx-popover.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/hx-radio-group.d.ts +152 -1
- package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
- package/dist/components/hx-radio-group/hx-radio.d.ts +14 -0
- package/dist/components/hx-radio-group/hx-radio.d.ts.map +1 -1
- package/dist/components/hx-radio-group/index.js +1 -1
- package/dist/components/hx-select/hx-select.d.ts +304 -2
- package/dist/components/hx-select/hx-select.d.ts.map +1 -1
- package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
- package/dist/components/hx-select/index.js +1 -1
- package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
- package/dist/components/hx-side-nav/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/hx-switch.d.ts +78 -1
- package/dist/components/hx-switch/hx-switch.d.ts.map +1 -1
- package/dist/components/hx-switch/hx-switch.styles.d.ts.map +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/hx-toggle-button.d.ts +110 -0
- package/dist/components/hx-toggle-button/hx-toggle-button.d.ts.map +1 -1
- package/dist/components/hx-toggle-button/hx-toggle-button.styles.d.ts.map +1 -1
- package/dist/components/hx-toggle-button/index.js +1 -1
- package/dist/components/hx-tooltip/hx-tooltip.d.ts +52 -0
- package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
- package/dist/components/hx-tooltip/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 +221 -1
- package/dist/css/helix-core.css +81 -0
- package/dist/css/helix-feedback.css +14 -0
- package/dist/css/helix-forms.css +109 -1
- 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-checkbox.css +18 -0
- package/dist/css/hx-color-picker.css +25 -0
- package/dist/css/hx-date-picker.css +2 -1
- 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-select.css +19 -0
- package/dist/css/hx-switch.css +17 -0
- package/dist/css/hx-tag.css +23 -0
- package/dist/css/hx-time-picker.css +11 -0
- package/dist/css/hx-toggle-button.css +17 -0
- package/dist/css/index.css +1 -1
- package/dist/css/manifest.json +4 -1
- package/dist/index.js +38 -38
- package/dist/shared/aria-flatten-DY6v2vah.js +22 -0
- package/dist/shared/aria-flatten-DY6v2vah.js.map +1 -0
- package/dist/shared/aria-idref-CxvyzfQS.js +126 -0
- package/dist/shared/aria-idref-CxvyzfQS.js.map +1 -0
- package/dist/shared/hx-accordion-ZVzgDzTG.js.map +1 -1
- 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-C48KYKFq.js +696 -0
- package/dist/shared/hx-checkbox-C48KYKFq.js.map +1 -0
- package/dist/shared/hx-checkbox-group-BJIAX3zU.js +496 -0
- package/dist/shared/hx-checkbox-group-BJIAX3zU.js.map +1 -0
- package/dist/shared/hx-color-picker-Dk4cBwYQ.js +1221 -0
- package/dist/shared/hx-color-picker-Dk4cBwYQ.js.map +1 -0
- package/dist/shared/hx-combobox-BTLO9qiK.js +1359 -0
- package/dist/shared/hx-combobox-BTLO9qiK.js.map +1 -0
- 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-2iRG1p74.js → hx-date-picker-CiR7FVnR.js} +542 -206
- package/dist/shared/hx-date-picker-CiR7FVnR.js.map +1 -0
- package/dist/shared/hx-dialog-AOZpHSuF.js +717 -0
- package/dist/shared/hx-dialog-AOZpHSuF.js.map +1 -0
- 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-field-B3Qo8OLS.js → hx-field-zw0U1KVi.js} +99 -38
- package/dist/shared/hx-field-zw0U1KVi.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-nav-item-xqRPOCWX.js → hx-nav-item-CODtUlew.js} +13 -9
- package/dist/shared/{hx-nav-item-xqRPOCWX.js.map → hx-nav-item-CODtUlew.js.map} +1 -1
- 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-B-FP3-wW.js → hx-popover-B9W8-tC0.js} +123 -66
- package/dist/shared/hx-popover-B9W8-tC0.js.map +1 -0
- 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-Z1lV1zTO.js +822 -0
- package/dist/shared/hx-radio-Z1lV1zTO.js.map +1 -0
- package/dist/shared/hx-select-D18CnJ0e.js +1089 -0
- 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-B6kr-EwE.js +540 -0
- package/dist/shared/hx-switch-B6kr-EwE.js.map +1 -0
- 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-iLiYrMbD.js → hx-toggle-button-BQ81EDkl.js} +226 -65
- package/dist/shared/hx-toggle-button-BQ81EDkl.js.map +1 -0
- package/dist/shared/{hx-tooltip-nYOv9OLu.js → hx-tooltip-DVqtKPCD.js} +68 -46
- package/dist/shared/hx-tooltip-DVqtKPCD.js.map +1 -0
- 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-flatten.d.ts +56 -0
- package/dist/utils/aria-flatten.d.ts.map +1 -0
- package/dist/utils/aria-idref.d.ts +127 -0
- package/dist/utils/aria-idref.d.ts.map +1 -0
- 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 +132 -20
- package/package.json +2 -2
- 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-D7xma9YH.js +0 -524
- package/dist/shared/hx-checkbox-D7xma9YH.js.map +0 -1
- package/dist/shared/hx-checkbox-group-C9n315Ju.js +0 -323
- package/dist/shared/hx-checkbox-group-C9n315Ju.js.map +0 -1
- package/dist/shared/hx-color-picker-uRc865FJ.js +0 -882
- package/dist/shared/hx-color-picker-uRc865FJ.js.map +0 -1
- package/dist/shared/hx-combobox-DDzqNKEW.js +0 -924
- package/dist/shared/hx-combobox-DDzqNKEW.js.map +0 -1
- package/dist/shared/hx-date-picker-2iRG1p74.js.map +0 -1
- package/dist/shared/hx-dialog-DRN_1-Y-.js +0 -514
- package/dist/shared/hx-dialog-DRN_1-Y-.js.map +0 -1
- package/dist/shared/hx-drawer-Y1Ui2IWJ.js.map +0 -1
- package/dist/shared/hx-dropdown-LyaRc8Rf.js +0 -263
- package/dist/shared/hx-dropdown-LyaRc8Rf.js.map +0 -1
- package/dist/shared/hx-field-B3Qo8OLS.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-popover-B-FP3-wW.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-radio-CJvNU2yP.js +0 -621
- package/dist/shared/hx-radio-CJvNU2yP.js.map +0 -1
- package/dist/shared/hx-select-C8fEHQhC.js +0 -807
- package/dist/shared/hx-select-C8fEHQhC.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-switch-BrZFaRue.js +0 -420
- package/dist/shared/hx-switch-BrZFaRue.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-toggle-button-iLiYrMbD.js.map +0 -1
- package/dist/shared/hx-tooltip-nYOv9OLu.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
package/dist/css/helix-forms.css
CHANGED
|
@@ -72,6 +72,23 @@
|
|
|
72
72
|
|
|
73
73
|
/* ─── Focus Ring ─── */
|
|
74
74
|
|
|
75
|
+
/*
|
|
76
|
+
* Host-focus path: on the modern (IDL element-references) render branch the
|
|
77
|
+
* host is the tabbable surface (tabindex=0) and the inner input is demoted
|
|
78
|
+
* to tabindex=-1. Drive the focus ring from ':host(:focus-visible)' so
|
|
79
|
+
* keyboard users still get a visible affordance. Codex round-11 P1.
|
|
80
|
+
*/
|
|
81
|
+
:host(:focus-visible) .checkbox__box {
|
|
82
|
+
outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
|
|
83
|
+
var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
84
|
+
outline-offset: var(--hx-checkbox-focus-ring-offset, var(--hx-focus-ring-offset, 2px));
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/*
|
|
88
|
+
* Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
|
|
89
|
+
* input is the tab target. The native :focus-visible on the input drives
|
|
90
|
+
* the same visual ring, scoped via the inner-state class.
|
|
91
|
+
*/
|
|
75
92
|
.checkbox__input:focus-visible ~ .checkbox__box {
|
|
76
93
|
outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
|
|
77
94
|
var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
@@ -226,6 +243,7 @@
|
|
|
226
243
|
border: 2px solid ButtonText;
|
|
227
244
|
}
|
|
228
245
|
|
|
246
|
+
:host(:focus-visible) .checkbox__box,
|
|
229
247
|
.checkbox__input:focus-visible ~ .checkbox__box {
|
|
230
248
|
outline: 3px solid Highlight;
|
|
231
249
|
outline-offset: 2px;
|
|
@@ -402,6 +420,31 @@
|
|
|
402
420
|
pointer-events: none;
|
|
403
421
|
opacity: var(--hx-opacity-disabled, 0.5);
|
|
404
422
|
}
|
|
423
|
+
/* Slotted label / help / error blocks for cross-shadow naming. */
|
|
424
|
+
.hx-color-picker__label {
|
|
425
|
+
display: block;
|
|
426
|
+
margin-bottom: var(--hx-space-1, 0.25rem);
|
|
427
|
+
font-weight: var(--hx-font-weight-semibold, 600);
|
|
428
|
+
color: var(--hx-color-neutral-900, #1a1a1a);
|
|
429
|
+
}
|
|
430
|
+
.hx-color-picker__label:empty {
|
|
431
|
+
display: none;
|
|
432
|
+
}
|
|
433
|
+
.hx-color-picker__help {
|
|
434
|
+
display: block;
|
|
435
|
+
margin-top: var(--hx-space-1, 0.25rem);
|
|
436
|
+
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
437
|
+
color: var(--hx-color-neutral-600, #525252);
|
|
438
|
+
}
|
|
439
|
+
.hx-color-picker__error {
|
|
440
|
+
display: block;
|
|
441
|
+
margin-top: var(--hx-space-1, 0.25rem);
|
|
442
|
+
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
443
|
+
color: var(--hx-color-danger-700, #c43e3e);
|
|
444
|
+
}
|
|
445
|
+
[hidden] {
|
|
446
|
+
display: none !important;
|
|
447
|
+
}
|
|
405
448
|
.trigger {
|
|
406
449
|
display: inline-flex;
|
|
407
450
|
align-items: center;
|
|
@@ -1398,7 +1441,8 @@
|
|
|
1398
1441
|
Live region (screen reader announcements)
|
|
1399
1442
|
============================================================ */
|
|
1400
1443
|
|
|
1401
|
-
.calendar__live-region
|
|
1444
|
+
.calendar__live-region,
|
|
1445
|
+
.field__sr-only {
|
|
1402
1446
|
position: absolute;
|
|
1403
1447
|
width: 1px;
|
|
1404
1448
|
height: 1px;
|
|
@@ -2615,6 +2659,11 @@
|
|
|
2615
2659
|
/* ─── 3-tier token cascade: component → semantic → hardcoded fallback ─── */
|
|
2616
2660
|
:host {
|
|
2617
2661
|
display: block;
|
|
2662
|
+
/* Round-3 finding 1: host is the canonical combobox surface, so it owns
|
|
2663
|
+
keyboard focus. Suppress the UA default outline; the custom focus ring
|
|
2664
|
+
is painted on the inner trigger via :host(:focus-visible)
|
|
2665
|
+
.field__trigger so visual feedback follows the host's focus state. */
|
|
2666
|
+
outline: none;
|
|
2618
2667
|
|
|
2619
2668
|
/* Background & foreground */
|
|
2620
2669
|
--_bg: var(--hx-select-bg, var(--hx-color-surface-default, #ffffff));
|
|
@@ -2691,6 +2740,12 @@
|
|
|
2691
2740
|
}
|
|
2692
2741
|
|
|
2693
2742
|
.field__trigger {
|
|
2743
|
+
/* Round-3 finding 1 / CodeRabbit F1: trigger is a <button type="button">
|
|
2744
|
+
(labelable) so native <label for> click activation works for mouse
|
|
2745
|
+
users. Reset native button chrome before applying field styles. */
|
|
2746
|
+
appearance: none;
|
|
2747
|
+
-webkit-appearance: none;
|
|
2748
|
+
margin: 0;
|
|
2694
2749
|
display: flex;
|
|
2695
2750
|
align-items: center;
|
|
2696
2751
|
justify-content: space-between;
|
|
@@ -2701,6 +2756,7 @@
|
|
|
2701
2756
|
border-radius: var(--_border-radius);
|
|
2702
2757
|
background-color: var(--_bg);
|
|
2703
2758
|
color: var(--_color);
|
|
2759
|
+
font: inherit;
|
|
2704
2760
|
font-family: inherit;
|
|
2705
2761
|
font-size: var(--hx-font-size-md, 1rem);
|
|
2706
2762
|
line-height: var(--hx-line-height-normal, 1.5);
|
|
@@ -2713,6 +2769,11 @@
|
|
|
2713
2769
|
outline: none;
|
|
2714
2770
|
}
|
|
2715
2771
|
|
|
2772
|
+
/* Round-3 finding 1: host is the canonical focusable surface. Both the
|
|
2773
|
+
:host(:focus-visible) descendant selector AND the legacy
|
|
2774
|
+
.field__trigger:focus-visible (kept for forced-colors regression test
|
|
2775
|
+
parity) paint the focus ring on the visual trigger. */
|
|
2776
|
+
:host(:focus-visible) .field__trigger,
|
|
2716
2777
|
.field__trigger:focus-visible {
|
|
2717
2778
|
border-color: var(--_focus-ring-color);
|
|
2718
2779
|
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
@@ -2781,6 +2842,7 @@
|
|
|
2781
2842
|
border-color: var(--_error-color);
|
|
2782
2843
|
}
|
|
2783
2844
|
|
|
2845
|
+
:host(:focus-visible) .field--error .field__trigger,
|
|
2784
2846
|
.field--error .field__trigger:focus-visible {
|
|
2785
2847
|
border-color: var(--_error-color);
|
|
2786
2848
|
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
@@ -2914,6 +2976,7 @@
|
|
|
2914
2976
|
border: 2px solid ButtonText;
|
|
2915
2977
|
}
|
|
2916
2978
|
|
|
2979
|
+
:host(:focus-visible) .field__trigger,
|
|
2917
2980
|
.field__trigger:focus-visible {
|
|
2918
2981
|
outline: 3px solid Highlight;
|
|
2919
2982
|
outline-offset: 2px;
|
|
@@ -3328,6 +3391,22 @@
|
|
|
3328
3391
|
appearance: none;
|
|
3329
3392
|
}
|
|
3330
3393
|
|
|
3394
|
+
/*
|
|
3395
|
+
* Host-focus path: on the modern (IDL element-references) render branch the
|
|
3396
|
+
* host is the tabbable surface (tabindex=0) and the inner track button is
|
|
3397
|
+
* demoted to tabindex=-1. Drive the focus ring from ':host(:focus-visible)'
|
|
3398
|
+
* so keyboard users still see a visible affordance. Codex round-11 P1.
|
|
3399
|
+
*/
|
|
3400
|
+
:host(:focus-visible) .switch__track {
|
|
3401
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
3402
|
+
var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
3403
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
3404
|
+
}
|
|
3405
|
+
|
|
3406
|
+
/*
|
|
3407
|
+
* Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
|
|
3408
|
+
* track button is the tab target. Native :focus-visible drives the ring.
|
|
3409
|
+
*/
|
|
3331
3410
|
.switch__track:focus-visible {
|
|
3332
3411
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
3333
3412
|
var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
@@ -3465,6 +3544,7 @@
|
|
|
3465
3544
|
border: 2px solid ButtonText;
|
|
3466
3545
|
}
|
|
3467
3546
|
|
|
3547
|
+
:host(:focus-visible) .switch__track,
|
|
3468
3548
|
.switch__track:focus-visible {
|
|
3469
3549
|
outline: 3px solid Highlight;
|
|
3470
3550
|
outline-offset: 2px;
|
|
@@ -4323,6 +4403,17 @@
|
|
|
4323
4403
|
.field__error {
|
|
4324
4404
|
color: var(--hx-time-picker-error-color, var(--hx-color-error-text, #c92a2a));
|
|
4325
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
|
+
}
|
|
4326
4417
|
@media (forced-colors: active) {
|
|
4327
4418
|
.field__combobox {
|
|
4328
4419
|
border-color: ButtonText;
|
|
@@ -4400,6 +4491,22 @@
|
|
|
4400
4491
|
-webkit-user-select: none;
|
|
4401
4492
|
}
|
|
4402
4493
|
|
|
4494
|
+
/*
|
|
4495
|
+
* Host-focus path: on the modern (IDL element-references) render branch the
|
|
4496
|
+
* host is the tabbable surface (tabindex=0) and the inner <button> is
|
|
4497
|
+
* demoted to tabindex=-1. Drive the focus ring from ':host(:focus-visible)'
|
|
4498
|
+
* so keyboard users still see a visible affordance. Codex round-11 P1.
|
|
4499
|
+
*/
|
|
4500
|
+
:host(:focus-visible) .button {
|
|
4501
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
4502
|
+
var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
4503
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
4504
|
+
}
|
|
4505
|
+
|
|
4506
|
+
/*
|
|
4507
|
+
* Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
|
|
4508
|
+
* <button> is the tab target. Native :focus-visible drives the ring.
|
|
4509
|
+
*/
|
|
4403
4510
|
.button:focus-visible {
|
|
4404
4511
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
4405
4512
|
var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
@@ -4598,6 +4705,7 @@
|
|
|
4598
4705
|
border: 2px solid ButtonText;
|
|
4599
4706
|
}
|
|
4600
4707
|
|
|
4708
|
+
:host(:focus-visible) .button,
|
|
4601
4709
|
.button:focus-visible {
|
|
4602
4710
|
outline: 3px solid Highlight;
|
|
4603
4711
|
outline-offset: 2px;
|
|
@@ -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-checkbox.css
CHANGED
|
@@ -70,6 +70,23 @@
|
|
|
70
70
|
|
|
71
71
|
/* ─── Focus Ring ─── */
|
|
72
72
|
|
|
73
|
+
/*
|
|
74
|
+
* Host-focus path: on the modern (IDL element-references) render branch the
|
|
75
|
+
* host is the tabbable surface (tabindex=0) and the inner input is demoted
|
|
76
|
+
* to tabindex=-1. Drive the focus ring from ':host(:focus-visible)' so
|
|
77
|
+
* keyboard users still get a visible affordance. Codex round-11 P1.
|
|
78
|
+
*/
|
|
79
|
+
:host(:focus-visible) .checkbox__box {
|
|
80
|
+
outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
|
|
81
|
+
var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
82
|
+
outline-offset: var(--hx-checkbox-focus-ring-offset, var(--hx-focus-ring-offset, 2px));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/*
|
|
86
|
+
* Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
|
|
87
|
+
* input is the tab target. The native :focus-visible on the input drives
|
|
88
|
+
* the same visual ring, scoped via the inner-state class.
|
|
89
|
+
*/
|
|
73
90
|
.checkbox__input:focus-visible ~ .checkbox__box {
|
|
74
91
|
outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
|
|
75
92
|
var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
@@ -224,6 +241,7 @@
|
|
|
224
241
|
border: 2px solid ButtonText;
|
|
225
242
|
}
|
|
226
243
|
|
|
244
|
+
:host(:focus-visible) .checkbox__box,
|
|
227
245
|
.checkbox__input:focus-visible ~ .checkbox__box {
|
|
228
246
|
outline: 3px solid Highlight;
|
|
229
247
|
outline-offset: 2px;
|
|
@@ -9,6 +9,31 @@
|
|
|
9
9
|
pointer-events: none;
|
|
10
10
|
opacity: var(--hx-opacity-disabled, 0.5);
|
|
11
11
|
}
|
|
12
|
+
/* Slotted label / help / error blocks for cross-shadow naming. */
|
|
13
|
+
.hx-color-picker__label {
|
|
14
|
+
display: block;
|
|
15
|
+
margin-bottom: var(--hx-space-1, 0.25rem);
|
|
16
|
+
font-weight: var(--hx-font-weight-semibold, 600);
|
|
17
|
+
color: var(--hx-color-neutral-900, #1a1a1a);
|
|
18
|
+
}
|
|
19
|
+
.hx-color-picker__label:empty {
|
|
20
|
+
display: none;
|
|
21
|
+
}
|
|
22
|
+
.hx-color-picker__help {
|
|
23
|
+
display: block;
|
|
24
|
+
margin-top: var(--hx-space-1, 0.25rem);
|
|
25
|
+
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
26
|
+
color: var(--hx-color-neutral-600, #525252);
|
|
27
|
+
}
|
|
28
|
+
.hx-color-picker__error {
|
|
29
|
+
display: block;
|
|
30
|
+
margin-top: var(--hx-space-1, 0.25rem);
|
|
31
|
+
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
32
|
+
color: var(--hx-color-danger-700, #c43e3e);
|
|
33
|
+
}
|
|
34
|
+
[hidden] {
|
|
35
|
+
display: none !important;
|
|
36
|
+
}
|
|
12
37
|
.trigger {
|
|
13
38
|
display: inline-flex;
|
|
14
39
|
align-items: center;
|
|
@@ -335,7 +335,8 @@
|
|
|
335
335
|
Live region (screen reader announcements)
|
|
336
336
|
============================================================ */
|
|
337
337
|
|
|
338
|
-
.calendar__live-region
|
|
338
|
+
.calendar__live-region,
|
|
339
|
+
.field__sr-only {
|
|
339
340
|
position: absolute;
|
|
340
341
|
width: 1px;
|
|
341
342
|
height: 1px;
|
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
|
}
|
package/dist/css/hx-meter.css
CHANGED
|
@@ -116,6 +116,11 @@
|
|
|
116
116
|
/* ─── Forced Colors (Windows High Contrast) ─── */
|
|
117
117
|
|
|
118
118
|
@media (forced-colors: active) {
|
|
119
|
+
.meter:focus-visible {
|
|
120
|
+
outline: 2px solid Highlight;
|
|
121
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
122
|
+
}
|
|
123
|
+
|
|
119
124
|
.meter__track {
|
|
120
125
|
border: 1px solid CanvasText;
|
|
121
126
|
}
|
package/dist/css/hx-select.css
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
/* ─── 3-tier token cascade: component → semantic → hardcoded fallback ─── */
|
|
3
3
|
:host {
|
|
4
4
|
display: block;
|
|
5
|
+
/* Round-3 finding 1: host is the canonical combobox surface, so it owns
|
|
6
|
+
keyboard focus. Suppress the UA default outline; the custom focus ring
|
|
7
|
+
is painted on the inner trigger via :host(:focus-visible)
|
|
8
|
+
.field__trigger so visual feedback follows the host's focus state. */
|
|
9
|
+
outline: none;
|
|
5
10
|
|
|
6
11
|
/* Background & foreground */
|
|
7
12
|
--_bg: var(--hx-select-bg, var(--hx-color-surface-default, #ffffff));
|
|
@@ -78,6 +83,12 @@
|
|
|
78
83
|
}
|
|
79
84
|
|
|
80
85
|
.field__trigger {
|
|
86
|
+
/* Round-3 finding 1 / CodeRabbit F1: trigger is a <button type="button">
|
|
87
|
+
(labelable) so native <label for> click activation works for mouse
|
|
88
|
+
users. Reset native button chrome before applying field styles. */
|
|
89
|
+
appearance: none;
|
|
90
|
+
-webkit-appearance: none;
|
|
91
|
+
margin: 0;
|
|
81
92
|
display: flex;
|
|
82
93
|
align-items: center;
|
|
83
94
|
justify-content: space-between;
|
|
@@ -88,6 +99,7 @@
|
|
|
88
99
|
border-radius: var(--_border-radius);
|
|
89
100
|
background-color: var(--_bg);
|
|
90
101
|
color: var(--_color);
|
|
102
|
+
font: inherit;
|
|
91
103
|
font-family: inherit;
|
|
92
104
|
font-size: var(--hx-font-size-md, 1rem);
|
|
93
105
|
line-height: var(--hx-line-height-normal, 1.5);
|
|
@@ -100,6 +112,11 @@
|
|
|
100
112
|
outline: none;
|
|
101
113
|
}
|
|
102
114
|
|
|
115
|
+
/* Round-3 finding 1: host is the canonical focusable surface. Both the
|
|
116
|
+
:host(:focus-visible) descendant selector AND the legacy
|
|
117
|
+
.field__trigger:focus-visible (kept for forced-colors regression test
|
|
118
|
+
parity) paint the focus ring on the visual trigger. */
|
|
119
|
+
:host(:focus-visible) .field__trigger,
|
|
103
120
|
.field__trigger:focus-visible {
|
|
104
121
|
border-color: var(--_focus-ring-color);
|
|
105
122
|
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
@@ -168,6 +185,7 @@
|
|
|
168
185
|
border-color: var(--_error-color);
|
|
169
186
|
}
|
|
170
187
|
|
|
188
|
+
:host(:focus-visible) .field--error .field__trigger,
|
|
171
189
|
.field--error .field__trigger:focus-visible {
|
|
172
190
|
border-color: var(--_error-color);
|
|
173
191
|
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
@@ -301,6 +319,7 @@
|
|
|
301
319
|
border: 2px solid ButtonText;
|
|
302
320
|
}
|
|
303
321
|
|
|
322
|
+
:host(:focus-visible) .field__trigger,
|
|
304
323
|
.field__trigger:focus-visible {
|
|
305
324
|
outline: 3px solid Highlight;
|
|
306
325
|
outline-offset: 2px;
|
package/dist/css/hx-switch.css
CHANGED
|
@@ -49,6 +49,22 @@
|
|
|
49
49
|
appearance: none;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
/*
|
|
53
|
+
* Host-focus path: on the modern (IDL element-references) render branch the
|
|
54
|
+
* host is the tabbable surface (tabindex=0) and the inner track button is
|
|
55
|
+
* demoted to tabindex=-1. Drive the focus ring from ':host(:focus-visible)'
|
|
56
|
+
* so keyboard users still see a visible affordance. Codex round-11 P1.
|
|
57
|
+
*/
|
|
58
|
+
:host(:focus-visible) .switch__track {
|
|
59
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
60
|
+
var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
61
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/*
|
|
65
|
+
* Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
|
|
66
|
+
* track button is the tab target. Native :focus-visible drives the ring.
|
|
67
|
+
*/
|
|
52
68
|
.switch__track:focus-visible {
|
|
53
69
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
54
70
|
var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
@@ -186,6 +202,7 @@
|
|
|
186
202
|
border: 2px solid ButtonText;
|
|
187
203
|
}
|
|
188
204
|
|
|
205
|
+
:host(:focus-visible) .switch__track,
|
|
189
206
|
.switch__track:focus-visible {
|
|
190
207
|
outline: 3px solid Highlight;
|
|
191
208
|
outline-offset: 2px;
|
package/dist/css/hx-tag.css
CHANGED
|
@@ -150,9 +150,32 @@
|
|
|
150
150
|
@media (forced-colors: active) {
|
|
151
151
|
.tag {
|
|
152
152
|
border-color: CanvasText;
|
|
153
|
+
forced-color-adjust: none;
|
|
154
|
+
background-color: Canvas;
|
|
155
|
+
color: CanvasText;
|
|
153
156
|
}
|
|
154
157
|
|
|
155
158
|
.tag__remove-button {
|
|
156
159
|
color: ButtonText;
|
|
157
160
|
}
|
|
161
|
+
|
|
162
|
+
/* Per-semantic-variant forced-colors fallbacks. The visually-hidden
|
|
163
|
+
semantic variant label (.tag__variant-label) keeps AT users
|
|
164
|
+
informed; these blocks restore visual semantic distinction for
|
|
165
|
+
sighted users in HCM where bg/color collapse to system defaults.
|
|
166
|
+
Pattern: distinct border-style per variant (matches hx-badge). */
|
|
167
|
+
.tag--success {
|
|
168
|
+
border-style: solid;
|
|
169
|
+
border-width: 2px;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.tag--warning {
|
|
173
|
+
border-style: dashed;
|
|
174
|
+
border-width: 2px;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.tag--danger {
|
|
178
|
+
border-style: double;
|
|
179
|
+
border-width: 3px;
|
|
180
|
+
}
|
|
158
181
|
}
|
|
@@ -188,6 +188,17 @@
|
|
|
188
188
|
.field__error {
|
|
189
189
|
color: var(--hx-time-picker-error-color, var(--hx-color-error-text, #c92a2a));
|
|
190
190
|
}
|
|
191
|
+
.field__sr-only {
|
|
192
|
+
position: absolute;
|
|
193
|
+
width: 1px;
|
|
194
|
+
height: 1px;
|
|
195
|
+
padding: 0;
|
|
196
|
+
margin: -1px;
|
|
197
|
+
overflow: hidden;
|
|
198
|
+
clip: rect(0, 0, 0, 0);
|
|
199
|
+
white-space: nowrap;
|
|
200
|
+
border: 0;
|
|
201
|
+
}
|
|
191
202
|
@media (forced-colors: active) {
|
|
192
203
|
.field__combobox {
|
|
193
204
|
border-color: ButtonText;
|
|
@@ -34,6 +34,22 @@
|
|
|
34
34
|
-webkit-user-select: none;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
/*
|
|
38
|
+
* Host-focus path: on the modern (IDL element-references) render branch the
|
|
39
|
+
* host is the tabbable surface (tabindex=0) and the inner <button> is
|
|
40
|
+
* demoted to tabindex=-1. Drive the focus ring from ':host(:focus-visible)'
|
|
41
|
+
* so keyboard users still see a visible affordance. Codex round-11 P1.
|
|
42
|
+
*/
|
|
43
|
+
:host(:focus-visible) .button {
|
|
44
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
45
|
+
var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
46
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/*
|
|
50
|
+
* Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
|
|
51
|
+
* <button> is the tab target. Native :focus-visible drives the ring.
|
|
52
|
+
*/
|
|
37
53
|
.button:focus-visible {
|
|
38
54
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
39
55
|
var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
@@ -232,6 +248,7 @@
|
|
|
232
248
|
border: 2px solid ButtonText;
|
|
233
249
|
}
|
|
234
250
|
|
|
251
|
+
:host(:focus-visible) .button,
|
|
235
252
|
.button:focus-visible {
|
|
236
253
|
outline: 3px solid Highlight;
|
|
237
254
|
outline-offset: 2px;
|
package/dist/css/index.css
CHANGED
package/dist/css/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generated": "2026-05-
|
|
2
|
+
"generated": "2026-05-06T11:20:36.951Z",
|
|
3
3
|
"components": [
|
|
4
4
|
{
|
|
5
5
|
"name": "hx-accordion",
|
|
@@ -595,6 +595,7 @@
|
|
|
595
595
|
"--hx-border-radius-md",
|
|
596
596
|
"--hx-border-radius-sm",
|
|
597
597
|
"--hx-border-width-thin",
|
|
598
|
+
"--hx-color-danger-700",
|
|
598
599
|
"--hx-color-neutral-0",
|
|
599
600
|
"--hx-color-neutral-100",
|
|
600
601
|
"--hx-color-neutral-200",
|
|
@@ -1178,6 +1179,7 @@
|
|
|
1178
1179
|
"--hx-color-text-on-error",
|
|
1179
1180
|
"--hx-color-text-on-primary",
|
|
1180
1181
|
"--hx-color-text-strong",
|
|
1182
|
+
"--hx-duration-spinner",
|
|
1181
1183
|
"--hx-filter-brightness-active",
|
|
1182
1184
|
"--hx-focus-ring-color",
|
|
1183
1185
|
"--hx-focus-ring-offset",
|
|
@@ -1192,6 +1194,7 @@
|
|
|
1192
1194
|
"--hx-icon-button-focus-ring-color",
|
|
1193
1195
|
"--hx-icon-button-size",
|
|
1194
1196
|
"--hx-opacity-disabled",
|
|
1197
|
+
"--hx-opacity-muted",
|
|
1195
1198
|
"--hx-size-10",
|
|
1196
1199
|
"--hx-size-12",
|
|
1197
1200
|
"--hx-size-8",
|