@volverjs/ui-vue 0.0.3 → 0.0.5-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (236) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +54 -15
  3. package/auto-imports.d.ts +12 -3
  4. package/bin/icons.cjs +1 -73
  5. package/dist/Volver.d.ts +23 -11
  6. package/dist/components/VvAccordion/VvAccordion.es.js +180 -74
  7. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  8. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +4 -1
  9. package/dist/components/VvAccordion/index.d.ts +8 -3
  10. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +280 -122
  11. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  12. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +15 -12
  13. package/dist/components/VvAccordionGroup/index.d.ts +8 -0
  14. package/dist/components/VvAction/VvAction.es.js +338 -0
  15. package/dist/components/VvAction/VvAction.umd.js +1 -0
  16. package/dist/components/VvAction/VvAction.vue.d.ts +63 -0
  17. package/dist/components/VvAction/index.d.ts +24 -0
  18. package/dist/components/VvBadge/VvBadge.es.js +251 -22
  19. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  20. package/dist/components/VvBadge/VvBadge.vue.d.ts +2 -2
  21. package/dist/components/VvBadge/index.d.ts +1 -1
  22. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +280 -62
  23. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  24. package/dist/components/VvBreadcrumb/VvBreadcrumb.vue.d.ts +11 -11
  25. package/dist/components/VvBreadcrumb/index.d.ts +1 -1
  26. package/dist/components/VvButton/VvButton.es.js +720 -261
  27. package/dist/components/VvButton/VvButton.umd.js +1 -1
  28. package/dist/components/VvButton/VvButton.vue.d.ts +54 -54
  29. package/dist/components/VvButton/index.d.ts +30 -75
  30. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +296 -49
  31. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  32. package/dist/components/VvButtonGroup/VvButtonGroup.vue.d.ts +2 -2
  33. package/dist/components/VvButtonGroup/index.d.ts +1 -1
  34. package/dist/components/VvCard/VvCard.es.js +60 -28
  35. package/dist/components/VvCard/VvCard.umd.js +1 -1
  36. package/dist/components/VvCheckbox/VvCheckbox.es.js +630 -172
  37. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  38. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +4 -4
  39. package/dist/components/VvCheckbox/index.d.ts +6 -6
  40. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +736 -228
  41. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  42. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +9 -9
  43. package/dist/components/VvCheckboxGroup/index.d.ts +4 -4
  44. package/dist/components/VvCombobox/VvCombobox.es.js +1673 -768
  45. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  46. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +159 -61
  47. package/dist/components/VvCombobox/index.d.ts +54 -23
  48. package/dist/components/VvDialog/VvDialog.es.js +426 -115
  49. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  50. package/dist/components/VvDialog/VvDialog.vue.d.ts +12 -3
  51. package/dist/components/VvDialog/index.d.ts +4 -1
  52. package/dist/components/VvDropdown/VvDropdown.es.js +504 -190
  53. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  54. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +114 -42
  55. package/dist/components/VvDropdown/VvDropdownAction.vue.d.ts +61 -0
  56. package/dist/components/VvDropdown/VvDropdownOption.vue.d.ts +52 -0
  57. package/dist/components/VvDropdown/index.d.ts +35 -14
  58. package/dist/components/VvDropdownAction/VvDropdownAction.es.js +454 -0
  59. package/dist/components/VvDropdownAction/VvDropdownAction.umd.js +1 -0
  60. package/dist/components/VvDropdownItem/VvDropdownItem.es.js +48 -18
  61. package/dist/components/VvDropdownItem/VvDropdownItem.umd.js +1 -1
  62. package/dist/components/VvDropdownOption/VvDropdownOption.es.js +361 -0
  63. package/dist/components/VvDropdownOption/VvDropdownOption.umd.js +1 -0
  64. package/dist/components/VvIcon/VvIcon.es.js +116 -52
  65. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  66. package/dist/components/VvIcon/VvIcon.vue.d.ts +7 -7
  67. package/dist/components/VvIcon/index.d.ts +2 -2
  68. package/dist/components/VvInputText/VvInputPasswordAction.d.ts +2 -2
  69. package/dist/components/VvInputText/VvInputStepAction.d.ts +1 -1
  70. package/dist/components/VvInputText/VvInputText.es.js +1054 -376
  71. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  72. package/dist/components/VvInputText/VvInputText.vue.d.ts +107 -20
  73. package/dist/components/VvInputText/VvInputTextActions.d.ts +1 -1
  74. package/dist/components/VvInputText/index.d.ts +67 -3
  75. package/dist/components/VvProgress/VvProgress.es.js +254 -23
  76. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  77. package/dist/components/VvProgress/VvProgress.vue.d.ts +2 -2
  78. package/dist/components/VvProgress/index.d.ts +1 -1
  79. package/dist/components/VvRadio/VvRadio.es.js +568 -137
  80. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  81. package/dist/components/VvRadio/VvRadio.vue.d.ts +4 -4
  82. package/dist/components/VvRadio/index.d.ts +6 -6
  83. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +674 -193
  84. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  85. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +9 -9
  86. package/dist/components/VvRadioGroup/index.d.ts +4 -4
  87. package/dist/components/VvSelect/VvSelect.es.js +703 -251
  88. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  89. package/dist/components/VvSelect/VvSelect.vue.d.ts +24 -17
  90. package/dist/components/VvSelect/index.d.ts +8 -8
  91. package/dist/components/VvTextarea/VvTextarea.es.js +747 -272
  92. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  93. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +21 -14
  94. package/dist/components/VvTextarea/index.d.ts +7 -7
  95. package/dist/components/VvTooltip/VvTooltip.es.js +252 -24
  96. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -1
  97. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +7 -7
  98. package/dist/components/VvTooltip/index.d.ts +2 -2
  99. package/dist/components/index.es.js +3676 -2007
  100. package/dist/components/index.umd.js +1 -1
  101. package/dist/composables/dropdown/useInjectDropdown.d.ts +1 -1
  102. package/dist/composables/dropdown/useProvideDropdown.d.ts +3 -3
  103. package/dist/composables/group/useInjectedGroupState.d.ts +2 -2
  104. package/dist/composables/group/useProvideGroupState.d.ts +1 -1
  105. package/dist/composables/useComponentFocus.d.ts +1 -1
  106. package/dist/composables/useComponentIcon.d.ts +7 -7
  107. package/dist/composables/useDebouncedInput.d.ts +4 -1
  108. package/dist/composables/useDefaults.d.ts +2 -0
  109. package/dist/composables/useModifiers.d.ts +1 -1
  110. package/dist/composables/useOptions.d.ts +2 -2
  111. package/dist/composables/useTextCount.d.ts +3 -3
  112. package/dist/composables/useUniqueId.d.ts +1 -1
  113. package/dist/composables/useVolver.d.ts +1 -1
  114. package/dist/constants.d.ts +30 -0
  115. package/dist/directives/index.es.js +288 -0
  116. package/dist/directives/index.umd.js +1 -0
  117. package/dist/directives/v-tooltip.es.js +285 -0
  118. package/dist/directives/v-tooltip.umd.js +1 -0
  119. package/dist/icons.es.js +38 -23
  120. package/dist/icons.umd.js +1 -1
  121. package/dist/index.d.ts +0 -1
  122. package/dist/index.es.js +115 -3269
  123. package/dist/index.umd.js +1 -1
  124. package/dist/props/index.d.ts +215 -23
  125. package/dist/resolvers/unplugin.d.ts +14 -8
  126. package/dist/resolvers/unplugin.es.js +94 -33
  127. package/dist/resolvers/unplugin.umd.js +1 -1
  128. package/dist/stories/Combobox/Combobox.settings.d.ts +44 -0
  129. package/dist/stories/Dropdown/Dropdown.settings.d.ts +3 -2
  130. package/dist/stories/InputText/InputText.settings.d.ts +53 -0
  131. package/dist/stories/argTypes.d.ts +1 -1
  132. package/package.json +167 -63
  133. package/src/Volver.ts +60 -26
  134. package/src/assets/icons/detailed.json +1 -1
  135. package/src/assets/icons/normal.json +1 -1
  136. package/src/assets/icons/simple.json +1 -1
  137. package/src/components/VvAccordion/VvAccordion.vue +19 -22
  138. package/src/components/VvAccordion/index.ts +12 -4
  139. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +19 -10
  140. package/src/components/VvAccordionGroup/index.ts +8 -0
  141. package/src/components/VvAction/VvAction.vue +144 -0
  142. package/src/components/VvAction/index.ts +5 -0
  143. package/src/components/VvBadge/VvBadge.vue +2 -2
  144. package/src/components/VvBadge/index.ts +1 -1
  145. package/src/components/VvBreadcrumb/VvBreadcrumb.vue +3 -3
  146. package/src/components/VvButton/VvButton.vue +41 -124
  147. package/src/components/VvButton/index.ts +16 -88
  148. package/src/components/VvButtonGroup/VvButtonGroup.vue +4 -7
  149. package/src/components/VvButtonGroup/index.ts +1 -1
  150. package/src/components/VvCard/VvCard.vue +2 -2
  151. package/src/components/VvCheckbox/VvCheckbox.vue +3 -7
  152. package/src/components/VvCheckbox/index.ts +11 -7
  153. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +7 -10
  154. package/src/components/VvCheckboxGroup/index.ts +1 -1
  155. package/src/components/VvCombobox/VvCombobox.vue +85 -57
  156. package/src/components/VvCombobox/index.ts +12 -10
  157. package/src/components/VvDialog/VvDialog.vue +28 -11
  158. package/src/components/VvDialog/index.ts +5 -2
  159. package/src/components/VvDropdown/VvDropdown.vue +6 -5
  160. package/src/components/VvDropdown/VvDropdownAction.vue +46 -0
  161. package/src/components/VvDropdown/VvDropdownOption.vue +72 -0
  162. package/src/components/VvDropdown/index.ts +6 -11
  163. package/src/components/VvIcon/VvIcon.vue +3 -3
  164. package/src/components/VvIcon/index.ts +3 -3
  165. package/src/components/VvInputText/VvInputClearAction.ts +2 -2
  166. package/src/components/VvInputText/VvInputPasswordAction.ts +3 -4
  167. package/src/components/VvInputText/VvInputStepAction.ts +3 -2
  168. package/src/components/VvInputText/VvInputText.vue +128 -35
  169. package/src/components/VvInputText/VvInputTextActions.ts +5 -8
  170. package/src/components/VvInputText/index.ts +62 -1
  171. package/src/components/VvProgress/VvProgress.vue +2 -2
  172. package/src/components/VvProgress/index.ts +1 -1
  173. package/src/components/VvRadio/VvRadio.vue +3 -7
  174. package/src/components/VvRadio/index.ts +11 -7
  175. package/src/components/VvRadioGroup/VvRadioGroup.vue +7 -10
  176. package/src/components/VvRadioGroup/index.ts +1 -1
  177. package/src/components/VvSelect/VvSelect.vue +4 -4
  178. package/src/components/VvSelect/index.ts +3 -5
  179. package/src/components/VvTextarea/VvTextarea.vue +4 -4
  180. package/src/components/VvTextarea/index.ts +1 -1
  181. package/src/components/VvTooltip/VvTooltip.vue +2 -2
  182. package/src/components/VvTooltip/index.ts +3 -3
  183. package/src/composables/dropdown/useInjectDropdown.ts +2 -2
  184. package/src/composables/dropdown/useProvideDropdown.ts +9 -11
  185. package/src/composables/group/useInjectedGroupState.ts +1 -1
  186. package/src/composables/group/useProvideGroupState.ts +1 -1
  187. package/src/composables/useComponentIcon.ts +1 -1
  188. package/src/composables/useDebouncedInput.ts +10 -3
  189. package/src/composables/useDefaults.ts +89 -0
  190. package/src/composables/useModifiers.ts +8 -9
  191. package/src/composables/useOptions.ts +1 -1
  192. package/src/composables/useVolver.ts +2 -2
  193. package/src/constants.ts +36 -0
  194. package/src/directives/index.ts +1 -1
  195. package/src/directives/v-tooltip.ts +2 -2
  196. package/src/index.ts +0 -2
  197. package/src/props/index.ts +111 -19
  198. package/src/resolvers/unplugin.ts +96 -49
  199. package/src/stories/Accordion/Accordion.stories.mdx +8 -2
  200. package/src/stories/Accordion/Accordion.test.ts +21 -15
  201. package/src/stories/Accordion/AccordionSlots.stories.mdx +8 -8
  202. package/src/stories/AccordionGroup/AccordionGroup.stories.mdx +17 -1
  203. package/src/stories/AccordionGroup/AccordionGroup.test.ts +18 -12
  204. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.mdx +3 -2
  205. package/src/stories/Breadcrumb/Breadcrumb.stories.mdx +2 -1
  206. package/src/stories/Button/Button.stories.mdx +4 -2
  207. package/src/stories/Button/Button.test.ts +3 -1
  208. package/src/stories/Button/ButtonModifiers.stories.mdx +2 -2
  209. package/src/stories/Button/ButtonSlots.stories.mdx +8 -7
  210. package/src/stories/Button/ButtonState.stories.mdx +2 -11
  211. package/src/stories/Card/Card.stories.mdx +2 -1
  212. package/src/stories/Checkbox/Checkbox.stories.mdx +2 -1
  213. package/src/stories/CheckboxGroup/CheckboxGroup.stories.mdx +2 -1
  214. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.mdx +2 -1
  215. package/src/stories/Combobox/Combobox.settings.ts +44 -0
  216. package/src/stories/Combobox/Combobox.stories.mdx +40 -1
  217. package/src/stories/Dialog/Dialog.stories.mdx +2 -1
  218. package/src/stories/Dropdown/Dropdown.settings.ts +3 -2
  219. package/src/stories/Dropdown/Dropdown.stories.mdx +14 -12
  220. package/src/stories/Dropdown/DropdownMultilevel.stories.mdx +56 -0
  221. package/src/stories/Dropdown/DropdownSlots.stories.mdx +14 -13
  222. package/src/stories/Icon/Icon.stories.mdx +2 -1
  223. package/src/stories/Icon/IconsCollection.stories.mdx +2 -1
  224. package/src/stories/InputText/InputText.settings.ts +53 -0
  225. package/src/stories/InputText/InputText.stories.mdx +42 -1
  226. package/src/stories/InputText/InputText.test.ts +5 -2
  227. package/src/stories/Progress/Progress.stories.mdx +2 -1
  228. package/src/stories/Radio/Radio.stories.mdx +2 -1
  229. package/src/stories/RadioGroup/RadioGroup.stories.mdx +2 -1
  230. package/src/stories/RadioGroup/RadioGroupSlots.stories.mdx +2 -1
  231. package/src/stories/Select/Select.stories.mdx +2 -1
  232. package/src/stories/Textarea/Textarea.stories.mdx +2 -1
  233. package/src/stories/Tooltip/Tooltip.stories.mdx +2 -1
  234. package/src/stories/Tooltip/TooltipDirective.stories.mdx +2 -1
  235. package/src/stories/argTypes.ts +2 -2
  236. package/src/types/group.d.ts +5 -0
