B57PMWCO.js
5.56 KB
import{T as L,az as N,U,V as H,W as K,X as W,aW as Y,aL as B,aK as G,o as l,k as r,w as n,f as m,g as e,S as x,bb as M,aO as X,x as d,l as b,t as k,n as i,c as v,Y as f,_ as J,ag as C,ah as P,aY as Q,F as Z,s as O,a0 as S}from"./BtEn9SvP.js";import{a as _,e as w,f as q,g as ee,c as te,d as ae,D as T,b as le}from"./CKCLIpbs.js";import{p as se}from"./3laQJA1P.js";const oe={slots:{overlay:"fixed inset-0",content:"bg-default divide-y divide-default flex flex-col focus:outline-none",header:"flex items-center gap-1.5 p-4 sm:px-6 min-h-(--ui-header-height)",wrapper:"",body:"flex-1 p-4 sm:p-6",footer:"flex items-center gap-1.5 p-4 sm:px-6",title:"text-highlighted font-semibold",description:"mt-1 text-muted text-sm",close:"absolute top-4 end-4"},variants:{transition:{true:{overlay:"data-[state=open]:animate-[fade-in_200ms_ease-out] data-[state=closed]:animate-[fade-out_200ms_ease-in]",content:"data-[state=open]:animate-[scale-in_200ms_ease-out] data-[state=closed]:animate-[scale-out_200ms_ease-in]"}},fullscreen:{true:{content:"inset-0"},false:{content:"w-[calc(100vw-2rem)] max-w-lg rounded-lg shadow-lg ring ring-default"}},overlay:{true:{overlay:"bg-elevated/75"}},scrollable:{true:{overlay:"overflow-y-auto",content:"relative"},false:{content:"fixed",body:"overflow-y-auto"}}},compoundVariants:[{scrollable:!0,fullscreen:!1,class:{overlay:"grid place-items-center p-4 sm:py-8"}},{scrollable:!1,fullscreen:!1,class:{content:"top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 max-h-[calc(100dvh-2rem)] sm:max-h-[calc(100dvh-4rem)] overflow-hidden"}}]},ce={__name:"UModal",props:{title:{type:String,required:!1},description:{type:String,required:!1},content:{type:Object,required:!1},overlay:{type:Boolean,required:!1,default:!0},scrollable:{type:Boolean,required:!1},transition:{type:Boolean,required:!1,default:!0},fullscreen:{type:Boolean,required:!1},portal:{type:[Boolean,String],required:!1,skipCheck:!0,default:!0},close:{type:[Boolean,Object],required:!1,default:!0},closeIcon:{type:null,required:!1},dismissible:{type:Boolean,required:!1,default:!0},class:{type:null,required:!1},ui:{type:Object,required:!1},open:{type:Boolean,required:!1},defaultOpen:{type:Boolean,required:!1},modal:{type:Boolean,required:!1,default:!0}},emits:["after:leave","after:enter","close:prevent","update:open"],setup(a,{emit:R}){const s=a,g=R,t=L(),{t:V}=N(),D=U(),u=H("modal",s),j=K(W(s,"open","defaultOpen","modal"),g),E=Y(B(()=>s.portal)),F=B(()=>s.content),z=O(()=>s.dismissible?{pointerDownOutside:o=>se(o,{scrollable:s.scrollable})}:["interactOutside","escapeKeyDown"].reduce((p,h)=>(p[h]=y=>{y.preventDefault(),g("close:prevent")},p),{})),[A,$]=G(),c=O(()=>S({extend:S(oe),...D.ui?.modal||{}})({transition:s.transition,fullscreen:s.fullscreen,overlay:s.overlay,scrollable:s.scrollable}));return(o,p)=>(l(),r(e(le),C(P(e(j))),{default:n(({open:h,close:y})=>[m(e(A),null,{default:n(()=>[m(e(_),x({"data-slot":"content",class:c.value.content({class:[!t.default&&s.class,e(u)?.content]})},F.value,{onAfterEnter:p[0]||(p[0]=I=>g("after:enter")),onAfterLeave:p[1]||(p[1]=I=>g("after:leave"))},M(z.value)),{default:n(()=>[!a.title&&!t.title||!a.description&&!t.description||t.content?(l(),r(e(X),{key:0},{default:n(()=>[!a.title&&!t.title?(l(),r(e(w),{key:0})):t.content?(l(),r(e(w),{key:1},{default:n(()=>[d(o.$slots,"title",{},()=>[b(k(a.title),1)])]),_:3})):i("",!0),!a.description&&!t.description?(l(),r(e(q),{key:2})):t.content?(l(),r(e(q),{key:3},{default:n(()=>[d(o.$slots,"description",{},()=>[b(k(a.description),1)])]),_:3})):i("",!0)]),_:3})):i("",!0),d(o.$slots,"content",{close:y},()=>[t.header||a.title||t.title||a.description||t.description||s.close||t.close?(l(),v("div",{key:0,"data-slot":"header",class:f(c.value.header({class:e(u)?.header}))},[d(o.$slots,"header",{close:y},()=>[a.title||t.title||a.description||t.description?(l(),v("div",{key:0,"data-slot":"wrapper",class:f(c.value.wrapper({class:e(u)?.wrapper}))},[a.title||t.title?(l(),r(e(w),{key:0,"data-slot":"title",class:f(c.value.title({class:e(u)?.title}))},{default:n(()=>[d(o.$slots,"title",{},()=>[b(k(a.title),1)])]),_:3},8,["class"])):i("",!0),a.description||t.description?(l(),r(e(q),{key:1,"data-slot":"description",class:f(c.value.description({class:e(u)?.description}))},{default:n(()=>[d(o.$slots,"description",{},()=>[b(k(a.description),1)])]),_:3},8,["class"])):i("",!0)],2)):i("",!0),d(o.$slots,"actions"),s.close||t.close?(l(),r(e(ee),{key:1,"as-child":""},{default:n(()=>[d(o.$slots,"close",{ui:c.value},()=>[s.close?(l(),r(J,x({key:0,icon:a.closeIcon||e(D).ui.icons.close,color:"neutral",variant:"ghost","aria-label":e(V)("modal.close")},typeof s.close=="object"?s.close:{},{"data-slot":"close",class:c.value.close({class:e(u)?.close})}),null,16,["icon","aria-label","class"])):i("",!0)])]),_:2},1024)):i("",!0)])],2)):i("",!0),t.body?(l(),v("div",{key:1,"data-slot":"body",class:f(c.value.body({class:e(u)?.body}))},[d(o.$slots,"body",{close:y})],2)):i("",!0),t.footer?(l(),v("div",{key:2,"data-slot":"footer",class:f(c.value.footer({class:e(u)?.footer}))},[d(o.$slots,"footer",{close:y})],2)):i("",!0)])]),_:2},1040,["class"])]),_:2},1024),t.default?(l(),r(e(te),{key:0,"as-child":"",class:f(s.class)},{default:n(()=>[d(o.$slots,"default",{open:h})]),_:2},1032,["class"])):i("",!0),m(e(ae),C(P(e(E))),{default:n(()=>[m(e(Q),null,{default:n(()=>[a.scrollable?(l(),r(e(T),{key:0,"data-slot":"overlay",class:f(c.value.overlay({class:e(u)?.overlay}))},{default:n(()=>[m(e($))]),_:1},8,["class"])):(l(),v(Z,{key:1},[a.overlay?(l(),r(e(T),{key:0,"data-slot":"overlay",class:f(c.value.overlay({class:e(u)?.overlay}))},null,8,["class"])):i("",!0),m(e($))],64))]),_:1})]),_:1},16)]),_:3},16))}};export{ce as _};