"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9504],{89504:function(e,t,r){r.d(t,{ArtistForm:function(){return w}});var n=r(57437),a=r(2265),i=r(99376),s=r(29501),o=r(13590),l=r(91115),d=r(62869),c=r(95186),u=r(76818),f=r(26815),p=r(66070),m=r(35974),h=r(1828),v=r(99397),g=r(32489),x=r(17689),b=r(35153),y=r(44444);let j=l.z.object({name:l.z.string().min(1,"Name is required"),bio:l.z.string().min(10,"Bio must be at least 10 characters"),specialties:l.z.array(l.z.string()).min(1,"At least one specialty is required"),instagramHandle:l.z.string().optional(),hourlyRate:l.z.number().min(0).optional(),isActive:l.z.boolean().default(!0),email:l.z.string().email().optional()});function w(e){let{artist:t,onSuccess:r}=e,l=(0,i.useRouter)(),{toast:w}=(0,b.pm)(),[N,k]=(0,a.useState)(!1),[S,A]=(0,a.useState)(""),{uploadFiles:C,progress:E,isUploading:P,error:_,clearProgress:z}=(0,y.FL)({maxFiles:10,maxSize:5242880,allowedTypes:["image/jpeg","image/png","image/webp"]}),{register:O,handleSubmit:T,watch:R,setValue:I,formState:{errors:F}}=(0,s.cI)({resolver:(0,o.F)(j),defaultValues:{name:(null==t?void 0:t.name)||"",bio:(null==t?void 0:t.bio)||"",specialties:(null==t?void 0:t.specialties)?"string"==typeof t.specialties?JSON.parse(t.specialties):t.specialties:[],instagramHandle:(null==t?void 0:t.instagramHandle)||"",hourlyRate:(null==t?void 0:t.hourlyRate)||void 0,isActive:(null==t?void 0:t.isActive)!==!1,email:""}}),M=R("specialties"),D=()=>{S.trim()&&!M.includes(S.trim())&&(I("specialties",[...M,S.trim()]),A(""))},U=e=>{I("specialties",M.filter(t=>t!==e))},H=async e=>{if(!e||0===e.length)return;let r=Array.from(e);await C(r,{keyPrefix:t?"portfolio/".concat(t.id):"temp-portfolio"})},Z=async e=>{k(!0);try{let n=t?"/api/artists/".concat(t.id):"/api/artists",a=await fetch(n,{method:t?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!a.ok){let e=await a.json();throw Error(e.error||"Failed to save artist")}let i=await a.json();w({title:"Success",description:t?"Artist updated successfully":"Artist created successfully"}),null==r||r(),t||l.push("/admin/artists/".concat(i.artist.id))}catch(e){console.error("Form submission error:",e),w({title:"Error",description:e instanceof Error?e.message:"Failed to save artist",variant:"destructive"})}finally{k(!1)}};return(0,n.jsxs)("div",{className:"space-y-6",children:[(0,n.jsxs)(p.Zb,{children:[(0,n.jsx)(p.Ol,{children:(0,n.jsx)(p.ll,{children:t?"Edit Artist":"Create New Artist"})}),(0,n.jsx)(p.aY,{children:(0,n.jsxs)("form",{onSubmit:T(Z),className:"space-y-6",children:[(0,n.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(f._,{htmlFor:"name",children:"Name *"}),(0,n.jsx)(c.I,{id:"name",...O("name"),placeholder:"Artist name"}),F.name&&(0,n.jsx)("p",{className:"text-sm text-red-600",children:F.name.message})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(f._,{htmlFor:"email",children:"Email"}),(0,n.jsx)(c.I,{id:"email",type:"email",...O("email"),placeholder:"artist@unitedtattoo.com"}),F.email&&(0,n.jsx)("p",{className:"text-sm text-red-600",children:F.email.message})]})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(f._,{htmlFor:"bio",children:"Bio *"}),(0,n.jsx)(u.g,{id:"bio",...O("bio"),placeholder:"Tell us about this artist...",rows:4}),F.bio&&(0,n.jsx)("p",{className:"text-sm text-red-600",children:F.bio.message})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(f._,{children:"Specialties *"}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(c.I,{value:S,onChange:e=>A(e.target.value),placeholder:"Add a specialty",onKeyPress:e=>"Enter"===e.key&&(e.preventDefault(),D())}),(0,n.jsx)(d.z,{type:"button",onClick:D,size:"sm",children:(0,n.jsx)(v.Z,{className:"h-4 w-4"})})]}),(0,n.jsx)("div",{className:"flex flex-wrap gap-2",children:M.map(e=>(0,n.jsxs)(m.C,{variant:"secondary",className:"flex items-center gap-1",children:[e,(0,n.jsx)("button",{type:"button",onClick:()=>U(e),className:"ml-1 hover:text-red-600",children:(0,n.jsx)(g.Z,{className:"h-3 w-3"})})]},e))}),F.specialties&&(0,n.jsx)("p",{className:"text-sm text-red-600",children:F.specialties.message})]}),(0,n.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(f._,{htmlFor:"instagramHandle",children:"Instagram Handle"}),(0,n.jsx)(c.I,{id:"instagramHandle",...O("instagramHandle"),placeholder:"@username"})]}),(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)(f._,{htmlFor:"hourlyRate",children:"Hourly Rate ($)"}),(0,n.jsx)(c.I,{id:"hourlyRate",type:"number",step:"0.01",...O("hourlyRate",{valueAsNumber:!0}),placeholder:"150.00"})]})]}),(0,n.jsxs)("div",{className:"flex items-center space-x-2",children:[(0,n.jsx)(h.r,{id:"isActive",checked:R("isActive"),onCheckedChange:e=>I("isActive",e)}),(0,n.jsx)(f._,{htmlFor:"isActive",children:"Active Artist"})]}),(0,n.jsxs)("div",{className:"flex justify-end space-x-2",children:[(0,n.jsx)(d.z,{type:"button",variant:"outline",onClick:()=>l.back(),children:"Cancel"}),(0,n.jsx)(d.z,{type:"submit",disabled:N,children:N?"Saving...":t?"Update Artist":"Create Artist"})]})]})})]}),t&&(0,n.jsxs)(p.Zb,{children:[(0,n.jsx)(p.Ol,{children:(0,n.jsx)(p.ll,{children:"Portfolio Images"})}),(0,n.jsx)(p.aY,{children:(0,n.jsxs)("div",{className:"space-y-4",children:[(0,n.jsxs)("div",{className:"border-2 border-dashed border-gray-300 rounded-lg p-6 text-center",children:[(0,n.jsx)(x.Z,{className:"mx-auto h-12 w-12 text-gray-400"}),(0,n.jsxs)("div",{className:"mt-4",children:[(0,n.jsxs)(f._,{htmlFor:"portfolio-upload",className:"cursor-pointer",children:[(0,n.jsx)("span",{className:"mt-2 block text-sm font-medium text-gray-900",children:"Upload portfolio images"}),(0,n.jsx)("span",{className:"mt-1 block text-sm text-gray-500",children:"PNG, JPG, WebP up to 5MB each"})]}),(0,n.jsx)(c.I,{id:"portfolio-upload",type:"file",multiple:!0,accept:"image/*",className:"hidden",onChange:e=>H(e.target.files)})]})]}),E.length>0&&(0,n.jsxs)("div",{className:"space-y-2",children:[(0,n.jsx)("h4",{className:"font-medium",children:"Upload Progress"}),E.map(e=>(0,n.jsxs)("div",{className:"flex items-center justify-between p-2 bg-gray-50 rounded",children:[(0,n.jsx)("span",{className:"text-sm",children:e.filename}),(0,n.jsxs)("div",{className:"flex items-center gap-2",children:["uploading"===e.status&&(0,n.jsx)("div",{className:"w-20 bg-gray-200 rounded-full h-2",children:(0,n.jsx)("div",{className:"bg-blue-600 h-2 rounded-full transition-all",style:{width:"".concat(e.progress,"%")}})}),"complete"===e.status&&(0,n.jsx)(m.C,{variant:"default",children:"Complete"}),"error"===e.status&&(0,n.jsx)(m.C,{variant:"destructive",children:"Error"})]})]},e.id)),(0,n.jsx)(d.z,{type:"button",variant:"outline",size:"sm",onClick:z,children:"Clear Progress"})]}),_&&(0,n.jsx)("div",{className:"p-3 bg-red-50 border border-red-200 rounded text-red-700 text-sm",children:_})]})})]})]})}},35974:function(e,t,r){r.d(t,{C:function(){return l}});var n=r(57437);r(2265);var a=r(37053),i=r(90535),s=r(94508);let o=(0,i.j)("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",secondary:"border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",destructive:"border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"}},defaultVariants:{variant:"default"}});function l(e){let{className:t,variant:r,asChild:i=!1,...l}=e,d=i?a.g7:"span";return(0,n.jsx)(d,{"data-slot":"badge",className:(0,s.cn)(o({variant:r}),t),...l})}},62869:function(e,t,r){r.d(t,{d:function(){return o},z:function(){return l}});var n=r(57437);r(2265);var a=r(37053),i=r(90535),s=r(94508);let o=(0,i.j)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",{variants:{variant:{default:"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90",destructive:"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",outline:"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}});function l(e){let{className:t,variant:r,size:i,asChild:l=!1,...d}=e,c=l?a.g7:"button";return(0,n.jsx)(c,{"data-slot":"button",className:(0,s.cn)(o({variant:r,size:i,className:t})),...d})}},66070:function(e,t,r){r.d(t,{Ol:function(){return s},SZ:function(){return l},Zb:function(){return i},aY:function(){return d},eW:function(){return c},ll:function(){return o}});var n=r(57437);r(2265);var a=r(94508);function i(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"card",className:(0,a.cn)("bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm",t),...r})}function s(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"card-header",className:(0,a.cn)("@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",t),...r})}function o(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"card-title",className:(0,a.cn)("leading-none font-semibold",t),...r})}function l(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"card-description",className:(0,a.cn)("text-muted-foreground text-sm",t),...r})}function d(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"card-content",className:(0,a.cn)("px-6",t),...r})}function c(e){let{className:t,...r}=e;return(0,n.jsx)("div",{"data-slot":"card-footer",className:(0,a.cn)("flex items-center px-6 [.border-t]:pt-6",t),...r})}},95186:function(e,t,r){r.d(t,{I:function(){return i}});var n=r(57437);r(2265);var a=r(94508);function i(e){let{className:t,type:r,...i}=e;return(0,n.jsx)("input",{type:r,"data-slot":"input",className:(0,a.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",t),...i})}},26815:function(e,t,r){r.d(t,{_:function(){return s}});var n=r(57437);r(2265);var a=r(3771),i=r(94508);function s(e){let{className:t,...r}=e;return(0,n.jsx)(a.f,{"data-slot":"label",className:(0,i.cn)("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",t),...r})}},1828:function(e,t,r){r.d(t,{r:function(){return s}});var n=r(57437);r(2265);var a=r(88447),i=r(94508);function s(e){let{className:t,...r}=e;return(0,n.jsx)(a.fC,{"data-slot":"switch",className:(0,i.cn)("peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",t),...r,children:(0,n.jsx)(a.bU,{"data-slot":"switch-thumb",className:(0,i.cn)("bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}},76818:function(e,t,r){r.d(t,{g:function(){return i}});var n=r(57437);r(2265);var a=r(94508);function i(e){let{className:t,...r}=e;return(0,n.jsx)("textarea",{"data-slot":"textarea",className:(0,a.cn)("border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",t),...r})}},44444:function(e,t,r){r.d(t,{FL:function(){return a}});var n=r(2265);function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},[t,r]=(0,n.useState)([]),[a,i]=(0,n.useState)(!1),[s,o]=(0,n.useState)(null),{maxFiles:l=10,maxSize:d=10485760,allowedTypes:c=["image/jpeg","image/png","image/webp","image/gif"],onProgress:u,onComplete:f,onError:p}=e,m=(0,n.useCallback)(e=>{let t=[],r=[];if(e.length>l)return r.push("Maximum ".concat(l," files allowed")),{valid:t,errors:r};for(let n of e){if(n.size>d){r.push("".concat(n.name,": File size exceeds ").concat(Math.round(d/1024/1024),"MB limit"));continue}if(!c.includes(n.type)){r.push("".concat(n.name,": File type ").concat(n.type," not allowed"));continue}t.push(n)}return{valid:t,errors:r}},[l,d,c]),h=(0,n.useCallback)(async(e,t)=>{let n="".concat(Date.now(),"-").concat(Math.random().toString(36).substring(2)),a={id:n,filename:e.name,progress:0,status:"uploading"};r(e=>[...e,a]),o(null);try{let a=setInterval(()=>{r(e=>e.map(e=>e.id===n&&e.progress<90?{...e,progress:Math.min(90,e.progress+20*Math.random())}:e))},200),i=new FormData;i.append("file",e),t&&i.append("key",t);let s=await fetch("/api/upload",{method:"POST",body:i});clearInterval(a);let o=await s.json();if(o.success)return r(e=>e.map(e=>e.id===n?{...e,progress:100,status:"complete",url:o.url}:e)),o;return r(e=>e.map(e=>e.id===n?{...e,status:"error",error:o.error}:e)),{success:!1,error:o.error||"Upload failed"}}catch(t){let e=t instanceof Error?t.message:"Upload failed";return r(t=>t.map(t=>t.id===n?{...t,status:"error",error:e}:t)),{success:!1,error:e}}},[]);return{uploadFiles:(0,n.useCallback)(async(e,r)=>{i(!0),o(null);try{let{valid:n,errors:a}=m(e);if(a.length>0){let e=a.join(", ");o(e),null==p||p(e);return}if(0===n.length){o("No valid files to upload"),null==p||p("No valid files to upload");return}let i=[];for(let e of n){let t=(null==r?void 0:r.keyPrefix)?"".concat(r.keyPrefix,"/").concat(Date.now(),"-").concat(e.name):void 0,n=await h(e,t);i.push(n)}let s=i.filter(e=>e.success).map(e=>{var t,r,a;return{filename:(null===(t=n.find(t=>i.indexOf(e)===n.indexOf(t)))||void 0===t?void 0:t.name)||"",url:e.url||"",key:e.key||"",size:(null===(r=n.find(t=>i.indexOf(e)===n.indexOf(t)))||void 0===r?void 0:r.size)||0,mimeType:(null===(a=n.find(t=>i.indexOf(e)===n.indexOf(t)))||void 0===a?void 0:a.type)||""}}),l=i.map((e,t)=>({result:e,file:n[t]})).filter(e=>{let{result:t}=e;return!t.success}).map(e=>{let{result:t,file:r}=e;return{filename:r.name,error:t.error||"Upload failed"}}),d={successful:s,failed:l,total:n.length};null==f||f(d);let c=[...t];null==u||u(c)}catch(t){let e=t instanceof Error?t.message:"Upload failed";o(e),null==p||p(e)}finally{i(!1)}},[t,m,h,u,f,p]),uploadSingleFile:h,progress:t,isUploading:a,error:s,clearProgress:(0,n.useCallback)(()=>{r([]),o(null)},[]),removeFile:(0,n.useCallback)(e=>{r(t=>t.filter(t=>t.id!==e))},[])}}},35153:function(e,t,r){r.d(t,{pm:function(){return f}});var n=r(2265);let a=0,i=new Map,s=e=>{if(i.has(e))return;let t=setTimeout(()=>{i.delete(e),c({type:"REMOVE_TOAST",toastId:e})},1e6);i.set(e,t)},o=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,1)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case"DISMISS_TOAST":{let{toastId:r}=t;return r?s(r):e.toasts.forEach(e=>{s(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===r||void 0===r?{...e,open:!1}:e)}}case"REMOVE_TOAST":if(void 0===t.toastId)return{...e,toasts:[]};return{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},l=[],d={toasts:[]};function c(e){d=o(d,e),l.forEach(e=>{e(d)})}function u(e){let{...t}=e,r=(a=(a+1)%Number.MAX_SAFE_INTEGER).toString(),n=()=>c({type:"DISMISS_TOAST",toastId:r});return c({type:"ADD_TOAST",toast:{...t,id:r,open:!0,onOpenChange:e=>{e||n()}}}),{id:r,dismiss:n,update:e=>c({type:"UPDATE_TOAST",toast:{...e,id:r}})}}function f(){let[e,t]=n.useState(d);return n.useEffect(()=>(l.push(t),()=>{let e=l.indexOf(t);e>-1&&l.splice(e,1)}),[e]),{...e,toast:u,dismiss:e=>c({type:"DISMISS_TOAST",toastId:e})}}},94508:function(e,t,r){r.d(t,{cn:function(){return i}});var n=r(61994),a=r(53335);function i(){for(var e=arguments.length,t=Array(e),r=0;r{let r=!1,n=e.map(e=>{let n=a(e,t);return r||"function"!=typeof n||(r=!0),n});if(r)return()=>{for(let t=0;t{t.current=e}),n.useMemo(()=>(...e)=>t.current?.(...e),[])}var l=globalThis?.document?n.useLayoutEffect:()=>{};r(54887);var d=n.forwardRef((e,t)=>{let{children:r,...a}=e,i=n.Children.toArray(r),o=i.find(f);if(o){let e=o.props.children,r=i.map(t=>t!==o?t:n.Children.count(e)>1?n.Children.only(null):n.isValidElement(e)?e.props.children:null);return(0,s.jsx)(c,{...a,ref:t,children:n.isValidElement(e)?n.cloneElement(e,void 0,r):null})}return(0,s.jsx)(c,{...a,ref:t,children:r})});d.displayName="Slot";var c=n.forwardRef((e,t)=>{let{children:r,...a}=e;if(n.isValidElement(r)){let e,s;let o=(e=Object.getOwnPropertyDescriptor(r.props,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning?r.ref:(e=Object.getOwnPropertyDescriptor(r,"ref")?.get)&&"isReactWarning"in e&&e.isReactWarning?r.props.ref:r.props.ref||r.ref;return n.cloneElement(r,{...function(e,t){let r={...t};for(let n in t){let a=e[n],i=t[n];/^on[A-Z]/.test(n)?a&&i?r[n]=(...e)=>{i(...e),a(...e)}:a&&(r[n]=a):"style"===n?r[n]={...a,...i}:"className"===n&&(r[n]=[a,i].filter(Boolean).join(" "))}return{...e,...r}}(a,r.props),ref:t?i(t,o):o})}return n.Children.count(r)>1?n.Children.only(null):null});c.displayName="SlotClone";var u=({children:e})=>(0,s.jsx)(s.Fragment,{children:e});function f(e){return n.isValidElement(e)&&e.type===u}var p=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"].reduce((e,t)=>{let r=n.forwardRef((e,r)=>{let{asChild:n,...a}=e,i=n?d:t;return"undefined"!=typeof window&&(window[Symbol.for("radix-ui")]=!0),(0,s.jsx)(i,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),m="Switch",[h,v]=function(e,t=[]){let r=[],a=()=>{let t=r.map(e=>n.createContext(e));return function(r){let a=r?.[e]||t;return n.useMemo(()=>({[`__scope${e}`]:{...r,[e]:a}}),[r,a])}};return a.scopeName=e,[function(t,a){let i=n.createContext(a),o=r.length;r=[...r,a];let l=t=>{let{scope:r,children:a,...l}=t,d=r?.[e]?.[o]||i,c=n.useMemo(()=>l,Object.values(l));return(0,s.jsx)(d.Provider,{value:c,children:a})};return l.displayName=t+"Provider",[l,function(r,s){let l=s?.[e]?.[o]||i,d=n.useContext(l);if(d)return d;if(void 0!==a)return a;throw Error(`\`${r}\` must be used within \`${t}\``)}]},function(...e){let t=e[0];if(1===e.length)return t;let r=()=>{let r=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let a=r.reduce((t,{useScope:r,scopeName:n})=>{let a=r(e)[`__scope${n}`];return{...t,...a}},{});return n.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return r.scopeName=t.scopeName,r}(a,...t)]}(m),[g,x]=h(m),b=n.forwardRef((e,t)=>{let{__scopeSwitch:r,name:a,checked:l,defaultChecked:d,required:c,disabled:u,value:f="on",onCheckedChange:m,form:h,...v}=e,[x,b]=n.useState(null),y=function(...e){return n.useCallback(i(...e),e)}(t,e=>b(e)),j=n.useRef(!1),k=!x||h||!!x.closest("form"),[S=!1,A]=function({prop:e,defaultProp:t,onChange:r=()=>{}}){let[a,i]=function({defaultProp:e,onChange:t}){let r=n.useState(e),[a]=r,i=n.useRef(a),s=o(t);return n.useEffect(()=>{i.current!==a&&(s(a),i.current=a)},[a,i,s]),r}({defaultProp:t,onChange:r}),s=void 0!==e,l=s?e:a,d=o(r);return[l,n.useCallback(t=>{if(s){let r="function"==typeof t?t(e):t;r!==e&&d(r)}else i(t)},[s,e,i,d])]}({prop:l,defaultProp:d,onChange:m});return(0,s.jsxs)(g,{scope:r,checked:S,disabled:u,children:[(0,s.jsx)(p.button,{type:"button",role:"switch","aria-checked":S,"aria-required":c,"data-state":N(S),"data-disabled":u?"":void 0,disabled:u,value:f,...v,ref:y,onClick:function(e,t,{checkForDefaultPrevented:r=!0}={}){return function(n){if(e?.(n),!1===r||!n.defaultPrevented)return t?.(n)}}(e.onClick,e=>{A(e=>!e),k&&(j.current=e.isPropagationStopped(),j.current||e.stopPropagation())})}),k&&(0,s.jsx)(w,{control:x,bubbles:!j.current,name:a,value:f,checked:S,required:c,disabled:u,form:h,style:{transform:"translateX(-100%)"}})]})});b.displayName=m;var y="SwitchThumb",j=n.forwardRef((e,t)=>{let{__scopeSwitch:r,...n}=e,a=x(y,r);return(0,s.jsx)(p.span,{"data-state":N(a.checked),"data-disabled":a.disabled?"":void 0,...n,ref:t})});j.displayName=y;var w=e=>{let{control:t,checked:r,bubbles:a=!0,...i}=e,o=n.useRef(null),d=function(e){let t=n.useRef({value:e,previous:e});return n.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}(r),c=function(e){let[t,r]=n.useState(void 0);return l(()=>{if(e){r({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{let n,a;if(!Array.isArray(t)||!t.length)return;let i=t[0];if("borderBoxSize"in i){let e=i.borderBoxSize,t=Array.isArray(e)?e[0]:e;n=t.inlineSize,a=t.blockSize}else n=e.offsetWidth,a=e.offsetHeight;r({width:n,height:a})});return t.observe(e,{box:"border-box"}),()=>t.unobserve(e)}r(void 0)},[e]),t}(t);return n.useEffect(()=>{let e=o.current,t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(d!==r&&t){let n=new Event("click",{bubbles:a});t.call(e,r),e.dispatchEvent(n)}},[d,r,a]),(0,s.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:r,...i,tabIndex:-1,ref:o,style:{...e.style,...c,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})};function N(e){return e?"checked":"unchecked"}var k=b,S=j}}]);