@vonage/vivid 5.8.0 → 5.10.0

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 (158) hide show
  1. package/bundled/affix.js +1 -1
  2. package/bundled/anchored.cjs +1 -1
  3. package/bundled/anchored.js +6 -6
  4. package/bundled/data-grid.options.cjs +1 -0
  5. package/bundled/data-grid.options.js +29 -0
  6. package/bundled/definition10.js +4 -4
  7. package/bundled/definition2.cjs +1 -1
  8. package/bundled/definition2.js +1 -1
  9. package/bundled/definition3.cjs +1 -1
  10. package/bundled/definition3.js +1 -1
  11. package/bundled/definition7.js +3 -3
  12. package/bundled/definition9.cjs +9 -9
  13. package/bundled/definition9.js +113 -1342
  14. package/bundled/floating-ui.dom.cjs +1 -0
  15. package/bundled/floating-ui.dom.js +1242 -0
  16. package/bundled/host-semantics.js +4 -4
  17. package/bundled/localized.cjs +1 -1
  18. package/bundled/localized.js +21 -16
  19. package/bundled/mixins.cjs +2 -2
  20. package/bundled/mixins.js +6 -6
  21. package/bundled/slottable-request.cjs +4 -0
  22. package/bundled/slottable-request.js +2907 -0
  23. package/bundled/vivid-element.cjs +3 -3
  24. package/bundled/vivid-element.js +89 -69
  25. package/card/definition.cjs +1 -1
  26. package/card/definition.js +1 -1
  27. package/card/index.cjs +10 -10
  28. package/card/index.js +42 -42
  29. package/combobox/definition.cjs +14 -15
  30. package/combobox/definition.js +15 -16
  31. package/combobox/index.cjs +4 -4
  32. package/combobox/index.js +82 -87
  33. package/country/definition.cjs +340 -0
  34. package/country/definition.js +334 -0
  35. package/country/index.cjs +12 -0
  36. package/country/index.js +317 -0
  37. package/custom-elements.json +4835 -613
  38. package/data-grid/definition.cjs +23 -49
  39. package/data-grid/definition.js +1 -27
  40. package/data-grid/index.cjs +27 -27
  41. package/data-grid/index.js +44 -64
  42. package/file-picker/definition.cjs +10 -8
  43. package/file-picker/definition.js +10 -8
  44. package/file-picker/index.cjs +5 -5
  45. package/file-picker/index.js +12 -12
  46. package/icon/definition.cjs +1 -1
  47. package/icon/definition.js +1 -1
  48. package/index.cjs +38 -4
  49. package/index.js +7 -2
  50. package/lib/components.d.ts +6 -1
  51. package/lib/country/countries-data.d.ts +6 -0
  52. package/lib/country/country-code-to-flag-icon.d.ts +5 -0
  53. package/lib/country/country.d.ts +5 -0
  54. package/lib/country/country.template.d.ts +3 -0
  55. package/lib/country/definition.d.ts +3 -0
  56. package/lib/popover/definition.d.ts +4 -0
  57. package/lib/popover/locale.d.ts +3 -0
  58. package/lib/popover/popover.d.ts +781 -0
  59. package/lib/popover/popover.template.d.ts +3 -0
  60. package/lib/rich-text-editor/locale.d.ts +2 -0
  61. package/lib/rich-text-editor/popover.d.ts +1 -0
  62. package/lib/rich-text-editor/rte/config.d.ts +5 -1
  63. package/lib/rich-text-editor/rte/document.d.ts +2 -0
  64. package/lib/rich-text-editor/rte/exports.d.ts +5 -0
  65. package/lib/rich-text-editor/rte/feature.d.ts +7 -1
  66. package/lib/rich-text-editor/rte/features/internal/basic-text-blocks.d.ts +1 -1
  67. package/lib/rich-text-editor/rte/features/internal/foreign-html.d.ts +1 -1
  68. package/lib/rich-text-editor/rte/features/internal/history.d.ts +1 -1
  69. package/lib/rich-text-editor/rte/features/internal/input-rules.d.ts +15 -0
  70. package/lib/rich-text-editor/rte/instance.d.ts +4 -2
  71. package/lib/rich-text-editor/rte/utils/feature-state.d.ts +8 -0
  72. package/lib/rich-text-editor/rte/utils/text-before-cursor.d.ts +2 -0
  73. package/lib/rich-text-editor/rte/utils/ui.d.ts +2 -0
  74. package/lib/rich-text-editor/rte/view.d.ts +30 -0
  75. package/lib/rich-text-view/definition.d.ts +5 -0
  76. package/lib/rich-text-view/rich-text-view.d.ts +19 -0
  77. package/lib/rich-text-view/rich-text-view.template.d.ts +3 -0
  78. package/lib/selectable-box/selectable-box.d.ts +1 -0
  79. package/lib/status/definition.d.ts +4 -0
  80. package/lib/status/status.d.ts +388 -0
  81. package/lib/status/status.template.d.ts +3 -0
  82. package/lib/table/definition.d.ts +8 -0
  83. package/lib/table/table-body.d.ts +3 -0
  84. package/lib/table/table-body.template.d.ts +3 -0
  85. package/lib/table/table-cell.d.ts +381 -0
  86. package/lib/table/table-cell.template.d.ts +3 -0
  87. package/lib/table/table-head.d.ts +3 -0
  88. package/lib/table/table-head.template.d.ts +3 -0
  89. package/lib/table/table-header-cell.d.ts +381 -0
  90. package/lib/table/table-header-cell.template.d.ts +3 -0
  91. package/lib/table/table-row.d.ts +381 -0
  92. package/lib/table/table-row.template.d.ts +3 -0
  93. package/lib/table/table.d.ts +3 -0
  94. package/lib/table/table.template.d.ts +3 -0
  95. package/lib/tag/tag.d.ts +1 -1
  96. package/lib/tag-name-map.d.ts +11 -1
  97. package/locales/de-DE.cjs +6 -1
  98. package/locales/de-DE.js +6 -1
  99. package/locales/en-GB.cjs +6 -1
  100. package/locales/en-GB.js +6 -1
  101. package/locales/en-US.cjs +6 -1
  102. package/locales/en-US.js +6 -1
  103. package/locales/ja-JP.cjs +6 -1
  104. package/locales/ja-JP.js +6 -1
  105. package/locales/zh-CN.cjs +6 -1
  106. package/locales/zh-CN.js +6 -1
  107. package/package.json +10 -9
  108. package/popover/definition.cjs +363 -0
  109. package/popover/definition.js +357 -0
  110. package/popover/index.cjs +27 -0
  111. package/popover/index.js +263 -0
  112. package/rich-text-editor/definition.cjs +12125 -14657
  113. package/rich-text-editor/definition.js +8876 -11412
  114. package/rich-text-editor/index.cjs +20 -22
  115. package/rich-text-editor/index.js +5046 -7096
  116. package/rich-text-view/definition.cjs +171 -0
  117. package/rich-text-view/definition.js +165 -0
  118. package/rich-text-view/index.cjs +1 -0
  119. package/rich-text-view/index.js +103 -0
  120. package/selectable-box/definition.cjs +16 -5
  121. package/selectable-box/definition.js +16 -5
  122. package/selectable-box/index.cjs +11 -9
  123. package/selectable-box/index.js +86 -78
  124. package/shared/localization/Locale.d.ts +2 -0
  125. package/shared/utils/slottable-request.d.ts +7 -0
  126. package/status/definition.cjs +76 -0
  127. package/status/definition.js +70 -0
  128. package/status/index.cjs +11 -0
  129. package/status/index.js +55 -0
  130. package/styles/core/all.css +2 -2
  131. package/styles/core/theme.css +2 -2
  132. package/styles/core/typography.css +1 -1
  133. package/styles/tokens/theme-dark.css +4 -4
  134. package/styles/tokens/theme-light.css +4 -4
  135. package/styles/tokens/vivid-2-compat.css +1 -1
  136. package/table/definition.cjs +168 -0
  137. package/table/definition.js +152 -0
  138. package/table/index.cjs +37 -0
  139. package/table/index.js +107 -0
  140. package/tag/definition.cjs +1 -1
  141. package/tag/definition.js +1 -1
  142. package/tag/index.cjs +24 -24
  143. package/tag/index.js +89 -89
  144. package/unbundled/_commonjsHelpers.cjs +26 -0
  145. package/unbundled/_commonjsHelpers.js +26 -1
  146. package/unbundled/data-grid.options.cjs +34 -0
  147. package/unbundled/data-grid.options.js +28 -0
  148. package/unbundled/definition.cjs +1 -1
  149. package/unbundled/definition.js +1 -1
  150. package/unbundled/slottable-request.cjs +3702 -0
  151. package/unbundled/slottable-request.js +3684 -0
  152. package/unbundled/vivid-element.cjs +1 -1
  153. package/unbundled/vivid-element.js +1 -1
  154. package/video-player/definition.cjs +11 -1
  155. package/video-player/definition.js +12 -2
  156. package/video-player/index.cjs +30 -30
  157. package/video-player/index.js +705 -702
  158. package/vivid.api.json +1957 -143
