@volverjs/ui-vue 0.0.6-beta.7 → 0.0.7-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/README.md +3 -5
  2. package/auto-imports.d.ts +2 -0
  3. package/dist/components/VvAccordion/VvAccordion.es.js +220 -4
  4. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  5. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +8 -8
  6. package/dist/components/VvAccordion/index.d.ts +1 -4
  7. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +221 -8
  8. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  9. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +6 -6
  10. package/dist/components/VvAccordionGroup/index.d.ts +2 -5
  11. package/dist/components/VvAction/VvAction.es.js +12 -8
  12. package/dist/components/VvAction/VvAction.umd.js +1 -1
  13. package/dist/components/VvAction/VvAction.vue.d.ts +4 -4
  14. package/dist/components/VvAction/index.d.ts +1 -1
  15. package/dist/components/VvAlert/VvAlert.es.js +661 -0
  16. package/dist/components/VvAlert/VvAlert.umd.js +1 -0
  17. package/dist/components/VvAlert/VvAlert.vue.d.ts +104 -0
  18. package/dist/components/VvAlert/index.d.ts +95 -0
  19. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +799 -0
  20. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -0
  21. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +89 -0
  22. package/dist/components/VvAlertGroup/index.d.ts +55 -0
  23. package/dist/components/VvAvatar/VvAvatar.es.js +3 -3
  24. package/dist/components/VvAvatar/VvAvatar.vue.d.ts +2 -2
  25. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +3 -3
  26. package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +2 -2
  27. package/dist/components/VvBadge/VvBadge.es.js +3 -3
  28. package/dist/components/VvBadge/VvBadge.vue.d.ts +2 -2
  29. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +3 -3
  30. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +3 -3
  31. package/dist/components/VvButton/VvButton.es.js +14 -10
  32. package/dist/components/VvButton/VvButton.umd.js +1 -1
  33. package/dist/components/VvButton/VvButton.vue.d.ts +13 -13
  34. package/dist/components/VvButton/index.d.ts +2 -2
  35. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +3 -3
  36. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +4 -4
  37. package/dist/components/VvCard/VvCard.es.js +221 -2
  38. package/dist/components/VvCard/VvCard.umd.js +1 -1
  39. package/dist/components/VvCard/VvCard.vue.d.ts +5 -5
  40. package/dist/components/VvCheckbox/VvCheckbox.es.js +3 -3
  41. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +18 -18
  42. package/dist/components/VvCheckbox/index.d.ts +3 -3
  43. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +3 -3
  44. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +16 -16
  45. package/dist/components/VvCheckboxGroup/index.d.ts +3 -3
  46. package/dist/components/VvCombobox/VvCombobox.es.js +65 -60
  47. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  48. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +56 -44
  49. package/dist/components/VvCombobox/index.d.ts +13 -7
  50. package/dist/components/VvDialog/VvDialog.es.js +19 -14
  51. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  52. package/dist/components/VvDialog/VvDialog.vue.d.ts +7 -7
  53. package/dist/components/VvDialog/index.d.ts +2 -2
  54. package/dist/components/VvDropdown/VvDropdown.es.js +22 -23
  55. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  56. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +16 -16
  57. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +4 -4
  58. package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +2 -2
  59. package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +1 -1
  60. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +4 -4
  61. package/dist/components/VvDropdown/index.d.ts +1 -1
  62. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +17 -11
  63. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  64. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +9 -5
  65. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  66. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +3 -3
  67. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +12 -8
  68. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  69. package/dist/components/VvIcon/VvIcon.vue.d.ts +1 -1
  70. package/dist/components/VvInputText/VvInputClearAction.d.ts +2 -2
  71. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +1 -1
  72. package/dist/components/VvInputText/VvInputStepAction.d.ts +1 -1
  73. package/dist/components/VvInputText/VvInputText.es.js +5 -5
  74. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  75. package/dist/components/VvInputText/VvInputText.vue.d.ts +30 -30
  76. package/dist/components/VvInputText/index.d.ts +5 -5
  77. package/dist/components/VvNav/VvNav.es.js +12 -8
  78. package/dist/components/VvNav/VvNav.umd.js +1 -1
  79. package/dist/components/VvNav/VvNav.vue.d.ts +1 -1
  80. package/dist/components/VvNavItemTitle/VvNavItemTitle.vue.d.ts +1 -1
  81. package/dist/components/VvNavSeparator/VvNavSeparator.d.ts +1 -1
  82. package/dist/components/VvProgress/VvProgress.es.js +3 -3
  83. package/dist/components/VvProgress/VvProgress.vue.d.ts +1 -1
  84. package/dist/components/VvRadio/VvRadio.es.js +3 -3
  85. package/dist/components/VvRadio/VvRadio.vue.d.ts +18 -18
  86. package/dist/components/VvRadio/index.d.ts +3 -3
  87. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +3 -3
  88. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +16 -16
  89. package/dist/components/VvRadioGroup/index.d.ts +3 -3
  90. package/dist/components/VvSelect/VvSelect.es.js +3 -3
  91. package/dist/components/VvSelect/VvSelect.vue.d.ts +26 -26
  92. package/dist/components/VvSelect/index.d.ts +4 -4
  93. package/dist/components/VvTab/VvTab.es.js +12 -8
  94. package/dist/components/VvTab/VvTab.umd.js +1 -1
  95. package/dist/components/VvTab/VvTab.vue.d.ts +1 -1
  96. package/dist/components/VvTextarea/VvTextarea.es.js +3 -3
  97. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +24 -24
  98. package/dist/components/VvTextarea/index.d.ts +3 -3
  99. package/dist/components/VvTooltip/VvTooltip.es.js +3 -3
  100. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +2 -2
  101. package/dist/components/common/HintSlot.d.ts +1 -1
  102. package/dist/components/index.es.js +773 -769
  103. package/dist/components/index.umd.js +1 -1
  104. package/dist/composables/alert/useInjectAlert.d.ts +9 -0
  105. package/dist/composables/alert/useProvideAlert.d.ts +10 -0
  106. package/dist/composables/dropdown/useInjectDropdown.d.ts +17 -16
  107. package/dist/composables/dropdown/useProvideDropdown.d.ts +7 -3
  108. package/dist/composables/useVolver.d.ts +1 -2
  109. package/dist/constants.d.ts +33 -4
  110. package/dist/directives/index.es.js +3 -3
  111. package/dist/directives/v-tooltip.es.js +3 -3
  112. package/dist/icons.es.js +3 -3
  113. package/dist/icons.umd.js +1 -1
  114. package/dist/props/index.d.ts +16 -16
  115. package/dist/resolvers/unplugin.es.js +6 -3
  116. package/dist/resolvers/unplugin.umd.js +1 -1
  117. package/dist/stories/Accordion/Accordion.settings.d.ts +18 -17
  118. package/dist/stories/Accordion/Accordion.stories.d.ts +7 -0
  119. package/dist/stories/Accordion/AccordionSlots.stories.d.ts +7 -0
  120. package/dist/stories/AccordionGroup/AccordionGroup.settings.d.ts +23 -4
  121. package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +134 -0
  122. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +894 -0
  123. package/dist/stories/Alert/Alert.settings.d.ts +105 -0
  124. package/dist/stories/Alert/Alert.stories.d.ts +9 -0
  125. package/dist/stories/Alert/Alert.test.d.ts +2 -0
  126. package/dist/stories/Alert/AlertModifiers.stories.d.ts +13 -0
  127. package/dist/stories/Alert/AlertSlots.stories.d.ts +10 -0
  128. package/dist/stories/AlertGroup/AlertGroup.settings.d.ts +97 -0
  129. package/dist/stories/AlertGroup/AlertGroup.stories.d.ts +8 -0
  130. package/dist/stories/AlertGroup/AlertGroup.test.d.ts +2 -0
  131. package/dist/stories/AlertGroup/AlertGroupPosition.stories.d.ts +14 -0
  132. package/dist/stories/AlertGroup/AlertGroupSlots.stories.d.ts +8 -0
  133. package/dist/stories/Avatar/Avatar.settings.d.ts +2 -33
  134. package/dist/stories/Avatar/Avatar.stories.d.ts +7 -0
  135. package/dist/stories/Avatar/AvatarBadge.stories.d.ts +6 -0
  136. package/dist/stories/Avatar/AvatarModifiers.stories.d.ts +13 -0
  137. package/dist/stories/Avatar/AvatarSlots.stories.d.ts +6 -0
  138. package/dist/stories/AvatarGroup/AvatarGroup.settings.d.ts +0 -6
  139. package/dist/stories/AvatarGroup/AvatarGroup.stories.d.ts +6 -0
  140. package/dist/stories/AvatarGroup/AvatarGroupModifiers.stories.d.ts +7 -0
  141. package/dist/stories/AvatarGroup/AvatarGroupSlotDefault.stories.d.ts +6 -0
  142. package/dist/stories/Badge/Badge.settings.d.ts +0 -3
  143. package/dist/stories/Badge/Badge.stories.d.ts +7 -0
  144. package/dist/stories/Badge/BadgeSlots.stories.d.ts +6 -0
  145. package/dist/stories/Breadcrumb/Breadcrumb.stories.d.ts +7 -0
  146. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +1 -1
  147. package/dist/stories/Breadcrumb/BreadcrumbSlots.stories.d.ts +6 -0
  148. package/dist/stories/Button/Button.settings.d.ts +1 -18
  149. package/dist/stories/Button/Button.stories.d.ts +6 -0
  150. package/dist/stories/Button/ButtonIcon.stories.d.ts +10 -0
  151. package/dist/stories/Button/ButtonLink.stories.d.ts +7 -0
  152. package/dist/stories/Button/ButtonLoading.stories.d.ts +8 -0
  153. package/dist/stories/Button/ButtonModifiers.stories.d.ts +17 -0
  154. package/dist/stories/Button/ButtonSlots.stories.d.ts +9 -0
  155. package/dist/stories/Button/ButtonState.stories.d.ts +8 -0
  156. package/dist/stories/Button/ButtonToggle.stories.d.ts +9 -0
  157. package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +0 -4
  158. package/dist/stories/ButtonGroup/ButtonGroup.stories.d.ts +6 -0
  159. package/dist/stories/ButtonGroup/ButtonGroupModifiers.stories.d.ts +8 -0
  160. package/dist/stories/ButtonGroup/ButtonGroupSlots.stories.d.ts +6 -0
  161. package/dist/stories/ButtonGroup/ButtonGroupToggle.stories.d.ts +8 -0
  162. package/dist/stories/Card/Card.settings.d.ts +0 -3
  163. package/dist/stories/Card/Card.stories.d.ts +6 -0
  164. package/dist/stories/Card/CardSlots.stories.d.ts +9 -0
  165. package/dist/stories/Checkbox/Checkbox.settings.d.ts +1 -21
  166. package/dist/stories/Checkbox/Checkbox.stories.d.ts +13 -0
  167. package/dist/stories/Checkbox/CheckboxBinary.stories.d.ts +7 -0
  168. package/dist/stories/Checkbox/CheckboxSlots.stories.d.ts +7 -0
  169. package/dist/stories/CheckboxGroup/CheckboxGroup.settings.d.ts +1 -27
  170. package/dist/stories/CheckboxGroup/CheckboxGroup.stories.d.ts +12 -0
  171. package/dist/stories/CheckboxGroup/CheckboxGroupOptions.stories.d.ts +8 -0
  172. package/dist/stories/CheckboxGroup/CheckboxGroupSlots.stories.d.ts +7 -0
  173. package/dist/stories/Combobox/Combobox.settings.d.ts +2 -54
  174. package/dist/stories/Combobox/Combobox.stories.d.ts +21 -0
  175. package/dist/stories/Combobox/ComboboxIconPosition.stories.d.ts +8 -0
  176. package/dist/stories/Combobox/ComboboxMultiple.stories.d.ts +8 -0
  177. package/dist/stories/Combobox/ComboboxOptions.stories.d.ts +9 -0
  178. package/dist/stories/Combobox/ComboboxSlots.stories.d.ts +10 -0
  179. package/dist/stories/Dialog/Dialog.settings.d.ts +1 -1
  180. package/dist/stories/Dialog/Dialog.stories.d.ts +7 -0
  181. package/dist/stories/Dialog/DialogSlots.stories.d.ts +8 -0
  182. package/dist/stories/Dropdown/Dropdown.settings.d.ts +1 -1
  183. package/dist/stories/Dropdown/Dropdown.stories.d.ts +9 -0
  184. package/dist/stories/Dropdown/DropdownContextmenuDirective.stories.d.ts +6 -0
  185. package/dist/stories/Dropdown/DropdownMultilevel.stories.d.ts +6 -0
  186. package/dist/stories/Dropdown/DropdownSlots.stories.d.ts +8 -0
  187. package/dist/stories/Icon/Icon.settings.d.ts +1 -3
  188. package/dist/stories/Icon/Icon.stories.d.ts +8 -0
  189. package/dist/stories/Icon/IconsCollection.stories.d.ts +6 -0
  190. package/dist/stories/InputText/InputText.settings.d.ts +1 -74
  191. package/dist/stories/InputText/InputText.stories.d.ts +15 -0
  192. package/dist/stories/InputText/InputTextIconPosition.stories.d.ts +8 -0
  193. package/dist/stories/InputText/InputTextLength.stories.d.ts +10 -0
  194. package/dist/stories/InputText/InputTextMinMax.stories.d.ts +9 -0
  195. package/dist/stories/InputText/InputTextSlots.stories.d.ts +8 -0
  196. package/dist/stories/InputText/InputTextType.stories.d.ts +18 -0
  197. package/dist/stories/Nav/Nav.settings.d.ts +0 -3
  198. package/dist/stories/Nav/Nav.stories.d.ts +6 -0
  199. package/dist/stories/Nav/NavModifiers.stories.d.ts +9 -0
  200. package/dist/stories/Progress/Progress.settings.d.ts +0 -6
  201. package/dist/stories/Progress/Progress.stories.d.ts +7 -0
  202. package/dist/stories/Radio/Radio.settings.d.ts +1 -19
  203. package/dist/stories/Radio/Radio.stories.d.ts +11 -0
  204. package/dist/stories/Radio/RadioSlots.stories.d.ts +7 -0
  205. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +1 -27
  206. package/dist/stories/RadioGroup/RadioGroup.stories.d.ts +12 -0
  207. package/dist/stories/RadioGroup/RadioGroupOptions.stories.d.ts +8 -0
  208. package/dist/stories/RadioGroup/RadioGroupSlots.stories.d.ts +7 -0
  209. package/dist/stories/Select/Select.settings.d.ts +1 -47
  210. package/dist/stories/Select/Select.stories.d.ts +15 -0
  211. package/dist/stories/Select/SelectIconPosition.stories.d.ts +8 -0
  212. package/dist/stories/Select/SelectOptions.stories.d.ts +9 -0
  213. package/dist/stories/Select/SelectSlots.stories.d.ts +8 -0
  214. package/dist/stories/Tab/Tab.stories.d.ts +6 -0
  215. package/dist/stories/Textarea/Textarea.settings.d.ts +1 -43
  216. package/dist/stories/Textarea/Textarea.stories.d.ts +14 -0
  217. package/dist/stories/Textarea/TextareaLength.stories.d.ts +10 -0
  218. package/dist/stories/Textarea/TextareaSlots.stories.d.ts +8 -0
  219. package/dist/stories/Textarea/TextareatIconPosition.stories.d.ts +8 -0
  220. package/dist/stories/Tooltip/Tooltip.settings.d.ts +2 -39
  221. package/dist/stories/Tooltip/Tooltip.stories.d.ts +6 -0
  222. package/dist/stories/Tooltip/TooltipDirective.stories.d.ts +10 -0
  223. package/dist/stories/argTypes.d.ts +5 -125
  224. package/package.json +66 -49
  225. package/src/assets/icons/detailed.json +1 -1
  226. package/src/assets/icons/normal.json +1 -1
  227. package/src/assets/icons/simple.json +1 -1
  228. package/src/components/VvAccordion/index.ts +2 -4
  229. package/src/components/VvAccordionGroup/index.ts +3 -4
  230. package/src/components/VvAction/VvAction.vue +1 -1
  231. package/src/components/VvAlert/VvAlert.vue +54 -0
  232. package/src/components/VvAlert/index.ts +162 -0
  233. package/src/components/VvAlertGroup/VvAlertGroup.vue +34 -0
  234. package/src/components/VvAlertGroup/index.ts +122 -0
  235. package/src/components/VvCard/index.ts +3 -1
  236. package/src/components/VvCombobox/VvCombobox.vue +22 -26
  237. package/src/components/VvCombobox/index.ts +9 -3
  238. package/src/components/VvDialog/VvDialog.vue +11 -7
  239. package/src/components/VvDialog/index.ts +2 -2
  240. package/src/components/VvDropdown/VvDropdown.vue +8 -4
  241. package/src/components/VvDropdown/VvDropdownItem.vue +2 -2
  242. package/src/composables/alert/useInjectAlert.ts +8 -0
  243. package/src/composables/alert/useProvideAlert.ts +23 -0
  244. package/src/composables/dropdown/useInjectDropdown.ts +3 -28
  245. package/src/composables/dropdown/useProvideDropdown.ts +14 -15
  246. package/src/composables/useVolver.ts +1 -2
  247. package/src/constants.ts +42 -4
  248. package/src/props/index.ts +3 -3
  249. package/src/resolvers/unplugin.ts +6 -3
  250. package/src/stories/Accordion/Accordion.settings.ts +18 -7
  251. package/src/stories/Accordion/Accordion.stories.ts +45 -0
  252. package/src/stories/Accordion/AccordionSlots.stories.ts +29 -0
  253. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +22 -0
  254. package/src/stories/AccordionGroup/AccordionGroup.stories.ts +62 -0
  255. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +53 -0
  256. package/src/stories/Alert/Alert.settings.ts +110 -0
  257. package/src/stories/Alert/Alert.stories.ts +60 -0
  258. package/src/stories/Alert/Alert.test.ts +95 -0
  259. package/src/stories/Alert/AlertModifiers.stories.ts +77 -0
  260. package/src/stories/Alert/AlertSlots.stories.ts +74 -0
  261. package/src/stories/AlertGroup/AlertGroup.settings.ts +110 -0
  262. package/src/stories/AlertGroup/AlertGroup.stories.ts +50 -0
  263. package/src/stories/AlertGroup/AlertGroup.test.ts +76 -0
  264. package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +103 -0
  265. package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +67 -0
  266. package/src/stories/Avatar/Avatar.settings.ts +7 -6
  267. package/src/stories/Avatar/Avatar.stories.ts +42 -0
  268. package/src/stories/Avatar/Avatar.test.ts +1 -1
  269. package/src/stories/Avatar/AvatarBadge.stories.ts +36 -0
  270. package/src/stories/Avatar/AvatarModifiers.stories.ts +100 -0
  271. package/src/stories/Avatar/AvatarSlots.stories.ts +34 -0
  272. package/src/stories/AvatarGroup/AvatarGroup.stories.ts +35 -0
  273. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +31 -0
  274. package/src/stories/AvatarGroup/{AvatarGroupSlotDefault.stories.mdx → AvatarGroupSlotDefault.stories.ts} +24 -30
  275. package/src/stories/Badge/Badge.stories.ts +43 -0
  276. package/src/stories/Badge/BadgeSlots.stories.ts +23 -0
  277. package/src/stories/Breadcrumb/Breadcrumb.stories.ts +41 -0
  278. package/src/stories/Breadcrumb/Breadcrumb.test.ts +1 -1
  279. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +37 -0
  280. package/src/stories/Button/Button.settings.ts +2 -11
  281. package/src/stories/Button/Button.stories.ts +38 -0
  282. package/src/stories/Button/ButtonIcon.stories.ts +67 -0
  283. package/src/stories/Button/ButtonLink.stories.ts +40 -0
  284. package/src/stories/Button/ButtonLoading.stories.ts +41 -0
  285. package/src/stories/Button/ButtonModifiers.stories.ts +158 -0
  286. package/src/stories/Button/ButtonSlots.stories.ts +87 -0
  287. package/src/stories/Button/ButtonState.stories.ts +42 -0
  288. package/src/stories/Button/ButtonToggle.stories.ts +52 -0
  289. package/src/stories/ButtonGroup/ButtonGroup.stories.ts +39 -0
  290. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +39 -0
  291. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +38 -0
  292. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +41 -0
  293. package/src/stories/Card/Card.stories.ts +46 -0
  294. package/src/stories/Card/CardSlots.stories.ts +81 -0
  295. package/src/stories/Checkbox/Checkbox.settings.ts +0 -2
  296. package/src/stories/Checkbox/Checkbox.stories.ts +97 -0
  297. package/src/stories/Checkbox/CheckboxBinary.stories.ts +33 -0
  298. package/src/stories/Checkbox/CheckboxSlots.stories.ts +31 -0
  299. package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +87 -0
  300. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +53 -0
  301. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +47 -0
  302. package/src/stories/Combobox/Combobox.settings.ts +3 -23
  303. package/src/stories/Combobox/Combobox.stories.ts +176 -0
  304. package/src/stories/Combobox/Combobox.test.ts +2 -2
  305. package/src/stories/Combobox/ComboboxIconPosition.stories.ts +43 -0
  306. package/src/stories/Combobox/ComboboxMultiple.stories.ts +41 -0
  307. package/src/stories/Combobox/ComboboxOptions.stories.ts +78 -0
  308. package/src/stories/Combobox/ComboboxSlots.stories.ts +104 -0
  309. package/src/stories/Dialog/Dialog.settings.ts +1 -1
  310. package/src/stories/Dialog/Dialog.stories.ts +51 -0
  311. package/src/stories/Dialog/Dialog.test.ts +2 -2
  312. package/src/stories/Dialog/DialogSlots.stories.ts +39 -0
  313. package/src/stories/Dropdown/Dropdown.stories.ts +107 -0
  314. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +49 -0
  315. package/src/stories/Dropdown/DropdownMultilevel.stories.ts +61 -0
  316. package/src/stories/Dropdown/DropdownSlots.stories.ts +95 -0
  317. package/src/stories/Icon/Icon.settings.ts +1 -0
  318. package/src/stories/Icon/Icon.stories.ts +48 -0
  319. package/src/stories/Icon/IconsCollection.stories.ts +53 -0
  320. package/src/stories/InputText/InputText.settings.ts +3 -39
  321. package/src/stories/InputText/InputText.stories.ts +121 -0
  322. package/src/stories/InputText/InputTextIconPosition.stories.ts +43 -0
  323. package/src/stories/InputText/InputTextLength.stories.ts +58 -0
  324. package/src/stories/InputText/InputTextMinMax.stories.ts +51 -0
  325. package/src/stories/InputText/InputTextSlots.stories.ts +39 -0
  326. package/src/stories/InputText/InputTextType.stories.ts +119 -0
  327. package/src/stories/Nav/Nav.stories.ts +33 -0
  328. package/src/stories/Nav/NavModifiers.stories.ts +47 -0
  329. package/src/stories/Progress/Progress.settings.ts +0 -3
  330. package/src/stories/Progress/Progress.stories.ts +41 -0
  331. package/src/stories/Radio/Radio.stories.ts +81 -0
  332. package/src/stories/Radio/RadioSlots.stories.ts +31 -0
  333. package/src/stories/RadioGroup/RadioGroup.stories.ts +88 -0
  334. package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +53 -0
  335. package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +47 -0
  336. package/src/stories/Select/Select.settings.ts +0 -5
  337. package/src/stories/Select/Select.stories.ts +113 -0
  338. package/src/stories/Select/SelectIconPosition.stories.ts +43 -0
  339. package/src/stories/Select/SelectOptions.stories.ts +77 -0
  340. package/src/stories/Select/SelectSlots.stories.ts +39 -0
  341. package/src/stories/Tab/Tab.stories.ts +70 -0
  342. package/src/stories/Textarea/Textarea.settings.ts +0 -8
  343. package/src/stories/Textarea/Textarea.stories.ts +107 -0
  344. package/src/stories/Textarea/TextareaLength.stories.ts +58 -0
  345. package/src/stories/Textarea/TextareaSlots.stories.ts +39 -0
  346. package/src/stories/Textarea/TextareatIconPosition.stories.ts +43 -0
  347. package/src/stories/Tooltip/Tooltip.settings.ts +4 -4
  348. package/src/stories/Tooltip/Tooltip.stories.ts +40 -0
  349. package/src/stories/Tooltip/TooltipDirective.stories.ts +68 -0
  350. package/src/stories/argTypes.ts +5 -59
  351. package/src/stories/Accordion/Accordion.stories.mdx +0 -45
  352. package/src/stories/Accordion/AccordionSlots.stories.mdx +0 -58
  353. package/src/stories/AccordionGroup/AccordionGroup.stories.mdx +0 -58
  354. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.mdx +0 -59
  355. package/src/stories/Avatar/Avatar.stories.mdx +0 -40
  356. package/src/stories/Avatar/AvatarBadge.stories.mdx +0 -41
  357. package/src/stories/Avatar/AvatarModifiers.stories.mdx +0 -87
  358. package/src/stories/Avatar/AvatarSlotDefault.stories.mdx +0 -29
  359. package/src/stories/AvatarGroup/AvatarGroup.stories.mdx +0 -30
  360. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.mdx +0 -24
  361. package/src/stories/Badge/Badge.stories.mdx +0 -51
  362. package/src/stories/Badge/BadgeSlots.stories.mdx +0 -20
  363. package/src/stories/Breadcrumb/Breadcrumb.stories.mdx +0 -50
  364. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.mdx +0 -43
  365. package/src/stories/Button/Button.stories.mdx +0 -35
  366. package/src/stories/Button/ButtonIcon.stories.mdx +0 -153
  367. package/src/stories/Button/ButtonLink.stories.mdx +0 -72
  368. package/src/stories/Button/ButtonLoading.stories.mdx +0 -108
  369. package/src/stories/Button/ButtonModifiers.stories.mdx +0 -257
  370. package/src/stories/Button/ButtonSlots.stories.mdx +0 -116
  371. package/src/stories/Button/ButtonState.stories.mdx +0 -66
  372. package/src/stories/Button/ButtonToggle.stories.mdx +0 -112
  373. package/src/stories/ButtonGroup/ButtonGroup.stories.mdx +0 -37
  374. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.mdx +0 -52
  375. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.mdx +0 -37
  376. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.mdx +0 -73
  377. package/src/stories/Card/Card.stories.mdx +0 -40
  378. package/src/stories/Card/CardSlots.stories.mdx +0 -98
  379. package/src/stories/Checkbox/Checkbox.stories.mdx +0 -164
  380. package/src/stories/Checkbox/CheckboxBinary.stories.mdx +0 -68
  381. package/src/stories/Checkbox/CheckboxSlots.stories.mdx +0 -46
  382. package/src/stories/CheckboxGroup/CheckboxGroup.stories.mdx +0 -135
  383. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.mdx +0 -100
  384. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.mdx +0 -68
  385. package/src/stories/Combobox/Combobox.stories.mdx +0 -324
  386. package/src/stories/Combobox/ComboboxIconPosition.stories.mdx +0 -78
  387. package/src/stories/Combobox/ComboboxMultiple.stories.mdx +0 -73
  388. package/src/stories/Combobox/ComboboxOptions.stories.mdx +0 -135
  389. package/src/stories/Combobox/ComboboxSlots.stories.mdx +0 -153
  390. package/src/stories/Dialog/Dialog.stories.mdx +0 -56
  391. package/src/stories/Dialog/DialogSlots.stories.mdx +0 -63
  392. package/src/stories/Dropdown/Dropdown.stories.mdx +0 -124
  393. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.mdx +0 -41
  394. package/src/stories/Dropdown/DropdownMultilevel.stories.mdx +0 -56
  395. package/src/stories/Dropdown/DropdownSlots.stories.mdx +0 -114
  396. package/src/stories/Icon/Icon.stories.mdx +0 -91
  397. package/src/stories/Icon/IconsCollection.stories.mdx +0 -69
  398. package/src/stories/InputText/InputText.stories.mdx +0 -211
  399. package/src/stories/InputText/InputTextIconPosition.stories.mdx +0 -78
  400. package/src/stories/InputText/InputTextLength.stories.mdx +0 -110
  401. package/src/stories/InputText/InputTextMinMax.stories.mdx +0 -112
  402. package/src/stories/InputText/InputTextSlots.stories.mdx +0 -69
  403. package/src/stories/InputText/InputTextType.stories.mdx +0 -259
  404. package/src/stories/Nav/Nav.stories.mdx +0 -28
  405. package/src/stories/Nav/NavModifiers.stories.mdx +0 -48
  406. package/src/stories/Progress/Progress.stories.mdx +0 -30
  407. package/src/stories/Radio/Radio.stories.mdx +0 -128
  408. package/src/stories/Radio/RadioSlots.stories.mdx +0 -46
  409. package/src/stories/RadioGroup/RadioGroup.stories.mdx +0 -135
  410. package/src/stories/RadioGroup/RadioGroupOptions.stories.mdx +0 -100
  411. package/src/stories/RadioGroup/RadioGroupSlots.stories.mdx +0 -68
  412. package/src/stories/Select/Select.stories.mdx +0 -196
  413. package/src/stories/Select/SelectIconPosition.stories.mdx +0 -78
  414. package/src/stories/Select/SelectOptions.stories.mdx +0 -135
  415. package/src/stories/Select/SelectSlots.stories.mdx +0 -48
  416. package/src/stories/Tab/Tab.stories.mdx +0 -65
  417. package/src/stories/Textarea/Textarea.stories.mdx +0 -187
  418. package/src/stories/Textarea/TextareaLength.stories.mdx +0 -110
  419. package/src/stories/Textarea/TextareaSlots.stories.mdx +0 -69
  420. package/src/stories/Textarea/TextareatIconPosition.stories.mdx +0 -78
  421. package/src/stories/Tooltip/Tooltip.stories.mdx +0 -102
  422. package/src/stories/Tooltip/TooltipDirective.stories.mdx +0 -99
