@volverjs/ui-vue 0.0.1-beta.11 → 0.0.1-beta.16

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 (435) hide show
  1. package/bin/icons.cjs +73 -0
  2. package/bin/icons.js +75 -0
  3. package/dist/Volver.d.ts +15 -2
  4. package/dist/components/VvAccordion/VvAccordion.es.js +133 -236
  5. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  6. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +32 -97
  7. package/dist/components/VvAccordion/index.d.ts +46 -0
  8. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +199 -277
  9. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  10. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +44 -151
  11. package/dist/components/VvAccordionGroup/{VvAccordionGroup.d.ts → index.d.ts} +9 -13
  12. package/dist/components/VvBadge/VvBadge.es.js +57 -13
  13. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  14. package/dist/components/VvBadge/VvBadge.vue.d.ts +13 -54
  15. package/dist/components/VvBadge/{VvBadge.d.ts → index.d.ts} +1 -1
  16. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +55 -168
  17. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  18. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +25 -105
  19. package/dist/components/VvBreadcrumb/{VvBreadcrumb.d.ts → index.d.ts} +2 -2
  20. package/dist/components/VvButton/VvButton.es.js +304 -333
  21. package/dist/components/VvButton/VvButton.umd.js +1 -1
  22. package/dist/components/VvButton/VvButton.vue.d.ts +92 -199
  23. package/dist/components/VvButton/{VvButton.d.ts → index.d.ts} +44 -38
  24. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +58 -181
  25. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  26. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +26 -181
  27. package/dist/components/VvButtonGroup/{VvButtonGroup.d.ts → index.d.ts} +2 -26
  28. package/dist/components/VvCard/VvCard.es.js +55 -166
  29. package/dist/components/VvCard/VvCard.umd.js +1 -1
  30. package/dist/components/VvCard/VvCard.vue.d.ts +16 -61
  31. package/dist/components/VvCard/{VvCard.d.ts → index.d.ts} +1 -1
  32. package/dist/components/VvCheckbox/VvCheckbox.es.js +344 -0
  33. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -0
  34. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +87 -0
  35. package/dist/components/VvCheckbox/index.d.ts +86 -0
  36. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +415 -0
  37. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -0
  38. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +113 -0
  39. package/dist/components/{VvCheckGroup/VvCheckGroup.d.ts → VvCheckboxGroup/index.d.ts} +10 -10
  40. package/dist/components/VvDialog/VvDialog.es.js +108 -230
  41. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  42. package/dist/components/VvDialog/VvDialog.vue.d.ts +28 -132
  43. package/dist/components/VvDialog/{VvDialog.d.ts → index.d.ts} +2 -6
  44. package/dist/components/VvDropdown/VvDropdown.es.js +167 -186
  45. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  46. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +35 -137
  47. package/dist/components/VvDropdown/{VvDropdown.d.ts → index.d.ts} +8 -4
  48. package/dist/components/VvIcon/VvIcon.es.js +62 -174
  49. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  50. package/dist/components/VvIcon/VvIcon.vue.d.ts +36 -150
  51. package/dist/components/VvIcon/{VvIcon.d.ts → index.d.ts} +9 -0
  52. package/dist/components/VvInputText/VvInputClearAction.d.ts +36 -0
  53. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +56 -0
  54. package/dist/components/VvInputText/VvInputStepAction.d.ts +37 -0
  55. package/dist/components/VvInputText/VvInputText.es.js +586 -577
  56. package/dist/components/VvInputText/VvInputText.umd.js +1 -2
  57. package/dist/components/VvInputText/VvInputText.vue.d.ts +188 -276
  58. package/dist/components/VvInputText/VvInputTextActions.d.ts +1 -1
  59. package/dist/components/VvInputText/index.d.ts +175 -0
  60. package/dist/components/VvNativeSelect/VvNativeSelect.es.js +299 -347
  61. package/dist/components/VvNativeSelect/VvNativeSelect.umd.js +1 -2
  62. package/dist/components/VvNativeSelect/VvNativeSelect.vue.d.ts +78 -190
  63. package/dist/components/VvNativeSelect/{VvNativeSelect.d.ts → index.d.ts} +35 -8
  64. package/dist/components/VvProgress/VvProgress.es.js +45 -162
  65. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  66. package/dist/components/VvProgress/VvProgress.vue.d.ts +18 -104
  67. package/dist/components/VvProgress/{VvProgress.d.ts → index.d.ts} +2 -8
  68. package/dist/components/VvRadio/VvRadio.es.js +292 -267
  69. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  70. package/dist/components/VvRadio/VvRadio.vue.d.ts +52 -122
  71. package/dist/components/VvRadio/index.d.ts +64 -0
  72. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +342 -380
  73. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -2
  74. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +58 -213
  75. package/dist/components/VvRadioGroup/{VvRadioGroup.d.ts → index.d.ts} +2 -2
  76. package/dist/components/VvSelect/VvSelect.es.js +602 -368
  77. package/dist/components/VvSelect/VvSelect.umd.js +1 -2
  78. package/dist/components/VvSelect/VvSelect.vue.d.ts +78 -236
  79. package/dist/components/VvSelect/{VvSelect.d.ts → index.d.ts} +17 -6
  80. package/dist/components/VvTextarea/VvTextarea.es.js +372 -481
  81. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -2
  82. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +104 -300
  83. package/dist/components/VvTextarea/{VvTextarea.d.ts → index.d.ts} +37 -14
  84. package/dist/components/common/HintSlot.d.ts +10 -4
  85. package/dist/components/index.d.ts +13 -6
  86. package/dist/components/index.es.js +2091 -947
  87. package/dist/components/index.umd.js +1 -2
  88. package/dist/composables/debouncedInput/useDebouncedInput.d.ts +2 -2
  89. package/dist/composables/focus/useComponentFocus.d.ts +3 -3
  90. package/dist/composables/group/types/IAccordionGroupState.d.ts +1 -3
  91. package/dist/composables/group/types/IButtonGroupState.d.ts +4 -0
  92. package/dist/composables/group/types/IGroupState.d.ts +2 -2
  93. package/dist/composables/group/useInjectedGroupState.d.ts +4 -4
  94. package/dist/composables/group/useProvideGroupState.d.ts +1 -1
  95. package/dist/composables/icons/useComponentIcons.d.ts +2 -2
  96. package/dist/composables/textLimit/useTextLimit.d.ts +0 -3
  97. package/dist/constants.d.ts +4 -4
  98. package/dist/icons.d.ts +1881 -0
  99. package/dist/icons.es.js +4 -6
  100. package/dist/icons.umd.js +1 -1
  101. package/dist/index.es.js +2106 -957
  102. package/dist/index.umd.js +1 -2
  103. package/dist/props/index.d.ts +11 -4
  104. package/dist/resolvers/unplugin.d.ts +27 -0
  105. package/dist/resolvers/unplugin.es.js +40 -0
  106. package/dist/resolvers/unplugin.umd.js +1 -0
  107. package/dist/stories/Accordion/Accordion.test.d.ts +4 -0
  108. package/dist/stories/Badge/Badge.test.d.ts +2 -0
  109. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +2 -0
  110. package/dist/stories/Button/Button.test.d.ts +3 -8
  111. package/dist/stories/Card/Card.test.d.ts +3 -0
  112. package/dist/stories/Dialog/Dialog.test.d.ts +2 -0
  113. package/dist/stories/Dropdown/Dropdown.test.d.ts +2 -0
  114. package/dist/stories/Icon/IconList.vue.d.ts +1 -43
  115. package/dist/stories/InputText/InputText.test.d.ts +6 -0
  116. package/dist/stories/Radio/Radio.test.d.ts +3 -0
  117. package/dist/stories/RadioGroup/RadioGroup.test.d.ts +8 -0
  118. package/dist/stories/Select/Select.test.d.ts +3 -0
  119. package/dist/stories/Textarea/Textarea.test.d.ts +8 -0
  120. package/dist/stories/utils.d.ts +1 -3
  121. package/dist/test/sleep.d.ts +1 -0
  122. package/dist/utils/ObjectUtilities.d.ts +82 -95
  123. package/env.d.ts +1 -0
  124. package/package.json +102 -68
  125. package/src/Volver.ts +32 -3
  126. package/src/assets/icons/detailed.json +1 -1
  127. package/src/assets/icons/normal.json +1 -1
  128. package/src/assets/icons/simple.json +1 -1
  129. package/src/components/VvAccordion/VvAccordion.vue +80 -76
  130. package/src/components/VvAccordion/index.ts +69 -0
  131. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +77 -41
  132. package/src/components/VvAccordionGroup/{VvAccordionGroup.ts → index.ts} +8 -12
  133. package/src/components/VvBadge/VvBadge.vue +16 -7
  134. package/src/components/VvBadge/index.ts +6 -0
  135. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +18 -19
  136. package/src/components/VvBreadcrumb/{VvBreadcrumb.ts → index.ts} +1 -1
  137. package/src/components/VvButton/VvButton.vue +125 -124
  138. package/src/components/VvButton/index.ts +147 -0
  139. package/src/components/VvButtonGroup/VvButtonGroup.vue +26 -33
  140. package/src/components/VvButtonGroup/{VvButtonGroup.ts → index.ts} +4 -17
  141. package/src/components/VvCard/VvCard.vue +20 -22
  142. package/src/components/VvCard/{VvCard.ts → index.ts} +0 -0
  143. package/src/components/VvCheckbox/VvCheckbox.vue +124 -0
  144. package/src/components/VvCheckbox/index.ts +94 -0
  145. package/src/components/{VvCheckGroup/VvCheckGroup.vue → VvCheckboxGroup/VvCheckboxGroup.vue} +49 -54
  146. package/src/components/{VvCheckGroup/VvCheckGroup.ts → VvCheckboxGroup/index.ts} +9 -9
  147. package/src/components/VvDialog/VvDialog.vue +47 -50
  148. package/src/components/VvDialog/index.ts +10 -0
  149. package/src/components/VvDropdown/VvDropdown.vue +61 -40
  150. package/src/components/VvDropdown/{VvDropdown.ts → index.ts} +8 -4
  151. package/src/components/VvIcon/VvIcon.vue +31 -25
  152. package/src/components/VvIcon/{VvIcon.ts → index.ts} +9 -0
  153. package/src/components/VvInputText/VvInputClearAction.ts +53 -0
  154. package/src/components/VvInputText/VvInputPasswordAction.ts +70 -0
  155. package/src/components/VvInputText/VvInputStepAction.ts +49 -0
  156. package/src/components/VvInputText/VvInputText.vue +168 -170
  157. package/src/components/VvInputText/VvInputTextActions.ts +54 -108
  158. package/src/components/VvInputText/index.ts +135 -0
  159. package/src/components/VvNativeSelect/VvNativeSelect.vue +130 -68
  160. package/src/components/VvNativeSelect/{VvNativeSelect.ts → index.ts} +26 -7
  161. package/src/components/VvProgress/VvProgress.vue +25 -26
  162. package/src/components/VvProgress/{VvProgress.ts → index.ts} +4 -7
  163. package/src/components/VvRadio/VvRadio.vue +81 -108
  164. package/src/components/VvRadio/index.ts +78 -0
  165. package/src/components/VvRadioGroup/VvRadioGroup.vue +45 -45
  166. package/src/components/VvRadioGroup/{VvRadioGroup.ts → index.ts} +1 -1
  167. package/src/components/VvSelect/VvSelect.vue +91 -64
  168. package/src/components/VvSelect/{VvSelect.ts → index.ts} +16 -5
  169. package/src/components/VvTextarea/VvTextarea.vue +121 -128
  170. package/src/components/VvTextarea/{VvTextarea.ts → index.ts} +31 -11
  171. package/src/components/common/HintSlot.ts +157 -136
  172. package/src/components/index.ts +13 -6
  173. package/src/composables/debouncedInput/useDebouncedInput.ts +21 -15
  174. package/src/composables/focus/useComponentFocus.ts +6 -8
  175. package/src/composables/group/types/IAccordionGroupState.ts +1 -3
  176. package/src/composables/group/types/IButtonGroupState.ts +4 -0
  177. package/src/composables/group/types/IGroupState.ts +2 -2
  178. package/src/composables/group/useInjectedGroupState.ts +20 -30
  179. package/src/composables/group/useProvideGroupState.ts +1 -2
  180. package/src/composables/icons/useComponentIcons.ts +2 -3
  181. package/src/composables/options/useOptions.ts +3 -0
  182. package/src/composables/textLimit/useTextLimit.ts +1 -4
  183. package/src/composables/useModifiers.ts +13 -15
  184. package/src/constants.ts +5 -7
  185. package/src/directives/{.README → .gitkeep} +0 -0
  186. package/src/icons.ts +7 -0
  187. package/src/index.ts +0 -1
  188. package/src/props/index.ts +10 -2
  189. package/src/resolvers/unplugin.ts +103 -0
  190. package/src/shims.d.ts +11 -0
  191. package/src/stories/Accordion/Accordion.stories.mdx +10 -9
  192. package/src/stories/Accordion/Accordion.test.ts +37 -0
  193. package/src/stories/Accordion/AccordionSlots.stories.mdx +40 -25
  194. package/src/stories/AccordionGroup/AccordionGroup.stories.mdx +10 -16
  195. package/src/stories/AccordionGroup/{accordionGroupTest.js → AccordionGroup.test.js} +15 -17
  196. package/src/stories/AccordionGroup/AccordionGroupCollapse.stories.mdx +38 -0
  197. package/src/stories/AccordionGroup/{AccordionItems.stories.mdx → AccordionGroupItems.stories.mdx} +7 -13
  198. package/src/stories/Badge/Badge.stories.mdx +8 -8
  199. package/src/stories/Badge/Badge.test.ts +16 -0
  200. package/src/stories/Badge/BadgeColor.stories.mdx +10 -11
  201. package/src/stories/Badge/BadgeDot.stories.mdx +4 -3
  202. package/src/stories/Badge/BadgeModifiers.stories.mdx +66 -0
  203. package/src/stories/Breadcrumb/Breadcrumb.stories.mdx +15 -7
  204. package/src/stories/Breadcrumb/Breadcrumb.test.ts +49 -0
  205. package/src/stories/Breadcrumb/BreadcrumbMultiline.stories.mdx +15 -7
  206. package/src/stories/Button/Button.stories.mdx +16 -17
  207. package/src/stories/Button/Button.test.ts +8 -12
  208. package/src/stories/Button/ButtonActive.stories.mdx +28 -0
  209. package/src/stories/Button/ButtonBadge.stories.mdx +2 -2
  210. package/src/stories/Button/ButtonDisabled.stories.mdx +28 -0
  211. package/src/stories/Button/ButtonIcon.stories.mdx +6 -3
  212. package/src/stories/Button/ButtonIconPosition.stories.mdx +1 -2
  213. package/src/stories/Button/ButtonLink.stories.mdx +1 -19
  214. package/src/stories/Button/ButtonLoading.stories.mdx +4 -4
  215. package/src/stories/Button/ButtonModifiers.stories.mdx +104 -47
  216. package/src/stories/Button/ButtonPressed.stories.mdx +31 -0
  217. package/src/stories/Button/ButtonSlots.stories.mdx +1 -1
  218. package/src/stories/ButtonGroup/ButtonGroup.stories.mdx +5 -6
  219. package/src/stories/ButtonGroup/{ButtonGroupTest.js → ButtonGroup.test.js} +6 -28
  220. package/src/stories/ButtonGroup/ButtonGroupAction.stories.mdx +6 -7
  221. package/src/stories/ButtonGroup/ButtonGroupActionQuiet.stories.mdx +5 -6
  222. package/src/stories/ButtonGroup/ButtonGroupBlock.stories.mdx +4 -5
  223. package/src/stories/ButtonGroup/ButtonGroupCompact.stories.mdx +3 -4
  224. package/src/stories/ButtonGroup/ButtonGroupRounded.stories.mdx +4 -5
  225. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.mdx +11 -12
  226. package/src/stories/ButtonGroup/ButtonGroupVertical.stories.mdx +3 -4
  227. package/src/stories/Card/Card.stories.mdx +7 -5
  228. package/src/stories/Card/Card.test.ts +26 -0
  229. package/src/stories/Card/CardSlots.stories.mdx +5 -5
  230. package/src/stories/Card/CardVariant.stories.mdx +5 -4
  231. package/src/stories/Checkbox/Checkbox.stories.mdx +51 -0
  232. package/src/stories/Checkbox/Checkbox.test.js +115 -0
  233. package/src/stories/Checkbox/CheckboxBinary.stories.mdx +76 -0
  234. package/src/stories/{Check/CheckDisabled.stories.mdx → Checkbox/CheckboxDisabled.stories.mdx} +7 -7
  235. package/src/stories/Checkbox/CheckboxError.stories.mdx +43 -0
  236. package/src/stories/Checkbox/CheckboxHintLabel.stories.mdx +35 -0
  237. package/src/stories/{Check/CheckReadonly.stories.mdx → Checkbox/CheckboxReadonly.stories.mdx} +6 -8
  238. package/src/stories/Checkbox/CheckboxSlots.stories.mdx +69 -0
  239. package/src/stories/{Check/CheckSwitch.stories.mdx → Checkbox/CheckboxSwitch.stories.mdx} +8 -8
  240. package/src/stories/CheckboxGroup/CheckboxGroup.stories.mdx +69 -0
  241. package/src/stories/CheckboxGroup/CheckboxGroupDisabled.stories.mdx +26 -0
  242. package/src/stories/CheckboxGroup/CheckboxGroupError.stories.mdx +28 -0
  243. package/src/stories/CheckboxGroup/CheckboxGroupHintLabel.stories.mdx +27 -0
  244. package/src/stories/CheckboxGroup/CheckboxGroupLabel.stories.mdx +26 -0
  245. package/src/stories/{CheckGroup/CheckGroupOptionLabel.stories.mdx → CheckboxGroup/CheckboxGroupOptionLabel.stories.mdx} +14 -11
  246. package/src/stories/{CheckGroup/CheckGroupOptionValue.stories.mdx → CheckboxGroup/CheckboxGroupOptionValue.stories.mdx} +13 -10
  247. package/src/stories/{CheckGroup/CheckGroupOptions.stories.mdx → CheckboxGroup/CheckboxGroupOptions.stories.mdx} +8 -8
  248. package/src/stories/CheckboxGroup/CheckboxGroupReadonly.stories.mdx +26 -0
  249. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.mdx +152 -0
  250. package/src/stories/CheckboxGroup/CheckboxGroupValid.stories.mdx +28 -0
  251. package/src/stories/CheckboxGroup/CheckboxGroupVertical.stories.mdx +26 -0
  252. package/src/stories/Dialog/Dialog.stories.mdx +5 -5
  253. package/src/stories/Dialog/Dialog.test.ts +26 -0
  254. package/src/stories/Dialog/DialogAutoClose.stories.mdx +1 -1
  255. package/src/stories/Dialog/DialogSize.stories.mdx +1 -1
  256. package/src/stories/Dropdown/Dropdown.stories.mdx +11 -7
  257. package/src/stories/Dropdown/Dropdown.test.ts +80 -0
  258. package/src/stories/Dropdown/DropdownDisabled.stories.mdx +9 -2
  259. package/src/stories/Dropdown/DropdownLabelNoResults.stories.mdx +2 -2
  260. package/src/stories/Dropdown/DropdownMaxValues.stories.mdx +4 -2
  261. package/src/stories/Dropdown/DropdownMultiple.stories.mdx +4 -2
  262. package/src/stories/Dropdown/DropdownOptions.stories.mdx +4 -4
  263. package/src/stories/Dropdown/DropdownUseObject.stories.mdx +4 -2
  264. package/src/stories/Icon/Icon.stories.mdx +8 -8
  265. package/src/stories/Icon/{IconTest.js → Icon.test.js} +2 -5
  266. package/src/stories/Icon/IconList.vue +5 -6
  267. package/src/stories/Icon/IconPrefix.stories.mdx +2 -2
  268. package/src/stories/Icon/IconRemote.stories.mdx +2 -2
  269. package/src/stories/Icon/IconsList.stories.mdx +2 -18
  270. package/src/stories/InputText/InputText.stories.mdx +25 -19
  271. package/src/stories/InputText/InputText.test.ts +156 -0
  272. package/src/stories/InputText/InputTextAutocomplete.stories.mdx +9 -2
  273. package/src/stories/InputText/InputTextAutofocus.stories.mdx +6 -3
  274. package/src/stories/InputText/InputTextDisabled.stories.mdx +10 -2
  275. package/src/stories/InputText/InputTextError.stories.mdx +10 -2
  276. package/src/stories/InputText/InputTextFloating.stories.mdx +10 -3
  277. package/src/stories/InputText/InputTextHintLabel.stories.mdx +10 -2
  278. package/src/stories/InputText/InputTextIcon.stories.mdx +6 -2
  279. package/src/stories/InputText/InputTextIconPosition.stories.mdx +10 -3
  280. package/src/stories/InputText/InputTextLabel.stories.mdx +8 -2
  281. package/src/stories/InputText/InputTextLoading.stories.mdx +10 -2
  282. package/src/stories/InputText/InputTextMax.stories.mdx +10 -3
  283. package/src/stories/InputText/InputTextMaxLength.stories.mdx +22 -5
  284. package/src/stories/InputText/InputTextMin.stories.mdx +10 -3
  285. package/src/stories/InputText/InputTextMinLength.stories.mdx +9 -2
  286. package/src/stories/InputText/InputTextPlaceholder.stories.mdx +8 -2
  287. package/src/stories/InputText/InputTextReadonly.stories.mdx +6 -2
  288. package/src/stories/InputText/InputTextSlots.stories.mdx +4 -5
  289. package/src/stories/InputText/InputTextStep.stories.mdx +9 -3
  290. package/src/stories/InputText/InputTextType.stories.mdx +110 -13
  291. package/src/stories/InputText/InputTextValid.stories.mdx +10 -2
  292. package/src/stories/NativeSelect/NativeSelect.stories.mdx +15 -11
  293. package/src/stories/NativeSelect/NativeSelect.test.js +151 -0
  294. package/src/stories/NativeSelect/NativeSelectDisabled.stories.mdx +6 -7
  295. package/src/stories/NativeSelect/NativeSelectError.stories.mdx +7 -3
  296. package/src/stories/NativeSelect/NativeSelectHintLabel.stories.mdx +7 -3
  297. package/src/stories/NativeSelect/NativeSelectIconLeftRight.stories.mdx +14 -12
  298. package/src/stories/NativeSelect/NativeSelectLoading.stories.mdx +7 -3
  299. package/src/stories/NativeSelect/NativeSelectOptions.stories.mdx +44 -38
  300. package/src/stories/NativeSelect/NativeSelectReadonly.stories.mdx +19 -11
  301. package/src/stories/NativeSelect/NativeSelectUseObject.stories.mdx +26 -30
  302. package/src/stories/NativeSelect/NativeSelectValid.stories.mdx +7 -3
  303. package/src/stories/NativeSelect/NativeSelectValueKey.stories.mdx +30 -30
  304. package/src/stories/Progress/Progress.stories.mdx +8 -11
  305. package/src/stories/Progress/{ProgressTest.js → Progress.test.js} +4 -10
  306. package/src/stories/Progress/ProgressDeterminate.stories.mdx +3 -6
  307. package/src/stories/Radio/Radio.stories.mdx +11 -17
  308. package/src/stories/Radio/Radio.test.ts +52 -0
  309. package/src/stories/Radio/RadioDisabled.stories.mdx +4 -7
  310. package/src/stories/Radio/RadioError.stories.mdx +8 -28
  311. package/src/stories/Radio/RadioHintLabel.stories.mdx +6 -7
  312. package/src/stories/Radio/RadioSlots.stories.mdx +21 -7
  313. package/src/stories/RadioGroup/RadioGroup.stories.mdx +20 -27
  314. package/src/stories/RadioGroup/RadioGroup.test.ts +139 -0
  315. package/src/stories/RadioGroup/RadioGroupDisabled.stories.mdx +6 -8
  316. package/src/stories/RadioGroup/RadioGroupError.stories.mdx +9 -11
  317. package/src/stories/RadioGroup/RadioGroupHintLabel.stories.mdx +13 -15
  318. package/src/stories/RadioGroup/RadioGroupLabel.stories.mdx +12 -9
  319. package/src/stories/RadioGroup/RadioGroupOptionLabel.stories.mdx +16 -30
  320. package/src/stories/RadioGroup/RadioGroupOptionValue.stories.mdx +15 -29
  321. package/src/stories/RadioGroup/RadioGroupOptions.stories.mdx +9 -25
  322. package/src/stories/RadioGroup/RadioGroupReadonly.stories.mdx +6 -8
  323. package/src/stories/RadioGroup/RadioGroupSlots.stories.mdx +48 -70
  324. package/src/stories/RadioGroup/RadioGroupValid.stories.mdx +9 -11
  325. package/src/stories/RadioGroup/RadioGroupVertical.stories.mdx +6 -8
  326. package/src/stories/Select/Select.stories.mdx +32 -29
  327. package/src/stories/Select/Select.test.ts +104 -0
  328. package/src/stories/Select/SelectDisabled.stories.mdx +3 -3
  329. package/src/stories/Select/SelectMaxValues.stories.mdx +3 -3
  330. package/src/stories/Select/SelectMultiple.stories.mdx +5 -6
  331. package/src/stories/Select/SelectNative.stories.mdx +43 -0
  332. package/src/stories/Select/SelectOptions.stories.mdx +4 -4
  333. package/src/stories/Select/SelectSearchable.stories.mdx +13 -12
  334. package/src/stories/Select/SelectSeparator.stories.mdx +3 -3
  335. package/src/stories/Select/SelectUseObject.stories.mdx +3 -3
  336. package/src/stories/Textarea/Textarea.stories.mdx +6 -10
  337. package/src/stories/Textarea/Textarea.test.ts +204 -0
  338. package/src/stories/Textarea/TextareaAutoclear.stories.mdx +3 -2
  339. package/src/stories/Textarea/TextareaAutocomplete.stories.mdx +3 -2
  340. package/src/stories/Textarea/TextareaAutofocus.stories.mdx +3 -2
  341. package/src/stories/Textarea/TextareaDebounce.stories.mdx +7 -6
  342. package/src/stories/Textarea/TextareaDisabled.stories.mdx +9 -3
  343. package/src/stories/Textarea/TextareaError.stories.mdx +7 -2
  344. package/src/stories/Textarea/TextareaErrorLabel.stories.mdx +12 -2
  345. package/src/stories/Textarea/TextareaFloating.stories.mdx +7 -2
  346. package/src/stories/Textarea/TextareaHintLabel.stories.mdx +7 -2
  347. package/src/stories/Textarea/TextareaIcon.stories.mdx +3 -2
  348. package/src/stories/Textarea/TextareaIconPosition.stories.mdx +4 -2
  349. package/src/stories/Textarea/TextareaId.stories.mdx +3 -2
  350. package/src/stories/Textarea/TextareaLabel.stories.mdx +3 -2
  351. package/src/stories/Textarea/TextareaLimit.stories.mdx +5 -2
  352. package/src/stories/Textarea/TextareaLoading.stories.mdx +7 -2
  353. package/src/stories/Textarea/TextareaLoadingLabel.stories.mdx +9 -3
  354. package/src/stories/Textarea/TextareaMaxLength.stories.mdx +5 -4
  355. package/src/stories/Textarea/TextareaMinLength.stories.mdx +3 -2
  356. package/src/stories/Textarea/TextareaModifiers.stories.mdx +10 -2
  357. package/src/stories/Textarea/TextareaName.stories.mdx +3 -2
  358. package/src/stories/Textarea/TextareaPlaceholder.stories.mdx +4 -3
  359. package/src/stories/Textarea/TextareaReadonly.stories.mdx +8 -3
  360. package/src/stories/Textarea/TextareaRequired.stories.mdx +3 -2
  361. package/src/stories/Textarea/TextareaResizable.stories.mdx +7 -2
  362. package/src/stories/Textarea/TextareaRowsCols.stories.mdx +4 -2
  363. package/src/stories/Textarea/TextareaSlots.stories.mdx +7 -8
  364. package/src/stories/Textarea/TextareaValid.stories.mdx +7 -1
  365. package/src/stories/Textarea/TextareaValidLabel.stories.mdx +14 -4
  366. package/src/stories/utils.ts +1 -1
  367. package/src/stories/volver-ui-vue.stories.mdx +1 -1
  368. package/src/test/expect.ts +3 -1
  369. package/src/test/sleep.ts +2 -0
  370. package/src/test/types.d.ts +14 -1
  371. package/src/types/{.README → .gitkeep} +0 -0
  372. package/src/utils/ObjectUtilities.ts +247 -241
  373. package/dist/components/VvAccordion/VvAccordion.d.ts +0 -32
  374. package/dist/components/VvAccordion/useAccordionProps.d.ts +0 -16
  375. package/dist/components/VvButton/useButtonGroupProps.d.ts +0 -23
  376. package/dist/components/VvCheck/VvCheck.d.ts +0 -47
  377. package/dist/components/VvCheck/VvCheck.es.js +0 -318
  378. package/dist/components/VvCheck/VvCheck.umd.js +0 -1
  379. package/dist/components/VvCheck/VvCheck.vue.d.ts +0 -165
  380. package/dist/components/VvCheck/useCheckProps.d.ts +0 -16
  381. package/dist/components/VvCheckGroup/VvCheckGroup.es.js +0 -451
  382. package/dist/components/VvCheckGroup/VvCheckGroup.umd.js +0 -2
  383. package/dist/components/VvCheckGroup/VvCheckGroup.vue.d.ts +0 -272
  384. package/dist/components/VvDialog/constants.d.ts +0 -5
  385. package/dist/components/VvInputText/VvInputText.d.ts +0 -73
  386. package/dist/components/VvInputText/constants.d.ts +0 -55
  387. package/dist/components/VvRadio/VvRadio.d.ts +0 -22
  388. package/dist/components/VvRadio/useRadioProps.d.ts +0 -15
  389. package/dist/components/VvTextarea/constants.d.ts +0 -19
  390. package/dist/stories/RadioGroup/RadioProperty.test.d.ts +0 -12
  391. package/src/assets/icons/index.js +0 -7
  392. package/src/components/VvAccordion/VvAccordion.ts +0 -34
  393. package/src/components/VvAccordion/useAccordionProps.ts +0 -45
  394. package/src/components/VvBadge/VvBadge.ts +0 -4
  395. package/src/components/VvButton/VvButton.ts +0 -117
  396. package/src/components/VvButton/useButtonGroupProps.ts +0 -51
  397. package/src/components/VvCheck/VvCheck.ts +0 -48
  398. package/src/components/VvCheck/VvCheck.vue +0 -147
  399. package/src/components/VvCheck/useCheckProps.ts +0 -41
  400. package/src/components/VvDialog/VvDialog.ts +0 -17
  401. package/src/components/VvDialog/constants.ts +0 -5
  402. package/src/components/VvInputText/VvInputText.ts +0 -66
  403. package/src/components/VvInputText/constants.ts +0 -34
  404. package/src/components/VvRadio/VvRadio.ts +0 -25
  405. package/src/components/VvRadio/useRadioProps.ts +0 -40
  406. package/src/components/VvTextarea/constants.ts +0 -14
  407. package/src/stories/Accordion/AccordionBordered.stories.mdx +0 -26
  408. package/src/stories/Accordion/AccordionIconRight.stories.mdx +0 -32
  409. package/src/stories/Accordion/accordionTest.js +0 -36
  410. package/src/stories/AccordionGroup/Accordion.stories.mdx +0 -42
  411. package/src/stories/Badge/BadgeTest.js +0 -21
  412. package/src/stories/Button/ButtonVariant.stories.mdx +0 -205
  413. package/src/stories/Button/test.js +0 -41
  414. package/src/stories/Check/Check.stories.mdx +0 -62
  415. package/src/stories/Check/CheckBinary.stories.mdx +0 -75
  416. package/src/stories/Check/CheckError.stories.mdx +0 -64
  417. package/src/stories/Check/CheckErrorTests.js +0 -74
  418. package/src/stories/Check/CheckHintLabel.stories.mdx +0 -30
  419. package/src/stories/Check/CheckPropertyTest.js +0 -102
  420. package/src/stories/Check/CheckSlots.stories.mdx +0 -51
  421. package/src/stories/CheckGroup/CheckGroup.stories.mdx +0 -69
  422. package/src/stories/CheckGroup/CheckGroupDisabled.stories.mdx +0 -26
  423. package/src/stories/CheckGroup/CheckGroupError.stories.mdx +0 -28
  424. package/src/stories/CheckGroup/CheckGroupHintLabel.stories.mdx +0 -27
  425. package/src/stories/CheckGroup/CheckGroupLabel.stories.mdx +0 -26
  426. package/src/stories/CheckGroup/CheckGroupReadonly.stories.mdx +0 -26
  427. package/src/stories/CheckGroup/CheckGroupSlots.stories.mdx +0 -152
  428. package/src/stories/CheckGroup/CheckGroupValid.stories.mdx +0 -28
  429. package/src/stories/CheckGroup/CheckGroupVertical.stories.mdx +0 -26
  430. package/src/stories/Radio/RadioTest.js +0 -90
  431. package/src/stories/RadioGroup/RadioOptionsTest.js +0 -78
  432. package/src/stories/RadioGroup/RadioProperty.test.ts +0 -87
  433. package/src/stories/RadioGroup/RadioPropertyTest.js +0 -131
  434. package/src/stories/RadioGroup/RadioSlotsTest.js +0 -20
  435. package/src/stories/stories.scss +0 -35
