@volverjs/ui-vue 0.0.8 → 0.0.9-beta.2

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.
@@ -1 +1 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("@floating-ui/vue"),require("nanoid"),require("@vueuse/core"),require("mitt")):"function"==typeof define&&define.amd?define(["vue","@floating-ui/vue","nanoid","@vueuse/core","mitt"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvDropdown=t(e.vue,e.vue$1,e.nanoid,e.core,e.mitt)}(this,(function(e,t,o,r,l){"use strict";var n=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(n||{}),a=(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))(a||{}),u=(e=>(e.before="before",e.after="after",e))(u||{}),i=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(i||{}),d=(e=>(e.listbox="listbox",e.menu="menu",e))(d||{}),s=(e=>(e.option="option",e.presentation="presentation",e))(s||{});const f=Symbol.for("dropdownTrigger"),p=Symbol.for("dropdownItem");Boolean,Boolean,Boolean;u.before;const c={id:[String,Number]},v={placement:{type:String,default:n.bottom,validator:e=>Object.values(n).includes(e)||Object.values(a).includes(e)},strategy:{type:String,default:"absolute",validator:e=>["fixed","absolute"].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},keepOpen:{type:Boolean,default:!1},autofocusFirst:{type:Boolean,default:!0},triggerWidth:{type:Boolean}};i.button;const m={...c,...v,modifiers:{type:[String,Array],default:"mobile"},modelValue:{type:Boolean,default:void 0},reference:{type:Object,default:null},role:{type:String,default:d.menu,validator:e=>Object.values(d).includes(e)}};const b=["id","tabindex","role","aria-labelledby"];return e.defineComponent({name:"VvDropdown",inheritAttrs:!1,props:m,emits:["update:modelValue","beforeExpand","beforeCollapse","afterExpand","afterCollapse"],setup(n,{expose:a,emit:u}){const i=n,{id:c}=e.toRefs(i),v=(t=>e.computed((()=>String((null==t?void 0:t.value)||o.nanoid()))))(c),m=e.useAttrs(),g=e.ref("auto"),h=e.ref("auto"),y=e.ref(null),x=e.ref(),w=e.ref(null),S=e.ref(null),E=e.computed({get:()=>i.reference??y.value,set:e=>{y.value=e}}),k=e.ref(!1);e.onMounted((()=>{r.useMutationObserver(x.value,(()=>{var e;k.value="true"===(null==(e=window.getComputedStyle(x.value).getPropertyValue("--dropdown-custom-position"))?void 0:e.trim())}),{attributeFilter:["style"],window:window})}));const P=e.computed((()=>{const e=[];if(i.autoPlacement?"boolean"==typeof i.autoPlacement?e.push(t.autoPlacement()):e.push(t.autoPlacement(i.autoPlacement)):i.flip&&("boolean"==typeof i.flip?e.push(t.flip()):e.push(t.flip(i.flip))),i.shift&&("boolean"==typeof i.shift?e.push(t.shift()):e.push(t.shift(i.shift))),i.size){const o=({availableWidth:e,availableHeight:t})=>{g.value=`${e}px`,h.value=`${t}px`};"boolean"==typeof i.size?e.push(t.size({apply:o})):e.push(t.size({...i.size,apply:o}))}return i.offset&&(e.push(t.offset(Number(i.offset))),["string","number"].includes(typeof i.offset)?e.push(t.offset(Number(i.offset))):e.push(t.offset(i.offset))),i.arrow&&e.push(t.arrow({element:w})),e})),{x:$,y:B,strategy:O,middlewareData:z,placement:V}=t.useFloating(E,x,{whileElementsMounted:t.autoUpdate,placement:e.computed((()=>i.placement)),strategy:e.computed((()=>i.strategy)),middleware:P}),A=e.computed((()=>{if(!k.value)return{position:O.value,top:`${B.value??0}px`,left:`${$.value??0}px`,maxWidth:g.value,maxHeight:h.value,width:i.triggerWidth&&E.value?`${E.value.offsetWidth}px`:void 0}})),C=e.computed((()=>V.value.split("-")[0])),j=e.computed((()=>{var e,t,o,r,l;if(k.value)return;const n={top:"bottom",right:"left",bottom:"top",left:"right"}[C.value];return{left:void 0!==(null==(e=z.value.arrow)?void 0:e.x)?`${null==(t=z.value.arrow)?void 0:t.x}px`:void 0,top:void 0!==(null==(o=z.value.arrow)?void 0:o.y)?`${null==(r=z.value.arrow)?void 0:r.y}px`:void 0,[n]:-((null==(l=w.value)?void 0:l.offsetWidth)??0)/2+"px"}})),N=r.useVModel(i,"modelValue",u),D=e.ref(!1),_=e.computed({get:()=>N.value??D.value,set:e=>{void 0!==N.value?N.value=e:D.value=e}}),R=()=>{_.value=!0},T=()=>{_.value=!1},F=()=>{_.value=!_.value},W=e=>{E.value=e};a({toggle:F,show:R,hide:T,init:W,customPosition:k}),e.watch(_,(t=>{t&&i.autofocusFirst&&e.nextTick((()=>{const e=Q(x.value);e.length>0&&e[0].focus({preventScroll:!0})}))})),r.onClickOutside(x,(()=>{i.keepOpen||(_.value=!1)}),{ignore:[E]});const q=e.computed((()=>{var e,t;return(null==(t=null==(e=E.value)?void 0:e.getAttribute)?void 0:t.call(e,"id"))??void 0})),K=e.computed((()=>({"aria-controls":v.value,"aria-haspopup":!0,"aria-expanded":_.value}))),{component:M,bus:H}=function({reference:t,id:o,expanded:r,aria:n}){const a=l(),u=e.defineComponent({name:"VvDropdownTriggerProvider",setup(){e.provide(f,{reference:t,id:o,expanded:r,aria:n,bus:a})},render(){var t,o;return e.h(e.Fragment,{},null==(o=(t=this.$slots).default)?void 0:o.call(t))}});return{bus:a,component:u}}({reference:E,id:v,expanded:_,aria:K});H.on("click",F);const{role:U,modifiers:I}=e.toRefs(i),{itemRole:L}=function({role:t,expanded:o}){const r=e.computed((()=>t.value===d.listbox?s.option:s.presentation));return e.provide(p,{role:r,expanded:o}),{itemRole:r}}({role:U,expanded:_}),G=function(t,o,r){return e.computed((()=>{const l={[t]:!0},n="string"==typeof(null==o?void 0:o.value)?o.value.split(" "):null==o?void 0:o.value;return n&&Array.isArray(n)&&n.forEach((e=>{e&&(l[`${t}--${e}`]=!0)})),r&&Object.keys(r.value).forEach((o=>{l[`${t}--${o}`]=e.unref(r.value[o])})),l}))}("vv-dropdown",I,e.computed((()=>({arrow:i.arrow})))),{focused:J}=r.useFocusWithin(x);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"))):[]}r.onKeyStroke("Escape",(e=>{_.value&&(e.preventDefault(),T())})),r.onKeyStroke("ArrowDown",(t=>{_.value&&J.value&&(t.preventDefault(),e.nextTick((()=>{if(J.value){const e=Q(x.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t<e.length-1?e[t+1].focus({preventScroll:!0}):e[0].focus({preventScroll:!0})}})))})),r.onKeyStroke("ArrowUp",(t=>{_.value&&J.value&&(t.preventDefault(),e.nextTick((()=>{if(J.value){const e=Q(x.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t>0?e[t-1].focus({preventScroll:!0}):e[e.length-1].focus({preventScroll:!0})}})))})),r.onKeyStroke([" ","Enter"],(e=>{const t=e.target;_.value&&J.value&&t&&(null==t||t.click())}));const X=()=>{u(_.value?"beforeExpand":"beforeCollapse")},Y=()=>{u(_.value?"afterExpand":"afterCollapse")};return(t,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(M),null,{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps({init:W,show:R,hide:T,toggle:F,expanded:e.unref(_),aria:e.unref(K)})))])),_:3}),e.createVNode(e.Transition,e.mergeProps({name:t.transitionName},e.toHandlers({beforeEnter:X,onAfterLeave:Y})),{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"floatingEl",ref:x,style:e.normalizeStyle(e.unref(A)),class:e.normalizeClass(e.unref(G))},[i.arrow?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"arrowEl",ref:w,style:e.normalizeStyle(e.unref(j)),class:"vv-dropdown__arrow"},null,4)):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(_)}))),e.createElementVNode("div",e.mergeProps(e.unref(m),{id:e.unref(v),ref_key:"listEl",ref:S,tabindex:e.unref(_)?void 0:-1,role:e.unref(U),"aria-labelledby":e.unref(q),class:"vv-dropdown__list"}),[e.renderSlot(t.$slots,"items",e.normalizeProps(e.guardReactiveProps({role:e.unref(L)})))],16,b),e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(_)})))],6),[[e.vShow,e.unref(_)]])])),_:3},16,["name"])],64))}})}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("vue"),require("@floating-ui/vue"),require("nanoid"),require("@vueuse/core"),require("mitt")):"function"==typeof define&&define.amd?define(["vue","@floating-ui/vue","nanoid","@vueuse/core","mitt"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VvDropdown=t(e.vue,e.vue$1,e.nanoid,e.core,e.mitt)}(this,(function(e,t,o,r,l){"use strict";var a=(e=>(e.left="left",e.right="right",e.top="top",e.bottom="bottom",e))(a||{}),n=(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))(n||{}),u=(e=>(e.before="before",e.after="after",e))(u||{}),i=(e=>(e.button="button",e.submit="submit",e.reset="reset",e))(i||{}),d=(e=>(e.listbox="listbox",e.menu="menu",e))(d||{}),s=(e=>(e.option="option",e.presentation="presentation",e))(s||{});const f=Symbol.for("dropdownTrigger"),p=Symbol.for("dropdownItem"),c=(Boolean,Boolean,Boolean,{modifiers:[String,Array]});u.before;const v={id:[String,Number]},m={placement:{type:String,default:a.bottom,validator:e=>Object.values(a).includes(e)||Object.values(n).includes(e)},strategy:{type:String,default:"absolute",validator:e=>["fixed","absolute"].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},keepOpen:{type:Boolean,default:!1},autofocusFirst:{type:Boolean,default:!0},triggerWidth:{type:Boolean}};i.button;const b={...v,...m,...c,modelValue:{type:Boolean,default:void 0},reference:{type:Object,default:null},role:{type:String,default:d.menu,validator:e=>Object.values(d).includes(e)}};const g=["id","tabindex","role","aria-labelledby"];return e.defineComponent({name:"VvDropdown",inheritAttrs:!1,props:b,emits:["update:modelValue","beforeExpand","beforeCollapse","afterExpand","afterCollapse","before-enter","after-leave","enter","after-enter","enter-cancelled","before-leave","leave","leave-cancelled"],setup(a,{expose:n,emit:u}){const i=a,{id:c}=e.toRefs(i),v=(t=>e.computed((()=>String((null==t?void 0:t.value)||o.nanoid()))))(c),m=e.useAttrs(),b=e.ref("auto"),h=e.ref("auto"),y=e.ref(null),x=e.ref(),w=e.ref(null),S=e.ref(null),E=e.computed({get:()=>i.reference??y.value,set:e=>{y.value=e}}),k=e.ref(!1);e.onMounted((()=>{r.useMutationObserver(x.value,(()=>{var e;k.value="true"===(null==(e=window.getComputedStyle(x.value).getPropertyValue("--dropdown-custom-position"))?void 0:e.trim())}),{attributeFilter:["style"],window:window})}));const P=e.computed((()=>{const e=[];if(i.autoPlacement?"boolean"==typeof i.autoPlacement?e.push(t.autoPlacement()):e.push(t.autoPlacement(i.autoPlacement)):i.flip&&("boolean"==typeof i.flip?e.push(t.flip()):e.push(t.flip(i.flip))),i.shift&&("boolean"==typeof i.shift?e.push(t.shift()):e.push(t.shift(i.shift))),i.size){const o=({availableWidth:e,availableHeight:t})=>{b.value=`${e}px`,h.value=`${t}px`};"boolean"==typeof i.size?e.push(t.size({apply:o})):e.push(t.size({...i.size,apply:o}))}return i.offset&&(e.push(t.offset(Number(i.offset))),["string","number"].includes(typeof i.offset)?e.push(t.offset(Number(i.offset))):e.push(t.offset(i.offset))),i.arrow&&e.push(t.arrow({element:w})),e})),{x:$,y:B,strategy:O,middlewareData:z,placement:V}=t.useFloating(E,x,{whileElementsMounted:t.autoUpdate,placement:e.computed((()=>i.placement)),strategy:e.computed((()=>i.strategy)),middleware:P}),C=e.computed((()=>{if(!k.value)return{position:O.value,top:`${B.value??0}px`,left:`${$.value??0}px`,maxWidth:b.value,maxHeight:h.value,width:i.triggerWidth&&E.value?`${E.value.offsetWidth}px`:void 0}})),j=e.computed((()=>V.value.split("-")[0])),A=e.computed((()=>{var e,t,o,r,l;if(k.value)return;const a={top:"bottom",right:"left",bottom:"top",left:"right"}[j.value];return{left:void 0!==(null==(e=z.value.arrow)?void 0:e.x)?`${null==(t=z.value.arrow)?void 0:t.x}px`:void 0,top:void 0!==(null==(o=z.value.arrow)?void 0:o.y)?`${null==(r=z.value.arrow)?void 0:r.y}px`:void 0,[a]:-((null==(l=w.value)?void 0:l.offsetWidth)??0)/2+"px"}})),N=r.useVModel(i,"modelValue",u),D=e.ref(!1),_=e.computed({get:()=>N.value??D.value,set:e=>{void 0!==N.value?N.value=e:D.value=e}}),R=()=>{_.value=!0},T=()=>{_.value=!1},F=()=>{_.value=!_.value},W=e=>{E.value=e};n({toggle:F,show:R,hide:T,init:W,customPosition:k}),e.watch(_,(t=>{t&&i.autofocusFirst&&e.nextTick((()=>{const e=Q(x.value);e.length>0&&e[0].focus({preventScroll:!0})}))})),r.onClickOutside(x,(()=>{i.keepOpen||(_.value=!1)}),{ignore:[E]});const q=e.computed((()=>{var e,t;return(null==(t=null==(e=E.value)?void 0:e.getAttribute)?void 0:t.call(e,"id"))??void 0})),K=e.computed((()=>({"aria-controls":v.value,"aria-haspopup":!0,"aria-expanded":_.value}))),{component:M,bus:H}=function({reference:t,id:o,expanded:r,aria:a}){const n=l(),u=e.defineComponent({name:"VvDropdownTriggerProvider",setup(){e.provide(f,{reference:t,id:o,expanded:r,aria:a,bus:n})},render(){var t,o;return e.h(e.Fragment,{},null==(o=(t=this.$slots).default)?void 0:o.call(t))}});return{bus:n,component:u}}({reference:E,id:v,expanded:_,aria:K});H.on("click",F);const{role:U,modifiers:I}=e.toRefs(i),{itemRole:G}=function({role:t,expanded:o}){const r=e.computed((()=>t.value===d.listbox?s.option:s.presentation));return e.provide(p,{role:r,expanded:o}),{itemRole:r}}({role:U,expanded:_}),J=function(t,o,r){return e.computed((()=>{const l={[t]:!0},a="string"==typeof(null==o?void 0:o.value)?o.value.split(" "):null==o?void 0:o.value;return a&&Array.isArray(a)&&a.forEach((e=>{e&&(l[`${t}--${e}`]=!0)})),r&&Object.keys(r.value).forEach((o=>{l[`${t}--${o}`]=e.unref(r.value[o])})),l}))}("vv-dropdown",I,e.computed((()=>({arrow:i.arrow})))),{focused:L}=r.useFocusWithin(x);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"))):[]}r.onKeyStroke("Escape",(e=>{_.value&&(e.preventDefault(),T())})),r.onKeyStroke("ArrowDown",(t=>{_.value&&L.value&&(t.preventDefault(),e.nextTick((()=>{if(L.value){const e=Q(x.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t<e.length-1?e[t+1].focus({preventScroll:!0}):e[0].focus({preventScroll:!0})}})))})),r.onKeyStroke("ArrowUp",(t=>{_.value&&L.value&&(t.preventDefault(),e.nextTick((()=>{if(L.value){const e=Q(x.value);if(0===e.length||!document.activeElement)return;const t=e.indexOf(document.activeElement);t>0?e[t-1].focus({preventScroll:!0}):e[e.length-1].focus({preventScroll:!0})}})))})),r.onKeyStroke([" ","Enter"],(e=>{const t=e.target;_.value&&L.value&&t&&(null==t||t.click())}));const X={"before-enter":()=>{u(_.value?"beforeExpand":"beforeCollapse"),u("before-enter")},"after-leave":()=>{u(_.value?"afterExpand":"afterCollapse"),u("after-leave")},enter:()=>{u("enter")},"after-enter":()=>{u("after-enter")},"enter-cancelled":()=>{u("enter-cancelled")},"before-leave":()=>{u("before-leave")},leave:()=>{u("leave")},"leave-cancelled":()=>{u("leave-cancelled")}};return(t,o)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createVNode(e.unref(M),null,{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",e.normalizeProps(e.guardReactiveProps({init:W,show:R,hide:T,toggle:F,expanded:e.unref(_),aria:e.unref(K)})))])),_:3}),e.createVNode(e.Transition,e.mergeProps({name:t.transitionName},e.toHandlers(X)),{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"floatingEl",ref:x,style:e.normalizeStyle(e.unref(C)),class:e.normalizeClass(e.unref(J))},[i.arrow?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"arrowEl",ref:w,style:e.normalizeStyle(e.unref(A)),class:"vv-dropdown__arrow"},null,4)):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"before",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(_)}))),e.createElementVNode("div",e.mergeProps(e.unref(m),{id:e.unref(v),ref_key:"listEl",ref:S,tabindex:e.unref(_)?void 0:-1,role:e.unref(U),"aria-labelledby":e.unref(q),class:"vv-dropdown__list"}),[e.renderSlot(t.$slots,"items",e.normalizeProps(e.guardReactiveProps({role:e.unref(G)})))],16,g),e.renderSlot(t.$slots,"after",e.normalizeProps(e.guardReactiveProps({expanded:e.unref(_)})))],6),[[e.vShow,e.unref(_)]])])),_:3},16,["name"])],64))}})}));
@@ -1,9 +1,5 @@
1
1
  import type { Ref } from 'vue';
2
2
  declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
3
- modifiers: {
4
- type: globalThis.PropType<string | string[]>;
5
- default: string;
6
- };
7
3
  modelValue: {
8
4
  type: BooleanConstructor;
9
5
  default: undefined;
@@ -17,6 +13,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
17
13
  default: import("../../constants").DropdownRole;
18
14
  validator: (value: import("../../constants").DropdownRole) => boolean;
19
15
  };
16
+ modifiers: globalThis.PropType<string | string[]>;
20
17
  placement: {
21
18
  type: globalThis.PropType<"left" | "right" | "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end" | "right-start" | "right-end">;
22
19
  default: import("../../constants").Side;
@@ -113,11 +110,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
113
110
  hide: () => void;
114
111
  init: (el: HTMLElement) => void;
115
112
  customPosition: Ref<boolean>;
116
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "beforeExpand" | "beforeCollapse" | "afterExpand" | "afterCollapse")[], "update:modelValue" | "beforeExpand" | "beforeCollapse" | "afterExpand" | "afterCollapse", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
117
- modifiers: {
118
- type: globalThis.PropType<string | string[]>;
119
- default: string;
120
- };
113
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("update:modelValue" | "before-enter" | "after-leave" | "enter" | "after-enter" | "enter-cancelled" | "before-leave" | "leave" | "leave-cancelled" | "beforeExpand" | "beforeCollapse" | "afterExpand" | "afterCollapse")[], "update:modelValue" | "before-enter" | "after-leave" | "enter" | "after-enter" | "enter-cancelled" | "before-leave" | "leave" | "leave-cancelled" | "beforeExpand" | "beforeCollapse" | "afterExpand" | "afterCollapse", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
121
114
  modelValue: {
122
115
  type: BooleanConstructor;
123
116
  default: undefined;
@@ -131,6 +124,7 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
131
124
  default: import("../../constants").DropdownRole;
132
125
  validator: (value: import("../../constants").DropdownRole) => boolean;
133
126
  };
127
+ modifiers: globalThis.PropType<string | string[]>;
134
128
  placement: {
135
129
  type: globalThis.PropType<"left" | "right" | "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end" | "right-start" | "right-end">;
136
130
  default: import("../../constants").Side;
@@ -222,7 +216,15 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
222
216
  };
223
217
  id: (StringConstructor | NumberConstructor)[];
224
218
  }>> & {
219
+ onEnter?: ((...args: any[]) => any) | undefined;
220
+ onLeave?: ((...args: any[]) => any) | undefined;
225
221
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
222
+ "onBefore-enter"?: ((...args: any[]) => any) | undefined;
223
+ "onAfter-leave"?: ((...args: any[]) => any) | undefined;
224
+ "onAfter-enter"?: ((...args: any[]) => any) | undefined;
225
+ "onEnter-cancelled"?: ((...args: any[]) => any) | undefined;
226
+ "onBefore-leave"?: ((...args: any[]) => any) | undefined;
227
+ "onLeave-cancelled"?: ((...args: any[]) => any) | undefined;
226
228
  onBeforeExpand?: ((...args: any[]) => any) | undefined;
227
229
  onBeforeCollapse?: ((...args: any[]) => any) | undefined;
228
230
  onAfterExpand?: ((...args: any[]) => any) | undefined;
@@ -237,7 +239,6 @@ declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
237
239
  }> | undefined;
238
240
  reference: HTMLElement | null;
239
241
  modelValue: boolean;
240
- modifiers: string | string[];
241
242
  role: "listbox" | "menu";
242
243
  flip: boolean | Partial<import("@floating-ui/vue").FlipOptions & {
243
244
  rootBoundary: import("@floating-ui/vue").RootBoundary;
@@ -1,13 +1,6 @@
1
1
  import type { PropType } from 'vue';
2
2
  import { DropdownRole } from '../../constants';
3
3
  export declare const VvDropdownProps: {
4
- /**
5
- * Component BEM modifiers
6
- */
7
- modifiers: {
8
- type: PropType<string | string[]>;
9
- default: string;
10
- };
11
4
  /**
12
5
  * Show / hide dropdown programmatically
13
6
  */
@@ -30,6 +23,7 @@ export declare const VvDropdownProps: {
30
23
  default: DropdownRole;
31
24
  validator: (value: DropdownRole) => boolean;
32
25
  };
26
+ modifiers: PropType<string | string[]>;
33
27
  placement: {
34
28
  type: PropType<"left" | "right" | "top" | "bottom" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "left-start" | "left-end" | "right-start" | "right-end">;
35
29
  default: import("../../constants").Side;
@@ -2333,13 +2333,7 @@ const VvComboboxProps = {
2333
2333
  const VvDropdownProps = {
2334
2334
  ...IdProps,
2335
2335
  ...DropdownProps,
2336
- /**
2337
- * Component BEM modifiers
2338
- */
2339
- modifiers: {
2340
- type: [String, Array],
2341
- default: "mobile"
2342
- },
2336
+ ...ModifiersProps,
2343
2337
  /**
2344
2338
  * Show / hide dropdown programmatically
2345
2339
  */
@@ -2425,7 +2419,15 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2425
2419
  "beforeExpand",
2426
2420
  "beforeCollapse",
2427
2421
  "afterExpand",
2428
- "afterCollapse"
2422
+ "afterCollapse",
2423
+ "before-enter",
2424
+ "after-leave",
2425
+ "enter",
2426
+ "after-enter",
2427
+ "enter-cancelled",
2428
+ "before-leave",
2429
+ "leave",
2430
+ "leave-cancelled"
2429
2431
  ],
2430
2432
  setup(__props, { expose: __expose, emit }) {
2431
2433
  const props = __props;
@@ -2729,11 +2731,33 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2729
2731
  htmlEl == null ? void 0 : htmlEl.click();
2730
2732
  }
2731
2733
  });
2732
- const onTransitionBeforeEnter = () => {
2733
- emit(expanded.value ? "beforeExpand" : "beforeCollapse");
2734
- };
2735
- const onTransitionAfterLeave = () => {
2736
- emit(expanded.value ? "afterExpand" : "afterCollapse");
2734
+ const dropdownTransitionHandlers = {
2735
+ "before-enter": () => {
2736
+ emit(expanded.value ? "beforeExpand" : "beforeCollapse");
2737
+ emit("before-enter");
2738
+ },
2739
+ "after-leave": () => {
2740
+ emit(expanded.value ? "afterExpand" : "afterCollapse");
2741
+ emit("after-leave");
2742
+ },
2743
+ enter: () => {
2744
+ emit("enter");
2745
+ },
2746
+ "after-enter": () => {
2747
+ emit("after-enter");
2748
+ },
2749
+ "enter-cancelled": () => {
2750
+ emit("enter-cancelled");
2751
+ },
2752
+ "before-leave": () => {
2753
+ emit("before-leave");
2754
+ },
2755
+ leave: () => {
2756
+ emit("leave");
2757
+ },
2758
+ "leave-cancelled": () => {
2759
+ emit("leave-cancelled");
2760
+ }
2737
2761
  };
2738
2762
  return (_ctx, _cache) => {
2739
2763
  return openBlock(), createElementBlock(Fragment, null, [
@@ -2743,10 +2767,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2743
2767
  ]),
2744
2768
  _: 3
2745
2769
  }),
2746
- createVNode(Transition, mergeProps({ name: _ctx.transitionName }, toHandlers({
2747
- beforeEnter: onTransitionBeforeEnter,
2748
- onAfterLeave: onTransitionAfterLeave
2749
- })), {
2770
+ createVNode(Transition, mergeProps({ name: _ctx.transitionName }, toHandlers(dropdownTransitionHandlers)), {
2750
2771
  default: withCtx(() => [
2751
2772
  withDirectives(createElementVNode("div", {
2752
2773
  ref_key: "floatingEl",
@@ -3809,7 +3830,19 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3809
3830
  };
3810
3831
  }
3811
3832
  });
3812
- const VvDialogEvents = ["open", "close", "update:modelValue"];
3833
+ const VvDialogEvents = [
3834
+ "open",
3835
+ "close",
3836
+ "update:modelValue",
3837
+ "before-enter",
3838
+ "after-leave",
3839
+ "enter",
3840
+ "after-enter",
3841
+ "enter-cancelled",
3842
+ "before-leave",
3843
+ "leave",
3844
+ "leave-cancelled"
3845
+ ];
3813
3846
  const VvDialogProps = {
3814
3847
  ...IdProps,
3815
3848
  /**
@@ -3886,11 +3919,31 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3886
3919
  var _a;
3887
3920
  (_a = dialogEl.value) == null ? void 0 : _a.showModal();
3888
3921
  emit("open");
3922
+ emit("before-enter");
3889
3923
  },
3890
3924
  "after-leave": () => {
3891
3925
  var _a;
3892
3926
  (_a = dialogEl.value) == null ? void 0 : _a.close();
3893
3927
  emit("close");
3928
+ emit("after-leave");
3929
+ },
3930
+ enter: () => {
3931
+ emit("enter");
3932
+ },
3933
+ "after-enter": () => {
3934
+ emit("after-enter");
3935
+ },
3936
+ "enter-cancelled": () => {
3937
+ emit("enter-cancelled");
3938
+ },
3939
+ "before-leave": () => {
3940
+ emit("before-leave");
3941
+ },
3942
+ leave: () => {
3943
+ emit("leave");
3944
+ },
3945
+ "leave-cancelled": () => {
3946
+ emit("leave-cancelled");
3894
3947
  }
3895
3948
  };
3896
3949
  onClickOutside(modalWrapper, () => {