@volverjs/ui-vue 0.0.1-beta.6 → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +101 -7
  3. package/bin/icons.cjs +73 -0
  4. package/bin/icons.js +75 -0
  5. package/dist/{DesignSystem.d.ts → Volver.d.ts} +22 -18
  6. package/dist/components/VvAccordion/VvAccordion.es.js +165 -0
  7. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -0
  8. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +32 -97
  9. package/dist/components/VvAccordion/index.d.ts +46 -0
  10. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +243 -0
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -0
  12. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +77 -151
  13. package/dist/components/VvAccordionGroup/{VvAccordionGroup.d.ts → index.d.ts} +30 -13
  14. package/dist/components/VvBadge/VvBadge.es.js +62 -0
  15. package/dist/components/VvBadge/VvBadge.umd.js +1 -0
  16. package/dist/components/VvBadge/VvBadge.vue.d.ts +13 -54
  17. package/dist/components/VvBadge/{VvBadge.d.ts → index.d.ts} +1 -1
  18. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +93 -0
  19. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -0
  20. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +33 -107
  21. package/dist/components/VvBreadcrumb/{VvBreadcrumb.d.ts → index.d.ts} +2 -3
  22. package/dist/components/VvButton/VvButton.es.js +427 -0
  23. package/dist/components/VvButton/VvButton.umd.js +1 -0
  24. package/dist/components/VvButton/VvButton.vue.d.ts +108 -199
  25. package/dist/components/VvButton/index.d.ts +132 -0
  26. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +108 -0
  27. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -0
  28. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +89 -183
  29. package/dist/components/VvButtonGroup/index.d.ts +54 -0
  30. package/dist/components/VvCard/VvCard.es.js +77 -0
  31. package/dist/components/VvCard/VvCard.umd.js +1 -0
  32. package/dist/components/VvCard/VvCard.vue.d.ts +16 -61
  33. package/dist/components/VvCard/{VvCard.d.ts → index.d.ts} +1 -1
  34. package/dist/components/VvCheckbox/VvCheckbox.es.js +357 -0
  35. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -0
  36. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +74 -0
  37. package/dist/components/VvCheckbox/index.d.ts +54 -0
  38. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +435 -0
  39. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -0
  40. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +82 -0
  41. package/dist/components/VvCheckboxGroup/index.d.ts +32 -0
  42. package/dist/components/VvCombobox/VvCombobox.es.js +594 -0
  43. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -0
  44. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +153 -0
  45. package/dist/components/{VvSelect/VvSelect.d.ts → VvCombobox/index.d.ts} +33 -36
  46. package/dist/components/VvDialog/VvDialog.es.js +200 -0
  47. package/dist/components/VvDialog/VvDialog.umd.js +1 -0
  48. package/dist/components/VvDialog/VvDialog.vue.d.ts +28 -132
  49. package/dist/components/VvDialog/{VvDialog.d.ts → index.d.ts} +2 -6
  50. package/dist/components/VvDropdown/VvDropdown.es.js +218 -0
  51. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -0
  52. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +41 -147
  53. package/dist/components/VvDropdown/index.d.ts +37 -0
  54. package/dist/components/VvIcon/VvIcon.es.js +124 -0
  55. package/dist/components/VvIcon/VvIcon.umd.js +1 -0
  56. package/dist/components/VvIcon/VvIcon.vue.d.ts +36 -150
  57. package/dist/components/VvIcon/{VvIcon.d.ts → index.d.ts} +9 -0
  58. package/dist/components/VvInputText/VvInputClearAction.d.ts +36 -0
  59. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +56 -0
  60. package/dist/components/VvInputText/VvInputStepAction.d.ts +37 -0
  61. package/dist/components/VvInputText/VvInputText.es.js +764 -0
  62. package/dist/components/VvInputText/VvInputText.umd.js +1 -0
  63. package/dist/components/VvInputText/VvInputText.vue.d.ts +214 -256
  64. package/dist/components/VvInputText/VvInputTextActions.d.ts +3 -0
  65. package/dist/components/VvInputText/index.d.ts +182 -0
  66. package/dist/components/VvProgress/VvProgress.es.js +71 -0
  67. package/dist/components/VvProgress/VvProgress.umd.js +1 -0
  68. package/dist/components/VvProgress/VvProgress.vue.d.ts +20 -107
  69. package/dist/components/VvProgress/index.d.ts +30 -0
  70. package/dist/components/VvRadio/VvRadio.es.js +320 -0
  71. package/dist/components/VvRadio/VvRadio.umd.js +1 -0
  72. package/dist/components/VvRadio/VvRadio.vue.d.ts +55 -125
  73. package/dist/components/VvRadio/index.d.ts +40 -0
  74. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +398 -0
  75. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -0
  76. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +56 -238
  77. package/dist/components/VvRadioGroup/index.d.ts +32 -0
  78. package/dist/components/VvSelect/VvSelect.es.js +415 -0
  79. package/dist/components/VvSelect/VvSelect.umd.js +1 -0
  80. package/dist/components/VvSelect/VvSelect.vue.d.ts +112 -262
  81. package/dist/components/VvSelect/index.d.ts +96 -0
  82. package/dist/components/VvTextarea/VvTextarea.es.js +463 -0
  83. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -0
  84. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +147 -273
  85. package/dist/components/VvTextarea/index.d.ts +102 -0
  86. package/dist/components/common/HintSlot.d.ts +12 -6
  87. package/dist/components/index.d.ts +19 -12
  88. package/dist/components/index.es.js +2309 -0
  89. package/dist/components/index.umd.js +1 -0
  90. package/dist/composables/group/types/IAccordionGroupState.d.ts +3 -4
  91. package/dist/composables/group/types/IButtonGroupState.d.ts +5 -11
  92. package/dist/composables/group/types/IGroupState.d.ts +3 -6
  93. package/dist/composables/group/types/IInputGroup.d.ts +1 -4
  94. package/dist/composables/group/useInjectedGroupState.d.ts +4 -4
  95. package/dist/composables/group/useProvideGroupState.d.ts +2 -2
  96. package/dist/composables/useComponentFocus.d.ts +4 -0
  97. package/dist/composables/{icons/useComponentIcons.d.ts → useComponentIcons.d.ts} +8 -1
  98. package/dist/composables/useDebouncedInput.d.ts +2 -0
  99. package/dist/composables/useModifiers.d.ts +3 -2
  100. package/dist/composables/useOptions.d.ts +6 -0
  101. package/dist/composables/useTextCount.d.ts +10 -0
  102. package/dist/constants.d.ts +4 -4
  103. package/dist/icons.d.ts +1881 -0
  104. package/dist/icons.es.js +12 -14
  105. package/dist/icons.umd.js +1 -1
  106. package/dist/index.d.ts +9 -4
  107. package/dist/index.es.js +2350 -0
  108. package/dist/index.umd.js +1 -0
  109. package/dist/props/index.d.ts +322 -13
  110. package/dist/resolvers/unplugin.d.ts +27 -0
  111. package/dist/resolvers/unplugin.es.js +40 -0
  112. package/dist/resolvers/unplugin.umd.js +1 -0
  113. package/dist/stories/Accordion/Accordion.settings.d.ts +63 -0
  114. package/dist/stories/Accordion/Accordion.test.d.ts +2 -0
  115. package/dist/stories/AccordionGroup/AccordionGroup.settings.d.ts +58 -0
  116. package/dist/stories/AccordionGroup/AccordionGroup.test.d.ts +2 -0
  117. package/dist/stories/Badge/Badge.settings.d.ts +32 -0
  118. package/dist/stories/Badge/Badge.test.d.ts +2 -0
  119. package/dist/stories/Breadcrumb/Breadcrumb.settings.d.ts +29 -0
  120. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +2 -0
  121. package/dist/stories/Button/Button.settings.d.ts +200 -0
  122. package/dist/stories/Button/Button.test.d.ts +1 -10
  123. package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +38 -0
  124. package/dist/stories/ButtonGroup/ButtonGroup.test.d.ts +2 -0
  125. package/dist/stories/Card/Card.settings.d.ts +70 -0
  126. package/dist/stories/Card/Card.test.d.ts +2 -0
  127. package/dist/stories/Checkbox/Checkbox.settings.d.ts +165 -0
  128. package/dist/stories/Checkbox/Checkbox.test.d.ts +2 -0
  129. package/dist/stories/CheckboxGroup/CheckboxGroup.settings.d.ts +164 -0
  130. package/dist/stories/CheckboxGroup/CheckboxGroup.test.d.ts +2 -0
  131. package/dist/stories/Combobox/Combobox.settings.d.ts +267 -0
  132. package/dist/stories/Combobox/Combobox.test.d.ts +2 -0
  133. package/dist/stories/Dialog/Dialog.settings.d.ts +55 -0
  134. package/dist/stories/Dialog/Dialog.test.d.ts +2 -0
  135. package/dist/stories/Dropdown/Dropdown.settings.d.ts +75 -0
  136. package/dist/stories/Dropdown/Dropdown.test.d.ts +2 -0
  137. package/dist/stories/Icon/Icon.settings.d.ts +74 -0
  138. package/dist/stories/InputText/InputText.settings.d.ts +445 -0
  139. package/dist/stories/InputText/InputText.test.d.ts +2 -0
  140. package/dist/stories/Progress/Progress.settings.d.ts +38 -0
  141. package/dist/stories/Progress/Progress.test.d.ts +2 -0
  142. package/dist/stories/Radio/Radio.settings.d.ts +139 -0
  143. package/dist/stories/Radio/Radio.test.d.ts +2 -0
  144. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +164 -0
  145. package/dist/stories/RadioGroup/RadioGroup.test.d.ts +2 -0
  146. package/dist/stories/Select/Select.settings.d.ts +265 -0
  147. package/dist/stories/Select/Select.test.d.ts +2 -0
  148. package/dist/stories/Textarea/Textarea.settings.d.ts +336 -0
  149. package/dist/stories/Textarea/Textarea.test.d.ts +2 -0
  150. package/dist/stories/argTypes.d.ts +793 -0
  151. package/dist/test/expect.d.ts +3 -0
  152. package/dist/test/options.d.ts +1 -0
  153. package/dist/test/sleep.d.ts +1 -0
  154. package/dist/utils/ObjectUtilities.d.ts +82 -95
  155. package/env.d.ts +1 -0
  156. package/package.json +198 -124
  157. package/src/{DesignSystem.ts → Volver.ts} +57 -29
  158. package/src/assets/icons/detailed.json +1 -1
  159. package/src/assets/icons/normal.json +1 -1
  160. package/src/assets/icons/simple.json +1 -1
  161. package/src/components/VvAccordion/VvAccordion.vue +94 -78
  162. package/src/components/VvAccordion/index.ts +72 -0
  163. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +93 -53
  164. package/src/components/VvAccordionGroup/{VvAccordionGroup.ts → index.ts} +18 -14
  165. package/src/components/VvBadge/VvBadge.vue +17 -8
  166. package/src/components/VvBadge/index.ts +6 -0
  167. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +26 -24
  168. package/src/components/VvBreadcrumb/{VvBreadcrumb.ts → index.ts} +1 -2
  169. package/src/components/VvButton/VvButton.vue +174 -154
  170. package/src/components/VvButton/index.ts +171 -0
  171. package/src/components/VvButtonGroup/VvButtonGroup.vue +76 -48
  172. package/src/components/VvButtonGroup/index.ts +19 -0
  173. package/src/components/VvCard/VvCard.vue +20 -22
  174. package/src/components/VvCard/{VvCard.ts → index.ts} +1 -1
  175. package/src/components/VvCheckbox/VvCheckbox.vue +172 -0
  176. package/src/components/VvCheckbox/index.ts +60 -0
  177. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +85 -0
  178. package/src/components/VvCheckboxGroup/index.ts +5 -0
  179. package/src/components/VvCombobox/VvCombobox.vue +227 -0
  180. package/src/components/VvCombobox/index.ts +82 -0
  181. package/src/components/VvDialog/VvDialog.vue +69 -67
  182. package/src/components/VvDialog/index.ts +10 -0
  183. package/src/components/VvDropdown/VvDropdown.vue +112 -114
  184. package/src/components/VvDropdown/index.ts +25 -0
  185. package/src/components/VvIcon/README.md +64 -0
  186. package/src/components/VvIcon/VvIcon.vue +122 -107
  187. package/src/components/VvIcon/{VvIcon.ts → index.ts} +17 -8
  188. package/src/components/VvInputText/VvInputClearAction.ts +53 -0
  189. package/src/components/VvInputText/VvInputPasswordAction.ts +70 -0
  190. package/src/components/VvInputText/VvInputStepAction.ts +49 -0
  191. package/src/components/VvInputText/VvInputText.vue +293 -252
  192. package/src/components/VvInputText/VvInputTextActions.ts +100 -0
  193. package/src/components/VvInputText/index.ts +140 -0
  194. package/src/components/VvProgress/VvProgress.vue +29 -29
  195. package/src/components/VvProgress/index.ts +32 -0
  196. package/src/components/VvRadio/VvRadio.vue +90 -119
  197. package/src/components/VvRadio/index.ts +40 -0
  198. package/src/components/VvRadioGroup/VvRadioGroup.vue +76 -69
  199. package/src/components/VvRadioGroup/index.ts +5 -0
  200. package/src/components/VvSelect/VvSelect.vue +165 -186
  201. package/src/components/VvSelect/index.ts +74 -0
  202. package/src/components/VvTextarea/VvTextarea.vue +188 -180
  203. package/src/components/VvTextarea/index.ts +50 -0
  204. package/src/components/common/HintSlot.ts +169 -121
  205. package/src/components/index.ts +19 -12
  206. package/src/composables/group/types/IAccordionGroupState.ts +3 -4
  207. package/src/composables/group/types/IButtonGroupState.ts +5 -11
  208. package/src/composables/group/types/IGroupState.ts +4 -6
  209. package/src/composables/group/types/IInputGroup.ts +1 -4
  210. package/src/composables/group/useInjectedGroupState.ts +21 -33
  211. package/src/composables/group/useProvideGroupState.ts +5 -7
  212. package/src/composables/useComponentFocus.ts +17 -0
  213. package/src/composables/useComponentIcons.ts +96 -0
  214. package/src/composables/useDebouncedInput.ts +25 -0
  215. package/src/composables/useModifiers.ts +58 -14
  216. package/src/composables/useOptions.ts +31 -0
  217. package/src/composables/useTextCount.ts +57 -0
  218. package/src/constants.ts +5 -7
  219. package/src/directives/{.README → .gitkeep} +0 -0
  220. package/src/icons.ts +7 -0
  221. package/src/index.ts +12 -5
  222. package/src/props/index.ts +204 -15
  223. package/src/resolvers/unplugin.ts +103 -0
  224. package/src/shims.d.ts +13 -0
  225. package/src/stories/Accordion/Accordion.settings.ts +46 -0
  226. package/src/stories/Accordion/Accordion.stories.mdx +21 -21
  227. package/src/stories/Accordion/Accordion.test.ts +61 -0
  228. package/src/stories/Accordion/AccordionSlots.stories.mdx +46 -70
  229. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +55 -0
  230. package/src/stories/AccordionGroup/AccordionGroup.stories.mdx +24 -27
  231. package/src/stories/AccordionGroup/AccordionGroup.test.ts +50 -0
  232. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.mdx +56 -0
  233. package/src/stories/Badge/Badge.settings.ts +26 -0
  234. package/src/stories/Badge/Badge.stories.mdx +36 -24
  235. package/src/stories/Badge/Badge.test.ts +12 -0
  236. package/src/stories/Badge/BadgeSlots.stories.mdx +20 -0
  237. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +41 -0
  238. package/src/stories/Breadcrumb/Breadcrumb.stories.mdx +32 -29
  239. package/src/stories/Breadcrumb/Breadcrumb.test.ts +50 -0
  240. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.mdx +43 -0
  241. package/src/stories/Button/Button.settings.ts +150 -0
  242. package/src/stories/Button/Button.stories.mdx +20 -54
  243. package/src/stories/Button/Button.test.ts +35 -46
  244. package/src/stories/Button/ButtonIcon.stories.mdx +139 -29
  245. package/src/stories/Button/ButtonLink.stories.mdx +58 -111
  246. package/src/stories/Button/ButtonLoading.stories.mdx +89 -62
  247. package/src/stories/Button/ButtonModifiers.stories.mdx +198 -121
  248. package/src/stories/Button/ButtonSlots.stories.mdx +83 -95
  249. package/src/stories/Button/ButtonState.stories.mdx +75 -0
  250. package/src/stories/Button/ButtonToggle.stories.mdx +50 -0
  251. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +28 -0
  252. package/src/stories/ButtonGroup/ButtonGroup.stories.mdx +16 -18
  253. package/src/stories/ButtonGroup/ButtonGroup.test.ts +35 -0
  254. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.mdx +52 -0
  255. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.mdx +45 -114
  256. package/src/stories/Card/Card.settings.ts +55 -0
  257. package/src/stories/Card/Card.stories.mdx +27 -11
  258. package/src/stories/Card/Card.test.ts +23 -0
  259. package/src/stories/Card/CardSlots.stories.mdx +80 -24
  260. package/src/stories/Checkbox/Checkbox.settings.ts +43 -0
  261. package/src/stories/Checkbox/Checkbox.stories.mdx +163 -0
  262. package/src/stories/Checkbox/Checkbox.test.ts +81 -0
  263. package/src/stories/Checkbox/CheckboxBinary.stories.mdx +68 -0
  264. package/src/stories/Checkbox/CheckboxSlots.stories.mdx +46 -0
  265. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +15 -0
  266. package/src/stories/CheckboxGroup/CheckboxGroup.stories.mdx +134 -0
  267. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +83 -0
  268. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.mdx +100 -0
  269. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.mdx +67 -0
  270. package/src/stories/Combobox/Combobox.settings.ts +122 -0
  271. package/src/stories/Combobox/Combobox.stories.mdx +153 -0
  272. package/src/stories/Combobox/Combobox.test.ts +96 -0
  273. package/src/stories/Combobox/ComboboxMultiple.stories.mdx +74 -0
  274. package/src/stories/Combobox/ComboboxOptions.stories.mdx +100 -0
  275. package/src/stories/Combobox/ComboboxSlots.stories.mdx +48 -0
  276. package/src/stories/Dialog/Dialog.settings.ts +45 -0
  277. package/src/stories/Dialog/Dialog.stories.mdx +42 -16
  278. package/src/stories/Dialog/Dialog.test.ts +69 -0
  279. package/src/stories/Dialog/DialogSlots.stories.mdx +63 -0
  280. package/src/stories/Dropdown/Dropdown.settings.ts +42 -0
  281. package/src/stories/Dropdown/Dropdown.stories.mdx +85 -29
  282. package/src/stories/Dropdown/Dropdown.test.ts +43 -0
  283. package/src/stories/Dropdown/DropdownOptions.stories.mdx +87 -67
  284. package/src/stories/Icon/Icon.settings.ts +72 -0
  285. package/src/stories/Icon/Icon.stories.mdx +76 -59
  286. package/src/stories/Icon/IconsCollection.stories.mdx +68 -0
  287. package/src/stories/InputText/InputText.settings.ts +221 -0
  288. package/src/stories/InputText/InputText.stories.mdx +142 -69
  289. package/src/stories/InputText/InputText.test.ts +125 -0
  290. package/src/stories/InputText/InputTextIconPosition.stories.mdx +63 -16
  291. package/src/stories/InputText/InputTextLength.stories.mdx +110 -0
  292. package/src/stories/InputText/InputTextMinMax.stories.mdx +112 -0
  293. package/src/stories/InputText/InputTextSlots.stories.mdx +61 -22
  294. package/src/stories/InputText/InputTextType.stories.mdx +207 -29
  295. package/src/stories/Progress/Progress.settings.ts +33 -0
  296. package/src/stories/Progress/Progress.stories.mdx +12 -14
  297. package/src/stories/Progress/Progress.test.ts +9 -0
  298. package/src/stories/Radio/Radio.settings.ts +15 -0
  299. package/src/stories/Radio/Radio.stories.mdx +102 -42
  300. package/src/stories/Radio/Radio.test.ts +70 -0
  301. package/src/stories/Radio/RadioSlots.stories.mdx +39 -22
  302. package/src/stories/RadioGroup/RadioGroup.settings.ts +15 -0
  303. package/src/stories/RadioGroup/RadioGroup.stories.mdx +115 -54
  304. package/src/stories/RadioGroup/RadioGroup.test.ts +83 -0
  305. package/src/stories/RadioGroup/RadioGroupOptions.stories.mdx +83 -41
  306. package/src/stories/RadioGroup/RadioGroupSlots.stories.mdx +49 -144
  307. package/src/stories/Select/Select.settings.ts +100 -0
  308. package/src/stories/Select/Select.stories.mdx +113 -33
  309. package/src/stories/Select/Select.test.ts +82 -0
  310. package/src/stories/Select/SelectOptions.stories.mdx +91 -69
  311. package/src/stories/Select/SelectSlots.stories.mdx +48 -0
  312. package/src/stories/Textarea/Textarea.settings.ts +96 -0
  313. package/src/stories/Textarea/Textarea.stories.mdx +160 -58
  314. package/src/stories/Textarea/Textarea.test.ts +90 -0
  315. package/src/stories/Textarea/TextareaLength.stories.mdx +110 -0
  316. package/src/stories/Textarea/TextareaSlots.stories.mdx +61 -23
  317. package/src/stories/Textarea/TextareatIconPosition.stories.mdx +78 -0
  318. package/src/stories/argTypes.ts +433 -0
  319. package/src/test/expect.ts +27 -6
  320. package/src/test/options.ts +17 -0
  321. package/src/test/sleep.ts +2 -0
  322. package/src/test/types.d.ts +14 -0
  323. package/src/types/generic.d.ts +5 -0
  324. package/src/utils/ObjectUtilities.ts +253 -244
  325. package/dist/components/VvAccordion/VvAccordion.d.ts +0 -32
  326. package/dist/components/VvAccordion/useAccordionProps.d.ts +0 -16
  327. package/dist/components/VvAccordion/vv-accordion.es.js +0 -262
  328. package/dist/components/VvAccordion/vv-accordion.umd.js +0 -1
  329. package/dist/components/VvAccordionGroup/vv-accordion-group.es.js +0 -315
  330. package/dist/components/VvAccordionGroup/vv-accordion-group.umd.js +0 -1
  331. package/dist/components/VvBadge/vv-badge.es.js +0 -18
  332. package/dist/components/VvBadge/vv-badge.umd.js +0 -1
  333. package/dist/components/VvBreadcrumb/vv-breadcrumb.es.js +0 -206
  334. package/dist/components/VvBreadcrumb/vv-breadcrumb.umd.js +0 -1
  335. package/dist/components/VvButton/VvButton.d.ts +0 -115
  336. package/dist/components/VvButton/useButtonGroupProps.d.ts +0 -23
  337. package/dist/components/VvButton/vv-button.es.js +0 -424
  338. package/dist/components/VvButton/vv-button.umd.js +0 -1
  339. package/dist/components/VvButtonGroup/VvButtonGroup.d.ts +0 -57
  340. package/dist/components/VvButtonGroup/vv-button-group.es.js +0 -210
  341. package/dist/components/VvButtonGroup/vv-button-group.umd.js +0 -1
  342. package/dist/components/VvCard/vv-card.es.js +0 -188
  343. package/dist/components/VvCard/vv-card.umd.js +0 -1
  344. package/dist/components/VvCheck/VvCheck.d.ts +0 -47
  345. package/dist/components/VvCheck/VvCheck.vue.d.ts +0 -165
  346. package/dist/components/VvCheck/useCheckProps.d.ts +0 -16
  347. package/dist/components/VvCheck/vv-check.es.js +0 -321
  348. package/dist/components/VvCheck/vv-check.umd.js +0 -1
  349. package/dist/components/VvCheckGroup/VvCheckGroup.d.ts +0 -65
  350. package/dist/components/VvCheckGroup/VvCheckGroup.vue.d.ts +0 -272
  351. package/dist/components/VvCheckGroup/vv-check-group.es.js +0 -434
  352. package/dist/components/VvCheckGroup/vv-check-group.umd.js +0 -2
  353. package/dist/components/VvDialog/constants.d.ts +0 -5
  354. package/dist/components/VvDialog/vv-dialog.es.js +0 -315
  355. package/dist/components/VvDialog/vv-dialog.umd.js +0 -1
  356. package/dist/components/VvDropdown/VvDropdown.d.ts +0 -52
  357. package/dist/components/VvDropdown/vv-dropdown.es.js +0 -236
  358. package/dist/components/VvDropdown/vv-dropdown.umd.js +0 -1
  359. package/dist/components/VvIcon/vv-icon.es.js +0 -229
  360. package/dist/components/VvIcon/vv-icon.umd.js +0 -1
  361. package/dist/components/VvInputText/VvInputText.d.ts +0 -59
  362. package/dist/components/VvInputText/constants.d.ts +0 -55
  363. package/dist/components/VvInputText/useInputNumber.d.ts +0 -16
  364. package/dist/components/VvInputText/useInputPassword.d.ts +0 -16
  365. package/dist/components/VvInputText/vv-input-text.es.js +0 -596
  366. package/dist/components/VvInputText/vv-input-text.umd.js +0 -2
  367. package/dist/components/VvNativeSelect/VvNativeSelect.d.ts +0 -70
  368. package/dist/components/VvNativeSelect/VvNativeSelect.vue.d.ts +0 -228
  369. package/dist/components/VvNativeSelect/vv-native-select.es.js +0 -395
  370. package/dist/components/VvNativeSelect/vv-native-select.umd.js +0 -2
  371. package/dist/components/VvProgress/VvProgress.d.ts +0 -29
  372. package/dist/components/VvProgress/vv-progress.es.js +0 -185
  373. package/dist/components/VvProgress/vv-progress.umd.js +0 -1
  374. package/dist/components/VvRadio/VvRadio.d.ts +0 -22
  375. package/dist/components/VvRadio/useRadioProps.d.ts +0 -15
  376. package/dist/components/VvRadio/vv-radio.es.js +0 -309
  377. package/dist/components/VvRadio/vv-radio.umd.js +0 -1
  378. package/dist/components/VvRadioGroup/VvRadioGroup.d.ts +0 -54
  379. package/dist/components/VvRadioGroup/vv-radio-group.es.js +0 -423
  380. package/dist/components/VvRadioGroup/vv-radio-group.umd.js +0 -2
  381. package/dist/components/VvSelect/vv-select.es.js +0 -427
  382. package/dist/components/VvSelect/vv-select.umd.js +0 -2
  383. package/dist/components/VvTextarea/VvTextarea.d.ts +0 -67
  384. package/dist/components/VvTextarea/constants.d.ts +0 -19
  385. package/dist/components/VvTextarea/vv-textarea.es.js +0 -472
  386. package/dist/components/VvTextarea/vv-textarea.umd.js +0 -2
  387. package/dist/composables/focus/useComponentFocus.d.ts +0 -7
  388. package/dist/composables/options/useOptions.d.ts +0 -5
  389. package/dist/stories/Icon/IconList.vue.d.ts +0 -44
  390. package/dist/ui-vue.es.js +0 -2985
  391. package/dist/ui-vue.umd.js +0 -2
  392. package/src/assets/icons/index.js +0 -7
  393. package/src/components/VvAccordion/VvAccordion.ts +0 -34
  394. package/src/components/VvAccordion/useAccordionProps.ts +0 -45
  395. package/src/components/VvBadge/VvBadge.ts +0 -4
  396. package/src/components/VvButton/VvButton.ts +0 -117
  397. package/src/components/VvButton/useButtonGroupProps.ts +0 -51
  398. package/src/components/VvButtonGroup/VvButtonGroup.ts +0 -37
  399. package/src/components/VvCheck/VvCheck.ts +0 -48
  400. package/src/components/VvCheck/VvCheck.vue +0 -149
  401. package/src/components/VvCheck/useCheckProps.ts +0 -41
  402. package/src/components/VvCheckGroup/VvCheckGroup.ts +0 -34
  403. package/src/components/VvCheckGroup/VvCheckGroup.vue +0 -84
  404. package/src/components/VvDialog/VvDialog.ts +0 -17
  405. package/src/components/VvDialog/constants.ts +0 -5
  406. package/src/components/VvDropdown/VvDropdown.ts +0 -46
  407. package/src/components/VvInputText/VvInputText.ts +0 -49
  408. package/src/components/VvInputText/constants.ts +0 -34
  409. package/src/components/VvInputText/useInputNumber.ts +0 -40
  410. package/src/components/VvInputText/useInputPassword.ts +0 -38
  411. package/src/components/VvNativeSelect/VvNativeSelect.ts +0 -70
  412. package/src/components/VvNativeSelect/VvNativeSelect.vue +0 -106
  413. package/src/components/VvProgress/VvProgress.ts +0 -28
  414. package/src/components/VvRadio/VvRadio.ts +0 -25
  415. package/src/components/VvRadio/useRadioProps.ts +0 -40
  416. package/src/components/VvRadioGroup/VvRadioGroup.ts +0 -25
  417. package/src/components/VvSelect/VvSelect.ts +0 -91
  418. package/src/components/VvTextarea/VvTextarea.ts +0 -55
  419. package/src/components/VvTextarea/constants.ts +0 -14
  420. package/src/composables/focus/useComponentFocus.ts +0 -22
  421. package/src/composables/icons/useComponentIcons.ts +0 -52
  422. package/src/composables/options/useOptions.ts +0 -27
  423. package/src/stories/Accordion/AccordionBordered.stories.mdx +0 -26
  424. package/src/stories/Accordion/AccordionIconRight.stories.mdx +0 -32
  425. package/src/stories/Accordion/accordionTest.js +0 -36
  426. package/src/stories/AccordionGroup/Accordion.stories.mdx +0 -42
  427. package/src/stories/AccordionGroup/AccordionItems.stories.mdx +0 -51
  428. package/src/stories/AccordionGroup/accordionGroupTest.js +0 -51
  429. package/src/stories/Badge/BadgeColor.stories.mdx +0 -54
  430. package/src/stories/Badge/BadgeDot.stories.mdx +0 -20
  431. package/src/stories/Badge/BadgeTest.js +0 -21
  432. package/src/stories/Breadcrumb/BreadcrumbMultiline.stories.mdx +0 -41
  433. package/src/stories/Button/ButtonBadge.stories.mdx +0 -34
  434. package/src/stories/Button/ButtonIconPosition.stories.mdx +0 -106
  435. package/src/stories/Button/ButtonVariant.stories.mdx +0 -205
  436. package/src/stories/Button/test.js +0 -41
  437. package/src/stories/ButtonGroup/ButtonGroupAction.stories.mdx +0 -83
  438. package/src/stories/ButtonGroup/ButtonGroupActionQuiet.stories.mdx +0 -50
  439. package/src/stories/ButtonGroup/ButtonGroupBlock.stories.mdx +0 -40
  440. package/src/stories/ButtonGroup/ButtonGroupCompact.stories.mdx +0 -38
  441. package/src/stories/ButtonGroup/ButtonGroupRounded.stories.mdx +0 -77
  442. package/src/stories/ButtonGroup/ButtonGroupTest.js +0 -61
  443. package/src/stories/ButtonGroup/ButtonGroupVertical.stories.mdx +0 -38
  444. package/src/stories/Card/CardVariant.stories.mdx +0 -37
  445. package/src/stories/Check/Check.stories.mdx +0 -62
  446. package/src/stories/Check/CheckBinary.stories.mdx +0 -80
  447. package/src/stories/Check/CheckDisabled.stories.mdx +0 -30
  448. package/src/stories/Check/CheckError.stories.mdx +0 -64
  449. package/src/stories/Check/CheckErrorTests.js +0 -72
  450. package/src/stories/Check/CheckHintLabel.stories.mdx +0 -30
  451. package/src/stories/Check/CheckPropertyTest.js +0 -101
  452. package/src/stories/Check/CheckReadonly.stories.mdx +0 -30
  453. package/src/stories/Check/CheckSlots.stories.mdx +0 -51
  454. package/src/stories/Check/CheckSwitch.stories.mdx +0 -30
  455. package/src/stories/CheckGroup/CheckGroup.stories.mdx +0 -69
  456. package/src/stories/CheckGroup/CheckGroupDisabled.stories.mdx +0 -26
  457. package/src/stories/CheckGroup/CheckGroupError.stories.mdx +0 -28
  458. package/src/stories/CheckGroup/CheckGroupHintLabel.stories.mdx +0 -27
  459. package/src/stories/CheckGroup/CheckGroupLabel.stories.mdx +0 -26
  460. package/src/stories/CheckGroup/CheckGroupOptionLabel.stories.mdx +0 -48
  461. package/src/stories/CheckGroup/CheckGroupOptionValue.stories.mdx +0 -48
  462. package/src/stories/CheckGroup/CheckGroupOptions.stories.mdx +0 -40
  463. package/src/stories/CheckGroup/CheckGroupReadonly.stories.mdx +0 -26
  464. package/src/stories/CheckGroup/CheckGroupSlots.stories.mdx +0 -152
  465. package/src/stories/CheckGroup/CheckGroupValid.stories.mdx +0 -28
  466. package/src/stories/CheckGroup/CheckGroupVertical.stories.mdx +0 -26
  467. package/src/stories/Dialog/DialogAutoClose.stories.mdx +0 -18
  468. package/src/stories/Dialog/DialogSize.stories.mdx +0 -36
  469. package/src/stories/Dropdown/DropdownDisabled.stories.mdx +0 -25
  470. package/src/stories/Dropdown/DropdownLabelNoResults.stories.mdx +0 -25
  471. package/src/stories/Dropdown/DropdownMaxValues.stories.mdx +0 -26
  472. package/src/stories/Dropdown/DropdownMultiple.stories.mdx +0 -56
  473. package/src/stories/Dropdown/DropdownUseObject.stories.mdx +0 -58
  474. package/src/stories/Icon/IconList.vue +0 -34
  475. package/src/stories/Icon/IconPrefix.stories.mdx +0 -79
  476. package/src/stories/Icon/IconRemote.stories.mdx +0 -39
  477. package/src/stories/Icon/IconTest.js +0 -27
  478. package/src/stories/Icon/IconsList.stories.mdx +0 -35
  479. package/src/stories/InputText/InputTextAutocomplete.stories.mdx +0 -15
  480. package/src/stories/InputText/InputTextAutofocus.stories.mdx +0 -20
  481. package/src/stories/InputText/InputTextDisabled.stories.mdx +0 -19
  482. package/src/stories/InputText/InputTextError.stories.mdx +0 -19
  483. package/src/stories/InputText/InputTextFloating.stories.mdx +0 -20
  484. package/src/stories/InputText/InputTextHintLabel.stories.mdx +0 -18
  485. package/src/stories/InputText/InputTextIcon.stories.mdx +0 -18
  486. package/src/stories/InputText/InputTextLabel.stories.mdx +0 -15
  487. package/src/stories/InputText/InputTextLoading.stories.mdx +0 -19
  488. package/src/stories/InputText/InputTextMax.stories.mdx +0 -31
  489. package/src/stories/InputText/InputTextMaxLength.stories.mdx +0 -15
  490. package/src/stories/InputText/InputTextMin.stories.mdx +0 -31
  491. package/src/stories/InputText/InputTextMinLength.stories.mdx +0 -15
  492. package/src/stories/InputText/InputTextPlaceholder.stories.mdx +0 -15
  493. package/src/stories/InputText/InputTextReadonly.stories.mdx +0 -19
  494. package/src/stories/InputText/InputTextStep.stories.mdx +0 -31
  495. package/src/stories/InputText/InputTextValid.stories.mdx +0 -19
  496. package/src/stories/NativeSelect/NativeSelect.stories.mdx +0 -53
  497. package/src/stories/NativeSelect/NativeSelectDisabled.stories.mdx +0 -32
  498. package/src/stories/NativeSelect/NativeSelectError.stories.mdx +0 -36
  499. package/src/stories/NativeSelect/NativeSelectHintLabel.stories.mdx +0 -34
  500. package/src/stories/NativeSelect/NativeSelectIconLeftRight.stories.mdx +0 -42
  501. package/src/stories/NativeSelect/NativeSelectLoading.stories.mdx +0 -27
  502. package/src/stories/NativeSelect/NativeSelectOptions.stories.mdx +0 -78
  503. package/src/stories/NativeSelect/NativeSelectReadonly.stories.mdx +0 -34
  504. package/src/stories/NativeSelect/NativeSelectUseObject.stories.mdx +0 -66
  505. package/src/stories/NativeSelect/NativeSelectValid.stories.mdx +0 -36
  506. package/src/stories/NativeSelect/NativeSelectValueKey.stories.mdx +0 -66
  507. package/src/stories/Progress/ProgressDeterminate.stories.mdx +0 -19
  508. package/src/stories/Radio/RadioDisabled.stories.mdx +0 -30
  509. package/src/stories/Radio/RadioError.stories.mdx +0 -64
  510. package/src/stories/Radio/RadioHintLabel.stories.mdx +0 -30
  511. package/src/stories/Radio/RadioTest.js +0 -89
  512. package/src/stories/RadioGroup/RadioGroupDisabled.stories.mdx +0 -29
  513. package/src/stories/RadioGroup/RadioGroupError.stories.mdx +0 -31
  514. package/src/stories/RadioGroup/RadioGroupHintLabel.stories.mdx +0 -28
  515. package/src/stories/RadioGroup/RadioGroupLabel.stories.mdx +0 -29
  516. package/src/stories/RadioGroup/RadioGroupOptionLabel.stories.mdx +0 -65
  517. package/src/stories/RadioGroup/RadioGroupOptionValue.stories.mdx +0 -65
  518. package/src/stories/RadioGroup/RadioGroupReadonly.stories.mdx +0 -29
  519. package/src/stories/RadioGroup/RadioGroupValid.stories.mdx +0 -31
  520. package/src/stories/RadioGroup/RadioGroupVertical.stories.mdx +0 -29
  521. package/src/stories/RadioGroup/RadioOptionsTest.js +0 -78
  522. package/src/stories/RadioGroup/RadioPropertyTest.js +0 -131
  523. package/src/stories/RadioGroup/RadioSlotsTest.js +0 -20
  524. package/src/stories/Select/SelectDisabled.stories.mdx +0 -32
  525. package/src/stories/Select/SelectMaxValues.stories.mdx +0 -33
  526. package/src/stories/Select/SelectMultiple.stories.mdx +0 -64
  527. package/src/stories/Select/SelectSearchable.stories.mdx +0 -80
  528. package/src/stories/Select/SelectSeparator.stories.mdx +0 -64
  529. package/src/stories/Select/SelectUseObject.stories.mdx +0 -66
  530. package/src/stories/Textarea/TextareaAutocomplete.stories.mdx +0 -15
  531. package/src/stories/Textarea/TextareaAutofocus.stories.mdx +0 -20
  532. package/src/stories/Textarea/TextareaDisabled.stories.mdx +0 -19
  533. package/src/stories/Textarea/TextareaError.stories.mdx +0 -19
  534. package/src/stories/Textarea/TextareaFloating.stories.mdx +0 -20
  535. package/src/stories/Textarea/TextareaHintLabel.stories.mdx +0 -18
  536. package/src/stories/Textarea/TextareaIcon.stories.mdx +0 -18
  537. package/src/stories/Textarea/TextareaIconPosition.stories.mdx +0 -31
  538. package/src/stories/Textarea/TextareaLabel.stories.mdx +0 -15
  539. package/src/stories/Textarea/TextareaLoading.stories.mdx +0 -19
  540. package/src/stories/Textarea/TextareaMaxLength.stories.mdx +0 -15
  541. package/src/stories/Textarea/TextareaMinLength.stories.mdx +0 -15
  542. package/src/stories/Textarea/TextareaPlaceholder.stories.mdx +0 -15
  543. package/src/stories/Textarea/TextareaReadonly.stories.mdx +0 -19
  544. package/src/stories/Textarea/TextareaRowsCols.stories.mdx +0 -31
  545. package/src/stories/Textarea/TextareaValid.stories.mdx +0 -19
  546. package/src/stories/stories.scss +0 -24
  547. package/src/stories/volver-ui-vue.stories.mdx +0 -71
  548. package/src/types/.README +0 -0
