@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,91 +1,93 @@
1
+ <script lang="ts">
2
+ export default {
3
+ name: 'VvDialog',
4
+ }
5
+ </script>
6
+
7
+ <script setup lang="ts">
8
+ import { type DialogHTMLAttributes, computed, ref } from 'vue'
9
+ import { useVModel, onClickOutside } from '@vueuse/core'
10
+ import VvIcon from '@/components/VvIcon/VvIcon.vue'
11
+ import { VvDialogEvents, VvDialogProps } from '@/components/VvDialog'
12
+
13
+ // props, emit
14
+ const props = defineProps(VvDialogProps)
15
+ const emit = defineEmits(VvDialogEvents)
16
+
17
+ // data
18
+ const show = useVModel(props, 'modelValue', emit)
19
+ const htmlAttrIsOpen = ref(true)
20
+
21
+ // template ref
22
+ const modalWrapper = ref(null)
23
+
24
+ // styles
25
+ const dialogAttrs = computed(() => {
26
+ const { id } = props
27
+ return {
28
+ id,
29
+ open: htmlAttrIsOpen.value,
30
+ } as DialogHTMLAttributes
31
+ })
32
+ const dialogClass = computed(() => {
33
+ if (!props.size) {
34
+ return 'vv-dialog'
35
+ }
36
+ return ['vv-dialog', `vv-dialog--${props.size}`]
37
+ })
38
+
39
+ // transitions
40
+ const transitioName = computed(() => `vv-dialog--${props.transition}`)
41
+ const dialogTransitionHandlers = {
42
+ 'before-enter': () => {
43
+ htmlAttrIsOpen.value = true
44
+ emit('open')
45
+ },
46
+ 'after-leave': () => {
47
+ htmlAttrIsOpen.value = false
48
+ emit('close')
49
+ },
50
+ }
51
+
52
+ // methods
53
+ onClickOutside(modalWrapper, () => {
54
+ if (props.autoClose) {
55
+ show.value = false
56
+ }
57
+ })
58
+
59
+ function closeDialog() {
60
+ show.value = false
61
+ }
62
+ </script>
63
+
1
64
  <template>
2
65
  <Transition :name="transitioName" v-on="dialogTransitionHandlers">
3
- <dialog v-show="openDialog" v-bind="dialogAttrs" :class="dialogClass">
66
+ <dialog v-show="show" v-bind="dialogAttrs" :class="dialogClass">
4
67
  <article ref="modalWrapper" class="vv-dialog__wrapper">
5
68
  <header v-if="$slots.header || title" class="vv-dialog__header">
69
+ <!-- @slot Header slot -->
6
70
  <slot name="header">
7
71
  {{ title }}
8
72
  <button
9
73
  type="button"
10
74
  aria-label="Close"
11
75
  class="vv-dialog__close"
12
- @click.prevent="closeDialog">
76
+ @click.prevent="closeDialog"
77
+ >
13
78
  <vv-icon name="close" />
14
79
  </button>
15
80
  </slot>
16
81
  </header>
17
82
  <div class="vv-dialog__content">
18
- <!-- @slot default -->
83
+ <!-- @slot Content slot -->
19
84
  <slot />
20
85
  </div>
21
86
  <footer v-if="$slots.footer" class="vv-dialog__footer">
87
+ <!-- @slot Footer slot -->
22
88
  <slot name="footer" />
23
89
  </footer>
24
90
  </article>
25
91
  </dialog>
26
92
  </Transition>
27
93
  </template>
