@rotki/ui-library 2.12.1 → 2.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordions/accordion/RuiAccordion.vue.d.ts +6 -14
- package/dist/components/accordions/accordion/RuiAccordion.vue.js +3 -4
- package/dist/components/accordions/accordion/RuiAccordion.vue.js.map +1 -1
- package/dist/components/accordions/accordions/RuiAccordions.vue.d.ts +10 -9
- package/dist/components/accordions/accordions/RuiAccordions.vue.js +27 -26
- package/dist/components/accordions/accordions/RuiAccordions.vue.js.map +1 -1
- package/dist/components/alerts/RuiAlert.vue.d.ts +7 -17
- package/dist/components/alerts/RuiAlert.vue2.js +8 -16
- package/dist/components/alerts/RuiAlert.vue2.js.map +1 -1
- package/dist/components/buttons/button/RuiButton.vue.d.ts +5 -7
- package/dist/components/buttons/button/RuiButton.vue2.js +19 -20
- package/dist/components/buttons/button/RuiButton.vue2.js.map +1 -1
- package/dist/components/buttons/button-group/RuiButtonGroup.vue.d.ts +6 -5
- package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js +42 -41
- package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js.map +1 -1
- package/dist/components/calendar/RuiCalendar.vue.d.ts +1 -6
- package/dist/components/calendar/RuiCalendar.vue.js +7 -8
- package/dist/components/calendar/RuiCalendar.vue.js.map +1 -1
- package/dist/components/calendar/RuiCalendarGrid.vue.js +1 -1
- package/dist/components/calendar/RuiCalendarGrid.vue2.js +20 -18
- package/dist/components/calendar/RuiCalendarGrid.vue2.js.map +1 -1
- package/dist/components/calendar/RuiCalendarHeader.vue.js +1 -1
- package/dist/components/calendar/RuiCalendarHeader.vue2.js +3 -4
- package/dist/components/calendar/RuiCalendarHeader.vue2.js.map +1 -1
- package/dist/components/calendar/RuiCalendarMenu.vue.js +1 -1
- package/dist/components/calendar/RuiCalendarMenu.vue2.js +48 -40
- package/dist/components/calendar/RuiCalendarMenu.vue2.js.map +1 -1
- package/dist/components/cards/RuiCard.vue.d.ts +9 -24
- package/dist/components/cards/RuiCard.vue2.js +7 -7
- package/dist/components/cards/RuiCard.vue2.js.map +1 -1
- package/dist/components/cards/RuiCardHeader.vue.d.ts +5 -10
- package/dist/components/cards/RuiCardHeader.vue2.js +1 -1
- package/dist/components/cards/RuiCardHeader.vue2.js.map +1 -1
- package/dist/components/chips/RuiChip.vue.d.ts +7 -21
- package/dist/components/chips/RuiChip.vue2.js +16 -21
- package/dist/components/chips/RuiChip.vue2.js.map +1 -1
- package/dist/components/color-picker/RuiColorBoard.vue.d.ts +1 -1
- package/dist/components/color-picker/RuiColorBoard.vue2.js +19 -19
- package/dist/components/color-picker/RuiColorBoard.vue2.js.map +1 -1
- package/dist/components/color-picker/RuiColorDisplay.vue.js +3 -5
- package/dist/components/color-picker/RuiColorDisplay.vue.js.map +1 -1
- package/dist/components/color-picker/RuiColorHue.vue2.js +17 -14
- package/dist/components/color-picker/RuiColorHue.vue2.js.map +1 -1
- package/dist/components/color-picker/RuiColorInput.vue.js +9 -7
- package/dist/components/color-picker/RuiColorInput.vue.js.map +1 -1
- package/dist/components/color-picker/RuiColorPicker.vue.d.ts +7 -9
- package/dist/components/color-picker/RuiColorPicker.vue.js +23 -14
- package/dist/components/color-picker/RuiColorPicker.vue.js.map +1 -1
- package/dist/components/color-picker/utils.js +22 -5
- package/dist/components/color-picker/utils.js.map +1 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +2 -44
- package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js +75 -79
- 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/date-time-picker/dayjs-setup.d.ts +1 -0
- package/dist/components/date-time-picker/dayjs-setup.js +8 -0
- package/dist/components/date-time-picker/dayjs-setup.js.map +1 -0
- package/dist/components/date-time-picker/segment-config.d.ts +14 -0
- package/dist/components/date-time-picker/segment-config.js +23 -0
- package/dist/components/date-time-picker/segment-config.js.map +1 -0
- package/dist/components/date-time-picker/segment-utils.d.ts +5 -0
- package/dist/components/date-time-picker/segment-utils.js +36 -0
- package/dist/components/date-time-picker/segment-utils.js.map +1 -0
- package/dist/components/date-time-picker/use-date-time-selection.d.ts +1 -0
- package/dist/components/date-time-picker/use-date-time-selection.js +1 -0
- package/dist/components/date-time-picker/use-date-time-selection.js.map +1 -1
- package/dist/components/date-time-picker/use-keyboard-handler.d.ts +4 -8
- package/dist/components/date-time-picker/use-keyboard-handler.js +9 -54
- package/dist/components/date-time-picker/use-keyboard-handler.js.map +1 -1
- package/dist/components/date-time-picker/utils.d.ts +1 -0
- package/dist/components/date-time-picker/utils.js +1 -0
- package/dist/components/date-time-picker/utils.js.map +1 -1
- package/dist/components/divider/RuiDivider.vue.d.ts +1 -3
- 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 +10 -1138
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js +153 -160
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js.map +1 -1
- package/dist/components/forms/checkbox/RuiCheckbox.vue.d.ts +15 -24
- package/dist/components/forms/checkbox/RuiCheckbox.vue2.js +32 -32
- package/dist/components/forms/checkbox/RuiCheckbox.vue2.js.map +1 -1
- package/dist/components/forms/radio-button/radio/RuiRadio.vue.d.ts +2 -2
- package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js +19 -22
- 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 +4 -2
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js +13 -16
- 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 +7 -13
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js +10 -9
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js.map +1 -1
- package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +10 -785
- package/dist/components/forms/select/RuiMenuSelect.vue2.js +60 -56
- package/dist/components/forms/select/RuiMenuSelect.vue2.js.map +1 -1
- package/dist/components/forms/select/RuiSimpleSelect.vue.d.ts +11 -10
- package/dist/components/forms/select/RuiSimpleSelect.vue2.js +21 -26
- package/dist/components/forms/select/RuiSimpleSelect.vue2.js.map +1 -1
- package/dist/components/forms/slider/RuiSlider.vue.d.ts +10 -26
- package/dist/components/forms/slider/RuiSlider.vue2.js +45 -48
- package/dist/components/forms/slider/RuiSlider.vue2.js.map +1 -1
- package/dist/components/forms/switch/RuiSwitch.vue.d.ts +12 -20
- package/dist/components/forms/switch/RuiSwitch.vue2.js +22 -21
- package/dist/components/forms/switch/RuiSwitch.vue2.js.map +1 -1
- package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +5 -30
- package/dist/components/forms/text-area/RuiTextArea.vue2.js +47 -83
- package/dist/components/forms/text-area/RuiTextArea.vue2.js.map +1 -1
- package/dist/components/forms/text-field/RuiTextField.vue.d.ts +10 -30
- package/dist/components/forms/text-field/RuiTextField.vue2.js +36 -67
- package/dist/components/forms/text-field/RuiTextField.vue2.js.map +1 -1
- package/dist/components/helpers/RuiFormTextDetail.vue.d.ts +1 -5
- package/dist/components/helpers/RuiFormTextDetail.vue.js +5 -9
- package/dist/components/helpers/RuiFormTextDetail.vue.js.map +1 -1
- package/dist/components/icons/LazyIcon.vue.d.ts +1 -3
- package/dist/components/icons/RuiIcon.vue.d.ts +1 -4
- package/dist/components/icons/RuiIcon.vue2.js +11 -14
- package/dist/components/icons/RuiIcon.vue2.js.map +1 -1
- package/dist/components/index.d.ts +4 -4
- package/dist/components/loaders/RuiSkeletonBase.vue.d.ts +1 -3
- package/dist/components/loaders/RuiSkeletonBase.vue2.js +2 -2
- package/dist/components/loaders/RuiSkeletonBase.vue2.js.map +1 -1
- package/dist/components/loaders/RuiSkeletonLoader.vue.d.ts +1 -4
- package/dist/components/loaders/RuiSkeletonLoader.vue2.js +2 -2
- package/dist/components/loaders/RuiSkeletonLoader.vue2.js.map +1 -1
- package/dist/components/logos/RuiLogo.vue.d.ts +1 -7
- package/dist/components/logos/RuiLogo.vue.js +13 -13
- package/dist/components/logos/RuiLogo.vue.js.map +1 -1
- package/dist/components/overlays/badge/RuiBadge.vue.d.ts +5 -20
- package/dist/components/overlays/badge/RuiBadge.vue2.js +11 -13
- package/dist/components/overlays/badge/RuiBadge.vue2.js.map +1 -1
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.d.ts +10 -5
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js +18 -7
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js.map +1 -1
- package/dist/components/overlays/dialog/RuiDialog.vue.d.ts +22 -27
- package/dist/components/overlays/dialog/RuiDialog.vue2.js +90 -67
- package/dist/components/overlays/dialog/RuiDialog.vue2.js.map +1 -1
- package/dist/components/overlays/menu/RuiMenu.vue.d.ts +24 -35
- package/dist/components/overlays/menu/RuiMenu.vue2.js +71 -78
- package/dist/components/overlays/menu/RuiMenu.vue2.js.map +1 -1
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.d.ts +23 -30
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js +78 -49
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js.map +1 -1
- package/dist/components/overlays/notification/RuiNotification.vue.d.ts +12 -12
- package/dist/components/overlays/notification/RuiNotification.vue.js +27 -22
- package/dist/components/overlays/notification/RuiNotification.vue.js.map +1 -1
- package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +7 -18
- package/dist/components/overlays/tooltip/RuiTooltip.vue2.js +16 -9
- package/dist/components/overlays/tooltip/RuiTooltip.vue2.js.map +1 -1
- package/dist/components/progress/RuiProgress.vue.d.ts +8 -10
- package/dist/components/progress/RuiProgress.vue2.js +18 -24
- package/dist/components/progress/RuiProgress.vue2.js.map +1 -1
- package/dist/components/steppers/RuiFooterStepper.vue.d.ts +10 -11
- package/dist/components/steppers/RuiFooterStepper.vue2.js +33 -26
- package/dist/components/steppers/RuiFooterStepper.vue2.js.map +1 -1
- package/dist/components/steppers/RuiStepper.vue.d.ts +6 -15
- package/dist/components/steppers/RuiStepper.vue2.js +39 -36
- package/dist/components/steppers/RuiStepper.vue2.js.map +1 -1
- package/dist/components/steppers/RuiStepperCustomIcon.vue.d.ts +1 -3
- package/dist/components/steppers/RuiStepperCustomIcon.vue2.js +2 -2
- package/dist/components/steppers/RuiStepperCustomIcon.vue2.js.map +1 -1
- package/dist/components/steppers/RuiStepperIcon.vue.d.ts +1 -3
- package/dist/components/steppers/RuiStepperIcon.vue2.js +2 -2
- package/dist/components/steppers/RuiStepperIcon.vue2.js.map +1 -1
- package/dist/components/tables/RuiDataTable.vue.d.ts +29 -81
- package/dist/components/tables/RuiDataTable.vue2.js +196 -601
- package/dist/components/tables/RuiDataTable.vue2.js.map +1 -1
- package/dist/components/tables/RuiDataTable.vue3.js +24 -27
- package/dist/components/tables/RuiDataTable.vue3.js.map +1 -1
- package/dist/components/tables/RuiExpandButton.vue.d.ts +3 -6
- package/dist/components/tables/RuiExpandButton.vue2.js +4 -2
- package/dist/components/tables/RuiExpandButton.vue2.js.map +1 -1
- package/dist/components/tables/RuiTableHead.vue.d.ts +4 -7
- package/dist/components/tables/RuiTableHead.vue2.js +20 -20
- package/dist/components/tables/RuiTableHead.vue2.js.map +1 -1
- package/dist/components/tables/RuiTablePagination.vue.d.ts +10 -10
- package/dist/components/tables/RuiTablePagination.vue2.js +27 -19
- package/dist/components/tables/RuiTablePagination.vue2.js.map +1 -1
- package/dist/components/tabs/tab/RuiTab.vue.d.ts +3 -18
- package/dist/components/tabs/tab/RuiTab.vue2.js +84 -52
- package/dist/components/tabs/tab/RuiTab.vue2.js.map +1 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue.d.ts +3 -11
- package/dist/components/tabs/tab-item/RuiTabItem.vue2.js +3 -2
- package/dist/components/tabs/tab-item/RuiTabItem.vue2.js.map +1 -1
- package/dist/components/tabs/tab-items/RuiTabItems.vue.d.ts +2 -5
- package/dist/components/tabs/tab-items/RuiTabItems.vue2.js +18 -18
- package/dist/components/tabs/tab-items/RuiTabItems.vue2.js.map +1 -1
- package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +10 -14
- package/dist/components/tabs/tabs/RuiTabs.vue2.js +101 -94
- package/dist/components/tabs/tabs/RuiTabs.vue2.js.map +1 -1
- package/dist/components/time-picker/RuiTimePicker.vue.d.ts +1 -4
- package/dist/components/time-picker/RuiTimePicker.vue2.js +88 -38
- package/dist/components/time-picker/RuiTimePicker.vue2.js.map +1 -1
- package/dist/composables/breakpoint.js +8 -13
- package/dist/composables/breakpoint.js.map +1 -1
- package/dist/composables/dropdown-menu.d.ts +7 -4
- package/dist/composables/dropdown-menu.js +73 -50
- package/dist/composables/dropdown-menu.js.map +1 -1
- package/dist/composables/forms/auto-complete/focus.d.ts +7 -5
- package/dist/composables/forms/auto-complete/focus.js +28 -17
- package/dist/composables/forms/auto-complete/focus.js.map +1 -1
- package/dist/composables/forms/auto-complete/index.d.ts +0 -9
- package/dist/composables/forms/auto-complete/keyboard-navigation.d.ts +8 -3
- package/dist/composables/forms/auto-complete/keyboard-navigation.js +11 -5
- package/dist/composables/forms/auto-complete/keyboard-navigation.js.map +1 -1
- package/dist/composables/forms/auto-complete/search.d.ts +7 -0
- package/dist/composables/forms/auto-complete/search.js +10 -8
- package/dist/composables/forms/auto-complete/search.js.map +1 -1
- package/dist/composables/forms/auto-complete/value.d.ts +4 -0
- package/dist/composables/forms/auto-complete/value.js +24 -42
- package/dist/composables/forms/auto-complete/value.js.map +1 -1
- package/dist/composables/forms/use-label-with-quote.d.ts +2 -0
- package/dist/composables/forms/use-label-with-quote.js +14 -0
- package/dist/composables/forms/use-label-with-quote.js.map +1 -0
- package/dist/composables/forms/use-prepend-append-width.d.ts +6 -0
- package/dist/composables/forms/use-prepend-append-width.js +25 -0
- package/dist/composables/forms/use-prepend-append-width.js.map +1 -0
- package/dist/composables/icons.js +1 -1
- package/dist/composables/icons.js.map +1 -1
- package/dist/composables/popper.js +63 -49
- package/dist/composables/popper.js.map +1 -1
- package/dist/composables/sticky-header.d.ts +7 -5
- package/dist/composables/sticky-header.js +51 -41
- package/dist/composables/sticky-header.js.map +1 -1
- package/dist/composables/tables/data-table/columns.d.ts +25 -0
- package/dist/composables/tables/data-table/columns.js +54 -0
- package/dist/composables/tables/data-table/columns.js.map +1 -0
- package/dist/composables/tables/data-table/expansion.d.ts +17 -0
- package/dist/composables/tables/data-table/expansion.js +38 -0
- package/dist/composables/tables/data-table/expansion.js.map +1 -0
- package/dist/composables/tables/data-table/grouping.d.ts +29 -0
- package/dist/composables/tables/data-table/grouping.js +136 -0
- package/dist/composables/tables/data-table/grouping.js.map +1 -0
- package/dist/composables/tables/data-table/pagination.d.ts +33 -0
- package/dist/composables/tables/data-table/pagination.js +119 -0
- package/dist/composables/tables/data-table/pagination.js.map +1 -0
- package/dist/composables/tables/data-table/selection.d.ts +29 -0
- package/dist/composables/tables/data-table/selection.js +164 -0
- package/dist/composables/tables/data-table/selection.js.map +1 -0
- package/dist/composables/tables/data-table/sort.d.ts +32 -0
- package/dist/composables/tables/data-table/sort.js +136 -0
- package/dist/composables/tables/data-table/sort.js.map +1 -0
- package/dist/composables/tables/data-table/types.d.ts +14 -0
- package/dist/composables/tables/data-table/types.js +11 -0
- package/dist/composables/tables/data-table/types.js.map +1 -0
- package/dist/composables/theme.js +5 -21
- package/dist/composables/theme.js.map +1 -1
- package/dist/composables/timeout-manager.d.ts +4 -2
- package/dist/composables/timeout-manager.js +2 -1
- package/dist/composables/timeout-manager.js.map +1 -1
- package/dist/icons/icons_1.d.ts +15 -15
- package/dist/icons/icons_1.js +123 -123
- package/dist/icons/icons_1.js.map +1 -1
- package/dist/icons/icons_2.d.ts +46 -46
- package/dist/icons/icons_2.js +301 -301
- package/dist/icons/icons_2.js.map +1 -1
- package/dist/icons/icons_3.d.ts +43 -43
- package/dist/icons/icons_3.js +252 -252
- package/dist/icons/icons_3.js.map +1 -1
- package/dist/icons/icons_4.d.ts +72 -2
- package/dist/icons/icons_4.js +368 -18
- 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 +105 -42
- package/dist/index.js.map +1 -1
- package/dist/style.css +189 -162
- package/dist/theme/index.js +15 -1
- package/dist/theme/index.js.map +1 -1
- package/dist/utils/assert.d.ts +1 -1
- package/dist/utils/assert.js.map +1 -1
- package/dist/utils/form-text-detail.d.ts +9 -8
- package/dist/utils/form-text-detail.js +1 -2
- package/dist/utils/form-text-detail.js.map +1 -1
- package/dist/utils/helpers.d.ts +4 -32
- package/dist/utils/helpers.js +8 -9
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/is-equal.d.ts +1 -1
- package/dist/utils/is-equal.js +5 -3
- package/dist/utils/is-equal.js.map +1 -1
- 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 +390 -371
- package/package.json +47 -44
- package/dist/utils/generate-id.d.ts +0 -5
- package/dist/utils/generate-id.js +0 -21
- package/dist/utils/generate-id.js.map +0 -1
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
export interface NotificationProps {
|
|
2
|
-
modelValue: boolean;
|
|
3
2
|
timeout: number;
|
|
4
3
|
width?: number | string;
|
|
5
4
|
theme?: 'light' | 'dark';
|
|
6
5
|
}
|
|
7
|
-
|
|
8
|
-
type __VLS_Slots = {
|
|
9
|
-
default?: (
|
|
6
|
+
type __VLS_Props = NotificationProps;
|
|
7
|
+
type __VLS_Slots = {
|
|
8
|
+
default?: () => any;
|
|
9
|
+
};
|
|
10
|
+
type __VLS_ModelProps = {
|
|
11
|
+
modelValue: boolean;
|
|
10
12
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
theme: "light" | "dark";
|
|
18
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
13
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
14
|
+
declare const __VLS_base: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
15
|
+
"update:modelValue": (value: boolean) => any;
|
|
16
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
17
|
+
"onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
|
|
18
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
19
19
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
20
20
|
declare const _default: typeof __VLS_export;
|
|
21
21
|
export default _default;
|
|
@@ -1,40 +1,43 @@
|
|
|
1
|
-
import { defineComponent,
|
|
1
|
+
import { defineComponent, useModel, computed, openBlock, createBlock, Teleport, createVNode, Transition, withCtx, createElementBlock, mergeProps, unref, renderSlot, createCommentVNode, mergeModels } from "vue";
|
|
2
|
+
import { useTimeoutFn, watchImmediate } from "@vueuse/core";
|
|
2
3
|
import { transformPropsUnit } from "../../../utils/helpers.js";
|
|
3
|
-
import {
|
|
4
|
-
import { watchImmediate } from "@vueuse/core";
|
|
4
|
+
import { set } from "@vueuse/shared";
|
|
5
5
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
6
6
|
...{
|
|
7
7
|
name: "RuiNotification",
|
|
8
8
|
inheritAttrs: false
|
|
9
9
|
},
|
|
10
10
|
__name: "RuiNotification",
|
|
11
|
-
props: {
|
|
12
|
-
modelValue: { type: Boolean },
|
|
11
|
+
props: /* @__PURE__ */ mergeModels({
|
|
13
12
|
timeout: {},
|
|
14
13
|
width: { default: 400 },
|
|
15
|
-
theme: {
|
|
16
|
-
},
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
14
|
+
theme: {}
|
|
15
|
+
}, {
|
|
16
|
+
"modelValue": { type: Boolean, ...{ required: true } },
|
|
17
|
+
"modelModifiers": {}
|
|
18
|
+
}),
|
|
19
|
+
emits: ["update:modelValue"],
|
|
20
|
+
setup(__props) {
|
|
21
|
+
const modelValue = useModel(__props, "modelValue");
|
|
22
22
|
const style = computed(() => ({
|
|
23
|
-
width: transformPropsUnit(
|
|
23
|
+
width: transformPropsUnit(__props.width)
|
|
24
24
|
}));
|
|
25
|
+
const { start, stop } = useTimeoutFn(() => {
|
|
26
|
+
set(modelValue, false);
|
|
27
|
+
}, __props.timeout, { immediate: false });
|
|
25
28
|
function dismiss() {
|
|
26
|
-
if (
|
|
29
|
+
if (__props.timeout < 0)
|
|
27
30
|
return;
|
|
28
|
-
|
|
31
|
+
set(modelValue, false);
|
|
29
32
|
}
|
|
30
33
|
watchImmediate(modelValue, (display) => {
|
|
31
|
-
if (!display)
|
|
34
|
+
if (!display) {
|
|
35
|
+
stop();
|
|
32
36
|
return;
|
|
33
|
-
|
|
34
|
-
if (
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}, duration);
|
|
37
|
+
}
|
|
38
|
+
if (__props.timeout > 0) {
|
|
39
|
+
stop();
|
|
40
|
+
start();
|
|
38
41
|
}
|
|
39
42
|
});
|
|
40
43
|
return (_ctx, _cache) => {
|
|
@@ -48,8 +51,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
48
51
|
"leave-to-class": "opacity-0"
|
|
49
52
|
}, {
|
|
50
53
|
default: withCtx(() => [
|
|
51
|
-
|
|
54
|
+
modelValue.value ? (openBlock(), createElementBlock("div", mergeProps({
|
|
52
55
|
key: 0,
|
|
56
|
+
role: "alert",
|
|
57
|
+
"aria-live": "polite",
|
|
53
58
|
class: ["top-2 right-2 fixed drop-shadow-lg rounded-sm z-50", {
|
|
54
59
|
"bg-white dark:bg-[#363636]": !__props.theme,
|
|
55
60
|
"bg-white text-rui-light-text": __props.theme === "light",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuiNotification.vue.js","sources":["../../../../src/components/overlays/notification/RuiNotification.vue"],"sourcesContent":["<script lang
|
|
1
|
+
{"version":3,"file":"RuiNotification.vue.js","sources":["../../../../src/components/overlays/notification/RuiNotification.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useTimeoutFn } from '@vueuse/core';\nimport { transformPropsUnit } from '@/utils/helpers';\n\nexport interface NotificationProps {\n timeout: number;\n width?: number | string;\n theme?: 'light' | 'dark';\n}\n\ndefineOptions({\n name: 'RuiNotification',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<boolean>({ required: true });\n\nconst { timeout, width = 400, theme } = defineProps<NotificationProps>();\n\ndefineSlots<{\n default?: () => any;\n}>();\n\nconst style = computed<{ width: string | undefined }>(() => ({\n width: transformPropsUnit(width),\n}));\n\nconst { start, stop } = useTimeoutFn(() => {\n set(modelValue, false);\n}, timeout, { immediate: false });\n\nfunction dismiss(): void {\n if (timeout < 0)\n return;\n\n set(modelValue, false);\n}\n\nwatchImmediate(modelValue, (display) => {\n if (!display) {\n stop();\n return;\n }\n\n if (timeout > 0) {\n stop();\n start();\n }\n});\n</script>\n\n<template>\n <Teleport to=\"body\">\n <Transition\n enter-from-class=\"opacity-0\"\n enter-active-class=\"ease-out duration-150\"\n enter-to-class=\"opacity-100\"\n leave-from-class=\"opacity-100\"\n leave-active-class=\"ease-in duration-100\"\n leave-to-class=\"opacity-0\"\n >\n <div\n v-if=\"modelValue\"\n role=\"alert\"\n aria-live=\"polite\"\n class=\"top-2 right-2 fixed drop-shadow-lg rounded-sm z-50\"\n :class=\"{\n 'bg-white dark:bg-[#363636]': !theme,\n 'bg-white text-rui-light-text': theme === 'light',\n 'bg-[#363636] text-rui-dark-text': theme === 'dark',\n }\"\n :style=\"style\"\n v-bind=\"$attrs\"\n @click=\"dismiss()\"\n >\n <slot />\n </div>\n </Transition>\n </Teleport>\n</template>\n"],"names":["_useModel","_createBlock","_Teleport","_createVNode","_Transition","_openBlock","_createElementBlock","_mergeProps","_unref","$attrs","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;;;;;AAeA,UAAM,aAAaA,8BAAuC;AAQ1D,UAAM,QAAQ,SAAwC,OAAO;AAAA,MAC3D,OAAO,mBAAmB,QAAA,KAAK;AAAA,IAAA,EAC/B;AAEF,UAAM,EAAE,OAAO,KAAA,IAAS,aAAa,MAAM;AACzC,UAAI,YAAY,KAAK;AAAA,IACvB,GAAG,QAAA,SAAS,EAAE,WAAW,OAAO;AAEhC,aAAS,UAAgB;AACvB,UAAI,QAAA,UAAU;AACZ;AAEF,UAAI,YAAY,KAAK;AAAA,IACvB;AAEA,mBAAe,YAAY,CAAC,YAAY;AACtC,UAAI,CAAC,SAAS;AACZ,aAAA;AACA;AAAA,MACF;AAEA,UAAI,QAAA,UAAU,GAAG;AACf,aAAA;AACA,cAAA;AAAA,MACF;AAAA,IACF,CAAC;;0BAICC,YA0BWC,UAAA,EA1BD,IAAG,UAAM;AAAA,QACjBC,YAwBaC,YAAA;AAAA,UAvBX,oBAAiB;AAAA,UACjB,sBAAmB;AAAA,UACnB,kBAAe;AAAA,UACf,oBAAiB;AAAA,UACjB,sBAAmB;AAAA,UACnB,kBAAe;AAAA,QAAA;2BAEf,MAeM;AAAA,YAdE,WAAA,SADRC,UAAA,GAAAC,mBAeM,OAfNC,WAeM;AAAA;cAbJ,MAAK;AAAA,cACL,aAAU;AAAA,cACV,QAAM,sDAAoD;AAAA,+CACP,QAAA;AAAA,gDAAiD,QAAA,UAAK;AAAA,mDAA2D,QAAA,UAAK;AAAA,cAAA;cAKxK,OAAOC,MAAA,KAAA;AAAA,YAAA,GACAC,KAAAA,QAAM;AAAA,cACb,+CAAO,QAAA;AAAA,YAAO;cAEfC,WAAQ,KAAA,QAAA,SAAA;AAAA,YAAA;;;;;;;;"}
|
|
@@ -9,28 +9,17 @@ export interface Props {
|
|
|
9
9
|
popper?: PopperOptions;
|
|
10
10
|
tooltipClass?: string;
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} & {
|
|
19
|
-
default?: (props: typeof __VLS_18) => any;
|
|
12
|
+
type __VLS_Slots = {
|
|
13
|
+
activator?: (props: {
|
|
14
|
+
open: boolean;
|
|
15
|
+
close: () => void;
|
|
16
|
+
}) => any;
|
|
17
|
+
default?: () => any;
|
|
20
18
|
};
|
|
21
19
|
declare const __VLS_base: import("vue").DefineComponent<Props, {
|
|
22
20
|
onOpen: (immediate?: boolean) => void;
|
|
23
21
|
onClose: (immediate?: boolean) => void;
|
|
24
|
-
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
|
|
25
|
-
popper: PopperOptions;
|
|
26
|
-
text: string | null;
|
|
27
|
-
disabled: boolean;
|
|
28
|
-
openDelay: number;
|
|
29
|
-
closeDelay: number;
|
|
30
|
-
hideArrow: boolean;
|
|
31
|
-
persistOnTooltipHover: boolean;
|
|
32
|
-
tooltipClass: string;
|
|
33
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
22
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
34
23
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
35
24
|
declare const _default: typeof __VLS_export;
|
|
36
25
|
export default _default;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { defineComponent,
|
|
1
|
+
import { defineComponent, useId, toRef, openBlock, createElementBlock, unref, normalizeClass, renderSlot, createBlock, Teleport, createVNode, TransitionGroup, withCtx, createTextVNode, toDisplayString, createCommentVNode } from "vue";
|
|
2
2
|
import { usePopper } from "../../../composables/popper.js";
|
|
3
|
-
const _hoisted_1 = ["data-tooltip-disabled"];
|
|
3
|
+
const _hoisted_1 = ["data-tooltip-disabled", "aria-describedby"];
|
|
4
|
+
const _hoisted_2 = ["id"];
|
|
4
5
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
5
6
|
...{
|
|
6
7
|
name: "RuiTooltip"
|
|
@@ -17,8 +18,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
17
18
|
tooltipClass: { default: "" }
|
|
18
19
|
},
|
|
19
20
|
setup(__props, { expose: __expose }) {
|
|
20
|
-
const
|
|
21
|
-
const { closeDelay, openDelay, popper, disabled } = toRefs(props);
|
|
21
|
+
const tooltipId = useId();
|
|
22
22
|
const {
|
|
23
23
|
reference: activator,
|
|
24
24
|
popper: tooltip,
|
|
@@ -28,7 +28,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
28
28
|
onClose,
|
|
29
29
|
onPopperLeave,
|
|
30
30
|
updatePopper
|
|
31
|
-
} = usePopper(
|
|
31
|
+
} = usePopper(
|
|
32
|
+
toRef(() => __props.popper),
|
|
33
|
+
toRef(() => __props.disabled),
|
|
34
|
+
toRef(() => __props.openDelay),
|
|
35
|
+
toRef(() => __props.closeDelay)
|
|
36
|
+
);
|
|
32
37
|
__expose({
|
|
33
38
|
onOpen,
|
|
34
39
|
onClose
|
|
@@ -38,7 +43,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
38
43
|
ref_key: "activator",
|
|
39
44
|
ref: activator,
|
|
40
45
|
class: normalizeClass(_ctx.$style.wrapper),
|
|
41
|
-
"data-tooltip-disabled":
|
|
46
|
+
"data-tooltip-disabled": __props.disabled,
|
|
47
|
+
"aria-describedby": !__props.disabled && unref(open) ? unref(tooltipId) : void 0,
|
|
42
48
|
onMouseover: _cache[4] || (_cache[4] = ($event) => unref(onOpen)()),
|
|
43
49
|
onMouseleave: _cache[5] || (_cache[5] = ($event) => unref(onClose)()),
|
|
44
50
|
onFocusin: _cache[6] || (_cache[6] = ($event) => unref(onOpen)()),
|
|
@@ -48,18 +54,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
48
54
|
open: unref(open),
|
|
49
55
|
close: unref(onClose)
|
|
50
56
|
}),
|
|
51
|
-
!
|
|
57
|
+
!__props.disabled ? (openBlock(), createBlock(Teleport, {
|
|
52
58
|
key: 0,
|
|
53
59
|
to: "body"
|
|
54
60
|
}, [
|
|
55
61
|
unref(popperEnter) ? (openBlock(), createElementBlock("div", {
|
|
56
62
|
key: 0,
|
|
63
|
+
id: unref(tooltipId),
|
|
57
64
|
ref_key: "tooltip",
|
|
58
65
|
ref: tooltip,
|
|
59
66
|
class: normalizeClass([
|
|
60
67
|
_ctx.$style.tooltip,
|
|
61
68
|
__props.tooltipClass,
|
|
62
|
-
_ctx.$style[`tooltip__${
|
|
69
|
+
_ctx.$style[`tooltip__${__props.popper?.strategy ?? "absolute"}`]
|
|
63
70
|
]),
|
|
64
71
|
role: "tooltip"
|
|
65
72
|
}, [
|
|
@@ -93,7 +100,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
93
100
|
]),
|
|
94
101
|
_: 3
|
|
95
102
|
})
|
|
96
|
-
],
|
|
103
|
+
], 10, _hoisted_2)) : createCommentVNode("", true)
|
|
97
104
|
])) : createCommentVNode("", true)
|
|
98
105
|
], 42, _hoisted_1);
|
|
99
106
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuiTooltip.vue2.js","sources":["../../../../src/components/overlays/tooltip/RuiTooltip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { type PopperOptions, usePopper } from '@/composables/popper';\n\nexport interface Props {\n text?: string | null;\n disabled?: boolean;\n hideArrow?: boolean;\n openDelay?: number;\n closeDelay?: number;\n persistOnTooltipHover?: boolean;\n popper?: PopperOptions;\n tooltipClass?: string;\n}\n\ndefineOptions({\n name: 'RuiTooltip',\n});\n\nconst
|
|
1
|
+
{"version":3,"file":"RuiTooltip.vue2.js","sources":["../../../../src/components/overlays/tooltip/RuiTooltip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { type PopperOptions, usePopper } from '@/composables/popper';\n\nexport interface Props {\n text?: string | null;\n disabled?: boolean;\n hideArrow?: boolean;\n openDelay?: number;\n closeDelay?: number;\n persistOnTooltipHover?: boolean;\n popper?: PopperOptions;\n tooltipClass?: string;\n}\n\ndefineOptions({\n name: 'RuiTooltip',\n});\n\nconst {\n text = null,\n disabled = false,\n hideArrow = false,\n openDelay = 0,\n closeDelay = 500,\n persistOnTooltipHover = false,\n popper = {},\n tooltipClass = '',\n} = defineProps<Props>();\n\ndefineSlots<{\n activator?: (props: { open: boolean; close: () => void }) => any;\n default?: () => any;\n}>();\n\nconst tooltipId = useId();\n\nconst {\n reference: activator,\n popper: tooltip,\n open,\n popperEnter,\n onOpen,\n onClose,\n onPopperLeave,\n updatePopper,\n} = usePopper(\n toRef(() => popper),\n toRef(() => disabled),\n toRef(() => openDelay),\n toRef(() => closeDelay),\n);\n\ndefineExpose({\n onOpen,\n onClose,\n});\n</script>\n\n<template>\n <div\n ref=\"activator\"\n :class=\"$style.wrapper\"\n :data-tooltip-disabled=\"disabled\"\n :aria-describedby=\"!disabled && open ? tooltipId : undefined\"\n @mouseover=\"onOpen()\"\n @mouseleave=\"onClose()\"\n @focusin=\"onOpen()\"\n @focusout=\"onClose()\"\n >\n <slot\n name=\"activator\"\n :open=\"open\"\n :close=\"onClose\"\n />\n\n <Teleport\n v-if=\"!disabled\"\n to=\"body\"\n >\n <div\n v-if=\"popperEnter\"\n :id=\"tooltipId\"\n ref=\"tooltip\"\n :class=\"[\n $style.tooltip,\n tooltipClass,\n $style[`tooltip__${popper?.strategy ?? 'absolute'}`],\n ]\"\n role=\"tooltip\"\n >\n <TransitionGroup\n enter-active-class=\"transition ease-out duration-200\"\n enter-from-class=\"opacity-0 translate-y-1\"\n enter-to-class=\"opacity-100 translate-y-0\"\n leave-active-class=\"transition ease-in duration-150\"\n leave-from-class=\"opacity-100 translate-y-0\"\n leave-to-class=\"opacity-0 translate-y-1\"\n @before-enter=\"updatePopper()\"\n @after-leave=\"onPopperLeave()\"\n >\n <div\n v-if=\"open\"\n key=\"tooltip\"\n :class=\"$style.base\"\n role=\"tooltip-content\"\n @mouseover=\"persistOnTooltipHover && onOpen()\"\n @mouseleave=\"persistOnTooltipHover && onClose()\"\n >\n <slot>\n {{ text }}\n </slot>\n </div>\n <span\n v-if=\"!hideArrow\"\n :class=\"[$style.arrow, { [$style.arrow__open ?? '']: open }]\"\n data-popper-arrow\n />\n </TransitionGroup>\n </div>\n </Teleport>\n </div>\n</template>\n\n<style lang=\"scss\" module>\n$arrowSize: 0.625rem;\n.wrapper {\n @apply relative inline-flex;\n}\n\n.tooltip {\n @apply w-max transform transition-opacity delay-0 z-[9999];\n\n &__fixed {\n @apply fixed;\n }\n\n &__absolute {\n @apply absolute;\n }\n\n .base {\n @apply px-2 py-1 text-xs font-normal;\n @apply bg-rui-grey-700/90 text-white rounded shadow;\n }\n\n .arrow {\n @apply w-2.5 h-2.5 transition-opacity opacity-0;\n\n &__open {\n @apply opacity-100;\n }\n\n &::before {\n @apply block border-[0.3125rem] origin-center;\n @apply border-l-transparent border-b-transparent border-t-rui-grey-700/90 border-r-rui-grey-700/90;\n\n content: '';\n border-radius: 0 0.125rem 0 0;\n }\n }\n\n &[data-popper-placement*='bottom'] .arrow {\n top: calc(0.5px - #{$arrowSize} / 2);\n\n &::before {\n @apply -rotate-45;\n }\n }\n\n &[data-popper-placement*='top'] .arrow {\n bottom: calc(0.5px - #{$arrowSize} / 2);\n\n &::before {\n @apply rotate-[135deg];\n }\n }\n\n &[data-popper-placement*='left'] .arrow {\n right: calc(0.5px - #{$arrowSize} / 2);\n\n &::before {\n @apply rotate-45;\n }\n }\n\n &[data-popper-placement*='right'] .arrow {\n left: calc(0.5px - #{$arrowSize} / 2);\n\n &::before {\n @apply -rotate-[135deg];\n }\n }\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","$style","_unref","_renderSlot","_createBlock","_Teleport","_createVNode","_TransitionGroup"],"mappings":";;;;;;;;;;;;;;;;;;;;AAkCA,UAAM,YAAY,MAAA;AAElB,UAAM;AAAA,MACJ,WAAW;AAAA,MACX,QAAQ;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE;AAAA,MACF,MAAM,MAAM,cAAM;AAAA,MAClB,MAAM,MAAM,gBAAQ;AAAA,MACpB,MAAM,MAAM,iBAAS;AAAA,MACrB,MAAM,MAAM,kBAAU;AAAA,IAAA;AAGxB,aAAa;AAAA,MACX;AAAA,MACA;AAAA,IAAA,CACD;;0BAICA,mBA6DM,OAAA;AAAA,iBA5DA;AAAA,QAAJ,KAAI;AAAA,QACH,OAAKC,eAAEC,KAAAA,OAAO,OAAO;AAAA,QACrB,yBAAuB,QAAA;AAAA,QACvB,qBAAmB,QAAA,YAAYC,cAAOA,MAAA,SAAA,IAAY;AAAA,QAClD,mDAAWA,MAAA,MAAA;QACX,oDAAYA,MAAA,OAAA;QACZ,iDAASA,MAAA,MAAA;QACT,kDAAUA,MAAA,OAAA,EAAA;AAAA,MAAO;QAElBC,WAIE,KAAA,QAAA,aAAA;AAAA,UAFC,MAAMD,MAAA,IAAA;AAAA,UACN,OAAOA,MAAA,OAAA;AAAA,QAAA;SAID,QAAA,yBADTE,YA4CWC,UAAA;AAAA;UA1CT,IAAG;AAAA,QAAA;UAGKH,MAAA,WAAA,kBADRH,mBAuCM,OAAA;AAAA;YArCH,IAAIG,MAAA,SAAA;AAAA,qBACD;AAAA,YAAJ,KAAI;AAAA,YACH,OAAKF,eAAA;AAAA,cAAcC,KAAAA,OAAO;AAAA,cAAmB,QAAA;AAAA,cAAwBA,KAAAA,OAAM,YAAa,QAAA,QAAQ,YAAQ,UAAA,EAAA;AAAA,YAAA;YAKzG,MAAK;AAAA,UAAA;YAELK,YA2BkBC,iBAAA;AAAA,cA1BhB,sBAAmB;AAAA,cACnB,oBAAiB;AAAA,cACjB,kBAAe;AAAA,cACf,sBAAmB;AAAA,cACnB,oBAAiB;AAAA,cACjB,kBAAe;AAAA,cACd,qDAAcL,MAAA,YAAA;cACd,oDAAaA,MAAA,aAAA,EAAA;AAAA,YAAa;+BAE3B,MAWM;AAAA,gBAVEA,MAAA,IAAA,kBADRH,mBAWM,OAAA;AAAA,kBATJ,KAAI;AAAA,kBACH,OAAKC,eAAEC,KAAAA,OAAO,IAAI;AAAA,kBACnB,MAAK;AAAA,kBACJ,aAAS,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,CAAA,WAAE,QAAA,yBAAyBC,MAAA,MAAA,EAAA;AAAA,kBACpC,cAAU,OAAA,CAAA,MAAA,OAAA,CAAA,IAAA,CAAA,WAAE,QAAA,yBAAyBA,MAAA,OAAA,EAAA;AAAA,gBAAO;kBAE7CC,WAEO,4BAFP,MAEO;AAAA,oDADF,QAAA,IAAI,GAAA,CAAA;AAAA,kBAAA;;iBAIF,QAAA,0BADTJ,mBAIE,QAAA;AAAA;kBAFC,OAAKC,eAAA,CAAGC,YAAO,UAAUA,KAAAA,OAAO,eAAW,EAAA,GAASC,MAAA,IAAA,EAAA,CAAI,CAAA;AAAA,kBACzD,qBAAA;AAAA,gBAAA;;;;;;;;;;"}
|
|
@@ -23,15 +23,13 @@ export interface Props {
|
|
|
23
23
|
*/
|
|
24
24
|
size?: number | string;
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
color: ContextColorsType | "inherit";
|
|
30
|
-
bufferValue: number;
|
|
31
|
-
variant: "determinate" | "indeterminate" | "buffer";
|
|
32
|
-
circular: boolean;
|
|
33
|
-
showLabel: boolean;
|
|
34
|
-
thickness: number | string;
|
|
35
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
26
|
+
type __VLS_Slots = Record<string, never>;
|
|
27
|
+
declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
28
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
36
29
|
declare const _default: typeof __VLS_export;
|
|
37
30
|
export default _default;
|
|
31
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
32
|
+
new (): {
|
|
33
|
+
$slots: S;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, useCssVars, unref, computed,
|
|
1
|
+
import { defineComponent, useCssVars, unref, computed, openBlock, createElementBlock, normalizeClass, createElementVNode, Fragment, createCommentVNode, toDisplayString } from "vue";
|
|
2
2
|
import { get } from "@vueuse/shared";
|
|
3
3
|
const _hoisted_1 = ["aria-valuenow"];
|
|
4
4
|
const _hoisted_2 = ["viewBox"];
|
|
@@ -20,47 +20,41 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
20
20
|
},
|
|
21
21
|
setup(__props) {
|
|
22
22
|
useCssVars((_ctx) => ({
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"
|
|
27
|
-
"
|
|
23
|
+
"v52616a25": _ctx.size,
|
|
24
|
+
"v6249b860": _ctx.thickness,
|
|
25
|
+
"v97f58090": unref(valuePercent),
|
|
26
|
+
"v5645be41": unref(bufferPercent),
|
|
27
|
+
"b8b2cb5e": unref(progress)
|
|
28
28
|
}));
|
|
29
|
-
const
|
|
30
|
-
const { variant, value, bufferValue, thickness, size } = toRefs(props);
|
|
31
|
-
const currentValue = computed(
|
|
32
|
-
() => Math.max(0, Math.min(get(value) ?? 100, 100))
|
|
33
|
-
);
|
|
29
|
+
const currentValue = computed(() => Math.max(0, Math.min(__props.value ?? 100, 100)));
|
|
34
30
|
const label = computed(() => `${Math.floor(get(currentValue))}%`);
|
|
35
31
|
const progress = computed(() => -100 + get(currentValue));
|
|
36
32
|
const valuePercent = computed(() => `${get(progress)}%`);
|
|
37
33
|
const bufferPercent = computed(
|
|
38
|
-
() => `${-100 + Math.max(0, Math.min(
|
|
39
|
-
);
|
|
40
|
-
const circularScaledThickness = computed(
|
|
41
|
-
() => +get(thickness) * 32 / +get(size)
|
|
34
|
+
() => `${-100 + Math.max(0, Math.min(__props.bufferValue ?? 100, 100))}%`
|
|
42
35
|
);
|
|
36
|
+
const circularScaledThickness = computed(() => +__props.thickness * 32 / +__props.size);
|
|
43
37
|
const circularViewSize = computed(() => 40 + get(circularScaledThickness));
|
|
44
38
|
return (_ctx, _cache) => {
|
|
45
39
|
return openBlock(), createElementBlock("div", {
|
|
46
40
|
class: normalizeClass([
|
|
47
41
|
_ctx.$style.wrapper,
|
|
48
42
|
__props.circular ? "inline-flex" : "w-full",
|
|
49
|
-
{ [_ctx.$style["has-label"]]: __props.showLabel &&
|
|
43
|
+
{ [_ctx.$style["has-label"]]: __props.showLabel && __props.variant !== "indeterminate" }
|
|
50
44
|
])
|
|
51
45
|
}, [
|
|
52
46
|
createElementVNode("div", {
|
|
53
|
-
"aria-valuenow":
|
|
47
|
+
"aria-valuenow": __props.value,
|
|
54
48
|
class: normalizeClass([
|
|
55
|
-
__props.circular &&
|
|
56
|
-
_ctx.$style[
|
|
49
|
+
__props.circular && __props.variant !== "buffer" ? _ctx.$style.circular : _ctx.$style.progress,
|
|
50
|
+
_ctx.$style[__props.variant ?? ""],
|
|
57
51
|
_ctx.$style[__props.color ?? ""]
|
|
58
52
|
]),
|
|
59
53
|
"aria-valuemax": "100",
|
|
60
54
|
"aria-valuemin": "0",
|
|
61
55
|
role: "progressbar"
|
|
62
56
|
}, [
|
|
63
|
-
__props.circular &&
|
|
57
|
+
__props.circular && __props.variant !== "buffer" ? (openBlock(), createElementBlock("svg", {
|
|
64
58
|
key: 0,
|
|
65
59
|
viewBox: `0 0 ${unref(circularViewSize)} ${unref(circularViewSize)}`
|
|
66
60
|
}, [
|
|
@@ -72,19 +66,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
72
66
|
"stroke-width": unref(circularScaledThickness)
|
|
73
67
|
}, null, 8, _hoisted_3)
|
|
74
68
|
], 8, _hoisted_2)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
75
|
-
|
|
69
|
+
__props.variant === "buffer" ? (openBlock(), createElementBlock("div", {
|
|
76
70
|
key: 0,
|
|
77
71
|
class: normalizeClass(_ctx.$style["buffer-dots"])
|
|
78
72
|
}, null, 2)) : createCommentVNode("", true),
|
|
79
73
|
createElementVNode("div", {
|
|
80
|
-
class: normalizeClass([_ctx.$style.rail, { [_ctx.$style["buffer-rail"]]:
|
|
74
|
+
class: normalizeClass([_ctx.$style.rail, { [_ctx.$style["buffer-rail"]]: __props.variant === "buffer" }])
|
|
81
75
|
}, null, 2),
|
|
82
76
|
createElementVNode("div", {
|
|
83
|
-
class: normalizeClass(_ctx.$style[
|
|
77
|
+
class: normalizeClass(_ctx.$style[__props.variant ?? ""])
|
|
84
78
|
}, null, 2)
|
|
85
79
|
], 64))
|
|
86
80
|
], 10, _hoisted_1),
|
|
87
|
-
__props.showLabel &&
|
|
81
|
+
__props.showLabel && __props.variant !== "indeterminate" ? (openBlock(), createElementBlock("div", {
|
|
88
82
|
key: 0,
|
|
89
83
|
class: normalizeClass(_ctx.$style.label)
|
|
90
84
|
}, toDisplayString(unref(label)), 3)) : createCommentVNode("", true)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuiProgress.vue2.js","sources":["../../../src/components/progress/RuiProgress.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ContextColorsType } from '@/consts/colors';\n\nexport interface Props {\n /**\n * in percentage value, required when variant === determinate or buffer\n * @example - 0 <= value <= 100\n */\n value?: number;\n /**\n * in percentage value, required when variant === buffer\n * @example - 0 <= value <= 100\n */\n bufferValue?: number;\n variant?: 'determinate' | 'indeterminate' | 'buffer';\n color?: ContextColorsType | 'inherit';\n circular?: boolean;\n showLabel?: boolean;\n /**\n * Sets the stroke thickness in pixels\n */\n thickness?: number | string;\n /**\n * only used for circular progress\n */\n size?: number | string;\n}\n\ndefineOptions({\n name: 'RuiProgress',\n});\n\nconst
|
|
1
|
+
{"version":3,"file":"RuiProgress.vue2.js","sources":["../../../src/components/progress/RuiProgress.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ContextColorsType } from '@/consts/colors';\n\nexport interface Props {\n /**\n * in percentage value, required when variant === determinate or buffer\n * @example - 0 <= value <= 100\n */\n value?: number;\n /**\n * in percentage value, required when variant === buffer\n * @example - 0 <= value <= 100\n */\n bufferValue?: number;\n variant?: 'determinate' | 'indeterminate' | 'buffer';\n color?: ContextColorsType | 'inherit';\n circular?: boolean;\n showLabel?: boolean;\n /**\n * Sets the stroke thickness in pixels\n */\n thickness?: number | string;\n /**\n * only used for circular progress\n */\n size?: number | string;\n}\n\ndefineOptions({\n name: 'RuiProgress',\n});\n\nconst {\n value = 0,\n bufferValue = 0,\n variant = 'determinate',\n color = 'inherit',\n circular = false,\n showLabel = false,\n thickness = 4,\n size = 32,\n} = defineProps<Props>();\n\ndefineSlots<Record<string, never>>();\n\nconst currentValue = computed<number>(() => Math.max(0, Math.min(value ?? 100, 100)));\n\nconst label = computed<string>(() => `${Math.floor(get(currentValue))}%`);\n\nconst progress = computed<number>(() => -100 + get(currentValue));\n\nconst valuePercent = computed<string>(() => `${get(progress)}%`);\n\nconst bufferPercent = computed<string>(\n () => `${-100 + Math.max(0, Math.min(bufferValue ?? 100, 100))}%`,\n);\n\nconst circularScaledThickness = computed<number>(() => (+thickness * 32) / +size);\n\nconst circularViewSize = computed<number>(() => 40 + get(circularScaledThickness));\n</script>\n\n<template>\n <div\n :class=\"[\n $style.wrapper,\n circular ? 'inline-flex' : 'w-full',\n { [$style['has-label']]: showLabel && variant !== 'indeterminate' },\n ]\"\n >\n <div\n :aria-valuenow=\"value\"\n :class=\"[\n circular && variant !== 'buffer' ? $style.circular : $style.progress,\n $style[variant ?? ''],\n $style[color ?? ''],\n ]\"\n aria-valuemax=\"100\"\n aria-valuemin=\"0\"\n role=\"progressbar\"\n >\n <svg\n v-if=\"circular && variant !== 'buffer'\"\n :viewBox=\"`0 0 ${circularViewSize} ${circularViewSize}`\"\n >\n <circle\n cx=\"50%\"\n cy=\"50%\"\n fill=\"none\"\n r=\"20\"\n :stroke-width=\"circularScaledThickness\"\n />\n </svg>\n <template v-else>\n <div\n v-if=\"variant === 'buffer'\"\n :class=\"$style['buffer-dots']\"\n />\n <div :class=\"[$style.rail, { [$style['buffer-rail']]: variant === 'buffer' }]\" />\n <div :class=\"$style[variant ?? '']\" />\n </template>\n </div>\n <div\n v-if=\"showLabel && variant !== 'indeterminate'\"\n :class=\"$style.label\"\n >\n {{ label }}\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" module>\n$colors: 'primary', 'secondary';\n\n.wrapper {\n &.has-label {\n @apply inline-flex items-center relative;\n\n .label {\n @apply block text-sm ml-4;\n }\n\n .circular ~ .label {\n @apply absolute flex items-center justify-center text-[0.625rem] ml-0;\n width: calc(v-bind(size) * 1px);\n height: calc(v-bind(size) * 1px);\n }\n }\n\n .progress {\n @apply w-full overflow-hidden relative;\n height: calc(v-bind(thickness) * 1px);\n\n .rail {\n @apply w-full h-full;\n }\n\n .determinate,\n .buffer {\n @apply transition-all duration-150 ease-in-out absolute left-0 top-0 h-full w-full;\n transform: translateX(v-bind(valuePercent));\n }\n\n .indeterminate {\n @apply absolute left-0 top-0 h-full w-auto transition-transform duration-200 ease-linear delay-0 origin-left;\n animation: 1.6s cubic-bezier(0.65, 0.815, 0.735, 0.395) 0s infinite normal none running slide-rail;\n }\n\n .buffer-dots {\n @apply absolute h-0 w-[200%] -top-px -left-[100%] border-dashed border-y-[0.2rem];\n animation: 3s ease-in-out 3s infinite normal none running buffer-pulse;\n }\n\n .buffer-rail {\n @apply w-full transition-transform duration-200 ease-linear delay-0 origin-left;\n transform: translateX(v-bind(bufferPercent));\n }\n\n @each $color in $colors {\n &.#{$color} {\n .rail {\n @apply bg-rui-#{$color}/20;\n }\n\n .determinate,\n .indeterminate,\n .buffer {\n @apply bg-rui-#{$color};\n }\n\n .buffer-dots {\n @apply border-rui-#{$color}/20;\n }\n }\n }\n\n &.inherit {\n .rail {\n @apply bg-current opacity-20;\n }\n\n .determinate,\n .indeterminate,\n .buffer {\n @apply bg-current;\n }\n\n .buffer-dots {\n @apply border-current opacity-20;\n }\n }\n }\n\n .circular {\n @apply inline-block;\n width: calc(v-bind(size) * 1px);\n height: calc(v-bind(size) * 1px);\n\n @each $color in $colors {\n &.#{$color} {\n @apply text-rui-#{$color};\n }\n }\n\n &.indeterminate {\n @apply animate-[spin_1.4s_linear_infinite];\n\n svg {\n circle {\n stroke-dasharray: 80px, 200px;\n stroke-dashoffset: 0;\n stroke-linecap: round;\n -webkit-animation: collapse-stroke 1.4s ease-in-out infinite;\n animation: collapse-stroke 1.4s ease-in-out infinite;\n }\n }\n }\n\n &.determinate {\n @apply -rotate-90;\n\n svg {\n circle {\n stroke-dasharray: 126.92;\n stroke-dashoffset: calc(v-bind(progress) / 100 * -126.92);\n -webkit-transition: stroke-dashoffset 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n transition: stroke-dashoffset 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n }\n }\n }\n\n &.inherit {\n @apply text-current;\n }\n\n svg {\n @apply block;\n\n circle {\n stroke: currentColor;\n }\n }\n }\n}\n\n:global(.dark) {\n .wrapper {\n &.has-label {\n .label {\n @apply text-white;\n }\n }\n }\n}\n\n@-webkit-keyframes buffer-pulse {\n 0% {\n opacity: 0.2;\n left: -100%;\n }\n 50% {\n opacity: 1.5;\n left: -100%;\n }\n 60% {\n opacity: 0.4;\n left: -75%;\n }\n 100% {\n opacity: 0.2;\n left: -100%;\n }\n}\n\n@keyframes buffer-pulse {\n 0% {\n opacity: 0.2;\n left: -100%;\n }\n 50% {\n opacity: 1.5;\n left: -100%;\n }\n 60% {\n opacity: 0.4;\n left: -75%;\n }\n 100% {\n opacity: 0.2;\n left: -100%;\n }\n}\n\n@-webkit-keyframes slide-rail {\n 0% {\n left: -35%;\n right: 100%;\n }\n\n 60% {\n left: 100%;\n right: -90%;\n }\n\n 100% {\n left: 100%;\n right: -90%;\n }\n}\n\n@keyframes slide-rail {\n 0% {\n left: -35%;\n right: 100%;\n }\n\n 60% {\n left: 100%;\n right: -90%;\n }\n\n 100% {\n left: 100%;\n right: -90%;\n }\n}\n\n@-webkit-keyframes collapse-stroke {\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n}\n\n@keyframes collapse-stroke {\n 0% {\n stroke-dasharray: 1px, 200px;\n stroke-dashoffset: 0;\n }\n\n 50% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -15px;\n }\n\n 100% {\n stroke-dasharray: 100px, 200px;\n stroke-dashoffset: -125px;\n }\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","$style","_createElementVNode","_unref","_Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,UAAM,eAAe,SAAiB,MAAM,KAAK,IAAI,GAAG,KAAK,IAAI,QAAA,SAAS,KAAK,GAAG,CAAC,CAAC;AAEpF,UAAM,QAAQ,SAAiB,MAAM,GAAG,KAAK,MAAM,IAAI,YAAY,CAAC,CAAC,GAAG;AAExE,UAAM,WAAW,SAAiB,MAAM,OAAO,IAAI,YAAY,CAAC;AAEhE,UAAM,eAAe,SAAiB,MAAM,GAAG,IAAI,QAAQ,CAAC,GAAG;AAE/D,UAAM,gBAAgB;AAAA,MACpB,MAAM,GAAG,OAAO,KAAK,IAAI,GAAG,KAAK,IAAI,QAAA,eAAe,KAAK,GAAG,CAAC,CAAC;AAAA,IAAA;AAGhE,UAAM,0BAA0B,SAAiB,MAAO,CAAC,QAAA,YAAY,KAAM,CAAC,YAAI;AAEhF,UAAM,mBAAmB,SAAiB,MAAM,KAAK,IAAI,uBAAuB,CAAC;;0BAI/EA,mBA6CM,OAAA;AAAA,QA5CH,OAAKC,eAAA;AAAA,UAAUC,KAAAA,OAAO;AAAA,UAAe,QAAA,WAAQ,gBAAA;AAAA,aAAsCA,KAAAA,OAAM,WAAA,CAAA,GAAgB,QAAA,aAAa,QAAA,YAAO,gBAAA;AAAA,QAAA;;QAM9HC,mBA+BM,OAAA;AAAA,UA9BH,iBAAe,QAAA;AAAA,UACf,OAAKF,eAAA;AAAA,YAAY,QAAA,YAAY,oBAAO,WAAgBC,KAAAA,OAAO,WAAWA,KAAAA,OAAO;AAAA,YAAkBA,KAAAA,OAAO,QAAA,WAAO,EAAA;AAAA,YAAiBA,KAAAA,OAAO,QAAA,SAAK,EAAA;AAAA,UAAA;UAK3I,iBAAc;AAAA,UACd,iBAAc;AAAA,UACd,MAAK;AAAA,QAAA;UAGG,QAAA,YAAY,QAAA,YAAO,yBAD3BF,mBAWM,OAAA;AAAA;YATH,SAAO,OAASI,MAAA,gBAAA,CAAgB,IAAIA,MAAA,gBAAA,CAAgB;AAAA,UAAA;YAErDD,mBAME,UAAA;AAAA,cALA,IAAG;AAAA,cACH,IAAG;AAAA,cACH,MAAK;AAAA,cACL,GAAE;AAAA,cACD,gBAAcC,MAAA,uBAAA;AAAA,YAAA;6CAGnBJ,mBAOWK,UAAA,EAAA,KAAA,KAAA;AAAA,YALD,QAAA,YAAO,yBADfL,mBAGE,OAAA;AAAA;cADC,sBAAOE,KAAAA,OAAM,aAAA,CAAA;AAAA,YAAA;YAEhBC,mBAAiF,OAAA;AAAA,cAA3E,uBAAQD,KAAAA,OAAO,MAAI,EAAA,CAAKA,KAAAA,wBAAwB,QAAA,YAAO,SAAA,CAAA,CAAA;AAAA,YAAA;YAC7DC,mBAAsC,OAAA;AAAA,cAAhC,OAAKF,eAAEC,KAAAA,OAAO,QAAA,WAAO,EAAA,CAAA;AAAA,YAAA;;;QAIvB,QAAA,aAAa,QAAA,YAAO,gCAD5BF,mBAKM,OAAA;AAAA;UAHH,OAAKC,eAAEC,KAAAA,OAAO,KAAK;AAAA,QAAA,mBAEjBE,MAAA,KAAA,CAAK,GAAA,CAAA;;;;;"}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
1
|
export interface Props {
|
|
2
2
|
pages: number;
|
|
3
|
-
modelValue?: number;
|
|
4
3
|
variant?: 'numeric' | 'bullet' | 'progress' | 'pill';
|
|
5
4
|
arrowButtons?: boolean;
|
|
6
5
|
hideButtons?: boolean;
|
|
7
6
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
modelValue: number;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
7
|
+
type __VLS_Props = Props;
|
|
8
|
+
type __VLS_ModelProps = {
|
|
9
|
+
modelValue?: number;
|
|
10
|
+
};
|
|
11
|
+
type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
|
|
12
|
+
declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
13
|
+
"update:modelValue": (value: number) => any;
|
|
14
|
+
}, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
|
|
15
|
+
"onUpdate:modelValue"?: ((value: number) => any) | undefined;
|
|
16
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
17
|
declare const _default: typeof __VLS_export;
|
|
19
18
|
export default _default;
|
|
@@ -1,30 +1,31 @@
|
|
|
1
|
-
import { defineComponent,
|
|
1
|
+
import { defineComponent, useModel, openBlock, createElementBlock, normalizeClass, Fragment, renderList, createBlock, createSlots, withCtx, createVNode, createCommentVNode, toDisplayString, mergeModels } from "vue";
|
|
2
2
|
import RuiButton from "../buttons/button/RuiButton.vue.js";
|
|
3
3
|
import RuiIcon from "../icons/RuiIcon.vue.js";
|
|
4
4
|
import RuiProgress from "../progress/RuiProgress.vue.js";
|
|
5
|
-
import { get } from "@vueuse/shared";
|
|
6
|
-
const _hoisted_1 =
|
|
7
|
-
const _hoisted_2 =
|
|
8
|
-
const _hoisted_3 =
|
|
5
|
+
import { get, set } from "@vueuse/shared";
|
|
6
|
+
const _hoisted_1 = ["aria-current"];
|
|
7
|
+
const _hoisted_2 = { key: 0 };
|
|
8
|
+
const _hoisted_3 = ["aria-current", "onClick"];
|
|
9
|
+
const _hoisted_4 = { key: 0 };
|
|
9
10
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
10
11
|
...{
|
|
11
12
|
name: "RuiFooterStepper"
|
|
12
13
|
},
|
|
13
14
|
__name: "RuiFooterStepper",
|
|
14
|
-
props: {
|
|
15
|
+
props: /* @__PURE__ */ mergeModels({
|
|
15
16
|
pages: {},
|
|
16
|
-
modelValue: { default: 1 },
|
|
17
17
|
variant: { default: "numeric" },
|
|
18
18
|
arrowButtons: { type: Boolean, default: false },
|
|
19
19
|
hideButtons: { type: Boolean, default: false }
|
|
20
|
-
},
|
|
20
|
+
}, {
|
|
21
|
+
"modelValue": { default: 1 },
|
|
22
|
+
"modelModifiers": {}
|
|
23
|
+
}),
|
|
21
24
|
emits: ["update:modelValue"],
|
|
22
|
-
setup(__props
|
|
23
|
-
const
|
|
24
|
-
const emit = __emit;
|
|
25
|
-
const { modelValue, pages } = toRefs(props);
|
|
25
|
+
setup(__props) {
|
|
26
|
+
const modelValue = useModel(__props, "modelValue");
|
|
26
27
|
function onChange(delta) {
|
|
27
|
-
|
|
28
|
+
set(modelValue, get(modelValue) + delta);
|
|
28
29
|
}
|
|
29
30
|
function onPrev() {
|
|
30
31
|
const value = get(modelValue);
|
|
@@ -33,7 +34,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
33
34
|
}
|
|
34
35
|
function onNext() {
|
|
35
36
|
const value = get(modelValue);
|
|
36
|
-
if (value <
|
|
37
|
+
if (value < __props.pages)
|
|
37
38
|
onChange(1);
|
|
38
39
|
}
|
|
39
40
|
function onClick(index) {
|
|
@@ -41,30 +42,34 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
41
42
|
}
|
|
42
43
|
return (_ctx, _cache) => {
|
|
43
44
|
return openBlock(), createElementBlock("div", {
|
|
45
|
+
role: "navigation",
|
|
46
|
+
"aria-label": "Step navigation",
|
|
44
47
|
class: normalizeClass([_ctx.$style["footer-stepper"], _ctx.$style[__props.variant ?? ""]])
|
|
45
48
|
}, [
|
|
46
49
|
__props.variant === "pill" ? (openBlock(), createElementBlock("div", {
|
|
47
50
|
key: 0,
|
|
48
51
|
class: normalizeClass(_ctx.$style.pills)
|
|
49
52
|
}, [
|
|
50
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
53
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.pages, (i) => {
|
|
51
54
|
return openBlock(), createElementBlock("span", {
|
|
52
55
|
key: i,
|
|
53
|
-
|
|
54
|
-
|
|
56
|
+
"aria-current": modelValue.value === i ? "step" : void 0,
|
|
57
|
+
class: normalizeClass([_ctx.$style.pill, { [_ctx.$style.active]: modelValue.value === i }])
|
|
58
|
+
}, null, 10, _hoisted_1);
|
|
55
59
|
}), 128))
|
|
56
60
|
], 2)) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
|
|
57
61
|
!__props.hideButtons ? (openBlock(), createBlock(RuiButton, {
|
|
58
62
|
key: 0,
|
|
63
|
+
"aria-label": "Previous",
|
|
59
64
|
class: normalizeClass({ [_ctx.$style.arrow__button]: __props.arrowButtons }),
|
|
60
|
-
disabled:
|
|
65
|
+
disabled: modelValue.value <= 1,
|
|
61
66
|
icon: __props.arrowButtons,
|
|
62
67
|
variant: __props.arrowButtons ? "outlined" : "text",
|
|
63
68
|
color: "primary",
|
|
64
69
|
onClick: _cache[0] || (_cache[0] = ($event) => onPrev())
|
|
65
70
|
}, createSlots({
|
|
66
71
|
default: withCtx(() => [
|
|
67
|
-
!__props.arrowButtons ? (openBlock(), createElementBlock("span",
|
|
72
|
+
!__props.arrowButtons ? (openBlock(), createElementBlock("span", _hoisted_2, "Back")) : (openBlock(), createBlock(RuiIcon, {
|
|
68
73
|
key: 1,
|
|
69
74
|
size: 24,
|
|
70
75
|
name: "lu-arrow-left"
|
|
@@ -86,34 +91,36 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
86
91
|
__props.variant === "numeric" ? (openBlock(), createElementBlock("span", {
|
|
87
92
|
key: 1,
|
|
88
93
|
class: normalizeClass(_ctx.$style.numeric)
|
|
89
|
-
}, toDisplayString(
|
|
94
|
+
}, toDisplayString(modelValue.value) + "/" + toDisplayString(__props.pages), 3)) : __props.variant === "bullet" ? (openBlock(), createElementBlock("div", {
|
|
90
95
|
key: 2,
|
|
91
96
|
class: normalizeClass(_ctx.$style.bullets)
|
|
92
97
|
}, [
|
|
93
|
-
(openBlock(true), createElementBlock(Fragment, null, renderList(
|
|
98
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.pages, (i) => {
|
|
94
99
|
return openBlock(), createElementBlock("span", {
|
|
95
100
|
key: i,
|
|
96
|
-
|
|
101
|
+
"aria-current": modelValue.value === i ? "step" : void 0,
|
|
102
|
+
class: normalizeClass([_ctx.$style.bullet, { [_ctx.$style.active]: modelValue.value === i }]),
|
|
97
103
|
onClick: ($event) => onClick(i)
|
|
98
|
-
}, null, 10,
|
|
104
|
+
}, null, 10, _hoisted_3);
|
|
99
105
|
}), 128))
|
|
100
106
|
], 2)) : __props.variant === "progress" ? (openBlock(), createBlock(RuiProgress, {
|
|
101
107
|
key: 3,
|
|
102
108
|
class: normalizeClass(_ctx.$style.progress),
|
|
103
109
|
color: "primary",
|
|
104
|
-
value:
|
|
110
|
+
value: modelValue.value / __props.pages * 100
|
|
105
111
|
}, null, 8, ["class", "value"])) : createCommentVNode("", true),
|
|
106
112
|
!__props.hideButtons ? (openBlock(), createBlock(RuiButton, {
|
|
107
113
|
key: 4,
|
|
114
|
+
"aria-label": "Next",
|
|
108
115
|
class: normalizeClass({ [_ctx.$style.arrow__button]: __props.arrowButtons }),
|
|
109
|
-
disabled:
|
|
116
|
+
disabled: modelValue.value >= __props.pages,
|
|
110
117
|
icon: __props.arrowButtons,
|
|
111
118
|
variant: __props.arrowButtons ? "outlined" : "text",
|
|
112
119
|
color: "primary",
|
|
113
120
|
onClick: _cache[1] || (_cache[1] = ($event) => onNext())
|
|
114
121
|
}, createSlots({
|
|
115
122
|
default: withCtx(() => [
|
|
116
|
-
!__props.arrowButtons ? (openBlock(), createElementBlock("span",
|
|
123
|
+
!__props.arrowButtons ? (openBlock(), createElementBlock("span", _hoisted_4, "Next")) : (openBlock(), createBlock(RuiIcon, {
|
|
117
124
|
key: 1,
|
|
118
125
|
size: 24,
|
|
119
126
|
name: "lu-arrow-right"
|