@helixui/library 3.6.0 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +2633 -805
- package/dist/components/hx-action-bar/hx-action-bar.d.ts +18 -0
- package/dist/components/hx-action-bar/hx-action-bar.d.ts.map +1 -1
- package/dist/components/hx-action-bar/hx-action-bar.styles.d.ts.map +1 -1
- package/dist/components/hx-action-bar/index.js +1 -1
- package/dist/components/hx-alert/hx-alert.d.ts +18 -0
- package/dist/components/hx-alert/hx-alert.d.ts.map +1 -1
- package/dist/components/hx-badge/index.js +1 -1
- package/dist/components/hx-banner/hx-banner.d.ts +19 -0
- package/dist/components/hx-banner/hx-banner.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts +18 -0
- package/dist/components/hx-breadcrumb/hx-breadcrumb.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/index.js +1 -1
- package/dist/components/hx-button/hx-button.d.ts +18 -0
- package/dist/components/hx-button/hx-button.d.ts.map +1 -1
- package/dist/components/hx-button/hx-button.styles.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 +47 -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 +18 -0
- 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 +36 -0
- package/dist/components/hx-checkbox-group/hx-checkbox-group.d.ts.map +1 -1
- package/dist/components/hx-checkbox-group/hx-checkbox-group.styles.d.ts.map +1 -1
- package/dist/components/hx-checkbox-group/index.js +1 -1
- package/dist/components/hx-clinical-status/hx-clinical-status.d.ts +19 -0
- package/dist/components/hx-clinical-status/hx-clinical-status.d.ts.map +1 -1
- package/dist/components/hx-color-picker/hx-color-picker.d.ts +18 -0
- 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 +18 -0
- package/dist/components/hx-combobox/hx-combobox.d.ts.map +1 -1
- package/dist/components/hx-copy-button/hx-copy-button.d.ts +18 -0
- package/dist/components/hx-copy-button/hx-copy-button.d.ts.map +1 -1
- package/dist/components/hx-copy-button/hx-copy-button.styles.d.ts.map +1 -1
- package/dist/components/hx-copy-button/index.js +1 -1
- package/dist/components/hx-date-picker/hx-date-picker.d.ts +18 -0
- 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 +18 -0
- package/dist/components/hx-dialog/hx-dialog.d.ts.map +1 -1
- package/dist/components/hx-drawer/hx-drawer.d.ts +18 -0
- package/dist/components/hx-drawer/hx-drawer.d.ts.map +1 -1
- package/dist/components/hx-dropdown/hx-dropdown.d.ts +18 -0
- package/dist/components/hx-dropdown/hx-dropdown.d.ts.map +1 -1
- package/dist/components/hx-dropdown/hx-dropdown.styles.d.ts.map +1 -1
- package/dist/components/hx-dropdown/index.js +1 -1
- package/dist/components/hx-field/hx-field.d.ts +17 -0
- package/dist/components/hx-field/hx-field.d.ts.map +1 -1
- package/dist/components/hx-field-label/hx-field-label.d.ts +17 -0
- package/dist/components/hx-field-label/hx-field-label.d.ts.map +1 -1
- package/dist/components/hx-file-upload/hx-file-upload.d.ts +18 -0
- package/dist/components/hx-file-upload/hx-file-upload.d.ts.map +1 -1
- package/dist/components/hx-form/hx-form.d.ts +19 -0
- package/dist/components/hx-form/hx-form.d.ts.map +1 -1
- package/dist/components/hx-help-text/hx-help-text.d.ts +17 -0
- package/dist/components/hx-help-text/hx-help-text.d.ts.map +1 -1
- package/dist/components/hx-icon-button/hx-icon-button.d.ts +18 -0
- 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-menu/hx-menu.d.ts +18 -0
- package/dist/components/hx-menu/hx-menu.d.ts.map +1 -1
- package/dist/components/hx-nav/hx-nav.d.ts +18 -0
- package/dist/components/hx-nav/hx-nav.d.ts.map +1 -1
- package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
- package/dist/components/hx-nav/index.js +1 -1
- package/dist/components/hx-number-input/hx-number-input.d.ts +18 -0
- package/dist/components/hx-number-input/hx-number-input.d.ts.map +1 -1
- package/dist/components/hx-number-input/index.js +1 -1
- package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts +18 -0
- package/dist/components/hx-overflow-menu/hx-overflow-menu.d.ts.map +1 -1
- package/dist/components/hx-pagination/hx-pagination.styles.d.ts.map +1 -1
- package/dist/components/hx-pagination/index.js +1 -1
- package/dist/components/hx-popover/hx-popover.d.ts +18 -0
- package/dist/components/hx-popover/hx-popover.d.ts.map +1 -1
- package/dist/components/hx-popover/hx-popover.styles.d.ts.map +1 -1
- package/dist/components/hx-popover/index.js +1 -1
- package/dist/components/hx-popup/hx-popup.d.ts +18 -0
- package/dist/components/hx-popup/hx-popup.d.ts.map +1 -1
- package/dist/components/hx-popup/hx-popup.styles.d.ts.map +1 -1
- package/dist/components/hx-popup/index.js +1 -1
- package/dist/components/hx-radio-group/hx-radio-group.d.ts +18 -0
- package/dist/components/hx-radio-group/hx-radio-group.d.ts.map +1 -1
- package/dist/components/hx-radio-group/hx-radio-group.styles.d.ts.map +1 -1
- package/dist/components/hx-radio-group/hx-radio.styles.d.ts.map +1 -1
- package/dist/components/hx-radio-group/index.js +1 -1
- package/dist/components/hx-rating/hx-rating.d.ts +19 -0
- package/dist/components/hx-rating/hx-rating.d.ts.map +1 -1
- package/dist/components/hx-select/hx-select.d.ts +18 -0
- package/dist/components/hx-select/hx-select.d.ts.map +1 -1
- package/dist/components/hx-side-nav/hx-side-nav.d.ts +18 -0
- package/dist/components/hx-side-nav/hx-side-nav.d.ts.map +1 -1
- package/dist/components/hx-side-nav/hx-side-nav.styles.d.ts.map +1 -1
- package/dist/components/hx-side-nav/index.js +1 -1
- package/dist/components/hx-slider/hx-slider.d.ts +19 -0
- package/dist/components/hx-slider/hx-slider.d.ts.map +1 -1
- package/dist/components/hx-split-button/hx-split-button.d.ts +18 -0
- package/dist/components/hx-split-button/hx-split-button.d.ts.map +1 -1
- package/dist/components/hx-split-button/hx-split-button.styles.d.ts.map +1 -1
- package/dist/components/hx-split-button/index.js +1 -1
- package/dist/components/hx-steps/index.js +1 -1
- package/dist/components/hx-switch/hx-switch.d.ts +18 -0
- 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-tabs/hx-tab.styles.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tabs.d.ts +18 -0
- 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-text-input/hx-text-input.d.ts +18 -0
- package/dist/components/hx-text-input/hx-text-input.d.ts.map +1 -1
- package/dist/components/hx-text-input/hx-text-input.styles.d.ts.map +1 -1
- package/dist/components/hx-text-input/index.js +1 -1
- package/dist/components/hx-textarea/hx-textarea.d.ts +18 -0
- package/dist/components/hx-textarea/hx-textarea.d.ts.map +1 -1
- package/dist/components/hx-time-picker/hx-time-picker.d.ts +18 -0
- 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.d.ts +19 -0
- package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
- package/dist/components/hx-toggle-button/hx-toggle-button.d.ts +18 -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 +18 -0
- package/dist/components/hx-tooltip/hx-tooltip.d.ts.map +1 -1
- package/dist/components/hx-tooltip/hx-tooltip.styles.d.ts.map +1 -1
- package/dist/components/hx-tooltip/index.js +1 -1
- package/dist/components/hx-top-nav/hx-top-nav.d.ts +18 -0
- package/dist/components/hx-top-nav/hx-top-nav.d.ts.map +1 -1
- package/dist/components/hx-top-nav/hx-top-nav.styles.d.ts.map +1 -1
- package/dist/components/hx-top-nav/index.js +1 -1
- package/dist/css/helix-all.css +298 -64
- package/dist/css/helix-core.css +24 -15
- package/dist/css/helix-forms.css +133 -32
- package/dist/css/helix-navigation.css +49 -5
- package/dist/css/helix-overlay.css +53 -0
- package/dist/css/helix-tokens.css +15 -13
- package/dist/css/helix-utility.css +39 -12
- package/dist/css/hx-action-bar.css +12 -0
- package/dist/css/hx-badge.css +5 -5
- package/dist/css/hx-button.css +15 -5
- package/dist/css/hx-checkbox-group.css +11 -0
- package/dist/css/hx-checkbox.css +20 -4
- package/dist/css/hx-color-picker.css +14 -1
- package/dist/css/hx-copy-button.css +5 -2
- package/dist/css/hx-date-picker.css +11 -3
- package/dist/css/hx-dropdown.css +13 -0
- package/dist/css/hx-icon-button.css +4 -5
- package/dist/css/hx-nav.css +24 -2
- package/dist/css/hx-number-input.css +8 -8
- package/dist/css/hx-pagination.css +6 -3
- package/dist/css/hx-popover.css +13 -0
- package/dist/css/hx-popup.css +14 -0
- package/dist/css/hx-radio-group.css +10 -0
- package/dist/css/hx-side-nav.css +7 -0
- package/dist/css/hx-split-button.css +22 -10
- package/dist/css/hx-switch.css +19 -1
- package/dist/css/hx-text-input.css +4 -1
- package/dist/css/hx-time-picker.css +7 -2
- package/dist/css/hx-toggle-button.css +29 -12
- package/dist/css/hx-tooltip.css +13 -0
- package/dist/css/hx-top-nav.css +12 -0
- package/dist/css/index.css +1 -1
- package/dist/css/manifest.json +57 -20
- package/dist/index.js +28 -28
- package/dist/shared/{hx-action-bar-CitgcpGv.js → hx-action-bar-BlEG4aZv.js} +41 -29
- package/dist/shared/hx-action-bar-BlEG4aZv.js.map +1 -0
- package/dist/shared/hx-alert-Bto8-TIi.js.map +1 -1
- package/dist/shared/{hx-badge-JlFtAdxS.js → hx-badge-DFL35nzi.js} +16 -16
- package/dist/shared/hx-badge-DFL35nzi.js.map +1 -0
- package/dist/shared/hx-banner-fpRnciIO.js.map +1 -1
- package/dist/shared/{hx-breadcrumb-item-3tKppF9h.js → hx-breadcrumb-item-D8xYqe3s.js} +56 -43
- package/dist/shared/hx-breadcrumb-item-D8xYqe3s.js.map +1 -0
- package/dist/shared/{hx-button-BOwAEcF1.js → hx-button-DOZTZnz-.js} +29 -19
- package/dist/shared/hx-button-DOZTZnz-.js.map +1 -0
- package/dist/shared/hx-button-group-D3QUmSzl.js +248 -0
- package/dist/shared/hx-button-group-D3QUmSzl.js.map +1 -0
- package/dist/shared/{hx-checkbox-CYd0YV_u.js → hx-checkbox-DcgyGS9V.js} +27 -11
- package/dist/shared/hx-checkbox-DcgyGS9V.js.map +1 -0
- package/dist/shared/{hx-checkbox-group-D5piJLY8.js → hx-checkbox-group-C0q6HDqn.js} +101 -58
- package/dist/shared/hx-checkbox-group-C0q6HDqn.js.map +1 -0
- package/dist/shared/hx-clinical-status-D3XQIOqX.js.map +1 -1
- package/dist/shared/{hx-color-picker-DBwJzT5f.js → hx-color-picker-CYjx8i8R.js} +97 -84
- package/dist/shared/hx-color-picker-CYjx8i8R.js.map +1 -0
- package/dist/shared/hx-combobox-NgJaLbs2.js.map +1 -1
- package/dist/shared/{hx-copy-button-sUVuikyH.js → hx-copy-button-DJirFCUL.js} +18 -15
- package/dist/shared/hx-copy-button-DJirFCUL.js.map +1 -0
- package/dist/shared/{hx-date-picker-B49yo4Vm.js → hx-date-picker-0PtEav0K.js} +71 -63
- package/dist/shared/hx-date-picker-0PtEav0K.js.map +1 -0
- package/dist/shared/hx-dialog-B4weoj_1.js.map +1 -1
- package/dist/shared/hx-drawer-CM_upadk.js.map +1 -1
- package/dist/shared/{hx-dropdown-D626S2ZG.js → hx-dropdown-xHwTJecv.js} +44 -31
- package/dist/shared/hx-dropdown-xHwTJecv.js.map +1 -0
- package/dist/shared/hx-field-label-BVRyyKeh.js.map +1 -1
- package/dist/shared/hx-field-zw0U1KVi.js.map +1 -1
- package/dist/shared/hx-file-upload-D3rKROK5.js.map +1 -1
- package/dist/shared/hx-form-CkChEATa.js.map +1 -1
- package/dist/shared/hx-help-text-Xb2Yr8x2.js.map +1 -1
- package/dist/shared/{hx-icon-button-a6OpeQz5.js → hx-icon-button-B2BdVdyK.js} +10 -11
- package/dist/shared/hx-icon-button-B2BdVdyK.js.map +1 -0
- package/dist/shared/hx-menu-divider-A6Guuzi_.js.map +1 -1
- package/dist/shared/{hx-nav-ldFM3Fle.js → hx-nav-ChMTfn7o.js} +66 -44
- package/dist/shared/hx-nav-ChMTfn7o.js.map +1 -0
- package/dist/shared/{hx-nav-item-CODtUlew.js → hx-nav-item-ClN17f1y.js} +62 -55
- package/dist/shared/hx-nav-item-ClN17f1y.js.map +1 -0
- package/dist/shared/{hx-number-input-yUzFOSC1.js → hx-number-input-MggsT7F0.js} +13 -13
- package/dist/shared/hx-number-input-MggsT7F0.js.map +1 -0
- package/dist/shared/hx-overflow-menu-DFjJAziP.js.map +1 -1
- package/dist/shared/{hx-pagination-C7y8GVyU.js → hx-pagination-D726PyTM.js} +7 -4
- package/dist/shared/hx-pagination-D726PyTM.js.map +1 -0
- package/dist/shared/{hx-popover-BAlAFOH9.js → hx-popover-BjB0nkcq.js} +51 -38
- package/dist/shared/hx-popover-BjB0nkcq.js.map +1 -0
- package/dist/shared/{hx-popup-COUXXZ9X.js → hx-popup-BiV_2evC.js} +59 -45
- package/dist/shared/hx-popup-BiV_2evC.js.map +1 -0
- package/dist/shared/{hx-radio-C7eTj5YI.js → hx-radio-BY4zpwdh.js} +81 -63
- package/dist/shared/hx-radio-BY4zpwdh.js.map +1 -0
- package/dist/shared/hx-rating-C3QP53k9.js.map +1 -1
- package/dist/shared/hx-select-DahFehiZ.js.map +1 -1
- package/dist/shared/hx-slider-Blmv_rwS.js.map +1 -1
- package/dist/shared/{hx-split-button-Ddle8iVx.js → hx-split-button-CdNz1XAu.js} +62 -50
- package/dist/shared/hx-split-button-CdNz1XAu.js.map +1 -0
- package/dist/shared/{hx-step-R2rjp1fT.js → hx-step-CUzliIK_.js} +3 -3
- package/dist/shared/hx-step-CUzliIK_.js.map +1 -0
- package/dist/shared/{hx-switch-TvKGvZJz.js → hx-switch-BCXuNxEH.js} +42 -24
- package/dist/shared/hx-switch-BCXuNxEH.js.map +1 -0
- package/dist/shared/{hx-tab-panel-DzsX8BHV.js → hx-tab-panel-BfisavKo.js} +47 -32
- package/dist/shared/hx-tab-panel-BfisavKo.js.map +1 -0
- package/dist/shared/{hx-text-input-D6FlOZM-.js → hx-text-input-V5sQOpDh.js} +5 -2
- package/dist/shared/hx-text-input-V5sQOpDh.js.map +1 -0
- package/dist/shared/hx-textarea-CNG590KY.js.map +1 -1
- package/dist/shared/{hx-time-picker-Bo7FWzmf.js → hx-time-picker-DfJkBwcX.js} +41 -36
- package/dist/shared/hx-time-picker-DfJkBwcX.js.map +1 -0
- package/dist/shared/{hx-toggle-button-DwBers3A.js → hx-toggle-button-xNVYeA3X.js} +64 -47
- package/dist/shared/hx-toggle-button-xNVYeA3X.js.map +1 -0
- package/dist/shared/{hx-tooltip-DVqtKPCD.js → hx-tooltip-CamO-9nd.js} +24 -11
- package/dist/shared/hx-tooltip-CamO-9nd.js.map +1 -0
- package/dist/shared/{hx-top-nav-DP6OFS8C.js → hx-top-nav-CsTxOtVI.js} +26 -14
- package/dist/shared/hx-top-nav-CsTxOtVI.js.map +1 -0
- package/dist/shared/toast-factory-Dht3pVsw.js.map +1 -1
- package/figma-inventory.json +1258 -386
- package/package.json +2 -2
- package/dist/shared/hx-action-bar-CitgcpGv.js.map +0 -1
- package/dist/shared/hx-badge-JlFtAdxS.js.map +0 -1
- package/dist/shared/hx-breadcrumb-item-3tKppF9h.js.map +0 -1
- package/dist/shared/hx-button-BOwAEcF1.js.map +0 -1
- package/dist/shared/hx-button-group-4NUBpkyC.js +0 -181
- package/dist/shared/hx-button-group-4NUBpkyC.js.map +0 -1
- package/dist/shared/hx-checkbox-CYd0YV_u.js.map +0 -1
- package/dist/shared/hx-checkbox-group-D5piJLY8.js.map +0 -1
- package/dist/shared/hx-color-picker-DBwJzT5f.js.map +0 -1
- package/dist/shared/hx-copy-button-sUVuikyH.js.map +0 -1
- package/dist/shared/hx-date-picker-B49yo4Vm.js.map +0 -1
- package/dist/shared/hx-dropdown-D626S2ZG.js.map +0 -1
- package/dist/shared/hx-icon-button-a6OpeQz5.js.map +0 -1
- package/dist/shared/hx-nav-item-CODtUlew.js.map +0 -1
- package/dist/shared/hx-nav-ldFM3Fle.js.map +0 -1
- package/dist/shared/hx-number-input-yUzFOSC1.js.map +0 -1
- package/dist/shared/hx-pagination-C7y8GVyU.js.map +0 -1
- package/dist/shared/hx-popover-BAlAFOH9.js.map +0 -1
- package/dist/shared/hx-popup-COUXXZ9X.js.map +0 -1
- package/dist/shared/hx-radio-C7eTj5YI.js.map +0 -1
- package/dist/shared/hx-split-button-Ddle8iVx.js.map +0 -1
- package/dist/shared/hx-step-R2rjp1fT.js.map +0 -1
- package/dist/shared/hx-switch-TvKGvZJz.js.map +0 -1
- package/dist/shared/hx-tab-panel-DzsX8BHV.js.map +0 -1
- package/dist/shared/hx-text-input-D6FlOZM-.js.map +0 -1
- package/dist/shared/hx-time-picker-Bo7FWzmf.js.map +0 -1
- package/dist/shared/hx-toggle-button-DwBers3A.js.map +0 -1
- package/dist/shared/hx-tooltip-DVqtKPCD.js.map +0 -1
- package/dist/shared/hx-top-nav-DP6OFS8C.js.map +0 -1
|
@@ -135,16 +135,22 @@
|
|
|
135
135
|
min-height: var(--hx-size-8, 2rem);
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
-
/* md
|
|
138
|
+
/* md — WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
139
|
+
Bound to --hx-touch-target-min so the default md variant clears the
|
|
140
|
+
AAA-strict floor without requiring consumers to opt into sm or lg. */
|
|
139
141
|
.split-button--md .split-button__primary {
|
|
140
142
|
padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
|
|
141
143
|
font-size: var(--hx-font-size-md, 1rem);
|
|
142
|
-
min-height: var(--hx-
|
|
144
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
143
145
|
}
|
|
144
146
|
|
|
145
147
|
.split-button--md .split-button__trigger {
|
|
146
148
|
padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
|
|
147
|
-
|
|
149
|
+
/* WCAG 2.5.5 (Enhanced) AAA — chevron trigger must clear 44×44 in
|
|
150
|
+
BOTH dimensions. Without min-width, the trigger collapses to its
|
|
151
|
+
icon width (~38 px) and fails the brand-theme matrix audit. */
|
|
152
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
153
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
148
154
|
}
|
|
149
155
|
|
|
150
156
|
/* lg */
|
|
@@ -161,21 +167,27 @@
|
|
|
161
167
|
|
|
162
168
|
/* ─── Variant: primary ─── */
|
|
163
169
|
|
|
170
|
+
/* Primary resting — bind through action.primary.bg (resolves to primary-600
|
|
171
|
+
across all 6 brands) coordinated with text.on-primary. Inline fallback
|
|
172
|
+
#0d1825 matches text.on-primary's resolved primitive (neutral-900) so a
|
|
173
|
+
cold-start without semantic tokens paints AA-tuned dark-on-teal (5.20:1)
|
|
174
|
+
rather than white-on-teal (3.43:1 fail). Mirrors hx-button precedent
|
|
175
|
+
(hx-button.styles.ts ~line 88) and Phase C structural fix. */
|
|
164
176
|
.split-button--primary .split-button__primary,
|
|
165
177
|
.split-button--primary .split-button__trigger {
|
|
166
|
-
--hx-split-button-bg: var(--hx-color-primary-
|
|
167
|
-
--hx-split-button-color: var(--hx-color-text-on-primary, #
|
|
178
|
+
--hx-split-button-bg: var(--hx-color-action-primary-bg, #429797);
|
|
179
|
+
--hx-split-button-color: var(--hx-color-text-on-primary, #0d1825);
|
|
168
180
|
--hx-split-button-border-color: transparent;
|
|
169
181
|
--hx-split-button-divider-color: var(--hx-color-primary-900, #0b3232);
|
|
170
182
|
}
|
|
171
183
|
|
|
172
|
-
/* primary:hover —
|
|
173
|
-
|
|
174
|
-
|
|
184
|
+
/* primary:hover — lift to action.primary.bg-hover (primary-700) with
|
|
185
|
+
text.on-primary-strong (neutral-0). Replaces the universal brightness(0.9)
|
|
186
|
+
filter which would degrade contrast on the resting pair. */
|
|
175
187
|
.split-button--primary .split-button__primary:hover,
|
|
176
188
|
.split-button--primary .split-button__trigger:hover {
|
|
177
|
-
--hx-split-button-bg: var(--hx-color-primary-
|
|
178
|
-
--hx-split-button-color: var(--hx-color-
|
|
189
|
+
--hx-split-button-bg: var(--hx-color-action-primary-bg-hover, #0f7078);
|
|
190
|
+
--hx-split-button-color: var(--hx-color-text-on-primary-strong, #ffffff);
|
|
179
191
|
filter: none;
|
|
180
192
|
}
|
|
181
193
|
|
package/dist/css/hx-switch.css
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
/* hx-switch — extracted from Shadow DOM styles */
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
|
+
/*
|
|
5
|
+
* Suppress the browser default ~1px host outline. Without this the formal
|
|
6
|
+
* AAA audit harness (which measures computed outline-width on the focused
|
|
7
|
+
* host) records a sub-2px outline and reports WCAG 2.4.13 Partially Supports.
|
|
8
|
+
* The visual focus indicator is rendered on the inner .switch__track below.
|
|
9
|
+
*/
|
|
10
|
+
outline: none;
|
|
4
11
|
}
|
|
5
12
|
|
|
6
13
|
:host([disabled]) {
|
|
@@ -72,7 +79,18 @@
|
|
|
72
79
|
}
|
|
73
80
|
|
|
74
81
|
.switch--checked .switch__track {
|
|
75
|
-
|
|
82
|
+
/* WCAG 1.4.6 AAA-strict 7:1: consume action.primary.bg (primary-700 since
|
|
83
|
+
3.4.0) so the checked track inherits the elevated AAA-strict action
|
|
84
|
+
surface contract used by every other primary interactive surface
|
|
85
|
+
(hx-button, hx-checkbox checked-bg, hx-radio checked-bg, etc.). The
|
|
86
|
+
prior primary-500 fallback (#429797 in Apex) clears AA (5.20:1) but
|
|
87
|
+
only resolves to ~6.11:1 in the formal harness's contrast probe —
|
|
88
|
+
below the 7:1 AAA-strict floor. action.primary.bg = primary-700
|
|
89
|
+
(#0F6363 in Apex) clears 7.03:1 across all 6 brands. */
|
|
90
|
+
background-color: var(
|
|
91
|
+
--hx-switch-track-checked-bg,
|
|
92
|
+
var(--hx-color-action-primary-bg, var(--hx-color-primary-700, #0f7078))
|
|
93
|
+
);
|
|
76
94
|
}
|
|
77
95
|
|
|
78
96
|
.switch:not(.switch--checked) .switch__track:hover {
|
|
@@ -221,7 +221,10 @@
|
|
|
221
221
|
font-size: var(--_text-input-font-size);
|
|
222
222
|
color: var(--_text-input-color);
|
|
223
223
|
line-height: var(--hx-line-height-normal, 1.5);
|
|
224
|
-
|
|
224
|
+
/* WCAG 2.5.5 (Enhanced) AAA — primary input surface must meet 44×44.
|
|
225
|
+
--hx-touch-target-min resolves to 2.75rem (44px); --hx-size-10 alone
|
|
226
|
+
resolves to 2.5rem (40px) and fails AAA on the inner input. */
|
|
227
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
225
228
|
width: 100%;
|
|
226
229
|
}
|
|
227
230
|
|
|
@@ -75,7 +75,8 @@
|
|
|
75
75
|
font-size: var(--hx-font-size-md, 1rem);
|
|
76
76
|
color: var(--hx-time-picker-color, var(--hx-color-text-strong, #202b39));
|
|
77
77
|
line-height: var(--hx-line-height-normal, 1.5);
|
|
78
|
-
|
|
78
|
+
/* WCAG 2.5.5 (Enhanced) AAA — primary input surface must meet 44×44. */
|
|
79
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
79
80
|
width: 100%;
|
|
80
81
|
cursor: text;
|
|
81
82
|
}
|
|
@@ -95,7 +96,11 @@
|
|
|
95
96
|
color: var(--hx-time-picker-chevron-color, var(--hx-color-text-muted, #4a5362));
|
|
96
97
|
cursor: pointer;
|
|
97
98
|
height: 100%;
|
|
98
|
-
|
|
99
|
+
/* WCAG 2.5.5 (Enhanced) AAA — toggle button must meet 44×44 in
|
|
100
|
+
BOTH dimensions; without min-width the icon button collapses to
|
|
101
|
+
~41 px wide and fails the matrix audit. */
|
|
102
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
103
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
99
104
|
flex-shrink: 0;
|
|
100
105
|
border-inline-start: var(--hx-border-width-thin, 1px) solid
|
|
101
106
|
var(--hx-time-picker-border-color, var(--hx-color-border-strong, #66787b));
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
/* hx-toggle-button — extracted from Shadow DOM styles */
|
|
2
2
|
:host {
|
|
3
3
|
display: inline-block;
|
|
4
|
+
/*
|
|
5
|
+
* Suppress the browser default ~1px host outline. Without this the formal
|
|
6
|
+
* AAA audit harness (which measures computed outline-width on the focused
|
|
7
|
+
* host) records a sub-2px outline and reports WCAG 2.4.13 Partially Supports.
|
|
8
|
+
* The visual focus indicator is rendered on the inner .button below.
|
|
9
|
+
*/
|
|
10
|
+
outline: none;
|
|
4
11
|
}
|
|
5
12
|
|
|
6
13
|
:host([disabled]) {
|
|
@@ -17,7 +24,7 @@
|
|
|
17
24
|
gap: var(--hx-space-2, 0.5rem);
|
|
18
25
|
border: var(--hx-border-width-thin, 1px) solid var(--hx-toggle-button-border-color, transparent);
|
|
19
26
|
border-radius: var(--hx-toggle-button-border-radius, var(--hx-border-radius-md, 0.375rem));
|
|
20
|
-
background-color: var(--hx-toggle-button-bg, var(--hx-color-primary-
|
|
27
|
+
background-color: var(--hx-toggle-button-bg, var(--hx-color-action-primary-bg, #0f7078));
|
|
21
28
|
color: var(--hx-toggle-button-color, var(--hx-color-text-on-primary, #ffffff));
|
|
22
29
|
font-family: var(--hx-toggle-button-font-family, var(--hx-font-family-sans, sans-serif));
|
|
23
30
|
font-weight: var(--hx-toggle-button-font-weight, var(--hx-font-weight-semibold, 600));
|
|
@@ -78,7 +85,10 @@
|
|
|
78
85
|
.button--md {
|
|
79
86
|
padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
|
|
80
87
|
font-size: var(--hx-font-size-md, 1rem);
|
|
81
|
-
|
|
88
|
+
/* WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
89
|
+
Bound to --hx-touch-target-min so the default md variant clears the
|
|
90
|
+
AAA-strict floor without requiring consumers to opt into sm or lg. */
|
|
91
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
82
92
|
}
|
|
83
93
|
|
|
84
94
|
.button--lg {
|
|
@@ -90,7 +100,7 @@
|
|
|
90
100
|
/* ─── Style Variants ─── */
|
|
91
101
|
|
|
92
102
|
.button--primary {
|
|
93
|
-
--hx-toggle-button-bg: var(--hx-color-primary-
|
|
103
|
+
--hx-toggle-button-bg: var(--hx-color-action-primary-bg, #0f7078);
|
|
94
104
|
--hx-toggle-button-color: var(--hx-color-text-on-primary, #ffffff);
|
|
95
105
|
--hx-toggle-button-border-color: transparent;
|
|
96
106
|
}
|
|
@@ -168,12 +178,15 @@
|
|
|
168
178
|
* so the state change is immediately legible.
|
|
169
179
|
*/
|
|
170
180
|
.button--secondary.button--pressed {
|
|
171
|
-
--hx-toggle-button-bg: var(
|
|
181
|
+
--hx-toggle-button-bg: var(
|
|
182
|
+
--hx-toggle-button-pressed-bg,
|
|
183
|
+
var(--hx-color-action-primary-bg, #0f7078)
|
|
184
|
+
);
|
|
172
185
|
--hx-toggle-button-color: var(
|
|
173
186
|
--hx-toggle-button-pressed-color,
|
|
174
187
|
var(--hx-color-text-on-primary, #ffffff)
|
|
175
188
|
);
|
|
176
|
-
--hx-toggle-button-border-color: var(--hx-color-primary-
|
|
189
|
+
--hx-toggle-button-border-color: var(--hx-color-action-primary-bg, #0f7078);
|
|
177
190
|
}
|
|
178
191
|
|
|
179
192
|
/* Tertiary pressed: use primary-100 bg + primary-700 text + border for WCAG 3:1 non-text contrast. */
|
|
@@ -184,7 +197,8 @@
|
|
|
184
197
|
var(--hx-color-primary-700, #0f6363)
|
|
185
198
|
);
|
|
186
199
|
--hx-toggle-button-border-color: var(--hx-color-primary-600, #0f7078);
|
|
187
|
-
box-shadow: inset 0 0 0
|
|
200
|
+
box-shadow: inset 0 0 0 var(--hx-toggle-button-pressed-ring-width, 1px)
|
|
201
|
+
var(--hx-color-primary-600, #0f7078);
|
|
188
202
|
}
|
|
189
203
|
|
|
190
204
|
/* Ghost pressed: subtle neutral fill, matching hover behavior as a baseline. */
|
|
@@ -208,7 +222,8 @@
|
|
|
208
222
|
var(--hx-color-text-primary, #0d1825)
|
|
209
223
|
);
|
|
210
224
|
--hx-toggle-button-border-color: var(--hx-color-text-muted, #4a5362);
|
|
211
|
-
box-shadow: inset 0 0 0
|
|
225
|
+
box-shadow: inset 0 0 0 var(--hx-toggle-button-pressed-ring-width, 1px)
|
|
226
|
+
var(--hx-color-neutral-500, #66787b);
|
|
212
227
|
}
|
|
213
228
|
|
|
214
229
|
/* ─── Disabled ─── */
|
|
@@ -243,15 +258,17 @@
|
|
|
243
258
|
@media (forced-colors: active) {
|
|
244
259
|
.button {
|
|
245
260
|
forced-color-adjust: none;
|
|
246
|
-
background-color: ButtonFace;
|
|
247
|
-
color: ButtonText;
|
|
248
|
-
border: 2px solid
|
|
261
|
+
background-color: var(--hx-toggle-button-fc-bg, ButtonFace);
|
|
262
|
+
color: var(--hx-toggle-button-fc-color, ButtonText);
|
|
263
|
+
border: var(--hx-toggle-button-fc-border-width, 2px) solid
|
|
264
|
+
var(--hx-toggle-button-fc-border-color, ButtonText);
|
|
249
265
|
}
|
|
250
266
|
|
|
251
267
|
:host(:focus-visible) .button,
|
|
252
268
|
.button:focus-visible {
|
|
253
|
-
outline: 3px solid
|
|
254
|
-
|
|
269
|
+
outline: var(--hx-toggle-button-fc-focus-ring-width, 3px) solid
|
|
270
|
+
var(--hx-toggle-button-fc-focus-ring-color, Highlight);
|
|
271
|
+
outline-offset: var(--hx-toggle-button-fc-focus-ring-offset, 2px);
|
|
255
272
|
}
|
|
256
273
|
|
|
257
274
|
.button--pressed {
|
package/dist/css/hx-tooltip.css
CHANGED
|
@@ -7,6 +7,19 @@
|
|
|
7
7
|
display: inline-block;
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
+
/*
|
|
11
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on the slotted
|
|
12
|
+
* trigger. APG forbids the tooltip body from holding focus, so the
|
|
13
|
+
* trigger is the only AAA-relevant focus surface. Token-driven.
|
|
14
|
+
*/
|
|
15
|
+
::slotted([slot='trigger']:focus-visible),
|
|
16
|
+
::slotted(button:focus-visible),
|
|
17
|
+
::slotted(a:focus-visible) {
|
|
18
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
19
|
+
var(--hx-tooltip-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
20
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
21
|
+
}
|
|
22
|
+
|
|
10
23
|
[part='tooltip'] {
|
|
11
24
|
position: fixed;
|
|
12
25
|
z-index: var(--hx-tooltip-z-index, var(--hx-z-index-tooltip, 1600));
|
package/dist/css/hx-top-nav.css
CHANGED
|
@@ -77,6 +77,18 @@
|
|
|
77
77
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
+
/*
|
|
81
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px ring on slotted nav
|
|
82
|
+
* controls (links, buttons, hx-link, hx-button). Slotted bare anchors
|
|
83
|
+
* otherwise fall back to the 1px browser default.
|
|
84
|
+
*/
|
|
85
|
+
::slotted(a:focus-visible),
|
|
86
|
+
::slotted(button:focus-visible) {
|
|
87
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
88
|
+
var(--hx-top-nav-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
89
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
90
|
+
}
|
|
91
|
+
|
|
80
92
|
.mobile-toggle__icon {
|
|
81
93
|
width: var(--hx-space-6, 1.5rem);
|
|
82
94
|
height: var(--hx-space-6, 1.5rem);
|
package/dist/css/index.css
CHANGED