@rotki/ui-library 2.12.1 → 2.12.2
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.
- package/dist/components/accordions/accordion/RuiAccordion.vue.js +1 -1
- package/dist/components/accordions/accordions/RuiAccordions.vue.js +1 -1
- package/dist/components/alerts/RuiAlert.vue.d.ts +2 -2
- package/dist/components/alerts/RuiAlert.vue2.js +1 -1
- package/dist/components/buttons/button/RuiButton.vue2.js +1 -1
- package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js +1 -1
- package/dist/components/calendar/RuiCalendar.vue.js +1 -1
- package/dist/components/calendar/RuiCalendarGrid.vue2.js +1 -1
- package/dist/components/calendar/RuiCalendarHeader.vue2.js +1 -1
- package/dist/components/calendar/RuiCalendarMenu.vue2.js +1 -1
- package/dist/components/cards/RuiCard.vue.d.ts +1 -1
- package/dist/components/cards/RuiCard.vue2.js +1 -1
- package/dist/components/cards/RuiCardHeader.vue2.js +1 -1
- package/dist/components/chips/RuiChip.vue.d.ts +1 -1
- package/dist/components/chips/RuiChip.vue2.js +1 -1
- package/dist/components/color-picker/RuiColorBoard.vue2.js +6 -2
- package/dist/components/color-picker/RuiColorBoard.vue2.js.map +1 -1
- package/dist/components/color-picker/RuiColorDisplay.vue.js +1 -1
- package/dist/components/color-picker/RuiColorHue.vue2.js +8 -2
- package/dist/components/color-picker/RuiColorHue.vue2.js.map +1 -1
- package/dist/components/color-picker/RuiColorInput.vue.js +1 -1
- package/dist/components/color-picker/RuiColorPicker.vue.js +6 -2
- package/dist/components/color-picker/RuiColorPicker.vue.js.map +1 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +4 -4
- package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js +5 -5
- package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js.map +1 -1
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.js +1 -1
- package/dist/components/divider/RuiDivider.vue.js +6 -3
- package/dist/components/divider/RuiDivider.vue.js.map +1 -1
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +17 -34
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js +18 -9
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js.map +1 -1
- package/dist/components/forms/checkbox/RuiCheckbox.vue.d.ts +2 -2
- package/dist/components/forms/checkbox/RuiCheckbox.vue2.js +2 -2
- package/dist/components/forms/checkbox/RuiCheckbox.vue2.js.map +1 -1
- package/dist/components/forms/radio-button/radio/RuiRadio.vue.d.ts +1 -1
- package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js +2 -2
- package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js.map +1 -1
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.d.ts +1 -1
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js +2 -2
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js.map +1 -1
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.d.ts +3 -3
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js +4 -2
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js.map +1 -1
- package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +17 -17
- package/dist/components/forms/select/RuiMenuSelect.vue2.js +14 -7
- package/dist/components/forms/select/RuiMenuSelect.vue2.js.map +1 -1
- package/dist/components/forms/select/RuiSimpleSelect.vue.d.ts +3 -1
- package/dist/components/forms/select/RuiSimpleSelect.vue2.js +8 -4
- package/dist/components/forms/select/RuiSimpleSelect.vue2.js.map +1 -1
- package/dist/components/forms/slider/RuiSlider.vue.d.ts +2 -2
- package/dist/components/forms/slider/RuiSlider.vue2.js +10 -8
- package/dist/components/forms/slider/RuiSlider.vue2.js.map +1 -1
- package/dist/components/forms/switch/RuiSwitch.vue.d.ts +1 -1
- package/dist/components/forms/switch/RuiSwitch.vue2.js +2 -2
- package/dist/components/forms/switch/RuiSwitch.vue2.js.map +1 -1
- package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +3 -3
- package/dist/components/forms/text-area/RuiTextArea.vue2.js +8 -8
- package/dist/components/forms/text-area/RuiTextArea.vue2.js.map +1 -1
- package/dist/components/forms/text-field/RuiTextField.vue.d.ts +6 -6
- package/dist/components/forms/text-field/RuiTextField.vue2.js +5 -5
- package/dist/components/forms/text-field/RuiTextField.vue2.js.map +1 -1
- package/dist/components/helpers/RuiFormTextDetail.vue.js +1 -1
- package/dist/components/helpers/RuiFormTextDetail.vue.js.map +1 -1
- package/dist/components/icons/RuiIcon.vue2.js +3 -6
- package/dist/components/icons/RuiIcon.vue2.js.map +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/loaders/RuiSkeletonBase.vue2.js +1 -1
- package/dist/components/loaders/RuiSkeletonLoader.vue2.js +1 -1
- package/dist/components/logos/RuiLogo.vue.js +3 -1
- package/dist/components/logos/RuiLogo.vue.js.map +1 -1
- package/dist/components/overlays/badge/RuiBadge.vue.d.ts +3 -3
- package/dist/components/overlays/badge/RuiBadge.vue2.js +1 -1
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js +1 -1
- package/dist/components/overlays/dialog/RuiDialog.vue.d.ts +4 -3
- package/dist/components/overlays/dialog/RuiDialog.vue2.js +11 -5
- package/dist/components/overlays/dialog/RuiDialog.vue2.js.map +1 -1
- package/dist/components/overlays/menu/RuiMenu.vue.d.ts +1 -1
- package/dist/components/overlays/menu/RuiMenu.vue2.js +6 -4
- package/dist/components/overlays/menu/RuiMenu.vue2.js.map +1 -1
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.d.ts +4 -3
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js +9 -4
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js.map +1 -1
- package/dist/components/overlays/notification/RuiNotification.vue.d.ts +1 -1
- package/dist/components/overlays/notification/RuiNotification.vue.js +3 -1
- package/dist/components/overlays/notification/RuiNotification.vue.js.map +1 -1
- package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +1 -1
- package/dist/components/overlays/tooltip/RuiTooltip.vue2.js +7 -3
- package/dist/components/overlays/tooltip/RuiTooltip.vue2.js.map +1 -1
- package/dist/components/progress/RuiProgress.vue.d.ts +1 -1
- package/dist/components/progress/RuiProgress.vue2.js +1 -1
- package/dist/components/steppers/RuiFooterStepper.vue2.js +15 -8
- package/dist/components/steppers/RuiFooterStepper.vue2.js.map +1 -1
- package/dist/components/steppers/RuiStepper.vue.d.ts +1 -1
- package/dist/components/steppers/RuiStepper.vue2.js +9 -4
- package/dist/components/steppers/RuiStepper.vue2.js.map +1 -1
- package/dist/components/steppers/RuiStepperCustomIcon.vue2.js +1 -1
- package/dist/components/steppers/RuiStepperIcon.vue2.js +1 -1
- package/dist/components/tables/RuiDataTable.vue2.js +28 -24
- package/dist/components/tables/RuiDataTable.vue2.js.map +1 -1
- package/dist/components/tables/RuiExpandButton.vue2.js +3 -2
- package/dist/components/tables/RuiExpandButton.vue2.js.map +1 -1
- package/dist/components/tables/RuiTableHead.vue2.js +1 -1
- package/dist/components/tables/RuiTablePagination.vue.d.ts +1 -1
- package/dist/components/tables/RuiTablePagination.vue2.js +12 -5
- package/dist/components/tables/RuiTablePagination.vue2.js.map +1 -1
- package/dist/components/tabs/tab/RuiTab.vue.d.ts +2 -2
- package/dist/components/tabs/tab/RuiTab.vue2.js +9 -6
- package/dist/components/tabs/tab/RuiTab.vue2.js.map +1 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue.d.ts +1 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue2.js +2 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue2.js.map +1 -1
- package/dist/components/tabs/tab-items/RuiTabItems.vue.d.ts +1 -1
- package/dist/components/tabs/tab-items/RuiTabItems.vue2.js +1 -1
- package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +1 -1
- package/dist/components/tabs/tabs/RuiTabs.vue2.js +1 -1
- package/dist/components/time-picker/RuiTimePicker.vue2.js +21 -4
- package/dist/components/time-picker/RuiTimePicker.vue2.js.map +1 -1
- package/dist/composables/icons.js +1 -1
- package/dist/composables/icons.js.map +1 -1
- package/dist/composables/popper.js +3 -3
- package/dist/composables/popper.js.map +1 -1
- package/dist/composables/theme.js +7 -4
- package/dist/composables/theme.js.map +1 -1
- package/dist/icons/icons_1.d.ts +15 -15
- package/dist/icons/icons_1.js +96 -96
- package/dist/icons/icons_1.js.map +1 -1
- package/dist/icons/icons_2.d.ts +38 -38
- package/dist/icons/icons_2.js +255 -255
- package/dist/icons/icons_2.js.map +1 -1
- package/dist/icons/icons_3.d.ts +26 -26
- package/dist/icons/icons_3.js +153 -153
- package/dist/icons/icons_3.js.map +1 -1
- package/dist/icons/icons_4.d.ts +37 -2
- package/dist/icons/icons_4.js +192 -17
- package/dist/icons/icons_4.js.map +1 -1
- package/dist/icons/index.d.ts +1 -1
- package/dist/icons/index.js +1 -1
- package/dist/icons/index.js.map +1 -1
- package/dist/index.js +65 -30
- package/dist/style.css +26 -26
- package/dist/vite-plugin/index.js +4 -4
- package/dist/vite-plugin/index.js.map +1 -1
- package/dist/vite-plugin/scanner.js +3 -3
- package/dist/vite-plugin/scanner.js.map +1 -1
- package/dist/web-types.json +43 -24
- package/package.json +28 -34
|
@@ -66,7 +66,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
66
66
|
readonly hideNoData: boolean;
|
|
67
67
|
readonly noDataText: string;
|
|
68
68
|
readonly required: boolean;
|
|
69
|
-
} & ("disabled" | "
|
|
69
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
70
70
|
disabled: false;
|
|
71
71
|
loading: false;
|
|
72
72
|
readOnly: false;
|
|
@@ -114,7 +114,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
114
114
|
readonly hideNoData: boolean;
|
|
115
115
|
readonly noDataText: string;
|
|
116
116
|
readonly required: boolean;
|
|
117
|
-
} & ("disabled" | "
|
|
117
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
118
118
|
disabled: false;
|
|
119
119
|
loading: false;
|
|
120
120
|
readOnly: false;
|
|
@@ -162,7 +162,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
162
162
|
readonly hideNoData: boolean;
|
|
163
163
|
readonly noDataText: string;
|
|
164
164
|
readonly required: boolean;
|
|
165
|
-
} & ("disabled" | "
|
|
165
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
166
166
|
disabled: false;
|
|
167
167
|
loading: false;
|
|
168
168
|
readOnly: false;
|
|
@@ -210,7 +210,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
210
210
|
readonly hideNoData: boolean;
|
|
211
211
|
readonly noDataText: string;
|
|
212
212
|
readonly required: boolean;
|
|
213
|
-
} & ("disabled" | "
|
|
213
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
214
214
|
disabled: false;
|
|
215
215
|
loading: false;
|
|
216
216
|
readOnly: false;
|
|
@@ -281,7 +281,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
281
281
|
readonly hideNoData: boolean;
|
|
282
282
|
readonly noDataText: string;
|
|
283
283
|
readonly required: boolean;
|
|
284
|
-
} & ("disabled" | "
|
|
284
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
285
285
|
disabled: false;
|
|
286
286
|
loading: false;
|
|
287
287
|
readOnly: false;
|
|
@@ -329,7 +329,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
329
329
|
readonly hideNoData: boolean;
|
|
330
330
|
readonly noDataText: string;
|
|
331
331
|
readonly required: boolean;
|
|
332
|
-
} & ("disabled" | "
|
|
332
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
333
333
|
disabled: false;
|
|
334
334
|
loading: false;
|
|
335
335
|
readOnly: false;
|
|
@@ -377,7 +377,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
377
377
|
readonly hideNoData: boolean;
|
|
378
378
|
readonly noDataText: string;
|
|
379
379
|
readonly required: boolean;
|
|
380
|
-
} & ("disabled" | "
|
|
380
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
381
381
|
disabled: false;
|
|
382
382
|
loading: false;
|
|
383
383
|
readOnly: false;
|
|
@@ -425,7 +425,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
425
425
|
readonly hideNoData: boolean;
|
|
426
426
|
readonly noDataText: string;
|
|
427
427
|
readonly required: boolean;
|
|
428
|
-
} & ("disabled" | "
|
|
428
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
429
429
|
disabled: false;
|
|
430
430
|
loading: false;
|
|
431
431
|
readOnly: false;
|
|
@@ -479,7 +479,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
479
479
|
readonly hideNoData: boolean;
|
|
480
480
|
readonly noDataText: string;
|
|
481
481
|
readonly required: boolean;
|
|
482
|
-
} & ("disabled" | "
|
|
482
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
483
483
|
disabled: false;
|
|
484
484
|
loading: false;
|
|
485
485
|
readOnly: false;
|
|
@@ -527,7 +527,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
527
527
|
readonly hideNoData: boolean;
|
|
528
528
|
readonly noDataText: string;
|
|
529
529
|
readonly required: boolean;
|
|
530
|
-
} & ("disabled" | "
|
|
530
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
531
531
|
disabled: false;
|
|
532
532
|
loading: false;
|
|
533
533
|
readOnly: false;
|
|
@@ -575,7 +575,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
575
575
|
readonly hideNoData: boolean;
|
|
576
576
|
readonly noDataText: string;
|
|
577
577
|
readonly required: boolean;
|
|
578
|
-
} & ("disabled" | "
|
|
578
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
579
579
|
disabled: false;
|
|
580
580
|
loading: false;
|
|
581
581
|
readOnly: false;
|
|
@@ -623,7 +623,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
623
623
|
readonly hideNoData: boolean;
|
|
624
624
|
readonly noDataText: string;
|
|
625
625
|
readonly required: boolean;
|
|
626
|
-
} & ("disabled" | "
|
|
626
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
627
627
|
disabled: false;
|
|
628
628
|
loading: false;
|
|
629
629
|
readOnly: false;
|
|
@@ -677,7 +677,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
677
677
|
readonly hideNoData: boolean;
|
|
678
678
|
readonly noDataText: string;
|
|
679
679
|
readonly required: boolean;
|
|
680
|
-
} & ("disabled" | "
|
|
680
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T extends keyof T_1 ? { readonly [K in T]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
681
681
|
disabled: false;
|
|
682
682
|
loading: false;
|
|
683
683
|
readOnly: false;
|
|
@@ -725,7 +725,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
725
725
|
readonly hideNoData: boolean;
|
|
726
726
|
readonly noDataText: string;
|
|
727
727
|
readonly required: boolean;
|
|
728
|
-
} & ("disabled" | "
|
|
728
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_2 extends keyof T_1 ? { readonly [K in T_2]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
729
729
|
disabled: false;
|
|
730
730
|
loading: false;
|
|
731
731
|
readOnly: false;
|
|
@@ -773,7 +773,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
773
773
|
readonly hideNoData: boolean;
|
|
774
774
|
readonly noDataText: string;
|
|
775
775
|
readonly required: boolean;
|
|
776
|
-
} & ("disabled" | "
|
|
776
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_3 extends keyof T_1 ? { readonly [K in T_3]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
777
777
|
disabled: false;
|
|
778
778
|
loading: false;
|
|
779
779
|
readOnly: false;
|
|
@@ -821,7 +821,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
821
821
|
readonly hideNoData: boolean;
|
|
822
822
|
readonly noDataText: string;
|
|
823
823
|
readonly required: boolean;
|
|
824
|
-
} & ("disabled" | "
|
|
824
|
+
} & ("disabled" | "loading" | "required" | "hideDetails" | "dense" | "clearable" | "autoSelectFirst" | "readOnly" | "hideNoData" | (KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue> | undefined extends boolean | undefined ? (boolean & KeyOfType<TItem, TValue extends (infer U)[] ? U : TValue>) | undefined extends undefined ? never : "keyAttr" : never) | (keyof TItem | undefined extends boolean | undefined ? (boolean & keyof TItem) | undefined extends undefined ? never : "textAttr" : never) extends infer T_4 extends keyof T_1 ? { readonly [K in T_4]-?: K extends "label" | "variant" | "disabled" | "loading" | "errorMessages" | "successMessages" | "hint" | "required" | "hideDetails" | "dense" | "clearable" | "prependWidth" | "appendWidth" | "keyAttr" | "textAttr" | "autoSelectFirst" | "itemHeight" | "readOnly" | "hideNoData" | "noDataText" ? {
|
|
825
825
|
disabled: false;
|
|
826
826
|
loading: false;
|
|
827
827
|
readOnly: false;
|
|
@@ -849,7 +849,7 @@ declare const __VLS_export: <TValue, TItem>(__VLS_props: NonNullable<Awaited<typ
|
|
|
849
849
|
} & {
|
|
850
850
|
'no-data'?: (props: {}) => any;
|
|
851
851
|
};
|
|
852
|
-
emit: (
|
|
852
|
+
emit: (event: "update:modelValue", value: TValue | undefined) => void;
|
|
853
853
|
}>) => import("vue").VNode & {
|
|
854
854
|
__ctx?: Awaited<typeof __VLS_setup>;
|
|
855
855
|
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { defineComponent, mergeModels, useCssVars, unref, computed, useModel, toRefs, ref, createBlock, openBlock, mergeProps, isRef, withCtx, createElementBlock, createCommentVNode, withKeys, withModifiers, createElementVNode, Fragment, renderList, normalizeClass, renderSlot, createTextVNode, toDisplayString, normalizeStyle, normalizeProps, guardReactiveProps, createVNode } from "vue";
|
|
1
|
+
import { defineComponent, useCssVars, unref, useModel, toRefs, ref, computed, openBlock, createBlock, mergeProps, isRef, withCtx, createElementBlock, withKeys, withModifiers, createElementVNode, Fragment, renderList, normalizeClass, renderSlot, createTextVNode, toDisplayString, normalizeStyle, createCommentVNode, normalizeProps, guardReactiveProps, createVNode, mergeModels } from "vue";
|
|
3
2
|
import RuiButton from "../../buttons/button/RuiButton.vue.js";
|
|
4
3
|
import RuiIcon from "../../icons/RuiIcon.vue.js";
|
|
5
4
|
import RuiMenu from "../../overlays/menu/RuiMenu.vue.js";
|
|
6
5
|
import RuiProgress from "../../progress/RuiProgress.vue.js";
|
|
7
6
|
import { useDropdownMenu } from "../../../composables/dropdown-menu.js";
|
|
7
|
+
import { getRootAttrs, getNonRootAttrs } from "../../../utils/helpers.js";
|
|
8
8
|
import { useFocus, isDefined } from "@vueuse/core";
|
|
9
9
|
import { set, get } from "@vueuse/shared";
|
|
10
|
-
const _hoisted_1 = ["disabled", "aria-disabled", "tabindex", "data-error", "aria-invalid"];
|
|
10
|
+
const _hoisted_1 = ["disabled", "aria-disabled", "aria-expanded", "aria-readonly", "aria-required", "aria-busy", "tabindex", "data-error", "aria-invalid"];
|
|
11
11
|
const _hoisted_2 = {
|
|
12
12
|
key: 0,
|
|
13
13
|
class: "text-rui-error"
|
|
@@ -53,7 +53,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
53
53
|
emits: ["update:modelValue"],
|
|
54
54
|
setup(__props) {
|
|
55
55
|
useCssVars((_ctx) => ({
|
|
56
|
-
"
|
|
56
|
+
"v27aaaf1d": unref(labelWithQuote)
|
|
57
57
|
}));
|
|
58
58
|
const modelValue = useModel(__props, "modelValue");
|
|
59
59
|
const props = __props;
|
|
@@ -127,7 +127,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
127
127
|
class: _ctx.$style.wrapper,
|
|
128
128
|
"disable-auto-focus": ""
|
|
129
129
|
}, {
|
|
130
|
-
...
|
|
130
|
+
...unref(getRootAttrs)(_ctx.$attrs),
|
|
131
131
|
placement: "bottom-start",
|
|
132
132
|
closeOnContentClick: true,
|
|
133
133
|
fullWidth: true,
|
|
@@ -146,6 +146,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
146
146
|
ref: activator,
|
|
147
147
|
disabled: unref(disabled),
|
|
148
148
|
"aria-disabled": unref(disabled),
|
|
149
|
+
"aria-expanded": unref(isOpen),
|
|
150
|
+
"aria-readonly": __props.readOnly || void 0,
|
|
151
|
+
"aria-required": __props.required || void 0,
|
|
152
|
+
"aria-busy": __props.loading || void 0,
|
|
149
153
|
type: "button",
|
|
150
154
|
tabindex: unref(disabled) || __props.readOnly ? -1 : 0,
|
|
151
155
|
class: ["group", [
|
|
@@ -163,7 +167,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
163
167
|
[_ctx.$style["with-success"]]: hasSuccess && !hasError
|
|
164
168
|
}
|
|
165
169
|
]]
|
|
166
|
-
}, { ...
|
|
170
|
+
}, { ...unref(getNonRootAttrs)(_ctx.$attrs), ...__props.readOnly ? {} : attrs }, {
|
|
167
171
|
"data-id": "activator",
|
|
168
172
|
"data-error": hasError ? "" : void 0,
|
|
169
173
|
"aria-invalid": hasError,
|
|
@@ -198,6 +202,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
198
202
|
], 2)) : createCommentVNode("", true),
|
|
199
203
|
__props.clearable && unref(value) && !unref(disabled) ? (openBlock(), createElementBlock("span", {
|
|
200
204
|
key: 2,
|
|
205
|
+
"data-id": "clear",
|
|
201
206
|
class: normalizeClass(["group-hover:!visible", [_ctx.$style.clear, unref(focused) && "!visible"]]),
|
|
202
207
|
onClick: _cache[0] || (_cache[0] = withModifiers(($event) => clear(), ["stop", "prevent"]))
|
|
203
208
|
}, [
|
|
@@ -260,6 +265,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
260
265
|
return openBlock(), createBlock(RuiButton, {
|
|
261
266
|
key: _index,
|
|
262
267
|
active: unref(isActiveItem)(item),
|
|
268
|
+
"aria-selected": unref(isActiveItem)(item),
|
|
263
269
|
size: unref(dense) ? "sm" : void 0,
|
|
264
270
|
"model-value": unref(getIdentifier)(item),
|
|
265
271
|
variant: "list",
|
|
@@ -282,11 +288,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
282
288
|
])
|
|
283
289
|
]),
|
|
284
290
|
_: 2
|
|
285
|
-
}, 1032, ["active", "size", "model-value", "class", "onUpdate:modelValue", "onMousedown"]);
|
|
291
|
+
}, 1032, ["active", "aria-selected", "size", "model-value", "class", "onUpdate:modelValue", "onMousedown"]);
|
|
286
292
|
}), 128))
|
|
287
293
|
], 16)
|
|
288
294
|
], 16)) : !__props.hideNoData ? (openBlock(), createElementBlock("div", {
|
|
289
295
|
key: 1,
|
|
296
|
+
"data-id": "no-data",
|
|
290
297
|
style: normalizeStyle({ width: `${width}px`, minWidth: unref(menuWidth) }),
|
|
291
298
|
class: normalizeClass(__props.menuClass)
|
|
292
299
|
}, [
|
|
@@ -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 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 :data-error=\"hasError ? '' : undefined\"\n :aria-invalid=\"hasError\"\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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"}
|
|
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';\nimport { getNonRootAttrs, getRootAttrs } from '@/utils/helpers';\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 :aria-expanded=\"isOpen\"\n :aria-readonly=\"readOnly || undefined\"\n :aria-required=\"required || undefined\"\n :aria-busy=\"loading || undefined\"\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 :data-error=\"hasError ? '' : undefined\"\n :aria-invalid=\"hasError\"\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 data-id=\"clear\"\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 :aria-selected=\"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 data-id=\"no-data\"\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","$attrs","_withCtx","_renderSlot","_createElementVNode","_createElementBlock","_normalizeClass","_normalizeProps","_guardReactiveProps","_createTextVNode","_toDisplayString","_createVNode","_Fragment","_renderList","_normalizeStyle"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ export interface Props {
|
|
|
2
2
|
modelValue: string | number;
|
|
3
3
|
options: string[] | number[];
|
|
4
4
|
disabled?: boolean;
|
|
5
|
+
label?: string;
|
|
5
6
|
name?: string;
|
|
6
7
|
variant?: 'default' | 'outlined';
|
|
7
8
|
}
|
|
@@ -11,8 +12,9 @@ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {},
|
|
|
11
12
|
"onUpdate:model-value"?: ((value?: string | number | undefined) => any) | undefined;
|
|
12
13
|
}>, {
|
|
13
14
|
name: string;
|
|
14
|
-
|
|
15
|
+
label: string;
|
|
15
16
|
variant: "default" | "outlined";
|
|
17
|
+
disabled: boolean;
|
|
16
18
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
17
19
|
declare const _default: typeof __VLS_export;
|
|
18
20
|
export default _default;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { defineComponent, toRefs, computed,
|
|
1
|
+
import { defineComponent, toRefs, computed, openBlock, createElementBlock, mergeProps, withDirectives, createElementVNode, normalizeClass, isRef, Fragment, renderList, toDisplayString, vModelSelect, unref, createVNode } from "vue";
|
|
2
2
|
import RuiIcon from "../../icons/RuiIcon.vue.js";
|
|
3
3
|
import { get } from "@vueuse/shared";
|
|
4
|
-
const _hoisted_1 = ["name", "disabled"];
|
|
4
|
+
const _hoisted_1 = ["name", "disabled", "aria-label"];
|
|
5
5
|
const _hoisted_2 = ["value"];
|
|
6
6
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
7
7
|
...{
|
|
@@ -13,6 +13,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
13
13
|
modelValue: {},
|
|
14
14
|
options: {},
|
|
15
15
|
disabled: { type: Boolean, default: false },
|
|
16
|
+
label: { default: void 0 },
|
|
16
17
|
name: { default: "" },
|
|
17
18
|
variant: { default: "default" }
|
|
18
19
|
},
|
|
@@ -37,7 +38,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
37
38
|
{ [_ctx.$style.disabled ?? ""]: __props.disabled }
|
|
38
39
|
]),
|
|
39
40
|
name: __props.name,
|
|
40
|
-
disabled: __props.disabled
|
|
41
|
+
disabled: __props.disabled,
|
|
42
|
+
"aria-label": __props.label,
|
|
43
|
+
"data-id": "select"
|
|
41
44
|
}, [
|
|
42
45
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option, i) => {
|
|
43
46
|
return openBlock(), createElementBlock("option", {
|
|
@@ -49,7 +52,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
49
52
|
[vModelSelect, unref(value)]
|
|
50
53
|
]),
|
|
51
54
|
createElementVNode("span", {
|
|
52
|
-
class: normalizeClass(_ctx.$style.icon__wrapper)
|
|
55
|
+
class: normalizeClass(_ctx.$style.icon__wrapper),
|
|
56
|
+
"aria-hidden": "true"
|
|
53
57
|
}, [
|
|
54
58
|
createVNode(RuiIcon, {
|
|
55
59
|
class: normalizeClass(_ctx.$style.icon),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuiSimpleSelect.vue2.js","sources":["../../../../src/components/forms/select/RuiSimpleSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\n\nexport interface Props {\n modelValue: string | number;\n options: string[] | number[];\n disabled?: boolean;\n name?: string;\n variant?: 'default' | 'outlined';\n}\n\ndefineOptions({\n name: 'RuiSimpleSelect',\n inheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<Props>(), {\n disabled: false,\n name: '',\n variant: 'default',\n});\n\nconst emit = defineEmits<{\n (e: 'update:model-value', value?: string | number): void;\n}>();\n\nconst { modelValue } = toRefs(props);\n\nconst value = computed({\n get: () => get(modelValue),\n set: value => emit('update:model-value', value),\n});\n</script>\n\n<template>\n <div\n :class=\"$style.wrapper\"\n v-bind=\"$attrs\"\n >\n <select\n v-model=\"value\"\n :class=\"[\n $style.select,\n $style[variant ?? 'default'],\n { [$style.disabled ?? '']: disabled },\n ]\"\n :name=\"name\"\n :disabled=\"disabled\"\n >\n <option\n v-for=\"(option, i) in options\"\n :key=\"i\"\n :value=\"option\"\n >\n {{ option }}\n </option>\n </select>\n <span
|
|
1
|
+
{"version":3,"file":"RuiSimpleSelect.vue2.js","sources":["../../../../src/components/forms/select/RuiSimpleSelect.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\n\nexport interface Props {\n modelValue: string | number;\n options: string[] | number[];\n disabled?: boolean;\n label?: string;\n name?: string;\n variant?: 'default' | 'outlined';\n}\n\ndefineOptions({\n name: 'RuiSimpleSelect',\n inheritAttrs: false,\n});\n\nconst props = withDefaults(defineProps<Props>(), {\n disabled: false,\n label: undefined,\n name: '',\n variant: 'default',\n});\n\nconst emit = defineEmits<{\n (e: 'update:model-value', value?: string | number): void;\n}>();\n\nconst { modelValue } = toRefs(props);\n\nconst value = computed({\n get: () => get(modelValue),\n set: value => emit('update:model-value', value),\n});\n</script>\n\n<template>\n <div\n :class=\"$style.wrapper\"\n v-bind=\"$attrs\"\n >\n <select\n v-model=\"value\"\n :class=\"[\n $style.select,\n $style[variant ?? 'default'],\n { [$style.disabled ?? '']: disabled },\n ]\"\n :name=\"name\"\n :disabled=\"disabled\"\n :aria-label=\"label\"\n data-id=\"select\"\n >\n <option\n v-for=\"(option, i) in options\"\n :key=\"i\"\n :value=\"option\"\n >\n {{ option }}\n </option>\n </select>\n <span\n :class=\"$style.icon__wrapper\"\n aria-hidden=\"true\"\n >\n <RuiIcon\n :class=\"$style.icon\"\n name=\"lu-chevron-down\"\n size=\"16\"\n />\n </span>\n </div>\n</template>\n\n<style module lang=\"scss\">\n.wrapper {\n @apply relative inline-flex;\n\n .select {\n @apply outline-none focus:outline-none appearance-none cursor-pointer pl-2 py-1 pr-8 rounded;\n @apply m-0 w-full bg-white hover:bg-gray-50 transition;\n @apply disabled:bg-black/[.12] disabled:text-rui-text-disabled disabled:active:text-rui-text-disabled disabled:cursor-default;\n\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n\n &::-ms-expand {\n display: none;\n }\n\n &.outlined {\n @apply border border-rui-text-disabled disabled:border-transparent;\n }\n }\n\n .icon {\n @apply text-rui-text-disabled pointer-events-none;\n\n &__wrapper {\n @apply flex items-center justify-end;\n @apply absolute right-1 top-px bottom-0 pointer-events-none;\n }\n }\n}\n\n:global(.dark) {\n .wrapper {\n .select {\n @apply bg-transparent hover:bg-white/10 disabled:bg-white/10 text-rui-text-disabled;\n\n &.outlined {\n @apply border border-rui-text-disabled;\n }\n }\n\n .icon {\n @apply text-rui-text-disabled;\n }\n }\n}\n</style>\n"],"names":["value","_openBlock","_createElementBlock","_mergeProps","$style","$attrs","_createElementVNode","_normalizeClass","_Fragment","_renderList","_unref","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAiBA,UAAM,QAAQ;AAOd,UAAM,OAAO;AAIb,UAAM,EAAE,WAAA,IAAe,OAAO,KAAK;AAEnC,UAAM,QAAQ,SAAS;AAAA,MACrB,KAAK,MAAM,IAAI,UAAU;AAAA,MACzB,KAAK,CAAAA,WAAS,KAAK,sBAAsBA,MAAK;AAAA,IAAA,CAC/C;;AAIC,aAAAC,UAAA,GAAAC,mBAkCM,OAlCNC,WAkCM;AAAA,QAjCH,OAAOC,KAAAA,OAAO;AAAA,MAAA,GACPC,KAAAA,MAAM,GAAA;AAAA,uBAEdC,mBAmBS,UAAA;AAAA,sFAlBE,MAAK,QAAA,SAAA;AAAA,UACb,OAAKC,eAAA;AAAA,YAAYH,KAAAA,OAAO;AAAA,YAAgBA,KAAAA,OAAO,QAAA,WAAO,SAAA;AAAA,eAA2BA,KAAAA,OAAO,YAAQ,EAAA,GAAS,QAAA,SAAA;AAAA,UAAQ;UAKjH,MAAM,QAAA;AAAA,UACN,UAAU,QAAA;AAAA,UACV,cAAY,QAAA;AAAA,UACb,WAAQ;AAAA,QAAA;WAERH,UAAA,IAAA,GAAAC,mBAMSM,UAAA,MAAAC,WALe,QAAA,SAAO,CAArB,QAAQ,MAAC;gCADnBP,mBAMS,UAAA;AAAA,cAJN,KAAK;AAAA,cACL,OAAO;AAAA,YAAA,mBAEL,MAAM,GAAA,GAAA,UAAA;AAAA;;yBAhBFQ,MAAA,KAAA,CAAK;AAAA,QAAA;QAmBhBJ,mBASO,QAAA;AAAA,UARJ,OAAKC,eAAEH,KAAAA,OAAO,aAAa;AAAA,UAC5B,eAAY;AAAA,QAAA;UAEZO,YAIE,SAAA;AAAA,YAHC,OAAKJ,eAAEH,KAAAA,OAAO,IAAI;AAAA,YACnB,MAAK;AAAA,YACL,MAAK;AAAA,UAAA;;;;;;"}
|
|
@@ -25,10 +25,10 @@ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {},
|
|
|
25
25
|
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
|
|
26
26
|
"onUpdate:model-value"?: ((value: number) => any) | undefined;
|
|
27
27
|
}>, {
|
|
28
|
-
color: ContextColorsType;
|
|
29
28
|
label: string;
|
|
30
|
-
disabled: boolean;
|
|
31
29
|
vertical: boolean;
|
|
30
|
+
color: ContextColorsType;
|
|
31
|
+
disabled: boolean;
|
|
32
32
|
modelValue: number;
|
|
33
33
|
errorMessages: string | string[];
|
|
34
34
|
successMessages: string | string[];
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { defineComponent, useCssVars, unref,
|
|
1
|
+
import { defineComponent, useCssVars, unref, toRefs, computed, ref, openBlock, createElementBlock, normalizeProps, guardReactiveProps, createElementVNode, normalizeClass, createTextVNode, toDisplayString, createCommentVNode, withDirectives, mergeProps, isRef, vModelText, Fragment, renderList, createBlock } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../../helpers/RuiFormTextDetail.vue.js";
|
|
3
|
+
import { useFormTextDetail } from "../../../utils/form-text-detail.js";
|
|
3
4
|
import { getRootAttrs, getNonRootAttrs } from "../../../utils/helpers.js";
|
|
4
5
|
import { get } from "@vueuse/shared";
|
|
5
|
-
import { useFormTextDetail } from "../../../utils/form-text-detail.js";
|
|
6
6
|
import { useElementBounding } from "@vueuse/core";
|
|
7
7
|
const _hoisted_1 = ["data-error"];
|
|
8
8
|
const _hoisted_2 = {
|
|
9
9
|
key: 0,
|
|
10
10
|
class: "text-rui-error"
|
|
11
11
|
};
|
|
12
|
-
const _hoisted_3 = ["max", "min", "step", "disabled", "aria-invalid"];
|
|
12
|
+
const _hoisted_3 = ["max", "min", "step", "disabled", "aria-invalid", "aria-label", "aria-valuetext"];
|
|
13
13
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
14
14
|
...{
|
|
15
15
|
name: "RuiSlider",
|
|
@@ -40,10 +40,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
40
40
|
emits: ["update:model-value"],
|
|
41
41
|
setup(__props, { emit: __emit }) {
|
|
42
42
|
useCssVars((_ctx) => ({
|
|
43
|
-
"
|
|
44
|
-
"
|
|
45
|
-
"
|
|
46
|
-
"
|
|
43
|
+
"c9bc1d76": unref(sliderHeight),
|
|
44
|
+
"db8d5c30": unref(sliderWidth),
|
|
45
|
+
"f958c350": unref(trackWidth),
|
|
46
|
+
"v63a27e48": unref(tickSizeInPx)
|
|
47
47
|
}));
|
|
48
48
|
const props = __props;
|
|
49
49
|
const emit = __emit;
|
|
@@ -118,7 +118,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
118
118
|
min: unref(min),
|
|
119
119
|
step: unref(step),
|
|
120
120
|
disabled: __props.disabled,
|
|
121
|
-
"aria-invalid": unref(hasError)
|
|
121
|
+
"aria-invalid": unref(hasError),
|
|
122
|
+
"aria-label": __props.label || void 0,
|
|
123
|
+
"aria-valuetext": String(unref(vModel))
|
|
122
124
|
}, unref(getNonRootAttrs)(_ctx.$attrs)), null, 16, _hoisted_3), [
|
|
123
125
|
[vModelText, unref(vModel)]
|
|
124
126
|
]),
|