@vonage/vivid 5.27.0 → 5.28.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 (101) 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 +2052 -1998
  28. package/lib/badge/badge.d.ts +1 -0
  29. package/lib/badge/badge.template.d.ts +2 -1
  30. package/lib/icon/icon.d.ts +1 -1
  31. package/lib/popover/popover.d.ts +2 -1
  32. package/lib/progress-ring/progress-ring.d.ts +1 -1
  33. package/lib/rich-text-editor/rich-text-editor.d.ts +427 -0
  34. package/lib/rich-text-editor/rte/__tests__/async-generator.d.ts +1 -0
  35. package/lib/rich-text-editor/rte/features/atom.d.ts +6 -2
  36. package/lib/rich-text-editor/rte/instance.d.ts +2 -1
  37. package/lib/table/locale.d.ts +10 -0
  38. package/lib/table/table-sorting-button.d.ts +425 -0
  39. package/locales/de-DE.cjs +12 -0
  40. package/locales/de-DE.js +12 -0
  41. package/locales/en-GB.cjs +12 -0
  42. package/locales/en-GB.js +12 -0
  43. package/locales/ja-JP.cjs +12 -0
  44. package/locales/ja-JP.js +12 -0
  45. package/locales/zh-CN.cjs +12 -0
  46. package/locales/zh-CN.js +12 -0
  47. package/number-field/index.cjs +1 -1
  48. package/number-field/index.js +1 -1
  49. package/package.json +14 -14
  50. package/popover/index.cjs +2 -2
  51. package/popover/index.js +70 -37
  52. package/rich-text-editor/index.cjs +23 -17
  53. package/rich-text-editor/index.js +1653 -1588
  54. package/shared/localization/Locale.d.ts +2 -0
  55. package/table/index.cjs +17 -17
  56. package/table/index.js +50 -40
  57. package/unbundled/decorate.cjs +1 -1
  58. package/unbundled/decorate.js +1 -1
  59. package/unbundled/definition.cjs +1 -1
  60. package/unbundled/definition.js +1 -1
  61. package/unbundled/definition14.cjs +1 -1
  62. package/unbundled/definition14.js +1 -1
  63. package/unbundled/definition15.cjs +8 -3
  64. package/unbundled/definition15.js +8 -3
  65. package/unbundled/definition2.cjs +1 -1
  66. package/unbundled/definition2.js +1 -1
  67. package/unbundled/definition24.cjs +4 -4
  68. package/unbundled/definition24.js +4 -4
  69. package/unbundled/definition25.cjs +5 -1
  70. package/unbundled/definition25.js +5 -1
  71. package/unbundled/definition27.cjs +8 -5
  72. package/unbundled/definition27.js +8 -5
  73. package/unbundled/definition5.cjs +1 -1
  74. package/unbundled/definition5.js +1 -1
  75. package/unbundled/definition55.cjs +1 -1
  76. package/unbundled/definition55.js +1 -1
  77. package/unbundled/definition58.cjs +69 -4
  78. package/unbundled/definition58.js +69 -4
  79. package/unbundled/definition6.cjs +2 -1
  80. package/unbundled/definition6.js +2 -1
  81. package/unbundled/definition63.cjs +80 -21
  82. package/unbundled/definition63.js +80 -21
  83. package/unbundled/definition75.cjs +19 -6
  84. package/unbundled/definition75.js +20 -7
  85. package/unbundled/definition8.cjs +2 -2
  86. package/unbundled/definition8.js +2 -2
  87. package/unbundled/definition83.cjs +1 -1
  88. package/unbundled/definition83.js +1 -1
  89. package/unbundled/en-US.cjs +12 -0
  90. package/unbundled/en-US.js +12 -0
  91. package/unbundled/feedback-message.cjs +1 -1
  92. package/unbundled/feedback-message.js +1 -1
  93. package/unbundled/linkable.cjs +1 -1
  94. package/unbundled/linkable.js +1 -1
  95. package/unbundled/text-field.cjs +1 -1
  96. package/unbundled/text-field.js +1 -1
  97. package/unbundled/vivid-element.cjs +1 -1
  98. package/unbundled/vivid-element.js +1 -1
  99. package/video-player/index.cjs +1 -1
  100. package/video-player/index.js +1 -1
  101. package/vivid.api.json +63 -2