@@ -1,8 +1,10 @@
1
1
  import type { ExtractPropTypes, Ref } from 'vue'
2
2
  import type { AccordionGroupState } from '../../types/group'
3
3
  import { INJECTION_KEY_ACCORDION_GROUP } from '../../constants'
4
+ import { ModifiersProps } from '@/props'
4
5
 
5
6
  export const VvAccordionProps = {
7
+ ...ModifiersProps,
6
8
  /**
7
9
  * Accordion name
8
10
  */
@@ -22,10 +24,6 @@ export const VvAccordionProps = {
22
24
  type: Boolean,
23
25
  default: undefined,
24
26
  },
25
- /**
26
- * String or String[] of css classes (modifiers) that will be concatenated to prefix 'vv-accordion--'
27
- */
28
- modifiers: [String, Array] as PropType<string | string[]>,
29
27
  /**
30
28
  * If true, the accordion will be disabled
31
29
  */
@@ -1,3 +1,5 @@
1
+ import { ModifiersProps } from '@/props'
2
+
1
3
  export interface VvAccordionGroupItem {
2
4
  title: string
3
5
  content: string
@@ -7,6 +9,7 @@ export interface VvAccordionGroupItem {
7
9
  }
8
10
 
9
11
  export const VvAccordionGroupProps = {
12
+ ...ModifiersProps,
10
13
  /**
11
14
  * VModel
12
15
  */
@@ -23,10 +26,6 @@ export const VvAccordionGroupProps = {
23
26
  * If true, accordion items stay open when another item is opened
24
27
  */
25
28
  collapse: Boolean,
26
- /**
27
- * String or String[] of css classes (modifiers) that will be concatenated to prefix 'vv-accordion-group--'
28
- */
29
- modifiers: [String, Array] as PropType<string | string[]>,
30
29
  /**
31
30
  * String or String[] of css classes (modifiers) that will be concatenated to prefix 'vv-accordion--'
32
31
  */
@@ -67,7 +67,7 @@
67
67
  const toReturn = {
68
68
  ...dropdownAria?.value,
69
69
  'aria-pressed': pressed.value ? true : undefined,
70
- role,
70
+ role: role?.value,
71
71
  }
72
72
  switch (hasTag.value) {
73
73
  case ActionTag.a:
@@ -0,0 +1,54 @@
1
+ <script lang="ts">
2
+ export default {
3
+ name: 'VvAlert',
4
+ }
5
+ </script>
6
+
7
+ <script setup lang="ts">
8
+ import VvIcon from '../VvIcon/VvIcon.vue'
9
+ import { useVvAlert, VvAlertEvents, VvAlertProps } from '.'
10
+
11
+ const props = defineProps(VvAlertProps)
12
+ const emit = defineEmits(VvAlertEvents)
13
+ const { hasProps, hasTitleId, hasIcon, close } = useVvAlert(props, emit)
14
+ defineExpose({ close })
15
+ </script>
16
+
17
+ <template>
18
+ <div v-bind="hasProps">
19
+ <div class="vv-alert__header">
20
+ <VvIcon v-if="hasIcon" v-bind="hasIcon" class="vv-alert__icon" />
21
+ <!-- @slot Header slot -->
22
+ <slot name="header">
23
+ <!-- @slot Before title slot -->
24
+ <slot name="title::before" />
25
+ <strong :id="hasTitleId" class="vv-alert__title">
26
+ {{ title }}
27
+ </strong>
28
+ <!-- @slot After title slot -->
29
+ <slot name="title::after" />
30
+ </slot>
31
+ <button
32
+ v-if="dismissable || autoClose"
33
+ class="vv-alert__close"
34
+ type="button"
35
+ :aria-label="closeLabel"
36
+ @click.stop="close"
37
+ >
38
+ <div class="vv-alert__close-mask"></div>
39
+ </button>
40
+ </div>
41
+ <div v-if="$slots.default || content" class="vv-alert__content">
42
+ <!-- @slot Content slot -->
43
+ <slot>
44
+ {{ content }}
45
+ </slot>
46
+ </div>
47
+ <div v-if="$slots.footer || footer" class="vv-alert__footer">
48
+ <!-- @slot Footer slot -->
49
+ <slot name="footer">
50
+ {{ footer }}
51
+ </slot>
52
+ </div>
53
+ </div>
54
+ </template>
@@ -0,0 +1,162 @@
1
+ import { IconProps, IdProps, ModifiersProps } from '@/props'
2
+ import type { ExtractPropTypes, PropType } from 'vue'
3
+ import { withModifiers } from 'vue'
4
+
5
+ export const VvAlertProps = {
6
+ ...IdProps,
7
+ ...ModifiersProps,
8
+ ...IconProps,
9
+ /**
10
+ * The alert is dismissable
11
+ * @default false
12
+ * @type boolean
13
+ */
14
+ dismissable: {
15
+ type: Boolean,
16
+ default: false,
17
+ },
18
+ /**
19
+ * The alert auto close after the specified time in milliseconds
20
+ * @default 0
21
+ * @type number
22
+ */
23
+ autoClose: {
24
+ type: Number,
25
+ default: 0,
26
+ },
27
+ /**
28
+ * The alert close label
29
+ * @default 'Close'
30
+ * @type string
31
+ */
32
+ closeLabel: {
33
+ type: String,
34
+ default: 'Close',
35
+ },
36
+ /**
37
+ * The alert title
38
+ * @default ''
39
+ * @type string
40
+ */
41
+ title: {
42
+ type: String,
43
+ default: '',
44
+ },
45
+ /**
46
+ * The alert content
47
+ * @default ''
48
+ * @type string
49
+ */
50
+ content: {
51
+ type: String,
52
+ default: '',
53
+ },
54
+ /**
55
+ * The alert footer
56
+ * @default ''
57
+ * @type string
58
+ */
59
+ footer: {
60
+ type: String,
61
+ default: '',
62
+ },
63
+ /**
64
+ * The alert role
65
+ * @default 'alert'
66
+ * @type string
67
+ * @values 'alert', 'alertdialog'
68
+ * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Alert_Role
69
+ * @see https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/Alertdialog_role
70
+ */
71
+ role: {
72
+ type: String as PropType<'alert' | 'alertdialog'>,
73
+ default: 'alert',
74
+ },
75
+ }
76
+
77
+ export const VvAlertEvents = ['close']
78
+
79
+ export const useVvAlert = (
80
+ props: Readonly<ExtractPropTypes<typeof VvAlertProps>>,
81
+ emit: (event: string, ...args: unknown[]) => void,
82
+ ) => {
83
+ const { bus } = useInjectedAlertGroup()
84
+
85
+ const hasId = useUniqueId(computed(() => props.id))
86
+ const hasTitleId = computed(() => `${hasId.value}-title`)
87
+
88
+ // icon
89
+ const hasIcon = computed(() =>
90
+ typeof props.icon === 'string' ? { name: props.icon } : props.icon,
91
+ )
92
+
93
+ // props
94
+ const hasClass = useModifiers(
95
+ 'vv-alert',
96
+ computed(() => props.modifiers),
97
+ computed(() => ({
98
+ dismissable: props.autoClose > 0 || props.dismissable,
99
+ 'auto-close': props.autoClose > 0,
100
+ hover: isMouseover.value,
101
+ })),
102
+ )
103
+ const hasStyle = computed(() => ({
104
+ '--alert-duration': `${props.autoClose}ms`,
105
+ }))
106
+
107
+ // close
108
+ const close = () => {
109
+ if (timeout) {
110
+ clearTimeout(timeout)
111
+ }
112
+ emit('close', hasId.value)
113
+ bus?.emit('close', hasId.value)
114
+ }
115
+
116
+ // auto close
117
+ let timeout: ReturnType<typeof setTimeout>
118
+ watch(
119
+ () => props.autoClose,
120
+ (value) => {
121
+ if (value > 0) {
122
+ timeout = setTimeout(close, value)
123
+ return
124
+ }
125
+ if (timeout) {
126
+ clearTimeout(timeout)
127
+ }
128
+ },
129
+ {
130
+ immediate: true,
131
+ },
132
+ )
133
+
134
+ // listeners
135
+ const isMouseover = ref(false)
136
+ const onMouseover = withModifiers(() => {
137
+ isMouseover.value = true
138
+ if (timeout) {
139
+ clearTimeout(timeout)
140
+ }
141
+ }, ['passive'])
142
+ const onMouseleave = withModifiers(() => {
143
+ isMouseover.value = false
144
+ if (props.autoClose > 0) {
145
+ timeout = setTimeout(close, props.autoClose)
146
+ }
147
+ }, ['passive'])
148
+
149
+ return {
150
+ close,
151
+ hasIcon,
152
+ hasTitleId,
153
+ hasProps: computed(() => ({
154
+ onMouseover,
155
+ onMouseleave,
156
+ class: hasClass.value,
157
+ style: hasStyle.value,
158
+ role: props.role,
159
+ 'aria-labelledby': hasTitleId.value,
160
+ })),
161
+ }
162
+ }
@@ -0,0 +1,34 @@
1
+ <script lang="ts">
2
+ export default {
3
+ name: 'VvAlertGroup',
4
+ }
5
+ </script>
6
+
7
+ <script setup lang="ts">
8
+ import { useVvAlertGroup, VvAlertGroupEvents, VvAlertGroupProps } from '.'
9
+ import VvAlert from '../VvAlert/VvAlert.vue'
10
+
11
+ const props = defineProps(VvAlertGroupProps)
12
+ const emit = defineEmits(VvAlertGroupEvents)
13
+ const { hasProps, hasTransition } = useVvAlertGroup(props, emit)
14
+ </script>
15
+
16
+ <template>
17
+ <div v-bind="hasProps">
18
+ <!-- @slot The slot before alert list -->
19
+ <slot name="before" />
20
+ <TransitionGroup
21
+ tag="div"
22
+ role="group"
23
+ :name="hasTransition"
24
+ class="vv-alert-group__list"
25
+ >
26
+ <!-- @slot The slot for alert list -->
27
+ <slot>
28
+ <VvAlert v-for="item in items" v-bind="item" :key="item.id" />
29
+ </slot>
30
+ </TransitionGroup>
31
+ <!-- @slot The slot after alert list -->
32
+ <slot name="after" />
33
+ </div>
34
+ </template>
@@ -0,0 +1,122 @@
1
+ import { ModifiersProps } from '@/props'
2
+ import type { ExtractPropTypes } from 'vue'
3
+
4
+ export type AlertItem = {
5
+ id: string | number
6
+ title?: string
7
+ icon?: string | Record<string, unknown>
8
+ content?: string
9
+ footer?: string
10
+ modifiers?: string | string[]
11
+ dismissable?: boolean
12
+ autoClose?: number
13
+ closeLabel?: string
14
+ role?: 'alert' | 'alertdialog'
15
+ }
16
+
17
+ export const VvAlertGroupProps = {
18
+ ...ModifiersProps,
19
+ name: {
20
+ type: String,
21
+ required: true,
22
+ },
23
+ items: {
24
+ type: Array as PropType<AlertItem[]>,
25
+ default: () => [],
26
+ },
27
+ stack: {
28
+ type: Boolean,
29
+ default: false,
30
+ },
31
+ reverse: {
32
+ type: Boolean,
33
+ default: false,
34
+ },
35
+ inline: {
36
+ type: String as PropType<'start' | 'middle' | 'end'>,
37
+ default: undefined,
38
+ },
39
+ block: {
40
+ type: String as PropType<'top' | 'center' | 'bottom'>,
41
+ default: undefined,
42
+ },
43
+ position: {
44
+ type: String as PropType<'absolute' | 'fixed'>,
45
+ default: undefined,
46
+ },
47
+ transition: {
48
+ type: String,
49
+ default: undefined,
50
+ },
51
+ }
52
+
53
+ export const VvAlertGroupEvents = ['close']
54
+
55
+ export const useVvAlertGroup = (
56
+ props: Readonly<ExtractPropTypes<typeof VvAlertGroupProps>>,
57
+ emit: (event: string, ...args: unknown[]) => void,
58
+ ) => {
59
+ const bus = useProvideAlertGroup({ name: computed(() => props.name) })
60
+
61
+ // check props block and inline coexist
62
+ if ((props.block && !props.inline) || (!props.block && props.inline)) {
63
+ // eslint-disable-next-line
64
+ console.warn(
65
+ `[VvAlertGroup]: block and inline props must coexist at the same time.`,
66
+ )
67
+ }
68
+
69
+ // props
70
+ const hasClass = computed(() => {
71
+ const toReturn: (string | Record<string, boolean>)[] = [
72
+ useModifiers(
73
+ 'vv-alert-group',
74
+ computed(() => props.modifiers),
75
+ computed(() => ({
76
+ stack: props.stack,
77
+ reverse: props.reverse,
78
+ absolute: props.position === 'absolute',
79
+ fixed: props.position === 'fixed',
80
+ })),
81
+ ).value,
82
+ ]
83
+ if (props.inline && props.block) {
84
+ toReturn.push(`vv-alert-group--${props.block}-${props.inline}`)
85
+ }
86
+ return toReturn
87
+ })
88
+
89
+ const hasTransition = computed(() => {
90
+ if (props.transition) {
91
+ return props.transition
92
+ }
93
+ if (!props.position) {
94
+ return 'vv-alert--fade'
95
+ }
96
+ if (props.inline === 'start') {
97
+ return 'vv-alert--fade-inline-start'
98
+ }
99
+ if (props.inline === 'end') {
100
+ return 'vv-alert--fade-inline-end'
101
+ }
102
+ if (props.block === 'top') {
103
+ return 'vv-alert--fade-block-top'
104
+ }
105
+ if (props.block === 'bottom') {
106
+ return 'vv-alert--fade-block-bottom'
107
+ }
108
+ return 'vv-alert--fade'
109
+ })
110
+
111
+ // listeners
112
+ bus.on('close', (id: string) => {
113
+ emit('close', id)
114
+ })
115
+
116
+ return {
117
+ hasTransition,
118
+ hasProps: computed(() => ({
119
+ class: hasClass.value,
120
+ })),
121
+ }
122
+ }
@@ -1,4 +1,6 @@
1
+ import { ModifiersProps } from '@/props'
2
+
1
3
  export const VvCardProps = {
4
+ ...ModifiersProps,
2
5
  title: String,
3
- modifiers: [String, Array] as PropType<string | string[]>,
4
6
  }
@@ -160,14 +160,10 @@
160
160
  dirty: isDirty.value,
161
161
  focus: focused.value,
162
162
  floating: floating.value,
163
+ badges: props.badges,
163
164
  })),
164
165
  )
165
166
 
166
- // current options, filtered or prop options
167
- const hasOptions = computed(() =>
168
- props.searchable ? filteredOptions.value : props.options,
169
- )
170
-
171
167
  const {
172
168
  getOptionLabel,
173
169
  getOptionValue,
@@ -237,12 +233,6 @@
237
233
  .join(props.separator)
238
234
  })
