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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. package/README.md +1 -1
  2. package/bin/icons.cjs +73 -0
  3. package/bin/icons.js +75 -0
  4. package/dist/Volver.d.ts +15 -2
  5. package/dist/components/VvAccordion/VvAccordion.es.js +133 -236
  6. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  7. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +32 -97
  8. package/dist/components/VvAccordion/index.d.ts +46 -0
  9. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +199 -277
  10. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +44 -151
  12. package/dist/components/VvAccordionGroup/{VvAccordionGroup.d.ts → index.d.ts} +9 -13
  13. package/dist/components/VvBadge/VvBadge.es.js +42 -151
  14. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  15. package/dist/components/VvBadge/VvBadge.vue.d.ts +12 -53
  16. package/dist/components/VvBadge/{VvBadge.d.ts → index.d.ts} +0 -0
  17. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +55 -168
  18. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  19. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +24 -104
  20. package/dist/components/VvBreadcrumb/{VvBreadcrumb.d.ts → index.d.ts} +1 -1
  21. package/dist/components/VvButton/VvButton.es.js +298 -312
  22. package/dist/components/VvButton/VvButton.umd.js +1 -1
  23. package/dist/components/VvButton/VvButton.vue.d.ts +91 -163
  24. package/dist/components/VvButton/{VvButton.d.ts → index.d.ts} +46 -9
  25. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +59 -172
  26. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  27. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +30 -125
  28. package/dist/components/VvButtonGroup/{VvButtonGroup.d.ts → index.d.ts} +0 -0
  29. package/dist/components/VvCard/VvCard.es.js +55 -166
  30. package/dist/components/VvCard/VvCard.umd.js +1 -1
  31. package/dist/components/VvCard/VvCard.vue.d.ts +16 -61
  32. package/dist/components/VvCard/{VvCard.d.ts → index.d.ts} +1 -1
  33. package/dist/components/VvCheckbox/VvCheckbox.es.js +344 -0
  34. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -0
  35. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +87 -0
  36. package/dist/components/VvCheckbox/index.d.ts +86 -0
  37. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +415 -0
  38. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -0
  39. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +113 -0
  40. package/dist/components/{VvCheckGroup/VvCheckGroup.d.ts → VvCheckboxGroup/index.d.ts} +10 -10
  41. package/dist/components/VvDialog/VvDialog.es.js +108 -230
  42. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  43. package/dist/components/VvDialog/VvDialog.vue.d.ts +28 -132
  44. package/dist/components/VvDialog/{VvDialog.d.ts → index.d.ts} +2 -6
  45. package/dist/components/VvDropdown/VvDropdown.es.js +167 -186
  46. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  47. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +34 -136
  48. package/dist/components/VvDropdown/{VvDropdown.d.ts → index.d.ts} +7 -3
  49. package/dist/components/VvIcon/VvIcon.es.js +62 -174
  50. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  51. package/dist/components/VvIcon/VvIcon.vue.d.ts +36 -150
  52. package/dist/components/VvIcon/{VvIcon.d.ts → index.d.ts} +9 -0
  53. package/dist/components/VvInputText/VvInputClearAction.d.ts +36 -0
  54. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +56 -0
  55. package/dist/components/VvInputText/VvInputStepAction.d.ts +37 -0
  56. package/dist/components/VvInputText/VvInputText.es.js +586 -577
  57. package/dist/components/VvInputText/VvInputText.umd.js +1 -2
  58. package/dist/components/VvInputText/VvInputText.vue.d.ts +187 -275
  59. package/dist/components/VvInputText/VvInputTextActions.d.ts +1 -1
  60. package/dist/components/VvInputText/index.d.ts +175 -0
  61. package/dist/components/VvNativeSelect/VvNativeSelect.es.js +299 -347
  62. package/dist/components/VvNativeSelect/VvNativeSelect.umd.js +1 -2
  63. package/dist/components/VvNativeSelect/VvNativeSelect.vue.d.ts +78 -190
  64. package/dist/components/VvNativeSelect/{VvNativeSelect.d.ts → index.d.ts} +35 -8
  65. package/dist/components/VvProgress/VvProgress.es.js +45 -162
  66. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  67. package/dist/components/VvProgress/VvProgress.vue.d.ts +17 -103
  68. package/dist/components/VvProgress/{VvProgress.d.ts → index.d.ts} +1 -7
  69. package/dist/components/VvRadio/VvRadio.es.js +292 -267
  70. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  71. package/dist/components/VvRadio/VvRadio.vue.d.ts +52 -122
  72. package/dist/components/VvRadio/index.d.ts +64 -0
  73. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +342 -380
  74. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -2
  75. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +58 -213
  76. package/dist/components/VvRadioGroup/{VvRadioGroup.d.ts → index.d.ts} +2 -2
  77. package/dist/components/VvSelect/VvSelect.es.js +556 -510
  78. package/dist/components/VvSelect/VvSelect.umd.js +1 -2
  79. package/dist/components/VvSelect/VvSelect.vue.d.ts +75 -240
  80. package/dist/components/VvSelect/{VvSelect.d.ts → index.d.ts} +12 -5
  81. package/dist/components/VvTextarea/VvTextarea.es.js +372 -481
  82. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -2
  83. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +103 -299
  84. package/dist/components/VvTextarea/{VvTextarea.d.ts → index.d.ts} +36 -13
  85. package/dist/components/common/HintSlot.d.ts +10 -4
  86. package/dist/components/index.d.ts +13 -6
  87. package/dist/components/index.es.js +2070 -895
  88. package/dist/components/index.umd.js +1 -2
  89. package/dist/composables/debouncedInput/useDebouncedInput.d.ts +2 -2
  90. package/dist/composables/focus/useComponentFocus.d.ts +3 -3
  91. package/dist/composables/group/types/IAccordionGroupState.d.ts +1 -3
  92. package/dist/composables/group/types/IGroupState.d.ts +2 -2
  93. package/dist/composables/group/useInjectedGroupState.d.ts +4 -4
  94. package/dist/composables/group/useProvideGroupState.d.ts +1 -1
  95. package/dist/composables/icons/useComponentIcons.d.ts +2 -2
  96. package/dist/composables/textLimit/useTextLimit.d.ts +0 -3
  97. package/dist/constants.d.ts +4 -4
  98. package/dist/icons.d.ts +1881 -0
  99. package/dist/icons.es.js +4 -6
  100. package/dist/icons.umd.js +1 -1
  101. package/dist/index.es.js +2113 -932
  102. package/dist/index.umd.js +1 -2
  103. package/dist/props/index.d.ts +9 -3
  104. package/dist/resolvers/unplugin.d.ts +27 -0
  105. package/dist/resolvers/unplugin.es.js +40 -0
  106. package/dist/resolvers/unplugin.umd.js +1 -0
  107. package/dist/stories/Accordion/Accordion.test.d.ts +4 -0
  108. package/dist/stories/Badge/Badge.test.d.ts +2 -0
  109. package/dist/stories/Breadcrumb/Breadcrumb.test.d.ts +2 -0
  110. package/dist/stories/Button/Button.test.d.ts +3 -8
  111. package/dist/stories/Card/Card.test.d.ts +3 -0
  112. package/dist/stories/Dialog/Dialog.test.d.ts +2 -0
  113. package/dist/stories/Dropdown/Dropdown.test.d.ts +2 -0
  114. package/dist/stories/Icon/IconList.vue.d.ts +1 -43
  115. package/dist/stories/InputText/InputText.test.d.ts +6 -0
  116. package/dist/stories/Radio/Radio.test.d.ts +3 -0
  117. package/dist/stories/RadioGroup/RadioGroup.test.d.ts +8 -0
  118. package/dist/stories/Select/Select.test.d.ts +3 -0
  119. package/dist/stories/Textarea/Textarea.test.d.ts +8 -0
  120. package/dist/stories/utils.d.ts +1 -3
  121. package/dist/test/sleep.d.ts +1 -0
  122. package/dist/utils/ObjectUtilities.d.ts +82 -95
  123. package/env.d.ts +1 -0
  124. package/package.json +103 -68
  125. package/src/Volver.ts +32 -3
  126. package/src/assets/icons/detailed.json +1 -1
  127. package/src/assets/icons/normal.json +1 -1
  128. package/src/assets/icons/simple.json +1 -1
  129. package/src/components/VvAccordion/VvAccordion.vue +80 -76
  130. package/src/components/VvAccordion/index.ts +69 -0
  131. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +77 -41
  132. package/src/components/VvAccordionGroup/{VvAccordionGroup.ts → index.ts} +8 -12
  133. package/src/components/VvBadge/VvBadge.vue +14 -10
  134. package/src/components/VvBadge/{VvBadge.ts → index.ts} +0 -0
  135. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +18 -19
  136. package/src/components/VvBreadcrumb/{VvBreadcrumb.ts → index.ts} +1 -1
  137. package/src/components/VvButton/VvButton.vue +123 -113
  138. package/src/components/VvButton/index.ts +147 -0
  139. package/src/components/VvButtonGroup/VvButtonGroup.vue +21 -17
  140. package/src/components/VvButtonGroup/{VvButtonGroup.ts → index.ts} +0 -0
  141. package/src/components/VvCard/VvCard.vue +20 -22
  142. package/src/components/VvCard/{VvCard.ts → index.ts} +0 -0
  143. package/src/components/VvCheckbox/VvCheckbox.vue +124 -0
  144. package/src/components/VvCheckbox/index.ts +94 -0
  145. package/src/components/{VvCheckGroup/VvCheckGroup.vue → VvCheckboxGroup/VvCheckboxGroup.vue} +49 -54
  146. package/src/components/{VvCheckGroup/VvCheckGroup.ts → VvCheckboxGroup/index.ts} +9 -9
  147. package/src/components/VvDialog/VvDialog.vue +47 -50
  148. package/src/components/VvDialog/index.ts +10 -0
  149. package/src/components/VvDropdown/VvDropdown.vue +61 -40
  150. package/src/components/VvDropdown/{VvDropdown.ts → index.ts} +8 -4
  151. package/src/components/VvIcon/VvIcon.vue +31 -25
  152. package/src/components/VvIcon/{VvIcon.ts → index.ts} +9 -0
  153. package/src/components/VvInputText/VvInputClearAction.ts +53 -0
  154. package/src/components/VvInputText/VvInputPasswordAction.ts +70 -0
  155. package/src/components/VvInputText/VvInputStepAction.ts +49 -0
  156. package/src/components/VvInputText/VvInputText.vue +168 -170
  157. package/src/components/VvInputText/VvInputTextActions.ts +54 -108
  158. package/src/components/VvInputText/index.ts +135 -0
  159. package/src/components/VvNativeSelect/VvNativeSelect.vue +130 -68
  160. package/src/components/VvNativeSelect/{VvNativeSelect.ts → index.ts} +26 -7
  161. package/src/components/VvProgress/VvProgress.vue +25 -26
  162. package/src/components/VvProgress/{VvProgress.ts → index.ts} +4 -7
  163. package/src/components/VvRadio/VvRadio.vue +81 -108
  164. package/src/components/VvRadio/index.ts +78 -0
  165. package/src/components/VvRadioGroup/VvRadioGroup.vue +45 -45
  166. package/src/components/VvRadioGroup/{VvRadioGroup.ts → index.ts} +1 -1
  167. package/src/components/VvSelect/VvSelect.vue +90 -69
  168. package/src/components/VvSelect/{VvSelect.ts → index.ts} +12 -5
  169. package/src/components/VvTextarea/VvTextarea.vue +121 -128
  170. package/src/components/VvTextarea/{VvTextarea.ts → index.ts} +31 -11
  171. package/src/components/common/HintSlot.ts +157 -136
  172. package/src/components/index.ts +13 -6
  173. package/src/composables/debouncedInput/useDebouncedInput.ts +21 -15
  174. package/src/composables/focus/useComponentFocus.ts +6 -8
  175. package/src/composables/group/types/IAccordionGroupState.ts +1 -3
  176. package/src/composables/group/types/IGroupState.ts +2 -2
  177. package/src/composables/group/useInjectedGroupState.ts +20 -30
  178. package/src/composables/group/useProvideGroupState.ts +1 -2
  179. package/src/composables/icons/useComponentIcons.ts +2 -3
  180. package/src/composables/options/useOptions.ts +3 -0
  181. package/src/composables/textLimit/useTextLimit.ts +1 -4
  182. package/src/composables/useModifiers.ts +13 -15
  183. package/src/constants.ts +5 -7
  184. package/src/directives/{.README → .gitkeep} +0 -0
  185. package/src/icons.ts +7 -0
  186. package/src/index.ts +0 -1
  187. package/src/props/index.ts +7 -1
  188. package/src/resolvers/unplugin.ts +103 -0
  189. package/src/shims.d.ts +11 -0
  190. package/src/stories/Accordion/Accordion.stories.mdx +10 -9
  191. package/src/stories/Accordion/Accordion.test.ts +37 -0
  192. package/src/stories/Accordion/AccordionSlots.stories.mdx +40 -25
  193. package/src/stories/AccordionGroup/AccordionGroup.stories.mdx +10 -16
  194. package/src/stories/AccordionGroup/{accordionGroupTest.js → AccordionGroup.test.js} +15 -17
  195. package/src/stories/AccordionGroup/AccordionGroupCollapse.stories.mdx +38 -0
  196. package/src/stories/AccordionGroup/{AccordionItems.stories.mdx → AccordionGroupItems.stories.mdx} +7 -13
  197. package/src/stories/Badge/Badge.stories.mdx +8 -8
  198. package/src/stories/Badge/Badge.test.ts +16 -0
  199. package/src/stories/Badge/BadgeColor.stories.mdx +6 -7
  200. package/src/stories/Badge/BadgeDot.stories.mdx +4 -3
  201. package/src/stories/Badge/BadgeModifiers.stories.mdx +7 -6
  202. package/src/stories/Breadcrumb/Breadcrumb.stories.mdx +15 -7
  203. package/src/stories/Breadcrumb/Breadcrumb.test.ts +49 -0
  204. package/src/stories/Breadcrumb/BreadcrumbMultiline.stories.mdx +15 -7
  205. package/src/stories/Button/Button.stories.mdx +16 -17
  206. package/src/stories/Button/Button.test.ts +8 -12
  207. package/src/stories/Button/ButtonActive.stories.mdx +2 -1
  208. package/src/stories/Button/ButtonBadge.stories.mdx +2 -2
  209. package/src/stories/Button/ButtonDisabled.stories.mdx +1 -1
  210. package/src/stories/Button/ButtonIcon.stories.mdx +6 -3
  211. package/src/stories/Button/ButtonIconPosition.stories.mdx +1 -1
  212. package/src/stories/Button/ButtonLink.stories.mdx +1 -19
  213. package/src/stories/Button/ButtonLoading.stories.mdx +4 -4
  214. package/src/stories/Button/ButtonModifiers.stories.mdx +1 -1
  215. package/src/stories/Button/ButtonPressed.stories.mdx +31 -0
  216. package/src/stories/Button/ButtonSlots.stories.mdx +1 -1
  217. package/src/stories/ButtonGroup/ButtonGroup.stories.mdx +5 -6
  218. package/src/stories/ButtonGroup/{ButtonGroupTest.js → ButtonGroup.test.js} +6 -28
  219. package/src/stories/ButtonGroup/ButtonGroupAction.stories.mdx +5 -6
  220. package/src/stories/ButtonGroup/ButtonGroupActionQuiet.stories.mdx +3 -4
  221. package/src/stories/ButtonGroup/ButtonGroupBlock.stories.mdx +3 -4
  222. package/src/stories/ButtonGroup/ButtonGroupCompact.stories.mdx +3 -4
  223. package/src/stories/ButtonGroup/ButtonGroupRounded.stories.mdx +3 -4
  224. package/src/stories/ButtonGroup/ButtonGroupToggle.stories.mdx +11 -12
  225. package/src/stories/ButtonGroup/ButtonGroupVertical.stories.mdx +3 -4
  226. package/src/stories/Card/Card.stories.mdx +7 -5
  227. package/src/stories/Card/Card.test.ts +26 -0
  228. package/src/stories/Card/CardSlots.stories.mdx +5 -5
  229. package/src/stories/Card/CardVariant.stories.mdx +5 -4
  230. package/src/stories/Checkbox/Checkbox.stories.mdx +51 -0
  231. package/src/stories/Checkbox/Checkbox.test.js +115 -0
  232. package/src/stories/Checkbox/CheckboxBinary.stories.mdx +76 -0
  233. package/src/stories/{Check/CheckDisabled.stories.mdx → Checkbox/CheckboxDisabled.stories.mdx} +7 -7
  234. package/src/stories/Checkbox/CheckboxError.stories.mdx +43 -0
  235. package/src/stories/Checkbox/CheckboxHintLabel.stories.mdx +35 -0
  236. package/src/stories/{Check/CheckReadonly.stories.mdx → Checkbox/CheckboxReadonly.stories.mdx} +6 -8
  237. package/src/stories/Checkbox/CheckboxSlots.stories.mdx +69 -0
  238. package/src/stories/{Check/CheckSwitch.stories.mdx → Checkbox/CheckboxSwitch.stories.mdx} +8 -8
  239. package/src/stories/CheckboxGroup/CheckboxGroup.stories.mdx +69 -0
  240. package/src/stories/CheckboxGroup/CheckboxGroupDisabled.stories.mdx +26 -0
  241. package/src/stories/CheckboxGroup/CheckboxGroupError.stories.mdx +28 -0
  242. package/src/stories/CheckboxGroup/CheckboxGroupHintLabel.stories.mdx +27 -0
  243. package/src/stories/CheckboxGroup/CheckboxGroupLabel.stories.mdx +26 -0
  244. package/src/stories/{CheckGroup/CheckGroupOptionLabel.stories.mdx → CheckboxGroup/CheckboxGroupOptionLabel.stories.mdx} +14 -11
  245. package/src/stories/{CheckGroup/CheckGroupOptionValue.stories.mdx → CheckboxGroup/CheckboxGroupOptionValue.stories.mdx} +13 -10
  246. package/src/stories/{CheckGroup/CheckGroupOptions.stories.mdx → CheckboxGroup/CheckboxGroupOptions.stories.mdx} +8 -8
  247. package/src/stories/CheckboxGroup/CheckboxGroupReadonly.stories.mdx +26 -0
  248. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.mdx +152 -0
  249. package/src/stories/CheckboxGroup/CheckboxGroupValid.stories.mdx +28 -0
  250. package/src/stories/CheckboxGroup/CheckboxGroupVertical.stories.mdx +26 -0
  251. package/src/stories/Dialog/Dialog.stories.mdx +5 -5
  252. package/src/stories/Dialog/Dialog.test.ts +26 -0
  253. package/src/stories/Dialog/DialogAutoClose.stories.mdx +1 -1
  254. package/src/stories/Dialog/DialogSize.stories.mdx +1 -1
  255. package/src/stories/Dropdown/Dropdown.stories.mdx +11 -7
  256. package/src/stories/Dropdown/Dropdown.test.ts +80 -0
  257. package/src/stories/Dropdown/DropdownDisabled.stories.mdx +9 -2
  258. package/src/stories/Dropdown/DropdownLabelNoResults.stories.mdx +2 -2
  259. package/src/stories/Dropdown/DropdownMaxValues.stories.mdx +4 -2
  260. package/src/stories/Dropdown/DropdownMultiple.stories.mdx +4 -2
  261. package/src/stories/Dropdown/DropdownOptions.stories.mdx +4 -4
  262. package/src/stories/Dropdown/DropdownUseObject.stories.mdx +4 -2
  263. package/src/stories/Icon/Icon.stories.mdx +8 -8
  264. package/src/stories/Icon/{IconTest.js → Icon.test.js} +2 -5
  265. package/src/stories/Icon/IconList.vue +5 -6
  266. package/src/stories/Icon/IconPrefix.stories.mdx +2 -2
  267. package/src/stories/Icon/IconRemote.stories.mdx +2 -2
  268. package/src/stories/Icon/IconsList.stories.mdx +2 -18
  269. package/src/stories/InputText/InputText.stories.mdx +25 -19
  270. package/src/stories/InputText/InputText.test.ts +156 -0
  271. package/src/stories/InputText/InputTextAutocomplete.stories.mdx +9 -2
  272. package/src/stories/InputText/InputTextAutofocus.stories.mdx +6 -3
  273. package/src/stories/InputText/InputTextDisabled.stories.mdx +10 -2
  274. package/src/stories/InputText/InputTextError.stories.mdx +10 -2
  275. package/src/stories/InputText/InputTextFloating.stories.mdx +10 -3
  276. package/src/stories/InputText/InputTextHintLabel.stories.mdx +10 -2
  277. package/src/stories/InputText/InputTextIcon.stories.mdx +6 -2
  278. package/src/stories/InputText/InputTextIconPosition.stories.mdx +10 -3
  279. package/src/stories/InputText/InputTextLabel.stories.mdx +8 -2
  280. package/src/stories/InputText/InputTextLoading.stories.mdx +10 -2
  281. package/src/stories/InputText/InputTextMax.stories.mdx +10 -3
  282. package/src/stories/InputText/InputTextMaxLength.stories.mdx +22 -5
  283. package/src/stories/InputText/InputTextMin.stories.mdx +10 -3
  284. package/src/stories/InputText/InputTextMinLength.stories.mdx +9 -2
  285. package/src/stories/InputText/InputTextPlaceholder.stories.mdx +8 -2
  286. package/src/stories/InputText/InputTextReadonly.stories.mdx +6 -2
  287. package/src/stories/InputText/InputTextSlots.stories.mdx +4 -5
  288. package/src/stories/InputText/InputTextStep.stories.mdx +9 -3
  289. package/src/stories/InputText/InputTextType.stories.mdx +110 -13
  290. package/src/stories/InputText/InputTextValid.stories.mdx +10 -2
  291. package/src/stories/NativeSelect/NativeSelect.stories.mdx +15 -11
  292. package/src/stories/NativeSelect/NativeSelect.test.js +151 -0
  293. package/src/stories/NativeSelect/NativeSelectDisabled.stories.mdx +6 -7
  294. package/src/stories/NativeSelect/NativeSelectError.stories.mdx +7 -3
  295. package/src/stories/NativeSelect/NativeSelectHintLabel.stories.mdx +7 -3
  296. package/src/stories/NativeSelect/NativeSelectIconLeftRight.stories.mdx +14 -12
  297. package/src/stories/NativeSelect/NativeSelectLoading.stories.mdx +7 -3
  298. package/src/stories/NativeSelect/NativeSelectOptions.stories.mdx +44 -38
  299. package/src/stories/NativeSelect/NativeSelectReadonly.stories.mdx +19 -11
  300. package/src/stories/NativeSelect/NativeSelectUseObject.stories.mdx +26 -30
  301. package/src/stories/NativeSelect/NativeSelectValid.stories.mdx +7 -3
  302. package/src/stories/NativeSelect/NativeSelectValueKey.stories.mdx +30 -30
  303. package/src/stories/Progress/Progress.stories.mdx +8 -11
  304. package/src/stories/Progress/{ProgressTest.js → Progress.test.js} +4 -10
  305. package/src/stories/Progress/ProgressDeterminate.stories.mdx +3 -6
  306. package/src/stories/Radio/Radio.stories.mdx +11 -17
  307. package/src/stories/Radio/Radio.test.ts +52 -0
  308. package/src/stories/Radio/RadioDisabled.stories.mdx +4 -7
  309. package/src/stories/Radio/RadioError.stories.mdx +8 -28
  310. package/src/stories/Radio/RadioHintLabel.stories.mdx +6 -7
  311. package/src/stories/Radio/RadioSlots.stories.mdx +21 -7
  312. package/src/stories/RadioGroup/RadioGroup.stories.mdx +20 -27
  313. package/src/stories/RadioGroup/RadioGroup.test.ts +139 -0
  314. package/src/stories/RadioGroup/RadioGroupDisabled.stories.mdx +6 -8
  315. package/src/stories/RadioGroup/RadioGroupError.stories.mdx +9 -11
  316. package/src/stories/RadioGroup/RadioGroupHintLabel.stories.mdx +8 -10
  317. package/src/stories/RadioGroup/RadioGroupLabel.stories.mdx +6 -8
  318. package/src/stories/RadioGroup/RadioGroupOptionLabel.stories.mdx +11 -13
  319. package/src/stories/RadioGroup/RadioGroupOptionValue.stories.mdx +9 -11
  320. package/src/stories/RadioGroup/RadioGroupOptions.stories.mdx +7 -9
  321. package/src/stories/RadioGroup/RadioGroupReadonly.stories.mdx +6 -8
  322. package/src/stories/RadioGroup/RadioGroupSlots.stories.mdx +39 -62
  323. package/src/stories/RadioGroup/RadioGroupValid.stories.mdx +9 -11
  324. package/src/stories/RadioGroup/RadioGroupVertical.stories.mdx +6 -8
  325. package/src/stories/Select/Select.stories.mdx +32 -29
  326. package/src/stories/Select/Select.test.ts +104 -0
  327. package/src/stories/Select/SelectDisabled.stories.mdx +3 -3
  328. package/src/stories/Select/SelectMaxValues.stories.mdx +3 -3
  329. package/src/stories/Select/SelectMultiple.stories.mdx +5 -6
  330. package/src/stories/Select/SelectNative.stories.mdx +6 -8
  331. package/src/stories/Select/SelectOptions.stories.mdx +4 -4
  332. package/src/stories/Select/SelectSearchable.stories.mdx +13 -12
  333. package/src/stories/Select/SelectSeparator.stories.mdx +3 -3
  334. package/src/stories/Select/SelectUseObject.stories.mdx +3 -3
  335. package/src/stories/Textarea/Textarea.stories.mdx +6 -10
  336. package/src/stories/Textarea/Textarea.test.ts +204 -0
  337. package/src/stories/Textarea/TextareaAutoclear.stories.mdx +3 -2
  338. package/src/stories/Textarea/TextareaAutocomplete.stories.mdx +3 -2
  339. package/src/stories/Textarea/TextareaAutofocus.stories.mdx +3 -2
  340. package/src/stories/Textarea/TextareaDebounce.stories.mdx +7 -6
  341. package/src/stories/Textarea/TextareaDisabled.stories.mdx +9 -3
  342. package/src/stories/Textarea/TextareaError.stories.mdx +7 -2
  343. package/src/stories/Textarea/TextareaErrorLabel.stories.mdx +12 -2
  344. package/src/stories/Textarea/TextareaFloating.stories.mdx +7 -2
  345. package/src/stories/Textarea/TextareaHintLabel.stories.mdx +7 -2
  346. package/src/stories/Textarea/TextareaIcon.stories.mdx +3 -2
  347. package/src/stories/Textarea/TextareaIconPosition.stories.mdx +4 -2
  348. package/src/stories/Textarea/TextareaId.stories.mdx +3 -2
  349. package/src/stories/Textarea/TextareaLabel.stories.mdx +3 -2
  350. package/src/stories/Textarea/TextareaLimit.stories.mdx +5 -2
  351. package/src/stories/Textarea/TextareaLoading.stories.mdx +7 -2
  352. package/src/stories/Textarea/TextareaLoadingLabel.stories.mdx +9 -3
  353. package/src/stories/Textarea/TextareaMaxLength.stories.mdx +5 -4
  354. package/src/stories/Textarea/TextareaMinLength.stories.mdx +3 -2
  355. package/src/stories/Textarea/TextareaModifiers.stories.mdx +10 -2
  356. package/src/stories/Textarea/TextareaName.stories.mdx +3 -2
  357. package/src/stories/Textarea/TextareaPlaceholder.stories.mdx +4 -3
  358. package/src/stories/Textarea/TextareaReadonly.stories.mdx +8 -3
  359. package/src/stories/Textarea/TextareaRequired.stories.mdx +3 -2
  360. package/src/stories/Textarea/TextareaResizable.stories.mdx +7 -2
  361. package/src/stories/Textarea/TextareaRowsCols.stories.mdx +4 -2
  362. package/src/stories/Textarea/TextareaSlots.stories.mdx +7 -8
  363. package/src/stories/Textarea/TextareaValid.stories.mdx +7 -1
  364. package/src/stories/Textarea/TextareaValidLabel.stories.mdx +14 -4
  365. package/src/stories/utils.ts +1 -1
  366. package/src/stories/volver-ui-vue.stories.mdx +1 -1
  367. package/src/test/expect.ts +3 -1
  368. package/src/test/sleep.ts +2 -0
  369. package/src/test/types.d.ts +14 -1
  370. package/src/types/{.README → .gitkeep} +0 -0
  371. package/src/utils/ObjectUtilities.ts +247 -241
  372. package/dist/components/VvAccordion/VvAccordion.d.ts +0 -32
  373. package/dist/components/VvAccordion/useAccordionProps.d.ts +0 -16
  374. package/dist/components/VvButton/useButtonGroupProps.d.ts +0 -18
  375. package/dist/components/VvCheck/VvCheck.d.ts +0 -47
  376. package/dist/components/VvCheck/VvCheck.es.js +0 -318
  377. package/dist/components/VvCheck/VvCheck.umd.js +0 -1
  378. package/dist/components/VvCheck/VvCheck.vue.d.ts +0 -165
  379. package/dist/components/VvCheck/useCheckProps.d.ts +0 -16
  380. package/dist/components/VvCheckGroup/VvCheckGroup.es.js +0 -451
  381. package/dist/components/VvCheckGroup/VvCheckGroup.umd.js +0 -2
  382. package/dist/components/VvCheckGroup/VvCheckGroup.vue.d.ts +0 -272
  383. package/dist/components/VvDialog/constants.d.ts +0 -5
  384. package/dist/components/VvInputText/VvInputText.d.ts +0 -73
  385. package/dist/components/VvInputText/constants.d.ts +0 -55
  386. package/dist/components/VvRadio/VvRadio.d.ts +0 -22
  387. package/dist/components/VvRadio/useRadioProps.d.ts +0 -15
  388. package/dist/components/VvTextarea/constants.d.ts +0 -19
  389. package/dist/stories/RadioGroup/RadioOption.test.d.ts +0 -4
  390. package/dist/stories/RadioGroup/RadioProperty.test.d.ts +0 -12
  391. package/dist/stories/RadioGroup/RadioSlots.test.d.ts +0 -6
  392. package/src/assets/icons/index.js +0 -7
  393. package/src/components/VvAccordion/VvAccordion.ts +0 -34
  394. package/src/components/VvAccordion/useAccordionProps.ts +0 -45
  395. package/src/components/VvButton/VvButton.ts +0 -87
  396. package/src/components/VvButton/useButtonGroupProps.ts +0 -43
  397. package/src/components/VvCheck/VvCheck.ts +0 -48
  398. package/src/components/VvCheck/VvCheck.vue +0 -147
  399. package/src/components/VvCheck/useCheckProps.ts +0 -41
  400. package/src/components/VvDialog/VvDialog.ts +0 -17
  401. package/src/components/VvDialog/constants.ts +0 -5
  402. package/src/components/VvInputText/VvInputText.ts +0 -66
  403. package/src/components/VvInputText/constants.ts +0 -34
  404. package/src/components/VvRadio/VvRadio.ts +0 -25
  405. package/src/components/VvRadio/useRadioProps.ts +0 -40
  406. package/src/components/VvTextarea/constants.ts +0 -14
  407. package/src/stories/Accordion/AccordionBordered.stories.mdx +0 -26
  408. package/src/stories/Accordion/AccordionIconRight.stories.mdx +0 -32
  409. package/src/stories/Accordion/accordionTest.js +0 -36
  410. package/src/stories/AccordionGroup/Accordion.stories.mdx +0 -42
  411. package/src/stories/Badge/BadgeTest.js +0 -21
  412. package/src/stories/Button/ButtonSelected.stories.mdx +0 -30
  413. package/src/stories/Check/Check.stories.mdx +0 -62
  414. package/src/stories/Check/CheckBinary.stories.mdx +0 -75
  415. package/src/stories/Check/CheckError.stories.mdx +0 -64
  416. package/src/stories/Check/CheckErrorTests.js +0 -74
  417. package/src/stories/Check/CheckHintLabel.stories.mdx +0 -30
  418. package/src/stories/Check/CheckPropertyTest.js +0 -102
  419. package/src/stories/Check/CheckSlots.stories.mdx +0 -51
  420. package/src/stories/CheckGroup/CheckGroup.stories.mdx +0 -69
  421. package/src/stories/CheckGroup/CheckGroupDisabled.stories.mdx +0 -26
  422. package/src/stories/CheckGroup/CheckGroupError.stories.mdx +0 -28
  423. package/src/stories/CheckGroup/CheckGroupHintLabel.stories.mdx +0 -27
  424. package/src/stories/CheckGroup/CheckGroupLabel.stories.mdx +0 -26
  425. package/src/stories/CheckGroup/CheckGroupReadonly.stories.mdx +0 -26
  426. package/src/stories/CheckGroup/CheckGroupSlots.stories.mdx +0 -152
  427. package/src/stories/CheckGroup/CheckGroupValid.stories.mdx +0 -28
  428. package/src/stories/CheckGroup/CheckGroupVertical.stories.mdx +0 -26
  429. package/src/stories/RadioGroup/RadioOption.test.ts +0 -45
  430. package/src/stories/RadioGroup/RadioProperty.test.ts +0 -87
  431. package/src/stories/RadioGroup/RadioSlots.test.ts +0 -29
  432. package/src/stories/stories.scss +0 -13
