@vonage/vivid 5.27.0 → 5.28.1

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 (105) hide show
  1. package/bundled/calendar-picker.template.cjs +1 -1
  2. package/bundled/calendar-picker.template.js +3 -3
  3. package/bundled/decorate.js +1 -1
  4. package/bundled/definition10.cjs +5 -1
  5. package/bundled/definition10.js +5 -1
  6. package/bundled/definition2.cjs +1 -1
  7. package/bundled/definition2.js +1 -1
  8. package/bundled/definition23.cjs +8 -4
  9. package/bundled/definition23.js +8 -4
  10. package/bundled/definition4.cjs +1 -1
  11. package/bundled/definition4.js +1 -1
  12. package/bundled/definition5.cjs +1 -1
  13. package/bundled/definition5.js +2 -1
  14. package/bundled/definition8.cjs +9 -7
  15. package/bundled/definition8.js +11 -9
  16. package/bundled/definition9.cjs +3 -3
  17. package/bundled/definition9.js +4 -4
  18. package/bundled/feedback-message.cjs +1 -1
  19. package/bundled/feedback-message.js +1 -1
  20. package/bundled/localized.cjs +1 -1
  21. package/bundled/localized.js +12 -0
  22. package/bundled/render-in-light-dom.js +3 -3
  23. package/bundled/text-field.cjs +1 -1
  24. package/bundled/text-field.js +1 -1
  25. package/bundled/vivid-element.cjs +1 -1
  26. package/bundled/vivid-element.js +1 -1
  27. package/custom-elements.json +198 -144
  28. package/data-grid/index.cjs +1 -1
  29. package/data-grid/index.js +1 -1
  30. package/lib/badge/badge.d.ts +1 -0
  31. package/lib/badge/badge.template.d.ts +2 -1
  32. package/lib/icon/icon.d.ts +1 -1
  33. package/lib/popover/popover.d.ts +2 -1
  34. package/lib/progress-ring/progress-ring.d.ts +1 -1
  35. package/lib/rich-text-editor/rich-text-editor.d.ts +427 -0
  36. package/lib/rich-text-editor/rte/__tests__/async-generator.d.ts +1 -0
  37. package/lib/rich-text-editor/rte/features/atom.d.ts +6 -2
  38. package/lib/rich-text-editor/rte/instance.d.ts +2 -1
  39. package/lib/table/locale.d.ts +10 -0
  40. package/lib/table/table-sorting-button.d.ts +425 -0
  41. package/locales/de-DE.cjs +12 -0
  42. package/locales/de-DE.js +12 -0
  43. package/locales/en-GB.cjs +12 -0
  44. package/locales/en-GB.js +12 -0
  45. package/locales/ja-JP.cjs +12 -0
  46. package/locales/ja-JP.js +12 -0
  47. package/locales/zh-CN.cjs +12 -0
  48. package/locales/zh-CN.js +12 -0
  49. package/number-field/index.cjs +1 -1
  50. package/number-field/index.js +1 -1
  51. package/package.json +16 -16
  52. package/popover/index.cjs +2 -2
  53. package/popover/index.js +70 -37
  54. package/rich-text-editor/index.cjs +23 -17
  55. package/rich-text-editor/index.js +1655 -1590
  56. package/shared/localization/Locale.d.ts +2 -0
  57. package/table/index.cjs +17 -17
  58. package/table/index.js +50 -40
  59. package/unbundled/decorate.cjs +1 -1
  60. package/unbundled/decorate.js +1 -1
  61. package/unbundled/definition.cjs +1 -1
  62. package/unbundled/definition.js +1 -1
  63. package/unbundled/definition14.cjs +1 -1
  64. package/unbundled/definition14.js +1 -1
  65. package/unbundled/definition15.cjs +8 -3
  66. package/unbundled/definition15.js +8 -3
  67. package/unbundled/definition2.cjs +1 -1
  68. package/unbundled/definition2.js +1 -1
  69. package/unbundled/definition24.cjs +4 -4
  70. package/unbundled/definition24.js +4 -4
  71. package/unbundled/definition25.cjs +5 -1
  72. package/unbundled/definition25.js +5 -1
  73. package/unbundled/definition27.cjs +8 -5
  74. package/unbundled/definition27.js +8 -5
  75. package/unbundled/definition35.cjs +1 -1
  76. package/unbundled/definition35.js +1 -1
  77. package/unbundled/definition5.cjs +1 -1
  78. package/unbundled/definition5.js +1 -1
  79. package/unbundled/definition55.cjs +1 -1
  80. package/unbundled/definition55.js +1 -1
  81. package/unbundled/definition58.cjs +69 -4
  82. package/unbundled/definition58.js +69 -4
  83. package/unbundled/definition6.cjs +2 -1
  84. package/unbundled/definition6.js +2 -1
  85. package/unbundled/definition63.cjs +82 -22
  86. package/unbundled/definition63.js +82 -22
  87. package/unbundled/definition75.cjs +19 -6
  88. package/unbundled/definition75.js +20 -7
  89. package/unbundled/definition8.cjs +2 -2
  90. package/unbundled/definition8.js +2 -2
  91. package/unbundled/definition83.cjs +1 -1
  92. package/unbundled/definition83.js +1 -1
  93. package/unbundled/en-US.cjs +12 -0
  94. package/unbundled/en-US.js +12 -0
  95. package/unbundled/feedback-message.cjs +1 -1
  96. package/unbundled/feedback-message.js +1 -1
  97. package/unbundled/linkable.cjs +1 -1
  98. package/unbundled/linkable.js +1 -1
  99. package/unbundled/text-field.cjs +1 -1
  100. package/unbundled/text-field.js +1 -1
  101. package/unbundled/vivid-element.cjs +1 -1
  102. package/unbundled/vivid-element.js +1 -1
  103. package/video-player/index.cjs +26 -26
  104. package/video-player/index.js +2438 -2413
  105. package/vivid.api.json +64 -3
@@ -8,7 +8,7 @@ import { n as renderInLightDOM, t as generateRandomId } from "./randomId.js";
8
8
  import { DOM, attr, elements, html, observable, slotted, when } from "@microsoft/fast-element";
9
9
  import { classNames } from "@microsoft/fast-web-utilities";
10
10
  //#region src/lib/tooltip/tooltip.scss?inline
11
- var tooltip_default = ":host :host{display:var(--_popup-display,inline)}:host :host([slotted-anchor]){--_popup-display:contents}.control{pointer-events:none}.tooltip{width:var(--tooltip-inline-size,auto);box-sizing:border-box;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);max-inline-size:var(--tooltip-max-inline-size,30ch);flex-direction:column;align-items:flex-start;gap:4px;padding:8px 12px;display:flex}.text-secondary{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base)}";
11
+ var tooltip_default = ":host :host{display:var(--_popup-display,inline)}:host :host([slotted-anchor]){--_popup-display:contents}.control{pointer-events:none}.tooltip{width:var(--tooltip-inline-size,auto);box-sizing:border-box;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);max-inline-size:var(--tooltip-max-inline-size,30ch);flex-direction:column;align-items:flex-start;gap:2px;padding:8px 12px;display:flex}.control:not(.has-text) .text{display:none}.content{display:contents}.has-text .content{font:var(--vvd-typography-base)}.text-secondary{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base)}";
12
12
  //#endregion
13
13
  //#region src/lib/tooltip/tooltip.ts
