@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.
- package/bundled/calendar-picker.template.cjs +1 -1
- package/bundled/calendar-picker.template.js +3 -3
- package/bundled/decorate.js +1 -1
- package/bundled/definition10.cjs +5 -1
- package/bundled/definition10.js +5 -1
- package/bundled/definition2.cjs +1 -1
- package/bundled/definition2.js +1 -1
- package/bundled/definition23.cjs +8 -4
- package/bundled/definition23.js +8 -4
- package/bundled/definition4.cjs +1 -1
- package/bundled/definition4.js +1 -1
- package/bundled/definition5.cjs +1 -1
- package/bundled/definition5.js +2 -1
- package/bundled/definition8.cjs +9 -7
- package/bundled/definition8.js +11 -9
- package/bundled/definition9.cjs +3 -3
- package/bundled/definition9.js +4 -4
- package/bundled/feedback-message.cjs +1 -1
- package/bundled/feedback-message.js +1 -1
- package/bundled/localized.cjs +1 -1
- package/bundled/localized.js +12 -0
- package/bundled/render-in-light-dom.js +3 -3
- package/bundled/text-field.cjs +1 -1
- package/bundled/text-field.js +1 -1
- package/bundled/vivid-element.cjs +1 -1
- package/bundled/vivid-element.js +1 -1
- package/custom-elements.json +2052 -1998
- package/lib/badge/badge.d.ts +1 -0
- package/lib/badge/badge.template.d.ts +2 -1
- package/lib/icon/icon.d.ts +1 -1
- package/lib/popover/popover.d.ts +2 -1
- package/lib/progress-ring/progress-ring.d.ts +1 -1
- package/lib/rich-text-editor/rich-text-editor.d.ts +427 -0
- package/lib/rich-text-editor/rte/__tests__/async-generator.d.ts +1 -0
- package/lib/rich-text-editor/rte/features/atom.d.ts +6 -2
- package/lib/rich-text-editor/rte/instance.d.ts +2 -1
- package/lib/table/locale.d.ts +10 -0
- package/lib/table/table-sorting-button.d.ts +425 -0
- package/locales/de-DE.cjs +12 -0
- package/locales/de-DE.js +12 -0
- package/locales/en-GB.cjs +12 -0
- package/locales/en-GB.js +12 -0
- package/locales/ja-JP.cjs +12 -0
- package/locales/ja-JP.js +12 -0
- package/locales/zh-CN.cjs +12 -0
- package/locales/zh-CN.js +12 -0
- package/number-field/index.cjs +1 -1
- package/number-field/index.js +1 -1
- package/package.json +14 -14
- package/popover/index.cjs +2 -2
- package/popover/index.js +70 -37
- package/rich-text-editor/index.cjs +23 -17
- package/rich-text-editor/index.js +1653 -1588
- package/shared/localization/Locale.d.ts +2 -0
- package/table/index.cjs +17 -17
- package/table/index.js +50 -40
- package/unbundled/decorate.cjs +1 -1
- package/unbundled/decorate.js +1 -1
- package/unbundled/definition.cjs +1 -1
- package/unbundled/definition.js +1 -1
- package/unbundled/definition14.cjs +1 -1
- package/unbundled/definition14.js +1 -1
- package/unbundled/definition15.cjs +8 -3
- package/unbundled/definition15.js +8 -3
- package/unbundled/definition2.cjs +1 -1
- package/unbundled/definition2.js +1 -1
- package/unbundled/definition24.cjs +4 -4
- package/unbundled/definition24.js +4 -4
- package/unbundled/definition25.cjs +5 -1
- package/unbundled/definition25.js +5 -1
- package/unbundled/definition27.cjs +8 -5
- package/unbundled/definition27.js +8 -5
- package/unbundled/definition5.cjs +1 -1
- package/unbundled/definition5.js +1 -1
- package/unbundled/definition55.cjs +1 -1
- package/unbundled/definition55.js +1 -1
- package/unbundled/definition58.cjs +69 -4
- package/unbundled/definition58.js +69 -4
- package/unbundled/definition6.cjs +2 -1
- package/unbundled/definition6.js +2 -1
- package/unbundled/definition63.cjs +80 -21
- package/unbundled/definition63.js +80 -21
- package/unbundled/definition75.cjs +19 -6
- package/unbundled/definition75.js +20 -7
- package/unbundled/definition8.cjs +2 -2
- package/unbundled/definition8.js +2 -2
- package/unbundled/definition83.cjs +1 -1
- package/unbundled/definition83.js +1 -1
- package/unbundled/en-US.cjs +12 -0
- package/unbundled/en-US.js +12 -0
- package/unbundled/feedback-message.cjs +1 -1
- package/unbundled/feedback-message.js +1 -1
- package/unbundled/linkable.cjs +1 -1
- package/unbundled/linkable.js +1 -1
- package/unbundled/text-field.cjs +1 -1
- package/unbundled/text-field.js +1 -1
- package/unbundled/vivid-element.cjs +1 -1
- package/unbundled/vivid-element.js +1 -1
- package/video-player/index.cjs +1 -1
- package/video-player/index.js +1 -1
- 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:
|
|
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) =>
|
|
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
|
-
<
|
|
139
|
-
|
|
139
|
+
<span class="content"
|
|
140
|
+
><slot
|
|
141
|
+
${slotted({
|
|
140
142
|
property: "_defaultSlotContent",
|
|
141
143
|
filter: elements()
|
|
142
144
|
})}
|
|
143
|
-
|
|
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([
|
package/unbundled/definition5.js
CHANGED
|
@@ -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)
|
|
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)
|
|
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
|
|
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
|
-
|
|
99
|
-
|
|
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
|
|
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
|
-
|
|
99
|
-
|
|
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
|
|
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"
|
package/unbundled/definition6.js
CHANGED
|
@@ -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
|
|
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,
|
|
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.
|
|
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
|
|
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"
|
|
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(
|
|
714
|
+
createView(mountTarget) {
|
|
686
715
|
const core = this.config.featureMap.get("RteCore");
|
|
687
|
-
this.view = new prosemirror_view.EditorView(
|
|
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.
|
|
3262
|
+
this.render(null);
|
|
3215
3263
|
this.handleResolvedGenerator(result);
|
|
3216
|
-
} else this.
|
|
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
|
-
|
|
3221
|
-
|
|
3222
|
-
|
|
3223
|
-
|
|
3224
|
-
|
|
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:
|
|
3310
|
+
{ part: partsFor(this.atomName, []) },
|
|
3252
3311
|
serializedValue
|
|
3253
3312
|
];
|
|
3254
3313
|
},
|