@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/dist/index.esm.js CHANGED
@@ -407,6 +407,10 @@ const injectStyle = (cssString, ref, { prepend = false } = {}) => {
407
407
  _ref.adoptedStyleSheets = adoptedStyleSheets;
408
408
  }
409
409
 
410
+ if(cssString && !style.cssRules[0]?.style){
411
+ console.warn(`No style rules were created, make sure the CSS is valid:\n "${cssString}"`);
412
+ }
413
+
410
414
  return style;
411
415
  };
412
416
 
@@ -1130,7 +1134,17 @@ const createHelperVars = (theme, prefix) => {
1130
1134
  return [res.theme, res.useVars, res.vars];
1131
1135
  };
1132
1136
 
1133
- const createCssVar$1 = (varName, fallback) => `var(${varName}${fallback ? `, ${fallback}` : ''})`;
1137
+ const getOverrideCssVarName$1 = (origVarName) => `${origVarName}__override`;
1138
+
1139
+ const createCssVar$1 = (varName, fallback, createOverride = false) => {
1140
+ const ret = `var(${varName}${fallback ? `, ${fallback}` : ''})`;
1141
+
1142
+ if (!createOverride) return ret;
1143
+
1144
+ // we are generating an override css var to allow override with fallback to the default var
1145
+ const overrideVarName = getOverrideCssVarName$1(varName);
1146
+ return `var(${overrideVarName}, ${ret})`;
1147
+ };
1134
1148
 
1135
1149
  const createCssSelector$1 = (baseSelector = '', relativeSelectorOrSelectorFn = '') =>
1136
1150
  isFunction$1(relativeSelectorOrSelectorFn)
@@ -1179,6 +1193,7 @@ const getFallbackVarName$1 = (origVarName, suffix = 'fallback') => kebabCaseJoin
1179
1193
 
1180
1194
  const createStyle$1 = (componentName, baseSelector, mappings) => {
1181
1195
  const style = new StyleBuilder$1();
1196
+ // we generate all the fallback vars recursively
1182
1197
  const createFallbackVar = (fallback, origVarName) => {
1183
1198
  if (!fallback) return '';
1184
1199
  if (typeof fallback === 'string') return fallback;
@@ -1198,7 +1213,7 @@ const createStyle$1 = (componentName, baseSelector, mappings) => {
1198
1213
  style.add(
1199
1214
  createCssSelector$1(baseSelector, relativeSelectorOrSelectorFn),
1200
1215
  isFunction$1(property) ? property() : property,
1201
- createCssVar$1(cssVarName, fallbackValue) + (important ? '!important' : '')
1216
+ createCssVar$1(cssVarName, fallbackValue, true) + (important ? '!important' : '')
1202
1217
  );
1203
1218
  }
1204
1219
  );
@@ -1225,6 +1240,8 @@ const createCssVarsList$1 = (componentName, mappings) =>
1225
1240
  return Object.assign(
1226
1241
  acc,
1227
1242
  { [attr]: varName },
1243
+ // we are exposing the override css var names, the convention is to add 'Override' suffix to the attribute name
1244
+ { [attr + 'Override']: getOverrideCssVarName$1(varName) },
1228
1245
  getFallbackVarsNames$1(attr, varName, mappings[attr])
1229
1246
  );
1230
1247
  }, {});
@@ -1316,7 +1333,7 @@ const createStyleMixin$1 =
1316
1333
  if (elementId) {
1317
1334
  // basically this is enough to make the selector more specific
1318
1335
  // but just in case there is no id, we will also add the class multiple times
1319
- classSpecifier += `#${elementId}`;
1336
+ classSpecifier += `#${CSS.escape(elementId)}`;
1320
1337
  }
1321
1338
 
1322
1339
  this.#overrideStyleEle = injectStyle(`:host(${classSpecifier}) {}`, this.#rootElement);
@@ -1324,7 +1341,7 @@ const createStyleMixin$1 =
1324
1341
  }
1325
1342
 
1326
1343
  #setAttrOverride(attrName, value) {
1327
- const style = this.#overrideStyleEle?.cssRules[0]?.style;
1344
+ const style = this.#overrideStyleEle.cssRules[0].style;
1328
1345
 
1329
1346
  if (!style) return;
1330
1347
 
