@descope/web-components-ui 1.0.348 → 1.0.349

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. package/dist/cjs/index.cjs.js +191 -3
  2. package/dist/cjs/index.cjs.js.map +1 -1
  3. package/dist/index.esm.js +376 -149
  4. package/dist/index.esm.js.map +1 -1
  5. package/dist/umd/1000.js +1 -0
  6. package/dist/umd/1612.js +116 -4
  7. package/dist/umd/1765.js +1 -0
  8. package/dist/umd/3227.js +17 -0
  9. package/dist/umd/4024.js +116 -4
  10. package/dist/umd/4028.js +121 -9
  11. package/dist/umd/4052.js +116 -4
  12. package/dist/umd/4392.js +1 -1
  13. package/dist/umd/5135.js +2 -2
  14. package/dist/umd/602.js +114 -2
  15. package/dist/umd/9562.js +116 -4
  16. package/dist/umd/DescopeDev.js +1 -1
  17. package/dist/umd/boolean-fields-descope-boolean-field-internal-index-js.js +1 -1
  18. package/dist/umd/boolean-fields-descope-checkbox-index-js.js +1 -1
  19. package/dist/umd/boolean-fields-descope-switch-toggle-index-js.js +1 -1
  20. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-index-js.js +1 -1
  21. package/dist/umd/button-selection-group-fields-descope-button-multi-selection-group-internal-index-js.js +1 -1
  22. package/dist/umd/button-selection-group-fields-descope-button-selection-group-index-js.js +1 -1
  23. package/dist/umd/button-selection-group-fields-descope-button-selection-group-internal-index-js.js +1 -1
  24. package/dist/umd/button-selection-group-fields-descope-button-selection-group-item-index-js.js +1 -1
  25. package/dist/umd/descope-avatar-index-js.js +1 -1
  26. package/dist/umd/descope-badge-index-js.js +1 -1
  27. package/dist/umd/descope-button-index-js.js +116 -4
  28. package/dist/umd/descope-code-snippet-index-js.js +1 -1
  29. package/dist/umd/descope-combo-box-index-js.js +1 -1
  30. package/dist/umd/descope-container-index-js.js +1 -1
  31. package/dist/umd/descope-date-picker-index-js.js +1 -1
  32. package/dist/umd/descope-divider-index-js.js +1 -1
  33. package/dist/umd/descope-email-field-index-js.js +1 -1
  34. package/dist/umd/descope-enriched-text-index-js.js +1 -1
  35. package/dist/umd/descope-grid-descope-grid-custom-column-index-js.js +3 -3
  36. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js +90 -0
  37. package/dist/umd/descope-grid-descope-grid-item-details-column-index-js.js.LICENSE.txt +17 -0
  38. package/dist/umd/descope-grid-descope-grid-selection-column-index-js.js +1 -1
  39. package/dist/umd/descope-grid-descope-grid-text-column-index-js.js +1 -1
  40. package/dist/umd/descope-grid-index-js.js +1 -1
  41. package/dist/umd/descope-icon-index-js.js +1 -1
  42. package/dist/umd/descope-image-index-js.js +1 -1
  43. package/dist/umd/descope-link-index-js.js +1 -1
  44. package/dist/umd/descope-loader-linear-index-js.js +1 -1
  45. package/dist/umd/descope-loader-radial-index-js.js +1 -1
  46. package/dist/umd/descope-logo-index-js.js +1 -1
  47. package/dist/umd/descope-modal-index-js.js +1 -1
  48. package/dist/umd/descope-multi-select-combo-box-index-js.js +1 -1
  49. package/dist/umd/descope-new-password-descope-new-password-internal-index-js.js +1 -1
  50. package/dist/umd/descope-new-password-index-js.js +1 -1
  51. package/dist/umd/descope-notification-descope-notification-card-index-js.js +1 -1
  52. package/dist/umd/descope-notification-index-js.js +1 -1
  53. package/dist/umd/descope-notp-image-index-js.js +1 -1
  54. package/dist/umd/descope-number-field-index-js.js +1 -1
  55. package/dist/umd/descope-passcode-descope-passcode-internal-index-js.js +1 -1
  56. package/dist/umd/descope-passcode-index-js.js +1 -1
  57. package/dist/umd/descope-password-index-js.js +1 -1
  58. package/dist/umd/descope-policy-validation-index-js.js +1 -1
  59. package/dist/umd/descope-radio-group-index-js.js +1 -1
  60. package/dist/umd/descope-recaptcha-index-js.js +1 -1
  61. package/dist/umd/descope-text-area-index-js.js +1 -1
  62. package/dist/umd/descope-text-field-index-js.js +1 -1
  63. package/dist/umd/descope-text-index-js.js +1 -1
  64. package/dist/umd/descope-totp-image-index-js.js +1 -1
  65. package/dist/umd/descope-upload-file-index-js.js +1 -1
  66. package/dist/umd/descope-user-attribute-index-js.js +1 -1
  67. package/dist/umd/descope-user-auth-method-index-js.js +1 -1
  68. package/dist/umd/index.js +1 -1
  69. package/dist/umd/mapping-fields-descope-mappings-field-descope-mapping-item-index-js.js +1 -1
  70. package/dist/umd/mapping-fields-descope-mappings-field-descope-mappings-field-internal-index-js.js +1 -1
  71. package/dist/umd/mapping-fields-descope-mappings-field-index-js.js +1 -1
  72. package/dist/umd/mapping-fields-descope-saml-group-mappings-descope-saml-group-mappings-internal-index-js.js +1 -1
  73. package/dist/umd/mapping-fields-descope-saml-group-mappings-index-js.js +1 -1
  74. package/dist/umd/phone-fields-descope-phone-field-descope-phone-field-internal-index-js.js +1 -1
  75. package/dist/umd/phone-fields-descope-phone-field-index-js.js +1 -1
  76. package/dist/umd/phone-fields-descope-phone-input-box-field-index-js.js +1 -1
  77. package/package.json +1 -1
  78. package/src/components/descope-grid/GridClass.js +116 -6
  79. package/src/components/descope-grid/descope-grid-item-details-column/GridItemDetailsColumnClass.js +37 -0
  80. package/src/components/descope-grid/descope-grid-item-details-column/index.js +8 -0
  81. package/src/components/descope-grid/helpers.js +54 -0
  82. package/src/components/descope-grid/index.js +1 -0
  83. package/src/helpers/index.js +8 -0
  84. package/src/theme/components/grid.js +11 -0
  85. package/dist/umd/2362.js +0 -129
  86. package/dist/umd/4978.js +0 -1
  87. /package/dist/umd/{2362.js.LICENSE.txt → 3227.js.LICENSE.txt} +0 -0
package/dist/index.esm.js CHANGED
@@ -76,6 +76,14 @@ const compareArraysUnordered = (arr1, arr2) => {
76
76
  return true;
77
77
  };
78
78
 
79
+ const toTitle = (str) =>
80
+ str
81
+ .replace(/([A-Z])/g, ' $1')
82
+ .trim()
83
+ .split(' ')
84
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
85
+ .join(' ');
86
+
79
87
  const DESCOPE_PREFIX = 'descope';
80
88
  const CSS_SELECTOR_SPECIFIER_MULTIPLY = 3;
81
89
  const BASE_THEME_SECTION = 'host';
@@ -1376,9 +1384,9 @@ const inputEventsDispatchingMixin = (superclass) =>
1376
1384
 
1377
1385
  /* eslint-disable no-use-before-define */
1378
1386
 
1379
- const componentName$W = getComponentName('icon');
1387
+ const componentName$X = getComponentName('icon');
1380
1388
 
1381
- class RawIcon extends createBaseClass({ componentName: componentName$W, baseSelector: 'slot' }) {
1389
+ class RawIcon extends createBaseClass({ componentName: componentName$X, baseSelector: 'slot' }) {
1382
1390
  constructor() {
1383
1391
  super();
1384
1392
 
@@ -1447,7 +1455,7 @@ const clickableMixin = (superclass) =>
1447
1455
  }
1448
1456
  };
1449
1457
 
1450
- const componentName$V = getComponentName('button');
1458
+ const componentName$W = getComponentName('button');
1451
1459
 
1452
1460
  const resetStyles = `
1453
1461
  :host {
@@ -1557,7 +1565,7 @@ const ButtonClass = compose(
1557
1565
  }
1558
1566
  `,
1559
1567
  excludeAttrsSync: ['tabindex'],
1560
- componentName: componentName$V,
1568
+ componentName: componentName$W,
1561
1569
  })
1562
1570
  );
1563
1571
 
