@volverjs/ui-vue 0.0.2 → 0.0.3-beta.3

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 (171) hide show
  1. package/auto-imports.d.ts +289 -0
  2. package/dist/components/VvAccordion/VvAccordion.es.js +63 -131
  3. package/dist/components/VvAccordion/VvAccordion.umd.js +1 -1
  4. package/dist/components/VvAccordion/VvAccordion.vue.d.ts +2 -2
  5. package/dist/components/VvAccordion/index.d.ts +2 -2
  6. package/dist/components/VvAccordionGroup/VvAccordionGroup.es.js +97 -176
  7. package/dist/components/VvAccordionGroup/VvAccordionGroup.umd.js +1 -1
  8. package/dist/components/VvAccordionGroup/VvAccordionGroup.vue.d.ts +4 -4
  9. package/dist/components/VvAccordionGroup/index.d.ts +2 -2
  10. package/dist/components/VvBadge/VvBadge.es.js +16 -50
  11. package/dist/components/VvBadge/VvBadge.umd.js +1 -1
  12. package/dist/components/VvBreadcrumb/VvBreadcrumb.es.js +38 -45
  13. package/dist/components/VvBreadcrumb/VvBreadcrumb.umd.js +1 -1
  14. package/dist/components/VvButton/VvButton.es.js +170 -306
  15. package/dist/components/VvButton/VvButton.umd.js +1 -1
  16. package/dist/components/VvButton/VvButton.vue.d.ts +4 -4
  17. package/dist/components/VvButton/index.d.ts +3 -3
  18. package/dist/components/VvButtonGroup/VvButtonGroup.es.js +39 -84
  19. package/dist/components/VvButtonGroup/VvButtonGroup.umd.js +1 -1
  20. package/dist/components/VvCard/VvCard.es.js +26 -60
  21. package/dist/components/VvCard/VvCard.umd.js +1 -1
  22. package/dist/components/VvCard/VvCard.vue.d.ts +2 -2
  23. package/dist/components/VvCard/index.d.ts +1 -1
  24. package/dist/components/VvCheckbox/VvCheckbox.es.js +144 -282
  25. package/dist/components/VvCheckbox/VvCheckbox.umd.js +1 -1
  26. package/dist/components/VvCheckbox/VvCheckbox.vue.d.ts +6 -6
  27. package/dist/components/VvCheckbox/index.d.ts +10 -4
  28. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.es.js +190 -346
  29. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.umd.js +1 -1
  30. package/dist/components/VvCheckboxGroup/VvCheckboxGroup.vue.d.ts +7 -7
  31. package/dist/components/VvCheckboxGroup/index.d.ts +3 -3
  32. package/dist/components/VvCombobox/VvCombobox.es.js +330 -487
  33. package/dist/components/VvCombobox/VvCombobox.umd.js +1 -1
  34. package/dist/components/VvCombobox/VvCombobox.vue.d.ts +8 -8
  35. package/dist/components/VvCombobox/index.d.ts +4 -4
  36. package/dist/components/VvDialog/VvDialog.es.js +66 -102
  37. package/dist/components/VvDialog/VvDialog.umd.js +1 -1
  38. package/dist/components/VvDropdown/VvDropdown.es.js +61 -185
  39. package/dist/components/VvDropdown/VvDropdown.umd.js +1 -1
  40. package/dist/components/VvDropdown/VvDropdown.vue.d.ts +2 -2
  41. package/dist/components/VvDropdown/index.d.ts +1 -1
  42. package/dist/components/VvIcon/VvIcon.es.js +30 -65
  43. package/dist/components/VvIcon/VvIcon.umd.js +1 -1
  44. package/dist/components/VvInputText/VvInputText.es.js +304 -407
  45. package/dist/components/VvInputText/VvInputText.umd.js +1 -1
  46. package/dist/components/VvInputText/VvInputText.vue.d.ts +10 -10
  47. package/dist/components/VvInputText/VvInputTextActions.d.ts +1 -1
  48. package/dist/components/VvInputText/index.d.ts +5 -5
  49. package/dist/components/VvProgress/VvProgress.es.js +17 -51
  50. package/dist/components/VvProgress/VvProgress.umd.js +1 -1
  51. package/dist/components/VvRadio/VvRadio.es.js +110 -249
  52. package/dist/components/VvRadio/VvRadio.umd.js +1 -1
  53. package/dist/components/VvRadio/VvRadio.vue.d.ts +6 -6
  54. package/dist/components/VvRadio/index.d.ts +3 -3
  55. package/dist/components/VvRadioGroup/VvRadioGroup.es.js +161 -318
  56. package/dist/components/VvRadioGroup/VvRadioGroup.umd.js +1 -1
  57. package/dist/components/VvRadioGroup/VvRadioGroup.vue.d.ts +7 -7
  58. package/dist/components/VvRadioGroup/index.d.ts +3 -3
  59. package/dist/components/VvSelect/VvSelect.es.js +200 -292
  60. package/dist/components/VvSelect/VvSelect.umd.js +1 -1
  61. package/dist/components/VvSelect/VvSelect.vue.d.ts +8 -8
  62. package/dist/components/VvSelect/index.d.ts +4 -4
  63. package/dist/components/VvTextarea/VvTextarea.es.js +196 -299
  64. package/dist/components/VvTextarea/VvTextarea.umd.js +1 -1
  65. package/dist/components/VvTextarea/VvTextarea.vue.d.ts +6 -6
  66. package/dist/components/VvTextarea/index.d.ts +3 -3
  67. package/dist/components/VvTooltip/VvTooltip.es.js +28 -0
  68. package/dist/components/VvTooltip/VvTooltip.umd.js +1 -0
  69. package/dist/components/VvTooltip/VvTooltip.vue.d.ts +23 -0
  70. package/dist/components/VvTooltip/index.d.ts +18 -0
  71. package/dist/components/common/HintSlot.d.ts +1 -1
  72. package/dist/components/index.es.js +1179 -1371
  73. package/dist/components/index.umd.js +1 -1
  74. package/dist/composables/group/useInjectedGroupState.d.ts +1 -1
  75. package/dist/composables/useComponentFocus.d.ts +1 -1
  76. package/dist/composables/useComponentIcons.d.ts +1 -1
  77. package/dist/composables/useDebouncedInput.d.ts +1 -1
  78. package/dist/composables/useModifiers.d.ts +1 -1
  79. package/dist/composables/useTextCount.d.ts +1 -1
  80. package/dist/icons.es.js +3 -3
  81. package/dist/icons.umd.js +1 -1
  82. package/dist/index.es.js +1211 -1404
  83. package/dist/index.umd.js +1 -1
  84. package/dist/props/index.d.ts +12 -12
  85. package/dist/stories/Tooltip/Tooltip.settings.d.ts +42 -0
  86. package/dist/stories/Tooltip/Tooltip.test.d.ts +2 -0
  87. package/dist/utils/ObjectUtilities.d.ts +1 -1
  88. package/package.json +27 -20
  89. package/src/assets/icons/detailed.json +1 -1
  90. package/src/assets/icons/normal.json +1 -1
  91. package/src/assets/icons/simple.json +1 -1
  92. package/src/components/VvAccordion/VvAccordion.vue +0 -3
  93. package/src/components/VvAccordion/index.ts +1 -2
  94. package/src/components/VvAccordionGroup/VvAccordionGroup.vue +1 -3
  95. package/src/components/VvBadge/VvBadge.vue +0 -1
  96. package/src/components/VvButton/VvButton.vue +0 -3
  97. package/src/components/VvButton/index.ts +2 -10
  98. package/src/components/VvButtonGroup/VvButtonGroup.vue +0 -3
  99. package/src/components/VvCard/VvCard.vue +0 -1
  100. package/src/components/VvCheckbox/VvCheckbox.vue +0 -3
  101. package/src/components/VvCheckbox/index.ts +1 -2
  102. package/src/components/VvCheckboxGroup/VvCheckboxGroup.vue +0 -5
  103. package/src/components/VvCombobox/VvCombobox.vue +0 -7
  104. package/src/components/VvDialog/VvDialog.vue +1 -2
  105. package/src/components/VvDropdown/VvDropdown.vue +0 -4
  106. package/src/components/VvIcon/VvIcon.vue +0 -2
  107. package/src/components/VvInputText/VvInputClearAction.ts +0 -1
  108. package/src/components/VvInputText/VvInputPasswordAction.ts +0 -1
  109. package/src/components/VvInputText/VvInputStepAction.ts +0 -1
  110. package/src/components/VvInputText/VvInputText.vue +1 -16
  111. package/src/components/VvInputText/VvInputTextActions.ts +1 -1
  112. package/src/components/VvProgress/VvProgress.vue +0 -2
  113. package/src/components/VvRadio/VvRadio.vue +0 -3
  114. package/src/components/VvRadio/index.ts +0 -1
  115. package/src/components/VvRadioGroup/VvRadioGroup.vue +0 -5
  116. package/src/components/VvSelect/VvSelect.vue +1 -14
  117. package/src/components/VvTextarea/VvTextarea.vue +1 -15
  118. package/src/components/VvTooltip/VvTooltip.vue +17 -0
  119. package/src/components/VvTooltip/index.ts +21 -0
  120. package/src/components/common/HintSlot.ts +1 -11
  121. package/src/composables/group/types/IAccordionGroupState.ts +0 -1
  122. package/src/composables/group/types/IButtonGroupState.ts +0 -1
  123. package/src/composables/group/types/IInputGroup.ts +0 -1
  124. package/src/composables/group/useInjectedGroupState.ts +1 -2
  125. package/src/composables/group/useProvideGroupState.ts +0 -1
  126. package/src/composables/useComponentFocus.ts +1 -2
  127. package/src/composables/useComponentIcons.ts +1 -1
  128. package/src/composables/useDebouncedInput.ts +1 -1
  129. package/src/composables/useModifiers.ts +1 -2
  130. package/src/composables/useOptions.ts +0 -1
  131. package/src/composables/useTextCount.ts +1 -1
  132. package/src/stories/Accordion/Accordion.stories.mdx +1 -1
  133. package/src/stories/AccordionGroup/AccordionGroup.stories.mdx +1 -1
  134. package/src/stories/AccordionGroup/AccordionGroupSlots.stories.mdx +1 -1
  135. package/src/stories/Badge/Badge.stories.mdx +1 -1
  136. package/src/stories/Breadcrumb/Breadcrumb.settings.ts +0 -1
  137. package/src/stories/Breadcrumb/Breadcrumb.stories.mdx +1 -1
  138. package/src/stories/Breadcrumb/BreadcrumbSlots.stories.mdx +1 -1
  139. package/src/stories/Button/Button.stories.mdx +1 -1
  140. package/src/stories/Button/ButtonModifiers.stories.mdx +2 -2
  141. package/src/stories/Button/ButtonSlots.stories.mdx +3 -3
  142. package/src/stories/ButtonGroup/ButtonGroup.settings.ts +0 -1
  143. package/src/stories/ButtonGroup/ButtonGroup.stories.mdx +1 -1
  144. package/src/stories/ButtonGroup/ButtonGroupSlots.stories.mdx +1 -1
  145. package/src/stories/Card/Card.stories.mdx +1 -1
  146. package/src/stories/Card/CardSlots.stories.mdx +1 -1
  147. package/src/stories/Checkbox/Checkbox.stories.mdx +1 -1
  148. package/src/stories/CheckboxGroup/CheckboxGroup.stories.mdx +1 -1
  149. package/src/stories/CheckboxGroup/CheckboxGroupSlots.stories.mdx +1 -1
  150. package/src/stories/Combobox/Combobox.settings.ts +0 -1
  151. package/src/stories/Combobox/Combobox.stories.mdx +1 -1
  152. package/src/stories/Dialog/Dialog.stories.mdx +1 -1
  153. package/src/stories/Dropdown/Dropdown.settings.ts +0 -1
  154. package/src/stories/Dropdown/Dropdown.stories.mdx +1 -1
  155. package/src/stories/Icon/Icon.settings.ts +0 -1
  156. package/src/stories/Icon/Icon.stories.mdx +1 -1
  157. package/src/stories/Icon/IconsCollection.stories.mdx +1 -1
  158. package/src/stories/InputText/InputText.settings.ts +0 -1
  159. package/src/stories/InputText/InputText.stories.mdx +1 -1
  160. package/src/stories/Progress/Progress.stories.mdx +1 -1
  161. package/src/stories/Radio/Radio.stories.mdx +1 -1
  162. package/src/stories/RadioGroup/RadioGroup.stories.mdx +1 -1
  163. package/src/stories/RadioGroup/RadioGroupSlots.stories.mdx +1 -1
  164. package/src/stories/Select/Select.settings.ts +0 -1
  165. package/src/stories/Select/Select.stories.mdx +1 -1
  166. package/src/stories/Textarea/Textarea.settings.ts +0 -1
  167. package/src/stories/Textarea/Textarea.stories.mdx +1 -1
  168. package/src/stories/Tooltip/Tooltip.settings.ts +25 -0
  169. package/src/stories/Tooltip/Tooltip.stories.mdx +98 -0
  170. package/src/stories/Tooltip/Tooltip.test.ts +49 -0
  171. package/src/utils/ObjectUtilities.ts +1 -1
