@rotki/ui-library 2.12.1 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/dist/components/accordions/accordion/RuiAccordion.vue.d.ts +6 -14
  2. package/dist/components/accordions/accordion/RuiAccordion.vue.js +3 -4
  3. package/dist/components/accordions/accordion/RuiAccordion.vue.js.map +1 -1
  4. package/dist/components/accordions/accordions/RuiAccordions.vue.d.ts +10 -9
  5. package/dist/components/accordions/accordions/RuiAccordions.vue.js +27 -26
  6. package/dist/components/accordions/accordions/RuiAccordions.vue.js.map +1 -1
  7. package/dist/components/alerts/RuiAlert.vue.d.ts +7 -17
  8. package/dist/components/alerts/RuiAlert.vue2.js +8 -16
  9. package/dist/components/alerts/RuiAlert.vue2.js.map +1 -1
  10. package/dist/components/buttons/button/RuiButton.vue.d.ts +5 -7
  11. package/dist/components/buttons/button/RuiButton.vue2.js +19 -20
  12. package/dist/components/buttons/button/RuiButton.vue2.js.map +1 -1
  13. package/dist/components/buttons/button-group/RuiButtonGroup.vue.d.ts +6 -5
  14. package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js +42 -41
  15. package/dist/components/buttons/button-group/RuiButtonGroup.vue2.js.map +1 -1
  16. package/dist/components/calendar/RuiCalendar.vue.d.ts +1 -6
  17. package/dist/components/calendar/RuiCalendar.vue.js +7 -8
  18. package/dist/components/calendar/RuiCalendar.vue.js.map +1 -1
  19. package/dist/components/calendar/RuiCalendarGrid.vue.js +1 -1
  20. package/dist/components/calendar/RuiCalendarGrid.vue2.js +20 -18
  21. package/dist/components/calendar/RuiCalendarGrid.vue2.js.map +1 -1
  22. package/dist/components/calendar/RuiCalendarHeader.vue.js +1 -1
  23. package/dist/components/calendar/RuiCalendarHeader.vue2.js +3 -4
  24. package/dist/components/calendar/RuiCalendarHeader.vue2.js.map +1 -1
  25. package/dist/components/calendar/RuiCalendarMenu.vue.js +1 -1
  26. package/dist/components/calendar/RuiCalendarMenu.vue2.js +48 -40
  27. package/dist/components/calendar/RuiCalendarMenu.vue2.js.map +1 -1
  28. package/dist/components/cards/RuiCard.vue.d.ts +9 -24
  29. package/dist/components/cards/RuiCard.vue2.js +7 -7
  30. package/dist/components/cards/RuiCard.vue2.js.map +1 -1
  31. package/dist/components/cards/RuiCardHeader.vue.d.ts +5 -10
  32. package/dist/components/cards/RuiCardHeader.vue2.js +1 -1
  33. package/dist/components/cards/RuiCardHeader.vue2.js.map +1 -1
  34. package/dist/components/chips/RuiChip.vue.d.ts +7 -21
  35. package/dist/components/chips/RuiChip.vue2.js +16 -21
  36. package/dist/components/chips/RuiChip.vue2.js.map +1 -1
  37. package/dist/components/color-picker/RuiColorBoard.vue.d.ts +1 -1
  38. package/dist/components/color-picker/RuiColorBoard.vue2.js +19 -19
  39. package/dist/components/color-picker/RuiColorBoard.vue2.js.map +1 -1
  40. package/dist/components/color-picker/RuiColorDisplay.vue.js +3 -5
  41. package/dist/components/color-picker/RuiColorDisplay.vue.js.map +1 -1
  42. package/dist/components/color-picker/RuiColorHue.vue2.js +17 -14
  43. package/dist/components/color-picker/RuiColorHue.vue2.js.map +1 -1
  44. package/dist/components/color-picker/RuiColorInput.vue.js +9 -7
  45. package/dist/components/color-picker/RuiColorInput.vue.js.map +1 -1
  46. package/dist/components/color-picker/RuiColorPicker.vue.d.ts +7 -9
  47. package/dist/components/color-picker/RuiColorPicker.vue.js +23 -14
  48. package/dist/components/color-picker/RuiColorPicker.vue.js.map +1 -1
  49. package/dist/components/color-picker/utils.js +22 -5
  50. package/dist/components/color-picker/utils.js.map +1 -1
  51. package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +2 -44
  52. package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js +75 -79
  53. package/dist/components/date-time-picker/RuiDateTimePicker.vue2.js.map +1 -1
  54. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue.js +1 -1
  55. package/dist/components/date-time-picker/dayjs-setup.d.ts +1 -0
  56. package/dist/components/date-time-picker/dayjs-setup.js +8 -0
  57. package/dist/components/date-time-picker/dayjs-setup.js.map +1 -0
  58. package/dist/components/date-time-picker/segment-config.d.ts +14 -0
  59. package/dist/components/date-time-picker/segment-config.js +23 -0
  60. package/dist/components/date-time-picker/segment-config.js.map +1 -0
  61. package/dist/components/date-time-picker/segment-utils.d.ts +5 -0
  62. package/dist/components/date-time-picker/segment-utils.js +36 -0
  63. package/dist/components/date-time-picker/segment-utils.js.map +1 -0
  64. package/dist/components/date-time-picker/use-date-time-selection.d.ts +1 -0
  65. package/dist/components/date-time-picker/use-date-time-selection.js +1 -0
  66. package/dist/components/date-time-picker/use-date-time-selection.js.map +1 -1
  67. package/dist/components/date-time-picker/use-keyboard-handler.d.ts +4 -8
  68. package/dist/components/date-time-picker/use-keyboard-handler.js +9 -54
  69. package/dist/components/date-time-picker/use-keyboard-handler.js.map +1 -1
  70. package/dist/components/date-time-picker/utils.d.ts +1 -0
  71. package/dist/components/date-time-picker/utils.js +1 -0
  72. package/dist/components/date-time-picker/utils.js.map +1 -1
  73. package/dist/components/divider/RuiDivider.vue.d.ts +1 -3
  74. package/dist/components/divider/RuiDivider.vue.js +6 -3
  75. package/dist/components/divider/RuiDivider.vue.js.map +1 -1
  76. package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +10 -1138
  77. package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js +153 -160
  78. package/dist/components/forms/auto-complete/RuiAutoComplete.vue2.js.map +1 -1
  79. package/dist/components/forms/checkbox/RuiCheckbox.vue.d.ts +15 -24
  80. package/dist/components/forms/checkbox/RuiCheckbox.vue2.js +32 -32
  81. package/dist/components/forms/checkbox/RuiCheckbox.vue2.js.map +1 -1
  82. package/dist/components/forms/radio-button/radio/RuiRadio.vue.d.ts +2 -2
  83. package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js +19 -22
  84. package/dist/components/forms/radio-button/radio/RuiRadio.vue2.js.map +1 -1
  85. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue.d.ts +4 -2
  86. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js +13 -16
  87. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue2.js.map +1 -1
  88. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.d.ts +7 -13
  89. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js +10 -9
  90. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue.js.map +1 -1
  91. package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +10 -785
  92. package/dist/components/forms/select/RuiMenuSelect.vue2.js +60 -56
  93. package/dist/components/forms/select/RuiMenuSelect.vue2.js.map +1 -1
  94. package/dist/components/forms/select/RuiSimpleSelect.vue.d.ts +11 -10
  95. package/dist/components/forms/select/RuiSimpleSelect.vue2.js +21 -26
  96. package/dist/components/forms/select/RuiSimpleSelect.vue2.js.map +1 -1
  97. package/dist/components/forms/slider/RuiSlider.vue.d.ts +10 -26
  98. package/dist/components/forms/slider/RuiSlider.vue2.js +45 -48
  99. package/dist/components/forms/slider/RuiSlider.vue2.js.map +1 -1
  100. package/dist/components/forms/switch/RuiSwitch.vue.d.ts +12 -20
  101. package/dist/components/forms/switch/RuiSwitch.vue2.js +22 -21
  102. package/dist/components/forms/switch/RuiSwitch.vue2.js.map +1 -1
  103. package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +5 -30
  104. package/dist/components/forms/text-area/RuiTextArea.vue2.js +47 -83
  105. package/dist/components/forms/text-area/RuiTextArea.vue2.js.map +1 -1
  106. package/dist/components/forms/text-field/RuiTextField.vue.d.ts +10 -30
  107. package/dist/components/forms/text-field/RuiTextField.vue2.js +36 -67
  108. package/dist/components/forms/text-field/RuiTextField.vue2.js.map +1 -1
  109. package/dist/components/helpers/RuiFormTextDetail.vue.d.ts +1 -5
  110. package/dist/components/helpers/RuiFormTextDetail.vue.js +5 -9
  111. package/dist/components/helpers/RuiFormTextDetail.vue.js.map +1 -1
  112. package/dist/components/icons/LazyIcon.vue.d.ts +1 -3
  113. package/dist/components/icons/RuiIcon.vue.d.ts +1 -4
  114. package/dist/components/icons/RuiIcon.vue2.js +11 -14
  115. package/dist/components/icons/RuiIcon.vue2.js.map +1 -1
  116. package/dist/components/index.d.ts +4 -4
  117. package/dist/components/loaders/RuiSkeletonBase.vue.d.ts +1 -3
  118. package/dist/components/loaders/RuiSkeletonBase.vue2.js +2 -2
  119. package/dist/components/loaders/RuiSkeletonBase.vue2.js.map +1 -1
  120. package/dist/components/loaders/RuiSkeletonLoader.vue.d.ts +1 -4
  121. package/dist/components/loaders/RuiSkeletonLoader.vue2.js +2 -2
  122. package/dist/components/loaders/RuiSkeletonLoader.vue2.js.map +1 -1
  123. package/dist/components/logos/RuiLogo.vue.d.ts +1 -7
  124. package/dist/components/logos/RuiLogo.vue.js +13 -13
  125. package/dist/components/logos/RuiLogo.vue.js.map +1 -1
  126. package/dist/components/overlays/badge/RuiBadge.vue.d.ts +5 -20
  127. package/dist/components/overlays/badge/RuiBadge.vue2.js +11 -13
  128. package/dist/components/overlays/badge/RuiBadge.vue2.js.map +1 -1
  129. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.d.ts +10 -5
  130. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js +18 -7
  131. package/dist/components/overlays/bottom-sheet/RuiBottomSheet.vue.js.map +1 -1
  132. package/dist/components/overlays/dialog/RuiDialog.vue.d.ts +22 -27
  133. package/dist/components/overlays/dialog/RuiDialog.vue2.js +90 -67
  134. package/dist/components/overlays/dialog/RuiDialog.vue2.js.map +1 -1
  135. package/dist/components/overlays/menu/RuiMenu.vue.d.ts +24 -35
  136. package/dist/components/overlays/menu/RuiMenu.vue2.js +71 -78
  137. package/dist/components/overlays/menu/RuiMenu.vue2.js.map +1 -1
  138. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.d.ts +23 -30
  139. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js +78 -49
  140. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue2.js.map +1 -1
  141. package/dist/components/overlays/notification/RuiNotification.vue.d.ts +12 -12
  142. package/dist/components/overlays/notification/RuiNotification.vue.js +27 -22
  143. package/dist/components/overlays/notification/RuiNotification.vue.js.map +1 -1
  144. package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +7 -18
  145. package/dist/components/overlays/tooltip/RuiTooltip.vue2.js +16 -9
  146. package/dist/components/overlays/tooltip/RuiTooltip.vue2.js.map +1 -1
  147. package/dist/components/progress/RuiProgress.vue.d.ts +8 -10
  148. package/dist/components/progress/RuiProgress.vue2.js +18 -24
  149. package/dist/components/progress/RuiProgress.vue2.js.map +1 -1
  150. package/dist/components/steppers/RuiFooterStepper.vue.d.ts +10 -11
  151. package/dist/components/steppers/RuiFooterStepper.vue2.js +33 -26
  152. package/dist/components/steppers/RuiFooterStepper.vue2.js.map +1 -1
  153. package/dist/components/steppers/RuiStepper.vue.d.ts +6 -15
  154. package/dist/components/steppers/RuiStepper.vue2.js +39 -36
  155. package/dist/components/steppers/RuiStepper.vue2.js.map +1 -1
  156. package/dist/components/steppers/RuiStepperCustomIcon.vue.d.ts +1 -3
  157. package/dist/components/steppers/RuiStepperCustomIcon.vue2.js +2 -2
  158. package/dist/components/steppers/RuiStepperCustomIcon.vue2.js.map +1 -1
  159. package/dist/components/steppers/RuiStepperIcon.vue.d.ts +1 -3
  160. package/dist/components/steppers/RuiStepperIcon.vue2.js +2 -2
  161. package/dist/components/steppers/RuiStepperIcon.vue2.js.map +1 -1
  162. package/dist/components/tables/RuiDataTable.vue.d.ts +29 -81
  163. package/dist/components/tables/RuiDataTable.vue2.js +196 -601
  164. package/dist/components/tables/RuiDataTable.vue2.js.map +1 -1
  165. package/dist/components/tables/RuiDataTable.vue3.js +24 -27
  166. package/dist/components/tables/RuiDataTable.vue3.js.map +1 -1
  167. package/dist/components/tables/RuiExpandButton.vue.d.ts +3 -6
  168. package/dist/components/tables/RuiExpandButton.vue2.js +4 -2
  169. package/dist/components/tables/RuiExpandButton.vue2.js.map +1 -1
  170. package/dist/components/tables/RuiTableHead.vue.d.ts +4 -7
  171. package/dist/components/tables/RuiTableHead.vue2.js +20 -20
  172. package/dist/components/tables/RuiTableHead.vue2.js.map +1 -1
  173. package/dist/components/tables/RuiTablePagination.vue.d.ts +10 -10
  174. package/dist/components/tables/RuiTablePagination.vue2.js +27 -19
  175. package/dist/components/tables/RuiTablePagination.vue2.js.map +1 -1
  176. package/dist/components/tabs/tab/RuiTab.vue.d.ts +3 -18
  177. package/dist/components/tabs/tab/RuiTab.vue2.js +84 -52
  178. package/dist/components/tabs/tab/RuiTab.vue2.js.map +1 -1
  179. package/dist/components/tabs/tab-item/RuiTabItem.vue.d.ts +3 -11
  180. package/dist/components/tabs/tab-item/RuiTabItem.vue2.js +3 -2
  181. package/dist/components/tabs/tab-item/RuiTabItem.vue2.js.map +1 -1
  182. package/dist/components/tabs/tab-items/RuiTabItems.vue.d.ts +2 -5
  183. package/dist/components/tabs/tab-items/RuiTabItems.vue2.js +18 -18
  184. package/dist/components/tabs/tab-items/RuiTabItems.vue2.js.map +1 -1
  185. package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +10 -14
  186. package/dist/components/tabs/tabs/RuiTabs.vue2.js +101 -94
  187. package/dist/components/tabs/tabs/RuiTabs.vue2.js.map +1 -1
  188. package/dist/components/time-picker/RuiTimePicker.vue.d.ts +1 -4
  189. package/dist/components/time-picker/RuiTimePicker.vue2.js +88 -38
  190. package/dist/components/time-picker/RuiTimePicker.vue2.js.map +1 -1
  191. package/dist/composables/breakpoint.js +8 -13
  192. package/dist/composables/breakpoint.js.map +1 -1
  193. package/dist/composables/dropdown-menu.d.ts +7 -4
  194. package/dist/composables/dropdown-menu.js +73 -50
  195. package/dist/composables/dropdown-menu.js.map +1 -1
  196. package/dist/composables/forms/auto-complete/focus.d.ts +7 -5
  197. package/dist/composables/forms/auto-complete/focus.js +28 -17
  198. package/dist/composables/forms/auto-complete/focus.js.map +1 -1
  199. package/dist/composables/forms/auto-complete/index.d.ts +0 -9
  200. package/dist/composables/forms/auto-complete/keyboard-navigation.d.ts +8 -3
  201. package/dist/composables/forms/auto-complete/keyboard-navigation.js +11 -5
  202. package/dist/composables/forms/auto-complete/keyboard-navigation.js.map +1 -1
  203. package/dist/composables/forms/auto-complete/search.d.ts +7 -0
  204. package/dist/composables/forms/auto-complete/search.js +10 -8
  205. package/dist/composables/forms/auto-complete/search.js.map +1 -1
  206. package/dist/composables/forms/auto-complete/value.d.ts +4 -0
  207. package/dist/composables/forms/auto-complete/value.js +24 -42
  208. package/dist/composables/forms/auto-complete/value.js.map +1 -1
  209. package/dist/composables/forms/use-label-with-quote.d.ts +2 -0
  210. package/dist/composables/forms/use-label-with-quote.js +14 -0
  211. package/dist/composables/forms/use-label-with-quote.js.map +1 -0
  212. package/dist/composables/forms/use-prepend-append-width.d.ts +6 -0
  213. package/dist/composables/forms/use-prepend-append-width.js +25 -0
  214. package/dist/composables/forms/use-prepend-append-width.js.map +1 -0
  215. package/dist/composables/icons.js +1 -1
  216. package/dist/composables/icons.js.map +1 -1
  217. package/dist/composables/popper.js +63 -49
  218. package/dist/composables/popper.js.map +1 -1
  219. package/dist/composables/sticky-header.d.ts +7 -5
  220. package/dist/composables/sticky-header.js +51 -41
  221. package/dist/composables/sticky-header.js.map +1 -1
  222. package/dist/composables/tables/data-table/columns.d.ts +25 -0
  223. package/dist/composables/tables/data-table/columns.js +54 -0
  224. package/dist/composables/tables/data-table/columns.js.map +1 -0
  225. package/dist/composables/tables/data-table/expansion.d.ts +17 -0
  226. package/dist/composables/tables/data-table/expansion.js +38 -0
  227. package/dist/composables/tables/data-table/expansion.js.map +1 -0
  228. package/dist/composables/tables/data-table/grouping.d.ts +29 -0
  229. package/dist/composables/tables/data-table/grouping.js +136 -0
  230. package/dist/composables/tables/data-table/grouping.js.map +1 -0
  231. package/dist/composables/tables/data-table/pagination.d.ts +33 -0
  232. package/dist/composables/tables/data-table/pagination.js +119 -0
  233. package/dist/composables/tables/data-table/pagination.js.map +1 -0
  234. package/dist/composables/tables/data-table/selection.d.ts +29 -0
  235. package/dist/composables/tables/data-table/selection.js +164 -0
  236. package/dist/composables/tables/data-table/selection.js.map +1 -0
  237. package/dist/composables/tables/data-table/sort.d.ts +32 -0
  238. package/dist/composables/tables/data-table/sort.js +136 -0
  239. package/dist/composables/tables/data-table/sort.js.map +1 -0
  240. package/dist/composables/tables/data-table/types.d.ts +14 -0
  241. package/dist/composables/tables/data-table/types.js +11 -0
  242. package/dist/composables/tables/data-table/types.js.map +1 -0
  243. package/dist/composables/theme.js +5 -21
  244. package/dist/composables/theme.js.map +1 -1
  245. package/dist/composables/timeout-manager.d.ts +4 -2
  246. package/dist/composables/timeout-manager.js +2 -1
  247. package/dist/composables/timeout-manager.js.map +1 -1
  248. package/dist/icons/icons_1.d.ts +15 -15
  249. package/dist/icons/icons_1.js +123 -123
  250. package/dist/icons/icons_1.js.map +1 -1
  251. package/dist/icons/icons_2.d.ts +46 -46
  252. package/dist/icons/icons_2.js +301 -301
  253. package/dist/icons/icons_2.js.map +1 -1
  254. package/dist/icons/icons_3.d.ts +43 -43
  255. package/dist/icons/icons_3.js +252 -252
  256. package/dist/icons/icons_3.js.map +1 -1
  257. package/dist/icons/icons_4.d.ts +72 -2
  258. package/dist/icons/icons_4.js +368 -18
  259. package/dist/icons/icons_4.js.map +1 -1
  260. package/dist/icons/index.d.ts +1 -1
  261. package/dist/icons/index.js +1 -1
  262. package/dist/icons/index.js.map +1 -1
  263. package/dist/index.js +105 -42
  264. package/dist/index.js.map +1 -1
  265. package/dist/style.css +189 -162
  266. package/dist/theme/index.js +15 -1
  267. package/dist/theme/index.js.map +1 -1
  268. package/dist/utils/assert.d.ts +1 -1
  269. package/dist/utils/assert.js.map +1 -1
  270. package/dist/utils/form-text-detail.d.ts +9 -8
  271. package/dist/utils/form-text-detail.js +1 -2
  272. package/dist/utils/form-text-detail.js.map +1 -1
  273. package/dist/utils/helpers.d.ts +4 -32
  274. package/dist/utils/helpers.js +8 -9
  275. package/dist/utils/helpers.js.map +1 -1
  276. package/dist/utils/is-equal.d.ts +1 -1
  277. package/dist/utils/is-equal.js +5 -3
  278. package/dist/utils/is-equal.js.map +1 -1
  279. package/dist/vite-plugin/index.js +4 -4
  280. package/dist/vite-plugin/index.js.map +1 -1
  281. package/dist/vite-plugin/scanner.js +3 -3
  282. package/dist/vite-plugin/scanner.js.map +1 -1
  283. package/dist/web-types.json +390 -371
  284. package/package.json +47 -44
  285. package/dist/utils/generate-id.d.ts +0 -5
  286. package/dist/utils/generate-id.js +0 -21
  287. package/dist/utils/generate-id.js.map +0 -1
