@descope/flow-components 3.0.6 → 3.0.7

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 (33) hide show
  1. package/dist/fm/119.js +2 -0
  2. package/dist/fm/119.js.map +1 -0
  3. package/dist/fm/222.js +1 -1
  4. package/dist/fm/222.js.map +1 -1
  5. package/dist/fm/467.js +1 -1
  6. package/dist/fm/467.js.map +1 -1
  7. package/dist/fm/985.js +1 -1
  8. package/dist/fm/985.js.map +1 -1
  9. package/dist/fm/@mf-types/compiled-types/CountrySubdivisionCityField/CountrySubdivisionCityField.d.ts +33 -0
  10. package/dist/fm/@mf-types/compiled-types/CountrySubdivisionCityField/index.d.ts +1 -0
  11. package/dist/fm/@mf-types/compiled-types/componentClasses.d.ts +1 -0
  12. package/dist/fm/@mf-types/compiled-types/components.d.ts +1 -0
  13. package/dist/fm/__federation_expose_componentClasses.js +1 -1
  14. package/dist/fm/__federation_expose_componentClasses.js.map +1 -1
  15. package/dist/fm/__federation_expose_components.js +1 -1
  16. package/dist/fm/__federation_expose_theme.js +1 -1
  17. package/dist/fm/__federation_expose_theme.js.map +1 -1
  18. package/dist/fm/flowComponents.js +1 -1
  19. package/dist/fm/flowComponents.js.map +1 -1
  20. package/dist/fm/main.js +1 -1
  21. package/dist/fm/main.js.map +1 -1
  22. package/dist/fm/mf-manifest.json +2 -2
  23. package/dist/fm/mf-stats.json +2 -2
  24. package/dist/index.cjs.js +1677 -641
  25. package/dist/index.d.ts +133 -101
  26. package/dist/index.esm.js +5 -2
  27. package/dist/types/CountrySubdivisionCityField/CountrySubdivisionCityField.d.ts +33 -0
  28. package/dist/types/CountrySubdivisionCityField/index.d.ts +1 -0
  29. package/dist/types/componentClasses.d.ts +1 -0
  30. package/dist/types/components.d.ts +1 -0
  31. package/package.json +2 -2
  32. package/dist/fm/626.js +0 -2
  33. package/dist/fm/626.js.map +0 -1
package/dist/index.cjs.js CHANGED
@@ -80828,7 +80828,7 @@ function requireIndex_cjs () {
80828
80828
  fonts: fonts$1,
80829
80829
  direction: direction$1,
80830
80830
  };
80831
- const vars$14 = getThemeVars(globals$1);
80831
+ const vars$15 = getThemeVars(globals$1);
80832
80832
 
80833
80833
  const direction = 'ltr';
80834
80834
 
@@ -81419,6 +81419,9 @@ function requireIndex_cjs () {
81419
81419
  'loading',
81420
81420
  'allow-custom-value',
81421
81421
  'collapsed',
81422
+ 'hide-country',
81423
+ 'hide-subdivision',
81424
+ 'hide-city',
81422
81425
  ];
81423
81426
 
81424
81427
  const isBooleanAttribute$1 = (attr) => {
@@ -81446,11 +81449,11 @@ function requireIndex_cjs () {
81446
81449
  } else if (!attrVal) {
81447
81450
  // eslint-disable-next-line no-console
81448
81451
  console.debug(
81449
- `attribute "${attr}" has no value, should it be added to the boolean attributes list?`
81452
+ `attribute "${attr}" has no value, should it be added to the boolean attributes list?`,
81450
81453
  );
81451
81454
  }
81452
81455
  }),
81453
- {}
81456
+ {},
81454
81457
  );
81455
81458
  }
81456
81459
  };
