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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +101 -7
  3. package/bin/icons.cjs +73 -0
  4. package/bin/icons.js +75 -0
  5. package/dist/{DesignSystem.d.ts → Volver.d.ts} +22 -18
  6. package/dist/components/VvAccordion/VvAccordion.es.js +165 -0
  7. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -0
  8. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +32 -97
  9. package/dist/components/VvAccordion/index.d.ts +46 -0
  10. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +243 -0
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -0
  12. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +77 -151
  13. package/dist/components/VvAccordionGroup/{VvAccordionGroup.d.ts → index.d.ts} +30 -13
  14. package/dist/components/VvBadge/VvBadge.es.js +62 -0
  15. package/dist/components/VvBadge/VvBadge.umd.js +1 -0
  16. package/dist/components/VvBadge/VvBadge.vue.d.ts +13 -54
  17. package/dist/components/VvBadge/{VvBadge.d.ts → index.d.ts} +1 -1
  18. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +93 -0
  19. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -0
  20. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +33 -107
  21. package/dist/components/VvBreadcrumb/{VvBreadcrumb.d.ts → index.d.ts} +2 -3
  22. package/dist/components/VvButton/VvButton.es.js +427 -0
  23. package/dist/components/VvButton/VvButton.umd.js +1 -0
  24. package/dist/components/VvButton/VvButton.vue.d.ts +108 -199
  25. package/dist/components/VvButton/index.d.ts +132 -0
  26. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +108 -0
  27. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -0
  28. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +89 -183
  29. package/dist/components/VvButtonGroup/index.d.ts +54 -0
  30. package/dist/components/VvCard/VvCard.es.js +77 -0
  31. package/dist/components/VvCard/VvCard.umd.js +1 -0
  32. package/dist/components/VvCard/VvCard.vue.d.ts +16 -61
  33. package/dist/components/VvCard/{VvCard.d.ts → index.d.ts} +1 -1
  34. package/dist/components/VvCheckbox/VvCheckbox.es.js +357 -0
  35. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -0
  36. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +74 -0
  37. package/dist/components/VvCheckbox/index.d.ts +54 -0
  38. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +435 -0
  39. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -0
  40. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +82 -0
  41. package/dist/components/VvCheckboxGroup/index.d.ts +32 -0
  42. package/dist/components/VvCombobox/VvCombobox.es.js +594 -0
  43. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -0
  44. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +153 -0
  45. package/dist/components/{VvSelect/VvSelect.d.ts → VvCombobox/index.d.ts} +33 -36
  46. package/dist/components/VvDialog/VvDialog.es.js +200 -0
  47. package/dist/components/VvDialog/VvDialog.umd.js +1 -0
  48. package/dist/components/VvDialog/VvDialog.vue.d.ts +28 -132
  49. package/dist/components/VvDialog/{VvDialog.d.ts → index.d.ts} +2 -6
  50. package/dist/components/VvDropdown/VvDropdown.es.js +218 -0
  51. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -0
  52. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +41 -147
  53. package/dist/components/VvDropdown/index.d.ts +37 -0
  54. package/dist/components/VvIcon/VvIcon.es.js +124 -0
  55. package/dist/components/VvIcon/VvIcon.umd.js +1 -0
  56. package/dist/components/VvIcon/VvIcon.vue.d.ts +36 -150
  57. package/dist/components/VvIcon/{VvIcon.d.ts → index.d.ts} +9 -0
  58. package/dist/components/VvInputText/VvInputClearAction.d.ts +36 -0
  59. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +56 -0
  60. package/dist/components/VvInputText/VvInputStepAction.d.ts +37 -0
  61. package/dist/components/VvInputText/VvInputText.es.js +764 -0
  62. package/dist/components/VvInputText/VvInputText.umd.js +1 -0
  63. package/dist/components/VvInputText/VvInputText.vue.d.ts +214 -256
  64. package/dist/components/VvInputText/VvInputTextActions.d.ts +3 -0
  65. package/dist/components/VvInputText/index.d.ts +182 -0
  66. package/dist/components/VvProgress/VvProgress.es.js +71 -0
  67. package/dist/components/VvProgress/VvProgress.umd.js +1 -0
  68. package/dist/components/VvProgress/VvProgress.vue.d.ts +20 -107
  69. package/dist/components/VvProgress/index.d.ts +30 -0
  70. package/dist/components/VvRadio/VvRadio.es.js +320 -0
  71. package/dist/components/VvRadio/VvRadio.umd.js +1 -0
  72. package/dist/components/VvRadio/VvRadio.vue.d.ts +55 -125
  73. package/dist/components/VvRadio/index.d.ts +40 -0
  74. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +398 -0
  75. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -0
  76. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +56 -238
  77. package/dist/components/VvRadioGroup/index.d.ts +32 -0
  78. package/dist/components/VvSelect/VvSelect.es.js +415 -0
  79. package/dist/components/VvSelect/VvSelect.umd.js +1 -0
  80. package/dist/components/VvSelect/VvSelect.vue.d.ts +112 -262
  81. package/dist/components/VvSelect/index.d.ts +96 -0
  82. package/dist/components/VvTextarea/VvTextarea.es.js +463 -0
  83. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -0
  84. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +147 -273
  85. package/dist/components/VvTextarea/index.d.ts +102 -0
  86. package/dist/components/common/HintSlot.d.ts +12 -6
  87. package/dist/components/index.d.ts +19 -12
  88. package/dist/components/index.es.js +2309 -0
  89. package/dist/components/index.umd.js +1 -0
  90. package/dist/composables/group/types/IAccordionGroupState.d.ts +3 -4
  91. package/dist/composables/group/types/IButtonGroupState.d.ts +5 -11
  92. package/dist/composables/group/types/IGroupState.d.ts +3 -6
  93. package/dist/composables/group/types/IInputGroup.d.ts +1 -4
  94. package/dist/composables/group/useInjectedGroupState.d.ts +4 -4
  95. package/dist/composables/group/useProvideGroupState.d.ts +2 -2
  96. package/dist/composables/useComponentFocus.d.ts +4 -0
  97. package/dist/composables/{icons/useComponentIcons.d.ts → useComponentIcons.d.ts} +8 -1
  98. package/dist/composables/useDebouncedInput.d.ts +2 -0
  99. package/dist/composables/useModifiers.d.ts +3 -2
  100. package/dist/composables/useOptions.d.ts +6 -0
  101. package/dist/composables/useTextCount.d.ts +10 -0
  102. package/dist/constants.d.ts +4 -4
  103. package/dist/icons.d.ts +1881 -0
  104. package/dist/icons.es.js +12 -14
  105. package/dist/icons.umd.js +1 -1
  106. package/dist/index.d.ts +9 -4
  107. package/dist/index.es.js +2350 -0
  108. package/dist/index.umd.js +1 -0
  109. package/dist/props/index.d.ts +322 -13
  110. package/dist/resolvers/unplugin.d.ts +27 -0
  111. package/dist/resolvers/unplugin.es.js +40 -0
  112. package/dist/resolvers/unplugin.umd.js +1 -0
  113. package/dist/stories/Accordion/Accordion.settings.d.ts +63 -0
  114. package/dist/stories/Accordion/Accordion.test.d.ts +2 -0
  115. package/dist/stories/AccordionGroup/AccordionGroup.settings.d.ts +58 -0
  116. package/dist/stories/AccordionGroup/AccordionGroup.test.d.ts +2 -0
  117. package/dist/stories/Badge/Badge.settings.d.ts +32 -0
  118. package/dist/stories/Badge/Badge.test.d.ts +2 -0
  119. package/dist/stories/Breadcrumb/Breadcrumb.settings.d.ts +29 -0
  120. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +2 -0
  121. package/dist/stories/Button/Button.settings.d.ts +200 -0
  122. package/dist/stories/Button/Button.test.d.ts +1 -10
  123. package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +38 -0
  124. package/dist/stories/ButtonGroup/ButtonGroup.test.d.ts +2 -0
  125. package/dist/stories/Card/Card.settings.d.ts +70 -0
  126. package/dist/stories/Card/Card.test.d.ts +2 -0
  127. package/dist/stories/Checkbox/Checkbox.settings.d.ts +165 -0
  128. package/dist/stories/Checkbox/Checkbox.test.d.ts +2 -0
  129. package/dist/stories/CheckboxGroup/CheckboxGroup.settings.d.ts +164 -0
  130. package/dist/stories/CheckboxGroup/CheckboxGroup.test.d.ts +2 -0
  131. package/dist/stories/Combobox/Combobox.settings.d.ts +267 -0
  132. package/dist/stories/Combobox/Combobox.test.d.ts +2 -0
  133. package/dist/stories/Dialog/Dialog.settings.d.ts +55 -0
  134. package/dist/stories/Dialog/Dialog.test.d.ts +2 -0
  135. package/dist/stories/Dropdown/Dropdown.settings.d.ts +75 -0
  136. package/dist/stories/Dropdown/Dropdown.test.d.ts +2 -0
  137. package/dist/stories/Icon/Icon.settings.d.ts +74 -0
  138. package/dist/stories/InputText/InputText.settings.d.ts +445 -0
  139. package/dist/stories/InputText/InputText.test.d.ts +2 -0
  140. package/dist/stories/Progress/Progress.settings.d.ts +38 -0
  141. package/dist/stories/Progress/Progress.test.d.ts +2 -0
  142. package/dist/stories/Radio/Radio.settings.d.ts +139 -0
  143. package/dist/stories/Radio/Radio.test.d.ts +2 -0
  144. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +164 -0
  145. package/dist/stories/RadioGroup/RadioGroup.test.d.ts +2 -0
  146. package/dist/stories/Select/Select.settings.d.ts +265 -0
  147. package/dist/stories/Select/Select.test.d.ts +2 -0
  148. package/dist/stories/Textarea/Textarea.settings.d.ts +336 -0
  149. package/dist/stories/Textarea/Textarea.test.d.ts +2 -0
  150. package/dist/stories/argTypes.d.ts +793 -0
  151. package/dist/test/expect.d.ts +3 -0
  152. package/dist/test/options.d.ts +1 -0
  153. package/dist/test/sleep.d.ts +1 -0
  154. package/dist/utils/ObjectUtilities.d.ts +82 -95
  155. package/env.d.ts +1 -0
  156. package/package.json +198 -124
  157. package/src/{DesignSystem.ts → Volver.ts} +57 -29
  158. package/src/assets/icons/detailed.json +1 -1
  159. package/src/assets/icons/normal.json +1 -1
  160. package/src/assets/icons/simple.json +1 -1
  161. package/src/components/VvAccordion/VvAccordion.vue +94 -78
  162. package/src/components/VvAccordion/index.ts +72 -0
  163. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +93 -53
  164. package/src/components/VvAccordionGroup/{VvAccordionGroup.ts → index.ts} +18 -14
  165. package/src/components/VvBadge/VvBadge.vue +17 -8
  166. package/src/components/VvBadge/index.ts +6 -0
  167. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +26 -24
  168. package/src/components/VvBreadcrumb/{VvBreadcrumb.ts → index.ts} +1 -2
  169. package/src/components/VvButton/VvButton.vue +174 -154
  170. package/src/components/VvButton/index.ts +171 -0
  171. package/src/components/VvButtonGroup/VvButtonGroup.vue +76 -48
  172. package/src/components/VvButtonGroup/index.ts +19 -0
  173. package/src/components/VvCard/VvCard.vue +20 -22
  174. package/src/components/VvCard/{VvCard.ts → index.ts} +1 -1
  175. package/src/components/VvCheckbox/VvCheckbox.vue +172 -0
  176. package/src/components/VvCheckbox/index.ts +60 -0
  177. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +85 -0
  178. package/src/components/VvCheckboxGroup/index.ts +5 -0
  179. package/src/components/VvCombobox/VvCombobox.vue +227 -0
  180. package/src/components/VvCombobox/index.ts +82 -0
  181. package/src/components/VvDialog/VvDialog.vue +69 -67
  182. package/src/components/VvDialog/index.ts +10 -0
  183. package/src/components/VvDropdown/VvDropdown.vue +112 -114
  184. package/src/components/VvDropdown/index.ts +25 -0
  185. package/src/components/VvIcon/README.md +64 -0
  186. package/src/components/VvIcon/VvIcon.vue +122 -107
  187. package/src/components/VvIcon/{VvIcon.ts → index.ts} +17 -8
  188. package/src/components/VvInputText/VvInputClearAction.ts +53 -0
  189. package/src/components/VvInputText/VvInputPasswordAction.ts +70 -0
  190. package/src/components/VvInputText/VvInputStepAction.ts +49 -0
  191. package/src/components/VvInputText/VvInputText.vue +293 -252
  192. package/src/components/VvInputText/VvInputTextActions.ts +100 -0
  193. package/src/components/VvInputText/index.ts +140 -0
  194. package/src/components/VvProgress/VvProgress.vue +29 -29
  195. package/src/components/VvProgress/index.ts +32 -0
  196. package/src/components/VvRadio/VvRadio.vue +90 -119
  197. package/src/components/VvRadio/index.ts +40 -0
  198. package/src/components/VvRadioGroup/VvRadioGroup.vue +76 -69
  199. package/src/components/VvRadioGroup/index.ts +5 -0
  200. package/src/components/VvSelect/VvSelect.vue +165 -186
  201. package/src/components/VvSelect/index.ts +74 -0
  202. package/src/components/VvTextarea/VvTextarea.vue +188 -180
  203. package/src/components/VvTextarea/index.ts +50 -0
  204. package/src/components/common/HintSlot.ts +169 -121
  205. package/src/components/index.ts +19 -12
  206. package/src/composables/group/types/IAccordionGroupState.ts +3 -4
  207. package/src/composables/group/types/IButtonGroupState.ts +5 -11
  208. package/src/composables/group/types/IGroupState.ts +4 -6
  209. package/src/composables/group/types/IInputGroup.ts +1 -4
  210. package/src/composables/group/useInjectedGroupState.ts +21 -33
  211. package/src/composables/group/useProvideGroupState.ts +5 -7
  212. package/src/composables/useComponentFocus.ts +17 -0
  213. package/src/composables/useComponentIcons.ts +96 -0
  214. package/src/composables/useDebouncedInput.ts +25 -0
  215. package/src/composables/useModifiers.ts +58 -14
  216. package/src/composables/useOptions.ts +31 -0
  217. package/src/composables/useTextCount.ts +57 -0
  218. package/src/constants.ts +5 -7
  219. package/src/directives/{.README → .gitkeep} +0 -0
  220. package/src/icons.ts +7 -0
  221. package/src/index.ts +12 -5
  222. package/src/props/index.ts +204 -15
  223. package/src/resolvers/unplugin.ts +103 -0
  224. package/src/shims.d.ts +13 -0
  225. package/src/stories/Accordion/Accordion.settings.ts +46 -0
  226. package/src/stories/Accordion/Accordion.stories.mdx +21 -21
  227. package/src/stories/Accordion/Accordion.test.ts +61 -0
  228. package/src/stories/Accordion/AccordionSlots.stories.mdx +46 -70
  229. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +55 -0
  230. package/src/stories/AccordionGroup/AccordionGroup.stories.mdx +24 -27
  231. package/src/stories/AccordionGroup/AccordionGroup.test.ts +50 -0
  232. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.mdx +56 -0
  233. package/src/stories/Badge/Badge.settings.ts +26 -0
  234. package/src/stories/Badge/Badge.stories.mdx +36 -24
  235. package/src/stories/Badge/Badge.test.ts +12 -0
  236. package/src/stories/Badge/BadgeSlots.stories.mdx +20 -0
  237. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +41 -0
  238. package/src/stories/Breadcrumb/Breadcrumb.stories.mdx +32 -29
  239. package/src/stories/Breadcrumb/Breadcrumb.test.ts +50 -0
  240. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.mdx +43 -0
  241. package/src/stories/Button/Button.settings.ts +150 -0
  242. package/src/stories/Button/Button.stories.mdx +20 -54
  243. package/src/stories/Button/Button.test.ts +35 -46
  244. package/src/stories/Button/ButtonIcon.stories.mdx +139 -29
  245. package/src/stories/Button/ButtonLink.stories.mdx +58 -111
  246. package/src/stories/Button/ButtonLoading.stories.mdx +89 -62
  247. package/src/stories/Button/ButtonModifiers.stories.mdx +198 -121
  248. package/src/stories/Button/ButtonSlots.stories.mdx +83 -95
  249. package/src/stories/Button/ButtonState.stories.mdx +75 -0
  250. package/src/stories/Button/ButtonToggle.stories.mdx +50 -0
  251. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +28 -0
  252. package/src/stories/ButtonGroup/ButtonGroup.stories.mdx +16 -18
  253. package/src/stories/ButtonGroup/ButtonGroup.test.ts +35 -0
  254. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.mdx +52 -0
  255. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.mdx +45 -114
  256. package/src/stories/Card/Card.settings.ts +55 -0
  257. package/src/stories/Card/Card.stories.mdx +27 -11
  258. package/src/stories/Card/Card.test.ts +23 -0
  259. package/src/stories/Card/CardSlots.stories.mdx +80 -24
  260. package/src/stories/Checkbox/Checkbox.settings.ts +43 -0
  261. package/src/stories/Checkbox/Checkbox.stories.mdx +163 -0
  262. package/src/stories/Checkbox/Checkbox.test.ts +81 -0
  263. package/src/stories/Checkbox/CheckboxBinary.stories.mdx +68 -0
  264. package/src/stories/Checkbox/CheckboxSlots.stories.mdx +46 -0
  265. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +15 -0
  266. package/src/stories/CheckboxGroup/CheckboxGroup.stories.mdx +134 -0
  267. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +83 -0
  268. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.mdx +100 -0
  269. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.mdx +67 -0
  270. package/src/stories/Combobox/Combobox.settings.ts +122 -0
  271. package/src/stories/Combobox/Combobox.stories.mdx +153 -0
  272. package/src/stories/Combobox/Combobox.test.ts +96 -0
  273. package/src/stories/Combobox/ComboboxMultiple.stories.mdx +74 -0
  274. package/src/stories/Combobox/ComboboxOptions.stories.mdx +100 -0
  275. package/src/stories/Combobox/ComboboxSlots.stories.mdx +48 -0
  276. package/src/stories/Dialog/Dialog.settings.ts +45 -0
  277. package/src/stories/Dialog/Dialog.stories.mdx +42 -16
  278. package/src/stories/Dialog/Dialog.test.ts +69 -0
  279. package/src/stories/Dialog/DialogSlots.stories.mdx +63 -0
  280. package/src/stories/Dropdown/Dropdown.settings.ts +42 -0
  281. package/src/stories/Dropdown/Dropdown.stories.mdx +85 -29
  282. package/src/stories/Dropdown/Dropdown.test.ts +43 -0
  283. package/src/stories/Dropdown/DropdownOptions.stories.mdx +87 -67
  284. package/src/stories/Icon/Icon.settings.ts +72 -0
  285. package/src/stories/Icon/Icon.stories.mdx +76 -59
  286. package/src/stories/Icon/IconsCollection.stories.mdx +68 -0
  287. package/src/stories/InputText/InputText.settings.ts +221 -0
  288. package/src/stories/InputText/InputText.stories.mdx +142 -69
  289. package/src/stories/InputText/InputText.test.ts +125 -0
  290. package/src/stories/InputText/InputTextIconPosition.stories.mdx +63 -16
  291. package/src/stories/InputText/InputTextLength.stories.mdx +110 -0
  292. package/src/stories/InputText/InputTextMinMax.stories.mdx +112 -0
  293. package/src/stories/InputText/InputTextSlots.stories.mdx +61 -22
  294. package/src/stories/InputText/InputTextType.stories.mdx +207 -29
  295. package/src/stories/Progress/Progress.settings.ts +33 -0
  296. package/src/stories/Progress/Progress.stories.mdx +12 -14
  297. package/src/stories/Progress/Progress.test.ts +9 -0
  298. package/src/stories/Radio/Radio.settings.ts +15 -0
  299. package/src/stories/Radio/Radio.stories.mdx +102 -42
  300. package/src/stories/Radio/Radio.test.ts +70 -0
  301. package/src/stories/Radio/RadioSlots.stories.mdx +39 -22
  302. package/src/stories/RadioGroup/RadioGroup.settings.ts +15 -0
  303. package/src/stories/RadioGroup/RadioGroup.stories.mdx +115 -54
  304. package/src/stories/RadioGroup/RadioGroup.test.ts +83 -0
  305. package/src/stories/RadioGroup/RadioGroupOptions.stories.mdx +83 -41
  306. package/src/stories/RadioGroup/RadioGroupSlots.stories.mdx +49 -144
  307. package/src/stories/Select/Select.settings.ts +100 -0
  308. package/src/stories/Select/Select.stories.mdx +113 -33
  309. package/src/stories/Select/Select.test.ts +82 -0
  310. package/src/stories/Select/SelectOptions.stories.mdx +91 -69
  311. package/src/stories/Select/SelectSlots.stories.mdx +48 -0
  312. package/src/stories/Textarea/Textarea.settings.ts +96 -0
  313. package/src/stories/Textarea/Textarea.stories.mdx +160 -58
  314. package/src/stories/Textarea/Textarea.test.ts +90 -0
  315. package/src/stories/Textarea/TextareaLength.stories.mdx +110 -0
  316. package/src/stories/Textarea/TextareaSlots.stories.mdx +61 -23
  317. package/src/stories/Textarea/TextareatIconPosition.stories.mdx +78 -0
  318. package/src/stories/argTypes.ts +433 -0
  319. package/src/test/expect.ts +27 -6
  320. package/src/test/options.ts +17 -0
  321. package/src/test/sleep.ts +2 -0
  322. package/src/test/types.d.ts +14 -0
  323. package/src/types/generic.d.ts +5 -0
  324. package/src/utils/ObjectUtilities.ts +253 -244
  325. package/dist/components/VvAccordion/VvAccordion.d.ts +0 -32
  326. package/dist/components/VvAccordion/useAccordionProps.d.ts +0 -16
  327. package/dist/components/VvAccordion/vv-accordion.es.js +0 -262
  328. package/dist/components/VvAccordion/vv-accordion.umd.js +0 -1
  329. package/dist/components/VvAccordionGroup/vv-accordion-group.es.js +0 -315
  330. package/dist/components/VvAccordionGroup/vv-accordion-group.umd.js +0 -1
  331. package/dist/components/VvBadge/vv-badge.es.js +0 -18
  332. package/dist/components/VvBadge/vv-badge.umd.js +0 -1
  333. package/dist/components/VvBreadcrumb/vv-breadcrumb.es.js +0 -206
  334. package/dist/components/VvBreadcrumb/vv-breadcrumb.umd.js +0 -1
  335. package/dist/components/VvButton/VvButton.d.ts +0 -115
  336. package/dist/components/VvButton/useButtonGroupProps.d.ts +0 -23
  337. package/dist/components/VvButton/vv-button.es.js +0 -424
  338. package/dist/components/VvButton/vv-button.umd.js +0 -1
  339. package/dist/components/VvButtonGroup/VvButtonGroup.d.ts +0 -57
  340. package/dist/components/VvButtonGroup/vv-button-group.es.js +0 -210
  341. package/dist/components/VvButtonGroup/vv-button-group.umd.js +0 -1
  342. package/dist/components/VvCard/vv-card.es.js +0 -188
  343. package/dist/components/VvCard/vv-card.umd.js +0 -1
  344. package/dist/components/VvCheck/VvCheck.d.ts +0 -47
  345. package/dist/components/VvCheck/VvCheck.vue.d.ts +0 -165
  346. package/dist/components/VvCheck/useCheckProps.d.ts +0 -16
  347. package/dist/components/VvCheck/vv-check.es.js +0 -321
  348. package/dist/components/VvCheck/vv-check.umd.js +0 -1
  349. package/dist/components/VvCheckGroup/VvCheckGroup.d.ts +0 -65
  350. package/dist/components/VvCheckGroup/VvCheckGroup.vue.d.ts +0 -272
  351. package/dist/components/VvCheckGroup/vv-check-group.es.js +0 -434
  352. package/dist/components/VvCheckGroup/vv-check-group.umd.js +0 -2
  353. package/dist/components/VvDialog/constants.d.ts +0 -5
  354. package/dist/components/VvDialog/vv-dialog.es.js +0 -315
  355. package/dist/components/VvDialog/vv-dialog.umd.js +0 -1
  356. package/dist/components/VvDropdown/VvDropdown.d.ts +0 -52
  357. package/dist/components/VvDropdown/vv-dropdown.es.js +0 -236
  358. package/dist/components/VvDropdown/vv-dropdown.umd.js +0 -1
  359. package/dist/components/VvIcon/vv-icon.es.js +0 -229
  360. package/dist/components/VvIcon/vv-icon.umd.js +0 -1
  361. package/dist/components/VvInputText/VvInputText.d.ts +0 -59
  362. package/dist/components/VvInputText/constants.d.ts +0 -55
  363. package/dist/components/VvInputText/useInputNumber.d.ts +0 -16
  364. package/dist/components/VvInputText/useInputPassword.d.ts +0 -16
  365. package/dist/components/VvInputText/vv-input-text.es.js +0 -596
  366. package/dist/components/VvInputText/vv-input-text.umd.js +0 -2
  367. package/dist/components/VvNativeSelect/VvNativeSelect.d.ts +0 -70
  368. package/dist/components/VvNativeSelect/VvNativeSelect.vue.d.ts +0 -228
  369. package/dist/components/VvNativeSelect/vv-native-select.es.js +0 -395
  370. package/dist/components/VvNativeSelect/vv-native-select.umd.js +0 -2
  371. package/dist/components/VvProgress/VvProgress.d.ts +0 -29
  372. package/dist/components/VvProgress/vv-progress.es.js +0 -185
  373. package/dist/components/VvProgress/vv-progress.umd.js +0 -1
  374. package/dist/components/VvRadio/VvRadio.d.ts +0 -22
  375. package/dist/components/VvRadio/useRadioProps.d.ts +0 -15
  376. package/dist/components/VvRadio/vv-radio.es.js +0 -309
  377. package/dist/components/VvRadio/vv-radio.umd.js +0 -1
  378. package/dist/components/VvRadioGroup/VvRadioGroup.d.ts +0 -54
  379. package/dist/components/VvRadioGroup/vv-radio-group.es.js +0 -423
  380. package/dist/components/VvRadioGroup/vv-radio-group.umd.js +0 -2
  381. package/dist/components/VvSelect/vv-select.es.js +0 -427
  382. package/dist/components/VvSelect/vv-select.umd.js +0 -2
  383. package/dist/components/VvTextarea/VvTextarea.d.ts +0 -67
  384. package/dist/components/VvTextarea/constants.d.ts +0 -19
  385. package/dist/components/VvTextarea/vv-textarea.es.js +0 -472
  386. package/dist/components/VvTextarea/vv-textarea.umd.js +0 -2
  387. package/dist/composables/focus/useComponentFocus.d.ts +0 -7
  388. package/dist/composables/options/useOptions.d.ts +0 -5
  389. package/dist/stories/Icon/IconList.vue.d.ts +0 -44
  390. package/dist/ui-vue.es.js +0 -2985
  391. package/dist/ui-vue.umd.js +0 -2
  392. package/src/assets/icons/index.js +0 -7
  393. package/src/components/VvAccordion/VvAccordion.ts +0 -34
  394. package/src/components/VvAccordion/useAccordionProps.ts +0 -45
  395. package/src/components/VvBadge/VvBadge.ts +0 -4
  396. package/src/components/VvButton/VvButton.ts +0 -117
  397. package/src/components/VvButton/useButtonGroupProps.ts +0 -51
  398. package/src/components/VvButtonGroup/VvButtonGroup.ts +0 -37
  399. package/src/components/VvCheck/VvCheck.ts +0 -48
  400. package/src/components/VvCheck/VvCheck.vue +0 -149
  401. package/src/components/VvCheck/useCheckProps.ts +0 -41
  402. package/src/components/VvCheckGroup/VvCheckGroup.ts +0 -34
  403. package/src/components/VvCheckGroup/VvCheckGroup.vue +0 -84
  404. package/src/components/VvDialog/VvDialog.ts +0 -17
  405. package/src/components/VvDialog/constants.ts +0 -5
  406. package/src/components/VvDropdown/VvDropdown.ts +0 -46
  407. package/src/components/VvInputText/VvInputText.ts +0 -49
  408. package/src/components/VvInputText/constants.ts +0 -34
  409. package/src/components/VvInputText/useInputNumber.ts +0 -40
  410. package/src/components/VvInputText/useInputPassword.ts +0 -38
  411. package/src/components/VvNativeSelect/VvNativeSelect.ts +0 -70
  412. package/src/components/VvNativeSelect/VvNativeSelect.vue +0 -106
  413. package/src/components/VvProgress/VvProgress.ts +0 -28
  414. package/src/components/VvRadio/VvRadio.ts +0 -25
  415. package/src/components/VvRadio/useRadioProps.ts +0 -40
  416. package/src/components/VvRadioGroup/VvRadioGroup.ts +0 -25
  417. package/src/components/VvSelect/VvSelect.ts +0 -91
  418. package/src/components/VvTextarea/VvTextarea.ts +0 -55
  419. package/src/components/VvTextarea/constants.ts +0 -14
  420. package/src/composables/focus/useComponentFocus.ts +0 -22
  421. package/src/composables/icons/useComponentIcons.ts +0 -52
  422. package/src/composables/options/useOptions.ts +0 -27
  423. package/src/stories/Accordion/AccordionBordered.stories.mdx +0 -26
  424. package/src/stories/Accordion/AccordionIconRight.stories.mdx +0 -32
  425. package/src/stories/Accordion/accordionTest.js +0 -36
  426. package/src/stories/AccordionGroup/Accordion.stories.mdx +0 -42
  427. package/src/stories/AccordionGroup/AccordionItems.stories.mdx +0 -51
  428. package/src/stories/AccordionGroup/accordionGroupTest.js +0 -51
  429. package/src/stories/Badge/BadgeColor.stories.mdx +0 -54
  430. package/src/stories/Badge/BadgeDot.stories.mdx +0 -20
  431. package/src/stories/Badge/BadgeTest.js +0 -21
  432. package/src/stories/Breadcrumb/BreadcrumbMultiline.stories.mdx +0 -41
  433. package/src/stories/Button/ButtonBadge.stories.mdx +0 -34
  434. package/src/stories/Button/ButtonIconPosition.stories.mdx +0 -106
  435. package/src/stories/Button/ButtonVariant.stories.mdx +0 -205
  436. package/src/stories/Button/test.js +0 -41
  437. package/src/stories/ButtonGroup/ButtonGroupAction.stories.mdx +0 -83
  438. package/src/stories/ButtonGroup/ButtonGroupActionQuiet.stories.mdx +0 -50
  439. package/src/stories/ButtonGroup/ButtonGroupBlock.stories.mdx +0 -40
  440. package/src/stories/ButtonGroup/ButtonGroupCompact.stories.mdx +0 -38
  441. package/src/stories/ButtonGroup/ButtonGroupRounded.stories.mdx +0 -77
  442. package/src/stories/ButtonGroup/ButtonGroupTest.js +0 -61
  443. package/src/stories/ButtonGroup/ButtonGroupVertical.stories.mdx +0 -38
  444. package/src/stories/Card/CardVariant.stories.mdx +0 -37
  445. package/src/stories/Check/Check.stories.mdx +0 -62
  446. package/src/stories/Check/CheckBinary.stories.mdx +0 -80
  447. package/src/stories/Check/CheckDisabled.stories.mdx +0 -30
  448. package/src/stories/Check/CheckError.stories.mdx +0 -64
  449. package/src/stories/Check/CheckErrorTests.js +0 -72
  450. package/src/stories/Check/CheckHintLabel.stories.mdx +0 -30
  451. package/src/stories/Check/CheckPropertyTest.js +0 -101
  452. package/src/stories/Check/CheckReadonly.stories.mdx +0 -30
  453. package/src/stories/Check/CheckSlots.stories.mdx +0 -51
  454. package/src/stories/Check/CheckSwitch.stories.mdx +0 -30
  455. package/src/stories/CheckGroup/CheckGroup.stories.mdx +0 -69
  456. package/src/stories/CheckGroup/CheckGroupDisabled.stories.mdx +0 -26
  457. package/src/stories/CheckGroup/CheckGroupError.stories.mdx +0 -28
  458. package/src/stories/CheckGroup/CheckGroupHintLabel.stories.mdx +0 -27
  459. package/src/stories/CheckGroup/CheckGroupLabel.stories.mdx +0 -26
  460. package/src/stories/CheckGroup/CheckGroupOptionLabel.stories.mdx +0 -48
  461. package/src/stories/CheckGroup/CheckGroupOptionValue.stories.mdx +0 -48
  462. package/src/stories/CheckGroup/CheckGroupOptions.stories.mdx +0 -40
  463. package/src/stories/CheckGroup/CheckGroupReadonly.stories.mdx +0 -26
  464. package/src/stories/CheckGroup/CheckGroupSlots.stories.mdx +0 -152
  465. package/src/stories/CheckGroup/CheckGroupValid.stories.mdx +0 -28
  466. package/src/stories/CheckGroup/CheckGroupVertical.stories.mdx +0 -26
  467. package/src/stories/Dialog/DialogAutoClose.stories.mdx +0 -18
  468. package/src/stories/Dialog/DialogSize.stories.mdx +0 -36
  469. package/src/stories/Dropdown/DropdownDisabled.stories.mdx +0 -25
  470. package/src/stories/Dropdown/DropdownLabelNoResults.stories.mdx +0 -25
  471. package/src/stories/Dropdown/DropdownMaxValues.stories.mdx +0 -26
  472. package/src/stories/Dropdown/DropdownMultiple.stories.mdx +0 -56
  473. package/src/stories/Dropdown/DropdownUseObject.stories.mdx +0 -58
  474. package/src/stories/Icon/IconList.vue +0 -34
  475. package/src/stories/Icon/IconPrefix.stories.mdx +0 -79
  476. package/src/stories/Icon/IconRemote.stories.mdx +0 -39
  477. package/src/stories/Icon/IconTest.js +0 -27
  478. package/src/stories/Icon/IconsList.stories.mdx +0 -35
  479. package/src/stories/InputText/InputTextAutocomplete.stories.mdx +0 -15
  480. package/src/stories/InputText/InputTextAutofocus.stories.mdx +0 -20
  481. package/src/stories/InputText/InputTextDisabled.stories.mdx +0 -19
  482. package/src/stories/InputText/InputTextError.stories.mdx +0 -19
  483. package/src/stories/InputText/InputTextFloating.stories.mdx +0 -20
  484. package/src/stories/InputText/InputTextHintLabel.stories.mdx +0 -18
  485. package/src/stories/InputText/InputTextIcon.stories.mdx +0 -18
  486. package/src/stories/InputText/InputTextLabel.stories.mdx +0 -15
  487. package/src/stories/InputText/InputTextLoading.stories.mdx +0 -19
  488. package/src/stories/InputText/InputTextMax.stories.mdx +0 -31
  489. package/src/stories/InputText/InputTextMaxLength.stories.mdx +0 -15
  490. package/src/stories/InputText/InputTextMin.stories.mdx +0 -31
  491. package/src/stories/InputText/InputTextMinLength.stories.mdx +0 -15
  492. package/src/stories/InputText/InputTextPlaceholder.stories.mdx +0 -15
  493. package/src/stories/InputText/InputTextReadonly.stories.mdx +0 -19
  494. package/src/stories/InputText/InputTextStep.stories.mdx +0 -31
  495. package/src/stories/InputText/InputTextValid.stories.mdx +0 -19
  496. package/src/stories/NativeSelect/NativeSelect.stories.mdx +0 -53
  497. package/src/stories/NativeSelect/NativeSelectDisabled.stories.mdx +0 -32
  498. package/src/stories/NativeSelect/NativeSelectError.stories.mdx +0 -36
  499. package/src/stories/NativeSelect/NativeSelectHintLabel.stories.mdx +0 -34
  500. package/src/stories/NativeSelect/NativeSelectIconLeftRight.stories.mdx +0 -42
  501. package/src/stories/NativeSelect/NativeSelectLoading.stories.mdx +0 -27
  502. package/src/stories/NativeSelect/NativeSelectOptions.stories.mdx +0 -78
  503. package/src/stories/NativeSelect/NativeSelectReadonly.stories.mdx +0 -34
  504. package/src/stories/NativeSelect/NativeSelectUseObject.stories.mdx +0 -66
  505. package/src/stories/NativeSelect/NativeSelectValid.stories.mdx +0 -36
  506. package/src/stories/NativeSelect/NativeSelectValueKey.stories.mdx +0 -66
  507. package/src/stories/Progress/ProgressDeterminate.stories.mdx +0 -19
  508. package/src/stories/Radio/RadioDisabled.stories.mdx +0 -30
  509. package/src/stories/Radio/RadioError.stories.mdx +0 -64
  510. package/src/stories/Radio/RadioHintLabel.stories.mdx +0 -30
  511. package/src/stories/Radio/RadioTest.js +0 -89
  512. package/src/stories/RadioGroup/RadioGroupDisabled.stories.mdx +0 -29
  513. package/src/stories/RadioGroup/RadioGroupError.stories.mdx +0 -31
  514. package/src/stories/RadioGroup/RadioGroupHintLabel.stories.mdx +0 -28
  515. package/src/stories/RadioGroup/RadioGroupLabel.stories.mdx +0 -29
  516. package/src/stories/RadioGroup/RadioGroupOptionLabel.stories.mdx +0 -65
  517. package/src/stories/RadioGroup/RadioGroupOptionValue.stories.mdx +0 -65
  518. package/src/stories/RadioGroup/RadioGroupReadonly.stories.mdx +0 -29
  519. package/src/stories/RadioGroup/RadioGroupValid.stories.mdx +0 -31
  520. package/src/stories/RadioGroup/RadioGroupVertical.stories.mdx +0 -29
  521. package/src/stories/RadioGroup/RadioOptionsTest.js +0 -78
  522. package/src/stories/RadioGroup/RadioPropertyTest.js +0 -131
  523. package/src/stories/RadioGroup/RadioSlotsTest.js +0 -20
  524. package/src/stories/Select/SelectDisabled.stories.mdx +0 -32
  525. package/src/stories/Select/SelectMaxValues.stories.mdx +0 -33
  526. package/src/stories/Select/SelectMultiple.stories.mdx +0 -64
  527. package/src/stories/Select/SelectSearchable.stories.mdx +0 -80
  528. package/src/stories/Select/SelectSeparator.stories.mdx +0 -64
  529. package/src/stories/Select/SelectUseObject.stories.mdx +0 -66
  530. package/src/stories/Textarea/TextareaAutocomplete.stories.mdx +0 -15
  531. package/src/stories/Textarea/TextareaAutofocus.stories.mdx +0 -20
  532. package/src/stories/Textarea/TextareaDisabled.stories.mdx +0 -19
  533. package/src/stories/Textarea/TextareaError.stories.mdx +0 -19
  534. package/src/stories/Textarea/TextareaFloating.stories.mdx +0 -20
  535. package/src/stories/Textarea/TextareaHintLabel.stories.mdx +0 -18
  536. package/src/stories/Textarea/TextareaIcon.stories.mdx +0 -18
  537. package/src/stories/Textarea/TextareaIconPosition.stories.mdx +0 -31
  538. package/src/stories/Textarea/TextareaLabel.stories.mdx +0 -15
  539. package/src/stories/Textarea/TextareaLoading.stories.mdx +0 -19
  540. package/src/stories/Textarea/TextareaMaxLength.stories.mdx +0 -15
  541. package/src/stories/Textarea/TextareaMinLength.stories.mdx +0 -15
  542. package/src/stories/Textarea/TextareaPlaceholder.stories.mdx +0 -15
  543. package/src/stories/Textarea/TextareaReadonly.stories.mdx +0 -19
  544. package/src/stories/Textarea/TextareaRowsCols.stories.mdx +0 -31
  545. package/src/stories/Textarea/TextareaValid.stories.mdx +0 -19
  546. package/src/stories/stories.scss +0 -24
  547. package/src/stories/volver-ui-vue.stories.mdx +0 -71
  548. package/src/types/.README +0 -0
