@volverjs/ui-vue 0.0.1-beta.12 → 0.0.1-beta.17

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 (432) hide show
  1. package/README.md +1 -1
  2. package/bin/icons.cjs +73 -0
  3. package/bin/icons.js +75 -0
  4. package/dist/Volver.d.ts +15 -2
  5. package/dist/components/VvAccordion/VvAccordion.es.js +133 -236
  6. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  7. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +32 -97
  8. package/dist/components/VvAccordion/index.d.ts +46 -0
  9. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +199 -277
  10. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +44 -151
  12. package/dist/components/VvAccordionGroup/{VvAccordionGroup.d.ts → index.d.ts} +9 -13
  13. package/dist/components/VvBadge/VvBadge.es.js +42 -151
  14. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  15. package/dist/components/VvBadge/VvBadge.vue.d.ts +12 -53
  16. package/dist/components/VvBadge/{VvBadge.d.ts → index.d.ts} +0 -0
  17. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +55 -168
  18. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  19. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +24 -104
  20. package/dist/components/VvBreadcrumb/{VvBreadcrumb.d.ts → index.d.ts} +1 -1
  21. package/dist/components/VvButton/VvButton.es.js +298 -312
  22. package/dist/components/VvButton/VvButton.umd.js +1 -1
  23. package/dist/components/VvButton/VvButton.vue.d.ts +91 -163
  24. package/dist/components/VvButton/{VvButton.d.ts → index.d.ts} +46 -9
  25. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +59 -172
  26. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  27. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +30 -125
  28. package/dist/components/VvButtonGroup/{VvButtonGroup.d.ts → index.d.ts} +0 -0
  29. package/dist/components/VvCard/VvCard.es.js +55 -166
  30. package/dist/components/VvCard/VvCard.umd.js +1 -1
  31. package/dist/components/VvCard/VvCard.vue.d.ts +16 -61
  32. package/dist/components/VvCard/{VvCard.d.ts → index.d.ts} +1 -1
  33. package/dist/components/VvCheckbox/VvCheckbox.es.js +344 -0
  34. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -0
  35. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +87 -0
  36. package/dist/components/VvCheckbox/index.d.ts +86 -0
  37. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +415 -0
  38. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -0
  39. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +113 -0
  40. package/dist/components/{VvCheckGroup/VvCheckGroup.d.ts → VvCheckboxGroup/index.d.ts} +10 -10
  41. package/dist/components/VvDialog/VvDialog.es.js +108 -230
  42. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  43. package/dist/components/VvDialog/VvDialog.vue.d.ts +28 -132
  44. package/dist/components/VvDialog/{VvDialog.d.ts → index.d.ts} +2 -6
  45. package/dist/components/VvDropdown/VvDropdown.es.js +167 -186
  46. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  47. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +34 -136
  48. package/dist/components/VvDropdown/{VvDropdown.d.ts → index.d.ts} +7 -3
  49. package/dist/components/VvIcon/VvIcon.es.js +62 -174
  50. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  51. package/dist/components/VvIcon/VvIcon.vue.d.ts +36 -150
  52. package/dist/components/VvIcon/{VvIcon.d.ts → index.d.ts} +9 -0
  53. package/dist/components/VvInputText/VvInputClearAction.d.ts +36 -0
  54. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +56 -0
  55. package/dist/components/VvInputText/VvInputStepAction.d.ts +37 -0
  56. package/dist/components/VvInputText/VvInputText.es.js +586 -577
  57. package/dist/components/VvInputText/VvInputText.umd.js +1 -2
  58. package/dist/components/VvInputText/VvInputText.vue.d.ts +187 -275
  59. package/dist/components/VvInputText/VvInputTextActions.d.ts +1 -1
  60. package/dist/components/VvInputText/index.d.ts +175 -0
  61. package/dist/components/VvNativeSelect/VvNativeSelect.es.js +299 -347
  62. package/dist/components/VvNativeSelect/VvNativeSelect.umd.js +1 -2
  63. package/dist/components/VvNativeSelect/VvNativeSelect.vue.d.ts +78 -190
  64. package/dist/components/VvNativeSelect/{VvNativeSelect.d.ts → index.d.ts} +35 -8
  65. package/dist/components/VvProgress/VvProgress.es.js +45 -162
  66. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  67. package/dist/components/VvProgress/VvProgress.vue.d.ts +17 -103
  68. package/dist/components/VvProgress/{VvProgress.d.ts → index.d.ts} +1 -7
  69. package/dist/components/VvRadio/VvRadio.es.js +292 -267
  70. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  71. package/dist/components/VvRadio/VvRadio.vue.d.ts +52 -122
  72. package/dist/components/VvRadio/index.d.ts +64 -0
  73. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +342 -380
  74. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -2
  75. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +58 -213
  76. package/dist/components/VvRadioGroup/{VvRadioGroup.d.ts → index.d.ts} +2 -2
  77. package/dist/components/VvSelect/VvSelect.es.js +556 -510
  78. package/dist/components/VvSelect/VvSelect.umd.js +1 -2
  79. package/dist/components/VvSelect/VvSelect.vue.d.ts +75 -240
  80. package/dist/components/VvSelect/{VvSelect.d.ts → index.d.ts} +12 -5
  81. package/dist/components/VvTextarea/VvTextarea.es.js +372 -481
  82. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -2
  83. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +103 -299
  84. package/dist/components/VvTextarea/{VvTextarea.d.ts → index.d.ts} +36 -13
  85. package/dist/components/common/HintSlot.d.ts +10 -4
  86. package/dist/components/index.d.ts +13 -6
  87. package/dist/components/index.es.js +2070 -895
  88. package/dist/components/index.umd.js +1 -2
  89. package/dist/composables/debouncedInput/useDebouncedInput.d.ts +2 -2
  90. package/dist/composables/focus/useComponentFocus.d.ts +3 -3
  91. package/dist/composables/group/types/IAccordionGroupState.d.ts +1 -3
  92. package/dist/composables/group/types/IGroupState.d.ts +2 -2
  93. package/dist/composables/group/useInjectedGroupState.d.ts +4 -4
  94. package/dist/composables/group/useProvideGroupState.d.ts +1 -1
  95. package/dist/composables/icons/useComponentIcons.d.ts +2 -2
  96. package/dist/composables/textLimit/useTextLimit.d.ts +0 -3
  97. package/dist/constants.d.ts +4 -4
  98. package/dist/icons.d.ts +1881 -0
  99. package/dist/icons.es.js +4 -6
  100. package/dist/icons.umd.js +1 -1
  101. package/dist/index.es.js +2113 -932
  102. package/dist/index.umd.js +1 -2
  103. package/dist/props/index.d.ts +9 -3
  104. package/dist/resolvers/unplugin.d.ts +27 -0
  105. package/dist/resolvers/unplugin.es.js +40 -0
  106. package/dist/resolvers/unplugin.umd.js +1 -0
  107. package/dist/stories/Accordion/Accordion.test.d.ts +4 -0
  108. package/dist/stories/Badge/Badge.test.d.ts +2 -0
  109. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +2 -0
  110. package/dist/stories/Button/Button.test.d.ts +3 -8
  111. package/dist/stories/Card/Card.test.d.ts +3 -0
  112. package/dist/stories/Dialog/Dialog.test.d.ts +2 -0
  113. package/dist/stories/Dropdown/Dropdown.test.d.ts +2 -0
  114. package/dist/stories/Icon/IconList.vue.d.ts +1 -43
  115. package/dist/stories/InputText/InputText.test.d.ts +6 -0
  116. package/dist/stories/Radio/Radio.test.d.ts +3 -0
  117. package/dist/stories/RadioGroup/RadioGroup.test.d.ts +8 -0
  118. package/dist/stories/Select/Select.test.d.ts +3 -0
  119. package/dist/stories/Textarea/Textarea.test.d.ts +8 -0
  120. package/dist/stories/utils.d.ts +1 -3
  121. package/dist/test/sleep.d.ts +1 -0
  122. package/dist/utils/ObjectUtilities.d.ts +82 -95
  123. package/env.d.ts +1 -0
  124. package/package.json +103 -68
  125. package/src/Volver.ts +32 -3
  126. package/src/assets/icons/detailed.json +1 -1
  127. package/src/assets/icons/normal.json +1 -1
  128. package/src/assets/icons/simple.json +1 -1
  129. package/src/components/VvAccordion/VvAccordion.vue +80 -76
  130. package/src/components/VvAccordion/index.ts +69 -0
  131. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +77 -41
  132. package/src/components/VvAccordionGroup/{VvAccordionGroup.ts → index.ts} +8 -12
  133. package/src/components/VvBadge/VvBadge.vue +14 -10
  134. package/src/components/VvBadge/{VvBadge.ts → index.ts} +0 -0
  135. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +18 -19
  136. package/src/components/VvBreadcrumb/{VvBreadcrumb.ts → index.ts} +1 -1
  137. package/src/components/VvButton/VvButton.vue +123 -113
  138. package/src/components/VvButton/index.ts +147 -0
  139. package/src/components/VvButtonGroup/VvButtonGroup.vue +21 -17
  140. package/src/components/VvButtonGroup/{VvButtonGroup.ts → index.ts} +0 -0
  141. package/src/components/VvCard/VvCard.vue +20 -22
  142. package/src/components/VvCard/{VvCard.ts → index.ts} +0 -0
  143. package/src/components/VvCheckbox/VvCheckbox.vue +124 -0
  144. package/src/components/VvCheckbox/index.ts +94 -0
  145. package/src/components/{VvCheckGroup/VvCheckGroup.vue → VvCheckboxGroup/VvCheckboxGroup.vue} +49 -54
  146. package/src/components/{VvCheckGroup/VvCheckGroup.ts → VvCheckboxGroup/index.ts} +9 -9
  147. package/src/components/VvDialog/VvDialog.vue +47 -50
  148. package/src/components/VvDialog/index.ts +10 -0
  149. package/src/components/VvDropdown/VvDropdown.vue +61 -40
  150. package/src/components/VvDropdown/{VvDropdown.ts → index.ts} +8 -4
  151. package/src/components/VvIcon/VvIcon.vue +31 -25
  152. package/src/components/VvIcon/{VvIcon.ts → index.ts} +9 -0
  153. package/src/components/VvInputText/VvInputClearAction.ts +53 -0
  154. package/src/components/VvInputText/VvInputPasswordAction.ts +70 -0
  155. package/src/components/VvInputText/VvInputStepAction.ts +49 -0
  156. package/src/components/VvInputText/VvInputText.vue +168 -170
  157. package/src/components/VvInputText/VvInputTextActions.ts +54 -108
  158. package/src/components/VvInputText/index.ts +135 -0
  159. package/src/components/VvNativeSelect/VvNativeSelect.vue +130 -68
  160. package/src/components/VvNativeSelect/{VvNativeSelect.ts → index.ts} +26 -7
  161. package/src/components/VvProgress/VvProgress.vue +25 -26
  162. package/src/components/VvProgress/{VvProgress.ts → index.ts} +4 -7
  163. package/src/components/VvRadio/VvRadio.vue +81 -108
  164. package/src/components/VvRadio/index.ts +78 -0
  165. package/src/components/VvRadioGroup/VvRadioGroup.vue +45 -45
  166. package/src/components/VvRadioGroup/{VvRadioGroup.ts → index.ts} +1 -1
  167. package/src/components/VvSelect/VvSelect.vue +90 -69
  168. package/src/components/VvSelect/{VvSelect.ts → index.ts} +12 -5
  169. package/src/components/VvTextarea/VvTextarea.vue +121 -128
  170. package/src/components/VvTextarea/{VvTextarea.ts → index.ts} +31 -11
  171. package/src/components/common/HintSlot.ts +157 -136
  172. package/src/components/index.ts +13 -6
  173. package/src/composables/debouncedInput/useDebouncedInput.ts +21 -15
  174. package/src/composables/focus/useComponentFocus.ts +6 -8
  175. package/src/composables/group/types/IAccordionGroupState.ts +1 -3
  176. package/src/composables/group/types/IGroupState.ts +2 -2
  177. package/src/composables/group/useInjectedGroupState.ts +20 -30
  178. package/src/composables/group/useProvideGroupState.ts +1 -2
  179. package/src/composables/icons/useComponentIcons.ts +2 -3
  180. package/src/composables/options/useOptions.ts +3 -0
  181. package/src/composables/textLimit/useTextLimit.ts +1 -4
  182. package/src/composables/useModifiers.ts +13 -15
  183. package/src/constants.ts +5 -7
  184. package/src/directives/{.README → .gitkeep} +0 -0
  185. package/src/icons.ts +7 -0
  186. package/src/index.ts +0 -1
  187. package/src/props/index.ts +7 -1
  188. package/src/resolvers/unplugin.ts +103 -0
  189. package/src/shims.d.ts +11 -0
  190. package/src/stories/Accordion/Accordion.stories.mdx +10 -9
  191. package/src/stories/Accordion/Accordion.test.ts +37 -0
  192. package/src/stories/Accordion/AccordionSlots.stories.mdx +40 -25
  193. package/src/stories/AccordionGroup/AccordionGroup.stories.mdx +10 -16
  194. package/src/stories/AccordionGroup/{accordionGroupTest.js → AccordionGroup.test.js} +15 -17
  195. package/src/stories/AccordionGroup/AccordionGroupCollapse.stories.mdx +38 -0
  196. package/src/stories/AccordionGroup/{AccordionItems.stories.mdx → AccordionGroupItems.stories.mdx} +7 -13
  197. package/src/stories/Badge/Badge.stories.mdx +8 -8
  198. package/src/stories/Badge/Badge.test.ts +16 -0
  199. package/src/stories/Badge/BadgeColor.stories.mdx +6 -7
  200. package/src/stories/Badge/BadgeDot.stories.mdx +4 -3
  201. package/src/stories/Badge/BadgeModifiers.stories.mdx +7 -6
  202. package/src/stories/Breadcrumb/Breadcrumb.stories.mdx +15 -7
  203. package/src/stories/Breadcrumb/Breadcrumb.test.ts +49 -0
  204. package/src/stories/Breadcrumb/BreadcrumbMultiline.stories.mdx +15 -7
  205. package/src/stories/Button/Button.stories.mdx +16 -17
  206. package/src/stories/Button/Button.test.ts +8 -12
  207. package/src/stories/Button/ButtonActive.stories.mdx +2 -1
  208. package/src/stories/Button/ButtonBadge.stories.mdx +2 -2
  209. package/src/stories/Button/ButtonDisabled.stories.mdx +1 -1
  210. package/src/stories/Button/ButtonIcon.stories.mdx +6 -3
  211. package/src/stories/Button/ButtonIconPosition.stories.mdx +1 -1
  212. package/src/stories/Button/ButtonLink.stories.mdx +1 -19
  213. package/src/stories/Button/ButtonLoading.stories.mdx +4 -4
  214. package/src/stories/Button/ButtonModifiers.stories.mdx +1 -1
  215. package/src/stories/Button/ButtonPressed.stories.mdx +31 -0
  216. package/src/stories/Button/ButtonSlots.stories.mdx +1 -1
  217. package/src/stories/ButtonGroup/ButtonGroup.stories.mdx +5 -6
  218. package/src/stories/ButtonGroup/{ButtonGroupTest.js → ButtonGroup.test.js} +6 -28
  219. package/src/stories/ButtonGroup/ButtonGroupAction.stories.mdx +5 -6
  220. package/src/stories/ButtonGroup/ButtonGroupActionQuiet.stories.mdx +3 -4
  221. package/src/stories/ButtonGroup/ButtonGroupBlock.stories.mdx +3 -4
  222. package/src/stories/ButtonGroup/ButtonGroupCompact.stories.mdx +3 -4
  223. package/src/stories/ButtonGroup/ButtonGroupRounded.stories.mdx +3 -4
  224. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.mdx +11 -12
  225. package/src/stories/ButtonGroup/ButtonGroupVertical.stories.mdx +3 -4
  226. package/src/stories/Card/Card.stories.mdx +7 -5
  227. package/src/stories/Card/Card.test.ts +26 -0
  228. package/src/stories/Card/CardSlots.stories.mdx +5 -5
  229. package/src/stories/Card/CardVariant.stories.mdx +5 -4
  230. package/src/stories/Checkbox/Checkbox.stories.mdx +51 -0
  231. package/src/stories/Checkbox/Checkbox.test.js +115 -0
  232. package/src/stories/Checkbox/CheckboxBinary.stories.mdx +76 -0
  233. package/src/stories/{Check/CheckDisabled.stories.mdx → Checkbox/CheckboxDisabled.stories.mdx} +7 -7
  234. package/src/stories/Checkbox/CheckboxError.stories.mdx +43 -0
  235. package/src/stories/Checkbox/CheckboxHintLabel.stories.mdx +35 -0
  236. package/src/stories/{Check/CheckReadonly.stories.mdx → Checkbox/CheckboxReadonly.stories.mdx} +6 -8
  237. package/src/stories/Checkbox/CheckboxSlots.stories.mdx +69 -0
  238. package/src/stories/{Check/CheckSwitch.stories.mdx → Checkbox/CheckboxSwitch.stories.mdx} +8 -8
  239. package/src/stories/CheckboxGroup/CheckboxGroup.stories.mdx +69 -0
  240. package/src/stories/CheckboxGroup/CheckboxGroupDisabled.stories.mdx +26 -0
  241. package/src/stories/CheckboxGroup/CheckboxGroupError.stories.mdx +28 -0
  242. package/src/stories/CheckboxGroup/CheckboxGroupHintLabel.stories.mdx +27 -0
  243. package/src/stories/CheckboxGroup/CheckboxGroupLabel.stories.mdx +26 -0
  244. package/src/stories/{CheckGroup/CheckGroupOptionLabel.stories.mdx → CheckboxGroup/CheckboxGroupOptionLabel.stories.mdx} +14 -11
  245. package/src/stories/{CheckGroup/CheckGroupOptionValue.stories.mdx → CheckboxGroup/CheckboxGroupOptionValue.stories.mdx} +13 -10
  246. package/src/stories/{CheckGroup/CheckGroupOptions.stories.mdx → CheckboxGroup/CheckboxGroupOptions.stories.mdx} +8 -8
  247. package/src/stories/CheckboxGroup/CheckboxGroupReadonly.stories.mdx +26 -0
  248. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.mdx +152 -0
  249. package/src/stories/CheckboxGroup/CheckboxGroupValid.stories.mdx +28 -0
  250. package/src/stories/CheckboxGroup/CheckboxGroupVertical.stories.mdx +26 -0
  251. package/src/stories/Dialog/Dialog.stories.mdx +5 -5
  252. package/src/stories/Dialog/Dialog.test.ts +26 -0
  253. package/src/stories/Dialog/DialogAutoClose.stories.mdx +1 -1
  254. package/src/stories/Dialog/DialogSize.stories.mdx +1 -1
  255. package/src/stories/Dropdown/Dropdown.stories.mdx +11 -7
  256. package/src/stories/Dropdown/Dropdown.test.ts +80 -0
  257. package/src/stories/Dropdown/DropdownDisabled.stories.mdx +9 -2
  258. package/src/stories/Dropdown/DropdownLabelNoResults.stories.mdx +2 -2
  259. package/src/stories/Dropdown/DropdownMaxValues.stories.mdx +4 -2
  260. package/src/stories/Dropdown/DropdownMultiple.stories.mdx +4 -2
  261. package/src/stories/Dropdown/DropdownOptions.stories.mdx +4 -4
  262. package/src/stories/Dropdown/DropdownUseObject.stories.mdx +4 -2
  263. package/src/stories/Icon/Icon.stories.mdx +8 -8
  264. package/src/stories/Icon/{IconTest.js → Icon.test.js} +2 -5
  265. package/src/stories/Icon/IconList.vue +5 -6
  266. package/src/stories/Icon/IconPrefix.stories.mdx +2 -2
  267. package/src/stories/Icon/IconRemote.stories.mdx +2 -2
  268. package/src/stories/Icon/IconsList.stories.mdx +2 -18
  269. package/src/stories/InputText/InputText.stories.mdx +25 -19
  270. package/src/stories/InputText/InputText.test.ts +156 -0
  271. package/src/stories/InputText/InputTextAutocomplete.stories.mdx +9 -2
  272. package/src/stories/InputText/InputTextAutofocus.stories.mdx +6 -3
  273. package/src/stories/InputText/InputTextDisabled.stories.mdx +10 -2
  274. package/src/stories/InputText/InputTextError.stories.mdx +10 -2
  275. package/src/stories/InputText/InputTextFloating.stories.mdx +10 -3
  276. package/src/stories/InputText/InputTextHintLabel.stories.mdx +10 -2
  277. package/src/stories/InputText/InputTextIcon.stories.mdx +6 -2
  278. package/src/stories/InputText/InputTextIconPosition.stories.mdx +10 -3
  279. package/src/stories/InputText/InputTextLabel.stories.mdx +8 -2
  280. package/src/stories/InputText/InputTextLoading.stories.mdx +10 -2
  281. package/src/stories/InputText/InputTextMax.stories.mdx +10 -3
  282. package/src/stories/InputText/InputTextMaxLength.stories.mdx +22 -5
  283. package/src/stories/InputText/InputTextMin.stories.mdx +10 -3
  284. package/src/stories/InputText/InputTextMinLength.stories.mdx +9 -2
  285. package/src/stories/InputText/InputTextPlaceholder.stories.mdx +8 -2
  286. package/src/stories/InputText/InputTextReadonly.stories.mdx +6 -2
  287. package/src/stories/InputText/InputTextSlots.stories.mdx +4 -5
  288. package/src/stories/InputText/InputTextStep.stories.mdx +9 -3
  289. package/src/stories/InputText/InputTextType.stories.mdx +110 -13
  290. package/src/stories/InputText/InputTextValid.stories.mdx +10 -2
  291. package/src/stories/NativeSelect/NativeSelect.stories.mdx +15 -11
  292. package/src/stories/NativeSelect/NativeSelect.test.js +151 -0
  293. package/src/stories/NativeSelect/NativeSelectDisabled.stories.mdx +6 -7
  294. package/src/stories/NativeSelect/NativeSelectError.stories.mdx +7 -3
  295. package/src/stories/NativeSelect/NativeSelectHintLabel.stories.mdx +7 -3
  296. package/src/stories/NativeSelect/NativeSelectIconLeftRight.stories.mdx +14 -12
  297. package/src/stories/NativeSelect/NativeSelectLoading.stories.mdx +7 -3
  298. package/src/stories/NativeSelect/NativeSelectOptions.stories.mdx +44 -38
  299. package/src/stories/NativeSelect/NativeSelectReadonly.stories.mdx +19 -11
  300. package/src/stories/NativeSelect/NativeSelectUseObject.stories.mdx +26 -30
  301. package/src/stories/NativeSelect/NativeSelectValid.stories.mdx +7 -3
  302. package/src/stories/NativeSelect/NativeSelectValueKey.stories.mdx +30 -30
  303. package/src/stories/Progress/Progress.stories.mdx +8 -11
  304. package/src/stories/Progress/{ProgressTest.js → Progress.test.js} +4 -10
  305. package/src/stories/Progress/ProgressDeterminate.stories.mdx +3 -6
  306. package/src/stories/Radio/Radio.stories.mdx +11 -17
  307. package/src/stories/Radio/Radio.test.ts +52 -0
  308. package/src/stories/Radio/RadioDisabled.stories.mdx +4 -7
  309. package/src/stories/Radio/RadioError.stories.mdx +8 -28
  310. package/src/stories/Radio/RadioHintLabel.stories.mdx +6 -7
  311. package/src/stories/Radio/RadioSlots.stories.mdx +21 -7
  312. package/src/stories/RadioGroup/RadioGroup.stories.mdx +20 -27
  313. package/src/stories/RadioGroup/RadioGroup.test.ts +139 -0
  314. package/src/stories/RadioGroup/RadioGroupDisabled.stories.mdx +6 -8
  315. package/src/stories/RadioGroup/RadioGroupError.stories.mdx +9 -11
  316. package/src/stories/RadioGroup/RadioGroupHintLabel.stories.mdx +8 -10
  317. package/src/stories/RadioGroup/RadioGroupLabel.stories.mdx +6 -8
  318. package/src/stories/RadioGroup/RadioGroupOptionLabel.stories.mdx +11 -13
  319. package/src/stories/RadioGroup/RadioGroupOptionValue.stories.mdx +9 -11
  320. package/src/stories/RadioGroup/RadioGroupOptions.stories.mdx +7 -9
  321. package/src/stories/RadioGroup/RadioGroupReadonly.stories.mdx +6 -8
  322. package/src/stories/RadioGroup/RadioGroupSlots.stories.mdx +39 -62
  323. package/src/stories/RadioGroup/RadioGroupValid.stories.mdx +9 -11
  324. package/src/stories/RadioGroup/RadioGroupVertical.stories.mdx +6 -8
  325. package/src/stories/Select/Select.stories.mdx +32 -29
  326. package/src/stories/Select/Select.test.ts +104 -0
  327. package/src/stories/Select/SelectDisabled.stories.mdx +3 -3
  328. package/src/stories/Select/SelectMaxValues.stories.mdx +3 -3
  329. package/src/stories/Select/SelectMultiple.stories.mdx +5 -6
  330. package/src/stories/Select/SelectNative.stories.mdx +6 -8
  331. package/src/stories/Select/SelectOptions.stories.mdx +4 -4
  332. package/src/stories/Select/SelectSearchable.stories.mdx +13 -12
  333. package/src/stories/Select/SelectSeparator.stories.mdx +3 -3
  334. package/src/stories/Select/SelectUseObject.stories.mdx +3 -3
  335. package/src/stories/Textarea/Textarea.stories.mdx +6 -10
  336. package/src/stories/Textarea/Textarea.test.ts +204 -0
  337. package/src/stories/Textarea/TextareaAutoclear.stories.mdx +3 -2
  338. package/src/stories/Textarea/TextareaAutocomplete.stories.mdx +3 -2
  339. package/src/stories/Textarea/TextareaAutofocus.stories.mdx +3 -2
  340. package/src/stories/Textarea/TextareaDebounce.stories.mdx +7 -6
  341. package/src/stories/Textarea/TextareaDisabled.stories.mdx +9 -3
  342. package/src/stories/Textarea/TextareaError.stories.mdx +7 -2
  343. package/src/stories/Textarea/TextareaErrorLabel.stories.mdx +12 -2
  344. package/src/stories/Textarea/TextareaFloating.stories.mdx +7 -2
  345. package/src/stories/Textarea/TextareaHintLabel.stories.mdx +7 -2
  346. package/src/stories/Textarea/TextareaIcon.stories.mdx +3 -2
  347. package/src/stories/Textarea/TextareaIconPosition.stories.mdx +4 -2
  348. package/src/stories/Textarea/TextareaId.stories.mdx +3 -2
  349. package/src/stories/Textarea/TextareaLabel.stories.mdx +3 -2
  350. package/src/stories/Textarea/TextareaLimit.stories.mdx +5 -2
  351. package/src/stories/Textarea/TextareaLoading.stories.mdx +7 -2
  352. package/src/stories/Textarea/TextareaLoadingLabel.stories.mdx +9 -3
  353. package/src/stories/Textarea/TextareaMaxLength.stories.mdx +5 -4
  354. package/src/stories/Textarea/TextareaMinLength.stories.mdx +3 -2
  355. package/src/stories/Textarea/TextareaModifiers.stories.mdx +10 -2
  356. package/src/stories/Textarea/TextareaName.stories.mdx +3 -2
  357. package/src/stories/Textarea/TextareaPlaceholder.stories.mdx +4 -3
  358. package/src/stories/Textarea/TextareaReadonly.stories.mdx +8 -3
  359. package/src/stories/Textarea/TextareaRequired.stories.mdx +3 -2
  360. package/src/stories/Textarea/TextareaResizable.stories.mdx +7 -2
  361. package/src/stories/Textarea/TextareaRowsCols.stories.mdx +4 -2
  362. package/src/stories/Textarea/TextareaSlots.stories.mdx +7 -8
  363. package/src/stories/Textarea/TextareaValid.stories.mdx +7 -1
  364. package/src/stories/Textarea/TextareaValidLabel.stories.mdx +14 -4
  365. package/src/stories/utils.ts +1 -1
  366. package/src/stories/volver-ui-vue.stories.mdx +1 -1
  367. package/src/test/expect.ts +3 -1
  368. package/src/test/sleep.ts +2 -0
  369. package/src/test/types.d.ts +14 -1
  370. package/src/types/{.README → .gitkeep} +0 -0
  371. package/src/utils/ObjectUtilities.ts +247 -241
  372. package/dist/components/VvAccordion/VvAccordion.d.ts +0 -32
  373. package/dist/components/VvAccordion/useAccordionProps.d.ts +0 -16
  374. package/dist/components/VvButton/useButtonGroupProps.d.ts +0 -18
  375. package/dist/components/VvCheck/VvCheck.d.ts +0 -47
  376. package/dist/components/VvCheck/VvCheck.es.js +0 -318
  377. package/dist/components/VvCheck/VvCheck.umd.js +0 -1
  378. package/dist/components/VvCheck/VvCheck.vue.d.ts +0 -165
  379. package/dist/components/VvCheck/useCheckProps.d.ts +0 -16
  380. package/dist/components/VvCheckGroup/VvCheckGroup.es.js +0 -451
  381. package/dist/components/VvCheckGroup/VvCheckGroup.umd.js +0 -2
  382. package/dist/components/VvCheckGroup/VvCheckGroup.vue.d.ts +0 -272
  383. package/dist/components/VvDialog/constants.d.ts +0 -5
  384. package/dist/components/VvInputText/VvInputText.d.ts +0 -73
  385. package/dist/components/VvInputText/constants.d.ts +0 -55
  386. package/dist/components/VvRadio/VvRadio.d.ts +0 -22
  387. package/dist/components/VvRadio/useRadioProps.d.ts +0 -15
  388. package/dist/components/VvTextarea/constants.d.ts +0 -19
  389. package/dist/stories/RadioGroup/RadioOption.test.d.ts +0 -4
  390. package/dist/stories/RadioGroup/RadioProperty.test.d.ts +0 -12
  391. package/dist/stories/RadioGroup/RadioSlots.test.d.ts +0 -6
  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/VvButton/VvButton.ts +0 -87
  396. package/src/components/VvButton/useButtonGroupProps.ts +0 -43
  397. package/src/components/VvCheck/VvCheck.ts +0 -48
  398. package/src/components/VvCheck/VvCheck.vue +0 -147
  399. package/src/components/VvCheck/useCheckProps.ts +0 -41
  400. package/src/components/VvDialog/VvDialog.ts +0 -17
  401. package/src/components/VvDialog/constants.ts +0 -5
  402. package/src/components/VvInputText/VvInputText.ts +0 -66
  403. package/src/components/VvInputText/constants.ts +0 -34
  404. package/src/components/VvRadio/VvRadio.ts +0 -25
  405. package/src/components/VvRadio/useRadioProps.ts +0 -40
  406. package/src/components/VvTextarea/constants.ts +0 -14
  407. package/src/stories/Accordion/AccordionBordered.stories.mdx +0 -26
  408. package/src/stories/Accordion/AccordionIconRight.stories.mdx +0 -32
  409. package/src/stories/Accordion/accordionTest.js +0 -36
  410. package/src/stories/AccordionGroup/Accordion.stories.mdx +0 -42
  411. package/src/stories/Badge/BadgeTest.js +0 -21
  412. package/src/stories/Button/ButtonSelected.stories.mdx +0 -30
  413. package/src/stories/Check/Check.stories.mdx +0 -62
  414. package/src/stories/Check/CheckBinary.stories.mdx +0 -75
  415. package/src/stories/Check/CheckError.stories.mdx +0 -64
  416. package/src/stories/Check/CheckErrorTests.js +0 -74
  417. package/src/stories/Check/CheckHintLabel.stories.mdx +0 -30
  418. package/src/stories/Check/CheckPropertyTest.js +0 -102
  419. package/src/stories/Check/CheckSlots.stories.mdx +0 -51
  420. package/src/stories/CheckGroup/CheckGroup.stories.mdx +0 -69
  421. package/src/stories/CheckGroup/CheckGroupDisabled.stories.mdx +0 -26
  422. package/src/stories/CheckGroup/CheckGroupError.stories.mdx +0 -28
  423. package/src/stories/CheckGroup/CheckGroupHintLabel.stories.mdx +0 -27
  424. package/src/stories/CheckGroup/CheckGroupLabel.stories.mdx +0 -26
  425. package/src/stories/CheckGroup/CheckGroupReadonly.stories.mdx +0 -26
  426. package/src/stories/CheckGroup/CheckGroupSlots.stories.mdx +0 -152
  427. package/src/stories/CheckGroup/CheckGroupValid.stories.mdx +0 -28
  428. package/src/stories/CheckGroup/CheckGroupVertical.stories.mdx +0 -26
  429. package/src/stories/RadioGroup/RadioOption.test.ts +0 -45
  430. package/src/stories/RadioGroup/RadioProperty.test.ts +0 -87
  431. package/src/stories/RadioGroup/RadioSlots.test.ts +0 -29
  432. package/src/stories/stories.scss +0 -13
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
@@ -3,7 +3,6 @@ import type { Volver } from './Volver'
3
3
 
