@vonage/vivid 5.1.0 → 5.2.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 (102) hide show
  1. package/audio-player/definition.cjs +37 -4
  2. package/audio-player/definition.js +37 -4
  3. package/audio-player/index.cjs +25 -25
  4. package/audio-player/index.js +86 -62
  5. package/bundled/definition13.cjs +2 -2
  6. package/bundled/definition13.js +4 -4
  7. package/bundled/definition19.cjs +18 -15
  8. package/bundled/definition19.js +85 -77
  9. package/bundled/definition6.cjs +6 -6
  10. package/bundled/definition6.js +34 -31
  11. package/bundled/localized.cjs +1 -1
  12. package/bundled/localized.js +2 -1
  13. package/bundled/picker-field.template.cjs +18 -13
  14. package/bundled/picker-field.template.js +44 -36
  15. package/bundled/text-field.cjs +1 -1
  16. package/bundled/text-field.js +1 -1
  17. package/bundled/vivid-element.cjs +1 -1
  18. package/bundled/vivid-element.js +1 -1
  19. package/bundled/with-contextual-help.cjs +1 -1
  20. package/bundled/with-contextual-help.js +17 -7
  21. package/combobox/definition.cjs +12 -5
  22. package/combobox/definition.js +12 -5
  23. package/combobox/index.cjs +15 -11
  24. package/combobox/index.js +83 -76
  25. package/custom-elements.json +95 -3
  26. package/dial-pad/definition.cjs +51 -1
  27. package/dial-pad/definition.js +52 -2
  28. package/dial-pad/index.cjs +21 -18
  29. package/dial-pad/index.js +123 -92
  30. package/file-picker/definition.cjs +14 -5
  31. package/file-picker/definition.js +15 -6
  32. package/file-picker/index.cjs +12 -9
  33. package/file-picker/index.js +102 -92
  34. package/lib/audio-player/audio-player.d.ts +4 -0
  35. package/lib/combobox/combobox.d.ts +483 -66
  36. package/lib/date-picker/date-picker.d.ts +839 -827
  37. package/lib/date-range-picker/date-range-picker.d.ts +580 -574
  38. package/lib/date-time-picker/date-time-picker.d.ts +863 -851
  39. package/lib/dial-pad/dial-pad.template.d.ts +1 -1
  40. package/lib/dial-pad/locale.d.ts +1 -0
  41. package/lib/file-picker/file-picker.d.ts +483 -66
  42. package/lib/menu/menu.d.ts +1 -0
  43. package/lib/number-field/number-field.d.ts +1 -0
  44. package/lib/searchable-select/searchable-select.d.ts +505 -88
  45. package/lib/select/select.d.ts +470 -53
  46. package/lib/text-area/text-area.d.ts +1 -0
  47. package/lib/text-field/text-field.d.ts +1 -0
  48. package/lib/time-picker/time-picker.d.ts +551 -545
  49. package/locales/de-DE.cjs +2 -1
  50. package/locales/de-DE.js +2 -1
  51. package/locales/en-GB.cjs +2 -1
  52. package/locales/en-GB.js +2 -1
  53. package/locales/en-US.cjs +2 -1
  54. package/locales/en-US.js +2 -1
  55. package/locales/ja-JP.cjs +2 -1
  56. package/locales/ja-JP.js +2 -1
  57. package/locales/zh-CN.cjs +2 -1
  58. package/locales/zh-CN.js +2 -1
  59. package/menu/definition.cjs +6 -2
  60. package/menu/definition.js +7 -3
  61. package/number-field/definition.cjs +2 -2
  62. package/number-field/definition.js +3 -3
  63. package/number-field/index.cjs +9 -9
  64. package/number-field/index.js +28 -27
  65. package/package.json +1 -1
  66. package/searchable-select/definition.cjs +27 -18
  67. package/searchable-select/definition.js +28 -19
  68. package/searchable-select/index.cjs +28 -25
  69. package/searchable-select/index.js +150 -141
  70. package/select/definition.cjs +14 -6
  71. package/select/definition.js +14 -6
  72. package/shared/patterns/form-elements/index.d.ts +1 -0
  73. package/shared/patterns/form-elements/with-contextual-help.d.ts +1 -0
  74. package/shared/picker-field/mixins/calendar-picker.d.ts +442 -439
  75. package/shared/picker-field/mixins/calendar-picker.template.d.ts +442 -439
  76. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +584 -578
  77. package/shared/picker-field/mixins/single-date-picker.d.ts +696 -687
  78. package/shared/picker-field/mixins/single-value-picker.d.ts +441 -438
  79. package/shared/picker-field/mixins/time-selection-picker.d.ts +562 -556
  80. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +551 -545
  81. package/shared/picker-field/picker-field.d.ts +483 -66
  82. package/styles/core/all.css +1 -1
  83. package/styles/core/theme.css +1 -1
  84. package/styles/core/typography.css +1 -1
  85. package/styles/tokens/theme-dark.css +4 -4
  86. package/styles/tokens/theme-light.css +4 -4
  87. package/styles/tokens/vivid-2-compat.css +1 -1
  88. package/text-area/definition.cjs +1 -1
  89. package/text-area/definition.js +1 -1
  90. package/text-area/index.cjs +1 -1
  91. package/text-area/index.js +1 -1
  92. package/text-field/definition.cjs +1 -1
  93. package/text-field/definition.js +1 -1
  94. package/unbundled/picker-field.template.cjs +11 -3
  95. package/unbundled/picker-field.template.js +11 -3
  96. package/unbundled/text-field.cjs +1 -1
  97. package/unbundled/text-field.js +1 -1
  98. package/unbundled/vivid-element.cjs +1 -1
  99. package/unbundled/vivid-element.js +1 -1
  100. package/unbundled/with-contextual-help.cjs +11 -0
  101. package/unbundled/with-contextual-help.js +11 -0
  102. package/vivid.api.json +30 -0
@@ -2,15 +2,16 @@ import { VwcIconElement as Icon, iconDefinition } from '../icon/definition.js';
2
2
  import { B as Button, b as buttonDefinition } from '../unbundled/definition.js';
3
3
  import { V as VividElement, d as defineVividComponent, c as createRegisterFunction } from '../unbundled/vivid-element.js';
4
4
  import { a as WithFeedback, f as feedbackMessageDefinition } from '../unbundled/mixins.js';
5
- import { defaultExecutionContext, Observable, attr, observable, volatile, when, ref, repeat, html } from '@microsoft/fast-element';
5
+ import { defaultExecutionContext, Observable, attr, observable, volatile, when, slotted, ref, repeat, html } from '@microsoft/fast-element';
6
6
  import { D as DelegatesAria, d as delegateAria } from '../unbundled/delegates-aria.js';
7
7
  import { F as FormAssociated } from '../unbundled/form-associated.js';
8
+ import { W as WithContextualHelp } from '../unbundled/with-contextual-help.js';
8
9
  import { W as WithErrorText } from '../unbundled/with-error-text.js';
9
10
  import { F as FormElement } from '../unbundled/form-element.js';
10
11
  import { L as Localized } from '../unbundled/localized.js';
11
12
  import { classNames } from '@microsoft/fast-web-utilities';
12
13
 