239
235
 
240
- watch(selectedOptions, () => {
241
- if (!props.multiple && props.autoClose) {
242
- collapse()
243
- }
244
- })
245
-
246
236
  /**
247
237
  * Function triggered on click on input
248
238
  */
@@ -284,7 +274,7 @@
284
274
  toReturn = [value as Option]
285
275
  }
286
276
  } else {
287
- if (props.autoClose) {
277
+ if (!props.keepOpen) {
288
278
  collapse()
289
279
  }
290
280
  if (props.unselectable && value === props.modelValue) {
@@ -308,7 +298,7 @@
308
298
  disabled: disabled.value,
309
299
  readonly: readonly.value,
310
300
  modifiers: props.modifiers,
311
- options: hasOptions.value,
301
+ options: props.options,
312
302
  labelKey: props.labelKey,
313
303
  valueKey: props.valueKey,
314
304
  icon: props.icon,
@@ -332,7 +322,6 @@
332
322
  flip: props.flip,
333
323
  autoPlacement: props.autoPlacement,
334
324
  arrow: props.arrow,
335
- autoClose: props.autoClose,
336
325
  autofocusFirst: searchable.value ? false : props.autofocusFirst,
337
326
  triggerWidth: props.triggerWidth,
338
327
  modifiers: props.dropdownModifiers,
@@ -346,16 +335,20 @@
346
335
  }))