4
4
  // export all components as vue plugin
5
5
  export * from './components/index'
6
-
7
6
  export { VolverPlugin }
8
7
 
9
8
  // https://vuejs.org/guide/typescript/options-api.html#augmenting-global-properties
@@ -63,7 +63,13 @@ export const LimitProps = {
63
63
  }
64
64
 
65
65
  export const InputProps = {
66
- id: String,
66
+ /**
67
+ * Input id
68
+ */
69
+ id: [String, Number],
70
+ /**
71
+ * Input name
72
+ */
67
73
  name: { type: String, required: true },
68
74
  autocomplete: { type: String, default: 'off' },
69
75
  autofocus: Boolean,
@@ -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,11 @@
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
+ }
@@ -1,28 +1,29 @@
1
1
  import { Canvas, Meta, Story } from '@storybook/addon-docs'
2
- import VvAccordion from '../../components/VvAccordion/VvAccordion.vue'
3
-
4
- import { accordionTest } from './accordionTest.js'
2
+ import VvAccordion from '@/components/VvAccordion/VvAccordion.vue'
3
+ import { accordionTest } from './Accordion.test'
5
4
 
6
5
  <Meta
7
6
  title="Components/Accordion"
8
7
  component={VvAccordion}
9
8
  args={{
10
- open: false,
11
9
  title: 'Lorem Ipsum',
12
10
  content:
13
11
  'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean turpis diam, tempor non sem ut, suscipit gravida mi.'
14
12
  }}
