@vonage/vivid 4.25.0 → 4.27.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 +3371 -1999
- package/lib/accordion-item/accordion-item.d.ts +2 -2
- package/lib/action-group/action-group.d.ts +1 -1
- package/lib/alert/alert.d.ts +5 -5
- package/lib/audio-player/audio-player.d.ts +3 -3
- package/lib/avatar/avatar.d.ts +393 -1
- package/lib/avatar/avatar.template.d.ts +2 -2
- package/lib/badge/badge.d.ts +2 -2
- package/lib/banner/banner.d.ts +6 -6
- package/lib/breadcrumb/breadcrumb.d.ts +1 -1
- package/lib/breadcrumb-item/breadcrumb-item.d.ts +1 -1
- package/lib/button/button.d.ts +6 -6
- package/lib/calendar/calendar.d.ts +2 -0
- package/lib/calendar-event/calendar-event.d.ts +1 -1
- package/lib/card/card.d.ts +1 -1
- package/lib/checkbox/checkbox.d.ts +10 -10
- package/lib/combobox/combobox.d.ts +11 -11
- package/lib/data-grid/data-grid-cell.d.ts +6 -4
- package/lib/data-grid/data-grid-row.d.ts +1 -0
- package/lib/data-grid/data-grid.d.ts +1 -1
- package/lib/date-picker/date-picker.d.ts +75 -75
- package/lib/date-picker/date-picker.template.d.ts +1 -1
- package/lib/date-range-picker/date-range-picker.d.ts +44 -44
- package/lib/date-range-picker/date-range-picker.template.d.ts +1 -1
- package/lib/date-time-picker/date-time-picker.d.ts +64 -64
- package/lib/date-time-picker/date-time-picker.template.d.ts +1 -1
- package/lib/dial-pad/dial-pad.d.ts +3 -3
- package/lib/dialog/dialog.d.ts +5 -4
- package/lib/divider/divider.d.ts +1 -1
- package/lib/fab/fab.d.ts +2 -2
- package/lib/file-picker/file-picker.d.ts +10 -10
- package/lib/header/header.d.ts +1 -1
- package/lib/menu/menu.d.ts +2 -2
- package/lib/menu-item/menu-item.d.ts +3 -3
- package/lib/nav/nav.d.ts +1 -1
- package/lib/nav-disclosure/nav-disclosure.d.ts +3 -3
- package/lib/nav-item/nav-item.d.ts +3 -3
- package/lib/note/note.d.ts +2 -2
- package/lib/number-field/locale.d.ts +3 -2
- package/lib/number-field/number-field.d.ts +15 -15
- package/lib/option/option.d.ts +3 -3
- package/lib/pagination/locale.d.ts +5 -0
- package/lib/pagination/pagination.d.ts +341 -2
- package/lib/popup/popup.d.ts +1 -0
- package/lib/progress/progress.d.ts +1 -1
- package/lib/progress-ring/progress-ring.d.ts +1 -1
- package/lib/radio/radio.d.ts +3 -3
- package/lib/radio-group/radio-group.d.ts +4 -4
- package/lib/range-slider/range-slider.d.ts +5 -5
- package/lib/rich-text-editor/menubar/menubar.d.ts +3 -3
- package/lib/rich-text-editor/rich-text-editor.d.ts +3 -3
- package/lib/searchable-select/locale.d.ts +1 -1
- package/lib/searchable-select/option-tag.d.ts +3 -3
- package/lib/searchable-select/searchable-select.d.ts +15 -15
- package/lib/select/select.d.ts +12 -12
- package/lib/selectable-box/selectable-box.d.ts +1 -1
- package/lib/slider/slider.d.ts +5 -5
- package/lib/split-button/split-button.d.ts +6 -6
- package/lib/switch/switch.d.ts +2 -2
- package/lib/tab/tab.d.ts +6 -6
- package/lib/tab-panel/tab-panel.d.ts +1 -1
- package/lib/tag/locale.d.ts +3 -0
- package/lib/tag/tag.d.ts +343 -6
- package/lib/tag-group/tag-group.d.ts +1 -1
- package/lib/text-area/text-area.d.ts +14 -14
- package/lib/text-field/text-field.d.ts +16 -16
- package/lib/time-picker/time-picker.d.ts +21 -21
- package/lib/toggletip/toggletip.d.ts +1 -1
- package/lib/tooltip/tooltip.d.ts +1 -1
- package/lib/tree-item/tree-item.d.ts +3 -3
- package/lib/tree-view/tree-view.d.ts +1 -1
- package/lib/video-player/video-player.d.ts +3 -3
- package/locales/de-DE.cjs +40 -5
- package/locales/de-DE.js +40 -5
- package/locales/en-GB.cjs +40 -5
- package/locales/en-GB.js +40 -5
- package/locales/en-US.cjs +40 -5
- package/locales/en-US.js +40 -5
- package/locales/ja-JP.cjs +40 -5
- package/locales/ja-JP.js +40 -5
- package/locales/zh-CN.cjs +40 -5
- package/locales/zh-CN.js +40 -5
- package/package.json +73 -45
- package/shared/aria/delegates-aria.d.ts +1 -1
- package/shared/aria/host-semantics.d.ts +1 -1
- package/shared/calendar-picker.template.cjs +40 -13
- package/shared/calendar-picker.template.js +40 -13
- package/shared/definition.cjs +19 -3
- package/shared/definition.js +20 -4
- package/shared/definition11.cjs +1 -1
- package/shared/definition11.js +1 -1
- package/shared/definition13.cjs +25 -0
- package/shared/definition13.js +26 -1
- package/shared/definition15.cjs +1 -1
- package/shared/definition15.js +1 -1
- package/shared/definition16.cjs +1 -1
- package/shared/definition16.js +1 -1
- package/shared/definition17.cjs +602 -522
- package/shared/definition17.js +600 -520
- package/shared/definition18.cjs +8 -1
- package/shared/definition18.js +8 -1
- package/shared/definition19.cjs +9 -2
- package/shared/definition19.js +9 -2
- package/shared/definition2.cjs +1 -1
- package/shared/definition2.js +1 -1
- package/shared/definition20.cjs +3 -1
- package/shared/definition20.js +3 -1
- package/shared/definition21.cjs +2 -2
- package/shared/definition21.js +2 -2
- package/shared/definition22.cjs +9 -3
- package/shared/definition22.js +9 -3
- package/shared/definition28.cjs +2 -2
- package/shared/definition28.js +2 -2
- package/shared/definition3.cjs +1 -1
- package/shared/definition3.js +1 -1
- package/shared/definition30.cjs +1 -1
- package/shared/definition30.js +1 -1
- package/shared/definition31.cjs +1 -1
- package/shared/definition31.js +1 -1
- package/shared/definition32.cjs +1 -1
- package/shared/definition32.js +1 -1
- package/shared/definition36.cjs +41 -30
- package/shared/definition36.js +34 -23
- package/shared/definition38.cjs +30 -23
- package/shared/definition38.js +30 -23
- package/shared/definition4.cjs +1 -1
- package/shared/definition4.js +1 -1
- package/shared/definition41.cjs +1 -1
- package/shared/definition41.js +1 -1
- package/shared/definition42.cjs +2 -2
- package/shared/definition42.js +2 -2
- package/shared/definition44.cjs +129 -117
- package/shared/definition44.js +130 -118
- package/shared/definition45.cjs +17 -7
- package/shared/definition45.js +17 -7
- package/shared/definition46.cjs +1 -1
- package/shared/definition46.js +1 -1
- package/shared/definition49.cjs +6 -6
- package/shared/definition49.js +6 -6
- package/shared/definition54.cjs +2 -2
- package/shared/definition54.js +2 -2
- package/shared/definition56.cjs +5 -4
- package/shared/definition56.js +5 -4
- package/shared/definition57.cjs +1 -1
- package/shared/definition57.js +1 -1
- package/shared/definition58.cjs +1 -1
- package/shared/definition58.js +1 -1
- package/shared/definition59.cjs +3 -1
- package/shared/definition59.js +3 -1
- package/shared/definition6.cjs +45 -12
- package/shared/definition6.js +45 -12
- package/shared/definition63.cjs +2 -2
- package/shared/definition63.js +2 -2
- package/shared/definition64.cjs +136 -38
- package/shared/definition64.js +136 -38
- package/shared/definition67.cjs +36 -15
- package/shared/definition67.js +37 -16
- package/shared/feedback/feedback-message.d.ts +1 -1
- package/shared/feedback/mixins.d.ts +2 -2
- package/shared/form-associated.cjs +4 -0
- package/shared/form-associated.js +4 -0
- package/shared/foundation/button/button.d.ts +1 -1
- package/shared/foundation/vivid-element/vivid-element.d.ts +2 -0
- package/shared/key-codes.js +1 -1
- package/shared/localization/Locale.d.ts +4 -0
- package/shared/mixins.cjs +4 -1
- package/shared/mixins.js +4 -1
- package/shared/patterns/affix.d.ts +2 -2
- package/shared/patterns/char-count/char-count.d.ts +1 -1
- package/shared/patterns/form-elements/with-success-text.d.ts +1 -1
- package/shared/patterns/linkable.d.ts +1 -1
- package/shared/patterns/localized.d.ts +1 -1
- package/shared/patterns/trapped-focus.d.ts +1 -1
- package/shared/picker-field/mixins/calendar-picker.d.ts +2 -2
- package/shared/picker-field/mixins/calendar-picker.locale.d.ts +5 -0
- package/shared/picker-field/mixins/calendar-picker.template.d.ts +2 -2
- package/shared/picker-field/mixins/calendar-segments/segment.d.ts +1 -0
- package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +1 -1
- package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +4 -4
- package/shared/picker-field/mixins/single-date-picker.d.ts +4 -4
- package/shared/picker-field/mixins/single-value-picker.d.ts +1 -1
- package/shared/picker-field/mixins/time-selection-picker.d.ts +2 -2
- package/shared/picker-field/mixins/time-selection-picker.template.d.ts +2 -2
- package/shared/picker-field/picker-field.d.ts +3 -3
- package/shared/picker-field.template.cjs +13 -13
- package/shared/picker-field.template.js +13 -13
- package/shared/vivid-element.cjs +11 -1
- package/shared/vivid-element.js +11 -1
- package/styles/core/all.css +5 -5
- package/styles/core/theme.css +2 -2
- package/styles/core/typography.css +4 -4
- package/styles/fonts/spezia-variable.css +15 -15
- package/styles/tokens/theme-dark.css +4 -4
- package/styles/tokens/theme-light.css +4 -4
- package/styles/tokens/vivid-2-compat.css +1 -1
- package/vivid.api.json +395 -277
package/shared/definition44.js
CHANGED
|
@@ -1,68 +1,19 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { L as Localized } from './localized.js';
|
|
1
|
+
import { h as html, V as VividElement, a as attr, f as defineVividComponent, D as DOM, n as nullableNumberConverter, d as createRegisterFunction } from './vivid-element.js';
|
|
3
2
|
import { B as Button, b as buttonDefinition } from './definition11.js';
|
|
4
|
-
import {
|
|
3
|
+
import { d as dividerDefinition } from './definition23.js';
|
|
4
|
+
import { l as listboxOptionDefinition } from './definition37.js';
|
|
5
5
|
import { T as Tooltip, t as tooltipDefinition } from './definition61.js';
|
|
6
|
-
import { S as Select, s as selectDefinition } from './definition46.js';
|
|
7
|
-
import { L as ListboxOption } from './option.js';
|
|
8
6
|
import { M as Menu, m as menuDefinition } from './definition31.js';
|
|
9
7
|
import { M as MenuItem, m as menuItemDefinition } from './definition30.js';
|
|
8
|
+
import { S as Select, s as selectDefinition } from './definition46.js';
|
|
9
|
+
import { D as Divider } from './divider.js';
|
|
10
|
+
import { L as ListboxOption } from './option.js';
|
|
10
11
|
import { r as repeat } from './repeat.js';
|
|
11
12
|
import { c as classNames } from './class-names.js';
|
|
12
|
-
import {
|
|
13
|
-
import { d as dividerDefinition } from './definition23.js';
|
|
13
|
+
import { L as Localized } from './localized.js';
|
|
14
14
|
|
|
15
15
|
const styles$1 = "@charset \"UTF-8\";.ProseMirror li{position:relative}.ProseMirror-hideselection *::selection{background:transparent}.ProseMirror-hideselection *::-moz-selection{background:transparent}.ProseMirror-hideselection{caret-color:transparent}.ProseMirror [draggable][contenteditable=false]{user-select:text}.ProseMirror-selectednode{outline:2px solid #8cf}li.ProseMirror-selectednode{outline:none}li.ProseMirror-selectednode:after{content:\"\";position:absolute;inset:-2px -2px -2px -32px;border:2px solid #8cf;pointer-events:none}img.ProseMirror-separator{display:inline!important;border:none!important;margin:0!important}.ProseMirror-textblock-dropdown{min-width:3em}.ProseMirror-menu{margin:0 -4px;line-height:1}.ProseMirror-tooltip .ProseMirror-menu{width:-webkit-fit-content;width:fit-content;white-space:pre}.ProseMirror-menuitem{margin-right:3px;display:inline-block}.ProseMirror-menuseparator{border-right:1px solid #ddd;margin-right:3px}.ProseMirror-menu-dropdown,.ProseMirror-menu-dropdown-menu{font-size:90%;white-space:nowrap}.ProseMirror-menu-dropdown{vertical-align:1px;cursor:pointer;position:relative;padding-right:15px}.ProseMirror-menu-dropdown-wrap{padding:1px 0 1px 4px;display:inline-block;position:relative}.ProseMirror-menu-dropdown:after{content:\"\";border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid currentColor;opacity:.6;position:absolute;right:4px;top:calc(50% - 2px)}.ProseMirror-menu-dropdown-menu,.ProseMirror-menu-submenu{position:absolute;background:#fff;color:#666;border:1px solid #aaa;padding:2px}.ProseMirror-menu-dropdown-menu{z-index:15;min-width:6em}.ProseMirror-menu-dropdown-item{cursor:pointer;padding:2px 8px 2px 4px}.ProseMirror-menu-dropdown-item:hover{background:#f2f2f2}.ProseMirror-menu-submenu-wrap{position:relative;margin-right:-4px}.ProseMirror-menu-submenu-label:after{content:\"\";border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:4px solid currentColor;opacity:.6;position:absolute;right:4px;top:calc(50% - 4px)}.ProseMirror-menu-submenu{display:none;min-width:4em;left:100%;top:-3px}.ProseMirror-menu-active{background:#eee;border-radius:4px}.ProseMirror-menu-disabled{opacity:.3}.ProseMirror-menu-submenu-wrap:hover .ProseMirror-menu-submenu,.ProseMirror-menu-submenu-wrap-active .ProseMirror-menu-submenu{display:block}.ProseMirror-menubar{border-top-left-radius:inherit;border-top-right-radius:inherit;position:relative;min-height:1em;color:#666;padding:1px 6px;top:0;left:0;right:0;border-bottom:1px solid silver;background:#fff;z-index:10;-moz-box-sizing:border-box;box-sizing:border-box;overflow:visible}.ProseMirror-icon{display:inline-block;line-height:.8;vertical-align:-2px;padding:2px 8px;cursor:pointer}.ProseMirror-menu-disabled.ProseMirror-icon{cursor:default}.ProseMirror-icon svg{fill:currentColor;height:1em}.ProseMirror-icon span{vertical-align:text-top}.ProseMirror-gapcursor{display:none;pointer-events:none;position:absolute}.ProseMirror-gapcursor:after{content:\"\";display:block;position:absolute;top:-2px;width:20px;border-top:1px solid black;animation:ProseMirror-cursor-blink 1.1s steps(2,start) infinite}@keyframes ProseMirror-cursor-blink{to{visibility:hidden}}.ProseMirror-focused .ProseMirror-gapcursor{display:block}.ProseMirror-example-setup-style hr{padding:2px 10px;border:none;margin:1em 0}.ProseMirror-example-setup-style hr:after{content:\"\";display:block;height:1px;background-color:silver;line-height:2px}.ProseMirror ul,.ProseMirror ol{padding-left:30px}.ProseMirror blockquote{padding-left:1em;border-left:3px solid #eee;margin-left:0;margin-right:0}.ProseMirror-example-setup-style img{cursor:default}.ProseMirror-prompt{background:#fff;padding:5px 10px 5px 15px;border:1px solid silver;position:fixed;border-radius:3px;z-index:11;box-shadow:-.5px 2px 5px #0003}.ProseMirror-prompt h5{margin:0;font-weight:400;font-size:100%;color:#444}.ProseMirror-prompt input[type=text],.ProseMirror-prompt textarea{background:#eee;border:none;outline:none}.ProseMirror-prompt input[type=text]{padding:0 4px}.ProseMirror-prompt-close{position:absolute;left:2px;top:1px;color:#666;border:none;background:transparent;padding:0}.ProseMirror-prompt-close:after{content:\"✕\";font-size:12px}.ProseMirror-invalid{background:#ffc;border:1px solid #cc7;border-radius:4px;padding:5px 10px;position:absolute;min-width:10em}.ProseMirror-prompt-buttons{margin-top:5px;display:none}.placeholder:before{position:absolute;color:var(--vvd-color-neutral-600);content:attr(data-placeholder);font:var(--vvd-typography-base);pointer-events:none}.editor{box-sizing:border-box;background:var(--vvd-color-canvas);background-clip:padding-box;color:var(--vvd-color-canvas-text)}.ProseMirror{position:relative;box-sizing:border-box;padding:10px 16px;block-size:120px;font:var(--vvd-typography-base);font-feature-settings:\"liga\" 0;font-variant-ligatures:none;line-height:1.2;outline:none;overflow-y:auto;white-space:break-spaces;word-wrap:break-word}.ProseMirror pre{white-space:pre-wrap}.ProseMirror p{margin-bottom:1em}.ProseMirror p:first-child,.ProseMirror h1:first-child,.ProseMirror h2:first-child,.ProseMirror h3:first-child,.ProseMirror h4:first-child,.ProseMirror h5:first-child,.ProseMirror h6:first-child{margin-top:10px}h2{font:var(--vvd-typography-heading-4)}h3{font:var(--vvd-typography-base-extended)}p{font:var(--vvd-typography-base)}:host{display:block}#editor{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}#editor{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}#editor ::-webkit-scrollbar{width:4px}#editor ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}#editor ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}#editor{position:relative;display:flex;flex-direction:column;block-size:100%;overflow-y:auto}[contenteditable=true]{overflow:unset;block-size:unset}#attachments-wrapper{order:1}#attachments-wrapper .divider{padding:0 12px}.hidden{display:none}.drag-overlay{position:absolute;z-index:10;display:none;align-items:center;justify-content:center;border:1px dashed var(--vvd-color-cta-400);border-radius:8px;background:var(--vvd-color-cta-100);font:var(--vvd-typography-base);inset:0;opacity:.8;pointer-events:none;transition:opacity .2s}.drag-over .drag-overlay{display:flex}";
|
|
16
16
|
|
|
17
|
-
const styles = ":host{display:flex;align-items:center;background-color:var(--vvd-color-neutral-50);gap:4px}:host .hide-menubar{display:none}.title{--_text-primary-custom-size: var(--vvd-typography-heading-4)}.subtitle{--_text-primary-custom-size: var(--vvd-typography-base-extended)}.body{--_text-primary-custom-size: var(--vvd-typography-base)}.divider{height:28px}#text-block{width:104px}";
|
|
18
|
-
|
|
19
|
-
var __defProp$1 = Object.defineProperty;
|
|
20
|
-
var __decorateClass$1 = (decorators, target, key, kind) => {
|
|
21
|
-
var result = void 0 ;
|
|
22
|
-
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
23
|
-
if (decorator = decorators[i])
|
|
24
|
-
result = (decorator(target, key, result) ) || result;
|
|
25
|
-
if (result) __defProp$1(target, key, result);
|
|
26
|
-
return result;
|
|
27
|
-
};
|
|
28
|
-
class MenuBar extends Localized(VividElement) {
|
|
29
|
-
get #textEditorElement() {
|
|
30
|
-
return this.parentElement;
|
|
31
|
-
}
|
|
32
|
-
#updateTextStyleState = () => {
|
|
33
|
-
this.dispatchEvent(
|
|
34
|
-
new CustomEvent("text-styles-changed", {
|
|
35
|
-
detail: this.#textEditorElement?.selectionStyles
|
|
36
|
-
})
|
|
37
|
-
);
|
|
38
|
-
};
|
|
39
|
-
connectedCallback() {
|
|
40
|
-
super.connectedCallback();
|
|
41
|
-
this.#textEditorElement.addEventListener(
|
|
42
|
-
"selection-changed",
|
|
43
|
-
this.#updateTextStyleState
|
|
44
|
-
);
|
|
45
|
-
this.#textEditorElement.addEventListener(
|
|
46
|
-
"change",
|
|
47
|
-
this.#updateTextStyleState
|
|
48
|
-
);
|
|
49
|
-
}
|
|
50
|
-
disconnectedCallback() {
|
|
51
|
-
super.disconnectedCallback();
|
|
52
|
-
this.#textEditorElement?.removeEventListener(
|
|
53
|
-
"selection-changed",
|
|
54
|
-
this.#updateTextStyleState
|
|
55
|
-
);
|
|
56
|
-
this.#textEditorElement?.removeEventListener(
|
|
57
|
-
"change",
|
|
58
|
-
this.#updateTextStyleState
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
__decorateClass$1([
|
|
63
|
-
attr({ attribute: "menu-items" })
|
|
64
|
-
], MenuBar.prototype, "menuItems");
|
|
65
|
-
|
|
66
17
|
function notifyMenuBarChange(menuBar, eventName, payload) {
|
|
67
18
|
menuBar.$emit(eventName, payload, { bubbles: false, composed: false });
|
|
68
19
|
return true;
|
|
@@ -303,6 +254,53 @@ const MENU_BAR_ITEMS = {
|
|
|
303
254
|
}
|
|
304
255
|
};
|
|
305
256
|
|
|
257
|
+
var __defProp$1 = Object.defineProperty;
|
|
258
|
+
var __decorateClass$1 = (decorators, target, key, kind) => {
|
|
259
|
+
var result = void 0 ;
|
|
260
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
261
|
+
if (decorator = decorators[i])
|
|
262
|
+
result = (decorator(target, key, result) ) || result;
|
|
263
|
+
if (result) __defProp$1(target, key, result);
|
|
264
|
+
return result;
|
|
265
|
+
};
|
|
266
|
+
class MenuBar extends Localized(VividElement) {
|
|
267
|
+
get #textEditorElement() {
|
|
268
|
+
return this.parentElement;
|
|
269
|
+
}
|
|
270
|
+
#updateTextStyleState = () => {
|
|
271
|
+
this.dispatchEvent(
|
|
272
|
+
new CustomEvent("text-styles-changed", {
|
|
273
|
+
detail: this.#textEditorElement?.selectionStyles
|
|
274
|
+
})
|
|
275
|
+
);
|
|
276
|
+
};
|
|
277
|
+
connectedCallback() {
|
|
278
|
+
super.connectedCallback();
|
|
279
|
+
this.#textEditorElement.addEventListener(
|
|
280
|
+
"selection-changed",
|
|
281
|
+
this.#updateTextStyleState
|
|
282
|
+
);
|
|
283
|
+
this.#textEditorElement.addEventListener(
|
|
284
|
+
"change",
|
|
285
|
+
this.#updateTextStyleState
|
|
286
|
+
);
|
|
287
|
+
}
|
|
288
|
+
disconnectedCallback() {
|
|
289
|
+
super.disconnectedCallback();
|
|
290
|
+
this.#textEditorElement?.removeEventListener(
|
|
291
|
+
"selection-changed",
|
|
292
|
+
this.#updateTextStyleState
|
|
293
|
+
);
|
|
294
|
+
this.#textEditorElement?.removeEventListener(
|
|
295
|
+
"change",
|
|
296
|
+
this.#updateTextStyleState
|
|
297
|
+
);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
__decorateClass$1([
|
|
301
|
+
attr({ attribute: "menu-items" })
|
|
302
|
+
], MenuBar.prototype, "menuItems");
|
|
303
|
+
|
|
306
304
|
const getClasses$1 = (menuBar) => classNames("control", [
|
|
307
305
|
"hide-menubar",
|
|
308
306
|
getValidMenuItems(menuBar).length === 0
|
|
@@ -332,6 +330,8 @@ const MenuBarTemplate = (context) => {
|
|
|
332
330
|
</template>`;
|
|
333
331
|
};
|
|
334
332
|
|
|
333
|
+
const styles = ":host{display:flex;align-items:center;background-color:var(--vvd-color-neutral-50);gap:4px}:host .hide-menubar{display:none}.title{--_text-primary-custom-size: var(--vvd-typography-heading-4)}.subtitle{--_text-primary-custom-size: var(--vvd-typography-base-extended)}.body{--_text-primary-custom-size: var(--vvd-typography-base)}.divider{height:28px}#text-block{width:104px}";
|
|
334
|
+
|
|
335
335
|
const menuBarDefinition = defineVividComponent(
|
|
336
336
|
"menubar",
|
|
337
337
|
MenuBar,
|
|
@@ -7065,6 +7065,7 @@ const isEquivalentPosition = function (node, off, targetNode, targetOff) {
|
|
|
7065
7065
|
};
|
|
7066
7066
|
const atomElements = /^(img|br|input|textarea|hr)$/i;
|
|
7067
7067
|
function scanFor(node, off, targetNode, targetOff, dir) {
|
|
7068
|
+
var _a;
|
|
7068
7069
|
for (;;) {
|
|
7069
7070
|
if (node == targetNode && off == targetOff)
|
|
7070
7071
|
return true;
|
|
@@ -7077,10 +7078,17 @@ function scanFor(node, off, targetNode, targetOff, dir) {
|
|
|
7077
7078
|
node = parent;
|
|
7078
7079
|
}
|
|
7079
7080
|
else if (node.nodeType == 1) {
|
|
7080
|
-
|
|
7081
|
-
if (
|
|
7082
|
-
|
|
7083
|
-
|
|
7081
|
+
let child = node.childNodes[off + (dir < 0 ? -1 : 0)];
|
|
7082
|
+
if (child.nodeType == 1 && child.contentEditable == "false") {
|
|
7083
|
+
if ((_a = child.pmViewDesc) === null || _a === void 0 ? void 0 : _a.ignoreForSelection)
|
|
7084
|
+
off += dir;
|
|
7085
|
+
else
|
|
7086
|
+
return false;
|
|
7087
|
+
}
|
|
7088
|
+
else {
|
|
7089
|
+
node = child;
|
|
7090
|
+
off = dir < 0 ? nodeSize(node) : 0;
|
|
7091
|
+
}
|
|
7084
7092
|
}
|
|
7085
7093
|
else {
|
|
7086
7094
|
return false;
|
|
@@ -7201,7 +7209,7 @@ const safari = !ie$1 && !!nav && /Apple Computer/.test(nav.vendor);
|
|
|
7201
7209
|
// Is true for both iOS and iPadOS for convenience
|
|
7202
7210
|
const ios = safari && (/Mobile\/\w+/.test(agent) || !!nav && nav.maxTouchPoints > 2);
|
|
7203
7211
|
const mac$3 = ios || (nav ? /Mac/.test(nav.platform) : false);
|
|
7204
|
-
const windows = nav ? /Win/.test(nav.platform) : false;
|
|
7212
|
+
const windows$1 = nav ? /Win/.test(nav.platform) : false;
|
|
7205
7213
|
const android = /Android \d/.test(agent);
|
|
7206
7214
|
const webkit = !!doc && "webkitFontSmoothing" in doc.documentElement.style;
|
|
7207
7215
|
const webkit_version = webkit ? +(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent) || [0, 0])[1] : 0;
|
|
@@ -8164,6 +8172,7 @@ class ViewDesc {
|
|
|
8164
8172
|
}
|
|
8165
8173
|
get domAtom() { return false; }
|
|
8166
8174
|
get ignoreForCoords() { return false; }
|
|
8175
|
+
get ignoreForSelection() { return false; }
|
|
8167
8176
|
isText(text) { return false; }
|
|
8168
8177
|
}
|
|
8169
8178
|
// A widget desc represents a widget decoration, which is a DOM node
|
|
@@ -8208,6 +8217,7 @@ class WidgetViewDesc extends ViewDesc {
|
|
|
8208
8217
|
super.destroy();
|
|
8209
8218
|
}
|
|
8210
8219
|
get domAtom() { return true; }
|
|
8220
|
+
get ignoreForSelection() { return !!this.widget.type.spec.relaxedSide; }
|
|
8211
8221
|
get side() { return this.widget.type.side; }
|
|
8212
8222
|
}
|
|
8213
8223
|
class CompositionViewDesc extends ViewDesc {
|
|
@@ -9671,7 +9681,7 @@ function setSelFocus(view, node, offset) {
|
|
|
9671
9681
|
}
|
|
9672
9682
|
function findDirection(view, pos) {
|
|
9673
9683
|
let $pos = view.state.doc.resolve(pos);
|
|
9674
|
-
if (!(chrome || windows) && $pos.parent.inlineContent) {
|
|
9684
|
+
if (!(chrome || windows$1) && $pos.parent.inlineContent) {
|
|
9675
9685
|
let coords = view.coordsAtPos(pos);
|
|
9676
9686
|
if (pos > $pos.start()) {
|
|
9677
9687
|
let before = view.coordsAtPos(pos - 1);
|
|
@@ -10077,7 +10087,7 @@ class InputState {
|
|
|
10077
10087
|
this.mouseDown = null;
|
|
10078
10088
|
this.lastKeyCode = null;
|
|
10079
10089
|
this.lastKeyCodeTime = 0;
|
|
10080
|
-
this.lastClick = { time: 0, x: 0, y: 0, type: "" };
|
|
10090
|
+
this.lastClick = { time: 0, x: 0, y: 0, type: "", button: 0 };
|
|
10081
10091
|
this.lastSelectionOrigin = null;
|
|
10082
10092
|
this.lastSelectionTime = 0;
|
|
10083
10093
|
this.lastIOSEnter = 0;
|
|
@@ -10205,8 +10215,9 @@ editHandlers.keypress = (view, _event) => {
|
|
|
10205
10215
|
let sel = view.state.selection;
|
|
10206
10216
|
if (!(sel instanceof TextSelection) || !sel.$from.sameParent(sel.$to)) {
|
|
10207
10217
|
let text = String.fromCharCode(event.charCode);
|
|
10208
|
-
|
|
10209
|
-
|
|
10218
|
+
let deflt = () => view.state.tr.insertText(text).scrollIntoView();
|
|
10219
|
+
if (!/[\r\n]/.test(text) && !view.someProp("handleTextInput", f => f(view, sel.$from.pos, sel.$to.pos, text, deflt)))
|
|
10220
|
+
view.dispatch(deflt());
|
|
10210
10221
|
event.preventDefault();
|
|
10211
10222
|
}
|
|
10212
10223
|
};
|
|
@@ -10318,13 +10329,14 @@ handlers.mousedown = (view, _event) => {
|
|
|
10318
10329
|
view.input.shiftKey = event.shiftKey;
|
|
10319
10330
|
let flushed = forceDOMFlush(view);
|
|
10320
10331
|
let now = Date.now(), type = "singleClick";
|
|
10321
|
-
if (now - view.input.lastClick.time < 500 && isNear(event, view.input.lastClick) && !event[selectNodeModifier]
|
|
10332
|
+
if (now - view.input.lastClick.time < 500 && isNear(event, view.input.lastClick) && !event[selectNodeModifier] &&
|
|
10333
|
+
view.input.lastClick.button == event.button) {
|
|
10322
10334
|
if (view.input.lastClick.type == "singleClick")
|
|
10323
10335
|
type = "doubleClick";
|
|
10324
10336
|
else if (view.input.lastClick.type == "doubleClick")
|
|
10325
10337
|
type = "tripleClick";
|
|
10326
10338
|
}
|
|
10327
|
-
view.input.lastClick = { time: now, x: event.clientX, y: event.clientY, type };
|
|
10339
|
+
view.input.lastClick = { time: now, x: event.clientX, y: event.clientY, type, button: event.button };
|
|
10328
10340
|
let pos = view.posAtCoords(eventCoords(event));
|
|
10329
10341
|
if (!pos)
|
|
10330
10342
|
return;
|
|
@@ -10581,10 +10593,10 @@ function endComposition(view, restarting = false) {
|
|
|
10581
10593
|
view.domObserver.forceFlush();
|
|
10582
10594
|
clearComposition(view);
|
|
10583
10595
|
if (restarting || view.docView && view.docView.dirty) {
|
|
10584
|
-
let sel = selectionFromDOM(view);
|
|
10585
|
-
if (sel && !sel.eq(
|
|
10596
|
+
let sel = selectionFromDOM(view), cur = view.state.selection;
|
|
10597
|
+
if (sel && !sel.eq(cur))
|
|
10586
10598
|
view.dispatch(view.state.tr.setSelection(sel));
|
|
10587
|
-
else if ((view.markCursor || restarting) && !
|
|
10599
|
+
else if ((view.markCursor || restarting) && !cur.$from.node(cur.$from.sharedDepth(cur.to)).inlineContent)
|
|
10588
10600
|
view.dispatch(view.state.tr.deleteSelection());
|
|
10589
10601
|
else
|
|
10590
10602
|
view.updateState(view.state);
|
|
@@ -12089,7 +12101,26 @@ function readDOMChange(view, from, to, typeOver, addedNodes) {
|
|
|
12089
12101
|
}, 20);
|
|
12090
12102
|
}
|
|
12091
12103
|
let chFrom = change.start, chTo = change.endA;
|
|
12092
|
-
let
|
|
12104
|
+
let mkTr = (base) => {
|
|
12105
|
+
let tr = base || view.state.tr.replace(chFrom, chTo, parse.doc.slice(change.start - parse.from, change.endB - parse.from));
|
|
12106
|
+
if (parse.sel) {
|
|
12107
|
+
let sel = resolveSelection(view, tr.doc, parse.sel);
|
|
12108
|
+
// Chrome will sometimes, during composition, report the
|
|
12109
|
+
// selection in the wrong place. If it looks like that is
|
|
12110
|
+
// happening, don't update the selection.
|
|
12111
|
+
// Edge just doesn't move the cursor forward when you start typing
|
|
12112
|
+
// in an empty block or between br nodes.
|
|
12113
|
+
if (sel && !(chrome && view.composing && sel.empty &&
|
|
12114
|
+
(change.start != change.endB || view.input.lastChromeDelete < Date.now() - 100) &&
|
|
12115
|
+
(sel.head == chFrom || sel.head == tr.mapping.map(chTo) - 1) ||
|
|
12116
|
+
ie$1 && sel.empty && sel.head == chFrom))
|
|
12117
|
+
tr.setSelection(sel);
|
|
12118
|
+
}
|
|
12119
|
+
if (compositionID)
|
|
12120
|
+
tr.setMeta("composition", compositionID);
|
|
12121
|
+
return tr.scrollIntoView();
|
|
12122
|
+
};
|
|
12123
|
+
let markChange;
|
|
12093
12124
|
if (inlineChange) {
|
|
12094
12125
|
if ($from.pos == $to.pos) { // Deletion
|
|
12095
12126
|
// IE11 sometimes weirdly moves the DOM selection around after
|
|
@@ -12098,46 +12129,33 @@ function readDOMChange(view, from, to, typeOver, addedNodes) {
|
|
|
12098
12129
|
view.domObserver.suppressSelectionUpdates();
|
|
12099
12130
|
setTimeout(() => selectionToDOM(view), 20);
|
|
12100
12131
|
}
|
|
12101
|
-
tr = view.state.tr.delete(chFrom, chTo);
|
|
12102
|
-
|
|
12132
|
+
let tr = mkTr(view.state.tr.delete(chFrom, chTo));
|
|
12133
|
+
let marks = doc.resolve(change.start).marksAcross(doc.resolve(change.endA));
|
|
12134
|
+
if (marks)
|
|
12135
|
+
tr.ensureMarks(marks);
|
|
12136
|
+
view.dispatch(tr);
|
|
12103
12137
|
}
|
|
12104
12138
|
else if ( // Adding or removing a mark
|
|
12105
12139
|
change.endA == change.endB &&
|
|
12106
12140
|
(markChange = isMarkChange($from.parent.content.cut($from.parentOffset, $to.parentOffset), $fromA.parent.content.cut($fromA.parentOffset, change.endA - $fromA.start())))) {
|
|
12107
|
-
tr = view.state.tr;
|
|
12141
|
+
let tr = mkTr(view.state.tr);
|
|
12108
12142
|
if (markChange.type == "add")
|
|
12109
12143
|
tr.addMark(chFrom, chTo, markChange.mark);
|
|
12110
12144
|
else
|
|
12111
12145
|
tr.removeMark(chFrom, chTo, markChange.mark);
|
|
12146
|
+
view.dispatch(tr);
|
|
12112
12147
|
}
|
|
12113
12148
|
else if ($from.parent.child($from.index()).isText && $from.index() == $to.index() - ($to.textOffset ? 0 : 1)) {
|
|
12114
12149
|
// Both positions in the same text node -- simply insert text
|
|
12115
12150
|
let text = $from.parent.textBetween($from.parentOffset, $to.parentOffset);
|
|
12116
|
-
|
|
12117
|
-
|
|
12118
|
-
|
|
12119
|
-
}
|
|
12120
|
-
}
|
|
12121
|
-
|
|
12122
|
-
|
|
12123
|
-
|
|
12124
|
-
let sel = resolveSelection(view, tr.doc, parse.sel);
|
|
12125
|
-
// Chrome will sometimes, during composition, report the
|
|
12126
|
-
// selection in the wrong place. If it looks like that is
|
|
12127
|
-
// happening, don't update the selection.
|
|
12128
|
-
// Edge just doesn't move the cursor forward when you start typing
|
|
12129
|
-
// in an empty block or between br nodes.
|
|
12130
|
-
if (sel && !(chrome && view.composing && sel.empty &&
|
|
12131
|
-
(change.start != change.endB || view.input.lastChromeDelete < Date.now() - 100) &&
|
|
12132
|
-
(sel.head == chFrom || sel.head == tr.mapping.map(chTo) - 1) ||
|
|
12133
|
-
ie$1 && sel.empty && sel.head == chFrom))
|
|
12134
|
-
tr.setSelection(sel);
|
|
12135
|
-
}
|
|
12136
|
-
if (storedMarks)
|
|
12137
|
-
tr.ensureMarks(storedMarks);
|
|
12138
|
-
if (compositionID)
|
|
12139
|
-
tr.setMeta("composition", compositionID);
|
|
12140
|
-
view.dispatch(tr.scrollIntoView());
|
|
12151
|
+
let deflt = () => mkTr(view.state.tr.insertText(text, chFrom, chTo));
|
|
12152
|
+
if (!view.someProp("handleTextInput", f => f(view, chFrom, chTo, text, deflt)))
|
|
12153
|
+
view.dispatch(deflt());
|
|
12154
|
+
}
|
|
12155
|
+
}
|
|
12156
|
+
else {
|
|
12157
|
+
view.dispatch(mkTr());
|
|
12158
|
+
}
|
|
12141
12159
|
}
|
|
12142
12160
|
function resolveSelection(view, doc, parsedSel) {
|
|
12143
12161
|
if (Math.max(parsedSel.anchor, parsedSel.head) > doc.content.size)
|
|
@@ -12731,22 +12749,6 @@ class EditorView {
|
|
|
12731
12749
|
return dispatchEvent(this, event);
|
|
12732
12750
|
}
|
|
12733
12751
|
/**
|
|
12734
|
-
Dispatch a transaction. Will call
|
|
12735
|
-
[`dispatchTransaction`](https://prosemirror.net/docs/ref/#view.DirectEditorProps.dispatchTransaction)
|
|
12736
|
-
when given, and otherwise defaults to applying the transaction to
|
|
12737
|
-
the current state and calling
|
|
12738
|
-
[`updateState`](https://prosemirror.net/docs/ref/#view.EditorView.updateState) with the result.
|
|
12739
|
-
This method is bound to the view instance, so that it can be
|
|
12740
|
-
easily passed around.
|
|
12741
|
-
*/
|
|
12742
|
-
dispatch(tr) {
|
|
12743
|
-
let dispatchTransaction = this._props.dispatchTransaction;
|
|
12744
|
-
if (dispatchTransaction)
|
|
12745
|
-
dispatchTransaction.call(this, tr);
|
|
12746
|
-
else
|
|
12747
|
-
this.updateState(this.state.apply(tr));
|
|
12748
|
-
}
|
|
12749
|
-
/**
|
|
12750
12752
|
@internal
|
|
12751
12753
|
*/
|
|
12752
12754
|
domSelectionRange() {
|
|
@@ -12763,6 +12765,13 @@ class EditorView {
|
|
|
12763
12765
|
return this.root.getSelection();
|
|
12764
12766
|
}
|
|
12765
12767
|
}
|
|
12768
|
+
EditorView.prototype.dispatch = function (tr) {
|
|
12769
|
+
let dispatchTransaction = this._props.dispatchTransaction;
|
|
12770
|
+
if (dispatchTransaction)
|
|
12771
|
+
dispatchTransaction.call(this, tr);
|
|
12772
|
+
else
|
|
12773
|
+
this.updateState(this.state.apply(tr));
|
|
12774
|
+
};
|
|
12766
12775
|
function computeDocDeco(view) {
|
|
12767
12776
|
let attrs = Object.create(null);
|
|
12768
12777
|
attrs.class = "ProseMirror";
|
|
@@ -12950,7 +12959,8 @@ function keyName(event) {
|
|
|
12950
12959
|
return name
|
|
12951
12960
|
}
|
|
12952
12961
|
|
|
12953
|
-
const mac$1 = typeof navigator != "undefined"
|
|
12962
|
+
const mac$1 = typeof navigator != "undefined" && /Mac|iP(hone|[oa]d)/.test(navigator.platform);
|
|
12963
|
+
const windows = typeof navigator != "undefined" && /Win/.test(navigator.platform);
|
|
12954
12964
|
function normalizeKeyName(name) {
|
|
12955
12965
|
let parts = name.split(/-(?!$)/), result = parts[parts.length - 1];
|
|
12956
12966
|
if (result == "Space")
|
|
@@ -13056,12 +13066,14 @@ function keydownHandler(bindings) {
|
|
|
13056
13066
|
if (noShift && noShift(view.state, view.dispatch, view))
|
|
13057
13067
|
return true;
|
|
13058
13068
|
}
|
|
13059
|
-
if ((event.
|
|
13069
|
+
if ((event.altKey || event.metaKey || event.ctrlKey) &&
|
|
13070
|
+
// Ctrl-Alt may be used for AltGr on Windows
|
|
13071
|
+
!(windows && event.ctrlKey && event.altKey) &&
|
|
13060
13072
|
(baseName = base[event.keyCode]) && baseName != name) {
|
|
13061
13073
|
// Try falling back to the keyCode when there's a modifier
|
|
13062
13074
|
// active or the character produced isn't ASCII, and our table
|
|
13063
13075
|
// produces a different name from the the keyCode. See #668,
|
|
13064
|
-
// #1060
|
|
13076
|
+
// #1060, #1529.
|
|
13065
13077
|
let fromCode = map[modifiers(baseName, event)];
|
|
13066
13078
|
if (fromCode && fromCode(view.state, view.dispatch, view))
|
|
13067
13079
|
return true;
|
package/shared/definition45.cjs
CHANGED
|
@@ -21,7 +21,7 @@ const slotted = require('./slotted.cjs');
|
|
|
21
21
|
const classNames = require('./class-names.cjs');
|
|
22
22
|
const repeat = require('./repeat.cjs');
|
|
23
23
|
|
|
24
|
-
const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host(:focus-visible){outline:none}:host{display:inline-block;inline-size:300px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.control-wrapper{display:flex;flex-direction:column;gap:4px}.label{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.selection-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.fieldset{--_connotation-color-primary: var(--vvd-searchable-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-searchable-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-searchable-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-searchable-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-searchable-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-searchable-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-searchable-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-searchable-select-accent-fierce, var(--vvd-color-neutral-700))}.fieldset{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.fieldset.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.fieldset:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.fieldset:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.fieldset:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.fieldset:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.fieldset:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.fieldset:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.fieldset:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.fieldset{display:flex;align-items:center;justify-content:space-between;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;padding-block:8px;padding-inline:16px;transition:box-shadow .2s,background-color .2s}.fieldset:focus-within{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));--focus-stroke-gap-color: transparent}:host(:not([shape=pill])) .fieldset{border-radius:8px}:host([shape=pill]) .fieldset{border-radius:24px}.popup-wrapper{position:relative}.content-area{display:flex;overflow:hidden;flex:1;flex-direction:column;gap:8px;min-block-size:24px}.tag-row{display:flex;gap:8px;inline-size:100%}.tag-row.contains-only-input:not(:focus-within){display:contents}.tag-wrapper{overflow:hidden}.tag{max-inline-size:100%}input{box-sizing:border-box;flex:1;border:none;background:none;block-size:24px;font:var(--vvd-typography-base);max-inline-size:100%;min-inline-size:100px;outline:none}.contains-only-input input:not(:focus){position:absolute;block-size:0;inline-size:0;min-inline-size:0;opacity:0;pointer-events:none}.listbox{display:flex;flex-direction:column;padding:4px;gap:2px;max-block-size:var(--searchable-select-height, 408px);overflow-y:auto}.empty-message{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-300);font:var(--vvd-typography-base);min-block-size:40px;text-align:center}::part(popup-base){inline-size:max-content;min-inline-size:var(--_searchable-select-fixed-width, 100%)}slot[name=icon]{font-size:20px}.visually-hidden{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}";
|
|
24
|
+
const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host(:focus-visible){outline:none}:host{display:inline-block;inline-size:300px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.control-wrapper{display:flex;flex-direction:column;gap:4px}.label{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.selection-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.fieldset{--_connotation-color-primary: var(--vvd-searchable-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-searchable-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-searchable-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-searchable-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-searchable-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-searchable-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-searchable-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-searchable-select-accent-fierce, var(--vvd-color-neutral-700))}.fieldset{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.fieldset.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.fieldset:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.fieldset:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.fieldset:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.fieldset:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.fieldset:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.fieldset:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.fieldset:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.fieldset{display:flex;align-items:center;justify-content:space-between;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;padding-block:8px;padding-inline:16px;transition:box-shadow .2s,background-color .2s}.fieldset:focus-within{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));--focus-stroke-gap-color: transparent}:host(:not([shape=pill])) .fieldset{border-radius:8px}:host([shape=pill]) .fieldset{border-radius:24px}.popup-wrapper{position:relative}.content-area{display:flex;overflow:hidden;flex:1;flex-direction:column;gap:8px;min-block-size:24px}.tag-row{display:flex;gap:8px;inline-size:100%}.tag-row.contains-only-input:not(:focus-within){display:contents}.tag-wrapper{overflow:hidden}.tag{max-inline-size:100%}input{box-sizing:border-box;flex:1;border:none;background:none;block-size:24px;font:var(--vvd-typography-base);max-inline-size:100%;min-inline-size:min(100px,40%);outline:none}.contains-only-input input:not(:focus){position:absolute;block-size:0;inline-size:0;min-inline-size:0;opacity:0;pointer-events:none}.listbox{display:flex;flex-direction:column;padding:4px;gap:2px;max-block-size:var(--searchable-select-height, 408px);overflow-y:auto}.empty-message{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-300);font:var(--vvd-typography-base);min-block-size:40px;text-align:center}::part(popup-base){inline-size:max-content;min-inline-size:var(--_searchable-select-fixed-width, 100%)}slot[name=icon]{font-size:20px}.visually-hidden{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}";
|
|
25
25
|
|
|
26
26
|
const optionTagStyles = ".base.connotation-cta{--_connotation-color-contrast: var(--vvd-option-tag-cta-contrast, var(--vvd-color-cta-800))}.base:not(.connotation-cta){--_connotation-color-contrast: var(--vvd-option-tag-accent-contrast, var(--vvd-color-neutral-800))}.base{position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--fill-color);block-size:calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 1px var(--outline-color);color:var(--text-color);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;user-select:none;vertical-align:middle}.base:not(.disabled){--text-color: var(--_connotation-color-contrast);--fill-color: color-mix( in srgb, var(--_connotation-color-contrast), transparent 87.5% );--outline-color: transparent}.base.disabled{--text-color: var(--vvd-color-neutral-300);--fill-color: color-mix( in srgb, var(--vvd-color-neutral-800), transparent 87.5% );--outline-color: transparent}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 1.5);line-height:1}.icon-placeholder{inline-size:calc(calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 1.5)}.remove-button{display:flex;align-items:center;border-radius:inherit;cursor:pointer;outline:none}.disabled .remove-button{pointer-events:none}.remove-button:focus-visible:before{--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));position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}";
|
|
27
27
|
|
|
@@ -227,7 +227,6 @@ class SearchableSelect extends mixins.WithFeedback(
|
|
|
227
227
|
*/
|
|
228
228
|
_onInputFocus(_) {
|
|
229
229
|
this.#updateFilteredOptions();
|
|
230
|
-
this.open = true;
|
|
231
230
|
}
|
|
232
231
|
/**
|
|
233
232
|
* @internal
|
|
@@ -247,6 +246,9 @@ class SearchableSelect extends mixins.WithFeedback(
|
|
|
247
246
|
switch (e.key) {
|
|
248
247
|
case "Enter":
|
|
249
248
|
this.#selectHighlightedOption();
|
|
249
|
+
if (this._inputValue === "") {
|
|
250
|
+
this.open = !this.open;
|
|
251
|
+
}
|
|
250
252
|
return false;
|
|
251
253
|
case "Escape":
|
|
252
254
|
this.open = false;
|
|
@@ -423,6 +425,13 @@ class SearchableSelect extends mixins.WithFeedback(
|
|
|
423
425
|
optionFilterChanged() {
|
|
424
426
|
this.#updateFilteredOptions();
|
|
425
427
|
}
|
|
428
|
+
/**
|
|
429
|
+
* @internal
|
|
430
|
+
*/
|
|
431
|
+
loadingChanged(_oldValue, newValue) {
|
|
432
|
+
this._changeDescription = this.locale.searchableSelect.loadingOptionsMessage;
|
|
433
|
+
if (_oldValue && !newValue) this._changeDescription = "";
|
|
434
|
+
}
|
|
426
435
|
#updateFilteredOptions() {
|
|
427
436
|
const newFilteredOptions = [];
|
|
428
437
|
const optionFilter = this.optionFilter ?? ((option, searchText) => option.text.toLowerCase().includes(searchText.toLowerCase()));
|
|
@@ -462,7 +471,8 @@ class SearchableSelect extends mixins.WithFeedback(
|
|
|
462
471
|
this._changeDescription = this.locale.searchableSelect.optionFocusedMessage(
|
|
463
472
|
highlightedOption.text,
|
|
464
473
|
this._highlightedOptionIndex + 1,
|
|
465
|
-
this._filteredEnabledOptions.length
|
|
474
|
+
this._filteredEnabledOptions.length,
|
|
475
|
+
highlightedOption.selected
|
|
466
476
|
);
|
|
467
477
|
}
|
|
468
478
|
}
|
|
@@ -693,7 +703,7 @@ class SearchableSelect extends mixins.WithFeedback(
|
|
|
693
703
|
return;
|
|
694
704
|
}
|
|
695
705
|
const capturedOption = e.target.closest(
|
|
696
|
-
`option,[role=option]`
|
|
706
|
+
`option,[role=option],[data-vvd-component=option]`
|
|
697
707
|
);
|
|
698
708
|
if (capturedOption && !capturedOption.disabled) {
|
|
699
709
|
this.#handleOptionInteraction(capturedOption);
|
|
@@ -720,7 +730,7 @@ class SearchableSelect extends mixins.WithFeedback(
|
|
|
720
730
|
this.#updateSelectionLimit();
|
|
721
731
|
}
|
|
722
732
|
#updateSelectionLimit() {
|
|
723
|
-
if (!this.multiple || typeof this.maxSelected !== "number" || this.maxSelected <= 0) {
|
|
733
|
+
if (!this.multiple || !this._slottedOptions || typeof this.maxSelected !== "number" || this.maxSelected <= 0) {
|
|
724
734
|
return;
|
|
725
735
|
}
|
|
726
736
|
const options = this._slottedOptions.filter(
|
|
@@ -1101,13 +1111,13 @@ function renderFieldset(context) {
|
|
|
1101
1111
|
size="super-condensed"
|
|
1102
1112
|
icon="close-line"
|
|
1103
1113
|
appearance="ghost-light"
|
|
1104
|
-
tabindex="
|
|
1114
|
+
tabindex="0"
|
|
1105
1115
|
></${buttonTag}>`
|
|
1106
1116
|
)}
|
|
1107
1117
|
<div @mousedown="${() => false}" @click="${(x) => x._onChevronClick()}">
|
|
1108
1118
|
${when.when(
|
|
1109
1119
|
(x) => x.loading,
|
|
1110
|
-
vividElement.html`<${progressRingTag} indeterminate size="-6"></${progressRingTag}>`
|
|
1120
|
+
vividElement.html`<${progressRingTag} indeterminate size="-6" aria-hidden="true"></${progressRingTag}>`
|
|
1111
1121
|
)}
|
|
1112
1122
|
${when.when((x) => !x.loading, chevronTemplate)}
|
|
1113
1123
|
</div>
|
package/shared/definition45.js
CHANGED
|
@@ -19,7 +19,7 @@ import { s as slotted } from './slotted.js';
|
|
|
19
19
|
import { c as classNames } from './class-names.js';
|
|
20
20
|
import { r as repeat } from './repeat.js';
|
|
21
21
|
|
|
22
|
-
const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host(:focus-visible){outline:none}:host{display:inline-block;inline-size:300px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.control-wrapper{display:flex;flex-direction:column;gap:4px}.label{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.selection-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.fieldset{--_connotation-color-primary: var(--vvd-searchable-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-searchable-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-searchable-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-searchable-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-searchable-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-searchable-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-searchable-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-searchable-select-accent-fierce, var(--vvd-color-neutral-700))}.fieldset{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.fieldset.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.fieldset:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.fieldset:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.fieldset:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.fieldset:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.fieldset:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.fieldset:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.fieldset:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.fieldset{display:flex;align-items:center;justify-content:space-between;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;padding-block:8px;padding-inline:16px;transition:box-shadow .2s,background-color .2s}.fieldset:focus-within{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));--focus-stroke-gap-color: transparent}:host(:not([shape=pill])) .fieldset{border-radius:8px}:host([shape=pill]) .fieldset{border-radius:24px}.popup-wrapper{position:relative}.content-area{display:flex;overflow:hidden;flex:1;flex-direction:column;gap:8px;min-block-size:24px}.tag-row{display:flex;gap:8px;inline-size:100%}.tag-row.contains-only-input:not(:focus-within){display:contents}.tag-wrapper{overflow:hidden}.tag{max-inline-size:100%}input{box-sizing:border-box;flex:1;border:none;background:none;block-size:24px;font:var(--vvd-typography-base);max-inline-size:100%;min-inline-size:100px;outline:none}.contains-only-input input:not(:focus){position:absolute;block-size:0;inline-size:0;min-inline-size:0;opacity:0;pointer-events:none}.listbox{display:flex;flex-direction:column;padding:4px;gap:2px;max-block-size:var(--searchable-select-height, 408px);overflow-y:auto}.empty-message{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-300);font:var(--vvd-typography-base);min-block-size:40px;text-align:center}::part(popup-base){inline-size:max-content;min-inline-size:var(--_searchable-select-fixed-width, 100%)}slot[name=icon]{font-size:20px}.visually-hidden{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}";
|
|
22
|
+
const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([data-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}:host(:focus-visible){outline:none}:host{display:inline-block;inline-size:300px;--_low-ink-color: var(--vvd-color-neutral-600)}:host([disabled]){--_low-ink-color: var(--vvd-color-neutral-400);cursor:not-allowed}.control-wrapper{display:flex;flex-direction:column;gap:4px}.label{color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base)}.selection-count{color:var(--_low-ink-color);font:var(--vvd-typography-base)}.fieldset{--_connotation-color-primary: var(--vvd-searchable-select-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-searchable-select-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-searchable-select-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-intermediate: var(--vvd-searchable-select-accent-intermediate, var(--vvd-color-neutral-500));--_connotation-color-faint: var(--vvd-searchable-select-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-searchable-select-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-firm: var(--vvd-searchable-select-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-fierce: var(--vvd-searchable-select-accent-fierce, var(--vvd-color-neutral-700))}.fieldset{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-500)}.fieldset.appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--vvd-color-neutral-700)}.fieldset:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-ghost{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.fieldset:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: var(--vvd-color-neutral-300)}.fieldset:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset:where(.readonly):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-neutral-200);--_appearance-color-outline: var(--vvd-color-neutral-400)}.fieldset:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.fieldset:where(.error):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: var(--vvd-color-alert-500)}.fieldset:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.fieldset:where(.success):where(:not(.disabled,:disabled)){--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: var(--vvd-color-success-500)}.fieldset:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.fieldset{display:flex;align-items:center;justify-content:space-between;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);font:var(--vvd-typography-base);gap:8px;padding-block:8px;padding-inline:16px;transition:box-shadow .2s,background-color .2s}.fieldset:focus-within{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));--focus-stroke-gap-color: transparent}:host(:not([shape=pill])) .fieldset{border-radius:8px}:host([shape=pill]) .fieldset{border-radius:24px}.popup-wrapper{position:relative}.content-area{display:flex;overflow:hidden;flex:1;flex-direction:column;gap:8px;min-block-size:24px}.tag-row{display:flex;gap:8px;inline-size:100%}.tag-row.contains-only-input:not(:focus-within){display:contents}.tag-wrapper{overflow:hidden}.tag{max-inline-size:100%}input{box-sizing:border-box;flex:1;border:none;background:none;block-size:24px;font:var(--vvd-typography-base);max-inline-size:100%;min-inline-size:min(100px,40%);outline:none}.contains-only-input input:not(:focus){position:absolute;block-size:0;inline-size:0;min-inline-size:0;opacity:0;pointer-events:none}.listbox{display:flex;flex-direction:column;padding:4px;gap:2px;max-block-size:var(--searchable-select-height, 408px);overflow-y:auto}.empty-message{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-300);font:var(--vvd-typography-base);min-block-size:40px;text-align:center}::part(popup-base){inline-size:max-content;min-inline-size:var(--_searchable-select-fixed-width, 100%)}slot[name=icon]{font-size:20px}.visually-hidden{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}";
|
|
23
23
|
|
|
24
24
|
const optionTagStyles = ".base.connotation-cta{--_connotation-color-contrast: var(--vvd-option-tag-cta-contrast, var(--vvd-color-cta-800))}.base:not(.connotation-cta){--_connotation-color-contrast: var(--vvd-option-tag-accent-contrast, var(--vvd-color-neutral-800))}.base{position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--fill-color);block-size:calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)));box-shadow:inset 0 0 0 1px var(--outline-color);color:var(--text-color);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;user-select:none;vertical-align:middle}.base:not(.disabled){--text-color: var(--_connotation-color-contrast);--fill-color: color-mix( in srgb, var(--_connotation-color-contrast), transparent 87.5% );--outline-color: transparent}.base.disabled{--text-color: var(--vvd-color-neutral-300);--fill-color: color-mix( in srgb, var(--vvd-color-neutral-800), transparent 87.5% );--outline-color: transparent}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 1.5);line-height:1}.icon-placeholder{inline-size:calc(calc(1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2))) / 1.5)}.remove-button{display:flex;align-items:center;border-radius:inherit;cursor:pointer;outline:none}.disabled .remove-button{pointer-events:none}.remove-button:focus-visible:before{--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));position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}";
|
|
25
25
|
|
|
@@ -225,7 +225,6 @@ class SearchableSelect extends WithFeedback(
|
|
|
225
225
|
*/
|
|
226
226
|
_onInputFocus(_) {
|
|
227
227
|
this.#updateFilteredOptions();
|
|
228
|
-
this.open = true;
|
|
229
228
|
}
|
|
230
229
|
/**
|
|
231
230
|
* @internal
|
|
@@ -245,6 +244,9 @@ class SearchableSelect extends WithFeedback(
|
|
|
245
244
|
switch (e.key) {
|
|
246
245
|
case "Enter":
|
|
247
246
|
this.#selectHighlightedOption();
|
|
247
|
+
if (this._inputValue === "") {
|
|
248
|
+
this.open = !this.open;
|
|
249
|
+
}
|
|
248
250
|
return false;
|
|
249
251
|
case "Escape":
|
|
250
252
|
this.open = false;
|
|
@@ -421,6 +423,13 @@ class SearchableSelect extends WithFeedback(
|
|
|
421
423
|
optionFilterChanged() {
|
|
422
424
|
this.#updateFilteredOptions();
|
|
423
425
|
}
|
|
426
|
+
/**
|
|
427
|
+
* @internal
|
|
428
|
+
*/
|
|
429
|
+
loadingChanged(_oldValue, newValue) {
|
|
430
|
+
this._changeDescription = this.locale.searchableSelect.loadingOptionsMessage;
|
|
431
|
+
if (_oldValue && !newValue) this._changeDescription = "";
|
|
432
|
+
}
|
|
424
433
|
#updateFilteredOptions() {
|
|
425
434
|
const newFilteredOptions = [];
|
|
426
435
|
const optionFilter = this.optionFilter ?? ((option, searchText) => option.text.toLowerCase().includes(searchText.toLowerCase()));
|
|
@@ -460,7 +469,8 @@ class SearchableSelect extends WithFeedback(
|
|
|
460
469
|
this._changeDescription = this.locale.searchableSelect.optionFocusedMessage(
|
|
461
470
|
highlightedOption.text,
|
|
462
471
|
this._highlightedOptionIndex + 1,
|
|
463
|
-
this._filteredEnabledOptions.length
|
|
472
|
+
this._filteredEnabledOptions.length,
|
|
473
|
+
highlightedOption.selected
|
|
464
474
|
);
|
|
465
475
|
}
|
|
466
476
|
}
|
|
@@ -691,7 +701,7 @@ class SearchableSelect extends WithFeedback(
|
|
|
691
701
|
return;
|
|
692
702
|
}
|
|
693
703
|
const capturedOption = e.target.closest(
|
|
694
|
-
`option,[role=option]`
|
|
704
|
+
`option,[role=option],[data-vvd-component=option]`
|
|
695
705
|
);
|
|
696
706
|
if (capturedOption && !capturedOption.disabled) {
|
|
697
707
|
this.#handleOptionInteraction(capturedOption);
|
|
@@ -718,7 +728,7 @@ class SearchableSelect extends WithFeedback(
|
|
|
718
728
|
this.#updateSelectionLimit();
|
|
719
729
|
}
|
|
720
730
|
#updateSelectionLimit() {
|
|
721
|
-
if (!this.multiple || typeof this.maxSelected !== "number" || this.maxSelected <= 0) {
|
|
731
|
+
if (!this.multiple || !this._slottedOptions || typeof this.maxSelected !== "number" || this.maxSelected <= 0) {
|
|
722
732
|
return;
|
|
723
733
|
}
|
|
724
734
|
const options = this._slottedOptions.filter(
|
|
@@ -1099,13 +1109,13 @@ function renderFieldset(context) {
|
|
|
1099
1109
|
size="super-condensed"
|
|
1100
1110
|
icon="close-line"
|
|
1101
1111
|
appearance="ghost-light"
|
|
1102
|
-
tabindex="
|
|
1112
|
+
tabindex="0"
|
|
1103
1113
|
></${buttonTag}>`
|
|
1104
1114
|
)}
|
|
1105
1115
|
<div @mousedown="${() => false}" @click="${(x) => x._onChevronClick()}">
|
|
1106
1116
|
${when(
|
|
1107
1117
|
(x) => x.loading,
|
|
1108
|
-
html`<${progressRingTag} indeterminate size="-6"></${progressRingTag}>`
|
|
1118
|
+
html`<${progressRingTag} indeterminate size="-6" aria-hidden="true"></${progressRingTag}>`
|
|
1109
1119
|
)}
|
|
1110
1120
|
${when((x) => !x.loading, chevronTemplate)}
|
|
1111
1121
|
</div>
|
package/shared/definition46.cjs
CHANGED
|
@@ -399,7 +399,7 @@ class Select extends mixins.WithLightDOMFeedback(
|
|
|
399
399
|
return;
|
|
400
400
|
}
|
|
401
401
|
const clickedOption = e.target.closest(
|
|
402
|
-
`option,[role=option]`
|
|
402
|
+
`option,[role=option],[data-vvd-component=option]`
|
|
403
403
|
);
|
|
404
404
|
if (clickedOption && clickedOption.disabled) {
|
|
405
405
|
return;
|
package/shared/definition46.js
CHANGED
|
@@ -397,7 +397,7 @@ class Select extends WithLightDOMFeedback(
|
|
|
397
397
|
return;
|
|
398
398
|
}
|
|
399
399
|
const clickedOption = e.target.closest(
|
|
400
|
-
`option,[role=option]`
|
|
400
|
+
`option,[role=option],[data-vvd-component=option]`
|
|
401
401
|
);
|
|
402
402
|
if (clickedOption && clickedOption.disabled) {
|
|
403
403
|
return;
|