@vonage/vivid 4.9.0 → 4.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/custom-elements.json +2792 -83
  2. package/lib/badge/badge.d.ts +1 -1
  3. package/lib/breadcrumb-item/breadcrumb-item.d.ts +1 -1
  4. package/lib/button/button.d.ts +1 -1
  5. package/lib/checkbox/checkbox.d.ts +8 -2
  6. package/lib/checkbox/checkbox.form-associated.d.ts +10 -0
  7. package/lib/dialog/dialog.d.ts +4 -0
  8. package/lib/divider/divider.d.ts +11 -2
  9. package/lib/enums.d.ts +1 -0
  10. package/lib/fab/fab.d.ts +1 -1
  11. package/lib/file-picker/file-picker.d.ts +3 -0
  12. package/lib/icon/icon.d.ts +2 -1
  13. package/lib/slider/slider.d.ts +30 -6
  14. package/lib/slider/slider.form-associated.d.ts +10 -0
  15. package/lib/split-button/split-button.d.ts +1 -1
  16. package/lib/tabs/tabs.d.ts +1 -0
  17. package/lib/text-field/text-field.d.ts +1 -0
  18. package/package.json +1 -1
  19. package/shared/aria-global2.cjs +93 -0
  20. package/shared/aria-global2.js +91 -0
  21. package/shared/breadcrumb-item.cjs +2 -89
  22. package/shared/breadcrumb-item.js +1 -88
  23. package/shared/definition11.cjs +201 -5
  24. package/shared/definition11.js +199 -4
  25. package/shared/definition15.cjs +49 -90
  26. package/shared/definition15.js +50 -91
  27. package/shared/definition16.cjs +9 -7
  28. package/shared/definition16.js +9 -7
  29. package/shared/definition20.cjs +16 -11
  30. package/shared/definition20.js +16 -11
  31. package/shared/definition21.cjs +34 -4
  32. package/shared/definition21.js +34 -4
  33. package/shared/definition22.cjs +32 -51
  34. package/shared/definition22.js +33 -52
  35. package/shared/definition24.cjs +156 -2
  36. package/shared/definition24.js +157 -3
  37. package/shared/definition25.cjs +106 -56
  38. package/shared/definition25.js +106 -56
  39. package/shared/definition29.cjs +1 -1
  40. package/shared/definition29.js +1 -1
  41. package/shared/definition30.cjs +1 -1
  42. package/shared/definition30.js +1 -1
  43. package/shared/definition35.cjs +2 -2
  44. package/shared/definition35.js +2 -2
  45. package/shared/definition37.cjs +1 -1
  46. package/shared/definition37.js +1 -1
  47. package/shared/definition4.cjs +5 -6
  48. package/shared/definition4.js +1 -2
  49. package/shared/definition40.cjs +11 -4
  50. package/shared/definition40.js +8 -1
  51. package/shared/definition42.cjs +3 -22
  52. package/shared/definition42.js +2 -21
  53. package/shared/definition43.cjs +1 -2
  54. package/shared/definition43.js +1 -2
  55. package/shared/definition44.js +1 -1
  56. package/shared/definition47.cjs +369 -502
  57. package/shared/definition47.js +370 -503
  58. package/shared/definition5.cjs +5 -5
  59. package/shared/definition5.js +2 -2
  60. package/shared/definition51.cjs +1 -1
  61. package/shared/definition51.js +1 -1
  62. package/shared/definition52.cjs +63 -26
  63. package/shared/definition52.js +63 -26
  64. package/shared/definition56.cjs +45 -43
  65. package/shared/definition56.js +45 -43
  66. package/shared/definition57.cjs +1 -1
  67. package/shared/definition57.js +1 -1
  68. package/shared/definition64.cjs +242 -79
  69. package/shared/definition64.js +242 -79
  70. package/shared/definition7.cjs +1 -1
  71. package/shared/definition7.js +1 -1
  72. package/shared/definition8.cjs +1 -1
  73. package/shared/definition8.js +1 -1
  74. package/shared/enums.cjs +1 -0
  75. package/shared/enums.js +1 -0
  76. package/shared/form-associated.js +1 -1
  77. package/shared/{patterns → foundation/anchor}/anchor.d.ts +1 -1
  78. package/shared/foundation/button/button.d.ts +27 -0
  79. package/shared/foundation/button/button.template.d.ts +4 -0
  80. package/shared/foundation/button/index.d.ts +2 -0
  81. package/shared/foundation/patterns/index.d.ts +1 -0
  82. package/shared/icon.cjs +11 -5
  83. package/shared/icon.js +11 -5
  84. package/shared/index.cjs +22 -2
  85. package/shared/index.js +22 -2
  86. package/shared/key-codes2.js +1 -1
  87. package/shared/patterns/form-elements/form-elements.d.ts +6 -6
  88. package/shared/presentationDate.cjs +4328 -4042
  89. package/shared/presentationDate.js +4327 -4041
  90. package/shared/slider.template.cjs +23 -1
  91. package/shared/slider.template.js +21 -2
  92. package/styles/core/all.css +1 -1
  93. package/styles/core/theme.css +1 -1
  94. package/styles/core/typography.css +1 -1
  95. package/styles/tokens/theme-dark.css +35 -14
  96. package/styles/tokens/theme-light.css +35 -14
  97. package/styles/tokens/vivid-2-compat.css +1 -1
  98. package/vivid.api.json +62 -5
  99. package/shared/aria2.cjs +0 -11
  100. package/shared/aria2.js +0 -9
  101. package/shared/button.cjs +0 -202
  102. package/shared/button.js +0 -200
  103. /package/shared/{patterns → foundation/patterns}/aria-global.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import { F as FoundationElement, a as attr, h as html, r as registerFactory } from './index.js';