@@ -1594,7 +1602,7 @@ loadingIndicatorStyles = `
1594
1602
  }
1595
1603
  `;
1596
1604
 
1597
- customElements.define(componentName$V, ButtonClass);
1605
+ customElements.define(componentName$W, ButtonClass);
1598
1606
 
1599
1607
  const createBaseInputClass = (...args) =>
1600
1608
  compose(
@@ -1604,11 +1612,11 @@ const createBaseInputClass = (...args) =>
1604
1612
  inputEventsDispatchingMixin
1605
1613
  )(createBaseClass(...args));
1606
1614
 
1607
- const componentName$U = getComponentName('boolean-field-internal');
1615
+ const componentName$V = getComponentName('boolean-field-internal');
1608
1616
 
1609
1617
  const forwardAttributes$1 = ['disabled', 'label', 'invalid', 'readonly'];
1610
1618
 
1611
- const BaseInputClass$8 = createBaseInputClass({ componentName: componentName$U, baseSelector: 'div' });
1619
+ const BaseInputClass$8 = createBaseInputClass({ componentName: componentName$V, baseSelector: 'div' });
1612
1620
 
1613
1621
  class BooleanInputInternal extends BaseInputClass$8 {
1614
1622
  static get observedAttributes() {
@@ -1684,14 +1692,14 @@ const booleanFieldMixin = (superclass) =>
1684
1692
 
1685
1693
  const template = document.createElement('template');
1686
1694
  template.innerHTML = `
1687
- <${componentName$U}
1695
+ <${componentName$V}
1688
1696
  tabindex="-1"
1689
1697
  slot="input"
1690
- ></${componentName$U}>
1698
+ ></${componentName$V}>
1691
1699
  `;
1692
1700
 
1693
1701
  this.baseElement.appendChild(template.content.cloneNode(true));
1694
- this.inputElement = this.shadowRoot.querySelector(componentName$U);
1702
+ this.inputElement = this.shadowRoot.querySelector(componentName$V);
1695
1703
  this.checkbox = this.inputElement.querySelector('vaadin-checkbox');
1696
1704
 
1697
1705
  forwardAttrs(this, this.inputElement, {
@@ -1906,7 +1914,7 @@ descope-boolean-field-internal {
1906
1914
  }
1907
1915
  `;
1908
1916
 
1909
- const componentName$T = getComponentName('checkbox');
1917
+ const componentName$U = getComponentName('checkbox');
1910
1918
 
1911
1919
  const {
1912
1920
  host: host$m,
@@ -2012,15 +2020,15 @@ const CheckboxClass = compose(
2012
2020
  }
2013
2021
  `,
2014
2022
  excludeAttrsSync: ['label', 'tabindex'],
2015
- componentName: componentName$T,
2023
+ componentName: componentName$U,
2016
2024
  })
2017
2025
  );
2018
2026
 
2019
- customElements.define(componentName$U, BooleanInputInternal);
2027
+ customElements.define(componentName$V, BooleanInputInternal);
2020
2028
 
2021
- customElements.define(componentName$T, CheckboxClass);
2029
+ customElements.define(componentName$U, CheckboxClass);
2022
2030
 
2023
- const componentName$S = getComponentName('switch-toggle');
2031
+ const componentName$T = getComponentName('switch-toggle');
2024
2032
 
2025
2033
  const {
2026
2034
  host: host$l,
@@ -2152,17 +2160,17 @@ const SwitchToggleClass = compose(
2152
2160
  }
2153
2161
  `,
2154
2162
  excludeAttrsSync: ['label', 'tabindex'],
2155
- componentName: componentName$S,
2163
+ componentName: componentName$T,
2156
2164
  })
2157
2165
  );
2158
2166
 
2159
- customElements.define(componentName$S, SwitchToggleClass);
2167
+ customElements.define(componentName$T, SwitchToggleClass);
2160
2168
 
2161
- const componentName$R = getComponentName('loader-linear');
2169
+ const componentName$S = getComponentName('loader-linear');
2162
2170
 
2163
- class RawLoaderLinear extends createBaseClass({ componentName: componentName$R, baseSelector: ':host > div' }) {
2171
+ class RawLoaderLinear extends createBaseClass({ componentName: componentName$S, baseSelector: ':host > div' }) {
2164
2172
  static get componentName() {
2165
- return componentName$R;
2173
+ return componentName$S;
2166
2174
  }
2167
2175
 
2168
2176
  constructor() {
@@ -2223,11 +2231,11 @@ const LoaderLinearClass = compose(
2223
2231
  componentNameValidationMixin
2224
2232
  )(RawLoaderLinear);
2225
2233
 
2226
- customElements.define(componentName$R, LoaderLinearClass);
2234
+ customElements.define(componentName$S, LoaderLinearClass);
2227
2235
 
2228
- const componentName$Q = getComponentName('loader-radial');
2236
+ const componentName$R = getComponentName('loader-radial');
2229
2237
 
2230
- class RawLoaderRadial extends createBaseClass({ componentName: componentName$Q, baseSelector: ':host > div' }) {
2238
+ class RawLoaderRadial extends createBaseClass({ componentName: componentName$R, baseSelector: ':host > div' }) {
2231
2239
  constructor() {
2232
2240
  super();
2233
2241
 
@@ -2271,11 +2279,11 @@ const LoaderRadialClass = compose(
2271
2279
  componentNameValidationMixin
2272
2280
  )(RawLoaderRadial);
2273
2281
 
2274
- customElements.define(componentName$Q, LoaderRadialClass);
2282
+ customElements.define(componentName$R, LoaderRadialClass);
2275
2283
 
2276
- const componentName$P = getComponentName('container');
2284
+ const componentName$Q = getComponentName('container');
2277
2285
 
2278
- class RawContainer extends createBaseClass({ componentName: componentName$P, baseSelector: 'slot' }) {
2286
+ class RawContainer extends createBaseClass({ componentName: componentName$Q, baseSelector: 'slot' }) {
2279
2287
  constructor() {
2280
2288
  super();
2281
2289
 
@@ -2328,11 +2336,11 @@ const ContainerClass = compose(
2328
2336
  componentNameValidationMixin
2329
2337
  )(RawContainer);
2330
2338
 
2331
- customElements.define(componentName$P, ContainerClass);
2339
+ customElements.define(componentName$Q, ContainerClass);
2332
2340
 
2333
- const componentName$O = getComponentName('text');
2341
+ const componentName$P = getComponentName('text');
2334
2342
 
2335
- class RawText extends createBaseClass({ componentName: componentName$O, baseSelector: ':host > slot' }) {
2343
+ class RawText extends createBaseClass({ componentName: componentName$P, baseSelector: ':host > slot' }) {
2336
2344
  constructor() {
2337
2345
  super();
2338
2346
 
@@ -2389,8 +2397,8 @@ const TextClass = compose(
2389
2397
  componentNameValidationMixin
2390
2398
  )(RawText);
2391
2399
 
2392
- const componentName$N = getComponentName('divider');
2393
- class RawDivider extends createBaseClass({ componentName: componentName$N, baseSelector: ':host > div' }) {
2400
+ const componentName$O = getComponentName('divider');
2401
+ class RawDivider extends createBaseClass({ componentName: componentName$O, baseSelector: ':host > div' }) {
2394
2402
  constructor() {
2395
2403
  super();
2396
2404
 
@@ -2489,9 +2497,9 @@ const DividerClass = compose(
2489
2497
  componentNameValidationMixin
2490
2498
  )(RawDivider);
2491
2499
 
2492
- customElements.define(componentName$O, TextClass);
2500
+ customElements.define(componentName$P, TextClass);
2493
2501
 
2494
- customElements.define(componentName$N, DividerClass);
2502
+ customElements.define(componentName$O, DividerClass);
2495
2503
 
2496
2504
  const {
2497
2505
  host: host$i,
@@ -2600,7 +2608,7 @@ var textFieldMappings = {
2600
2608
  inputIconColor: { ...inputIcon, property: 'color' },
2601
2609
  };
2602
2610
 
2603
- const componentName$M = getComponentName('email-field');
2611
+ const componentName$N = getComponentName('email-field');
2604
2612
 
2605
2613
  const customMixin$a = (superclass) =>
2606
2614
  class EmailFieldMixinClass extends superclass {
@@ -2655,15 +2663,15 @@ const EmailFieldClass = compose(
2655
2663
  }
2656
2664
  `,
2657
2665
  excludeAttrsSync: ['tabindex'],
2658
- componentName: componentName$M,
2666
+ componentName: componentName$N,
2659
2667
  })
2660
2668
  );
2661
2669
 
