@vonage/vivid 4.14.1 → 4.14.3

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 (109) hide show
  1. package/custom-elements.json +393 -201
  2. package/index.cjs +1 -0
  3. package/index.js +1 -1
  4. package/lib/accordion/definition.d.ts +5 -1
  5. package/lib/combobox/combobox.d.ts +5 -1
  6. package/lib/divider/divider.d.ts +1 -1
  7. package/lib/divider/divider.template.d.ts +1 -1
  8. package/lib/file-picker/file-picker.d.ts +1 -0
  9. package/lib/menu-item/definition.d.ts +1 -1
  10. package/lib/menu-item/menu-item-role.d.ts +7 -0
  11. package/lib/menu-item/menu-item.d.ts +1 -7
  12. package/lib/number-field/number-field.d.ts +1 -1
  13. package/lib/radio/radio.d.ts +2 -2
  14. package/lib/searchable-select/option-tag.d.ts +2 -2
  15. package/lib/select/select.form-associated.d.ts +1 -1
  16. package/lib/switch/switch.d.ts +1 -0
  17. package/lib/tabs/tabs.d.ts +5 -1
  18. package/lib/text-anchor/text-anchor.d.ts +1 -1
  19. package/lib/tree-item/tree-item.d.ts +1 -1
  20. package/lib/tree-view/tree-view.d.ts +1 -1
  21. package/package.json +1 -1
  22. package/shared/affix.js +1 -1
  23. package/shared/applyMixinsWithObservables.cjs +1 -1
  24. package/shared/applyMixinsWithObservables.js +1 -1
  25. package/shared/definition.js +1 -1
  26. package/shared/definition11.cjs +1 -1
  27. package/shared/definition11.js +2 -2
  28. package/shared/definition16.cjs +64 -32
  29. package/shared/definition16.js +62 -30
  30. package/shared/definition17.cjs +9 -7
  31. package/shared/definition17.js +9 -7
  32. package/shared/definition2.cjs +9 -4
  33. package/shared/definition2.js +9 -5
  34. package/shared/definition22.cjs +2 -1
  35. package/shared/definition22.js +2 -1
  36. package/shared/definition24.js +1 -1
  37. package/shared/definition25.cjs +25 -18
  38. package/shared/definition25.js +26 -19
  39. package/shared/definition27.cjs +1 -1
  40. package/shared/definition27.js +1 -1
  41. package/shared/definition29.cjs +12 -30
  42. package/shared/definition29.js +13 -31
  43. package/shared/definition30.js +1 -1
  44. package/shared/definition31.js +1 -1
  45. package/shared/definition33.cjs +1 -1
  46. package/shared/definition33.js +2 -2
  47. package/shared/definition34.cjs +7 -228
  48. package/shared/definition34.js +5 -226
  49. package/shared/definition35.cjs +2 -201
  50. package/shared/definition35.js +4 -201
  51. package/shared/definition4.js +1 -1
  52. package/shared/definition41.cjs +1 -1
  53. package/shared/definition41.js +1 -1
  54. package/shared/definition42.cjs +2 -3
  55. package/shared/definition42.js +3 -4
  56. package/shared/definition43.cjs +10 -11
  57. package/shared/definition43.js +6 -7
  58. package/shared/definition46.cjs +2 -2
  59. package/shared/definition46.js +3 -3
  60. package/shared/definition47.js +1 -1
  61. package/shared/definition48.cjs +22 -15
  62. package/shared/definition48.js +22 -15
  63. package/shared/definition5.cjs +3 -2
  64. package/shared/definition5.js +3 -2
  65. package/shared/definition50.js +1 -1
  66. package/shared/definition51.cjs +14 -383
  67. package/shared/definition51.js +17 -386
  68. package/shared/definition53.js +1 -1
  69. package/shared/definition54.js +1 -1
  70. package/shared/definition56.js +1 -1
  71. package/shared/definition59.js +1 -1
  72. package/shared/definition7.js +1 -1
  73. package/shared/definition8.js +1 -1
  74. package/shared/direction.cjs +2 -16
  75. package/shared/direction.js +3 -17
  76. package/shared/foundation/utilities/direction.d.ts +2 -0
  77. package/shared/listbox.cjs +25 -6
  78. package/shared/listbox.js +22 -3
  79. package/shared/option.cjs +205 -0
  80. package/shared/option.js +202 -0
  81. package/shared/text-anchor.cjs +1 -1
  82. package/shared/text-anchor.js +2 -2
  83. package/shared/text-field2.js +2 -2
  84. package/shared/vivid-element.cjs +0 -2
  85. package/shared/vivid-element.js +1 -1
  86. package/styles/core/all.css +1 -1
  87. package/styles/core/theme.css +1 -1
  88. package/styles/core/typography.css +1 -1
  89. package/styles/tokens/theme-dark.css +4 -4
  90. package/styles/tokens/theme-light.css +4 -4
  91. package/styles/tokens/vivid-2-compat.css +1 -1
  92. package/vivid.api.json +70 -3
  93. package/lib/listbox/definition.d.ts +0 -2
  94. package/lib/listbox/listbox.d.ts +0 -14
  95. package/lib/listbox/listbox.template.d.ts +0 -2
  96. package/listbox/index.cjs +0 -54
  97. package/listbox/index.js +0 -52
  98. package/shared/apply-mixins2.cjs +0 -25
  99. package/shared/apply-mixins2.js +0 -23
  100. package/shared/aria-global2.cjs +0 -75
  101. package/shared/aria-global2.js +0 -73
  102. package/shared/form-associated2.cjs +0 -383
  103. package/shared/form-associated2.js +0 -381
  104. package/shared/key-codes2.cjs +0 -1565
  105. package/shared/key-codes2.js +0 -1551
  106. package/shared/listbox2.cjs +0 -1267
  107. package/shared/listbox2.js +0 -1264
  108. package/shared/strings2.cjs +0 -37
  109. package/shared/strings2.js +0 -33
@@ -1,207 +1,10 @@
1
1
  import { I as Icon, i as iconDefinition } from './definition27.js';
