@vonage/vivid 4.14.1 → 4.14.3

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 (109) hide show
  1. package/custom-elements.json +393 -201
  2. package/index.cjs +1 -0
  3. package/index.js +1 -1
  4. package/lib/accordion/definition.d.ts +5 -1
  5. package/lib/combobox/combobox.d.ts +5 -1
  6. package/lib/divider/divider.d.ts +1 -1
  7. package/lib/divider/divider.template.d.ts +1 -1
  8. package/lib/file-picker/file-picker.d.ts +1 -0
  9. package/lib/menu-item/definition.d.ts +1 -1
  10. package/lib/menu-item/menu-item-role.d.ts +7 -0
  11. package/lib/menu-item/menu-item.d.ts +1 -7
  12. package/lib/number-field/number-field.d.ts +1 -1
  13. package/lib/radio/radio.d.ts +2 -2
  14. package/lib/searchable-select/option-tag.d.ts +2 -2
  15. package/lib/select/select.form-associated.d.ts +1 -1
  16. package/lib/switch/switch.d.ts +1 -0
  17. package/lib/tabs/tabs.d.ts +5 -1
  18. package/lib/text-anchor/text-anchor.d.ts +1 -1
  19. package/lib/tree-item/tree-item.d.ts +1 -1
  20. package/lib/tree-view/tree-view.d.ts +1 -1
  21. package/package.json +1 -1
  22. package/shared/affix.js +1 -1
  23. package/shared/applyMixinsWithObservables.cjs +1 -1
  24. package/shared/applyMixinsWithObservables.js +1 -1
  25. package/shared/definition.js +1 -1
  26. package/shared/definition11.cjs +1 -1
  27. package/shared/definition11.js +2 -2
  28. package/shared/definition16.cjs +64 -32
  29. package/shared/definition16.js +62 -30
  30. package/shared/definition17.cjs +9 -7
  31. package/shared/definition17.js +9 -7
  32. package/shared/definition2.cjs +9 -4
  33. package/shared/definition2.js +9 -5
  34. package/shared/definition22.cjs +2 -1
  35. package/shared/definition22.js +2 -1
  36. package/shared/definition24.js +1 -1
  37. package/shared/definition25.cjs +25 -18
  38. package/shared/definition25.js +26 -19
  39. package/shared/definition27.cjs +1 -1
  40. package/shared/definition27.js +1 -1
  41. package/shared/definition29.cjs +12 -30
  42. package/shared/definition29.js +13 -31
  43. package/shared/definition30.js +1 -1
  44. package/shared/definition31.js +1 -1
  45. package/shared/definition33.cjs +1 -1
  46. package/shared/definition33.js +2 -2
  47. package/shared/definition34.cjs +7 -228
  48. package/shared/definition34.js +5 -226
  49. package/shared/definition35.cjs +2 -201
  50. package/shared/definition35.js +4 -201
  51. package/shared/definition4.js +1 -1
  52. package/shared/definition41.cjs +1 -1
  53. package/shared/definition41.js +1 -1
  54. package/shared/definition42.cjs +2 -3
  55. package/shared/definition42.js +3 -4
  56. package/shared/definition43.cjs +10 -11
  57. package/shared/definition43.js +6 -7
  58. package/shared/definition46.cjs +2 -2
  59. package/shared/definition46.js +3 -3
  60. package/shared/definition47.js +1 -1
  61. package/shared/definition48.cjs +22 -15
  62. package/shared/definition48.js +22 -15
  63. package/shared/definition5.cjs +3 -2
  64. package/shared/definition5.js +3 -2
  65. package/shared/definition50.js +1 -1
  66. package/shared/definition51.cjs +14 -383
  67. package/shared/definition51.js +17 -386
  68. package/shared/definition53.js +1 -1
  69. package/shared/definition54.js +1 -1
  70. package/shared/definition56.js +1 -1
  71. package/shared/definition59.js +1 -1
  72. package/shared/definition7.js +1 -1
  73. package/shared/definition8.js +1 -1
  74. package/shared/direction.cjs +2 -16
  75. package/shared/direction.js +3 -17
  76. package/shared/foundation/utilities/direction.d.ts +2 -0
  77. package/shared/listbox.cjs +25 -6
  78. package/shared/listbox.js +22 -3
  79. package/shared/option.cjs +205 -0
  80. package/shared/option.js +202 -0
  81. package/shared/text-anchor.cjs +1 -1
  82. package/shared/text-anchor.js +2 -2
  83. package/shared/text-field2.js +2 -2
  84. package/shared/vivid-element.cjs +0 -2
  85. package/shared/vivid-element.js +1 -1
  86. package/styles/core/all.css +1 -1
  87. package/styles/core/theme.css +1 -1
  88. package/styles/core/typography.css +1 -1
  89. package/styles/tokens/theme-dark.css +4 -4
  90. package/styles/tokens/theme-light.css +4 -4
  91. package/styles/tokens/vivid-2-compat.css +1 -1
  92. package/vivid.api.json +70 -3
  93. package/lib/listbox/definition.d.ts +0 -2
  94. package/lib/listbox/listbox.d.ts +0 -14
  95. package/lib/listbox/listbox.template.d.ts +0 -2
  96. package/listbox/index.cjs +0 -54
  97. package/listbox/index.js +0 -52
  98. package/shared/apply-mixins2.cjs +0 -25
  99. package/shared/apply-mixins2.js +0 -23
  100. package/shared/aria-global2.cjs +0 -75
  101. package/shared/aria-global2.js +0 -73
  102. package/shared/form-associated2.cjs +0 -383
  103. package/shared/form-associated2.js +0 -381
  104. package/shared/key-codes2.cjs +0 -1565
  105. package/shared/key-codes2.js +0 -1551
  106. package/shared/listbox2.cjs +0 -1267
  107. package/shared/listbox2.js +0 -1264
  108. package/shared/strings2.cjs +0 -37
  109. package/shared/strings2.js +0 -33