347
336
 
348
337
  // computed
349
- onKeyStroke([' ', 'Enter'], (e) => {
350
- if (props.autoOpen) {
351
- return
352
- }
353
- if (!expanded.value && focused.value) {
354
- e.preventDefault()
355
- e.stopImmediatePropagation()
356
- toggleExpanded()
357
- }
358
- })
338
+ onKeyStroke(
339
+ [' ', 'Enter'],
340
+ (e) => {
341
+ if (props.autoOpen) {
342
+ return
343
+ }
344
+ if (!expanded.value && focused.value) {
345
+ e.preventDefault()
346
+ e.stopImmediatePropagation()
347
+ toggleExpanded()
348
+ }
349
+ },
350
+ { target: inputEl },
351
+ )
359
352
  </script>
360
353
 
361
354
  <template>
@@ -429,9 +422,12 @@
429
422
  v-bind="{ selectedOptions, onInput }"
430
423
  >
431
424
  <template v-if="hasValue">
432
- <template v-if="!badges">
425
+ <div
426
+ v-if="!badges"
427
+ class="vv-select__value"
428
+ >
433
429
  {{ hasValue }}
434
- </template>
430
+ </div>
435
431
  <VvBadge
436
432
  v-for="(
437
433
  option, index
@@ -136,9 +136,15 @@ export const VvComboboxProps = {
136
136
  /**
137
137
  * Open dropdown on focus
138
138
  */
139
- autoOpen: Boolean,
139
+ autoOpen: {
140
+ type: Boolean,
141
+ default: false,
142
+ },
140
143
  /**
141
- * Close dropdown on select (not multiple)
144
+ * Keep open dropdown on single select
142
145
  */
143
- autoClose: Boolean,
146
+ keepOpen: {
147
+ type: Boolean,
148
+ default: false,
149
+ },
144
150
  }
