@helixui/library 3.2.0 → 3.3.0-next.112
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 +175 -326
- package/dist/components/hx-accordion/hx-accordion-item.styles.d.ts.map +1 -1
- package/dist/components/hx-accordion/index.js +1 -1
- package/dist/components/hx-alert/hx-alert.styles.d.ts.map +1 -1
- package/dist/components/hx-alert/index.js +1 -1
- package/dist/components/hx-banner/hx-banner.styles.d.ts.map +1 -1
- package/dist/components/hx-banner/index.js +1 -1
- package/dist/components/hx-breadcrumb/hx-breadcrumb-item.styles.d.ts.map +1 -1
- package/dist/components/hx-breadcrumb/index.js +1 -1
- package/dist/components/hx-button/hx-button.d.ts +46 -49
- 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-card/hx-card.styles.d.ts.map +1 -1
- package/dist/components/hx-card/index.js +1 -1
- package/dist/components/hx-carousel/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-clinical-status/hx-clinical-status.styles.d.ts.map +1 -1
- package/dist/components/hx-clinical-status/index.js +1 -1
- package/dist/components/hx-code-snippet/hx-code-snippet.styles.d.ts.map +1 -1
- package/dist/components/hx-code-snippet/index.js +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.styles.d.ts.map +1 -1
- package/dist/components/hx-combobox/index.js +1 -1
- package/dist/components/hx-data-table/hx-data-table.styles.d.ts.map +1 -1
- package/dist/components/hx-data-table/index.js +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.styles.d.ts.map +1 -1
- package/dist/components/hx-dialog/index.js +1 -1
- package/dist/components/hx-drawer/hx-drawer.styles.d.ts.map +1 -1
- package/dist/components/hx-drawer/index.js +1 -1
- package/dist/components/hx-file-upload/hx-file-upload.styles.d.ts.map +1 -1
- package/dist/components/hx-file-upload/index.js +1 -1
- package/dist/components/hx-icon-button/hx-icon-button.styles.d.ts.map +1 -1
- package/dist/components/hx-icon-button/index.js +1 -1
- package/dist/components/hx-link/hx-link.styles.d.ts.map +1 -1
- package/dist/components/hx-link/index.js +1 -1
- package/dist/components/hx-list/hx-list-item.styles.d.ts.map +1 -1
- package/dist/components/hx-list/index.js +1 -1
- package/dist/components/hx-menu/hx-menu-item.styles.d.ts.map +1 -1
- package/dist/components/hx-menu/index.js +1 -1
- package/dist/components/hx-meter/hx-meter.styles.d.ts.map +1 -1
- package/dist/components/hx-meter/index.js +1 -1
- package/dist/components/hx-nav/hx-nav.styles.d.ts.map +1 -1
- package/dist/components/hx-nav/index.js +1 -1
- package/dist/components/hx-overflow-menu/hx-overflow-menu.styles.d.ts.map +1 -1
- package/dist/components/hx-overflow-menu/index.js +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-phi-field/hx-phi-field.styles.d.ts.map +1 -1
- package/dist/components/hx-phi-field/index.js +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-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.styles.d.ts.map +1 -1
- package/dist/components/hx-rating/index.js +1 -1
- package/dist/components/hx-select/hx-select.styles.d.ts.map +1 -1
- package/dist/components/hx-select/index.js +1 -1
- package/dist/components/hx-side-nav/hx-nav-item.d.ts +7 -5
- package/dist/components/hx-side-nav/hx-nav-item.d.ts.map +1 -1
- package/dist/components/hx-side-nav/hx-nav-item.styles.d.ts.map +1 -1
- package/dist/components/hx-side-nav/hx-side-nav.d.ts +10 -23
- 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.styles.d.ts.map +1 -1
- package/dist/components/hx-slider/index.js +1 -1
- package/dist/components/hx-split-button/hx-split-button.d.ts +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-split-panel/hx-split-panel.styles.d.ts.map +1 -1
- package/dist/components/hx-split-panel/index.js +1 -1
- package/dist/components/hx-steps/hx-step.styles.d.ts.map +1 -1
- package/dist/components/hx-steps/index.js +1 -1
- package/dist/components/hx-switch/hx-switch.styles.d.ts.map +1 -1
- package/dist/components/hx-switch/index.js +1 -1
- package/dist/components/hx-table/hx-table.styles.d.ts.map +1 -1
- package/dist/components/hx-table/index.js +1 -1
- package/dist/components/hx-tabs/hx-tab-panel.styles.d.ts.map +1 -1
- package/dist/components/hx-tabs/hx-tab.styles.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 -35
- 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.styles.d.ts.map +1 -1
- package/dist/components/hx-textarea/index.js +1 -1
- package/dist/components/hx-theme/hx-theme.d.ts +14 -2
- package/dist/components/hx-theme/hx-theme.d.ts.map +1 -1
- package/dist/components/hx-theme/index.js +1 -1
- package/dist/components/hx-time-picker/index.js +1 -1
- package/dist/components/hx-toast/hx-toast.d.ts +12 -8
- package/dist/components/hx-toast/hx-toast.d.ts.map +1 -1
- package/dist/components/hx-toast/hx-toast.styles.d.ts.map +1 -1
- package/dist/components/hx-toast/index.js +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-top-nav/hx-top-nav.styles.d.ts.map +1 -1
- package/dist/components/hx-top-nav/index.js +1 -1
- package/dist/components/hx-tree-view/hx-tree-item.styles.d.ts.map +1 -1
- package/dist/components/hx-tree-view/hx-tree-view.styles.d.ts.map +1 -1
- package/dist/components/hx-tree-view/index.js +1 -1
- package/dist/css/helix-all.css +351 -308
- package/dist/css/helix-core.css +180 -56
- package/dist/css/helix-data.css +23 -16
- package/dist/css/helix-feedback.css +30 -29
- package/dist/css/helix-forms.css +53 -120
- package/dist/css/helix-layout.css +2 -8
- package/dist/css/helix-media.css +3 -3
- package/dist/css/helix-navigation.css +49 -45
- package/dist/css/helix-overlay.css +3 -12
- package/dist/css/helix-tokens.css +60 -5
- package/dist/css/helix-utility.css +5 -11
- package/dist/css/hx-alert.css +1 -4
- package/dist/css/hx-banner.css +2 -8
- package/dist/css/hx-button.css +176 -43
- package/dist/css/hx-card.css +1 -4
- package/dist/css/hx-carousel.css +3 -3
- package/dist/css/hx-checkbox.css +2 -5
- package/dist/css/hx-clinical-status.css +2 -4
- package/dist/css/hx-code-snippet.css +20 -6
- package/dist/css/hx-color-picker.css +3 -13
- package/dist/css/hx-combobox.css +7 -13
- package/dist/css/hx-data-table.css +2 -8
- package/dist/css/hx-date-picker.css +7 -23
- package/dist/css/hx-dialog.css +1 -4
- package/dist/css/hx-drawer.css +1 -4
- package/dist/css/hx-file-upload.css +4 -13
- package/dist/css/hx-icon-button.css +2 -5
- package/dist/css/hx-link.css +1 -4
- package/dist/css/hx-meter.css +1 -2
- package/dist/css/hx-nav.css +2 -8
- package/dist/css/hx-overflow-menu.css +2 -8
- package/dist/css/hx-pagination.css +2 -8
- package/dist/css/hx-phi-field.css +1 -4
- package/dist/css/hx-popover.css +1 -4
- package/dist/css/hx-rating.css +3 -4
- package/dist/css/hx-select.css +3 -7
- package/dist/css/hx-side-nav.css +41 -15
- package/dist/css/hx-slider.css +4 -7
- package/dist/css/hx-split-button.css +5 -11
- package/dist/css/hx-split-panel.css +2 -8
- package/dist/css/hx-switch.css +3 -6
- package/dist/css/hx-table.css +1 -2
- package/dist/css/hx-text-input.css +8 -14
- package/dist/css/hx-textarea.css +2 -5
- package/dist/css/hx-time-picker.css +3 -3
- package/dist/css/hx-toast.css +26 -15
- package/dist/css/hx-toggle-button.css +4 -7
- package/dist/css/hx-top-nav.css +1 -4
- package/dist/css/hx-tree-view.css +1 -2
- package/dist/css/index.css +1 -1
- package/dist/css/manifest.json +63 -46
- package/dist/index.js +46 -46
- package/dist/shared/{hx-accordion-cnKg4_la.js → hx-accordion-ZVzgDzTG.js} +4 -5
- package/dist/shared/hx-accordion-ZVzgDzTG.js.map +1 -0
- package/dist/shared/{hx-alert-BZH8iHQf.js → hx-alert-CLn7CstP.js} +2 -5
- package/dist/shared/hx-alert-CLn7CstP.js.map +1 -0
- package/dist/shared/{hx-banner-DT7Zn9Bo.js → hx-banner-D3DzpfcP.js} +7 -13
- package/dist/shared/hx-banner-D3DzpfcP.js.map +1 -0
- package/dist/shared/{hx-breadcrumb-item-COeYcB2x.js → hx-breadcrumb-item-3tKppF9h.js} +2 -5
- package/dist/shared/{hx-breadcrumb-item-COeYcB2x.js.map → hx-breadcrumb-item-3tKppF9h.js.map} +1 -1
- package/dist/shared/{hx-button-modUSOpY.js → hx-button-DPY6SPVT.js} +201 -69
- package/dist/shared/hx-button-DPY6SPVT.js.map +1 -0
- package/dist/shared/{hx-card-CU1QnjNb.js → hx-card-qNAM2QNV.js} +6 -9
- package/dist/shared/hx-card-qNAM2QNV.js.map +1 -0
- package/dist/shared/{hx-carousel-item-BaE4hpLl.js → hx-carousel-item-z1Lc24op.js} +4 -4
- package/dist/shared/hx-carousel-item-z1Lc24op.js.map +1 -0
- package/dist/shared/{hx-checkbox-C46TyXhM.js → hx-checkbox-D7xma9YH.js} +7 -10
- package/dist/shared/hx-checkbox-D7xma9YH.js.map +1 -0
- package/dist/shared/{hx-clinical-status-BmSjfSEN.js → hx-clinical-status-D3XQIOqX.js} +3 -5
- package/dist/shared/hx-clinical-status-D3XQIOqX.js.map +1 -0
- package/dist/shared/{hx-code-snippet-CJ0FbQYG.js → hx-code-snippet-fVV3Z2DZ.js} +55 -41
- package/dist/shared/hx-code-snippet-fVV3Z2DZ.js.map +1 -0
- package/dist/shared/{hx-color-picker-DiDLZyvK.js → hx-color-picker-uRc865FJ.js} +23 -33
- package/dist/shared/hx-color-picker-uRc865FJ.js.map +1 -0
- package/dist/shared/{hx-combobox-DaA5dBC4.js → hx-combobox-DDzqNKEW.js} +11 -17
- package/dist/shared/hx-combobox-DDzqNKEW.js.map +1 -0
- package/dist/shared/{hx-data-table-Cq3t86Ic.js → hx-data-table-CLqVqdxr.js} +3 -9
- package/dist/shared/hx-data-table-CLqVqdxr.js.map +1 -0
- package/dist/shared/{hx-date-picker-DMqRQNSB.js → hx-date-picker-2iRG1p74.js} +14 -30
- package/dist/shared/hx-date-picker-2iRG1p74.js.map +1 -0
- package/dist/shared/{hx-dialog-eIS8tcDm.js → hx-dialog-DRN_1-Y-.js} +2 -5
- package/dist/shared/hx-dialog-DRN_1-Y-.js.map +1 -0
- package/dist/shared/{hx-drawer-DDhDz7RI.js → hx-drawer-Y1Ui2IWJ.js} +2 -5
- package/dist/shared/hx-drawer-Y1Ui2IWJ.js.map +1 -0
- package/dist/shared/{hx-file-upload-zTDbjsRw.js → hx-file-upload-D3rKROK5.js} +17 -26
- package/dist/shared/hx-file-upload-D3rKROK5.js.map +1 -0
- package/dist/shared/{hx-icon-button-BmV97nqz.js → hx-icon-button-CGNdQSFM.js} +3 -6
- package/dist/shared/hx-icon-button-CGNdQSFM.js.map +1 -0
- package/dist/shared/{hx-link-DmiV-mPw.js → hx-link-C-O6vq0Q.js} +5 -8
- package/dist/shared/hx-link-C-O6vq0Q.js.map +1 -0
- package/dist/shared/{hx-list-CkphGi9T.js → hx-list-MyEhh8c7.js} +3 -5
- package/dist/shared/hx-list-MyEhh8c7.js.map +1 -0
- package/dist/shared/{hx-menu-divider-j__TZjH2.js → hx-menu-divider-C2omnPtj.js} +2 -5
- package/dist/shared/hx-menu-divider-C2omnPtj.js.map +1 -0
- package/dist/shared/{hx-meter-Cm7k_Ro8.js → hx-meter-BPscsw5t.js} +2 -3
- package/dist/shared/hx-meter-BPscsw5t.js.map +1 -0
- package/dist/shared/{hx-nav-item-D8xHLVOs.js → hx-nav-item-xqRPOCWX.js} +172 -110
- package/dist/shared/hx-nav-item-xqRPOCWX.js.map +1 -0
- package/dist/shared/{hx-nav-LoyEKZQC.js → hx-nav-ldFM3Fle.js} +37 -43
- package/dist/shared/hx-nav-ldFM3Fle.js.map +1 -0
- package/dist/shared/{hx-overflow-menu-BmKyAp5D.js → hx-overflow-menu-DCLsdIBy.js} +3 -9
- package/dist/shared/hx-overflow-menu-DCLsdIBy.js.map +1 -0
- package/dist/shared/{hx-pagination-Dqw5dorC.js → hx-pagination-C7y8GVyU.js} +54 -60
- package/dist/shared/hx-pagination-C7y8GVyU.js.map +1 -0
- package/dist/shared/{hx-phi-field-Bf9TdtC1.js → hx-phi-field-C19oxlrr.js} +2 -5
- package/dist/shared/hx-phi-field-C19oxlrr.js.map +1 -0
- package/dist/shared/{hx-popover-B93rTAfr.js → hx-popover-B-FP3-wW.js} +8 -11
- package/dist/shared/hx-popover-B-FP3-wW.js.map +1 -0
- package/dist/shared/{hx-radio-N8xgDd_5.js → hx-radio-CJvNU2yP.js} +4 -7
- package/dist/shared/{hx-radio-N8xgDd_5.js.map → hx-radio-CJvNU2yP.js.map} +1 -1
- package/dist/shared/{hx-rating-i2FL1WUN.js → hx-rating-C3QP53k9.js} +4 -5
- package/dist/shared/hx-rating-C3QP53k9.js.map +1 -0
- package/dist/shared/{hx-select-vgaBo1Ai.js → hx-select-C8fEHQhC.js} +4 -8
- package/dist/shared/hx-select-C8fEHQhC.js.map +1 -0
- package/dist/shared/{hx-slider-ydBamYhd.js → hx-slider-Blmv_rwS.js} +26 -29
- package/dist/shared/hx-slider-Blmv_rwS.js.map +1 -0
- package/dist/shared/{hx-split-button-BeMsmS6N.js → hx-split-button-Djnc5Aeg.js} +6 -12
- package/dist/shared/hx-split-button-Djnc5Aeg.js.map +1 -0
- package/dist/shared/{hx-split-panel-BVG1VWNT.js → hx-split-panel-B-u0Z3mm.js} +3 -9
- package/dist/shared/hx-split-panel-B-u0Z3mm.js.map +1 -0
- package/dist/shared/{hx-step-DL3PbOzm.js → hx-step-R2rjp1fT.js} +2 -5
- package/dist/shared/hx-step-R2rjp1fT.js.map +1 -0
- package/dist/shared/{hx-switch-Dougzsgp.js → hx-switch-BrZFaRue.js} +8 -11
- package/dist/shared/hx-switch-BrZFaRue.js.map +1 -0
- package/dist/shared/{hx-tab-panel-CbkO9VKu.js → hx-tab-panel-DspCrKqo.js} +3 -9
- package/dist/shared/{hx-tab-panel-CbkO9VKu.js.map → hx-tab-panel-DspCrKqo.js.map} +1 -1
- package/dist/shared/{hx-td-1zwTFLRw.js → hx-td-DnnEMIuA.js} +2 -3
- package/dist/shared/hx-td-DnnEMIuA.js.map +1 -0
- package/dist/shared/{hx-text-input-B-caO5fI.js → hx-text-input-D6FlOZM-.js} +24 -31
- package/dist/shared/hx-text-input-D6FlOZM-.js.map +1 -0
- package/dist/shared/{hx-textarea-D9O4U8cb.js → hx-textarea-CNG590KY.js} +3 -6
- package/dist/shared/hx-textarea-CNG590KY.js.map +1 -0
- package/dist/shared/{hx-theme-BiyQ7UUK.js → hx-theme-BsefFWTO.js} +83 -113
- package/dist/shared/hx-theme-BsefFWTO.js.map +1 -0
- package/dist/shared/{hx-time-picker-m0z4nFB-.js → hx-time-picker-BoEIZwzv.js} +4 -4
- package/dist/shared/{hx-time-picker-m0z4nFB-.js.map → hx-time-picker-BoEIZwzv.js.map} +1 -1
- package/dist/shared/{hx-toggle-button-Dd8clXB4.js → hx-toggle-button-iLiYrMbD.js} +24 -27
- package/dist/shared/hx-toggle-button-iLiYrMbD.js.map +1 -0
- package/dist/shared/{hx-top-nav-CchPYaiV.js → hx-top-nav-DP6OFS8C.js} +11 -14
- package/dist/shared/hx-top-nav-DP6OFS8C.js.map +1 -0
- package/dist/shared/{hx-tree-item-DtMC3DTa.js → hx-tree-item-C2CiWuDE.js} +4 -11
- package/dist/shared/hx-tree-item-C2CiWuDE.js.map +1 -0
- package/dist/shared/{toast-factory-DvDRAh0l.js → toast-factory-YSznocIV.js} +66 -56
- package/dist/shared/toast-factory-YSznocIV.js.map +1 -0
- package/figma-inventory.json +283 -420
- package/package.json +2 -2
- package/dist/shared/hx-accordion-cnKg4_la.js.map +0 -1
- package/dist/shared/hx-alert-BZH8iHQf.js.map +0 -1
- package/dist/shared/hx-banner-DT7Zn9Bo.js.map +0 -1
- package/dist/shared/hx-button-modUSOpY.js.map +0 -1
- package/dist/shared/hx-card-CU1QnjNb.js.map +0 -1
- package/dist/shared/hx-carousel-item-BaE4hpLl.js.map +0 -1
- package/dist/shared/hx-checkbox-C46TyXhM.js.map +0 -1
- package/dist/shared/hx-clinical-status-BmSjfSEN.js.map +0 -1
- package/dist/shared/hx-code-snippet-CJ0FbQYG.js.map +0 -1
- package/dist/shared/hx-color-picker-DiDLZyvK.js.map +0 -1
- package/dist/shared/hx-combobox-DaA5dBC4.js.map +0 -1
- package/dist/shared/hx-data-table-Cq3t86Ic.js.map +0 -1
- package/dist/shared/hx-date-picker-DMqRQNSB.js.map +0 -1
- package/dist/shared/hx-dialog-eIS8tcDm.js.map +0 -1
- package/dist/shared/hx-drawer-DDhDz7RI.js.map +0 -1
- package/dist/shared/hx-file-upload-zTDbjsRw.js.map +0 -1
- package/dist/shared/hx-icon-button-BmV97nqz.js.map +0 -1
- package/dist/shared/hx-link-DmiV-mPw.js.map +0 -1
- package/dist/shared/hx-list-CkphGi9T.js.map +0 -1
- package/dist/shared/hx-menu-divider-j__TZjH2.js.map +0 -1
- package/dist/shared/hx-meter-Cm7k_Ro8.js.map +0 -1
- package/dist/shared/hx-nav-LoyEKZQC.js.map +0 -1
- package/dist/shared/hx-nav-item-D8xHLVOs.js.map +0 -1
- package/dist/shared/hx-overflow-menu-BmKyAp5D.js.map +0 -1
- package/dist/shared/hx-pagination-Dqw5dorC.js.map +0 -1
- package/dist/shared/hx-phi-field-Bf9TdtC1.js.map +0 -1
- package/dist/shared/hx-popover-B93rTAfr.js.map +0 -1
- package/dist/shared/hx-rating-i2FL1WUN.js.map +0 -1
- package/dist/shared/hx-select-vgaBo1Ai.js.map +0 -1
- package/dist/shared/hx-slider-ydBamYhd.js.map +0 -1
- package/dist/shared/hx-split-button-BeMsmS6N.js.map +0 -1
- package/dist/shared/hx-split-panel-BVG1VWNT.js.map +0 -1
- package/dist/shared/hx-step-DL3PbOzm.js.map +0 -1
- package/dist/shared/hx-switch-Dougzsgp.js.map +0 -1
- package/dist/shared/hx-td-1zwTFLRw.js.map +0 -1
- package/dist/shared/hx-text-input-B-caO5fI.js.map +0 -1
- package/dist/shared/hx-textarea-D9O4U8cb.js.map +0 -1
- package/dist/shared/hx-theme-BiyQ7UUK.js.map +0 -1
- package/dist/shared/hx-toggle-button-Dd8clXB4.js.map +0 -1
- package/dist/shared/hx-top-nav-CchPYaiV.js.map +0 -1
- package/dist/shared/hx-tree-item-DtMC3DTa.js.map +0 -1
- package/dist/shared/toast-factory-DvDRAh0l.js.map +0 -1
package/dist/css/hx-button.css
CHANGED
|
@@ -46,10 +46,7 @@
|
|
|
46
46
|
|
|
47
47
|
.button:focus-visible {
|
|
48
48
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
49
|
-
var(
|
|
50
|
-
--hx-button-focus-ring-color,
|
|
51
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
|
|
52
|
-
);
|
|
49
|
+
var(--hx-button-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
53
50
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
54
51
|
}
|
|
55
52
|
|
|
@@ -87,21 +84,24 @@
|
|
|
87
84
|
/* ─── Style Variants ─── */
|
|
88
85
|
|
|
89
86
|
.button--primary {
|
|
90
|
-
--hx-button-bg: var(--hx-color-primary-
|
|
91
|
-
|
|
87
|
+
--hx-button-bg: var(--hx-color-action-primary-bg, #429797);
|
|
88
|
+
/* Inline #0d1825 matches text.on-primary's resolved primitive (neutral-900);
|
|
89
|
+
cold-start without the semantic still paints AA-tuned dark-on-primary
|
|
90
|
+
rather than white-on-primary (3.43:1 fail). */
|
|
91
|
+
--hx-button-color: var(--hx-color-text-on-primary, #0d1825);
|
|
92
92
|
--hx-button-border-color: transparent;
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
.button--secondary {
|
|
96
96
|
--hx-button-bg: transparent;
|
|
97
|
-
/* primary-500 (#429797) text on white surface = 3.
|
|
98
|
-
primary-600 (#0F7078) on white =
|
|
99
|
-
--hx-button-color: var(--hx-color-
|
|
100
|
-
--hx-button-border-color: var(--hx-color-
|
|
97
|
+
/* primary-500 (#429797) text on white surface = 3.44:1 — fails AA.
|
|
98
|
+
primary-600 (#0F7078) on white = 5.82:1 — AA pass. */
|
|
99
|
+
--hx-button-color: var(--hx-color-action-secondary-fg, #0f7078);
|
|
100
|
+
--hx-button-border-color: var(--hx-color-action-secondary-border, #0f7078);
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
.button--secondary:hover {
|
|
104
|
-
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-
|
|
104
|
+
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-secondary-bg-hover, #ebf8f8));
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
.button--tertiary {
|
|
@@ -115,36 +115,52 @@
|
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
.button--danger {
|
|
118
|
-
--hx-button-bg: var(--hx-color-
|
|
119
|
-
|
|
118
|
+
--hx-button-bg: var(--hx-color-action-danger-bg, #e5493e);
|
|
119
|
+
/* Inline #0d1825 matches text.on-error's resolved primitive (neutral-900);
|
|
120
|
+
cold-start without the semantic still paints AA-tuned dark-on-error
|
|
121
|
+
rather than white-on-error (3.92:1 fail). */
|
|
122
|
+
--hx-button-color: var(--hx-color-text-on-error, #0d1825);
|
|
120
123
|
--hx-button-border-color: transparent;
|
|
121
124
|
}
|
|
122
125
|
|
|
123
126
|
/* on-error tokens are tuned for error-500 (neutral-900 on #E5493E ≈ 4.59:1).
|
|
124
|
-
error-600 (#C92A2A) drops that to
|
|
125
|
-
|
|
126
|
-
(commit 300e21ab0)
|
|
127
|
+
error-600 (#C92A2A) drops that to 3.28:1 — AA fail. text.on-error-strong
|
|
128
|
+
resolves to neutral-0 across modes (no dark flip) so the darker hover fill
|
|
129
|
+
stays legible. Mirrors hx-toast precedent (commit 300e21ab0); routed
|
|
130
|
+
through the semantic tier in 3.2.1 token-cascade remediation. */
|
|
127
131
|
.button--danger:hover {
|
|
128
|
-
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-
|
|
129
|
-
--hx-button-color: var(--hx-color-
|
|
132
|
+
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-danger-bg-hover, #c92a2a));
|
|
133
|
+
--hx-button-color: var(--hx-color-text-on-error-strong, #ffffff);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* Pressed state binds explicitly to action.danger.bg-active (error-700,
|
|
137
|
+
#A21312) + text.on-error-strong (neutral-0) = 7.96:1 AA. Base
|
|
138
|
+
.button:active filter:brightness(0.8) would compound on top of bg-hover
|
|
139
|
+
(#C92A2A) and produce ~3.3:1 sub-AA on the bound colors. Override the
|
|
140
|
+
filter to none. HC override on action.danger.bg-active flips to HC
|
|
141
|
+
error-500 so the on-error-strong (HC = #000) pair is AA in HC too. */
|
|
142
|
+
.button--danger:active {
|
|
143
|
+
--hx-button-bg: var(--hx-button-active-bg, var(--hx-color-action-danger-bg-active, #a21312));
|
|
144
|
+
--hx-button-color: var(--hx-color-text-on-error-strong, #ffffff);
|
|
145
|
+
filter: none;
|
|
130
146
|
}
|
|
131
147
|
|
|
132
148
|
.button--ghost {
|
|
133
149
|
--hx-button-bg: transparent;
|
|
134
|
-
/* primary-500 (#429797) text on white surface = 3.
|
|
135
|
-
primary-600 (#0F7078) on white =
|
|
136
|
-
--hx-button-color: var(--hx-color-
|
|
150
|
+
/* primary-500 (#429797) text on white surface = 3.44:1 — fails AA.
|
|
151
|
+
primary-600 (#0F7078) on white = 5.82:1 — AA pass. */
|
|
152
|
+
--hx-button-color: var(--hx-color-action-ghost-fg, #0f7078);
|
|
137
153
|
--hx-button-border-color: transparent;
|
|
138
154
|
}
|
|
139
155
|
|
|
140
156
|
.button--ghost:hover {
|
|
141
|
-
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-
|
|
157
|
+
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-ghost-bg-hover, #ebf8f8));
|
|
142
158
|
}
|
|
143
159
|
|
|
144
160
|
.button--outline {
|
|
145
161
|
--hx-button-bg: transparent;
|
|
146
162
|
--hx-button-color: var(--hx-color-text-primary, #0d1825);
|
|
147
|
-
--hx-button-border-color: var(--hx-color-border-strong, #
|
|
163
|
+
--hx-button-border-color: var(--hx-color-border-strong, #66787b);
|
|
148
164
|
}
|
|
149
165
|
|
|
150
166
|
.button--outline:hover {
|
|
@@ -152,12 +168,24 @@
|
|
|
152
168
|
}
|
|
153
169
|
|
|
154
170
|
/* on-primary token resolves to neutral-900 (#0D1825) — tuned for primary-500.
|
|
155
|
-
primary-600 (#0F7078) drops the pair to 3.07:1 — AA fail.
|
|
156
|
-
neutral-0 for the darker hover fill.
|
|
157
|
-
(commit 300e21ab0)
|
|
171
|
+
primary-600 (#0F7078) drops the pair to 3.07:1 — AA fail. text.on-primary-strong
|
|
172
|
+
resolves to neutral-0 across modes (no dark flip) for the darker hover fill.
|
|
173
|
+
Mirrors hx-toast precedent (commit 300e21ab0); routed through the semantic
|
|
174
|
+
tier in 3.2.1 token-cascade remediation. */
|
|
158
175
|
.button--primary:hover {
|
|
159
|
-
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-primary-
|
|
160
|
-
--hx-button-color: var(--hx-color-
|
|
176
|
+
--hx-button-bg: var(--hx-button-hover-bg, var(--hx-color-action-primary-bg-hover, #0f7078));
|
|
177
|
+
--hx-button-color: var(--hx-color-text-on-primary-strong, #ffffff);
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/* Pressed state binds explicitly to action.primary.bg-active (primary-700,
|
|
181
|
+
#0F6363) + text.on-primary-strong (neutral-0) = 7.03:1 AA. The base
|
|
182
|
+
.button:active filter:brightness(0.8) would compound on top of bg-hover
|
|
183
|
+
(#0F7078) and produce ~3.7:1 sub-AA on the bound colors. Override the
|
|
184
|
+
filter to none so the action.*.bg-active token is what actually paints. */
|
|
185
|
+
.button--primary:active {
|
|
186
|
+
--hx-button-bg: var(--hx-button-active-bg, var(--hx-color-action-primary-bg-active, #0f6363));
|
|
187
|
+
--hx-button-color: var(--hx-color-text-on-primary-strong, #ffffff);
|
|
188
|
+
filter: none;
|
|
161
189
|
}
|
|
162
190
|
|
|
163
191
|
/* ─── Disabled ─── */
|
|
@@ -201,9 +229,20 @@
|
|
|
201
229
|
|
|
202
230
|
/* ─── Inverted Mode ─── */
|
|
203
231
|
|
|
232
|
+
/* Inline-fallback contract for the on-dark-* tokens in this section:
|
|
233
|
+
the literal rgba(255, 255, 255, 0.X) arms are a LIGHT-MODE-only last
|
|
234
|
+
resort (cold-start, CSS-not-loaded). At runtime, hx-theme injects
|
|
235
|
+
the dark.* override (overlay-black-* for the strong border and the
|
|
236
|
+
surface.on-dark-overlay-* fills) so dark-mode inverted buttons stay
|
|
237
|
+
visible on the now-light surface.inverse (#EBEEE9). The inline white
|
|
238
|
+
overlays would render invisible (≈1.1:1) on a light surface, but
|
|
239
|
+
they never paint when the theme is mounted. If a future change
|
|
240
|
+
moves these into a context where hx-theme is not guaranteed,
|
|
241
|
+
replace with mode-aware tokens. */
|
|
242
|
+
|
|
204
243
|
/* Override text color and filter-based hover/active for all variants */
|
|
205
244
|
:host([inverted]) .button {
|
|
206
|
-
color: var(--hx-button-inverted-color, var(--hx-color-
|
|
245
|
+
color: var(--hx-button-inverted-color, var(--hx-color-text-inverse, #ffffff));
|
|
207
246
|
filter: none;
|
|
208
247
|
}
|
|
209
248
|
|
|
@@ -216,37 +255,115 @@
|
|
|
216
255
|
}
|
|
217
256
|
|
|
218
257
|
:host([inverted]) .button:focus-visible {
|
|
258
|
+
/* WCAG 1.4.11: focus indicator needs ≥3:1 against adjacent colors.
|
|
259
|
+
border-on-dark-strong (overlay-white-70) ≈ 5:1 on neutral-900 — passes.
|
|
260
|
+
The lower-alpha siblings used to live in border.* but were sub-3:1
|
|
261
|
+
against any plausible surface and could not honour a border contract;
|
|
262
|
+
they're now surface.on-dark-overlay-{default,subtle} (translucent
|
|
263
|
+
fills, not borders) and used elsewhere in this file. See
|
|
264
|
+
tokens.json color.surface.on-dark-overlay-* for canonical ratios. */
|
|
219
265
|
outline-color: var(
|
|
220
266
|
--hx-button-inverted-focus-ring-color,
|
|
221
|
-
var(--hx-
|
|
267
|
+
var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7))
|
|
222
268
|
);
|
|
223
269
|
}
|
|
224
270
|
|
|
225
|
-
/* Primary inverted —
|
|
226
|
-
|
|
227
|
-
|
|
271
|
+
/* Primary inverted — resting bg routes through action.primary.bg-inverted-rest
|
|
272
|
+
so dark mode can flip the fill to primary-600. surface.inverse becomes light
|
|
273
|
+
(#EBEEE9) in dark mode; primary-500 on #EBEEE9 = 2.94:1 (sub-3:1 UI floor
|
|
274
|
+
fail for the inverted-button boundary). primary-600 on #EBEEE9 = 4.97:1
|
|
275
|
+
(AA pass). Light mode tracks action.primary.bg-inverted-rest's base value
|
|
276
|
+
(primary-500, 5.20:1 on dark surface.inverse).
|
|
277
|
+
|
|
278
|
+
Override path note (codex round-11): this binds --hx-button-bg directly,
|
|
279
|
+
matching the cascade convention every other .button--{variant} rule uses
|
|
280
|
+
(light primary at line 89, danger at 120, secondary, tertiary, ghost). The
|
|
281
|
+
consumer override path for inverted-primary rest is
|
|
282
|
+
--hx-color-action-primary-bg-inverted-rest, NOT --hx-button-bg — the same
|
|
283
|
+
pattern as light primary (consumers override --hx-color-action-primary-bg).
|
|
284
|
+
Pinned by dark-mode-resolution.test.ts:185-197 across both modes. */
|
|
285
|
+
:host([inverted]) .button--primary {
|
|
286
|
+
--hx-button-bg: var(--hx-color-action-primary-bg-inverted-rest, #429797);
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/* Primary inverted — hover/pressed lift to action.primary.bg-inverted-hover
|
|
290
|
+
(primary-400, light teal). The base :host([inverted]) .button rule binds
|
|
291
|
+
color to text.inverse, which flips by mode (neutral-0 in light, neutral-900
|
|
292
|
+
in dark). On a permanent light-teal fill, white text drops to 2.4:1 in
|
|
293
|
+
light mode (AA fail). Pin color to text.on-primary (neutral-900, no
|
|
294
|
+
dark-mode flip) for both hover and active so the foreground is dark in
|
|
295
|
+
both modes — neutral-900 on primary-400 = 7.27:1 (AA pass).
|
|
296
|
+
Pressed === hover visually in inverted mode is acceptable UX (the
|
|
297
|
+
transient absence of pointer over the button signals release).
|
|
298
|
+
The fallback chain wraps --hx-button-active-bg (highest precedence) and
|
|
299
|
+
--hx-button-hover-bg so consumer overrides on either prop apply under
|
|
300
|
+
:host([inverted]) — the two share a paint here, so either knob is
|
|
301
|
+
honored, with active-bg winning when both are set. */
|
|
302
|
+
:host([inverted]) .button--primary:hover,
|
|
303
|
+
:host([inverted]) .button--primary:active {
|
|
304
|
+
--hx-button-bg: var(
|
|
305
|
+
--hx-button-active-bg,
|
|
306
|
+
var(--hx-button-hover-bg, var(--hx-color-action-primary-bg-inverted-hover, #6ab1b1))
|
|
307
|
+
);
|
|
308
|
+
color: var(
|
|
309
|
+
--hx-button-inverted-primary-interactive-color,
|
|
310
|
+
var(--hx-color-text-on-primary, #0d1825)
|
|
311
|
+
);
|
|
228
312
|
}
|
|
229
313
|
|
|
230
|
-
/*
|
|
314
|
+
/* Danger inverted — sister to primary. Hover/pressed lift to
|
|
315
|
+
action.danger.bg-inverted-hover (error-400, #FC7264). Same foreground
|
|
316
|
+
contract: text.inverse fails in light mode (white on light red ≈ 2.6:1);
|
|
317
|
+
pin to text.on-error (neutral-900, no dark-mode flip) for 6.58:1 in both
|
|
318
|
+
modes. Same active-bg → hover-bg → semantic fallback chain as primary. */
|
|
319
|
+
:host([inverted]) .button--danger:hover,
|
|
320
|
+
:host([inverted]) .button--danger:active {
|
|
321
|
+
--hx-button-bg: var(
|
|
322
|
+
--hx-button-active-bg,
|
|
323
|
+
var(--hx-button-hover-bg, var(--hx-color-action-danger-bg-inverted-hover, #fc7264))
|
|
324
|
+
);
|
|
325
|
+
color: var(
|
|
326
|
+
--hx-button-inverted-danger-interactive-color,
|
|
327
|
+
var(--hx-color-text-on-error, #0d1825)
|
|
328
|
+
);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/* Secondary inverted — white border and translucent hover fill */
|
|
231
332
|
:host([inverted]) .button--secondary {
|
|
232
|
-
--hx-button-border-color: var(--hx-
|
|
333
|
+
--hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
233
334
|
}
|
|
234
335
|
|
|
336
|
+
/* Inverted overlay fills read both names so consumer overrides reach paint
|
|
337
|
+
regardless of which token they target: the deprecated --hx-color-border-on-dark-*
|
|
338
|
+
names (3.2.0/3.2.1 public API, scheduled for removal in 4.0.0) and the canonical
|
|
339
|
+
--hx-color-surface-on-dark-overlay-* names (round-8 rename). Deprecated name
|
|
340
|
+
wins when set; otherwise resolves through the canonical alias chain. */
|
|
235
341
|
:host([inverted]) .button--secondary:hover {
|
|
236
|
-
--hx-button-bg: var(
|
|
342
|
+
--hx-button-bg: var(
|
|
343
|
+
--hx-color-border-on-dark-default,
|
|
344
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
345
|
+
);
|
|
237
346
|
}
|
|
238
347
|
|
|
239
|
-
/* Tertiary inverted
|
|
348
|
+
/* Tertiary inverted — resting at the subtle overlay (10%) lifts to the default
|
|
349
|
+
overlay (30%) on hover so the runtime hover delta is visually distinct, not
|
|
350
|
+
collapsed onto a single token. */
|
|
240
351
|
:host([inverted]) .button--tertiary {
|
|
241
|
-
--hx-button-bg: var(
|
|
352
|
+
--hx-button-bg: var(
|
|
353
|
+
--hx-color-border-on-dark-subtle,
|
|
354
|
+
var(--hx-color-surface-on-dark-overlay-subtle, rgba(255, 255, 255, 0.1))
|
|
355
|
+
);
|
|
242
356
|
--hx-button-border-color: transparent;
|
|
243
357
|
}
|
|
244
358
|
|
|
245
359
|
:host([inverted]) .button--tertiary:hover {
|
|
246
|
-
--hx-button-bg: var(
|
|
360
|
+
--hx-button-bg: var(
|
|
361
|
+
--hx-color-border-on-dark-default,
|
|
362
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
363
|
+
);
|
|
247
364
|
}
|
|
248
365
|
|
|
249
|
-
/* Ghost inverted — transparent base,
|
|
366
|
+
/* Ghost inverted — transparent base, translucent hover bg */
|
|
250
367
|
:host([inverted]) .button--ghost {
|
|
251
368
|
--hx-button-bg: transparent;
|
|
252
369
|
--hx-button-border-color: transparent;
|
|
@@ -255,17 +372,23 @@
|
|
|
255
372
|
:host([inverted]) .button--ghost:hover {
|
|
256
373
|
--hx-button-bg: var(
|
|
257
374
|
--hx-button-inverted-ghost-hover-bg,
|
|
258
|
-
var(
|
|
375
|
+
var(
|
|
376
|
+
--hx-color-border-on-dark-default,
|
|
377
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
378
|
+
)
|
|
259
379
|
);
|
|
260
380
|
}
|
|
261
381
|
|
|
262
382
|
/* Outline inverted — white border */
|
|
263
383
|
:host([inverted]) .button--outline {
|
|
264
|
-
--hx-button-border-color: var(--hx-
|
|
384
|
+
--hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
265
385
|
}
|
|
266
386
|
|
|
267
387
|
:host([inverted]) .button--outline:hover {
|
|
268
|
-
--hx-button-bg: var(
|
|
388
|
+
--hx-button-bg: var(
|
|
389
|
+
--hx-color-border-on-dark-default,
|
|
390
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
391
|
+
);
|
|
269
392
|
}
|
|
270
393
|
|
|
271
394
|
/* ─── Prefix / Suffix / Label ─── */
|
|
@@ -293,6 +416,16 @@
|
|
|
293
416
|
border: 2px solid ButtonText;
|
|
294
417
|
}
|
|
295
418
|
|
|
419
|
+
.button:hover {
|
|
420
|
+
/* Hover affordance must survive in HC. Highlight/HighlightText is the
|
|
421
|
+
OS-level "selected" pair, mirroring the forcedColorsInteractive mixin's
|
|
422
|
+
hover contract — kept inline since this component owns its bespoke HC
|
|
423
|
+
block (XOR rule). */
|
|
424
|
+
background-color: Highlight;
|
|
425
|
+
color: HighlightText;
|
|
426
|
+
border-color: Highlight;
|
|
427
|
+
}
|
|
428
|
+
|
|
296
429
|
.button:focus-visible {
|
|
297
430
|
outline: 3px solid Highlight;
|
|
298
431
|
outline-offset: 2px;
|
package/dist/css/hx-card.css
CHANGED
|
@@ -84,10 +84,7 @@
|
|
|
84
84
|
|
|
85
85
|
.card--interactive:focus-visible {
|
|
86
86
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
87
|
-
var(
|
|
88
|
-
--hx-card-focus-ring-color,
|
|
89
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
|
|
90
|
-
);
|
|
87
|
+
var(--hx-card-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
91
88
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
92
89
|
}
|
|
93
90
|
|
package/dist/css/hx-carousel.css
CHANGED
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
|
|
63
63
|
.nav-btn:focus-visible {
|
|
64
64
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
65
|
-
var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color,
|
|
65
|
+
var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
66
66
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
|
|
105
105
|
.play-pause-btn:focus-visible {
|
|
106
106
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
107
|
-
var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color,
|
|
107
|
+
var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
108
108
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
109
109
|
}
|
|
110
110
|
|
|
@@ -176,7 +176,7 @@
|
|
|
176
176
|
|
|
177
177
|
.pagination-item:focus-visible {
|
|
178
178
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
179
|
-
var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color,
|
|
179
|
+
var(--hx-carousel-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
180
180
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
181
181
|
border-radius: var(--hx-border-radius-full, 9999px);
|
|
182
182
|
}
|
package/dist/css/hx-checkbox.css
CHANGED
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
width: var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));
|
|
59
59
|
height: var(--hx-checkbox-size, var(--hx-size-5, 1.25rem));
|
|
60
60
|
border: var(--hx-border-width-medium, 2px) solid
|
|
61
|
-
var(--hx-checkbox-border-color, var(--hx-color-border-strong, #
|
|
61
|
+
var(--hx-checkbox-border-color, var(--hx-color-border-strong, #66787b));
|
|
62
62
|
border-radius: var(--hx-checkbox-border-radius, var(--hx-border-radius-sm, 0.25rem));
|
|
63
63
|
background-color: var(--hx-checkbox-bg, var(--hx-color-surface-default, #ffffff));
|
|
64
64
|
transition:
|
|
@@ -72,10 +72,7 @@
|
|
|
72
72
|
|
|
73
73
|
.checkbox__input:focus-visible ~ .checkbox__box {
|
|
74
74
|
outline: var(--hx-checkbox-focus-ring-width, var(--hx-focus-ring-width, 2px)) solid
|
|
75
|
-
var(
|
|
76
|
-
--hx-checkbox-focus-ring-color,
|
|
77
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
|
|
78
|
-
);
|
|
75
|
+
var(--hx-checkbox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
79
76
|
outline-offset: var(--hx-checkbox-focus-ring-offset, var(--hx-focus-ring-offset, 2px));
|
|
80
77
|
}
|
|
81
78
|
|
|
@@ -184,8 +184,7 @@
|
|
|
184
184
|
}
|
|
185
185
|
|
|
186
186
|
.clinical-status__dismiss-button:focus-visible {
|
|
187
|
-
outline: var(--hx-focus-ring-width, 2px) solid
|
|
188
|
-
var(--hx-focus-ring-color, var(--hx-color-focus, #429797));
|
|
187
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #0f7078);
|
|
189
188
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
190
189
|
opacity: 1;
|
|
191
190
|
}
|
|
@@ -230,8 +229,7 @@
|
|
|
230
229
|
}
|
|
231
230
|
|
|
232
231
|
.clinical-status__acknowledge-button:focus-visible {
|
|
233
|
-
outline: var(--hx-focus-ring-width, 2px) solid
|
|
234
|
-
var(--hx-focus-ring-color, var(--hx-color-focus, #429797));
|
|
232
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-focus-ring-color, #0f7078);
|
|
235
233
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
236
234
|
}
|
|
237
235
|
|
|
@@ -78,7 +78,8 @@
|
|
|
78
78
|
min-width: var(--hx-touch-target-min, 2.75rem);
|
|
79
79
|
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
80
80
|
padding: var(--hx-space-1, 0.25rem) var(--hx-space-2, 0.5rem);
|
|
81
|
-
border: var(--hx-border-width-thin, 1px) solid
|
|
81
|
+
border: var(--hx-border-width-thin, 1px) solid
|
|
82
|
+
var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
82
83
|
border-radius: var(--hx-border-radius-sm, 0.25rem);
|
|
83
84
|
/* Copy button sits on the always-dark block snippet surface; uses inverse family for contrast on the terminal background. */
|
|
84
85
|
background-color: var(--hx-color-surface-inverse, #0d1825);
|
|
@@ -103,8 +104,14 @@
|
|
|
103
104
|
}
|
|
104
105
|
|
|
105
106
|
.code-snippet__copy-button:focus-visible {
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
/* Always-dark terminal surface — uses primary-400 (#6AB1B1, 7.27:1 on #0d1825)
|
|
108
|
+
instead of the light-mode --hx-focus-ring-color (primary-600, 3.07:1 — razor
|
|
109
|
+
above the 3:1 UI floor with no headroom). Deliberate primitive-tier consumption:
|
|
110
|
+
there is no semantic focus-ring-on-dark alias today — the dark.color.focus-ring
|
|
111
|
+
override at tokens.json only fires under theme=dark, but this surface is dark in
|
|
112
|
+
every theme. Tracked for promotion to a semantic alias in a future token-cascade
|
|
113
|
+
follow-up. */
|
|
114
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-color-primary-400, #6ab1b1);
|
|
108
115
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
109
116
|
}
|
|
110
117
|
|
|
@@ -123,7 +130,8 @@
|
|
|
123
130
|
min-height: var(--hx-touch-target-min, 2.75rem);
|
|
124
131
|
padding: var(--hx-space-2, 0.5rem) var(--hx-space-4, 1rem);
|
|
125
132
|
border: none;
|
|
126
|
-
border-top: var(--hx-border-width-thin, 1px) solid
|
|
133
|
+
border-top: var(--hx-border-width-thin, 1px) solid
|
|
134
|
+
var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
127
135
|
/* Expand button is attached to the always-dark block snippet — inverse family maintains the terminal aesthetic. */
|
|
128
136
|
background-color: var(--hx-color-surface-inverse, #0d1825);
|
|
129
137
|
color: var(--hx-color-text-inverse, #ffffff);
|
|
@@ -144,8 +152,14 @@
|
|
|
144
152
|
}
|
|
145
153
|
|
|
146
154
|
.code-snippet__expand-button:focus-visible {
|
|
147
|
-
|
|
148
|
-
|
|
155
|
+
/* Always-dark terminal surface — uses primary-400 (#6AB1B1, 7.27:1 on #0d1825)
|
|
156
|
+
instead of the light-mode --hx-focus-ring-color (primary-600, 3.07:1 — razor
|
|
157
|
+
above the 3:1 UI floor with no headroom). Deliberate primitive-tier consumption:
|
|
158
|
+
there is no semantic focus-ring-on-dark alias today — the dark.color.focus-ring
|
|
159
|
+
override at tokens.json only fires under theme=dark, but this surface is dark in
|
|
160
|
+
every theme. Tracked for promotion to a semantic alias in a future token-cascade
|
|
161
|
+
follow-up. */
|
|
162
|
+
outline: var(--hx-focus-ring-width, 2px) solid var(--hx-color-primary-400, #6ab1b1);
|
|
149
163
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
150
164
|
}
|
|
151
165
|
|
|
@@ -28,10 +28,7 @@
|
|
|
28
28
|
}
|
|
29
29
|
:is(.trigger, .gradient-grid, .slider-track, .swatch-btn, .format-btn):focus-visible {
|
|
30
30
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
31
|
-
var(
|
|
32
|
-
--hx-color-picker-focus-ring-color,
|
|
33
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
|
|
34
|
-
);
|
|
31
|
+
var(--hx-color-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
35
32
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
36
33
|
}
|
|
37
34
|
.trigger-swatch {
|
|
@@ -206,18 +203,11 @@
|
|
|
206
203
|
outline: none;
|
|
207
204
|
}
|
|
208
205
|
.color-input:focus-visible {
|
|
209
|
-
border-color: var(
|
|
210
|
-
--hx-color-picker-focus-ring-color,
|
|
211
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
|
|
212
|
-
);
|
|
206
|
+
border-color: var(--hx-color-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
213
207
|
box-shadow: 0 0 0 2px
|
|
214
208
|
color-mix(
|
|
215
209
|
in srgb,
|
|
216
|
-
var(
|
|
217
|
-
--hx-color-picker-focus-ring-color,
|
|
218
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
|
|
219
|
-
)
|
|
220
|
-
20%,
|
|
210
|
+
var(--hx-color-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078)) 20%,
|
|
221
211
|
transparent
|
|
222
212
|
);
|
|
223
213
|
}
|
package/dist/css/hx-combobox.css
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
display: flex;
|
|
35
35
|
align-items: center;
|
|
36
36
|
border: var(--hx-border-width-thin, 1px) solid
|
|
37
|
-
var(--hx-combobox-border-color, var(--hx-color-border-strong, #
|
|
37
|
+
var(--hx-combobox-border-color, var(--hx-color-border-strong, #66787b));
|
|
38
38
|
border-radius: var(--hx-combobox-border-radius, var(--hx-border-radius-md, 0.375rem));
|
|
39
39
|
background-color: var(--hx-combobox-bg, var(--hx-color-surface-default, #ffffff));
|
|
40
40
|
transition:
|
|
@@ -42,17 +42,11 @@
|
|
|
42
42
|
box-shadow var(--hx-transition-fast, 150ms ease);
|
|
43
43
|
}
|
|
44
44
|
.field__input-wrapper:focus-within {
|
|
45
|
-
border-color: var(
|
|
46
|
-
--hx-combobox-focus-ring-color,
|
|
47
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
|
|
48
|
-
);
|
|
45
|
+
border-color: var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
49
46
|
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
50
47
|
color-mix(
|
|
51
48
|
in srgb,
|
|
52
|
-
var(
|
|
53
|
-
--hx-combobox-focus-ring-color,
|
|
54
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
|
|
55
|
-
)
|
|
49
|
+
var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, #0f7078))
|
|
56
50
|
calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
|
|
57
51
|
transparent
|
|
58
52
|
);
|
|
@@ -128,7 +122,7 @@
|
|
|
128
122
|
}
|
|
129
123
|
.field__clear-button:focus-visible {
|
|
130
124
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
131
|
-
var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color,
|
|
125
|
+
var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
132
126
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
133
127
|
}
|
|
134
128
|
.field__loading-indicator {
|
|
@@ -161,7 +155,7 @@
|
|
|
161
155
|
z-index: var(--hx-z-index-dropdown, 1000);
|
|
162
156
|
background-color: var(--hx-combobox-listbox-bg, var(--hx-color-surface-default, #ffffff));
|
|
163
157
|
border: var(--hx-border-width-thin, 1px) solid
|
|
164
|
-
var(--hx-combobox-border-color, var(--hx-color-border-strong, #
|
|
158
|
+
var(--hx-combobox-border-color, var(--hx-color-border-strong, #66787b));
|
|
165
159
|
border-radius: var(--hx-combobox-border-radius, var(--hx-border-radius-md, 0.375rem));
|
|
166
160
|
box-shadow: var(
|
|
167
161
|
--hx-combobox-listbox-shadow,
|
|
@@ -202,7 +196,7 @@
|
|
|
202
196
|
.field__option--focused {
|
|
203
197
|
background-color: var(--hx-combobox-option-hover-bg, var(--hx-color-primary-50, #ebf8f8));
|
|
204
198
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
205
|
-
var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color,
|
|
199
|
+
var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
206
200
|
outline-offset: var(--hx-combobox-option-focus-ring-offset, -2px);
|
|
207
201
|
}
|
|
208
202
|
.field__option--focused.field__option--selected {
|
|
@@ -386,7 +380,7 @@
|
|
|
386
380
|
}
|
|
387
381
|
.field__chip-remove:focus-visible {
|
|
388
382
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
389
|
-
var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color,
|
|
383
|
+
var(--hx-combobox-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
390
384
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
391
385
|
opacity: 1;
|
|
392
386
|
}
|
|
@@ -92,10 +92,7 @@
|
|
|
92
92
|
|
|
93
93
|
.sort-btn:focus-visible {
|
|
94
94
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
95
|
-
var(
|
|
96
|
-
--hx-data-table-focus-ring-color,
|
|
97
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
|
|
98
|
-
);
|
|
95
|
+
var(--hx-data-table-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
99
96
|
outline-offset: var(--hx-focus-ring-offset, 2px);
|
|
100
97
|
border-radius: var(--hx-border-radius-sm, 2px);
|
|
101
98
|
}
|
|
@@ -197,10 +194,7 @@
|
|
|
197
194
|
[part~='td']:focus-visible,
|
|
198
195
|
[part~='th']:focus-visible {
|
|
199
196
|
outline: var(--hx-focus-ring-width, 2px) solid
|
|
200
|
-
var(
|
|
201
|
-
--hx-data-table-focus-ring-color,
|
|
202
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-500, #429797))
|
|
203
|
-
);
|
|
197
|
+
var(--hx-data-table-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
204
198
|
outline-offset: var(--hx-focus-ring-offset, -2px);
|
|
205
199
|
border-radius: var(--hx-border-radius-sm, 2px);
|
|
206
200
|
}
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
display: flex;
|
|
57
57
|
align-items: stretch;
|
|
58
58
|
border: var(--hx-border-width-thin, 1px) solid
|
|
59
|
-
var(--hx-date-picker-border-color, var(--hx-color-border-strong, #
|
|
59
|
+
var(--hx-date-picker-border-color, var(--hx-color-border-strong, #66787b));
|
|
60
60
|
border-radius: var(--hx-date-picker-border-radius, var(--hx-border-radius-md, 0.375rem));
|
|
61
61
|
background-color: var(--hx-date-picker-bg, var(--hx-color-surface-default, #ffffff));
|
|
62
62
|
transition:
|
|
@@ -66,17 +66,11 @@
|
|
|
66
66
|
}
|
|
67
67
|
|
|
68
68
|
.field__input-wrapper:focus-within {
|
|
69
|
-
border-color: var(
|
|
70
|
-
--hx-date-picker-focus-ring-color,
|
|
71
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
|
|
72
|
-
);
|
|
69
|
+
border-color: var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
73
70
|
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
74
71
|
color-mix(
|
|
75
72
|
in srgb,
|
|
76
|
-
var(
|
|
77
|
-
--hx-date-picker-focus-ring-color,
|
|
78
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
|
|
79
|
-
)
|
|
73
|
+
var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078))
|
|
80
74
|
calc(var(--hx-focus-ring-opacity, 0.25) * 100%),
|
|
81
75
|
transparent
|
|
82
76
|
);
|
|
@@ -135,7 +129,7 @@
|
|
|
135
129
|
padding: 0 var(--hx-space-3, 0.75rem);
|
|
136
130
|
border: none;
|
|
137
131
|
border-left: var(--hx-border-width-thin, 1px) solid
|
|
138
|
-
var(--hx-date-picker-border-color, var(--hx-color-border-strong, #
|
|
132
|
+
var(--hx-date-picker-border-color, var(--hx-color-border-strong, #66787b));
|
|
139
133
|
background: transparent;
|
|
140
134
|
color: var(--hx-date-picker-trigger-color, var(--hx-color-text-muted, #4a5362));
|
|
141
135
|
cursor: pointer;
|
|
@@ -145,17 +139,10 @@
|
|
|
145
139
|
}
|
|
146
140
|
|
|
147
141
|
.field__trigger:focus-visible {
|
|
148
|
-
color: var(
|
|
149
|
-
--hx-date-picker-focus-ring-color,
|
|
150
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
|
|
151
|
-
);
|
|
142
|
+
color: var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
152
143
|
background-color: color-mix(
|
|
153
144
|
in srgb,
|
|
154
|
-
var(
|
|
155
|
-
--hx-date-picker-focus-ring-color,
|
|
156
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
|
|
157
|
-
)
|
|
158
|
-
8%,
|
|
145
|
+
var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078)) 8%,
|
|
159
146
|
transparent
|
|
160
147
|
);
|
|
161
148
|
}
|
|
@@ -252,10 +239,7 @@
|
|
|
252
239
|
|
|
253
240
|
:is(.calendar__nav-btn, .calendar__day):focus-visible {
|
|
254
241
|
box-shadow: 0 0 0 var(--hx-focus-ring-width, 2px)
|
|
255
|
-
var(
|
|
256
|
-
--hx-date-picker-focus-ring-color,
|
|
257
|
-
var(--hx-focus-ring-color, var(--hx-color-primary-400, #6ab1b1))
|
|
258
|
-
);
|
|
242
|
+
var(--hx-date-picker-focus-ring-color, var(--hx-focus-ring-color, #0f7078));
|
|
259
243
|
z-index: 1;
|
|
260
244
|
}
|
|
261
245
|
|