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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (433) 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 +9 -10
  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 +16 -3
  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 +22 -32
  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 +17 -13
  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 +39 -26
  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 +136 -55
  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 +66 -97
  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 +6 -3
  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 +12 -8
  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 +21 -22
  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 +17 -21
  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 +5 -5
  67. package/dist/components/color-picker/RuiColorBoard.vue_vue_type_script_setup_true_lang.js.map +1 -1
  68. package/dist/components/color-picker/RuiColorDisplay.vue_vue_type_script_setup_true_lang.js +1 -1
  69. package/dist/components/color-picker/RuiColorHue.js.map +1 -1
  70. package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js +2 -2
  71. package/dist/components/color-picker/RuiColorHue.vue_vue_type_script_setup_true_lang.js.map +1 -1
  72. package/dist/components/color-picker/RuiColorInput.js.map +1 -1
  73. package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js +46 -36
  74. package/dist/components/color-picker/RuiColorInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  75. package/dist/components/color-picker/RuiColorPicker.js.map +1 -1
  76. package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js +4 -5
  77. package/dist/components/color-picker/RuiColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  78. package/dist/components/date-time-picker/RuiDateTimePicker.js.map +1 -1
  79. package/dist/components/date-time-picker/RuiDateTimePicker.vue.d.ts +3 -2
  80. package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js +81 -80
  81. package/dist/components/date-time-picker/RuiDateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  82. package/dist/components/date-time-picker/RuiDateTimePickerMenu.js.map +1 -1
  83. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js +2 -2
  84. package/dist/components/date-time-picker/RuiDateTimePickerMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  85. package/dist/components/date-time-picker/RuiTimezoneSelect.js.map +1 -1
  86. package/dist/components/date-time-picker/RuiTimezoneSelect.vue.d.ts +4 -3
  87. package/dist/components/date-time-picker/RuiTimezoneSelect.vue_vue_type_script_setup_true_lang.js +3 -3
  88. package/dist/components/date-time-picker/RuiTimezoneSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  89. package/dist/components/date-time-picker/date-time-picker-styles.d.ts +128 -219
  90. package/dist/components/date-time-picker/date-time-picker-styles.js +1 -2
  91. package/dist/components/date-time-picker/date-time-picker-styles.js.map +1 -1
  92. package/dist/components/date-time-picker/use-date-bounds.js +1 -1
  93. package/dist/components/date-time-picker/use-date-time-selection.js +65 -66
  94. package/dist/components/date-time-picker/use-date-time-selection.js.map +1 -1
  95. package/dist/components/date-time-picker/use-input-handler.js +1 -1
  96. package/dist/components/date-time-picker/use-keyboard-handler.js +29 -30
  97. package/dist/components/date-time-picker/use-keyboard-handler.js.map +1 -1
  98. package/dist/components/forms/auto-complete/RuiAutoComplete.js.map +1 -1
  99. package/dist/components/forms/auto-complete/RuiAutoComplete.vue.d.ts +1 -68
  100. package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js +203 -198
  101. package/dist/components/forms/auto-complete/RuiAutoComplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  102. package/dist/components/forms/auto-complete/RuiAutoCompleteOption.js.map +1 -1
  103. package/dist/components/forms/auto-complete/RuiAutoCompleteOption.vue_vue_type_script_setup_true_lang.js +1 -0
  104. package/dist/components/forms/auto-complete/RuiAutoCompleteOption.vue_vue_type_script_setup_true_lang.js.map +1 -1
  105. package/dist/components/forms/auto-complete/RuiAutoCompleteOptionList.js.map +1 -1
  106. package/dist/components/forms/auto-complete/RuiAutoCompleteOptionList.vue.d.ts +2 -0
  107. package/dist/components/forms/auto-complete/RuiAutoCompleteOptionList.vue_vue_type_script_setup_true_lang.js +8 -3
  108. package/dist/components/forms/auto-complete/RuiAutoCompleteOptionList.vue_vue_type_script_setup_true_lang.js.map +1 -1
  109. package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.js.map +1 -1
  110. package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.vue.d.ts +4 -0
  111. package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.vue_vue_type_script_setup_true_lang.js +24 -10
  112. package/dist/components/forms/auto-complete/RuiAutoCompleteSelection.vue_vue_type_script_setup_true_lang.js.map +1 -1
  113. package/dist/components/forms/auto-complete/auto-complete-props.d.ts +66 -0
  114. package/dist/components/forms/auto-complete/auto-complete-styles.d.ts +128 -218
  115. package/dist/components/forms/auto-complete/auto-complete-styles.js +4 -2
  116. package/dist/components/forms/auto-complete/auto-complete-styles.js.map +1 -1
  117. package/dist/components/forms/category-picker/RuiCategoryPicker.js.map +1 -1
  118. package/dist/components/forms/category-picker/RuiCategoryPicker.vue.d.ts +3 -6
  119. package/dist/components/forms/category-picker/RuiCategoryPicker.vue_vue_type_script_setup_true_lang.js +154 -154
  120. package/dist/components/forms/category-picker/RuiCategoryPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  121. package/dist/components/forms/category-picker/category-picker-styles.d.ts +83 -232
  122. package/dist/components/forms/category-picker/category-picker-styles.js +20 -26
  123. package/dist/components/forms/category-picker/category-picker-styles.js.map +1 -1
  124. package/dist/components/forms/check-control-styles.d.ts +61 -2
  125. package/dist/components/forms/check-control-styles.js +53 -46
  126. package/dist/components/forms/check-control-styles.js.map +1 -1
  127. package/dist/components/forms/checkbox/RuiCheckbox.js.map +1 -1
  128. package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js +32 -19
  129. package/dist/components/forms/checkbox/RuiCheckbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  130. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.js.map +1 -1
  131. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.vue_vue_type_script_setup_true_lang.js +4 -4
  132. package/dist/components/forms/checkbox/checkbox-group/RuiCheckboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  133. package/dist/components/forms/field-defaults/RuiFieldDefaults.js +7 -0
  134. package/dist/components/forms/field-defaults/RuiFieldDefaults.js.map +1 -0
  135. package/dist/components/forms/field-defaults/RuiFieldDefaults.vue.d.ts +16 -0
  136. package/dist/components/forms/field-defaults/RuiFieldDefaults.vue_vue_type_script_setup_true_lang.js +18 -0
  137. package/dist/components/forms/field-defaults/RuiFieldDefaults.vue_vue_type_script_setup_true_lang.js.map +1 -0
  138. package/dist/components/forms/field-label/RuiFieldLabel.js +7 -0
  139. package/dist/components/forms/field-label/RuiFieldLabel.js.map +1 -0
  140. package/dist/components/forms/field-label/RuiFieldLabel.vue.d.ts +17 -0
  141. package/dist/components/forms/field-label/RuiFieldLabel.vue_vue_type_script_setup_true_lang.js +57 -0
  142. package/dist/components/forms/field-label/RuiFieldLabel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  143. package/dist/components/forms/file-upload/RuiFileUpload.js.map +1 -1
  144. package/dist/components/forms/file-upload/RuiFileUpload.vue.d.ts +1 -1
  145. package/dist/components/forms/file-upload/RuiFileUpload.vue_vue_type_script_setup_true_lang.js +56 -35
  146. package/dist/components/forms/file-upload/RuiFileUpload.vue_vue_type_script_setup_true_lang.js.map +1 -1
  147. package/dist/components/forms/radio-button/radio/RuiRadio.js.map +1 -1
  148. package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js +14 -15
  149. package/dist/components/forms/radio-button/radio/RuiRadio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  150. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.js.map +1 -1
  151. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js +3 -3
  152. package/dist/components/forms/radio-button/radio-group/RuiRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  153. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.js.map +1 -1
  154. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js +6 -6
  155. package/dist/components/forms/revealable-text-field/RuiRevealableTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  156. package/dist/components/forms/select/RuiMenuSelect.js.map +1 -1
  157. package/dist/components/forms/select/RuiMenuSelect.vue.d.ts +3 -12
  158. package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js +61 -56
  159. package/dist/components/forms/select/RuiMenuSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  160. package/dist/components/forms/select/RuiSimpleSelect.js.map +1 -1
  161. package/dist/components/forms/select/RuiSimpleSelect.vue.d.ts +0 -1
  162. package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js +13 -20
  163. package/dist/components/forms/select/RuiSimpleSelect.vue_vue_type_script_setup_true_lang.js.map +1 -1
  164. package/dist/components/forms/select/menu-select-styles.d.ts +99 -221
  165. package/dist/components/forms/select/menu-select-styles.js +1 -4
  166. package/dist/components/forms/select/menu-select-styles.js.map +1 -1
  167. package/dist/components/forms/slider/RuiSlider.js.map +1 -1
  168. package/dist/components/forms/slider/RuiSlider.vue.d.ts +0 -4
  169. package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js +129 -106
  170. package/dist/components/forms/slider/RuiSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  171. package/dist/components/forms/slider/slider-styles.d.ts +40 -40
  172. package/dist/components/forms/slider/slider-styles.js +67 -109
  173. package/dist/components/forms/slider/slider-styles.js.map +1 -1
  174. package/dist/components/forms/switch/RuiSwitch.js.map +1 -1
  175. package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js +33 -45
  176. package/dist/components/forms/switch/RuiSwitch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  177. package/dist/components/forms/text-area/RuiTextArea.js.map +1 -1
  178. package/dist/components/forms/text-area/RuiTextArea.vue.d.ts +3 -2
  179. package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js +138 -117
  180. package/dist/components/forms/text-area/RuiTextArea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  181. package/dist/components/forms/text-area/text-area-styles.d.ts +41 -115
  182. package/dist/components/forms/text-area/text-area-styles.js +34 -194
  183. package/dist/components/forms/text-area/text-area-styles.js.map +1 -1
  184. package/dist/components/forms/text-field/RuiTextField.js.map +1 -1
  185. package/dist/components/forms/text-field/RuiTextField.vue.d.ts +5 -2
  186. package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js +112 -105
  187. package/dist/components/forms/text-field/RuiTextField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  188. package/dist/components/forms/text-field/text-field-styles.d.ts +37 -145
  189. package/dist/components/forms/text-field/text-field-styles.js +24 -267
  190. package/dist/components/forms/text-field/text-field-styles.js.map +1 -1
  191. package/dist/components/forms/text-input-styles.d.ts +98 -229
  192. package/dist/components/forms/text-input-styles.js +63 -193
  193. package/dist/components/forms/text-input-styles.js.map +1 -1
  194. package/dist/components/helpers/RuiFormTextDetail.js.map +1 -1
  195. package/dist/components/helpers/RuiFormTextDetail.vue.d.ts +11 -1
  196. package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js +5 -5
  197. package/dist/components/helpers/RuiFormTextDetail.vue_vue_type_script_setup_true_lang.js.map +1 -1
  198. package/dist/components/icons/RuiIcon.js.map +1 -1
  199. package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js +7 -4
  200. package/dist/components/icons/RuiIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
  201. package/dist/components/index.d.ts +5 -3
  202. package/dist/components/index.js +4 -3
  203. package/dist/components/loaders/RuiSkeletonBase.js.map +1 -1
  204. package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js +6 -5
  205. package/dist/components/loaders/RuiSkeletonBase.vue_vue_type_script_setup_true_lang.js.map +1 -1
  206. package/dist/components/loaders/RuiSkeletonLoader.js.map +1 -1
  207. package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js +8 -8
  208. package/dist/components/loaders/RuiSkeletonLoader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  209. package/dist/components/logos/RuiLogo.js.map +1 -1
  210. package/dist/components/logos/RuiLogo.vue_vue_type_script_setup_true_lang.js +2 -2
  211. package/dist/components/logos/RuiLogo.vue_vue_type_script_setup_true_lang.js.map +1 -1
  212. package/dist/components/overlays/badge/RuiBadge.js.map +1 -1
  213. package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js +76 -48
  214. package/dist/components/overlays/badge/RuiBadge.vue_vue_type_script_setup_true_lang.js.map +1 -1
  215. package/dist/components/overlays/dialog/RuiDialog.js.map +1 -1
  216. package/dist/components/overlays/dialog/RuiDialog.vue.d.ts +3 -2
  217. package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js +17 -13
  218. package/dist/components/overlays/dialog/RuiDialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  219. package/dist/components/overlays/menu/RuiMenu.js.map +1 -1
  220. package/dist/components/overlays/menu/RuiMenu.vue.d.ts +9 -7
  221. package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js +33 -29
  222. package/dist/components/overlays/menu/RuiMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  223. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.js.map +1 -1
  224. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue.d.ts +6 -2
  225. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js +49 -25
  226. package/dist/components/overlays/navigation-drawer/RuiNavigationDrawer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  227. package/dist/components/overlays/notification/RuiNotification.js.map +1 -1
  228. package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js +7 -8
  229. package/dist/components/overlays/notification/RuiNotification.vue_vue_type_script_setup_true_lang.js.map +1 -1
  230. package/dist/components/overlays/tooltip/RuiTooltip.js.map +1 -1
  231. package/dist/components/overlays/tooltip/RuiTooltip.vue.d.ts +0 -5
  232. package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js +17 -11
  233. package/dist/components/overlays/tooltip/RuiTooltip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  234. package/dist/components/overlays/tooltip/tooltip-styles.d.ts +5 -12
  235. package/dist/components/overlays/tooltip/tooltip-styles.js +11 -18
  236. package/dist/components/overlays/tooltip/tooltip-styles.js.map +1 -1
  237. package/dist/components/progress/RuiProgress.js.map +1 -1
  238. package/dist/components/progress/RuiProgress.vue.d.ts +4 -0
  239. package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js +73 -47
  240. package/dist/components/progress/RuiProgress.vue_vue_type_script_setup_true_lang.js.map +1 -1
  241. package/dist/components/steppers/RuiFooterStepper.js.map +1 -1
  242. package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js +28 -29
  243. package/dist/components/steppers/RuiFooterStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  244. package/dist/components/steppers/RuiStepper.js.map +1 -1
  245. package/dist/components/steppers/RuiStepper.vue.d.ts +0 -4
  246. package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js +36 -29
  247. package/dist/components/steppers/RuiStepper.vue_vue_type_script_setup_true_lang.js.map +1 -1
  248. package/dist/components/steppers/RuiStepperIcon.js.map +1 -1
  249. package/dist/components/steppers/RuiStepperIcon.vue.d.ts +2 -0
  250. package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js +47 -47
  251. package/dist/components/steppers/RuiStepperIcon.vue_vue_type_script_setup_true_lang.js.map +1 -1
  252. package/dist/components/tables/RuiDataTable.js.map +1 -1
  253. package/dist/components/tables/RuiDataTable.vue.d.ts +3 -6
  254. package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js +85 -67
  255. package/dist/components/tables/RuiDataTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  256. package/dist/components/tables/RuiExpandButton.js.map +1 -1
  257. package/dist/components/tables/RuiExpandButton.vue_vue_type_script_setup_true_lang.js +1 -0
  258. package/dist/components/tables/RuiExpandButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  259. package/dist/components/tables/RuiTable.js.map +1 -1
  260. package/dist/components/tables/RuiTable.vue_vue_type_script_setup_true_lang.js +8 -5
  261. package/dist/components/tables/RuiTable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  262. package/dist/components/tables/RuiTableEmptyState.js.map +1 -1
  263. package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js +1 -1
  264. package/dist/components/tables/RuiTableEmptyState.vue_vue_type_script_setup_true_lang.js.map +1 -1
  265. package/dist/components/tables/RuiTableHead.js.map +1 -1
  266. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js +89 -67
  267. package/dist/components/tables/RuiTableHead.vue_vue_type_script_setup_true_lang.js.map +1 -1
  268. package/dist/components/tables/RuiTablePagination.js.map +1 -1
  269. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js +9 -12
  270. package/dist/components/tables/RuiTablePagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  271. package/dist/components/tables/data-table/RuiDataTableCell.vue_vue_type_script_setup_true_lang.js +1 -1
  272. package/dist/components/tables/data-table/RuiDataTableExpandedRow.js.map +1 -1
  273. package/dist/components/tables/data-table/RuiDataTableExpandedRow.vue_vue_type_script_setup_true_lang.js +3 -3
  274. package/dist/components/tables/data-table/RuiDataTableExpandedRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  275. package/dist/components/tables/data-table/RuiDataTableGroupRow.js.map +1 -1
  276. package/dist/components/tables/data-table/RuiDataTableGroupRow.vue_vue_type_script_setup_true_lang.js +8 -4
  277. package/dist/components/tables/data-table/RuiDataTableGroupRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  278. package/dist/components/tables/data-table/RuiDataTableMobileSort.js.map +1 -1
  279. package/dist/components/tables/data-table/RuiDataTableMobileSort.vue_vue_type_script_setup_true_lang.js +2 -2
  280. package/dist/components/tables/data-table/RuiDataTableMobileSort.vue_vue_type_script_setup_true_lang.js.map +1 -1
  281. package/dist/components/tables/data-table/RuiDataTableRow.js.map +1 -1
  282. package/dist/components/tables/data-table/RuiDataTableRow.vue_vue_type_script_setup_true_lang.js +47 -8
  283. package/dist/components/tables/data-table/RuiDataTableRow.vue_vue_type_script_setup_true_lang.js.map +1 -1
  284. package/dist/components/tables/data-table-styles.d.ts +24 -0
  285. package/dist/components/tables/data-table-styles.js +35 -20
  286. package/dist/components/tables/data-table-styles.js.map +1 -1
  287. package/dist/components/tables/table_no_data_placeholder.js +1 -1
  288. package/dist/components/tables/table_no_data_placeholder.js.map +1 -1
  289. package/dist/components/tables/table_no_data_placeholder_dark.js +1 -1
  290. package/dist/components/tables/table_no_data_placeholder_dark.js.map +1 -1
  291. package/dist/components/tables/use-pagination-navigation.js +1 -1
  292. package/dist/components/tabs/tab/RuiTab.js.map +1 -1
  293. package/dist/components/tabs/tab/RuiTab.vue.d.ts +2 -5
  294. package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js +95 -69
  295. package/dist/components/tabs/tab/RuiTab.vue_vue_type_script_setup_true_lang.js.map +1 -1
  296. package/dist/components/tabs/tab/use-tab-link.js +1 -1
  297. package/dist/components/tabs/tab-item/RuiTabItem.js.map +1 -1
  298. package/dist/components/tabs/tab-item/RuiTabItem.vue.d.ts +0 -1
  299. package/dist/components/tabs/tab-item/RuiTabItem.vue_vue_type_script_setup_true_lang.js +5 -11
  300. package/dist/components/tabs/tab-item/RuiTabItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  301. package/dist/components/tabs/tab-items/RuiTabItems.js.map +1 -1
  302. package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js +8 -13
  303. package/dist/components/tabs/tab-items/RuiTabItems.vue_vue_type_script_setup_true_lang.js.map +1 -1
  304. package/dist/components/tabs/tab-props.d.ts +7 -1
  305. package/dist/components/tabs/tab-props.js +7 -1
  306. package/dist/components/tabs/tab-props.js.map +1 -1
  307. package/dist/components/tabs/tabs/RuiTabs.js.map +1 -1
  308. package/dist/components/tabs/tabs/RuiTabs.vue.d.ts +2 -1
  309. package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js +188 -43
  310. package/dist/components/tabs/tabs/RuiTabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  311. package/dist/components/tabs/tabs/use-tab-indicator.d.ts +27 -0
  312. package/dist/components/tabs/tabs/use-tab-indicator.js +67 -0
  313. package/dist/components/tabs/tabs/use-tab-indicator.js.map +1 -0
  314. package/dist/components/tabs/tabs/use-tab-keyboard.d.ts +17 -0
  315. package/dist/components/tabs/tabs/use-tab-keyboard.js +57 -0
  316. package/dist/components/tabs/tabs/use-tab-keyboard.js.map +1 -0
  317. package/dist/components/tabs/tabs/use-tab-routing.js +1 -2
  318. package/dist/components/tabs/tabs/use-tab-routing.js.map +1 -1
  319. package/dist/components/tabs/tabs/use-tab-scroll.js +15 -15
  320. package/dist/components/tabs/tabs/use-tab-scroll.js.map +1 -1
  321. package/dist/components/time-picker/RuiTimePicker.js.map +1 -1
  322. package/dist/components/time-picker/RuiTimePicker.vue_vue_type_script_setup_true_lang.js +95 -93
  323. package/dist/components/time-picker/RuiTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  324. package/dist/components/time-picker/time-picker-styles.d.ts +18 -0
  325. package/dist/components/time-picker/time-picker-styles.js +16 -10
  326. package/dist/components/time-picker/time-picker-styles.js.map +1 -1
  327. package/dist/composables/breakpoint.js +3 -3
  328. package/dist/composables/breakpoint.js.map +1 -1
  329. package/dist/composables/defaults/field.d.ts +22 -0
  330. package/dist/composables/defaults/field.js +29 -0
  331. package/dist/composables/defaults/field.js.map +1 -0
  332. package/dist/composables/dropdown-menu.d.ts +23 -11
  333. package/dist/composables/dropdown-menu.js +44 -34
  334. package/dist/composables/dropdown-menu.js.map +1 -1
  335. package/dist/composables/floating.d.ts +1 -3
  336. package/dist/composables/floating.js +16 -13
  337. package/dist/composables/floating.js.map +1 -1
  338. package/dist/composables/forms/auto-complete/chips.d.ts +22 -0
  339. package/dist/composables/forms/auto-complete/chips.js +42 -0
  340. package/dist/composables/forms/auto-complete/chips.js.map +1 -0
  341. package/dist/composables/forms/auto-complete/combobox.d.ts +25 -0
  342. package/dist/composables/forms/auto-complete/combobox.js +35 -0
  343. package/dist/composables/forms/auto-complete/combobox.js.map +1 -0
  344. package/dist/composables/forms/auto-complete/focus.d.ts +5 -2
  345. package/dist/composables/forms/auto-complete/focus.js +44 -19
  346. package/dist/composables/forms/auto-complete/focus.js.map +1 -1
  347. package/dist/composables/forms/auto-complete/index.d.ts +3 -0
  348. package/dist/composables/forms/auto-complete/keyboard-navigation.d.ts +8 -1
  349. package/dist/composables/forms/auto-complete/keyboard-navigation.js +49 -21
  350. package/dist/composables/forms/auto-complete/keyboard-navigation.js.map +1 -1
  351. package/dist/composables/forms/auto-complete/search.js +6 -7
  352. package/dist/composables/forms/auto-complete/search.js.map +1 -1
  353. package/dist/composables/forms/auto-complete/selection.d.ts +37 -0
  354. package/dist/composables/forms/auto-complete/selection.js +60 -0
  355. package/dist/composables/forms/auto-complete/selection.js.map +1 -0
  356. package/dist/composables/forms/auto-complete/value.js +20 -1
  357. package/dist/composables/forms/auto-complete/value.js.map +1 -1
  358. package/dist/composables/forms/category-picker/use-category-picker.js +1 -1
  359. package/dist/composables/forms/use-prepend-append-width.js +6 -6
  360. package/dist/composables/forms/use-prepend-append-width.js.map +1 -1
  361. package/dist/composables/keyboard-scroll.d.ts +17 -0
  362. package/dist/composables/keyboard-scroll.js +58 -0
  363. package/dist/composables/keyboard-scroll.js.map +1 -0
  364. package/dist/composables/overlay-stack.js +1 -1
  365. package/dist/composables/sticky-header.d.ts +8 -0
  366. package/dist/composables/sticky-header.js +21 -10
  367. package/dist/composables/sticky-header.js.map +1 -1
  368. package/dist/composables/tables/data-table/columns.js +1 -1
  369. package/dist/composables/tables/data-table/expansion.js +1 -1
  370. package/dist/composables/tables/data-table/grouping.js +27 -28
  371. package/dist/composables/tables/data-table/grouping.js.map +1 -1
  372. package/dist/composables/tables/data-table/page-scroll.d.ts +32 -0
  373. package/dist/composables/tables/data-table/page-scroll.js +144 -0
  374. package/dist/composables/tables/data-table/page-scroll.js.map +1 -0
  375. package/dist/composables/tables/data-table/pagination.js +1 -1
  376. package/dist/composables/tables/data-table/selection.js +37 -38
  377. package/dist/composables/tables/data-table/selection.js.map +1 -1
  378. package/dist/composables/tables/data-table/sort.js +1 -1
  379. package/dist/composables/theme.js +12 -12
  380. package/dist/composables/theme.js.map +1 -1
  381. package/dist/composables/timeout-manager.js +1 -1
  382. package/dist/consts/colors.d.ts +4 -0
  383. package/dist/consts/colors.js +1 -37
  384. package/dist/consts/colors.js.map +1 -1
  385. package/dist/consts/tokens.d.ts +56 -0
  386. package/dist/consts/tokens.js +46 -0
  387. package/dist/consts/tokens.js.map +1 -0
  388. package/dist/consts/typography.d.ts +51 -18
  389. package/dist/index.d.ts +7 -2
  390. package/dist/index.js +10 -6
  391. package/dist/index.js.map +1 -1
  392. package/dist/library-icons.json +0 -10
  393. package/dist/style.css +5629 -4678
  394. package/dist/styles/colors.css +315 -0
  395. package/dist/styles/tokens.css +50 -0
  396. package/dist/tailwind.css +145 -0
  397. package/dist/theme/theme.css +403 -0
  398. package/dist/theme.css +403 -0
  399. package/dist/types/dom.d.ts +9 -0
  400. package/dist/types/theme.d.ts +2 -3
  401. package/dist/types/theme.js.map +1 -1
  402. package/dist/utils/form-text-detail.js +1 -1
  403. package/dist/utils/helpers.d.ts +0 -8
  404. package/dist/utils/helpers.js +1 -2
  405. package/dist/utils/helpers.js.map +1 -1
  406. package/dist/utils/tv.js +13 -21
  407. package/dist/utils/tv.js.map +1 -1
  408. package/dist/vendor/@vueuse/core/dist/index.js +1577 -0
  409. package/dist/vendor/@vueuse/core/dist/index.js.map +1 -0
  410. package/dist/vendor/@vueuse/shared/dist/index.js +563 -0
  411. package/dist/vendor/@vueuse/shared/dist/index.js.map +1 -0
  412. package/dist/vite-plugin/index.js +5 -6
  413. package/dist/vite-plugin/index.js.map +1 -1
  414. package/dist/web-types.json +278 -403
  415. package/package.json +17 -19
  416. package/dist/components/icons/LazyIcon.vue.d.ts +0 -8
  417. package/dist/components/steppers/RuiStepperCustomIcon.js +0 -7
  418. package/dist/components/steppers/RuiStepperCustomIcon.js.map +0 -1
  419. package/dist/components/steppers/RuiStepperCustomIcon.vue.d.ts +0 -8
  420. package/dist/components/steppers/RuiStepperCustomIcon.vue_vue_type_script_setup_true_lang.js +0 -43
  421. package/dist/components/steppers/RuiStepperCustomIcon.vue_vue_type_script_setup_true_lang.js.map +0 -1
  422. package/dist/composables/colors/common.d.ts +0 -20
  423. package/dist/composables/colors/index.d.ts +0 -3
  424. package/dist/composables/colors/text-input.d.ts +0 -27
  425. package/dist/composables/forms/use-label-with-quote.d.ts +0 -2
  426. package/dist/composables/popper.d.ts +0 -16
  427. package/dist/composables/popper.js +0 -23
  428. package/dist/composables/popper.js.map +0 -1
  429. package/dist/consts/forms/auto-complete/index.d.ts +0 -4
  430. package/dist/theme/index.d.ts +0 -5
  431. package/dist/theme/index.js +0 -162
  432. package/dist/theme/index.js.map +0 -1
  433. package/dist/utils/forms/auto-complete/index.d.ts +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"RuiTextField.js","names":[],"sources":["../../../../src/components/forms/text-field/RuiTextField.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ContextColorsType } from '@/consts/colors';\nimport type { RuiIcons } from '@/icons';\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport { textFieldStyles, type TextFieldVariant } from '@/components/forms/text-field/text-field-styles';\nimport RuiFormTextDetail from '@/components/helpers/RuiFormTextDetail.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport { usePrependAppendWidth } from '@/composables/forms/use-prepend-append-width';\nimport { useTimeoutManager } from '@/composables/timeout-manager';\nimport { useFormTextDetail } from '@/utils/form-text-detail';\nimport { getNonRootAttrs, getRootAttrs } from '@/utils/helpers';\n\nexport interface TextFieldProps {\n label?: string;\n placeholder?: string;\n disabled?: boolean;\n variant?: TextFieldVariant;\n color?: ContextColorsType;\n textColor?: ContextColorsType;\n dense?: boolean;\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n hideDetails?: boolean;\n prependIcon?: RuiIcons;\n appendIcon?: RuiIcons;\n readonly?: boolean;\n clearable?: boolean;\n required?: boolean;\n}\n\ndefineOptions({\n name: 'RuiTextField',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<string>({ required: true });\n\nconst {\n label = '',\n placeholder = '',\n disabled = false,\n variant = 'default',\n color = undefined,\n textColor = undefined,\n dense = false,\n hint = '',\n errorMessages = [],\n successMessages = [],\n hideDetails = false,\n prependIcon = undefined,\n appendIcon = undefined,\n readonly = false,\n clearable = false,\n required = false,\n} = defineProps<TextFieldProps>();\n\nconst emit = defineEmits<{\n 'focus-input': [event: Event];\n 'blur': [event: Event];\n 'remove': [value: unknown];\n 'clear': [];\n}>();\n\ndefineSlots<{\n prepend?: () => any;\n append?: () => any;\n}>();\n\nconst isHovered = ref<boolean>(false);\nconst showClearButton = ref<boolean>(false);\n\nconst prepend = useTemplateRef<HTMLDivElement>('prepend');\nconst append = useTemplateRef<HTMLDivElement>('append');\nconst inputRef = useTemplateRef<HTMLInputElement>('inputRef');\n\nconst { focused } = useFocus(inputRef);\nconst { create: delayClearHide } = useTimeoutManager();\nconst { prependWidth, appendWidth } = usePrependAppendWidth(prepend, append);\nconst { hasError, hasSuccess, hasMessages, validation } = useFormTextDetail(\n () => errorMessages,\n () => successMessages,\n);\n\nconst active = computed<boolean>(() => get(focused) || !!get(modelValue));\n\nconst showClearIcon = computed<boolean>(() => clearable && !!get(modelValue) && !disabled && !readonly);\n\nconst effectiveTextColor = computed<ContextColorsType | undefined>(() => {\n if (get(hasError))\n return 'error';\n if (get(hasSuccess))\n return 'success';\n if (textColor && !get(hasMessages))\n return textColor;\n return undefined;\n});\n\nconst effectiveColor = computed<ContextColorsType | undefined>(() => get(validation) ?? color);\n\nconst ui = computed<ReturnType<typeof textFieldStyles>>(() => textFieldStyles({\n variant,\n dense,\n disabled,\n hovered: get(isHovered),\n focused: get(focused),\n active: get(active),\n noLabel: !label,\n color: get(effectiveColor),\n textColor: get(effectiveTextColor),\n validation: get(validation),\n showLabel: !!label,\n}));\n\nconst labelStyle = computed<Record<string, string>>(() => ({\n '--prepend-w': get(prependWidth),\n '--append-w': get(appendWidth),\n}));\n\nconst legendText = computed<string>(() => {\n if (!get(active) || !label)\n return '';\n return required ? `${label} ﹡` : label;\n});\n\nfunction input(event: Event): void {\n const target = event.target;\n if (target instanceof HTMLInputElement) {\n set(modelValue, target.value);\n }\n}\n\nfunction clearIconClicked(): void {\n set(modelValue, '');\n emit('clear');\n}\n\nwatch(focused, (value) => {\n if (value) {\n set(showClearButton, true);\n }\n else {\n delayClearHide(() => set(showClearButton, false), 500);\n }\n});\n\ndefineExpose({\n setSelectionRange: (start: number, end: number) => {\n get(inputRef)?.setSelectionRange(start, end);\n },\n focus: () => get(inputRef)?.focus(),\n element: inputRef,\n});\n</script>\n\n<template>\n <div v-bind=\"getRootAttrs($attrs)\">\n <div\n :class=\"ui.wrapper()\"\n data-id=\"wrapper\"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n >\n <div\n v-if=\"$slots.prepend || prependIcon\"\n ref=\"prepend\"\n :class=\"ui.prepend()\"\n data-id=\"prepend\"\n >\n <slot\n v-if=\"$slots.prepend\"\n name=\"prepend\"\n />\n <div\n v-else-if=\"prependIcon\"\n :class=\"ui.icon()\"\n >\n <RuiIcon :name=\"prependIcon\" />\n </div>\n </div>\n <div\n :class=\"ui.inputWrapper()\"\n @click=\"emit('focus-input', $event)\"\n >\n <input\n ref=\"inputRef\"\n :value=\"modelValue\"\n :placeholder=\"placeholder || ' '\"\n :class=\"ui.input()\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :aria-invalid=\"hasError\"\n v-bind=\"getNonRootAttrs($attrs)\"\n @input=\"input($event)\"\n @blur=\"emit('blur', $event)\"\n @remove=\"emit('remove', $event)\"\n />\n <label\n :class=\"ui.label()\"\n :style=\"labelStyle\"\n >\n <span :class=\"ui.labelText()\">\n {{ label }}\n <span\n v-if=\"required\"\n :class=\"ui.required()\"\n >\n ﹡\n </span>\n </span>\n </label>\n <fieldset\n v-if=\"variant === 'outlined'\"\n :class=\"ui.fieldset()\"\n >\n <legend :class=\"ui.legend()\">\n {{ legendText }}\n </legend>\n </fieldset>\n </div>\n <div\n v-if=\"$slots.append || appendIcon || showClearIcon\"\n ref=\"append\"\n :class=\"ui.append()\"\n data-id=\"append\"\n >\n <RuiButton\n v-if=\"showClearIcon\"\n :class=\"[ui.clearButton(), { hidden: !showClearButton }]\"\n variant=\"text\"\n type=\"button\"\n icon\n color=\"error\"\n data-id=\"clear-btn\"\n tabindex=\"-1\"\n @click.stop=\"clearIconClicked()\"\n >\n <RuiIcon\n name=\"lu-x\"\n size=\"20\"\n />\n </RuiButton>\n <slot\n v-if=\"$slots.append\"\n name=\"append\"\n />\n <div\n v-else-if=\"appendIcon\"\n :class=\"ui.icon()\"\n >\n <RuiIcon :name=\"appendIcon\" />\n </div>\n </div>\n </div>\n <RuiFormTextDetail\n v-if=\"!hideDetails\"\n :class=\"ui.details()\"\n :error-messages=\"errorMessages\"\n :success-messages=\"successMessages\"\n :hint=\"hint\"\n />\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"RuiTextField.js","names":[],"sources":["../../../../src/components/forms/text-field/RuiTextField.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ContextColorsType } from '@/consts/colors';\nimport type { RuiIcons } from '@/icons';\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiFieldLabel from '@/components/forms/field-label/RuiFieldLabel.vue';\nimport { textFieldStyles } from '@/components/forms/text-field/text-field-styles';\nimport RuiFormTextDetail from '@/components/helpers/RuiFormTextDetail.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport { type LabelPlacement, useLabelPlacement } from '@/composables/defaults/field';\nimport { useTimeoutManager } from '@/composables/timeout-manager';\nimport { useFormTextDetail } from '@/utils/form-text-detail';\nimport { getNonRootAttrs, getRootAttrs } from '@/utils/helpers';\n\nexport interface TextFieldProps {\n label?: string;\n placeholder?: string;\n disabled?: boolean;\n /** Where the label shows; falls back to the nearest `RuiFieldDefaults`, then the app default, then `top`. */\n labelPlacement?: LabelPlacement;\n color?: ContextColorsType;\n textColor?: ContextColorsType;\n dense?: boolean;\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n hideDetails?: boolean;\n prependIcon?: RuiIcons;\n appendIcon?: RuiIcons;\n readonly?: boolean;\n clearable?: boolean;\n required?: boolean;\n}\n\ndefineOptions({\n name: 'RuiTextField',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<string>({ required: true });\n\nconst {\n label = '',\n placeholder = '',\n disabled = false,\n labelPlacement = undefined,\n color = undefined,\n textColor = undefined,\n dense = false,\n hint = '',\n errorMessages = [],\n successMessages = [],\n hideDetails = false,\n prependIcon = undefined,\n appendIcon = undefined,\n readonly = false,\n clearable = false,\n required = false,\n} = defineProps<TextFieldProps>();\n\nconst emit = defineEmits<{\n 'focus-input': [event: Event];\n 'blur': [event: Event];\n 'remove': [value: unknown];\n 'clear': [];\n}>();\n\ndefineSlots<{\n prepend?: () => any;\n append?: () => any;\n /** Rich hint content under the field, in place of the `hint` text; error and success messages still take precedence. */\n hint?: () => any;\n}>();\n\nconst isHovered = ref<boolean>(false);\nconst showClearButton = ref<boolean>(false);\n\nconst inputRef = useTemplateRef<HTMLInputElement>('inputRef');\n\nconst generatedId = useId();\nconst attrs = useAttrs();\n\nconst { focused } = useFocus(inputRef);\nconst placement = useLabelPlacement(() => labelPlacement);\nconst { clear: cancelClearHide, create: delayClearHide } = useTimeoutManager();\nconst { hasError, hasSuccess, hasMessages, validation } = useFormTextDetail(\n () => errorMessages,\n () => successMessages,\n);\n\nconst inputId = computed<string>(() => {\n const id = attrs.id;\n return typeof id === 'string' && id ? id : generatedId;\n});\n\nconst showClearIcon = computed<boolean>(() => clearable && !!get(modelValue) && !disabled && !readonly);\n\nconst effectiveTextColor = computed<ContextColorsType | undefined>(() => {\n if (get(hasError))\n return 'error';\n if (get(hasSuccess))\n return 'success';\n if (textColor && !get(hasMessages))\n return textColor;\n return undefined;\n});\n\nconst effectiveColor = computed<ContextColorsType | undefined>(() => get(validation) ?? color);\n\nconst ui = computed<ReturnType<typeof textFieldStyles>>(() => textFieldStyles({\n dense,\n disabled,\n readonly,\n hovered: get(isHovered),\n focused: get(focused),\n color: get(effectiveColor),\n textColor: get(effectiveTextColor),\n validation: get(validation),\n}));\n\nfunction input(event: Event): void {\n const target = event.target;\n if (target instanceof HTMLInputElement) {\n set(modelValue, target.value);\n }\n}\n\nfunction clearIconClicked(): void {\n set(modelValue, '');\n emit('clear');\n}\n\nwatch(focused, (value) => {\n if (value) {\n // a refocus within the delay keeps the button\n cancelClearHide();\n set(showClearButton, true);\n }\n else {\n delayClearHide(() => set(showClearButton, false), 500);\n }\n});\n\ndefineExpose({\n setSelectionRange: (start: number, end: number) => {\n get(inputRef)?.setSelectionRange(start, end);\n },\n focus: () => get(inputRef)?.focus(),\n element: inputRef,\n});\n</script>\n\n<template>\n <div v-bind=\"getRootAttrs($attrs)\">\n <RuiFieldLabel\n v-if=\"label\"\n :text=\"label\"\n :for=\"inputId\"\n :hidden=\"placement === 'hidden'\"\n :required=\"required\"\n :disabled=\"disabled\"\n />\n <div\n :class=\"ui.wrapper()\"\n data-id=\"wrapper\"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n >\n <div\n v-if=\"$slots.prepend || prependIcon\"\n :class=\"ui.prepend()\"\n data-id=\"prepend\"\n >\n <slot\n v-if=\"$slots.prepend\"\n name=\"prepend\"\n />\n <div\n v-else-if=\"prependIcon\"\n :class=\"ui.icon()\"\n >\n <RuiIcon\n :name=\"prependIcon\"\n :size=\"18\"\n />\n </div>\n </div>\n <div\n :class=\"ui.inputWrapper()\"\n @click=\"emit('focus-input', $event)\"\n >\n <input\n :id=\"inputId\"\n ref=\"inputRef\"\n :value=\"modelValue\"\n :placeholder=\"placeholder || ' '\"\n :class=\"ui.input()\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :aria-invalid=\"hasError\"\n v-bind=\"getNonRootAttrs($attrs)\"\n @input=\"input($event)\"\n @blur=\"emit('blur', $event)\"\n @remove=\"emit('remove', $event)\"\n />\n <fieldset :class=\"ui.fieldset()\" />\n </div>\n <div\n v-if=\"$slots.append || appendIcon || showClearIcon\"\n :class=\"ui.append()\"\n data-id=\"append\"\n >\n <RuiButton\n v-if=\"showClearIcon\"\n :class=\"[ui.clearButton(), { hidden: !showClearButton }]\"\n variant=\"text\"\n type=\"button\"\n icon\n data-id=\"clear-btn\"\n aria-label=\"Clear\"\n tabindex=\"-1\"\n @click.stop=\"clearIconClicked()\"\n >\n <RuiIcon\n name=\"lu-x\"\n size=\"16\"\n />\n </RuiButton>\n <slot\n v-if=\"$slots.append\"\n name=\"append\"\n />\n <div\n v-else-if=\"appendIcon\"\n :class=\"ui.icon()\"\n >\n <RuiIcon\n :name=\"appendIcon\"\n :size=\"18\"\n />\n </div>\n </div>\n </div>\n <RuiFormTextDetail\n v-if=\"!hideDetails\"\n :class=\"ui.details()\"\n :error-messages=\"errorMessages\"\n :success-messages=\"successMessages\"\n :hint=\"hint\"\n >\n <template\n v-if=\"$slots.hint\"\n #hint\n >\n <slot name=\"hint\" />\n </template>\n </RuiFormTextDetail>\n </div>\n</template>\n"],"mappings":""}