15
13
  />
16
14
 
17
- export const Template = (args) => ({
15
+ export const Template = (args, { argTypes }) => ({
16
+ props: Object.keys(argTypes),
18
17
  components: { VvAccordion },
19
18
  setup() {
20
19
  return { args }
21
20
  },
22
- template: `<div class="w-1/2">
23
- <vv-accordion data-testId="accordion" v-bind="args" v-model:open="args.open" />
24
- </div>
25
- `
21
+ data() {
22
+ return {
23
+ open: false
24
+ }
25
+ },
26
+ template: `<vv-accordion data-testId="accordion" v-bind="args" v-model="open" />`
26
27
  })
27
28
 
28
29
  # VvAccordion
@@ -0,0 +1,37 @@
1
+ import type { PlayAttributes, ComponentConfig } from '@/test/types'
2
+ import { expect } from '@/test/expect'
3
+ import { sleep } from '@/test/sleep'
4
+ import { within } from '@storybook/testing-library'
5
+
6
+ async function accordionTest(
7
+ { canvasElement, ...data }: PlayAttributes,
8
+ { className = null }: ComponentConfig = {}
9
+ ) {
10
+ const accordion = (await within(canvasElement).findByTestId(
11
+ 'accordion'
12
+ )) as HTMLDetailsElement
13
+ expect(accordion).toHaveClass('vv-accordion')
14
+ className && expect(accordion).toHaveClass(className)
15
+ const title = accordion.firstChild as HTMLElement
16
+ expect(title.innerText).toEqual(data.args.title)
17
+ expect(title).toHaveClass('vv-collapse__summary')
18
+ expect(accordion.open).toBe(false)
19
+ expect(title).toBeClicked()
20
+ await sleep()
21
+ expect(accordion.open).toBeTruthy()
22
+ const content = accordion.lastChild as HTMLElement
23
+ expect(content).toHaveClass('vv-collapse__content')
24
+ expect(content.innerText).toEqual(data.args.content)
25
+ expect(accordion).toHaveNoViolations()
26
+ }
27
+
28
+ async function slotsTest({ canvasElement, ...data }: PlayAttributes) {
29
+ const accordion = await within(canvasElement).findByTestId('slot')
30
+ data.args.slotName == 'details' &&
31
+ expect(accordion.innerHTML).toEqual(data.args.details)
32
+
33
+ data.args.slotName == 'header' &&
34
+ expect(accordion.innerHTML).toEqual(data.args.title)
35
+ }
36
+
37
+ export { accordionTest, slotsTest }
@@ -1,6 +1,6 @@
1
1
  import { Canvas, Meta, Story, Source } from '@storybook/addon-docs'
2
- import VvAccordion from '../../components/VvAccordion/VvAccordion.vue'
3
- import { slotsTest } from './accordionTest.js'
2
+ import VvAccordion from '@/components/VvAccordion/VvAccordion.vue'
3
+ import { slotsTest } from './Accordion.test'
4
4
 
5
5
  <Meta title="Components/Accordion/Slots" />
6
6
 
@@ -13,7 +13,15 @@ Stories of `VvAccordion` with `slot`.
13
13
  Let's define a story for our accordion with `header` slot.
14
14
 
15
15
  <Canvas>
16
- <Story name="slot-header" play={slotsTest}>
16
+ <Story
17
+ name="slot-header"
18
+ play={slotsTest}
19
+ args={{
20
+ slotName: 'header',
21
+ title: 'Slot title',
22
+ details:
23
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean turpis diam, tempor non sem ut, suscipit gravida mi.'
24
+ }}>
17
25
  {() => {
18
26
  return {
19
27
  components: { VvAccordion },
@@ -24,13 +32,11 @@ Let's define a story for our accordion with `header` slot.
24
32
  'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean turpis diam, tempor non sem ut, suscipit gravida mi.'
25
33
  }
26
34
  },
27
- template: `<div class="w-1/2">
28
- <vv-accordion :content="content" bordered icon-right>
29
- <template #header>
30
- <p data-testId="slot" class="text-word-3">{{ title }}</p>
31
- </template>
32
- </vv-accordion>
33
- </div>`
35
+ template: `<vv-accordion :content="content">
36
+ <template #header>
37
+ <strong data-testId="slot" class="font-bold text-brand">{{ title }}</strong>
38
+ </template>
39
+ </vv-accordion>`
34
40
  }
35
41
  }}
