iryx-ui 0.24.1 → 0.26.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 (47) hide show
  1. package/dist/components/AvatarGroup.vue.d.ts +8 -2
  2. package/dist/components/AvatarGroup.vue_vue_type_script_setup_true_lang.js +57 -23
  3. package/dist/components/Breadcrumb.vue.d.ts +10 -2
  4. package/dist/components/Breadcrumb.vue_vue_type_script_setup_true_lang.js +66 -34
  5. package/dist/components/CommandPalette.vue.d.ts +12 -0
  6. package/dist/components/CommandPalette.vue_vue_type_script_setup_true_lang.js +122 -85
  7. package/dist/components/ConfirmPopover.vue.d.ts +1 -1
  8. package/dist/components/DateRangePicker.vue.d.ts +14 -2
  9. package/dist/components/DateRangePicker.vue_vue_type_script_setup_true_lang.js +111 -70
  10. package/dist/components/FileUpload.vue.d.ts +23 -1
  11. package/dist/components/FileUpload.vue_vue_type_script_setup_true_lang.js +139 -96
  12. package/dist/components/Input.vue.d.ts +14 -0
  13. package/dist/components/Input.vue_vue_type_script_setup_true_lang.js +86 -69
  14. package/dist/components/SignaturePad.vue.d.ts +1 -1
  15. package/dist/components/Tabs.vue.d.ts +7 -6
  16. package/dist/components/Tabs.vue_vue_type_script_setup_true_lang.js +65 -30
  17. package/dist/components/Textarea.vue.d.ts +14 -0
  18. package/dist/components/Textarea.vue_vue_type_script_setup_true_lang.js +90 -42
  19. package/dist/components/Toaster.vue_vue_type_script_setup_true_lang.js +42 -41
  20. package/dist/components/index.js +144 -144
  21. package/dist/composables/character-count.d.ts +6 -0
  22. package/dist/composables/character-count.js +18 -0
  23. package/dist/composables/command-palette.d.ts +7 -0
  24. package/dist/composables/command-palette.js +8 -2
  25. package/dist/composables/date.d.ts +25 -0
  26. package/dist/composables/date.js +59 -16
  27. package/dist/composables/scroll-fade.d.ts +1 -1
  28. package/dist/composables/toast.d.ts +16 -1
  29. package/dist/composables/toast.js +23 -2
  30. package/dist/index.d.ts +1 -1
  31. package/dist/index.js +154 -154
  32. package/dist/theme/avatar.d.ts +21 -0
  33. package/dist/theme/avatar.js +28 -21
  34. package/dist/theme/bar-chart.d.ts +3 -3
  35. package/dist/theme/date-picker.d.ts +9 -0
  36. package/dist/theme/date-picker.js +3 -0
  37. package/dist/theme/donut-chart.d.ts +3 -3
  38. package/dist/theme/file-upload.d.ts +24 -0
  39. package/dist/theme/file-upload.js +6 -2
  40. package/dist/theme/input.d.ts +46 -0
  41. package/dist/theme/input.js +10 -2
  42. package/dist/theme/line-chart.d.ts +3 -3
  43. package/dist/theme/tabs.d.ts +18 -3
  44. package/dist/theme/tabs.js +20 -12
  45. package/dist/theme/toast.d.ts +9 -0
  46. package/dist/theme/toast.js +2 -1
  47. package/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import type { ClassValue } from '../class-value';
2
+ import type { DateRangePreset } from '../composables/date';
2
3
  /** Both ends are ISO `YYYY-MM-DD` strings, and either may be absent. */