@@ -3215,16 +3232,25 @@ const ContainerClass = compose$1(
3215
3232
 
3216
3233
  customElements.define(componentName$1f, ContainerClass);
3217
3234
 
3218
- const createCssVar = (varName, fallback) => `var(${varName}${fallback ? `, ${fallback}` : ''})`;
3235
+ const getOverrideCssVarName = (origVarName) => `${origVarName}__override`;
3236
+
3237
+ const createCssVar = (varName, fallback, createOverride = false) => {
3238
+ const ret = `var(${varName}${fallback ? `, ${fallback}` : ''})`;
3239
+
3240
+ if (!createOverride) return ret;
3241
+
3242
+ // we are generating an override css var to allow override with fallback to the default var
3243
+ const overrideVarName = getOverrideCssVarName(varName);
3244
+ return `var(${overrideVarName}, ${ret})`;
3245
+ };
3219
3246
 
3220
3247
  const createCssSelector = (baseSelector = '', relativeSelectorOrSelectorFn = '') =>
3221
3248
  isFunction(relativeSelectorOrSelectorFn)
3222
3249
  ? relativeSelectorOrSelectorFn(baseSelector)
3223
- : `${baseSelector}${
3224
- /^[A-Za-z]/.test(relativeSelectorOrSelectorFn)
3225
- ? ` ${relativeSelectorOrSelectorFn}`
3226
- : relativeSelectorOrSelectorFn
3227
- }`;
3250
+ : `${baseSelector}${/^[A-Za-z]/.test(relativeSelectorOrSelectorFn)
3251
+ ? ` ${relativeSelectorOrSelectorFn}`
3252
+ : relativeSelectorOrSelectorFn
3253
+ }`;
3228
3254
 
3229
3255
  class StyleBuilder {
3230
3256
  constructor() {
@@ -3264,6 +3290,7 @@ const getFallbackVarName = (origVarName, suffix = 'fallback') => kebabCaseJoin(o
3264
3290
 
3265
3291
  const createStyle = (componentName, baseSelector, mappings) => {
3266
3292
  const style = new StyleBuilder();
3293
+ // we generate all the fallback vars recursively
3267
3294
  const createFallbackVar = (fallback, origVarName) => {
3268
3295
  if (!fallback) return '';
3269
3296
  if (typeof fallback === 'string') return fallback;
@@ -3283,7 +3310,7 @@ const createStyle = (componentName, baseSelector, mappings) => {
3283
3310
  style.add(
3284
3311
  createCssSelector(baseSelector, relativeSelectorOrSelectorFn),
3285
3312
  isFunction(property) ? property() : property,
3286
- createCssVar(cssVarName, fallbackValue) + (important ? '!important' : '')
3313
+ createCssVar(cssVarName, fallbackValue, true) + (important ? '!important' : '')
3287
3314
  );
3288
3315
  }
3289
3316
  );
@@ -3310,6 +3337,8 @@ const createCssVarsList = (componentName, mappings) =>
3310
3337
  return Object.assign(
3311
3338
  acc,
3312
3339
  { [attr]: varName },
3340
+ // we are exposing the override css var names, the convention is to add 'Override' suffix to the attribute name
3341
+ { [attr + 'Override']: getOverrideCssVarName(varName) },
3313
3342
  getFallbackVarsNames(attr, varName, mappings[attr])
3314
3343
  );
3315
3344
  }, {});
@@ -3411,7 +3440,7 @@ const createStyleMixin =
3411
3440
  if (elementId) {
3412
3441
  // basically this is enough to make the selector more specific
3413
3442
  // but just in case there is no id, we will also add the class multiple times
3414
- classSpecifier += `#${elementId}`;
3443
+ classSpecifier += `#${CSS.escape(elementId)}`;
3415
3444
  }
3416
3445
 
3417
3446
  this.#overrideStyleEle = injectStyle(`:host(${classSpecifier}) {}`, this.#rootElement);
@@ -3420,7 +3449,7 @@ const createStyleMixin =
3420
3449
 
3421
3450
 
3422
3451
  #setAttrOverride(attrName, value) {
3423
- const style = this.#overrideStyleEle?.cssRules[0]?.style;
3452
+ const style = this.#overrideStyleEle.cssRules[0].style;
3424
3453
 
3425
3454
  if (!style) return;
3426
3455
 
@@ -22300,10 +22329,10 @@ const itemRenderer$3 = ({ name, icon, url }, _, ref) => `
22300
22329
  <descope-avatar
22301
22330
  ${icon ? `img="${icon}"` : ''}
22302
22331
  ${name ? `display-name="${name}" abbr=${limitAbbreviation(name)}` : ''}
22303
- size=${ref.size}
22332
+ size="${ref.logoSize || ref.size}"
22304
22333
  ></descope-avatar>
22305
22334
  <descope-text
22306
- variant="body1"
22335
+ variant="${ref.itemTextVariant}"
22307
22336
  mode="primary"
22308
22337
  >${name}</descope-text>
22309
22338
  </descope-list-item>
@@ -22312,9 +22341,18 @@ const itemRenderer$3 = ({ name, icon, url }, _, ref) => `
22312
22341
 
22313
22342
  const customMixin$2 = (superclass) =>
22314
22343
  class AppsListMixinClass extends superclass {
22344
+ // size controls both item logo size and font size
22315
22345
  get size() {
22316
22346
  return this.getAttribute('size') || 'sm';
22317
22347
  }
22348
+
22349
+ get itemTextVariant() {
22350
+ return this.getAttribute('item-text-variant') || 'body1';
22351
+ }
22352
+
22353
+ get logoSize() {
22354
+ return this.getAttribute('logo-size');
22355
+ }
22318
22356
  };
22319
22357
 
22320
22358
  const AppsListClass = compose(
@@ -22325,19 +22363,51 @@ const AppsListClass = compose(
22325
22363
  hostDirection: { selector: () => ':host', property: 'direction' },
22326
22364
  itemsFontWeight: {
22327
22365
  selector: TextClass.componentName,
22328
- property: TextClass.cssVarList.fontWeight,
22366
+ property: TextClass.cssVarList.fontWeightOverride,
22329
22367
  },
22330
22368
  itemsFontSize: {
22331
22369
  selector: TextClass.componentName,
22332
- property: TextClass.cssVarList.fontSize,
22370
+ property: TextClass.cssVarList.fontSizeOverride,
22333
22371
  },
22334
22372
  itemsTextAlign: {
22335
22373
  selector: TextClass.componentName,
22336
22374
  property: TextClass.cssVarList.textAlign,
22337
22375
  },
22376
+ itemBackgroundColor: {
22377
+ selector: ListItemClass.componentName,
22378
+ property: ListItemClass.cssVarList.backgroundColor,
22379
+ },
22380
+ backgroundColor: {
22381
+ selector: ListClass.componentName,
22382
+ property: ListClass.cssVarList.backgroundColorOverride,
22383
+ },
22384
+ itemBorderStyle: {
22385
+ selector: ListItemClass.componentName,
22386
+ property: ListItemClass.cssVarList.borderStyleOverride,
22387
+ },
22388
+ itemBorderColor: {
22389
+ selector: ListItemClass.componentName,
22390
+ property: ListItemClass.cssVarList.borderColorOverride,
22391
+ },
22392
+ itemBorderWidth: {
22393
+ selector: ListItemClass.componentName,
22394
+ property: ListItemClass.cssVarList.borderWidthOverride,
22395
+ },
22396
+ itemVerticalPadding: {
22397
+ selector: ListItemClass.componentName,
22398
+ property: ListItemClass.cssVarList.verticalPaddingOverride,
22399
+ },
22400
+ itemHorizontalPadding: {
22401
+ selector: ListItemClass.componentName,
22402
+ property: ListItemClass.cssVarList.horizontalPaddingOverride,
22403
+ },
22404
+ itemAlignment: [
22405
+ { selector: ListItemClass.componentName, property: ListItemClass.cssVarList.alignItemsOverride },
22406
+ { selector: TextClass.componentName, property: TextClass.cssVarList.textAlign },
22407
+ ]
22338
22408
  },
22339
22409
  }),
22340
- createDynamicDataMixin$1({ itemRenderer: itemRenderer$3, rerenderAttrsList: ['size'] }),
22410
+ createDynamicDataMixin$1({ itemRenderer: itemRenderer$3, rerenderAttrsList: ['size', 'item-text-variant', 'logo-size'] }),
22341
22411
  draggableMixin,
22342
22412
  componentNameValidationMixin,
22343
22413
  customMixin$2
@@ -22366,6 +22436,7 @@ const AppsListClass = compose(
22366
22436
 
22367
22437
  descope-text {
22368
22438
  ${TextClass.cssVarList.hostDirection}: var(${AppsListClass.cssVarList.hostDirection});
22439
+ max-width: 100%;
22369
22440
  }
22370
22441
  `,
22371
22442
  })
@@ -22400,6 +22471,29 @@ const appsList = {
22400
22471
  [vars$k.itemsFontSize]: '20px',
22401
22472
  },
22402
22473
  },
22474
+
22475
+ itemPadding: {
22476
+ xs: {
22477
+ [vars$k.itemVerticalPadding]: globalRefs$a.spacing.xs,
22478
+ [vars$k.itemHorizontalPadding]: globalRefs$a.spacing.xs,
22479
+ },
22480
+ sm: {
22481
+ [vars$k.itemVerticalPadding]: globalRefs$a.spacing.sm,
22482
+ [vars$k.itemHorizontalPadding]: globalRefs$a.spacing.sm,
22483
+ },
22484
+ md: {
22485
+ [vars$k.itemVerticalPadding]: globalRefs$a.spacing.md,
22486
+ [vars$k.itemHorizontalPadding]: globalRefs$a.spacing.md,
22487
+ },
22488
+ lg: {
22489
+ [vars$k.itemVerticalPadding]: globalRefs$a.spacing.lg,
22490
+ [vars$k.itemHorizontalPadding]: globalRefs$a.spacing.lg,
22491
+ },
22492
+ xl: {
22493
+ [vars$k.itemVerticalPadding]: globalRefs$a.spacing.xl,
22494
+ [vars$k.itemHorizontalPadding]: globalRefs$a.spacing.xl,
22495
+ },
22496
+ },
22403
22497
  };
22404
22498
 
22405
22499
  var appsList$1 = /*#__PURE__*/Object.freeze({