@@ -1 +1 @@
1
- (function(e,$){typeof exports=="object"&&typeof module<"u"?module.exports=$(require("vue"),require("@iconify/vue"),require("@floating-ui/vue")):typeof define=="function"&&define.amd?define(["vue","@iconify/vue","@floating-ui/vue"],$):(e=typeof globalThis<"u"?globalThis:e||self,e.VvCombobox=$(e.vue,e.vue$1,e.vue$2))})(this,function(e,$,w){"use strict";var le=(r=>(r.left="left",r.right="right",r.top="top",r.bottom="bottom",r))(le||{}),se=(r=>(r.topStart="top-start",r.topEnd="top-end",r.bottomStart="bottom-start",r.bottomEnd="bottom-end",r.leftStart="left-start",r.leftEnd="left-end",r.rightStart="right-start",r.rightEnd="right-end",r))(se||{}),ne=(r=>(r.before="before",r.after="after",r))(ne||{});const ie={valid:Boolean,validLabel:[String,Array]},ce={invalid:Boolean,invalidLabel:[String,Array]},de={loading:Boolean,loadingLabel:String},ue={disabled:Boolean},fe={readonly:Boolean},te={modifiers:[String,Array]},pe={hintLabel:{type:String,default:""}},me={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"},disabledKey:{type:[String,Function],default:"disabled"}},be={icon:{type:[String,Object]},iconPosition:{type:String,default:ne.before,validation:r=>Object.values(ne).includes(r)}},he={tabindex:{type:[String,Number],default:0}},ge={floating:Boolean},ye={unselectable:{type:Boolean,default:!0}},ke={id:[String,Number]},re={placement:{type:String,default:le.bottom,validator:r=>Object.values(le).includes(r)||Object.values(se).includes(r)},transitionName:{type:String},offset:{type:[Number,String,Object],default:0},shift:{type:[Boolean,Object],default:!1},flip:{type:[Boolean,Object],default:!0},size:{type:[Boolean,Object],default:()=>({padding:10})},autoPlacement:{type:[Boolean,Object],default:!1},arrow:{type:Boolean,default:!1},autoClose:{type:Boolean,default:!0},autofocusFirst:{type:Boolean,default:!0},triggerWidth:{type:Boolean}},Ve={...ke,name:{type:String,required:!0}},ve={autofocus:Boolean},Ce={autocomplete:{type:String,default:"off"}},Ne=["update:modelValue","change:search","focus","blur"],De={...Ve,...he,...ie,...ce,...pe,...de,...ue,...fe,...te,...me,...be,...ge,...ye,...re,modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},label:String,noResultsLabel:{type:String,default:"No results"},selectedLabel:{type:String,default:"Selected"},deselectLabel:{type:String,default:"Deselect"},pressToSelectLabel:{type:String,default:"Press enter to select"},pressToDeselectLabel:{type:String,default:"Press enter to remove"},placeholder:String,searchable:Boolean,searchPlaceholder:{type:String,default:"Search..."},debounceSearch:{type:[Number,String],default:0},multiple:Boolean,maxValues:[Number,String],separator:{type:String,default:", "},native:Boolean,badges:Boolean,badgeModifiers:{type:[String,Array],default:"action sm"},triggerWidth:{...re.triggerWidth,default:!0},dropdownModifiers:{type:[String,Array]},autoOpen:Boolean,autoClose:Boolean},xe={color:String,width:{type:[String,Number]},height:{type:[String,Number]},name:{type:String,required:!0},provider:{type:String},prefix:{type:String,default:"normal"},src:String,horizontalFlip:Boolean,verticalFlip:Boolean,flip:String,mode:String,inline:Boolean,rotate:[Number,String],onLoad:Function,svg:String,modifiers:{type:[String,Array]}},$e={name:"VvIcon"},Z=e.defineComponent({...$e,props:xe,setup(r){const c=r,t=ref(!0),d=useVolver(),{modifiers:g}=toRefs(c),V=useBemModifiers("vv-icon",g),s=computed(()=>c.provider||(d==null?void 0:d.provider)),S=computed(()=>{const n=c.name??"",a=`@${s.value}:${c.prefix}:${c.name}`;return $.iconExists(n)?n:$.iconExists(a)?a:(d==null?void 0:d.iconsCollections.find(i=>{const y=`@${s.value}:${i.prefix}:${n}`;if($.iconExists(y))return y}))||n});function B(n){let a=null;if(typeof window>"u"){const{JSDOM:E}=require("jsdom");a=new E().window}return(a?new a.DOMParser:new window.DOMParser).parseFromString(n,"text/html").querySelector("svg")}function m(n){const a=B(n),i=(a==null?void 0:a.innerHTML.trim())||"";a&&i&&$.addIcon(`@${s.value}:${c.prefix}:${c.name}`,{body:i,height:a.viewBox.baseVal.height,width:a.viewBox.baseVal.width})}return d&&(c.src&&!$.iconExists(`@${s.value}:${c.prefix}:${c.name}`)?(t.value=!1,d.fetchIcon(c.src).then(n=>{n&&(m(n),t.value=!0)}).catch(n=>{throw new Error(`During fetch icon: ${n==null?void 0:n.message}`)})):c.svg&&m(c.svg)),(n,a)=>e.unref(t)?(e.openBlock(),e.createBlock(e.unref($.Icon),e.mergeProps({key:0,class:e.unref(V)},{inline:n.inline,width:n.width,height:n.height,horizontalFlip:n.horizontalFlip,verticalFlip:n.verticalFlip,flip:n.flip,rotate:n.rotate,color:n.color,onLoad:n.onLoad,icon:e.unref(S)}),null,16,["class"])):e.createCommentVNode("",!0)}}),Se=["listbox","menu"],Ie={...ke,...te,...re,modelValue:{type:Boolean,default:void 0},reference:{type:Object,default:null},role:{type:String,default:Se[1],validator:r=>Se.includes(r)}},Oe=["id","tabindex","role","aria-labelledby"],Fe={name:"VvDropdown",inheritAttrs:!1},Be=e.defineComponent({...Fe,props:Ie,emits:["update:modelValue"],setup(r,{emit:c}){const t=r,{id:d}=toRefs(t),g=useUniqueId(d),V=useAttrs(),s=ref("auto"),S=ref("auto"),B=ref(null),m=ref(null),n=ref(null),a=ref(null),i=computed({get:()=>t.reference??B.value,set:o=>{B.value=o}}),y=computed(()=>{const o=[];if(t.autoPlacement?typeof t.autoPlacement=="boolean"?o.push(w.autoPlacement()):o.push(w.autoPlacement(t.autoPlacement)):t.flip&&(typeof t.flip=="boolean"?o.push(w.flip()):o.push(w.flip(t.flip))),t.shift&&(typeof t.shift=="boolean"?o.push(w.shift()):o.push(w.shift(t.shift))),t.size){const f=({availableWidth:O,availableHeight:J})=>{s.value=`${O}px`,S.value=`${J}px`};typeof t.size=="boolean"?o.push(w.size({apply:f})):o.push(w.size({...t.size,apply:f}))}return t.offset&&(o.push(w.offset(Number(t.offset))),["string","number"].includes(typeof t.offset)?o.push(w.offset(Number(t.offset))):o.push(w.offset(t.offset))),t.arrow&&o.push(w.arrow({element:n})),o}),{x:_,y:E,strategy:R,middlewareData:I,placement:T}=w.useFloating(i,m,{whileElementsMounted:w.autoUpdate,placement:t.placement,middleware:y}),F=computed(()=>({position:R.value,top:`${E.value??0}px`,left:`${_.value??0}px`,maxWidth:s.value,maxHeight:S.value,width:t.triggerWidth&&i.value?`${i.value.offsetWidth}px`:void 0})),C=computed(()=>T.value.split("-")[0]),v=computed(()=>({top:"bottom",right:"left",bottom:"top",left:"right"})[C.value]??"bottom"),x=computed(()=>{var o,f,O,J;return["bottom","top"].includes(v.value)?{right:`${((o=I.value.arrow)==null?void 0:o.x)??0}px`,[v.value]:`${-(((f=n.value)==null?void 0:f.offsetWidth)??0)/2}px`}:{top:`${((O=I.value.arrow)==null?void 0:O.y)??0}px`,[v.value]:`${-(((J=n.value)==null?void 0:J.offsetWidth)??0)/2}px`}}),A=useVModel(t,"modelValue",c),L=ref(!1),p=computed({get:()=>A.value??L.value,set:o=>{if(A.value===void 0){L.value=o;return}A.value=o}}),z=()=>{p.value=!0},N=()=>{p.value=!1},q=()=>{p.value=!p.value},Q=o=>{i.value=o};watch(p,o=>{o&&t.autofocusFirst&&nextTick(()=>{const f=P(m.value);f.length>0&&f[0].focus()})}),onClickOutside(m,()=>{t.autoClose&&(p.value=!1)},{ignore:[i]});const X=computed(()=>{var o;return((o=i.value)==null?void 0:o.getAttribute("id"))??void 0}),M=computed(()=>({"aria-controls":g.value,"aria-haspopup":!0,"aria-expanded":p.value})),{component:H,bus:Y}=useProvideDropdownTrigger({reference:i,id:g,expanded:p,aria:M});Y.on("click",q);const{role:K,modifiers:ee}=toRefs(t),{itemRole:j}=useProvideDropdownItem({role:K,expanded:p}),b=useBemModifiers("vv-dropdown",ee,computed(()=>({arrow:t.arrow}))),{focused:D}=useFocusWithin(m);function P(o){return o?[...o.querySelectorAll('a[href], button, input, textarea, select, details,[tabindex]:not([tabindex="-1"])')].filter(f=>!f.hasAttribute("disabled")&&!f.getAttribute("aria-hidden")):[]}const W=()=>{nextTick(()=>{if(D.value){const o=P(m.value);if(o.length===0||!document.activeElement)return;const f=o.indexOf(document.activeElement);f<o.length-1?o[f+1].focus():o[0].focus()}})},U=()=>{nextTick(()=>{if(D.value){const o=P(m.value);if(o.length===0||!document.activeElement)return;const f=o.indexOf(document.activeElement);f>0?o[f-1].focus():o[o.length-1].focus()}})};return onKeyStroke("Escape",o=>{p.value&&(o.preventDefault(),N())}),onKeyStroke("ArrowDown",o=>{p.value&&D.value&&(o.preventDefault(),W())}),onKeyStroke("ArrowUp",o=>{p.value&&D.value&&(o.preventDefault(),U())}),onKeyStroke([" ","Enter"],o=>{p.value&&D.value&&(o.preventDefault(),document.activeElement.click())}),(o,f)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(H),null,{default:e.withCtx(()=>[e.renderSlot(o.$slots,"default",e.normalizeProps(e.guardReactiveProps({init:Q,show:z,hide:N,toggle:q,expanded:e.unref(p),aria:e.unref(M)})))]),_:3}),e.createVNode(e.Transition,{name:o.transitionName},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"floatingEl",ref:m,style:e.normalizeStyle(e.unref(F)),class:e.normalizeClass(e.unref(b))},[t.arrow?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"arrowEl",ref:n,style:e.normalizeStyle(e.unref(x)),class:"vv-dropdown__arrow"},null,4)):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"before",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(p)}))),e.createElementVNode("ul",e.mergeProps(e.unref(V),{id:e.unref(g),ref_key:"listEl",ref:a,tabindex:e.unref(p)?void 0:-1,role:e.unref(K),"aria-labelledby":e.unref(X),class:"vv-dropdown__list"}),[e.renderSlot(o.$slots,"items",e.normalizeProps(e.guardReactiveProps({role:e.unref(j)})))],16,Oe),e.renderSlot(o.$slots,"after",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(p)})))],6),[[e.vShow,e.unref(p)]])]),_:3},8,["name"])],64))}}),Ae={name:"VvDropdownItem"},_e=e.defineComponent({...Ae,setup(r){const{role:c,expanded:t}=useInjectedDropdownItem(),d=ref(null);useProvideDropdownAction({expanded:t});const g=useElementHover(d),{focused:V}=useFocus(d),{focused:s}=useFocusWithin(d);return watch(g,S=>{S&&(V.value=!0)}),(S,B)=>(e.openBlock(),e.createElementBlock("li",e.mergeProps({role:e.unref(c)},{ref_key:"element",ref:d,class:["vv-dropdown__item",{"focus-visible":e.unref(V)||e.unref(s)}]}),[e.renderSlot(S.$slots,"default")],16))}});function oe(r){return Array.isArray(r)?r.filter(c=>isString(c)).join(" "):r}function we(r,c){const{invalid:t,valid:d,hint:g,loading:V}=c,{hintLabel:s,modelValue:S,valid:B,validLabel:m,invalid:n,invalidLabel:a,...i}=toRefs(r),y=resolveFieldData(i,"loading"),_=resolveFieldData(i,"loadingLabel"),E=computed(()=>n.value?!!(n.value&&t||a!=null&&a.value&&Array.isArray(a.value)&&a.value.length>0||a!=null&&a.value&&!isEmpty(a)):!1),R=computed(()=>!!(s&&s.value||g)),I=computed(()=>!!(m&&m.value||d)),T=computed(()=>!!(y!=null&&y.value&&V||y!=null&&y.value&&(_!=null&&_.value))),F=computed(()=>R.value||I.value||E.value||T.value);return{hasInvalid:E,hasHint:R,hasValid:I,hasLoading:T,HintSlot:{name:"HintSlot",props:{params:{type:Object,default:()=>({})}},setup(C){const v=computed(()=>{const x=toReactive({hintLabel:s,modelValue:S,valid:B,validLabel:m,invalid:n,invalidLabel:a,loading:y,loadingLabel:_,...C.params});return n!=null&&n.value?(t==null?void 0:t(x))||oe(a==null?void 0:a.value)||(s==null?void 0:s.value):B!=null&&B.value?(d==null?void 0:d(x))||oe(m==null?void 0:m.value)||(s==null?void 0:s.value):y!=null&&y.value?(V==null?void 0:V(x))||oe(_==null?void 0:_.value)||(s==null?void 0:s.value):(g==null?void 0:g(x))||oe(s==null?void 0:s.value)||(s==null?void 0:s.value)});return{isVisible:F,hasInvalid:E,hasValid:I,hintContent:v}},render(){if(this.isVisible)return h("small",{role:this.hasInvalid?"alert":this.hasValid?"status":void 0},this.hintContent)}}}}const ze={...Ve,...ve,...Ce,...he,...ie,...ce,...pe,...de,...ue,...fe,...te,...me,...be,...ge,...ye,multiple:Boolean,required:Boolean,size:[String,Number],modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},label:String,placeholder:String},Re=["update:modelValue","focus","blur"],Te=["for"],Le={class:"vv-select__wrapper"},Me={key:0,class:"vv-select__input-before"},je={class:"vv-select__inner"},We=["id"],qe=["disabled","hidden"],He=["disabled","value"],Ke={key:1,class:"vv-select__input-after"},Ue={name:"VvSelect"},Je=e.defineComponent({...Ue,props:ze,emits:Re,setup(r,{emit:c}){const t=r,d=useSlots(),g=ref(),{HintSlot:V,hasHint:s,hasInvalid:S}=we(t,d),{id:B,modifiers:m,disabled:n,readonly:a,loading:i,icon:y,iconPosition:_,invalid:E,valid:R,floating:I,multiple:T}=toRefs(t),F=useUniqueId(B),C=computed(()=>`${F.value}-hint`),{focused:v}=useComponentFocus(g,c),x=useElementVisibility(g);watch(x,b=>{b&&t.autofocus&&(v.value=!0)});const{hasIcon:A,hasIconBefore:L,hasIconAfter:p}=useComponentIcon(y,_),z=computed(()=>!isEmpty(t.modelValue)),N=computed(()=>t.disabled||t.readonly),q=computed(()=>N.value?-1:t.tabindex),Q=computed(()=>{if(t.invalid===!0)return!0;if(t.valid===!0)return!1}),X=useBemModifiers("vv-select",m,computed(()=>({valid:R.value,invalid:E.value,loading:i.value,disabled:n.value,readonly:a.value,"icon-before":L.value,"icon-after":p.value,dirty:z.value,focus:v.value,floating:I.value,multiple:T.value}))),M=computed(()=>({name:t.name,tabindex:q.value,disabled:N.value,required:t.required,size:t.size,autocomplete:t.autocomplete,multiple:t.multiple,"aria-invalid":Q.value,"aria-describedby":!S.value&&s.value?C.value:void 0,"aria-errormessage":S.value?C.value:void 0})),H=computed(()=>({valid:t.valid,invalid:t.invalid,modelValue:t.modelValue})),{getOptionLabel:Y,getOptionValue:K,getOptionDisabled:ee}=useOptions(t),j=computed({get:()=>t.modelValue,set:b=>{Array.isArray(b)&&(b=b.filter(D=>D!==void 0)),c("update:modelValue",b)}});return(b,D)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(X))},[b.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(F)},e.toDisplayString(b.label),9,Te)):e.createCommentVNode("",!0),e.createElementVNode("div",Le,[b.$slots.before?(e.openBlock(),e.createElementBlock("div",Me,[e.renderSlot(b.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(H))))])):e.createCommentVNode("",!0),e.createElementVNode("div",je,[e.unref(L)?(e.openBlock(),e.createBlock(Z,e.mergeProps({key:0,class:"vv-select__icon"},e.unref(A)),null,16)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("select",e.mergeProps({id:e.unref(F),ref_key:"select",ref:g,"onUpdate:modelValue":D[0]||(D[0]=P=>e.isRef(j)?j.value=P:null)},e.unref(M)),[b.placeholder?(e.openBlock(),e.createElementBlock("option",{key:0,value:void 0,disabled:!b.unselectable,hidden:!b.unselectable},e.toDisplayString(b.placeholder),9,qe)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(b.options,(P,W)=>(e.openBlock(),e.createElementBlock("option",{key:W,disabled:e.unref(ee)(P),value:e.unref(K)(P)},e.toDisplayString(e.unref(Y)(P)),9,He))),128))],16,We),[[e.vModelSelect,e.unref(j)]]),e.unref(p)?(e.openBlock(),e.createBlock(Z,e.mergeProps({key:1,class:"vv-select__icon vv-select__icon-after"},e.unref(A)),null,16)):e.createCommentVNode("",!0)]),b.$slots.after?(e.openBlock(),e.createElementBlock("div",Ke,[e.renderSlot(b.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(H))))])):e.createCommentVNode("",!0)]),e.createVNode(e.unref(V),{id:e.unref(C),class:"vv-select__hint"},null,8,["id"])],2))}}),Ge={...te,value:[String,Number]},Qe={name:"VvBadge"},Xe=e.defineComponent({...Qe,props:Ge,setup(r){const c=r,{modifiers:t}=toRefs(c),d=useBemModifiers("vv-badge",t);return(g,V)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(d)),role:"status"},[e.renderSlot(g.$slots,"default",{},()=>[e.createTextVNode(e.toDisplayString(g.value),1)])],2))}}),Ye=["id"],Ze=["id","for"],et=["id","aria-controls","aria-labelledby","aria-describedby","placeholder"],tt={key:0,class:"vv-select__input-before"},ot={class:"vv-select__inner"},lt=["aria-labelledby","tabindex"],nt=["aria-label","onClick"],rt={key:1,class:"vv-select__input-after"},at={class:"vv-dropdown-action__hint"},st={name:"VvCombobox",components:{VvDropdown:Be,VvDropdownItem:_e}};return e.defineComponent({...st,props:De,emits:Ne,setup(r,{emit:c}){const t=r,d=useSlots(),{HintSlot:g}=we(t,d),V=ref(null),s=ref(null),S=ref(null),{focused:B}=useComponentFocus(V,c),{focused:m}=useFocusWithin(S);watch(B,l=>{if(t.autoOpen){if(l&&!i.value){_();return}!l&&i.value&&!m.value&&E()}}),watch(m,l=>{!B.value&&!l&&i.value&&E()});const n=ref(""),a=refDebounced(n,Number(t.debounceSearch));watch(a,()=>c("change:search",a.value));const i=ref(!1),y=()=>{t.disabled||t.readonly||(i.value=!i.value)},_=()=>{t.disabled||t.readonly||i.value||(i.value=!0)},E=()=>{t.disabled||t.readonly||!i.value||(i.value=!1)};watch(i,l=>{z.value&&nextTick(()=>{if(l){s.value&&s.value.focus();return}n.value=""})});const{id:R,icon:I,iconPosition:T,modifiers:F,disabled:C,readonly:v,loading:x,valid:A,invalid:L,floating:p,searchable:z}=toRefs(t),N=useUniqueId(R),q=computed(()=>`${N.value}-hint`),Q=computed(()=>`${N.value}-dropdown`),X=computed(()=>`${N.value}-search`),M=computed(()=>`${N.value}-label`),{hasIcon:H,hasIconBefore:Y,hasIconAfter:K}=useComponentIcon(I,T),ee=computed(()=>!isEmpty(t.modelValue)),j=computed(()=>C.value||v.value?-1:t.tabindex),b=useBemModifiers("vv-select",F,computed(()=>({disabled:C.value,loading:x.value,readonly:v.value,"icon-before":Boolean(Y.value),"icon-after":Boolean(K.value),valid:A.value,invalid:L.value,dirty:ee.value,focus:B.value,floating:p.value}))),D=computed(()=>t.searchable?o.value:t.options),{getOptionLabel:P,getOptionValue:W,getOptionDisabled:U}=useOptions(t),o=computed(()=>{var l;return(l=t.options)==null?void 0:l.filter(k=>P(k).toLowerCase().includes(a.value.toLowerCase().trim()))});function f(l){return Array.isArray(t.modelValue)?contains(l,t.modelValue)||contains(W(l),t.modelValue):equals(l,t.modelValue)||equals(W(l),t.modelValue)}const O=computed(()=>{let l=[];return Array.isArray(t.modelValue)?l=t.modelValue:t.modelValue&&(l=[t.modelValue]),t.options.filter(k=>l.includes(W(k)))}),J=computed(()=>O.value.map(l=>P(l)).join(t.separator));watch(O,()=>{!t.multiple&&t.autoClose&&E()});const it=()=>{t.autoOpen?_():y()},ae=l=>{var G;if(t.disabled||t.readonly)return;const k=W(l);let u=k;if(t.multiple)if(Array.isArray(t.modelValue)){if(t.maxValues!==void 0&&t.maxValues>=0&&((G=t.modelValue)==null?void 0:G.length)>=t.maxValues&&!contains(k,t.modelValue))return;u=contains(k,t.modelValue)?removeFromList(k,t.modelValue):[...t.modelValue,k]}else u=[k];else t.unselectable&&k===t.modelValue&&(u=void 0);c("update:modelValue",u)},ct=computed(()=>({id:N.value,name:t.name,tabindex:j.value,valid:A.value,validLabel:t.validLabel,invalid:L.value,invalidLabel:t.invalidLabel,hintLabel:t.hintLabel,loading:x.value,loadingLabel:t.loadingLabel,disabled:C.value,readonly:v.value,modifiers:t.modifiers,options:D.value,labelKey:t.labelKey,valueKey:t.valueKey,icon:t.icon,iconPosition:t.iconPosition,floating:t.floating,unselectable:t.unselectable,multiple:t.multiple,label:t.label,placeholder:t.placeholder,modelValue:t.modelValue})),dt=computed(()=>({id:Q.value,reference:S.value,placement:t.placement,transitionName:t.transitionName,offset:t.offset,shift:t.shift,flip:t.flip,autoPlacement:t.autoPlacement,arrow:t.arrow,autoClose:t.autoClose,autofocusFirst:z.value?!1:t.autofocusFirst,triggerWidth:t.triggerWidth,modifiers:t.dropdownModifiers})),Pe=computed(()=>({valid:t.valid,invalid:t.invalid,modelValue:t.modelValue}));return onKeyStroke([" ","Enter"],l=>{t.autoOpen||!i.value&&B.value&&(l.preventDefault(),l.stopImmediatePropagation(),y())}),(l,k)=>l.native?(e.openBlock(),e.createBlock(Je,e.mergeProps({key:1},e.unref(ct),{"onUpdate:modelValue":k[2]||(k[2]=u=>c("update:modelValue",u))}),null,16)):(e.openBlock(),e.createElementBlock("div",{key:0,id:e.unref(N),class:e.normalizeClass(e.unref(b))},[l.label?(e.openBlock(),e.createElementBlock("label",{key:0,id:e.unref(M),for:e.unref(z)?e.unref(X):void 0},e.toDisplayString(l.label),9,Ze)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"wrapperEl",ref:S,class:"vv-select__wrapper"},[e.createVNode(Be,e.mergeProps({modelValue:e.unref(i),"onUpdate:modelValue":k[1]||(k[1]=u=>e.isRef(i)?i.value=u:null)},e.unref(dt),{role:"listbox"}),e.createSlots({default:e.withCtx(({aria:u})=>[l.$slots.before?(e.openBlock(),e.createElementBlock("div",tt,[e.renderSlot(l.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(Pe))))])):e.createCommentVNode("",!0),e.createElementVNode("div",ot,[e.unref(Y)?(e.openBlock(),e.createBlock(Z,e.mergeProps({key:0,class:"vv-select__icon"},e.unref(H)),null,16)):e.createCommentVNode("",!0),e.createElementVNode("div",e.mergeProps({ref_key:"inputEl",ref:V},u,{"aria-labelledby":e.unref(M),class:"vv-select__input",role:"combobox",tabindex:e.unref(j),onClickPassive:it}),[e.renderSlot(l.$slots,"value",e.normalizeProps(e.guardReactiveProps({selectedOptions:e.unref(O),onInput:ae})),()=>[e.unref(J)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[l.badges?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(e.unref(O),(G,Ee)=>(e.openBlock(),e.createBlock(Xe,{key:Ee,modifiers:l.badgeModifiers,class:"vv-select__badge"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(P)(G))+" ",1),l.unselectable&&!e.unref(v)&&!e.unref(C)?(e.openBlock(),e.createElementBlock("button",{key:0,"aria-label":l.deselectLabel,onClick:e.withModifiers(ft=>ae(G),["stop"])},[e.createVNode(Z,{name:"close"})],8,nt)):e.createCommentVNode("",!0)]),_:2},1032,["modifiers"]))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(J)),1)],64))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(l.placeholder),1)],64))])],16,lt),e.unref(K)?(e.openBlock(),e.createBlock(Z,e.mergeProps({key:1,class:"vv-select__icon vv-select__icon-after"},e.unref(H)),null,16)):e.createCommentVNode("",!0)]),l.$slots.after?(e.openBlock(),e.createElementBlock("div",rt,[e.renderSlot(l.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(Pe))))])):e.createCommentVNode("",!0)]),items:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(o),(u,G)=>(e.openBlock(),e.createBlock(_e,{key:G,class:e.normalizeClass(["vv-dropdown-action",{disabled:e.unref(U)(u),selected:f(u),"vv-dropdown-action--unselectable":l.unselectable&&f(u)}]),tabindex:e.unref(U)(u)?-1:0,"aria-selected":f(u),"aria-disabled":e.unref(U)(u),onClickPassive:Ee=>ae(u)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"option",e.normalizeProps(e.guardReactiveProps({option:u,selectedOptions:e.unref(O),selected:f(u),disabled:e.unref(U)(u)})),()=>[e.createTextVNode(e.toDisplayString(e.unref(P)(u))+" ",1),e.createElementVNode("span",at,[f(u)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(l.unselectable?l.pressToDeselectLabel:l.selectedLabel),1)],64)):e.unref(U)(u)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(l.pressToSelectLabel),1)],64))])])]),_:2},1032,["tabindex","class","aria-selected","aria-disabled","onClickPassive"]))),128))]),_:2},[e.unref(z)?{name:"before",fn:e.withCtx(()=>[e.unref(z)?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,id:e.unref(X),ref_key:"inputSearchEl",ref:s,"onUpdate:modelValue":k[0]||(k[0]=u=>e.isRef(n)?n.value=u:null),"aria-autocomplete":"list","aria-controls":e.unref(Q),"aria-labelledby":e.unref(M),"aria-describedby":e.unref(q),autocomplete:"off",spellcheck:"false",type:"search",class:"vv-dropdown__search",placeholder:l.searchPlaceholder},null,8,et)),[[e.vShow,e.unref(i)],[e.vModelText,e.unref(n)]]):e.createCommentVNode("",!0)]),key:"0"}:void 0]),1040,["modelValue"])],512),e.createVNode(e.unref(g),{id:e.unref(q),class:"vv-select__hint"},null,8,["id"])],10,Ye))}})});
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("@iconify/vue"),require("@floating-ui/vue"),require("nanoid"),require("@vueuse/core"),require("mitt")):"function"==typeof define&&define.amd?define(["vue","@iconify/vue","@floating-ui/vue","nanoid","@vueuse/core","mitt"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvCombobox=t(e.vue,e.vue$1,e.vue$2,e.nanoid,e.core,e.mitt)}(this,(function(e,t,l,o,n,a){"use strict";var r=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(r||{}),i=(e=>(e.topStart="top-start",e.topEnd="top-end",e.bottomStart="bottom-start",e.bottomEnd="bottom-end",e.leftStart="left-start",e.leftEnd="left-end",e.rightStart="right-start",e.rightEnd="right-end",e))(i||{}),u=(e=>(e.before="before",e.after="after",e))(u||{}),d=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(d||{}),s=(e=>(e.button="button",e.link="link",e.menuitem="menuitem",e))(s||{}),c=(e=>(e.listbox="listbox",e.menu="menu",e))(c||{}),f=(e=>(e.option="option",e.presentation="presentation",e))(f||{});const p=Symbol.for("volver"),v=Symbol.for("dropdownTrigger"),m=Symbol.for("dropdownItem"),b=Symbol.for("dropdownAction"),g={valid:Boolean,validLabel:[String,Array]},y={invalid:Boolean,invalidLabel:[String,Array]},h={loading:Boolean,loadingLabel:{type:String,default:"Loading..."}},k={disabled:Boolean},S={selected:Boolean},B=(Boolean,Boolean,{label:[String,Number]}),V={readonly:Boolean},x={modifiers:[String,Array]},w={hintLabel:{type:String,default:""}},N={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"},disabledKey:{type:[String,Function],default:"disabled"}},_={icon:{type:[String,Object]},iconPosition:{type:String,default:u.before,validation:e=>Object.values(u).includes(e)}},E={tabindex:{type:[String,Number],default:0}},C={floating:Boolean},P={unselectable:{type:Boolean,default:!0}},L={id:[String,Number]},$={placement:{type:String,default:r.bottom,validator:e=>Object.values(r).includes(e)||Object.values(i).includes(e)},transitionName:{type:String},offset:{type:[Number,String,Object],default:0},shift:{type:[Boolean,Object],default:!1},flip:{type:[Boolean,Object],default:!0},size:{type:[Boolean,Object],default:()=>({padding:10})},autoPlacement:{type:[Boolean,Object],default:!1},arrow:{type:Boolean,default:!1},autoClose:{type:Boolean,default:!0},autofocusFirst:{type:Boolean,default:!0},triggerWidth:{type:Boolean}},O={...L,name:{type:String,required:!0}},A={autofocus:Boolean},D={autocomplete:{type:String,default:"off"}};d.button;const j={...O,...E,...g,...y,...w,...h,...k,...V,...x,...N,..._,...C,...P,...$,...B,modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},noResultsLabel:{type:String,default:"No results"},noOptionsLabel:{type:String,default:"No options available"},selectedHintLabel:{type:String,default:"Selected"},deselectActionLabel:{type:String,default:"Deselect"},selectHintLabel:{type:String,default:"Press enter to select"},deselectHintLabel:{type:String,default:"Press enter to remove"},placeholder:String,searchable:Boolean,searchPlaceholder:{type:String,default:"Search..."},debounceSearch:{type:[Number,String],default:0},multiple:Boolean,maxValues:[Number,String],separator:{type:String,default:", "},native:Boolean,badges:Boolean,badgeModifiers:{type:[String,Array],default:"action sm"},triggerWidth:{...$.triggerWidth,default:!0},dropdownModifiers:{type:[String,Array]},autoOpen:Boolean,autoClose:Boolean},R={color:String,width:{type:[String,Number]},height:{type:[String,Number]},name:{type:String,required:!0},provider:{type:String},prefix:{type:String,default:"normal"},src:String,horizontalFlip:Boolean,verticalFlip:Boolean,flip:String,mode:String,inline:Boolean,rotate:[Number,String],onLoad:Function,svg:String,modifiers:{type:[String,Array]}};function z(){return e.inject(p)}function F(t,l,o){return e.computed((()=>{const n={[t]:!0},a="string"==typeof(null==l?void 0:l.value)?l.value.split(" "):null==l?void 0:l.value;return a&&Array.isArray(a)&&a.forEach((e=>{e&&(n[`${t}--${e}`]=!0)})),o&&Object.keys(o.value).forEach((l=>{n[`${t}--${l}`]=e.unref(o.value[l])})),n}))}const H=e.defineComponent({name:"VvIcon",props:R,setup(l){const o=l,n=e.ref(!0),a=z(),{modifiers:r}=e.toRefs(o),i=F("vv-icon",r),u=e.computed((()=>o.provider||(null==a?void 0:a.iconsProvider))),d=e.computed((()=>{const e=o.name??"",l=`@${u.value}:${o.prefix}:${o.name}`;return t.iconExists(e)?e:t.iconExists(l)?l:(null==a?void 0:a.iconsCollections.find((l=>{const o=`@${u.value}:${l.prefix}:${e}`;if(t.iconExists(o))return o})))||e}));function s(e){const l=function(e){let t=null;if("undefined"==typeof window){const{JSDOM:e}=require("jsdom");t=(new e).window}return(t?new t.DOMParser:new window.DOMParser).parseFromString(e,"text/html").querySelector("svg")}(e),n=(null==l?void 0:l.innerHTML.trim())||"";l&&n&&t.addIcon(`@${u.value}:${o.prefix}:${o.name}`,{body:n,height:l.viewBox.baseVal.height,width:l.viewBox.baseVal.width})}return a&&(o.src&&!t.iconExists(`@${u.value}:${o.prefix}:${o.name}`)?(n.value=!1,a.fetchIcon(o.src).then((e=>{e&&(s(e),n.value=!0)})).catch((e=>{throw new Error(`During fetch icon: ${null==e?void 0:e.message}`)}))):o.svg&&s(o.svg)),(l,o)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(t.Icon),e.mergeProps({key:0,class:e.unref(i)},{inline:l.inline,width:l.width,height:l.height,horizontalFlip:l.horizontalFlip,verticalFlip:l.verticalFlip,flip:l.flip,rotate:l.rotate,color:l.color,onLoad:l.onLoad,icon:e.unref(d)}),null,16,["class"])):e.createCommentVNode("",!0)}}),I={...L,...x,...$,modelValue:{type:Boolean,default:void 0},reference:{type:Object,default:null},role:{type:String,default:c.menu,validator:e=>Object.values(c).includes(e)}},T=t=>e.computed((()=>String((null==t?void 0:t.value)||o.nanoid())));const K=["id","tabindex","role","aria-labelledby"],q=e.defineComponent({name:"VvDropdown",inheritAttrs:!1,props:I,emits:["update:modelValue"],setup(t,{emit:o}){const r=t,{id:i}=e.toRefs(r),u=T(i),d=e.useAttrs(),s=e.ref("auto"),p=e.ref("auto"),b=e.ref(null),g=e.ref(null),y=e.ref(null),h=e.ref(null),k=e.computed({get:()=>r.reference??b.value,set:e=>{b.value=e}}),S=e.computed((()=>{const e=[];if(r.autoPlacement?"boolean"==typeof r.autoPlacement?e.push(l.autoPlacement()):e.push(l.autoPlacement(r.autoPlacement)):r.flip&&("boolean"==typeof r.flip?e.push(l.flip()):e.push(l.flip(r.flip))),r.shift&&("boolean"==typeof r.shift?e.push(l.shift()):e.push(l.shift(r.shift))),r.size){const t=({availableWidth:e,availableHeight:t})=>{s.value=`${e}px`,p.value=`${t}px`};"boolean"==typeof r.size?e.push(l.size({apply:t})):e.push(l.size({...r.size,apply:t}))}return r.offset&&(e.push(l.offset(Number(r.offset))),["string","number"].includes(typeof r.offset)?e.push(l.offset(Number(r.offset))):e.push(l.offset(r.offset))),r.arrow&&e.push(l.arrow({element:y})),e})),{x:B,y:V,strategy:x,middlewareData:w,placement:N}=l.useFloating(k,g,{whileElementsMounted:l.autoUpdate,placement:r.placement,middleware:S}),_=e.computed((()=>({position:x.value,top:`${V.value??0}px`,left:`${B.value??0}px`,maxWidth:s.value,maxHeight:p.value,width:r.triggerWidth&&k.value?`${k.value.offsetWidth}px`:void 0}))),E=e.computed((()=>N.value.split("-")[0])),C=e.computed((()=>({top:"bottom",right:"left",bottom:"top",left:"right"}[E.value]??"bottom"))),P=e.computed((()=>{var e,t,l,o;return["bottom","top"].includes(C.value)?{right:`${(null==(e=w.value.arrow)?void 0:e.x)??0}px`,[C.value]:-((null==(t=y.value)?void 0:t.offsetWidth)??0)/2+"px"}:{top:`${(null==(l=w.value.arrow)?void 0:l.y)??0}px`,[C.value]:-((null==(o=y.value)?void 0:o.offsetWidth)??0)/2+"px"}})),L=n.useVModel(r,"modelValue",o),$=e.ref(!1),O=e.computed({get:()=>L.value??$.value,set:e=>{void 0!==L.value?L.value=e:$.value=e}}),A=()=>{O.value=!0},D=()=>{O.value=!1},j=()=>{O.value=!O.value},R=e=>{k.value=e};e.watch(O,(t=>{t&&r.autofocusFirst&&e.nextTick((()=>{const e=Q(g.value);e.length>0&&e[0].focus()}))})),n.onClickOutside(g,(()=>{r.autoClose&&(O.value=!1)}),{ignore:[k]});const z=e.computed((()=>{var e,t;return(null==(t=null==(e=k.value)?void 0:e.getAttribute)?void 0:t.call(e,"id"))??void 0})),H=e.computed((()=>({"aria-controls":u.value,"aria-haspopup":!0,"aria-expanded":O.value}))),{component:I,bus:q}=function({reference:t,id:l,expanded:o,aria:n}){const r=a(),i=e.defineComponent({name:"VvDropdownTriggerProvider",provide:()=>({[v]:{reference:t,id:l,expanded:o,aria:n,bus:r}}),setup:()=>({}),render(){var t,l;return e.h(e.Fragment,{},null==(l=(t=this.$slots).default)?void 0:l.call(t))}});return{bus:r,component:i}}({reference:k,id:u,expanded:O,aria:H});q.on("click",j);const{role:W,modifiers:M}=e.toRefs(r),{itemRole:U}=function({role:t,expanded:l}){const o=e.computed((()=>t.value===c.listbox?f.option:f.presentation));return e.provide(m,{role:o,expanded:l}),{itemRole:o}}({role:W,expanded:O}),J=F("vv-dropdown",M,e.computed((()=>({arrow:r.arrow})))),{focused:G}=n.useFocusWithin(g);function Q(e){return e?[...e.querySelectorAll('a[href], button, input, textarea, select, details,[tabindex]:not([tabindex="-1"])')].filter((e=>!e.hasAttribute("disabled")&&!e.getAttribute("aria-hidden"))):[]}return n.onKeyStroke("Escape",(e=>{O.value&&(e.preventDefault(),D())})),n.onKeyStroke("ArrowDown",(t=>{O.value&&G.value&&(t.preventDefault(),e.nextTick((()=>{if(G.value){const e=Q(g.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t<e.length-1?e[t+1].focus():e[0].focus()}})))})),n.onKeyStroke("ArrowUp",(t=>{O.value&&G.value&&(t.preventDefault(),e.nextTick((()=>{if(G.value){const e=Q(g.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t>0?e[t-1].focus():e[e.length-1].focus()}})))})),n.onKeyStroke([" ","Enter"],(e=>{if(O.value&&G.value){e.preventDefault();document.activeElement.click()}})),(t,l)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(I),null,{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps({init:R,show:A,hide:D,toggle:j,expanded:e.unref(O),aria:e.unref(H)})))])),_:3}),e.createVNode(e.Transition,{name:t.transitionName},{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"floatingEl",ref:g,style:e.normalizeStyle(e.unref(_)),class:e.normalizeClass(e.unref(J))},[r.arrow?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"arrowEl",ref:y,style:e.normalizeStyle(e.unref(P)),class:"vv-dropdown__arrow"},null,4)):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(O)}))),e.createElementVNode("ul",e.mergeProps(e.unref(d),{id:e.unref(u),ref_key:"listEl",ref:h,tabindex:e.unref(O)?void 0:-1,role:e.unref(W),"aria-labelledby":e.unref(z),class:"vv-dropdown__list"}),[e.renderSlot(t.$slots,"items",e.normalizeProps(e.guardReactiveProps({role:e.unref(U)})))],16,K),e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(O)})))],6),[[e.vShow,e.unref(O)]])])),_:3},8,["name"])],64))}});const W=e.defineComponent({name:"VvDropdownItem",setup(t){const{role:l,expanded:o}=e.inject(m,{}),a=e.ref(null);!function({expanded:t}){e.provide(b,{role:s.menuitem,expanded:t})}({expanded:o});const r=n.useElementHover(a),{focused:i}=n.useFocus(a),{focused:u}=n.useFocusWithin(a);return e.watch(r,(e=>{e&&(i.value=!0)})),(t,o)=>(e.openBlock(),e.createElementBlock("li",e.mergeProps({role:e.unref(l)},{ref_key:"element",ref:a,class:["vv-dropdown__item",{"focus-visible":e.unref(i)||e.unref(u)}]}),[e.renderSlot(t.$slots,"default")],16))}}),M=["title"],U=e.defineComponent({name:"VvDropdownOption",props:{...k,...S,...P,...x,deselectHintLabel:{type:String},selectHintLabel:{type:String},selectedHintLabel:{type:String}},setup(t){const l=t,{modifiers:o}=e.toRefs(l),n=F("vv-dropdown-option",o,e.computed((()=>({disabled:l.disabled,selected:l.selected,unselectable:l.unselectable&&l.selected})))),a=e.computed((()=>l.selected?l.unselectable?l.deselectHintLabel:l.selectedHintLabel:l.disabled?void 0:l.selectHintLabel));return(t,l)=>(e.openBlock(),e.createBlock(W,{class:e.normalizeClass(e.unref(n)),tabindex:t.disabled?-1:0,"aria-selected":t.selected,"aria-disabled":t.disabled},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default"),e.createElementVNode("span",{class:"vv-dropdown-option__hint",title:e.unref(a)},[e.renderSlot(t.$slots,"hint",e.normalizeProps(e.guardReactiveProps({disabled:t.disabled,selected:t.selected,unselectable:t.unselectable})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(a)),1)]))],8,M)])),_:3},8,["class","tabindex","aria-selected","aria-disabled"]))}});function J(e,t,l){return l?Q(e,l)===Q(t,l):G(e,t)}function G(e,t){if(e===t)return!0;if(e&&t&&"object"==typeof e&&"object"==typeof t){const l=Array.isArray(e),o=Array.isArray(t);let n,a,r;if(l&&o){if(a=e.length,a!=t.length)return!1;for(n=a;0!=n--;)if(!G(e[n],t[n]))return!1;return!0}if(l!=o)return!1;const i=e instanceof Date,u=t instanceof Date;if(i!=u)return!1;if(i&&u)return e.getTime()==t.getTime();const d=e instanceof RegExp,s=t instanceof RegExp;if(d!=s)return!1;if(d&&s)return e.toString()==t.toString();const c=Object.keys(e);if(a=c.length,a!==Object.keys(t).length)return!1;for(n=a;0!=n--;)if(!Object.prototype.hasOwnProperty.call(t,c[n]))return!1;for(n=a;0!=n--;)if(r=c[n],!G(e[r],t[r]))return!1;return!0}return e!=e&&t!=t}function Q(e,t){if(e&&Object.keys(e).length&&t){if(-1===t.indexOf("."))return e[t];{const l=t.split(".");let o=e;for(let t=0,n=l.length;t<n;++t){if(null==e)return null;o=o[l[t]]}return o}}return null}function X(e,t){if(null!=e&&t&&t.length)for(const l of t)if(J(e,l))return!0;return!1}function Y(t){return null==(l=e.unref(t))||""===l||Array.isArray(l)&&0===l.length||!(l instanceof Date)&&"object"==typeof l&&0===Object.keys(l).length;var l}function Z(e,t){const l=function(e,t){let l=-1;if(t)for(let o=0;o<t.length;o++)if(J(t[o],e)){l=o;break}return l}(e,t);return l>-1?t.filter(((e,t)=>t!==l)):t}function ee(e){return Array.isArray(e)?e.filter((e=>{return"string"==typeof(t=e)||t instanceof String;var t})).join(" "):e}function te(t,l){const{invalid:o,valid:a,hint:r,loading:i}=l,{hintLabel:u,modelValue:d,valid:s,validLabel:c,invalid:f,invalidLabel:p,...v}=e.toRefs(t),m=Q(v,"loading"),b=Q(v,"loadingLabel"),g=e.computed((()=>!!f.value&&(!(!f.value||!o)||(!!((null==p?void 0:p.value)&&Array.isArray(p.value)&&p.value.length>0)||!(!(null==p?void 0:p.value)||Y(p)))))),y=e.computed((()=>!!(u&&u.value||r))),h=e.computed((()=>!!(c&&c.value||a))),k=e.computed((()=>!!((null==m?void 0:m.value)&&i||(null==m?void 0:m.value)&&(null==b?void 0:b.value)))),S=e.computed((()=>y.value||h.value||g.value||k.value));return{hasInvalid:g,hasHint:y,hasValid:h,hasLoading:k,HintSlot:{name:"HintSlot",props:{params:{type:Object,default:()=>({})}},setup(t){const l=e.computed((()=>{const e=n.toReactive({hintLabel:u,modelValue:d,valid:s,validLabel:c,invalid:f,invalidLabel:p,loading:m,loadingLabel:b,...t.params});return(null==f?void 0:f.value)?(null==o?void 0:o(e))||ee(null==p?void 0:p.value)||(null==u?void 0:u.value):(null==s?void 0:s.value)?(null==a?void 0:a(e))||ee(null==c?void 0:c.value)||(null==u?void 0:u.value):(null==m?void 0:m.value)?(null==i?void 0:i(e))||ee(null==b?void 0:b.value)||(null==u?void 0:u.value):(null==r?void 0:r(e))||ee(null==u?void 0:u.value)||(null==u?void 0:u.value)}));return{isVisible:S,hasInvalid:g,hasValid:h,hintContent:l}},render(){if(this.isVisible)return e.h("small",{role:this.hasInvalid?"alert":this.hasValid?"status":void 0},this.hintContent)}}}}const le={...O,...A,...D,...E,...g,...y,...w,...h,...k,...V,...x,...N,..._,...C,...P,...B,multiple:Boolean,required:Boolean,size:[String,Number],modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},placeholder:String};function oe(t,l){const{focused:o}=n.useFocus(t);return e.watch(o,(o=>{l(o?"focus":"blur",e.unref(t))})),{focused:o}}function ne(t,l){const o=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===u.before))),n=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===u.after))),a=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===r.left))),i=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===r.right))),d=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===r.top))),s=e.computed((()=>Boolean((null==t?void 0:t.value)&&l.value===r.bottom)));return{hasIcon:e.computed((()=>"string"==typeof(null==t?void 0:t.value)?{name:null==t?void 0:t.value}:null==t?void 0:t.value)),hasIconLeft:a,hasIconRight:i,hasIconTop:d,hasIconBottom:s,hasIconBefore:o,hasIconAfter:n}}function ae(t){const{options:l,labelKey:o,valueKey:n,disabledKey:a}=e.toRefs(t);return{options:l,getOptionLabel:e=>"object"!=typeof e&&null!==e?e:"function"==typeof o.value?o.value(e):e[o.value],getOptionValue:e=>"object"!=typeof e&&null!==e?e:"function"==typeof n.value?n.value(e):e[n.value],getOptionDisabled:e=>("object"==typeof e||null===e)&&("function"==typeof a.value?a.value(e):e[a.value])}}const re=["for"],ie={class:"vv-select__wrapper"},ue={key:0,class:"vv-select__input-before"},de={class:"vv-select__inner"},se=["id"],ce=["disabled","hidden"],fe=["disabled","value"],pe={key:1,class:"vv-select__input-after"},ve=e.defineComponent({name:"VvSelect",props:le,emits:["update:modelValue","focus","blur"],setup(t,{emit:l}){const o=t,a=e.useSlots(),r=e.ref(),{HintSlot:i,hasHint:u,hasInvalid:d}=te(o,a),{id:s,modifiers:c,disabled:f,readonly:p,loading:v,icon:m,iconPosition:b,invalid:g,valid:y,floating:h,multiple:k}=e.toRefs(o),S=T(s),B=e.computed((()=>`${S.value}-hint`)),{focused:V}=oe(r,l),x=n.useElementVisibility(r);e.watch(x,(e=>{e&&o.autofocus&&(V.value=!0)}));const{hasIcon:w,hasIconBefore:N,hasIconAfter:_}=ne(m,b),E=e.computed((()=>!Y(o.modelValue))),C=e.computed((()=>o.disabled||o.readonly)),P=e.computed((()=>C.value?-1:o.tabindex)),L=e.computed((()=>!0===o.invalid||!0!==o.valid&&void 0)),$=F("vv-select",c,e.computed((()=>({valid:y.value,invalid:g.value,loading:v.value,disabled:f.value,readonly:p.value,"icon-before":N.value,"icon-after":_.value,dirty:E.value,focus:V.value,floating:h.value,multiple:k.value})))),O=e.computed((()=>({name:o.name,tabindex:P.value,disabled:C.value,required:o.required,size:o.size,autocomplete:o.autocomplete,multiple:o.multiple,"aria-invalid":L.value,"aria-describedby":!d.value&&u.value?B.value:void 0,"aria-errormessage":d.value?B.value:void 0}))),A=e.computed((()=>({valid:o.valid,invalid:o.invalid,modelValue:o.modelValue}))),{getOptionLabel:D,getOptionValue:j,getOptionDisabled:R}=ae(o),z=e.computed({get:()=>o.modelValue,set:e=>{Array.isArray(e)&&(e=e.filter((e=>void 0!==e))),l("update:modelValue",e)}});return(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref($))},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(S)},e.toDisplayString(t.label),9,re)):e.createCommentVNode("",!0),e.createElementVNode("div",ie,[t.$slots.before?(e.openBlock(),e.createElementBlock("div",ue,[e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(A))))])):e.createCommentVNode("",!0),e.createElementVNode("div",de,[e.unref(N)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:0,class:"vv-select__icon"},e.unref(w)),null,16)):e.createCommentVNode("",!0),e.withDirectives(e.createElementVNode("select",e.mergeProps({id:e.unref(S),ref_key:"select",ref:r,"onUpdate:modelValue":l[0]||(l[0]=t=>e.isRef(z)?z.value=t:null)},e.unref(O)),[t.placeholder?(e.openBlock(),e.createElementBlock("option",{key:0,value:void 0,disabled:!t.unselectable,hidden:!t.unselectable},e.toDisplayString(t.placeholder),9,ce)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.options,((t,l)=>(e.openBlock(),e.createElementBlock("option",{key:l,disabled:e.unref(R)(t),value:e.unref(j)(t)},e.toDisplayString(e.unref(D)(t)),9,fe)))),128))],16,se),[[e.vModelSelect,e.unref(z)]]),e.unref(_)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:1,class:"vv-select__icon vv-select__icon-after"},e.unref(w)),null,16)):e.createCommentVNode("",!0)]),t.$slots.after?(e.openBlock(),e.createElementBlock("div",pe,[e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(A))))])):e.createCommentVNode("",!0)]),e.createVNode(e.unref(i),{id:e.unref(B),class:"vv-select__hint"},null,8,["id"])],2))}}),me={...x,value:[String,Number]},be=e.defineComponent({name:"VvBadge",props:me,setup(t){const l=t,{modifiers:o}=e.toRefs(l),n=F("vv-badge",o);return(t,l)=>(e.openBlock(),e.createElementBlock("span",{class:e.normalizeClass(e.unref(n)),role:"status"},[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(t.value),1)]))],2))}});const ge=["id"],ye=["id","for"],he=["id","aria-controls","aria-labelledby","aria-describedby","placeholder"],ke={key:0,class:"vv-select__input-before"},Se={class:"vv-select__inner"},Be=["aria-labelledby","tabindex"],Ve=["aria-label","onClick"],xe={key:1,class:"vv-select__input-after"},we={name:"VvCombobox",components:{VvDropdown:q,VvDropdownOption:U}};return e.defineComponent({...we,props:j,emits:["update:modelValue","change:search","focus","blur"],setup(t,{emit:l}){const o=t,a=e.useSlots(),r=function(t,l,o){const n=z(),a=e.computed((()=>{var e;if(n&&(null==(e=n.defaults.value)?void 0:e[t]))return n.defaults.value[t]}));return e.computed((()=>{if(void 0===a.value)return o;const e=a.value,t=l,n=o;return Object.keys(t).reduce(((l,o)=>{const a=n[o];if(l[o]=a,o in e){if(Array.isArray(t[o])){const n=t[o];n.length&&n[0]===a&&(l[o]=e[o])}if("function"==typeof t[o]&&(0,t[o])()===a&&(l[o]=e[o]),"object"==typeof t[o]){let n=t[o].default;"function"==typeof n&&(n=n()),"object"==typeof n?JSON.stringify(n)===JSON.stringify(a)&&(l[o]=e[o]):n===a&&(l[o]=e[o])}}return l}),{})}))}("VvCombobox",j,o),{HintSlot:i}=te(o,a),u=e.ref(null),d=e.ref(null),s=e.ref(null),{focused:f}=oe(u,l),{focused:p}=n.useFocusWithin(s);e.watch(f,(e=>{o.autoOpen&&(!e||b.value?e||!b.value||p.value||h():y())})),e.watch(p,(e=>{f.value||e||!b.value||h()}));const v=e.ref(""),m=n.refDebounced(v,Number(o.debounceSearch));e.watch(m,(()=>l("change:search",m.value)));const b=e.ref(!1),g=()=>{o.disabled||o.readonly||(b.value=!b.value)},y=()=>{o.disabled||o.readonly||b.value||(b.value=!0)},h=()=>{o.disabled||o.readonly||!b.value||(b.value=!1)};e.watch(b,(t=>{P.value&&e.nextTick((()=>{t?d.value&&d.value.focus():v.value=""}))}));const{id:k,icon:S,iconPosition:B,modifiers:V,disabled:x,readonly:w,loading:N,valid:_,invalid:E,floating:C,searchable:P}=e.toRefs(o),L=T(k),$=e.computed((()=>`${L.value}-hint`)),O=e.computed((()=>`${L.value}-dropdown`)),A=e.computed((()=>`${L.value}-search`)),D=e.computed((()=>`${L.value}-label`)),{hasIcon:R,hasIconBefore:I,hasIconAfter:K}=ne(S,B),W=e.computed((()=>!Y(o.modelValue))),M=e.computed((()=>x.value||w.value?-1:o.tabindex)),G=F("vv-select",V,e.computed((()=>({disabled:x.value,loading:N.value,readonly:w.value,"icon-before":Boolean(I.value),"icon-after":Boolean(K.value),valid:_.value,invalid:E.value,dirty:W.value,focus:f.value,floating:C.value})))),Q=e.computed((()=>o.searchable?ie.value:o.options)),{getOptionLabel:ee,getOptionValue:le,getOptionDisabled:re}=ae(o),ie=e.computed((()=>{var e;return null==(e=o.options)?void 0:e.filter((e=>ee(e).toLowerCase().includes(m.value.toLowerCase().trim())))}));function ue(e){return Array.isArray(o.modelValue)?X(e,o.modelValue)||X(le(e),o.modelValue):J(e,o.modelValue)||J(le(e),o.modelValue)}const de=e.computed((()=>{let e=[];return Array.isArray(o.modelValue)?e=o.modelValue:o.modelValue&&(e=[o.modelValue]),o.options.filter((t=>e.includes(le(t))))})),se=e.computed((()=>de.value.map((e=>ee(e))).join(o.separator)));e.watch(de,(()=>{!o.multiple&&o.autoClose&&h()}));const ce=()=>{o.autoOpen?y():g()},fe=e=>{var t;if(o.disabled||o.readonly)return;const n=le(e);let a=n;if(o.multiple)if(Array.isArray(o.modelValue)){if(void 0!==o.maxValues&&o.maxValues>=0&&(null==(t=o.modelValue)?void 0:t.length)>=o.maxValues&&!X(n,o.modelValue))return;a=X(n,o.modelValue)?Z(n,o.modelValue):[...o.modelValue,n]}else a=[n];else o.autoClose&&h(),o.unselectable&&n===o.modelValue&&(a=void 0);l("update:modelValue",a)},pe=e.computed((()=>({id:L.value,name:o.name,tabindex:M.value,valid:_.value,validLabel:r.value.validLabel,invalid:E.value,invalidLabel:r.value.invalidLabel,hintLabel:r.value.hintLabel,loading:N.value,loadingLabel:r.value.loadingLabel,disabled:x.value,readonly:w.value,modifiers:o.modifiers,options:Q.value,labelKey:o.labelKey,valueKey:o.valueKey,icon:o.icon,iconPosition:o.iconPosition,floating:o.floating,unselectable:o.unselectable,multiple:o.multiple,label:o.label,placeholder:o.placeholder,modelValue:o.modelValue}))),me=e.computed((()=>({id:O.value,reference:s.value,placement:o.placement,transitionName:o.transitionName,offset:o.offset,shift:o.shift,flip:o.flip,autoPlacement:o.autoPlacement,arrow:o.arrow,autoClose:o.autoClose,autofocusFirst:!P.value&&o.autofocusFirst,triggerWidth:o.triggerWidth,modifiers:o.dropdownModifiers}))),we=e.computed((()=>({valid:o.valid,invalid:o.invalid,modelValue:o.modelValue})));return n.onKeyStroke([" ","Enter"],(e=>{o.autoOpen||!b.value&&f.value&&(e.preventDefault(),e.stopImmediatePropagation(),g())})),(t,o)=>t.native?(e.openBlock(),e.createBlock(ve,e.mergeProps({key:1},e.unref(pe),{"onUpdate:modelValue":o[2]||(o[2]=e=>l("update:modelValue",e))}),null,16)):(e.openBlock(),e.createElementBlock("div",{key:0,id:e.unref(L),class:e.normalizeClass(e.unref(G))},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,id:e.unref(D),for:e.unref(P)?e.unref(A):void 0},e.toDisplayString(t.label),9,ye)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"wrapperEl",ref:s,class:"vv-select__wrapper"},[e.createVNode(q,e.mergeProps({modelValue:e.unref(b),"onUpdate:modelValue":o[1]||(o[1]=t=>e.isRef(b)?b.value=t:null)},e.unref(me),{role:e.unref(c).listbox}),e.createSlots({default:e.withCtx((({aria:l})=>[t.$slots.before?(e.openBlock(),e.createElementBlock("div",ke,[e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps(e.unref(we))))])):e.createCommentVNode("",!0),e.createElementVNode("div",Se,[e.unref(I)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:0,class:"vv-select__icon"},e.unref(R)),null,16)):e.createCommentVNode("",!0),e.createElementVNode("div",e.mergeProps({ref_key:"inputEl",ref:u},l,{"aria-labelledby":e.unref(D),class:"vv-select__input",role:"combobox",tabindex:e.unref(M),onClickPassive:ce}),[e.renderSlot(t.$slots,"value",e.normalizeProps(e.guardReactiveProps({selectedOptions:e.unref(de),onInput:fe})),(()=>[e.unref(se)?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[t.badges?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:1},e.renderList(e.unref(de),((l,o)=>(e.openBlock(),e.createBlock(be,{key:o,modifiers:t.badgeModifiers,class:"vv-select__badge"},{default:e.withCtx((()=>[e.createTextVNode(e.toDisplayString(e.unref(ee)(l))+" ",1),!t.unselectable||e.unref(w)||e.unref(x)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,"aria-label":e.unref(r).deselectActionLabel,onClick:e.withModifiers((e=>fe(l)),["stop"])},[e.createVNode(H,{name:"close"})],8,Ve))])),_:2},1032,["modifiers"])))),128)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(se)),1)],64))],64)):(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createTextVNode(e.toDisplayString(t.placeholder),1)],64))]))],16,Be),e.unref(K)?(e.openBlock(),e.createBlock(H,e.mergeProps({key:1,class:"vv-select__icon vv-select__icon-after"},e.unref(R)),null,16)):e.createCommentVNode("",!0)]),t.$slots.after?(e.openBlock(),e.createElementBlock("div",xe,[e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps(e.unref(we))))])):e.createCommentVNode("",!0)])),items:e.withCtx((()=>[e.unref(ie).length?(e.openBlock(!0),e.createElementBlock(e.Fragment,{key:0},e.renderList(e.unref(ie),((l,o)=>(e.openBlock(),e.createBlock(U,e.mergeProps({disabled:e.unref(re)(l),selected:ue(l),unselectable:t.unselectable,deselectHintLabel:e.unref(r).deselectHintLabel,selectHintLabel:e.unref(r).selectHintLabel,selectedHintLabel:e.unref(r).selectedHintLabel},{key:o,class:"vv-dropdown-option",onClickPassive:e=>fe(l)}),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"option",e.normalizeProps(e.guardReactiveProps({option:l,selectedOptions:e.unref(de),selected:ue(l),disabled:e.unref(re)(l)})),(()=>[e.createTextVNode(e.toDisplayString(e.unref(ee)(l)),1)]))])),_:2},1040,["onClickPassive"])))),128)):t.options.length?(e.openBlock(),e.createBlock(U,{key:2,modifiers:"inert"},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"no-results",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(r).noResultsLabel),1)]))])),_:3})):(e.openBlock(),e.createBlock(U,{key:1,modifiers:"inert"},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"no-options",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(r).noOptionsLabel),1)]))])),_:3}))])),_:2},[e.unref(P)||t.$slots["dropdown::before"]?{name:"before",fn:e.withCtx((()=>[e.renderSlot(t.$slots,"dropdown::before"),e.unref(P)?e.withDirectives((e.openBlock(),e.createElementBlock("input",{key:0,id:e.unref(A),ref_key:"inputSearchEl",ref:d,"onUpdate:modelValue":o[0]||(o[0]=t=>e.isRef(v)?v.value=t:null),"aria-autocomplete":"list","aria-controls":e.unref(O),"aria-labelledby":e.unref(D),"aria-describedby":e.unref($),autocomplete:"off",spellcheck:"false",type:"search",class:"vv-dropdown__search",placeholder:e.unref(r).searchPlaceholder},null,8,he)),[[e.vShow,e.unref(b)],[e.vModelText,e.unref(v)]]):e.createCommentVNode("",!0)])),key:"0"}:void 0,t.$slots["dropdown::after"]?{name:"after",fn:e.withCtx((()=>[e.renderSlot(t.$slots,"dropdown::after")])),key:"1"}:void 0]),1040,["modelValue","role"])],512),e.createVNode(e.unref(i),{id:e.unref($),class:"vv-select__hint"},null,8,["id"])],10,ge))}})}));
@@ -1,27 +1,30 @@
1
- import type { Option } from '@/types/generic';
1
+ import type { Option } from '../../types/generic';
2
2
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
3
3
  modelValue: {
4
4
  type: (StringConstructor | BooleanConstructor | ArrayConstructor | ObjectConstructor | NumberConstructor)[];
5
5
  default: undefined;
6
6
  };
