@rotki/ui-library 2.27.0 → 3.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/README.md +36 -15
  2. package/dist/components/accordions/accordion/RuiAccordion.js.map +1 -1
  3. package/dist/components/accordions/accordion/RuiAccordion.vue.d.ts +0 -4
  4. package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js +6 -7
  5. package/dist/components/accordions/accordion/RuiAccordion.vue_vue_type_script_setup_true_lang.js.map +1 -1
  6. package/dist/components/accordions/accordions/RuiAccordions.js.map +1 -1
  7. package/dist/components/accordions/accordions/RuiAccordions.vue_vue_type_script_setup_true_lang.js +15 -2
  8. package/dist/components/accordions/accordions/RuiAccordions.vue_vue_type_script_setup_true_lang.js.map +1 -1
  9. package/dist/components/alerts/RuiAlert.js.map +1 -1
  10. package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js +43 -212
  11. package/dist/components/alerts/RuiAlert.vue_vue_type_script_setup_true_lang.js.map +1 -1
  12. package/dist/components/avatars/RuiAvatar.js.map +1 -1
  13. package/dist/components/avatars/RuiAvatar.vue_vue_type_script_setup_true_lang.js +21 -31
  14. package/dist/components/avatars/RuiAvatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  15. package/dist/components/avatars/RuiAvatarGroup.js.map +1 -1
  16. package/dist/components/avatars/RuiAvatarGroup.vue.d.ts +6 -0
  17. package/dist/components/avatars/RuiAvatarGroup.vue_vue_type_script_setup_true_lang.js +16 -12
  18. package/dist/components/avatars/RuiAvatarGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  19. package/dist/components/avatars/avatar-props.d.ts +16 -3
  20. package/dist/components/avatars/avatar-props.js +42 -5
  21. package/dist/components/avatars/avatar-props.js.map +1 -1
  22. package/dist/components/buttons/button/RuiButton.js.map +1 -1
  23. package/dist/components/buttons/button/RuiButton.vue.d.ts +0 -1
  24. package/dist/components/buttons/button/RuiButton.vue_vue_type_script_setup_true_lang.js +29 -16
  25. package/dist/components/buttons/button/RuiButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  26. package/dist/components/buttons/button/button-props.d.ts +0 -2
  27. package/dist/components/buttons/button/button-props.js +5 -5
  28. package/dist/components/buttons/button/button-props.js.map +1 -1
  29. package/dist/components/buttons/button/button-styles.d.ts +4 -1
  30. package/dist/components/buttons/button/button-styles.js +127 -54
  31. package/dist/components/buttons/button/button-styles.js.map +1 -1
  32. package/dist/components/buttons/button-group/RuiButtonGroup.js.map +1 -1
  33. package/dist/components/buttons/button-group/RuiButtonGroup.vue.d.ts +8 -2
  34. package/dist/components/buttons/button-group/RuiButtonGroup.vue_vue_type_script_setup_true_lang.js +65 -96
  35. package/dist/components/buttons/button-group/RuiButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  36. package/dist/components/buttons/button-group/button-group-context.d.ts +28 -0
  37. package/dist/components/buttons/button-group/button-group-context.js +22 -0
  38. package/dist/components/buttons/button-group/button-group-context.js.map +1 -0
  39. package/dist/components/calendar/RuiCalendar.js.map +1 -1
  40. package/dist/components/calendar/RuiCalendar.vue_vue_type_script_setup_true_lang.js +5 -2
  41. package/dist/components/calendar/RuiCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  42. package/dist/components/calendar/RuiCalendarGrid.js.map +1 -1
  43. package/dist/components/calendar/RuiCalendarGrid.vue_vue_type_script_setup_true_lang.js +11 -7
  44. package/dist/components/calendar/RuiCalendarGrid.vue_vue_type_script_setup_true_lang.js.map +1 -1
  45. package/dist/components/calendar/RuiCalendarHeader.js.map +1 -1
  46. package/dist/components/calendar/RuiCalendarHeader.vue_vue_type_script_setup_true_lang.js +20 -21
  47. package/dist/components/calendar/RuiCalendarHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  48. package/dist/components/calendar/RuiCalendarMenu.js.map +1 -1
  49. package/dist/components/calendar/RuiCalendarMenu.vue_vue_type_script_setup_true_lang.js +16 -20
  50. package/dist/components/calendar/RuiCalendarMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  51. package/dist/components/cards/RuiCard.js.map +1 -1
  52. package/dist/components/cards/RuiCard.vue.d.ts +0 -3
  53. package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js +31 -19
  54. package/dist/components/cards/RuiCard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  55. package/dist/components/cards/RuiCardHeader.js.map +1 -1
  56. package/dist/components/cards/RuiCardHeader.vue_vue_type_script_setup_true_lang.js +13 -25
  57. package/dist/components/cards/RuiCardHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  58. package/dist/components/chips/RuiChip.js.map +1 -1
  59. package/dist/components/chips/RuiChip.vue.d.ts +5 -2
  60. package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js +127 -78
  61. package/dist/components/chips/RuiChip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  62. package/dist/components/chips/chip-props.d.ts +2 -0
  63. package/dist/components/chips/chip-props.js +5 -3
  64. package/dist/components/chips/chip-props.js.map +1 -1
  65. package/dist/components/color-picker/RuiColorBoard.js.map +1 -1
  66. package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js +4 -4
  67. package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  68. package/dist/components/color-picker/RuiColorHue.js.map +1 -1
  69. package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js +1 -1
  70. package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js.map +1 -1
  71. package/dist/components/color-picker/RuiColorInput.js.map +1 -1
  72. package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js +38 -27
  73. package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  74. package/dist/components/color-picker/RuiColorPicker.js.map +1 -1
  75. package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js +1 -1
  76. package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  77. package/dist/components/date-time-picker/RuiDateTimePicker.js.map +1 -1
  78. package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +3 -2
  79. package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js +48 -47
  80. package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  81. package/dist/components/date-time-picker/RuiDateTimePickerMenu.js.map +1 -1
  82. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js +2 -2
  83. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  84. package/dist/components/date-time-picker/RuiTimezoneSelect.js.map +1 -1
  85. package/dist/components/date-time-picker/RuiTimezoneSelect.vue.d.ts +4 -3
  86. package/dist/components/date-time-picker/RuiTimezoneSelect.vue_vue_type_script_setup_true_lang.js +3 -3
  87. package/dist/components/date-time-picker/RuiTimezoneSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  88. package/dist/components/date-time-picker/date-time-picker-styles.d.ts +128 -219
  89. package/dist/components/date-time-picker/date-time-picker-styles.js +1 -2
  90. package/dist/components/date-time-picker/date-time-picker-styles.js.map +1 -1
  91. package/dist/components/forms/auto-complete/RuiAutoComplete.js.map +1 -1
  92. package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +1 -68
  93. package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js +184 -179
  94. package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  95. package/dist/components/forms/auto-complete/RuiAutoCompleteOption.js.map +1 -1
  96. package/dist/components/forms/auto-complete/RuiAutoCompleteOption.vue_vue_type_script_setup_true_lang.js +1 -0
  97. package/dist/components/forms/auto-complete/RuiAutoCompleteOption.vue_vue_type_script_setup_true_lang.js.map +1 -1
  98. package/dist/components/forms/auto-complete/RuiAutoCompleteOptionList.js.map +1 -1
  99. package/dist/components/forms/auto-complete/RuiAutoCompleteOptionList.vue.d.ts +2 -0
  100. package/dist/components/forms/auto-complete/RuiAutoCompleteOptionList.vue_vue_type_script_setup_true_lang.js +8 -3
  101. package/dist/components/forms/auto-complete/RuiAutoCompleteOptionList.vue_vue_type_script_setup_true_lang.js.map +1 -1
  102. package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.js.map +1 -1
  103. package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.vue.d.ts +4 -0
  104. package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.vue_vue_type_script_setup_true_lang.js +24 -10
  105. package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.vue_vue_type_script_setup_true_lang.js.map +1 -1
  106. package/dist/components/forms/auto-complete/auto-complete-props.d.ts +66 -0
  107. package/dist/components/forms/auto-complete/auto-complete-styles.d.ts +128 -218
  108. package/dist/components/forms/auto-complete/auto-complete-styles.js +4 -2
  109. package/dist/components/forms/auto-complete/auto-complete-styles.js.map +1 -1
  110. package/dist/components/forms/category-picker/RuiCategoryPicker.js.map +1 -1
  111. package/dist/components/forms/category-picker/RuiCategoryPicker.vue.d.ts +3 -6
  112. package/dist/components/forms/category-picker/RuiCategoryPicker.vue_vue_type_script_setup_true_lang.js +105 -105
  113. package/dist/components/forms/category-picker/RuiCategoryPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  114. package/dist/components/forms/category-picker/category-picker-styles.d.ts +83 -232
  115. package/dist/components/forms/category-picker/category-picker-styles.js +20 -26
  116. package/dist/components/forms/category-picker/category-picker-styles.js.map +1 -1
  117. package/dist/components/forms/check-control-styles.d.ts +61 -2
  118. package/dist/components/forms/check-control-styles.js +53 -46
  119. package/dist/components/forms/check-control-styles.js.map +1 -1
  120. package/dist/components/forms/checkbox/RuiCheckbox.js.map +1 -1
  121. package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js +31 -18
  122. package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  123. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.js.map +1 -1
  124. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.vue_vue_type_script_setup_true_lang.js +3 -3
  125. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  126. package/dist/components/forms/field-defaults/RuiFieldDefaults.js +7 -0
  127. package/dist/components/forms/field-defaults/RuiFieldDefaults.js.map +1 -0
  128. package/dist/components/forms/field-defaults/RuiFieldDefaults.vue.d.ts +16 -0
  129. package/dist/components/forms/field-defaults/RuiFieldDefaults.vue_vue_type_script_setup_true_lang.js +18 -0
  130. package/dist/components/forms/field-defaults/RuiFieldDefaults.vue_vue_type_script_setup_true_lang.js.map +1 -0
  131. package/dist/components/forms/field-label/RuiFieldLabel.js +7 -0
  132. package/dist/components/forms/field-label/RuiFieldLabel.js.map +1 -0
  133. package/dist/components/forms/field-label/RuiFieldLabel.vue.d.ts +17 -0
  134. package/dist/components/forms/field-label/RuiFieldLabel.vue_vue_type_script_setup_true_lang.js +57 -0
  135. package/dist/components/forms/field-label/RuiFieldLabel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  136. package/dist/components/forms/file-upload/RuiFileUpload.js.map +1 -1
  137. package/dist/components/forms/file-upload/RuiFileUpload.vue.d.ts +1 -1
  138. package/dist/components/forms/file-upload/RuiFileUpload.vue_vue_type_script_setup_true_lang.js +39 -20
  139. package/dist/components/forms/file-upload/RuiFileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -1
  140. package/dist/components/forms/radio-button/radio/RuiRadio.js.map +1 -1
  141. package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js +13 -14
  142. package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  143. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.js.map +1 -1
  144. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js +3 -3
  145. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  146. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.js.map +1 -1
  147. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js +6 -6
  148. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  149. package/dist/components/forms/select/RuiMenuSelect.js.map +1 -1
  150. package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +3 -12
  151. package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js +50 -45
  152. package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  153. package/dist/components/forms/select/RuiSimpleSelect.js.map +1 -1
  154. package/dist/components/forms/select/RuiSimpleSelect.vue.d.ts +0 -1
  155. package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js +13 -20
  156. package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  157. package/dist/components/forms/select/menu-select-styles.d.ts +99 -221
  158. package/dist/components/forms/select/menu-select-styles.js +1 -4
  159. package/dist/components/forms/select/menu-select-styles.js.map +1 -1
  160. package/dist/components/forms/slider/RuiSlider.js.map +1 -1
  161. package/dist/components/forms/slider/RuiSlider.vue.d.ts +0 -4
  162. package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js +113 -90
  163. package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  164. package/dist/components/forms/slider/slider-styles.d.ts +40 -40
  165. package/dist/components/forms/slider/slider-styles.js +67 -109
  166. package/dist/components/forms/slider/slider-styles.js.map +1 -1
  167. package/dist/components/forms/switch/RuiSwitch.js.map +1 -1
  168. package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js +32 -44
  169. package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  170. package/dist/components/forms/text-area/RuiTextArea.js.map +1 -1
  171. package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +3 -2
  172. package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js +120 -99
  173. package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  174. package/dist/components/forms/text-area/text-area-styles.d.ts +41 -115
  175. package/dist/components/forms/text-area/text-area-styles.js +34 -194
  176. package/dist/components/forms/text-area/text-area-styles.js.map +1 -1
  177. package/dist/components/forms/text-field/RuiTextField.js.map +1 -1
  178. package/dist/components/forms/text-field/RuiTextField.vue.d.ts +3 -2
  179. package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js +93 -90
  180. package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  181. package/dist/components/forms/text-field/text-field-styles.d.ts +37 -145
  182. package/dist/components/forms/text-field/text-field-styles.js +24 -267
  183. package/dist/components/forms/text-field/text-field-styles.js.map +1 -1
  184. package/dist/components/forms/text-input-styles.d.ts +98 -229
  185. package/dist/components/forms/text-input-styles.js +63 -193
  186. package/dist/components/forms/text-input-styles.js.map +1 -1
  187. package/dist/components/helpers/RuiFormTextDetail.js.map +1 -1
  188. package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js +2 -2
  189. package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js.map +1 -1
  190. package/dist/components/icons/RuiIcon.js.map +1 -1
  191. package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js +6 -3
  192. package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
  193. package/dist/components/index.d.ts +5 -3
  194. package/dist/components/index.js +4 -3
  195. package/dist/components/loaders/RuiSkeletonBase.js.map +1 -1
  196. package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js +6 -5
  197. package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js.map +1 -1
  198. package/dist/components/loaders/RuiSkeletonLoader.js.map +1 -1
  199. package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js +8 -8
  200. package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  201. package/dist/components/logos/RuiLogo.js.map +1 -1
  202. package/dist/components/logos/RuiLogo.vue_vue_type_script_setup_true_lang.js +1 -1
  203. package/dist/components/logos/RuiLogo.vue_vue_type_script_setup_true_lang.js.map +1 -1
  204. package/dist/components/overlays/badge/RuiBadge.js.map +1 -1
  205. package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js +75 -47
  206. package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js.map +1 -1
  207. package/dist/components/overlays/dialog/RuiDialog.js.map +1 -1
  208. package/dist/components/overlays/dialog/RuiDialog.vue.d.ts +3 -2
  209. package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js +16 -12
  210. package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  211. package/dist/components/overlays/menu/RuiMenu.js.map +1 -1
  212. package/dist/components/overlays/menu/RuiMenu.vue.d.ts +9 -7
  213. package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js +16 -12
  214. package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  215. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.js.map +1 -1
  216. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.d.ts +6 -2
  217. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js +40 -16
  218. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  219. package/dist/components/overlays/notification/RuiNotification.js.map +1 -1
  220. package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js +4 -4
  221. package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js.map +1 -1
  222. package/dist/components/overlays/tooltip/RuiTooltip.js.map +1 -1
  223. package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +0 -5
  224. package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js +16 -10
  225. package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  226. package/dist/components/overlays/tooltip/tooltip-styles.d.ts +5 -12
  227. package/dist/components/overlays/tooltip/tooltip-styles.js +11 -18
  228. package/dist/components/overlays/tooltip/tooltip-styles.js.map +1 -1
  229. package/dist/components/progress/RuiProgress.js.map +1 -1
  230. package/dist/components/progress/RuiProgress.vue.d.ts +4 -0
  231. package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js +72 -46
  232. package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js.map +1 -1
  233. package/dist/components/steppers/RuiFooterStepper.js.map +1 -1
  234. package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js +27 -28
  235. package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  236. package/dist/components/steppers/RuiStepper.js.map +1 -1
  237. package/dist/components/steppers/RuiStepper.vue.d.ts +0 -4
  238. package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js +25 -23
  239. package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  240. package/dist/components/steppers/RuiStepperIcon.js.map +1 -1
  241. package/dist/components/steppers/RuiStepperIcon.vue.d.ts +2 -0
  242. package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js +47 -47
  243. package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
  244. package/dist/components/tables/RuiDataTable.js.map +1 -1
  245. package/dist/components/tables/RuiDataTable.vue.d.ts +3 -6
  246. package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js +65 -47
  247. package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  248. package/dist/components/tables/RuiExpandButton.js.map +1 -1
  249. package/dist/components/tables/RuiExpandButton.vue_vue_type_script_setup_true_lang.js +1 -0
  250. package/dist/components/tables/RuiExpandButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  251. package/dist/components/tables/RuiTable.js.map +1 -1
  252. package/dist/components/tables/RuiTable.vue_vue_type_script_setup_true_lang.js +8 -5
  253. package/dist/components/tables/RuiTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  254. package/dist/components/tables/RuiTableEmptyState.js.map +1 -1
  255. package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js +1 -1
  256. package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -1
  257. package/dist/components/tables/RuiTableHead.js.map +1 -1
  258. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js +88 -66
  259. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js.map +1 -1
  260. package/dist/components/tables/RuiTablePagination.js.map +1 -1
  261. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js +8 -11
  262. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  263. package/dist/components/tables/data-table/RuiDataTableExpandedRow.js.map +1 -1
  264. package/dist/components/tables/data-table/RuiDataTableExpandedRow.vue_vue_type_script_setup_true_lang.js +3 -3
  265. package/dist/components/tables/data-table/RuiDataTableExpandedRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  266. package/dist/components/tables/data-table/RuiDataTableGroupRow.js.map +1 -1
  267. package/dist/components/tables/data-table/RuiDataTableGroupRow.vue_vue_type_script_setup_true_lang.js +7 -3
  268. package/dist/components/tables/data-table/RuiDataTableGroupRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  269. package/dist/components/tables/data-table/RuiDataTableMobileSort.js.map +1 -1
  270. package/dist/components/tables/data-table/RuiDataTableMobileSort.vue_vue_type_script_setup_true_lang.js +1 -1
  271. package/dist/components/tables/data-table/RuiDataTableMobileSort.vue_vue_type_script_setup_true_lang.js.map +1 -1
  272. package/dist/components/tables/data-table/RuiDataTableRow.js.map +1 -1
  273. package/dist/components/tables/data-table/RuiDataTableRow.vue_vue_type_script_setup_true_lang.js +58 -19
  274. package/dist/components/tables/data-table/RuiDataTableRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  275. package/dist/components/tables/data-table-styles.d.ts +24 -0
  276. package/dist/components/tables/data-table-styles.js +35 -20
  277. package/dist/components/tables/data-table-styles.js.map +1 -1
  278. package/dist/components/tables/table_no_data_placeholder.js +1 -1
  279. package/dist/components/tables/table_no_data_placeholder.js.map +1 -1
  280. package/dist/components/tables/table_no_data_placeholder_dark.js +1 -1
  281. package/dist/components/tables/table_no_data_placeholder_dark.js.map +1 -1
  282. package/dist/components/tabs/tab/RuiTab.js.map +1 -1
  283. package/dist/components/tabs/tab/RuiTab.vue.d.ts +2 -5
  284. package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js +94 -68
  285. package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js.map +1 -1
  286. package/dist/components/tabs/tab-item/RuiTabItem.js.map +1 -1
  287. package/dist/components/tabs/tab-item/RuiTabItem.vue.d.ts +0 -1
  288. package/dist/components/tabs/tab-item/RuiTabItem.vue_vue_type_script_setup_true_lang.js +5 -11
  289. package/dist/components/tabs/tab-item/RuiTabItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  290. package/dist/components/tabs/tab-items/RuiTabItems.js.map +1 -1
  291. package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js +3 -8
  292. package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js.map +1 -1
  293. package/dist/components/tabs/tab-props.d.ts +7 -1
  294. package/dist/components/tabs/tab-props.js +7 -1
  295. package/dist/components/tabs/tab-props.js.map +1 -1
  296. package/dist/components/tabs/tabs/RuiTabs.js.map +1 -1
  297. package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +2 -1
  298. package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js +178 -32
  299. package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  300. package/dist/components/tabs/tabs/use-tab-indicator.d.ts +27 -0
  301. package/dist/components/tabs/tabs/use-tab-indicator.js +67 -0
  302. package/dist/components/tabs/tabs/use-tab-indicator.js.map +1 -0
  303. package/dist/components/tabs/tabs/use-tab-keyboard.d.ts +17 -0
  304. package/dist/components/tabs/tabs/use-tab-keyboard.js +57 -0
  305. package/dist/components/tabs/tabs/use-tab-keyboard.js.map +1 -0
  306. package/dist/components/tabs/tabs/use-tab-routing.js +1 -2
  307. package/dist/components/tabs/tabs/use-tab-routing.js.map +1 -1
  308. package/dist/components/time-picker/RuiTimePicker.js.map +1 -1
  309. package/dist/components/time-picker/RuiTimePicker.vue_vue_type_script_setup_true_lang.js +35 -32
  310. package/dist/components/time-picker/RuiTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  311. package/dist/components/time-picker/time-picker-styles.d.ts +18 -0
  312. package/dist/components/time-picker/time-picker-styles.js +16 -10
  313. package/dist/components/time-picker/time-picker-styles.js.map +1 -1
  314. package/dist/composables/defaults/field.d.ts +22 -0
  315. package/dist/composables/defaults/field.js +29 -0
  316. package/dist/composables/defaults/field.js.map +1 -0
  317. package/dist/composables/dropdown-menu.d.ts +14 -2
  318. package/dist/composables/dropdown-menu.js +12 -2
  319. package/dist/composables/dropdown-menu.js.map +1 -1
  320. package/dist/composables/floating.d.ts +0 -2
  321. package/dist/composables/floating.js +5 -2
  322. package/dist/composables/floating.js.map +1 -1
  323. package/dist/composables/forms/auto-complete/chips.d.ts +22 -0
  324. package/dist/composables/forms/auto-complete/chips.js +42 -0
  325. package/dist/composables/forms/auto-complete/chips.js.map +1 -0
  326. package/dist/composables/forms/auto-complete/combobox.d.ts +25 -0
  327. package/dist/composables/forms/auto-complete/combobox.js +35 -0
  328. package/dist/composables/forms/auto-complete/combobox.js.map +1 -0
  329. package/dist/composables/forms/auto-complete/focus.d.ts +5 -2
  330. package/dist/composables/forms/auto-complete/focus.js +36 -10
  331. package/dist/composables/forms/auto-complete/focus.js.map +1 -1
  332. package/dist/composables/forms/auto-complete/index.d.ts +3 -0
  333. package/dist/composables/forms/auto-complete/keyboard-navigation.d.ts +8 -1
  334. package/dist/composables/forms/auto-complete/keyboard-navigation.js +48 -20
  335. package/dist/composables/forms/auto-complete/keyboard-navigation.js.map +1 -1
  336. package/dist/composables/forms/auto-complete/selection.d.ts +37 -0
  337. package/dist/composables/forms/auto-complete/selection.js +60 -0
  338. package/dist/composables/forms/auto-complete/selection.js.map +1 -0
  339. package/dist/composables/forms/auto-complete/value.js +19 -0
  340. package/dist/composables/forms/auto-complete/value.js.map +1 -1
  341. package/dist/composables/keyboard-scroll.d.ts +17 -0
  342. package/dist/composables/keyboard-scroll.js +58 -0
  343. package/dist/composables/keyboard-scroll.js.map +1 -0
  344. package/dist/composables/sticky-header.d.ts +8 -0
  345. package/dist/composables/sticky-header.js +13 -2
  346. package/dist/composables/sticky-header.js.map +1 -1
  347. package/dist/composables/tables/data-table/page-scroll.d.ts +30 -0
  348. package/dist/composables/tables/data-table/page-scroll.js +113 -0
  349. package/dist/composables/tables/data-table/page-scroll.js.map +1 -0
  350. package/dist/consts/colors.d.ts +4 -0
  351. package/dist/consts/colors.js +1 -37
  352. package/dist/consts/colors.js.map +1 -1
  353. package/dist/consts/tokens.d.ts +56 -0
  354. package/dist/consts/tokens.js +46 -0
  355. package/dist/consts/tokens.js.map +1 -0
  356. package/dist/consts/typography.d.ts +51 -18
  357. package/dist/index.d.ts +5 -0
  358. package/dist/index.js +9 -5
  359. package/dist/index.js.map +1 -1
  360. package/dist/library-icons.json +0 -10
  361. package/dist/style.css +5644 -4677
  362. package/dist/styles/colors.css +315 -0
  363. package/dist/styles/tokens.css +50 -0
  364. package/dist/tailwind.css +145 -0
  365. package/dist/theme/theme.css +403 -0
  366. package/dist/theme.css +403 -0
  367. package/dist/utils/helpers.d.ts +0 -8
  368. package/dist/utils/helpers.js +0 -1
  369. package/dist/utils/helpers.js.map +1 -1
  370. package/dist/utils/tv.js +13 -21
  371. package/dist/utils/tv.js.map +1 -1
  372. package/dist/web-types.json +275 -407
  373. package/package.json +13 -16
  374. package/dist/components/icons/LazyIcon.vue.d.ts +0 -8
  375. package/dist/components/steppers/RuiStepperCustomIcon.js +0 -7
  376. package/dist/components/steppers/RuiStepperCustomIcon.js.map +0 -1
  377. package/dist/components/steppers/RuiStepperCustomIcon.vue.d.ts +0 -8
  378. package/dist/components/steppers/RuiStepperCustomIcon.vue_vue_type_script_setup_true_lang.js +0 -43
  379. package/dist/components/steppers/RuiStepperCustomIcon.vue_vue_type_script_setup_true_lang.js.map +0 -1
  380. package/dist/composables/colors/common.d.ts +0 -20
  381. package/dist/composables/colors/index.d.ts +0 -3
  382. package/dist/composables/colors/text-input.d.ts +0 -27
  383. package/dist/composables/forms/use-label-with-quote.d.ts +0 -2
  384. package/dist/composables/popper.d.ts +0 -16
  385. package/dist/composables/popper.js +0 -23
  386. package/dist/composables/popper.js.map +0 -1
  387. package/dist/consts/forms/auto-complete/index.d.ts +0 -4
  388. package/dist/theme/index.d.ts +0 -5
  389. package/dist/theme/index.js +0 -162
  390. package/dist/theme/index.js.map +0 -1
  391. package/dist/utils/forms/auto-complete/index.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"data-table-styles.js","names":[],"sources":["../../../src/components/tables/data-table-styles.ts"],"sourcesContent":["import { tv } from '@/utils/tv';\n\nexport const dataTableStyles = tv({\n slots: {\n // `clip`, not `hidden`: a hidden-overflow flex item may shrink below its rows and hide them\n wrapper: 'relative divide-y divide-black/[0.12] dark:divide-white/[0.12] overflow-clip',\n scroller: 'overflow-x-auto overflow-y-hidden [clip-path:inset(0_0_0_0)]',\n table: 'min-w-full table-fixed divide-y divide-black/[0.12] dark:divide-white/[0.12] whitespace-nowrap mx-auto my-0 max-w-fit relative border-black/[0.12] dark:border-white/[0.12]',\n tbody: 'divide-y divide-black/[0.12] dark:divide-white/[0.12]',\n tr: 'hover:bg-black/[0.04] dark:hover:bg-white/[0.04]',\n td: '[:where(&)]:px-4 text-rui-text text-body-2 tabular-nums [text-wrap:initial]',\n checkbox: 'px-2 w-[3.625rem] max-w-[3.625rem] [&_label]:ml-0',\n tbodyLoader: 'text-center',\n },\n variants: {\n outlined: {\n true: { wrapper: 'border border-black/[0.12] dark:border-white/[0.12]' },\n },\n rounded: {\n sm: { wrapper: 'rounded-[.25rem]' },\n md: { wrapper: 'rounded-[.75rem]' },\n lg: { wrapper: 'rounded-[1rem]' },\n },\n dense: {\n true: {},\n false: {},\n },\n // `:where()` keeps the stripe below every row state (selected, hover, expanded, group)\n striped: {\n true: { tbody: '[:where(&>tr:nth-child(even))]:bg-rui-grey-50 dark:[:where(&>tr:nth-child(even))]:bg-rui-grey-900' },\n },\n rowVariant: {\n selected: { tr: 'bg-rui-primary/[0.08] dark:bg-rui-dark-primary/[0.08]' },\n empty: { tr: 'hover:bg-transparent' },\n // `!border-t-0` drops the divider so the panel joins the row that opened it\n expandable: { tr: 'bg-rui-grey-50 hover:bg-rui-grey-50 dark:bg-white/[0.03] dark:hover:bg-white/[0.03] !border-t-0' },\n expandedParent: { tr: 'bg-rui-grey-50 dark:bg-white/[0.03]' },\n group: { tr: 'bg-rui-grey-100 dark:bg-white/[0.05]' },\n },\n mobile: {\n true: {\n wrapper: 'divide-y-0 border-0 rounded-none overflow-visible',\n scroller: 'overflow-visible [clip-path:none]',\n table: 'block min-w-0 max-w-none w-full whitespace-normal divide-y-0 border-0',\n tbody: 'block divide-y-0',\n tr: 'block',\n td: 'block px-4 py-2',\n },\n },\n },\n /**\n * A fixed row height keeps a row of plain text as tall as one holding an\n * icon button. Padding and floor sit in `:where()` so a consumer's `cellClass`\n * (`py-0` is common) still wins at any stylesheet order, and each density\n * sets its own because the class merger cannot dedupe these.\n */\n compoundVariants: [\n { dense: false, mobile: false, class: { td: '[:where(&)]:py-3 [:where(&)]:h-[3.25rem]' } },\n { dense: true, mobile: false, class: { td: '[:where(&)]:py-1 [:where(&)]:h-9' } },\n ],\n defaultVariants: {\n dense: false,\n mobile: false,\n },\n});\n"],"mappings":";;AAEA,IAAa,kBAAkB,GAAG;CAChC,OAAO;EAEL,SAAS;EACT,UAAU;EACV,OAAO;EACP,OAAO;EACP,IAAI;EACJ,IAAI;EACJ,UAAU;EACV,aAAa;CACf;CACA,UAAU;EACR,UAAU,EACR,MAAM,EAAE,SAAS,sDAAsD,EACzE;EACA,SAAS;GACP,IAAI,EAAE,SAAS,mBAAmB;GAClC,IAAI,EAAE,SAAS,mBAAmB;GAClC,IAAI,EAAE,SAAS,iBAAiB;EAClC;EACA,OAAO;GACL,MAAM,CAAC;GACP,OAAO,CAAC;EACV;EAEA,SAAS,EACP,MAAM,EAAE,OAAO,oGAAoG,EACrH;EACA,YAAY;GACV,UAAU,EAAE,IAAI,wDAAwD;GACxE,OAAO,EAAE,IAAI,uBAAuB;GAEpC,YAAY,EAAE,IAAI,kGAAkG;GACpH,gBAAgB,EAAE,IAAI,sCAAsC;GAC5D,OAAO,EAAE,IAAI,uCAAuC;EACtD;EACA,QAAQ,EACN,MAAM;GACJ,SAAS;GACT,UAAU;GACV,OAAO;GACP,OAAO;GACP,IAAI;GACJ,IAAI;EACN,EACF;CACF;;;;;;;CAOA,kBAAkB,CAChB;EAAE,OAAO;EAAO,QAAQ;EAAO,OAAO,EAAE,IAAI,2CAA2C;CAAE,GACzF;EAAE,OAAO;EAAM,QAAQ;EAAO,OAAO,EAAE,IAAI,mCAAmC;CAAE,CAClF;CACA,iBAAiB;EACf,OAAO;EACP,QAAQ;CACV;AACF,CAAC"}
