@volverjs/ui-vue 0.0.1-beta.8 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +108 -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 +439 -0
  23. package/dist/components/VvButton/VvButton.umd.js +1 -0
  24. package/dist/components/VvButton/VvButton.vue.d.ts +100 -199
  25. package/dist/components/VvButton/index.d.ts +132 -0
  26. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +107 -0
  27. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -0
  28. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +92 -186
  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 +775 -0
  43. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -0
  44. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +175 -0
  45. package/dist/components/VvCombobox/index.d.ts +108 -0
  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 +227 -0
  51. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -0
  52. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +59 -146
  53. package/dist/components/VvDropdown/index.d.ts +49 -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 +772 -0
  62. package/dist/components/VvInputText/VvInputText.umd.js +1 -0
  63. package/dist/components/VvInputText/VvInputText.vue.d.ts +211 -288
  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 +434 -0
  79. package/dist/components/VvSelect/VvSelect.umd.js +1 -0
  80. package/dist/components/VvSelect/VvSelect.vue.d.ts +125 -263
  81. package/dist/components/VvSelect/index.d.ts +89 -0
  82. package/dist/components/VvTextarea/VvTextarea.es.js +471 -0
  83. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -0
  84. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +140 -321
  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 +2379 -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 +2420 -0
  107. package/dist/index.umd.js +1 -0
  108. package/dist/props/index.d.ts +328 -30
  109. package/dist/resolvers/unplugin.d.ts +27 -0
  110. package/dist/resolvers/unplugin.es.js +42 -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 +198 -0
  121. package/dist/stories/Button/Button.test.d.ts +1 -10
  122. package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +47 -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 +286 -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 +85 -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 +284 -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 +842 -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 +199 -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 +189 -0
  170. package/src/components/VvButtonGroup/VvButtonGroup.vue +76 -48
  171. package/src/components/VvButtonGroup/index.ts +16 -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 +261 -0
  179. package/src/components/VvCombobox/index.ts +88 -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 +115 -114
  183. package/src/components/VvDropdown/index.ts +35 -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 +307 -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 +187 -186
  200. package/src/components/VvSelect/index.ts +71 -0
  201. package/src/components/VvTextarea/VvTextarea.vue +188 -174
  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 +23 -35
  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 +204 -36
  222. package/src/resolvers/unplugin.ts +112 -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 +145 -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 +33 -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/ButtonGroupSlots.stories.mdx +37 -0
  255. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.mdx +52 -110
  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 +127 -0
  271. package/src/stories/Combobox/Combobox.stories.mdx +204 -0
  272. package/src/stories/Combobox/Combobox.test.ts +103 -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 +51 -0
  281. package/src/stories/Dropdown/Dropdown.stories.mdx +102 -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 +86 -0
  308. package/src/stories/Select/Select.stories.mdx +173 -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 +167 -47
  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 +457 -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 -422
  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 -452
  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 -73
  362. package/dist/components/VvInputText/constants.d.ts +0 -55
  363. package/dist/components/VvInputText/vv-input-text.es.js +0 -725
  364. package/dist/components/VvInputText/vv-input-text.umd.js +0 -2
  365. package/dist/components/VvNativeSelect/VvNativeSelect.d.ts +0 -70
  366. package/dist/components/VvNativeSelect/VvNativeSelect.vue.d.ts +0 -228
  367. package/dist/components/VvNativeSelect/vv-native-select.es.js +0 -414
  368. package/dist/components/VvNativeSelect/vv-native-select.umd.js +0 -2
  369. package/dist/components/VvProgress/VvProgress.d.ts +0 -29
  370. package/dist/components/VvProgress/vv-progress.es.js +0 -185
  371. package/dist/components/VvProgress/vv-progress.umd.js +0 -1
  372. package/dist/components/VvRadio/VvRadio.d.ts +0 -22
  373. package/dist/components/VvRadio/useRadioProps.d.ts +0 -15
  374. package/dist/components/VvRadio/vv-radio.es.js +0 -309
  375. package/dist/components/VvRadio/vv-radio.umd.js +0 -1
  376. package/dist/components/VvRadioGroup/VvRadioGroup.d.ts +0 -54
  377. package/dist/components/VvRadioGroup/vv-radio-group.es.js +0 -441
  378. package/dist/components/VvRadioGroup/vv-radio-group.umd.js +0 -2
  379. package/dist/components/VvSelect/VvSelect.d.ts +0 -99
  380. package/dist/components/VvSelect/vv-select.es.js +0 -445
  381. package/dist/components/VvSelect/vv-select.umd.js +0 -2
  382. package/dist/components/VvTextarea/VvTextarea.d.ts +0 -88
  383. package/dist/components/VvTextarea/constants.d.ts +0 -19
  384. package/dist/components/VvTextarea/vv-textarea.es.js +0 -548
  385. package/dist/components/VvTextarea/vv-textarea.umd.js +0 -2
  386. package/dist/composables/debouncedInput/useDebouncedInput.d.ts +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/composables/textLimit/useTextLimit.d.ts +0 -14
  390. package/dist/stories/Icon/IconList.vue.d.ts +0 -44
  391. package/dist/stories/utils.d.ts +0 -5
  392. package/dist/ui-vue.es.js +0 -3001
  393. package/dist/ui-vue.umd.js +0 -2
  394. package/src/assets/icons/index.js +0 -7
  395. package/src/components/VvAccordion/VvAccordion.ts +0 -34
  396. package/src/components/VvAccordion/useAccordionProps.ts +0 -45
  397. package/src/components/VvBadge/VvBadge.ts +0 -4
  398. package/src/components/VvButton/VvButton.ts +0 -117
  399. package/src/components/VvButton/useButtonGroupProps.ts +0 -51
  400. package/src/components/VvButtonGroup/VvButtonGroup.ts +0 -37
  401. package/src/components/VvCheck/VvCheck.ts +0 -48
  402. package/src/components/VvCheck/VvCheck.vue +0 -149
  403. package/src/components/VvCheck/useCheckProps.ts +0 -41
  404. package/src/components/VvCheckGroup/VvCheckGroup.ts +0 -34
  405. package/src/components/VvCheckGroup/VvCheckGroup.vue +0 -84
  406. package/src/components/VvDialog/VvDialog.ts +0 -17
  407. package/src/components/VvDialog/constants.ts +0 -5
  408. package/src/components/VvDropdown/VvDropdown.ts +0 -46
  409. package/src/components/VvInputText/VvInputText.ts +0 -66
  410. package/src/components/VvInputText/constants.ts +0 -34
  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 -64
  419. package/src/components/VvTextarea/constants.ts +0 -14
  420. package/src/composables/debouncedInput/useDebouncedInput.ts +0 -19
  421. package/src/composables/focus/useComponentFocus.ts +0 -22
  422. package/src/composables/options/useOptions.ts +0 -27
  423. package/src/composables/textLimit/useTextLimit.ts +0 -44
  424. package/src/stories/Accordion/AccordionBordered.stories.mdx +0 -26
  425. package/src/stories/Accordion/AccordionIconRight.stories.mdx +0 -32
  426. package/src/stories/Accordion/accordionTest.js +0 -36
  427. package/src/stories/AccordionGroup/Accordion.stories.mdx +0 -42
  428. package/src/stories/AccordionGroup/AccordionItems.stories.mdx +0 -51
  429. package/src/stories/AccordionGroup/accordionGroupTest.js +0 -51
  430. package/src/stories/Badge/BadgeColor.stories.mdx +0 -54
  431. package/src/stories/Badge/BadgeDot.stories.mdx +0 -20
  432. package/src/stories/Badge/BadgeTest.js +0 -21
  433. package/src/stories/Breadcrumb/BreadcrumbMultiline.stories.mdx +0 -41
  434. package/src/stories/Button/ButtonBadge.stories.mdx +0 -34
  435. package/src/stories/Button/ButtonIconPosition.stories.mdx +0 -106
  436. package/src/stories/Button/ButtonVariant.stories.mdx +0 -205
  437. package/src/stories/Button/test.js +0 -41
  438. package/src/stories/ButtonGroup/ButtonGroupAction.stories.mdx +0 -83
  439. package/src/stories/ButtonGroup/ButtonGroupActionQuiet.stories.mdx +0 -50
  440. package/src/stories/ButtonGroup/ButtonGroupBlock.stories.mdx +0 -40
  441. package/src/stories/ButtonGroup/ButtonGroupCompact.stories.mdx +0 -38
  442. package/src/stories/ButtonGroup/ButtonGroupRounded.stories.mdx +0 -77
  443. package/src/stories/ButtonGroup/ButtonGroupTest.js +0 -61
  444. package/src/stories/ButtonGroup/ButtonGroupVertical.stories.mdx +0 -38
  445. package/src/stories/Card/CardVariant.stories.mdx +0 -37
  446. package/src/stories/Check/Check.stories.mdx +0 -62
  447. package/src/stories/Check/CheckBinary.stories.mdx +0 -80
  448. package/src/stories/Check/CheckDisabled.stories.mdx +0 -30
  449. package/src/stories/Check/CheckError.stories.mdx +0 -64
  450. package/src/stories/Check/CheckErrorTests.js +0 -72
  451. package/src/stories/Check/CheckHintLabel.stories.mdx +0 -30
  452. package/src/stories/Check/CheckPropertyTest.js +0 -101
  453. package/src/stories/Check/CheckReadonly.stories.mdx +0 -30
  454. package/src/stories/Check/CheckSlots.stories.mdx +0 -51
  455. package/src/stories/Check/CheckSwitch.stories.mdx +0 -30
  456. package/src/stories/CheckGroup/CheckGroup.stories.mdx +0 -69
  457. package/src/stories/CheckGroup/CheckGroupDisabled.stories.mdx +0 -26
  458. package/src/stories/CheckGroup/CheckGroupError.stories.mdx +0 -28
  459. package/src/stories/CheckGroup/CheckGroupHintLabel.stories.mdx +0 -27
  460. package/src/stories/CheckGroup/CheckGroupLabel.stories.mdx +0 -26
  461. package/src/stories/CheckGroup/CheckGroupOptionLabel.stories.mdx +0 -48
  462. package/src/stories/CheckGroup/CheckGroupOptionValue.stories.mdx +0 -48
  463. package/src/stories/CheckGroup/CheckGroupOptions.stories.mdx +0 -40
  464. package/src/stories/CheckGroup/CheckGroupReadonly.stories.mdx +0 -26
  465. package/src/stories/CheckGroup/CheckGroupSlots.stories.mdx +0 -152
  466. package/src/stories/CheckGroup/CheckGroupValid.stories.mdx +0 -28
  467. package/src/stories/CheckGroup/CheckGroupVertical.stories.mdx +0 -26
  468. package/src/stories/Dialog/DialogAutoClose.stories.mdx +0 -18
  469. package/src/stories/Dialog/DialogSize.stories.mdx +0 -36
  470. package/src/stories/Dropdown/DropdownDisabled.stories.mdx +0 -25
  471. package/src/stories/Dropdown/DropdownLabelNoResults.stories.mdx +0 -25
  472. package/src/stories/Dropdown/DropdownMaxValues.stories.mdx +0 -26
  473. package/src/stories/Dropdown/DropdownMultiple.stories.mdx +0 -56
  474. package/src/stories/Dropdown/DropdownUseObject.stories.mdx +0 -58
  475. package/src/stories/Icon/IconList.vue +0 -34
  476. package/src/stories/Icon/IconPrefix.stories.mdx +0 -79
  477. package/src/stories/Icon/IconRemote.stories.mdx +0 -39
  478. package/src/stories/Icon/IconTest.js +0 -27
  479. package/src/stories/Icon/IconsList.stories.mdx +0 -35
  480. package/src/stories/InputText/InputTextAutocomplete.stories.mdx +0 -15
  481. package/src/stories/InputText/InputTextAutofocus.stories.mdx +0 -20
  482. package/src/stories/InputText/InputTextDisabled.stories.mdx +0 -19
  483. package/src/stories/InputText/InputTextError.stories.mdx +0 -19
  484. package/src/stories/InputText/InputTextFloating.stories.mdx +0 -20
  485. package/src/stories/InputText/InputTextHintLabel.stories.mdx +0 -18
  486. package/src/stories/InputText/InputTextIcon.stories.mdx +0 -18
  487. package/src/stories/InputText/InputTextLabel.stories.mdx +0 -15
  488. package/src/stories/InputText/InputTextLoading.stories.mdx +0 -19
  489. package/src/stories/InputText/InputTextMax.stories.mdx +0 -31
  490. package/src/stories/InputText/InputTextMaxLength.stories.mdx +0 -36
  491. package/src/stories/InputText/InputTextMin.stories.mdx +0 -31
  492. package/src/stories/InputText/InputTextMinLength.stories.mdx +0 -15
  493. package/src/stories/InputText/InputTextPlaceholder.stories.mdx +0 -15
  494. package/src/stories/InputText/InputTextReadonly.stories.mdx +0 -19
  495. package/src/stories/InputText/InputTextStep.stories.mdx +0 -31
  496. package/src/stories/InputText/InputTextValid.stories.mdx +0 -19
  497. package/src/stories/NativeSelect/NativeSelect.stories.mdx +0 -53
  498. package/src/stories/NativeSelect/NativeSelectDisabled.stories.mdx +0 -32
  499. package/src/stories/NativeSelect/NativeSelectError.stories.mdx +0 -36
  500. package/src/stories/NativeSelect/NativeSelectHintLabel.stories.mdx +0 -34
  501. package/src/stories/NativeSelect/NativeSelectIconLeftRight.stories.mdx +0 -42
  502. package/src/stories/NativeSelect/NativeSelectLoading.stories.mdx +0 -27
  503. package/src/stories/NativeSelect/NativeSelectOptions.stories.mdx +0 -78
  504. package/src/stories/NativeSelect/NativeSelectReadonly.stories.mdx +0 -34
  505. package/src/stories/NativeSelect/NativeSelectUseObject.stories.mdx +0 -66
  506. package/src/stories/NativeSelect/NativeSelectValid.stories.mdx +0 -36
  507. package/src/stories/NativeSelect/NativeSelectValueKey.stories.mdx +0 -66
  508. package/src/stories/Progress/ProgressDeterminate.stories.mdx +0 -19
  509. package/src/stories/Radio/RadioDisabled.stories.mdx +0 -30
  510. package/src/stories/Radio/RadioError.stories.mdx +0 -64
  511. package/src/stories/Radio/RadioHintLabel.stories.mdx +0 -30
  512. package/src/stories/Radio/RadioTest.js +0 -89
  513. package/src/stories/RadioGroup/RadioGroupDisabled.stories.mdx +0 -29
  514. package/src/stories/RadioGroup/RadioGroupError.stories.mdx +0 -31
  515. package/src/stories/RadioGroup/RadioGroupHintLabel.stories.mdx +0 -28
  516. package/src/stories/RadioGroup/RadioGroupLabel.stories.mdx +0 -29
  517. package/src/stories/RadioGroup/RadioGroupOptionLabel.stories.mdx +0 -65
  518. package/src/stories/RadioGroup/RadioGroupOptionValue.stories.mdx +0 -65
  519. package/src/stories/RadioGroup/RadioGroupReadonly.stories.mdx +0 -29
  520. package/src/stories/RadioGroup/RadioGroupValid.stories.mdx +0 -31
  521. package/src/stories/RadioGroup/RadioGroupVertical.stories.mdx +0 -29
  522. package/src/stories/RadioGroup/RadioOptionsTest.js +0 -78
  523. package/src/stories/RadioGroup/RadioPropertyTest.js +0 -131
  524. package/src/stories/RadioGroup/RadioSlotsTest.js +0 -20
  525. package/src/stories/Select/SelectDisabled.stories.mdx +0 -32
  526. package/src/stories/Select/SelectMaxValues.stories.mdx +0 -33
  527. package/src/stories/Select/SelectMultiple.stories.mdx +0 -64
  528. package/src/stories/Select/SelectSearchable.stories.mdx +0 -80
  529. package/src/stories/Select/SelectSeparator.stories.mdx +0 -64
  530. package/src/stories/Select/SelectUseObject.stories.mdx +0 -66
  531. package/src/stories/Textarea/TextareaAutoclear.stories.mdx +0 -23
  532. package/src/stories/Textarea/TextareaAutocomplete.stories.mdx +0 -23
  533. package/src/stories/Textarea/TextareaAutofocus.stories.mdx +0 -24
  534. package/src/stories/Textarea/TextareaDebounce.stories.mdx +0 -23
  535. package/src/stories/Textarea/TextareaDisabled.stories.mdx +0 -23
  536. package/src/stories/Textarea/TextareaError.stories.mdx +0 -22
  537. package/src/stories/Textarea/TextareaErrorLabel.stories.mdx +0 -37
  538. package/src/stories/Textarea/TextareaFloating.stories.mdx +0 -25
  539. package/src/stories/Textarea/TextareaHintLabel.stories.mdx +0 -22
  540. package/src/stories/Textarea/TextareaIcon.stories.mdx +0 -22
  541. package/src/stories/Textarea/TextareaIconPosition.stories.mdx +0 -39
  542. package/src/stories/Textarea/TextareaId.stories.mdx +0 -19
  543. package/src/stories/Textarea/TextareaLabel.stories.mdx +0 -19
  544. package/src/stories/Textarea/TextareaLimit.stories.mdx +0 -50
  545. package/src/stories/Textarea/TextareaLoading.stories.mdx +0 -22
  546. package/src/stories/Textarea/TextareaLoadingLabel.stories.mdx +0 -23
  547. package/src/stories/Textarea/TextareaMaxLength.stories.mdx +0 -19
  548. package/src/stories/Textarea/TextareaMinLength.stories.mdx +0 -19
  549. package/src/stories/Textarea/TextareaModifiers.stories.mdx +0 -24
  550. package/src/stories/Textarea/TextareaName.stories.mdx +0 -23
  551. package/src/stories/Textarea/TextareaPlaceholder.stories.mdx +0 -19
  552. package/src/stories/Textarea/TextareaReadonly.stories.mdx +0 -23
  553. package/src/stories/Textarea/TextareaRequired.stories.mdx +0 -22
  554. package/src/stories/Textarea/TextareaResizable.stories.mdx +0 -22
  555. package/src/stories/Textarea/TextareaRowsCols.stories.mdx +0 -39
  556. package/src/stories/Textarea/TextareaValid.stories.mdx +0 -22
  557. package/src/stories/Textarea/TextareaValidLabel.stories.mdx +0 -35
  558. package/src/stories/stories.scss +0 -35
  559. package/src/stories/utils.ts +0 -12
  560. package/src/stories/volver-ui-vue.stories.mdx +0 -77
  561. 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
+ itemModifiers?: 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 | undefined
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
- function getGroupOrLocalRef<T extends object>(
20
+ function getGroupOrLocalRef<PropsType extends object>(
25
21
  propName: keyof TGroup,
26
- props: T,
27
- emit?: (event: any, ...args: any[]) => void
22
+ props: PropsType,
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 PropsType)
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
+ }