@descope/web-components-ui 2.1.16 → 2.1.18

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@descope/web-components-ui",
3
- "version": "2.1.16",
3
+ "version": "2.1.18",
4
4
  "description": "",
5
5
  "main": "dist/cjs/index.cjs.js",
6
6
  "module": "dist/index.esm.js",
@@ -50,10 +50,10 @@
50
50
  "webpack": "^5.79.0",
51
51
  "webpack-cli": "^6.0.0",
52
52
  "webpack-dev-server": "^5.0.0",
53
- "rollup-replace-plugin": "2.1.16",
54
- "test-drivers": "2.1.16",
55
- "webpack-extract-font-loader": "2.1.16",
56
- "webpack-replace-plugin": "2.1.16"
53
+ "rollup-replace-plugin": "2.1.18",
54
+ "test-drivers": "2.1.18",
55
+ "webpack-extract-font-loader": "2.1.18",
56
+ "webpack-replace-plugin": "2.1.18"
57
57
  },
58
58
  "dependencies": {
59
59
  "@vaadin/checkbox": "24.3.4",
@@ -77,29 +77,29 @@
77
77
  "libphonenumber-js": "^1.11.12",
78
78
  "lodash.debounce": "4.0.8",
79
79
  "lodash.merge": "4.6.2",
80
- "@descope-ui/common": "2.1.16",
81
- "@descope-ui/descope-address-field": "2.1.16",
82
- "@descope-ui/descope-apps-list": "2.1.16",
83
- "@descope-ui/descope-autocomplete-field": "2.1.16",
84
- "@descope-ui/descope-avatar": "2.1.16",
85
- "@descope-ui/descope-badge": "2.1.16",
86
- "@descope-ui/descope-button": "2.1.16",
87
- "@descope-ui/descope-collapsible-container": "2.1.16",
88
- "@descope-ui/descope-combo-box": "2.1.16",
89
- "@descope-ui/descope-enriched-text": "2.1.16",
90
- "@descope-ui/descope-icon": "2.1.16",
91
- "@descope-ui/descope-image": "2.1.16",
92
- "@descope-ui/descope-link": "2.1.16",
93
- "@descope-ui/descope-list": "2.1.16",
94
- "@descope-ui/descope-list-item": "2.1.16",
95
- "@descope-ui/descope-outbound-app-button": "2.1.16",
96
- "@descope-ui/descope-outbound-apps": "2.1.16",
97
- "@descope-ui/descope-password-strength": "2.1.16",
98
- "@descope-ui/descope-recovery-codes": "2.1.16",
99
- "@descope-ui/descope-text": "2.1.16",
100
- "@descope-ui/descope-timer": "2.1.16",
101
- "@descope-ui/descope-timer-button": "2.1.16",
102
- "@descope-ui/descope-trusted-devices": "2.1.16"
80
+ "@descope-ui/common": "2.1.18",
81
+ "@descope-ui/descope-address-field": "2.1.18",
82
+ "@descope-ui/descope-apps-list": "2.1.18",
83
+ "@descope-ui/descope-autocomplete-field": "2.1.18",
84
+ "@descope-ui/descope-avatar": "2.1.18",
85
+ "@descope-ui/descope-badge": "2.1.18",
86
+ "@descope-ui/descope-button": "2.1.18",
87
+ "@descope-ui/descope-collapsible-container": "2.1.18",
88
+ "@descope-ui/descope-combo-box": "2.1.18",
89
+ "@descope-ui/descope-enriched-text": "2.1.18",
90
+ "@descope-ui/descope-icon": "2.1.18",
91
+ "@descope-ui/descope-image": "2.1.18",
92
+ "@descope-ui/descope-link": "2.1.18",
93
+ "@descope-ui/descope-list": "2.1.18",
94
+ "@descope-ui/descope-list-item": "2.1.18",
95
+ "@descope-ui/descope-outbound-app-button": "2.1.18",
96
+ "@descope-ui/descope-outbound-apps": "2.1.18",
97
+ "@descope-ui/descope-password-strength": "2.1.18",
98
+ "@descope-ui/descope-recovery-codes": "2.1.18",
99
+ "@descope-ui/descope-text": "2.1.18",
100
+ "@descope-ui/descope-timer": "2.1.18",
101
+ "@descope-ui/descope-timer-button": "2.1.18",
102
+ "@descope-ui/descope-trusted-devices": "2.1.18"
103
103
  },