1
+ {"version":3,"file":"data-table-styles.js","names":[],"sources":["../../../src/components/tables/data-table-styles.ts"],"sourcesContent":["import { tv } from '@/utils/tv';\n\n/** A 2px primary rail down the left edge of an open row and its panel; out of flow, so the cell keeps its padding. */\nconst OPEN_ROW_RAIL = '[&>td:first-child]:relative [&>td:first-child]:before:absolute [&>td:first-child]:before:inset-y-0 [&>td:first-child]:before:left-0 [&>td:first-child]:before:w-0.5 [&>td:first-child]:before:bg-rui-primary';\n\n/**\n * The band of an open row inside another table's panel: a step darker than the outer band, so the two\n * levels never share a grey while the rows between them keep the plain surface.\n */\nconst NESTED_BAND = '[[data-id=row-expanded]_&]:bg-rui-neutral-950/[0.11] dark:[[data-id=row-expanded]_&]:bg-white/[0.14]';\n\n/**\n * Header and pagination of a nested table, stepped by depth to stand off the band around them (about\n * 1.12:1 or more) as well as their own rows: past the lighter band one panel deep, short of the darker\n * band two deep. Nested bars never stick, so the tint can be translucent over the table's own surface.\n */\nexport const NESTED_BAR = '[[data-id=row-expanded]_&]:bg-rui-neutral-950/[0.13] dark:[[data-id=row-expanded]_&]:bg-white/[0.16] [[data-id=row-expanded]_[data-id=row-expanded]_&]:bg-rui-neutral-950/[0.06] dark:[[data-id=row-expanded]_[data-id=row-expanded]_&]:bg-white/[0.07]';\n\nexport const dataTableStyles = tv({\n slots: {\n // `clip`, not `hidden`, which may shrink the item below its rows; its own surface reads the same anywhere\n wrapper: 'relative between:border-t between:border-b-0 between:border-rui-divider overflow-clip bg-rui-surface',\n // focusable only while it scrolls with nothing to tab to (useKeyboardScroll), ring drawn inside\n scroller: 'overflow-x-auto overflow-y-hidden [clip-path:inset(0_0_0_0)] outline-hidden focus-visible:focus-ring focus-visible:-outline-offset-2',\n table: 'min-w-full table-fixed between:border-t between:border-b-0 between:border-rui-divider whitespace-nowrap mx-auto my-0 max-w-fit relative border-rui-divider',\n tbody: 'between:border-t between:border-b-0 between:border-rui-divider',\n tr: 'hover:bg-rui-hover',\n // numbers line up in columns; no slashed zero, which in Inter reads as a second, monospace font beside zero-free values\n td: '[:where(&)]:px-4 text-rui-text text-body-2 tabular-nums [text-wrap:initial]',\n checkbox: 'px-2 w-[3.625rem] max-w-[3.625rem] [&_label]:ml-0',\n tbodyLoader: 'text-center',\n // tinted like the column header, the pair framing the body; opaque, so rows scroll behind a stuck bar\n pagination: `bg-rui-surface-muted ${NESTED_BAR}`,\n },\n variants: {\n sticky: {\n true: { pagination: 'sticky bottom-0 z-rui-raised' },\n },\n outlined: {\n true: { wrapper: 'border border-rui-divider' },\n },\n rounded: {\n sm: { wrapper: 'rounded-rui-sm' },\n md: { wrapper: 'rounded-rui-card' },\n lg: { wrapper: 'rounded-rui-lg' },\n },\n dense: {\n true: {},\n false: {},\n },\n // a translucent tint under the hover one; `:where()` keeps it below every row state (selected, hover, expanded, group)\n striped: {\n true: { tbody: '[:where(&>tr:nth-child(even))]:bg-rui-neutral-950/[0.03] dark:[:where(&>tr:nth-child(even))]:bg-white/[0.04]' },\n },\n rowVariant: {\n selected: { tr: 'bg-rui-primary-soft' },\n empty: { tr: 'hover:bg-transparent' },\n // a grey band darker than the header so the two never match, a step darker again inside another panel\n expandable: { tr: `bg-rui-neutral-950/[0.07] hover:bg-rui-neutral-950/[0.07] dark:bg-white/[0.09] dark:hover:bg-white/[0.09] ${NESTED_BAND} [[data-id=row-expanded]_&]:hover:bg-rui-neutral-950/[0.11] dark:[[data-id=row-expanded]_&]:hover:bg-white/[0.14] ${OPEN_ROW_RAIL} !border-t-0` },\n expandedParent: { tr: `bg-rui-neutral-950/[0.07] dark:bg-white/[0.09] ${NESTED_BAND} ${OPEN_ROW_RAIL}` },\n group: { tr: 'bg-rui-neutral-100 dark:bg-white/[0.05]' },\n },\n mobile: {\n true: {\n wrapper: 'between:border-t-0 border-0 rounded-none overflow-visible',\n scroller: 'overflow-visible [clip-path:none]',\n table: 'block min-w-0 max-w-none w-full whitespace-normal between:border-t-0 border-0',\n tbody: 'block between:border-t-0',\n tr: 'block',\n td: 'block px-4 py-2',\n },\n },\n },\n /**\n * A fixed row height keeps a row of plain text as tall as one holding an\n * icon button. Padding and floor sit in `:where()` so a consumer's `cellClass`\n * (`py-0` is common) still wins at any stylesheet order, and each density\n * sets its own because the class merger cannot dedupe these.\n */\n compoundVariants: [\n // a 4px inset under the height floor fits a 36px button in a 44px row (a 28px one in a dense 36px row)\n { dense: false, mobile: false, class: { td: '[:where(&)]:py-1 [:where(&)]:h-11' } },\n { dense: true, mobile: false, class: { td: '[:where(&)]:py-1 [:where(&)]:h-9' } },\n ],\n defaultVariants: {\n dense: false,\n mobile: false,\n },\n});\n"],"mappings":";;;AAGA,IAAM,gBAAgB;;;;;AAMtB,IAAM,cAAc;;;;;;AAOpB,IAAa,aAAa;AAE1B,IAAa,kBAAkB,GAAG;CAChC,OAAO;EAEL,SAAS;EAET,UAAU;EACV,OAAO;EACP,OAAO;EACP,IAAI;EAEJ,IAAI;EACJ,UAAU;EACV,aAAa;EAEb,YAAY,wBAAwB;CACtC;CACA,UAAU;EACR,QAAQ,EACN,MAAM,EAAE,YAAY,+BAA+B,EACrD;EACA,UAAU,EACR,MAAM,EAAE,SAAS,4BAA4B,EAC/C;EACA,SAAS;GACP,IAAI,EAAE,SAAS,iBAAiB;GAChC,IAAI,EAAE,SAAS,mBAAmB;GAClC,IAAI,EAAE,SAAS,iBAAiB;EAClC;EACA,OAAO;GACL,MAAM,CAAC;GACP,OAAO,CAAC;EACV;EAEA,SAAS,EACP,MAAM,EAAE,OAAO,+GAA+G,EAChI;EACA,YAAY;GACV,UAAU,EAAE,IAAI,sBAAsB;GACtC,OAAO,EAAE,IAAI,uBAAuB;GAEpC,YAAY,EAAE,IAAI,6GAA6G,YAAY,oHAAoH,cAAc,cAAc;GAC3R,gBAAgB,EAAE,IAAI,kDAAkD,YAAY,GAAG,gBAAgB;GACvG,OAAO,EAAE,IAAI,0CAA0C;EACzD;EACA,QAAQ,EACN,MAAM;GACJ,SAAS;GACT,UAAU;GACV,OAAO;GACP,OAAO;GACP,IAAI;GACJ,IAAI;EACN,EACF;CACF;;;;;;;CAOA,kBAAkB,CAEhB;EAAE,OAAO;EAAO,QAAQ;EAAO,OAAO,EAAE,IAAI,oCAAoC;CAAE,GAClF;EAAE,OAAO;EAAM,QAAQ;EAAO,OAAO,EAAE,IAAI,mCAAmC;CAAE,CAClF;CACA,iBAAiB;EACf,OAAO;EACP,QAAQ;CACV;AACF,CAAC"}
@@ -1,5 +1,5 @@
1
1
  //#region src/components/tables/table_no_data_placeholder.svg