@@ -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",
@@ -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"
@@ -1,6 +1,7 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime.cjs");
2
2
  const require_vivid_element = require("./vivid-element.cjs");
3
3
  const require_decorate = require("./decorate.cjs");
4
+ const require_delegates_aria = require("./delegates-aria.cjs");
4
5
  const require_definition = require("./definition5.cjs");
5
6
  const require_localized = require("./localized.cjs");
6
7
  const require_definition$1 = require("./definition6.cjs");
@@ -32,7 +33,7 @@ let prosemirror_inputrules = require("prosemirror-inputrules");
32
33
  let prosemirror_transform = require("prosemirror-transform");
33
34
  let prosemirror_schema_basic = require("prosemirror-schema-basic");
34
35
  //#region src/lib/rich-text-editor/rich-text-editor.scss?inline
35
- var rich_text_editor_default = ":host{display:block}.rte{--editor-padding-inline:var(--rich-text-editor-padding-inline,16px);--editor-padding-block:var(--rich-text-editor-padding-block,calc(8px + var(--_border-width,0px)));block-size:100%;max-block-size:inherit;min-block-size:inherit;flex-direction:column;display:flex}.rte.appearance-fieldset{--_border-width:1px;border:var(--_border-width) solid var(--_appearance-color-outline);background-color:var(--_appearance-color-fill);border-radius:8px;transition:border-color .2s}.rte.appearance-fieldset:focus-within{--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))}.rte.appearance-fieldset .editor-viewport{border-start-start-radius:inherit;border-start-end-radius:inherit}.rte.appearance-fieldset .editor-scroll-area{background:0 0}.rte.appearance-fieldset .toolbar{border-end-end-radius:inherit;border-end-start-radius:inherit}.editor{display:contents}.editor-viewport{contain:layout;flex-direction:column;flex:1;min-block-size:0;display:flex;position:relative;overflow:hidden}.editor-scroll-area{background-color:var(--vvd-color-canvas);color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);--scrollbar-track-color:transparent;--scrollbar-thumb-color:color-mix(in sRGB, var(--vvd-color-neutral-950), transparent 70%);scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin;flex-direction:column;flex:1;min-block-size:0;display:flex;overflow-y:auto}.editor-scroll-area ::-webkit-scrollbar{width:4px}.editor-scroll-area ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.editor-scroll-area ::-webkit-scrollbar-thumb{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.popovers--disabled>*{display:none!important}";
36
+ var rich_text_editor_default = ":host{display:block}.rte{--editor-padding-inline:var(--rich-text-editor-padding-inline,16px);--editor-padding-block:var(--rich-text-editor-padding-block,8px);block-size:100%;max-block-size:inherit;min-block-size:inherit;flex-direction:column;display:flex}.rte.appearance-fieldset{background-color:var(--_appearance-color-fill);outline:1px solid var(--_appearance-color-outline);outline-offset:-1px;border-radius:8px;transition:outline-color .2s,background-color .2s}.rte.appearance-fieldset:focus-within{--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))}.rte.appearance-fieldset .editor-viewport{border-start-start-radius:inherit;border-start-end-radius:inherit}.rte.appearance-fieldset .editor-scroll-area{background:0 0}.rte.appearance-fieldset .toolbar{border-end-end-radius:inherit;border-end-start-radius:inherit}.editor{display:contents}.editor-viewport{contain:layout;flex-direction:column;flex:1;min-block-size:0;display:flex;position:relative;overflow:hidden}.editor-scroll-area{background-color:var(--vvd-color-canvas);color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);--scrollbar-track-color:transparent;--scrollbar-thumb-color:color-mix(in sRGB, var(--vvd-color-neutral-950), transparent 70%);scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin;flex-direction:column;flex:1;min-block-size:0;display:flex;overflow-y:auto}.editor-scroll-area ::-webkit-scrollbar{width:4px}.editor-scroll-area ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.editor-scroll-area ::-webkit-scrollbar-thumb{background-color:var(--scrollbar-fallback-track-color,var(--scrollbar-thumb-color));border:0;border-radius:4px}.popovers--disabled>*{display:none!important}";
36
37
  //#endregion