104
104
  "overrides": {
105
105
  "@vaadin/avatar": "24.3.4",
@@ -1,7 +1,17 @@
1
1
  import { camelCaseJoin, isFunction, kebabCase, kebabCaseJoin } from '../../helpers';
2
2
  import { getCssVarName } from '../../helpers/componentHelpers';
3
3
 
4
- const createCssVar = (varName, fallback) => `var(${varName}${fallback ? `, ${fallback}` : ''})`;
4
+ const getOverrideCssVarName = (origVarName) => `${origVarName}__override`;
5
+
6
+ const createCssVar = (varName, fallback, createOverride = false) => {
7
+ const ret = `var(${varName}${fallback ? `, ${fallback}` : ''})`;
8
+
9
+ if (!createOverride) return ret;
10
+
11
+ // we are generating an override css var to allow override with fallback to the default var
12
+ const overrideVarName = getOverrideCssVarName(varName);
13
+ return `var(${overrideVarName}, ${ret})`;
14
+ };
5
15
 
6
16
  const createCssSelector = (baseSelector = '', relativeSelectorOrSelectorFn = '') =>
7
17
  isFunction(relativeSelectorOrSelectorFn)
@@ -50,6 +60,7 @@ const getFallbackVarName = (origVarName, suffix = 'fallback') => kebabCaseJoin(o
50
60
 
51
61
  export const createStyle = (componentName, baseSelector, mappings) => {
52
62
  const style = new StyleBuilder();
63
+ // we generate all the fallback vars recursively
53
64
  const createFallbackVar = (fallback, origVarName) => {
54
65
  if (!fallback) return '';
55
66
  if (typeof fallback === 'string') return fallback;
@@ -69,7 +80,7 @@ export const createStyle = (componentName, baseSelector, mappings) => {
69
80
  style.add(
70
81
  createCssSelector(baseSelector, relativeSelectorOrSelectorFn),
71
82
  isFunction(property) ? property() : property,
72
- createCssVar(cssVarName, fallbackValue) + (important ? '!important' : '')
83
+ createCssVar(cssVarName, fallbackValue, true) + (important ? '!important' : '')
73
84
  );
74
85
  }
75
86
  );
@@ -96,6 +107,8 @@ export const createCssVarsList = (componentName, mappings) =>
96
107
  return Object.assign(
97
108
  acc,
98
109
  { [attr]: varName },
110
+ // we are exposing the override css var names, the convention is to add 'Override' suffix to the attribute name
111
+ { [attr + 'Override']: getOverrideCssVarName(varName) },
99
112
  getFallbackVarsNames(attr, varName, mappings[attr])
100
113
  );
101
114
  }, {});
@@ -87,7 +87,7 @@ export const createStyleMixin =
87
87
  if (elementId) {
88
88
  // basically this is enough to make the selector more specific
89
89
  // but just in case there is no id, we will also add the class multiple times
90
- classSpecifier += `#${elementId}`;
90
+ classSpecifier += `#${CSS.escape(elementId)}`;
91
91
  }
92
92
 
93
93
  this.#overrideStyleEle = injectStyle(`:host(${classSpecifier}) {}`, this.#rootElement);
@@ -95,7 +95,7 @@ export const createStyleMixin =
95
95
  }
96
96
 
97
97
  #setAttrOverride(attrName, value) {
98
- const style = this.#overrideStyleEle?.cssRules[0]?.style;
98
+ const style = this.#overrideStyleEle.cssRules[0].style;
99
99
 
100
100
  if (!style) return;
101
101