@@ -9,9 +9,10 @@
9
9
  import VvIcon from '../VvIcon/VvIcon.vue'
10
10
  import { VvDialogEvents, VvDialogProps } from '.'
11
11
 
12
- // props and emit
12
+ // props, emit and template refs
13
13
  const props = defineProps(VvDialogProps)
14
14
  const emit = defineEmits(VvDialogEvents)
15
+ const dialogEl: Ref<HTMLDialogElement | undefined> = ref()
15
16
 
16
17
  // data
17
18
  const localModelValue = ref(false)
@@ -26,7 +27,6 @@
26
27
  emit('update:modelValue', value)
27
28
  },
28
29
  })
29
- const htmlAttrIsOpen = ref(true)
30
30
 
31
31
  // template ref
32
32
  const modalWrapper = ref(null)
@@ -36,7 +36,6 @@
36
36
  const { id } = props
37
37
  return {
38
38
  id,
39
- open: htmlAttrIsOpen.value,
40
39
  } as DialogHTMLAttributes
41
40
  })
42
41
  const dialogClass = computed(() => {
@@ -50,18 +49,18 @@
50
49
  const transitioName = computed(() => `vv-dialog--${props.transition}`)
51
50
  const dialogTransitionHandlers = {
52
51
  'before-enter': () => {
53
- htmlAttrIsOpen.value = true
52
+ dialogEl.value?.showModal()
54
53
  emit('open')
55
54
  },
56
55
  'after-leave': () => {
57
- htmlAttrIsOpen.value = false
56
+ dialogEl.value?.close()
58
57
  emit('close')
59
58
  },
60
59
  }
61
60
 
62
61
  // methods
63
62
  onClickOutside(modalWrapper, () => {
64
- if (props.autoClose) {
63
+ if (!props.keepOpen) {
65
64
  modelValue.value = false
66
65
  }
67
66
  })
@@ -87,7 +86,12 @@
87
86
 
88
87
  <template>
89
88
  <Transition :name="transitioName" v-on="dialogTransitionHandlers">
90
- <dialog v-show="modelValue" v-bind="dialogAttrs" :class="dialogClass">
89
+ <dialog
90
+ v-show="modelValue"
91
+ v-bind="dialogAttrs"
92
+ ref="dialogEl"
93
+ :class="dialogClass"
94
+ >
91
95
  <article ref="modalWrapper" class="vv-dialog__wrapper">
92
96
  <header v-if="$slots.header || title" class="vv-dialog__header">
93
97
  <!-- @slot Header slot -->
@@ -24,7 +24,7 @@ export const VvDialogProps = {
24
24
  */
25
25
  size: String,
26
26
  /**
27
- * Close dialog on click outside
27
+ * Keep open dialog on click outside
28
28
  */
29
- autoClose: { type: Boolean, default: true },
29
+ keepOpen: { type: Boolean, default: false },
30
30
  }
@@ -218,7 +218,7 @@
218
218
  onClickOutside(
219
219
  floatingEl,
220
220
  () => {
221
- if (props.autoClose) {
221
+ if (!props.keepOpen) {
222
222
  expanded.value = false
223
223
  }
224
224
  },
@@ -334,7 +334,11 @@
334
334
  }
335
335
  })
336
336
  onKeyStroke([' ', 'Enter'], (e) => {
337
- if (expanded.value && focused.value) {
337
+ if (
338
+ expanded.value &&
339
+ focused.value &&
340
+ e.target !== document.activeElement
341
+ ) {
338
342
  e.preventDefault()
339
343
  const activeElement = document.activeElement as HTMLElement
340
344
  activeElement.click()
@@ -374,7 +378,7 @@
374
378
  class="vv-dropdown__arrow"
375
379
  ></div>
376
380
  <slot name="before" v-bind="{ expanded }" />
377
- <ul
381
+ <div
378
382
  v-bind="attrs"
379
383
  :id="hasId"
380
384
  ref="listEl"
@@ -389,7 +393,7 @@
389
393
  role: itemRole,
390
394
  }"
391
395
  />
392
- </ul>
396
+ </div>
393
397
  <slot name="after" v-bind="{ expanded }" />
394
398
  </div>
395
399
  </Transition>
@@ -21,12 +21,12 @@
21
21
  </script>
22
22
 
23
23
  <template>
24
- <li
24
+ <div
25
25
  v-bind="{ role }"
26
26
  ref="element"
27
27
  class="vv-dropdown__item"
28
28
  :class="{ 'focus-visible': focused || focusedWithin }"
29
29
  >
30
30
  <slot />
31
- </li>
31
+ </div>
32
32
  </template>
@@ -0,0 +1,8 @@
1
+ import { INJECTION_KEY_ALERT_GROUP } from '../../constants'
2
+
3
+ /**
4
+ * Injects alert group name
5
+ */
6
+ export function useInjectedAlertGroup() {
7
+ return inject(INJECTION_KEY_ALERT_GROUP, {})
8
+ }