package/card/index.js CHANGED
@@ -1,75 +1,75 @@
1
- import { I as b, i as x } from "../bundled/definition2.js";
1
+ import { I as m, i as x } from "../bundled/definition2.js";
2
2
  import { E as g, e as y } from "../bundled/definition4.js";
3
- import { V as $, a as l, o as f, h as o, c as _, d as w } from "../bundled/vivid-element.js";
3
+ import { V as $, a as l, o as f, h as r, c as _, d as w } from "../bundled/vivid-element.js";
4
4
  import { L as C } from "../bundled/linkable.js";
5
5
  import { A as c } from "../bundled/enums.js";
6
6
  import { d as k } from "../bundled/delegates-aria.js";
7
7
  import { w as i } from "../bundled/when.js";
8
8
  import { s as u } from "../bundled/slotted.js";
9
9
  import { c as S } from "../bundled/class-names.js";
10
- const E = ":host{display:flex}.base{border-radius:8px;inline-size:100%;text-align:start}.base{padding:0;border:0 none;outline:none;text-decoration:none}.base:is(button,a):not(:disabled){cursor:pointer}.base:is(button,a):disabled{cursor:not-allowed}.base:is(button,a):focus-visible{box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, var(--vvd-color-cta-500)),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}.wrapper{display:flex;overflow:hidden;flex-flow:column;border-radius:inherit;block-size:100%;color:var(--vvd-color-canvas-text)}.wrapper{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.wrapper:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.wrapper.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.wrapper:active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.wrapper.active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.wrapper{--_connotation-color-primary: var(--vvd-card-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-card-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-card-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-card-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-card-cta-soft, var(--vvd-color-cta-100))}@media (hover: hover){.base:is(button,a):hover>.wrapper{background-color:var(--_appearance-color-fill)}}.main-content{display:flex;flex-flow:column;padding:24px}.header{display:flex;flex:1;align-items:flex-start;gap:8px}.header-content{flex:1}.header-wrapper{display:flex;gap:8px}.header-headline,.header-subtitle{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}.header-headline{font:var(--vvd-typography-heading-4);-webkit-line-clamp:var(--headline-line-clamp)}.header-subtitle{font:var(--vvd-typography-base);-webkit-line-clamp:var(--subtitle-line-clamp)}.hide-header .header{display:none}.header-subtitle,.text{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base)}.text{padding-right:8px;margin-top:12px}.footer{display:inline-flex;flex-direction:column;align-items:flex-end;padding-bottom:24px;margin-top:auto;padding-inline:24px}.hide-footer .footer{display:none}::slotted([slot=graphic i]),.icon{flex-shrink:0;align-self:baseline;margin-block-start:4px}.icon{font-size:20px}::slotted([slot=meta i]){flex-shrink:0;align-self:flex-start;margin-block-start:-8px;margin-inline:auto -8px}";
11
- var H = Object.defineProperty, n = (e, a, t, h) => {
12
- for (var d = void 0, s = e.length - 1, m; s >= 0; s--)
13
- (m = e[s]) && (d = m(a, t, d) || d);
14
- return d && H(a, t, d), d;
10
+ const E = ":host{display:flex;--_vvd-tinted-shadow-surface-0dp: drop-shadow( 1px 0px 0px var(--card-border-color) ) drop-shadow(0px 1px 0px var(--card-border-color)) drop-shadow(0px -1px 0px var(--card-border-color)) drop-shadow(-1px 0px 0px var(--card-border-color))}.base{border-radius:8px;inline-size:100%;text-align:start}.base{padding:0;border:0 none;outline:none;text-decoration:none}.base:is(button,a):not(:disabled){cursor:pointer}.base:is(button,a):disabled{cursor:not-allowed}.base:is(button,a):focus-visible{box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, var(--vvd-color-cta-500)),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}.wrapper{display:flex;overflow:hidden;flex-flow:column;border-radius:inherit;block-size:100%;color:var(--vvd-color-canvas-text)}.wrapper{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.wrapper:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.wrapper.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.wrapper:active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.wrapper.active:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.wrapper{--_connotation-color-primary: var(--vvd-card-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-card-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-card-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-card-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-card-cta-soft, var(--vvd-color-cta-100))}@media (hover: hover){.base:is(button,a):hover>.wrapper{background-color:var(--_appearance-color-fill)}}.main-content{display:flex;flex-flow:column;padding:24px}.header{display:flex;flex:1;align-items:flex-start;gap:8px}.header-content{flex:1}.header-wrapper{display:flex;gap:8px}.header-headline,.header-subtitle{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical}.header-headline{font:var(--vvd-typography-heading-4);-webkit-line-clamp:var(--headline-line-clamp)}.header-subtitle{font:var(--vvd-typography-base);-webkit-line-clamp:var(--subtitle-line-clamp)}.hide-header .header{display:none}.header-subtitle,.text{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base)}.text{padding-right:8px;margin-top:12px}.footer{display:inline-flex;flex-direction:column;align-items:flex-end;padding-bottom:24px;margin-top:auto;padding-inline:24px}.hide-footer .footer{display:none}::slotted([slot=graphic i]),.icon{flex-shrink:0;align-self:baseline;margin-block-start:4px}.icon{font-size:20px}::slotted([slot=meta i]){flex-shrink:0;align-self:flex-start;margin-block-start:-8px;margin-inline:auto -8px}";
11
+ var H = Object.defineProperty, n = (e, a, o, h) => {
12
+ for (var d = void 0, s = e.length - 1, b; s >= 0; s--)
13
+ (b = e[s]) && (d = b(a, o, d) || d);
14
+ return d && H(a, o, d), d;
15
15
  };
16
- class r extends C($) {
16
+ class t extends C($) {
17
17
  constructor() {
18
18
  super(...arguments), this.clickableCard = !1;
19
19
  }
20
20
  }
21
21
  n([
22
22
  l
23
- ], r.prototype, "appearance");
23
+ ], t.prototype, "appearance");
24
24
  n([
25
25
  l
26
- ], r.prototype, "headline");
26
+ ], t.prototype, "headline");
27
27
  n([
28
28
  l
29
- ], r.prototype, "subtitle");
29
+ ], t.prototype, "subtitle");
30
30
  n([
31
31
  l
32
- ], r.prototype, "text");
32
+ ], t.prototype, "text");
33
33
  n([
34
34
  l
35
- ], r.prototype, "icon");
35
+ ], t.prototype, "icon");
36
36
  n([
37
37
  l
38
- ], r.prototype, "elevation");
38
+ ], t.prototype, "elevation");
39
39
  n([
40
40
  l({
41
41
  mode: "boolean",
42
42
  attribute: "clickable-card"
43
43
  })
44
- ], r.prototype, "clickableCard");
44
+ ], t.prototype, "clickableCard");
45
45
  n([
46
46
  f
47
- ], r.prototype, "footerSlottedContent");
47
+ ], t.prototype, "footerSlottedContent");
48
48
  n([
49
49
  f
50
- ], r.prototype, "graphicSlottedContent");
50
+ ], t.prototype, "graphicSlottedContent");
51
51
  n([
52
52
  f
53
- ], r.prototype, "hasMetaSlottedContent");
53
+ ], t.prototype, "hasMetaSlottedContent");
54
54
  const v = (e) => S(
55
55
  "base",
56
56
  ["hide-footer", !e.footerSlottedContent || !e.footerSlottedContent.length],
57
57
  ["hide-header", L(e)]
58
58
  );
