@robuust-digital/vue-components 2.6.8 → 2.7.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.
@@ -24,6 +24,7 @@ modelValue: ComboboxModelValue;
24
24
  rootClass: string;
25
25
  prefixIcon: Icon | null;
26
26
  disabled: boolean;
27
+ multiple: boolean;
27
28
  endpoint: string;
28
29
  requestParams: Record<string, unknown>;
29
30
  manualInput: boolean;
@@ -34,7 +35,6 @@ minLength: number;
34
35
  itemKey: string;
35
36
  clearable: boolean;
36
37
  rootAttrs: Record<string, unknown>;
37
- multiple: boolean;
38
38
  onSearch: (value: string | null, params: Record<string, unknown>, endpoint?: string) => Promise<{
39
39
  data: unknown;
40
40
  error?: unknown;
@@ -0,0 +1,227 @@
1
+ :root {
2
+ /* Base FileUpload variables */
3
+ --rvc-file-upload-gap: calc(var(--spacing) * 3);
4
+ --rvc-file-upload-area-border-radius: var(--rvc-base-border-radius);
5
+ --rvc-file-upload-area-border-width: var(--rvc-base-border-width);
6
+ --rvc-file-upload-area-border-style: dashed;
7
+ --rvc-file-upload-area-border-color: var(--rvc-base-border-color);
8
+ --rvc-file-upload-area-border-color-hover: var(--rvc-base-border-dark-color);
9
+ --rvc-file-upload-area-border-color-dragging: var(--color-indigo-500);
10
+ --rvc-file-upload-area-bg-color: var(--color-white);
11
+ --rvc-file-upload-area-bg-color-hover: var(--color-slate-50);
12
+ --rvc-file-upload-area-bg-color-dragging: var(--color-indigo-50);
13
+ --rvc-file-upload-area-padding-x: calc(var(--spacing) * 6);
14
+ --rvc-file-upload-area-padding-y: calc(var(--spacing) * 8);
15
+ --rvc-file-upload-area-min-height: calc(var(--spacing) * 40);
16
+ --rvc-file-upload-area-gap: calc(var(--spacing) * 1);
17
+ --rvc-file-upload-transition-duration: var(--rvc-base-transition-duration);
18
+ --rvc-file-upload-transition-timing-function: var(--rvc-base-transition-timing-function);
19
+ --rvc-file-upload-transition-property: color, background-color, border-color;
20
+ --rvc-file-upload-disabled-opacity: var(--rvc-base-input-disabled-opacity);
21
+ --rvc-file-upload-icon-size: calc(var(--spacing) * 7);
22
+ --rvc-file-upload-icon-color: var(--color-slate-400);
23
+ --rvc-file-upload-icon-color-hover: var(--color-slate-500);
24
+ --rvc-file-upload-label-color: var(--color-slate-900);
25
+ --rvc-file-upload-label-font-size: var(--text-base);
26
+ --rvc-file-upload-label-font-weight: var(--font-weight-medium);
27
+ --rvc-file-upload-description-color: var(--color-slate-500);
28
+ --rvc-file-upload-description-font-size: var(--text-sm);
29
+ --rvc-file-upload-list-gap: calc(var(--spacing) * 1.5);
30
+ --rvc-file-upload-item-gap: calc(var(--spacing) * 2);
31
+ --rvc-file-upload-item-padding-x: calc(var(--spacing) * 2.5);
32
+ --rvc-file-upload-item-padding-y: calc(var(--spacing) * 1.5);
33
+ --rvc-file-upload-item-border-radius: var(--rvc-base-border-radius);
34
+ --rvc-file-upload-item-border-width: var(--rvc-base-border-width);
35
+ --rvc-file-upload-item-border-style: solid;
36
+ --rvc-file-upload-item-border-color: var(--rvc-base-border-color);
37
+ --rvc-file-upload-item-bg-color: var(--color-white);
38
+ --rvc-file-upload-file-color: var(--color-slate-700);
39
+ --rvc-file-upload-file-font-size: var(--text-sm);
40
+ --rvc-file-upload-thumbnail-size: calc(var(--spacing) * 8);
41
+ --rvc-file-upload-thumbnail-border-radius: calc(infinity * 1px);
42
+ --rvc-file-upload-thumbnail-bg-color: var(--color-slate-100);
43
+ --rvc-file-upload-thumbnail-object-fit: cover;
44
+ --rvc-file-upload-remove-size: calc(var(--spacing) * 6);
45
+ --rvc-file-upload-remove-border-radius: var(--rvc-base-border-radius);
46
+ --rvc-file-upload-remove-color: var(--color-slate-400);
47
+ --rvc-file-upload-remove-color-hover: var(--color-red-600);
48
+ --rvc-file-upload-remove-bg-color-hover: var(--color-red-50);
49
+ --rvc-file-upload-remove-icon-size: calc(var(--spacing) * 4);
50
+
51
+ /* Small variant */
52
+ --rvc-file-upload-gap-sm: calc(var(--spacing) * 2);
53
+ --rvc-file-upload-area-padding-x-sm: calc(var(--spacing) * 4);
54
+ --rvc-file-upload-area-padding-y-sm: calc(var(--spacing) * 4);
55
+ --rvc-file-upload-area-min-height-sm: calc(var(--spacing) * 24);
56
+ --rvc-file-upload-icon-size-sm: calc(var(--spacing) * 5);
57
+ }
58
+
59
+ @layer components {
60
+ .rvc-file-upload {
61
+ display: flex;
62
+ flex-direction: column;
63
+ gap: var(--rvc-file-upload-gap);
64
+
65
+ &.rvc-file-upload-sm {
66
+ --rvc-file-upload-gap: var(--rvc-file-upload-gap-sm);
67
+ --rvc-file-upload-area-padding-x: var(--rvc-file-upload-area-padding-x-sm);
68
+ --rvc-file-upload-area-padding-y: var(--rvc-file-upload-area-padding-y-sm);
69
+ --rvc-file-upload-area-min-height: var(--rvc-file-upload-area-min-height-sm);
70
+ --rvc-file-upload-icon-size: var(--rvc-file-upload-icon-size-sm);
71
+ }
72
+
73
+ &.rvc-file-upload-disabled {
74
+ opacity: var(--rvc-file-upload-disabled-opacity);
75
+ }
76
+
77
+ &.rvc-file-upload-dragging .rvc-file-upload-area {
78
+ border-color: var(--rvc-file-upload-area-border-color-dragging);
79
+ background-color: var(--rvc-file-upload-area-bg-color-dragging);
80
+ }
81
+ }
82
+
83
+ .rvc-file-upload-input {
84
+ display: none;
85
+ }
86
+
87
+ .rvc-file-upload-area {
88
+ display: flex;
89
+ flex-direction: column;
90
+ align-items: center;
91
+ justify-content: center;
92
+ width: 100%;
93
+ min-height: var(--rvc-file-upload-area-min-height);
94
+ padding: var(--rvc-file-upload-area-padding-y) var(--rvc-file-upload-area-padding-x);
95
+ transition-property: var(--rvc-file-upload-transition-property);
96
+ transition-duration: var(--rvc-file-upload-transition-duration);
97
+ transition-timing-function: var(--rvc-file-upload-transition-timing-function);
98
+ border-width: var(--rvc-file-upload-area-border-width);
99
+ border-style: var(--rvc-file-upload-area-border-style);
100
+ border-radius: var(--rvc-file-upload-area-border-radius);
101
+ border-color: var(--rvc-file-upload-area-border-color);
102
+ background-color: var(--rvc-file-upload-area-bg-color);
103
+ color: var(--rvc-file-upload-description-color);
104
+ text-align: center;
105
+ cursor: pointer;
106
+ gap: var(--rvc-file-upload-area-gap);
107
+ appearance: none;
108
+
109
+ &:disabled {
110
+ cursor: not-allowed;
111
+ }
112
+ }
113
+
114
+ .rvc-file-upload:not(.rvc-file-upload-disabled) .rvc-file-upload-area:hover {
115
+ border-color: var(--rvc-file-upload-area-border-color-hover);
116
+ background-color: var(--rvc-file-upload-area-bg-color-hover);
117
+
118
+ .rvc-file-upload-icon {
119
+ color: var(--rvc-file-upload-icon-color-hover);
120
+ }
121
+ }
122
+
123
+ .rvc-file-upload-icon {
124
+ display: block;
125
+ width: var(--rvc-file-upload-icon-size);
126
+ height: var(--rvc-file-upload-icon-size);
127
+ margin-bottom: calc(var(--spacing) * 1);
128
+ transition-property: var(--rvc-file-upload-transition-property);
129
+ transition-duration: var(--rvc-file-upload-transition-duration);
130
+ transition-timing-function: var(--rvc-file-upload-transition-timing-function);
131
+ color: var(--rvc-file-upload-icon-color);
132
+ }
133
+
134
+ .rvc-file-upload-label {
135
+ display: block;
136
+ color: var(--rvc-file-upload-label-color);
137
+ font-size: var(--rvc-file-upload-label-font-size);
138
+ font-weight: var(--rvc-file-upload-label-font-weight);
139
+ }
140
+
141
+ .rvc-file-upload-description {
142
+ display: block;
143
+ color: var(--rvc-file-upload-description-color);
144
+ font-size: var(--rvc-file-upload-description-font-size);
145
+ }
146
+
147
+ .rvc-file-upload-list {
148
+ display: flex;
149
+ flex-direction: column;
150
+ margin: 0;
151
+ padding: 0;
152
+ list-style: none;
153
+ gap: var(--rvc-file-upload-list-gap);
154
+ }
155
+
156
+ .rvc-file-upload-item {
157
+ display: flex;
158
+ align-items: center;
159
+ justify-content: space-between;
160
+ min-width: 0;
161
+ padding: var(--rvc-file-upload-item-padding-y) var(--rvc-file-upload-item-padding-x);
162
+ border-width: var(--rvc-file-upload-item-border-width);
163
+ border-style: var(--rvc-file-upload-item-border-style);
164
+ border-radius: var(--rvc-file-upload-item-border-radius);
165
+ border-color: var(--rvc-file-upload-item-border-color);
166
+ background-color: var(--rvc-file-upload-item-bg-color);
167
+ gap: var(--rvc-file-upload-item-gap);
168
+ }
169
+
170
+ .rvc-file-upload-file {
171
+ min-width: 0;
172
+ margin-right: auto;
173
+ overflow: hidden;
174
+ color: var(--rvc-file-upload-file-color);
175
+ font-size: var(--rvc-file-upload-file-font-size);
176
+ text-overflow: ellipsis;
177
+ white-space: nowrap;
178
+
179
+ &[href] {
180
+ text-decoration: none;
181
+
182
+ &:hover {
183
+ text-decoration: underline;
184
+ }
185
+ }
186
+ }
187
+
188
+ .rvc-file-upload-thumbnail {
189
+ display: block;
190
+ flex-shrink: 0;
191
+ width: var(--rvc-file-upload-thumbnail-size);
192
+ height: var(--rvc-file-upload-thumbnail-size);
193
+ border-radius: var(--rvc-file-upload-thumbnail-border-radius);
194
+ background-color: var(--rvc-file-upload-thumbnail-bg-color);
195
+ object-fit: var(--rvc-file-upload-thumbnail-object-fit);
196
+ }
197
+
198
+ .rvc-file-upload-remove {
199
+ display: inline-flex;
200
+ flex-shrink: 0;
201
+ align-items: center;
202
+ justify-content: center;
203
+ width: var(--rvc-file-upload-remove-size);
204
+ height: var(--rvc-file-upload-remove-size);
205
+ padding: 0;
206
+ border: 0;
207
+ border-radius: var(--rvc-file-upload-remove-border-radius);
208
+ background-color: transparent;
209
+ color: var(--rvc-file-upload-remove-color);
210
+ cursor: pointer;
211
+ appearance: none;
212
+
213
+ &:hover {
214
+ background-color: var(--rvc-file-upload-remove-bg-color-hover);
215
+ color: var(--rvc-file-upload-remove-color-hover);
216
+ }
217
+
218
+ &:disabled {
219
+ cursor: not-allowed;
220
+ }
221
+
222
+ svg {
223
+ width: var(--rvc-file-upload-remove-icon-size);
224
+ height: var(--rvc-file-upload-remove-icon-size);
225
+ }
226
+ }
227
+ }
@@ -1,19 +1,20 @@
1
- import { _ as e, a as s, b as t, c as r, d as m, e as p, f as x, g as c, h as f, i } from "../_shared/Tabs.vue_vue_type_script_setup_true_lang-BkxgXUlf.js";
2
- import { _ as b } from "../_shared/ChevronDownIcon-BYWciGnh.js";
3
- import { _ } from "../_shared/ButtonBase.vue_vue_type_script_setup_true_lang-ZYVNEyNx.js";
4
- import { _ as l } from "../_shared/FormInput.vue_vue_type_script_setup_true_lang-Bg7YPGyY.js";
1
+ import { _ as e, a as s, b as t, c as r, d as m, e as p, f as i, g as x, h as c, i as d, j as f } from "../_shared/Tabs.vue_vue_type_script_setup_true_lang-BaTWaeN3.js";
2
+ import { _ as n } from "../_shared/ChevronDownIcon-BYWciGnh.js";
3
+ import { _ as F } from "../_shared/ButtonBase.vue_vue_type_script_setup_true_lang-ZYVNEyNx.js";
4
+ import { _ as g } from "../_shared/FormInput.vue_vue_type_script_setup_true_lang-Bg7YPGyY.js";
5
5
  export {
6
6
  e as Accordion,
7
7
  s as Alert,
8
- b as Badge,
9
- _ as ButtonBase,
8
+ n as Badge,
9
+ F as ButtonBase,
10
10
  t as Checkbox,
11
11
  r as DataTable,
12
12
  m as EmptyState,
13
- l as FormInput,
14
- p as FormSelect,
13
+ p as FileUpload,
14
+ g as FormInput,
15
+ i as FormSelect,
15
16
  x as FormTextarea,
16
17
  c as Pagination,
17
- f as Radio,
18
- i as Tabs
18
+ d as Radio,
19
+ f as Tabs
19
20
  };
@@ -4,6 +4,7 @@
4
4
  @import "./button.css";
5
5
  @import "./checkbox.css";
6
6
  @import "./empty-state.css";
7
+ @import "./file-upload.css";
7
8
  @import "./input.css";
8
9
  @import "./pagination.css";
9
10
  @import "./radio.css";
package/dist/core.d.ts CHANGED
@@ -9,7 +9,24 @@ import { VNodeProps } from 'vue';
9
9
 
10
10
  declare const __VLS_component: DefineComponent<AccordionProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<AccordionProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
11
11
 
12
- declare const __VLS_component_10: DefineComponent<PaginationProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
12
+ declare const __VLS_component_10: DefineComponent<FormSelectProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
13
+ "update:modelValue": (value: FormSelectModelValue) => any;
14
+ }, string, PublicProps, Readonly<FormSelectProps> & Readonly<{
15
+ "onUpdate:modelValue"?: ((value: FormSelectModelValue) => any) | undefined;
16
+ }>, {
17
+ icon: Icon | null;
18
+ size: FormSelectSize;
19
+ modelValue: FormSelectModelValue;
20
+ rootClass: string;
21
+ prefixIcon: Icon | null;
22
+ options: FormSelectOption[];
23
+ optionLabel: string;
24
+ optionValue: string;
25
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {
26
+ select: HTMLSelectElement;
27
+ }, any>;
28
+
29
+ declare const __VLS_component_11: DefineComponent<PaginationProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
13
30
  "pagination:change": (url: string) => any;
14
31
  "pagination:perPage": (perPage: number) => any;
15
32
  }, string, PublicProps, Readonly<PaginationProps> & Readonly<{
@@ -24,7 +41,7 @@ prevIcon: Icon | null;
24
41
  nextIcon: Icon | null;
25
42
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
26
43
 
27
- declare const __VLS_component_11: DefineComponent<RadioProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
44
+ declare const __VLS_component_12: DefineComponent<RadioProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
28
45
  "update:modelValue": (value: RadioModelValue) => any;
29
46
  }, string, PublicProps, Readonly<RadioProps> & Readonly<{
30
47
  "onUpdate:modelValue"?: ((value: RadioModelValue) => any) | undefined;
@@ -106,35 +123,47 @@ defaultSort: DataTableSortBy | null;
106
123
 
107
124
  declare const __VLS_component_7: DefineComponent<EmptyStateProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<EmptyStateProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, HTMLDivElement>;
108
125
 
109
- declare const __VLS_component_8: DefineComponent<FormInputProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
110
- "update:modelValue": (value: FormInputModelValue) => any;
111
- }, string, PublicProps, Readonly<FormInputProps> & Readonly<{
112
- "onUpdate:modelValue"?: ((value: FormInputModelValue) => any) | undefined;
126
+ declare const __VLS_component_8: DefineComponent<FileUploadProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
127
+ "update:modelValue": (value: FileUploadModelValue) => any;
128
+ "file-upload:add": (files: File[]) => any;
129
+ "file-upload:remove": (file: File) => any;
130
+ "file-upload:remove-existing": (file: FileUploadExistingFile) => any;
131
+ }, string, PublicProps, Readonly<FileUploadProps> & Readonly<{
132
+ "onUpdate:modelValue"?: ((value: FileUploadModelValue) => any) | undefined;
133
+ "onFile-upload:add"?: ((files: File[]) => any) | undefined;
134
+ "onFile-upload:remove"?: ((file: File) => any) | undefined;
135
+ "onFile-upload:remove-existing"?: ((file: FileUploadExistingFile) => any) | undefined;
113
136
  }>, {
137
+ label: string;
114
138
  icon: Icon | null;
115
- size: FormInputSize;
116
- modelValue: string | number;
139
+ size: FileUploadSize;
140
+ modelValue: FileUploadModelValue;
117
141
  rootClass: string;
118
- prefixIcon: Icon | null;
142
+ disabled: boolean;
143
+ existingFiles: FileUploadExistingFile[];
144
+ variant: FileUploadVariant;
145
+ multiple: boolean;
146
+ accept: string;
147
+ showThumbnails: boolean;
148
+ description: string;
149
+ buttonLabel: string;
150
+ buttonColor: FileUploadButtonColor;
119
151
  }, {}, {}, {}, string, ComponentProvideOptions, false, {
120
152
  input: HTMLInputElement;
121
153
  }, any>;