2662
- customElements.define(componentName$M, EmailFieldClass);
2670
+ customElements.define(componentName$N, EmailFieldClass);
2663
2671
 
2664
- const componentName$L = getComponentName('link');
2672
+ const componentName$M = getComponentName('link');
2665
2673
 
2666
- class RawLink extends createBaseClass({ componentName: componentName$L, baseSelector: ':host a' }) {
2674
+ class RawLink extends createBaseClass({ componentName: componentName$M, baseSelector: ':host a' }) {
2667
2675
  constructor() {
2668
2676
  super();
2669
2677
 
@@ -2727,7 +2735,7 @@ const LinkClass = compose(
2727
2735
  componentNameValidationMixin
2728
2736
  )(RawLink);
2729
2737
 
2730
- customElements.define(componentName$L, LinkClass);
2738
+ customElements.define(componentName$M, LinkClass);
2731
2739
 
2732
2740
  const createCssVarImageClass = ({ componentName, varName, fallbackVarName }) => {
2733
2741
  let style;
@@ -2779,37 +2787,37 @@ const createCssVarImageClass = ({ componentName, varName, fallbackVarName }) =>
2779
2787
  return CssVarImageClass;
2780
2788
  };
2781
2789
 
2782
- const componentName$K = getComponentName('logo');
2790
+ const componentName$L = getComponentName('logo');
2783
2791
 
2784
2792
  const LogoClass = createCssVarImageClass({
2785
- componentName: componentName$K,
2793
+ componentName: componentName$L,
2786
2794
  varName: 'url',
2787
2795
  fallbackVarName: 'fallbackUrl',
2788
2796
  });
2789
2797
 
2790
- customElements.define(componentName$K, LogoClass);
2798
+ customElements.define(componentName$L, LogoClass);
2791
2799
 
2792
- const componentName$J = getComponentName('totp-image');
2800
+ const componentName$K = getComponentName('totp-image');
2793
2801
 
2794
2802
  const TotpImageClass = createCssVarImageClass({
2795
- componentName: componentName$J,
2803
+ componentName: componentName$K,
2796
2804
  varName: 'url',
2797
2805
  fallbackVarName: 'fallbackUrl',
2798
2806
  });
2799
2807
 
2800
- customElements.define(componentName$J, TotpImageClass);
2808
+ customElements.define(componentName$K, TotpImageClass);
2801
2809
 
2802
- const componentName$I = getComponentName('notp-image');
2810
+ const componentName$J = getComponentName('notp-image');
2803
2811
 
2804
2812
  const NotpImageClass = createCssVarImageClass({
2805
- componentName: componentName$I,
2813
+ componentName: componentName$J,
2806
2814
  varName: 'url',
2807
2815
  fallbackVarName: 'fallbackUrl',
2808
2816
  });
2809
2817
 
2810
- customElements.define(componentName$I, NotpImageClass);
2818
+ customElements.define(componentName$J, NotpImageClass);
2811
2819
 
2812
- const componentName$H = getComponentName('number-field');
2820
+ const componentName$I = getComponentName('number-field');
2813
2821
 
2814
2822
  const NumberFieldClass = compose(
2815
2823
  createStyleMixin({
@@ -2843,11 +2851,11 @@ const NumberFieldClass = compose(
2843
2851
  }
2844
2852
  `,
2845
2853
  excludeAttrsSync: ['tabindex'],
2846
- componentName: componentName$H,
2854
+ componentName: componentName$I,
2847
2855
  })
2848
2856
  );
2849
2857
 
2850
- customElements.define(componentName$H, NumberFieldClass);
2858
+ customElements.define(componentName$I, NumberFieldClass);
2851
2859
 
2852
2860
  const focusElement = (ele) => {
2853
2861
  ele?.focus();
@@ -2865,13 +2873,13 @@ const getSanitizedCharacters = (str) => {
2865
2873
 
2866
2874
  /* eslint-disable no-param-reassign */
2867
2875
 
2868
- const componentName$G = getComponentName('passcode-internal');
2876
+ const componentName$H = getComponentName('passcode-internal');
2869
2877
 
2870
2878
  const observedAttributes$5 = ['digits', 'loading'];
2871
2879
 
2872
2880
  const forwardAttributes = ['disabled', 'bordered', 'size', 'invalid', 'readonly'];
2873
2881
 
2874
- const BaseInputClass$7 = createBaseInputClass({ componentName: componentName$G, baseSelector: 'div' });
2882
+ const BaseInputClass$7 = createBaseInputClass({ componentName: componentName$H, baseSelector: 'div' });
2875
2883
 
2876
2884
  class PasscodeInternal extends BaseInputClass$7 {
2877
2885
  static get observedAttributes() {
@@ -3097,7 +3105,7 @@ class PasscodeInternal extends BaseInputClass$7 {
3097
3105
  }
3098
3106
  }
3099
3107
 
3100
- const componentName$F = getComponentName('text-field');
3108
+ const componentName$G = getComponentName('text-field');
3101
3109
 
3102
3110
  const observedAttrs = ['type', 'label-type', 'copy-to-clipboard'];
3103
3111
 
@@ -3219,11 +3227,11 @@ const TextFieldClass = compose(
3219
3227
  }
3220
3228
  `,
3221
3229
  excludeAttrsSync: ['tabindex'],
3222
- componentName: componentName$F,
3230
+ componentName: componentName$G,
3223
3231
  })
3224
3232
  );
3225
3233
 
3226
- const componentName$E = getComponentName('passcode');
3234
+ const componentName$F = getComponentName('passcode');
3227
3235
 
3228
3236
  const observedAttributes$4 = ['digits'];
3229
3237
 
@@ -3242,17 +3250,17 @@ const customMixin$8 = (superclass) =>
3242
3250
  const template = document.createElement('template');
3243
3251
 
3244
3252
  template.innerHTML = `
3245
- <${componentName$G}
3253
+ <${componentName$H}
3246
3254
  bordered="true"
3247
3255
  name="code"
3248
3256
  tabindex="-1"
3249
3257
  slot="input"
3250
- ><slot></slot></${componentName$G}>
3258
+ ><slot></slot></${componentName$H}>
3251
3259
  `;
3252
3260
 
3253
3261
  this.baseElement.appendChild(template.content.cloneNode(true));
3254
3262
 
3255
- this.inputElement = this.shadowRoot.querySelector(componentName$G);
3263
+ this.inputElement = this.shadowRoot.querySelector(componentName$H);
3256
3264
 
3257
3265
  forwardAttrs(this, this.inputElement, { includeAttrs: ['digits', 'size', 'loading'] });
3258
3266
  }
@@ -3399,15 +3407,15 @@ const PasscodeClass = compose(
3399
3407
  ${resetInputCursor('vaadin-text-field')}
3400
3408
  `,
3401
3409
  excludeAttrsSync: ['tabindex'],
3402
- componentName: componentName$E,
3410
+ componentName: componentName$F,
3403
3411
  })
3404
3412
  );
3405
3413
 
3406
- customElements.define(componentName$F, TextFieldClass);
3414
+ customElements.define(componentName$G, TextFieldClass);
3407
3415
 
3408
- customElements.define(componentName$G, PasscodeInternal);
3416
+ customElements.define(componentName$H, PasscodeInternal);
3409
3417
 
3410
- customElements.define(componentName$E, PasscodeClass);
3418
+ customElements.define(componentName$F, PasscodeClass);
3411
3419
 
3412
3420
  const passwordDraggableMixin = (superclass) =>
3413
3421
  class PasswordDraggableMixinClass extends superclass {
@@ -3448,7 +3456,7 @@ const passwordDraggableMixin = (superclass) =>
3448
3456
  }
3449
3457
  };
3450
3458
 
3451
- const componentName$D = getComponentName('password');
3459
+ const componentName$E = getComponentName('password');
3452
3460
 
3453
3461
  const customMixin$7 = (superclass) =>
3454
3462
  class PasswordFieldMixinClass extends superclass {
@@ -3637,11 +3645,11 @@ const PasswordClass = compose(
3637
3645
  }
3638
3646
  `,
3639
3647
  excludeAttrsSync: ['tabindex'],
3640
- componentName: componentName$D,
3648
+ componentName: componentName$E,
3641
3649
  })
3642
3650
  );
3643
3651
 
3644
- customElements.define(componentName$D, PasswordClass);
3652
+ customElements.define(componentName$E, PasswordClass);
3645
3653
 