@@ -1 +1 @@
1
- (function(e,P){typeof exports=="object"&&typeof module<"u"?module.exports=P(require("vue"),require("nanoid"),require("@vueuse/core"),require("@iconify/vue")):typeof define=="function"&&define.amd?define(["vue","nanoid","@vueuse/core","@iconify/vue"],P):(e=typeof globalThis<"u"?globalThis:e||self,e.VvSelect=P(e.vue,e.nanoid,e.core,e.vue$1))})(this,function(e,P,w,S){"use strict";function E(t,r){if(t&&Object.keys(t).length&&r){if(r.indexOf(".")===-1)return t[r];{const n=r.split(".");let a=t;for(let l=0,u=n.length;l<u;++l){if(t==null)return null;a=a[n[l]]}return a}}else return null}function $(t){return(r=>r==null||r===""||Array.isArray(r)&&r.length===0||!(r instanceof Date)&&typeof r=="object"&&Object.keys(r).length===0)(e.unref(t))}function H(t){return typeof t=="string"||t instanceof String}function _(t){var r,n;if(t)return(n=(r=t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))==null?void 0:r.join("-"))==null?void 0:n.toLowerCase()}function D(t,r){const n={[`${t}`]:!0};return{bemCssClasses:e.computed(()=>Object.keys(r).reduce((l,u)=>{const o=e.unref(r[u])||!1;if(!o)return l;if(u==="modifiers"){const y=Array.isArray(o)?o:o.split(" ");return{...l,...y.reduce((p,f)=>({...p,[`${t}--${_(f)}`]:!0}),{})}}else return{...l,[`${t}--${_(u)}`]:o}},n)||{})}}function M(t,r,n){const a=e.computed(()=>!!(t!=null&&t.value&&r.value==="left"||n!=null&&n.iconLeft)),l=e.computed(()=>!!(t!=null&&t.value&&r.value==="right"||n!=null&&n.iconRight)),u=e.computed(()=>!!(t!=null&&t.value&&r.value==="top"||n!=null&&n.iconTop)),o=e.computed(()=>!!(t!=null&&t.value&&r.value==="bottom"||n!=null&&n.iconBottom));return{hasIcon:e.computed(()=>typeof(t==null?void 0:t.value)=="string"?{name:t==null?void 0:t.value}:t==null?void 0:t.value),hasIconLeft:a,hasIconRight:l,hasIconTop:u,hasIconBottom:o}}function L(t){const{options:r,labelKey:n,valueKey:a}=e.toRefs(t);return{options:r,getOptionLabel:o=>typeof o!="object"&&o!==null?o:typeof n.value=="function"?n.value(o):o[n.value],getOptionValue:o=>typeof o!="object"&&o!==null?o:typeof a.value=="function"?a.value(o):o[a.value]}}function K(t,r){const{focused:n}=w.useFocus(t);return e.watch(n,a=>{r(a?"focus":"blur",e.unref(t))}),{focused:n}}const Z="ds",x={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]}},U={name:"VvIcon"},j=e.defineComponent({...U,props:x,setup(t){const r=t,n=e.ref(!0),{modifiers:a}=e.toRefs(r),l=e.inject(Z),{bemCssClasses:u}=D("vv-icon",{modifiers:a}),o=e.computed(()=>r.provider||(l==null?void 0:l.provider)),y=e.computed(()=>{const s=r.name??"",i=`@${o.value}:${r.prefix}:${r.name}`;return S.iconExists(s)?s:S.iconExists(i)?i:(l==null?void 0:l.iconsCollections.find(m=>{const d=`@${o.value}:${m.prefix}:${s}`;if(S.iconExists(d))return d}))||s});function p(s){let i=null;if(typeof window>"u"){const{JSDOM:h}=require("jsdom");i=new h().window}return(i?new i.DOMParser:new window.DOMParser).parseFromString(s,"text/html").querySelector("svg")}function f(s){const i=p(s),m=(i==null?void 0:i.innerHTML.trim())||"";i&&m&&S.addIcon(`@${o.value}:${r.prefix}:${r.name}`,{body:m,height:i.viewBox.baseVal.height,width:i.viewBox.baseVal.width})}return l&&(r.src&&!S.iconExists(`@${o.value}:${r.prefix}:${r.name}`)?(n.value=!1,l.fetchIcon(r.src).then(s=>{s&&(f(s),n.value=!0)}).catch(s=>{throw new Error(`During fetch icon: ${s==null?void 0:s.message}`)})):r.svg&&f(r.svg)),(s,i)=>n.value?(e.openBlock(),e.createBlock(e.unref(S.Icon),e.mergeProps({key:0,class:e.unref(u)},{inline:s.inline,width:s.width,height:s.height,horizontalFlip:s.horizontalFlip,verticalFlip:s.verticalFlip,flip:s.flip,rotate:s.rotate,color:s.color,onLoad:s.onLoad,icon:e.unref(y)}),null,16,["class"])):e.createCommentVNode("",!0)}});function C(t){return Array.isArray(t)?t.filter(r=>H(r)).join(" "):t}function G(t,r){const{invalid:n,valid:a,hint:l,loading:u}=r,{hintLabel:o,modelValue:y,valid:p,validLabel:f,invalid:s,invalidLabel:i,...m}=e.toRefs(t),d=E(m,"loading"),g=E(m,"loadingLabel"),h=e.computed(()=>s.value?!!(s.value&&n||i!=null&&i.value&&Array.isArray(i.value)&&i.value.length>0||i!=null&&i.value&&!$(i)):!1),v=e.computed(()=>!!(o&&o.value||l)),V=e.computed(()=>!!(f&&f.value||a)),B=e.computed(()=>!!(d!=null&&d.value&&u||d!=null&&d.value&&(g!=null&&g.value))),I=e.computed(()=>v.value||V.value||h.value||B.value);return{hasInvalid:h,hasHint:v,hasValid:V,hasLoading:B,HintSlot:{name:"HintSlot",props:{params:{type:Object,default:()=>({})}},setup(A){const F=e.computed(()=>{const b=w.toReactive({hintLabel:o,modelValue:y,valid:p,validLabel:f,invalid:s,invalidLabel:i,loading:d,loadingLabel:g,...A.params});return s!=null&&s.value?(n==null?void 0:n(b))||C(i==null?void 0:i.value)||(o==null?void 0:o.value):p!=null&&p.value?(a==null?void 0:a(b))||C(f==null?void 0:f.value)||(o==null?void 0:o.value):d!=null&&d.value?(u==null?void 0:u(b))||C(g==null?void 0:g.value)||(o==null?void 0:o.value):(l==null?void 0:l(b))||C(o==null?void 0:o.value)||(o==null?void 0:o.value)});return{isVisible:I,hasInvalid:h,hasValid:V,hintContent:F}},render(){if(this.isVisible)return e.h("small",{role:this.hasInvalid||this.hasValid?"alert":void 0},this.hintContent)}}}}const J={valid:Boolean,validLabel:[String,Array]},X={invalid:Boolean,invalidLabel:[String,Array]},Q={loading:Boolean,loadingLabel:String},W={disabled:Boolean},Y={readonly:Boolean},ee={modifiers:[String,Array]},te={hintLabel:{type:String,default:""}},ne={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"}},R={LEFT:"left",RIGHT:"right"},re={icon:{type:[String,Object]},iconPosition:{type:String,validation:t=>Object.values(R).includes(t),default:R.RIGHT}},oe={...{id:[String,Number],name:{type:String,required:!0}},...{autofocus:Boolean},...{autocomplete:{type:String,default:"off"}},...{tabindex:{type:[String,Number],default:0}},...J,...X,...te,...Q,...W,...Y,...ee,...ne,...re,...{floating:Boolean},...{unselectable:{type:Boolean,default:!0}},multiple:Boolean,required:Boolean,size:[String,Number],modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},label:String,placeholder:String},se=["update:modelValue","focus","blur"],ie=["for"],le={class:"vv-select__wrapper"},ae=["id"],ce=["disabled","hidden"],ue=["disabled","value"],de={name:"VvSelect"};return e.defineComponent({...de,props:oe,emits:se,setup(t,{emit:r}){const n=t,a=e.useSlots(),l=e.ref(),{HintSlot:u,hasHint:o,hasInvalid:y}=G(n,a),{modifiers:p,disabled:f,readonly:s,loading:i,icon:m,iconPosition:d,invalid:g,valid:h,floating:v,multiple:V}=e.toRefs(n),B=e.computed(()=>String(n.id||P.nanoid())),I=e.computed(()=>`${B.value}-hint`),{focused:A}=K(l,r),F=w.useElementVisibility(l);e.watch(F,c=>{c&&n.autofocus&&(A.value=!0)});const{hasIcon:b,hasIconLeft:q,hasIconRight:z}=M(m,d),fe=e.computed(()=>!$(n.modelValue)),T=e.computed(()=>n.disabled||n.readonly),pe=e.computed(()=>T.value?-1:n.tabindex),me=e.computed(()=>{if(n.invalid===!0)return!0;if(n.valid===!0)return!1}),{bemCssClasses:ge}=D("vv-select",{modifiers:p,valid:h,invalid:g,loading:i,disabled:f,readonly:s,iconLeft:q,iconRight:z,dirty:fe,focus:A,floating:v,multiple:V}),ye=e.computed(()=>({name:n.name,tabindex:pe.value,disabled:T.value,required:n.required,size:n.size,autocomplete:n.autocomplete,multiple:n.multiple,"aria-invalid":me.value,"aria-describedby":!y.value&&o.value?I.value:void 0,"aria-errormessage":y.value?I.value:void 0})),{getOptionLabel:he,getOptionValue:be}=L(n);function Se(c){return typeof c=="string"||c.disabled===void 0?f.value:c.disabled}const N=e.computed({get:()=>n.modelValue,set:c=>{Array.isArray(c)&&(c=c.filter(O=>O!==void 0)),r("update:modelValue",c)}});return(c,O)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(ge))},[c.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(B)},e.toDisplayString(c.label),9,ie)):e.createCommentVNode("",!0),e.createElementVNode("div",le,[e.renderSlot(c.$slots,"before",{},()=>[e.unref(q)?(e.openBlock(),e.createBlock(j,e.normalizeProps(e.mergeProps({key:0},e.unref(b))),null,16)):e.createCommentVNode("",!0)]),e.withDirectives(e.createElementVNode("select",e.mergeProps({id:e.unref(B),ref_key:"select",ref:l,"onUpdate:modelValue":O[0]||(O[0]=k=>e.isRef(N)?N.value=k:null)},e.unref(ye)),[c.placeholder?(e.openBlock(),e.createElementBlock("option",{key:0,value:void 0,disabled:!c.unselectable,hidden:!c.unselectable},e.toDisplayString(c.placeholder),9,ce)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(c.options,(k,Be)=>(e.openBlock(),e.createElementBlock("option",{key:Be,disabled:Se(k),value:e.unref(be)(k)},e.toDisplayString(e.unref(he)(k)),9,ue))),128))],16,ae),[[e.vModelSelect,e.unref(N)]]),e.renderSlot(c.$slots,"after",{},()=>[e.unref(z)?(e.openBlock(),e.createBlock(j,e.normalizeProps(e.mergeProps({key:0},e.unref(b))),null,16)):e.createCommentVNode("",!0)])]),e.createVNode(e.unref(u),{id:e.unref(I),class:"vv-select__hint"},null,8,["id"])],2))}})});
1
+ (function(e,B){typeof exports=="object"&&typeof module<"u"?module.exports=B(require("vue"),require("nanoid"),require("@iconify/vue")):typeof define=="function"&&define.amd?define(["vue","nanoid","@iconify/vue"],B):(e=typeof globalThis<"u"?globalThis:e||self,e.VvSelect=B(e.vue,e.nanoid,e.vue$1))})(this,function(e,B,v){"use strict";const q="ds",H={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]}},T={name:"VvIcon"},D=e.defineComponent({...T,props:H,setup(d){const i=d,n=ref(!0),{modifiers:f}=toRefs(i),l=inject(q),{bemCssClasses:m}=useBemModifiers("vv-icon",{modifiers:f}),r=computed(()=>i.provider||(l==null?void 0:l.provider)),b=computed(()=>{const t=i.name??"",o=`@${r.value}:${i.prefix}:${i.name}`;return v.iconExists(t)?t:v.iconExists(o)?o:(l==null?void 0:l.iconsCollections.find(u=>{const a=`@${r.value}:${u.prefix}:${t}`;if(v.iconExists(a))return a}))||t});function g(t){let o=null;if(typeof window>"u"){const{JSDOM:y}=require("jsdom");o=new y().window}return(o?new o.DOMParser:new window.DOMParser).parseFromString(t,"text/html").querySelector("svg")}function c(t){const o=g(t),u=(o==null?void 0:o.innerHTML.trim())||"";o&&u&&v.addIcon(`@${r.value}:${i.prefix}:${i.name}`,{body:u,height:o.viewBox.baseVal.height,width:o.viewBox.baseVal.width})}return l&&(i.src&&!v.iconExists(`@${r.value}:${i.prefix}:${i.name}`)?(n.value=!1,l.fetchIcon(i.src).then(t=>{t&&(c(t),n.value=!0)}).catch(t=>{throw new Error(`During fetch icon: ${t==null?void 0:t.message}`)})):i.svg&&c(i.svg)),(t,o)=>e.unref(n)?(e.openBlock(),e.createBlock(e.unref(v.Icon),e.mergeProps({key:0,class:e.unref(m)},{inline:t.inline,width:t.width,height:t.height,horizontalFlip:t.horizontalFlip,verticalFlip:t.verticalFlip,flip:t.flip,rotate:t.rotate,color:t.color,onLoad:t.onLoad,icon:e.unref(b)}),null,16,["class"])):e.createCommentVNode("",!0)}});function E(d){return Array.isArray(d)?d.filter(i=>isString(i)).join(" "):d}function j(d,i){const{invalid:n,valid:f,hint:l,loading:m}=i,{hintLabel:r,modelValue:b,valid:g,validLabel:c,invalid:t,invalidLabel:o,...u}=toRefs(d),a=resolveFieldData(u,"loading"),p=resolveFieldData(u,"loadingLabel"),y=computed(()=>t.value?!!(t.value&&n||o!=null&&o.value&&Array.isArray(o.value)&&o.value.length>0||o!=null&&o.value&&!isEmpty(o)):!1),F=computed(()=>!!(r&&r.value||l)),V=computed(()=>!!(c&&c.value||f)),P=computed(()=>!!(a!=null&&a.value&&m||a!=null&&a.value&&(p!=null&&p.value))),I=computed(()=>F.value||V.value||y.value||P.value);return{hasInvalid:y,hasHint:F,hasValid:V,hasLoading:P,HintSlot:{name:"HintSlot",props:{params:{type:Object,default:()=>({})}},setup(N){const C=computed(()=>{const S=toReactive({hintLabel:r,modelValue:b,valid:g,validLabel:c,invalid:t,invalidLabel:o,loading:a,loadingLabel:p,...N.params});return t!=null&&t.value?(n==null?void 0:n(S))||E(o==null?void 0:o.value)||(r==null?void 0:r.value):g!=null&&g.value?(f==null?void 0:f(S))||E(c==null?void 0:c.value)||(r==null?void 0:r.value):a!=null&&a.value?(m==null?void 0:m(S))||E(p==null?void 0:p.value)||(r==null?void 0:r.value):(l==null?void 0:l(S))||E(r==null?void 0:r.value)||(r==null?void 0:r.value)});return{isVisible:I,hasInvalid:y,hasValid:V,hintContent:C}},render(){if(this.isVisible)return h("small",{role:this.hasInvalid||this.hasValid?"alert":void 0},this.hintContent)}}}}const z={valid:Boolean,validLabel:[String,Array]},M={invalid:Boolean,invalidLabel:[String,Array]},x={loading:Boolean,loadingLabel:String},U={disabled:Boolean},G={readonly:Boolean},K={modifiers:[String,Array]},J={hintLabel:{type:String,default:""}},X={options:{type:Array,default:()=>[]},labelKey:{type:[String,Function],default:"label"},valueKey:{type:[String,Function],default:"value"}},_={LEFT:"left",RIGHT:"right"},L={icon:{type:[String,Object]},iconPosition:{type:String,validation:d=>Object.values(_).includes(d),default:_.RIGHT}},Q={...{id:[String,Number],name:{type:String,required:!0}},...{autofocus:Boolean},...{autocomplete:{type:String,default:"off"}},...{tabindex:{type:[String,Number],default:0}},...z,...M,...J,...x,...U,...G,...K,...X,...L,...{floating:Boolean},...{unselectable:{type:Boolean,default:!0}},multiple:Boolean,required:Boolean,size:[String,Number],modelValue:{type:[String,Number,Boolean,Object,Array],default:void 0},label:String,placeholder:String},W=["update:modelValue","focus","blur"],Y=["for"],Z={class:"vv-select__wrapper"},ee=["id"],te=["disabled","hidden"],oe=["disabled","value"],ne={name:"VvSelect"};return e.defineComponent({...ne,props:Q,emits:W,setup(d,{emit:i}){const n=d,f=useSlots(),l=ref(),{HintSlot:m,hasHint:r,hasInvalid:b}=j(n,f),{modifiers:g,disabled:c,readonly:t,loading:o,icon:u,iconPosition:a,invalid:p,valid:y,floating:F,multiple:V}=toRefs(n),P=computed(()=>String(n.id||B.nanoid())),I=computed(()=>`${P.value}-hint`),{focused:N}=useComponentFocus(l,i),C=useElementVisibility(l);watch(C,s=>{s&&n.autofocus&&(N.value=!0)});const{hasIcon:S,hasIconLeft:O,hasIconRight:$}=useComponentIcon(u,a),re=computed(()=>!isEmpty(n.modelValue)),R=computed(()=>n.disabled||n.readonly),ie=computed(()=>R.value?-1:n.tabindex),se=computed(()=>{if(n.invalid===!0)return!0;if(n.valid===!0)return!1}),{bemCssClasses:le}=useBemModifiers("vv-select",{modifiers:g,valid:y,invalid:p,loading:o,disabled:c,readonly:t,iconLeft:O,iconRight:$,dirty:re,focus:N,floating:F,multiple:V}),ae=computed(()=>({name:n.name,tabindex:ie.value,disabled:R.value,required:n.required,size:n.size,autocomplete:n.autocomplete,multiple:n.multiple,"aria-invalid":se.value,"aria-describedby":!b.value&&r.value?I.value:void 0,"aria-errormessage":b.value?I.value:void 0})),{getOptionLabel:ce,getOptionValue:de}=useOptions(n);function ue(s){return typeof s=="string"||s.disabled===void 0?c.value:s.disabled}const A=computed({get:()=>n.modelValue,set:s=>{Array.isArray(s)&&(s=s.filter(w=>w!==void 0)),i("update:modelValue",s)}});return(s,w)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(e.unref(le))},[s.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:e.unref(P)},e.toDisplayString(s.label),9,Y)):e.createCommentVNode("",!0),e.createElementVNode("div",Z,[e.renderSlot(s.$slots,"before",{},()=>[e.unref(O)?(e.openBlock(),e.createBlock(D,e.normalizeProps(e.mergeProps({key:0},e.unref(S))),null,16)):e.createCommentVNode("",!0)]),e.withDirectives(e.createElementVNode("select",e.mergeProps({id:e.unref(P),ref_key:"select",ref:l,"onUpdate:modelValue":w[0]||(w[0]=k=>e.isRef(A)?A.value=k:null)},e.unref(ae)),[s.placeholder?(e.openBlock(),e.createElementBlock("option",{key:0,value:void 0,disabled:!s.unselectable,hidden:!s.unselectable},e.toDisplayString(s.placeholder),9,te)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(s.options,(k,pe)=>(e.openBlock(),e.createElementBlock("option",{key:pe,disabled:ue(k),value:e.unref(de)(k)},e.toDisplayString(e.unref(ce)(k)),9,oe))),128))],16,ee),[[e.vModelSelect,e.unref(A)]]),e.renderSlot(s.$slots,"after",{},()=>[e.unref($)?(e.openBlock(),e.createBlock(D,e.normalizeProps(e.mergeProps({key:0},e.unref(S))),null,16)):e.createCommentVNode("",!0)])]),e.createVNode(e.unref(m),{id:e.unref(I),class:"vv-select__hint"},null,8,["id"])],2))}})});
@@ -4,7 +4,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
4
4
  required: BooleanConstructor;
