@volverjs/ui-vue 0.0.10-beta.4 → 0.0.10-beta.40

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 (478) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +146 -49
  3. package/auto-imports.d.ts +7 -2
  4. package/bin/icons.cjs +1 -1
  5. package/bin/icons.js +27 -20
  6. package/dist/Volver.d.ts +11 -11
  7. package/dist/components/VvAccordion/VvAccordion.es.js +190 -101
  8. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  9. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +30 -8
  10. package/dist/components/VvAccordion/index.d.ts +8 -9
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +450 -170
  12. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  13. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +58 -13
  14. package/dist/components/VvAccordionGroup/index.d.ts +14 -6
  15. package/dist/components/VvAction/VvAction.es.js +84 -33
  16. package/dist/components/VvAction/VvAction.umd.js +1 -1
  17. package/dist/components/VvAction/VvAction.vue.d.ts +57 -22
  18. package/dist/components/VvAction/index.d.ts +25 -9
  19. package/dist/components/VvAlert/VvAlert.es.js +228 -193
  20. package/dist/components/VvAlert/VvAlert.umd.js +1 -1
  21. package/dist/components/VvAlert/VvAlert.vue.d.ts +24 -14
  22. package/dist/components/VvAlert/index.d.ts +17 -9
  23. package/dist/components/VvAlertGroup/VvAlertGroup.es.js +549 -485
  24. package/dist/components/VvAlertGroup/VvAlertGroup.umd.js +1 -1
  25. package/dist/components/VvAlertGroup/VvAlertGroup.vue.d.ts +16 -9
  26. package/dist/components/VvAlertGroup/index.d.ts +7 -15
  27. package/dist/components/VvAvatar/VvAvatar.es.js +65 -22
  28. package/dist/components/VvAvatar/VvAvatar.umd.js +1 -1
  29. package/dist/components/VvAvatar/VvAvatar.vue.d.ts +12 -4
  30. package/dist/components/VvAvatar/index.d.ts +4 -1
  31. package/dist/components/VvAvatarGroup/VvAvatarGroup.es.js +128 -49
  32. package/dist/components/VvAvatarGroup/VvAvatarGroup.umd.js +1 -1
  33. package/dist/components/VvAvatarGroup/VvAvatarGroup.vue.d.ts +10 -3
  34. package/dist/components/VvAvatarGroup/index.d.ts +4 -1
  35. package/dist/components/VvBadge/VvBadge.es.js +77 -28
  36. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  37. package/dist/components/VvBadge/VvBadge.vue.d.ts +12 -4
  38. package/dist/components/VvBadge/index.d.ts +4 -1
  39. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +276 -60
  40. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  41. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +27 -7
  42. package/dist/components/VvBreadcrumb/index.d.ts +6 -10
  43. package/dist/components/VvButton/VvButton.es.js +307 -262
  44. package/dist/components/VvButton/VvButton.umd.js +1 -1
  45. package/dist/components/VvButton/VvButton.vue.d.ts +94 -40
  46. package/dist/components/VvButton/index.d.ts +51 -29
  47. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +95 -40
  48. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  49. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +31 -11
  50. package/dist/components/VvButtonGroup/index.d.ts +11 -2
  51. package/dist/components/VvCard/VvCard.es.js +86 -36
  52. package/dist/components/VvCard/VvCard.umd.js +1 -1
  53. package/dist/components/VvCard/VvCard.vue.d.ts +12 -4
  54. package/dist/components/VvCard/index.d.ts +4 -1
  55. package/dist/components/VvCheckbox/VvCheckbox.es.js +315 -251
  56. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  57. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +106 -34
  58. package/dist/components/VvCheckbox/index.d.ts +47 -14
  59. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +226 -126
  60. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  61. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +101 -30
  62. package/dist/components/VvCheckboxGroup/index.d.ts +45 -12
  63. package/dist/components/VvCombobox/VvCombobox.es.js +1215 -955
  64. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  65. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +600 -680
  66. package/dist/components/VvCombobox/index.d.ts +454 -24
  67. package/dist/components/VvDialog/VvDialog.es.js +180 -176
  68. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  69. package/dist/components/VvDialog/VvDialog.vue.d.ts +13 -4
  70. package/dist/components/VvDialog/index.d.ts +5 -0
  71. package/dist/components/VvDropdown/VvDropdown.es.js +165 -94
  72. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  73. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +111 -81
  74. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +66 -25
  75. package/dist/components/VvDropdown/VvDropdownItem.vue.d.ts +13 -1
  76. package/dist/components/VvDropdown/VvDropdownOptgroup.vue.d.ts +12 -4
  77. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +35 -7
  78. package/dist/components/VvDropdown/index.d.ts +52 -10
  79. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +163 -53
  80. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -1
  81. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +335 -8
  82. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  83. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.es.js +63 -20
  84. package/dist/components/VvDropdownOptgroup/VvDropdownOptgroup.umd.js +1 -1
  85. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +188 -80
  86. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -1
  87. package/dist/components/VvIcon/VvIcon.es.js +24 -97
  88. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  89. package/dist/components/VvIcon/VvIcon.vue.d.ts +23 -66
  90. package/dist/components/VvIcon/index.d.ts +33 -48
  91. package/dist/components/VvInputFile/VvInputFile.es.js +1789 -0
  92. package/dist/components/VvInputFile/VvInputFile.umd.js +1 -0
  93. package/dist/components/VvInputFile/VvInputFile.vue.d.ts +391 -0
  94. package/dist/components/VvInputFile/index.d.ts +210 -0
  95. package/dist/components/VvInputText/VvInputClearAction.d.ts +7 -5
  96. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +10 -8
  97. package/dist/components/VvInputText/VvInputStepAction.d.ts +2 -2
  98. package/dist/components/VvInputText/VvInputText.es.js +1489 -563
  99. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  100. package/dist/components/VvInputText/VvInputText.vue.d.ts +207 -57
  101. package/dist/components/VvInputText/index.d.ts +105 -30
  102. package/dist/components/VvNav/VvNav.es.js +160 -75
  103. package/dist/components/VvNav/VvNav.umd.js +1 -1
  104. package/dist/components/VvNav/VvNav.vue.d.ts +32 -9
  105. package/dist/components/VvNav/VvNavItem.vue.d.ts +1 -1
  106. package/dist/components/VvNav/VvNavSeparator.vue.d.ts +1 -1
  107. package/dist/components/VvNav/index.d.ts +5 -2
  108. package/dist/components/VvNavItem/VvNavItem.es.js +100 -39
  109. package/dist/components/VvNavItem/VvNavItem.umd.js +1 -1
  110. package/dist/components/VvProgress/VvProgress.es.js +73 -27
  111. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  112. package/dist/components/VvProgress/VvProgress.vue.d.ts +10 -3
  113. package/dist/components/VvProgress/index.d.ts +4 -1
  114. package/dist/components/VvRadio/VvRadio.es.js +313 -250
  115. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  116. package/dist/components/VvRadio/VvRadio.vue.d.ts +103 -31
  117. package/dist/components/VvRadio/index.d.ts +50 -17
  118. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +224 -125
  119. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  120. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +101 -30
  121. package/dist/components/VvRadioGroup/index.d.ts +45 -12
  122. package/dist/components/VvSelect/VvSelect.es.js +301 -267
  123. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  124. package/dist/components/VvSelect/VvSelect.vue.d.ts +229 -203
  125. package/dist/components/VvSelect/index.d.ts +181 -15
  126. package/dist/components/VvTab/VvTab.es.js +222 -97
  127. package/dist/components/VvTab/VvTab.umd.js +1 -1
  128. package/dist/components/VvTab/VvTab.vue.d.ts +31 -7
  129. package/dist/components/VvTab/index.d.ts +4 -1
  130. package/dist/components/VvTextarea/VvTextarea.es.js +258 -248
  131. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  132. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +156 -49
  133. package/dist/components/VvTextarea/index.d.ts +68 -19
  134. package/dist/components/VvTooltip/VvTooltip.es.js +83 -30
  135. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  136. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +13 -6
  137. package/dist/components/VvTooltip/index.d.ts +5 -2
  138. package/dist/components/common/HintSlot.d.ts +4 -5
  139. package/dist/components/index.d.ts +10 -0
  140. package/dist/components/index.es.js +4241 -2261
  141. package/dist/components/index.umd.js +1 -1
  142. package/dist/composables/alert/useAlert.d.ts +101 -6
  143. package/dist/composables/alert/useInjectAlert.d.ts +1 -6
  144. package/dist/composables/dropdown/useInjectDropdown.d.ts +3 -23
  145. package/dist/composables/dropdown/useProvideDropdown.d.ts +3 -4
  146. package/dist/composables/group/useInjectedGroupState.d.ts +4 -5
  147. package/dist/composables/group/useProvideGroupState.d.ts +3 -3
  148. package/dist/composables/index.d.ts +1 -0
  149. package/dist/composables/index.es.js +94 -5
  150. package/dist/composables/index.umd.js +1 -1
  151. package/dist/composables/useBlurhash.d.ts +7 -0
  152. package/dist/composables/useComponentFocus.d.ts +1 -1
  153. package/dist/composables/useComponentIcon.d.ts +9 -8
  154. package/dist/composables/useOptions.d.ts +4 -4
  155. package/dist/composables/usePersistence.d.ts +3 -0
  156. package/dist/composables/useUniqueId.d.ts +1 -1
  157. package/dist/composables/useVolver.d.ts +1 -1
  158. package/dist/constants.d.ts +34 -32
  159. package/dist/directives/index.d.ts +3 -5
  160. package/dist/directives/index.es.js +104 -45
  161. package/dist/directives/index.umd.js +1 -1
  162. package/dist/directives/v-contextmenu.es.js +1 -1
  163. package/dist/directives/v-contextmenu.umd.js +1 -1
  164. package/dist/directives/v-tooltip.es.js +101 -39
  165. package/dist/directives/v-tooltip.umd.js +1 -1
  166. package/dist/icons.es.js +267 -267
  167. package/dist/icons.umd.js +1 -1
  168. package/dist/index.d.ts +3 -1
  169. package/dist/index.es.js +92 -18
  170. package/dist/index.umd.js +1 -1
  171. package/dist/props/index.d.ts +272 -81
  172. package/dist/resolvers/unplugin.d.ts +6 -1
  173. package/dist/resolvers/unplugin.es.js +87 -10
  174. package/dist/resolvers/unplugin.umd.js +1 -1
  175. package/dist/stories/Accordion/Accordion.settings.d.ts +2 -57
  176. package/dist/stories/AccordionGroup/AccordionGroup.settings.d.ts +2 -66
  177. package/dist/stories/AccordionGroup/AccordionGroup.stories.d.ts +2 -127
  178. package/dist/stories/AccordionGroup/AccordionGroupSlots.stories.d.ts +1437 -495
  179. package/dist/stories/Alert/Alert.settings.d.ts +2 -109
  180. package/dist/stories/Alert/AlertModifiers.stories.d.ts +1 -1
  181. package/dist/stories/Alert/AlertSlots.stories.d.ts +1 -1
  182. package/dist/stories/AlertGroup/AlertGroup.settings.d.ts +2 -85
  183. package/dist/stories/AlertGroup/AlertGroupPosition.stories.d.ts +1 -1
  184. package/dist/stories/AlertGroup/AlertGroupSlots.stories.d.ts +1 -1
  185. package/dist/stories/AlertGroup/AlertGroupWithComposable.stories.d.ts +2 -2
  186. package/dist/stories/AvatarGroup/AvatarGroup.settings.d.ts +2 -38
  187. package/dist/stories/Badge/Badge.settings.d.ts +2 -26
  188. package/dist/stories/Badge/Badge.test.d.ts +1 -1
  189. package/dist/stories/Blurhash/BlurhashComposable.stories.d.ts +4 -0
  190. package/dist/stories/Breadcrumb/Breadcrumb.settings.d.ts +2 -18
  191. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +1 -1
  192. package/dist/stories/Button/Button.settings.d.ts +2 -194
  193. package/dist/stories/ButtonGroup/ButtonGroup.settings.d.ts +2 -40
  194. package/dist/stories/Card/Card.settings.d.ts +2 -63
  195. package/dist/stories/Checkbox/Checkbox.settings.d.ts +2 -132
  196. package/dist/stories/CheckboxGroup/CheckboxGroup.settings.d.ts +1 -141
  197. package/dist/stories/Combobox/Combobox.settings.d.ts +2 -609
  198. package/dist/stories/Dialog/Dialog.settings.d.ts +2 -47
  199. package/dist/stories/Dialog/DialogModifiers.stories.d.ts +8 -0
  200. package/dist/stories/Dropdown/Dropdown.settings.d.ts +2 -205
  201. package/dist/stories/Icon/Icon.settings.d.ts +3 -68
  202. package/dist/stories/InputFile/InputFile.settings.d.ts +6 -0
  203. package/dist/stories/InputFile/InputFile.stories.d.ts +12 -0
  204. package/dist/stories/InputFile/InputFileDropArea.stories.d.ts +9 -0
  205. package/dist/stories/InputFile/InputFileIconPosition.stories.d.ts +8 -0
  206. package/dist/stories/InputFile/InputFileSlots.stories.d.ts +7 -0
  207. package/dist/stories/InputText/InputText.settings.d.ts +2 -438
  208. package/dist/stories/Nav/Nav.settings.d.ts +2 -10
  209. package/dist/stories/Progress/Progress.settings.d.ts +2 -27
  210. package/dist/stories/Radio/Radio.settings.d.ts +1 -110
  211. package/dist/stories/RadioGroup/RadioGroup.settings.d.ts +1 -141
  212. package/dist/stories/Select/Select.settings.d.ts +2 -246
  213. package/dist/stories/Tab/Tab.settings.d.ts +2 -15
  214. package/dist/stories/Textarea/Textarea.settings.d.ts +2 -287
  215. package/dist/stories/argTypes.d.ts +27 -866
  216. package/dist/test/expect.d.ts +1 -1
  217. package/dist/test/options.d.ts +1 -1
  218. package/dist/test/sleep.d.ts +1 -1
  219. package/dist/types/alert.d.ts +9 -7
  220. package/dist/types/blurhash.d.ts +12 -0
  221. package/dist/types/generic.d.ts +1 -2
  222. package/dist/types/group.d.ts +37 -15
  223. package/dist/types/index.d.ts +7 -0
  224. package/dist/types/input-file.d.ts +16 -0
  225. package/dist/types/nav.d.ts +2 -2
  226. package/dist/utils/ObjectUtilities.d.ts +7 -8
  227. package/dist/workers/blurhash.d.ts +1 -0
  228. package/package.json +239 -246
  229. package/src/Volver.ts +245 -234
  230. package/src/assets/icons/detailed.json +1 -1
  231. package/src/assets/icons/normal.json +1 -1
  232. package/src/assets/icons/simple.json +1 -1
  233. package/src/components/VvAccordion/VvAccordion.vue +163 -100
  234. package/src/components/VvAccordion/index.ts +64 -79
  235. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +223 -105
  236. package/src/components/VvAccordionGroup/index.ts +42 -42
  237. package/src/components/VvAction/VvAction.vue +144 -130
  238. package/src/components/VvAlert/VvAlert.vue +72 -70
  239. package/src/components/VvAlert/index.ts +149 -147
  240. package/src/components/VvAlertGroup/VvAlertGroup.vue +57 -56
  241. package/src/components/VvAlertGroup/index.ts +101 -117
  242. package/src/components/VvAvatar/VvAvatar.vue +20 -14
  243. package/src/components/VvAvatar/index.ts +5 -5
  244. package/src/components/VvAvatarGroup/VvAvatarGroup.vue +58 -53
  245. package/src/components/VvAvatarGroup/index.ts +21 -21
  246. package/src/components/VvBadge/VvBadge.vue +15 -14
  247. package/src/components/VvBadge/index.ts +2 -2
  248. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +50 -48
  249. package/src/components/VvBreadcrumb/index.ts +3 -9
  250. package/src/components/VvButton/VvButton.vue +163 -152
  251. package/src/components/VvButton/index.ts +103 -110
  252. package/src/components/VvButtonGroup/VvButtonGroup.vue +72 -64
  253. package/src/components/VvButtonGroup/index.ts +22 -21
  254. package/src/components/VvCard/VvCard.vue +30 -30
  255. package/src/components/VvCard/index.ts +2 -2
  256. package/src/components/VvCheckbox/VvCheckbox.vue +185 -183
  257. package/src/components/VvCheckbox/index.ts +44 -44
  258. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +88 -87
  259. package/src/components/VvCombobox/VvCombobox.vue +631 -619
  260. package/src/components/VvCombobox/index.ts +189 -164
  261. package/src/components/VvDialog/VvDialog.vue +141 -129
  262. package/src/components/VvDialog/index.ts +38 -36
  263. package/src/components/VvDropdown/VvDropdown.vue +466 -445
  264. package/src/components/VvDropdown/VvDropdownAction.vue +37 -39
  265. package/src/components/VvDropdown/VvDropdownItem.vue +30 -26
  266. package/src/components/VvDropdown/VvDropdownOptgroup.vue +13 -12
  267. package/src/components/VvDropdown/VvDropdownOption.vue +47 -64
  268. package/src/components/VvDropdown/index.ts +61 -27
  269. package/src/components/VvIcon/README.md +1 -1
  270. package/src/components/VvIcon/VvIcon.vue +133 -133
  271. package/src/components/VvIcon/index.ts +84 -97
  272. package/src/components/VvInputFile/VvInputFile.vue +402 -0
  273. package/src/components/VvInputFile/index.ts +141 -0
  274. package/src/components/VvInputText/VvInputClearAction.ts +51 -47
  275. package/src/components/VvInputText/VvInputPasswordAction.ts +66 -62
  276. package/src/components/VvInputText/VvInputStepAction.ts +43 -43
  277. package/src/components/VvInputText/VvInputText.vue +638 -516
  278. package/src/components/VvInputText/VvInputTextActions.ts +86 -86
  279. package/src/components/VvInputText/index.ts +200 -185
  280. package/src/components/VvNav/VvNav.vue +40 -36
  281. package/src/components/VvNav/VvNavItem.vue +12 -12
  282. package/src/components/VvNav/VvNavSeparator.vue +6 -6
  283. package/src/components/VvNav/index.ts +2 -2
  284. package/src/components/VvProgress/VvProgress.vue +27 -27
  285. package/src/components/VvProgress/index.ts +28 -28
  286. package/src/components/VvRadio/VvRadio.vue +115 -112
  287. package/src/components/VvRadio/index.ts +28 -28
  288. package/src/components/VvRadioGroup/VvRadioGroup.vue +91 -90
  289. package/src/components/VvSelect/VvSelect.vue +242 -241
  290. package/src/components/VvSelect/index.ts +81 -63
  291. package/src/components/VvTab/VvTab.vue +79 -69
  292. package/src/components/VvTab/index.ts +12 -12
  293. package/src/components/VvTextarea/VvTextarea.vue +218 -219
  294. package/src/components/VvTextarea/index.ts +35 -35
  295. package/src/components/VvTooltip/VvTooltip.vue +22 -16
  296. package/src/components/VvTooltip/index.ts +12 -12
  297. package/src/components/common/HintSlot.ts +149 -150
  298. package/src/components/index.ts +10 -0
  299. package/src/composables/alert/useAlert.ts +76 -73
  300. package/src/composables/alert/useInjectAlert.ts +1 -1
  301. package/src/composables/alert/useProvideAlert.ts +10 -10
  302. package/src/composables/dropdown/useInjectDropdown.ts +6 -6
  303. package/src/composables/dropdown/useProvideDropdown.ts +63 -63
  304. package/src/composables/group/useInjectedGroupState.ts +46 -42
  305. package/src/composables/group/useProvideGroupState.ts +9 -15
  306. package/src/composables/index.ts +1 -0
  307. package/src/composables/useBlurhash.ts +68 -0
  308. package/src/composables/useComponentFocus.ts +9 -9
  309. package/src/composables/useComponentIcon.ts +36 -35
  310. package/src/composables/useDebouncedInput.ts +25 -25
  311. package/src/composables/useDefaults.ts +77 -76
  312. package/src/composables/useModifiers.ts +29 -29
  313. package/src/composables/useOptions.ts +51 -43
  314. package/src/composables/usePersistence.ts +74 -0
  315. package/src/composables/useTextCount.ts +44 -44
  316. package/src/composables/useUniqueId.ts +3 -2
  317. package/src/composables/useVolver.ts +1 -1
  318. package/src/constants.ts +97 -82
  319. package/src/directives/index.ts +3 -6
  320. package/src/directives/v-contextmenu.ts +34 -34
  321. package/src/directives/v-tooltip.ts +18 -9
  322. package/src/index.ts +6 -4
  323. package/src/props/index.ts +457 -380
  324. package/src/resolvers/unplugin.ts +146 -136
  325. package/src/shims.d.ts +4 -5
  326. package/src/stories/Accordion/Accordion.settings.ts +51 -50
  327. package/src/stories/Accordion/Accordion.stories.ts +21 -21
  328. package/src/stories/Accordion/Accordion.test.ts +56 -54
  329. package/src/stories/Accordion/AccordionSlots.stories.ts +13 -13
  330. package/src/stories/AccordionGroup/AccordionGroup.settings.ts +70 -67
  331. package/src/stories/AccordionGroup/AccordionGroup.stories.ts +41 -39
  332. package/src/stories/AccordionGroup/AccordionGroup.test.ts +49 -45
  333. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.ts +35 -35
  334. package/src/stories/Alert/Alert.settings.ts +117 -116
  335. package/src/stories/Alert/Alert.stories.ts +30 -30
  336. package/src/stories/Alert/Alert.test.ts +78 -80
  337. package/src/stories/Alert/AlertModifiers.stories.ts +45 -45
  338. package/src/stories/Alert/AlertSlots.stories.ts +35 -35
  339. package/src/stories/AlertGroup/AlertGroup.settings.ts +107 -105
  340. package/src/stories/AlertGroup/AlertGroup.stories.ts +25 -25
  341. package/src/stories/AlertGroup/AlertGroup.test.ts +67 -69
  342. package/src/stories/AlertGroup/AlertGroupPosition.stories.ts +68 -68
  343. package/src/stories/AlertGroup/AlertGroupSlots.stories.ts +23 -23
  344. package/src/stories/AlertGroup/AlertGroupWithComposable.stories.ts +58 -58
  345. package/src/stories/Avatar/Avatar.settings.ts +29 -29
  346. package/src/stories/Avatar/Avatar.stories.ts +23 -23
  347. package/src/stories/Avatar/Avatar.test.ts +22 -24
  348. package/src/stories/Avatar/AvatarBadge.stories.ts +15 -15
  349. package/src/stories/Avatar/AvatarModifiers.stories.ts +61 -61
  350. package/src/stories/Avatar/AvatarSlots.stories.ts +18 -18
  351. package/src/stories/AvatarGroup/AvatarGroup.settings.ts +54 -53
  352. package/src/stories/AvatarGroup/AvatarGroup.stories.ts +17 -17
  353. package/src/stories/AvatarGroup/AvatarGroup.test.ts +24 -26
  354. package/src/stories/AvatarGroup/AvatarGroupModifiers.stories.ts +15 -15
  355. package/src/stories/AvatarGroup/AvatarGroupSlotDefault.stories.ts +17 -17
  356. package/src/stories/Badge/Badge.settings.ts +21 -20
  357. package/src/stories/Badge/Badge.stories.ts +24 -24
  358. package/src/stories/Badge/Badge.test.ts +8 -8
  359. package/src/stories/Badge/BadgeSlots.stories.ts +10 -10
  360. package/src/stories/Blurhash/BlurhashComposable.stories.ts +196 -0
  361. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +35 -34
  362. package/src/stories/Breadcrumb/Breadcrumb.stories.ts +23 -23
  363. package/src/stories/Breadcrumb/Breadcrumb.test.ts +44 -43
  364. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.ts +17 -17
  365. package/src/stories/Button/Button.settings.ts +146 -150
  366. package/src/stories/Button/Button.stories.ts +19 -19
  367. package/src/stories/Button/Button.test.ts +41 -42
  368. package/src/stories/Button/ButtonIcon.stories.ts +42 -42
  369. package/src/stories/Button/ButtonLink.stories.ts +24 -24
  370. package/src/stories/Button/ButtonLoading.stories.ts +22 -22
  371. package/src/stories/Button/ButtonModifiers.stories.ts +91 -91
  372. package/src/stories/Button/ButtonSlots.stories.ts +47 -47
  373. package/src/stories/Button/ButtonState.stories.ts +23 -23
  374. package/src/stories/Button/ButtonToggle.stories.ts +30 -30
  375. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +33 -24
  376. package/src/stories/ButtonGroup/ButtonGroup.stories.ts +20 -20
  377. package/src/stories/ButtonGroup/ButtonGroup.test.ts +23 -26
  378. package/src/stories/ButtonGroup/ButtonGroupModifiers.stories.ts +20 -20
  379. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.ts +18 -18
  380. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.ts +22 -22
  381. package/src/stories/Card/Card.settings.ts +49 -48
  382. package/src/stories/Card/Card.stories.ts +22 -22
  383. package/src/stories/Card/Card.test.ts +14 -16
  384. package/src/stories/Card/CardSlots.stories.ts +42 -42
  385. package/src/stories/Checkbox/Checkbox.settings.ts +36 -35
  386. package/src/stories/Checkbox/Checkbox.stories.ts +57 -57
  387. package/src/stories/Checkbox/Checkbox.test.ts +63 -66
  388. package/src/stories/Checkbox/CheckboxBinary.stories.ts +18 -18
  389. package/src/stories/Checkbox/CheckboxSlots.stories.ts +15 -15
  390. package/src/stories/CheckboxGroup/CheckboxGroup.settings.ts +9 -9
  391. package/src/stories/CheckboxGroup/CheckboxGroup.stories.ts +50 -50
  392. package/src/stories/CheckboxGroup/CheckboxGroup.test.ts +63 -67
  393. package/src/stories/CheckboxGroup/CheckboxGroupOptions.stories.ts +34 -34
  394. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.ts +23 -23
  395. package/src/stories/Combobox/Combobox.settings.ts +391 -383
  396. package/src/stories/Combobox/Combobox.stories.ts +108 -107
  397. package/src/stories/Combobox/Combobox.test.ts +89 -91
  398. package/src/stories/Combobox/ComboboxIconPosition.stories.ts +25 -24
  399. package/src/stories/Combobox/ComboboxMultiple.stories.ts +23 -22
  400. package/src/stories/Combobox/ComboboxOptions.stories.ts +85 -84
  401. package/src/stories/Combobox/ComboboxSlots.stories.ts +56 -55
  402. package/src/stories/Dialog/Dialog.settings.ts +49 -40
  403. package/src/stories/Dialog/Dialog.stories.ts +28 -28
  404. package/src/stories/Dialog/Dialog.test.ts +49 -54
  405. package/src/stories/Dialog/DialogModifiers.stories.ts +42 -0
  406. package/src/stories/Dialog/DialogSlots.stories.ts +20 -20
  407. package/src/stories/Dropdown/Dropdown.settings.ts +63 -62
  408. package/src/stories/Dropdown/Dropdown.stories.ts +59 -59
  409. package/src/stories/Dropdown/Dropdown.test.ts +9 -13
  410. package/src/stories/Dropdown/DropdownContextmenuDirective.stories.ts +16 -16
  411. package/src/stories/Dropdown/DropdownMultilevel.stories.ts +18 -18
  412. package/src/stories/Dropdown/DropdownSlots.stories.ts +50 -50
  413. package/src/stories/Icon/Icon.settings.ts +66 -65
  414. package/src/stories/Icon/Icon.stories.ts +28 -29
  415. package/src/stories/Icon/IconsCollection.stories.ts +22 -22
  416. package/src/stories/InputFile/InputFile.settings.ts +37 -0
  417. package/src/stories/InputFile/InputFile.stories.ts +89 -0
  418. package/src/stories/InputFile/InputFileDropArea.stories.ts +56 -0
  419. package/src/stories/InputFile/InputFileIconPosition.stories.ts +43 -0
  420. package/src/stories/InputFile/InputFileSlots.stories.ts +33 -0
  421. package/src/stories/InputText/InputText.settings.ts +246 -244
  422. package/src/stories/InputText/InputText.stories.ts +67 -67
  423. package/src/stories/InputText/InputText.test.ts +118 -121
  424. package/src/stories/InputText/InputTextIconPosition.stories.ts +24 -24
  425. package/src/stories/InputText/InputTextLength.stories.ts +33 -33
  426. package/src/stories/InputText/InputTextMask.stories.ts +91 -91
  427. package/src/stories/InputText/InputTextMinMax.stories.ts +30 -30
  428. package/src/stories/InputText/InputTextSlots.stories.ts +20 -20
  429. package/src/stories/InputText/InputTextType.stories.ts +70 -70
  430. package/src/stories/Nav/Nav.settings.ts +27 -27
  431. package/src/stories/Nav/Nav.stories.ts +18 -18
  432. package/src/stories/Nav/Nav.test.ts +10 -12
  433. package/src/stories/Nav/NavModifiers.stories.ts +25 -25
  434. package/src/stories/Progress/Progress.settings.ts +24 -23
  435. package/src/stories/Progress/Progress.stories.ts +23 -23
  436. package/src/stories/Progress/Progress.test.ts +4 -4
  437. package/src/stories/Radio/Radio.settings.ts +9 -9
  438. package/src/stories/Radio/Radio.stories.ts +47 -47
  439. package/src/stories/Radio/Radio.test.ts +54 -57
  440. package/src/stories/Radio/RadioSlots.stories.ts +15 -15
  441. package/src/stories/RadioGroup/RadioGroup.settings.ts +9 -9
  442. package/src/stories/RadioGroup/RadioGroup.stories.ts +51 -52
  443. package/src/stories/RadioGroup/RadioGroup.test.ts +63 -67
  444. package/src/stories/RadioGroup/RadioGroupOptions.stories.ts +35 -35
  445. package/src/stories/RadioGroup/RadioGroupSlots.stories.ts +23 -23
  446. package/src/stories/Select/Select.settings.ts +71 -70
  447. package/src/stories/Select/Select.stories.ts +67 -66
  448. package/src/stories/Select/Select.test.ts +65 -70
  449. package/src/stories/Select/SelectIconPosition.stories.ts +27 -26
  450. package/src/stories/Select/SelectOptions.stories.ts +55 -55
  451. package/src/stories/Select/SelectSlots.stories.ts +21 -20
  452. package/src/stories/Tab/Tab.settings.ts +34 -34
  453. package/src/stories/Tab/Tab.stories.ts +17 -17
  454. package/src/stories/Tab/Tab.test.ts +17 -19
  455. package/src/stories/Textarea/Textarea.settings.ts +79 -77
  456. package/src/stories/Textarea/Textarea.stories.ts +63 -63
  457. package/src/stories/Textarea/Textarea.test.ts +70 -73
  458. package/src/stories/Textarea/TextareaLength.stories.ts +33 -33
  459. package/src/stories/Textarea/TextareaSlots.stories.ts +20 -20
  460. package/src/stories/Textarea/TextareatIconPosition.stories.ts +24 -24
  461. package/src/stories/Tooltip/Tooltip.settings.ts +16 -17
  462. package/src/stories/Tooltip/Tooltip.stories.ts +18 -18
  463. package/src/stories/Tooltip/Tooltip.test.ts +53 -54
  464. package/src/stories/Tooltip/TooltipDirective.stories.ts +37 -37
  465. package/src/stories/argTypes.ts +506 -505
  466. package/src/test/expect.ts +72 -77
  467. package/src/test/options.ts +17 -16
  468. package/src/test/sleep.ts +3 -2
  469. package/src/test/types.d.ts +11 -11
  470. package/src/types/alert.ts +21 -17
  471. package/src/types/blurhash.ts +21 -0
  472. package/src/types/generic.ts +2 -3
  473. package/src/types/group.ts +34 -26
  474. package/src/types/index.ts +7 -0
  475. package/src/types/input-file.ts +18 -0
  476. package/src/types/nav.ts +13 -14
  477. package/src/utils/ObjectUtilities.ts +192 -188
  478. package/src/workers/blurhash.ts +9 -0
