@rotki/ui-library 2.12.0 → 2.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/accordions/accordion/RuiAccordion.vue.js +1 -1
- package/dist/components/accordions/accordions/RuiAccordions.vue.js +1 -1
- package/dist/components/alerts/RuiAlert.vue.d.ts +2 -2
- package/dist/components/alerts/RuiAlert.vue2.js +1 -1
- package/dist/components/buttons/button/RuiButton.vue2.js +1 -1
- package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js +1 -1
- package/dist/components/calendar/RuiCalendar.vue.js +1 -1
- package/dist/components/calendar/RuiCalendarGrid.vue2.js +1 -1
- package/dist/components/calendar/RuiCalendarHeader.vue2.js +1 -1
- package/dist/components/calendar/RuiCalendarMenu.vue2.js +1 -1
- package/dist/components/cards/RuiCard.vue.d.ts +1 -1
- package/dist/components/cards/RuiCard.vue2.js +1 -1
- package/dist/components/cards/RuiCardHeader.vue2.js +1 -1
- package/dist/components/chips/RuiChip.vue.d.ts +1 -1
- package/dist/components/chips/RuiChip.vue2.js +1 -1
- package/dist/components/color-picker/RuiColorBoard.vue2.js +6 -2
- package/dist/components/color-picker/RuiColorBoard.vue2.js.map +1 -1
- package/dist/components/color-picker/RuiColorDisplay.vue.js +1 -1
- package/dist/components/color-picker/RuiColorHue.vue2.js +8 -2
- package/dist/components/color-picker/RuiColorHue.vue2.js.map +1 -1
- package/dist/components/color-picker/RuiColorInput.vue.js +1 -1
- package/dist/components/color-picker/RuiColorPicker.vue.js +6 -2
- package/dist/components/color-picker/RuiColorPicker.vue.js.map +1 -1
- package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +4 -4
- package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js +5 -5
- package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js.map +1 -1
- package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.js +1 -1
- package/dist/components/divider/RuiDivider.vue.js +6 -3
- package/dist/components/divider/RuiDivider.vue.js.map +1 -1
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +17 -34
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js +18 -9
- package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js.map +1 -1
- package/dist/components/forms/checkbox/RuiCheckbox.vue.d.ts +2 -2
- package/dist/components/forms/checkbox/RuiCheckbox.vue2.js +2 -2
- package/dist/components/forms/checkbox/RuiCheckbox.vue2.js.map +1 -1
- package/dist/components/forms/radio-button/radio/RuiRadio.vue.d.ts +1 -1
- package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js +2 -2
- package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js.map +1 -1
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.d.ts +1 -1
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js +2 -2
- package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js.map +1 -1
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.d.ts +3 -3
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js +4 -2
- package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js.map +1 -1
- package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +17 -17
- package/dist/components/forms/select/RuiMenuSelect.vue2.js +14 -7
- package/dist/components/forms/select/RuiMenuSelect.vue2.js.map +1 -1
- package/dist/components/forms/select/RuiSimpleSelect.vue.d.ts +3 -1
- package/dist/components/forms/select/RuiSimpleSelect.vue2.js +8 -4
- package/dist/components/forms/select/RuiSimpleSelect.vue2.js.map +1 -1
- package/dist/components/forms/slider/RuiSlider.vue.d.ts +2 -2
- package/dist/components/forms/slider/RuiSlider.vue2.js +10 -8
- package/dist/components/forms/slider/RuiSlider.vue2.js.map +1 -1
- package/dist/components/forms/switch/RuiSwitch.vue.d.ts +1 -1
- package/dist/components/forms/switch/RuiSwitch.vue2.js +2 -2
- package/dist/components/forms/switch/RuiSwitch.vue2.js.map +1 -1
- package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +3 -3
- package/dist/components/forms/text-area/RuiTextArea.vue2.js +8 -8
- package/dist/components/forms/text-area/RuiTextArea.vue2.js.map +1 -1
- package/dist/components/forms/text-field/RuiTextField.vue.d.ts +6 -6
- package/dist/components/forms/text-field/RuiTextField.vue2.js +5 -5
- package/dist/components/forms/text-field/RuiTextField.vue2.js.map +1 -1
- package/dist/components/helpers/RuiFormTextDetail.vue.js +1 -1
- package/dist/components/helpers/RuiFormTextDetail.vue.js.map +1 -1
- package/dist/components/icons/RuiIcon.vue2.js +3 -6
- package/dist/components/icons/RuiIcon.vue2.js.map +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/loaders/RuiSkeletonBase.vue2.js +1 -1
- package/dist/components/loaders/RuiSkeletonLoader.vue2.js +1 -1
- package/dist/components/logos/RuiLogo.vue.js +3 -1
- package/dist/components/logos/RuiLogo.vue.js.map +1 -1
- package/dist/components/overlays/badge/RuiBadge.vue.d.ts +3 -3
- package/dist/components/overlays/badge/RuiBadge.vue2.js +1 -1
- package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js +1 -1
- package/dist/components/overlays/dialog/RuiDialog.vue.d.ts +4 -3
- package/dist/components/overlays/dialog/RuiDialog.vue2.js +11 -5
- package/dist/components/overlays/dialog/RuiDialog.vue2.js.map +1 -1
- package/dist/components/overlays/menu/RuiMenu.vue.d.ts +1 -1
- package/dist/components/overlays/menu/RuiMenu.vue2.js +6 -4
- package/dist/components/overlays/menu/RuiMenu.vue2.js.map +1 -1
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.d.ts +4 -3
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js +40 -12
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js.map +1 -1
- package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue3.js +8 -8
- package/dist/components/overlays/notification/RuiNotification.vue.d.ts +1 -1
- package/dist/components/overlays/notification/RuiNotification.vue.js +3 -1
- package/dist/components/overlays/notification/RuiNotification.vue.js.map +1 -1
- package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +1 -1
- package/dist/components/overlays/tooltip/RuiTooltip.vue2.js +7 -3
- package/dist/components/overlays/tooltip/RuiTooltip.vue2.js.map +1 -1
- package/dist/components/progress/RuiProgress.vue.d.ts +1 -1
- package/dist/components/progress/RuiProgress.vue2.js +1 -1
- package/dist/components/steppers/RuiFooterStepper.vue2.js +15 -8
- package/dist/components/steppers/RuiFooterStepper.vue2.js.map +1 -1
- package/dist/components/steppers/RuiStepper.vue.d.ts +1 -1
- package/dist/components/steppers/RuiStepper.vue2.js +9 -4
- package/dist/components/steppers/RuiStepper.vue2.js.map +1 -1
- package/dist/components/steppers/RuiStepperCustomIcon.vue2.js +1 -1
- package/dist/components/steppers/RuiStepperIcon.vue2.js +1 -1
- package/dist/components/tables/RuiDataTable.vue2.js +28 -24
- package/dist/components/tables/RuiDataTable.vue2.js.map +1 -1
- package/dist/components/tables/RuiExpandButton.vue2.js +3 -2
- package/dist/components/tables/RuiExpandButton.vue2.js.map +1 -1
- package/dist/components/tables/RuiTableHead.vue2.js +1 -1
- package/dist/components/tables/RuiTablePagination.vue.d.ts +1 -1
- package/dist/components/tables/RuiTablePagination.vue2.js +12 -5
- package/dist/components/tables/RuiTablePagination.vue2.js.map +1 -1
- package/dist/components/tabs/tab/RuiTab.vue.d.ts +2 -2
- package/dist/components/tabs/tab/RuiTab.vue2.js +9 -6
- package/dist/components/tabs/tab/RuiTab.vue2.js.map +1 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue.d.ts +1 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue2.js +2 -1
- package/dist/components/tabs/tab-item/RuiTabItem.vue2.js.map +1 -1
- package/dist/components/tabs/tab-items/RuiTabItems.vue.d.ts +1 -1
- package/dist/components/tabs/tab-items/RuiTabItems.vue2.js +1 -1
- package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +1 -1
- package/dist/components/tabs/tabs/RuiTabs.vue2.js +1 -1
- package/dist/components/time-picker/RuiTimePicker.vue2.js +21 -4
- package/dist/components/time-picker/RuiTimePicker.vue2.js.map +1 -1
- package/dist/composables/icons.js +1 -1
- package/dist/composables/icons.js.map +1 -1
- package/dist/composables/popper.js +3 -3
- package/dist/composables/popper.js.map +1 -1
- package/dist/composables/theme.js +16 -4
- package/dist/composables/theme.js.map +1 -1
- package/dist/icons/icons_1.d.ts +15 -15
- package/dist/icons/icons_1.js +96 -96
- package/dist/icons/icons_1.js.map +1 -1
- package/dist/icons/icons_2.d.ts +38 -38
- package/dist/icons/icons_2.js +255 -255
- package/dist/icons/icons_2.js.map +1 -1
- package/dist/icons/icons_3.d.ts +26 -26
- package/dist/icons/icons_3.js +153 -153
- package/dist/icons/icons_3.js.map +1 -1
- package/dist/icons/icons_4.d.ts +37 -2
- package/dist/icons/icons_4.js +192 -17
- package/dist/icons/icons_4.js.map +1 -1
- package/dist/icons/index.d.ts +1 -1
- package/dist/icons/index.js +1 -1
- package/dist/icons/index.js.map +1 -1
- package/dist/index.js +65 -30
- package/dist/style.css +39 -39
- package/dist/vite-plugin/index.js +4 -4
- package/dist/vite-plugin/index.js.map +1 -1
- package/dist/vite-plugin/scanner.js +3 -3
- package/dist/vite-plugin/scanner.js.map +1 -1
- package/dist/web-types.json +43 -24
- package/package.json +28 -34
package/dist/style.css
CHANGED
|
@@ -7031,8 +7031,8 @@ to {
|
|
|
7031
7031
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
7032
7032
|
transition-duration: 75ms;
|
|
7033
7033
|
--x-padding: 0px;
|
|
7034
|
-
--prepend-width: var(--
|
|
7035
|
-
--append-width: var(--
|
|
7034
|
+
--prepend-width: var(--v11a1c3f7);
|
|
7035
|
+
--append-width: var(--v4b0315cd);
|
|
7036
7036
|
padding-left: calc(var(--x-padding) + var(--prepend-width, 0px));
|
|
7037
7037
|
padding-right: calc(var(--x-padding) + var(--append-width, 0px));
|
|
7038
7038
|
}
|
|
@@ -7043,7 +7043,7 @@ to {
|
|
|
7043
7043
|
transition-property: all;
|
|
7044
7044
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
7045
7045
|
transition-duration: 75ms;
|
|
7046
|
-
content: var(--
|
|
7046
|
+
content: var(--v9877abbe);
|
|
7047
7047
|
}
|
|
7048
7048
|
._wrapper_kdkbx_316 ._label_kdkbx_319:after {
|
|
7049
7049
|
content: "";
|
|
@@ -7366,10 +7366,10 @@ to {
|
|
|
7366
7366
|
padding-right: 0.5rem;
|
|
7367
7367
|
}
|
|
7368
7368
|
._wrapper_kdkbx_316._outlined_kdkbx_337 ._input_kdkbx_331:-webkit-autofill ~ ._fieldset_kdkbx_337 legend:after {
|
|
7369
|
-
content: var(--
|
|
7369
|
+
content: var(--v9877abbe);
|
|
7370
7370
|
}
|
|
7371
7371
|
._wrapper_kdkbx_316._outlined_kdkbx_337 ._input_kdkbx_331:not(:placeholder-shown) ~ ._fieldset_kdkbx_337 legend:after, ._wrapper_kdkbx_316._outlined_kdkbx_337 ._input_kdkbx_331:autofill ~ ._fieldset_kdkbx_337 legend:after, ._wrapper_kdkbx_316._outlined_kdkbx_337 ._input_kdkbx_331:-webkit-autofill ~ ._fieldset_kdkbx_337 legend:after, ._wrapper_kdkbx_316._outlined_kdkbx_337 ._input_kdkbx_331[data-has-value=true] ~ ._fieldset_kdkbx_337 legend:after, ._wrapper_kdkbx_316._outlined_kdkbx_337 ._input_kdkbx_331:focus ~ ._fieldset_kdkbx_337 legend:after {
|
|
7372
|
-
content: var(--
|
|
7372
|
+
content: var(--v9877abbe);
|
|
7373
7373
|
}
|
|
7374
7374
|
._wrapper_kdkbx_316._outlined_kdkbx_337 ._fieldset_kdkbx_337{
|
|
7375
7375
|
pointer-events: none;
|
|
@@ -7597,7 +7597,7 @@ to {
|
|
|
7597
7597
|
line-height: 1rem;
|
|
7598
7598
|
}
|
|
7599
7599
|
._wrapper_xauli_2 ._activator_xauli_5._float_xauli_78 ~ ._fieldset_xauli_16 legend:after {
|
|
7600
|
-
content: var(--
|
|
7600
|
+
content: var(--v3a7f25e3);
|
|
7601
7601
|
}
|
|
7602
7602
|
._wrapper_xauli_2 ._activator_xauli_5._float_xauli_78:not(._disabled_xauli_19)._opened_xauli_28 ._label_xauli_45, ._wrapper_xauli_2 ._activator_xauli_5._float_xauli_78:not(._disabled_xauli_19)._opened_xauli_28._with-value_xauli_84 ._label_xauli_45, ._wrapper_xauli_2 ._activator_xauli_5._float_xauli_78:not(._disabled_xauli_19):focus ._label_xauli_45, ._wrapper_xauli_2 ._activator_xauli_5._float_xauli_78:not(._disabled_xauli_19):focus._with-value_xauli_84 ._label_xauli_45, ._wrapper_xauli_2 ._activator_xauli_5._float_xauli_78:not(._disabled_xauli_19):focus-within ._label_xauli_45, ._wrapper_xauli_2 ._activator_xauli_5._float_xauli_78:not(._disabled_xauli_19):focus-within._with-value_xauli_84 ._label_xauli_45{
|
|
7603
7603
|
--tw-text-opacity: 1;
|
|
@@ -7964,7 +7964,7 @@ to {
|
|
|
7964
7964
|
line-height: 1rem;
|
|
7965
7965
|
}
|
|
7966
7966
|
._wrapper_118qp_2 ._activator_118qp_5._float_118qp_84 ~ ._fieldset_118qp_16 legend:after {
|
|
7967
|
-
content: var(--
|
|
7967
|
+
content: var(--v5fc8ba2e);
|
|
7968
7968
|
}
|
|
7969
7969
|
._wrapper_118qp_2 ._activator_118qp_5._float_118qp_84._opened_118qp_28 ._label_118qp_45, ._wrapper_118qp_2 ._activator_118qp_5._float_118qp_84._opened_118qp_28._with-value_118qp_90 ._label_118qp_45, ._wrapper_118qp_2 ._activator_118qp_5._float_118qp_84:focus ._label_118qp_45, ._wrapper_118qp_2 ._activator_118qp_5._float_118qp_84:focus._with-value_118qp_90 ._label_118qp_45, ._wrapper_118qp_2 ._activator_118qp_5._float_118qp_84:focus-within ._label_118qp_45, ._wrapper_118qp_2 ._activator_118qp_5._float_118qp_84:focus-within._with-value_118qp_90 ._label_118qp_45{
|
|
7970
7970
|
--tw-text-opacity: 1;
|
|
@@ -9156,7 +9156,7 @@ to {
|
|
|
9156
9156
|
line-height: 1rem;
|
|
9157
9157
|
}
|
|
9158
9158
|
._wrapper_1dvzu_2 ._activator_1dvzu_5._float_1dvzu_75 ~ ._fieldset_1dvzu_16 legend:after {
|
|
9159
|
-
content: var(--
|
|
9159
|
+
content: var(--v27aaaf1d);
|
|
9160
9160
|
}
|
|
9161
9161
|
._wrapper_1dvzu_2 ._activator_1dvzu_5._float_1dvzu_75._opened_1dvzu_28 ._label_1dvzu_45, ._wrapper_1dvzu_2 ._activator_1dvzu_5._float_1dvzu_75._opened_1dvzu_28._with-value_1dvzu_81 ._label_1dvzu_45, ._wrapper_1dvzu_2 ._activator_1dvzu_5._float_1dvzu_75:focus ._label_1dvzu_45, ._wrapper_1dvzu_2 ._activator_1dvzu_5._float_1dvzu_75:focus._with-value_1dvzu_81 ._label_1dvzu_45{
|
|
9162
9162
|
--tw-text-opacity: 1;
|
|
@@ -9876,12 +9876,12 @@ to {
|
|
|
9876
9876
|
min-width: 0px;
|
|
9877
9877
|
}
|
|
9878
9878
|
._wrapper_mju0y_315._vertical_mju0y_475 ._inner_mju0y_315 {
|
|
9879
|
-
width: var(--
|
|
9880
|
-
height: var(--
|
|
9879
|
+
width: var(--c9bc1d76);
|
|
9880
|
+
height: var(--db8d5c30);
|
|
9881
9881
|
--tw-rotate: -90deg;
|
|
9882
9882
|
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
|
|
9883
9883
|
transform-origin: 0 0;
|
|
9884
|
-
--tw-translate-y: var(--
|
|
9884
|
+
--tw-translate-y: var(--c9bc1d76);
|
|
9885
9885
|
}
|
|
9886
9886
|
._wrapper_mju0y_315._vertical_mju0y_475 ._inner_mju0y_315 ._slider__thumb_label_mju0y_491 {
|
|
9887
9887
|
margin-top: 1.5rem;
|
|
@@ -9901,8 +9901,8 @@ to {
|
|
|
9901
9901
|
flex: 1 1 0%;
|
|
9902
9902
|
}
|
|
9903
9903
|
._wrapper_mju0y_315 ._inner_mju0y_315 {
|
|
9904
|
-
width: var(--
|
|
9905
|
-
height: var(--
|
|
9904
|
+
width: var(--db8d5c30);
|
|
9905
|
+
height: var(--c9bc1d76);
|
|
9906
9906
|
position: relative;
|
|
9907
9907
|
}
|
|
9908
9908
|
._wrapper_mju0y_315 ._inner_mju0y_315 ._input_mju0y_507 {
|
|
@@ -9957,7 +9957,7 @@ to {
|
|
|
9957
9957
|
border-radius: 9999px;
|
|
9958
9958
|
}
|
|
9959
9959
|
._wrapper_mju0y_315 ._inner_mju0y_315 ._slider__container__track_mju0y_318 {
|
|
9960
|
-
width: var(--
|
|
9960
|
+
width: var(--f958c350);
|
|
9961
9961
|
transition-property: all;
|
|
9962
9962
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
9963
9963
|
transition-delay: 0s;
|
|
@@ -9973,13 +9973,13 @@ to {
|
|
|
9973
9973
|
display: flex;
|
|
9974
9974
|
align-items: center;
|
|
9975
9975
|
justify-content: space-between;
|
|
9976
|
-
margin: 0 calc(var(--
|
|
9977
|
-
width: calc(100% + var(--
|
|
9976
|
+
margin: 0 calc(var(--v63a27e48) / -2);
|
|
9977
|
+
width: calc(100% + var(--v63a27e48));
|
|
9978
9978
|
}
|
|
9979
9979
|
._wrapper_mju0y_315 ._inner_mju0y_315 ._slider__ticks_mju0y_324 span {
|
|
9980
9980
|
border-radius: 9999px;
|
|
9981
|
-
width: calc(var(--
|
|
9982
|
-
height: calc(var(--
|
|
9981
|
+
width: calc(var(--v63a27e48));
|
|
9982
|
+
height: calc(var(--v63a27e48));
|
|
9983
9983
|
}
|
|
9984
9984
|
._wrapper_mju0y_315 ._inner_mju0y_315 ._slider__ticks_mju0y_324 span._highlighted_mju0y_324 {
|
|
9985
9985
|
--tw-bg-opacity: 1;
|
|
@@ -10002,7 +10002,7 @@ to {
|
|
|
10002
10002
|
--tw-shadow: 0px 3px 1px -2px var(--rui-shadow-primary), 0px 2px 2px var(--rui-shadow-secondary), 0px 1px 5px var(--rui-shadow-tertiary);
|
|
10003
10003
|
--tw-shadow-colored: 0px 3px 1px -2px var(--tw-shadow-color), 0px 2px 2px var(--tw-shadow-color), 0px 1px 5px var(--tw-shadow-color);
|
|
10004
10004
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
|
10005
|
-
left: var(--
|
|
10005
|
+
left: var(--f958c350);
|
|
10006
10006
|
}
|
|
10007
10007
|
._wrapper_mju0y_315 ._inner_mju0y_315 ._slider__thumb_mju0y_321:before {
|
|
10008
10008
|
position: absolute;
|
|
@@ -10023,7 +10023,7 @@ to {
|
|
|
10023
10023
|
content: "";
|
|
10024
10024
|
}
|
|
10025
10025
|
._wrapper_mju0y_315 ._inner_mju0y_315 ._slider__thumb_label_mju0y_491 {
|
|
10026
|
-
left: var(--
|
|
10026
|
+
left: var(--f958c350);
|
|
10027
10027
|
visibility: hidden;
|
|
10028
10028
|
opacity: 0;
|
|
10029
10029
|
position: absolute;
|
|
@@ -10971,7 +10971,7 @@ to {
|
|
|
10971
10971
|
}
|
|
10972
10972
|
._wrapper_1xhla_316 ._textarea_1xhla_328 {
|
|
10973
10973
|
--x-padding: 0.75rem;
|
|
10974
|
-
padding-right: calc(var(--x-padding) + var(--
|
|
10974
|
+
padding-right: calc(var(--x-padding) + var(--d79da02e)) !important;
|
|
10975
10975
|
}
|
|
10976
10976
|
._wrapper_1xhla_316 ._textarea_sizer_1xhla_356{
|
|
10977
10977
|
pointer-events: none !important;
|
|
@@ -10986,7 +10986,7 @@ to {
|
|
|
10986
10986
|
padding-bottom: 0.5rem !important;
|
|
10987
10987
|
padding-left: 0.75rem !important;
|
|
10988
10988
|
padding-right: 0.75rem !important;
|
|
10989
|
-
padding-right: calc(var(--x-padding) + var(--
|
|
10989
|
+
padding-right: calc(var(--x-padding) + var(--d79da02e)) !important;
|
|
10990
10990
|
}
|
|
10991
10991
|
._wrapper_1xhla_316 ._textarea_1xhla_328:focus{
|
|
10992
10992
|
outline-width: 0px;
|
|
@@ -11041,8 +11041,8 @@ to {
|
|
|
11041
11041
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
|
11042
11042
|
transition-duration: 150ms;
|
|
11043
11043
|
--x-padding: 0rem;
|
|
11044
|
-
padding-left: calc(var(--x-padding) + var(--
|
|
11045
|
-
padding-right: calc(var(--x-padding) + var(--
|
|
11044
|
+
padding-left: calc(var(--x-padding) + var(--v2392254a));
|
|
11045
|
+
padding-right: calc(var(--x-padding) + var(--d79da02e));
|
|
11046
11046
|
}
|
|
11047
11047
|
._wrapper_1xhla_316 ._label_1xhla_316:after {
|
|
11048
11048
|
content: "";
|
|
@@ -11329,10 +11329,10 @@ to {
|
|
|
11329
11329
|
line-height: 0;
|
|
11330
11330
|
}
|
|
11331
11331
|
._wrapper_1xhla_316._outlined_1xhla_334 ._textarea_1xhla_328:-webkit-autofill ~ ._fieldset_1xhla_334 legend:after {
|
|
11332
|
-
content: var(--
|
|
11332
|
+
content: var(--v8096eaf6);
|
|
11333
11333
|
}
|
|
11334
11334
|
._wrapper_1xhla_316._outlined_1xhla_334 ._textarea_1xhla_328:not(:placeholder-shown) ~ ._fieldset_1xhla_334 legend:after, ._wrapper_1xhla_316._outlined_1xhla_334 ._textarea_1xhla_328:autofill ~ ._fieldset_1xhla_334 legend:after, ._wrapper_1xhla_316._outlined_1xhla_334 ._textarea_1xhla_328:-webkit-autofill ~ ._fieldset_1xhla_334 legend:after, ._wrapper_1xhla_316._outlined_1xhla_334 ._textarea_1xhla_328[data-has-value=true] ~ ._fieldset_1xhla_334 legend:after, ._wrapper_1xhla_316._outlined_1xhla_334 ._textarea_1xhla_328:focus ~ ._fieldset_1xhla_334 legend:after {
|
|
11335
|
-
content: var(--
|
|
11335
|
+
content: var(--v8096eaf6);
|
|
11336
11336
|
}
|
|
11337
11337
|
._wrapper_1xhla_316._outlined_1xhla_334 ._fieldset_1xhla_334{
|
|
11338
11338
|
pointer-events: none;
|
|
@@ -11970,7 +11970,7 @@ to {
|
|
|
11970
11970
|
.dark ._overlay_xf8dx_5 {
|
|
11971
11971
|
|
|
11972
11972
|
background-color: rgb(0 0 0 / 0.5)
|
|
11973
|
-
}.
|
|
11973
|
+
}._overlay_b1dn3_1 {
|
|
11974
11974
|
|
|
11975
11975
|
position: absolute;
|
|
11976
11976
|
|
|
@@ -11990,7 +11990,7 @@ to {
|
|
|
11990
11990
|
|
|
11991
11991
|
backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)
|
|
11992
11992
|
}
|
|
11993
|
-
.
|
|
11993
|
+
._content_b1dn3_5 {
|
|
11994
11994
|
|
|
11995
11995
|
position: fixed;
|
|
11996
11996
|
|
|
@@ -12008,11 +12008,11 @@ to {
|
|
|
12008
12008
|
|
|
12009
12009
|
transition-property: all;
|
|
12010
12010
|
|
|
12011
|
-
transition-
|
|
12011
|
+
transition-duration: 150ms;
|
|
12012
12012
|
|
|
12013
|
-
transition-
|
|
12013
|
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)
|
|
12014
12014
|
}
|
|
12015
|
-
.
|
|
12015
|
+
._content_b1dn3_5._left_b1dn3_8 {
|
|
12016
12016
|
|
|
12017
12017
|
left: 0px;
|
|
12018
12018
|
|
|
@@ -12020,7 +12020,7 @@ to {
|
|
|
12020
12020
|
|
|
12021
12021
|
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
|
|
12022
12022
|
}
|
|
12023
|
-
.
|
|
12023
|
+
._content_b1dn3_5._right_b1dn3_11 {
|
|
12024
12024
|
|
|
12025
12025
|
right: 0px;
|
|
12026
12026
|
|
|
@@ -12028,17 +12028,17 @@ to {
|
|
|
12028
12028
|
|
|
12029
12029
|
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
|
|
12030
12030
|
}
|
|
12031
|
-
.
|
|
12031
|
+
._content_b1dn3_5._with-overlay_b1dn3_14 {
|
|
12032
12032
|
|
|
12033
12033
|
z-index: 10000
|
|
12034
12034
|
}
|
|
12035
|
-
.
|
|
12035
|
+
._content_b1dn3_5._visible_b1dn3_17 {
|
|
12036
12036
|
|
|
12037
12037
|
--tw-translate-x: 0px;
|
|
12038
12038
|
|
|
12039
12039
|
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
|
|
12040
12040
|
}
|
|
12041
|
-
.
|
|
12041
|
+
._content_b1dn3_5._temporary_b1dn3_20._visible_b1dn3_17 {
|
|
12042
12042
|
|
|
12043
12043
|
--tw-shadow: 0px 3px 5px -1px var(--rui-shadow-primary), 0px 5px 8px var(--rui-shadow-secondary), 0px 1px 14px var(--rui-shadow-tertiary);
|
|
12044
12044
|
|
|
@@ -12046,21 +12046,21 @@ to {
|
|
|
12046
12046
|
|
|
12047
12047
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
|
|
12048
12048
|
}
|
|
12049
|
-
.
|
|
12049
|
+
._content_b1dn3_5._mini_b1dn3_23 {
|
|
12050
12050
|
|
|
12051
12051
|
--tw-translate-x: 0px;
|
|
12052
12052
|
|
|
12053
12053
|
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))
|
|
12054
12054
|
}
|
|
12055
|
-
.
|
|
12055
|
+
._content_b1dn3_5._mini_b1dn3_23:not(._visible_b1dn3_17) {
|
|
12056
12056
|
|
|
12057
12057
|
width: 3.5rem !important
|
|
12058
12058
|
}
|
|
12059
|
-
.dark .
|
|
12059
|
+
.dark ._overlay_b1dn3_1 {
|
|
12060
12060
|
|
|
12061
12061
|
background-color: rgb(0 0 0 / 0.5)
|
|
12062
12062
|
}
|
|
12063
|
-
.dark .
|
|
12063
|
+
.dark ._content_b1dn3_5 {
|
|
12064
12064
|
|
|
12065
12065
|
--tw-bg-opacity: 1;
|
|
12066
12066
|
|
|
@@ -6,11 +6,11 @@ const VIRTUAL_MODULE_ID = "virtual:rotki-icons";
|
|
|
6
6
|
const RESOLVED_VIRTUAL_MODULE_ID = `\0${VIRTUAL_MODULE_ID}`;
|
|
7
7
|
const DEFAULT_SCAN_PATTERNS = ["**/*.vue", "**/*.ts", "**/*.tsx"];
|
|
8
8
|
const EXCLUDED_PATTERNS = ["**/node_modules/**", "**/dist/**", "**/.git/**"];
|
|
9
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
10
|
-
const __dirname = dirname(__filename);
|
|
9
|
+
const __filename$1 = fileURLToPath(import.meta.url);
|
|
10
|
+
const __dirname$1 = dirname(__filename$1);
|
|
11
11
|
function loadValidIcons() {
|
|
12
12
|
try {
|
|
13
|
-
const distPath = resolve(__dirname, "../icons/index.js");
|
|
13
|
+
const distPath = resolve(__dirname$1, "../icons/index.js");
|
|
14
14
|
if (existsSync(distPath)) {
|
|
15
15
|
const content = readFileSync(distPath, "utf-8");
|
|
16
16
|
const match = content.match(/const RuiIcons = \[(.*?)];/s);
|
|
@@ -22,7 +22,7 @@ function loadValidIcons() {
|
|
|
22
22
|
}
|
|
23
23
|
} catch {
|
|
24
24
|
}
|
|
25
|
-
const sourcePath = resolve(__dirname, "../icons/index.ts");
|
|
25
|
+
const sourcePath = resolve(__dirname$1, "../icons/index.ts");
|
|
26
26
|
if (existsSync(sourcePath)) {
|
|
27
27
|
const content = readFileSync(sourcePath, "utf-8");
|
|
28
28
|
const match = content.match(/export const RuiIcons = \[(.*?)] as const/s);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/vite-plugin/index.ts"],"sourcesContent":["import type { Plugin, ViteDevServer } from 'vite';\nimport type { RuiIconsPluginOptions, ScanResult } from './types';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { dirname, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport {\n extractIconsFromSource,\n generateVirtualModule,\n validateIcons,\n} from './scanner';\n\nconst VIRTUAL_MODULE_ID = 'virtual:rotki-icons';\nconst RESOLVED_VIRTUAL_MODULE_ID = `\\0${VIRTUAL_MODULE_ID}`;\n\nconst DEFAULT_SCAN_PATTERNS = ['**/*.vue', '**/*.ts', '**/*.tsx'];\nconst EXCLUDED_PATTERNS = ['**/node_modules/**', '**/dist/**', '**/.git/**'];\n\n// Get __dirname equivalent in ES modules\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n/**\n * Loads the valid RuiIcons array from the library\n */\nfunction loadValidIcons(): Set<string> {\n // Import the RuiIcons array from the icons module\n // This will be resolved at build time\n try {\n // Try to load from the built dist first (for consumers)\n const distPath = resolve(__dirname, '../icons/index.js');\n if (existsSync(distPath)) {\n // Read and parse the file to extract the RuiIcons array\n const content = readFileSync(distPath, 'utf-8');\n // eslint-disable-next-line regexp/strict\n const match = content.match(/const RuiIcons = \\[(.*?)];/s);\n if (match?.[1]) {\n const iconsStr = match[1];\n const icons = iconsStr.match(/\"([^\"]+)\"/g)?.map(s => s.slice(1, -1)) || [];\n return new Set(icons);\n }\n }\n }\n catch {\n // Fallback: parse the icons source file directly\n }\n\n // Fallback: read and parse the source file\n const sourcePath = resolve(__dirname, '../icons/index.ts');\n if (existsSync(sourcePath)) {\n const content = readFileSync(sourcePath, 'utf-8');\n // eslint-disable-next-line regexp/strict\n const match = content.match(/export const RuiIcons = \\[(.*?)] as const/s);\n if (match?.[1]) {\n const iconsStr = match[1];\n const icons = iconsStr.match(/\"([^\"]+)\"/g)?.map(s => s.slice(1, -1)) || [];\n return new Set(icons);\n }\n }\n\n console.warn('[@rotki/ui-library] Could not load RuiIcons list, validation disabled');\n return new Set();\n}\n\n/**\n * Vite plugin for automatic icon detection and registration\n */\nexport function ruiIconsPlugin(options: RuiIconsPluginOptions = {}): Plugin {\n const {\n include = [],\n scanPatterns = DEFAULT_SCAN_PATTERNS,\n strict = false,\n debug = false,\n } = options;\n\n let validIcons: Set<string>;\n let scanResult: ScanResult;\n let server: ViteDevServer | null = null;\n let root: string;\n\n const log = (message: string): void => {\n if (debug) {\n // eslint-disable-next-line no-console\n console.log(`[@rotki/ui-library/icons] ${message}`);\n }\n };\n\n const warn = (message: string): void => {\n console.warn(`[@rotki/ui-library/icons] ${message}`);\n };\n\n /**\n * Scans all matching files for icon usage\n */\n async function scanFiles(): Promise<void> {\n const fg = await import('fast-glob');\n const glob = fg.default || fg;\n\n scanResult = {\n icons: new Set(include),\n invalidIcons: new Map(),\n };\n\n const files = glob.sync(scanPatterns, {\n cwd: root,\n ignore: EXCLUDED_PATTERNS,\n absolute: true,\n });\n\n log(`Scanning ${files.length} files for icon usage...`);\n\n for (const filePath of files) {\n try {\n const content = readFileSync(filePath, 'utf-8');\n const detectedIcons = extractIconsFromSource(content);\n\n if (detectedIcons.size > 0) {\n log(`Found ${detectedIcons.size} potential icons in ${filePath}`);\n validateIcons(detectedIcons, validIcons, filePath, scanResult);\n }\n }\n catch {\n warn(`Failed to read file: ${filePath}`);\n }\n }\n\n // Add manually included icons\n for (const icon of include) {\n if (validIcons.has(icon)) {\n scanResult.icons.add(icon);\n }\n else {\n warn(`Included icon \"${icon}\" is not a valid RuiIcon`);\n }\n }\n\n log(`Detected ${scanResult.icons.size} valid icons`);\n\n // Report invalid icons\n if (scanResult.invalidIcons.size > 0) {\n const invalidList = [...scanResult.invalidIcons.entries()]\n .map(([icon, files]) => ` - \"${icon}\" in: ${files.join(', ')}`)\n .join('\\n');\n\n const message = `Found ${scanResult.invalidIcons.size} invalid icon name(s):\\n${invalidList}`;\n\n if (strict) {\n throw new Error(message);\n }\n else {\n warn(message);\n }\n }\n }\n\n /**\n * Handles file changes in dev mode\n */\n function handleFileChange(filePath: string): void {\n // Check if the changed file matches our scan patterns\n const isRelevantFile = scanPatterns.some((pattern) => {\n const ext = filePath.split('.').pop();\n return pattern.includes(`*.${ext}`);\n });\n\n if (!isRelevantFile)\n return;\n\n try {\n const content = readFileSync(filePath, 'utf-8');\n const detectedIcons = extractIconsFromSource(content);\n const previousSize = scanResult.icons.size;\n\n validateIcons(detectedIcons, validIcons, filePath, scanResult);\n\n // If new icons were detected, invalidate the virtual module\n if (scanResult.icons.size > previousSize) {\n log(`New icons detected in ${filePath}, invalidating virtual module...`);\n\n // Invalidate the virtual module to trigger re-import\n const mod = server?.moduleGraph.getModuleById(RESOLVED_VIRTUAL_MODULE_ID);\n if (mod) {\n server?.moduleGraph.invalidateModule(mod);\n // Trigger HMR update\n server?.ws.send({\n type: 'full-reload',\n path: '*',\n });\n }\n }\n }\n catch {\n // Ignore read errors\n }\n }\n\n return {\n name: 'rotki-ui-library-icons',\n enforce: 'pre',\n\n configResolved(config) {\n root = config.root;\n validIcons = loadValidIcons();\n log(`Loaded ${validIcons.size} valid icon names`);\n },\n\n configureServer(_server) {\n server = _server;\n\n // Watch for file changes\n server.watcher.on('change', handleFileChange);\n server.watcher.on('add', handleFileChange);\n },\n\n async buildStart() {\n await scanFiles();\n },\n\n resolveId(id) {\n if (id === VIRTUAL_MODULE_ID) {\n return RESOLVED_VIRTUAL_MODULE_ID;\n }\n },\n\n load(id) {\n if (id === RESOLVED_VIRTUAL_MODULE_ID) {\n const moduleContent = generateVirtualModule(scanResult.icons);\n log(`Generated virtual module with ${scanResult.icons.size} icons`);\n return moduleContent;\n }\n },\n };\n}\n\nexport type { RuiIconsPluginOptions } from './types';\n\n// eslint-disable-next-line import/no-default-export\nexport default ruiIconsPlugin;\n"],"names":["files"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/vite-plugin/index.ts"],"sourcesContent":["import type { Plugin, ViteDevServer } from 'vite';\nimport type { RuiIconsPluginOptions, ScanResult } from './types';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { dirname, resolve } from 'node:path';\nimport { fileURLToPath } from 'node:url';\nimport {\n extractIconsFromSource,\n generateVirtualModule,\n validateIcons,\n} from './scanner';\n\nconst VIRTUAL_MODULE_ID = 'virtual:rotki-icons';\nconst RESOLVED_VIRTUAL_MODULE_ID = `\\0${VIRTUAL_MODULE_ID}`;\n\nconst DEFAULT_SCAN_PATTERNS = ['**/*.vue', '**/*.ts', '**/*.tsx'];\nconst EXCLUDED_PATTERNS = ['**/node_modules/**', '**/dist/**', '**/.git/**'];\n\n// Get __dirname equivalent in ES modules\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = dirname(__filename);\n\n/**\n * Loads the valid RuiIcons array from the library\n */\nfunction loadValidIcons(): Set<string> {\n // Import the RuiIcons array from the icons module\n // This will be resolved at build time\n try {\n // Try to load from the built dist first (for consumers)\n const distPath = resolve(__dirname, '../icons/index.js');\n if (existsSync(distPath)) {\n // Read and parse the file to extract the RuiIcons array\n const content = readFileSync(distPath, 'utf-8');\n // eslint-disable-next-line regexp/strict\n const match = content.match(/const RuiIcons = \\[(.*?)];/s);\n if (match?.[1]) {\n const iconsStr = match[1];\n const icons = iconsStr.match(/\"([^\"]+)\"/g)?.map(s => s.slice(1, -1)) || [];\n return new Set(icons);\n }\n }\n }\n catch {\n // Fallback: parse the icons source file directly\n }\n\n // Fallback: read and parse the source file\n const sourcePath = resolve(__dirname, '../icons/index.ts');\n if (existsSync(sourcePath)) {\n const content = readFileSync(sourcePath, 'utf-8');\n // eslint-disable-next-line regexp/strict\n const match = content.match(/export const RuiIcons = \\[(.*?)] as const/s);\n if (match?.[1]) {\n const iconsStr = match[1];\n const icons = iconsStr.match(/\"([^\"]+)\"/g)?.map(s => s.slice(1, -1)) || [];\n return new Set(icons);\n }\n }\n\n console.warn('[@rotki/ui-library] Could not load RuiIcons list, validation disabled');\n return new Set();\n}\n\n/**\n * Vite plugin for automatic icon detection and registration\n */\nexport function ruiIconsPlugin(options: RuiIconsPluginOptions = {}): Plugin {\n const {\n include = [],\n scanPatterns = DEFAULT_SCAN_PATTERNS,\n strict = false,\n debug = false,\n } = options;\n\n let validIcons: Set<string>;\n let scanResult: ScanResult;\n let server: ViteDevServer | null = null;\n let root: string;\n\n const log = (message: string): void => {\n if (debug) {\n // eslint-disable-next-line no-console\n console.log(`[@rotki/ui-library/icons] ${message}`);\n }\n };\n\n const warn = (message: string): void => {\n console.warn(`[@rotki/ui-library/icons] ${message}`);\n };\n\n /**\n * Scans all matching files for icon usage\n */\n async function scanFiles(): Promise<void> {\n const fg = await import('fast-glob');\n const glob = fg.default || fg;\n\n scanResult = {\n icons: new Set(include),\n invalidIcons: new Map(),\n };\n\n const files = glob.sync(scanPatterns, {\n cwd: root,\n ignore: EXCLUDED_PATTERNS,\n absolute: true,\n });\n\n log(`Scanning ${files.length} files for icon usage...`);\n\n for (const filePath of files) {\n try {\n const content = readFileSync(filePath, 'utf-8');\n const detectedIcons = extractIconsFromSource(content);\n\n if (detectedIcons.size > 0) {\n log(`Found ${detectedIcons.size} potential icons in ${filePath}`);\n validateIcons(detectedIcons, validIcons, filePath, scanResult);\n }\n }\n catch {\n warn(`Failed to read file: ${filePath}`);\n }\n }\n\n // Add manually included icons\n for (const icon of include) {\n if (validIcons.has(icon)) {\n scanResult.icons.add(icon);\n }\n else {\n warn(`Included icon \"${icon}\" is not a valid RuiIcon`);\n }\n }\n\n log(`Detected ${scanResult.icons.size} valid icons`);\n\n // Report invalid icons\n if (scanResult.invalidIcons.size > 0) {\n const invalidList = [...scanResult.invalidIcons.entries()]\n .map(([icon, files]) => ` - \"${icon}\" in: ${files.join(', ')}`)\n .join('\\n');\n\n const message = `Found ${scanResult.invalidIcons.size} invalid icon name(s):\\n${invalidList}`;\n\n if (strict) {\n throw new Error(message);\n }\n else {\n warn(message);\n }\n }\n }\n\n /**\n * Handles file changes in dev mode\n */\n function handleFileChange(filePath: string): void {\n // Check if the changed file matches our scan patterns\n const isRelevantFile = scanPatterns.some((pattern) => {\n const ext = filePath.split('.').pop();\n return pattern.includes(`*.${ext}`);\n });\n\n if (!isRelevantFile)\n return;\n\n try {\n const content = readFileSync(filePath, 'utf-8');\n const detectedIcons = extractIconsFromSource(content);\n const previousSize = scanResult.icons.size;\n\n validateIcons(detectedIcons, validIcons, filePath, scanResult);\n\n // If new icons were detected, invalidate the virtual module\n if (scanResult.icons.size > previousSize) {\n log(`New icons detected in ${filePath}, invalidating virtual module...`);\n\n // Invalidate the virtual module to trigger re-import\n const mod = server?.moduleGraph.getModuleById(RESOLVED_VIRTUAL_MODULE_ID);\n if (mod) {\n server?.moduleGraph.invalidateModule(mod);\n // Trigger HMR update\n server?.ws.send({\n type: 'full-reload',\n path: '*',\n });\n }\n }\n }\n catch {\n // Ignore read errors\n }\n }\n\n return {\n name: 'rotki-ui-library-icons',\n enforce: 'pre',\n\n configResolved(config) {\n root = config.root;\n validIcons = loadValidIcons();\n log(`Loaded ${validIcons.size} valid icon names`);\n },\n\n configureServer(_server) {\n server = _server;\n\n // Watch for file changes\n server.watcher.on('change', handleFileChange);\n server.watcher.on('add', handleFileChange);\n },\n\n async buildStart() {\n await scanFiles();\n },\n\n resolveId(id) {\n if (id === VIRTUAL_MODULE_ID) {\n return RESOLVED_VIRTUAL_MODULE_ID;\n }\n },\n\n load(id) {\n if (id === RESOLVED_VIRTUAL_MODULE_ID) {\n const moduleContent = generateVirtualModule(scanResult.icons);\n log(`Generated virtual module with ${scanResult.icons.size} icons`);\n return moduleContent;\n }\n },\n };\n}\n\nexport type { RuiIconsPluginOptions } from './types';\n\n// eslint-disable-next-line import/no-default-export\nexport default ruiIconsPlugin;\n"],"names":["__filename","__dirname","files"],"mappings":"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"}
|
|
@@ -42,14 +42,14 @@ export default [];
|
|
|
42
42
|
`;
|
|
43
43
|
}
|
|
44
44
|
const sortedIcons = [...icons].sort();
|
|
45
|
-
const exports = sortedIcons.map(iconNameToExportName);
|
|
45
|
+
const exports$1 = sortedIcons.map(iconNameToExportName);
|
|
46
46
|
const importStatement = `import {
|
|
47
|
-
${exports.join(",\n ")},
|
|
47
|
+
${exports$1.join(",\n ")},
|
|
48
48
|
} from '@rotki/ui-library';
|
|
49
49
|
`;
|
|
50
50
|
const exportStatement = `
|
|
51
51
|
export default [
|
|
52
|
-
${exports.join(",\n ")},
|
|
52
|
+
${exports$1.join(",\n ")},
|
|
53
53
|
];
|
|
54
54
|
`;
|
|
55
55
|
return importStatement + exportStatement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanner.js","sources":["../../src/vite-plugin/scanner.ts"],"sourcesContent":["import type { ScanResult } from './types';\n\n/**\n * Regex patterns to detect icon usage in source files\n */\nconst ICON_PATTERNS: RegExp[] = [\n // Static name attribute: <RuiIcon name=\"lu-star\" /> or name='lu-star'\n /\\bname=[\"'](lu-[\\da-z-]+)[\"']/gi,\n\n // Dynamic bound name with string literal: :name=\"'lu-star'\" or :name=\"`lu-star`\"\n /:name=[\"']['`](lu-[\\da-z-]+)['`]?[\"']/gi,\n\n // String literals that look like icon names: 'lu-star' or \"lu-star\"\n /[\"'`](lu-[\\da-z-]+)[\"'`]/gi,\n];\n\n/**\n * Extracts all potential icon names from source code\n */\nexport function extractIconsFromSource(source: string): Set<string> {\n const icons = new Set<string>();\n\n for (const pattern of ICON_PATTERNS) {\n // Reset lastIndex for global regex\n pattern.lastIndex = 0;\n\n let match: RegExpExecArray | null = pattern.exec(source);\n while (match !== null) {\n const iconName = match[1];\n if (iconName) {\n icons.add(iconName);\n }\n match = pattern.exec(source);\n }\n }\n\n return icons;\n}\n\n/**\n * Validates detected icons against known valid icons\n */\nexport function validateIcons(\n detectedIcons: Set<string>,\n validIcons: Set<string>,\n filePath: string,\n result: ScanResult,\n): void {\n for (const icon of detectedIcons) {\n if (validIcons.has(icon)) {\n result.icons.add(icon);\n }\n else {\n // Track invalid icons\n const files = result.invalidIcons.get(icon) || [];\n files.push(filePath);\n result.invalidIcons.set(icon, files);\n }\n }\n}\n\n/**\n * Converts icon name to export constant name\n * e.g., 'lu-arrow-down' -> 'LuArrowDown'\n */\nexport function iconNameToExportName(iconName: string): string {\n return iconName\n .split('-')\n .map(part => part.charAt(0).toUpperCase() + part.slice(1))\n .join('');\n}\n\n/**\n * Generates the virtual module content with detected icons\n */\nexport function generateVirtualModule(icons: Set<string>): string {\n if (icons.size === 0) {\n return `// No icons detected\nexport default [];\n`;\n }\n\n const sortedIcons = [...icons].sort();\n const exports = sortedIcons.map(iconNameToExportName);\n\n const importStatement = `import {\\n ${exports.join(',\\n ')},\\n} from '@rotki/ui-library';\\n`;\n const exportStatement = `\\nexport default [\\n ${exports.join(',\\n ')},\\n];\\n`;\n\n return importStatement + exportStatement;\n}\n"],"names":[],"mappings":"AAKA,MAAM,gBAA0B;AAAA;AAAA,EAE9B;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AACF;AAKO,SAAS,uBAAuB,QAA6B;AAClE,QAAM,4BAAY,IAAA;AAElB,aAAW,WAAW,eAAe;AAEnC,YAAQ,YAAY;AAEpB,QAAI,QAAgC,QAAQ,KAAK,MAAM;AACvD,WAAO,UAAU,MAAM;AACrB,YAAM,WAAW,MAAM,CAAC;AACxB,UAAI,UAAU;AACZ,cAAM,IAAI,QAAQ;AAAA,MACpB;AACA,cAAQ,QAAQ,KAAK,MAAM;AAAA,IAC7B;AAAA,EACF;AAEA,SAAO;AACT;AAKO,SAAS,cACd,eACA,YACA,UACA,QACM;AACN,aAAW,QAAQ,eAAe;AAChC,QAAI,WAAW,IAAI,IAAI,GAAG;AACxB,aAAO,MAAM,IAAI,IAAI;AAAA,IACvB,OACK;AAEH,YAAM,QAAQ,OAAO,aAAa,IAAI,IAAI,KAAK,CAAA;AAC/C,YAAM,KAAK,QAAQ;AACnB,aAAO,aAAa,IAAI,MAAM,KAAK;AAAA,IACrC;AAAA,EACF;AACF;AAMO,SAAS,qBAAqB,UAA0B;AAC7D,SAAO,SACJ,MAAM,GAAG,EACT,IAAI,CAAA,SAAQ,KAAK,OAAO,CAAC,EAAE,YAAA,IAAgB,KAAK,MAAM,CAAC,CAAC,EACxD,KAAK,EAAE;AACZ;AAKO,SAAS,sBAAsB,OAA4B;AAChE,MAAI,MAAM,SAAS,GAAG;AACpB,WAAO;AAAA;AAAA;AAAA,EAGT;AAEA,QAAM,cAAc,CAAC,GAAG,KAAK,EAAE,KAAA;AAC/B,
|
|
1
|
+
{"version":3,"file":"scanner.js","sources":["../../src/vite-plugin/scanner.ts"],"sourcesContent":["import type { ScanResult } from './types';\n\n/**\n * Regex patterns to detect icon usage in source files\n */\nconst ICON_PATTERNS: RegExp[] = [\n // Static name attribute: <RuiIcon name=\"lu-star\" /> or name='lu-star'\n /\\bname=[\"'](lu-[\\da-z-]+)[\"']/gi,\n\n // Dynamic bound name with string literal: :name=\"'lu-star'\" or :name=\"`lu-star`\"\n /:name=[\"']['`](lu-[\\da-z-]+)['`]?[\"']/gi,\n\n // String literals that look like icon names: 'lu-star' or \"lu-star\"\n /[\"'`](lu-[\\da-z-]+)[\"'`]/gi,\n];\n\n/**\n * Extracts all potential icon names from source code\n */\nexport function extractIconsFromSource(source: string): Set<string> {\n const icons = new Set<string>();\n\n for (const pattern of ICON_PATTERNS) {\n // Reset lastIndex for global regex\n pattern.lastIndex = 0;\n\n let match: RegExpExecArray | null = pattern.exec(source);\n while (match !== null) {\n const iconName = match[1];\n if (iconName) {\n icons.add(iconName);\n }\n match = pattern.exec(source);\n }\n }\n\n return icons;\n}\n\n/**\n * Validates detected icons against known valid icons\n */\nexport function validateIcons(\n detectedIcons: Set<string>,\n validIcons: Set<string>,\n filePath: string,\n result: ScanResult,\n): void {\n for (const icon of detectedIcons) {\n if (validIcons.has(icon)) {\n result.icons.add(icon);\n }\n else {\n // Track invalid icons\n const files = result.invalidIcons.get(icon) || [];\n files.push(filePath);\n result.invalidIcons.set(icon, files);\n }\n }\n}\n\n/**\n * Converts icon name to export constant name\n * e.g., 'lu-arrow-down' -> 'LuArrowDown'\n */\nexport function iconNameToExportName(iconName: string): string {\n return iconName\n .split('-')\n .map(part => part.charAt(0).toUpperCase() + part.slice(1))\n .join('');\n}\n\n/**\n * Generates the virtual module content with detected icons\n */\nexport function generateVirtualModule(icons: Set<string>): string {\n if (icons.size === 0) {\n return `// No icons detected\nexport default [];\n`;\n }\n\n const sortedIcons = [...icons].sort();\n const exports = sortedIcons.map(iconNameToExportName);\n\n const importStatement = `import {\\n ${exports.join(',\\n ')},\\n} from '@rotki/ui-library';\\n`;\n const exportStatement = `\\nexport default [\\n ${exports.join(',\\n ')},\\n];\\n`;\n\n return importStatement + exportStatement;\n}\n"],"names":["exports"],"mappings":"AAKA,MAAM,gBAA0B;AAAA;AAAA,EAE9B;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AACF;AAKO,SAAS,uBAAuB,QAA6B;AAClE,QAAM,4BAAY,IAAA;AAElB,aAAW,WAAW,eAAe;AAEnC,YAAQ,YAAY;AAEpB,QAAI,QAAgC,QAAQ,KAAK,MAAM;AACvD,WAAO,UAAU,MAAM;AACrB,YAAM,WAAW,MAAM,CAAC;AACxB,UAAI,UAAU;AACZ,cAAM,IAAI,QAAQ;AAAA,MACpB;AACA,cAAQ,QAAQ,KAAK,MAAM;AAAA,IAC7B;AAAA,EACF;AAEA,SAAO;AACT;AAKO,SAAS,cACd,eACA,YACA,UACA,QACM;AACN,aAAW,QAAQ,eAAe;AAChC,QAAI,WAAW,IAAI,IAAI,GAAG;AACxB,aAAO,MAAM,IAAI,IAAI;AAAA,IACvB,OACK;AAEH,YAAM,QAAQ,OAAO,aAAa,IAAI,IAAI,KAAK,CAAA;AAC/C,YAAM,KAAK,QAAQ;AACnB,aAAO,aAAa,IAAI,MAAM,KAAK;AAAA,IACrC;AAAA,EACF;AACF;AAMO,SAAS,qBAAqB,UAA0B;AAC7D,SAAO,SACJ,MAAM,GAAG,EACT,IAAI,CAAA,SAAQ,KAAK,OAAO,CAAC,EAAE,YAAA,IAAgB,KAAK,MAAM,CAAC,CAAC,EACxD,KAAK,EAAE;AACZ;AAKO,SAAS,sBAAsB,OAA4B;AAChE,MAAI,MAAM,SAAS,GAAG;AACpB,WAAO;AAAA;AAAA;AAAA,EAGT;AAEA,QAAM,cAAc,CAAC,GAAG,KAAK,EAAE,KAAA;AAC/B,QAAMA,YAAU,YAAY,IAAI,oBAAoB;AAEpD,QAAM,kBAAkB;AAAA,IAAeA,UAAQ,KAAK,OAAO,CAAC;AAAA;AAAA;AAC5D,QAAM,kBAAkB;AAAA;AAAA,IAAyBA,UAAQ,KAAK,OAAO,CAAC;AAAA;AAAA;AAEtE,SAAO,kBAAkB;AAC3B;"}
|