@@ -1,12 +1,21 @@
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]:
6
6
  | Ref<boolean>
7
7
  | Ref<string | unknown[] | undefined>
8
+ | boolean
9
+ | string
10
+ | string[]
8
11
  | undefined
9
- modifiers?: Ref<string | unknown[] | undefined> | undefined
12
+ | unknown[]
13
+ modifiers?:
14
+ | Ref<string | unknown[] | undefined>
15
+ | undefined
16
+ | string[]
17
+ | string
18
+ | unknown[]
10
19
  }
11
20
 
12
21
  export function useBemModifiers(prefix: string, modifiers: IBemModifiers) {
@@ -14,34 +23,33 @@ export function useBemModifiers(prefix: string, modifiers: IBemModifiers) {
14
23
 
15
24
  const bemCssClasses = computed(() => {
16
25
  return (
17
- Object.keys(modifiers).reduce((acc, k) => {
18
- 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
19
29
 
20
30
  if (!_modifier) return acc
21
31
 
22
- if (k === 'modifiers') {
32
+ if (item === 'modifiers') {
23
33
  const _reduceModifiers = Array.isArray(_modifier)
24
34
  ? _modifier
25
- : [_modifier]
35
+ : _modifier.split(' ')
26
36
  return {
27
37
  ...acc,
28
38
  ..._reduceModifiers.reduce(
29
39
  (accVariant: object, currentVariant: string) => {
30
40
  return {
31
41
  ...accVariant,
32
- [`${prefix}--${ObjectUtilities.kebabCase(
33
- currentVariant
34
- )}`]: true
42
+ [`${prefix}--${kebabCase(currentVariant)}`]:
43
+ true,
35
44
  }
36
45
  },
37
- {}
38
- )
46
+ {},
47
+ ),
39
48
  }
40
49
  } else {
41
50
  return {
42
51
  ...acc,
43
- [`${prefix}--${ObjectUtilities.kebabCase(k)}`]:
44
- _modifier
52
+ [`${prefix}--${kebabCase(item)}`]: _modifier,
45
53
  }
46
54
  }
47
55
  }, baseCssClass) || {}
@@ -49,6 +57,42 @@ export function useBemModifiers(prefix: string, modifiers: IBemModifiers) {
49
57
  })
50
58
 
51
59
  return {
52
- bemCssClasses
60
+ bemCssClasses,
53
61
  }
54
62
  }
63
+
64
+ export function toBem(prefix: string, modifiers: IBemModifiers) {
65
+ const baseCssClass: object = { [`${prefix}`]: true }
66
+
67
+ return (
68
+ Object.keys(modifiers).reduce((acc, k) => {
69
+ const _modifier = unref(modifiers[k] as Ref<unknown>) || false
70
+
71
+ if (!_modifier) return acc
72
+
73
+ if (k === 'modifiers') {
74
+ const _reduceModifiers = Array.isArray(_modifier)
75
+ ? _modifier
76
+ : [_modifier]
77
+ return {
78
+ ...acc,
79
+ ..._reduceModifiers.reduce(
80
+ (accVariant: object, currentVariant: string) => {
81
+ return {
82
+ ...accVariant,
83
+ [`${prefix}--${kebabCase(currentVariant)}`]:
84
+ true,
85
+ }
86
+ },
87
+ {},
88
+ ),
89
+ }
90
+ } else {
91
+ return {
92
+ ...acc,
93
+ [`${prefix}--${kebabCase(k)}`]: _modifier,
94
+ }
95
+ }
96
+ }, baseCssClass) || {}
97
+ )
98
+ }
@@ -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,45 +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[]
47
+ */
48
+ options: {
49
+ type: Array as PropType<Array<Option | string>>,
50
+ default: () => [],
51
+ },
52
+ /**
53
+ * Used when options are objects: key to use for option label
54
+ */
55
+ labelKey: { type: [String, Function], default: 'label' },
56
+ /**
57
+ * Used when options are objects: key to use for option label
58
+ */
59
+ valueKey: { type: [String, Function], default: 'value' },
60
+ }
61
+
62
+ export const CountProps = {
63
+ /**
64
+ * Show character limit
65
+ */
66
+ count: {
67
+ type: [Boolean, String],
68
+ default: false,
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],
79
+ }
80
+
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
+ */
123
+ name: { type: String, required: true },
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
+ */
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
+ */
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
+ */
163
+ maxlength: Number,
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
+ */
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
+ */
177
+ required: 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,
186
+ }
187
+
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
35
224
  */
36
- options: { type: Array, default: () => [] },
225
+ label: String,
37
226
  /**
38
- * Se options è un array di oggetti, optionLabel = nome del campo da utilizzare come label oppure una funzione per ricavare la label
227
+ * Input name
39
228
  */
40
- optionLabel: { type: [String, Function], default: () => 'label' },
229
+ name: { type: String, required: true },
41
230
  /**
42
- * Se options è un array di oggetti, optionValue = nome del campo da utilizzare come value oppure una funzione per ricavare il value
231
+ * If true, the group will be displayed in a vertical column
43
232
  */
44
- optionValue: { type: [String, Function], default: () => 'value' }
233
+ vertical: Boolean,
45
234
  }