@@ -1,6 +1,6 @@
1
- import { defineComponent, useCssVars, unref, useModel, useSlots, ref, watch, nextTick, computed, createElementBlock, openBlock, mergeProps, createElementVNode, Fragment, renderList, createBlock, resolveDynamicComponent, isVNode } from "vue";
2
- import { set, get } from "@vueuse/shared";
1
+ import { defineComponent, useCssVars, unref, useModel, useSlots, ref, useTemplateRef, computed, Fragment, isVNode, watch, nextTick, openBlock, createElementBlock, mergeProps, createElementVNode, renderList, createBlock, resolveDynamicComponent } from "vue";
3
2
  import { useElementSize } from "@vueuse/core";
3
+ import { get, set } from "@vueuse/shared";
4
4
  const _sfc_main = /* @__PURE__ */ defineComponent({
5
5
  ...{
6
6
  name: "RuiTabItems",
@@ -14,25 +14,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
14
14
  emits: ["update:modelValue"],
15
15
  setup(__props) {
16
16
  useCssVars((_ctx) => ({
17
- "v1ef23b00": unref(innerHeight)
17
+ "e2f311d6": unref(innerHeight)
18
18
  }));
19
19
  const modelValue = useModel(__props, "modelValue");
20
20
  const slots = useSlots();
21
21
  const reverse = ref(false);
22
22
  const currIndex = ref(-1);
23
23
  const activeIndex = ref(-1);
24
- watch(currIndex, (index) => {
25
- nextTick(() => {
26
- set(activeIndex, index);
27
- });
28
- });
29
- function getChildrenTabs(children2) {
30
- return children2.flatMap((item) => {
31
- if (item.type === Fragment && Array.isArray(item.children) && item.children.length > 0)
32
- return getChildrenTabs(item.children.filter(isVNode));
33
- return [item];
34
- }).flat();
35
- }
24
+ const wrapper = useTemplateRef("wrapper");
25
+ const inner = useTemplateRef("inner");
26
+ const { height: innerHeight } = useElementSize(inner);
36
27
  const children = computed(() => {
37
28
  const slotContent = slots.default?.() ?? [];
38
29
  const tabs = getChildrenTabs(slotContent);
@@ -59,9 +50,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
59
50
  set(currIndex, -1);
60
51
  return children2;
61
52
  });
62
- const wrapper = ref();
63
- const inner = ref();
64
- const { height: innerHeight } = useElementSize(inner);
53
+ function getChildrenTabs(children2) {
54
+ return children2.flatMap((item) => {
55
+ if (item.type === Fragment && Array.isArray(item.children) && item.children.length > 0)
56
+ return getChildrenTabs(item.children.filter(isVNode));
57
+ return [item];
58
+ }).flat();
59
+ }
60
+ watch(currIndex, (index) => {
61
+ nextTick(() => {
62
+ set(activeIndex, index);
63
+ });
64
+ });
65
65
  return (_ctx, _cache) => {
66
66
  return openBlock(), createElementBlock("div", mergeProps({
67
67
  ref_key: "wrapper",
@@ -1 +1 @@
1
- {"version":3,"file":"RuiTabItems.vue2.js","sources":["../../../../src/components/tabs/tab-items/RuiTabItems.vue"],"sourcesContent":["<script lang=\"ts\" setup generic='T extends string | number'>\nimport { Fragment, isVNode } from 'vue';\n\nexport interface Props<T> {\n modelValue?: T;\n}\n\ndefineOptions({\n name: 'RuiTabItems',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<Props<T>['modelValue']>();\n\nconst slots = useSlots();\nconst reverse = ref<boolean>(false);\nconst currIndex = ref<number>(-1);\nconst activeIndex = ref<number>(-1);\n\nwatch(currIndex, (index) => {\n nextTick(() => {\n set(activeIndex, index);\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 RuiTabItem 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\nconst children = computed(() => {\n const slotContent = slots.default?.() ?? [];\n\n const tabs = getChildrenTabs(slotContent);\n\n let anyActive = false;\n const children = tabs.map((tab, index) => {\n const value = tab.props?.value ?? index;\n const active = get(modelValue) === value;\n if (active) {\n anyActive = true;\n if (index !== get(currIndex)) {\n set(reverse, index < get(currIndex));\n set(currIndex, index);\n }\n }\n\n return {\n ...tab,\n props: {\n value,\n ...tab.props,\n },\n };\n });\n\n if (!anyActive)\n set(currIndex, -1);\n\n return children;\n});\n\nconst wrapper = ref<HTMLDivElement>();\nconst inner = ref<HTMLDivElement>();\n\nconst { height: innerHeight } = useElementSize(inner);\n</script>\n\n<template>\n <div\n ref=\"wrapper\"\n :class=\"$style.tabs\"\n v-bind=\"$attrs\"\n >\n <div ref=\"inner\">\n <Component\n :is=\"child\"\n v-for=\"(child, i) in children\"\n :key=\"i\"\n :reverse=\"reverse\"\n :active=\"i === activeIndex\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" module>\n.tabs {\n @apply grow transition-all overflow-hidden;\n height: calc(v-bind(innerHeight) * 1px);\n}\n</style>\n"],"names":["_useModel","children","_openBlock","_createElementBlock","_mergeProps","$style","$attrs","_createElementVNode","_Fragment","_renderList","_unref","_createBlock","_resolveDynamicComponent"],"mappings":";;;;;;;;;;;;;;;;;;AAYA,UAAM,aAAaA,8BAAoC;AAEvD,UAAM,QAAQ,SAAA;AACd,UAAM,UAAU,IAAa,KAAK;AAClC,UAAM,YAAY,IAAY,EAAE;AAChC,UAAM,cAAc,IAAY,EAAE;AAElC,UAAM,WAAW,CAAC,UAAU;AAC1B,eAAS,MAAM;AACb,YAAI,aAAa,KAAK;AAAA,MACxB,CAAC;AAAA,IACH,CAAC;AAID,aAAS,gBAAgBC,WAA4B;AACnD,aAAOA,UAAS,QAAQ,CAAC,SAAS;AAChC,YAAI,KAAK,SAAS,YAAY,MAAM,QAAQ,KAAK,QAAQ,KAAK,KAAK,SAAS,SAAS;AACnF,iBAAO,gBAAgB,KAAK,SAAS,OAAO,OAAO,CAAC;AAEtD,eAAO,CAAC,IAAI;AAAA,MACd,CAAC,EAAE,KAAA;AAAA,IACL;AAEA,UAAM,WAAW,SAAS,MAAM;AAC9B,YAAM,cAAc,MAAM,UAAA,KAAe,CAAA;AAEzC,YAAM,OAAO,gBAAgB,WAAW;AAExC,UAAI,YAAY;AAChB,YAAMA,YAAW,KAAK,IAAI,CAAC,KAAK,UAAU;AACxC,cAAM,QAAQ,IAAI,OAAO,SAAS;AAClC,cAAM,SAAS,IAAI,UAAU,MAAM;AACnC,YAAI,QAAQ;AACV,sBAAY;AACZ,cAAI,UAAU,IAAI,SAAS,GAAG;AAC5B,gBAAI,SAAS,QAAQ,IAAI,SAAS,CAAC;AACnC,gBAAI,WAAW,KAAK;AAAA,UACtB;AAAA,QACF;AAEA,eAAO;AAAA,UACL,GAAG;AAAA,UACH,OAAO;AAAA,YACL;AAAA,YACA,GAAG,IAAI;AAAA,UAAA;AAAA,QACT;AAAA,MAEJ,CAAC;AAED,UAAI,CAAC;AACH,YAAI,WAAW,EAAE;AAEnB,aAAOA;AAAAA,IACT,CAAC;AAED,UAAM,UAAU,IAAA;AAChB,UAAM,QAAQ,IAAA;AAEd,UAAM,EAAE,QAAQ,gBAAgB,eAAe,KAAK;;AAIlD,aAAAC,UAAA,GAAAC,mBAcM,OAdNC,WAcM;AAAA,iBAbA;AAAA,QAAJ,KAAI;AAAA,QACH,OAAOC,KAAAA,OAAO;AAAA,MAAA,GACPC,KAAAA,MAAM,GAAA;AAAA,QAEdC,mBAQM,OAAA;AAAA,mBARG;AAAA,UAAJ,KAAI;AAAA,QAAA;WACPL,UAAA,IAAA,GAAAC,mBAMEK,UAAA,MAAAC,WAJqBC,MAAA,QAAA,GAAQ,CAArB,OAAO,MAAC;AAFlB,mBAAAR,UAAA,GAAAS,YAMEC,wBALK,KAAK,GAAA;AAAA,cAET,KAAK;AAAA,cACL,SAASF,MAAA,OAAA;AAAA,cACT,QAAQ,MAAMA,MAAA,WAAA;AAAA,YAAA;;;;;;;"}
1
+ {"version":3,"file":"RuiTabItems.vue2.js","sources":["../../../../src/components/tabs/tab-items/RuiTabItems.vue"],"sourcesContent":["<script lang=\"ts\" setup generic=\"T extends string | number\">\nimport { Fragment, isVNode } from 'vue';\n\ndefineOptions({\n name: 'RuiTabItems',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<T>();\n\nconst slots = useSlots();\n\nconst reverse = ref<boolean>(false);\nconst currIndex = ref<number>(-1);\nconst activeIndex = ref<number>(-1);\nconst wrapper = useTemplateRef<HTMLDivElement>('wrapper');\nconst inner = useTemplateRef<HTMLDivElement>('inner');\n\nconst { height: innerHeight } = useElementSize(inner);\n\nconst children = computed<VNode[]>(() => {\n const slotContent = slots.default?.() ?? [];\n\n const tabs = getChildrenTabs(slotContent);\n\n let anyActive = false;\n const children = tabs.map((tab, index) => {\n const value = tab.props?.value ?? index;\n const active = get(modelValue) === value;\n if (active) {\n anyActive = true;\n if (index !== get(currIndex)) {\n set(reverse, index < get(currIndex));\n set(currIndex, index);\n }\n }\n\n return {\n ...tab,\n props: {\n value,\n ...tab.props,\n },\n };\n });\n\n if (!anyActive)\n set(currIndex, -1);\n\n return children;\n});\n\n// When using dynamic content with v-for the slot content can contain fragment,\n// Go through the fragment and always return RuiTabItem only\nfunction getChildrenTabs(children: VNode[]): VNode[] {\n return children\n .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 })\n .flat();\n}\n\nwatch(currIndex, (index) => {\n nextTick(() => {\n set(activeIndex, index);\n });\n});\n</script>\n\n<template>\n <div\n ref=\"wrapper\"\n :class=\"$style.tabs\"\n v-bind=\"$attrs\"\n >\n <div ref=\"inner\">\n <Component\n :is=\"child\"\n v-for=\"(child, i) in children\"\n :key=\"i\"\n :reverse=\"reverse\"\n :active=\"i === activeIndex\"\n />\n </div>\n </div>\n</template>\n\n<style lang=\"scss\" module>\n.tabs {\n @apply grow transition-all overflow-hidden;\n height: calc(v-bind(innerHeight) * 1px);\n}\n</style>\n"],"names":["_useModel","children","_openBlock","_createElementBlock","_mergeProps","$style","$attrs","_createElementVNode","_Fragment","_renderList","_unref","_createBlock","_resolveDynamicComponent"],"mappings":";;;;;;;;;;;;;;;;;;AAQA,UAAM,aAAaA,SAAc,SAAA,YAAC;AAElC,UAAM,QAAQ,SAAA;AAEd,UAAM,UAAU,IAAa,KAAK;AAClC,UAAM,YAAY,IAAY,EAAE;AAChC,UAAM,cAAc,IAAY,EAAE;AAClC,UAAM,UAAU,eAA+B,SAAS;AACxD,UAAM,QAAQ,eAA+B,OAAO;AAEpD,UAAM,EAAE,QAAQ,gBAAgB,eAAe,KAAK;AAEpD,UAAM,WAAW,SAAkB,MAAM;AACvC,YAAM,cAAc,MAAM,UAAA,KAAe,CAAA;AAEzC,YAAM,OAAO,gBAAgB,WAAW;AAExC,UAAI,YAAY;AAChB,YAAMC,YAAW,KAAK,IAAI,CAAC,KAAK,UAAU;AACxC,cAAM,QAAQ,IAAI,OAAO,SAAS;AAClC,cAAM,SAAS,IAAI,UAAU,MAAM;AACnC,YAAI,QAAQ;AACV,sBAAY;AACZ,cAAI,UAAU,IAAI,SAAS,GAAG;AAC5B,gBAAI,SAAS,QAAQ,IAAI,SAAS,CAAC;AACnC,gBAAI,WAAW,KAAK;AAAA,UACtB;AAAA,QACF;AAEA,eAAO;AAAA,UACL,GAAG;AAAA,UACH,OAAO;AAAA,YACL;AAAA,YACA,GAAG,IAAI;AAAA,UAAA;AAAA,QACT;AAAA,MAEJ,CAAC;AAED,UAAI,CAAC;AACH,YAAI,WAAW,EAAE;AAEnB,aAAOA;AAAAA,IACT,CAAC;AAID,aAAS,gBAAgBA,WAA4B;AACnD,aAAOA,UACJ,QAAQ,CAAC,SAAS;AACjB,YAAI,KAAK,SAAS,YAAY,MAAM,QAAQ,KAAK,QAAQ,KAAK,KAAK,SAAS,SAAS;AACnF,iBAAO,gBAAgB,KAAK,SAAS,OAAO,OAAO,CAAC;AAEtD,eAAO,CAAC,IAAI;AAAA,MACd,CAAC,EACA,KAAA;AAAA,IACL;AAEA,UAAM,WAAW,CAAC,UAAU;AAC1B,eAAS,MAAM;AACb,YAAI,aAAa,KAAK;AAAA,MACxB,CAAC;AAAA,IACH,CAAC;;AAIC,aAAAC,UAAA,GAAAC,mBAcM,OAdNC,WAcM;AAAA,iBAbA;AAAA,QAAJ,KAAI;AAAA,QACH,OAAOC,KAAAA,OAAO;AAAA,MAAA,GACPC,KAAAA,MAAM,GAAA;AAAA,QAEdC,mBAQM,OAAA;AAAA,mBARG;AAAA,UAAJ,KAAI;AAAA,QAAA;WACPL,UAAA,IAAA,GAAAC,mBAMEK,UAAA,MAAAC,WAJqBC,MAAA,QAAA,GAAQ,CAArB,OAAO,MAAC;AAFlB,mBAAAR,UAAA,GAAAS,YAMEC,wBALK,KAAK,GAAA;AAAA,cAET,KAAK;AAAA,cACL,SAASF,MAAA,OAAA;AAAA,cACT,QAAQ,MAAMA,MAAA,WAAA;AAAA,YAAA;;;;;;;"}
@@ -4,22 +4,18 @@ export interface Props {
4
4
  vertical?: boolean;
5
5
  disabled?: boolean;
6
6
  grow?: boolean;
7
- modelValue?: number | string;
8
7
  align?: 'start' | 'center' | 'end';
9
8
  indicatorPosition?: 'start' | 'end';
10
9
  }
11
- declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {} & {
12
- "update:modelValue": (modelValue: string | number) => any;
13
- }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
14
- "onUpdate:modelValue"?: ((modelValue: string | number) => any) | undefined;
15
- }>, {
16
- color: ContextColorsType;
17
- disabled: boolean;
18
- vertical: boolean;
19
- modelValue: number | string;
20
- align: "start" | "center" | "end";
21
- grow: boolean;
22
- indicatorPosition: "start" | "end";
23
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
10
+ type __VLS_Props = Props;
11
+ type __VLS_ModelProps = {
12
+ modelValue?: number | string;
13
+ };
14
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
15
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
+ "update:modelValue": (value: string | number | undefined) => any;
17
+ }, string, import("vue").PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
18
+ "onUpdate:modelValue"?: ((value: string | number | undefined) => any) | undefined;
19
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
24
20
  declare const _default: typeof __VLS_export;
25
21
  export default _default;
@@ -1,51 +1,54 @@
1
- import { defineComponent, toRefs, ref, useSlots, computed, onMounted, watch, createElementBlock, openBlock, normalizeClass, unref, createCommentVNode, createElementVNode, createVNode, withCtx, Fragment, renderList, createBlock, resolveDynamicComponent, isVNode, nextTick } from "vue";
1
+ import { defineComponent, useModel, ref, useTemplateRef, useSlots, getCurrentInstance, toRefs, computed, Fragment, isVNode, nextTick, watch, onMounted, openBlock, createElementBlock, normalizeClass, unref, createVNode, withCtx, createCommentVNode, createElementVNode, renderList, createBlock, resolveDynamicComponent, mergeModels } from "vue";
2
2
  import { get, set, throttleFilter } from "@vueuse/shared";
3
3
  import { useRoute, useRouter } from "vue-router";
4
4
  import RuiButton from "../../buttons/button/RuiButton.vue.js";
5
5
  import RuiIcon from "../../icons/RuiIcon.vue.js";
6
- import { useElementSize, useScroll, watchTriggerable, watchImmediate, useResizeObserver } from "@vueuse/core";
6
+ import { useElementSize, useScroll, useResizeObserver, watchTriggerable, watchImmediate } from "@vueuse/core";
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  ...{
9
9
  name: "RuiTabs"
10
10
  },
11
11
  __name: "RuiTabs",
12
- props: {
13
- color: { default: void 0 },
12
+ props: /* @__PURE__ */ mergeModels({
13
+ color: {},
14
14
  vertical: { type: Boolean, default: false },
15
15
  disabled: { type: Boolean, default: false },
16
16
  grow: { type: Boolean, default: false },
17
- modelValue: { default: void 0 },
18
17
  align: { default: "center" },
19
18
  indicatorPosition: { default: "end" }
20
- },
19
+ }, {
20
+ "modelValue": {},
21
+ "modelModifiers": {}
22
+ }),
21
23
  emits: ["update:modelValue"],
22
- setup(__props, { emit: __emit }) {
23
- const props = __props;
24
- const emit = __emit;
25
- const { color, grow, modelValue, disabled, vertical, align, indicatorPosition } = toRefs(props);
24
+ setup(__props) {
25
+ const modelValue = useModel(__props, "modelValue");
26
26
  const internalModelValue = ref();
27
- const bar = ref();
28
- const wrapper = ref();
27
+ const bar = useTemplateRef("bar");
28
+ const wrapper = useTemplateRef("wrapper");
29
29
  const showArrows = ref(false);
30
- function getChildrenTabs(children2) {
31
- return children2.flatMap((item) => {
32
- if (item.type === Fragment && Array.isArray(item.children) && item.children.length > 0)
33
- return getChildrenTabs(item.children.filter(isVNode));
34
- return [item];
35
- }).flat();
36
- }
37
30
  const slots = useSlots();
31
+ const hasRouter = !!getCurrentInstance()?.appContext.config.globalProperties.$router;
32
+ const route = hasRouter ? useRoute() : void 0;
33
+ const router = hasRouter ? useRouter() : void 0;
34
+ const { width, height } = useElementSize(bar);
35
+ const { width: wrapperWidth, height: wrapperHeight } = useElementSize(wrapper);
36
+ const { arrivedState, x, y } = useScroll(bar, { behavior: "smooth" });
37
+ const { top, bottom, left, right } = toRefs(arrivedState);
38
+ useResizeObserver(bar, () => {
39
+ keepActiveTabVisible();
40
+ });
38
41
  const children = computed(() => {
39
42
  const slotContent = slots.default?.() ?? [];
40
43
  const tabs = getChildrenTabs(slotContent);
41
44
  const currentModelValue = get(internalModelValue);
42
45
  const inheritedProps = {
43
- color: get(color),
44
- grow: get(grow),
45
- disabled: get(disabled),
46
- vertical: get(vertical),
47
- align: get(align),
48
- indicatorPosition: get(indicatorPosition)
46
+ color: __props.color,
47
+ grow: __props.grow,
48
+ disabled: __props.disabled,
49
+ vertical: __props.vertical,
50
+ align: __props.align,
51
+ indicatorPosition: __props.indicatorPosition
49
52
  };
50
53
  return tabs.map((tab, index) => {
51
54
  let tabValue = tab.props?.value ?? index;
@@ -63,12 +66,30 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
63
66
  };
64
67
  });
65
68
  });
69
+ const prevArrowDisabled = computed(() => {
70
+ if (!__props.vertical)
71
+ return get(left);
72
+ return get(top);
73
+ });
74
+ const nextArrowDisabled = computed(() => {
75
+ if (!__props.vertical)
76
+ return get(right);
77
+ return get(bottom);
78
+ });
79
+ function getChildrenTabs(children2) {
80
+ return children2.flatMap((item) => {
81
+ if (item.type === Fragment && Array.isArray(item.children) && item.children.length > 0)
82
+ return getChildrenTabs(item.children.filter(isVNode));
83
+ return [item];
84
+ }).flat();
85
+ }
66
86
  function updateModelValue(newModelValue) {
67
- emit("update:modelValue", newModelValue);
87
+ set(modelValue, newModelValue);
68
88
  set(internalModelValue, newModelValue);
69
89
  }
70
- const route = useRoute();
71
90
  function isPathMatch(path, { exactPath, exact }) {
91
+ if (!route)
92
+ return false;
72
93
  const currentRoute = route.fullPath;
73
94
  if (exactPath)
74
95
  return currentRoute === path;
@@ -111,37 +132,32 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
111
132
  }
112
133
  });
113
134
  }
114
- const router = useRouter();
115
135
  function applyNewValue(onlyLink = false) {
116
- const enabledChildren = get(children).filter(
117
- (child) => !child.props.disabled
118
- );
136
+ const enabledChildren = get(children).filter((child) => !child.props?.disabled);
119
137
  if (enabledChildren.length > 0) {
120
138
  let newModelValue = get(modelValue) || 0;
121
139
  enabledChildren.forEach((child, index) => {
122
- const props2 = child.props;
123
- if (!onlyLink && index === 0 && props2.value)
124
- newModelValue = props2.value;
125
- const to = props2.to ? router.resolve(props2.to) : void 0;
126
- if (props2.link !== false && to && isPathMatch(to.fullPath, props2))
140
+ const props = child.props;
141
+ if (!onlyLink && index === 0 && props.value)
142
+ newModelValue = props.value;
143
+ const to = props.to && router ? router.resolve(props.to) : void 0;
144
+ if (props.link !== false && to && isPathMatch(to.fullPath, props))
127
145
  newModelValue = to.fullPath;
128
146
  });
129
147
  updateModelValue(newModelValue);
130
148
  }
131
149
  keepActiveTabVisible();
132
150
  }
133
- onMounted(() => {
134
- if (get(modelValue) !== void 0)
135
- return;
136
- applyNewValue();
137
- });
138
- watch(route, () => {
139
- applyNewValue(true);
140
- });
141
- const { width, height } = useElementSize(bar);
142
- const { width: wrapperWidth, height: wrapperHeight } = useElementSize(wrapper);
143
- const { arrivedState, x, y } = useScroll(bar, { behavior: "smooth" });
144
- const { top, bottom, left, right } = toRefs(arrivedState);
151
+ function onPrevSliderClick() {
152
+ if (!__props.vertical)
153
+ set(x, get(x) - get(width));
154
+ else set(y, get(y) - get(height));
155
+ }
156
+ function onNextSliderClick() {
157
+ if (!__props.vertical)
158
+ set(x, get(x) + get(width));
159
+ else set(y, get(y) + get(height));
160
+ }
145
161
  const { trigger: triggerHorizontal, stop: stopHorizontal } = watchTriggerable(
146
162
  [wrapperWidth, width],
147
163
  ([ww, w]) => {
@@ -162,64 +178,55 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
162
178
  eventFilter: throttleFilter(500)
163
179
  }
164
180
  );
165
- watchImmediate(vertical, (vertical2) => {
166
- if (vertical2) {
167
- triggerVertical();
168
- stopHorizontal();
169
- } else {
170
- triggerHorizontal();
171
- stopVertical();
181
+ watchImmediate(
182
+ () => __props.vertical,
183
+ (vertical) => {
184
+ if (vertical) {
185
+ triggerVertical();
186
+ stopHorizontal();
187
+ } else {
188
+ triggerHorizontal();
189
+ stopVertical();
190
+ }
172
191
  }
173
- });
174
- const prevArrowDisabled = computed(() => {
175
- if (!get(vertical))
176
- return get(left);
177
- return get(top);
178
- });
179
- const nextArrowDisabled = computed(() => {
180
- if (!get(vertical))
181
- return get(right);
182
- return get(bottom);
183
- });
184
- function onPrevSliderClick() {
185
- if (!get(vertical))
186
- set(x, get(x) - get(width));
187
- else
188
- set(y, get(y) - get(height));
189
- }
190
- function onNextSliderClick() {
191
- if (!get(vertical))
192
- set(x, get(x) + get(width));
193
- else
194
- set(y, get(y) + get(height));
192
+ );
193
+ if (route) {
194
+ watch(route, () => {
195
+ applyNewValue(true);
196
+ });
195
197
  }
196
- useResizeObserver(bar, () => {
197
- keepActiveTabVisible();
198
- });
199
- watchImmediate(modelValue, (modelValue2) => {
200
- set(internalModelValue, modelValue2);
201
- });
198
+ watchImmediate(
199
+ () => get(modelValue),
200
+ (modelValue2) => {
201
+ set(internalModelValue, modelValue2);
202
+ }
203
+ );
202
204
  watch(internalModelValue, () => {
203
205
  keepActiveTabVisible();
204
206
  });
207
+ onMounted(() => {
208
+ if (get(modelValue) !== void 0)
209
+ return;
210
+ applyNewValue();
211
+ });
205
212
  return (_ctx, _cache) => {
206
213
  return openBlock(), createElementBlock("div", {
207
- class: normalizeClass([_ctx.$style.tabs, { [_ctx.$style["tabs--vertical"] ?? ""]: unref(vertical) }])
214
+ class: normalizeClass([_ctx.$style.tabs, { [_ctx.$style["tabs--vertical"] ?? ""]: __props.vertical }])
208
215
  }, [
209
216
  unref(showArrows) ? (openBlock(), createElementBlock("div", {
210
217
  key: 0,
211
- class: normalizeClass([_ctx.$style.arrow, { [_ctx.$style["arrow--vertical"] ?? ""]: unref(vertical) }])
218
+ class: normalizeClass([_ctx.$style.arrow, { [_ctx.$style["arrow--vertical"] ?? ""]: __props.vertical }])
212
219
  }, [
213
220
  createVNode(RuiButton, {
214
221
  class: "w-full h-full !rounded-none",
215
222
  variant: "text",
216
- color: unref(color),
223
+ color: __props.color,
217
224
  disabled: unref(prevArrowDisabled),
218
225
  onClick: _cache[0] || (_cache[0] = ($event) => onPrevSliderClick())
219
226
  }, {
220
227
  default: withCtx(() => [
221
228
  createVNode(RuiIcon, {
222
- name: unref(vertical) ? "lu-chevron-up" : "lu-chevron-left"
229
+ name: __props.vertical ? "lu-chevron-up" : "lu-chevron-left"
223
230
  }, null, 8, ["name"])
224
231
  ]),
225
232
  _: 1
@@ -230,8 +237,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
230
237
  ref: bar,
231
238
  class: normalizeClass(["no-scrollbar", [
232
239
  _ctx.$style["tabs-bar"],
233
- { [_ctx.$style["tabs-bar--vertical"] ?? ""]: unref(vertical) },
234
- { [_ctx.$style["tabs-bar--grow"] ?? ""]: unref(grow) }
240
+ { [_ctx.$style["tabs-bar--vertical"] ?? ""]: __props.vertical },
241
+ { [_ctx.$style["tabs-bar--grow"] ?? ""]: __props.grow }
235
242
  ]])
236
243
  }, [
237
244
  createElementVNode("div", {
@@ -240,8 +247,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
240
247
  role: "tablist",
241
248
  class: normalizeClass([
242
249
  _ctx.$style["tabs-wrapper"],
243
- { [_ctx.$style["tabs-wrapper--vertical"] ?? ""]: unref(vertical) },
244
- { [_ctx.$style["tabs-wrapper--grow"] ?? ""]: unref(grow) }
250
+ { [_ctx.$style["tabs-wrapper--vertical"] ?? ""]: __props.vertical },
251
+ { [_ctx.$style["tabs-wrapper--grow"] ?? ""]: __props.grow }
245
252
  ])
246
253
  }, [
247
254
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(children), (child, i) => {
@@ -254,18 +261,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
254
261
  ], 2),
255
262
  unref(showArrows) ? (openBlock(), createElementBlock("div", {
256
263
  key: 1,
257
- class: normalizeClass([_ctx.$style.arrow, { [_ctx.$style["arrow--vertical"] ?? ""]: unref(vertical) }])
264
+ class: normalizeClass([_ctx.$style.arrow, { [_ctx.$style["arrow--vertical"] ?? ""]: __props.vertical }])
258
265
  }, [
259
266
  createVNode(RuiButton, {
260
267
  class: "w-full h-full !rounded-none",
261
268
  variant: "text",
262
- color: unref(color),
269
+ color: __props.color,
263
270
  disabled: unref(nextArrowDisabled),
264
271
  onClick: _cache[2] || (_cache[2] = ($event) => onNextSliderClick())
265
272
  }, {
266
273
  default: withCtx(() => [
267
274
  createVNode(RuiIcon, {
268
- name: unref(vertical) ? "lu-chevron-down" : "lu-chevron-right"
275
+ name: __props.vertical ? "lu-chevron-down" : "lu-chevron-right"
269
276
  }, null, 8, ["name"])
270
277
  ]),
271
278
  _: 1
@@ -1 +1 @@
1
- {"version":3,"file":"RuiTabs.vue2.js","sources":["../../../../src/components/tabs/tabs/RuiTabs.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Props as TabProps } from '@/components/tabs/tab/RuiTab.vue';\nimport type { ContextColorsType } from '@/consts/colors';\nimport { throttleFilter } from '@vueuse/shared';\nimport { Fragment, isVNode, type VNode } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\n\nexport interface Props {\n color?: ContextColorsType;\n vertical?: boolean;\n disabled?: boolean;\n grow?: boolean;\n modelValue?: number | string;\n align?: 'start' | 'center' | 'end';\n indicatorPosition?: 'start' | 'end';\n}\n\ndefineOptions({\n name: 'RuiTabs',\n});\n\nconst props = withDefaults(defineProps<Props>(), {\n color: undefined,\n vertical: false,\n disabled: false,\n grow: false,\n modelValue: undefined,\n align: 'center',\n indicatorPosition: 'end',\n});\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', modelValue: number | string): void;\n}>();\n\nconst { color, grow, modelValue, disabled, vertical, align, indicatorPosition } = toRefs(props);\n\nconst internalModelValue = ref();\nconst bar = ref<HTMLDivElement>();\nconst wrapper = ref<HTMLDivElement>();\nconst showArrows: Ref<boolean> = ref(false);\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\nconst slots = useSlots();\nconst children = computed(() => {\n const slotContent = slots.default?.() ?? [];\n\n const tabs = getChildrenTabs(slotContent);\n\n const currentModelValue = get(internalModelValue);\n const inheritedProps = {\n color: get(color),\n grow: get(grow),\n disabled: get(disabled),\n vertical: get(vertical),\n align: get(align),\n indicatorPosition: get(indicatorPosition),\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\nfunction updateModelValue(newModelValue: string | number) {\n emit('update:modelValue', newModelValue);\n set(internalModelValue, newModelValue);\n}\n\nconst route = useRoute();\n\nfunction isPathMatch(path: string, { exactPath, exact }: { exactPath?: boolean; exact?: boolean }) {\n const currentRoute = route.fullPath;\n\n if (exactPath)\n return currentRoute === path;\n\n const routeWithoutQueryParams = new URL(path, window.location.origin)\n .pathname;\n\n if (exact)\n return currentRoute === routeWithoutQueryParams;\n\n return currentRoute.startsWith(routeWithoutQueryParams);\n}\n\nfunction keepActiveTabVisible() {\n nextTick(() => {\n if (!get(showArrows))\n return;\n\n const elem = get(wrapper);\n const barElem = get(bar);\n if (elem) {\n const activeTab = (elem.querySelector('.active-tab')\n ?? elem.querySelector('.active-tab-link')) as HTMLElement;\n\n if (!activeTab || !barElem)\n return;\n\n const childLeft = activeTab.offsetLeft - elem.offsetLeft;\n const childTop = activeTab.offsetTop - elem.offsetTop;\n const childWidth = activeTab.offsetWidth;\n const childHeight = activeTab.offsetHeight;\n const parentScrollLeft = barElem.scrollLeft;\n const parentScrollTop = barElem.scrollTop;\n const parentWidth = barElem.offsetWidth;\n const parentHeight = barElem.offsetHeight;\n\n const scrollLeft = Math.max(\n Math.min(parentScrollLeft, childLeft),\n childLeft + childWidth - parentWidth,\n );\n\n const scrollTop = Math.max(\n Math.min(parentScrollTop, childTop),\n childTop + childHeight - parentHeight,\n );\n\n barElem.scrollTo({\n left: scrollLeft,\n top: scrollTop,\n behavior: 'smooth',\n });\n }\n });\n}\n\nconst router = useRouter();\n\nfunction applyNewValue(onlyLink = false) {\n const enabledChildren = get(children).filter(\n child => !child.props.disabled,\n );\n if (enabledChildren.length > 0) {\n let newModelValue: string | number = get(modelValue) || 0;\n enabledChildren.forEach((child, index) => {\n const props = child.props as TabProps;\n if (!onlyLink && index === 0 && props.value)\n newModelValue = props.value;\n\n const to = props.to ? router.resolve(props.to) : undefined;\n\n if (props.link !== false && to && isPathMatch(to.fullPath, props))\n newModelValue = to.fullPath;\n });\n updateModelValue(newModelValue);\n }\n keepActiveTabVisible();\n}\n\nonMounted(() => {\n if (get(modelValue) !== undefined)\n return;\n\n applyNewValue();\n});\n\nwatch(route, () => {\n applyNewValue(true);\n});\n\nconst { width, height } = useElementSize(bar);\nconst { width: wrapperWidth, height: wrapperHeight } = useElementSize(wrapper);\nconst { arrivedState, x, y } = useScroll(bar, { behavior: 'smooth' });\n\nconst { top, bottom, left, right } = toRefs(arrivedState);\n\nconst { trigger: triggerHorizontal, stop: stopHorizontal } = watchTriggerable(\n [wrapperWidth, width],\n ([ww, w]) => {\n if (w > 0)\n set(showArrows, ww > w);\n },\n {\n eventFilter: throttleFilter(50),\n },\n);\n\nconst { trigger: triggerVertical, stop: stopVertical } = watchTriggerable(\n [wrapperHeight, height],\n ([wh, h]) => {\n if (h > 0)\n set(showArrows, wh > h);\n },\n {\n eventFilter: throttleFilter(500),\n },\n);\n\nwatchImmediate(vertical, (vertical) => {\n if (vertical) {\n triggerVertical();\n stopHorizontal();\n }\n else {\n triggerHorizontal();\n stopVertical();\n }\n});\n\nconst prevArrowDisabled = computed(() => {\n if (!get(vertical))\n return get(left);\n\n return get(top);\n});\n\nconst nextArrowDisabled = computed(() => {\n if (!get(vertical))\n return get(right);\n\n return get(bottom);\n});\n\nfunction onPrevSliderClick() {\n if (!get(vertical))\n set(x, get(x) - get(width));\n else\n set(y, get(y) - get(height));\n}\n\nfunction onNextSliderClick() {\n if (!get(vertical))\n set(x, get(x) + get(width));\n else\n set(y, get(y) + get(height));\n}\n\nuseResizeObserver(bar, () => {\n keepActiveTabVisible();\n});\n\nwatchImmediate(modelValue, (modelValue) => {\n set(internalModelValue, modelValue);\n});\n\nwatch(internalModelValue, () => {\n keepActiveTabVisible();\n});\n</script>\n\n<template>\n <div :class=\"[$style.tabs, { [$style['tabs--vertical'] ?? '']: vertical }]\">\n <div\n v-if=\"showArrows\"\n :class=\"[$style.arrow, { [$style['arrow--vertical'] ?? '']: vertical }]\"\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=\"no-scrollbar\"\n :class=\"[\n $style['tabs-bar'],\n { [$style['tabs-bar--vertical'] ?? '']: vertical },\n { [$style['tabs-bar--grow'] ?? '']: grow },\n ]\"\n >\n <div\n ref=\"wrapper\"\n role=\"tablist\"\n :class=\"[\n $style['tabs-wrapper'],\n { [$style['tabs-wrapper--vertical'] ?? '']: vertical },\n { [$style['tabs-wrapper--grow'] ?? '']: grow },\n ]\"\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=\"[$style.arrow, { [$style['arrow--vertical'] ?? '']: vertical }]\"\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\n<style lang=\"scss\" module>\n.tabs {\n @apply flex h-[2.625rem];\n\n &--vertical {\n @apply h-auto max-h-full flex-col;\n }\n\n &-bar {\n @apply max-h-full overflow-auto;\n\n &--vertical,\n &--grow {\n @apply w-full;\n }\n }\n\n &-wrapper {\n @apply h-full inline-flex max-w-none;\n\n &--vertical {\n @apply flex-col h-auto;\n }\n\n &--vertical,\n &--grow {\n @apply min-w-full;\n }\n }\n}\n\n.arrow {\n @apply h-full w-10;\n\n &--vertical {\n @apply min-h-[2.625rem] w-full h-auto;\n }\n}\n</style>\n"],"names":["children","props","vertical","modelValue","_createElementBlock","$style","_unref","_createVNode","_createElementVNode","_normalizeClass","_openBlock","_Fragment","_renderList","_createBlock","_resolveDynamicComponent"],"mappings":"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"}
1
+ {"version":3,"file":"RuiTabs.vue2.js","sources":["../../../../src/components/tabs/tabs/RuiTabs.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Props as TabProps } from '@/components/tabs/tab/RuiTab.vue';\nimport type { ContextColorsType } from '@/consts/colors';\nimport { throttleFilter } from '@vueuse/shared';\nimport { Fragment, getCurrentInstance, isVNode, type VNode } from 'vue';\nimport { useRoute, useRouter } from 'vue-router';\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\n\nexport interface Props {\n color?: ContextColorsType;\n vertical?: boolean;\n disabled?: boolean;\n grow?: boolean;\n align?: 'start' | 'center' | 'end';\n indicatorPosition?: 'start' | 'end';\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');\nconst showArrows: Ref<boolean> = ref(false);\n\nconst slots = useSlots();\nconst hasRouter = !!getCurrentInstance()?.appContext.config.globalProperties.$router;\nconst route = hasRouter ? useRoute() : undefined;\nconst router = hasRouter ? useRouter() : undefined;\nconst { width, height } = useElementSize(bar);\nconst { width: wrapperWidth, height: wrapperHeight } = useElementSize(wrapper);\nconst { arrivedState, x, y } = useScroll(bar, { behavior: 'smooth' });\nconst { top, bottom, left, right } = toRefs(arrivedState);\n\nuseResizeObserver(bar, () => {\n keepActiveTabVisible();\n});\n\nconst children = computed<(VNode & { props: Record<string, any> })[]>(() => {\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 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\nconst prevArrowDisabled = computed<boolean>(() => {\n if (!vertical)\n return get(left);\n\n return get(top);\n});\n\nconst nextArrowDisabled = computed<boolean>(() => {\n if (!vertical)\n return get(right);\n\n return get(bottom);\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\n .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 })\n .flat();\n}\n\nfunction updateModelValue(newModelValue: string | number): void {\n set(modelValue, newModelValue);\n set(internalModelValue, newModelValue);\n}\n\nfunction isPathMatch(\n path: string,\n { exactPath, exact }: { exactPath?: boolean; exact?: boolean },\n): boolean {\n if (!route)\n return false;\n\n const currentRoute = route.fullPath;\n\n if (exactPath)\n return currentRoute === path;\n\n const routeWithoutQueryParams = new URL(path, window.location.origin).pathname;\n\n if (exact)\n return currentRoute === routeWithoutQueryParams;\n\n return currentRoute.startsWith(routeWithoutQueryParams);\n}\n\nfunction keepActiveTabVisible(): void {\n nextTick(() => {\n if (!get(showArrows))\n return;\n\n const elem = get(wrapper);\n const barElem = get(bar);\n if (elem) {\n const activeTab = (elem.querySelector('.active-tab') ??\n elem.querySelector('.active-tab-link')) as HTMLElement;\n\n if (!activeTab || !barElem)\n return;\n\n const childLeft = activeTab.offsetLeft - elem.offsetLeft;\n const childTop = activeTab.offsetTop - elem.offsetTop;\n const childWidth = activeTab.offsetWidth;\n const childHeight = activeTab.offsetHeight;\n const parentScrollLeft = barElem.scrollLeft;\n const parentScrollTop = barElem.scrollTop;\n const parentWidth = barElem.offsetWidth;\n const parentHeight = barElem.offsetHeight;\n\n const scrollLeft = Math.max(\n Math.min(parentScrollLeft, childLeft),\n childLeft + childWidth - parentWidth,\n );\n\n const scrollTop = Math.max(\n Math.min(parentScrollTop, childTop),\n childTop + childHeight - parentHeight,\n );\n\n barElem.scrollTo({\n left: scrollLeft,\n top: scrollTop,\n behavior: 'smooth',\n });\n }\n });\n}\n\nfunction applyNewValue(onlyLink = false): void {\n const enabledChildren = get(children).filter(child => !child.props?.disabled);\n if (enabledChildren.length > 0) {\n let newModelValue: string | number = get(modelValue) || 0;\n enabledChildren.forEach((child, index) => {\n const props = child.props as TabProps;\n if (!onlyLink && index === 0 && props.value)\n newModelValue = props.value;\n\n const to = props.to && router ? router.resolve(props.to) : undefined;\n\n if (props.link !== false && to && isPathMatch(to.fullPath, props))\n newModelValue = to.fullPath;\n });\n updateModelValue(newModelValue);\n }\n keepActiveTabVisible();\n}\n\nfunction onPrevSliderClick(): void {\n if (!vertical)\n set(x, get(x) - get(width));\n else set(y, get(y) - get(height));\n}\n\nfunction onNextSliderClick(): void {\n if (!vertical)\n set(x, get(x) + get(width));\n else set(y, get(y) + get(height));\n}\n\nconst { trigger: triggerHorizontal, stop: stopHorizontal } = watchTriggerable(\n [wrapperWidth, width],\n ([ww, w]) => {\n if (w > 0)\n set(showArrows, ww > w);\n },\n {\n eventFilter: throttleFilter(50),\n },\n);\n\nconst { trigger: triggerVertical, stop: stopVertical } = watchTriggerable(\n [wrapperHeight, height],\n ([wh, h]) => {\n if (h > 0)\n set(showArrows, wh > h);\n },\n {\n eventFilter: throttleFilter(500),\n },\n);\n\nwatchImmediate(\n () => vertical,\n (vertical) => {\n if (vertical) {\n triggerVertical();\n stopHorizontal();\n }\n else {\n triggerHorizontal();\n stopVertical();\n }\n },\n);\n\nif (route) {\n watch(route, () => {\n applyNewValue(true);\n });\n}\n\nwatchImmediate(\n () => get(modelValue),\n (modelValue) => {\n set(internalModelValue, modelValue);\n },\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 :class=\"[$style.tabs, { [$style['tabs--vertical'] ?? '']: vertical }]\">\n <div\n v-if=\"showArrows\"\n :class=\"[$style.arrow, { [$style['arrow--vertical'] ?? '']: vertical }]\"\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=\"no-scrollbar\"\n :class=\"[\n $style['tabs-bar'],\n { [$style['tabs-bar--vertical'] ?? '']: vertical },\n { [$style['tabs-bar--grow'] ?? '']: grow },\n ]\"\n >\n <div\n ref=\"wrapper\"\n role=\"tablist\"\n :class=\"[\n $style['tabs-wrapper'],\n { [$style['tabs-wrapper--vertical'] ?? '']: vertical },\n { [$style['tabs-wrapper--grow'] ?? '']: grow },\n ]\"\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=\"[$style.arrow, { [$style['arrow--vertical'] ?? '']: vertical }]\"\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\n<style lang=\"scss\" module>\n.tabs {\n @apply flex h-[2.625rem];\n\n &--vertical {\n @apply h-auto max-h-full flex-col;\n }\n\n &-bar {\n @apply max-h-full overflow-auto;\n\n &--vertical,\n &--grow {\n @apply w-full;\n }\n }\n\n &-wrapper {\n @apply h-full inline-flex max-w-none;\n\n &--vertical {\n @apply flex-col h-auto;\n }\n\n &--vertical,\n &--grow {\n @apply min-w-full;\n }\n }\n}\n\n.arrow {\n @apply h-full w-10;\n\n &--vertical {\n @apply min-h-[2.625rem] w-full h-auto;\n }\n}\n</style>\n"],"names":["_useModel","children","modelValue","_createElementBlock","$style","_unref","_createVNode","_createElementVNode","_normalizeClass","_openBlock","_Fragment","_renderList","_createBlock","_resolveDynamicComponent"],"mappings":"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"}
@@ -28,9 +28,6 @@ declare const __VLS_export: import("vue").DefineComponent<__VLS_PublicProps, {},
28
28
  "onUpdate:second"?: ((value: number | undefined) => any) | undefined;
29
29
  "onUpdate:millisecond"?: ((value: number | undefined) => any) | undefined;
30
30
  "onUpdate:selection"?: ((value: TimePickerSelection) => any) | undefined;
31
- }>, {
32
- borderless: boolean;
33
- accuracy: TimeAccuracy;
34
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
31
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
35
32
  declare const _default: typeof __VLS_export;
36
33
  export default _default;