@rotki/ui-library 2.12.1 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/dist/components/accordions/accordion/RuiAccordion.vue.d.ts +6 -14
  2. package/dist/components/accordions/accordion/RuiAccordion.vue.js +3 -4
  3. package/dist/components/accordions/accordion/RuiAccordion.vue.js.map +1 -1
  4. package/dist/components/accordions/accordions/RuiAccordions.vue.d.ts +10 -9
  5. package/dist/components/accordions/accordions/RuiAccordions.vue.js +27 -26
  6. package/dist/components/accordions/accordions/RuiAccordions.vue.js.map +1 -1
  7. package/dist/components/alerts/RuiAlert.vue.d.ts +7 -17
  8. package/dist/components/alerts/RuiAlert.vue2.js +8 -16
  9. package/dist/components/alerts/RuiAlert.vue2.js.map +1 -1
  10. package/dist/components/buttons/button/RuiButton.vue.d.ts +5 -7
  11. package/dist/components/buttons/button/RuiButton.vue2.js +19 -20
  12. package/dist/components/buttons/button/RuiButton.vue2.js.map +1 -1
  13. package/dist/components/buttons/button-group/RuiButtonGroup.vue.d.ts +6 -5
  14. package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js +42 -41
  15. package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js.map +1 -1
  16. package/dist/components/calendar/RuiCalendar.vue.d.ts +1 -6
  17. package/dist/components/calendar/RuiCalendar.vue.js +7 -8
  18. package/dist/components/calendar/RuiCalendar.vue.js.map +1 -1
  19. package/dist/components/calendar/RuiCalendarGrid.vue.js +1 -1
  20. package/dist/components/calendar/RuiCalendarGrid.vue2.js +20 -18
  21. package/dist/components/calendar/RuiCalendarGrid.vue2.js.map +1 -1
  22. package/dist/components/calendar/RuiCalendarHeader.vue.js +1 -1
  23. package/dist/components/calendar/RuiCalendarHeader.vue2.js +3 -4
  24. package/dist/components/calendar/RuiCalendarHeader.vue2.js.map +1 -1
  25. package/dist/components/calendar/RuiCalendarMenu.vue.js +1 -1
  26. package/dist/components/calendar/RuiCalendarMenu.vue2.js +48 -40
  27. package/dist/components/calendar/RuiCalendarMenu.vue2.js.map +1 -1
  28. package/dist/components/cards/RuiCard.vue.d.ts +9 -24
  29. package/dist/components/cards/RuiCard.vue2.js +7 -7
  30. package/dist/components/cards/RuiCard.vue2.js.map +1 -1
  31. package/dist/components/cards/RuiCardHeader.vue.d.ts +5 -10
  32. package/dist/components/cards/RuiCardHeader.vue2.js +1 -1
  33. package/dist/components/cards/RuiCardHeader.vue2.js.map +1 -1
  34. package/dist/components/chips/RuiChip.vue.d.ts +7 -21
  35. package/dist/components/chips/RuiChip.vue2.js +16 -21
  36. package/dist/components/chips/RuiChip.vue2.js.map +1 -1
  37. package/dist/components/color-picker/RuiColorBoard.vue.d.ts +1 -1
  38. package/dist/components/color-picker/RuiColorBoard.vue2.js +19 -19
  39. package/dist/components/color-picker/RuiColorBoard.vue2.js.map +1 -1
  40. package/dist/components/color-picker/RuiColorDisplay.vue.js +3 -5
  41. package/dist/components/color-picker/RuiColorDisplay.vue.js.map +1 -1
  42. package/dist/components/color-picker/RuiColorHue.vue2.js +17 -14
  43. package/dist/components/color-picker/RuiColorHue.vue2.js.map +1 -1
  44. package/dist/components/color-picker/RuiColorInput.vue.js +9 -7
  45. package/dist/components/color-picker/RuiColorInput.vue.js.map +1 -1
  46. package/dist/components/color-picker/RuiColorPicker.vue.d.ts +7 -9
  47. package/dist/components/color-picker/RuiColorPicker.vue.js +23 -14
  48. package/dist/components/color-picker/RuiColorPicker.vue.js.map +1 -1
  49. package/dist/components/color-picker/utils.js +22 -5
  50. package/dist/components/color-picker/utils.js.map +1 -1
  51. package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +2 -44
  52. package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js +75 -79
  53. package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js.map +1 -1
  54. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.js +1 -1
  55. package/dist/components/date-time-picker/dayjs-setup.d.ts +1 -0
  56. package/dist/components/date-time-picker/dayjs-setup.js +8 -0
  57. package/dist/components/date-time-picker/dayjs-setup.js.map +1 -0
  58. package/dist/components/date-time-picker/segment-config.d.ts +14 -0
  59. package/dist/components/date-time-picker/segment-config.js +23 -0
  60. package/dist/components/date-time-picker/segment-config.js.map +1 -0
  61. package/dist/components/date-time-picker/segment-utils.d.ts +5 -0
  62. package/dist/components/date-time-picker/segment-utils.js +36 -0
  63. package/dist/components/date-time-picker/segment-utils.js.map +1 -0
  64. package/dist/components/date-time-picker/use-date-time-selection.d.ts +1 -0
  65. package/dist/components/date-time-picker/use-date-time-selection.js +1 -0
  66. package/dist/components/date-time-picker/use-date-time-selection.js.map +1 -1
  67. package/dist/components/date-time-picker/use-keyboard-handler.d.ts +4 -8
  68. package/dist/components/date-time-picker/use-keyboard-handler.js +9 -54
  69. package/dist/components/date-time-picker/use-keyboard-handler.js.map +1 -1
  70. package/dist/components/date-time-picker/utils.d.ts +1 -0
  71. package/dist/components/date-time-picker/utils.js +1 -0
  72. package/dist/components/date-time-picker/utils.js.map +1 -1
  73. package/dist/components/divider/RuiDivider.vue.d.ts +1 -3
  74. package/dist/components/divider/RuiDivider.vue.js +6 -3
  75. package/dist/components/divider/RuiDivider.vue.js.map +1 -1
  76. package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +10 -1138
  77. package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js +153 -160
  78. package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js.map +1 -1
  79. package/dist/components/forms/checkbox/RuiCheckbox.vue.d.ts +15 -24
  80. package/dist/components/forms/checkbox/RuiCheckbox.vue2.js +32 -32
  81. package/dist/components/forms/checkbox/RuiCheckbox.vue2.js.map +1 -1
  82. package/dist/components/forms/radio-button/radio/RuiRadio.vue.d.ts +2 -2
  83. package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js +19 -22
  84. package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js.map +1 -1
  85. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.d.ts +4 -2
  86. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js +13 -16
  87. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js.map +1 -1
  88. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.d.ts +7 -13
  89. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js +10 -9
  90. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js.map +1 -1
  91. package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +10 -785
  92. package/dist/components/forms/select/RuiMenuSelect.vue2.js +60 -56
  93. package/dist/components/forms/select/RuiMenuSelect.vue2.js.map +1 -1
  94. package/dist/components/forms/select/RuiSimpleSelect.vue.d.ts +11 -10
  95. package/dist/components/forms/select/RuiSimpleSelect.vue2.js +21 -26
  96. package/dist/components/forms/select/RuiSimpleSelect.vue2.js.map +1 -1
  97. package/dist/components/forms/slider/RuiSlider.vue.d.ts +10 -26
  98. package/dist/components/forms/slider/RuiSlider.vue2.js +45 -48
  99. package/dist/components/forms/slider/RuiSlider.vue2.js.map +1 -1
  100. package/dist/components/forms/switch/RuiSwitch.vue.d.ts +12 -20
  101. package/dist/components/forms/switch/RuiSwitch.vue2.js +22 -21
  102. package/dist/components/forms/switch/RuiSwitch.vue2.js.map +1 -1
  103. package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +5 -30
  104. package/dist/components/forms/text-area/RuiTextArea.vue2.js +47 -83
  105. package/dist/components/forms/text-area/RuiTextArea.vue2.js.map +1 -1
  106. package/dist/components/forms/text-field/RuiTextField.vue.d.ts +10 -30
  107. package/dist/components/forms/text-field/RuiTextField.vue2.js +36 -67
  108. package/dist/components/forms/text-field/RuiTextField.vue2.js.map +1 -1
  109. package/dist/components/helpers/RuiFormTextDetail.vue.d.ts +1 -5
  110. package/dist/components/helpers/RuiFormTextDetail.vue.js +5 -9
  111. package/dist/components/helpers/RuiFormTextDetail.vue.js.map +1 -1
  112. package/dist/components/icons/LazyIcon.vue.d.ts +1 -3
  113. package/dist/components/icons/RuiIcon.vue.d.ts +1 -4
  114. package/dist/components/icons/RuiIcon.vue2.js +11 -14
  115. package/dist/components/icons/RuiIcon.vue2.js.map +1 -1
  116. package/dist/components/index.d.ts +4 -4
  117. package/dist/components/loaders/RuiSkeletonBase.vue.d.ts +1 -3
  118. package/dist/components/loaders/RuiSkeletonBase.vue2.js +2 -2
  119. package/dist/components/loaders/RuiSkeletonBase.vue2.js.map +1 -1
  120. package/dist/components/loaders/RuiSkeletonLoader.vue.d.ts +1 -4
  121. package/dist/components/loaders/RuiSkeletonLoader.vue2.js +2 -2
  122. package/dist/components/loaders/RuiSkeletonLoader.vue2.js.map +1 -1
  123. package/dist/components/logos/RuiLogo.vue.d.ts +1 -7
  124. package/dist/components/logos/RuiLogo.vue.js +13 -13
  125. package/dist/components/logos/RuiLogo.vue.js.map +1 -1
  126. package/dist/components/overlays/badge/RuiBadge.vue.d.ts +5 -20
  127. package/dist/components/overlays/badge/RuiBadge.vue2.js +11 -13
  128. package/dist/components/overlays/badge/RuiBadge.vue2.js.map +1 -1
  129. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.d.ts +10 -5
  130. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js +18 -7
  131. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js.map +1 -1
  132. package/dist/components/overlays/dialog/RuiDialog.vue.d.ts +22 -27
  133. package/dist/components/overlays/dialog/RuiDialog.vue2.js +90 -67
  134. package/dist/components/overlays/dialog/RuiDialog.vue2.js.map +1 -1
  135. package/dist/components/overlays/menu/RuiMenu.vue.d.ts +24 -35
  136. package/dist/components/overlays/menu/RuiMenu.vue2.js +71 -78
  137. package/dist/components/overlays/menu/RuiMenu.vue2.js.map +1 -1
  138. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.d.ts +23 -30
  139. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js +78 -49
  140. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js.map +1 -1
  141. package/dist/components/overlays/notification/RuiNotification.vue.d.ts +12 -12
  142. package/dist/components/overlays/notification/RuiNotification.vue.js +27 -22
  143. package/dist/components/overlays/notification/RuiNotification.vue.js.map +1 -1
  144. package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +7 -18
  145. package/dist/components/overlays/tooltip/RuiTooltip.vue2.js +16 -9
  146. package/dist/components/overlays/tooltip/RuiTooltip.vue2.js.map +1 -1
  147. package/dist/components/progress/RuiProgress.vue.d.ts +8 -10
  148. package/dist/components/progress/RuiProgress.vue2.js +18 -24
  149. package/dist/components/progress/RuiProgress.vue2.js.map +1 -1
  150. package/dist/components/steppers/RuiFooterStepper.vue.d.ts +10 -11
  151. package/dist/components/steppers/RuiFooterStepper.vue2.js +33 -26
  152. package/dist/components/steppers/RuiFooterStepper.vue2.js.map +1 -1
  153. package/dist/components/steppers/RuiStepper.vue.d.ts +6 -15
  154. package/dist/components/steppers/RuiStepper.vue2.js +39 -36
  155. package/dist/components/steppers/RuiStepper.vue2.js.map +1 -1
  156. package/dist/components/steppers/RuiStepperCustomIcon.vue.d.ts +1 -3
  157. package/dist/components/steppers/RuiStepperCustomIcon.vue2.js +2 -2
  158. package/dist/components/steppers/RuiStepperCustomIcon.vue2.js.map +1 -1
  159. package/dist/components/steppers/RuiStepperIcon.vue.d.ts +1 -3
  160. package/dist/components/steppers/RuiStepperIcon.vue2.js +2 -2
  161. package/dist/components/steppers/RuiStepperIcon.vue2.js.map +1 -1
  162. package/dist/components/tables/RuiDataTable.vue.d.ts +29 -81
  163. package/dist/components/tables/RuiDataTable.vue2.js +196 -601
  164. package/dist/components/tables/RuiDataTable.vue2.js.map +1 -1
  165. package/dist/components/tables/RuiDataTable.vue3.js +24 -27
  166. package/dist/components/tables/RuiDataTable.vue3.js.map +1 -1
  167. package/dist/components/tables/RuiExpandButton.vue.d.ts +3 -6
  168. package/dist/components/tables/RuiExpandButton.vue2.js +4 -2
  169. package/dist/components/tables/RuiExpandButton.vue2.js.map +1 -1
  170. package/dist/components/tables/RuiTableHead.vue.d.ts +4 -7
  171. package/dist/components/tables/RuiTableHead.vue2.js +20 -20
  172. package/dist/components/tables/RuiTableHead.vue2.js.map +1 -1
  173. package/dist/components/tables/RuiTablePagination.vue.d.ts +10 -10
  174. package/dist/components/tables/RuiTablePagination.vue2.js +27 -19
  175. package/dist/components/tables/RuiTablePagination.vue2.js.map +1 -1
  176. package/dist/components/tabs/tab/RuiTab.vue.d.ts +3 -18
  177. package/dist/components/tabs/tab/RuiTab.vue2.js +84 -52
  178. package/dist/components/tabs/tab/RuiTab.vue2.js.map +1 -1
  179. package/dist/components/tabs/tab-item/RuiTabItem.vue.d.ts +3 -11
  180. package/dist/components/tabs/tab-item/RuiTabItem.vue2.js +3 -2
  181. package/dist/components/tabs/tab-item/RuiTabItem.vue2.js.map +1 -1
  182. package/dist/components/tabs/tab-items/RuiTabItems.vue.d.ts +2 -5
  183. package/dist/components/tabs/tab-items/RuiTabItems.vue2.js +18 -18
  184. package/dist/components/tabs/tab-items/RuiTabItems.vue2.js.map +1 -1
  185. package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +10 -14
  186. package/dist/components/tabs/tabs/RuiTabs.vue2.js +101 -94
  187. package/dist/components/tabs/tabs/RuiTabs.vue2.js.map +1 -1
  188. package/dist/components/time-picker/RuiTimePicker.vue.d.ts +1 -4
  189. package/dist/components/time-picker/RuiTimePicker.vue2.js +88 -38
  190. package/dist/components/time-picker/RuiTimePicker.vue2.js.map +1 -1
  191. package/dist/composables/breakpoint.js +8 -13
  192. package/dist/composables/breakpoint.js.map +1 -1
  193. package/dist/composables/dropdown-menu.d.ts +7 -4
  194. package/dist/composables/dropdown-menu.js +73 -50
  195. package/dist/composables/dropdown-menu.js.map +1 -1
  196. package/dist/composables/forms/auto-complete/focus.d.ts +7 -5
  197. package/dist/composables/forms/auto-complete/focus.js +28 -17
  198. package/dist/composables/forms/auto-complete/focus.js.map +1 -1
  199. package/dist/composables/forms/auto-complete/index.d.ts +0 -9
  200. package/dist/composables/forms/auto-complete/keyboard-navigation.d.ts +8 -3
  201. package/dist/composables/forms/auto-complete/keyboard-navigation.js +11 -5
  202. package/dist/composables/forms/auto-complete/keyboard-navigation.js.map +1 -1
  203. package/dist/composables/forms/auto-complete/search.d.ts +7 -0
  204. package/dist/composables/forms/auto-complete/search.js +10 -8
  205. package/dist/composables/forms/auto-complete/search.js.map +1 -1
  206. package/dist/composables/forms/auto-complete/value.d.ts +4 -0
  207. package/dist/composables/forms/auto-complete/value.js +24 -42
  208. package/dist/composables/forms/auto-complete/value.js.map +1 -1
  209. package/dist/composables/forms/use-label-with-quote.d.ts +2 -0
  210. package/dist/composables/forms/use-label-with-quote.js +14 -0
  211. package/dist/composables/forms/use-label-with-quote.js.map +1 -0
  212. package/dist/composables/forms/use-prepend-append-width.d.ts +6 -0
  213. package/dist/composables/forms/use-prepend-append-width.js +25 -0
  214. package/dist/composables/forms/use-prepend-append-width.js.map +1 -0
  215. package/dist/composables/icons.js +1 -1
  216. package/dist/composables/icons.js.map +1 -1
  217. package/dist/composables/popper.js +63 -49
  218. package/dist/composables/popper.js.map +1 -1
  219. package/dist/composables/sticky-header.d.ts +7 -5
  220. package/dist/composables/sticky-header.js +51 -41
  221. package/dist/composables/sticky-header.js.map +1 -1
  222. package/dist/composables/tables/data-table/columns.d.ts +25 -0
  223. package/dist/composables/tables/data-table/columns.js +54 -0
  224. package/dist/composables/tables/data-table/columns.js.map +1 -0
  225. package/dist/composables/tables/data-table/expansion.d.ts +17 -0
  226. package/dist/composables/tables/data-table/expansion.js +38 -0
  227. package/dist/composables/tables/data-table/expansion.js.map +1 -0
  228. package/dist/composables/tables/data-table/grouping.d.ts +29 -0
  229. package/dist/composables/tables/data-table/grouping.js +136 -0
  230. package/dist/composables/tables/data-table/grouping.js.map +1 -0
  231. package/dist/composables/tables/data-table/pagination.d.ts +33 -0
  232. package/dist/composables/tables/data-table/pagination.js +119 -0
  233. package/dist/composables/tables/data-table/pagination.js.map +1 -0
  234. package/dist/composables/tables/data-table/selection.d.ts +29 -0
  235. package/dist/composables/tables/data-table/selection.js +164 -0
  236. package/dist/composables/tables/data-table/selection.js.map +1 -0
  237. package/dist/composables/tables/data-table/sort.d.ts +32 -0
  238. package/dist/composables/tables/data-table/sort.js +136 -0
  239. package/dist/composables/tables/data-table/sort.js.map +1 -0
  240. package/dist/composables/tables/data-table/types.d.ts +14 -0
  241. package/dist/composables/tables/data-table/types.js +11 -0
  242. package/dist/composables/tables/data-table/types.js.map +1 -0
  243. package/dist/composables/theme.js +5 -21
  244. package/dist/composables/theme.js.map +1 -1
  245. package/dist/composables/timeout-manager.d.ts +4 -2
  246. package/dist/composables/timeout-manager.js +2 -1
  247. package/dist/composables/timeout-manager.js.map +1 -1
  248. package/dist/icons/icons_1.d.ts +15 -15
  249. package/dist/icons/icons_1.js +123 -123
  250. package/dist/icons/icons_1.js.map +1 -1
  251. package/dist/icons/icons_2.d.ts +46 -46
  252. package/dist/icons/icons_2.js +301 -301
  253. package/dist/icons/icons_2.js.map +1 -1
  254. package/dist/icons/icons_3.d.ts +43 -43
  255. package/dist/icons/icons_3.js +252 -252
  256. package/dist/icons/icons_3.js.map +1 -1
  257. package/dist/icons/icons_4.d.ts +72 -2
  258. package/dist/icons/icons_4.js +368 -18
  259. package/dist/icons/icons_4.js.map +1 -1
  260. package/dist/icons/index.d.ts +1 -1
  261. package/dist/icons/index.js +1 -1
  262. package/dist/icons/index.js.map +1 -1
  263. package/dist/index.js +105 -42
  264. package/dist/index.js.map +1 -1
  265. package/dist/style.css +189 -162
  266. package/dist/theme/index.js +15 -1
  267. package/dist/theme/index.js.map +1 -1
  268. package/dist/utils/assert.d.ts +1 -1
  269. package/dist/utils/assert.js.map +1 -1
  270. package/dist/utils/form-text-detail.d.ts +9 -8
  271. package/dist/utils/form-text-detail.js +1 -2
  272. package/dist/utils/form-text-detail.js.map +1 -1
  273. package/dist/utils/helpers.d.ts +4 -32
  274. package/dist/utils/helpers.js +8 -9
  275. package/dist/utils/helpers.js.map +1 -1
  276. package/dist/utils/is-equal.d.ts +1 -1
  277. package/dist/utils/is-equal.js +5 -3
  278. package/dist/utils/is-equal.js.map +1 -1
  279. package/dist/vite-plugin/index.js +4 -4
  280. package/dist/vite-plugin/index.js.map +1 -1
  281. package/dist/vite-plugin/scanner.js +3 -3
  282. package/dist/vite-plugin/scanner.js.map +1 -1
  283. package/dist/web-types.json +390 -371
  284. package/package.json +47 -44
  285. package/dist/utils/generate-id.d.ts +0 -5
  286. package/dist/utils/generate-id.js +0 -21
  287. package/dist/utils/generate-id.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RuiTextField.vue2.js","sources":["../../../../src/components/forms/text-field/RuiTextField.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ContextColorsType } from '@/consts/colors';\nimport type { RuiIcons } from '@/icons';\nimport { logicAnd, logicNot } from '@vueuse/math';\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiFormTextDetail from '@/components/helpers/RuiFormTextDetail.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport { assert } from '@/utils/assert';\nimport { getNonRootAttrs, getRootAttrs } from '@/utils/helpers';\n\nexport interface TextFieldProps {\n label?: string;\n placeholder?: string;\n disabled?: boolean;\n variant?: 'default' | 'filled' | 'outlined';\n color?: ContextColorsType;\n textColor?: ContextColorsType;\n dense?: boolean;\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n hideDetails?: boolean;\n prependIcon?: RuiIcons;\n appendIcon?: RuiIcons;\n readonly?: boolean;\n clearable?: boolean;\n required?: boolean;\n}\n\ndefineOptions({\n name: 'RuiTextField',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<string>({ required: true });\n\nconst props = withDefaults(defineProps<TextFieldProps>(), {\n label: '',\n placeholder: '',\n disabled: false,\n variant: 'default',\n color: undefined,\n textColor: undefined,\n dense: false,\n hint: '',\n as: 'input',\n errorMessages: () => [],\n successMessages: () => [],\n hideDetails: false,\n prependIcon: undefined,\n appendIcon: undefined,\n readonly: false,\n clearable: false,\n required: false,\n});\n\nconst emit = defineEmits<{\n (e: 'focus-input', event: Event): void;\n (e: 'blur', event: Event): void;\n (e: 'remove', value: unknown): void;\n (e: 'clear'): void;\n}>();\n\nconst {\n label,\n clearable,\n disabled,\n readonly,\n errorMessages,\n successMessages,\n required,\n} = toRefs(props);\n\nfunction input(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n set(modelValue, value);\n}\n\nconst labelWithQuote = computed<string>(() => {\n const labelVal = get(label);\n if (!labelVal)\n return '\"\\\\200B\"';\n\n const asterisk = get(required) ? '﹡' : '';\n return `' ${labelVal}${asterisk} '`;\n});\n\nconst prepend = ref<HTMLDivElement>();\nconst append = ref<HTMLDivElement>();\nconst innerWrapper = ref<HTMLDivElement>();\nconst inputRef = ref<HTMLInputElement>();\n\nconst prependWidth = ref('0px');\nconst appendWidth = ref('0px');\n\nconst { width } = useElementBounding(innerWrapper);\n\nuseResizeObserver(prepend, (entries) => {\n const [entry] = entries;\n assert(entry);\n const { width, left } = entry.contentRect;\n set(prependWidth, `${width + left}px`);\n});\n\nuseResizeObserver(append, (entries) => {\n const [entry] = entries;\n assert(entry);\n const { width, right } = entry.contentRect;\n set(appendWidth, `${width + right}px`);\n});\n\nconst { hasError, hasSuccess, hasMessages } = useFormTextDetail(\n errorMessages,\n successMessages,\n);\n\nconst { focused } = useFocus(inputRef);\nconst focusedDebounced = refDebounced(focused, 500);\n\nconst showClearIcon = logicAnd(\n clearable,\n modelValue,\n logicNot(disabled),\n logicNot(readonly),\n);\n\nfunction clearIconClicked() {\n set(modelValue, '');\n emit('clear');\n}\n\ndefineExpose({\n setSelectionRange: (start: number, end: number) => {\n get(inputRef)?.setSelectionRange(start, end);\n },\n focus: () => get(inputRef)?.focus(),\n element: inputRef,\n});\n</script>\n\n<template>\n <div v-bind=\"getRootAttrs($attrs)\">\n <div\n :class=\"[\n $style.wrapper,\n $style[color ?? ''],\n $style[variant ?? ''],\n {\n [$style.dense]: dense,\n [$style.disabled]: disabled,\n [$style['no-label']]: !label,\n [$style['with-error'] ?? '']: hasError,\n [$style['with-success'] ?? '']: hasSuccess && !hasError,\n [$style[`text_${textColor}`] ?? '']: textColor && !hasMessages,\n },\n ]\"\n :data-error=\"hasError ? '' : undefined\"\n >\n <div\n v-if=\"$slots.prepend || prependIcon\"\n ref=\"prepend\"\n class=\"flex items-center gap-1 shrink-0\"\n :class=\"$style.prepend\"\n >\n <slot\n v-if=\"$slots.prepend\"\n name=\"prepend\"\n />\n <div\n v-else-if=\"prependIcon\"\n :class=\"[$style.icon]\"\n >\n <RuiIcon :name=\"prependIcon\" />\n </div>\n </div>\n <div\n ref=\"innerWrapper\"\n class=\"flex flex-1 overflow-hidden\"\n @click=\"emit('focus-input', $event)\"\n >\n <input\n ref=\"inputRef\"\n :value=\"modelValue\"\n :placeholder=\"placeholder || ' '\"\n :class=\"$style.input\"\n :disabled=\"disabled\"\n :dense=\"dense\"\n :variant=\"variant\"\n :readonly=\"readonly\"\n :wrapper-width=\"width\"\n :aria-invalid=\"hasError\"\n v-bind=\"getNonRootAttrs($attrs)\"\n @input=\"input($event)\"\n @blur=\"emit('blur', $event)\"\n @remove=\"emit('remove', $event)\"\n />\n <label :class=\"$style.label\">\n <span>\n {{ label }}\n <span\n v-if=\"required\"\n class=\"text-rui-error\"\n >\n ﹡\n </span>\n </span>\n </label>\n <fieldset\n v-if=\"variant === 'outlined'\"\n :class=\"$style.fieldset\"\n >\n <legend :class=\"{ [$style.show]: label }\" />\n </fieldset>\n </div>\n <div\n v-if=\"$slots.append || appendIcon || showClearIcon\"\n ref=\"append\"\n class=\"flex items-center gap-1 shrink-0\"\n :class=\"$style.append\"\n >\n <RuiButton\n v-if=\"showClearIcon\"\n :class=\"{ hidden: !focusedDebounced }\"\n variant=\"text\"\n type=\"button\"\n icon\n class=\"!p-2 clear-btn\"\n color=\"error\"\n tabindex=\"-1\"\n @click.stop=\"clearIconClicked()\"\n >\n <RuiIcon\n name=\"lu-x\"\n size=\"20\"\n />\n </RuiButton>\n <slot\n v-if=\"$slots.append\"\n name=\"append\"\n />\n <div\n v-else-if=\"appendIcon\"\n :class=\"[$style.icon]\"\n >\n <RuiIcon :name=\"appendIcon\" />\n </div>\n </div>\n </div>\n <RuiFormTextDetail\n v-if=\"!hideDetails\"\n class=\"pt-1 px-3\"\n :error-messages=\"errorMessages\"\n :success-messages=\"successMessages\"\n :hint=\"hint\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" module>\n@use '@/styles/colors.scss' as c;\n\n:global(.dark) {\n .wrapper {\n @apply bg-transparent;\n\n .label {\n @apply border-white/[0.42];\n\n &:after {\n @apply border-white;\n }\n }\n\n .icon {\n @apply text-white/[0.56];\n }\n\n &:hover {\n .label {\n @apply border-white;\n }\n }\n\n &.filled {\n .input {\n &:focus {\n + .label {\n @apply bg-white/[0.13];\n }\n }\n }\n\n .label {\n @apply bg-white/[0.09];\n }\n }\n\n &.outlined {\n .fieldset {\n @apply border-white/[0.23];\n }\n\n &:not(.disabled) {\n .input {\n &:hover,\n &:focus {\n ~ .fieldset {\n @apply border-white;\n }\n }\n }\n }\n }\n }\n}\n\n.wrapper {\n @apply relative w-full flex items-center pt-3 rounded bg-white;\n\n .input {\n @apply leading-6 text-rui-text w-full bg-transparent py-1.5 pr-3 outline-0 outline-none transition-all placeholder:opacity-0 focus:placeholder:opacity-100;\n\n &:focus {\n @apply outline-0;\n + .label {\n @apply after:scale-x-100;\n }\n }\n\n &:not(:placeholder-shown),\n &:autofill,\n &:-webkit-autofill,\n &[data-has-value='true'],\n &:focus {\n + .label {\n @apply text-xs leading-tight;\n padding-left: var(--x-padding);\n padding-right: var(--x-padding);\n }\n }\n\n &:disabled {\n @apply border-dotted;\n\n &,\n + .label {\n @apply text-rui-text-disabled;\n }\n\n ~ .fieldset {\n @apply border-dotted;\n }\n }\n }\n\n .label {\n @apply left-0 text-base leading-[3.75] text-rui-text-secondary pointer-events-none absolute top-0 flex h-full w-full select-none transition-all duration-75 border-b border-black/[0.42];\n\n --x-padding: 0px;\n --prepend-width: v-bind(prependWidth);\n --append-width: v-bind(appendWidth);\n\n padding-left: calc(var(--x-padding) + var(--prepend-width, 0px));\n padding-right: calc(var(--x-padding) + var(--append-width, 0px));\n\n span {\n @apply truncate transition-all duration-75;\n content: v-bind(labelWithQuote);\n }\n\n &:after {\n content: '';\n @apply absolute bottom-0 left-0 block w-full scale-x-0 border-b-2 mb-[-1px] transition-transform duration-300 border-black;\n }\n }\n\n &:hover {\n .label {\n @apply border-black;\n }\n }\n\n .icon {\n @apply text-black/[0.54];\n }\n\n .prepend {\n &:not(:empty) {\n @apply pr-2;\n }\n }\n\n .append {\n &:not(:empty) {\n @apply pl-2;\n }\n }\n\n @each $color in c.$context-colors {\n &.#{$color} {\n .input {\n &:focus {\n + .label {\n @apply text-rui-#{$color};\n }\n }\n }\n\n .label {\n @apply after:border-rui-#{$color};\n }\n\n &.outlined {\n &:not(.disabled) {\n .input {\n &:focus {\n ~ .fieldset {\n @apply border-rui-#{$color};\n }\n }\n }\n }\n }\n }\n\n &.text_#{$color},\n &.with-#{$color} {\n .prepend,\n .append,\n .input {\n @apply text-rui-#{$color};\n }\n\n &:not(.disabled) .prepend svg,\n &:not(.disabled) .append svg {\n @apply text-rui-#{$color};\n }\n }\n }\n\n @each $color in 'error', 'success' {\n &.with-#{$color} {\n .input {\n @apply border-rui-#{$color} #{!important};\n }\n\n .label {\n @apply text-rui-#{$color} after:border-rui-#{$color} #{!important};\n }\n\n .fieldset {\n @apply border-rui-#{$color} #{!important};\n }\n }\n }\n\n &.dense {\n .input {\n @apply py-1;\n }\n\n .label {\n @apply leading-[3.5];\n }\n }\n\n &.filled,\n &.outlined {\n @apply pt-0;\n\n .prepend {\n &:not(:empty) {\n @apply pl-3 pr-0;\n }\n }\n\n .append {\n &:not(:empty) {\n @apply pr-3 pl-0;\n }\n }\n\n .input {\n @apply px-3;\n }\n\n .label {\n @apply leading-[3.5];\n --x-padding: 0.75rem;\n }\n }\n\n &.filled {\n .input {\n @apply py-4;\n\n &:focus {\n + .label {\n @apply bg-black/[0.09];\n }\n }\n\n &:not(:placeholder-shown),\n &:autofill,\n &:-webkit-autofill,\n &[data-has-value='true'],\n &:focus {\n + .label {\n @apply leading-[1.5] pl-4;\n\n padding-left: calc(var(--x-padding));\n padding-right: calc(var(--x-padding));\n }\n }\n }\n\n .label {\n @apply rounded-t bg-black/[0.06];\n }\n\n &.dense {\n .input {\n @apply pt-5 pb-1;\n }\n\n .label {\n @apply leading-[3];\n }\n\n &:not(:placeholder-shown),\n &:autofill,\n &:-webkit-autofill,\n &[data-has-value='true'],\n &:focus {\n + .label {\n @apply leading-[2.25];\n }\n }\n }\n\n &.no-label {\n .input {\n @apply py-4;\n }\n\n &.dense {\n .input {\n @apply py-3;\n }\n }\n }\n }\n\n &.outlined {\n .input {\n @apply py-4 border-b-0;\n\n &:not(:placeholder-shown),\n &:autofill,\n &:-webkit-autofill,\n &[data-has-value='true'],\n &:focus {\n @apply border-t-transparent;\n\n + .label {\n @apply leading-[0] pl-4 -mt-3;\n\n span {\n @apply pt-3;\n }\n }\n\n ~ .fieldset {\n legend {\n &.show {\n @apply px-2;\n }\n &:after {\n content: v-bind(labelWithQuote);\n }\n }\n }\n }\n }\n\n .fieldset {\n @apply absolute w-full min-w-0 h-[calc(100%+0.5rem)] top-0 left-0 pointer-events-none rounded border border-black/[0.23] px-2 transition-all -mt-2;\n\n legend {\n @apply opacity-0 text-xs max-w-full truncate;\n\n &:before {\n content: ' ';\n }\n\n &:after {\n @apply truncate max-w-full leading-[0];\n content: '\\200B';\n }\n }\n }\n\n &:not(.disabled) {\n .input {\n &:hover,\n &:focus {\n ~ .fieldset {\n @apply border border-black;\n }\n }\n\n &:focus {\n ~ .fieldset {\n @apply border-2;\n }\n }\n }\n }\n\n .label {\n @apply border-0 border-transparent;\n\n &:after {\n content: none !important;\n }\n }\n\n &.dense {\n .input {\n @apply py-2;\n }\n\n .label {\n @apply leading-[2.5];\n }\n }\n }\n}\n</style>\n"],"names":["_useModel","width","_createElementBlock","_normalizeProps","_guardReactiveProps","_unref","$attrs","_createElementVNode","_normalizeClass","$style","$slots","_renderSlot","_createVNode","_mergeProps","_createTextVNode","_toDisplayString","_createBlock","RuiFormTextDetail"],"mappings":"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"}
1
+ {"version":3,"file":"RuiTextField.vue2.js","sources":["../../../../src/components/forms/text-field/RuiTextField.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ContextColorsType } from '@/consts/colors';\nimport type { RuiIcons } from '@/icons';\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiFormTextDetail from '@/components/helpers/RuiFormTextDetail.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport { useLabelWithQuote } from '@/composables/forms/use-label-with-quote';\nimport { usePrependAppendWidth } from '@/composables/forms/use-prepend-append-width';\nimport { useFormTextDetail } from '@/utils/form-text-detail';\nimport { getNonRootAttrs, getRootAttrs } from '@/utils/helpers';\n\nexport interface TextFieldProps {\n label?: string;\n placeholder?: string;\n disabled?: boolean;\n variant?: 'default' | 'filled' | 'outlined';\n color?: ContextColorsType;\n textColor?: ContextColorsType;\n dense?: boolean;\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n hideDetails?: boolean;\n prependIcon?: RuiIcons;\n appendIcon?: RuiIcons;\n readonly?: boolean;\n clearable?: boolean;\n required?: boolean;\n}\n\ndefineOptions({\n name: 'RuiTextField',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<string>({ required: true });\n\nconst {\n label = '',\n placeholder = '',\n disabled = false,\n variant = 'default',\n color = undefined,\n textColor = undefined,\n dense = false,\n hint = '',\n errorMessages = [],\n successMessages = [],\n hideDetails = false,\n prependIcon = undefined,\n appendIcon = undefined,\n readonly = false,\n clearable = false,\n required = false,\n} = defineProps<TextFieldProps>();\n\nconst emit = defineEmits<{\n 'focus-input': [event: Event];\n 'blur': [event: Event];\n 'remove': [value: unknown];\n 'clear': [];\n}>();\n\ndefineSlots<{\n prepend?: () => any;\n append?: () => any;\n}>();\n\nconst prepend = useTemplateRef<HTMLDivElement>('prepend');\nconst append = useTemplateRef<HTMLDivElement>('append');\nconst innerWrapper = useTemplateRef<HTMLDivElement>('innerWrapper');\nconst inputRef = useTemplateRef<HTMLInputElement>('inputRef');\n\nconst { prependWidth, appendWidth } = usePrependAppendWidth(prepend, append);\n\nconst { width } = useElementBounding(innerWrapper);\n\nconst { hasError, hasSuccess, hasMessages } = useFormTextDetail(\n toRef(() => errorMessages),\n toRef(() => successMessages),\n);\n\nconst { focused } = useFocus(inputRef);\nconst focusedDebounced = refDebounced(focused, 500);\n\nconst showClearIcon = computed<boolean>(() => clearable && !!get(modelValue) && !disabled && !readonly);\n\nconst labelWithQuote = useLabelWithQuote(\n () => label,\n () => required,\n);\n\nfunction input(event: Event): void {\n const value = (event.target as HTMLInputElement).value;\n set(modelValue, value);\n}\n\nfunction clearIconClicked(): void {\n set(modelValue, '');\n emit('clear');\n}\n\ndefineExpose({\n setSelectionRange: (start: number, end: number) => {\n get(inputRef)?.setSelectionRange(start, end);\n },\n focus: () => get(inputRef)?.focus(),\n element: inputRef,\n});\n</script>\n\n<template>\n <div v-bind=\"getRootAttrs($attrs)\">\n <div\n :class=\"[\n $style.wrapper,\n $style[color ?? ''],\n $style[variant ?? ''],\n {\n [$style.dense]: dense,\n [$style.disabled]: disabled,\n [$style['no-label']]: !label,\n [$style['with-error'] ?? '']: hasError,\n [$style['with-success'] ?? '']: hasSuccess && !hasError,\n [$style[`text_${textColor}`] ?? '']: textColor && !hasMessages,\n },\n ]\"\n :data-error=\"hasError ? '' : undefined\"\n >\n <div\n v-if=\"$slots.prepend || prependIcon\"\n ref=\"prepend\"\n class=\"flex items-center gap-1 shrink-0\"\n :class=\"$style.prepend\"\n >\n <slot\n v-if=\"$slots.prepend\"\n name=\"prepend\"\n />\n <div\n v-else-if=\"prependIcon\"\n :class=\"[$style.icon]\"\n >\n <RuiIcon :name=\"prependIcon\" />\n </div>\n </div>\n <div\n ref=\"innerWrapper\"\n class=\"flex flex-1 overflow-hidden\"\n @click=\"emit('focus-input', $event)\"\n >\n <input\n ref=\"inputRef\"\n :value=\"modelValue\"\n :placeholder=\"placeholder || ' '\"\n :class=\"$style.input\"\n :disabled=\"disabled\"\n :dense=\"dense\"\n :variant=\"variant\"\n :readonly=\"readonly\"\n :wrapper-width=\"width\"\n :aria-invalid=\"hasError\"\n v-bind=\"getNonRootAttrs($attrs)\"\n @input=\"input($event)\"\n @blur=\"emit('blur', $event)\"\n @remove=\"emit('remove', $event)\"\n />\n <label :class=\"$style.label\">\n <span>\n {{ label }}\n <span\n v-if=\"required\"\n class=\"text-rui-error\"\n >\n ﹡\n </span>\n </span>\n </label>\n <fieldset\n v-if=\"variant === 'outlined'\"\n :class=\"$style.fieldset\"\n >\n <legend :class=\"{ [$style.show]: label }\" />\n </fieldset>\n </div>\n <div\n v-if=\"$slots.append || appendIcon || showClearIcon\"\n ref=\"append\"\n class=\"flex items-center gap-1 shrink-0\"\n :class=\"$style.append\"\n >\n <RuiButton\n v-if=\"showClearIcon\"\n :class=\"{ hidden: !focusedDebounced }\"\n variant=\"text\"\n type=\"button\"\n icon\n class=\"!p-2 clear-btn\"\n color=\"error\"\n tabindex=\"-1\"\n @click.stop=\"clearIconClicked()\"\n >\n <RuiIcon\n name=\"lu-x\"\n size=\"20\"\n />\n </RuiButton>\n <slot\n v-if=\"$slots.append\"\n name=\"append\"\n />\n <div\n v-else-if=\"appendIcon\"\n :class=\"[$style.icon]\"\n >\n <RuiIcon :name=\"appendIcon\" />\n </div>\n </div>\n </div>\n <RuiFormTextDetail\n v-if=\"!hideDetails\"\n class=\"pt-1 px-3\"\n :error-messages=\"errorMessages\"\n :success-messages=\"successMessages\"\n :hint=\"hint\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" module>\n@use '@/styles/colors.scss' as c;\n\n:global(.dark) {\n .wrapper {\n @apply bg-transparent;\n\n .label {\n @apply border-white/[0.42];\n\n &:after {\n @apply border-white;\n }\n }\n\n .icon {\n @apply text-white/[0.56];\n }\n\n &:hover {\n .label {\n @apply border-white;\n }\n }\n\n &.filled {\n .input {\n &:focus {\n + .label {\n @apply bg-white/[0.13];\n }\n }\n }\n\n .label {\n @apply bg-white/[0.09];\n }\n }\n\n &.outlined {\n .fieldset {\n @apply border-white/[0.23];\n }\n\n &:not(.disabled) {\n .input {\n &:hover,\n &:focus {\n ~ .fieldset {\n @apply border-white;\n }\n }\n }\n }\n }\n }\n}\n\n.wrapper {\n @apply relative w-full flex items-center pt-3 rounded bg-white;\n\n .input {\n @apply leading-6 text-rui-text w-full bg-transparent py-1.5 pr-3 outline-0 outline-none transition-all placeholder:opacity-0 focus:placeholder:opacity-100;\n\n &:focus {\n @apply outline-0;\n + .label {\n @apply after:scale-x-100;\n }\n }\n\n &:not(:placeholder-shown),\n &:autofill,\n &:-webkit-autofill,\n &[data-has-value='true'],\n &:focus {\n + .label {\n @apply text-xs leading-tight;\n padding-left: var(--x-padding);\n padding-right: var(--x-padding);\n }\n }\n\n &:disabled {\n @apply border-dotted;\n\n &,\n + .label {\n @apply text-rui-text-disabled;\n }\n\n ~ .fieldset {\n @apply border-dotted;\n }\n }\n }\n\n .label {\n @apply left-0 text-base leading-[3.75] text-rui-text-secondary pointer-events-none absolute top-0 flex h-full w-full select-none transition-all duration-75 border-b border-black/[0.42];\n\n --x-padding: 0px;\n --prepend-width: v-bind(prependWidth);\n --append-width: v-bind(appendWidth);\n\n padding-left: calc(var(--x-padding) + var(--prepend-width, 0px));\n padding-right: calc(var(--x-padding) + var(--append-width, 0px));\n\n span {\n @apply truncate transition-all duration-75;\n content: v-bind(labelWithQuote);\n }\n\n &:after {\n content: '';\n @apply absolute bottom-0 left-0 block w-full scale-x-0 border-b-2 mb-[-1px] transition-transform duration-300 border-black;\n }\n }\n\n &:hover {\n .label {\n @apply border-black;\n }\n }\n\n .icon {\n @apply text-black/[0.54];\n }\n\n .prepend {\n &:not(:empty) {\n @apply pr-2;\n }\n }\n\n .append {\n &:not(:empty) {\n @apply pl-2;\n }\n }\n\n @each $color in c.$context-colors {\n &.#{$color} {\n .input {\n &:focus {\n + .label {\n @apply text-rui-#{$color};\n }\n }\n }\n\n .label {\n @apply after:border-rui-#{$color};\n }\n\n &.outlined {\n &:not(.disabled) {\n .input {\n &:focus {\n ~ .fieldset {\n @apply border-rui-#{$color};\n }\n }\n }\n }\n }\n }\n\n &.text_#{$color},\n &.with-#{$color} {\n .prepend,\n .append,\n .input {\n @apply text-rui-#{$color};\n }\n\n &:not(.disabled) .prepend svg,\n &:not(.disabled) .append svg {\n @apply text-rui-#{$color};\n }\n }\n }\n\n @each $color in 'error', 'success' {\n &.with-#{$color} {\n .input {\n @apply border-rui-#{$color} #{!important};\n }\n\n .label {\n @apply text-rui-#{$color} after:border-rui-#{$color} #{!important};\n }\n\n .fieldset {\n @apply border-rui-#{$color} #{!important};\n }\n }\n }\n\n &.dense {\n .input {\n @apply py-1;\n }\n\n .label {\n @apply leading-[3.5];\n }\n }\n\n &.filled,\n &.outlined {\n @apply pt-0;\n\n .prepend {\n &:not(:empty) {\n @apply pl-3 pr-0;\n }\n }\n\n .append {\n &:not(:empty) {\n @apply pr-3 pl-0;\n }\n }\n\n .input {\n @apply px-3;\n }\n\n .label {\n @apply leading-[3.5];\n --x-padding: 0.75rem;\n }\n }\n\n &.filled {\n .input {\n @apply py-4;\n\n &:focus {\n + .label {\n @apply bg-black/[0.09];\n }\n }\n\n &:not(:placeholder-shown),\n &:autofill,\n &:-webkit-autofill,\n &[data-has-value='true'],\n &:focus {\n + .label {\n @apply leading-[1.5] pl-4;\n\n padding-left: calc(var(--x-padding));\n padding-right: calc(var(--x-padding));\n }\n }\n }\n\n .label {\n @apply rounded-t bg-black/[0.06];\n }\n\n &.dense {\n .input {\n @apply pt-5 pb-1;\n }\n\n .label {\n @apply leading-[3];\n }\n\n &:not(:placeholder-shown),\n &:autofill,\n &:-webkit-autofill,\n &[data-has-value='true'],\n &:focus {\n + .label {\n @apply leading-[2.25];\n }\n }\n }\n\n &.no-label {\n .input {\n @apply py-4;\n }\n\n &.dense {\n .input {\n @apply py-3;\n }\n }\n }\n }\n\n &.outlined {\n .input {\n @apply py-4 border-b-0;\n\n &:not(:placeholder-shown),\n &:autofill,\n &:-webkit-autofill,\n &[data-has-value='true'],\n &:focus {\n @apply border-t-transparent;\n\n + .label {\n @apply leading-[0] pl-4 -mt-3;\n\n span {\n @apply pt-3;\n }\n }\n\n ~ .fieldset {\n legend {\n &.show {\n @apply px-2;\n }\n &:after {\n content: v-bind(labelWithQuote);\n }\n }\n }\n }\n }\n\n .fieldset {\n @apply absolute w-full min-w-0 h-[calc(100%+0.5rem)] top-0 left-0 pointer-events-none rounded border border-black/[0.23] px-2 transition-all -mt-2;\n\n legend {\n @apply opacity-0 text-xs max-w-full truncate;\n\n &:before {\n content: ' ';\n }\n\n &:after {\n @apply truncate max-w-full leading-[0];\n content: '\\200B';\n }\n }\n }\n\n &:not(.disabled) {\n .input {\n &:hover,\n &:focus {\n ~ .fieldset {\n @apply border border-black;\n }\n }\n\n &:focus {\n ~ .fieldset {\n @apply border-2;\n }\n }\n }\n }\n\n .label {\n @apply border-0 border-transparent;\n\n &:after {\n content: none !important;\n }\n }\n\n &.dense {\n .input {\n @apply py-2;\n }\n\n .label {\n @apply leading-[2.5];\n }\n }\n }\n}\n</style>\n"],"names":["_useModel","_createElementBlock","_normalizeProps","_guardReactiveProps","_unref","$attrs","_createElementVNode","_normalizeClass","$style","$slots","_renderSlot","_createVNode","_mergeProps","_createTextVNode","_toDisplayString","_createBlock","RuiFormTextDetail"],"mappings":"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"}
@@ -3,10 +3,6 @@ type __VLS_Props = {
3
3
  successMessages?: string | string[];
4
4
  hint?: string;
5
5
  };
6
- declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
7
- errorMessages: string | string[];
8
- successMessages: string | string[];
9
- hint: string;
10
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
7
  declare const _default: typeof __VLS_export;
12
8
  export default _default;
@@ -1,4 +1,4 @@
1
- import { defineComponent, toRefs, createBlock, openBlock, TransitionGroup, withCtx, createElementBlock, createCommentVNode, unref, toDisplayString } from "vue";
1
+ import { defineComponent, toRef, openBlock, createBlock, TransitionGroup, withCtx, unref, createElementBlock, toDisplayString, createCommentVNode } from "vue";
2
2
  import { useFormTextDetail } from "../../utils/form-text-detail.js";
3
3
  const _hoisted_1 = {
4
4
  key: "error",
@@ -20,14 +20,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
20
20
  hint: { default: "" }
21
21
  },
22
22
  setup(__props) {
23
- const props = __props;
24
- const { errorMessages, successMessages } = toRefs(props);
25
- const {
26
- formattedErrorMessages,
27
- formattedSuccessMessages,
28
- hasError,
29
- hasSuccess
30
- } = useFormTextDetail(errorMessages, successMessages);
23
+ const { formattedErrorMessages, formattedSuccessMessages, hasError, hasSuccess } = useFormTextDetail(
24
+ toRef(() => __props.errorMessages),
25
+ toRef(() => __props.successMessages)
26
+ );
31
27
  return (_ctx, _cache) => {
32
28
  return openBlock(), createBlock(TransitionGroup, {
33
29
  tag: "div",
@@ -1 +1 @@
1
- {"version":3,"file":"RuiFormTextDetail.vue.js","sources":["../../../src/components/helpers/RuiFormTextDetail.vue"],"sourcesContent":["<script setup lang=\"ts\">\nconst props = withDefaults(\n defineProps<{\n errorMessages?: string | string[];\n successMessages?: string | string[];\n hint?: string;\n }>(),\n {\n errorMessages: () => [],\n successMessages: () => [],\n hint: '',\n },\n);\n\nconst { errorMessages, successMessages } = toRefs(props);\n\nconst {\n formattedErrorMessages,\n formattedSuccessMessages,\n hasError,\n hasSuccess,\n} = useFormTextDetail(errorMessages, successMessages);\n</script>\n\n<template>\n <TransitionGroup\n tag=\"div\"\n class=\"details min-h-[1.5rem]\"\n enter-from-class=\"opacity-0 -translate-y-2 h-0\"\n enter-active-class=\"transform transition\"\n enter-to-class=\"opacity-100 translate-y-0\"\n leave-from-class=\"opacity-100 -translate-y-2\"\n leave-active-class=\"transform transition\"\n leave-to-class=\"opacity-0 -translate-y-2 h-0\"\n appear\n >\n <div\n v-if=\"hasError\"\n key=\"error\"\n class=\"text-rui-error text-caption\"\n >\n {{ formattedErrorMessages[0] }}\n </div>\n <div\n v-else-if=\"hasSuccess\"\n key=\"success\"\n class=\"text-rui-success text-caption\"\n >\n {{ formattedSuccessMessages[0] }}\n </div>\n <div\n v-else-if=\"hint\"\n key=\"hint\"\n class=\"text-rui-text-secondary text-caption\"\n >\n {{ hint }}\n </div>\n </TransitionGroup>\n</template>\n"],"names":["_createBlock","_TransitionGroup","_unref","_createElementBlock","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AACA,UAAM,QAAQ;AAad,UAAM,EAAE,eAAe,oBAAoB,OAAO,KAAK;AAEvD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,IACE,kBAAkB,eAAe,eAAe;;0BAIlDA,YAgCkBC,iBAAA;AAAA,QA/BhB,KAAI;AAAA,QACJ,OAAM;AAAA,QACN,oBAAiB;AAAA,QACjB,sBAAmB;AAAA,QACnB,kBAAe;AAAA,QACf,oBAAiB;AAAA,QACjB,sBAAmB;AAAA,QACnB,kBAAe;AAAA,QACf,QAAA;AAAA,MAAA;yBAEA,MAMM;AAAA,UALEC,MAAA,QAAA,kBADRC,mBAMM,OANN,YAMMC,gBADDF,MAAA,sBAAA,EAAsB,CAAA,CAAA,GAAA,CAAA,KAGdA,MAAA,UAAA,kBADbC,mBAMM,OANN,YAMMC,gBADDF,MAAA,wBAAA,EAAwB,CAAA,CAAA,GAAA,CAAA,KAGhB,QAAA,qBADbC,mBAMM,OANN,YAMMC,gBADD,QAAA,IAAI,GAAA,CAAA;;;;;;;"}
1
+ {"version":3,"file":"RuiFormTextDetail.vue.js","sources":["../../../src/components/helpers/RuiFormTextDetail.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useFormTextDetail } from '@/utils/form-text-detail';\n\nconst {\n errorMessages = [],\n successMessages = [],\n hint = '',\n} = defineProps<{\n errorMessages?: string | string[];\n successMessages?: string | string[];\n hint?: string;\n}>();\n\nconst { formattedErrorMessages, formattedSuccessMessages, hasError, hasSuccess } =\n useFormTextDetail(\n toRef(() => errorMessages),\n toRef(() => successMessages),\n );\n</script>\n\n<template>\n <TransitionGroup\n tag=\"div\"\n class=\"details min-h-[1.5rem]\"\n enter-from-class=\"opacity-0 -translate-y-2 h-0\"\n enter-active-class=\"transform transition\"\n enter-to-class=\"opacity-100 translate-y-0\"\n leave-from-class=\"opacity-100 -translate-y-2\"\n leave-active-class=\"transform transition\"\n leave-to-class=\"opacity-0 -translate-y-2 h-0\"\n appear\n >\n <div\n v-if=\"hasError\"\n key=\"error\"\n class=\"text-rui-error text-caption\"\n >\n {{ formattedErrorMessages[0] }}\n </div>\n <div\n v-else-if=\"hasSuccess\"\n key=\"success\"\n class=\"text-rui-success text-caption\"\n >\n {{ formattedSuccessMessages[0] }}\n </div>\n <div\n v-else-if=\"hint\"\n key=\"hint\"\n class=\"text-rui-text-secondary text-caption\"\n >\n {{ hint }}\n </div>\n </TransitionGroup>\n</template>\n"],"names":["_createBlock","_TransitionGroup","_unref","_createElementBlock","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAaA,UAAM,EAAE,wBAAwB,0BAA0B,UAAU,eAClE;AAAA,MACE,MAAM,MAAM,qBAAa;AAAA,MACzB,MAAM,MAAM,uBAAe;AAAA,IAAA;;0BAK7BA,YAgCkBC,iBAAA;AAAA,QA/BhB,KAAI;AAAA,QACJ,OAAM;AAAA,QACN,oBAAiB;AAAA,QACjB,sBAAmB;AAAA,QACnB,kBAAe;AAAA,QACf,oBAAiB;AAAA,QACjB,sBAAmB;AAAA,QACnB,kBAAe;AAAA,QACf,QAAA;AAAA,MAAA;yBAEA,MAMM;AAAA,UALEC,MAAA,QAAA,kBADRC,mBAMM,OANN,YAMMC,gBADDF,MAAA,sBAAA,EAAsB,CAAA,CAAA,GAAA,CAAA,KAGdA,MAAA,UAAA,kBADbC,mBAMM,OANN,YAMMC,gBADDF,MAAA,wBAAA,EAAwB,CAAA,CAAA,GAAA,CAAA,KAGhB,QAAA,qBADbC,mBAMM,OANN,YAMMC,gBADD,QAAA,IAAI,GAAA,CAAA;;;;;;;"}
@@ -3,8 +3,6 @@ export interface LazyIconProps {
3
3
  name: RuiIcons;
4
4
  size?: number | string;
5
5
  }
6
- declare const __VLS_export: import("vue").DefineComponent<LazyIconProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LazyIconProps> & Readonly<{}>, {
7
- size: number | string;
8
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const __VLS_export: import("vue").DefineComponent<LazyIconProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<LazyIconProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
7
  declare const _default: typeof __VLS_export;
10
8
  export default _default;
@@ -5,9 +5,6 @@ export interface Props {
5
5
  size?: number | string;
6
6
  color?: ContextColorsType;
7
7
  }
8
- declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
9
- size: number | string;
10
- color: ContextColorsType;
11
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
8
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
9
  declare const _default: typeof __VLS_export;
13
10
  export default _default;
@@ -1,10 +1,6 @@
1
- import { defineComponent, computed, createElementBlock, openBlock, normalizeClass, Fragment, renderList, unref, createBlock, resolveDynamicComponent, mergeProps } from "vue";
2
- import { isRuiIcon } from "../../icons/index.js";
3
- import "@vueuse/core";
4
- import "scule";
5
- import "@vueuse/shared";
1
+ import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, Fragment, renderList, unref, createBlock, resolveDynamicComponent, mergeProps } from "vue";
6
2
  import { useIcons } from "../../composables/icons.js";
7
- import "../../composables/theme.js";
3
+ import { isRuiIcon } from "../../icons/index.js";
8
4
  const _hoisted_1 = ["height", "width"];
9
5
  const _sfc_main = /* @__PURE__ */ defineComponent({
10
6
  ...{
@@ -14,25 +10,26 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
14
10
  props: {
15
11
  name: {},
16
12
  size: { default: 24 },
17
- color: { default: void 0 }
13
+ color: {}
18
14
  },
19
15
  setup(__props) {
20
- const props = __props;
21
16
  const { registeredIcons } = useIcons();
22
- const isFill = computed(() => props.name.endsWith("-fill"));
17
+ const isFill = computed(() => __props.name.endsWith("-fill"));
23
18
  const components = computed(() => {
24
- const name = props.name;
25
- if (!isRuiIcon(name)) {
26
- console.warn(`icon ${name} must be a valid RuiIcon`);
19
+ if (!isRuiIcon(__props.name)) {
20
+ console.warn(`icon ${__props.name} must be a valid RuiIcon`);
27
21
  }
28
- const found = registeredIcons[name];
22
+ const found = registeredIcons[__props.name];
29
23
  if (!found) {
30
- console.error(`Icons "${name}" not found. Make sure that you have register the icon when installing the RuiPlugin`);
24
+ console.error(
25
+ `Icons "${__props.name}" not found. Make sure that you have register the icon when installing the RuiPlugin`
26
+ );
31
27
  }
32
28
  return found;
33
29
  });
34
30
  return (_ctx, _cache) => {
35
31
  return openBlock(), createElementBlock("svg", {
32
+ "aria-hidden": "true",
36
33
  class: normalizeClass([_ctx.$style["rui-icon"], _ctx.$style[__props.color ?? ""]]),
37
34
  height: __props.size,
38
35
  width: __props.size,
@@ -1 +1 @@
1
- {"version":3,"file":"RuiIcon.vue2.js","sources":["../../../src/components/icons/RuiIcon.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ContextColorsType } from '@/consts/colors';\nimport { isRuiIcon, type RuiIcons } from '@/icons';\n\nexport interface Props {\n name: RuiIcons;\n size?: number | string;\n color?: ContextColorsType;\n}\n\ndefineOptions({\n name: 'RuiIcon',\n});\n\nconst props = withDefaults(defineProps<Props>(), {\n size: 24,\n color: undefined,\n});\n\nconst { registeredIcons } = useIcons();\n\nconst isFill = computed(() => props.name.endsWith('-fill'));\n\nconst components: ComputedRef<[string, Record<string, string>][] | undefined> = computed(() => {\n const name = props.name;\n if (!isRuiIcon(name)) {\n console.warn(`icon ${name} must be a valid RuiIcon`);\n }\n const found = registeredIcons[name];\n\n if (!found) {\n console.error(`Icons \"${name}\" not found. Make sure that you have register the icon when installing the RuiPlugin`);\n }\n return found;\n});\n</script>\n\n<template>\n <svg\n :class=\"[$style['rui-icon'], $style[color ?? '']]\"\n :height=\"size\"\n :width=\"size\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <component\n :is=\"component[0]\"\n v-for=\"(component, index) in components\"\n :key=\"index\"\n v-bind=\"component[1]\"\n :fill=\"(!isFill) ? 'none' : 'currentColor'\"\n :stroke=\"(!isFill) ? 'currentColor' : 'none'\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n />\n </svg>\n</template>\n\n<style lang=\"scss\" module>\n@use '@/styles/colors.scss' as c;\n\n.rui-icon {\n @each $color in c.$context-colors {\n &.#{$color} {\n @apply text-rui-#{$color};\n }\n }\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","$style","_openBlock","_Fragment","_renderList","_unref","_createBlock","_resolveDynamicComponent","_mergeProps"],"mappings":";;;;;;;;;;;;;;;;;;;AAcA,UAAM,QAAQ;AAKd,UAAM,EAAE,gBAAA,IAAoB,SAAA;AAE5B,UAAM,SAAS,SAAS,MAAM,MAAM,KAAK,SAAS,OAAO,CAAC;AAE1D,UAAM,aAA0E,SAAS,MAAM;AAC7F,YAAM,OAAO,MAAM;AACnB,UAAI,CAAC,UAAU,IAAI,GAAG;AACpB,gBAAQ,KAAK,QAAQ,IAAI,0BAA0B;AAAA,MACrD;AACA,YAAM,QAAQ,gBAAgB,IAAI;AAElC,UAAI,CAAC,OAAO;AACV,gBAAQ,MAAM,UAAU,IAAI,sFAAsF;AAAA,MACpH;AACA,aAAO;AAAA,IACT,CAAC;;0BAICA,mBAoBM,OAAA;AAAA,QAnBH,OAAKC,eAAA,CAAGC,KAAAA,OAAM,UAAA,GAAcA,KAAAA,OAAO,QAAA,SAAK,EAAA,CAAA,CAAA;AAAA,QACxC,QAAQ,QAAA;AAAA,QACR,OAAO,QAAA;AAAA,QACR,SAAQ;AAAA,QACR,OAAM;AAAA,MAAA;SAENC,UAAA,IAAA,GAAAH,mBAYEI,UAAA,MAAAC,WAV6BC,MAAA,UAAA,GAAU,CAA/B,WAAW,UAAK;8BAF1BC,YAYEC,wBAXK,UAAS,CAAA,CAAA,GADhBC,WAYE,EATC,KAAK,MAAA,GAAK,EAAA,SAAA,QACH,UAAS,CAAA,GAAA;AAAA,YAChB,OAAQH,MAAA,MAAA,IAAM,SAAA;AAAA,YACd,SAAUA,MAAA,MAAA,IAAM,iBAAA;AAAA,YACjB,gBAAa;AAAA,YACb,kBAAe;AAAA,YACf,mBAAgB;AAAA,YAChB,aAAU;AAAA,YACV,aAAU;AAAA,UAAA;;;;;;"}
1
+ {"version":3,"file":"RuiIcon.vue2.js","sources":["../../../src/components/icons/RuiIcon.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ContextColorsType } from '@/consts/colors';\nimport { useIcons } from '@/composables/icons';\nimport { isRuiIcon, type RuiIcons } from '@/icons';\n\nexport interface Props {\n name: RuiIcons;\n size?: number | string;\n color?: ContextColorsType;\n}\n\ndefineOptions({\n name: 'RuiIcon',\n});\n\nconst { name, size = 24, color } = defineProps<Props>();\n\nconst { registeredIcons } = useIcons();\n\nconst isFill = computed<boolean>(() => name.endsWith('-fill'));\n\nconst components = computed<[string, Record<string, string>][] | undefined>(() => {\n if (!isRuiIcon(name)) {\n console.warn(`icon ${name} must be a valid RuiIcon`);\n }\n const found = registeredIcons[name];\n\n if (!found) {\n console.error(\n `Icons \"${name}\" not found. Make sure that you have register the icon when installing the RuiPlugin`,\n );\n }\n return found;\n});\n</script>\n\n<template>\n <svg\n aria-hidden=\"true\"\n :class=\"[$style['rui-icon'], $style[color ?? '']]\"\n :height=\"size\"\n :width=\"size\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <component\n :is=\"component[0]\"\n v-for=\"(component, index) in components\"\n :key=\"index\"\n v-bind=\"component[1]\"\n :fill=\"!isFill ? 'none' : 'currentColor'\"\n :stroke=\"!isFill ? 'currentColor' : 'none'\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n />\n </svg>\n</template>\n\n<style lang=\"scss\" module>\n@use '@/styles/colors.scss' as c;\n\n.rui-icon {\n @each $color in c.$context-colors {\n &.#{$color} {\n @apply text-rui-#{$color};\n }\n }\n}\n</style>\n"],"names":["_createElementBlock","_normalizeClass","$style","_openBlock","_Fragment","_renderList","_unref","_createBlock","_resolveDynamicComponent","_mergeProps"],"mappings":";;;;;;;;;;;;;;;AAiBA,UAAM,EAAE,gBAAA,IAAoB,SAAA;AAE5B,UAAM,SAAS,SAAkB,MAAM,QAAA,KAAK,SAAS,OAAO,CAAC;AAE7D,UAAM,aAAa,SAAyD,MAAM;AAChF,UAAI,CAAC,UAAU,QAAA,IAAI,GAAG;AACpB,gBAAQ,KAAK,QAAQ,QAAA,IAAI,0BAA0B;AAAA,MACrD;AACA,YAAM,QAAQ,gBAAgB,YAAI;AAElC,UAAI,CAAC,OAAO;AACV,gBAAQ;AAAA,UACN,UAAU,QAAA,IAAI;AAAA,QAAA;AAAA,MAElB;AACA,aAAO;AAAA,IACT,CAAC;;0BAICA,mBAqBM,OAAA;AAAA,QApBJ,eAAY;AAAA,QACX,OAAKC,eAAA,CAAGC,KAAAA,OAAM,UAAA,GAAcA,KAAAA,OAAO,QAAA,SAAK,EAAA,CAAA,CAAA;AAAA,QACxC,QAAQ,QAAA;AAAA,QACR,OAAO,QAAA;AAAA,QACR,SAAQ;AAAA,QACR,OAAM;AAAA,MAAA;SAENC,UAAA,IAAA,GAAAH,mBAYEI,UAAA,MAAAC,WAV6BC,MAAA,UAAA,GAAU,CAA/B,WAAW,UAAK;8BAF1BC,YAYEC,wBAXK,UAAS,CAAA,CAAA,GADhBC,WAYE,EATC,KAAK,MAAA,GAAK,EAAA,SAAA,QACH,UAAS,CAAA,GAAA;AAAA,YAChB,OAAOH,MAAA,MAAA,IAAM,SAAA;AAAA,YACb,SAASA,MAAA,MAAA,IAAM,iBAAA;AAAA,YAChB,gBAAa;AAAA,YACb,kBAAe;AAAA,YACf,mBAAgB;AAAA,YAChB,aAAU;AAAA,YACV,aAAU;AAAA,UAAA;;;;;;"}
@@ -1,4 +1,4 @@
1
- import type { TableColumn as DataTableColumn, GroupKeys as DataTableGroupKeys, SortColumn as DataTableSortColumn, TableSortData as DataTableSortData } from '../components/tables/RuiTableHead.vue.js';
1
+ import type { TableColumn as DataTableColumn, GroupKeys as DataTableGroupKeys, SortColumn as DataTableSortColumn, TableSortData as DataTableSortData, GroupData } from '../components/tables/RuiTableHead.vue.js';
2
2
  import RuiAccordion, { type AccordionProps } from '../components/accordions/accordion/RuiAccordion.vue.js';
3
3
  import RuiAccordions, { type Props as AccordionsProps } from '../components/accordions/accordions/RuiAccordions.vue.js';
4
4
  import RuiAlert, { type Props as AlertProps } from '../components/alerts/RuiAlert.vue.js';
@@ -8,7 +8,7 @@ import RuiCalendar, { type CalendarProps } from '../components/calendar/RuiCalen
8
8
  import RuiCard, { type Props as CardProps } from '../components/cards/RuiCard.vue.js';
9
9
  import RuiCardHeader, { type Props as CardHeaderProps } from '../components/cards/RuiCardHeader.vue.js';
10
10
  import RuiChip, { type Props as ChipProps } from '../components/chips/RuiChip.vue.js';
11
- import RuiColorPicker, { type Props as ColorPickerProps } from '../components/color-picker/RuiColorPicker.vue.js';
11
+ import RuiColorPicker from '../components/color-picker/RuiColorPicker.vue.js';
12
12
  import RuiDateTimePicker, { type RuiDateTimePickerProps } from '../components/date-time-picker/RuiDateTimePicker.vue.js';
13
13
  import RuiDivider, { type Props as DividerProps } from '../components/divider/RuiDivider.vue.js';
14
14
  import RuiAutoComplete, { type AutoCompleteProps } from '../components/forms/auto-complete/RuiAutoComplete.vue.js';
@@ -39,9 +39,9 @@ import RuiDataTable, { type TableOptions as DataTableOptions, type Props as Data
39
39
  import RuiTableRowExpander, { type Props as ExpandButtonProps } from '../components/tables/RuiExpandButton.vue.js';
40
40
  import RuiTablePagination, { type TablePaginationData, type Props as TablePaginationProps } from '../components/tables/RuiTablePagination.vue.js';
41
41
  import RuiTabItem, { type Props as TabItemProps } from '../components/tabs/tab-item/RuiTabItem.vue.js';
42
- import RuiTabItems, { type Props as TabItemsProps } from '../components/tabs/tab-items/RuiTabItems.vue.js';
42
+ import RuiTabItems from '../components/tabs/tab-items/RuiTabItems.vue.js';
43
43
  import RuiTab, { type Props as TabProps } from '../components/tabs/tab/RuiTab.vue.js';
44
44
  import RuiTabs, { type Props as TabsProps } from '../components/tabs/tabs/RuiTabs.vue.js';
45
45
  import RuiTimePicker, { type RuiTimePickerProps } from '../components/time-picker/RuiTimePicker.vue.js';
46
- export type { AccordionProps, AccordionsProps, AlertProps, AutoCompleteProps, BadgeProps, BottomSheetProps, ButtonGroupProps, ButtonProps, CalendarProps, CardHeaderProps, CardProps, CheckboxProps, ChipProps, ColorPickerProps, DataTableColumn, DataTableGroupKeys, DataTableOptions, DataTableProps, DataTableSortColumn, DataTableSortData, DialogProps, DividerProps, ExpandButtonProps, FooterStepperProps, IconProps, LogoProps, MenuProps, MenuSelectProps, NavigationDrawerProps, NotificationProps, ProgressProps, RadioGroupProps, RadioProps, RevealableTextFieldProps, RuiDateTimePickerProps, RuiTimePickerProps, SimpleSelectProps, SkeletonLoaderProps, SliderProps, StepperProps, SwitchProps, TabItemProps, TabItemsProps, TablePaginationData, TablePaginationProps, TabProps, TabsProps, TextAreaProps, TextFieldProps, TooltipProps, };
46
+ export type { AccordionProps, AccordionsProps, AlertProps, AutoCompleteProps, BadgeProps, BottomSheetProps, ButtonGroupProps, ButtonProps, CalendarProps, CardHeaderProps, CardProps, CheckboxProps, ChipProps, DataTableColumn, DataTableGroupKeys, DataTableOptions, DataTableProps, DataTableSortColumn, DataTableSortData, DialogProps, DividerProps, ExpandButtonProps, FooterStepperProps, GroupData, IconProps, LogoProps, MenuProps, MenuSelectProps, NavigationDrawerProps, NotificationProps, ProgressProps, RadioGroupProps, RadioProps, RevealableTextFieldProps, RuiDateTimePickerProps, RuiTimePickerProps, SimpleSelectProps, SkeletonLoaderProps, SliderProps, StepperProps, SwitchProps, TabItemProps, TablePaginationData, TablePaginationProps, TabProps, TabsProps, TextAreaProps, TextFieldProps, TooltipProps, };
47
47
  export { RuiAccordion, RuiAccordions, RuiAlert, RuiAutoComplete, RuiBadge, RuiBottomSheet, RuiButton, RuiButtonGroup, RuiCalendar, RuiCard, RuiCardHeader, RuiCheckbox, RuiChip, RuiColorPicker, RuiDataTable, RuiDateTimePicker, RuiDialog, RuiDivider, RuiFooterStepper, RuiIcon, RuiLogo, RuiMenu, RuiMenuSelect, RuiNavigationDrawer, RuiNotification, RuiProgress, RuiRadio, RuiRadioGroup, RuiRevealableTextField, RuiSimpleSelect, RuiSkeletonLoader, RuiSlider, RuiStepper, RuiSwitch, RuiTab, RuiTabItem, RuiTabItems, RuiTablePagination, RuiTableRowExpander, RuiTabs, RuiTextArea, RuiTextField, RuiTimePicker, RuiTooltip, };
@@ -1,8 +1,6 @@
1
1
  export interface Props {
2
2
  rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';
3
3
  }
4
- declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
5
- rounded: "none" | "sm" | "md" | "lg" | "full";
6
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
4
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
5
  declare const _default: typeof __VLS_export;
8
6
  export default _default;
@@ -1,11 +1,11 @@
1
- import { defineComponent, createElementBlock, openBlock, normalizeClass } from "vue";
1
+ import { defineComponent, openBlock, createElementBlock, normalizeClass } from "vue";
2
2
  const _sfc_main = /* @__PURE__ */ defineComponent({
3
3
  ...{
4
4
  name: "RuiSkeletonLoaderBase"
5
5
  },
6
6
  __name: "RuiSkeletonBase",
7
7
  props: {
8
- rounded: { default: void 0 }
8
+ rounded: {}
9
9
  },
10
10
  setup(__props) {
11
11
  return (_ctx, _cache) => {
@@ -1 +1 @@
1
- {"version":3,"file":"RuiSkeletonBase.vue2.js","sources":["../../../src/components/loaders/RuiSkeletonBase.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nexport interface Props {\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n}\n\ndefineOptions({\n name: 'RuiSkeletonLoaderBase',\n});\n\nwithDefaults(defineProps<Props>(), {\n rounded: undefined,\n});\n</script>\n\n<template>\n <div\n :class=\"[$style.skeleton, { [`rounded-${rounded}`]: !!rounded }]\"\n role=\"alert\"\n />\n</template>\n\n<style lang=\"scss\" module>\n.skeleton {\n @apply animate-pulse bg-black/[.12];\n}\n\n:global(.dark) {\n .skeleton {\n @apply bg-white/[.16];\n }\n}\n</style>\n"],"names":["_createElementBlock","$style"],"mappings":";;;;;;;;;;;0BAeEA,mBAGE,OAAA;AAAA,QAFC,uBAAQC,KAAAA,OAAO,UAAQ,EAAA,CAAA,WAAgB,QAAA,OAAO,OAAO,QAAA,QAAA,CAAO,CAAA;AAAA,QAC7D,MAAK;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"RuiSkeletonBase.vue2.js","sources":["../../../src/components/loaders/RuiSkeletonBase.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nexport interface Props {\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n}\n\ndefineOptions({\n name: 'RuiSkeletonLoaderBase',\n});\n\nconst { rounded } = defineProps<Props>();\n</script>\n\n<template>\n <div\n :class=\"[$style.skeleton, { [`rounded-${rounded}`]: !!rounded }]\"\n role=\"alert\"\n />\n</template>\n\n<style lang=\"scss\" module>\n.skeleton {\n @apply animate-pulse bg-black/[.12];\n}\n\n:global(.dark) {\n .skeleton {\n @apply bg-white/[.16];\n }\n}\n</style>\n"],"names":["_createElementBlock","$style"],"mappings":";;;;;;;;;;;0BAaEA,mBAGE,OAAA;AAAA,QAFC,uBAAQC,KAAAA,OAAO,UAAQ,EAAA,CAAA,WAAgB,QAAA,OAAO,OAAO,QAAA,QAAA,CAAO,CAAA;AAAA,QAC7D,MAAK;AAAA,MAAA;;;;"}
@@ -2,9 +2,6 @@ import { type Props as SkeletonBaseProps } from '../../components/loaders/RuiSke
2
2
  export interface Props extends SkeletonBaseProps {
3
3
  type?: 'text' | 'paragraph' | 'heading' | 'article' | 'button' | 'icon' | 'avatar' | 'thumbnail' | 'custom';
4
4
  }
5
- declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
6
- type: "text" | "paragraph" | "heading" | "article" | "button" | "icon" | "avatar" | "thumbnail" | "custom";
7
- rounded: "none" | "sm" | "md" | "lg" | "full";
8
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
5
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
9
6
  declare const _default: typeof __VLS_export;
10
7
  export default _default;
@@ -1,4 +1,4 @@
1
- import { defineComponent, createBlock, createElementBlock, openBlock, mergeProps, createCommentVNode, createVNode, normalizeClass } from "vue";
1
+ import { defineComponent, openBlock, createBlock, mergeProps, createElementBlock, normalizeClass, createCommentVNode, createVNode } from "vue";
2
2
  import RuiSkeletonBase from "./RuiSkeletonBase.vue.js";
3
3
  const _sfc_main = /* @__PURE__ */ defineComponent({
4
4
  ...{
@@ -8,7 +8,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "RuiSkeletonLoader",
9
9
  props: {
10
10
  type: { default: "text" },
11
- rounded: { default: void 0 }
11
+ rounded: {}
12
12
  },
13
13
  setup(__props) {
14
14
  return (_ctx, _cache) => {
@@ -1 +1 @@
1
- {"version":3,"file":"RuiSkeletonLoader.vue2.js","sources":["../../../src/components/loaders/RuiSkeletonLoader.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport RuiSkeletonBase, { type Props as SkeletonBaseProps } from '@/components/loaders/RuiSkeletonBase.vue';\n\nexport interface Props extends SkeletonBaseProps {\n type?:\n | 'text'\n | 'paragraph'\n | 'heading'\n | 'article'\n | 'button'\n | 'icon'\n | 'avatar'\n | 'thumbnail'\n | 'custom';\n}\n\ndefineOptions({\n name: 'RuiSkeletonLoader',\n inheritAttrs: false,\n});\n\nwithDefaults(defineProps<Props>(), {\n type: 'text',\n rounded: undefined,\n});\n</script>\n\n<template>\n <RuiSkeletonBase\n v-if=\"!['paragraph', 'article'].includes(type)\"\n :class=\"$style[`skeleton_${type}`]\"\n :rounded=\"rounded\"\n v-bind=\"$attrs\"\n />\n <div\n v-else\n :class=\"$style[`skeleton_${type}`]\"\n v-bind=\"$attrs\"\n >\n <RuiSkeletonBase\n v-if=\"type === 'article'\"\n :class=\"$style.skeleton_heading\"\n :rounded=\"rounded\"\n />\n <RuiSkeletonBase\n :class=\"$style.skeleton_text\"\n :rounded=\"rounded\"\n />\n <RuiSkeletonBase\n :class=\"$style.skeleton_text\"\n :rounded=\"rounded\"\n />\n <RuiSkeletonBase\n :class=\"$style.skeleton_text\"\n :rounded=\"rounded\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" module>\n.skeleton {\n &_custom {\n @apply box-border;\n }\n\n &_text {\n @apply w-full h-4 rounded-md;\n }\n\n &_heading {\n @apply w-full h-6 rounded-md;\n }\n\n &_button {\n @apply w-full max-w-[6rem] h-[2.25rem] rounded-md;\n }\n\n &_icon {\n @apply w-6 h-6 rounded-full;\n }\n\n &_avatar {\n @apply w-10 h-10 rounded-full;\n }\n\n &_thumbnail {\n @apply w-14 h-14 rounded-sm;\n }\n\n &_paragraph,\n &_article {\n @apply flex flex-col gap-2;\n\n .skeleton_heading {\n @apply mb-1;\n }\n\n .skeleton_text {\n @apply h-3;\n\n &:nth-child(2) {\n @apply max-w-[80%];\n }\n\n &:last-child {\n @apply max-w-[90%];\n }\n }\n }\n}\n</style>\n"],"names":["_openBlock","_createBlock","_mergeProps","$style","$attrs","_createElementBlock","_normalizeClass","_createVNode"],"mappings":";;;;;;;;;;;;;;AA6BoC,aAAA,CAAA,CAAA,aAAA,SAAA,EAAA,SAAS,QAAA,IAAI,KAD/CA,UAAA,GAAAC,YAKE,iBALFC,WAKE;AAAA;QAHC,OAAOC,KAAAA,OAAM,YAAa,QAAA,IAAI,EAAA;AAAA,QAC9B,SAAS,QAAA;AAAA,MAAA,GACFC,KAAAA,MAAM,GAAA,MAAA,IAAA,CAAA,SAAA,SAAA,CAAA,MAEhBJ,UAAA,GAAAK,mBAsBM,OAtBNH,WAsBM;AAAA;QApBH,OAAOC,KAAAA,OAAM,YAAa,QAAA,IAAI,EAAA;AAAA,MAAA,GACvBC,KAAAA,MAAM,GAAA;AAAA,QAGN,QAAA,SAAI,0BADZH,YAIE,iBAAA;AAAA;UAFC,OAAKK,eAAEH,KAAAA,OAAO,gBAAgB;AAAA,UAC9B,SAAS,QAAA;AAAA,QAAA;QAEZI,YAGE,iBAAA;AAAA,UAFC,OAAKD,eAAEH,KAAAA,OAAO,aAAa;AAAA,UAC3B,SAAS,QAAA;AAAA,QAAA;QAEZI,YAGE,iBAAA;AAAA,UAFC,OAAKD,eAAEH,KAAAA,OAAO,aAAa;AAAA,UAC3B,SAAS,QAAA;AAAA,QAAA;QAEZI,YAGE,iBAAA;AAAA,UAFC,OAAKD,eAAEH,KAAAA,OAAO,aAAa;AAAA,UAC3B,SAAS,QAAA;AAAA,QAAA;;;;;"}
1
+ {"version":3,"file":"RuiSkeletonLoader.vue2.js","sources":["../../../src/components/loaders/RuiSkeletonLoader.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport RuiSkeletonBase, {\n type Props as SkeletonBaseProps,\n} from '@/components/loaders/RuiSkeletonBase.vue';\n\nexport interface Props extends SkeletonBaseProps {\n type?:\n | 'text'\n | 'paragraph'\n | 'heading'\n | 'article'\n | 'button'\n | 'icon'\n | 'avatar'\n | 'thumbnail'\n | 'custom';\n}\n\ndefineOptions({\n name: 'RuiSkeletonLoader',\n inheritAttrs: false,\n});\n\nconst { type = 'text', rounded } = defineProps<Props>();\n</script>\n\n<template>\n <RuiSkeletonBase\n v-if=\"!['paragraph', 'article'].includes(type)\"\n :class=\"$style[`skeleton_${type}`]\"\n :rounded=\"rounded\"\n v-bind=\"$attrs\"\n />\n <div\n v-else\n :class=\"$style[`skeleton_${type}`]\"\n v-bind=\"$attrs\"\n >\n <RuiSkeletonBase\n v-if=\"type === 'article'\"\n :class=\"$style.skeleton_heading\"\n :rounded=\"rounded\"\n />\n <RuiSkeletonBase\n :class=\"$style.skeleton_text\"\n :rounded=\"rounded\"\n />\n <RuiSkeletonBase\n :class=\"$style.skeleton_text\"\n :rounded=\"rounded\"\n />\n <RuiSkeletonBase\n :class=\"$style.skeleton_text\"\n :rounded=\"rounded\"\n />\n </div>\n</template>\n\n<style lang=\"scss\" module>\n.skeleton {\n &_custom {\n @apply box-border;\n }\n\n &_text {\n @apply w-full h-4 rounded-md;\n }\n\n &_heading {\n @apply w-full h-6 rounded-md;\n }\n\n &_button {\n @apply w-full max-w-[6rem] h-[2.25rem] rounded-md;\n }\n\n &_icon {\n @apply w-6 h-6 rounded-full;\n }\n\n &_avatar {\n @apply w-10 h-10 rounded-full;\n }\n\n &_thumbnail {\n @apply w-14 h-14 rounded-sm;\n }\n\n &_paragraph,\n &_article {\n @apply flex flex-col gap-2;\n\n .skeleton_heading {\n @apply mb-1;\n }\n\n .skeleton_text {\n @apply h-3;\n\n &:nth-child(2) {\n @apply max-w-[80%];\n }\n\n &:last-child {\n @apply max-w-[90%];\n }\n }\n }\n}\n</style>\n"],"names":["_openBlock","_createBlock","_mergeProps","$style","$attrs","_createElementBlock","_normalizeClass","_createVNode"],"mappings":";;;;;;;;;;;;;;AA4BoC,aAAA,CAAA,CAAA,aAAA,SAAA,EAAA,SAAS,QAAA,IAAI,KAD/CA,UAAA,GAAAC,YAKE,iBALFC,WAKE;AAAA;QAHC,OAAOC,KAAAA,OAAM,YAAa,QAAA,IAAI,EAAA;AAAA,QAC9B,SAAS,QAAA;AAAA,MAAA,GACFC,KAAAA,MAAM,GAAA,MAAA,IAAA,CAAA,SAAA,SAAA,CAAA,MAEhBJ,UAAA,GAAAK,mBAsBM,OAtBNH,WAsBM;AAAA;QApBH,OAAOC,KAAAA,OAAM,YAAa,QAAA,IAAI,EAAA;AAAA,MAAA,GACvBC,KAAAA,MAAM,GAAA;AAAA,QAGN,QAAA,SAAI,0BADZH,YAIE,iBAAA;AAAA;UAFC,OAAKK,eAAEH,KAAAA,OAAO,gBAAgB;AAAA,UAC9B,SAAS,QAAA;AAAA,QAAA;QAEZI,YAGE,iBAAA;AAAA,UAFC,OAAKD,eAAEH,KAAAA,OAAO,aAAa;AAAA,UAC3B,SAAS,QAAA;AAAA,QAAA;QAEZI,YAGE,iBAAA;AAAA,UAFC,OAAKD,eAAEH,KAAAA,OAAO,aAAa;AAAA,UAC3B,SAAS,QAAA;AAAA,QAAA;QAEZI,YAGE,iBAAA;AAAA,UAFC,OAAKD,eAAEH,KAAAA,OAAO,aAAa;AAAA,UAC3B,SAAS,QAAA;AAAA,QAAA;;;;;"}
@@ -13,12 +13,6 @@ export interface Props {
13
13
  size?: string | number;
14
14
  uniqueKey?: string | number;
15
15
  }
16
- declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
17
- size: string | number;
18
- text: boolean;
19
- branch: "develop" | "main" | string;
20
- logo: keyof ExternalLinks;
21
- uniqueKey: string | number;
22
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
+ declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
17
  declare const _default: typeof __VLS_export;
24
18
  export default _default;
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, computed, watch, watchEffect, useSSRContext, onServerPrefetch, createElementBlock, openBlock, normalizeStyle, createCommentVNode, unref, toDisplayString } from "vue";
1
+ import { defineComponent, useTemplateRef, ref, computed, watch, watchEffect, useSSRContext, onServerPrefetch, openBlock, createElementBlock, normalizeStyle, unref, toDisplayString, createCommentVNode } from "vue";
2
2
  import { get, set, isClient } from "@vueuse/shared";
3
3
  import fallback from "./logo.svg.js";
4
4
  import { transformCase } from "../../utils/helpers.js";
@@ -18,15 +18,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
18
18
  props: {
19
19
  text: { type: Boolean, default: false },
20
20
  branch: { default: "develop" },
21
- logo: { default: void 0 },
21
+ logo: {},
22
22
  size: { default: 3 },
23
- uniqueKey: { default: void 0 }
23
+ uniqueKey: {}
24
24
  },
25
25
  setup(__props) {
26
- const props = __props;
27
- const customImageRef = ref();
26
+ const customImageRef = useTemplateRef("customImageRef");
28
27
  const error = ref(false);
29
- const decoding = ref(!!props.logo);
28
+ const decoding = ref(!!__props.logo);
30
29
  const pendingSources = ref(false);
31
30
  const emptyLinks = {
32
31
  app: void 0,
@@ -37,23 +36,22 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
37
36
  const externalSources = ref(emptyLinks);
38
37
  const externalSource = computed(() => {
39
38
  const sources = get(externalSources);
40
- const { logo } = props;
41
- if (!logo || !sources[logo]) {
39
+ if (!__props.logo || !sources[__props.logo]) {
42
40
  set(decoding, get(pendingSources));
43
41
  return void 0;
44
42
  }
45
- const url = `https://raw.githubusercontent.com/rotki/data/${props.branch}/assets/icons/${sources[logo]}`;
46
- if (props.uniqueKey !== void 0)
47
- return `${url}?key=${props.uniqueKey}`;
43
+ const url = `https://raw.githubusercontent.com/rotki/data/${__props.branch}/assets/icons/${sources[__props.logo]}`;
44
+ if (__props.uniqueKey !== void 0)
45
+ return `${url}?key=${__props.uniqueKey}`;
48
46
  return url;
49
47
  });
50
48
  async function fetchSources() {
51
- if (!props.logo)
49
+ if (!__props.logo)
52
50
  return;
53
51
  set(pendingSources, true);
54
52
  try {
55
53
  const { data } = await useFetch(
56
- `https://raw.githubusercontent.com/rotki/data/${props.branch}/constants/asset-mappings.json`
54
+ `https://raw.githubusercontent.com/rotki/data/${__props.branch}/constants/asset-mappings.json`
57
55
  );
58
56
  const links = transformCase(JSON.parse(get(data) ?? "null")?.logo, "camelCase");
59
57
  if (links)
@@ -83,6 +81,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
83
81
  }, [
84
82
  !unref(externalSource) && unref(decoding) ? (openBlock(), createElementBlock("div", {
85
83
  key: 0,
84
+ role: "img",
85
+ "aria-label": appName,
86
86
  class: "h-full transition delay-0 opacity-0",
87
87
  style: normalizeStyle({ width: `${__props.size}rem` })
88
88
  }, null, 4)) : unref(externalSource) && (!unref(error) || unref(decoding)) ? (openBlock(), createElementBlock("img", {
@@ -1 +1 @@
1
- {"version":3,"file":"RuiLogo.vue.js","sources":["../../../src/components/logos/RuiLogo.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { isClient } from '@vueuse/shared';\nimport { useSSRContext } from 'vue';\nimport fallback from '@/components/logos/logo.svg';\nimport { transformCase } from '@/utils/helpers';\n\nexport interface ExternalLinks {\n drawer?: string;\n app?: string;\n website?: string;\n about?: string;\n emptyScreen?: string;\n [key: string]: string | undefined;\n}\n\nexport interface Props {\n text?: boolean;\n branch?: 'develop' | 'main' | string;\n logo?: keyof ExternalLinks;\n size?: string | number; // in rems\n uniqueKey?: string | number;\n}\n\ndefineOptions({\n name: 'RuiLogo',\n});\n\nconst props = withDefaults(defineProps<Props>(), {\n text: false,\n branch: 'develop',\n logo: undefined,\n size: 3,\n uniqueKey: undefined,\n});\n\nconst customImageRef = ref<HTMLImageElement>();\nconst error = ref(false);\nconst decoding = ref(!!props.logo);\nconst pendingSources = ref(false);\nconst appName = 'rotki';\nconst emptyLinks: ExternalLinks = {\n app: undefined,\n website: undefined,\n about: undefined,\n emptyScreen: undefined,\n};\nconst externalSources = ref(emptyLinks);\n\nconst externalSource = computed(() => {\n const sources = get(externalSources);\n const { logo } = props;\n if (!logo || !sources[logo]) {\n set(decoding, get(pendingSources));\n return undefined;\n }\n\n const url = `https://raw.githubusercontent.com/rotki/data/${props.branch}/assets/icons/${sources[logo]}`;\n\n if (props.uniqueKey !== undefined)\n return `${url}?key=${props.uniqueKey}`;\n\n return url;\n});\n\nasync function fetchSources() {\n if (!props.logo)\n return;\n\n set(pendingSources, true);\n try {\n const { data } = await useFetch<string>(\n `https://raw.githubusercontent.com/rotki/data/${props.branch}/constants/asset-mappings.json`,\n );\n\n const links = transformCase(JSON.parse(get(data) ?? 'null')?.logo, 'camelCase');\n\n if (links)\n set(externalSources, links);\n }\n catch {}\n set(pendingSources, false);\n}\n\nwatch(\n () => get(customImageRef)?.complete,\n (complete) => {\n if (complete) {\n get(customImageRef)\n ?.decode()\n .catch(() => set(error, true))\n .finally(() => set(decoding, false));\n }\n },\n);\n\nwatchEffect(fetchSources);\n\nif (!isClient)\n useSSRContext();\n\nonServerPrefetch(async () => {\n await fetchSources();\n});\n</script>\n\n<template>\n <div\n class=\"gap-x-4 flex items-center relative\"\n :style=\"{ height: `${size}rem` }\"\n >\n <div\n v-if=\"!externalSource && decoding\"\n class=\"h-full transition delay-0 opacity-0\"\n :style=\"{ width: `${size}rem` }\"\n />\n <img\n v-else-if=\"externalSource && (!error || decoding)\"\n ref=\"customImageRef\"\n :src=\"externalSource\"\n :alt=\"appName\"\n data-image=\"custom\"\n class=\"h-full transition ease-out duration-200 delay-100\"\n :style=\"{ width: `${size}rem` }\"\n @error=\"error = true\"\n />\n <img\n v-else\n :src=\"fallback\"\n :alt=\"appName\"\n data-image=\"fallback\"\n class=\"h-full transition ease-out duration-200 delay-100\"\n :style=\"{ width: `${size}rem` }\"\n />\n <div\n v-if=\"text\"\n class=\"text-h4 text-rui-primary dark:text-white\"\n >\n {{ appName }}\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_unref","_toDisplayString"],"mappings":";;;;;;;;;;;AAuCA,MAAM,UAAU;;;;;;;;;;;;;;AAZhB,UAAM,QAAQ;AAQd,UAAM,iBAAiB,IAAA;AACvB,UAAM,QAAQ,IAAI,KAAK;AACvB,UAAM,WAAW,IAAI,CAAC,CAAC,MAAM,IAAI;AACjC,UAAM,iBAAiB,IAAI,KAAK;AAEhC,UAAM,aAA4B;AAAA,MAChC,KAAK;AAAA,MACL,SAAS;AAAA,MACT,OAAO;AAAA,MACP,aAAa;AAAA,IAAA;AAEf,UAAM,kBAAkB,IAAI,UAAU;AAEtC,UAAM,iBAAiB,SAAS,MAAM;AACpC,YAAM,UAAU,IAAI,eAAe;AACnC,YAAM,EAAE,SAAS;AACjB,UAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,GAAG;AAC3B,YAAI,UAAU,IAAI,cAAc,CAAC;AACjC,eAAO;AAAA,MACT;AAEA,YAAM,MAAM,gDAAgD,MAAM,MAAM,iBAAiB,QAAQ,IAAI,CAAC;AAEtG,UAAI,MAAM,cAAc;AACtB,eAAO,GAAG,GAAG,QAAQ,MAAM,SAAS;AAEtC,aAAO;AAAA,IACT,CAAC;AAED,mBAAe,eAAe;AAC5B,UAAI,CAAC,MAAM;AACT;AAEF,UAAI,gBAAgB,IAAI;AACxB,UAAI;AACF,cAAM,EAAE,KAAA,IAAS,MAAM;AAAA,UACrB,gDAAgD,MAAM,MAAM;AAAA,QAAA;AAG9D,cAAM,QAAQ,cAAc,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,WAAW;AAE9E,YAAI;AACF,cAAI,iBAAiB,KAAK;AAAA,MAC9B,QACM;AAAA,MAAC;AACP,UAAI,gBAAgB,KAAK;AAAA,IAC3B;AAEA;AAAA,MACE,MAAM,IAAI,cAAc,GAAG;AAAA,MAC3B,CAAC,aAAa;AACZ,YAAI,UAAU;AACZ,cAAI,cAAc,GACd,OAAA,EACD,MAAM,MAAM,IAAI,OAAO,IAAI,CAAC,EAC5B,QAAQ,MAAM,IAAI,UAAU,KAAK,CAAC;AAAA,QACvC;AAAA,MACF;AAAA,IAAA;AAGF,gBAAY,YAAY;AAExB,QAAI,CAAC;AACH,oBAAA;AAEF,qBAAiB,YAAY;AAC3B,YAAM,aAAA;AAAA,IACR,CAAC;;0BAICA,mBAiCM,OAAA;AAAA,QAhCJ,OAAM;AAAA,QACL,mCAAoB,QAAA,IAAI,OAAA;AAAA,MAAA;QAGhB,CAAAC,MAAA,cAAA,KAAkBA,MAAA,QAAA,kBAD3BD,mBAIE,OAAA;AAAA;UAFA,OAAM;AAAA,UACL,kCAAmB,QAAA,IAAI,OAAA;AAAA,QAAA,eAGbC,MAAA,cAAA,MAAc,CAAMA,MAAA,KAAA,KAASA,MAAA,QAAA,mBAD1CD,mBASE,OAAA;AAAA;mBAPI;AAAA,UAAJ,KAAI;AAAA,UACH,KAAKC,MAAA,cAAA;AAAA,UACL,KAAK;AAAA,UACN,cAAW;AAAA,UACX,OAAM;AAAA,UACL,kCAAmB,QAAA,IAAI,OAAA;AAAA,UACvB,+CAAO,MAAA,QAAK;AAAA,QAAA,0CAEfD,mBAOE,OAAA;AAAA;UALC,KAAKC,MAAA,QAAA;AAAA,UACL,KAAK;AAAA,UACN,cAAW;AAAA,UACX,OAAM;AAAA,UACL,kCAAmB,QAAA,IAAI,OAAA;AAAA,QAAA;QAGlB,QAAA,qBADRD,mBAKM,OALN,YAKME,gBADD,OAAO,CAAA;;;;;"}
1
+ {"version":3,"file":"RuiLogo.vue.js","sources":["../../../src/components/logos/RuiLogo.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { isClient } from '@vueuse/shared';\nimport { useSSRContext } from 'vue';\nimport fallback from '@/components/logos/logo.svg';\nimport { transformCase } from '@/utils/helpers';\n\nexport interface ExternalLinks {\n drawer?: string;\n app?: string;\n website?: string;\n about?: string;\n emptyScreen?: string;\n [key: string]: string | undefined;\n}\n\nexport interface Props {\n text?: boolean;\n branch?: 'develop' | 'main' | string;\n logo?: keyof ExternalLinks;\n size?: string | number; // in rems\n uniqueKey?: string | number;\n}\n\ndefineOptions({\n name: 'RuiLogo',\n});\n\nconst { text = false, branch = 'develop', logo, size = 3, uniqueKey } = defineProps<Props>();\n\nconst customImageRef = useTemplateRef<HTMLImageElement>('customImageRef');\nconst error = ref<boolean>(false);\nconst decoding = ref<boolean>(!!logo);\nconst pendingSources = ref<boolean>(false);\nconst appName = 'rotki';\nconst emptyLinks: ExternalLinks = {\n app: undefined,\n website: undefined,\n about: undefined,\n emptyScreen: undefined,\n};\nconst externalSources = ref<ExternalLinks>(emptyLinks);\n\nconst externalSource = computed<string | undefined>(() => {\n const sources = get(externalSources);\n if (!logo || !sources[logo]) {\n set(decoding, get(pendingSources));\n return undefined;\n }\n\n const url = `https://raw.githubusercontent.com/rotki/data/${branch}/assets/icons/${sources[logo]}`;\n\n if (uniqueKey !== undefined)\n return `${url}?key=${uniqueKey}`;\n\n return url;\n});\n\nasync function fetchSources(): Promise<void> {\n if (!logo)\n return;\n\n set(pendingSources, true);\n try {\n const { data } = await useFetch<string>(\n `https://raw.githubusercontent.com/rotki/data/${branch}/constants/asset-mappings.json`,\n );\n\n const links = transformCase(JSON.parse(get(data) ?? 'null')?.logo, 'camelCase');\n\n if (links)\n set(externalSources, links);\n }\n catch {}\n set(pendingSources, false);\n}\n\nwatch(\n () => get(customImageRef)?.complete,\n (complete) => {\n if (complete) {\n get(customImageRef)\n ?.decode()\n .catch(() => set(error, true))\n .finally(() => set(decoding, false));\n }\n },\n);\n\nwatchEffect(fetchSources);\n\nif (!isClient)\n useSSRContext();\n\nonServerPrefetch(async () => {\n await fetchSources();\n});\n</script>\n\n<template>\n <div\n class=\"gap-x-4 flex items-center relative\"\n :style=\"{ height: `${size}rem` }\"\n >\n <div\n v-if=\"!externalSource && decoding\"\n role=\"img\"\n :aria-label=\"appName\"\n class=\"h-full transition delay-0 opacity-0\"\n :style=\"{ width: `${size}rem` }\"\n />\n <img\n v-else-if=\"externalSource && (!error || decoding)\"\n ref=\"customImageRef\"\n :src=\"externalSource\"\n :alt=\"appName\"\n data-image=\"custom\"\n class=\"h-full transition ease-out duration-200 delay-100\"\n :style=\"{ width: `${size}rem` }\"\n @error=\"error = true\"\n />\n <img\n v-else\n :src=\"fallback\"\n :alt=\"appName\"\n data-image=\"fallback\"\n class=\"h-full transition ease-out duration-200 delay-100\"\n :style=\"{ width: `${size}rem` }\"\n />\n <div\n v-if=\"text\"\n class=\"text-h4 text-rui-primary dark:text-white\"\n >\n {{ appName }}\n </div>\n </div>\n</template>\n"],"names":["_createElementBlock","_unref","_toDisplayString"],"mappings":";;;;;;;;;;;AAiCA,MAAM,UAAU;;;;;;;;;;;;;;AAJhB,UAAM,iBAAiB,eAAiC,gBAAgB;AACxE,UAAM,QAAQ,IAAa,KAAK;AAChC,UAAM,WAAW,IAAa,CAAC,CAAC,YAAI;AACpC,UAAM,iBAAiB,IAAa,KAAK;AAEzC,UAAM,aAA4B;AAAA,MAChC,KAAK;AAAA,MACL,SAAS;AAAA,MACT,OAAO;AAAA,MACP,aAAa;AAAA,IAAA;AAEf,UAAM,kBAAkB,IAAmB,UAAU;AAErD,UAAM,iBAAiB,SAA6B,MAAM;AACxD,YAAM,UAAU,IAAI,eAAe;AACnC,UAAI,CAAC,QAAA,QAAQ,CAAC,QAAQ,QAAA,IAAI,GAAG;AAC3B,YAAI,UAAU,IAAI,cAAc,CAAC;AACjC,eAAO;AAAA,MACT;AAEA,YAAM,MAAM,gDAAgD,QAAA,MAAM,iBAAiB,QAAQ,QAAA,IAAI,CAAC;AAEhG,UAAI,QAAA,cAAc;AAChB,eAAO,GAAG,GAAG,QAAQ,QAAA,SAAS;AAEhC,aAAO;AAAA,IACT,CAAC;AAED,mBAAe,eAA8B;AAC3C,UAAI,CAAC,QAAA;AACH;AAEF,UAAI,gBAAgB,IAAI;AACxB,UAAI;AACF,cAAM,EAAE,KAAA,IAAS,MAAM;AAAA,UACrB,gDAAgD,QAAA,MAAM;AAAA,QAAA;AAGxD,cAAM,QAAQ,cAAc,KAAK,MAAM,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,WAAW;AAE9E,YAAI;AACF,cAAI,iBAAiB,KAAK;AAAA,MAC9B,QACM;AAAA,MAAC;AACP,UAAI,gBAAgB,KAAK;AAAA,IAC3B;AAEA;AAAA,MACE,MAAM,IAAI,cAAc,GAAG;AAAA,MAC3B,CAAC,aAAa;AACZ,YAAI,UAAU;AACZ,cAAI,cAAc,GACd,OAAA,EACD,MAAM,MAAM,IAAI,OAAO,IAAI,CAAC,EAC5B,QAAQ,MAAM,IAAI,UAAU,KAAK,CAAC;AAAA,QACvC;AAAA,MACF;AAAA,IAAA;AAGF,gBAAY,YAAY;AAExB,QAAI,CAAC;AACH,oBAAA;AAEF,qBAAiB,YAAY;AAC3B,YAAM,aAAA;AAAA,IACR,CAAC;;0BAICA,mBAmCM,OAAA;AAAA,QAlCJ,OAAM;AAAA,QACL,mCAAoB,QAAA,IAAI,OAAA;AAAA,MAAA;QAGhB,CAAAC,MAAA,cAAA,KAAkBA,MAAA,QAAA,kBAD3BD,mBAME,OAAA;AAAA;UAJA,MAAK;AAAA,UACJ,cAAY;AAAA,UACb,OAAM;AAAA,UACL,kCAAmB,QAAA,IAAI,OAAA;AAAA,QAAA,eAGbC,MAAA,cAAA,MAAc,CAAMA,MAAA,KAAA,KAASA,MAAA,QAAA,mBAD1CD,mBASE,OAAA;AAAA;mBAPI;AAAA,UAAJ,KAAI;AAAA,UACH,KAAKC,MAAA,cAAA;AAAA,UACL,KAAK;AAAA,UACN,cAAW;AAAA,UACX,OAAM;AAAA,UACL,kCAAmB,QAAA,IAAI,OAAA;AAAA,UACvB,+CAAO,MAAA,QAAK;AAAA,QAAA,0CAEfD,mBAOE,OAAA;AAAA;UALC,KAAKC,MAAA,QAAA;AAAA,UACL,KAAK;AAAA,UACN,cAAW;AAAA,UACX,OAAM;AAAA,UACL,kCAAmB,QAAA,IAAI,OAAA;AAAA,QAAA;QAGlB,QAAA,qBADRD,mBAKM,OALN,YAKME,gBADD,OAAO,CAAA;;;;;"}
@@ -13,27 +13,12 @@ export interface Props {
13
13
  rounded?: 'sm' | 'md' | 'lg' | 'full';
14
14
  color?: 'default' | ContextColorsType;
15
15
  }
16
- declare var __VLS_1: {}, __VLS_9: {}, __VLS_11: {};
17
- type __VLS_Slots = {} & {
18
- default?: (props: typeof __VLS_1) => any;
19
- } & {
20
- badge?: (props: typeof __VLS_9) => any;
21
- } & {
22
- icon?: (props: typeof __VLS_11) => any;
16
+ type __VLS_Slots = {
17
+ default?: () => any;
18
+ badge?: () => any;
19
+ icon?: () => any;
23
20
  };
24
- declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {
25
- left: boolean;
26
- size: "sm" | "md" | "lg";
27
- placement: "top" | "center" | "bottom";
28
- color: "default" | ContextColorsType;
29
- text: string | null;
30
- rounded: "sm" | "md" | "lg" | "full";
31
- icon: RuiIcons | null;
32
- modelValue: boolean;
33
- dot: boolean;
34
- offsetX: string | number;
35
- offsetY: string | number;
36
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
21
+ declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
37
22
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
38
23
  declare const _default: typeof __VLS_export;
39
24
  export default _default;
@@ -1,6 +1,6 @@
1
- import { defineComponent, useCssVars, unref, toRefs, useSlots, createElementBlock, openBlock, normalizeClass, renderSlot, createVNode, Transition, withCtx, createCommentVNode, createElementVNode, toDisplayString, createBlock } from "vue";
2
- import { logicOr, logicAnd } from "@vueuse/math";
1
+ import { defineComponent, useCssVars, useSlots, computed, openBlock, createElementBlock, normalizeClass, renderSlot, createVNode, Transition, withCtx, unref, createElementVNode, toDisplayString, createBlock, createCommentVNode } from "vue";
3
2
  import RuiIcon from "../../icons/RuiIcon.vue.js";
3
+ import { get } from "@vueuse/shared";
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  ...{
6
6
  name: "RuiBadge"
@@ -21,15 +21,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
21
21
  },
22
22
  setup(__props) {
23
23
  useCssVars((_ctx) => ({
24
- "v5565a483": unref(offsetX),
25
- "v5565a484": unref(offsetY)
24
+ "v779996be": _ctx.offsetX,
25
+ "v779996bc": _ctx.offsetY
26
26
  }));
27
- const props = __props;
28
27
  const slots = useSlots();
29
- const { modelValue, offsetX, offsetY, icon, text } = toRefs(props);
30
- const hasIcon = logicOr(icon, slots.icon);
31
- const hasText = logicOr(text, slots.badge);
32
- const hasIconAndText = logicAnd(hasIcon, hasText);
28
+ const hasIcon = computed(() => !!__props.icon || !!slots.icon);
29
+ const hasText = computed(() => !!__props.text || !!slots.badge);
30
+ const hasIconAndText = computed(() => get(hasIcon) && get(hasText));
33
31
  return (_ctx, _cache) => {
34
32
  return openBlock(), createElementBlock("div", {
35
33
  class: normalizeClass(_ctx.$style.wrapper)
@@ -45,7 +43,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
45
43
  "leave-to-class": "scale-0"
46
44
  }, {
47
45
  default: withCtx(() => [
48
- unref(modelValue) ? (openBlock(), createElementBlock("div", {
46
+ __props.modelValue ? (openBlock(), createElementBlock("div", {
49
47
  key: 0,
50
48
  class: normalizeClass([
51
49
  _ctx.$style.badge,
@@ -70,12 +68,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
70
68
  ])
71
69
  }, [
72
70
  renderSlot(_ctx.$slots, "badge", {}, () => [
73
- createElementVNode("span", null, toDisplayString(unref(text)), 1)
71
+ createElementVNode("span", null, toDisplayString(__props.text), 1)
74
72
  ]),
75
73
  renderSlot(_ctx.$slots, "icon", {}, () => [
76
- unref(icon) ? (openBlock(), createBlock(RuiIcon, {
74
+ __props.icon ? (openBlock(), createBlock(RuiIcon, {
77
75
  key: 0,
78
- name: unref(icon),
76
+ name: __props.icon,
79
77
  size: "16",
80
78
  class: normalizeClass({ "ml-0.5": unref(hasText) })
81
79
  }, null, 8, ["name", "class"])) : createCommentVNode("", true)