36
42
  </Story>
@@ -38,10 +44,11 @@ Let's define a story for our accordion with `header` slot.
38
44
 
39
45
  <Source
40
46
  language="jsx"
41
- code={`<vv-accordion :content="content" bordered icon-right>
42
- <template #header>
43
- <p class="text-word-3">Slot title</p>
44
- </template>
47
+ code={`
48
+ <vv-accordion :content="content">
49
+ <template #header>
50
+ <strong class="font-bold text-brand">Slot title</strong>
51
+ </template>
45
52
  </vv-accordion>`}
46
53
  />
47
54
 
@@ -50,7 +57,14 @@ Let's define a story for our accordion with `header` slot.
50
57
  Let's define a story for our accordion with `details` slot.
51
58
 
52
59
  <Canvas>
53
- <Story name="slot-details" play={slotsTest}>
60
+ <Story
61
+ name="slot-details"
62
+ play={slotsTest}
63
+ args={{
64
+ slotName: 'details',
65
+ details:
66
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean turpis diam, tempor non sem ut, suscipit gravida mi.'
67
+ }}>
54
68
  {() => {
55
69
  return {
56
70
  components: { VvAccordion },
@@ -61,12 +75,12 @@ Let's define a story for our accordion with `details` slot.
61
75
  }
62
76
  },
63
77
  template: `<div class="w-1/2">
64
- <vv-accordion title="Slot details" bordered icon-right>
65
- <template #details>
66
- <p data-testId="slot" class='font-light text-word-3'>{{ details }}</p>
67
- </template>
68
- </vv-accordion>
69
- </div>`
78
+ <vv-accordion title="Slot details" model-value>
79
+ <template #details>
80
+ <strong data-testId="slot" class='font-bold text-brand'>{{ details }}</strong>
81
+ </template>
82
+ </vv-accordion>
83
+ </div>`
70
84
  }
71
85
  }}
72
86
  </Story>
@@ -74,9 +88,10 @@ Let's define a story for our accordion with `details` slot.
74
88
 
75
89
  <Source
76
90
  language="jsx"
77
- code={`<vv-accordion title="Slot details" bordered icon-right>
78
- <template #details>
79
- <p class='font-light text-word-3'>{{ details }}</p>
80
- </template>
91
+ code={`
92
+ <vv-accordion title="Slot details" model-value>
93
+ <template #details>
94
+ <strong class='font-bold text-brand'>{{ details }}</strong>
95
+ </template>
81
96
  </vv-accordion>`}
82
97
  />
@@ -1,20 +1,16 @@
1
1
  import { Canvas, Meta, Story } from '@storybook/addon-docs'
2
- import VvAccordionGroup from '../../components/VvAccordionGroup/VvAccordionGroup.vue'
3
- import VvAccordion from '../../components/VvAccordion/VvAccordion.vue'
4
- import { accordionGroupTest } from './accordionGroupTest.js'
2
+ import VvAccordionGroup from '@/components/VvAccordionGroup/VvAccordionGroup.vue'
3
+ import VvAccordion from '@/components/VvAccordion/VvAccordion.vue'
4
+ import { accordionGroupTest } from './AccordionGroup.test'
5
5
 
6
- <Meta
7
- title="Components/AccordionGroup"
8
- component={VvAccordionGroup}
9
- args={{}}
10
- />
6
+ <Meta title="Components/AccordionGroup" component={VvAccordionGroup} />
11
7
 
12
8
  export const Template = (args) => ({
13
9
  components: { VvAccordionGroup, VvAccordion },
14
10
  data() {
15
11
  return {
16
12
  disabled: false,
17
- accordion: '',
13
+ openedId: '',
18
14
  content:
19
15
  'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean turpis diam, tempor non sem ut, suscipit gravida mi.'
20
16
  }
@@ -22,13 +18,11 @@ export const Template = (args) => ({
22
18
  setup() {
23
19
  return { args }
24
20
  },
25
- template: `<div class="w-1/2">
26
- <vv-accordion-group data-testId="accordion-group" v-bind="args" :disabled="disabled" v-model:modelValue="accordion">
27
- <vv-accordion data-testId="accordion-1" title="Details 1" :content="content" />
28
- <vv-accordion title="Details 2" :content="content" />
29
- <vv-accordion title="Details 3" :content="content" />
30
- </vv-accordion-group>
31
- </div>`
21
+ template: `<vv-accordion-group data-testId="accordion-group" v-bind="args" :disabled="disabled" v-model="openedId">
22
+ <vv-accordion data-testId="accordion-1" title="Details 1" :content="content" />
23
+ <vv-accordion title="Details 2" :content="content" />
24
+ <vv-accordion title="Details 3" :content="content" />
25
+ </vv-accordion-group>`
32
26
  })
33
27
 
34
28
  # VvAccordionGroup
@@ -1,6 +1,5 @@
1
- import { expect } from '@storybook/jest'
1
+ import { expect } from '@/test/expect'
2
2
  import { within } from '@storybook/testing-library'
3
- import { toHaveNoViolations, axe } from 'jest-axe'
4
3
 
5
4
  async function accordionGroupTest({ canvasElement }) {
6
5
  const accordionGroup = await within(canvasElement).findByTestId(
@@ -20,7 +19,7 @@ async function accordionGroupTest({ canvasElement }) {
20
19
  expect(content.ariaHidden).toBe('true')
21
20
  }
22
21
  })
23
- accessibilityTest(accordionGroup)
22
+ await expect(accordionGroup).toHaveNoViolations()
24
23
  }
25
24
 
26
25
  async function itemsTest({ canvasElement }) {
@@ -29,23 +28,22 @@ async function itemsTest({ canvasElement }) {
29
28
  )
30
29
  accordionGroup.children[0].click()
31
30
  const selected = await within(canvasElement).findByTestId('selected')
32
- expect(selected.innerText).toBe('selected: [ "a-1" ]')
31
+ expect(selected.innerText).toBe('selected: a-1')
33
32
  await accordionGroup.children[1].click()
34
- expect(selected.innerText).toBe('selected: [ "a-1", "a-2" ]')
35
- accessibilityTest(accordionGroup)
33
+ expect(selected.innerText).toBe('selected: a-2')
34
+ await expect(accordionGroup).toHaveNoViolations()
36
35
  }
37
36
 
38
- async function accordionTest({ canvasElement }) {
39
- const accordion1 = await within(canvasElement).findByTestId('accordion-1')
40
- accordion1.firstChild.click()
37
+ async function collapseTest({ canvasElement }) {
38
+ const accordionGroup = await within(canvasElement).findByTestId(
39
+ 'accordion-group'
40
+ )
41
+ accordionGroup.children[0].click()
41
42
  const selected = await within(canvasElement).findByTestId('selected')
42
- expect(selected.innerText).toBe('selected: accordion 1')
43
- accessibilityTest(accordion1)
44
- }
45
-
46
- async function accessibilityTest(element) {
47
- expect.extend(toHaveNoViolations)
48
- expect(await axe(element)).toHaveNoViolations()
43
+ expect(selected.innerText).toBe('selected: [ "a-1" ]')
44
+ await accordionGroup.children[1].click()
45
+ expect(selected.innerText).toBe('selected: [ "a-1", "a-2" ]')
46
+ await expect(accordionGroup).toHaveNoViolations()
49
47
  }
50
48
 
51
- export { accordionGroupTest, itemsTest, accordionTest }
49
+ export { accordionGroupTest, itemsTest, collapseTest }
@@ -0,0 +1,38 @@
1
+ import { Canvas, Meta, Story, Source } from '@storybook/addon-docs'
2
+ import VvAccordionGroup from '@/components/VvAccordionGroup/VvAccordionGroup.vue'
3
+ import VvAccordion from '@/components/VvAccordion/VvAccordion.vue'
4
+ import { collapseTest } from './AccordionGroup.test'
5
+
6
+ <Meta title="Components/AccordionGroup/Props/collapse" />
7
+
8
+ # VvAccordionGroup accordion
9
+
10
+ Stories of `VvAccordionGroup` with `collapse`.
11
+
12
+ <Canvas>
13
+ <Story name="collapse" play={collapseTest}>
14
+ {(args) => ({
15
+ components: { VvAccordionGroup, VvAccordion },
16
+ data() {
17
+ return {
18
+ selected: [],
19
+ content:
20
+ 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean turpis diam, tempor non sem ut, suscipit gravida mi.'
21
+ }
22
+ },
23
+ template: `<vv-accordion-group data-testId="accordion-group" v-model="selected" collapse>
24
+ <vv-accordion name="a-1" title="Details 1" :content="content" />
25
+ <vv-accordion name="a-2" title="Details 2" :content="content" />
26
+ <vv-accordion name="a-3" title="Details 3" :content="content" />
27
+ </vv-accordion-group>
28
+ <div v-if="selected" class="mt-24" data-testId="selected" >
29
+ selected: {{ selected }}
30
+ </div>`
31
+ })}
32
+ </Story>
33
+ </Canvas>
34
+
35
+ <Source
36
+ language="jsx"
37
+ code={`<vv-accordion-group v-model="accordion" :items="items" collapse />`}
38
+ />
@@ -1,6 +1,6 @@
1
1
  import { Canvas, Meta, Story, Source } from '@storybook/addon-docs'
2
- import VvAccordionGroup from '../../components/VvAccordionGroup/VvAccordionGroup.vue'
3
- import { itemsTest } from './accordionGroupTest.js'
2
+ import VvAccordionGroup from '@/components/VvAccordionGroup/VvAccordionGroup.vue'
3
+ import { itemsTest } from './AccordionGroup.test'
4
4
 
5
5
  <Meta title="Components/AccordionGroup/Props/items" />
6
6
 
@@ -15,8 +15,6 @@ Stories of `VvAccordionGroup` with `items`.
15
15
  data() {
16
16
  return {
17
17
  selected: [],
18
- content:
19
- 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean turpis diam, tempor non sem ut, suscipit gravida mi.',
20
18
  items: [
21
19
  {
22
20
  name: 'a-1',
@@ -33,19 +31,15 @@ Stories of `VvAccordionGroup` with `items`.
33
31
  ]
34
32
  }
35
33
  },
36
- template: `<div class="flex">
37
- <div class="w-1/2">
38
- <vv-accordion-group data-testId="accordion-group" v-model:modelValue="selected" :items="items" icon-right bordered />
39
- </div>
40
- <div data-testId="selected" v-if="selected" class="w-1/2 flex justify-end">
41
- selected: {{ selected }}
42
- </div>
43
- </div>`
34
+ template: `<vv-accordion-group data-testId="accordion-group" v-model="selected" :items="items" />
35
+ <div data-testId="selected" v-if="selected" class="mt-24">
36
+ selected: {{ selected }}
37
+ </div>`
44
38
  })}
45
39
  </Story>
46
40
  </Canvas>
47
41
 
48
42
  <Source
49
43
  language="jsx"
50
- code={`<vv-accordion-group v-model:modelValue="accordion" :items="items" icon-right bordered />`}
44
+ code={`<vv-accordion-group v-model="accordion" :items="items" />`}
51
45
  />
@@ -1,7 +1,6 @@
1
1
  import { Canvas, Meta, Story } from '@storybook/addon-docs'
2
- import VvBadge from '../../components/VvBadge/VvBadge.vue'
3
- import testBadgeVariant from './BadgeTest.js'
4
- import testDangerBadge from './BadgeTest.js'
2
+ import VvBadge from '@/components/VvBadge/VvBadge.vue'
3
+ import { badgeTest } from './Badge.test'
5
4
 
6
5
  <Meta
7
6
  title="Components/Badge"
@@ -11,16 +10,17 @@ import testDangerBadge from './BadgeTest.js'
11
10
  defaultValue: '14',
12
11
  control: { type: 'text' }
13
12
  },
14
- color: {
13
+ modifiers: {
14
+ options: ['black', 'danger', 'success', 'warning'],
15
15
  control: {
16
- type: 'select',
17
- options: ['', 'black', 'danger', 'success', 'warning']
16
+ type: 'select'
18
17
  }
19
18
  }
20
19
  }}
21
20
  />
22
21
 
23
- export const Template = (args) => ({
22
+ export const Template = (args, { argTypes }) => ({
23
+ props: Object.keys(argTypes),
24
24
  components: { VvBadge },
25
25
  setup() {
26
26
  return { args }
@@ -33,6 +33,6 @@ export const Template = (args) => ({
33
33
  Stories of `VvBadge`.
34
34
  Let's define a story for our playground `badge`:
35
35
 
36
- <Story name="vv-badge" args={{}}>
36
+ <Story name="vv-badge" args={{}} play={badgeTest}>
37
37
  {Template.bind({})}
38
38
  </Story>
@@ -0,0 +1,16 @@
1
+ import type { PlayAttributes } from '@/test/types'
2
+ import { within } from '@storybook/testing-library'
3
+ import { expect } from '@/test/expect'
4
+
5
+ export const badgeTest = async ({
6
+ canvasElement,
7
+ name,
8
+ args
9
+ }: PlayAttributes) => {
10
+ const badge = await within(canvasElement).findByRole('status')
11
+ expect(badge).toHaveClass('vv-badge')
12
+ name != 'dot' &&
13
+ args.modifiers &&
14
+ expect(badge).toHaveClass(`vv-badge--${args.modifiers}`)
15
+ await expect(badge).toHaveNoViolations()
16
+ }
@@ -1,7 +1,6 @@
1
1
  import { Canvas, Meta, Story } from '@storybook/addon-docs'
2
- import VvBadge from '../../components/VvBadge/VvBadge.vue'
3
- import testBadgeVariant from './BadgeTest.js'
4
- import testDangerBadge from './BadgeTest.js'
2
+ import VvBadge from '@/components/VvBadge/VvBadge.vue'
3
+ import { badgeTest } from './Badge.test'
5
4
 
6
5
  <Meta title="Components/Badge/Props/color" />
7
6
 
@@ -10,7 +9,7 @@ import testDangerBadge from './BadgeTest.js'
10
9
  By default color is `primary` and default options are: `black`, `danger`, `success`, `warning`
11
10
 
12
11
  <Canvas>
13
- <Story name="black" play={testBadgeVariant}>
12
+ <Story name="black" play={badgeTest}>
14
13
  {() => {
15
14
  return {
16
15
  components: { VvBadge },
@@ -21,7 +20,7 @@ By default color is `primary` and default options are: `black`, `danger`, `succe
21
20
  </Canvas>
22
21
 
23
22
  <Canvas>
24
- <Story name="danger" play={testBadgeVariant}>
23
+ <Story name="danger" play={badgeTest}>
25
24
  {() => {
26
25
  return {
27
26
  components: { VvBadge },
@@ -32,7 +31,7 @@ By default color is `primary` and default options are: `black`, `danger`, `succe
32
31
  </Canvas>
33
32
 
34
33
  <Canvas>
35
- <Story name="success" play={testBadgeVariant}>
34
+ <Story name="success" play={badgeTest}>
36
35
  {() => {
37
36
  return {
38
37
  components: { VvBadge },
@@ -43,7 +42,7 @@ By default color is `primary` and default options are: `black`, `danger`, `succe
43
42
  </Canvas>
44
43
 
45
44
  <Canvas>
46
- <Story name="warning" play={testBadgeVariant}>
45
+ <Story name="warning" play={badgeTest}>
47
46
  {() => {
48
47
  return {
49
48
  components: { VvBadge },
@@ -1,6 +1,7 @@
1
1
  import { Canvas, Meta, Story } from '@storybook/addon-docs'
2
- import VvBadge from '../../components/VvBadge/VvBadge.vue'
3
- import VvButton from '../../components/VvButton/VvButton.vue'
2
+ import VvBadge from '@/components/VvBadge/VvBadge.vue'
3
+ import VvButton from '@/components/VvButton/VvButton.vue'
4
+ import { badgeTest } from './Badge.test'
4
5
 
5
6
  <Meta title="Components/Badge/dot" />
6
7
 
@@ -9,7 +10,7 @@ import VvButton from '../../components/VvButton/VvButton.vue'
9
10
  Without a value, the badge is a dot
10
11
 
11
12
  <Canvas>
12
- <Story name="dot">
13
+ <Story name="dot" play={badgeTest}>
13
14
  {() => {
14
15
  return {
15
16
  components: { VvBadge, VvButton },