14
14
  /**
@@ -116,13 +116,14 @@ __decorate([attr({ mode: "boolean" })], Tooltip.prototype, "open", void 0);
116
116
  __decorate([observable], Tooltip.prototype, "_defaultSlotContent", void 0);
117
117
  //#endregion
118
118
  //#region src/lib/tooltip/tooltip.template.ts
119
+ var getClasses = (x) => classNames("control", ["has-text", x.text !== void 0], ["open", x.open]);
119
120
  var TooltipTemplate = (context) => {
120
121
  const popupTag = context.tagFor(Popup);
121
122
  const anchorSlotTemplate = anchorSlotTemplateFactory();
122
123
  return html`
123
124
  ${anchorSlotTemplate}
124
125
  ${renderInLightDOM(html`<span slot="_description" id="${(x) => x._descriptionId}">${(x) => x.text}</span><span slot="_description-secondary" id="${(x) => x._descriptionSecondaryId}">${(x) => x.textSecondary}</span>`)}
125
- <${popupTag} class="${(x) => classNames("control", ["open", x.open])}" arrow alternate
126
+ <${popupTag} class="${(x) => getClasses(x)}" arrow alternate
126
127
  :placement=${(x) => x.placement}
127
128
  :anchor="${(x) => x._anchorEl}"
128
129
  :open="${(x) => x.open}"
@@ -135,12 +136,14 @@ ${renderInLightDOM(html`<span slot="_description" id="${(x) => x._descriptionId}
135
136
  ${when((x) => x.textSecondary, html`<span class="text-secondary"
136
137
  ><slot name="_description-secondary"></slot
137
138
  ></span>`)}
138
- <slot
139
- ${slotted({
139
+ <span class="content"
140
+ ><slot
141
+ ${slotted({
140
142
  property: "_defaultSlotContent",
141
143
  filter: elements()
142
144
  })}
143
- ></slot>
145
+ ></slot
146
+ ></span>
144
147
  <slot name="kbd-shortcut"
145
148
  ${slotted({
146
149
  property: "_kbdShortcutSlotted",
@@ -16,7 +16,7 @@ var data_grid_default = ":host{display:block}:host([generate-header=sticky]){max
16
16
  var data_grid_row_default = ".base{box-sizing:border-box;width:100%;color:var(--vvd-color-canvas-text);display:grid}:host([row-type=sticky-header]) .base{z-index:9;background:var(--data-grid-row-background,var(--vvd-color-canvas));position:sticky;top:0}:host([row-type=hidden-header]) .base{display:none}:host([selected]:not([row-type*=header])) .base{background-color:var(--_appearance-color-fill)}";
17
17
  //#endregion
18
18
  //#region src/lib/data-grid/data-grid-cell.scss?inline
19
- var data_grid_cell_default = ":host{block-size:100%;min-inline-size:80px}:host(:focus-visible){outline:none}:host([data-fixed]){z-index:5;background:var(--data-grid-cell-background,var(--vvd-color-surface-2dp));position:sticky}:host([data-fixed]):before{z-index:1;width:1px;content:\"\";pointer-events:none;block-size:100%;position:absolute;top:0;right:0;box-shadow:4px 0 4px #0000001a,2px 0 2px #0000000d,1px 0 1px #0000000d}.base{box-sizing:border-box;border-bottom:1px solid var(--vvd-color-neutral-300);block-size:var(--data-grid-cell-block-size,var(--_data-grid-cell-default-block-size));color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);min-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8));align-items:center;padding-block:13px 14px;padding-inline:12px;display:flex}:host(:focus-visible) .base{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}:host([cell-type=columnheader]) .base{border-color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);--_data-grid-cell-default-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8));--_data-grid-cell-default-white-space:nowrap}:host(:not([cell-type=columnheader])) .base{--_data-grid-cell-default-block-size:100%;--_data-grid-cell-default-white-space:normal}:host([selected]:not([cell-type=columnheader])) .base{background-color:var(--_appearance-color-fill)}.content{align-items:center;display:flex;overflow:hidden}.content[role=button]{cursor:pointer}slot:not([name]){text-overflow:ellipsis;white-space:var(--data-grid-cell-white-space,var(--_data-grid-cell-default-white-space));display:block;overflow:hidden}:host(:not([cell-type=columnheader][aria-sort])) slot:not([name]){inline-size:100%}.header-icon{flex-shrink:0;margin-inline-start:16px}slot[name=action-items]{flex-shrink:0;align-items:center;display:flex}.base.has-action-items slot[name=action-items]{margin-inline-start:16px}";
19
+ var data_grid_cell_default = ":host{block-size:100%;min-inline-size:80px}:host(:focus-visible){outline:none}:host([data-fixed]){z-index:5;background:var(--data-grid-cell-background,var(--vvd-color-surface-2dp));position:sticky}:host([data-fixed]):before{z-index:1;width:1px;content:\"\";pointer-events:none;block-size:100%;position:absolute;top:0;right:0;box-shadow:4px 0 4px #0000001a,2px 0 2px #0000000d,1px 0 1px #0000000d}.base{box-sizing:border-box;border-bottom:1px solid var(--vvd-color-neutral-300);block-size:var(--data-grid-cell-block-size,var(--_data-grid-cell-default-block-size));color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);min-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8));align-items:center;padding-block:13px 14px;padding-inline:12px;display:flex}:host(:focus-visible) .base{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}:host([cell-type=columnheader]) .base{border-color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);--_data-grid-cell-default-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8));--_data-grid-cell-default-white-space:nowrap}:host(:not([cell-type=columnheader])) .base{--_data-grid-cell-default-block-size:100%;--_data-grid-cell-default-white-space:normal}:host([selected]:not([cell-type=columnheader])) .base{background-color:var(--_appearance-color-fill)}.content{flex:1;align-items:center;display:flex;overflow:hidden}.content[role=button]{cursor:pointer}slot:not([name]){text-overflow:ellipsis;white-space:var(--data-grid-cell-white-space,var(--_data-grid-cell-default-white-space));display:block;overflow:hidden}:host(:not([cell-type=columnheader][aria-sort])) slot:not([name]){inline-size:100%}.header-icon{flex-shrink:0;margin-inline-start:16px}slot[name=action-items]{flex-shrink:0;align-items:center;display:flex}.base.has-action-items slot[name=action-items]{margin-inline-start:16px}";
20
20
  //#endregion
21
21
  //#region ../../node_modules/.pnpm/@microsoft+fast-element@2.10.5/node_modules/@microsoft/fast-element/dist/esm/interfaces.js
22
22
  var kernelMode;
@@ -16,7 +16,7 @@ var data_grid_default = ":host{display:block}:host([generate-header=sticky]){max
16
16
  var data_grid_row_default = ".base{box-sizing:border-box;width:100%;color:var(--vvd-color-canvas-text);display:grid}:host([row-type=sticky-header]) .base{z-index:9;background:var(--data-grid-row-background,var(--vvd-color-canvas));position:sticky;top:0}:host([row-type=hidden-header]) .base{display:none}:host([selected]:not([row-type*=header])) .base{background-color:var(--_appearance-color-fill)}";
17
17
  //#endregion
18
18
  //#region src/lib/data-grid/data-grid-cell.scss?inline
19
- var data_grid_cell_default = ":host{block-size:100%;min-inline-size:80px}:host(:focus-visible){outline:none}:host([data-fixed]){z-index:5;background:var(--data-grid-cell-background,var(--vvd-color-surface-2dp));position:sticky}:host([data-fixed]):before{z-index:1;width:1px;content:\"\";pointer-events:none;block-size:100%;position:absolute;top:0;right:0;box-shadow:4px 0 4px #0000001a,2px 0 2px #0000000d,1px 0 1px #0000000d}.base{box-sizing:border-box;border-bottom:1px solid var(--vvd-color-neutral-300);block-size:var(--data-grid-cell-block-size,var(--_data-grid-cell-default-block-size));color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);min-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8));align-items:center;padding-block:13px 14px;padding-inline:12px;display:flex}:host(:focus-visible) .base{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}:host([cell-type=columnheader]) .base{border-color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);--_data-grid-cell-default-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8));--_data-grid-cell-default-white-space:nowrap}:host(:not([cell-type=columnheader])) .base{--_data-grid-cell-default-block-size:100%;--_data-grid-cell-default-white-space:normal}:host([selected]:not([cell-type=columnheader])) .base{background-color:var(--_appearance-color-fill)}.content{align-items:center;display:flex;overflow:hidden}.content[role=button]{cursor:pointer}slot:not([name]){text-overflow:ellipsis;white-space:var(--data-grid-cell-white-space,var(--_data-grid-cell-default-white-space));display:block;overflow:hidden}:host(:not([cell-type=columnheader][aria-sort])) slot:not([name]){inline-size:100%}.header-icon{flex-shrink:0;margin-inline-start:16px}slot[name=action-items]{flex-shrink:0;align-items:center;display:flex}.base.has-action-items slot[name=action-items]{margin-inline-start:16px}";
19
+ var data_grid_cell_default = ":host{block-size:100%;min-inline-size:80px}:host(:focus-visible){outline:none}:host([data-fixed]){z-index:5;background:var(--data-grid-cell-background,var(--vvd-color-surface-2dp));position:sticky}:host([data-fixed]):before{z-index:1;width:1px;content:\"\";pointer-events:none;block-size:100%;position:absolute;top:0;right:0;box-shadow:4px 0 4px #0000001a,2px 0 2px #0000000d,1px 0 1px #0000000d}.base{box-sizing:border-box;border-bottom:1px solid var(--vvd-color-neutral-300);block-size:var(--data-grid-cell-block-size,var(--_data-grid-cell-default-block-size));color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);min-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8));align-items:center;padding-block:13px 14px;padding-inline:12px;display:flex}:host(:focus-visible) .base{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}:host([cell-type=columnheader]) .base{border-color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-bold);--_data-grid-cell-default-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8));--_data-grid-cell-default-white-space:nowrap}:host(:not([cell-type=columnheader])) .base{--_data-grid-cell-default-block-size:100%;--_data-grid-cell-default-white-space:normal}:host([selected]:not([cell-type=columnheader])) .base{background-color:var(--_appearance-color-fill)}.content{flex:1;align-items:center;display:flex;overflow:hidden}.content[role=button]{cursor:pointer}slot:not([name]){text-overflow:ellipsis;white-space:var(--data-grid-cell-white-space,var(--_data-grid-cell-default-white-space));display:block;overflow:hidden}:host(:not([cell-type=columnheader][aria-sort])) slot:not([name]){inline-size:100%}.header-icon{flex-shrink:0;margin-inline-start:16px}slot[name=action-items]{flex-shrink:0;align-items:center;display:flex}.base.has-action-items slot[name=action-items]{margin-inline-start:16px}";
20
20
  //#endregion
21
21
  //#region ../../node_modules/.pnpm/@microsoft+fast-element@2.10.5/node_modules/@microsoft/fast-element/dist/esm/interfaces.js
22
22
  var kernelMode;
@@ -6,7 +6,7 @@ const require_base_progress = require("./base-progress.cjs");
6
6
  let _microsoft_fast_element = require("@microsoft/fast-element");
7
7
  let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
8
8
  //#region src/lib/progress-ring/progress-ring.scss?inline
9
- var progress_ring_default = ":host{--_vvd-progress-ring-accent-firm-wrapper:var(--vvd-progress-ring-accent-firm);--_vvd-progress-ring-cta-firm-wrapper:var(--vvd-progress-ring-cta-firm);--_vvd-progress-ring-alert-firm-wrapper:var(--vvd-progress-ring-alert-firm);--_vvd-progress-ring-success-firm-wrapper:var(--vvd-progress-ring-success-firm)}.base{--vvd-progress-ring-accent-firm:var(--_vvd-progress-ring-accent-firm-wrapper,var(--vvd-progress-ring-accent-primary));--vvd-progress-ring-cta-firm:var(--_vvd-progress-ring-cta-firm-wrapper,var(--vvd-progress-ring-cta-primary));--vvd-progress-ring-alert-firm:var(--_vvd-progress-ring-alert-firm-wrapper,var(--vvd-progress-ring-alert-primary));--vvd-progress-ring-success-firm:var(--_vvd-progress-ring-success-firm-wrapper,var(--vvd-progress-ring-success-primary))}.base.size--6{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)) - 1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16))}.base.size--5{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 20))}.base.size--4{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16))}.base.size--3{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 12))}.base.size--2{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8))}.base.size--1{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 4))}.base.size-1{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 4))}.base.size-2{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8))}.base.size-3{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 12))}.base.size-4{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 16))}.base.size-5{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 20))}.base:not(.size--6,.size--5,.size--4,.size--3,.size--2,.size--1,.size-1,.size-2,.size-3,.size-4,.size-5){--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)))}.base{block-size:var(--_size);color:var(--_appearance-color-text);inline-size:var(--_size);outline:none;align-items:center}.progress{width:100%;height:100%}.background{fill:none;stroke:#0000;stroke-width:1px}.determinate{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1px;transform-origin:50%;transition:all .2s ease-in-out;transform:rotate(-90deg)}.indeterminate-indicator-1{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1px;transform-origin:50%;transition:all .2s ease-in-out;animation:2s linear infinite spin-infinite;transform:rotate(-90deg)}.base.paused .indeterminate-indicator-1{animation-play-state:paused}@keyframes spin-infinite{0%{stroke-dasharray:.01 43.97;transform:rotate(0)}50%{stroke-dasharray:21.99 21.99;transform:rotate(450deg)}to{stroke-dasharray:.01 43.97;transform:rotate(1080deg)}}";
9
+ var progress_ring_default = ":host{--_vvd-progress-ring-accent-firm-wrapper:var(--vvd-progress-ring-accent-firm);--_vvd-progress-ring-cta-firm-wrapper:var(--vvd-progress-ring-cta-firm);--_vvd-progress-ring-alert-firm-wrapper:var(--vvd-progress-ring-alert-firm);--_vvd-progress-ring-success-firm-wrapper:var(--vvd-progress-ring-success-firm)}.base{--vvd-progress-ring-accent-firm:var(--_vvd-progress-ring-accent-firm-wrapper,var(--vvd-progress-ring-accent-primary));--vvd-progress-ring-cta-firm:var(--_vvd-progress-ring-cta-firm-wrapper,var(--vvd-progress-ring-cta-primary));--vvd-progress-ring-alert-firm:var(--_vvd-progress-ring-alert-firm-wrapper,var(--vvd-progress-ring-alert-primary));--vvd-progress-ring-success-firm:var(--_vvd-progress-ring-success-firm-wrapper,var(--vvd-progress-ring-success-primary))}.base.size--7{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)) - 1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 12))}.base.size--6{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)) - 1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16))}.base.size--5{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 20))}.base.size--4{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16))}.base.size--3{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 12))}.base.size--2{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8))}.base.size--1{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 4))}.base.size-1{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 4))}.base.size-2{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8))}.base.size-3{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 12))}.base.size-4{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 16))}.base.size-5{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 20))}.base:not(.size--7,.size--6,.size--5,.size--4,.size--3,.size--2,.size--1,.size-1,.size-2,.size-3,.size-4,.size-5){--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)))}.base{block-size:var(--_size);color:var(--_appearance-color-text);inline-size:var(--_size);outline:none;align-items:center}.progress{width:100%;height:100%}.background{fill:none;stroke:#0000;stroke-width:1px}.determinate{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1px;transform-origin:50%;transition:all .2s ease-in-out;transform:rotate(-90deg)}.indeterminate-indicator-1{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1px;transform-origin:50%;transition:all .2s ease-in-out;animation:2s linear infinite spin-infinite;transform:rotate(-90deg)}.base.paused .indeterminate-indicator-1{animation-play-state:paused}@keyframes spin-infinite{0%{stroke-dasharray:.01 43.97;transform:rotate(0)}50%{stroke-dasharray:21.99 21.99;transform:rotate(450deg)}to{stroke-dasharray:.01 43.97;transform:rotate(1080deg)}}";
10
10
  //#endregion
11
11
  //#region src/lib/progress-ring/progress-ring.ts
12
12
  var progressRingConnotation = require_component_enum.componentEnum([
@@ -6,7 +6,7 @@ import { t as BaseProgress } from "./base-progress.js";
6
6
  import { attr, html, when } from "@microsoft/fast-element";
7
7
  import { classNames } from "@microsoft/fast-web-utilities";
8
8
  //#region src/lib/progress-ring/progress-ring.scss?inline
9
- var progress_ring_default = ":host{--_vvd-progress-ring-accent-firm-wrapper:var(--vvd-progress-ring-accent-firm);--_vvd-progress-ring-cta-firm-wrapper:var(--vvd-progress-ring-cta-firm);--_vvd-progress-ring-alert-firm-wrapper:var(--vvd-progress-ring-alert-firm);--_vvd-progress-ring-success-firm-wrapper:var(--vvd-progress-ring-success-firm)}.base{--vvd-progress-ring-accent-firm:var(--_vvd-progress-ring-accent-firm-wrapper,var(--vvd-progress-ring-accent-primary));--vvd-progress-ring-cta-firm:var(--_vvd-progress-ring-cta-firm-wrapper,var(--vvd-progress-ring-cta-primary));--vvd-progress-ring-alert-firm:var(--_vvd-progress-ring-alert-firm-wrapper,var(--vvd-progress-ring-alert-primary));--vvd-progress-ring-success-firm:var(--_vvd-progress-ring-success-firm-wrapper,var(--vvd-progress-ring-success-primary))}.base.size--6{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)) - 1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16))}.base.size--5{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 20))}.base.size--4{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16))}.base.size--3{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 12))}.base.size--2{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8))}.base.size--1{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 4))}.base.size-1{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 4))}.base.size-2{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8))}.base.size-3{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 12))}.base.size-4{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 16))}.base.size-5{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 20))}.base:not(.size--6,.size--5,.size--4,.size--3,.size--2,.size--1,.size-1,.size-2,.size-3,.size-4,.size-5){--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)))}.base{block-size:var(--_size);color:var(--_appearance-color-text);inline-size:var(--_size);outline:none;align-items:center}.progress{width:100%;height:100%}.background{fill:none;stroke:#0000;stroke-width:1px}.determinate{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1px;transform-origin:50%;transition:all .2s ease-in-out;transform:rotate(-90deg)}.indeterminate-indicator-1{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1px;transform-origin:50%;transition:all .2s ease-in-out;animation:2s linear infinite spin-infinite;transform:rotate(-90deg)}.base.paused .indeterminate-indicator-1{animation-play-state:paused}@keyframes spin-infinite{0%{stroke-dasharray:.01 43.97;transform:rotate(0)}50%{stroke-dasharray:21.99 21.99;transform:rotate(450deg)}to{stroke-dasharray:.01 43.97;transform:rotate(1080deg)}}";
9
+ var progress_ring_default = ":host{--_vvd-progress-ring-accent-firm-wrapper:var(--vvd-progress-ring-accent-firm);--_vvd-progress-ring-cta-firm-wrapper:var(--vvd-progress-ring-cta-firm);--_vvd-progress-ring-alert-firm-wrapper:var(--vvd-progress-ring-alert-firm);--_vvd-progress-ring-success-firm-wrapper:var(--vvd-progress-ring-success-firm)}.base{--vvd-progress-ring-accent-firm:var(--_vvd-progress-ring-accent-firm-wrapper,var(--vvd-progress-ring-accent-primary));--vvd-progress-ring-cta-firm:var(--_vvd-progress-ring-cta-firm-wrapper,var(--vvd-progress-ring-cta-primary));--vvd-progress-ring-alert-firm:var(--_vvd-progress-ring-alert-firm-wrapper,var(--vvd-progress-ring-alert-primary));--vvd-progress-ring-success-firm:var(--_vvd-progress-ring-success-firm-wrapper,var(--vvd-progress-ring-success-primary))}.base.size--7{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)) - 1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 12))}.base.size--6{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)) - 1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16))}.base.size--5{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 20))}.base.size--4{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16))}.base.size--3{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 12))}.base.size--2{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8))}.base.size--1{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 4))}.base.size-1{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 4))}.base.size-2{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 8))}.base.size-3{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 12))}.base.size-4{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 16))}.base.size-5{--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) + 20))}.base:not(.size--7,.size--6,.size--5,.size--4,.size--3,.size--2,.size--1,.size-1,.size-2,.size-3,.size-4,.size-5){--_size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)))}.base{block-size:var(--_size);color:var(--_appearance-color-text);inline-size:var(--_size);outline:none;align-items:center}.progress{width:100%;height:100%}.background{fill:none;stroke:#0000;stroke-width:1px}.determinate{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1px;transform-origin:50%;transition:all .2s ease-in-out;transform:rotate(-90deg)}.indeterminate-indicator-1{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1px;transform-origin:50%;transition:all .2s ease-in-out;animation:2s linear infinite spin-infinite;transform:rotate(-90deg)}.base.paused .indeterminate-indicator-1{animation-play-state:paused}@keyframes spin-infinite{0%{stroke-dasharray:.01 43.97;transform:rotate(0)}50%{stroke-dasharray:21.99 21.99;transform:rotate(450deg)}to{stroke-dasharray:.01 43.97;transform:rotate(1080deg)}}";
10
10
  //#endregion
11
11
  //#region src/lib/progress-ring/progress-ring.ts
12
12
  var progressRingConnotation = componentEnum([
@@ -21,7 +21,7 @@ const require_definition$4 = require("./definition36.cjs");
21
21
  let _microsoft_fast_element = require("@microsoft/fast-element");
22
22
  let _microsoft_fast_web_utilities = require("@microsoft/fast-web-utilities");
23
23
  //#region src/lib/number-field/number-field.scss?inline
24
- var number_field_default = ".label-wrapper{align-items:center;gap:var(--label-wrapper-gap,4px);flex-direction:row;display:flex}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 auto}:host{display:inline-block}.base{--_text-field-gutter-start:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);--_text-field-gutter-end:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);--_text-field-icon-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2);--_text-field-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)));--_text-field-border-radius:8px;--_text-field-pill-border-radius:24px;grid-template-columns:min-content 1fr max-content;align-items:center;gap:4px;width:100%;display:inline-grid}.base.size-condensed{--_text-field-gutter-start:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)) / 2);--_text-field-gutter-end:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)) / 2);--_text-field-icon-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8)) / 2);--_text-field-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8));--_text-field-border-radius:4px}.base{user-select:none}.base:not(.disabled){--_low-ink-color:var(--vvd-color-neutral-600)}.base.disabled{--_low-ink-color:var(--_appearance-color-text)}.label:not(slot),.label::slotted(label){font:var(--vvd-typography-base);grid-area:1/1/auto/4;box-sizing:initial!important;padding:initial!important;margin:initial!important;color:var(--vvd-color-canvas-text)!important}.char-count+.label:not(slot),.char-count+.label::slotted(label){grid-column:1/3}.char-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.label-wrapper{grid-area:1/1/auto/4}.char-count+.label-wrapper{grid-column:1/3}.fieldset{background-color:var(--_appearance-color-fill);font:var(--vvd-typography-base);grid-column:1/4;align-items:center;padding-block:0;transition:color .2s,background-color .2s;display:flex;position:relative}.fieldset:after{border-radius:inherit;block-size:100%;box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);content:\"\";pointer-events:none;inline-size:100%;transition:box-shadow .2s;display:block;position:absolute}.fieldset:focus-visible{outline:none}.base>.fieldset{block-size:var(--_text-field-block-size)}.base:not(.shape-pill) .fieldset{border-radius:var(--_text-field-border-radius)}.base.shape-pill .fieldset{border-radius:var(--_text-field-pill-border-radius)}.wrapper{border-radius:inherit;block-size:100%;inline-size:100%}.control{border-radius:inherit;text-align:start}.control:not(slot),.control::slotted(input){font:inherit;text-align:inherit;outline:#0000;box-sizing:border-box!important;border-radius:inherit!important;width:100%!important;margin:initial!important;appearance:none!important;block-size:100%!important;color:inherit!important;padding-block:0!important;padding-inline:var(--_text-field-gutter-start) var(--_text-field-gutter-end)!important;background-color:#0000!important;border:0!important}.control:not(slot,:focus),.control::slotted(input:not(:focus)){text-overflow:ellipsis!important}.control:not(slot):disabled,.control::slotted(input:disabled){cursor:not-allowed!important;opacity:1!important;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control:not(slot)::placeholder{opacity:1!important;-webkit-text-fill-color:var(--_low-ink-color)!important}.control::slotted(input:-webkit-autofill){-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control:not(slot):-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.has-icon .control:not(slot),.has-icon .control::slotted(input){padding-inline-start:calc(var(--_text-field-icon-size) + var(--_text-field-gutter-start) * 2)!important}.icon{z-index:1;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);line-height:1;position:absolute;inset-block-start:50%;inset-inline-start:calc(100% + var(--_text-field-gutter-start));transform:translateY(-50%)}.leading-items-wrapper{position:relative}.base.no-leading .leading-items-wrapper{display:none}.action-items-wrapper{margin-inline-end:4px}.base:not(.action-items) .action-items-wrapper{display:none}@supports selector(:has(*)){.base:not(.has-activedescendant) .fieldset:has(.wrapper .control:focus-within):after{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}}@supports not selector(:has(*)){.base:not(.has-activedescendant) .wrapper:focus-within:after{box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px));--focus-stroke-gap-color:transparent;z-index:1;border-radius:inherit;content:\"\";pointer-events:none;display:block;position:absolute;inset:0}}:host([internal-part]) .fieldset{font:var(--vvd-typography-heading-4);background-color:#0000;line-height:1.1}:host([internal-part]) .fieldset:not(:focus-within):after{block-size:1px;inset-block-end:0}@supports selector(:has(*)){:host([internal-part]) .fieldset:has(.action-items-wrapper:focus-within):after{block-size:1px;inset-block-end:0}}:host([internal-part]) .control{text-align:center}slot[name=_mirrored-helper-text]{display:none}.base{--_text-field-gutter-end:70px}.control::-webkit-outer-spin-button{appearance:none}.control::-webkit-inner-spin-button{appearance:none}.control-buttons{z-index:1;display:flex;position:absolute;right:3px}.readonly .control-buttons,.disabled .control-buttons{pointer-events:none}.control-buttons .divider{margin-block:8px}.control-buttons>*{flex-shrink:0}";
24
+ var number_field_default = ".label-wrapper{align-items:center;gap:var(--label-wrapper-gap,4px);flex-direction:row;display:flex}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 auto}:host{display:inline-block}.base{--_text-field-gutter-start:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);--_text-field-gutter-end:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);--_text-field-icon-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2);--_text-field-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)));--_text-field-border-radius:8px;--_text-field-pill-border-radius:24px;grid-template-columns:min-content 1fr max-content;align-items:center;gap:4px;width:100%;display:inline-grid}.base.size-condensed{--_text-field-gutter-start:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)) / 2);--_text-field-gutter-end:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)) / 2);--_text-field-icon-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8)) / 2);--_text-field-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8));--_text-field-border-radius:4px}.base{user-select:none}.base:not(.disabled){--_low-ink-color:var(--vvd-color-neutral-600)}.base.disabled{--_low-ink-color:var(--_appearance-color-text)}.label:not(slot),.label::slotted(label){font:var(--vvd-typography-base);grid-area:1/1/auto/4;box-sizing:initial!important;padding:initial!important;margin:initial!important;color:var(--vvd-color-canvas-text)!important}.char-count+.label:not(slot),.char-count+.label::slotted(label){grid-column:1/3}.char-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.label-wrapper{grid-area:1/1/auto/4}.char-count+.label-wrapper{grid-column:1/3}.fieldset{background-color:var(--_appearance-color-fill);font:var(--vvd-typography-base);grid-column:1/4;align-items:center;padding-block:0;transition:color .2s,background-color .2s;display:flex;position:relative}.fieldset:after{border-radius:inherit;block-size:100%;box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);content:\"\";pointer-events:none;inline-size:100%;transition:box-shadow .2s;display:block;position:absolute}.fieldset:focus-visible{outline:none}.base>.fieldset{block-size:var(--_text-field-block-size)}.base:not(.shape-pill) .fieldset{border-radius:var(--_text-field-border-radius)}.base.shape-pill .fieldset{border-radius:var(--_text-field-pill-border-radius)}.wrapper{border-radius:inherit;block-size:100%;inline-size:100%}.control{border-radius:inherit;text-align:start}.control:not(slot),.control::slotted(input){font:inherit;text-align:inherit;outline:#0000;box-sizing:border-box!important;border-radius:inherit!important;width:100%!important;margin:initial!important;appearance:none!important;block-size:100%!important;color:inherit!important;padding-block:0!important;padding-inline:var(--_text-field-gutter-start) var(--_text-field-gutter-end)!important;background-color:#0000!important;border:0!important}.control:not(slot,:focus),.control::slotted(input:not(:focus)){text-overflow:ellipsis!important}.control:not(slot):disabled,.control::slotted(input:disabled){cursor:not-allowed!important;opacity:1!important;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control:not(slot)::placeholder{opacity:1!important;-webkit-text-fill-color:var(--_low-ink-color)!important}.control::slotted(input:-webkit-autofill),.control:not(slot):-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control::slotted(input:autofill),.control:not(slot):autofill{-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.has-icon .control:not(slot),.has-icon .control::slotted(input){padding-inline-start:calc(var(--_text-field-icon-size) + var(--_text-field-gutter-start) * 2)!important}.icon{z-index:1;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);line-height:1;position:absolute;inset-block-start:50%;inset-inline-start:calc(100% + var(--_text-field-gutter-start));transform:translateY(-50%)}.leading-items-wrapper{position:relative}.base.no-leading .leading-items-wrapper{display:none}.action-items-wrapper{margin-inline-end:4px}.base:not(.action-items) .action-items-wrapper{display:none}@supports selector(:has(*)){.base:not(.has-activedescendant) .fieldset:has(.wrapper .control:focus-within):after{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}}@supports not selector(:has(*)){.base:not(.has-activedescendant) .wrapper:focus-within:after{box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px));--focus-stroke-gap-color:transparent;z-index:1;border-radius:inherit;content:\"\";pointer-events:none;display:block;position:absolute;inset:0}}:host([internal-part]) .fieldset{font:var(--vvd-typography-heading-4);background-color:#0000;line-height:1.1}:host([internal-part]) .fieldset:not(:focus-within):after{block-size:1px;inset-block-end:0}@supports selector(:has(*)){:host([internal-part]) .fieldset:has(.action-items-wrapper:focus-within):after{block-size:1px;inset-block-end:0}}:host([internal-part]) .control{text-align:center}slot[name=_mirrored-helper-text]{display:none}.base{--_text-field-gutter-end:70px}.control::-webkit-outer-spin-button,.control::-webkit-inner-spin-button{appearance:none}.control-buttons{z-index:1;display:flex;position:absolute;right:3px}.readonly .control-buttons,.disabled .control-buttons{pointer-events:none}.control-buttons .divider{margin-block:8px}.control-buttons>*{flex-shrink:0}";
25
25
  //#endregion
26
26
  //#region src/lib/number-field/number-field.ts
27
27
  var numberFieldAppearance = require_component_enum.componentEnum(["fieldset", "ghost"], "fieldset");
@@ -21,7 +21,7 @@ import { t as dividerDefinition } from "./definition36.js";
21
21
  import { Updates, attr, html, nullableNumberConverter, observable, ref, slotted, when } from "@microsoft/fast-element";
22
22
  import { classNames, keyArrowDown, keyArrowUp } from "@microsoft/fast-web-utilities";
23
23
  //#region src/lib/number-field/number-field.scss?inline
24
- var number_field_default = ".label-wrapper{align-items:center;gap:var(--label-wrapper-gap,4px);flex-direction:row;display:flex}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 auto}:host{display:inline-block}.base{--_text-field-gutter-start:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);--_text-field-gutter-end:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);--_text-field-icon-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2);--_text-field-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)));--_text-field-border-radius:8px;--_text-field-pill-border-radius:24px;grid-template-columns:min-content 1fr max-content;align-items:center;gap:4px;width:100%;display:inline-grid}.base.size-condensed{--_text-field-gutter-start:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)) / 2);--_text-field-gutter-end:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)) / 2);--_text-field-icon-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8)) / 2);--_text-field-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8));--_text-field-border-radius:4px}.base{user-select:none}.base:not(.disabled){--_low-ink-color:var(--vvd-color-neutral-600)}.base.disabled{--_low-ink-color:var(--_appearance-color-text)}.label:not(slot),.label::slotted(label){font:var(--vvd-typography-base);grid-area:1/1/auto/4;box-sizing:initial!important;padding:initial!important;margin:initial!important;color:var(--vvd-color-canvas-text)!important}.char-count+.label:not(slot),.char-count+.label::slotted(label){grid-column:1/3}.char-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.label-wrapper{grid-area:1/1/auto/4}.char-count+.label-wrapper{grid-column:1/3}.fieldset{background-color:var(--_appearance-color-fill);font:var(--vvd-typography-base);grid-column:1/4;align-items:center;padding-block:0;transition:color .2s,background-color .2s;display:flex;position:relative}.fieldset:after{border-radius:inherit;block-size:100%;box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);content:\"\";pointer-events:none;inline-size:100%;transition:box-shadow .2s;display:block;position:absolute}.fieldset:focus-visible{outline:none}.base>.fieldset{block-size:var(--_text-field-block-size)}.base:not(.shape-pill) .fieldset{border-radius:var(--_text-field-border-radius)}.base.shape-pill .fieldset{border-radius:var(--_text-field-pill-border-radius)}.wrapper{border-radius:inherit;block-size:100%;inline-size:100%}.control{border-radius:inherit;text-align:start}.control:not(slot),.control::slotted(input){font:inherit;text-align:inherit;outline:#0000;box-sizing:border-box!important;border-radius:inherit!important;width:100%!important;margin:initial!important;appearance:none!important;block-size:100%!important;color:inherit!important;padding-block:0!important;padding-inline:var(--_text-field-gutter-start) var(--_text-field-gutter-end)!important;background-color:#0000!important;border:0!important}.control:not(slot,:focus),.control::slotted(input:not(:focus)){text-overflow:ellipsis!important}.control:not(slot):disabled,.control::slotted(input:disabled){cursor:not-allowed!important;opacity:1!important;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control:not(slot)::placeholder{opacity:1!important;-webkit-text-fill-color:var(--_low-ink-color)!important}.control::slotted(input:-webkit-autofill){-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control:not(slot):-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.has-icon .control:not(slot),.has-icon .control::slotted(input){padding-inline-start:calc(var(--_text-field-icon-size) + var(--_text-field-gutter-start) * 2)!important}.icon{z-index:1;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);line-height:1;position:absolute;inset-block-start:50%;inset-inline-start:calc(100% + var(--_text-field-gutter-start));transform:translateY(-50%)}.leading-items-wrapper{position:relative}.base.no-leading .leading-items-wrapper{display:none}.action-items-wrapper{margin-inline-end:4px}.base:not(.action-items) .action-items-wrapper{display:none}@supports selector(:has(*)){.base:not(.has-activedescendant) .fieldset:has(.wrapper .control:focus-within):after{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}}@supports not selector(:has(*)){.base:not(.has-activedescendant) .wrapper:focus-within:after{box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px));--focus-stroke-gap-color:transparent;z-index:1;border-radius:inherit;content:\"\";pointer-events:none;display:block;position:absolute;inset:0}}:host([internal-part]) .fieldset{font:var(--vvd-typography-heading-4);background-color:#0000;line-height:1.1}:host([internal-part]) .fieldset:not(:focus-within):after{block-size:1px;inset-block-end:0}@supports selector(:has(*)){:host([internal-part]) .fieldset:has(.action-items-wrapper:focus-within):after{block-size:1px;inset-block-end:0}}:host([internal-part]) .control{text-align:center}slot[name=_mirrored-helper-text]{display:none}.base{--_text-field-gutter-end:70px}.control::-webkit-outer-spin-button{appearance:none}.control::-webkit-inner-spin-button{appearance:none}.control-buttons{z-index:1;display:flex;position:absolute;right:3px}.readonly .control-buttons,.disabled .control-buttons{pointer-events:none}.control-buttons .divider{margin-block:8px}.control-buttons>*{flex-shrink:0}";
24
+ var number_field_default = ".label-wrapper{align-items:center;gap:var(--label-wrapper-gap,4px);flex-direction:row;display:flex}.label-wrapper[hidden]{display:none}.label:not(slot),.label::slotted(label){flex:0 auto}:host{display:inline-block}.base{--_text-field-gutter-start:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);--_text-field-gutter-end:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2.5);--_text-field-icon-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2))) / 2);--_text-field-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2)));--_text-field-border-radius:8px;--_text-field-pill-border-radius:24px;grid-template-columns:min-content 1fr max-content;align-items:center;gap:4px;width:100%;display:inline-grid}.base.size-condensed{--_text-field-gutter-start:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)) / 2);--_text-field-gutter-end:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 16)) / 2);--_text-field-icon-size:calc(calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8)) / 2);--_text-field-block-size:calc(1px * (40 + 4 * clamp(-1, var(--vvd-size-density,0), 2) - 8));--_text-field-border-radius:4px}.base{user-select:none}.base:not(.disabled){--_low-ink-color:var(--vvd-color-neutral-600)}.base.disabled{--_low-ink-color:var(--_appearance-color-text)}.label:not(slot),.label::slotted(label){font:var(--vvd-typography-base);grid-area:1/1/auto/4;box-sizing:initial!important;padding:initial!important;margin:initial!important;color:var(--vvd-color-canvas-text)!important}.char-count+.label:not(slot),.char-count+.label::slotted(label){grid-column:1/3}.char-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.label-wrapper{grid-area:1/1/auto/4}.char-count+.label-wrapper{grid-column:1/3}.fieldset{background-color:var(--_appearance-color-fill);font:var(--vvd-typography-base);grid-column:1/4;align-items:center;padding-block:0;transition:color .2s,background-color .2s;display:flex;position:relative}.fieldset:after{border-radius:inherit;block-size:100%;box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);content:\"\";pointer-events:none;inline-size:100%;transition:box-shadow .2s;display:block;position:absolute}.fieldset:focus-visible{outline:none}.base>.fieldset{block-size:var(--_text-field-block-size)}.base:not(.shape-pill) .fieldset{border-radius:var(--_text-field-border-radius)}.base.shape-pill .fieldset{border-radius:var(--_text-field-pill-border-radius)}.wrapper{border-radius:inherit;block-size:100%;inline-size:100%}.control{border-radius:inherit;text-align:start}.control:not(slot),.control::slotted(input){font:inherit;text-align:inherit;outline:#0000;box-sizing:border-box!important;border-radius:inherit!important;width:100%!important;margin:initial!important;appearance:none!important;block-size:100%!important;color:inherit!important;padding-block:0!important;padding-inline:var(--_text-field-gutter-start) var(--_text-field-gutter-end)!important;background-color:#0000!important;border:0!important}.control:not(slot,:focus),.control::slotted(input:not(:focus)){text-overflow:ellipsis!important}.control:not(slot):disabled,.control::slotted(input:disabled){cursor:not-allowed!important;opacity:1!important;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control:not(slot)::placeholder{opacity:1!important;-webkit-text-fill-color:var(--_low-ink-color)!important}.control::slotted(input:-webkit-autofill),.control:not(slot):-webkit-autofill{-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.control::slotted(input:autofill),.control:not(slot):autofill{-webkit-box-shadow:0 0 0 1000px var(--_appearance-color-fill) inset;-webkit-text-fill-color:var(--_appearance-color-text)!important}.has-icon .control:not(slot),.has-icon .control::slotted(input){padding-inline-start:calc(var(--_text-field-icon-size) + var(--_text-field-gutter-start) * 2)!important}.icon{z-index:1;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);line-height:1;position:absolute;inset-block-start:50%;inset-inline-start:calc(100% + var(--_text-field-gutter-start));transform:translateY(-50%)}.leading-items-wrapper{position:relative}.base.no-leading .leading-items-wrapper{display:none}.action-items-wrapper{margin-inline-end:4px}.base:not(.action-items) .action-items-wrapper{display:none}@supports selector(:has(*)){.base:not(.has-activedescendant) .fieldset:has(.wrapper .control:focus-within):after{--focus-stroke-gap-color:transparent;box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px))}}@supports not selector(:has(*)){.base:not(.has-activedescendant) .wrapper:focus-within:after{box-shadow:0 0 0 4px color-mix(in sRGB, var(--focus-stroke-color,var(--vvd-color-cta-500)), transparent 85%), inset 0 0 0 3px var(--focus-stroke-gap-color,currentColor);outline:1px solid var(--focus-stroke-color,var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset,0px));--focus-stroke-gap-color:transparent;z-index:1;border-radius:inherit;content:\"\";pointer-events:none;display:block;position:absolute;inset:0}}:host([internal-part]) .fieldset{font:var(--vvd-typography-heading-4);background-color:#0000;line-height:1.1}:host([internal-part]) .fieldset:not(:focus-within):after{block-size:1px;inset-block-end:0}@supports selector(:has(*)){:host([internal-part]) .fieldset:has(.action-items-wrapper:focus-within):after{block-size:1px;inset-block-end:0}}:host([internal-part]) .control{text-align:center}slot[name=_mirrored-helper-text]{display:none}.base{--_text-field-gutter-end:70px}.control::-webkit-outer-spin-button,.control::-webkit-inner-spin-button{appearance:none}.control-buttons{z-index:1;display:flex;position:absolute;right:3px}.readonly .control-buttons,.disabled .control-buttons{pointer-events:none}.control-buttons .divider{margin-block:8px}.control-buttons>*{flex-shrink:0}";
25
25
  //#endregion
26
26
  //#region src/lib/number-field/number-field.ts
27
27
  var numberFieldAppearance = componentEnum(["fieldset", "ghost"], "fieldset");
@@ -15,6 +15,57 @@ var popover_default = ":host{display:inline-block}.base{white-space:initial;--sc
15
15
  //#endregion
16
16
  //#region src/lib/popover/popover.ts
17
17
  /**
18
+ * Roles that support the `aria-expanded` attribute.
19
+ * See https://www.w3.org/TR/wai-aria-1.2/#aria-expanded
20
+ */
21
+ var EXPANDABLE_ANCHOR_ROLES = /* @__PURE__ */ new Set([
22
+ "application",
23
+ "button",
24
+ "checkbox",
25
+ "columnheader",
26
+ "combobox",
27
+ "gridcell",
28
+ "link",
29
+ "listbox",
30
+ "menuitem",
31
+ "menuitemcheckbox",
32
+ "menuitemradio",
33
+ "row",
34
+ "rowheader",
35
+ "switch",
36
+ "tab",
37
+ "treeitem"
38
+ ]);
39
+ /**
40
+ * Whether a `role` attribute value describes a role that supports
41
+ * `aria-expanded`. Role values are case-insensitive and may list several
42
+ * space-separated fallback roles (e.g. `role="button menuitem"`), so any
43
+ * matching token is accepted.
44
+ */
45
+ function isExpandableRole(role) {
46
+ return role.toLowerCase().split(/\s+/).some((token) => EXPANDABLE_ANCHOR_ROLES.has(token));
47
+ }
48
+ /** Input types with button semantics, i.e. an implicit role of `button`. */
49
+ var BUTTON_LIKE_INPUT_TYPES = /* @__PURE__ */ new Set([
50
+ "button",
51
+ "submit",
52
+ "reset",
53
+ "image"
54
+ ]);
55
+ /**
56
+ * Determines whether the trigger ARIA attributes (`aria-haspopup`,
57
+ * `aria-expanded`) may be applied to the anchor. They are only permitted on
58
+ * elements with an appropriate interactive role, not on elements with a
59
+ * generic role like a plain `<span>`.
60
+ */
61
+ function anchorSupportsTriggerAria(anchor) {
62
+ if (anchor._vividAriaBehaviour === "delegate") return true;
63
+ if (anchor.tagName.includes("-") && !window.customElements.get(anchor.tagName.toLowerCase())) return true;
64
+ const explicitRole = anchor.getAttribute("role");
65
+ if (explicitRole !== null) return isExpandableRole(explicitRole);
66
+ return anchor instanceof HTMLButtonElement || anchor instanceof HTMLInputElement && BUTTON_LIKE_INPUT_TYPES.has(anchor.type) || (anchor instanceof HTMLAnchorElement || anchor instanceof HTMLAreaElement) && anchor.hasAttribute("href") || anchor instanceof HTMLSelectElement || anchor.tagName === "SUMMARY";
67
+ }
68
+ /**
18
69
  * @public
19
70
  * @component popover
20
71
  * @slot - Default slot for the popover content.
@@ -35,6 +86,7 @@ var Popover = class extends require_localized.Localized(require_delegates_aria.D
35
86
  this.arrow = false;
36
87
  this.open = false;
37
88
  this.#currentAnchor = null;
89
+ this.#currentAnchorSupportsTriggerAria = false;
38
90
  this.#manualToggle = () => {
39
91
  this._popoverEl.togglePopover();
40
92
  };
@@ -74,6 +126,12 @@ var Popover = class extends require_localized.Localized(require_delegates_aria.D
74
126
  }
75
127
  /** @internal */