13
- const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit;--_low-ink-color: var(--vvd-color-neutral-600)}.control-wrapper{display:flex;flex-direction:column;block-size:inherit;gap:4px;max-block-size:inherit}.control{position:relative;display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control .upload-text{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-600);isolation:isolate;pointer-events:none;text-align:center;transition:all .3s ease}@media (hover: hover){.control:hover .upload-text{color:var(--vvd-color-neutral-800)}}.control.drag-hover .upload-text{color:var(--vvd-color-neutral-800)}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}.control:active,.control:focus-visible{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}@media (hover: hover){.control:hover{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}}.control:active{box-shadow:0 1px 4px #0000001a;transform:translateY(0)}.control.drag-hover{border-color:var(--vvd-color-cta-200);background-color:var(--vvd-color-cta-200);outline:2px dashed var(--vvd-color-cta-500);transform:scale(1.02)}.upload-icon{animation:subtle-pulse 2s ease-in-out infinite;color:var(--vvd-color-cta-600);pointer-events:none;transition:all .3s ease}@media (hover: hover){.control:hover .upload-icon{animation:none;color:var(--vvd-color-cta-700);transform:scale(1.1)}}.control:active .upload-icon{transform:scale(1.05)}.control.drag-hover .upload-icon{animation:none;color:var(--vvd-color-neutral-800);transform:scale(1.15)}@keyframes subtle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.main{pointer-events:none}.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%}.preview .details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.preview .details .filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.preview .details .size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.preview .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}.preview:not(.has-error) .error-message{display:none}.preview.has-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.preview.has-error .size{display:none}.preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.preview-list{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:not(:has(.preview)){display:none}.hidden-input{position:absolute;top:0;left:0;width:0;height:0;visibility:hidden}";
14
+ const styles = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit;--_low-ink-color: var(--vvd-color-neutral-600)}.control-wrapper{display:flex;flex-direction:column;block-size:inherit;gap:4px;max-block-size:inherit}.control{position:relative;display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control .upload-text{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-600);isolation:isolate;pointer-events:none;text-align:center;transition:all .3s ease}@media (hover: hover){.control:hover .upload-text{color:var(--vvd-color-neutral-800)}}.control.drag-hover .upload-text{color:var(--vvd-color-neutral-800)}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}.control:active,.control:focus-visible{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}@media (hover: hover){.control:hover{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}}.control:active{box-shadow:0 1px 4px #0000001a;transform:translateY(0)}.control.drag-hover{border-color:var(--vvd-color-cta-200);background-color:var(--vvd-color-cta-200);outline:2px dashed var(--vvd-color-cta-500);transform:scale(1.02)}.upload-icon{animation:subtle-pulse 2s ease-in-out infinite;color:var(--vvd-color-cta-600);pointer-events:none;transition:all .3s ease}@media (hover: hover){.control:hover .upload-icon{animation:none;color:var(--vvd-color-cta-700);transform:scale(1.1)}}.control:active .upload-icon{transform:scale(1.05)}.control.drag-hover .upload-icon{animation:none;color:var(--vvd-color-neutral-800);transform:scale(1.15)}@keyframes subtle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.main{pointer-events:none}.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%}.preview .details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.preview .details .filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.preview .details .size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.preview .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}.preview:not(.has-error) .error-message{display:none}.preview.has-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.preview.has-error .size{display:none}.preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.preview-list{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:not(:has(.preview)){display:none}.hidden-input{position:absolute;top:0;left:0;width:0;height:0;visibility:hidden}.label-wrapper{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--label-wrapper-gap, 8px)}.label-wrapper[hidden]{display:none}.label-wrapper .label{flex:1 1 auto}.label-wrapper slot[name=contextual-help]::slotted([data-vvd-component=contextual-help]){margin-inline-start:auto}";
14
15
 
15
16
  async function filesFromDataTransfer(dataTransfer) {
16
17
  const browserSupportFolderDrop = dataTransfer.items?.[0]?.webkitGetAsEntry != null;
@@ -99,9 +100,11 @@ var __decorateClass = (decorators, target, key, kind) => {
99
100
  if (kind && result) __defProp(target, key, result);
100
101
  return result;
101
102
  };
102
- class FilePicker extends WithFeedback(
103
- WithErrorText(
104
- FormElement(DelegatesAria(Localized(FormAssociated(VividElement))))
103
+ class FilePicker extends WithContextualHelp(
104
+ WithFeedback(
105
+ WithErrorText(
106
+ FormElement(DelegatesAria(Localized(FormAssociated(VividElement))))
107
+ )
105
108
  )
106
109
  ) {
107
110
  constructor() {
@@ -427,7 +430,13 @@ const FilePickerTemplate = (context) => {
427
430
  const buttonTag = context.tagFor(Button);
428
431
  return html`
429
432
  <div class="base">
430
- ${when((x) => x.label, html`<label>${(x) => x.label}</label>`)}
433
+ <div class="label-wrapper" ?hidden=${(x) => !x.label && !x._hasContextualHelp}>
434
+ ${when(
435
+ (x) => x.label,
436
+ html`<label class="label">${(x) => x.label}</label>`
437
+ )}
438
+ <slot name="contextual-help" ${slotted("_contextualHelpSlottedContent")}></slot>
439
+ </div>
431
440
  <div class="control-wrapper">
432
441
  <button
433
442
  type="button"
@@ -1,12 +1,15 @@
1
- "use strict";const u=require("../bundled/definition2.cjs"),h=require("../bundled/definition3.cjs"),l=require("../bundled/vivid-element.cjs"),f=require("../bundled/mixins.cjs"),m=require("../bundled/delegates-aria.cjs"),x=require("../bundled/form-associated.cjs"),F=require("../bundled/with-error-text.cjs"),y=require("../bundled/form-element.cjs"),k=require("../bundled/localized.cjs"),w=require("../bundled/when.cjs"),v=require("../bundled/ref.cjs"),b=require("../bundled/class-names.cjs"),_=require("../bundled/repeat.cjs"),E=":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit;--_low-ink-color: var(--vvd-color-neutral-600)}.control-wrapper{display:flex;flex-direction:column;block-size:inherit;gap:4px;max-block-size:inherit}.control{position:relative;display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control .upload-text{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-600);isolation:isolate;pointer-events:none;text-align:center;transition:all .3s ease}@media (hover: hover){.control:hover .upload-text{color:var(--vvd-color-neutral-800)}}.control.drag-hover .upload-text{color:var(--vvd-color-neutral-800)}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}.control:active,.control:focus-visible{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}@media (hover: hover){.control:hover{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}}.control:active{box-shadow:0 1px 4px #0000001a;transform:translateY(0)}.control.drag-hover{border-color:var(--vvd-color-cta-200);background-color:var(--vvd-color-cta-200);outline:2px dashed var(--vvd-color-cta-500);transform:scale(1.02)}.upload-icon{animation:subtle-pulse 2s ease-in-out infinite;color:var(--vvd-color-cta-600);pointer-events:none;transition:all .3s ease}@media (hover: hover){.control:hover .upload-icon{animation:none;color:var(--vvd-color-cta-700);transform:scale(1.1)}}.control:active .upload-icon{transform:scale(1.05)}.control.drag-hover .upload-icon{animation:none;color:var(--vvd-color-neutral-800);transform:scale(1.15)}@keyframes subtle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.main{pointer-events:none}.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%}.preview .details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.preview .details .filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.preview .details .size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.preview .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}.preview:not(.has-error) .error-message{display:none}.preview.has-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.preview.has-error .size{display:none}.preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.preview-list{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:not(:has(.preview)){display:none}.hidden-input{position:absolute;top:0;left:0;width:0;height:0;visibility:hidden}";async function $(a){return a.items?.[0]?.webkitGetAsEntry!=null?await z(a.items):Array.from(a.files)}async function z(a){const r=[];for(const t of a){const e=t.getAsFile();if(e)r.push(Promise.resolve([e]));else{const o=t.webkitGetAsEntry();o&&r.push(g(o,!1))}}return(await Promise.all(r)).flat()}const g=(a,r)=>{const t=o=>new Promise((i,c)=>{o.file(d=>{r&&d.name.substring(0,1)==="."?i([]):i([d])},c)}),e=a.isFile?t(a):a.isDirectory?C(a):Promise.resolve([]);return e.catch(()=>null),e},C=async a=>new Promise((r,t)=>{const e=[],o=a.createReader(),i=()=>{o.readEntries(c=>{for(const d of c)e.push(g(d,!0));c.length?i():r(Promise.all(e).then(d=>d.flat()))},t)};i()});function D(a,r){if(!r)return!0;const t=r.split(","),e=i=>/\/\*$/.test(i),o=i=>i.replace(/\/.*$/,"");for(let i of t)if(i=i.trim(),i.charAt(0)==="."){if(a.name.toLowerCase().endsWith(i.toLowerCase()))return!0}else if(e(i)){if(o(a.type)===o(i))return!0}else if(a.type===i)return!0;return!1}var T=Object.defineProperty,P=Object.getOwnPropertyDescriptor,n=(a,r,t,e)=>{for(var o=e>1?void 0:e?P(r,t):r,i=a.length-1,c;i>=0;i--)(c=a[i])&&(o=(e?c(r,t,o):c(o))||o);return e&&o&&T(r,t,o),o};class s extends f.WithFeedback(F.WithErrorText(y.FormElement(m.DelegatesAria(k.Localized(x.FormAssociated(l.VividElement)))))){constructor(){super(...arguments),this.singleFile=!1,this.maxFileSize=256,this.valueChanged=(r,t)=>{super.valueChanged(r,t),t===""&&this.files.length&&this.removeAllFiles()},this.proxy=document.createElement("input"),this.setFormValue=(r,t)=>{typeof r!="string"&&super.setFormValue(r,t)},this._customValidationError=null,this.#e={handleChange:()=>{this._customValidationError=this.#r.observe(this,l.defaultExecutionContext)}},this._dragHover=!1,this._allFiles=[]}nameChanged(r,t){super.nameChanged(r,t),this.#t()}#t(){const r=this.files;if(!this.name)this.setFormValue(null);else{const t=new FormData;for(const e of r)t.append(this.name,e);this.setFormValue(t)}this.#i()}#i(){this.value=this.files.length>0?`C:\\fakepath\\${this.files[0].name}`:""}validate(){super.validate(this.control)}formResetCallback(){this.removeAllFiles(),super.formResetCallback()}#a(){return this.rejectedFiles.length>0?this.locale.filePicker.invalidFilesError:null}_customValidationErrorChanged(){this.proxy&&this.proxy.setCustomValidity(this._customValidationError??""),this.validate()}#e;#r;#l(){this.#r=l.Observable.binding(()=>this.#a(),this.#e,!0),this.#e.handleChange()}#s(){this.#r.disconnect()}connectedCallback(){super.connectedCallback(),this.#l()}disconnectedCallback(){super.disconnectedCallback(),this.#s()}_onDragEnter(){return this._dragHover=!0,!0}_onDragOver(r){if(!r.dataTransfer)return!0;const t=r.dataTransfer.effectAllowed;return r.dataTransfer.dropEffect=t==="move"||t==="linkMove"?"move":"copy",!1}_onDragLeave(r){return r.currentTarget===r.target&&(this._dragHover=!1),!0}_onDrop(r){return this._dragHover=!1,r.dataTransfer?($(r.dataTransfer).then(t=>this.#o(t)).catch(t=>{console.error(t)}),!1):!0}_onDragEnd(){return this._dragHover=!1,!0}_onControlClick(){this._hiddenInput.click()}_onRemoveFileClick(r){this._allFiles=this._allFiles.filter(t=>t!==r),this.$emit("change")}_allFilesChanged(){this.#t()}#o(r){this.singleFile?r.length>0&&(this._allFiles=[r[r.length-1]]):this._allFiles=[...this._allFiles,...r],this.$emit("change")}removeAllFiles(){this._allFiles=[]}get _validatedFiles(){const r=(o,i)=>this.maxFileSize&&o.size>this.maxFileSize*1024*1024?(this.fileTooBigError||this.locale.filePicker.fileTooBigError).replace("{{filesize}}",this._formatNumber(Math.round(o.size/1024/10.24)/100)).replace("{{maxFilesize}}",this._formatNumber(this.maxFileSize)):D(o,this.accept)?typeof this.maxFiles=="number"&&i>=this.maxFiles?(this.maxFilesExceededError||this.locale.filePicker.maxFilesExceededError).replace("{{maxFiles}}",String(this.maxFiles)):null:this.invalidFileTypeError||this.locale.filePicker.invalidFileTypeError,t=[];let e=0;for(const o of this._allFiles){const i={file:o,validationError:r(o,e)};t.push(i),i.validationError||e++}return t}get files(){return this._validatedFiles.filter(r=>!r.validationError).map(r=>r.file)}get rejectedFiles(){return this._validatedFiles.filter(r=>!!r.validationError).map(r=>r.file)}_onHiddenInputChange(r){this.#o(this._hiddenInput.files),this._hiddenInput.value="",r.stopPropagation()}_formatNumber(r){const t=String(r);return this.locale.common.useCommaAsDecimalSeparator?t.replace(".",","):t}}n([l.attr({attribute:"single-file",mode:"boolean"})],s.prototype,"singleFile",2);n([l.attr({attribute:"max-files"})],s.prototype,"maxFiles",2);n([l.attr({mode:"fromView",attribute:"max-file-size"})],s.prototype,"maxFileSize",2);n([l.attr],s.prototype,"accept",2);n([l.attr],s.prototype,"size",2);n([l.attr({attribute:"invalid-file-type-error"})],s.prototype,"invalidFileTypeError",2);n([l.attr({attribute:"max-files-exceeded-error"})],s.prototype,"maxFilesExceededError",2);n([l.attr({attribute:"file-too-big-error"})],s.prototype,"fileTooBigError",2);n([l.observable],s.prototype,"_customValidationError",2);n([l.observable],s.prototype,"_dragHover",2);n([l.observable],s.prototype,"_allFiles",2);n([l.volatile],s.prototype,"_validatedFiles",1);const p=1e3,V={tb:"TB",gb:"GB",mb:"MB",kb:"KB",b:"b"},A=(a,r)=>{let t=0,e="b";if(r>0){const o=["tb","gb","mb","kb","b"];for(let i=0;i<o.length;i++){const c=o[i],d=Math.pow(p,4-i)/10;if(r>=d){t=r/Math.pow(p,4-i),e=c;break}}t=Math.round(10*t)/10}return l.html`<strong>${a._formatNumber(t)}</strong>
2
- ${V[e]}`},q=({size:a,_dragHover:r})=>b.classNames("control",[`size-${a}`,!!a],["drag-hover",r]),S=a=>{const r=a.tagFor(u.Icon),t=a.tagFor(h.Button);return l.html`
1
+ "use strict";const u=require("../bundled/definition2.cjs"),h=require("../bundled/definition3.cjs"),l=require("../bundled/vivid-element.cjs"),f=require("../bundled/mixins.cjs"),m=require("../bundled/delegates-aria.cjs"),x=require("../bundled/form-associated.cjs"),F=require("../bundled/with-contextual-help.cjs"),w=require("../bundled/with-error-text.cjs"),y=require("../bundled/form-element.cjs"),k=require("../bundled/localized.cjs"),_=require("../bundled/when.cjs"),E=require("../bundled/slotted.cjs"),p=require("../bundled/ref.cjs"),b=require("../bundled/class-names.cjs"),C=require("../bundled/repeat.cjs"),$=":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit;--_low-ink-color: var(--vvd-color-neutral-600)}.control-wrapper{display:flex;flex-direction:column;block-size:inherit;gap:4px;max-block-size:inherit}.control{position:relative;display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control .upload-text{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-600);isolation:isolate;pointer-events:none;text-align:center;transition:all .3s ease}@media (hover: hover){.control:hover .upload-text{color:var(--vvd-color-neutral-800)}}.control.drag-hover .upload-text{color:var(--vvd-color-neutral-800)}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}.control:active,.control:focus-visible{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}@media (hover: hover){.control:hover{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}}.control:active{box-shadow:0 1px 4px #0000001a;transform:translateY(0)}.control.drag-hover{border-color:var(--vvd-color-cta-200);background-color:var(--vvd-color-cta-200);outline:2px dashed var(--vvd-color-cta-500);transform:scale(1.02)}.upload-icon{animation:subtle-pulse 2s ease-in-out infinite;color:var(--vvd-color-cta-600);pointer-events:none;transition:all .3s ease}@media (hover: hover){.control:hover .upload-icon{animation:none;color:var(--vvd-color-cta-700);transform:scale(1.1)}}.control:active .upload-icon{transform:scale(1.05)}.control.drag-hover .upload-icon{animation:none;color:var(--vvd-color-neutral-800);transform:scale(1.15)}@keyframes subtle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.main{pointer-events:none}.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%}.preview .details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.preview .details .filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.preview .details .size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.preview .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}.preview:not(.has-error) .error-message{display:none}.preview.has-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.preview.has-error .size{display:none}.preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.preview-list{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:not(:has(.preview)){display:none}.hidden-input{position:absolute;top:0;left:0;width:0;height:0;visibility:hidden}.label-wrapper{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--label-wrapper-gap, 8px)}.label-wrapper[hidden]{display:none}.label-wrapper .label{flex:1 1 auto}.label-wrapper slot[name=contextual-help]::slotted([data-vvd-component=contextual-help]){margin-inline-start:auto}";async function z(a){return a.items?.[0]?.webkitGetAsEntry!=null?await D(a.items):Array.from(a.files)}async function D(a){const r=[];for(const t of a){const e=t.getAsFile();if(e)r.push(Promise.resolve([e]));else{const o=t.webkitGetAsEntry();o&&r.push(g(o,!1))}}return(await Promise.all(r)).flat()}const g=(a,r)=>{const t=o=>new Promise((i,c)=>{o.file(d=>{r&&d.name.substring(0,1)==="."?i([]):i([d])},c)}),e=a.isFile?t(a):a.isDirectory?T(a):Promise.resolve([]);return e.catch(()=>null),e},T=async a=>new Promise((r,t)=>{const e=[],o=a.createReader(),i=()=>{o.readEntries(c=>{for(const d of c)e.push(g(d,!0));c.length?i():r(Promise.all(e).then(d=>d.flat()))},t)};i()});function P(a,r){if(!r)return!0;const t=r.split(","),e=i=>/\/\*$/.test(i),o=i=>i.replace(/\/.*$/,"");for(let i of t)if(i=i.trim(),i.charAt(0)==="."){if(a.name.toLowerCase().endsWith(i.toLowerCase()))return!0}else if(e(i)){if(o(a.type)===o(i))return!0}else if(a.type===i)return!0;return!1}var V=Object.defineProperty,A=Object.getOwnPropertyDescriptor,n=(a,r,t,e)=>{for(var o=e>1?void 0:e?A(r,t):r,i=a.length-1,c;i>=0;i--)(c=a[i])&&(o=(e?c(r,t,o):c(o))||o);return e&&o&&V(r,t,o),o};class s extends F.WithContextualHelp(f.WithFeedback(w.WithErrorText(y.FormElement(m.DelegatesAria(k.Localized(x.FormAssociated(l.VividElement))))))){constructor(){super(...arguments),this.singleFile=!1,this.maxFileSize=256,this.valueChanged=(r,t)=>{super.valueChanged(r,t),t===""&&this.files.length&&this.removeAllFiles()},this.proxy=document.createElement("input"),this.setFormValue=(r,t)=>{typeof r!="string"&&super.setFormValue(r,t)},this._customValidationError=null,this.#e={handleChange:()=>{this._customValidationError=this.#r.observe(this,l.defaultExecutionContext)}},this._dragHover=!1,this._allFiles=[]}nameChanged(r,t){super.nameChanged(r,t),this.#t()}#t(){const r=this.files;if(!this.name)this.setFormValue(null);else{const t=new FormData;for(const e of r)t.append(this.name,e);this.setFormValue(t)}this.#i()}#i(){this.value=this.files.length>0?`C:\\fakepath\\${this.files[0].name}`:""}validate(){super.validate(this.control)}formResetCallback(){this.removeAllFiles(),super.formResetCallback()}#a(){return this.rejectedFiles.length>0?this.locale.filePicker.invalidFilesError:null}_customValidationErrorChanged(){this.proxy&&this.proxy.setCustomValidity(this._customValidationError??""),this.validate()}#e;#r;#l(){this.#r=l.Observable.binding(()=>this.#a(),this.#e,!0),this.#e.handleChange()}#s(){this.#r.disconnect()}connectedCallback(){super.connectedCallback(),this.#l()}disconnectedCallback(){super.disconnectedCallback(),this.#s()}_onDragEnter(){return this._dragHover=!0,!0}_onDragOver(r){if(!r.dataTransfer)return!0;const t=r.dataTransfer.effectAllowed;return r.dataTransfer.dropEffect=t==="move"||t==="linkMove"?"move":"copy",!1}_onDragLeave(r){return r.currentTarget===r.target&&(this._dragHover=!1),!0}_onDrop(r){return this._dragHover=!1,r.dataTransfer?(z(r.dataTransfer).then(t=>this.#o(t)).catch(t=>{console.error(t)}),!1):!0}_onDragEnd(){return this._dragHover=!1,!0}_onControlClick(){this._hiddenInput.click()}_onRemoveFileClick(r){this._allFiles=this._allFiles.filter(t=>t!==r),this.$emit("change")}_allFilesChanged(){this.#t()}#o(r){this.singleFile?r.length>0&&(this._allFiles=[r[r.length-1]]):this._allFiles=[...this._allFiles,...r],this.$emit("change")}removeAllFiles(){this._allFiles=[]}get _validatedFiles(){const r=(o,i)=>this.maxFileSize&&o.size>this.maxFileSize*1024*1024?(this.fileTooBigError||this.locale.filePicker.fileTooBigError).replace("{{filesize}}",this._formatNumber(Math.round(o.size/1024/10.24)/100)).replace("{{maxFilesize}}",this._formatNumber(this.maxFileSize)):P(o,this.accept)?typeof this.maxFiles=="number"&&i>=this.maxFiles?(this.maxFilesExceededError||this.locale.filePicker.maxFilesExceededError).replace("{{maxFiles}}",String(this.maxFiles)):null:this.invalidFileTypeError||this.locale.filePicker.invalidFileTypeError,t=[];let e=0;for(const o of this._allFiles){const i={file:o,validationError:r(o,e)};t.push(i),i.validationError||e++}return t}get files(){return this._validatedFiles.filter(r=>!r.validationError).map(r=>r.file)}get rejectedFiles(){return this._validatedFiles.filter(r=>!!r.validationError).map(r=>r.file)}_onHiddenInputChange(r){this.#o(this._hiddenInput.files),this._hiddenInput.value="",r.stopPropagation()}_formatNumber(r){const t=String(r);return this.locale.common.useCommaAsDecimalSeparator?t.replace(".",","):t}}n([l.attr({attribute:"single-file",mode:"boolean"})],s.prototype,"singleFile",2);n([l.attr({attribute:"max-files"})],s.prototype,"maxFiles",2);n([l.attr({mode:"fromView",attribute:"max-file-size"})],s.prototype,"maxFileSize",2);n([l.attr],s.prototype,"accept",2);n([l.attr],s.prototype,"size",2);n([l.attr({attribute:"invalid-file-type-error"})],s.prototype,"invalidFileTypeError",2);n([l.attr({attribute:"max-files-exceeded-error"})],s.prototype,"maxFilesExceededError",2);n([l.attr({attribute:"file-too-big-error"})],s.prototype,"fileTooBigError",2);n([l.observable],s.prototype,"_customValidationError",2);n([l.observable],s.prototype,"_dragHover",2);n([l.observable],s.prototype,"_allFiles",2);n([l.volatile],s.prototype,"_validatedFiles",1);const v=1e3,q={tb:"TB",gb:"GB",mb:"MB",kb:"KB",b:"b"},S=(a,r)=>{let t=0,e="b";if(r>0){const o=["tb","gb","mb","kb","b"];for(let i=0;i<o.length;i++){const c=o[i],d=Math.pow(v,4-i)/10;if(r>=d){t=r/Math.pow(v,4-i),e=c;break}}t=Math.round(10*t)/10}return l.html`<strong>${a._formatNumber(t)}</strong>
2
+ ${q[e]}`},H=({size:a,_dragHover:r})=>b.classNames("control",[`size-${a}`,!!a],["drag-hover",r]),B=a=>{const r=a.tagFor(u.Icon),t=a.tagFor(h.Button);return l.html`
3
3
  <div class="base">
4
- ${w.when(e=>e.label,l.html`<label>${e=>e.label}</label>`)}
4
+ <div class="label-wrapper" ?hidden=${e=>!e.label&&!e._hasContextualHelp}>
5
+ ${_.when(e=>e.label,l.html`<label class="label">${e=>e.label}</label>`)}
6
+ <slot name="contextual-help" ${E.slotted("_contextualHelpSlottedContent")}></slot>
7
+ </div>
5
8
  <div class="control-wrapper">
6
9
  <button
7
10
  type="button"
8
- ${v.ref("control")}
9
- class="${q}"
11
+ ${p.ref("control")}
12
+ class="${H}"
10
13
  @click="${e=>e._onControlClick()}"
11
14
  @keydown"${()=>!1}"
12
15
  @dragenter="${e=>e._onDragEnter()}"
@@ -28,11 +31,11 @@
28
31
  ${e=>e._getFeedbackTemplate(a)}
29
32
  </div>
30
33
  <div class="preview-list">
31
- ${_.repeat(e=>e._validatedFiles,l.html`
34
+ ${C.repeat(e=>e._validatedFiles,l.html`
32
35
  <div class="${e=>b.classNames("preview",["has-error",!!e.validationError])}">
33
36
  <div class="details">
34
37
  <div class="filename">${e=>e.file.name}</div>
35
- <div class="size">${(e,o)=>A(o.parent,e.file.size)}</div>
38
+ <div class="size">${(e,o)=>S(o.parent,e.file.size)}</div>
36
39
  </div>
37
40
  <div class="error-message">
38
41
  <${r} name="info-line" size="-6"></${r}>
@@ -46,7 +49,7 @@
46
49
  </div>
47
50
  </div>
48
51
  <input
49
- ${v.ref("_hiddenInput")}
52
+ ${p.ref("_hiddenInput")}
50
53
  class="hidden-input"
51
54
  aria-hidden="true"
52
55
  type="file"
@@ -55,4 +58,4 @@
55
58
  tabindex="-1"
56
59
  @change="${(e,o)=>e._onHiddenInputChange(o.event)}"
57
60
  />
58
- `},B=l.defineVividComponent("file-picker",s,S,[u.iconDefinition,h.buttonDefinition,f.feedbackMessageDefinition],{styles:E,shadowOptions:{delegatesFocus:!0}}),O=l.createRegisterFunction(B);O();
61
+ `},O=l.defineVividComponent("file-picker",s,B,[u.iconDefinition,h.buttonDefinition,f.feedbackMessageDefinition],{styles:$,shadowOptions:{delegatesFocus:!0}}),I=l.createRegisterFunction(O);I();
@@ -1,85 +1,89 @@
1
1
  import { I as b, i as g } from "../bundled/definition2.js";
2
2
  import { B as x, b as F } from "../bundled/definition3.js";
3
- import { V as y, b as k, O as w, a as d, o as v, v as _, h as p, c as E, d as $ } from "../bundled/vivid-element.js";
4
- import { W as C, f as z } from "../bundled/mixins.js";
3
+ import { V as y, b as w, O as k, a as d, o as v, v as _, h as p, c as E, d as C } from "../bundled/vivid-element.js";
4
+ import { W as $, f as z } from "../bundled/mixins.js";
5
5
  import { D, d as P } from "../bundled/delegates-aria.js";
6
6
  import { F as T } from "../bundled/form-associated.js";
7
- import { W as V } from "../bundled/with-error-text.js";
8
- import { F as A } from "../bundled/form-element.js";
7
+ import { W as V } from "../bundled/with-contextual-help.js";
8
+ import { W as A } from "../bundled/with-error-text.js";
9
+ import { F as S } from "../bundled/form-element.js";
9
10
  import { L as B } from "../bundled/localized.js";
10
- import { w as S } from "../bundled/when.js";
11
+ import { w as H } from "../bundled/when.js";
12
+ import { s as O } from "../bundled/slotted.js";
11
13
  import { r as u } from "../bundled/ref.js";
12
- import { c as m } from "../bundled/class-names.js";
13
- import { r as O } from "../bundled/repeat.js";
14
- const I = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit;--_low-ink-color: var(--vvd-color-neutral-600)}.control-wrapper{display:flex;flex-direction:column;block-size:inherit;gap:4px;max-block-size:inherit}.control{position:relative;display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control .upload-text{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-600);isolation:isolate;pointer-events:none;text-align:center;transition:all .3s ease}@media (hover: hover){.control:hover .upload-text{color:var(--vvd-color-neutral-800)}}.control.drag-hover .upload-text{color:var(--vvd-color-neutral-800)}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}.control:active,.control:focus-visible{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}@media (hover: hover){.control:hover{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}}.control:active{box-shadow:0 1px 4px #0000001a;transform:translateY(0)}.control.drag-hover{border-color:var(--vvd-color-cta-200);background-color:var(--vvd-color-cta-200);outline:2px dashed var(--vvd-color-cta-500);transform:scale(1.02)}.upload-icon{animation:subtle-pulse 2s ease-in-out infinite;color:var(--vvd-color-cta-600);pointer-events:none;transition:all .3s ease}@media (hover: hover){.control:hover .upload-icon{animation:none;color:var(--vvd-color-cta-700);transform:scale(1.1)}}.control:active .upload-icon{transform:scale(1.05)}.control.drag-hover .upload-icon{animation:none;color:var(--vvd-color-neutral-800);transform:scale(1.15)}@keyframes subtle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.main{pointer-events:none}.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%}.preview .details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.preview .details .filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.preview .details .size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.preview .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}.preview:not(.has-error) .error-message{display:none}.preview.has-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.preview.has-error .size{display:none}.preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.preview-list{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:not(:has(.preview)){display:none}.hidden-input{position:absolute;top:0;left:0;width:0;height:0;visibility:hidden}";
15
- async function H(a) {
16
- return a.items?.[0]?.webkitGetAsEntry != null ? await L(a.items) : Array.from(a.files);
14
+ import { c as f } from "../bundled/class-names.js";
15
+ import { r as I } from "../bundled/repeat.js";
16
+ const L = ":host{display:block;max-inline-size:400px}.base{display:flex;flex-direction:column;block-size:inherit;max-block-size:inherit;--_low-ink-color: var(--vvd-color-neutral-600)}.control-wrapper{display:flex;flex-direction:column;block-size:inherit;gap:4px;max-block-size:inherit}.control{position:relative;display:flex;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;padding:16px;border:1px dashed var(--vvd-color-neutral-400);border-radius:8px;background-color:var(--vvd-color-cta-50);color:var(--vvd-color-neutral-600);cursor:pointer;font:var(--vvd-typography-base);gap:8px;inline-size:100%;min-block-size:52px;outline:none;transition:all .3s ease}.control .upload-text{display:flex;align-items:center;justify-content:center;color:var(--vvd-color-neutral-600);isolation:isolate;pointer-events:none;text-align:center;transition:all .3s ease}@media (hover: hover){.control:hover .upload-text{color:var(--vvd-color-neutral-800)}}.control.drag-hover .upload-text{color:var(--vvd-color-neutral-800)}.control:not(.size-expanded){min-block-size:52px}.control.size-expanded{min-block-size:120px}.control:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}.control:active,.control:focus-visible{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}@media (hover: hover){.control:hover{border-color:var(--vvd-color-cta-400);background-color:var(--vvd-color-cta-100);box-shadow:0 2px 8px #0000001a;transform:translateY(-1px)}}.control:active{box-shadow:0 1px 4px #0000001a;transform:translateY(0)}.control.drag-hover{border-color:var(--vvd-color-cta-200);background-color:var(--vvd-color-cta-200);outline:2px dashed var(--vvd-color-cta-500);transform:scale(1.02)}.upload-icon{animation:subtle-pulse 2s ease-in-out infinite;color:var(--vvd-color-cta-600);pointer-events:none;transition:all .3s ease}@media (hover: hover){.control:hover .upload-icon{animation:none;color:var(--vvd-color-cta-700);transform:scale(1.1)}}.control:active .upload-icon{transform:scale(1.05)}.control.drag-hover .upload-icon{animation:none;color:var(--vvd-color-neutral-800);transform:scale(1.15)}@keyframes subtle-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.main{pointer-events:none}.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%}.preview .details{display:flex;min-width:0;flex-direction:column;max-inline-size:100%}.preview .details .filename{overflow:hidden;color:var(--vvd-color-canvas-text);font:var(--vvd-typography-base);text-overflow:ellipsis;white-space:nowrap}.preview .details .size{color:var(--vvd-color-neutral-600);font:var(--vvd-typography-base-condensed)}.preview .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}.preview:not(.has-error) .error-message{display:none}.preview.has-error{border:1px solid var(--vvd-color-alert-500);background-color:var(--vvd-color-alert-50)}.preview.has-error .size{display:none}.preview .remove-btn{display:inline;align-self:center;grid-column:2/-1;grid-row:1/-1}.preview-list{--scrollbar-track-color: transparent;--scrollbar-thumb-color: color-mix(in srgb, var(--vvd-color-neutral-950), transparent 70%)}.preview-list{scrollbar-color:var(--scrollbar-thumb-color) var(--scrollbar-track-color);scrollbar-width:thin}.preview-list ::-webkit-scrollbar{width:4px}.preview-list ::-webkit-scrollbar-track{background:var(--scrollbar-track-color)}.preview-list ::-webkit-scrollbar-thumb{border:0;border-radius:4px;background-color:var(--scrollbar-fallback-track-color, var(--scrollbar-thumb-color))}.preview-list{display:flex;flex-direction:column;gap:12px;margin-block-start:12px;overflow-y:auto}.preview-list:not(:has(.preview)){display:none}.hidden-input{position:absolute;top:0;left:0;width:0;height:0;visibility:hidden}.label-wrapper{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--label-wrapper-gap, 8px)}.label-wrapper[hidden]{display:none}.label-wrapper .label{flex:1 1 auto}.label-wrapper slot[name=contextual-help]::slotted([data-vvd-component=contextual-help]){margin-inline-start:auto}";
17
+ async function j(a) {
18
+ return a.items?.[0]?.webkitGetAsEntry != null ? await M(a.items) : Array.from(a.files);
17
19
  }
18
- async function L(a) {
20
+ async function M(a) {
19
21
  const r = [];
20
- for (const o of a) {
21
- const e = o.getAsFile();
22
+ for (const t of a) {
23
+ const e = t.getAsFile();
22
24
  if (e)
23
25
  r.push(Promise.resolve([e]));
24
26
  else {
25
- const t = o.webkitGetAsEntry();
26
- t && r.push(h(t, !1));
27
+ const o = t.webkitGetAsEntry();
28
+ o && r.push(h(o, !1));
27
29
  }
28
30
  }
29
31
  return (await Promise.all(r)).flat();
30
32
  }
31
33
  const h = (a, r) => {
32
- const o = (t) => new Promise((i, n) => {
33
- t.file((c) => {
34
+ const t = (o) => new Promise((i, n) => {
35
+ o.file((c) => {
34
36
  r && c.name.substring(0, 1) === "." ? i([]) : i([c]);
35
37
  }, n);
36
- }), e = a.isFile ? o(a) : a.isDirectory ? M(a) : Promise.resolve([]);
38
+ }), e = a.isFile ? t(a) : a.isDirectory ? R(a) : Promise.resolve([]);
37
39
  return e.catch(() => null), e;
38
- }, M = async (a) => new Promise((r, o) => {
39
- const e = [], t = a.createReader(), i = () => {
40
- t.readEntries((n) => {
40
+ }, R = async (a) => new Promise((r, t) => {
41
+ const e = [], o = a.createReader(), i = () => {
42
+ o.readEntries((n) => {
41
43
  for (const c of n)
42
44
  e.push(h(c, !0));
43
45
  n.length ? i() : r(Promise.all(e).then((c) => c.flat()));
44
- }, o);
46
+ }, t);
45
47
  };
46
48
  i();
47
49
  });
48
- function R(a, r) {
50
+ function W(a, r) {
49
51
  if (!r)
50
52
  return !0;
51
- const o = r.split(","), e = (i) => /\/\*$/.test(i), t = (i) => i.replace(/\/.*$/, "");
52
- for (let i of o)
53
+ const t = r.split(","), e = (i) => /\/\*$/.test(i), o = (i) => i.replace(/\/.*$/, "");
54
+ for (let i of t)
53
55
  if (i = i.trim(), i.charAt(0) === ".") {
54
56
  if (a.name.toLowerCase().endsWith(i.toLowerCase()))
55
57
  return !0;
56
58
  } else if (e(i)) {
57
- if (t(a.type) === t(i))
59
+ if (o(a.type) === o(i))
58
60
  return !0;
59
61
  } else if (a.type === i)
60
62
  return !0;
61
63
  return !1;
62
64
  }
63
- var j = Object.defineProperty, N = Object.getOwnPropertyDescriptor, s = (a, r, o, e) => {
64
- for (var t = e > 1 ? void 0 : e ? N(r, o) : r, i = a.length - 1, n; i >= 0; i--)
65
- (n = a[i]) && (t = (e ? n(r, o, t) : n(t)) || t);
66
- return e && t && j(r, o, t), t;
65
+ var N = Object.defineProperty, G = Object.getOwnPropertyDescriptor, s = (a, r, t, e) => {
66
+ for (var o = e > 1 ? void 0 : e ? G(r, t) : r, i = a.length - 1, n; i >= 0; i--)
67
+ (n = a[i]) && (o = (e ? n(r, t, o) : n(o)) || o);
68
+ return e && o && N(r, t, o), o;
67
69
  };
68
- class l extends C(
69
- V(
70
- A(D(B(T(y))))
70
+ class l extends V(
71
+ $(
72
+ A(
73
+ S(D(B(T(y))))
74
+ )
71
75
  )
72
76
  ) {
73
77
  constructor() {
74
- super(...arguments), this.singleFile = !1, this.maxFileSize = 256, this.valueChanged = (r, o) => {
75
- super.valueChanged(r, o), o === "" && this.files.length && this.removeAllFiles();
76
- }, this.proxy = document.createElement("input"), this.setFormValue = (r, o) => {
77
- typeof r != "string" && super.setFormValue(r, o);
78
+ super(...arguments), this.singleFile = !1, this.maxFileSize = 256, this.valueChanged = (r, t) => {
79
+ super.valueChanged(r, t), t === "" && this.files.length && this.removeAllFiles();
80
+ }, this.proxy = document.createElement("input"), this.setFormValue = (r, t) => {
81
+ typeof r != "string" && super.setFormValue(r, t);
78
82
  }, this._customValidationError = null, this.#e = {
79
83
  handleChange: () => {
80
84
  this._customValidationError = this.#r.observe(
81
85
  this,
82
- k
86
+ w
83
87
  );
84
88
  }
85
89
  }, this._dragHover = !1, this._allFiles = [];
@@ -87,18 +91,18 @@ class l extends C(
87
91
  /**
88
92
  * @internal
89
93
  */
90
- nameChanged(r, o) {
91
- super.nameChanged(r, o), this.#o();
94
+ nameChanged(r, t) {
95
+ super.nameChanged(r, t), this.#t();
92
96
  }
93
- #o() {
97
+ #t() {
94
98
  const r = this.files;
95
99
  if (!this.name)
96
100
  this.setFormValue(null);
97
101
  else {
98
- const o = new FormData();
102
+ const t = new FormData();
99
103
  for (const e of r)
100
- o.append(this.name, e);
101
- this.setFormValue(o);
104
+ t.append(this.name, e);
105
+ this.setFormValue(t);
102
106
  }
103
107
  this.#i();
104
108
  }
@@ -127,7 +131,7 @@ class l extends C(
127
131
  #e;
128
132
  #r;
129
133
  #l() {
130
- this.#r = w.binding(
134
+ this.#r = k.binding(
131
135
  () => this.#a(),
132
136
  this.#e,
133
137
  !0
@@ -154,8 +158,8 @@ class l extends C(
154
158
  _onDragOver(r) {
155
159
  if (!r.dataTransfer)
156
160
  return !0;
157
- const o = r.dataTransfer.effectAllowed;
158
- return r.dataTransfer.dropEffect = o === "move" || o === "linkMove" ? "move" : "copy", !1;
161
+ const t = r.dataTransfer.effectAllowed;
162
+ return r.dataTransfer.dropEffect = t === "move" || t === "linkMove" ? "move" : "copy", !1;
159
163
  }
160
164
  /**
161
165
  * @internal
@@ -167,8 +171,8 @@ class l extends C(
167
171
  * @internal
168
172
  */
169
173
  _onDrop(r) {
170
- return this._dragHover = !1, r.dataTransfer ? (H(r.dataTransfer).then((o) => this.#t(o)).catch((o) => {
171
- console.error(o);
174
+ return this._dragHover = !1, r.dataTransfer ? (j(r.dataTransfer).then((t) => this.#o(t)).catch((t) => {
175
+ console.error(t);
172
176
  }), !1) : !0;
173
177
  }
174
178
  /**
@@ -187,15 +191,15 @@ class l extends C(
187
191
  * @internal
188
192
  */
189
193
  _onRemoveFileClick(r) {
190
- this._allFiles = this._allFiles.filter((o) => o !== r), this.$emit("change");
194
+ this._allFiles = this._allFiles.filter((t) => t !== r), this.$emit("change");
191
195
  }
192
196
  /**
193
197
  * @internal
194
198
  */
195
199
  _allFilesChanged() {
196
- this.#o();
200
+ this.#t();
197
201
  }
198
- #t(r) {
202
+ #o(r) {
199
203
  this.singleFile ? r.length > 0 && (this._allFiles = [r[r.length - 1]]) : this._allFiles = [...this._allFiles, ...r], this.$emit("change");
200
204
  }
201
205
  /**
@@ -205,19 +209,19 @@ class l extends C(
205
209
  this._allFiles = [];
206
210
  }
207
211
  get _validatedFiles() {
208
- const r = (t, i) => this.maxFileSize && t.size > this.maxFileSize * 1024 * 1024 ? (this.fileTooBigError || this.locale.filePicker.fileTooBigError).replace(
212
+ const r = (o, i) => this.maxFileSize && o.size > this.maxFileSize * 1024 * 1024 ? (this.fileTooBigError || this.locale.filePicker.fileTooBigError).replace(
209
213
  "{{filesize}}",
210
- this._formatNumber(Math.round(t.size / 1024 / 10.24) / 100)
211
- ).replace("{{maxFilesize}}", this._formatNumber(this.maxFileSize)) : R(t, this.accept) ? typeof this.maxFiles == "number" && i >= this.maxFiles ? (this.maxFilesExceededError || this.locale.filePicker.maxFilesExceededError).replace("{{maxFiles}}", String(this.maxFiles)) : null : this.invalidFileTypeError || this.locale.filePicker.invalidFileTypeError, o = [];
214
+ this._formatNumber(Math.round(o.size / 1024 / 10.24) / 100)
215
+ ).replace("{{maxFilesize}}", this._formatNumber(this.maxFileSize)) : W(o, this.accept) ? typeof this.maxFiles == "number" && i >= this.maxFiles ? (this.maxFilesExceededError || this.locale.filePicker.maxFilesExceededError).replace("{{maxFiles}}", String(this.maxFiles)) : null : this.invalidFileTypeError || this.locale.filePicker.invalidFileTypeError, t = [];
212
216
  let e = 0;
213
- for (const t of this._allFiles) {
217
+ for (const o of this._allFiles) {
214
218
  const i = {
215
- file: t,
216
- validationError: r(t, e)
219
+ file: o,
220
+ validationError: r(o, e)
217
221
  };
218
- o.push(i), i.validationError || e++;
222
+ t.push(i), i.validationError || e++;
219
223
  }
220
- return o;
224
+ return t;
221
225
  }
222
226
  /**
223
227
  * Files that have been added to the file picker and passed validation.
@@ -239,14 +243,14 @@ class l extends C(
239
243
  * @internal
240
244
  */
241
245
  _onHiddenInputChange(r) {
242
- this.#t(this._hiddenInput.files), this._hiddenInput.value = "", r.stopPropagation();
246
+ this.#o(this._hiddenInput.files), this._hiddenInput.value = "", r.stopPropagation();
243
247
  }
244
248
  /**
245
249
  * @internal
246
250
  */
247
251
  _formatNumber(r) {
248
- const o = String(r);
249
- return this.locale.common.useCommaAsDecimalSeparator ? o.replace(".", ",") : o;
252
+ const t = String(r);
253
+ return this.locale.common.useCommaAsDecimalSeparator ? t.replace(".", ",") : t;
250
254
  }
251
255
  }
252
256
  s([
@@ -285,41 +289,47 @@ s([
285
289
  s([
286
290
  _
287
291
  ], l.prototype, "_validatedFiles", 1);
288
- const f = 1e3, W = { tb: "TB", gb: "GB", mb: "MB", kb: "KB", b: "b" }, G = (a, r) => {
289
- let o = 0, e = "b";
292
+ const m = 1e3, Y = { tb: "TB", gb: "GB", mb: "MB", kb: "KB", b: "b" }, U = (a, r) => {
293
+ let t = 0, e = "b";
290
294
  if (r > 0) {
291
- const t = ["tb", "gb", "mb", "kb", "b"];
292
- for (let i = 0; i < t.length; i++) {
293
- const n = t[i], c = Math.pow(f, 4 - i) / 10;
295
+ const o = ["tb", "gb", "mb", "kb", "b"];
296
+ for (let i = 0; i < o.length; i++) {
297
+ const n = o[i], c = Math.pow(m, 4 - i) / 10;
294
298
  if (r >= c) {
295
- o = r / Math.pow(f, 4 - i), e = n;
299
+ t = r / Math.pow(m, 4 - i), e = n;
296
300
  break;
297
301
  }
298
302
  }
299
- o = Math.round(10 * o) / 10;
303
+ t = Math.round(10 * t) / 10;
300
304
  }
301
- return p`<strong>${a._formatNumber(o)}</strong>
302
- ${W[e]}`;
303
- }, Y = ({ size: a, _dragHover: r }) => m(
305
+ return p`<strong>${a._formatNumber(t)}</strong>
306
+ ${Y[e]}`;
307
+ }, K = ({ size: a, _dragHover: r }) => f(
304
308
  "control",
305
309
  [`size-${a}`, !!a],
306
310
  ["drag-hover", r]
307
- ), U = (a) => {
308
- const r = a.tagFor(b), o = a.tagFor(x);
311
+ ), q = (a) => {
312
+ const r = a.tagFor(b), t = a.tagFor(x);
309
313
  return p`
310
314
  <div class="base">
311
- ${S((e) => e.label, p`<label>${(e) => e.label}</label>`)}
315
+ <div class="label-wrapper" ?hidden=${(e) => !e.label && !e._hasContextualHelp}>
316
+ ${H(
317
+ (e) => e.label,
318
+ p`<label class="label">${(e) => e.label}</label>`
319
+ )}
320
+ <slot name="contextual-help" ${O("_contextualHelpSlottedContent")}></slot>
321
+ </div>
312
322
  <div class="control-wrapper">
313
323
  <button
314
324
  type="button"
315
325
  ${u("control")}
316
- class="${Y}"
326
+ class="${K}"
317
327
  @click="${(e) => e._onControlClick()}"
318
328
  @keydown"${() => !1}"
319
329
  @dragenter="${(e) => e._onDragEnter()}"
320
- @dragover="${(e, t) => e._onDragOver(t.event)}"
321
- @dragleave="${(e, t) => e._onDragLeave(t.event)}"
322
- @drop="${(e, t) => e._onDrop(t.event)}"
330
+ @dragover="${(e, o) => e._onDragOver(o.event)}"
331
+ @dragleave="${(e, o) => e._onDragLeave(o.event)}"
332
+ @drop="${(e, o) => e._onDrop(o.event)}"
323
333
  @dragend="${(e) => e._onDragEnd()}"
324
334
  aria-describedby="${(e) => e._feedbackDescribedBy}"
325
335
  ${P()}
@@ -335,22 +345,22 @@ const f = 1e3, W = { tb: "TB", gb: "GB", mb: "MB", kb: "KB", b: "b" }, G = (a, r
335
345
  ${(e) => e._getFeedbackTemplate(a)}
336
346
  </div>
337
347
  <div class="preview-list">
338
- ${O(
348
+ ${I(
339
349
  (e) => e._validatedFiles,
340
350
  p`
341
- <div class="${(e) => m("preview", ["has-error", !!e.validationError])}">
351
+ <div class="${(e) => f("preview", ["has-error", !!e.validationError])}">
342
352
  <div class="details">
343
353
  <div class="filename">${(e) => e.file.name}</div>
344
- <div class="size">${(e, t) => G(t.parent, e.file.size)}</div>
354
+ <div class="size">${(e, o) => U(o.parent, e.file.size)}</div>
345
355
  </div>
346
356
  <div class="error-message">
347
357
  <${r} name="info-line" size="-6"></${r}>
348
358
  ${(e) => e.validationError}
349
359
  </div>
350
- <${o}
360
+ <${t}
351
361
  class="remove-btn" icon="delete-line" appearance="ghost-light" size="condensed"
352
- aria-label="${(e, t) => t.parent.locale.filePicker.removeFileLabel}"
353
- @click="${(e, t) => t.parent._onRemoveFileClick(e.file)}"></${o}>
362
+ aria-label="${(e, o) => o.parent.locale.filePicker.removeFileLabel}"
363
+ @click="${(e, o) => o.parent._onRemoveFileClick(e.file)}"></${t}>
354
364
  </div>`
355
365
  )}
356
366
  </div>
@@ -363,19 +373,19 @@ const f = 1e3, W = { tb: "TB", gb: "GB", mb: "MB", kb: "KB", b: "b" }, G = (a, r
363
373
  ?multiple="${(e) => !e.singleFile && (!e.maxFiles || e.maxFiles > 1)}"
364
374
  accept="${(e) => e.accept || null}"
365
375
  tabindex="-1"
366
- @change="${(e, t) => e._onHiddenInputChange(t.event)}"
376
+ @change="${(e, o) => e._onHiddenInputChange(o.event)}"
367
377
  />
368
378
  `;
369
- }, K = $(
379
+ }, J = C(
370
380
  "file-picker",
371
381
  l,
372
- U,
382
+ q,
373
383
  [g, F, z],
374
384
  {
375
- styles: I,
385
+ styles: L,
376
386
  shadowOptions: {
377
387
  delegatesFocus: !0
378
388
  }
379
389
  }
380
- ), q = E(K);
381
- q();
390
+ ), Q = E(J);
391
+ Q();
@@ -398,6 +398,10 @@ export declare class AudioPlayer extends AudioPlayer_base {
398
398
  connotation?: AudioPlayerConnotation;
399
399
  src?: string;
400
400
  srcChanged(): void;
401
+ private revokeSrc;
402
+ private getCurrentSrc;
403
+ private canPlayType;
404
+ private setSrc;
401
405
  get playbackRate(): number;
402
406
  set playbackRate(value: number);
403
407
  disabled: boolean;