@@ -1,102 +1,17 @@
1
- import { inject, computed, unref, defineComponent, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, isRef, h, watch, useSlots, createElementBlock, normalizeClass, toDisplayString, createElementVNode, renderSlot, normalizeProps, guardReactiveProps, withDirectives, Fragment, renderList, vModelSelect, createVNode, createSlots, withCtx } from "vue";
1
+ import { inject, computed, unref, defineComponent, mergeDefaults, ref, toRefs, openBlock, createBlock, mergeProps, createCommentVNode, isRef, h, watch, useSlots, createElementBlock, normalizeClass, toDisplayString, createElementVNode, renderSlot, normalizeProps, guardReactiveProps, withDirectives, Fragment, renderList, vModelSelect, createVNode, createSlots, withCtx } from "vue";
2
2
  import { iconExists, Icon, addIcon } from "@iconify/vue";
3
3
  import { uid } from "uid";
4
4
  import { useFocus, useElementVisibility } from "@vueuse/core";
5
5
  import { get } from "ts-dot-prop";
6
- const VvIconProps = {
7
- /**
8
- * Color
9
- */
10
- color: String,
11
- /**
12
- * Width
13
- */
14
- width: {
15
- type: [String, Number]
16
- },
17
- /**
18
- * Height
19
- */
20
- height: {
21
- type: [String, Number]
22
- },
23
- /**
24
- * Icon name
25
- * Can be the full composition of iconify name "@{provider}:{prefix}:{name}" or "{prefix}:{name}" or "{name}"
26
- * https://docs.iconify.design/api/providers.html#provider-in-icon-name
27
- */
28
- name: {
29
- type: String,
30
- required: true
31
- },
32
- /**
33
- * By default 'vv'
34
- * If custom collection is not added with "addCollection" DS class method, this prop could not be used
35
- * Icon provider: https://docs.iconify.design/api/providers.html#provider-in-icon-name
36
- */
37
- provider: {
38
- type: String
39
- },
40
- /**
41
- * The name of icon set.
42
- * Icon default options prefix: simple | normal | detailed
43
- */
44
- prefix: {
45
- type: String,
46
- default: "normal"
47
- },
48
- /**
49
- * Url remote SVG icon
50
- */
51
- src: String,
52
- /**
53
- * Horizontal flip
54
- */
55
- horizontalFlip: Boolean,
56
- /**
57
- * Vertical flip
58
- */
59
- verticalFlip: Boolean,
60
- /**
61
- * String alternative to "horizontalFlip" and "verticalFlip".
62
- * Example: https://docs.iconify.design/icon-components/vue/transform.html
63
- */
64
- flip: String,
65
- /**
66
- * Icon render mode
67
- * 'style' = 'bg' or 'mask', depending on icon content
68
- * 'bg' = span with style using `background`
69
- * 'mask' = span with style using `mask`
70
- * 'svg' = svg
71
- * Iconify doc: https://docs.iconify.design/iconify-icon/modes.html
72
- */
73
- mode: String,
74
- /**
75
- * Toggles inline or block mode
76
- * Example https://docs.iconify.design/icon-components/vue/inline.html
77
- */
78
- inline: Boolean,
79
- /**
80
- * rotates icon
81
- * Example https://docs.iconify.design/icon-components/vue/transform.html
82
- */
83
- rotate: [Number, String],
84
- /**
85
- * A callback that is called when icon data has been loaded
86
- */
87
- onLoad: Function,
88
- /**
89
- * SVG icon string
90
- */
91
- svg: String,
92
- /**
93
- * Icon modifiers: vv-icon css helper classes, value/s are concatened with prefix 'vv-icon--'
94
- * @values string | string[]
95
- */
96
- modifiers: {
97
- type: [String, Array]
98
- }
6
+ const VvIconPropsDefaults = {
7
+ prefix: "normal"
8
+ /* normal */
99
9
  };
10
+ var StorageType = /* @__PURE__ */ ((StorageType2) => {
11
+ StorageType2["local"] = "local";
12
+ StorageType2["session"] = "session";
13
+ return StorageType2;
14
+ })(StorageType || {});
100
15
  var Strategy = /* @__PURE__ */ ((Strategy2) => {
101
16
  Strategy2["absolute"] = "absolute";
102
17
  Strategy2["fixed"] = "fixed";
@@ -131,13 +46,13 @@ var ButtonType = /* @__PURE__ */ ((ButtonType2) => {
131
46
  ButtonType2["reset"] = "reset";
132
47
  return ButtonType2;
133
48
  })(ButtonType || {});
134
- var AnchorTarget = /* @__PURE__ */ ((AnchorTarget2) => {
135
- AnchorTarget2["_blank"] = "_blank";
136
- AnchorTarget2["_self"] = "_self";
137
- AnchorTarget2["_parent"] = "_parent";
138
- AnchorTarget2["_top"] = "_top";
139
- return AnchorTarget2;
140
- })(AnchorTarget || {});
49
+ var ActionTag = /* @__PURE__ */ ((ActionTag2) => {
50
+ ActionTag2["nuxtLink"] = "nuxt-link";
51
+ ActionTag2["routerLink"] = "router-link";
52
+ ActionTag2["a"] = "a";
53
+ ActionTag2["button"] = "button";
54
+ return ActionTag2;
55
+ })(ActionTag || {});
141
56
  const INJECTION_KEY_VOLVER = Symbol.for("volver");
142
57
  function useVolver() {
143
58
  return inject(INJECTION_KEY_VOLVER);
@@ -170,12 +85,29 @@ const __default__$1 = {
170
85
  };
171
86
  const _sfc_main$1 = /* @__PURE__ */ defineComponent({
172
87
  ...__default__$1,
173
- props: VvIconProps,
88
+ props: /* @__PURE__ */ mergeDefaults({
89
+ name: {},
90
+ color: {},
91
+ width: {},
92
+ height: {},
93
+ provider: {},
94
+ prefix: {},
95
+ src: {},
96
+ horizontalFlip: { type: Boolean },
97
+ verticalFlip: { type: Boolean },
98
+ flip: {},
99
+ mode: {},
100
+ inline: { type: Boolean },
101
+ rotate: {},
102
+ onLoad: { type: Function },
103
+ svg: {},
104
+ modifiers: {}
105
+ }, VvIconPropsDefaults),
174
106
  setup(__props) {
175
107
  const props = __props;
176
108
  const hasRotate = computed(() => {
177
109
  if (typeof props.rotate === "string") {
178
- return parseFloat(props.rotate);
110
+ return Number.parseFloat(props.rotate);
179
111
  }
180
112
  return props.rotate;
181
113
  });
@@ -257,7 +189,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
257
189
  color: _ctx.color,
258
190
  onLoad: _ctx.onLoad,
259
191
  icon: unref(icon)
260
- }), null, 16, ["class"])) : createCommentVNode("", true);
192
+ }), null, 16, ["class"])) : createCommentVNode("v-if", true);
261
193
  };