@@ -82621,12 +82624,12 @@ function requireIndex_cjs () {
82621
82624
 
82622
82625
  /* eslint-disable no-use-before-define */
82623
82626
 
82624
- const componentName$1h = getComponentName('image');
82627
+ const componentName$1j = getComponentName('image');
82625
82628
 
82626
82629
  const srcAttrs = ['src', 'src-dark'];
82627
82630
 
82628
82631
  class RawImage extends createBaseClass$1({
82629
- componentName: componentName$1h,
82632
+ componentName: componentName$1j,
82630
82633
  baseSelector: 'slot',
82631
82634
  }) {
82632
82635
  static get observedAttributes() {
@@ -82754,7 +82757,7 @@ function requireIndex_cjs () {
82754
82757
  componentNameValidationMixin$1,
82755
82758
  )(RawImage);
82756
82759
 
82757
- const componentName$1g = getComponentName('icon');
82760
+ const componentName$1i = getComponentName('icon');
82758
82761
 
82759
82762
  const IconClass = compose(
82760
82763
  createStyleMixin$1({
@@ -82775,7 +82778,7 @@ function requireIndex_cjs () {
82775
82778
  }
82776
82779
  `,
82777
82780
  excludeAttrsSync: ['tabindex', 'class', 'style'],
82778
- componentName: componentName$1g,
82781
+ componentName: componentName$1i,
82779
82782
  }),
82780
82783
  );
82781
82784
 
@@ -82790,7 +82793,7 @@ function requireIndex_cjs () {
82790
82793
  }
82791
82794
  };
82792
82795
 
82793
- const componentName$1f = getComponentName('button');
82796
+ const componentName$1h = getComponentName('button');
82794
82797
 
82795
82798
  const resetStyles = `
82796
82799
  :host {
@@ -82828,7 +82831,7 @@ function requireIndex_cjs () {
82828
82831
 
82829
82832
  const editorOverrides = `vaadin-button::part(label) { pointer-events: none; }`;
82830
82833
 
82831
- const { host: host$w, label: label$a, slottedIcon } = {
82834
+ const { host: host$x, label: label$a, slottedIcon } = {
82832
82835
  host: { selector: () => ':host' },
82833
82836
  label: { selector: '::part(label)' },
82834
82837
  slottedIcon: { selector: () => '::slotted(descope-icon)' },
@@ -82841,7 +82844,7 @@ function requireIndex_cjs () {
82841
82844
  mappings: {
82842
82845
  hostWidth: { property: 'width' },
82843
82846
  hostHeight: { property: 'height' },
82844
- hostDirection: { ...host$w, property: 'direction' },
82847
+ hostDirection: { ...host$x, property: 'direction' },
82845
82848
  fontSize: {},
82846
82849
  fontFamily: {},
82847
82850
 
@@ -82906,7 +82909,7 @@ function requireIndex_cjs () {
82906
82909
  }
82907
82910
  `,
82908
82911
  excludeAttrsSync: ['tabindex', 'class', 'style'],
82909
- componentName: componentName$1f,
82912
+ componentName: componentName$1h,
82910
82913
  })
82911
82914
  );
82912
82915
 
@@ -82954,7 +82957,7 @@ function requireIndex_cjs () {
82954
82957
  surface: globalRefs$H.colors.surface,
82955
82958
  };
82956
82959
 
82957
- const [helperTheme$6, helperRefs$6, helperVars$6] = createHelperVars$1({ mode }, componentName$1f);
82960
+ const [helperTheme$6, helperRefs$6, helperVars$6] = createHelperVars$1({ mode }, componentName$1h);
82958
82961
 
82959
82962
  const button = {
82960
82963
  ...helperTheme$6,
@@ -83066,7 +83069,7 @@ function requireIndex_cjs () {
83066
83069
  },
83067
83070
  };
83068
83071
 
83069
- const vars$13 = {
83072
+ const vars$14 = {
83070
83073
  ...compVars$9,
83071
83074
  ...helperVars$6,
83072
83075
  };
@@ -83074,13 +83077,13 @@ function requireIndex_cjs () {
83074
83077
  var button$1 = /*#__PURE__*/Object.freeze({
83075
83078
  __proto__: null,
83076
83079
  default: button,
83077
- vars: vars$13
83080
+ vars: vars$14
83078
83081
  });
83079
83082
 
83080
- const componentName$1e = getComponentName('text');
83083
+ const componentName$1g = getComponentName('text');
83081
83084
 
83082
83085
  class RawText extends createBaseClass$1({
83083
- componentName: componentName$1e,
83086
+ componentName: componentName$1g,
83084
83087
  baseSelector: ':host > slot',
83085
83088
  }) {
83086
83089
  constructor() {
@@ -83116,15 +83119,15 @@ function requireIndex_cjs () {
83116
83119
  }
83117
83120
  }
83118
83121
 
83119
- const { host: host$v } = {
83122
+ const { host: host$w } = {
83120
83123
  host: { selector: () => ':host' }
83121
83124
  };
83122
83125
 
83123
83126
  const TextClass = compose(
83124
83127
  createStyleMixin$1({
83125
83128
  mappings: {
83126
- hostWidth: { ...host$v, property: 'width' },
83127
- hostDirection: { ...host$v, property: 'direction' },
83129
+ hostWidth: { ...host$w, property: 'width' },
83130
+ hostDirection: { ...host$w, property: 'direction' },
83128
83131
  fontSize: {},
83129
83132
  textColor: [
83130
83133
  { property: 'color' }
@@ -83147,106 +83150,106 @@ function requireIndex_cjs () {
83147
83150
  )(RawText);
83148
83151
 
83149
83152
  const globalRefs$G = getThemeRefs$1(globals);
83150
- const vars$12 = TextClass.cssVarList;
83153
+ const vars$13 = TextClass.cssVarList;
83151
83154
 
83152
83155
  const text$3 = {
83153
- [vars$12.hostDirection]: globalRefs$G.direction,
83154
- [vars$12.textLineHeight]: '1.35em',
83155
- [vars$12.textAlign]: 'start',
83156
- [vars$12.textColor]: globalRefs$G.colors.surface.dark,
83156
+ [vars$13.hostDirection]: globalRefs$G.direction,
83157
+ [vars$13.textLineHeight]: '1.35em',
83158
+ [vars$13.textAlign]: 'start',
83159
+ [vars$13.textColor]: globalRefs$G.colors.surface.dark,
83157
83160
 
83158
83161
  variant: {
83159
83162
  h1: {
83160
- [vars$12.fontSize]: globalRefs$G.typography.h1.size,
83161
- [vars$12.fontWeight]: globalRefs$G.typography.h1.weight,
83162
- [vars$12.fontFamily]: globalRefs$G.typography.h1.font,
83163
+ [vars$13.fontSize]: globalRefs$G.typography.h1.size,
83164
+ [vars$13.fontWeight]: globalRefs$G.typography.h1.weight,
83165
+ [vars$13.fontFamily]: globalRefs$G.typography.h1.font,
83163
83166
  },
83164
83167
  h2: {
83165
- [vars$12.fontSize]: globalRefs$G.typography.h2.size,
83166
- [vars$12.fontWeight]: globalRefs$G.typography.h2.weight,
83167
- [vars$12.fontFamily]: globalRefs$G.typography.h2.font,
83168
+ [vars$13.fontSize]: globalRefs$G.typography.h2.size,
83169
+ [vars$13.fontWeight]: globalRefs$G.typography.h2.weight,
83170
+ [vars$13.fontFamily]: globalRefs$G.typography.h2.font,
83168
83171
  },
83169
83172
  h3: {
83170
- [vars$12.fontSize]: globalRefs$G.typography.h3.size,
83171
- [vars$12.fontWeight]: globalRefs$G.typography.h3.weight,
83172
- [vars$12.fontFamily]: globalRefs$G.typography.h3.font,
83173
+ [vars$13.fontSize]: globalRefs$G.typography.h3.size,
83174
+ [vars$13.fontWeight]: globalRefs$G.typography.h3.weight,
83175
+ [vars$13.fontFamily]: globalRefs$G.typography.h3.font,
83173
83176
  },
83174
83177
  subtitle1: {
83175
- [vars$12.fontSize]: globalRefs$G.typography.subtitle1.size,
83176
- [vars$12.fontWeight]: globalRefs$G.typography.subtitle1.weight,
83177
- [vars$12.fontFamily]: globalRefs$G.typography.subtitle1.font,
83178
+ [vars$13.fontSize]: globalRefs$G.typography.subtitle1.size,
83179
+ [vars$13.fontWeight]: globalRefs$G.typography.subtitle1.weight,
83180
+ [vars$13.fontFamily]: globalRefs$G.typography.subtitle1.font,
83178
83181
  },
83179
83182
  subtitle2: {
83180
- [vars$12.fontSize]: globalRefs$G.typography.subtitle2.size,
83181
- [vars$12.fontWeight]: globalRefs$G.typography.subtitle2.weight,
83182
- [vars$12.fontFamily]: globalRefs$G.typography.subtitle2.font,
83183
+ [vars$13.fontSize]: globalRefs$G.typography.subtitle2.size,
83184
+ [vars$13.fontWeight]: globalRefs$G.typography.subtitle2.weight,
83185
+ [vars$13.fontFamily]: globalRefs$G.typography.subtitle2.font,
83183
83186
  },
83184
83187
  body1: {
83185
- [vars$12.fontSize]: globalRefs$G.typography.body1.size,
83186
- [vars$12.fontWeight]: globalRefs$G.typography.body1.weight,
83187
- [vars$12.fontFamily]: globalRefs$G.typography.body1.font,
83188
+ [vars$13.fontSize]: globalRefs$G.typography.body1.size,
83189
+ [vars$13.fontWeight]: globalRefs$G.typography.body1.weight,
83190
+ [vars$13.fontFamily]: globalRefs$G.typography.body1.font,
83188
83191
  },
83189
83192
  body2: {
83190
- [vars$12.fontSize]: globalRefs$G.typography.body2.size,
83191
- [vars$12.fontWeight]: globalRefs$G.typography.body2.weight,
83192
- [vars$12.fontFamily]: globalRefs$G.typography.body2.font,
83193
+ [vars$13.fontSize]: globalRefs$G.typography.body2.size,
83194
+ [vars$13.fontWeight]: globalRefs$G.typography.body2.weight,
83195
+ [vars$13.fontFamily]: globalRefs$G.typography.body2.font,
83193
83196
  },
83194
83197
  },
83195
83198
 
83196
83199
  mode: {
83197
83200
  primary: {
83198
- [vars$12.textColor]: globalRefs$G.colors.surface.contrast,
83201
+ [vars$13.textColor]: globalRefs$G.colors.surface.contrast,
83199
83202
  },
83200
83203
  secondary: {
83201
- [vars$12.textColor]: globalRefs$G.colors.surface.dark,
83204
+ [vars$13.textColor]: globalRefs$G.colors.surface.dark,
83202
83205
  },
83203
83206
  error: {
83204
- [vars$12.textColor]: globalRefs$G.colors.error.main,
83207
+ [vars$13.textColor]: globalRefs$G.colors.error.main,
83205
83208
  },
83206
83209
  'error-dark': {
83207
- [vars$12.textColor]: globalRefs$G.colors.error.dark,
83210
+ [vars$13.textColor]: globalRefs$G.colors.error.dark,
83208
83211
  },
83209
83212
  success: {
83210
- [vars$12.textColor]: globalRefs$G.colors.success.main,
83213
+ [vars$13.textColor]: globalRefs$G.colors.success.main,
83211
83214
  },
83212
83215
  'success-dark': {
83213
- [vars$12.textColor]: globalRefs$G.colors.success.dark,
83216
+ [vars$13.textColor]: globalRefs$G.colors.success.dark,
83214
83217
  },
83215
83218
  warning: {
83216
- [vars$12.textColor]: globalRefs$G.colors.warning.main,
83219
+ [vars$13.textColor]: globalRefs$G.colors.warning.main,
83217
83220
  },
83218
83221
  'warning-dark': {
83219
- [vars$12.textColor]: globalRefs$G.colors.warning.dark,
83222
+ [vars$13.textColor]: globalRefs$G.colors.warning.dark,
83220
83223
  },
83221
83224
  },
83222
83225
 
83223
83226
  textAlign: {
83224
- right: { [vars$12.textAlign]: 'right' },
83225
- left: { [vars$12.textAlign]: 'left' },
83226
- center: { [vars$12.textAlign]: 'center' },
83227
+ right: { [vars$13.textAlign]: 'right' },
83228
+ left: { [vars$13.textAlign]: 'left' },
83229
+ center: { [vars$13.textAlign]: 'center' },
83227
83230
  },
83228
83231
 
83229
83232
  _fullWidth: {
83230
- [vars$12.hostWidth]: '100%',
83233
+ [vars$13.hostWidth]: '100%',
83231
83234
  },
83232
83235
 
83233
83236
  _italic: {
83234
- [vars$12.fontStyle]: 'italic',
83237
+ [vars$13.fontStyle]: 'italic',
83235
83238
  },
83236
83239
 
83237
83240
  _uppercase: {
83238
- [vars$12.textTransform]: 'uppercase',
83241
+ [vars$13.textTransform]: 'uppercase',
83239
83242
  },
83240
83243
 
83241
83244
  _lowercase: {
83242
- [vars$12.textTransform]: 'lowercase',
83245
+ [vars$13.textTransform]: 'lowercase',
83243
83246
  },
83244
83247
  };
83245
83248
 
83246
83249
  var text$4 = /*#__PURE__*/Object.freeze({
83247
83250
  __proto__: null,
83248
83251
  default: text$3,
83249
- vars: vars$12
83252
+ vars: vars$13
83250
83253
  });
83251
83254
 
83252
83255
  const disableRules = [
@@ -83273,9 +83276,9 @@ function requireIndex_cjs () {
83273
83276
  /* eslint-disable no-param-reassign */
83274
83277
 
83275
83278
 
83276
- const componentName$1d = getComponentName('enriched-text');
83279
+ const componentName$1f = getComponentName('enriched-text');
83277
83280
 
83278
- class EnrichedText extends createBaseClass$1({ componentName: componentName$1d, baseSelector: ':host > div' }) {
83281
+ class EnrichedText extends createBaseClass$1({ componentName: componentName$1f, baseSelector: ':host > div' }) {
83279
83282
  #origLinkRenderer;
83280
83283
 
83281
83284
  #origEmRenderer;
@@ -83480,9 +83483,9 @@ function requireIndex_cjs () {
83480
83483
  componentNameValidationMixin$1
83481
83484
  )(EnrichedText);
83482
83485
 
83483
- const componentName$1c = getComponentName('link');
83486
+ const componentName$1e = getComponentName('link');
83484
83487
 
83485
- class RawLink extends createBaseClass$1({ componentName: componentName$1c, baseSelector: ':host a' }) {
83488
+ class RawLink extends createBaseClass$1({ componentName: componentName$1e, baseSelector: ':host a' }) {
83486
83489
  constructor() {
83487
83490
  super();
83488
83491
 
@@ -83539,12 +83542,12 @@ function requireIndex_cjs () {
83539
83542
  text: { selector: () => TextClass.componentName },
83540
83543
  };
83541
83544
 
83542
- const { anchor, text: text$2, host: host$u, wrapper: wrapper$1, link: link$3 } = selectors$3;
83545
+ const { anchor, text: text$2, host: host$v, wrapper: wrapper$1, link: link$3 } = selectors$3;
83543
83546
 
83544
83547
  const LinkClass = compose(
83545
83548
  createStyleMixin$1({
83546
83549
  mappings: {
83547
- hostWidth: { ...host$u, property: 'width' },
83550
+ hostWidth: { ...host$v, property: 'width' },
83548
83551
  hostDirection: { ...text$2, property: 'direction' },
83549
83552
  textAlign: wrapper$1,
83550
83553
  textDecoration: { ...link$3, property: 'text-decoration', fallback: 'none' },
@@ -83560,31 +83563,31 @@ function requireIndex_cjs () {
83560
83563
  )(RawLink);
83561
83564
 
83562
83565
  const globalRefs$F = getThemeRefs$1(globals);
83563
- const vars$11 = LinkClass.cssVarList;
83566
+ const vars$12 = LinkClass.cssVarList;
83564
83567
 
83565
83568
  const link$1 = {
83566
- [vars$11.hostDirection]: globalRefs$F.direction,
83567
- [vars$11.cursor]: 'pointer',
83569
+ [vars$12.hostDirection]: globalRefs$F.direction,
83570
+ [vars$12.cursor]: 'pointer',
83568
83571
 
83569
- [vars$11.textColor]: globalRefs$F.colors.primary.main,
83572
+ [vars$12.textColor]: globalRefs$F.colors.primary.main,
83570
83573
 
83571
83574
  textAlign: {
83572
- right: { [vars$11.textAlign]: 'right' },
83573
- left: { [vars$11.textAlign]: 'left' },
83574
- center: { [vars$11.textAlign]: 'center' },
83575
+ right: { [vars$12.textAlign]: 'right' },
83576
+ left: { [vars$12.textAlign]: 'left' },
83577
+ center: { [vars$12.textAlign]: 'center' },
83575
83578
  },
83576
83579
 
83577
83580
  _fullWidth: {
83578
- [vars$11.hostWidth]: '100%',
83581
+ [vars$12.hostWidth]: '100%',
83579
83582
  },
83580
83583
 
83581
83584
  _hover: {
83582
- [vars$11.textDecoration]: 'underline',
83585
+ [vars$12.textDecoration]: 'underline',
83583
83586
  },
83584
83587
 
83585
83588
  mode: {
83586
83589
  secondary: {
83587
- [vars$11.textColor]: globalRefs$F.colors.secondary.main,
83590
+ [vars$12.textColor]: globalRefs$F.colors.secondary.main,
83588
83591
  },
83589
83592
  },
83590
83593
  };
@@ -83592,37 +83595,37 @@ function requireIndex_cjs () {
83592
83595
  var link$2 = /*#__PURE__*/Object.freeze({
83593
83596
  __proto__: null,
83594
83597
  default: link$1,
83595
- vars: vars$11
83598
+ vars: vars$12
83596
83599
  });
83597
83600
 
83598
83601
  const globalRefs$E = getThemeRefs$1(globals);
83599
- const vars$10 = EnrichedTextClass.cssVarList;
83602
+ const vars$11 = EnrichedTextClass.cssVarList;
83600
83603
 
83601
83604
  const enrichedText = {
83602
- [vars$10.hostDirection]: globalRefs$E.direction,
83603
- [vars$10.hostWidth]: useVar$1(vars$12.hostWidth),
83605
+ [vars$11.hostDirection]: globalRefs$E.direction,
83606
+ [vars$11.hostWidth]: useVar$1(vars$13.hostWidth),
83604
83607
 
83605
- [vars$10.textLineHeight]: useVar$1(vars$12.textLineHeight),
83606
- [vars$10.textColor]: useVar$1(vars$12.textColor),
83607
- [vars$10.textAlign]: useVar$1(vars$12.textAlign),
83608
+ [vars$11.textLineHeight]: useVar$1(vars$13.textLineHeight),
83609
+ [vars$11.textColor]: useVar$1(vars$13.textColor),
83610
+ [vars$11.textAlign]: useVar$1(vars$13.textAlign),
83608
83611
 
83609
- [vars$10.fontSize]: useVar$1(vars$12.fontSize),
83610
- [vars$10.fontWeight]: useVar$1(vars$12.fontWeight),
83611
- [vars$10.fontFamily]: useVar$1(vars$12.fontFamily),
83612
+ [vars$11.fontSize]: useVar$1(vars$13.fontSize),
83613
+ [vars$11.fontWeight]: useVar$1(vars$13.fontWeight),
83614
+ [vars$11.fontFamily]: useVar$1(vars$13.fontFamily),
83612
83615
 
83613
- [vars$10.linkColor]: useVar$1(vars$11.textColor),
83614
- [vars$10.linkTextDecoration]: 'none',
83615
- [vars$10.linkHoverTextDecoration]: 'underline',
83616
+ [vars$11.linkColor]: useVar$1(vars$12.textColor),
83617
+ [vars$11.linkTextDecoration]: 'none',
83618
+ [vars$11.linkHoverTextDecoration]: 'underline',
83616
83619
 
83617
- [vars$10.fontWeightBold]: '900',
83618
- [vars$10.minWidth]: '0.25em',
83619
- [vars$10.minHeight]: '1.35em',
83620
+ [vars$11.fontWeightBold]: '900',
83621
+ [vars$11.minWidth]: '0.25em',
83622
+ [vars$11.minHeight]: '1.35em',
83620
83623
 
83621
- [vars$10.hostDisplay]: 'inline-block',
83624
+ [vars$11.hostDisplay]: 'inline-block',
83622
83625
 
83623
83626
  _empty: {
83624
83627
  _hideWhenEmpty: {
83625
- [vars$10.hostDisplay]: 'none',
83628
+ [vars$11.hostDisplay]: 'none',
83626
83629
  },
83627
83630
  },
83628
83631
  };
@@ -83630,10 +83633,10 @@ function requireIndex_cjs () {
83630
83633
  var enrichedText$1 = /*#__PURE__*/Object.freeze({
83631
83634
  __proto__: null,
83632
83635
  default: enrichedText,
83633
- vars: vars$10
83636
+ vars: vars$11
83634
83637
  });
83635
83638
 
83636
- const componentName$1b = getComponentName('combo-box');
83639
+ const componentName$1d = getComponentName('combo-box');
83637
83640
 
83638
83641
  const ComboBoxMixin = (superclass) =>
83639
83642
  class ComboBoxMixinClass extends superclass {
@@ -84018,7 +84021,7 @@ function requireIndex_cjs () {
84018
84021
  };
84019
84022
 
84020
84023
  const {
84021
- host: host$t,
84024
+ host: host$u,
84022
84025
  inputField: inputField$6,
84023
84026
  inputElement: inputElement$3,
84024
84027
  placeholder: placeholder$3,
@@ -84050,10 +84053,10 @@ function requireIndex_cjs () {
84050
84053
  const ComboBoxClass = compose(
84051
84054
  createStyleMixin$1({
84052
84055
  mappings: {
84053
- hostWidth: { ...host$t, property: 'width' },
84054
- hostDirection: { ...host$t, property: 'direction' },
84056
+ hostWidth: { ...host$u, property: 'width' },
84057
+ hostDirection: { ...host$u, property: 'direction' },
84055
84058
  // we apply font-size also on the host so we can set its width with em
84056
- fontSize: [{}, host$t],
84059
+ fontSize: [{}, host$u],
84057
84060
  fontFamily: [label$9, placeholder$3, inputField$6, helperText$a, errorMessage$d],
84058
84061
  labelFontSize: { ...label$9, property: 'font-size' },
84059
84062
  labelFontWeight: { ...label$9, property: 'font-weight' },
@@ -84317,12 +84320,12 @@ function requireIndex_cjs () {
84317
84320
  // and reset items to an empty array, and opening the list box with no items
84318
84321
  // to display.
84319
84322
  excludeAttrsSync: ['tabindex', 'size', 'data', 'loading', 'style'],
84320
- componentName: componentName$1b,
84323
+ componentName: componentName$1d,
84321
84324
  includeForwardProps: ['items', 'renderer', 'selectedItem'],
84322
84325
  }),
84323
84326
  );
84324
84327
 
84325
- const componentName$1a = getComponentName('input-wrapper');
84328
+ const componentName$1c = getComponentName('input-wrapper');
84326
84329
  const globalRefs$D = getThemeRefs$1(globals);
84327
84330
 
84328
84331
  const [theme$2, refs$1] = createHelperVars$1(
@@ -84445,103 +84448,103 @@ function requireIndex_cjs () {
84445
84448
  backgroundColor: globalRefs$D.colors.surface.main,
84446
84449
  },
84447
84450
  },
84448
- componentName$1a,
84451
+ componentName$1c,
84449
84452
  );
84450
84453
 
84451
84454
  const globalRefs$C = getThemeRefs$1(globals);
84452
- const vars$$ = ComboBoxClass.cssVarList;
84455
+ const vars$10 = ComboBoxClass.cssVarList;
84453
84456
 
84454
84457
  const comboBox = {
84455
- [vars$$.hostWidth]: refs$1.width,
84456
- [vars$$.hostDirection]: refs$1.direction,
84457
- [vars$$.fontSize]: refs$1.fontSize,
84458
- [vars$$.fontFamily]: refs$1.fontFamily,
84459
- [vars$$.labelFontSize]: refs$1.labelFontSize,
84460
- [vars$$.labelFontWeight]: refs$1.labelFontWeight,
84461
- [vars$$.labelTextColor]: refs$1.labelTextColor,
84462
- [vars$$.errorMessageTextColor]: refs$1.errorMessageTextColor,
84463
- [vars$$.inputBorderColor]: refs$1.borderColor,
84464
- [vars$$.inputBorderWidth]: refs$1.borderWidth,
84465
- [vars$$.inputBorderStyle]: refs$1.borderStyle,
84466
- [vars$$.inputBorderRadius]: refs$1.borderRadius,
84467
- [vars$$.inputOutlineColor]: refs$1.outlineColor,
84468
- [vars$$.inputOutlineOffset]: refs$1.outlineOffset,
84469
- [vars$$.inputOutlineWidth]: refs$1.outlineWidth,
84470
- [vars$$.inputOutlineStyle]: refs$1.outlineStyle,
84471
- [vars$$.labelRequiredIndicator]: refs$1.requiredIndicator,
84472
- [vars$$.inputValueTextColor]: refs$1.valueTextColor,
84473
- [vars$$.inputPlaceholderTextColor]: refs$1.placeholderTextColor,
84474
- [vars$$.inputBackgroundColor]: refs$1.backgroundColor,
84475
- [vars$$.inputHorizontalPadding]: refs$1.horizontalPadding,
84476
- [vars$$.inputHeight]: refs$1.inputHeight,
84477
- [vars$$.inputDropdownButtonColor]: globalRefs$C.colors.surface.dark,
84478
- [vars$$.inputDropdownButtonCursor]: 'pointer',
84479
- [vars$$.inputDropdownButtonSize]: refs$1.toggleButtonSize,
84480
- [vars$$.inputDropdownButtonOffset]: globalRefs$C.spacing.xs,
84481
- [vars$$.overlayItemPaddingInlineStart]: globalRefs$C.spacing.xs,
84482
- [vars$$.overlayItemPaddingInlineEnd]: globalRefs$C.spacing.lg,
84483
- [vars$$.labelPosition]: refs$1.labelPosition,
84484
- [vars$$.labelTopPosition]: refs$1.labelTopPosition,
84485
- [vars$$.labelHorizontalPosition]: refs$1.labelHorizontalPosition,
84486
- [vars$$.inputTransformY]: refs$1.inputTransformY,
84487
- [vars$$.inputTransition]: refs$1.inputTransition,
84488
- [vars$$.marginInlineStart]: refs$1.marginInlineStart,
84489
- [vars$$.placeholderOpacity]: refs$1.placeholderOpacity,
84490
- [vars$$.inputVerticalAlignment]: refs$1.inputVerticalAlignment,
84491
- [vars$$.valueInputHeight]: refs$1.valueInputHeight,
84492
- [vars$$.valueInputMarginBottom]: refs$1.valueInputMarginBottom,
84458
+ [vars$10.hostWidth]: refs$1.width,
84459
+ [vars$10.hostDirection]: refs$1.direction,
84460
+ [vars$10.fontSize]: refs$1.fontSize,
84461
+ [vars$10.fontFamily]: refs$1.fontFamily,
84462
+ [vars$10.labelFontSize]: refs$1.labelFontSize,
84463
+ [vars$10.labelFontWeight]: refs$1.labelFontWeight,
84464
+ [vars$10.labelTextColor]: refs$1.labelTextColor,
84465
+ [vars$10.errorMessageTextColor]: refs$1.errorMessageTextColor,
84466
+ [vars$10.inputBorderColor]: refs$1.borderColor,
84467
+ [vars$10.inputBorderWidth]: refs$1.borderWidth,
84468
+ [vars$10.inputBorderStyle]: refs$1.borderStyle,
84469
+ [vars$10.inputBorderRadius]: refs$1.borderRadius,
84470
+ [vars$10.inputOutlineColor]: refs$1.outlineColor,
84471
+ [vars$10.inputOutlineOffset]: refs$1.outlineOffset,
84472
+ [vars$10.inputOutlineWidth]: refs$1.outlineWidth,
84473
+ [vars$10.inputOutlineStyle]: refs$1.outlineStyle,
84474
+ [vars$10.labelRequiredIndicator]: refs$1.requiredIndicator,
84475
+ [vars$10.inputValueTextColor]: refs$1.valueTextColor,
84476
+ [vars$10.inputPlaceholderTextColor]: refs$1.placeholderTextColor,
84477
+ [vars$10.inputBackgroundColor]: refs$1.backgroundColor,
84478
+ [vars$10.inputHorizontalPadding]: refs$1.horizontalPadding,
84479
+ [vars$10.inputHeight]: refs$1.inputHeight,
84480
+ [vars$10.inputDropdownButtonColor]: globalRefs$C.colors.surface.dark,
84481
+ [vars$10.inputDropdownButtonCursor]: 'pointer',
84482
+ [vars$10.inputDropdownButtonSize]: refs$1.toggleButtonSize,
84483
+ [vars$10.inputDropdownButtonOffset]: globalRefs$C.spacing.xs,
84484
+ [vars$10.overlayItemPaddingInlineStart]: globalRefs$C.spacing.xs,
84485
+ [vars$10.overlayItemPaddingInlineEnd]: globalRefs$C.spacing.lg,
84486
+ [vars$10.labelPosition]: refs$1.labelPosition,
84487
+ [vars$10.labelTopPosition]: refs$1.labelTopPosition,
84488
+ [vars$10.labelHorizontalPosition]: refs$1.labelHorizontalPosition,
84489
+ [vars$10.inputTransformY]: refs$1.inputTransformY,
84490
+ [vars$10.inputTransition]: refs$1.inputTransition,
84491
+ [vars$10.marginInlineStart]: refs$1.marginInlineStart,
84492
+ [vars$10.placeholderOpacity]: refs$1.placeholderOpacity,
84493
+ [vars$10.inputVerticalAlignment]: refs$1.inputVerticalAlignment,
84494
+ [vars$10.valueInputHeight]: refs$1.valueInputHeight,
84495
+ [vars$10.valueInputMarginBottom]: refs$1.valueInputMarginBottom,
84493
84496
 
84494
84497
  // error message icon
84495
- [vars$$.errorMessageIcon]: refs$1.errorMessageIcon,
84496
- [vars$$.errorMessageIconSize]: refs$1.errorMessageIconSize,
84497
- [vars$$.errorMessageIconPadding]: refs$1.errorMessageIconPadding,
84498
- [vars$$.errorMessageIconRepeat]: refs$1.errorMessageIconRepeat,
84499
- [vars$$.errorMessageIconPosition]: refs$1.errorMessageIconPosition,
84500
- [vars$$.errorMessageFontSize]: refs$1.errorMessageFontSize,
84498
+ [vars$10.errorMessageIcon]: refs$1.errorMessageIcon,
84499
+ [vars$10.errorMessageIconSize]: refs$1.errorMessageIconSize,
84500
+ [vars$10.errorMessageIconPadding]: refs$1.errorMessageIconPadding,
84501
+ [vars$10.errorMessageIconRepeat]: refs$1.errorMessageIconRepeat,
84502
+ [vars$10.errorMessageIconPosition]: refs$1.errorMessageIconPosition,
84503
+ [vars$10.errorMessageFontSize]: refs$1.errorMessageFontSize,
84501
84504
 
84502
84505
  _readonly: {
84503
- [vars$$.inputDropdownButtonCursor]: 'default',
84506
+ [vars$10.inputDropdownButtonCursor]: 'default',
84504
84507
  },
84505
84508
 
84506
84509
  // Overlay theme exposed via the component:
84507
- [vars$$.overlayFontSize]: refs$1.fontSize,
84508
- [vars$$.overlayFontFamily]: refs$1.fontFamily,
84509
- [vars$$.overlayCursor]: 'pointer',
84510
- [vars$$.overlayItemBoxShadow]: 'none',
84511
- [vars$$.overlayBackground]: refs$1.backgroundColor,
84512
- [vars$$.overlayTextColor]: refs$1.valueTextColor,
84513
- [vars$$.overlayCheckmarkDisplay]: 'initial',
84514
- [vars$$.overlaySelectedItemBackground]: 'initial',
84515
- [vars$$.overlaySelectedItemHoverBackground]:
84510
+ [vars$10.overlayFontSize]: refs$1.fontSize,
84511
+ [vars$10.overlayFontFamily]: refs$1.fontFamily,
84512
+ [vars$10.overlayCursor]: 'pointer',
84513
+ [vars$10.overlayItemBoxShadow]: 'none',
84514
+ [vars$10.overlayBackground]: refs$1.backgroundColor,
84515
+ [vars$10.overlayTextColor]: refs$1.valueTextColor,
84516
+ [vars$10.overlayCheckmarkDisplay]: 'initial',
84517
+ [vars$10.overlaySelectedItemBackground]: 'initial',
84518
+ [vars$10.overlaySelectedItemHoverBackground]:
84516
84519
  globalRefs$C.colors.primary.highlight,
84517
- [vars$$.overlaySelectedItemFocusBackground]:
84520
+ [vars$10.overlaySelectedItemFocusBackground]:
84518
84521
  globalRefs$C.colors.primary.highlight,
84519
- [vars$$.overlayItemHoverBackground]: globalRefs$C.colors.primary.highlight,
84520
- [vars$$.overlayItemFocusBackground]: globalRefs$C.colors.primary.highlight,
84522
+ [vars$10.overlayItemHoverBackground]: globalRefs$C.colors.primary.highlight,
84523
+ [vars$10.overlayItemFocusBackground]: globalRefs$C.colors.primary.highlight,
84521
84524
 
84522
84525
  // Overlay direct theme:
84523
- [vars$$.overlay.minHeight]: '400px',
84524
- [vars$$.overlay.margin]: '0',
84526
+ [vars$10.overlay.minHeight]: '400px',
84527
+ [vars$10.overlay.margin]: '0',
84525
84528
 
84526
- [vars$$.overlay.contentHeight]: '100%',
84527
- [vars$$.overlay.contentOpacity]: '1',
84528
- [vars$$.overlay.scrollerMinHeight]: '1px',
84529
+ [vars$10.overlay.contentHeight]: '100%',
84530
+ [vars$10.overlay.contentOpacity]: '1',
84531
+ [vars$10.overlay.scrollerMinHeight]: '1px',
84529
84532
  _loading: {
84530
- [vars$$.overlay.loaderTop]: '50%',
84531
- [vars$$.overlay.loaderLeft]: '50%',
84532
- [vars$$.overlay.loaderRight]: 'auto',
84533
+ [vars$10.overlay.loaderTop]: '50%',
84534
+ [vars$10.overlay.loaderLeft]: '50%',
84535
+ [vars$10.overlay.loaderRight]: 'auto',
84533
84536
  // Margin has to be negative to center the loader, "transform" can't be used because the animation uses it
84534
84537
  // Margin has to be half of the width/height of the loader to center it
84535
- [vars$$.overlay.loaderMargin]: '-15px 0 0 -15px',
84536
- [vars$$.overlay.loaderWidth]: '30px',
84537
- [vars$$.overlay.loaderHeight]: '30px',
84538
- [vars$$.overlay.loaderBorder]: '2px solid transparent',
84539
- [vars$$.overlay.loaderBorderColor]:
84538
+ [vars$10.overlay.loaderMargin]: '-15px 0 0 -15px',
84539
+ [vars$10.overlay.loaderWidth]: '30px',
84540
+ [vars$10.overlay.loaderHeight]: '30px',
84541
+ [vars$10.overlay.loaderBorder]: '2px solid transparent',
84542
+ [vars$10.overlay.loaderBorderColor]:
84540
84543
  `${globalRefs$C.colors.primary.highlight} ${globalRefs$C.colors.primary.highlight} ${globalRefs$C.colors.primary.main} ${globalRefs$C.colors.primary.main}`,
84541
- [vars$$.overlay.loaderBorderRadius]: '50%',
84542
- [vars$$.overlay.contentHeight]: '100px',
84543
- [vars$$.overlay.scrollerMinHeight]: '100px',
84544
- [vars$$.overlay.contentOpacity]: '0',
84544
+ [vars$10.overlay.loaderBorderRadius]: '50%',
84545
+ [vars$10.overlay.contentHeight]: '100px',
84546
+ [vars$10.overlay.scrollerMinHeight]: '100px',
84547
+ [vars$10.overlay.contentOpacity]: '0',
84545
84548
  },
84546
84549
  };
84547
84550
 
@@ -84549,13 +84552,13 @@ function requireIndex_cjs () {
84549
84552
  __proto__: null,
84550
84553
  comboBox: comboBox,
84551
84554
  default: comboBox,
84552
- vars: vars$$
84555
+ vars: vars$10
84553
84556
  });
84554
84557
 
84555
- const componentName$19 = getComponentName('badge');
84558
+ const componentName$1b = getComponentName('badge');
84556
84559
 
84557
84560
  class RawBadge extends createBaseClass$1({
84558
- componentName: componentName$19,
84561
+ componentName: componentName$1b,
84559
84562
  baseSelector: ':host > div',
84560
84563
  }) {
84561
84564
  constructor() {
@@ -84620,65 +84623,65 @@ function requireIndex_cjs () {
84620
84623
 
84621
84624
  const globalRefs$B = getThemeRefs$1(globals);
84622
84625
 
84623
- const vars$_ = BadgeClass.cssVarList;
84626
+ const vars$$ = BadgeClass.cssVarList;
84624
84627
 
84625
84628
  const badge$2 = {
84626
- [vars$_.hostWidth]: 'fit-content',
84627
- [vars$_.hostDirection]: globalRefs$B.direction,
84629
+ [vars$$.hostWidth]: 'fit-content',
84630
+ [vars$$.hostDirection]: globalRefs$B.direction,
84628
84631
 
84629
- [vars$_.textAlign]: 'center',
84632
+ [vars$$.textAlign]: 'center',
84630
84633
 
84631
- [vars$_.fontFamily]: globalRefs$B.fonts.font1.family,
84632
- [vars$_.fontWeight]: '400',
84634
+ [vars$$.fontFamily]: globalRefs$B.fonts.font1.family,
84635
+ [vars$$.fontWeight]: '400',
84633
84636
 
84634
- [vars$_.verticalPadding]: '0.25em',
84635
- [vars$_.horizontalPadding]: '0.5em',
84637
+ [vars$$.verticalPadding]: '0.25em',
84638
+ [vars$$.horizontalPadding]: '0.5em',
84636
84639
 
84637
- [vars$_.borderWidth]: globalRefs$B.border.xs,
84638
- [vars$_.borderRadius]: globalRefs$B.radius.xs,
84639
- [vars$_.borderColor]: 'transparent',
84640
- [vars$_.borderStyle]: 'solid',
84640
+ [vars$$.borderWidth]: globalRefs$B.border.xs,
84641
+ [vars$$.borderRadius]: globalRefs$B.radius.xs,
84642
+ [vars$$.borderColor]: 'transparent',
84643
+ [vars$$.borderStyle]: 'solid',
84641
84644
 
84642
84645
  _fullWidth: {
84643
- [vars$_.hostWidth]: '100%',
84646
+ [vars$$.hostWidth]: '100%',
84644
84647
  },
84645
84648
 
84646
84649
  size: {
84647
- xs: { [vars$_.fontSize]: '12px' },
84648
- sm: { [vars$_.fontSize]: '14px' },
84649
- md: { [vars$_.fontSize]: '16px' },
84650
- lg: { [vars$_.fontSize]: '18px' },
84650
+ xs: { [vars$$.fontSize]: '12px' },
84651
+ sm: { [vars$$.fontSize]: '14px' },
84652
+ md: { [vars$$.fontSize]: '16px' },
84653
+ lg: { [vars$$.fontSize]: '18px' },
84651
84654
  },
84652
84655
 
84653
84656
  mode: {
84654
84657
  default: {
84655
- [vars$_.textColor]: globalRefs$B.colors.surface.dark,
84658
+ [vars$$.textColor]: globalRefs$B.colors.surface.dark,
84656
84659
  _bordered: {
84657
- [vars$_.borderColor]: globalRefs$B.colors.surface.light,
84660
+ [vars$$.borderColor]: globalRefs$B.colors.surface.light,
84658
84661
  },
84659
84662
  },
84660
84663
  primary: {
84661
- [vars$_.textColor]: globalRefs$B.colors.primary.main,
84664
+ [vars$$.textColor]: globalRefs$B.colors.primary.main,
84662
84665
  _bordered: {
84663
- [vars$_.borderColor]: globalRefs$B.colors.primary.light,
84666
+ [vars$$.borderColor]: globalRefs$B.colors.primary.light,
84664
84667
  },
84665
84668
  },
84666
84669
  secondary: {
84667
- [vars$_.textColor]: globalRefs$B.colors.secondary.main,
84670
+ [vars$$.textColor]: globalRefs$B.colors.secondary.main,
84668
84671
  _bordered: {
84669
- [vars$_.borderColor]: globalRefs$B.colors.secondary.light,
84672
+ [vars$$.borderColor]: globalRefs$B.colors.secondary.light,
84670
84673
  },
84671
84674
  },
84672
84675
  error: {
84673
- [vars$_.textColor]: globalRefs$B.colors.error.main,
84676
+ [vars$$.textColor]: globalRefs$B.colors.error.main,
84674
84677
  _bordered: {
84675
- [vars$_.borderColor]: globalRefs$B.colors.error.light,
84678
+ [vars$$.borderColor]: globalRefs$B.colors.error.light,
84676
84679
  },
84677
84680
  },
84678
84681
  success: {
84679
- [vars$_.textColor]: globalRefs$B.colors.success.main,
84682
+ [vars$$.textColor]: globalRefs$B.colors.success.main,
84680
84683
  _bordered: {
84681
- [vars$_.borderColor]: globalRefs$B.colors.success.light,
84684
+ [vars$$.borderColor]: globalRefs$B.colors.success.light,
84682
84685
  },
84683
84686
  },
84684
84687
  },
@@ -84687,12 +84690,12 @@ function requireIndex_cjs () {
84687
84690
  var badge$3 = /*#__PURE__*/Object.freeze({
84688
84691
  __proto__: null,
84689
84692
  default: badge$2,
84690
- vars: vars$_
84693
+ vars: vars$$
84691
84694
  });
84692
84695
 
84693
- const componentName$18 = getComponentName('avatar');
84696
+ const componentName$1a = getComponentName('avatar');
84694
84697
  class RawAvatar extends createBaseClass$1({
84695
- componentName: componentName$18,
84698
+ componentName: componentName$1a,
84696
84699
  baseSelector: ':host > .wrapper',
84697
84700
  }) {
84698
84701
  constructor() {
@@ -84770,7 +84773,7 @@ function requireIndex_cjs () {
84770
84773
  }
84771
84774
  }
84772
84775
 
84773
- const { host: host$s, editableBadge, avatar: avatar$2 } = {
84776
+ const { host: host$t, editableBadge, avatar: avatar$2 } = {
84774
84777
  host: { selector: () => ':host' },
84775
84778
  editableBadge: { selector: '> .editableBadge' },
84776
84779
  avatar: { selector: 'vaadin-avatar' },
@@ -84780,12 +84783,12 @@ function requireIndex_cjs () {
84780
84783
  createStyleMixin$1({
84781
84784
  mappings: {
84782
84785
  hostWidth: [
84783
- { ...host$s, property: 'width' },
84784
- { ...host$s, property: 'min-width' },
84786
+ { ...host$t, property: 'width' },
84787
+ { ...host$t, property: 'min-width' },
84785
84788
  ],
84786
- hostHeight: { ...host$s, property: 'height' },
84787
- cursor: [avatar$2, host$s],
84788
- hostDirection: { ...host$s, property: 'direction' },
84789
+ hostHeight: { ...host$t, property: 'height' },
84790
+ cursor: [avatar$2, host$t],
84791
+ hostDirection: { ...host$t, property: 'direction' },
84789
84792
  avatarTextColor: { ...avatar$2, property: 'color' },
84790
84793
  avatarBackgroundColor: { ...avatar$2, property: 'background-color' },
84791
84794
  editableIconColor: { ...editableBadge, property: 'color' },
@@ -84843,39 +84846,39 @@ function requireIndex_cjs () {
84843
84846
  },
84844
84847
  };
84845
84848
 
84846
- const vars$Z = {
84849
+ const vars$_ = {
84847
84850
  ...compVars$8,
84848
84851
  };
84849
84852
 
84850
84853
  var avatar$1 = /*#__PURE__*/Object.freeze({
84851
84854
  __proto__: null,
84852
84855
  default: avatar,
84853
- vars: vars$Z
84856
+ vars: vars$_
84854
84857
  });
84855
84858
 
84856
- const vars$Y = IconClass.cssVarList;
84859
+ const vars$Z = IconClass.cssVarList;
84857
84860
 
84858
84861
  const icon$3 = {};
84859
84862
 
84860
84863
  var icon$4 = /*#__PURE__*/Object.freeze({
84861
84864
  __proto__: null,
84862
84865
  default: icon$3,
84863
- vars: vars$Y
84866
+ vars: vars$Z
84864
84867
  });
84865
84868
 
84866
- const vars$X = ImageClass.cssVarList;
84869
+ const vars$Y = ImageClass.cssVarList;
84867
84870
 
84868
84871
  const image = {};
84869
84872
 
84870
84873
  var image$1 = /*#__PURE__*/Object.freeze({
84871
84874
  __proto__: null,
84872
84875
  default: image,
84873
- vars: vars$X
84876
+ vars: vars$Y
84874
84877
  });
84875
84878
 
84876
- const componentName$17 = getComponentName('list-item');
84879
+ const componentName$19 = getComponentName('list-item');
84877
84880
 
84878
- const customMixin$e = (superclass) =>
84881
+ const customMixin$f = (superclass) =>
84879
84882
  class ListItemMixinClass extends superclass {
84880
84883
  constructor() {
84881
84884
  super();
@@ -84928,14 +84931,14 @@ function requireIndex_cjs () {
84928
84931
  }),
84929
84932
  draggableMixin$1,
84930
84933
  componentNameValidationMixin$1,
84931
- customMixin$e,
84934
+ customMixin$f,
84932
84935
  activeableMixin,
84933
- )(createBaseClass$1({ componentName: componentName$17, baseSelector: 'slot' }));
84936
+ )(createBaseClass$1({ componentName: componentName$19, baseSelector: 'slot' }));
84934
84937
 
84935
- const componentName$16 = getComponentName('list');
84938
+ const componentName$18 = getComponentName('list');
84936
84939
 
84937
84940
  class RawList extends createBaseClass$1({
84938
- componentName: componentName$16,
84941
+ componentName: componentName$18,
84939
84942
  baseSelector: '.wrapper',
84940
84943
  }) {
84941
84944
  static get observedAttributes() {
@@ -85106,7 +85109,7 @@ function requireIndex_cjs () {
85106
85109
  componentNameValidationMixin$1,
85107
85110
  )(RawList);
85108
85111
 
85109
- const componentName$15 = getComponentName('apps-list');
85112
+ const componentName$17 = getComponentName('apps-list');
85110
85113
 
85111
85114
  const itemRenderer$4 = ({ name, icon, url }, _, ref) => `
85112
85115
  <a ${url ? `href="${url}" title="${url}"` : ''} ${ref.openInSameWindow ? '' : 'target="_blank"'}>
@@ -85126,7 +85129,7 @@ function requireIndex_cjs () {
85126
85129
  </a>
85127
85130
  `;
85128
85131
 
85129
- const customMixin$d = (superclass) =>
85132
+ const customMixin$e = (superclass) =>
85130
85133
  class AppsListMixinClass extends superclass {
85131
85134
  // size controls both item logo size and font size
85132
85135
  get size() {
@@ -85224,13 +85227,13 @@ function requireIndex_cjs () {
85224
85227
  }),
85225
85228
  draggableMixin$1,
85226
85229
  componentNameValidationMixin$1,
85227
- customMixin$d,
85230
+ customMixin$e,
85228
85231
  )(
85229
85232
  createProxy$1({
85230
85233
  slots: ['empty-state'],
85231
85234
  wrappedEleName: 'descope-list',
85232
85235
  excludeAttrsSync: ['tabindex', 'class', 'empty', 'style'],
85233
- componentName: componentName$15,
85236
+ componentName: componentName$17,
85234
85237
  style: () => `
85235
85238
  :host {
85236
85239
  width: 100%;
@@ -85265,60 +85268,60 @@ function requireIndex_cjs () {
85265
85268
  }),
85266
85269
  );
85267
85270
 
85268
- const vars$W = AppsListClass.cssVarList;
85271
+ const vars$X = AppsListClass.cssVarList;
85269
85272
  const globalRefs$z = getThemeRefs$1(globals);
85270
85273
 
85271
85274
  const defaultHeight = '400px';
85272
85275
 
85273
85276
  const appsList = {
85274
- [vars$W.itemsTextAlign]: 'start',
85275
- [vars$W.hostDirection]: globalRefs$z.direction,
85276
- [vars$W.maxHeight]: defaultHeight,
85277
- [vars$W.itemHoverBackgroundColor]: globalRefs$z.colors.surface.highlight,
85277
+ [vars$X.itemsTextAlign]: 'start',
85278
+ [vars$X.hostDirection]: globalRefs$z.direction,
85279
+ [vars$X.maxHeight]: defaultHeight,
85280
+ [vars$X.itemHoverBackgroundColor]: globalRefs$z.colors.surface.highlight,
85278
85281
 
85279
85282
  _empty: {
85280
- [vars$W.minHeight]: defaultHeight,
85283
+ [vars$X.minHeight]: defaultHeight,
85281
85284
  },
85282
85285
 
85283
85286
  size: {
85284
85287
  xs: {
85285
- [vars$W.itemsFontSize]: '14px',
85286
- [vars$W.itemsFontWeight]: 'normal',
85288
+ [vars$X.itemsFontSize]: '14px',
85289
+ [vars$X.itemsFontWeight]: 'normal',
85287
85290
  },
85288
85291
  sm: {
85289
- [vars$W.itemsFontSize]: '14px',
85290
- [vars$W.itemsFontWeight]: 'normal',
85292
+ [vars$X.itemsFontSize]: '14px',
85293
+ [vars$X.itemsFontWeight]: 'normal',
85291
85294
  },
85292
85295
  md: {
85293
- [vars$W.itemsFontSize]: '16px',
85294
- [vars$W.itemsFontWeight]: 'normal',
85296
+ [vars$X.itemsFontSize]: '16px',
85297
+ [vars$X.itemsFontWeight]: 'normal',
85295
85298
  },
85296
85299
  lg: {
85297
- [vars$W.itemsFontSize]: '20px',
85298
- [vars$W.itemsFontWeight]: 'normal',
85300
+ [vars$X.itemsFontSize]: '20px',
85301
+ [vars$X.itemsFontWeight]: 'normal',
85299
85302
  },
85300
85303
  },
85301
85304
 
85302
85305
  itemPadding: {
85303
85306
  xs: {
85304
- [vars$W.itemVerticalPadding]: globalRefs$z.spacing.xs,
85305
- [vars$W.itemHorizontalPadding]: globalRefs$z.spacing.xs,
85307
+ [vars$X.itemVerticalPadding]: globalRefs$z.spacing.xs,
85308
+ [vars$X.itemHorizontalPadding]: globalRefs$z.spacing.xs,
85306
85309
  },
85307
85310
  sm: {
85308
- [vars$W.itemVerticalPadding]: globalRefs$z.spacing.sm,
85309
- [vars$W.itemHorizontalPadding]: globalRefs$z.spacing.sm,
85311
+ [vars$X.itemVerticalPadding]: globalRefs$z.spacing.sm,
85312
+ [vars$X.itemHorizontalPadding]: globalRefs$z.spacing.sm,
85310
85313
  },
85311
85314
  md: {
85312
- [vars$W.itemVerticalPadding]: globalRefs$z.spacing.md,
85313
- [vars$W.itemHorizontalPadding]: globalRefs$z.spacing.md,
85315
+ [vars$X.itemVerticalPadding]: globalRefs$z.spacing.md,
85316
+ [vars$X.itemHorizontalPadding]: globalRefs$z.spacing.md,
85314
85317
  },
85315
85318
  lg: {
85316
- [vars$W.itemVerticalPadding]: globalRefs$z.spacing.lg,
85317
- [vars$W.itemHorizontalPadding]: globalRefs$z.spacing.lg,
85319
+ [vars$X.itemVerticalPadding]: globalRefs$z.spacing.lg,
85320
+ [vars$X.itemHorizontalPadding]: globalRefs$z.spacing.lg,
85318
85321
  },
85319
85322
  xl: {
85320
- [vars$W.itemVerticalPadding]: globalRefs$z.spacing.xl,
85321
- [vars$W.itemHorizontalPadding]: globalRefs$z.spacing.xl,
85323
+ [vars$X.itemVerticalPadding]: globalRefs$z.spacing.xl,
85324
+ [vars$X.itemHorizontalPadding]: globalRefs$z.spacing.xl,
85322
85325
  },
85323
85326
  },
85324
85327
  };
@@ -85326,7 +85329,7 @@ function requireIndex_cjs () {
85326
85329
  var appsList$1 = /*#__PURE__*/Object.freeze({
85327
85330
  __proto__: null,
85328
85331
  default: appsList,
85329
- vars: vars$W
85332
+ vars: vars$X
85330
85333
  });
85331
85334
 
85332
85335
  const globalRefs$y = getThemeRefs$1(globals);
@@ -85335,7 +85338,7 @@ function requireIndex_cjs () {
85335
85338
 
85336
85339
  const [helperTheme$5, helperRefs$5, helperVars$5] = createHelperVars$1(
85337
85340
  { shadowColor: '#00000020' },
85338
- componentName$16,
85341
+ componentName$18,
85339
85342
  );
85340
85343
 
85341
85344
  const { shadowColor: shadowColor$5 } = helperRefs$5;
@@ -85396,7 +85399,7 @@ function requireIndex_cjs () {
85396
85399
  },
85397
85400
  };
85398
85401
 
85399
- const vars$V = {
85402
+ const vars$W = {
85400
85403
  ...compVars$7,
85401
85404
  ...helperVars$5,
85402
85405
  };
@@ -85404,62 +85407,62 @@ function requireIndex_cjs () {
85404
85407
  var list$1 = /*#__PURE__*/Object.freeze({
85405
85408
  __proto__: null,
85406
85409
  default: list,
85407
- vars: vars$V
85410
+ vars: vars$W
85408
85411
  });
85409
85412
 
85410
85413
  const globalRefs$x = getThemeRefs$1(globals);
85411
85414
 
85412
- const vars$U = ListItemClass.cssVarList;
85415
+ const vars$V = ListItemClass.cssVarList;
85413
85416
 
85414
85417
  const listItem = {
85415
- [vars$U.backgroundColor]: globalRefs$x.colors.surface.main,
85416
- [vars$U.verticalPadding]: globalRefs$x.spacing.lg,
85417
- [vars$U.horizontalPadding]: globalRefs$x.spacing.lg,
85418
- [vars$U.gap]: globalRefs$x.spacing.md,
85419
- [vars$U.borderStyle]: 'solid',
85420
- [vars$U.borderWidth]: globalRefs$x.border.xs,
85421
- [vars$U.borderColor]: globalRefs$x.colors.surface.main,
85422
- [vars$U.borderRadius]: globalRefs$x.radius.sm,
85423
- [vars$U.cursor]: 'pointer',
85424
- [vars$U.alignItems]: 'center',
85425
- [vars$U.flexDirection]: 'row',
85426
- [vars$U.transition]: 'border-color 0.2s, background-color 0.2s',
85418
+ [vars$V.backgroundColor]: globalRefs$x.colors.surface.main,
85419
+ [vars$V.verticalPadding]: globalRefs$x.spacing.lg,
85420
+ [vars$V.horizontalPadding]: globalRefs$x.spacing.lg,
85421
+ [vars$V.gap]: globalRefs$x.spacing.md,
85422
+ [vars$V.borderStyle]: 'solid',
85423
+ [vars$V.borderWidth]: globalRefs$x.border.xs,
85424
+ [vars$V.borderColor]: globalRefs$x.colors.surface.main,
85425
+ [vars$V.borderRadius]: globalRefs$x.radius.sm,
85426
+ [vars$V.cursor]: 'pointer',
85427
+ [vars$V.alignItems]: 'center',
85428
+ [vars$V.flexDirection]: 'row',
85429
+ [vars$V.transition]: 'border-color 0.2s, background-color 0.2s',
85427
85430
 
85428
85431
  variant: {
85429
85432
  tile: {
85430
- [vars$U.alignItems]: 'flex-start',
85431
- [vars$U.flexDirection]: 'column',
85432
- [vars$U.borderColor]: globalRefs$x.colors.surface.light,
85433
+ [vars$V.alignItems]: 'flex-start',
85434
+ [vars$V.flexDirection]: 'column',
85435
+ [vars$V.borderColor]: globalRefs$x.colors.surface.light,
85433
85436
  },
85434
85437
  },
85435
85438
 
85436
85439
  _hover: {
85437
- [vars$U.backgroundColor]: globalRefs$x.colors.surface.highlight,
85440
+ [vars$V.backgroundColor]: globalRefs$x.colors.surface.highlight,
85438
85441
  },
85439
85442
 
85440
85443
  _active: {
85441
- [vars$U.backgroundColor]: globalRefs$x.colors.surface.main,
85442
- [vars$U.borderColor]: globalRefs$x.colors.primary.light,
85443
- [vars$U.outline]: `1px solid ${globalRefs$x.colors.primary.light}`,
85444
+ [vars$V.backgroundColor]: globalRefs$x.colors.surface.main,
85445
+ [vars$V.borderColor]: globalRefs$x.colors.primary.light,
85446
+ [vars$V.outline]: `1px solid ${globalRefs$x.colors.primary.light}`,
85444
85447
  },
85445
85448
  };
85446
85449
 
85447
85450
  var listItem$1 = /*#__PURE__*/Object.freeze({
85448
85451
  __proto__: null,
85449
85452
  default: listItem,
85450
- vars: vars$U
85453
+ vars: vars$V
85451
85454
  });
85452
85455
 
85453
- const componentName$14 = getComponentName('autocomplete-field-internal');
85456
+ const componentName$16 = getComponentName('autocomplete-field-internal');
85454
85457
 
85455
85458
  createBaseInputClass$1({
85456
- componentName: componentName$14,
85459
+ componentName: componentName$16,
85457
85460
  baseSelector: '',
85458
85461
  });
85459
85462
 
85460
- const componentName$13 = getComponentName('autocomplete-field');
85463
+ const componentName$15 = getComponentName('autocomplete-field');
85461
85464
 
85462
- const customMixin$c = (superclass) =>
85465
+ const customMixin$d = (superclass) =>
85463
85466
  class AutocompleteFieldMixinClass extends superclass {
85464
85467
  get defaultValue() {
85465
85468
  return this.getAttribute('default-value');
@@ -85478,15 +85481,15 @@ function requireIndex_cjs () {
85478
85481
  const template = document.createElement('template');
85479
85482
 
85480
85483
  template.innerHTML = `
85481
- <${componentName$14}
85484
+ <${componentName$16}
85482
85485
  tabindex="-1"
85483
- ></${componentName$14}>
85486
+ ></${componentName$16}>
85484
85487
  `;
85485
85488
 
85486
85489
  this.baseElement.appendChild(template.content.cloneNode(true));
85487
85490
 
85488
85491
  this.inputElement = this.shadowRoot.querySelector(
85489
- componentName$14,
85492
+ componentName$16,
85490
85493
  );
85491
85494
 
85492
85495
  forwardAttrs(this, this.inputElement, {
@@ -85526,7 +85529,7 @@ function requireIndex_cjs () {
85526
85529
  }
85527
85530
  };
85528
85531
 
85529
- const { host: host$r } = {
85532
+ const { host: host$s } = {
85530
85533
  host: { selector: () => ':host' },
85531
85534
  };
85532
85535
 
@@ -85536,9 +85539,9 @@ function requireIndex_cjs () {
85536
85539
  }),
85537
85540
  createStyleMixin$1({
85538
85541
  mappings: {
85539
- hostWidth: { ...host$r, property: 'width' },
85540
- hostDirection: { ...host$r, property: 'direction' },
85541
- fontSize: { ...host$r },
85542
+ hostWidth: { ...host$s, property: 'width' },
85543
+ hostDirection: { ...host$s, property: 'direction' },
85544
+ fontSize: { ...host$s },
85542
85545
  checkmarkDisplay: {
85543
85546
  selector: ComboBoxClass.componentName,
85544
85547
  property: ComboBoxClass.cssVarList.overlayCheckmarkDisplay,
@@ -85576,7 +85579,7 @@ function requireIndex_cjs () {
85576
85579
  proxyParentValidation: true,
85577
85580
  }),
85578
85581
  componentNameValidationMixin$1,
85579
- customMixin$c,
85582
+ customMixin$d,
85580
85583
  )(
85581
85584
  createProxy$1({
85582
85585
  slots: [],
@@ -85605,34 +85608,34 @@ function requireIndex_cjs () {
85605
85608
  }
85606
85609
  `,
85607
85610
  excludeAttrsSync: ['tabindex', 'error-message', 'label', 'style'],
85608
- componentName: componentName$13,
85611
+ componentName: componentName$15,
85609
85612
  }),
85610
85613
  );
85611
85614
 
85612
- const vars$T = AutocompleteFieldClass.cssVarList;
85615
+ const vars$U = AutocompleteFieldClass.cssVarList;
85613
85616
  const globalRefs$w = getThemeRefs$1(globals);
85614
85617
 
85615
85618
  const autocompleteField = {
85616
- [vars$T.hostWidth]: refs$1.width,
85617
- [vars$T.hostDirection]: refs$1.direction,
85618
- [vars$T.fontSize]: refs$1.fontSize,
85619
- [vars$T.checkmarkDisplay]: 'none',
85620
- [vars$T.itemPaddingInlineStart]: globalRefs$w.spacing.lg,
85621
- [vars$T.itemPaddingInlineEnd]: globalRefs$w.spacing.lg,
85622
- [vars$T.selectedItemBackground]: globalRefs$w.colors.primary.light,
85623
- [vars$T.selectedItemHoverBackground]: globalRefs$w.colors.primary.light,
85624
- [vars$T.selectedItemFocusBackground]: globalRefs$w.colors.primary.light,
85625
- [vars$T.itemHoverBackground]: globalRefs$w.colors.primary.highlight,
85619
+ [vars$U.hostWidth]: refs$1.width,
85620
+ [vars$U.hostDirection]: refs$1.direction,
85621
+ [vars$U.fontSize]: refs$1.fontSize,
85622
+ [vars$U.checkmarkDisplay]: 'none',
85623
+ [vars$U.itemPaddingInlineStart]: globalRefs$w.spacing.lg,
85624
+ [vars$U.itemPaddingInlineEnd]: globalRefs$w.spacing.lg,
85625
+ [vars$U.selectedItemBackground]: globalRefs$w.colors.primary.light,
85626
+ [vars$U.selectedItemHoverBackground]: globalRefs$w.colors.primary.light,
85627
+ [vars$U.selectedItemFocusBackground]: globalRefs$w.colors.primary.light,
85628
+ [vars$U.itemHoverBackground]: globalRefs$w.colors.primary.highlight,
85626
85629
 
85627
85630
  _fullWidth: {
85628
- [vars$T.hostWidth]: '100%',
85631
+ [vars$U.hostWidth]: '100%',
85629
85632
  },
85630
85633
  };
85631
85634
 
85632
85635
  var autocompleteField$1 = /*#__PURE__*/Object.freeze({
85633
85636
  __proto__: null,
85634
85637
  default: autocompleteField,
85635
- vars: vars$T
85638
+ vars: vars$U
85636
85639
  });
85637
85640
 
85638
85641
  const initGoogleMapsLoader = (apiKey) => {
@@ -85859,7 +85862,7 @@ function requireIndex_cjs () {
85859
85862
  }
85860
85863
  }
85861
85864
 
85862
- const componentName$12 = getComponentName('address-field-internal');
85865
+ const componentName$14 = getComponentName('address-field-internal');
85863
85866
 
85864
85867
  const GOOGLE_MAPS_CONNECTOR_TEMPLATE = 'google-maps-places';
85865
85868
  const RADAR_CONNECTOR_TEMPLATE = 'radar';
@@ -85869,16 +85872,16 @@ function requireIndex_cjs () {
85869
85872
  [RADAR_CONNECTOR_TEMPLATE]: RadarConnector,
85870
85873
  };
85871
85874
 
85872
- const BaseInputClass$4 = createBaseInputClass$1({
85873
- componentName: componentName$12,
85875
+ const BaseInputClass$5 = createBaseInputClass$1({
85876
+ componentName: componentName$14,
85874
85877
  baseSelector: '',
85875
85878
  });
85876
85879
  const initConnectorAttrs = ['public-api-key'];
85877
- const observedAttrs$4 = [...initConnectorAttrs];
85880
+ const observedAttrs$5 = [...initConnectorAttrs];
85878
85881
 
85879
- class RawAddressFieldInternal extends BaseInputClass$4 {
85882
+ class RawAddressFieldInternal extends BaseInputClass$5 {
85880
85883
  static get observedAttributes() {
85881
- return [].concat(BaseInputClass$4.observedAttributes || [], observedAttrs$4);
85884
+ return [].concat(BaseInputClass$5.observedAttributes || [], observedAttrs$5);
85882
85885
  }
85883
85886
 
85884
85887
  get errorMsgValueMissing() {
@@ -85977,9 +85980,9 @@ function requireIndex_cjs () {
85977
85980
  connectorMixin({ connectorClasses: CONNECTOR_CLASSES }),
85978
85981
  )(RawAddressFieldInternal);
85979
85982
 
85980
- const componentName$11 = getComponentName('address-field');
85983
+ const componentName$13 = getComponentName('address-field');
85981
85984
 
85982
- const customMixin$b = (superclass) =>
85985
+ const customMixin$c = (superclass) =>
85983
85986
  class AddressFieldMixinClass extends superclass {
85984
85987
  get defaultValue() {
85985
85988
  return this.getAttribute('default-value');
@@ -86006,15 +86009,15 @@ function requireIndex_cjs () {
86006
86009
  const template = document.createElement('template');
86007
86010
 
86008
86011
  template.innerHTML = `
86009
- <${componentName$12}
86012
+ <${componentName$14}
86010
86013
  tabindex="-1"
86011
- ></${componentName$12}>
86014
+ ></${componentName$14}>
86012
86015
  `;
86013
86016
 
86014
86017
  this.baseElement.appendChild(template.content.cloneNode(true));
86015
86018
 
86016
86019
  this.inputElement = this.shadowRoot.querySelector(
86017
- componentName$12,
86020
+ componentName$14,
86018
86021
  );
86019
86022
 
86020
86023
  forwardAttrs(this, this.inputElement, {
@@ -86055,7 +86058,7 @@ function requireIndex_cjs () {
86055
86058
  }
86056
86059
  };
86057
86060
 
86058
- const { host: host$q } = {
86061
+ const { host: host$r } = {
86059
86062
  host: { selector: () => ':host' },
86060
86063
  };
86061
86064
 
@@ -86065,8 +86068,8 @@ function requireIndex_cjs () {
86065
86068
  }),
86066
86069
  createStyleMixin$1({
86067
86070
  mappings: {
86068
- hostWidth: { ...host$q, property: 'width' },
86069
- hostDirection: { ...host$q, property: 'direction' },
86071
+ hostWidth: { ...host$r, property: 'width' },
86072
+ hostDirection: { ...host$r, property: 'direction' },
86070
86073
  },
86071
86074
  }),
86072
86075
  draggableMixin$1,
@@ -86076,7 +86079,7 @@ function requireIndex_cjs () {
86076
86079
  proxyParentValidation: true,
86077
86080
  }),
86078
86081
  componentNameValidationMixin$1,
86079
- customMixin$b,
86082
+ customMixin$c,
86080
86083
  )(
86081
86084
  createProxy$1({
86082
86085
  slots: [],
@@ -86092,7 +86095,7 @@ function requireIndex_cjs () {
86092
86095
  width: 100%;
86093
86096
  }
86094
86097
 
86095
- ${componentName$12} {
86098
+ ${componentName$14} {
86096
86099
  display: inline-block;
86097
86100
  box-sizing: border-box;
86098
86101
  user-select: none;
@@ -86100,30 +86103,30 @@ function requireIndex_cjs () {
86100
86103
  max-width: 100%;
86101
86104
  }
86102
86105
 
86103
- ${componentName$12} ::slotted {
86106
+ ${componentName$14} ::slotted {
86104
86107
  padding: 0;
86105
86108
  }
86106
86109
  `,
86107
86110
  excludeAttrsSync: ['tabindex', 'error-message', 'label', 'style'],
86108
- componentName: componentName$11,
86111
+ componentName: componentName$13,
86109
86112
  }),
86110
86113
  );
86111
86114
 
86112
- const vars$S = AddressFieldClass.cssVarList;
86115
+ const vars$T = AddressFieldClass.cssVarList;
86113
86116
 
86114
86117
  const addressField = {
86115
- [vars$S.hostWidth]: refs$1.width,
86116
- [vars$S.hostDirection]: refs$1.direction,
86118
+ [vars$T.hostWidth]: refs$1.width,
86119
+ [vars$T.hostDirection]: refs$1.direction,
86117
86120
 
86118
86121
  _fullWidth: {
86119
- [vars$S.hostWidth]: '100%',
86122
+ [vars$T.hostWidth]: '100%',
86120
86123
  },
86121
86124
  };
86122
86125
 
86123
86126
  var addressField$1 = /*#__PURE__*/Object.freeze({
86124
86127
  __proto__: null,
86125
86128
  default: addressField,
86126
- vars: vars$S
86129
+ vars: vars$T
86127
86130
  });
86128
86131
 
86129
86132
  var clockIcon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMWVtIiBoZWlnaHQ9IjFlbSIgdmlld0JveD0iMCAwIDEwNCAxMDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik01MC4zMzM0IDAuMzMzMjUyQzIyLjgzMzQgMC4zMzMyNTIgMC4zMzMzNzQgMjIuODMzMyAwLjMzMzM3NCA1MC4zMzMzQzAuMzMzMzc0IDc3LjgzMzMgMjIuODMzNCAxMDAuMzMzIDUwLjMzMzQgMTAwLjMzM0M3Ny44MzM0IDEwMC4zMzMgMTAwLjMzMyA3Ny44MzMzIDEwMC4zMzMgNTAuMzMzM0MxMDAuMzMzIDIyLjgzMzMgNzcuODMzNCAwLjMzMzI1MiA1MC4zMzM0IDAuMzMzMjUyWk01MC4zMzM0IDg3LjgzMzNDMjkuNzA4NCA4Ny44MzMzIDEyLjgzMzQgNzAuOTU4MyAxMi44MzM0IDUwLjMzMzNDMTIuODMzNCAyOS43MDgzIDI5LjcwODQgMTIuODMzMyA1MC4zMzM0IDEyLjgzMzNDNzAuOTU4NCAxMi44MzMzIDg3LjgzMzQgMjkuNzA4MyA4Ny44MzM0IDUwLjMzMzNDODcuODMzNCA3MC45NTgzIDcwLjk1ODQgODcuODMzMyA1MC4zMzM0IDg3LjgzMzNaIiBmaWxsPSIjMTgxQTFDIi8+CjxwYXRoIGQ9Ik01MC4zMzI4IDE5LjA4MzNINDQuMDgyOFY1Ni41ODMySDc1LjMzMjhWNTAuMzMzMkg1MC4zMzI4VjE5LjA4MzNaIiBmaWxsPSIjMTgxQTFDIi8+Cjwvc3ZnPgo=";
@@ -86145,12 +86148,12 @@ function requireIndex_cjs () {
86145
86148
  return timeParts.join(':');
86146
86149
  };
86147
86150
 
86148
- const componentName$10 = getComponentName('timer');
86151
+ const componentName$12 = getComponentName('timer');
86149
86152
 
86150
86153
  const observedAttributes$5 = ['seconds', 'hide-icon', 'paused'];
86151
86154
 
86152
86155
  const BaseClass$7 = createBaseClass$1({
86153
- componentName: componentName$10,
86156
+ componentName: componentName$12,
86154
86157
  baseSelector: ':host > .wrapper',
86155
86158
  });
86156
86159
 
@@ -86303,7 +86306,7 @@ function requireIndex_cjs () {
86303
86306
  }
86304
86307
  }
86305
86308
 
86306
- const { host: host$p, icon: icon$2, timer: timer$2 } = {
86309
+ const { host: host$q, icon: icon$2, timer: timer$2 } = {
86307
86310
  host: { selector: () => ':host' },
86308
86311
  icon: { selector: () => '.icon' },
86309
86312
  timer: { selector: () => '.timer' },
@@ -86324,8 +86327,8 @@ function requireIndex_cjs () {
86324
86327
  textColor: { ...timer$2, property: 'color' },
86325
86328
  gap: {},
86326
86329
  textAlign: { property: 'justify-content' },
86327
- hostWidth: { ...host$p, property: 'width' },
86328
- hostDirection: { ...host$p, property: 'direction' },
86330
+ hostWidth: { ...host$q, property: 'width' },
86331
+ hostDirection: { ...host$q, property: 'direction' },
86329
86332
  iconColor: { ...icon$2, property: IconClass.cssVarList.fill },
86330
86333
  },
86331
86334
  }),
@@ -86334,44 +86337,44 @@ function requireIndex_cjs () {
86334
86337
  )(RawTimer);
86335
86338
 
86336
86339
  const globalRefs$v = getThemeRefs$1(globals);
86337
- const vars$R = TimerClass.cssVarList;
86340
+ const vars$S = TimerClass.cssVarList;
86338
86341
 
86339
86342
  const timer = {
86340
- [vars$R.hostDirection]: globalRefs$v.direction,
86341
- [vars$R.gap]: '0.25em',
86342
- [vars$R.fontFamily]: globalRefs$v.fonts.font1.family,
86343
- [vars$R.minHeight]: '1.5em',
86344
- [vars$R.lineHeight]: '1em',
86345
- [vars$R.fontWeight]: globalRefs$v.fonts.font1.fontWeight,
86346
- [vars$R.textColor]: globalRefs$v.colors.surface.contrast,
86347
- [vars$R.iconColor]: globalRefs$v.colors.surface.contrast,
86348
- [vars$R.iconSize]: '1em',
86343
+ [vars$S.hostDirection]: globalRefs$v.direction,
86344
+ [vars$S.gap]: '0.25em',
86345
+ [vars$S.fontFamily]: globalRefs$v.fonts.font1.family,
86346
+ [vars$S.minHeight]: '1.5em',
86347
+ [vars$S.lineHeight]: '1em',
86348
+ [vars$S.fontWeight]: globalRefs$v.fonts.font1.fontWeight,
86349
+ [vars$S.textColor]: globalRefs$v.colors.surface.contrast,
86350
+ [vars$S.iconColor]: globalRefs$v.colors.surface.contrast,
86351
+ [vars$S.iconSize]: '1em',
86349
86352
 
86350
86353
  size: {
86351
- xs: { [vars$R.fontSize]: '12px' },
86352
- sm: { [vars$R.fontSize]: '14px' },
86353
- md: { [vars$R.fontSize]: '16px' },
86354
- lg: { [vars$R.fontSize]: '18px' },
86354
+ xs: { [vars$S.fontSize]: '12px' },
86355
+ sm: { [vars$S.fontSize]: '14px' },
86356
+ md: { [vars$S.fontSize]: '16px' },
86357
+ lg: { [vars$S.fontSize]: '18px' },
86355
86358
  },
86356
86359
 
86357
86360
  textAlign: {
86358
- right: { [vars$R.textAlign]: 'right' },
86359
- left: { [vars$R.textAlign]: 'left' },
86360
- center: { [vars$R.textAlign]: 'center' },
86361
+ right: { [vars$S.textAlign]: 'right' },
86362
+ left: { [vars$S.textAlign]: 'left' },
86363
+ center: { [vars$S.textAlign]: 'center' },
86361
86364
  },
86362
86365
 
86363
86366
  _fullWidth: {
86364
- [vars$R.hostWidth]: '100%',
86367
+ [vars$S.hostWidth]: '100%',
86365
86368
  },
86366
86369
  };
86367
86370
 
86368
86371
  var timer$1 = /*#__PURE__*/Object.freeze({
86369
86372
  __proto__: null,
86370
86373
  default: timer,
86371
- vars: vars$R
86374
+ vars: vars$S
86372
86375
  });
86373
86376
 
86374
- const componentName$$ = getComponentName('timer-button');
86377
+ const componentName$11 = getComponentName('timer-button');
86375
86378
 
86376
86379
  const buttonAttrs = [
86377
86380
  'button-variant',
@@ -86402,7 +86405,7 @@ function requireIndex_cjs () {
86402
86405
  };
86403
86406
 
86404
86407
  const BaseClass$6 = createBaseClass$1({
86405
- componentName: componentName$$,
86408
+ componentName: componentName$11,
86406
86409
  baseSelector: ':host > div',
86407
86410
  });
86408
86411
 
@@ -86494,7 +86497,7 @@ function requireIndex_cjs () {
86494
86497
  }
86495
86498
  }
86496
86499
 
86497
- const { host: host$o } = {
86500
+ const { host: host$p } = {
86498
86501
  host: { selector: () => ':host' }};
86499
86502
 
86500
86503
  const TimerButtonClass = compose(
@@ -86502,8 +86505,8 @@ function requireIndex_cjs () {
86502
86505
  mappings: {
86503
86506
  gap: {},
86504
86507
  flexDirection: {},
86505
- hostWidth: { ...host$o, property: 'width' },
86506
- hostDirection: { ...host$o, property: 'direction' },
86508
+ hostWidth: { ...host$p, property: 'width' },
86509
+ hostDirection: { ...host$p, property: 'direction' },
86507
86510
  },
86508
86511
  }),
86509
86512
  draggableMixin$1,
@@ -86511,30 +86514,30 @@ function requireIndex_cjs () {
86511
86514
  )(RawTimerButton);
86512
86515
 
86513
86516
  const globalRefs$u = getThemeRefs$1(globals);
86514
- const vars$Q = TimerButtonClass.cssVarList;
86517
+ const vars$R = TimerButtonClass.cssVarList;
86515
86518
 
86516
86519
  const timerButton = {
86517
- [vars$Q.gap]: globalRefs$u.spacing.sm,
86518
- [vars$Q.flexDirection]: 'column',
86520
+ [vars$R.gap]: globalRefs$u.spacing.sm,
86521
+ [vars$R.flexDirection]: 'column',
86519
86522
 
86520
86523
  _horizontal: {
86521
- [vars$Q.flexDirection]: 'row',
86524
+ [vars$R.flexDirection]: 'row',
86522
86525
  },
86523
86526
 
86524
86527
  _fullWidth: {
86525
- [vars$Q.hostWidth]: '100%',
86528
+ [vars$R.hostWidth]: '100%',
86526
86529
  },
86527
86530
  };
86528
86531
 
86529
86532
  var timerButton$1 = /*#__PURE__*/Object.freeze({
86530
86533
  __proto__: null,
86531
86534
  default: timerButton,
86532
- vars: vars$Q
86535
+ vars: vars$R
86533
86536
  });
86534
86537
 
86535
- const componentName$_ = getComponentName('password-strength');
86538
+ const componentName$10 = getComponentName('password-strength');
86536
86539
  class RawPasswordStrength extends createBaseClass$1({
86537
- componentName: componentName$_,
86540
+ componentName: componentName$10,
86538
86541
  baseSelector: ':host > .wrapper',
86539
86542
  }) {
86540
86543
  static get observedAttributes() {
@@ -86648,7 +86651,7 @@ function requireIndex_cjs () {
86648
86651
  }
86649
86652
  }
86650
86653
 
86651
- const { host: host$n, bar, filledBar, barsContainer, text: text$1 } = {
86654
+ const { host: host$o, bar, filledBar, barsContainer, text: text$1 } = {
86652
86655
  host: { selector: () => ':host' },
86653
86656
  bar: { selector: ' .bar' },
86654
86657
  barsContainer: { selector: ' .bars-container' },
@@ -86661,11 +86664,11 @@ function requireIndex_cjs () {
86661
86664
  createStyleMixin$1({
86662
86665
  mappings: {
86663
86666
  hostWidth: [
86664
- { ...host$n, property: 'width' },
86665
- { ...host$n, property: 'min-width' },
86667
+ { ...host$o, property: 'width' },
86668
+ { ...host$o, property: 'min-width' },
86666
86669
  ],
86667
- hostDirection: { ...host$n, property: 'direction' },
86668
- hostMinWidth: { ...host$n, property: 'min-width' },
86670
+ hostDirection: { ...host$o, property: 'direction' },
86671
+ hostMinWidth: { ...host$o, property: 'min-width' },
86669
86672
  barHeight: { ...bar, property: 'height' },
86670
86673
  barBorderRadius: { ...bar, property: 'border-radius' },
86671
86674
  emptyBarColor: { ...bar, property: 'background-color' },
@@ -86725,22 +86728,22 @@ function requireIndex_cjs () {
86725
86728
  }
86726
86729
  };
86727
86730
 
86728
- const vars$P = {
86731
+ const vars$Q = {
86729
86732
  ...compVars$6,
86730
86733
  };
86731
86734
 
86732
86735
  var passwordStrength$1 = /*#__PURE__*/Object.freeze({
86733
86736
  __proto__: null,
86734
86737
  default: passwordStrength,
86735
- vars: vars$P
86738
+ vars: vars$Q
86736
86739
  });
86737
86740
 
86738
86741
  var chevronIcon = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iYmxhY2siIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik0xNy4yMTkzIDkuMjcyODNDMTcuNjU4NCA4Ljg3OTEyIDE4LjMzMzQgOC45MTU4NyAxOC43MjcyIDkuMzU0OTJDMTkuMTIwOSA5Ljc5Mzk3IDE5LjA4NDEgMTAuNDY5MSAxOC42NDUxIDEwLjg2MjhDMTguNjQ1MSAxMC44NjI4IDEzLjA0NTcgMTYuMDAyMiAxMi42NCAxNi4zNjZDMTIuMjM0MyAxNi43Mjk4IDExLjc2MDggMTYuNzI5OCAxMS4zNTUyIDE2LjM2Nkw1LjM1NDkyIDEwLjg2MjhDNC45MTU4NyAxMC40NjkxIDQuODc5MTIgOS43OTM5NyA1LjI3MjgzIDkuMzU0OTJDNS42NjY1NSA4LjkxNTg3IDYuMzQxNjQgOC44NzkxMiA2Ljc4MDY5IDkuMjcyODNMMTIgMTQuMTM2OEwxNy4yMTkzIDkuMjcyODNaIi8+Cjwvc3ZnPgo=";
86739
86742
 
86740
- const componentName$Z = getComponentName('collapsible-container');
86743
+ const componentName$$ = getComponentName('collapsible-container');
86741
86744
 
86742
86745
  class RawCollapsibleContainer extends createBaseClass$1({
86743
- componentName: componentName$Z,
86746
+ componentName: componentName$$,
86744
86747
  baseSelector: 'slot',
86745
86748
  }) {
86746
86749
  static get observedAttributes() {
@@ -86975,7 +86978,7 @@ function requireIndex_cjs () {
86975
86978
  {
86976
86979
  shadowColor: '#00000020', // if we want to support transparency vars, we should use different color format
86977
86980
  },
86978
- componentName$Z
86981
+ componentName$$
86979
86982
  );
86980
86983
 
86981
86984
  const { shadowColor: shadowColor$4 } = helperRefs$4;
@@ -87075,7 +87078,7 @@ function requireIndex_cjs () {
87075
87078
  }
87076
87079
  };
87077
87080
 
87078
- const vars$O = {
87081
+ const vars$P = {
87079
87082
  ...compVars$5,
87080
87083
  ...helperVars$4,
87081
87084
  };
@@ -87083,10 +87086,10 @@ function requireIndex_cjs () {
87083
87086
  var collapsibleContainer$1 = /*#__PURE__*/Object.freeze({
87084
87087
  __proto__: null,
87085
87088
  default: collapsibleContainer,
87086
- vars: vars$O
87089
+ vars: vars$P
87087
87090
  });
87088
87091
 
87089
- const componentName$Y = getComponentName('recovery-codes');
87092
+ const componentName$_ = getComponentName('recovery-codes');
87090
87093
 
87091
87094
  const itemRenderer$3 = ({ value }, _, ref) => {
87092
87095
  return `
@@ -87097,7 +87100,7 @@ function requireIndex_cjs () {
87097
87100
  };
87098
87101
 
87099
87102
  class RawRecoveryCodes extends createBaseClass$1({
87100
- componentName: componentName$Y,
87103
+ componentName: componentName$_,
87101
87104
  baseSelector: ':host > div',
87102
87105
  }) {
87103
87106
  static get observedAttributes() {
@@ -87237,35 +87240,35 @@ function requireIndex_cjs () {
87237
87240
  )(RawRecoveryCodes);
87238
87241
 
87239
87242
  const globalRefs$r = getThemeRefs$1(globals);
87240
- const vars$N = RecoveryCodesClass.cssVarList;
87243
+ const vars$O = RecoveryCodesClass.cssVarList;
87241
87244
  const textVars$5 = TextClass.cssVarList;
87242
87245
 
87243
87246
  const recoveryCodes = {
87244
- [vars$N.hostMinWidth]: '190px',
87245
- [vars$N.hostDirection]: globalRefs$r.direction,
87246
- [vars$N.iconColor]: useVar$1(textVars$5.textColor),
87247
- [vars$N.iconSize]: useVar$1(textVars$5.fontSize),
87248
- [vars$N.iconGap]: '8px',
87249
- [vars$N.bulletGap]: '0.35em',
87247
+ [vars$O.hostMinWidth]: '190px',
87248
+ [vars$O.hostDirection]: globalRefs$r.direction,
87249
+ [vars$O.iconColor]: useVar$1(textVars$5.textColor),
87250
+ [vars$O.iconSize]: useVar$1(textVars$5.fontSize),
87251
+ [vars$O.iconGap]: '8px',
87252
+ [vars$O.bulletGap]: '0.35em',
87250
87253
 
87251
87254
  textAlign: {
87252
- right: { [vars$N.textAlign]: 'flex-end' },
87253
- left: { [vars$N.textAlign]: 'flex-start' },
87254
- center: { [vars$N.textAlign]: 'center' },
87255
+ right: { [vars$O.textAlign]: 'flex-end' },
87256
+ left: { [vars$O.textAlign]: 'flex-start' },
87257
+ center: { [vars$O.textAlign]: 'center' },
87255
87258
  },
87256
87259
 
87257
87260
  _fullWidth: {
87258
- [vars$N.hostWidth]: '100%',
87261
+ [vars$O.hostWidth]: '100%',
87259
87262
  },
87260
87263
  };
87261
87264
 
87262
87265
  var recoveryCodes$1 = /*#__PURE__*/Object.freeze({
87263
87266
  __proto__: null,
87264
87267
  default: recoveryCodes,
87265
- vars: vars$N
87268
+ vars: vars$O
87266
87269
  });
87267
87270
 
87268
- const componentName$X = getComponentName('outbound-apps');
87271
+ const componentName$Z = getComponentName('outbound-apps');
87269
87272
 
87270
87273
  const itemRenderer$2 = (
87271
87274
  { name, description, logo, appId, isConnected },
@@ -87311,7 +87314,7 @@ function requireIndex_cjs () {
87311
87314
  };
87312
87315
 
87313
87316
  const BaseClass$5 = createBaseClass$1({
87314
- componentName: componentName$X,
87317
+ componentName: componentName$Z,
87315
87318
  baseSelector: 'descope-list',
87316
87319
  });
87317
87320
 
@@ -87395,17 +87398,17 @@ function requireIndex_cjs () {
87395
87398
  }
87396
87399
  }
87397
87400
 
87398
- const { host: host$m } = {
87401
+ const { host: host$n } = {
87399
87402
  host: { selector: () => ':host' },
87400
87403
  };
87401
87404
 
87402
87405
  const OutboundAppsClass = compose(
87403
87406
  createStyleMixin$1({
87404
87407
  mappings: {
87405
- hostWidth: { ...host$m, property: 'width' },
87408
+ hostWidth: { ...host$n, property: 'width' },
87406
87409
  minHeight: { selector: () => ':host' },
87407
87410
  hostDirection: [
87408
- { ...host$m, property: 'direction' },
87411
+ { ...host$n, property: 'direction' },
87409
87412
  {
87410
87413
  selector: 'descope-list',
87411
87414
  property: 'direction',
@@ -87487,36 +87490,36 @@ function requireIndex_cjs () {
87487
87490
  componentNameValidationMixin$1,
87488
87491
  )(RawOutboundAppsClass);
87489
87492
 
87490
- const vars$M = OutboundAppsClass.cssVarList;
87493
+ const vars$N = OutboundAppsClass.cssVarList;
87491
87494
 
87492
87495
  const outboundApps = {
87493
- [vars$M.iconColor]: globals.colors.primary.main,
87494
- [vars$M.errorIconColor]: globals.colors.error.main,
87496
+ [vars$N.iconColor]: globals.colors.primary.main,
87497
+ [vars$N.errorIconColor]: globals.colors.error.main,
87495
87498
 
87496
- [vars$M.appLogoGap]: globals.spacing.md,
87497
- [vars$M.contentGap]: globals.spacing.xs,
87499
+ [vars$N.appLogoGap]: globals.spacing.md,
87500
+ [vars$N.contentGap]: globals.spacing.xs,
87498
87501
 
87499
87502
  // list-item overrides
87500
- [vars$M.itemCursor]: 'default',
87501
- [vars$M.itemOutline]: 'none',
87502
- [vars$M.itemBorderColor]: 'transparent',
87503
+ [vars$N.itemCursor]: 'default',
87504
+ [vars$N.itemOutline]: 'none',
87505
+ [vars$N.itemBorderColor]: 'transparent',
87503
87506
 
87504
- [vars$M.listPadding]: '0',
87505
- [vars$M.listBorderWidth]: '0',
87506
- [vars$M.listBoxShadow]: 'none',
87507
+ [vars$N.listPadding]: '0',
87508
+ [vars$N.listBorderWidth]: '0',
87509
+ [vars$N.listBoxShadow]: 'none',
87507
87510
 
87508
87511
  size: {
87509
87512
  xs: {
87510
- [vars$M.fontSize]: '0.6em',
87513
+ [vars$N.fontSize]: '0.6em',
87511
87514
  },
87512
87515
  sm: {
87513
- [vars$M.fontSize]: '0.8em',
87516
+ [vars$N.fontSize]: '0.8em',
87514
87517
  },
87515
87518
  md: {
87516
- [vars$M.fontSize]: '1em',
87519
+ [vars$N.fontSize]: '1em',
87517
87520
  },
87518
87521
  lg: {
87519
- [vars$M.fontSize]: '1.5em',
87522
+ [vars$N.fontSize]: '1.5em',
87520
87523
  },
87521
87524
  },
87522
87525
  };
@@ -87524,13 +87527,13 @@ function requireIndex_cjs () {
87524
87527
  var outboundApps$1 = /*#__PURE__*/Object.freeze({
87525
87528
  __proto__: null,
87526
87529
  default: outboundApps,
87527
- vars: vars$M
87530
+ vars: vars$N
87528
87531
  });
87529
87532
 
87530
- const componentName$W = getComponentName('outbound-app-button');
87533
+ const componentName$Y = getComponentName('outbound-app-button');
87531
87534
 
87532
87535
  class RawOutboundAppButton extends createBaseClass$1({
87533
- componentName: componentName$W,
87536
+ componentName: componentName$Y,
87534
87537
  baseSelector: ':host > descope-button',
87535
87538
  }) {
87536
87539
  static get observedAttributes() {
@@ -87629,12 +87632,12 @@ function requireIndex_cjs () {
87629
87632
  },
87630
87633
  };
87631
87634
 
87632
- const vars$L = compVars$4;
87635
+ const vars$M = compVars$4;
87633
87636
 
87634
87637
  var outboundAppButton$1 = /*#__PURE__*/Object.freeze({
87635
87638
  __proto__: null,
87636
87639
  default: outboundAppButton,
87637
- vars: vars$L
87640
+ vars: vars$M
87638
87641
  });
87639
87642
 
87640
87643
  var desktopDeviceIconLight = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTIwIDE4QzIxLjEgMTggMjEuOTkgMTcuMSAyMS45OSAxNkwyMiA2QzIyIDQuOSAyMS4xIDQgMjAgNEg0QzIuOSA0IDIgNC45IDIgNlYxNkMyIDE3LjEgMi45IDE4IDQgMThIMFYyMEgyNFYxOEgyMFpNNCA2SDIwVjE2SDRWNloiIGZpbGw9IiM2MzZDNzQiLz4KPC9zdmc+Cg==";
@@ -87712,7 +87715,7 @@ function requireIndex_cjs () {
87712
87715
  };
87713
87716
  };
87714
87717
 
87715
- const componentName$V = getComponentName('trusted-devices');
87718
+ const componentName$X = getComponentName('trusted-devices');
87716
87719
 
87717
87720
  const itemRenderer$1 = (
87718
87721
  { id, name, lastLoginDate, deviceType, isCurrent },
@@ -87801,7 +87804,7 @@ function requireIndex_cjs () {
87801
87804
  };
87802
87805
 
87803
87806
  const BaseClass$4 = createBaseClass$1({
87804
- componentName: componentName$V,
87807
+ componentName: componentName$X,
87805
87808
  baseSelector: ListClass.componentName,
87806
87809
  });
87807
87810
 
@@ -87950,17 +87953,17 @@ function requireIndex_cjs () {
87950
87953
  }
87951
87954
  }
87952
87955
 
87953
- const { host: host$l } = {
87956
+ const { host: host$m } = {
87954
87957
  host: { selector: () => ':host' },
87955
87958
  };
87956
87959
 
87957
87960
  const TrustedDevicesClass = compose(
87958
87961
  createStyleMixin$1({
87959
87962
  mappings: {
87960
- hostWidth: { ...host$l, property: 'width' },
87961
- hostMinWidth: { ...host$l, property: 'min-width' },
87963
+ hostWidth: { ...host$m, property: 'width' },
87964
+ hostMinWidth: { ...host$m, property: 'min-width' },
87962
87965
  hostDirection: [
87963
- { ...host$l, property: 'direction' },
87966
+ { ...host$m, property: 'direction' },
87964
87967
  {
87965
87968
  selector: () => 'descope-list-item',
87966
87969
  property: 'direction',
@@ -88091,51 +88094,51 @@ function requireIndex_cjs () {
88091
88094
  componentNameValidationMixin$1,
88092
88095
  )(RawTrustedDevicesClass);
88093
88096
 
88094
- const vars$K = TrustedDevicesClass.cssVarList;
88097
+ const vars$L = TrustedDevicesClass.cssVarList;
88095
88098
 
88096
88099
  const TrustedDevices = {
88097
- [vars$K.hostWidth]: 'auto',
88098
- [vars$K.hostWidth]: '300px',
88099
- [vars$K.hostMinWidth]: '300px',
88100
-
88101
- [vars$K.listBackgroundColor]: 'transparent',
88102
- [vars$K.listBorderRadius]: '0',
88103
- [vars$K.listBorderWidth]: '0',
88104
- [vars$K.listPadding]: '0',
88105
- [vars$K.listBoxShadow]: 'none',
88106
- [vars$K.listItemsGap]: globals.spacing.lg,
88107
-
88108
- [vars$K.itemBorderColor]: globals.colors.surface.light,
88109
- [vars$K.itemVerticalPadding]: globals.spacing.lg,
88110
- [vars$K.itemHorizontalPadding]: globals.spacing.lg,
88111
- [vars$K.itemBorderRadius]: globals.radius.xs,
88112
- [vars$K.itemOutline]: 'transparent',
88113
- [vars$K.itemBackgroundColor]: 'transparent',
88114
- [vars$K.itemCursor]: 'default',
88115
- [vars$K.itemContentGap]: globals.spacing.sm,
88116
-
88117
- [vars$K.badgeBorderColor]: globals.colors.surface.light,
88118
- [vars$K.badgeTextColor]: globals.colors.surface.dark,
88119
- [vars$K.badgeBorderRadius]: globals.radius.xs,
88120
- [vars$K.badgeBackgroundColor]: globals.colors.surface.main,
88121
-
88122
- [vars$K.devicePanelGap]: globals.spacing.md,
88123
- [vars$K.deviceIconGap]: globals.spacing.md,
88124
- [vars$K.deviceIconSize]: '24px',
88125
- [vars$K.lastLoginLabelGap]: globals.spacing.xs,
88100
+ [vars$L.hostWidth]: 'auto',
88101
+ [vars$L.hostWidth]: '300px',
88102
+ [vars$L.hostMinWidth]: '300px',
88103
+
88104
+ [vars$L.listBackgroundColor]: 'transparent',
88105
+ [vars$L.listBorderRadius]: '0',
88106
+ [vars$L.listBorderWidth]: '0',
88107
+ [vars$L.listPadding]: '0',
88108
+ [vars$L.listBoxShadow]: 'none',
88109
+ [vars$L.listItemsGap]: globals.spacing.lg,
88110
+
88111
+ [vars$L.itemBorderColor]: globals.colors.surface.light,
88112
+ [vars$L.itemVerticalPadding]: globals.spacing.lg,
88113
+ [vars$L.itemHorizontalPadding]: globals.spacing.lg,
88114
+ [vars$L.itemBorderRadius]: globals.radius.xs,
88115
+ [vars$L.itemOutline]: 'transparent',
88116
+ [vars$L.itemBackgroundColor]: 'transparent',
88117
+ [vars$L.itemCursor]: 'default',
88118
+ [vars$L.itemContentGap]: globals.spacing.sm,
88119
+
88120
+ [vars$L.badgeBorderColor]: globals.colors.surface.light,
88121
+ [vars$L.badgeTextColor]: globals.colors.surface.dark,
88122
+ [vars$L.badgeBorderRadius]: globals.radius.xs,
88123
+ [vars$L.badgeBackgroundColor]: globals.colors.surface.main,
88124
+
88125
+ [vars$L.devicePanelGap]: globals.spacing.md,
88126
+ [vars$L.deviceIconGap]: globals.spacing.md,
88127
+ [vars$L.deviceIconSize]: '24px',
88128
+ [vars$L.lastLoginLabelGap]: globals.spacing.xs,
88126
88129
 
88127
88130
  _fullWidth: {
88128
- [vars$K.hostWidth]: '100%',
88131
+ [vars$L.hostWidth]: '100%',
88129
88132
  },
88130
88133
  };
88131
88134
 
88132
88135
  var trustedDevices = /*#__PURE__*/Object.freeze({
88133
88136
  __proto__: null,
88134
88137
  default: TrustedDevices,
88135
- vars: vars$K
88138
+ vars: vars$L
88136
88139
  });
88137
88140
 
88138
- const componentName$U = getComponentName('tooltip');
88141
+ const componentName$W = getComponentName('tooltip');
88139
88142
 
88140
88143
  const tooltipAttrs = [
88141
88144
  'text',
@@ -88146,7 +88149,7 @@ function requireIndex_cjs () {
88146
88149
  ];
88147
88150
 
88148
88151
  const BaseClass$3 = createBaseClass$1({
88149
- componentName: componentName$U,
88152
+ componentName: componentName$W,
88150
88153
  baseSelector: 'vaadin-tooltip',
88151
88154
  });
88152
88155
 
@@ -88199,237 +88202,1263 @@ function requireIndex_cjs () {
88199
88202
 
88200
88203
  this.#hideWrappedParts();
88201
88204
 
88202
- this.#setTooltipTarget();
88205
+ this.#setTooltipTarget();
88206
+
88207
+ setTimeout(() => this.#onOverlayReady());
88208
+ }
88209
+
88210
+ #hideWrappedParts() {
88211
+ this.tooltip.style.width = '0';
88212
+ this.tooltip.style.height = '0';
88213
+ this.tooltip.style.display = 'block';
88214
+ this.tooltip.style.overflow = 'hidden';
88215
+ this.tooltip.style.position = 'absolute';
88216
+ }
88217
+
88218
+ #revealWrappedParts() {
88219
+ this.tooltip.style.width = '100%';
88220
+ this.tooltip.style.height = '100%';
88221
+ this.tooltip.style.position = 'static';
88222
+ this.tooltip.style.overflow = 'visible';
88223
+ this.tooltip.textContent = '';
88224
+ this.overlay.style.display = 'block';
88225
+ this.overlay.style.position = 'static';
88226
+ }
88227
+
88228
+ #onOverlayReady() {
88229
+ this.#initTooltipTextComponent();
88230
+ this.#overrideAttachOverlay();
88231
+
88232
+ forwardAttrs(this, this.tooltip, {
88233
+ includeAttrs: ['position', 'opened'],
88234
+ });
88235
+
88236
+ this.#handleTooltipVisibility();
88237
+ }
88238
+
88239
+ #setTooltipTarget() {
88240
+ if (!this.children?.length) return;
88241
+
88242
+ let ele = Array.from(this.children).find(
88243
+ (child) => child !== this.tooltip,
88244
+ );
88245
+
88246
+ if (!ele) return;
88247
+
88248
+ this.tooltip.target = ele;
88249
+ }
88250
+
88251
+ #clearOverlayContentNode() {
88252
+ this.overlayContentNode.innerHTML = '';
88253
+ }
88254
+
88255
+ #createEnrichedTextComponent() {
88256
+ const enrichedText = document.createElement('descope-enriched-text');
88257
+
88258
+ enrichedText.setAttribute('link-target-blank', 'true');
88259
+ enrichedText.textContent = this.tooltipText;
88260
+
88261
+ return enrichedText;
88262
+ }
88263
+
88264
+ #initTooltipTextComponent() {
88265
+ if (!this.overlayContentNode) return;
88266
+
88267
+ setTimeout(() => {
88268
+ this.#clearOverlayContentNode();
88269
+
88270
+ this.textComponent = this.#createEnrichedTextComponent();
88271
+
88272
+ this.overlayContentNode.appendChild(this.textComponent);
88273
+
88274
+ forwardAttrs(this, this.textComponent, {
88275
+ includeAttrs: ['readonly'],
88276
+ });
88277
+ });
88278
+ }
88279
+
88280
+ // the default vaadin behavior is to attach the overlay to the body when opened
88281
+ // we do not want that because it's difficult to style the overlay in this way
88282
+ // so we override it to open inside the shadow DOM
88283
+ #overrideAttachOverlay() {
88284
+ if (!this.overlay) return;
88285
+
88286
+ if (this.isOpened) {
88287
+ // When `opened` attr is used, vaadin doesn't execute `_attachOverlay`,
88288
+ // and the overlay element is rendered outside the component, on the top
88289
+ // level. We need to move it back to the local component's DOM.
88290
+ setTimeout(() => {
88291
+ this.tooltip.shadowRoot.appendChild(this.overlay);
88292
+ this.#handleStaticDisplay();
88293
+ });
88294
+ } else {
88295
+ this.overlay._detachOverlay = () => {};
88296
+
88297
+ this.overlay._attachOverlay = () =>
88298
+ this.tooltip.shadowRoot.appendChild(this.overlay);
88299
+ }
88300
+ }
88301
+
88302
+ #handleTooltipVisibility() {
88303
+ // This is Vaadin's API for manual control of tooltip visibility
88304
+ this.tooltip?.toggleAttribute('manual', this.isOpened);
88305
+ }
88306
+
88307
+ #updateText(value) {
88308
+ if (!this.textComponent) return;
88309
+ this.textComponent.textContent = value?.trim();
88310
+ }
88311
+
88312
+ attributeChangedCallback(attrName, oldValue, newValue) {
88313
+ super.attributeChangedCallback?.(attrName, oldValue, newValue);
88314
+
88315
+ if (oldValue !== newValue) {
88316
+ if (attrName === 'text') {
88317
+ this.#updateText(newValue);
88318
+ }
88319
+
88320
+ if (attrName === 'opened') {
88321
+ this.#handleTooltipVisibility(attrName, newValue);
88322
+ }
88323
+ }
88324
+ }
88325
+ }
88326
+
88327
+ const { overlay: overlay$1, content } = {
88328
+ overlay: { selector: () => 'vaadin-tooltip-overlay::part(overlay)' },
88329
+ content: { selector: () => 'vaadin-tooltip-overlay::part(content)' },
88330
+ };
88331
+
88332
+ /**
88333
+ * This component has no Shadow DOM of its own, so we can't add styles to it
88334
+ * (otherwise it would affect the rest of the DOM).
88335
+ * Note that all styles are within PortalMixin.
88336
+ */
88337
+ const TooltipClass = compose(
88338
+ componentNameValidationMixin$1,
88339
+ portalMixin$1({
88340
+ selector: '',
88341
+ mappings: {
88342
+ fontFamily: {
88343
+ ...content,
88344
+ property: EnrichedTextClass.cssVarList.fontFamilyOverride,
88345
+ },
88346
+ fontSize: {
88347
+ ...content,
88348
+ property: EnrichedTextClass.cssVarList.fontSizeOverride,
88349
+ },
88350
+ fontWeight: {
88351
+ ...content,
88352
+ property: EnrichedTextClass.cssVarList.fontWeightOverride,
88353
+ },
88354
+ textColor: {
88355
+ ...content,
88356
+ property: EnrichedTextClass.cssVarList.textColorOverride,
88357
+ },
88358
+ hostDirection: {
88359
+ ...content,
88360
+ property: EnrichedTextClass.cssVarList.hostDirectionOverride,
88361
+ },
88362
+ backgroundColor: [{ ...overlay$1 }, { ...content }],
88363
+ borderColor: { ...overlay$1 },
88364
+ borderStyle: { ...overlay$1 },
88365
+ borderWidth: { ...overlay$1 },
88366
+ borderRadius: { ...overlay$1 },
88367
+ boxShadow: { ...overlay$1 },
88368
+ horizontalPadding: [
88369
+ { ...content, property: 'padding-left' },
88370
+ { ...content, property: 'padding-right' },
88371
+ ],
88372
+ verticalPadding: [
88373
+ { ...content, property: 'padding-top' },
88374
+ { ...content, property: 'padding-bottom' },
88375
+ ],
88376
+ },
88377
+ forward: {
88378
+ attributes: ['style'],
88379
+ include: false,
88380
+ },
88381
+ }),
88382
+ )(RawTooltip);
88383
+
88384
+ const globalRefs$q = getThemeRefs$1(globals);
88385
+ const vars$K = TooltipClass.cssVarList;
88386
+
88387
+ const [helperTheme$3, helperRefs$3, helperVars$3] = createHelperVars$1(
88388
+ {
88389
+ shadowColor: '#00000020', // if we want to support transparency vars, we should use different color format
88390
+ },
88391
+ componentName$W
88392
+ );
88393
+
88394
+ const { shadowColor: shadowColor$3 } = helperRefs$3;
88395
+ const defaultShadow = `${globalRefs$q.shadow.wide.sm} ${shadowColor$3}, ${globalRefs$q.shadow.narrow.sm} ${shadowColor$3}`;
88396
+
88397
+ const tooltip = {
88398
+ ...helperTheme$3,
88399
+ [vars$K.fontFamily]: globalRefs$q.fonts.font1.family,
88400
+ [vars$K.fontSize]: globals.typography.body2.size,
88401
+ [vars$K.fontWeight]: globals.typography.body2.weight,
88402
+ [vars$K.textColor]: globalRefs$q.colors.surface.contrast,
88403
+ [vars$K.hostDirection]: globalRefs$q.direction,
88404
+ [vars$K.backgroundColor]: globalRefs$q.colors.surface.main,
88405
+ [vars$K.borderColor]: globalRefs$q.colors.surface.light,
88406
+ [vars$K.borderStyle]: 'solid',
88407
+ [vars$K.borderWidth]: globalRefs$q.border.xs,
88408
+ [vars$K.borderRadius]: globalRefs$q.radius.xs,
88409
+ [vars$K.horizontalPadding]: globalRefs$q.spacing.md,
88410
+ [vars$K.verticalPadding]: globalRefs$q.spacing.sm,
88411
+ [vars$K.boxShadow]: defaultShadow,
88412
+
88413
+ shadow: {
88414
+ sm: {
88415
+ [vars$K.boxShadow]: defaultShadow,
88416
+ },
88417
+ md: {
88418
+ [vars$K.boxShadow]: `${globalRefs$q.shadow.wide.md} ${shadowColor$3}, ${globalRefs$q.shadow.narrow.md} ${shadowColor$3}`,
88419
+ },
88420
+ lg: {
88421
+ [vars$K.boxShadow]: `${globalRefs$q.shadow.wide.lg} ${shadowColor$3}, ${globalRefs$q.shadow.narrow.lg} ${shadowColor$3}`,
88422
+ },
88423
+ xl: {
88424
+ [vars$K.boxShadow]: `${globalRefs$q.shadow.wide.xl} ${shadowColor$3}, ${globalRefs$q.shadow.narrow.xl} ${shadowColor$3}`,
88425
+ },
88426
+ '2xl': {
88427
+ [helperVars$3.shadowColor]: '#00000050', // mimic daisyUI shadow settings
88428
+ [vars$K.boxShadow]: `${globalRefs$q.shadow.wide['2xl']} ${shadowColor$3}`,
88429
+ },
88430
+ },
88431
+ };
88432
+
88433
+ var tooltip$1 = /*#__PURE__*/Object.freeze({
88434
+ __proto__: null,
88435
+ default: tooltip,
88436
+ vars: vars$K
88437
+ });
88438
+
88439
+ // Data service for country/subdivision/city data.
88440
+ //
88441
+ // Fetches from the CDN/S3 baseUrl. The URL structure (relative to baseUrl):
88442
+ // <baseUrl>/countries.json
88443
+ // <baseUrl>/countries/{iso2}/subdivisions.json
88444
+ // <baseUrl>/countries/{iso2}/subdivisions/{state_code}/cities.json
88445
+ // <baseUrl>/countries/{iso2}/cities.json (all cities for a country, used when subdivision is hidden)
88446
+ // <parent-of-baseUrl>/labels.json (shared labels/translations, one level up)
88447
+
88448
+ const fetchJson = async (url) => {
88449
+ const response = await fetch(url);
88450
+ if (!response.ok) throw new Error(`[dataService] ${response.status} ${url}`);
88451
+ const json = await response.json();
88452
+ // All files use a { data: [...] } envelope
88453
+ return json.data ?? json;
88454
+ };
88455
+
88456
+ const fetchCountries = async (baseUrl) =>
88457
+ fetchJson(`${baseUrl}/countries.json`);
88458
+
88459
+ const normalizeSubdivisions = (data) =>
88460
+ data.map(({ code, ...rest }) => ({ ...rest, state_code: code }));
88461
+
88462
+ const fetchSubdivisions = async (countryIso2, baseUrl) => {
88463
+ try {
88464
+ const data = await fetchJson(
88465
+ `${baseUrl}/countries/${countryIso2}/subdivisions.json`,
88466
+ );
88467
+ return normalizeSubdivisions(data);
88468
+ } catch {
88469
+ // No subdivisions file means the country has no subdivisions
88470
+ return [];
88471
+ }
88472
+ };
88473
+
88474
+ const fetchCities = async (countryIso2, stateCode, baseUrl) =>
88475
+ fetchJson(
88476
+ `${baseUrl}/countries/${countryIso2}/subdivisions/${stateCode}/cities.json`,
88477
+ );
88478
+
88479
+ // labels.json sits one directory above the language-specific base URL
88480
+ // e.g. baseUrl = ".../address/en" → labels URL = ".../address/labels.json"
88481
+ const fetchLabels = async (baseUrl) => {
88482
+ const labelsUrl = new URL('../labels.json', `${baseUrl}/`).href;
88483
+ return fetchJson(labelsUrl);
88484
+ };
88485
+
88486
+ const fetchCitiesForCountry = async (countryIso2, baseUrl) =>
88487
+ fetchJson(`${baseUrl}/countries/${countryIso2}/cities.json`);
88488
+
88489
+ const componentName$V = getComponentName(
88490
+ 'country-subdivision-city-field-internal',
88491
+ );
88492
+
88493
+ // Sentinel used in #pendingValue to signal that programmatic item selection is in progress.
88494
+ // Prevents cascade-clearing logic in input handlers from firing during programmatic selection.
88495
+ const SELECTING = Symbol('selecting');
88496
+
88497
+ // --- Translation ---
88498
+
88499
+ const resolveTranslation = ({ name, translations = {} }, lang) => {
88500
+ if (!lang) return name;
88501
+ return translations[lang] || translations[lang.split('-')[0]] || name;
88502
+ };
88503
+
88504
+ // --- HTML Escaping ---
88505
+
88506
+ const escapeHtml = (str) => {
88507
+ if (!str) return '';
88508
+ return String(str).replace(/[&<>"']/g, (c) => `&#${c.charCodeAt(0)};`);
88509
+ };
88510
+
88511
+ // --- Item renderers ---
88512
+
88513
+ const countryItem = ({ name, iso2, iso3, translations, lang }) => {
88514
+ const displayName = resolveTranslation({ name, translations }, lang);
88515
+ const searchTerms = [displayName, iso2, iso3];
88516
+ if (displayName !== name) searchTerms.push(name);
88517
+ const escapedIso2 = escapeHtml(iso2);
88518
+ const escapedSearchTerms = escapeHtml(searchTerms.join(' '));
88519
+ const escapedLabel = escapeHtml(displayName);
88520
+ return `<div data-id="${escapedIso2}" data-name="${escapedSearchTerms}" data-label="${escapedLabel}">${escapedLabel}</div>`;
88521
+ };
88522
+
88523
+ const subdivisionItem = ({ name, state_code, translations, lang }) => {
88524
+ const displayName = resolveTranslation({ name, translations }, lang);
88525
+ const searchTerms = [displayName, state_code];
88526
+ if (displayName !== name) searchTerms.push(name);
88527
+ const escapedStateCode = escapeHtml(state_code);
88528
+ const escapedSearchTerms = escapeHtml(searchTerms.join(' '));
88529
+ const escapedLabel = escapeHtml(displayName);
88530
+ return `<div data-id="${escapedStateCode}" data-name="${escapedSearchTerms}" data-label="${escapedLabel}">${escapedLabel}</div>`;
88531
+ };
88532
+
88533
+ const cityItem = ({ name }) => {
88534
+ const escapedId = escapeHtml(name);
88535
+ const escapedName = escapeHtml(name);
88536
+ return `<div data-id="${escapedId}" data-name="${escapedName}">${escapedName}</div>`;
88537
+ };
88538
+
88539
+ const comboBoxHTML = (id) =>
88540
+ `<descope-combo-box id="${id}" item-label-path="data-name" item-value-path="data-id" allow-custom-value="false"></descope-combo-box>`;
88541
+
88542
+ // --- Base class ---
88543
+
88544
+ const BaseInputClass$4 = createBaseInputClass$1({
88545
+ componentName: componentName$V,
88546
+ baseSelector: '',
88547
+ });
88548
+
88549
+ const commonAttrs = ['disabled', 'readonly', 'size', 'bordered'];
88550
+ const labelTypeAttrs = [
88551
+ 'label-type',
88552
+ 'country-label',
88553
+ 'subdivision-label',
88554
+ 'city-label',
88555
+ ];
88556
+ const visibilityAttrs = ['hide-country', 'hide-subdivision', 'hide-city'];
88557
+ const countryConfigAttrs = [
88558
+ 'default-country',
88559
+ 'allowed-countries',
88560
+ 'pinned-countries',
88561
+ ];
88562
+ const placeholderAttrs = [
88563
+ 'country-placeholder',
88564
+ 'subdivision-placeholder',
88565
+ 'city-placeholder',
88566
+ ];
88567
+ const observedAttrs$4 = [
88568
+ ...commonAttrs,
88569
+ ...labelTypeAttrs,
88570
+ ...visibilityAttrs,
88571
+ ...countryConfigAttrs,
88572
+ ...placeholderAttrs,
88573
+ 'required',
88574
+ 'invalid',
88575
+ 'data-source-base-url',
88576
+ 'lang',
88577
+ ];
88578
+
88579
+ class RawCountrySubdivisionCityFieldInternal extends BaseInputClass$4 {
88580
+ static get observedAttributes() {
88581
+ return [].concat(BaseInputClass$4.observedAttributes || [], observedAttrs$4);
88582
+ }
88583
+
88584
+ #countryComboBox;
88585
+ #subdivisionComboBox;
88586
+ #cityComboBox;
88587
+
88588
+ // Whether the subdivision/city field should be shown (data was found for selected country/subdivision)
88589
+ #subdivisionVisible = false;
88590
+ #cityVisible = false;
88591
+
88592
+ // iso2 → country object (populated after countries are loaded)
88593
+ #countriesMap = new Map();
88594
+ #cachedCountries = null;
88595
+ #cachedSubdivisions = null;
88596
+ #labels = null;
88597
+
88598
+ // Value requested programmatically before data has loaded.
88599
+ // Applied incrementally as each cascade layer (countries → subdivisions → cities) loads.
88600
+ #pendingValue = null;
88601
+
88602
+ constructor() {
88603
+ super();
88604
+
88605
+ this.innerHTML = `
88606
+ <div class="wrapper">
88607
+ ${comboBoxHTML('country-combo')}
88608
+ ${comboBoxHTML('subdivision-combo')}
88609
+ ${comboBoxHTML('city-combo')}
88610
+ </div>
88611
+ `;
88612
+
88613
+ this.#countryComboBox = this.querySelector('#country-combo');
88614
+ this.#subdivisionComboBox = this.querySelector('#subdivision-combo');
88615
+ this.#cityComboBox = this.querySelector('#city-combo');
88616
+
88617
+ this.#setupValueTransform();
88618
+ this.#setupAttrForwarding();
88619
+ }
88620
+
88621
+ // --- Attribute getters ---
88622
+
88623
+ get #isHideCountry() {
88624
+ return this.getAttribute('hide-country') === 'true';
88625
+ }
88626
+ get #isHideSubdivision() {
88627
+ return this.getAttribute('hide-subdivision') === 'true';
88628
+ }
88629
+ get #isHideCity() {
88630
+ return this.getAttribute('hide-city') === 'true';
88631
+ }
88632
+ get #isNoDataSource() {
88633
+ return !this.#baseUrl;
88634
+ }
88635
+ get #baseUrl() {
88636
+ return this.getAttribute('data-source-base-url') || undefined;
88637
+ }
88638
+ get #lang() {
88639
+ const lang = this.getAttribute('lang') || undefined;
88640
+ if (!lang) return undefined;
88641
+ try {
88642
+ Intl.getCanonicalLocales(lang);
88643
+ return lang;
88644
+ } catch {
88645
+ return undefined; // invalid BCP47 tag — fall back to English
88646
+ }
88647
+ }
88648
+ get #defaultCountry() {
88649
+ return this.getAttribute('default-country')?.toUpperCase() || undefined;
88650
+ }
88651
+ get #subdivisionLabel() {
88652
+ return this.getAttribute('subdivision-label') || undefined;
88653
+ }
88654
+ get #subdivisionPlaceholder() {
88655
+ return this.getAttribute('subdivision-placeholder') || undefined;
88656
+ }
88657
+
88658
+ get #allowedCountries() {
88659
+ return (this.getAttribute('allowed-countries') || '')
88660
+ .split(',')
88661
+ .map((c) => c.trim().toUpperCase())
88662
+ .filter(Boolean);
88663
+ }
88664
+
88665
+ get #pinnedCountries() {
88666
+ return (this.getAttribute('pinned-countries') || '')
88667
+ .split(',')
88668
+ .map((c) => c.trim().toUpperCase())
88669
+ .filter(Boolean);
88670
+ }
88671
+
88672
+ get #allCombos() {
88673
+ return [
88674
+ this.#countryComboBox,
88675
+ this.#subdivisionComboBox,
88676
+ this.#cityComboBox,
88677
+ ];
88678
+ }
88679
+
88680
+ // --- Value ---
88681
+
88682
+ get value() {
88683
+ const country = this.#isHideCountry
88684
+ ? this.#defaultCountry
88685
+ : this.#countryComboBox.value || undefined;
88686
+
88687
+ const subdivision =
88688
+ !this.#isHideSubdivision && this.#subdivisionVisible
88689
+ ? this.#subdivisionComboBox.value || undefined
88690
+ : undefined;
88691
+
88692
+ const city =
88693
+ !this.#isHideCity && this.#cityVisible
88694
+ ? this.#cityComboBox.value || undefined
88695
+ : undefined;
88696
+
88697
+ return { country, subdivision, city };
88698
+ }
88699
+
88700
+ set value(val) {
88701
+ if (!val) return;
88702
+ let parsed;
88703
+ try {
88704
+ parsed = typeof val === 'string' ? JSON.parse(val) : val;
88705
+ } catch {
88706
+ // Invalid JSON — silently ignore to prevent component crash
88707
+ return;
88708
+ }
88709
+ this.#pendingValue = { ...parsed };
88710
+ if (this.#baseUrl) this.#loadForPendingValue();
88711
+ }
88712
+
88713
+ // --- Lifecycle ---
88714
+
88715
+ init() {
88716
+ this.addEventListener('focus', (e) => {
88717
+ if (e.isTrusted) {
88718
+ const firstInvalidCombo = this.#allCombos.find(
88719
+ (combo) =>
88720
+ !combo.classList.contains(`${componentName$V}-hidden`) &&
88721
+ !combo.checkValidity(),
88722
+ );
88723
+ (firstInvalidCombo || this.#getFirstVisibleCombo())?.focus();
88724
+ }
88725
+ });
88726
+
88727
+ super.init?.();
88728
+
88729
+ this.#refreshState();
88730
+ this.#setupChangeListeners();
88731
+ this.#initData();
88732
+ this.#setCombosItemRenderers();
88733
+ }
88734
+
88735
+ #setCombosItemRenderers() {
88736
+ this.#countryComboBox.renderItem = countryItem;
88737
+ this.#subdivisionComboBox.renderItem = subdivisionItem;
88738
+ this.#cityComboBox.renderItem = cityItem;
88739
+ }
88740
+
88741
+ attributeChangedCallback(attrName, oldValue, newValue) {
88742
+ super.attributeChangedCallback?.(attrName, oldValue, newValue);
88743
+
88744
+ if (oldValue === newValue) return;
88745
+
88746
+ if (attrName === 'required') {
88747
+ this.#updateRequiredOnCombos();
88748
+ } else if (
88749
+ visibilityAttrs.includes(attrName) ||
88750
+ attrName === 'data-source-base-url'
88751
+ ) {
88752
+ this.#refreshState();
88753
+ if (attrName === 'data-source-base-url') this.#initData();
88754
+ } else if (attrName === 'default-country') {
88755
+ const upper = newValue?.toUpperCase();
88756
+ if (upper && upper !== newValue) {
88757
+ this.setAttribute('default-country', upper);
88758
+ return;
88759
+ }
88760
+ if (upper && this.#countriesMap.size) {
88761
+ this.#onCountrySelected(upper); // countries already loaded — trigger immediately
88762
+ } else if (upper && this.#isHideCountry) {
88763
+ // hide-country mode: countries may not have been loaded yet (e.g. no default-country at init).
88764
+ // Kick off loading now; #loadCountries will call #onCountrySelected once done.
88765
+ this.#loadCountries();
88766
+ }
88767
+ } else if (attrName === 'lang') {
88768
+ this.#rerenderOnLangChange();
88769
+ } else if (attrName === 'invalid') {
88770
+ if (newValue === 'true') this.#handleInvalidCombos();
88771
+ } else if (
88772
+ attrName === 'allowed-countries' ||
88773
+ attrName === 'pinned-countries'
88774
+ ) {
88775
+ if (!this.#isHideCountry) {
88776
+ // Re-render from cache if available to avoid a race condition between two simultaneous
88777
+ // fetch calls (one from data-source-base-url, one from the filter attribute change).
88778
+ if (this.#cachedCountries) {
88779
+ this.#renderCountryItems(this.#cachedCountries);
88780
+ } else {
88781
+ this.#loadCountries();
88782
+ }
88783
+ }
88784
+ } else if (attrName === 'country-label') {
88785
+ this.#setOrRemoveAttr(this.#countryComboBox, 'label', newValue);
88786
+ } else if (attrName === 'subdivision-label') {
88787
+ this.#setOrRemoveAttr(this.#subdivisionComboBox, 'label', newValue);
88788
+ } else if (attrName === 'city-label') {
88789
+ this.#setOrRemoveAttr(this.#cityComboBox, 'label', newValue);
88790
+ }
88791
+ }
88792
+
88793
+ // --- Validation ---
88794
+
88795
+ getValidity() {
88796
+ if (!this.isRequired) return {};
88797
+
88798
+ const countryMissing = !this.#isHideCountry && !this.#countryComboBox.value;
88799
+ const subdivisionMissing =
88800
+ !this.#isHideSubdivision &&
88801
+ (this.#isNoDataSource || this.#subdivisionVisible) &&
88802
+ !this.#subdivisionComboBox.value;
88803
+ const cityMissing =
88804
+ !this.#isHideCity &&
88805
+ (this.#isNoDataSource || this.#cityVisible) &&
88806
+ !this.#cityComboBox.value;
88807
+
88808
+ return countryMissing || subdivisionMissing || cityMissing
88809
+ ? { valueMissing: true }
88810
+ : {};
88811
+ }
88812
+
88813
+ // Show validation errors on the specific combos that are missing a value.
88814
+ // Iterate in reverse so reportValidity's focus() lands on the first invalid combo last.
88815
+ #handleInvalidCombos() {
88816
+ for (const combo of [...this.#allCombos].reverse()) {
88817
+ if (combo.classList.contains(`${componentName$V}-hidden`)) continue;
88818
+ if (!combo.checkValidity()) combo.reportValidity();
88819
+ }
88820
+ }
88821
+
88822
+ // --- Setup ---
88823
+
88824
+ #setupValueTransform() {
88825
+ // Display only the item name in the input, while data-name includes ISO codes for search
88826
+ [this.#countryComboBox, this.#subdivisionComboBox].forEach((combo) => {
88827
+
88828
+ combo.customValueTransformFn = (val) => {
88829
+ const item = combo.baseElement?.items?.find(
88830
+ (i) => i['data-name'] === val,
88831
+ );
88832
+ return item?.getAttribute('data-label') ?? val;
88833
+ };
88834
+ });
88835
+ }
88836
+
88837
+ #setupAttrForwarding() {
88838
+ // Forward common attrs and label-type to all combos
88839
+ this.#allCombos.forEach((combo) => {
88840
+ forwardAttrs(this, combo, {
88841
+ includeAttrs: [...commonAttrs, 'label-type'],
88842
+ });
88843
+ });
88844
+
88845
+ // Forward default-country as default-value to let the combo box handle initial selection
88846
+ forwardAttrs(this, this.#countryComboBox, {
88847
+ includeAttrs: ['default-country'],
88848
+ mapAttrs: { 'default-country': 'default-value' },
88849
+ });
88850
+
88851
+ // Forward per-field placeholders
88852
+ [
88853
+ [this.#countryComboBox, 'country-placeholder'],
88854
+ [this.#subdivisionComboBox, 'subdivision-placeholder'],
88855
+ [this.#cityComboBox, 'city-placeholder'],
88856
+ ].forEach(([combo, attr]) => {
88857
+ forwardAttrs(this, combo, {
88858
+ includeAttrs: [attr],
88859
+ mapAttrs: { [attr]: 'placeholder' },
88860
+ });
88861
+ });
88862
+ }
88863
+
88864
+ #setupChangeListeners() {
88865
+ // descope-combo-box dispatches 'input' (not 'change') on selection
88866
+ this.#countryComboBox.addEventListener('input', () =>
88867
+ this.#handleCountryChange(),
88868
+ );
88869
+ this.#subdivisionComboBox.addEventListener('input', () =>
88870
+ this.#handleSubdivisionChange(),
88871
+ );
88872
+ this.#cityComboBox.addEventListener('input', () =>
88873
+ this.#dispatchInputEvent(),
88874
+ );
88875
+
88876
+ this.handleFocusEventsDispatching(this.#allCombos);
88877
+ }
88878
+
88879
+ #initData() {
88880
+ // baseUrl is forwarded by the outer component after this element is connected;
88881
+ // wait for the attributeChangedCallback('data-source-base-url') to re-trigger.
88882
+ if (!this.#baseUrl) return;
88883
+
88884
+ if (this.#pendingValue) {
88885
+ this.#loadForPendingValue();
88886
+ return;
88887
+ }
88888
+
88889
+ if (!this.#isHideCountry || this.#defaultCountry) {
88890
+ // Load countries to populate #countriesMap even when hide-country=true, so that
88891
+ // #onCountrySelected can apply the correct subdivision type label for the default country.
88892
+ this.#loadCountries();
88893
+ }
88894
+ }
88895
+
88896
+ // --- Programmatic value loading (parallel fetch) ---
88897
+
88898
+ async #loadForPendingValue() {
88899
+ const {
88900
+ country: pendingCountry,
88901
+ subdivision: pendingSubdivision,
88902
+ city: pendingCity,
88903
+ } = this.#pendingValue;
88904
+
88905
+ const shouldLoadSubdivisions =
88906
+ !!pendingSubdivision && !this.#isHideSubdivision;
88907
+ const shouldLoadCities = !!pendingCity && !this.#isHideCity;
88908
+
88909
+ const countriesPromise =
88910
+ this.#cachedCountries ?? fetchCountries(this.#baseUrl);
88911
+ const labelsPromise = this.#labels ?? fetchLabels(this.#baseUrl);
88912
+ const subdivisionsPromise =
88913
+ shouldLoadSubdivisions && pendingCountry
88914
+ ? fetchSubdivisions(pendingCountry, this.#baseUrl)
88915
+ : null;
88916
+ const citiesPromise =
88917
+ shouldLoadCities && pendingCountry
88918
+ ? shouldLoadSubdivisions && pendingSubdivision
88919
+ ? fetchCities(pendingCountry, pendingSubdivision, this.#baseUrl)
88920
+ : fetchCitiesForCountry(pendingCountry, this.#baseUrl)
88921
+ : null;
88922
+
88923
+ // Fetch everything in parallel; null entries resolve immediately as null
88924
+ const [countries, labels, subdivisions, cities] = (
88925
+ await Promise.allSettled([
88926
+ countriesPromise,
88927
+ labelsPromise,
88928
+ subdivisionsPromise,
88929
+ citiesPromise,
88930
+ ])
88931
+ ).map((result) => (result.status === 'fulfilled' ? result.value : null));
88932
+
88933
+ // Cancelled by a subsequent set value call or user interaction
88934
+ if (!this.#pendingValue) return;
88935
+
88936
+ if (labels) this.#labels = labels;
88937
+
88938
+ // Collect items to select — do this before rendering so we can batch-select below
88939
+ const toSelect = [];
88940
+
88941
+ if (countries) {
88942
+ if (!this.#cachedCountries) {
88943
+ this.#cachedCountries = countries;
88944
+ this.#renderCountryItems(countries);
88945
+ }
88946
+ if (pendingCountry && !this.#isHideCountry)
88947
+ toSelect.push([this.#countryComboBox, pendingCountry]);
88948
+ }
88949
+
88950
+ const countryObj = pendingCountry
88951
+ ? this.#countriesMap.get(pendingCountry)
88952
+ : null;
88953
+ if (countryObj?.subdivisionType)
88954
+ this.#applySubdivisionType(countryObj.subdivisionType);
88955
+
88956
+ if (subdivisions) {
88957
+ this.#cachedSubdivisions = subdivisions;
88958
+ this.#subdivisionVisible = subdivisions.length > 0;
88959
+ if (subdivisions.length > 0) {
88960
+ this.#subdivisionComboBox.data = subdivisions.map((s) => ({
88961
+ ...s,
88962
+ lang: this.#lang,
88963
+ }));
88964
+ if (pendingSubdivision)
88965
+ toSelect.push([this.#subdivisionComboBox, pendingSubdivision]);
88966
+ }
88967
+ }
88968
+
88969
+ if (cities) {
88970
+ this.#cityVisible = cities.length > 0;
88971
+ if (cities.length > 0) {
88972
+ this.#cityComboBox.data = cities;
88973
+ if (pendingCity) toSelect.push([this.#cityComboBox, pendingCity]);
88974
+ }
88975
+ }
88976
+
88977
+ this.#refreshState();
88978
+
88979
+ // Apply all selections in one batch. #pendingValue is set to SELECTING so that
88980
+ // input events fired by selectedItem= don't trigger cascade-clearing in change handlers.
88981
+ this.#pendingValue = SELECTING;
88982
+ setTimeout(() => {
88983
+ if (this.#pendingValue !== SELECTING) return; // cancelled by a new set value call
88984
+ for (const [combo, id] of toSelect) {
88985
+ const item = combo.items?.find((i) => i['data-id'] === id);
88986
+ if (item) combo.selectedItem = item;
88987
+ }
88988
+ this.#pendingValue = null;
88989
+ });
88990
+ }
88991
+
88992
+ // --- Change handlers ---
88993
+
88994
+ #handleCountryChange() {
88995
+ if (this.#pendingValue === SELECTING) return; // programmatic selection in progress
88996
+ this.#pendingValue = null; // cancel any in-flight fetch
88997
+ this.#resetSubdivision();
88998
+ this.#resetCity();
88999
+ this.#onCountrySelected(this.#countryComboBox.value);
89000
+ this.#dispatchInputEvent();
89001
+ }
89002
+
89003
+ #handleSubdivisionChange() {
89004
+ if (this.#pendingValue === SELECTING) return; // programmatic selection in progress
89005
+ this.#pendingValue = null; // cancel any in-flight fetch
89006
+ const subdivisionCode = this.#subdivisionComboBox.value;
89007
+ this.#resetCity();
89008
+
89009
+ if (!this.#isHideCity && subdivisionCode) {
89010
+ const countryIso2 = this.#countryComboBox.value;
89011
+ if (countryIso2) this.#loadCities(countryIso2, subdivisionCode);
89012
+ }
89013
+ this.#dispatchInputEvent();
89014
+ }
89015
+
89016
+ // --- Country selection ---
89017
+
89018
+ #onCountrySelected(countryIso2) {
89019
+ if (!countryIso2) return;
89020
+
89021
+ const country = this.#countriesMap.get(countryIso2);
89022
+ if (!country) return;
89023
+
89024
+ const { hasSubdivisions, subdivisionType } = country;
89025
+
89026
+ if (!this.#isHideSubdivision && hasSubdivisions) {
89027
+ this.#applySubdivisionType(subdivisionType);
89028
+ this.#loadSubdivisions(countryIso2);
89029
+ } else if (!this.#isHideCity) {
89030
+ this.#loadCities(countryIso2);
89031
+ }
89032
+ }
89033
+
89034
+ // Apply subdivisionType as label/placeholder, but only when not overridden by an explicit attribute.
89035
+ #applySubdivisionType(subdivisionType) {
89036
+ const label = this.#resolveSubdivisionTypeLabel(subdivisionType);
89037
+ if (!this.#subdivisionLabel)
89038
+ this.#setOrRemoveAttr(this.#subdivisionComboBox, 'label', label || null);
89039
+ if (!this.#subdivisionPlaceholder)
89040
+ this.#setOrRemoveAttr(
89041
+ this.#subdivisionComboBox,
89042
+ 'placeholder',
89043
+ label || null,
89044
+ );
89045
+ }
89046
+
89047
+ #resolveSubdivisionTypeLabel(subdivisionType) {
89048
+ const types = this.#labels?.subdivisionTypes;
89049
+ const entry = types?.[subdivisionType] ?? types?._fallback;
89050
+ if (!entry) return subdivisionType;
89051
+ const lang = this.#lang;
89052
+ return (
89053
+ (lang && (entry[lang] || entry[lang.split('-')[0]])) ||
89054
+ entry.en ||
89055
+ subdivisionType
89056
+ );
89057
+ }
89058
+
89059
+ // --- Data loading ---
89060
+
89061
+ async #loadLabels() {
89062
+ try {
89063
+ this.#labels = await fetchLabels(this.#baseUrl);
89064
+ } catch {
89065
+ // Labels are optional; fall back to raw subdivisionType name
89066
+ }
89067
+ }
89068
+
89069
+ async #loadCountries() {
89070
+ if (!this.#baseUrl) return;
89071
+ this.#countryComboBox.setAttribute('loading', 'true');
89072
+ try {
89073
+ const [countries] = await Promise.all([
89074
+ fetchCountries(this.#baseUrl),
89075
+ this.#loadLabels(),
89076
+ ]);
89077
+ this.#cachedCountries = countries;
89078
+ this.#renderCountryItems(countries);
89079
+ // Skip defaultCountry if a programmatic set value is in flight
89080
+ if (!this.#pendingValue && this.#defaultCountry)
89081
+ this.#onCountrySelected(this.#defaultCountry);
89082
+ } catch (e) {
89083
+
89084
+ console.error(`[${componentName$V}] Failed to load countries`, e);
89085
+ } finally {
89086
+ this.#countryComboBox.removeAttribute('loading');
89087
+ }
89088
+ }
89089
+
89090
+ async #loadSubdivisions(countryIso2) {
89091
+ this.#setVisible(this.#subdivisionComboBox, true);
89092
+ this.#subdivisionComboBox.setAttribute('loading', 'true');
89093
+ try {
89094
+ const subdivisions = await fetchSubdivisions(countryIso2, this.#baseUrl);
89095
+ this.#cachedSubdivisions = subdivisions;
89096
+ this.#subdivisionVisible = subdivisions.length > 0;
89097
+ this.#refreshState();
89098
+
89099
+ if (subdivisions.length > 0) {
89100
+ this.#subdivisionComboBox.data = subdivisions.map((s) => ({
89101
+ ...s,
89102
+ lang: this.#lang,
89103
+ }));
89104
+ } else if (!this.#isHideCity) {
89105
+ this.#loadCities(countryIso2);
89106
+ }
89107
+ } catch (e) {
89108
+
89109
+ console.error(
89110
+ `[${componentName$V}] Failed to load subdivisions for ${countryIso2}`,
89111
+ e,
89112
+ );
89113
+ this.#subdivisionVisible = false;
89114
+ this.#applyVisibility();
89115
+ } finally {
89116
+ this.#subdivisionComboBox.removeAttribute('loading');
89117
+ }
89118
+ }
89119
+
89120
+ // stateCode is optional: when omitted, loads all cities for the country
89121
+ async #loadCities(countryIso2, stateCode) {
89122
+ this.#cityComboBox.setAttribute('loading', 'true');
89123
+ try {
89124
+ const cities = await (stateCode
89125
+ ? fetchCities(countryIso2, stateCode, this.#baseUrl)
89126
+ : fetchCitiesForCountry(countryIso2, this.#baseUrl));
89127
+ this.#cityVisible = cities.length > 0;
89128
+ this.#refreshState();
89129
+ if (cities.length > 0) {
89130
+ this.#cityComboBox.data = cities;
89131
+ }
89132
+ } catch (e) {
89133
+
89134
+ console.error(
89135
+ `[${componentName$V}] Failed to load cities for ${countryIso2}${stateCode ? `/${stateCode}` : ''}`,
89136
+ e,
89137
+ );
89138
+ } finally {
89139
+ this.#cityComboBox.removeAttribute('loading');
89140
+ }
89141
+ }
89142
+
89143
+ #rerenderOnLangChange() {
89144
+ if (this.#cachedCountries) {
89145
+ const prevCountry = this.#countryComboBox.value;
89146
+ this.#renderCountryItems(this.#cachedCountries);
89147
+ if (prevCountry) this.#selectItemById(this.#countryComboBox, prevCountry);
89148
+ }
89149
+ if (this.#cachedSubdivisions && this.#subdivisionVisible) {
89150
+ const prevSubdivision = this.#subdivisionComboBox.value;
89151
+ this.#subdivisionComboBox.data = this.#cachedSubdivisions.map((s) => ({
89152
+ ...s,
89153
+ lang: this.#lang,
89154
+ }));
89155
+ if (prevSubdivision)
89156
+ this.#selectItemById(this.#subdivisionComboBox, prevSubdivision);
89157
+ }
89158
+ // Re-apply translated subdivision type label for the new lang
89159
+ const currentIso2 = this.#countryComboBox.value;
89160
+ if (currentIso2) {
89161
+ const country = this.#countriesMap.get(currentIso2);
89162
+ if (country?.subdivisionType)
89163
+ this.#applySubdivisionType(country.subdivisionType);
89164
+ }
89165
+ }
89166
+
89167
+ // --- Country item rendering ---
88203
89168
 
88204
- setTimeout(() => this.#onOverlayReady());
89169
+ #renderCountryItems(countries) {
89170
+ const result = this.#applyCountryFilters(countries);
89171
+ this.#countryComboBox.data = result.map((c) => ({
89172
+ ...c,
89173
+ // Include the translated name in the data for search purposes, but not in the label which is rendered by renderItem
89174
+ lang: this.#lang,
89175
+ }));
89176
+ this.#countriesMap = new Map(countries.map((c) => [c.iso2, c]));
88205
89177
  }
88206
89178
 
88207
- #hideWrappedParts() {
88208
- this.tooltip.style.width = '0';
88209
- this.tooltip.style.height = '0';
88210
- this.tooltip.style.display = 'block';
88211
- this.tooltip.style.overflow = 'hidden';
88212
- this.tooltip.style.position = 'absolute';
88213
- }
88214
-
88215
- #revealWrappedParts() {
88216
- this.tooltip.style.width = '100%';
88217
- this.tooltip.style.height = '100%';
88218
- this.tooltip.style.position = 'static';
88219
- this.tooltip.style.overflow = 'visible';
88220
- this.tooltip.textContent = '';
88221
- this.overlay.style.display = 'block';
88222
- this.overlay.style.position = 'static';
88223
- }
89179
+ #applyCountryFilters(countries) {
89180
+ const allowed = this.#allowedCountries;
89181
+ const pinned = this.#pinnedCountries;
88224
89182
 
88225
- #onOverlayReady() {
88226
- this.#initTooltipTextComponent();
88227
- this.#overrideAttachOverlay();
89183
+ let filtered = allowed.length
89184
+ ? countries.filter((c) => allowed.includes(c.iso2))
89185
+ : [...countries];
88228
89186
 
88229
- forwardAttrs(this, this.tooltip, {
88230
- includeAttrs: ['position', 'opened'],
88231
- });
89187
+ filtered.sort((a, b) =>
89188
+ resolveTranslation(a, this.#lang).localeCompare(
89189
+ resolveTranslation(b, this.#lang),
89190
+ this.#lang,
89191
+ ),
89192
+ );
88232
89193
 
88233
- this.#handleTooltipVisibility();
89194
+ if (!pinned.length) return filtered;
89195
+
89196
+ const pinnedItems = pinned
89197
+ .map((iso2) => filtered.find((c) => c.iso2 === iso2))
89198
+ .filter(Boolean);
89199
+ const rest = filtered.filter((c) => !pinned.includes(c.iso2));
89200
+ return [...pinnedItems, ...rest];
88234
89201
  }
88235
89202
 
88236
- #setTooltipTarget() {
88237
- if (!this.children?.length) return;
89203
+ // --- Visibility & required ---
88238
89204
 
88239
- let ele = Array.from(this.children).find(
88240
- (child) => child !== this.tooltip,
89205
+ #applyVisibility() {
89206
+ this.#setVisible(this.#countryComboBox, !this.#isHideCountry);
89207
+ this.#setVisible(
89208
+ this.#subdivisionComboBox,
89209
+ !this.#isHideSubdivision &&
89210
+ (this.#isNoDataSource || this.#subdivisionVisible),
88241
89211
  );
89212
+ this.#setVisible(
89213
+ this.#cityComboBox,
89214
+ !this.#isHideCity && (this.#isNoDataSource || this.#cityVisible),
89215
+ );
89216
+ }
88242
89217
 
88243
- if (!ele) return;
89218
+ #setVisible(el, visible) {
89219
+ el?.classList.toggle(`${componentName$V}-hidden`, !visible);
89220
+ }
88244
89221
 
88245
- this.tooltip.target = ele;
89222
+ #updateRequiredOnCombos() {
89223
+ const required = this.hasAttribute('required') ? 'true' : null;
89224
+ this.#setOrRemoveAttr(
89225
+ this.#countryComboBox,
89226
+ 'required',
89227
+ !this.#isHideCountry ? required : null,
89228
+ );
89229
+ this.#setOrRemoveAttr(
89230
+ this.#subdivisionComboBox,
89231
+ 'required',
89232
+ !this.#isHideSubdivision &&
89233
+ (this.#isNoDataSource || this.#subdivisionVisible)
89234
+ ? required
89235
+ : null,
89236
+ );
89237
+ this.#setOrRemoveAttr(
89238
+ this.#cityComboBox,
89239
+ 'required',
89240
+ !this.#isHideCity && (this.#isNoDataSource || this.#cityVisible)
89241
+ ? required
89242
+ : null,
89243
+ );
88246
89244
  }
88247
89245
 
88248
- #clearOverlayContentNode() {
88249
- this.overlayContentNode.innerHTML = '';
89246
+ #refreshState() {
89247
+ this.#applyVisibility();
89248
+ this.#updateRequiredOnCombos();
89249
+ // Re-evaluate validity so that the form knows when newly-visible required fields become empty.
89250
+ // e.g. subdivision becomes required after a country with states is selected.
89251
+ this.setCustomValidity('');
88250
89252
  }
88251
89253
 
88252
- #createEnrichedTextComponent() {
88253
- const enrichedText = document.createElement('descope-enriched-text');
89254
+ // --- Reset helpers ---
88254
89255
 
88255
- enrichedText.setAttribute('link-target-blank', 'true');
88256
- enrichedText.textContent = this.tooltipText;
89256
+ #resetSubdivision() {
89257
+ this.#subdivisionComboBox.value = '';
89258
+ this.#subdivisionComboBox.data = [];
89259
+ this.#subdivisionVisible = false;
89260
+ // Clear any dynamically set label/placeholder from subdivisionType
89261
+ if (!this.#subdivisionLabel)
89262
+ this.#subdivisionComboBox.removeAttribute('label');
89263
+ if (!this.#subdivisionPlaceholder)
89264
+ this.#subdivisionComboBox.removeAttribute('placeholder');
89265
+ this.#refreshState();
89266
+ }
88257
89267
 
88258
- return enrichedText;
89268
+ #resetCity() {
89269
+ this.#cityComboBox.value = '';
89270
+ this.#cityComboBox.data = [];
89271
+ this.#cityVisible = false;
89272
+ this.#refreshState();
88259
89273
  }
88260
89274
 
88261
- #initTooltipTextComponent() {
88262
- if (!this.overlayContentNode) return;
89275
+ // --- Utility helpers ---
88263
89276
 
88264
- setTimeout(() => {
88265
- this.#clearOverlayContentNode();
89277
+ #dispatchInputEvent() {
89278
+ this.dispatchEvent(new Event('input', { bubbles: true, composed: true }));
89279
+ }
88266
89280
 
88267
- this.textComponent = this.#createEnrichedTextComponent();
89281
+ #setOrRemoveAttr(el, attr, value) {
89282
+ if (value) el.setAttribute(attr, value);
89283
+ else el.removeAttribute(attr);
89284
+ }
88268
89285
 
88269
- this.overlayContentNode.appendChild(this.textComponent);
89286
+ #getFirstVisibleCombo() {
89287
+ return this.#allCombos.find(
89288
+ (combo) => !combo.classList.contains(`${componentName$V}-hidden`),
89289
+ );
89290
+ }
88270
89291
 
88271
- forwardAttrs(this, this.textComponent, {
88272
- includeAttrs: ['readonly'],
88273
- });
89292
+ #selectItemById(comboBox, id) {
89293
+ // Defer the lookup so MutationObserver has time to populate comboBox.items
89294
+ setTimeout(() => {
89295
+ const item = comboBox.items?.find((i) => i['data-id'] === id);
89296
+ if (item) comboBox.selectedItem = item;
88274
89297
  });
88275
89298
  }
89299
+ }
88276
89300
 
88277
- // the default vaadin behavior is to attach the overlay to the body when opened
88278
- // we do not want that because it's difficult to style the overlay in this way
88279
- // so we override it to open inside the shadow DOM
88280
- #overrideAttachOverlay() {
88281
- if (!this.overlay) return;
89301
+ compose()(
89302
+ RawCountrySubdivisionCityFieldInternal,
89303
+ );
88282
89304
 
88283
- if (this.isOpened) {
88284
- // When `opened` attr is used, vaadin doesn't execute `_attachOverlay`,
88285
- // and the overlay element is rendered outside the component, on the top
88286
- // level. We need to move it back to the local component's DOM.
88287
- setTimeout(() => {
88288
- this.tooltip.shadowRoot.appendChild(this.overlay);
88289
- this.#handleStaticDisplay();
88290
- });
88291
- } else {
88292
- this.overlay._detachOverlay = () => {};
89305
+ const componentName$U = getComponentName('country-subdivision-city-field');
88293
89306
 
88294
- this.overlay._attachOverlay = () =>
88295
- this.tooltip.shadowRoot.appendChild(this.overlay);
88296
- }
88297
- }
89307
+ const customMixin$b = (superclass) =>
89308
+ class CountrySubdivisionCityFieldMixinClass extends superclass {
89309
+ init() {
89310
+ super.init?.();
88298
89311
 
88299
- #handleTooltipVisibility() {
88300
- // This is Vaadin's API for manual control of tooltip visibility
88301
- this.tooltip?.toggleAttribute('manual', this.isOpened);
88302
- }
89312
+ const template = document.createElement('template');
88303
89313
 
88304
- #updateText(value) {
88305
- if (!this.textComponent) return;
88306
- this.textComponent.textContent = value?.trim();
88307
- }
89314
+ template.innerHTML = `
89315
+ <${componentName$V}
89316
+ tabindex="-1"
89317
+ ></${componentName$V}>
89318
+ `;
88308
89319
 
88309
- attributeChangedCallback(attrName, oldValue, newValue) {
88310
- super.attributeChangedCallback?.(attrName, oldValue, newValue);
89320
+ this.baseElement.appendChild(template.content.cloneNode(true));
88311
89321
 
88312
- if (oldValue !== newValue) {
88313
- if (attrName === 'text') {
88314
- this.#updateText(newValue);
88315
- }
89322
+ this.inputElement = this.shadowRoot.querySelector(
89323
+ componentName$V,
89324
+ );
88316
89325
 
88317
- if (attrName === 'opened') {
88318
- this.#handleTooltipVisibility(attrName, newValue);
88319
- }
89326
+ forwardAttrs(this, this.inputElement, {
89327
+ includeAttrs: [
89328
+ 'size',
89329
+ 'bordered',
89330
+ 'required',
89331
+ 'label-type',
89332
+ 'disabled',
89333
+ 'readonly',
89334
+ 'hide-country',
89335
+ 'hide-subdivision',
89336
+ 'hide-city',
89337
+ 'default-country',
89338
+ 'allowed-countries',
89339
+ 'pinned-countries',
89340
+ 'country-label',
89341
+ 'subdivision-label',
89342
+ 'city-label',
89343
+ 'country-placeholder',
89344
+ 'subdivision-placeholder',
89345
+ 'city-placeholder',
89346
+ 'data-source-base-url',
89347
+ 'lang',
89348
+ 'invalid',
89349
+ ],
89350
+ });
89351
+
89352
+ // Sync invalid attribute bidirectionally so external validation feedback propagates
89353
+ syncAttrs(this, this.inputElement, { includeAttrs: ['invalid'] });
88320
89354
  }
88321
- }
88322
- }
89355
+ };
88323
89356
 