59
59
  function z(e) {
60
- return o`
60
+ return r`
61
61
  <${e} class="icon" inline name="${(a) => a.icon}"></${e}>`;
62
62
  }
63
63
  function A() {
64
- return o`
64
+ return r`
65
65
  <div class="header-headline" id="card-headline">${(e) => e.headline}</div>
66
66
  `;
67
67
  }
68
68
  function D() {
69
- return o` <div class="header-subtitle">${(e) => e.subtitle}</div> `;
69
+ return r` <div class="header-subtitle">${(e) => e.subtitle}</div> `;
70
70
  }
71
71
  function F() {
72
- return o`
72
+ return r`
73
73
  <div class="header-content">
74
74
  ${i((e) => e.headline, A())}
75
75
  ${i((e) => e.subtitle, D())}
@@ -77,7 +77,7 @@ function F() {
77
77
  `;
78
78
  }
79
79
  function I(e) {
80
- return o` <div class="header">
80
+ return r` <div class="header">
81
81
  <slot name="graphic" ${u("graphicSlottedContent")}
82
82
  >${i((a) => a.icon, z(e))}</slot
83
83
  >
@@ -88,13 +88,13 @@ function L(e) {
88
88
  return !e.headline && !e.subtitle && !e.icon && (!e.graphicSlottedContent || !e.graphicSlottedContent.length);
89
89
  }
90
90
  function O() {
91
- return o` <slot name="meta" ${u("metaSlottedContent")}></slot> `;
91
+ return r` <slot name="meta" ${u("metaSlottedContent")}></slot> `;
92
92
  }
93
93
  function V() {
94
- return o` <div class="text">${(e) => e.text}</div> `;
94
+ return r` <div class="text">${(e) => e.text}</div> `;
95
95
  }
96
96
  function B(e) {
97
- return o`<button
97
+ return r`<button
98
98
  class="${v}"
99
99
  type="button"
100
100
  ${k()}
@@ -104,19 +104,19 @@ function B(e) {
104
104
  </button>`;
105
105
  }
106
106
  function G(e, a) {
107
- return e.href ? e._renderLinkElement(a, v) : e.clickableCard ? B(a) : o`<div
107
+ return e.href ? e._renderLinkElement(a, v) : e.clickableCard ? B(a) : r`<div
108
108
  class="${v}"
109
- aria-labelledby="${(t) => t.headline ? "card-headline" : null}"
109
+ aria-labelledby="${(o) => o.headline ? "card-headline" : null}"
110
110
  >
111
111
  ${a}
112
112
  </div>`;
113
113
  }
114
114
  function p(e) {
115
- const a = e.tagFor(b);
116
- return o`
117
- ${(t) => G(
118
- t,
119
- o`<div class="wrapper">
115
+ const a = e.tagFor(m);
116
+ return r`
117
+ ${(o) => G(
118
+ o,
119
+ r`<div class="wrapper">
120
120
  <div class="vwc-card-media">
121
121
  <slot name="media"></slot>
122
122
  </div>
@@ -137,31 +137,31 @@ function p(e) {
137
137
  }
138
138
  const M = (e) => {
139
139
  const a = e.tagFor(g);
140
- return o`
140
+ return r`
141
141
  ${i(
142
- (t) => t.appearance !== c.Ghost && t.appearance !== c.Outlined,
143
- o`
144
- <${a} dp=${(t) => t.elevation ?? "4"}>
142
+ (o) => o.appearance !== c.Ghost && o.appearance !== c.Outlined,
143
+ r`
144
+ <${a} dp=${(o) => o.elevation ?? "4"}>
145
145
  ${p(e)}
146
146
  </${a}>
147
147
  `
148
148
  )}
149
149
  ${i(
150
- (t) => t.appearance === c.Outlined,
151
- o`
150
+ (o) => o.appearance === c.Outlined,
151
+ r`
152
152
  <${a} dp='0')}>
153
153
  ${p(e)}
154
154
  </${a}>
155
155
  `
156
156
  )}
157
157
  ${i(
158
- (t) => t.appearance === c.Ghost,
159
- o` ${p(e)} `
158
+ (o) => o.appearance === c.Ghost,
159
+ r` ${p(e)} `
160
160
  )}
161
161
  `;
162
162
  }, P = w(
163
163
  "card",
164
- r,
164
+ t,
165
165
  M,
166
166
  [x, y],
167
167
  {
@@ -95,18 +95,11 @@ class Combobox extends withContextualHelp.WithContextualHelp(
95
95
  return this.autocomplete === ComboboxAutocomplete.both;
96
96
  }
97
97
  /**
98
- * Sets focus when the open property changes.
99
- *
100
- * @param prev - the previous open value
101
- * @param next - the current open value
102
- *
103
98
  * @internal
104
99
  */
105
100
  openChanged() {
106
101
  if (this.open) {
107
- this.focusAndScrollOptionIntoView();
108
- fastElement.Updates.enqueue(() => this.control.focus());
109
- return;
102
+ this.enqueueScrollSelectedOptionIntoViewIfNeeded();
110
103
  }
111
104
  }
112
105
  /**
@@ -221,13 +214,19 @@ class Combobox extends withContextualHelp.WithContextualHelp(
221
214
  focusAndScrollOptionIntoView() {
222
215
  if (this.contains(document.activeElement)) {
223
216
  this.control.focus();
224
- const firstSelectedOption = this.firstSelectedOption;
225
- /* v8 ignore else -- @preserve */
226
- if (firstSelectedOption) {
227
- requestAnimationFrame(() => {
228
- firstSelectedOption.scrollIntoView({ block: "nearest" });
229
- });
230
- }
217
+ this.enqueueScrollSelectedOptionIntoViewIfNeeded();
218
+ }
219
+ }
220
+ /**
221
+ * @internal
222
+ */
223
+ enqueueScrollSelectedOptionIntoViewIfNeeded() {
224
+ const firstSelectedOption = this.firstSelectedOption;
225
+ /* v8 ignore else -- @preserve */
226
+ if (firstSelectedOption) {
227
+ requestAnimationFrame(() => {
228
+ firstSelectedOption.scrollIntoView({ block: "nearest" });
229
+ });
231
230
  }
232
231
  }
233
232
  /**
@@ -4,7 +4,7 @@ import { l as listboxOptionDefinition } from '../unbundled/definition3.js';
4
4
  import { s as styles$1 } from '../unbundled/text-field.js';
5
5
  import { d as defineVividComponent, c as createRegisterFunction } from '../unbundled/vivid-element.js';
6
6
  import { a as WithFeedback, f as feedbackMessageDefinition } from '../unbundled/mixins.js';
7
- import { Updates, Observable, attr, observable, ref, slotted, html, when } from '@microsoft/fast-element';
7
+ import { Observable, attr, observable, ref, slotted, html, when } from '@microsoft/fast-element';
8
8
  import { uniqueId, limit, classNames } from '@microsoft/fast-web-utilities';
9
9
  import { L as Listbox } from '../unbundled/listbox.js';
10
10
  import { F as FormAssociated } from '../unbundled/form-associated.js';
@@ -91,18 +91,11 @@ class Combobox extends WithContextualHelp(
91
91
  return this.autocomplete === ComboboxAutocomplete.both;
92
92
  }
93
93
  /**
94
- * Sets focus when the open property changes.
95
- *
96
- * @param prev - the previous open value
97
- * @param next - the current open value
98
- *
99
94
  * @internal
100
95
  */
101
96
  openChanged() {
102
97
  if (this.open) {
103
- this.focusAndScrollOptionIntoView();
104
- Updates.enqueue(() => this.control.focus());
105
- return;
98
+ this.enqueueScrollSelectedOptionIntoViewIfNeeded();
106
99
  }
107
100
  }
108
101
  /**
@@ -217,13 +210,19 @@ class Combobox extends WithContextualHelp(
217
210
  focusAndScrollOptionIntoView() {
218
211
  if (this.contains(document.activeElement)) {
219
212
  this.control.focus();
220
- const firstSelectedOption = this.firstSelectedOption;
221
- /* v8 ignore else -- @preserve */
222
- if (firstSelectedOption) {
223
- requestAnimationFrame(() => {
224
- firstSelectedOption.scrollIntoView({ block: "nearest" });
225
- });
226
- }
213
+ this.enqueueScrollSelectedOptionIntoViewIfNeeded();
214
+ }
215
+ }
216
+ /**
217
+ * @internal
218
+ */
219
+ enqueueScrollSelectedOptionIntoViewIfNeeded() {
220
+ const firstSelectedOption = this.firstSelectedOption;
221
+ /* v8 ignore else -- @preserve */
222
+ if (firstSelectedOption) {
223
+ requestAnimationFrame(() => {
224
+ firstSelectedOption.scrollIntoView({ block: "nearest" });
225
+ });
227
226
  }
228
227
  }
229
228
  /**
@@ -1,4 +1,4 @@
1
- "use strict";const k=require("../bundled/definition2.cjs"),f=require("../bundled/definition9.cjs"),$=require("../bundled/definition12.cjs"),C=require("../bundled/text-field.cjs"),n=require("../bundled/vivid-element.cjs"),b=require("../bundled/mixins.cjs"),x=require("../bundled/listbox.cjs"),I=require("../bundled/form-associated.cjs"),S=require("../bundled/with-contextual-help.cjs"),O=require("../bundled/with-error-text.cjs"),q=require("../bundled/with-success-text.cjs"),A=require("../bundled/form-element.cjs"),u=require("../bundled/affix.cjs"),H=require("../bundled/strings.cjs"),T=require("../bundled/numbers.cjs"),V=require("../bundled/index.cjs"),D=require("../bundled/definition3.cjs"),d=require("../bundled/ref.cjs"),h=require("../bundled/slotted.cjs"),E=require("../bundled/when.cjs"),F=require("../bundled/class-names.cjs"),B='.label-wrapper{display:flex;flex-direction:row;align-items:center;gap:var(--label-wrapper-gap, 4px)}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 1 auto}.chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host{position:relative;display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.base{--_text-field-gutter-end: 8px}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.base.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base:hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base.hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base.readonly:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.error:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.base.error:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base.success:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.base.success:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.base:not(.shape-pill) .base{border-radius:var(--_text-field-border-radius)}.base.shape-pill .base{border-radius:var(--_text-field-pill-border-radius)}.base slot[name=icon]{position:absolute;z-index:1;display:inline-block;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);inset-block-start:50%;inset-inline-start:var(--_text-field-gutter-start);line-height:1;pointer-events:none;transform:translateY(-50%)}.base.has-meta{padding-inline-end:16px}.control{text-overflow:ellipsis;white-space:nowrap}.fieldset .leading-items-wrapper{position:relative;display:flex;flex-shrink:0;align-items:center;gap:8px;padding-inline-end:16px}.listbox{display:flex;max-height:var(--combobox-height, 408px);flex-direction:column;padding:4px;border-radius:8px;contain:paint;gap:2px;overflow-y:auto}::part(popup-base){inline-size:max-content;min-inline-size:var(--_combobox-fixed-width, 100%)}@supports selector(:has(*)){.base:not(.has-activedescendant) .fieldset:has(.control:focus-within):after{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, var(--vvd-color-cta-500)),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}}@supports not selector(:has(*)){.base:not(.has-activedescendant) .fieldset:focus-within:after{box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, var(--vvd-color-cta-500)),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;position:absolute;z-index:1;display:block;border-radius:inherit;content:"";inset:0;pointer-events:none}}::slotted([data-vvd-component=option][current-selected]){border-radius:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, var(--vvd-color-cta-500)),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}',p={inline:"inline",list:"list",both:"both",none:"none"};var L=Object.defineProperty,s=(a,t,e,o)=>{for(var r=void 0,l=a.length-1,c;l>=0;l--)(c=a[l])&&(r=c(t,e,r)||r);return r&&L(t,e,r),r};class i extends S.WithContextualHelp(b.WithFeedback(O.WithErrorText(q.WithSuccessText(A.FormElement(u.AffixIcon(I.FormAssociated(x.Listbox))))))){constructor(){super(...arguments),this.filteredOptions=[],this.filter="",this.fixedDropdown=!1,this.listboxId=H.uniqueId("listbox-"),this.maxHeight=0,this.open=!1,this.proxy=document.createElement("input")}formResetCallback(){super.formResetCallback(),this.selectedIndex=this._newDefaultSelectedIndex([],this.options,-1)??-1,this.value=this.firstSelectedOption?.text||""}validate(){super.validate(this.control)}get isAutocompleteInline(){return this.autocomplete===p.inline||this.isAutocompleteBoth}get isAutocompleteList(){return this.autocomplete===p.list||this.isAutocompleteBoth}get isAutocompleteBoth(){return this.autocomplete===p.both}openChanged(){if(this.open){this.focusAndScrollOptionIntoView(),n.Updates.enqueue(()=>this.control.focus());return}}get options(){return n.Observable.track(this,"options"),this.filteredOptions.length?this.filteredOptions:this._options}set options(t){super.options=t}placeholderChanged(){/* v8 ignore if -- @preserve */this.proxy instanceof HTMLInputElement&&(this.proxy.placeholder=this.placeholder)}valueChanged(t,e){if(this.$fastController.isConnected&&this.options){const o=this.options.findIndex(c=>c.text.toLowerCase()===e.toLowerCase()),r=this.options[this.selectedIndex]?.text,l=this.options[o]?.text;this.selectedIndex=r!==l?o:this.selectedIndex}super.valueChanged(t,e)}clickHandler(t){if(!(this.disabled||this._isFromContextualHelp(t))){if(this.open){const e=t.target.closest("option,[role=option],[data-vvd-component=option]");if(!e||e.disabled)return;this.selectedOptions=[e],this.control.value=e.text,this.clearSelectionRange(),this.updateValue(!0)}return this.open=!this.open,this.open&&this.control.focus(),!0}}_chevronIconClickHandler(t){this.open&&(t.stopPropagation(),this.open=!1)}connectedCallback(){super.connectedCallback(),this.value&&(this.initialValue=this.value),this._popup.anchor=this._anchor}filterOptions(){(!this.autocomplete||this.autocomplete===p.none)&&(this.filter=""),this.filteredOptions=this._options.filter(t=>t.text.toLowerCase().startsWith(this.filter.toLowerCase())),this.isAutocompleteList&&this._options.forEach(t=>{t.hidden=!this.filteredOptions.includes(t)})}focusAndScrollOptionIntoView(){if(this.contains(document.activeElement)){this.control.focus();const t=this.firstSelectedOption;/* v8 ignore else -- @preserve */t&&requestAnimationFrame(()=>{t.scrollIntoView({block:"nearest"})})}}focusoutHandler(t){if(this.syncValue(),!this.open)return!0;const e=t.relatedTarget;if(this.isSameNode(e)){this.focus();return}this.open=!1}inputHandler(t){if(this.filter=this.control.value,this.filterOptions(),this.isAutocompleteInline||(this.selectedIndex=this.options.map(e=>e.text).indexOf(this.control.value)),t.inputType.includes("deleteContent")||!this.filter.length)return!0;this.isAutocompleteList&&!this.open&&(this.open=!0),this.isAutocompleteInline&&(this.filteredOptions.length?(this.selectedOptions=[this.filteredOptions[0]],this.selectedIndex=this.options.indexOf(this.firstSelectedOption),this.setInlineSelection()):this.selectedIndex=-1)}keydownHandler(t){const e=t.key;if(t.ctrlKey||t.shiftKey)return!0;switch(e){case"Enter":{this.syncValue();/* v8 ignore else -- @preserve */this.isAutocompleteInline&&(this.filter=this.value),this.open=!1,this.clearSelectionRange();break}case"Escape":{/* v8 ignore else -- @preserve */if(this.isAutocompleteInline||(this.selectedIndex=-1),this.open){this.open=!1;break}this.value="",this.control.value="",this.filter="",this.filterOptions();break}case"Tab":{if(this.setInputToSelection(),!this.open)return!0;t.preventDefault(),this.open=!1;break}case"ArrowUp":case"ArrowDown":{if(this.filterOptions(),!this.open){this.open=!0;break}/* v8 ignore else -- @preserve */this.filteredOptions.length>0&&super.keydownHandler(t),this.isAutocompleteInline&&this.setInlineSelection();break}default:return!0}}selectedIndexChanged(t,e){if(this.$fastController.isConnected){if(e=T.limit(-1,this.options.length-1,e),e!==this.selectedIndex){this.selectedIndex=e;return}super.selectedIndexChanged(t,e)}}selectPreviousOption(){!this.disabled&&this.selectedIndex>=0&&(this.selectedIndex=this.selectedIndex-1)}_isDefaultSelected(t){return super._isDefaultSelected(t)||t.text!==""&&t.text===this.initialValue}setInputToSelection(){this.firstSelectedOption&&(this.control.value=this.firstSelectedOption.text,this.control.focus())}setInlineSelection(){/* v8 ignore else -- @preserve */this.firstSelectedOption&&(this.setInputToSelection(),this.control.setSelectionRange(this.filter.length,this.control.value.length,"backward"))}syncValue(){const t=this.firstSelectedOption?.text??this.control.value;this.updateValue(this.value!==t)}selectedOptionsChanged(t,e){this.$fastController.isConnected&&this._options.forEach(o=>{o.selected=e.includes(o)})}slottedOptionsChanged(t,e){super.slottedOptionsChanged(t,e),this.updateValue();const o=this.getAttribute("scale")||this.scale;e.forEach(r=>{o&&(r.setAttribute("scale",o),r.scale=o)})}updateValue(t){this.$fastController.isConnected&&(this.value=this.firstSelectedOption?.text||this.control.value),t&&this.$emit("change")}clearSelectionRange(){const t=this.control.value.length;this.control.setSelectionRange(t,t)}}s([n.attr({attribute:"autocomplete",mode:"fromView"})],i.prototype,"autocomplete");s([n.attr],i.prototype,"appearance");s([n.attr],i.prototype,"shape");s([n.attr()],i.prototype,"scale");s([n.attr],i.prototype,"placement");s([n.attr({mode:"boolean",attribute:"fixed-dropdown"})],i.prototype,"fixedDropdown");s([n.observable],i.prototype,"metaSlottedContent");s([n.observable],i.prototype,"maxHeight");s([n.attr({attribute:"open",mode:"boolean"})],i.prototype,"open");s([n.attr],i.prototype,"placeholder");const R=({icon:a,iconSlottedContent:t,metaSlottedContent:e,errorValidationMessage:o,successText:r,shape:l,scale:c,disabled:m,placeholder:_,label:g,appearance:v,open:w,_activeDescendant:y})=>F.classNames("base",["disabled",m],[`shape-${l}`,!!l],[`size-${c}`,!!c],["placeholder",!!_],[`appearance-${v}`,!!v],["no-label",!g],["has-icon",!!a||!!t?.length],["has-meta",!!e?.length],["has-activedescendant",!!y&&w],["error",!!o],["success",!!r]);function z(){return n.html` <label for="control" class="label">
1
+ "use strict";const k=require("../bundled/definition2.cjs"),f=require("../bundled/definition9.cjs"),I=require("../bundled/definition12.cjs"),$=require("../bundled/text-field.cjs"),n=require("../bundled/vivid-element.cjs"),b=require("../bundled/mixins.cjs"),x=require("../bundled/listbox.cjs"),C=require("../bundled/form-associated.cjs"),S=require("../bundled/with-contextual-help.cjs"),O=require("../bundled/with-error-text.cjs"),q=require("../bundled/with-success-text.cjs"),A=require("../bundled/form-element.cjs"),u=require("../bundled/affix.cjs"),V=require("../bundled/strings.cjs"),H=require("../bundled/numbers.cjs"),T=require("../bundled/index.cjs"),D=require("../bundled/definition3.cjs"),d=require("../bundled/ref.cjs"),h=require("../bundled/slotted.cjs"),E=require("../bundled/when.cjs"),F=require("../bundled/class-names.cjs"),B='.label-wrapper{display:flex;flex-direction:row;align-items:center;gap:var(--label-wrapper-gap, 4px)}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 1 auto}.chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host{position:relative;display:inline-flex;flex-direction:column;gap:4px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.base{--_text-field-gutter-end: 8px}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.base.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base:hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.base.hover:where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base:disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.disabled.appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.readonly:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.base.readonly:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base.error:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.base.error:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base.success:where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.base.success:where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.base:not(.shape-pill) .base{border-radius:var(--_text-field-border-radius)}.base.shape-pill .base{border-radius:var(--_text-field-pill-border-radius)}.base slot[name=icon]{position:absolute;z-index:1;display:inline-block;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);inset-block-start:50%;inset-inline-start:var(--_text-field-gutter-start);line-height:1;pointer-events:none;transform:translateY(-50%)}.base.has-meta{padding-inline-end:16px}.control{text-overflow:ellipsis;white-space:nowrap}.fieldset .leading-items-wrapper{position:relative;display:flex;flex-shrink:0;align-items:center;gap:8px;padding-inline-end:16px}.listbox{display:flex;max-height:var(--combobox-height, 408px);flex-direction:column;padding:4px;border-radius:8px;contain:paint;gap:2px;overflow-y:auto}::part(popup-base){inline-size:max-content;min-inline-size:var(--_combobox-fixed-width, 100%)}@supports selector(:has(*)){.base:not(.has-activedescendant) .fieldset:has(.control:focus-within):after{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, var(--vvd-color-cta-500)),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}}@supports not selector(:has(*)){.base:not(.has-activedescendant) .fieldset:focus-within:after{box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, var(--vvd-color-cta-500)),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;position:absolute;z-index:1;display:block;border-radius:inherit;content:"";inset:0;pointer-events:none}}::slotted([data-vvd-component=option][current-selected]){border-radius:8px;box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, var(--vvd-color-cta-500)),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}',p={inline:"inline",list:"list",both:"both",none:"none"};var L=Object.defineProperty,l=(a,t,e,o)=>{for(var r=void 0,s=a.length-1,c;s>=0;s--)(c=a[s])&&(r=c(t,e,r)||r);return r&&L(t,e,r),r};class i extends S.WithContextualHelp(b.WithFeedback(O.WithErrorText(q.WithSuccessText(A.FormElement(u.AffixIcon(C.FormAssociated(x.Listbox))))))){constructor(){super(...arguments),this.filteredOptions=[],this.filter="",this.fixedDropdown=!1,this.listboxId=V.uniqueId("listbox-"),this.maxHeight=0,this.open=!1,this.proxy=document.createElement("input")}formResetCallback(){super.formResetCallback(),this.selectedIndex=this._newDefaultSelectedIndex([],this.options,-1)??-1,this.value=this.firstSelectedOption?.text||""}validate(){super.validate(this.control)}get isAutocompleteInline(){return this.autocomplete===p.inline||this.isAutocompleteBoth}get isAutocompleteList(){return this.autocomplete===p.list||this.isAutocompleteBoth}get isAutocompleteBoth(){return this.autocomplete===p.both}openChanged(){this.open&&this.enqueueScrollSelectedOptionIntoViewIfNeeded()}get options(){return n.Observable.track(this,"options"),this.filteredOptions.length?this.filteredOptions:this._options}set options(t){super.options=t}placeholderChanged(){/* v8 ignore if -- @preserve */this.proxy instanceof HTMLInputElement&&(this.proxy.placeholder=this.placeholder)}valueChanged(t,e){if(this.$fastController.isConnected&&this.options){const o=this.options.findIndex(c=>c.text.toLowerCase()===e.toLowerCase()),r=this.options[this.selectedIndex]?.text,s=this.options[o]?.text;this.selectedIndex=r!==s?o:this.selectedIndex}super.valueChanged(t,e)}clickHandler(t){if(!(this.disabled||this._isFromContextualHelp(t))){if(this.open){const e=t.target.closest("option,[role=option],[data-vvd-component=option]");if(!e||e.disabled)return;this.selectedOptions=[e],this.control.value=e.text,this.clearSelectionRange(),this.updateValue(!0)}return this.open=!this.open,this.open&&this.control.focus(),!0}}_chevronIconClickHandler(t){this.open&&(t.stopPropagation(),this.open=!1)}connectedCallback(){super.connectedCallback(),this.value&&(this.initialValue=this.value),this._popup.anchor=this._anchor}filterOptions(){(!this.autocomplete||this.autocomplete===p.none)&&(this.filter=""),this.filteredOptions=this._options.filter(t=>t.text.toLowerCase().startsWith(this.filter.toLowerCase())),this.isAutocompleteList&&this._options.forEach(t=>{t.hidden=!this.filteredOptions.includes(t)})}focusAndScrollOptionIntoView(){this.contains(document.activeElement)&&(this.control.focus(),this.enqueueScrollSelectedOptionIntoViewIfNeeded())}enqueueScrollSelectedOptionIntoViewIfNeeded(){const t=this.firstSelectedOption;/* v8 ignore else -- @preserve */t&&requestAnimationFrame(()=>{t.scrollIntoView({block:"nearest"})})}focusoutHandler(t){if(this.syncValue(),!this.open)return!0;const e=t.relatedTarget;if(this.isSameNode(e)){this.focus();return}this.open=!1}inputHandler(t){if(this.filter=this.control.value,this.filterOptions(),this.isAutocompleteInline||(this.selectedIndex=this.options.map(e=>e.text).indexOf(this.control.value)),t.inputType.includes("deleteContent")||!this.filter.length)return!0;this.isAutocompleteList&&!this.open&&(this.open=!0),this.isAutocompleteInline&&(this.filteredOptions.length?(this.selectedOptions=[this.filteredOptions[0]],this.selectedIndex=this.options.indexOf(this.firstSelectedOption),this.setInlineSelection()):this.selectedIndex=-1)}keydownHandler(t){const e=t.key;if(t.ctrlKey||t.shiftKey)return!0;switch(e){case"Enter":{this.syncValue();/* v8 ignore else -- @preserve */this.isAutocompleteInline&&(this.filter=this.value),this.open=!1,this.clearSelectionRange();break}case"Escape":{/* v8 ignore else -- @preserve */if(this.isAutocompleteInline||(this.selectedIndex=-1),this.open){this.open=!1;break}this.value="",this.control.value="",this.filter="",this.filterOptions();break}case"Tab":{if(this.setInputToSelection(),!this.open)return!0;t.preventDefault(),this.open=!1;break}case"ArrowUp":case"ArrowDown":{if(this.filterOptions(),!this.open){this.open=!0;break}/* v8 ignore else -- @preserve */this.filteredOptions.length>0&&super.keydownHandler(t),this.isAutocompleteInline&&this.setInlineSelection();break}default:return!0}}selectedIndexChanged(t,e){if(this.$fastController.isConnected){if(e=H.limit(-1,this.options.length-1,e),e!==this.selectedIndex){this.selectedIndex=e;return}super.selectedIndexChanged(t,e)}}selectPreviousOption(){!this.disabled&&this.selectedIndex>=0&&(this.selectedIndex=this.selectedIndex-1)}_isDefaultSelected(t){return super._isDefaultSelected(t)||t.text!==""&&t.text===this.initialValue}setInputToSelection(){this.firstSelectedOption&&(this.control.value=this.firstSelectedOption.text,this.control.focus())}setInlineSelection(){/* v8 ignore else -- @preserve */this.firstSelectedOption&&(this.setInputToSelection(),this.control.setSelectionRange(this.filter.length,this.control.value.length,"backward"))}syncValue(){const t=this.firstSelectedOption?.text??this.control.value;this.updateValue(this.value!==t)}selectedOptionsChanged(t,e){this.$fastController.isConnected&&this._options.forEach(o=>{o.selected=e.includes(o)})}slottedOptionsChanged(t,e){super.slottedOptionsChanged(t,e),this.updateValue();const o=this.getAttribute("scale")||this.scale;e.forEach(r=>{o&&(r.setAttribute("scale",o),r.scale=o)})}updateValue(t){this.$fastController.isConnected&&(this.value=this.firstSelectedOption?.text||this.control.value),t&&this.$emit("change")}clearSelectionRange(){const t=this.control.value.length;this.control.setSelectionRange(t,t)}}l([n.attr({attribute:"autocomplete",mode:"fromView"})],i.prototype,"autocomplete");l([n.attr],i.prototype,"appearance");l([n.attr],i.prototype,"shape");l([n.attr()],i.prototype,"scale");l([n.attr],i.prototype,"placement");l([n.attr({mode:"boolean",attribute:"fixed-dropdown"})],i.prototype,"fixedDropdown");l([n.observable],i.prototype,"metaSlottedContent");l([n.observable],i.prototype,"maxHeight");l([n.attr({attribute:"open",mode:"boolean"})],i.prototype,"open");l([n.attr],i.prototype,"placeholder");const R=({icon:a,iconSlottedContent:t,metaSlottedContent:e,errorValidationMessage:o,successText:r,shape:s,scale:c,disabled:m,placeholder:_,label:g,appearance:v,open:w,_activeDescendant:y})=>F.classNames("base",["disabled",m],[`shape-${s}`,!!s],[`size-${c}`,!!c],["placeholder",!!_],[`appearance-${v}`,!!v],["no-label",!g],["has-icon",!!a||!!t?.length],["has-meta",!!e?.length],["has-activedescendant",!!y&&w],["error",!!o],["success",!!r]);function z(){return n.html` <label for="control" class="label">
2
2
  ${a=>a.label}
3
3
  </label>`}function P(a){return a.open&&a.fixedDropdown?`--_combobox-fixed-width: ${Math.round(a.getBoundingClientRect().width)}px`:null}function W(a){const t=u.affixIconTemplateFactory(a),e=D.chevronTemplateFactory(a);return n.html` <div class="${R}" ${d.ref("_anchor")}>
4
4
  <div
@@ -42,12 +42,12 @@
42
42
  </div>
43
43
  </div>
44
44
  </div>
45
- </div>`}const K=a=>{const t=a.tagFor(f.Popup);return n.html`
45
+ </div>`}const N=a=>{const t=a.tagFor(f.Popup);return n.html`
46
46
  <template
47
47
  tabindex="${e=>e.disabled?null:"0"}"
48
48
  @click="${(e,o)=>e.clickHandler(o.event)}"
49
49
  @focusout="${(e,o)=>e.focusoutHandler(o.event)}"
50
- @keydown="${(e,{event:o})=>(e.open&&V.handleEscapeKeyAndStopPropogation(o),e.keydownHandler(o))}"
50
+ @keydown="${(e,{event:o})=>(e.open&&T.handleEscapeKeyAndStopPropogation(o),e.keydownHandler(o))}"
51
51
  >
52
52
  <div class="control-wrapper">
53
53
  ${()=>W(a)}
@@ -71,4 +71,4 @@
71
71
  ${e=>e._getFeedbackTemplate(a)}
72
72
  </div>
73
73
  </template>
74
- `},M=n.defineVividComponent("combobox",i,K,[k.iconDefinition,f.popupDefinition,$.listboxOptionDefinition,b.feedbackMessageDefinition],{styles:[C.styles,B],shadowOptions:{delegatesFocus:!0}}),N=n.createRegisterFunction(M);N();
74
+ `},K=n.defineVividComponent("combobox",i,N,[k.iconDefinition,f.popupDefinition,I.listboxOptionDefinition,b.feedbackMessageDefinition],{styles:[$.styles,B],shadowOptions:{delegatesFocus:!0}}),M=n.createRegisterFunction(K);M();