@volverjs/ui-vue 0.0.1-beta.8 → 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 (559) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +91 -56
  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 +210 -287
  64. package/dist/components/VvInputText/VvInputTextActions.d.ts +1 -1
  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 +139 -320
  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} +3 -2
  98. package/dist/composables/useDebouncedInput.d.ts +2 -0
  99. package/dist/composables/useOptions.d.ts +6 -0
  100. package/dist/composables/useTextCount.d.ts +10 -0
  101. package/dist/constants.d.ts +4 -4
  102. package/dist/icons.d.ts +1881 -0
  103. package/dist/icons.es.js +12 -14
  104. package/dist/icons.umd.js +1 -1
  105. package/dist/index.d.ts +9 -4
  106. package/dist/index.es.js +2350 -0
  107. package/dist/index.umd.js +1 -0
  108. package/dist/props/index.d.ts +297 -30
  109. package/dist/resolvers/unplugin.d.ts +27 -0
  110. package/dist/resolvers/unplugin.es.js +40 -0
  111. package/dist/resolvers/unplugin.umd.js +1 -0
  112. package/dist/stories/Accordion/Accordion.settings.d.ts +63 -0
  113. package/dist/stories/Accordion/Accordion.test.d.ts +2 -0
  114. package/dist/stories/AccordionGroup/AccordionGroup.settings.d.ts +58 -0
  115. package/dist/stories/AccordionGroup/AccordionGroup.test.d.ts +2 -0
  116. package/dist/stories/Badge/Badge.settings.d.ts +32 -0
  117. package/dist/stories/Badge/Badge.test.d.ts +2 -0
  118. package/dist/stories/Breadcrumb/Breadcrumb.settings.d.ts +29 -0
  119. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +2 -0
  120. package/dist/stories/Button/Button.settings.d.ts +200 -0
  121. package/dist/stories/Button/Button.test.d.ts +1 -10
  122. package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +38 -0
  123. package/dist/stories/ButtonGroup/ButtonGroup.test.d.ts +2 -0
  124. package/dist/stories/Card/Card.settings.d.ts +70 -0
  125. package/dist/stories/Card/Card.test.d.ts +2 -0
  126. package/dist/stories/Checkbox/Checkbox.settings.d.ts +165 -0
  127. package/dist/stories/Checkbox/Checkbox.test.d.ts +2 -0
  128. package/dist/stories/CheckboxGroup/CheckboxGroup.settings.d.ts +164 -0
  129. package/dist/stories/CheckboxGroup/CheckboxGroup.test.d.ts +2 -0
  130. package/dist/stories/Combobox/Combobox.settings.d.ts +267 -0
  131. package/dist/stories/Combobox/Combobox.test.d.ts +2 -0
  132. package/dist/stories/Dialog/Dialog.settings.d.ts +55 -0
  133. package/dist/stories/Dialog/Dialog.test.d.ts +2 -0
  134. package/dist/stories/Dropdown/Dropdown.settings.d.ts +75 -0
  135. package/dist/stories/Dropdown/Dropdown.test.d.ts +2 -0
  136. package/dist/stories/Icon/Icon.settings.d.ts +74 -0
  137. package/dist/stories/InputText/InputText.settings.d.ts +445 -0
  138. package/dist/stories/InputText/InputText.test.d.ts +2 -0
  139. package/dist/stories/Progress/Progress.settings.d.ts +38 -0
  140. package/dist/stories/Progress/Progress.test.d.ts +2 -0
  141. package/dist/stories/Radio/Radio.settings.d.ts +139 -0
  142. package/dist/stories/Radio/Radio.test.d.ts +2 -0
  143. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +164 -0
  144. package/dist/stories/RadioGroup/RadioGroup.test.d.ts +2 -0
  145. package/dist/stories/Select/Select.settings.d.ts +265 -0
  146. package/dist/stories/Select/Select.test.d.ts +2 -0
  147. package/dist/stories/Textarea/Textarea.settings.d.ts +336 -0
  148. package/dist/stories/Textarea/Textarea.test.d.ts +2 -0
  149. package/dist/stories/argTypes.d.ts +793 -0
  150. package/dist/test/expect.d.ts +3 -0
  151. package/dist/test/options.d.ts +1 -0
  152. package/dist/test/sleep.d.ts +1 -0
  153. package/dist/utils/ObjectUtilities.d.ts +82 -95
  154. package/env.d.ts +1 -0
  155. package/package.json +198 -126
  156. package/src/{DesignSystem.ts → Volver.ts} +57 -29
  157. package/src/assets/icons/detailed.json +1 -1
  158. package/src/assets/icons/normal.json +1 -1
  159. package/src/assets/icons/simple.json +1 -1
  160. package/src/components/VvAccordion/VvAccordion.vue +94 -78
  161. package/src/components/VvAccordion/index.ts +72 -0
  162. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +93 -53
  163. package/src/components/VvAccordionGroup/{VvAccordionGroup.ts → index.ts} +18 -14
  164. package/src/components/VvBadge/VvBadge.vue +17 -8
  165. package/src/components/VvBadge/index.ts +6 -0
  166. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +26 -24
  167. package/src/components/VvBreadcrumb/{VvBreadcrumb.ts → index.ts} +1 -2
  168. package/src/components/VvButton/VvButton.vue +174 -153
  169. package/src/components/VvButton/index.ts +171 -0
  170. package/src/components/VvButtonGroup/VvButtonGroup.vue +76 -48
  171. package/src/components/VvButtonGroup/index.ts +19 -0
  172. package/src/components/VvCard/VvCard.vue +20 -22
  173. package/src/components/VvCard/{VvCard.ts → index.ts} +1 -1
  174. package/src/components/VvCheckbox/VvCheckbox.vue +172 -0
  175. package/src/components/VvCheckbox/index.ts +60 -0
  176. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +85 -0
  177. package/src/components/VvCheckboxGroup/index.ts +5 -0
  178. package/src/components/VvCombobox/VvCombobox.vue +227 -0
  179. package/src/components/VvCombobox/index.ts +82 -0
  180. package/src/components/VvDialog/VvDialog.vue +69 -67
  181. package/src/components/VvDialog/index.ts +10 -0
  182. package/src/components/VvDropdown/VvDropdown.vue +112 -114
  183. package/src/components/VvDropdown/index.ts +25 -0
  184. package/src/components/VvIcon/README.md +64 -0
  185. package/src/components/VvIcon/VvIcon.vue +122 -107
  186. package/src/components/VvIcon/{VvIcon.ts → index.ts} +17 -8
  187. package/src/components/VvInputText/VvInputClearAction.ts +53 -0
  188. package/src/components/VvInputText/VvInputPasswordAction.ts +70 -0
  189. package/src/components/VvInputText/VvInputStepAction.ts +49 -0
  190. package/src/components/VvInputText/VvInputText.vue +305 -238
  191. package/src/components/VvInputText/VvInputTextActions.ts +63 -114
  192. package/src/components/VvInputText/index.ts +140 -0
  193. package/src/components/VvProgress/VvProgress.vue +29 -29
  194. package/src/components/VvProgress/index.ts +32 -0
  195. package/src/components/VvRadio/VvRadio.vue +90 -119
  196. package/src/components/VvRadio/index.ts +40 -0
  197. package/src/components/VvRadioGroup/VvRadioGroup.vue +76 -69
  198. package/src/components/VvRadioGroup/index.ts +5 -0
  199. package/src/components/VvSelect/VvSelect.vue +165 -186
  200. package/src/components/VvSelect/index.ts +74 -0
  201. package/src/components/VvTextarea/VvTextarea.vue +185 -173
  202. package/src/components/VvTextarea/index.ts +50 -0
  203. package/src/components/common/HintSlot.ts +167 -137
  204. package/src/components/index.ts +19 -12
  205. package/src/composables/group/types/IAccordionGroupState.ts +3 -4
  206. package/src/composables/group/types/IButtonGroupState.ts +5 -11
  207. package/src/composables/group/types/IGroupState.ts +4 -6
  208. package/src/composables/group/types/IInputGroup.ts +1 -4
  209. package/src/composables/group/useInjectedGroupState.ts +21 -33
  210. package/src/composables/group/useProvideGroupState.ts +5 -7
  211. package/src/composables/useComponentFocus.ts +17 -0
  212. package/src/composables/{icons/useComponentIcons.ts → useComponentIcons.ts} +29 -20
  213. package/src/composables/useDebouncedInput.ts +25 -0
  214. package/src/composables/useModifiers.ts +18 -20
  215. package/src/composables/useOptions.ts +31 -0
  216. package/src/composables/useTextCount.ts +57 -0
  217. package/src/constants.ts +5 -7
  218. package/src/directives/{.README → .gitkeep} +0 -0
  219. package/src/icons.ts +7 -0
  220. package/src/index.ts +12 -5
  221. package/src/props/index.ts +186 -36
  222. package/src/resolvers/unplugin.ts +103 -0
  223. package/src/shims.d.ts +13 -0
  224. package/src/stories/Accordion/Accordion.settings.ts +46 -0
  225. package/src/stories/Accordion/Accordion.stories.mdx +21 -21
  226. package/src/stories/Accordion/Accordion.test.ts +61 -0
  227. package/src/stories/Accordion/AccordionSlots.stories.mdx +46 -70
  228. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +55 -0
  229. package/src/stories/AccordionGroup/AccordionGroup.stories.mdx +24 -27
  230. package/src/stories/AccordionGroup/AccordionGroup.test.ts +50 -0
  231. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.mdx +56 -0
  232. package/src/stories/Badge/Badge.settings.ts +26 -0
  233. package/src/stories/Badge/Badge.stories.mdx +36 -24
  234. package/src/stories/Badge/Badge.test.ts +12 -0
  235. package/src/stories/Badge/BadgeSlots.stories.mdx +20 -0
  236. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +41 -0
  237. package/src/stories/Breadcrumb/Breadcrumb.stories.mdx +32 -29
  238. package/src/stories/Breadcrumb/Breadcrumb.test.ts +50 -0
  239. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.mdx +43 -0
  240. package/src/stories/Button/Button.settings.ts +150 -0
  241. package/src/stories/Button/Button.stories.mdx +20 -54
  242. package/src/stories/Button/Button.test.ts +35 -46
  243. package/src/stories/Button/ButtonIcon.stories.mdx +139 -29
  244. package/src/stories/Button/ButtonLink.stories.mdx +58 -111
  245. package/src/stories/Button/ButtonLoading.stories.mdx +89 -62
  246. package/src/stories/Button/ButtonModifiers.stories.mdx +198 -121
  247. package/src/stories/Button/ButtonSlots.stories.mdx +83 -95
  248. package/src/stories/Button/ButtonState.stories.mdx +75 -0
  249. package/src/stories/Button/ButtonToggle.stories.mdx +50 -0
  250. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +28 -0
  251. package/src/stories/ButtonGroup/ButtonGroup.stories.mdx +16 -18
  252. package/src/stories/ButtonGroup/ButtonGroup.test.ts +35 -0
  253. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.mdx +52 -0
  254. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.mdx +45 -114
  255. package/src/stories/Card/Card.settings.ts +55 -0
  256. package/src/stories/Card/Card.stories.mdx +27 -11
  257. package/src/stories/Card/Card.test.ts +23 -0
  258. package/src/stories/Card/CardSlots.stories.mdx +80 -24
  259. package/src/stories/Checkbox/Checkbox.settings.ts +43 -0
  260. package/src/stories/Checkbox/Checkbox.stories.mdx +163 -0
  261. package/src/stories/Checkbox/Checkbox.test.ts +81 -0
  262. package/src/stories/Checkbox/CheckboxBinary.stories.mdx +68 -0
  263. package/src/stories/Checkbox/CheckboxSlots.stories.mdx +46 -0
  264. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +15 -0
  265. package/src/stories/CheckboxGroup/CheckboxGroup.stories.mdx +134 -0
  266. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +83 -0
  267. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.mdx +100 -0
  268. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.mdx +67 -0
  269. package/src/stories/Combobox/Combobox.settings.ts +122 -0
  270. package/src/stories/Combobox/Combobox.stories.mdx +153 -0
  271. package/src/stories/Combobox/Combobox.test.ts +96 -0
  272. package/src/stories/Combobox/ComboboxMultiple.stories.mdx +74 -0
  273. package/src/stories/Combobox/ComboboxOptions.stories.mdx +100 -0
  274. package/src/stories/Combobox/ComboboxSlots.stories.mdx +48 -0
  275. package/src/stories/Dialog/Dialog.settings.ts +45 -0
  276. package/src/stories/Dialog/Dialog.stories.mdx +42 -16
  277. package/src/stories/Dialog/Dialog.test.ts +69 -0
  278. package/src/stories/Dialog/DialogSlots.stories.mdx +63 -0
  279. package/src/stories/Dropdown/Dropdown.settings.ts +42 -0
  280. package/src/stories/Dropdown/Dropdown.stories.mdx +85 -29
  281. package/src/stories/Dropdown/Dropdown.test.ts +43 -0
  282. package/src/stories/Dropdown/DropdownOptions.stories.mdx +87 -67
  283. package/src/stories/Icon/Icon.settings.ts +72 -0
  284. package/src/stories/Icon/Icon.stories.mdx +76 -59
  285. package/src/stories/Icon/IconsCollection.stories.mdx +68 -0
  286. package/src/stories/InputText/InputText.settings.ts +221 -0
  287. package/src/stories/InputText/InputText.stories.mdx +142 -69
  288. package/src/stories/InputText/InputText.test.ts +125 -0
  289. package/src/stories/InputText/InputTextIconPosition.stories.mdx +63 -16
  290. package/src/stories/InputText/InputTextLength.stories.mdx +110 -0
  291. package/src/stories/InputText/InputTextMinMax.stories.mdx +112 -0
  292. package/src/stories/InputText/InputTextSlots.stories.mdx +61 -22
  293. package/src/stories/InputText/InputTextType.stories.mdx +207 -29
  294. package/src/stories/Progress/Progress.settings.ts +33 -0
  295. package/src/stories/Progress/Progress.stories.mdx +12 -14
  296. package/src/stories/Progress/Progress.test.ts +9 -0
  297. package/src/stories/Radio/Radio.settings.ts +15 -0
  298. package/src/stories/Radio/Radio.stories.mdx +102 -42
  299. package/src/stories/Radio/Radio.test.ts +70 -0
  300. package/src/stories/Radio/RadioSlots.stories.mdx +39 -22
  301. package/src/stories/RadioGroup/RadioGroup.settings.ts +15 -0
  302. package/src/stories/RadioGroup/RadioGroup.stories.mdx +115 -54
  303. package/src/stories/RadioGroup/RadioGroup.test.ts +83 -0
  304. package/src/stories/RadioGroup/RadioGroupOptions.stories.mdx +83 -41
  305. package/src/stories/RadioGroup/RadioGroupSlots.stories.mdx +49 -144
  306. package/src/stories/Select/Select.settings.ts +100 -0
  307. package/src/stories/Select/Select.stories.mdx +113 -33
  308. package/src/stories/Select/Select.test.ts +82 -0
  309. package/src/stories/Select/SelectOptions.stories.mdx +91 -69
  310. package/src/stories/Select/SelectSlots.stories.mdx +48 -0
  311. package/src/stories/Textarea/Textarea.settings.ts +96 -0
  312. package/src/stories/Textarea/Textarea.stories.mdx +167 -47
  313. package/src/stories/Textarea/Textarea.test.ts +90 -0
  314. package/src/stories/Textarea/TextareaLength.stories.mdx +110 -0
  315. package/src/stories/Textarea/TextareaSlots.stories.mdx +61 -23
  316. package/src/stories/Textarea/TextareatIconPosition.stories.mdx +78 -0
  317. package/src/stories/argTypes.ts +433 -0
  318. package/src/test/expect.ts +27 -6
  319. package/src/test/options.ts +17 -0
  320. package/src/test/sleep.ts +2 -0
  321. package/src/test/types.d.ts +14 -0
  322. package/src/types/generic.d.ts +5 -0
  323. package/src/utils/ObjectUtilities.ts +253 -244
  324. package/dist/components/VvAccordion/VvAccordion.d.ts +0 -32
  325. package/dist/components/VvAccordion/useAccordionProps.d.ts +0 -16
  326. package/dist/components/VvAccordion/vv-accordion.es.js +0 -262
  327. package/dist/components/VvAccordion/vv-accordion.umd.js +0 -1
  328. package/dist/components/VvAccordionGroup/vv-accordion-group.es.js +0 -315
  329. package/dist/components/VvAccordionGroup/vv-accordion-group.umd.js +0 -1
  330. package/dist/components/VvBadge/vv-badge.es.js +0 -18
  331. package/dist/components/VvBadge/vv-badge.umd.js +0 -1
  332. package/dist/components/VvBreadcrumb/vv-breadcrumb.es.js +0 -206
  333. package/dist/components/VvBreadcrumb/vv-breadcrumb.umd.js +0 -1
  334. package/dist/components/VvButton/VvButton.d.ts +0 -115
  335. package/dist/components/VvButton/useButtonGroupProps.d.ts +0 -23
  336. package/dist/components/VvButton/vv-button.es.js +0 -422
  337. package/dist/components/VvButton/vv-button.umd.js +0 -1
  338. package/dist/components/VvButtonGroup/VvButtonGroup.d.ts +0 -57
  339. package/dist/components/VvButtonGroup/vv-button-group.es.js +0 -210
  340. package/dist/components/VvButtonGroup/vv-button-group.umd.js +0 -1
  341. package/dist/components/VvCard/vv-card.es.js +0 -188
  342. package/dist/components/VvCard/vv-card.umd.js +0 -1
  343. package/dist/components/VvCheck/VvCheck.d.ts +0 -47
  344. package/dist/components/VvCheck/VvCheck.vue.d.ts +0 -165
  345. package/dist/components/VvCheck/useCheckProps.d.ts +0 -16
  346. package/dist/components/VvCheck/vv-check.es.js +0 -321
  347. package/dist/components/VvCheck/vv-check.umd.js +0 -1
  348. package/dist/components/VvCheckGroup/VvCheckGroup.d.ts +0 -65
  349. package/dist/components/VvCheckGroup/VvCheckGroup.vue.d.ts +0 -272
  350. package/dist/components/VvCheckGroup/vv-check-group.es.js +0 -452
  351. package/dist/components/VvCheckGroup/vv-check-group.umd.js +0 -2
  352. package/dist/components/VvDialog/constants.d.ts +0 -5
  353. package/dist/components/VvDialog/vv-dialog.es.js +0 -315
  354. package/dist/components/VvDialog/vv-dialog.umd.js +0 -1
  355. package/dist/components/VvDropdown/VvDropdown.d.ts +0 -52
  356. package/dist/components/VvDropdown/vv-dropdown.es.js +0 -236
  357. package/dist/components/VvDropdown/vv-dropdown.umd.js +0 -1
  358. package/dist/components/VvIcon/vv-icon.es.js +0 -229
  359. package/dist/components/VvIcon/vv-icon.umd.js +0 -1
  360. package/dist/components/VvInputText/VvInputText.d.ts +0 -73
  361. package/dist/components/VvInputText/constants.d.ts +0 -55
  362. package/dist/components/VvInputText/vv-input-text.es.js +0 -725
  363. package/dist/components/VvInputText/vv-input-text.umd.js +0 -2
  364. package/dist/components/VvNativeSelect/VvNativeSelect.d.ts +0 -70
  365. package/dist/components/VvNativeSelect/VvNativeSelect.vue.d.ts +0 -228
  366. package/dist/components/VvNativeSelect/vv-native-select.es.js +0 -414
  367. package/dist/components/VvNativeSelect/vv-native-select.umd.js +0 -2
  368. package/dist/components/VvProgress/VvProgress.d.ts +0 -29
  369. package/dist/components/VvProgress/vv-progress.es.js +0 -185
  370. package/dist/components/VvProgress/vv-progress.umd.js +0 -1
  371. package/dist/components/VvRadio/VvRadio.d.ts +0 -22
  372. package/dist/components/VvRadio/useRadioProps.d.ts +0 -15
  373. package/dist/components/VvRadio/vv-radio.es.js +0 -309
  374. package/dist/components/VvRadio/vv-radio.umd.js +0 -1
  375. package/dist/components/VvRadioGroup/VvRadioGroup.d.ts +0 -54
  376. package/dist/components/VvRadioGroup/vv-radio-group.es.js +0 -441
  377. package/dist/components/VvRadioGroup/vv-radio-group.umd.js +0 -2
  378. package/dist/components/VvSelect/vv-select.es.js +0 -445
  379. package/dist/components/VvSelect/vv-select.umd.js +0 -2
  380. package/dist/components/VvTextarea/VvTextarea.d.ts +0 -88
  381. package/dist/components/VvTextarea/constants.d.ts +0 -19
  382. package/dist/components/VvTextarea/vv-textarea.es.js +0 -548
  383. package/dist/components/VvTextarea/vv-textarea.umd.js +0 -2
  384. package/dist/composables/debouncedInput/useDebouncedInput.d.ts +0 -2
  385. package/dist/composables/focus/useComponentFocus.d.ts +0 -7
  386. package/dist/composables/options/useOptions.d.ts +0 -5
  387. package/dist/composables/textLimit/useTextLimit.d.ts +0 -14
  388. package/dist/stories/Icon/IconList.vue.d.ts +0 -44
  389. package/dist/stories/utils.d.ts +0 -5
  390. package/dist/ui-vue.es.js +0 -3001
  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 -66
  408. package/src/components/VvInputText/constants.ts +0 -34
  409. package/src/components/VvNativeSelect/VvNativeSelect.ts +0 -70
  410. package/src/components/VvNativeSelect/VvNativeSelect.vue +0 -106
  411. package/src/components/VvProgress/VvProgress.ts +0 -28
  412. package/src/components/VvRadio/VvRadio.ts +0 -25
  413. package/src/components/VvRadio/useRadioProps.ts +0 -40
  414. package/src/components/VvRadioGroup/VvRadioGroup.ts +0 -25
  415. package/src/components/VvSelect/VvSelect.ts +0 -91
  416. package/src/components/VvTextarea/VvTextarea.ts +0 -64
  417. package/src/components/VvTextarea/constants.ts +0 -14
  418. package/src/composables/debouncedInput/useDebouncedInput.ts +0 -19
  419. package/src/composables/focus/useComponentFocus.ts +0 -22
  420. package/src/composables/options/useOptions.ts +0 -27
  421. package/src/composables/textLimit/useTextLimit.ts +0 -44
  422. package/src/stories/Accordion/AccordionBordered.stories.mdx +0 -26
  423. package/src/stories/Accordion/AccordionIconRight.stories.mdx +0 -32
  424. package/src/stories/Accordion/accordionTest.js +0 -36
  425. package/src/stories/AccordionGroup/Accordion.stories.mdx +0 -42
  426. package/src/stories/AccordionGroup/AccordionItems.stories.mdx +0 -51
  427. package/src/stories/AccordionGroup/accordionGroupTest.js +0 -51
  428. package/src/stories/Badge/BadgeColor.stories.mdx +0 -54
  429. package/src/stories/Badge/BadgeDot.stories.mdx +0 -20
  430. package/src/stories/Badge/BadgeTest.js +0 -21
  431. package/src/stories/Breadcrumb/BreadcrumbMultiline.stories.mdx +0 -41
  432. package/src/stories/Button/ButtonBadge.stories.mdx +0 -34
  433. package/src/stories/Button/ButtonIconPosition.stories.mdx +0 -106
  434. package/src/stories/Button/ButtonVariant.stories.mdx +0 -205
  435. package/src/stories/Button/test.js +0 -41
  436. package/src/stories/ButtonGroup/ButtonGroupAction.stories.mdx +0 -83
  437. package/src/stories/ButtonGroup/ButtonGroupActionQuiet.stories.mdx +0 -50
  438. package/src/stories/ButtonGroup/ButtonGroupBlock.stories.mdx +0 -40
  439. package/src/stories/ButtonGroup/ButtonGroupCompact.stories.mdx +0 -38
  440. package/src/stories/ButtonGroup/ButtonGroupRounded.stories.mdx +0 -77
  441. package/src/stories/ButtonGroup/ButtonGroupTest.js +0 -61
  442. package/src/stories/ButtonGroup/ButtonGroupVertical.stories.mdx +0 -38
  443. package/src/stories/Card/CardVariant.stories.mdx +0 -37
  444. package/src/stories/Check/Check.stories.mdx +0 -62
  445. package/src/stories/Check/CheckBinary.stories.mdx +0 -80
  446. package/src/stories/Check/CheckDisabled.stories.mdx +0 -30
  447. package/src/stories/Check/CheckError.stories.mdx +0 -64
  448. package/src/stories/Check/CheckErrorTests.js +0 -72
  449. package/src/stories/Check/CheckHintLabel.stories.mdx +0 -30
  450. package/src/stories/Check/CheckPropertyTest.js +0 -101
  451. package/src/stories/Check/CheckReadonly.stories.mdx +0 -30
  452. package/src/stories/Check/CheckSlots.stories.mdx +0 -51
  453. package/src/stories/Check/CheckSwitch.stories.mdx +0 -30
  454. package/src/stories/CheckGroup/CheckGroup.stories.mdx +0 -69
  455. package/src/stories/CheckGroup/CheckGroupDisabled.stories.mdx +0 -26
  456. package/src/stories/CheckGroup/CheckGroupError.stories.mdx +0 -28
  457. package/src/stories/CheckGroup/CheckGroupHintLabel.stories.mdx +0 -27
  458. package/src/stories/CheckGroup/CheckGroupLabel.stories.mdx +0 -26
  459. package/src/stories/CheckGroup/CheckGroupOptionLabel.stories.mdx +0 -48
  460. package/src/stories/CheckGroup/CheckGroupOptionValue.stories.mdx +0 -48
  461. package/src/stories/CheckGroup/CheckGroupOptions.stories.mdx +0 -40
  462. package/src/stories/CheckGroup/CheckGroupReadonly.stories.mdx +0 -26
  463. package/src/stories/CheckGroup/CheckGroupSlots.stories.mdx +0 -152
  464. package/src/stories/CheckGroup/CheckGroupValid.stories.mdx +0 -28
  465. package/src/stories/CheckGroup/CheckGroupVertical.stories.mdx +0 -26
  466. package/src/stories/Dialog/DialogAutoClose.stories.mdx +0 -18
  467. package/src/stories/Dialog/DialogSize.stories.mdx +0 -36
  468. package/src/stories/Dropdown/DropdownDisabled.stories.mdx +0 -25
  469. package/src/stories/Dropdown/DropdownLabelNoResults.stories.mdx +0 -25
  470. package/src/stories/Dropdown/DropdownMaxValues.stories.mdx +0 -26
  471. package/src/stories/Dropdown/DropdownMultiple.stories.mdx +0 -56
  472. package/src/stories/Dropdown/DropdownUseObject.stories.mdx +0 -58
  473. package/src/stories/Icon/IconList.vue +0 -34
  474. package/src/stories/Icon/IconPrefix.stories.mdx +0 -79
  475. package/src/stories/Icon/IconRemote.stories.mdx +0 -39
  476. package/src/stories/Icon/IconTest.js +0 -27
  477. package/src/stories/Icon/IconsList.stories.mdx +0 -35
  478. package/src/stories/InputText/InputTextAutocomplete.stories.mdx +0 -15
  479. package/src/stories/InputText/InputTextAutofocus.stories.mdx +0 -20
  480. package/src/stories/InputText/InputTextDisabled.stories.mdx +0 -19
  481. package/src/stories/InputText/InputTextError.stories.mdx +0 -19
  482. package/src/stories/InputText/InputTextFloating.stories.mdx +0 -20
  483. package/src/stories/InputText/InputTextHintLabel.stories.mdx +0 -18
  484. package/src/stories/InputText/InputTextIcon.stories.mdx +0 -18
  485. package/src/stories/InputText/InputTextLabel.stories.mdx +0 -15
  486. package/src/stories/InputText/InputTextLoading.stories.mdx +0 -19
  487. package/src/stories/InputText/InputTextMax.stories.mdx +0 -31
  488. package/src/stories/InputText/InputTextMaxLength.stories.mdx +0 -36
  489. package/src/stories/InputText/InputTextMin.stories.mdx +0 -31
  490. package/src/stories/InputText/InputTextMinLength.stories.mdx +0 -15
  491. package/src/stories/InputText/InputTextPlaceholder.stories.mdx +0 -15
  492. package/src/stories/InputText/InputTextReadonly.stories.mdx +0 -19
  493. package/src/stories/InputText/InputTextStep.stories.mdx +0 -31
  494. package/src/stories/InputText/InputTextValid.stories.mdx +0 -19
  495. package/src/stories/NativeSelect/NativeSelect.stories.mdx +0 -53
  496. package/src/stories/NativeSelect/NativeSelectDisabled.stories.mdx +0 -32
  497. package/src/stories/NativeSelect/NativeSelectError.stories.mdx +0 -36
  498. package/src/stories/NativeSelect/NativeSelectHintLabel.stories.mdx +0 -34
  499. package/src/stories/NativeSelect/NativeSelectIconLeftRight.stories.mdx +0 -42
  500. package/src/stories/NativeSelect/NativeSelectLoading.stories.mdx +0 -27
  501. package/src/stories/NativeSelect/NativeSelectOptions.stories.mdx +0 -78
  502. package/src/stories/NativeSelect/NativeSelectReadonly.stories.mdx +0 -34
  503. package/src/stories/NativeSelect/NativeSelectUseObject.stories.mdx +0 -66
  504. package/src/stories/NativeSelect/NativeSelectValid.stories.mdx +0 -36
  505. package/src/stories/NativeSelect/NativeSelectValueKey.stories.mdx +0 -66
  506. package/src/stories/Progress/ProgressDeterminate.stories.mdx +0 -19
  507. package/src/stories/Radio/RadioDisabled.stories.mdx +0 -30
  508. package/src/stories/Radio/RadioError.stories.mdx +0 -64
  509. package/src/stories/Radio/RadioHintLabel.stories.mdx +0 -30
  510. package/src/stories/Radio/RadioTest.js +0 -89
  511. package/src/stories/RadioGroup/RadioGroupDisabled.stories.mdx +0 -29
  512. package/src/stories/RadioGroup/RadioGroupError.stories.mdx +0 -31
  513. package/src/stories/RadioGroup/RadioGroupHintLabel.stories.mdx +0 -28
  514. package/src/stories/RadioGroup/RadioGroupLabel.stories.mdx +0 -29
  515. package/src/stories/RadioGroup/RadioGroupOptionLabel.stories.mdx +0 -65
  516. package/src/stories/RadioGroup/RadioGroupOptionValue.stories.mdx +0 -65
  517. package/src/stories/RadioGroup/RadioGroupReadonly.stories.mdx +0 -29
  518. package/src/stories/RadioGroup/RadioGroupValid.stories.mdx +0 -31
  519. package/src/stories/RadioGroup/RadioGroupVertical.stories.mdx +0 -29
  520. package/src/stories/RadioGroup/RadioOptionsTest.js +0 -78
  521. package/src/stories/RadioGroup/RadioPropertyTest.js +0 -131
  522. package/src/stories/RadioGroup/RadioSlotsTest.js +0 -20
  523. package/src/stories/Select/SelectDisabled.stories.mdx +0 -32
  524. package/src/stories/Select/SelectMaxValues.stories.mdx +0 -33
  525. package/src/stories/Select/SelectMultiple.stories.mdx +0 -64
  526. package/src/stories/Select/SelectSearchable.stories.mdx +0 -80
  527. package/src/stories/Select/SelectSeparator.stories.mdx +0 -64
  528. package/src/stories/Select/SelectUseObject.stories.mdx +0 -66
  529. package/src/stories/Textarea/TextareaAutoclear.stories.mdx +0 -23
  530. package/src/stories/Textarea/TextareaAutocomplete.stories.mdx +0 -23
  531. package/src/stories/Textarea/TextareaAutofocus.stories.mdx +0 -24
  532. package/src/stories/Textarea/TextareaDebounce.stories.mdx +0 -23
  533. package/src/stories/Textarea/TextareaDisabled.stories.mdx +0 -23
  534. package/src/stories/Textarea/TextareaError.stories.mdx +0 -22
  535. package/src/stories/Textarea/TextareaErrorLabel.stories.mdx +0 -37
  536. package/src/stories/Textarea/TextareaFloating.stories.mdx +0 -25
  537. package/src/stories/Textarea/TextareaHintLabel.stories.mdx +0 -22
  538. package/src/stories/Textarea/TextareaIcon.stories.mdx +0 -22
  539. package/src/stories/Textarea/TextareaIconPosition.stories.mdx +0 -39
  540. package/src/stories/Textarea/TextareaId.stories.mdx +0 -19
  541. package/src/stories/Textarea/TextareaLabel.stories.mdx +0 -19
  542. package/src/stories/Textarea/TextareaLimit.stories.mdx +0 -50
  543. package/src/stories/Textarea/TextareaLoading.stories.mdx +0 -22
  544. package/src/stories/Textarea/TextareaLoadingLabel.stories.mdx +0 -23
  545. package/src/stories/Textarea/TextareaMaxLength.stories.mdx +0 -19
  546. package/src/stories/Textarea/TextareaMinLength.stories.mdx +0 -19
  547. package/src/stories/Textarea/TextareaModifiers.stories.mdx +0 -24
  548. package/src/stories/Textarea/TextareaName.stories.mdx +0 -23
  549. package/src/stories/Textarea/TextareaPlaceholder.stories.mdx +0 -19
  550. package/src/stories/Textarea/TextareaReadonly.stories.mdx +0 -23
  551. package/src/stories/Textarea/TextareaRequired.stories.mdx +0 -22
  552. package/src/stories/Textarea/TextareaResizable.stories.mdx +0 -22
  553. package/src/stories/Textarea/TextareaRowsCols.stories.mdx +0 -39
  554. package/src/stories/Textarea/TextareaValid.stories.mdx +0 -22
  555. package/src/stories/Textarea/TextareaValidLabel.stories.mdx +0 -35
  556. package/src/stories/stories.scss +0 -35
  557. package/src/stories/utils.ts +0 -12
  558. package/src/stories/volver-ui-vue.stories.mdx +0 -77
  559. package/src/types/.README +0 -0
