@rotki/ui-library 2.9.0 → 2.9.1

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 (36) hide show
  1. package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +4 -0
  2. package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js +16 -7
  3. package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js.map +1 -1
  4. package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +49 -16
  5. package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js +19 -12
  6. package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js.map +1 -1
  7. package/dist/components/forms/checkbox/RuiCheckbox.vue.d.ts +2 -0
  8. package/dist/components/forms/checkbox/RuiCheckbox.vue2.js +8 -2
  9. package/dist/components/forms/checkbox/RuiCheckbox.vue2.js.map +1 -1
  10. package/dist/components/forms/radio-button/radio/RuiRadio.vue.d.ts +1 -0
  11. package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js +8 -2
  12. package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js.map +1 -1
  13. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.d.ts +1 -0
  14. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js +12 -3
  15. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js.map +1 -1
  16. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.d.ts +1 -0
  17. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js +2 -1
  18. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js.map +1 -1
  19. package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +49 -16
  20. package/dist/components/forms/select/RuiMenuSelect.vue2.js +15 -8
  21. package/dist/components/forms/select/RuiMenuSelect.vue2.js.map +1 -1
  22. package/dist/components/forms/slider/RuiSlider.vue.d.ts +2 -0
  23. package/dist/components/forms/slider/RuiSlider.vue2.js +17 -9
  24. package/dist/components/forms/slider/RuiSlider.vue2.js.map +1 -1
  25. package/dist/components/forms/switch/RuiSwitch.vue.d.ts +2 -0
  26. package/dist/components/forms/switch/RuiSwitch.vue2.js +8 -2
  27. package/dist/components/forms/switch/RuiSwitch.vue2.js.map +1 -1
  28. package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +2 -0
  29. package/dist/components/forms/text-area/RuiTextArea.vue2.js +18 -8
  30. package/dist/components/forms/text-area/RuiTextArea.vue2.js.map +1 -1
  31. package/dist/components/forms/text-field/RuiTextField.vue.d.ts +2 -0
  32. package/dist/components/forms/text-field/RuiTextField.vue2.js +18 -8
  33. package/dist/components/forms/text-field/RuiTextField.vue2.js.map +1 -1
  34. package/dist/style.css +26 -26
  35. package/dist/web-types.json +111 -1
  36. package/package.json +1 -1
@@ -25,6 +25,7 @@ export interface Props<TValue, TItem> {
25
25
  autoSelectFirst?: boolean;
26
26
  hideNoData?: boolean;
27
27
  noDataText?: string;
28
+ required?: boolean;
28
29
  }
29
30
  declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_expose?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
30
31
  props: __VLS_PrettifyLocal<(Props<TValue, TItem> & {
@@ -62,7 +63,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
62
63
  readonly autoSelectFirst: boolean;
63
64
  readonly hideNoData: boolean;
64
65
  readonly noDataText: string;
65
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
66
+ readonly required: boolean;
67
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
66
68
  disabled: false;
67
69
  loading: false;
68
70
  readOnly: false;
@@ -82,6 +84,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
82
84
  autoSelectFirst: false;
83
85
  hideNoData: false;
84
86
  noDataText: "No data available";
87
+ required: false;
85
88
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"]] extends [globalThis.Ref<any, any>] ? (Readonly<{
86
89
  options: TItem[];
87
90
  menuOptions: MenuProps;
@@ -108,7 +111,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
108
111
  readonly autoSelectFirst: boolean;
109
112
  readonly hideNoData: boolean;
110
113
  readonly noDataText: string;
111
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
114
+ readonly required: boolean;
115
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
112
116
  disabled: false;
113
117
  loading: false;
114
118
  readOnly: false;
@@ -128,6 +132,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
128
132
  autoSelectFirst: false;
129
133
  hideNoData: false;
130
134
  noDataText: "No data available";
135
+ required: false;
131
136
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"] : globalThis.Ref<(Readonly<{
132
137
  options: TItem[];
133
138
  menuOptions: MenuProps;
@@ -154,7 +159,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
154
159
  readonly autoSelectFirst: boolean;
155
160
  readonly hideNoData: boolean;
156
161
  readonly noDataText: string;
157
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
162
+ readonly required: boolean;
163
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
158
164
  disabled: false;
159
165
  loading: false;
160
166
  readOnly: false;
@@ -174,6 +180,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
174
180
  autoSelectFirst: false;
175
181
  hideNoData: false;
176
182
  noDataText: "No data available";
183
+ required: false;
177
184
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"], (Readonly<{
178
185
  options: TItem[];
179
186
  menuOptions: MenuProps;
@@ -200,7 +207,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
200
207
  readonly autoSelectFirst: boolean;
201
208
  readonly hideNoData: boolean;
202
209
  readonly noDataText: string;
203
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
210
+ readonly required: boolean;
211
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
204
212
  disabled: false;
205
213
  loading: false;
206
214
  readOnly: false;
@@ -220,6 +228,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
220
228
  autoSelectFirst: false;
221
229
  hideNoData: false;
222
230
  noDataText: "No data available";
231
+ required: false;
223
232
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"]>>;
224
233
  value: TItem | undefined;
225
234
  variant: "default" | "outlined" | "filled";
@@ -269,7 +278,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
269
278
  readonly autoSelectFirst: boolean;
270
279
  readonly hideNoData: boolean;
271
280
  readonly noDataText: string;
272
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
281
+ readonly required: boolean;
282
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
273
283
  disabled: false;
274
284
  loading: false;
275
285
  readOnly: false;
@@ -289,6 +299,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
289
299
  autoSelectFirst: false;
290
300
  hideNoData: false;
291
301
  noDataText: "No data available";
302
+ required: false;
292
303
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"]] extends [globalThis.Ref<any, any>] ? (Readonly<{
293
304
  options: TItem[];
294
305
  menuOptions: MenuProps;
@@ -315,7 +326,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
315
326
  readonly autoSelectFirst: boolean;
316
327
  readonly hideNoData: boolean;
317
328
  readonly noDataText: string;
318
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
329
+ readonly required: boolean;
330
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
319
331
  disabled: false;
320
332
  loading: false;
321
333
  readOnly: false;
@@ -335,6 +347,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
335
347
  autoSelectFirst: false;
336
348
  hideNoData: false;
337
349
  noDataText: "No data available";
350
+ required: false;
338
351
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"] : globalThis.Ref<(Readonly<{
339
352
  options: TItem[];
340
353
  menuOptions: MenuProps;
@@ -361,7 +374,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
361
374
  readonly autoSelectFirst: boolean;
362
375
  readonly hideNoData: boolean;
363
376
  readonly noDataText: string;
364
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
377
+ readonly required: boolean;
378
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
365
379
  disabled: false;
366
380
  loading: false;
367
381
  readOnly: false;
@@ -381,6 +395,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
381
395
  autoSelectFirst: false;
382
396
  hideNoData: false;
383
397
  noDataText: "No data available";
398
+ required: false;
384
399
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"], (Readonly<{
385
400
  options: TItem[];
386
401
  menuOptions: MenuProps;
@@ -407,7 +422,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
407
422
  readonly autoSelectFirst: boolean;
408
423
  readonly hideNoData: boolean;
409
424
  readonly noDataText: string;
410
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
425
+ readonly required: boolean;
426
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
411
427
  disabled: false;
412
428
  loading: false;
413
429
  readOnly: false;
@@ -427,6 +443,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
427
443
  autoSelectFirst: false;
428
444
  hideNoData: false;
429
445
  noDataText: "No data available";
446
+ required: false;
430
447
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"]>>;
431
448
  item: TItem;
432
449
  active: boolean;
@@ -459,7 +476,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
459
476
  readonly autoSelectFirst: boolean;
460
477
  readonly hideNoData: boolean;
461
478
  readonly noDataText: string;
462
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
479
+ readonly required: boolean;
480
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
463
481
  disabled: false;
464
482
  loading: false;
465
483
  readOnly: false;
@@ -479,6 +497,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
479
497
  autoSelectFirst: false;
480
498
  hideNoData: false;
481
499
  noDataText: "No data available";
500
+ required: false;
482
501
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"]] extends [globalThis.Ref<any, any>] ? (Readonly<{
483
502
  options: TItem[];
484
503
  menuOptions: MenuProps;
@@ -505,7 +524,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
505
524
  readonly autoSelectFirst: boolean;
506
525
  readonly hideNoData: boolean;
507
526
  readonly noDataText: string;
508
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
527
+ readonly required: boolean;
528
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
509
529
  disabled: false;
510
530
  loading: false;
511
531
  readOnly: false;
@@ -525,6 +545,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
525
545
  autoSelectFirst: false;
526
546
  hideNoData: false;
527
547
  noDataText: "No data available";
548
+ required: false;
528
549
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"] : globalThis.Ref<(Readonly<{
529
550
  options: TItem[];
530
551
  menuOptions: MenuProps;
@@ -551,7 +572,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
551
572
  readonly autoSelectFirst: boolean;
552
573
  readonly hideNoData: boolean;
553
574
  readonly noDataText: string;
554
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
575
+ readonly required: boolean;
576
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
555
577
  disabled: false;
556
578
  loading: false;
557
579
  readOnly: false;
@@ -571,6 +593,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
571
593
  autoSelectFirst: false;
572
594
  hideNoData: false;
573
595
  noDataText: "No data available";
596
+ required: false;
574
597
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"], (Readonly<{
575
598
  options: TItem[];
576
599
  menuOptions: MenuProps;
@@ -597,7 +620,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
597
620
  readonly autoSelectFirst: boolean;
598
621
  readonly hideNoData: boolean;
599
622
  readonly noDataText: string;
600
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
623
+ readonly required: boolean;
624
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
601
625
  disabled: false;
602
626
  loading: false;
603
627
  readOnly: false;
@@ -617,6 +641,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
617
641
  autoSelectFirst: false;
618
642
  hideNoData: false;
619
643
  noDataText: "No data available";
644
+ required: false;
620
645
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"]>>;
621
646
  item: TItem;
622
647
  active: boolean;
@@ -649,7 +674,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
649
674
  readonly autoSelectFirst: boolean;
650
675
  readonly hideNoData: boolean;
651
676
  readonly noDataText: string;
652
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
677
+ readonly required: boolean;
678
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
653
679
  disabled: false;
654
680
  loading: false;
655
681
  readOnly: false;
@@ -669,6 +695,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
669
695
  autoSelectFirst: false;
670
696
  hideNoData: false;
671
697
  noDataText: "No data available";
698
+ required: false;
672
699
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"]] extends [globalThis.Ref<any, any>] ? (Readonly<{
673
700
  options: TItem[];
674
701
  menuOptions: MenuProps;
@@ -695,7 +722,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
695
722
  readonly autoSelectFirst: boolean;
696
723
  readonly hideNoData: boolean;
697
724
  readonly noDataText: string;
698
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
725
+ readonly required: boolean;
726
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
699
727
  disabled: false;
700
728
  loading: false;
701
729
  readOnly: false;
@@ -715,6 +743,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
715
743
  autoSelectFirst: false;
716
744
  hideNoData: false;
717
745
  noDataText: "No data available";
746
+ required: false;
718
747
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"] : globalThis.Ref<(Readonly<{
719
748
  options: TItem[];
720
749
  menuOptions: MenuProps;
@@ -741,7 +770,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
741
770
  readonly autoSelectFirst: boolean;
742
771
  readonly hideNoData: boolean;
743
772
  readonly noDataText: string;
744
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
773
+ readonly required: boolean;
774
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
745
775
  disabled: false;
746
776
  loading: false;
747
777
  readOnly: false;
@@ -761,6 +791,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
761
791
  autoSelectFirst: false;
762
792
  hideNoData: false;
763
793
  noDataText: "No data available";
794
+ required: false;
764
795
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"], (Readonly<{
765
796
  options: TItem[];
766
797
  menuOptions: MenuProps;
@@ -787,7 +818,8 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
787
818
  readonly autoSelectFirst: boolean;
788
819
  readonly hideNoData: boolean;
789
820
  readonly noDataText: string;
790
- } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
821
+ readonly required: boolean;
822
+ } & ("disabled" | "autoSelectFirst" | "dense" | "loading" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | ([KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined] extends [boolean | undefined] ? "keyAttr" : never) | ([keyof TItem | undefined] extends [boolean | undefined] ? "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "label" | "disabled" | "keyAttr" | "textAttr" | "appendWidth" | "autoSelectFirst" | "dense" | "itemHeight" | "prependWidth" | "variant" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "clearable" | "readOnly" | "hideNoData" | "noDataText" ? {
791
823
  disabled: false;
792
824
  loading: false;
793
825
  readOnly: false;
@@ -807,6 +839,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
807
839
  autoSelectFirst: false;
808
840
  hideNoData: false;
809
841
  noDataText: "No data available";
842
+ required: false;
810
843
  }[K] extends undefined ? boolean | undefined : boolean : boolean; } : never))["disabled"]>>;