2
- var table_no_data_placeholder_default = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='152'%20height='124'%20fill='none'%3e%3ccircle%20cx='76'%20cy='58'%20r='52'%20fill='%23eaeaeb'/%3e%3cg%20fill='%23f2f2f3'%3e%3ccircle%20cx='21'%20cy='25'%20r='5'/%3e%3ccircle%20cx='18'%20cy='109'%20r='7'/%3e%3ccircle%20cx='145'%20cy='41'%20r='7'/%3e%3ccircle%20cx='134'%20cy='14'%20r='4'/%3e%3c/g%3e%3cg%20filter='url(%23B)'%3e%3cpath%20d='M76%2036.063l4.536-1.9-4.535%201.932V90.19l41.795-17.514V18.557l.204-.085-.204-.09v-.091l-.104.045L76.33%200%2034%2018.031l.2.086-.2%2053.899%2042%2018.141V36.063z'%20fill='%23fafafa'/%3e%3cpath%20d='M76%2036.063v54.095L34%2072.017l.2-53.899L76%2036.063z'%20fill='url(%23C)'/%3e%3cpath%20d='M76.001%2036.095V90.19l41.796-17.514V18.29L76.001%2036.095z'%20fill='url(%23D)'/%3e%3cpath%20d='M76%2036.063l42-17.592L76.33%200%2034%2018.031l42%2018.031z'%20fill='%23f2f2f3'/%3e%3cpath%20d='M49.832%2011.287l41.84%2018.211.38%2013.271%2011.706-4.83-.354-13.355L60.327%206.817l-10.495%204.47z'%20fill='%23eaeaeb'/%3e%3c/g%3e%3cmask%20id='A'%20maskUnits='userSpaceOnUse'%20x='52'%20y='68'%20width='48'%20height='48'%20mask-type='alpha'%3e%3cpath%20transform='translate(52%2068)'%20fill='url(%23E)'%20d='M0%200h48v48H0z'/%3e%3c/mask%3e%3cg%20mask='url(%23A)'%3e%3ccircle%20cx='76'%20cy='92'%20r='23.5'%20fill='%23fafafa'%20stroke='%23eaeaeb'/%3e%3c/g%3e%3crect%20x='60'%20y='76'%20width='32'%20height='32'%20rx='16'%20fill='%23000'%20fill-opacity='.3'/%3e%3cg%20clip-path='url(%23F)'%3e%3cpath%20d='M76%2088.667V92m0%203.333h.008M84.334%2092c0%204.602-3.731%208.333-8.333%208.333s-8.333-3.73-8.333-8.333%203.731-8.333%208.333-8.333%208.333%203.731%208.333%208.333z'%20stroke='%23fff'%20stroke-width='1.67'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='B'%20x='14'%20y='0'%20width='124'%20height='130.19'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='A'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'%20result='B'/%3e%3cfeMorphology%20radius='4'%20in='SourceAlpha'%20result='C'/%3e%3cfeOffset%20dy='8'/%3e%3cfeGaussianBlur%20stdDeviation='4'/%3e%3cfeComposite%20in2='B'%20operator='out'/%3e%3cfeColorMatrix%20values='0%200%200%200%200.0627451%200%200%200%200%200.0941176%200%200%200%200%200.156863%200%200%200%200.03%200'/%3e%3cfeBlend%20in2='A'%20result='C'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'%20result='B'/%3e%3cfeMorphology%20radius='4'%20in='SourceAlpha'/%3e%3cfeOffset%20dy='20'/%3e%3cfeGaussianBlur%20stdDeviation='12'/%3e%3cfeComposite%20in2='B'%20operator='out'/%3e%3cfeColorMatrix%20values='0%200%200%200%200.0627451%200%200%200%200%200.0941176%200%200%200%200%200.156863%200%200%200%200.08%200'/%3e%3cfeBlend%20in2='C'/%3e%3cfeBlend%20in='SourceGraphic'/%3e%3c/filter%3e%3clinearGradient%20id='C'%20x1='34'%20y1='72.289'%20x2='50.587'%20y2='27.367'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23dee1e8'/%3e%3cstop%20offset='1'%20stop-color='%23eff1f5'/%3e%3c/linearGradient%3e%3clinearGradient%20id='D'%20x1='76'%20y1='37.154'%20x2='123.359'%20y2='46.583'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23e4e7ec'/%3e%3cstop%20offset='1'%20stop-color='%23f2f4f7'/%3e%3c/linearGradient%3e%3clinearGradient%20id='E'%20x1='24'%20y1='0'%20x2='24'%20y2='48'%20gradientUnits='userSpaceOnUse'%3e%3cstop/%3e%3cstop%20offset='1'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cclipPath%20id='F'%3e%3cpath%20fill='%23fff'%20transform='translate(66%2082)'%20d='M0%200h20v20H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e";
2
+ var table_no_data_placeholder_default = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='152'%20height='124'%20fill='none'%3e%3ccircle%20cx='76'%20cy='58'%20r='52'%20fill='%23e4e4e7'/%3e%3cg%20fill='%23f4f4f5'%3e%3ccircle%20cx='21'%20cy='25'%20r='5'/%3e%3ccircle%20cx='18'%20cy='109'%20r='7'/%3e%3ccircle%20cx='145'%20cy='41'%20r='7'/%3e%3ccircle%20cx='134'%20cy='14'%20r='4'/%3e%3c/g%3e%3cg%20filter='url(%23B)'%3e%3cpath%20d='M76%2036.063l4.536-1.9-4.535%201.932V90.19l41.795-17.514V18.557l.204-.085-.204-.09v-.091l-.104.045L76.33%200%2034%2018.031l.2.086-.2%2053.899%2042%2018.141V36.063z'%20fill='%23fafafa'/%3e%3cpath%20d='M76%2036.063v54.095L34%2072.017l.2-53.899L76%2036.063z'%20fill='url(%23C)'/%3e%3cpath%20d='M76.001%2036.095V90.19l41.796-17.514V18.29L76.001%2036.095z'%20fill='url(%23D)'/%3e%3cpath%20d='M76%2036.063l42-17.592L76.33%200%2034%2018.031l42%2018.031z'%20fill='%23f4f4f5'/%3e%3cpath%20d='M49.832%2011.287l41.84%2018.211.38%2013.271%2011.706-4.83-.354-13.355L60.327%206.817l-10.495%204.47z'%20fill='%23e4e4e7'/%3e%3c/g%3e%3cmask%20id='A'%20maskUnits='userSpaceOnUse'%20x='52'%20y='68'%20width='48'%20height='48'%20mask-type='alpha'%3e%3cpath%20transform='translate(52%2068)'%20fill='url(%23E)'%20d='M0%200h48v48H0z'/%3e%3c/mask%3e%3cg%20mask='url(%23A)'%3e%3ccircle%20cx='76'%20cy='92'%20r='23.5'%20fill='%23fafafa'%20stroke='%23e4e4e7'/%3e%3c/g%3e%3crect%20x='60'%20y='76'%20width='32'%20height='32'%20rx='16'%20fill='%23000'%20fill-opacity='.3'/%3e%3cg%20clip-path='url(%23F)'%3e%3cpath%20d='M76%2088.667V92m0%203.333h.008M84.334%2092c0%204.602-3.731%208.333-8.333%208.333s-8.333-3.73-8.333-8.333%203.731-8.333%208.333-8.333%208.333%203.731%208.333%208.333z'%20stroke='%23fff'%20stroke-width='1.67'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='B'%20x='14'%20y='0'%20width='124'%20height='130.19'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='A'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'%20result='B'/%3e%3cfeMorphology%20radius='4'%20in='SourceAlpha'%20result='C'/%3e%3cfeOffset%20dy='8'/%3e%3cfeGaussianBlur%20stdDeviation='4'/%3e%3cfeComposite%20in2='B'%20operator='out'/%3e%3cfeColorMatrix%20values='0%200%200%200%200.0352941%200%200%200%200%200.0352941%200%200%200%200%200.0431373%200%200%200%200.03%200'/%3e%3cfeBlend%20in2='A'%20result='C'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'%20result='B'/%3e%3cfeMorphology%20radius='4'%20in='SourceAlpha'/%3e%3cfeOffset%20dy='20'/%3e%3cfeGaussianBlur%20stdDeviation='12'/%3e%3cfeComposite%20in2='B'%20operator='out'/%3e%3cfeColorMatrix%20values='0%200%200%200%200.0352941%200%200%200%200%200.0352941%200%200%200%200%200.0431373%200%200%200%200.08%200'/%3e%3cfeBlend%20in2='C'/%3e%3cfeBlend%20in='SourceGraphic'/%3e%3c/filter%3e%3clinearGradient%20id='C'%20x1='34'%20y1='72.289'%20x2='50.587'%20y2='27.367'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23e4e4e7'/%3e%3cstop%20offset='1'%20stop-color='%23f4f4f5'/%3e%3c/linearGradient%3e%3clinearGradient%20id='D'%20x1='76'%20y1='37.154'%20x2='123.359'%20y2='46.583'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23e4e4e7'/%3e%3cstop%20offset='1'%20stop-color='%23fafafa'/%3e%3c/linearGradient%3e%3clinearGradient%20id='E'%20x1='24'%20y1='0'%20x2='24'%20y2='48'%20gradientUnits='userSpaceOnUse'%3e%3cstop/%3e%3cstop%20offset='1'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cclipPath%20id='F'%3e%3cpath%20fill='%23fff'%20transform='translate(66%2082)'%20d='M0%200h20v20H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e";
3
3
  //#endregion
