@helixui/library 3.7.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 +1926 -303
- 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-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.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.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-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-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-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-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.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 +239 -30
- package/dist/css/helix-core.css +4 -1
- package/dist/css/helix-forms.css +100 -15
- package/dist/css/helix-navigation.css +43 -2
- package/dist/css/helix-overlay.css +53 -0
- package/dist/css/helix-tokens.css +13 -12
- package/dist/css/helix-utility.css +39 -12
- package/dist/css/hx-action-bar.css +12 -0
- package/dist/css/hx-button.css +4 -1
- package/dist/css/hx-checkbox-group.css +11 -0
- package/dist/css/hx-checkbox.css +10 -0
- 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 +6 -1
- package/dist/css/hx-dropdown.css +13 -0
- package/dist/css/hx-nav.css +24 -2
- package/dist/css/hx-number-input.css +8 -8
- 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 +11 -1
- 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 +40 -12
- package/dist/index.js +24 -24
- 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-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-rRNmD4fd.js → hx-button-DOZTZnz-.js} +18 -15
- 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-hPlIw6Lb.js → hx-checkbox-DcgyGS9V.js} +30 -20
- 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-DSKDkCy1.js → hx-date-picker-0PtEav0K.js} +66 -61
- package/dist/shared/hx-date-picker-0PtEav0K.js.map +1 -0
- 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-B2BdVdyK.js.map +1 -1
- 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-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-CY4kQfZw.js → hx-radio-BY4zpwdh.js} +45 -27
- 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-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-DSJeFlb0.js → hx-toggle-button-xNVYeA3X.js} +37 -27
- 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 +1121 -345
- package/package.json +2 -2
- package/dist/shared/hx-action-bar-CitgcpGv.js.map +0 -1
- package/dist/shared/hx-breadcrumb-item-3tKppF9h.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-button-rRNmD4fd.js.map +0 -1
- package/dist/shared/hx-checkbox-group-D5piJLY8.js.map +0 -1
- package/dist/shared/hx-checkbox-hPlIw6Lb.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-DSKDkCy1.js.map +0 -1
- package/dist/shared/hx-dropdown-D626S2ZG.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-popover-BAlAFOH9.js.map +0 -1
- package/dist/shared/hx-popup-COUXXZ9X.js.map +0 -1
- package/dist/shared/hx-radio-CY4kQfZw.js.map +0 -1
- package/dist/shared/hx-split-button-Ddle8iVx.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-DSJeFlb0.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
|
@@ -52,6 +52,24 @@ import { HelixElement } from '../../base/index.js';
|
|
|
52
52
|
* @cssprop [--hx-space-1] - Spacing token.
|
|
53
53
|
* @cssprop [--hx-space-2] - Spacing token.
|
|
54
54
|
* @cssprop [--hx-border-width-thin] - Width.
|
|
55
|
+
* @aaa-certified 2026-05-08
|
|
56
|
+
* @aaa-criteria 1.4.6, 1.4.9, 2.1.3, 2.3.3, 2.4.12, 2.4.13, 2.5.5, 3.2.5, 3.3.6, forced-colors, apg-keyboard
|
|
57
|
+
* @aaa-audit src/components/hx-top-nav/AAA-AUDIT.md
|
|
58
|
+
* @keyboard-contract navigate=Arrow,Home,End; activate=Enter,Space
|
|
59
|
+
* @aria-pattern navigation
|
|
60
|
+
* @aria-pattern-source https://www.w3.org/WAI/ARIA/apg/patterns/landmarks/navigation.html
|
|
61
|
+
* @forced-colors-supported true
|
|
62
|
+
* @stability stable
|
|
63
|
+
* @since 3.7.0
|
|
64
|
+
* @form-associated false
|
|
65
|
+
* @theme-aware true
|
|
66
|
+
* @brand-aware true
|
|
67
|
+
* @drupal-sdc-eligible true
|
|
68
|
+
* @react-wrapper-status complete
|
|
69
|
+
* @figma-component-name hx-top-nav
|
|
70
|
+
* @priority-tier P0
|
|
71
|
+
* @phi-handles false
|
|
72
|
+
* @clinical-context none
|
|
55
73
|
*/
|
|
56
74
|
export declare class HelixTopNav extends HelixElement {
|
|
57
75
|
static styles: import('lit').CSSResult[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-top-nav.d.ts","sourceRoot":"","sources":["../../../src/components/hx-top-nav/hx-top-nav.ts"],"names":[],"mappings":"AACA,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD
|
|
1
|
+
{"version":3,"file":"hx-top-nav.d.ts","sourceRoot":"","sources":["../../../src/components/hx-top-nav/hx-top-nav.ts"],"names":[],"mappings":"AACA,OAAO,4CAA4C,CAAC;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAInD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,qBACa,WAAY,SAAQ,YAAY;IAC3C,OAAgB,MAAM,4BAAgD;IAItE;;;OAGG;IAEH,MAAM,UAAS;IAEf;;;OAGG;IAEH,KAAK,SAAqB;IAI1B,6DAA6D;IAC7D,gBAAgB;IACP,OAAO,CAAC,WAAW,CAAS;IAI5B,iBAAiB,IAAI,IAAI;IAKzB,oBAAoB,IAAI,IAAI;IAOrC,gBAAgB;IAChB,OAAO,CAAC,mBAAmB;IAyC3B,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAepB;IAIF,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IA4BnB,MAAM;CAwChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,WAAW,CAAC;KAC3B;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-top-nav.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-top-nav/hx-top-nav.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"hx-top-nav.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-top-nav/hx-top-nav.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBA4O7B,CAAC"}
|
package/dist/css/helix-all.css
CHANGED
|
@@ -136,6 +136,18 @@
|
|
|
136
136
|
flex-shrink: 0;
|
|
137
137
|
}
|
|
138
138
|
|
|
139
|
+
/*
|
|
140
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on slotted
|
|
141
|
+
* natives (e.g. bare <button>, <a>) so consumers who slot non-HELiX
|
|
142
|
+
* controls inherit the same indicator as the HELiX components do.
|
|
143
|
+
* Token-driven: --hx-focus-ring-width resolves to 2px (default).
|
|
144
|
+
*/
|
|
145
|
+
::slotted(:focus-visible) {
|
|
146
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
147
|
+
var(--hx-action-bar-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
148
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
149
|
+
}
|
|
150
|
+
|
|
139
151
|
/* ─── High Contrast Mode (forced-colors) ─── */
|
|
140
152
|
|
|
141
153
|
@media (forced-colors: active) {
|
|
@@ -1126,7 +1138,10 @@
|
|
|
1126
1138
|
.button--md {
|
|
1127
1139
|
padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
|
|
1128
1140
|
font-size: var(--hx-font-size-md, 1rem);
|
|
1129
|
-
|
|
1141
|
+
/* WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
1142
|
+
Bound to --hx-touch-target-min so the default md variant clears the
|
|
1143
|
+
AAA-strict floor without requiring consumers to opt into sm or lg. */
|
|
1144
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
1130
1145
|
}
|
|
1131
1146
|
|
|
1132
1147
|
.button--lg {
|
|
@@ -2137,6 +2152,16 @@
|
|
|
2137
2152
|
|
|
2138
2153
|
/* ─── Focus Ring ─── */
|
|
2139
2154
|
|
|
2155
|
+
/*
|
|
2156
|
+
* Suppress the browser default ~1px host outline. Without this, the formal
|
|
2157
|
+
* AAA audit harness (which measures computed outline-width on the focused
|
|
2158
|
+
* host) records a sub-2px outline and reports WCAG 2.4.13 Partially Supports.
|
|
2159
|
+
* The visual focus indicator is rendered on the inner .checkbox__box below.
|
|
2160
|
+
*/
|
|
2161
|
+
:host {
|
|
2162
|
+
outline: none;
|
|
2163
|
+
}
|
|
2164
|
+
|
|
2140
2165
|
/*
|
|
2141
2166
|
* Host-focus path: on the modern (IDL element-references) render branch the
|
|
2142
2167
|
* host is the tabbable surface (tabindex=0) and the inner input is demoted
|
|
@@ -2381,6 +2406,17 @@
|
|
|
2381
2406
|
cursor: not-allowed;
|
|
2382
2407
|
}
|
|
2383
2408
|
|
|
2409
|
+
/*
|
|
2410
|
+
* AAA 2.4.13 Focus Appearance — host-level focus ring (group is focusable
|
|
2411
|
+
* via roving tabindex in Tier-2). Token-driven: --hx-focus-ring-width
|
|
2412
|
+
* resolves to ≥2px.
|
|
2413
|
+
*/
|
|
2414
|
+
:host(:focus-visible) {
|
|
2415
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
2416
|
+
var(--hx-checkbox-group-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
2417
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
2418
|
+
}
|
|
2419
|
+
|
|
2384
2420
|
* {
|
|
2385
2421
|
box-sizing: border-box;
|
|
2386
2422
|
}
|
|
@@ -3016,6 +3052,10 @@
|
|
|
3016
3052
|
background: var(--hx-color-neutral-0, #ffffff);
|
|
3017
3053
|
cursor: pointer;
|
|
3018
3054
|
transition: border-color var(--hx-transition-fast, 150ms ease);
|
|
3055
|
+
/* WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
3056
|
+
Bound to --hx-touch-target-min so the trigger clears the AAA-strict
|
|
3057
|
+
floor at default sizing. */
|
|
3058
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
3019
3059
|
}
|
|
3020
3060
|
.trigger:hover:not([disabled]) {
|
|
3021
3061
|
border-color: var(
|
|
@@ -3176,13 +3216,20 @@
|
|
|
3176
3216
|
}
|
|
3177
3217
|
.format-btn {
|
|
3178
3218
|
flex-shrink: 0;
|
|
3219
|
+
/* WCAG 2.5.5 (Enhanced) AAA — interactive panel controls must clear
|
|
3220
|
+
44×44. Without min-width/min-height the format toggle collapses to
|
|
3221
|
+
its label box (~44×24 in default rendering, sub-44 on the y-axis). */
|
|
3222
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
3223
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
3179
3224
|
padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
|
|
3180
3225
|
background: var(--hx-color-neutral-100, #ebeee9);
|
|
3181
3226
|
border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #b6bfb9);
|
|
3182
3227
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
3183
3228
|
cursor: pointer;
|
|
3184
3229
|
font-size: var(--hx-font-size-xs, 0.75rem);
|
|
3185
|
-
|
|
3230
|
+
/* AAA 1.4.6: 12px label vs neutral-100 must be ≥7:1; neutral-700 = 9.34:1
|
|
3231
|
+
(neutral-600 was 6.63:1, a tight AAA miss). */
|
|
3232
|
+
color: var(--hx-color-neutral-700, #313e4b);
|
|
3186
3233
|
text-transform: uppercase;
|
|
3187
3234
|
font-weight: var(--hx-font-weight-semibold, 600);
|
|
3188
3235
|
letter-spacing: 0.05em;
|
|
@@ -3190,6 +3237,8 @@
|
|
|
3190
3237
|
.color-input {
|
|
3191
3238
|
flex: 1;
|
|
3192
3239
|
min-width: 0;
|
|
3240
|
+
/* WCAG 2.5.5 (Enhanced) AAA — text input must clear 44×44. */
|
|
3241
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
3193
3242
|
padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
|
|
3194
3243
|
border: var(--hx-border-width-thin, 1px) solid var(--hx-color-neutral-300, #b6bfb9);
|
|
3195
3244
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
@@ -3808,10 +3857,13 @@
|
|
|
3808
3857
|
font-size: var(--hx-font-size-sm);
|
|
3809
3858
|
}
|
|
3810
3859
|
|
|
3860
|
+
/* md — WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
3861
|
+
Bound to --hx-touch-target-min so the default md variant clears the
|
|
3862
|
+
AAA-strict floor without requiring consumers to opt into sm or lg. */
|
|
3811
3863
|
.button--md {
|
|
3812
3864
|
padding: var(--hx-space-2);
|
|
3813
|
-
min-width: var(--hx-
|
|
3814
|
-
height: var(--hx-
|
|
3865
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
3866
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
3815
3867
|
font-size: var(--hx-font-size-md);
|
|
3816
3868
|
}
|
|
3817
3869
|
|
|
@@ -4302,7 +4354,8 @@
|
|
|
4302
4354
|
font-size: var(--hx-font-size-md, 1rem);
|
|
4303
4355
|
color: var(--hx-date-picker-color, var(--hx-color-text-strong, #202b39));
|
|
4304
4356
|
line-height: var(--hx-line-height-normal, 1.5);
|
|
4305
|
-
|
|
4357
|
+
/* WCAG 2.5.5 (Enhanced) AAA — primary input surface must meet 44×44. */
|
|
4358
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
4306
4359
|
width: 100%;
|
|
4307
4360
|
cursor: default;
|
|
4308
4361
|
}
|
|
@@ -4323,6 +4376,10 @@
|
|
|
4323
4376
|
display: flex;
|
|
4324
4377
|
align-items: center;
|
|
4325
4378
|
justify-content: center;
|
|
4379
|
+
/* WCAG 2.5.5 (Enhanced) AAA — calendar trigger must clear 44×44.
|
|
4380
|
+
Without min-width the icon button collapses to ~41 px wide. */
|
|
4381
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
4382
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
4326
4383
|
padding: 0 var(--hx-space-3, 0.75rem);
|
|
4327
4384
|
border: none;
|
|
4328
4385
|
border-left: var(--hx-border-width-thin, 1px) solid
|
|
@@ -5246,6 +5303,19 @@
|
|
|
5246
5303
|
display: inline-block;
|
|
5247
5304
|
}
|
|
5248
5305
|
|
|
5306
|
+
/*
|
|
5307
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on the slotted
|
|
5308
|
+
* trigger (typically <hx-button>, <button>, or <hx-icon-button>). The host
|
|
5309
|
+
* is a popover-container; the interactive surface is the slotted trigger.
|
|
5310
|
+
*/
|
|
5311
|
+
::slotted([slot='trigger']:focus-visible),
|
|
5312
|
+
::slotted(button:focus-visible),
|
|
5313
|
+
::slotted(a:focus-visible) {
|
|
5314
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
5315
|
+
var(--hx-dropdown-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
5316
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
5317
|
+
}
|
|
5318
|
+
|
|
5249
5319
|
[part='panel'] {
|
|
5250
5320
|
position: fixed;
|
|
5251
5321
|
z-index: var(--hx-dropdown-panel-z-index, 1000);
|
|
@@ -6649,6 +6719,16 @@ export const helixGridItemStyles = css`
|
|
|
6649
6719
|
align-items: center;
|
|
6650
6720
|
gap: var(--hx-space-1, 0.25rem);
|
|
6651
6721
|
padding: var(--hx-nav-item-padding, var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem));
|
|
6722
|
+
/*
|
|
6723
|
+
* WCAG 2.5.5 (Enhanced) AAA — nav links rendered with default padding
|
|
6724
|
+
* land at ~37 px tall (8 px + 1.5 line-height + 8 px). The link
|
|
6725
|
+
* content is first-party (rendered via consumer-supplied props on
|
|
6726
|
+
* <hx-nav-item>), so the slotted-content carve-out does not apply —
|
|
6727
|
+
* this is a real component obligation. Bind --hx-nav-link-min-height
|
|
6728
|
+
* to --hx-touch-target-min (2.75rem / 44 px) to grow the interactive
|
|
6729
|
+
* area without enlarging the visible label.
|
|
6730
|
+
*/
|
|
6731
|
+
min-height: var(--hx-nav-link-min-height, var(--hx-touch-target-min, 2.75rem));
|
|
6652
6732
|
color: var(--hx-nav-link-color, var(--hx-color-neutral-100, #ebeee9));
|
|
6653
6733
|
text-decoration: none;
|
|
6654
6734
|
border-radius: var(--hx-nav-border-radius, var(--hx-border-radius-sm, 0.25rem));
|
|
@@ -6677,8 +6757,20 @@ export const helixGridItemStyles = css`
|
|
|
6677
6757
|
}
|
|
6678
6758
|
|
|
6679
6759
|
.nav__link--active {
|
|
6680
|
-
background-color: var(--hx-nav-link-active-bg, var(--hx-color-primary-
|
|
6681
|
-
|
|
6760
|
+
background-color: var(--hx-nav-link-active-bg, var(--hx-color-action-primary-bg, #0f6363));
|
|
6761
|
+
/* Use --hx-color-text-on-primary so the active-link text inherits the
|
|
6762
|
+
* action-surface AAA-strict pairing (white on primary-700 in default
|
|
6763
|
+
* themes; black on lighter primary-700 in the high-contrast theme).
|
|
6764
|
+
* Pre-3.4.0 this consumed --hx-color-primary-600 directly which
|
|
6765
|
+
* resolved to Apex #0F7078 + white = 5.82:1 — AAA-large only, AAA
|
|
6766
|
+
* normal fail under WCAG 1.4.6 for body-text-sized link labels. The
|
|
6767
|
+
* Phase 4 Tier 3 chain shift moved action.primary.bg to primary-700
|
|
6768
|
+
* (Apex 7.03:1 with white) and consuming the action semantic here
|
|
6769
|
+
* picks up the AAA-strict pairing across the full 6-brand matrix.
|
|
6770
|
+
* Hardcoding white previously failed AAA-large in high-contrast
|
|
6771
|
+
* (ratio 2.54 vs. 4.5 floor); the on-primary token resolves correctly
|
|
6772
|
+
* in HC mode. */
|
|
6773
|
+
color: var(--hx-nav-link-active-color, var(--hx-color-text-on-primary, #ffffff));
|
|
6682
6774
|
}
|
|
6683
6775
|
|
|
6684
6776
|
/* ─── Chevron Icon ─── */
|
|
@@ -6894,13 +6986,13 @@ export const helixGridItemStyles = css`
|
|
|
6894
6986
|
.field__input-wrapper:focus-within {
|
|
6895
6987
|
border-color: var(--hx-number-input-focus-ring-color, var(--hx-focus-ring-color));
|
|
6896
6988
|
/* Fallback for Safari < 16.2 (no color-mix support) */
|
|
6897
|
-
box-shadow: 0 0 0 var(--hx-focus-ring-width)
|
|
6989
|
+
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
6898
6990
|
var(--hx-number-input-focus-ring-color, var(--hx-focus-ring-color));
|
|
6899
|
-
box-shadow: 0 0 0 var(--hx-focus-ring-width)
|
|
6991
|
+
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
6900
6992
|
color-mix(
|
|
6901
6993
|
in srgb,
|
|
6902
6994
|
var(--hx-number-input-focus-ring-color, var(--hx-focus-ring-color))
|
|
6903
|
-
calc(var(--hx-focus-ring-opacity) * 100%),
|
|
6995
|
+
calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
|
|
6904
6996
|
transparent
|
|
6905
6997
|
);
|
|
6906
6998
|
}
|
|
@@ -6914,13 +7006,13 @@ export const helixGridItemStyles = css`
|
|
|
6914
7006
|
.field--error .field__input-wrapper:focus-within {
|
|
6915
7007
|
border-color: var(--hx-number-input-error-color, var(--hx-color-error-500, #e5493e));
|
|
6916
7008
|
/* Fallback for Safari < 16.2 (no color-mix support) */
|
|
6917
|
-
box-shadow: 0 0 0 var(--hx-focus-ring-width)
|
|
7009
|
+
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
6918
7010
|
var(--hx-number-input-error-color, var(--hx-color-error-500, #e5493e));
|
|
6919
|
-
box-shadow: 0 0 0 var(--hx-focus-ring-width)
|
|
7011
|
+
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
6920
7012
|
color-mix(
|
|
6921
7013
|
in srgb,
|
|
6922
7014
|
var(--hx-number-input-error-color, var(--hx-color-error-500, #e5493e))
|
|
6923
|
-
calc(var(--hx-focus-ring-opacity) * 100%),
|
|
7015
|
+
calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
|
|
6924
7016
|
transparent
|
|
6925
7017
|
);
|
|
6926
7018
|
}
|
|
@@ -6947,10 +7039,10 @@ export const helixGridItemStyles = css`
|
|
|
6947
7039
|
color: var(--hx-number-input-color, var(--hx-color-text-strong));
|
|
6948
7040
|
line-height: var(--hx-line-height-normal);
|
|
6949
7041
|
width: 100%;
|
|
6950
|
-
/* Size: md (default) */
|
|
7042
|
+
/* Size: md (default) — WCAG 2.5.5 (Enhanced) AAA touch target. */
|
|
6951
7043
|
padding: var(--hx-space-2) var(--hx-space-3);
|
|
6952
7044
|
font-size: var(--hx-font-size-md);
|
|
6953
|
-
min-height: var(--hx-
|
|
7045
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
6954
7046
|
}
|
|
6955
7047
|
|
|
6956
7048
|
.field__input::placeholder {
|
|
@@ -7810,6 +7902,19 @@ export const helixGridItemStyles = css`
|
|
|
7810
7902
|
display: inline-block;
|
|
7811
7903
|
}
|
|
7812
7904
|
|
|
7905
|
+
/*
|
|
7906
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on the slotted
|
|
7907
|
+
* trigger so consumers who slot bare HTML controls inherit the same ring
|
|
7908
|
+
* width as <hx-button>. Token-driven: --hx-focus-ring-width (default 2px).
|
|
7909
|
+
*/
|
|
7910
|
+
::slotted([slot='trigger']:focus-visible),
|
|
7911
|
+
::slotted(button:focus-visible),
|
|
7912
|
+
::slotted(a:focus-visible) {
|
|
7913
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
7914
|
+
var(--hx-popover-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
7915
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
7916
|
+
}
|
|
7917
|
+
|
|
7813
7918
|
[part='body'] {
|
|
7814
7919
|
position: fixed;
|
|
7815
7920
|
z-index: var(--hx-popover-z-index, 9999);
|
|
@@ -7878,6 +7983,20 @@ export const helixGridItemStyles = css`
|
|
|
7878
7983
|
display: inline-block;
|
|
7879
7984
|
}
|
|
7880
7985
|
|
|
7986
|
+
/*
|
|
7987
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on slotted
|
|
7988
|
+
* trigger / anchor controls. hx-popup is a positioning primitive: it
|
|
7989
|
+
* paints no surface itself, but slotted natives (<button>, <a>) must
|
|
7990
|
+
* still meet the AAA ring threshold. Token-driven.
|
|
7991
|
+
*/
|
|
7992
|
+
::slotted([slot='anchor']:focus-visible),
|
|
7993
|
+
::slotted(button:focus-visible),
|
|
7994
|
+
::slotted(a:focus-visible) {
|
|
7995
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
7996
|
+
var(--hx-popup-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
7997
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
7998
|
+
}
|
|
7999
|
+
|
|
7881
8000
|
[part='popup'] {
|
|
7882
8001
|
position: fixed;
|
|
7883
8002
|
z-index: var(--hx-popup-z-index, 9000);
|
|
@@ -8223,6 +8342,16 @@ export const helixGridItemStyles = css`
|
|
|
8223
8342
|
pointer-events: none;
|
|
8224
8343
|
}
|
|
8225
8344
|
|
|
8345
|
+
/*
|
|
8346
|
+
* AAA 2.4.13 Focus Appearance — host-level focus ring for the group host
|
|
8347
|
+
* when it carries focus via roving tabindex. Token-driven: ≥2px width.
|
|
8348
|
+
*/
|
|
8349
|
+
:host(:focus-visible) {
|
|
8350
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
8351
|
+
var(--hx-radio-group-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
8352
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
8353
|
+
}
|
|
8354
|
+
|
|
8226
8355
|
* {
|
|
8227
8356
|
box-sizing: border-box;
|
|
8228
8357
|
}
|
|
@@ -8949,8 +9078,15 @@ export const helixGridItemStyles = css`
|
|
|
8949
9078
|
display: flex;
|
|
8950
9079
|
align-items: center;
|
|
8951
9080
|
justify-content: center;
|
|
9081
|
+
/* Visual icon area stays 2rem (32px) — preserves the side-nav header
|
|
9082
|
+
silhouette while the wrapping touch target grows to 44×44 to meet
|
|
9083
|
+
WCAG 2.5.5 (Enhanced) AAA. min-width/min-height own the hit area;
|
|
9084
|
+
width/height drive the visual painted area, but the button's
|
|
9085
|
+
intrinsic size always matches the hit-area floor. */
|
|
8952
9086
|
width: var(--hx-space-8, 2rem);
|
|
8953
9087
|
height: var(--hx-space-8, 2rem);
|
|
9088
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
9089
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
8954
9090
|
margin-inline-start: auto;
|
|
8955
9091
|
flex-shrink: 0;
|
|
8956
9092
|
padding: 0;
|
|
@@ -9706,16 +9842,22 @@ export const helixGridItemStyles = css`
|
|
|
9706
9842
|
min-height: var(--hx-size-8, 2rem);
|
|
9707
9843
|
}
|
|
9708
9844
|
|
|
9709
|
-
/* md
|
|
9845
|
+
/* md — WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
9846
|
+
Bound to --hx-touch-target-min so the default md variant clears the
|
|
9847
|
+
AAA-strict floor without requiring consumers to opt into sm or lg. */
|
|
9710
9848
|
.split-button--md .split-button__primary {
|
|
9711
9849
|
padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
|
|
9712
9850
|
font-size: var(--hx-font-size-md, 1rem);
|
|
9713
|
-
min-height: var(--hx-
|
|
9851
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
9714
9852
|
}
|
|
9715
9853
|
|
|
9716
9854
|
.split-button--md .split-button__trigger {
|
|
9717
9855
|
padding: var(--hx-space-2, 0.5rem) var(--hx-space-3, 0.75rem);
|
|
9718
|
-
|
|
9856
|
+
/* WCAG 2.5.5 (Enhanced) AAA — chevron trigger must clear 44×44 in
|
|
9857
|
+
BOTH dimensions. Without min-width, the trigger collapses to its
|
|
9858
|
+
icon width (~38 px) and fails the brand-theme matrix audit. */
|
|
9859
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
9860
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
9719
9861
|
}
|
|
9720
9862
|
|
|
9721
9863
|
/* lg */
|
|
@@ -9732,21 +9874,27 @@ export const helixGridItemStyles = css`
|
|
|
9732
9874
|
|
|
9733
9875
|
/* ─── Variant: primary ─── */
|
|
9734
9876
|
|
|
9877
|
+
/* Primary resting — bind through action.primary.bg (resolves to primary-600
|
|
9878
|
+
across all 6 brands) coordinated with text.on-primary. Inline fallback
|
|
9879
|
+
#0d1825 matches text.on-primary's resolved primitive (neutral-900) so a
|
|
9880
|
+
cold-start without semantic tokens paints AA-tuned dark-on-teal (5.20:1)
|
|
9881
|
+
rather than white-on-teal (3.43:1 fail). Mirrors hx-button precedent
|
|
9882
|
+
(hx-button.styles.ts ~line 88) and Phase C structural fix. */
|
|
9735
9883
|
.split-button--primary .split-button__primary,
|
|
9736
9884
|
.split-button--primary .split-button__trigger {
|
|
9737
|
-
--hx-split-button-bg: var(--hx-color-primary-
|
|
9738
|
-
--hx-split-button-color: var(--hx-color-text-on-primary, #
|
|
9885
|
+
--hx-split-button-bg: var(--hx-color-action-primary-bg, #429797);
|
|
9886
|
+
--hx-split-button-color: var(--hx-color-text-on-primary, #0d1825);
|
|
9739
9887
|
--hx-split-button-border-color: transparent;
|
|
9740
9888
|
--hx-split-button-divider-color: var(--hx-color-primary-900, #0b3232);
|
|
9741
9889
|
}
|
|
9742
9890
|
|
|
9743
|
-
/* primary:hover —
|
|
9744
|
-
|
|
9745
|
-
|
|
9891
|
+
/* primary:hover — lift to action.primary.bg-hover (primary-700) with
|
|
9892
|
+
text.on-primary-strong (neutral-0). Replaces the universal brightness(0.9)
|
|
9893
|
+
filter which would degrade contrast on the resting pair. */
|
|
9746
9894
|
.split-button--primary .split-button__primary:hover,
|
|
9747
9895
|
.split-button--primary .split-button__trigger:hover {
|
|
9748
|
-
--hx-split-button-bg: var(--hx-color-primary-
|
|
9749
|
-
--hx-split-button-color: var(--hx-color-
|
|
9896
|
+
--hx-split-button-bg: var(--hx-color-action-primary-bg-hover, #0f7078);
|
|
9897
|
+
--hx-split-button-color: var(--hx-color-text-on-primary-strong, #ffffff);
|
|
9750
9898
|
filter: none;
|
|
9751
9899
|
}
|
|
9752
9900
|
|
|
@@ -10679,6 +10827,13 @@ export const helixStructuredListRowStyles = css`
|
|
|
10679
10827
|
/* ── hx-switch ── */
|
|
10680
10828
|
:host {
|
|
10681
10829
|
display: block;
|
|
10830
|
+
/*
|
|
10831
|
+
* Suppress the browser default ~1px host outline. Without this the formal
|
|
10832
|
+
* AAA audit harness (which measures computed outline-width on the focused
|
|
10833
|
+
* host) records a sub-2px outline and reports WCAG 2.4.13 Partially Supports.
|
|
10834
|
+
* The visual focus indicator is rendered on the inner .switch__track below.
|
|
10835
|
+
*/
|
|
10836
|
+
outline: none;
|
|
10682
10837
|
}
|
|
10683
10838
|
|
|
10684
10839
|
:host([disabled]) {
|
|
@@ -10750,7 +10905,18 @@ export const helixStructuredListRowStyles = css`
|
|
|
10750
10905
|
}
|
|
10751
10906
|
|
|
10752
10907
|
.switch--checked .switch__track {
|
|
10753
|
-
|
|
10908
|
+
/* WCAG 1.4.6 AAA-strict 7:1: consume action.primary.bg (primary-700 since
|
|
10909
|
+
3.4.0) so the checked track inherits the elevated AAA-strict action
|
|
10910
|
+
surface contract used by every other primary interactive surface
|
|
10911
|
+
(hx-button, hx-checkbox checked-bg, hx-radio checked-bg, etc.). The
|
|
10912
|
+
prior primary-500 fallback (#429797 in Apex) clears AA (5.20:1) but
|
|
10913
|
+
only resolves to ~6.11:1 in the formal harness's contrast probe —
|
|
10914
|
+
below the 7:1 AAA-strict floor. action.primary.bg = primary-700
|
|
10915
|
+
(#0F6363 in Apex) clears 7.03:1 across all 6 brands. */
|
|
10916
|
+
background-color: var(
|
|
10917
|
+
--hx-switch-track-checked-bg,
|
|
10918
|
+
var(--hx-color-action-primary-bg, var(--hx-color-primary-700, #0f7078))
|
|
10919
|
+
);
|
|
10754
10920
|
}
|
|
10755
10921
|
|
|
10756
10922
|
.switch:not(.switch--checked) .switch__track:hover {
|
|
@@ -11740,7 +11906,10 @@ export const helixTableSectionBaseStyles = css`
|
|
|
11740
11906
|
font-size: var(--_text-input-font-size);
|
|
11741
11907
|
color: var(--_text-input-color);
|
|
11742
11908
|
line-height: var(--hx-line-height-normal, 1.5);
|
|
11743
|
-
|
|
11909
|
+
/* WCAG 2.5.5 (Enhanced) AAA — primary input surface must meet 44×44.
|
|
11910
|
+
--hx-touch-target-min resolves to 2.75rem (44px); --hx-size-10 alone
|
|
11911
|
+
resolves to 2.5rem (40px) and fails AAA on the inner input. */
|
|
11912
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
11744
11913
|
width: 100%;
|
|
11745
11914
|
}
|
|
11746
11915
|
|
|
@@ -12248,7 +12417,8 @@ export const helixTableSectionBaseStyles = css`
|
|
|
12248
12417
|
font-size: var(--hx-font-size-md, 1rem);
|
|
12249
12418
|
color: var(--hx-time-picker-color, var(--hx-color-text-strong, #202b39));
|
|
12250
12419
|
line-height: var(--hx-line-height-normal, 1.5);
|
|
12251
|
-
|
|
12420
|
+
/* WCAG 2.5.5 (Enhanced) AAA — primary input surface must meet 44×44. */
|
|
12421
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
12252
12422
|
width: 100%;
|
|
12253
12423
|
cursor: text;
|
|
12254
12424
|
}
|
|
@@ -12268,7 +12438,11 @@ export const helixTableSectionBaseStyles = css`
|
|
|
12268
12438
|
color: var(--hx-time-picker-chevron-color, var(--hx-color-text-muted, #4a5362));
|
|
12269
12439
|
cursor: pointer;
|
|
12270
12440
|
height: 100%;
|
|
12271
|
-
|
|
12441
|
+
/* WCAG 2.5.5 (Enhanced) AAA — toggle button must meet 44×44 in
|
|
12442
|
+
BOTH dimensions; without min-width the icon button collapses to
|
|
12443
|
+
~41 px wide and fails the matrix audit. */
|
|
12444
|
+
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
12445
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
12272
12446
|
flex-shrink: 0;
|
|
12273
12447
|
border-inline-start: var(--hx-border-width-thin, 1px) solid
|
|
12274
12448
|
var(--hx-time-picker-border-color, var(--hx-color-border-strong, #66787b));
|
|
@@ -12684,6 +12858,13 @@ export const helixToastStackStyles = css`
|
|
|
12684
12858
|
/* ── hx-toggle-button ── */
|
|
12685
12859
|
:host {
|
|
12686
12860
|
display: inline-block;
|
|
12861
|
+
/*
|
|
12862
|
+
* Suppress the browser default ~1px host outline. Without this the formal
|
|
12863
|
+
* AAA audit harness (which measures computed outline-width on the focused
|
|
12864
|
+
* host) records a sub-2px outline and reports WCAG 2.4.13 Partially Supports.
|
|
12865
|
+
* The visual focus indicator is rendered on the inner .button below.
|
|
12866
|
+
*/
|
|
12867
|
+
outline: none;
|
|
12687
12868
|
}
|
|
12688
12869
|
|
|
12689
12870
|
:host([disabled]) {
|
|
@@ -12761,7 +12942,10 @@ export const helixToastStackStyles = css`
|
|
|
12761
12942
|
.button--md {
|
|
12762
12943
|
padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
|
|
12763
12944
|
font-size: var(--hx-font-size-md, 1rem);
|
|
12764
|
-
|
|
12945
|
+
/* WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
12946
|
+
Bound to --hx-touch-target-min so the default md variant clears the
|
|
12947
|
+
AAA-strict floor without requiring consumers to opt into sm or lg. */
|
|
12948
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
12765
12949
|
}
|
|
12766
12950
|
|
|
12767
12951
|
.button--lg {
|
|
@@ -12971,6 +13155,19 @@ export const helixToastStackStyles = css`
|
|
|
12971
13155
|
display: inline-block;
|
|
12972
13156
|
}
|
|
12973
13157
|
|
|
13158
|
+
/*
|
|
13159
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px focus ring on the slotted
|
|
13160
|
+
* trigger. APG forbids the tooltip body from holding focus, so the
|
|
13161
|
+
* trigger is the only AAA-relevant focus surface. Token-driven.
|
|
13162
|
+
*/
|
|
13163
|
+
::slotted([slot='trigger']:focus-visible),
|
|
13164
|
+
::slotted(button:focus-visible),
|
|
13165
|
+
::slotted(a:focus-visible) {
|
|
13166
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
13167
|
+
var(--hx-tooltip-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
13168
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
13169
|
+
}
|
|
13170
|
+
|
|
12974
13171
|
[part='tooltip'] {
|
|
12975
13172
|
position: fixed;
|
|
12976
13173
|
z-index: var(--hx-tooltip-z-index, var(--hx-z-index-tooltip, 1600));
|
|
@@ -13105,6 +13302,18 @@ export const helixToastStackStyles = css`
|
|
|
13105
13302
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
13106
13303
|
}
|
|
13107
13304
|
|
|
13305
|
+
/*
|
|
13306
|
+
* AAA 2.4.13 Focus Appearance — enforce a ≥2px ring on slotted nav
|
|
13307
|
+
* controls (links, buttons, hx-link, hx-button). Slotted bare anchors
|
|
13308
|
+
* otherwise fall back to the 1px browser default.
|
|
13309
|
+
*/
|
|
13310
|
+
::slotted(a:focus-visible),
|
|
13311
|
+
::slotted(button:focus-visible) {
|
|
13312
|
+
outline: var(--hx-focus-ring-width, 2px) solid
|
|
13313
|
+
var(--hx-top-nav-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
13314
|
+
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
13315
|
+
}
|
|
13316
|
+
|
|
13108
13317
|
.mobile-toggle__icon {
|
|
13109
13318
|
width: var(--hx-space-6, 1.5rem);
|
|
13110
13319
|
height: var(--hx-space-6, 1.5rem);
|
package/dist/css/helix-core.css
CHANGED
|
@@ -449,7 +449,10 @@
|
|
|
449
449
|
.button--md {
|
|
450
450
|
padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
|
|
451
451
|
font-size: var(--hx-font-size-md, 1rem);
|
|
452
|
-
|
|
452
|
+
/* WCAG 2.5.5 AAA Target Size (Enhanced): 44×44 minimum.
|
|
453
|
+
Bound to --hx-touch-target-min so the default md variant clears the
|
|
454
|
+
AAA-strict floor without requiring consumers to opt into sm or lg. */
|
|
455
|
+
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
453
456
|
}
|
|
454
457
|
|
|
455
458
|
.button--lg {
|