2
2
  import { a as iconRegistries } from './definition27.js';
3
- import { B as Button, a as buttonRegistries } from './definition11.js';
3
+ import { c as Button, a as buttonRegistries } from './definition11.js';
4
4
  import { C as Connotation } from './enums.js';
5
5
  import { a as applyMixinsWithObservables } from './applyMixinsWithObservables.js';
6
6
  import { F as FormAssociated } from './form-associated.js';
@@ -10,7 +10,7 @@ import { w as when } from './when.js';
10
10
  import { r as ref } from './ref.js';
11
11
  import { c as classNames } from './class-names.js';
12
12
 
13
- const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column}.control{display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;--focus-inset: 1px;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.main{pointer-events:none}.dz-preview{display:grid;box-sizing:border-box;padding:8px;border-radius:8px;background-color:var(--file-picker-list-item-background-color, var(--vvd-color-canvas));grid-template-columns:1fr auto;grid-template-rows:auto auto;inline-size:100%}.dz-preview .dz-details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.dz-preview .dz-details .dz-filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.dz-preview .dz-details .dz-size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.dz-preview .dz-error-message{color:var(--vvd-color-alert-500);font:var(--vvd-typography-base-condensed);margin-block-start:4px}.dz-preview:not(.dz-error) .dz-error-message{display:none}.dz-preview.dz-error{border:1px solid var(--vvd-color-alert-500)}.dz-preview.dz-error .dz-details .dz-size,.dz-preview.dz-error .dz-progress{display:none}.dz-preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.message{margin-block-start:4px;--_low-ink-color: var(--vvd-color-neutral-600)}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:empty{display:none}";
13
+ const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column}.control{display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;--focus-inset: 1px;box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px))}.control:hover{border-style:solid;background-color:var(--vvd-color-cta-100)}.main{pointer-events:none}.dz-preview{display:grid;box-sizing:border-box;padding:8px;border:1px solid var(--vvd-color-neutral-300);border-radius:8px;background-color:var(--file-picker-list-item-background-color, var(--vvd-color-canvas));grid-template-columns:1fr auto;grid-template-rows:auto auto;inline-size:100%}.dz-preview .dz-details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.dz-preview .dz-details .dz-filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.dz-preview .dz-details .dz-size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.dz-preview .dz-error-message{color:var(--vvd-color-alert-500);font:var(--vvd-typography-base-condensed);margin-block-start:4px}.dz-preview:not(.dz-error) .dz-error-message{display:none}.dz-preview.dz-error{border:1px solid var(--vvd-color-alert-500)}.dz-preview.dz-error .dz-details .dz-size,.dz-preview.dz-error .dz-progress{display:none}.dz-preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.message{margin-block-start:4px;--_low-ink-color: var(--vvd-color-neutral-600)}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:empty{display:none}";
14
14
 
15
15
  var objectExtend = extend;
16
16
 
@@ -2165,18 +2165,56 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
2165
2165
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
2166
2166
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
2167
2167
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
2168
- var _dropzone, _FilePicker_instances, chooseFile_fn, updateHiddenFileInput_fn, handleFilesChanged_fn, updateFormValue_fn, setValueToAFakePathLikeNativeInput_fn, formatNumbersInMessage_fn;
2168
+ var _dropzone, _FilePicker_instances, syncSingleFileState_fn, _localizeErrorMessage, _localizeFileSizeNumberAndUnits, addRemoveButtonToFilesPreview_fn, setRemoveButtonConnotationOnError_fn, chooseFile_fn, updateHiddenFileInput_fn, keepOnlyNewestFile_fn, handleFilesChanged_fn, updateFormValue_fn, setValueToAFakePathLikeNativeInput_fn, formatNumbersInMessage_fn;
2169
2169
  const isFormAssociatedTryingToSetFormValueToFakePath = (value) => typeof value === "string";
