@helixui/library 3.3.1 → 3.4.0-next.123
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 +22 -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-card/hx-card.d.ts +68 -0
- package/dist/components/hx-card/hx-card.d.ts.map +1 -1
- package/dist/components/hx-card/hx-card.styles.d.ts.map +1 -1
- package/dist/components/hx-card/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 +48 -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 +235 -2
- package/dist/css/helix-core.css +95 -1
- 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-card.css +14 -1
- 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 +39 -39
- package/dist/shared/aria-flatten-DY6v2vah.js +22 -0
- package/dist/shared/aria-flatten-DY6v2vah.js.map +1 -0
- package/dist/shared/aria-idref-DCuEaknC.js +131 -0
- package/dist/shared/aria-idref-DCuEaknC.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-4NUBpkyC.js} +22 -23
- package/dist/shared/{hx-button-group-BI-QBqmO.js.map → hx-button-group-4NUBpkyC.js.map} +1 -1
- package/dist/shared/{hx-card-qNAM2QNV.js → hx-card-CswtnYvj.js} +142 -85
- package/dist/shared/hx-card-CswtnYvj.js.map +1 -0
- package/dist/shared/hx-checkbox-CYd0YV_u.js +696 -0
- package/dist/shared/hx-checkbox-CYd0YV_u.js.map +1 -0
- package/dist/shared/hx-checkbox-group-D5piJLY8.js +496 -0
- package/dist/shared/hx-checkbox-group-D5piJLY8.js.map +1 -0
- package/dist/shared/hx-color-picker-DBwJzT5f.js +1221 -0
- package/dist/shared/hx-color-picker-DBwJzT5f.js.map +1 -0
- package/dist/shared/hx-combobox-NgJaLbs2.js +1359 -0
- package/dist/shared/hx-combobox-NgJaLbs2.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-B49yo4Vm.js} +542 -206
- package/dist/shared/hx-date-picker-B49yo4Vm.js.map +1 -0
- package/dist/shared/hx-dialog-B4weoj_1.js +717 -0
- package/dist/shared/hx-dialog-B4weoj_1.js.map +1 -0
- package/dist/shared/{hx-drawer-Y1Ui2IWJ.js → hx-drawer-D81tb4BD.js} +300 -98
- package/dist/shared/hx-drawer-D81tb4BD.js.map +1 -0
- package/dist/shared/hx-dropdown-D626S2ZG.js +401 -0
- package/dist/shared/hx-dropdown-D626S2ZG.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-Bp8HeLHh.js} +163 -107
- package/dist/shared/hx-list-Bp8HeLHh.js.map +1 -0
- package/dist/shared/hx-menu-divider-A6Guuzi_.js +797 -0
- package/dist/shared/hx-menu-divider-A6Guuzi_.js.map +1 -0
- package/dist/shared/hx-meter-BnpmF3Vx.js +316 -0
- package/dist/shared/hx-meter-BnpmF3Vx.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-DFjJAziP.js +492 -0
- package/dist/shared/hx-overflow-menu-DFjJAziP.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-BAlAFOH9.js} +123 -66
- package/dist/shared/hx-popover-BAlAFOH9.js.map +1 -0
- package/dist/shared/hx-progress-bar-CYz9U721.js +290 -0
- package/dist/shared/hx-progress-bar-CYz9U721.js.map +1 -0
- package/dist/shared/hx-radio-C7eTj5YI.js +822 -0
- package/dist/shared/hx-radio-C7eTj5YI.js.map +1 -0
- package/dist/shared/hx-select-DahFehiZ.js +1089 -0
- package/dist/shared/hx-select-DahFehiZ.js.map +1 -0
- package/dist/shared/{hx-spinner-DL5AYr16.js → hx-spinner-3qBp4jeN.js} +58 -30
- package/dist/shared/hx-spinner-3qBp4jeN.js.map +1 -0
- package/dist/shared/{hx-split-button-Djnc5Aeg.js → hx-split-button-Ddle8iVx.js} +153 -82
- package/dist/shared/hx-split-button-Ddle8iVx.js.map +1 -0
- package/dist/shared/{hx-stat-WOcNV1Ry.js → hx-stat-Gtw_SpK8.js} +77 -47
- package/dist/shared/hx-stat-Gtw_SpK8.js.map +1 -0
- package/dist/shared/hx-switch-TvKGvZJz.js +540 -0
- package/dist/shared/hx-switch-TvKGvZJz.js.map +1 -0
- package/dist/shared/{hx-tab-panel-DspCrKqo.js → hx-tab-panel-Cu--8psg.js} +255 -131
- package/dist/shared/hx-tab-panel-Cu--8psg.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-BPsb6OaG.js} +249 -102
- package/dist/shared/hx-td-BPsb6OaG.js.map +1 -0
- package/dist/shared/hx-theme-BsefFWTO.js.map +1 -1
- package/dist/shared/hx-time-picker-Bo7FWzmf.js +1038 -0
- package/dist/shared/hx-time-picker-Bo7FWzmf.js.map +1 -0
- package/dist/shared/{hx-toggle-button-iLiYrMbD.js → hx-toggle-button-DwBers3A.js} +226 -65
- package/dist/shared/hx-toggle-button-DwBers3A.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-CXyspGxI.js +925 -0
- package/dist/shared/hx-tree-item-CXyspGxI.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-card-qNAM2QNV.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 +0 -254
- 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-all.css
CHANGED
|
@@ -258,6 +258,15 @@
|
|
|
258
258
|
min-width: 0;
|
|
259
259
|
}
|
|
260
260
|
|
|
261
|
+
/* (group-6 5.1) Wrapper around the default slot. Carries aria-hidden=true
|
|
262
|
+
so the visible message text is not double-announced alongside the
|
|
263
|
+
sr-only announcer. display:contents keeps the wrapper visually
|
|
264
|
+
transparent so children participate in the parent flex layout as if
|
|
265
|
+
the wrapper were not there. */
|
|
266
|
+
.alert__default-slot {
|
|
267
|
+
display: contents;
|
|
268
|
+
}
|
|
269
|
+
|
|
261
270
|
/* ─── Actions ─── */
|
|
262
271
|
/* Hidden by default; shown via JS slotchange detection to avoid invisible */
|
|
263
272
|
/* margin-top spacing when no actions are slotted. */
|
|
@@ -721,6 +730,9 @@
|
|
|
721
730
|
@media (forced-colors: active) {
|
|
722
731
|
.badge {
|
|
723
732
|
border: 1px solid CanvasText;
|
|
733
|
+
forced-color-adjust: none;
|
|
734
|
+
background-color: Canvas;
|
|
735
|
+
color: CanvasText;
|
|
724
736
|
}
|
|
725
737
|
|
|
726
738
|
.badge--pulse {
|
|
@@ -730,6 +742,31 @@
|
|
|
730
742
|
.badge__remove-button {
|
|
731
743
|
color: ButtonText;
|
|
732
744
|
}
|
|
745
|
+
|
|
746
|
+
/* Per-semantic-variant forced-colors fallbacks. The visually-hidden
|
|
747
|
+
semantic variant label (.badge__variant-label) keeps AT users
|
|
748
|
+
informed; these blocks restore visual semantic distinction for
|
|
749
|
+
sighted users in HCM where bg/color collapse to system defaults.
|
|
750
|
+
Pattern: distinct border-style per variant. */
|
|
751
|
+
.badge--success {
|
|
752
|
+
border-style: solid;
|
|
753
|
+
border-width: 2px;
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
.badge--warning {
|
|
757
|
+
border-style: dashed;
|
|
758
|
+
border-width: 2px;
|
|
759
|
+
}
|
|
760
|
+
|
|
761
|
+
.badge--error {
|
|
762
|
+
border-style: double;
|
|
763
|
+
border-width: 3px;
|
|
764
|
+
}
|
|
765
|
+
|
|
766
|
+
.badge--info {
|
|
767
|
+
border-style: dotted;
|
|
768
|
+
border-width: 2px;
|
|
769
|
+
}
|
|
733
770
|
}
|
|
734
771
|
/* ── hx-banner ── */
|
|
735
772
|
:host {
|
|
@@ -1669,7 +1706,8 @@
|
|
|
1669
1706
|
transform: translateY(var(--hx-transform-lift-md, -2px));
|
|
1670
1707
|
}
|
|
1671
1708
|
|
|
1672
|
-
.card--interactive:focus-visible
|
|
1709
|
+
.card--interactive:focus-visible,
|
|
1710
|
+
:host(:focus-visible) .card--interactive {
|
|
1673
1711
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
1674
1712
|
var(--hx-card-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
1675
1713
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
@@ -1768,6 +1806,18 @@
|
|
|
1768
1806
|
.card__actions {
|
|
1769
1807
|
border-top-color: CanvasText;
|
|
1770
1808
|
}
|
|
1809
|
+
|
|
1810
|
+
/*
|
|
1811
|
+
* Force a system-color focus ring on the interactive card under
|
|
1812
|
+
* Windows High Contrast Mode — the token-driven outline above
|
|
1813
|
+
* collapses to system colors but the explicit Highlight color is
|
|
1814
|
+
* stricter for AT contrast and reaches the host on the modern
|
|
1815
|
+
* host-canonical path (the host is the focused surface).
|
|
1816
|
+
*/
|
|
1817
|
+
.card--interactive:focus-visible,
|
|
1818
|
+
:host(:focus-visible) .card--interactive {
|
|
1819
|
+
outline-color: Highlight;
|
|
1820
|
+
}
|
|
1771
1821
|
}
|
|
1772
1822
|
/* ── hx-carousel ── */
|
|
1773
1823
|
:host {
|
|
@@ -2080,6 +2130,23 @@
|
|
|
2080
2130
|
|
|
2081
2131
|
/* ─── Focus Ring ─── */
|
|
2082
2132
|
|
|
2133
|
+
/*
|
|
2134
|
+
* Host-focus path: on the modern (IDL element-references) render branch the
|
|
2135
|
+
* host is the tabbable surface (tabindex=0) and the inner input is demoted
|
|
2136
|
+
* to tabindex=-1. Drive the focus ring from ':host(:focus-visible)' so
|
|
2137
|
+
* keyboard users still get a visible affordance. Codex round-11 P1.
|
|
2138
|
+
*/
|
|
2139
|
+
:host(:focus-visible) .checkbox__box {
|
|
2140
|
+
outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
|
|
2141
|
+
var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
2142
|
+
outline-offset: var(--hx-checkbox-focus-ring-offset, var(--hx-focus-ring-offset, 2px));
|
|
2143
|
+
}
|
|
2144
|
+
|
|
2145
|
+
/*
|
|
2146
|
+
* Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
|
|
2147
|
+
* input is the tab target. The native :focus-visible on the input drives
|
|
2148
|
+
* the same visual ring, scoped via the inner-state class.
|
|
2149
|
+
*/
|
|
2083
2150
|
.checkbox__input:focus-visible ~ .checkbox__box {
|
|
2084
2151
|
outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
|
|
2085
2152
|
var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
@@ -2234,6 +2301,7 @@
|
|
|
2234
2301
|
border: 2px solid ButtonText;
|
|
2235
2302
|
}
|
|
2236
2303
|
|
|
2304
|
+
:host(:focus-visible) .checkbox__box,
|
|
2237
2305
|
.checkbox__input:focus-visible ~ .checkbox__box {
|
|
2238
2306
|
outline: 3px solid Highlight;
|
|
2239
2307
|
outline-offset: 2px;
|
|
@@ -2900,6 +2968,31 @@
|
|
|
2900
2968
|
pointer-events: none;
|
|
2901
2969
|
opacity: var(--hx-opacity-disabled, 0.5);
|
|
2902
2970
|
}
|
|
2971
|
+
/* Slotted label / help / error blocks for cross-shadow naming. */
|
|
2972
|
+
.hx-color-picker__label {
|
|
2973
|
+
display: block;
|
|
2974
|
+
margin-bottom: var(--hx-space-1, 0.25rem);
|
|
2975
|
+
font-weight: var(--hx-font-weight-semibold, 600);
|
|
2976
|
+
color: var(--hx-color-neutral-900, #1a1a1a);
|
|
2977
|
+
}
|
|
2978
|
+
.hx-color-picker__label:empty {
|
|
2979
|
+
display: none;
|
|
2980
|
+
}
|
|
2981
|
+
.hx-color-picker__help {
|
|
2982
|
+
display: block;
|
|
2983
|
+
margin-top: var(--hx-space-1, 0.25rem);
|
|
2984
|
+
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
2985
|
+
color: var(--hx-color-neutral-600, #525252);
|
|
2986
|
+
}
|
|
2987
|
+
.hx-color-picker__error {
|
|
2988
|
+
display: block;
|
|
2989
|
+
margin-top: var(--hx-space-1, 0.25rem);
|
|
2990
|
+
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
2991
|
+
color: var(--hx-color-danger-700, #c43e3e);
|
|
2992
|
+
}
|
|
2993
|
+
[hidden] {
|
|
2994
|
+
display: none !important;
|
|
2995
|
+
}
|
|
2903
2996
|
.trigger {
|
|
2904
2997
|
display: inline-flex;
|
|
2905
2998
|
align-items: center;
|
|
@@ -4426,7 +4519,8 @@
|
|
|
4426
4519
|
Live region (screen reader announcements)
|
|
4427
4520
|
============================================================ */
|
|
4428
4521
|
|
|
4429
|
-
.calendar__live-region
|
|
4522
|
+
.calendar__live-region,
|
|
4523
|
+
.field__sr-only {
|
|
4430
4524
|
position: absolute;
|
|
4431
4525
|
width: 1px;
|
|
4432
4526
|
height: 1px;
|
|
@@ -5062,6 +5156,23 @@
|
|
|
5062
5156
|
margin: 0;
|
|
5063
5157
|
}
|
|
5064
5158
|
|
|
5159
|
+
/* ─── Synthesized consumer-description span ─── */
|
|
5160
|
+
/* Visually hidden mirror of consumer-resolved aria-describedby text used by */
|
|
5161
|
+
/* the host-canonical ARIA pipeline. Always present in the shadow tree so AT */
|
|
5162
|
+
/* can resolve the same-root id even when the description is currently empty. */
|
|
5163
|
+
|
|
5164
|
+
.drawer-sr-only {
|
|
5165
|
+
position: absolute;
|
|
5166
|
+
width: 1px;
|
|
5167
|
+
height: 1px;
|
|
5168
|
+
padding: 0;
|
|
5169
|
+
margin: -1px;
|
|
5170
|
+
overflow: hidden;
|
|
5171
|
+
clip: rect(0, 0, 0, 0);
|
|
5172
|
+
white-space: nowrap;
|
|
5173
|
+
border: 0;
|
|
5174
|
+
}
|
|
5175
|
+
|
|
5065
5176
|
/* ─── Body ─── */
|
|
5066
5177
|
|
|
5067
5178
|
.drawer-body {
|
|
@@ -5997,12 +6108,37 @@ export const helixGridItemStyles = css`
|
|
|
5997
6108
|
multiplicative stacking (0.5 * 0.5 = 0.25). Do not add opacity here. */
|
|
5998
6109
|
}
|
|
5999
6110
|
|
|
6111
|
+
/* ─── Loading State ─── */
|
|
6112
|
+
|
|
6113
|
+
.button--loading {
|
|
6114
|
+
position: relative;
|
|
6115
|
+
cursor: wait;
|
|
6116
|
+
}
|
|
6117
|
+
|
|
6118
|
+
.button__spinner {
|
|
6119
|
+
width: 1em;
|
|
6120
|
+
height: 1em;
|
|
6121
|
+
flex-shrink: 0;
|
|
6122
|
+
animation: hx-icon-button-spin var(--hx-duration-spinner, 750ms) linear infinite;
|
|
6123
|
+
}
|
|
6124
|
+
|
|
6125
|
+
@keyframes hx-icon-button-spin {
|
|
6126
|
+
to {
|
|
6127
|
+
transform: rotate(360deg);
|
|
6128
|
+
}
|
|
6129
|
+
}
|
|
6130
|
+
|
|
6000
6131
|
/* ─── Reduced Motion ─── */
|
|
6001
6132
|
|
|
6002
6133
|
@media (prefers-reduced-motion: reduce) {
|
|
6003
6134
|
.button {
|
|
6004
6135
|
transition: none;
|
|
6005
6136
|
}
|
|
6137
|
+
|
|
6138
|
+
.button__spinner {
|
|
6139
|
+
animation: none;
|
|
6140
|
+
opacity: var(--hx-opacity-muted, 0.6);
|
|
6141
|
+
}
|
|
6006
6142
|
}
|
|
6007
6143
|
|
|
6008
6144
|
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
@@ -6030,6 +6166,11 @@ export const helixGridItemStyles = css`
|
|
|
6030
6166
|
:host([disabled]) {
|
|
6031
6167
|
opacity: 1;
|
|
6032
6168
|
}
|
|
6169
|
+
|
|
6170
|
+
.button--loading .button__spinner {
|
|
6171
|
+
stroke: ButtonText;
|
|
6172
|
+
forced-color-adjust: none;
|
|
6173
|
+
}
|
|
6033
6174
|
}
|
|
6034
6175
|
/* ── hx-image ── */
|
|
6035
6176
|
:host {
|
|
@@ -6407,6 +6548,11 @@ export const helixGridItemStyles = css`
|
|
|
6407
6548
|
/* ─── Forced Colors (Windows High Contrast) ─── */
|
|
6408
6549
|
|
|
6409
6550
|
@media (forced-colors: active) {
|
|
6551
|
+
.meter:focus-visible {
|
|
6552
|
+
outline: 2px solid Highlight;
|
|
6553
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
6554
|
+
}
|
|
6555
|
+
|
|
6410
6556
|
.meter__track {
|
|
6411
6557
|
border: 1px solid CanvasText;
|
|
6412
6558
|
}
|
|
@@ -8298,6 +8444,11 @@ export const helixGridItemStyles = css`
|
|
|
8298
8444
|
/* ─── 3-tier token cascade: component → semantic → hardcoded fallback ─── */
|
|
8299
8445
|
:host {
|
|
8300
8446
|
display: block;
|
|
8447
|
+
/* Round-3 finding 1: host is the canonical combobox surface, so it owns
|
|
8448
|
+
keyboard focus. Suppress the UA default outline; the custom focus ring
|
|
8449
|
+
is painted on the inner trigger via :host(:focus-visible)
|
|
8450
|
+
.field__trigger so visual feedback follows the host's focus state. */
|
|
8451
|
+
outline: none;
|
|
8301
8452
|
|
|
8302
8453
|
/* Background & foreground */
|
|
8303
8454
|
--_bg: var(--hx-select-bg, var(--hx-color-surface-default, #ffffff));
|
|
@@ -8374,6 +8525,12 @@ export const helixGridItemStyles = css`
|
|
|
8374
8525
|
}
|
|
8375
8526
|
|
|
8376
8527
|
.field__trigger {
|
|
8528
|
+
/* Round-3 finding 1 / CodeRabbit F1: trigger is a <button type="button">
|
|
8529
|
+
(labelable) so native <label for> click activation works for mouse
|
|
8530
|
+
users. Reset native button chrome before applying field styles. */
|
|
8531
|
+
appearance: none;
|
|
8532
|
+
-webkit-appearance: none;
|
|
8533
|
+
margin: 0;
|
|
8377
8534
|
display: flex;
|
|
8378
8535
|
align-items: center;
|
|
8379
8536
|
justify-content: space-between;
|
|
@@ -8384,6 +8541,7 @@ export const helixGridItemStyles = css`
|
|
|
8384
8541
|
border-radius: var(--_border-radius);
|
|
8385
8542
|
background-color: var(--_bg);
|
|
8386
8543
|
color: var(--_color);
|
|
8544
|
+
font: inherit;
|
|
8387
8545
|
font-family: inherit;
|
|
8388
8546
|
font-size: var(--hx-font-size-md, 1rem);
|
|
8389
8547
|
line-height: var(--hx-line-height-normal, 1.5);
|
|
@@ -8396,6 +8554,11 @@ export const helixGridItemStyles = css`
|
|
|
8396
8554
|
outline: none;
|
|
8397
8555
|
}
|
|
8398
8556
|
|
|
8557
|
+
/* Round-3 finding 1: host is the canonical focusable surface. Both the
|
|
8558
|
+
:host(:focus-visible) descendant selector AND the legacy
|
|
8559
|
+
.field__trigger:focus-visible (kept for forced-colors regression test
|
|
8560
|
+
parity) paint the focus ring on the visual trigger. */
|
|
8561
|
+
:host(:focus-visible) .field__trigger,
|
|
8399
8562
|
.field__trigger:focus-visible {
|
|
8400
8563
|
border-color: var(--_focus-ring-color);
|
|
8401
8564
|
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
@@ -8464,6 +8627,7 @@ export const helixGridItemStyles = css`
|
|
|
8464
8627
|
border-color: var(--_error-color);
|
|
8465
8628
|
}
|
|
8466
8629
|
|
|
8630
|
+
:host(:focus-visible) .field--error .field__trigger,
|
|
8467
8631
|
.field--error .field__trigger:focus-visible {
|
|
8468
8632
|
border-color: var(--_error-color);
|
|
8469
8633
|
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
@@ -8597,6 +8761,7 @@ export const helixGridItemStyles = css`
|
|
|
8597
8761
|
border: 2px solid ButtonText;
|
|
8598
8762
|
}
|
|
8599
8763
|
|
|
8764
|
+
:host(:focus-visible) .field__trigger,
|
|
8600
8765
|
.field__trigger:focus-visible {
|
|
8601
8766
|
outline: 3px solid Highlight;
|
|
8602
8767
|
outline-offset: 2px;
|
|
@@ -10544,6 +10709,22 @@ export const helixStructuredListRowStyles = css`
|
|
|
10544
10709
|
appearance: none;
|
|
10545
10710
|
}
|
|
10546
10711
|
|
|
10712
|
+
/*
|
|
10713
|
+
* Host-focus path: on the modern (IDL element-references) render branch the
|
|
10714
|
+
* host is the tabbable surface (tabindex=0) and the inner track button is
|
|
10715
|
+
* demoted to tabindex=-1. Drive the focus ring from ':host(:focus-visible)'
|
|
10716
|
+
* so keyboard users still see a visible affordance. Codex round-11 P1.
|
|
10717
|
+
*/
|
|
10718
|
+
:host(:focus-visible) .switch__track {
|
|
10719
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
10720
|
+
var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
10721
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
10722
|
+
}
|
|
10723
|
+
|
|
10724
|
+
/*
|
|
10725
|
+
* Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
|
|
10726
|
+
* track button is the tab target. Native :focus-visible drives the ring.
|
|
10727
|
+
*/
|
|
10547
10728
|
.switch__track:focus-visible {
|
|
10548
10729
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
10549
10730
|
var(--hx-switch-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
@@ -10681,6 +10862,7 @@ export const helixStructuredListRowStyles = css`
|
|
|
10681
10862
|
border: 2px solid ButtonText;
|
|
10682
10863
|
}
|
|
10683
10864
|
|
|
10865
|
+
:host(:focus-visible) .switch__track,
|
|
10684
10866
|
.switch__track:focus-visible {
|
|
10685
10867
|
outline: 3px solid Highlight;
|
|
10686
10868
|
outline-offset: 2px;
|
|
@@ -11104,11 +11286,34 @@ export const helixTableSectionBaseStyles = css`
|
|
|
11104
11286
|
@media (forced-colors: active) {
|
|
11105
11287
|
.tag {
|
|
11106
11288
|
border-color: CanvasText;
|
|
11289
|
+
forced-color-adjust: none;
|
|
11290
|
+
background-color: Canvas;
|
|
11291
|
+
color: CanvasText;
|
|
11107
11292
|
}
|
|
11108
11293
|
|
|
11109
11294
|
.tag__remove-button {
|
|
11110
11295
|
color: ButtonText;
|
|
11111
11296
|
}
|
|
11297
|
+
|
|
11298
|
+
/* Per-semantic-variant forced-colors fallbacks. The visually-hidden
|
|
11299
|
+
semantic variant label (.tag__variant-label) keeps AT users
|
|
11300
|
+
informed; these blocks restore visual semantic distinction for
|
|
11301
|
+
sighted users in HCM where bg/color collapse to system defaults.
|
|
11302
|
+
Pattern: distinct border-style per variant (matches hx-badge). */
|
|
11303
|
+
.tag--success {
|
|
11304
|
+
border-style: solid;
|
|
11305
|
+
border-width: 2px;
|
|
11306
|
+
}
|
|
11307
|
+
|
|
11308
|
+
.tag--warning {
|
|
11309
|
+
border-style: dashed;
|
|
11310
|
+
border-width: 2px;
|
|
11311
|
+
}
|
|
11312
|
+
|
|
11313
|
+
.tag--danger {
|
|
11314
|
+
border-style: double;
|
|
11315
|
+
border-width: 3px;
|
|
11316
|
+
}
|
|
11112
11317
|
}
|
|
11113
11318
|
/* ── hx-text ── */
|
|
11114
11319
|
:host {
|
|
@@ -12138,6 +12343,17 @@ export const helixTableSectionBaseStyles = css`
|
|
|
12138
12343
|
.field__error {
|
|
12139
12344
|
color: var(--hx-time-picker-error-color, var(--hx-color-error-text, #c92a2a));
|
|
12140
12345
|
}
|
|
12346
|
+
.field__sr-only {
|
|
12347
|
+
position: absolute;
|
|
12348
|
+
width: 1px;
|
|
12349
|
+
height: 1px;
|
|
12350
|
+
padding: 0;
|
|
12351
|
+
margin: -1px;
|
|
12352
|
+
overflow: hidden;
|
|
12353
|
+
clip: rect(0, 0, 0, 0);
|
|
12354
|
+
white-space: nowrap;
|
|
12355
|
+
border: 0;
|
|
12356
|
+
}
|
|
12141
12357
|
@media (forced-colors: active) {
|
|
12142
12358
|
.field__combobox {
|
|
12143
12359
|
border-color: ButtonText;
|
|
@@ -12483,6 +12699,22 @@ export const helixToastStackStyles = css`
|
|
|
12483
12699
|
-webkit-user-select: none;
|
|
12484
12700
|
}
|
|
12485
12701
|
|
|
12702
|
+
/*
|
|
12703
|
+
* Host-focus path: on the modern (IDL element-references) render branch the
|
|
12704
|
+
* host is the tabbable surface (tabindex=0) and the inner <button> is
|
|
12705
|
+
* demoted to tabindex=-1. Drive the focus ring from ':host(:focus-visible)'
|
|
12706
|
+
* so keyboard users still see a visible affordance. Codex round-11 P1.
|
|
12707
|
+
*/
|
|
12708
|
+
:host(:focus-visible) .button {
|
|
12709
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
12710
|
+
var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
12711
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
12712
|
+
}
|
|
12713
|
+
|
|
12714
|
+
/*
|
|
12715
|
+
* Fallback (no-IDL-ref) path: the host carries tabindex=-1 and the inner
|
|
12716
|
+
* <button> is the tab target. Native :focus-visible drives the ring.
|
|
12717
|
+
*/
|
|
12486
12718
|
.button:focus-visible {
|
|
12487
12719
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
12488
12720
|
var(--hx-toggle-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
@@ -12681,6 +12913,7 @@ export const helixToastStackStyles = css`
|
|
|
12681
12913
|
border: 2px solid ButtonText;
|
|
12682
12914
|
}
|
|
12683
12915
|
|
|
12916
|
+
:host(:focus-visible) .button,
|
|
12684
12917
|
.button:focus-visible {
|
|
12685
12918
|
outline: 3px solid Highlight;
|
|
12686
12919
|
outline-offset: 2px;
|
package/dist/css/helix-core.css
CHANGED
|
@@ -337,6 +337,9 @@
|
|
|
337
337
|
@media (forced-colors: active) {
|
|
338
338
|
.badge {
|
|
339
339
|
border: 1px solid CanvasText;
|
|
340
|
+
forced-color-adjust: none;
|
|
341
|
+
background-color: Canvas;
|
|
342
|
+
color: CanvasText;
|
|
340
343
|
}
|
|
341
344
|
|
|
342
345
|
.badge--pulse {
|
|
@@ -346,6 +349,31 @@
|
|
|
346
349
|
.badge__remove-button {
|
|
347
350
|
color: ButtonText;
|
|
348
351
|
}
|
|
352
|
+
|
|
353
|
+
/* Per-semantic-variant forced-colors fallbacks. The visually-hidden
|
|
354
|
+
semantic variant label (.badge__variant-label) keeps AT users
|
|
355
|
+
informed; these blocks restore visual semantic distinction for
|
|
356
|
+
sighted users in HCM where bg/color collapse to system defaults.
|
|
357
|
+
Pattern: distinct border-style per variant. */
|
|
358
|
+
.badge--success {
|
|
359
|
+
border-style: solid;
|
|
360
|
+
border-width: 2px;
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
.badge--warning {
|
|
364
|
+
border-style: dashed;
|
|
365
|
+
border-width: 2px;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
.badge--error {
|
|
369
|
+
border-style: double;
|
|
370
|
+
border-width: 3px;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
.badge--info {
|
|
374
|
+
border-style: dotted;
|
|
375
|
+
border-width: 2px;
|
|
376
|
+
}
|
|
349
377
|
}
|
|
350
378
|
/* ── hx-button ── */
|
|
351
379
|
:host {
|
|
@@ -1001,7 +1029,8 @@
|
|
|
1001
1029
|
transform: translateY(var(--hx-transform-lift-md, -2px));
|
|
1002
1030
|
}
|
|
1003
1031
|
|
|
1004
|
-
.card--interactive:focus-visible
|
|
1032
|
+
.card--interactive:focus-visible,
|
|
1033
|
+
:host(:focus-visible) .card--interactive {
|
|
1005
1034
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
1006
1035
|
var(--hx-card-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
1007
1036
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
@@ -1100,6 +1129,18 @@
|
|
|
1100
1129
|
.card__actions {
|
|
1101
1130
|
border-top-color: CanvasText;
|
|
1102
1131
|
}
|
|
1132
|
+
|
|
1133
|
+
/*
|
|
1134
|
+
* Force a system-color focus ring on the interactive card under
|
|
1135
|
+
* Windows High Contrast Mode — the token-driven outline above
|
|
1136
|
+
* collapses to system colors but the explicit Highlight color is
|
|
1137
|
+
* stricter for AT contrast and reaches the host on the modern
|
|
1138
|
+
* host-canonical path (the host is the focused surface).
|
|
1139
|
+
*/
|
|
1140
|
+
.card--interactive:focus-visible,
|
|
1141
|
+
:host(:focus-visible) .card--interactive {
|
|
1142
|
+
outline-color: Highlight;
|
|
1143
|
+
}
|
|
1103
1144
|
}
|
|
1104
1145
|
/* ── hx-divider ── */
|
|
1105
1146
|
:host {
|
|
@@ -1430,12 +1471,37 @@
|
|
|
1430
1471
|
multiplicative stacking (0.5 * 0.5 = 0.25). Do not add opacity here. */
|
|
1431
1472
|
}
|
|
1432
1473
|
|
|
1474
|
+
/* ─── Loading State ─── */
|
|
1475
|
+
|
|
1476
|
+
.button--loading {
|
|
1477
|
+
position: relative;
|
|
1478
|
+
cursor: wait;
|
|
1479
|
+
}
|
|
1480
|
+
|
|
1481
|
+
.button__spinner {
|
|
1482
|
+
width: 1em;
|
|
1483
|
+
height: 1em;
|
|
1484
|
+
flex-shrink: 0;
|
|
1485
|
+
animation: hx-icon-button-spin var(--hx-duration-spinner, 750ms) linear infinite;
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
@keyframes hx-icon-button-spin {
|
|
1489
|
+
to {
|
|
1490
|
+
transform: rotate(360deg);
|
|
1491
|
+
}
|
|
1492
|
+
}
|
|
1493
|
+
|
|
1433
1494
|
/* ─── Reduced Motion ─── */
|
|
1434
1495
|
|
|
1435
1496
|
@media (prefers-reduced-motion: reduce) {
|
|
1436
1497
|
.button {
|
|
1437
1498
|
transition: none;
|
|
1438
1499
|
}
|
|
1500
|
+
|
|
1501
|
+
.button__spinner {
|
|
1502
|
+
animation: none;
|
|
1503
|
+
opacity: var(--hx-opacity-muted, 0.6);
|
|
1504
|
+
}
|
|
1439
1505
|
}
|
|
1440
1506
|
|
|
1441
1507
|
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
@@ -1463,6 +1529,11 @@
|
|
|
1463
1529
|
:host([disabled]) {
|
|
1464
1530
|
opacity: 1;
|
|
1465
1531
|
}
|
|
1532
|
+
|
|
1533
|
+
.button--loading .button__spinner {
|
|
1534
|
+
stroke: ButtonText;
|
|
1535
|
+
forced-color-adjust: none;
|
|
1536
|
+
}
|
|
1466
1537
|
}
|
|
1467
1538
|
/* ── hx-image ── */
|
|
1468
1539
|
:host {
|
|
@@ -2007,11 +2078,34 @@
|
|
|
2007
2078
|
@media (forced-colors: active) {
|
|
2008
2079
|
.tag {
|
|
2009
2080
|
border-color: CanvasText;
|
|
2081
|
+
forced-color-adjust: none;
|
|
2082
|
+
background-color: Canvas;
|
|
2083
|
+
color: CanvasText;
|
|
2010
2084
|
}
|
|
2011
2085
|
|
|
2012
2086
|
.tag__remove-button {
|
|
2013
2087
|
color: ButtonText;
|
|
2014
2088
|
}
|
|
2089
|
+
|
|
2090
|
+
/* Per-semantic-variant forced-colors fallbacks. The visually-hidden
|
|
2091
|
+
semantic variant label (.tag__variant-label) keeps AT users
|
|
2092
|
+
informed; these blocks restore visual semantic distinction for
|
|
2093
|
+
sighted users in HCM where bg/color collapse to system defaults.
|
|
2094
|
+
Pattern: distinct border-style per variant (matches hx-badge). */
|
|
2095
|
+
.tag--success {
|
|
2096
|
+
border-style: solid;
|
|
2097
|
+
border-width: 2px;
|
|
2098
|
+
}
|
|
2099
|
+
|
|
2100
|
+
.tag--warning {
|
|
2101
|
+
border-style: dashed;
|
|
2102
|
+
border-width: 2px;
|
|
2103
|
+
}
|
|
2104
|
+
|
|
2105
|
+
.tag--danger {
|
|
2106
|
+
border-style: double;
|
|
2107
|
+
border-width: 3px;
|
|
2108
|
+
}
|
|
2015
2109
|
}
|
|
2016
2110
|
/* ── hx-text ── */
|
|
2017
2111
|
:host {
|
|
@@ -109,6 +109,15 @@
|
|
|
109
109
|
min-width: 0;
|
|
110
110
|
}
|
|
111
111
|
|
|
112
|
+
/* (group-6 5.1) Wrapper around the default slot. Carries aria-hidden=true
|
|
113
|
+
so the visible message text is not double-announced alongside the
|
|
114
|
+
sr-only announcer. display:contents keeps the wrapper visually
|
|
115
|
+
transparent so children participate in the parent flex layout as if
|
|
116
|
+
the wrapper were not there. */
|
|
117
|
+
.alert__default-slot {
|
|
118
|
+
display: contents;
|
|
119
|
+
}
|
|
120
|
+
|
|
112
121
|
/* ─── Actions ─── */
|
|
113
122
|
/* Hidden by default; shown via JS slotchange detection to avoid invisible */
|
|
114
123
|
/* margin-top spacing when no actions are slotted. */
|
|
@@ -574,6 +583,11 @@
|
|
|
574
583
|
/* ─── Forced Colors (Windows High Contrast) ─── */
|
|
575
584
|
|
|
576
585
|
@media (forced-colors: active) {
|
|
586
|
+
.meter:focus-visible {
|
|
587
|
+
outline: 2px solid Highlight;
|
|
588
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
589
|
+
}
|
|
590
|
+
|
|
577
591
|
.meter__track {
|
|
578
592
|
border: 1px solid CanvasText;
|
|
579
593
|
}
|