2
- import { V as VividElement, O as Observable, o as observable, a as attr, h as html, d as defineVividComponent, f as createRegisterFunction } from './vivid-element.js';
3
- import { a as applyMixins } from './apply-mixins.js';
4
- import { b as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
5
- import { A as ARIAGlobalStatesAndProperties } from './aria-global.js';
6
- import { i as isHTMLElement } from './dom.js';
2
+ import { h as html, d as defineVividComponent, f as createRegisterFunction } from './vivid-element.js';
3
+ import { L as ListboxOption } from './option.js';
4
+ import { a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
7
5
  import { w as when } from './when.js';
8
6
  import { c as classNames } from './class-names.js';
9
7
 
10
- var __defProp = Object.defineProperty;
11
- var __decorateClass = (decorators, target, key, kind) => {
12
- var result = void 0 ;
13
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
14
- if (decorator = decorators[i])
15
- result = (decorator(target, key, result) ) || result;
16
- if (result) __defProp(target, key, result);
17
- return result;
18
- };
19
- function isListboxOption(el) {
20
- return isHTMLElement(el) && (el.getAttribute("role") === "option" || el instanceof HTMLOptionElement);
21
- }
22
- class ListboxOption extends VividElement {
23
- constructor(text, value, defaultSelected, selected) {
24
- super();
25
- this.defaultSelected = false;
26
- /**
27
- * Tracks whether the "selected" property has been changed.
28
- * @internal
29
- */
30
- this.dirtySelected = false;
31
- this.selected = this.defaultSelected;
32
- /**
33
- * Track whether the value has been changed from the initial value
34
- */
35
- this.dirtyValue = false;
36
- this._highlighted = false;
37
- this._displayCheckmark = false;
38
- this._matchedRange = null;
39
- if (text) {
40
- this.text = text;
41
- }
42
- if (value) {
43
- this.initialValue = value;
44
- }
45
- if (defaultSelected) {
46
- this.defaultSelected = defaultSelected;
47
- }
48
- if (selected) {
49
- this.selected = selected;
50
- }
51
- this.proxy = new Option(
52
- this.text,
53
- // @ts-expect-error Propery is used before it is assigned
54
- this.initialValue,
55
- this.defaultSelected,
56
- this.selected
57
- );
58
- this.proxy.disabled = this.disabled;
59
- }
60
- /**
61
- * Updates the ariaChecked property when the checked property changes.
62
- *
63
- * @param _ - the previous checked value
64
- * @param next - the current checked value
65
- *
66
- * @public
67
- */
68
- checkedChanged(_, next) {
69
- if (typeof next === "boolean") {
70
- this.ariaChecked = next ? "true" : "false";
71
- return;
72
- }
73
- this.ariaChecked = null;
74
- }
75
- defaultSelectedChanged() {
76
- if (!this.dirtySelected) {
77
- this.selected = this.defaultSelected;
78
- if (this.proxy instanceof HTMLOptionElement) {
79
- this.proxy.selected = this.defaultSelected;
80
- }
81
- }
82
- }
83
- disabledChanged() {
84
- this.ariaDisabled = this.disabled ? "true" : "false";
85
- if (this.proxy instanceof HTMLOptionElement) {
86
- this.proxy.disabled = this.disabled;
87
- }
88
- }
89
- selectedAttributeChanged() {
90
- this.defaultSelected = this.selectedAttribute;
91
- if (this.proxy instanceof HTMLOptionElement) {
92
- this.proxy.defaultSelected = this.defaultSelected;
93
- }
94
- }
95
- selectedChanged() {
96
- this.ariaSelected = this.selected ? "true" : "false";
97
- if (!this.dirtySelected) {
98
- this.dirtySelected = true;
99
- }
100
- if (this.proxy instanceof HTMLOptionElement) {
101
- this.proxy.selected = this.selected;
102
- }
103
- }
104
- initialValueChanged() {
105
- if (!this.dirtyValue) {
106
- this.value = this.initialValue;
107
- this.dirtyValue = false;
108
- }
109
- }
110
- get label() {
111
- return this._label ?? this.text;
112
- }
113
- set label(value) {
114
- this._label = value;
115
- }
116
- set text(value) {
117
- this._text = value;
118
- }
119
- get text() {
120
- return this._text ?? "";
121
- }
122
- set value(next) {
123
- const newValue = `${next ?? ""}`;
124
- this._value = newValue;
125
- this.dirtyValue = true;
126
- if (this.proxy instanceof HTMLOptionElement) {
127
- this.proxy.value = newValue;
128
- }
129
- Observable.notify(this, "value");
130
- }
131
- get value() {
132
- Observable.track(this, "value");
133
- return this._value ?? this.text;
134
- }
135
- get form() {
136
- return null;
137
- }
138
- /**
139
- * @internal
140
- */
141
- get _matchedRangeSafe() {
142
- return this._matchedRange ?? { from: 0, to: 0 };
143
- }
144
- }
145
- __decorateClass([
146
- observable
147
- ], ListboxOption.prototype, "checked");
148
- __decorateClass([
149
- observable
150
- ], ListboxOption.prototype, "defaultSelected");
151
- // @ts-expect-error Type is incorrectly non-optional
152
- __decorateClass([
153
- attr({ mode: "boolean" })
154
- ], ListboxOption.prototype, "disabled");
155
- // @ts-expect-error Type is incorrectly non-optional
156
- __decorateClass([
157
- attr({ attribute: "selected", mode: "boolean" })
158
- ], ListboxOption.prototype, "selectedAttribute");
159
- __decorateClass([
160
- observable
161
- ], ListboxOption.prototype, "selected");
162
- __decorateClass([
163
- attr({ attribute: "value", mode: "fromView" })
164
- ], ListboxOption.prototype, "initialValue");
165
- __decorateClass([
166
- attr({
167
- attribute: "label"
168
- })
169
- ], ListboxOption.prototype, "_label");
170
- __decorateClass([
171
- attr({
172
- attribute: "text"
173
- })
174
- ], ListboxOption.prototype, "_text");
175
- __decorateClass([
176
- observable
177
- ], ListboxOption.prototype, "_highlighted");
178
- __decorateClass([
179
- observable
180
- ], ListboxOption.prototype, "_displayCheckmark");
181
- __decorateClass([
182
- observable
183
- ], ListboxOption.prototype, "_matchedRange");
184
- class DelegatesARIAListboxOption {
185
- }
186
- // @ts-expect-error Type is incorrectly non-optional
187
- __decorateClass([
188
- observable
189
- ], DelegatesARIAListboxOption.prototype, "ariaChecked");
190
- // @ts-expect-error Type is incorrectly non-optional
191
- __decorateClass([
192
- observable
193
- ], DelegatesARIAListboxOption.prototype, "ariaPosInSet");
194
- // @ts-expect-error Type is incorrectly non-optional
195
- __decorateClass([
196
- observable
197
- ], DelegatesARIAListboxOption.prototype, "ariaSelected");
198
- // @ts-expect-error Type is incorrectly non-optional
199
- __decorateClass([
200
- observable
201
- ], DelegatesARIAListboxOption.prototype, "ariaSetSize");
202
- applyMixins(DelegatesARIAListboxOption, ARIAGlobalStatesAndProperties);
203
- applyMixins(ListboxOption, AffixIconWithTrailing, DelegatesARIAListboxOption);
204
-
205
8
  const getClasses = (x) => classNames(
206
9
  "base",
207
10
  ["disabled", x.disabled],
@@ -260,4 +63,4 @@ const listboxOptionDefinition = defineVividComponent(
260
63
  );
261
64
  const registerOption = createRegisterFunction(listboxOptionDefinition);
262
65
 
263
- export { ListboxOption as L, isListboxOption as i, listboxOptionDefinition as l, registerOption as r };
66
+ export { listboxOptionDefinition as l, registerOption as r };
@@ -3,7 +3,7 @@ import { E as Elevation, e as elevationDefinition } from './definition62.js';
3
3
  import { V as VividElement, a as attr, n as nullableNumberConverter, h as html, d as defineVividComponent, f as createRegisterFunction } from './vivid-element.js';
4
4
  import { i as iconDefinition } from './definition27.js';
5
5
  import { C as Connotation } from './enums.js';
6
- import { A as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
6
+ import { b as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
7
7
  import { a as applyMixins } from './apply-mixins.js';
8
8
  import { h as handleEscapeKeyAndStopPropogation } from './index.js';
9
9
  import { L as Localized } from './localized.js';
@@ -14,7 +14,7 @@ const ref = require('./ref.cjs');
14
14
  const when = require('./when.cjs');
15
15
  const classNames = require('./class-names.cjs');
16
16
 
17
- const styles = ":host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary: var(--vvd-slider-cta-primary, var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary: var(--vvd-slider-accent-primary, var(--vvd-color-canvas-text))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control{--_thumb-size: 12px;--_thumb-interaction-indicator-size: 36px;--_track-start-inset-inline-start: 0;--_track-start-inset-block-start: 0;cursor:pointer;outline:none;user-select:none}.control .positioning-region{position:relative}.control .track{position:absolute;border-radius:4px;background:var(--_track-background-color)}.control .track-start{position:absolute;border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));margin-inline-start:calc(var(--_thumb-size) / 2);min-inline-size:var(--_thumb-size)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);right:0;left:0;block-size:2px}:host([markers]) .control.horizontal .track-start{--_track-start-inset-inline-start: 1px;border-bottom-left-radius:0;border-top-left-radius:0}.control.horizontal .track .mark{position:absolute;block-size:6px;inline-size:100%;inset-block-start:-2px;inset-inline-start:0}.control.vertical{margin-top:calc(var(--_thumb-interaction-indicator-size) / 2);block-size:calc(100% - var(--_thumb-interaction-indicator-size));inline-size:var(--_thumb-interaction-indicator-size);min-block-size:var(--_thumb-interaction-indicator-size)}.control.vertical .positioning-region{block-size:100%}.control.vertical .track{left:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:100%;inline-size:2px}.control.vertical .track .mark{position:absolute;block-size:100%;inline-size:6px;inset-block-start:0;inset-inline-start:-2px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}:host([markers]) .control.vertical .track-start{--_track-start-inset-block-start: 1px;border-radius:0}.control.disabled{--_track-background-color: var(--vvd-color-neutral-100);--_track-start-background-color: var(--vvd-color-neutral-300);pointer-events:none}.control:not(.disabled){--_track-background-color: var(--vvd-color-neutral-300);--_track-start-background-color: var(--_appearance-color-fill)}.control:not(.disabled) .mark{color:var(--vvd-color-neutral-950)}.control.disabled .mark{color:var(--_track-start-background-color)}.thumb-container{position:absolute;border-radius:50%;block-size:var(--_thumb-interaction-indicator-size);cursor:inherit;inline-size:var(--_thumb-interaction-indicator-size);outline:none;touch-action:none}.thumb-container.focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;--_thumb-interaction-indicator-alpha: .05;border-radius:50%}.control.horizontal .thumb-container{transform:translate(calc(var(--_thumb-interaction-indicator-size) / 2))}.control.vertical .thumb-container{transform:translateY(calc(var(--_thumb-interaction-indicator-size) / 2))}.control:not(.disabled) .thumb-container:hover{--_thumb-interaction-indicator-alpha: .12}.control:not(.disabled) .thumb-container:active{--_thumb-interaction-indicator-alpha: .25}.thumb-container:before{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-interaction-indicator-size);content:\"\";inline-size:var(--_thumb-interaction-indicator-size);opacity:var(--_thumb-interaction-indicator-alpha, 0);transition:opacity .2s ease-out 0s}.thumb-container:after{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-size);content:\"\";inline-size:var(--_thumb-size);inset:calc((var(--_thumb-interaction-indicator-size) - var(--_thumb-size)) / 2)}.popup{pointer-events:none}.tooltip{width:auto;padding:8px 12px;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold)}.control{--_track-start-inset-inline-start: auto;--_track-start-inset-block-start: auto}:host([markers]) .control.horizontal .track-start,:host([markers]) .control.vertical .track-start{--_track-start-inset-inline-start: auto;--_track-start-inset-block-start: auto}";
17
+ const styles = ":host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary: var(--vvd-slider-cta-primary, var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary: var(--vvd-slider-accent-primary, var(--vvd-color-canvas-text))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control{--_thumb-size: 12px;--_thumb-interaction-indicator-size: 36px;--_track-start-inset-inline-start: 0;--_track-start-inset-block-start: 0;cursor:pointer;outline:none;user-select:none}.control .positioning-region{position:relative}.control .track{position:absolute;border-radius:4px;background:var(--_track-background-color)}.control .track-start{position:absolute;border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));margin-inline-start:calc(var(--_thumb-size) / 2);min-inline-size:var(--_thumb-size)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);right:0;left:0;block-size:2px}:host([markers]) .control.horizontal .track-start{--_track-start-inset-inline-start: 1px;border-bottom-left-radius:0;border-top-left-radius:0}.control.horizontal .track .mark{position:absolute;block-size:6px;inline-size:100%;inset-block-start:-2px;inset-inline-start:0}.control.vertical{margin-top:calc(var(--_thumb-interaction-indicator-size) / 2);block-size:calc(100% - var(--_thumb-interaction-indicator-size));inline-size:var(--_thumb-interaction-indicator-size);min-block-size:var(--_thumb-interaction-indicator-size)}.control.vertical .positioning-region{block-size:100%}.control.vertical .track{left:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:100%;inline-size:2px}.control.vertical .track .mark{position:absolute;block-size:100%;inline-size:6px;inset-block-start:0;inset-inline-start:-2px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}:host([markers]) .control.vertical .track-start{--_track-start-inset-block-start: 1px;border-radius:0}.control.disabled{--_track-background-color: var(--vvd-color-neutral-100);--_track-start-background-color: var(--vvd-color-neutral-300);pointer-events:none}.control:not(.disabled){--_track-background-color: var(--vvd-color-neutral-300);--_track-start-background-color: var(--_appearance-color-fill)}.control:not(.disabled) .mark{color:var(--vvd-color-neutral-950)}.control.disabled .mark{color:var(--_track-start-background-color)}.thumb-container{position:absolute;border-radius:50%;block-size:var(--_thumb-interaction-indicator-size);cursor:inherit;inline-size:var(--_thumb-interaction-indicator-size);outline:none;touch-action:none}.thumb-container.focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;--_thumb-interaction-indicator-alpha: .05;border-radius:50%}.control.horizontal .thumb-container{transform:translate(calc(var(--_thumb-interaction-indicator-size) / 2))}.control.vertical .thumb-container{transform:translateY(calc(var(--_thumb-interaction-indicator-size) / 2))}.control:not(.disabled) .thumb-container:hover{--_thumb-interaction-indicator-alpha: .12}.control:not(.disabled) .thumb-container:active{--_thumb-interaction-indicator-alpha: .25}.thumb-container:before{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-interaction-indicator-size);content:\"\";inline-size:var(--_thumb-interaction-indicator-size);opacity:var(--_thumb-interaction-indicator-alpha, 0);transition:opacity .2s ease-out 0s}.thumb-container:after{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-size);content:\"\";inline-size:var(--_thumb-size);inset:calc((var(--_thumb-interaction-indicator-size) - var(--_thumb-size)) / 2)}.popup{pointer-events:none}.tooltip{width:auto;padding:8px 12px;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold)}:host([internal-part]) .thumb-container{opacity:0;transition:opacity .2s ease}:host([internal-part]) .control.horizontal .track{top:16px;block-size:4px;overflow:hidden}:host([internal-part]) .control:hover .thumb-container,:host([internal-part]) .control:focus .thumb-container{opacity:1}.control{--_track-start-inset-inline-start: auto;--_track-start-inset-block-start: auto}:host([markers]) .control.horizontal .track-start,:host([markers]) .control.vertical .track-start{--_track-start-inset-inline-start: auto;--_track-start-inset-block-start: auto}";
18
18
 
19
19
  class _RangeSlider extends vividElement.VividElement {
20
20
  }
@@ -12,7 +12,7 @@ import { r as ref } from './ref.js';
12
12
  import { w as when } from './when.js';
13
13
  import { c as classNames } from './class-names.js';
14
14
 
15
- const styles = ":host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary: var(--vvd-slider-cta-primary, var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary: var(--vvd-slider-accent-primary, var(--vvd-color-canvas-text))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control{--_thumb-size: 12px;--_thumb-interaction-indicator-size: 36px;--_track-start-inset-inline-start: 0;--_track-start-inset-block-start: 0;cursor:pointer;outline:none;user-select:none}.control .positioning-region{position:relative}.control .track{position:absolute;border-radius:4px;background:var(--_track-background-color)}.control .track-start{position:absolute;border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));margin-inline-start:calc(var(--_thumb-size) / 2);min-inline-size:var(--_thumb-size)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);right:0;left:0;block-size:2px}:host([markers]) .control.horizontal .track-start{--_track-start-inset-inline-start: 1px;border-bottom-left-radius:0;border-top-left-radius:0}.control.horizontal .track .mark{position:absolute;block-size:6px;inline-size:100%;inset-block-start:-2px;inset-inline-start:0}.control.vertical{margin-top:calc(var(--_thumb-interaction-indicator-size) / 2);block-size:calc(100% - var(--_thumb-interaction-indicator-size));inline-size:var(--_thumb-interaction-indicator-size);min-block-size:var(--_thumb-interaction-indicator-size)}.control.vertical .positioning-region{block-size:100%}.control.vertical .track{left:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:100%;inline-size:2px}.control.vertical .track .mark{position:absolute;block-size:100%;inline-size:6px;inset-block-start:0;inset-inline-start:-2px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}:host([markers]) .control.vertical .track-start{--_track-start-inset-block-start: 1px;border-radius:0}.control.disabled{--_track-background-color: var(--vvd-color-neutral-100);--_track-start-background-color: var(--vvd-color-neutral-300);pointer-events:none}.control:not(.disabled){--_track-background-color: var(--vvd-color-neutral-300);--_track-start-background-color: var(--_appearance-color-fill)}.control:not(.disabled) .mark{color:var(--vvd-color-neutral-950)}.control.disabled .mark{color:var(--_track-start-background-color)}.thumb-container{position:absolute;border-radius:50%;block-size:var(--_thumb-interaction-indicator-size);cursor:inherit;inline-size:var(--_thumb-interaction-indicator-size);outline:none;touch-action:none}.thumb-container.focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;--_thumb-interaction-indicator-alpha: .05;border-radius:50%}.control.horizontal .thumb-container{transform:translate(calc(var(--_thumb-interaction-indicator-size) / 2))}.control.vertical .thumb-container{transform:translateY(calc(var(--_thumb-interaction-indicator-size) / 2))}.control:not(.disabled) .thumb-container:hover{--_thumb-interaction-indicator-alpha: .12}.control:not(.disabled) .thumb-container:active{--_thumb-interaction-indicator-alpha: .25}.thumb-container:before{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-interaction-indicator-size);content:\"\";inline-size:var(--_thumb-interaction-indicator-size);opacity:var(--_thumb-interaction-indicator-alpha, 0);transition:opacity .2s ease-out 0s}.thumb-container:after{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-size);content:\"\";inline-size:var(--_thumb-size);inset:calc((var(--_thumb-interaction-indicator-size) - var(--_thumb-size)) / 2)}.popup{pointer-events:none}.tooltip{width:auto;padding:8px 12px;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold)}.control{--_track-start-inset-inline-start: auto;--_track-start-inset-block-start: auto}:host([markers]) .control.horizontal .track-start,:host([markers]) .control.vertical .track-start{--_track-start-inset-inline-start: auto;--_track-start-inset-block-start: auto}";
15
+ const styles = ":host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary: var(--vvd-slider-cta-primary, var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary: var(--vvd-slider-accent-primary, var(--vvd-color-canvas-text))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control{--_thumb-size: 12px;--_thumb-interaction-indicator-size: 36px;--_track-start-inset-inline-start: 0;--_track-start-inset-block-start: 0;cursor:pointer;outline:none;user-select:none}.control .positioning-region{position:relative}.control .track{position:absolute;border-radius:4px;background:var(--_track-background-color)}.control .track-start{position:absolute;border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));margin-inline-start:calc(var(--_thumb-size) / 2);min-inline-size:var(--_thumb-size)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);right:0;left:0;block-size:2px}:host([markers]) .control.horizontal .track-start{--_track-start-inset-inline-start: 1px;border-bottom-left-radius:0;border-top-left-radius:0}.control.horizontal .track .mark{position:absolute;block-size:6px;inline-size:100%;inset-block-start:-2px;inset-inline-start:0}.control.vertical{margin-top:calc(var(--_thumb-interaction-indicator-size) / 2);block-size:calc(100% - var(--_thumb-interaction-indicator-size));inline-size:var(--_thumb-interaction-indicator-size);min-block-size:var(--_thumb-interaction-indicator-size)}.control.vertical .positioning-region{block-size:100%}.control.vertical .track{left:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:100%;inline-size:2px}.control.vertical .track .mark{position:absolute;block-size:100%;inline-size:6px;inset-block-start:0;inset-inline-start:-2px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}:host([markers]) .control.vertical .track-start{--_track-start-inset-block-start: 1px;border-radius:0}.control.disabled{--_track-background-color: var(--vvd-color-neutral-100);--_track-start-background-color: var(--vvd-color-neutral-300);pointer-events:none}.control:not(.disabled){--_track-background-color: var(--vvd-color-neutral-300);--_track-start-background-color: var(--_appearance-color-fill)}.control:not(.disabled) .mark{color:var(--vvd-color-neutral-950)}.control.disabled .mark{color:var(--_track-start-background-color)}.thumb-container{position:absolute;border-radius:50%;block-size:var(--_thumb-interaction-indicator-size);cursor:inherit;inline-size:var(--_thumb-interaction-indicator-size);outline:none;touch-action:none}.thumb-container.focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;--_thumb-interaction-indicator-alpha: .05;border-radius:50%}.control.horizontal .thumb-container{transform:translate(calc(var(--_thumb-interaction-indicator-size) / 2))}.control.vertical .thumb-container{transform:translateY(calc(var(--_thumb-interaction-indicator-size) / 2))}.control:not(.disabled) .thumb-container:hover{--_thumb-interaction-indicator-alpha: .12}.control:not(.disabled) .thumb-container:active{--_thumb-interaction-indicator-alpha: .25}.thumb-container:before{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-interaction-indicator-size);content:\"\";inline-size:var(--_thumb-interaction-indicator-size);opacity:var(--_thumb-interaction-indicator-alpha, 0);transition:opacity .2s ease-out 0s}.thumb-container:after{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-size);content:\"\";inline-size:var(--_thumb-size);inset:calc((var(--_thumb-interaction-indicator-size) - var(--_thumb-size)) / 2)}.popup{pointer-events:none}.tooltip{width:auto;padding:8px 12px;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold)}:host([internal-part]) .thumb-container{opacity:0;transition:opacity .2s ease}:host([internal-part]) .control.horizontal .track{top:16px;block-size:4px;overflow:hidden}:host([internal-part]) .control:hover .thumb-container,:host([internal-part]) .control:focus .thumb-container{opacity:1}.control{--_track-start-inset-inline-start: auto;--_track-start-inset-block-start: auto}:host([markers]) .control.horizontal .track-start,:host([markers]) .control.vertical .track-start{--_track-start-inset-inline-start: auto;--_track-start-inset-block-start: auto}";
16
16
 
17
17
  class _RangeSlider extends VividElement {
18
18
  }
@@ -10,9 +10,8 @@ const formAssociated = require('./form-associated.cjs');
10
10
  const affix = require('./affix.cjs');
11
11
  const localized = require('./localized.cjs');
12
12
  const formElements = require('./form-elements.cjs');
13
- const listbox = require('./listbox2.cjs');
13
+ const listbox = require('./listbox.cjs');
14
14
  const applyMixins = require('./apply-mixins.cjs');
15
- const keyCodes = require('./key-codes2.cjs');
16
15
  const when = require('./when.cjs');
17
16
  const ref = require('./ref.cjs');
18
17
  const slotted = require('./slotted.cjs');
@@ -831,7 +830,7 @@ var __decorateClass = (decorators, target, key, kind) => {
831
830
  if (result) __defProp(target, key, result);
832
831
  return result;
833
832
  };
834
- class OptionTag extends keyCodes.FoundationElement {
833
+ class OptionTag extends vividElement.VividElement {
835
834
  constructor() {
836
835
  super(...arguments);
837
836
  this.removable = false;
@@ -5,12 +5,11 @@ import { V as VividElement, O as Observable, D as DOM, a as attr, n as nullableN
5
5
  import { a as applyMixinsWithObservables } from './applyMixinsWithObservables.js';
6
6
  import { s as scrollIntoView } from './scrollIntoView.js';
7
7
  import { F as FormAssociated } from './form-associated.js';
8
- import { b as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
8
+ import { A as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
9
9
  import { L as Localized } from './localized.js';
10
10
  import { F as FormElementSuccessText, a as FormElementHelperText, e as errorText, f as formElements, g as getFeedbackTemplate } from './form-elements.js';
11
- import { a as Listbox } from './listbox2.js';
11
+ import { L as Listbox } from './listbox.js';
12
12
  import { a as applyMixins } from './apply-mixins.js';
13
- import { F as FoundationElement } from './key-codes2.js';
14
13
  import { w as when } from './when.js';
15
14
  import { r as ref } from './ref.js';
16
15
  import { s as slotted } from './slotted.js';
@@ -829,7 +828,7 @@ var __decorateClass = (decorators, target, key, kind) => {
829
828
  if (result) __defProp(target, key, result);
830
829
  return result;
831
830
  };
832
- class OptionTag extends FoundationElement {
831
+ class OptionTag extends VividElement {
833
832
  constructor() {
834
833
  super(...arguments);
835
834
  this.removable = false;
@@ -1,19 +1,19 @@
1
1
  'use strict';
2
2
 
3
3
  const definition = require('./definition63.cjs');
4
- const definition$3 = require('./definition27.cjs');
5
- const definition$1 = require('./definition35.cjs');
4
+ const definition$2 = require('./definition27.cjs');
5
+ const definition$3 = require('./definition35.cjs');
6
6
  const vividElement = require('./vivid-element.cjs');
7
- const listbox$1 = require('./listbox2.cjs');
8
7
  const applyMixinsWithObservables = require('./applyMixinsWithObservables.cjs');
9
8
  const listbox = require('./listbox.cjs');
10
- const formAssociated = require('./form-associated2.cjs');
9
+ const formAssociated = require('./form-associated.cjs');
11
10
  const numbers = require('./numbers.cjs');
12
11
  const strings = require('./strings.cjs');
13
12
  const keyCodes = require('./key-codes.cjs');
14
13
  const formElements = require('./form-elements.cjs');
15
14
  const affix = require('./affix.cjs');
16
- const definition$2 = require('./definition11.cjs');
15
+ const option = require('./option.cjs');
16
+ const definition$1 = require('./definition11.cjs');
17
17
  const index = require('./index.cjs');
18
18
  const ref = require('./ref.cjs');
19
19
  const when = require('./when.cjs');
@@ -666,7 +666,7 @@ let Select = class extends FormAssociatedSelect {
666
666
  }
667
667
  setDefaultSelectedOption() {
668
668
  const options = Array.from(this.children).filter(
669
- listbox$1.Listbox.slottedOptionFilter
669
+ listbox.Listbox.slottedOptionFilter
670
670
  );
671
671
  const selectedIndex = options.findIndex(
672
672
  (el) => el.hasAttribute("selected") || el.selected || el.value === this.value
@@ -797,7 +797,6 @@ const getStateClasses = ({
797
797
  ["has-meta", Boolean(metaSlottedContent?.length)],
798
798
  ["error", Boolean(errorValidationMessage)],
799
799
  ["success", !!successText],
800
- ["has-meta", Boolean(metaSlottedContent?.length)],
801
800
  ["shows-placeholder", Boolean(placeholder) && !value],
802
801
  [`size-${scale}`, Boolean(scale)]
803
802
  );
@@ -807,7 +806,7 @@ function renderLabel() {
807
806
  </label>`;
808
807
  }
809
808
  function renderPlaceholder(context) {
810
- const optionTag = context.tagFor(definition$1.ListboxOption);
809
+ const optionTag = context.tagFor(option.ListboxOption);
811
810
  return vividElement.html`
812
811
  <${optionTag} ${ref.ref("placeholderOption")}
813
812
  text="${(x) => x.placeholder}" hidden disabled>
@@ -815,7 +814,7 @@ function renderPlaceholder(context) {
815
814
  }
816
815
  function selectValue(context) {
817
816
  const affixIconTemplate = affix.affixIconTemplateFactory(context);
818
- const chevronTemplate = definition$2.chevronTemplateFactory(context);
817
+ const chevronTemplate = definition$1.chevronTemplateFactory(context);
819
818
  return vividElement.html` <div
820
819
  class="control ${getStateClasses}"
821
820
  ${ref.ref("_anchor")}
@@ -854,7 +853,7 @@ function renderControl(context) {
854
853
  ${when.when((x) => x.placeholder, renderPlaceholder(context))}
855
854
  <slot
856
855
  ${slotted.slotted({
857
- filter: listbox$1.Listbox.slottedOptionFilter,
856
+ filter: listbox.Listbox.slottedOptionFilter,
858
857
  flatten: true,
859
858
  property: "slottedOptions"
860
859
  })}>
@@ -910,7 +909,7 @@ const selectDefinition = vividElement.defineVividComponent(
910
909
  "select",
911
910
  Select,
912
911
  SelectTemplate,
913
- [definition.popupDefinition, definition$3.iconDefinition, definition$1.listboxOptionDefinition],
912
+ [definition.popupDefinition, definition$2.iconDefinition, definition$3.listboxOptionDefinition],
914
913
  {
915
914
  styles
916
915
  }
@@ -1,16 +1,16 @@
1
1
  import { P as Popup, p as popupDefinition } from './definition63.js';
2
2
  import { i as iconDefinition } from './definition27.js';
3
- import { L as ListboxOption, l as listboxOptionDefinition } from './definition35.js';
3
+ import { l as listboxOptionDefinition } from './definition35.js';
4
4
  import { D as DOM, O as Observable, o as observable, a as attr, v as volatile, h as html, d as defineVividComponent, f as createRegisterFunction } from './vivid-element.js';
5
- import { a as Listbox$1 } from './listbox2.js';
6
5
  import { a as applyMixinsWithObservables } from './applyMixinsWithObservables.js';
7
6
  import { L as Listbox } from './listbox.js';
8
- import { F as FormAssociated } from './form-associated2.js';
7
+ import { F as FormAssociated } from './form-associated.js';
9
8
  import { i as inRange } from './numbers.js';
10
9
  import { u as uniqueId } from './strings.js';
11
10
  import { a as keySpace, b as keyEscape, c as keyTab, d as keyEnd, e as keyArrowUp, f as keyArrowDown, g as keyHome, k as keyEnter } from './key-codes.js';
12
11
  import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, g as getFeedbackTemplate } from './form-elements.js';
13
- import { b as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
12
+ import { A as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
13
+ import { L as ListboxOption } from './option.js';
14
14
  import { c as chevronTemplateFactory } from './definition11.js';
15
15
  import { h as handleEscapeKeyAndStopPropogation } from './index.js';
16
16
  import { r as ref } from './ref.js';
@@ -664,7 +664,7 @@ let Select = class extends FormAssociatedSelect {
664
664
  }
665
665
  setDefaultSelectedOption() {
666
666
  const options = Array.from(this.children).filter(
667
- Listbox$1.slottedOptionFilter
667
+ Listbox.slottedOptionFilter
668
668
  );
669
669
  const selectedIndex = options.findIndex(
670
670
  (el) => el.hasAttribute("selected") || el.selected || el.value === this.value
@@ -795,7 +795,6 @@ const getStateClasses = ({
795
795
  ["has-meta", Boolean(metaSlottedContent?.length)],
796
796
  ["error", Boolean(errorValidationMessage)],
797
797
  ["success", !!successText],
798
- ["has-meta", Boolean(metaSlottedContent?.length)],
799
798
  ["shows-placeholder", Boolean(placeholder) && !value],
800
799
  [`size-${scale}`, Boolean(scale)]
801
800
  );
@@ -852,7 +851,7 @@ function renderControl(context) {
852
851
  ${when((x) => x.placeholder, renderPlaceholder(context))}
853
852
  <slot
854
853
  ${slotted({
855
- filter: Listbox$1.slottedOptionFilter,
854
+ filter: Listbox.slottedOptionFilter,
856
855
  flatten: true,
857
856
  property: "slottedOptions"
858
857
  })}>
@@ -3,15 +3,15 @@
3
3
  const definition = require('./definition63.cjs');
4
4
  const vividElement = require('./vivid-element.cjs');
5
5
  const keyCodes = require('./key-codes.cjs');
6
+ const direction = require('./direction.cjs');
6
7
  const applyMixins = require('./apply-mixins.cjs');
7
8
  const slider_template = require('./slider.template.cjs');
8
9
  const formAssociated = require('./form-associated.cjs');
9
- const direction = require('./direction.cjs');
10
10
  const aria = require('./aria.cjs');
11
11
  const numbers = require('./numbers.cjs');
12
12
  const localized = require('./localized.cjs');
13
13
 
14
- const styles = ":host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary: var(--vvd-slider-cta-primary, var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary: var(--vvd-slider-accent-primary, var(--vvd-color-canvas-text))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control{--_thumb-size: 12px;--_thumb-interaction-indicator-size: 36px;--_track-start-inset-inline-start: 0;--_track-start-inset-block-start: 0;cursor:pointer;outline:none;user-select:none}.control .positioning-region{position:relative}.control .track{position:absolute;border-radius:4px;background:var(--_track-background-color)}.control .track-start{position:absolute;border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));margin-inline-start:calc(var(--_thumb-size) / 2);min-inline-size:var(--_thumb-size)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);right:0;left:0;block-size:2px}:host([markers]) .control.horizontal .track-start{--_track-start-inset-inline-start: 1px;border-bottom-left-radius:0;border-top-left-radius:0}.control.horizontal .track .mark{position:absolute;block-size:6px;inline-size:100%;inset-block-start:-2px;inset-inline-start:0}.control.vertical{margin-top:calc(var(--_thumb-interaction-indicator-size) / 2);block-size:calc(100% - var(--_thumb-interaction-indicator-size));inline-size:var(--_thumb-interaction-indicator-size);min-block-size:var(--_thumb-interaction-indicator-size)}.control.vertical .positioning-region{block-size:100%}.control.vertical .track{left:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:100%;inline-size:2px}.control.vertical .track .mark{position:absolute;block-size:100%;inline-size:6px;inset-block-start:0;inset-inline-start:-2px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}:host([markers]) .control.vertical .track-start{--_track-start-inset-block-start: 1px;border-radius:0}.control.disabled{--_track-background-color: var(--vvd-color-neutral-100);--_track-start-background-color: var(--vvd-color-neutral-300);pointer-events:none}.control:not(.disabled){--_track-background-color: var(--vvd-color-neutral-300);--_track-start-background-color: var(--_appearance-color-fill)}.control:not(.disabled) .mark{color:var(--vvd-color-neutral-950)}.control.disabled .mark{color:var(--_track-start-background-color)}.thumb-container{position:absolute;border-radius:50%;block-size:var(--_thumb-interaction-indicator-size);cursor:inherit;inline-size:var(--_thumb-interaction-indicator-size);outline:none;touch-action:none}.thumb-container.focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;--_thumb-interaction-indicator-alpha: .05;border-radius:50%}.control.horizontal .thumb-container{transform:translate(calc(var(--_thumb-interaction-indicator-size) / 2))}.control.vertical .thumb-container{transform:translateY(calc(var(--_thumb-interaction-indicator-size) / 2))}.control:not(.disabled) .thumb-container:hover{--_thumb-interaction-indicator-alpha: .12}.control:not(.disabled) .thumb-container:active{--_thumb-interaction-indicator-alpha: .25}.thumb-container:before{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-interaction-indicator-size);content:\"\";inline-size:var(--_thumb-interaction-indicator-size);opacity:var(--_thumb-interaction-indicator-alpha, 0);transition:opacity .2s ease-out 0s}.thumb-container:after{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-size);content:\"\";inline-size:var(--_thumb-size);inset:calc((var(--_thumb-interaction-indicator-size) - var(--_thumb-size)) / 2)}.popup{pointer-events:none}.tooltip{width:auto;padding:8px 12px;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold)}";
14
+ const styles = ":host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary: var(--vvd-slider-cta-primary, var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary: var(--vvd-slider-accent-primary, var(--vvd-color-canvas-text))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control{--_thumb-size: 12px;--_thumb-interaction-indicator-size: 36px;--_track-start-inset-inline-start: 0;--_track-start-inset-block-start: 0;cursor:pointer;outline:none;user-select:none}.control .positioning-region{position:relative}.control .track{position:absolute;border-radius:4px;background:var(--_track-background-color)}.control .track-start{position:absolute;border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));margin-inline-start:calc(var(--_thumb-size) / 2);min-inline-size:var(--_thumb-size)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);right:0;left:0;block-size:2px}:host([markers]) .control.horizontal .track-start{--_track-start-inset-inline-start: 1px;border-bottom-left-radius:0;border-top-left-radius:0}.control.horizontal .track .mark{position:absolute;block-size:6px;inline-size:100%;inset-block-start:-2px;inset-inline-start:0}.control.vertical{margin-top:calc(var(--_thumb-interaction-indicator-size) / 2);block-size:calc(100% - var(--_thumb-interaction-indicator-size));inline-size:var(--_thumb-interaction-indicator-size);min-block-size:var(--_thumb-interaction-indicator-size)}.control.vertical .positioning-region{block-size:100%}.control.vertical .track{left:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:100%;inline-size:2px}.control.vertical .track .mark{position:absolute;block-size:100%;inline-size:6px;inset-block-start:0;inset-inline-start:-2px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}:host([markers]) .control.vertical .track-start{--_track-start-inset-block-start: 1px;border-radius:0}.control.disabled{--_track-background-color: var(--vvd-color-neutral-100);--_track-start-background-color: var(--vvd-color-neutral-300);pointer-events:none}.control:not(.disabled){--_track-background-color: var(--vvd-color-neutral-300);--_track-start-background-color: var(--_appearance-color-fill)}.control:not(.disabled) .mark{color:var(--vvd-color-neutral-950)}.control.disabled .mark{color:var(--_track-start-background-color)}.thumb-container{position:absolute;border-radius:50%;block-size:var(--_thumb-interaction-indicator-size);cursor:inherit;inline-size:var(--_thumb-interaction-indicator-size);outline:none;touch-action:none}.thumb-container.focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;--_thumb-interaction-indicator-alpha: .05;border-radius:50%}.control.horizontal .thumb-container{transform:translate(calc(var(--_thumb-interaction-indicator-size) / 2))}.control.vertical .thumb-container{transform:translateY(calc(var(--_thumb-interaction-indicator-size) / 2))}.control:not(.disabled) .thumb-container:hover{--_thumb-interaction-indicator-alpha: .12}.control:not(.disabled) .thumb-container:active{--_thumb-interaction-indicator-alpha: .25}.thumb-container:before{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-interaction-indicator-size);content:\"\";inline-size:var(--_thumb-interaction-indicator-size);opacity:var(--_thumb-interaction-indicator-alpha, 0);transition:opacity .2s ease-out 0s}.thumb-container:after{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-size);content:\"\";inline-size:var(--_thumb-size);inset:calc((var(--_thumb-interaction-indicator-size) - var(--_thumb-size)) / 2)}.popup{pointer-events:none}.tooltip{width:auto;padding:8px 12px;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold)}:host([internal-part]) .thumb-container{opacity:0;transition:opacity .2s ease}:host([internal-part]) .control.horizontal .track{top:16px;block-size:4px;overflow:hidden}:host([internal-part]) .control:hover .thumb-container,:host([internal-part]) .control:focus .thumb-container{opacity:1}";
15
15
 
16
16
  class _Slider extends vividElement.VividElement {
17
17
  }
@@ -1,15 +1,15 @@
1
1
  import { p as popupDefinition } from './definition63.js';
2
- import { V as VividElement, a as attr, o as observable, n as nullableNumberConverter, v as volatile, d as defineVividComponent, f as createRegisterFunction } from './vivid-element.js';
2
+ import { V as VividElement, a as attr, o as observable, v as volatile, n as nullableNumberConverter, d as defineVividComponent, f as createRegisterFunction } from './vivid-element.js';
3
3
  import { g as keyHome, d as keyEnd, f as keyArrowDown, h as keyArrowLeft, e as keyArrowUp, i as keyArrowRight } from './key-codes.js';
4
+ import { D as Direction, g as getDirection } from './direction.js';
4
5
  import { a as applyMixins } from './apply-mixins.js';
5
6
  import { i as inverseLerp, l as lerp, r as roundToStepValue, S as SliderTemplate } from './slider.template.js';
6
7
  import { F as FormAssociated } from './form-associated.js';
7
- import { D as Direction, g as getDirection } from './direction.js';
8
8
  import { O as Orientation } from './aria.js';
9
9
  import { l as limit } from './numbers.js';
10
10
  import { L as Localized } from './localized.js';
11
11
 
12
- const styles = ":host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary: var(--vvd-slider-cta-primary, var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary: var(--vvd-slider-accent-primary, var(--vvd-color-canvas-text))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control{--_thumb-size: 12px;--_thumb-interaction-indicator-size: 36px;--_track-start-inset-inline-start: 0;--_track-start-inset-block-start: 0;cursor:pointer;outline:none;user-select:none}.control .positioning-region{position:relative}.control .track{position:absolute;border-radius:4px;background:var(--_track-background-color)}.control .track-start{position:absolute;border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));margin-inline-start:calc(var(--_thumb-size) / 2);min-inline-size:var(--_thumb-size)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);right:0;left:0;block-size:2px}:host([markers]) .control.horizontal .track-start{--_track-start-inset-inline-start: 1px;border-bottom-left-radius:0;border-top-left-radius:0}.control.horizontal .track .mark{position:absolute;block-size:6px;inline-size:100%;inset-block-start:-2px;inset-inline-start:0}.control.vertical{margin-top:calc(var(--_thumb-interaction-indicator-size) / 2);block-size:calc(100% - var(--_thumb-interaction-indicator-size));inline-size:var(--_thumb-interaction-indicator-size);min-block-size:var(--_thumb-interaction-indicator-size)}.control.vertical .positioning-region{block-size:100%}.control.vertical .track{left:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:100%;inline-size:2px}.control.vertical .track .mark{position:absolute;block-size:100%;inline-size:6px;inset-block-start:0;inset-inline-start:-2px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}:host([markers]) .control.vertical .track-start{--_track-start-inset-block-start: 1px;border-radius:0}.control.disabled{--_track-background-color: var(--vvd-color-neutral-100);--_track-start-background-color: var(--vvd-color-neutral-300);pointer-events:none}.control:not(.disabled){--_track-background-color: var(--vvd-color-neutral-300);--_track-start-background-color: var(--_appearance-color-fill)}.control:not(.disabled) .mark{color:var(--vvd-color-neutral-950)}.control.disabled .mark{color:var(--_track-start-background-color)}.thumb-container{position:absolute;border-radius:50%;block-size:var(--_thumb-interaction-indicator-size);cursor:inherit;inline-size:var(--_thumb-interaction-indicator-size);outline:none;touch-action:none}.thumb-container.focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;--_thumb-interaction-indicator-alpha: .05;border-radius:50%}.control.horizontal .thumb-container{transform:translate(calc(var(--_thumb-interaction-indicator-size) / 2))}.control.vertical .thumb-container{transform:translateY(calc(var(--_thumb-interaction-indicator-size) / 2))}.control:not(.disabled) .thumb-container:hover{--_thumb-interaction-indicator-alpha: .12}.control:not(.disabled) .thumb-container:active{--_thumb-interaction-indicator-alpha: .25}.thumb-container:before{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-interaction-indicator-size);content:\"\";inline-size:var(--_thumb-interaction-indicator-size);opacity:var(--_thumb-interaction-indicator-alpha, 0);transition:opacity .2s ease-out 0s}.thumb-container:after{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-size);content:\"\";inline-size:var(--_thumb-size);inset:calc((var(--_thumb-interaction-indicator-size) - var(--_thumb-size)) / 2)}.popup{pointer-events:none}.tooltip{width:auto;padding:8px 12px;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold)}";
12
+ const styles = ":host{display:inline-block}:host(:not([orientation=vertical])){inline-size:100%}:host([orientation=vertical]){block-size:100%;min-block-size:calc(var(--_thumb-interaction-indicator-size) * 5)}:host([disabled]){cursor:not-allowed}.control.connotation-cta{--_connotation-color-primary: var(--vvd-slider-cta-primary, var(--vvd-color-cta-500))}.control:not(.connotation-cta){--_connotation-color-primary: var(--vvd-slider-accent-primary, var(--vvd-color-canvas-text))}.control{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.control{--_thumb-size: 12px;--_thumb-interaction-indicator-size: 36px;--_track-start-inset-inline-start: 0;--_track-start-inset-block-start: 0;cursor:pointer;outline:none;user-select:none}.control .positioning-region{position:relative}.control .track{position:absolute;border-radius:4px;background:var(--_track-background-color)}.control .track-start{position:absolute;border-radius:inherit;background:var(--_track-start-background-color);block-size:100%;inset-inline-start:var(--_track-start-inset-inline-start)}.control.horizontal{block-size:var(--_thumb-interaction-indicator-size);inline-size:calc(100% - var(--_thumb-size));margin-inline-start:calc(var(--_thumb-size) / 2);min-inline-size:var(--_thumb-size)}.control.horizontal .track{top:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);right:0;left:0;block-size:2px}:host([markers]) .control.horizontal .track-start{--_track-start-inset-inline-start: 1px;border-bottom-left-radius:0;border-top-left-radius:0}.control.horizontal .track .mark{position:absolute;block-size:6px;inline-size:100%;inset-block-start:-2px;inset-inline-start:0}.control.vertical{margin-top:calc(var(--_thumb-interaction-indicator-size) / 2);block-size:calc(100% - var(--_thumb-interaction-indicator-size));inline-size:var(--_thumb-interaction-indicator-size);min-block-size:var(--_thumb-interaction-indicator-size)}.control.vertical .positioning-region{block-size:100%}.control.vertical .track{left:calc((var(--_thumb-interaction-indicator-size) - 2px) / 2);block-size:100%;inline-size:2px}.control.vertical .track .mark{position:absolute;block-size:100%;inline-size:6px;inset-block-start:0;inset-inline-start:-2px}.control.vertical .track-start{block-size:auto;inline-size:100%;inset-block-start:var(--_track-start-inset-block-start)}:host([markers]) .control.vertical .track-start{--_track-start-inset-block-start: 1px;border-radius:0}.control.disabled{--_track-background-color: var(--vvd-color-neutral-100);--_track-start-background-color: var(--vvd-color-neutral-300);pointer-events:none}.control:not(.disabled){--_track-background-color: var(--vvd-color-neutral-300);--_track-start-background-color: var(--_appearance-color-fill)}.control:not(.disabled) .mark{color:var(--vvd-color-neutral-950)}.control.disabled .mark{color:var(--_track-start-background-color)}.thumb-container{position:absolute;border-radius:50%;block-size:var(--_thumb-interaction-indicator-size);cursor:inherit;inline-size:var(--_thumb-interaction-indicator-size);outline:none;touch-action:none}.thumb-container.focus-visible{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;--_thumb-interaction-indicator-alpha: .05;border-radius:50%}.control.horizontal .thumb-container{transform:translate(calc(var(--_thumb-interaction-indicator-size) / 2))}.control.vertical .thumb-container{transform:translateY(calc(var(--_thumb-interaction-indicator-size) / 2))}.control:not(.disabled) .thumb-container:hover{--_thumb-interaction-indicator-alpha: .12}.control:not(.disabled) .thumb-container:active{--_thumb-interaction-indicator-alpha: .25}.thumb-container:before{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-interaction-indicator-size);content:\"\";inline-size:var(--_thumb-interaction-indicator-size);opacity:var(--_thumb-interaction-indicator-alpha, 0);transition:opacity .2s ease-out 0s}.thumb-container:after{position:absolute;display:block;border-radius:inherit;background-color:var(--_track-start-background-color);block-size:var(--_thumb-size);content:\"\";inline-size:var(--_thumb-size);inset:calc((var(--_thumb-interaction-indicator-size) - var(--_thumb-size)) / 2)}.popup{pointer-events:none}.tooltip{width:auto;padding:8px 12px;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold)}:host([internal-part]) .thumb-container{opacity:0;transition:opacity .2s ease}:host([internal-part]) .control.horizontal .track{top:16px;block-size:4px;overflow:hidden}:host([internal-part]) .control:hover .thumb-container,:host([internal-part]) .control:focus .thumb-container{opacity:1}";
13
13
 
14
14
  class _Slider extends VividElement {
15
15
  }
@@ -1,7 +1,7 @@
1
1
  import { i as iconDefinition } from './definition27.js';
2
2
  import { V as VividElement, a as attr, h as html, d as defineVividComponent, f as createRegisterFunction } from './vivid-element.js';
3
3
  import { a as applyMixins } from './apply-mixins.js';
4
- import { A as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
4
+ import { b as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
5
5
  import { L as Localized } from './localized.js';
6
6
  import { r as ref } from './ref.js';
7
7
  import { c as classNames } from './class-names.js';
@@ -30,6 +30,7 @@ var __decorateClass = (decorators, target, key, kind) => {
30
30
  class Switch extends FormAssociatedSwitch {
31
31
  constructor() {
32
32
  super();
33
+ this.ariaLabel = null;
33
34
  /**
34
35
  * The element's value to be included in form submission when checked.
35
36
  * Default to "on" to reach parity with input[type="checkbox"]
@@ -79,6 +80,9 @@ class Switch extends FormAssociatedSwitch {
79
80
  this.setFormValue(value, value);
80
81
  }
81
82
  }
83
+ __decorateClass([
84
+ vividElement.attr({ attribute: "aria-label" })
85
+ ], Switch.prototype, "ariaLabel");
82
86
  __decorateClass([
83
87
  vividElement.attr
84
88
  ], Switch.prototype, "label");
@@ -104,24 +108,27 @@ const getClasses = (_) => classNames.classNames(
104
108
  ]
105
109
  );
106
110
  const SwitchTemplate = vividElement.html`
107
- <div
108
- class="${getClasses}"
109
- role="switch"
110
- aria-checked="${(x) => x.checked}"
111
- aria-disabled="${(x) => x.disabled}"
112
- aria-readonly="${(x) => x.readOnly}"
113
- tabindex="${(x) => x.disabled ? null : 0}"
114
- @keypress="${(x, c) => x.keypressHandler(c.event)}"
115
- @click="${(x) => x.clickHandler()}"
116
- >
117
- <div class="switch">
118
- <span class="checked-indicator"></span>
119
- </div>
120
- ${when.when(
111
+ <template role="${(x) => x.ariaLabel ? "presentation" : null}">
112
+ <div
113
+ class="${getClasses}"
114
+ role="switch"
115
+ aria-label="${(x) => x.ariaLabel}"
116
+ aria-checked="${(x) => x.checked}"
117
+ aria-disabled="${(x) => x.disabled}"
118
+ aria-readonly="${(x) => x.readOnly}"
119
+ tabindex="${(x) => x.disabled ? null : 0}"
120
+ @keypress="${(x, c) => x.keypressHandler(c.event)}"
121
+ @click="${(x) => x.clickHandler()}"
122
+ >
123
+ <div class="switch">
124
+ <span class="checked-indicator"></span>
125
+ </div>
126
+ ${when.when(
121
127
  (x) => x.label,
122
128
  vividElement.html`<div class="label">${(x) => x.label}</div>`
123
129
  )}
124
- </div>
130
+ </div>
131
+ </template>
125
132
  `;
126
133
 
127
134
  const switchDefinition = vividElement.defineVividComponent(