@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,5 +1,4 @@
1
- import type { Slot, Ref } from 'vue'
2
- import { computed } from 'vue'
1
+ import { type Slot, type Ref, computed } from 'vue'
3
2
 
4
3
  interface ComponentIconProps {
5
4
  icon: Ref<string>
@@ -15,30 +14,30 @@ interface ComponentIconSlots {
15
14
 
16
15
  export function useComponentIcons(
17
16
  props: ComponentIconProps,
18
- slots: ComponentIconSlots
17
+ slots: ComponentIconSlots,
19
18
  ) {
20
19
  const { icon, iconPosition } = props
21
20
 
22
21
  const hasIconLeft = computed(
23
22
  () =>
24
- !!((icon.value && iconPosition.value === 'left') || slots.iconLeft)
23
+ !!((icon.value && iconPosition.value === 'left') || slots.iconLeft),
25
24
  )
26
25
  const hasIconRight = computed(
27
26
  () =>
28
27
  !!(
29
28
  (icon.value && iconPosition.value === 'right') ||
30
29
  slots.iconRight
31
- )
30
+ ),
32
31
  )
33
32
  const hasIconTop = computed(
34
- () => !!((icon.value && iconPosition.value === 'top') || slots.iconTop)
33
+ () => !!((icon.value && iconPosition.value === 'top') || slots.iconTop),
35
34
  )
36
35
  const hasIconBottom = computed(
37
36
  () =>
38
37
  !!(
39
38
  (icon.value && iconPosition.value === 'bottom') ||
40
39
  slots.iconBottom
41
- )
40
+ ),
42
41
  )
43
42
 
44
43
  return {
@@ -47,41 +46,51 @@ export function useComponentIcons(
47
46
  hasIconLeft,
48
47
  hasIconRight,
49
48
  hasIconTop,
50
- hasIconBottom
49
+ hasIconBottom,
51
50
  }
52
51
  }
53
52
 
54
53
  export function useComponentIcon(
55
- icon: Ref<string>,
54
+ icon: Ref<string | object | undefined> | undefined,
56
55
  iconPosition: Ref<string>,
57
- slots: ComponentIconSlots
56
+ slots?: ComponentIconSlots,
58
57
  ) {
59
58
  const hasIconLeft = computed(
60
59
  () =>
61
- !!((icon.value && iconPosition.value === 'left') || slots.iconLeft)
60
+ !!(
61
+ (icon?.value && iconPosition.value === 'left') ||
62
+ slots?.iconLeft
63
+ ),
62
64
  )
63
65
  const hasIconRight = computed(
64
66
  () =>
65
67
  !!(
66
- (icon.value && iconPosition.value === 'right') ||
67
- slots.iconRight
68
- )
68
+ (icon?.value && iconPosition.value === 'right') ||
69
+ slots?.iconRight
70
+ ),
69
71
  )
70
72
  const hasIconTop = computed(
71
- () => !!((icon.value && iconPosition.value === 'top') || slots.iconTop)
73
+ () =>
74
+ !!((icon?.value && iconPosition.value === 'top') || slots?.iconTop),
72
75
  )
73
76
  const hasIconBottom = computed(
74
77
  () =>
75
78
  !!(
76
- (icon.value && iconPosition.value === 'bottom') ||
77
- slots.iconBottom
78
- )
79
+ (icon?.value && iconPosition.value === 'bottom') ||
80
+ slots?.iconBottom
81
+ ),
79
82
  )
80
-
83
+ const hasIcon = computed(() => {
84
+ if (typeof icon?.value === 'string') {
85
+ return { name: icon?.value }
86
+ }
87
+ return icon?.value
88
+ })
81
89
  return {
90
+ hasIcon,
82
91
  hasIconLeft,
83
92
  hasIconRight,
84
93
  hasIconTop,
85
- hasIconBottom
94
+ hasIconBottom,
86
95
  }
87
96
  }
@@ -0,0 +1,25 @@
1
+ import { type Ref, computed } from 'vue'
2
+
3
+ export function useDebouncedInput(
4
+ modelValue: Ref | undefined,
5
+ emit: (event: string, value: unknown) => void,
6
+ ms: string | number = 0,
7
+ ): Ref {
8
+ let timeout: NodeJS.Timeout
9
+
10
+ if (typeof ms === 'string') {
11
+ ms = parseInt(ms)
12
+ }
13
+
14
+ return computed({
15
+ get: () => modelValue?.value,
16
+ set: (value) => {
17
+ if (timeout) {
18
+ clearTimeout(timeout)
19
+ }
20
+ timeout = setTimeout(() => {
21
+ emit('update:modelValue', value)
22
+ }, ms as number)
23
+ },
24
+ })
25
+ }
@@ -1,5 +1,5 @@
1
1
  import { computed, unref, type Ref } from 'vue'
