@rotki/ui-library 3.1.7 → 3.2.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 (257) hide show
  1. package/dist/components/accordions/accordion/RuiAccordion.js.map +1 -1
  2. package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js +3 -3
  3. package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -1
  4. package/dist/components/accordions/accordion/accordion-styles.d.ts +1 -0
  5. package/dist/components/accordions/accordion/accordion-styles.js +7 -0
  6. package/dist/components/accordions/accordion/accordion-styles.js.map +1 -0
  7. package/dist/components/alerts/RuiAlert.js.map +1 -1
  8. package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js +1 -65
  9. package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js.map +1 -1
  10. package/dist/components/alerts/alert-styles.d.ts +145 -0
  11. package/dist/components/alerts/alert-styles.js +70 -0
  12. package/dist/components/alerts/alert-styles.js.map +1 -0
  13. package/dist/components/avatars/RuiAvatar.js.map +1 -1
  14. package/dist/components/avatars/RuiAvatar.vue_vue_type_script_setup_true_lang.js +1 -38
  15. package/dist/components/avatars/RuiAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  16. package/dist/components/avatars/RuiAvatarGroup.js.map +1 -1
  17. package/dist/components/avatars/RuiAvatarGroup.vue_vue_type_script_setup_true_lang.js +1 -13
  18. package/dist/components/avatars/RuiAvatarGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  19. package/dist/components/avatars/avatar-group-styles.d.ts +49 -0
  20. package/dist/components/avatars/avatar-group-styles.js +18 -0
  21. package/dist/components/avatars/avatar-group-styles.js.map +1 -0
  22. package/dist/components/avatars/avatar-styles.d.ts +181 -0
  23. package/dist/components/avatars/avatar-styles.js +43 -0
  24. package/dist/components/avatars/avatar-styles.js.map +1 -0
  25. package/dist/components/buttons/button-group/RuiButtonGroup.js.map +1 -1
  26. package/dist/components/buttons/button-group/RuiButtonGroup.vue_vue_type_script_setup_true_lang.js +2 -138
  27. package/dist/components/buttons/button-group/RuiButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  28. package/dist/components/buttons/button-group/button-group-styles.d.ts +142 -0
  29. package/dist/components/buttons/button-group/button-group-styles.js +143 -0
  30. package/dist/components/buttons/button-group/button-group-styles.js.map +1 -0
  31. package/dist/components/calendar/RuiCalendar.js.map +1 -1
  32. package/dist/components/calendar/RuiCalendar.vue_vue_type_script_setup_true_lang.js +1 -8
  33. package/dist/components/calendar/RuiCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  34. package/dist/components/calendar/RuiCalendarGrid.js.map +1 -1
  35. package/dist/components/calendar/RuiCalendarGrid.vue_vue_type_script_setup_true_lang.js +2 -22
  36. package/dist/components/calendar/RuiCalendarGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
  37. package/dist/components/calendar/RuiCalendarMenu.js.map +1 -1
  38. package/dist/components/calendar/RuiCalendarMenu.vue_vue_type_script_setup_true_lang.js +3 -14
  39. package/dist/components/calendar/RuiCalendarMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  40. package/dist/components/calendar/calendar-grid-styles.d.ts +43 -0
  41. package/dist/components/calendar/calendar-grid-styles.js +26 -0
  42. package/dist/components/calendar/calendar-grid-styles.js.map +1 -0
  43. package/dist/components/calendar/calendar-menu-styles.d.ts +34 -0
  44. package/dist/components/calendar/calendar-menu-styles.js +17 -0
  45. package/dist/components/calendar/calendar-menu-styles.js.map +1 -0
  46. package/dist/components/calendar/calendar-styles.d.ts +16 -0
  47. package/dist/components/calendar/calendar-styles.js +13 -0
  48. package/dist/components/calendar/calendar-styles.js.map +1 -0
  49. package/dist/components/cards/RuiCard.js.map +1 -1
  50. package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js +3 -58
  51. package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  52. package/dist/components/cards/RuiCardHeader.js.map +1 -1
  53. package/dist/components/cards/RuiCardHeader.vue_vue_type_script_setup_true_lang.js +2 -20
  54. package/dist/components/cards/RuiCardHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  55. package/dist/components/cards/card-header-styles.d.ts +46 -0
  56. package/dist/components/cards/card-header-styles.js +24 -0
  57. package/dist/components/cards/card-header-styles.js.map +1 -0
  58. package/dist/components/cards/card-styles.d.ts +175 -0
  59. package/dist/components/cards/card-styles.js +62 -0
  60. package/dist/components/cards/card-styles.js.map +1 -0
  61. package/dist/components/chips/RuiChip.js.map +1 -1
  62. package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js +2 -241
  63. package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  64. package/dist/components/chips/chip-styles.d.ts +223 -0
  65. package/dist/components/chips/chip-styles.js +246 -0
  66. package/dist/components/chips/chip-styles.js.map +1 -0
  67. package/dist/components/color-picker/RuiColorBoard.js.map +1 -1
  68. package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js +3 -3
  69. package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  70. package/dist/components/color-picker/RuiColorHue.js.map +1 -1
  71. package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js +3 -3
  72. package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js.map +1 -1
  73. package/dist/components/color-picker/RuiColorPicker.js.map +1 -1
  74. package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js +3 -3
  75. package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  76. package/dist/components/color-picker/color-board-styles.d.ts +1 -0
  77. package/dist/components/color-picker/color-board-styles.js +7 -0
  78. package/dist/components/color-picker/color-board-styles.js.map +1 -0
  79. package/dist/components/color-picker/color-hue-styles.d.ts +1 -0
  80. package/dist/components/color-picker/color-hue-styles.js +7 -0
  81. package/dist/components/color-picker/color-hue-styles.js.map +1 -0
  82. package/dist/components/color-picker/color-picker-styles.d.ts +1 -0
  83. package/dist/components/color-picker/color-picker-styles.js +7 -0
  84. package/dist/components/color-picker/color-picker-styles.js.map +1 -0
  85. package/dist/components/forms/field-label/RuiFieldLabel.js.map +1 -1
  86. package/dist/components/forms/field-label/RuiFieldLabel.vue_vue_type_script_setup_true_lang.js +1 -11
  87. package/dist/components/forms/field-label/RuiFieldLabel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  88. package/dist/components/forms/field-label/field-label-styles.d.ts +43 -0
  89. package/dist/components/forms/field-label/field-label-styles.js +16 -0
  90. package/dist/components/forms/field-label/field-label-styles.js.map +1 -0
  91. package/dist/components/forms/select/RuiSimpleSelect.js.map +1 -1
  92. package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js +2 -11
  93. package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  94. package/dist/components/forms/select/simple-select-styles.d.ts +2 -0
  95. package/dist/components/forms/select/simple-select-styles.js +15 -0
  96. package/dist/components/forms/select/simple-select-styles.js.map +1 -0
  97. package/dist/components/forms/switch/RuiSwitch.js.map +1 -1
  98. package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js +1 -126
  99. package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  100. package/dist/components/forms/switch/switch-styles.d.ts +151 -0
  101. package/dist/components/forms/switch/switch-styles.js +131 -0
  102. package/dist/components/forms/switch/switch-styles.js.map +1 -0
  103. package/dist/components/icons/RuiIcon.js.map +1 -1
  104. package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js +2 -28
  105. package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
  106. package/dist/components/icons/icon-styles.d.ts +44 -0
  107. package/dist/components/icons/icon-styles.js +33 -0
  108. package/dist/components/icons/icon-styles.js.map +1 -0
  109. package/dist/components/loaders/RuiSkeletonBase.js.map +1 -1
  110. package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js +2 -12
  111. package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js.map +1 -1
  112. package/dist/components/loaders/RuiSkeletonLoader.js.map +1 -1
  113. package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js +3 -13
  114. package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  115. package/dist/components/loaders/skeleton-base-styles.d.ts +25 -0
  116. package/dist/components/loaders/skeleton-base-styles.js +16 -0
  117. package/dist/components/loaders/skeleton-base-styles.js.map +1 -0
  118. package/dist/components/loaders/skeleton-loader-styles.d.ts +37 -0
  119. package/dist/components/loaders/skeleton-loader-styles.js +18 -0
  120. package/dist/components/loaders/skeleton-loader-styles.js.map +1 -0
  121. package/dist/components/overlays/badge/RuiBadge.js.map +1 -1
  122. package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js +1 -83
  123. package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js.map +1 -1
  124. package/dist/components/overlays/badge/badge-styles.d.ts +193 -0
  125. package/dist/components/overlays/badge/badge-styles.js +88 -0
  126. package/dist/components/overlays/badge/badge-styles.js.map +1 -0
  127. package/dist/components/overlays/dialog/RuiDialog.js.map +1 -1
  128. package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js +3 -14
  129. package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  130. package/dist/components/overlays/dialog/dialog-styles.d.ts +40 -0
  131. package/dist/components/overlays/dialog/dialog-styles.js +18 -0
  132. package/dist/components/overlays/dialog/dialog-styles.js.map +1 -0
  133. package/dist/components/overlays/menu/RuiMenu.js.map +1 -1
  134. package/dist/components/overlays/menu/RuiMenu.vue.d.ts +9 -0
  135. package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js +113 -58
  136. package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  137. package/dist/components/overlays/menu/menu-styles.d.ts +58 -0
  138. package/dist/components/overlays/menu/menu-styles.js +25 -0
  139. package/dist/components/overlays/menu/menu-styles.js.map +1 -0
  140. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.js.map +1 -1
  141. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js +4 -69
  142. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  143. package/dist/components/overlays/navigation-drawer/navigation-drawer-styles.d.ts +76 -0
  144. package/dist/components/overlays/navigation-drawer/navigation-drawer-styles.js +72 -0
  145. package/dist/components/overlays/navigation-drawer/navigation-drawer-styles.js.map +1 -0
  146. package/dist/components/overlays/notification/RuiNotification.js.map +1 -1
  147. package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js +3 -3
  148. package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js.map +1 -1
  149. package/dist/components/overlays/notification/notification-styles.d.ts +1 -0
  150. package/dist/components/overlays/notification/notification-styles.js +7 -0
  151. package/dist/components/overlays/notification/notification-styles.js.map +1 -0
  152. package/dist/components/overlays/tooltip/RuiTooltip.js.map +1 -1
  153. package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +4 -2
  154. package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js +42 -25
  155. package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  156. package/dist/components/overlays/tooltip/tooltip-styles.d.ts +2 -0
  157. package/dist/components/overlays/tooltip/tooltip-styles.js +3 -1
  158. package/dist/components/overlays/tooltip/tooltip-styles.js.map +1 -1
  159. package/dist/components/progress/RuiProgress.js.map +1 -1
  160. package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js +1 -133
  161. package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js.map +1 -1
  162. package/dist/components/progress/progress-styles.d.ts +181 -0
  163. package/dist/components/progress/progress-styles.js +139 -0
  164. package/dist/components/progress/progress-styles.js.map +1 -0
  165. package/dist/components/steppers/RuiFooterStepper.js.map +1 -1
  166. package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js +3 -13
  167. package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  168. package/dist/components/steppers/RuiStepper.js.map +1 -1
  169. package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js +4 -94
  170. package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  171. package/dist/components/steppers/RuiStepperIcon.js.map +1 -1
  172. package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js +2 -34
  173. package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
  174. package/dist/components/steppers/footer-stepper-styles.d.ts +28 -0
  175. package/dist/components/steppers/footer-stepper-styles.js +16 -0
  176. package/dist/components/steppers/footer-stepper-styles.js.map +1 -0
  177. package/dist/components/steppers/stepper-icon-styles.d.ts +60 -0
  178. package/dist/components/steppers/stepper-icon-styles.js +39 -0
  179. package/dist/components/steppers/stepper-icon-styles.js.map +1 -0
  180. package/dist/components/steppers/stepper-styles.d.ts +202 -0
  181. package/dist/components/steppers/stepper-styles.js +98 -0
  182. package/dist/components/steppers/stepper-styles.js.map +1 -0
  183. package/dist/components/tables/RuiTable.js.map +1 -1
  184. package/dist/components/tables/RuiTable.vue_vue_type_script_setup_true_lang.js +1 -32
  185. package/dist/components/tables/RuiTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  186. package/dist/components/tables/RuiTableEmptyState.js.map +1 -1
  187. package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js +1 -15
  188. package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -1
  189. package/dist/components/tables/RuiTableErrorState.js.map +1 -1
  190. package/dist/components/tables/RuiTableErrorState.vue_vue_type_script_setup_true_lang.js +2 -5
  191. package/dist/components/tables/RuiTableErrorState.vue_vue_type_script_setup_true_lang.js.map +1 -1
  192. package/dist/components/tables/RuiTableHead.js.map +1 -1
  193. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js +1 -34
  194. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js.map +1 -1
  195. package/dist/components/tables/RuiTableLoadingState.js.map +1 -1
  196. package/dist/components/tables/RuiTableLoadingState.vue_vue_type_script_setup_true_lang.js +1 -8
  197. package/dist/components/tables/RuiTableLoadingState.vue_vue_type_script_setup_true_lang.js.map +1 -1
  198. package/dist/components/tables/RuiTablePagination.js.map +1 -1
  199. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js +1 -30
  200. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  201. package/dist/components/tables/table-empty-state-styles.d.ts +43 -0
  202. package/dist/components/tables/table-empty-state-styles.js +20 -0
  203. package/dist/components/tables/table-empty-state-styles.js.map +1 -0
  204. package/dist/components/tables/table-error-state-styles.d.ts +36 -0
  205. package/dist/components/tables/table-error-state-styles.js +15 -0
  206. package/dist/components/tables/table-error-state-styles.js.map +1 -0
  207. package/dist/components/tables/table-head-styles.d.ts +91 -0
  208. package/dist/components/tables/table-head-styles.js +39 -0
  209. package/dist/components/tables/table-head-styles.js.map +1 -0
  210. package/dist/components/tables/table-loading-state-styles.d.ts +34 -0
  211. package/dist/components/tables/table-loading-state-styles.js +13 -0
  212. package/dist/components/tables/table-loading-state-styles.js.map +1 -0
  213. package/dist/components/tables/table-pagination-styles.d.ts +82 -0
  214. package/dist/components/tables/table-pagination-styles.js +35 -0
  215. package/dist/components/tables/table-pagination-styles.js.map +1 -0
  216. package/dist/components/tables/table-styles.d.ts +62 -0
  217. package/dist/components/tables/table-styles.js +37 -0
  218. package/dist/components/tables/table-styles.js.map +1 -0
  219. package/dist/components/tabs/tab/RuiTab.js.map +1 -1
  220. package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js +3 -84
  221. package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js.map +1 -1
  222. package/dist/components/tabs/tab/tab-styles.d.ts +153 -0
  223. package/dist/components/tabs/tab/tab-styles.js +89 -0
  224. package/dist/components/tabs/tab/tab-styles.js.map +1 -0
  225. package/dist/components/tabs/tabs/RuiTabs.js.map +1 -1
  226. package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js +2 -137
  227. package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  228. package/dist/components/tabs/tabs/tabs-styles.d.ts +168 -0
  229. package/dist/components/tabs/tabs/tabs-styles.js +142 -0
  230. package/dist/components/tabs/tabs/tabs-styles.js.map +1 -0
  231. package/dist/composables/floating.d.ts +3 -1
  232. package/dist/composables/floating.js +8 -9
  233. package/dist/composables/floating.js.map +1 -1
  234. package/dist/icons/icons_1.d.ts +1 -1
  235. package/dist/icons/icons_1.js +10 -9
  236. package/dist/icons/icons_1.js.map +1 -1
  237. package/dist/icons/icons_2.d.ts +1 -1
  238. package/dist/icons/icons_2.js +9 -11
  239. package/dist/icons/icons_2.js.map +1 -1
  240. package/dist/icons/icons_3.d.ts +1 -1
  241. package/dist/icons/icons_3.js +11 -5
  242. package/dist/icons/icons_3.js.map +1 -1
  243. package/dist/icons/icons_4.d.ts +1 -1
  244. package/dist/icons/icons_4.js +5 -10
  245. package/dist/icons/icons_4.js.map +1 -1
  246. package/dist/icons/icons_5.d.ts +1 -0
  247. package/dist/icons/icons_5.js +10 -1
  248. package/dist/icons/icons_5.js.map +1 -1
  249. package/dist/icons/index.d.ts +1 -1
  250. package/dist/icons/index.js +7 -6
  251. package/dist/icons/index.js.map +1 -1
  252. package/dist/index.js +6 -6
  253. package/dist/utils/form-text-detail.d.ts +2 -0
  254. package/dist/utils/form-text-detail.js +5 -1
  255. package/dist/utils/form-text-detail.js.map +1 -1
  256. package/dist/web-types.json +11 -1
  257. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"RuiTablePagination.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_createVNode","RuiMenuSelect","_isRef","_createBlock","RuiTextField","_withKeys","_createCommentVNode","_toDisplayString","RuiButton","_withCtx","RuiIcon"],"sources":["../../../src/components/tables/RuiTablePagination.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiMenuSelect from '@/components/forms/select/RuiMenuSelect.vue';\nimport RuiTextField from '@/components/forms/text-field/RuiTextField.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport { type TablePaginationData, usePaginationNavigation } from '@/components/tables/use-pagination-navigation';\nimport { useTable } from '@/composables/defaults/table';\nimport { tv } from '@/utils/tv';\n\nexport type { TablePaginationData };\n\nexport interface Props {\n dense?: boolean;\n disablePerPage?: boolean;\n loading?: boolean;\n /**\n * Render a compact, touch-friendly layout: the sections spread across the\n * full width and the first/last jump buttons are dropped to save space.\n */\n mobile?: boolean;\n /**\n * Maximum number of pages before the jump-to-page dropdown is replaced\n * with a numeric input. Set to `1` to use the input whenever there is more\n * than one page, or `0` to always use the dropdown. Defaults to `500`, since\n * past that materialising the full range list stalls the main thread.\n */\n rangesThreshold?: number;\n}\n\nconst modelValue = defineModel<TablePaginationData>({ required: true });\n\nconst {\n dense = false,\n loading = false,\n disablePerPage = false,\n rangesThreshold = 500,\n mobile = false,\n} = defineProps<Props>();\n\nconst paginationStyles = tv({\n slots: {\n wrapper: 'relative flex flex-wrap items-center justify-end gap-x-4 gap-y-0',\n limit: 'flex items-center between:ml-2 between:mr-0 text-caption',\n ranges: 'flex items-center between:ml-2 between:mr-0 text-caption pr-2',\n pageInput: 'w-14 [&_input]:text-center [&_input]:px-1! [&_input]:text-xs! [&_input]:leading-5!',\n sectionLabel: 'text-rui-text-secondary whitespace-nowrap py-3',\n select: 'text-xs! pl-3!',\n indicator: 'text-rui-text text-caption whitespace-nowrap',\n navigation: 'flex items-center',\n },\n variants: {\n // the selects match the icon buttons, 28px with `size=\"sm\"` and 32px without\n dense: {\n true: {\n select: 'min-h-7!',\n pageInput: '[&_input]:py-1!',\n },\n false: {\n select: 'min-h-8!',\n pageInput: '[&_input]:py-1.5!',\n },\n },\n mobile: {\n true: {\n wrapper: 'flex-nowrap justify-between gap-x-2 gap-y-0',\n ranges: 'pr-0',\n // sr-only rather than hidden: a display:none label names nothing\n sectionLabel: 'sr-only',\n },\n },\n },\n});\n\nconst ui = computed<ReturnType<typeof paginationStyles>>(() => paginationStyles({ dense, mobile }));\n\nconst tableDefaults = useTable();\n\nconst {\n limits,\n currentLimit,\n pages,\n ranges,\n indicatorText,\n currentRange,\n useInputJump,\n hasPrev,\n hasNext,\n onPrev,\n onNext,\n onFirst,\n onLast,\n} = usePaginationNavigation(modelValue, tableDefaults, () => rangesThreshold);\n\n/**\n * With every row on one page the bar stays in place, as a summary, but the\n * page jump has nowhere to go, so it disables like the arrows beside it.\n */\nconst singlePage = computed<boolean>(() => get(pages) <= 1);\n\n/**\n * The rows-per-page select disables only once every option would fit all the\n * rows. Until then it stays live even on a single page: it is how a user\n * lowers a limit they raised past the row count.\n */\nconst everyLimitFits = computed<boolean>(() => {\n const { total } = get(modelValue);\n return get(singlePage) && get(limits).every(({ limit }) => limit >= total);\n});\n\nconst pageDraft = ref<string>(String(get(currentRange)));\n\nwatch(currentRange, (value) => {\n set(pageDraft, String(value));\n});\n\nfunction commitPageInput(): void {\n const parsed = Number.parseInt(get(pageDraft), 10);\n const maxPage = get(pages);\n if (!Number.isFinite(parsed) || maxPage === 0) {\n set(pageDraft, String(get(currentRange)));\n return;\n }\n const clamped = Math.min(Math.max(parsed, 1), maxPage);\n if (clamped !== get(currentRange))\n set(currentRange, clamped);\n set(pageDraft, String(clamped));\n}\n\nconst limitId = useId();\nconst rangesId = useId();\n</script>\n\n<template>\n <div :class=\"ui.wrapper()\">\n <div\n :class=\"ui.limit()\"\n data-id=\"table-pagination-limit-section\"\n >\n <label\n :for=\"limitId\"\n :class=\"ui.sectionLabel()\"\n >\n Rows per page:\n </label>\n <RuiMenuSelect\n :id=\"limitId\"\n v-model=\"currentLimit\"\n :options=\"limits\"\n :disabled=\"loading || disablePerPage || everyLimitFits\"\n :class-names=\"{ label: ui.select() }\"\n label=\"\"\n name=\"limit\"\n key-attr=\"limit\"\n text-attr=\"limit\"\n details=\"hidden\"\n dense\n data-id=\"table-pagination-limit\"\n />\n </div>\n <div\n :class=\"ui.ranges()\"\n data-id=\"table-pagination-ranges-section\"\n >\n <label\n :for=\"rangesId\"\n :class=\"ui.sectionLabel({ class: useInputJump ? undefined : 'sr-only' })\"\n >\n Page\n </label>\n <RuiTextField\n v-if=\"useInputJump\"\n :id=\"rangesId\"\n v-model=\"pageDraft\"\n :disabled=\"loading || singlePage\"\n :class=\"[ui.pageInput()]\"\n type=\"number\"\n min=\"1\"\n :max=\"pages\"\n inputmode=\"numeric\"\n details=\"hidden\"\n dense\n data-id=\"table-pagination-ranges-input\"\n @blur=\"commitPageInput()\"\n @keydown.enter=\"commitPageInput()\"\n />\n <RuiMenuSelect\n v-else-if=\"ranges.length > 0\"\n :id=\"rangesId\"\n v-model=\"currentRange\"\n :options=\"ranges\"\n :disabled=\"loading || singlePage\"\n :class-names=\"{ label: ui.select() }\"\n label=\"\"\n name=\"ranges\"\n key-attr=\"page\"\n text-attr=\"text\"\n details=\"hidden\"\n dense\n data-id=\"table-pagination-ranges\"\n />\n <span :class=\"ui.indicator()\">\n {{ indicatorText }}\n </span>\n </div>\n <div\n :class=\"ui.navigation()\"\n data-id=\"table-pagination-navigation\"\n >\n <RuiButton\n v-if=\"!mobile\"\n :size=\"dense ? 'sm' : undefined\"\n :disabled=\"!hasPrev || loading\"\n variant=\"text\"\n icon\n aria-label=\"First page\"\n data-id=\"table-pagination-first\"\n @click=\"onFirst()\"\n >\n <RuiIcon name=\"lu-chevrons-left\" />\n </RuiButton>\n <RuiButton\n :size=\"dense ? 'sm' : undefined\"\n :disabled=\"!hasPrev || loading\"\n variant=\"text\"\n icon\n aria-label=\"Previous page\"\n data-id=\"table-pagination-prev\"\n @click=\"onPrev()\"\n >\n <RuiIcon name=\"lu-chevron-left\" />\n </RuiButton>\n <RuiButton\n :size=\"dense ? 'sm' : undefined\"\n :disabled=\"!hasNext || loading\"\n variant=\"text\"\n icon\n aria-label=\"Next page\"\n data-id=\"table-pagination-next\"\n @click=\"onNext()\"\n >\n <RuiIcon name=\"lu-chevron-right\" />\n </RuiButton>\n <RuiButton\n v-if=\"!mobile\"\n :size=\"dense ? 'sm' : undefined\"\n :disabled=\"!hasNext || loading\"\n variant=\"text\"\n icon\n aria-label=\"Last page\"\n data-id=\"table-pagination-last\"\n @click=\"onLast()\"\n >\n <RuiIcon name=\"lu-chevrons-right\" />\n </RuiButton>\n </div>\n </div>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"RuiTablePagination.vue_vue_type_script_setup_true_lang.js","names":["_useModel","_openBlock","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_createVNode","RuiMenuSelect","_isRef","_createBlock","RuiTextField","_withKeys","_createCommentVNode","_toDisplayString","RuiButton","_withCtx","RuiIcon"],"sources":["../../../src/components/tables/RuiTablePagination.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiMenuSelect from '@/components/forms/select/RuiMenuSelect.vue';\nimport RuiTextField from '@/components/forms/text-field/RuiTextField.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport { type TablePaginationData, usePaginationNavigation } from '@/components/tables/use-pagination-navigation';\nimport { useTable } from '@/composables/defaults/table';\nimport { paginationStyles } from './table-pagination-styles';\n\nexport type { TablePaginationData };\n\nexport interface Props {\n dense?: boolean;\n disablePerPage?: boolean;\n loading?: boolean;\n /**\n * Render a compact, touch-friendly layout: the sections spread across the\n * full width and the first/last jump buttons are dropped to save space.\n */\n mobile?: boolean;\n /**\n * Maximum number of pages before the jump-to-page dropdown is replaced\n * with a numeric input. Set to `1` to use the input whenever there is more\n * than one page, or `0` to always use the dropdown. Defaults to `500`, since\n * past that materialising the full range list stalls the main thread.\n */\n rangesThreshold?: number;\n}\n\nconst modelValue = defineModel<TablePaginationData>({ required: true });\n\nconst {\n dense = false,\n loading = false,\n disablePerPage = false,\n rangesThreshold = 500,\n mobile = false,\n} = defineProps<Props>();\n\nconst ui = computed<ReturnType<typeof paginationStyles>>(() => paginationStyles({ dense, mobile }));\n\nconst tableDefaults = useTable();\n\nconst {\n limits,\n currentLimit,\n pages,\n ranges,\n indicatorText,\n currentRange,\n useInputJump,\n hasPrev,\n hasNext,\n onPrev,\n onNext,\n onFirst,\n onLast,\n} = usePaginationNavigation(modelValue, tableDefaults, () => rangesThreshold);\n\n/**\n * With every row on one page the bar stays in place, as a summary, but the\n * page jump has nowhere to go, so it disables like the arrows beside it.\n */\nconst singlePage = computed<boolean>(() => get(pages) <= 1);\n\n/**\n * The rows-per-page select disables only once every option would fit all the\n * rows. Until then it stays live even on a single page: it is how a user\n * lowers a limit they raised past the row count.\n */\nconst everyLimitFits = computed<boolean>(() => {\n const { total } = get(modelValue);\n return get(singlePage) && get(limits).every(({ limit }) => limit >= total);\n});\n\nconst pageDraft = ref<string>(String(get(currentRange)));\n\nwatch(currentRange, (value) => {\n set(pageDraft, String(value));\n});\n\nfunction commitPageInput(): void {\n const parsed = Number.parseInt(get(pageDraft), 10);\n const maxPage = get(pages);\n if (!Number.isFinite(parsed) || maxPage === 0) {\n set(pageDraft, String(get(currentRange)));\n return;\n }\n const clamped = Math.min(Math.max(parsed, 1), maxPage);\n if (clamped !== get(currentRange))\n set(currentRange, clamped);\n set(pageDraft, String(clamped));\n}\n\nconst limitId = useId();\nconst rangesId = useId();\n</script>\n\n<template>\n <div :class=\"ui.wrapper()\">\n <div\n :class=\"ui.limit()\"\n data-id=\"table-pagination-limit-section\"\n >\n <label\n :for=\"limitId\"\n :class=\"ui.sectionLabel()\"\n >\n Rows per page:\n </label>\n <RuiMenuSelect\n :id=\"limitId\"\n v-model=\"currentLimit\"\n :options=\"limits\"\n :disabled=\"loading || disablePerPage || everyLimitFits\"\n :class-names=\"{ label: ui.select() }\"\n label=\"\"\n name=\"limit\"\n key-attr=\"limit\"\n text-attr=\"limit\"\n details=\"hidden\"\n dense\n data-id=\"table-pagination-limit\"\n />\n </div>\n <div\n :class=\"ui.ranges()\"\n data-id=\"table-pagination-ranges-section\"\n >\n <label\n :for=\"rangesId\"\n :class=\"ui.sectionLabel({ class: useInputJump ? undefined : 'sr-only' })\"\n >\n Page\n </label>\n <RuiTextField\n v-if=\"useInputJump\"\n :id=\"rangesId\"\n v-model=\"pageDraft\"\n :disabled=\"loading || singlePage\"\n :class=\"[ui.pageInput()]\"\n type=\"number\"\n min=\"1\"\n :max=\"pages\"\n inputmode=\"numeric\"\n details=\"hidden\"\n dense\n data-id=\"table-pagination-ranges-input\"\n @blur=\"commitPageInput()\"\n @keydown.enter=\"commitPageInput()\"\n />\n <RuiMenuSelect\n v-else-if=\"ranges.length > 0\"\n :id=\"rangesId\"\n v-model=\"currentRange\"\n :options=\"ranges\"\n :disabled=\"loading || singlePage\"\n :class-names=\"{ label: ui.select() }\"\n label=\"\"\n name=\"ranges\"\n key-attr=\"page\"\n text-attr=\"text\"\n details=\"hidden\"\n dense\n data-id=\"table-pagination-ranges\"\n />\n <span :class=\"ui.indicator()\">\n {{ indicatorText }}\n </span>\n </div>\n <div\n :class=\"ui.navigation()\"\n data-id=\"table-pagination-navigation\"\n >\n <RuiButton\n v-if=\"!mobile\"\n :size=\"dense ? 'sm' : undefined\"\n :disabled=\"!hasPrev || loading\"\n variant=\"text\"\n icon\n aria-label=\"First page\"\n data-id=\"table-pagination-first\"\n @click=\"onFirst()\"\n >\n <RuiIcon name=\"lu-chevrons-left\" />\n </RuiButton>\n <RuiButton\n :size=\"dense ? 'sm' : undefined\"\n :disabled=\"!hasPrev || loading\"\n variant=\"text\"\n icon\n aria-label=\"Previous page\"\n data-id=\"table-pagination-prev\"\n @click=\"onPrev()\"\n >\n <RuiIcon name=\"lu-chevron-left\" />\n </RuiButton>\n <RuiButton\n :size=\"dense ? 'sm' : undefined\"\n :disabled=\"!hasNext || loading\"\n variant=\"text\"\n icon\n aria-label=\"Next page\"\n data-id=\"table-pagination-next\"\n @click=\"onNext()\"\n >\n <RuiIcon name=\"lu-chevron-right\" />\n </RuiButton>\n <RuiButton\n v-if=\"!mobile\"\n :size=\"dense ? 'sm' : undefined\"\n :disabled=\"!hasNext || loading\"\n variant=\"text\"\n icon\n aria-label=\"Last page\"\n data-id=\"table-pagination-last\"\n @click=\"onLast()\"\n >\n <RuiIcon name=\"lu-chevrons-right\" />\n </RuiButton>\n </div>\n </div>\n</template>\n"],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ export declare const emptyStyles: import("tailwind-variants").TVReturnType<{
2
+ compact: {
3
+ true: {
4
+ root: string;
5
+ title: string;
6
+ };
7
+ false: {
8
+ root: string;
9
+ };
10
+ };
11
+ }, {
12
+ root: string;
13
+ title: string;
14
+ subtitle: string;
15
+ }, undefined, {
16
+ compact: {
17
+ true: {
18
+ root: string;
19
+ title: string;
20
+ };
21
+ false: {
22
+ root: string;
23
+ };
24
+ };
25
+ }, {
26
+ root: string;
27
+ title: string;
28
+ subtitle: string;
29
+ }, import("tailwind-variants").TVReturnTypeLike<{
30
+ compact: {
31
+ true: {
32
+ root: string;
33
+ title: string;
34
+ };
35
+ false: {
36
+ root: string;
37
+ };
38
+ };
39
+ }, {
40
+ root: string;
41
+ title: string;
42
+ subtitle: string;
43
+ }>>;
@@ -0,0 +1,20 @@
1
+ import { tv } from "../../utils/tv.js";
2
+ //#region src/components/tables/table-empty-state-styles.ts
3
+ var emptyStyles = tv({
4
+ slots: {
5
+ root: "flex flex-col items-center justify-center flex-1",
6
+ title: "text-body-1 font-semibold text-center text-current pb-0 mb-0",
7
+ subtitle: "text-body-2 text-center text-rui-text-secondary pb-0 mb-0"
8
+ },
9
+ variants: { compact: {
10
+ true: {
11
+ root: "gap-1 py-6",
12
+ title: "font-normal text-rui-text-secondary"
13
+ },
14
+ false: { root: "gap-3 min-h-56 my-4" }
15
+ } }
16
+ });
17
+ //#endregion
18
+ export { emptyStyles };
19
+
20
+ //# sourceMappingURL=table-empty-state-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-empty-state-styles.js","names":[],"sources":["../../../src/components/tables/table-empty-state-styles.ts"],"sourcesContent":["import { tv } from '@/utils/tv';\n\nexport const emptyStyles = tv({\n slots: {\n root: 'flex flex-col items-center justify-center flex-1',\n title: 'text-body-1 font-semibold text-center text-current pb-0 mb-0',\n subtitle: 'text-body-2 text-center text-rui-text-secondary pb-0 mb-0',\n },\n variants: {\n compact: {\n true: {\n root: 'gap-1 py-6',\n title: 'font-normal text-rui-text-secondary',\n },\n false: {\n root: 'gap-3 min-h-56 my-4',\n },\n },\n },\n});\n"],"mappings":";;AAEA,IAAa,cAAc,GAAG;CAC5B,OAAO;EACL,MAAM;EACN,OAAO;EACP,UAAU;CACZ;CACA,UAAU,EACR,SAAS;EACP,MAAM;GACJ,MAAM;GACN,OAAO;EACT;EACA,OAAO,EACL,MAAM,sBACR;CACF,EACF;AACF,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Centred and capped, like the loading and empty states beside it. Left to
3
+ * span the table, a wide one puts the reason hard left and the retry hard
4
+ * right, with the whole width between them.
5
+ */
6
+ export declare const errorStyles: import("tailwind-variants").TVReturnType<{
7
+ [key: string]: {
8
+ [key: string]: import("tailwind-variants").ClassValue | {
9
+ root?: import("tailwind-variants").ClassValue;
10
+ alert?: import("tailwind-variants").ClassValue;
11
+ };
12
+ };
13
+ } | {
14
+ [x: string]: {
15
+ [x: string]: import("tailwind-variants").ClassValue | {
16
+ root?: import("tailwind-variants").ClassValue;
17
+ alert?: import("tailwind-variants").ClassValue;
18
+ };
19
+ };
20
+ } | {}, {
21
+ root: string;
22
+ alert: string;
23
+ }, undefined, {
24
+ [key: string]: {
25
+ [key: string]: import("tailwind-variants").ClassValue | {
26
+ root?: import("tailwind-variants").ClassValue;
27
+ alert?: import("tailwind-variants").ClassValue;
28
+ };
29
+ };
30
+ } | {}, {
31
+ root: string;
32
+ alert: string;
33
+ }, import("tailwind-variants").TVReturnTypeLike<unknown, {
34
+ root: string;
35
+ alert: string;
36
+ }>>;
@@ -0,0 +1,15 @@
1
+ import { tv } from "../../utils/tv.js";
2
+ //#region src/components/tables/table-error-state-styles.ts
3
+ /**
4
+ * Centred and capped, like the loading and empty states beside it. Left to
5
+ * span the table, a wide one puts the reason hard left and the retry hard
6
+ * right, with the whole width between them.
7
+ */
8
+ var errorStyles = tv({ slots: {
9
+ root: "flex justify-center p-4",
10
+ alert: "w-full max-w-2xl"
11
+ } });
12
+ //#endregion
13
+ export { errorStyles };
14
+
15
+ //# sourceMappingURL=table-error-state-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-error-state-styles.js","names":[],"sources":["../../../src/components/tables/table-error-state-styles.ts"],"sourcesContent":["import { tv } from '@/utils/tv';\n\n/**\n * Centred and capped, like the loading and empty states beside it. Left to\n * span the table, a wide one puts the reason hard left and the retry hard\n * right, with the whole width between them.\n */\nexport const errorStyles = tv({\n slots: {\n root: 'flex justify-center p-4',\n alert: 'w-full max-w-2xl',\n },\n});\n"],"mappings":";;;;;;;AAOA,IAAa,cAAc,GAAG,EAC5B,OAAO;CACL,MAAM;CACN,OAAO;AACT,EACF,CAAC"}
@@ -0,0 +1,91 @@
1
+ export declare const tableHeadStyles: import("tailwind-variants").TVReturnType<{
2
+ position: {
3
+ default: {};
4
+ sticky: {
5
+ thead: string;
6
+ };
7
+ fixed: {
8
+ thead: string;
9
+ th: string;
10
+ };
11
+ };
12
+ dense: {
13
+ true: {
14
+ th: string;
15
+ };
16
+ false: {
17
+ th: string;
18
+ };
19
+ };
20
+ }, {
21
+ thead: string;
22
+ checkbox: string;
23
+ th: string;
24
+ columnText: string;
25
+ sortButton: string;
26
+ sortIcon: string;
27
+ sortPosition: string;
28
+ loaderRow: string;
29
+ progress: string;
30
+ progressWrapper: string;
31
+ }, undefined, {
32
+ position: {
33
+ default: {};
34
+ sticky: {
35
+ thead: string;
36
+ };
37
+ fixed: {
38
+ thead: string;
39
+ th: string;
40
+ };
41
+ };
42
+ dense: {
43
+ true: {
44
+ th: string;
45
+ };
46
+ false: {
47
+ th: string;
48
+ };
49
+ };
50
+ }, {
51
+ thead: string;
52
+ checkbox: string;
53
+ th: string;
54
+ columnText: string;
55
+ sortButton: string;
56
+ sortIcon: string;
57
+ sortPosition: string;
58
+ loaderRow: string;
59
+ progress: string;
60
+ progressWrapper: string;
61
+ }, import("tailwind-variants").TVReturnTypeLike<{
62
+ position: {
63
+ default: {};
64
+ sticky: {
65
+ thead: string;
66
+ };
67
+ fixed: {
68
+ thead: string;
69
+ th: string;
70
+ };
71
+ };
72
+ dense: {
73
+ true: {
74
+ th: string;
75
+ };
76
+ false: {
77
+ th: string;
78
+ };
79
+ };
80
+ }, {
81
+ thead: string;
82
+ checkbox: string;
83
+ th: string;
84
+ columnText: string;
85
+ sortButton: string;
86
+ sortIcon: string;
87
+ sortPosition: string;
88
+ loaderRow: string;
89
+ progress: string;
90
+ progressWrapper: string;
91
+ }>>;
@@ -0,0 +1,39 @@
1
+ import { tv } from "../../utils/tv.js";
2
+ import { NESTED_BAR } from "./data-table-styles.js";
3
+ //#region src/components/tables/table-head-styles.ts
4
+ var tableHeadStyles = tv({
5
+ slots: {
6
+ thead: "between:border-t between:border-b-0 between:border-rui-divider",
7
+ checkbox: `px-2 w-14.5 max-w-14.5 [&_label]:ml-0 bg-rui-surface-muted ${NESTED_BAR}`,
8
+ th: `[:where(&)]:px-4 bg-rui-surface-muted ${NESTED_BAR}`,
9
+ columnText: "text-rui-text-secondary font-medium text-[0.8125rem] leading-5",
10
+ sortButton: "inline-flex group/sort -mx-1.5",
11
+ sortIcon: "transition opacity-75 group-hover/sort:opacity-100 group-focus-visible/sort:opacity-100",
12
+ sortPosition: "text-[0.6875rem] leading-none font-semibold tabular-nums text-rui-text-secondary",
13
+ loaderRow: "border-none",
14
+ progress: "p-0 h-0",
15
+ progressWrapper: "h-0 -mt-1"
16
+ },
17
+ variants: {
18
+ position: {
19
+ default: {},
20
+ sticky: { thead: "top-0 z-rui-raised absolute" },
21
+ fixed: {
22
+ thead: "top-0 z-rui-raised fixed",
23
+ th: "border-b border-b-rui-divider"
24
+ }
25
+ },
26
+ dense: {
27
+ true: { th: "[:where(&)]:py-0.5 [:where(&)]:h-8" },
28
+ false: { th: "[:where(&)]:py-1 [:where(&)]:h-10" }
29
+ }
30
+ },
31
+ defaultVariants: {
32
+ position: "default",
33
+ dense: false
34
+ }
35
+ });
36
+ //#endregion
37
+ export { tableHeadStyles };
38
+
39
+ //# sourceMappingURL=table-head-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-head-styles.js","names":[],"sources":["../../../src/components/tables/table-head-styles.ts"],"sourcesContent":["import { NESTED_BAR } from '@/components/tables/data-table-styles';\nimport { tv } from '@/utils/tv';\n\nexport const tableHeadStyles = tv({\n slots: {\n thead: 'between:border-t between:border-b-0 between:border-rui-divider',\n checkbox: `px-2 w-14.5 max-w-14.5 [&_label]:ml-0 bg-rui-surface-muted ${NESTED_BAR}`,\n // tinted like the pagination bar, framing the body; opaque, so rows scroll behind a stuck header\n th: `[:where(&)]:px-4 bg-rui-surface-muted ${NESTED_BAR}`,\n // labels read as secondary to the data; the sorted column's label steps up to primary\n columnText: 'text-rui-text-secondary font-medium text-[0.8125rem] leading-5',\n // the negative margin cancels the button's own padding so the label lines up with the cells below\n sortButton: 'inline-flex group/sort -mx-1.5',\n // a resting icon marks sortable columns for keyboard and touch users, at 3:1 on a nested table's darker header\n sortIcon: 'transition opacity-75 group-hover/sort:opacity-100 group-focus-visible/sort:opacity-100',\n // tucked against the arrow, closer than the button's gap\n sortPosition: 'text-[0.6875rem] leading-none font-semibold tabular-nums text-rui-text-secondary',\n /*\n * The row is always there and only its bar comes and goes: a collapsed-border table gives even a\n * zero-height row half a pixel, so adding the row on load pushed the body down.\n */\n loaderRow: 'border-none',\n progress: 'p-0 h-0',\n progressWrapper: 'h-0 -mt-1',\n },\n variants: {\n position: {\n default: {},\n sticky: { thead: 'top-0 z-rui-raised absolute' },\n fixed: {\n thead: 'top-0 z-rui-raised fixed',\n th: 'border-b border-b-rui-divider',\n },\n },\n // a fixed height evens out rows with and without sort buttons; `:where()` lets a column's `class` win\n dense: {\n true: { th: '[:where(&)]:py-0.5 [:where(&)]:h-8' },\n false: { th: '[:where(&)]:py-1 [:where(&)]:h-10' },\n },\n },\n defaultVariants: {\n position: 'default',\n dense: false,\n },\n});\n"],"mappings":";;;AAGA,IAAa,kBAAkB,GAAG;CAChC,OAAO;EACL,OAAO;EACP,UAAU,8DAA8D;EAExE,IAAI,yCAAyC;EAE7C,YAAY;EAEZ,YAAY;EAEZ,UAAU;EAEV,cAAc;EAKd,WAAW;EACX,UAAU;EACV,iBAAiB;CACnB;CACA,UAAU;EACR,UAAU;GACR,SAAS,CAAC;GACV,QAAQ,EAAE,OAAO,8BAA8B;GAC/C,OAAO;IACL,OAAO;IACP,IAAI;GACN;EACF;EAEA,OAAO;GACL,MAAM,EAAE,IAAI,qCAAqC;GACjD,OAAO,EAAE,IAAI,oCAAoC;EACnD;CACF;CACA,iBAAiB;EACf,UAAU;EACV,OAAO;CACT;AACF,CAAC"}
@@ -0,0 +1,34 @@
1
+ export declare const loadingStyles: import("tailwind-variants").TVReturnType<{
2
+ compact: {
3
+ true: {
4
+ root: string;
5
+ };
6
+ false: {
7
+ root: string;
8
+ };
9
+ };
10
+ }, {
11
+ root: string;
12
+ }, undefined, {
13
+ compact: {
14
+ true: {
15
+ root: string;
16
+ };
17
+ false: {
18
+ root: string;
19
+ };
20
+ };
21
+ }, {
22
+ root: string;
23
+ }, import("tailwind-variants").TVReturnTypeLike<{
24
+ compact: {
25
+ true: {
26
+ root: string;
27
+ };
28
+ false: {
29
+ root: string;
30
+ };
31
+ };
32
+ }, {
33
+ root: string;
34
+ }>>;
@@ -0,0 +1,13 @@
1
+ import { tv } from "../../utils/tv.js";
2
+ //#region src/components/tables/table-loading-state-styles.ts
3
+ var loadingStyles = tv({
4
+ slots: { root: "flex items-center justify-center" },
5
+ variants: { compact: {
6
+ true: { root: "py-6" },
7
+ false: { root: "min-h-56 py-8" }
8
+ } }
9
+ });
10
+ //#endregion
11
+ export { loadingStyles };
12
+
13
+ //# sourceMappingURL=table-loading-state-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-loading-state-styles.js","names":[],"sources":["../../../src/components/tables/table-loading-state-styles.ts"],"sourcesContent":["import { tv } from '@/utils/tv';\n\nexport const loadingStyles = tv({\n slots: {\n root: 'flex items-center justify-center',\n },\n variants: {\n compact: {\n true: { root: 'py-6' },\n false: { root: 'min-h-56 py-8' },\n },\n },\n});\n"],"mappings":";;AAEA,IAAa,gBAAgB,GAAG;CAC9B,OAAO,EACL,MAAM,mCACR;CACA,UAAU,EACR,SAAS;EACP,MAAM,EAAE,MAAM,OAAO;EACrB,OAAO,EAAE,MAAM,gBAAgB;CACjC,EACF;AACF,CAAC"}
@@ -0,0 +1,82 @@
1
+ export declare const paginationStyles: import("tailwind-variants").TVReturnType<{
2
+ dense: {
3
+ true: {
4
+ select: string;
5
+ pageInput: string;
6
+ };
7
+ false: {
8
+ select: string;
9
+ pageInput: string;
10
+ };
11
+ };
12
+ mobile: {
13
+ true: {
14
+ wrapper: string;
15
+ ranges: string;
16
+ sectionLabel: string;
17
+ };
18
+ };
19
+ }, {
20
+ wrapper: string;
21
+ limit: string;
22
+ ranges: string;
23
+ pageInput: string;
24
+ sectionLabel: string;
25
+ select: string;
26
+ indicator: string;
27
+ navigation: string;
28
+ }, undefined, {
29
+ dense: {
30
+ true: {
31
+ select: string;
32
+ pageInput: string;
33
+ };
34
+ false: {
35
+ select: string;
36
+ pageInput: string;
37
+ };
38
+ };
39
+ mobile: {
40
+ true: {
41
+ wrapper: string;
42
+ ranges: string;
43
+ sectionLabel: string;
44
+ };
45
+ };
46
+ }, {
47
+ wrapper: string;
48
+ limit: string;
49
+ ranges: string;
50
+ pageInput: string;
51
+ sectionLabel: string;
52
+ select: string;
53
+ indicator: string;
54
+ navigation: string;
55
+ }, import("tailwind-variants").TVReturnTypeLike<{
56
+ dense: {
57
+ true: {
58
+ select: string;
59
+ pageInput: string;
60
+ };
61
+ false: {
62
+ select: string;
63
+ pageInput: string;
64
+ };
65
+ };
66
+ mobile: {
67
+ true: {
68
+ wrapper: string;
69
+ ranges: string;
70
+ sectionLabel: string;
71
+ };
72
+ };
73
+ }, {
74
+ wrapper: string;
75
+ limit: string;
76
+ ranges: string;
77
+ pageInput: string;
78
+ sectionLabel: string;
79
+ select: string;
80
+ indicator: string;
81
+ navigation: string;
82
+ }>>;
@@ -0,0 +1,35 @@
1
+ import { tv } from "../../utils/tv.js";
2
+ //#region src/components/tables/table-pagination-styles.ts
3
+ var paginationStyles = tv({
4
+ slots: {
5
+ wrapper: "relative flex flex-wrap items-center justify-end gap-x-4 gap-y-0",
6
+ limit: "flex items-center between:ml-2 between:mr-0 text-caption",
7
+ ranges: "flex items-center between:ml-2 between:mr-0 text-caption pr-2",
8
+ pageInput: "w-14 [&_input]:text-center [&_input]:px-1! [&_input]:text-xs! [&_input]:leading-5!",
9
+ sectionLabel: "text-rui-text-secondary whitespace-nowrap py-3",
10
+ select: "text-xs! pl-3!",
11
+ indicator: "text-rui-text text-caption whitespace-nowrap",
12
+ navigation: "flex items-center"
13
+ },
14
+ variants: {
15
+ dense: {
16
+ true: {
17
+ select: "min-h-7!",
18
+ pageInput: "[&_input]:py-1!"
19
+ },
20
+ false: {
21
+ select: "min-h-8!",
22
+ pageInput: "[&_input]:py-1.5!"
23
+ }
24
+ },
25
+ mobile: { true: {
26
+ wrapper: "flex-nowrap justify-between gap-x-2 gap-y-0",
27
+ ranges: "pr-0",
28
+ sectionLabel: "sr-only"
29
+ } }
30
+ }
31
+ });
32
+ //#endregion
33
+ export { paginationStyles };
34
+
35
+ //# sourceMappingURL=table-pagination-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-pagination-styles.js","names":[],"sources":["../../../src/components/tables/table-pagination-styles.ts"],"sourcesContent":["import { tv } from '@/utils/tv';\n\nexport const paginationStyles = tv({\n slots: {\n wrapper: 'relative flex flex-wrap items-center justify-end gap-x-4 gap-y-0',\n limit: 'flex items-center between:ml-2 between:mr-0 text-caption',\n ranges: 'flex items-center between:ml-2 between:mr-0 text-caption pr-2',\n pageInput: 'w-14 [&_input]:text-center [&_input]:px-1! [&_input]:text-xs! [&_input]:leading-5!',\n sectionLabel: 'text-rui-text-secondary whitespace-nowrap py-3',\n select: 'text-xs! pl-3!',\n indicator: 'text-rui-text text-caption whitespace-nowrap',\n navigation: 'flex items-center',\n },\n variants: {\n // the selects match the icon buttons, 28px with `size=\"sm\"` and 32px without\n dense: {\n true: {\n select: 'min-h-7!',\n pageInput: '[&_input]:py-1!',\n },\n false: {\n select: 'min-h-8!',\n pageInput: '[&_input]:py-1.5!',\n },\n },\n mobile: {\n true: {\n wrapper: 'flex-nowrap justify-between gap-x-2 gap-y-0',\n ranges: 'pr-0',\n // sr-only rather than hidden: a display:none label names nothing\n sectionLabel: 'sr-only',\n },\n },\n },\n});\n"],"mappings":";;AAEA,IAAa,mBAAmB,GAAG;CACjC,OAAO;EACL,SAAS;EACT,OAAO;EACP,QAAQ;EACR,WAAW;EACX,cAAc;EACd,QAAQ;EACR,WAAW;EACX,YAAY;CACd;CACA,UAAU;EAER,OAAO;GACL,MAAM;IACJ,QAAQ;IACR,WAAW;GACb;GACA,OAAO;IACL,QAAQ;IACR,WAAW;GACb;EACF;EACA,QAAQ,EACN,MAAM;GACJ,SAAS;GACT,QAAQ;GAER,cAAc;EAChB,EACF;CACF;AACF,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Every rule that lands on a `th` or a `td` wraps the `&` in `:where()`, which
3
+ * compiles to `:where(.generated-class) th` and so carries the specificity of
4
+ * the element alone. A consumer writing `class="p-0"` on one cell is a single
5
+ * class, which outranks that, so a one-off override needs no `!important` the
6
+ * way a plain `[&_th]:` rule would.
7
+ */
8
+ export declare const tableStyles: import("tailwind-variants").TVReturnType<{
9
+ variant: {
10
+ default: {};
11
+ outlined: {
12
+ root: string;
13
+ };
14
+ };
15
+ dense: {
16
+ true: {
17
+ table: string;
18
+ };
19
+ false: {
20
+ table: string;
21
+ };
22
+ };
23
+ }, {
24
+ root: string;
25
+ table: string[];
26
+ }, undefined, {
27
+ variant: {
28
+ default: {};
29
+ outlined: {
30
+ root: string;
31
+ };
32
+ };
33
+ dense: {
34
+ true: {
35
+ table: string;
36
+ };
37
+ false: {
38
+ table: string;
39
+ };
40
+ };
41
+ }, {
42
+ root: string;
43
+ table: string[];
44
+ }, import("tailwind-variants").TVReturnTypeLike<{
45
+ variant: {
46
+ default: {};
47
+ outlined: {
48
+ root: string;
49
+ };
50
+ };
51
+ dense: {
52
+ true: {
53
+ table: string;
54
+ };
55
+ false: {
56
+ table: string;
57
+ };
58
+ };
59
+ }, {
60
+ root: string;
61
+ table: string[];
62
+ }>>;
@@ -0,0 +1,37 @@
1
+ import { tv } from "../../utils/tv.js";
2
+ //#region src/components/tables/table-styles.ts
3
+ /**
4
+ * Every rule that lands on a `th` or a `td` wraps the `&` in `:where()`, which
5
+ * compiles to `:where(.generated-class) th` and so carries the specificity of
6
+ * the element alone. A consumer writing `class="p-0"` on one cell is a single
7
+ * class, which outranks that, so a one-off override needs no `!important` the
8
+ * way a plain `[&_th]:` rule would.
9
+ */
10
+ var tableStyles = tv({
11
+ slots: {
12
+ root: "w-full overflow-y-auto",
13
+ table: [
14
+ "w-full text-rui-text",
15
+ "[:where(&)_thead]:border-b [:where(&)_thead]:border-rui-divider",
16
+ "[:where(&)_thead_th]:font-medium [:where(&)_thead_th]:text-rui-text-secondary [:where(&)_thead_th]:text-start",
17
+ "[:where(&)_thead_th]:text-[0.8125rem] [:where(&)_thead_th]:leading-5",
18
+ "[:where(&)_th]:px-4 [:where(&)_td]:px-4 [:where(&)_td]:text-body-2",
19
+ "[:where(&)_tbody>tr+tr]:border-t [:where(&)_tbody>tr+tr]:border-rui-divider",
20
+ "[:where(&)_tbody_td]:border-b-0"
21
+ ]
22
+ },
23
+ variants: {
24
+ variant: {
25
+ default: {},
26
+ outlined: { root: "border rounded-rui-panel border-rui-divider" }
27
+ },
28
+ dense: {
29
+ true: { table: "[:where(&)_th]:py-0.5 [:where(&)_th]:h-8 [:where(&)_td]:py-1 [:where(&)_td]:h-9" },
30
+ false: { table: "[:where(&)_th]:py-1 [:where(&)_th]:h-10 [:where(&)_td]:py-1 [:where(&)_td]:h-11" }
31
+ }
32
+ }
33
+ });
34
+ //#endregion
35
+ export { tableStyles };
36
+
37
+ //# sourceMappingURL=table-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table-styles.js","names":[],"sources":["../../../src/components/tables/table-styles.ts"],"sourcesContent":["import { tv } from '@/utils/tv';\n\n/**\n * Every rule that lands on a `th` or a `td` wraps the `&` in `:where()`, which\n * compiles to `:where(.generated-class) th` and so carries the specificity of\n * the element alone. A consumer writing `class=\"p-0\"` on one cell is a single\n * class, which outranks that, so a one-off override needs no `!important` the\n * way a plain `[&_th]:` rule would.\n */\nexport const tableStyles = tv({\n slots: {\n root: 'w-full overflow-y-auto',\n // matches RuiDataTable: text color, 13px header labels, body text, cell padding and row dividers\n table: [\n 'w-full text-rui-text',\n '[:where(&)_thead]:border-b [:where(&)_thead]:border-rui-divider',\n '[:where(&)_thead_th]:font-medium [:where(&)_thead_th]:text-rui-text-secondary [:where(&)_thead_th]:text-start',\n '[:where(&)_thead_th]:text-[0.8125rem] [:where(&)_thead_th]:leading-5',\n '[:where(&)_th]:px-4 [:where(&)_td]:px-4 [:where(&)_td]:text-body-2',\n '[:where(&)_tbody>tr+tr]:border-t [:where(&)_tbody>tr+tr]:border-rui-divider',\n '[:where(&)_tbody_td]:border-b-0',\n ],\n },\n variants: {\n variant: {\n default: {},\n outlined: {\n root: 'border rounded-rui-panel border-rui-divider',\n },\n },\n // the data table's heights: a 40px header over 44px rows, or 32px over 36px when dense\n dense: {\n true: {\n table: '[:where(&)_th]:py-0.5 [:where(&)_th]:h-8 [:where(&)_td]:py-1 [:where(&)_td]:h-9',\n },\n false: {\n table: '[:where(&)_th]:py-1 [:where(&)_th]:h-10 [:where(&)_td]:py-1 [:where(&)_td]:h-11',\n },\n },\n },\n});\n"],"mappings":";;;;;;;;;AASA,IAAa,cAAc,GAAG;CAC5B,OAAO;EACL,MAAM;EAEN,OAAO;GACL;GACA;GACA;GACA;GACA;GACA;GACA;EACF;CACF;CACA,UAAU;EACR,SAAS;GACP,SAAS,CAAC;GACV,UAAU,EACR,MAAM,8CACR;EACF;EAEA,OAAO;GACL,MAAM,EACJ,OAAO,kFACT;GACA,OAAO,EACL,OAAO,kFACT;EACF;CACF;AACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RuiTab.js","names":["_sfc_main"],"sources":["../../../../src/components/tabs/tab/RuiTab.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RouteLocationRaw } from 'vue-router';\nimport type { ContextColorsType } from '@/consts/colors';\nimport type { VueClassValue } from '@/types/class-value';\nimport { TabAlignment, TabIndicatorPosition, TabLayout, TabVariant } from '@/components/tabs/tab-props';\nimport { useTabLink } from '@/components/tabs/tab/use-tab-link';\nimport { cn, tv } from '@/utils/tv';\n\nexport interface RuiTabClassNames {\n root?: VueClassValue;\n active?: VueClassValue;\n}\n\nexport interface Props {\n color?: ContextColorsType;\n disabled?: boolean;\n grow?: boolean;\n value?: number | string;\n active?: boolean;\n classNames?: RuiTabClassNames;\n link?: boolean;\n target?: string;\n to?: RouteLocationRaw;\n exact?: boolean;\n vertical?: boolean;\n align?: TabAlignment;\n indicatorPosition?: TabIndicatorPosition;\n variant?: TabVariant;\n}\n\ndefineOptions({\n name: 'RuiTab',\n inheritAttrs: false,\n});\n\nconst {\n color,\n disabled = false,\n grow = false,\n value = useId(),\n active = false,\n classNames,\n link = false,\n to = '',\n target = '_self',\n exact = false,\n vertical = false,\n align = TabAlignment.center,\n indicatorPosition = TabIndicatorPosition.end,\n variant = TabVariant.underline,\n} = defineProps<Props>();\n\nconst emit = defineEmits<{\n click: [value: string | number];\n}>();\n\nconst slots = defineSlots<{\n default?: (props?: object) => any;\n prepend?: (props?: object) => any;\n append?: (props?: object) => any;\n}>();\n\n/**\n * A tab is a plain button or link: RuiTabs draws the active indicator, so a tab\n * only sets its label color, and its hover fill. On the underline bar the fill\n * hugs the label rather than the 40px cell, so the bar stays calm.\n */\nconst tab = tv({\n slots: {\n root: [\n 'group relative inline-flex shrink-0 items-center whitespace-nowrap rounded-rui-control',\n 'text-sm font-medium text-rui-text-secondary transition-colors duration-150 [--rui-icon-size:1rem]',\n // inset, since the scrolling bar would clip a ring drawn outside the tab\n 'outline-hidden focus-visible:focus-ring focus-visible:-outline-offset-2',\n ].join(' '),\n content: 'inline-flex items-center gap-2 rounded-rui-control transition-colors duration-150',\n },\n variants: {\n variant: {\n [TabVariant.underline]: { root: 'px-1', content: 'h-8 px-2' },\n // above the sliding pill, which RuiTabs renders behind the tabs\n [TabVariant.segmented]: { root: 'z-1 h-8 px-3' },\n },\n layout: {\n [TabLayout.horizontal]: {},\n [TabLayout.vertical]: { root: 'w-full' },\n },\n align: {\n start: { root: 'justify-start text-left rtl:justify-end rtl:text-right' },\n center: { root: 'justify-center text-center' },\n end: { root: 'justify-end text-right rtl:justify-start rtl:text-left' },\n },\n grow: {\n true: { root: 'grow' },\n },\n active: {\n true: { root: 'text-rui-text' },\n false: {},\n },\n disabled: {\n true: { root: 'cursor-not-allowed text-rui-text-disabled' },\n false: { root: 'cursor-pointer hover:text-rui-text' },\n },\n },\n compoundVariants: [\n { variant: TabVariant.underline, layout: TabLayout.horizontal, class: { root: 'h-10' } },\n { variant: TabVariant.underline, layout: TabLayout.horizontal, disabled: false, class: { content: 'group-hover:bg-rui-hover' } },\n // a vertical list fills the whole row on hover and keeps that fill on the selected row\n { variant: TabVariant.underline, layout: TabLayout.vertical, class: { root: 'min-h-9 px-3', content: 'h-auto px-0 py-2' } },\n { variant: TabVariant.underline, layout: TabLayout.vertical, disabled: false, class: { root: 'hover:bg-rui-hover' } },\n { variant: TabVariant.underline, layout: TabLayout.vertical, active: true, class: { root: 'bg-rui-hover' } },\n ],\n defaultVariants: {\n variant: TabVariant.underline,\n layout: TabLayout.horizontal,\n align: 'center',\n active: false,\n disabled: false,\n },\n});\n\nconst { isRouteActive, href: linkHref, navigate, isLink } = useTabLink({\n link: () => link,\n to: () => to,\n exact: () => exact,\n});\n\nconst layout = computed<TabLayout>(() => vertical ? TabLayout.vertical : TabLayout.horizontal);\nconst isSelf = computed<boolean>(() => target === '_self');\nconst isEffectivelyActive = computed<boolean>(() => active || get(isRouteActive));\nconst ui = computed<ReturnType<typeof tab>>(() => tab({\n variant,\n layout: get(layout),\n align,\n grow,\n disabled,\n active: get(isEffectivelyActive),\n}));\n\nfunction onClick(event: MouseEvent): void {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n emit('click', value);\n if (navigate && get(isSelf))\n navigate(event);\n}\n</script>\n\n<template>\n <component\n :is=\"isLink ? 'a' : 'button'\"\n :type=\"isLink ? undefined : 'button'\"\n :class=\"[\n ui.root({ class: cn(classNames?.root) }),\n isEffectivelyActive && classNames?.active,\n ]\"\n :data-active-tab=\"isEffectivelyActive || undefined\"\n :data-align=\"align\"\n :data-indicator-position=\"indicatorPosition\"\n :data-vertical=\"vertical || undefined\"\n :data-variant=\"variant\"\n :data-color=\"isEffectivelyActive ? color : undefined\"\n :disabled=\"isLink ? undefined : disabled\"\n :aria-disabled=\"isLink && disabled ? 'true' : undefined\"\n :href=\"isLink && !isSelf && !disabled ? linkHref : undefined\"\n :target=\"isLink ? target : undefined\"\n role=\"tab\"\n :aria-selected=\"isEffectivelyActive\"\n :tabindex=\"isEffectivelyActive && !disabled ? 0 : -1\"\n v-bind=\"$attrs\"\n @click=\"onClick($event)\"\n >\n <span :class=\"ui.content()\">\n <slot\n v-if=\"slots.prepend\"\n name=\"prepend\"\n />\n <slot />\n <slot\n v-if=\"slots.append\"\n name=\"append\"\n />\n </span>\n </component>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"RuiTab.js","names":["_sfc_main"],"sources":["../../../../src/components/tabs/tab/RuiTab.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { RouteLocationRaw } from 'vue-router';\nimport type { ContextColorsType } from '@/consts/colors';\nimport type { VueClassValue } from '@/types/class-value';\nimport { TabAlignment, TabIndicatorPosition, TabLayout, TabVariant } from '@/components/tabs/tab-props';\nimport { useTabLink } from '@/components/tabs/tab/use-tab-link';\nimport { cn } from '@/utils/tv';\nimport { tabStyles } from './tab-styles';\n\nexport interface RuiTabClassNames {\n root?: VueClassValue;\n active?: VueClassValue;\n}\n\nexport interface Props {\n color?: ContextColorsType;\n disabled?: boolean;\n grow?: boolean;\n value?: number | string;\n active?: boolean;\n classNames?: RuiTabClassNames;\n link?: boolean;\n target?: string;\n to?: RouteLocationRaw;\n exact?: boolean;\n vertical?: boolean;\n align?: TabAlignment;\n indicatorPosition?: TabIndicatorPosition;\n variant?: TabVariant;\n}\n\ndefineOptions({\n name: 'RuiTab',\n inheritAttrs: false,\n});\n\nconst {\n color,\n disabled = false,\n grow = false,\n value = useId(),\n active = false,\n classNames,\n link = false,\n to = '',\n target = '_self',\n exact = false,\n vertical = false,\n align = TabAlignment.center,\n indicatorPosition = TabIndicatorPosition.end,\n variant = TabVariant.underline,\n} = defineProps<Props>();\n\nconst emit = defineEmits<{\n click: [value: string | number];\n}>();\n\nconst slots = defineSlots<{\n default?: (props?: object) => any;\n prepend?: (props?: object) => any;\n append?: (props?: object) => any;\n}>();\n\nconst { isRouteActive, href: linkHref, navigate, isLink } = useTabLink({\n link: () => link,\n to: () => to,\n exact: () => exact,\n});\n\nconst layout = computed<TabLayout>(() => vertical ? TabLayout.vertical : TabLayout.horizontal);\nconst isSelf = computed<boolean>(() => target === '_self');\nconst isEffectivelyActive = computed<boolean>(() => active || get(isRouteActive));\nconst ui = computed<ReturnType<typeof tabStyles>>(() => tabStyles({\n variant,\n layout: get(layout),\n align,\n grow,\n disabled,\n active: get(isEffectivelyActive),\n}));\n\nfunction onClick(event: MouseEvent): void {\n if (disabled) {\n event.preventDefault();\n return;\n }\n\n emit('click', value);\n if (navigate && get(isSelf))\n navigate(event);\n}\n</script>\n\n<template>\n <component\n :is=\"isLink ? 'a' : 'button'\"\n :type=\"isLink ? undefined : 'button'\"\n :class=\"[\n ui.root({ class: cn(classNames?.root) }),\n isEffectivelyActive && classNames?.active,\n ]\"\n :data-active-tab=\"isEffectivelyActive || undefined\"\n :data-align=\"align\"\n :data-indicator-position=\"indicatorPosition\"\n :data-vertical=\"vertical || undefined\"\n :data-variant=\"variant\"\n :data-color=\"isEffectivelyActive ? color : undefined\"\n :disabled=\"isLink ? undefined : disabled\"\n :aria-disabled=\"isLink && disabled ? 'true' : undefined\"\n :href=\"isLink && !isSelf && !disabled ? linkHref : undefined\"\n :target=\"isLink ? target : undefined\"\n role=\"tab\"\n :aria-selected=\"isEffectivelyActive\"\n :tabindex=\"isEffectivelyActive && !disabled ? 0 : -1\"\n v-bind=\"$attrs\"\n @click=\"onClick($event)\"\n >\n <span :class=\"ui.content()\">\n <slot\n v-if=\"slots.prepend\"\n name=\"prepend\"\n />\n <slot />\n <slot\n v-if=\"slots.append\"\n name=\"append\"\n />\n </span>\n </component>\n</template>\n"],"mappings":""}