@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
|
@@ -95,7 +95,7 @@
|
|
|
95
95
|
--hx-color-text-placeholder: var(--hx-color-neutral-500);
|
|
96
96
|
--hx-color-text-disabled: var(--hx-color-neutral-400);
|
|
97
97
|
--hx-color-text-inverse: var(--hx-color-neutral-0);
|
|
98
|
-
--hx-color-text-on-primary: var(--hx-color-neutral-
|
|
98
|
+
--hx-color-text-on-primary: var(--hx-color-neutral-0);
|
|
99
99
|
--hx-color-text-on-secondary: var(--hx-color-neutral-900);
|
|
100
100
|
--hx-color-text-on-error: var(--hx-color-neutral-900);
|
|
101
101
|
--hx-color-text-on-success: var(--hx-color-neutral-900);
|
|
@@ -104,11 +104,11 @@
|
|
|
104
104
|
--hx-color-text-on-primary-strong: var(--hx-color-neutral-0);
|
|
105
105
|
--hx-color-text-on-success-strong: var(--hx-color-neutral-0);
|
|
106
106
|
--hx-color-text-on-error-strong: var(--hx-color-neutral-0);
|
|
107
|
-
--hx-color-text-link: var(--hx-color-primary-
|
|
108
|
-
--hx-color-text-link-hover: var(--hx-color-primary-
|
|
109
|
-
--hx-color-text-link-visited: var(--hx-color-secondary-
|
|
110
|
-
--hx-color-text-link-active: var(--hx-color-primary-
|
|
111
|
-
--hx-color-error-text: var(--hx-color-error-
|
|
107
|
+
--hx-color-text-link: var(--hx-color-primary-700);
|
|
108
|
+
--hx-color-text-link-hover: var(--hx-color-primary-800);
|
|
109
|
+
--hx-color-text-link-visited: var(--hx-color-secondary-700);
|
|
110
|
+
--hx-color-text-link-active: var(--hx-color-primary-900);
|
|
111
|
+
--hx-color-error-text: var(--hx-color-error-700);
|
|
112
112
|
--hx-color-success-text: var(--hx-color-success-700);
|
|
113
113
|
--hx-color-surface-default: var(--hx-color-neutral-0);
|
|
114
114
|
--hx-color-surface-raised: var(--hx-color-neutral-50);
|
|
@@ -129,15 +129,15 @@
|
|
|
129
129
|
--hx-color-focus-ring: var(--hx-color-primary-600);
|
|
130
130
|
--hx-color-selection-bg: var(--hx-color-primary-200);
|
|
131
131
|
--hx-color-selection-color: var(--hx-color-neutral-900);
|
|
132
|
-
--hx-color-action-primary-bg: var(--hx-color-primary-
|
|
132
|
+
--hx-color-action-primary-bg: var(--hx-color-primary-700);
|
|
133
133
|
--hx-color-action-primary-bg-inverted-rest: var(--hx-color-primary-500);
|
|
134
|
-
--hx-color-action-primary-bg-hover: var(--hx-color-primary-
|
|
135
|
-
--hx-color-action-primary-bg-active: var(--hx-color-primary-
|
|
134
|
+
--hx-color-action-primary-bg-hover: var(--hx-color-primary-800);
|
|
135
|
+
--hx-color-action-primary-bg-active: var(--hx-color-primary-900);
|
|
136
136
|
--hx-color-action-primary-bg-inverted-hover: var(--hx-color-primary-400);
|
|
137
|
-
--hx-color-action-secondary-fg: var(--hx-color-primary-
|
|
138
|
-
--hx-color-action-secondary-border: var(--hx-color-primary-
|
|
137
|
+
--hx-color-action-secondary-fg: var(--hx-color-primary-700);
|
|
138
|
+
--hx-color-action-secondary-border: var(--hx-color-primary-700);
|
|
139
139
|
--hx-color-action-secondary-bg-hover: var(--hx-color-primary-50);
|
|
140
|
-
--hx-color-action-ghost-fg: var(--hx-color-primary-
|
|
140
|
+
--hx-color-action-ghost-fg: var(--hx-color-primary-700);
|
|
141
141
|
--hx-color-action-ghost-bg-hover: var(--hx-color-primary-50);
|
|
142
142
|
--hx-color-action-danger-bg: var(--hx-color-error-500);
|
|
143
143
|
--hx-color-action-danger-bg-hover: var(--hx-color-error-600);
|
|
@@ -268,7 +268,7 @@
|
|
|
268
268
|
--hx-container-content: 72rem;
|
|
269
269
|
--hx-container-narrow: 48rem;
|
|
270
270
|
--hx-input-height-sm: var(--hx-size-8);
|
|
271
|
-
--hx-input-height-md: var(--hx-size-
|
|
271
|
+
--hx-input-height-md: var(--hx-size-11);
|
|
272
272
|
--hx-input-height-lg: var(--hx-size-12);
|
|
273
273
|
--hx-divider-color: var(--hx-color-border-default);
|
|
274
274
|
--hx-divider-width: var(--hx-border-width-thin);
|
|
@@ -496,6 +496,8 @@
|
|
|
496
496
|
--hx-color-focus-ring: #FFFF00;
|
|
497
497
|
--hx-color-selection-bg: #1AEBFF;
|
|
498
498
|
--hx-color-selection-color: #000000;
|
|
499
|
+
--hx-color-action-primary-bg-hover: var(--hx-color-primary-600);
|
|
500
|
+
--hx-color-action-primary-bg-active: var(--hx-color-primary-700);
|
|
499
501
|
--hx-color-action-danger-bg-active: var(--hx-color-error-500);
|
|
500
502
|
--hx-body-bg: #000000;
|
|
501
503
|
--hx-body-color: #FFFFFF;
|
|
@@ -118,6 +118,18 @@
|
|
|
118
118
|
flex-shrink: 0;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
+
/*
|
|
122
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on slotted
|
|
123
|
+
* natives (e.g. bare <button>, <a>) so consumers who slot non-HELiX
|
|
124
|
+
* controls inherit the same indicator as the HELiX components do.
|
|
125
|
+
* Token-driven: --hx-focus-ring-width resolves to 2px (default).
|
|
126
|
+
*/
|
|
127
|
+
::slotted(:focus-visible) {
|
|
128
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
129
|
+
var(--hx-action-bar-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
130
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
131
|
+
}
|
|
132
|
+
|
|
121
133
|
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
122
134
|
|
|
123
135
|
@media (forced-colors: active) {
|
|
@@ -188,10 +200,13 @@
|
|
|
188
200
|
font-size: var(--hx-font-size-sm);
|
|
189
201
|
}
|
|
190
202
|
|
|
203
|
+
/* md — WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
204
|
+
Bound to --hx-touch-target-min so the default md variant clears the
|
|
205
|
+
AAA-strict floor without requiring consumers to opt into sm or lg. */
|
|
191
206
|
.button--md {
|
|
192
207
|
padding: var(--hx-space-2);
|
|
193
|
-
min-width: var(--hx-
|
|
194
|
-
height: var(--hx-
|
|
208
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
209
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
195
210
|
font-size: var(--hx-font-size-md);
|
|
196
211
|
}
|
|
197
212
|
|
|
@@ -502,16 +517,22 @@
|
|
|
502
517
|
min-height: var(--hx-size-8, 2rem);
|
|
503
518
|
}
|
|
504
519
|
|
|
505
|
-
/* md
|
|
520
|
+
/* md — WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
521
|
+
Bound to --hx-touch-target-min so the default md variant clears the
|
|
522
|
+
AAA-strict floor without requiring consumers to opt into sm or lg. */
|
|
506
523
|
.split-button--md .split-button__primary {
|
|
507
524
|
padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
|
|
508
525
|
font-size: var(--hx-font-size-md, 1rem);
|
|
509
|
-
min-height: var(--hx-
|
|
526
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
510
527
|
}
|
|
511
528
|
|
|
512
529
|
.split-button--md .split-button__trigger {
|
|
513
530
|
padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
|
|
514
|
-
|
|
531
|
+
/* WCAG 2.5.5 (Enhanced) AAA — chevron trigger must clear 44×44 in
|
|
532
|
+
BOTH dimensions. Without min-width, the trigger collapses to its
|
|
533
|
+
icon width (~38 px) and fails the brand-theme matrix audit. */
|
|
534
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
535
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
515
536
|
}
|
|
516
537
|
|
|
517
538
|
/* lg */
|
|
@@ -528,21 +549,27 @@
|
|
|
528
549
|
|
|
529
550
|
/* ─── Variant: primary ─── */
|
|
530
551
|
|
|
552
|
+
/* Primary resting — bind through action.primary.bg (resolves to primary-600
|
|
553
|
+
across all 6 brands) coordinated with text.on-primary. Inline fallback
|
|
554
|
+
#0d1825 matches text.on-primary's resolved primitive (neutral-900) so a
|
|
555
|
+
cold-start without semantic tokens paints AA-tuned dark-on-teal (5.20:1)
|
|
556
|
+
rather than white-on-teal (3.43:1 fail). Mirrors hx-button precedent
|
|
557
|
+
(hx-button.styles.ts ~line 88) and Phase C structural fix. */
|
|
531
558
|
.split-button--primary .split-button__primary,
|
|
532
559
|
.split-button--primary .split-button__trigger {
|
|
533
|
-
--hx-split-button-bg: var(--hx-color-primary-
|
|
534
|
-
--hx-split-button-color: var(--hx-color-text-on-primary, #
|
|
560
|
+
--hx-split-button-bg: var(--hx-color-action-primary-bg, #429797);
|
|
561
|
+
--hx-split-button-color: var(--hx-color-text-on-primary, #0d1825);
|
|
535
562
|
--hx-split-button-border-color: transparent;
|
|
536
563
|
--hx-split-button-divider-color: var(--hx-color-primary-900, #0b3232);
|
|
537
564
|
}
|
|
538
565
|
|
|
539
|
-
/* primary:hover —
|
|
540
|
-
|
|
541
|
-
|
|
566
|
+
/* primary:hover — lift to action.primary.bg-hover (primary-700) with
|
|
567
|
+
text.on-primary-strong (neutral-0). Replaces the universal brightness(0.9)
|
|
568
|
+
filter which would degrade contrast on the resting pair. */
|
|
542
569
|
.split-button--primary .split-button__primary:hover,
|
|
543
570
|
.split-button--primary .split-button__trigger:hover {
|
|
544
|
-
--hx-split-button-bg: var(--hx-color-primary-
|
|
545
|
-
--hx-split-button-color: var(--hx-color-
|
|
571
|
+
--hx-split-button-bg: var(--hx-color-action-primary-bg-hover, #0f7078);
|
|
572
|
+
--hx-split-button-color: var(--hx-color-text-on-primary-strong, #ffffff);
|
|
546
573
|
filter: none;
|
|
547
574
|
}
|
|
548
575
|
|
|
@@ -116,6 +116,18 @@
|
|
|
116
116
|
flex-shrink: 0;
|
|
117
117
|
}
|
|
118
118
|
|
|
119
|
+
/*
|
|
120
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on slotted
|
|
121
|
+
* natives (e.g. bare <button>, <a>) so consumers who slot non-HELiX
|
|
122
|
+
* controls inherit the same indicator as the HELiX components do.
|
|
123
|
+
* Token-driven: --hx-focus-ring-width resolves to 2px (default).
|
|
124
|
+
*/
|
|
125
|
+
::slotted(:focus-visible) {
|
|
126
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
127
|
+
var(--hx-action-bar-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
128
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
129
|
+
}
|
|
130
|
+
|
|
119
131
|
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
120
132
|
|
|
121
133
|
@media (forced-colors: active) {
|
package/dist/css/hx-badge.css
CHANGED
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
justify-content: center;
|
|
10
10
|
gap: var(--hx-space-1, 0.25rem);
|
|
11
11
|
border-radius: var(--hx-badge-border-radius, var(--hx-border-radius-md, 0.375rem));
|
|
12
|
-
background-color: var(--hx-badge-bg, var(--hx-color-primary-
|
|
13
|
-
color: var(--hx-badge-color, var(--hx-color-text-on-primary, #
|
|
12
|
+
background-color: var(--hx-badge-bg, var(--hx-color-action-primary-bg, #0f7078));
|
|
13
|
+
color: var(--hx-badge-color, var(--hx-color-text-on-primary, #ffffff));
|
|
14
14
|
font-family: var(--hx-badge-font-family, var(--hx-font-family-sans, sans-serif));
|
|
15
15
|
font-weight: var(--hx-badge-font-weight, var(--hx-font-weight-semibold, 600));
|
|
16
16
|
line-height: var(--hx-line-height-tight, 1.25);
|
|
@@ -42,11 +42,11 @@
|
|
|
42
42
|
/* ─── Style Variants ─── */
|
|
43
43
|
|
|
44
44
|
.badge--primary {
|
|
45
|
-
--hx-badge-bg: var(--hx-badge-primary-bg, var(--hx-color-primary-
|
|
46
|
-
--hx-badge-color: var(--hx-badge-primary-color, var(--hx-color-text-on-primary, #
|
|
45
|
+
--hx-badge-bg: var(--hx-badge-primary-bg, var(--hx-color-action-primary-bg, #0f7078));
|
|
46
|
+
--hx-badge-color: var(--hx-badge-primary-color, var(--hx-color-text-on-primary, #ffffff));
|
|
47
47
|
--hx-badge-pulse-color-internal: var(
|
|
48
48
|
--hx-badge-pulse-color,
|
|
49
|
-
var(--hx-badge-primary-bg, var(--hx-color-primary-
|
|
49
|
+
var(--hx-badge-primary-bg, var(--hx-color-action-primary-bg, #0f7078))
|
|
50
50
|
);
|
|
51
51
|
}
|
|
52
52
|
|
package/dist/css/hx-button.css
CHANGED
|
@@ -72,7 +72,10 @@
|
|
|
72
72
|
.button--md {
|
|
73
73
|
padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
|
|
74
74
|
font-size: var(--hx-font-size-md, 1rem);
|
|
75
|
-
|
|
75
|
+
/* WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
76
|
+
Bound to --hx-touch-target-min so the default md variant clears the
|
|
77
|
+
AAA-strict floor without requiring consumers to opt into sm or lg. */
|
|
78
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
76
79
|
}
|
|
77
80
|
|
|
78
81
|
.button--lg {
|
|
@@ -290,9 +293,16 @@
|
|
|
290
293
|
(primary-400, light teal). The base :host([inverted]) .button rule binds
|
|
291
294
|
color to text.inverse, which flips by mode (neutral-0 in light, neutral-900
|
|
292
295
|
in dark). On a permanent light-teal fill, white text drops to 2.4:1 in
|
|
293
|
-
light mode (AA fail). Pin color to
|
|
294
|
-
|
|
295
|
-
|
|
296
|
+
light mode (AA fail). Pin color to neutral-900 directly (the primitive,
|
|
297
|
+
not text.primary which flips to neutral-100 in dark mode and would regress
|
|
298
|
+
the pair to ~2.10:1) so the foreground is dark in both modes —
|
|
299
|
+
neutral-900 on primary-400 = 7.27:1 AAA in Apex; AAA across all 6 brands.
|
|
300
|
+
Decoupled from text.on-primary in 3.3.x because text.on-primary now
|
|
301
|
+
resolves to neutral-0 (white) for the AAA-large coordinated pair on
|
|
302
|
+
primary-600; using it here would regress this pair to ~2.45:1 (Apex)
|
|
303
|
+
since primary-400 is light teal. neutral-900 is the correct anchor — it
|
|
304
|
+
is the primitive that both light/dark text.primary used to resolve to,
|
|
305
|
+
never flipped by mode/brand.
|
|
296
306
|
Pressed === hover visually in inverted mode is acceptable UX (the
|
|
297
307
|
transient absence of pointer over the button signals release).
|
|
298
308
|
The fallback chain wraps --hx-button-active-bg (highest precedence) and
|
|
@@ -307,7 +317,7 @@
|
|
|
307
317
|
);
|
|
308
318
|
color: var(
|
|
309
319
|
--hx-button-inverted-primary-interactive-color,
|
|
310
|
-
var(--hx-color-
|
|
320
|
+
var(--hx-color-neutral-900, #0d1825)
|
|
311
321
|
);
|
|
312
322
|
}
|
|
313
323
|
|
|
@@ -8,6 +8,17 @@
|
|
|
8
8
|
cursor: not-allowed;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
/*
|
|
12
|
+
* AAA 2.4.13 Focus Appearance — host-level focus ring (group is focusable
|
|
13
|
+
* via roving tabindex in Tier-2). Token-driven: --hx-focus-ring-width
|
|
14
|
+
* resolves to ≥2px.
|
|
15
|
+
*/
|
|
16
|
+
:host(:focus-visible) {
|
|
17
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
18
|
+
var(--hx-checkbox-group-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
19
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
20
|
+
}
|
|
21
|
+
|
|
11
22
|
* {
|
|
12
23
|
box-sizing: border-box;
|
|
13
24
|
}
|
package/dist/css/hx-checkbox.css
CHANGED
|
@@ -70,6 +70,16 @@
|
|
|
70
70
|
|
|
71
71
|
/* ─── Focus Ring ─── */
|
|
72
72
|
|
|
73
|
+
/*
|
|
74
|
+
* Suppress the browser default ~1px host outline. Without this, the formal
|
|
75
|
+
* AAA audit harness (which measures computed outline-width on the focused
|
|
76
|
+
* host) records a sub-2px outline and reports WCAG 2.4.13 Partially Supports.
|
|
77
|
+
* The visual focus indicator is rendered on the inner .checkbox__box below.
|
|
78
|
+
*/
|
|
79
|
+
:host {
|
|
80
|
+
outline: none;
|
|
81
|
+
}
|
|
82
|
+
|
|
73
83
|
/*
|
|
74
84
|
* Host-focus path: on the modern (IDL element-references) render branch the
|
|
75
85
|
* host is the tabbable surface (tabindex=0) and the inner input is demoted
|
|
@@ -96,15 +106,21 @@
|
|
|
96
106
|
/* ─── Checked State ─── */
|
|
97
107
|
|
|
98
108
|
.checkbox--checked .checkbox__box {
|
|
99
|
-
background-color: var(--hx-checkbox-checked-bg, var(--hx-color-primary-
|
|
100
|
-
border-color: var(
|
|
109
|
+
background-color: var(--hx-checkbox-checked-bg, var(--hx-color-action-primary-bg, #0f7078));
|
|
110
|
+
border-color: var(
|
|
111
|
+
--hx-checkbox-checked-border-color,
|
|
112
|
+
var(--hx-color-action-primary-bg, #0f7078)
|
|
113
|
+
);
|
|
101
114
|
}
|
|
102
115
|
|
|
103
116
|
/* ─── Indeterminate State ─── */
|
|
104
117
|
|
|
105
118
|
.checkbox--indeterminate .checkbox__box {
|
|
106
|
-
background-color: var(--hx-checkbox-checked-bg, var(--hx-color-primary-
|
|
107
|
-
border-color: var(
|
|
119
|
+
background-color: var(--hx-checkbox-checked-bg, var(--hx-color-action-primary-bg, #0f7078));
|
|
120
|
+
border-color: var(
|
|
121
|
+
--hx-checkbox-checked-border-color,
|
|
122
|
+
var(--hx-color-action-primary-bg, #0f7078)
|
|
123
|
+
);
|
|
108
124
|
}
|
|
109
125
|
|
|
110
126
|
/* ─── Error State ─── */
|
|
@@ -44,6 +44,10 @@
|
|
|
44
44
|
background: var(--hx-color-neutral-0, #ffffff);
|
|
45
45
|
cursor: pointer;
|
|
46
46
|
transition: border-color var(--hx-transition-fast, 150ms ease);
|
|
47
|
+
/* WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
48
|
+
Bound to --hx-touch-target-min so the trigger clears the AAA-strict
|
|
49
|
+
floor at default sizing. */
|
|
50
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
47
51
|
}
|
|
48
52
|
.trigger:hover:not([disabled]) {
|
|
49
53
|
border-color: var(
|
|
@@ -204,13 +208,20 @@
|
|
|
204
208
|
}
|
|
205
209
|
.format-btn {
|
|
206
210
|
flex-shrink: 0;
|
|
211
|
+
/* WCAG 2.5.5 (Enhanced) AAA — interactive panel controls must clear
|
|
212
|
+
44×44. Without min-width/min-height the format toggle collapses to
|
|
213
|
+
its label box (~44×24 in default rendering, sub-44 on the y-axis). */
|
|
214
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
215
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
207
216
|
padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
|
|
208
217
|
background: var(--hx-color-neutral-100, #ebeee9);
|
|
209
218
|
border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #b6bfb9);
|
|
210
219
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
211
220
|
cursor: pointer;
|
|
212
221
|
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
213
|
-
|
|
222
|
+
/* AAA 1.4.6: 12px label vs neutral-100 must be ≥7:1; neutral-700 = 9.34:1
|
|
223
|
+
(neutral-600 was 6.63:1, a tight AAA miss). */
|
|
224
|
+
color: var(--hx-color-neutral-700, #313e4b);
|
|
214
225
|
text-transform: uppercase;
|
|
215
226
|
font-weight: var(--hx-font-weight-semibold, 600);
|
|
216
227
|
letter-spacing: 0.05em;
|
|
@@ -218,6 +229,8 @@
|
|
|
218
229
|
.color-input {
|
|
219
230
|
flex: 1;
|
|
220
231
|
min-width: 0;
|
|
232
|
+
/* WCAG 2.5.5 (Enhanced) AAA — text input must clear 44×44. */
|
|
233
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
221
234
|
padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
|
|
222
235
|
border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #b6bfb9);
|
|
223
236
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
@@ -55,10 +55,13 @@
|
|
|
55
55
|
font-size: var(--hx-font-size-sm);
|
|
56
56
|
}
|
|
57
57
|
|
|
58
|
+
/* md — WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
59
|
+
Bound to --hx-touch-target-min so the default md variant clears the
|
|
60
|
+
AAA-strict floor without requiring consumers to opt into sm or lg. */
|
|
58
61
|
.button--md {
|
|
59
62
|
padding: var(--hx-space-2);
|
|
60
|
-
min-width: var(--hx-
|
|
61
|
-
height: var(--hx-
|
|
63
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
64
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
62
65
|
font-size: var(--hx-font-size-md);
|
|
63
66
|
}
|
|
64
67
|
|
|
@@ -105,7 +105,8 @@
|
|
|
105
105
|
font-size: var(--hx-font-size-md, 1rem);
|
|
106
106
|
color: var(--hx-date-picker-color, var(--hx-color-text-strong, #202b39));
|
|
107
107
|
line-height: var(--hx-line-height-normal, 1.5);
|
|
108
|
-
|
|
108
|
+
/* WCAG 2.5.5 (Enhanced) AAA — primary input surface must meet 44×44. */
|
|
109
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
109
110
|
width: 100%;
|
|
110
111
|
cursor: default;
|
|
111
112
|
}
|
|
@@ -126,6 +127,10 @@
|
|
|
126
127
|
display: flex;
|
|
127
128
|
align-items: center;
|
|
128
129
|
justify-content: center;
|
|
130
|
+
/* WCAG 2.5.5 (Enhanced) AAA — calendar trigger must clear 44×44.
|
|
131
|
+
Without min-width the icon button collapses to ~41 px wide. */
|
|
132
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
133
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
129
134
|
padding: 0 var(--hx-space-3, 0.75rem);
|
|
130
135
|
border: none;
|
|
131
136
|
border-left: var(--hx-border-width-thin, 1px) solid
|
|
@@ -299,13 +304,16 @@
|
|
|
299
304
|
}
|
|
300
305
|
|
|
301
306
|
.calendar__day--selected {
|
|
302
|
-
background-color: var(--hx-date-picker-selected-bg, var(--hx-color-primary-
|
|
307
|
+
background-color: var(--hx-date-picker-selected-bg, var(--hx-color-action-primary-bg, #0f7078));
|
|
303
308
|
color: var(--hx-date-picker-selected-color, var(--hx-color-text-on-primary, #ffffff));
|
|
304
309
|
font-weight: var(--hx-font-weight-semibold, 600);
|
|
305
310
|
}
|
|
306
311
|
|
|
307
312
|
.calendar__day--selected:hover {
|
|
308
|
-
background-color: var(
|
|
313
|
+
background-color: var(
|
|
314
|
+
--hx-date-picker-selected-hover-bg,
|
|
315
|
+
var(--hx-color-action-primary-bg-hover, #0f6363)
|
|
316
|
+
);
|
|
309
317
|
}
|
|
310
318
|
|
|
311
319
|
.calendar__day--today:not(.calendar__day--selected) {
|
package/dist/css/hx-dropdown.css
CHANGED
|
@@ -13,6 +13,19 @@
|
|
|
13
13
|
display: inline-block;
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
+
/*
|
|
17
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on the slotted
|
|
18
|
+
* trigger (typically <hx-button>, <button>, or <hx-icon-button>). The host
|
|
19
|
+
* is a popover-container; the interactive surface is the slotted trigger.
|
|
20
|
+
*/
|
|
21
|
+
::slotted([slot='trigger']:focus-visible),
|
|
22
|
+
::slotted(button:focus-visible),
|
|
23
|
+
::slotted(a:focus-visible) {
|
|
24
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
25
|
+
var(--hx-dropdown-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
26
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
27
|
+
}
|
|
28
|
+
|
|
16
29
|
[part='panel'] {
|
|
17
30
|
position: fixed;
|
|
18
31
|
z-index: var(--hx-dropdown-panel-z-index, 1000);
|
|
@@ -74,16 +74,15 @@
|
|
|
74
74
|
/* ─── Style Variants ─── */
|
|
75
75
|
|
|
76
76
|
.button--primary {
|
|
77
|
-
--hx-icon-button-bg: var(--hx-color-primary-
|
|
77
|
+
--hx-icon-button-bg: var(--hx-color-action-primary-bg, #0f7078);
|
|
78
78
|
--hx-icon-button-color: var(--hx-color-text-on-primary, #ffffff);
|
|
79
79
|
--hx-icon-button-border-color: transparent;
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
/*
|
|
83
|
-
|
|
84
|
-
icons. Pin fg at neutral-0 (5.82:1 on primary-600). Mirrors hx-button. */
|
|
82
|
+
/* Hover deepens to action.primary.bg-hover (primary-700) + neutral-0 = 7.03:1 AA.
|
|
83
|
+
Mirrors hx-button. */
|
|
85
84
|
.button--primary:hover {
|
|
86
|
-
--hx-icon-button-bg: var(--hx-color-primary-
|
|
85
|
+
--hx-icon-button-bg: var(--hx-color-action-primary-bg-hover, #0f6363);
|
|
87
86
|
--hx-icon-button-color: var(--hx-color-neutral-0, #ffffff);
|
|
88
87
|
}
|
|
89
88
|
|
package/dist/css/hx-nav.css
CHANGED
|
@@ -70,6 +70,16 @@
|
|
|
70
70
|
align-items: center;
|
|
71
71
|
gap: var(--hx-space-1, 0.25rem);
|
|
72
72
|
padding: var(--hx-nav-item-padding, var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem));
|
|
73
|
+
/*
|
|
74
|
+
* WCAG 2.5.5 (Enhanced) AAA — nav links rendered with default padding
|
|
75
|
+
* land at ~37 px tall (8 px + 1.5 line-height + 8 px). The link
|
|
76
|
+
* content is first-party (rendered via consumer-supplied props on
|
|
77
|
+
* <hx-nav-item>), so the slotted-content carve-out does not apply —
|
|
78
|
+
* this is a real component obligation. Bind --hx-nav-link-min-height
|
|
79
|
+
* to --hx-touch-target-min (2.75rem / 44 px) to grow the interactive
|
|
80
|
+
* area without enlarging the visible label.
|
|
81
|
+
*/
|
|
82
|
+
min-height: var(--hx-nav-link-min-height, var(--hx-touch-target-min, 2.75rem));
|
|
73
83
|
color: var(--hx-nav-link-color, var(--hx-color-neutral-100, #ebeee9));
|
|
74
84
|
text-decoration: none;
|
|
75
85
|
border-radius: var(--hx-nav-border-radius, var(--hx-border-radius-sm, 0.25rem));
|
|
@@ -98,8 +108,20 @@
|
|
|
98
108
|
}
|
|
99
109
|
|
|
100
110
|
.nav__link--active {
|
|
101
|
-
background-color: var(--hx-nav-link-active-bg, var(--hx-color-primary-
|
|
102
|
-
|
|
111
|
+
background-color: var(--hx-nav-link-active-bg, var(--hx-color-action-primary-bg, #0f6363));
|
|
112
|
+
/* Use --hx-color-text-on-primary so the active-link text inherits the
|
|
113
|
+
* action-surface AAA-strict pairing (white on primary-700 in default
|
|
114
|
+
* themes; black on lighter primary-700 in the high-contrast theme).
|
|
115
|
+
* Pre-3.4.0 this consumed --hx-color-primary-600 directly which
|
|
116
|
+
* resolved to Apex #0F7078 + white = 5.82:1 — AAA-large only, AAA
|
|
117
|
+
* normal fail under WCAG 1.4.6 for body-text-sized link labels. The
|
|
118
|
+
* Phase 4 Tier 3 chain shift moved action.primary.bg to primary-700
|
|
119
|
+
* (Apex 7.03:1 with white) and consuming the action semantic here
|
|
120
|
+
* picks up the AAA-strict pairing across the full 6-brand matrix.
|
|
121
|
+
* Hardcoding white previously failed AAA-large in high-contrast
|
|
122
|
+
* (ratio 2.54 vs. 4.5 floor); the on-primary token resolves correctly
|
|
123
|
+
* in HC mode. */
|
|
124
|
+
color: var(--hx-nav-link-active-color, var(--hx-color-text-on-primary, #ffffff));
|
|
103
125
|
}
|
|
104
126
|
|
|
105
127
|
/* ─── Chevron Icon ─── */
|
|
@@ -58,13 +58,13 @@
|
|
|
58
58
|
.field__input-wrapper:focus-within {
|
|
59
59
|
border-color: var(--hx-number-input-focus-ring-color, var(--hx-focus-ring-color));
|
|
60
60
|
/* Fallback for Safari < 16.2 (no color-mix support) */
|
|
61
|
-
box-shadow: 0 0 0 var(--hx-focus-ring-width)
|
|
61
|
+
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
62
62
|
var(--hx-number-input-focus-ring-color, var(--hx-focus-ring-color));
|
|
63
|
-
box-shadow: 0 0 0 var(--hx-focus-ring-width)
|
|
63
|
+
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
64
64
|
color-mix(
|
|
65
65
|
in srgb,
|
|
66
66
|
var(--hx-number-input-focus-ring-color, var(--hx-focus-ring-color))
|
|
67
|
-
calc(var(--hx-focus-ring-opacity) * 100%),
|
|
67
|
+
calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
|
|
68
68
|
transparent
|
|
69
69
|
);
|
|
70
70
|
}
|
|
@@ -78,13 +78,13 @@
|
|
|
78
78
|
.field--error .field__input-wrapper:focus-within {
|
|
79
79
|
border-color: var(--hx-number-input-error-color, var(--hx-color-error-500, #e5493e));
|
|
80
80
|
/* Fallback for Safari < 16.2 (no color-mix support) */
|
|
81
|
-
box-shadow: 0 0 0 var(--hx-focus-ring-width)
|
|
81
|
+
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
82
82
|
var(--hx-number-input-error-color, var(--hx-color-error-500, #e5493e));
|
|
83
|
-
box-shadow: 0 0 0 var(--hx-focus-ring-width)
|
|
83
|
+
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
84
84
|
color-mix(
|
|
85
85
|
in srgb,
|
|
86
86
|
var(--hx-number-input-error-color, var(--hx-color-error-500, #e5493e))
|
|
87
|
-
calc(var(--hx-focus-ring-opacity) * 100%),
|
|
87
|
+
calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
|
|
88
88
|
transparent
|
|
89
89
|
);
|
|
90
90
|
}
|
|
@@ -111,10 +111,10 @@
|
|
|
111
111
|
color: var(--hx-number-input-color, var(--hx-color-text-strong));
|
|
112
112
|
line-height: var(--hx-line-height-normal);
|
|
113
113
|
width: 100%;
|
|
114
|
-
/* Size: md (default) */
|
|
114
|
+
/* Size: md (default) — WCAG 2.5.5 (Enhanced) AAA touch target. */
|
|
115
115
|
padding: var(--hx-space-2) var(--hx-space-3);
|
|
116
116
|
font-size: var(--hx-font-size-md);
|
|
117
|
-
min-height: var(--hx-
|
|
117
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
118
118
|
}
|
|
119
119
|
|
|
120
120
|
.field__input::placeholder {
|
|
@@ -55,7 +55,10 @@
|
|
|
55
55
|
|
|
56
56
|
.button:hover:not(:disabled) {
|
|
57
57
|
background: var(--hx-pagination-hover-bg, var(--hx-color-surface-sunken, #ebeee9));
|
|
58
|
-
border-color: var(
|
|
58
|
+
border-color: var(
|
|
59
|
+
--hx-pagination-hover-border-color,
|
|
60
|
+
var(--hx-color-action-primary-bg, #0f7078)
|
|
61
|
+
);
|
|
59
62
|
}
|
|
60
63
|
|
|
61
64
|
.button:focus-visible {
|
|
@@ -65,10 +68,10 @@
|
|
|
65
68
|
}
|
|
66
69
|
|
|
67
70
|
.button[aria-current='page'] {
|
|
68
|
-
background: var(--hx-pagination-active-bg, var(--hx-color-primary-
|
|
71
|
+
background: var(--hx-pagination-active-bg, var(--hx-color-action-primary-bg, #0f7078));
|
|
69
72
|
border-color: var(
|
|
70
73
|
--hx-pagination-active-border-color,
|
|
71
|
-
var(--hx-pagination-active-bg, var(--hx-color-primary-
|
|
74
|
+
var(--hx-pagination-active-bg, var(--hx-color-action-primary-bg, #0f7078))
|
|
72
75
|
);
|
|
73
76
|
color: var(--hx-pagination-active-color, var(--hx-color-text-on-primary, #ffffff));
|
|
74
77
|
font-weight: var(--hx-font-weight-semibold, 600);
|
package/dist/css/hx-popover.css
CHANGED
|
@@ -9,6 +9,19 @@
|
|
|
9
9
|
display: inline-block;
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
/*
|
|
13
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on the slotted
|
|
14
|
+
* trigger so consumers who slot bare HTML controls inherit the same ring
|
|
15
|
+
* width as <hx-button>. Token-driven: --hx-focus-ring-width (default 2px).
|
|
16
|
+
*/
|
|
17
|
+
::slotted([slot='trigger']:focus-visible),
|
|
18
|
+
::slotted(button:focus-visible),
|
|
19
|
+
::slotted(a:focus-visible) {
|
|
20
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
21
|
+
var(--hx-popover-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
22
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
23
|
+
}
|
|
24
|
+
|
|
12
25
|
[part='body'] {
|
|
13
26
|
position: fixed;
|
|
14
27
|
z-index: var(--hx-popover-z-index, 9999);
|
package/dist/css/hx-popup.css
CHANGED
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
display: inline-block;
|
|
4
4
|
}
|
|
5
5
|
|
|
6
|
+
/*
|
|
7
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on slotted
|
|
8
|
+
* trigger / anchor controls. hx-popup is a positioning primitive: it
|
|
9
|
+
* paints no surface itself, but slotted natives (<button>, <a>) must
|
|
10
|
+
* still meet the AAA ring threshold. Token-driven.
|
|
11
|
+
*/
|
|
12
|
+
::slotted([slot='anchor']:focus-visible),
|
|
13
|
+
::slotted(button:focus-visible),
|
|
14
|
+
::slotted(a:focus-visible) {
|
|
15
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
16
|
+
var(--hx-popup-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
17
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
18
|
+
}
|
|
19
|
+
|
|
6
20
|
[part='popup'] {
|
|
7
21
|
position: fixed;
|
|
8
22
|
z-index: var(--hx-popup-z-index, 9000);
|
|
@@ -8,6 +8,16 @@
|
|
|
8
8
|
pointer-events: none;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
+
/*
|
|
12
|
+
* AAA 2.4.13 Focus Appearance — host-level focus ring for the group host
|
|
13
|
+
* when it carries focus via roving tabindex. Token-driven: ≥2px width.
|
|
14
|
+
*/
|
|
15
|
+
:host(:focus-visible) {
|
|
16
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
17
|
+
var(--hx-radio-group-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
18
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
19
|
+
}
|
|
20
|
+
|
|
11
21
|
* {
|
|
12
22
|
box-sizing: border-box;
|
|
13
23
|
}
|
package/dist/css/hx-side-nav.css
CHANGED
|
@@ -96,8 +96,15 @@
|
|
|
96
96
|
display: flex;
|
|
97
97
|
align-items: center;
|
|
98
98
|
justify-content: center;
|
|
99
|
+
/* Visual icon area stays 2rem (32px) — preserves the side-nav header
|
|
100
|
+
silhouette while the wrapping touch target grows to 44×44 to meet
|
|
101
|
+
WCAG 2.5.5 (Enhanced) AAA. min-width/min-height own the hit area;
|
|
102
|
+
width/height drive the visual painted area, but the button's
|
|
103
|
+
intrinsic size always matches the hit-area floor. */
|
|
99
104
|
width: var(--hx-space-8, 2rem);
|
|
100
105
|
height: var(--hx-space-8, 2rem);
|
|
106
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
107
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
101
108
|
margin-inline-start: auto;
|
|
102
109
|
flex-shrink: 0;
|
|
103
110
|
padding: 0;
|