@@ -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 {
@@ -28,8 +31,8 @@ interface HintSlotProps {
28
31
  modelValue: null
29
32
  valid: BooleanConstructor
30
33
  validLabel: (StringConstructor | ArrayConstructor)[]
31
- error: BooleanConstructor
32
- errorLabel: (StringConstructor | ArrayConstructor)[]
34
+ invalid: BooleanConstructor
35
+ invalidLabel: (StringConstructor | ArrayConstructor)[]
33
36
  }
34
37
 
35
38
  interface HintSlotPropsWithLoading extends HintSlotProps {
@@ -39,143 +42,170 @@ 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: { type: Object, default: () => {} }
56
- },
57
- setup(hProps) {
58
- const props = toRefs(pProps)
59
-
60
- //Slots
61
- const {
62
- error: errorSlot,
63
- valid: validSlot,
64
- hint: hintSlot,
65
- loading: loadingSlot
66
- } = pSlots
67
-
68
- //Props hint + errors
69
- const {
70
- hintLabel,
71
- modelValue,
72
- valid,
73
- validLabel,
74
- error,
75
- errorLabel
76
- } = props
77
- const loading = ObjectUtilities.resolveFieldData(props, 'loading')
78
- const loadingLabel = ObjectUtilities.resolveFieldData(
79
- props,
80
- 'loadingLabel'
81
- )
82
-
83
- const hasErrors = computed(() => {
84
- //No error
85
- if (!error.value) return false
86
-
87
- if (error.value && errorSlot) return true
88
-
89
- if (
90
- errorLabel?.value &&
91
- Array.isArray(errorLabel.value) &&
92
- errorLabel.value.length > 0
93
- )
94
- return true
95
-
96
- if (
97
- errorLabel?.value &&
98
- ObjectUtilities.isNotEmpty(errorLabel.value)
99
- )
100
- return true
101
-
102
- return false
103
- })
104
-
105
- const hasHint = computed(() => {
106
- return !!(
107
- (hintLabel && hintLabel.value) ||
108
- hintSlot ||
109
- validSlot ||
110
- (validLabel && validLabel.value) ||
111
- hasErrors.value ||
112
- (loading?.value && loadingSlot) ||
113
- (loading?.value && loadingLabel?.value)
114
- )
115
- })
116
-
117
- // const errorMessage = computed(() => {
118
- // if (Array.isArray(errorLabel?.value))
119
- // return joinLines(errorLabel?.value || '')
120
- // else return errorLabel?.value
121
- // })
122
-
123
- const hintContent = computed(() => {
124
- const slotProps = toReactive({
125
- hintLabel,
126
- modelValue,
127
- valid,
128
- validLabel,
129
- error,
130
- errorLabel,
131
- loading,
132
- loadingLabel,
133
- ...hProps.params
134
- })
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
+ )
135
130
 
136
- if (error?.value) {
137
- return (
138
- errorSlot?.(slotProps) ||
139
- joinLines(errorLabel?.value) ||
140
- hintLabel?.value
141
- )
142
- }
131
+ return {
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
+ )
143
179
 
144
- if (valid?.value)
145
180
  return (
146
- validSlot?.(slotProps) ||
147
- joinLines(validLabel?.value) ||
181
+ hintSlot?.(slotProps) ||
182
+ joinLines(hintLabel?.value) ||
148
183
  hintLabel?.value
149
184
  )
185
+ })
150
186
 
151
- if (loading?.value)
152
- return (
153
- loadingSlot?.(slotProps) ||
154
- joinLines(loadingLabel?.value) ||
155
- 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,
156
205
  )
157
-
158
- return (
159
- hintSlot?.(slotProps) ||
160
- joinLines(hintLabel?.value) ||
161
- hintLabel?.value
162
- )
163
- })
164
-
165
- return {
166
- hasHint,
167
- hintContent
168
- }
206
+ }
207
+ },
169
208
  },
170
- render() {
171
- if (this.hasHint) {
172
- return h(
173
- 'pre',
174
- { style: { 'white-space': 'pre' } },
175
- this.hintContent
176
- )
177
- }
178
- }
179
209
  }
180
210
  }
181
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
+ }