28
-
29
- <script setup lang="ts">
30
- import type { DialogHTMLAttributes } from 'vue'
31
-
32
- import { computed, ref } from 'vue'
33
- import { useVModel, onClickOutside } from '@vueuse/core'
34
- import { VvDialogEvents, VvDialogProps } from './VvDialog'
35
-
36
- //Components
37
- import VvIcon from '../VvIcon/VvIcon.vue'
38
-
39
- //Constants
40
- import { VV_DIALOG_SIZES } from './constants'
41
-
42
- //Props, emits, slots, attrs
43
- const props = defineProps(VvDialogProps)
44
- const emit = defineEmits(VvDialogEvents)
45
-
46
- //Data
47
- const openDialog = useVModel(props, 'open', emit)
48
- const htmlAttrIsOpen = ref(true)
49
-
50
- //Template reference
51
- const modalWrapper = ref(null)
52
-
53
- //Style e binding
54
- const dialogAttrs = computed(() => {
55
- const { id } = props
56
- return {
57
- id,
58
- open: htmlAttrIsOpen.value
59
- } as DialogHTMLAttributes
60
- })
61
- const dialogClass = computed(() => {
62
- return {
63
- 'vv-dialog': true,
64
- 'vv-dialog--small': props.size === VV_DIALOG_SIZES.small,
65
- 'vv-dialog--fullscreen': props.size === VV_DIALOG_SIZES.fullscreen
66
- }
67
- })
68
-
69
- //Transitions
70
- const transitioName = computed(() => `vv-dialog--${props.transition}`)
71
- const dialogTransitionHandlers = {
72
- 'after-enter': () => {
73
- htmlAttrIsOpen.value = true
74
- emit('open')
75
- },
76
- 'after-leave': () => {
77
- htmlAttrIsOpen.value = false
78
- emit('close')
79
- }
80
- }
81
-
82
- //Click outside
83
- onClickOutside(modalWrapper, () => {
84
- if (props.autoClose) openDialog.value = false
85
- })
86
-
87
- //Methods
88
- function closeDialog() {
89
- openDialog.value = false
90
- }
91
- </script>
@@ -0,0 +1,10 @@
1
+ export const VvDialogEvents = ['open', 'close', 'update:modelValue']
2
+
3
+ export const VvDialogProps = {
4
+ id: { type: String, required: true },
5
+ title: String,
6
+ modelValue: Boolean,
7
+ transition: { type: String, default: 'fade-block' },
8
+ size: String,
9
+ autoClose: { type: Boolean, default: true },
10
+ }
@@ -1,130 +1,128 @@
1
- <template>
2
- <ul :class="dropdownClasses" role="listbox">
3
- <li v-if="!options?.length">
4
- <label>
5
- {{ labelNoResult }}
6
- </label>
7
- </li>
8
- <li v-for="(option, index) in options" :key="index">
9
- <label :for="`dropdown-${index}-${id}`">
10
- <input
11
- :id="`dropdown-${index}-${id}`"
12
- :type="multiple ? 'checkbox' : 'radio'"
13
- :value="getValue(option)"
14
- :checked="isSelected(option)"
15
- :disabled="
16
- typeof option === 'object'
17
- ? option.disabled ?? disabled
18
- : disabled
19
- "
20
- @input="onInput" />
21
- {{ getLabel(option) }}
22
- </label>
23
- </li>
24
- </ul>
25
- </template>
1
+ <script lang="ts">
2
+ export default {
3
+ name: 'VvDropdown',
4
+ }
5
+ </script>
26
6
 
27
7
  <script setup lang="ts">
28
- import { toRefs } from 'vue'
29
- import { v4 as uuidv4 } from 'uuid'
30
- import { useBemModifiers } from '../../composables/useModifiers'
31
- import ObjectUtilities from '../../utils/ObjectUtilities'
32
- import { VvDropdownProps, type Option } from './VvDropdown'
8
+ import { toRefs } from 'vue'
9
+ import { nanoid } from 'nanoid'
10
+ import { useBemModifiers } from '@/composables/useModifiers'
11
+ import { useOptions } from '@/composables/useOptions'
12
+ import { contains, equals, removeFromList } from '@/utils/ObjectUtilities'
13
+ import { VvDropdownProps } from '@/components/VvDropdown'
14
+ import type { Option } from '@/types/generic'
15
+
16
+ // props, emit
17
+ const props = defineProps(VvDropdownProps)
18
+ const emit = defineEmits(['update:modelValue'])
33
19
 
34
- const props = defineProps(VvDropdownProps)
35
- const emit = defineEmits(['update:modelValue'])
20
+ // data
21
+ const id = nanoid()
22
+ const { modifiers, disabled } = toRefs(props)
36
23
 
37
- // data
38
- const id = uuidv4()
39
- const { modifiers, disabled } = toRefs(props)
24
+ // options
25
+ const { getOptionLabel, getOptionValue } = useOptions(props)
40
26
 
41
- //Styles & css classes modifiers
42
- const { bemCssClasses: dropdownClasses } = useBemModifiers('vv-dropdown', {
43
- modifiers,
44
- disabled
45
- })
27
+ // styles
28
+ const { bemCssClasses: dropdownClasses } = useBemModifiers('vv-dropdown', {
29
+ modifiers,
30
+ disabled,
31
+ })
46
32
 
