@vonage/vivid 4.8.0 → 4.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 (52) hide show
  1. package/custom-elements.json +255 -3
  2. package/lib/breadcrumb/breadcrumb.d.ts +4 -1
  3. package/lib/breadcrumb-item/breadcrumb-item.d.ts +5 -3
  4. package/lib/checkbox/checkbox.d.ts +4 -0
  5. package/lib/dialog/dialog.d.ts +4 -0
  6. package/lib/divider/divider.d.ts +11 -2
  7. package/lib/icon/icon.d.ts +2 -1
  8. package/lib/text-field/text-field.d.ts +1 -0
  9. package/package.json +1 -1
  10. package/shared/breadcrumb-item.cjs +162 -20
  11. package/shared/breadcrumb-item.js +163 -21
  12. package/shared/definition10.cjs +52 -68
  13. package/shared/definition10.js +54 -70
  14. package/shared/definition11.cjs +1 -1
  15. package/shared/definition11.js +1 -1
  16. package/shared/definition15.cjs +17 -1
  17. package/shared/definition15.js +17 -1
  18. package/shared/definition20.cjs +88 -64
  19. package/shared/definition20.js +88 -64
  20. package/shared/definition21.cjs +59 -14
  21. package/shared/definition21.js +59 -14
  22. package/shared/definition22.cjs +32 -51
  23. package/shared/definition22.js +33 -52
  24. package/shared/definition29.cjs +1 -1
  25. package/shared/definition29.js +1 -1
  26. package/shared/definition30.cjs +1 -1
  27. package/shared/definition30.js +1 -1
  28. package/shared/definition46.cjs +24 -9
  29. package/shared/definition46.js +24 -9
  30. package/shared/definition5.cjs +1 -1
  31. package/shared/definition5.js +1 -1
  32. package/shared/definition56.cjs +4 -0
  33. package/shared/definition56.js +4 -0
  34. package/shared/definition9.cjs +1 -19
  35. package/shared/definition9.js +2 -20
  36. package/shared/icon.cjs +11 -5
  37. package/shared/icon.js +11 -5
  38. package/shared/patterns/anchor.d.ts +18 -0
  39. package/shared/patterns/anchored.d.ts +4 -4
  40. package/shared/patterns/aria-global.d.ts +21 -0
  41. package/shared/patterns/form-elements/form-elements.d.ts +6 -6
  42. package/shared/text-anchor.cjs +84 -2
  43. package/shared/text-anchor.js +84 -2
  44. package/styles/core/all.css +1 -1
  45. package/styles/core/theme.css +1 -1
  46. package/styles/core/typography.css +1 -1
  47. package/styles/tokens/theme-dark.css +35 -14
  48. package/styles/tokens/theme-light.css +35 -14
  49. package/styles/tokens/vivid-2-compat.css +1 -1
  50. package/vivid.api.json +10 -1
  51. package/shared/anchor.cjs +0 -90
  52. package/shared/anchor.js +0 -87