5
5
  size: (StringConstructor | NumberConstructor)[];
6
6
  modelValue: {
7
- type: (ArrayConstructor | ObjectConstructor | StringConstructor | BooleanConstructor | NumberConstructor)[];
7
+ type: (StringConstructor | BooleanConstructor | ArrayConstructor | ObjectConstructor | NumberConstructor)[];
8
8
  default: undefined;
9
9
  };
10
10
  label: StringConstructor;
@@ -15,7 +15,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
15
15
  };
16
16
  floating: BooleanConstructor;
17
17
  icon: {
18
- type: (ObjectConstructor | StringConstructor)[];
18
+ type: (StringConstructor | ObjectConstructor)[];
19
19
  };
20
20
  iconPosition: {
21
21
  type: import("vue").PropType<import("../../props/index.js").IconPosition>;
@@ -44,9 +44,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
44
44
  default: string;
45
45
  };
46
46
  invalid: BooleanConstructor;
47
- invalidLabel: (ArrayConstructor | StringConstructor)[];
47
+ invalidLabel: (StringConstructor | ArrayConstructor)[];
48
48
  valid: BooleanConstructor;
49
- validLabel: (ArrayConstructor | StringConstructor)[];
49
+ validLabel: (StringConstructor | ArrayConstructor)[];
50
50
  tabindex: {
51
51
  type: (StringConstructor | NumberConstructor)[];
52
52
  default: number;
@@ -66,7 +66,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
66
66
  required: BooleanConstructor;
67
67
  size: (StringConstructor | NumberConstructor)[];
68
68
  modelValue: {
69
- type: (ArrayConstructor | ObjectConstructor | StringConstructor | BooleanConstructor | NumberConstructor)[];
69
+ type: (StringConstructor | BooleanConstructor | ArrayConstructor | ObjectConstructor | NumberConstructor)[];
70
70
  default: undefined;
71
71
  };
72
72
  label: StringConstructor;
@@ -77,7 +77,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
77
77
  };
