@rotki/ui-library 2.15.0 → 2.16.1

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 (796) hide show
  1. package/dist/components/accordions/accordion/RuiAccordion.js +7 -0
  2. package/dist/components/accordions/accordion/RuiAccordion.js.map +1 -0
  3. package/dist/components/accordions/accordion/RuiAccordion.vue.d.ts +9 -0
  4. package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js +88 -0
  5. package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -0
  6. package/dist/components/accordions/accordions/RuiAccordions.js +7 -0
  7. package/dist/components/accordions/accordions/RuiAccordions.js.map +1 -0
  8. package/dist/components/accordions/accordions/RuiAccordions.vue_vue_type_script_setup_true_lang.js +67 -0
  9. package/dist/components/accordions/accordions/RuiAccordions.vue_vue_type_script_setup_true_lang.js.map +1 -0
  10. package/dist/components/alerts/RuiAlert.js +7 -0
  11. package/dist/components/alerts/RuiAlert.js.map +1 -0
  12. package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js +330 -0
  13. package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js.map +1 -0
  14. package/dist/components/buttons/button/RuiButton.js +7 -0
  15. package/dist/components/buttons/button/RuiButton.js.map +1 -0
  16. package/dist/components/buttons/button/RuiButton.vue.d.ts +3 -2
  17. package/dist/components/buttons/button/RuiButton.vue_vue_type_script_setup_true_lang.js +104 -0
  18. package/dist/components/buttons/button/RuiButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  19. package/dist/components/buttons/button/button-props.d.ts +16 -0
  20. package/dist/components/buttons/button/button-props.js +20 -0
  21. package/dist/components/buttons/button/button-props.js.map +1 -0
  22. package/dist/components/buttons/button/button-styles.d.ts +229 -0
  23. package/dist/components/buttons/button/button-styles.js +342 -0
  24. package/dist/components/buttons/button/button-styles.js.map +1 -0
  25. package/dist/components/buttons/button-group/RuiButtonGroup.js +7 -0
  26. package/dist/components/buttons/button-group/RuiButtonGroup.js.map +1 -0
  27. package/dist/components/buttons/button-group/RuiButtonGroup.vue_vue_type_script_setup_true_lang.js +246 -0
  28. package/dist/components/buttons/button-group/RuiButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  29. package/dist/components/calendar/RuiCalendar.js +7 -0
  30. package/dist/components/calendar/RuiCalendar.js.map +1 -0
  31. package/dist/components/calendar/RuiCalendar.vue_vue_type_script_setup_true_lang.js +151 -0
  32. package/dist/components/calendar/RuiCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  33. package/dist/components/calendar/RuiCalendarGrid.js +7 -0
  34. package/dist/components/calendar/RuiCalendarGrid.js.map +1 -0
  35. package/dist/components/calendar/RuiCalendarGrid.vue_vue_type_script_setup_true_lang.js +155 -0
  36. package/dist/components/calendar/RuiCalendarGrid.vue_vue_type_script_setup_true_lang.js.map +1 -0
  37. package/dist/components/calendar/RuiCalendarHeader.js +7 -0
  38. package/dist/components/calendar/RuiCalendarHeader.js.map +1 -0
  39. package/dist/components/calendar/RuiCalendarHeader.vue_vue_type_script_setup_true_lang.js +113 -0
  40. package/dist/components/calendar/RuiCalendarHeader.vue_vue_type_script_setup_true_lang.js.map +1 -0
  41. package/dist/components/calendar/RuiCalendarMenu.js +7 -0
  42. package/dist/components/calendar/RuiCalendarMenu.js.map +1 -0
  43. package/dist/components/calendar/RuiCalendarMenu.vue_vue_type_script_setup_true_lang.js +246 -0
  44. package/dist/components/calendar/RuiCalendarMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  45. package/dist/components/calendar/state.js +20 -21
  46. package/dist/components/calendar/state.js.map +1 -1
  47. package/dist/components/cards/RuiCard.js +7 -0
  48. package/dist/components/cards/RuiCard.js.map +1 -0
  49. package/dist/components/cards/RuiCard.vue.d.ts +9 -0
  50. package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js +130 -0
  51. package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js.map +1 -0
  52. package/dist/components/cards/RuiCardHeader.js +7 -0
  53. package/dist/components/cards/RuiCardHeader.js.map +1 -0
  54. package/dist/components/cards/RuiCardHeader.vue_vue_type_script_setup_true_lang.js +67 -0
  55. package/dist/components/cards/RuiCardHeader.vue_vue_type_script_setup_true_lang.js.map +1 -0
  56. package/dist/components/chips/RuiChip.js +7 -0
  57. package/dist/components/chips/RuiChip.js.map +1 -0
  58. package/dist/components/chips/RuiChip.vue.d.ts +10 -2
  59. package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js +308 -0
  60. package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js.map +1 -0
  61. package/dist/components/chips/chip-props.d.ts +11 -0
  62. package/dist/components/chips/chip-props.js +17 -0
  63. package/dist/components/chips/chip-props.js.map +1 -0
  64. package/dist/components/color-picker/RuiColorBoard.js +7 -0
  65. package/dist/components/color-picker/RuiColorBoard.js.map +1 -0
  66. package/dist/components/color-picker/RuiColorBoard.vue.d.ts +1 -1
  67. package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js +100 -0
  68. package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js.map +1 -0
  69. package/dist/components/color-picker/RuiColorDisplay.js +7 -0
  70. package/dist/components/color-picker/RuiColorDisplay.js.map +1 -0
  71. package/dist/components/color-picker/RuiColorDisplay.vue_vue_type_script_setup_true_lang.js +37 -0
  72. package/dist/components/color-picker/RuiColorDisplay.vue_vue_type_script_setup_true_lang.js.map +1 -0
  73. package/dist/components/color-picker/RuiColorHue.js +7 -0
  74. package/dist/components/color-picker/RuiColorHue.js.map +1 -0
  75. package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js +84 -0
  76. package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js.map +1 -0
  77. package/dist/components/color-picker/RuiColorInput.js +7 -0
  78. package/dist/components/color-picker/RuiColorInput.js.map +1 -0
  79. package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js +132 -0
  80. package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  81. package/dist/components/color-picker/RuiColorPicker.js +7 -0
  82. package/dist/components/color-picker/RuiColorPicker.js.map +1 -0
  83. package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js +57 -0
  84. package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  85. package/dist/components/color-picker/utils.d.ts +11 -8
  86. package/dist/components/color-picker/utils.js +179 -194
  87. package/dist/components/color-picker/utils.js.map +1 -1
  88. package/dist/components/date-time-picker/RuiDateTimePicker.js +7 -0
  89. package/dist/components/date-time-picker/RuiDateTimePicker.js.map +1 -0
  90. package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +2 -1
  91. package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js +369 -0
  92. package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  93. package/dist/components/date-time-picker/RuiDateTimePickerMenu.js +7 -0
  94. package/dist/components/date-time-picker/RuiDateTimePickerMenu.js.map +1 -0
  95. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.d.ts +1 -1
  96. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js +134 -0
  97. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  98. package/dist/components/date-time-picker/date-time-picker-styles.d.ts +326 -0
  99. package/dist/components/date-time-picker/date-time-picker-styles.js +19 -0
  100. package/dist/components/date-time-picker/date-time-picker-styles.js.map +1 -0
  101. package/dist/components/date-time-picker/dayjs-setup.js +4 -1
  102. package/dist/components/date-time-picker/dayjs-setup.js.map +1 -1
  103. package/dist/components/date-time-picker/segment-config.js +42 -21
  104. package/dist/components/date-time-picker/segment-config.js.map +1 -1
  105. package/dist/components/date-time-picker/segment-utils.js +24 -31
  106. package/dist/components/date-time-picker/segment-utils.js.map +1 -1
  107. package/dist/components/date-time-picker/timezones.js +601 -600
  108. package/dist/components/date-time-picker/timezones.js.map +1 -1
  109. package/dist/components/date-time-picker/types.js +14 -14
  110. package/dist/components/date-time-picker/types.js.map +1 -1
  111. package/dist/components/date-time-picker/use-date-time-selection.js +222 -282
  112. package/dist/components/date-time-picker/use-date-time-selection.js.map +1 -1
  113. package/dist/components/date-time-picker/use-input-handler.js +31 -28
  114. package/dist/components/date-time-picker/use-input-handler.js.map +1 -1
  115. package/dist/components/date-time-picker/use-keyboard-handler.js +201 -268
  116. package/dist/components/date-time-picker/use-keyboard-handler.js.map +1 -1
  117. package/dist/components/date-time-picker/utils.js +10 -11
  118. package/dist/components/date-time-picker/utils.js.map +1 -1
  119. package/dist/components/divider/RuiDivider.js +7 -0
  120. package/dist/components/divider/RuiDivider.js.map +1 -0
  121. package/dist/components/divider/RuiDivider.vue_vue_type_script_setup_true_lang.js +25 -0
  122. package/dist/components/divider/RuiDivider.vue_vue_type_script_setup_true_lang.js.map +1 -0
  123. package/dist/components/forms/auto-complete/RuiAutoComplete.js +7 -0
  124. package/dist/components/forms/auto-complete/RuiAutoComplete.js.map +1 -0
  125. package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +12 -2
  126. package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js +566 -0
  127. package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js.map +1 -0
  128. package/dist/components/forms/auto-complete/auto-complete-styles.d.ts +324 -0
  129. package/dist/components/forms/auto-complete/auto-complete-styles.js +15 -0
  130. package/dist/components/forms/auto-complete/auto-complete-styles.js.map +1 -0
  131. package/dist/components/forms/check-control-styles.d.ts +135 -0
  132. package/dist/components/forms/check-control-styles.js +126 -0
  133. package/dist/components/forms/check-control-styles.js.map +1 -0
  134. package/dist/components/forms/checkbox/RuiCheckbox.js +7 -0
  135. package/dist/components/forms/checkbox/RuiCheckbox.js.map +1 -0
  136. package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js +133 -0
  137. package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -0
  138. package/dist/components/forms/radio-button/radio/RuiRadio.js +7 -0
  139. package/dist/components/forms/radio-button/radio/RuiRadio.js.map +1 -0
  140. package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js +115 -0
  141. package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js.map +1 -0
  142. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.js +7 -0
  143. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.js.map +1 -0
  144. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js +96 -0
  145. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  146. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.js +7 -0
  147. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.js.map +1 -0
  148. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.d.ts +2 -15
  149. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js +117 -0
  150. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js.map +1 -0
  151. package/dist/components/forms/select/RuiMenuSelect.js +7 -0
  152. package/dist/components/forms/select/RuiMenuSelect.js.map +1 -0
  153. package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +16 -4
  154. package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js +313 -0
  155. package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  156. package/dist/components/forms/select/RuiSimpleSelect.js +7 -0
  157. package/dist/components/forms/select/RuiSimpleSelect.js.map +1 -0
  158. package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js +75 -0
  159. package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js.map +1 -0
  160. package/dist/components/forms/select/menu-select-styles.d.ts +319 -0
  161. package/dist/components/forms/select/menu-select-styles.js +11 -0
  162. package/dist/components/forms/select/menu-select-styles.js.map +1 -0
  163. package/dist/components/forms/slider/RuiSlider.js +7 -0
  164. package/dist/components/forms/slider/RuiSlider.js.map +1 -0
  165. package/dist/components/forms/slider/RuiSlider.vue.d.ts +9 -0
  166. package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js +222 -0
  167. package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js.map +1 -0
  168. package/dist/components/forms/slider/slider-styles.d.ts +208 -0
  169. package/dist/components/forms/slider/slider-styles.js +235 -0
  170. package/dist/components/forms/slider/slider-styles.js.map +1 -0
  171. package/dist/components/forms/switch/RuiSwitch.js +7 -0
  172. package/dist/components/forms/switch/RuiSwitch.js.map +1 -0
  173. package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js +226 -0
  174. package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -0
  175. package/dist/components/forms/text-area/RuiTextArea.js +7 -0
  176. package/dist/components/forms/text-area/RuiTextArea.js.map +1 -0
  177. package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +8 -4
  178. package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js +248 -0
  179. package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js.map +1 -0
  180. package/dist/components/forms/text-area/text-area-styles.d.ts +313 -0
  181. package/dist/components/forms/text-area/text-area-styles.js +239 -0
  182. package/dist/components/forms/text-area/text-area-styles.js.map +1 -0
  183. package/dist/components/forms/text-field/RuiTextField.js +7 -0
  184. package/dist/components/forms/text-field/RuiTextField.js.map +1 -0
  185. package/dist/components/forms/text-field/RuiTextField.vue.d.ts +4 -3
  186. package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js +220 -0
  187. package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js.map +1 -0
  188. package/dist/components/forms/text-field/text-field-styles.d.ts +299 -0
  189. package/dist/components/forms/text-field/text-field-styles.js +251 -0
  190. package/dist/components/forms/text-field/text-field-styles.js.map +1 -0
  191. package/dist/components/forms/text-input-styles.d.ts +422 -0
  192. package/dist/components/forms/text-input-styles.js +250 -0
  193. package/dist/components/forms/text-input-styles.js.map +1 -0
  194. package/dist/components/helpers/RuiFormTextDetail.js +7 -0
  195. package/dist/components/helpers/RuiFormTextDetail.js.map +1 -0
  196. package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js +46 -0
  197. package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js.map +1 -0
  198. package/dist/components/icons/RuiIcon.js +7 -0
  199. package/dist/components/icons/RuiIcon.js.map +1 -0
  200. package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js +58 -0
  201. package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js.map +1 -0
  202. package/dist/components/index.d.ts +46 -46
  203. package/dist/components/index.js +45 -92
  204. package/dist/components/loaders/RuiSkeletonBase.js +7 -0
  205. package/dist/components/loaders/RuiSkeletonBase.js.map +1 -0
  206. package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js +31 -0
  207. package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js.map +1 -0
  208. package/dist/components/loaders/RuiSkeletonLoader.js +7 -0
  209. package/dist/components/loaders/RuiSkeletonLoader.js.map +1 -0
  210. package/dist/components/loaders/RuiSkeletonLoader.vue.d.ts +3 -2
  211. package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js +62 -0
  212. package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js.map +1 -0
  213. package/dist/components/loaders/skeleton-type.d.ts +12 -0
  214. package/dist/components/loaders/skeleton-type.js +16 -0
  215. package/dist/components/loaders/skeleton-type.js.map +1 -0
  216. package/dist/components/logos/RuiLogo.js +7 -0
  217. package/dist/components/logos/RuiLogo.js.map +1 -0
  218. package/dist/components/logos/RuiLogo.vue_vue_type_script_setup_true_lang.js +130 -0
  219. package/dist/components/logos/RuiLogo.vue_vue_type_script_setup_true_lang.js.map +1 -0
  220. package/dist/components/logos/logo.js +6 -0
  221. package/dist/components/logos/logo.js.map +1 -0
  222. package/dist/components/logos/use-logo-sources.d.ts +1 -1
  223. package/dist/components/logos/use-logo-sources.js +66 -62
  224. package/dist/components/logos/use-logo-sources.js.map +1 -1
  225. package/dist/components/overlays/badge/RuiBadge.js +7 -0
  226. package/dist/components/overlays/badge/RuiBadge.js.map +1 -0
  227. package/dist/components/overlays/badge/RuiBadge.vue.d.ts +4 -3
  228. package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js +189 -0
  229. package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js.map +1 -0
  230. package/dist/components/overlays/badge/badge-props.d.ts +19 -0
  231. package/dist/components/overlays/badge/badge-props.js +21 -0
  232. package/dist/components/overlays/badge/badge-props.js.map +1 -0
  233. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.js +7 -0
  234. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.js.map +1 -0
  235. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue_vue_type_script_setup_true_lang.js +51 -0
  236. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue_vue_type_script_setup_true_lang.js.map +1 -0
  237. package/dist/components/overlays/dialog/RuiDialog.js +7 -0
  238. package/dist/components/overlays/dialog/RuiDialog.js.map +1 -0
  239. package/dist/components/overlays/dialog/RuiDialog.vue.d.ts +7 -0
  240. package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js +163 -0
  241. package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js.map +1 -0
  242. package/dist/components/overlays/menu/RuiMenu.js +7 -0
  243. package/dist/components/overlays/menu/RuiMenu.js.map +1 -0
  244. package/dist/components/overlays/menu/RuiMenu.vue.d.ts +12 -0
  245. package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js +236 -0
  246. package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  247. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.js +7 -0
  248. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.js.map +1 -0
  249. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.d.ts +7 -0
  250. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js +180 -0
  251. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -0
  252. package/dist/components/overlays/notification/RuiNotification.js +7 -0
  253. package/dist/components/overlays/notification/RuiNotification.js.map +1 -0
  254. package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js +70 -0
  255. package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js.map +1 -0
  256. package/dist/components/overlays/tooltip/RuiTooltip.js +7 -0
  257. package/dist/components/overlays/tooltip/RuiTooltip.js.map +1 -0
  258. package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +10 -0
  259. package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js +107 -0
  260. package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -0
  261. package/dist/components/overlays/tooltip/tooltip-styles.d.ts +91 -0
  262. package/dist/components/overlays/tooltip/tooltip-styles.js +40 -0
  263. package/dist/components/overlays/tooltip/tooltip-styles.js.map +1 -0
  264. package/dist/components/progress/RuiProgress.js +7 -0
  265. package/dist/components/progress/RuiProgress.js.map +1 -0
  266. package/dist/components/progress/RuiProgress.vue.d.ts +2 -1
  267. package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js +254 -0
  268. package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js.map +1 -0
  269. package/dist/components/progress/progress-props.d.ts +6 -0
  270. package/dist/components/progress/progress-props.js +10 -0
  271. package/dist/components/progress/progress-props.js.map +1 -0
  272. package/dist/components/steppers/RuiFooterStepper.js +7 -0
  273. package/dist/components/steppers/RuiFooterStepper.js.map +1 -0
  274. package/dist/components/steppers/RuiFooterStepper.vue.d.ts +2 -1
  275. package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js +164 -0
  276. package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js.map +1 -0
  277. package/dist/components/steppers/RuiStepper.js +7 -0
  278. package/dist/components/steppers/RuiStepper.js.map +1 -0
  279. package/dist/components/steppers/RuiStepper.vue.d.ts +9 -0
  280. package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js +232 -0
  281. package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js.map +1 -0
  282. package/dist/components/steppers/RuiStepperCustomIcon.js +7 -0
  283. package/dist/components/steppers/RuiStepperCustomIcon.js.map +1 -0
  284. package/dist/components/steppers/RuiStepperCustomIcon.vue_vue_type_script_setup_true_lang.js +43 -0
  285. package/dist/components/steppers/RuiStepperCustomIcon.vue_vue_type_script_setup_true_lang.js.map +1 -0
  286. package/dist/components/steppers/RuiStepperIcon.js +7 -0
  287. package/dist/components/steppers/RuiStepperIcon.js.map +1 -0
  288. package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js +72 -0
  289. package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js.map +1 -0
  290. package/dist/components/steppers/footer-stepper-variant.d.ts +7 -0
  291. package/dist/components/steppers/footer-stepper-variant.js +11 -0
  292. package/dist/components/steppers/footer-stepper-variant.js.map +1 -0
  293. package/dist/components/tables/RuiDataTable.js +7 -0
  294. package/dist/components/tables/RuiDataTable.js.map +1 -0
  295. package/dist/components/tables/RuiDataTable.vue.d.ts +7 -2
  296. package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js +516 -0
  297. package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  298. package/dist/components/tables/RuiExpandButton.js +7 -0
  299. package/dist/components/tables/RuiExpandButton.js.map +1 -0
  300. package/dist/components/tables/RuiExpandButton.vue_vue_type_script_setup_true_lang.js +34 -0
  301. package/dist/components/tables/RuiExpandButton.vue_vue_type_script_setup_true_lang.js.map +1 -0
  302. package/dist/components/tables/RuiTableEmptyState.js +7 -0
  303. package/dist/components/tables/RuiTableEmptyState.js.map +1 -0
  304. package/dist/components/tables/RuiTableEmptyState.vue.d.ts +16 -0
  305. package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js +46 -0
  306. package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -0
  307. package/dist/components/tables/RuiTableHead.js +7 -0
  308. package/dist/components/tables/RuiTableHead.js.map +1 -0
  309. package/dist/components/tables/RuiTableHead.vue.d.ts +6 -5
  310. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js +230 -0
  311. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js.map +1 -0
  312. package/dist/components/tables/RuiTablePagination.js +7 -0
  313. package/dist/components/tables/RuiTablePagination.js.map +1 -0
  314. package/dist/components/tables/RuiTablePagination.vue.d.ts +9 -6
  315. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js +187 -0
  316. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -0
  317. package/dist/components/tables/data-table-styles.d.ts +155 -0
  318. package/dist/components/tables/data-table-styles.js +36 -0
  319. package/dist/components/tables/data-table-styles.js.map +1 -0
  320. package/dist/components/tables/table-props.d.ts +20 -0
  321. package/dist/components/tables/table-props.js +39 -0
  322. package/dist/components/tables/table-props.js.map +1 -0
  323. package/dist/components/tables/table_no_data_placeholder.js +6 -0
  324. package/dist/components/tables/table_no_data_placeholder.js.map +1 -0
  325. package/dist/components/tables/table_no_data_placeholder_dark.js +6 -0
  326. package/dist/components/tables/table_no_data_placeholder_dark.js.map +1 -0
  327. package/dist/components/tables/use-pagination-navigation.d.ts +32 -0
  328. package/dist/components/tables/use-pagination-navigation.js +88 -0
  329. package/dist/components/tables/use-pagination-navigation.js.map +1 -0
  330. package/dist/components/tabs/tab/RuiTab.js +7 -0
  331. package/dist/components/tabs/tab/RuiTab.js.map +1 -0
  332. package/dist/components/tabs/tab/RuiTab.vue.d.ts +12 -3
  333. package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js +175 -0
  334. package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js.map +1 -0
  335. package/dist/components/tabs/tab/use-tab-link.d.ts +26 -0
  336. package/dist/components/tabs/tab/use-tab-link.js +28 -0
  337. package/dist/components/tabs/tab/use-tab-link.js.map +1 -0
  338. package/dist/components/tabs/tab-item/RuiTabItem.js +7 -0
  339. package/dist/components/tabs/tab-item/RuiTabItem.js.map +1 -0
  340. package/dist/components/tabs/tab-item/RuiTabItem.vue_vue_type_script_setup_true_lang.js +54 -0
  341. package/dist/components/tabs/tab-item/RuiTabItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  342. package/dist/components/tabs/tab-items/RuiTabItems.js +7 -0
  343. package/dist/components/tabs/tab-items/RuiTabItems.js.map +1 -0
  344. package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js +76 -0
  345. package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js.map +1 -0
  346. package/dist/components/tabs/tab-props.d.ts +20 -0
  347. package/dist/components/tabs/tab-props.js +18 -0
  348. package/dist/components/tabs/tab-props.js.map +1 -0
  349. package/dist/components/tabs/tabs/RuiTabs.js +7 -0
  350. package/dist/components/tabs/tabs/RuiTabs.js.map +1 -0
  351. package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +3 -2
  352. package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js +208 -0
  353. package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js.map +1 -0
  354. package/dist/components/tabs/tabs/use-tab-routing.d.ts +28 -0
  355. package/dist/components/tabs/tabs/use-tab-routing.js +43 -0
  356. package/dist/components/tabs/tabs/use-tab-routing.js.map +1 -0
  357. package/dist/components/tabs/tabs/use-tab-scroll.d.ts +23 -0
  358. package/dist/components/tabs/tabs/use-tab-scroll.js +68 -0
  359. package/dist/components/tabs/tabs/use-tab-scroll.js.map +1 -0
  360. package/dist/components/time-picker/RuiTimePicker.js +7 -0
  361. package/dist/components/time-picker/RuiTimePicker.js.map +1 -0
  362. package/dist/components/time-picker/RuiTimePicker.vue_vue_type_script_setup_true_lang.js +382 -0
  363. package/dist/components/time-picker/RuiTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  364. package/dist/components/time-picker/time-picker-styles.d.ts +76 -0
  365. package/dist/components/time-picker/time-picker-styles.js +27 -0
  366. package/dist/components/time-picker/time-picker-styles.js.map +1 -0
  367. package/dist/composables/breakpoint.js +35 -40
  368. package/dist/composables/breakpoint.js.map +1 -1
  369. package/dist/composables/colors/common.d.ts +20 -0
  370. package/dist/composables/colors/index.d.ts +3 -0
  371. package/dist/composables/colors/text-input.d.ts +27 -0
  372. package/dist/composables/defaults/table.js +21 -18
  373. package/dist/composables/defaults/table.js.map +1 -1
  374. package/dist/composables/dropdown-menu.d.ts +6 -6
  375. package/dist/composables/dropdown-menu.js +169 -237
  376. package/dist/composables/dropdown-menu.js.map +1 -1
  377. package/dist/composables/floating.d.ts +60 -0
  378. package/dist/composables/floating.js +167 -0
  379. package/dist/composables/floating.js.map +1 -0
  380. package/dist/composables/forms/auto-complete/focus.d.ts +4 -4
  381. package/dist/composables/forms/auto-complete/focus.js +59 -79
  382. package/dist/composables/forms/auto-complete/focus.js.map +1 -1
  383. package/dist/composables/forms/auto-complete/index.js +4 -0
  384. package/dist/composables/forms/auto-complete/keyboard-navigation.d.ts +6 -5
  385. package/dist/composables/forms/auto-complete/keyboard-navigation.js +116 -136
  386. package/dist/composables/forms/auto-complete/keyboard-navigation.js.map +1 -1
  387. package/dist/composables/forms/auto-complete/search.d.ts +11 -10
  388. package/dist/composables/forms/auto-complete/search.js +80 -91
  389. package/dist/composables/forms/auto-complete/search.js.map +1 -1
  390. package/dist/composables/forms/auto-complete/value.d.ts +9 -8
  391. package/dist/composables/forms/auto-complete/value.js +76 -108
  392. package/dist/composables/forms/auto-complete/value.js.map +1 -1
  393. package/dist/composables/forms/use-prepend-append-width.js +24 -20
  394. package/dist/composables/forms/use-prepend-append-width.js.map +1 -1
  395. package/dist/composables/icons.js +42 -52
  396. package/dist/composables/icons.js.map +1 -1
  397. package/dist/composables/index.js +2 -7
  398. package/dist/composables/popper.d.ts +5 -20
  399. package/dist/composables/popper.js +22 -177
  400. package/dist/composables/popper.js.map +1 -1
  401. package/dist/composables/sticky-header.js +132 -143
  402. package/dist/composables/sticky-header.js.map +1 -1
  403. package/dist/composables/tables/data-table/columns.d.ts +1 -1
  404. package/dist/composables/tables/data-table/columns.js +41 -49
  405. package/dist/composables/tables/data-table/columns.js.map +1 -1
  406. package/dist/composables/tables/data-table/expansion.js +29 -34
  407. package/dist/composables/tables/data-table/expansion.js.map +1 -1
  408. package/dist/composables/tables/data-table/grouping.d.ts +1 -1
  409. package/dist/composables/tables/data-table/grouping.js +110 -132
  410. package/dist/composables/tables/data-table/grouping.js.map +1 -1
  411. package/dist/composables/tables/data-table/pagination.d.ts +2 -2
  412. package/dist/composables/tables/data-table/pagination.js +98 -115
  413. package/dist/composables/tables/data-table/pagination.js.map +1 -1
  414. package/dist/composables/tables/data-table/selection.js +124 -160
  415. package/dist/composables/tables/data-table/selection.js.map +1 -1
  416. package/dist/composables/tables/data-table/sort.d.ts +2 -2
  417. package/dist/composables/tables/data-table/sort.js +118 -132
  418. package/dist/composables/tables/data-table/sort.js.map +1 -1
  419. package/dist/composables/tables/data-table/types.d.ts +2 -2
  420. package/dist/composables/tables/data-table/types.js +7 -7
  421. package/dist/composables/tables/data-table/types.js.map +1 -1
  422. package/dist/composables/theme.js +91 -66
  423. package/dist/composables/theme.js.map +1 -1
  424. package/dist/composables/timeout-manager.js +24 -19
  425. package/dist/composables/timeout-manager.js.map +1 -1
  426. package/dist/composables/use-rui-i18n.js +15 -21
  427. package/dist/composables/use-rui-i18n.js.map +1 -1
  428. package/dist/consts/colors.js +50 -47
  429. package/dist/consts/colors.js.map +1 -1
  430. package/dist/consts/time-accuracy.js +9 -8
  431. package/dist/consts/time-accuracy.js.map +1 -1
  432. package/dist/i18n/keys.js +17 -16
  433. package/dist/i18n/keys.js.map +1 -1
  434. package/dist/icons/icons_1.js +1529 -2027
  435. package/dist/icons/icons_1.js.map +1 -1
  436. package/dist/icons/icons_2.js +1529 -2027
  437. package/dist/icons/icons_2.js.map +1 -1
  438. package/dist/icons/icons_3.js +1529 -2027
  439. package/dist/icons/icons_3.js.map +1 -1
  440. package/dist/icons/icons_4.js +794 -1047
  441. package/dist/icons/icons_4.js.map +1 -1
  442. package/dist/icons/index.js +1767 -7
  443. package/dist/icons/index.js.map +1 -1
  444. package/dist/index.d.ts +5 -2
  445. package/dist/index.js +87 -1907
  446. package/dist/index.js.map +1 -1
  447. package/dist/style.css +2780 -10260
  448. package/dist/theme/index.js +160 -198
  449. package/dist/theme/index.js.map +1 -1
  450. package/dist/types/class-value.d.ts +5 -0
  451. package/dist/types/stepper.js +16 -15
  452. package/dist/types/stepper.js.map +1 -1
  453. package/dist/types/theme.js +17 -22
  454. package/dist/types/theme.js.map +1 -1
  455. package/dist/utils/assert.js +12 -12
  456. package/dist/utils/assert.js.map +1 -1
  457. package/dist/utils/blockie.js +58 -65
  458. package/dist/utils/blockie.js.map +1 -1
  459. package/dist/utils/form-text-detail.d.ts +4 -2
  460. package/dist/utils/form-text-detail.js +29 -27
  461. package/dist/utils/form-text-detail.js.map +1 -1
  462. package/dist/utils/helpers.js +60 -35
  463. package/dist/utils/helpers.js.map +1 -1
  464. package/dist/utils/is-equal.js +23 -33
  465. package/dist/utils/is-equal.js.map +1 -1
  466. package/dist/utils/tv.d.ts +16 -0
  467. package/dist/utils/tv.js +23 -0
  468. package/dist/utils/tv.js.map +1 -0
  469. package/dist/vite-plugin/index.js +144 -155
  470. package/dist/vite-plugin/index.js.map +1 -1
  471. package/dist/vite-plugin/scanner.js +46 -52
  472. package/dist/vite-plugin/scanner.js.map +1 -1
  473. package/dist/web-types.json +214 -39
  474. package/package.json +36 -27
  475. package/dist/_virtual/_plugin-vue_export-helper.js +0 -11
  476. package/dist/_virtual/_plugin-vue_export-helper.js.map +0 -1
  477. package/dist/components/accordions/accordion/RuiAccordion.vue.js +0 -89
  478. package/dist/components/accordions/accordion/RuiAccordion.vue.js.map +0 -1
  479. package/dist/components/accordions/accordion/RuiAccordion.vue2.js +0 -5
  480. package/dist/components/accordions/accordion/RuiAccordion.vue2.js.map +0 -1
  481. package/dist/components/accordions/accordions/RuiAccordions.vue.js +0 -79
  482. package/dist/components/accordions/accordions/RuiAccordions.vue.js.map +0 -1
  483. package/dist/components/accordions/accordions/RuiAccordions.vue2.js +0 -5
  484. package/dist/components/accordions/accordions/RuiAccordions.vue2.js.map +0 -1
  485. package/dist/components/alerts/RuiAlert.vue.js +0 -11
  486. package/dist/components/alerts/RuiAlert.vue.js.map +0 -1
  487. package/dist/components/alerts/RuiAlert.vue2.js +0 -115
  488. package/dist/components/alerts/RuiAlert.vue2.js.map +0 -1
  489. package/dist/components/alerts/RuiAlert.vue3.js +0 -50
  490. package/dist/components/alerts/RuiAlert.vue3.js.map +0 -1
  491. package/dist/components/buttons/button/RuiButton.vue.js +0 -11
  492. package/dist/components/buttons/button/RuiButton.vue.js.map +0 -1
  493. package/dist/components/buttons/button/RuiButton.vue2.js +0 -93
  494. package/dist/components/buttons/button/RuiButton.vue2.js.map +0 -1
  495. package/dist/components/buttons/button/RuiButton.vue3.js +0 -74
  496. package/dist/components/buttons/button/RuiButton.vue3.js.map +0 -1
  497. package/dist/components/buttons/button-group/RuiButtonGroup.vue.js +0 -11
  498. package/dist/components/buttons/button-group/RuiButtonGroup.vue.js.map +0 -1
  499. package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js +0 -113
  500. package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js.map +0 -1
  501. package/dist/components/buttons/button-group/RuiButtonGroup.vue3.js +0 -58
  502. package/dist/components/buttons/button-group/RuiButtonGroup.vue3.js.map +0 -1
  503. package/dist/components/calendar/RuiCalendar.vue.js +0 -139
  504. package/dist/components/calendar/RuiCalendar.vue.js.map +0 -1
  505. package/dist/components/calendar/RuiCalendar.vue3.js +0 -6
  506. package/dist/components/calendar/RuiCalendar.vue3.js.map +0 -1
  507. package/dist/components/calendar/RuiCalendarGrid.vue.js +0 -8
  508. package/dist/components/calendar/RuiCalendarGrid.vue.js.map +0 -1
  509. package/dist/components/calendar/RuiCalendarGrid.vue2.js +0 -151
  510. package/dist/components/calendar/RuiCalendarGrid.vue2.js.map +0 -1
  511. package/dist/components/calendar/RuiCalendarHeader.vue.js +0 -8
  512. package/dist/components/calendar/RuiCalendarHeader.vue.js.map +0 -1
  513. package/dist/components/calendar/RuiCalendarHeader.vue2.js +0 -111
  514. package/dist/components/calendar/RuiCalendarHeader.vue2.js.map +0 -1
  515. package/dist/components/calendar/RuiCalendarMenu.vue.js +0 -8
  516. package/dist/components/calendar/RuiCalendarMenu.vue.js.map +0 -1
  517. package/dist/components/calendar/RuiCalendarMenu.vue2.js +0 -269
  518. package/dist/components/calendar/RuiCalendarMenu.vue2.js.map +0 -1
  519. package/dist/components/cards/RuiCard.vue.js +0 -11
  520. package/dist/components/cards/RuiCard.vue.js.map +0 -1
  521. package/dist/components/cards/RuiCard.vue2.js +0 -88
  522. package/dist/components/cards/RuiCard.vue2.js.map +0 -1
  523. package/dist/components/cards/RuiCard.vue3.js +0 -40
  524. package/dist/components/cards/RuiCard.vue3.js.map +0 -1
  525. package/dist/components/cards/RuiCardHeader.vue.js +0 -11
  526. package/dist/components/cards/RuiCardHeader.vue.js.map +0 -1
  527. package/dist/components/cards/RuiCardHeader.vue2.js +0 -51
  528. package/dist/components/cards/RuiCardHeader.vue2.js.map +0 -1
  529. package/dist/components/cards/RuiCardHeader.vue3.js +0 -27
  530. package/dist/components/cards/RuiCardHeader.vue3.js.map +0 -1
  531. package/dist/components/chips/RuiChip.vue.js +0 -11
  532. package/dist/components/chips/RuiChip.vue.js.map +0 -1
  533. package/dist/components/chips/RuiChip.vue2.js +0 -90
  534. package/dist/components/chips/RuiChip.vue2.js.map +0 -1
  535. package/dist/components/chips/RuiChip.vue3.js +0 -88
  536. package/dist/components/chips/RuiChip.vue3.js.map +0 -1
  537. package/dist/components/color-picker/RuiColorBoard.vue.js +0 -11
  538. package/dist/components/color-picker/RuiColorBoard.vue.js.map +0 -1
  539. package/dist/components/color-picker/RuiColorBoard.vue2.js +0 -102
  540. package/dist/components/color-picker/RuiColorBoard.vue2.js.map +0 -1
  541. package/dist/components/color-picker/RuiColorBoard.vue3.js +0 -18
  542. package/dist/components/color-picker/RuiColorBoard.vue3.js.map +0 -1
  543. package/dist/components/color-picker/RuiColorDisplay.vue.js +0 -47
  544. package/dist/components/color-picker/RuiColorDisplay.vue.js.map +0 -1
  545. package/dist/components/color-picker/RuiColorDisplay.vue2.js +0 -5
  546. package/dist/components/color-picker/RuiColorDisplay.vue2.js.map +0 -1
  547. package/dist/components/color-picker/RuiColorHue.vue.js +0 -11
  548. package/dist/components/color-picker/RuiColorHue.vue.js.map +0 -1
  549. package/dist/components/color-picker/RuiColorHue.vue2.js +0 -92
  550. package/dist/components/color-picker/RuiColorHue.vue2.js.map +0 -1
  551. package/dist/components/color-picker/RuiColorHue.vue3.js +0 -12
  552. package/dist/components/color-picker/RuiColorHue.vue3.js.map +0 -1
  553. package/dist/components/color-picker/RuiColorInput.vue.js +0 -141
  554. package/dist/components/color-picker/RuiColorInput.vue.js.map +0 -1
  555. package/dist/components/color-picker/RuiColorInput.vue2.js +0 -5
  556. package/dist/components/color-picker/RuiColorInput.vue2.js.map +0 -1
  557. package/dist/components/color-picker/RuiColorPicker.vue.js +0 -81
  558. package/dist/components/color-picker/RuiColorPicker.vue.js.map +0 -1
  559. package/dist/components/color-picker/RuiColorPicker.vue2.js +0 -5
  560. package/dist/components/color-picker/RuiColorPicker.vue2.js.map +0 -1
  561. package/dist/components/date-time-picker/RuiDateTimePicker.vue.js +0 -11
  562. package/dist/components/date-time-picker/RuiDateTimePicker.vue.js.map +0 -1
  563. package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js +0 -394
  564. package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js.map +0 -1
  565. package/dist/components/date-time-picker/RuiDateTimePicker.vue3.js +0 -66
  566. package/dist/components/date-time-picker/RuiDateTimePicker.vue3.js.map +0 -1
  567. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.js +0 -120
  568. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.js.map +0 -1
  569. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue2.js +0 -5
  570. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue2.js.map +0 -1
  571. package/dist/components/divider/RuiDivider.vue.js +0 -25
  572. package/dist/components/divider/RuiDivider.vue.js.map +0 -1
  573. package/dist/components/divider/RuiDivider.vue2.js +0 -5
  574. package/dist/components/divider/RuiDivider.vue2.js.map +0 -1
  575. package/dist/components/forms/auto-complete/RuiAutoComplete.vue.js +0 -11
  576. package/dist/components/forms/auto-complete/RuiAutoComplete.vue.js.map +0 -1
  577. package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js +0 -594
  578. package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js.map +0 -1
  579. package/dist/components/forms/auto-complete/RuiAutoComplete.vue3.js +0 -60
  580. package/dist/components/forms/auto-complete/RuiAutoComplete.vue3.js.map +0 -1
  581. package/dist/components/forms/checkbox/RuiCheckbox.vue.js +0 -11
  582. package/dist/components/forms/checkbox/RuiCheckbox.vue.js.map +0 -1
  583. package/dist/components/forms/checkbox/RuiCheckbox.vue2.js +0 -148
  584. package/dist/components/forms/checkbox/RuiCheckbox.vue2.js.map +0 -1
  585. package/dist/components/forms/checkbox/RuiCheckbox.vue3.js +0 -54
  586. package/dist/components/forms/checkbox/RuiCheckbox.vue3.js.map +0 -1
  587. package/dist/components/forms/radio-button/radio/RuiRadio.vue.js +0 -11
  588. package/dist/components/forms/radio-button/radio/RuiRadio.vue.js.map +0 -1
  589. package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js +0 -122
  590. package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js.map +0 -1
  591. package/dist/components/forms/radio-button/radio/RuiRadio.vue3.js +0 -54
  592. package/dist/components/forms/radio-button/radio/RuiRadio.vue3.js.map +0 -1
  593. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.js +0 -11
  594. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.js.map +0 -1
  595. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js +0 -84
  596. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js.map +0 -1
  597. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue3.js +0 -9
  598. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue3.js.map +0 -1
  599. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js +0 -84
  600. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js.map +0 -1
  601. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue2.js +0 -5
  602. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue2.js.map +0 -1
  603. package/dist/components/forms/select/RuiMenuSelect.vue.js +0 -11
  604. package/dist/components/forms/select/RuiMenuSelect.vue.js.map +0 -1
  605. package/dist/components/forms/select/RuiMenuSelect.vue2.js +0 -310
  606. package/dist/components/forms/select/RuiMenuSelect.vue2.js.map +0 -1
  607. package/dist/components/forms/select/RuiMenuSelect.vue3.js +0 -60
  608. package/dist/components/forms/select/RuiMenuSelect.vue3.js.map +0 -1
  609. package/dist/components/forms/select/RuiSimpleSelect.vue.js +0 -11
  610. package/dist/components/forms/select/RuiSimpleSelect.vue.js.map +0 -1
  611. package/dist/components/forms/select/RuiSimpleSelect.vue2.js +0 -62
  612. package/dist/components/forms/select/RuiSimpleSelect.vue2.js.map +0 -1
  613. package/dist/components/forms/select/RuiSimpleSelect.vue3.js +0 -21
  614. package/dist/components/forms/select/RuiSimpleSelect.vue3.js.map +0 -1
  615. package/dist/components/forms/slider/RuiSlider.vue.js +0 -11
  616. package/dist/components/forms/slider/RuiSlider.vue.js.map +0 -1
  617. package/dist/components/forms/slider/RuiSlider.vue2.js +0 -173
  618. package/dist/components/forms/slider/RuiSlider.vue2.js.map +0 -1
  619. package/dist/components/forms/slider/RuiSlider.vue3.js +0 -80
  620. package/dist/components/forms/slider/RuiSlider.vue3.js.map +0 -1
  621. package/dist/components/forms/switch/RuiSwitch.vue.js +0 -11
  622. package/dist/components/forms/switch/RuiSwitch.vue.js.map +0 -1
  623. package/dist/components/forms/switch/RuiSwitch.vue2.js +0 -99
  624. package/dist/components/forms/switch/RuiSwitch.vue2.js.map +0 -1
  625. package/dist/components/forms/switch/RuiSwitch.vue3.js +0 -54
  626. package/dist/components/forms/switch/RuiSwitch.vue3.js.map +0 -1
  627. package/dist/components/forms/text-area/RuiTextArea.vue.js +0 -11
  628. package/dist/components/forms/text-area/RuiTextArea.vue.js.map +0 -1
  629. package/dist/components/forms/text-area/RuiTextArea.vue2.js +0 -229
  630. package/dist/components/forms/text-area/RuiTextArea.vue2.js.map +0 -1
  631. package/dist/components/forms/text-area/RuiTextArea.vue3.js +0 -92
  632. package/dist/components/forms/text-area/RuiTextArea.vue3.js.map +0 -1
  633. package/dist/components/forms/text-field/RuiTextField.vue.js +0 -11
  634. package/dist/components/forms/text-field/RuiTextField.vue.js.map +0 -1
  635. package/dist/components/forms/text-field/RuiTextField.vue2.js +0 -202
  636. package/dist/components/forms/text-field/RuiTextField.vue2.js.map +0 -1
  637. package/dist/components/forms/text-field/RuiTextField.vue3.js +0 -89
  638. package/dist/components/forms/text-field/RuiTextField.vue3.js.map +0 -1
  639. package/dist/components/helpers/RuiFormTextDetail.vue.js +0 -50
  640. package/dist/components/helpers/RuiFormTextDetail.vue.js.map +0 -1
  641. package/dist/components/helpers/RuiFormTextDetail.vue2.js +0 -5
  642. package/dist/components/helpers/RuiFormTextDetail.vue2.js.map +0 -1
  643. package/dist/components/icons/RuiIcon.vue.js +0 -11
  644. package/dist/components/icons/RuiIcon.vue.js.map +0 -1
  645. package/dist/components/icons/RuiIcon.vue2.js +0 -57
  646. package/dist/components/icons/RuiIcon.vue2.js.map +0 -1
  647. package/dist/components/icons/RuiIcon.vue3.js +0 -29
  648. package/dist/components/icons/RuiIcon.vue3.js.map +0 -1
  649. package/dist/components/index.js.map +0 -1
  650. package/dist/components/loaders/RuiSkeletonBase.vue.js +0 -11
  651. package/dist/components/loaders/RuiSkeletonBase.vue.js.map +0 -1
  652. package/dist/components/loaders/RuiSkeletonBase.vue2.js +0 -22
  653. package/dist/components/loaders/RuiSkeletonBase.vue2.js.map +0 -1
  654. package/dist/components/loaders/RuiSkeletonBase.vue3.js +0 -12
  655. package/dist/components/loaders/RuiSkeletonBase.vue3.js.map +0 -1
  656. package/dist/components/loaders/RuiSkeletonLoader.vue.js +0 -11
  657. package/dist/components/loaders/RuiSkeletonLoader.vue.js.map +0 -1
  658. package/dist/components/loaders/RuiSkeletonLoader.vue2.js +0 -47
  659. package/dist/components/loaders/RuiSkeletonLoader.vue2.js.map +0 -1
  660. package/dist/components/loaders/RuiSkeletonLoader.vue3.js +0 -33
  661. package/dist/components/loaders/RuiSkeletonLoader.vue3.js.map +0 -1
  662. package/dist/components/logos/RuiLogo.vue.js +0 -148
  663. package/dist/components/logos/RuiLogo.vue.js.map +0 -1
  664. package/dist/components/logos/RuiLogo.vue2.js +0 -5
  665. package/dist/components/logos/RuiLogo.vue2.js.map +0 -1
  666. package/dist/components/logos/logo.svg.js +0 -5
  667. package/dist/components/logos/logo.svg.js.map +0 -1
  668. package/dist/components/overlays/badge/RuiBadge.vue.js +0 -11
  669. package/dist/components/overlays/badge/RuiBadge.vue.js.map +0 -1
  670. package/dist/components/overlays/badge/RuiBadge.vue2.js +0 -93
  671. package/dist/components/overlays/badge/RuiBadge.vue2.js.map +0 -1
  672. package/dist/components/overlays/badge/RuiBadge.vue3.js +0 -77
  673. package/dist/components/overlays/badge/RuiBadge.vue3.js.map +0 -1
  674. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js +0 -45
  675. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js.map +0 -1
  676. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue2.js +0 -5
  677. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue2.js.map +0 -1
  678. package/dist/components/overlays/dialog/RuiDialog.vue.js +0 -11
  679. package/dist/components/overlays/dialog/RuiDialog.vue.js.map +0 -1
  680. package/dist/components/overlays/dialog/RuiDialog.vue2.js +0 -195
  681. package/dist/components/overlays/dialog/RuiDialog.vue2.js.map +0 -1
  682. package/dist/components/overlays/dialog/RuiDialog.vue3.js +0 -18
  683. package/dist/components/overlays/dialog/RuiDialog.vue3.js.map +0 -1
  684. package/dist/components/overlays/menu/RuiMenu.vue.js +0 -11
  685. package/dist/components/overlays/menu/RuiMenu.vue.js.map +0 -1
  686. package/dist/components/overlays/menu/RuiMenu.vue2.js +0 -214
  687. package/dist/components/overlays/menu/RuiMenu.vue2.js.map +0 -1
  688. package/dist/components/overlays/menu/RuiMenu.vue3.js +0 -21
  689. package/dist/components/overlays/menu/RuiMenu.vue3.js.map +0 -1
  690. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.js +0 -11
  691. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.js.map +0 -1
  692. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js +0 -164
  693. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js.map +0 -1
  694. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue3.js +0 -28
  695. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue3.js.map +0 -1
  696. package/dist/components/overlays/notification/RuiNotification.vue.js +0 -79
  697. package/dist/components/overlays/notification/RuiNotification.vue.js.map +0 -1
  698. package/dist/components/overlays/notification/RuiNotification.vue2.js +0 -5
  699. package/dist/components/overlays/notification/RuiNotification.vue2.js.map +0 -1
  700. package/dist/components/overlays/tooltip/RuiTooltip.vue.js +0 -11
  701. package/dist/components/overlays/tooltip/RuiTooltip.vue.js.map +0 -1
  702. package/dist/components/overlays/tooltip/RuiTooltip.vue2.js +0 -112
  703. package/dist/components/overlays/tooltip/RuiTooltip.vue2.js.map +0 -1
  704. package/dist/components/overlays/tooltip/RuiTooltip.vue3.js +0 -27
  705. package/dist/components/overlays/tooltip/RuiTooltip.vue3.js.map +0 -1
  706. package/dist/components/progress/RuiProgress.vue.js +0 -11
  707. package/dist/components/progress/RuiProgress.vue.js.map +0 -1
  708. package/dist/components/progress/RuiProgress.vue2.js +0 -92
  709. package/dist/components/progress/RuiProgress.vue2.js.map +0 -1
  710. package/dist/components/progress/RuiProgress.vue3.js +0 -48
  711. package/dist/components/progress/RuiProgress.vue3.js.map +0 -1
  712. package/dist/components/steppers/RuiFooterStepper.vue.js +0 -11
  713. package/dist/components/steppers/RuiFooterStepper.vue.js.map +0 -1
  714. package/dist/components/steppers/RuiFooterStepper.vue2.js +0 -150
  715. package/dist/components/steppers/RuiFooterStepper.vue2.js.map +0 -1
  716. package/dist/components/steppers/RuiFooterStepper.vue3.js +0 -31
  717. package/dist/components/steppers/RuiFooterStepper.vue3.js.map +0 -1
  718. package/dist/components/steppers/RuiStepper.vue.js +0 -11
  719. package/dist/components/steppers/RuiStepper.vue.js.map +0 -1
  720. package/dist/components/steppers/RuiStepper.vue2.js +0 -133
  721. package/dist/components/steppers/RuiStepper.vue2.js.map +0 -1
  722. package/dist/components/steppers/RuiStepper.vue3.js +0 -58
  723. package/dist/components/steppers/RuiStepper.vue3.js.map +0 -1
  724. package/dist/components/steppers/RuiStepperCustomIcon.vue.js +0 -11
  725. package/dist/components/steppers/RuiStepperCustomIcon.vue.js.map +0 -1
  726. package/dist/components/steppers/RuiStepperCustomIcon.vue2.js +0 -38
  727. package/dist/components/steppers/RuiStepperCustomIcon.vue2.js.map +0 -1
  728. package/dist/components/steppers/RuiStepperCustomIcon.vue3.js +0 -15
  729. package/dist/components/steppers/RuiStepperCustomIcon.vue3.js.map +0 -1
  730. package/dist/components/steppers/RuiStepperIcon.vue.js +0 -11
  731. package/dist/components/steppers/RuiStepperIcon.vue.js.map +0 -1
  732. package/dist/components/steppers/RuiStepperIcon.vue2.js +0 -43
  733. package/dist/components/steppers/RuiStepperIcon.vue2.js.map +0 -1
  734. package/dist/components/steppers/RuiStepperIcon.vue3.js +0 -21
  735. package/dist/components/steppers/RuiStepperIcon.vue3.js.map +0 -1
  736. package/dist/components/tables/RuiDataTable.vue.js +0 -11
  737. package/dist/components/tables/RuiDataTable.vue.js.map +0 -1
  738. package/dist/components/tables/RuiDataTable.vue2.js +0 -541
  739. package/dist/components/tables/RuiDataTable.vue2.js.map +0 -1
  740. package/dist/components/tables/RuiDataTable.vue3.js +0 -76
  741. package/dist/components/tables/RuiDataTable.vue3.js.map +0 -1
  742. package/dist/components/tables/RuiExpandButton.vue.js +0 -11
  743. package/dist/components/tables/RuiExpandButton.vue.js.map +0 -1
  744. package/dist/components/tables/RuiExpandButton.vue2.js +0 -44
  745. package/dist/components/tables/RuiExpandButton.vue2.js.map +0 -1
  746. package/dist/components/tables/RuiExpandButton.vue3.js +0 -15
  747. package/dist/components/tables/RuiExpandButton.vue3.js.map +0 -1
  748. package/dist/components/tables/RuiTableHead.vue.js +0 -11
  749. package/dist/components/tables/RuiTableHead.vue.js.map +0 -1
  750. package/dist/components/tables/RuiTableHead.vue2.js +0 -195
  751. package/dist/components/tables/RuiTableHead.vue2.js.map +0 -1
  752. package/dist/components/tables/RuiTableHead.vue3.js +0 -69
  753. package/dist/components/tables/RuiTableHead.vue3.js.map +0 -1
  754. package/dist/components/tables/RuiTablePagination.vue.js +0 -11
  755. package/dist/components/tables/RuiTablePagination.vue.js.map +0 -1
  756. package/dist/components/tables/RuiTablePagination.vue2.js +0 -204
  757. package/dist/components/tables/RuiTablePagination.vue2.js.map +0 -1
  758. package/dist/components/tables/RuiTablePagination.vue3.js +0 -28
  759. package/dist/components/tables/RuiTablePagination.vue3.js.map +0 -1
  760. package/dist/components/tables/table_no_data_placeholder.svg.js +0 -5
  761. package/dist/components/tables/table_no_data_placeholder.svg.js.map +0 -1
  762. package/dist/components/tables/table_no_data_placeholder_dark.svg.js +0 -5
  763. package/dist/components/tables/table_no_data_placeholder_dark.svg.js.map +0 -1
  764. package/dist/components/tabs/tab/RuiTab.vue.js +0 -11
  765. package/dist/components/tabs/tab/RuiTab.vue.js.map +0 -1
  766. package/dist/components/tabs/tab/RuiTab.vue2.js +0 -167
  767. package/dist/components/tabs/tab/RuiTab.vue2.js.map +0 -1
  768. package/dist/components/tabs/tab/RuiTab.vue3.js +0 -17
  769. package/dist/components/tabs/tab/RuiTab.vue3.js.map +0 -1
  770. package/dist/components/tabs/tab-item/RuiTabItem.vue.js +0 -11
  771. package/dist/components/tabs/tab-item/RuiTabItem.vue.js.map +0 -1
  772. package/dist/components/tabs/tab-item/RuiTabItem.vue2.js +0 -52
  773. package/dist/components/tabs/tab-item/RuiTabItem.vue2.js.map +0 -1
  774. package/dist/components/tabs/tab-item/RuiTabItem.vue3.js +0 -9
  775. package/dist/components/tabs/tab-item/RuiTabItem.vue3.js.map +0 -1
  776. package/dist/components/tabs/tab-items/RuiTabItems.vue.js +0 -11
  777. package/dist/components/tabs/tab-items/RuiTabItems.vue.js.map +0 -1
  778. package/dist/components/tabs/tab-items/RuiTabItems.vue2.js +0 -90
  779. package/dist/components/tabs/tab-items/RuiTabItems.vue2.js.map +0 -1
  780. package/dist/components/tabs/tab-items/RuiTabItems.vue3.js +0 -9
  781. package/dist/components/tabs/tab-items/RuiTabItems.vue3.js.map +0 -1
  782. package/dist/components/tabs/tabs/RuiTabs.vue.js +0 -11
  783. package/dist/components/tabs/tabs/RuiTabs.vue.js.map +0 -1
  784. package/dist/components/tabs/tabs/RuiTabs.vue2.js +0 -288
  785. package/dist/components/tabs/tabs/RuiTabs.vue2.js.map +0 -1
  786. package/dist/components/tabs/tabs/RuiTabs.vue3.js +0 -20
  787. package/dist/components/tabs/tabs/RuiTabs.vue3.js.map +0 -1
  788. package/dist/components/time-picker/RuiTimePicker.vue.js +0 -11
  789. package/dist/components/time-picker/RuiTimePicker.vue.js.map +0 -1
  790. package/dist/components/time-picker/RuiTimePicker.vue2.js +0 -463
  791. package/dist/components/time-picker/RuiTimePicker.vue2.js.map +0 -1
  792. package/dist/components/time-picker/RuiTimePicker.vue3.js +0 -21
  793. package/dist/components/time-picker/RuiTimePicker.vue3.js.map +0 -1
  794. package/dist/composables/forms/use-label-with-quote.js +0 -14
  795. package/dist/composables/forms/use-label-with-quote.js.map +0 -1
  796. package/dist/composables/index.js.map +0 -1
