@vonage/vivid 4.30.1 → 5.0.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/custom-elements.json +129 -172
- package/lib/accordion-item/accordion-item.d.ts +42 -1
- package/lib/action-group/action-group.d.ts +42 -1
- package/lib/alert/alert.d.ts +84 -2
- package/lib/audio-player/audio-player.d.ts +42 -1
- package/lib/avatar/avatar.d.ts +42 -1
- package/lib/badge/badge.d.ts +42 -1
- package/lib/banner/banner.d.ts +126 -3
- package/lib/breadcrumb/breadcrumb.d.ts +42 -1
- package/lib/breadcrumb-item/breadcrumb-item.d.ts +42 -1
- package/lib/button/button.d.ts +126 -3
- package/lib/calendar-event/calendar-event.d.ts +42 -1
- package/lib/card/card.d.ts +42 -1
- package/lib/checkbox/checkbox.d.ts +252 -7
- package/lib/combobox/combobox.d.ts +252 -6
- package/lib/data-grid/data-grid-cell.d.ts +419 -2
- package/lib/data-grid/data-grid-row.d.ts +380 -1
- package/lib/date-picker/date-picker.d.ts +336 -8
- package/lib/date-range-picker/date-range-picker.d.ts +168 -4
- package/lib/date-time-picker/date-time-picker.d.ts +336 -8
- package/lib/dial-pad/dial-pad.d.ts +42 -1
- package/lib/dialog/dialog.d.ts +84 -2
- package/lib/divider/divider.d.ts +42 -1
- package/lib/fab/fab.d.ts +42 -1
- package/lib/file-picker/file-picker.d.ts +252 -6
- package/lib/file-picker/locale.d.ts +1 -0
- package/lib/header/header.d.ts +42 -1
- package/lib/menu/menu.d.ts +84 -2
- package/lib/menu-item/menu-item.d.ts +84 -2
- package/lib/nav/nav.d.ts +42 -1
- package/lib/nav-disclosure/nav-disclosure.d.ts +84 -2
- package/lib/nav-item/nav-item.d.ts +84 -2
- package/lib/note/note.d.ts +42 -1
- package/lib/number-field/number-field.d.ts +336 -8
- package/lib/option/option.d.ts +84 -2
- package/lib/pagination/pagination.d.ts +42 -1
- package/lib/progress/progress.d.ts +42 -1
- package/lib/progress-ring/progress-ring.d.ts +42 -1
- package/lib/radio/radio.d.ts +126 -4
- package/lib/radio-group/radio-group.d.ts +42 -1
- package/lib/range-slider/range-slider.d.ts +126 -3
- package/lib/rich-text-editor/menubar/menubar.d.ts +42 -1
- package/lib/rich-text-editor/rich-text-editor.d.ts +42 -1
- package/lib/searchable-select/option-tag.d.ts +42 -1
- package/lib/searchable-select/searchable-select.d.ts +336 -8
- package/lib/select/select.d.ts +294 -7
- package/lib/selectable-box/selectable-box.d.ts +42 -2
- package/lib/slider/slider.d.ts +126 -3
- package/lib/split-button/split-button.d.ts +126 -3
- package/lib/switch/switch.d.ts +84 -2
- package/lib/tab/tab.d.ts +126 -3
- package/lib/tab-panel/tab-panel.d.ts +42 -1
- package/lib/tag/tag.d.ts +126 -3
- package/lib/tag-group/tag-group.d.ts +42 -1
- package/lib/text-area/text-area.d.ts +294 -7
- package/lib/text-field/text-field.d.ts +336 -8
- package/lib/time-picker/time-picker.d.ts +168 -4
- package/lib/toggletip/locale.d.ts +3 -0
- package/lib/toggletip/toggletip.d.ts +430 -11
- package/lib/tooltip/tooltip.d.ts +42 -1
- package/lib/tree-item/tree-item.d.ts +84 -2
- package/lib/tree-view/tree-view.d.ts +42 -1
- package/lib/video-player/video-player.d.ts +42 -1
- package/locales/de-DE.cjs +8 -1
- package/locales/de-DE.js +8 -1
- package/locales/en-GB.cjs +8 -1
- package/locales/en-GB.js +8 -1
- package/locales/en-US.cjs +8 -1
- package/locales/en-US.js +8 -1
- package/locales/ja-JP.cjs +8 -1
- package/locales/ja-JP.js +8 -1
- package/locales/zh-CN.cjs +8 -1
- package/locales/zh-CN.js +8 -1
- package/package.json +1 -1
- package/shared/anchored.js +1 -1
- package/shared/aria/aria-mixin.d.ts +43 -2
- package/shared/aria/attribute-removal.d.ts +3 -0
- package/shared/aria/delegate-aria-behavior.d.ts +0 -3
- package/shared/aria/delegates-aria.d.ts +42 -1
- package/shared/aria/host-semantics.d.ts +42 -1
- package/shared/definition13.cjs +1 -1
- package/shared/definition13.js +1 -1
- package/shared/definition15.cjs +6 -2
- package/shared/definition15.js +6 -2
- package/shared/definition17.cjs +61 -78
- package/shared/definition17.js +61 -78
- package/shared/definition26.cjs +37 -2
- package/shared/definition26.js +37 -2
- package/shared/definition30.cjs +8 -4
- package/shared/definition30.js +8 -4
- package/shared/definition31.cjs +7 -7
- package/shared/definition31.js +7 -7
- package/shared/definition42.cjs +0 -4
- package/shared/definition42.js +0 -4
- package/shared/definition47.cjs +0 -8
- package/shared/definition47.js +1 -9
- package/shared/definition5.cjs +1 -1
- package/shared/definition5.js +1 -1
- package/shared/definition54.cjs +1 -1
- package/shared/definition54.js +1 -1
- package/shared/definition60.cjs +7 -6
- package/shared/definition60.js +7 -6
- package/shared/definition62.cjs +1 -1
- package/shared/definition62.js +1 -1
- package/shared/definition63.cjs +1 -2
- package/shared/definition63.js +1 -2
- package/shared/delegates-aria.cjs +4 -25
- package/shared/delegates-aria.js +4 -25
- package/shared/divider.cjs +8 -3
- package/shared/divider.js +8 -3
- package/shared/feedback/feedback-message.d.ts +42 -1
- package/shared/feedback/mixins.d.ts +84 -2
- package/shared/foundation/button/button.d.ts +84 -2
- package/shared/foundation/form-associated/form-associated.d.ts +84 -2
- package/shared/foundation/vivid-element/vivid-element.d.ts +43 -2
- package/shared/listbox.cjs +1 -1
- package/shared/listbox.js +1 -1
- package/shared/localization/Locale.d.ts +2 -0
- package/shared/option.cjs +15 -2
- package/shared/option.js +16 -3
- package/shared/patterns/affix.d.ts +84 -2
- package/shared/patterns/anchored.d.ts +84 -2
- package/shared/patterns/char-count/char-count.d.ts +42 -1
- package/shared/patterns/form-elements/form-element.d.ts +84 -2
- package/shared/patterns/form-elements/with-error-text.d.ts +126 -3
- package/shared/patterns/form-elements/with-success-text.d.ts +42 -1
- package/shared/patterns/linkable.d.ts +42 -1
- package/shared/patterns/localized.d.ts +42 -1
- package/shared/patterns/trapped-focus.d.ts +42 -1
- package/shared/picker-field/mixins/calendar-picker.d.ts +84 -2
- package/shared/picker-field/mixins/calendar-picker.template.d.ts +84 -2
- package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +42 -1
- package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +168 -4
- package/shared/picker-field/mixins/single-date-picker.d.ts +252 -6
- package/shared/picker-field/mixins/single-value-picker.d.ts +84 -2
- package/shared/picker-field/mixins/time-selection-picker.d.ts +168 -4
- package/shared/picker-field/mixins/time-selection-picker.template.d.ts +168 -4
- package/shared/picker-field/picker-field.d.ts +252 -6
- package/shared/vivid-element.cjs +56 -5
- package/shared/vivid-element.js +56 -5
- package/vivid.api.json +2 -93
package/shared/definition26.cjs
CHANGED
|
@@ -13,7 +13,7 @@ const when = require('./when.cjs');
|
|
|
13
13
|
const ref = require('./ref.cjs');
|
|
14
14
|
const classNames = require('./class-names.cjs');
|
|
15
15
|
|
|
16
|
-
const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit;--_low-ink-color: var(--vvd-color-neutral-600)}.control-wrapper{display:flex;flex-direction:column;block-size:inherit;gap:4px;max-block-size:inherit}.control{display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,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))}.control:hover,.control:active,.control:focus-visible{background-color:var(--vvd-color-cta-100)}.main{pointer-events:none}.dz-preview{display:grid;box-sizing:border-box;padding:8px;border:1px solid var(--vvd-color-neutral-300);border-radius:8px;background-color:var(--file-picker-list-item-background-color, var(--vvd-color-canvas));grid-template-columns:1fr auto;grid-template-rows:auto auto;inline-size:100%}.dz-preview .dz-details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.dz-preview .dz-details .dz-filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.dz-preview .dz-details .dz-size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.dz-preview .dz-error-message{display:flex;align-items:center;color:var(--vvd-color-alert-600);font:var(--vvd-typography-base-condensed-bold);gap:4px;margin-block-start:4px}.dz-preview:not(.dz-error) .dz-error-message{display:none}.dz-preview.dz-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.dz-preview.dz-error .dz-details .dz-size,.dz-preview.dz-error .dz-progress{display:none}.dz-preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.preview-list{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:empty{display:none}";
|
|
16
|
+
const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit;--_low-ink-color: var(--vvd-color-neutral-600)}.control-wrapper{display:flex;flex-direction:column;block-size:inherit;gap:4px;max-block-size:inherit}.control{position:relative;display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control .upload-text{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-600);isolation:isolate;pointer-events:none;text-align:center;transition:all .3s ease}.control:hover .upload-text,.control.dz-drag-hover .upload-text{color:var(--vvd-color-neutral-800)}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,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))}.control:hover,.control:active,.control:focus-visible{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.control:active{box-shadow:0 1px 4px #0000001a;transform:translateY(0)}.control.dz-drag-hover{border-color:var(--vvd-color-cta-200);background-color:var(--vvd-color-cta-200);outline:2px dashed var(--vvd-color-cta-500);transform:scale(1.02)}.upload-icon{animation:subtle-pulse 2s ease-in-out infinite;color:var(--vvd-color-cta-600);pointer-events:none;transition:all .3s ease}.control:hover .upload-icon{animation:none;color:var(--vvd-color-cta-700);transform:scale(1.1)}.control:active .upload-icon{transform:scale(1.05)}.control.dz-drag-hover .upload-icon{animation:none;color:var(--vvd-color-neutral-800);transform:scale(1.15)}@keyframes subtle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.main{pointer-events:none}.dz-preview{display:grid;box-sizing:border-box;padding:8px;border:1px solid var(--vvd-color-neutral-300);border-radius:8px;background-color:var(--file-picker-list-item-background-color, var(--vvd-color-canvas));grid-template-columns:1fr auto;grid-template-rows:auto auto;inline-size:100%}.dz-preview .dz-details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.dz-preview .dz-details .dz-filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.dz-preview .dz-details .dz-size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.dz-preview .dz-error-message{display:flex;align-items:center;color:var(--vvd-color-alert-600);font:var(--vvd-typography-base-condensed-bold);gap:4px;margin-block-start:4px}.dz-preview:not(.dz-error) .dz-error-message{display:none}.dz-preview.dz-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.dz-preview.dz-error .dz-details .dz-size,.dz-preview.dz-error .dz-progress{display:none}.dz-preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.preview-list{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:empty{display:none}";
|
|
17
17
|
|
|
18
18
|
var objectExtend = extend;
|
|
19
19
|
|
|
@@ -2311,6 +2311,7 @@ class FilePicker extends mixins.WithFeedback(
|
|
|
2311
2311
|
const previewList = this.shadowRoot.querySelector(
|
|
2312
2312
|
".preview-list"
|
|
2313
2313
|
);
|
|
2314
|
+
this.#setupDragEventHandlers(control);
|
|
2314
2315
|
this.#dropzone = new $3ed269f2f0fb224b$export$2e2bcd8739ae039(control, {
|
|
2315
2316
|
url: "/",
|
|
2316
2317
|
// dummy url, we do not use dropzone's upload functionality
|
|
@@ -2338,6 +2339,34 @@ class FilePicker extends mixins.WithFeedback(
|
|
|
2338
2339
|
});
|
|
2339
2340
|
this.#syncSingleFileState();
|
|
2340
2341
|
}
|
|
2342
|
+
/**
|
|
2343
|
+
* Sets up drag event handlers for enhanced visual feedback
|
|
2344
|
+
* @private
|
|
2345
|
+
*/
|
|
2346
|
+
#setupDragEventHandlers(control) {
|
|
2347
|
+
control.addEventListener("dragenter", (e) => {
|
|
2348
|
+
e.preventDefault();
|
|
2349
|
+
e.stopPropagation();
|
|
2350
|
+
control.classList.add("dz-drag-hover");
|
|
2351
|
+
});
|
|
2352
|
+
control.addEventListener("dragover", (e) => {
|
|
2353
|
+
e.preventDefault();
|
|
2354
|
+
e.stopPropagation();
|
|
2355
|
+
control.classList.add("dz-drag-hover");
|
|
2356
|
+
});
|
|
2357
|
+
control.addEventListener("dragleave", (e) => {
|
|
2358
|
+
e.preventDefault();
|
|
2359
|
+
e.stopPropagation();
|
|
2360
|
+
if (!control.contains(e.relatedTarget)) {
|
|
2361
|
+
control.classList.remove("dz-drag-hover");
|
|
2362
|
+
}
|
|
2363
|
+
});
|
|
2364
|
+
control.addEventListener("drop", (e) => {
|
|
2365
|
+
e.preventDefault();
|
|
2366
|
+
e.stopPropagation();
|
|
2367
|
+
control.classList.remove("dz-drag-hover");
|
|
2368
|
+
});
|
|
2369
|
+
}
|
|
2341
2370
|
disconnectedCallback() {
|
|
2342
2371
|
super.disconnectedCallback();
|
|
2343
2372
|
this.#dropzone.destroy();
|
|
@@ -2486,7 +2515,13 @@ const FilePickerTemplate = (context) => {
|
|
|
2486
2515
|
role: "button"
|
|
2487
2516
|
})}
|
|
2488
2517
|
>
|
|
2489
|
-
<
|
|
2518
|
+
<vwc-icon
|
|
2519
|
+
class="upload-icon"
|
|
2520
|
+
name="cloud-upload-line"
|
|
2521
|
+
size="-4"
|
|
2522
|
+
label="${(x) => x.locale.filePicker.uploadFilesLabel}"
|
|
2523
|
+
></vwc-icon>
|
|
2524
|
+
<span class="upload-text"><slot></slot></span>
|
|
2490
2525
|
</div>
|
|
2491
2526
|
${(x) => x._getFeedbackTemplate(context)}
|
|
2492
2527
|
</div>
|
package/shared/definition26.js
CHANGED
|
@@ -11,7 +11,7 @@ import { w as when } from './when.js';
|
|
|
11
11
|
import { r as ref } from './ref.js';
|
|
12
12
|
import { c as classNames } from './class-names.js';
|
|
13
13
|
|
|
14
|
-
const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit;--_low-ink-color: var(--vvd-color-neutral-600)}.control-wrapper{display:flex;flex-direction:column;block-size:inherit;gap:4px;max-block-size:inherit}.control{display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,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))}.control:hover,.control:active,.control:focus-visible{background-color:var(--vvd-color-cta-100)}.main{pointer-events:none}.dz-preview{display:grid;box-sizing:border-box;padding:8px;border:1px solid var(--vvd-color-neutral-300);border-radius:8px;background-color:var(--file-picker-list-item-background-color, var(--vvd-color-canvas));grid-template-columns:1fr auto;grid-template-rows:auto auto;inline-size:100%}.dz-preview .dz-details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.dz-preview .dz-details .dz-filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.dz-preview .dz-details .dz-size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.dz-preview .dz-error-message{display:flex;align-items:center;color:var(--vvd-color-alert-600);font:var(--vvd-typography-base-condensed-bold);gap:4px;margin-block-start:4px}.dz-preview:not(.dz-error) .dz-error-message{display:none}.dz-preview.dz-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.dz-preview.dz-error .dz-details .dz-size,.dz-preview.dz-error .dz-progress{display:none}.dz-preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.preview-list{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:empty{display:none}";
|
|
14
|
+
const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit;--_low-ink-color: var(--vvd-color-neutral-600)}.control-wrapper{display:flex;flex-direction:column;block-size:inherit;gap:4px;max-block-size:inherit}.control{position:relative;display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control .upload-text{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-600);isolation:isolate;pointer-events:none;text-align:center;transition:all .3s ease}.control:hover .upload-text,.control.dz-drag-hover .upload-text{color:var(--vvd-color-neutral-800)}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,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))}.control:hover,.control:active,.control:focus-visible{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}.control:active{box-shadow:0 1px 4px #0000001a;transform:translateY(0)}.control.dz-drag-hover{border-color:var(--vvd-color-cta-200);background-color:var(--vvd-color-cta-200);outline:2px dashed var(--vvd-color-cta-500);transform:scale(1.02)}.upload-icon{animation:subtle-pulse 2s ease-in-out infinite;color:var(--vvd-color-cta-600);pointer-events:none;transition:all .3s ease}.control:hover .upload-icon{animation:none;color:var(--vvd-color-cta-700);transform:scale(1.1)}.control:active .upload-icon{transform:scale(1.05)}.control.dz-drag-hover .upload-icon{animation:none;color:var(--vvd-color-neutral-800);transform:scale(1.15)}@keyframes subtle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.main{pointer-events:none}.dz-preview{display:grid;box-sizing:border-box;padding:8px;border:1px solid var(--vvd-color-neutral-300);border-radius:8px;background-color:var(--file-picker-list-item-background-color, var(--vvd-color-canvas));grid-template-columns:1fr auto;grid-template-rows:auto auto;inline-size:100%}.dz-preview .dz-details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.dz-preview .dz-details .dz-filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.dz-preview .dz-details .dz-size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.dz-preview .dz-error-message{display:flex;align-items:center;color:var(--vvd-color-alert-600);font:var(--vvd-typography-base-condensed-bold);gap:4px;margin-block-start:4px}.dz-preview:not(.dz-error) .dz-error-message{display:none}.dz-preview.dz-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.dz-preview.dz-error .dz-details .dz-size,.dz-preview.dz-error .dz-progress{display:none}.dz-preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.preview-list{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:empty{display:none}";
|
|
15
15
|
|
|
16
16
|
var objectExtend = extend;
|
|
17
17
|
|
|
@@ -2309,6 +2309,7 @@ class FilePicker extends WithFeedback(
|
|
|
2309
2309
|
const previewList = this.shadowRoot.querySelector(
|
|
2310
2310
|
".preview-list"
|
|
2311
2311
|
);
|
|
2312
|
+
this.#setupDragEventHandlers(control);
|
|
2312
2313
|
this.#dropzone = new $3ed269f2f0fb224b$export$2e2bcd8739ae039(control, {
|
|
2313
2314
|
url: "/",
|
|
2314
2315
|
// dummy url, we do not use dropzone's upload functionality
|
|
@@ -2336,6 +2337,34 @@ class FilePicker extends WithFeedback(
|
|
|
2336
2337
|
});
|
|
2337
2338
|
this.#syncSingleFileState();
|
|
2338
2339
|
}
|
|
2340
|
+
/**
|
|
2341
|
+
* Sets up drag event handlers for enhanced visual feedback
|
|
2342
|
+
* @private
|
|
2343
|
+
*/
|
|
2344
|
+
#setupDragEventHandlers(control) {
|
|
2345
|
+
control.addEventListener("dragenter", (e) => {
|
|
2346
|
+
e.preventDefault();
|
|
2347
|
+
e.stopPropagation();
|
|
2348
|
+
control.classList.add("dz-drag-hover");
|
|
2349
|
+
});
|
|
2350
|
+
control.addEventListener("dragover", (e) => {
|
|
2351
|
+
e.preventDefault();
|
|
2352
|
+
e.stopPropagation();
|
|
2353
|
+
control.classList.add("dz-drag-hover");
|
|
2354
|
+
});
|
|
2355
|
+
control.addEventListener("dragleave", (e) => {
|
|
2356
|
+
e.preventDefault();
|
|
2357
|
+
e.stopPropagation();
|
|
2358
|
+
if (!control.contains(e.relatedTarget)) {
|
|
2359
|
+
control.classList.remove("dz-drag-hover");
|
|
2360
|
+
}
|
|
2361
|
+
});
|
|
2362
|
+
control.addEventListener("drop", (e) => {
|
|
2363
|
+
e.preventDefault();
|
|
2364
|
+
e.stopPropagation();
|
|
2365
|
+
control.classList.remove("dz-drag-hover");
|
|
2366
|
+
});
|
|
2367
|
+
}
|
|
2339
2368
|
disconnectedCallback() {
|
|
2340
2369
|
super.disconnectedCallback();
|
|
2341
2370
|
this.#dropzone.destroy();
|
|
@@ -2484,7 +2513,13 @@ const FilePickerTemplate = (context) => {
|
|
|
2484
2513
|
role: "button"
|
|
2485
2514
|
})}
|
|
2486
2515
|
>
|
|
2487
|
-
<
|
|
2516
|
+
<vwc-icon
|
|
2517
|
+
class="upload-icon"
|
|
2518
|
+
name="cloud-upload-line"
|
|
2519
|
+
size="-4"
|
|
2520
|
+
label="${(x) => x.locale.filePicker.uploadFilesLabel}"
|
|
2521
|
+
></vwc-icon>
|
|
2522
|
+
<span class="upload-text"><slot></slot></span>
|
|
2488
2523
|
</div>
|
|
2489
2524
|
${(x) => x._getFeedbackTemplate(context)}
|
|
2490
2525
|
</div>
|
package/shared/definition30.cjs
CHANGED
|
@@ -30,7 +30,14 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
30
30
|
class MenuItem extends hostSemantics.HostSemantics(affix.AffixIcon(vividElement.VividElement)) {
|
|
31
31
|
constructor() {
|
|
32
32
|
super();
|
|
33
|
-
|
|
33
|
+
/**
|
|
34
|
+
* The role of the element.
|
|
35
|
+
*
|
|
36
|
+
* @deprecated Use `control-type` instead for checkbox and radio items. If the menu item is not a direct descendant of a menu, role will default to `presentation`.
|
|
37
|
+
* @public
|
|
38
|
+
* @remarks
|
|
39
|
+
* HTML Attribute: role
|
|
40
|
+
*/
|
|
34
41
|
this.role = MenuItemRole.menuitem;
|
|
35
42
|
this.checked = false;
|
|
36
43
|
/**
|
|
@@ -223,9 +230,6 @@ __decorateClass([
|
|
|
223
230
|
__decorateClass([
|
|
224
231
|
vividElement.attr({ mode: "boolean" })
|
|
225
232
|
], MenuItem.prototype, "expanded");
|
|
226
|
-
__decorateClass([
|
|
227
|
-
vividElement.attr
|
|
228
|
-
], MenuItem.prototype, "role");
|
|
229
233
|
__decorateClass([
|
|
230
234
|
vividElement.observable
|
|
231
235
|
], MenuItem.prototype, "_isPresentational");
|
package/shared/definition30.js
CHANGED
|
@@ -28,7 +28,14 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
28
28
|
class MenuItem extends HostSemantics(AffixIcon(VividElement)) {
|
|
29
29
|
constructor() {
|
|
30
30
|
super();
|
|
31
|
-
|
|
31
|
+
/**
|
|
32
|
+
* The role of the element.
|
|
33
|
+
*
|
|
34
|
+
* @deprecated Use `control-type` instead for checkbox and radio items. If the menu item is not a direct descendant of a menu, role will default to `presentation`.
|
|
35
|
+
* @public
|
|
36
|
+
* @remarks
|
|
37
|
+
* HTML Attribute: role
|
|
38
|
+
*/
|
|
32
39
|
this.role = MenuItemRole.menuitem;
|
|
33
40
|
this.checked = false;
|
|
34
41
|
/**
|
|
@@ -221,9 +228,6 @@ __decorateClass([
|
|
|
221
228
|
__decorateClass([
|
|
222
229
|
attr({ mode: "boolean" })
|
|
223
230
|
], MenuItem.prototype, "expanded");
|
|
224
|
-
__decorateClass([
|
|
225
|
-
attr
|
|
226
|
-
], MenuItem.prototype, "role");
|
|
227
231
|
__decorateClass([
|
|
228
232
|
observable
|
|
229
233
|
], MenuItem.prototype, "_isPresentational");
|
package/shared/definition31.cjs
CHANGED
|
@@ -211,7 +211,7 @@ class Menu extends anchored.Anchored(delegatesAria.DelegatesAria(vividElement.Vi
|
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
get #triggerBehaviour() {
|
|
214
|
-
return this.trigger ?? "
|
|
214
|
+
return this.trigger ?? "auto";
|
|
215
215
|
}
|
|
216
216
|
openChanged(_, newValue) {
|
|
217
217
|
if (newValue) {
|
|
@@ -232,19 +232,19 @@ class Menu extends anchored.Anchored(delegatesAria.DelegatesAria(vividElement.Vi
|
|
|
232
232
|
#setupAnchor(a) {
|
|
233
233
|
a.addEventListener("click", this.#onAnchorClick, true);
|
|
234
234
|
a.addEventListener("focusout", this._onFocusout);
|
|
235
|
-
a.
|
|
235
|
+
a.ariaHasPopup = "menu";
|
|
236
236
|
this.#updateAnchor(a);
|
|
237
237
|
}
|
|
238
238
|
#updateAnchor(a) {
|
|
239
|
-
a.
|
|
240
|
-
a.
|
|
239
|
+
a.ariaExpanded = this.open.toString();
|
|
240
|
+
a.dataset.expanded = this.open.toString();
|
|
241
241
|
}
|
|
242
242
|
#cleanupAnchor(a) {
|
|
243
243
|
a.removeEventListener("click", this.#onAnchorClick, true);
|
|
244
244
|
a.removeEventListener("focusout", this._onFocusout);
|
|
245
|
-
a.
|
|
246
|
-
a.
|
|
247
|
-
a.
|
|
245
|
+
a.ariaHasPopup = null;
|
|
246
|
+
a.ariaExpanded = null;
|
|
247
|
+
delete a.dataset.expanded;
|
|
248
248
|
}
|
|
249
249
|
#onAnchorClick;
|
|
250
250
|
/**
|
package/shared/definition31.js
CHANGED
|
@@ -209,7 +209,7 @@ class Menu extends Anchored(DelegatesAria(VividElement)) {
|
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
get #triggerBehaviour() {
|
|
212
|
-
return this.trigger ?? "
|
|
212
|
+
return this.trigger ?? "auto";
|
|
213
213
|
}
|
|
214
214
|
openChanged(_, newValue) {
|
|
215
215
|
if (newValue) {
|
|
@@ -230,19 +230,19 @@ class Menu extends Anchored(DelegatesAria(VividElement)) {
|
|
|
230
230
|
#setupAnchor(a) {
|
|
231
231
|
a.addEventListener("click", this.#onAnchorClick, true);
|
|
232
232
|
a.addEventListener("focusout", this._onFocusout);
|
|
233
|
-
a.
|
|
233
|
+
a.ariaHasPopup = "menu";
|
|
234
234
|
this.#updateAnchor(a);
|
|
235
235
|
}
|
|
236
236
|
#updateAnchor(a) {
|
|
237
|
-
a.
|
|
238
|
-
a.
|
|
237
|
+
a.ariaExpanded = this.open.toString();
|
|
238
|
+
a.dataset.expanded = this.open.toString();
|
|
239
239
|
}
|
|
240
240
|
#cleanupAnchor(a) {
|
|
241
241
|
a.removeEventListener("click", this.#onAnchorClick, true);
|
|
242
242
|
a.removeEventListener("focusout", this._onFocusout);
|
|
243
|
-
a.
|
|
244
|
-
a.
|
|
245
|
-
a.
|
|
243
|
+
a.ariaHasPopup = null;
|
|
244
|
+
a.ariaExpanded = null;
|
|
245
|
+
delete a.dataset.expanded;
|
|
246
246
|
}
|
|
247
247
|
#onAnchorClick;
|
|
248
248
|
/**
|
package/shared/definition42.cjs
CHANGED
|
@@ -24,7 +24,6 @@ class Radio extends withErrorText.WithErrorText(
|
|
|
24
24
|
) {
|
|
25
25
|
constructor() {
|
|
26
26
|
super();
|
|
27
|
-
this.ariaLabel = null;
|
|
28
27
|
/**
|
|
29
28
|
* The element's value to be included in form submission when checked.
|
|
30
29
|
* Default to "on" to reach parity with input[type="radio"]
|
|
@@ -177,9 +176,6 @@ class Radio extends withErrorText.WithErrorText(
|
|
|
177
176
|
}
|
|
178
177
|
}
|
|
179
178
|
}
|
|
180
|
-
__decorateClass([
|
|
181
|
-
vividElement.attr({ attribute: "aria-label" })
|
|
182
|
-
], Radio.prototype, "ariaLabel");
|
|
183
179
|
__decorateClass([
|
|
184
180
|
vividElement.attr
|
|
185
181
|
], Radio.prototype, "connotation");
|
package/shared/definition42.js
CHANGED
|
@@ -22,7 +22,6 @@ class Radio extends WithErrorText(
|
|
|
22
22
|
) {
|
|
23
23
|
constructor() {
|
|
24
24
|
super();
|
|
25
|
-
this.ariaLabel = null;
|
|
26
25
|
/**
|
|
27
26
|
* The element's value to be included in form submission when checked.
|
|
28
27
|
* Default to "on" to reach parity with input[type="radio"]
|
|
@@ -175,9 +174,6 @@ class Radio extends WithErrorText(
|
|
|
175
174
|
}
|
|
176
175
|
}
|
|
177
176
|
}
|
|
178
|
-
__decorateClass([
|
|
179
|
-
attr({ attribute: "aria-label" })
|
|
180
|
-
], Radio.prototype, "ariaLabel");
|
|
181
177
|
__decorateClass([
|
|
182
178
|
attr
|
|
183
179
|
], Radio.prototype, "connotation");
|
package/shared/definition47.cjs
CHANGED
|
@@ -23,7 +23,6 @@ class SelectableBox extends delegatesAria.DelegatesAria(vividElement.VividElemen
|
|
|
23
23
|
constructor() {
|
|
24
24
|
super(...arguments);
|
|
25
25
|
this.checked = false;
|
|
26
|
-
this.clickable = false;
|
|
27
26
|
this.clickableBox = false;
|
|
28
27
|
this.controlPlacement = "end-stacked";
|
|
29
28
|
this.tight = false;
|
|
@@ -49,13 +48,6 @@ __decorateClass([
|
|
|
49
48
|
vividElement.attr({ mode: "boolean" })
|
|
50
49
|
], SelectableBox.prototype, "checked");
|
|
51
50
|
__decorateClass([
|
|
52
|
-
vividElement.attr({ mode: "boolean" })
|
|
53
|
-
], SelectableBox.prototype, "clickable");
|
|
54
|
-
__decorateClass([
|
|
55
|
-
vividElement.replaces({
|
|
56
|
-
deprecatedPropertyName: "clickable",
|
|
57
|
-
fromDeprecated: (v) => v
|
|
58
|
-
}),
|
|
59
51
|
vividElement.attr({ attribute: "clickable-box", mode: "boolean" })
|
|
60
52
|
], SelectableBox.prototype, "clickableBox");
|
|
61
53
|
__decorateClass([
|
package/shared/definition47.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { C as Checkbox, c as checkboxDefinition } from './definition15.js';
|
|
2
2
|
import { R as Radio, r as radioDefinition } from './definition42.js';
|
|
3
|
-
import { V as VividElement, a as attr,
|
|
3
|
+
import { V as VividElement, a as attr, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
|
|
4
4
|
import { D as DelegatesAria, d as delegateAria } from './delegates-aria.js';
|
|
5
5
|
import { C as Connotation } from './enums.js';
|
|
6
6
|
import { c as classNames } from './class-names.js';
|
|
@@ -21,7 +21,6 @@ class SelectableBox extends DelegatesAria(VividElement) {
|
|
|
21
21
|
constructor() {
|
|
22
22
|
super(...arguments);
|
|
23
23
|
this.checked = false;
|
|
24
|
-
this.clickable = false;
|
|
25
24
|
this.clickableBox = false;
|
|
26
25
|
this.controlPlacement = "end-stacked";
|
|
27
26
|
this.tight = false;
|
|
@@ -47,13 +46,6 @@ __decorateClass([
|
|
|
47
46
|
attr({ mode: "boolean" })
|
|
48
47
|
], SelectableBox.prototype, "checked");
|
|
49
48
|
__decorateClass([
|
|
50
|
-
attr({ mode: "boolean" })
|
|
51
|
-
], SelectableBox.prototype, "clickable");
|
|
52
|
-
__decorateClass([
|
|
53
|
-
replaces({
|
|
54
|
-
deprecatedPropertyName: "clickable",
|
|
55
|
-
fromDeprecated: (v) => v
|
|
56
|
-
}),
|
|
57
49
|
attr({ attribute: "clickable-box", mode: "boolean" })
|
|
58
50
|
], SelectableBox.prototype, "clickableBox");
|
|
59
51
|
__decorateClass([
|
package/shared/definition5.cjs
CHANGED
|
@@ -379,7 +379,7 @@ const AudioPlayerTemplate = (context) => {
|
|
|
379
379
|
${when.when(
|
|
380
380
|
(x) => Boolean(x.playbackRates),
|
|
381
381
|
vividElement.html`
|
|
382
|
-
<${menuTag} class="playback-rates"
|
|
382
|
+
<${menuTag} class="playback-rates" placement="top-start" auto-dismiss id="playback-menu" position-strategy="absolute">
|
|
383
383
|
<${buttonTag} id="playback-open-button"
|
|
384
384
|
class="playback-button"
|
|
385
385
|
slot="anchor"
|
package/shared/definition5.js
CHANGED
|
@@ -377,7 +377,7 @@ const AudioPlayerTemplate = (context) => {
|
|
|
377
377
|
${when(
|
|
378
378
|
(x) => Boolean(x.playbackRates),
|
|
379
379
|
html`
|
|
380
|
-
<${menuTag} class="playback-rates"
|
|
380
|
+
<${menuTag} class="playback-rates" placement="top-start" auto-dismiss id="playback-menu" position-strategy="absolute">
|
|
381
381
|
<${buttonTag} id="playback-open-button"
|
|
382
382
|
class="playback-button"
|
|
383
383
|
slot="anchor"
|
package/shared/definition54.cjs
CHANGED
|
@@ -34,7 +34,7 @@ const oppositeOrientation = (orientation) => orientation === TabsOrientation.hor
|
|
|
34
34
|
const gridProperty = (orientation) => orientation === TabsOrientation.horizontal ? "gridColumn" : "gridRow";
|
|
35
35
|
const translateProperty = (orientation) => orientation === TabsOrientation.horizontal ? "translateX" : "translateY";
|
|
36
36
|
const offsetProperty = (orientation) => orientation === TabsOrientation.horizontal ? "offsetLeft" : "offsetTop";
|
|
37
|
-
const isFocusableElement = (el) => el.getAttribute("aria-disabled") !== "true" && !el.hasAttribute("hidden");
|
|
37
|
+
const isFocusableElement = (el) => el.getAttribute("aria-disabled") !== "true" && !el.disabled && !el.hasAttribute("hidden");
|
|
38
38
|
class Tabs extends vividElement.VividElement {
|
|
39
39
|
constructor() {
|
|
40
40
|
super(...arguments);
|
package/shared/definition54.js
CHANGED
|
@@ -32,7 +32,7 @@ const oppositeOrientation = (orientation) => orientation === TabsOrientation.hor
|
|
|
32
32
|
const gridProperty = (orientation) => orientation === TabsOrientation.horizontal ? "gridColumn" : "gridRow";
|
|
33
33
|
const translateProperty = (orientation) => orientation === TabsOrientation.horizontal ? "translateX" : "translateY";
|
|
34
34
|
const offsetProperty = (orientation) => orientation === TabsOrientation.horizontal ? "offsetLeft" : "offsetTop";
|
|
35
|
-
const isFocusableElement = (el) => el.getAttribute("aria-disabled") !== "true" && !el.hasAttribute("hidden");
|
|
35
|
+
const isFocusableElement = (el) => el.getAttribute("aria-disabled") !== "true" && !el.disabled && !el.hasAttribute("hidden");
|
|
36
36
|
class Tabs extends VividElement {
|
|
37
37
|
constructor() {
|
|
38
38
|
super(...arguments);
|
package/shared/definition60.cjs
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
const definition = require('./definition67.cjs');
|
|
4
4
|
const vividElement = require('./vivid-element.cjs');
|
|
5
5
|
const anchored = require('./anchored.cjs');
|
|
6
|
+
const localized = require('./localized.cjs');
|
|
6
7
|
const index = require('./index.cjs');
|
|
7
8
|
const classNames = require('./class-names.cjs');
|
|
8
9
|
const when = require('./when.cjs');
|
|
@@ -18,10 +19,10 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
18
19
|
if (result) __defProp(target, key, result);
|
|
19
20
|
return result;
|
|
20
21
|
};
|
|
21
|
-
class Toggletip extends anchored.Anchored(vividElement.VividElement) {
|
|
22
|
+
class Toggletip extends localized.Localized(anchored.Anchored(vividElement.VividElement)) {
|
|
22
23
|
constructor() {
|
|
23
24
|
super(...arguments);
|
|
24
|
-
this.#
|
|
25
|
+
this.#originalAriaLabel = null;
|
|
25
26
|
this.alternate = false;
|
|
26
27
|
this.placement = "right";
|
|
27
28
|
this.open = false;
|
|
@@ -39,7 +40,7 @@ class Toggletip extends anchored.Anchored(vividElement.VividElement) {
|
|
|
39
40
|
}
|
|
40
41
|
};
|
|
41
42
|
}
|
|
42
|
-
#
|
|
43
|
+
#originalAriaLabel;
|
|
43
44
|
openChanged(oldValue, newValue) {
|
|
44
45
|
if (oldValue === void 0) return;
|
|
45
46
|
if (newValue) {
|
|
@@ -69,7 +70,8 @@ class Toggletip extends anchored.Anchored(vividElement.VividElement) {
|
|
|
69
70
|
}
|
|
70
71
|
#setupAnchor(a) {
|
|
71
72
|
a.addEventListener("click", this.#openIfClosed, true);
|
|
72
|
-
|
|
73
|
+
this.#originalAriaLabel = a.ariaLabel;
|
|
74
|
+
a.ariaLabel = `${this.locale.toggletip.anchorLabel(a.ariaLabel || "")}`;
|
|
73
75
|
this.#updateAnchor(a);
|
|
74
76
|
}
|
|
75
77
|
#updateAnchor(a) {
|
|
@@ -78,8 +80,7 @@ class Toggletip extends anchored.Anchored(vividElement.VividElement) {
|
|
|
78
80
|
}
|
|
79
81
|
#cleanupAnchor(a) {
|
|
80
82
|
a.removeEventListener("click", this.#openIfClosed, true);
|
|
81
|
-
if (a.ariaLabel)
|
|
82
|
-
a.ariaLabel = a.ariaLabel.replace(this.#ANCHOR_ARIA_LABEL_SUFFIX, "");
|
|
83
|
+
if (a.ariaLabel) a.ariaLabel = this.#originalAriaLabel;
|
|
83
84
|
a.removeAttribute("aria-expanded");
|
|
84
85
|
a.removeAttribute("data-expanded");
|
|
85
86
|
}
|
package/shared/definition60.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { P as Popup, p as popupDefinition } from './definition67.js';
|
|
2
2
|
import { D as DOM, V as VividElement, a as attr, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
|
|
3
3
|
import { A as Anchored, a as anchorSlotTemplateFactory } from './anchored.js';
|
|
4
|
+
import { L as Localized } from './localized.js';
|
|
4
5
|
import { h as handleEscapeKeyAndStopPropogation } from './index.js';
|
|
5
6
|
import { c as classNames } from './class-names.js';
|
|
6
7
|
import { w as when } from './when.js';
|
|
@@ -16,10 +17,10 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
16
17
|
if (result) __defProp(target, key, result);
|
|
17
18
|
return result;
|
|
18
19
|
};
|
|
19
|
-
class Toggletip extends Anchored(VividElement) {
|
|
20
|
+
class Toggletip extends Localized(Anchored(VividElement)) {
|
|
20
21
|
constructor() {
|
|
21
22
|
super(...arguments);
|
|
22
|
-
this.#
|
|
23
|
+
this.#originalAriaLabel = null;
|
|
23
24
|
this.alternate = false;
|
|
24
25
|
this.placement = "right";
|
|
25
26
|
this.open = false;
|
|
@@ -37,7 +38,7 @@ class Toggletip extends Anchored(VividElement) {
|
|
|
37
38
|
}
|
|
38
39
|
};
|
|
39
40
|
}
|
|
40
|
-
#
|
|
41
|
+
#originalAriaLabel;
|
|
41
42
|
openChanged(oldValue, newValue) {
|
|
42
43
|
if (oldValue === void 0) return;
|
|
43
44
|
if (newValue) {
|
|
@@ -67,7 +68,8 @@ class Toggletip extends Anchored(VividElement) {
|
|
|
67
68
|
}
|
|
68
69
|
#setupAnchor(a) {
|
|
69
70
|
a.addEventListener("click", this.#openIfClosed, true);
|
|
70
|
-
|
|
71
|
+
this.#originalAriaLabel = a.ariaLabel;
|
|
72
|
+
a.ariaLabel = `${this.locale.toggletip.anchorLabel(a.ariaLabel || "")}`;
|
|
71
73
|
this.#updateAnchor(a);
|
|
72
74
|
}
|
|
73
75
|
#updateAnchor(a) {
|
|
@@ -76,8 +78,7 @@ class Toggletip extends Anchored(VividElement) {
|
|
|
76
78
|
}
|
|
77
79
|
#cleanupAnchor(a) {
|
|
78
80
|
a.removeEventListener("click", this.#openIfClosed, true);
|
|
79
|
-
if (a.ariaLabel)
|
|
80
|
-
a.ariaLabel = a.ariaLabel.replace(this.#ANCHOR_ARIA_LABEL_SUFFIX, "");
|
|
81
|
+
if (a.ariaLabel) a.ariaLabel = this.#originalAriaLabel;
|
|
81
82
|
a.removeAttribute("aria-expanded");
|
|
82
83
|
a.removeAttribute("data-expanded");
|
|
83
84
|
}
|
package/shared/definition62.cjs
CHANGED
|
@@ -23,7 +23,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
function isTreeItemElement(el) {
|
|
26
|
-
return dom.isHTMLElement(el) && el.getAttribute("role") === "treeitem";
|
|
26
|
+
return dom.isHTMLElement(el) && (el.getAttribute("role") === "treeitem" || el instanceof TreeItem);
|
|
27
27
|
}
|
|
28
28
|
class TreeItem extends hostSemantics.HostSemantics(affix.AffixIcon(vividElement.VividElement)) {
|
|
29
29
|
constructor() {
|
package/shared/definition62.js
CHANGED
|
@@ -21,7 +21,7 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
21
21
|
return result;
|
|
22
22
|
};
|
|
23
23
|
function isTreeItemElement(el) {
|
|
24
|
-
return isHTMLElement(el) && el.getAttribute("role") === "treeitem";
|
|
24
|
+
return isHTMLElement(el) && (el.getAttribute("role") === "treeitem" || el instanceof TreeItem);
|
|
25
25
|
}
|
|
26
26
|
class TreeItem extends HostSemantics(AffixIcon(VividElement)) {
|
|
27
27
|
constructor() {
|
package/shared/definition63.cjs
CHANGED
|
@@ -27,8 +27,7 @@ function getDisplayedNodes(rootNode, selector) {
|
|
|
27
27
|
);
|
|
28
28
|
const visibleNodes = nodes.filter((node) => {
|
|
29
29
|
if (node.parentElement instanceof definition.TreeItem) {
|
|
30
|
-
if (node.parentElement.
|
|
31
|
-
return true;
|
|
30
|
+
if (node.parentElement.expanded) return true;
|
|
32
31
|
} else {
|
|
33
32
|
return true;
|
|
34
33
|
}
|
package/shared/definition63.js
CHANGED
|
@@ -25,8 +25,7 @@ function getDisplayedNodes(rootNode, selector) {
|
|
|
25
25
|
);
|
|
26
26
|
const visibleNodes = nodes.filter((node) => {
|
|
27
27
|
if (node.parentElement instanceof TreeItem) {
|
|
28
|
-
if (node.parentElement.
|
|
29
|
-
return true;
|
|
28
|
+
if (node.parentElement.expanded) return true;
|
|
30
29
|
} else {
|
|
31
30
|
return true;
|
|
32
31
|
}
|
|
@@ -9,7 +9,6 @@ class DelegateAriaBehavior {
|
|
|
9
9
|
this.source = null;
|
|
10
10
|
this.bindingBehaviours = [];
|
|
11
11
|
this.onSourceAriaPropertyChanged = (source, property) => {
|
|
12
|
-
this.mitigateAccessibilityIssues(source);
|
|
13
12
|
if (!this.forwardedProperties.has(property)) {
|
|
14
13
|
return;
|
|
15
14
|
}
|
|
@@ -17,7 +16,6 @@ class DelegateAriaBehavior {
|
|
|
17
16
|
};
|
|
18
17
|
this.boundProperties = params.boundProperties;
|
|
19
18
|
this.forwardedProperties = params.forwardedProperties;
|
|
20
|
-
this.isMitigationDisabled = params.disableAccessibilityMitigation;
|
|
21
19
|
}
|
|
22
20
|
bind(source) {
|
|
23
21
|
this.source = source;
|
|
@@ -27,7 +25,6 @@ class DelegateAriaBehavior {
|
|
|
27
25
|
this.forwardedProperties,
|
|
28
26
|
this.target
|
|
29
27
|
);
|
|
30
|
-
this.mitigateAccessibilityIssues(source);
|
|
31
28
|
}
|
|
32
29
|
unbind() {
|
|
33
30
|
if (this.source === null) {
|
|
@@ -70,38 +67,20 @@ class DelegateAriaBehavior {
|
|
|
70
67
|
forwardPropertyToTarget(target, property, value) {
|
|
71
68
|
vividElement.DOM.setAttribute(target, vividElement.ariaAttributeName(property), value);
|
|
72
69
|
}
|
|
73
|
-
/**
|
|
74
|
-
* Sets role to presentation unless there are properties present that prohibit it.
|
|
75
|
-
* Using role="presentation" will cause non-global states or properties to be ignored.
|
|
76
|
-
* See: https://www.w3.org/TR/wai-aria-1.3/#conflict_resolution_presentation_none
|
|
77
|
-
*/
|
|
78
|
-
mitigateAccessibilityIssues(source) {
|
|
79
|
-
if (this.isMitigationDisabled) {
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
const hasProhibitedProperties = Boolean(
|
|
83
|
-
source.ariaLabel || source.ariaBrailleLabel || source.ariaChecked
|
|
84
|
-
);
|
|
85
|
-
if (hasProhibitedProperties) {
|
|
86
|
-
source.removeAttribute("role");
|
|
87
|
-
} else {
|
|
88
|
-
source.setAttribute("role", "presentation");
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
70
|
}
|
|
92
71
|
|
|
93
72
|
function delegateAria(boundProperties = {}, options = {}) {
|
|
94
73
|
const forwardedProperties = new Set(
|
|
95
|
-
(options.onlySpecified ? [] : vividElement.ariaMixinProperties).filter(
|
|
74
|
+
(options.onlySpecified ? [] : vividElement.ariaMixinProperties).filter(
|
|
75
|
+
(p) => !(p in boundProperties)
|
|
76
|
+
)
|
|
96
77
|
);
|
|
97
|
-
const disableAccessibilityMitigation = boundProperties.role instanceof Function;
|
|
98
78
|
return new vividElement.AttachedBehaviorHTMLDirective(
|
|
99
79
|
"vvd-delegate-aria",
|
|
100
80
|
DelegateAriaBehavior,
|
|
101
81
|
{
|
|
102
82
|
boundProperties,
|
|
103
|
-
forwardedProperties
|
|
104
|
-
disableAccessibilityMitigation
|
|
83
|
+
forwardedProperties
|
|
105
84
|
}
|
|
106
85
|
);
|
|
107
86
|
}
|