88324
- const { overlay: overlay$1, content } = {
88325
- overlay: { selector: () => 'vaadin-tooltip-overlay::part(overlay)' },
88326
- content: { selector: () => 'vaadin-tooltip-overlay::part(content)' },
89357
+ const host$l = { selector: () => ':host' };
89358
+
89359
+ const internalWrapper$2 = {
89360
+ selector: `${componentName$V} > .wrapper`,
88327
89361
  };
88328
89362
 
88329
- /**
88330
- * This component has no Shadow DOM of its own, so we can't add styles to it
88331
- * (otherwise it would affect the rest of the DOM).
88332
- * Note that all styles are within PortalMixin.
88333
- */
88334
- const TooltipClass = compose(
88335
- componentNameValidationMixin$1,
88336
- portalMixin$1({
88337
- selector: '',
89363
+ const internalComboBoxes = {
89364
+ selector: `${componentName$V} > .wrapper > descope-combo-box`,
89365
+ };
89366
+
89367
+ const CountrySubdivisionCityFieldClass = compose(
89368
+ createStyleMixin$1({
89369
+ componentNameOverride: getComponentName('input-wrapper'),
89370
+ }),
89371
+ createStyleMixin$1({
88338
89372
  mappings: {
88339
- fontFamily: {
88340
- ...content,
88341
- property: EnrichedTextClass.cssVarList.fontFamilyOverride,
88342
- },
88343
- fontSize: {
88344
- ...content,
88345
- property: EnrichedTextClass.cssVarList.fontSizeOverride,
88346
- },
88347
- fontWeight: {
88348
- ...content,
88349
- property: EnrichedTextClass.cssVarList.fontWeightOverride,
88350
- },
88351
- textColor: {
88352
- ...content,
88353
- property: EnrichedTextClass.cssVarList.textColorOverride,
88354
- },
88355
- hostDirection: {
88356
- ...content,
88357
- property: EnrichedTextClass.cssVarList.hostDirectionOverride,
88358
- },
88359
- backgroundColor: [{ ...overlay$1 }, { ...content }],
88360
- borderColor: { ...overlay$1 },
88361
- borderStyle: { ...overlay$1 },
88362
- borderWidth: { ...overlay$1 },
88363
- borderRadius: { ...overlay$1 },
88364
- boxShadow: { ...overlay$1 },
88365
- horizontalPadding: [
88366
- { ...content, property: 'padding-left' },
88367
- { ...content, property: 'padding-right' },
88368
- ],
88369
- verticalPadding: [
88370
- { ...content, property: 'padding-top' },
88371
- { ...content, property: 'padding-bottom' },
89373
+ hostWidth: { ...host$l, property: 'width' },
89374
+ hostDirection: [
89375
+ { ...host$l, property: 'direction' },
89376
+ {
89377
+ ...internalComboBoxes,
89378
+ property: ComboBoxClass.cssVarList.hostDirection,
89379
+ },
88372
89380
  ],
88373
- },
88374
- forward: {
88375
- attributes: ['style'],
88376
- include: false,
89381
+ flexDirection: { ...internalWrapper$2, property: 'flex-direction' },
89382
+ flexGap: { ...internalWrapper$2, property: 'gap' },
89383
+ itemAlignment: { ...internalWrapper$2, property: 'align-items' },
89384
+ itemMinWidth: { ...internalComboBoxes, property: 'min-width' },
89385
+ itemFlexGrow: { ...internalComboBoxes, property: 'flex-grow' },
89386
+ itemWidth: {
89387
+ ...internalComboBoxes,
89388
+ property: ComboBoxClass.cssVarList.hostWidth,
89389
+ },
88377
89390
  },
88378
89391
  }),
88379
- )(RawTooltip);
89392
+ draggableMixin$1,
89393
+ composedProxyInputMixin$1({
89394
+ proxyProps: ['value'],
89395
+ inputEvent: 'input',
89396
+ proxyParentValidation: true,
89397
+ }),
89398
+ componentNameValidationMixin$1,
89399
+ customMixin$b,
89400
+ )(
89401
+ createProxy$1({
89402
+ slots: [],
89403
+ wrappedEleName: 'vaadin-custom-field',
89404
+ style: () => `
89405
+ :host {
89406
+ display: inline-flex;
89407
+ max-width: 100%;
89408
+ }
89409
+ vaadin-custom-field {
89410
+ line-height: unset;
89411
+ width: 100%;
89412
+ }
88380
89413
 
88381
- const globalRefs$q = getThemeRefs$1(globals);
88382
- const vars$J = TooltipClass.cssVarList;
89414
+ ${componentName$V} {
89415
+ display: inline-block;
89416
+ box-sizing: border-box;
89417
+ user-select: none;
89418
+ width: 100%;
89419
+ max-width: 100%;
89420
+ }
88383
89421
 
88384
- const [helperTheme$3, helperRefs$3, helperVars$3] = createHelperVars$1(
88385
- {
88386
- shadowColor: '#00000020', // if we want to support transparency vars, we should use different color format
88387
- },
88388
- componentName$U
89422
+ ${componentName$V} > .wrapper {
89423
+ display: flex;
89424
+ width: 100%;
89425
+ flex-wrap: wrap;
89426
+ }
89427
+
89428
+ .${componentName$V}-hidden {
89429
+ display: none;
89430
+ }
89431
+
89432
+ `,
89433
+ excludeAttrsSync: ['tabindex', 'style', 'error-message'],
89434
+ componentName: componentName$U,
89435
+ }),
88389
89436
  );
88390
89437
 
88391
- const { shadowColor: shadowColor$3 } = helperRefs$3;
88392
- const defaultShadow = `${globalRefs$q.shadow.wide.sm} ${shadowColor$3}, ${globalRefs$q.shadow.narrow.sm} ${shadowColor$3}`;
89438
+ const vars$J = CountrySubdivisionCityFieldClass.cssVarList;
88393
89439
 
88394
- const tooltip = {
88395
- ...helperTheme$3,
88396
- [vars$J.fontFamily]: globalRefs$q.fonts.font1.family,
88397
- [vars$J.fontSize]: globals.typography.body2.size,
88398
- [vars$J.fontWeight]: globals.typography.body2.weight,
88399
- [vars$J.textColor]: globalRefs$q.colors.surface.contrast,
88400
- [vars$J.hostDirection]: globalRefs$q.direction,
88401
- [vars$J.backgroundColor]: globalRefs$q.colors.surface.main,
88402
- [vars$J.borderColor]: globalRefs$q.colors.surface.light,
88403
- [vars$J.borderStyle]: 'solid',
88404
- [vars$J.borderWidth]: globalRefs$q.border.xs,
88405
- [vars$J.borderRadius]: globalRefs$q.radius.xs,
88406
- [vars$J.horizontalPadding]: globalRefs$q.spacing.md,
88407
- [vars$J.verticalPadding]: globalRefs$q.spacing.sm,
88408
- [vars$J.boxShadow]: defaultShadow,
89440
+ const countrySubdivisionCityField = {
89441
+ [vars$J.hostWidth]: refs$1.width,
89442
+ [vars$J.hostDirection]: refs$1.direction,
89443
+ [vars$J.flexDirection]: 'column',
89444
+ [vars$J.flexGap]: '0.5em',
89445
+ [vars$J.itemAlignment]: 'stretch',
89446
+ [vars$J.itemFlexGrow]: '0',
89447
+ [vars$J.itemWidth]: 'auto',
88409
89448
 
88410
- shadow: {
88411
- sm: {
88412
- [vars$J.boxShadow]: defaultShadow,
88413
- },
88414
- md: {
88415
- [vars$J.boxShadow]: `${globalRefs$q.shadow.wide.md} ${shadowColor$3}, ${globalRefs$q.shadow.narrow.md} ${shadowColor$3}`,
88416
- },
88417
- lg: {
88418
- [vars$J.boxShadow]: `${globalRefs$q.shadow.wide.lg} ${shadowColor$3}, ${globalRefs$q.shadow.narrow.lg} ${shadowColor$3}`,
88419
- },
88420
- xl: {
88421
- [vars$J.boxShadow]: `${globalRefs$q.shadow.wide.xl} ${shadowColor$3}, ${globalRefs$q.shadow.narrow.xl} ${shadowColor$3}`,
88422
- },
88423
- '2xl': {
88424
- [helperVars$3.shadowColor]: '#00000050', // mimic daisyUI shadow settings
88425
- [vars$J.boxShadow]: `${globalRefs$q.shadow.wide['2xl']} ${shadowColor$3}`,
88426
- },
89449
+ _fullWidth: {
89450
+ [vars$J.hostWidth]: '100%',
89451
+ },
89452
+
89453
+ _horizontal: {
89454
+ [vars$J.flexDirection]: 'row',
89455
+ [vars$J.itemFlexGrow]: '1',
88427
89456
  },
88428
89457
  };
88429
89458
 
88430
- var tooltip$1 = /*#__PURE__*/Object.freeze({
89459
+ var countrySubdivisionCityField$1 = /*#__PURE__*/Object.freeze({
88431
89460
  __proto__: null,
88432
- default: tooltip,
89461
+ default: countrySubdivisionCityField,
88433
89462
  vars: vars$J
88434
89463
  });
88435
89464
 
@@ -102824,7 +103853,7 @@ descope-enriched-text {
102824
103853
  [vars$2.horizontalPadding]: '0',
102825
103854
  [vars$2.verticalPadding]: '0',
102826
103855
  [vars$2.gap]: `0.5em`,
102827
- [vars$2.fontSize]: useVar(vars$12.fontSize),
103856
+ [vars$2.fontSize]: useVar(vars$13.fontSize),
102828
103857
 
102829
103858
  mode: {
102830
103859
  error: {
@@ -103105,6 +104134,7 @@ descope-enriched-text {
103105
104134
  alert: alert$1,
103106
104135
  autocompleteField: autocompleteField$1,
103107
104136
  addressField: addressField$1,
104137
+ countrySubdivisionCityField: countrySubdivisionCityField$1,
103108
104138
  timer: timer$1,
103109
104139
  timerButton: timerButton$1,
103110
104140
  passwordStrength: passwordStrength$1,
@@ -103127,7 +104157,7 @@ descope-enriched-text {
103127
104157
  );
103128
104158
 
103129
104159
  const defaultTheme = { globals: globals$1, components: theme };
103130
- const themeVars = { globals: vars$14, components: vars };
104160
+ const themeVars = { globals: vars$15, components: vars };
103131
104161
 
103132
104162
  const colors = {
103133
104163
  surface: {
@@ -103644,6 +104674,7 @@ descope-enriched-text {
103644
104674
  index_cjs$4.CollapsibleContainerClass = CollapsibleContainerClass;
103645
104675
  index_cjs$4.ComboBoxClass = ComboBoxClass;
103646
104676
  index_cjs$4.ContainerClass = ContainerClass;
104677
+ index_cjs$4.CountrySubdivisionCityFieldClass = CountrySubdivisionCityFieldClass;
103647
104678
  index_cjs$4.DateFieldClass = DateFieldClass;
103648
104679
  index_cjs$4.DividerClass = DividerClass;
103649
104680
  index_cjs$4.EmailFieldClass = EmailFieldClass;
@@ -103785,6 +104816,7 @@ const SecurityQuestionsVerifyClass = index_cjsExports.SecurityQuestionsVerifyCla
103785
104816
  const HybridFieldClass = index_cjsExports.HybridFieldClass;
103786
104817
  const AlertClass = index_cjsExports.AlertClass;
103787
104818
  const AddressFieldClass = index_cjsExports.AddressFieldClass;
104819
+ const CountrySubdivisionCityFieldClass = index_cjsExports.CountrySubdivisionCityFieldClass;
103788
104820
  const TimerButtonClass = index_cjsExports.TimerButtonClass;
103789
104821
  const CollapsibleContainerClass = index_cjsExports.CollapsibleContainerClass;
103790
104822
  const RecoveryCodesClass = index_cjsExports.RecoveryCodesClass;
@@ -104271,6 +105303,8 @@ const Alert = React__default.default.forwardRef(({ children, ...props }, ref) =>
104271
105303
 
104272
105304
  const AddressField = React__default.default.forwardRef(({ size = 'md', ...props }, ref) => (React__default.default.createElement("descope-address-field", { size: size, ...props, ref: ref })));
104273
105305
 
105306
+ const CountrySubdivisionCityField = React__default.default.forwardRef(({ size = 'md', ...props }, ref) => (React__default.default.createElement("descope-country-subdivision-city-field", { size: size, ...props, ref: ref })));
105307
+
104274
105308
  const TimerButton = React__default.default.forwardRef(({ children, color = 'primary', size = 'md', variant = 'contained', horizontal = false, 'text-align': textAlign = 'center', 'timer-seconds': timerSeconds = 0, 'timer-hide-icon': timerHideIcon = false, 'timer-paused': timerPause = false, ...props }, ref) => (React__default.default.createElement("descope-timer-button", { ...props, size: size, "text-align": textAlign, horizontal: horizontal, "button-variant": variant, "button-mode": color, "timer-hide-icon": timerHideIcon, "timer-seconds": timerSeconds, "timer-paused": timerPause, ref: ref }, children)));
104275
105309
 
104276
105310
  const applyDefaults = ({ paddingX, paddingY, background, spaceBetween }) => ({
@@ -104367,6 +105401,8 @@ exports.ComboBox = ComboBox;
104367
105401
  exports.ComboBoxClass = ComboBoxClass;
104368
105402
  exports.Container = Container$1;
104369
105403
  exports.ContainerClass = ContainerClass;
105404
+ exports.CountrySubdivisionCityField = CountrySubdivisionCityField;
105405
+ exports.CountrySubdivisionCityFieldClass = CountrySubdivisionCityFieldClass;
104370
105406
  exports.DateField = DateField;
104371
105407
  exports.DateFieldClass = DateFieldClass;
104372
105408
  exports.Divider = Divider;