@@ -1,21 +1,25 @@
1
- import { h, type Component, type ExtractPropTypes, type Slots } from 'vue'
2
- import { computed, toRefs } from 'vue'
3
- import ObjectUtilities from '../../utils/ObjectUtilities'
1
+ import {
2
+ type Component,
3
+ type ExtractPropTypes,
4
+ type Slots,
5
+ type Ref,
6
+ computed,
7
+ toRefs,
8
+ h,
9
+ } from 'vue'
10
+ import { toReactive } from '@vueuse/core'
11
+ import { isString, resolveFieldData, isEmpty } from '@/utils/ObjectUtilities'
4
12
 
5
13
  /**
6
14
  * Merge errors from Array<string> to string errors separated from new line (\n)
7
15
  * @param {Array<string> | string} errors
8
16
  * @returns {string}
9
17
  */
10
- function joinErrors(errors: Array<string> | string) {
11
- if (Array.isArray(errors))
12
- return errors
13
- .filter((e) => ObjectUtilities.isString(e))
14
- .reduce((prevVal, currVal) => {
15
- if (prevVal.length > 0) return prevVal + '\n' + currVal
16
- return currVal
17
- }, '')
18
- else return errors
18
+ function joinLines(errors: Array<string> | string | unknown[] | undefined) {
19
+ if (Array.isArray(errors)) {
20
+ return errors.filter((e) => isString(e)).join(' ')
21
+ }
22
+ return errors
19
23
  }
20
24
 
21
25
  interface HintSlotProps {
@@ -27,8 +31,8 @@ interface HintSlotProps {
27
31
  modelValue: null
28
32
  valid: BooleanConstructor
29
33
  validLabel: (StringConstructor | ArrayConstructor)[]
30
- error: BooleanConstructor
31
- errorLabel: (StringConstructor | ArrayConstructor)[]
34
+ invalid: BooleanConstructor
35
+ invalidLabel: (StringConstructor | ArrayConstructor)[]
32
36
  }
33
37
 
34
38
  interface HintSlotPropsWithLoading extends HintSlotProps {
@@ -38,126 +42,170 @@ interface HintSlotPropsWithLoading extends HintSlotProps {
38
42
 
39
43
  /**
40
44
  * Return a vue component (HintSlot) to render and manage hint, errors, valid, loading state and messages
41
- * @param {Readonly<ExtractPropTypes<HintSlotProps | HintSlotPropsWithLoading>>} pProps vue props
42
- * @param {Slots} pSlots vue slots
45
+ * @param {Readonly<ExtractPropTypes<HintSlotProps | HintSlotPropsWithLoading>>} parentProps vue props
46
+ * @param {Slots} parentSlots vue slots
43
47
  * @returns {Component} vue component
44
48
  */
45
49
  export function HintSlotFactory(
46
- pProps: Readonly<
50
+ parentProps: Readonly<
47
51
  ExtractPropTypes<HintSlotProps | HintSlotPropsWithLoading>
48
52
  >,
49
- pSlots: Slots
50
- ): Component {
53
+ parentSlots: Slots,
54
+ ): {
55
+ HintSlot: Component
56
+ hasHint: Ref<boolean>
57
+ hasInvalid: Ref<boolean>
58
+ hasValid: Ref<boolean>
59
+ hasLoading: Ref<boolean>
60
+ } {
61
+ // slots
62
+ const {
63
+ invalid: invalidSlot,
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
+ invalid,
76
+ invalidLabel,
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 hasInvalid = computed(() => {
88
+ if (!invalid.value) {
89
+ return false
90
+ }
91
+ if (invalid.value && invalidSlot) {
92
+ return true
93
+ }
94
+ if (
95
+ invalidLabel?.value &&
96
+ Array.isArray(invalidLabel.value) &&
97
+ invalidLabel.value.length > 0
98
+ ) {
99
+ return true
100
+ }
101
+ if (invalidLabel?.value && !isEmpty(invalidLabel)) {
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)
120
+ ),
121
+ )
122
+
123
+ const isVisible = computed(
124
+ () =>
125
+ hasHint.value ||
126
+ hasValid.value ||
127
+ hasInvalid.value ||
128
+ hasLoading.value,
129
+ )
130
+
51
131
  return {
52
- name: 'HintSlot',
53
- setup() {
54
- const props = toRefs(pProps)
55
-
56
- //Slots
57
- const {
58
- error: errorSlot,
59
- valid: validSlot,
60
- hint: hintSlot,
61
- loading: loadingSlot
62
- } = pSlots
63
-
64
- //Props hint + errors
65
- const {
66
- hintLabel,
67
- modelValue,
68
- valid,
69
- validLabel,
70
- error,
71
- errorLabel
72
- } = props
73
- const loading = ObjectUtilities.resolveFieldData(props, 'loading')
74
- const loadingLabel = ObjectUtilities.resolveFieldData(
75
- props,
76
- 'loadingLabel'
77
- )
78
-
79
- const hasErrors = computed(() => {
80
- //No error
81
- if (!error.value) return false
82
-
83
- if (error.value && errorSlot) return true
84
-
85
- if (
86
- errorLabel?.value &&
87
- Array.isArray(errorLabel.value) &&
88
- errorLabel.value.length > 0
89
- )
90
- return true
91
-
92
- if (
93
- errorLabel?.value &&
94
- ObjectUtilities.isNotEmpty(errorLabel.value)
95
- )
96
- return true
97
-
98
- return false
99
- })
100
-
101
- const hasHint = computed(() => {
102
- return !!(
103
- (hintLabel && hintLabel.value) ||
104
- hintSlot ||
105
- validSlot ||
106
- (validLabel && validLabel.value) ||
107
- hasErrors.value ||
108
- (loading?.value && loadingSlot) ||
109
- (loading?.value && loadingLabel?.value)
110
- )
111
- })
112
-
113
- const errorMessage = computed(() => {
114
- if (Array.isArray(errorLabel?.value))
115
- return joinErrors(errorLabel?.value || '')
116
- else return errorLabel?.value
117
- })
118
-
119
- const hintContent = computed(() => {
120
- const slotProps = { modelValue, error, valid }
121
-
122
- if (error?.value) {
123
- return (
124
- errorSlot?.(slotProps) ||
125
- errorMessage?.value ||
126
- hintLabel?.value
127
- )
128
- }
132
+ hasInvalid,
133
+ hasHint,
134
+ hasValid,
135
+ hasLoading,
136
+ HintSlot: {
137
+ name: 'HintSlot',
138
+ props: {
139
+ params: {
140
+ type: Object,
141
+ default: () => ({}),
142
+ },
143
+ },
144
+ setup(props) {
145
+ const hintContent = computed(() => {
146
+ const slotProps = toReactive({
147
+ hintLabel,
148
+ modelValue,
149
+ valid,
150
+ validLabel,
151
+ invalid,
152
+ invalidLabel,
153
+ loading,
154
+ loadingLabel,
155
+ ...props.params,
156
+ })
157
+
158
+ if (invalid?.value) {
159
+ return (
160
+ invalidSlot?.(slotProps) ||
161
+ joinLines(invalidLabel?.value) ||
162
+ hintLabel?.value
163
+ )
164
+ }
165
+
166
+ if (valid?.value)
167
+ return (
168
+ validSlot?.(slotProps) ||
169
+ joinLines(validLabel?.value) ||
170
+ hintLabel?.value
171
+ )
172
+
173
+ if (loading?.value)
174
+ return (
175
+ loadingSlot?.(slotProps) ||
176
+ joinLines(loadingLabel?.value) ||
177
+ hintLabel?.value
178
+ )
129
179
 
130
- if (valid?.value)
131
180
  return (
132
- validSlot?.(slotProps) ||
133
- validLabel?.value ||
181
+ hintSlot?.(slotProps) ||
182
+ joinLines(hintLabel?.value) ||
134
183
  hintLabel?.value
135
184
  )
185
+ })
136
186
 
137
- if (loading?.value)
138
- return (
139
- loadingSlot?.(slotProps) ||
140
- loadingLabel?.value ||
141
- hintLabel?.value
187
+ return {
188
+ isVisible,
189
+ hasInvalid,
190
+ hasValid,
191
+ hintContent,
192
+ }
193
+ },
194
+ render() {
195
+ if (this.isVisible) {
196
+ return h(
197
+ 'small',
198
+ {
199
+ role:
200
+ this.hasInvalid || this.hasValid
201
+ ? 'alert'
202
+ : undefined,
203
+ },
204
+ this.hintContent,
142
205
  )
143
-
144
- return (
145
- hintSlot?.(slotProps) ||
146
- hintLabel?.value ||
147
- hintLabel?.value
148
- )
149
- })
150
-
151
- return {
152
- hasHint,
153
- hintContent
154
- }
206
+ }
207
+ },
155
208
  },
156
- render() {
157
- if (this.hasHint) {
158
- return h('span', null, this.hintContent)
159
- }
160
- }
161
209
  }
162
210
  }
163
211
 
@@ -1,12 +1,19 @@
1
- export { default as VvButton } from '@/components/VvButton/VvButton.vue'
2
- export { default as VvIcon } from '@/components/VvIcon/VvIcon.vue'
3
- export { default as VvBadge } from '@/components/VvBadge/VvBadge.vue'
4
- export { default as VvButtonGroup } from '@/components/VvButtonGroup/VvButtonGroup.vue'
5
- export { default as VvAccordion } from '@/components/VvAccordion/VvAccordion.vue'
6
- export { default as VvAccordionGroup } from '@/components/VvAccordionGroup/VvAccordionGroup.vue'
7
- export { default as VvBreadcrumb } from '@/components/VvBreadcrumb/VvBreadcrumb.vue'
8
- export { default as VvCard } from '@/components/VvCard/VvCard.vue'
9
- export { default as VvCheck } from '@/components/VvCheck/VvCheck.vue'
10
- export { default as VvCheckGroup } from '@/components/VvCheckGroup/VvCheckGroup.vue'
11
- export { default as VvDialog } from '@/components/VvDialog/VvDialog.vue'
12
- export { default as VvDropdown } from '@/components/VvDropdown/VvDropdown.vue'
1
+ export { default as VvAccordion } from './VvAccordion/VvAccordion.vue'
2
+ export { default as VvAccordionGroup } from './VvAccordionGroup/VvAccordionGroup.vue'
3
+ export { default as VvBadge } from './VvBadge/VvBadge.vue'
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'
7
+ export { default as VvCard } from './VvCard/VvCard.vue'
8
+ export { default as VvCheckbox } from './VvCheckbox/VvCheckbox.vue'
9
+ export { default as VvCheckboxGroup } from './VvCheckboxGroup/VvCheckboxGroup.vue'
10
+ export { default as VvCombobox } from './VvCombobox/VvCombobox.vue'
11
+ export { default as VvDialog } from './VvDialog/VvDialog.vue'
12
+ export { default as VvDropdown } from './VvDropdown/VvDropdown.vue'
13
+ export { default as VvIcon } from './VvIcon/VvIcon.vue'
14
+ export { default as VvInputText } from './VvInputText/VvInputText.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'
@@ -3,10 +3,9 @@ import type { Ref } from 'vue'
3
3
  import type IGroupState from './IGroupState'
4
4
 
5
5
  /**
6
- * Stato condiviso per un gruppo di pulsanti
6
+ * State shared in a group of accordions
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>
10
+ modifiers: Ref<Array<string> | string | undefined>
12
11
  }
@@ -3,19 +3,13 @@ import type { Ref } from 'vue'
3
3
  import type IGroupState from './IGroupState'
4
4
 
5
5
  /**
6
- * Stato condiviso per un gruppo di pulsanti
6
+ * State shared in a group of buttons
7
7
  */
8
8
  export default interface IButtonGroupState extends IGroupState {
9
- /**
10
- * Singolo bottone selezionato - utilizzo un id (o un name)
11
- */
12
- modelValue: Ref<string | undefined>
13
- /**
14
- * Stato disabilitato
15
- */
9
+ modelValue: Ref<string | Array<string> | undefined>
16
10
  disabled: Ref<boolean>
17
- /**
18
- * True = gruppo di pulsanti è in modalità TOGGLE (come i radio buttons)
19
- */
20
11
  toggle: Ref<boolean>
12
+ multiple: Ref<boolean>
13
+ unselectable: Ref<boolean>
14
+ modifiers: Ref<string | Array<string> | undefined>
21
15
  }
@@ -1,12 +1,10 @@
1
1
  import type { Ref } from 'vue'
2
2
 
3
3
  /**
4
- * Stato condiviso per un gruppo di elementi
4
+ * State shared for a group of elements
5
5
  */
6
6
  export default interface IGroupState {
7
- [key: string]: Ref<any> | symbol
8
- /**
9
- * Chiave usata per il provide del gruppo
10
- */
11
- key: symbol
7
+ [itemKey: string]: Ref<unknown> | string
8
+ // The key of the group
9
+ key: string
12
10
  }
@@ -3,11 +3,8 @@ import type { Ref } from 'vue'
3
3
  import type IGroupState from './IGroupState'
4
4
 
5
5
  /**
6
- * Stato condiviso per in un gruppo di inputs
6
+ * State shared in a group of inputs
7
7
  */
8
8
  export interface IInputGroupState extends IGroupState {
9
- /**
10
- * True = gruppo di elementi di input è in readonly
11
- */
12
9
  readonly: Ref<boolean>
13
10
  }
@@ -1,64 +1,52 @@
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
- console.log('Inject - ', group)
17
-
18
- //Check if component is in group
19
- const isInGroup = computed(() => ObjectUtilities.isNotEmpty(group))
14
+ // Check if component is in group
15
+ const isInGroup = computed(() => !isEmpty(group))
20
16
 
21
17
  /**
22
- * 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
23
19
  */
24
20
  function getGroupOrLocalRef<T extends object>(
25
21
  propName: keyof TGroup,
26
22
  props: T,
27
- emit?: (event: any, ...args: any[]) => void
23
+ emit?: (event: string, ...args: unknown[]) => void,
28
24
  ) {
29
- //Check se propName non è in gruppo o locale -> Spaccarsi
30
25
  if (group?.value) {
31
- // if (!Object.keys(group.value).includes(propName as string))
32
- // throw Error(`${propName as string} is not a group valid prop`)
33
-
34
- const groupPropValue = unref(group.value)[propName] as Ref<any>
26
+ const groupPropValue = unref(group.value)[propName] as Ref<unknown>
35
27
  return computed({
36
28
  get() {
37
29
  return groupPropValue?.value
38
30
  },
39
31
  set(value) {
40
32
  groupPropValue.value = value
41
- }
42
- })
43
- } else {
44
- // if (!Object.keys(props).includes(propName as string))
45
- // throw Error(`${propName as string} is not a valid prop`)
46
-
47
- const propRef = toRef(props, propName as keyof T)
48
- return computed({
49
- get() {
50
- return propRef.value
51
33
  },
52
- set(value) {
53
- if (emit) emit(`update:${propName as string}`, value)
54
- }
55
34
  })
56
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
+ })
57
45
  }
58
46
 
59
47
  return {
60
48
  group,
61
49
  isInGroup,
62
- getGroupOrLocalRef
50
+ getGroupOrLocalRef,
63
51
  }
64
52
  }
@@ -1,23 +1,21 @@
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
- * Condividi parte dello stato del componente con tutti i suoi figli.
5
+ * Share part of the state of the component with all its children.
6
6
  * @param {IGroupState} groupState the group state with all group options
7
7
  */
8
8
  export function useProvideGroupState<TGroup extends IGroupState>(
9
- groupState: TGroup
9
+ groupState: TGroup,
10
10
  ) {
11
11
  if (
12
12
  Object.keys(groupState).some(
13
- (k) => k !== 'key' && !isRef(groupState[k])
13
+ (k) => k !== 'key' && !isRef(groupState[k]),
14
14
  )
15
15
  )
16
16
  throw Error("One or more groupState props aren't ref.")
17
-
18
- console.log('PRovide - ', groupState)
19
17
  provide(
20
18
  groupState.key,
21
- computed(() => groupState)
19
+ computed(() => groupState),
22
20
  )
23
21
  }
@@ -0,0 +1,17 @@
1
+ import { watch, unref } from 'vue'
2
+ import { useFocus, type MaybeElement, type MaybeElementRef } from '@vueuse/core'
3
+
4
+ export function useComponentFocus(
5
+ inputTemplateRef: MaybeElementRef<MaybeElement>,
6
+ emit: (event: 'focus' | 'blur', value: unknown) => void,
7
+ ) {
8
+ const { focused } = useFocus(inputTemplateRef)
9
+
10
+ watch(focused, (newValue) => {
11
+ emit(newValue ? 'focus' : 'blur', unref(inputTemplateRef))
12
+ })
13
+
14
+ return {
15
+ focused,
16
+ }
17
+ }
@@ -0,0 +1,96 @@
1
+ import { type Slot, type Ref, computed } from 'vue'
2
+
3
+ interface ComponentIconProps {
4
+ icon: Ref<string>
5
+ iconPosition: Ref<string>
6
+ }
7
+
8
+ interface ComponentIconSlots {
9
+ iconLeft?: Slot | undefined
10
+ iconRight?: Slot | undefined
11
+ iconTop?: Slot | undefined
12
+ iconBottom?: Slot | undefined
13
+ }
14
+
15
+ export function useComponentIcons(
16
+ props: ComponentIconProps,
17
+ slots: ComponentIconSlots,
18
+ ) {
19
+ const { icon, iconPosition } = props
20
+
21
+ const hasIconLeft = computed(
22
+ () =>
23
+ !!((icon.value && iconPosition.value === 'left') || slots.iconLeft),
24
+ )
25
+ const hasIconRight = computed(
26
+ () =>
27
+ !!(
28
+ (icon.value && iconPosition.value === 'right') ||
29
+ slots.iconRight
30
+ ),
31
+ )
32
+ const hasIconTop = computed(
33
+ () => !!((icon.value && iconPosition.value === 'top') || slots.iconTop),
34
+ )
35
+ const hasIconBottom = computed(
36
+ () =>
37
+ !!(
38
+ (icon.value && iconPosition.value === 'bottom') ||
39
+ slots.iconBottom
40
+ ),
41
+ )
42
+
43
+ return {
44
+ icon,
45
+ iconPosition,
46
+ hasIconLeft,
47
+ hasIconRight,
48
+ hasIconTop,
49
+ hasIconBottom,
50
+ }
51
+ }
52
+
53
+ export function useComponentIcon(
54
+ icon: Ref<string | object | undefined> | undefined,
55
+ iconPosition: Ref<string>,
56
+ slots?: ComponentIconSlots,
57
+ ) {
58
+ const hasIconLeft = computed(
59
+ () =>
60
+ !!(
61
+ (icon?.value && iconPosition.value === 'left') ||
62
+ slots?.iconLeft
63
+ ),
64
+ )
65
+ const hasIconRight = computed(
66
+ () =>
67
+ !!(
68
+ (icon?.value && iconPosition.value === 'right') ||
69
+ slots?.iconRight
70
+ ),
71
+ )
72
+ const hasIconTop = computed(
73
+ () =>
74
+ !!((icon?.value && iconPosition.value === 'top') || slots?.iconTop),
75
+ )
76
+ const hasIconBottom = computed(
77
+ () =>
78
+ !!(
79
+ (icon?.value && iconPosition.value === 'bottom') ||
80
+ slots?.iconBottom
81
+ ),
82
+ )
83
+ const hasIcon = computed(() => {
84
+ if (typeof icon?.value === 'string') {
85
+ return { name: icon?.value }
86
+ }
87
+ return icon?.value
88
+ })
89
+ return {
90
+ hasIcon,
91
+ hasIconLeft,
92
+ hasIconRight,
93
+ hasIconTop,
94
+ hasIconBottom,
95
+ }
96
+ }
@@ -0,0 +1,25 @@
1
+ import { type Ref, computed } from 'vue'
2
+
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
9
+
10
+ if (typeof ms === 'string') {
11
+ ms = parseInt(ms)
12
+ }
13
+
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
+ })
25
+ }