@@ -1,11 +1,12 @@
1
1
  import type { ContextColorsType } from '../../../consts/colors.js';
2
2
  import type { RuiIcons } from '../../../icons/index.js';
3
- import { type TextFieldVariant } from './text-field-styles.js';
3
+ import { type LabelPlacement } from '../../../composables/defaults/field.js';
4
4
  export interface TextFieldProps {
5
5
  label?: string;
6
6
  placeholder?: string;
7
7
  disabled?: boolean;
8
- variant?: TextFieldVariant;
8
+ /** Where the label shows; falls back to the nearest `RuiFieldDefaults`, then the app default, then `top`. */
9
+ labelPlacement?: LabelPlacement;
9
10
  color?: ContextColorsType;
10
11
  textColor?: ContextColorsType;
11
12
  dense?: boolean;
@@ -23,6 +24,8 @@ type __VLS_Props = TextFieldProps;
23
24
  type __VLS_Slots = {
24
25
  prepend?: () => any;
25
26
  append?: () => any;
27
+ /** Rich hint content under the field, in place of the `hint` text; error and success messages still take precedence. */
28
+ hint?: () => any;
26
29
  };
27
30
  type __VLS_ModelProps = {
28
31
  modelValue: string;
@@ -1,16 +1,18 @@
1
+ import { useLabelPlacement } from "../../../composables/defaults/field.js";
2
+ import { get, set } from "../../../vendor/@vueuse/shared/dist/index.js";
3
+ import { useFocus } from "../../../vendor/@vueuse/core/dist/index.js";
1
4
  import RuiIcon_default from "../../icons/RuiIcon.js";
2
5
  import RuiButton_default from "../../buttons/button/RuiButton.js";
3
6
  import { useFormTextDetail } from "../../../utils/form-text-detail.js";
4
7
  import RuiFormTextDetail_default from "../../helpers/RuiFormTextDetail.js";
5
8
  import { useTimeoutManager } from "../../../composables/timeout-manager.js";
9
+ import RuiFieldLabel_default from "../field-label/RuiFieldLabel.js";
6
10
  import { textFieldStyles } from "./text-field-styles.js";
7
- import { usePrependAppendWidth } from "../../../composables/forms/use-prepend-append-width.js";
8
11
  import { getNonRootAttrs, getRootAttrs } from "../../../utils/helpers.js";
9
- import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, normalizeClass, normalizeProps, normalizeStyle, openBlock, ref, renderSlot, toDisplayString, unref, useModel, useTemplateRef, watch, withCtx, withModifiers } from "vue";
10
- import { useFocus } from "@vueuse/core";
11
- import { get as get$1, set as set$1 } from "@vueuse/shared";
12
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, guardReactiveProps, mergeModels, mergeProps, normalizeClass, normalizeProps, openBlock, ref, renderSlot, unref, useAttrs, useId, useModel, useTemplateRef, watch, withCtx, withModifiers } from "vue";
12
13
  //#region src/components/forms/text-field/RuiTextField.vue?vue&type=script&setup=true&lang.ts