@@ -3,21 +3,21 @@ import { P as Popup, p as popupDefinition } from './definition63.js';
3
3
  import { l as listboxOptionDefinition } from './definition35.js';
4
4
  import { s as styles$1 } from './text-field.js';
5
5
  import { D as DOM, O as Observable, a as attr, o as observable, h as html, d as defineVividComponent, f as createRegisterFunction } from './vivid-element.js';
6
+ import { a as applyMixins } from './apply-mixins.js';
6
7
  import { L as Listbox } from './listbox.js';
7
8
  import { F as FormAssociated } from './form-associated.js';
8
- import { A as AffixIcon, a as affixIconTemplateFactory } from './affix.js';
9
+ import { b as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
9
10
  import { u as uniqueId } from './strings.js';
10
11
  import { l as limit } from './numbers.js';
11
- import { a as applyMixins } from './apply-mixins2.js';
12
12
  import { f as formElements } from './form-elements.js';
13
- import { a as Listbox$1 } from './listbox2.js';
14
13
  import { h as handleEscapeKeyAndStopPropogation } from './index.js';
14
+ import { c as chevronTemplateFactory } from './definition11.js';
15
15
  import { r as ref } from './ref.js';
16
16
  import { s as slotted } from './slotted.js';
17
17
  import { w as when } from './when.js';
18
18
  import { c as classNames } from './class-names.js';
19
19
 
20
- const styles = ":host{position:relative}.base{--_text-field-gutter-end: 44px}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.base.appearance-ghost{--_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(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.base: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}.base: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)}.base:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base: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)}.base:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base: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)}.base:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base: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)}.base:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.icon{inset-inline-end:16px;inset-inline-start:unset}:not(.disabled) .icon{cursor:pointer}.disabled .icon{cursor:not-allowed}.listbox{display:flex;max-height:var(--combobox-height, 408px);flex-direction:column;padding:4px;border-radius:8px;contain:paint;gap:2px;overflow-y:auto}::part(popup-base){inline-size:max-content;min-inline-size:var(--_combobox-fixed-width, 100%)}@supports selector(:has(*)){.fieldset:has(.control:focus-within):after{--focus-stroke-gap-color: transparent;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))}}@supports not selector(:has(*)){.fieldset:focus-within:after{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;position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}}";
20
+ const styles = ".chevron{display:flex;flex-shrink:0;font:var(--vvd-typography-base-extended);transform:rotate(0);transition:transform .2s}:host([aria-expanded=true]) .chevron,:host([open]) .chevron{transform:rotate(180deg)}:host{position:relative}.base{--_text-field-gutter-end: 8px}.base{--_appearance-color-text: var(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-intermediate)}.base.appearance-ghost{--_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(--vvd-color-canvas-text);--_appearance-color-fill: var(--vvd-color-canvas);--_appearance-color-outline: var(--_connotation-color-fierce)}.base: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}.base: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)}.base:where(.disabled,:disabled).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base: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)}.base:where(.readonly):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: var(--vvd-color-neutral-600);--_appearance-color-fill: transparent;--_appearance-color-outline: transparent}.base: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)}.base:where(.error):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-alert-50);--_appearance-color-outline: transparent}.base: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)}.base:where(.success):where(:not(.disabled,:disabled)).appearance-ghost{--_appearance-color-text: notSet;--_appearance-color-fill: var(--vvd-color-success-50);--_appearance-color-outline: transparent}.base:not(.shape-pill) .base{border-radius:var(--_text-field-border-radius)}.base.shape-pill .base{border-radius:var(--_text-field-pill-border-radius)}.base slot[name=icon]{position:absolute;z-index:1;display:inline-block;color:var(--_low-ink-color);font-size:var(--_text-field-icon-size);inset-block-start:50%;inset-inline-start:var(--_text-field-gutter-start);line-height:1;pointer-events:none;transform:translateY(-50%)}.base.has-meta{padding-inline-end:16px}.control{text-overflow:ellipsis;white-space:nowrap}.fieldset .leading-items-wrapper{position:relative;display:flex;flex-shrink:0;align-items:center;gap:8px;padding-inline-end:16px}:not(.disabled) .chevron{cursor:pointer}.disabled .chevron{color:var(--_low-ink-color);cursor:not-allowed}.listbox{display:flex;max-height:var(--combobox-height, 408px);flex-direction:column;padding:4px;border-radius:8px;contain:paint;gap:2px;overflow-y:auto}::part(popup-base){inline-size:max-content;min-inline-size:var(--_combobox-fixed-width, 100%)}@supports selector(:has(*)){.fieldset:has(.control:focus-within):after{--focus-stroke-gap-color: transparent;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))}}@supports not selector(:has(*)){.fieldset:focus-within:after{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;position:absolute;z-index:1;display:block;border-radius:inherit;content:\"\";inset:0;pointer-events:none}}";
21
21
 
22
22
  class _Combobox extends Listbox {
23
23
  }
@@ -476,6 +476,13 @@ let Combobox = class extends FormAssociatedCombobox {
476
476
  slottedOptionsChanged(prev, next) {
477
477
  super.slottedOptionsChanged(prev, next);
478
478
  this.updateValue();
479
+ const scale = this.getAttribute("scale") || this.scale;
480
+ next.forEach((element) => {
481
+ if (scale) {
482
+ element.setAttribute("scale", scale);
483
+ element.scale = scale;
484
+ }
485
+ });
479
486
  }
480
487
  /**
481
488
  * Sets the value and to match the first selected option.
@@ -507,12 +514,21 @@ __decorateClass([
507
514
  __decorateClass([
508
515
  attr
509
516
  ], Combobox.prototype, "appearance", 2);
517
+ __decorateClass([
518
+ attr
519
+ ], Combobox.prototype, "shape", 2);
520
+ __decorateClass([
521
+ attr()
522
+ ], Combobox.prototype, "scale", 2);
510
523
  __decorateClass([
511
524
  attr
512
525
  ], Combobox.prototype, "placement", 2);
513
526
  __decorateClass([
514
527
  attr({ mode: "boolean", attribute: "fixed-dropdown" })
515
528
  ], Combobox.prototype, "fixedDropdown", 2);
529
+ __decorateClass([
530
+ observable
531
+ ], Combobox.prototype, "metaSlottedContent", 2);
516
532
  __decorateClass([
517
533
  observable
518
534
  ], Combobox.prototype, "maxHeight", 2);
@@ -528,12 +544,12 @@ Combobox = __decorateClass([
528
544
  ], Combobox);
529
545
  applyMixins(Combobox, AffixIcon);
530
546
 
531
- function renderLabel() {
532
- return html` <label for="control" class="label">
533
- ${(x) => x.label}
534
- </label>`;
535
- }
536
547
  const getStateClasses = ({
548
+ icon,
549
+ iconSlottedContent,
550
+ metaSlottedContent,
551
+ shape,
552
+ scale,
537
553
  disabled,
538
554
  placeholder,
539
555
  label,
@@ -541,10 +557,19 @@ const getStateClasses = ({
541
557
  }) => classNames(
542
558
  "base",
543
559
  ["disabled", disabled],
560
+ [`shape-${shape}`, Boolean(shape)],
561
+ [`size-${scale}`, Boolean(scale)],
544
562
  ["placeholder", Boolean(placeholder)],
545
563
  [`appearance-${appearance}`, Boolean(appearance)],
546
- ["no-label", !label]
564
+ ["no-label", !label],
565
+ ["has-icon", !!icon || Boolean(iconSlottedContent?.length)],
566
+ ["has-meta", Boolean(metaSlottedContent?.length)]
547
567
  );
568
+ function renderLabel() {
569
+ return html` <label for="control" class="label">
570
+ ${(x) => x.label}
571
+ </label>`;
572
+ }
548
573
  function setFixedDropdownVarWidth(x) {
549
574
  return x.open && x.fixedDropdown ? `--_combobox-fixed-width: ${Math.round(
550
575
  x.getBoundingClientRect().width
@@ -552,28 +577,35 @@ function setFixedDropdownVarWidth(x) {
552
577
  }
553
578
  function renderInput(context) {
554
579
  const affixIconTemplate = affixIconTemplateFactory(context);
580
+ const chevronTemplate = chevronTemplateFactory(context);
555
581
  return html` <div class="${getStateClasses}" ${ref("_anchor")}>
556
582
  ${when((x) => x.label, renderLabel())}
557
583
  <div class="fieldset">
558
- <input
559
- id="control"
560
- autocomplete="off"
561
- class="control"
562
- aria-activedescendant="${(x) => x.open ? x.ariaActiveDescendant : null}"
563
- aria-autocomplete="${(x) => x.autocomplete}"
564
- aria-controls="${(x) => x.listboxId}"
565
- aria-disabled="${(x) => x.ariaDisabled}"
566
- aria-expanded="${(x) => x.open}"
567
- aria-haspopup="listbox"
568
- placeholder="${(x) => x.placeholder}"
569
- role="combobox"
570
- type="text"
571
- ?disabled="${(x) => x.disabled}"
572
- :value="${(x) => x.value}"
573
- @input="${(x, c) => x.inputHandler(c.event)}"
574
- ${ref("control")}
575
- />
576
- ${() => affixIconTemplate("chevron-down-line")}
584
+ ${(x) => affixIconTemplate(x.icon, IconWrapper.Slot)}
585
+ <div class="wrapper">
586
+ <input
587
+ id="control"
588
+ autocomplete="off"
589
+ class="control"
590
+ aria-activedescendant="${(x) => x.open ? x.ariaActiveDescendant : null}"
591
+ aria-autocomplete="${(x) => x.autocomplete}"
592
+ aria-controls="${(x) => x.listboxId}"
593
+ aria-disabled="${(x) => x.ariaDisabled}"
594
+ aria-expanded="${(x) => x.open}"
595
+ aria-haspopup="listbox"
596
+ placeholder="${(x) => x.placeholder}"
597
+ role="combobox"
598
+ type="text"
599
+ ?disabled="${(x) => x.disabled}"
600
+ :value="${(x) => x.value}"
601
+ @input="${(x, c) => x.inputHandler(c.event)}"
602
+ ${ref("control")}
603
+ />
604
+ </div>
605
+ <div class="leading-items-wrapper">
606
+ <slot name="meta" ${slotted("metaSlottedContent")}></slot>
607
+ ${chevronTemplate}
608
+ </div>
577
609
  </div>
578
610
  </div>`;
579
611
  }
@@ -604,7 +636,7 @@ const comboboxTemplate = (context) => {
604
636
  ?disabled="${(x) => x.disabled}"
605
637
  ${ref("listbox")}>
606
638
  <slot ${slotted({
607
- filter: Listbox$1.slottedOptionFilter,
639
+ filter: Listbox.slottedOptionFilter,
608
640
  flatten: true,
609
641
  property: "slottedOptions"
610
642
  })}>
@@ -274,15 +274,16 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
274
274
  * @internal
275
275
  */
276
276
  noTabbingChanged() {
277
- if (this.noTabbing) {
278
- this.setAttribute("tabIndex", "-1");
279
- } else {
280
- this.setAttribute(
281
- "tabIndex",
282
- this.contains(document.activeElement) ? "-1" : "0"
283
- );
277
+ if (this.$fastController.isConnected) {
278
+ this.#setTabIndex();
284
279
  }
285
280
  }
281
+ #setTabIndex() {
282
+ this.setAttribute(
283
+ "tabIndex",
284
+ this.noTabbing || this.contains(document.activeElement) ? "-1" : "0"
285
+ );
286
+ }
286
287
  /**
287
288
  * @internal
288
289
  */
@@ -376,6 +377,7 @@ const _DataGrid = class _DataGrid extends vividElement.VividElement {
376
377
  this.observer = new MutationObserver(this.onChildListChange);
377
378
  this.observer.observe(this, { childList: true });
378
379
  vividElement.DOM.queueUpdate(this.queueRowIndexUpdate);
380
+ this.#setTabIndex();
379
381
  vividElement.Observable.getNotifier(this).subscribe(
380
382
  this.#changeHandler,
381
383
  "columnDefinitions"
@@ -272,15 +272,16 @@ const _DataGrid = class _DataGrid extends VividElement {
272
272
  * @internal
273
273
  */
274
274
  noTabbingChanged() {
275
- if (this.noTabbing) {
276
- this.setAttribute("tabIndex", "-1");
277
- } else {
278
- this.setAttribute(
279
- "tabIndex",
280
- this.contains(document.activeElement) ? "-1" : "0"
281
- );
275
+ if (this.$fastController.isConnected) {
276
+ this.#setTabIndex();
282
277
  }
283
278
  }
279
+ #setTabIndex() {
280
+ this.setAttribute(
281
+ "tabIndex",
282
+ this.noTabbing || this.contains(document.activeElement) ? "-1" : "0"
283
+ );
284
+ }
284
285
  /**
285
286
  * @internal
286
287
  */
@@ -374,6 +375,7 @@ const _DataGrid = class _DataGrid extends VividElement {
374
375
  this.observer = new MutationObserver(this.onChildListChange);
375
376
  this.observer.observe(this, { childList: true });
376
377
  DOM.queueUpdate(this.queueRowIndexUpdate);
378
+ this.#setTabIndex();
377
379
  Observable.getNotifier(this).subscribe(
378
380
  this.#changeHandler,
379
381
  "columnDefinitions"
@@ -18,7 +18,7 @@ var __decorateClass = (decorators, target, key, kind) => {
18
18
  if (result) __defProp(target, key, result);
19
19
  return result;
20
20
  };
21
- const AccordionExpandMode = {
21
+ const AccordionExpandMode$1 = {
22
22
  /**
23
23
  * Designates only a single {@link @microsoft/fast-foundation#(AccordionItem:class) } can be open a time.
24
24
  */
@@ -32,7 +32,7 @@ class Accordion extends vividElement.VividElement {
32
32
  constructor() {
33
33
  super(...arguments);
34
34
  /* eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value */
35
- this.expandmode = AccordionExpandMode.single;
35
+ this.expandmode = AccordionExpandMode$1.single;
36
36
  this.activeItemIndex = 0;
37
37
  this.change = () => {
38
38
  this.$emit("change", this.activeid);
@@ -146,7 +146,7 @@ class Accordion extends vividElement.VividElement {
146
146
  });
147
147
  }
148
148
  isSingleExpandMode() {
149
- return this.expandmode !== AccordionExpandMode.multi;
149
+ return this.expandmode !== AccordionExpandMode$1.multi;
150
150
  }
151
151
  adjust(item, adjustment) {
152
152
  this.focusItem(
@@ -164,7 +164,7 @@ class Accordion extends vividElement.VividElement {
164
164
  }
165
165
  }
166
166
  closeAll() {
167
- if (this.expandmode === AccordionExpandMode.multi) {
167
+ if (this.expandmode === AccordionExpandMode$1.multi) {
168
168
  this.accordionItems.forEach((item) => {
169
169
  item.expanded = false;
170
170
  });
@@ -186,6 +186,10 @@ const AccordionTemplate = vividElement.html`
186
186
  </div>
187
187
  `;
188
188
 
189
+ const AccordionExpandMode = {
190
+ single: "single",
191
+ multi: "multi"
192
+ };
189
193
  const accordionDefinition = vividElement.defineVividComponent(
190
194
  "accordion",
191
195
  Accordion,
@@ -197,5 +201,6 @@ const accordionDefinition = vividElement.defineVividComponent(
197
201
  );
198
202
  const registerAccordion = vividElement.createRegisterFunction(accordionDefinition);
199
203
 
204
+ exports.AccordionExpandMode = AccordionExpandMode;
200
205
  exports.accordionDefinition = accordionDefinition;
201
206
  exports.registerAccordion = registerAccordion;
@@ -16,7 +16,7 @@ var __decorateClass = (decorators, target, key, kind) => {
16
16
  if (result) __defProp(target, key, result);
17
17
  return result;
18
18
  };
19
- const AccordionExpandMode = {
19
+ const AccordionExpandMode$1 = {
20
20
  /**
21
21
  * Designates only a single {@link @microsoft/fast-foundation#(AccordionItem:class) } can be open a time.
22
22
  */
@@ -30,7 +30,7 @@ class Accordion extends VividElement {
30
30
  constructor() {
31
31
  super(...arguments);
32
32
  /* eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value */
33
- this.expandmode = AccordionExpandMode.single;
33
+ this.expandmode = AccordionExpandMode$1.single;
34
34
  this.activeItemIndex = 0;
35
35
  this.change = () => {
36
36
  this.$emit("change", this.activeid);
@@ -144,7 +144,7 @@ class Accordion extends VividElement {
144
144
  });
145
145
  }
146
146
  isSingleExpandMode() {
147
- return this.expandmode !== AccordionExpandMode.multi;
147
+ return this.expandmode !== AccordionExpandMode$1.multi;
148
148
  }
149
149
  adjust(item, adjustment) {
150
150
  this.focusItem(
@@ -162,7 +162,7 @@ class Accordion extends VividElement {
162
162
  }
163
163
  }
164
164
  closeAll() {
165
- if (this.expandmode === AccordionExpandMode.multi) {
165
+ if (this.expandmode === AccordionExpandMode$1.multi) {
166
166
  this.accordionItems.forEach((item) => {
167
167
  item.expanded = false;
168
168
  });
@@ -184,6 +184,10 @@ const AccordionTemplate = html`
184
184
  </div>
185
185
  `;
186
186
 
187
+ const AccordionExpandMode = {
188
+ single: "single",
189
+ multi: "multi"
190
+ };
187
191
  const accordionDefinition = defineVividComponent(
188
192
  "accordion",
189
193
  Accordion,
@@ -195,4 +199,4 @@ const accordionDefinition = defineVividComponent(
195
199
  );
196
200
  const registerAccordion = createRegisterFunction(accordionDefinition);
197
201
 
198
- export { accordionDefinition as a, registerAccordion as r };
202
+ export { AccordionExpandMode as A, accordionDefinition as a, registerAccordion as r };
@@ -40,9 +40,10 @@ __decorateClass([
40
40
  ], Divider.prototype, "orientation");
41
41
 
42
42
  const getClasses = ({ orientation }) => classNames.classNames("base", [`${orientation}`, Boolean(orientation)]);
43
+ const getAriaOrientation = ({ role, orientation }) => role === DividerRole.presentation ? null : orientation;
43
44
  const DividerTemplate = vividElement.html` <span
44
45
  class="${getClasses}"
45
- orientation="${(x) => x.orientation}"
46
+ aria-orientation="${getAriaOrientation}"
46
47
  role="${(x) => x.role}"
47
48
  ></span>`;
48
49
 
@@ -38,9 +38,10 @@ __decorateClass([
38
38
  ], Divider.prototype, "orientation");
39
39
 
40
40
  const getClasses = ({ orientation }) => classNames("base", [`${orientation}`, Boolean(orientation)]);
41
+ const getAriaOrientation = ({ role, orientation }) => role === DividerRole.presentation ? null : orientation;
41
42
  const DividerTemplate = html` <span
42
43
  class="${getClasses}"
43
- orientation="${(x) => x.orientation}"
44
+ aria-orientation="${getAriaOrientation}"
44
45
  role="${(x) => x.role}"
45
46
  ></span>`;
46
47
 
@@ -1,7 +1,7 @@
1
1
  import { i as iconDefinition } from './definition27.js';
2
2
  import { a as attr, h as html, d as defineVividComponent, f as createRegisterFunction } from './vivid-element.js';
3
3
  import { a as applyMixins } from './apply-mixins.js';
4
- import { b as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
4
+ import { A as AffixIconWithTrailing, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
5
5
  import { V as VividFoundationButton } from './button.js';
6
6
  import { r as ref } from './ref.js';
7
7
  import { c as classNames } from './class-names.js';
@@ -3,7 +3,6 @@
3
3
  const definition$1 = require('./definition27.cjs');
4
4
  const definition = require('./definition11.cjs');
5
5
  const vividElement = require('./vivid-element.cjs');
6
- const enums = require('./enums.cjs');
7
6
  const applyMixinsWithObservables = require('./applyMixinsWithObservables.cjs');
8
7
  const formAssociated = require('./form-associated.cjs');
9
8
  const formElements = require('./form-elements.cjs');
@@ -12,7 +11,7 @@ const when = require('./when.cjs');
12
11
  const ref = require('./ref.cjs');
13
12
  const classNames = require('./class-names.cjs');
14
13
 
15
- const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit}.control{display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;--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,.control:active,.control:focus-visible{background-color:var(--vvd-color-cta-100)}.main{pointer-events:none}.dz-preview{display:grid;box-sizing:border-box;padding:8px;border:1px solid var(--vvd-color-neutral-300);border-radius:8px;background-color:var(--file-picker-list-item-background-color, var(--vvd-color-canvas));grid-template-columns:1fr auto;grid-template-rows:auto auto;inline-size:100%}.dz-preview .dz-details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.dz-preview .dz-details .dz-filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.dz-preview .dz-details .dz-size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.dz-preview .dz-error-message{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{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-thumb-color)}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:empty{display:none}";
14
+ const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit}.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,.control:active,.control:focus-visible{background-color:var(--vvd-color-cta-100)}.main{pointer-events:none}.dz-preview{display:grid;box-sizing:border-box;padding:8px;border:1px solid var(--vvd-color-neutral-300);border-radius:8px;background-color:var(--file-picker-list-item-background-color, var(--vvd-color-canvas));grid-template-columns:1fr auto;grid-template-rows:auto auto;inline-size:100%}.dz-preview .dz-details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.dz-preview .dz-details .dz-filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.dz-preview .dz-details .dz-size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.dz-preview .dz-error-message{display:flex;align-items:center;color:var(--vvd-color-alert-600);font:var(--vvd-typography-base-condensed-bold);gap:4px;margin-block-start:4px}.dz-preview:not(.dz-error) .dz-error-message{display:none}.dz-preview.dz-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.dz-preview.dz-error .dz-details .dz-size,.dz-preview.dz-error .dz-progress{display:none}.dz-preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.message{margin-block-start:4px;--_low-ink-color: var(--vvd-color-neutral-600)}.preview-list{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-thumb-color)}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:empty{display:none}";
16
15
 
17
16
  var objectExtend = extend;
18
17
 
@@ -2167,16 +2166,19 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
2167
2166
  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);
2168
2167
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
2169
2168
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
2170
- 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
+ var _dropzone, _FilePicker_instances, syncSingleFileState_fn, _localizeErrorMessage, _localizeFileSizeNumberAndUnits, addRemoveButtonToFilesPreview_fn, chooseFile_fn, updateHiddenFileInput_fn, keepOnlyNewestFile_fn, handleFilesChanged_fn, updateFormValue_fn, setValueToAFakePathLikeNativeInput_fn, formatNumbersInMessage_fn;
2171
2170
  const isFormAssociatedTryingToSetFormValueToFakePath = (value) => typeof value === "string";
2172
- const generateFilePreviewTemplate = (buttonTag, locale) => {
2171
+ const generateFilePreviewTemplate = (buttonTag, iconTag, locale) => {
2173
2172
  return `<div class="dz-preview dz-file-preview">
2174
2173
  <div class="dz-details">
2175
2174
  <div class="dz-filename"><span data-dz-name></span></div>
2176
2175
  <div class="dz-size"><span data-dz-size></span></div>
2177
2176
  </div>
2178
- <div class="dz-error-message"><span data-dz-errormessage></span></div>
2179
- <${buttonTag} class="remove-btn" icon="delete-line" appearance="ghost" size="condensed" aria-label="${locale.filePicker.removeFileLabel}"></${buttonTag}>
2177
+ <div class="dz-error-message">
2178
+ <${iconTag} name="info-line" size="-6"></${iconTag}>
2179
+ <span data-dz-errormessage></span>
2180
+ </div>
2181
+ <${buttonTag} class="remove-btn" icon="delete-line" appearance="ghost-light" size="condensed" aria-label="${locale.filePicker.removeFileLabel}"></${buttonTag}>
2180
2182
  </div>`;
2181
2183
  };
2182
2184
  let FilePicker = class extends FormAssociatedFilePicker {
@@ -2199,6 +2201,10 @@ let FilePicker = class extends FormAssociatedFilePicker {
2199
2201
  * Used internally to hold the tag that button is registered at.
2200
2202
  */
2201
2203
  this.buttonTag = "vwc-button";
2204
+ /**
2205
+ * Used internally to hold the tag that icon is registered at.
2206
+ */
2207
+ this.iconTag = "vwc-icon";
2202
2208
  __privateAdd(this, _localizeErrorMessage, (file, message) => {
2203
2209
  if (file.previewElement) {
2204
2210
  file.previewElement.classList.add("dz-error");
@@ -2289,7 +2295,11 @@ let FilePicker = class extends FormAssociatedFilePicker {
2289
2295
  addRemoveLinks: false,
2290
2296
  previewsContainer: previewList,
2291
2297
  createImageThumbnails: false,
2292
- previewTemplate: generateFilePreviewTemplate(this.buttonTag, this.locale),
2298
+ previewTemplate: generateFilePreviewTemplate(
2299
+ this.buttonTag,
2300
+ this.iconTag,
2301
+ this.locale
2302
+ ),
2293
2303
  dictInvalidFileType: this.invalidFileTypeError || this.locale.filePicker.invalidFileTypeError,
2294
2304
  dictMaxFilesExceeded: this.maxFilesExceededError || this.locale.filePicker.maxFilesExceededError,
2295
2305
  dictFileTooBig: this.fileTooBigError || this.locale.filePicker.fileTooBigError,
@@ -2313,6 +2323,13 @@ let FilePicker = class extends FormAssociatedFilePicker {
2313
2323
  setButtonTag(tag) {
2314
2324
  this.buttonTag = tag;
2315
2325
  }
2326
+ /**
2327
+ * Used internally to set the icon tag.
2328
+ * @internal
2329
+ */
2330
+ setIconTag(tag) {
2331
+ this.iconTag = tag;
2332
+ }
2316
2333
  /**
2317
2334
  * @internal
2318
2335
  */
@@ -2363,17 +2380,6 @@ addRemoveButtonToFilesPreview_fn = function() {
2363
2380
  }
2364
2381
  __privateMethod(this, _FilePicker_instances, handleFilesChanged_fn).call(this);
2365
2382
  });
2366
- __privateMethod(this, _FilePicker_instances, setRemoveButtonConnotationOnError_fn).call(this);
2367
- };
2368
- setRemoveButtonConnotationOnError_fn = function() {
2369
- __privateGet(this, _dropzone).on("error", (file) => {
2370
- if (file.previewElement) {
2371
- const removeButton = file.previewElement.querySelector(
2372
- ".remove-btn"
2373
- );
2374
- removeButton.connotation = enums.Connotation.Alert;
2375
- }
2376
- });
2377
2383
  };
2378
2384
  chooseFile_fn = function() {
2379
2385
  if (__privateGet(this, _dropzone).hiddenFileInput) {
@@ -2458,6 +2464,7 @@ const FilePickerTemplate = (context) => {
2458
2464
  return vividElement.html`
2459
2465
  ${(x) => {
2460
2466
  x.setButtonTag(context.tagFor(definition.Button));
2467
+ x.setIconTag(context.tagFor(definition$1.Icon));
2461
2468
  }}
2462
2469
  <div class="base" aria-label="${(x) => x.label}">
2463
2470
  ${when.when(
@@ -1,7 +1,6 @@
1
- import { i as iconDefinition } from './definition27.js';
1
+ import { I as Icon, i as iconDefinition } from './definition27.js';
2
2
  import { B as Button, b as buttonDefinition } from './definition11.js';
3
3
  import { V as VividElement, a as attr, h as html, d as defineVividComponent, f as createRegisterFunction } from './vivid-element.js';
4
- import { C as Connotation } from './enums.js';
5
4
  import { a as applyMixinsWithObservables } from './applyMixinsWithObservables.js';
6
5
  import { F as FormAssociated } from './form-associated.js';
7
6
  import { e as errorText, f as formElements, a as FormElementHelperText, g as getFeedbackTemplate } from './form-elements.js';
@@ -10,7 +9,7 @@ import { w as when } from './when.js';
10
9
  import { r as ref } from './ref.js';
11
10
  import { c as classNames } from './class-names.js';
12
11
 
13
- const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit}.control{display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;--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,.control:active,.control:focus-visible{background-color:var(--vvd-color-cta-100)}.main{pointer-events:none}.dz-preview{display:grid;box-sizing:border-box;padding:8px;border:1px solid var(--vvd-color-neutral-300);border-radius:8px;background-color:var(--file-picker-list-item-background-color, var(--vvd-color-canvas));grid-template-columns:1fr auto;grid-template-rows:auto auto;inline-size:100%}.dz-preview .dz-details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.dz-preview .dz-details .dz-filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.dz-preview .dz-details .dz-size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.dz-preview .dz-error-message{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{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-thumb-color)}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:empty{display:none}";
12
+ const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit}.control{display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;--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,.control:active,.control:focus-visible{background-color:var(--vvd-color-cta-100)}.main{pointer-events:none}.dz-preview{display:grid;box-sizing:border-box;padding:8px;border:1px solid var(--vvd-color-neutral-300);border-radius:8px;background-color:var(--file-picker-list-item-background-color, var(--vvd-color-canvas));grid-template-columns:1fr auto;grid-template-rows:auto auto;inline-size:100%}.dz-preview .dz-details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.dz-preview .dz-details .dz-filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.dz-preview .dz-details .dz-size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.dz-preview .dz-error-message{display:flex;align-items:center;color:var(--vvd-color-alert-600);font:var(--vvd-typography-base-condensed-bold);gap:4px;margin-block-start:4px}.dz-preview:not(.dz-error) .dz-error-message{display:none}.dz-preview.dz-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.dz-preview.dz-error .dz-details .dz-size,.dz-preview.dz-error .dz-progress{display:none}.dz-preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.message{margin-block-start:4px;--_low-ink-color: var(--vvd-color-neutral-600)}.preview-list{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-thumb-color)}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:empty{display:none}";
14
13
 
15
14
  var objectExtend = extend;
16
15
 
@@ -2165,16 +2164,19 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
2165
2164
  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
2165
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
2167
2166
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
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;
2167
+ var _dropzone, _FilePicker_instances, syncSingleFileState_fn, _localizeErrorMessage, _localizeFileSizeNumberAndUnits, addRemoveButtonToFilesPreview_fn, chooseFile_fn, updateHiddenFileInput_fn, keepOnlyNewestFile_fn, handleFilesChanged_fn, updateFormValue_fn, setValueToAFakePathLikeNativeInput_fn, formatNumbersInMessage_fn;
2169
2168
  const isFormAssociatedTryingToSetFormValueToFakePath = (value) => typeof value === "string";
2170
- const generateFilePreviewTemplate = (buttonTag, locale) => {
2169
+ const generateFilePreviewTemplate = (buttonTag, iconTag, locale) => {
2171
2170
  return `<div class="dz-preview dz-file-preview">
2172
2171
  <div class="dz-details">
2173
2172
  <div class="dz-filename"><span data-dz-name></span></div>
2174
2173
  <div class="dz-size"><span data-dz-size></span></div>
2175
2174
  </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}>
2175
+ <div class="dz-error-message">
2176
+ <${iconTag} name="info-line" size="-6"></${iconTag}>
2177
+ <span data-dz-errormessage></span>
2178
+ </div>
2179
+ <${buttonTag} class="remove-btn" icon="delete-line" appearance="ghost-light" size="condensed" aria-label="${locale.filePicker.removeFileLabel}"></${buttonTag}>
2178
2180
  </div>`;
2179
2181
  };
2180
2182
  let FilePicker = class extends FormAssociatedFilePicker {
@@ -2197,6 +2199,10 @@ let FilePicker = class extends FormAssociatedFilePicker {
2197
2199
  * Used internally to hold the tag that button is registered at.
2198
2200
  */
2199
2201
  this.buttonTag = "vwc-button";
2202
+ /**
2203
+ * Used internally to hold the tag that icon is registered at.
2204
+ */
2205
+ this.iconTag = "vwc-icon";
2200
2206
  __privateAdd(this, _localizeErrorMessage, (file, message) => {
2201
2207
  if (file.previewElement) {
2202
2208
  file.previewElement.classList.add("dz-error");
@@ -2287,7 +2293,11 @@ let FilePicker = class extends FormAssociatedFilePicker {
2287
2293
  addRemoveLinks: false,
2288
2294
  previewsContainer: previewList,
2289
2295
  createImageThumbnails: false,
2290
- previewTemplate: generateFilePreviewTemplate(this.buttonTag, this.locale),
2296
+ previewTemplate: generateFilePreviewTemplate(
2297
+ this.buttonTag,
2298
+ this.iconTag,
2299
+ this.locale
2300
+ ),
2291
2301
  dictInvalidFileType: this.invalidFileTypeError || this.locale.filePicker.invalidFileTypeError,
2292
2302
  dictMaxFilesExceeded: this.maxFilesExceededError || this.locale.filePicker.maxFilesExceededError,
2293
2303
  dictFileTooBig: this.fileTooBigError || this.locale.filePicker.fileTooBigError,
@@ -2311,6 +2321,13 @@ let FilePicker = class extends FormAssociatedFilePicker {
2311
2321
  setButtonTag(tag) {
2312
2322
  this.buttonTag = tag;
2313
2323
  }
2324
+ /**
2325
+ * Used internally to set the icon tag.
2326
+ * @internal
2327
+ */
2328
+ setIconTag(tag) {
2329
+ this.iconTag = tag;
2330
+ }
2314
2331
  /**
2315
2332
  * @internal
2316
2333
  */
@@ -2361,17 +2378,6 @@ addRemoveButtonToFilesPreview_fn = function() {
2361
2378
  }
2362
2379
  __privateMethod(this, _FilePicker_instances, handleFilesChanged_fn).call(this);
2363
2380
  });
2364
- __privateMethod(this, _FilePicker_instances, setRemoveButtonConnotationOnError_fn).call(this);
2365
- };
2366
- setRemoveButtonConnotationOnError_fn = function() {
2367
- __privateGet(this, _dropzone).on("error", (file) => {
2368
- if (file.previewElement) {
2369
- const removeButton = file.previewElement.querySelector(
2370
- ".remove-btn"
2371
- );
2372
- removeButton.connotation = Connotation.Alert;
2373
- }
2374
- });
2375
2381
  };
2376
2382
  chooseFile_fn = function() {
2377
2383
  if (__privateGet(this, _dropzone).hiddenFileInput) {
@@ -2456,6 +2462,7 @@ const FilePickerTemplate = (context) => {
2456
2462
  return html`
2457
2463
  ${(x) => {
2458
2464
  x.setButtonTag(context.tagFor(Button));
2465
+ x.setIconTag(context.tagFor(Icon));
2459
2466
  }}
2460
2467
  <div class="base" aria-label="${(x) => x.label}">
2461
2468
  ${when(
@@ -145,7 +145,7 @@ _has._curry2(function memoizeWith(mFn, fn) {
145
145
  });
146
146
 
147
147
  const ICONS_BASE_URL = "https://icon.resources.vonage.com";
148
- const ICONS_VERSION = "4.6.2";
148
+ const ICONS_VERSION = "4.6.3";
149
149
 
150
150
  const numberConverter = {
151
151
  toView(value) {
@@ -143,7 +143,7 @@ _curry2(function memoizeWith(mFn, fn) {
143
143
  });
144
144
 
145
145
  const ICONS_BASE_URL = "https://icon.resources.vonage.com";
146
- const ICONS_VERSION = "4.6.2";
146
+ const ICONS_VERSION = "4.6.3";
147
147
 
148
148
  const numberConverter = {
149
149
  toView(value) {