262
194
  }
263
195
  });
@@ -400,10 +332,7 @@ const LinkProps = {
400
332
  /**
401
333
  * Anchor target
402
334
  */
403
- target: {
404
- type: String,
405
- validator: (value) => Object.values(AnchorTarget).includes(value)
406
- },
335
+ target: String,
407
336
  /**
408
337
  * Anchor rel
409
338
  */
@@ -416,27 +345,33 @@ const ValidProps = {
416
345
  /**
417
346
  * Valid status
418
347
  */
419
- valid: Boolean,
348
+ valid: { type: Boolean, default: false },
420
349
  /**
421
350
  * Valid label
422
351
  */
423
- validLabel: [String, Array]
352
+ validLabel: { type: [String, Array], default: void 0 }
424
353
  };
425
354
  const InvalidProps = {
426
355
  /**
427
356
  * Invalid status
428
357
  */
429
- invalid: Boolean,
358
+ invalid: {
359
+ type: Boolean,
360
+ default: false
361
+ },
430
362
  /**
431
363
  * Invalid label
432
364
  */
433
- invalidLabel: [String, Array]
365
+ invalidLabel: { type: [String, Array], default: void 0 }
434
366
  };
435
367
  const LoadingProps = {
436
368
  /**
437
369
  * Loading status
438
370
  */
439
- loading: Boolean,
371
+ loading: {
372
+ type: Boolean,
373
+ default: false
374
+ },
440
375
  /**
441
376
  * Loading label
442
377
  */
@@ -449,43 +384,64 @@ const DisabledProps = {
449
384
  /**
450
385
  * Whether the form control is disabled
451
386
  */
452
- disabled: Boolean
387
+ disabled: {
388
+ type: Boolean,
389
+ default: false
390
+ }
453
391
  };
454
392
  const ActiveProps = {
455
393
  /**
456
394
  * Whether the item is active
457
395
  */
458
- active: Boolean
396
+ active: {
397
+ type: Boolean,
398
+ default: false
399
+ }
459
400
  };
460
401
  const CurrentProps = {
461
402
  /**
462
403
  * Whether the item is current
463
404
  */
464
- current: Boolean
405
+ current: {
406
+ type: Boolean,
407
+ default: false
408
+ }
465
409
  };
466
410
  const PressedProps = {
467
411
  /**
468
412
  * Whether the item is pressed
469
413
  */
470
- pressed: Boolean
414
+ pressed: {
415
+ type: Boolean,
416
+ default: false
417
+ }
471
418
  };
472
419
  const LabelProps = {
473
420
  /**
474
421
  * The item label
475
422
  */
476
- label: [String, Number]
423
+ label: {
424
+ type: [String, Number],
425
+ default: void 0
426
+ }
477
427
  };
478
428
  const ReadonlyProps = {
479
429
  /**
480
430
  * The value is not editable
481
431
  */
482
- readonly: Boolean
432
+ readonly: {
433
+ type: Boolean,
434
+ default: false
435
+ }
483
436
  };
484
437
  const ModifiersProps = {
485
438
  /**
486
439
  * Component BEM modifiers
487
440
  */
488
- modifiers: [String, Array]
441
+ modifiers: {
442
+ type: [String, Array],
443
+ default: void 0
444
+ }
489
445
  };
490
446
  const HintProps = {
491
447
  hintLabel: { type: String, default: "" }
@@ -516,7 +472,10 @@ const IconProps = {
516
472
  * VvIcon name or props
517
473
  * @see VVIcon
518
474
  */
519
- icon: { type: [String, Object] },
475
+ icon: {
476
+ type: [String, Object],
477
+ default: void 0
478
+ },
520
479
  /**
521
480
  * VvIcon position
522
481
  */
@@ -537,7 +496,10 @@ const FloatingLabelProps = {
537
496
  /**
538
497
  * If true the label will be floating
539
498
  */
540
- floating: Boolean
499
+ floating: {
500
+ type: Boolean,
501
+ default: false
502
+ }
541
503
  };
542
504
  const UnselectableProps = {
543
505
  /**
@@ -573,7 +535,8 @@ const IdProps = {
573
535
  * Dropdown show / hide transition name
574
536
  */
575
537
  transitionName: {
576
- type: String
538
+ type: String,
539
+ default: void 0
577
540
  },
578
541
  /**
579
542
  * Offset of the dropdown from the trigger
@@ -641,7 +604,8 @@ const IdProps = {
641
604
  * Set dropdown width to the same as the trigger
642
605
  */
643
606
  triggerWidth: {
644
- type: Boolean
607
+ type: Boolean,
608
+ default: false
645
609
  }
646
610
  });
647
611
  const IdNameProps = {
@@ -658,7 +622,10 @@ const AutofocusProps = {
658
622
  * Global attribute autofocus
659
623
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus
660
624
  */
661
- autofocus: Boolean
625
+ autofocus: {
626
+ type: Boolean,
627
+ default: false
628
+ }
662
629
  };
663
630
  const AutocompleteProps = {
664
631
  /**
@@ -688,8 +655,23 @@ const AutocompleteProps = {
688
655
  ariaLabel: {
689
656
  type: String,
690
657
  default: void 0
658
+ },
659
+ /**
660
+ * Default tag for the action
661
+ */
662
+ defaultTag: {
663
+ type: String,
664
+ default: ActionTag.button
691
665
  }
692
666
  });
667
+ ({
668
+ storageType: {
669
+ type: String,
670
+ default: StorageType.local,
671
+ validator: (value) => Object.values(StorageType).includes(value)
672
+ },
673
+ storageKey: String
674
+ });
693
675
  const VvSelectProps = {
694
676
  ...IdNameProps,
695
677
  ...AutofocusProps,
@@ -738,7 +720,16 @@ const VvSelectProps = {
738
720
  */
739
721
  placeholder: String
740
722
  };
741
- const VvSelectEmits = ["update:modelValue", "focus", "blur"];
723
+ function useVvSelectProps() {
724
+ return {
725
+ ...VvSelectProps,
726
+ options: {
727
+ ...VvSelectProps.options,
728
+ type: Array,
729
+ default: () => []
730
+ }
731
+ };
732
+ }
742
733
  function useDefaults(componentName, propsDefinition, props) {
743
734
  const volver = useVolver();
744
735
  const volverComponentDefaults = computed(() => {
@@ -792,7 +783,9 @@ function useDefaults(componentName, propsDefinition, props) {
792
783
  }, {});
793
784
  });
794
785
  }
795
- const useUniqueId = (id) => computed(() => String((id == null ? void 0 : id.value) || uid()));
786
+ function useUniqueId(id) {
787
+ return computed(() => String((id == null ? void 0 : id.value) || uid()));
788
+ }
796
789
  function useComponentFocus(inputTemplateRef, emit) {
797
790
  const { focused } = useFocus(inputTemplateRef);
798
791
  watch(focused, (newValue) => {
@@ -803,30 +796,30 @@ function useComponentFocus(inputTemplateRef, emit) {
803
796
  };
804
797
  }
805
798
  function useComponentIcon(icon, iconPosition) {
799
+ const hasIcon = computed(() => {
800
+ if (typeof (icon == null ? void 0 : icon.value) === "string") {
801
+ return { name: icon == null ? void 0 : icon.value };
802
+ }
803
+ return icon == null ? void 0 : icon.value;
804
+ });
806
805
  const hasIconBefore = computed(
807
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Position.before)
806
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.before ? hasIcon.value : void 0
808
807
  );
809
808
  const hasIconAfter = computed(
810
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Position.after)
809
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Position.after ? hasIcon.value : void 0
811
810
  );
812
811
  const hasIconLeft = computed(
813
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.left)
812
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.left ? hasIcon.value : void 0
814
813
  );
815
814
  const hasIconRight = computed(
816
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.right)
815
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.right ? hasIcon.value : void 0
817
816
  );
818
817
  const hasIconTop = computed(
819
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.top)
818
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.top ? hasIcon.value : void 0
820
819
  );
821
820
  const hasIconBottom = computed(
822
- () => Boolean((icon == null ? void 0 : icon.value) && iconPosition.value === Side.bottom)
821
+ () => (iconPosition == null ? void 0 : iconPosition.value) === Side.bottom ? hasIcon.value : void 0
823
822
  );
824
- const hasIcon = computed(() => {
825
- if (typeof (icon == null ? void 0 : icon.value) === "string") {
826
- return { name: icon == null ? void 0 : icon.value };
827
- }
828
- return icon == null ? void 0 : icon.value;
829
- });
830
823
  return {
831
824
  hasIcon,
832
825
  hasIconLeft,
@@ -840,26 +833,33 @@ function useComponentIcon(icon, iconPosition) {
840
833
  function useOptions(props) {
841
834
  const { options, labelKey, valueKey, disabledKey } = toRefs(props);
842
835
  const getOptionLabel = (option) => {
843
- if (typeof option !== "object" && option !== null)
836
+ if (typeof option === "string") {
844
837
  return option;
838
+ }
845
839
  return String(
846
840
  typeof labelKey.value === "function" ? labelKey.value(option) : get(option, labelKey.value)
847
841
  );
848
842
  };
849
843
  const getOptionValue = (option) => {
850
- if (typeof option !== "object" && option !== null)
844
+ if (typeof option === "string") {
851
845
  return option;
846
+ }
852
847
  return typeof valueKey.value === "function" ? valueKey.value(option) : get(option, valueKey.value);
853
848
  };
854
849
  const isOptionDisabled = (option) => {
855
- if (typeof option !== "object" && option !== null)
850
+ if (typeof option === "string") {
856
851
  return false;
852
+ }
857
853
  return typeof disabledKey.value === "function" ? disabledKey.value(option) : get(option, disabledKey.value);
858
854
  };
859
855
  const getOptionGrouped = (option) => {
860
- if (typeof option !== "object" && option !== null)
856
+ if (typeof option == "string") {
861
857
  return [];
862
- return option.options || [];
858
+ }
859
+ if (typeof option === "object" && option && "options" in option) {
860
+ return option.options;
861
+ }
862
+ return [];
863
863
  };
864
864
  return {
865
865
  options,
@@ -890,14 +890,16 @@ const __default__ = {
890
890
  };
891
891
  const _sfc_main = /* @__PURE__ */ defineComponent({
892
892
  ...__default__,
893
- props: VvSelectProps,
894
- emits: VvSelectEmits,
895
- setup(__props, { emit }) {
893
+ props: useVvSelectProps(),
894
+ emits: ["update:modelValue", "focus", "blur"],
895
+ setup(__props, { emit: __emit }) {
896
896
  const props = __props;
897
+ const emit = __emit;
897
898
  const slots = useSlots();
899
+ const VvSelectProps2 = useVvSelectProps();
898
900
  const propsDefaults = useDefaults(
899
901
  "VvSelect",
900
- VvSelectProps,
902
+ VvSelectProps2,
901
903
  props
902
904
  );
903
905
  const select = ref();
@@ -929,10 +931,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
929
931
  focused.value = true;
930
932
  }
931
933
  });
932
- const { hasIcon, hasIconBefore, hasIconAfter } = useComponentIcon(
933
- icon,
934
- iconPosition
935
- );
934
+ const { hasIconBefore, hasIconAfter } = useComponentIcon(icon, iconPosition);
936
935
  const isDirty = computed(() => !isEmpty(props.modelValue));
937
936
  const isDisabled = computed(() => props.disabled || props.readonly);
938
937
  const hasTabindex = computed(() => {
@@ -951,28 +950,28 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
951
950
  "vv-select",
952
951
  modifiers,
953
952
  computed(() => ({
954
- valid: valid.value,
955
- invalid: invalid.value,
956
- loading: loading.value,
957
- disabled: disabled.value,
958
- readonly: readonly.value,
959
- "icon-before": hasIconBefore.value,
960
- "icon-after": hasIconAfter.value,
961
- dirty: isDirty.value,
962
- focus: focused.value,
963
- floating: floating.value,
964
- multiple: multiple.value
953
+ "valid": valid.value,
954
+ "invalid": invalid.value,
955
+ "loading": loading.value,
956
+ "disabled": disabled.value,
957
+ "readonly": readonly.value,
958
+ "icon-before": hasIconBefore.value !== void 0,
959
+ "icon-after": hasIconAfter.value !== void 0,
960
+ "dirty": isDirty.value,
961
+ "focus": focused.value,
962
+ "floating": floating.value,
963
+ "multiple": multiple.value
965
964
  }))
966
965
  );
967
966
  const hasAttrs = computed(() => {
968
967
  return {
969
- name: props.name,
970
- tabindex: hasTabindex.value,
971
- disabled: isDisabled.value,
972
- required: props.required,
973
- size: props.size,
974
- autocomplete: props.autocomplete,
975
- multiple: props.multiple,
968
+ "name": props.name,
969
+ "tabindex": hasTabindex.value,
970
+ "disabled": isDisabled.value,
971
+ "required": props.required,
972
+ "size": props.size,
973
+ "autocomplete": props.autocomplete,
974
+ "multiple": props.multiple,
976
975
  "aria-invalid": isInvalid.value,
977
976
  "aria-describedby": hasHintLabelOrSlot.value ? hasHintId.value : void 0,
978
977
  "aria-errormessage": hasInvalidLabelOrSlot.value ? hasHintId.value : void 0
@@ -1000,107 +999,142 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1000
999
  emit("update:modelValue", newValue);
1001
1000
  }
1002
1001
  });
1003
- const isGroup = (option) => {
1004
- if (typeof option === "string")
1002
+ function isGroup(option) {
1003
+ var _a;
1004
+ if (typeof option === "string") {
1005
1005
  return false;
1006
- return option && option.options && option.options.length > 0;
1007
- };
1006
+ }
1007
+ return (_a = option.options) == null ? void 0 : _a.length;
1008
+ }
1008
1009
  return (_ctx, _cache) => {
1009
- return openBlock(), createElementBlock("div", {
1010
- class: normalizeClass(unref(bemCssClasses))
1011
- }, [
1012
- _ctx.label ? (openBlock(), createElementBlock("label", {
1013
- key: 0,
1014
- for: unref(hasId)
1015
- }, toDisplayString(_ctx.label), 9, _hoisted_1)) : createCommentVNode("", true),
1016
- createElementVNode("div", _hoisted_2, [
1017
- _ctx.$slots.before ? (openBlock(), createElementBlock("div", _hoisted_3, [
1018
- renderSlot(_ctx.$slots, "before", normalizeProps(guardReactiveProps(unref(slotProps))))
1019
- ])) : createCommentVNode("", true),
1020
- createElementVNode("div", _hoisted_4, [
1021
- unref(hasIconBefore) ? (openBlock(), createBlock(_sfc_main$1, mergeProps({
1022
- key: 0,
1023
- class: "vv-select__icon"
1024
- }, unref(hasIcon)), null, 16)) : createCommentVNode("", true),
1025
- withDirectives(createElementVNode("select", mergeProps({
1026
- id: unref(hasId),
1027
- ref_key: "select",
1028
- ref: select,
1029
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(localModelValue) ? localModelValue.value = $event : null)
1030
- }, unref(hasAttrs)), [
1031
- _ctx.placeholder ? (openBlock(), createElementBlock("option", {
1032
- key: 0,
1033
- value: void 0,
1034
- disabled: !_ctx.unselectable,
1035
- hidden: !_ctx.unselectable
1036
- }, toDisplayString(_ctx.placeholder), 9, _hoisted_6)) : createCommentVNode("", true),
1037
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.options, (option, index) => {
1038
- return openBlock(), createElementBlock(Fragment, null, [
1039
- !isGroup(option) ? (openBlock(), createElementBlock("option", {
1040
- key: index,
1041
- disabled: unref(isOptionDisabled)(option),
1042
- value: unref(getOptionValue)(option)
1043
- }, toDisplayString(unref(getOptionLabel)(option)), 9, _hoisted_7)) : (openBlock(), createElementBlock("optgroup", {
1044
- key: `group-${index}`,
1045
- disabled: unref(isOptionDisabled)(option),
1046
- label: unref(getOptionLabel)(option)
1047
- }, [
1048
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(getOptionGrouped)(option), (item, i) => {
1049
- return openBlock(), createElementBlock("option", {
1050
- key: `group-${index}-item-${i}`,
1051
- disabled: unref(isOptionDisabled)(item),
1052
- value: unref(getOptionValue)(item)
1053
- }, toDisplayString(unref(getOptionLabel)(item)), 9, _hoisted_9);
1054
- }), 128))
1055
- ], 8, _hoisted_8))
1056
- ], 64);
1057
- }), 256))
1058
- ], 16, _hoisted_5), [
1059
- [vModelSelect, unref(localModelValue)]
1010
+ return openBlock(), createElementBlock(
1011
+ "div",
1012
+ {
1013
+ class: normalizeClass(unref(bemCssClasses))
1014
+ },
1015
+ [
1016
+ _ctx.label ? (openBlock(), createElementBlock("label", {
1017
+ key: 0,
1018
+ for: unref(hasId)
1019
+ }, toDisplayString(_ctx.label), 9, _hoisted_1)) : createCommentVNode("v-if", true),
1020
+ createElementVNode("div", _hoisted_2, [
1021
+ _ctx.$slots.before ? (openBlock(), createElementBlock("div", _hoisted_3, [
1022
+ renderSlot(_ctx.$slots, "before", normalizeProps(guardReactiveProps(unref(slotProps))))
1023
+ ])) : createCommentVNode("v-if", true),
1024
+ createElementVNode("div", _hoisted_4, [
1025
+ unref(hasIconBefore) ? (openBlock(), createBlock(
1026
+ _sfc_main$1,
1027
+ mergeProps({ key: 0 }, unref(hasIconBefore), { class: "vv-select__icon" }),
1028
+ null,
1029
+ 16
1030
+ /* FULL_PROPS */
1031
+ )) : createCommentVNode("v-if", true),
1032
+ withDirectives(createElementVNode("select", mergeProps({
1033
+ id: unref(hasId),
1034
+ ref_key: "select",
1035
+ ref: select,
1036
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => isRef(localModelValue) ? localModelValue.value = $event : null)
1037
+ }, unref(hasAttrs)), [
1038
+ _ctx.placeholder ? (openBlock(), createElementBlock("option", {
1039
+ key: 0,
1040
+ value: void 0,
1041
+ disabled: !_ctx.unselectable,
1042
+ hidden: !_ctx.unselectable
1043
+ }, toDisplayString(_ctx.placeholder), 9, _hoisted_6)) : createCommentVNode("v-if", true),
1044
+ (openBlock(true), createElementBlock(
1045
+ Fragment,
1046
+ null,
1047
+ renderList(_ctx.options, (option, index) => {
1048
+ return openBlock(), createElementBlock(
1049
+ Fragment,
1050
+ null,
1051
+ [
1052
+ !isGroup(option) ? (openBlock(), createElementBlock("option", {
1053
+ key: index,
1054
+ disabled: unref(isOptionDisabled)(option),
1055
+ value: unref(getOptionValue)(option)
1056
+ }, toDisplayString(unref(getOptionLabel)(option)), 9, _hoisted_7)) : (openBlock(), createElementBlock("optgroup", {
1057
+ key: `group-${index}`,
1058
+ disabled: unref(isOptionDisabled)(option),
1059
+ label: unref(getOptionLabel)(option)
1060
+ }, [
1061
+ (openBlock(true), createElementBlock(
1062
+ Fragment,
1063
+ null,
1064
+ renderList(unref(getOptionGrouped)(option), (item, i) => {
1065
+ return openBlock(), createElementBlock("option", {
1066
+ key: `group-${index}-item-${i}`,
1067
+ disabled: unref(isOptionDisabled)(item),
1068
+ value: unref(getOptionValue)(item)
1069
+ }, toDisplayString(unref(getOptionLabel)(item)), 9, _hoisted_9);
1070
+ }),
1071
+ 128
1072
+ /* KEYED_FRAGMENT */
1073
+ ))
1074
+ ], 8, _hoisted_8))
1075
+ ],
1076
+ 64
1077
+ /* STABLE_FRAGMENT */
1078
+ );
1079
+ }),
1080
+ 256
1081
+ /* UNKEYED_FRAGMENT */
1082
+ ))
1083
+ ], 16, _hoisted_5), [
1084
+ [vModelSelect, unref(localModelValue)]
1085
+ ]),
1086
+ unref(hasIconAfter) ? (openBlock(), createBlock(
1087
+ _sfc_main$1,
1088
+ mergeProps({ key: 1 }, unref(hasIconAfter), { class: "vv-select__icon vv-select__icon-after" }),
1089
+ null,
1090
+ 16
1091
+ /* FULL_PROPS */
1092
+ )) : createCommentVNode("v-if", true)
1060
1093
  ]),
1061
- unref(hasIconAfter) ? (openBlock(), createBlock(_sfc_main$1, mergeProps({
1062
- key: 1,
1063
- class: "vv-select__icon vv-select__icon-after"
1064
- }, unref(hasIcon)), null, 16)) : createCommentVNode("", true)
1094
+ _ctx.$slots.after ? (openBlock(), createElementBlock("div", _hoisted_10, [
1095
+ renderSlot(_ctx.$slots, "after", normalizeProps(guardReactiveProps(unref(slotProps))))
1096
+ ])) : createCommentVNode("v-if", true)
1065
1097
  ]),
1066
- _ctx.$slots.after ? (openBlock(), createElementBlock("div", _hoisted_10, [
1067
- renderSlot(_ctx.$slots, "after", normalizeProps(guardReactiveProps(unref(slotProps))))
1068
- ])) : createCommentVNode("", true)
1069
- ]),
1070
- createVNode(unref(HintSlot), {
1071
- id: unref(hasHintId),
1072
- class: "vv-select__hint"
1073
- }, createSlots({ _: 2 }, [
1074
- _ctx.$slots.hint ? {
1075
- name: "hint",
1076
- fn: withCtx(() => [
1077
- renderSlot(_ctx.$slots, "hint", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1078
- ]),
1079
- key: "0"
1080
- } : void 0,
1081
- _ctx.$slots.loading ? {
1082
- name: "loading",
1083
- fn: withCtx(() => [
1084
- renderSlot(_ctx.$slots, "loading", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1085
- ]),
1086
- key: "1"
1087
- } : void 0,
1088
- _ctx.$slots.valid ? {
1089
- name: "valid",
1090
- fn: withCtx(() => [
1091
- renderSlot(_ctx.$slots, "valid", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1092
- ]),
1093
- key: "2"
1094
- } : void 0,
1095
- _ctx.$slots.invalid ? {
1096
- name: "invalid",
1097
- fn: withCtx(() => [
1098
- renderSlot(_ctx.$slots, "invalid", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1099
- ]),
1100
- key: "3"
1101
- } : void 0
1102
- ]), 1032, ["id"])
1103
- ], 2);
1098
+ createVNode(unref(HintSlot), {
1099
+ id: unref(hasHintId),
1100
+ class: "vv-select__hint"
1101
+ }, createSlots({
1102
+ _: 2
1103
+ /* DYNAMIC */
1104
+ }, [
1105
+ _ctx.$slots.hint ? {
1106
+ name: "hint",
1107
+ fn: withCtx(() => [
1108
+ renderSlot(_ctx.$slots, "hint", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1109
+ ]),
1110
+ key: "0"
1111
+ } : void 0,
1112
+ _ctx.$slots.loading ? {
1113
+ name: "loading",
1114
+ fn: withCtx(() => [
1115
+ renderSlot(_ctx.$slots, "loading", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1116
+ ]),
1117
+ key: "1"
1118
+ } : void 0,
1119
+ _ctx.$slots.valid ? {
1120
+ name: "valid",
1121
+ fn: withCtx(() => [
1122
+ renderSlot(_ctx.$slots, "valid", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1123
+ ]),
1124
+ key: "2"
1125
+ } : void 0,
1126
+ _ctx.$slots.invalid ? {
1127
+ name: "invalid",
1128
+ fn: withCtx(() => [
1129
+ renderSlot(_ctx.$slots, "invalid", normalizeProps(guardReactiveProps(unref(hintSlotScope))))
1130
+ ]),
1131
+ key: "3"
1132
+ } : void 0
1133
+ ]), 1032, ["id"])
1134
+ ],
1135
+ 2
1136
+ /* CLASS */
1137
+ );
1104
1138
  };
1105
1139
  }
1106
1140
  });