13
14
  var _hoisted_1 = [
15
+ "id",
14
16
  "value",
15
17
  "placeholder",
16
18
  "disabled",
@@ -28,7 +30,7 @@ var RuiTextField_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
28
30
  type: Boolean,
29
31
  default: false
30
32
  },
31
- variant: { default: "default" },
33
+ labelPlacement: { default: () => void 0 },
32
34
  color: { default: () => void 0 },
33
35
  textColor: { default: () => void 0 },
34
36
  dense: {
@@ -71,83 +73,93 @@ var RuiTextField_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
71
73
  const emit = __emit;
72
74
  const isHovered = ref(false);
73
75
  const showClearButton = ref(false);
74
- const prepend = useTemplateRef("prepend");
75
- const append = useTemplateRef("append");
76
76
  const inputRef = useTemplateRef("inputRef");
77
+ const generatedId = useId();
78
+ const attrs = useAttrs();
77
79
  const { focused } = useFocus(inputRef);
78
- const { create: delayClearHide } = useTimeoutManager();
79
- const { prependWidth, appendWidth } = usePrependAppendWidth(prepend, append);
80
+ const placement = useLabelPlacement(() => __props.labelPlacement);
81
+ const { clear: cancelClearHide, create: delayClearHide } = useTimeoutManager();
80
82
  const { hasError, hasSuccess, hasMessages, validation } = useFormTextDetail(() => __props.errorMessages, () => __props.successMessages);
81
- const active = computed(() => get$1(focused) || !!get$1(modelValue));
82
- const showClearIcon = computed(() => __props.clearable && !!get$1(modelValue) && !__props.disabled && !__props.readonly);
83
+ const inputId = computed(() => {
84
+ const id = attrs.id;
85
+ return typeof id === "string" && id ? id : generatedId;
86
+ });
87
+ const showClearIcon = computed(() => __props.clearable && !!get(modelValue) && !__props.disabled && !__props.readonly);
83
88
  const effectiveTextColor = computed(() => {
84
- if (get$1(hasError)) return "error";
85
- if (get$1(hasSuccess)) return "success";
86
- if (__props.textColor && !get$1(hasMessages)) return __props.textColor;
89
+ if (get(hasError)) return "error";
90
+ if (get(hasSuccess)) return "success";
91
+ if (__props.textColor && !get(hasMessages)) return __props.textColor;
87
92
  });
88
- const effectiveColor = computed(() => get$1(validation) ?? __props.color);
93
+ const effectiveColor = computed(() => get(validation) ?? __props.color);
89
94
  const ui = computed(() => textFieldStyles({
90
- variant: __props.variant,
91
95
  dense: __props.dense,
92
96
  disabled: __props.disabled,
93
- hovered: get$1(isHovered),
94
- focused: get$1(focused),
95
- active: get$1(active),
96
- noLabel: !__props.label,
97
- color: get$1(effectiveColor),
98
- textColor: get$1(effectiveTextColor),
99
- validation: get$1(validation),
100
- showLabel: !!__props.label
101
- }));
102
- const labelStyle = computed(() => ({
103
- "--prepend-w": get$1(prependWidth),
104
- "--append-w": get$1(appendWidth)
97
+ readonly: __props.readonly,
98
+ hovered: get(isHovered),
99
+ focused: get(focused),
100
+ color: get(effectiveColor),
101
+ textColor: get(effectiveTextColor),
102
+ validation: get(validation)
105
103
  }));
106
- const legendText = computed(() => {
107
- if (!get$1(active) || !__props.label) return "";
108
- return __props.required ? `${__props.label} ﹡` : __props.label;
109
- });
110
104
  function input(event) {
111
105
  const target = event.target;
112
- if (target instanceof HTMLInputElement) set$1(modelValue, target.value);
106
+ if (target instanceof HTMLInputElement) set(modelValue, target.value);
113
107
  }
114
108
  function clearIconClicked() {
115
- set$1(modelValue, "");
109
+ set(modelValue, "");
116
110
  emit("clear");
117
111
  }
118
112
  watch(focused, (value) => {
119
- if (value) set$1(showClearButton, true);
120
- else delayClearHide(() => set$1(showClearButton, false), 500);
113
+ if (value) {
114
+ cancelClearHide();
115
+ set(showClearButton, true);
116
+ } else delayClearHide(() => set(showClearButton, false), 500);
121
117
  });
122
118
  __expose({
123
119
  setSelectionRange: (start, end) => {
124
- get$1(inputRef)?.setSelectionRange(start, end);
120
+ get(inputRef)?.setSelectionRange(start, end);
125
121
  },
126
- focus: () => get$1(inputRef)?.focus(),
122
+ focus: () => get(inputRef)?.focus(),
127
123
  element: inputRef
128
124
  });
129
125
  return (_ctx, _cache) => {
130
- return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps(unref(getRootAttrs)(_ctx.$attrs))), [createElementVNode("div", {
131
- class: normalizeClass(unref(ui).wrapper()),
132
- "data-id": "wrapper",
133
- onMouseenter: _cache[5] || (_cache[5] = ($event) => isHovered.value = true),
134
- onMouseleave: _cache[6] || (_cache[6] = ($event) => isHovered.value = false)
135
- }, [
136
- _ctx.$slots.prepend || __props.prependIcon ? (openBlock(), createElementBlock("div", {
126
+ return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps(unref(getRootAttrs)(_ctx.$attrs))), [
127
+ __props.label ? (openBlock(), createBlock(RuiFieldLabel_default, {
137
128
  key: 0,
138
- ref_key: "prepend",
139
- ref: prepend,
140
- class: normalizeClass(unref(ui).prepend()),
141
- "data-id": "prepend"
142
- }, [_ctx.$slots.prepend ? renderSlot(_ctx.$slots, "prepend", {}, void 0, void 0, 0) : __props.prependIcon ? (openBlock(), createElementBlock("div", {
143
- key: 1,
144
- class: normalizeClass(unref(ui).icon())
145
- }, [createVNode(RuiIcon_default, { name: __props.prependIcon }, null, 8, ["name"])], 2)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true),
129
+ text: __props.label,
130
+ for: unref(inputId),
131
+ hidden: unref(placement) === "hidden",
132
+ required: __props.required,
133
+ disabled: __props.disabled
134
+ }, null, 8, [
135
+ "text",
136
+ "for",
137
+ "hidden",
138
+ "required",
139
+ "disabled"
140
+ ])) : createCommentVNode("", true),
146
141
  createElementVNode("div", {
147
- class: normalizeClass(unref(ui).inputWrapper()),
148
- onClick: _cache[3] || (_cache[3] = ($event) => emit("focus-input", $event))
142
+ class: normalizeClass(unref(ui).wrapper()),
143
+ "data-id": "wrapper",
144
+ onMouseenter: _cache[5] || (_cache[5] = ($event) => isHovered.value = true),
145
+ onMouseleave: _cache[6] || (_cache[6] = ($event) => isHovered.value = false)
149
146
  }, [
150
- createElementVNode("input", mergeProps({
147
+ _ctx.$slots.prepend || __props.prependIcon ? (openBlock(), createElementBlock("div", {
148
+ key: 0,
149
+ class: normalizeClass(unref(ui).prepend()),
150
+ "data-id": "prepend"
151
+ }, [_ctx.$slots.prepend ? renderSlot(_ctx.$slots, "prepend", {}, void 0, void 0, 0) : __props.prependIcon ? (openBlock(), createElementBlock("div", {
152
+ key: 1,
153
+ class: normalizeClass(unref(ui).icon())
154
+ }, [createVNode(RuiIcon_default, {
155
+ name: __props.prependIcon,
156
+ size: 18
157
+ }, null, 8, ["name"])], 2)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true),
158
+ createElementVNode("div", {
159
+ class: normalizeClass(unref(ui).inputWrapper()),
160
+ onClick: _cache[3] || (_cache[3] = ($event) => emit("focus-input", $event))
161
+ }, [createElementVNode("input", mergeProps({
162
+ id: unref(inputId),
151
163
  ref_key: "inputRef",
152
164
  ref: inputRef,
153
165
  value: modelValue.value,
@@ -160,57 +172,52 @@ var RuiTextField_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ def
160
172
  onInput: _cache[0] || (_cache[0] = ($event) => input($event)),
161
173
  onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur", $event)),
162
174
  onRemove: _cache[2] || (_cache[2] = ($event) => emit("remove", $event))
163
- }), null, 16, _hoisted_1),
164
- createElementVNode("label", {
165
- class: normalizeClass(unref(ui).label()),
166
- style: normalizeStyle(unref(labelStyle))
167
- }, [createElementVNode("span", { class: normalizeClass(unref(ui).labelText()) }, [createTextVNode(toDisplayString(__props.label) + " ", 1), __props.required ? (openBlock(), createElementBlock("span", {
168
- key: 0,
169
- class: normalizeClass(unref(ui).required())
170
- }, " ﹡ ", 2)) : createCommentVNode("", true)], 2)], 6),
171
- __props.variant === "outlined" ? (openBlock(), createElementBlock("fieldset", {
175
+ }), null, 16, _hoisted_1), createElementVNode("fieldset", { class: normalizeClass(unref(ui).fieldset()) }, null, 2)], 2),
176
+ _ctx.$slots.append || __props.appendIcon || unref(showClearIcon) ? (openBlock(), createElementBlock("div", {
177
+ key: 1,
178
+ class: normalizeClass(unref(ui).append()),
179
+ "data-id": "append"
180
+ }, [unref(showClearIcon) ? (openBlock(), createBlock(RuiButton_default, {
172
181
  key: 0,
173
- class: normalizeClass(unref(ui).fieldset())
174
- }, [createElementVNode("legend", { class: normalizeClass(unref(ui).legend()) }, toDisplayString(unref(legendText)), 3)], 2)) : createCommentVNode("", true)
175
- ], 2),
176
- _ctx.$slots.append || __props.appendIcon || unref(showClearIcon) ? (openBlock(), createElementBlock("div", {
182
+ class: normalizeClass([unref(ui).clearButton(), { hidden: !unref(showClearButton) }]),
183
+ variant: "text",
184
+ type: "button",
185
+ icon: "",
186
+ "data-id": "clear-btn",
187
+ "aria-label": "Clear",
188
+ tabindex: "-1",
189
+ onClick: _cache[4] || (_cache[4] = withModifiers(($event) => clearIconClicked(), ["stop"]))
190
+ }, {
191
+ default: withCtx(() => [createVNode(RuiIcon_default, {
192
+ name: "lu-x",
193
+ size: "16"
194
+ })]),
195
+ _: 1
196
+ }, 8, ["class"])) : createCommentVNode("", true), _ctx.$slots.append ? renderSlot(_ctx.$slots, "append", {}, void 0, void 0, 1) : __props.appendIcon ? (openBlock(), createElementBlock("div", {
197
+ key: 2,
198
+ class: normalizeClass(unref(ui).icon())
199
+ }, [createVNode(RuiIcon_default, {
200
+ name: __props.appendIcon,
201
+ size: 18
202
+ }, null, 8, ["name"])], 2)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true)
203
+ ], 34),
204
+ !__props.hideDetails ? (openBlock(), createBlock(RuiFormTextDetail_default, {
177
205
  key: 1,
178
- ref_key: "append",
179
- ref: append,
180
- class: normalizeClass(unref(ui).append()),
181
- "data-id": "append"
182
- }, [unref(showClearIcon) ? (openBlock(), createBlock(RuiButton_default, {
183
- key: 0,
184
- class: normalizeClass([unref(ui).clearButton(), { hidden: !unref(showClearButton) }]),
185
- variant: "text",
186
- type: "button",
187
- icon: "",
188
- color: "error",
189
- "data-id": "clear-btn",
190
- tabindex: "-1",
191
- onClick: _cache[4] || (_cache[4] = withModifiers(($event) => clearIconClicked(), ["stop"]))
192
- }, {
193
- default: withCtx(() => [createVNode(RuiIcon_default, {
194
- name: "lu-x",
195
- size: "20"
196
- })]),
197
- _: 1
198
- }, 8, ["class"])) : createCommentVNode("", true), _ctx.$slots.append ? renderSlot(_ctx.$slots, "append", {}, void 0, void 0, 1) : __props.appendIcon ? (openBlock(), createElementBlock("div", {
199
- key: 2,
200
- class: normalizeClass(unref(ui).icon())
201
- }, [createVNode(RuiIcon_default, { name: __props.appendIcon }, null, 8, ["name"])], 2)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true)
202
- ], 34), !__props.hideDetails ? (openBlock(), createBlock(RuiFormTextDetail_default, {
203
- key: 0,
204
- class: normalizeClass(unref(ui).details()),
205
- "error-messages": __props.errorMessages,
206
- "success-messages": __props.successMessages,
207
- hint: __props.hint
208
- }, null, 8, [
209
- "class",
210
- "error-messages",
211
- "success-messages",
212
- "hint"
213
- ])) : createCommentVNode("", true)], 16);
206
+ class: normalizeClass(unref(ui).details()),
207
+ "error-messages": __props.errorMessages,
208
+ "success-messages": __props.successMessages,
209
+ hint: __props.hint
210
+ }, createSlots({ _: 2 }, [_ctx.$slots.hint ? {
211
+ name: "hint",
212
+ fn: withCtx(() => [renderSlot(_ctx.$slots, "hint")]),
213
+ key: "0"
214
+ } : void 0]), 1032, [
215
+ "class",
216
+ "error-messages",
217
+ "success-messages",
218
+ "hint"
219
+ ])) : createCommentVNode("", true)
220
+ ], 16);
214
221
  };
215
222
  }
216
223
  });
@@ -1 +1 @@
1
- {"version":3,"file":"RuiTextField.vue_vue_type_script_setup_true_lang.js","names":["$attrs","$slots"],"sources":["../../../../src/components/forms/text-field/RuiTextField.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ContextColorsType } from '@/consts/colors';\nimport type { RuiIcons } from '@/icons';\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport { textFieldStyles, type TextFieldVariant } from '@/components/forms/text-field/text-field-styles';\nimport RuiFormTextDetail from '@/components/helpers/RuiFormTextDetail.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport { usePrependAppendWidth } from '@/composables/forms/use-prepend-append-width';\nimport { useTimeoutManager } from '@/composables/timeout-manager';\nimport { useFormTextDetail } from '@/utils/form-text-detail';\nimport { getNonRootAttrs, getRootAttrs } from '@/utils/helpers';\n\nexport interface TextFieldProps {\n label?: string;\n placeholder?: string;\n disabled?: boolean;\n variant?: TextFieldVariant;\n color?: ContextColorsType;\n textColor?: ContextColorsType;\n dense?: boolean;\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n hideDetails?: boolean;\n prependIcon?: RuiIcons;\n appendIcon?: RuiIcons;\n readonly?: boolean;\n clearable?: boolean;\n required?: boolean;\n}\n\ndefineOptions({\n name: 'RuiTextField',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<string>({ required: true });\n\nconst {\n label = '',\n placeholder = '',\n disabled = false,\n variant = 'default',\n color = undefined,\n textColor = undefined,\n dense = false,\n hint = '',\n errorMessages = [],\n successMessages = [],\n hideDetails = false,\n prependIcon = undefined,\n appendIcon = undefined,\n readonly = false,\n clearable = false,\n required = false,\n} = defineProps<TextFieldProps>();\n\nconst emit = defineEmits<{\n 'focus-input': [event: Event];\n 'blur': [event: Event];\n 'remove': [value: unknown];\n 'clear': [];\n}>();\n\ndefineSlots<{\n prepend?: () => any;\n append?: () => any;\n}>();\n\nconst isHovered = ref<boolean>(false);\nconst showClearButton = ref<boolean>(false);\n\nconst prepend = useTemplateRef<HTMLDivElement>('prepend');\nconst append = useTemplateRef<HTMLDivElement>('append');\nconst inputRef = useTemplateRef<HTMLInputElement>('inputRef');\n\nconst { focused } = useFocus(inputRef);\nconst { create: delayClearHide } = useTimeoutManager();\nconst { prependWidth, appendWidth } = usePrependAppendWidth(prepend, append);\nconst { hasError, hasSuccess, hasMessages, validation } = useFormTextDetail(\n () => errorMessages,\n () => successMessages,\n);\n\nconst active = computed<boolean>(() => get(focused) || !!get(modelValue));\n\nconst showClearIcon = computed<boolean>(() => clearable && !!get(modelValue) && !disabled && !readonly);\n\nconst effectiveTextColor = computed<ContextColorsType | undefined>(() => {\n if (get(hasError))\n return 'error';\n if (get(hasSuccess))\n return 'success';\n if (textColor && !get(hasMessages))\n return textColor;\n return undefined;\n});\n\nconst effectiveColor = computed<ContextColorsType | undefined>(() => get(validation) ?? color);\n\nconst ui = computed<ReturnType<typeof textFieldStyles>>(() => textFieldStyles({\n variant,\n dense,\n disabled,\n hovered: get(isHovered),\n focused: get(focused),\n active: get(active),\n noLabel: !label,\n color: get(effectiveColor),\n textColor: get(effectiveTextColor),\n validation: get(validation),\n showLabel: !!label,\n}));\n\nconst labelStyle = computed<Record<string, string>>(() => ({\n '--prepend-w': get(prependWidth),\n '--append-w': get(appendWidth),\n}));\n\nconst legendText = computed<string>(() => {\n if (!get(active) || !label)\n return '';\n return required ? `${label} ﹡` : label;\n});\n\nfunction input(event: Event): void {\n const target = event.target;\n if (target instanceof HTMLInputElement) {\n set(modelValue, target.value);\n }\n}\n\nfunction clearIconClicked(): void {\n set(modelValue, '');\n emit('clear');\n}\n\nwatch(focused, (value) => {\n if (value) {\n set(showClearButton, true);\n }\n else {\n delayClearHide(() => set(showClearButton, false), 500);\n }\n});\n\ndefineExpose({\n setSelectionRange: (start: number, end: number) => {\n get(inputRef)?.setSelectionRange(start, end);\n },\n focus: () => get(inputRef)?.focus(),\n element: inputRef,\n});\n</script>\n\n<template>\n <div v-bind=\"getRootAttrs($attrs)\">\n <div\n :class=\"ui.wrapper()\"\n data-id=\"wrapper\"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n >\n <div\n v-if=\"$slots.prepend || prependIcon\"\n ref=\"prepend\"\n :class=\"ui.prepend()\"\n data-id=\"prepend\"\n >\n <slot\n v-if=\"$slots.prepend\"\n name=\"prepend\"\n />\n <div\n v-else-if=\"prependIcon\"\n :class=\"ui.icon()\"\n >\n <RuiIcon :name=\"prependIcon\" />\n </div>\n </div>\n <div\n :class=\"ui.inputWrapper()\"\n @click=\"emit('focus-input', $event)\"\n >\n <input\n ref=\"inputRef\"\n :value=\"modelValue\"\n :placeholder=\"placeholder || ' '\"\n :class=\"ui.input()\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :aria-invalid=\"hasError\"\n v-bind=\"getNonRootAttrs($attrs)\"\n @input=\"input($event)\"\n @blur=\"emit('blur', $event)\"\n @remove=\"emit('remove', $event)\"\n />\n <label\n :class=\"ui.label()\"\n :style=\"labelStyle\"\n >\n <span :class=\"ui.labelText()\">\n {{ label }}\n <span\n v-if=\"required\"\n :class=\"ui.required()\"\n >\n ﹡\n </span>\n </span>\n </label>\n <fieldset\n v-if=\"variant === 'outlined'\"\n :class=\"ui.fieldset()\"\n >\n <legend :class=\"ui.legend()\">\n {{ legendText }}\n </legend>\n </fieldset>\n </div>\n <div\n v-if=\"$slots.append || appendIcon || showClearIcon\"\n ref=\"append\"\n :class=\"ui.append()\"\n data-id=\"append\"\n >\n <RuiButton\n v-if=\"showClearIcon\"\n :class=\"[ui.clearButton(), { hidden: !showClearButton }]\"\n variant=\"text\"\n type=\"button\"\n icon\n color=\"error\"\n data-id=\"clear-btn\"\n tabindex=\"-1\"\n @click.stop=\"clearIconClicked()\"\n >\n <RuiIcon\n name=\"lu-x\"\n size=\"20\"\n />\n </RuiButton>\n <slot\n v-if=\"$slots.append\"\n name=\"append\"\n />\n <div\n v-else-if=\"appendIcon\"\n :class=\"ui.icon()\"\n >\n <RuiIcon :name=\"appendIcon\" />\n </div>\n </div>\n </div>\n <RuiFormTextDetail\n v-if=\"!hideDetails\"\n :class=\"ui.details()\"\n :error-messages=\"errorMessages\"\n :success-messages=\"successMessages\"\n :hint=\"hint\"\n />\n </div>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"RuiTextField.vue_vue_type_script_setup_true_lang.js","names":["$attrs","$slots"],"sources":["../../../../src/components/forms/text-field/RuiTextField.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ContextColorsType } from '@/consts/colors';\nimport type { RuiIcons } from '@/icons';\nimport RuiButton from '@/components/buttons/button/RuiButton.vue';\nimport RuiFieldLabel from '@/components/forms/field-label/RuiFieldLabel.vue';\nimport { textFieldStyles } from '@/components/forms/text-field/text-field-styles';\nimport RuiFormTextDetail from '@/components/helpers/RuiFormTextDetail.vue';\nimport RuiIcon from '@/components/icons/RuiIcon.vue';\nimport { type LabelPlacement, useLabelPlacement } from '@/composables/defaults/field';\nimport { useTimeoutManager } from '@/composables/timeout-manager';\nimport { useFormTextDetail } from '@/utils/form-text-detail';\nimport { getNonRootAttrs, getRootAttrs } from '@/utils/helpers';\n\nexport interface TextFieldProps {\n label?: string;\n placeholder?: string;\n disabled?: boolean;\n /** Where the label shows; falls back to the nearest `RuiFieldDefaults`, then the app default, then `top`. */\n labelPlacement?: LabelPlacement;\n color?: ContextColorsType;\n textColor?: ContextColorsType;\n dense?: boolean;\n hint?: string;\n errorMessages?: string | string[];\n successMessages?: string | string[];\n hideDetails?: boolean;\n prependIcon?: RuiIcons;\n appendIcon?: RuiIcons;\n readonly?: boolean;\n clearable?: boolean;\n required?: boolean;\n}\n\ndefineOptions({\n name: 'RuiTextField',\n inheritAttrs: false,\n});\n\nconst modelValue = defineModel<string>({ required: true });\n\nconst {\n label = '',\n placeholder = '',\n disabled = false,\n labelPlacement = undefined,\n color = undefined,\n textColor = undefined,\n dense = false,\n hint = '',\n errorMessages = [],\n successMessages = [],\n hideDetails = false,\n prependIcon = undefined,\n appendIcon = undefined,\n readonly = false,\n clearable = false,\n required = false,\n} = defineProps<TextFieldProps>();\n\nconst emit = defineEmits<{\n 'focus-input': [event: Event];\n 'blur': [event: Event];\n 'remove': [value: unknown];\n 'clear': [];\n}>();\n\ndefineSlots<{\n prepend?: () => any;\n append?: () => any;\n /** Rich hint content under the field, in place of the `hint` text; error and success messages still take precedence. */\n hint?: () => any;\n}>();\n\nconst isHovered = ref<boolean>(false);\nconst showClearButton = ref<boolean>(false);\n\nconst inputRef = useTemplateRef<HTMLInputElement>('inputRef');\n\nconst generatedId = useId();\nconst attrs = useAttrs();\n\nconst { focused } = useFocus(inputRef);\nconst placement = useLabelPlacement(() => labelPlacement);\nconst { clear: cancelClearHide, create: delayClearHide } = useTimeoutManager();\nconst { hasError, hasSuccess, hasMessages, validation } = useFormTextDetail(\n () => errorMessages,\n () => successMessages,\n);\n\nconst inputId = computed<string>(() => {\n const id = attrs.id;\n return typeof id === 'string' && id ? id : generatedId;\n});\n\nconst showClearIcon = computed<boolean>(() => clearable && !!get(modelValue) && !disabled && !readonly);\n\nconst effectiveTextColor = computed<ContextColorsType | undefined>(() => {\n if (get(hasError))\n return 'error';\n if (get(hasSuccess))\n return 'success';\n if (textColor && !get(hasMessages))\n return textColor;\n return undefined;\n});\n\nconst effectiveColor = computed<ContextColorsType | undefined>(() => get(validation) ?? color);\n\nconst ui = computed<ReturnType<typeof textFieldStyles>>(() => textFieldStyles({\n dense,\n disabled,\n readonly,\n hovered: get(isHovered),\n focused: get(focused),\n color: get(effectiveColor),\n textColor: get(effectiveTextColor),\n validation: get(validation),\n}));\n\nfunction input(event: Event): void {\n const target = event.target;\n if (target instanceof HTMLInputElement) {\n set(modelValue, target.value);\n }\n}\n\nfunction clearIconClicked(): void {\n set(modelValue, '');\n emit('clear');\n}\n\nwatch(focused, (value) => {\n if (value) {\n // a refocus within the delay keeps the button\n cancelClearHide();\n set(showClearButton, true);\n }\n else {\n delayClearHide(() => set(showClearButton, false), 500);\n }\n});\n\ndefineExpose({\n setSelectionRange: (start: number, end: number) => {\n get(inputRef)?.setSelectionRange(start, end);\n },\n focus: () => get(inputRef)?.focus(),\n element: inputRef,\n});\n</script>\n\n<template>\n <div v-bind=\"getRootAttrs($attrs)\">\n <RuiFieldLabel\n v-if=\"label\"\n :text=\"label\"\n :for=\"inputId\"\n :hidden=\"placement === 'hidden'\"\n :required=\"required\"\n :disabled=\"disabled\"\n />\n <div\n :class=\"ui.wrapper()\"\n data-id=\"wrapper\"\n @mouseenter=\"isHovered = true\"\n @mouseleave=\"isHovered = false\"\n >\n <div\n v-if=\"$slots.prepend || prependIcon\"\n :class=\"ui.prepend()\"\n data-id=\"prepend\"\n >\n <slot\n v-if=\"$slots.prepend\"\n name=\"prepend\"\n />\n <div\n v-else-if=\"prependIcon\"\n :class=\"ui.icon()\"\n >\n <RuiIcon\n :name=\"prependIcon\"\n :size=\"18\"\n />\n </div>\n </div>\n <div\n :class=\"ui.inputWrapper()\"\n @click=\"emit('focus-input', $event)\"\n >\n <input\n :id=\"inputId\"\n ref=\"inputRef\"\n :value=\"modelValue\"\n :placeholder=\"placeholder || ' '\"\n :class=\"ui.input()\"\n :disabled=\"disabled\"\n :readonly=\"readonly\"\n :aria-invalid=\"hasError\"\n v-bind=\"getNonRootAttrs($attrs)\"\n @input=\"input($event)\"\n @blur=\"emit('blur', $event)\"\n @remove=\"emit('remove', $event)\"\n />\n <fieldset :class=\"ui.fieldset()\" />\n </div>\n <div\n v-if=\"$slots.append || appendIcon || showClearIcon\"\n :class=\"ui.append()\"\n data-id=\"append\"\n >\n <RuiButton\n v-if=\"showClearIcon\"\n :class=\"[ui.clearButton(), { hidden: !showClearButton }]\"\n variant=\"text\"\n type=\"button\"\n icon\n data-id=\"clear-btn\"\n aria-label=\"Clear\"\n tabindex=\"-1\"\n @click.stop=\"clearIconClicked()\"\n >\n <RuiIcon\n name=\"lu-x\"\n size=\"16\"\n />\n </RuiButton>\n <slot\n v-if=\"$slots.append\"\n name=\"append\"\n />\n <div\n v-else-if=\"appendIcon\"\n :class=\"ui.icon()\"\n >\n <RuiIcon\n :name=\"appendIcon\"\n :size=\"18\"\n />\n </div>\n </div>\n </div>\n <RuiFormTextDetail\n v-if=\"!hideDetails\"\n :class=\"ui.details()\"\n :error-messages=\"errorMessages\"\n :success-messages=\"successMessages\"\n :hint=\"hint\"\n >\n <template\n v-if=\"$slots.hint\"\n #hint\n >\n <slot name=\"hint\" />\n </template>\n </RuiFormTextDetail>\n </div>\n</template>\n"],"mappings":"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"}