78
78
  floating: BooleanConstructor;
79
79
  icon: {
80
- type: (ObjectConstructor | StringConstructor)[];
80
+ type: (StringConstructor | ObjectConstructor)[];
81
81
  };
82
82
  iconPosition: {
83
83
  type: import("vue").PropType<import("../../props/index.js").IconPosition>;
@@ -106,9 +106,9 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
106
106
  default: string;
107
107
  };
108
108
  invalid: BooleanConstructor;
109
- invalidLabel: (ArrayConstructor | StringConstructor)[];
109
+ invalidLabel: (StringConstructor | ArrayConstructor)[];
110
110
  valid: BooleanConstructor;
111
- validLabel: (ArrayConstructor | StringConstructor)[];
111
+ validLabel: (StringConstructor | ArrayConstructor)[];
112
112
  tabindex: {
113
113
  type: (StringConstructor | NumberConstructor)[];
114
114
  default: number;
@@ -22,7 +22,7 @@ export declare const VvSelectProps: {
22
22
  * modelValue can be a string, number, boolean, object or array of string, number, boolean, object
23
23
  */
24
24
  modelValue: {
25
- type: (ArrayConstructor | ObjectConstructor | StringConstructor | BooleanConstructor | NumberConstructor)[];
25
+ type: (StringConstructor | BooleanConstructor | ArrayConstructor | ObjectConstructor | NumberConstructor)[];
26
26
  default: undefined;
27
27
  };
28
28
  /**
@@ -39,7 +39,7 @@ export declare const VvSelectProps: {
39
39
  };
40
40
  floating: BooleanConstructor;
41
41
  icon: {
42
- type: (ObjectConstructor | StringConstructor)[];
42
+ type: (StringConstructor | ObjectConstructor)[];
43
43
  };
44
44
  iconPosition: {
45
45
  type: import("vue").PropType<import("@/props").IconPosition>;
@@ -68,9 +68,9 @@ export declare const VvSelectProps: {
68
68
  default: string;
69
69
  };
70
70
  invalid: BooleanConstructor;
71
- invalidLabel: (ArrayConstructor | StringConstructor)[];
71
+ invalidLabel: (StringConstructor | ArrayConstructor)[];
72
72
  valid: BooleanConstructor;
73
- validLabel: (ArrayConstructor | StringConstructor)[];
73
+ validLabel: (StringConstructor | ArrayConstructor)[];
74
74
  tabindex: {
75
75
  type: (StringConstructor | NumberConstructor)[];
76
76
  default: number;