@lukso/web-components 1.180.1 → 1.181.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -682,6 +682,15 @@ exports.LuksoIcon = class LuksoIcon extends index.TailwindStyledElement(style) {
682
682
  }
683
683
  }
684
684
  }
685
+ /**
686
+ * Wrap a color token so --lukso-icon-color (or --lukso-icon-secondary-color)
687
+ * takes precedence when set, falling back to the original token.
688
+ * Icon SVGs render: var(--<returned string>)
689
+ * Result: var(--lukso-icon-color, var(--neutral-20))
690
+ */
691
+ wrapColor(token, cssVar) {
692
+ return `${cssVar}, var(--${token})`;
693
+ }
685
694
  render() {
686
695
  if (!this.color) {
687
696
  this.color = DEFAULT_COLOR;
@@ -694,6 +703,8 @@ exports.LuksoIcon = class LuksoIcon extends index.TailwindStyledElement(style) {
694
703
  console.warn(`Size ${this.size} not found`);
695
704
  return lit.html``;
696
705
  }
706
+ const color = this.wrapColor(this.color, "lukso-icon-color");
707
+ const secondaryColor = this.secondaryColor ? this.wrapColor(this.secondaryColor, "lukso-icon-secondary-color") : void 0;
697
708
  if (this.pack === "vuesax") {
698
709
  if (!this.svgContent) {
699
710
  if (!this.failedLoadAttempt) {
@@ -721,9 +732,9 @@ exports.LuksoIcon = class LuksoIcon extends index.TailwindStyledElement(style) {
721
732
  ${icon({
722
733
  width: size.width,
723
734
  height: size.height,
724
- color: this.color,
735
+ color,
725
736
  strokeWidth: size.strokeWidth,
726
- secondaryColor: this.secondaryColor
737
+ secondaryColor
727
738
  })}
728
739
  `;
729
740
  }
@@ -33,6 +33,13 @@ export declare class LuksoIcon extends LuksoIcon_base {
33
33
  private processVuesaxSvg;
34
34
  willUpdate(changedProperties: PropertyValueMap<this>): void;
35
35
  updated(changedProperties: PropertyValueMap<this>): Promise<void>;
36
+ /**
37
+ * Wrap a color token so --lukso-icon-color (or --lukso-icon-secondary-color)
38
+ * takes precedence when set, falling back to the original token.
39
+ * Icon SVGs render: var(--<returned string>)
40
+ * Result: var(--lukso-icon-color, var(--neutral-20))
41
+ */
42
+ private wrapColor;
36
43
  render(): import('lit-html').TemplateResult<1>;
37
44
  }
38
45
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAiQjD,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,OAAO,GACP,QAAQ,GACR,OAAO,GACP,SAAS,GACT,UAAU,CAAA;AAEd,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE3C,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,MAAM,GACN,SAAS,GACT,QAAQ,GACR,MAAM,GACN,SAAS,CAAA;;AA2Qb,qBACa,SAAU,SAAQ,cAA4B;IAEzD,IAAI,MAAY;IAGhB,IAAI,EAAE,QAAQ,CAAe;IAG7B,KAAK,SAAgB;IAGrB,cAAc,MAAY;IAG1B,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAY;IAGtC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAY;IAG5C,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,iBAAiB,CAAQ;IAEjC,OAAO,CAAC,KAAK,CA+BZ;IAID,OAAO,CAAC,UAAU,CAGhB;IAEF;;;;;;;;OAQG;YACW,OAAO;IAsCrB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAmExB,UAAU,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAS9C,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,CAAC;IA8CvD,MAAM;CAkEP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAA;KACxB;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,gBAAgB,EAAE,MAAM,KAAK,CAAA;AAiQjD,MAAM,MAAM,QAAQ,GAChB,SAAS,GACT,OAAO,GACP,QAAQ,GACR,OAAO,GACP,SAAS,GACT,UAAU,CAAA;AAEd,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE3C,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,MAAM,GACN,SAAS,GACT,QAAQ,GACR,MAAM,GACN,SAAS,CAAA;;AA2Qb,qBACa,SAAU,SAAQ,cAA4B;IAEzD,IAAI,MAAY;IAGhB,IAAI,EAAE,QAAQ,CAAe;IAG7B,KAAK,SAAgB;IAGrB,cAAc,MAAY;IAG1B,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAY;IAGtC,OAAO,EAAE,WAAW,GAAG,SAAS,CAAY;IAG5C,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,iBAAiB,CAAQ;IAEjC,OAAO,CAAC,KAAK,CA+BZ;IAID,OAAO,CAAC,UAAU,CAGhB;IAEF;;;;;;;;OAQG;YACW,OAAO;IAsCrB;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAmExB,UAAU,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,CAAC;IAS9C,OAAO,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,IAAI,CAAC;IA8CvD;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAMjB,MAAM;CAyEP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAA;KACxB;CACF"}
@@ -676,6 +676,15 @@ let LuksoIcon = class extends TailwindStyledElement(style) {
676
676
  }
677
677
  }
678
678
  }
679
+ /**
680
+ * Wrap a color token so --lukso-icon-color (or --lukso-icon-secondary-color)
681
+ * takes precedence when set, falling back to the original token.
682
+ * Icon SVGs render: var(--<returned string>)
683
+ * Result: var(--lukso-icon-color, var(--neutral-20))
684
+ */
685
+ wrapColor(token, cssVar) {
686
+ return `${cssVar}, var(--${token})`;
687
+ }
679
688
  render() {
680
689
  if (!this.color) {
681
690
  this.color = DEFAULT_COLOR;
@@ -688,6 +697,8 @@ let LuksoIcon = class extends TailwindStyledElement(style) {
688
697
  console.warn(`Size ${this.size} not found`);
689
698
  return html``;
690
699
  }
700
+ const color = this.wrapColor(this.color, "lukso-icon-color");
701
+ const secondaryColor = this.secondaryColor ? this.wrapColor(this.secondaryColor, "lukso-icon-secondary-color") : void 0;
691
702
  if (this.pack === "vuesax") {
692
703
  if (!this.svgContent) {
693
704
  if (!this.failedLoadAttempt) {
@@ -715,9 +726,9 @@ let LuksoIcon = class extends TailwindStyledElement(style) {
715
726
  ${icon({
716
727
  width: size.width,
717
728
  height: size.height,
718
- color: this.color,
729
+ color,
719
730
  strokeWidth: size.strokeWidth,
720
- secondaryColor: this.secondaryColor
731
+ secondaryColor
721
732
  })}
722
733
  `;
723
734
  }
@@ -43,4 +43,6 @@ export declare const VuesaxBoldIcon: StoryObj;
43
43
  export declare const VuesaxColoredIcon: StoryObj;
44
44
  /** Test story for Vuesax large icon */
45
45
  export declare const VuesaxLargeIcon: StoryObj;
46
+ /** Test story for CSS variable override on lukso pack icon */
47
+ export declare const CSSVariableOverride: StoryObj;
46
48
  //# sourceMappingURL=lukso-icon.stories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lukso-icon.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-icon/lukso-icon.stories.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAEpE,OAAO,SAAS,CAAA;AAEhB;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,IA8FX,CAAA;AAED,eAAe,IAAI,CAAA;AAqBnB,yFAAyF;AACzF,eAAO,MAAM,WAAW,KAAoB,CAAA;AAE5C,mDAAmD;AACnD,eAAO,MAAM,UAAU,KAAoB,CAAA;AAK3C,iDAAiD;AACjD,eAAO,MAAM,SAAS,KAAoB,CAAA;AAK1C,iDAAiD;AACjD,eAAO,MAAM,SAAS,KAAoB,CAAA;AAK1C,mDAAmD;AACnD,eAAO,MAAM,UAAU,KAAoB,CAAA;AAK3C,oDAAoD;AACpD,eAAO,MAAM,WAAW,KAAoB,CAAA;AAK5C,0EAA0E;AAC1E,eAAO,MAAM,eAAe,KAAoB,CAAA;AAKhD,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,KAAoB,CAAA;AAOnD,qHAAqH;AACrH,eAAO,MAAM,WAAW,KAAoB,CAAA;AAK5C,uKAAuK;AACvK,eAAO,MAAM,YAAY,KAAoB,CAAA;AAO7C,6CAA6C;AAC7C,eAAO,MAAM,cAAc,KAAoB,CAAA;AAO/C,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,4CAS9B,CAAA;AACD,yCAAyC;AACzC,eAAO,MAAM,QAAQ,EAAE,QAsBtB,CAAA;AAED,4CAA4C;AAC5C,eAAO,MAAM,eAAe,EAAE,QAuB7B,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,aAAa,EAAE,QAuB3B,CAAA;AAED,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,EAAE,QAuB9B,CAAA;AAED,sCAAsC;AACtC,eAAO,MAAM,cAAc,EAAE,QAwB5B,CAAA;AAED,yCAAyC;AACzC,eAAO,MAAM,iBAAiB,EAAE,QAwB/B,CAAA;AAED,uCAAuC;AACvC,eAAO,MAAM,eAAe,EAAE,QAwB7B,CAAA"}
1
+ {"version":3,"file":"lukso-icon.stories.d.ts","sourceRoot":"","sources":["../../../../../src/components/lukso-icon/lukso-icon.stories.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAA;AAEpE,OAAO,SAAS,CAAA;AAEhB;;;GAGG;AACH,QAAA,MAAM,IAAI,EAAE,IA8FX,CAAA;AAED,eAAe,IAAI,CAAA;AAqBnB,yFAAyF;AACzF,eAAO,MAAM,WAAW,KAAoB,CAAA;AAE5C,mDAAmD;AACnD,eAAO,MAAM,UAAU,KAAoB,CAAA;AAK3C,iDAAiD;AACjD,eAAO,MAAM,SAAS,KAAoB,CAAA;AAK1C,iDAAiD;AACjD,eAAO,MAAM,SAAS,KAAoB,CAAA;AAK1C,mDAAmD;AACnD,eAAO,MAAM,UAAU,KAAoB,CAAA;AAK3C,oDAAoD;AACpD,eAAO,MAAM,WAAW,KAAoB,CAAA;AAK5C,0EAA0E;AAC1E,eAAO,MAAM,eAAe,KAAoB,CAAA;AAKhD,0FAA0F;AAC1F,eAAO,MAAM,kBAAkB,KAAoB,CAAA;AAOnD,qHAAqH;AACrH,eAAO,MAAM,WAAW,KAAoB,CAAA;AAK5C,uKAAuK;AACvK,eAAO,MAAM,YAAY,KAAoB,CAAA;AAO7C,6CAA6C;AAC7C,eAAO,MAAM,cAAc,KAAoB,CAAA;AAO/C,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,4CAS9B,CAAA;AACD,yCAAyC;AACzC,eAAO,MAAM,QAAQ,EAAE,QAsBtB,CAAA;AAED,4CAA4C;AAC5C,eAAO,MAAM,eAAe,EAAE,QAuB7B,CAAA;AAED,0CAA0C;AAC1C,eAAO,MAAM,aAAa,EAAE,QAuB3B,CAAA;AAED,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,EAAE,QAuB9B,CAAA;AAED,sCAAsC;AACtC,eAAO,MAAM,cAAc,EAAE,QAwB5B,CAAA;AAED,yCAAyC;AACzC,eAAO,MAAM,iBAAiB,EAAE,QAwB/B,CAAA;AAED,uCAAuC;AACvC,eAAO,MAAM,eAAe,EAAE,QAwB7B,CAAA;AAED,8DAA8D;AAC9D,eAAO,MAAM,mBAAmB,EAAE,QAqBjC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- const style = "/**\n * backdrop-filter must be applied at :host level (Light DOM) because it cannot blur content\n * across the Shadow DOM boundary. pointer-events: none allows backdrop clicks while children remain interactive.\n */\n:host([is-open]) {\n position: fixed !important;\n inset: 0 !important;\n width: 100vw !important;\n height: 100vh !important;\n z-index: 1011 !important;\n backdrop-filter: blur(8px) !important;\n background: rgb(196 202 206 / 60%) !important;\n pointer-events: none !important;\n}\n\n/* Light theme backdrop */\n:host([is-open]:not([theme='dark'])) {\n background: rgb(196 202 206 / 60%) !important;\n}\n\n/* Dark theme backdrop with reduced opacity */\n:host([is-open][theme='dark']) {\n background: rgb(196 202 206 / 10%) !important;\n}\n\n/* Re-enable pointer events for modal content */\n:host([is-open]) > * {\n pointer-events: auto !important;\n}\n\n/* Dialog panel custom properties — defaults are inlined as var() fallbacks\n so inherited values from parent elements are not blocked by :host. */\n:host(:not([theme='dark'])) {\n --lukso-modal-resolved-bg: var(--lukso-modal-bg, #f8fafb); /* neutral-98 */\n}\n\n:host([theme='dark']) {\n --lukso-modal-resolved-bg: var(\n --lukso-modal-dark-bg,\n #121b21\n ); /* neutral-10 */\n}\n";
3
+ const style = "/**\n * backdrop-filter must be applied at :host level (Light DOM) because it cannot blur content\n * across the Shadow DOM boundary. pointer-events: none allows backdrop clicks while children remain interactive.\n */\n:host([is-open]) {\n position: fixed !important;\n inset: 0 !important;\n width: 100vw !important;\n height: 100vh !important;\n z-index: 1011 !important;\n backdrop-filter: blur(8px) !important;\n background: rgb(196 202 206 / 60%) !important;\n pointer-events: none !important;\n}\n\n/* Light theme backdrop */\n:host([is-open]:not([theme='dark'])) {\n background: rgb(196 202 206 / 60%) !important;\n}\n\n/* Dark theme backdrop with reduced opacity */\n:host([is-open][theme='dark']) {\n background: rgb(196 202 206 / 10%) !important;\n}\n\n/* Re-enable pointer events for modal content */\n:host([is-open]) > * {\n pointer-events: auto !important;\n}\n\n/* Dialog panel custom properties — defaults are inlined as var() fallbacks\n so inherited values from parent elements are not blocked by :host. */\n:host(:not([theme='dark'])) {\n --lukso-modal-resolved-bg: var(--lukso-modal-bg, #f8fafb); /* neutral-98 */\n}\n\n:host([theme='dark']) {\n --lukso-modal-resolved-bg: var(\n --lukso-modal-dark-bg,\n var(--lukso-modal-bg, #121b21)\n ); /* neutral-10 */\n}\n";
4
4
 
5
5
  module.exports = style;
@@ -1,3 +1,3 @@
1
- const style = "/**\n * backdrop-filter must be applied at :host level (Light DOM) because it cannot blur content\n * across the Shadow DOM boundary. pointer-events: none allows backdrop clicks while children remain interactive.\n */\n:host([is-open]) {\n position: fixed !important;\n inset: 0 !important;\n width: 100vw !important;\n height: 100vh !important;\n z-index: 1011 !important;\n backdrop-filter: blur(8px) !important;\n background: rgb(196 202 206 / 60%) !important;\n pointer-events: none !important;\n}\n\n/* Light theme backdrop */\n:host([is-open]:not([theme='dark'])) {\n background: rgb(196 202 206 / 60%) !important;\n}\n\n/* Dark theme backdrop with reduced opacity */\n:host([is-open][theme='dark']) {\n background: rgb(196 202 206 / 10%) !important;\n}\n\n/* Re-enable pointer events for modal content */\n:host([is-open]) > * {\n pointer-events: auto !important;\n}\n\n/* Dialog panel custom properties — defaults are inlined as var() fallbacks\n so inherited values from parent elements are not blocked by :host. */\n:host(:not([theme='dark'])) {\n --lukso-modal-resolved-bg: var(--lukso-modal-bg, #f8fafb); /* neutral-98 */\n}\n\n:host([theme='dark']) {\n --lukso-modal-resolved-bg: var(\n --lukso-modal-dark-bg,\n #121b21\n ); /* neutral-10 */\n}\n";
1
+ const style = "/**\n * backdrop-filter must be applied at :host level (Light DOM) because it cannot blur content\n * across the Shadow DOM boundary. pointer-events: none allows backdrop clicks while children remain interactive.\n */\n:host([is-open]) {\n position: fixed !important;\n inset: 0 !important;\n width: 100vw !important;\n height: 100vh !important;\n z-index: 1011 !important;\n backdrop-filter: blur(8px) !important;\n background: rgb(196 202 206 / 60%) !important;\n pointer-events: none !important;\n}\n\n/* Light theme backdrop */\n:host([is-open]:not([theme='dark'])) {\n background: rgb(196 202 206 / 60%) !important;\n}\n\n/* Dark theme backdrop with reduced opacity */\n:host([is-open][theme='dark']) {\n background: rgb(196 202 206 / 10%) !important;\n}\n\n/* Re-enable pointer events for modal content */\n:host([is-open]) > * {\n pointer-events: auto !important;\n}\n\n/* Dialog panel custom properties — defaults are inlined as var() fallbacks\n so inherited values from parent elements are not blocked by :host. */\n:host(:not([theme='dark'])) {\n --lukso-modal-resolved-bg: var(--lukso-modal-bg, #f8fafb); /* neutral-98 */\n}\n\n:host([theme='dark']) {\n --lukso-modal-resolved-bg: var(\n --lukso-modal-dark-bg,\n var(--lukso-modal-bg, #121b21)\n ); /* neutral-10 */\n}\n";
2
2
 
3
3
  export { style as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lukso/web-components",
3
- "version": "1.180.1",
3
+ "version": "1.181.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist",