@volverjs/ui-vue 0.0.1-beta.11 → 0.0.1-beta.16

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 (435) hide show
  1. package/bin/icons.cjs +73 -0
  2. package/bin/icons.js +75 -0
  3. package/dist/Volver.d.ts +15 -2
  4. package/dist/components/VvAccordion/VvAccordion.es.js +133 -236
  5. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  6. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +32 -97
  7. package/dist/components/VvAccordion/index.d.ts +46 -0
  8. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +199 -277
  9. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  10. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +44 -151
  11. package/dist/components/VvAccordionGroup/{VvAccordionGroup.d.ts → index.d.ts} +9 -13
  12. package/dist/components/VvBadge/VvBadge.es.js +57 -13
  13. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  14. package/dist/components/VvBadge/VvBadge.vue.d.ts +13 -54
  15. package/dist/components/VvBadge/{VvBadge.d.ts → index.d.ts} +1 -1
  16. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +55 -168
  17. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  18. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +25 -105
  19. package/dist/components/VvBreadcrumb/{VvBreadcrumb.d.ts → index.d.ts} +2 -2
  20. package/dist/components/VvButton/VvButton.es.js +304 -333
  21. package/dist/components/VvButton/VvButton.umd.js +1 -1
  22. package/dist/components/VvButton/VvButton.vue.d.ts +92 -199
  23. package/dist/components/VvButton/{VvButton.d.ts → index.d.ts} +44 -38
  24. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +58 -181
  25. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  26. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +26 -181
  27. package/dist/components/VvButtonGroup/{VvButtonGroup.d.ts → index.d.ts} +2 -26
  28. package/dist/components/VvCard/VvCard.es.js +55 -166
  29. package/dist/components/VvCard/VvCard.umd.js +1 -1
  30. package/dist/components/VvCard/VvCard.vue.d.ts +16 -61
  31. package/dist/components/VvCard/{VvCard.d.ts → index.d.ts} +1 -1
  32. package/dist/components/VvCheckbox/VvCheckbox.es.js +344 -0
  33. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -0
  34. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +87 -0
  35. package/dist/components/VvCheckbox/index.d.ts +86 -0
  36. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +415 -0
  37. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -0
  38. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +113 -0
  39. package/dist/components/{VvCheckGroup/VvCheckGroup.d.ts → VvCheckboxGroup/index.d.ts} +10 -10
  40. package/dist/components/VvDialog/VvDialog.es.js +108 -230
  41. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  42. package/dist/components/VvDialog/VvDialog.vue.d.ts +28 -132
  43. package/dist/components/VvDialog/{VvDialog.d.ts → index.d.ts} +2 -6
  44. package/dist/components/VvDropdown/VvDropdown.es.js +167 -186
  45. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  46. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +35 -137
  47. package/dist/components/VvDropdown/{VvDropdown.d.ts → index.d.ts} +8 -4
  48. package/dist/components/VvIcon/VvIcon.es.js +62 -174
  49. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  50. package/dist/components/VvIcon/VvIcon.vue.d.ts +36 -150
  51. package/dist/components/VvIcon/{VvIcon.d.ts → index.d.ts} +9 -0
  52. package/dist/components/VvInputText/VvInputClearAction.d.ts +36 -0
  53. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +56 -0
  54. package/dist/components/VvInputText/VvInputStepAction.d.ts +37 -0
  55. package/dist/components/VvInputText/VvInputText.es.js +586 -577
  56. package/dist/components/VvInputText/VvInputText.umd.js +1 -2
  57. package/dist/components/VvInputText/VvInputText.vue.d.ts +188 -276
  58. package/dist/components/VvInputText/VvInputTextActions.d.ts +1 -1
  59. package/dist/components/VvInputText/index.d.ts +175 -0
  60. package/dist/components/VvNativeSelect/VvNativeSelect.es.js +299 -347
  61. package/dist/components/VvNativeSelect/VvNativeSelect.umd.js +1 -2
  62. package/dist/components/VvNativeSelect/VvNativeSelect.vue.d.ts +78 -190
  63. package/dist/components/VvNativeSelect/{VvNativeSelect.d.ts → index.d.ts} +35 -8
  64. package/dist/components/VvProgress/VvProgress.es.js +45 -162
  65. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  66. package/dist/components/VvProgress/VvProgress.vue.d.ts +18 -104
  67. package/dist/components/VvProgress/{VvProgress.d.ts → index.d.ts} +2 -8
  68. package/dist/components/VvRadio/VvRadio.es.js +292 -267
  69. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  70. package/dist/components/VvRadio/VvRadio.vue.d.ts +52 -122
  71. package/dist/components/VvRadio/index.d.ts +64 -0
  72. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +342 -380
  73. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -2
  74. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +58 -213
  75. package/dist/components/VvRadioGroup/{VvRadioGroup.d.ts → index.d.ts} +2 -2
  76. package/dist/components/VvSelect/VvSelect.es.js +602 -368
  77. package/dist/components/VvSelect/VvSelect.umd.js +1 -2
  78. package/dist/components/VvSelect/VvSelect.vue.d.ts +78 -236
  79. package/dist/components/VvSelect/{VvSelect.d.ts → index.d.ts} +17 -6
  80. package/dist/components/VvTextarea/VvTextarea.es.js +372 -481
  81. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -2
  82. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +104 -300
  83. package/dist/components/VvTextarea/{VvTextarea.d.ts → index.d.ts} +37 -14
  84. package/dist/components/common/HintSlot.d.ts +10 -4
  85. package/dist/components/index.d.ts +13 -6
  86. package/dist/components/index.es.js +2091 -947
  87. package/dist/components/index.umd.js +1 -2
  88. package/dist/composables/debouncedInput/useDebouncedInput.d.ts +2 -2
  89. package/dist/composables/focus/useComponentFocus.d.ts +3 -3
  90. package/dist/composables/group/types/IAccordionGroupState.d.ts +1 -3
  91. package/dist/composables/group/types/IButtonGroupState.d.ts +4 -0
  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 +2106 -957
  102. package/dist/index.umd.js +1 -2
  103. package/dist/props/index.d.ts +11 -4
  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 +102 -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 +16 -7
  134. package/src/components/VvBadge/index.ts +6 -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 +125 -124
  138. package/src/components/VvButton/index.ts +147 -0
  139. package/src/components/VvButtonGroup/VvButtonGroup.vue +26 -33
  140. package/src/components/VvButtonGroup/{VvButtonGroup.ts → index.ts} +4 -17
  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 +91 -64
  168. package/src/components/VvSelect/{VvSelect.ts → index.ts} +16 -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/IButtonGroupState.ts +4 -0
  177. package/src/composables/group/types/IGroupState.ts +2 -2
  178. package/src/composables/group/useInjectedGroupState.ts +20 -30
  179. package/src/composables/group/useProvideGroupState.ts +1 -2
  180. package/src/composables/icons/useComponentIcons.ts +2 -3
  181. package/src/composables/options/useOptions.ts +3 -0
  182. package/src/composables/textLimit/useTextLimit.ts +1 -4
  183. package/src/composables/useModifiers.ts +13 -15
  184. package/src/constants.ts +5 -7
  185. package/src/directives/{.README → .gitkeep} +0 -0
  186. package/src/icons.ts +7 -0
  187. package/src/index.ts +0 -1
  188. package/src/props/index.ts +10 -2
  189. package/src/resolvers/unplugin.ts +103 -0
  190. package/src/shims.d.ts +11 -0
  191. package/src/stories/Accordion/Accordion.stories.mdx +10 -9
  192. package/src/stories/Accordion/Accordion.test.ts +37 -0
  193. package/src/stories/Accordion/AccordionSlots.stories.mdx +40 -25
  194. package/src/stories/AccordionGroup/AccordionGroup.stories.mdx +10 -16
  195. package/src/stories/AccordionGroup/{accordionGroupTest.js → AccordionGroup.test.js} +15 -17
  196. package/src/stories/AccordionGroup/AccordionGroupCollapse.stories.mdx +38 -0
  197. package/src/stories/AccordionGroup/{AccordionItems.stories.mdx → AccordionGroupItems.stories.mdx} +7 -13
  198. package/src/stories/Badge/Badge.stories.mdx +8 -8
  199. package/src/stories/Badge/Badge.test.ts +16 -0
  200. package/src/stories/Badge/BadgeColor.stories.mdx +10 -11
  201. package/src/stories/Badge/BadgeDot.stories.mdx +4 -3
  202. package/src/stories/Badge/BadgeModifiers.stories.mdx +66 -0
  203. package/src/stories/Breadcrumb/Breadcrumb.stories.mdx +15 -7
  204. package/src/stories/Breadcrumb/Breadcrumb.test.ts +49 -0
  205. package/src/stories/Breadcrumb/BreadcrumbMultiline.stories.mdx +15 -7
  206. package/src/stories/Button/Button.stories.mdx +16 -17
  207. package/src/stories/Button/Button.test.ts +8 -12
  208. package/src/stories/Button/ButtonActive.stories.mdx +28 -0
  209. package/src/stories/Button/ButtonBadge.stories.mdx +2 -2
  210. package/src/stories/Button/ButtonDisabled.stories.mdx +28 -0
  211. package/src/stories/Button/ButtonIcon.stories.mdx +6 -3
  212. package/src/stories/Button/ButtonIconPosition.stories.mdx +1 -2
  213. package/src/stories/Button/ButtonLink.stories.mdx +1 -19
  214. package/src/stories/Button/ButtonLoading.stories.mdx +4 -4
  215. package/src/stories/Button/ButtonModifiers.stories.mdx +104 -47
  216. package/src/stories/Button/ButtonPressed.stories.mdx +31 -0
  217. package/src/stories/Button/ButtonSlots.stories.mdx +1 -1
  218. package/src/stories/ButtonGroup/ButtonGroup.stories.mdx +5 -6
  219. package/src/stories/ButtonGroup/{ButtonGroupTest.js → ButtonGroup.test.js} +6 -28
  220. package/src/stories/ButtonGroup/ButtonGroupAction.stories.mdx +6 -7
  221. package/src/stories/ButtonGroup/ButtonGroupActionQuiet.stories.mdx +5 -6
  222. package/src/stories/ButtonGroup/ButtonGroupBlock.stories.mdx +4 -5
  223. package/src/stories/ButtonGroup/ButtonGroupCompact.stories.mdx +3 -4
  224. package/src/stories/ButtonGroup/ButtonGroupRounded.stories.mdx +4 -5
  225. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.mdx +11 -12
  226. package/src/stories/ButtonGroup/ButtonGroupVertical.stories.mdx +3 -4
  227. package/src/stories/Card/Card.stories.mdx +7 -5
  228. package/src/stories/Card/Card.test.ts +26 -0
  229. package/src/stories/Card/CardSlots.stories.mdx +5 -5
  230. package/src/stories/Card/CardVariant.stories.mdx +5 -4
  231. package/src/stories/Checkbox/Checkbox.stories.mdx +51 -0
  232. package/src/stories/Checkbox/Checkbox.test.js +115 -0
  233. package/src/stories/Checkbox/CheckboxBinary.stories.mdx +76 -0
  234. package/src/stories/{Check/CheckDisabled.stories.mdx → Checkbox/CheckboxDisabled.stories.mdx} +7 -7
  235. package/src/stories/Checkbox/CheckboxError.stories.mdx +43 -0
  236. package/src/stories/Checkbox/CheckboxHintLabel.stories.mdx +35 -0
  237. package/src/stories/{Check/CheckReadonly.stories.mdx → Checkbox/CheckboxReadonly.stories.mdx} +6 -8
  238. package/src/stories/Checkbox/CheckboxSlots.stories.mdx +69 -0
  239. package/src/stories/{Check/CheckSwitch.stories.mdx → Checkbox/CheckboxSwitch.stories.mdx} +8 -8
  240. package/src/stories/CheckboxGroup/CheckboxGroup.stories.mdx +69 -0
  241. package/src/stories/CheckboxGroup/CheckboxGroupDisabled.stories.mdx +26 -0
  242. package/src/stories/CheckboxGroup/CheckboxGroupError.stories.mdx +28 -0
  243. package/src/stories/CheckboxGroup/CheckboxGroupHintLabel.stories.mdx +27 -0
  244. package/src/stories/CheckboxGroup/CheckboxGroupLabel.stories.mdx +26 -0
  245. package/src/stories/{CheckGroup/CheckGroupOptionLabel.stories.mdx → CheckboxGroup/CheckboxGroupOptionLabel.stories.mdx} +14 -11
  246. package/src/stories/{CheckGroup/CheckGroupOptionValue.stories.mdx → CheckboxGroup/CheckboxGroupOptionValue.stories.mdx} +13 -10
  247. package/src/stories/{CheckGroup/CheckGroupOptions.stories.mdx → CheckboxGroup/CheckboxGroupOptions.stories.mdx} +8 -8
  248. package/src/stories/CheckboxGroup/CheckboxGroupReadonly.stories.mdx +26 -0
  249. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.mdx +152 -0
  250. package/src/stories/CheckboxGroup/CheckboxGroupValid.stories.mdx +28 -0
  251. package/src/stories/CheckboxGroup/CheckboxGroupVertical.stories.mdx +26 -0
  252. package/src/stories/Dialog/Dialog.stories.mdx +5 -5
  253. package/src/stories/Dialog/Dialog.test.ts +26 -0
  254. package/src/stories/Dialog/DialogAutoClose.stories.mdx +1 -1
  255. package/src/stories/Dialog/DialogSize.stories.mdx +1 -1
  256. package/src/stories/Dropdown/Dropdown.stories.mdx +11 -7
  257. package/src/stories/Dropdown/Dropdown.test.ts +80 -0
  258. package/src/stories/Dropdown/DropdownDisabled.stories.mdx +9 -2
  259. package/src/stories/Dropdown/DropdownLabelNoResults.stories.mdx +2 -2
  260. package/src/stories/Dropdown/DropdownMaxValues.stories.mdx +4 -2
  261. package/src/stories/Dropdown/DropdownMultiple.stories.mdx +4 -2
  262. package/src/stories/Dropdown/DropdownOptions.stories.mdx +4 -4
  263. package/src/stories/Dropdown/DropdownUseObject.stories.mdx +4 -2
  264. package/src/stories/Icon/Icon.stories.mdx +8 -8
  265. package/src/stories/Icon/{IconTest.js → Icon.test.js} +2 -5
  266. package/src/stories/Icon/IconList.vue +5 -6
  267. package/src/stories/Icon/IconPrefix.stories.mdx +2 -2
  268. package/src/stories/Icon/IconRemote.stories.mdx +2 -2
  269. package/src/stories/Icon/IconsList.stories.mdx +2 -18
  270. package/src/stories/InputText/InputText.stories.mdx +25 -19
  271. package/src/stories/InputText/InputText.test.ts +156 -0
  272. package/src/stories/InputText/InputTextAutocomplete.stories.mdx +9 -2
  273. package/src/stories/InputText/InputTextAutofocus.stories.mdx +6 -3
  274. package/src/stories/InputText/InputTextDisabled.stories.mdx +10 -2
  275. package/src/stories/InputText/InputTextError.stories.mdx +10 -2
  276. package/src/stories/InputText/InputTextFloating.stories.mdx +10 -3
  277. package/src/stories/InputText/InputTextHintLabel.stories.mdx +10 -2
  278. package/src/stories/InputText/InputTextIcon.stories.mdx +6 -2
  279. package/src/stories/InputText/InputTextIconPosition.stories.mdx +10 -3
  280. package/src/stories/InputText/InputTextLabel.stories.mdx +8 -2
  281. package/src/stories/InputText/InputTextLoading.stories.mdx +10 -2
  282. package/src/stories/InputText/InputTextMax.stories.mdx +10 -3
  283. package/src/stories/InputText/InputTextMaxLength.stories.mdx +22 -5
  284. package/src/stories/InputText/InputTextMin.stories.mdx +10 -3
  285. package/src/stories/InputText/InputTextMinLength.stories.mdx +9 -2
  286. package/src/stories/InputText/InputTextPlaceholder.stories.mdx +8 -2
  287. package/src/stories/InputText/InputTextReadonly.stories.mdx +6 -2
  288. package/src/stories/InputText/InputTextSlots.stories.mdx +4 -5
  289. package/src/stories/InputText/InputTextStep.stories.mdx +9 -3
  290. package/src/stories/InputText/InputTextType.stories.mdx +110 -13
  291. package/src/stories/InputText/InputTextValid.stories.mdx +10 -2
  292. package/src/stories/NativeSelect/NativeSelect.stories.mdx +15 -11
  293. package/src/stories/NativeSelect/NativeSelect.test.js +151 -0
  294. package/src/stories/NativeSelect/NativeSelectDisabled.stories.mdx +6 -7
  295. package/src/stories/NativeSelect/NativeSelectError.stories.mdx +7 -3
  296. package/src/stories/NativeSelect/NativeSelectHintLabel.stories.mdx +7 -3
  297. package/src/stories/NativeSelect/NativeSelectIconLeftRight.stories.mdx +14 -12
  298. package/src/stories/NativeSelect/NativeSelectLoading.stories.mdx +7 -3
  299. package/src/stories/NativeSelect/NativeSelectOptions.stories.mdx +44 -38
  300. package/src/stories/NativeSelect/NativeSelectReadonly.stories.mdx +19 -11
  301. package/src/stories/NativeSelect/NativeSelectUseObject.stories.mdx +26 -30
  302. package/src/stories/NativeSelect/NativeSelectValid.stories.mdx +7 -3
  303. package/src/stories/NativeSelect/NativeSelectValueKey.stories.mdx +30 -30
  304. package/src/stories/Progress/Progress.stories.mdx +8 -11
  305. package/src/stories/Progress/{ProgressTest.js → Progress.test.js} +4 -10
  306. package/src/stories/Progress/ProgressDeterminate.stories.mdx +3 -6
  307. package/src/stories/Radio/Radio.stories.mdx +11 -17
  308. package/src/stories/Radio/Radio.test.ts +52 -0
  309. package/src/stories/Radio/RadioDisabled.stories.mdx +4 -7
  310. package/src/stories/Radio/RadioError.stories.mdx +8 -28
  311. package/src/stories/Radio/RadioHintLabel.stories.mdx +6 -7
  312. package/src/stories/Radio/RadioSlots.stories.mdx +21 -7
  313. package/src/stories/RadioGroup/RadioGroup.stories.mdx +20 -27
  314. package/src/stories/RadioGroup/RadioGroup.test.ts +139 -0
  315. package/src/stories/RadioGroup/RadioGroupDisabled.stories.mdx +6 -8
  316. package/src/stories/RadioGroup/RadioGroupError.stories.mdx +9 -11
  317. package/src/stories/RadioGroup/RadioGroupHintLabel.stories.mdx +13 -15
  318. package/src/stories/RadioGroup/RadioGroupLabel.stories.mdx +12 -9
  319. package/src/stories/RadioGroup/RadioGroupOptionLabel.stories.mdx +16 -30
  320. package/src/stories/RadioGroup/RadioGroupOptionValue.stories.mdx +15 -29
  321. package/src/stories/RadioGroup/RadioGroupOptions.stories.mdx +9 -25
  322. package/src/stories/RadioGroup/RadioGroupReadonly.stories.mdx +6 -8
  323. package/src/stories/RadioGroup/RadioGroupSlots.stories.mdx +48 -70
  324. package/src/stories/RadioGroup/RadioGroupValid.stories.mdx +9 -11
  325. package/src/stories/RadioGroup/RadioGroupVertical.stories.mdx +6 -8
  326. package/src/stories/Select/Select.stories.mdx +32 -29
  327. package/src/stories/Select/Select.test.ts +104 -0
  328. package/src/stories/Select/SelectDisabled.stories.mdx +3 -3
  329. package/src/stories/Select/SelectMaxValues.stories.mdx +3 -3
  330. package/src/stories/Select/SelectMultiple.stories.mdx +5 -6
  331. package/src/stories/Select/SelectNative.stories.mdx +43 -0
  332. package/src/stories/Select/SelectOptions.stories.mdx +4 -4
  333. package/src/stories/Select/SelectSearchable.stories.mdx +13 -12
  334. package/src/stories/Select/SelectSeparator.stories.mdx +3 -3
  335. package/src/stories/Select/SelectUseObject.stories.mdx +3 -3
  336. package/src/stories/Textarea/Textarea.stories.mdx +6 -10
  337. package/src/stories/Textarea/Textarea.test.ts +204 -0
  338. package/src/stories/Textarea/TextareaAutoclear.stories.mdx +3 -2
  339. package/src/stories/Textarea/TextareaAutocomplete.stories.mdx +3 -2
  340. package/src/stories/Textarea/TextareaAutofocus.stories.mdx +3 -2
  341. package/src/stories/Textarea/TextareaDebounce.stories.mdx +7 -6
  342. package/src/stories/Textarea/TextareaDisabled.stories.mdx +9 -3
  343. package/src/stories/Textarea/TextareaError.stories.mdx +7 -2
  344. package/src/stories/Textarea/TextareaErrorLabel.stories.mdx +12 -2
  345. package/src/stories/Textarea/TextareaFloating.stories.mdx +7 -2
  346. package/src/stories/Textarea/TextareaHintLabel.stories.mdx +7 -2
  347. package/src/stories/Textarea/TextareaIcon.stories.mdx +3 -2
  348. package/src/stories/Textarea/TextareaIconPosition.stories.mdx +4 -2
  349. package/src/stories/Textarea/TextareaId.stories.mdx +3 -2
  350. package/src/stories/Textarea/TextareaLabel.stories.mdx +3 -2
  351. package/src/stories/Textarea/TextareaLimit.stories.mdx +5 -2
  352. package/src/stories/Textarea/TextareaLoading.stories.mdx +7 -2
  353. package/src/stories/Textarea/TextareaLoadingLabel.stories.mdx +9 -3
  354. package/src/stories/Textarea/TextareaMaxLength.stories.mdx +5 -4
  355. package/src/stories/Textarea/TextareaMinLength.stories.mdx +3 -2
  356. package/src/stories/Textarea/TextareaModifiers.stories.mdx +10 -2
  357. package/src/stories/Textarea/TextareaName.stories.mdx +3 -2
  358. package/src/stories/Textarea/TextareaPlaceholder.stories.mdx +4 -3
  359. package/src/stories/Textarea/TextareaReadonly.stories.mdx +8 -3
  360. package/src/stories/Textarea/TextareaRequired.stories.mdx +3 -2
  361. package/src/stories/Textarea/TextareaResizable.stories.mdx +7 -2
  362. package/src/stories/Textarea/TextareaRowsCols.stories.mdx +4 -2
  363. package/src/stories/Textarea/TextareaSlots.stories.mdx +7 -8
  364. package/src/stories/Textarea/TextareaValid.stories.mdx +7 -1
  365. package/src/stories/Textarea/TextareaValidLabel.stories.mdx +14 -4
  366. package/src/stories/utils.ts +1 -1
  367. package/src/stories/volver-ui-vue.stories.mdx +1 -1
  368. package/src/test/expect.ts +3 -1
  369. package/src/test/sleep.ts +2 -0
  370. package/src/test/types.d.ts +14 -1
  371. package/src/types/{.README → .gitkeep} +0 -0
  372. package/src/utils/ObjectUtilities.ts +247 -241
  373. package/dist/components/VvAccordion/VvAccordion.d.ts +0 -32
  374. package/dist/components/VvAccordion/useAccordionProps.d.ts +0 -16
  375. package/dist/components/VvButton/useButtonGroupProps.d.ts +0 -23
  376. package/dist/components/VvCheck/VvCheck.d.ts +0 -47
  377. package/dist/components/VvCheck/VvCheck.es.js +0 -318
  378. package/dist/components/VvCheck/VvCheck.umd.js +0 -1
  379. package/dist/components/VvCheck/VvCheck.vue.d.ts +0 -165
  380. package/dist/components/VvCheck/useCheckProps.d.ts +0 -16
  381. package/dist/components/VvCheckGroup/VvCheckGroup.es.js +0 -451
  382. package/dist/components/VvCheckGroup/VvCheckGroup.umd.js +0 -2
  383. package/dist/components/VvCheckGroup/VvCheckGroup.vue.d.ts +0 -272
  384. package/dist/components/VvDialog/constants.d.ts +0 -5
  385. package/dist/components/VvInputText/VvInputText.d.ts +0 -73
  386. package/dist/components/VvInputText/constants.d.ts +0 -55
  387. package/dist/components/VvRadio/VvRadio.d.ts +0 -22
  388. package/dist/components/VvRadio/useRadioProps.d.ts +0 -15
  389. package/dist/components/VvTextarea/constants.d.ts +0 -19
  390. package/dist/stories/RadioGroup/RadioProperty.test.d.ts +0 -12
  391. package/src/assets/icons/index.js +0 -7
  392. package/src/components/VvAccordion/VvAccordion.ts +0 -34
  393. package/src/components/VvAccordion/useAccordionProps.ts +0 -45
  394. package/src/components/VvBadge/VvBadge.ts +0 -4
  395. package/src/components/VvButton/VvButton.ts +0 -117
  396. package/src/components/VvButton/useButtonGroupProps.ts +0 -51
  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/ButtonVariant.stories.mdx +0 -205
  413. package/src/stories/Button/test.js +0 -41
  414. package/src/stories/Check/Check.stories.mdx +0 -62
  415. package/src/stories/Check/CheckBinary.stories.mdx +0 -75
  416. package/src/stories/Check/CheckError.stories.mdx +0 -64
  417. package/src/stories/Check/CheckErrorTests.js +0 -74
  418. package/src/stories/Check/CheckHintLabel.stories.mdx +0 -30
  419. package/src/stories/Check/CheckPropertyTest.js +0 -102
  420. package/src/stories/Check/CheckSlots.stories.mdx +0 -51
  421. package/src/stories/CheckGroup/CheckGroup.stories.mdx +0 -69
  422. package/src/stories/CheckGroup/CheckGroupDisabled.stories.mdx +0 -26
  423. package/src/stories/CheckGroup/CheckGroupError.stories.mdx +0 -28
  424. package/src/stories/CheckGroup/CheckGroupHintLabel.stories.mdx +0 -27
  425. package/src/stories/CheckGroup/CheckGroupLabel.stories.mdx +0 -26
  426. package/src/stories/CheckGroup/CheckGroupReadonly.stories.mdx +0 -26
  427. package/src/stories/CheckGroup/CheckGroupSlots.stories.mdx +0 -152
  428. package/src/stories/CheckGroup/CheckGroupValid.stories.mdx +0 -28
  429. package/src/stories/CheckGroup/CheckGroupVertical.stories.mdx +0 -26
  430. package/src/stories/Radio/RadioTest.js +0 -90
  431. package/src/stories/RadioGroup/RadioOptionsTest.js +0 -78
  432. package/src/stories/RadioGroup/RadioProperty.test.ts +0 -87
  433. package/src/stories/RadioGroup/RadioPropertyTest.js +0 -131
  434. package/src/stories/RadioGroup/RadioSlotsTest.js +0 -20
  435. package/src/stories/stories.scss +0 -35
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
@@ -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
@@ -1,3 +1,5 @@
1
+ import type { PropType } from 'vue'
2
+
1
3
  export const ValidProps = {
2
4
  valid: Boolean,
3
5
  validLabel: [String, Array]
@@ -22,7 +24,7 @@ export const ReadonlyProps = {
22
24
  }
23
25
 
24
26
  export const ModifiersProps = {
25
- modifiers: [String, Array]
27
+ modifiers: [String, Array] as PropType<string | Array<string>>
26
28
  }
27
29
 
28
30
  export const HintProps = {
@@ -61,7 +63,13 @@ export const LimitProps = {
61
63
  }
62
64
 
63
65
  export const InputProps = {
64
- id: String,
66
+ /**
67
+ * Input id
68
+ */
69
+ id: [String, Number],
70
+ /**
71
+ * Input name
72
+ */
65
73
  name: { type: String, required: true },
66
74
  autocomplete: { type: String, default: 'off' },
67
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,44 +9,44 @@ 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 },
17
- template: `<vv-badge color="black" role="status" value="12" />`
16
+ template: `<vv-badge modifiers="black" role="status" value="12" />`
18
17
  }
19
18
  }}
20
19
  </Story>
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 },
28
- template: `<vv-badge color="danger" role="status" value="16" />`
27
+ template: `<vv-badge modifiers="danger" role="status" value="16" />`
29
28
  }
30
29
  }}
31
30
  </Story>
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 },
39
- template: `<vv-badge color="success" role="status" value="10" />`
38
+ template: `<vv-badge modifiers="success" role="status" value="10" />`
40
39
  }
41
40
  }}
42
41
  </Story>
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 },
50
- template: `<vv-badge color="warning" role="status" value="8" />`
49
+ template: `<vv-badge modifiers="warning" role="status" value="8" />`
51
50
  }
52
51
  }}
53
52
  </Story>