@rotki/ui-library 2.8.1 → 2.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (465) hide show
  1. package/dist/README.md +276 -0
  2. package/dist/_virtual/_plugin-vue_export-helper.js +11 -0
  3. package/dist/_virtual/_plugin-vue_export-helper.js.map +1 -0
  4. package/dist/components/accordions/accordion/RuiAccordion.vue.js +11 -0
  5. package/dist/components/accordions/accordion/RuiAccordion.vue.js.map +1 -0
  6. package/dist/components/accordions/accordion/RuiAccordion.vue2.js +66 -0
  7. package/dist/components/accordions/accordion/RuiAccordion.vue2.js.map +1 -0
  8. package/dist/components/accordions/accordion/RuiAccordion.vue3.js +18 -0
  9. package/dist/components/accordions/accordion/RuiAccordion.vue3.js.map +1 -0
  10. package/dist/components/accordions/accordions/RuiAccordions.vue.js +78 -0
  11. package/dist/components/accordions/accordions/RuiAccordions.vue.js.map +1 -0
  12. package/dist/components/accordions/accordions/RuiAccordions.vue2.js +5 -0
  13. package/dist/components/accordions/accordions/RuiAccordions.vue2.js.map +1 -0
  14. package/dist/components/alerts/RuiAlert.vue.d.ts +2 -2
  15. package/dist/components/alerts/RuiAlert.vue.js +11 -0
  16. package/dist/components/alerts/RuiAlert.vue.js.map +1 -0
  17. package/dist/components/alerts/RuiAlert.vue2.js +123 -0
  18. package/dist/components/alerts/RuiAlert.vue2.js.map +1 -0
  19. package/dist/components/alerts/RuiAlert.vue3.js +50 -0
  20. package/dist/components/alerts/RuiAlert.vue3.js.map +1 -0
  21. package/dist/components/buttons/button/RuiButton.vue.d.ts +1 -1
  22. package/dist/components/buttons/button/RuiButton.vue.js +11 -0
  23. package/dist/components/buttons/button/RuiButton.vue.js.map +1 -0
  24. package/dist/components/buttons/button/RuiButton.vue2.js +94 -0
  25. package/dist/components/buttons/button/RuiButton.vue2.js.map +1 -0
  26. package/dist/components/buttons/button/RuiButton.vue3.js +74 -0
  27. package/dist/components/buttons/button/RuiButton.vue3.js.map +1 -0
  28. package/dist/components/buttons/button-group/RuiButtonGroup.vue.d.ts +1 -1
  29. package/dist/components/buttons/button-group/RuiButtonGroup.vue.js +11 -0
  30. package/dist/components/buttons/button-group/RuiButtonGroup.vue.js.map +1 -0
  31. package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js +112 -0
  32. package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js.map +1 -0
  33. package/dist/components/buttons/button-group/RuiButtonGroup.vue3.js +58 -0
  34. package/dist/components/buttons/button-group/RuiButtonGroup.vue3.js.map +1 -0
  35. package/dist/components/calendar/RuiCalendar.vue.js +128 -0
  36. package/dist/components/calendar/RuiCalendar.vue.js.map +1 -0
  37. package/dist/components/calendar/RuiCalendar.vue3.js +6 -0
  38. package/dist/components/calendar/RuiCalendar.vue3.js.map +1 -0
  39. package/dist/components/calendar/RuiCalendarGrid.vue.js +8 -0
  40. package/dist/components/calendar/RuiCalendarGrid.vue.js.map +1 -0
  41. package/dist/components/calendar/RuiCalendarGrid.vue2.js +149 -0
  42. package/dist/components/calendar/RuiCalendarGrid.vue2.js.map +1 -0
  43. package/dist/components/calendar/RuiCalendarHeader.vue.d.ts +1 -1
  44. package/dist/components/calendar/RuiCalendarHeader.vue.js +8 -0
  45. package/dist/components/calendar/RuiCalendarHeader.vue.js.map +1 -0
  46. package/dist/components/calendar/RuiCalendarHeader.vue2.js +112 -0
  47. package/dist/components/calendar/RuiCalendarHeader.vue2.js.map +1 -0
  48. package/dist/components/calendar/RuiCalendarMenu.vue.d.ts +1 -1
  49. package/dist/components/calendar/RuiCalendarMenu.vue.js +8 -0
  50. package/dist/components/calendar/RuiCalendarMenu.vue.js.map +1 -0
  51. package/dist/components/calendar/RuiCalendarMenu.vue2.js +261 -0
  52. package/dist/components/calendar/RuiCalendarMenu.vue2.js.map +1 -0
  53. package/dist/components/calendar/state.js +25 -0
  54. package/dist/components/calendar/state.js.map +1 -0
  55. package/dist/components/cards/RuiCard.vue.js +11 -0
  56. package/dist/components/cards/RuiCard.vue.js.map +1 -0
  57. package/dist/components/cards/RuiCard.vue2.js +88 -0
  58. package/dist/components/cards/RuiCard.vue2.js.map +1 -0
  59. package/dist/components/cards/RuiCard.vue3.js +40 -0
  60. package/dist/components/cards/RuiCard.vue3.js.map +1 -0
  61. package/dist/components/cards/RuiCardHeader.vue.js +11 -0
  62. package/dist/components/cards/RuiCardHeader.vue.js.map +1 -0
  63. package/dist/components/cards/RuiCardHeader.vue2.js +51 -0
  64. package/dist/components/cards/RuiCardHeader.vue2.js.map +1 -0
  65. package/dist/components/cards/RuiCardHeader.vue3.js +27 -0
  66. package/dist/components/cards/RuiCardHeader.vue3.js.map +1 -0
  67. package/dist/components/chips/RuiChip.vue.d.ts +2 -2
  68. package/dist/components/chips/RuiChip.vue.js +11 -0
  69. package/dist/components/chips/RuiChip.vue.js.map +1 -0
  70. package/dist/components/chips/RuiChip.vue2.js +95 -0
  71. package/dist/components/chips/RuiChip.vue2.js.map +1 -0
  72. package/dist/components/chips/RuiChip.vue3.js +88 -0
  73. package/dist/components/chips/RuiChip.vue3.js.map +1 -0
  74. package/dist/components/color-picker/RuiColorBoard.vue.d.ts +1 -1
  75. package/dist/components/color-picker/RuiColorBoard.vue.js +11 -0
  76. package/dist/components/color-picker/RuiColorBoard.vue.js.map +1 -0
  77. package/dist/components/color-picker/RuiColorBoard.vue2.js +102 -0
  78. package/dist/components/color-picker/RuiColorBoard.vue2.js.map +1 -0
  79. package/dist/components/color-picker/RuiColorBoard.vue3.js +18 -0
  80. package/dist/components/color-picker/RuiColorBoard.vue3.js.map +1 -0
  81. package/dist/components/color-picker/RuiColorDisplay.vue.js +49 -0
  82. package/dist/components/color-picker/RuiColorDisplay.vue.js.map +1 -0
  83. package/dist/components/color-picker/RuiColorDisplay.vue2.js +5 -0
  84. package/dist/components/color-picker/RuiColorDisplay.vue2.js.map +1 -0
  85. package/dist/components/color-picker/RuiColorHue.vue.js +11 -0
  86. package/dist/components/color-picker/RuiColorHue.vue.js.map +1 -0
  87. package/dist/components/color-picker/RuiColorHue.vue2.js +89 -0
  88. package/dist/components/color-picker/RuiColorHue.vue2.js.map +1 -0
  89. package/dist/components/color-picker/RuiColorHue.vue3.js +12 -0
  90. package/dist/components/color-picker/RuiColorHue.vue3.js.map +1 -0
  91. package/dist/components/color-picker/RuiColorInput.vue.d.ts +1 -1
  92. package/dist/components/color-picker/RuiColorInput.vue.js +139 -0
  93. package/dist/components/color-picker/RuiColorInput.vue.js.map +1 -0
  94. package/dist/components/color-picker/RuiColorInput.vue2.js +5 -0
  95. package/dist/components/color-picker/RuiColorInput.vue2.js.map +1 -0
  96. package/dist/components/color-picker/RuiColorPicker.vue.js +72 -0
  97. package/dist/components/color-picker/RuiColorPicker.vue.js.map +1 -0
  98. package/dist/components/color-picker/RuiColorPicker.vue2.js +5 -0
  99. package/dist/components/color-picker/RuiColorPicker.vue2.js.map +1 -0
  100. package/dist/components/color-picker/utils.js +182 -0
  101. package/dist/components/color-picker/utils.js.map +1 -0
  102. package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +1 -1
  103. package/dist/components/date-time-picker/RuiDateTimePicker.vue.js +11 -0
  104. package/dist/components/date-time-picker/RuiDateTimePicker.vue.js.map +1 -0
  105. package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js +570 -0
  106. package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js.map +1 -0
  107. package/dist/components/date-time-picker/RuiDateTimePicker.vue3.js +66 -0
  108. package/dist/components/date-time-picker/RuiDateTimePicker.vue3.js.map +1 -0
  109. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.d.ts +2 -2
  110. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.js +120 -0
  111. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.js.map +1 -0
  112. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue2.js +5 -0
  113. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue2.js.map +1 -0
  114. package/dist/components/date-time-picker/timezones.js +601 -0
  115. package/dist/components/date-time-picker/timezones.js.map +1 -0
  116. package/dist/components/date-time-picker/types.js +17 -0
  117. package/dist/components/date-time-picker/types.js.map +1 -0
  118. package/dist/components/date-time-picker/use-input-handler.d.ts +2 -2
  119. package/dist/components/date-time-picker/use-input-handler.js +31 -0
  120. package/dist/components/date-time-picker/use-input-handler.js.map +1 -0
  121. package/dist/components/date-time-picker/use-keyboard-handler.d.ts +2 -2
  122. package/dist/components/date-time-picker/use-keyboard-handler.js +308 -0
  123. package/dist/components/date-time-picker/use-keyboard-handler.js.map +1 -0
  124. package/dist/components/date-time-picker/utils.d.ts +1 -1
  125. package/dist/components/date-time-picker/utils.js +19 -0
  126. package/dist/components/date-time-picker/utils.js.map +1 -0
  127. package/dist/components/divider/RuiDivider.vue.js +22 -0
  128. package/dist/components/divider/RuiDivider.vue.js.map +1 -0
  129. package/dist/components/divider/RuiDivider.vue2.js +5 -0
  130. package/dist/components/divider/RuiDivider.vue2.js.map +1 -0
  131. package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +2 -2
  132. package/dist/components/forms/auto-complete/RuiAutoComplete.vue.js +11 -0
  133. package/dist/components/forms/auto-complete/RuiAutoComplete.vue.js.map +1 -0
  134. package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js +585 -0
  135. package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js.map +1 -0
  136. package/dist/components/forms/auto-complete/RuiAutoComplete.vue3.js +60 -0
  137. package/dist/components/forms/auto-complete/RuiAutoComplete.vue3.js.map +1 -0
  138. package/dist/components/forms/checkbox/RuiCheckbox.vue.d.ts +1 -1
  139. package/dist/components/forms/checkbox/RuiCheckbox.vue.js +11 -0
  140. package/dist/components/forms/checkbox/RuiCheckbox.vue.js.map +1 -0
  141. package/dist/components/forms/checkbox/RuiCheckbox.vue2.js +137 -0
  142. package/dist/components/forms/checkbox/RuiCheckbox.vue2.js.map +1 -0
  143. package/dist/components/forms/checkbox/RuiCheckbox.vue3.js +54 -0
  144. package/dist/components/forms/checkbox/RuiCheckbox.vue3.js.map +1 -0
  145. package/dist/components/forms/radio-button/radio/RuiRadio.vue.d.ts +1 -1
  146. package/dist/components/forms/radio-button/radio/RuiRadio.vue.js +11 -0
  147. package/dist/components/forms/radio-button/radio/RuiRadio.vue.js.map +1 -0
  148. package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js +115 -0
  149. package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js.map +1 -0
  150. package/dist/components/forms/radio-button/radio/RuiRadio.vue3.js +54 -0
  151. package/dist/components/forms/radio-button/radio/RuiRadio.vue3.js.map +1 -0
  152. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.d.ts +1 -1
  153. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.js +11 -0
  154. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.js.map +1 -0
  155. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js +78 -0
  156. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js.map +1 -0
  157. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue3.js +9 -0
  158. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue3.js.map +1 -0
  159. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.d.ts +5 -5
  160. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js +82 -0
  161. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js.map +1 -0
  162. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue2.js +5 -0
  163. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue2.js.map +1 -0
  164. package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +2 -2
  165. package/dist/components/forms/select/RuiMenuSelect.vue.js +11 -0
  166. package/dist/components/forms/select/RuiMenuSelect.vue.js.map +1 -0
  167. package/dist/components/forms/select/RuiMenuSelect.vue2.js +297 -0
  168. package/dist/components/forms/select/RuiMenuSelect.vue2.js.map +1 -0
  169. package/dist/components/forms/select/RuiMenuSelect.vue3.js +60 -0
  170. package/dist/components/forms/select/RuiMenuSelect.vue3.js.map +1 -0
  171. package/dist/components/forms/select/RuiSimpleSelect.vue.js +11 -0
  172. package/dist/components/forms/select/RuiSimpleSelect.vue.js.map +1 -0
  173. package/dist/components/forms/select/RuiSimpleSelect.vue2.js +67 -0
  174. package/dist/components/forms/select/RuiSimpleSelect.vue2.js.map +1 -0
  175. package/dist/components/forms/select/RuiSimpleSelect.vue3.js +21 -0
  176. package/dist/components/forms/select/RuiSimpleSelect.vue3.js.map +1 -0
  177. package/dist/components/forms/slider/RuiSlider.vue.d.ts +1 -1
  178. package/dist/components/forms/slider/RuiSlider.vue.js +11 -0
  179. package/dist/components/forms/slider/RuiSlider.vue.js.map +1 -0
  180. package/dist/components/forms/slider/RuiSlider.vue2.js +165 -0
  181. package/dist/components/forms/slider/RuiSlider.vue2.js.map +1 -0
  182. package/dist/components/forms/slider/RuiSlider.vue3.js +80 -0
  183. package/dist/components/forms/slider/RuiSlider.vue3.js.map +1 -0
  184. package/dist/components/forms/switch/RuiSwitch.vue.d.ts +1 -1
  185. package/dist/components/forms/switch/RuiSwitch.vue.js +11 -0
  186. package/dist/components/forms/switch/RuiSwitch.vue.js.map +1 -0
  187. package/dist/components/forms/switch/RuiSwitch.vue2.js +89 -0
  188. package/dist/components/forms/switch/RuiSwitch.vue2.js.map +1 -0
  189. package/dist/components/forms/switch/RuiSwitch.vue3.js +54 -0
  190. package/dist/components/forms/switch/RuiSwitch.vue3.js.map +1 -0
  191. package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +2 -2
  192. package/dist/components/forms/text-area/RuiTextArea.vue.js +11 -0
  193. package/dist/components/forms/text-area/RuiTextArea.vue.js.map +1 -0
  194. package/dist/components/forms/text-area/RuiTextArea.vue2.js +252 -0
  195. package/dist/components/forms/text-area/RuiTextArea.vue2.js.map +1 -0
  196. package/dist/components/forms/text-area/RuiTextArea.vue3.js +92 -0
  197. package/dist/components/forms/text-area/RuiTextArea.vue3.js.map +1 -0
  198. package/dist/components/forms/text-field/RuiTextField.vue.d.ts +2 -2
  199. package/dist/components/forms/text-field/RuiTextField.vue.js +11 -0
  200. package/dist/components/forms/text-field/RuiTextField.vue.js.map +1 -0
  201. package/dist/components/forms/text-field/RuiTextField.vue2.js +220 -0
  202. package/dist/components/forms/text-field/RuiTextField.vue2.js.map +1 -0
  203. package/dist/components/forms/text-field/RuiTextField.vue3.js +89 -0
  204. package/dist/components/forms/text-field/RuiTextField.vue3.js.map +1 -0
  205. package/dist/components/helpers/RuiFormTextDetail.vue.js +54 -0
  206. package/dist/components/helpers/RuiFormTextDetail.vue.js.map +1 -0
  207. package/dist/components/helpers/RuiFormTextDetail.vue2.js +5 -0
  208. package/dist/components/helpers/RuiFormTextDetail.vue2.js.map +1 -0
  209. package/dist/components/icons/RuiIcon.vue.d.ts +2 -2
  210. package/dist/components/icons/RuiIcon.vue.js +11 -0
  211. package/dist/components/icons/RuiIcon.vue.js.map +1 -0
  212. package/dist/components/icons/RuiIcon.vue2.js +60 -0
  213. package/dist/components/icons/RuiIcon.vue2.js.map +1 -0
  214. package/dist/components/icons/RuiIcon.vue3.js +29 -0
  215. package/dist/components/icons/RuiIcon.vue3.js.map +1 -0
  216. package/dist/components/index.d.ts +45 -45
  217. package/dist/components/index.js +92 -0
  218. package/dist/components/index.js.map +1 -0
  219. package/dist/components/loaders/RuiSkeletonBase.vue.js +11 -0
  220. package/dist/components/loaders/RuiSkeletonBase.vue.js.map +1 -0
  221. package/dist/components/loaders/RuiSkeletonBase.vue2.js +22 -0
  222. package/dist/components/loaders/RuiSkeletonBase.vue2.js.map +1 -0
  223. package/dist/components/loaders/RuiSkeletonBase.vue3.js +12 -0
  224. package/dist/components/loaders/RuiSkeletonBase.vue3.js.map +1 -0
  225. package/dist/components/loaders/RuiSkeletonLoader.vue.d.ts +1 -1
  226. package/dist/components/loaders/RuiSkeletonLoader.vue.js +11 -0
  227. package/dist/components/loaders/RuiSkeletonLoader.vue.js.map +1 -0
  228. package/dist/components/loaders/RuiSkeletonLoader.vue2.js +47 -0
  229. package/dist/components/loaders/RuiSkeletonLoader.vue2.js.map +1 -0
  230. package/dist/components/loaders/RuiSkeletonLoader.vue3.js +33 -0
  231. package/dist/components/loaders/RuiSkeletonLoader.vue3.js.map +1 -0
  232. package/dist/components/logos/RuiLogo.vue.js +114 -0
  233. package/dist/components/logos/RuiLogo.vue.js.map +1 -0
  234. package/dist/components/logos/RuiLogo.vue2.js +5 -0
  235. package/dist/components/logos/RuiLogo.vue2.js.map +1 -0
  236. package/dist/components/logos/logo.svg.js +5 -0
  237. package/dist/components/logos/logo.svg.js.map +1 -0
  238. package/dist/components/overlays/badge/RuiBadge.vue.d.ts +2 -2
  239. package/dist/components/overlays/badge/RuiBadge.vue.js +11 -0
  240. package/dist/components/overlays/badge/RuiBadge.vue.js.map +1 -0
  241. package/dist/components/overlays/badge/RuiBadge.vue2.js +95 -0
  242. package/dist/components/overlays/badge/RuiBadge.vue2.js.map +1 -0
  243. package/dist/components/overlays/badge/RuiBadge.vue3.js +77 -0
  244. package/dist/components/overlays/badge/RuiBadge.vue3.js.map +1 -0
  245. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js +34 -0
  246. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js.map +1 -0
  247. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue2.js +5 -0
  248. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue2.js.map +1 -0
  249. package/dist/components/overlays/dialog/RuiDialog.vue.js +11 -0
  250. package/dist/components/overlays/dialog/RuiDialog.vue.js.map +1 -0
  251. package/dist/components/overlays/dialog/RuiDialog.vue2.js +172 -0
  252. package/dist/components/overlays/dialog/RuiDialog.vue2.js.map +1 -0
  253. package/dist/components/overlays/dialog/RuiDialog.vue3.js +18 -0
  254. package/dist/components/overlays/dialog/RuiDialog.vue3.js.map +1 -0
  255. package/dist/components/overlays/menu/RuiMenu.vue.d.ts +1 -1
  256. package/dist/components/overlays/menu/RuiMenu.vue.js +11 -0
  257. package/dist/components/overlays/menu/RuiMenu.vue.js.map +1 -0
  258. package/dist/components/overlays/menu/RuiMenu.vue2.js +221 -0
  259. package/dist/components/overlays/menu/RuiMenu.vue2.js.map +1 -0
  260. package/dist/components/overlays/menu/RuiMenu.vue3.js +21 -0
  261. package/dist/components/overlays/menu/RuiMenu.vue3.js.map +1 -0
  262. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.js +11 -0
  263. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.js.map +1 -0
  264. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js +112 -0
  265. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js.map +1 -0
  266. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue3.js +28 -0
  267. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue3.js.map +1 -0
  268. package/dist/components/overlays/notification/RuiNotification.vue.js +74 -0
  269. package/dist/components/overlays/notification/RuiNotification.vue.js.map +1 -0
  270. package/dist/components/overlays/notification/RuiNotification.vue2.js +5 -0
  271. package/dist/components/overlays/notification/RuiNotification.vue2.js.map +1 -0
  272. package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +1 -1
  273. package/dist/components/overlays/tooltip/RuiTooltip.vue.js +11 -0
  274. package/dist/components/overlays/tooltip/RuiTooltip.vue.js.map +1 -0
  275. package/dist/components/overlays/tooltip/RuiTooltip.vue2.js +105 -0
  276. package/dist/components/overlays/tooltip/RuiTooltip.vue2.js.map +1 -0
  277. package/dist/components/overlays/tooltip/RuiTooltip.vue3.js +27 -0
  278. package/dist/components/overlays/tooltip/RuiTooltip.vue3.js.map +1 -0
  279. package/dist/components/progress/RuiProgress.vue.d.ts +1 -1
  280. package/dist/components/progress/RuiProgress.vue.js +11 -0
  281. package/dist/components/progress/RuiProgress.vue.js.map +1 -0
  282. package/dist/components/progress/RuiProgress.vue2.js +98 -0
  283. package/dist/components/progress/RuiProgress.vue2.js.map +1 -0
  284. package/dist/components/progress/RuiProgress.vue3.js +48 -0
  285. package/dist/components/progress/RuiProgress.vue3.js.map +1 -0
  286. package/dist/components/steppers/RuiFooterStepper.vue.js +11 -0
  287. package/dist/components/steppers/RuiFooterStepper.vue.js.map +1 -0
  288. package/dist/components/steppers/RuiFooterStepper.vue2.js +143 -0
  289. package/dist/components/steppers/RuiFooterStepper.vue2.js.map +1 -0
  290. package/dist/components/steppers/RuiFooterStepper.vue3.js +31 -0
  291. package/dist/components/steppers/RuiFooterStepper.vue3.js.map +1 -0
  292. package/dist/components/steppers/RuiStepper.vue.d.ts +1 -1
  293. package/dist/components/steppers/RuiStepper.vue.js +11 -0
  294. package/dist/components/steppers/RuiStepper.vue.js.map +1 -0
  295. package/dist/components/steppers/RuiStepper.vue2.js +130 -0
  296. package/dist/components/steppers/RuiStepper.vue2.js.map +1 -0
  297. package/dist/components/steppers/RuiStepper.vue3.js +58 -0
  298. package/dist/components/steppers/RuiStepper.vue3.js.map +1 -0
  299. package/dist/components/steppers/RuiStepperCustomIcon.vue.d.ts +1 -1
  300. package/dist/components/steppers/RuiStepperCustomIcon.vue.js +11 -0
  301. package/dist/components/steppers/RuiStepperCustomIcon.vue.js.map +1 -0
  302. package/dist/components/steppers/RuiStepperCustomIcon.vue2.js +38 -0
  303. package/dist/components/steppers/RuiStepperCustomIcon.vue2.js.map +1 -0
  304. package/dist/components/steppers/RuiStepperCustomIcon.vue3.js +15 -0
  305. package/dist/components/steppers/RuiStepperCustomIcon.vue3.js.map +1 -0
  306. package/dist/components/steppers/RuiStepperIcon.vue.d.ts +1 -1
  307. package/dist/components/steppers/RuiStepperIcon.vue.js +11 -0
  308. package/dist/components/steppers/RuiStepperIcon.vue.js.map +1 -0
  309. package/dist/components/steppers/RuiStepperIcon.vue2.js +43 -0
  310. package/dist/components/steppers/RuiStepperIcon.vue2.js.map +1 -0
  311. package/dist/components/steppers/RuiStepperIcon.vue3.js +21 -0
  312. package/dist/components/steppers/RuiStepperIcon.vue3.js.map +1 -0
  313. package/dist/components/tables/RuiDataTable.vue.d.ts +2 -2
  314. package/dist/components/tables/RuiDataTable.vue.js +11 -0
  315. package/dist/components/tables/RuiDataTable.vue.js.map +1 -0
  316. package/dist/components/tables/RuiDataTable.vue2.js +943 -0
  317. package/dist/components/tables/RuiDataTable.vue2.js.map +1 -0
  318. package/dist/components/tables/RuiDataTable.vue3.js +79 -0
  319. package/dist/components/tables/RuiDataTable.vue3.js.map +1 -0
  320. package/dist/components/tables/RuiExpandButton.vue.d.ts +1 -1
  321. package/dist/components/tables/RuiExpandButton.vue.js +11 -0
  322. package/dist/components/tables/RuiExpandButton.vue.js.map +1 -0
  323. package/dist/components/tables/RuiExpandButton.vue2.js +42 -0
  324. package/dist/components/tables/RuiExpandButton.vue2.js.map +1 -0
  325. package/dist/components/tables/RuiExpandButton.vue3.js +15 -0
  326. package/dist/components/tables/RuiExpandButton.vue3.js.map +1 -0
  327. package/dist/components/tables/RuiTableHead.vue.js +11 -0
  328. package/dist/components/tables/RuiTableHead.vue.js.map +1 -0
  329. package/dist/components/tables/RuiTableHead.vue2.js +195 -0
  330. package/dist/components/tables/RuiTableHead.vue2.js.map +1 -0
  331. package/dist/components/tables/RuiTableHead.vue3.js +69 -0
  332. package/dist/components/tables/RuiTableHead.vue3.js.map +1 -0
  333. package/dist/components/tables/RuiTablePagination.vue.js +11 -0
  334. package/dist/components/tables/RuiTablePagination.vue.js.map +1 -0
  335. package/dist/components/tables/RuiTablePagination.vue2.js +196 -0
  336. package/dist/components/tables/RuiTablePagination.vue2.js.map +1 -0
  337. package/dist/components/tables/RuiTablePagination.vue3.js +28 -0
  338. package/dist/components/tables/RuiTablePagination.vue3.js.map +1 -0
  339. package/dist/components/tables/table_no_data_placeholder.svg.js +5 -0
  340. package/dist/components/tables/table_no_data_placeholder.svg.js.map +1 -0
  341. package/dist/components/tables/table_no_data_placeholder_dark.svg.js +5 -0
  342. package/dist/components/tables/table_no_data_placeholder_dark.svg.js.map +1 -0
  343. package/dist/components/tabs/tab/RuiTab.vue.d.ts +1 -1
  344. package/dist/components/tabs/tab/RuiTab.vue.js +11 -0
  345. package/dist/components/tabs/tab/RuiTab.vue.js.map +1 -0
  346. package/dist/components/tabs/tab/RuiTab.vue2.js +135 -0
  347. package/dist/components/tabs/tab/RuiTab.vue2.js.map +1 -0
  348. package/dist/components/tabs/tab/RuiTab.vue3.js +17 -0
  349. package/dist/components/tabs/tab/RuiTab.vue3.js.map +1 -0
  350. package/dist/components/tabs/tab-item/RuiTabItem.vue.js +11 -0
  351. package/dist/components/tabs/tab-item/RuiTabItem.vue.js.map +1 -0
  352. package/dist/components/tabs/tab-item/RuiTabItem.vue2.js +51 -0
  353. package/dist/components/tabs/tab-item/RuiTabItem.vue2.js.map +1 -0
  354. package/dist/components/tabs/tab-item/RuiTabItem.vue3.js +9 -0
  355. package/dist/components/tabs/tab-item/RuiTabItem.vue3.js.map +1 -0
  356. package/dist/components/tabs/tab-items/RuiTabItems.vue.js +11 -0
  357. package/dist/components/tabs/tab-items/RuiTabItems.vue.js.map +1 -0
  358. package/dist/components/tabs/tab-items/RuiTabItems.vue2.js +90 -0
  359. package/dist/components/tabs/tab-items/RuiTabItems.vue2.js.map +1 -0
  360. package/dist/components/tabs/tab-items/RuiTabItems.vue3.js +9 -0
  361. package/dist/components/tabs/tab-items/RuiTabItems.vue3.js.map +1 -0
  362. package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +1 -1
  363. package/dist/components/tabs/tabs/RuiTabs.vue.js +11 -0
  364. package/dist/components/tabs/tabs/RuiTabs.vue.js.map +1 -0
  365. package/dist/components/tabs/tabs/RuiTabs.vue2.js +281 -0
  366. package/dist/components/tabs/tabs/RuiTabs.vue2.js.map +1 -0
  367. package/dist/components/tabs/tabs/RuiTabs.vue3.js +20 -0
  368. package/dist/components/tabs/tabs/RuiTabs.vue3.js.map +1 -0
  369. package/dist/components/time-picker/RuiTimePicker.vue.d.ts +1 -1
  370. package/dist/components/time-picker/RuiTimePicker.vue.js +11 -0
  371. package/dist/components/time-picker/RuiTimePicker.vue.js.map +1 -0
  372. package/dist/components/time-picker/RuiTimePicker.vue2.js +414 -0
  373. package/dist/components/time-picker/RuiTimePicker.vue2.js.map +1 -0
  374. package/dist/components/time-picker/RuiTimePicker.vue3.js +21 -0
  375. package/dist/components/time-picker/RuiTimePicker.vue3.js.map +1 -0
  376. package/dist/composables/breakpoint.js +49 -0
  377. package/dist/composables/breakpoint.js.map +1 -0
  378. package/dist/composables/defaults/table.js +23 -0
  379. package/dist/composables/defaults/table.js.map +1 -0
  380. package/dist/composables/dropdown-menu.js +218 -0
  381. package/dist/composables/dropdown-menu.js.map +1 -0
  382. package/dist/composables/forms/auto-complete/focus.js +71 -0
  383. package/dist/composables/forms/auto-complete/focus.js.map +1 -0
  384. package/dist/composables/forms/auto-complete/index.d.ts +4 -4
  385. package/dist/composables/forms/auto-complete/keyboard-navigation.js +133 -0
  386. package/dist/composables/forms/auto-complete/keyboard-navigation.js.map +1 -0
  387. package/dist/composables/forms/auto-complete/search.js +93 -0
  388. package/dist/composables/forms/auto-complete/search.js.map +1 -0
  389. package/dist/composables/forms/auto-complete/value.js +129 -0
  390. package/dist/composables/forms/auto-complete/value.js.map +1 -0
  391. package/dist/composables/icons.js +60 -0
  392. package/dist/composables/icons.js.map +1 -0
  393. package/dist/composables/index.d.ts +3 -3
  394. package/dist/composables/index.js +9 -0
  395. package/dist/composables/index.js.map +1 -0
  396. package/dist/composables/popper.js +164 -0
  397. package/dist/composables/popper.js.map +1 -0
  398. package/dist/composables/sticky-header.js +105 -0
  399. package/dist/composables/sticky-header.js.map +1 -0
  400. package/dist/composables/theme.d.ts +1 -1
  401. package/dist/composables/theme.js +75 -0
  402. package/dist/composables/theme.js.map +1 -0
  403. package/dist/composables/timeout-manager.js +21 -0
  404. package/dist/composables/timeout-manager.js.map +1 -0
  405. package/dist/composables/use-rui-i18n.js +24 -0
  406. package/dist/composables/use-rui-i18n.js.map +1 -0
  407. package/dist/consts/colors.js +50 -0
  408. package/dist/consts/colors.js.map +1 -0
  409. package/dist/consts/time-accuracy.js +9 -0
  410. package/dist/consts/time-accuracy.js.map +1 -0
  411. package/dist/i18n/keys.js +20 -0
  412. package/dist/i18n/keys.js.map +1 -0
  413. package/dist/icons/icons_1.js +2503 -0
  414. package/dist/icons/icons_1.js.map +1 -0
  415. package/dist/icons/icons_2.js +2503 -0
  416. package/dist/icons/icons_2.js.map +1 -0
  417. package/dist/icons/icons_3.js +2503 -0
  418. package/dist/icons/icons_3.js.map +1 -0
  419. package/dist/icons/icons_4.js +923 -0
  420. package/dist/icons/icons_4.js.map +1 -0
  421. package/dist/icons/index.d.ts +4 -4
  422. package/dist/icons/index.js +9 -0
  423. package/dist/icons/index.js.map +1 -0
  424. package/dist/index.d.ts +11 -11
  425. package/dist/index.js +1852 -0
  426. package/dist/index.js.map +1 -0
  427. package/dist/style.css +12852 -1
  428. package/dist/theme/index.js +185 -0
  429. package/dist/theme/index.js.map +1 -0
  430. package/dist/types/stepper.js +17 -0
  431. package/dist/types/stepper.js.map +1 -0
  432. package/dist/types/theme.js +27 -0
  433. package/dist/types/theme.js.map +1 -0
  434. package/dist/utils/assert.js +14 -0
  435. package/dist/utils/assert.js.map +1 -0
  436. package/dist/utils/blockie.js +79 -0
  437. package/dist/utils/blockie.js.map +1 -0
  438. package/dist/utils/form-text-detail.js +31 -0
  439. package/dist/utils/form-text-detail.js.map +1 -0
  440. package/dist/utils/generate-id.js +21 -0
  441. package/dist/utils/generate-id.js.map +1 -0
  442. package/dist/utils/helpers.js +51 -0
  443. package/dist/utils/helpers.js.map +1 -0
  444. package/dist/utils/is-equal.js +33 -0
  445. package/dist/utils/is-equal.js.map +1 -0
  446. package/dist/web-types.json +1 -1
  447. package/package.json +16 -14
  448. package/dist/components/index.es.js +0 -8030
  449. package/dist/composables/index-CC7A7CEh.js +0 -737
  450. package/dist/composables/index.es.js +0 -7
  451. package/dist/consts/colors-D563Ic3q.js +0 -48
  452. package/dist/consts/forms/auto-complete/index-l0sNRNKZ.js +0 -2
  453. package/dist/consts/time-accuracy-BnKA5GyT.js +0 -9
  454. package/dist/i18n/keys-CNGXWOJX.js +0 -20
  455. package/dist/icons/icons_1.es.js +0 -2004
  456. package/dist/icons/icons_2.es.js +0 -2004
  457. package/dist/icons/icons_3.es.js +0 -2004
  458. package/dist/icons/icons_4.es.js +0 -740
  459. package/dist/icons/index.es.js +0 -1697
  460. package/dist/index-D7l4d7N2.js +0 -54
  461. package/dist/index.es.js +0 -1757
  462. package/dist/theme/index.es.js +0 -177
  463. package/dist/types/index-CN6Ip1GL.js +0 -39
  464. package/dist/utils/index-DJ-ueLCs.js +0 -158
  465. package/dist/vendor-Hqbg5uCG.js +0 -1931