7
- label: StringConstructor;
8
7
  noResultsLabel: {
9
8
  type: StringConstructor;
10
9
  default: string;
11
10
  };
12
- selectedLabel: {
11
+ noOptionsLabel: {
13
12
  type: StringConstructor;
14
13
  default: string;
15
14
  };
16
- deselectLabel: {
15
+ selectedHintLabel: {
17
16
  type: StringConstructor;
18
17
  default: string;
19
18
  };
20
- pressToSelectLabel: {
19
+ deselectActionLabel: {
21
20
  type: StringConstructor;
22
21
  default: string;
23
22
  };
24
- pressToDeselectLabel: {
23
+ selectHintLabel: {
24
+ type: StringConstructor;
25
+ default: string;
26
+ };
27
+ deselectHintLabel: {
25
28
  type: StringConstructor;
26
29
  default: string;
27
30
  };
@@ -44,7 +47,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
44
47
  native: BooleanConstructor;
45
48
  badges: BooleanConstructor;
46
49
  badgeModifiers: {
47
- type: import("vue").PropType<string | string[]>;
50
+ type: globalThis.PropType<string | string[]>;
48
51
  default: string;
49
52
  };
50
53
  triggerWidth: {
@@ -52,43 +55,67 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
52
55
  type: BooleanConstructor;
53
56
  };
54
57
  dropdownModifiers: {
55
- type: import("vue").PropType<string | string[]>;
58
+ type: globalThis.PropType<string | string[]>;
56
59
  };
57
60
  autoOpen: BooleanConstructor;
58
61
  autoClose: BooleanConstructor;
62
+ label: (StringConstructor | NumberConstructor)[];
59
63
  placement: {
60
- type: import("vue").PropType<import("../../constants.js").Side | import("../../constants.js").Placement>;
61
- default: import("../../constants.js").Side;
64
+ type: globalThis.PropType<"left" | "right" | "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end" | "right-start" | "right-end">;
65
+ default: import("../../constants").Side;
62
66
  validator: (value: never) => boolean;
63
67
  };
64
68
  transitionName: {
65
69
  type: StringConstructor;
66
70
  };
67
71
  offset: {
68
- type: import("vue").PropType<string | import("@floating-ui/core").OffsetOptions | undefined>;
72
+ type: globalThis.PropType<string | import("@floating-ui/core").OffsetOptions | undefined>; /**
73
+ * Compute the label to show to the user
74
+ * Check if is multiple mode, object mode or "string" mode
75
+ */
69
76
  default: number;
70
77
  };
71
78
  shift: {
72
- type: import("vue").PropType<boolean | Partial<import("@floating-ui/core").ShiftOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
79
+ type: globalThis.PropType<boolean | Partial<import("@floating-ui/core").ShiftOptions & {
80
+ rootBoundary: import("@floating-ui/core").RootBoundary;
81
+ elementContext: import("@floating-ui/core").ElementContext;
82
+ altBoundary: boolean;
83
+ padding: import("@floating-ui/core").Padding;
73
84
  boundary: import("@floating-ui/dom").Boundary;
74
85
  }> | undefined>;
75
86
  default: boolean;
76
87
  };
77
88
  flip: {
78
- type: import("vue").PropType<boolean | Partial<import("@floating-ui/core").FlipOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
89
+ type: globalThis.PropType<boolean | Partial<import("@floating-ui/core").FlipOptions & {
90
+ rootBoundary: import("@floating-ui/core").RootBoundary;
91
+ elementContext: import("@floating-ui/core").ElementContext;
92
+ altBoundary: boolean;
93
+ padding: import("@floating-ui/core").Padding;
79
94
  boundary: import("@floating-ui/dom").Boundary;
80
95
  }> | undefined>;
81
96
  default: boolean;
82
97
  };
83
98
  size: {
84
- type: import("vue").PropType<boolean | Partial<Omit<import("@floating-ui/core").SizeOptions, "apply"> & {
85
- apply(args: Omit<import("@floating-ui/core").MiddlewareArguments, "elements"> & {
99
+ type: globalThis.PropType<boolean | Partial<{
100
+ apply: (args: {
101
+ x: number;
102
+ y: number;
103
+ placement: import("@floating-ui/core").Placement;
104
+ initialPlacement: import("@floating-ui/core").Placement;
105
+ strategy: import("@floating-ui/core").Strategy;
106
+ middlewareData: import("@floating-ui/core").MiddlewareData;
107
+ rects: import("@floating-ui/core").ElementRects;
108
+ platform: import("@floating-ui/core").Platform;
86
109
  elements: import("@floating-ui/dom").Elements;
87
110
  } & {
88
111
  availableWidth: number;
89
112
  availableHeight: number;
90
- }): void | Promise<void>;
91
- } & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
113
+ }) => void | Promise<void>;
114
+ } & {
115
+ rootBoundary: import("@floating-ui/core").RootBoundary;
116
+ elementContext: import("@floating-ui/core").ElementContext;
117
+ altBoundary: boolean;
118
+ padding: import("@floating-ui/core").Padding;
92
119
  boundary: import("@floating-ui/dom").Boundary;
93
120
  }> | undefined>;
94
121
  default: () => {
@@ -96,7 +123,11 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
96
123
  };
97
124
  };
98
125
  autoPlacement: {
99
- type: import("vue").PropType<boolean | Partial<import("@floating-ui/core").AutoPlacementOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
126
+ type: globalThis.PropType<boolean | Partial<import("@floating-ui/core").AutoPlacementOptions & {
127
+ rootBoundary: import("@floating-ui/core").RootBoundary;
128
+ elementContext: import("@floating-ui/core").ElementContext;
129
+ altBoundary: boolean;
130
+ padding: import("@floating-ui/core").Padding;
100
131
  boundary: import("@floating-ui/dom").Boundary;
101
132
  }> | undefined>;
102
133
  default: boolean;
@@ -118,12 +149,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
118
149
  type: (StringConstructor | ObjectConstructor)[];
119
150
  };
120
151
  iconPosition: {
121
- type: import("vue").PropType<import("../../constants.js").Position>;
122
- default: import("../../constants.js").Position;
123
- validation: (value: import("../../constants.js").Position) => boolean;
152
+ type: globalThis.PropType<"before" | "after">;
153
+ default: import("../../constants").Position;
154
+ validation: (value: import("../../constants").Position) => boolean;
124
155
  };
125
156
  options: {
126
- type: import("vue").PropType<(string | Option)[]>;
157
+ type: globalThis.PropType<(string | Option)[]>;
127
158
  default: () => never[];
128
159
  };
129
160
  labelKey: {
@@ -138,11 +169,14 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
138
169
  type: (StringConstructor | FunctionConstructor)[];
139
170
  default: string;
140
171
  };
141
- modifiers: import("vue").PropType<string | string[]>;
172
+ modifiers: globalThis.PropType<string | string[]>;
142
173
  readonly: BooleanConstructor;
143
174
  disabled: BooleanConstructor;
144
175
  loading: BooleanConstructor;
145
- loadingLabel: StringConstructor;
176
+ loadingLabel: {
177
+ type: StringConstructor;
178
+ default: string;
179
+ };
146
180
  hintLabel: {
147
181
  type: StringConstructor;
148
182
  default: string;
@@ -165,24 +199,27 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
165
199
  type: (StringConstructor | BooleanConstructor | ArrayConstructor | ObjectConstructor | NumberConstructor)[];
166
200
  default: undefined;
167
201
  };
168
- label: StringConstructor;
169
202
  noResultsLabel: {
170
203
  type: StringConstructor;
171
204
  default: string;
172
205
  };
173
- selectedLabel: {
206
+ noOptionsLabel: {
207
+ type: StringConstructor;
208
+ default: string;
209
+ };
210
+ selectedHintLabel: {
174
211
  type: StringConstructor;
175
212
  default: string;
176
213
  };
177
- deselectLabel: {
214
+ deselectActionLabel: {
178
215
  type: StringConstructor;
179
216
  default: string;
180
217
  };
181
- pressToSelectLabel: {
218
+ selectHintLabel: {
182
219
  type: StringConstructor;
183
220
  default: string;
184
221
  };
185
- pressToDeselectLabel: {
222
+ deselectHintLabel: {
186
223
  type: StringConstructor;
187
224
  default: string;
188
225
  };
@@ -205,7 +242,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
205
242
  native: BooleanConstructor;
206
243
  badges: BooleanConstructor;
207
244
  badgeModifiers: {
208
- type: import("vue").PropType<string | string[]>;
245
+ type: globalThis.PropType<string | string[]>;
209
246
  default: string;
210
247
  };
211
248
  triggerWidth: {
@@ -213,43 +250,67 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
213
250
  type: BooleanConstructor;
214
251
  };
215
252
  dropdownModifiers: {
216
- type: import("vue").PropType<string | string[]>;
253
+ type: globalThis.PropType<string | string[]>;
217
254
  };
218
255
  autoOpen: BooleanConstructor;
219
256
  autoClose: BooleanConstructor;
257
+ label: (StringConstructor | NumberConstructor)[];
220
258
  placement: {
221
- type: import("vue").PropType<import("../../constants.js").Side | import("../../constants.js").Placement>;
222
- default: import("../../constants.js").Side;
259
+ type: globalThis.PropType<"left" | "right" | "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end" | "right-start" | "right-end">;
260
+ default: import("../../constants").Side;
223
261
  validator: (value: never) => boolean;
224
262
  };
225
263
  transitionName: {
226
264
  type: StringConstructor;
227
265
  };
228
266
  offset: {
229
- type: import("vue").PropType<string | import("@floating-ui/core").OffsetOptions | undefined>;
267
+ type: globalThis.PropType<string | import("@floating-ui/core").OffsetOptions | undefined>; /**
268
+ * Compute the label to show to the user
269
+ * Check if is multiple mode, object mode or "string" mode
270
+ */
230
271
  default: number;
231
272
  };
232
273
  shift: {
233
- type: import("vue").PropType<boolean | Partial<import("@floating-ui/core").ShiftOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
274
+ type: globalThis.PropType<boolean | Partial<import("@floating-ui/core").ShiftOptions & {
275
+ rootBoundary: import("@floating-ui/core").RootBoundary;
276
+ elementContext: import("@floating-ui/core").ElementContext;
277
+ altBoundary: boolean;
278
+ padding: import("@floating-ui/core").Padding;
234
279
  boundary: import("@floating-ui/dom").Boundary;
235
280
  }> | undefined>;
236
281
  default: boolean;
237
282
  };
238
283
  flip: {
239
- type: import("vue").PropType<boolean | Partial<import("@floating-ui/core").FlipOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
284
+ type: globalThis.PropType<boolean | Partial<import("@floating-ui/core").FlipOptions & {
285
+ rootBoundary: import("@floating-ui/core").RootBoundary;
286
+ elementContext: import("@floating-ui/core").ElementContext;
287
+ altBoundary: boolean;
288
+ padding: import("@floating-ui/core").Padding;
240
289
  boundary: import("@floating-ui/dom").Boundary;
241
290
  }> | undefined>;
242
291
  default: boolean;
243
292
  };
244
293
  size: {
245
- type: import("vue").PropType<boolean | Partial<Omit<import("@floating-ui/core").SizeOptions, "apply"> & {
246
- apply(args: Omit<import("@floating-ui/core").MiddlewareArguments, "elements"> & {
294
+ type: globalThis.PropType<boolean | Partial<{
295
+ apply: (args: {
296
+ x: number;
297
+ y: number;
298
+ placement: import("@floating-ui/core").Placement;
299
+ initialPlacement: import("@floating-ui/core").Placement;
300
+ strategy: import("@floating-ui/core").Strategy;
301
+ middlewareData: import("@floating-ui/core").MiddlewareData;
302
+ rects: import("@floating-ui/core").ElementRects;
303
+ platform: import("@floating-ui/core").Platform;
247
304
  elements: import("@floating-ui/dom").Elements;
248
305
  } & {
249
306
  availableWidth: number;
250
307
  availableHeight: number;
251
- }): void | Promise<void>;
252
- } & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
308
+ }) => void | Promise<void>;
309
+ } & {
310
+ rootBoundary: import("@floating-ui/core").RootBoundary;
311
+ elementContext: import("@floating-ui/core").ElementContext;
312
+ altBoundary: boolean;
313
+ padding: import("@floating-ui/core").Padding;
253
314
  boundary: import("@floating-ui/dom").Boundary;
254
315
  }> | undefined>;
255
316
  default: () => {
@@ -257,7 +318,11 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
257
318
  };
258
319
  };
259
320
  autoPlacement: {
260
- type: import("vue").PropType<boolean | Partial<import("@floating-ui/core").AutoPlacementOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
321
+ type: globalThis.PropType<boolean | Partial<import("@floating-ui/core").AutoPlacementOptions & {
322
+ rootBoundary: import("@floating-ui/core").RootBoundary;
323
+ elementContext: import("@floating-ui/core").ElementContext;
324
+ altBoundary: boolean;
325
+ padding: import("@floating-ui/core").Padding;
261
326
  boundary: import("@floating-ui/dom").Boundary;
262
327
  }> | undefined>;
263
328
  default: boolean;
@@ -279,12 +344,12 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
279
344
  type: (StringConstructor | ObjectConstructor)[];
280
345
  };
281
346
  iconPosition: {
282
- type: import("vue").PropType<import("../../constants.js").Position>;
283
- default: import("../../constants.js").Position;
284
- validation: (value: import("../../constants.js").Position) => boolean;
347
+ type: globalThis.PropType<"before" | "after">;
348
+ default: import("../../constants").Position;
349
+ validation: (value: import("../../constants").Position) => boolean;
285
350
  };
286
351
  options: {
287
- type: import("vue").PropType<(string | Option)[]>;
352
+ type: globalThis.PropType<(string | Option)[]>;
288
353
  default: () => never[];
289
354
  };
290
355
  labelKey: {
@@ -299,11 +364,14 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
299
364
  type: (StringConstructor | FunctionConstructor)[];
300
365
  default: string;
301
366
  };
302
- modifiers: import("vue").PropType<string | string[]>;
367
+ modifiers: globalThis.PropType<string | string[]>;
303
368
  readonly: BooleanConstructor;
304
369
  disabled: BooleanConstructor;
305
370
  loading: BooleanConstructor;
306
- loadingLabel: StringConstructor;
371
+ loadingLabel: {
372
+ type: StringConstructor;
373
+ default: string;
374
+ };
307
375
  hintLabel: {
308
376
  type: StringConstructor;
309
377
  default: string;
@@ -326,15 +394,25 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
326
394
  }, {
327
395
  modelValue: string | number | boolean | unknown[] | Record<string, any>;
328
396
  disabled: boolean;
329
- shift: boolean | Partial<import("@floating-ui/core").ShiftOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
397
+ shift: boolean | Partial<import("@floating-ui/core").ShiftOptions & {
398
+ rootBoundary: import("@floating-ui/core").RootBoundary;
399
+ elementContext: import("@floating-ui/core").ElementContext;
400
+ altBoundary: boolean;
401
+ padding: import("@floating-ui/core").Padding;
330
402
  boundary: import("@floating-ui/dom").Boundary;
331
403
  }> | undefined;
332
404
  options: (string | Option)[];
333
- flip: boolean | Partial<import("@floating-ui/core").FlipOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
405
+ floating: boolean;
406
+ flip: boolean | Partial<import("@floating-ui/core").FlipOptions & {
407
+ rootBoundary: import("@floating-ui/core").RootBoundary;
408
+ elementContext: import("@floating-ui/core").ElementContext;
409
+ altBoundary: boolean;
410
+ padding: import("@floating-ui/core").Padding;
334
411
  boundary: import("@floating-ui/dom").Boundary;
335
412
  }> | undefined;
336
- iconPosition: import("../../constants.js").Position;
413
+ iconPosition: "before" | "after";
337
414
  loading: boolean;
415
+ loadingLabel: string;
338
416
  unselectable: boolean;
339
417
  multiple: boolean;
340
418
  readonly: boolean;
@@ -345,31 +423,47 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
345
423
  labelKey: string | Function;
346
424
  valueKey: string | Function;
347
425
  disabledKey: string | Function;
348
- placement: import("../../constants.js").Side | import("../../constants.js").Placement;
426
+ placement: "left" | "right" | "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end" | "right-start" | "right-end";
349
427
  offset: string | import("@floating-ui/core").OffsetOptions | undefined;
350
- size: boolean | Partial<Omit<import("@floating-ui/core").SizeOptions, "apply"> & {
351
- apply(args: Omit<import("@floating-ui/core").MiddlewareArguments, "elements"> & {
428
+ size: boolean | Partial<{
429
+ apply: (args: {
430
+ x: number;
431
+ y: number;
432
+ placement: import("@floating-ui/core").Placement;
433
+ initialPlacement: import("@floating-ui/core").Placement;
434
+ strategy: import("@floating-ui/core").Strategy;
435
+ middlewareData: import("@floating-ui/core").MiddlewareData;
436
+ rects: import("@floating-ui/core").ElementRects;
437
+ platform: import("@floating-ui/core").Platform;
352
438
  elements: import("@floating-ui/dom").Elements;
353
439
  } & {
354
440
  availableWidth: number;
355
441
  availableHeight: number;
356
- }): void | Promise<void>;
357
- } & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
442
+ }) => void | Promise<void>;
443
+ } & {
444
+ rootBoundary: import("@floating-ui/core").RootBoundary;
445
+ elementContext: import("@floating-ui/core").ElementContext;
446
+ altBoundary: boolean;
447
+ padding: import("@floating-ui/core").Padding;
358
448
  boundary: import("@floating-ui/dom").Boundary;
359
449
  }> | undefined;
360
- autoPlacement: boolean | Partial<import("@floating-ui/core").AutoPlacementOptions & Omit<import("@floating-ui/core").DetectOverflowOptions, "boundary"> & {
450
+ autoPlacement: boolean | Partial<import("@floating-ui/core").AutoPlacementOptions & {
451
+ rootBoundary: import("@floating-ui/core").RootBoundary;
452
+ elementContext: import("@floating-ui/core").ElementContext;
453
+ altBoundary: boolean;
454
+ padding: import("@floating-ui/core").Padding;
361
455
  boundary: import("@floating-ui/dom").Boundary;
362
456
  }> | undefined;
363
457
  arrow: boolean;
364
458
  autoClose: boolean;
365
459
  autofocusFirst: boolean;
366
460
  triggerWidth: boolean;
367
- floating: boolean;
461
+ deselectHintLabel: string;
462
+ selectHintLabel: string;
463
+ selectedHintLabel: string;
368
464
  noResultsLabel: string;
369
- selectedLabel: string;
370
- deselectLabel: string;
371
- pressToSelectLabel: string;
372
- pressToDeselectLabel: string;
465
+ noOptionsLabel: string;
466
+ deselectActionLabel: string;
373
467
  searchable: boolean;
374
468
  searchPlaceholder: string;
375
469
  debounceSearch: string | number;
@@ -379,6 +473,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
379
473
  badgeModifiers: string | string[];
380
474
  autoOpen: boolean;
381
475
  }>, {
476
+ 'dropdown::before': (_: {}) => any;
382
477
  before: (_: {
383
478
  valid: boolean;
384
479
  invalid: boolean;
@@ -399,6 +494,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
399
494
  selected: boolean;
400
495
  disabled: any;
401
496
  }) => any;
497
+ 'no-options': (_: {}) => any;
498
+ 'no-results': (_: {}) => any;
499
+ 'dropdown::after': (_: {}) => any;
402
500
  }>;
403
501
  export default _default;
404
502
  type __VLS_WithTemplateSlots<T, S> = T & {