811
844
  item: TItem;
812
845
  active: boolean;
@@ -8,8 +8,12 @@ import { useDropdownMenu } from "../../../composables/dropdown-menu.js";
8
8
  import { useFocus, isDefined } from "@vueuse/core";
9
9
  import { set, get } from "@vueuse/shared";
10
10
  const _hoisted_1 = ["disabled", "aria-disabled", "tabindex"];
11
- const _hoisted_2 = ["value"];
12
- const _hoisted_3 = { class: "p-4" };
11
+ const _hoisted_2 = {
12
+ key: 0,
13
+ class: "text-rui-error"
14
+ };
15
+ const _hoisted_3 = ["value"];
16
+ const _hoisted_4 = { class: "p-4" };
13
17
  const _sfc_main = /* @__PURE__ */ defineComponent({
14
18
  ...{
15
19
  name: "RuiMenuSelect",
@@ -40,7 +44,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
40
44
  hideDetails: { type: Boolean, default: false },
41
45
  autoSelectFirst: { type: Boolean, default: false },
42
46
  hideNoData: { type: Boolean, default: false },
43
- noDataText: { default: "No data available" }
47
+ noDataText: { default: "No data available" },
48
+ required: { type: Boolean, default: false }
44
49
  }, {
45
50
  "modelValue": { required: true },
46
51
  "modelModifiers": {}
@@ -48,7 +53,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
48
53
  emits: ["update:modelValue"],
49
54
  setup(__props) {
50
55
  useCssVars((_ctx) => ({
51
- "v4b241235": unref(labelWithQuote)
56
+ "v2e36bd88": unref(labelWithQuote)
52
57
  }));
53
58
  const modelValue = useModel(__props, "modelValue");
54
59
  const props = __props;
@@ -73,7 +78,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
73
78
  const labelWithQuote = computed(() => {
74
79
  if (!props.label)
75
80
  return '"\\200B"';
76
- return `' ${props.label} '`;
81
+ const asterisk = props.required ? "﹡" : "";
82
+ return `' ${props.label}${asterisk} '`;
77
83
  });
78
84
  const {
79
85
  containerProps,
@@ -176,7 +182,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
176
182
  }, [
177
183
  renderSlot(_ctx.$slots, "activator.label", normalizeProps(guardReactiveProps({ value: unref(value) })), () => [
178
184
  createTextVNode(toDisplayString(__props.label), 1)
179
- ])
185
+ ]),
186
+ __props.required ? (openBlock(), createElementBlock("span", _hoisted_2, " ﹡ ")) : createCommentVNode("", true)
180
187
  ], 2)) : createCommentVNode("", true),
181
188
  unref(value) ? (openBlock(), createElementBlock("span", {
182
189
  key: 1,
@@ -228,7 +235,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
228
235
  value: unref(valueKey),
229
236
  class: "hidden",
230
237
  type: "hidden"
231
- }, null, 8, _hoisted_2)
238
+ }, null, 8, _hoisted_3)
232
239
  ]),