3646
3654
  const disableRules = [
3647
3655
  'blockquote',
@@ -3666,9 +3674,9 @@ const decodeHTML = (html) => {
3666
3674
 
3667
3675
  /* eslint-disable no-param-reassign */
3668
3676
 
3669
- const componentName$C = getComponentName('enriched-text');
3677
+ const componentName$D = getComponentName('enriched-text');
3670
3678
 
3671
- let EnrichedText$2 = class EnrichedText extends createBaseClass({ componentName: componentName$C, baseSelector: ':host > div' }) {
3679
+ let EnrichedText$2 = class EnrichedText extends createBaseClass({ componentName: componentName$D, baseSelector: ':host > div' }) {
3672
3680
  #origLinkRenderer;
3673
3681
 
3674
3682
  #origEmRenderer;
@@ -3857,9 +3865,9 @@ const EnrichedTextClass = compose(
3857
3865
  componentNameValidationMixin
3858
3866
  )(EnrichedText$2);
3859
3867
 
3860
- customElements.define(componentName$C, EnrichedTextClass);
3868
+ customElements.define(componentName$D, EnrichedTextClass);
3861
3869
 
3862
- const componentName$B = getComponentName('text-area');
3870
+ const componentName$C = getComponentName('text-area');
3863
3871
 
3864
3872
  const {
3865
3873
  host: host$e,
@@ -3935,17 +3943,17 @@ const TextAreaClass = compose(
3935
3943
  ${resetInputCursor('vaadin-text-area')}
3936
3944
  `,
3937
3945
  excludeAttrsSync: ['tabindex'],
3938
- componentName: componentName$B,
3946
+ componentName: componentName$C,
3939
3947
  })
3940
3948
  );
3941
3949
 
3942
- customElements.define(componentName$B, TextAreaClass);
3950
+ customElements.define(componentName$C, TextAreaClass);
3943
3951
 
3944
3952
  const observedAttributes$3 = ['src', 'alt'];
3945
3953
 
3946
- const componentName$A = getComponentName('image');
3954
+ const componentName$B = getComponentName('image');
3947
3955
 
3948
- const BaseClass$1 = createBaseClass({ componentName: componentName$A, baseSelector: ':host > img' });
3956
+ const BaseClass$1 = createBaseClass({ componentName: componentName$B, baseSelector: ':host > img' });
3949
3957
  class RawImage extends BaseClass$1 {
3950
3958
  static get observedAttributes() {
3951
3959
  return observedAttributes$3.concat(BaseClass$1.observedAttributes || []);
@@ -3985,9 +3993,9 @@ const ImageClass = compose(
3985
3993
  draggableMixin
3986
3994
  )(RawImage);
3987
3995
 
3988
- customElements.define(componentName$A, ImageClass);
3996
+ customElements.define(componentName$B, ImageClass);
3989
3997
 
3990
- const componentName$z = getComponentName('combo-box');
3998
+ const componentName$A = getComponentName('combo-box');
3991
3999
 
3992
4000
  const ComboBoxMixin = (superclass) =>
3993
4001
  class ComboBoxMixinClass extends superclass {
@@ -4426,12 +4434,12 @@ const ComboBoxClass = compose(
4426
4434
  // and reset items to an empty array, and opening the list box with no items
4427
4435
  // to display.
4428
4436
  excludeAttrsSync: ['tabindex', 'size', 'data'],
4429
- componentName: componentName$z,
4437
+ componentName: componentName$A,
4430
4438
  includeForwardProps: ['items', 'renderer', 'selectedItem'],
4431
4439
  })
4432
4440
  );
4433
4441
 
4434
- customElements.define(componentName$z, ComboBoxClass);
4442
+ customElements.define(componentName$A, ComboBoxClass);
4435
4443
 
4436
4444
  var CountryCodes = [
4437
4445
  // United States should be the first option
@@ -5674,7 +5682,7 @@ const comboBoxItem = ({ code, dialCode, name: country }) => `
5674
5682
  </div>
5675
5683
  `;
5676
5684
 
5677
- const componentName$y = getComponentName('phone-field-internal');
5685
+ const componentName$z = getComponentName('phone-field-internal');
5678
5686
 
5679
5687
  const commonAttrs$1 = ['disabled', 'size', 'bordered', 'invalid', 'readonly'];
5680
5688
  const countryAttrs = ['country-input-placeholder', 'default-code', 'restrict-countries'];
@@ -5688,7 +5696,7 @@ const mapAttrs$1 = {
5688
5696
 
5689
5697
  const inputRelatedAttrs$1 = [].concat(commonAttrs$1, countryAttrs, phoneAttrs, labelTypeAttrs);
5690
5698
 
5691
- const BaseInputClass$6 = createBaseInputClass({ componentName: componentName$y, baseSelector: 'div' });
5699
+ const BaseInputClass$6 = createBaseInputClass({ componentName: componentName$z, baseSelector: 'div' });
5692
5700
 
5693
5701
  let PhoneFieldInternal$1 = class PhoneFieldInternal extends BaseInputClass$6 {
5694
5702
  static get observedAttributes() {
@@ -5905,12 +5913,12 @@ let PhoneFieldInternal$1 = class PhoneFieldInternal extends BaseInputClass$6 {
5905
5913
  }
5906
5914
  };
5907
5915
 
5908
- customElements.define(componentName$y, PhoneFieldInternal$1);
5916
+ customElements.define(componentName$z, PhoneFieldInternal$1);
5909
5917
 
5910
5918
  const textVars$1 = TextFieldClass.cssVarList;
5911
5919
  const comboVars = ComboBoxClass.cssVarList;
5912
5920
 
5913
- const componentName$x = getComponentName('phone-field');
5921
+ const componentName$y = getComponentName('phone-field');
5914
5922
 
5915
5923
  const customMixin$6 = (superclass) =>
5916
5924
  class PhoneFieldMixinClass extends superclass {
@@ -5924,15 +5932,15 @@ const customMixin$6 = (superclass) =>
5924
5932
  const template = document.createElement('template');
5925
5933
 
5926
5934
  template.innerHTML = `
5927
- <${componentName$y}
5935
+ <${componentName$z}
5928
5936
  tabindex="-1"
5929
5937
  slot="input"
5930
- ></${componentName$y}>
5938
+ ></${componentName$z}>
5931
5939
  `;
5932
5940
 
5933
5941
  this.baseElement.appendChild(template.content.cloneNode(true));
5934
5942
 
5935
- this.inputElement = this.shadowRoot.querySelector(componentName$y);
5943
+ this.inputElement = this.shadowRoot.querySelector(componentName$z);
5936
5944
 
5937
5945
  forwardAttrs(this.shadowRoot.host, this.inputElement, {
5938
5946
  includeAttrs: [
@@ -6154,17 +6162,17 @@ const PhoneFieldClass = compose(
6154
6162
  ${resetInputLabelPosition('vaadin-text-field')}
6155
6163
  `,
6156
6164
  excludeAttrsSync: ['tabindex'],
6157
- componentName: componentName$x,
6165
+ componentName: componentName$y,
6158
6166
  })
6159
6167
  );
6160
6168
 
6161
- customElements.define(componentName$x, PhoneFieldClass);
6169
+ customElements.define(componentName$y, PhoneFieldClass);
6162
6170
 
6163
6171
  const getCountryByCodeId = (countryCode) => {
6164
6172
  return CountryCodes.find((c) => c.code === countryCode)?.dialCode;
6165
6173
  };
6166
6174
 
6167
- const componentName$w = getComponentName('phone-field-internal-input-box');
6175
+ const componentName$x = getComponentName('phone-field-internal-input-box');
6168
6176
 
6169
6177
  const observedAttributes$2 = [
6170
6178
  'disabled',
@@ -6181,7 +6189,7 @@ const mapAttrs = {
6181
6189
  'phone-input-placeholder': 'placeholder',
6182
6190
  };
6183
6191
 
6184
- const BaseInputClass$5 = createBaseInputClass({ componentName: componentName$w, baseSelector: 'div' });
6192
+ const BaseInputClass$5 = createBaseInputClass({ componentName: componentName$x, baseSelector: 'div' });
6185
6193
 
6186
6194
  class PhoneFieldInternal extends BaseInputClass$5 {
6187
6195
  static get observedAttributes() {
@@ -6320,11 +6328,11 @@ class PhoneFieldInternal extends BaseInputClass$5 {
6320
6328
  }
6321
6329
  }
6322
6330
 
6323
- customElements.define(componentName$w, PhoneFieldInternal);
6331
+ customElements.define(componentName$x, PhoneFieldInternal);
6324
6332
 
6325
6333
  const textVars = TextFieldClass.cssVarList;
6326
6334
 
6327
- const componentName$v = getComponentName('phone-input-box-field');
6335
+ const componentName$w = getComponentName('phone-input-box-field');
6328
6336
 
6329
6337
  const customMixin$5 = (superclass) =>
6330
6338
  class PhoneInputBoxFieldMixinClass extends superclass {
@@ -6338,15 +6346,15 @@ const customMixin$5 = (superclass) =>
6338
6346
  const template = document.createElement('template');
6339
6347
 
6340
6348
  template.innerHTML = `
6341
- <${componentName$w}
6349
+ <${componentName$x}
6342
6350
  tabindex="-1"
6343
6351
  slot="input"
6344
- ></${componentName$w}>
6352
+ ></${componentName$x}>
6345
6353
  `;
6346
6354
 
6347
6355
  this.baseElement.appendChild(template.content.cloneNode(true));
6348
6356
 
6349
- this.inputElement = this.shadowRoot.querySelector(componentName$w);
6357
+ this.inputElement = this.shadowRoot.querySelector(componentName$x);
6350
6358
 
6351
6359
  forwardAttrs(this.shadowRoot.host, this.inputElement, {
6352
6360
  includeAttrs: [
@@ -6523,26 +6531,26 @@ const PhoneFieldInputBoxClass = compose(
6523
6531
  ${inputFloatingLabelStyle()}
6524
6532
  `,
6525
6533
  excludeAttrsSync: ['tabindex'],
6526
- componentName: componentName$v,
6534
+ componentName: componentName$w,
6527
6535
  })
6528
6536
  );
6529
6537
 
6530
- customElements.define(componentName$v, PhoneFieldInputBoxClass);
6538
+ customElements.define(componentName$w, PhoneFieldInputBoxClass);
6531
6539
 
6532
- const componentName$u = getComponentName('new-password-internal');
6540
+ const componentName$v = getComponentName('new-password-internal');
6533
6541
 
6534
6542
  const interpolateString = (template, values) =>
6535
6543
  template.replace(/{{(\w+)+}}/g, (match, key) => values?.[key] || match);
6536
6544
 
6537
6545
  // eslint-disable-next-line max-classes-per-file
6538
6546
 
6539
- const componentName$t = getComponentName('policy-validation');
6547
+ const componentName$u = getComponentName('policy-validation');
6540
6548
 
6541
6549
  const overrideAttrs = ['data-password-policy-value-minlength'];
6542
6550
  const dataAttrs = ['data', 'active-policies', 'overrides', ...overrideAttrs];
6543
6551
  const policyAttrs = ['label', 'value', ...dataAttrs];
6544
6552
 
6545
- class RawPolicyValidation extends createBaseClass({ componentName: componentName$t, baseSelector: ':host > div' }) {
6553
+ class RawPolicyValidation extends createBaseClass({ componentName: componentName$u, baseSelector: ':host > div' }) {
6546
6554
  #availablePolicies;
6547
6555
 
6548
6556
  #activePolicies = [];
@@ -6750,7 +6758,7 @@ const PolicyValidationClass = compose(
6750
6758
  componentNameValidationMixin
6751
6759
  )(RawPolicyValidation);
6752
6760
 
6753
- const componentName$s = getComponentName('new-password');
6761
+ const componentName$t = getComponentName('new-password');
6754
6762
 
6755
6763
  const policyPreviewVars = PolicyValidationClass.cssVarList;
6756
6764
 
@@ -6762,17 +6770,17 @@ const customMixin$4 = (superclass) =>
6762
6770
  const template = document.createElement('template');
6763
6771
 
6764
6772
  template.innerHTML = `
6765
- <${componentName$u}
6773
+ <${componentName$v}
6766
6774
  name="new-password"
6767
6775
  tabindex="-1"
6768
6776
  slot="input"
6769
6777
  >
6770
- </${componentName$u}>
6778
+ </${componentName$v}>
6771
6779
  `;
6772
6780
 
6773
6781
  this.baseElement.appendChild(template.content.cloneNode(true));
6774
6782
 
6775
- this.inputElement = this.shadowRoot.querySelector(componentName$u);
6783
+ this.inputElement = this.shadowRoot.querySelector(componentName$v);
6776
6784
 
6777
6785
  forwardAttrs(this, this.inputElement, {
6778
6786
  includeAttrs: [
@@ -6915,11 +6923,11 @@ const NewPasswordClass = compose(
6915
6923
  }
6916
6924
  `,
6917
6925
  excludeAttrsSync: ['tabindex'],
6918
- componentName: componentName$s,
6926
+ componentName: componentName$t,
6919
6927
  })
6920
6928
  );
6921
6929
 
6922
- customElements.define(componentName$t, PolicyValidationClass);
6930
+ customElements.define(componentName$u, PolicyValidationClass);
6923
6931
 
6924
6932
  const passwordAttrPrefixRegex = /^password-/;
6925
6933
  const confirmAttrPrefixRegex = /^confirm-/;
@@ -6950,7 +6958,7 @@ const inputRelatedAttrs = [].concat(
6950
6958
  policyPanelAttrs
6951
6959
  );
6952
6960
 
6953
- const BaseInputClass$4 = createBaseInputClass({ componentName: componentName$u, baseSelector: 'div' });
6961
+ const BaseInputClass$4 = createBaseInputClass({ componentName: componentName$v, baseSelector: 'div' });
6954
6962
 
6955
6963
  class NewPasswordInternal extends BaseInputClass$4 {
6956
6964
  static get observedAttributes() {
@@ -7148,16 +7156,16 @@ class NewPasswordInternal extends BaseInputClass$4 {
7148
7156
  }
7149
7157
  }
7150
7158
 
7151
- customElements.define(componentName$u, NewPasswordInternal);
7159
+ customElements.define(componentName$v, NewPasswordInternal);
7152
7160
 
7153
- customElements.define(componentName$s, NewPasswordClass);
7161
+ customElements.define(componentName$t, NewPasswordClass);
7154
7162
 
7155
- const componentName$r = getComponentName('recaptcha');
7163
+ const componentName$s = getComponentName('recaptcha');
7156
7164
 
7157
7165
  const observedAttributes$1 = ['enabled', 'site-key', 'action', 'enterprise'];
7158
7166
 
7159
7167
  const BaseClass = createBaseClass({
7160
- componentName: componentName$r,
7168
+ componentName: componentName$s,
7161
7169
  baseSelector: ':host > div',
7162
7170
  });
7163
7171
  class RawRecaptcha extends BaseClass {
@@ -7344,7 +7352,7 @@ class RawRecaptcha extends BaseClass {
7344
7352
 
7345
7353
  const RecaptchaClass = compose(draggableMixin)(RawRecaptcha);
7346
7354
 
7347
- customElements.define(componentName$r, RecaptchaClass);
7355
+ customElements.define(componentName$s, RecaptchaClass);
7348
7356
 
7349
7357
  const getFileBase64 = (fileObj) => {
7350
7358
  return new Promise((resolve) => {
@@ -7358,7 +7366,7 @@ const getFilename = (fileObj) => {
7358
7366
  return fileObj.name.replace(/^.*\\/, '');
7359
7367
  };
7360
7368
 
7361
- const componentName$q = getComponentName('upload-file');
7369
+ const componentName$r = getComponentName('upload-file');
7362
7370
 
7363
7371
  const observedAttributes = [
7364
7372
  'title',
@@ -7373,7 +7381,7 @@ const observedAttributes = [
7373
7381
  'icon',
7374
7382
  ];
7375
7383
 
7376
- const BaseInputClass$3 = createBaseInputClass({ componentName: componentName$q, baseSelector: ':host > div' });
7384
+ const BaseInputClass$3 = createBaseInputClass({ componentName: componentName$r, baseSelector: ':host > div' });
7377
7385
 
7378
7386
  class RawUploadFile extends BaseInputClass$3 {
7379
7387
  static get observedAttributes() {
@@ -7588,7 +7596,7 @@ const UploadFileClass = compose(
7588
7596
  componentNameValidationMixin
7589
7597
  )(RawUploadFile);
7590
7598
 
7591
- customElements.define(componentName$q, UploadFileClass);
7599
+ customElements.define(componentName$r, UploadFileClass);
7592
7600
 
7593
7601
  const createBaseButtonSelectionGroupInternalClass = (componentName) => {
7594
7602
  class BaseButtonSelectionGroupInternalClass extends createBaseInputClass({
@@ -7686,10 +7694,10 @@ const createBaseButtonSelectionGroupInternalClass = (componentName) => {
7686
7694
  return BaseButtonSelectionGroupInternalClass;
7687
7695
  };
7688
7696
 
7689
- const componentName$p = getComponentName('button-selection-group-internal');
7697
+ const componentName$q = getComponentName('button-selection-group-internal');
7690
7698
 
7691
7699
  class ButtonSelectionGroupInternalClass extends createBaseButtonSelectionGroupInternalClass(
7692
- componentName$p
7700
+ componentName$q
7693
7701
  ) {
7694
7702
  getSelectedNode() {
7695
7703
  return this.items.find((item) => item.hasAttribute('selected'));
@@ -7921,7 +7929,7 @@ const buttonSelectionGroupStyles = `
7921
7929
  ${resetInputCursor('vaadin-text-field')}
7922
7930
  `;
7923
7931
 
7924
- const componentName$o = getComponentName('button-selection-group');
7932
+ const componentName$p = getComponentName('button-selection-group');
7925
7933
 
7926
7934
  const buttonSelectionGroupMixin = (superclass) =>
7927
7935
  class ButtonMultiSelectionGroupMixinClass extends superclass {
@@ -7930,19 +7938,19 @@ const buttonSelectionGroupMixin = (superclass) =>
7930
7938
  const template = document.createElement('template');
7931
7939
 
7932
7940
  template.innerHTML = `
7933
- <${componentName$p}
7941
+ <${componentName$q}
7934
7942
  name="button-selection-group"
7935
7943
  slot="input"
7936
7944
  tabindex="-1"
7937
7945
  part="internal-component"
7938
7946
  >
7939
7947
  <slot></slot>
7940
- </${componentName$p}>
7948
+ </${componentName$q}>
7941
7949
  `;
7942
7950
 
7943
7951
  this.baseElement.appendChild(template.content.cloneNode(true));
7944
7952
 
7945
- this.inputElement = this.shadowRoot.querySelector(componentName$p);
7953
+ this.inputElement = this.shadowRoot.querySelector(componentName$q);
7946
7954
 
7947
7955
  forwardAttrs(this, this.inputElement, {
7948
7956
  includeAttrs: ['size', 'default-value', 'allow-deselect'],
@@ -7967,16 +7975,16 @@ const ButtonSelectionGroupClass = compose(
7967
7975
  wrappedEleName: 'vaadin-text-field',
7968
7976
  style: () => buttonSelectionGroupStyles,
7969
7977
  excludeAttrsSync: ['tabindex'],
7970
- componentName: componentName$o,
7978
+ componentName: componentName$p,
7971
7979
  })
7972
7980
  );
7973
7981
 
7974
- customElements.define(componentName$p, ButtonSelectionGroupInternalClass);
7982
+ customElements.define(componentName$q, ButtonSelectionGroupInternalClass);
7975
7983
 
7976
- const componentName$n = getComponentName('button-selection-group-item');
7984
+ const componentName$o = getComponentName('button-selection-group-item');
7977
7985
 
7978
7986
  class RawSelectItem extends createBaseClass({
7979
- componentName: componentName$n,
7987
+ componentName: componentName$o,
7980
7988
  baseSelector: ':host > descope-button',
7981
7989
  }) {
7982
7990
  get size() {
@@ -8083,14 +8091,14 @@ const ButtonSelectionGroupItemClass = compose(
8083
8091
  componentNameValidationMixin
8084
8092
  )(RawSelectItem);
8085
8093
 
8086
- customElements.define(componentName$n, ButtonSelectionGroupItemClass);
8094
+ customElements.define(componentName$o, ButtonSelectionGroupItemClass);
8087
8095
 
8088
- customElements.define(componentName$o, ButtonSelectionGroupClass);
8096
+ customElements.define(componentName$p, ButtonSelectionGroupClass);
8089
8097
 
8090
- const componentName$m = getComponentName('button-multi-selection-group-internal');
8098
+ const componentName$n = getComponentName('button-multi-selection-group-internal');
8091
8099
 
8092
8100
  class ButtonMultiSelectionGroupInternalClass extends createBaseButtonSelectionGroupInternalClass(
8093
- componentName$m
8101
+ componentName$n
8094
8102
  ) {
8095
8103
  #getSelectedNodes() {
8096
8104
  return this.items.filter((item) => item.hasAttribute('selected'));
@@ -8193,7 +8201,7 @@ class ButtonMultiSelectionGroupInternalClass extends createBaseButtonSelectionGr
8193
8201
  }
8194
8202
  }
8195
8203
 
8196
- const componentName$l = getComponentName('button-multi-selection-group');
8204
+ const componentName$m = getComponentName('button-multi-selection-group');
8197
8205
 
8198
8206
  const buttonMultiSelectionGroupMixin = (superclass) =>
8199
8207
  class ButtonMultiSelectionGroupMixinClass extends superclass {
@@ -8202,19 +8210,19 @@ const buttonMultiSelectionGroupMixin = (superclass) =>
8202
8210
  const template = document.createElement('template');
8203
8211
 
8204
8212
  template.innerHTML = `
8205
- <${componentName$m}
8213
+ <${componentName$n}
8206
8214
  name="button-selection-group"
8207
8215
  slot="input"
8208
8216
  tabindex="-1"
8209
8217
  part="internal-component"
8210
8218
  >
8211
8219
  <slot></slot>
8212
- </${componentName$m}>
8220
+ </${componentName$n}>
8213
8221
  `;
8214
8222
 
8215
8223
  this.baseElement.appendChild(template.content.cloneNode(true));
8216
8224
 
8217
- this.inputElement = this.shadowRoot.querySelector(componentName$m);
8225
+ this.inputElement = this.shadowRoot.querySelector(componentName$n);
8218
8226
 
8219
8227
  forwardAttrs(this, this.inputElement, {
8220
8228
  includeAttrs: ['size', 'default-values', 'min-items-selection', 'max-items-selection'],
@@ -8239,13 +8247,13 @@ const ButtonMultiSelectionGroupClass = compose(
8239
8247
  wrappedEleName: 'vaadin-text-field',
8240
8248
  style: () => buttonSelectionGroupStyles,
8241
8249
  excludeAttrsSync: ['tabindex'],
8242
- componentName: componentName$l,
8250
+ componentName: componentName$m,
8243
8251
  })
8244
8252
  );
8245
8253
 
8246
- customElements.define(componentName$m, ButtonMultiSelectionGroupInternalClass);
8254
+ customElements.define(componentName$n, ButtonMultiSelectionGroupInternalClass);
8247
8255
 
8248
- customElements.define(componentName$l, ButtonMultiSelectionGroupClass);
8256
+ customElements.define(componentName$m, ButtonMultiSelectionGroupClass);
8249
8257
 
8250
8258
  /* eslint-disable no-param-reassign */
8251
8259
 
@@ -8273,9 +8281,9 @@ class GridTextColumnClass extends GridSortColumn {
8273
8281
  }
8274
8282
  }
8275
8283
 
8276
- const componentName$k = getComponentName('grid-text-column');
8284
+ const componentName$l = getComponentName('grid-text-column');
8277
8285
 
8278
- customElements.define(componentName$k, GridTextColumnClass);
8286
+ customElements.define(componentName$l, GridTextColumnClass);
8279
8287
 
8280
8288
  /* eslint-disable no-param-reassign */
8281
8289
 
@@ -8310,9 +8318,9 @@ class GridCustomColumnClass extends GridTextColumnClass {
8310
8318
 
8311
8319
  /* eslint-disable no-param-reassign */
8312
8320
 
8313
- const componentName$j = getComponentName('grid-custom-column');
8321
+ const componentName$k = getComponentName('grid-custom-column');
8314
8322
 
8315
- customElements.define(componentName$j, GridCustomColumnClass);
8323
+ customElements.define(componentName$k, GridCustomColumnClass);
8316
8324
 
8317
8325
  const createCheckboxEle = () => {
8318
8326
  const checkbox = document.createElement('descope-checkbox');
@@ -8371,9 +8379,50 @@ class GridSelectionColumnClass extends GridSelectionColumn {
8371
8379
  }
8372
8380
  }
8373
8381
 
8374
- const componentName$i = getComponentName('grid-selection-column');
8382
+ const componentName$j = getComponentName('grid-selection-column');
8375
8383
 
8376
- customElements.define(componentName$i, GridSelectionColumnClass);
8384
+ customElements.define(componentName$j, GridSelectionColumnClass);
8385
+
8386
+ /* eslint-disable no-param-reassign */
8387
+
8388
+ class GridItemDetailsColumnClass extends GridSortColumn {
8389
+ get sortable() {
8390
+ return this.getAttribute('sortable') === 'true';
8391
+ }
8392
+
8393
+ // eslint-disable-next-line class-methods-use-this
8394
+ _defaultRenderer(cell, _col, model) {
8395
+ const grid = _col._gridValue;
8396
+ const itemIdx = grid.detailsOpenedItems?.indexOf(model.item) ?? -1;
8397
+ const isOpened = itemIdx !== -1;
8398
+
8399
+ const toggleIcon = document.createElement('vaadin-icon');
8400
+ toggleIcon.icon = isOpened ? 'vaadin:angle-up' : 'vaadin:angle-down';
8401
+ toggleIcon.classList.add('toggle-details-button', isOpened ? 'opened' : 'closed');
8402
+ cell.innerHTML = '';
8403
+ cell.append(toggleIcon);
8404
+
8405
+ toggleIcon.onclick = () => {
8406
+ grid.detailsOpenedItems = isOpened
8407
+ ? grid.detailsOpenedItems.toSpliced(itemIdx, 1)
8408
+ : [...grid.detailsOpenedItems, model.item];
8409
+ };
8410
+ }
8411
+
8412
+ _defaultHeaderRenderer(root, _column) {
8413
+ if (this.sortable) {
8414
+ super._defaultHeaderRenderer(root, _column);
8415
+
8416
+ return;
8417
+ }
8418
+
8419
+ this.__setTextContent(root, this.__getHeader(this.header, this.path));
8420
+ }
8421
+ }
8422
+
8423
+ const componentName$i = getComponentName('grid-item-details-column');
8424
+
8425
+ customElements.define(componentName$i, GridItemDetailsColumnClass);
8377
8426
 
8378
8427
  const isValidDataType = (data) => {
8379
8428
  const isValid = Array.isArray(data);
@@ -8385,6 +8434,58 @@ const isValidDataType = (data) => {
8385
8434
  return isValid;
8386
8435
  };
8387
8436
 
8437
+ const isPlainObject = (value) => value?.constructor === Object;
8438
+
8439
+ const getValueType = (value) => {
8440
+ if (isPlainObject(value)) return 'object';
8441
+ if (Array.isArray(value)) return 'array';
8442
+
8443
+ return 'text';
8444
+ };
8445
+
8446
+ const renderCodeSnippet = (value) =>
8447
+ `<descope-code-snippet lang="json" class="row-details__value json">${JSON.stringify(
8448
+ value,
8449
+ null,
8450
+ 2
8451
+ )}</descope-code-snippet>`;
8452
+
8453
+ const renderText = (text) =>
8454
+ `<div class="row-details__value text" title="${text}">${text}</div>`;
8455
+
8456
+ const defaultRowDetailsValueRenderer = (value) => {
8457
+ const valueType = getValueType(value);
8458
+
8459
+ if (valueType === 'object') {
8460
+ return renderCodeSnippet(value);
8461
+ }
8462
+
8463
+ if (valueType === 'array') {
8464
+ if (value.some((v) => getValueType(v) === 'object')) {
8465
+ return renderCodeSnippet(value);
8466
+ }
8467
+ return renderText(value.join(',\n'));
8468
+ }
8469
+
8470
+ return renderText(value);
8471
+ };
8472
+
8473
+ const defaultRowDetailsRenderer = (item, itemLabelsMapping) => {
8474
+ return `
8475
+ <div class="row-details">
8476
+ ${Object.entries(item)
8477
+ .map(
8478
+ ([key, value]) =>
8479
+ `<div class="row-details__item" >
8480
+ <div class="row-details__label">${itemLabelsMapping[key] || toTitle(key)}</div>
8481
+ ${defaultRowDetailsValueRenderer(value)}
8482
+ </div>`
8483
+ )
8484
+ .join('\n')}
8485
+ </div>
8486
+ `;
8487
+ };
8488
+
8388
8489
  const componentName$h = getComponentName('grid');
8389
8490
 
8390
8491
  const GridMixin = (superclass) =>
@@ -8398,6 +8499,41 @@ const GridMixin = (superclass) =>
8398
8499
 
8399
8500
  // disable the grid sort
8400
8501
  this.baseElement._mapSorters = () => {};
8502
+
8503
+ this.baseElement.rowDetailsRenderer = this.#rowDetailsRenderer.bind(this);
8504
+ }
8505
+
8506
+ // this renders the details panel content
8507
+ // in order to open it, the descope-grid-item-details-column should be used
8508
+ #rowDetailsRenderer = async (cell, _col, model) => {
8509
+ await Promise.resolve().then(function () { return index; });
8510
+ // prevent details panel from being scrolled into view when clicked
8511
+ cell.addEventListener('mousedown', (e) => e.stopImmediatePropagation(), true);
8512
+
8513
+ const template = this.getRowDetailsTemplate(model.item);
8514
+
8515
+ // eslint-disable-next-line no-param-reassign
8516
+ cell.innerHTML = '';
8517
+ cell.append(template.content.cloneNode(true));
8518
+ };
8519
+
8520
+ getRowDetailsTemplate(item) {
8521
+ const itemLabelsMapping = this.#columns.reduce(
8522
+ (acc, { path, header }) => (!path || !header ? acc : { ...acc, [path]: header }),
8523
+ {}
8524
+ );
8525
+ const template =
8526
+ this.rowDetailsRenderer?.(item, itemLabelsMapping) ??
8527
+ defaultRowDetailsRenderer(item, itemLabelsMapping);
8528
+
8529
+ switch (true) {
8530
+ case template instanceof HTMLTemplateElement:
8531
+ return template;
8532
+ case typeof template === 'string':
8533
+ return Object.assign(document.createElement('template'), { innerHTML: template });
8534
+ default:
8535
+ throw new Error('rowDetailsRenderer should return a string or a template');
8536
+ }
8401
8537
  }
8402
8538
 
8403
8539
  forwardSelectedItemsChange() {
@@ -8491,9 +8627,20 @@ const GridMixin = (superclass) =>
8491
8627
  );
8492
8628
  }
8493
8629
 
8630
+ // there is an issue in vaadin-grid, when rowDetailsRenderer is set, it renders an empty details panel
8631
+ reassignRowDetailsRenderer() {
8632
+ this.baseElement.rowDetailsRenderer = null;
8633
+ setTimeout(() => {
8634
+ this.baseElement.rowDetailsRenderer = this.#rowDetailsRenderer.bind(this);
8635
+ }, 0);
8636
+ }
8637
+
8494
8638
  renderColumns() {
8495
8639
  const template = this.getColumnsTemplate();
8496
- if (template) this.innerHTML = template;
8640
+ if (template) {
8641
+ this.reassignRowDetailsRenderer();
8642
+ this.innerHTML = template;
8643
+ }
8497
8644
  }
8498
8645
 
8499
8646
  get grid() {
@@ -8555,17 +8702,35 @@ const {
8555
8702
  selectedRow,
8556
8703
  rowSeparator,
8557
8704
  resizeHandle,
8705
+ toggleDetailsPanelButton,
8706
+ toggleDetailsPanelButtonOpened,
8707
+ toggleDetailsPanelButtonClosed,
8708
+ detailsPanel,
8709
+ detailsPanelLabels,
8710
+ selectedRowCell,
8711
+ detailsPanelContent,
8558
8712
  } = {
8559
8713
  host: { selector: () => 'vaadin-grid' },
8560
8714
  headerRow: { selector: () => '::part(header-cell)' },
8561
8715
  headerRowCell: { selector: () => 'vaadin-grid::part(header-cell)' },
8562
8716
  contentRow: { selector: () => '::part(cell)' },
8563
8717
  firstRow: { selector: () => '::part(first-header-row-cell)' },
8564
- selectedRow: { selector: () => '::part(selected-row-cell)' },
8718
+ selectedRow: { selector: () => '::part(selected-row)' },
8719
+ selectedRowCell: { selector: () => '::part(selected-row-cell)' },
8565
8720
  sortIndicators: { selector: () => 'vaadin-grid-sorter::part(indicators)' },
8566
8721
  activeSortIndicator: { selector: () => 'vaadin-grid-sorter[direction]' },
8567
8722
  rowSeparator: { selector: () => 'vaadin-grid::part(body-cell)' },
8568
8723
  resizeHandle: { selector: () => '::part(resize-handle)' },
8724
+ toggleDetailsPanelButton: { selector: () => 'vaadin-grid vaadin-icon.toggle-details-button' },
8725
+ toggleDetailsPanelButtonOpened: {
8726
+ selector: () => 'vaadin-grid vaadin-icon.toggle-details-button.opened',
8727
+ },
8728
+ toggleDetailsPanelButtonClosed: {
8729
+ selector: () => 'vaadin-grid vaadin-icon.toggle-details-button.closed',
8730
+ },
8731
+ detailsPanel: { selector: () => 'vaadin-grid::part(details-cell)' },
8732
+ detailsPanelLabels: { selector: () => 'vaadin-grid .row-details__label' },
8733
+ detailsPanelContent: { selector: () => 'vaadin-grid .row-details' },
8569
8734
  };
8570
8735
 
8571
8736
  const GridClass = compose(
@@ -8589,7 +8754,10 @@ const GridClass = compose(
8589
8754
  borderWidth: { ...host$6, property: 'border-width' },
8590
8755
  borderStyle: { ...host$6, property: 'border-style' },
8591
8756
  borderRadius: { ...host$6, property: 'border-radius' },
8592
- selectedBackgroundColor: { ...selectedRow, property: 'background-color' },
8757
+ selectedBackgroundColor: [
8758
+ { ...selectedRow, property: 'background-color' },
8759
+ { ...selectedRowCell, property: 'background-color' },
8760
+ ],
8593
8761
  headerRowTextColor: { ...headerRowCell, property: 'color' },
8594
8762
  separatorColor: [
8595
8763
  { ...firstRow, property: 'border-bottom-color' },
@@ -8597,6 +8765,19 @@ const GridClass = compose(
8597
8765
  ],
8598
8766
  resizeHandleColor: { ...resizeHandle, property: 'background-color' },
8599
8767
  hostDirection: { ...host$6, property: 'direction', fallback: 'ltr' },
8768
+ toggleDetailsPanelButtonSize: [
8769
+ { ...toggleDetailsPanelButton, property: 'width' },
8770
+ { ...toggleDetailsPanelButton, property: 'height' },
8771
+ ],
8772
+ toggleDetailsPanelButtonOpenedColor: { ...toggleDetailsPanelButtonOpened, property: 'color' },
8773
+ toggleDetailsPanelButtonClosedColor: { ...toggleDetailsPanelButtonClosed, property: 'color' },
8774
+ toggleDetailsPanelButtonCursor: { ...toggleDetailsPanelButton, property: 'cursor' },
8775
+ detailsPanelBackgroundColor: { ...detailsPanel, property: 'background-color' },
8776
+ detailsPanelBorderTopColor: { ...detailsPanel, property: 'border-top-color' },
8777
+ detailsPanelLabelsColor: { ...detailsPanelLabels, property: 'color' },
8778
+ detailsPanelLabelsFontSize: { ...detailsPanelLabels, property: 'font-size' },
8779
+ detailsPanelItemsGap: { ...detailsPanelContent, property: 'grid-gap' },
8780
+ detailsPanelPadding: { ...detailsPanelContent, property: 'padding' },
8600
8781
  },
8601
8782
  }),
8602
8783
  draggableMixin,
@@ -8608,6 +8789,7 @@ const GridClass = compose(
8608
8789
  slots: [''],
8609
8790
  wrappedEleName: 'vaadin-grid',
8610
8791
  style: () => `
8792
+ /*css*/
8611
8793
  vaadin-grid {
8612
8794
  overflow: hidden;
8613
8795
  height: 100%;
@@ -8619,7 +8801,36 @@ const GridClass = compose(
8619
8801
  vaadin-grid::part(selected-row-cell) {
8620
8802
  background-image: none;
8621
8803
  box-shadow: none;
8804
+ background-color: inherit;
8805
+ }
8806
+ vaadin-grid::part(details-cell) {
8807
+ border-top-style: dashed;
8808
+ border-top-width: 1px;
8809
+ }
8810
+ vaadin-grid .row-details {
8811
+ display: grid;
8812
+ grid-template-columns: repeat(auto-fit, minmax(max(200px, calc(100%/4 - var(${GridClass.cssVarList.detailsPanelItemsGap}))), 1fr));
8813
+ width: 100%;
8622
8814
  }
8815
+ vaadin-grid .row-details__item:has(.row-details__value.json) {
8816
+ grid-column: 1 / -1;
8817
+ order: 2;
8818
+ }
8819
+ vaadin-grid .row-details__value.text {
8820
+ overflow: hidden;
8821
+ text-overflow: ellipsis;
8822
+ white-space: pre;
8823
+ }
8824
+ vaadin-grid .row-details__value.json {
8825
+ margin-top: 5px;
8826
+ max-height: 120px;
8827
+ overflow: scroll;
8828
+ font-size: 0.85em;
8829
+ }
8830
+ vaadin-grid vaadin-icon.toggle-details-button {
8831
+ margin: auto;
8832
+ }
8833
+ /*!css*/
8623
8834
  `,
8624
8835
  excludeAttrsSync: ['columns', 'tabindex'],
8625
8836
  componentName: componentName$h,
@@ -9757,7 +9968,7 @@ const AvatarClass = compose(
9757
9968
 
9758
9969
  customElements.define(componentName$b, AvatarClass);
9759
9970
 
9760
- customElements.define(componentName$W, IconClass);
9971
+ customElements.define(componentName$X, IconClass);
9761
9972
 
9762
9973
  const componentName$a = getComponentName('mappings-field-internal');
9763
9974
 
@@ -11235,6 +11446,11 @@ const CodeSnippetClass = compose(
11235
11446
 
11236
11447
  customElements.define(componentName$3, CodeSnippetClass);
11237
11448
 
11449
+ var index = /*#__PURE__*/Object.freeze({
11450
+ __proto__: null,
11451
+ CodeSnippetClass: CodeSnippetClass
11452
+ });
11453
+
11238
11454
  const componentName$2 = getComponentName('radio-button');
11239
11455
 
11240
11456
  const customMixin = (superclass) =>
@@ -11925,7 +12141,7 @@ const mode = {
11925
12141
  surface: globalRefs$s.colors.surface,
11926
12142
  };
11927
12143
 
11928
- const [helperTheme$3, helperRefs$3, helperVars$3] = createHelperVars({ mode }, componentName$V);
12144
+ const [helperTheme$3, helperRefs$3, helperVars$3] = createHelperVars({ mode }, componentName$W);
11929
12145
 
11930
12146
  const button = {
11931
12147
  ...helperTheme$3,
@@ -12527,7 +12743,7 @@ const [helperTheme$2, helperRefs$2, helperVars$2] = createHelperVars(
12527
12743
  horizontalAlignment,
12528
12744
  shadowColor: '#00000020', // if we want to support transparency vars, we should use different color format
12529
12745
  },
12530
- componentName$P
12746
+ componentName$Q
12531
12747
  );
12532
12748
 
12533
12749
  const { shadowColor: shadowColor$1 } = helperRefs$2;
@@ -12893,7 +13109,7 @@ const [helperTheme$1, helperRefs$1, helperVars$1] = createHelperVars(
12893
13109
  thickness: '2px',
12894
13110
  spacing: '10px',
12895
13111
  },
12896
- componentName$N
13112
+ componentName$O
12897
13113
  );
12898
13114
 
12899
13115
  const divider = {
@@ -13036,7 +13252,7 @@ const [helperTheme, helperRefs, helperVars] = createHelperVars(
13036
13252
  },
13037
13253
  },
13038
13254
  },
13039
- componentName$Q
13255
+ componentName$R
13040
13256
  );
13041
13257
 
13042
13258
  const loaderRadial = {
@@ -13454,6 +13670,17 @@ const grid = {
13454
13670
  [vars$e.selectedBackgroundColor]: globalRefs$b.colors.surface.highlight,
13455
13671
  [vars$e.hostDirection]: globalRefs$b.direction,
13456
13672
 
13673
+ [vars$e.toggleDetailsPanelButtonSize]: '1em',
13674
+ [vars$e.toggleDetailsPanelButtonOpenedColor]: globalRefs$b.colors.surface.contrast,
13675
+ [vars$e.toggleDetailsPanelButtonClosedColor]: globalRefs$b.colors.surface.light,
13676
+ [vars$e.toggleDetailsPanelButtonCursor]: 'pointer',
13677
+ [vars$e.detailsPanelBackgroundColor]: globalRefs$b.colors.surface.highlight,
13678
+ [vars$e.detailsPanelBorderTopColor]: globalRefs$b.colors.surface.light,
13679
+ [vars$e.detailsPanelLabelsColor]: globalRefs$b.colors.surface.dark,
13680
+ [vars$e.detailsPanelLabelsFontSize]: '0.8em',
13681
+ [vars$e.detailsPanelItemsGap]: '2em',
13682
+ [vars$e.detailsPanelPadding]: '12px 0',
13683
+
13457
13684
  _bordered: {
13458
13685
  [vars$e.borderColor]: refs.borderColor,
13459
13686
  },