@descope/web-components-ui 1.0.242 → 1.0.244

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.
Files changed (25) hide show
  1. package/dist/cjs/index.cjs.js +74 -53
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +113 -66
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/descope-button-selection-group-descope-button-selection-group-internal-index-js.js +1 -1
  6. package/dist/umd/descope-button-selection-group-index-js.js +1 -1
  7. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js +1 -1
  8. package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js +1 -1
  9. package/dist/umd/descope-grid-index-js.js +1 -1
  10. package/dist/umd/descope-loader-radial-index-js.js +1 -1
  11. package/dist/umd/descope-passcode-descope-passcode-internal-index-js.js +1 -1
  12. package/dist/umd/descope-passcode-index-js.js +1 -1
  13. package/dist/umd/index.js +1 -1
  14. package/package.json +1 -1
  15. package/src/components/descope-button-selection-group/descope-button-selection-group-internal/index.js +0 -1
  16. package/src/components/descope-button-selection-group/index.js +1 -0
  17. package/src/components/descope-grid/descope-grid-custom-column/GridCustomColumnClass.js +1 -1
  18. package/src/components/descope-grid/descope-grid-selection-column/GridSelectionColumnClass.js +2 -1
  19. package/src/components/descope-passcode/PasscodeClass.js +9 -1
  20. package/src/components/descope-passcode/descope-passcode-internal/PasscodeInternal.js +26 -2
  21. package/src/components/descope-passcode/index.js +1 -0
  22. package/src/index.cjs.js +1 -0
  23. package/src/index.js +1 -1
  24. package/src/theme/components/inputWrapper.js +2 -0
  25. package/src/theme/components/passcode.js +11 -0
package/dist/index.esm.js CHANGED
@@ -2556,7 +2556,7 @@ const getSanitizedCharacters = (str) => {
2556
2556
 
2557
2557
  const componentName$q = getComponentName('passcode-internal');
2558
2558
 
2559
- const observedAttributes$5 = ['digits'];
2559
+ const observedAttributes$5 = ['digits', 'loading'];
2560
2560
 
2561
2561
  const forwardAttributes = ['disabled', 'bordered', 'size', 'invalid', 'readonly'];
2562
2562
 
@@ -2572,21 +2572,34 @@ class PasscodeInternal extends BaseInputClass$4 {
2572
2572
 
2573
2573
  this.innerHTML = `
2574
2574
  <div class="wrapper"></div>
2575
+ <div class="loader-container">
2576
+ <descope-loader-radial size="xs" mode="primary"></descope-loader-radial>
2577
+ </div>
2575
2578
  <style>
2576
2579
  .wrapper {
2577
2580
  display: flex;
2578
2581
  width: 100%;
2579
2582
  justify-content: space-between;
2580
2583
  direction: ltr;
2584
+ position: relative;
2581
2585
  }
2582
2586
 
2583
2587
  descope-text-field {
2584
2588
  direction: ltr;
2585
2589
  }
2590
+
2591
+ .loader-container {
2592
+ display: none;
2593
+ position: absolute;
2594
+ top: 50%;
2595
+ left: 50%;
2596
+ transform: translate(-50%, -50%);
2597
+ }
2586
2598
  </style>
2587
2599
  `;
2588
2600
 
2589
- this.wrapperEle = this.querySelector('div');
2601
+ this.wrapperEle = this.querySelector('.wrapper');
2602
+ this.loaderContainer = this.querySelector('.loader-container');
2590
2603
  }
2591
2604
 
2592
2605
  renderInputs() {
@@ -2608,6 +2621,14 @@ class PasscodeInternal extends BaseInputClass$4 {
2608
2621
  this.initInputs();
2609
2622
  }
2610
2623
 
2624
+ handleLoadingState(isLoading) {
2625
+ if (isLoading) {
2626
+ this.setAttribute('inert', 'true');
2627
+ } else {
2628
+ this.removeAttribute('inert');
2629
+ }
2630
+ }
2631
+
2611
2632
  get digits() {
2612
2633
  return Number.parseInt(this.getAttribute('digits'), 10) || 6;
2613
2634
  }
@@ -2753,6 +2774,9 @@ class PasscodeInternal extends BaseInputClass$4 {
2753
2774
  if (attrName === 'digits') {
2754
2775
  this.renderInputs();
2755
2776
  }
2777
+ if (attrName === 'loading') {
2778
+ this.handleLoadingState(newValue === 'true');
2779
+ }
2756
2780
  }
2757
2781
  }
2758
2782
  }