76
128
  #currentAnchor;
129
+ /**
130
+ * Whether the current anchor may receive the trigger ARIA attributes
131
+ * (`aria-haspopup`, `aria-expanded`).
132
+ * @internal
133
+ */
134
+ #currentAnchorSupportsTriggerAria;
77
135
  /** @internal */
78
136
  #updateAnchor() {
79
137
  if (!this._popoverEl) return;
@@ -88,15 +146,20 @@ var Popover = class extends require_localized.Localized(require_delegates_aria.D
88
146
  }
89
147
  /** @internal */
90
148
  #bindTrigger(anchor) {
91
- anchor.setAttribute("aria-haspopup", "dialog");
149
+ this.#currentAnchorSupportsTriggerAria = anchorSupportsTriggerAria(anchor);
150
+ if (this.#currentAnchorSupportsTriggerAria) anchor.setAttribute("aria-haspopup", "dialog");
151
+ else console.warn(`[popover] The anchor element <${anchor.tagName.toLowerCase()}> does not have button-like semantics, so the "aria-haspopup" and "aria-expanded" attributes will not be applied to it. To make the Popover trigger accessible, use a button element (e.g. <vwc-button> or <button>) or provide an appropriate role (e.g. role="button") on the anchor.`);
92
152
  this.#updateAnchorExpandedState();
93
153
  if (anchor instanceof HTMLButtonElement || anchor instanceof HTMLInputElement) anchor.popoverTargetElement = this._popoverEl;
94
154
  else anchor.addEventListener("click", this.#manualToggle);
95
155
  }
96
156
  /** @internal */
97
157
  #unbindTrigger(anchor) {
98
- anchor.removeAttribute("aria-haspopup");
99
- anchor.ariaExpanded = null;
158
+ if (this.#currentAnchorSupportsTriggerAria) {
159
+ anchor.removeAttribute("aria-haspopup");
160
+ anchor.ariaExpanded = null;
161
+ }
162
+ this.#currentAnchorSupportsTriggerAria = false;
100
163
  require_anchored.clearAnchorExpanded(anchor);
101
164
  if (anchor instanceof HTMLButtonElement || anchor instanceof HTMLInputElement) anchor.popoverTargetElement = null;
102
165
  else anchor.removeEventListener("click", this.#manualToggle);
@@ -105,11 +168,13 @@ var Popover = class extends require_localized.Localized(require_delegates_aria.D
105
168
  * Reflects the open state onto the anchor as `aria-expanded` (for assistive
106
169
  * technology) and `data-expanded` (a styling hook, e.g. to show a pressed
107
170
  * trigger while the Popover is open). Mirrors the Menu anchor behaviour.
171
+ * `aria-expanded` is only applied to anchors with an appropriate interactive
172
+ * role, as it is not permitted on elements with a generic role.
108
173
  * @internal
109
174
  */
110
175
  #updateAnchorExpandedState() {
111
176
  if (!this.#currentAnchor) return;
112
- this.#currentAnchor.ariaExpanded = this.open.toString();
177
+ if (this.#currentAnchorSupportsTriggerAria) this.#currentAnchor.ariaExpanded = this.open.toString();
113
178
  require_anchored.setAnchorExpanded(this.#currentAnchor, this.open);
114
179
  }
115
180
  /** @internal */
@@ -15,6 +15,57 @@ var popover_default = ":host{display:inline-block}.base{white-space:initial;--sc
15
15
  //#endregion
16
16
  //#region src/lib/popover/popover.ts
17
17
  /**
18
+ * Roles that support the `aria-expanded` attribute.
19
+ * See https://www.w3.org/TR/wai-aria-1.2/#aria-expanded
20
+ */
21
+ var EXPANDABLE_ANCHOR_ROLES = /* @__PURE__ */ new Set([
22
+ "application",
23
+ "button",
24
+ "checkbox",
25
+ "columnheader",
26
+ "combobox",
27
+ "gridcell",
28
+ "link",
29
+ "listbox",
30
+ "menuitem",
31
+ "menuitemcheckbox",
32
+ "menuitemradio",
33
+ "row",
34
+ "rowheader",
35
+ "switch",
36
+ "tab",
37
+ "treeitem"
38
+ ]);
39
+ /**
40
+ * Whether a `role` attribute value describes a role that supports
41
+ * `aria-expanded`. Role values are case-insensitive and may list several
42
+ * space-separated fallback roles (e.g. `role="button menuitem"`), so any
43
+ * matching token is accepted.
44
+ */
45
+ function isExpandableRole(role) {
46
+ return role.toLowerCase().split(/\s+/).some((token) => EXPANDABLE_ANCHOR_ROLES.has(token));
47
+ }
48
+ /** Input types with button semantics, i.e. an implicit role of `button`. */
49
+ var BUTTON_LIKE_INPUT_TYPES = /* @__PURE__ */ new Set([
50
+ "button",
51
+ "submit",
52
+ "reset",
53
+ "image"
54
+ ]);
55
+ /**
56
+ * Determines whether the trigger ARIA attributes (`aria-haspopup`,
57
+ * `aria-expanded`) may be applied to the anchor. They are only permitted on
58
+ * elements with an appropriate interactive role, not on elements with a
59
+ * generic role like a plain `<span>`.
60
+ */
61
+ function anchorSupportsTriggerAria(anchor) {
62
+ if (anchor._vividAriaBehaviour === "delegate") return true;
63
+ if (anchor.tagName.includes("-") && !window.customElements.get(anchor.tagName.toLowerCase())) return true;
64
+ const explicitRole = anchor.getAttribute("role");
65
+ if (explicitRole !== null) return isExpandableRole(explicitRole);
66
+ return anchor instanceof HTMLButtonElement || anchor instanceof HTMLInputElement && BUTTON_LIKE_INPUT_TYPES.has(anchor.type) || (anchor instanceof HTMLAnchorElement || anchor instanceof HTMLAreaElement) && anchor.hasAttribute("href") || anchor instanceof HTMLSelectElement || anchor.tagName === "SUMMARY";
67
+ }
68
+ /**
18
69
  * @public
19
70
  * @component popover
20
71
  * @slot - Default slot for the popover content.
@@ -35,6 +86,7 @@ var Popover = class extends Localized(DelegatesAria(VividElement)) {
35
86
  this.arrow = false;
36
87
  this.open = false;
37
88
  this.#currentAnchor = null;
89
+ this.#currentAnchorSupportsTriggerAria = false;
38
90
  this.#manualToggle = () => {
39
91
  this._popoverEl.togglePopover();
40
92
  };
@@ -74,6 +126,12 @@ var Popover = class extends Localized(DelegatesAria(VividElement)) {
74
126
  }
75
127
  /** @internal */
76
128
  #currentAnchor;
129
+ /**
130
+ * Whether the current anchor may receive the trigger ARIA attributes
131
+ * (`aria-haspopup`, `aria-expanded`).
132
+ * @internal
133
+ */
134
+ #currentAnchorSupportsTriggerAria;
77
135
  /** @internal */
78
136
  #updateAnchor() {
79
137
  if (!this._popoverEl) return;
@@ -88,15 +146,20 @@ var Popover = class extends Localized(DelegatesAria(VividElement)) {
88
146
  }
89
147
  /** @internal */
90
148
  #bindTrigger(anchor) {
91
- anchor.setAttribute("aria-haspopup", "dialog");
149
+ this.#currentAnchorSupportsTriggerAria = anchorSupportsTriggerAria(anchor);
150
+ if (this.#currentAnchorSupportsTriggerAria) anchor.setAttribute("aria-haspopup", "dialog");
151
+ else console.warn(`[popover] The anchor element <${anchor.tagName.toLowerCase()}> does not have button-like semantics, so the "aria-haspopup" and "aria-expanded" attributes will not be applied to it. To make the Popover trigger accessible, use a button element (e.g. <vwc-button> or <button>) or provide an appropriate role (e.g. role="button") on the anchor.`);
92
152
  this.#updateAnchorExpandedState();
93
153
  if (anchor instanceof HTMLButtonElement || anchor instanceof HTMLInputElement) anchor.popoverTargetElement = this._popoverEl;
94
154
  else anchor.addEventListener("click", this.#manualToggle);
95
155
  }
96
156
  /** @internal */
97
157
  #unbindTrigger(anchor) {
98
- anchor.removeAttribute("aria-haspopup");
99
- anchor.ariaExpanded = null;
158
+ if (this.#currentAnchorSupportsTriggerAria) {
159
+ anchor.removeAttribute("aria-haspopup");
160
+ anchor.ariaExpanded = null;
161
+ }
162
+ this.#currentAnchorSupportsTriggerAria = false;
100
163
  clearAnchorExpanded(anchor);
101
164
  if (anchor instanceof HTMLButtonElement || anchor instanceof HTMLInputElement) anchor.popoverTargetElement = null;
102
165
  else anchor.removeEventListener("click", this.#manualToggle);
@@ -105,11 +168,13 @@ var Popover = class extends Localized(DelegatesAria(VividElement)) {
105
168
  * Reflects the open state onto the anchor as `aria-expanded` (for assistive
106
169
  * technology) and `data-expanded` (a styling hook, e.g. to show a pressed
107
170
  * trigger while the Popover is open). Mirrors the Menu anchor behaviour.
171
+ * `aria-expanded` is only applied to anchors with an appropriate interactive
172
+ * role, as it is not permitted on elements with a generic role.
108
173
  * @internal
109
174
  */
110
175
  #updateAnchorExpandedState() {
111
176
  if (!this.#currentAnchor) return;
112
- this.#currentAnchor.ariaExpanded = this.open.toString();
177
+ if (this.#currentAnchorSupportsTriggerAria) this.#currentAnchor.ariaExpanded = this.open.toString();
113
178
  setAnchorExpanded(this.#currentAnchor, this.open);
114
179
  }
115
180
  /** @internal */
@@ -112,9 +112,10 @@ function getEffectiveAppearance(x) {
112
112
  }
113
113
  var getClasses = (x) => (0, _microsoft_fast_web_utilities.classNames)("control", `connotation-${buttonConnotation.parse(x.connotation)}`, `appearance-${getEffectiveAppearance(x)}`, "with-idle", "with-hover", "with-active", "with-disabled", ["disabled", x.disabled || x.pending], [`shape-${x.shape}`, Boolean(x.shape)], [`size-${x.size}`, Boolean(x.size)], ["icon-only", !x.label && !!(x.icon || x.iconSlottedContent?.length) && !x.dropdownIndicator], ["icon-trailing", x.iconTrailing], ["stacked", x.stacked], ["active", x.ariaExpanded === "true" || x.active]);
114
114
  function renderIconOrPending(context, icon, pending, size = require_enums.Size.Normal) {
115
- if (pending && size != require_enums.Size.SuperCondensed) {
115
+ if (pending) {
116
116
  const progressTag = context.tagFor(require_definition$1.ProgressRing);
117
117
  const progressSize = {
118
+ [require_enums.Size.SuperCondensed]: "-7",
118
119
  [require_enums.Size.Condensed]: "-6",
119
120
  [require_enums.Size.Normal]: "-5",
120
121
  [require_enums.Size.Expanded]: "-4"
@@ -112,9 +112,10 @@ function getEffectiveAppearance(x) {
112
112
  }
113
113
  var getClasses = (x) => classNames("control", `connotation-${buttonConnotation.parse(x.connotation)}`, `appearance-${getEffectiveAppearance(x)}`, "with-idle", "with-hover", "with-active", "with-disabled", ["disabled", x.disabled || x.pending], [`shape-${x.shape}`, Boolean(x.shape)], [`size-${x.size}`, Boolean(x.size)], ["icon-only", !x.label && !!(x.icon || x.iconSlottedContent?.length) && !x.dropdownIndicator], ["icon-trailing", x.iconTrailing], ["stacked", x.stacked], ["active", x.ariaExpanded === "true" || x.active]);
114
114
  function renderIconOrPending(context, icon, pending, size = Size.Normal) {
115
- if (pending && size != Size.SuperCondensed) {
115
+ if (pending) {
116
116
  const progressTag = context.tagFor(ProgressRing);
117
117
  const progressSize = {
118
+ [Size.SuperCondensed]: "-7",
118
119
  [Size.Condensed]: "-6",
119
120
  [Size.Normal]: "-5",
120
121
  [Size.Expanded]: "-4"