@helixui/library 3.2.0-next.104 → 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 +41 -9
- package/dist/css/helix-core.css +25 -5
- package/dist/css/helix-navigation.css +16 -4
- package/dist/css/helix-tokens.css +0 -8
- package/dist/css/hx-button.css +25 -5
- 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-DVSDRKoV.js → hx-button-DPY6SPVT.js} +26 -6
- 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-DVSDRKoV.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
|
@@ -1350,20 +1350,34 @@
|
|
|
1350
1350
|
--hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
1351
1351
|
}
|
|
1352
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. */
|
|
1353
1358
|
:host([inverted]) .button--secondary:hover {
|
|
1354
|
-
--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
|
+
);
|
|
1355
1363
|
}
|
|
1356
1364
|
|
|
1357
1365
|
/* Tertiary inverted — resting at the subtle overlay (10%) lifts to the default
|
|
1358
1366
|
overlay (30%) on hover so the runtime hover delta is visually distinct, not
|
|
1359
1367
|
collapsed onto a single token. */
|
|
1360
1368
|
:host([inverted]) .button--tertiary {
|
|
1361
|
-
--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
|
+
);
|
|
1362
1373
|
--hx-button-border-color: transparent;
|
|
1363
1374
|
}
|
|
1364
1375
|
|
|
1365
1376
|
:host([inverted]) .button--tertiary:hover {
|
|
1366
|
-
--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
|
+
);
|
|
1367
1381
|
}
|
|
1368
1382
|
|
|
1369
1383
|
/* Ghost inverted — transparent base, translucent hover bg */
|
|
@@ -1375,7 +1389,10 @@
|
|
|
1375
1389
|
:host([inverted]) .button--ghost:hover {
|
|
1376
1390
|
--hx-button-bg: var(
|
|
1377
1391
|
--hx-button-inverted-ghost-hover-bg,
|
|
1378
|
-
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
|
+
)
|
|
1379
1396
|
);
|
|
1380
1397
|
}
|
|
1381
1398
|
|
|
@@ -1385,7 +1402,10 @@
|
|
|
1385
1402
|
}
|
|
1386
1403
|
|
|
1387
1404
|
:host([inverted]) .button--outline:hover {
|
|
1388
|
-
--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
|
+
);
|
|
1389
1409
|
}
|
|
1390
1410
|
|
|
1391
1411
|
/* ─── Prefix / Suffix / Label ─── */
|
|
@@ -8748,16 +8768,28 @@ export const helixGridItemStyles = css`
|
|
|
8748
8768
|
}
|
|
8749
8769
|
|
|
8750
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(). */
|
|
8751
8775
|
background-color: var(
|
|
8752
|
-
--hx-color-
|
|
8753
|
-
rgba(255, 255, 255, 0.1)
|
|
8754
|
-
);
|
|
8776
|
+
--hx-color-border-on-dark-subtle,
|
|
8777
|
+
var(--hx-color-surface-on-dark-overlay-subtle, rgba(255, 255, 255, 0.1))
|
|
8778
|
+
);
|
|
8755
8779
|
color: var(--hx-side-nav-toggle-hover-color, var(--hx-color-text-inverse, #ffffff));
|
|
8756
8780
|
}
|
|
8757
8781
|
|
|
8758
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. */
|
|
8759
8785
|
.side-nav__toggle:hover {
|
|
8760
|
-
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
|
+
);
|
|
8761
8793
|
}
|
|
8762
8794
|
}
|
|
8763
8795
|
|
package/dist/css/helix-core.css
CHANGED
|
@@ -682,20 +682,34 @@
|
|
|
682
682
|
--hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
683
683
|
}
|
|
684
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. */
|
|
685
690
|
:host([inverted]) .button--secondary:hover {
|
|
686
|
-
--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
|
+
);
|
|
687
695
|
}
|
|
688
696
|
|
|
689
697
|
/* Tertiary inverted — resting at the subtle overlay (10%) lifts to the default
|
|
690
698
|
overlay (30%) on hover so the runtime hover delta is visually distinct, not
|
|
691
699
|
collapsed onto a single token. */
|
|
692
700
|
:host([inverted]) .button--tertiary {
|
|
693
|
-
--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
|
+
);
|
|
694
705
|
--hx-button-border-color: transparent;
|
|
695
706
|
}
|
|
696
707
|
|
|
697
708
|
:host([inverted]) .button--tertiary:hover {
|
|
698
|
-
--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
|
+
);
|
|
699
713
|
}
|
|
700
714
|
|
|
701
715
|
/* Ghost inverted — transparent base, translucent hover bg */
|
|
@@ -707,7 +721,10 @@
|
|
|
707
721
|
:host([inverted]) .button--ghost:hover {
|
|
708
722
|
--hx-button-bg: var(
|
|
709
723
|
--hx-button-inverted-ghost-hover-bg,
|
|
710
|
-
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
|
+
)
|
|
711
728
|
);
|
|
712
729
|
}
|
|
713
730
|
|
|
@@ -717,7 +734,10 @@
|
|
|
717
734
|
}
|
|
718
735
|
|
|
719
736
|
:host([inverted]) .button--outline:hover {
|
|
720
|
-
--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
|
+
);
|
|
721
741
|
}
|
|
722
742
|
|
|
723
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
|
|
|
@@ -126,8 +126,6 @@
|
|
|
126
126
|
--hx-color-border-strong: var(--hx-color-neutral-500);
|
|
127
127
|
--hx-color-border-focus: var(--hx-color-primary-500);
|
|
128
128
|
--hx-color-border-on-dark-strong: var(--hx-overlay-white-70);
|
|
129
|
-
--hx-color-border-on-dark-default: var(--hx-color-surface-on-dark-overlay-default);
|
|
130
|
-
--hx-color-border-on-dark-subtle: var(--hx-color-surface-on-dark-overlay-subtle);
|
|
131
129
|
--hx-color-focus-ring: var(--hx-color-primary-600);
|
|
132
130
|
--hx-color-selection-bg: var(--hx-color-primary-200);
|
|
133
131
|
--hx-color-selection-color: var(--hx-color-neutral-900);
|
|
@@ -377,8 +375,6 @@
|
|
|
377
375
|
--hx-color-border-strong: var(--hx-color-neutral-400);
|
|
378
376
|
--hx-color-border-focus: var(--hx-color-primary-400);
|
|
379
377
|
--hx-color-border-on-dark-strong: var(--hx-overlay-black-50);
|
|
380
|
-
--hx-color-border-on-dark-default: var(--hx-color-surface-on-dark-overlay-default);
|
|
381
|
-
--hx-color-border-on-dark-subtle: var(--hx-color-surface-on-dark-overlay-subtle);
|
|
382
378
|
--hx-color-focus-ring: var(--hx-color-primary-400);
|
|
383
379
|
--hx-color-selection-bg: var(--hx-color-primary-800);
|
|
384
380
|
--hx-color-selection-color: var(--hx-color-neutral-100);
|
|
@@ -425,8 +421,6 @@
|
|
|
425
421
|
--hx-color-border-strong: var(--hx-color-neutral-400);
|
|
426
422
|
--hx-color-border-focus: var(--hx-color-primary-400);
|
|
427
423
|
--hx-color-border-on-dark-strong: var(--hx-overlay-black-50);
|
|
428
|
-
--hx-color-border-on-dark-default: var(--hx-color-surface-on-dark-overlay-default);
|
|
429
|
-
--hx-color-border-on-dark-subtle: var(--hx-color-surface-on-dark-overlay-subtle);
|
|
430
424
|
--hx-color-focus-ring: var(--hx-color-primary-400);
|
|
431
425
|
--hx-color-selection-bg: var(--hx-color-primary-800);
|
|
432
426
|
--hx-color-selection-color: var(--hx-color-neutral-100);
|
|
@@ -499,8 +493,6 @@
|
|
|
499
493
|
--hx-color-border-strong: #FFFFFF;
|
|
500
494
|
--hx-color-border-focus: #FFFF00;
|
|
501
495
|
--hx-color-border-on-dark-strong: #FFFFFF;
|
|
502
|
-
--hx-color-border-on-dark-default: var(--hx-color-surface-on-dark-overlay-default);
|
|
503
|
-
--hx-color-border-on-dark-subtle: var(--hx-color-surface-on-dark-overlay-subtle);
|
|
504
496
|
--hx-color-focus-ring: #FFFF00;
|
|
505
497
|
--hx-color-selection-bg: #1AEBFF;
|
|
506
498
|
--hx-color-selection-color: #000000;
|
package/dist/css/hx-button.css
CHANGED
|
@@ -333,20 +333,34 @@
|
|
|
333
333
|
--hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
334
334
|
}
|
|
335
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. */
|
|
336
341
|
:host([inverted]) .button--secondary:hover {
|
|
337
|
-
--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
|
+
);
|
|
338
346
|
}
|
|
339
347
|
|
|
340
348
|
/* Tertiary inverted — resting at the subtle overlay (10%) lifts to the default
|
|
341
349
|
overlay (30%) on hover so the runtime hover delta is visually distinct, not
|
|
342
350
|
collapsed onto a single token. */
|
|
343
351
|
:host([inverted]) .button--tertiary {
|
|
344
|
-
--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
|
+
);
|
|
345
356
|
--hx-button-border-color: transparent;
|
|
346
357
|
}
|
|
347
358
|
|
|
348
359
|
:host([inverted]) .button--tertiary:hover {
|
|
349
|
-
--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
|
+
);
|
|
350
364
|
}
|
|
351
365
|
|
|
352
366
|
/* Ghost inverted — transparent base, translucent hover bg */
|
|
@@ -358,7 +372,10 @@
|
|
|
358
372
|
:host([inverted]) .button--ghost:hover {
|
|
359
373
|
--hx-button-bg: var(
|
|
360
374
|
--hx-button-inverted-ghost-hover-bg,
|
|
361
|
-
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
|
+
)
|
|
362
379
|
);
|
|
363
380
|
}
|
|
364
381
|
|
|
@@ -368,7 +385,10 @@
|
|
|
368
385
|
}
|
|
369
386
|
|
|
370
387
|
:host([inverted]) .button--outline:hover {
|
|
371
|
-
--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
|
+
);
|
|
372
392
|
}
|
|
373
393
|
|
|
374
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";
|
|
@@ -340,20 +340,34 @@ const m = v`
|
|
|
340
340
|
--hx-button-border-color: var(--hx-color-border-on-dark-strong, rgba(255, 255, 255, 0.7));
|
|
341
341
|
}
|
|
342
342
|
|
|
343
|
+
/* Inverted overlay fills read both names so consumer overrides reach paint
|
|
344
|
+
regardless of which token they target: the deprecated --hx-color-border-on-dark-*
|
|
345
|
+
names (3.2.0/3.2.1 public API, scheduled for removal in 4.0.0) and the canonical
|
|
346
|
+
--hx-color-surface-on-dark-overlay-* names (round-8 rename). Deprecated name
|
|
347
|
+
wins when set; otherwise resolves through the canonical alias chain. */
|
|
343
348
|
:host([inverted]) .button--secondary:hover {
|
|
344
|
-
--hx-button-bg: var(
|
|
349
|
+
--hx-button-bg: var(
|
|
350
|
+
--hx-color-border-on-dark-default,
|
|
351
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
352
|
+
);
|
|
345
353
|
}
|
|
346
354
|
|
|
347
355
|
/* Tertiary inverted — resting at the subtle overlay (10%) lifts to the default
|
|
348
356
|
overlay (30%) on hover so the runtime hover delta is visually distinct, not
|
|
349
357
|
collapsed onto a single token. */
|
|
350
358
|
:host([inverted]) .button--tertiary {
|
|
351
|
-
--hx-button-bg: var(
|
|
359
|
+
--hx-button-bg: var(
|
|
360
|
+
--hx-color-border-on-dark-subtle,
|
|
361
|
+
var(--hx-color-surface-on-dark-overlay-subtle, rgba(255, 255, 255, 0.1))
|
|
362
|
+
);
|
|
352
363
|
--hx-button-border-color: transparent;
|
|
353
364
|
}
|
|
354
365
|
|
|
355
366
|
:host([inverted]) .button--tertiary:hover {
|
|
356
|
-
--hx-button-bg: var(
|
|
367
|
+
--hx-button-bg: var(
|
|
368
|
+
--hx-color-border-on-dark-default,
|
|
369
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
370
|
+
);
|
|
357
371
|
}
|
|
358
372
|
|
|
359
373
|
/* Ghost inverted — transparent base, translucent hover bg */
|
|
@@ -365,7 +379,10 @@ const m = v`
|
|
|
365
379
|
:host([inverted]) .button--ghost:hover {
|
|
366
380
|
--hx-button-bg: var(
|
|
367
381
|
--hx-button-inverted-ghost-hover-bg,
|
|
368
|
-
var(
|
|
382
|
+
var(
|
|
383
|
+
--hx-color-border-on-dark-default,
|
|
384
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
385
|
+
)
|
|
369
386
|
);
|
|
370
387
|
}
|
|
371
388
|
|
|
@@ -375,7 +392,10 @@ const m = v`
|
|
|
375
392
|
}
|
|
376
393
|
|
|
377
394
|
:host([inverted]) .button--outline:hover {
|
|
378
|
-
--hx-button-bg: var(
|
|
395
|
+
--hx-button-bg: var(
|
|
396
|
+
--hx-color-border-on-dark-default,
|
|
397
|
+
var(--hx-color-surface-on-dark-overlay-default, rgba(255, 255, 255, 0.3))
|
|
398
|
+
);
|
|
379
399
|
}
|
|
380
400
|
|
|
381
401
|
/* ─── Prefix / Suffix / Label ─── */
|
|
@@ -645,4 +665,4 @@ e = n([
|
|
|
645
665
|
export {
|
|
646
666
|
e as H
|
|
647
667
|
};
|
|
648
|
-
//# sourceMappingURL=hx-button-
|
|
668
|
+
//# sourceMappingURL=hx-button-DPY6SPVT.js.map
|