@@ -1,266 +1,230 @@
1
- import { toRefs as q, computed as w, h as ce, unref as d, defineComponent as T, openBlock as S, createElementBlock as A, normalizeClass as z, createElementVNode as B, toDisplayString as E, createCommentVNode as _, Fragment as U, renderList as Y, createTextVNode as ee, ref as F, inject as de, createBlock as I, mergeProps as L, useSlots as te, renderSlot as G, createVNode as M, watch as fe, withKeys as Q, withDirectives as pe, vModelText as ye } from "vue";
2
- import { toReactive as me, useFocus as ve, refDebounced as ge, onClickOutside as he } from "@vueuse/core";
3
- import { v4 as Z } from "uuid";
4
- import { iconExists as H, Icon as be, addIcon as Se } from "@iconify/vue";
5
- const V = {
6
- equals(t, r, e) {
7
- return e ? this.resolveFieldData(t, e) === this.resolveFieldData(r, e) : this.deepEquals(t, r);
8
- },
9
- deepEquals(t, r) {
10
- if (t === r)
11
- return !0;
12
- if (t && r && typeof t == "object" && typeof r == "object") {
13
- const e = Array.isArray(t), u = Array.isArray(r);
14
- let s, o, c;
15
- if (e && u) {
16
- if (o = t.length, o != r.length)
17
- return !1;
18
- for (s = o; s-- !== 0; )
19
- if (!this.deepEquals(t[s], r[s]))
20
- return !1;
21
- return !0;
22
- }
23
- if (e != u)
24
- return !1;
25
- const m = t instanceof Date, a = r instanceof Date;
26
- if (m != a)
27
- return !1;
28
- if (m && a)
29
- return t.getTime() == r.getTime();
30
- const h = t instanceof RegExp, i = r instanceof RegExp;
31
- if (h != i)
32
- return !1;
33
- if (h && i)
34
- return t.toString() == r.toString();
35
- const n = Object.keys(t);
36
- if (o = n.length, o !== Object.keys(r).length)
1
+ import { unref as i, computed as g, toRefs as q, h as be, defineComponent as z, openBlock as V, createElementBlock as _, normalizeClass as W, createElementVNode as O, toDisplayString as B, createCommentVNode as C, Fragment as Y, renderList as ie, createTextVNode as ue, ref as E, inject as he, createBlock as M, mergeProps as H, useSlots as de, renderSlot as le, withDirectives as ce, isRef as Se, vModelSelect as Ve, createVNode as G, watch as $e, withKeys as oe, vModelText as Ae } from "vue";
2
+ import { nanoid as ee } from "nanoid";
3
+ import { toReactive as _e, useFocus as we, refDebounced as ke, onClickOutside as je } from "@vueuse/core";
4
+ import { iconExists as I, Icon as Ce, addIcon as Oe } from "@iconify/vue";
5
+ function R(r, t, e) {
6
+ return e ? L(r, e) === L(t, e) : Q(r, t);
7
+ }
8
+ function Q(r, t) {
9
+ if (r === t)
10
+ return !0;
11
+ if (r && t && typeof r == "object" && typeof t == "object") {
12
+ const e = Array.isArray(r), c = Array.isArray(t);
13
+ let n, u, l;
14
+ if (e && c) {
15
+ if (u = r.length, u != t.length)
37
16
  return !1;
38
- for (s = o; s-- !== 0; )
39
- if (!Object.prototype.hasOwnProperty.call(r, n[s]))
40
- return !1;
41
- for (s = o; s-- !== 0; )
42
- if (c = n[s], !this.deepEquals(t[c], r[c]))
17
+ for (n = u; n-- !== 0; )
18
+ if (!Q(r[n], t[n]))
43
19
  return !1;
44
20
  return !0;
45
21
  }
46
- return t !== t && r !== r;
47
- },
48
- resolveFieldData(t, r) {
49
- if (t && Object.keys(t).length && r) {
50
- if (r.indexOf(".") === -1)
51
- return t[r];
52
- {
53
- const e = r.split(".");
54
- let u = t;
55
- for (let s = 0, o = e.length; s < o; ++s) {
56
- if (t == null)
57
- return null;
58
- u = u[e[s]];
59
- }
60
- return u;
61
- }
62
- } else
63
- return null;
64
- },
65
- isFunction(t) {
66
- return !!(t && t.constructor && t.call && t.apply);
67
- },
68
- findIndexInList(t, r) {
69
- let e = -1;
70
- if (r) {
71
- for (let u = 0; u < r.length; u++)
72
- if (this.equals(r[u], t)) {
73
- e = u;
74
- break;
75
- }
76
- }
77
- return e;
78
- },
79
- contains(t, r) {
80
- if (t != null && r && r.length) {
81
- for (const e of r)
82
- if (this.equals(t, e))
83
- return !0;
84
- }
85
- return !1;
86
- },
87
- isEmpty(t) {
88
- return t == null || t === "" || Array.isArray(t) && t.length === 0 || !(t instanceof Date) && typeof t == "object" && Object.keys(t).length === 0;
89
- },
90
- isNotEmpty(t) {
91
- return !this.isEmpty(t);
92
- },
93
- pickBy(t, r) {
94
- return Object.fromEntries(
95
- Object.entries(t).filter(([e]) => r(e))
96
- );
97
- },
98
- removeFromList(t, r) {
99
- const e = this.findIndexInList(t, r);
100
- return e > -1 ? r.filter((u, s) => s !== e) : r;
101
- },
102
- isString(t) {
103
- return typeof t == "string" || t instanceof String;
104
- },
105
- propsToObject(t) {
106
- return Object.keys(t).reduce((r, e) => {
107
- var u, s, o, c, m;
108
- return this.isFunction(t[e]) ? r[e] = t[e]() : Array.isArray(t[e]) ? r[e] = t[e][0]() : (u = t[e]) != null && u.type && (Array.isArray(t[e].type) ? r[e] = ((s = t[e]) == null ? void 0 : s.default) || ((o = t[e]) == null ? void 0 : o.type[0]()) : r[e] = ((c = t[e]) == null ? void 0 : c.default) || ((m = t[e]) == null ? void 0 : m.type())), r;
109
- }, {});
110
- },
111
- filterArray(t, r, e) {
112
- return t.filter((u) => r.some((s) => typeof s == "string" ? u[e] == s : this.equals(
113
- u[e],
114
- s[e]
115
- )));
116
- },
117
- kebabCase(t) {
118
- var r, e;
119
- if (t)
120
- return (e = (r = t.match(
121
- /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g
122
- )) == null ? void 0 : r.join("-")) == null ? void 0 : e.toLowerCase();
22
+ if (e != c)
23
+ return !1;
24
+ const h = r instanceof Date, b = t instanceof Date;
25
+ if (h != b)
26
+ return !1;
27
+ if (h && b)
28
+ return r.getTime() == t.getTime();
29
+ const y = r instanceof RegExp, a = t instanceof RegExp;
30
+ if (y != a)
31
+ return !1;
32
+ if (y && a)
33
+ return r.toString() == t.toString();
34
+ const o = Object.keys(r);
35
+ if (u = o.length, u !== Object.keys(t).length)
36
+ return !1;
37
+ for (n = u; n-- !== 0; )
38
+ if (!Object.prototype.hasOwnProperty.call(t, o[n]))
39
+ return !1;
40
+ for (n = u; n-- !== 0; )
41
+ if (l = o[n], !Q(r[l], t[l]))
42
+ return !1;
43
+ return !0;
123
44
  }
124
- }, re = {
125
- valid: Boolean,
126
- validLabel: [String, Array]
127
- }, ne = {
128
- error: Boolean,
129
- errorLabel: [String, Array]
130
- }, se = {
131
- loading: Boolean,
132
- loadingLabel: String
133
- }, J = {
134
- disabled: Boolean
135
- }, le = {
136
- readonly: Boolean
137
- }, X = {
138
- modifiers: [String, Array]
139
- }, oe = {
140
- hintLabel: { type: String, default: "" }
141
- }, Ve = {
142
- ...re,
143
- ...ne,
144
- ...oe,
145
- ...se,
146
- ...J,
147
- ...le,
148
- ...X,
149
- modelValue: [String, Array, Object],
150
- label: String,
151
- labelNoResult: { type: String, default: "No results" },
152
- placeholder: String,
153
- searchable: Boolean,
154
- searchPlaceholder: String,
155
- debounceSearch: {
156
- type: [Number, String],
157
- default: 0
158
- },
159
- options: {
160
- type: Array,
161
- required: !0
162
- },
163
- useObject: Boolean,
164
- multiple: Boolean,
165
- maxValues: [Number, String],
166
- separator: { type: String, default: ", " },
167
- labelKey: { type: String, default: "label" },
168
- valueKey: { type: String, default: "value" },
169
- iconLeft: String,
170
- iconRight: String,
171
- native: Boolean
172
- };
173
- function R(t) {
174
- return Array.isArray(t) ? t.filter((r) => V.isString(r)).reduce((r, e) => r.length > 0 ? r + `
175
- ` + e : e, "") : t;
45
+ return r !== r && t !== t;
176
46
  }
177
- function ae(t, r) {
178
- return {
179
- name: "HintSlot",
180
- props: {
181
- params: {
182
- type: Object,
183
- default: () => ({})
47
+ function L(r, t) {
48
+ if (r && Object.keys(r).length && t) {
49
+ if (t.indexOf(".") === -1)
50
+ return r[t];
51
+ {
52
+ const e = t.split(".");
53
+ let c = r;
54
+ for (let n = 0, u = e.length; n < u; ++n) {
55
+ if (r == null)
56
+ return null;
57
+ c = c[e[n]];
184
58
  }
185
- },
186
- setup(e) {
187
- const u = q(t), {
188
- error: s,
189
- valid: o,
190
- hint: c,
191
- loading: m
192
- } = r, {
193
- hintLabel: a,
194
- modelValue: h,
195
- valid: i,
196
- validLabel: n,
197
- error: v,
198
- errorLabel: l
199
- } = u, y = V.resolveFieldData(u, "loading"), b = V.resolveFieldData(
200
- u,
201
- "loadingLabel"
202
- ), O = w(() => v.value ? !!(v.value && s || (l == null ? void 0 : l.value) && Array.isArray(l.value) && l.value.length > 0 || (l == null ? void 0 : l.value) && V.isNotEmpty(l.value)) : !1), $ = w(() => !!(a && a.value || c || o || n && n.value || O.value || (y == null ? void 0 : y.value) && m || (y == null ? void 0 : y.value) && (b == null ? void 0 : b.value))), f = w(() => {
203
- const C = me({
204
- hintLabel: a,
205
- modelValue: h,
206
- valid: i,
207
- validLabel: n,
208
- error: v,
209
- errorLabel: l,
210
- loading: y,
211
- loadingLabel: b,
212
- ...e.params
213
- });
214
- return v != null && v.value ? (s == null ? void 0 : s(C)) || R(l == null ? void 0 : l.value) || (a == null ? void 0 : a.value) : i != null && i.value ? (o == null ? void 0 : o(C)) || R(n == null ? void 0 : n.value) || (a == null ? void 0 : a.value) : y != null && y.value ? (m == null ? void 0 : m(C)) || R(b == null ? void 0 : b.value) || (a == null ? void 0 : a.value) : (c == null ? void 0 : c(C)) || R(a == null ? void 0 : a.value) || (a == null ? void 0 : a.value);
215
- });
216
- return {
217
- hasHint: $,
218
- hintContent: f
219
- };
220
- },
221
- render() {
222
- if (this.hasHint)
223
- return ce(
224
- "pre",
225
- { style: { "white-space": "pre" } },
226
- this.hintContent
227
- );
59
+ return c;
228
60
  }
229
- };
61
+ } else
62
+ return null;
63
+ }
64
+ function Be(r, t) {
65
+ let e = -1;
66
+ if (t) {
67
+ for (let c = 0; c < t.length; c++)
68
+ if (R(t[c], r)) {
69
+ e = c;
70
+ break;
71
+ }
72
+ }
73
+ return e;
74
+ }
75
+ function F(r, t) {
76
+ if (r != null && t && t.length) {
77
+ for (const e of t)
78
+ if (R(r, e))
79
+ return !0;
80
+ }
81
+ return !1;
82
+ }
83
+ function te(r) {
84
+ return ((t) => t == null || t === "" || Array.isArray(t) && t.length === 0 || !(t instanceof Date) && typeof t == "object" && Object.keys(t).length === 0)(i(r));
85
+ }
86
+ function Ne(r, t) {
87
+ const e = Be(r, t);
88
+ return e > -1 ? t.filter((c, n) => n !== e) : t;
89
+ }
90
+ function De(r) {
91
+ return typeof r == "string" || r instanceof String;
230
92
  }
231
- function x(t, r) {
232
- const e = { [`${t}`]: !0 };
93
+ function Pe(r, t, e) {
94
+ return r.filter((c) => t.some((n) => typeof n == "string" ? c[e] == n : R(c[e], n[e])));
95
+ }
96
+ function se(r) {
97
+ var t, e;
98
+ if (r)
99
+ return (e = (t = r.match(
100
+ /[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g
101
+ )) == null ? void 0 : t.join("-")) == null ? void 0 : e.toLowerCase();
102
+ }
103
+ function U(r, t) {
104
+ const e = { [`${r}`]: !0 };
233
105
  return {
234
- bemCssClasses: w(() => Object.keys(r).reduce((s, o) => {
235
- const c = d(r[o]) || !1;
236
- if (!c)
237
- return s;
238
- if (o === "modifiers") {
239
- const m = Array.isArray(c) ? c : [c];
106
+ bemCssClasses: g(() => Object.keys(t).reduce((n, u) => {
107
+ const l = i(t[u]) || !1;
108
+ if (!l)
109
+ return n;
110
+ if (u === "modifiers") {
111
+ const h = Array.isArray(l) ? l : l.split(" ");
240
112
  return {
241
- ...s,
242
- ...m.reduce(
243
- (a, h) => ({
244
- ...a,
245
- [`${t}--${V.kebabCase(
246
- h
247
- )}`]: !0
113
+ ...n,
114
+ ...h.reduce(
115
+ (b, y) => ({
116
+ ...b,
117
+ [`${r}--${se(y)}`]: !0
248
118
  }),
249
119
  {}
250
120
  )
251
121
  };
252
122
  } else
253
123
  return {
254
- ...s,
255
- [`${t}--${V.kebabCase(o)}`]: c
124
+ ...n,
125
+ [`${r}--${se(u)}`]: l
256
126
  };
257
127
  }, e) || {})
258
128
  };
259
129
  }
260
- const Ae = {
261
- ...J,
262
- ...X,
263
- modelValue: [String, Array, Object],
130
+ function T(r) {
131
+ return Array.isArray(r) ? r.filter((t) => De(t)).join(" ") : r;
132
+ }
133
+ function fe(r, t) {
134
+ const {
135
+ error: e,
136
+ valid: c,
137
+ hint: n,
138
+ loading: u
139
+ } = t, {
140
+ hintLabel: l,
141
+ modelValue: h,
142
+ valid: b,
143
+ validLabel: y,
144
+ error: a,
145
+ errorLabel: o,
146
+ ...s
147
+ } = q(r), m = L(s, "loading"), v = L(s, "loadingLabel"), S = g(() => a.value ? !!(a.value && e || o != null && o.value && Array.isArray(o.value) && o.value.length > 0 || o != null && o.value && !te(o)) : !1), $ = g(
148
+ () => !!(l && l.value || n)
149
+ ), w = g(
150
+ () => !!(y && y.value || c)
151
+ ), k = g(
152
+ () => !!(m != null && m.value && u || m != null && m.value && (v != null && v.value))
153
+ ), N = g(
154
+ () => $.value || w || S.value || k.value
155
+ );
156
+ return {
157
+ hasErrors: S,
158
+ hasHint: $,
159
+ hasValid: w,
160
+ hasLoading: k,
161
+ HintSlot: {
162
+ name: "HintSlot",
163
+ props: {
164
+ params: {
165
+ type: Object,
166
+ default: () => ({})
167
+ }
168
+ },
169
+ setup(D) {
170
+ const P = g(() => {
171
+ const j = _e({
172
+ hintLabel: l,
173
+ modelValue: h,
174
+ valid: b,
175
+ validLabel: y,
176
+ error: a,
177
+ errorLabel: o,
178
+ loading: m,
179
+ loadingLabel: v,
180
+ ...D.params
181
+ });
182
+ return a != null && a.value ? (e == null ? void 0 : e(j)) || T(o == null ? void 0 : o.value) || (l == null ? void 0 : l.value) : b != null && b.value ? (c == null ? void 0 : c(j)) || T(y == null ? void 0 : y.value) || (l == null ? void 0 : l.value) : m != null && m.value ? (u == null ? void 0 : u(j)) || T(v == null ? void 0 : v.value) || (l == null ? void 0 : l.value) : (n == null ? void 0 : n(j)) || T(l == null ? void 0 : l.value) || (l == null ? void 0 : l.value);
183
+ });
184
+ return {
185
+ isVisible: N,
186
+ hasErrors: S,
187
+ hasValid: w,
188
+ hintContent: P
189
+ };
190
+ },
191
+ render() {
192
+ if (this.isVisible)
193
+ return be(
194
+ "small",
195
+ {
196
+ role: this.hasErrors || this.hasValid ? "alert" : void 0
197
+ },
198
+ this.hintContent
199
+ );
200
+ }
201
+ }
202
+ };
203
+ }
204
+ const pe = {
205
+ valid: Boolean,
206
+ validLabel: [String, Array]
207
+ }, ve = {
208
+ error: Boolean,
209
+ errorLabel: [String, Array]
210
+ }, me = {
211
+ loading: Boolean,
212
+ loadingLabel: String
213
+ }, re = {
214
+ disabled: Boolean
215
+ }, ye = {
216
+ readonly: Boolean
217
+ }, ne = {
218
+ modifiers: [String, Array]
219
+ }, ge = {
220
+ hintLabel: { type: String, default: "" }
221
+ }, Ke = {
222
+ ...re,
223
+ ...ne,
224
+ modelValue: {
225
+ type: [String, Number, Boolean, Object, Array],
226
+ required: !0
227
+ },
264
228
  labelNoResult: { type: String, default: "No results" },
265
229
  options: {
266
230
  type: Array,
@@ -271,94 +235,81 @@ const Ae = {
271
235
  maxValues: [Number, String],
272
236
  labelKey: { type: String, default: "label" },
273
237
  valueKey: { type: String, default: "value" }
274
- }, we = { key: 0 }, Oe = ["for"], je = ["id", "type", "value", "checked", "disabled"], Ce = /* @__PURE__ */ T({
275
- __name: "VvDropdown",
276
- props: Ae,
238
+ }, xe = {
239
+ key: 0,
240
+ role: "option"
241
+ }, Ee = ["aria-selected"], Re = ["for"], qe = ["id", "type", "value", "checked", "disabled"], Ie = {
242
+ name: "VvDropdown"
243
+ }, Fe = /* @__PURE__ */ z({
244
+ ...Ie,
245
+ props: Ke,
277
246
  emits: ["update:modelValue"],
278
- setup(t, { emit: r }) {
279
- const e = t, u = Z(), { modifiers: s, disabled: o } = q(e), { bemCssClasses: c } = x("vv-dropdown", {
280
- modifiers: s,
281
- disabled: o
247
+ setup(r, { emit: t }) {
248
+ const e = r, c = ee(), { modifiers: n, disabled: u } = q(e), { bemCssClasses: l } = U("vv-dropdown", {
249
+ modifiers: n,
250
+ disabled: u
282
251
  });
283
- function m(n) {
284
- return Array.isArray(e.modelValue) ? V.contains(n, e.modelValue) || V.contains(a(n), e.modelValue) : V.equals(n, e.modelValue) || V.equals(a(n), e.modelValue);
252
+ function h(s) {
253
+ return Array.isArray(e.modelValue) ? F(s, e.modelValue) || F(b(s), e.modelValue) : R(s, e.modelValue) || R(b(s), e.modelValue);
285
254
  }
286
- function a(n) {
287
- return typeof n == "string" ? n : String(n[e.valueKey]);
255
+ function b(s) {
256
+ return typeof s == "string" ? s : String(s[e.valueKey]);
288
257
  }
289
- function h(n) {
290
- return typeof n == "string" ? n : n[e.labelKey];
258
+ function y(s) {
259
+ return typeof s == "string" ? s : s[e.labelKey];
291
260
  }
292
- function i(n) {
293
- var b, O;
294
- const v = n.target;
295
- let l = v.value;
296
- if (l = (e.useObject ? (b = e.options) == null ? void 0 : b.find(
297
- ($) => $[e.valueKey] == l
298
- ) : null) || l, e.multiple) {
299
- if (typeof e.maxValues < "u" && e.maxValues >= 0 && ((O = e.modelValue) == null ? void 0 : O.length) >= e.maxValues && (Array.isArray(e.modelValue) && !V.contains(l, e.modelValue) || e.maxValues == 0)) {
300
- v.checked = !1;
261
+ function a(s) {
262
+ return typeof s == "string" || s.disabled === void 0 ? u.value : s.disabled;
263
+ }
264
+ function o(s) {
265
+ var $, w;
266
+ const m = s.target;
267
+ let v = m.value;
268
+ if (v = (e.useObject ? ($ = e.options) == null ? void 0 : $.find(
269
+ (k) => k[e.valueKey] == v
270
+ ) : null) || v, e.multiple) {
271
+ if (typeof e.maxValues < "u" && e.maxValues >= 0 && Array.isArray(e.modelValue) && ((w = e.modelValue) == null ? void 0 : w.length) >= e.maxValues && (Array.isArray(e.modelValue) && !F(v, e.modelValue) || e.maxValues == 0)) {
272
+ m.checked = !1;
301
273
  return;
302
274
  }
303
- Array.isArray(e.modelValue) ? l = V.contains(l, e.modelValue) ? V.removeFromList(l, e.modelValue) : [...e.modelValue, l] : l = [l];
275
+ Array.isArray(e.modelValue) ? v = F(v, e.modelValue) ? Ne(v, e.modelValue) : [...e.modelValue, v] : v = [v];
304
276
  }
305
- r("update:modelValue", l);
277
+ t("update:modelValue", v);
306
278
  }
307
- return (n, v) => {
308
- var l;
309
- return S(), A("ul", {
310
- class: z(d(c)),
279
+ return (s, m) => {
280
+ var v;
281
+ return V(), _("ul", {
282
+ class: W(i(l)),
311
283
  role: "listbox"
312
284
  }, [
313
- (l = n.options) != null && l.length ? _("", !0) : (S(), A("li", we, [
314
- B("label", null, E(n.labelNoResult), 1)
285
+ (v = s.options) != null && v.length ? C("", !0) : (V(), _("li", xe, [
286
+ O("label", null, B(s.labelNoResult), 1)
315
287
  ])),
316
- (S(!0), A(U, null, Y(n.options, (y, b) => {
317
- var O;
318
- return S(), A("li", { key: b }, [
319
- B("label", {
320
- for: `dropdown-${b}-${d(u)}`
321
- }, [
322
- B("input", {
323
- id: `dropdown-${b}-${d(u)}`,
324
- type: n.multiple ? "checkbox" : "radio",
325
- value: a(y),
326
- checked: m(y),
327
- disabled: typeof y == "object" ? (O = y.disabled) != null ? O : d(o) : d(o),
328
- onInput: i
329
- }, null, 40, je),
330
- ee(" " + E(h(y)), 1)
331
- ], 8, Oe)
332
- ]);
333
- }), 128))
288
+ (V(!0), _(Y, null, ie(s.options, (S, $) => (V(), _("li", {
289
+ key: $,
290
+ role: "option",
291
+ "aria-selected": h(S)
292
+ }, [
293
+ O("label", {
294
+ for: `dropdown-${$}-${i(c)}`
295
+ }, [
296
+ O("input", {
297
+ id: `dropdown-${$}-${i(c)}`,
298
+ type: s.multiple ? "checkbox" : "radio",
299
+ value: b(S),
300
+ checked: h(S),
301
+ disabled: a(S),
302
+ tabindex: "-1",
303
+ "aria-hidden": "true",
304
+ onInput: o
305
+ }, null, 40, qe),
306
+ ue(" " + B(y(S)), 1)
307
+ ], 8, Re)
308
+ ], 8, Ee))), 128))
334
309
  ], 2);
335
310
  };
336
311
  }
337
- }), ke = {
338
- ...re,
339
- ...ne,
340
- ...oe,
341
- ...se,
342
- ...J,
343
- ...le,
344
- ...X,
345
- modelValue: {
346
- type: [String, Object],
347
- required: !0
348
- },
349
- label: String,
350
- placeholder: String,
351
- options: {
352
- type: Array,
353
- required: !0
354
- },
355
- useObject: Boolean,
356
- labelKey: { type: String, default: "label" },
357
- valueKey: { type: String, default: "value" },
358
- iconLeft: String,
359
- iconRight: String,
360
- modifiers: [String, Array]
361
- }, $e = "ds", _e = {
312
+ }), Te = "ds", Me = {
362
313
  color: String,
363
314
  width: {
364
315
  type: [String, Number]
@@ -389,247 +340,342 @@ const Ae = {
389
340
  modifiers: {
390
341
  type: [String, Array]
391
342
  }
392
- }, W = /* @__PURE__ */ T({
393
- __name: "VvIcon",
394
- props: _e,
395
- setup(t) {
396
- const r = t, e = F(!0), { modifiers: u } = q(r), s = de($e), { bemCssClasses: o } = x("vv-icon", {
397
- modifiers: u
398
- }), c = w(() => r.provider || (s == null ? void 0 : s.provider)), m = w(() => {
399
- const i = r.name || "", n = `@${c.value}:${r.prefix}:${r.name}`;
400
- return H(i) ? i : H(n) ? n : (s == null ? void 0 : s.iconsCollections.find((v) => {
401
- const l = `@${c.value}:${v.prefix}:${i}`;
402
- if (H(l))
403
- return l;
404
- })) || i;
343
+ }, He = {
344
+ name: "VvIcon"
345
+ }, ae = /* @__PURE__ */ z({
346
+ ...He,
347
+ props: Me,
348
+ setup(r) {
349
+ const t = r, e = E(!0), { modifiers: c } = q(t), n = he(Te), { bemCssClasses: u } = U("vv-icon", {
350
+ modifiers: c
351
+ }), l = g(() => t.provider || (n == null ? void 0 : n.provider)), h = g(() => {
352
+ const a = t.name || "", o = `@${l.value}:${t.prefix}:${t.name}`;
353
+ return I(a) ? a : I(o) ? o : (n == null ? void 0 : n.iconsCollections.find((s) => {
354
+ const m = `@${l.value}:${s.prefix}:${a}`;
355
+ if (I(m))
356
+ return m;
357
+ })) || a;
405
358
  });
406
- function a(i) {
407
- let n = null;
359
+ function b(a) {
360
+ let o = null;
408
361
  if (typeof window > "u") {
409
- const { JSDOM: b } = require("jsdom");
410
- n = new b().window;
362
+ const { JSDOM: S } = require("jsdom");
363
+ o = new S().window;
411
364
  }
412
- return (n ? new n.DOMParser() : new window.DOMParser()).parseFromString(i, "text/html").querySelector("svg");
365
+ return (o ? new o.DOMParser() : new window.DOMParser()).parseFromString(a, "text/html").querySelector("svg");
413
366
  }
414
- function h(i) {
415
- const n = a(i), v = (n == null ? void 0 : n.innerHTML.trim()) || "";
416
- n && v && Se(`@${c.value}:${r.prefix}:${r.name}`, {
417
- body: v,
418
- height: n.viewBox.baseVal.height,
419
- width: n.viewBox.baseVal.width
367
+ function y(a) {
368
+ const o = b(a), s = (o == null ? void 0 : o.innerHTML.trim()) || "";
369
+ o && s && Oe(`@${l.value}:${t.prefix}:${t.name}`, {
370
+ body: s,
371
+ height: o.viewBox.baseVal.height,
372
+ width: o.viewBox.baseVal.width
420
373
  });
421
374
  }
422
- return s && (r.src ? (e.value = !1, s.fetchIcon(r.src).then((i) => {
423
- i && (h(i), e.value = !0);
424
- }).catch((i) => {
425
- throw new Error(`During fetch icon: ${i == null ? void 0 : i.message}`);
426
- })) : r.svg && h(r.svg)), (i, n) => e.value ? (S(), I(d(be), L({
375
+ return n && (t.src && !I(`@${l.value}:${t.prefix}:${t.name}`) ? (e.value = !1, n.fetchIcon(t.src).then((a) => {
376
+ a && (y(a), e.value = !0);
377
+ }).catch((a) => {
378
+ throw new Error(`During fetch icon: ${a == null ? void 0 : a.message}`);
379
+ })) : t.svg && y(t.svg)), (a, o) => e.value ? (V(), M(i(Ce), H({
427
380
  key: 0,
428
- class: d(o)
381
+ class: i(u)
429
382
  }, {
430
- ...i.$props,
431
- provider: d(c),
432
- icon: d(m)
433
- }), null, 16, ["class"])) : _("", !0);
383
+ ...a.$props,
384
+ provider: i(l),
385
+ icon: i(h)
386
+ }), null, 16, ["class"])) : C("", !0);
434
387
  }
435
- }), Be = ["for"], Ee = { class: "vv-select__wrapper" }, Ne = ["id", "value", "disabled"], De = {
388
+ }), Le = {
389
+ ...pe,
390
+ ...ve,
391
+ ...ge,
392
+ ...me,
393
+ ...re,
394
+ ...ye,
395
+ ...ne,
396
+ id: [String, Number],
397
+ name: { type: String, required: !0 },
398
+ modelValue: {
399
+ type: [String, Number, Boolean, Object, Array],
400
+ default: void 0
401
+ },
402
+ label: String,
403
+ required: Boolean,
404
+ placeholder: String,
405
+ options: {
406
+ type: Array,
407
+ required: !0
408
+ },
409
+ useObject: Boolean,
410
+ labelKey: { type: String, default: "label" },
411
+ valueKey: { type: String, default: "value" },
412
+ iconLeft: String,
413
+ iconRight: String,
414
+ modifiers: [String, Array],
415
+ tabindex: { type: [String, Number], default: 0 }
416
+ }, ze = ["update:modelValue"], Ue = ["for"], Ze = { class: "vv-select__wrapper" }, Je = ["id", "disabled", "required"], Xe = {
436
417
  key: 0,
437
- value: "",
438
- disabled: "",
439
- selected: ""
440
- }, Pe = ["disabled", "value"], Ke = /* @__PURE__ */ T({
441
- __name: "VvNativeSelect",
442
- props: ke,
443
- emits: ["update:modelValue"],
444
- setup(t, { emit: r }) {
445
- const e = t, u = te(), s = ae(e, u), {
446
- modifiers: o,
447
- disabled: c,
448
- readonly: m,
418
+ value: void 0,
419
+ disabled: ""
420
+ }, Ge = ["disabled", "value"], Qe = {
421
+ name: "VvNativeSelect"
422
+ }, We = /* @__PURE__ */ z({
423
+ ...Qe,
424
+ props: Le,
425
+ emits: ze,
426
+ setup(r, { emit: t }) {
427
+ const e = r, c = de(), { HintSlot: n, hasHint: u, hasErrors: l } = fe(e, c), {
428
+ modifiers: h,
429
+ disabled: b,
430
+ readonly: y,
449
431
  loading: a,
450
- iconLeft: h,
451
- iconRight: i,
452
- error: n,
432
+ iconLeft: o,
433
+ iconRight: s,
434
+ error: m,
453
435
  valid: v
454
- } = q(e), l = Z(), { bemCssClasses: y } = x("vv-select", {
455
- modifiers: o,
436
+ } = q(e), S = g(() => String(e.id || ee())), $ = g(() => `${S.value}-hint`), w = g(() => !te(e.modelValue)), k = g(() => e.disabled || e.readonly), N = g(() => k.value ? -1 : e.tabindex), D = g(() => {
437
+ if (e.error === !0)
438
+ return !0;
439
+ if (e.valid === !0)
440
+ return !1;
441
+ }), { bemCssClasses: P } = U("vv-select", {
442
+ modifiers: h,
456
443
  loading: a,
457
- readonly: m,
458
- iconLeft: h,
459
- iconRight: i,
444
+ readonly: y,
445
+ iconLeft: o,
446
+ iconRight: s,
460
447
  valid: v,
461
- invalid: n,
462
- dirty: w(() => V.isNotEmpty(e.modelValue))
463
- });
464
- function b(f) {
465
- return typeof f == "string" ? f : f[e.valueKey];
448
+ invalid: m,
449
+ dirty: w
450
+ }), j = g(() => ({
451
+ name: e.name,
452
+ tabindex: N.value,
453
+ "aria-invalid": D.value,
454
+ "aria-describedby": !l.value && u.value ? $.value : void 0,
455
+ "aria-errormessage": l.value ? $.value : void 0
456
+ }));
457
+ function Z(p) {
458
+ return typeof p == "string" ? p : p[e.valueKey];
466
459
  }
467
- function O(f) {
468
- return typeof f == "string" ? f : f[e.labelKey];
460
+ function J(p) {
461
+ return typeof p == "string" ? p : p[e.labelKey];
469
462
  }
470
- function $(f) {
471
- var N;
472
- const C = f.target, k = (e.useObject ? (N = e.options) == null ? void 0 : N.find(
473
- (D) => D[e.valueKey] == C.value
474
- ) : null) || C.value;
475
- r("update:modelValue", k);
463
+ function X(p) {
464
+ return typeof p == "string" || p.disabled === void 0 ? b.value : p.disabled;
476
465
  }
477
- return (f, C) => {
478
- var P;
479
- return S(), A("div", {
480
- class: z(d(y))
481
- }, [
482
- f.label ? (S(), A("label", {
483
- key: 0,
484
- for: d(l)
485
- }, E(f.label), 9, Be)) : _("", !0),
486
- B("div", Ee, [
487
- G(f.$slots, "icon-left", {}, () => [
488
- d(h) ? (S(), I(W, {
489
- key: 0,
490
- name: d(h)
491
- }, null, 8, ["name"])) : _("", !0)
492
- ]),
493
- B("select", {
494
- id: d(l),
495
- value: typeof f.modelValue == "string" ? f.modelValue : (P = f.modelValue) == null ? void 0 : P[f.valueKey],
496
- disabled: d(c) || d(m),
497
- onInput: $
498
- }, [
499
- f.placeholder ? (S(), A("option", De, E(f.placeholder), 1)) : _("", !0),
500
- (S(!0), A(U, null, Y(f.options, (k, N) => {
501
- var D;
502
- return S(), A("option", {
503
- key: N,
504
- disabled: typeof k == "object" ? (D = k.disabled) != null ? D : d(c) : d(c),
505
- value: b(k)
506
- }, E(O(k)), 9, Pe);
507
- }), 128))
508
- ], 40, Ne),
509
- G(f.$slots, "icon-right", {}, () => [
510
- d(i) ? (S(), I(W, {
511
- key: 0,
512
- name: d(i)
513
- }, null, 8, ["name"])) : _("", !0)
514
- ])
466
+ const K = g({
467
+ get: () => {
468
+ var p;
469
+ return typeof e.modelValue == "object" ? (p = e.modelValue) == null ? void 0 : p[e.valueKey] : e.modelValue;
470
+ },
471
+ set: (p) => {
472
+ var d;
473
+ const f = e.useObject ? (d = e.options) == null ? void 0 : d.find(
474
+ (A) => A[e.valueKey] === p
475
+ ) : void 0;
476
+ t("update:modelValue", f ?? p);
477
+ }
478
+ });
479
+ return (p, f) => (V(), _("div", {
480
+ class: W(i(P))
481
+ }, [
482
+ p.label ? (V(), _("label", {
483
+ key: 0,
484
+ for: i(S)
485
+ }, B(p.label), 9, Ue)) : C("", !0),
486
+ O("div", Ze, [
487
+ le(p.$slots, "icon-left", {}, () => [
488
+ i(o) ? (V(), M(ae, {
489
+ key: 0,
490
+ name: i(o)
491
+ }, null, 8, ["name"])) : C("", !0)
515
492
  ]),
516
- M(d(s), { class: "vv-select__hint" })
517
- ], 2);
518
- };
493
+ ce(O("select", H({
494
+ id: i(S),
495
+ "onUpdate:modelValue": f[0] || (f[0] = (d) => Se(K) ? K.value = d : null)
496
+ }, i(j), {
497
+ disabled: i(k),
498
+ required: p.required
499
+ }), [
500
+ p.placeholder ? (V(), _("option", Xe, B(p.placeholder), 1)) : C("", !0),
501
+ (V(!0), _(Y, null, ie(p.options, (d, A) => (V(), _("option", {
502
+ key: A,
503
+ disabled: X(d),
504
+ value: Z(d)
505
+ }, B(J(d)), 9, Ge))), 128))
506
+ ], 16, Je), [
507
+ [Ve, i(K)]
508
+ ]),
509
+ le(p.$slots, "icon-right", {}, () => [
510
+ i(s) ? (V(), M(ae, {
511
+ key: 0,
512
+ name: i(s)
513
+ }, null, 8, ["name"])) : C("", !0)
514
+ ])
515
+ ]),
516
+ G(i(n), {
517
+ id: i($),
518
+ class: "vv-select__hint"
519
+ }, null, 8, ["id"])
520
+ ], 2));
519
521
  }
520
- }), Fe = ["id"], qe = {
521
- key: 0,
522
- for: "select"
523
- }, Re = ["placeholder"], Le = /* @__PURE__ */ T({
524
- __name: "VvSelect",
525
- props: Ve,
522
+ }), Ye = {
523
+ ...pe,
524
+ ...ve,
525
+ ...ge,
526
+ ...me,
527
+ ...re,
528
+ ...ye,
529
+ ...ne,
530
+ modelValue: {
531
+ type: [String, Number, Boolean, Object, Array],
532
+ default: void 0
533
+ },
534
+ label: String,
535
+ labelNoResult: { type: String, default: "No results" },
536
+ placeholder: String,
537
+ searchable: Boolean,
538
+ searchPlaceholder: String,
539
+ debounceSearch: {
540
+ type: [Number, String],
541
+ default: 0
542
+ },
543
+ options: {
544
+ type: Array,
545
+ required: !0
546
+ },
547
+ useObject: Boolean,
548
+ multiple: Boolean,
549
+ maxValues: [Number, String],
550
+ separator: { type: String, default: ", " },
551
+ labelKey: { type: String, default: "label" },
552
+ valueKey: { type: String, default: "value" },
553
+ iconLeft: String,
554
+ iconRight: String,
555
+ native: Boolean,
556
+ tabindex: {
557
+ type: [Number, String],
558
+ default: 0
559
+ }
560
+ }, et = ["id"], tt = ["id", "for"], rt = ["tabindex"], nt = ["id", "placeholder"], lt = {
561
+ name: "VvSelect"
562
+ }, ut = /* @__PURE__ */ z({
563
+ ...lt,
564
+ props: Ye,
526
565
  emits: ["update:modelValue", "change:search"],
527
- setup(t, { emit: r }) {
528
- const e = t, u = te(), s = ae(e, u), o = F(), c = F();
529
- ve(c, { initialValue: !0 });
530
- const m = Z(), a = F(""), h = ge(
531
- a,
566
+ setup(r, { emit: t }) {
567
+ const e = r, c = de(), { HintSlot: n } = fe(e, c), u = E(), l = E();
568
+ we(l, { initialValue: !0 });
569
+ const h = ee(), b = E(""), y = ke(
570
+ b,
532
571
  Number(e.debounceSearch)
533
- ), i = F(!1), {
534
- modifiers: n,
535
- disabled: v,
536
- readonly: l,
537
- loading: y,
538
- iconLeft: b,
539
- iconRight: O,
540
- valid: $,
541
- error: f
572
+ ), a = E(!1), {
573
+ modifiers: o,
574
+ disabled: s,
575
+ readonly: m,
576
+ loading: v,
577
+ iconLeft: S,
578
+ iconRight: $,
579
+ valid: w,
580
+ error: k
542
581
  } = q(e);
543
- fe(
544
- h,
545
- () => r("change:search", h.value)
582
+ $e(
583
+ y,
584
+ () => t("change:search", y.value)
546
585
  );
547
- const { bemCssClasses: C } = x("vv-select", {
548
- modifiers: n,
549
- disabled: v,
550
- loading: y,
551
- readonly: l,
552
- iconLeft: b,
553
- iconRight: O,
554
- valid: $,
555
- invalid: f,
556
- dirty: w(() => V.isNotEmpty(e.modelValue))
557
- }), P = w(
586
+ const N = g(() => !te(e.modelValue)), D = g(() => s.value || m.value ? -1 : e.tabindex), { bemCssClasses: P } = U("vv-select", {
587
+ modifiers: o,
588
+ disabled: s,
589
+ loading: v,
590
+ readonly: m,
591
+ iconLeft: S,
592
+ iconRight: $,
593
+ valid: w,
594
+ invalid: k,
595
+ dirty: N
596
+ }), j = g(
558
597
  () => {
559
- var p;
560
- return (p = e.options) == null ? void 0 : p.every((g) => typeof g == "object");
598
+ var f;
599
+ return (f = e.options) == null ? void 0 : f.every((d) => typeof d == "object");
561
600
  }
562
- ), k = w(
563
- () => e.searchable ? N.value : e.options
564
- ), N = w(() => {
565
- var p;
566
- return (p = e.options) == null ? void 0 : p.filter((g) => typeof g == "string" ? g.toLowerCase().includes(h.value.toLowerCase().trim()) : g[e.labelKey].toLowerCase().includes(h.value.toLowerCase().trim()));
567
- }), D = w(() => {
568
- var g, j;
569
- if (e.multiple && ((g = e.modelValue) == null ? void 0 : g.length) && Array.isArray(e.modelValue))
570
- return P.value ? V.filterArray(
601
+ ), Z = g(
602
+ () => e.searchable ? J.value : e.options
603
+ ), J = g(() => {
604
+ var f;
605
+ return (f = e.options) == null ? void 0 : f.filter((d) => typeof d == "string" ? d.toLowerCase().includes(y.value.toLowerCase().trim()) : typeof d[e.labelKey] == "string" ? d[e.labelKey].toLowerCase().includes(y.value.toLowerCase().trim()) : !1);
606
+ }), X = g(() => {
607
+ var d, A;
608
+ if (e.multiple && Array.isArray(e.modelValue) && ((d = e.modelValue) != null && d.length))
609
+ return j.value ? Pe(
571
610
  e.options,
572
611
  e.modelValue,
573
612
  e.valueKey
574
- ).map((K) => K[e.labelKey]).join(e.separator) : e.modelValue.join(e.separator);
575
- const p = e.useObject ? e.modelValue : (j = e.options) == null ? void 0 : j.find(
576
- (K) => typeof K == "object" ? K[e.valueKey] == e.modelValue : K == e.modelValue
613
+ ).map((x) => x[e.labelKey]).join(e.separator) : e.modelValue.join(e.separator);
614
+ const f = e.useObject ? e.modelValue : (A = e.options) == null ? void 0 : A.find(
615
+ (x) => typeof x == "object" ? x[e.valueKey] == e.modelValue : x == e.modelValue
577
616
  );
578
- return typeof p == "object" ? p == null ? void 0 : p[e.labelKey] : p;
617
+ return typeof f == "object" ? f == null ? void 0 : f[e.labelKey] : f;
579
618
  });
580
- he(o, () => {
581
- o.value.open = !1;
619
+ je(u, () => {
620
+ u.value.open = !1;
582
621
  });
583
- function ie(p) {
584
- const g = p.target;
585
- i.value = g.open;
622
+ function K(f) {
623
+ const d = f.target;
624
+ a.value = d.open;
586
625
  }
587
- function ue(p) {
588
- o.value && !e.multiple && (o.value.open = !1), r("update:modelValue", p);
626
+ function p(f) {
627
+ u.value && !e.multiple && (u.value.open = !1), t("update:modelValue", f);
589
628
  }
590
- return (p, g) => p.native ? (S(), I(Ke, L({ key: 1 }, e, {
591
- "onUpdate:modelValue": g[4] || (g[4] = (j) => r("update:modelValue", j))
592
- }), null, 16)) : (S(), A("div", {
629
+ return (f, d) => f.native ? (V(), M(We, H({ key: 1 }, e, {
630
+ "onUpdate:modelValue": d[4] || (d[4] = (A) => t("update:modelValue", A))
631
+ }), null, 16)) : (V(), _("div", {
593
632
  key: 0,
594
- id: d(m),
595
- class: z(d(C))
633
+ id: i(h),
634
+ class: W(i(P))
596
635
  }, [
597
- p.label ? (S(), A("label", qe, E(p.label), 1)) : _("", !0),
598
- B("details", {
636
+ f.label ? (V(), _("label", {
637
+ key: 0,
638
+ id: `${i(h)}-label`,
639
+ for: f.searchable && a.value ? `${i(h)}-input` : void 0
640
+ }, B(f.label), 9, tt)) : C("", !0),
641
+ O("details", {
599
642
  ref_key: "dropdown",
600
- ref: o,
601
- role: "list",
643
+ ref: u,
602
644
  class: "vv-select__wrapper",
603
- onClick: g[2] || (g[2] = (j) => d(v) || d(l) ? j.preventDefault() : null),
604
- onKeyup: g[3] || (g[3] = Q((j) => o.value.open = !1, ["esc"])),
605
- onToggle: ie
645
+ onClick: d[2] || (d[2] = (A) => i(s) || i(m) ? A.preventDefault() : null),
646
+ onKeyup: d[3] || (d[3] = oe((A) => u.value.open = !1, ["esc"])),
647
+ onToggle: K
606
648
  }, [
607
- B("summary", {
649
+ O("summary", {
608
650
  class: "vv-select__input",
609
- "aria-haspopup": "listbox",
610
- onKeyup: g[1] || (g[1] = Q((j) => p.searchable ? j.preventDefault() : null, ["space"]))
651
+ tabindex: i(D),
652
+ onKeyup: d[1] || (d[1] = oe((A) => f.searchable ? A.preventDefault() : null, ["space"]))
611
653
  }, [
612
- p.searchable && i.value ? pe((S(), A("input", {
654
+ f.searchable && a.value ? ce((V(), _("input", {
613
655
  key: 0,
656
+ id: `${i(h)}-input`,
614
657
  ref_key: "inputSearch",
615
- ref: c,
616
- "onUpdate:modelValue": g[0] || (g[0] = (j) => a.value = j),
617
- placeholder: p.searchPlaceholder
618
- }, null, 8, Re)), [
619
- [ye, a.value]
620
- ]) : (S(), A(U, { key: 1 }, [
621
- ee(E(d(D) || p.placeholder), 1)
658
+ ref: l,
659
+ "onUpdate:modelValue": d[0] || (d[0] = (A) => b.value = A),
660
+ role: "combobox",
661
+ placeholder: f.searchPlaceholder
662
+ }, null, 8, nt)), [
663
+ [Ae, b.value]
664
+ ]) : (V(), _(Y, { key: 1 }, [
665
+ ue(B(i(X) || f.placeholder), 1)
622
666
  ], 64))
623
- ], 32),
624
- M(Ce, L({
667
+ ], 40, rt),
668
+ G(Fe, H({
669
+ id: `${i(h)}-dropdown`
670
+ }, {
625
671
  ...e,
626
- options: d(k)
627
- }, { "onUpdate:modelValue": ue }), null, 16)
672
+ options: i(Z)
673
+ }, { "onUpdate:modelValue": p }), null, 16, ["id"])
628
674
  ], 544),
629
- M(d(s), { class: "vv-select__hint" })
630
- ], 10, Fe));
675
+ G(i(n), { class: "vv-select__hint" })
676
+ ], 10, et));
631
677
  }
632
678
  });
633
679
  export {
634
- Le as default
680
+ ut as default
635
681
  };