@@ -0,0 +1,103 @@
1
+ import type {
2
+ ComponentResolver,
3
+ SideEffectsInfo,
4
+ } from 'unplugin-vue-components/types'
5
+
6
+ function kebabCase(str: string, options?: { condense: boolean }) {
7
+ if (typeof str !== 'string') throw new TypeError('expected a string')
8
+ return str
9
+ .trim()
10
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
11
+ .replace(/\W/g, (m) => (/[À-ž]/.test(m) ? m : '-'))
12
+ .replace(/^-+|-+$/g, '')
13
+ .replace(/-{2,}/g, (m) => (options?.condense ? '-' : m))
14
+ .toLowerCase()
15
+ }
16
+
17
+ export interface VolverResolverOptions {
18
+ /**
19
+ * import style along with components
20
+ *
21
+ * @default 'css'
22
+ */
23
+ importStyle?: boolean | 'css' | 'scss'
24
+ /**
25
+ * import custom style path
26
+ *
27
+ * @default ''
28
+ */
29
+ customStylePath?: string
30
+ /**
31
+ * prefix for components (e.g. 'vv' to resolve Button from VvButton)
32
+ *
33
+ * @default 'vv'
34
+ */
35
+ prefix?: string
36
+ }
37
+
38
+ const STYLE_EXCLUDE = ['vv-icon']
39
+ const VOLVER_PREFIX = 'vv'
40
+
41
+ const getStyleName = function (kebabName: string) {
42
+ if (STYLE_EXCLUDE.includes(kebabName)) {
43
+ return undefined
44
+ }
45
+ if (kebabName === 'vv-native-select') {
46
+ return 'vv-select'
47
+ }
48
+ if (kebabName === 'vv-accordion-group') {
49
+ return 'vv-accordion'
50
+ }
51
+ return kebabName
52
+ }
53
+
54
+ /**
55
+ * Resolver for @volverjs/ui-vue
56
+ *
57
+ * @link https://github.com/volverjs/ui-vue
58
+ */
59
+ export function VolverResolver({
60
+ prefix = VOLVER_PREFIX,
61
+ importStyle,
62
+ customStylePath,
63
+ }: VolverResolverOptions = {}): ComponentResolver {
64
+ return {
65
+ type: 'component',
66
+ resolve: (name: string) => {
67
+ if (
68
+ !prefix ||
69
+ !name.toLowerCase().startsWith(prefix.toLowerCase())
70
+ ) {
71
+ return
72
+ }
73
+
74
+ const sideEffects: SideEffectsInfo = []
75
+ const kebabName = kebabCase(name).replace(
76
+ `${prefix}-`,
77
+ `${VOLVER_PREFIX}-`,
78
+ )
79
+
80
+ if (importStyle) {
81
+ // import custom style
82
+ if (customStylePath) {
83
+ sideEffects.push(customStylePath)
84
+ }
85
+
86
+ const styleName = getStyleName(kebabName)
87
+ if (styleName) {
88
+ // import component
89
+ sideEffects.push(
90
+ `@volverjs/style/${
91
+ importStyle === 'scss' ? 'scss/' : ''
92
+ }components/${styleName}`,
93
+ )
94
+ }
95
+ }
96
+
97
+ return {
98
+ from: `@volverjs/ui-vue/${kebabName}`,
99
+ sideEffects,
100
+ }
101
+ },
102
+ }
103
+ }
package/src/shims.d.ts ADDED
@@ -0,0 +1,13 @@
1
+ // eslint-disable-next-line
2
+ declare interface Window {
3
+ // extend the window
4
+ }
5
+
6
+ declare module '*.vue' {
7
+ import { type DefineComponent } from 'vue'
8
+ // eslint-disable-next-line
9
+ const component: DefineComponent<{}, {}, any>
10
+ export default component
11
+ }
12
+
13
+ type ValueOf<T> = T[keyof T]
@@ -0,0 +1,46 @@
1
+ import {
2
+ DefaultSlotArgTypes,
3
+ DisabledArgTypes,
4
+ ModifiersArgTypes,
5
+ } from '@/stories/argTypes'
6
+
7
+ export const defaultArgs = {
8
+ title: 'Lorem Ipsum',
9
+ content:
10
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean turpis diam, tempor non sem ut, suscipit gravida mi.',
11
+ modifiers: [],
12
+ disabled: false,
13
+ }
14
+
15
+ export const argTypes = {
16
+ summary: {
17
+ description: 'The title slot',
18
+ control: {
19
+ type: 'text',
20
+ },
21
+ table: {
22
+ category: 'Slots',
23
+ type: {
24
+ summary: 'html',
25
+ },
26
+ },
27
+ },
28
+ details: {
29
+ description: 'The content slot',
30
+ control: {
31
+ type: 'text',
32
+ },
33
+ table: {
34
+ category: 'Slots',
35
+ type: {
36
+ summary: 'html',
37
+ },
38
+ },
39
+ },
40
+ modifiers: {
41
+ ...ModifiersArgTypes.modifiers,
42
+ options: ['marker-right', 'bordered'],
43
+ },
44
+ ...DisabledArgTypes,
45
+ ...DefaultSlotArgTypes,
46
+ }