@@ -2,10 +2,10 @@ import { F as FoundationElement, a as attr, o as observable, h as html, r as reg
2
2
  import { a as iconRegistries } from './definition27.js';
3
3
  import { B as Button, a as buttonRegistries } from './definition11.js';
4
4
  import { E as Elevation, e as elevationRegistries } from './definition63.js';
5
+ import { h as handleEscapeKeyAndStopPropogation } from './index2.js';
5
6
  import { a as applyMixins } from './apply-mixins.js';
6
7
  import { L as Localized } from './localized.js';
7
8
  import { I as Icon } from './icon.js';
8
- import { h as handleEscapeKeyAndStopPropogation } from './index2.js';
9
9
  import { w as when } from './when.js';
10
10
  import { s as slotted } from './slotted.js';
11
11
  import { c as classNames } from './class-names.js';
@@ -29,15 +29,20 @@ class Dialog extends FoundationElement {
29
29
  this.ariaLabel = null;
30
30
  this.dismissButtonAriaLabel = null;
31
31
  this.noLightDismiss = false;
32
+ this.noDismissOnEsc = false;
33
+ this.noDismissButton = false;
34
+ this.nonDismissible = false;
32
35
  this.modal = false;
33
36
  this._openedAsModal = false;
34
37
  this.#handleScrimClick = (event) => {
35
- if (event.target !== this.#dialog || this.noLightDismiss) {
38
+ if (event.target !== this.#dialog || !this.#isDismissibleVia("light-dismiss")) {
36
39
  return;
37
40
  }
38
41
  const rect = this.#dialog.getBoundingClientRect();
39
42
  const clickedInDialog = rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width;
40
- this.open = clickedInDialog;
43
+ if (!clickedInDialog) {
44
+ this._handleCloseRequest();
45
+ }
41
46
  };
42
47
  this.#handleInternalFormSubmit = (event) => {
43
48
  if (event.target.method !== "dialog") {
@@ -96,8 +101,47 @@ class Dialog extends FoundationElement {
96
101
  this.$emit("open", void 0, { bubbles: false });
97
102
  }
98
103
  }
104
+ get _showDismissButton() {
105
+ return this.#isDismissibleVia("dismiss-button");
106
+ }
107
+ #isDismissibleVia(method) {
108
+ if (this.nonDismissible) {
109
+ return false;
110
+ }
111
+ switch (method) {
112
+ case "escape":
113
+ return !this.noDismissOnEsc;
114
+ case "dismiss-button":
115
+ return !this.noDismissButton;
116
+ case "light-dismiss":
117
+ return !this.noLightDismiss;
118
+ }
119
+ }
99
120
  #handleScrimClick;
100
121
  #handleInternalFormSubmit;
122
+ /**
123
+ * @internal
124
+ */
125
+ _onKeyDown(event) {
126
+ if (handleEscapeKeyAndStopPropogation(event) && this._openedAsModal) {
127
+ if (this.#isDismissibleVia("escape")) {
128
+ this._handleCloseRequest();
129
+ }
130
+ return false;
131
+ }
132
+ return true;
133
+ }
134
+ /**
135
+ * @internal
136
+ */
137
+ _handleCloseRequest() {
138
+ if (this.$emit("cancel", void 0, {
139
+ bubbles: false,
140
+ cancelable: true
141
+ })) {
142
+ this.open = false;
143
+ }
144
+ }
101
145
  close() {
102
146
  this.open = false;
103
147
  }
@@ -174,6 +218,15 @@ __decorateClass([
174
218
  __decorateClass([
175
219
  attr({ attribute: "no-light-dismiss", mode: "boolean" })
176
220
  ], Dialog.prototype, "noLightDismiss");
221
+ __decorateClass([
222
+ attr({ attribute: "no-dismiss-on-esc", mode: "boolean" })
223
+ ], Dialog.prototype, "noDismissOnEsc");
224
+ __decorateClass([
225
+ attr({ attribute: "no-dismiss-button", mode: "boolean" })
226
+ ], Dialog.prototype, "noDismissButton");
227
+ __decorateClass([
228
+ attr({ attribute: "non-dismissible", mode: "boolean" })
229
+ ], Dialog.prototype, "nonDismissible");
177
230
  __decorateClass([
178
231
  attr({ mode: "boolean" })
179
232
  ], Dialog.prototype, "modal");
@@ -225,17 +278,9 @@ function renderDismissButton(buttonTag) {
225
278
  size="condensed"
226
279
  class="dismiss-button"
227
280
  icon="close-line"
228
- @click="${(x) => x.open = false}"
281
+ @click="${(x) => x._handleCloseRequest()}"
229
282
  ></${buttonTag}>`;
230
283
  }
231
- function handleEscapeKey(dialog, event) {
232
- if (handleEscapeKeyAndStopPropogation(event) && dialog._openedAsModal) {
233
- dialog.open = false;
234
- return false;
235
- } else {
236
- return true;
237
- }
238
- }
239
284
  const DialogTemplate = (context) => {
240
285
  const elevationTag = context.tagFor(Elevation);
241
286
  const iconTag = context.tagFor(Icon);
@@ -243,7 +288,7 @@ const DialogTemplate = (context) => {
243
288
  return html`
244
289
  <${elevationTag} dp="8">
245
290
  <dialog class="${getClasses}"
246
- @keydown="${(x, c) => handleEscapeKey(x, c.event)}"
291
+ @keydown="${(x, c) => x._onKeyDown(c.event)}"
247
292
  @cancel="${(_, c) => c.event.preventDefault()}"
248
293
  aria-label="${(x) => x.ariaLabel}"
249
294
  ?aria-modal="${(x) => x._openedAsModal}"
@@ -256,7 +301,7 @@ const DialogTemplate = (context) => {
256
301
  </slot>
257
302
  ${when((x) => x.headline, headline())}
258
303
  ${when((x) => x.subtitle, subtitle())}
259
- ${renderDismissButton(buttonTag)}
304
+ ${when((x) => x._showDismissButton, renderDismissButton(buttonTag))}
260
305
  </div>
261
306
  <div class="body ${(x) => x.fullWidthBody ? "full-width" : ""}" >
262
307
  <slot name="body" ${slotted("bodySlottedContent")}></slot>
@@ -1,62 +1,43 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index.cjs');
4
- const aria = require('./aria2.cjs');
4
+ const aria = require('./aria.cjs');
5
5
  const classNames = require('./class-names.cjs');
6
6
 
7
- /**
8
- * Divider roles
9
- * @public
10
- */
11
- const DividerRole = {
12
- /**
13
- * The divider semantically separates content
14
- */
15
- separator: "separator",
16
- /**
17
- * The divider has no semantic value and is for visual presentation only.
18
- */
19
- presentation: "presentation",
20
- };
21
-
22
- /**
23
- * A Divider Custom HTML Element.
24
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#separator | ARIA separator } or {@link https://www.w3.org/TR/wai-aria-1.1/#presentation | ARIA presentation}.
25
- *
26
- * @public
27
- */
28
- let Divider$1 = class Divider extends index.FoundationElement {
29
- constructor() {
30
- super(...arguments);
31
- /**
32
- * The role of the element.
33
- *
34
- * @public
35
- * @remarks
36
- * HTML Attribute: role
37
- */
38
- this.role = DividerRole.separator;
39
- /**
40
- * The orientation of the divider.
41
- *
42
- * @public
43
- * @remarks
44
- * HTML Attribute: orientation
45
- */
46
- this.orientation = aria.Orientation.horizontal;
47
- }
48
- };
49
- index.__decorate([
50
- index.attr
51
- ], Divider$1.prototype, "role", void 0);
52
- index.__decorate([
53
- index.attr
54
- ], Divider$1.prototype, "orientation", void 0);
55
-
56
7
  const styles = ":host{display:block}.base{display:block;background-color:var(--vvd-color-neutral-200)}.base:not(.vertical){block-size:1px;inline-size:100%}.base.vertical{block-size:100%;inline-size:1px}";
57
8
 
58
- class Divider extends Divider$1 {
9
+ var __defProp = Object.defineProperty;
10
+ var __decorateClass = (decorators, target, key, kind) => {
11
+ var result = void 0 ;
12
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
13
+ if (decorator = decorators[i])
14
+ result = (decorator(target, key, result) ) || result;
15
+ if (result) __defProp(target, key, result);
16
+ return result;
17
+ };
18
+ const DividerRole = {
19
+ /**
20
+ * The divider semantically separates content
21
+ */
22
+ separator: "separator",
23
+ /**
24
+ * The divider has no semantic value and is for visual presentation only.
25
+ */
26
+ presentation: "presentation"
27
+ };
28
+ class Divider extends index.FoundationElement {
29
+ constructor() {
30
+ super(...arguments);
31
+ this.role = DividerRole.separator;
32
+ this.orientation = aria.Orientation.horizontal;
33
+ }
59
34
  }
35
+ __decorateClass([
36
+ index.attr
37
+ ], Divider.prototype, "role");
38
+ __decorateClass([
39
+ index.attr
40
+ ], Divider.prototype, "orientation");
60
41
 
61
42
  const getClasses = ({ orientation }) => classNames.classNames("base", [`${orientation}`, Boolean(orientation)]);
62
43
  const DividerTemplate = () => index.html` <span
@@ -1,60 +1,41 @@
1
- import { F as FoundationElement, _ as __decorate, a as attr, h as html, r as registerFactory } from './index.js';
2
- import { O as Orientation } from './aria2.js';
1
+ import { F as FoundationElement, a as attr, h as html, r as registerFactory } from './index.js';
2
+ import { O as Orientation } from './aria.js';
3
3
  import { c as classNames } from './class-names.js';
4
4
 
5
- /**
6
- * Divider roles
7
- * @public
8
- */
9
- const DividerRole = {
10
- /**
11
- * The divider semantically separates content
12
- */
13
- separator: "separator",
14
- /**
15
- * The divider has no semantic value and is for visual presentation only.
16
- */
17
- presentation: "presentation",
18
- };
19
-
20
- /**
21
- * A Divider Custom HTML Element.
22
- * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#separator | ARIA separator } or {@link https://www.w3.org/TR/wai-aria-1.1/#presentation | ARIA presentation}.
23
- *
24
- * @public
25
- */
26
- let Divider$1 = class Divider extends FoundationElement {
27
- constructor() {
28
- super(...arguments);
29
- /**
30
- * The role of the element.
31
- *
32
- * @public
33
- * @remarks
34
- * HTML Attribute: role
35
- */
36
- this.role = DividerRole.separator;
37
- /**
38
- * The orientation of the divider.
39
- *
40
- * @public
41
- * @remarks
42
- * HTML Attribute: orientation
43
- */
44
- this.orientation = Orientation.horizontal;
45
- }
46
- };
47
- __decorate([
48
- attr
49
- ], Divider$1.prototype, "role", void 0);
50
- __decorate([
51
- attr
52
- ], Divider$1.prototype, "orientation", void 0);
53
-
54
5
  const styles = ":host{display:block}.base{display:block;background-color:var(--vvd-color-neutral-200)}.base:not(.vertical){block-size:1px;inline-size:100%}.base.vertical{block-size:100%;inline-size:1px}";
55
6
 
56
- class Divider extends Divider$1 {
7
+ var __defProp = Object.defineProperty;
8
+ var __decorateClass = (decorators, target, key, kind) => {
9
+ var result = void 0 ;
10
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
11
+ if (decorator = decorators[i])
12
+ result = (decorator(target, key, result) ) || result;
13
+ if (result) __defProp(target, key, result);
14
+ return result;
15
+ };
16
+ const DividerRole = {
17
+ /**
18
+ * The divider semantically separates content
19
+ */
20
+ separator: "separator",
21
+ /**
22
+ * The divider has no semantic value and is for visual presentation only.
23
+ */
24
+ presentation: "presentation"
25
+ };
26
+ class Divider extends FoundationElement {
27
+ constructor() {
28
+ super(...arguments);
29
+ this.role = DividerRole.separator;
30
+ this.orientation = Orientation.horizontal;
31
+ }
57
32
  }
33
+ __decorateClass([
34
+ attr
35
+ ], Divider.prototype, "role");
36
+ __decorateClass([
37
+ attr
38
+ ], Divider.prototype, "orientation");
58
39
 
59
40
  const getClasses = ({ orientation }) => classNames("base", [`${orientation}`, Boolean(orientation)]);
60
41
  const DividerTemplate = () => html` <span
@@ -571,7 +571,7 @@ index.__decorate([
571
571
  index.observable
572
572
  ], Menu$1.prototype, "items", void 0);
573
573
 
574
- const styles = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{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;border-radius:8px}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}";
574
+ const styles = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{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}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}";
575
575
 
576
576
  var __defProp$1 = Object.defineProperty;
577
577
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -569,7 +569,7 @@ __decorate([
569
569
  observable
570
570
  ], Menu$1.prototype, "items", void 0);
571
571
 
572
- const styles = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{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;border-radius:8px}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}";
572
+ const styles = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{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}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}";
573
573
 
574
574
  var __defProp$1 = Object.defineProperty;
575
575
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -8,7 +8,7 @@ const index$1 = require('./index2.cjs');
8
8
  const slotted = require('./slotted.cjs');
9
9
  const classNames = require('./class-names.cjs');
10
10
 
11
- const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);max-inline-size:var(--menu-max-inline-size);min-inline-size:var(--menu-min-inline-size);padding-block:8px}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[role=menuitem]: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;display:block;border-radius:8px}.header{padding-block-start:4px;padding-inline:12px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px}.hide-actions .action-items{display:none}";
11
+ const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);max-inline-size:var(--menu-max-inline-size);min-inline-size:var(--menu-min-inline-size);padding-block:8px}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[role=menuitem]: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;display:block}.header{padding-block-start:4px;padding-inline:12px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px}.hide-actions .action-items{display:none}";
12
12
 