@@ -0,0 +1,208 @@
1
+ import { tv } from "../../../utils/tv.js";
2
+ import RuiIcon_default from "../../icons/RuiIcon.js";
3
+ import RuiButton_default from "../../buttons/button/RuiButton.js";
4
+ import { TabLayout } from "../tab-props.js";
5
+ import { useTabRouting } from "./use-tab-routing.js";
6
+ import { useTabScroll } from "./use-tab-scroll.js";
7
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, isVNode, mergeModels, normalizeClass, onMounted, openBlock, ref, renderList, resolveDynamicComponent, unref, useModel, useSlots, useTemplateRef, watch, withCtx } from "vue";
8
+ import { watchImmediate } from "@vueuse/core";
9
+ import { get as get$1, set as set$1 } from "@vueuse/shared";
10
+ //#region src/components/tabs/tabs/RuiTabs.vue?vue&type=script&setup=true&lang.ts
11
+ var _hoisted_1 = ["data-vertical"];
12
+ var RuiTabs_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
13
+ name: "RuiTabs",
14
+ __name: "RuiTabs",
15
+ props: /* @__PURE__ */ mergeModels({
16
+ color: {},
17
+ vertical: {
18
+ type: Boolean,
19
+ default: false
20
+ },
21
+ disabled: {
22
+ type: Boolean,
23
+ default: false
24
+ },
25
+ grow: {
26
+ type: Boolean,
27
+ default: false
28
+ },
29
+ align: { default: "center" },
30
+ indicatorPosition: { default: "end" }
31
+ }, {
32
+ "modelValue": {},
33
+ "modelModifiers": {}
34
+ }),
35
+ emits: ["update:modelValue"],
36
+ setup(__props) {
37
+ const modelValue = useModel(__props, "modelValue");
38
+ const internalModelValue = ref();
39
+ const bar = useTemplateRef("bar");
40
+ const wrapper = useTemplateRef("wrapper");
41
+ const tabs = tv({
42
+ slots: {
43
+ root: "",
44
+ arrow: "",
45
+ bar: "no-scrollbar max-h-full overflow-auto",
46
+ wrapper: "h-full inline-flex max-w-none"
47
+ },
48
+ variants: {
49
+ layout: {
50
+ [TabLayout.horizontal]: {
51
+ root: "flex h-fit",
52
+ arrow: "h-[3rem] w-10",
53
+ bar: "h-[3rem]",
54
+ wrapper: ""
55
+ },
56
+ [TabLayout.vertical]: {
57
+ root: "inline-flex flex-col",
58
+ arrow: "min-h-[3rem] w-full",
59
+ bar: "",
60
+ wrapper: "flex-col h-auto"
61
+ }
62
+ },
63
+ wide: { true: {
64
+ bar: "w-full",
65
+ wrapper: "min-w-full"
66
+ } }
67
+ },
68
+ defaultVariants: { layout: TabLayout.horizontal }
69
+ });
70
+ const slots = useSlots();
71
+ const { showArrows, prevArrowDisabled, nextArrowDisabled, onPrevSliderClick, onNextSliderClick, keepActiveTabVisible } = useTabScroll({
72
+ bar,
73
+ wrapper,
74
+ vertical: () => __props.vertical
75
+ });
76
+ const { resolveRoute, isPathMatch } = useTabRouting({ onRouteChange: () => applyNewValue(true) });
77
+ const layout = computed(() => __props.vertical ? TabLayout.vertical : TabLayout.horizontal);
78
+ const ui = computed(() => tabs({
79
+ layout: get$1(layout),
80
+ wide: __props.vertical || __props.grow
81
+ }));
82
+ const children = computed(() => {
83
+ const tabs = getChildrenTabs(slots.default?.() ?? []);
84
+ const currentModelValue = get$1(internalModelValue);
85
+ const inheritedProps = {
86
+ color: __props.color,
87
+ grow: __props.grow,
88
+ disabled: __props.disabled,
89
+ vertical: __props.vertical,
90
+ align: __props.align,
91
+ indicatorPosition: __props.indicatorPosition
92
+ };
93
+ return tabs.map((tab, index) => {
94
+ let tabValue = tab.props?.value ?? index;
95
+ if (tab.props?.link !== false && tab.props?.to) tabValue = tab.props.to;
96
+ const active = currentModelValue === tabValue;
97
+ return {
98
+ ...tab,
99
+ props: {
100
+ value: tabValue,
101
+ active,
102
+ ...inheritedProps,
103
+ ...tab.props
104
+ }
105
+ };
106
+ });
107
+ });
108
+ function getChildrenTabs(children) {
109
+ return children.flatMap((item) => {
110
+ if (item.type === Fragment && Array.isArray(item.children) && item.children.length > 0) return getChildrenTabs(item.children.filter(isVNode));
111
+ return [item];
112
+ }).flat();
113
+ }
114
+ function updateModelValue(newModelValue) {
115
+ set$1(modelValue, newModelValue);
116
+ set$1(internalModelValue, newModelValue);
117
+ }
118
+ function getTabRouteProps(props) {
119
+ return {
120
+ value: typeof props.value === "string" || typeof props.value === "number" ? props.value : void 0,
121
+ to: props.to ?? void 0,
122
+ link: typeof props.link === "boolean" ? props.link : void 0,
123
+ exact: typeof props.exact === "boolean" ? props.exact : void 0,
124
+ exactPath: typeof props.exactPath === "boolean" ? props.exactPath : void 0
125
+ };
126
+ }
127
+ function resolveActiveValue(onlyLink) {
128
+ const enabledChildren = get$1(children).filter((child) => !child.props?.disabled);
129
+ if (enabledChildren.length === 0) return void 0;
130
+ let result = get$1(modelValue) || 0;
131
+ enabledChildren.forEach((child, index) => {
132
+ const tabProps = getTabRouteProps(child.props);
133
+ if (!onlyLink && index === 0 && tabProps.value) result = tabProps.value;
134
+ const fullPath = resolveRoute(tabProps.to);
135
+ if (tabProps.link !== false && fullPath && isPathMatch(fullPath, tabProps)) result = fullPath;
136
+ });
137
+ return result;
138
+ }
139
+ function applyNewValue(onlyLink = false) {
140
+ const value = resolveActiveValue(onlyLink);
141
+ if (value !== void 0) updateModelValue(value);
142
+ keepActiveTabVisible();
143
+ }
144
+ watchImmediate(() => get$1(modelValue), (modelValue) => {
145
+ set$1(internalModelValue, modelValue);
146
+ });
147
+ watch(internalModelValue, () => {
148
+ keepActiveTabVisible();
149
+ });
150
+ onMounted(() => {
151
+ if (get$1(modelValue) !== void 0) return;
152
+ applyNewValue();
153
+ });
154
+ return (_ctx, _cache) => {
155
+ return openBlock(), createElementBlock("div", {
156
+ class: normalizeClass(unref(ui).root()),
157
+ "data-vertical": __props.vertical || void 0
158
+ }, [
159
+ unref(showArrows) ? (openBlock(), createElementBlock("div", {
160
+ key: 0,
161
+ class: normalizeClass(unref(ui).arrow())
162
+ }, [createVNode(RuiButton_default, {
163
+ class: "w-full h-full !rounded-none",
164
+ variant: "text",
165
+ color: __props.color,
166
+ disabled: unref(prevArrowDisabled),
167
+ onClick: _cache[0] || (_cache[0] = ($event) => unref(onPrevSliderClick)())
168
+ }, {
169
+ default: withCtx(() => [createVNode(RuiIcon_default, { name: __props.vertical ? "lu-chevron-up" : "lu-chevron-left" }, null, 8, ["name"])]),
170
+ _: 1
171
+ }, 8, ["color", "disabled"])], 2)) : createCommentVNode("", true),
172
+ createElementVNode("div", {
173
+ ref_key: "bar",
174
+ ref: bar,
175
+ class: normalizeClass(unref(ui).bar())
176
+ }, [createElementVNode("div", {
177
+ ref_key: "wrapper",
178
+ ref: wrapper,
179
+ role: "tablist",
180
+ "data-id": "tabs-wrapper",
181
+ class: normalizeClass(unref(ui).wrapper())
182
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(unref(children), (child, i) => {
183
+ return openBlock(), createBlock(resolveDynamicComponent(child), {
184
+ key: i,
185
+ onClick: _cache[1] || (_cache[1] = ($event) => updateModelValue($event))
186
+ });
187
+ }), 128))], 2)], 2),
188
+ unref(showArrows) ? (openBlock(), createElementBlock("div", {
189
+ key: 1,
190
+ class: normalizeClass(unref(ui).arrow())
191
+ }, [createVNode(RuiButton_default, {
192
+ class: "w-full h-full !rounded-none",
193
+ variant: "text",
194
+ color: __props.color,
195
+ disabled: unref(nextArrowDisabled),
196
+ onClick: _cache[2] || (_cache[2] = ($event) => unref(onNextSliderClick)())
197
+ }, {
198
+ default: withCtx(() => [createVNode(RuiIcon_default, { name: __props.vertical ? "lu-chevron-down" : "lu-chevron-right" }, null, 8, ["name"])]),
199
+ _: 1
200
+ }, 8, ["color", "disabled"])], 2)) : createCommentVNode("", true)
201
+ ], 10, _hoisted_1);
202
+ };
203
+ }
204
+ });
205
+ //#endregion
206
+ export { RuiTabs_vue_vue_type_script_setup_true_lang_default as default };
207
+
208
+ //# sourceMappingURL=RuiTabs.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuiTabs.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../src/components/tabs/tabs/RuiTabs.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ContextColorsType } from '@/consts/colors';\nimport { Fragment, isVNode, type VNode } from 'vue';\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport { type TabAlignment, type TabIndicatorPosition, TabLayout } from '@/components/tabs/tab-props';\nimport { useTabRouting } from '@/components/tabs/tabs/use-tab-routing';\nimport { useTabScroll } from '@/components/tabs/tabs/use-tab-scroll';\nimport { tv } from '@/utils/tv';\n\ntype ChildNode = VNode & { props: Record<string, any> };\n\ninterface ResolvedTabProps {\n value?: string | number;\n to?: unknown;\n link?: boolean;\n exact?: boolean;\n exactPath?: boolean;\n}\n\nexport interface Props {\n color?: ContextColorsType;\n vertical?: boolean;\n disabled?: boolean;\n grow?: boolean;\n align?: TabAlignment;\n indicatorPosition?: TabIndicatorPosition;\n}\n\ndefineOptions({\n name: 'RuiTabs',\n});\n\nconst modelValue = defineModel<number | string>();\n\nconst {\n color,\n vertical = false,\n disabled = false,\n grow = false,\n align = 'center',\n indicatorPosition = 'end',\n} = defineProps<Props>();\n\nconst internalModelValue = ref<string | number>();\nconst bar = useTemplateRef<HTMLDivElement>('bar');\nconst wrapper = useTemplateRef<HTMLDivElement>('wrapper');\n\nconst tabs = tv({\n slots: {\n root: '',\n arrow: '',\n bar: 'no-scrollbar max-h-full overflow-auto',\n wrapper: 'h-full inline-flex max-w-none',\n },\n variants: {\n layout: {\n [TabLayout.horizontal]: {\n root: 'flex h-fit',\n arrow: 'h-[3rem] w-10',\n bar: 'h-[3rem]',\n wrapper: '',\n },\n [TabLayout.vertical]: {\n root: 'inline-flex flex-col',\n arrow: 'min-h-[3rem] w-full',\n bar: '',\n wrapper: 'flex-col h-auto',\n },\n },\n wide: {\n true: {\n bar: 'w-full',\n wrapper: 'min-w-full',\n },\n },\n },\n defaultVariants: { layout: TabLayout.horizontal },\n});\n\nconst slots = useSlots();\n\nconst {\n showArrows,\n prevArrowDisabled,\n nextArrowDisabled,\n onPrevSliderClick,\n onNextSliderClick,\n keepActiveTabVisible,\n} = useTabScroll({ bar, wrapper, vertical: () => vertical });\n\nconst { resolveRoute, isPathMatch } = useTabRouting({\n onRouteChange: () => applyNewValue(true),\n});\n\nconst layout = computed<TabLayout>(() => vertical ? TabLayout.vertical : TabLayout.horizontal);\nconst ui = computed<ReturnType<typeof tabs>>(() => tabs({ layout: get(layout), wide: vertical || grow }));\n\nconst children = computed<ChildNode[]>(() => {\n const slotContent = slots.default?.() ?? [];\n\n const tabs = getChildrenTabs(slotContent);\n\n const currentModelValue = get(internalModelValue);\n const inheritedProps = {\n color,\n grow,\n disabled,\n vertical,\n align,\n indicatorPosition,\n };\n\n return tabs.map((tab, index) => {\n let tabValue = tab.props?.value ?? index;\n if (tab.props?.link !== false && tab.props?.to)\n tabValue = tab.props.to;\n\n const active = currentModelValue === tabValue;\n return {\n ...tab,\n props: {\n value: tabValue,\n active,\n ...inheritedProps,\n ...tab.props,\n },\n };\n });\n});\n\n// When using dynamic content with v-for the slot content can contain fragment,\n// Go through the fragment and always return RuiTab only\nfunction getChildrenTabs(children: VNode[]): VNode[] {\n return children.flatMap((item) => {\n if (item.type === Fragment && Array.isArray(item.children) && item.children.length > 0)\n return getChildrenTabs(item.children.filter(isVNode));\n\n return [item];\n }).flat();\n}\n\nfunction updateModelValue(newModelValue: string | number): void {\n set(modelValue, newModelValue);\n set(internalModelValue, newModelValue);\n}\n\nfunction getTabRouteProps(props: Record<string, unknown>): ResolvedTabProps {\n return {\n value: typeof props.value === 'string' || typeof props.value === 'number' ? props.value : undefined,\n to: props.to ?? undefined,\n link: typeof props.link === 'boolean' ? props.link : undefined,\n exact: typeof props.exact === 'boolean' ? props.exact : undefined,\n exactPath: typeof props.exactPath === 'boolean' ? props.exactPath : undefined,\n };\n}\n\nfunction resolveActiveValue(onlyLink: boolean): string | number | undefined {\n const enabledChildren = get(children).filter(child => !child.props?.disabled);\n if (enabledChildren.length === 0)\n return undefined;\n\n let result: string | number = get(modelValue) || 0;\n enabledChildren.forEach((child, index) => {\n const tabProps = getTabRouteProps(child.props);\n if (!onlyLink && index === 0 && tabProps.value)\n result = tabProps.value;\n\n const fullPath = resolveRoute(tabProps.to);\n\n if (tabProps.link !== false && fullPath && isPathMatch(fullPath, tabProps))\n result = fullPath;\n });\n return result;\n}\n\nfunction applyNewValue(onlyLink = false): void {\n const value = resolveActiveValue(onlyLink);\n if (value !== undefined)\n updateModelValue(value);\n\n keepActiveTabVisible();\n}\n\nwatchImmediate(() => get(modelValue), (modelValue) => {\n set(internalModelValue, modelValue);\n});\n\nwatch(internalModelValue, () => {\n keepActiveTabVisible();\n});\n\nonMounted(() => {\n if (get(modelValue) !== undefined)\n return;\n\n applyNewValue();\n});\n</script>\n\n<template>\n <div\n :class=\"ui.root()\"\n :data-vertical=\"vertical || undefined\"\n >\n <div\n v-if=\"showArrows\"\n :class=\"ui.arrow()\"\n >\n <RuiButton\n class=\"w-full h-full !rounded-none\"\n variant=\"text\"\n :color=\"color\"\n :disabled=\"prevArrowDisabled\"\n @click=\"onPrevSliderClick()\"\n >\n <RuiIcon :name=\"vertical ? 'lu-chevron-up' : 'lu-chevron-left'\" />\n </RuiButton>\n </div>\n <div\n ref=\"bar\"\n :class=\"ui.bar()\"\n >\n <div\n ref=\"wrapper\"\n role=\"tablist\"\n data-id=\"tabs-wrapper\"\n :class=\"ui.wrapper()\"\n >\n <Component\n :is=\"child\"\n v-for=\"(child, i) in children\"\n :key=\"i\"\n @click=\"updateModelValue($event)\"\n />\n </div>\n </div>\n <div\n v-if=\"showArrows\"\n :class=\"ui.arrow()\"\n >\n <RuiButton\n class=\"w-full h-full !rounded-none\"\n variant=\"text\"\n :color=\"color\"\n :disabled=\"nextArrowDisabled\"\n @click=\"onNextSliderClick()\"\n >\n <RuiIcon :name=\"vertical ? 'lu-chevron-down' : 'lu-chevron-right'\" />\n </RuiButton>\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCA,MAAM,aAAa,SAA4B,SAAA,aAAE;EAWjD,MAAM,qBAAqB,KAAsB;EACjD,MAAM,MAAM,eAA+B,MAAM;EACjD,MAAM,UAAU,eAA+B,UAAU;EAEzD,MAAM,OAAO,GAAG;GACd,OAAO;IACL,MAAM;IACN,OAAO;IACP,KAAK;IACL,SAAS;IACV;GACD,UAAU;IACR,QAAQ;MACL,UAAU,aAAa;MACtB,MAAM;MACN,OAAO;MACP,KAAK;MACL,SAAS;MACV;MACA,UAAU,WAAW;MACpB,MAAM;MACN,OAAO;MACP,KAAK;MACL,SAAS;;KAEZ;IACD,MAAM,EACJ,MAAM;KACJ,KAAK;KACL,SAAS;KACV,EAAA;IAEJ;GACD,iBAAiB,EAAE,QAAQ,UAAU,YAAA;GACtC,CAAC;EAEF,MAAM,QAAQ,UAAU;EAExB,MAAM,EACJ,YACA,mBACA,mBACA,mBACA,mBACA,yBACE,aAAa;GAAE;GAAK;GAAS,gBAAgB,QAAA;GAAU,CAAC;EAE5D,MAAM,EAAE,cAAc,gBAAgB,cAAc,EAClD,qBAAqB,cAAc,KAAK,EACzC,CAAC;EAEF,MAAM,SAAS,eAA0B,QAAA,WAAW,UAAU,WAAW,UAAU,WAAW;EAC9F,MAAM,KAAK,eAAwC,KAAK;GAAE,QAAQ,MAAI,OAAO;GAAE,MAAM,QAAA,YAAY,QAAA;GAAM,CAAC,CAAC;EAEzG,MAAM,WAAW,eAA4B;GAG3C,MAAM,OAAO,gBAFO,MAAM,WAAW,IAAI,EAAE,CAEF;GAEzC,MAAM,oBAAoB,MAAI,mBAAmB;GACjD,MAAM,iBAAiB;IACrB,OAAI,QAAA;IACJ,MAAG,QAAA;IACH,UAAO,QAAA;IACP,UAAO,QAAA;IACP,OAAI,QAAA;IACJ,mBAAgB,QAAA;IACjB;AAED,UAAO,KAAK,KAAK,KAAK,UAAU;IAC9B,IAAI,WAAW,IAAI,OAAO,SAAS;AACnC,QAAI,IAAI,OAAO,SAAS,SAAS,IAAI,OAAO,GAC1C,YAAW,IAAI,MAAM;IAEvB,MAAM,SAAS,sBAAsB;AACrC,WAAO;KACL,GAAG;KACH,OAAO;MACL,OAAO;MACP;MACA,GAAG;MACH,GAAG,IAAI;;KAEV;KACD;IACF;EAIF,SAAS,gBAAgB,UAA4B;AACnD,UAAO,SAAS,SAAS,SAAS;AAChC,QAAI,KAAK,SAAS,YAAY,MAAM,QAAQ,KAAK,SAAS,IAAI,KAAK,SAAS,SAAS,EACnF,QAAO,gBAAgB,KAAK,SAAS,OAAO,QAAQ,CAAC;AAEvD,WAAO,CAAC,KAAK;KACb,CAAC,MAAM;;EAGX,SAAS,iBAAiB,eAAsC;AAC9D,SAAI,YAAY,cAAc;AAC9B,SAAI,oBAAoB,cAAc;;EAGxC,SAAS,iBAAiB,OAAkD;AAC1E,UAAO;IACL,OAAO,OAAO,MAAM,UAAU,YAAY,OAAO,MAAM,UAAU,WAAW,MAAM,QAAQ,KAAA;IAC1F,IAAI,MAAM,MAAM,KAAA;IAChB,MAAM,OAAO,MAAM,SAAS,YAAY,MAAM,OAAO,KAAA;IACrD,OAAO,OAAO,MAAM,UAAU,YAAY,MAAM,QAAQ,KAAA;IACxD,WAAW,OAAO,MAAM,cAAc,YAAY,MAAM,YAAY,KAAA;IACrE;;EAGH,SAAS,mBAAmB,UAAgD;GAC1E,MAAM,kBAAkB,MAAI,SAAS,CAAC,QAAO,UAAS,CAAC,MAAM,OAAO,SAAS;AAC7E,OAAI,gBAAgB,WAAW,EAC7B,QAAO,KAAA;GAET,IAAI,SAA0B,MAAI,WAAW,IAAI;AACjD,mBAAgB,SAAS,OAAO,UAAU;IACxC,MAAM,WAAW,iBAAiB,MAAM,MAAM;AAC9C,QAAI,CAAC,YAAY,UAAU,KAAK,SAAS,MACvC,UAAS,SAAS;IAEpB,MAAM,WAAW,aAAa,SAAS,GAAG;AAE1C,QAAI,SAAS,SAAS,SAAS,YAAY,YAAY,UAAU,SAAS,CACxE,UAAS;KACX;AACF,UAAO;;EAGT,SAAS,cAAc,WAAW,OAAa;GAC7C,MAAM,QAAQ,mBAAmB,SAAS;AAC1C,OAAI,UAAU,KAAA,EACZ,kBAAiB,MAAM;AAEzB,yBAAsB;;AAGxB,uBAAqB,MAAI,WAAW,GAAG,eAAe;AACpD,SAAI,oBAAoB,WAAW;IACnC;AAEF,QAAM,0BAA0B;AAC9B,yBAAsB;IACtB;AAEF,kBAAgB;AACd,OAAI,MAAI,WAAW,KAAK,KAAA,EACtB;AAEF,kBAAe;IACf;;uBAIA,mBAkDM,OAAA;IAjDH,OAAK,eAAE,MAAA,GAAE,CAAC,MAAI,CAAA;IACd,iBAAe,QAAA,YAAY,KAAA;;IAGpB,MAAA,WAAU,IAAA,WAAA,EADlB,mBAaM,OAAA;;KAXH,OAAK,eAAE,MAAA,GAAE,CAAC,OAAK,CAAA;QAEhB,YAQY,mBAAA;KAPV,OAAM;KACN,SAAQ;KACP,OAAO,QAAA;KACP,UAAU,MAAA,kBAAiB;KAC3B,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAA,kBAAiB,EAAA;;4BAEyC,CAAlE,YAAkE,iBAAA,EAAxD,MAAM,QAAA,WAAQ,kBAAA,mBAAA,EAAA,MAAA,GAAA,CAAA,OAAA,CAAA,CAAA,CAAA;;;IAG5B,mBAiBM,OAAA;cAhBA;KAAJ,KAAI;KACH,OAAK,eAAE,MAAA,GAAE,CAAC,KAAG,CAAA;QAEd,mBAYM,OAAA;cAXA;KAAJ,KAAI;KACJ,MAAK;KACL,WAAQ;KACP,OAAK,eAAE,MAAA,GAAE,CAAC,SAAO,CAAA;0BAElB,mBAKE,UAAA,MAAA,WAHqB,MAAA,SAAQ,GAArB,OAAO,MAAC;yBAFlB,YAKE,wBAJK,MAAK,EAAA;MAET,KAAK;MACL,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,iBAAiB,OAAM;;;IAK7B,MAAA,WAAU,IAAA,WAAA,EADlB,mBAaM,OAAA;;KAXH,OAAK,eAAE,MAAA,GAAE,CAAC,OAAK,CAAA;QAEhB,YAQY,mBAAA;KAPV,OAAM;KACN,SAAQ;KACP,OAAO,QAAA;KACP,UAAU,MAAA,kBAAiB;KAC3B,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,MAAA,kBAAiB,EAAA;;4BAE4C,CAArE,YAAqE,iBAAA,EAA3D,MAAM,QAAA,WAAQ,oBAAA,oBAAA,EAAA,MAAA,GAAA,CAAA,OAAA,CAAA,CAAA,CAAA"}
@@ -0,0 +1,28 @@
1
+ import type { RouteMatchOptions } from '../../../components/tabs/tab-props.js';
2
+ import { type RouteLocationRaw } from 'vue-router';
3
+ interface UseTabRoutingOptions {
4
+ /** Callback invoked when the route changes, to re-sync the active tab */
5
+ onRouteChange: () => void;
6
+ }
7
+ interface UseTabRoutingReturn {
8
+ /** Whether vue-router is available in the app context */
9
+ hasRouter: boolean;
10
+ /**
11
+ * Resolves a route location and returns its full path, or undefined
12
+ * if the router is not available or the value is not a valid route location.
13
+ */
14
+ resolveRoute: (to: unknown) => string | undefined;
15
+ /**
16
+ * Checks whether a given path matches the current route.
17
+ * Supports exact path, exact route, and prefix matching.
18
+ */
19
+ isPathMatch: (path: string, options: RouteMatchOptions) => boolean;
20
+ }
21
+ export declare function isRouteLocation(value: unknown): value is RouteLocationRaw;
22
+ /**
23
+ * Composable that manages vue-router integration for the RuiTabs component.
24
+ * Provides route resolution and path matching utilities, and watches for
25
+ * route changes to notify the parent component.
26
+ */
27
+ export declare function useTabRouting({ onRouteChange }: UseTabRoutingOptions): UseTabRoutingReturn;
28
+ export {};
@@ -0,0 +1,43 @@
1
+ import { getCurrentInstance, watch } from "vue";
2
+ import { useRoute, useRouter } from "vue-router";
3
+ //#region src/components/tabs/tabs/use-tab-routing.ts
4
+ function isRouteLocation(value) {
5
+ return typeof value === "string" || typeof value === "object" && value !== null;
6
+ }
7
+ /**
8
+ * Composable that manages vue-router integration for the RuiTabs component.
9
+ * Provides route resolution and path matching utilities, and watches for
10
+ * route changes to notify the parent component.
11
+ */
12
+ function useTabRouting({ onRouteChange }) {
13
+ const hasRouter = getCurrentInstance()?.appContext.config.globalProperties.$router !== void 0;
14
+ if (!hasRouter) return {
15
+ hasRouter,
16
+ resolveRoute: () => void 0,
17
+ isPathMatch: () => false
18
+ };
19
+ const route = useRoute();
20
+ const router = useRouter();
21
+ function resolveRoute(to) {
22
+ if (!isRouteLocation(to)) return void 0;
23
+ return router.resolve(to).fullPath;
24
+ }
25
+ function isPathMatch(path, { exactPath, exact }) {
26
+ const currentRoute = route.fullPath;
27
+ if (exactPath) return currentRoute === path;
28
+ const base = typeof window !== "undefined" ? window.location.origin : "http://localhost";
29
+ const routeWithoutQueryParams = new URL(path, base).pathname;
30
+ if (exact) return currentRoute === routeWithoutQueryParams;
31
+ return currentRoute.startsWith(routeWithoutQueryParams);
32
+ }
33
+ watch(route, onRouteChange);
34
+ return {
35
+ hasRouter,
36
+ resolveRoute,
37
+ isPathMatch
38
+ };
39
+ }
40
+ //#endregion
41
+ export { useTabRouting };
42
+
43
+ //# sourceMappingURL=use-tab-routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-tab-routing.js","names":[],"sources":["../../../../src/components/tabs/tabs/use-tab-routing.ts"],"sourcesContent":["import type { RouteMatchOptions } from '@/components/tabs/tab-props';\nimport { type RouteLocationRaw, useRoute, useRouter } from 'vue-router';\n\ninterface UseTabRoutingOptions {\n /** Callback invoked when the route changes, to re-sync the active tab */\n onRouteChange: () => void;\n}\n\ninterface UseTabRoutingReturn {\n /** Whether vue-router is available in the app context */\n hasRouter: boolean;\n /**\n * Resolves a route location and returns its full path, or undefined\n * if the router is not available or the value is not a valid route location.\n */\n resolveRoute: (to: unknown) => string | undefined;\n /**\n * Checks whether a given path matches the current route.\n * Supports exact path, exact route, and prefix matching.\n */\n isPathMatch: (path: string, options: RouteMatchOptions) => boolean;\n}\n\nexport function isRouteLocation(value: unknown): value is RouteLocationRaw {\n return typeof value === 'string' || (typeof value === 'object' && value !== null);\n}\n\n/**\n * Composable that manages vue-router integration for the RuiTabs component.\n * Provides route resolution and path matching utilities, and watches for\n * route changes to notify the parent component.\n */\nexport function useTabRouting({ onRouteChange }: UseTabRoutingOptions): UseTabRoutingReturn {\n const hasRouter = getCurrentInstance()?.appContext.config.globalProperties.$router !== undefined;\n\n if (!hasRouter) {\n return {\n hasRouter,\n resolveRoute: () => undefined,\n isPathMatch: () => false,\n };\n }\n\n const route = useRoute();\n const router = useRouter();\n\n function resolveRoute(to: unknown): string | undefined {\n if (!isRouteLocation(to))\n return undefined;\n\n return router.resolve(to).fullPath;\n }\n\n function isPathMatch(\n path: string,\n { exactPath, exact }: RouteMatchOptions,\n ): boolean {\n const currentRoute = route.fullPath;\n\n if (exactPath)\n return currentRoute === path;\n\n const base = typeof window !== 'undefined' ? window.location.origin : 'http://localhost';\n const routeWithoutQueryParams = new URL(path, base).pathname;\n\n if (exact)\n return currentRoute === routeWithoutQueryParams;\n\n return currentRoute.startsWith(routeWithoutQueryParams);\n }\n\n watch(route, onRouteChange);\n\n return {\n hasRouter,\n resolveRoute,\n isPathMatch,\n };\n}\n"],"mappings":";;;AAuBA,SAAgB,gBAAgB,OAA2C;AACzE,QAAO,OAAO,UAAU,YAAa,OAAO,UAAU,YAAY,UAAU;;;;;;;AAQ9E,SAAgB,cAAc,EAAE,iBAA4D;CAC1F,MAAM,YAAY,oBAAoB,EAAE,WAAW,OAAO,iBAAiB,YAAY,KAAA;AAEvF,KAAI,CAAC,UACH,QAAO;EACL;EACA,oBAAoB,KAAA;EACpB,mBAAmB;EACpB;CAGH,MAAM,QAAQ,UAAU;CACxB,MAAM,SAAS,WAAW;CAE1B,SAAS,aAAa,IAAiC;AACrD,MAAI,CAAC,gBAAgB,GAAG,CACtB,QAAO,KAAA;AAET,SAAO,OAAO,QAAQ,GAAG,CAAC;;CAG5B,SAAS,YACP,MACA,EAAE,WAAW,SACJ;EACT,MAAM,eAAe,MAAM;AAE3B,MAAI,UACF,QAAO,iBAAiB;EAE1B,MAAM,OAAO,OAAO,WAAW,cAAc,OAAO,SAAS,SAAS;EACtE,MAAM,0BAA0B,IAAI,IAAI,MAAM,KAAK,CAAC;AAEpD,MAAI,MACF,QAAO,iBAAiB;AAE1B,SAAO,aAAa,WAAW,wBAAwB;;AAGzD,OAAM,OAAO,cAAc;AAE3B,QAAO;EACL;EACA;EACA;EACD"}
@@ -0,0 +1,23 @@
1
+ import type { ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from 'vue';
2
+ interface UseTabScrollOptions {
3
+ /** The scrollable bar container element */
4
+ bar: Readonly<ShallowRef<HTMLDivElement | null>>;
5
+ /** The wrapper element containing the tab buttons */
6
+ wrapper: Readonly<ShallowRef<HTMLDivElement | null>>;
7
+ /** Getter for the current vertical orientation state */
8
+ vertical: MaybeRefOrGetter<boolean>;
9
+ }
10
+ interface UseTabScrollReturn {
11
+ showArrows: Readonly<Ref<boolean>>;
12
+ prevArrowDisabled: ComputedRef<boolean>;
13
+ nextArrowDisabled: ComputedRef<boolean>;
14
+ onPrevSliderClick: () => void;
15
+ onNextSliderClick: () => void;
16
+ keepActiveTabVisible: () => void;
17
+ }
18
+ /**
19
+ * Composable that manages tab scroll behavior, overflow arrow visibility,
20
+ * and active tab auto-scrolling for the RuiTabs component.
21
+ */
22
+ export declare function useTabScroll({ bar, wrapper, vertical }: UseTabScrollOptions): UseTabScrollReturn;
23
+ export {};
@@ -0,0 +1,68 @@
1
+ import { computed, nextTick, readonly, shallowRef, toRefs, toValue } from "vue";
2
+ import { useElementSize, useResizeObserver, useScroll } from "@vueuse/core";
3
+ import { get as get$1, set as set$1 } from "@vueuse/shared";
4
+ //#region src/components/tabs/tabs/use-tab-scroll.ts
5
+ /**
6
+ * Composable that manages tab scroll behavior, overflow arrow visibility,
7
+ * and active tab auto-scrolling for the RuiTabs component.
8
+ */
9
+ function useTabScroll({ bar, wrapper, vertical }) {
10
+ const showArrows = shallowRef(false);
11
+ const { width: barWidth, height: barHeight } = useElementSize(bar);
12
+ const { arrivedState, x, y } = useScroll(bar, { behavior: "smooth" });
13
+ const { top, bottom, left, right } = toRefs(arrivedState);
14
+ function checkOverflow() {
15
+ const elem = get$1(wrapper);
16
+ const barElem = get$1(bar);
17
+ if (!elem || !barElem) {
18
+ set$1(showArrows, false);
19
+ return;
20
+ }
21
+ set$1(showArrows, toValue(vertical) ? elem.scrollHeight > barElem.offsetHeight : elem.scrollWidth > barElem.offsetWidth);
22
+ }
23
+ useResizeObserver(bar, checkOverflow);
24
+ useResizeObserver(wrapper, () => {
25
+ checkOverflow();
26
+ keepActiveTabVisible();
27
+ });
28
+ const prevArrowDisabled = computed(() => toValue(vertical) ? get$1(top) : get$1(left));
29
+ const nextArrowDisabled = computed(() => toValue(vertical) ? get$1(bottom) : get$1(right));
30
+ function scrollToActiveTab() {
31
+ if (!get$1(showArrows)) return;
32
+ const elem = get$1(wrapper);
33
+ const barElem = get$1(bar);
34
+ if (!elem || !barElem) return;
35
+ const activeTab = elem.querySelector("[data-active-tab]");
36
+ if (!activeTab) return;
37
+ const childLeft = activeTab.offsetLeft - elem.offsetLeft;
38
+ const childTop = activeTab.offsetTop - elem.offsetTop;
39
+ barElem.scrollTo({
40
+ left: Math.max(Math.min(barElem.scrollLeft, childLeft), childLeft + activeTab.offsetWidth - barElem.offsetWidth),
41
+ top: Math.max(Math.min(barElem.scrollTop, childTop), childTop + activeTab.offsetHeight - barElem.offsetHeight),
42
+ behavior: "smooth"
43
+ });
44
+ }
45
+ function keepActiveTabVisible() {
46
+ nextTick(scrollToActiveTab);
47
+ }
48
+ function onPrevSliderClick() {
49
+ if (!toValue(vertical)) set$1(x, get$1(x) - get$1(barWidth));
50
+ else set$1(y, get$1(y) - get$1(barHeight));
51
+ }
52
+ function onNextSliderClick() {
53
+ if (!toValue(vertical)) set$1(x, get$1(x) + get$1(barWidth));
54
+ else set$1(y, get$1(y) + get$1(barHeight));
55
+ }
56
+ return {
57
+ showArrows: readonly(showArrows),
58
+ prevArrowDisabled,
59
+ nextArrowDisabled,
60
+ onPrevSliderClick,
61
+ onNextSliderClick,
62
+ keepActiveTabVisible
63
+ };
64
+ }
65
+ //#endregion
66
+ export { useTabScroll };
67
+
68
+ //# sourceMappingURL=use-tab-scroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-tab-scroll.js","names":[],"sources":["../../../../src/components/tabs/tabs/use-tab-scroll.ts"],"sourcesContent":["import type { ComputedRef, MaybeRefOrGetter, Ref, ShallowRef } from 'vue';\n\ninterface UseTabScrollOptions {\n /** The scrollable bar container element */\n bar: Readonly<ShallowRef<HTMLDivElement | null>>;\n /** The wrapper element containing the tab buttons */\n wrapper: Readonly<ShallowRef<HTMLDivElement | null>>;\n /** Getter for the current vertical orientation state */\n vertical: MaybeRefOrGetter<boolean>;\n}\n\ninterface UseTabScrollReturn {\n showArrows: Readonly<Ref<boolean>>;\n prevArrowDisabled: ComputedRef<boolean>;\n nextArrowDisabled: ComputedRef<boolean>;\n onPrevSliderClick: () => void;\n onNextSliderClick: () => void;\n keepActiveTabVisible: () => void;\n}\n\n/**\n * Composable that manages tab scroll behavior, overflow arrow visibility,\n * and active tab auto-scrolling for the RuiTabs component.\n */\nexport function useTabScroll({ bar, wrapper, vertical }: UseTabScrollOptions): UseTabScrollReturn {\n const showArrows = shallowRef<boolean>(false);\n\n const { width: barWidth, height: barHeight } = useElementSize(bar);\n const { arrivedState, x, y } = useScroll(bar, { behavior: 'smooth' });\n const { top, bottom, left, right } = toRefs(arrivedState);\n\n function checkOverflow(): void {\n const elem = get(wrapper);\n const barElem = get(bar);\n if (!elem || !barElem) {\n set(showArrows, false);\n return;\n }\n\n const overflows = toValue(vertical)\n ? elem.scrollHeight > barElem.offsetHeight\n : elem.scrollWidth > barElem.offsetWidth;\n\n set(showArrows, overflows);\n }\n\n useResizeObserver(bar, checkOverflow);\n useResizeObserver(wrapper, () => {\n checkOverflow();\n keepActiveTabVisible();\n });\n\n const prevArrowDisabled = computed<boolean>(() => toValue(vertical) ? get(top) : get(left));\n\n const nextArrowDisabled = computed<boolean>(() => toValue(vertical) ? get(bottom) : get(right));\n\n function scrollToActiveTab(): void {\n if (!get(showArrows))\n return;\n\n const elem = get(wrapper);\n const barElem = get(bar);\n\n if (!elem || !barElem)\n return;\n\n const activeTab = elem.querySelector<HTMLElement>('[data-active-tab]');\n\n if (!activeTab)\n return;\n\n const childLeft = activeTab.offsetLeft - elem.offsetLeft;\n const childTop = activeTab.offsetTop - elem.offsetTop;\n\n barElem.scrollTo({\n left: Math.max(Math.min(barElem.scrollLeft, childLeft), childLeft + activeTab.offsetWidth - barElem.offsetWidth),\n top: Math.max(Math.min(barElem.scrollTop, childTop), childTop + activeTab.offsetHeight - barElem.offsetHeight),\n behavior: 'smooth',\n });\n }\n\n function keepActiveTabVisible(): void {\n nextTick(scrollToActiveTab);\n }\n\n function onPrevSliderClick(): void {\n if (!toValue(vertical))\n set(x, get(x) - get(barWidth));\n else\n set(y, get(y) - get(barHeight));\n }\n\n function onNextSliderClick(): void {\n if (!toValue(vertical))\n set(x, get(x) + get(barWidth));\n else\n set(y, get(y) + get(barHeight));\n }\n\n return {\n showArrows: readonly(showArrows),\n prevArrowDisabled,\n nextArrowDisabled,\n onPrevSliderClick,\n onNextSliderClick,\n keepActiveTabVisible,\n };\n}\n"],"mappings":";;;;;;;;AAwBA,SAAgB,aAAa,EAAE,KAAK,SAAS,YAAqD;CAChG,MAAM,aAAa,WAAoB,MAAM;CAE7C,MAAM,EAAE,OAAO,UAAU,QAAQ,cAAc,eAAe,IAAI;CAClE,MAAM,EAAE,cAAc,GAAG,MAAM,UAAU,KAAK,EAAE,UAAU,UAAU,CAAC;CACrE,MAAM,EAAE,KAAK,QAAQ,MAAM,UAAU,OAAO,aAAa;CAEzD,SAAS,gBAAsB;EAC7B,MAAM,OAAO,MAAI,QAAQ;EACzB,MAAM,UAAU,MAAI,IAAI;AACxB,MAAI,CAAC,QAAQ,CAAC,SAAS;AACrB,SAAI,YAAY,MAAM;AACtB;;AAOF,QAAI,YAJc,QAAQ,SAAS,GAC/B,KAAK,eAAe,QAAQ,eAC5B,KAAK,cAAc,QAAQ,YAEL;;AAG5B,mBAAkB,KAAK,cAAc;AACrC,mBAAkB,eAAe;AAC/B,iBAAe;AACf,wBAAsB;GACtB;CAEF,MAAM,oBAAoB,eAAwB,QAAQ,SAAS,GAAG,MAAI,IAAI,GAAG,MAAI,KAAK,CAAC;CAE3F,MAAM,oBAAoB,eAAwB,QAAQ,SAAS,GAAG,MAAI,OAAO,GAAG,MAAI,MAAM,CAAC;CAE/F,SAAS,oBAA0B;AACjC,MAAI,CAAC,MAAI,WAAW,CAClB;EAEF,MAAM,OAAO,MAAI,QAAQ;EACzB,MAAM,UAAU,MAAI,IAAI;AAExB,MAAI,CAAC,QAAQ,CAAC,QACZ;EAEF,MAAM,YAAY,KAAK,cAA2B,oBAAoB;AAEtE,MAAI,CAAC,UACH;EAEF,MAAM,YAAY,UAAU,aAAa,KAAK;EAC9C,MAAM,WAAW,UAAU,YAAY,KAAK;AAE5C,UAAQ,SAAS;GACf,MAAM,KAAK,IAAI,KAAK,IAAI,QAAQ,YAAY,UAAU,EAAE,YAAY,UAAU,cAAc,QAAQ,YAAY;GAChH,KAAK,KAAK,IAAI,KAAK,IAAI,QAAQ,WAAW,SAAS,EAAE,WAAW,UAAU,eAAe,QAAQ,aAAa;GAC9G,UAAU;GACX,CAAC;;CAGJ,SAAS,uBAA6B;AACpC,WAAS,kBAAkB;;CAG7B,SAAS,oBAA0B;AACjC,MAAI,CAAC,QAAQ,SAAS,CACpB,OAAI,GAAG,MAAI,EAAE,GAAG,MAAI,SAAS,CAAC;MAE9B,OAAI,GAAG,MAAI,EAAE,GAAG,MAAI,UAAU,CAAC;;CAGnC,SAAS,oBAA0B;AACjC,MAAI,CAAC,QAAQ,SAAS,CACpB,OAAI,GAAG,MAAI,EAAE,GAAG,MAAI,SAAS,CAAC;MAE9B,OAAI,GAAG,MAAI,EAAE,GAAG,MAAI,UAAU,CAAC;;AAGnC,QAAO;EACL,YAAY,SAAS,WAAW;EAChC;EACA;EACA;EACA;EACA;EACD"}
@@ -0,0 +1,7 @@
1
+ import RuiTimePicker_vue_vue_type_script_setup_true_lang_default from "./RuiTimePicker.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/time-picker/RuiTimePicker.vue
3
+ var RuiTimePicker_default = RuiTimePicker_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { RuiTimePicker_default as default };
6
+
7
+ //# sourceMappingURL=RuiTimePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuiTimePicker.js","names":[],"sources":["../../../src/components/time-picker/RuiTimePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onMounted, ref, type StyleValue, watch } from 'vue';\nimport { timePickerStyles } from '@/components/time-picker/time-picker-styles';\nimport { TimeAccuracy } from '@/consts/time-accuracy';\nimport { assert } from '@/utils/assert';\n\nexport type TimePickerSelection = 'hour' | 'minute' | 'second' | 'millisecond';\n\nexport interface RuiTimePickerProps {\n accuracy?: TimeAccuracy;\n borderless?: boolean;\n}\n\nconst modelValue = defineModel<Date | undefined>({ required: true });\n\nconst selectedHour = defineModel<number | undefined>('hour');\nconst selectedMinute = defineModel<number | undefined>('minute');\nconst selectedSecond = defineModel<number | undefined>('second');\nconst selectedMillisecond = defineModel<number | undefined>('millisecond');\nconst editMode = defineModel<TimePickerSelection>('selection', { default: 'hour' });\n\nconst { accuracy = TimeAccuracy.MINUTE, borderless = false } = defineProps<RuiTimePickerProps>();\n\nconst ui = timePickerStyles();\n\nconst FULL_CIRCLE = 360;\nconst TWELVE_HOURS = 12;\n\nconst totalItemsPerMode: Record<TimePickerSelection, number> = {\n hour: 12,\n minute: 60,\n second: 60,\n millisecond: 1000,\n};\n\nconst intervals: Record<TimePickerSelection, number> = {\n hour: 1,\n minute: 5,\n second: 5,\n millisecond: 100,\n};\n\nconst isDragging = ref<boolean>(false);\nconst clockFace = useTemplateRef<InstanceType<typeof HTMLDivElement>>('clockFace');\n\nconst showSecond = computed<boolean>(\n () => accuracy === TimeAccuracy.SECOND || accuracy === TimeAccuracy.MILLISECOND,\n);\nconst showMillisecond = computed<boolean>(() => accuracy === TimeAccuracy.MILLISECOND);\n\nconst period = computed<'PM' | 'AM'>(() =>\n isDefined(selectedHour) && get(selectedHour) >= TWELVE_HOURS ? 'PM' : 'AM',\n);\n\nconst displayHour = computed<number | undefined>(() => {\n if (!isDefined(selectedHour)) {\n return undefined;\n }\n const hourValue = get(selectedHour);\n const hour = hourValue % TWELVE_HOURS;\n return hour === 0 ? TWELVE_HOURS : hour;\n});\n\nconst editedValue = computed<number | undefined>(() => {\n const mode = get(editMode);\n if (mode === 'hour') {\n return get(displayHour);\n }\n else if (mode === 'minute') {\n return get(selectedMinute);\n }\n else if (mode === 'second') {\n return get(selectedSecond);\n }\n else {\n return get(selectedMillisecond);\n }\n});\n\nconst displayClockHandCircle = computed<boolean>(() => {\n const mode = get(editMode);\n if (mode === 'hour' || !isDefined(editedValue)) {\n return false;\n }\n else {\n const interval = intervals[mode];\n const value = get(editedValue);\n return value % interval !== 0;\n }\n});\n\nconst dotStyle = computed<StyleValue>(() => ({\n top: '50%',\n left: '50%',\n transform: 'translate(-50%, -50%)',\n}));\n\nconst clockHandStyle = computed<StyleValue>(() => {\n if (!isDefined(editedValue)) {\n return {};\n }\n const currentValue = get(editedValue);\n const totalItems = totalItemsPerMode[get(editMode)];\n const angle = currentValue * (FULL_CIRCLE / totalItems);\n\n return {\n height: '36%',\n top: '14%',\n left: '50%',\n transformOrigin: 'bottom center',\n transform: `translateX(-50%) rotate(${angle}deg)`,\n zIndex: 10,\n };\n});\n\nconst clockHandCircleStyle = computed<StyleValue>(() => {\n if (!isDefined(editedValue)) {\n return {};\n }\n const radius = '38%';\n const currentValue = get(editedValue);\n const totalItems = totalItemsPerMode[get(editMode)];\n const angle = currentValue * (FULL_CIRCLE / totalItems);\n\n const radians = (angle * Math.PI) / 180;\n\n const x = 50 + parseFloat(radius) * Math.cos(radians - Math.PI / 2);\n const y = 50 + parseFloat(radius) * Math.sin(radians - Math.PI / 2);\n\n return {\n position: 'absolute',\n top: `${y}%`,\n left: `${x}%`,\n width: '10px',\n height: '10px',\n borderRadius: '50%',\n transform: 'translate(-50%, -50%)',\n zIndex: 11,\n };\n});\n\nconst clockNumbers = computed<number[]>(() => {\n const mode = get(editMode);\n const interval = intervals[mode];\n const total = totalItemsPerMode[mode];\n const numbers = generateNumbers(total, interval);\n if (mode === 'hour') {\n numbers[0] = 12;\n }\n return numbers;\n});\n\nfunction getModelHours(): number | undefined {\n return isDefined(modelValue) ? new Date(get(modelValue)).getHours() : undefined;\n}\n\nfunction getModelMinutes(): number | undefined {\n return isDefined(modelValue) ? new Date(get(modelValue)).getMinutes() : undefined;\n}\n\nfunction getModelSeconds(): number | undefined {\n const acceptedAccuracy: TimeAccuracy[] = [TimeAccuracy.SECOND, TimeAccuracy.MILLISECOND];\n return acceptedAccuracy.includes(accuracy) && isDefined(modelValue)\n ? new Date(get(modelValue)).getSeconds()\n : undefined;\n}\n\nfunction getModelMilliseconds(): number | undefined {\n return accuracy === TimeAccuracy.MILLISECOND && isDefined(modelValue)\n ? new Date(get(modelValue)).getMilliseconds()\n : undefined;\n}\n\nfunction generateNumbers(total: number, interval: number): number[] {\n const numbers: number[] = [];\n for (let i = 0; i < total; i += interval) {\n numbers.push(i);\n }\n return numbers;\n}\n\nfunction formatValue(value?: number, padding = 2): string {\n return value !== undefined ? value.toString().padStart(padding, '0') : '-'.repeat(padding);\n}\n\nfunction numberStyle(num: number): StyleValue {\n const radius = '38%';\n const totalItems = totalItemsPerMode[get(editMode)];\n const angle = num * (FULL_CIRCLE / totalItems) - 90;\n\n const radians = (angle * Math.PI) / 180;\n const x = 50 + parseFloat(radius) * Math.cos(radians);\n const y = 50 + parseFloat(radius) * Math.sin(radians);\n\n return {\n top: `${y}%`,\n left: `${x}%`,\n transform: 'translate(-50%, -50%)',\n };\n}\n\nfunction isSelectedNumber(num: number): boolean {\n if (!isDefined(editedValue)) {\n return false;\n }\n const mode = get(editMode);\n if (mode === 'hour') {\n return get(displayHour) === num;\n }\n else {\n const value = get(editedValue);\n const interval = intervals[mode];\n return value === num || (value % interval === 0 && value === num);\n }\n}\n\nfunction toggleAmPm(): void {\n if (!isDefined(selectedHour)) {\n return;\n }\n if (get(selectedHour) < TWELVE_HOURS) {\n set(selectedHour, get(selectedHour) + TWELVE_HOURS);\n }\n else {\n set(selectedHour, get(selectedHour) - TWELVE_HOURS);\n }\n\n updateModelValue();\n}\n\nfunction startDrag(event: MouseEvent | TouchEvent): void {\n event.preventDefault();\n set(isDragging, true);\n\n if (!isDefined(clockFace))\n return;\n\n const rect = get(clockFace).getBoundingClientRect();\n const centerX = rect.left + rect.width / 2;\n const centerY = rect.top + rect.height / 2;\n let rafId: number | null = null;\n\n const applyMove = (clientX: number, clientY: number): void => {\n const x = clientX - centerX;\n const y = clientY - centerY;\n\n let angle = Math.atan2(y, x) * (180 / Math.PI) + 90;\n if (angle < 0)\n angle += FULL_CIRCLE;\n\n const mode = get(editMode);\n const unit =\n Math.round(angle / (FULL_CIRCLE / totalItemsPerMode[mode])) % totalItemsPerMode[mode];\n if (mode === 'hour') {\n let hour = unit;\n if (hour === 0)\n hour = TWELVE_HOURS;\n\n if (get(period) === 'PM' && hour < TWELVE_HOURS) {\n hour += TWELVE_HOURS;\n }\n else if (get(period) === 'AM' && hour === TWELVE_HOURS) {\n hour = 0;\n }\n\n set(selectedHour, hour);\n }\n else if (mode === 'minute') {\n set(selectedMinute, unit);\n }\n else if (mode === 'second') {\n set(selectedSecond, unit);\n }\n else {\n set(selectedMillisecond, unit);\n }\n\n updateModelValue();\n };\n\n const handleMove = (moveEvent: MouseEvent | TouchEvent): void => {\n if (!get(isDragging))\n return;\n\n if (rafId !== null)\n return;\n\n let clientX: number;\n let clientY: number;\n\n if ('touches' in moveEvent) {\n const touch = moveEvent.touches[0];\n assert(touch);\n clientX = touch.clientX;\n clientY = touch.clientY;\n }\n else {\n clientX = moveEvent.clientX;\n clientY = moveEvent.clientY;\n }\n\n rafId = requestAnimationFrame(() => {\n applyMove(clientX, clientY);\n rafId = null;\n });\n };\n\n const handleEnd = (): void => {\n if (rafId !== null) {\n cancelAnimationFrame(rafId);\n rafId = null;\n }\n set(isDragging, false);\n document.removeEventListener('mousemove', handleMove);\n document.removeEventListener('touchmove', handleMove);\n document.removeEventListener('mouseup', handleEnd);\n document.removeEventListener('touchend', handleEnd);\n\n if (get(editMode) === 'hour') {\n set(editMode, 'minute');\n }\n else if (get(showSecond) && get(editMode) === 'minute') {\n set(editMode, 'second');\n }\n else if (get(showMillisecond) && get(editMode) === 'second') {\n set(editMode, 'millisecond');\n }\n };\n\n document.addEventListener('mousemove', handleMove);\n document.addEventListener('touchmove', handleMove);\n document.addEventListener('mouseup', handleEnd);\n document.addEventListener('touchend', handleEnd);\n\n // Apply initial position synchronously for immediate feedback\n const initialEvent = event;\n let clientX: number;\n let clientY: number;\n if ('touches' in initialEvent) {\n const touch = initialEvent.touches[0];\n assert(touch);\n clientX = touch.clientX;\n clientY = touch.clientY;\n }\n else {\n clientX = initialEvent.clientX;\n clientY = initialEvent.clientY;\n }\n applyMove(clientX, clientY);\n}\n\nfunction selectByClick(num: number): void {\n const mode = get(editMode);\n if (mode === 'hour') {\n let newHour = num;\n\n if (get(period) === 'PM' && newHour < TWELVE_HOURS) {\n newHour += TWELVE_HOURS;\n }\n\n set(selectedHour, newHour);\n set(editMode, 'minute');\n }\n else if (mode === 'minute') {\n set(selectedMinute, num);\n if (get(showSecond))\n set(editMode, 'second');\n }\n else if (mode === 'second') {\n set(selectedSecond, num);\n if (get(showMillisecond)) {\n set(editMode, 'millisecond');\n }\n }\n else if (mode === 'millisecond') {\n set(selectedMillisecond, num);\n }\n\n updateModelValue();\n}\n\nfunction updateModelValue(): void {\n if (!(isDefined(selectedHour) && isDefined(selectedMinute))) {\n return;\n }\n nextTick(() => {\n const date = isDefined(modelValue) ? new Date(get(modelValue)) : new Date();\n date.setHours(get(selectedHour));\n date.setMinutes(get(selectedMinute));\n date.setSeconds(get(selectedSecond) ?? 0);\n date.setMilliseconds(get(selectedMillisecond) ?? 0);\n set(modelValue, date);\n });\n}\n\nwatch(\n modelValue,\n () => {\n set(selectedHour, getModelHours());\n set(selectedMinute, getModelMinutes());\n set(selectedSecond, getModelSeconds());\n set(selectedMillisecond, getModelMilliseconds());\n },\n);\n\nonMounted(() => {\n set(selectedHour, getModelHours());\n set(selectedMinute, getModelMinutes());\n set(selectedSecond, getModelSeconds());\n set(selectedMillisecond, getModelMilliseconds());\n});\n</script>\n\n<template>\n <div\n role=\"group\"\n aria-label=\"Time picker\"\n :class=\"ui.root({ bordered: !borderless })\"\n >\n <div :class=\"ui.digitalDisplay()\">\n <div class=\"flex justify-center items-center gap-1\">\n <div\n role=\"button\"\n aria-label=\"Select hours\"\n :class=\"ui.digit({ active: editMode === 'hour' })\"\n @click=\"editMode = 'hour'\"\n >\n {{ formatValue(displayHour) }}\n </div>\n <div class=\"text-2xl font-semibold\">\n :\n </div>\n <div\n role=\"button\"\n aria-label=\"Select minutes\"\n :class=\"ui.digit({ active: editMode === 'minute' })\"\n @click=\"editMode = 'minute'\"\n >\n {{ formatValue(selectedMinute) }}\n </div>\n <div\n v-if=\"showSecond\"\n class=\"text-2xl font-semibold\"\n >\n :\n </div>\n <div\n v-if=\"showSecond\"\n role=\"button\"\n aria-label=\"Select seconds\"\n :class=\"ui.digit({ active: editMode === 'second' })\"\n @click=\"editMode = 'second'\"\n >\n {{ formatValue(selectedSecond) }}\n </div>\n\n <div\n v-if=\"showMillisecond\"\n class=\"text-lg font-semibold\"\n >\n .\n </div>\n\n <div\n v-if=\"showMillisecond\"\n role=\"button\"\n aria-label=\"Select milliseconds\"\n :class=\"ui.digit({ active: editMode === 'millisecond', class: '!text-lg' })\"\n @click=\"editMode = 'millisecond'\"\n >\n {{ formatValue(selectedMillisecond, 3) }}\n </div>\n <div class=\"text-xl\">\n <div\n role=\"button\"\n aria-label=\"Toggle AM/PM\"\n class=\"rui-time-picker-period cursor-pointer\"\n @click=\"toggleAmPm()\"\n >\n {{ period }}\n </div>\n </div>\n </div>\n </div>\n\n <div\n ref=\"clockFace\"\n role=\"listbox\"\n :aria-label=\"`Select ${editMode}`\"\n :class=\"ui.clockFace()\"\n @mousedown=\"startDrag($event)\"\n @touchstart=\"startDrag($event)\"\n >\n <div\n :class=\"ui.centerDot()\"\n :style=\"dotStyle\"\n />\n\n <div\n :class=\"ui.clockHand()\"\n :style=\"clockHandStyle\"\n />\n\n <div\n v-if=\"displayClockHandCircle\"\n :class=\"ui.clockHandCircle()\"\n :style=\"clockHandCircleStyle\"\n />\n\n <div\n v-for=\"num in clockNumbers\"\n :key=\"`num-${num}`\"\n role=\"option\"\n :aria-selected=\"isSelectedNumber(num)\"\n :class=\"[\n ui.clockNumber({ selected: isSelectedNumber(num) }),\n `rui-${editMode}-${num.toString().padStart(2, '0')}`,\n ]\"\n :style=\"numberStyle(num)\"\n @click=\"selectByClick(num)\"\n >\n {{ num }}\n </div>\n </div>\n </div>\n</template>\n"],"mappings":""}