@@ -1,7 +1,14 @@
1
+ import {
2
+ type Component,
3
+ type ExtractPropTypes,
4
+ type Slots,
5
+ type Ref,
6
+ computed,
7
+ toRefs,
8
+ h
9
+ } from 'vue'
1
10
  import { toReactive } from '@vueuse/core'
2
- import { h, type Component, type ExtractPropTypes, type Slots } from 'vue'
3
- import { computed, toRefs } from 'vue'
4
- import ObjectUtilities from '../../utils/ObjectUtilities'
11
+ import { isString, resolveFieldData, isEmpty } from '@/utils/ObjectUtilities'
5
12
 
6
13
  /**
7
14
  * Merge errors from Array<string> to string errors separated from new line (\n)
@@ -9,14 +16,10 @@ import ObjectUtilities from '../../utils/ObjectUtilities'
9
16
  * @returns {string}
10
17
  */
11
18
  function joinLines(errors: Array<string> | string | unknown[] | undefined) {
12
- if (Array.isArray(errors))
13
- return errors
14
- .filter((e) => ObjectUtilities.isString(e))
15
- .reduce((prevVal, currVal) => {
16
- if (prevVal.length > 0) return prevVal + '\n' + currVal
17
- return currVal
18
- }, '')
19
- else return errors
19
+ if (Array.isArray(errors)) {
20
+ return errors.filter((e) => isString(e)).join(' ')
21
+ }
22
+ return errors
20
23
  }