13
13
  const getClasses = ({
14
14
  headerSlottedContent,
@@ -6,7 +6,7 @@ import { h as handleEscapeKeyAndStopPropogation } from './index2.js';
6
6
  import { s as slotted } from './slotted.js';
7
7
  import { c as classNames } from './class-names.js';
8
8
 
9
- const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);max-inline-size:var(--menu-max-inline-size);min-inline-size:var(--menu-min-inline-size);padding-block:8px}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[role=menuitem]: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;display:block;border-radius:8px}.header{padding-block-start:4px;padding-inline:12px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px}.hide-actions .action-items{display:none}";
9
+ const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);max-inline-size:var(--menu-max-inline-size);min-inline-size:var(--menu-min-inline-size);padding-block:8px}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[role=menuitem]: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;display:block}.header{padding-block-start:4px;padding-inline:12px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px}.hide-actions .action-items{display:none}";
10
10
 
11
11
  const getClasses = ({
12
12
  headerSlottedContent,
@@ -36,6 +36,28 @@ class SideDrawer extends index.FoundationElement {
36
36
  #open() {
37
37
  this.$emit("open", void 0, { bubbles: false });
38
38
  }
39
+ /**
40
+ * @internal
41
+ */
42
+ _onKeydown(event) {
43
+ if (index$1.handleEscapeKeyAndStopPropogation(event)) {
44
+ this._handleCloseRequest();
45
+ return void 0;
46
+ } else {
47
+ return true;
48
+ }
49
+ }
50
+ /**
51
+ * @internal
52
+ */
53
+ _handleCloseRequest() {
54
+ if (this.$emit("cancel", void 0, {
55
+ bubbles: false,
56
+ cancelable: true
57
+ })) {
58
+ this.open = false;
59
+ }
60
+ }
39
61
  }
40
62
  __decorateClass([
41
63
  index.attr({
@@ -72,7 +94,7 @@ const sideDrawerTemplate = () => index.html`
72
94
  class="${getClasses}"
73
95
  ?inert="${(x) => !x.open}"
74
96
  part="base ${(x) => x.alternate ? "vvd-theme-alternate" : ""}"
75
- @keydown="${(x, c) => handleKeydown(x, c.event)}"
97
+ @keydown="${(x, c) => x._onKeydown(c.event)}"
76
98
  >
77
99
  <slot></slot>
78
100
  </div>
@@ -85,17 +107,10 @@ const sideDrawerTemplate = () => index.html`
85
107
  (x) => x.modal,
86
108
  index.html`<div
87
109
  class="${getScrimClasses}"
88
- @click="${(x) => x.open = false}"
110
+ @click="${(x) => x._handleCloseRequest()}"
89
111
  ></div>`
90
112
  )}
91
113
  `;
92
- const handleKeydown = (x, event) => {
93
- if (index$1.handleEscapeKeyAndStopPropogation(event)) {
94
- x.open = false;
95
- } else {
96
- return true;
97
- }
98
- };
99
114
 
100
115
  const sideDrawerDefinition = SideDrawer.compose({
101
116
  baseName: "side-drawer",
@@ -34,6 +34,28 @@ class SideDrawer extends FoundationElement {
34
34
  #open() {
35
35
  this.$emit("open", void 0, { bubbles: false });
36
36
  }
37
+ /**
38
+ * @internal
39
+ */
40
+ _onKeydown(event) {
41
+ if (handleEscapeKeyAndStopPropogation(event)) {
42
+ this._handleCloseRequest();
43
+ return void 0;
44
+ } else {
45
+ return true;
46
+ }
47
+ }
48
+ /**
49
+ * @internal
50
+ */
51
+ _handleCloseRequest() {
52
+ if (this.$emit("cancel", void 0, {
53
+ bubbles: false,
54
+ cancelable: true
55
+ })) {
56
+ this.open = false;
57
+ }
58
+ }
37
59
  }
38
60
  __decorateClass([
39
61
  attr({
@@ -70,7 +92,7 @@ const sideDrawerTemplate = () => html`
70
92
  class="${getClasses}"
71
93
  ?inert="${(x) => !x.open}"
72
94
  part="base ${(x) => x.alternate ? "vvd-theme-alternate" : ""}"
73
- @keydown="${(x, c) => handleKeydown(x, c.event)}"
95
+ @keydown="${(x, c) => x._onKeydown(c.event)}"
74
96
  >
75
97
  <slot></slot>
76
98
  </div>
@@ -83,17 +105,10 @@ const sideDrawerTemplate = () => html`
83
105
  (x) => x.modal,
84
106
  html`<div
85
107
  class="${getScrimClasses}"
86
- @click="${(x) => x.open = false}"
108
+ @click="${(x) => x._handleCloseRequest()}"
87
109
  ></div>`
88
110
  )}
89
111
  `;
90
- const handleKeydown = (x, event) => {
91
- if (handleEscapeKeyAndStopPropogation(event)) {
92
- x.open = false;
93
- } else {
94
- return true;
95
- }
96
- };
97
112
 
98
113
  const sideDrawerDefinition = SideDrawer.compose({
99
114
  baseName: "side-drawer",
@@ -319,7 +319,7 @@ const AudioPlayerTemplate = (context) => {
319
319
  ${when.when(
320
320
  (x) => Boolean(x.playbackRates),
321
321
  index.html`
322
- <${menuTag} class="playback-rates" trigger="auto" placement="top-start" auto-dismiss id="playback-menu">
322
+ <${menuTag} class="playback-rates" trigger="auto" placement="top-start" auto-dismiss id="playback-menu" position-strategy="absolute">
323
323
  <${buttonTag} id="playback-open-button"
324
324
  class="playback-button"
325
325
  slot="anchor"
@@ -317,7 +317,7 @@ const AudioPlayerTemplate = (context) => {
317
317
  ${when(
318
318
  (x) => Boolean(x.playbackRates),
319
319
  html`
320
- <${menuTag} class="playback-rates" trigger="auto" placement="top-start" auto-dismiss id="playback-menu">
320
+ <${menuTag} class="playback-rates" trigger="auto" placement="top-start" auto-dismiss id="playback-menu" position-strategy="absolute">
321
321
  <${buttonTag} id="playback-open-button"
322
322
  class="playback-button"
323
323
  slot="anchor"
@@ -189,6 +189,7 @@ exports.TextField = class TextField extends textField.TextField {
189
189
  __privateGet(this, _reflectToInput).attribute("size", "size");
190
190
  __privateGet(this, _reflectToInput).attribute("autoComplete", "autocomplete");
191
191
  __privateGet(this, _reflectToInput).attribute("type", "type");
192
+ __privateGet(this, _reflectToInput).attribute("inputMode", "inputmode");
192
193
  __privateGet(this, _reflectToInput).attribute("ariaAtomic", "aria-atomic");
193
194
  __privateGet(this, _reflectToInput).attribute("ariaBusy", "aria-busy");
194
195
  __privateGet(this, _reflectToInput).attribute("ariaCurrent", "aria-current");
@@ -294,6 +295,9 @@ __decorateClass([
294
295
  __decorateClass([
295
296
  index.attr()
296
297
  ], exports.TextField.prototype, "scale", 2);
298
+ __decorateClass([
299
+ index.attr({ attribute: "inputmode" })
300
+ ], exports.TextField.prototype, "inputMode", 2);
297
301
  __decorateClass([
298
302
  index.observable
299
303
  ], exports.TextField.prototype, "actionItemsSlottedContent", 2);
@@ -187,6 +187,7 @@ let TextField = class extends TextField$1 {
187
187
  __privateGet(this, _reflectToInput).attribute("size", "size");
188
188
  __privateGet(this, _reflectToInput).attribute("autoComplete", "autocomplete");
189
189
  __privateGet(this, _reflectToInput).attribute("type", "type");
190
+ __privateGet(this, _reflectToInput).attribute("inputMode", "inputmode");
190
191
  __privateGet(this, _reflectToInput).attribute("ariaAtomic", "aria-atomic");
191
192
  __privateGet(this, _reflectToInput).attribute("ariaBusy", "aria-busy");
192
193
  __privateGet(this, _reflectToInput).attribute("ariaCurrent", "aria-current");
@@ -292,6 +293,9 @@ __decorateClass([
292
293
  __decorateClass([
293
294
  attr()
294
295
  ], TextField.prototype, "scale", 2);
296
+ __decorateClass([
297
+ attr({ attribute: "inputmode" })
298
+ ], TextField.prototype, "inputMode", 2);
295
299
  __decorateClass([
296
300
  observable
297
301
  ], TextField.prototype, "actionItemsSlottedContent", 2);
@@ -10,24 +10,6 @@ const classNames = require('./class-names.cjs');
10
10
 
11
11
  const styles = ".base{display:flex;align-items:center;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.base .separator{margin:0 16px;color:var(--vvd-color-neutral-600);font-size:12px}.control{border-radius:2px;font:inherit}.control: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;--focus-inset: -4px}.control:any-link{color:var(--vvd-color-cta-600);text-decoration:none}.control:any-link:hover{text-decoration:underline}";
12
12
 
13
- var __defProp = Object.defineProperty;
14
- var __decorateClass = (decorators, target, key, kind) => {
15
- var result = void 0 ;
16
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
17
- if (decorator = decorators[i])
18
- result = (decorator(target, key, result) ) || result;
19
- if (result) __defProp(target, key, result);
20
- return result;
21
- };
22
- class BreadcrumbItem extends breadcrumbItem.BreadcrumbItem {
23
- constructor() {
24
- super();
25
- }
26
- }
27
- __decorateClass([
28
- index.attr
29
- ], BreadcrumbItem.prototype, "text");
30
-
31
13
  const getClasses = (_) => classNames.classNames("base");
32
14
  const BreadcrumbItemTemplate = (context, definition) => {
33
15
  const iconTag = context.tagFor(icon.Icon);
@@ -44,7 +26,7 @@ const BreadcrumbItemTemplate = (context, definition) => {
44
26
  </div>`;
45
27
  };
46
28
 
47
- const breadcrumbItemDefinition = BreadcrumbItem.compose({
29
+ const breadcrumbItemDefinition = breadcrumbItem.BreadcrumbItem.compose({
48
30
  baseName: "breadcrumb-item",
49
31
  template: BreadcrumbItemTemplate,
50
32
  styles,
@@ -1,6 +1,6 @@
1
- import { a as attr, h as html, r as registerFactory } from './index.js';
1
+ import { h as html, r as registerFactory } from './index.js';
2
2
  import { a as iconRegistries } from './definition27.js';
3
- import { B as BreadcrumbItem$1 } from './breadcrumb-item.js';
3
+ import { B as BreadcrumbItem } from './breadcrumb-item.js';
4
4
  import { t as textAnchorTemplate } from './text-anchor.template.js';
5
5
  import { I as Icon } from './icon.js';
6
6
  import { w as when } from './when.js';
@@ -8,24 +8,6 @@ import { c as classNames } from './class-names.js';
8
8
 
9
9
  const styles = ".base{display:flex;align-items:center;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.base .separator{margin:0 16px;color:var(--vvd-color-neutral-600);font-size:12px}.control{border-radius:2px;font:inherit}.control: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;--focus-inset: -4px}.control:any-link{color:var(--vvd-color-cta-600);text-decoration:none}.control:any-link:hover{text-decoration:underline}";
10
10
 
11
- var __defProp = Object.defineProperty;
12
- var __decorateClass = (decorators, target, key, kind) => {
13
- var result = void 0 ;
14
- for (var i = decorators.length - 1, decorator; i >= 0; i--)
15
- if (decorator = decorators[i])
16
- result = (decorator(target, key, result) ) || result;
17
- if (result) __defProp(target, key, result);
18
- return result;
19
- };
20
- class BreadcrumbItem extends BreadcrumbItem$1 {
21
- constructor() {
22
- super();
23
- }
24
- }
25
- __decorateClass([
26
- attr
27
- ], BreadcrumbItem.prototype, "text");
28
-
29
11
  const getClasses = (_) => classNames("base");
30
12
  const BreadcrumbItemTemplate = (context, definition) => {
31
13
  const iconTag = context.tagFor(Icon);