2170
+ const generateFilePreviewTemplate = (buttonTag, locale) => {
2171
+ return `<div class="dz-preview dz-file-preview">
2172
+ <div class="dz-details">
2173
+ <div class="dz-filename"><span data-dz-name></span></div>
2174
+ <div class="dz-size"><span data-dz-size></span></div>
2175
+ </div>
2176
+ <div class="dz-error-message"><span data-dz-errormessage></span></div>
2177
+ <${buttonTag} class="remove-btn" icon="delete-line" appearance="ghost" size="condensed" aria-label="${locale.filePicker.removeFileLabel}"></${buttonTag}>
2178
+ </div>`;
2179
+ };
2170
2180
  let FilePicker = class extends FormAssociatedFilePicker {
2171
2181
  constructor() {
2172
2182
  super();
2173
2183
  __privateAdd(this, _FilePicker_instances);
2174
2184
  __privateAdd(this, _dropzone);
2185
+ this.singleFile = false;
2175
2186
  this.maxFileSize = 256;
2187
+ /**
2188
+ * @internal
2189
+ */
2190
+ this.valueChanged = (previous, next) => {
2191
+ super.valueChanged(previous, next);
2192
+ if (next === "" && this.files.length) {
2193
+ this.removeAllFiles();
2194
+ }
2195
+ };
2176
2196
  /**
2177
2197
  * Used internally to hold the tag that button is registered at.
2178
2198
  */
2179
2199
  this.buttonTag = "vwc-button";
2200
+ __privateAdd(this, _localizeErrorMessage, (file, message) => {
2201
+ if (file.previewElement) {
2202
+ file.previewElement.classList.add("dz-error");
2203
+ if (typeof message !== "string" && message.error) {
2204
+ message = message.error;
2205
+ }
2206
+ for (const node of file.previewElement.querySelectorAll(
2207
+ "[data-dz-errormessage]"
2208
+ )) {
2209
+ node.textContent = __privateMethod(this, _FilePicker_instances, formatNumbersInMessage_fn).call(this, message);
2210
+ }
2211
+ }
2212
+ });
2213
+ __privateAdd(this, _localizeFileSizeNumberAndUnits, () => {
2214
+ __privateGet(this, _dropzone).filesize = (size) => {
2215
+ return __privateMethod(this, _FilePicker_instances, formatNumbersInMessage_fn).call(this, $3ed269f2f0fb224b$export$2e2bcd8739ae039.prototype.filesize.call(__privateGet(this, _dropzone), size));
2216
+ };
2217
+ });
2180
2218
  this.setFormValue = (value, state) => {
2181
2219
  if (isFormAssociatedTryingToSetFormValueToFakePath(value)) {
2182
2220
  return;
@@ -2193,6 +2231,9 @@ let FilePicker = class extends FormAssociatedFilePicker {
2193
2231
  get files() {
2194
2232
  return __privateGet(this, _dropzone)?.getAcceptedFiles() ?? [];
2195
2233
  }
2234
+ singleFileChanged() {
2235
+ __privateMethod(this, _FilePicker_instances, syncSingleFileState_fn).call(this);
2236
+ }
2196
2237
  maxFilesChanged(_oldValue, newValue) {
2197
2238
  if (!__privateGet(this, _dropzone)) {
2198
2239
  return;
@@ -2234,62 +2275,18 @@ let FilePicker = class extends FormAssociatedFilePicker {
2234
2275
  addRemoveLinks: false,
2235
2276
  previewsContainer: previewList,
2236
2277
  createImageThumbnails: false,
2237
- // Updated version of default template (https://github.com/dropzone/dropzone/blob/f50d1828ab5df79a76be00d1306cc320e39a27f4/src/preview-template.html)
2238
- previewTemplate: `<div class="dz-preview dz-file-preview">
2239
- <div class="dz-details">
2240
- <div class="dz-filename"><span data-dz-name></span></div>
2241
- <div class="dz-size"><span data-dz-size></span></div>
2242
- </div>
2243
- <div class="dz-error-message"><span data-dz-errormessage></span></div>
2244
- <${this.buttonTag} class="remove-btn" icon="delete-line" appearance="ghost" size="condensed" aria-label="${this.locale.filePicker.removeFileLabel}"></${this.buttonTag}>
2245
- </div>`,
2278
+ previewTemplate: generateFilePreviewTemplate(this.buttonTag, this.locale),
2246
2279
  dictInvalidFileType: this.locale.filePicker.invalidFileTypeError,
2247
2280
  dictMaxFilesExceeded: this.locale.filePicker.maxFilesExceededError,
2248
2281
  dictFileTooBig: this.locale.filePicker.fileTooBigError,
2249
- // Override the default implementation to localize the error messages
2250
- error: (file, message) => {
2251
- if (file.previewElement) {
2252
- file.previewElement.classList.add("dz-error");
2253
- if (typeof message !== "string" && message.error) {
2254
- message = message.error;
2255
- }
2256
- for (const node of file.previewElement.querySelectorAll(
2257
- "[data-dz-errormessage]"
2258
- )) {
2259
- node.textContent = __privateMethod(this, _FilePicker_instances, formatNumbersInMessage_fn).call(this, message);
2260
- }
2261
- }
2262
- }
2282
+ error: __privateGet(this, _localizeErrorMessage)
2263
2283
  }));
2264
- __privateGet(this, _dropzone).filesize = (size) => {
2265
- return __privateMethod(this, _FilePicker_instances, formatNumbersInMessage_fn).call(this, $3ed269f2f0fb224b$export$2e2bcd8739ae039.prototype.filesize.call(__privateGet(this, _dropzone), size));
2266
- };
2267
- __privateGet(this, _dropzone).on("addedfiles", (files) => {
2268
- for (const file of files) {
2269
- if (file.previewElement) {
2270
- const removeButton = file.previewElement.querySelector(
2271
- ".remove-btn"
2272
- );
2273
- removeButton.addEventListener("click", (e) => {
2274
- e.preventDefault();
2275
- e.stopPropagation();
2276
- __privateGet(this, _dropzone).removeFile(file);
2277
- });
2278
- }
2279
- }
2280
- __privateMethod(this, _FilePicker_instances, handleFilesChanged_fn).call(this);
2281
- });
2284
+ __privateGet(this, _localizeFileSizeNumberAndUnits).call(this);
2285
+ __privateMethod(this, _FilePicker_instances, addRemoveButtonToFilesPreview_fn).call(this);
2282
2286
  __privateGet(this, _dropzone).on("removedfile", () => {
2283
2287
  __privateMethod(this, _FilePicker_instances, handleFilesChanged_fn).call(this);
2284
2288
  });
2285
- __privateGet(this, _dropzone).on("error", (file) => {
2286
- if (file.previewElement) {
2287
- const removeButton = file.previewElement.querySelector(
2288
- ".remove-btn"
2289
- );
2290
- removeButton.connotation = Connotation.Alert;
2291
- }
2292
- });
2289
+ __privateMethod(this, _FilePicker_instances, syncSingleFileState_fn).call(this);
2293
2290
  }
2294
2291
  disconnectedCallback() {
2295
2292
  super.disconnectedCallback();
@@ -2318,24 +2315,74 @@ let FilePicker = class extends FormAssociatedFilePicker {
2318
2315
  super.formResetCallback();
2319
2316
  __privateGet(this, _dropzone).removeAllFiles();
2320
2317
  }
2318
+ /**
2319
+ * Removes all files from the File Picker.
2320
+ */
2321
+ removeAllFiles() {
2322
+ __privateGet(this, _dropzone)?.removeAllFiles();
2323
+ }
2321
2324
  };
2322
2325
  _dropzone = new WeakMap();
2323
2326
  _FilePicker_instances = new WeakSet();
2327
+ syncSingleFileState_fn = function() {
2328
+ if (this.singleFile) {
2329
+ __privateGet(this, _dropzone)?.hiddenFileInput?.removeAttribute("multiple");
2330
+ } else {
2331
+ __privateGet(this, _dropzone)?.hiddenFileInput?.setAttribute("multiple", "multiple");
2332
+ }
2333
+ };
2334
+ _localizeErrorMessage = new WeakMap();
2335
+ _localizeFileSizeNumberAndUnits = new WeakMap();
2336
+ addRemoveButtonToFilesPreview_fn = function() {
2337
+ __privateGet(this, _dropzone).on("addedfiles", (files) => {
2338
+ for (const file of files) {
2339
+ if (file.previewElement) {
2340
+ const removeButton = file.previewElement.querySelector(
2341
+ ".remove-btn"
2342
+ );
2343
+ removeButton.addEventListener("click", (e) => {
2344
+ e.preventDefault();
2345
+ e.stopPropagation();
2346
+ __privateGet(this, _dropzone).removeFile(file);
2347
+ });
2348
+ }
2349
+ }
2350
+ __privateMethod(this, _FilePicker_instances, handleFilesChanged_fn).call(this);
2351
+ });
2352
+ __privateMethod(this, _FilePicker_instances, setRemoveButtonConnotationOnError_fn).call(this);
2353
+ };
2354
+ setRemoveButtonConnotationOnError_fn = function() {
2355
+ __privateGet(this, _dropzone).on("error", (file) => {
2356
+ if (file.previewElement) {
2357
+ const removeButton = file.previewElement.querySelector(
2358
+ ".remove-btn"
2359
+ );
2360
+ removeButton.connotation = Connotation.Alert;
2361
+ }
2362
+ });
2363
+ };
2324
2364
  chooseFile_fn = function() {
2325
2365
  if (__privateGet(this, _dropzone).hiddenFileInput) {
2326
2366
  __privateGet(this, _dropzone).hiddenFileInput.click();
2327
2367
  }
2328
2368
  };
2329
2369
  updateHiddenFileInput_fn = function() {
2330
- if (__privateGet(this, _dropzone).hiddenFileInput) {
2331
- __privateGet(this, _dropzone).hiddenFileInput.dispatchEvent(
2332
- new Event("change", { bubbles: false })
2333
- );
2370
+ __privateGet(this, _dropzone).hiddenFileInput.dispatchEvent(
2371
+ new Event("change", { bubbles: false })
2372
+ );
2373
+ };
2374
+ keepOnlyNewestFile_fn = function() {
2375
+ for (let i = 0; i < this.files.length - 1; i++) {
2376
+ __privateGet(this, _dropzone).removeFile(this.files[i]);
2334
2377
  }
2335
2378
  };
2336
2379
  handleFilesChanged_fn = function() {
2380
+ if (this.singleFile && this.files.length >= 1) {
2381
+ __privateMethod(this, _FilePicker_instances, keepOnlyNewestFile_fn).call(this);
2382
+ }
2337
2383
  this.$emit("change");
2338
2384
  __privateMethod(this, _FilePicker_instances, updateFormValue_fn).call(this);
2385
+ requestAnimationFrame(() => __privateMethod(this, _FilePicker_instances, syncSingleFileState_fn).call(this));
2339
2386
  };
2340
2387
  updateFormValue_fn = function() {
2341
2388
  const files = this.files;
@@ -2359,6 +2406,9 @@ formatNumbersInMessage_fn = function(message) {
2359
2406
  }
2360
2407
  return message;
2361
2408
  };
2409
+ __decorateClass([
2410
+ attr({ attribute: "single-file", mode: "boolean" })
2411
+ ], FilePicker.prototype, "singleFile", 2);
2362
2412
  __decorateClass([
2363
2413
  attr({ attribute: "max-files" })
2364
2414
  ], FilePicker.prototype, "maxFiles", 2);
@@ -571,7 +571,7 @@ index.__decorate([
571
571
  index.observable
572
572
  ], Menu$1.prototype, "items", void 0);
573
573
 
574
- const styles = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;border-radius:8px}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}";
574
+ const styles = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}";
575
575
 
576
576
  var __defProp$1 = Object.defineProperty;
577
577
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -569,7 +569,7 @@ __decorate([
569
569
  observable
570
570
  ], Menu$1.prototype, "items", void 0);
571
571
 
572
- const styles = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;border-radius:8px}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}";
572
+ const styles = ":host(:focus-visible){outline:none}:host([disabled]){pointer-events:none}.base{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base:where(.selected):where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base.connotation-cta{--_connotation-color-primary: var(--vvd-menu-item-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-menu-item-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-cta-primary-increment, var(--vvd-color-cta-600));--_connotation-color-firm: var(--vvd-menu-item-cta-firm, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-menu-item-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-menu-item-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-menu-item-cta-pale, var(--vvd-color-cta-300));--_connotation-color-dim: var(--vvd-menu-item-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-menu-item-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-menu-item-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-primary-increment: var(--vvd-menu-item-accent-primary-increment, var(--vvd-color-neutral-800));--_connotation-color-firm: var(--vvd-menu-item-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-faint: var(--vvd-menu-item-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-menu-item-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-menu-item-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-dim: var(--vvd-menu-item-accent-dim, var(--vvd-color-neutral-200))}.base{display:flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);inline-size:100%}.base:not(.two-lines){gap:12px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)));padding-block:8px;padding-inline:12px}.base.two-lines{padding:12px;gap:16px;min-block-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2)) + 1px*(24 + 4*clamp(-1,var(--vvd-size-density, 0),2)))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}:host(:not([role=presentation]):focus-visible) .base{box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent}.icon{flex-shrink:0;font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.action,.decorative{display:flex;place-content:center}.action{color:var(--_appearance-color-text)}.base.trailing .action,.base.has-meta .action{order:2}:host(:not([check-appearance],[aria-checked=true],[disabled])) .action{color:var(--vvd-color-neutral-500)}.base:not(.disabled) .decorative{color:var(--vvd-color-neutral-600)}.base.disabled .decorative{color:var(--vvd-color-neutral-200)}.base.has-meta .decorative{order:1}.chevron{order:3}.text{display:flex;overflow:hidden;flex-direction:column;gap:4px;margin-inline-end:auto}.text-primary,.text-secondary{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;font:var(--vvd-typography-base)}.text-primary{font:var(--vvd-typography-base);-webkit-line-clamp:var(--text-primary-line-clamp, 1)}.base:not(.disabled) .text-primary{color:var(--vvd-color-canvas-text)}.base.disabled .text-primary{color:var(--_appearance-color-text)}.base.two-lines .text-primary{font:var(--vvd-typography-base-bold)}.text-secondary{color:var(--vvd-color-neutral-800);font:var(--vvd-typography-base-condensed);-webkit-line-clamp:var(--text-secondary-line-clamp, 1)}.base.two-lines .text-secondary{color:var(--vvd-color-neutral-600)}.base.disabled .text-secondary{color:var(--_appearance-color-text)}.base.selected:not(.disabled) .text-secondary{color:var(--vvd-color-neutral-800)}";
573
573
 