2
- import ObjectUtilities from '@/utils/ObjectUtilities'
2
+ import { kebabCase } from '@/utils/ObjectUtilities'
3
3
 
4
4
  interface IBemModifiers {
5
5
  [key: string]:
@@ -23,34 +23,33 @@ export function useBemModifiers(prefix: string, modifiers: IBemModifiers) {
23
23
 
24
24
  const bemCssClasses = computed(() => {
25
25
  return (
26
- Object.keys(modifiers).reduce((acc, k) => {
27
- const _modifier = unref(modifiers[k] as Ref<any>) || false
26
+ Object.keys(modifiers).reduce((acc, item) => {
27
+ const _modifier =
28
+ unref(modifiers[item] as Ref<string | string[]>) || false
28
29
 
29
30
  if (!_modifier) return acc
30
31
 
31
- if (k === 'modifiers') {
32
+ if (item === 'modifiers') {
32
33
  const _reduceModifiers = Array.isArray(_modifier)
33
34
  ? _modifier
34
- : [_modifier]
35
+ : _modifier.split(' ')
35
36
  return {
36
37
  ...acc,
37
38
  ..._reduceModifiers.reduce(
38
39
  (accVariant: object, currentVariant: string) => {
39
40
  return {
40
41
  ...accVariant,
41
- [`${prefix}--${ObjectUtilities.kebabCase(
42
- currentVariant
43
- )}`]: true
42
+ [`${prefix}--${kebabCase(currentVariant)}`]:
43
+ true,
44
44
  }
45
45
  },
46
- {}
47
- )
46
+ {},
47
+ ),
48
48
  }
49
49
  } else {
50
50
  return {
51
51
  ...acc,
52
- [`${prefix}--${ObjectUtilities.kebabCase(k)}`]:
53
- _modifier
52
+ [`${prefix}--${kebabCase(item)}`]: _modifier,
54
53
  }
55
54
  }
56
55
  }, baseCssClass) || {}
@@ -58,7 +57,7 @@ export function useBemModifiers(prefix: string, modifiers: IBemModifiers) {
58
57
  })
59
58
 
60
59
  return {
61
- bemCssClasses
60
+ bemCssClasses,
62
61
  }
63
62
  }
64
63
 
@@ -67,7 +66,7 @@ export function toBem(prefix: string, modifiers: IBemModifiers) {
67
66
 
68
67
  return (
69
68
  Object.keys(modifiers).reduce((acc, k) => {
70
- const _modifier = unref(modifiers[k] as Ref<any>) || false
69
+ const _modifier = unref(modifiers[k] as Ref<unknown>) || false
71
70
 
72
71
  if (!_modifier) return acc
73
72
 
@@ -81,18 +80,17 @@ export function toBem(prefix: string, modifiers: IBemModifiers) {
81
80
  (accVariant: object, currentVariant: string) => {
82
81
  return {
83
82
  ...accVariant,
84
- [`${prefix}--${ObjectUtilities.kebabCase(
85
- currentVariant
86
- )}`]: true
83
+ [`${prefix}--${kebabCase(currentVariant)}`]:
84
+ true,
87
85
  }
88
86
  },
89
- {}
90
- )
87
+ {},
88
+ ),
91
89
  }
92
90
  } else {
93
91
  return {
94
92
  ...acc,
95
- [`${prefix}--${ObjectUtilities.kebabCase(k)}`]: _modifier
93
+ [`${prefix}--${kebabCase(k)}`]: _modifier,
96
94
  }
97
95
  }
98
96
  }, baseCssClass) || {}
@@ -0,0 +1,31 @@
1
+ import { toRefs } from 'vue'
2
+ import type { Option } from '@/types/generic'
3
+
4
+ // eslint-disable-next-line
5
+ export function useOptions(props: any) {
6
+ const { options, labelKey, valueKey } = toRefs(props)
7
+
8
+ // eslint-disable-next-line
9
+ const getOptionLabel = (option: string | Option) => {
10
+ if (typeof option !== 'object' && option !== null) return option
11
+
12
+ return typeof labelKey.value === 'function'
13
+ ? labelKey.value(option)
14
+ : option[labelKey.value]
15
+ }
16
+
17
+ // eslint-disable-next-line
18
+ const getOptionValue = (option: any) => {
19
+ if (typeof option !== 'object' && option !== null) return option
20
+
21
+ return typeof valueKey.value === 'function'
22
+ ? valueKey.value(option)
23
+ : option[valueKey.value]
24
+ }
25
+
26
+ return {
27
+ options,
28
+ getOptionLabel,
29
+ getOptionValue,
30
+ }
31
+ }
@@ -0,0 +1,57 @@
1
+ import { computed, unref, type Ref } from 'vue'
2
+
3
+ export function useTextCount(
4
+ text: Ref<string | undefined | null> | string,
5
+ options?: {
6
+ mode?: string | boolean
7
+ upperLimit?: number
8
+ lowerLimit?: number
9
+ },
10
+ ) {
11
+ const length = computed(() => {
12
+ return (unref(text) ?? '').length
13
+ })
14
+
15
+ const gap = computed(() => {
16
+ if (
17
+ options?.lowerLimit !== undefined &&
18
+ length.value < options?.lowerLimit
19
+ ) {
20
+ return length.value - options.lowerLimit
21
+ }
22
+ if (
23
+ options?.upperLimit !== undefined &&
24
+ length.value < options?.upperLimit
25
+ ) {
26
+ return options.upperLimit - length.value
27
+ }
28
+ return 0
29
+ })
30
+
31
+ const formatted = computed(() => {
32
+ if (options?.mode === false) {
33
+ return ''
34
+ }
35
+
36
+ if (options?.mode === 'limit') {
37
+ return `${length.value} / ${
38
+ options.lowerLimit ? `${options.lowerLimit}-` : ''
39
+ }${options.upperLimit}`
40
+ }
41
+
42
+ if (options?.mode === 'countdown') {
43
+ if (gap.value === 0) {
44
+ return undefined
45
+ }
46
+ return gap
47
+ }
48
+
49
+ return length.value
50
+ })
51
+
52
+ return {
53
+ length,
54
+ gap,
55
+ formatted,
56
+ }
57
+ }
package/src/constants.ts CHANGED
@@ -1,7 +1,5 @@
1
- export const VV_BUTTON_GROUP = Symbol('VV_BUTTON_GROUP')
2
-
3
- export const VV_RADIO_GROUP = Symbol('VV_RADIO_GROUP')
4
-
5
- export const VV_CHECK_GROUP = Symbol('VV_CHECK_GROUP')
6
-
7
- export const VV_ACCORDION_GROUP = Symbol('VV_ACCORDION_GROUP')
1
+ // Symbol not working after transpiling
2
+ export const VV_BUTTON_GROUP = 'VV_BUTTON_GROUP'
3
+ export const VV_RADIO_GROUP = 'VV_RADIO_GROUP'
4
+ export const VV_CHECK_GROUP = 'VV_CHECK_GROUP'
5
+ export const VV_ACCORDION_GROUP = 'VV_ACCORDION_GROUP'
File without changes
package/src/icons.ts ADDED
@@ -0,0 +1,7 @@
1
+ import normal from './assets/icons/normal.json'
2
+ import detailed from './assets/icons/detailed.json'
3
+ import simple from './assets/icons/simple.json'
4
+
5
+ export default [normal, detailed, simple]
6
+
7
+ export { normal }
package/src/index.ts CHANGED
@@ -1,7 +1,14 @@
1
+ import VolverPlugin from './Volver'
2
+ import type { Volver } from './Volver'
3
+
1
4
  // export all components as vue plugin
2
- export * from './components'
5
+ export * from './components/index'
6
+ export { VolverPlugin }
3
7
 
4
- // export IconifyJSON default icons
5
- export { default as iconsSimple } from './assets/icons/simple.json'
6
- export { default as iconsNormal } from './assets/icons/normal.json'
7
- export { default as iconsDetailed } from './assets/icons/detailed.json'
8
+ // https://vuejs.org/guide/typescript/options-api.html#augmenting-global-properties
9
+ // Add custom property and extend vue type definition
10
+ declare module 'vue' {
11
+ interface ComponentCustomProperties {
12
+ $ds?: typeof Volver.prototype
13
+ }
14
+ }
@@ -1,84 +1,234 @@
1
+ import type { PropType } from 'vue'
2
+ import type { Option } from '@/types/generic'
3
+
1
4
  export const ValidProps = {
2
5
  valid: Boolean,
3
- validLabel: [String, Array]
6
+ validLabel: [String, Array],
4
7
  }
5
8
 
6
- export const ErrorProps = {
7
- error: Boolean,
8
- errorLabel: [String, Array]
9
+ export const InvalidProps = {
10
+ invalid: Boolean,
11
+ invalidLabel: [String, Array],
9
12
  }
10
13
 
11
14
  export const LoadingProps = {
12
15
  loading: Boolean,
13
- loadingLabel: String
16
+ loadingLabel: String,
14
17
  }
15
18
 
16
19
  export const DisabledProps = {
17
- disabled: Boolean
20
+ /**
21
+ * Whether the form control is disabled
22
+ */
23
+ disabled: Boolean,
18
24
  }
19
25
 
20
26
  export const ReadonlyProps = {
21
- readonly: Boolean
27
+ /**
28
+ * The value is not editable
29
+ */
30
+ readonly: Boolean,
22
31
  }
23
32
 
24
33
  export const ModifiersProps = {
25
- modifiers: [String, Array]
34
+ /**
35
+ * Component BEM modifiers
36
+ */
37
+ modifiers: [String, Array] as PropType<string | Array<string>>,
26
38
  }
27
39
 
28
40
  export const HintProps = {
29
- hintLabel: { type: String, default: '' }
41
+ hintLabel: { type: String, default: '' },
30
42
  }
31
43
 
32
44
  export const OptionsProps = {
33
45
  /**
34
- * Lista delle radio options
46
+ * List of options, can be string[] or object[]
35
47
  */
36
- options: { type: Array, default: () => [] },
48
+ options: {
49
+ type: Array as PropType<Array<Option | string>>,
50
+ default: () => [],
51
+ },
37
52
  /**
38
- * Se options è un array di oggetti, optionLabel = nome del campo da utilizzare come label oppure una funzione per ricavare la label
53
+ * Used when options are objects: key to use for option label
39
54
  */
40
- optionLabel: { type: [String, Function], default: () => 'label' },
55
+ labelKey: { type: [String, Function], default: 'label' },
41
56
  /**
42
- * Se options è un array di oggetti, optionValue = nome del campo da utilizzare come value oppure una funzione per ricavare il value
57
+ * Used when options are objects: key to use for option label
43
58
  */
44
- optionValue: { type: [String, Function], default: () => 'value' }
59
+ valueKey: { type: [String, Function], default: 'value' },
45
60
  }
46
61
 
47
- export const LimitProps = {
62
+ export const CountProps = {
48
63
  /**
49
- * Conteggio caratteri
50
- * @description
51
- * Se false, non mostrare il conteggio caratteri
52
- * Se true, mostra quanti caratteri ho digitato sin ora e qualì'è la maxlength.
53
- * Se true e maxlength > 0, mostra quanti caratteri ho digitato sin ora e qualì'è la maxlength.
54
- * Se "countdown", mostra quanti caratteri mancano per raggiungere la maxlength.
64
+ * Show character limit
55
65
  */
56
- limit: {
66
+ count: {
57
67
  type: [Boolean, String],
58
68
  default: false,
59
- validator: (value: string) => [true, false, 'countdown'].includes(value)
60
- }
69
+ validator: (value: string) =>
70
+ [true, false, 'limit', 'countdown'].includes(value),
71
+ },
72
+ }
73
+
74
+ export const DebounceProps = {
75
+ /**
76
+ * Milliseconds to wait before emitting the input event
77
+ */
78
+ debounce: [Number, String],
61
79
  }
62
80
 
63
- export const InputProps = {
64
- id: String,
81
+ export const ICON_POSITIONS = {
82
+ LEFT: 'left',
83
+ RIGHT: 'right',
84
+ } as const
85
+ export type IconPosition = ValueOf<typeof ICON_POSITIONS>
86
+
87
+ export const IconProps = {
88
+ /**
89
+ * VvIcon name or props
90
+ * @see VVIcon
91
+ */
92
+ icon: { type: [String, Object] },
93
+ /**
94
+ * VvIcon position
95
+ */
96
+ iconPosition: {
97
+ type: String as PropType<IconPosition>,
98
+ validation: (value: IconPosition) =>
99
+ Object.values(ICON_POSITIONS).includes(value),
100
+ default: ICON_POSITIONS.RIGHT,
101
+ },
102
+ }
103
+
104
+ export const TabindexProps = {
105
+ /**
106
+ * Global attribute tabindex
107
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex
108
+ */
109
+ tabindex: { type: [String, Number], default: 0 },
110
+ }
111
+
112
+ export const IdNameProps = {
113
+ /**
114
+ * Global attribute id
115
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id
116
+ */
117
+ id: [String, Number],
118
+ /**
119
+ * Input / Textarea name
120
+ * Name of the form control. Submitted with the form as part of a name/value pair
121
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#name
122
+ */
65
123
  name: { type: String, required: true },
66
- autocomplete: { type: String, default: 'off' },
124
+ }
125
+
126
+ export const InputTextareaProps = {
127
+ ...IdNameProps,
128
+ ...TabindexProps,
129
+ ...DisabledProps,
130
+ ...ReadonlyProps,
131
+ ...ValidProps,
132
+ ...InvalidProps,
133
+ ...HintProps,
134
+ ...LoadingProps,
135
+ ...ModifiersProps,
136
+ ...CountProps,
137
+ ...DebounceProps,
138
+ ...IconProps,
139
+ /**
140
+ * Global attribute autofocus
141
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus
142
+ */
67
143
  autofocus: Boolean,
144
+ /**
145
+ * Input / Textarea autocomplete
146
+ * Hint for for autofill feature
147
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#autocomplete
148
+ */
149
+ autocomplete: { type: String, default: 'off' },
150
+ /**
151
+ * Input / Textarea minlength
152
+ * Minimum length (number of characters) of value
153
+ * Available for input types: text, search, url, tel, email, password
154
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#minlength
155
+ */
68
156
  minlength: Number,
157
+ /**
158
+ * Input / Textarea maxlength
159
+ * Maximum length (number of characters) of value
160
+ * Available for input types: text, search, url, tel, email, password
161
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#maxlength
162
+ */
69
163
  maxlength: Number,
70
- label: String,
164
+ /**
165
+ * Input / Textarea placeholder
166
+ * Text that appears in the form control when it has no value set
167
+ * Available for input types: text, search, url, tel, email, password, number
168
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#placeholder
169
+ */
71
170
  placeholder: String,
171
+ /**
172
+ * Input / Textarea required
173
+ * A value is required or must be check for the form to be submittable
174
+ * Available for all input types except color
175
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#required
176
+ */
72
177
  required: Boolean,
73
- disabled: Boolean,
74
- readonly: Boolean
178
+ /**
179
+ * <label> value for the Input / Textarea
180
+ */
181
+ label: String,
182
+ /**
183
+ * If true the label will be floating
184
+ */
185
+ floating: Boolean,
75
186
  }
76
187
 
77
- export const DebounceProps = {
188
+ export const CheckboxRadioProps = {
189
+ ...IdNameProps,
190
+ ...TabindexProps,
191
+ ...ValidProps,
192
+ ...InvalidProps,
193
+ ...HintProps,
194
+ ...DisabledProps,
195
+ ...ReadonlyProps,
196
+ /**
197
+ * Input value
198
+ * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#value
199
+ */
200
+ value: [String, Number, Boolean],
201
+ /**
202
+ * Input value
203
+ */
204
+ modelValue: [Object, Number, Boolean, String],
205
+ /**
206
+ * <label> for input
207
+ */
208
+ label: String,
209
+ }
210
+
211
+ export const CheckboxRadioGroupProps = {
212
+ ...ValidProps,
213
+ ...InvalidProps,
214
+ ...OptionsProps,
215
+ ...HintProps,
216
+ ...DisabledProps,
217
+ ...ReadonlyProps,
218
+ /**
219
+ * Input value
220
+ */
221
+ modelValue: [String, Array],
222
+ /**
223
+ * Input label
224
+ */
225
+ label: String,
226
+ /**
227
+ * Input name
228
+ */
229
+ name: { type: String, required: true },
78
230
  /**
79
- * Debounce time (millisecondi)
80
- * @descrition
81
- * Tempo che deve passare dall'ultima battuta prima che modelValue venga aggiornato.
231
+ * If true, the group will be displayed in a vertical column
82
232
  */
83
- debounce: Number
233
+ vertical: Boolean,
84
234
  }