122
154
 
123
- declare const __VLS_component_9: DefineComponent<FormSelectProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
124
- "update:modelValue": (value: FormSelectModelValue) => any;
125
- }, string, PublicProps, Readonly<FormSelectProps> & Readonly<{
126
- "onUpdate:modelValue"?: ((value: FormSelectModelValue) => any) | undefined;
155
+ declare const __VLS_component_9: DefineComponent<FormInputProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {} & {
156
+ "update:modelValue": (value: FormInputModelValue) => any;
157
+ }, string, PublicProps, Readonly<FormInputProps> & Readonly<{
158
+ "onUpdate:modelValue"?: ((value: FormInputModelValue) => any) | undefined;
127
159
  }>, {
128
160
  icon: Icon | null;
129
- size: FormSelectSize;
130
- modelValue: FormSelectModelValue;
161
+ size: FormInputSize;
162
+ modelValue: string | number;
131
163
  rootClass: string;
132
164
  prefixIcon: Icon | null;
133
- options: FormSelectOption[];
134
- optionLabel: string;
135
- optionValue: string;
136
165
  }, {}, {}, {}, string, ComponentProvideOptions, false, {
137
- select: HTMLSelectElement;
166
+ input: HTMLInputElement;
138
167
  }, any>;
139
168
 
140
169
  declare function __VLS_template(): {
@@ -157,6 +186,25 @@ declare function __VLS_template(): {
157
186
  };
158
187
 
159
188
  declare function __VLS_template_10(): {
189
+ attrs: Partial<{}>;
190
+ slots: {
191
+ prefixIcon?(_: {
192
+ icon: Icon;
193
+ }): any;
194
+ select?(_: {}): any;
195
+ default?(_: {}): any;
196
+ default?(_: {}): any;
197
+ icon?(_: {
198
+ icon: Icon | null;
199
+ }): any;
200
+ };
201
+ refs: {
202
+ select: HTMLSelectElement;
203
+ };
204
+ rootEl: any;
205
+ };
206
+
207
+ declare function __VLS_template_11(): {
160
208
  attrs: Partial<{}>;
161
209
  slots: {
162
210
  perPage?(_: {
@@ -188,7 +236,7 @@ declare function __VLS_template_10(): {
188
236
  rootEl: any;
189
237
  };
190
238
 
191
- declare function __VLS_template_11(): {
239
+ declare function __VLS_template_12(): {
192
240
  attrs: Partial<{}>;
193
241
  slots: {
194
242
  default?(_: {}): any;
@@ -328,15 +376,18 @@ declare function __VLS_template_7(): {
328
376
  declare function __VLS_template_8(): {
329
377
  attrs: Partial<{}>;
330
378
  slots: {
331
- prefix?(_: {}): any;
332
- prefixIcon?(_: {
333
- icon: Icon | null;
379
+ icon?(_: {
380
+ icon: FunctionalComponent<HTMLAttributes & VNodeProps, {}, any, {}> | Icon;
334
381
  }): any;
335
- input?(_: {}): any;
336
- suffix?(_: {}): any;
337
382
  icon?(_: {
338
383
  icon: Icon | null;
339
384
  }): any;
385
+ preview?(_: {
386
+ files: File[];
387
+ existingFiles: FileUploadExistingFile[];
388
+ removeFile: (fileOrIndex: File | number) => void;
389
+ removeExistingFile: (file: FileUploadExistingFile) => void;
390
+ }): any;
340
391
  };
341
392
  refs: {
342
393
  input: HTMLInputElement;
@@ -347,18 +398,18 @@ declare function __VLS_template_8(): {
347
398
  declare function __VLS_template_9(): {
348
399
  attrs: Partial<{}>;
349
400
  slots: {
401
+ prefix?(_: {}): any;
350
402
  prefixIcon?(_: {
351
- icon: Icon;
403
+ icon: Icon | null;
352
404
  }): any;
353
- select?(_: {}): any;
354
- default?(_: {}): any;
355
- default?(_: {}): any;
405
+ input?(_: {}): any;
406
+ suffix?(_: {}): any;
356
407
  icon?(_: {
357
408
  icon: Icon | null;
358
409
  }): any;
359
410
  };
360
411
  refs: {
361
- select: HTMLSelectElement;
412
+ input: HTMLInputElement;
362
413
  };
363
414
  rootEl: any;
364
415
  };
@@ -369,6 +420,8 @@ declare type __VLS_TemplateResult_10 = ReturnType<typeof __VLS_template_10>;
369
420
 
370
421
  declare type __VLS_TemplateResult_11 = ReturnType<typeof __VLS_template_11>;
371
422
 
423
+ declare type __VLS_TemplateResult_12 = ReturnType<typeof __VLS_template_12>;
424
+
372
425
  declare type __VLS_TemplateResult_2 = ReturnType<typeof __VLS_template_2>;
373
426
 
374
427
  declare type __VLS_TemplateResult_3 = ReturnType<typeof __VLS_template_3>;
@@ -403,6 +456,12 @@ declare type __VLS_WithTemplateSlots_11<T, S> = T & {
403
456
  };
404
457
  };
405
458
 
459
+ declare type __VLS_WithTemplateSlots_12<T, S> = T & {
460
+ new (): {
461
+ $slots: S;
462
+ };
463
+ };
464
+
406
465
  declare type __VLS_WithTemplateSlots_2<T, S> = T & {
407
466
  new (): {
408
467
  $slots: S;
@@ -576,7 +635,43 @@ declare interface EmptyStateProps {
576
635
  icon?: Icon | null;
577
636
  }
578
637
 
579
- export declare const FormInput: __VLS_WithTemplateSlots_8<typeof __VLS_component_8, __VLS_TemplateResult_8["slots"]>;
638
+ export declare const FileUpload: __VLS_WithTemplateSlots_8<typeof __VLS_component_8, __VLS_TemplateResult_8["slots"]>;
639
+
640
+ declare type FileUploadButtonColor = NonNullable<ButtonProps['color']>;
641
+
642
+ declare interface FileUploadExistingFile {
643
+ id: string | number;
644
+ name: string;
645
+ url?: string;
646
+ thumbnailUrl?: string;
647
+ size?: number;
648
+ type?: string;
649
+ }
650
+
651
+ declare type FileUploadModelValue = File | File[] | null;
652
+
653
+ declare interface FileUploadProps {
654
+ modelValue?: FileUploadModelValue;
655
+ existingFiles?: FileUploadExistingFile[];
656
+ variant?: FileUploadVariant;
657
+ size?: FileUploadSize;
658
+ multiple?: boolean;
659
+ accept?: string;
660
+ disabled?: boolean;
661
+ showThumbnails?: boolean;
662
+ label?: string;
663
+ description?: string;
664
+ buttonLabel?: string;
665
+ buttonColor?: FileUploadButtonColor;
666
+ icon?: Icon | null;
667
+ rootClass?: string;
668
+ }
669
+
670
+ declare type FileUploadSize = 'sm' | 'base';
671
+
672
+ declare type FileUploadVariant = 'area' | 'button';
673
+
674
+ export declare const FormInput: __VLS_WithTemplateSlots_9<typeof __VLS_component_9, __VLS_TemplateResult_9["slots"]>;
580
675
 
581
676
  declare type FormInputModelValue = string | number | undefined;
582
677
 
@@ -590,7 +685,7 @@ declare interface FormInputProps {
590
685
 
591
686
  declare type FormInputSize = 'sm' | 'base';
592
687
 
593
- export declare const FormSelect: __VLS_WithTemplateSlots_9<typeof __VLS_component_9, __VLS_TemplateResult_9["slots"]>;
688
+ export declare const FormSelect: __VLS_WithTemplateSlots_10<typeof __VLS_component_10, __VLS_TemplateResult_10["slots"]>;
594
689
 
595
690
  declare type FormSelectModelValue = string | number | object | boolean | null;
596
691
 
@@ -631,7 +726,7 @@ declare type FormTextareaSize = 'sm' | 'base';
631
726
 
632
727
  declare type Icon = FunctionalComponent<SVGAttributes & HTMLAttributes & VNodeProps>;
633
728
 
634
- export declare const Pagination: __VLS_WithTemplateSlots_10<typeof __VLS_component_10, __VLS_TemplateResult_10["slots"]>;
729
+ export declare const Pagination: __VLS_WithTemplateSlots_11<typeof __VLS_component_11, __VLS_TemplateResult_11["slots"]>;
635
730
 
636
731
  declare interface PaginationData {
637
732
  total: number;
@@ -657,7 +752,7 @@ declare interface PaginationProps {
657
752
  nextIcon?: Icon | null;
658
753
  }
659
754
 
660
- export declare const Radio: __VLS_WithTemplateSlots_11<typeof __VLS_component_11, __VLS_TemplateResult_11["slots"]>;
755
+ export declare const Radio: __VLS_WithTemplateSlots_12<typeof __VLS_component_12, __VLS_TemplateResult_12["slots"]>;
661
756
 
662
757
  declare type RadioModelValue = boolean | string | Array<unknown> | object | number | null;
663
758
 
@@ -1,35 +1,36 @@
1
- import { _ as r, a as t, b as e, c as s, d as m, e as p, f as x, g as f, h as _, i } from "../_shared/Tabs.vue_vue_type_script_setup_true_lang-BkxgXUlf.js";
2
- import { _ as d } from "../_shared/ChevronDownIcon-BYWciGnh.js";
1
+ import { _ as r, a as t, b as e, c as s, d as m, e as p, f as x, g as f, h as _, i, j as d } from "../_shared/Tabs.vue_vue_type_script_setup_true_lang-BaTWaeN3.js";
2
+ import { _ as l } from "../_shared/ChevronDownIcon-BYWciGnh.js";
3
3
  import { _ as n } from "../_shared/ButtonBase.vue_vue_type_script_setup_true_lang-ZYVNEyNx.js";
4
4
  import { _ as h } from "../_shared/FormInput.vue_vue_type_script_setup_true_lang-Bg7YPGyY.js";
5
- import { _ as g } from "../_shared/Combobox.vue_vue_type_script_setup_true_lang-BwTRzqr6.js";
5
+ import { _ as F } from "../_shared/Combobox.vue_vue_type_script_setup_true_lang-BwTRzqr6.js";
6
6
  import { _ as B } from "../_shared/Drawer.vue_vue_type_script_setup_true_lang-DeAu2U_2.js";
7
- import { _ as F } from "../_shared/Modal.vue_vue_type_script_setup_true_lang-CdMsCCBi.js";
8
- import { _ as A } from "../_shared/Dropdown.vue_vue_type_script_setup_true_lang-Cv3HwIyF.js";
9
- import { _ as E } from "../_shared/Lightswitch.vue_vue_type_script_setup_true_lang-hiuDVfo5.js";
10
- import { _ as S } from "../_shared/RichTextEditor.vue_vue_type_script_setup_true_lang-Miebq2nL.js";
7
+ import { _ as u } from "../_shared/Modal.vue_vue_type_script_setup_true_lang-CdMsCCBi.js";
8
+ import { _ as C } from "../_shared/Dropdown.vue_vue_type_script_setup_true_lang-Cv3HwIyF.js";
9
+ import { _ as R } from "../_shared/Lightswitch.vue_vue_type_script_setup_true_lang-hiuDVfo5.js";
10
+ import { _ as j } from "../_shared/RichTextEditor.vue_vue_type_script_setup_true_lang-Miebq2nL.js";
11
11
  import { _ as y } from "../_shared/Toast.vue_vue_type_script_setup_true_lang-DS6keeu7.js";
12
12
  import { _ as L } from "../_shared/Tooltip.vue_vue_type_script_setup_true_lang-B3MHy48T.js";
13
13
  export {
14
14
  r as Accordion,
15
15
  t as Alert,
16
- d as Badge,
16
+ l as Badge,
17
17
  n as ButtonBase,
18
18
  e as Checkbox,
19
- g as Combobox,
19
+ F as Combobox,
20
20
  s as DataTable,
21
21
  B as Drawer,
22
- A as Dropdown,
22
+ C as Dropdown,
23
23
  m as EmptyState,
24
+ p as FileUpload,
24
25
  h as FormInput,
25
- p as FormSelect,
26
- x as FormTextarea,
27
- E as Lightswitch,
28
- F as Modal,
29
- f as Pagination,
30
- _ as Radio,
31
- S as RichTextEditor,
32
- i as Tabs,
26
+ x as FormSelect,
27
+ f as FormTextarea,
28
+ R as Lightswitch,
29
+ u as Modal,
30
+ _ as Pagination,
31
+ i as Radio,
32
+ j as RichTextEditor,
33
+ d as Tabs,
33
34
  y as Toast,
34
35
  L as Tooltip
35
36
  };