37
38
  //#region src/lib/rich-text-editor/rich-text-editor.ts
38
39
  /**
@@ -47,10 +48,16 @@ var rich_text_editor_default = ":host{display:block}.rte{--editor-padding-inline
47
48
  * @dynamicSlot `{ url: string }` inline-image-placeholder - Placeholder content for inline images.
48
49
  * @dynamicSlot `{ id: string }` suggestions-empty - Empty state if no suggestions are found.
49
50
  */
50
- var RichTextEditor = class extends require_localized.WithObservableLocale(require_vivid_element.VividElement) {
51
+ var RichTextEditor = class extends require_delegates_aria.DelegatesAria(require_localized.WithObservableLocale(require_vivid_element.VividElement)) {
52
+ constructor(..._args) {
53
+ super(..._args);
54
+ this._disabled = false;
55
+ }
51
56
  /** @internal */
52
57
  instanceChanged(prevInstance) {
53
58
  prevInstance?.[require_slottable_request.impl].destroyViewIfNeeded();
59
+ if (prevInstance) prevInstance[require_slottable_request.impl].onDisabledChanged = null;
60
+ this._disabled = false;
54
61
  this._initViewIfNeeded();
55
62
  prevInstance?.[require_slottable_request.impl].styles.removeStylesFrom(this.shadowRoot);
56
63
  this.instance?.[require_slottable_request.impl].styles.addStylesTo(this.shadowRoot);
@@ -59,7 +66,10 @@ var RichTextEditor = class extends require_localized.WithObservableLocale(requir
59
66
  const instance = this.instance?.[require_slottable_request.impl];
60
67
  if (instance && this.$fastController.isConnected && !instance.view) {
61
68
  this._syncStateIfNeeded();
62
- instance.createView(this._editorEl);
69
+ instance.onDisabledChanged = (disabled) => {
70
+ this._disabled = disabled;
71
+ };
72
+ instance.createView(this._editableEl);
63
73
  }
64
74
  }
65
75
  _destroyViewIfNeeded() {
@@ -72,6 +82,7 @@ var RichTextEditor = class extends require_localized.WithObservableLocale(requir
72
82
  disconnectedCallback() {
73
83
  super.disconnectedCallback();
74
84
  this._destroyViewIfNeeded();
85
+ if (this.instance) this.instance[require_slottable_request.impl].onDisabledChanged = null;
75
86
  }
76
87
  /** @internal */
77
88
  localeChanged() {
@@ -83,21 +94,37 @@ var RichTextEditor = class extends require_localized.WithObservableLocale(requir
83
94
  ctx: this._ctx
84
95
  });
85
96
  }
97
+ /** @internal */
98
+ focus(options) {
99
+ const view = this.instance?.[require_slottable_request.impl].view;
100
+ if (view && view.editable) {
101
+ this._editableEl.focus(options);
102
+ view.focus();
103
+ } else super.focus(options);
104
+ }
86
105
  };
87
106
  require_decorate.__decorate([_microsoft_fast_element.observable], RichTextEditor.prototype, "instance", void 0);
88
107
  require_decorate.__decorate([_microsoft_fast_element.attr], RichTextEditor.prototype, "appearance", void 0);
108
+ require_decorate.__decorate([_microsoft_fast_element.attr], RichTextEditor.prototype, "state", void 0);
109
+ require_decorate.__decorate([_microsoft_fast_element.observable], RichTextEditor.prototype, "_disabled", void 0);
89
110
  //#endregion
90
111
  //#region src/lib/rich-text-editor/rich-text-editor.template.ts
91
112
  var RichTextEditorTemplate = (ctx) => {
92
113
  return _microsoft_fast_element.html`<template :_ctx="${() => ctx}">
93
114
  <div
94
- class="${(x) => (0, _microsoft_fast_web_utilities.classNames)("rte", `connotation-accent`, "with-idle", "with-hover", [`appearance-${x.appearance}`, Boolean(x.appearance)])}"
115
+ class="${(x) => (0, _microsoft_fast_web_utilities.classNames)("rte", `connotation-accent`, "with-idle", "with-hover", "with-disabled", "with-error", "with-success", ["disabled", x._disabled], [`appearance-${x.appearance}`, Boolean(x.appearance)], ["error", x.state === "error"], ["success", x.state === "success"])}"
95
116
  >
96
117
  <slot name="editor-before"></slot>
97
- <div class="editor-viewport" ${(0, _microsoft_fast_element.ref)("editorViewportElement")}>
118
+ <div
119
+ class="editor-viewport"
120
+ part="editor-viewport"
121
+ ${(0, _microsoft_fast_element.ref)("editorViewportElement")}
122
+ >
98
123
  <div class="editor-scroll-area" part="editor-scrollable-area">
99
124
  <slot name="editor-start"></slot>
100
- <div class="editor rich-text" ${(0, _microsoft_fast_element.ref)("_editorEl")}></div>
125
+ <div class="editor rich-text">
126
+ <div part="editor" ${require_delegates_aria.delegateAria()} ${(0, _microsoft_fast_element.ref)("_editableEl")}></div>
127
+ </div>
101
128
  <div class="popovers"></div>
102
129
  <slot name="editor-end"></slot>
103
130
  </div>
@@ -246,7 +273,7 @@ var FeatureState = class {
246
273
  };
247
274
  //#endregion
248
275
  //#region src/lib/rich-text-editor/rte/features/internal/core.style.scss?inline
249
- var core_style_default = ".ProseMirror{box-sizing:border-box;padding:var(--editor-padding-block) var(--editor-padding-inline);outline:none;flex:1 0 0}.ProseMirror-selectednode{--focus-stroke-gap-color:transparent;--focus-border-radius:2px;outline:none;position:relative}.ProseMirror-selectednode: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));border-radius:var(--focus-border-radius,inherit);block-size:calc(100% + var(--focus-block-size-addition,4px));content:\"\";inline-size:calc(100% + var(--focus-block-size-addition,4px));display:block;position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.editor--disabled .ProseMirror{color:var(--vvd-color-neutral-300);cursor:not-allowed}";
276
+ var core_style_default = ".ProseMirror{box-sizing:border-box;padding:var(--editor-padding-block) var(--editor-padding-inline);outline:none;flex:1 0 0}.ProseMirror-selectednode{--focus-stroke-gap-color:transparent;--focus-border-radius:2px;outline:none;position:relative}.ProseMirror-selectednode: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));border-radius:var(--focus-border-radius,inherit);block-size:calc(100% + var(--focus-block-size-addition,4px));content:\"\";inline-size:calc(100% + var(--focus-block-size-addition,4px));display:block;position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%)}.editor--disabled .ProseMirror{color:var(--_appearance-color-text,var(--vvd-color-neutral-300));cursor:not-allowed}";
250
277
  //#endregion
251
278
  //#region src/lib/rich-text-editor/rte/features/internal/foreign-html.ts
252
279
  var RteForeignHtmlFeatureImpl = class extends require_slottable_request.RteFeatureImpl {
@@ -390,6 +417,7 @@ var RteCoreImpl = class extends require_slottable_request.RteFeatureImpl {
390
417
  const disabled = this.disabled.getValue(rte);
391
418
  popovers.classList.toggle("popovers--disabled", disabled);
392
419
  view.dom.parentElement.classList.toggle("editor--disabled", disabled);
420
+ rte.onDisabledChanged?.(disabled);
393
421
  };
394
422
  updateDisabled();
395
423
  return { update: () => {
@@ -651,6 +679,7 @@ var RteInstanceImpl = class {
651
679
  constructor(instanceFacade, configFacade, options) {
652
680
  this.options = options;
653
681
  this.view = null;
682
+ this.onDisabledChanged = null;
654
683
  this.dispatchTransaction = (tr) => {
655
684
  const prevState = this.state;
656
685
  this.state = this.state.apply(tr);
@@ -682,12 +711,9 @@ var RteInstanceImpl = class {
682
711
  this.updateHostState(currentHostState);
683
712
  this.view?.updateState(this.state);
684
713
  }
685
- createView(target) {
714
+ createView(mountTarget) {
686
715
  const core = this.config.featureMap.get("RteCore");
687
- this.view = new prosemirror_view.EditorView((editor) => {
688
- editor.part = "editor";
689
- target.appendChild(editor);
690
- }, {
716
+ this.view = new prosemirror_view.EditorView({ mount: mountTarget }, {
691
717
  state: this.state,
692
718
  dispatchTransaction: this.dispatchTransaction,
693
719
  ...core?.scrollThreshold !== void 0 && { scrollThreshold: core.scrollThreshold },
@@ -3204,24 +3230,57 @@ var RteToolbarButtonFeature = require_slottable_request.featureFacade(RteToolbar
3204
3230
  //#endregion
3205
3231
  //#region src/lib/rich-text-editor/rte/features/atom.ts
3206
3232
  var isGenerator = (value) => value !== null && typeof value === "object" && "next" in value;
3233
+ var VALID_VARIANT = /^[a-zA-Z0-9-]+$/;
3234
+ var normalizeResolvedValue = (value) => {
3235
+ if (value == null) return {
3236
+ text: "",
3237
+ variant: []
3238
+ };
3239
+ if (typeof value === "string") return {
3240
+ text: value,
3241
+ variant: []
3242
+ };
3243
+ return {
3244
+ text: value.text,
3245
+ variant: (value.variant ?? []).filter((v) => {
3246
+ if (!VALID_VARIANT.test(v)) {
3247
+ console.warn(`[rich-text-editor] Ignoring invalid atom variant "${v}".`);
3248
+ return false;
3249
+ }
3250
+ return true;
3251
+ })
3252
+ };
3253
+ };
3254
+ var partsFor = (atomName, variant) => [`node--${atomName}`, ...variant.map((v) => `atom-variant--${v}`)].join(" ");
3207
3255
  var AtomView = class {
3208
3256
  constructor(node, config, atomName) {
3257
+ this.atomName = atomName;
3209
3258
  this.dom = document.createElement("span");
3210
3259
  this.dom.className = "atom-wrapper";
3211
- this.dom.setAttribute("part", `node--${atomName}`);
3212
3260
  const result = config.resolveValue ? config.resolveValue(node.attrs.value) : node.attrs.value;
3213
3261
  if (isGenerator(result)) {
3214
- this.dom.textContent = "";
3262
+ this.render(null);
3215
3263
  this.handleResolvedGenerator(result);
3216
- } else this.dom.textContent = result ?? "";
3264
+ } else this.render(result);
3265
+ }
3266
+ render(value) {
3267
+ const { text, variant } = normalizeResolvedValue(value);
3268
+ if (this.dom.textContent !== text) this.dom.textContent = text;
3269
+ const parts = partsFor(this.atomName, variant);
3270
+ if (this.dom.getAttribute("part") !== parts) this.dom.setAttribute("part", parts);
3217
3271
  }
3218
3272
  async handleResolvedGenerator(generator) {
3219
3273
  const iterator = generator[Symbol.asyncIterator]();
3220
- let result;
3221
- do {
3222
- result = await iterator.next();
3223
- this.dom.textContent = result.value ?? "";
3224
- } while (!result.done);
3274
+ try {
3275
+ let result;
3276
+ do {
3277
+ result = await iterator.next();
3278
+ this.render(result.value ?? null);
3279
+ } while (!result.done);
3280
+ } catch (error) {
3281
+ this.render(null);
3282
+ console.warn("[rich-text-editor] Error while resolving atom value:", error);
3283
+ }
3225
3284
  }
3226
3285
  };
3227
3286
  var RteAtomFeatureImpl = class extends require_slottable_request.RteFeatureImpl {
@@ -3248,7 +3307,7 @@ var RteAtomFeatureImpl = class extends require_slottable_request.RteFeatureImpl
3248
3307
  if (serializedValue === null) return document.createDocumentFragment();
3249
3308
  return [
3250
3309
  "span",
3251
- { part: `node--${this.atomName}` },
3310
+ { part: partsFor(this.atomName, []) },
3252
3311
  serializedValue
3253
3312
  ];
3254
3313
  },