3
4
  export interface DateRange {
4
5
  start: string | null;
@@ -21,8 +22,18 @@ export interface DateRangePickerProps {
21
22
  format?: Intl.DateTimeFormatOptions;
22
23
  /** 0 is Sunday. Defaults to the locale's own convention. */
23
24
  weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
24
- /** Months shown side by side. Two makes picking a span across a boundary sane. */
25
+ /**
26
+ * Months shown side by side. Two makes picking a span across a boundary
27
+ * sane. Narrow screens always get one.
28
+ */
25
29
  months?: number;
30
+ /**
31
+ * Shortcuts beside the calendar — "Last 7 days", "This month". Picking one
32
+ * fills the range and closes. `commonDateRangePresets()` builds the usual set.
33
+ */
34
+ presets?: DateRangePreset[];
35
+ /** Accessible name for the preset list — override for non-English apps. */
36
+ presetsLabel?: string;
26
37
  /** Offer a "clear" action in the footer. */
27
38
  clearable?: boolean;
28
39
  /** Separator between the two dates on the trigger. */
@@ -36,7 +47,7 @@ export interface DateRangePickerProps {
36
47
  /** Applied to the trigger, which is the element carrying the field chrome. */
37
48
  class?: ClassValue;
38
49
  /** Override classes per element, e.g. `{ content: 'p-4' }`. */
39
- ui?: Partial<Record<'trigger' | 'placeholder' | 'content' | 'header' | 'heading' | 'nav' | 'months' | 'grid' | 'headCell' | 'cell' | 'cellTrigger' | 'footer' | 'action', string>>;
50
+ ui?: Partial<Record<'trigger' | 'placeholder' | 'content' | 'panel' | 'presets' | 'preset' | 'header' | 'heading' | 'nav' | 'months' | 'grid' | 'headCell' | 'cell' | 'cellTrigger' | 'footer' | 'action', string>>;
40
51
  }
41
52
  type __VLS_Props = DateRangePickerProps;
42
53
  type __VLS_ModelProps = {
@@ -56,6 +67,7 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
56
67
  nextLabel: string;
57
68
  invalid: boolean;
58
69
  clearLabel: string;
70
+ presetsLabel: string;
59
71
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
60
72
  declare const _default: typeof __VLS_export;
61
73
  export default _default;
@@ -2,18 +2,22 @@ import { useIryxUiConfig as e } from "../config.js";
2
2
  import t from "./Icon.js";
3
3
  import { formatIsoDate as n, toCalendarDate as r, toIsoDate as i } from "../composables/date.js";
4
4
  import { calendarTheme as ee } from "../theme/calendar.js";
5
- import { useFormField as te } from "../composables/form.js";
6
- import { datePickerTheme as a } from "../theme/date-picker.js";
7
- import { Fragment as o, computed as s, createBlock as c, createCommentVNode as l, createElementBlock as u, createElementVNode as d, createTextVNode as f, createVNode as p, defineComponent as m, mergeModels as h, normalizeClass as g, openBlock as _, ref as v, renderList as y, shallowRef as b, toDisplayString as x, unref as S, useModel as C, watch as w, withCtx as T } from "vue";
8
- import { ArrowLeft01Icon as E, ArrowRight01Icon as ne, Calendar03Icon as re } from "@hugeicons/core-free-icons";
9
- import { PopoverContent as D, PopoverPortal as O, PopoverRoot as k, PopoverTrigger as A, RangeCalendarCell as j, RangeCalendarCellTrigger as M, RangeCalendarGrid as N, RangeCalendarGridBody as P, RangeCalendarGridHead as F, RangeCalendarGridRow as I, RangeCalendarHeadCell as L, RangeCalendarHeader as R, RangeCalendarHeading as z, RangeCalendarNext as B, RangeCalendarPrev as V, RangeCalendarRoot as ie } from "reka-ui";
5
+ import { useFormField as a } from "../composables/form.js";
6
+ import { datePickerTheme as o } from "../theme/date-picker.js";
7
+ import { Fragment as s, computed as c, createBlock as l, createCommentVNode as u, createElementBlock as d, createElementVNode as f, createTextVNode as te, createVNode as p, defineComponent as m, mergeModels as h, normalizeClass as g, onBeforeUnmount as ne, onMounted as re, openBlock as _, ref as v, renderList as y, shallowRef as b, toDisplayString as x, unref as S, useModel as ie, watch as C, withCtx as w } from "vue";
8
+ import { ArrowLeft01Icon as ae, ArrowRight01Icon as oe, Calendar03Icon as se } from "@hugeicons/core-free-icons";
9
+ import { PopoverContent as ce, PopoverPortal as le, PopoverRoot as ue, PopoverTrigger as de, RangeCalendarCell as T, RangeCalendarCellTrigger as E, RangeCalendarGrid as D, RangeCalendarGridBody as O, RangeCalendarGridHead as k, RangeCalendarGridRow as A, RangeCalendarHeadCell as j, RangeCalendarHeader as M, RangeCalendarHeading as N, RangeCalendarNext as P, RangeCalendarPrev as F, RangeCalendarRoot as I } from "reka-ui";
10
10
  //#region src/components/DateRangePicker.vue?vue&type=script&setup=true&lang.ts
11
- var H = [
11
+ var L = [
12
12
  "id",
13
13
  "disabled",
14
14
  "aria-invalid",
15
15
  "aria-describedby"
16
- ], U = { key: 0 }, W = /*@__PURE__*/ m({
16
+ ], R = { key: 0 }, z = ["aria-label"], B = [
17
+ "disabled",
18
+ "aria-pressed",
19
+ "onClick"
20
+ ], V = /*@__PURE__*/ m({
17
21
  __name: "DateRangePicker",
18
22
  props: /*@__PURE__*/ h({
19
23
  size: {},
@@ -30,6 +34,8 @@ var H = [
30
34
  format: {},
31
35
  weekStartsOn: {},
32
36
  months: { default: 2 },
37
+ presets: {},
38
+ presetsLabel: { default: "Presets" },
33
39
  clearable: { type: Boolean },
34
40
  separator: { default: " – " },
35
41
  clearLabel: { default: "Clear" },
@@ -55,127 +61,162 @@ var H = [
55
61
  }),
56
62
  emits: ["update:modelValue"],
57
63
  setup(m) {
58
- let h = m, W = C(m, "modelValue"), G = v(!1), K = te(), q = s(() => h.id ?? K?.id.value);
59
- K && h.id && (K.id.value = h.id);
60
- let J = s(() => h.invalid ?? K?.invalid.value ?? !1), Y = e(), ae = s(() => h.unstyled ?? Y.unstyled), X = b({
61
- start: r(W.value?.start),
62
- end: r(W.value?.end)
64
+ let h = m, V = ie(m, "modelValue"), H = v(!1), U = a(), fe = c(() => h.id ?? U?.id.value);
65
+ U && h.id && (U.id.value = h.id);
66
+ let W = c(() => h.invalid ?? U?.invalid.value ?? !1), pe = e(), me = c(() => h.unstyled ?? pe.unstyled), G = b({
67
+ start: r(V.value?.start),
68
+ end: r(V.value?.end)
63
69
  });
64
- function Z(e) {
65
- return i(e.start) === (W.value?.start ?? null) && i(e.end) === (W.value?.end ?? null);
70
+ function K(e) {
71
+ return i(e.start) === (V.value?.start ?? null) && i(e.end) === (V.value?.end ?? null);
66
72
  }
67
- w(W, () => {
68
- Z(X.value) || (X.value = {
69
- start: r(W.value?.start),
70
- end: r(W.value?.end)
73
+ C(V, () => {
74
+ K(G.value) || (G.value = {
75
+ start: r(V.value?.start),
76
+ end: r(V.value?.end)
71
77
  });
72
- }, { deep: !0 }), w(X, (e) => {
73
- Z(e) || (W.value = {
78
+ }, { deep: !0 }), C(G, (e) => {
79
+ K(e) || (V.value = {
74
80
  start: i(e.start),
75
81
  end: i(e.end)
76
82
  });
77
83
  });
78
- let oe = s(() => r(h.min)), se = s(() => r(h.max)), Q = s(() => {
79
- let e = n(W.value?.start, h.locale, h.format), t = n(W.value?.end, h.locale, h.format);
84
+ let q = v(!1), J;
85
+ function Y(e) {
86
+ q.value = e.matches;
87
+ }
88
+ re(() => {
89
+ typeof window.matchMedia == "function" && (J = window.matchMedia("(max-width: 39.99rem)"), q.value = J.matches, J.addEventListener("change", Y));
90
+ }), ne(() => J?.removeEventListener("change", Y));
91
+ let he = c(() => q.value ? 1 : h.months), ge = c(() => r(h.min)), _e = c(() => r(h.max)), X = c(() => {
92
+ let e = n(V.value?.start, h.locale, h.format), t = n(V.value?.end, h.locale, h.format);
80
93
  return !e && !t ? "" : t ? `${e}${h.separator}${t}` : e;
81
94
  });
82
- w(W, (e) => {
83
- G.value && e?.start && e?.end && (G.value = !1);
95
+ C(V, (e) => {
96
+ H.value && e?.start && e?.end && (H.value = !1);
84
97
  }, { deep: !0 });
85
- function ce() {
86
- W.value = {
98
+ let Z = c(() => (H.value, (h.presets ?? []).map((e) => ({
99
+ label: e.label,
100
+ range: typeof e.range == "function" ? e.range() : e.range
101
+ }))));
102
+ function Q(e) {
103
+ return (!h.min || !e.start || e.start >= h.min) && (!h.max || !e.end || e.end <= h.max);
104
+ }
105
+ function ve(e) {
106
+ return V.value?.start === e.start && V.value?.end === e.end;
107
+ }
108
+ function ye(e) {
109
+ V.value = {
110
+ start: e.start,
111
+ end: e.end
112
+ }, H.value = !1;
113
+ }
114
+ function be() {
115
+ V.value = {
87
116
  start: null,
88
117
  end: null
89
- }, G.value = !1;
118
+ }, H.value = !1;
90
119
  }
91
- let le = s(() => ({
92
- ...a({
120
+ let xe = c(() => ({
121
+ ...o({
93
122
  size: h.size,
94
- invalid: J.value
123
+ invalid: W.value
95
124
  }),
96
125
  ...ee({ range: !0 })
97
126
  }));
98
127
  function $(e, t) {
99
128
  let n = h.ui?.[e];
100
- return ae.value ? [n, t] : le.value[e]({ class: [n, t] });
129
+ return me.value ? [n, t] : xe.value[e]({ class: [n, t] });
101
130
  }
102
- return (e, n) => (_(), c(S(k), {
103
- open: G.value,
104
- "onUpdate:open": n[1] ||= (e) => G.value = e
131
+ return (e, n) => (_(), l(S(ue), {
132
+ open: H.value,
133
+ "onUpdate:open": n[1] ||= (e) => H.value = e
105
134
  }, {
106
- default: T(() => [p(S(A), { "as-child": "" }, {
107
- default: T(() => [d("button", {
108
- id: q.value,
135
+ default: w(() => [p(S(de), { "as-child": "" }, {
136
+ default: w(() => [f("button", {
137
+ id: fe.value,
109
138
  type: "button",
110
139
  disabled: h.disabled,
111
- "aria-invalid": J.value || void 0,
112
- "aria-describedby": S(K)?.describedBy.value,
140
+ "aria-invalid": W.value || void 0,
141
+ "aria-describedby": S(U)?.describedBy.value,
113
142
  class: g($("trigger", h.class))
114
- }, [Q.value ? (_(), u("span", U, x(Q.value), 1)) : (_(), u("span", {
143
+ }, [X.value ? (_(), d("span", R, x(X.value), 1)) : (_(), d("span", {
115
144
  key: 1,
116
145
  class: g($("placeholder"))
117
- }, x(h.placeholder), 3)), p(t, { icon: S(re) }, null, 8, ["icon"])], 10, H)]),
146
+ }, x(h.placeholder), 3)), p(t, { icon: S(se) }, null, 8, ["icon"])], 10, L)]),
118
147
  _: 1
119
- }), p(S(O), null, {
120
- default: T(() => [p(S(D), {
148
+ }), p(S(le), null, {
149
+ default: w(() => [p(S(ce), {
121
150
  class: g($("content")),
122
151
  "side-offset": 4,
123
152
  align: "start"
124
153
  }, {
125
- default: T(() => [p(S(ie), {
126
- modelValue: X.value,
127
- "onUpdate:modelValue": n[0] ||= (e) => X.value = e,
128
- "min-value": oe.value,
129
- "max-value": se.value,
154
+ default: w(() => [f("div", { class: g($("panel")) }, [Z.value.length ? (_(), d("div", {
155
+ key: 0,
156
+ role: "group",
157
+ "aria-label": h.presetsLabel,
158
+ class: g($("presets"))
159
+ }, [(_(!0), d(s, null, y(Z.value, (e) => (_(), d("button", {
160
+ key: e.label,
161
+ type: "button",
162
+ disabled: !Q(e.range),
163
+ "aria-pressed": ve(e.range),
164
+ class: g($("preset")),
165
+ onClick: (t) => ye(e.range)
166
+ }, x(e.label), 11, B))), 128))], 10, z)) : u("", !0), p(S(I), {
167
+ modelValue: G.value,
168
+ "onUpdate:modelValue": n[0] ||= (e) => G.value = e,
169
+ "min-value": ge.value,
170
+ "max-value": _e.value,
130
171
  locale: h.locale,
131
172
  "week-starts-on": h.weekStartsOn,
132
- "number-of-months": h.months,
173
+ "number-of-months": he.value,
133
174
  "fixed-weeks": "",
134
175
  "initial-focus": ""
135
176
  }, {
136
- default: T(({ grid: e, weekDays: n }) => [p(S(R), { class: g($("header")) }, {
137
- default: T(() => [
138
- p(S(V), {
177
+ default: w(({ grid: e, weekDays: n }) => [p(S(M), { class: g($("header")) }, {
178
+ default: w(() => [
179
+ p(S(F), {
139
180
  "aria-label": h.previousLabel,
140
181
  class: g($("nav"))
141
182
  }, {
142
- default: T(() => [p(t, { icon: S(E) }, null, 8, ["icon"])]),
183
+ default: w(() => [p(t, { icon: S(ae) }, null, 8, ["icon"])]),
143
184
  _: 1
144
185
  }, 8, ["aria-label", "class"]),
145
- p(S(z), { class: g($("heading")) }, null, 8, ["class"]),
146
- p(S(B), {
186
+ p(S(N), { class: g($("heading")) }, null, 8, ["class"]),
187
+ p(S(P), {
147
188
  "aria-label": h.nextLabel,
148
189
  class: g($("nav"))
149
190
  }, {
150
- default: T(() => [p(t, { icon: S(ne) }, null, 8, ["icon"])]),
191
+ default: w(() => [p(t, { icon: S(oe) }, null, 8, ["icon"])]),
151
192
  _: 1
152
193
  }, 8, ["aria-label", "class"])
153
194
  ]),
154
195
  _: 1
155
- }, 8, ["class"]), d("div", { class: g($("months")) }, [(_(!0), u(o, null, y(e, (e) => (_(), c(S(N), {
196
+ }, 8, ["class"]), f("div", { class: g($("months")) }, [(_(!0), d(s, null, y(e, (e) => (_(), l(S(D), {
156
197
  key: e.value.toString(),
157
198
  class: g($("grid"))
158
199
  }, {
159
- default: T(() => [p(S(F), null, {
160
- default: T(() => [p(S(I), null, {
161
- default: T(() => [(_(!0), u(o, null, y(n, (e) => (_(), c(S(L), {
200
+ default: w(() => [p(S(k), null, {
201
+ default: w(() => [p(S(A), null, {
202
+ default: w(() => [(_(!0), d(s, null, y(n, (e) => (_(), l(S(j), {
162
203
  key: e,
163
204
  class: g($("headCell"))
164
205
  }, {
165
- default: T(() => [f(x(e), 1)]),
206
+ default: w(() => [te(x(e), 1)]),
166
207
  _: 2
167
208
  }, 1032, ["class"]))), 128))]),
168
209
  _: 2
169
210
  }, 1024)]),
170
211
  _: 2
171
- }, 1024), p(S(P), null, {
172
- default: T(() => [(_(!0), u(o, null, y(e.rows, (t, n) => (_(), c(S(I), { key: `week-${n}` }, {
173
- default: T(() => [(_(!0), u(o, null, y(t, (t) => (_(), c(S(j), {
212
+ }, 1024), p(S(O), null, {
213
+ default: w(() => [(_(!0), d(s, null, y(e.rows, (t, n) => (_(), l(S(A), { key: `week-${n}` }, {
214
+ default: w(() => [(_(!0), d(s, null, y(t, (t) => (_(), l(S(T), {
174
215
  key: t.toString(),
175
216
  date: t,
176
217
  class: g($("cell"))
177
218
  }, {
178
- default: T(() => [p(S(M), {
219
+ default: w(() => [p(S(E), {
179
220
  day: t,
180
221
  month: e.value,
181
222
  class: g($("cellTrigger"))
@@ -200,14 +241,14 @@ var H = [
200
241
  "locale",
201
242
  "week-starts-on",
202
243
  "number-of-months"
203
- ]), h.clearable ? (_(), u("div", {
244
+ ])], 2), h.clearable ? (_(), d("div", {
204
245
  key: 0,
205
246
  class: g($("footer"))
206
- }, [d("button", {
247
+ }, [f("button", {
207
248
  type: "button",
208
249
  class: g($("action")),
209
- onClick: ce
210
- }, x(h.clearLabel), 3)], 2)) : l("", !0)]),
250
+ onClick: be
251
+ }, x(h.clearLabel), 3)], 2)) : u("", !0)]),
211
252
  _: 1
212
253
  }, 8, ["class"])]),
213
254
  _: 1
@@ -217,4 +258,4 @@ var H = [
217
258
  }
218
259
  });
219
260
  //#endregion
220
- export { W as default };
261
+ export { V as default };
@@ -4,6 +4,13 @@ export interface FileRejection {
4
4
  file: File;
5
5
  reason: 'type' | 'size' | 'count';
6
6
  }
7
+ export interface FileUploadStatus {
8
+ state: 'uploading' | 'done' | 'error';
9
+ /** 0–100. Leave it out while uploading for an indeterminate bar. */
10
+ progress?: number;
11
+ /** Shown on the row when `state` is `'error'`. Falls back to `failedText`. */
12
+ error?: string;
13
+ }
7
14
  export interface FileUploadProps {
8
15
  /** Accept more than one file. The model is an array either way. */
9
16
  multiple?: boolean;
@@ -23,8 +30,18 @@ export interface FileUploadProps {
23
30
  hint?: string;
24
31
  /** Text on the browse button. */
25
32
  browseLabel?: string;
33
+ /**
34
+ * Upload state for a held file — a bar while uploading, "Uploaded" when done,
35
+ * the error and a retry button when it failed. Read reactively, so point it
36
+ * at your own reactive store.
37
+ */
38
+ statusFor?: (file: File) => FileUploadStatus | undefined;
26
39
  /** Labels and messages — override for non-English apps. */
27
40
  removeLabel?: string;
41
+ retryLabel?: string;
42
+ /** Added to the size once a file's status is `'done'`. */
43
+ doneText?: string;
44
+ failedText?: string;
28
45
  tooLargeText?: string;
29
46
  wrongTypeText?: string;
30
47
  tooManyText?: string;
@@ -33,7 +50,7 @@ export interface FileUploadProps {
33
50
  /** Applied to the outer wrapper, which stacks the zone above the list. */
34
51
  class?: ClassValue;
35
52
  /** Override classes per element, e.g. `{ dropzone: 'py-10' }`. */
36
- ui?: Partial<Record<'root' | 'dropzone' | 'input' | 'icon' | 'label' | 'browse' | 'hint' | 'list' | 'item' | 'thumbnail' | 'placeholder' | 'details' | 'name' | 'meta' | 'remove' | 'error', string>>;
53
+ ui?: Partial<Record<'root' | 'dropzone' | 'input' | 'icon' | 'label' | 'browse' | 'hint' | 'list' | 'item' | 'thumbnail' | 'placeholder' | 'details' | 'name' | 'meta' | 'remove' | 'error' | 'progress' | 'actions' | 'retry', string>>;
37
54
  }
38
55
  type __VLS_Props = FileUploadProps;
39
56
  type __VLS_ModelProps = {
@@ -47,9 +64,11 @@ type __VLS_ModelProps = {
47
64
  type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
48
65
  declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
49
66
  "update:modelValue": (value: File[]) => any;
67
+ retry: (file: File) => any;
50
68
  reject: (rejections: FileRejection[]) => any;
51
69
  }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
52
70
  "onUpdate:modelValue"?: ((value: File[]) => any) | undefined;
71
+ onRetry?: ((file: File) => any) | undefined;
53
72
  onReject?: ((rejections: FileRejection[]) => any) | undefined;
54
73
  }>, {
55
74
  label: string;
@@ -57,6 +76,9 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
57
76
  invalid: boolean;
58
77
  removeLabel: string;
59
78
  browseLabel: string;
79
+ retryLabel: string;
80
+ doneText: string;
81
+ failedText: string;
60
82
  tooLargeText: string;
61
83
  wrongTypeText: string;
62
84
  tooManyText: string;