@vonage/vivid 4.27.0 → 4.29.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 +357 -80
- package/lib/audio-player/audio-player.d.ts +4 -3
- package/lib/data-grid/data-grid.d.ts +2 -0
- package/lib/data-grid/locale.d.ts +1 -0
- package/lib/date-picker/date-picker.d.ts +4 -2
- package/lib/date-time-picker/date-time-picker.d.ts +6 -3
- package/lib/divider/definition.d.ts +1 -0
- package/lib/divider/divider.d.ts +5 -1
- package/lib/option/option.d.ts +4 -7
- package/lib/rich-text-editor/facades/prose-mirror-vivid.schema.d.ts +2 -1
- package/lib/rich-text-editor/facades/vivid-prose-mirror.facade.d.ts +2 -2
- package/lib/rich-text-editor/image-placeholder/definition.d.ts +2 -0
- package/lib/rich-text-editor/image-placeholder/image-placeholder.d.ts +7 -0
- package/lib/rich-text-editor/image-placeholder/image-placeholder.template.d.ts +4 -0
- package/lib/rich-text-editor/menubar/consts.d.ts +2 -2
- package/lib/rich-text-editor/menubar/definition.d.ts +2 -2
- package/lib/rich-text-editor/menubar/menubar.d.ts +2 -2
- package/lib/rich-text-editor/menubar/menubar.template.d.ts +2 -2
- package/lib/rich-text-editor/rich-text-editor.d.ts +1 -0
- package/lib/time-picker/time-picker.d.ts +4 -2
- package/locales/de-DE.cjs +2 -1
- package/locales/de-DE.js +2 -1
- package/locales/en-GB.cjs +2 -1
- package/locales/en-GB.js +2 -1
- package/locales/en-US.cjs +2 -1
- package/locales/en-US.js +2 -1
- package/locales/ja-JP.cjs +2 -1
- package/locales/ja-JP.js +2 -1
- package/locales/zh-CN.cjs +2 -1
- package/locales/zh-CN.js +2 -1
- package/package.json +2 -1
- package/shared/calendar-picker.template.cjs +8 -9
- package/shared/calendar-picker.template.js +8 -9
- package/shared/definition16.cjs +33 -30
- package/shared/definition16.js +33 -30
- package/shared/definition17.cjs +137 -1
- package/shared/definition17.js +138 -2
- package/shared/definition23.cjs +12 -7
- package/shared/definition23.js +12 -7
- package/shared/definition30.cjs +2 -1
- package/shared/definition30.js +2 -1
- package/shared/definition31.cjs +5 -1
- package/shared/definition31.js +5 -1
- package/shared/definition36.cjs +1 -1
- package/shared/definition36.js +1 -1
- package/shared/definition44.cjs +184 -55
- package/shared/definition44.js +184 -55
- package/shared/definition45.cjs +12 -5
- package/shared/definition45.js +12 -5
- package/shared/definition5.cjs +86 -30
- package/shared/definition5.js +86 -30
- package/shared/definition61.cjs +11 -0
- package/shared/definition61.js +11 -0
- package/shared/definition64.cjs +1 -1
- package/shared/definition64.js +1 -1
- package/shared/divider.cjs +7 -2
- package/shared/divider.js +7 -2
- package/shared/option.cjs +36 -38
- package/shared/option.js +37 -39
- package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +1 -0
- package/shared/picker-field/mixins/single-date-picker.d.ts +4 -2
- package/shared/picker-field/mixins/single-value-picker.d.ts +2 -1
- package/shared/picker-field/mixins/time-selection-picker.d.ts +4 -2
- package/shared/picker-field/mixins/time-selection-picker.template.d.ts +4 -2
- package/shared/single-value-picker.cjs +40 -6
- package/shared/single-value-picker.js +40 -6
- package/shared/text-field.cjs +1 -1
- package/shared/text-field.js +1 -1
- package/shared/time-selection-picker.template.cjs +71 -22
- package/shared/time-selection-picker.template.js +71 -22
- package/shared/vivid-element.cjs +1 -1
- package/shared/vivid-element.js +1 -1
- package/styles/core/all.css +1 -1
- package/styles/core/theme.css +1 -1
- package/styles/core/typography.css +1 -1
- 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 +211 -126
package/shared/definition44.js
CHANGED
|
@@ -11,11 +11,13 @@ import { L as ListboxOption } from './option.js';
|
|
|
11
11
|
import { r as repeat } from './repeat.js';
|
|
12
12
|
import { c as classNames } from './class-names.js';
|
|
13
13
|
import { L as Localized } from './localized.js';
|
|
14
|
+
import { I as Icon, i as iconDefinition } from './definition28.js';
|
|
15
|
+
import { w as when } from './when.js';
|
|
14
16
|
|
|
15
|
-
const styles$
|
|
17
|
+
const styles$2 = "@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
18
|
|
|
17
|
-
function
|
|
18
|
-
|
|
19
|
+
function notifyMenubarChange(menubar, eventName, payload) {
|
|
20
|
+
menubar.$emit(eventName, payload, { bubbles: false, composed: false });
|
|
19
21
|
return true;
|
|
20
22
|
}
|
|
21
23
|
const TEXT_DECORATION_ITEMS = [
|
|
@@ -106,8 +108,8 @@ const textSizeEventHandler = (event) => {
|
|
|
106
108
|
};
|
|
107
109
|
const MENU_BAR_ITEMS = {
|
|
108
110
|
textBlock: {
|
|
109
|
-
registerStateProperty: function(
|
|
110
|
-
|
|
111
|
+
registerStateProperty: function(menubar) {
|
|
112
|
+
menubar.addEventListener("text-styles-changed", textBlockEventHandler);
|
|
111
113
|
},
|
|
112
114
|
render: function(context) {
|
|
113
115
|
const selectTag = context.tagFor(Select);
|
|
@@ -125,7 +127,7 @@ const MENU_BAR_ITEMS = {
|
|
|
125
127
|
aria-label="Text Block"
|
|
126
128
|
placement="bottom-end"
|
|
127
129
|
value="${(_, { parent }) => parent.textBlockType}"
|
|
128
|
-
@change="${(_, { parent, event }) =>
|
|
130
|
+
@change="${(_, { parent, event }) => notifyMenubarChange(
|
|
129
131
|
parent,
|
|
130
132
|
"text-block-selected",
|
|
131
133
|
event.target.value
|
|
@@ -158,8 +160,8 @@ const MENU_BAR_ITEMS = {
|
|
|
158
160
|
}
|
|
159
161
|
},
|
|
160
162
|
textDecoration: {
|
|
161
|
-
registerStateProperty: function(
|
|
162
|
-
|
|
163
|
+
registerStateProperty: function(menubar) {
|
|
164
|
+
menubar.addEventListener(
|
|
163
165
|
"text-styles-changed",
|
|
164
166
|
textDecorationEventHandler
|
|
165
167
|
);
|
|
@@ -181,7 +183,7 @@ const MENU_BAR_ITEMS = {
|
|
|
181
183
|
appearance="ghost-light"
|
|
182
184
|
shape="rounded"
|
|
183
185
|
icon="${(x) => x.icon}"
|
|
184
|
-
@click="${(x, c) =>
|
|
186
|
+
@click="${(x, c) => notifyMenubarChange(
|
|
185
187
|
c.parentContext.parent,
|
|
186
188
|
"text-decoration-selected",
|
|
187
189
|
x.value
|
|
@@ -195,8 +197,8 @@ const MENU_BAR_ITEMS = {
|
|
|
195
197
|
}
|
|
196
198
|
},
|
|
197
199
|
textSize: {
|
|
198
|
-
registerStateProperty: function(
|
|
199
|
-
|
|
200
|
+
registerStateProperty: function(menubar) {
|
|
201
|
+
menubar.addEventListener("text-styles-changed", textSizeEventHandler);
|
|
200
202
|
},
|
|
201
203
|
render: function(context) {
|
|
202
204
|
const menuTag = context.tagFor(Menu);
|
|
@@ -232,7 +234,7 @@ const MENU_BAR_ITEMS = {
|
|
|
232
234
|
internal-part
|
|
233
235
|
class="menubar-selector-menuitem"
|
|
234
236
|
connotation="cta"
|
|
235
|
-
@click="${(x, c) =>
|
|
237
|
+
@click="${(x, c) => notifyMenubarChange(
|
|
236
238
|
c.parentContext.parent,
|
|
237
239
|
"text-size-selected",
|
|
238
240
|
x.value
|
|
@@ -254,16 +256,16 @@ const MENU_BAR_ITEMS = {
|
|
|
254
256
|
}
|
|
255
257
|
};
|
|
256
258
|
|
|
257
|
-
var __defProp$
|
|
258
|
-
var __decorateClass$
|
|
259
|
+
var __defProp$2 = Object.defineProperty;
|
|
260
|
+
var __decorateClass$2 = (decorators, target, key, kind) => {
|
|
259
261
|
var result = void 0 ;
|
|
260
262
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
261
263
|
if (decorator = decorators[i])
|
|
262
264
|
result = (decorator(target, key, result) ) || result;
|
|
263
|
-
if (result) __defProp$
|
|
265
|
+
if (result) __defProp$2(target, key, result);
|
|
264
266
|
return result;
|
|
265
267
|
};
|
|
266
|
-
class
|
|
268
|
+
class Menubar extends Localized(VividElement) {
|
|
267
269
|
get #textEditorElement() {
|
|
268
270
|
return this.parentElement;
|
|
269
271
|
}
|
|
@@ -297,13 +299,13 @@ class MenuBar extends Localized(VividElement) {
|
|
|
297
299
|
);
|
|
298
300
|
}
|
|
299
301
|
}
|
|
300
|
-
__decorateClass$
|
|
302
|
+
__decorateClass$2([
|
|
301
303
|
attr({ attribute: "menu-items" })
|
|
302
|
-
],
|
|
304
|
+
], Menubar.prototype, "menuItems");
|
|
303
305
|
|
|
304
|
-
const getClasses$
|
|
306
|
+
const getClasses$2 = (menubar) => classNames("control", [
|
|
305
307
|
"hide-menubar",
|
|
306
|
-
getValidMenuItems(
|
|
308
|
+
getValidMenuItems(menubar).length === 0
|
|
307
309
|
]);
|
|
308
310
|
const validItems = ["textBlock", "textDecoration", "textSize", "divider"];
|
|
309
311
|
function getPropertyStateRgistrationFunction(item) {
|
|
@@ -324,18 +326,18 @@ function renderMenuItems(context) {
|
|
|
324
326
|
}}`
|
|
325
327
|
)}`;
|
|
326
328
|
}
|
|
327
|
-
const
|
|
328
|
-
return html`<template class="${getClasses$
|
|
329
|
+
const MenubarTemplate = (context) => {
|
|
330
|
+
return html`<template class="${getClasses$2}">
|
|
329
331
|
${renderMenuItems(context)}
|
|
330
332
|
</template>`;
|
|
331
333
|
};
|
|
332
334
|
|
|
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}";
|
|
335
|
+
const styles$1 = ":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
336
|
|
|
335
|
-
const
|
|
337
|
+
const menubarDefinition = defineVividComponent(
|
|
336
338
|
"menubar",
|
|
337
|
-
|
|
338
|
-
|
|
339
|
+
Menubar,
|
|
340
|
+
MenubarTemplate,
|
|
339
341
|
[
|
|
340
342
|
buttonDefinition,
|
|
341
343
|
selectDefinition,
|
|
@@ -346,7 +348,7 @@ const menuBarDefinition = defineVividComponent(
|
|
|
346
348
|
menuItemDefinition
|
|
347
349
|
],
|
|
348
350
|
{
|
|
349
|
-
styles,
|
|
351
|
+
styles: styles$1,
|
|
350
352
|
shadowOptions: {
|
|
351
353
|
delegatesFocus: true
|
|
352
354
|
}
|
|
@@ -13881,13 +13883,51 @@ const customMarks = {
|
|
|
13881
13883
|
}
|
|
13882
13884
|
}
|
|
13883
13885
|
};
|
|
13884
|
-
const
|
|
13885
|
-
nodes:
|
|
13886
|
+
const dynamicSchema = (prefix = "vwc") => new Schema({
|
|
13887
|
+
nodes: {
|
|
13888
|
+
...schema.spec.nodes.toObject(),
|
|
13889
|
+
imageError: {
|
|
13890
|
+
inline: true,
|
|
13891
|
+
group: "inline",
|
|
13892
|
+
atom: true,
|
|
13893
|
+
attrs: {
|
|
13894
|
+
alt: { default: "" },
|
|
13895
|
+
icon: { default: "" },
|
|
13896
|
+
errorMessage: { default: "Failed to attach" },
|
|
13897
|
+
fileName: { default: "" }
|
|
13898
|
+
},
|
|
13899
|
+
toDOM(node) {
|
|
13900
|
+
return [
|
|
13901
|
+
`${prefix}-text-editor-image-placeholder`,
|
|
13902
|
+
{
|
|
13903
|
+
alt: node.attrs.alt,
|
|
13904
|
+
icon: node.attrs.icon,
|
|
13905
|
+
"error-message": node.attrs.errorMessage,
|
|
13906
|
+
"file-name": node.attrs.fileName
|
|
13907
|
+
}
|
|
13908
|
+
];
|
|
13909
|
+
},
|
|
13910
|
+
parseDOM: [
|
|
13911
|
+
{
|
|
13912
|
+
tag: `${prefix}-text-editor-image-placeholder`,
|
|
13913
|
+
getAttrs(dom) {
|
|
13914
|
+
return {
|
|
13915
|
+
alt: dom.getAttribute("alt"),
|
|
13916
|
+
icon: dom.getAttribute("icon"),
|
|
13917
|
+
errorMessage: dom.getAttribute("error-message"),
|
|
13918
|
+
fileName: dom.getAttribute("file-name")
|
|
13919
|
+
};
|
|
13920
|
+
}
|
|
13921
|
+
}
|
|
13922
|
+
]
|
|
13923
|
+
}
|
|
13924
|
+
},
|
|
13886
13925
|
marks: {
|
|
13887
13926
|
...schema.spec.marks.toObject(),
|
|
13888
13927
|
...customMarks
|
|
13889
13928
|
}
|
|
13890
13929
|
});
|
|
13930
|
+
dynamicSchema();
|
|
13891
13931
|
|
|
13892
13932
|
const NEGATIVE_SELECTION = {
|
|
13893
13933
|
start: -1,
|
|
@@ -13986,6 +14026,16 @@ function convertSelectionToVividFormat({
|
|
|
13986
14026
|
end: to
|
|
13987
14027
|
};
|
|
13988
14028
|
}
|
|
14029
|
+
function getImageErrorNode(schema, file, errorMessage = "Image loading failed") {
|
|
14030
|
+
const nodeType = schema.nodes.imageError;
|
|
14031
|
+
const imageErrorNode = nodeType.create({
|
|
14032
|
+
alt: `inline image from file ${file.name}`,
|
|
14033
|
+
fileName: file.name,
|
|
14034
|
+
icon: file.type.split("/")[1],
|
|
14035
|
+
errorMessage
|
|
14036
|
+
});
|
|
14037
|
+
return imageErrorNode;
|
|
14038
|
+
}
|
|
13989
14039
|
const isEmptyParagraph = (node) => {
|
|
13990
14040
|
return node.type.name === "paragraph" && node.nodeSize === 2;
|
|
13991
14041
|
};
|
|
@@ -14035,7 +14085,9 @@ class ProseMirrorFacade {
|
|
|
14035
14085
|
}
|
|
14036
14086
|
this.#dispatchEvent("change");
|
|
14037
14087
|
};
|
|
14038
|
-
|
|
14088
|
+
#vwcPrefix = "vwc";
|
|
14089
|
+
init(element, vwcPrefix = "vwc") {
|
|
14090
|
+
this.#vwcPrefix = vwcPrefix;
|
|
14039
14091
|
if (!(element instanceof HTMLElement)) {
|
|
14040
14092
|
throw new Error(
|
|
14041
14093
|
"ProseMirror Facade init accepts a valid HTMLElement as its first parameter"
|
|
@@ -14048,7 +14100,7 @@ class ProseMirrorFacade {
|
|
|
14048
14100
|
keymap(baseKeymap)
|
|
14049
14101
|
];
|
|
14050
14102
|
const state = EditorState.create({
|
|
14051
|
-
schema:
|
|
14103
|
+
schema: dynamicSchema(this.#vwcPrefix),
|
|
14052
14104
|
plugins
|
|
14053
14105
|
});
|
|
14054
14106
|
this.#view = new EditorView(element, { state });
|
|
@@ -14069,7 +14121,7 @@ class ProseMirrorFacade {
|
|
|
14069
14121
|
}
|
|
14070
14122
|
replaceContent(content) {
|
|
14071
14123
|
this.#verifyViewInitiation();
|
|
14072
|
-
const parser = DOMParser.fromSchema(
|
|
14124
|
+
const parser = DOMParser.fromSchema(this.#view.state.schema);
|
|
14073
14125
|
const doc = parser.parse(
|
|
14074
14126
|
new window.DOMParser().parseFromString(content, "text/html").body
|
|
14075
14127
|
);
|
|
@@ -14254,7 +14306,8 @@ class ProseMirrorFacade {
|
|
|
14254
14306
|
async addInlineImage({
|
|
14255
14307
|
file,
|
|
14256
14308
|
position,
|
|
14257
|
-
alt
|
|
14309
|
+
alt,
|
|
14310
|
+
error
|
|
14258
14311
|
}) {
|
|
14259
14312
|
this.#verifyViewInitiation();
|
|
14260
14313
|
const reader = new FileReader();
|
|
@@ -14266,7 +14319,7 @@ class ProseMirrorFacade {
|
|
|
14266
14319
|
const { state, dispatch } = this.#view;
|
|
14267
14320
|
const { schema } = state;
|
|
14268
14321
|
const imageAlt = alt ?? `inline image from file ${file.name}`;
|
|
14269
|
-
const imageNode = schema.nodes.image.create({ src, alt: imageAlt });
|
|
14322
|
+
const imageNode = error ? getImageErrorNode(schema, file, error) : schema.nodes.image.create({ src, alt: imageAlt });
|
|
14270
14323
|
let insertPos = position;
|
|
14271
14324
|
if (typeof insertPos !== "number") {
|
|
14272
14325
|
insertPos = state.selection.from;
|
|
@@ -14276,13 +14329,13 @@ class ProseMirrorFacade {
|
|
|
14276
14329
|
}
|
|
14277
14330
|
}
|
|
14278
14331
|
|
|
14279
|
-
var __defProp = Object.defineProperty;
|
|
14280
|
-
var __decorateClass = (decorators, target, key, kind) => {
|
|
14332
|
+
var __defProp$1 = Object.defineProperty;
|
|
14333
|
+
var __decorateClass$1 = (decorators, target, key, kind) => {
|
|
14281
14334
|
var result = void 0 ;
|
|
14282
14335
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
14283
14336
|
if (decorator = decorators[i])
|
|
14284
14337
|
result = (decorator(target, key, result) ) || result;
|
|
14285
|
-
if (result) __defProp(target, key, result);
|
|
14338
|
+
if (result) __defProp$1(target, key, result);
|
|
14286
14339
|
return result;
|
|
14287
14340
|
};
|
|
14288
14341
|
const RichTextEditorTextBlocks = {
|
|
@@ -14420,17 +14473,17 @@ class RichTextEditor extends Localized(VividElement) {
|
|
|
14420
14473
|
}
|
|
14421
14474
|
}
|
|
14422
14475
|
}
|
|
14423
|
-
__decorateClass([
|
|
14476
|
+
__decorateClass$1([
|
|
14424
14477
|
attr({ converter: nullableNumberConverter, attribute: "selection-start" })
|
|
14425
14478
|
], RichTextEditor.prototype, "selectionStart");
|
|
14426
|
-
__decorateClass([
|
|
14479
|
+
__decorateClass$1([
|
|
14427
14480
|
attr({ converter: nullableNumberConverter, attribute: "selection-end" })
|
|
14428
14481
|
], RichTextEditor.prototype, "selectionEnd");
|
|
14429
|
-
__decorateClass([
|
|
14482
|
+
__decorateClass$1([
|
|
14430
14483
|
attr
|
|
14431
14484
|
], RichTextEditor.prototype, "placeholder");
|
|
14432
14485
|
|
|
14433
|
-
const getClasses = (_) => classNames("control");
|
|
14486
|
+
const getClasses$1 = (_) => classNames("control");
|
|
14434
14487
|
const VALID_MENU_ELEMEMENT_SUFFIX = "menubar";
|
|
14435
14488
|
const menuParent = (target) => target.parentElement;
|
|
14436
14489
|
function textBlockSelectedHandler(event) {
|
|
@@ -14458,29 +14511,29 @@ function handleAttachmentsSlotChange(_, { event }) {
|
|
|
14458
14511
|
slotElement.assignedElements().length < 1
|
|
14459
14512
|
);
|
|
14460
14513
|
}
|
|
14461
|
-
function
|
|
14514
|
+
function handleMenubarSlotChange(_, { event }) {
|
|
14462
14515
|
const slot = event.target;
|
|
14463
14516
|
const assignedElements = slot.assignedElements({ flatten: true });
|
|
14464
|
-
const
|
|
14517
|
+
const menubar = assignedElements.find(
|
|
14465
14518
|
(element) => element.tagName.toLowerCase().endsWith(VALID_MENU_ELEMEMENT_SUFFIX)
|
|
14466
14519
|
);
|
|
14467
14520
|
assignedElements.forEach((element) => {
|
|
14468
|
-
if (element ===
|
|
14521
|
+
if (element === menubar) {
|
|
14469
14522
|
element.style.removeProperty("display");
|
|
14470
14523
|
} else {
|
|
14471
14524
|
element.style.display = "none";
|
|
14472
14525
|
}
|
|
14473
14526
|
});
|
|
14474
|
-
if (
|
|
14475
|
-
|
|
14527
|
+
if (menubar) {
|
|
14528
|
+
menubar.addEventListener(
|
|
14476
14529
|
"text-block-selected",
|
|
14477
14530
|
textBlockSelectedHandler
|
|
14478
14531
|
);
|
|
14479
|
-
|
|
14532
|
+
menubar.addEventListener(
|
|
14480
14533
|
"text-decoration-selected",
|
|
14481
14534
|
selectionDecorationSelectedHandler
|
|
14482
14535
|
);
|
|
14483
|
-
|
|
14536
|
+
menubar.addEventListener(
|
|
14484
14537
|
"text-size-selected",
|
|
14485
14538
|
textSizeSelectedHandler
|
|
14486
14539
|
);
|
|
@@ -14504,9 +14557,9 @@ function handleDragLeave(_, { event }) {
|
|
|
14504
14557
|
}
|
|
14505
14558
|
const RichTextEditorTemplate = (context) => {
|
|
14506
14559
|
const dividerTag = context.tagFor(Divider);
|
|
14507
|
-
return html`<template class="${getClasses}">
|
|
14508
|
-
<div id="editor"
|
|
14509
|
-
class="editor"
|
|
14560
|
+
return html`<template class="${getClasses$1}">
|
|
14561
|
+
<div id="editor"
|
|
14562
|
+
class="editor"
|
|
14510
14563
|
@drop="${handleFileDrop}"
|
|
14511
14564
|
@dragenter="${handleDragEnter}"
|
|
14512
14565
|
@dragleave="${handleDragLeave}"
|
|
@@ -14521,18 +14574,94 @@ const RichTextEditorTemplate = (context) => {
|
|
|
14521
14574
|
</slot>
|
|
14522
14575
|
</div>
|
|
14523
14576
|
</div>
|
|
14524
|
-
<slot name="menu-bar"
|
|
14525
|
-
@slotchange="${
|
|
14577
|
+
<slot name="menu-bar"
|
|
14578
|
+
@slotchange="${handleMenubarSlotChange}"></slot>
|
|
14579
|
+
</template>`;
|
|
14580
|
+
};
|
|
14581
|
+
|
|
14582
|
+
const styles = ":host{white-space:normal}.image-placeholder{display:flex;width:250px;height:64px;box-sizing:border-box;align-items:center;padding:16px;border:1px solid var(--vvd-color-neutral-200);border-radius:12px;background-color:var(--vvd-color-canvas);gap:16px}.icon{display:flex;width:40px;height:40px;box-sizing:border-box;flex-shrink:0;align-items:center;justify-content:center;border-radius:8px;background-color:color-mix(in srgb,var(--vvd-color-neutral-950),transparent 90%);color:var(--vvd-color-neutral-600)}.info{display:flex;flex-direction:column;min-inline-size:0}.filename{display:flex;overflow:hidden;width:100%;max-width:220px;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base-condensed-bold);white-space:nowrap}.name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis}.suffix{flex:0 0 auto;margin-left:4px}.error{display:flex;align-items:center;color:var(--vvd-color-alert-600);font:var(--vvd-typography-base-condensed);gap:6px}";
|
|
14583
|
+
|
|
14584
|
+
var __defProp = Object.defineProperty;
|
|
14585
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
14586
|
+
var result = void 0 ;
|
|
14587
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
14588
|
+
if (decorator = decorators[i])
|
|
14589
|
+
result = (decorator(target, key, result) ) || result;
|
|
14590
|
+
if (result) __defProp(target, key, result);
|
|
14591
|
+
return result;
|
|
14592
|
+
};
|
|
14593
|
+
class ImagePlaceholder extends VividElement {
|
|
14594
|
+
}
|
|
14595
|
+
__decorateClass([
|
|
14596
|
+
attr({ attribute: "file-name" })
|
|
14597
|
+
], ImagePlaceholder.prototype, "fileName");
|
|
14598
|
+
__decorateClass([
|
|
14599
|
+
attr({ attribute: "size" })
|
|
14600
|
+
], ImagePlaceholder.prototype, "size");
|
|
14601
|
+
__decorateClass([
|
|
14602
|
+
attr({ attribute: "error-message" })
|
|
14603
|
+
], ImagePlaceholder.prototype, "errorMessage");
|
|
14604
|
+
__decorateClass([
|
|
14605
|
+
attr({ attribute: "icon" })
|
|
14606
|
+
], ImagePlaceholder.prototype, "icon");
|
|
14607
|
+
|
|
14608
|
+
const getClasses = (_) => classNames("base");
|
|
14609
|
+
const getIconName = ({ icon }) => {
|
|
14610
|
+
if (!icon) {
|
|
14611
|
+
return "clear-file-solid";
|
|
14612
|
+
}
|
|
14613
|
+
return `file-${icon}-solid`;
|
|
14614
|
+
};
|
|
14615
|
+
const getFileSuffix = (x) => {
|
|
14616
|
+
return x.fileName?.split(".").pop() || "";
|
|
14617
|
+
};
|
|
14618
|
+
const getFileName = (x) => {
|
|
14619
|
+
return x.fileName?.replace(/\.[^/.]+$/, "") || "";
|
|
14620
|
+
};
|
|
14621
|
+
const ImagePlaceholderTemplate = (context) => {
|
|
14622
|
+
const iconTag = context.tagFor(Icon);
|
|
14623
|
+
return html`<template class="${getClasses}">
|
|
14624
|
+
<div class="image-placeholder">
|
|
14625
|
+
<div class="icon">
|
|
14626
|
+
<${iconTag} name="${getIconName}" size="-5"></${iconTag}>
|
|
14627
|
+
</div>
|
|
14628
|
+
<div class="info">
|
|
14629
|
+
<div class="filename" title="${(x) => x.fileName}">
|
|
14630
|
+
<div class="name">${getFileName}</div>
|
|
14631
|
+
<div class="suffix">${getFileSuffix}</div>
|
|
14632
|
+
</div>
|
|
14633
|
+
${when(
|
|
14634
|
+
(x) => x.errorMessage,
|
|
14635
|
+
html`<div class="error">
|
|
14636
|
+
<span class="error-icon"><${iconTag} name="error-solid" size="-6"></${iconTag}></span>
|
|
14637
|
+
<span class="error-text">${(x) => x.errorMessage}</span>
|
|
14638
|
+
</div>`
|
|
14639
|
+
)}
|
|
14640
|
+
</div>
|
|
14641
|
+
</div>
|
|
14526
14642
|
</template>`;
|
|
14527
14643
|
};
|
|
14528
14644
|
|
|
14645
|
+
const imagePlaceholderDefinition = defineVividComponent(
|
|
14646
|
+
"text-editor-image-placeholder",
|
|
14647
|
+
ImagePlaceholder,
|
|
14648
|
+
ImagePlaceholderTemplate,
|
|
14649
|
+
[iconDefinition],
|
|
14650
|
+
{
|
|
14651
|
+
styles,
|
|
14652
|
+
shadowOptions: {
|
|
14653
|
+
delegatesFocus: true
|
|
14654
|
+
}
|
|
14655
|
+
}
|
|
14656
|
+
);
|
|
14657
|
+
|
|
14529
14658
|
const richTextEditorDefinition = defineVividComponent(
|
|
14530
14659
|
"rich-text-editor",
|
|
14531
14660
|
RichTextEditor,
|
|
14532
14661
|
RichTextEditorTemplate,
|
|
14533
|
-
[
|
|
14662
|
+
[menubarDefinition, dividerDefinition, imagePlaceholderDefinition],
|
|
14534
14663
|
{
|
|
14535
|
-
styles: styles$
|
|
14664
|
+
styles: styles$2,
|
|
14536
14665
|
shadowOptions: {
|
|
14537
14666
|
delegatesFocus: true
|
|
14538
14667
|
}
|
package/shared/definition45.cjs
CHANGED
|
@@ -21,9 +21,9 @@ 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: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}";
|
|
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}@supports selector(:has(*)){.fieldset:not(.has-highlighted-option):has(input:focus){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}}@supports not selector(:has(*)){.fieldset:not(.has-highlighted-option):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}::slotted([data-vvd-component=option][data-highlighted]){border-radius:8px;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}";
|
|
25
25
|
|
|
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% )
|
|
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: var(--_connotation-color-soft);--outline-color: transparent}@supports (background-color: color-mix(in srgb,black 50%,white)){.base:not(.disabled){--fill-color: color-mix( in srgb, var(--_connotation-color-contrast), transparent 87.5% )}}.base.disabled{--text-color: var(--vvd-color-neutral-300);--fill-color: var(--vvd-color-neutral-200);--outline-color: transparent}@supports (background-color: color-mix(in srgb,black 50%,white)){.base.disabled{--fill-color: color-mix( in srgb, var(--vvd-color-neutral-800), transparent 87.5% )}}.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
|
|
|
28
28
|
var __defProp$1 = Object.defineProperty;
|
|
29
29
|
var __decorateClass$1 = (decorators, target, key, kind) => {
|
|
@@ -451,7 +451,9 @@ class SearchableSelect extends mixins.WithFeedback(
|
|
|
451
451
|
}
|
|
452
452
|
#transitionHighlightedOptionTo(index) {
|
|
453
453
|
if (typeof this._highlightedOptionIndex === "number") {
|
|
454
|
-
this._filteredEnabledOptions[this._highlightedOptionIndex]
|
|
454
|
+
const prevOption = this._filteredEnabledOptions[this._highlightedOptionIndex];
|
|
455
|
+
prevOption._highlighted = false;
|
|
456
|
+
prevOption.removeAttribute("data-highlighted");
|
|
455
457
|
}
|
|
456
458
|
if (typeof index === "number") {
|
|
457
459
|
if (!this._filteredEnabledOptions.length) {
|
|
@@ -467,6 +469,7 @@ class SearchableSelect extends mixins.WithFeedback(
|
|
|
467
469
|
if (typeof this._highlightedOptionIndex === "number") {
|
|
468
470
|
const highlightedOption = this._filteredEnabledOptions[this._highlightedOptionIndex];
|
|
469
471
|
highlightedOption._highlighted = true;
|
|
472
|
+
highlightedOption.setAttribute("data-highlighted", "");
|
|
470
473
|
scrollIntoView.scrollIntoView(highlightedOption, this._listbox, "nearest");
|
|
471
474
|
this._changeDescription = this.locale.searchableSelect.optionFocusedMessage(
|
|
472
475
|
highlightedOption.text,
|
|
@@ -541,7 +544,10 @@ class SearchableSelect extends mixins.WithFeedback(
|
|
|
541
544
|
return this.disabled || option.disabled;
|
|
542
545
|
}
|
|
543
546
|
#textForValue(value) {
|
|
544
|
-
|
|
547
|
+
const option = this._slottedOptions?.find(
|
|
548
|
+
(option2) => option2.value === value
|
|
549
|
+
);
|
|
550
|
+
return option?.label;
|
|
545
551
|
}
|
|
546
552
|
/**
|
|
547
553
|
* @internal
|
|
@@ -968,7 +974,8 @@ const getStateClasses = (x) => classNames.classNames(
|
|
|
968
974
|
[`appearance-${x.appearance}`, Boolean(x.appearance)],
|
|
969
975
|
[`shape-${x.shape}`, Boolean(x.shape)],
|
|
970
976
|
["error", Boolean(x.errorValidationMessage)],
|
|
971
|
-
["success", !!x.successText]
|
|
977
|
+
["success", !!x.successText],
|
|
978
|
+
["has-highlighted-option", x._highlightedOptionIndex !== null]
|
|
972
979
|
);
|
|
973
980
|
function renderLabel() {
|
|
974
981
|
return vividElement.html`
|
package/shared/definition45.js
CHANGED
|
@@ -19,9 +19,9 @@ 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: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}";
|
|
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}@supports selector(:has(*)){.fieldset:not(.has-highlighted-option):has(input:focus){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}}@supports not selector(:has(*)){.fieldset:not(.has-highlighted-option):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}::slotted([data-vvd-component=option][data-highlighted]){border-radius:8px;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}";
|
|
23
23
|
|
|
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% )
|
|
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: var(--_connotation-color-soft);--outline-color: transparent}@supports (background-color: color-mix(in srgb,black 50%,white)){.base:not(.disabled){--fill-color: color-mix( in srgb, var(--_connotation-color-contrast), transparent 87.5% )}}.base.disabled{--text-color: var(--vvd-color-neutral-300);--fill-color: var(--vvd-color-neutral-200);--outline-color: transparent}@supports (background-color: color-mix(in srgb,black 50%,white)){.base.disabled{--fill-color: color-mix( in srgb, var(--vvd-color-neutral-800), transparent 87.5% )}}.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
|
|
|
26
26
|
var __defProp$1 = Object.defineProperty;
|
|
27
27
|
var __decorateClass$1 = (decorators, target, key, kind) => {
|
|
@@ -449,7 +449,9 @@ class SearchableSelect extends WithFeedback(
|
|
|
449
449
|
}
|
|
450
450
|
#transitionHighlightedOptionTo(index) {
|
|
451
451
|
if (typeof this._highlightedOptionIndex === "number") {
|
|
452
|
-
this._filteredEnabledOptions[this._highlightedOptionIndex]
|
|
452
|
+
const prevOption = this._filteredEnabledOptions[this._highlightedOptionIndex];
|
|
453
|
+
prevOption._highlighted = false;
|
|
454
|
+
prevOption.removeAttribute("data-highlighted");
|
|
453
455
|
}
|
|
454
456
|
if (typeof index === "number") {
|
|
455
457
|
if (!this._filteredEnabledOptions.length) {
|
|
@@ -465,6 +467,7 @@ class SearchableSelect extends WithFeedback(
|
|
|
465
467
|
if (typeof this._highlightedOptionIndex === "number") {
|
|
466
468
|
const highlightedOption = this._filteredEnabledOptions[this._highlightedOptionIndex];
|
|
467
469
|
highlightedOption._highlighted = true;
|
|
470
|
+
highlightedOption.setAttribute("data-highlighted", "");
|
|
468
471
|
scrollIntoView(highlightedOption, this._listbox, "nearest");
|
|
469
472
|
this._changeDescription = this.locale.searchableSelect.optionFocusedMessage(
|
|
470
473
|
highlightedOption.text,
|
|
@@ -539,7 +542,10 @@ class SearchableSelect extends WithFeedback(
|
|
|
539
542
|
return this.disabled || option.disabled;
|
|
540
543
|
}
|
|
541
544
|
#textForValue(value) {
|
|
542
|
-
|
|
545
|
+
const option = this._slottedOptions?.find(
|
|
546
|
+
(option2) => option2.value === value
|
|
547
|
+
);
|
|
548
|
+
return option?.label;
|
|
543
549
|
}
|
|
544
550
|
/**
|
|
545
551
|
* @internal
|
|
@@ -966,7 +972,8 @@ const getStateClasses = (x) => classNames(
|
|
|
966
972
|
[`appearance-${x.appearance}`, Boolean(x.appearance)],
|
|
967
973
|
[`shape-${x.shape}`, Boolean(x.shape)],
|
|
968
974
|
["error", Boolean(x.errorValidationMessage)],
|
|
969
|
-
["success", !!x.successText]
|
|
975
|
+
["success", !!x.successText],
|
|
976
|
+
["has-highlighted-option", x._highlightedOptionIndex !== null]
|
|
970
977
|
);
|
|
971
978
|
function renderLabel() {
|
|
972
979
|
return html`
|