21
24
 
22
25
  interface HintSlotProps {
@@ -39,146 +42,164 @@ interface HintSlotPropsWithLoading extends HintSlotProps {
39
42
 
40
43
  /**
41
44
  * Return a vue component (HintSlot) to render and manage hint, errors, valid, loading state and messages
42
- * @param {Readonly<ExtractPropTypes<HintSlotProps | HintSlotPropsWithLoading>>} pProps vue props
43
- * @param {Slots} pSlots vue slots
45
+ * @param {Readonly<ExtractPropTypes<HintSlotProps | HintSlotPropsWithLoading>>} parentProps vue props
46
+ * @param {Slots} parentSlots vue slots
44
47
  * @returns {Component} vue component
45
48
  */
46
49
  export function HintSlotFactory(
47
- pProps: Readonly<
50
+ parentProps: Readonly<
48
51
  ExtractPropTypes<HintSlotProps | HintSlotPropsWithLoading>
49
52
  >,
50
- pSlots: Slots
51
- ): Component {
52
- return {
53
- name: 'HintSlot',
54
- props: {
55
- params: {
56
- type: Object,
57
- default: () => {
58
- return {}
59
- }
60
- }
61
- },
62
- setup(hProps) {
63
- const props = toRefs(pProps)
64
-
65
- //Slots
66
- const {
67
- error: errorSlot,
68
- valid: validSlot,
69
- hint: hintSlot,
70
- loading: loadingSlot
71
- } = pSlots
72
-
73
- //Props hint + errors
74
- const {
75
- hintLabel,
76
- modelValue,
77
- valid,
78
- validLabel,
79
- error,
80
- errorLabel
81
- } = props
82
- const loading = ObjectUtilities.resolveFieldData(props, 'loading')
83
- const loadingLabel = ObjectUtilities.resolveFieldData(
84
- props,
85
- 'loadingLabel'
53
+ parentSlots: Slots
54
+ ): {
55
+ HintSlot: Component
56
+ hasHint: Ref<boolean>
57
+ hasErrors: Ref<boolean>
58
+ hasValid: Ref<boolean>
59
+ hasLoading: Ref<boolean>
60
+ } {
61
+ // slots
62
+ const {
63
+ error: errorSlot,
64
+ valid: validSlot,
65
+ hint: hintSlot,
66
+ loading: loadingSlot
67
+ } = parentSlots
68
+
69
+ // props
70
+ const {
71
+ hintLabel,
72
+ modelValue,
73
+ valid,
74
+ validLabel,
75
+ error,
76
+ errorLabel,
77
+ ...otherProps
78
+ } = toRefs(parentProps)
79
+
80
+ const loading = resolveFieldData(otherProps, 'loading') as
81
+ | Ref<boolean>
82
+ | undefined
83
+ const loadingLabel = resolveFieldData(otherProps, 'loadingLabel') as
84
+ | Ref<string>
85
+ | undefined
86
+
87
+ const hasErrors = computed(() => {
88
+ if (!error.value) {
89
+ return false
90
+ }
91
+ if (error.value && errorSlot) {
92
+ return true
93
+ }
94
+ if (
95
+ errorLabel?.value &&
96
+ Array.isArray(errorLabel.value) &&
97
+ errorLabel.value.length > 0
98
+ ) {
99
+ return true
100
+ }
101
+ if (errorLabel?.value && !isEmpty(errorLabel)) {
102
+ return true
103
+ }
104
+ return false
105
+ })
106
+
107
+ const hasHint = computed(
108
+ () => !!((hintLabel && hintLabel.value) || hintSlot)
109
+ )
110
+
111
+ const hasValid = computed(
112
+ () => !!((validLabel && validLabel.value) || validSlot)
113
+ )
114
+
115
+ const hasLoading = computed(
116
+ () =>
117
+ !!(
118
+ (loading?.value && loadingSlot) ||
119
+ (loading?.value && loadingLabel?.value)
86
120
  )
121
+ )
87
122
 
88
- const hasErrors = computed(() => {
89
- //No error
90
- if (!error.value) return false
91
-
92
- if (error.value && errorSlot) return true
93
-
94
- if (
95
- errorLabel?.value &&
96
- Array.isArray(errorLabel.value) &&
97
- errorLabel.value.length > 0
98
- )
99
- return true
100
-
101
- if (
102
- errorLabel?.value &&
103
- ObjectUtilities.isNotEmpty(errorLabel.value)
104
- )
105
- return true
106
-
107
- return false
108
- })
109
-
110
- const hasHint = computed(() => {
111
- return !!(
112
- (hintLabel && hintLabel.value) ||
113
- hintSlot ||
114
- validSlot ||
115
- (validLabel && validLabel.value) ||
116
- hasErrors.value ||
117
- (loading?.value && loadingSlot) ||
118
- (loading?.value && loadingLabel?.value)
119
- )
120
- })
121
-
122
- // const errorMessage = computed(() => {
123
- // if (Array.isArray(errorLabel?.value))
124
- // return joinLines(errorLabel?.value || '')
125
- // else return errorLabel?.value
126
- // })
127
-
128
- const hintContent = computed(() => {
129
- const slotProps = toReactive({
130
- hintLabel,
131
- modelValue,
132
- valid,
133
- validLabel,
134
- error,
135
- errorLabel,
136
- loading,
137
- loadingLabel,
138
- ...hProps.params
139
- })
123
+ const isVisible = computed(
124
+ () => hasHint.value || hasValid || hasErrors.value || hasLoading.value
125
+ )
140
126
 
141
- if (error?.value) {
142
- return (
143
- errorSlot?.(slotProps) ||
144
- joinLines(errorLabel?.value) ||
145
- hintLabel?.value
146
- )
127
+ return {
128
+ hasErrors,
129
+ hasHint,
130
+ hasValid,
131
+ hasLoading,
132
+ HintSlot: {
133
+ name: 'HintSlot',
134
+ props: {
135
+ params: {
136
+ type: Object,
137
+ default: () => ({})
147
138
  }
139
+ },
140
+ setup(props) {
141
+ const hintContent = computed(() => {
142
+ const slotProps = toReactive({
143
+ hintLabel,
144
+ modelValue,
145
+ valid,
146
+ validLabel,
147
+ error,
148
+ errorLabel,
149
+ loading,
150
+ loadingLabel,
151
+ ...props.params
152
+ })
153
+
154
+ if (error?.value) {
155
+ return (
156
+ errorSlot?.(slotProps) ||
157
+ joinLines(errorLabel?.value) ||
158
+ hintLabel?.value
159
+ )
160
+ }
161
+
162
+ if (valid?.value)
163
+ return (
164
+ validSlot?.(slotProps) ||
165
+ joinLines(validLabel?.value) ||
166
+ hintLabel?.value
167
+ )
168
+
169
+ if (loading?.value)
170
+ return (
171
+ loadingSlot?.(slotProps) ||
172
+ joinLines(loadingLabel?.value) ||
173
+ hintLabel?.value
174
+ )
148
175
 
149
- if (valid?.value)
150
176
  return (
151
- validSlot?.(slotProps) ||
152
- joinLines(validLabel?.value) ||
177
+ hintSlot?.(slotProps) ||
178
+ joinLines(hintLabel?.value) ||
153
179
  hintLabel?.value
154
180
  )
181
+ })
155
182
 
156
- if (loading?.value)
157
- return (
158
- loadingSlot?.(slotProps) ||
159
- joinLines(loadingLabel?.value) ||
160
- hintLabel?.value
183
+ return {
184
+ isVisible,
185
+ hasErrors,
186
+ hasValid,
187
+ hintContent
188
+ }
189
+ },
190
+ render() {
191
+ if (this.isVisible) {
192
+ return h(
193
+ 'small',
194
+ {
195
+ role:
196
+ this.hasErrors || this.hasValid
197
+ ? 'alert'
198
+ : undefined
199
+ },
200
+ this.hintContent
161
201
  )
162
-
163
- return (
164
- hintSlot?.(slotProps) ||
165
- joinLines(hintLabel?.value) ||
166
- hintLabel?.value
167
- )
168
- })
169
-
170
- return {
171
- hasHint,
172
- hintContent
173
- }
174
- },
175
- render() {
176
- if (this.hasHint) {
177
- return h(
178
- 'pre',
179
- { style: { 'white-space': 'pre' } },
180
- this.hintContent
181
- )
202
+ }
182
203
  }
183
204
  }
184
205
  }
@@ -1,12 +1,19 @@
1
- export { default as VvButton } from './VvButton/VvButton.vue'
2
- export { default as VvIcon } from './VvIcon/VvIcon.vue'
3
- export { default as VvBadge } from './VvBadge/VvBadge.vue'
4
- export { default as VvButtonGroup } from './VvButtonGroup/VvButtonGroup.vue'
5
1
  export { default as VvAccordion } from './VvAccordion/VvAccordion.vue'
6
2
  export { default as VvAccordionGroup } from './VvAccordionGroup/VvAccordionGroup.vue'
3
+ export { default as VvBadge } from './VvBadge/VvBadge.vue'
7
4
  export { default as VvBreadcrumb } from './VvBreadcrumb/VvBreadcrumb.vue'
5
+ export { default as VvButton } from './VvButton/VvButton.vue'
6
+ export { default as VvButtonGroup } from './VvButtonGroup/VvButtonGroup.vue'
8
7
  export { default as VvCard } from './VvCard/VvCard.vue'
9
- export { default as VvCheck } from './VvCheck/VvCheck.vue'
10
- export { default as VvCheckGroup } from './VvCheckGroup/VvCheckGroup.vue'
8
+ export { default as VvCheckbox } from './VvCheckbox/VvCheckbox.vue'
9
+ export { default as VvCheckboxGroup } from './VvCheckboxGroup/VvCheckboxGroup.vue'
11
10
  export { default as VvDialog } from './VvDialog/VvDialog.vue'
12
11
  export { default as VvDropdown } from './VvDropdown/VvDropdown.vue'
12
+ export { default as VvIcon } from './VvIcon/VvIcon.vue'
13
+ export { default as VvInputText } from './VvInputText/VvInputText.vue'
14
+ export { default as VvNativeSelect } from './VvNativeSelect/VvNativeSelect.vue'
15
+ export { default as VvProgress } from './VvProgress/VvProgress.vue'
16
+ export { default as VvRadio } from './VvRadio/VvRadio.vue'
17
+ export { default as VvRadioGroup } from './VvRadioGroup/VvRadioGroup.vue'
18
+ export { default as VvSelect } from './VvSelect/VvSelect.vue'
19
+ export { default as VvTextarea } from './VvTextarea/VvTextarea.vue'
@@ -1,19 +1,25 @@
1
- import type { Ref } from 'vue'
1
+ import { type Ref, computed } from 'vue'
2
2
 
3
- import { refDebounced } from '@vueuse/core'
3
+ export function useDebouncedInput(
4
+ modelValue: Ref | undefined,
5
+ emit: (event: string, value: unknown) => void,
6
+ ms: string | number = 0
7
+ ): Ref {
8
+ let timeout: NodeJS.Timeout
4
9
 
5
- import { watch, ref } from 'vue'
10
+ if (typeof ms === 'string') {
11
+ ms = parseInt(ms)
12
+ }
6
13
 
7
- export function useDebouncedInput(
8
- inputText: Ref<any> | undefined,
9
- debounced: number | undefined,
10
- emit: (event: any, ...args: any[]) => void
11
- ): Ref<any> {
12
- const _text = ref(inputText?.value)
13
- const debouncedInputTextData = refDebounced(
14
- _text as Ref<any>,
15
- debounced || 0
16
- )
17
- watch(debouncedInputTextData, (v) => emit('update:modelValue', v))
18
- return _text
14
+ return computed({
15
+ get: () => modelValue?.value,
16
+ set: (value) => {
17
+ if (timeout) {
18
+ clearTimeout(timeout)
19
+ }
20
+ timeout = setTimeout(() => {
21
+ emit('update:modelValue', value)
22
+ }, ms as number)
23
+ }
24
+ })
19
25
  }
@@ -1,19 +1,17 @@
1
- import type { Ref } from 'vue'
2
- import { watch } from 'vue'
3
- import { useFocus } from '@vueuse/core'
1
+ import { watch, unref } from 'vue'
2
+ import { useFocus, type MaybeElement, type MaybeElementRef } from '@vueuse/core'
4
3
 
5
4
  /**
6
5
  *
7
6
  */
8
7
  export function useComponentFocus(
9
- inputTemplateRef: Ref<HTMLInputElement>,
10
- emit: (event: any, ...args: any[]) => void
8
+ inputTemplateRef: MaybeElementRef<MaybeElement>,
9
+ emit: (event: 'focus' | 'blur', value: unknown) => void
11
10
  ) {
12
11
  const { focused } = useFocus(inputTemplateRef)
13
12
 
14
- watch(focused, (bFocus) => {
15
- if (bFocus) emit('focus', inputTemplateRef.value)
16
- else emit('blur', inputTemplateRef.value)
13
+ watch(focused, (newValue) => {
14
+ emit(newValue ? 'focus' : 'blur', unref(inputTemplateRef))
17
15
  })
18
16
 
19
17
  return {
@@ -6,7 +6,5 @@ import type IGroupState from './IGroupState'
6
6
  * Stato condiviso per un gruppo di pulsanti
7
7
  */
8
8
  export default interface IAccordionGroupState extends IGroupState {
9
- iconRight: Ref<boolean>
10
- bordered: Ref<boolean>
11
- accordion: Ref<boolean>
9
+ collapse: Ref<boolean>
12
10
  }
@@ -18,4 +18,8 @@ export default interface IButtonGroupState extends IGroupState {
18
18
  * True = gruppo di pulsanti è in modalità TOGGLE (come i radio buttons)
19
19
  */
20
20
  toggle: Ref<boolean>
21
+ /**
22
+ * add modifiers to buttons
23
+ */
24
+ modifiers: Ref<Array<string> | string | undefined>
21
25
  }
@@ -4,9 +4,9 @@ import type { Ref } from 'vue'
4
4
  * Stato condiviso per un gruppo di elementi
5
5
  */
6
6
  export default interface IGroupState {
7
- [key: string]: Ref<any> | symbol
7
+ [key: string]: Ref<unknown> | string
8
8
  /**
9
9
  * Chiave usata per il provide del gruppo
10
10
  */
11
- key: symbol
11
+ key: string
12
12
  }
@@ -1,35 +1,29 @@
1
- import type IGroupState from './types/IGroupState'
2
- import { toRef, unref, type Ref } from 'vue'
3
-
4
- import { inject, computed } from 'vue'
5
- import ObjectUtilities from '../../utils/ObjectUtilities'
1
+ import { type Ref, toRef, unref, inject, computed } from 'vue'
2
+ import type IGroupState from '@/composables/group/types/IGroupState'
3
+ import { isEmpty } from '@/utils/ObjectUtilities'
6
4
 
7
5
  /**
8
- * Esegue l'inject dello stato condiviso da un componente padre.
6
+ * Injects a group state
9
7
  */
10
8
  export function useInjectedGroupState<TGroup extends IGroupState>(
11
- groupKey: symbol
9
+ groupKey: string
12
10
  ) {
13
- //Recupera, se esiste, lo stato condiviso fornito da un parent "group"
11
+ // Get group state
14
12
  const group = inject<Ref<TGroup> | undefined>(groupKey, undefined)
15
13
 
16
- //Check if component is in group
17
- const isInGroup = computed(() => ObjectUtilities.isNotEmpty(group))
14
+ // Check if component is in group
15
+ const isInGroup = computed(() => !isEmpty(group))
18
16
 
19
17
  /**
20
- * Crea una computed ref (writable) che può utilizzare esporre il valore o dall'oggetto props oppure dal group
18
+ * Get a group or local property
21
19
  */
22
20
  function getGroupOrLocalRef<T extends object>(
23
21
  propName: keyof TGroup,
24
22
  props: T,
25
- emit?: (event: any, ...args: any[]) => void
23
+ emit?: (event: string, ...args: unknown[]) => void
26
24
  ) {
27
- //Check se propName non è in gruppo o locale -> Spaccarsi
28
25
  if (group?.value) {
29
- // if (!Object.keys(group.value).includes(propName as string))
30
- // throw Error(`${propName as string} is not a group valid prop`)
31
-
32
- const groupPropValue = unref(group.value)[propName] as Ref<any>
26
+ const groupPropValue = unref(group.value)[propName] as Ref<unknown>
33
27
  return computed({
34
28
  get() {
35
29
  return groupPropValue?.value
@@ -38,20 +32,16 @@ export function useInjectedGroupState<TGroup extends IGroupState>(
38
32
  groupPropValue.value = value
39
33
  }
40
34
  })
41
- } else {
42
- // if (!Object.keys(props).includes(propName as string))
43
- // throw Error(`${propName as string} is not a valid prop`)
44
-
45
- const propRef = toRef(props, propName as keyof T)
46
- return computed({
47
- get() {
48
- return propRef.value
49
- },
50
- set(value) {
51
- if (emit) emit(`update:${propName as string}`, value)
52
- }
53
- })
54
35
  }
36
+ const propRef = toRef(props, propName as keyof T)
37
+ return computed({
38
+ get() {
39
+ return propRef.value
40
+ },
41
+ set(value) {
42
+ if (emit) emit(`update:${propName as string}`, value)
43
+ }
44
+ })
55
45
  }
56
46
 
57
47
  return {
@@ -1,5 +1,5 @@
1
- import type IGroupState from './types/IGroupState'
2
1
  import { provide, computed, isRef } from 'vue'
2
+ import type IGroupState from '@/composables/group/types/IGroupState'
3
3
 
4
4
  /**
5
5
  * Condividi parte dello stato del componente con tutti i suoi figli.
@@ -14,7 +14,6 @@ export function useProvideGroupState<TGroup extends IGroupState>(
14
14
  )
15
15
  )
16
16
  throw Error("One or more groupState props aren't ref.")
17
-
18
17
  provide(
19
18
  groupState.key,
20
19
  computed(() => groupState)
@@ -1,5 +1,4 @@
1
- import type { Slot, Ref } from 'vue'
2
- import { computed } from 'vue'
1
+ import { type Slot, type Ref, computed } from 'vue'
3
2
 
4
3
  interface ComponentIconProps {
5
4
  icon: Ref<string>
@@ -52,7 +51,7 @@ export function useComponentIcons(
52
51
  }
53
52
 
54
53
  export function useComponentIcon(
55
- icon: Ref<string>,
54
+ icon: Ref<string | object>,
56
55
  iconPosition: Ref<string>,
57
56
  slots: ComponentIconSlots
58
57
  ) {
@@ -1,8 +1,10 @@
1
1
  import { toRefs } from 'vue'
2
2
 
3
+ // eslint-disable-next-line
3
4
  export function useOptions(props: any) {
4
5
  const { options, optionLabel, optionValue } = toRefs(props)
5
6
 
7
+ // eslint-disable-next-line
6
8
  const getOptionLabel = (o: any) => {
7
9
  if (typeof o !== 'object' && o !== null) return o
8
10
 
@@ -11,6 +13,7 @@ export function useOptions(props: any) {
11
13
  : o[optionLabel.value]
12
14
  }
13
15
 
16
+ // eslint-disable-next-line
14
17
  const getOptionValue = (o: any) => {
15
18
  if (typeof o !== 'object' && o !== null) return o
16
19
 
@@ -1,14 +1,11 @@
1
- import { isString } from '@vueuse/core'
2
1
  import { computed, unref, type Ref } from 'vue'
2
+ import { isString } from '@vueuse/core'
3
3
 
4
4
  interface useTextOptions {
5
5
  mode: string | boolean
6
6
  upperLimit: number
7
7
  }
8
8
 
9
- /**
10
- *
11
- */
12
9
  export function useTextLimit(inputText: Ref<string>, options: useTextOptions) {
13
10
  const textLength = computed(() => {
14
11
  const _text = unref(inputText)
@@ -1,5 +1,5 @@
1
1
  import { computed, unref, type Ref } from 'vue'
2
- import ObjectUtilities from '@/utils/ObjectUtilities'
2
+ import { kebabCase } from '@/utils/ObjectUtilities'
3
3
 
4
4
  interface IBemModifiers {
5
5
  [key: string]:
@@ -23,24 +23,24 @@ export function useBemModifiers(prefix: string, modifiers: IBemModifiers) {
23
23
 
24
24
  const bemCssClasses = computed(() => {
25
25
  return (
26
- Object.keys(modifiers).reduce((acc, k) => {
27
- const _modifier = unref(modifiers[k] as Ref<any>) || false
26
+ Object.keys(modifiers).reduce((acc, item) => {
27
+ const _modifier =
28
+ unref(modifiers[item] as Ref<string | string[]>) || false
28
29
 
29
30
  if (!_modifier) return acc
30
31
 
31
- if (k === 'modifiers') {
32
+ if (item === 'modifiers') {
32
33
  const _reduceModifiers = Array.isArray(_modifier)
33
34
  ? _modifier
34
- : [_modifier]
35
+ : _modifier.split(' ')
35
36
  return {
36
37
  ...acc,
37
38
  ..._reduceModifiers.reduce(
38
39
  (accVariant: object, currentVariant: string) => {
39
40
  return {
40
41
  ...accVariant,
41
- [`${prefix}--${ObjectUtilities.kebabCase(
42
- currentVariant
43
- )}`]: true
42
+ [`${prefix}--${kebabCase(currentVariant)}`]:
43
+ true
44
44
  }
45
45
  },
46
46
  {}
@@ -49,8 +49,7 @@ export function useBemModifiers(prefix: string, modifiers: IBemModifiers) {
49
49
  } else {
50
50
  return {
51
51
  ...acc,
52
- [`${prefix}--${ObjectUtilities.kebabCase(k)}`]:
53
- _modifier
52
+ [`${prefix}--${kebabCase(item)}`]: _modifier
54
53
  }
55
54
  }
56
55
  }, baseCssClass) || {}
@@ -67,7 +66,7 @@ export function toBem(prefix: string, modifiers: IBemModifiers) {
67
66
 
68
67
  return (
69
68
  Object.keys(modifiers).reduce((acc, k) => {
70
- const _modifier = unref(modifiers[k] as Ref<any>) || false
69
+ const _modifier = unref(modifiers[k] as Ref<unknown>) || false
71
70
 
72
71
  if (!_modifier) return acc
73
72
 
@@ -81,9 +80,8 @@ export function toBem(prefix: string, modifiers: IBemModifiers) {
81
80
  (accVariant: object, currentVariant: string) => {
82
81
  return {
83
82
  ...accVariant,
84
- [`${prefix}--${ObjectUtilities.kebabCase(
85
- currentVariant
86
- )}`]: true
83
+ [`${prefix}--${kebabCase(currentVariant)}`]:
84
+ true
87
85
  }
88
86
  },
89
87
  {}
@@ -92,7 +90,7 @@ export function toBem(prefix: string, modifiers: IBemModifiers) {
92
90
  } else {
93
91
  return {
94
92
  ...acc,
95
- [`${prefix}--${ObjectUtilities.kebabCase(k)}`]: _modifier
93
+ [`${prefix}--${kebabCase(k)}`]: _modifier
96
94
  }
97
95
  }
98
96
  }, baseCssClass) || {}