@@ -2847,7 +2871,7 @@ const customMixin$5 = (superclass) =>
2847
2871
 
2848
2872
  this.inputElement = this.shadowRoot.querySelector(componentName$q);
2849
2873
 
2850
- forwardAttrs(this, this.inputElement, { includeAttrs: ['digits', 'size'] });
2874
+ forwardAttrs(this, this.inputElement, { includeAttrs: ['digits', 'size', 'loading'] });
2851
2875
  }
2852
2876
 
2853
2877
  attributeChangedCallback(attrName, oldValue, newValue) {
@@ -2878,6 +2902,7 @@ const {
2878
2902
  };
2879
2903
 
2880
2904
  const textVars$2 = TextFieldClass.cssVarList;
2905
+ const loaderVars = LoaderRadialClass.cssVarList;
2881
2906
 
2882
2907
  const PasscodeClass = compose(
2883
2908
  createStyleMixin({
@@ -2908,6 +2933,8 @@ const PasscodeClass = compose(
2908
2933
  digitOutlineWidth: { ...digitField, property: textVars$2.inputOutlineWidth },
2909
2934
 
2910
2935
  focusedDigitFieldOutlineColor: { ...focusedDigitField, property: textVars$2.inputOutlineColor },
2936
+ overlayOpacity: { ...internalWrapper$1, property: 'opacity' },
2937
+ spinnerSize: { selector: LoaderRadialClass.componentName, property: loaderVars.spinnerSize },
2911
2938
  },
2912
2939
  }),
2913
2940
  draggableMixin,
@@ -2932,6 +2959,10 @@ const PasscodeClass = compose(
2932
2959
  background-color: transparent;
2933
2960
  }
2934
2961
 
2962
+ :host([loading="true"]) descope-passcode-internal .loader-container {
2963
+ display: block;
2964
+ }
2965
+
2935
2966
  descope-passcode-internal {
2936
2967
  -webkit-mask-image: none;
2937
2968
  padding: 0;
@@ -6699,8 +6730,6 @@ const ButtonSelectionGroupClass = compose(
6699
6730
 
6700
6731
  customElements.define(componentName$b, ButtonSelectionGroupInternalClass);
6701
6732
 
6702
- customElements.define(componentName$a, ButtonSelectionGroupClass);
6703
-
6704
6733
  const componentName$9 = getComponentName('button-selection-group-item');
6705
6734
 
6706
6735
  class RawSelectItem extends createBaseClass({
@@ -6804,6 +6833,8 @@ const ButtonSelectionGroupItemClass = compose(
6804
6833
 
6805
6834
  customElements.define(componentName$9, ButtonSelectionGroupItemClass);
6806
6835
 
6836
+ customElements.define(componentName$a, ButtonSelectionGroupClass);
6837
+
6807
6838
  class GridTextColumnClass extends GridSortColumn {
6808
6839
  get sortable() {
6809
6840
  return this.getAttribute('sortable') === 'true';
@@ -6836,7 +6867,7 @@ class GridCustomColumnClass extends GridTextColumnClass {
6836
6867
  // we are going over the elements, and when finding an element which is pattern matches the data,
6837
6868
  // we are cloning this element, and injecting the data as its child
6838
6869
  const contentEle = Array.from(this.children).find((child) => {
6839
- const pattern = child.getAttribute('pattern');
6870
+ const pattern = child.getAttribute('data-pattern');
6840
6871
  if (!pattern) return true;
6841
6872
 
6842
6873
  const regEx = new RegExp(pattern);
@@ -6871,7 +6902,8 @@ const createCheckboxEle = () => {
6871
6902
  return checkbox;
6872
6903
  };
6873
6904
 
6874
- const getIsAllItemsSelected = (grid) => grid.selectedItems.length === grid.items?.length;
6905
+ const getIsAllItemsSelected = (grid) =>
6906
+ !!grid.items?.length && grid.selectedItems.length === grid.items.length;
6875
6907
 
6876
6908
  class GridSelectionColumnClass extends GridSelectionColumn {
6877
6909
  // eslint-disable-next-line class-methods-use-this
@@ -7170,6 +7202,58 @@ const GridClass = compose(
7170
7202
 
7171
7203
  customElements.define(componentName$5, GridClass);
7172
7204
 
7205
+ const componentName$4 = getComponentName('badge');
7206
+
7207
+ class RawBadge extends createBaseClass({ componentName: componentName$4, baseSelector: ':host > div' }) {
7208
+ constructor() {
7209
+ super();
7210
+
7211
+ this.attachShadow({ mode: 'open' }).innerHTML = `
7212
+ <style>
7213
+ :host {
7214
+ display: inline-flex;
7215
+ }
7216
+ :host > div {
7217
+ width: 100%;
7218
+ }
7219
+ </style>
7220
+ <div>
7221
+ <slot></slot>
7222
+ </div>
7223
+ `;
7224
+ }
7225
+ }
7226
+
7227
+ const BadgeClass = compose(
7228
+ createStyleMixin({
7229
+ mappings: {
7230
+ hostWidth: [{ selector: () => ':host', property: 'width' }],
7231
+ hostDirection: { property: 'direction' },
7232
+
7233
+ fontFamily: {},
7234
+ fontSize: {},
7235
+ fontWeight: {},
7236
+ textTransform: {},
7237
+ verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],
7238
+ horizontalPadding: [{ property: 'padding-left' }, { property: 'padding-right' }],
7239
+
7240
+ borderWidth: {},
7241
+ borderStyle: {},
7242
+ borderColor: {},
7243
+ borderRadius: {},
7244
+
7245
+ backgroundColor: {},
7246
+
7247
+ textColor: { property: 'color' },
7248
+ textAlign: {},
7249
+ },
7250
+ }),
7251
+ draggableMixin,
7252
+ componentNameValidationMixin
7253
+ )(RawBadge);
7254
+
7255
+ customElements.define(componentName$4, BadgeClass);
7256
+
7173
7257
  const getVarName = (path) => getCssVarName(DESCOPE_PREFIX, ...path);
7174
7258
 
7175
7259
  const transformTheme = (theme, path, getTransformation) => {
@@ -7621,7 +7705,7 @@ var button$1 = /*#__PURE__*/Object.freeze({
7621
7705
  vars: vars$v
7622
7706
  });
7623
7707
 
7624
- const componentName$4 = getComponentName('input-wrapper');
7708
+ const componentName$3 = getComponentName('input-wrapper');
7625
7709
  const globalRefs$h = getThemeRefs(globals);
7626
7710
 
7627
7711
  const [theme$1, refs, vars$u] = createHelperVars(
@@ -7653,6 +7737,8 @@ const [theme$1, refs, vars$u] = createHelperVars(
7653
7737
 
7654
7738
  direction: globalRefs$h.direction,
7655
7739
 
7740
+ overlayOpacity: '0.3',
7741
+
7656
7742
  size: {
7657
7743
  xs: { fontSize: '12px', chipFontSize: '10px' },
7658
7744
  sm: { fontSize: '14px', chipFontSize: '12px' },
@@ -7688,7 +7774,7 @@ const [theme$1, refs, vars$u] = createHelperVars(
7688
7774
  backgroundColor: globalRefs$h.colors.surface.main,
7689
7775
  },
7690
7776
  },
7691
- componentName$4
7777
+ componentName$3
7692
7778
  );
7693
7779
 
7694
7780
  var inputWrapper = /*#__PURE__*/Object.freeze({
@@ -8322,9 +8408,20 @@ const passcode = {
8322
8408
  [vars$g.focusedDigitFieldOutlineColor]: refs.outlineColor,
8323
8409
  [vars$g.digitSize]: refs.inputHeight,
8324
8410
 
8411
+ size: {
8412
+ xs: { [vars$g.spinnerSize]: '15px' },
8413
+ sm: { [vars$g.spinnerSize]: '20px' },
8414
+ md: { [vars$g.spinnerSize]: '20px' },
8415
+ lg: { [vars$g.spinnerSize]: '20px' },
8416
+ },
8417
+
8325
8418
  _hideCursor: {
8326
8419
  [vars$g.digitCaretTextColor]: 'transparent',
8327
8420
  },
8421
+
8422
+ _loading: {
8423
+ [vars$g.overlayOpacity]: refs.overlayOpacity,
8424
+ },
8328
8425
  };
8329
8426
 
8330
8427
  var passcode$1 = /*#__PURE__*/Object.freeze({
@@ -8703,7 +8800,7 @@ var buttonSelectionGroup$1 = /*#__PURE__*/Object.freeze({
8703
8800
  vars: vars$6
8704
8801
  });
8705
8802
 
8706
- const componentName$3 = getComponentName('modal');
8803
+ const componentName$2 = getComponentName('modal');
8707
8804
 
8708
8805
  const customMixin = (superclass) =>
8709
8806
  class ModalMixinClass extends superclass {
@@ -8802,7 +8899,7 @@ const ModalClass = compose(
8802
8899
  wrappedEleName: 'vaadin-dialog',
8803
8900
  style: () => ``,
8804
8901
  excludeAttrsSync: ['tabindex', 'opened'],
8805
- componentName: componentName$3,
8902
+ componentName: componentName$2,
8806
8903
  })
8807
8904
  );
8808
8905
 
@@ -8865,7 +8962,7 @@ var grid$1 = /*#__PURE__*/Object.freeze({
8865
8962
  vars: vars$4
8866
8963
  });
8867
8964
 
8868
- const componentName$2 = getComponentName('notification-card');
8965
+ const componentName$1 = getComponentName('notification-card');
8869
8966
 
8870
8967
  const notificationCardMixin = (superclass) =>
8871
8968
  class NotificationCardMixinClass extends superclass {
@@ -8973,7 +9070,7 @@ const NotificationCardClass = compose(
8973
9070
  }
8974
9071
  `,
8975
9072
  excludeAttrsSync: ['tabindex'],
8976
- componentName: componentName$2,
9073
+ componentName: componentName$1,
8977
9074
  })
8978
9075
  );
8979
9076
 
@@ -9031,7 +9128,7 @@ var notificationCard = /*#__PURE__*/Object.freeze({
9031
9128
  vars: vars$3
9032
9129
  });
9033
9130
 
9034
- const componentName$1 = getComponentName('multi-select-combo-box');
9131
+ const componentName = getComponentName('multi-select-combo-box');
9035
9132
 
9036
9133
  const MultiSelectComboBoxMixin = (superclass) =>
9037
9134
  class MultiSelectComboBoxMixinClass extends superclass {
@@ -9519,7 +9616,7 @@ const MultiSelectComboBoxClass = compose(
9519
9616
  // Note: we exclude `placeholder` because the vaadin component observes it and
9520
9617
  // tries to override it, causing us to lose the user set placeholder.
9521
9618
  excludeAttrsSync: ['tabindex', 'size', 'data', 'placeholder'],
9522
- componentName: componentName$1,
9619
+ componentName,
9523
9620
  includeForwardProps: ['items', 'renderer', 'selectedItems'],
9524
9621
  })
9525
9622
  );
@@ -9581,56 +9678,6 @@ var multiSelectComboBox$1 = /*#__PURE__*/Object.freeze({
9581
9678
  vars: vars$2
9582
9679
  });
9583
9680
 
9584
- const componentName = getComponentName('badge');
9585
-
9586
- class RawBadge extends createBaseClass({ componentName, baseSelector: ':host > div' }) {
9587
- constructor() {
9588
- super();
9589
-
9590
- this.attachShadow({ mode: 'open' }).innerHTML = `
9591
- <style>
9592
- :host {
9593
- display: inline-flex;
9594
- }
9595
- :host > div {
9596
- width: 100%;
9597
- }
9598
- </style>
9599
- <div>
9600
- <slot></slot>
9601
- </div>
9602
- `;
9603
- }
9604
- }
9605
-
9606
- const BadgeClass = compose(
9607
- createStyleMixin({
9608
- mappings: {
9609
- hostWidth: [{ selector: () => ':host', property: 'width' }],
9610
- hostDirection: { property: 'direction' },
9611
-
9612
- fontFamily: {},
9613
- fontSize: {},
9614
- fontWeight: {},
9615
- textTransform: {},
9616
- verticalPadding: [{ property: 'padding-top' }, { property: 'padding-bottom' }],
9617
- horizontalPadding: [{ property: 'padding-left' }, { property: 'padding-right' }],
9618
-
9619
- borderWidth: {},
9620
- borderStyle: {},
9621
- borderColor: {},
9622
- borderRadius: {},
9623
-
9624
- backgroundColor: {},
9625
-
9626
- textColor: { property: 'color' },
9627
- textAlign: {},
9628
- },
9629
- }),
9630
- draggableMixin,
9631
- componentNameValidationMixin
9632
- )(RawBadge);
9633
-
9634
9681
  const globalRefs = getThemeRefs(globals);
9635
9682
  const vars$1 = BadgeClass.cssVarList;
9636
9683
 
@@ -9748,5 +9795,5 @@ const vars = Object.keys(components).reduce(
9748
9795
  const defaultTheme = { globals, components: theme };
9749
9796
  const themeVars = { globals: vars$w, components: vars };
9750
9797
 
9751
- export { ButtonClass, ButtonSelectionGroupClass, ButtonSelectionGroupItemClass, CheckboxClass, ContainerClass, DividerClass, EmailFieldClass, GridClass, ImageClass, LinkClass, LoaderLinearClass, LoaderRadialClass, LogoClass, NewPasswordClass, NumberFieldClass, PasscodeClass, PasswordClass, PhoneFieldClass, PhoneFieldInputBoxClass, RecaptchaClass, SwitchToggleClass, TextAreaClass, TextClass, TextFieldClass, TotpImageClass, UploadFileClass, componentsThemeManager, createComponentsTheme, defaultTheme, genColor, globalsThemeToStyle, themeToStyle, themeVars };
9798
+ export { BadgeClass, ButtonClass, ButtonSelectionGroupClass, CheckboxClass, ContainerClass, DividerClass, EmailFieldClass, GridClass, ImageClass, LinkClass, LoaderLinearClass, LoaderRadialClass, LogoClass, NewPasswordClass, NumberFieldClass, PasscodeClass, PasswordClass, PhoneFieldClass, PhoneFieldInputBoxClass, RecaptchaClass, SwitchToggleClass, TextAreaClass, TextClass, TextFieldClass, TotpImageClass, UploadFileClass, componentsThemeManager, createComponentsTheme, defaultTheme, genColor, globalsThemeToStyle, themeToStyle, themeVars };
9752
9799
  //# sourceMappingURL=index.esm.js.map