@rotki/ui-library 3.1.7 → 3.2.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.js.map +1 -1
- package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/accordions/accordion/accordion-styles.d.ts +1 -0
- package/dist/components/accordions/accordion/accordion-styles.js +7 -0
- package/dist/components/accordions/accordion/accordion-styles.js.map +1 -0
- package/dist/components/alerts/RuiAlert.js.map +1 -1
- package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js +1 -65
- package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/alerts/alert-styles.d.ts +145 -0
- package/dist/components/alerts/alert-styles.js +70 -0
- package/dist/components/alerts/alert-styles.js.map +1 -0
- package/dist/components/avatars/RuiAvatar.js.map +1 -1
- package/dist/components/avatars/RuiAvatar.vue_vue_type_script_setup_true_lang.js +1 -38
- package/dist/components/avatars/RuiAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/avatars/RuiAvatarGroup.js.map +1 -1
- package/dist/components/avatars/RuiAvatarGroup.vue_vue_type_script_setup_true_lang.js +1 -13
- package/dist/components/avatars/RuiAvatarGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/avatars/avatar-group-styles.d.ts +49 -0
- package/dist/components/avatars/avatar-group-styles.js +18 -0
- package/dist/components/avatars/avatar-group-styles.js.map +1 -0
- package/dist/components/avatars/avatar-styles.d.ts +181 -0
- package/dist/components/avatars/avatar-styles.js +43 -0
- package/dist/components/avatars/avatar-styles.js.map +1 -0
- package/dist/components/buttons/button-group/RuiButtonGroup.js.map +1 -1
- package/dist/components/buttons/button-group/RuiButtonGroup.vue_vue_type_script_setup_true_lang.js +2 -138
- package/dist/components/buttons/button-group/RuiButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/buttons/button-group/button-group-styles.d.ts +142 -0
- package/dist/components/buttons/button-group/button-group-styles.js +143 -0
- package/dist/components/buttons/button-group/button-group-styles.js.map +1 -0
- package/dist/components/calendar/RuiCalendar.js.map +1 -1
- package/dist/components/calendar/RuiCalendar.vue_vue_type_script_setup_true_lang.js +1 -8
- package/dist/components/calendar/RuiCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/calendar/RuiCalendarGrid.js.map +1 -1
- package/dist/components/calendar/RuiCalendarGrid.vue_vue_type_script_setup_true_lang.js +2 -22
- package/dist/components/calendar/RuiCalendarGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/calendar/RuiCalendarMenu.js.map +1 -1
- package/dist/components/calendar/RuiCalendarMenu.vue_vue_type_script_setup_true_lang.js +3 -14
- package/dist/components/calendar/RuiCalendarMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/calendar/calendar-grid-styles.d.ts +43 -0
- package/dist/components/calendar/calendar-grid-styles.js +26 -0
- package/dist/components/calendar/calendar-grid-styles.js.map +1 -0
- package/dist/components/calendar/calendar-menu-styles.d.ts +34 -0
- package/dist/components/calendar/calendar-menu-styles.js +17 -0
- package/dist/components/calendar/calendar-menu-styles.js.map +1 -0
- package/dist/components/calendar/calendar-styles.d.ts +16 -0
- package/dist/components/calendar/calendar-styles.js +13 -0
- package/dist/components/calendar/calendar-styles.js.map +1 -0
- package/dist/components/cards/RuiCard.js.map +1 -1
- package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js +3 -58
- package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/cards/RuiCardHeader.js.map +1 -1
- package/dist/components/cards/RuiCardHeader.vue_vue_type_script_setup_true_lang.js +2 -20
- package/dist/components/cards/RuiCardHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/cards/card-header-styles.d.ts +46 -0
- package/dist/components/cards/card-header-styles.js +24 -0
- package/dist/components/cards/card-header-styles.js.map +1 -0
- package/dist/components/cards/card-styles.d.ts +175 -0
- package/dist/components/cards/card-styles.js +62 -0
- package/dist/components/cards/card-styles.js.map +1 -0
- package/dist/components/chips/RuiChip.js.map +1 -1
- package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js +2 -241
- package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/chips/chip-styles.d.ts +223 -0
- package/dist/components/chips/chip-styles.js +246 -0
- package/dist/components/chips/chip-styles.js.map +1 -0
- package/dist/components/color-picker/RuiColorBoard.js.map +1 -1
- package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/color-picker/RuiColorHue.js.map +1 -1
- package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/color-picker/RuiColorPicker.js.map +1 -1
- package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/color-picker/color-board-styles.d.ts +1 -0
- package/dist/components/color-picker/color-board-styles.js +7 -0
- package/dist/components/color-picker/color-board-styles.js.map +1 -0
- package/dist/components/color-picker/color-hue-styles.d.ts +1 -0
- package/dist/components/color-picker/color-hue-styles.js +7 -0
- package/dist/components/color-picker/color-hue-styles.js.map +1 -0
- package/dist/components/color-picker/color-picker-styles.d.ts +1 -0
- package/dist/components/color-picker/color-picker-styles.js +7 -0
- package/dist/components/color-picker/color-picker-styles.js.map +1 -0
- package/dist/components/forms/field-label/RuiFieldLabel.js.map +1 -1
- package/dist/components/forms/field-label/RuiFieldLabel.vue_vue_type_script_setup_true_lang.js +1 -11
- package/dist/components/forms/field-label/RuiFieldLabel.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/field-label/field-label-styles.d.ts +43 -0
- package/dist/components/forms/field-label/field-label-styles.js +16 -0
- package/dist/components/forms/field-label/field-label-styles.js.map +1 -0
- package/dist/components/forms/select/RuiSimpleSelect.js.map +1 -1
- package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js +2 -11
- package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/select/simple-select-styles.d.ts +2 -0
- package/dist/components/forms/select/simple-select-styles.js +15 -0
- package/dist/components/forms/select/simple-select-styles.js.map +1 -0
- package/dist/components/forms/switch/RuiSwitch.js.map +1 -1
- package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js +1 -126
- package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/forms/switch/switch-styles.d.ts +151 -0
- package/dist/components/forms/switch/switch-styles.js +131 -0
- package/dist/components/forms/switch/switch-styles.js.map +1 -0
- package/dist/components/icons/RuiIcon.js.map +1 -1
- package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js +2 -28
- package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/icons/icon-styles.d.ts +44 -0
- package/dist/components/icons/icon-styles.js +33 -0
- package/dist/components/icons/icon-styles.js.map +1 -0
- package/dist/components/loaders/RuiSkeletonBase.js.map +1 -1
- package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js +2 -12
- package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/loaders/RuiSkeletonLoader.js.map +1 -1
- package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js +3 -13
- package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/loaders/skeleton-base-styles.d.ts +25 -0
- package/dist/components/loaders/skeleton-base-styles.js +16 -0
- package/dist/components/loaders/skeleton-base-styles.js.map +1 -0
- package/dist/components/loaders/skeleton-loader-styles.d.ts +37 -0
- package/dist/components/loaders/skeleton-loader-styles.js +18 -0
- package/dist/components/loaders/skeleton-loader-styles.js.map +1 -0
- package/dist/components/overlays/badge/RuiBadge.js.map +1 -1
- package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js +1 -83
- package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/badge/badge-styles.d.ts +193 -0
- package/dist/components/overlays/badge/badge-styles.js +88 -0
- package/dist/components/overlays/badge/badge-styles.js.map +1 -0
- package/dist/components/overlays/dialog/RuiDialog.js.map +1 -1
- package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js +3 -14
- package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/dialog/dialog-styles.d.ts +40 -0
- package/dist/components/overlays/dialog/dialog-styles.js +18 -0
- package/dist/components/overlays/dialog/dialog-styles.js.map +1 -0
- package/dist/components/overlays/menu/RuiMenu.js.map +1 -1
- package/dist/components/overlays/menu/RuiMenu.vue.d.ts +9 -0
- package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js +113 -58
- package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/menu/menu-styles.d.ts +58 -0
- package/dist/components/overlays/menu/menu-styles.js +25 -0
- package/dist/components/overlays/menu/menu-styles.js.map +1 -0
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.js.map +1 -1
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js +4 -69
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/navigation-drawer/navigation-drawer-styles.d.ts +76 -0
- package/dist/components/overlays/navigation-drawer/navigation-drawer-styles.js +72 -0
- package/dist/components/overlays/navigation-drawer/navigation-drawer-styles.js.map +1 -0
- package/dist/components/overlays/notification/RuiNotification.js.map +1 -1
- package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js +3 -3
- package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/notification/notification-styles.d.ts +1 -0
- package/dist/components/overlays/notification/notification-styles.js +7 -0
- package/dist/components/overlays/notification/notification-styles.js.map +1 -0
- package/dist/components/overlays/tooltip/RuiTooltip.js.map +1 -1
- package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +4 -2
- package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js +42 -25
- package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/overlays/tooltip/tooltip-styles.d.ts +2 -0
- package/dist/components/overlays/tooltip/tooltip-styles.js +3 -1
- package/dist/components/overlays/tooltip/tooltip-styles.js.map +1 -1
- package/dist/components/progress/RuiProgress.js.map +1 -1
- package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js +1 -133
- package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/progress/progress-styles.d.ts +181 -0
- package/dist/components/progress/progress-styles.js +139 -0
- package/dist/components/progress/progress-styles.js.map +1 -0
- package/dist/components/steppers/RuiFooterStepper.js.map +1 -1
- package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js +3 -13
- package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/steppers/RuiStepper.js.map +1 -1
- package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js +4 -94
- package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/steppers/RuiStepperIcon.js.map +1 -1
- package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js +2 -34
- package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/steppers/footer-stepper-styles.d.ts +28 -0
- package/dist/components/steppers/footer-stepper-styles.js +16 -0
- package/dist/components/steppers/footer-stepper-styles.js.map +1 -0
- package/dist/components/steppers/stepper-icon-styles.d.ts +60 -0
- package/dist/components/steppers/stepper-icon-styles.js +39 -0
- package/dist/components/steppers/stepper-icon-styles.js.map +1 -0
- package/dist/components/steppers/stepper-styles.d.ts +202 -0
- package/dist/components/steppers/stepper-styles.js +98 -0
- package/dist/components/steppers/stepper-styles.js.map +1 -0
- package/dist/components/tables/RuiTable.js.map +1 -1
- package/dist/components/tables/RuiTable.vue_vue_type_script_setup_true_lang.js +1 -32
- package/dist/components/tables/RuiTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/RuiTableEmptyState.js.map +1 -1
- package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js +1 -15
- package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/RuiTableErrorState.js.map +1 -1
- package/dist/components/tables/RuiTableErrorState.vue_vue_type_script_setup_true_lang.js +2 -5
- package/dist/components/tables/RuiTableErrorState.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/RuiTableHead.js.map +1 -1
- package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js +1 -34
- package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/RuiTableLoadingState.js.map +1 -1
- package/dist/components/tables/RuiTableLoadingState.vue_vue_type_script_setup_true_lang.js +1 -8
- package/dist/components/tables/RuiTableLoadingState.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/RuiTablePagination.js.map +1 -1
- package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js +1 -30
- package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tables/table-empty-state-styles.d.ts +43 -0
- package/dist/components/tables/table-empty-state-styles.js +20 -0
- package/dist/components/tables/table-empty-state-styles.js.map +1 -0
- package/dist/components/tables/table-error-state-styles.d.ts +36 -0
- package/dist/components/tables/table-error-state-styles.js +15 -0
- package/dist/components/tables/table-error-state-styles.js.map +1 -0
- package/dist/components/tables/table-head-styles.d.ts +91 -0
- package/dist/components/tables/table-head-styles.js +39 -0
- package/dist/components/tables/table-head-styles.js.map +1 -0
- package/dist/components/tables/table-loading-state-styles.d.ts +34 -0
- package/dist/components/tables/table-loading-state-styles.js +13 -0
- package/dist/components/tables/table-loading-state-styles.js.map +1 -0
- package/dist/components/tables/table-pagination-styles.d.ts +82 -0
- package/dist/components/tables/table-pagination-styles.js +35 -0
- package/dist/components/tables/table-pagination-styles.js.map +1 -0
- package/dist/components/tables/table-styles.d.ts +62 -0
- package/dist/components/tables/table-styles.js +37 -0
- package/dist/components/tables/table-styles.js.map +1 -0
- package/dist/components/tabs/tab/RuiTab.js.map +1 -1
- package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js +3 -84
- package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tabs/tab/tab-styles.d.ts +153 -0
- package/dist/components/tabs/tab/tab-styles.js +89 -0
- package/dist/components/tabs/tab/tab-styles.js.map +1 -0
- package/dist/components/tabs/tabs/RuiTabs.js.map +1 -1
- package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js +2 -137
- package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/dist/components/tabs/tabs/tabs-styles.d.ts +168 -0
- package/dist/components/tabs/tabs/tabs-styles.js +142 -0
- package/dist/components/tabs/tabs/tabs-styles.js.map +1 -0
- package/dist/composables/floating.d.ts +3 -1
- package/dist/composables/floating.js +8 -9
- package/dist/composables/floating.js.map +1 -1
- package/dist/icons/icons_1.d.ts +1 -1
- package/dist/icons/icons_1.js +10 -9
- package/dist/icons/icons_1.js.map +1 -1
- package/dist/icons/icons_2.d.ts +1 -1
- package/dist/icons/icons_2.js +9 -11
- package/dist/icons/icons_2.js.map +1 -1
- package/dist/icons/icons_3.d.ts +1 -1
- package/dist/icons/icons_3.js +11 -5
- package/dist/icons/icons_3.js.map +1 -1
- package/dist/icons/icons_4.d.ts +1 -1
- package/dist/icons/icons_4.js +5 -10
- package/dist/icons/icons_4.js.map +1 -1
- package/dist/icons/icons_5.d.ts +1 -0
- package/dist/icons/icons_5.js +10 -1
- package/dist/icons/icons_5.js.map +1 -1
- package/dist/icons/index.d.ts +1 -1
- package/dist/icons/index.js +7 -6
- package/dist/icons/index.js.map +1 -1
- package/dist/index.js +6 -6
- package/dist/utils/form-text-detail.d.ts +2 -0
- package/dist/utils/form-text-detail.js +5 -1
- package/dist/utils/form-text-detail.js.map +1 -1
- package/dist/web-types.json +11 -1
- package/package.json +1 -1
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
export declare const chipStyles: import("tailwind-variants").TVReturnType<{
|
|
2
|
+
tile: {
|
|
3
|
+
true: {
|
|
4
|
+
root: string;
|
|
5
|
+
};
|
|
6
|
+
false: {
|
|
7
|
+
root: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
size: {
|
|
11
|
+
md: {
|
|
12
|
+
root: string;
|
|
13
|
+
};
|
|
14
|
+
sm: {
|
|
15
|
+
root: string;
|
|
16
|
+
prepend: string;
|
|
17
|
+
label: string;
|
|
18
|
+
close: string;
|
|
19
|
+
};
|
|
20
|
+
xs: {
|
|
21
|
+
root: string;
|
|
22
|
+
prepend: string;
|
|
23
|
+
label: string;
|
|
24
|
+
close: string;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
prepended: {
|
|
28
|
+
true: {
|
|
29
|
+
root: string;
|
|
30
|
+
};
|
|
31
|
+
false: {};
|
|
32
|
+
};
|
|
33
|
+
closeable: {
|
|
34
|
+
true: {};
|
|
35
|
+
false: {};
|
|
36
|
+
};
|
|
37
|
+
disabled: {
|
|
38
|
+
true: {
|
|
39
|
+
root: string;
|
|
40
|
+
close: string;
|
|
41
|
+
};
|
|
42
|
+
false: {};
|
|
43
|
+
};
|
|
44
|
+
clickable: {
|
|
45
|
+
true: {
|
|
46
|
+
root: string;
|
|
47
|
+
};
|
|
48
|
+
false: {
|
|
49
|
+
root: string;
|
|
50
|
+
close: string;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
variant: {
|
|
54
|
+
filled: {};
|
|
55
|
+
outlined: {};
|
|
56
|
+
tonal: {};
|
|
57
|
+
};
|
|
58
|
+
color: {
|
|
59
|
+
grey: {
|
|
60
|
+
root: string;
|
|
61
|
+
};
|
|
62
|
+
primary: {};
|
|
63
|
+
secondary: {};
|
|
64
|
+
error: {};
|
|
65
|
+
warning: {};
|
|
66
|
+
info: {};
|
|
67
|
+
success: {};
|
|
68
|
+
};
|
|
69
|
+
}, {
|
|
70
|
+
root: string;
|
|
71
|
+
prepend: string;
|
|
72
|
+
label: string;
|
|
73
|
+
close: string;
|
|
74
|
+
closeIcon: string;
|
|
75
|
+
}, undefined, {
|
|
76
|
+
tile: {
|
|
77
|
+
true: {
|
|
78
|
+
root: string;
|
|
79
|
+
};
|
|
80
|
+
false: {
|
|
81
|
+
root: string;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
size: {
|
|
85
|
+
md: {
|
|
86
|
+
root: string;
|
|
87
|
+
};
|
|
88
|
+
sm: {
|
|
89
|
+
root: string;
|
|
90
|
+
prepend: string;
|
|
91
|
+
label: string;
|
|
92
|
+
close: string;
|
|
93
|
+
};
|
|
94
|
+
xs: {
|
|
95
|
+
root: string;
|
|
96
|
+
prepend: string;
|
|
97
|
+
label: string;
|
|
98
|
+
close: string;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
prepended: {
|
|
102
|
+
true: {
|
|
103
|
+
root: string;
|
|
104
|
+
};
|
|
105
|
+
false: {};
|
|
106
|
+
};
|
|
107
|
+
closeable: {
|
|
108
|
+
true: {};
|
|
109
|
+
false: {};
|
|
110
|
+
};
|
|
111
|
+
disabled: {
|
|
112
|
+
true: {
|
|
113
|
+
root: string;
|
|
114
|
+
close: string;
|
|
115
|
+
};
|
|
116
|
+
false: {};
|
|
117
|
+
};
|
|
118
|
+
clickable: {
|
|
119
|
+
true: {
|
|
120
|
+
root: string;
|
|
121
|
+
};
|
|
122
|
+
false: {
|
|
123
|
+
root: string;
|
|
124
|
+
close: string;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
variant: {
|
|
128
|
+
filled: {};
|
|
129
|
+
outlined: {};
|
|
130
|
+
tonal: {};
|
|
131
|
+
};
|
|
132
|
+
color: {
|
|
133
|
+
grey: {
|
|
134
|
+
root: string;
|
|
135
|
+
};
|
|
136
|
+
primary: {};
|
|
137
|
+
secondary: {};
|
|
138
|
+
error: {};
|
|
139
|
+
warning: {};
|
|
140
|
+
info: {};
|
|
141
|
+
success: {};
|
|
142
|
+
};
|
|
143
|
+
}, {
|
|
144
|
+
root: string;
|
|
145
|
+
prepend: string;
|
|
146
|
+
label: string;
|
|
147
|
+
close: string;
|
|
148
|
+
closeIcon: string;
|
|
149
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
150
|
+
tile: {
|
|
151
|
+
true: {
|
|
152
|
+
root: string;
|
|
153
|
+
};
|
|
154
|
+
false: {
|
|
155
|
+
root: string;
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
size: {
|
|
159
|
+
md: {
|
|
160
|
+
root: string;
|
|
161
|
+
};
|
|
162
|
+
sm: {
|
|
163
|
+
root: string;
|
|
164
|
+
prepend: string;
|
|
165
|
+
label: string;
|
|
166
|
+
close: string;
|
|
167
|
+
};
|
|
168
|
+
xs: {
|
|
169
|
+
root: string;
|
|
170
|
+
prepend: string;
|
|
171
|
+
label: string;
|
|
172
|
+
close: string;
|
|
173
|
+
};
|
|
174
|
+
};
|
|
175
|
+
prepended: {
|
|
176
|
+
true: {
|
|
177
|
+
root: string;
|
|
178
|
+
};
|
|
179
|
+
false: {};
|
|
180
|
+
};
|
|
181
|
+
closeable: {
|
|
182
|
+
true: {};
|
|
183
|
+
false: {};
|
|
184
|
+
};
|
|
185
|
+
disabled: {
|
|
186
|
+
true: {
|
|
187
|
+
root: string;
|
|
188
|
+
close: string;
|
|
189
|
+
};
|
|
190
|
+
false: {};
|
|
191
|
+
};
|
|
192
|
+
clickable: {
|
|
193
|
+
true: {
|
|
194
|
+
root: string;
|
|
195
|
+
};
|
|
196
|
+
false: {
|
|
197
|
+
root: string;
|
|
198
|
+
close: string;
|
|
199
|
+
};
|
|
200
|
+
};
|
|
201
|
+
variant: {
|
|
202
|
+
filled: {};
|
|
203
|
+
outlined: {};
|
|
204
|
+
tonal: {};
|
|
205
|
+
};
|
|
206
|
+
color: {
|
|
207
|
+
grey: {
|
|
208
|
+
root: string;
|
|
209
|
+
};
|
|
210
|
+
primary: {};
|
|
211
|
+
secondary: {};
|
|
212
|
+
error: {};
|
|
213
|
+
warning: {};
|
|
214
|
+
info: {};
|
|
215
|
+
success: {};
|
|
216
|
+
};
|
|
217
|
+
}, {
|
|
218
|
+
root: string;
|
|
219
|
+
prepend: string;
|
|
220
|
+
label: string;
|
|
221
|
+
close: string;
|
|
222
|
+
closeIcon: string;
|
|
223
|
+
}>>;
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { tv } from "../../utils/tv.js";
|
|
2
|
+
//#region src/components/chips/chip-styles.ts
|
|
3
|
+
var chipStyles = tv({
|
|
4
|
+
slots: {
|
|
5
|
+
root: "inline-flex items-center justify-between px-2 transition duration-150 cursor-default outline-hidden max-w-full truncate",
|
|
6
|
+
prepend: "rounded-full flex items-center justify-center shrink-0 w-6 h-6 text-[0.625rem] font-semibold text-rui-neutral-700 bg-rui-neutral-200 dark:text-rui-neutral-200 dark:bg-rui-neutral-700 overflow-hidden",
|
|
7
|
+
label: "truncate px-2 text-[0.8125rem]/5",
|
|
8
|
+
close: "rounded-full flex items-center p-0.5 inset-y-0 focus:outline-hidden transition-colors hover:bg-rui-pressed",
|
|
9
|
+
closeIcon: "opacity-80 hover:opacity-100 transition-opacity"
|
|
10
|
+
},
|
|
11
|
+
variants: {
|
|
12
|
+
tile: {
|
|
13
|
+
true: { root: "rounded-rui-sm" },
|
|
14
|
+
false: { root: "rounded-full" }
|
|
15
|
+
},
|
|
16
|
+
size: {
|
|
17
|
+
md: { root: "min-h-7" },
|
|
18
|
+
sm: {
|
|
19
|
+
root: "min-h-6",
|
|
20
|
+
prepend: "text-[0.5rem] p-[0.08rem] w-4 h-4",
|
|
21
|
+
label: "px-1.5 text-xs/4",
|
|
22
|
+
close: "p-px"
|
|
23
|
+
},
|
|
24
|
+
xs: {
|
|
25
|
+
root: "min-h-5 px-1",
|
|
26
|
+
prepend: "text-[0.5rem] p-[0.08rem] w-4 h-4",
|
|
27
|
+
label: "px-1 text-[0.6875rem]/4 tabular-nums",
|
|
28
|
+
close: "p-px"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
prepended: {
|
|
32
|
+
true: { root: "pl-0.5" },
|
|
33
|
+
false: {}
|
|
34
|
+
},
|
|
35
|
+
closeable: {
|
|
36
|
+
true: {},
|
|
37
|
+
false: {}
|
|
38
|
+
},
|
|
39
|
+
disabled: {
|
|
40
|
+
true: {
|
|
41
|
+
root: "!text-rui-text-disabled cursor-default",
|
|
42
|
+
close: "cursor-default hover:bg-transparent dark:hover:bg-transparent"
|
|
43
|
+
},
|
|
44
|
+
false: {}
|
|
45
|
+
},
|
|
46
|
+
clickable: {
|
|
47
|
+
true: { root: "cursor-pointer" },
|
|
48
|
+
false: {
|
|
49
|
+
root: "cursor-default",
|
|
50
|
+
close: "cursor-default"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
variant: {
|
|
54
|
+
filled: {},
|
|
55
|
+
outlined: {},
|
|
56
|
+
tonal: {}
|
|
57
|
+
},
|
|
58
|
+
color: {
|
|
59
|
+
grey: { root: "text-rui-text" },
|
|
60
|
+
primary: {},
|
|
61
|
+
secondary: {},
|
|
62
|
+
error: {},
|
|
63
|
+
warning: {},
|
|
64
|
+
info: {},
|
|
65
|
+
success: {}
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
compoundVariants: [
|
|
69
|
+
{
|
|
70
|
+
clickable: true,
|
|
71
|
+
disabled: false,
|
|
72
|
+
class: { root: "hover:state-layer active:state-layer-pressed focus-visible:focus-ring" }
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
color: "grey",
|
|
76
|
+
variant: "filled",
|
|
77
|
+
class: { root: "bg-rui-neutral-200 dark:bg-rui-neutral-700" }
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
variant: "outlined",
|
|
81
|
+
class: { root: "border border-current/40 bg-transparent" }
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
color: "primary",
|
|
85
|
+
variant: "filled",
|
|
86
|
+
class: { root: "bg-rui-primary" }
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
color: "secondary",
|
|
90
|
+
variant: "filled",
|
|
91
|
+
class: { root: "bg-rui-secondary" }
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
color: "error",
|
|
95
|
+
variant: "filled",
|
|
96
|
+
class: { root: "bg-rui-error dark:bg-rui-error-darker" }
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
color: "warning",
|
|
100
|
+
variant: "filled",
|
|
101
|
+
class: { root: "bg-rui-warning dark:bg-rui-warning-darker" }
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
color: "info",
|
|
105
|
+
variant: "filled",
|
|
106
|
+
class: { root: "bg-rui-info dark:bg-rui-info-darker" }
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
color: "success",
|
|
110
|
+
variant: "filled",
|
|
111
|
+
class: { root: "bg-rui-success dark:bg-rui-success-darker" }
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
color: "primary",
|
|
115
|
+
variant: "outlined",
|
|
116
|
+
class: { root: "text-rui-primary dark:text-rui-primary-lighter" }
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
color: "secondary",
|
|
120
|
+
variant: "outlined",
|
|
121
|
+
class: { root: "text-rui-secondary dark:text-rui-secondary-lighter" }
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
color: "error",
|
|
125
|
+
variant: "outlined",
|
|
126
|
+
class: { root: "text-rui-error dark:text-rui-error-lighter" }
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
color: "warning",
|
|
130
|
+
variant: "outlined",
|
|
131
|
+
class: { root: "text-rui-warning" }
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
color: "info",
|
|
135
|
+
variant: "outlined",
|
|
136
|
+
class: { root: "text-rui-info" }
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
color: "success",
|
|
140
|
+
variant: "outlined",
|
|
141
|
+
class: { root: "text-rui-success" }
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
color: "grey",
|
|
145
|
+
variant: "tonal",
|
|
146
|
+
class: { root: "bg-rui-neutral-500/10 dark:bg-rui-neutral-400/10" }
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
color: "primary",
|
|
150
|
+
variant: "tonal",
|
|
151
|
+
class: { root: "bg-rui-primary/15 text-rui-primary-darker dark:bg-rui-primary/35 dark:text-rui-primary-lighter" }
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
color: "secondary",
|
|
155
|
+
variant: "tonal",
|
|
156
|
+
class: { root: "bg-rui-secondary/20 text-rui-secondary-darker dark:bg-rui-secondary/35 dark:text-rui-secondary-lighter" }
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
color: "error",
|
|
160
|
+
variant: "tonal",
|
|
161
|
+
class: { root: "bg-rui-error/10 text-rui-error-darker dark:bg-rui-error/20 dark:text-rui-error-lighter" }
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
color: "warning",
|
|
165
|
+
variant: "tonal",
|
|
166
|
+
class: { root: "bg-rui-warning/10 text-rui-warning-darker dark:bg-rui-warning/20 dark:text-rui-warning-lighter" }
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
color: "info",
|
|
170
|
+
variant: "tonal",
|
|
171
|
+
class: { root: "bg-rui-info/10 text-rui-info-darker dark:bg-rui-info/20 dark:text-rui-info-lighter" }
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
color: "success",
|
|
175
|
+
variant: "tonal",
|
|
176
|
+
class: { root: "bg-rui-success/10 text-rui-success-darker dark:bg-rui-success/20 dark:text-rui-success-lighter" }
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
size: "sm",
|
|
180
|
+
prepended: true,
|
|
181
|
+
class: { root: "pl-1" }
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
tile: true,
|
|
185
|
+
class: { prepend: "rounded-sm" }
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
closeable: true,
|
|
189
|
+
class: {
|
|
190
|
+
root: "pr-1",
|
|
191
|
+
label: "pr-1"
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
closeable: true,
|
|
196
|
+
size: "sm",
|
|
197
|
+
class: {
|
|
198
|
+
root: "pr-1",
|
|
199
|
+
label: "pr-0.5"
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
closeable: true,
|
|
204
|
+
size: "xs",
|
|
205
|
+
class: {
|
|
206
|
+
root: "pr-0.5",
|
|
207
|
+
label: "pr-0.5"
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
disabled: true,
|
|
212
|
+
variant: ["filled", "tonal"],
|
|
213
|
+
class: { root: "!bg-rui-neutral-100 dark:!bg-rui-neutral-800" }
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
disabled: true,
|
|
217
|
+
variant: "outlined",
|
|
218
|
+
class: { root: "!border-rui-divider" }
|
|
219
|
+
}
|
|
220
|
+
],
|
|
221
|
+
compoundSlots: [{
|
|
222
|
+
slots: ["root"],
|
|
223
|
+
color: [
|
|
224
|
+
"primary",
|
|
225
|
+
"secondary",
|
|
226
|
+
"error",
|
|
227
|
+
"warning",
|
|
228
|
+
"info",
|
|
229
|
+
"success"
|
|
230
|
+
],
|
|
231
|
+
variant: "filled",
|
|
232
|
+
class: "text-rui-dark-text"
|
|
233
|
+
}],
|
|
234
|
+
defaultVariants: {
|
|
235
|
+
tile: false,
|
|
236
|
+
size: "md",
|
|
237
|
+
disabled: false,
|
|
238
|
+
clickable: false,
|
|
239
|
+
variant: "filled",
|
|
240
|
+
color: "grey"
|
|
241
|
+
}
|
|
242
|
+
});
|
|
243
|
+
//#endregion
|
|
244
|
+
export { chipStyles };
|
|
245
|
+
|
|
246
|
+
//# sourceMappingURL=chip-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip-styles.js","names":[],"sources":["../../../src/components/chips/chip-styles.ts"],"sourcesContent":["import { tv } from '@/utils/tv';\n\nexport const chipStyles = tv({\n slots: {\n // min-h sets the height and items-center the rest, so a prefix or a border never adds to it\n root: 'inline-flex items-center justify-between px-2 transition duration-150 cursor-default outline-hidden max-w-full truncate',\n // the avatar's neutral pair, so initials stay readable on any chip color\n prepend: 'rounded-full flex items-center justify-center shrink-0 w-6 h-6 text-[0.625rem] font-semibold text-rui-neutral-700 bg-rui-neutral-200 dark:text-rui-neutral-200 dark:bg-rui-neutral-700 overflow-hidden',\n label: 'truncate px-2 text-[0.8125rem]/5',\n // a round hover fill marks the close icon as its own button\n close: 'rounded-full flex items-center p-0.5 inset-y-0 focus:outline-hidden transition-colors hover:bg-rui-pressed',\n // 80% keeps the icon at 3:1 on a filled chip and on the page; full on hover\n closeIcon: 'opacity-80 hover:opacity-100 transition-opacity',\n },\n variants: {\n tile: {\n true: { root: 'rounded-rui-sm' },\n false: { root: 'rounded-full' },\n },\n size: {\n // 28px, to sit in a 44px table row; sm is 24px with 12px text\n md: { root: 'min-h-7' },\n sm: {\n root: 'min-h-6',\n prepend: 'text-[0.5rem] p-[0.08rem] w-4 h-4',\n label: 'px-1.5 text-xs/4',\n close: 'p-px',\n },\n // 20px for a count: 11px tabular figures keep a changing number from shifting the row\n xs: {\n root: 'min-h-5 px-1',\n prepend: 'text-[0.5rem] p-[0.08rem] w-4 h-4',\n label: 'px-1 text-[0.6875rem]/4 tabular-nums',\n close: 'p-px',\n },\n },\n // a leading circle sits as far from the start edge as from the top, like an avatar in a pill\n prepended: {\n true: { root: 'pl-0.5' },\n false: {},\n },\n closeable: {\n true: {},\n false: {},\n },\n disabled: {\n true: { root: '!text-rui-text-disabled cursor-default', close: 'cursor-default hover:bg-transparent dark:hover:bg-transparent' },\n false: {},\n },\n clickable: {\n true: { root: 'cursor-pointer' },\n false: { root: 'cursor-default', close: 'cursor-default' },\n },\n variant: {\n filled: {},\n outlined: {},\n tonal: {},\n },\n color: {\n grey: { root: 'text-rui-text' },\n primary: {},\n secondary: {},\n error: {},\n warning: {},\n info: {},\n success: {},\n },\n },\n compoundVariants: [\n // Interactive states (clickable + not disabled): a tint over any fill, which keeps the text color\n { clickable: true, disabled: false, class: { root: 'hover:state-layer active:state-layer-pressed focus-visible:focus-ring' } },\n\n // Grey filled: a solid step above the tonal tint\n { color: 'grey', variant: 'filled', class: { root: 'bg-rui-neutral-200 dark:bg-rui-neutral-700' } },\n\n // Outlined: the border is the text color at 40%, so it follows the brighter text tone in dark\n { variant: 'outlined', class: { root: 'border border-current/40 bg-transparent' } },\n\n // Context colors: filled bg\n { color: 'primary', variant: 'filled', class: { root: 'bg-rui-primary' } },\n { color: 'secondary', variant: 'filled', class: { root: 'bg-rui-secondary' } },\n // in dark a status color's `main` is a text tone, so the fill is its deep `darker`\n { color: 'error', variant: 'filled', class: { root: 'bg-rui-error dark:bg-rui-error-darker' } },\n { color: 'warning', variant: 'filled', class: { root: 'bg-rui-warning dark:bg-rui-warning-darker' } },\n { color: 'info', variant: 'filled', class: { root: 'bg-rui-info dark:bg-rui-info-darker' } },\n { color: 'success', variant: 'filled', class: { root: 'bg-rui-success dark:bg-rui-success-darker' } },\n\n // Context colors: outlined text\n { color: 'primary', variant: 'outlined', class: { root: 'text-rui-primary dark:text-rui-primary-lighter' } },\n { color: 'secondary', variant: 'outlined', class: { root: 'text-rui-secondary dark:text-rui-secondary-lighter' } },\n { color: 'error', variant: 'outlined', class: { root: 'text-rui-error dark:text-rui-error-lighter' } },\n { color: 'warning', variant: 'outlined', class: { root: 'text-rui-warning' } },\n { color: 'info', variant: 'outlined', class: { root: 'text-rui-info' } },\n { color: 'success', variant: 'outlined', class: { root: 'text-rui-success' } },\n\n // Tonal: a tint with the deeper tone as text, 4.5:1; primary and secondary sit near grey, so tint harder\n { color: 'grey', variant: 'tonal', class: { root: 'bg-rui-neutral-500/10 dark:bg-rui-neutral-400/10' } },\n { color: 'primary', variant: 'tonal', class: { root: 'bg-rui-primary/15 text-rui-primary-darker dark:bg-rui-primary/35 dark:text-rui-primary-lighter' } },\n { color: 'secondary', variant: 'tonal', class: { root: 'bg-rui-secondary/20 text-rui-secondary-darker dark:bg-rui-secondary/35 dark:text-rui-secondary-lighter' } },\n { color: 'error', variant: 'tonal', class: { root: 'bg-rui-error/10 text-rui-error-darker dark:bg-rui-error/20 dark:text-rui-error-lighter' } },\n { color: 'warning', variant: 'tonal', class: { root: 'bg-rui-warning/10 text-rui-warning-darker dark:bg-rui-warning/20 dark:text-rui-warning-lighter' } },\n { color: 'info', variant: 'tonal', class: { root: 'bg-rui-info/10 text-rui-info-darker dark:bg-rui-info/20 dark:text-rui-info-lighter' } },\n { color: 'success', variant: 'tonal', class: { root: 'bg-rui-success/10 text-rui-success-darker dark:bg-rui-success/20 dark:text-rui-success-lighter' } },\n\n // sm: a 16px circle in a 24px chip, 4px in from the start as from the top\n { size: 'sm', prepended: true, class: { root: 'pl-1' } },\n // in a tile chip the prefix follows the corners: the chip's 6px radius less the 2px inset\n { tile: true, class: { prepend: 'rounded-sm' } },\n // the close button's round hover area mirrors the prefix: as far from the end edge as from the top\n { closeable: true, class: { root: 'pr-1', label: 'pr-1' } },\n { closeable: true, size: 'sm', class: { root: 'pr-1', label: 'pr-0.5' } },\n // xs: the 12px close area sits 2px from the end edge, as the 16px prefix does from the start\n { closeable: true, size: 'xs', class: { root: 'pr-0.5', label: 'pr-0.5' } },\n\n // Disabled: a flat neutral chip in any color, like a disabled button\n { disabled: true, variant: ['filled', 'tonal'], class: { root: '!bg-rui-neutral-100 dark:!bg-rui-neutral-800' } },\n { disabled: true, variant: 'outlined', class: { root: '!border-rui-divider' } },\n ],\n compoundSlots: [\n // Every filled color takes light text, in both themes\n { slots: ['root'], color: ['primary', 'secondary', 'error', 'warning', 'info', 'success'], variant: 'filled', class: 'text-rui-dark-text' },\n ],\n defaultVariants: {\n tile: false,\n size: 'md',\n disabled: false,\n clickable: false,\n variant: 'filled',\n color: 'grey',\n },\n});\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuiColorBoard.js","names":["_sfc_main"],"sources":["../../../src/components/color-picker/RuiColorBoard.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { clamp } from '@vueuse/shared';\nimport tinycolor from 'tinycolor2';\nimport { cn
|
|
1
|
+
{"version":3,"file":"RuiColorBoard.js","names":["_sfc_main"],"sources":["../../../src/components/color-picker/RuiColorBoard.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { clamp } from '@vueuse/shared';\nimport tinycolor from 'tinycolor2';\nimport { cn } from '@/utils/tv';\nimport { colorBoardStyles } from './color-board-styles';\nimport { type Color, useElementDrag } from './utils';\n\ndefineOptions({\n name: 'RuiColorBoard',\n inheritAttrs: false,\n});\n\nconst { color } = defineProps<{\n color: Color;\n}>();\n\nconst emit = defineEmits<{\n 'update:board': [event: { saturation: number; brightness: number }];\n}>();\n\nconst wrapper = useTemplateRef<HTMLElement>('wrapper');\n\nconst state = reactive({\n hexString: hueToHex(color.hue),\n saturation: color.saturation,\n brightness: color.brightness,\n});\n\nconst cursorTop = ref<number>(0);\nconst cursorLeft = ref<number>(0);\n\nconst { handleClick, onMouseDown, onTouchStart } = useElementDrag(emitColor);\n\nconst cursorStyle = computed<{ top: string; left: string }>(() => ({\n top: `${get(cursorTop) * 100}%`,\n left: `${get(cursorLeft) * 100}%`,\n}));\n\nfunction hueToHex(hue: number): string {\n return tinycolor({ h: hue, s: 1, v: 1 }).toHexString();\n}\n\nfunction updatePosition(): void {\n set(cursorLeft, state.saturation);\n set(cursorTop, 1 - state.brightness);\n}\n\nfunction emitColor(x: number, y: number): void {\n const el = get(wrapper);\n if (!el)\n return;\n\n const rect = el.getBoundingClientRect();\n const { width, height, left, top } = rect;\n let calculatedX = x - left;\n let calculatedY = y - top;\n\n calculatedX = clamp(calculatedX, 0, width);\n calculatedY = clamp(calculatedY, 0, height);\n\n const saturation = calculatedX / width;\n const brightness = clamp(-(calculatedY / height) + 1, 0, 1);\n\n set(cursorLeft, calculatedX / width);\n set(cursorTop, calculatedY / height);\n\n state.saturation = saturation;\n state.brightness = brightness;\n\n emit('update:board', { saturation, brightness });\n}\n\nwatch(\n () => [color.hue, color.saturation, color.brightness] as const,\n ([hue, saturation, brightness]) => {\n state.hexString = hueToHex(hue);\n state.saturation = saturation;\n state.brightness = brightness;\n updatePosition();\n },\n);\n\nonMounted(() => {\n updatePosition();\n});\n</script>\n\n<template>\n <div\n ref=\"wrapper\"\n role=\"slider\"\n aria-label=\"Color saturation and brightness\"\n :aria-valuetext=\"`Saturation ${Math.round(state.saturation * 100)}%, Brightness ${Math.round(state.brightness * 100)}%`\"\n data-id=\"color-board\"\n :class=\"colorBoardStyles({ class: cn($attrs.class) })\"\n v-bind=\"{ ...$attrs, class: undefined }\"\n :style=\"{ backgroundColor: state.hexString }\"\n @click=\"handleClick($event)\"\n @mousedown=\"onMouseDown($event)\"\n @touchstart=\"onTouchStart($event)\"\n >\n <div class=\"absolute inset-0 to-transparent bg-linear-to-r from-white\" />\n <div class=\"absolute inset-0 to-transparent bg-linear-to-t from-black\" />\n <div\n data-id=\"cursor\"\n class=\"absolute w-5 h-5 -translate-x-1/2 -translate-y-1/2 border-2 border-white shadow-rui-control rounded-full after:content-[''] after:absolute after:inset-0 after:rounded-full after:border-2 after:border-black/15\"\n :style=\"cursorStyle\"\n />\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { clamp, get, set } from "../../vendor/@vueuse/shared/dist/index.js";
|
|
2
|
-
import { cn
|
|
2
|
+
import { cn } from "../../utils/tv.js";
|
|
3
|
+
import { colorBoardStyles } from "./color-board-styles.js";
|
|
3
4
|
import { useElementDrag } from "./utils.js";
|
|
4
5
|
import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, normalizeStyle, onMounted, openBlock, reactive, ref, unref, useTemplateRef, watch } from "vue";
|
|
5
6
|
import tinycolor from "tinycolor2";
|
|
@@ -69,7 +70,6 @@ var RuiColorBoard_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
69
70
|
onMounted(() => {
|
|
70
71
|
updatePosition();
|
|
71
72
|
});
|
|
72
|
-
const rootStyle = tv({ base: "relative w-full h-40 overflow-hidden cursor-pointer rounded-rui-control" });
|
|
73
73
|
return (_ctx, _cache) => {
|
|
74
74
|
return openBlock(), createElementBlock("div", mergeProps({
|
|
75
75
|
ref_key: "wrapper",
|
|
@@ -78,7 +78,7 @@ var RuiColorBoard_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ de
|
|
|
78
78
|
"aria-label": "Color saturation and brightness",
|
|
79
79
|
"aria-valuetext": `Saturation ${Math.round(unref(state).saturation * 100)}%, Brightness ${Math.round(unref(state).brightness * 100)}%`,
|
|
80
80
|
"data-id": "color-board",
|
|
81
|
-
class: unref(
|
|
81
|
+
class: unref(colorBoardStyles)({ class: unref(cn)(_ctx.$attrs.class) })
|
|
82
82
|
}, {
|
|
83
83
|
..._ctx.$attrs,
|
|
84
84
|
class: void 0
|
package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuiColorBoard.vue_vue_type_script_setup_true_lang.js","names":["$attrs","_openBlock","_createElementBlock","_mergeProps","_unref","_createElementVNode","_normalizeStyle"],"sources":["../../../src/components/color-picker/RuiColorBoard.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { clamp } from '@vueuse/shared';\nimport tinycolor from 'tinycolor2';\nimport { cn
|
|
1
|
+
{"version":3,"file":"RuiColorBoard.vue_vue_type_script_setup_true_lang.js","names":["$attrs","_openBlock","_createElementBlock","_mergeProps","_unref","_createElementVNode","_normalizeStyle"],"sources":["../../../src/components/color-picker/RuiColorBoard.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { clamp } from '@vueuse/shared';\nimport tinycolor from 'tinycolor2';\nimport { cn } from '@/utils/tv';\nimport { colorBoardStyles } from './color-board-styles';\nimport { type Color, useElementDrag } from './utils';\n\ndefineOptions({\n name: 'RuiColorBoard',\n inheritAttrs: false,\n});\n\nconst { color } = defineProps<{\n color: Color;\n}>();\n\nconst emit = defineEmits<{\n 'update:board': [event: { saturation: number; brightness: number }];\n}>();\n\nconst wrapper = useTemplateRef<HTMLElement>('wrapper');\n\nconst state = reactive({\n hexString: hueToHex(color.hue),\n saturation: color.saturation,\n brightness: color.brightness,\n});\n\nconst cursorTop = ref<number>(0);\nconst cursorLeft = ref<number>(0);\n\nconst { handleClick, onMouseDown, onTouchStart } = useElementDrag(emitColor);\n\nconst cursorStyle = computed<{ top: string; left: string }>(() => ({\n top: `${get(cursorTop) * 100}%`,\n left: `${get(cursorLeft) * 100}%`,\n}));\n\nfunction hueToHex(hue: number): string {\n return tinycolor({ h: hue, s: 1, v: 1 }).toHexString();\n}\n\nfunction updatePosition(): void {\n set(cursorLeft, state.saturation);\n set(cursorTop, 1 - state.brightness);\n}\n\nfunction emitColor(x: number, y: number): void {\n const el = get(wrapper);\n if (!el)\n return;\n\n const rect = el.getBoundingClientRect();\n const { width, height, left, top } = rect;\n let calculatedX = x - left;\n let calculatedY = y - top;\n\n calculatedX = clamp(calculatedX, 0, width);\n calculatedY = clamp(calculatedY, 0, height);\n\n const saturation = calculatedX / width;\n const brightness = clamp(-(calculatedY / height) + 1, 0, 1);\n\n set(cursorLeft, calculatedX / width);\n set(cursorTop, calculatedY / height);\n\n state.saturation = saturation;\n state.brightness = brightness;\n\n emit('update:board', { saturation, brightness });\n}\n\nwatch(\n () => [color.hue, color.saturation, color.brightness] as const,\n ([hue, saturation, brightness]) => {\n state.hexString = hueToHex(hue);\n state.saturation = saturation;\n state.brightness = brightness;\n updatePosition();\n },\n);\n\nonMounted(() => {\n updatePosition();\n});\n</script>\n\n<template>\n <div\n ref=\"wrapper\"\n role=\"slider\"\n aria-label=\"Color saturation and brightness\"\n :aria-valuetext=\"`Saturation ${Math.round(state.saturation * 100)}%, Brightness ${Math.round(state.brightness * 100)}%`\"\n data-id=\"color-board\"\n :class=\"colorBoardStyles({ class: cn($attrs.class) })\"\n v-bind=\"{ ...$attrs, class: undefined }\"\n :style=\"{ backgroundColor: state.hexString }\"\n @click=\"handleClick($event)\"\n @mousedown=\"onMouseDown($event)\"\n @touchstart=\"onTouchStart($event)\"\n >\n <div class=\"absolute inset-0 to-transparent bg-linear-to-r from-white\" />\n <div class=\"absolute inset-0 to-transparent bg-linear-to-t from-black\" />\n <div\n data-id=\"cursor\"\n class=\"absolute w-5 h-5 -translate-x-1/2 -translate-y-1/2 border-2 border-white shadow-rui-control rounded-full after:content-[''] after:absolute after:inset-0 after:rounded-full after:border-2 after:border-black/15\"\n :style=\"cursorStyle\"\n />\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;EAgBA,MAAM,OAAO;EAIb,MAAM,UAAU,eAA4B,SAAS;EAErD,MAAM,QAAQ,SAAS;GACrB,WAAW,SAAS,QAAA,MAAM,GAAG;GAC7B,YAAY,QAAA,MAAM;GAClB,YAAY,QAAA,MAAM;EACpB,CAAC;EAED,MAAM,YAAY,IAAY,CAAC;EAC/B,MAAM,aAAa,IAAY,CAAC;EAEhC,MAAM,EAAE,aAAa,aAAa,iBAAiB,eAAe,SAAS;EAE3E,MAAM,cAAc,gBAA+C;GACjE,KAAK,GAAG,IAAI,SAAS,IAAI,IAAI;GAC7B,MAAM,GAAG,IAAI,UAAU,IAAI,IAAI;EACjC,EAAE;EAEF,SAAS,SAAS,KAAqB;GACrC,OAAO,UAAU;IAAE,GAAG;IAAK,GAAG;IAAG,GAAG;GAAE,CAAC,CAAC,CAAC,YAAY;EACvD;EAEA,SAAS,iBAAuB;GAC9B,IAAI,YAAY,MAAM,UAAU;GAChC,IAAI,WAAW,IAAI,MAAM,UAAU;EACrC;EAEA,SAAS,UAAU,GAAW,GAAiB;GAC7C,MAAM,KAAK,IAAI,OAAO;GACtB,IAAI,CAAC,IACH;GAGF,MAAM,EAAE,OAAO,QAAQ,MAAM,QADhB,GAAG,sBACqB;GACrC,IAAI,cAAc,IAAI;GACtB,IAAI,cAAc,IAAI;GAEtB,cAAc,MAAM,aAAa,GAAG,KAAK;GACzC,cAAc,MAAM,aAAa,GAAG,MAAM;GAE1C,MAAM,aAAa,cAAc;GACjC,MAAM,aAAa,MAAM,EAAE,cAAc,UAAU,GAAG,GAAG,CAAC;GAE1D,IAAI,YAAY,cAAc,KAAK;GACnC,IAAI,WAAW,cAAc,MAAM;GAEnC,MAAM,aAAa;GACnB,MAAM,aAAa;GAEnB,KAAK,gBAAgB;IAAE;IAAY;GAAW,CAAC;EACjD;EAEA,YACQ;GAAC,QAAA,MAAM;GAAK,QAAA,MAAM;GAAY,QAAA,MAAM;EAAU,IACnD,CAAC,KAAK,YAAY,gBAAgB;GACjC,MAAM,YAAY,SAAS,GAAG;GAC9B,MAAM,aAAa;GACnB,MAAM,aAAa;GACnB,eAAe;EACjB,CACF;EAEA,gBAAgB;GACd,eAAe;EACjB,CAAC;;GAIC,OAAAC,UAAA,GAAAC,mBAoBM,OApBNC,WAoBM;IAnBA,SAAA;IAAJ,KAAI;IACJ,MAAK;IACL,cAAW;IACV,kBAAc,cAAgB,KAAK,MAAMC,MAAA,KAAA,CAAK,CAAC,aAAU,GAAA,EAAA,gBAAwB,KAAK,MAAMA,MAAA,KAAA,CAAK,CAAC,aAAU,GAAA,EAAA;IAC7G,WAAQ;IACP,OAAOA,MAAA,gBAAA,CAAgB,CAAA,EAAA,OAAUA,MAAA,EAAA,CAAE,CAACJ,KAAAA,OAAO,KAAK,EAAA,CAAA;GACpCA,GAAAA;IAAAA,GAAAA,KAAAA;IAAM,OAAS,KAAA;GAAS,GAAA;IACpC,OAAK,EAAA,iBAAqBI,MAAA,KAAA,CAAK,CAAC,UAAS;IACzC,SAAK,OAAA,OAAA,OAAA,MAAA,WAAEA,MAAA,WAAA,CAAW,CAAC,MAAM;IACzB,aAAS,OAAA,OAAA,OAAA,MAAA,WAAEA,MAAA,WAAA,CAAW,CAAC,MAAM;IAC7B,cAAU,OAAA,OAAA,OAAA,MAAA,WAAEA,MAAA,YAAA,CAAY,CAAC,MAAM;;IAEhC,OAAA,OAAA,OAAA,KAAAC,mBAAyE,OAAA,EAApE,OAAM,4DAA2D,GAAA,MAAA,EAAA;IACtE,OAAA,OAAA,OAAA,KAAAA,mBAAyE,OAAA,EAApE,OAAM,4DAA2D,GAAA,MAAA,EAAA;IACtEA,mBAIE,OAAA;KAHA,WAAQ;KACR,OAAM;KACL,OAAKC,eAAEF,MAAA,WAAA,CAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuiColorHue.js","names":["_sfc_main"],"sources":["../../../src/components/color-picker/RuiColorHue.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { clamp } from '@vueuse/shared';\nimport { cn
|
|
1
|
+
{"version":3,"file":"RuiColorHue.js","names":["_sfc_main"],"sources":["../../../src/components/color-picker/RuiColorHue.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { clamp } from '@vueuse/shared';\nimport { cn } from '@/utils/tv';\nimport { colorHueStyles } from './color-hue-styles';\nimport { roundTwoDecimal, useElementDrag } from './utils';\n\ninterface Limit {\n lowerLimit: number;\n upperLimit: number;\n availableWidth: number;\n}\n\ndefineOptions({\n name: 'RuiColorHue',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<number>({ required: true });\n\nconst barElement = useTemplateRef<HTMLElement>('barElement');\n\nconst MAX_HUE = 360;\nconst CURSOR_WIDTH = 16;\nconst cursorLeft = ref<string>('');\n\nconst { handleClick, onMouseDown, onTouchStart } = useElementDrag(emitHue);\n\nconst cursorStyle = computed<{ left: string }>(() => ({\n left: get(cursorLeft),\n}));\n\nfunction getLimit(width: number): Limit {\n const lowerLimit = CURSOR_WIDTH / 2;\n const upperLimit = width - lowerLimit;\n const availableWidth = upperLimit - lowerLimit;\n\n return { lowerLimit, upperLimit, availableWidth };\n}\n\nfunction updatePosition(): void {\n set(cursorLeft, getCursorLeft());\n}\n\nfunction getCursorLeft(): string {\n const el = get(barElement);\n if (!el)\n return '0';\n\n const rect = el.getBoundingClientRect();\n const actualWidth = rect.width;\n const { lowerLimit, availableWidth } = getLimit(actualWidth);\n\n const hueVal = get(modelValue);\n const usedHue = hueVal === MAX_HUE ? MAX_HUE : hueVal % MAX_HUE;\n\n const percentage = roundTwoDecimal((usedHue / MAX_HUE) * (availableWidth / actualWidth) * 100);\n return `calc(${percentage}% + ${lowerLimit}px)`;\n}\n\nfunction emitHue(x: number): void {\n const el = get(barElement);\n if (!el)\n return;\n\n const rect = el.getBoundingClientRect();\n let calculatedX = x - rect.left;\n\n const { lowerLimit, upperLimit, availableWidth } = getLimit(rect.width);\n calculatedX = clamp(calculatedX, lowerLimit, upperLimit);\n\n set(modelValue, Math.round(((calculatedX - lowerLimit) / availableWidth) * MAX_HUE));\n}\n\nwatch(modelValue, () => {\n updatePosition();\n});\n\nonMounted(() => {\n updatePosition();\n});\n</script>\n\n<template>\n <div\n ref=\"barElement\"\n role=\"slider\"\n aria-label=\"Hue\"\n :aria-valuenow=\"modelValue\"\n aria-valuemin=\"0\"\n aria-valuemax=\"360\"\n data-id=\"color-hue\"\n :class=\"colorHueStyles({ class: cn($attrs.class) })\"\n v-bind=\"{ ...$attrs, class: undefined }\"\n @click=\"handleClick($event)\"\n @mousedown=\"onMouseDown($event)\"\n @touchstart=\"onTouchStart($event)\"\n >\n <div\n data-id=\"cursor\"\n class=\"absolute w-4 h-4 transform top-1/2 -translate-x-1/2 -translate-y-1/2 shadow-rui-control bg-white rounded-full\"\n :style=\"cursorStyle\"\n />\n </div>\n</template>\n"],"mappings":""}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { clamp, get, set } from "../../vendor/@vueuse/shared/dist/index.js";
|
|
2
|
-
import { cn
|
|
2
|
+
import { cn } from "../../utils/tv.js";
|
|
3
3
|
import { roundTwoDecimal, useElementDrag } from "./utils.js";
|
|
4
|
+
import { colorHueStyles } from "./color-hue-styles.js";
|
|
4
5
|
import { computed, createElementBlock, createElementVNode, defineComponent, mergeProps, normalizeStyle, onMounted, openBlock, ref, unref, useModel, useTemplateRef, watch } from "vue";
|
|
5
6
|
//#region src/components/color-picker/RuiColorHue.vue?vue&type=script&setup=true&lang.ts
|
|
6
7
|
var _hoisted_1 = ["aria-valuenow"];
|
|
@@ -57,7 +58,6 @@ var RuiColorHue_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
57
58
|
onMounted(() => {
|
|
58
59
|
updatePosition();
|
|
59
60
|
});
|
|
60
|
-
const rootStyle = tv({ base: "relative w-full h-3.5 rounded-full cursor-pointer bg-hue-spectrum" });
|
|
61
61
|
return (_ctx, _cache) => {
|
|
62
62
|
return openBlock(), createElementBlock("div", mergeProps({
|
|
63
63
|
ref_key: "barElement",
|
|
@@ -68,7 +68,7 @@ var RuiColorHue_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defi
|
|
|
68
68
|
"aria-valuemin": "0",
|
|
69
69
|
"aria-valuemax": "360",
|
|
70
70
|
"data-id": "color-hue",
|
|
71
|
-
class: unref(
|
|
71
|
+
class: unref(colorHueStyles)({ class: unref(cn)(_ctx.$attrs.class) })
|
|
72
72
|
}, {
|
|
73
73
|
..._ctx.$attrs,
|
|
74
74
|
class: void 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuiColorHue.vue_vue_type_script_setup_true_lang.js","names":["$attrs","_useModel","_openBlock","_createElementBlock","_mergeProps","_unref","_createElementVNode","_normalizeStyle"],"sources":["../../../src/components/color-picker/RuiColorHue.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { clamp } from '@vueuse/shared';\nimport { cn
|
|
1
|
+
{"version":3,"file":"RuiColorHue.vue_vue_type_script_setup_true_lang.js","names":["$attrs","_useModel","_openBlock","_createElementBlock","_mergeProps","_unref","_createElementVNode","_normalizeStyle"],"sources":["../../../src/components/color-picker/RuiColorHue.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { clamp } from '@vueuse/shared';\nimport { cn } from '@/utils/tv';\nimport { colorHueStyles } from './color-hue-styles';\nimport { roundTwoDecimal, useElementDrag } from './utils';\n\ninterface Limit {\n lowerLimit: number;\n upperLimit: number;\n availableWidth: number;\n}\n\ndefineOptions({\n name: 'RuiColorHue',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<number>({ required: true });\n\nconst barElement = useTemplateRef<HTMLElement>('barElement');\n\nconst MAX_HUE = 360;\nconst CURSOR_WIDTH = 16;\nconst cursorLeft = ref<string>('');\n\nconst { handleClick, onMouseDown, onTouchStart } = useElementDrag(emitHue);\n\nconst cursorStyle = computed<{ left: string }>(() => ({\n left: get(cursorLeft),\n}));\n\nfunction getLimit(width: number): Limit {\n const lowerLimit = CURSOR_WIDTH / 2;\n const upperLimit = width - lowerLimit;\n const availableWidth = upperLimit - lowerLimit;\n\n return { lowerLimit, upperLimit, availableWidth };\n}\n\nfunction updatePosition(): void {\n set(cursorLeft, getCursorLeft());\n}\n\nfunction getCursorLeft(): string {\n const el = get(barElement);\n if (!el)\n return '0';\n\n const rect = el.getBoundingClientRect();\n const actualWidth = rect.width;\n const { lowerLimit, availableWidth } = getLimit(actualWidth);\n\n const hueVal = get(modelValue);\n const usedHue = hueVal === MAX_HUE ? MAX_HUE : hueVal % MAX_HUE;\n\n const percentage = roundTwoDecimal((usedHue / MAX_HUE) * (availableWidth / actualWidth) * 100);\n return `calc(${percentage}% + ${lowerLimit}px)`;\n}\n\nfunction emitHue(x: number): void {\n const el = get(barElement);\n if (!el)\n return;\n\n const rect = el.getBoundingClientRect();\n let calculatedX = x - rect.left;\n\n const { lowerLimit, upperLimit, availableWidth } = getLimit(rect.width);\n calculatedX = clamp(calculatedX, lowerLimit, upperLimit);\n\n set(modelValue, Math.round(((calculatedX - lowerLimit) / availableWidth) * MAX_HUE));\n}\n\nwatch(modelValue, () => {\n updatePosition();\n});\n\nonMounted(() => {\n updatePosition();\n});\n</script>\n\n<template>\n <div\n ref=\"barElement\"\n role=\"slider\"\n aria-label=\"Hue\"\n :aria-valuenow=\"modelValue\"\n aria-valuemin=\"0\"\n aria-valuemax=\"360\"\n data-id=\"color-hue\"\n :class=\"colorHueStyles({ class: cn($attrs.class) })\"\n v-bind=\"{ ...$attrs, class: undefined }\"\n @click=\"handleClick($event)\"\n @mousedown=\"onMouseDown($event)\"\n @touchstart=\"onTouchStart($event)\"\n >\n <div\n data-id=\"cursor\"\n class=\"absolute w-4 h-4 transform top-1/2 -translate-x-1/2 -translate-y-1/2 shadow-rui-control bg-white rounded-full\"\n :style=\"cursorStyle\"\n />\n </div>\n</template>\n"],"mappings":";;;;;;;AAqBA,IAAM,UAAU;AAChB,IAAM,eAAe;;;;;;;;;;;EALrB,MAAM,aAAaC,SAAmB,SAAA,YAAmB;EAEzD,MAAM,aAAa,eAA4B,YAAY;EAI3D,MAAM,aAAa,IAAY,EAAE;EAEjC,MAAM,EAAE,aAAa,aAAa,iBAAiB,eAAe,OAAO;EAEzE,MAAM,cAAc,gBAAkC,EACpD,MAAM,IAAI,UAAU,EACtB,EAAE;EAEF,SAAS,SAAS,OAAsB;GACtC,MAAM,aAAa,eAAe;GAClC,MAAM,aAAa,QAAQ;GAG3B,OAAO;IAAE;IAAY;IAAY,gBAFV,aAAa;GAEY;EAClD;EAEA,SAAS,iBAAuB;GAC9B,IAAI,YAAY,cAAc,CAAC;EACjC;EAEA,SAAS,gBAAwB;GAC/B,MAAM,KAAK,IAAI,UAAU;GACzB,IAAI,CAAC,IACH,OAAO;GAGT,MAAM,cADO,GAAG,sBACI,CAAA,CAAK;GACzB,MAAM,EAAE,YAAY,mBAAmB,SAAS,WAAW;GAE3D,MAAM,SAAS,IAAI,UAAU;GAC7B,MAAM,UAAU,WAAW,UAAU,UAAU,SAAS;GAGxD,OAAO,QADY,gBAAiB,UAAU,WAAY,iBAAiB,eAAe,GAC3E,EAAW,MAAM,WAAW;EAC7C;EAEA,SAAS,QAAQ,GAAiB;GAChC,MAAM,KAAK,IAAI,UAAU;GACzB,IAAI,CAAC,IACH;GAEF,MAAM,OAAO,GAAG,sBAAsB;GACtC,IAAI,cAAc,IAAI,KAAK;GAE3B,MAAM,EAAE,YAAY,YAAY,mBAAmB,SAAS,KAAK,KAAK;GACtE,cAAc,MAAM,aAAa,YAAY,UAAU;GAEvD,IAAI,YAAY,KAAK,OAAQ,cAAc,cAAc,iBAAkB,OAAO,CAAC;EACrF;EAEA,MAAM,kBAAkB;GACtB,eAAe;EACjB,CAAC;EAED,gBAAgB;GACd,eAAe;EACjB,CAAC;;GAIC,OAAAC,UAAA,GAAAC,mBAmBM,OAnBNC,WAmBM;IAlBA,SAAA;IAAJ,KAAI;IACJ,MAAK;IACL,cAAW;IACV,iBAAe,WAAA;IAChB,iBAAc;IACd,iBAAc;IACd,WAAQ;IACP,OAAOC,MAAA,cAAA,CAAc,CAAA,EAAA,OAAUA,MAAA,EAAA,CAAE,CAACL,KAAAA,OAAO,KAAK,EAAA,CAAA;GAClCA,GAAAA;IAAAA,GAAAA,KAAAA;IAAM,OAAS,KAAA;GAAS,GAAA;IACpC,SAAK,OAAA,OAAA,OAAA,MAAA,WAAEK,MAAA,WAAA,CAAW,CAAC,MAAM;IACzB,aAAS,OAAA,OAAA,OAAA,MAAA,WAAEA,MAAA,WAAA,CAAW,CAAC,MAAM;IAC7B,cAAU,OAAA,OAAA,OAAA,MAAA,WAAEA,MAAA,YAAA,CAAY,CAAC,MAAM;GAEhCC,CAAAA,GAAAA,CAAAA,mBAIE,OAAA;IAHA,WAAQ;IACR,OAAM;IACL,OAAKC,eAAEF,MAAA,WAAA,CAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RuiColorPicker.js","names":["_sfc_main"],"sources":["../../../src/components/color-picker/RuiColorPicker.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n// Inspired by https://github.com/aesoper101/vue3-colorpicker/\nimport RuiColorBoard from '@/components/color-picker/RuiColorBoard.vue';\nimport RuiColorDisplay from '@/components/color-picker/RuiColorDisplay.vue';\nimport RuiColorHue from '@/components/color-picker/RuiColorHue.vue';\nimport RuiColorInput from '@/components/color-picker/RuiColorInput.vue';\nimport { cn
|
|
1
|
+
{"version":3,"file":"RuiColorPicker.js","names":["_sfc_main"],"sources":["../../../src/components/color-picker/RuiColorPicker.vue"],"sourcesContent":["<script lang=\"ts\" setup>\n// Inspired by https://github.com/aesoper101/vue3-colorpicker/\nimport RuiColorBoard from '@/components/color-picker/RuiColorBoard.vue';\nimport RuiColorDisplay from '@/components/color-picker/RuiColorDisplay.vue';\nimport RuiColorHue from '@/components/color-picker/RuiColorHue.vue';\nimport RuiColorInput from '@/components/color-picker/RuiColorInput.vue';\nimport { cn } from '@/utils/tv';\nimport { colorPickerStyles } from './color-picker-styles';\nimport { Color } from './utils';\n\ndefineOptions({\n name: 'RuiColorPicker',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<string>({ default: '' });\n\nconst state = reactive({\n color: new Color(get(modelValue)),\n});\n\nfunction onBoardChange({\n saturation,\n brightness,\n}: {\n saturation: number;\n brightness: number;\n}): void {\n state.color.saturation = saturation;\n state.color.brightness = brightness;\n}\n\nwhenever(\n modelValue,\n (value: string) => {\n if (state.color.hex !== value)\n state.color = new Color(value);\n },\n);\n\nwatch(\n () => state.color.hex,\n (hex: string) => {\n set(modelValue, hex);\n },\n { immediate: true },\n);\n</script>\n\n<template>\n <div\n role=\"application\"\n aria-label=\"Color picker\"\n data-id=\"color-picker\"\n :class=\"colorPickerStyles({ class: cn($attrs.class) })\"\n v-bind=\"{ ...$attrs, class: undefined }\"\n >\n <RuiColorBoard\n :color=\"state.color\"\n @update:board=\"onBoardChange($event)\"\n />\n <div class=\"flex flex-col gap-5 p-4\">\n <div class=\"flex items-center gap-4\">\n <RuiColorDisplay :color=\"state.color.hexString\" />\n <RuiColorHue\n v-model=\"state.color.hue\"\n class=\"flex-1\"\n />\n </div>\n\n <RuiColorInput v-model=\"state.color\" />\n </div>\n </div>\n</template>\n"],"mappings":""}
|