47
- /**
48
- * Check if an option exist into modelValue array (multiple) or is equal to modelValue (single)
49
- * @param {String | Option} option
50
- */
51
- function isSelected(option: string | Option) {
52
- if (Array.isArray(props.modelValue)) {
53
- // check if contain whole option or option value
33
+ /**
34
+ * Check if an option exist into modelValue array (multiple) or is equal to modelValue (single)
35
+ * @param {String | Option} option
36
+ */
37
+ function getChecked(option: string | Option) {
38
+ if (Array.isArray(props.modelValue)) {
39
+ // check if contain whole option or option value
40
+ return (
41
+ contains(option, props.modelValue) ||
42
+ contains(getOptionValue(option), props.modelValue)
43
+ )
44
+ }
45
+ // check if modelValue is equal to option or option value
54
46
  return (
55
- ObjectUtilities.contains(option, props.modelValue) ||
56
- ObjectUtilities.contains(getValue(option), props.modelValue)
47
+ equals(option, props.modelValue) ||
48
+ equals(getOptionValue(option), props.modelValue)
57
49
  )
58
50
  }
59
- // check if modelValue is equal to option or option value
60
- return (
61
- ObjectUtilities.equals(option, props.modelValue) ||
62
- ObjectUtilities.equals(getValue(option), props.modelValue)
63
- )
64
- }
65
-
66
- /**
67
- * Retrieve the option value based on prop "valueKey" or the option if it is a string
68
- * @param {String | Option} option
69
- */
70
- function getValue(option: string | Option) {
71
- return typeof option === 'string' ? option : String(option[props.valueKey])
72
- }
73
-
74
- /**
75
- * Retrieve the option label based on prop "labelKey" or the option if it is a string
76
- * @param {String | Option} option
77
- */
78
- function getLabel(option: string | Option) {
79
- return typeof option === 'string' ? option : option[props.labelKey]
80
- }
81
51
 
82
- /**
83
- * Function triggered on input of checkbox or radio (multple or single mode)
84
- * @param event on input event (checkbox or radio input)
85
- */
86
- function onInput(event: Event) {
87
- const target = event.target as HTMLInputElement
88
-
89
- // Value initialized with string input value
90
- // Can be an Array of string or an Option or Array of Options
91
- let value: string | string[] | Option | Option[] = target.value
92
- // Find option object if useObject prop is true and options are objects
93
- const valueObject = props.useObject
94
- ? props.options?.find(
95
- (option) => (option as Option)[props.valueKey] == value
96
- )
97
- : null
52
+ /**
53
+ * Retrieve the disabled state of an option based on prop "disabled" or the disabled attribute
54
+ * @param {String | Option} option
55
+ */
56
+ function getDisabled(option: string | Option): boolean {
57
+ if (typeof option === 'string' || option.disabled === undefined) {
58
+ return disabled.value
59
+ }
60
+ return option.disabled
61
+ }
98
62
 
99
- // use valueObject if exist or the target value
100
- value = valueObject || value
63
+ /**
64
+ * Function triggered on input of checkbox or radio (multple or single mode)
65
+ * @param event on input event (checkbox or radio input)
66
+ */
67
+ function onInput(value: string | Option) {
68
+ if (props.disabled) {
69
+ return
70
+ }
101
71
 
102
- // Check multiple prop, override value with array and remove or add the value
103
- if (props.multiple) {
104
- // check maxValues prop and block check new values
105
- if (
106
- typeof props.maxValues !== 'undefined' &&
107
- props.maxValues >= 0 &&
108
- props.modelValue?.length >= props.maxValues
109
- ) {
110
- if (
111
- (Array.isArray(props.modelValue) &&
112
- !ObjectUtilities.contains(value, props.modelValue)) ||
113
- props.maxValues == 0
114
- ) {
115
- target.checked = false
116
- // maxValues reached
117
- return
72
+ let toReturn: string | string[] | Option | Option[] = value
73
+ // Check multiple prop, override value with array and remove or add the value
74
+ if (props.multiple) {
75
+ // check maxValues prop and block check new values
76
+ if (Array.isArray(props.modelValue)) {
77
+ if (
78
+ props.maxValues !== undefined &&
79
+ props.maxValues >= 0 &&
80
+ props.modelValue?.length >= props.maxValues
81
+ ) {
82
+ if (!contains(value, props.modelValue)) {
83
+ // maxValues reached
84
+ return
85
+ }
86
+ }
87
+ toReturn = contains(value, props.modelValue)
88
+ ? removeFromList(value, props.modelValue)
89
+ : [...props.modelValue, value]
90
+ } else {
91
+ toReturn = [value as Option]
118
92
  }
119
93
  }
120
- if (Array.isArray(props.modelValue)) {
121
- value = ObjectUtilities.contains(value, props.modelValue)
122
- ? ObjectUtilities.removeFromList(value, props.modelValue)
123
- : [...props.modelValue, value]
124
- } else {
125
- value = [value]
126
- }
94
+ emit('update:modelValue', toReturn)
127
95
  }
128
- emit('update:modelValue', value)
129
- }
130
96
  </script>
97
+
98
+ <template>
99
+ <ul :class="dropdownClasses" role="listbox">
100
+ <li v-if="!options?.length" role="option">
101
+ <label>
102
+ {{ labelNoResults }}
103
+ </label>
104
+ </li>
105
+ <li
106
+ v-for="(option, index) in options"
107
+ :key="index"
108
+ role="option"
109
+ :aria-selected="getChecked(option)"
110
+ >
111
+ <label
112
+ :for="`dropdown-${index}-${id}`"
113
+ @click.prevent="onInput(getOptionValue(option))"
114
+ >
115
+ <input
116
+ :id="`dropdown-${index}-${id}`"
117
+ :type="multiple ? 'checkbox' : 'radio'"
118
+ :value="getOptionValue(option)"
119
+ :checked="getChecked(option)"
120
+ :disabled="getDisabled(option)"
121
+ tabindex="-1"
122
+ aria-hidden="true"
123
+ />
124
+ {{ getOptionLabel(option) }}
125
+ </label>
126
+ </li>
127
+ </ul>
128
+ </template>
@@ -0,0 +1,25 @@
1
+ import { DisabledProps, ModifiersProps, OptionsProps } from '@/props'
2
+
3
+ export const VvDropdownProps = {
4
+ ...OptionsProps,
5
+ ...DisabledProps,
6
+ ...ModifiersProps,
7
+ /**
8
+ * modelValue can be a string, number, boolean, object or array of string, number, boolean, object
9
+ */
10
+ modelValue: {
11
+ type: [String, Number, Boolean, Object, Array],
12
+ },
13
+ /**
14
+ * Label of "no results" options
15
+ */
16
+ labelNoResults: { type: String, default: 'No results' },
17
+ /**
18
+ * Manage modelValue as string[] or object[]
19
+ */
20
+ multiple: Boolean,
21
+ /**
22
+ * The max number of selected values
23
+ */
24
+ maxValues: [Number, String],
25
+ }
@@ -0,0 +1,64 @@
1
+ # VvIcon
2
+
3
+ VvIcon use [Iconify](https://iconify.design/) library and [Iconify Vue Component](https://docs.iconify.design/icon-components/vue/) under the hood.
4
+
5
+ ## Props
6
+
7
+ `VvIcon` provide `name`, `provider` and `prefix` props.
8
+ Only `name` is required because the default provider is `vv` and the default `prefix` is `normal`.
9
+
10
+ ## Custom icons
11
+
12
+ `@volverjs/ui-vue` has the node bin script `generate-icons` to create the [IconifyJSON](https://docs.iconify.design/types/iconify-json.html) objects.
13
+ This function for input params has the source path to the icons folder and the destination path for output json files.
14
+
15
+ ```bash
16
+ generate-icons --srcPath=assets/icons --destPath=src/assets/icons
17
+ ```
18
+
19
+ The source path can have subfolders. In this case the folder name will be the iconify [prefix](https://docs.iconify.design/icon-components/vue/#icon) and all the children SVG icons will be the icons `name`.
20
+ The `api-provider` is `@vv` by default, you can change it in plugin options.
21
+
22
+ ![iconify name structure](../../../.storybook/static/iconify-name-structure.png)
23
+
24
+ For example, if you have the following folders:
25
+
26
+ ```
27
+ assets/icons/simple/*.svg
28
+ assets/icons/normal/*.svg
29
+ assets/icons/detailed/*.svg
30
+ ```
31
+
32
+ The script `generate-icons --srcPath=assets/icons` will generate three json files: `simple.json`, `normal.json` and `detailed.json`.
33
+ Each file contains the icons with the `@vv` provider and the prefix `simple`, `normal` and `detailed` respectively.
34
+
35
+ ```
36
+ @vv:simple:{fileName}
37
+ @vv:normal:{fileName}
38
+ @vv:detailed:{fileName}
39
+ ```
40
+
41
+ ### Example
42
+
43
+ Put the SVG files inside a folder (ex. `assets/icons/custom/*.svg`).
44
+ Launch the script `generate-icons --srcPath=assets/icons/custom` to generate the `custom.json` file. Import the `custom.json` file in your `main.ts` file and add it to the `iconsCollections` array.
45
+
46
+ ```typescript
47
+ import customIcons from '@/assets/icons/custom.json'
48
+
49
+ app.use(VolverPlugin, {
50
+ iconsCollections: [customIcons]
51
+ })
52
+ ```
53
+
54
+ Now you can use the icons in your templates with the `prefix` prop.
55
+
56
+ ```html
57
+ <vv-icon name="iconName" prefix="custom" />
58
+ ```
59
+
60
+ Or using the `@vv:custom:{iconName}` syntax.
61
+
62
+ ```html
63
+ <vv-icon name="custom:{iconName}" />
64
+ ```