@@ -0,0 +1,129 @@
1
+ import { get, set } from "@vueuse/shared";
2
+ import { assert } from "../../../utils/assert.js";
3
+ import { computed } from "vue";
4
+ function useAutoCompleteValue(modelValue, options, opts, deps) {
5
+ const multiple = computed(() => Array.isArray(get(modelValue)));
6
+ const optionsMap = computed(() => {
7
+ const map = /* @__PURE__ */ new Map();
8
+ const optionsData = get(options);
9
+ for (const item of optionsData) {
10
+ map.set(deps.getIdentifier(item), item);
11
+ }
12
+ return map;
13
+ });
14
+ function convertModelValueToArray(modelValueData) {
15
+ if (!modelValueData)
16
+ return [];
17
+ return Array.isArray(modelValueData) ? modelValueData : [modelValueData];
18
+ }
19
+ function filterValuesByOptions(valueArray, optionsMapData, customValue, returnObject) {
20
+ const filtered = [];
21
+ filtered.length = valueArray.length;
22
+ let index = 0;
23
+ for (const val of valueArray) {
24
+ const identifier = deps.getIdentifier(val);
25
+ const inOptions = optionsMapData.get(identifier);
26
+ if (inOptions) {
27
+ filtered[index++] = inOptions;
28
+ } else if (customValue) {
29
+ filtered[index++] = deps.textValueToProperValue(val, returnObject);
30
+ }
31
+ }
32
+ filtered.length = index;
33
+ return filtered;
34
+ }
35
+ function filterValuesByIdentifier(valueArray, optionsMapData, customValue, returnObject) {
36
+ const filtered = [];
37
+ filtered.length = valueArray.length;
38
+ let index = 0;
39
+ for (const val of valueArray) {
40
+ const inOptions = optionsMapData.get(val);
41
+ if (inOptions) {
42
+ filtered[index++] = inOptions;
43
+ } else if (customValue) {
44
+ filtered[index++] = deps.textValueToProperValue(val, returnObject);
45
+ }
46
+ }
47
+ filtered.length = index;
48
+ return filtered;
49
+ }
50
+ function processReturnObjectValue(modelValueData, optionsMapData, returnObject, customValue, shouldUpdateInternalSearch) {
51
+ const multipleValue = Array.isArray(modelValueData);
52
+ const valueArray = convertModelValueToArray(modelValueData);
53
+ const filtered = filterValuesByOptions(valueArray, optionsMapData, customValue, returnObject);
54
+ if (multipleValue || filtered.length === 0) {
55
+ if (shouldUpdateInternalSearch)
56
+ deps.updateInternalSearch();
57
+ return filtered;
58
+ }
59
+ const val = filtered[0];
60
+ assert(val);
61
+ if (shouldUpdateInternalSearch)
62
+ deps.updateInternalSearch(deps.getText(val));
63
+ return [val];
64
+ }
65
+ function processStandardValue(modelValueData, optionsMapData, returnObject, customValue, shouldUpdateInternalSearch) {
66
+ const valueArray = convertModelValueToArray(modelValueData);
67
+ const filtered = filterValuesByIdentifier(valueArray, optionsMapData, customValue, returnObject);
68
+ if (shouldUpdateInternalSearch) {
69
+ if (filtered.length > 0) {
70
+ const firstItem = filtered[0];
71
+ assert(firstItem);
72
+ deps.updateInternalSearch(deps.getText(firstItem));
73
+ } else {
74
+ deps.updateInternalSearch();
75
+ }
76
+ }
77
+ return filtered;
78
+ }
79
+ function onUpdateModelValue(value2) {
80
+ set(modelValue, value2);
81
+ }
82
+ function setSelected(selected) {
83
+ const keyAttr = get(opts.keyAttr);
84
+ const returnObject = get(opts.returnObject);
85
+ const selection = keyAttr && !returnObject ? selected.map((item) => item[keyAttr]) : selected;
86
+ if (get(multiple))
87
+ return onUpdateModelValue(selection);
88
+ if (selection.length === 0)
89
+ return onUpdateModelValue(void 0);
90
+ return onUpdateModelValue(selection[0]);
91
+ }
92
+ const value = computed({
93
+ get: () => {
94
+ const modelValueData = get(modelValue);
95
+ const keyAttr = get(opts.keyAttr);
96
+ const returnObject = get(opts.returnObject) ?? false;
97
+ const customValue = get(opts.customValue) ?? false;
98
+ const optionsMapData = get(optionsMap);
99
+ const shouldUpdateInternalSearch = get(deps.shouldApplyValueAsSearch) && !get(deps.isOpen);
100
+ if (keyAttr && returnObject) {
101
+ return processReturnObjectValue(
102
+ modelValueData,
103
+ optionsMapData,
104
+ returnObject,
105
+ customValue,
106
+ shouldUpdateInternalSearch
107
+ );
108
+ }
109
+ return processStandardValue(
110
+ modelValueData,
111
+ optionsMapData,
112
+ returnObject,
113
+ customValue,
114
+ shouldUpdateInternalSearch
115
+ );
116
+ },
117
+ set: (selected) => {
118
+ setSelected(selected);
119
+ }
120
+ });
121
+ return {
122
+ setSelected,
123
+ value
124
+ };
125
+ }
126
+ export {
127
+ useAutoCompleteValue
128
+ };
129
+ //# sourceMappingURL=value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value.js","sources":["../../../../src/composables/forms/auto-complete/value.ts"],"sourcesContent":["import type { ComputedRef, MaybeRef, Ref } from 'vue';\nimport { get, set } from '@vueuse/shared';\nimport { assert } from '@/utils/assert';\n\nexport interface UseAutoCompleteValueOptions<TItem> {\n keyAttr?: MaybeRef<keyof TItem | undefined>;\n returnObject?: MaybeRef<boolean>;\n customValue?: MaybeRef<boolean>;\n}\n\nexport interface UseAutoCompleteValueReturn<TItem> {\n value: ComputedRef<TItem[]>;\n setSelected: (selected: TItem[]) => void;\n}\n\nexport interface UseAutoCompleteValueDeps<TItem> {\n getIdentifier: (item: TItem) => any;\n getText: (item: TItem) => string | undefined;\n textValueToProperValue: (val: any, returnObject?: boolean) => TItem;\n shouldApplyValueAsSearch: MaybeRef<boolean>;\n isOpen: MaybeRef<boolean>;\n updateInternalSearch: (value?: string) => void;\n}\n\nexport function useAutoCompleteValue<TValue, TItem>(\n modelValue: Ref<TValue | undefined>,\n options: MaybeRef<TItem[]>,\n opts: UseAutoCompleteValueOptions<TItem>,\n deps: UseAutoCompleteValueDeps<TItem>,\n): UseAutoCompleteValueReturn<TItem> {\n const multiple = computed<boolean>(() => Array.isArray(get(modelValue)));\n\n // Create maps for O(1) lookup performance\n const optionsMap = computed<Map<any, TItem>>(() => {\n const map = new Map<any, TItem>();\n const optionsData = get(options);\n for (const item of optionsData) {\n map.set(deps.getIdentifier(item), item);\n }\n return map;\n });\n\n function convertModelValueToArray(modelValueData: TValue | undefined): any[] {\n if (!modelValueData)\n return [];\n return Array.isArray(modelValueData) ? modelValueData : [modelValueData];\n }\n\n function filterValuesByOptions(\n valueArray: any[],\n optionsMapData: Map<any, TItem>,\n customValue: boolean,\n returnObject: boolean,\n ): TItem[] {\n const filtered: TItem[] = [];\n filtered.length = valueArray.length; // Pre-allocate array size\n let index = 0;\n\n for (const val of valueArray) {\n const identifier = deps.getIdentifier(val);\n const inOptions = optionsMapData.get(identifier);\n\n if (inOptions) {\n filtered[index++] = inOptions;\n }\n else if (customValue) {\n filtered[index++] = deps.textValueToProperValue(val, returnObject);\n }\n }\n\n filtered.length = index; // Trim to actual size\n return filtered;\n }\n\n function filterValuesByIdentifier(\n valueArray: any[],\n optionsMapData: Map<any, TItem>,\n customValue: boolean,\n returnObject: boolean,\n ): TItem[] {\n const filtered: TItem[] = [];\n filtered.length = valueArray.length; // Pre-allocate array size\n let index = 0;\n\n for (const val of valueArray) {\n const inOptions = optionsMapData.get(val);\n\n if (inOptions) {\n filtered[index++] = inOptions;\n }\n else if (customValue) {\n filtered[index++] = deps.textValueToProperValue(val, returnObject);\n }\n }\n\n filtered.length = index; // Trim to actual size\n return filtered;\n }\n\n function processReturnObjectValue(\n modelValueData: TValue | undefined,\n optionsMapData: Map<any, TItem>,\n returnObject: boolean,\n customValue: boolean,\n shouldUpdateInternalSearch: boolean,\n ): TItem[] {\n const multipleValue = Array.isArray(modelValueData);\n const valueArray = convertModelValueToArray(modelValueData);\n const filtered = filterValuesByOptions(valueArray, optionsMapData, customValue, returnObject);\n\n if (multipleValue || filtered.length === 0) {\n if (shouldUpdateInternalSearch)\n deps.updateInternalSearch();\n return filtered;\n }\n\n const val = filtered[0];\n assert(val);\n if (shouldUpdateInternalSearch)\n deps.updateInternalSearch(deps.getText(val));\n return [val];\n }\n\n function processStandardValue(\n modelValueData: TValue | undefined,\n optionsMapData: Map<any, TItem>,\n returnObject: boolean,\n customValue: boolean,\n shouldUpdateInternalSearch: boolean,\n ): TItem[] {\n const valueArray = convertModelValueToArray(modelValueData);\n const filtered = filterValuesByIdentifier(valueArray, optionsMapData, customValue, returnObject);\n\n if (shouldUpdateInternalSearch) {\n if (filtered.length > 0) {\n const firstItem = filtered[0];\n assert(firstItem);\n deps.updateInternalSearch(deps.getText(firstItem));\n }\n else {\n deps.updateInternalSearch();\n }\n }\n\n return filtered;\n }\n\n function onUpdateModelValue(value: TValue | undefined): void {\n set(modelValue, value);\n }\n\n function setSelected(selected: TItem[]): void {\n const keyAttr = get(opts.keyAttr);\n const returnObject = get(opts.returnObject);\n const selection = keyAttr && !returnObject ? selected.map(item => item[keyAttr]) : selected;\n\n if (get(multiple))\n return onUpdateModelValue(selection as TValue);\n\n if (selection.length === 0)\n return onUpdateModelValue(undefined);\n\n return onUpdateModelValue(selection[0] as TValue);\n }\n\n const value = computed<TItem[]>({\n get: () => {\n const modelValueData = get(modelValue);\n const keyAttr = get(opts.keyAttr);\n const returnObject = get(opts.returnObject) ?? false;\n const customValue = get(opts.customValue) ?? false;\n const optionsMapData = get(optionsMap);\n const shouldUpdateInternalSearch = get(deps.shouldApplyValueAsSearch) && !get(deps.isOpen);\n\n if (keyAttr && returnObject) {\n return processReturnObjectValue(\n modelValueData,\n optionsMapData,\n returnObject,\n customValue,\n shouldUpdateInternalSearch,\n );\n }\n\n return processStandardValue(\n modelValueData,\n optionsMapData,\n returnObject,\n customValue,\n shouldUpdateInternalSearch,\n );\n },\n set: (selected: TItem[]): void => {\n setSelected(selected);\n },\n });\n\n return {\n setSelected,\n value,\n };\n}\n"],"names":["value"],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { LuChevronsUpDown, LuArrowUp, LuArrowDown, LuArrowLeft, LuArrowRight, LuChevronUp, LuChevronDown, LuChevronLeft, LuChevronRight, LuChevronsLeft, LuChevronsRight, LuCircleAlert, LuCheck, LuCircleX, LuCircleCheck, LuCheckboxBlank, LuCheckboxFill, LuCheckboxIndeterminateFill, LuCheckboxBlankCircle, LuCheckboxBlankCircleFill, LuRadioButtonFill, LuClock } from "../icons/icons_1.js";
2
+ import { LuEllipsis, LuInfo, LuEye, LuEyeOff } from "../icons/icons_2.js";
3
+ import { LuTriangleAlert, LuX } from "../icons/icons_4.js";
4
+ import { inject } from "vue";
5
+ import { assert } from "../utils/assert.js";
6
+ const requiredIcons = [
7
+ LuChevronsUpDown,
8
+ LuEllipsis,
9
+ LuTriangleAlert,
10
+ LuX,
11
+ LuInfo,
12
+ LuArrowUp,
13
+ LuArrowDown,
14
+ LuArrowLeft,
15
+ LuArrowRight,
16
+ LuChevronUp,
17
+ LuChevronDown,
18
+ LuChevronLeft,
19
+ LuChevronRight,
20
+ LuChevronsLeft,
21
+ LuChevronsRight,
22
+ LuCircleAlert,
23
+ LuEye,
24
+ LuEyeOff,
25
+ LuCheck,
26
+ LuCircleX,
27
+ LuCircleCheck,
28
+ LuCheckboxBlank,
29
+ LuCheckboxFill,
30
+ LuCheckboxIndeterminateFill,
31
+ LuCheckboxBlankCircle,
32
+ LuCheckboxBlankCircleFill,
33
+ LuRadioButtonFill,
34
+ LuClock
35
+ ];
36
+ const IconsSymbol = Symbol.for("rui:icons");
37
+ function createIconDefaults(options) {
38
+ const iconsToAdd = options?.registeredIcons || [];
39
+ return {
40
+ registeredIcons: {
41
+ ...Object.fromEntries(
42
+ [
43
+ ...requiredIcons,
44
+ ...iconsToAdd
45
+ ].map(({ components, name }) => [name, components])
46
+ )
47
+ }
48
+ };
49
+ }
50
+ function useIcons() {
51
+ const icons = inject(IconsSymbol);
52
+ assert(icons, "Could not find icons injection");
53
+ return icons;
54
+ }
55
+ export {
56
+ IconsSymbol,
57
+ createIconDefaults,
58
+ useIcons
59
+ };
60
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.js","sources":["../../src/composables/icons.ts"],"sourcesContent":["import type { InjectionKey } from 'vue';\nimport type { GeneratedIcon } from '@/types/icons';\nimport {\n LuArrowDown,\n LuArrowLeft,\n LuArrowRight,\n LuArrowUp,\n LuCheck,\n LuCheckboxBlank,\n LuCheckboxBlankCircle,\n LuCheckboxBlankCircleFill,\n LuCheckboxFill,\n LuCheckboxIndeterminateFill,\n LuChevronDown,\n LuChevronLeft,\n LuChevronRight,\n LuChevronsLeft,\n LuChevronsRight,\n LuChevronsUpDown,\n LuChevronUp,\n LuCircleAlert,\n LuCircleCheck,\n LuCircleX,\n LuClock,\n LuEllipsis,\n LuEye,\n LuEyeOff,\n LuInfo,\n LuRadioButtonFill,\n LuTriangleAlert,\n LuX,\n} from '@/icons';\n\nconst requiredIcons: GeneratedIcon[] = [\n LuChevronsUpDown,\n LuEllipsis,\n LuTriangleAlert,\n LuX,\n LuInfo,\n LuArrowUp,\n LuArrowDown,\n LuArrowLeft,\n LuArrowRight,\n LuChevronUp,\n LuChevronDown,\n LuChevronLeft,\n LuChevronRight,\n LuChevronsLeft,\n LuChevronsRight,\n LuCircleAlert,\n LuEye,\n LuEyeOff,\n LuCheck,\n LuCircleX,\n LuCircleCheck,\n LuCheckboxBlank,\n LuCheckboxFill,\n LuCheckboxIndeterminateFill,\n LuCheckboxBlankCircle,\n LuCheckboxBlankCircleFill,\n LuRadioButtonFill,\n LuClock,\n];\n\nexport interface IconsOptions {\n registeredIcons: GeneratedIcon[];\n}\n\nexport interface UseIconsReturn {\n registeredIcons: Readonly<Record<string, [string, Record<string, string>][]>>;\n}\n\nexport const IconsSymbol: InjectionKey<UseIconsReturn> = Symbol.for('rui:icons');\n\nexport function createIconDefaults(options?: Partial<IconsOptions>): UseIconsReturn {\n const iconsToAdd = options?.registeredIcons || [];\n return {\n registeredIcons: {\n ...Object.fromEntries(\n [\n ...requiredIcons,\n ...iconsToAdd,\n ].map(({ components, name }) => [name, components]),\n ),\n },\n };\n}\n\nexport function useIcons(): UseIconsReturn {\n const icons = inject(IconsSymbol);\n assert(icons, 'Could not find icons injection');\n return icons;\n}\n"],"names":[],"mappings":";;;;;AAiCA,MAAM,gBAAiC;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAUO,MAAM,cAA4C,OAAO,IAAI,WAAW;AAExE,SAAS,mBAAmB,SAAiD;AAClF,QAAM,aAAa,SAAS,mBAAmB,CAAA;AAC/C,SAAO;AAAA,IACL,iBAAiB;AAAA,MACf,GAAG,OAAO;AAAA,QACR;AAAA,UACE,GAAG;AAAA,UACH,GAAG;AAAA,QAAA,EACH,IAAI,CAAC,EAAE,YAAY,WAAW,CAAC,MAAM,UAAU,CAAC;AAAA,MAAA;AAAA,IACpD;AAAA,EACF;AAEJ;AAEO,SAAS,WAA2B;AACzC,QAAM,QAAQ,OAAO,WAAW;AAChC,SAAO,OAAO,gCAAgC;AAC9C,SAAO;AACT;"}
@@ -1,3 +1,3 @@
1
- export { useBreakpoint } from '../composables/breakpoint';
2
- export { useIcons } from '../composables/icons';
3
- export { useRotkiTheme } from '../composables/theme';
1
+ export { useBreakpoint } from '../composables/breakpoint.js';
2
+ export { useIcons } from '../composables/icons.js';
3
+ export { useRotkiTheme } from '../composables/theme.js';
@@ -0,0 +1,9 @@
1
+ import { useBreakpoint } from "./breakpoint.js";
2
+ import { useIcons } from "./icons.js";
3
+ import { useRotkiTheme } from "./theme.js";
4
+ export {
5
+ useBreakpoint,
6
+ useIcons,
7
+ useRotkiTheme
8
+ };
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,164 @@
1
+ import { createPopper } from "@popperjs/core";
2
+ import { useResizeObserver, isDefined, unrefElement } from "@vueuse/core";
3
+ import { ref, computed, onMounted, watchEffect } from "vue";
4
+ import { useTimeoutManager } from "./timeout-manager.js";
5
+ import { get, set } from "@vueuse/shared";
6
+ const DEFAULT_POPPER_OPTIONS = {
7
+ adaptive: true,
8
+ gpuAcceleration: true,
9
+ locked: false,
10
+ offsetDistance: 8,
11
+ offsetSkid: 0,
12
+ overflowPadding: 8,
13
+ placement: "bottom",
14
+ resize: true,
15
+ scroll: true,
16
+ strategy: "absolute"
17
+ };
18
+ function usePopper(options, disabled = ref(false), openDelay = ref(0), closeDelay = ref(0), virtualReference) {
19
+ const reference = ref(void 0);
20
+ const popper = ref(void 0);
21
+ const instance = ref(void 0);
22
+ const open = ref(false);
23
+ const popperEnter = ref(false);
24
+ const leavePending = ref(false);
25
+ const openTimeoutManager = useTimeoutManager();
26
+ const closeTimeoutManager = useTimeoutManager();
27
+ const onPopperLeave = () => {
28
+ set(popperEnter, false);
29
+ };
30
+ const updatePopper = async () => {
31
+ await get(instance)?.update();
32
+ };
33
+ const onOpen = (immediate = false) => {
34
+ if (get(disabled))
35
+ return;
36
+ closeTimeoutManager.clear();
37
+ set(leavePending, false);
38
+ if (!openTimeoutManager.isActive()) {
39
+ set(popperEnter, true);
40
+ openTimeoutManager.create(() => {
41
+ set(open, true);
42
+ }, immediate ? 0 : get(openDelay));
43
+ }
44
+ };
45
+ const onClose = (immediate = false) => {
46
+ if (get(disabled))
47
+ return;
48
+ openTimeoutManager.clear();
49
+ if (!closeTimeoutManager.isActive()) {
50
+ closeTimeoutManager.create(() => {
51
+ if (!get(open))
52
+ onPopperLeave();
53
+ set(open, false);
54
+ }, immediate ? 0 : get(closeDelay));
55
+ }
56
+ };
57
+ const onLeavePending = () => {
58
+ set(leavePending, true);
59
+ };
60
+ const modifiers = computed(() => {
61
+ const {
62
+ adaptive = DEFAULT_POPPER_OPTIONS.adaptive,
63
+ gpuAcceleration = DEFAULT_POPPER_OPTIONS.gpuAcceleration,
64
+ locked = DEFAULT_POPPER_OPTIONS.locked,
65
+ offsetDistance = DEFAULT_POPPER_OPTIONS.offsetDistance,
66
+ offsetSkid = DEFAULT_POPPER_OPTIONS.offsetSkid,
67
+ overflowPadding = DEFAULT_POPPER_OPTIONS.overflowPadding,
68
+ resize = DEFAULT_POPPER_OPTIONS.resize,
69
+ scroll = DEFAULT_POPPER_OPTIONS.scroll
70
+ } = get(options);
71
+ return [{
72
+ enabled: false,
73
+ name: "hide"
74
+ }, {
75
+ enabled: !locked,
76
+ name: "flip"
77
+ }, {
78
+ name: "preventOverflow",
79
+ options: {
80
+ padding: overflowPadding
81
+ }
82
+ }, {
83
+ name: "offset",
84
+ options: {
85
+ offset: [offsetSkid, offsetDistance]
86
+ }
87
+ }, {
88
+ name: "computeStyles",
89
+ options: {
90
+ adaptive,
91
+ gpuAcceleration
92
+ }
93
+ }, {
94
+ name: "eventListeners",
95
+ options: {
96
+ resize,
97
+ scroll
98
+ }
99
+ }, {
100
+ name: "arrow",
101
+ options: {
102
+ padding: 4
103
+ }
104
+ }];
105
+ });
106
+ const popperConfig = computed(() => {
107
+ const {
108
+ placement = DEFAULT_POPPER_OPTIONS.placement,
109
+ strategy = DEFAULT_POPPER_OPTIONS.strategy
110
+ } = get(options);
111
+ return {
112
+ modifiers: get(modifiers),
113
+ placement,
114
+ strategy
115
+ };
116
+ });
117
+ function getValidElements() {
118
+ if (!get(popper) || !get(reference) && !get(virtualReference)) {
119
+ return null;
120
+ }
121
+ const popperEl = unrefElement(popper);
122
+ const referenceEl = get(virtualReference) || unrefElement(reference);
123
+ if (!(popperEl instanceof HTMLElement) || !referenceEl) {
124
+ return null;
125
+ }
126
+ return { popperEl, referenceEl };
127
+ }
128
+ function initializePopper(onInvalidate) {
129
+ const elements = getValidElements();
130
+ if (!elements)
131
+ return;
132
+ const { popperEl, referenceEl } = elements;
133
+ const value = createPopper(referenceEl, popperEl, get(popperConfig));
134
+ set(instance, value);
135
+ onInvalidate(value.destroy);
136
+ }
137
+ useResizeObserver([reference, popper], async () => {
138
+ if (isDefined(instance))
139
+ await get(instance).update();
140
+ });
141
+ onMounted(() => {
142
+ watchEffect((onInvalidate) => {
143
+ initializePopper(onInvalidate);
144
+ });
145
+ });
146
+ return {
147
+ instance,
148
+ leavePending,
149
+ onClose,
150
+ onLeavePending,
151
+ onOpen,
152
+ onPopperLeave,
153
+ open,
154
+ popper,
155
+ popperEnter,
156
+ reference,
157
+ updatePopper
158
+ };
159
+ }
160
+ export {
161
+ DEFAULT_POPPER_OPTIONS,
162
+ usePopper
163
+ };
164
+ //# sourceMappingURL=popper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popper.js","sources":["../../src/composables/popper.ts"],"sourcesContent":["import { createPopper, type Instance, type Placement, type PositioningStrategy, type VirtualElement } from '@popperjs/core';\nimport { type MaybeElement, unrefElement } from '@vueuse/core';\nimport { onMounted, type Ref, ref, watchEffect } from 'vue';\nimport { useTimeoutManager } from './timeout-manager';\n\nexport interface PopperOptions {\n locked?: boolean;\n overflowPadding?: number;\n offsetDistance?: number;\n offsetSkid?: number;\n placement?: Placement;\n strategy?: PositioningStrategy;\n gpuAcceleration?: boolean;\n adaptive?: boolean;\n scroll?: boolean;\n resize?: boolean;\n}\n\nexport const DEFAULT_POPPER_OPTIONS: PopperOptions = {\n adaptive: true,\n gpuAcceleration: true,\n locked: false,\n offsetDistance: 8,\n offsetSkid: 0,\n overflowPadding: 8,\n placement: 'bottom',\n resize: true,\n scroll: true,\n strategy: 'absolute',\n};\n\ninterface UsePopperReturn {\n instance: Ref<Instance | undefined>;\n leavePending: Ref<boolean>;\n onClose: (immediate?: boolean) => void;\n onLeavePending: () => void;\n onOpen: (immediate?: boolean) => void;\n onPopperLeave: () => void;\n open: Ref<boolean, boolean>;\n popper: Ref<MaybeElement>;\n popperEnter: Ref<boolean>;\n reference: Ref<HTMLElement | undefined>;\n updatePopper: () => Promise<void>;\n}\n\nexport function usePopper(\n options: Ref<PopperOptions>,\n disabled: Ref<boolean> = ref(false),\n openDelay: Ref<number> = ref(0),\n closeDelay: Ref<number> = ref(0),\n virtualReference?: Ref<Element | VirtualElement>,\n): UsePopperReturn {\n const reference = ref<HTMLElement | undefined>(undefined);\n const popper = ref<MaybeElement | undefined>(undefined);\n const instance = ref<Instance | undefined>(undefined);\n const open = ref<boolean>(false);\n const popperEnter = ref<boolean>(false);\n const leavePending = ref<boolean>(false);\n\n const openTimeoutManager = useTimeoutManager();\n const closeTimeoutManager = useTimeoutManager();\n\n const onPopperLeave = () => {\n set(popperEnter, false);\n };\n\n const updatePopper = async (): Promise<void> => {\n await get(instance)?.update();\n };\n\n const onOpen = (immediate = false) => {\n if (get(disabled))\n return;\n\n closeTimeoutManager.clear();\n\n set(leavePending, false);\n if (!openTimeoutManager.isActive()) {\n set(popperEnter, true);\n\n openTimeoutManager.create(() => {\n set(open, true);\n }, immediate ? 0 : get(openDelay));\n }\n };\n\n const onClose = (immediate = false) => {\n if (get(disabled))\n return;\n\n openTimeoutManager.clear();\n\n if (!closeTimeoutManager.isActive()) {\n closeTimeoutManager.create(() => {\n if (!get(open))\n onPopperLeave();\n\n set(open, false);\n }, immediate ? 0 : get(closeDelay));\n }\n };\n\n const onLeavePending = () => {\n set(leavePending, true);\n };\n\n const modifiers = computed(() => {\n const {\n adaptive = DEFAULT_POPPER_OPTIONS.adaptive,\n gpuAcceleration = DEFAULT_POPPER_OPTIONS.gpuAcceleration,\n locked = DEFAULT_POPPER_OPTIONS.locked,\n offsetDistance = DEFAULT_POPPER_OPTIONS.offsetDistance,\n offsetSkid = DEFAULT_POPPER_OPTIONS.offsetSkid,\n overflowPadding = DEFAULT_POPPER_OPTIONS.overflowPadding,\n resize = DEFAULT_POPPER_OPTIONS.resize,\n scroll = DEFAULT_POPPER_OPTIONS.scroll,\n } = get(options);\n\n return [{\n enabled: false,\n name: 'hide',\n }, {\n enabled: !locked,\n name: 'flip',\n }, {\n name: 'preventOverflow',\n options: {\n padding: overflowPadding,\n },\n }, {\n name: 'offset',\n options: {\n offset: [offsetSkid, offsetDistance],\n },\n }, {\n name: 'computeStyles',\n options: {\n adaptive,\n gpuAcceleration,\n },\n }, {\n name: 'eventListeners',\n options: {\n resize,\n scroll,\n },\n }, {\n name: 'arrow',\n options: {\n padding: 4,\n },\n }];\n });\n\n const popperConfig = computed(() => {\n const {\n placement = DEFAULT_POPPER_OPTIONS.placement,\n strategy = DEFAULT_POPPER_OPTIONS.strategy,\n } = get(options);\n\n return {\n modifiers: get(modifiers),\n placement,\n strategy,\n };\n });\n\n function getValidElements(): { popperEl: HTMLElement; referenceEl: Element | VirtualElement } | null {\n if (!get(popper) || (!get(reference) && !get(virtualReference))) {\n return null;\n }\n\n const popperEl = unrefElement(popper);\n const referenceEl = get(virtualReference) || unrefElement(reference);\n\n if (!(popperEl instanceof HTMLElement) || !referenceEl) {\n return null;\n }\n\n return { popperEl, referenceEl };\n }\n\n function initializePopper(onInvalidate: (cleanupFn: () => void) => void) {\n const elements = getValidElements();\n if (!elements)\n return;\n\n const { popperEl, referenceEl } = elements;\n\n const value = createPopper(referenceEl, popperEl, get(popperConfig));\n\n set(instance, value);\n onInvalidate(value.destroy);\n }\n\n useResizeObserver([reference, popper], async () => {\n if (isDefined(instance))\n await get(instance).update();\n });\n\n onMounted(() => {\n watchEffect((onInvalidate) => {\n initializePopper(onInvalidate);\n });\n });\n\n return {\n instance,\n leavePending,\n onClose,\n onLeavePending,\n onOpen,\n onPopperLeave,\n open,\n popper,\n popperEnter,\n reference,\n updatePopper,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import { assert } from "../utils/assert.js";
2
+ import { ref, onMounted } from "vue";
3
+ import { get, set } from "@vueuse/shared";
4
+ import { useEventListener, useMutationObserver, useResizeObserver } from "@vueuse/core";
5
+ function useStickyTableHeader(sticky = ref(false), offsetTop) {
6
+ const table = ref(null);
7
+ const tableScroller = ref(null);
8
+ const stick = ref(false);
9
+ const borderPrecision = -0.5;
10
+ const selectors = {
11
+ head: ":scope > thead[data-id=head-main]",
12
+ headClone: ":scope > thead[data-id=head-clone]",
13
+ row: ":scope > tbody > tr:not([hidden])",
14
+ th: ":scope > th"
15
+ };
16
+ const watchCellWidth = () => {
17
+ const root = get(table);
18
+ if (!get(sticky) || !root)
19
+ return;
20
+ const theadClone = root.querySelector(
21
+ `${selectors.headClone} > tr`
22
+ );
23
+ const head = root.querySelector(`${selectors.head} > tr`) ?? null;
24
+ const observeChildTh = () => {
25
+ const columns = head?.querySelectorAll(
26
+ selectors.th
27
+ );
28
+ const clonedColumns = theadClone?.querySelectorAll(selectors.th);
29
+ clonedColumns?.forEach((th, i) => {
30
+ useResizeObserver(th, (entries) => {
31
+ const entry = entries[0];
32
+ assert(entry);
33
+ const cellRect = entry.target.getBoundingClientRect();
34
+ const column = columns?.item(i);
35
+ if (column)
36
+ column.style.width = `${cellRect.width}px`;
37
+ });
38
+ });
39
+ };
40
+ useMutationObserver(theadClone, (mutationsList) => {
41
+ for (const mutation of mutationsList) {
42
+ if (mutation.type === "childList" || mutation.type === "attributes")
43
+ observeChildTh();
44
+ }
45
+ }, {
46
+ attributes: true,
47
+ childList: true,
48
+ subtree: true
49
+ });
50
+ observeChildTh();
51
+ };
52
+ const toggleStickyClass = () => {
53
+ const root = get(table);
54
+ if (!get(sticky) || !root)
55
+ return;
56
+ const rect = root.getBoundingClientRect();
57
+ const theadClone = root.querySelector(
58
+ selectors.headClone
59
+ );
60
+ const clonedRect = theadClone?.getBoundingClientRect();
61
+ const head = root.querySelector(selectors.head) ?? null;
62
+ const headRect = head?.getBoundingClientRect();
63
+ if (!rect || !clonedRect || !head || !theadClone || !headRect)
64
+ return;
65
+ const {
66
+ height: theadHeight,
67
+ left: theadLeft,
68
+ width: theadWidth
69
+ } = clonedRect;
70
+ const { bottom: tableBottom, top: tableTop } = rect;
71
+ const top = get(offsetTop) ?? 0;
72
+ head.style.width = `${theadWidth}px`;
73
+ const rows = root.querySelectorAll(selectors.row);
74
+ const lastRowRect = rows.item(rows.length - 1)?.getBoundingClientRect();
75
+ if (tableTop <= top && tableBottom > top && rows.length > 1) {
76
+ set(stick, true);
77
+ head.style.left = `${theadLeft + borderPrecision}px`;
78
+ const lastRowHeight = lastRowRect?.height ?? 0;
79
+ if (tableBottom <= lastRowHeight + theadHeight + top)
80
+ head.style.top = `${tableBottom - lastRowHeight - theadHeight}px`;
81
+ else
82
+ head.style.top = `${top}px`;
83
+ } else {
84
+ set(stick, false);
85
+ head.style.left = `${borderPrecision}px`;
86
+ head.style.top = "0";
87
+ }
88
+ };
89
+ onMounted(() => {
90
+ toggleStickyClass();
91
+ useEventListener(tableScroller, "scroll", toggleStickyClass);
92
+ useEventListener(document.body, "scroll", toggleStickyClass);
93
+ useEventListener(window, "resize", toggleStickyClass);
94
+ watchCellWidth();
95
+ });
96
+ return {
97
+ stick,
98
+ table,
99
+ tableScroller
100
+ };
101
+ }
102
+ export {
103
+ useStickyTableHeader
104
+ };
105
+ //# sourceMappingURL=sticky-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sticky-header.js","sources":["../../src/composables/sticky-header.ts"],"sourcesContent":["import type { MaybeRef } from 'vue';\nimport { assert } from '@/utils/assert';\n\n/**\n * Setup sticky table header\n */\nexport function useStickyTableHeader(sticky: MaybeRef<boolean> = ref(false), offsetTop?: MaybeRef<number>) {\n const table: Ref<HTMLTableElement | null> = ref(null);\n const tableScroller: Ref<HTMLElement | null> = ref(null);\n const stick: Ref<boolean> = ref(false);\n const borderPrecision = -0.5;\n const selectors = {\n head: ':scope > thead[data-id=head-main]',\n headClone: ':scope > thead[data-id=head-clone]',\n row: ':scope > tbody > tr:not([hidden])',\n th: ':scope > th',\n };\n\n const watchCellWidth = () => {\n const root = get(table);\n\n if (!get(sticky) || !root)\n return;\n\n const theadClone: HTMLHeadElement | null = root.querySelector(\n `${selectors.headClone} > tr`,\n );\n\n const head: HTMLHeadElement | null\n = root.querySelector(`${selectors.head} > tr`) ?? null;\n\n const observeChildTh = () => {\n const columns: NodeListOf<HTMLElement> | undefined = head?.querySelectorAll(\n selectors.th,\n );\n\n const clonedColumns: NodeListOf<HTMLElement> | undefined\n = theadClone?.querySelectorAll(selectors.th);\n\n clonedColumns?.forEach((th: HTMLElement, i: number) => {\n useResizeObserver(th, (entries) => {\n const entry = entries[0];\n assert(entry);\n const cellRect = entry.target.getBoundingClientRect();\n const column = columns?.item(i);\n if (column)\n column.style.width = `${cellRect.width}px`;\n });\n });\n };\n\n useMutationObserver(theadClone, (mutationsList) => {\n for (const mutation of mutationsList) {\n if (mutation.type === 'childList' || mutation.type === 'attributes')\n observeChildTh();\n }\n }, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n\n // Initial setup to observe the existing th elements\n observeChildTh();\n };\n\n const toggleStickyClass = () => {\n const root = get(table);\n\n if (!get(sticky) || !root)\n return;\n\n const rect = root.getBoundingClientRect();\n const theadClone: HTMLHeadElement | null = root.querySelector(\n selectors.headClone,\n );\n\n const clonedRect: DOMRect | undefined = theadClone?.getBoundingClientRect();\n\n const head: HTMLHeadElement | null\n = root.querySelector(selectors.head) ?? null;\n\n const headRect: DOMRect | undefined = head?.getBoundingClientRect();\n\n if (!rect || !clonedRect || !head || !theadClone || !headRect)\n return;\n\n const {\n height: theadHeight,\n left: theadLeft,\n width: theadWidth,\n } = clonedRect;\n\n const { bottom: tableBottom, top: tableTop } = rect;\n const top = get(offsetTop) ?? 0;\n\n head.style.width = `${theadWidth}px`;\n\n const rows = root.querySelectorAll(selectors.row);\n\n const lastRowRect: DOMRect | undefined = rows\n .item(rows.length - 1)\n ?.getBoundingClientRect();\n\n if (tableTop <= top && tableBottom > top && rows.length > 1) {\n set(stick, true);\n head.style.left = `${theadLeft + borderPrecision}px`;\n\n const lastRowHeight = lastRowRect?.height ?? 0;\n if (tableBottom <= lastRowHeight + theadHeight + top)\n head.style.top = `${tableBottom - lastRowHeight - theadHeight}px`;\n else\n head.style.top = `${top}px`;\n }\n else {\n set(stick, false);\n head.style.left = `${borderPrecision}px`;\n head.style.top = '0';\n }\n };\n\n onMounted(() => {\n toggleStickyClass();\n useEventListener(tableScroller, 'scroll', toggleStickyClass);\n useEventListener(document.body, 'scroll', toggleStickyClass);\n useEventListener(window, 'resize', toggleStickyClass);\n watchCellWidth();\n });\n\n return {\n stick,\n table,\n tableScroller,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { type ThemeContent } from '../types/theme';
1
+ import { type ThemeContent } from '../types/theme.js';
2
2
  /**
3
3
  * Theme manager
4
4
  * @returns {ThemeContent}
@@ -0,0 +1,75 @@
1
+ import { createSharedComposable, useColorMode } from "@vueuse/core";
2
+ import { ref, watch, computed } from "vue";
3
+ import { defaultTheme, ThemeMode } from "../types/theme.js";
4
+ import { set, get } from "@vueuse/shared";
5
+ const config = ref({ ...defaultTheme });
6
+ const useRotkiTheme = createSharedComposable(() => {
7
+ const { state, store } = useColorMode();
8
+ const { state: attributeState } = useColorMode({
9
+ attribute: "data-theme"
10
+ });
11
+ watch(state, (newState) => {
12
+ set(attributeState, newState);
13
+ });
14
+ const isAutoControlled = computed(() => get(store) === ThemeMode.auto);
15
+ const isLight = computed(() => get(state) === ThemeMode.light);
16
+ const isDark = computed(() => get(state) === ThemeMode.dark);
17
+ const theme = computed(() => {
18
+ if (get(isLight))
19
+ return get(config).light;
20
+ return get(config).dark;
21
+ });
22
+ const switchThemeScheme = (mode) => {
23
+ set(store, mode || ThemeMode.auto);
24
+ };
25
+ const toggleThemeMode = () => {
26
+ if (get(isAutoControlled))
27
+ switchThemeScheme(ThemeMode.light);
28
+ else if (get(isLight))
29
+ switchThemeScheme(ThemeMode.dark);
30
+ else if (get(isDark))
31
+ switchThemeScheme(ThemeMode.auto);
32
+ };
33
+ const setThemeConfig = (newConfig) => {
34
+ set(config, newConfig);
35
+ };
36
+ const init = (options) => {
37
+ switchThemeScheme(options.mode ?? ThemeMode.auto);
38
+ setThemeConfig(options.config ?? { ...defaultTheme });
39
+ if (typeof window !== "undefined") {
40
+ watch([isLight, theme], ([isLight2, theme2]) => {
41
+ const styleVariables = /* @__PURE__ */ new Map();
42
+ Object.entries(theme2).forEach(([context, contextObject]) => {
43
+ styleVariables.set(`--rui-${context}-darker`, contextObject.darker);
44
+ styleVariables.set(`--rui-${context}-lighter`, contextObject.lighter);
45
+ styleVariables.set(`--rui-${context}-main`, contextObject.DEFAULT);
46
+ });
47
+ const state2 = isLight2 ? ThemeMode.light : ThemeMode.dark;
48
+ styleVariables.set("--rui-text-disabled", `var(--rui-${state2}-text-disabled)`);
49
+ styleVariables.set("--rui-text-primary", `var(--rui-${state2}-text-primary)`);
50
+ styleVariables.set("--rui-text-secondary", `var(--rui-${state2}-text-secondary)`);
51
+ const rootStyle = document.documentElement.style;
52
+ styleVariables.forEach((value, variableName) => {
53
+ rootStyle.setProperty(variableName, value);
54
+ });
55
+ }, { immediate: true });
56
+ }
57
+ };
58
+ return {
59
+ config,
60
+ init,
61
+ isAutoControlled,
62
+ isDark,
63
+ isLight,
64
+ setThemeConfig,
65
+ state,
66
+ store,
67
+ switchThemeScheme,
68
+ theme,
69
+ toggleThemeMode
70
+ };
71
+ });
72
+ export {
73
+ useRotkiTheme
74
+ };
75
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sources":["../../src/composables/theme.ts"],"sourcesContent":["import { useColorMode } from '@vueuse/core';\nimport { computed, type ComputedRef, type Ref, ref } from 'vue';\nimport {\n type ColorIntensity,\n defaultTheme,\n type InitThemeOptions,\n type ThemeConfig,\n type ThemeContent,\n type ThemeData,\n ThemeMode,\n} from '@/types/theme';\n\nconst config: Ref<ThemeConfig> = ref({ ...defaultTheme });\n\n/**\n * Theme manager\n * @returns {ThemeContent}\n */\nexport const useRotkiTheme = createSharedComposable<() => ThemeContent>(() => {\n const { state, store } = useColorMode<ThemeMode>();\n\n const { state: attributeState } = useColorMode<ThemeMode>({\n attribute: 'data-theme',\n });\n\n // Keep attributeState in sync with state\n watch(state, (newState) => {\n set(attributeState, newState);\n });\n\n /**\n * whether the current theme is controlled by system or user\n * @type {ComputedRef<boolean>}\n */\n const isAutoControlled: ComputedRef<boolean> = computed(() => get(store) === ThemeMode.auto);\n\n /**\n * truthy for light theme\n * @type {ComputedRef<boolean>}\n */\n const isLight: ComputedRef<boolean> = computed(() => get(state) === ThemeMode.light);\n\n /**\n * truthy for dark theme\n * @type {ComputedRef<boolean>}\n */\n const isDark: ComputedRef<boolean> = computed(() => get(state) === ThemeMode.dark);\n\n /**\n * current theme based on light or dark mode\n * @type {ComputedRef<ThemeData>}\n */\n const theme: ComputedRef<ThemeData> = computed(() => {\n if (get(isLight))\n return get(config).light;\n\n return get(config).dark;\n });\n\n /**\n * switch theme through dark/light/auto modes\n * @param {ThemeMode} mode\n */\n const switchThemeScheme = (mode: ThemeMode) => {\n set(store, mode || ThemeMode.auto);\n };\n\n /**\n * toggle between auto|light|dark\n */\n const toggleThemeMode = () => {\n if (get(isAutoControlled))\n switchThemeScheme(ThemeMode.light);\n else if (get(isLight))\n switchThemeScheme(ThemeMode.dark);\n else if (get(isDark))\n switchThemeScheme(ThemeMode.auto);\n };\n\n /**\n * sets the configuration for the theme\n * @param {ThemeConfig} newConfig\n */\n const setThemeConfig = (newConfig: ThemeConfig) => {\n set(config, newConfig);\n };\n\n /**\n * theme initializer, must be called once from the app's entry\n * @param {InitThemeOptions} options\n */\n const init = (options: InitThemeOptions) => {\n switchThemeScheme(options.mode ?? ThemeMode.auto);\n setThemeConfig(options.config ?? { ...defaultTheme });\n\n if (typeof window !== 'undefined') {\n watch([isLight, theme], ([isLight, theme]) => {\n const styleVariables = new Map();\n\n // Compute context variables\n Object.entries(theme).forEach(([context, contextObject]: [string, ColorIntensity]) => {\n styleVariables.set(`--rui-${context}-darker`, contextObject.darker);\n styleVariables.set(`--rui-${context}-lighter`, contextObject.lighter);\n styleVariables.set(`--rui-${context}-main`, contextObject.DEFAULT);\n });\n\n // Determine the theme mode\n const state = isLight ? ThemeMode.light : ThemeMode.dark;\n\n // Add text color variables\n styleVariables.set('--rui-text-disabled', `var(--rui-${state}-text-disabled)`);\n styleVariables.set('--rui-text-primary', `var(--rui-${state}-text-primary)`);\n styleVariables.set('--rui-text-secondary', `var(--rui-${state}-text-secondary)`);\n\n // Apply all style variables in one operation\n const rootStyle = document.documentElement.style;\n styleVariables.forEach((value, variableName) => {\n rootStyle.setProperty(variableName, value);\n });\n }, { immediate: true });\n }\n };\n\n return {\n config,\n init,\n isAutoControlled,\n isDark,\n isLight,\n setThemeConfig,\n state,\n store,\n switchThemeScheme,\n theme,\n toggleThemeMode,\n };\n});\n"],"names":["isLight","theme","state"],"mappings":";;;;AAYA,MAAM,SAA2B,IAAI,EAAE,GAAG,cAAc;AAMjD,MAAM,gBAAgB,uBAA2C,MAAM;AAC5E,QAAM,EAAE,OAAO,MAAA,IAAU,aAAA;AAEzB,QAAM,EAAE,OAAO,eAAA,IAAmB,aAAwB;AAAA,IACxD,WAAW;AAAA,EAAA,CACZ;AAGD,QAAM,OAAO,CAAC,aAAa;AACzB,QAAI,gBAAgB,QAAQ;AAAA,EAC9B,CAAC;AAMD,QAAM,mBAAyC,SAAS,MAAM,IAAI,KAAK,MAAM,UAAU,IAAI;AAM3F,QAAM,UAAgC,SAAS,MAAM,IAAI,KAAK,MAAM,UAAU,KAAK;AAMnF,QAAM,SAA+B,SAAS,MAAM,IAAI,KAAK,MAAM,UAAU,IAAI;AAMjF,QAAM,QAAgC,SAAS,MAAM;AACnD,QAAI,IAAI,OAAO;AACb,aAAO,IAAI,MAAM,EAAE;AAErB,WAAO,IAAI,MAAM,EAAE;AAAA,EACrB,CAAC;AAMD,QAAM,oBAAoB,CAAC,SAAoB;AAC7C,QAAI,OAAO,QAAQ,UAAU,IAAI;AAAA,EACnC;AAKA,QAAM,kBAAkB,MAAM;AAC5B,QAAI,IAAI,gBAAgB;AACtB,wBAAkB,UAAU,KAAK;AAAA,aAC1B,IAAI,OAAO;AAClB,wBAAkB,UAAU,IAAI;AAAA,aACzB,IAAI,MAAM;AACjB,wBAAkB,UAAU,IAAI;AAAA,EACpC;AAMA,QAAM,iBAAiB,CAAC,cAA2B;AACjD,QAAI,QAAQ,SAAS;AAAA,EACvB;AAMA,QAAM,OAAO,CAAC,YAA8B;AAC1C,sBAAkB,QAAQ,QAAQ,UAAU,IAAI;AAChD,mBAAe,QAAQ,UAAU,EAAE,GAAG,cAAc;AAEpD,QAAI,OAAO,WAAW,aAAa;AACjC,YAAM,CAAC,SAAS,KAAK,GAAG,CAAC,CAACA,UAASC,MAAK,MAAM;AAC5C,cAAM,qCAAqB,IAAA;AAG3B,eAAO,QAAQA,MAAK,EAAE,QAAQ,CAAC,CAAC,SAAS,aAAa,MAAgC;AACpF,yBAAe,IAAI,SAAS,OAAO,WAAW,cAAc,MAAM;AAClE,yBAAe,IAAI,SAAS,OAAO,YAAY,cAAc,OAAO;AACpE,yBAAe,IAAI,SAAS,OAAO,SAAS,cAAc,OAAO;AAAA,QACnE,CAAC;AAGD,cAAMC,SAAQF,WAAU,UAAU,QAAQ,UAAU;AAGpD,uBAAe,IAAI,uBAAuB,aAAaE,MAAK,iBAAiB;AAC7E,uBAAe,IAAI,sBAAsB,aAAaA,MAAK,gBAAgB;AAC3E,uBAAe,IAAI,wBAAwB,aAAaA,MAAK,kBAAkB;AAG/E,cAAM,YAAY,SAAS,gBAAgB;AAC3C,uBAAe,QAAQ,CAAC,OAAO,iBAAiB;AAC9C,oBAAU,YAAY,cAAc,KAAK;AAAA,QAC3C,CAAC;AAAA,MACH,GAAG,EAAE,WAAW,MAAM;AAAA,IACxB;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ,CAAC;"}
@@ -0,0 +1,21 @@
1
+ import { get, set } from "@vueuse/shared";
2
+ import { ref } from "vue";
3
+ function useTimeoutManager() {
4
+ const timeout = ref();
5
+ const clear = () => {
6
+ if (get(timeout)) {
7
+ clearTimeout(get(timeout));
8
+ set(timeout, void 0);
9
+ }
10
+ };
11
+ const create = (callback, delay) => {
12
+ clear();
13
+ set(timeout, setTimeout(callback, delay));
14
+ };
15
+ const isActive = () => !!get(timeout);
16
+ return { clear, create, isActive };
17
+ }
18
+ export {
19
+ useTimeoutManager
20
+ };
21
+ //# sourceMappingURL=timeout-manager.js.map