4
4
  export { table_no_data_placeholder_default as default };
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"table_no_data_placeholder.js","names":[],"sources":["../../../src/components/tables/table_no_data_placeholder.svg"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='152'%20height='124'%20fill='none'%3e%3ccircle%20cx='76'%20cy='58'%20r='52'%20fill='%23eaeaeb'/%3e%3cg%20fill='%23f2f2f3'%3e%3ccircle%20cx='21'%20cy='25'%20r='5'/%3e%3ccircle%20cx='18'%20cy='109'%20r='7'/%3e%3ccircle%20cx='145'%20cy='41'%20r='7'/%3e%3ccircle%20cx='134'%20cy='14'%20r='4'/%3e%3c/g%3e%3cg%20filter='url(%23B)'%3e%3cpath%20d='M76%2036.063l4.536-1.9-4.535%201.932V90.19l41.795-17.514V18.557l.204-.085-.204-.09v-.091l-.104.045L76.33%200%2034%2018.031l.2.086-.2%2053.899%2042%2018.141V36.063z'%20fill='%23fafafa'/%3e%3cpath%20d='M76%2036.063v54.095L34%2072.017l.2-53.899L76%2036.063z'%20fill='url(%23C)'/%3e%3cpath%20d='M76.001%2036.095V90.19l41.796-17.514V18.29L76.001%2036.095z'%20fill='url(%23D)'/%3e%3cpath%20d='M76%2036.063l42-17.592L76.33%200%2034%2018.031l42%2018.031z'%20fill='%23f2f2f3'/%3e%3cpath%20d='M49.832%2011.287l41.84%2018.211.38%2013.271%2011.706-4.83-.354-13.355L60.327%206.817l-10.495%204.47z'%20fill='%23eaeaeb'/%3e%3c/g%3e%3cmask%20id='A'%20maskUnits='userSpaceOnUse'%20x='52'%20y='68'%20width='48'%20height='48'%20mask-type='alpha'%3e%3cpath%20transform='translate(52%2068)'%20fill='url(%23E)'%20d='M0%200h48v48H0z'/%3e%3c/mask%3e%3cg%20mask='url(%23A)'%3e%3ccircle%20cx='76'%20cy='92'%20r='23.5'%20fill='%23fafafa'%20stroke='%23eaeaeb'/%3e%3c/g%3e%3crect%20x='60'%20y='76'%20width='32'%20height='32'%20rx='16'%20fill='%23000'%20fill-opacity='.3'/%3e%3cg%20clip-path='url(%23F)'%3e%3cpath%20d='M76%2088.667V92m0%203.333h.008M84.334%2092c0%204.602-3.731%208.333-8.333%208.333s-8.333-3.73-8.333-8.333%203.731-8.333%208.333-8.333%208.333%203.731%208.333%208.333z'%20stroke='%23fff'%20stroke-width='1.67'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='B'%20x='14'%20y='0'%20width='124'%20height='130.19'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='A'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'%20result='B'/%3e%3cfeMorphology%20radius='4'%20in='SourceAlpha'%20result='C'/%3e%3cfeOffset%20dy='8'/%3e%3cfeGaussianBlur%20stdDeviation='4'/%3e%3cfeComposite%20in2='B'%20operator='out'/%3e%3cfeColorMatrix%20values='0%200%200%200%200.0627451%200%200%200%200%200.0941176%200%200%200%200%200.156863%200%200%200%200.03%200'/%3e%3cfeBlend%20in2='A'%20result='C'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'%20result='B'/%3e%3cfeMorphology%20radius='4'%20in='SourceAlpha'/%3e%3cfeOffset%20dy='20'/%3e%3cfeGaussianBlur%20stdDeviation='12'/%3e%3cfeComposite%20in2='B'%20operator='out'/%3e%3cfeColorMatrix%20values='0%200%200%200%200.0627451%200%200%200%200%200.0941176%200%200%200%200%200.156863%200%200%200%200.08%200'/%3e%3cfeBlend%20in2='C'/%3e%3cfeBlend%20in='SourceGraphic'/%3e%3c/filter%3e%3clinearGradient%20id='C'%20x1='34'%20y1='72.289'%20x2='50.587'%20y2='27.367'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23dee1e8'/%3e%3cstop%20offset='1'%20stop-color='%23eff1f5'/%3e%3c/linearGradient%3e%3clinearGradient%20id='D'%20x1='76'%20y1='37.154'%20x2='123.359'%20y2='46.583'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23e4e7ec'/%3e%3cstop%20offset='1'%20stop-color='%23f2f4f7'/%3e%3c/linearGradient%3e%3clinearGradient%20id='E'%20x1='24'%20y1='0'%20x2='24'%20y2='48'%20gradientUnits='userSpaceOnUse'%3e%3cstop/%3e%3cstop%20offset='1'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cclipPath%20id='F'%3e%3cpath%20fill='%23fff'%20transform='translate(66%2082)'%20d='M0%200h20v20H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\""],"mappings":";AAAA,IAAA,oCAAe"}
1
+ {"version":3,"file":"table_no_data_placeholder.js","names":[],"sources":["../../../src/components/tables/table_no_data_placeholder.svg"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='152'%20height='124'%20fill='none'%3e%3ccircle%20cx='76'%20cy='58'%20r='52'%20fill='%23e4e4e7'/%3e%3cg%20fill='%23f4f4f5'%3e%3ccircle%20cx='21'%20cy='25'%20r='5'/%3e%3ccircle%20cx='18'%20cy='109'%20r='7'/%3e%3ccircle%20cx='145'%20cy='41'%20r='7'/%3e%3ccircle%20cx='134'%20cy='14'%20r='4'/%3e%3c/g%3e%3cg%20filter='url(%23B)'%3e%3cpath%20d='M76%2036.063l4.536-1.9-4.535%201.932V90.19l41.795-17.514V18.557l.204-.085-.204-.09v-.091l-.104.045L76.33%200%2034%2018.031l.2.086-.2%2053.899%2042%2018.141V36.063z'%20fill='%23fafafa'/%3e%3cpath%20d='M76%2036.063v54.095L34%2072.017l.2-53.899L76%2036.063z'%20fill='url(%23C)'/%3e%3cpath%20d='M76.001%2036.095V90.19l41.796-17.514V18.29L76.001%2036.095z'%20fill='url(%23D)'/%3e%3cpath%20d='M76%2036.063l42-17.592L76.33%200%2034%2018.031l42%2018.031z'%20fill='%23f4f4f5'/%3e%3cpath%20d='M49.832%2011.287l41.84%2018.211.38%2013.271%2011.706-4.83-.354-13.355L60.327%206.817l-10.495%204.47z'%20fill='%23e4e4e7'/%3e%3c/g%3e%3cmask%20id='A'%20maskUnits='userSpaceOnUse'%20x='52'%20y='68'%20width='48'%20height='48'%20mask-type='alpha'%3e%3cpath%20transform='translate(52%2068)'%20fill='url(%23E)'%20d='M0%200h48v48H0z'/%3e%3c/mask%3e%3cg%20mask='url(%23A)'%3e%3ccircle%20cx='76'%20cy='92'%20r='23.5'%20fill='%23fafafa'%20stroke='%23e4e4e7'/%3e%3c/g%3e%3crect%20x='60'%20y='76'%20width='32'%20height='32'%20rx='16'%20fill='%23000'%20fill-opacity='.3'/%3e%3cg%20clip-path='url(%23F)'%3e%3cpath%20d='M76%2088.667V92m0%203.333h.008M84.334%2092c0%204.602-3.731%208.333-8.333%208.333s-8.333-3.73-8.333-8.333%203.731-8.333%208.333-8.333%208.333%203.731%208.333%208.333z'%20stroke='%23fff'%20stroke-width='1.67'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cdefs%3e%3cfilter%20id='B'%20x='14'%20y='0'%20width='124'%20height='130.19'%20filterUnits='userSpaceOnUse'%20color-interpolation-filters='sRGB'%3e%3cfeFlood%20flood-opacity='0'%20result='A'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'%20result='B'/%3e%3cfeMorphology%20radius='4'%20in='SourceAlpha'%20result='C'/%3e%3cfeOffset%20dy='8'/%3e%3cfeGaussianBlur%20stdDeviation='4'/%3e%3cfeComposite%20in2='B'%20operator='out'/%3e%3cfeColorMatrix%20values='0%200%200%200%200.0352941%200%200%200%200%200.0352941%200%200%200%200%200.0431373%200%200%200%200.03%200'/%3e%3cfeBlend%20in2='A'%20result='C'/%3e%3cfeColorMatrix%20in='SourceAlpha'%20values='0%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%200%20127%200'%20result='B'/%3e%3cfeMorphology%20radius='4'%20in='SourceAlpha'/%3e%3cfeOffset%20dy='20'/%3e%3cfeGaussianBlur%20stdDeviation='12'/%3e%3cfeComposite%20in2='B'%20operator='out'/%3e%3cfeColorMatrix%20values='0%200%200%200%200.0352941%200%200%200%200%200.0352941%200%200%200%200%200.0431373%200%200%200%200.08%200'/%3e%3cfeBlend%20in2='C'/%3e%3cfeBlend%20in='SourceGraphic'/%3e%3c/filter%3e%3clinearGradient%20id='C'%20x1='34'%20y1='72.289'%20x2='50.587'%20y2='27.367'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23e4e4e7'/%3e%3cstop%20offset='1'%20stop-color='%23f4f4f5'/%3e%3c/linearGradient%3e%3clinearGradient%20id='D'%20x1='76'%20y1='37.154'%20x2='123.359'%20y2='46.583'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23e4e4e7'/%3e%3cstop%20offset='1'%20stop-color='%23fafafa'/%3e%3c/linearGradient%3e%3clinearGradient%20id='E'%20x1='24'%20y1='0'%20x2='24'%20y2='48'%20gradientUnits='userSpaceOnUse'%3e%3cstop/%3e%3cstop%20offset='1'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cclipPath%20id='F'%3e%3cpath%20fill='%23fff'%20transform='translate(66%2082)'%20d='M0%200h20v20H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\""],"mappings":";AAAA,IAAA,oCAAe"}
@@ -1,5 +1,5 @@
1
1
  //#region src/components/tables/table_no_data_placeholder_dark.svg
2
- var table_no_data_placeholder_dark_default = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='152'%20height='124'%20fill='none'%3e%3ccircle%20cx='76'%20cy='58'%20r='52'%20fill='%23333741'/%3e%3cg%20fill='%231f242f'%3e%3ccircle%20cx='21'%20cy='25'%20r='5'/%3e%3ccircle%20cx='18'%20cy='109'%20r='7'/%3e%3ccircle%20cx='145'%20cy='41'%20r='7'/%3e%3ccircle%20cx='134'%20cy='14'%20r='4'/%3e%3c/g%3e%3cpath%20d='M76%2036.063l4.536-1.9-4.535%201.932V90.19l41.795-17.514V18.557l.204-.085-.204-.09v-.091l-.104.045L76.33%200%2034%2018.031l.2.086-.2%2053.899%2042%2018.141V36.063z'%20fill='%23fafafa'/%3e%3cpath%20d='M76%2036.063v54.095L34%2072.017l.2-53.899L76%2036.063z'%20fill='url(%23B)'/%3e%3cpath%20d='M76.001%2036.095V90.19l41.796-17.514V18.29L76.001%2036.095z'%20fill='url(%23C)'/%3e%3cpath%20d='M76%2036.063l42-17.592L76.33%200%2034%2018.031l42%2018.031z'%20fill='%231f242f'/%3e%3cpath%20d='M49.832%2011.287l41.84%2018.211.38%2013.271%2011.706-4.83-.354-13.355L60.327%206.817l-10.495%204.47z'%20fill='%23333741'/%3e%3cmask%20id='A'%20maskUnits='userSpaceOnUse'%20x='52'%20y='68'%20width='48'%20height='48'%20mask-type='alpha'%3e%3cpath%20transform='translate(52%2068)'%20fill='url(%23D)'%20d='M0%200h48v48H0z'/%3e%3c/mask%3e%3cg%20mask='url(%23A)'%3e%3ccircle%20cx='76'%20cy='92'%20r='23.5'%20fill='%23161b26'%20stroke='%23333741'/%3e%3c/g%3e%3crect%20x='60'%20y='76'%20width='32'%20height='32'%20rx='16'%20fill='%23161b26'/%3e%3cg%20clip-path='url(%23E)'%3e%3cpath%20d='M76%2088.667V92m0%203.333h.008M84.334%2092c0%204.602-3.731%208.333-8.333%208.333s-8.333-3.73-8.333-8.333%203.731-8.333%208.333-8.333%208.333%203.731%208.333%208.333z'%20stroke='%23fff'%20stroke-width='1.67'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='B'%20x1='34'%20y1='72.289'%20x2='50.587'%20y2='27.367'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%233b4354'/%3e%3cstop%20offset='1'%20stop-color='%231f242f'/%3e%3c/linearGradient%3e%3clinearGradient%20id='C'%20x1='76'%20y1='37.154'%20x2='123.359'%20y2='46.583'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%233b4354'/%3e%3cstop%20offset='1'%20stop-color='%231f242f'/%3e%3c/linearGradient%3e%3clinearGradient%20id='D'%20x1='24'%20y1='0'%20x2='24'%20y2='48'%20gradientUnits='userSpaceOnUse'%3e%3cstop/%3e%3cstop%20offset='1'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cclipPath%20id='E'%3e%3cpath%20fill='%23fff'%20transform='translate(66%2082)'%20d='M0%200h20v20H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e";
2
+ var table_no_data_placeholder_dark_default = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='152'%20height='124'%20fill='none'%3e%3ccircle%20cx='76'%20cy='58'%20r='52'%20fill='%233f3f46'/%3e%3cg%20fill='%2327272a'%3e%3ccircle%20cx='21'%20cy='25'%20r='5'/%3e%3ccircle%20cx='18'%20cy='109'%20r='7'/%3e%3ccircle%20cx='145'%20cy='41'%20r='7'/%3e%3ccircle%20cx='134'%20cy='14'%20r='4'/%3e%3c/g%3e%3cpath%20d='M76%2036.063l4.536-1.9-4.535%201.932V90.19l41.795-17.514V18.557l.204-.085-.204-.09v-.091l-.104.045L76.33%200%2034%2018.031l.2.086-.2%2053.899%2042%2018.141V36.063z'%20fill='%23fafafa'/%3e%3cpath%20d='M76%2036.063v54.095L34%2072.017l.2-53.899L76%2036.063z'%20fill='url(%23B)'/%3e%3cpath%20d='M76.001%2036.095V90.19l41.796-17.514V18.29L76.001%2036.095z'%20fill='url(%23C)'/%3e%3cpath%20d='M76%2036.063l42-17.592L76.33%200%2034%2018.031l42%2018.031z'%20fill='%2327272a'/%3e%3cpath%20d='M49.832%2011.287l41.84%2018.211.38%2013.271%2011.706-4.83-.354-13.355L60.327%206.817l-10.495%204.47z'%20fill='%233f3f46'/%3e%3cmask%20id='A'%20maskUnits='userSpaceOnUse'%20x='52'%20y='68'%20width='48'%20height='48'%20mask-type='alpha'%3e%3cpath%20transform='translate(52%2068)'%20fill='url(%23D)'%20d='M0%200h48v48H0z'/%3e%3c/mask%3e%3cg%20mask='url(%23A)'%3e%3ccircle%20cx='76'%20cy='92'%20r='23.5'%20fill='%2318181b'%20stroke='%233f3f46'/%3e%3c/g%3e%3crect%20x='60'%20y='76'%20width='32'%20height='32'%20rx='16'%20fill='%2318181b'/%3e%3cg%20clip-path='url(%23E)'%3e%3cpath%20d='M76%2088.667V92m0%203.333h.008M84.334%2092c0%204.602-3.731%208.333-8.333%208.333s-8.333-3.73-8.333-8.333%203.731-8.333%208.333-8.333%208.333%203.731%208.333%208.333z'%20stroke='%23fff'%20stroke-width='1.67'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='B'%20x1='34'%20y1='72.289'%20x2='50.587'%20y2='27.367'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2352525b'/%3e%3cstop%20offset='1'%20stop-color='%2327272a'/%3e%3c/linearGradient%3e%3clinearGradient%20id='C'%20x1='76'%20y1='37.154'%20x2='123.359'%20y2='46.583'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2352525b'/%3e%3cstop%20offset='1'%20stop-color='%2327272a'/%3e%3c/linearGradient%3e%3clinearGradient%20id='D'%20x1='24'%20y1='0'%20x2='24'%20y2='48'%20gradientUnits='userSpaceOnUse'%3e%3cstop/%3e%3cstop%20offset='1'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cclipPath%20id='E'%3e%3cpath%20fill='%23fff'%20transform='translate(66%2082)'%20d='M0%200h20v20H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e";
3
3
  //#endregion
4
4
  export { table_no_data_placeholder_dark_default as default };
5
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"table_no_data_placeholder_dark.js","names":[],"sources":["../../../src/components/tables/table_no_data_placeholder_dark.svg"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='152'%20height='124'%20fill='none'%3e%3ccircle%20cx='76'%20cy='58'%20r='52'%20fill='%23333741'/%3e%3cg%20fill='%231f242f'%3e%3ccircle%20cx='21'%20cy='25'%20r='5'/%3e%3ccircle%20cx='18'%20cy='109'%20r='7'/%3e%3ccircle%20cx='145'%20cy='41'%20r='7'/%3e%3ccircle%20cx='134'%20cy='14'%20r='4'/%3e%3c/g%3e%3cpath%20d='M76%2036.063l4.536-1.9-4.535%201.932V90.19l41.795-17.514V18.557l.204-.085-.204-.09v-.091l-.104.045L76.33%200%2034%2018.031l.2.086-.2%2053.899%2042%2018.141V36.063z'%20fill='%23fafafa'/%3e%3cpath%20d='M76%2036.063v54.095L34%2072.017l.2-53.899L76%2036.063z'%20fill='url(%23B)'/%3e%3cpath%20d='M76.001%2036.095V90.19l41.796-17.514V18.29L76.001%2036.095z'%20fill='url(%23C)'/%3e%3cpath%20d='M76%2036.063l42-17.592L76.33%200%2034%2018.031l42%2018.031z'%20fill='%231f242f'/%3e%3cpath%20d='M49.832%2011.287l41.84%2018.211.38%2013.271%2011.706-4.83-.354-13.355L60.327%206.817l-10.495%204.47z'%20fill='%23333741'/%3e%3cmask%20id='A'%20maskUnits='userSpaceOnUse'%20x='52'%20y='68'%20width='48'%20height='48'%20mask-type='alpha'%3e%3cpath%20transform='translate(52%2068)'%20fill='url(%23D)'%20d='M0%200h48v48H0z'/%3e%3c/mask%3e%3cg%20mask='url(%23A)'%3e%3ccircle%20cx='76'%20cy='92'%20r='23.5'%20fill='%23161b26'%20stroke='%23333741'/%3e%3c/g%3e%3crect%20x='60'%20y='76'%20width='32'%20height='32'%20rx='16'%20fill='%23161b26'/%3e%3cg%20clip-path='url(%23E)'%3e%3cpath%20d='M76%2088.667V92m0%203.333h.008M84.334%2092c0%204.602-3.731%208.333-8.333%208.333s-8.333-3.73-8.333-8.333%203.731-8.333%208.333-8.333%208.333%203.731%208.333%208.333z'%20stroke='%23fff'%20stroke-width='1.67'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='B'%20x1='34'%20y1='72.289'%20x2='50.587'%20y2='27.367'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%233b4354'/%3e%3cstop%20offset='1'%20stop-color='%231f242f'/%3e%3c/linearGradient%3e%3clinearGradient%20id='C'%20x1='76'%20y1='37.154'%20x2='123.359'%20y2='46.583'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%233b4354'/%3e%3cstop%20offset='1'%20stop-color='%231f242f'/%3e%3c/linearGradient%3e%3clinearGradient%20id='D'%20x1='24'%20y1='0'%20x2='24'%20y2='48'%20gradientUnits='userSpaceOnUse'%3e%3cstop/%3e%3cstop%20offset='1'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cclipPath%20id='E'%3e%3cpath%20fill='%23fff'%20transform='translate(66%2082)'%20d='M0%200h20v20H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\""],"mappings":";AAAA,IAAA,yCAAe"}
1
+ {"version":3,"file":"table_no_data_placeholder_dark.js","names":[],"sources":["../../../src/components/tables/table_no_data_placeholder_dark.svg"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='152'%20height='124'%20fill='none'%3e%3ccircle%20cx='76'%20cy='58'%20r='52'%20fill='%233f3f46'/%3e%3cg%20fill='%2327272a'%3e%3ccircle%20cx='21'%20cy='25'%20r='5'/%3e%3ccircle%20cx='18'%20cy='109'%20r='7'/%3e%3ccircle%20cx='145'%20cy='41'%20r='7'/%3e%3ccircle%20cx='134'%20cy='14'%20r='4'/%3e%3c/g%3e%3cpath%20d='M76%2036.063l4.536-1.9-4.535%201.932V90.19l41.795-17.514V18.557l.204-.085-.204-.09v-.091l-.104.045L76.33%200%2034%2018.031l.2.086-.2%2053.899%2042%2018.141V36.063z'%20fill='%23fafafa'/%3e%3cpath%20d='M76%2036.063v54.095L34%2072.017l.2-53.899L76%2036.063z'%20fill='url(%23B)'/%3e%3cpath%20d='M76.001%2036.095V90.19l41.796-17.514V18.29L76.001%2036.095z'%20fill='url(%23C)'/%3e%3cpath%20d='M76%2036.063l42-17.592L76.33%200%2034%2018.031l42%2018.031z'%20fill='%2327272a'/%3e%3cpath%20d='M49.832%2011.287l41.84%2018.211.38%2013.271%2011.706-4.83-.354-13.355L60.327%206.817l-10.495%204.47z'%20fill='%233f3f46'/%3e%3cmask%20id='A'%20maskUnits='userSpaceOnUse'%20x='52'%20y='68'%20width='48'%20height='48'%20mask-type='alpha'%3e%3cpath%20transform='translate(52%2068)'%20fill='url(%23D)'%20d='M0%200h48v48H0z'/%3e%3c/mask%3e%3cg%20mask='url(%23A)'%3e%3ccircle%20cx='76'%20cy='92'%20r='23.5'%20fill='%2318181b'%20stroke='%233f3f46'/%3e%3c/g%3e%3crect%20x='60'%20y='76'%20width='32'%20height='32'%20rx='16'%20fill='%2318181b'/%3e%3cg%20clip-path='url(%23E)'%3e%3cpath%20d='M76%2088.667V92m0%203.333h.008M84.334%2092c0%204.602-3.731%208.333-8.333%208.333s-8.333-3.73-8.333-8.333%203.731-8.333%208.333-8.333%208.333%203.731%208.333%208.333z'%20stroke='%23fff'%20stroke-width='1.67'%20stroke-linecap='round'%20stroke-linejoin='round'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient%20id='B'%20x1='34'%20y1='72.289'%20x2='50.587'%20y2='27.367'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2352525b'/%3e%3cstop%20offset='1'%20stop-color='%2327272a'/%3e%3c/linearGradient%3e%3clinearGradient%20id='C'%20x1='76'%20y1='37.154'%20x2='123.359'%20y2='46.583'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%2352525b'/%3e%3cstop%20offset='1'%20stop-color='%2327272a'/%3e%3c/linearGradient%3e%3clinearGradient%20id='D'%20x1='24'%20y1='0'%20x2='24'%20y2='48'%20gradientUnits='userSpaceOnUse'%3e%3cstop/%3e%3cstop%20offset='1'%20stop-opacity='0'/%3e%3c/linearGradient%3e%3cclipPath%20id='E'%3e%3cpath%20fill='%23fff'%20transform='translate(66%2082)'%20d='M0%200h20v20H0z'/%3e%3c/clipPath%3e%3c/defs%3e%3c/svg%3e\""],"mappings":";AAAA,IAAA,yCAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"RuiTab.js","names":[],"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 RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport { TabAlignment, TabIndicatorPosition, TabLayout } from '@/components/tabs/tab-props';\nimport { useTabLink } from '@/components/tabs/tab/use-tab-link';\nimport { 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 /** @deprecated Use `classNames.active` instead */\n activeClass?: string;\n link?: boolean;\n target?: string;\n to?: RouteLocationRaw;\n exact?: boolean;\n /** @deprecated No longer used — vue-router's `useLink` handles route matching internally */\n exactPath?: boolean;\n vertical?: boolean;\n align?: TabAlignment;\n indicatorPosition?: TabIndicatorPosition;\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 activeClass = '',\n link = false,\n to = '',\n target = '_self',\n exact = false,\n vertical = false,\n align = TabAlignment.center,\n indicatorPosition = TabIndicatorPosition.end,\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 tab = tv({\n base: 'min-w-[5.625rem] max-w-[22.5rem] flex items-center rounded-none cursor-pointer relative whitespace-nowrap shrink-0 !px-4',\n variants: {\n layout: {\n [TabLayout.horizontal]: '',\n // `min-h` keeps the 48px floor of the horizontal layout while letting richer content grow instead of clipping\n [TabLayout.vertical]: '!min-h-[3rem] w-full max-w-none',\n },\n align: {\n start: 'justify-start text-left rtl:justify-end rtl:text-right',\n center: 'justify-center text-center',\n end: 'justify-end text-right rtl:justify-start rtl:text-left',\n },\n grow: {\n true: 'grow max-w-none',\n },\n disabled: {\n true: 'cursor-not-allowed',\n },\n active: {\n true: '',\n false: '',\n },\n indicatorPosition: {\n start: '',\n end: '',\n },\n },\n compoundVariants: [\n // Horizontal active indicator (bottom/top border)\n { active: true, layout: TabLayout.horizontal, indicatorPosition: 'end', class: `after:content-[''] after:absolute after:border-current after:h-0 after:w-full after:bottom-0 after:left-0 after:border-b-2` },\n { active: true, layout: TabLayout.horizontal, indicatorPosition: 'start', class: `after:content-[''] after:absolute after:border-current after:h-0 after:w-full after:top-0 after:left-0 after:border-b-2` },\n // Vertical active indicator (right/left border)\n { active: true, layout: TabLayout.vertical, indicatorPosition: 'end', class: `after:content-[''] after:absolute after:border-current after:h-full after:w-0 after:right-0 after:left-auto after:border-r-2` },\n { active: true, layout: TabLayout.vertical, indicatorPosition: 'start', class: `after:content-[''] after:absolute after:border-current after:h-full after:w-0 after:left-0 after:right-auto after:border-r-2` },\n ],\n defaultVariants: { layout: TabLayout.horizontal, align: 'center', indicatorPosition: 'end', active: false },\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));\n\nfunction onClick(event?: MouseEvent): void {\n emit('click', value);\n if (navigate && get(isSelf) && event)\n navigate(event);\n}\n</script>\n\n<template>\n <RuiButton\n :class=\"[\n tab({ layout, align, indicatorPosition, grow, disabled, active: isEffectivelyActive }),\n isEffectivelyActive && (classNames?.active ?? activeClass),\n ]\"\n :data-active-tab=\"isEffectivelyActive || undefined\"\n :data-align=\"align\"\n :data-indicator-position=\"indicatorPosition\"\n :data-vertical=\"vertical || undefined\"\n :color=\"isEffectivelyActive ? color : undefined\"\n :disabled=\"disabled\"\n :href=\"isLink && !isSelf ? linkHref : undefined\"\n :target=\"isLink ? target : undefined\"\n :tag=\"isLink ? 'a' : undefined\"\n :no-outline=\"isLink\"\n role=\"tab\"\n :aria-selected=\"isEffectivelyActive\"\n tabindex=\"-1\"\n hide-focus-indicator\n variant=\"text\"\n v-bind=\"$attrs\"\n @click=\"disabled ? undefined : onClick($event)\"\n >\n <template\n v-if=\"slots.prepend\"\n #prepend\n >\n <slot name=\"prepend\" />\n </template>\n <slot />\n <template\n v-if=\"slots.append\"\n #append\n >\n <slot name=\"append\" />\n </template>\n </RuiButton>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"RuiTab.js","names":[],"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,7 +1,7 @@
1
1
  import type { RouteLocationRaw } from 'vue-router';
2
2
  import type { ContextColorsType } from '../../../consts/colors.js';
3
3
  import type { VueClassValue } from '../../../types/class-value';
4
- import { TabAlignment, TabIndicatorPosition } from '../tab-props.js';
4
+ import { TabAlignment, TabIndicatorPosition, TabVariant } from '../tab-props.js';
5
5
  export interface RuiTabClassNames {
6
6
  root?: VueClassValue;
7
7
  active?: VueClassValue;
@@ -13,17 +13,14 @@ export interface Props {
13
13
  value?: number | string;
14
14
  active?: boolean;
15
15
  classNames?: RuiTabClassNames;
16
- /** @deprecated Use `classNames.active` instead */
17
- activeClass?: string;
18
16
  link?: boolean;
19
17
  target?: string;
20
18
  to?: RouteLocationRaw;
21
19
  exact?: boolean;
22
- /** @deprecated No longer used — vue-router's `useLink` handles route matching internally */
23
- exactPath?: boolean;
24
20
  vertical?: boolean;
25
21
  align?: TabAlignment;
26
22
  indicatorPosition?: TabIndicatorPosition;
23
+ variant?: TabVariant;
27
24
  }
28
25
  type __VLS_Slots = {
29
26
  default?: (props?: object) => any;
@@ -1,8 +1,7 @@
1
- import { tv } from "../../../utils/tv.js";
2
- import RuiButton_default from "../../buttons/button/RuiButton.js";
3
- import { TabAlignment, TabIndicatorPosition, TabLayout } from "../tab-props.js";
1
+ import { cn, tv } from "../../../utils/tv.js";
2
+ import { TabAlignment, TabIndicatorPosition, TabLayout, TabVariant } from "../tab-props.js";
4
3
  import { useTabLink } from "./use-tab-link.js";
5
- import { computed, createBlock, createSlots, defineComponent, mergeProps, openBlock, renderSlot, unref, useId, useSlots, withCtx } from "vue";
4
+ import { computed, createBlock, createCommentVNode, createElementVNode, defineComponent, mergeProps, normalizeClass, openBlock, renderSlot, resolveDynamicComponent, unref, useId, useSlots, withCtx } from "vue";
6
5
  import { get } from "@vueuse/shared";
7
6
  //#region src/components/tabs/tab/RuiTab.vue?vue&type=script&setup=true&lang.ts
8
7
  var RuiTab_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineComponent({
@@ -25,7 +24,6 @@ var RuiTab_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
25
24
  default: false
26
25
  },
27
26
  classNames: {},
28
- activeClass: { default: "" },
29
27
  link: {
30
28
  type: Boolean,
31
29
  default: false
@@ -36,72 +34,98 @@ var RuiTab_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
36
34
  type: Boolean,
37
35
  default: false
38
36
  },
39
- exactPath: { type: Boolean },
40
37
  vertical: {
41
38
  type: Boolean,
42
39
  default: false
43
40
  },
44
41
  align: { default: () => TabAlignment.center },
45
- indicatorPosition: { default: () => TabIndicatorPosition.end }
42
+ indicatorPosition: { default: () => TabIndicatorPosition.end },
43
+ variant: { default: () => TabVariant.underline }
46
44
  },
47
45
  emits: ["click"],
48
46
  setup(__props, { emit: __emit }) {
49
47
  const emit = __emit;
50
48
  const slots = useSlots();
49
+ /**
50
+ * A tab is a plain button or link: RuiTabs draws the active indicator, so a tab
51
+ * only sets its label color, and its hover fill. On the underline bar the fill
52
+ * hugs the label rather than the 40px cell, so the bar stays calm.
53
+ */
51
54
  const tab = tv({
52
- base: "min-w-[5.625rem] max-w-[22.5rem] flex items-center rounded-none cursor-pointer relative whitespace-nowrap shrink-0 !px-4",
55
+ slots: {
56
+ root: [
57
+ "group relative inline-flex shrink-0 items-center whitespace-nowrap rounded-rui-control",
58
+ "text-sm font-medium text-rui-text-secondary transition-colors duration-150 [--rui-icon-size:1rem]",
59
+ "outline-hidden focus-visible:focus-ring focus-visible:-outline-offset-2"
60
+ ].join(" "),
61
+ content: "inline-flex items-center gap-2 rounded-rui-control transition-colors duration-150"
62
+ },
53
63
  variants: {
64
+ variant: {
65
+ [TabVariant.underline]: {
66
+ root: "px-1",
67
+ content: "h-8 px-2"
68
+ },
69
+ [TabVariant.segmented]: { root: "z-1 h-8 px-3" }
70
+ },
54
71
  layout: {
55
- [TabLayout.horizontal]: "",
56
- [TabLayout.vertical]: "!min-h-[3rem] w-full max-w-none"
72
+ [TabLayout.horizontal]: {},
73
+ [TabLayout.vertical]: { root: "w-full" }
57
74
  },
58
75
  align: {
59
- start: "justify-start text-left rtl:justify-end rtl:text-right",
60
- center: "justify-center text-center",
61
- end: "justify-end text-right rtl:justify-start rtl:text-left"
76
+ start: { root: "justify-start text-left rtl:justify-end rtl:text-right" },
77
+ center: { root: "justify-center text-center" },
78
+ end: { root: "justify-end text-right rtl:justify-start rtl:text-left" }
62
79
  },
63
- grow: { true: "grow max-w-none" },
64
- disabled: { true: "cursor-not-allowed" },
80
+ grow: { true: { root: "grow" } },
65
81
  active: {
66
- true: "",
67
- false: ""
82
+ true: { root: "text-rui-text" },
83
+ false: {}
68
84
  },
69
- indicatorPosition: {
70
- start: "",
71
- end: ""
85
+ disabled: {
86
+ true: { root: "cursor-not-allowed text-rui-text-disabled" },
87
+ false: { root: "cursor-pointer hover:text-rui-text" }
72
88
  }
73
89
  },
74
90
  compoundVariants: [
75
91
  {
76
- active: true,
92
+ variant: TabVariant.underline,
77
93
  layout: TabLayout.horizontal,
78
- indicatorPosition: "end",
79
- class: `after:content-[''] after:absolute after:border-current after:h-0 after:w-full after:bottom-0 after:left-0 after:border-b-2`
94
+ class: { root: "h-10" }
80
95
  },
81
96
  {
82
- active: true,
97
+ variant: TabVariant.underline,
83
98
  layout: TabLayout.horizontal,
84
- indicatorPosition: "start",
85
- class: `after:content-[''] after:absolute after:border-current after:h-0 after:w-full after:top-0 after:left-0 after:border-b-2`
99
+ disabled: false,
100
+ class: { content: "group-hover:bg-rui-hover" }
86
101
  },
87
102
  {
88
- active: true,
103
+ variant: TabVariant.underline,
89
104
  layout: TabLayout.vertical,
90
- indicatorPosition: "end",
91
- class: `after:content-[''] after:absolute after:border-current after:h-full after:w-0 after:right-0 after:left-auto after:border-r-2`
105
+ class: {
106
+ root: "min-h-9 px-3",
107
+ content: "h-auto px-0 py-2"
108
+ }
92
109
  },
93
110
  {
94
- active: true,
111
+ variant: TabVariant.underline,
95
112
  layout: TabLayout.vertical,
96
- indicatorPosition: "start",
97
- class: `after:content-[''] after:absolute after:border-current after:h-full after:w-0 after:left-0 after:right-auto after:border-r-2`
113
+ disabled: false,
114
+ class: { root: "hover:bg-rui-hover" }
115
+ },
116
+ {
117
+ variant: TabVariant.underline,
118
+ layout: TabLayout.vertical,
119
+ active: true,
120
+ class: { root: "bg-rui-hover" }
98
121
  }
99
122
  ],
100
123
  defaultVariants: {
124
+ variant: TabVariant.underline,
101
125
  layout: TabLayout.horizontal,
102
126
  align: "center",
103
- indicatorPosition: "end",
104
- active: false
127
+ active: false,
128
+ disabled: false
105
129
  }
106
130
  });
107
131
  const { isRouteActive, href: linkHref, navigate, isLink } = useTabLink({
@@ -112,59 +136,61 @@ var RuiTab_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defineCom
112
136
  const layout = computed(() => __props.vertical ? TabLayout.vertical : TabLayout.horizontal);
113
137
  const isSelf = computed(() => __props.target === "_self");
114
138
  const isEffectivelyActive = computed(() => __props.active || get(isRouteActive));
139
+ const ui = computed(() => tab({
140
+ variant: __props.variant,
141
+ layout: get(layout),
142
+ align: __props.align,
143
+ grow: __props.grow,
144
+ disabled: __props.disabled,
145
+ active: get(isEffectivelyActive)
146
+ }));
115
147
  function onClick(event) {
148
+ if (__props.disabled) {
149
+ event.preventDefault();
150
+ return;
151
+ }
116
152
  emit("click", __props.value);
117
- if (navigate && get(isSelf) && event) navigate(event);
153
+ if (navigate && get(isSelf)) navigate(event);
118
154
  }
119
155
  return (_ctx, _cache) => {
120
- return openBlock(), createBlock(RuiButton_default, mergeProps({
121
- class: [unref(tab)({
122
- layout: unref(layout),
123
- align: __props.align,
124
- indicatorPosition: __props.indicatorPosition,
125
- grow: __props.grow,
126
- disabled: __props.disabled,
127
- active: unref(isEffectivelyActive)
128
- }), unref(isEffectivelyActive) && (__props.classNames?.active ?? __props.activeClass)],
156
+ return openBlock(), createBlock(resolveDynamicComponent(unref(isLink) ? "a" : "button"), mergeProps({
157
+ type: unref(isLink) ? void 0 : "button",
158
+ class: [unref(ui).root({ class: unref(cn)(__props.classNames?.root) }), unref(isEffectivelyActive) && __props.classNames?.active],
129
159
  "data-active-tab": unref(isEffectivelyActive) || void 0,
130
160
  "data-align": __props.align,
131
161
  "data-indicator-position": __props.indicatorPosition,
132
162
  "data-vertical": __props.vertical || void 0,
133
- color: unref(isEffectivelyActive) ? __props.color : void 0,
134
- disabled: __props.disabled,
135
- href: unref(isLink) && !unref(isSelf) ? unref(linkHref) : void 0,
163
+ "data-variant": __props.variant,
164
+ "data-color": unref(isEffectivelyActive) ? __props.color : void 0,
165
+ disabled: unref(isLink) ? void 0 : __props.disabled,
166
+ "aria-disabled": unref(isLink) && __props.disabled ? "true" : void 0,
167
+ href: unref(isLink) && !unref(isSelf) && !__props.disabled ? unref(linkHref) : void 0,
136
168
  target: unref(isLink) ? __props.target : void 0,
137
- tag: unref(isLink) ? "a" : void 0,
138
- "no-outline": unref(isLink),
139
169
  role: "tab",
140
170
  "aria-selected": unref(isEffectivelyActive),
141
- tabindex: "-1",
142
- "hide-focus-indicator": "",
143
- variant: "text"
144
- }, _ctx.$attrs, { onClick: _cache[0] || (_cache[0] = ($event) => __props.disabled ? void 0 : onClick($event)) }), createSlots({
145
- default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
146
- _: 2
147
- }, [slots.prepend ? {
148
- name: "prepend",
149
- fn: withCtx(() => [renderSlot(_ctx.$slots, "prepend")]),
150
- key: "0"
151
- } : void 0, slots.append ? {
152
- name: "append",
153
- fn: withCtx(() => [renderSlot(_ctx.$slots, "append")]),
154
- key: "1"
155
- } : void 0]), 1040, [
171
+ tabindex: unref(isEffectivelyActive) && !__props.disabled ? 0 : -1
172
+ }, _ctx.$attrs, { onClick: _cache[0] || (_cache[0] = ($event) => onClick($event)) }), {
173
+ default: withCtx(() => [createElementVNode("span", { class: normalizeClass(unref(ui).content()) }, [
174
+ slots.prepend ? renderSlot(_ctx.$slots, "prepend", {}, void 0, void 0, 0) : createCommentVNode("", true),
175
+ renderSlot(_ctx.$slots, "default"),
176
+ slots.append ? renderSlot(_ctx.$slots, "append", {}, void 0, void 0, 1) : createCommentVNode("", true)
177
+ ], 2)]),
178
+ _: 3
179
+ }, 16, [
180
+ "type",
156
181
  "class",
157
182
  "data-active-tab",
158
183
  "data-align",
159
184
  "data-indicator-position",
160
185
  "data-vertical",
161
- "color",
186
+ "data-variant",
187
+ "data-color",
162
188
  "disabled",
189
+ "aria-disabled",
163
190
  "href",
164
191
  "target",
165
- "tag",
166
- "no-outline",
167
- "aria-selected"
192
+ "aria-selected",
193
+ "tabindex"
168
194
  ]);
169
195
  };
170
196
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RuiTab.vue_vue_type_script_setup_true_lang.js","names":["$attrs"],"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 RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport { TabAlignment, TabIndicatorPosition, TabLayout } from '@/components/tabs/tab-props';\nimport { useTabLink } from '@/components/tabs/tab/use-tab-link';\nimport { 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 /** @deprecated Use `classNames.active` instead */\n activeClass?: string;\n link?: boolean;\n target?: string;\n to?: RouteLocationRaw;\n exact?: boolean;\n /** @deprecated No longer used — vue-router's `useLink` handles route matching internally */\n exactPath?: boolean;\n vertical?: boolean;\n align?: TabAlignment;\n indicatorPosition?: TabIndicatorPosition;\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 activeClass = '',\n link = false,\n to = '',\n target = '_self',\n exact = false,\n vertical = false,\n align = TabAlignment.center,\n indicatorPosition = TabIndicatorPosition.end,\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 tab = tv({\n base: 'min-w-[5.625rem] max-w-[22.5rem] flex items-center rounded-none cursor-pointer relative whitespace-nowrap shrink-0 !px-4',\n variants: {\n layout: {\n [TabLayout.horizontal]: '',\n // `min-h` keeps the 48px floor of the horizontal layout while letting richer content grow instead of clipping\n [TabLayout.vertical]: '!min-h-[3rem] w-full max-w-none',\n },\n align: {\n start: 'justify-start text-left rtl:justify-end rtl:text-right',\n center: 'justify-center text-center',\n end: 'justify-end text-right rtl:justify-start rtl:text-left',\n },\n grow: {\n true: 'grow max-w-none',\n },\n disabled: {\n true: 'cursor-not-allowed',\n },\n active: {\n true: '',\n false: '',\n },\n indicatorPosition: {\n start: '',\n end: '',\n },\n },\n compoundVariants: [\n // Horizontal active indicator (bottom/top border)\n { active: true, layout: TabLayout.horizontal, indicatorPosition: 'end', class: `after:content-[''] after:absolute after:border-current after:h-0 after:w-full after:bottom-0 after:left-0 after:border-b-2` },\n { active: true, layout: TabLayout.horizontal, indicatorPosition: 'start', class: `after:content-[''] after:absolute after:border-current after:h-0 after:w-full after:top-0 after:left-0 after:border-b-2` },\n // Vertical active indicator (right/left border)\n { active: true, layout: TabLayout.vertical, indicatorPosition: 'end', class: `after:content-[''] after:absolute after:border-current after:h-full after:w-0 after:right-0 after:left-auto after:border-r-2` },\n { active: true, layout: TabLayout.vertical, indicatorPosition: 'start', class: `after:content-[''] after:absolute after:border-current after:h-full after:w-0 after:left-0 after:right-auto after:border-r-2` },\n ],\n defaultVariants: { layout: TabLayout.horizontal, align: 'center', indicatorPosition: 'end', active: false },\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));\n\nfunction onClick(event?: MouseEvent): void {\n emit('click', value);\n if (navigate && get(isSelf) && event)\n navigate(event);\n}\n</script>\n\n<template>\n <RuiButton\n :class=\"[\n tab({ layout, align, indicatorPosition, grow, disabled, active: isEffectivelyActive }),\n isEffectivelyActive && (classNames?.active ?? activeClass),\n ]\"\n :data-active-tab=\"isEffectivelyActive || undefined\"\n :data-align=\"align\"\n :data-indicator-position=\"indicatorPosition\"\n :data-vertical=\"vertical || undefined\"\n :color=\"isEffectivelyActive ? color : undefined\"\n :disabled=\"disabled\"\n :href=\"isLink && !isSelf ? linkHref : undefined\"\n :target=\"isLink ? target : undefined\"\n :tag=\"isLink ? 'a' : undefined\"\n :no-outline=\"isLink\"\n role=\"tab\"\n :aria-selected=\"isEffectivelyActive\"\n tabindex=\"-1\"\n hide-focus-indicator\n variant=\"text\"\n v-bind=\"$attrs\"\n @click=\"disabled ? undefined : onClick($event)\"\n >\n <template\n v-if=\"slots.prepend\"\n #prepend\n >\n <slot name=\"prepend\" />\n </template>\n <slot />\n <template\n v-if=\"slots.append\"\n #append\n >\n <slot name=\"append\" />\n </template>\n </RuiButton>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwDA,MAAM,OAAO;EAIb,MAAM,QAAQ,SAAA;EAMd,MAAM,MAAM,GAAG;GACb,MAAM;GACN,UAAU;IACR,QAAQ;MACL,UAAU,aAAa;MAEvB,UAAU,WAAW;IACxB;IACA,OAAO;KACL,OAAO;KACP,QAAQ;KACR,KAAK;IACP;IACA,MAAM,EACJ,MAAM,kBACR;IACA,UAAU,EACR,MAAM,qBACR;IACA,QAAQ;KACN,MAAM;KACN,OAAO;IACT;IACA,mBAAmB;KACjB,OAAO;KACP,KAAK;IACP;GACF;GACA,kBAAkB;IAEhB;KAAE,QAAQ;KAAM,QAAQ,UAAU;KAAY,mBAAmB;KAAO,OAAO;IAA6H;IAC5M;KAAE,QAAQ;KAAM,QAAQ,UAAU;KAAY,mBAAmB;KAAS,OAAO;IAA0H;IAE3M;KAAE,QAAQ;KAAM,QAAQ,UAAU;KAAU,mBAAmB;KAAO,OAAO;IAA+H;IAC5M;KAAE,QAAQ;KAAM,QAAQ,UAAU;KAAU,mBAAmB;KAAS,OAAO;IAA+H;GAChN;GACA,iBAAiB;IAAE,QAAQ,UAAU;IAAY,OAAO;IAAU,mBAAmB;IAAO,QAAQ;GAAM;EAC5G,CAAC;EAED,MAAM,EAAE,eAAe,MAAM,UAAU,UAAU,WAAW,WAAW;GACrE,YAAY,QAAA;GACZ,UAAU,QAAA;GACV,aAAa,QAAA;EACf,CAAC;EAED,MAAM,SAAS,eAA0B,QAAA,WAAW,UAAU,WAAW,UAAU,UAAU;EAC7F,MAAM,SAAS,eAAwB,QAAA,WAAW,OAAO;EACzD,MAAM,sBAAsB,eAAwB,QAAA,UAAU,IAAI,aAAa,CAAC;EAEhF,SAAS,QAAQ,OAA0B;GACzC,KAAK,SAAS,QAAA,KAAK;GACnB,IAAI,YAAY,IAAI,MAAM,KAAK,OAC7B,SAAS,KAAK;EAClB;;GAIE,OAAA,UAAA,GAAA,YAoCY,mBApCZ,WAoCY;IAnCT,OAAK,CAAU,MAAA,GAAA,CAAG,CAAA;KAAA,QAAG,MAAA,MAAA;KAAM,OAAE,QAAA;KAAK,mBAAE,QAAA;KAAiB,MAAE,QAAA;KAAI,UAAE,QAAA;KAAQ,QAAU,MAAA,mBAAA;IAAmB,CAAA,GAAW,MAAA,mBAAA,MAAwB,QAAA,YAAY,UAAU,QAAA,YAAA;IAI3J,mBAAiB,MAAA,mBAAA,KAAuB,KAAA;IACxC,cAAY,QAAA;IACZ,2BAAyB,QAAA;IACzB,iBAAe,QAAA,YAAY,KAAA;IAC3B,OAAO,MAAA,mBAAA,IAAsB,QAAA,QAAQ,KAAA;IACrC,UAAU,QAAA;IACV,MAAM,MAAA,MAAA,KAAM,CAAK,MAAA,MAAA,IAAS,MAAA,QAAA,IAAW,KAAA;IACrC,QAAQ,MAAA,MAAA,IAAS,QAAA,SAAS,KAAA;IAC1B,KAAK,MAAA,MAAA,IAAM,MAAS,KAAA;IACpB,cAAY,MAAA,MAAA;IACb,MAAK;IACJ,iBAAe,MAAA,mBAAA;IAChB,UAAS;IACT,wBAAA;IACA,SAAQ;GACAA,GAAAA,KAAAA,QAAM,EACb,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,QAAA,WAAW,KAAA,IAAY,QAAQ,MAAM,GAAA,CAAA,GAAA,YAAA;IAQ7C,SAAA,cAAQ,CAAR,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA;;GALA,GAAA,CAAA,MAAM,UAAA;IACX,MAAA;IAED,IAAA,cAAuB,CAAvB,WAAuB,KAAA,QAAA,SAAA,CAAA,CAAA;;GAIjB,IAAA,KAAA,GAAA,MAAM,SAAA;IACX,MAAA;IAED,IAAA,cAAsB,CAAtB,WAAsB,KAAA,QAAA,QAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"RuiTab.vue_vue_type_script_setup_true_lang.js","names":["$attrs"],"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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDA,MAAM,OAAO;EAIb,MAAM,QAAQ,SAAA;;;;;;EAWd,MAAM,MAAM,GAAG;GACb,OAAO;IACL,MAAM;KACJ;KACA;KAEA;IACF,CAAC,CAAC,KAAK,GAAG;IACV,SAAS;GACX;GACA,UAAU;IACR,SAAS;MACN,WAAW,YAAY;MAAE,MAAM;MAAQ,SAAS;KAAW;MAE3D,WAAW,YAAY,EAAE,MAAM,eAAe;IACjD;IACA,QAAQ;MACL,UAAU,aAAa,CAAC;MACxB,UAAU,WAAW,EAAE,MAAM,SAAS;IACzC;IACA,OAAO;KACL,OAAO,EAAE,MAAM,yDAAyD;KACxE,QAAQ,EAAE,MAAM,6BAA6B;KAC7C,KAAK,EAAE,MAAM,yDAAyD;IACxE;IACA,MAAM,EACJ,MAAM,EAAE,MAAM,OAAO,EACvB;IACA,QAAQ;KACN,MAAM,EAAE,MAAM,gBAAgB;KAC9B,OAAO,CAAC;IACV;IACA,UAAU;KACR,MAAM,EAAE,MAAM,4CAA4C;KAC1D,OAAO,EAAE,MAAM,qCAAqC;IACtD;GACF;GACA,kBAAkB;IAChB;KAAE,SAAS,WAAW;KAAW,QAAQ,UAAU;KAAY,OAAO,EAAE,MAAM,OAAO;IAAE;IACvF;KAAE,SAAS,WAAW;KAAW,QAAQ,UAAU;KAAY,UAAU;KAAO,OAAO,EAAE,SAAS,2BAA2B;IAAE;IAE/H;KAAE,SAAS,WAAW;KAAW,QAAQ,UAAU;KAAU,OAAO;MAAE,MAAM;MAAgB,SAAS;KAAmB;IAAE;IAC1H;KAAE,SAAS,WAAW;KAAW,QAAQ,UAAU;KAAU,UAAU;KAAO,OAAO,EAAE,MAAM,qBAAqB;IAAE;IACpH;KAAE,SAAS,WAAW;KAAW,QAAQ,UAAU;KAAU,QAAQ;KAAM,OAAO,EAAE,MAAM,eAAe;IAAE;GAC7G;GACA,iBAAiB;IACf,SAAS,WAAW;IACpB,QAAQ,UAAU;IAClB,OAAO;IACP,QAAQ;IACR,UAAU;GACZ;EACF,CAAC;EAED,MAAM,EAAE,eAAe,MAAM,UAAU,UAAU,WAAW,WAAW;GACrE,YAAY,QAAA;GACZ,UAAU,QAAA;GACV,aAAa,QAAA;EACf,CAAC;EAED,MAAM,SAAS,eAA0B,QAAA,WAAW,UAAU,WAAW,UAAU,UAAU;EAC7F,MAAM,SAAS,eAAwB,QAAA,WAAW,OAAO;EACzD,MAAM,sBAAsB,eAAwB,QAAA,UAAU,IAAI,aAAa,CAAC;EAChF,MAAM,KAAK,eAAuC,IAAI;GACpD,SAAM,QAAA;GACN,QAAQ,IAAI,MAAM;GAClB,OAAI,QAAA;GACJ,MAAG,QAAA;GACH,UAAO,QAAA;GACP,QAAQ,IAAI,mBAAmB;EACjC,CAAC,CAAC;EAEF,SAAS,QAAQ,OAAyB;GACxC,IAAI,QAAA,UAAU;IACZ,MAAM,eAAe;IACrB;GACF;GAEA,KAAK,SAAS,QAAA,KAAK;GACnB,IAAI,YAAY,IAAI,MAAM,GACxB,SAAS,KAAK;EAClB;;GAIE,OAAA,UAAA,GAAA,YAkCY,wBAjCL,MAAA,MAAA,IAAM,MAAA,QAAA,GADb,WAkCY;IAhCT,MAAM,MAAA,MAAA,IAAS,KAAA,IAAS;IACxB,OAAK,CAAU,MAAA,EAAA,CAAE,CAAC,KAAI,EAAA,OAAU,MAAA,EAAA,CAAE,CAAC,QAAA,YAAY,IAAI,EAAA,CAAA,GAAY,MAAA,mBAAA,KAAuB,QAAA,YAAY,MAAA;IAIlG,mBAAiB,MAAA,mBAAA,KAAuB,KAAA;IACxC,cAAY,QAAA;IACZ,2BAAyB,QAAA;IACzB,iBAAe,QAAA,YAAY,KAAA;IAC3B,gBAAc,QAAA;IACd,cAAY,MAAA,mBAAA,IAAsB,QAAA,QAAQ,KAAA;IAC1C,UAAU,MAAA,MAAA,IAAS,KAAA,IAAY,QAAA;IAC/B,iBAAe,MAAA,MAAA,KAAU,QAAA,WAAQ,SAAY,KAAA;IAC7C,MAAM,MAAA,MAAA,KAAM,CAAK,MAAA,MAAA,KAAM,CAAK,QAAA,WAAW,MAAA,QAAA,IAAW,KAAA;IAClD,QAAQ,MAAA,MAAA,IAAS,QAAA,SAAS,KAAA;IAC3B,MAAK;IACJ,iBAAe,MAAA,mBAAA;IACf,UAAU,MAAA,mBAAA,KAAmB,CAAK,QAAA,WAAQ,IAAA;GACnCA,GAAAA,KAAAA,QAAM,EACb,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,QAAQ,MAAM,GAAA,CAAA,GAAA;IAEtB,SAAA,cAUO,CAVP,mBAUO,QAAA,EAVA,OAAK,eAAE,MAAA,EAAA,CAAE,CAAC,QAAO,CAAA,EAAA,GAAA;KAEd,MAAM,UADd,WAGE,KAAA,QAAA,WAAA,CAAA,GAAA,KAAA,GAAA,KAAA,GAAA,CAAA,IAAA,mBAAA,IAAA,IAAA;KACF,WAAQ,KAAA,QAAA,SAAA;KAEA,MAAM,SADd,WAGE,KAAA,QAAA,UAAA,CAAA,GAAA,KAAA,GAAA,KAAA,GAAA,CAAA,IAAA,mBAAA,IAAA,IAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"RuiTabItem.js","names":[],"sources":["../../../../src/components/tabs/tab-item/RuiTabItem.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nexport interface Props {\n active?: boolean;\n value?: number | string;\n eager?: boolean;\n reverse?: boolean;\n}\n\ndefineOptions({\n name: 'RuiTabItem',\n});\n\nconst { active = false, value, eager = false, reverse = false } = defineProps<Props>();\n\ndefineSlots<{\n default?: () => any;\n}>();\n</script>\n\n<template>\n <div\n role=\"tabpanel\"\n class=\"w-full\"\n :data-value=\"value\"\n :data-active=\"active || undefined\"\n >\n <Transition\n :enter-from-class=\"`opacity-0 ${reverse ? '-translate-x-8' : 'translate-x-8'}`\"\n :leave-to-class=\"`opacity-0 !h-0 overflow-hidden ${\n reverse ? 'translate-x-8' : '-translate-x-8'\n }`\"\n enter-active-class=\"w-full transform duration-300 transition\"\n enter-to-class=\"opacity-100 translate-x-0\"\n leave-active-class=\"w-full transform duration-300 transition !h-0 overflow-hidden\"\n leave-from-class=\"opacity-100 translate-x-0 !h-0 overflow-hidden\"\n >\n <div\n v-if=\"active\"\n class=\"w-full\"\n >\n <slot />\n </div>\n </Transition>\n <div\n v-if=\"eager && !active\"\n class=\"hidden\"\n >\n <slot />\n </div>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"RuiTabItem.js","names":[],"sources":["../../../../src/components/tabs/tab-item/RuiTabItem.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nexport interface Props {\n active?: boolean;\n value?: number | string;\n eager?: boolean;\n}\n\ndefineOptions({\n name: 'RuiTabItem',\n});\n\nconst { active = false, value, eager = false } = defineProps<Props>();\n\ndefineSlots<{\n default?: () => any;\n}>();\n</script>\n\n<template>\n <div\n role=\"tabpanel\"\n class=\"w-full\"\n :data-value=\"value\"\n :data-active=\"active || undefined\"\n >\n <!-- the new panel fades in while the old one collapses at once, rather than Material's sideways swipe -->\n <Transition\n enter-from-class=\"opacity-0\"\n enter-active-class=\"w-full transition-opacity duration-150 ease-out motion-reduce:transition-none\"\n enter-to-class=\"opacity-100\"\n leave-active-class=\"w-full h-0! overflow-hidden\"\n >\n <div\n v-if=\"active\"\n class=\"w-full\"\n >\n <slot />\n </div>\n </Transition>\n <div\n v-if=\"eager && !active\"\n class=\"hidden\"\n >\n <slot />\n </div>\n </div>\n</template>\n"],"mappings":""}
@@ -2,7 +2,6 @@ export interface Props {
2
2
  active?: boolean;
3
3
  value?: number | string;
4
4
  eager?: boolean;
5
- reverse?: boolean;
6
5
  }
7
6
  type __VLS_Slots = {
8
7
  default?: () => any;
@@ -21,10 +21,6 @@ var RuiTabItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
21
21
  eager: {
22
22
  type: Boolean,
23
23
  default: false
24
- },
25
- reverse: {
26
- type: Boolean,
27
- default: false
28
24
  }
29
25
  },
30
26
  setup(__props) {
@@ -35,16 +31,14 @@ var RuiTabItem_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ defin
35
31
  "data-value": __props.value,
36
32
  "data-active": __props.active || void 0
37
33
  }, [createVNode(Transition, {
38
- "enter-from-class": `opacity-0 ${__props.reverse ? "-translate-x-8" : "translate-x-8"}`,
39
- "leave-to-class": `opacity-0 !h-0 overflow-hidden ${__props.reverse ? "translate-x-8" : "-translate-x-8"}`,
40
- "enter-active-class": "w-full transform duration-300 transition",
41
- "enter-to-class": "opacity-100 translate-x-0",
42
- "leave-active-class": "w-full transform duration-300 transition !h-0 overflow-hidden",
43
- "leave-from-class": "opacity-100 translate-x-0 !h-0 overflow-hidden"
34
+ "enter-from-class": "opacity-0",
35
+ "enter-active-class": "w-full transition-opacity duration-150 ease-out motion-reduce:transition-none",
36
+ "enter-to-class": "opacity-100",
37
+ "leave-active-class": "w-full h-0! overflow-hidden"
44
38
  }, {
45
39
  default: withCtx(() => [__props.active ? (openBlock(), createElementBlock("div", _hoisted_2, [renderSlot(_ctx.$slots, "default")])) : createCommentVNode("", true)]),
46
40
  _: 3
47
- }, 8, ["enter-from-class", "leave-to-class"]), __props.eager && !__props.active ? (openBlock(), createElementBlock("div", _hoisted_3, [renderSlot(_ctx.$slots, "default")])) : createCommentVNode("", true)], 8, _hoisted_1);
41
+ }), __props.eager && !__props.active ? (openBlock(), createElementBlock("div", _hoisted_3, [renderSlot(_ctx.$slots, "default")])) : createCommentVNode("", true)], 8, _hoisted_1);
48
42
  };
49
43
  }
50
44
  });
@@ -1 +1 @@
1
- {"version":3,"file":"RuiTabItem.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../src/components/tabs/tab-item/RuiTabItem.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nexport interface Props {\n active?: boolean;\n value?: number | string;\n eager?: boolean;\n reverse?: boolean;\n}\n\ndefineOptions({\n name: 'RuiTabItem',\n});\n\nconst { active = false, value, eager = false, reverse = false } = defineProps<Props>();\n\ndefineSlots<{\n default?: () => any;\n}>();\n</script>\n\n<template>\n <div\n role=\"tabpanel\"\n class=\"w-full\"\n :data-value=\"value\"\n :data-active=\"active || undefined\"\n >\n <Transition\n :enter-from-class=\"`opacity-0 ${reverse ? '-translate-x-8' : 'translate-x-8'}`\"\n :leave-to-class=\"`opacity-0 !h-0 overflow-hidden ${\n reverse ? 'translate-x-8' : '-translate-x-8'\n }`\"\n enter-active-class=\"w-full transform duration-300 transition\"\n enter-to-class=\"opacity-100 translate-x-0\"\n leave-active-class=\"w-full transform duration-300 transition !h-0 overflow-hidden\"\n leave-from-class=\"opacity-100 translate-x-0 !h-0 overflow-hidden\"\n >\n <div\n v-if=\"active\"\n class=\"w-full\"\n >\n <slot />\n </div>\n </Transition>\n <div\n v-if=\"eager && !active\"\n class=\"hidden\"\n >\n <slot />\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoBE,OAAA,UAAA,GAAA,mBA6BM,OAAA;IA5BJ,MAAK;IACL,OAAM;IACL,cAAY,QAAA;IACZ,eAAa,QAAA,UAAU,KAAA;GAExB,GAAA,CAAA,YAgBa,YAAA;IAfV,oBAAgB,aAAe,QAAA,UAAO,mBAAA;IACtC,kBAAc,kCAA6C,QAAA,UAAO,kBAAA;IAGnE,sBAAmB;IACnB,kBAAe;IACf,sBAAmB;IACnB,oBAAiB;;IAEjB,SAAA,cAKM,CAJE,QAAA,UADR,UAAA,GAAA,mBAKM,OALN,YAKM,CADJ,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,CAAA,CAAA;;GAIJ,GAAA,GAAA,CAAA,oBAAA,gBAAA,CAAA,GAAA,QAAA,SAAK,CAAK,QAAA,UADlB,UAAA,GAAA,mBAKM,OALN,YAKM,CADJ,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,CAAA,GAAA,GAAA,UAAA"}
1
+ {"version":3,"file":"RuiTabItem.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../src/components/tabs/tab-item/RuiTabItem.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nexport interface Props {\n active?: boolean;\n value?: number | string;\n eager?: boolean;\n}\n\ndefineOptions({\n name: 'RuiTabItem',\n});\n\nconst { active = false, value, eager = false } = defineProps<Props>();\n\ndefineSlots<{\n default?: () => any;\n}>();\n</script>\n\n<template>\n <div\n role=\"tabpanel\"\n class=\"w-full\"\n :data-value=\"value\"\n :data-active=\"active || undefined\"\n >\n <!-- the new panel fades in while the old one collapses at once, rather than Material's sideways swipe -->\n <Transition\n enter-from-class=\"opacity-0\"\n enter-active-class=\"w-full transition-opacity duration-150 ease-out motion-reduce:transition-none\"\n enter-to-class=\"opacity-100\"\n leave-active-class=\"w-full h-0! overflow-hidden\"\n >\n <div\n v-if=\"active\"\n class=\"w-full\"\n >\n <slot />\n </div>\n </Transition>\n <div\n v-if=\"eager && !active\"\n class=\"hidden\"\n >\n <slot />\n </div>\n </div>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;GAmBE,OAAA,UAAA,GAAA,mBA0BM,OAAA;IAzBJ,MAAK;IACL,OAAM;IACL,cAAY,QAAA;IACZ,eAAa,QAAA,UAAU,KAAA;GAGxB,GAAA,CAAA,YAYa,YAAA;IAXX,oBAAiB;IACjB,sBAAmB;IACnB,kBAAe;IACf,sBAAmB;;IAEnB,SAAA,cAKM,CAJE,QAAA,UADR,UAAA,GAAA,mBAKM,OALN,YAKM,CADJ,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,CAAA,CAAA;;GAIJ,CAAA,GAAA,QAAA,SAAK,CAAK,QAAA,UADlB,UAAA,GAAA,mBAKM,OALN,YAKM,CADJ,WAAQ,KAAA,QAAA,SAAA,CAAA,CAAA,KAAA,mBAAA,IAAA,IAAA,CAAA,GAAA,GAAA,UAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"RuiTabItems.js","names":[],"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\n/**\n * The tab whose panel is showing.\n *\n * The default matches RuiTabs. Without one, binding both components to the\n * same ref that starts as `undefined` leaves this component with\n * `modelValue === undefined`, so the `active = modelValue === value` check\n * fails for every tab: the panel renders but stays at height 0, which reads as\n * an element with no content.\n */\nconst modelValue = defineModel<T>({ default: () => 0 as T });\n\nconst slots = useSlots();\n\nconst reverse = ref<boolean>(false);\nconst currIndex = ref<number>(-1);\nconst activeIndex = ref<number>(-1);\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/**\n * Unwraps the fragments a `v-for` in the slot produces, so only tab items come\n * back.\n *\n * @param children - the slot's vnodes\n * @returns the tab items among them\n */\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 class=\"grow transition-all overflow-hidden\"\n :style=\"{ height: `${innerHeight}px` }\"\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"],"mappings":""}
1
+ {"version":3,"file":"RuiTabItems.js","names":[],"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\n/**\n * The tab whose panel is showing.\n *\n * The default matches RuiTabs. Without one, binding both components to the\n * same ref that starts as `undefined` leaves this component with\n * `modelValue === undefined`, so the `active = modelValue === value` check\n * fails for every tab: the panel renders but stays at height 0, which reads as\n * an element with no content.\n */\nconst modelValue = defineModel<T>({ default: () => 0 as T });\n\nconst slots = useSlots();\n\nconst currIndex = ref<number>(-1);\nconst activeIndex = ref<number>(-1);\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(currIndex, index);\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/**\n * Unwraps the fragments a `v-for` in the slot produces, so only tab items come\n * back.\n *\n * @param children - the slot's vnodes\n * @returns the tab items among them\n */\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 class=\"grow transition-[height] duration-200 ease-out overflow-hidden motion-reduce:transition-none\"\n :style=\"{ height: `${innerHeight}px` }\"\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 :active=\"i === activeIndex\"\n />\n </div>\n </div>\n</template>\n"],"mappings":""}