574
574
  var __defProp$1 = Object.defineProperty;
575
575
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -8,7 +8,7 @@ const index$1 = require('./index2.cjs');
8
8
  const slotted = require('./slotted.cjs');
9
9
  const classNames = require('./class-names.cjs');
10
10
 
11
- const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);max-inline-size:var(--menu-max-inline-size);min-inline-size:var(--menu-min-inline-size);padding-block:8px}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[role=menuitem]:focus-visible){box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;display:block;border-radius:8px}.header{padding-block-start:4px;padding-inline:12px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px}.hide-actions .action-items{display:none}";
11
+ const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);max-inline-size:var(--menu-max-inline-size);min-inline-size:var(--menu-min-inline-size);padding-block:8px}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[role=menuitem]:focus-visible){box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;display:block}.header{padding-block-start:4px;padding-inline:12px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px}.hide-actions .action-items{display:none}";
12
12
 
13
13
  const getClasses = ({
14
14
  headerSlottedContent,
@@ -6,7 +6,7 @@ import { h as handleEscapeKeyAndStopPropogation } from './index2.js';
6
6
  import { s as slotted } from './slotted.js';
7
7
  import { c as classNames } from './class-names.js';
8
8
 
9
- const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);max-inline-size:var(--menu-max-inline-size);min-inline-size:var(--menu-min-inline-size);padding-block:8px}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[role=menuitem]:focus-visible){box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;display:block;border-radius:8px}.header{padding-block-start:4px;padding-inline:12px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px}.hide-actions .action-items{display:none}";
9
+ const styles = ":host{display:var(--_popup-display, inline)}:host([slotted-anchor]){--_popup-display: contents}.base{display:flex;overflow:hidden auto;box-sizing:border-box;flex-direction:column;gap:8px;inline-size:max-content;max-block-size:var(--menu-block-size, 408px);max-inline-size:var(--menu-max-inline-size);min-inline-size:var(--menu-min-inline-size);padding-block:8px}::slotted(a){color:var(--vvd-color-canvas-text);text-decoration:none}::slotted(a[role=menuitem]:focus-visible){box-shadow:inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:2px solid var(--focus-stroke-color, var(--vvd-color-canvas-text));outline-offset:calc(-2px - var(--focus-inset, 0px));--focus-stroke-gap-color: transparent;display:block}.header{padding-block-start:4px;padding-inline:12px}.hide-header .header{display:none}.body{display:flex;flex-direction:column;row-gap:1px}.hide-body .body{display:none}.action-items{display:flex;justify-content:flex-end;gap:8px;padding-block-end:4px;padding-inline:12px}.hide-actions .action-items{display:none}";
10
10
 