233
240
  default: withCtx(({ width }) => [
234
241
  unref(options).length > 0 ? (openBlock(), createElementBlock("div", mergeProps({
@@ -282,7 +289,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
282
289
  class: normalizeClass(__props.menuClass)
283
290
  }, [
284
291
  renderSlot(_ctx.$slots, "no-data", {}, () => [
285
- createElementVNode("div", _hoisted_3, toDisplayString(__props.noDataText), 1)
292
+ createElementVNode("div", _hoisted_4, toDisplayString(__props.noDataText), 1)
286
293
  ])
287
294
  ], 6)) : createCommentVNode("", true)
288
295
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"RuiMenuSelect.vue2.js","sources":["../../../../src/components/forms/select/RuiMenuSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup generic=\"TValue, TItem\">\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport RuiMenu, { type MenuProps } from '@/components/overlays/menu/RuiMenu.vue';\nimport RuiProgress from '@/components/progress/RuiProgress.vue';\nimport { type KeyOfType, useDropdownMenu } from '@/composables/dropdown-menu';\n\nexport interface Props<TValue, TItem> {\n options: TItem[];\n keyAttr?: KeyOfType<TItem, TValue extends Array<infer U> ? U : TValue>;\n textAttr?: keyof TItem;\n disabled?: boolean;\n loading?: boolean;\n readOnly?: boolean;\n dense?: boolean;\n clearable?: boolean;\n label?: string;\n menuOptions?: MenuProps;\n labelClass?: string;\n menuClass?: string;\n optionClass?: string;\n prependWidth?: number; // in rem\n appendWidth?: number; // in rem\n itemHeight?: number; // in px\n variant?: 'default' | 'filled' | 'outlined';\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n hideDetails?: boolean;\n autoSelectFirst?: boolean;\n hideNoData?: boolean;\n noDataText?: string;\n}\n\ndefineOptions({\n name: 'RuiMenuSelect',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<TValue | undefined>({ required: true });\n\nconst props = withDefaults(defineProps<Props<TValue, TItem>>(), {\n disabled: false,\n loading: false,\n readOnly: false,\n dense: false,\n clearable: false,\n hideDetails: false,\n label: 'Select',\n prependWidth: 0,\n appendWidth: 0,\n variant: 'default',\n hint: undefined,\n keyAttr: undefined,\n textAttr: undefined,\n itemHeight: undefined,\n errorMessages: () => [],\n successMessages: () => [],\n autoSelectFirst: false,\n hideNoData: false,\n noDataText: 'No data available',\n});\n\nconst { dense, options, disabled } = toRefs(props);\n\nconst menuRef = ref();\nconst activator = ref();\nconst { focused } = useFocus(activator);\n\nconst value = computed<TItem | undefined>({\n get: () => {\n const keyAttr = props.keyAttr;\n const value = get(modelValue);\n if (keyAttr)\n return props.options.find(option => option[keyAttr] === value);\n return value as unknown as TItem;\n },\n set: (selected?: TItem) => {\n const keyAttr = props.keyAttr;\n const selection = keyAttr && selected ? selected[keyAttr] : selected;\n set(modelValue, selection as TValue);\n },\n});\n\nconst labelWithQuote = computed(() => {\n if (!props.label)\n return '\"\\\\200B\"';\n\n return `' ${props.label} '`;\n});\n\nconst {\n containerProps,\n wrapperProps,\n renderedData,\n isOpen,\n menuWidth,\n getText,\n getIdentifier,\n isActiveItem,\n highlightedIndex,\n moveHighlight,\n valueKey,\n} = useDropdownMenu<TValue, TItem>({\n itemHeight: props.itemHeight ?? (props.dense ? 30 : 48),\n keyAttr: props.keyAttr,\n textAttr: props.textAttr,\n options,\n autoFocus: true,\n dense,\n value,\n menuRef,\n disabled,\n autoSelectFirst: props.autoSelectFirst,\n});\n\nconst outlined = computed(() => props.variant === 'outlined');\n\nconst float = computed(() => (get(isOpen) || !!get(value)) && get(outlined));\n\nconst virtualContainerProps = computed(() => ({\n style: containerProps.style as any,\n ref: containerProps.ref as any,\n}));\n\nfunction setValue(val: TItem, index?: number) {\n if (isDefined(index))\n set(highlightedIndex, index);\n\n set(value, val);\n set(focused, true);\n}\n\nfunction clear() {\n set(modelValue, undefined);\n}\n</script>\n\n<template>\n <RuiMenu\n v-model=\"isOpen\"\n :class=\"$style.wrapper\"\n disable-auto-focus\n v-bind=\"{\n ...getRootAttrs($attrs),\n placement: 'bottom-start',\n closeOnContentClick: true,\n fullWidth: true,\n ...menuOptions,\n errorMessages,\n successMessages,\n hint,\n dense,\n showDetails: !hideDetails,\n disabled,\n }\"\n >\n <template #activator=\"{ attrs, open, hasError, hasSuccess }\">\n <slot\n name=\"activator\"\n v-bind=\"{ disabled, value, variant, readOnly, attrs, open, hasError, hasSuccess }\"\n >\n <button\n ref=\"activator\"\n :disabled=\"disabled\"\n :aria-disabled=\"disabled\"\n type=\"button\"\n :tabindex=\"disabled || readOnly ? -1 : 0\"\n class=\"group\"\n :class=\"[\n $style.activator,\n labelClass,\n {\n [$style.disabled]: disabled,\n [$style.readonly]: readOnly,\n [$style.outlined]: outlined,\n [$style.dense]: dense,\n [$style.float]: float,\n [$style.opened]: open,\n [$style['with-value']]: !!value,\n [$style['with-error']]: hasError,\n [$style['with-success']]: hasSuccess && !hasError,\n },\n ]\"\n v-bind=\"{ ...getNonRootAttrs($attrs), ...(readOnly ? {} : attrs) }\"\n data-id=\"activator\"\n @keydown.up.prevent=\"moveHighlight(true)\"\n @keydown.down.prevent=\"moveHighlight(false)\"\n >\n <span\n v-if=\"outlined || !value\"\n :class=\"[\n $style.label,\n {\n 'absolute': outlined,\n 'pr-2': !value && !open && outlined,\n },\n ]\"\n >\n <slot\n name=\"activator.label\"\n v-bind=\"{ value }\"\n >\n {{ label }}\n </slot>\n </span>\n <span\n v-if=\"value\"\n class=\"w-full\"\n :class=\"$style.value\"\n >\n <slot\n name=\"selection.prepend\"\n v-bind=\"{ item: value }\"\n />\n <slot\n name=\"selection\"\n v-bind=\"{ item: value }\"\n >\n {{ getText(value) }}\n </slot>\n </span>\n\n <span\n v-if=\"clearable && value && !disabled\"\n class=\"group-hover:!visible\"\n :class=\"[$style.clear, focused && '!visible']\"\n @click.stop.prevent=\"clear()\"\n >\n <RuiIcon\n color=\"error\"\n name=\"lu-x\"\n size=\"18\"\n />\n </span>\n\n <span :class=\"$style.icon__wrapper\">\n <RuiIcon\n :class=\"[$style.icon, { 'rotate-180': open }]\"\n :size=\"dense ? 16 : 24\"\n name=\"lu-chevron-down\"\n />\n </span>\n\n <RuiProgress\n v-if=\"loading\"\n class=\"absolute left-0 bottom-0 w-full\"\n color=\"primary\"\n thickness=\"3\"\n variant=\"indeterminate\"\n />\n </button>\n <fieldset\n v-if=\"outlined\"\n :class=\"$style.fieldset\"\n >\n <legend :class=\"{ 'px-2': float }\" />\n </fieldset>\n </slot>\n <input\n :value=\"valueKey\"\n class=\"hidden\"\n type=\"hidden\"\n />\n </template>\n <template #default=\"{ width }\">\n <div\n v-if=\"options.length > 0\"\n :class=\"[$style.menu, menuClass]\"\n :style=\"{ width: `${width}px`, minWidth: menuWidth }\"\n v-bind=\"virtualContainerProps\"\n @scroll=\"containerProps.onScroll\"\n @keydown.up.prevent=\"moveHighlight(true)\"\n @keydown.down.prevent=\"moveHighlight(false)\"\n >\n <div\n v-bind=\"wrapperProps\"\n ref=\"menuRef\"\n >\n <RuiButton\n v-for=\"({ item, _index }) in renderedData\"\n :key=\"_index\"\n :active=\"isActiveItem(item)\"\n :size=\"dense ? 'sm' : undefined\"\n :model-value=\"getIdentifier(item)\"\n variant=\"list\"\n :class=\"{\n highlighted: highlightedIndex === _index,\n [$style.highlighted]: !isActiveItem(item) && highlightedIndex === _index,\n }\"\n @update:model-value=\"setValue(item, _index)\"\n @mousedown=\"highlightedIndex = _index\"\n >\n <template #prepend>\n <slot\n name=\"item.prepend\"\n v-bind=\"{ disabled, item, active: isActiveItem(item) }\"\n />\n </template>\n <slot\n name=\"item\"\n v-bind=\"{ disabled, item, active: isActiveItem(item) }\"\n >\n {{ getText(item) }}\n </slot>\n <template #append>\n <slot\n name=\"item.append\"\n v-bind=\"{ disabled, item, active: isActiveItem(item) }\"\n />\n </template>\n </RuiButton>\n </div>\n </div>\n\n <div\n v-else-if=\"!hideNoData\"\n :style=\"{ width: `${width}px`, minWidth: menuWidth }\"\n :class=\"menuClass\"\n >\n <slot name=\"no-data\">\n <div class=\"p-4\">\n {{ noDataText }}\n </div>\n </slot>\n </div>\n </template>\n </RuiMenu>\n</template>\n\n<style lang=\"scss\" module>\n.wrapper {\n @apply w-full inline-flex flex-col;\n\n .activator {\n @apply relative inline-flex items-center w-full;\n @apply outline-none focus:outline-none cursor-pointer min-h-14 pl-3 py-2 pr-8 rounded;\n @apply m-0 bg-white transition-all text-body-1 text-left hover:border-black;\n\n &:not(.outlined) {\n @apply hover:bg-gray-100 focus-within:bg-gray-100;\n }\n\n &.dense {\n @apply py-1.5 min-h-10;\n\n ~ .fieldset {\n @apply px-2;\n }\n }\n\n &.disabled {\n @apply opacity-65 text-rui-text-disabled active:text-rui-text-disabled cursor-default pointer-events-none;\n }\n\n &.readonly {\n @apply opacity-80 pointer-events-none cursor-default bg-gray-50;\n }\n\n &.outlined {\n @apply border-none hover:border-none;\n\n &.opened,\n &:focus {\n @apply border-rui-primary;\n\n ~ .fieldset {\n @apply border-rui-primary #{!important};\n @apply border-2 #{!important};\n }\n }\n\n ~ .fieldset {\n @apply border border-black/[0.23];\n }\n\n &:hover {\n ~ .fieldset {\n @apply border-black;\n }\n }\n\n &.disabled {\n ~ .fieldset {\n @apply border-dotted;\n @apply border-black/[0.23] #{!important};\n }\n }\n\n &.with-success {\n .label {\n @apply text-rui-success #{!important};\n }\n\n ~ .fieldset {\n @apply border-rui-success #{!important};\n }\n }\n\n &.with-error {\n .label {\n @apply text-rui-error #{!important};\n }\n\n ~ .fieldset {\n @apply border-rui-error #{!important};\n }\n }\n }\n\n .label {\n @apply text-rui-text-secondary;\n max-width: calc(100% - 2.5rem);\n }\n\n .label,\n .value {\n @apply block truncate transition-all duration-75;\n }\n\n .clear {\n @apply ml-auto shrink-0 invisible;\n }\n\n .icon {\n @apply text-rui-text transition;\n\n &__wrapper {\n @apply flex items-center justify-end;\n @apply absolute right-3 top-px bottom-0;\n }\n }\n\n &.float {\n .label {\n @apply -translate-y-2 top-0 text-xs px-1;\n }\n\n ~ .fieldset {\n legend {\n &:after {\n content: v-bind(labelWithQuote);\n }\n }\n }\n\n &.opened,\n &.opened.with-value,\n &:focus,\n &:focus.with-value {\n .label {\n @apply text-rui-primary;\n }\n\n ~ .fieldset {\n @apply border-rui-primary;\n @apply border-2 #{!important};\n }\n }\n }\n }\n\n .fieldset {\n @apply absolute w-full min-w-0 h-[calc(100%+0.5rem)] top-0 left-0 rounded pointer-events-none px-2 transition-all -mt-2;\n\n legend {\n @apply opacity-0 text-xs truncate;\n max-width: calc(100% - 1rem);\n\n &:before {\n content: ' ';\n }\n\n &:after {\n @apply truncate max-w-full leading-[0];\n content: '\\200B';\n }\n }\n }\n}\n\n.menu {\n @apply overflow-y-auto max-h-60 min-w-[2.5rem];\n}\n\n.highlighted {\n @apply bg-rui-grey-200 #{!important};\n\n &.active {\n @apply bg-rui-grey-300 #{!important};\n }\n}\n\n:global(.dark) {\n .wrapper {\n .activator {\n @apply bg-transparent text-rui-text;\n\n &:not(.outlined) {\n @apply hover:bg-white/10 focus-within:bg-white/10;\n\n &.disabled {\n @apply bg-white/10;\n }\n }\n\n &.readonly {\n @apply bg-white/10;\n }\n\n &.outlined {\n ~ .fieldset {\n @apply border-white/[0.23];\n }\n\n &.disabled {\n ~ .fieldset {\n @apply border-white/[0.23] #{!important};\n }\n }\n\n &:hover {\n ~ .fieldset {\n @apply border-white;\n }\n }\n }\n }\n }\n\n .highlighted {\n @apply bg-rui-grey-800 #{!important};\n\n &.active {\n @apply bg-rui-grey-700 #{!important};\n }\n }\n}\n</style>\n"],"names":["_useModel","value","_openBlock","_createBlock","_mergeProps","_unref","$style","getRootAttrs","$attrs","_withCtx","_renderSlot","_createElementVNode","getNonRootAttrs","_createElementBlock","_normalizeClass","_normalizeProps","_guardReactiveProps","_createTextVNode","_toDisplayString","_createVNode","_Fragment","_renderList","_normalizeStyle"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,UAAM,aAAaA,8BAAkD;AAErE,UAAM,QAAQ;AAsBd,UAAM,EAAE,OAAO,SAAS,SAAA,IAAa,OAAO,KAAK;AAEjD,UAAM,UAAU,IAAA;AAChB,UAAM,YAAY,IAAA;AAClB,UAAM,EAAE,QAAA,IAAY,SAAS,SAAS;AAEtC,UAAM,QAAQ,SAA4B;AAAA,MACxC,KAAK,MAAM;AACT,cAAM,UAAU,MAAM;AACtB,cAAMC,SAAQ,IAAI,UAAU;AAC5B,YAAI;AACF,iBAAO,MAAM,QAAQ,KAAK,YAAU,OAAO,OAAO,MAAMA,MAAK;AAC/D,eAAOA;AAAAA,MACT;AAAA,MACA,KAAK,CAAC,aAAqB;AACzB,cAAM,UAAU,MAAM;AACtB,cAAM,YAAY,WAAW,WAAW,SAAS,OAAO,IAAI;AAC5D,YAAI,YAAY,SAAmB;AAAA,MACrC;AAAA,IAAA,CACD;AAED,UAAM,iBAAiB,SAAS,MAAM;AACpC,UAAI,CAAC,MAAM;AACT,eAAO;AAET,aAAO,MAAM,MAAM,KAAK;AAAA,IAC1B,CAAC;AAED,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,gBAA+B;AAAA,MACjC,YAAY,MAAM,eAAe,MAAM,QAAQ,KAAK;AAAA,MACpD,SAAS,MAAM;AAAA,MACf,UAAU,MAAM;AAAA,MAChB;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB,MAAM;AAAA,IAAA,CACxB;AAED,UAAM,WAAW,SAAS,MAAM,MAAM,YAAY,UAAU;AAE5D,UAAM,QAAQ,SAAS,OAAO,IAAI,MAAM,KAAK,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC;AAE3E,UAAM,wBAAwB,SAAS,OAAO;AAAA,MAC5C,OAAO,eAAe;AAAA,MACtB,KAAK,eAAe;AAAA,IAAA,EACpB;AAEF,aAAS,SAAS,KAAY,OAAgB;AAC5C,UAAI,UAAU,KAAK;AACjB,YAAI,kBAAkB,KAAK;AAE7B,UAAI,OAAO,GAAG;AACd,UAAI,SAAS,IAAI;AAAA,IACnB;AAEA,aAAS,QAAQ;AACf,UAAI,YAAY,MAAS;AAAA,IAC3B;;AAIE,aAAAC,UAAA,GAAAC,YA4LU,SA5LVC,WA4LU;AAAA,oBA3LCC,MAAA,MAAA;AAAA,qFAAA,OAAM,QAAA,SAAA;AAAA,QACd,OAAOC,KAAAA,OAAO;AAAA,QACf,sBAAA;AAAA,MAAA;QACmBC,IAAAA,kBAAAA,OAAAA,KAAAA,eAAAA,MAAAA,YAAAA,GAAaC,KAAAA,MAAM;AAAA;;;WAAqG,QAAA;AAAA,uBAAmB,QAAA;AAAA,yBAAqB,QAAA;AAAA,cAAuB,QAAA;AAAA,eAAYH,MAAA,KAAA;AAAA,sBAA2B,QAAA;AAAA,kBAAmBA,MAAA,QAAA;AAAA,MAAA;QAczP,WAASI,QAClB,CAoGO,EArGe,OAAO,MAAM,UAAU,iBAAU;AAAA,UACvDC,WAoGO,wEAlGKL,MAAA,QAAA,GAAQ,OAAEA,MAAA,KAAA,GAAK,SAAE,iBAAO,UAAE,QAAA,UAAU,OAAO,MAAM,UAAU,WAAA,KAFvE,MAoGO;AAAA,YAhGLM,mBAyFS,UAzFTP,WAyFS;AAAA,uBAxFH;AAAA,cAAJ,KAAI;AAAA,cACH,UAAUC,MAAA,QAAA;AAAA,cACV,iBAAeA,MAAA,QAAA;AAAA,cAChB,MAAK;AAAA,cACJ,UAAUA,MAAA,QAAA,KAAY,QAAA,WAAQ,KAAA;AAAA,cAC/B,QAAM,SAAO;AAAA,gBACSC,KAAAA,OAAO;AAAA,gBAAuB,QAAA;AAAA;mBAAyCA,KAAAA,OAAO,QAAQ,GAAGD,MAAA,QAAA;AAAA,mBAAyBC,KAAAA,OAAO,QAAQ,GAAG,QAAA;AAAA,mBAAyBA,KAAAA,OAAO,QAAQ,GAAGD,MAAA,QAAA;AAAA,mBAAyBC,KAAAA,OAAO,KAAK,GAAGD,MAAA,KAAA;AAAA,mBAAsBC,KAAAA,OAAO,KAAK,GAAGD,MAAA,KAAA;AAAA,mBAAsBC,KAAAA,OAAO,MAAM,GAAG;AAAA,kBAAqBA,CAAAA,KAAAA,yBAAyBD,MAAA,KAAA;AAAA,kBAAsBC,CAAAA,KAAAA,uBAAuB;AAAA,mBAAyBA,KAAAA,OAAM,cAAA,CAAA,GAAmB,cAAU,CAAK;AAAA,gBAAA;AAAA;eAevcM,EAAAA,IAAAA,qBAAAA,OAAAA,KAAAA,kBAAAA,MAAAA,eAAAA,GAAgBJ,KAAAA,MAAM,GAAA,GAAO,QAAA,gBAAgB,SAAK;AAAA,cAC/D,WAAQ;AAAA,cACP,WAAO;AAAA,6EAAaH,MAAA,aAAA,EAAa,IAAA,GAAA,CAAA,SAAA,CAAA,GAAA,CAAA,IAAA,CAAA;AAAA,6EACXA,MAAA,aAAA,EAAa,KAAA,GAAA,CAAA,SAAA,CAAA,GAAA,CAAA,MAAA,CAAA;AAAA,cAAA;AAAA;cAG5BA,MAAA,QAAA,MAAaA,MAAA,KAAA,kBADrBQ,mBAgBO,QAAA;AAAA;gBAdJ,OAAKC,eAAA;AAAA,kBAAkBR,KAAAA,OAAO;AAAA;gCAAmDD,MAAA,QAAA;AAAA,6BAAmCA,MAAA,KAAA,KAAK,CAAK,QAAQA,MAAA,QAAA;AAAA,kBAAA;AAAA;;gBAQvIK,WAKO,KAAA,QAAA,mBAAAK,eAAAC,mBAAA,EAAA,OAHKX,MAAA,KAAA,EAAA,CAAK,CAAA,GAFjB,MAKO;AAAA,kDADF,QAAA,KAAK,GAAA,CAAA;AAAA,gBAAA;;cAIJA,MAAA,KAAA,kBADRQ,mBAeO,QAAA;AAAA;gBAbL,OAAKC,eAAA,CAAC,UACER,KAAAA,OAAO,KAAK,CAAA;AAAA,cAAA;gBAEpBI,WAGE,4EADgBL,MAAA,KAAA,EAAA,CAAK,CAAA,CAAA;AAAA,gBAEvBK,WAKO,KAAA,QAAA,aAAAK,eAAAC,mBAAA,EAAA,MAHWX,MAAA,KAAA,EAAA,CAAK,CAAA,GAFvB,MAKO;AAAA,kBADFY,gBAAAC,gBAAAb,MAAA,OAAA,EAAQA,MAAA,KAAA,CAAK,CAAA,GAAA,CAAA;AAAA,gBAAA;;cAKZ,QAAA,aAAaA,MAAA,KAAA,KAAK,CAAKA,MAAA,QAAA,kBAD/BQ,mBAWO,QAAA;AAAA;gBATL,uBAAM,wBAAsB,CACnBP,YAAO,OAAOD,MAAA,OAAA,KAAO,UAAA,CAAA,CAAA;AAAA,gBAC7B,6DAAoB,MAAA,GAAK,CAAA,QAAA,SAAA,CAAA;AAAA,cAAA;gBAE1Bc,YAIE,SAAA;AAAA,kBAHA,OAAM;AAAA,kBACN,MAAK;AAAA,kBACL,MAAK;AAAA,gBAAA;;cAITR,mBAMO,QAAA;AAAA,gBANA,OAAKG,eAAER,KAAAA,OAAO,aAAa;AAAA,cAAA;gBAChCa,YAIE,SAAA;AAAA,kBAHC,OAAKL,eAAA,CAAGR,KAAAA,OAAO,sBAAsB,KAAA,CAAI,CAAA;AAAA,kBACzC,MAAMD,MAAA,KAAA,IAAK,KAAA;AAAA,kBACZ,MAAK;AAAA,gBAAA;;cAKD,QAAA,wBADRF,YAME,aAAA;AAAA;gBAJA,OAAM;AAAA,gBACN,OAAM;AAAA,gBACN,WAAU;AAAA,gBACV,SAAQ;AAAA,cAAA;;YAIJE,MAAA,QAAA,kBADRQ,mBAKW,YAAA;AAAA;cAHR,OAAKC,eAAER,KAAAA,OAAO,QAAQ;AAAA,YAAA;cAEvBK,mBAAqC,UAAA;AAAA,gBAA5B,gCAAiBN,MAAA,KAAA,GAAK;AAAA,cAAA;;;UAGnCM,mBAIE,SAAA;AAAA,YAHC,OAAON,MAAA,QAAA;AAAA,YACR,OAAM;AAAA,YACN,MAAK;AAAA,UAAA;;QAGE,SAAOI,QAChB,CA+CM,EAhDc,YAAK;AAAA,UAEjBJ,MAAA,OAAA,EAAQ,SAAM,KADtBH,aAAAW,mBA+CM,OA/CNT,WA+CM;AAAA;YA7CH,OAAK,CAAGE,KAAAA,OAAO,MAAM,QAAA,SAAS;AAAA,YAC9B,OAAK,EAAA,OAAA,GAAc,KAAK,MAAA,UAAgBD,MAAA,SAAA,EAAA;AAAA,UAAS,GAC1CA,MAAA,qBAAA,GAAqB;AAAA,YAC5B,UAAM,OAAA,CAAA,MAAA,OAAA,CAAA;AAAA,YAAE,IAAA,SAAAA,MAAA,cAAA,EAAe,YAAfA,MAAA,cAAA,EAAe,SAAQ,GAAA,IAAA;AAAA,YAC/B,WAAO;AAAA,2EAAaA,MAAA,aAAA,EAAa,IAAA,GAAA,CAAA,SAAA,CAAA,GAAA,CAAA,IAAA,CAAA;AAAA,2EACXA,MAAA,aAAA,EAAa,KAAA,GAAA,CAAA,SAAA,CAAA,GAAA,CAAA,MAAA,CAAA;AAAA,YAAA;AAAA;YAEpCM,mBAqCM,OArCNP,WAqCMC,MAAA,YAAA,GApCgB;AAAA,uBAChB;AAAA,cAAJ,KAAI;AAAA,YAAA;eAEJH,UAAA,IAAA,GAAAW,mBAgCYO,UAAA,MAAAC,WA/BmBhB,MAAA,YAAA,GAAY,CAAA,EAA/B,MAAM,aAAM;oCADxBF,YAgCY,WAAA;AAAA,kBA9BT,KAAK;AAAA,kBACL,QAAQE,MAAA,YAAA,EAAa,IAAI;AAAA,kBACzB,MAAMA,MAAA,KAAA,IAAK,OAAU;AAAA,kBACrB,eAAaA,MAAA,aAAA,EAAc,IAAI;AAAA,kBAChC,SAAQ;AAAA,kBACP,OAAKS,eAAA;AAAA,oBAA+B,aAAAT,MAAA,gBAAA,MAAqB;AAAA,qBAAuBC,KAAAA,OAAO,WAAW,GAAA,CAAID,MAAA,YAAA,EAAa,IAAI,KAAKA,MAAA,gBAAA,MAAqB;AAAA,kBAAA;kBAIjJ,uBAAkB,CAAA,WAAE,SAAS,MAAM,MAAM;AAAA,kBACzC,aAAS,CAAA,WAAE,iBAAA,QAAmB;AAAA,gBAAA;kBAEpB,iBACT,MAGE;AAAA,oBAHFK,WAGE,KAAA,QAAA,gBAHFN,WAGE,EAAA,SAAA,KAAA,GAAA,EAAA,UADUC,MAAA,QAAA,GAAU,MAAI,QAAUA,MAAA,YAAA,EAAa,IAAI,GAAA,CAAA;AAAA,kBAAA;kBAS5C,gBACT,MAGE;AAAA,oBAHFK,WAGE,KAAA,QAAA,eAHFN,WAGE,EAAA,SAAA,KAAA,GAAA,EAAA,UADUC,MAAA,QAAA,GAAU,MAAI,QAAUA,MAAA,YAAA,EAAa,IAAI,GAAA,CAAA;AAAA,kBAAA;mCATvD,MAKO;AAAA,oBALPK,WAKO,KAAA,QAAA,QALPN,WAKO,EAAA,SAAA,KAAA,GAAA,EAAA,UAHKC,MAAA,QAAA,GAAU,MAAI,QAAUA,MAAA,YAAA,EAAa,IAAI,EAAA,CAAA,GAFrD,MAKO;AAAA,sBADFY,gBAAAC,gBAAAb,MAAA,OAAA,EAAQ,IAAI,CAAA,GAAA,CAAA;AAAA,oBAAA;;;;;;qBAaT,QAAA,2BADdQ,mBAUM,OAAA;AAAA;YARH,OAAKS,eAAA,EAAA,OAAA,GAAc,KAAK,MAAA,UAAgBjB,MAAA,SAAA,EAAA,CAAS;AAAA,YACjD,sBAAO,QAAA,SAAS;AAAA,UAAA;YAEjBK,WAIO,4BAJP,MAIO;AAAA,cAHLC,mBAEM,OAFN,YAEMO,gBADD,QAAA,UAAU,GAAA,CAAA;AAAA,YAAA;;;;;;;;"}
1
+ {"version":3,"file":"RuiMenuSelect.vue2.js","sources":["../../../../src/components/forms/select/RuiMenuSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup generic=\"TValue, TItem\">\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport RuiMenu, { type MenuProps } from '@/components/overlays/menu/RuiMenu.vue';\nimport RuiProgress from '@/components/progress/RuiProgress.vue';\nimport { type KeyOfType, useDropdownMenu } from '@/composables/dropdown-menu';\n\nexport interface Props<TValue, TItem> {\n options: TItem[];\n keyAttr?: KeyOfType<TItem, TValue extends Array<infer U> ? U : TValue>;\n textAttr?: keyof TItem;\n disabled?: boolean;\n loading?: boolean;\n readOnly?: boolean;\n dense?: boolean;\n clearable?: boolean;\n label?: string;\n menuOptions?: MenuProps;\n labelClass?: string;\n menuClass?: string;\n optionClass?: string;\n prependWidth?: number; // in rem\n appendWidth?: number; // in rem\n itemHeight?: number; // in px\n variant?: 'default' | 'filled' | 'outlined';\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n hideDetails?: boolean;\n autoSelectFirst?: boolean;\n hideNoData?: boolean;\n noDataText?: string;\n required?: boolean;\n}\n\ndefineOptions({\n name: 'RuiMenuSelect',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<TValue | undefined>({ required: true });\n\nconst props = withDefaults(defineProps<Props<TValue, TItem>>(), {\n disabled: false,\n loading: false,\n readOnly: false,\n dense: false,\n clearable: false,\n hideDetails: false,\n label: 'Select',\n prependWidth: 0,\n appendWidth: 0,\n variant: 'default',\n hint: undefined,\n keyAttr: undefined,\n textAttr: undefined,\n itemHeight: undefined,\n errorMessages: () => [],\n successMessages: () => [],\n autoSelectFirst: false,\n hideNoData: false,\n noDataText: 'No data available',\n required: false,\n});\n\nconst { dense, options, disabled } = toRefs(props);\n\nconst menuRef = ref();\nconst activator = ref();\nconst { focused } = useFocus(activator);\n\nconst value = computed<TItem | undefined>({\n get: () => {\n const keyAttr = props.keyAttr;\n const value = get(modelValue);\n if (keyAttr)\n return props.options.find(option => option[keyAttr] === value);\n return value as unknown as TItem;\n },\n set: (selected?: TItem) => {\n const keyAttr = props.keyAttr;\n const selection = keyAttr && selected ? selected[keyAttr] : selected;\n set(modelValue, selection as TValue);\n },\n});\n\nconst labelWithQuote = computed<string>(() => {\n if (!props.label)\n return '\"\\\\200B\"';\n\n const asterisk = props.required ? '﹡' : '';\n return `' ${props.label}${asterisk} '`;\n});\n\nconst {\n containerProps,\n wrapperProps,\n renderedData,\n isOpen,\n menuWidth,\n getText,\n getIdentifier,\n isActiveItem,\n highlightedIndex,\n moveHighlight,\n valueKey,\n} = useDropdownMenu<TValue, TItem>({\n itemHeight: props.itemHeight ?? (props.dense ? 30 : 48),\n keyAttr: props.keyAttr,\n textAttr: props.textAttr,\n options,\n autoFocus: true,\n dense,\n value,\n menuRef,\n disabled,\n autoSelectFirst: props.autoSelectFirst,\n});\n\nconst outlined = computed(() => props.variant === 'outlined');\n\nconst float = computed(() => (get(isOpen) || !!get(value)) && get(outlined));\n\nconst virtualContainerProps = computed(() => ({\n style: containerProps.style as any,\n ref: containerProps.ref as any,\n}));\n\nfunction setValue(val: TItem, index?: number) {\n if (isDefined(index))\n set(highlightedIndex, index);\n\n set(value, val);\n set(focused, true);\n}\n\nfunction clear() {\n set(modelValue, undefined);\n}\n</script>\n\n<template>\n <RuiMenu\n v-model=\"isOpen\"\n :class=\"$style.wrapper\"\n disable-auto-focus\n v-bind=\"{\n ...getRootAttrs($attrs),\n placement: 'bottom-start',\n closeOnContentClick: true,\n fullWidth: true,\n ...menuOptions,\n errorMessages,\n successMessages,\n hint,\n dense,\n showDetails: !hideDetails,\n disabled,\n }\"\n >\n <template #activator=\"{ attrs, open, hasError, hasSuccess }\">\n <slot\n name=\"activator\"\n v-bind=\"{ disabled, value, variant, readOnly, attrs, open, hasError, hasSuccess }\"\n >\n <button\n ref=\"activator\"\n :disabled=\"disabled\"\n :aria-disabled=\"disabled\"\n type=\"button\"\n :tabindex=\"disabled || readOnly ? -1 : 0\"\n class=\"group\"\n :class=\"[\n $style.activator,\n labelClass,\n {\n [$style.disabled]: disabled,\n [$style.readonly]: readOnly,\n [$style.outlined]: outlined,\n [$style.dense]: dense,\n [$style.float]: float,\n [$style.opened]: open,\n [$style['with-value']]: !!value,\n [$style['with-error']]: hasError,\n [$style['with-success']]: hasSuccess && !hasError,\n },\n ]\"\n v-bind=\"{ ...getNonRootAttrs($attrs), ...(readOnly ? {} : attrs) }\"\n data-id=\"activator\"\n @keydown.up.prevent=\"moveHighlight(true)\"\n @keydown.down.prevent=\"moveHighlight(false)\"\n >\n <span\n v-if=\"outlined || !value\"\n :class=\"[\n $style.label,\n {\n 'absolute': outlined,\n 'pr-2': !value && !open && outlined,\n },\n ]\"\n >\n <slot\n name=\"activator.label\"\n v-bind=\"{ value }\"\n >\n {{ label }}\n </slot>\n <span\n v-if=\"required\"\n class=\"text-rui-error\"\n >\n ﹡\n </span>\n </span>\n <span\n v-if=\"value\"\n class=\"w-full\"\n :class=\"$style.value\"\n >\n <slot\n name=\"selection.prepend\"\n v-bind=\"{ item: value }\"\n />\n <slot\n name=\"selection\"\n v-bind=\"{ item: value }\"\n >\n {{ getText(value) }}\n </slot>\n </span>\n\n <span\n v-if=\"clearable && value && !disabled\"\n class=\"group-hover:!visible\"\n :class=\"[$style.clear, focused && '!visible']\"\n @click.stop.prevent=\"clear()\"\n >\n <RuiIcon\n color=\"error\"\n name=\"lu-x\"\n size=\"18\"\n />\n </span>\n\n <span :class=\"$style.icon__wrapper\">\n <RuiIcon\n :class=\"[$style.icon, { 'rotate-180': open }]\"\n :size=\"dense ? 16 : 24\"\n name=\"lu-chevron-down\"\n />\n </span>\n\n <RuiProgress\n v-if=\"loading\"\n class=\"absolute left-0 bottom-0 w-full\"\n color=\"primary\"\n thickness=\"3\"\n variant=\"indeterminate\"\n />\n </button>\n <fieldset\n v-if=\"outlined\"\n :class=\"$style.fieldset\"\n >\n <legend :class=\"{ 'px-2': float }\" />\n </fieldset>\n </slot>\n <input\n :value=\"valueKey\"\n class=\"hidden\"\n type=\"hidden\"\n />\n </template>\n <template #default=\"{ width }\">\n <div\n v-if=\"options.length > 0\"\n :class=\"[$style.menu, menuClass]\"\n :style=\"{ width: `${width}px`, minWidth: menuWidth }\"\n v-bind=\"virtualContainerProps\"\n @scroll=\"containerProps.onScroll\"\n @keydown.up.prevent=\"moveHighlight(true)\"\n @keydown.down.prevent=\"moveHighlight(false)\"\n >\n <div\n v-bind=\"wrapperProps\"\n ref=\"menuRef\"\n >\n <RuiButton\n v-for=\"({ item, _index }) in renderedData\"\n :key=\"_index\"\n :active=\"isActiveItem(item)\"\n :size=\"dense ? 'sm' : undefined\"\n :model-value=\"getIdentifier(item)\"\n variant=\"list\"\n :class=\"{\n highlighted: highlightedIndex === _index,\n [$style.highlighted]: !isActiveItem(item) && highlightedIndex === _index,\n }\"\n @update:model-value=\"setValue(item, _index)\"\n @mousedown=\"highlightedIndex = _index\"\n >\n <template #prepend>\n <slot\n name=\"item.prepend\"\n v-bind=\"{ disabled, item, active: isActiveItem(item) }\"\n />\n </template>\n <slot\n name=\"item\"\n v-bind=\"{ disabled, item, active: isActiveItem(item) }\"\n >\n {{ getText(item) }}\n </slot>\n <template #append>\n <slot\n name=\"item.append\"\n v-bind=\"{ disabled, item, active: isActiveItem(item) }\"\n />\n </template>\n </RuiButton>\n </div>\n </div>\n\n <div\n v-else-if=\"!hideNoData\"\n :style=\"{ width: `${width}px`, minWidth: menuWidth }\"\n :class=\"menuClass\"\n >\n <slot name=\"no-data\">\n <div class=\"p-4\">\n {{ noDataText }}\n </div>\n </slot>\n </div>\n </template>\n </RuiMenu>\n</template>\n\n<style lang=\"scss\" module>\n.wrapper {\n @apply w-full inline-flex flex-col;\n\n .activator {\n @apply relative inline-flex items-center w-full;\n @apply outline-none focus:outline-none cursor-pointer min-h-14 pl-3 py-2 pr-8 rounded;\n @apply m-0 bg-white transition-all text-body-1 text-left hover:border-black;\n\n &:not(.outlined) {\n @apply hover:bg-gray-100 focus-within:bg-gray-100;\n }\n\n &.dense {\n @apply py-1.5 min-h-10;\n\n ~ .fieldset {\n @apply px-2;\n }\n }\n\n &.disabled {\n @apply opacity-65 text-rui-text-disabled active:text-rui-text-disabled cursor-default pointer-events-none;\n }\n\n &.readonly {\n @apply opacity-80 pointer-events-none cursor-default bg-gray-50;\n }\n\n &.outlined {\n @apply border-none hover:border-none;\n\n &.opened,\n &:focus {\n @apply border-rui-primary;\n\n ~ .fieldset {\n @apply border-rui-primary #{!important};\n @apply border-2 #{!important};\n }\n }\n\n ~ .fieldset {\n @apply border border-black/[0.23];\n }\n\n &:hover {\n ~ .fieldset {\n @apply border-black;\n }\n }\n\n &.disabled {\n ~ .fieldset {\n @apply border-dotted;\n @apply border-black/[0.23] #{!important};\n }\n }\n\n &.with-success {\n .label {\n @apply text-rui-success #{!important};\n }\n\n ~ .fieldset {\n @apply border-rui-success #{!important};\n }\n }\n\n &.with-error {\n .label {\n @apply text-rui-error #{!important};\n }\n\n ~ .fieldset {\n @apply border-rui-error #{!important};\n }\n }\n }\n\n .label {\n @apply text-rui-text-secondary;\n max-width: calc(100% - 2.5rem);\n }\n\n .label,\n .value {\n @apply block truncate transition-all duration-75;\n }\n\n .clear {\n @apply ml-auto shrink-0 invisible;\n }\n\n .icon {\n @apply text-rui-text transition;\n\n &__wrapper {\n @apply flex items-center justify-end;\n @apply absolute right-3 top-px bottom-0;\n }\n }\n\n &.float {\n .label {\n @apply -translate-y-2 top-0 text-xs px-1;\n }\n\n ~ .fieldset {\n legend {\n &:after {\n content: v-bind(labelWithQuote);\n }\n }\n }\n\n &.opened,\n &.opened.with-value,\n &:focus,\n &:focus.with-value {\n .label {\n @apply text-rui-primary;\n }\n\n ~ .fieldset {\n @apply border-rui-primary;\n @apply border-2 #{!important};\n }\n }\n }\n }\n\n .fieldset {\n @apply absolute w-full min-w-0 h-[calc(100%+0.5rem)] top-0 left-0 rounded pointer-events-none px-2 transition-all -mt-2;\n\n legend {\n @apply opacity-0 text-xs truncate;\n max-width: calc(100% - 1rem);\n\n &:before {\n content: ' ';\n }\n\n &:after {\n @apply truncate max-w-full leading-[0];\n content: '\\200B';\n }\n }\n }\n}\n\n.menu {\n @apply overflow-y-auto max-h-60 min-w-[2.5rem];\n}\n\n.highlighted {\n @apply bg-rui-grey-200 #{!important};\n\n &.active {\n @apply bg-rui-grey-300 #{!important};\n }\n}\n\n:global(.dark) {\n .wrapper {\n .activator {\n @apply bg-transparent text-rui-text;\n\n &:not(.outlined) {\n @apply hover:bg-white/10 focus-within:bg-white/10;\n\n &.disabled {\n @apply bg-white/10;\n }\n }\n\n &.readonly {\n @apply bg-white/10;\n }\n\n &.outlined {\n ~ .fieldset {\n @apply border-white/[0.23];\n }\n\n &.disabled {\n ~ .fieldset {\n @apply border-white/[0.23] #{!important};\n }\n }\n\n &:hover {\n ~ .fieldset {\n @apply border-white;\n }\n }\n }\n }\n }\n\n .highlighted {\n @apply bg-rui-grey-800 #{!important};\n\n &.active {\n @apply bg-rui-grey-700 #{!important};\n }\n }\n}\n</style>\n"],"names":["_useModel","value","_openBlock","_createBlock","_mergeProps","_unref","$style","getRootAttrs","$attrs","_withCtx","_renderSlot","_createElementVNode","getNonRootAttrs","_createElementBlock","_normalizeClass","_normalizeProps","_guardReactiveProps","_createTextVNode","_toDisplayString","_createVNode","_Fragment","_renderList","_normalizeStyle"],"mappings":"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"}
@@ -18,6 +18,7 @@ export interface Props {
18
18
  hideDetails?: boolean;
19
19
  sliderClass?: string;
20
20
  tickClass?: string;
21
+ required?: boolean;
21
22
  }
22
23
  declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
23
24
  "update:model-value": (value: number) => any;
@@ -32,6 +33,7 @@ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {},
32
33
  errorMessages: string | string[];
33
34
  successMessages: string | string[];
34
35
  hint: string;
36
+ required: boolean;
35
37
  hideDetails: boolean;
36
38
  step: number;
37
39
  min: number;
@@ -1,10 +1,14 @@
1
- import { defineComponent, useCssVars, unref, computed, toRefs, ref, createElementBlock, openBlock, normalizeProps, guardReactiveProps, createElementVNode, createBlock, createCommentVNode, normalizeClass, toDisplayString, withDirectives, mergeProps, isRef, vModelText, Fragment, renderList } from "vue";
1
+ import { defineComponent, useCssVars, unref, computed, toRefs, ref, createElementBlock, openBlock, normalizeProps, guardReactiveProps, createElementVNode, createBlock, createCommentVNode, normalizeClass, createTextVNode, toDisplayString, withDirectives, mergeProps, isRef, vModelText, Fragment, renderList } from "vue";
2
2
  import _sfc_main$1 from "../../helpers/RuiFormTextDetail.vue.js";
3
3
  import { getRootAttrs, getNonRootAttrs } from "../../../utils/helpers.js";
4
4
  import { get } from "@vueuse/shared";
5
5
  import { useFormTextDetail } from "../../../utils/form-text-detail.js";
6
6
  import { useElementBounding } from "@vueuse/core";
7
- const _hoisted_1 = ["max", "min", "step", "disabled"];
7
+ const _hoisted_1 = {
8
+ key: 0,
9
+ class: "text-rui-error"
10
+ };
11
+ const _hoisted_2 = ["max", "min", "step", "disabled"];
8
12
  const _sfc_main = /* @__PURE__ */ defineComponent({
9
13
  ...{
10
14
  name: "RuiSlider",
@@ -29,15 +33,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
29
33
  successMessages: { default: () => [] },
30
34
  hideDetails: { type: Boolean, default: false },
31
35
  sliderClass: { default: "" },
32
- tickClass: { default: "" }
36
+ tickClass: { default: "" },
37
+ required: { type: Boolean, default: false }
33
38
  },
34
39
  emits: ["update:model-value"],
35
40
  setup(__props, { emit: __emit }) {
36
41
  useCssVars((_ctx) => ({
37
- "v2618ea10": unref(sliderHeight),
38
- "v31c435d5": unref(sliderWidth),
39
- "v07d3ee6a": unref(trackWidth),
40
- "v9517d00a": unref(tickSizeInPx)
42
+ "v4f7b4c22": unref(sliderHeight),
43
+ "cfeab12a": unref(sliderWidth),
44
+ "v95dfe716": unref(trackWidth),
45
+ "v17fbd925": unref(tickSizeInPx)
41
46
  }));
42
47
  const props = __props;
43
48
  const emit = __emit;
@@ -91,7 +96,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
91
96
  __props.label ? (openBlock(), createElementBlock("div", {
92
97
  key: 0,
93
98
  class: normalizeClass([_ctx.$style.label, "text-body-1"])
94
- }, toDisplayString(__props.label), 3)) : createCommentVNode("", true),
99
+ }, [
100
+ createTextVNode(toDisplayString(__props.label) + " ", 1),
101
+ __props.required ? (openBlock(), createElementBlock("span", _hoisted_1, " ﹡ ")) : createCommentVNode("", true)
102
+ ], 2)) : createCommentVNode("", true),
95
103
  createElementVNode("div", {
96
104
  ref_key: "outer",
97
105
  ref: outer,
@@ -108,7 +116,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
108
116
  min: unref(min),
109
117
  step: unref(step),
110
118
  disabled: __props.disabled
111
- }, unref(getNonRootAttrs)(_ctx.$attrs)), null, 16, _hoisted_1), [
119
+ }, unref(getNonRootAttrs)(_ctx.$attrs)), null, 16, _hoisted_2), [
112
120
  [vModelText, unref(vModel)]
113
121
  ]),
114
122
  createElementVNode("div", {