@helixui/library 3.2.0-next.102 → 3.2.0-next.110
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 +17 -5
- package/dist/components/hx-button/hx-button.d.ts +3 -1
- 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-side-nav/hx-side-nav.d.ts +1 -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-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/css/helix-all.css +51 -11
- package/dist/css/helix-core.css +35 -7
- package/dist/css/helix-navigation.css +16 -4
- package/dist/css/hx-button.css +35 -7
- package/dist/css/hx-side-nav.css +16 -4
- package/dist/css/index.css +1 -1
- package/dist/css/manifest.json +2 -1
- package/dist/index.js +3 -3
- package/dist/shared/{hx-button-CHlkRQTe.js → hx-button-DPY6SPVT.js} +47 -19
- package/dist/shared/hx-button-DPY6SPVT.js.map +1 -0
- package/dist/shared/{hx-nav-item-Dap3DYgB.js → hx-nav-item-xqRPOCWX.js} +47 -35
- package/dist/shared/hx-nav-item-xqRPOCWX.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/figma-inventory.json +17 -2
- package/package.json +2 -2
- package/dist/shared/hx-button-CHlkRQTe.js.map +0 -1
- package/dist/shared/hx-nav-item-Dap3DYgB.js.map +0 -1
- package/dist/shared/hx-theme-BiyQ7UUK.js.map +0 -1
package/custom-elements.json
CHANGED
|
@@ -2826,7 +2826,7 @@
|
|
|
2826
2826
|
"name": "HelixButton",
|
|
2827
2827
|
"cssProperties": [
|
|
2828
2828
|
{
|
|
2829
|
-
"description": "Button background color (
|
|
2829
|
+
"description": "Button background color. **Variant-shadowed**: every `.button--{variant}` rule rebinds this property at descendant scope, so a host-level override (`style=\"--hx-button-bg: …\"` or `:host`-targeting CSS) does not reach paint for primary/secondary/tertiary/danger/ghost/outline buttons. To recolor a variant fill, override the upstream semantic instead — e.g. `--hx-color-action-primary-bg` (light primary), `--hx-color-action-primary-bg-inverted-rest` (inverted primary), `--hx-color-action-danger-bg` (danger), or the inverted overlay tokens for tertiary/secondary/ghost/outline. The `--hx-button-bg` hook still works for the rare case of an unstyled base button without a `variant` class, and is internally rebound by the variant rules to participate in the active/hover override chain.",
|
|
2830
2830
|
"name": "--hx-button-bg",
|
|
2831
2831
|
"default": "var(--hx-color-action-primary-bg)"
|
|
2832
2832
|
},
|
|
@@ -2984,6 +2984,14 @@
|
|
|
2984
2984
|
{
|
|
2985
2985
|
"description": "Inverted-secondary/outline border + inverted focus-visible outline (overlay-white-70 ≈ 5:1 — clears WCAG 1.4.11 3:1 floor).",
|
|
2986
2986
|
"name": "--hx-color-border-on-dark-strong"
|
|
2987
|
+
},
|
|
2988
|
+
{
|
|
2989
|
+
"description": "DEPRECATED 3.2.2; renamed to --hx-color-surface-on-dark-overlay-subtle (the value paints a translucent fill, not a border). Consume sites read both names via deprecated-first fallback so existing overrides keep working until removal in 4.0.0.",
|
|
2990
|
+
"name": "--hx-color-border-on-dark-subtle"
|
|
2991
|
+
},
|
|
2992
|
+
{
|
|
2993
|
+
"description": "DEPRECATED 3.2.2; renamed to --hx-color-surface-on-dark-overlay-default (the value paints a translucent fill, not a border). Consume sites read both names via deprecated-first fallback so existing overrides keep working until removal in 4.0.0.",
|
|
2994
|
+
"name": "--hx-color-border-on-dark-default"
|
|
2987
2995
|
}
|
|
2988
2996
|
],
|
|
2989
2997
|
"cssParts": [
|
|
@@ -23043,6 +23051,10 @@
|
|
|
23043
23051
|
{
|
|
23044
23052
|
"description": "Toggle button hover surface (overlay-white-10 primitive — translucent fill, not a border).",
|
|
23045
23053
|
"name": "--hx-color-surface-on-dark-overlay-subtle"
|
|
23054
|
+
},
|
|
23055
|
+
{
|
|
23056
|
+
"description": "DEPRECATED 3.2.2; renamed to --hx-color-surface-on-dark-overlay-subtle (the value paints a translucent fill, not a border). Toggle-hover rule reads both names via deprecated-first fallback so existing overrides keep working until removal in 4.0.0.",
|
|
23057
|
+
"name": "--hx-color-border-on-dark-subtle"
|
|
23046
23058
|
}
|
|
23047
23059
|
],
|
|
23048
23060
|
"cssParts": [
|
|
@@ -31020,7 +31032,7 @@
|
|
|
31020
31032
|
"text": "string"
|
|
31021
31033
|
},
|
|
31022
31034
|
"default": "''",
|
|
31023
|
-
"description": "The registered brand name to apply on top of the base theme.\nWhen set, brand-specific CSS custom property overrides are merged\nafter the base theme tokens in the adopted stylesheet, enabling\nhospital system white-label implementations.\n\nThe brand must first be registered via `HelixBrandRegistry.register()`.\nIf the brand name is non-empty but not registered, a warning is logged\nand the base theme is applied without brand overrides.",
|
|
31035
|
+
"description": "The registered brand name to apply on top of the base theme.\nWhen set, brand-specific CSS custom property overrides are merged\nafter the base theme tokens in the adopted stylesheet, enabling\nhospital system white-label implementations.\n\nThe brand must first be registered via `HelixBrandRegistry.register()`.\nIf the brand name is non-empty but not registered, a warning is logged\nand the base theme is applied without brand overrides.\n\n**High-contrast suppression:** When `theme=\"high-contrast\"`, the brand\nmerge is intentionally skipped to preserve the WCAG 1.4.6 Enhanced\nContrast (7:1+) guarantee that the HC token set is tuned for. A\nregistered brand applied under HC emits a `console.info` to surface\nthe suppression in development. Brand merging on `light` and `dark`\nis unaffected. See `BRAND_THEMING.md`.",
|
|
31024
31036
|
"attribute": "brand",
|
|
31025
31037
|
"reflects": true
|
|
31026
31038
|
},
|
|
@@ -31050,9 +31062,9 @@
|
|
|
31050
31062
|
"kind": "field",
|
|
31051
31063
|
"name": "effectiveTheme",
|
|
31052
31064
|
"type": {
|
|
31053
|
-
"text": "'light' | 'dark' | 'high-contrast'
|
|
31065
|
+
"text": "'light' | 'dark' | 'high-contrast'"
|
|
31054
31066
|
},
|
|
31055
|
-
"description": "Returns the currently active theme name.\nWhen `
|
|
31067
|
+
"description": "Returns the currently active theme name.\nWhen `theme=\"auto\"`, reflects the OS preference (`\"light\"` or `\"dark\"`).\nOtherwise returns the `theme` property value.",
|
|
31056
31068
|
"readonly": true
|
|
31057
31069
|
},
|
|
31058
31070
|
{
|
|
@@ -31082,7 +31094,7 @@
|
|
|
31082
31094
|
"text": "string"
|
|
31083
31095
|
},
|
|
31084
31096
|
"default": "''",
|
|
31085
|
-
"description": "The registered brand name to apply on top of the base theme.\nWhen set, brand-specific CSS custom property overrides are merged\nafter the base theme tokens in the adopted stylesheet, enabling\nhospital system white-label implementations.\n\nThe brand must first be registered via `HelixBrandRegistry.register()`.\nIf the brand name is non-empty but not registered, a warning is logged\nand the base theme is applied without brand overrides.",
|
|
31097
|
+
"description": "The registered brand name to apply on top of the base theme.\nWhen set, brand-specific CSS custom property overrides are merged\nafter the base theme tokens in the adopted stylesheet, enabling\nhospital system white-label implementations.\n\nThe brand must first be registered via `HelixBrandRegistry.register()`.\nIf the brand name is non-empty but not registered, a warning is logged\nand the base theme is applied without brand overrides.\n\n**High-contrast suppression:** When `theme=\"high-contrast\"`, the brand\nmerge is intentionally skipped to preserve the WCAG 1.4.6 Enhanced\nContrast (7:1+) guarantee that the HC token set is tuned for. A\nregistered brand applied under HC emits a `console.info` to surface\nthe suppression in development. Brand merging on `light` and `dark`\nis unaffected. See `BRAND_THEMING.md`.",
|
|
31086
31098
|
"fieldName": "brand",
|
|
31087
31099
|
"attribute": "brand"
|
|
31088
31100
|
},
|
|
@@ -27,7 +27,7 @@ declare const HelixButton_base: typeof HelixElement;
|
|
|
27
27
|
* @csspart suffix - The suffix slot container span.
|
|
28
28
|
* @csspart spinner - The loading spinner SVG element.
|
|
29
29
|
*
|
|
30
|
-
* @cssprop [--hx-button-bg=var(--hx-color-action-primary-bg)] - Button background color (
|
|
30
|
+
* @cssprop [--hx-button-bg=var(--hx-color-action-primary-bg)] - Button background color. **Variant-shadowed**: every `.button--{variant}` rule rebinds this property at descendant scope, so a host-level override (`style="--hx-button-bg: …"` or `:host`-targeting CSS) does not reach paint for primary/secondary/tertiary/danger/ghost/outline buttons. To recolor a variant fill, override the upstream semantic instead — e.g. `--hx-color-action-primary-bg` (light primary), `--hx-color-action-primary-bg-inverted-rest` (inverted primary), `--hx-color-action-danger-bg` (danger), or the inverted overlay tokens for tertiary/secondary/ghost/outline. The `--hx-button-bg` hook still works for the rare case of an unstyled base button without a `variant` class, and is internally rebound by the variant rules to participate in the active/hover override chain.
|
|
31
31
|
* @cssprop [--hx-button-hover-bg] - Hover background override (primary and danger variants only). Other variants (secondary/outline, ghost) keep their hover fills routed through their semantic action.* tokens and do not consume this hook. Under [inverted] for primary/danger, hover and active share a paint (combined :hover, :active rule), so this override applies to both states unless --hx-button-active-bg also takes precedence.
|
|
32
32
|
* @cssprop [--hx-button-active-bg] - Pressed/active background override (primary and danger variants only, including their inverted modes). Takes precedence over --hx-button-hover-bg in the fallback chain. Standard-mode primary/danger default to action.{primary,danger}.bg-active (with filter:none) for AA-pinned pressed contrast. Inverted-mode primary/danger reuse action.{primary,danger}.bg-inverted-hover (combined :hover, :active rule); setting --hx-button-active-bg under [inverted] therefore overrides the lifted hover fill as well as the pressed fill — the two share a paint in inverted mode. Other variants do not consume this hook.
|
|
33
33
|
* @cssprop [--hx-button-color=var(--hx-color-text-on-primary)] - Button text color (variants route through text.on-{role} / text.on-{role}-strong).
|
|
@@ -66,6 +66,8 @@ declare const HelixButton_base: typeof HelixElement;
|
|
|
66
66
|
* @cssprop [--hx-color-surface-on-dark-overlay-subtle] - Inverted-tertiary resting fill (overlay-white-10 — translucent fill, not a border).
|
|
67
67
|
* @cssprop [--hx-color-surface-on-dark-overlay-default] - Inverted-tertiary hover fill + inverted-secondary/ghost/outline hover fill (overlay-white-30 — translucent fill, not a border).
|
|
68
68
|
* @cssprop [--hx-color-border-on-dark-strong] - Inverted-secondary/outline border + inverted focus-visible outline (overlay-white-70 ≈ 5:1 — clears WCAG 1.4.11 3:1 floor).
|
|
69
|
+
* @cssprop [--hx-color-border-on-dark-subtle] - DEPRECATED 3.2.2; renamed to --hx-color-surface-on-dark-overlay-subtle (the value paints a translucent fill, not a border). Consume sites read both names via deprecated-first fallback so existing overrides keep working until removal in 4.0.0.
|
|
70
|
+
* @cssprop [--hx-color-border-on-dark-default] - DEPRECATED 3.2.2; renamed to --hx-color-surface-on-dark-overlay-default (the value paints a translucent fill, not a border). Consume sites read both names via deprecated-first fallback so existing overrides keep working until removal in 4.0.0.
|
|
69
71
|
*/
|
|
70
72
|
export declare class HelixButton extends HelixButton_base {
|
|
71
73
|
static styles: import('lit').CSSResult[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-button.d.ts","sourceRoot":"","sources":["../../../src/components/hx-button/hx-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC9E,OAAO,4CAA4C,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,UAAU,CAAC;CAC3B;;AAED
|
|
1
|
+
{"version":3,"file":"hx-button.d.ts","sourceRoot":"","sources":["../../../src/components/hx-button/hx-button.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAC9E,OAAO,4CAA4C,CAAC;AAIpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKnD,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,UAAU,CAAC;CAC3B;;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,qBACa,WAAY,SAAQ,gBAAgC;IAM/D,OAAgB,MAAM,4BAAuB;IAI7C,gBAAgB;IAChB,OAAgB,cAAc,UAAQ;IAItC;;;OAGG;IAEH,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAa;IAE3F;;;OAGG;IAEH,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAQ;IAEhC;;;OAGG;IAEH,QAAQ,UAAS;IAEjB;;;;OAIG;IAEH,OAAO,UAAS;IAEhB;;;OAGG;IAEH,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAY;IAE/C;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;OAGG;IAEH,MAAM,EAAE,MAAM,GAAG,SAAS,CAAa;IAEvC;;;OAGG;IAEH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAa;IAErC;;;OAGG;IAEH,KAAK,EAAE,MAAM,GAAG,SAAS,CAAa;IAEtC;;;;OAIG;IAEH,IAAI,UAAS;IAEb;;;;;;;;;;;;;;OAcG;IAEH,QAAQ,UAAS;IAEjB;;;;;;;;OAQG;IAEH,eAAe,EAAE,MAAM,CAAM;IAE7B;;;;OAIG;IACH,OAAO,KAAK,eAAe,GAE1B;cAIkB,eAAe,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAM3D,gBAAgB;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAO5B;IAGX,OAAO,CAAC,qBAAqB,CAAS;IAE7B,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAe3D,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAgB/D,gBAAgB;IAChB,OAAO,CAAC,wBAAwB;IAoBhC;;;OAGG;IACH,OAAO,CAAC,YAAY;IAgCpB;;;OAGG;IACH,OAAO,CAAC,cAAc;IA6BtB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAiBX,MAAM;CAyChB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,WAAW,CAAC;KAC1B;IACD,UAAU,mBAAmB;QAC3B,UAAU,EAAE,WAAW,CAAC;YAAE,aAAa,EAAE,UAAU,CAAA;SAAE,CAAC,CAAC;KACxD;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-button/hx-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"hx-button.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-button/hx-button.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,iBAAiB,yBAic7B,CAAC"}
|
|
@@ -34,6 +34,7 @@ import { HelixElement } from '../../base/index.js';
|
|
|
34
34
|
* @cssprop [--hx-color-text-inverse] - Side-nav text color (resolves to neutral-0).
|
|
35
35
|
* @cssprop [--hx-color-border-on-dark-strong] - Container/header/footer divider border (overlay-white-70 light, overlay-black-50 dark — sized for visibility on the mode-flipped surface-inverse).
|
|
36
36
|
* @cssprop [--hx-color-surface-on-dark-overlay-subtle] - Toggle button hover surface (overlay-white-10 primitive — translucent fill, not a border).
|
|
37
|
+
* @cssprop [--hx-color-border-on-dark-subtle] - DEPRECATED 3.2.2; renamed to --hx-color-surface-on-dark-overlay-subtle (the value paints a translucent fill, not a border). Toggle-hover rule reads both names via deprecated-first fallback so existing overrides keep working until removal in 4.0.0.
|
|
37
38
|
*/
|
|
38
39
|
export declare class HelixSideNav extends HelixElement {
|
|
39
40
|
static styles: import('lit').CSSResult[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-side-nav.d.ts","sourceRoot":"","sources":["../../../src/components/hx-side-nav/hx-side-nav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD
|
|
1
|
+
{"version":3,"file":"hx-side-nav.d.ts","sourceRoot":"","sources":["../../../src/components/hx-side-nav/hx-side-nav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBACa,YAAa,SAAQ,YAAY;IAI5C,OAAgB,MAAM,4BAAwB;IAI9C;;;OAGG;IAEH,SAAS,UAAS;IAElB;;;OAGG;IAEH,KAAK,SAAqB;IAIjB,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAS/D;;;;OAIG;IACH,gBAAgB;IAChB,OAAO,CAAC,6BAA6B;IAkBrC;;;OAGG;IACH,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IAM5B;;;;;OAKG;IACH,gBAAgB;IAChB,OAAO,CAAC,cAAc;IAgItB,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAgCrB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAQhB,MAAM;CA0BhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,YAAY,CAAC;KAC7B;CACF;AAED,YAAY,EAAE,YAAY,IAAI,SAAS,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-side-nav.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-side-nav/hx-side-nav.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"hx-side-nav.styles.d.ts","sourceRoot":"","sources":["../../../src/components/hx-side-nav/hx-side-nav.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,yBA4M9B,CAAC"}
|
|
@@ -101,6 +101,13 @@ export declare class HelixTheme extends HelixElement {
|
|
|
101
101
|
* If the brand name is non-empty but not registered, a warning is logged
|
|
102
102
|
* and the base theme is applied without brand overrides.
|
|
103
103
|
*
|
|
104
|
+
* **High-contrast suppression:** When `theme="high-contrast"`, the brand
|
|
105
|
+
* merge is intentionally skipped to preserve the WCAG 1.4.6 Enhanced
|
|
106
|
+
* Contrast (7:1+) guarantee that the HC token set is tuned for. A
|
|
107
|
+
* registered brand applied under HC emits a `console.info` to surface
|
|
108
|
+
* the suppression in development. Brand merging on `light` and `dark`
|
|
109
|
+
* is unaffected. See `BRAND_THEMING.md`.
|
|
110
|
+
*
|
|
104
111
|
* @attr brand
|
|
105
112
|
* @example
|
|
106
113
|
* ```html
|
|
@@ -143,15 +150,20 @@ export declare class HelixTheme extends HelixElement {
|
|
|
143
150
|
private _motionQuery;
|
|
144
151
|
/** @internal */
|
|
145
152
|
private _motionHandler;
|
|
153
|
+
/** @internal — last `${brand}|${effectiveTheme}|${kind}` for which a brand
|
|
154
|
+
* suppression info / unregistered warn was emitted. `_applyEffectiveTheme()`
|
|
155
|
+
* runs on every relevant property change, so without this guard the message
|
|
156
|
+
* fires once per `update()` tick rather than once per applied state. */
|
|
157
|
+
private _lastBrandAdvisoryKey;
|
|
146
158
|
firstUpdated(changed: PropertyValues<this>): void;
|
|
147
159
|
updated(changed: PropertyValues<this>): void;
|
|
148
160
|
disconnectedCallback(): void;
|
|
149
161
|
/**
|
|
150
162
|
* Returns the currently active theme name.
|
|
151
|
-
* When `
|
|
163
|
+
* When `theme="auto"`, reflects the OS preference (`"light"` or `"dark"`).
|
|
152
164
|
* Otherwise returns the `theme` property value.
|
|
153
165
|
*/
|
|
154
|
-
get effectiveTheme(): 'light' | 'dark' | 'high-contrast'
|
|
166
|
+
get effectiveTheme(): 'light' | 'dark' | 'high-contrast';
|
|
155
167
|
/**
|
|
156
168
|
* Returns the resolved motion level after considering the `motion` attribute and OS preference.
|
|
157
169
|
* When `motion="full"` and the OS reports `prefers-reduced-motion: reduce`, returns `"reduced"`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hx-theme.d.ts","sourceRoot":"","sources":["../../../src/components/hx-theme/hx-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"hx-theme.d.ts","sourceRoot":"","sources":["../../../src/components/hx-theme/hx-theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAChD,OAAO,4CAA4C,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAUnD,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEnE;;;;;GAKG;AACH,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,SAAS,GAAG,UAAU,CAAC;AAEjE;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAC;AA+HpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AACH,qBACa,UAAW,SAAQ,YAAY;IAC1C,OAAgB,MAAM,4BAAsB;IAE5C;;;;;;;OAOG;IAEH,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,eAAe,GAAG,MAAM,CAAW;IAK7D;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IAEH,KAAK,SAAM;IAEX;;;;;;;;;;;OAWG;IAEH,MAAM,EAAE,UAAU,CAAU;IAE5B;;;;;;OAMG;IAEH,OAAO,EAAE,WAAW,CAAiB;IAErC,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAA+B;IAClD,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAA6B;IAClD,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAA8B;IACjD,gBAAgB;IAChB,OAAO,CAAC,aAAa,CAA8B;IACnD,4DAA4D;IAC5D,OAAO,CAAC,YAAY,CAA+B;IACnD,gBAAgB;IAChB,OAAO,CAAC,cAAc,CAA6B;IACnD;;;4EAGwE;IACxE,OAAO,CAAC,qBAAqB,CAAuB;IAE3C,YAAY,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAWjD,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IA2B5C,oBAAoB,IAAI,IAAI;IAMrC;;;;OAIG;IACH,IAAI,cAAc,IAAI,OAAO,GAAG,MAAM,GAAG,eAAe,CAMvD;IAED;;;;OAIG;IACH,IAAI,eAAe,IAAI,MAAM,GAAG,SAAS,CASxC;IAED,gBAAgB;IAChB,OAAO,CAAC,eAAe;IAcvB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAUzB,gBAAgB;IAChB,OAAO,CAAC,iBAAiB;IAQzB,+EAA+E;IAC/E,OAAO,CAAC,kBAAkB;IAS1B,gBAAgB;IAChB,OAAO,CAAC,kBAAkB;IAQ1B,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB;IAO5B,gBAAgB;IAChB,OAAO,CAAC,oBAAoB;IAgE5B,gBAAgB;IAChB,OAAO,CAAC,aAAa;IAcZ,MAAM;CAQhB;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,UAAU,CAAC;KACxB;CACF;AAED,6FAA6F;AAC7F,MAAM,MAAM,OAAO,GAAG,UAAU,CAAC"}
|
package/dist/css/helix-all.css
CHANGED
|
@@ -1289,8 +1289,16 @@
|
|
|
1289
1289
|
so dark mode can flip the fill to primary-600. surface.inverse becomes light
|
|
1290
1290
|
(#EBEEE9) in dark mode; primary-500 on #EBEEE9 = 2.94:1 (sub-3:1 UI floor
|
|
1291
1291
|
fail for the inverted-button boundary). primary-600 on #EBEEE9 = 4.97:1
|
|
1292
|
-
(AA pass). Light mode tracks action.primary.bg
|
|
1293
|
-
dark surface.inverse).
|
|
1292
|
+
(AA pass). Light mode tracks action.primary.bg-inverted-rest's base value
|
|
1293
|
+
(primary-500, 5.20:1 on dark surface.inverse).
|
|
1294
|
+
|
|
1295
|
+
Override path note (codex round-11): this binds --hx-button-bg directly,
|
|
1296
|
+
matching the cascade convention every other .button--{variant} rule uses
|
|
1297
|
+
(light primary at line 89, danger at 120, secondary, tertiary, ghost). The
|
|
1298
|
+
consumer override path for inverted-primary rest is
|
|
1299
|
+
--hx-color-action-primary-bg-inverted-rest, NOT --hx-button-bg — the same
|
|
1300
|
+
pattern as light primary (consumers override --hx-color-action-primary-bg).
|
|
1301
|
+
Pinned by dark-mode-resolution.test.ts:185-197 across both modes. */
|
|
1294
1302
|
:host([inverted]) .button--primary {
|
|
1295
1303
|
--hx-button-bg: var(--hx-color-action-primary-bg-inverted-rest, #429797);
|
|
1296
1304
|
}
|
|
@@ -1342,20 +1350,34 @@
|
|
|
1342
1350
|
--hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
1343
1351
|
}
|
|
1344
1352
|
|
|
1353
|
+
/* Inverted overlay fills read both names so consumer overrides reach paint
|
|
1354
|
+
regardless of which token they target: the deprecated --hx-color-border-on-dark-*
|
|
1355
|
+
names (3.2.0/3.2.1 public API, scheduled for removal in 4.0.0) and the canonical
|
|
1356
|
+
--hx-color-surface-on-dark-overlay-* names (round-8 rename). Deprecated name
|
|
1357
|
+
wins when set; otherwise resolves through the canonical alias chain. */
|
|
1345
1358
|
:host([inverted]) .button--secondary:hover {
|
|
1346
|
-
--hx-button-bg: var(
|
|
1359
|
+
--hx-button-bg: var(
|
|
1360
|
+
--hx-color-border-on-dark-default,
|
|
1361
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
1362
|
+
);
|
|
1347
1363
|
}
|
|
1348
1364
|
|
|
1349
1365
|
/* Tertiary inverted — resting at the subtle overlay (10%) lifts to the default
|
|
1350
1366
|
overlay (30%) on hover so the runtime hover delta is visually distinct, not
|
|
1351
1367
|
collapsed onto a single token. */
|
|
1352
1368
|
:host([inverted]) .button--tertiary {
|
|
1353
|
-
--hx-button-bg: var(
|
|
1369
|
+
--hx-button-bg: var(
|
|
1370
|
+
--hx-color-border-on-dark-subtle,
|
|
1371
|
+
var(--hx-color-surface-on-dark-overlay-subtle, rgba(255, 255, 255, 0.1))
|
|
1372
|
+
);
|
|
1354
1373
|
--hx-button-border-color: transparent;
|
|
1355
1374
|
}
|
|
1356
1375
|
|
|
1357
1376
|
:host([inverted]) .button--tertiary:hover {
|
|
1358
|
-
--hx-button-bg: var(
|
|
1377
|
+
--hx-button-bg: var(
|
|
1378
|
+
--hx-color-border-on-dark-default,
|
|
1379
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
1380
|
+
);
|
|
1359
1381
|
}
|
|
1360
1382
|
|
|
1361
1383
|
/* Ghost inverted — transparent base, translucent hover bg */
|
|
@@ -1367,7 +1389,10 @@
|
|
|
1367
1389
|
:host([inverted]) .button--ghost:hover {
|
|
1368
1390
|
--hx-button-bg: var(
|
|
1369
1391
|
--hx-button-inverted-ghost-hover-bg,
|
|
1370
|
-
var(
|
|
1392
|
+
var(
|
|
1393
|
+
--hx-color-border-on-dark-default,
|
|
1394
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
1395
|
+
)
|
|
1371
1396
|
);
|
|
1372
1397
|
}
|
|
1373
1398
|
|
|
@@ -1377,7 +1402,10 @@
|
|
|
1377
1402
|
}
|
|
1378
1403
|
|
|
1379
1404
|
:host([inverted]) .button--outline:hover {
|
|
1380
|
-
--hx-button-bg: var(
|
|
1405
|
+
--hx-button-bg: var(
|
|
1406
|
+
--hx-color-border-on-dark-default,
|
|
1407
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
1408
|
+
);
|
|
1381
1409
|
}
|
|
1382
1410
|
|
|
1383
1411
|
/* ─── Prefix / Suffix / Label ─── */
|
|
@@ -8740,16 +8768,28 @@ export const helixGridItemStyles = css`
|
|
|
8740
8768
|
}
|
|
8741
8769
|
|
|
8742
8770
|
.side-nav__toggle:hover {
|
|
8771
|
+
/* Read both deprecated --hx-color-border-on-dark-subtle (3.2.0/3.2.1 API)
|
|
8772
|
+
and canonical --hx-color-surface-on-dark-overlay-subtle so consumer
|
|
8773
|
+
overrides on either name reach paint. Deprecated removal: 4.0.0.
|
|
8774
|
+
Hex fallback for browsers without color-mix(). */
|
|
8743
8775
|
background-color: var(
|
|
8744
|
-
--hx-color-
|
|
8745
|
-
rgba(255, 255, 255, 0.1)
|
|
8746
|
-
);
|
|
8776
|
+
--hx-color-border-on-dark-subtle,
|
|
8777
|
+
var(--hx-color-surface-on-dark-overlay-subtle, rgba(255, 255, 255, 0.1))
|
|
8778
|
+
);
|
|
8747
8779
|
color: var(--hx-side-nav-toggle-hover-color, var(--hx-color-text-inverse, #ffffff));
|
|
8748
8780
|
}
|
|
8749
8781
|
|
|
8750
8782
|
@supports (color: color-mix(in srgb, red 50%, blue)) {
|
|
8783
|
+
/* Fold color-mix() into the same deprecated-first chain so consumer
|
|
8784
|
+
overrides on either token reach paint on the modern path too. */
|
|
8751
8785
|
.side-nav__toggle:hover {
|
|
8752
|
-
background-color:
|
|
8786
|
+
background-color: var(
|
|
8787
|
+
--hx-color-border-on-dark-subtle,
|
|
8788
|
+
var(
|
|
8789
|
+
--hx-color-surface-on-dark-overlay-subtle,
|
|
8790
|
+
color-mix(in srgb, currentColor 15%, transparent)
|
|
8791
|
+
)
|
|
8792
|
+
);
|
|
8753
8793
|
}
|
|
8754
8794
|
}
|
|
8755
8795
|
|
package/dist/css/helix-core.css
CHANGED
|
@@ -621,8 +621,16 @@
|
|
|
621
621
|
so dark mode can flip the fill to primary-600. surface.inverse becomes light
|
|
622
622
|
(#EBEEE9) in dark mode; primary-500 on #EBEEE9 = 2.94:1 (sub-3:1 UI floor
|
|
623
623
|
fail for the inverted-button boundary). primary-600 on #EBEEE9 = 4.97:1
|
|
624
|
-
(AA pass). Light mode tracks action.primary.bg
|
|
625
|
-
dark surface.inverse).
|
|
624
|
+
(AA pass). Light mode tracks action.primary.bg-inverted-rest's base value
|
|
625
|
+
(primary-500, 5.20:1 on dark surface.inverse).
|
|
626
|
+
|
|
627
|
+
Override path note (codex round-11): this binds --hx-button-bg directly,
|
|
628
|
+
matching the cascade convention every other .button--{variant} rule uses
|
|
629
|
+
(light primary at line 89, danger at 120, secondary, tertiary, ghost). The
|
|
630
|
+
consumer override path for inverted-primary rest is
|
|
631
|
+
--hx-color-action-primary-bg-inverted-rest, NOT --hx-button-bg — the same
|
|
632
|
+
pattern as light primary (consumers override --hx-color-action-primary-bg).
|
|
633
|
+
Pinned by dark-mode-resolution.test.ts:185-197 across both modes. */
|
|
626
634
|
:host([inverted]) .button--primary {
|
|
627
635
|
--hx-button-bg: var(--hx-color-action-primary-bg-inverted-rest, #429797);
|
|
628
636
|
}
|
|
@@ -674,20 +682,34 @@
|
|
|
674
682
|
--hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
675
683
|
}
|
|
676
684
|
|
|
685
|
+
/* Inverted overlay fills read both names so consumer overrides reach paint
|
|
686
|
+
regardless of which token they target: the deprecated --hx-color-border-on-dark-*
|
|
687
|
+
names (3.2.0/3.2.1 public API, scheduled for removal in 4.0.0) and the canonical
|
|
688
|
+
--hx-color-surface-on-dark-overlay-* names (round-8 rename). Deprecated name
|
|
689
|
+
wins when set; otherwise resolves through the canonical alias chain. */
|
|
677
690
|
:host([inverted]) .button--secondary:hover {
|
|
678
|
-
--hx-button-bg: var(
|
|
691
|
+
--hx-button-bg: var(
|
|
692
|
+
--hx-color-border-on-dark-default,
|
|
693
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
694
|
+
);
|
|
679
695
|
}
|
|
680
696
|
|
|
681
697
|
/* Tertiary inverted — resting at the subtle overlay (10%) lifts to the default
|
|
682
698
|
overlay (30%) on hover so the runtime hover delta is visually distinct, not
|
|
683
699
|
collapsed onto a single token. */
|
|
684
700
|
:host([inverted]) .button--tertiary {
|
|
685
|
-
--hx-button-bg: var(
|
|
701
|
+
--hx-button-bg: var(
|
|
702
|
+
--hx-color-border-on-dark-subtle,
|
|
703
|
+
var(--hx-color-surface-on-dark-overlay-subtle, rgba(255, 255, 255, 0.1))
|
|
704
|
+
);
|
|
686
705
|
--hx-button-border-color: transparent;
|
|
687
706
|
}
|
|
688
707
|
|
|
689
708
|
:host([inverted]) .button--tertiary:hover {
|
|
690
|
-
--hx-button-bg: var(
|
|
709
|
+
--hx-button-bg: var(
|
|
710
|
+
--hx-color-border-on-dark-default,
|
|
711
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
712
|
+
);
|
|
691
713
|
}
|
|
692
714
|
|
|
693
715
|
/* Ghost inverted — transparent base, translucent hover bg */
|
|
@@ -699,7 +721,10 @@
|
|
|
699
721
|
:host([inverted]) .button--ghost:hover {
|
|
700
722
|
--hx-button-bg: var(
|
|
701
723
|
--hx-button-inverted-ghost-hover-bg,
|
|
702
|
-
var(
|
|
724
|
+
var(
|
|
725
|
+
--hx-color-border-on-dark-default,
|
|
726
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
727
|
+
)
|
|
703
728
|
);
|
|
704
729
|
}
|
|
705
730
|
|
|
@@ -709,7 +734,10 @@
|
|
|
709
734
|
}
|
|
710
735
|
|
|
711
736
|
:host([inverted]) .button--outline:hover {
|
|
712
|
-
--hx-button-bg: var(
|
|
737
|
+
--hx-button-bg: var(
|
|
738
|
+
--hx-color-border-on-dark-default,
|
|
739
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
740
|
+
);
|
|
713
741
|
}
|
|
714
742
|
|
|
715
743
|
/* ─── Prefix / Suffix / Label ─── */
|
|
@@ -825,16 +825,28 @@
|
|
|
825
825
|
}
|
|
826
826
|
|
|
827
827
|
.side-nav__toggle:hover {
|
|
828
|
+
/* Read both deprecated --hx-color-border-on-dark-subtle (3.2.0/3.2.1 API)
|
|
829
|
+
and canonical --hx-color-surface-on-dark-overlay-subtle so consumer
|
|
830
|
+
overrides on either name reach paint. Deprecated removal: 4.0.0.
|
|
831
|
+
Hex fallback for browsers without color-mix(). */
|
|
828
832
|
background-color: var(
|
|
829
|
-
--hx-color-
|
|
830
|
-
rgba(255, 255, 255, 0.1)
|
|
831
|
-
);
|
|
833
|
+
--hx-color-border-on-dark-subtle,
|
|
834
|
+
var(--hx-color-surface-on-dark-overlay-subtle, rgba(255, 255, 255, 0.1))
|
|
835
|
+
);
|
|
832
836
|
color: var(--hx-side-nav-toggle-hover-color, var(--hx-color-text-inverse, #ffffff));
|
|
833
837
|
}
|
|
834
838
|
|
|
835
839
|
@supports (color: color-mix(in srgb, red 50%, blue)) {
|
|
840
|
+
/* Fold color-mix() into the same deprecated-first chain so consumer
|
|
841
|
+
overrides on either token reach paint on the modern path too. */
|
|
836
842
|
.side-nav__toggle:hover {
|
|
837
|
-
background-color:
|
|
843
|
+
background-color: var(
|
|
844
|
+
--hx-color-border-on-dark-subtle,
|
|
845
|
+
var(
|
|
846
|
+
--hx-color-surface-on-dark-overlay-subtle,
|
|
847
|
+
color-mix(in srgb, currentColor 15%, transparent)
|
|
848
|
+
)
|
|
849
|
+
);
|
|
838
850
|
}
|
|
839
851
|
}
|
|
840
852
|
|
package/dist/css/hx-button.css
CHANGED
|
@@ -272,8 +272,16 @@
|
|
|
272
272
|
so dark mode can flip the fill to primary-600. surface.inverse becomes light
|
|
273
273
|
(#EBEEE9) in dark mode; primary-500 on #EBEEE9 = 2.94:1 (sub-3:1 UI floor
|
|
274
274
|
fail for the inverted-button boundary). primary-600 on #EBEEE9 = 4.97:1
|
|
275
|
-
(AA pass). Light mode tracks action.primary.bg
|
|
276
|
-
dark surface.inverse).
|
|
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. */
|
|
277
285
|
:host([inverted]) .button--primary {
|
|
278
286
|
--hx-button-bg: var(--hx-color-action-primary-bg-inverted-rest, #429797);
|
|
279
287
|
}
|
|
@@ -325,20 +333,34 @@
|
|
|
325
333
|
--hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
326
334
|
}
|
|
327
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. */
|
|
328
341
|
:host([inverted]) .button--secondary:hover {
|
|
329
|
-
--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
|
+
);
|
|
330
346
|
}
|
|
331
347
|
|
|
332
348
|
/* Tertiary inverted — resting at the subtle overlay (10%) lifts to the default
|
|
333
349
|
overlay (30%) on hover so the runtime hover delta is visually distinct, not
|
|
334
350
|
collapsed onto a single token. */
|
|
335
351
|
:host([inverted]) .button--tertiary {
|
|
336
|
-
--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
|
+
);
|
|
337
356
|
--hx-button-border-color: transparent;
|
|
338
357
|
}
|
|
339
358
|
|
|
340
359
|
:host([inverted]) .button--tertiary:hover {
|
|
341
|
-
--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
|
+
);
|
|
342
364
|
}
|
|
343
365
|
|
|
344
366
|
/* Ghost inverted — transparent base, translucent hover bg */
|
|
@@ -350,7 +372,10 @@
|
|
|
350
372
|
:host([inverted]) .button--ghost:hover {
|
|
351
373
|
--hx-button-bg: var(
|
|
352
374
|
--hx-button-inverted-ghost-hover-bg,
|
|
353
|
-
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
|
+
)
|
|
354
379
|
);
|
|
355
380
|
}
|
|
356
381
|
|
|
@@ -360,7 +385,10 @@
|
|
|
360
385
|
}
|
|
361
386
|
|
|
362
387
|
:host([inverted]) .button--outline:hover {
|
|
363
|
-
--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
|
+
);
|
|
364
392
|
}
|
|
365
393
|
|
|
366
394
|
/* ─── Prefix / Suffix / Label ─── */
|
package/dist/css/hx-side-nav.css
CHANGED
|
@@ -112,16 +112,28 @@
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
.side-nav__toggle:hover {
|
|
115
|
+
/* Read both deprecated --hx-color-border-on-dark-subtle (3.2.0/3.2.1 API)
|
|
116
|
+
and canonical --hx-color-surface-on-dark-overlay-subtle so consumer
|
|
117
|
+
overrides on either name reach paint. Deprecated removal: 4.0.0.
|
|
118
|
+
Hex fallback for browsers without color-mix(). */
|
|
115
119
|
background-color: var(
|
|
116
|
-
--hx-color-
|
|
117
|
-
rgba(255, 255, 255, 0.1)
|
|
118
|
-
);
|
|
120
|
+
--hx-color-border-on-dark-subtle,
|
|
121
|
+
var(--hx-color-surface-on-dark-overlay-subtle, rgba(255, 255, 255, 0.1))
|
|
122
|
+
);
|
|
119
123
|
color: var(--hx-side-nav-toggle-hover-color, var(--hx-color-text-inverse, #ffffff));
|
|
120
124
|
}
|
|
121
125
|
|
|
122
126
|
@supports (color: color-mix(in srgb, red 50%, blue)) {
|
|
127
|
+
/* Fold color-mix() into the same deprecated-first chain so consumer
|
|
128
|
+
overrides on either token reach paint on the modern path too. */
|
|
123
129
|
.side-nav__toggle:hover {
|
|
124
|
-
background-color:
|
|
130
|
+
background-color: var(
|
|
131
|
+
--hx-color-border-on-dark-subtle,
|
|
132
|
+
var(
|
|
133
|
+
--hx-color-surface-on-dark-overlay-subtle,
|
|
134
|
+
color-mix(in srgb, currentColor 15%, transparent)
|
|
135
|
+
)
|
|
136
|
+
);
|
|
125
137
|
}
|
|
126
138
|
}
|
|
127
139
|
|
package/dist/css/index.css
CHANGED
package/dist/css/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generated": "2026-04-
|
|
2
|
+
"generated": "2026-04-27T02:39:11.227Z",
|
|
3
3
|
"components": [
|
|
4
4
|
{
|
|
5
5
|
"name": "hx-accordion",
|
|
@@ -1771,6 +1771,7 @@
|
|
|
1771
1771
|
"--hx-border-width-thin",
|
|
1772
1772
|
"--hx-color-border-on-dark-strong",
|
|
1773
1773
|
"--hx-color-surface-inverse",
|
|
1774
|
+
"--hx-color-surface-on-dark-overlay-subtle",
|
|
1774
1775
|
"--hx-color-text-inverse",
|
|
1775
1776
|
"--hx-focus-ring-color",
|
|
1776
1777
|
"--hx-focus-ring-offset",
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,7 @@ import { H as v } from "./shared/hx-avatar-C9hOmlAb.js";
|
|
|
6
6
|
import { H as E } from "./shared/hx-badge-CQXgOXJM.js";
|
|
7
7
|
import { H as k } from "./shared/hx-banner-D3DzpfcP.js";
|
|
8
8
|
import { H as B, a as P } from "./shared/hx-breadcrumb-item-3tKppF9h.js";
|
|
9
|
-
import { H as M } from "./shared/hx-button-
|
|
9
|
+
import { H as M } from "./shared/hx-button-DPY6SPVT.js";
|
|
10
10
|
import { H as N } from "./shared/hx-button-group-BI-QBqmO.js";
|
|
11
11
|
import { H as A } from "./shared/hx-card-qNAM2QNV.js";
|
|
12
12
|
import { H as G, a as U } from "./shared/hx-carousel-item-z1Lc24op.js";
|
|
@@ -53,7 +53,7 @@ import { H as So } from "./shared/hx-prose-BThYcASV.js";
|
|
|
53
53
|
import { H as To, a as bo } from "./shared/hx-radio-CJvNU2yP.js";
|
|
54
54
|
import { H as go } from "./shared/hx-rating-C3QP53k9.js";
|
|
55
55
|
import { H as vo } from "./shared/hx-select-C8fEHQhC.js";
|
|
56
|
-
import { H as Eo, a as Do } from "./shared/hx-nav-item-
|
|
56
|
+
import { H as Eo, a as Do } from "./shared/hx-nav-item-xqRPOCWX.js";
|
|
57
57
|
import { H as wo } from "./shared/hx-skeleton-Cnieh5Uc.js";
|
|
58
58
|
import { H as Po } from "./shared/hx-slider-Blmv_rwS.js";
|
|
59
59
|
import { H as Mo } from "./shared/hx-spinner-DL5AYr16.js";
|
|
@@ -72,7 +72,7 @@ import { H as ct } from "./shared/hx-tag-CNSmdyaK.js";
|
|
|
72
72
|
import { H as ht } from "./shared/hx-text-Bz_9fJ3J.js";
|
|
73
73
|
import { F as St, H as yt } from "./shared/hx-text-input-D6FlOZM-.js";
|
|
74
74
|
import { H as bt } from "./shared/hx-textarea-CNG590KY.js";
|
|
75
|
-
import { H as gt } from "./shared/hx-theme-
|
|
75
|
+
import { H as gt } from "./shared/hx-theme-BsefFWTO.js";
|
|
76
76
|
import { H as vt } from "./shared/hx-time-picker-BoEIZwzv.js";
|
|
77
77
|
import { H as Et, a as Dt, t as kt } from "./shared/toast-factory-YSznocIV.js";
|
|
78
78
|
import { H as Bt } from "./shared/hx-toggle-button-iLiYrMbD.js";
|