11
11
  const getClasses = ({
12
12
  headerSlottedContent,
@@ -5,8 +5,8 @@ const definition = require('./definition11.cjs');
5
5
  const definition$1 = require('./definition22.cjs');
6
6
  const applyMixinsWithObservables = require('./applyMixinsWithObservables.cjs');
7
7
  const formAssociated = require('./form-associated.cjs');
8
- const keyCodes = require('./key-codes2.cjs');
9
8
  const textField = require('./text-field2.cjs');
9
+ const keyCodes = require('./key-codes2.cjs');
10
10
  const formElements = require('./form-elements.cjs');
11
11
  const affix = require('./affix.cjs');
12
12
  const localized = require('./localized.cjs');
@@ -346,7 +346,7 @@ function getTabIndex(numberField) {
346
346
  return numberField.disabled || numberField.readOnly ? "-1" : null;
347
347
  }
348
348
  function numberControlButtons(context) {
349
- const buttonTag = context.tagFor(definition.Button);
349
+ const buttonTag = context.tagFor(definition.Button$1);
350
350
  const dividerTag = context.tagFor(definition$1.Divider);
351
351
  return index.html`
352
352
  <div class="control-buttons"
@@ -1,10 +1,10 @@
1
1
  import { F as FoundationElement, D as DOM, a as attr, n as nullableNumberConverter, o as observable, h as html, r as registerFactory } from './index.js';
2
- import { B as Button, a as buttonRegistries } from './definition11.js';
2
+ import { c as Button, a as buttonRegistries } from './definition11.js';
3
3
  import { D as Divider, a as dividerRegistries } from './definition22.js';
4
4
  import { a as applyMixinsWithObservables } from './applyMixinsWithObservables.js';
5
5
  import { F as FormAssociated } from './form-associated.js';
6
- import { c as keyArrowDown, d as keyArrowUp } from './key-codes2.js';
7
6
  import { D as DelegatesARIATextbox } from './text-field2.js';
7
+ import { e as keyArrowDown, f as keyArrowUp } from './key-codes2.js';
8
8
  import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, b as FormElementCharCount, g as getFeedbackTemplate } from './form-elements.js';
9
9
  import { A as AffixIcon } from './affix.js';
10
10
  import { L as Localized } from './localized.js';
@@ -185,7 +185,7 @@ const getPaginationButtonWidth = (value) => {
185
185
  return `calc(var(--base-size) + ${String(value).length - 1}ch)`;
186
186
  };
187
187
  const PaginationTemplate = (context) => {
188
- const buttonTag = context.tagFor(definition.Button);
188
+ const buttonTag = context.tagFor(definition.Button$1);
189
189
  const paginationButtonTemplate = paginationButtonRenderer(buttonTag);
190
190
  return index.html`
191
191
  <div class="${getClasses}">
@@ -1,4 +1,4 @@
1
- import { B as Button, a as buttonRegistries } from './definition11.js';
1
+ import { c as Button, a as buttonRegistries } from './definition11.js';
2
2
  import { F as FoundationElement, a as attr, o as observable, v as volatile, h as html, r as registerFactory } from './index.js';
3
3
  import { b as Size, S as Shape } from './enums.js';
4
4
  import { e as elements } from './slotted.js';
@@ -1,15 +1,14 @@
1
1
  'use strict';
2
2
 
3
3
  const index = require('./index.cjs');
4
- const definition$2 = require('./definition11.cjs');
4
+ const definition$1 = require('./definition11.cjs');
5
5
  const definition = require('./definition63.cjs');
6
- const definition$1 = require('./definition27.cjs');
6
+ const definition$2 = require('./definition27.cjs');
7
7
  const enums = require('./enums.cjs');
8
8
  const affix = require('./affix.cjs');
9
9
  const index$1 = require('./index2.cjs');
10
10
  const localized = require('./localized.cjs');
11
11
  const applyMixins = require('./apply-mixins.cjs');
12
- const button = require('./button.cjs');
13
12
  const when = require('./when.cjs');
14
13
  const classNames = require('./class-names.cjs');
15
14
 
@@ -164,7 +163,7 @@ function renderDismissButton(buttonTag) {
164
163
  }
165
164
  const AlertTemplate = (context) => {
166
165
  const elevationTag = context.tagFor(definition.Elevation);
167
- const buttonTag = context.tagFor(button.Button);
166
+ const buttonTag = context.tagFor(definition$1.Button);
168
167
  return index.html`
169
168
  <${elevationTag} class="elevation" dp='8' exportparts="vvd-theme-alternate">
170
169
  <div
@@ -197,8 +196,8 @@ const alertDefinition = Alert.compose({
197
196
  });
198
197
  const alertRegistries = [
199
198
  alertDefinition(),
200
- ...definition$1.iconRegistries,
201
- ...definition$2.buttonRegistries,
199
+ ...definition$2.iconRegistries,
200
+ ...definition$1.buttonRegistries,
202
201
  ...definition.elevationRegistries
203
202
  ];
204
203
  const registerAlert = index.registerFactory(alertRegistries);
@@ -1,5 +1,5 @@
1
1
  import { F as FoundationElement, a as attr, n as nullableNumberConverter, h as html, r as registerFactory } from './index.js';
2
- import { a as buttonRegistries } from './definition11.js';
2
+ import { B as Button$1, a as buttonRegistries } from './definition11.js';
3
3
  import { E as Elevation, e as elevationRegistries } from './definition63.js';
4
4
  import { a as iconRegistries } from './definition27.js';
5
5
  import { C as Connotation } from './enums.js';
@@ -7,7 +7,6 @@ import { A as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from
7
7
  import { h as handleEscapeKeyAndStopPropogation } from './index2.js';
8
8
  import { L as Localized } from './localized.js';
9
9
  import { a as applyMixins } from './apply-mixins.js';
10
- import { B as Button$1 } from './button.js';
11
10
  import { w as when } from './when.js';
12
11
  import { c as classNames } from './class-names.js';
13
12
 
@@ -3,11 +3,18 @@
3
3
  const index = require('./index.cjs');
4
4
  const direction = require('./direction.cjs');
5
5
  const keyCodes = require('./key-codes.cjs');
6
- const aria = require('./aria2.cjs');
7
6
  const radio = require('./radio.cjs');
8
7
  const slotted = require('./slotted.cjs');
9
8
  const when = require('./when.cjs');
10
- const aria$1 = require('./aria.cjs');
9
+ const aria = require('./aria.cjs');
10
+
11
+ /**
12
+ * Standard orientation values
13
+ */
14
+ const Orientation = {
15
+ horizontal: "horizontal",
16
+ vertical: "vertical",
17
+ };
11
18
 
12
19
  /**
13
20
  * An Radio Group Custom HTML Element.
@@ -30,7 +37,7 @@ let RadioGroup$1 = class RadioGroup extends index.FoundationElement {
30
37
  * @remarks
31
38
  * HTML Attribute: orientation
32
39
  */
33
- this.orientation = aria.Orientation.horizontal;
40
+ this.orientation = Orientation.horizontal;
34
41
  this.radioChangeHandler = (e) => {
35
42
  const changedRadio = e.target;
36
43
  if (changedRadio.checked) {
@@ -429,7 +436,7 @@ const RadioGroupTemplate = (context) => {
429
436
  )}
430
437
 
431
438
  <div
432
- class="positioning-region ${(x) => x.orientation === aria$1.Orientation.horizontal ? "horizontal" : "vertical"}"
439
+ class="positioning-region ${(x) => x.orientation === aria.Orientation.horizontal ? "horizontal" : "vertical"}"
433
440
  >
434
441
  <slot
435
442
  ${slotted.slotted({
@@ -1,12 +1,19 @@
1
1
  import { F as FoundationElement, _ as __decorate, a as attr, o as observable, h as html, r as registerFactory } from './index.js';
2
2
  import { D as Direction, g as getDirection } from './direction.js';
3
3
  import { h as keyArrowRight, i as keyArrowLeft, A as ArrowKeys, e as keyArrowUp, f as keyArrowDown, k as keyEnter } from './key-codes.js';
4
- import { O as Orientation } from './aria2.js';
5
4
  import { R as Radio } from './radio.js';
6
5
  import { s as slotted, e as elements } from './slotted.js';
7
6
  import { w as when } from './when.js';
8
7
  import { O as Orientation$1 } from './aria.js';
9
8
 
9
+ /**
10
+ * Standard orientation values
11
+ */
12
+ const Orientation = {
13
+ horizontal: "horizontal",
14
+ vertical: "vertical",
15
+ };
16
+
10
17
  /**
11
18
  * An Radio Group Custom HTML Element.
12
19
  * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#radiogroup | ARIA radiogroup }.
@@ -24,25 +24,6 @@ class FormAssociatedRangeSlider extends formAssociated.FormAssociated(_RangeSlid
24
24
  }
25
25
  }
26
26
 
27
- const getDecimalPlaces = (num) => {
28
- const match = num.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
29
- return Math.max(
30
- 0,
31
- // Number of digits right of decimal point.
32
- (match[1] ? match[1].length : 0) - // Adjust for scientific notation.
33
- (match[2] ? +match[2] : 0)
34
- );
35
- };
36
- const roundToStepValue = (value, step) => {
37
- const decimalPlaces = getDecimalPlaces(step);
38
- const factor = Math.pow(10, decimalPlaces);
39
- const roundedValue = Math.round(value / step) * step;
40
- return Math.round(roundedValue * factor) / factor;
41
- };
42
-
43
- const lerp = (a, b, value) => a + (b - a) * value;
44
- const inverseLerp = (a, b, value) => slider_template.limit(0, 1, (value - a) / (b - a));
45
-
46
27
  var __defProp = Object.defineProperty;
47
28
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
48
29
  var __typeError = (msg) => {
@@ -385,7 +366,7 @@ updateThumbPositions_fn = function() {
385
366
  this._selectedRangeCss = `${dirProp}: ${endOffsetPct}%; ${dimProp}: ${startOffsetPct - endOffsetPct}%; ${transition}`;
386
367
  };
387
368
  thumbTrackEndOffset_fn = function(value) {
388
- return (1 - inverseLerp(this.min, this.max, value)) * 100;
369
+ return (1 - slider_template.inverseLerp(this.min, this.max, value)) * 100;
389
370
  };
390
371
  calculateValueFromMouseEvent_fn = function(e) {
391
372
  const trackClientRect = this._trackEl.getBoundingClientRect();
@@ -398,13 +379,13 @@ calculateValueFromMouseEvent_fn = function(e) {
398
379
  trackClientRect.bottom,
399
380
  e.pageY - document.documentElement.scrollTop
400
381
  ];
401
- return lerp(this.min, this.max, inverseLerp(minPos, maxPos, valuePos));
382
+ return slider_template.lerp(this.min, this.max, slider_template.inverseLerp(minPos, maxPos, valuePos));
402
383
  };
403
384
  roundToNearestStep_fn = function(thumb, value) {
404
385
  return slider_template.limit(
405
386
  __privateGet(this, _RangeSlider_instances, thumbConstraints_get)[thumb].min,
406
387
  __privateGet(this, _RangeSlider_instances, thumbConstraints_get)[thumb].max,
407
- roundToStepValue(value - this.min, this.step) + this.min
388
+ slider_template.roundToStepValue(value - this.min, this.step) + this.min
408
389
  );
409
390
  };
410
391
  _isNonVisibleFocus = new WeakMap();
@@ -1,8 +1,8 @@
1
1
  import { F as FoundationElement, o as observable, a as attr, n as nullableNumberConverter, h as html, r as registerFactory } from './index.js';
2
2
  import { P as Popup, a as PlacementStrategy, p as popupRegistries } from './definition64.js';
3
- import { e as keyHome, f as keyEnd, d as keyArrowUp, k as keyArrowLeft, c as keyArrowDown, a as keyArrowRight } from './key-codes2.js';
3
+ import { c as keyHome, d as keyEnd, f as keyArrowUp, k as keyArrowLeft, e as keyArrowDown, a as keyArrowRight } from './key-codes2.js';
4
4
  import { F as FormAssociated } from './form-associated.js';
5
- import { l as limit, g as getMarkersTemplate } from './slider.template.js';
5
+ import { i as inverseLerp, l as lerp, a as limit, r as roundToStepValue, g as getMarkersTemplate } from './slider.template.js';
6
6
  import { O as Orientation } from './aria.js';
7
7
  import { a as applyMixins } from './apply-mixins.js';
8
8
  import { L as Localized } from './localized.js';
@@ -22,25 +22,6 @@ class FormAssociatedRangeSlider extends FormAssociated(_RangeSlider) {
22
22
  }
23
23
  }
24
24
 
25
- const getDecimalPlaces = (num) => {
26
- const match = num.toString().match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/);
27
- return Math.max(
28
- 0,
29
- // Number of digits right of decimal point.
30
- (match[1] ? match[1].length : 0) - // Adjust for scientific notation.
31
- (match[2] ? +match[2] : 0)
32
- );
33
- };
34
- const roundToStepValue = (value, step) => {
35
- const decimalPlaces = getDecimalPlaces(step);
36
- const factor = Math.pow(10, decimalPlaces);
37
- const roundedValue = Math.round(value / step) * step;
38
- return Math.round(roundedValue * factor) / factor;
39
- };
40
-
41
- const lerp = (a, b, value) => a + (b - a) * value;
42
- const inverseLerp = (a, b, value) => limit(0, 1, (value - a) / (b - a));
43
-
44
25
  var __defProp = Object.defineProperty;
45
26
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
46
27
  var __typeError = (msg) => {
@@ -15,7 +15,6 @@ const applyMixins = require('./apply-mixins.cjs');
15
15
  const when = require('./when.cjs');
16
16
  const ref = require('./ref.cjs');
17
17
  const slotted = require('./slotted.cjs');
18
- const button = require('./button.cjs');
19
18
  const repeat = require('./repeat.cjs');
20
19
  const classNames = require('./class-names.cjs');
21
20
  const icon = require('./icon.cjs');
@@ -907,7 +906,7 @@ const elidedTagTemplateFactory = (context, getComponent) => {
907
906
  `;
908
907
  };
909
908
  function renderFieldset(context) {
910
- const buttonTag = context.tagFor(button.Button);
909
+ const buttonTag = context.tagFor(definition$1.Button);
911
910
  const affixIconTemplate = affix.affixIconTemplateFactory(context);
912
911
  const chevronTemplate = definition$1.chevronTemplateFactory(context);
913
912
  const tagTemplate = tagTemplateFactory(context, (c) => c.parent);
@@ -1,5 +1,5 @@
1
1
  import { F as FoundationElement, O as Observable, D as DOM, a as attr, n as nullableNumberConverter, o as observable, h as html, r as registerFactory } from './index.js';
2
- import { c as chevronTemplateFactory, a as buttonRegistries } from './definition11.js';
2
+ import { B as Button$1, d as chevronTemplateFactory, a as buttonRegistries } from './definition11.js';
3
3
  import { P as Popup, p as popupRegistries } from './definition64.js';
4
4
  import { a as iconRegistries } from './definition27.js';
5
5
  import { a as applyMixinsWithObservables } from './applyMixinsWithObservables.js';
@@ -13,7 +13,6 @@ import { a as applyMixins } from './apply-mixins.js';
13
13
  import { w as when } from './when.js';
14
14
  import { r as ref } from './ref.js';
15
15
  import { s as slotted } from './slotted.js';
16
- import { B as Button$1 } from './button.js';
17
16
  import { r as repeat } from './repeat.js';
18
17
  import { c as classNames } from './class-names.js';
19
18
  import { I as Icon } from './icon.js';
@@ -12,7 +12,7 @@ import { u as uniqueId } from './strings.js';
12
12
  import { c as keyTab, b as keyEscape, k as keyEnter, d as keyEnd, g as keyHome, a as keySpace, f as keyArrowDown, e as keyArrowUp } from './key-codes.js';
13
13
  import { e as errorText, f as formElements, F as FormElementSuccessText, a as FormElementHelperText, g as getFeedbackTemplate } from './form-elements.js';
14
14
  import { b as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
15
- import { c as chevronTemplateFactory } from './definition11.js';
15
+ import { d as chevronTemplateFactory } from './definition11.js';
16
16
  import { h as handleEscapeKeyAndStopPropogation } from './index2.js';
17
17
  import { r as ref } from './ref.js';
18
18
  import { w as when } from './when.js';