1import{D as vi,t as _t,r as l,E as hr,F as rs,G as ji,H as St,J as dt,K as wi,M as Si,$ as We,N as Ni,P as gt,R as K,Q as lt,T as Bt,U as Ii,V as xs,W as gr,X as xr,Y as Ci,Z as _i,a0 as Xs,a1 as Ai,a2 as fr,j as t,c as we,a as me,a3 as Ks,a4 as ki,b as Ti,C as Di,a5 as Tn,a6 as Ei,a7 as Ri,a8 as Dn,e as Pi,k as X,B as D,f as Je,S as je,g as is,_ as Mi,L as Oi,a9 as En}from"./index-DSd_KA67.js";import{u as Qe}from"./useQuery-DI1zqRFq.js";import{u as J}from"./useMutation-BYp1wGY4.js";import{a as V}from"./api-DEjVNANO.js";import{d as Y,s as ye}from"./toast-1q0BdJuf.js";import{T as br}from"./trash-2-BOS6wA2y.js";import{i as $i,j as Fi,k as Li,l as yr,m as zi,n as Js,o as Ui,p as Vi,q as Ki,r as Bi,s as Hi,t as Wi,u as vr,v as qi,w as Yi,x as Gi,y as Xi,$ as jr,a as wr,h as Ji,z as Qi,A as Zi,B as ea,C as ta}from"./Dialog-ChwbEPk_.js";import{$ as Qs,a as sa,b as na}from"./Modal-DNKE2hrT.js";import{$ as Sr,M as N}from"./index-BcV1WcSQ.js";import{c as ee}from"./createLucideIcon-BC48Drc1.js";import{L as $}from"./index-D1lzWRTp.js";import{C as Ht}from"./check-Cb3RxbSW.js";import{C as ra,I as Nr,T as jt}from"./image-plus-Cc-5sqpi.js";import{T as ue}from"./index-DiimuZUt.js";import{T as ia,$ as aa,d as oa,e as la,I as xe}from"./index-Bv02D27B.js";import{D as ae}from"./index-BkgI3J5k.js";import{C as B}from"./index-DU87hghX.js";import{S as ca}from"./star-CgIEx307.js";import{M as Zs}from"./mail-BSE9dOXW.js";import{S as da,C as Ir,a as ua}from"./smartphone-D52Cb9Qj.js";import{C as ma}from"./ConversationViewDialog-BcLDIsPU.js";import{F as pa}from"./flag-B0l-Zz-F.js";import{A as as,F as ct}from"./AnimatedCheck-Dj9tJPxk.js";import{P as Ze}from"./plus-Bvubtalb.js";import{$ as ha,a as Rn,b as ga}from"./ListBox-a8Ty2P5Q.js";import{S as Cr,a as Pn}from"./surface-CXiMNM_t.js";import{X as Me}from"./x-DEPUe6e3.js";import{T as en}from"./index-CdThcWlI.js";import{S as xa}from"./search-ChBX8pay.js";import{a as tn,C as ve}from"./index-CFkkJ3mT.js";import{a as fa}from"./moderation-Bfr23ug2.js";import{processProfileImage as ba,cropAndProcess as ya}from"./useImageProcessor-CAGfRUnE.js";import{U as sn}from"./upload-DcwzePFb.js";import{S as U}from"./index-1oHjUTyK.js";import{L as se}from"./index-D6zPwYlU.js";import{N as He,S as Re}from"./index-DmJX73cB.js";import{I as fs}from"./ImageCropModal-C8oWw9AN.js";import{S as va}from"./save-8aEuGKmd.js";import{C as Ge}from"./index-BDCF4RGH.js";import{P as ja}from"./pencil-e1xvlYsu.js";import{A as _r}from"./arrow-left-gte9njEQ.js";import{A as wa}from"./arrow-right-DeQur32B.js";import{u as Sa}from"./use_paginated_query-BRxdp19C.js";import{A as Ps}from"./index-B-2pgCUr.js";import{B as Na}from"./ban-CR4U0QKw.js";import{C as Ia}from"./circle-check-big-CA9dxg7G.js";import{S as Ca}from"./send-Dh-YC0GU.js";import"./Label-DRpCpLvD.js";var _a=Object.defineProperty,Aa=(s,n,r)=>n in s?_a(s,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[n]=r,ne=(s,n,r)=>Aa(s,typeof n!="symbol"?n+"":n,r);const ka="https://docs.convex.dev/error#undefined-validator";function Ut(s,n){const r=n!==void 0?` for field "${n}"`:"";throw new Error(`A validator is undefined${r} in ${s}. This is often caused by circular imports. See ${ka} for details.`)}class ke{constructor({isOptional:n}){ne(this,"type"),ne(this,"fieldPaths"),ne(this,"isOptional"),ne(this,"isConvexValidator"),this.isOptional=n,this.isConvexValidator=!0}}class nn extends ke{constructor({isOptional:n,tableName:r}){if(super({isOptional:n}),ne(this,"tableName"),ne(this,"kind","id"),typeof r!="string")throw new Error("v.id(tableName) requires a string");this.tableName=r}get json(){return{type:"id",tableName:this.tableName}}asOptional(){return new nn({isOptional:"optional",tableName:this.tableName})}}class os extends ke{constructor(){super(...arguments),ne(this,"kind","float64")}get json(){return{type:"number"}}asOptional(){return new os({isOptional:"optional"})}}class ls extends ke{constructor(){super(...arguments),ne(this,"kind","int64")}get json(){return{type:"bigint"}}asOptional(){return new ls({isOptional:"optional"})}}class rn extends ke{constructor(){super(...arguments),ne(this,"kind","boolean")}get json(){return{type:this.kind}}asOptional(){return new rn({isOptional:"optional"})}}class an extends ke{constructor(){super(...arguments),ne(this,"kind","bytes")}get json(){return{type:this.kind}}asOptional(){return new an({isOptional:"optional"})}}class on extends ke{constructor(){super(...arguments),ne(this,"kind","string")}get json(){return{type:this.kind}}asOptional(){return new on({isOptional:"optional"})}}class ln extends ke{constructor(){super(...arguments),ne(this,"kind","null")}get json(){return{type:this.kind}}asOptional(){return new ln({isOptional:"optional"})}}class cn extends ke{constructor(){super(...arguments),ne(this,"kind","any")}get json(){return{type:this.kind}}asOptional(){return new cn({isOptional:"optional"})}}class pt extends ke{constructor({isOptional:n,fields:r}){super({isOptional:n}),ne(this,"fields"),ne(this,"kind","object"),globalThis.Object.entries(r).forEach(([i,a])=>{if(a===void 0&&Ut("v.object()",i),!a.isConvexValidator)throw new Error("v.object() entries must be validators")}),this.fields=r}get json(){return{type:this.kind,value:globalThis.Object.fromEntries(globalThis.Object.entries(this.fields).map(([n,r])=>[n,{fieldType:r.json,optional:r.isOptional==="optional"}]))}}asOptional(){return new pt({isOptional:"optional",fields:this.fields})}omit(...n){const r={...this.fields};for(const i of n)delete r[i];return new pt({isOptional:this.isOptional,fields:r})}pick(...n){const r={};for(const i of n)r[i]=this.fields[i];return new pt({isOptional:this.isOptional,fields:r})}partial(){const n={};for(const[r,i]of globalThis.Object.entries(this.fields))n[r]=i.asOptional();return new pt({isOptional:this.isOptional,fields:n})}extend(n){return new pt({isOptional:this.isOptional,fields:{...this.fields,...n}})}}class dn extends ke{constructor({isOptional:n,value:r}){if(super({isOptional:n}),ne(this,"value"),ne(this,"kind","literal"),typeof r!="string"&&typeof r!="boolean"&&typeof r!="number"&&typeof r!="bigint")throw new Error("v.literal(value) must be a string, number, or boolean");this.value=r}get json(){return{type:this.kind,value:vi(this.value)}}asOptional(){return new dn({isOptional:"optional",value:this.value})}}class un extends ke{constructor({isOptional:n,element:r}){super({isOptional:n}),ne(this,"element"),ne(this,"kind","array"),r===void 0&&Ut("v.array()"),this.element=r}get json(){return{type:this.kind,value:this.element.json}}asOptional(){return new un({isOptional:"optional",element:this.element})}}class mn extends ke{constructor({isOptional:n,key:r,value:i}){if(super({isOptional:n}
1),ne(this,"key"),ne(this,"value"),ne(this,"kind","record"),r===void 0&&Ut("v.record()","key"),i===void 0&&Ut("v.record()","value"),r.isOptional==="optional")throw new Error("Record validator cannot have optional keys");if(i.isOptional==="optional")throw new Error("Record validator cannot have optional values");if(!r.isConvexValidator||!i.isConvexValidator)throw new Error("Key and value of v.record() but be validators");this.key=r,this.value=i}get json(){return{type:this.kind,keys:this.key.json,values:{fieldType:this.value.json,optional:!1}}}asOptional(){return new mn({isOptional:"optional",key:this.key,value:this.value})}}class pn extends ke{constructor({isOptional:n,members:r}){super({isOptional:n}),ne(this,"members"),ne(this,"kind","union"),r.forEach((i,a)=>{if(i===void 0&&Ut("v.union()",`member at index ${a}`),!i.isConvexValidator)throw new Error("All members of v.union() must be validators")}),this.members=r}get json(){return{type:this.kind,value:this.members.map(n=>n.json)}}asOptional(){return new pn({isOptional:"optional",members:this.members})}}function Ta(s){return!!s.isConvexValidator}const e={id:s=>new nn({isOptional:"required",tableName:s}),null:()=>new ln({isOptional:"required"}),number:()=>new os({isOptional:"required"}),float64:()=>new os({isOptional:"required"}),bigint:()=>new ls({isOptional:"required"}),int64:()=>new ls({isOptional:"required"}),boolean:()=>new rn({isOptional:"required"}),string:()=>new on({isOptional:"required"}),bytes:()=>new an({isOptional:"required"}),literal:s=>new dn({isOptional:"required",value:s}),array:s=>new un({isOptional:"required",element:s}),object:s=>new pt({isOptional:"required",fields:s}),record:(s,n)=>new mn({isOptional:"required",key:s,value:n}),union:(...s)=>new pn({isOptional:"required",members:s}),any:()=>new cn({isOptional:"required"}),optional:s=>s.asOptional(),nullable:s=>e.union(s,e.null())};var Da=Object.defineProperty,Ea=(s,n,r)=>n in s?Da(s,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):s[n]=r,Be=(s,n,r)=>Ea(s,typeof n!="symbol"?n+"":n,r);class Mn{constructor(n){Be(this,"indexes"),Be(this,"stagedDbIndexes"),Be(this,"searchIndexes"),Be(this,"stagedSearchIndexes"),Be(this,"vectorIndexes"),Be(this,"stagedVectorIndexes"),Be(this,"validator"),this.indexes=[],this.stagedDbIndexes=[],this.searchIndexes=[],this.stagedSearchIndexes=[],this.vectorIndexes=[],this.stagedVectorIndexes=[],this.validator=n}" indexes"(){return this.indexes}index(n,r){return Array.isArray(r)?this.indexes.push({indexDescriptor:n,fields:r}):r.staged?this.stagedDbIndexes.push({indexDescriptor:n,fields:r.fields}):this.indexes.push({indexDescriptor:n,fields:r.fields}),this}searchIndex(n,r){return r.staged?this.stagedSearchIndexes.push({indexDescriptor:n,searchField:r.searchField,filterFields:r.filterFields||[]}):this.searchIndexes.push({indexDescriptor:n,searchField:r.searchField,filterFields:r.filterFields||[]}),this}vectorIndex(n,r){return r.staged?this.stagedVectorIndexes.push({indexDescriptor:n,vectorField:r.vectorField,dimensions:r.dimensions,filterFields:r.filterFields||[]}):this.vectorIndexes.push({indexDescriptor:n,vectorField:r.vectorField,dimensions:r.dimensions,filterFields:r.filterFields||[]}),this}self(){return this}export(){const n=this.validator.json;if(typeof n!="object")throw new Error("Invalid validator: please make sure that the parameter of `defineTable` is valid (see https://docs.convex.dev/database/schemas)");return{indexes:this.indexes,stagedDbIndexes:this.stagedDbIndexes,searchIndexes:this.searchIndexes,stagedSearchIndexes:this.stagedSearchIndexes,vectorIndexes:this.vectorIndexes,stagedVectorIndexes:this.stagedVectorIndexes,documentType:n}}}function _(s){return Ta(s)?new Mn(s):new Mn(e.object(s))}class Ra{constructor(n,r){Be(this,"tables"),Be(this,"strictTableNameTypes"),Be(this,"schemaValidation"),this.tables=n,this.schemaValidation=r?.schemaValidation===void 0?!0:r.schemaValidation}export(){return JSON.stringify({tables:Object.entries(this.tables).map(([n,r])=>{const{indexes:i,stagedDbIndexes:a,searchIndexes:o,stagedSearchIndexes:c,vectorIndexes:m,stagedVectorIndexes:d,documentType:p}=r.export();return{tableName:n,indexes:i,stagedDbIndexes:a,searchIndexes:o,stagedSearchIndexes:c,vectorIndexes:m,stagedVectorIndexes:d,documentType:p}}),schemaValidation:this.schemaValidation})}}function hn(s,n){return new Ra(s,n)}hn({_scheduled_functions:_({name:e.string(),args:e.array(e.any()),scheduledTime:e.float64(),completedTime:e.optional(e.float64()),state:e.union(e.object({kind:e.literal("pending")}),e.object({kind:e.literal("inProgress")}),e.object({kind:e.literal("success")}),e.object({kind:e.literal("failed"),error:e.string()}),e.object({kind:e.literal("canceled")}))}),_storage:_({sha256:e.string(),size:e.float64(),contentType:e.optional(e.string())})});const Pa=_t({slots:{base:"accordion",body:"accordion__body",bodyInner:"accordion__body-inner",heading:"accordion__heading",indicator:"accordion__indicator",item:"accordion__item",panel:"accordion__panel",trigger:"accordion__trigger"},variants:{variant:{default:{},surface:{base:"accordion--surface"}}}}),bs=_t({defaultVariants:{size:"md",status:"danger",variant:"opaque"},slots:{backdrop:"alert-dialog__backdrop",body:"alert-dialog__body",closeTrigger:"alert-dialog__close-trigger",container:"alert-dialog__container",dialog:"alert-dialog__dialog",footer:"alert-dialog__footer",header:"alert-dialog__header",heading:"alert-dialog__heading",icon:"alert-dialog__icon",trigger:"alert-dialog__trigger"},variants:{size:{cover:{dialog:"alert-dialog__dialog--cover"},lg:{dialog:"alert-dialog__dialog--lg"},md:{dialog:"alert-dialog__dialog--md"},sm:{dialog:"alert-dialog__dialog--sm"},xs:{dialog:"alert-dialog__dialog--xs"}},status:{accent:{icon:"alert-dialog__icon--accent"},danger:{icon:"alert-dialog__icon--danger"},default:{icon:"alert-dialog__icon--default"},success:{icon:"alert-dialog__icon--success"},warning:{icon:"alert-dialog__icon--warning"}},variant:{blur:{backdrop:"alert-dialog__backdrop--blur"},opaque:{backdrop:"alert-dialog__backdrop--opaque"},transparent:{backdrop:"alert-dialog__backdrop--transparent"}}}}),Ma=_t({defaultVariants:{fullWidth:!1,variant:"primary"},slots:{base:"input-group",input:"input-group__input",prefix:"input-group__prefix",suffix:"input-group__suffix"},variants:{fullWidth:{false:{},true:{base:"input-group--full-width"}},variant:{primary:{base:"input-group--primary"},secondary:{base:"input-group--secondary"}}}}),Oa=_t({slots:{base:"popover",dialog:"popover__dialog",heading:"popover__heading",trigger:"popover__trigger"}}),$a=_t({base:"separator",defaultVariants:{orientation:"horizontal",variant:"default"},variants:{orientation:{horizontal:"separator--horizontal",vertical:"separator--vert
1ical"},variant:{default:"separator--default",secondary:"separator--secondary",tertiary:"separator--tertiary"}}}),Fa=_t({defaultVariants:{variant:"primary"},slots:{base:"tabs",separator:"tabs__separator",tab:"tabs__tab",tabIndicator:"tabs__indicator",tabList:"tabs__list",tabListContainer:"tabs__list-container",tabPanel:"tabs__panel"},variants:{variant:{primary:{},secondary:{base:"tabs--secondary"}}}});function La(s,n){let r=n?.isDisabled,[i,a]=l.useState(!1);return hr(()=>{if(s?.current&&!r){let o=()=>{if(s.current){let m=$i(s.current,{tabbable:!0});a(!!m.nextNode())}};o();let c=new MutationObserver(o);return c.observe(s.current,{subtree:!0,childList:!0,attributes:!0,attributeFilter:["tabIndex","disabled"]}),()=>{c.disconnect()}}}),r?!1:i}function za(s,n,r){let{isDisabled:i}=s,a=rs(),o=rs(),c=ji(),m=l.useRef(null),d=l.useCallback(()=>{m.current=requestAnimationFrame(()=>{r.current&&r.current.setAttribute("hidden","until-found")}),St.flushSync(()=>{n.toggle()})},[r,n]);Fi(r,"beforematch",d);let p=l.useRef(null);return hr(()=>{if(m.current&&cancelAnimationFrame(m.current),r.current&&!c){let u=r.current;p.current==null||typeof u.getAnimations!="function"?n.isExpanded?(u.removeAttribute("hidden"),u.style.setProperty("--disclosure-panel-width","auto"),u.style.setProperty("--disclosure-panel-height","auto")):(u.setAttribute("hidden","until-found"),u.style.setProperty("--disclosure-panel-width","0px"),u.style.setProperty("--disclosure-panel-height","0px")):n.isExpanded!==p.current&&(n.isExpanded?(u.removeAttribute("hidden"),u.style.setProperty("--disclosure-panel-width",u.scrollWidth+"px"),u.style.setProperty("--disclosure-panel-height",u.scrollHeight+"px"),Promise.all(u.getAnimations().map(h=>h.finished)).then(()=>{u.style.setProperty("--disclosure-panel-width","auto"),u.style.setProperty("--disclosure-panel-height","auto")}).catch(()=>{})):(u.style.setProperty("--disclosure-panel-width",u.scrollWidth+"px"),u.style.setProperty("--disclosure-panel-height",u.scrollHeight+"px"),window.getComputedStyle(u).height,u.style.setProperty("--disclosure-panel-width","0px"),u.style.setProperty("--disclosure-panel-height","0px"),Promise.all(u.getAnimations().map(h=>h.finished)).then(()=>u.setAttribute("hidden","until-found")).catch(()=>{}))),p.current=n.isExpanded}},[i,r,n.isExpanded,c]),l.useEffect(()=>()=>{m.current&&cancelAnimationFrame(m.current)},[]),{buttonProps:{id:a,"aria-expanded":n.isExpanded,"aria-controls":o,onPress:u=>{!i&&u.pointerType!=="keyboard"&&n.toggle()},isDisabled:i,onPressStart(u){u.pointerType==="keyboard"&&!i&&n.toggle()}},panelProps:{id:o,role:"group","aria-labelledby":a,"aria-hidden":!n.isExpanded,hidden:c?!n.isExpanded:void 0}}}const Ar=new WeakMap;function cs(s,n,r){return s?(typeof n=="string"&&(n=n.replace(/\s+/g,"")),`${Ar.get(s)}-${r}-${n}`):""}function Ua(s,n,r){let{key:i,isDisabled:a,shouldSelectOnPressUp:o}=s,{selectionManager:c,selectedKey:m}=n,d=i===m,p=a||n.isDisabled||n.selectionManager.isDisabled(i),{itemProps:u,isPressed:h}=Li({selectionManager:c,key:i,ref:r,isDisabled:p,shouldSelectOnPressUp:o,linkBehavior:"selection"}),x=cs(n,i,"tab"),g=cs(n,i,"tabpanel"),{tabIndex:b}=u,f=n.collection.getItem(i),S=dt(f?.props,{labelable:!0});delete S.id;let k=wi(f?.props),{focusableProps:R}=Si({...f?.props,isDisabled:p},r);return{tabProps:We(S,R,k,u,{id:x,"aria-selected":d,"aria-disabled":p||void 0,"aria-controls":d?g:void 0,tabIndex:p?void 0:b,role:"tab"}),isSelected:d,isDisabled:p,isPressed:h}}function Va(s,n,r){let i=La(r)?void 0:0;var a;const o=cs(n,(a=s.id)!==null&&a!==void 0?a:n?.selectedKey,"tabpanel"),c=yr({...s,id:o,"aria-labelledby":cs(n,n?.selectedKey,"tab")});return{tabPanelProps:We(c,{tabIndex:i,role:"tabpanel","aria-describedby":s["aria-describedby"],"aria-details":s["aria-details"]})}}class Ka{getKeyLeftOf(n){return this.flipDirection?this.getNextKey(n):this.getPreviousKey(n)}getKeyRightOf(n){return this.flipDirection?this.getPreviousKey(n):this.getNextKey(n)}isDisabled(n){var r,i;return this.disabledKeys.has(n)||!!(!((i=this.collection.getItem(n))===null||i===void 0||(r=i.props)===null||r===void 0)&&r.isDisabled)}getFirstKey(){let n=this.collection.getFirstKey();return n!=null&&this.isDisabled(n)&&(n=this.getNextKey(n)),n}getLastKey(){let n=this.collection.getLastKey();return n!=null&&this.isDisabled(n)&&(n=this.getPreviousKey(n)),n}
1getKeyAbove(n){return this.tabDirection?null:this.getPreviousKey(n)}getKeyBelow(n){return this.tabDirection?null:this.getNextKey(n)}getNextKey(n){let r=n;do r=this.collection.getKeyAfter(r),r==null&&(r=this.collection.getFirstKey());while(r!=null&&this.isDisabled(r));return r}getPreviousKey(n){let r=n;do r=this.collection.getKeyBefore(r),r==null&&(r=this.collection.getLastKey());while(r!=null&&this.isDisabled(r));return r}constructor(n,r,i,a=new Set){this.collection=n,this.flipDirection=r==="rtl"&&i==="horizontal",this.disabledKeys=a,this.tabDirection=i==="horizontal"}}function Ba(s,n,r){let{orientation:i="horizontal",keyboardActivation:a="automatic"}=s,{collection:o,selectionManager:c,disabledKeys:m}=n,{direction:d}=Ni(),p=l.useMemo(()=>new Ka(o,d,i,m),[o,m,i,d]),{collectionProps:u}=zi({ref:r,selectionManager:c,keyboardDelegate:p,selectOnFocus:a==="automatic",disallowEmptySelection:!0,scrollRef:r,linkBehavior:"selection"}),h=rs();Ar.set(n,h);let x=yr({...s,id:h});return{tabListProps:{...We(u,x),role:"tablist","aria-orientation":i,tabIndex:void 0}}}function Ha(s){var n;let[r,i]=Js(s.selectedKey,(n=s.defaultSelectedKey)!==null&&n!==void 0?n:null,s.onSelectionChange),a=l.useMemo(()=>r!=null?[r]:[],[r]),{collection:o,disabledKeys:c,selectionManager:m}=ha({...s,selectionMode:"single",disallowEmptySelection:!0,allowDuplicateSelectionEvents:!0,selectedKeys:a,onSelectionChange:p=>{if(p==="all")return;var u;let h=(u=p.values().next().value)!==null&&u!==void 0?u:null;h===r&&s.onSelectionChange&&s.onSelectionChange(h),i(h)}}),d=r!=null?o.getItem(r):null;return{collection:o,disabledKeys:c,selectionManager:m,selectedKey:r,setSelectedKey:i,selectedItem:d}}function Wa(s){let[n,r]=Js(s.isExpanded,s.defaultExpanded||!1,s.onExpandedChange);const i=l.useCallback(()=>{r(!0)},[r]),a=l.useCallback(()=>{r(!1)},[r]),o=l.useCallback(()=>{r(!n)},[r,n]);return{isExpanded:n,setExpanded:r,expand:i,collapse:a,toggle:o}}function qa(s){let{allowsMultipleExpanded:n=!1,isDisabled:r=!1}=s,[i,a]=Js(l.useMemo(()=>s.expandedKeys?new Set(s.expandedKeys):void 0,[s.expandedKeys]),l.useMemo(()=>s.defaultExpandedKeys?new Set(s.defaultExpandedKeys):new Set,[s.defaultExpandedKeys]),s.onExpandedChange);return l.useEffect(()=>{if(!n&&i.size>1){let o=i.values().next().value;o!=null&&a(new Set([o]))}}),{allowsMultipleExpanded:n,isDisabled:r,expandedKeys:i,setExpandedKeys:a,toggleKey(o){let c;n?(c=new Set(i),c.has(o)?c.delete(o):c.add(o)):c=new Set(i.has(o)?[]:[o]),a(c)}}}function Ya(s){var n,r;let i=Ha({...s,onSelectionChange:s.onSelectionChange?d=>{var p;d!=null&&((p=s.onSelectionChange)===null||p===void 0||p.call(s,d))}:void 0,suppressTextValueWarning:!0,defaultSelectedKey:(r=(n=s.defaultSelectedKey)!==null&&n!==void 0?n:On(s.collection,s.disabledKeys?new Set(s.disabledKeys):new Set))!==null&&r!==void 0?r:void 0}),{selectionManager:a,collection:o,selectedKey:c}=i,m=l.useRef(c);return l.useEffect(()=>{let d=c;s.selectedKey==null&&(a.isEmpty||d==null||!o.getItem(d))&&(d=On(o,i.disabledKeys),d!=null&&a.setSelectedKeys([d])),(d!=null&&a.focusedKey==null||!a.isFocused&&d!==m.current)&&a.setFocusedKey(d),m.current=d}),{...i,isDisabled:s.isDisabled||!1}}function On(s,n){let r=null;if(s){var i,a,o,c;for(r=s.getFirstKey();r!=null&&(n.has(r)||!((a=s.getItem(r))===null||a===void 0||(i=a.props)===null||i===void 0)&&i.isDisabled)&&r!==s.getLastKey();)r=s.getKeyAfter(r);r!=null&&(n.has(r)||!((c=s.getItem(r))===null||c===void 0||(o=c.props)===null||o===void 0)&&o.isDisabled)&&r===s.getLastKey()&&(r=s.getFirstKey())}return r}const kr=l.createContext(null),Ga=l.forwardRef(function(n,r){let i=qa(n),a=gt({...n,defaultClassName:"react-aria-DisclosureGroup",values:{isDisabled:i.isDisabled,state:i}}),o=dt(n,{global:!0});return K.createElement(lt.div,{...o,...a,ref:r,"data-disabled":n.isDisabled||void 0},K.createElement(kr.Provider,{value:i},a.children))}),Xa=l.createContext(null),gn=l.createContext(null),Tr=l.createContext(null),Ja=l.forwardRef(function(n,r){[n,r]=xr(n,r,Xa);let i=l.useContext(kr),{id:a,...o}=n,c=rs();a||(a=c);let m=i?i.expandedKeys.has(a):n.isExpanded,d=Wa({...n,isExpanded:m,onExpandedChange(k){var R;i&&i.toggleKey(a),(R=n.onExpandedChange)===null||R===void 0||R.call(n,k)}}),p=K.useRef(null),u=n.isDisabled||i?.isDisabled||!1,{buttonProps:h,panelProps:x}=za({...n,isExpanded:m,isDisabled:u},d,p),{isFocusVisible:g,focusProps:b}=Bt({within:!0}),f=gt({...n,id:void 0,defaultClassName:"react-aria-Disclosure",values:{isExpanded:d.isExpanded,isDisabled:u,isFocusVisibleWithin:g,state:d}}),S=dt(o,{global:!0});return K.createElement(xs,{values:[[gr,{slots:{[Ci]:{},trigger:h}}],[Tr,{panelProps:x,panelRef:p}],[gn,d]]},K.createElement(lt.div,{...We(S,f,b),ref:r,"data-expanded":d.isExpanded||void 0,"data-disabled":u||void 0,"data-focus-visible-within":g||void 0},f.children))}),Qa=l.forwardRef(function(n,r){let{role:i="group"}=n,{panelProps:a,panelRef:o}=l.useContext(Tr),{isFocusVisible:c,focusProps:m}=Bt({within:!0}),d=gt({...n,defaultClassName:"react-aria-DisclosurePanel",values:{isFocusVisibleWithin:c}}
1),p=dt(n,{global:!0,labelable:!0});return K.createElement(lt.div,{...We(p,d,a,m),ref:Ii(r,o),role:i,"data-focus-visible-within":c||void 0},K.createElement(xs,{values:[[gr,null]]},n.children))}),ys=l.createContext(null),ht=l.createContext(null),Za=l.forwardRef(function(n,r){[n,r]=xr(n,r,ys);let{children:i,orientation:a="horizontal"}=n;return i=l.useMemo(()=>typeof i=="function"?i({orientation:a,defaultChildren:null}):i,[i,a]),K.createElement(Ui,{content:i},o=>K.createElement(eo,{props:n,collection:o,tabsRef:r}))});function eo({props:s,tabsRef:n,collection:r}){let{orientation:i="horizontal"}=s,a=Ya({...s,collection:r,children:void 0}),{focusProps:o,isFocused:c,isFocusVisible:m}=Bt({within:!0}),d=l.useMemo(()=>({orientation:i,isFocusWithin:c,isFocusVisible:m}),[i,c,m]),p=gt({...s,defaultClassName:"react-aria-Tabs",values:d}),u=dt(s,{global:!0});return K.createElement(lt.div,{...We(u,p,o),ref:n,slot:s.slot||void 0,"data-focused":c||void 0,"data-orientation":i,"data-focus-visible":m||void 0,"data-disabled":a.isDisabled||void 0},K.createElement(xs,{values:[[ys,s],[ht,a]]},p.children))}const to=l.forwardRef(function(n,r){return l.useContext(ht)?K.createElement(so,{props:n,forwardedRef:r}):K.createElement(Hi,n)});function so({props:s,forwardedRef:n}){let r=l.useContext(ht),{CollectionRoot:i}=l.useContext(vr),{orientation:a="horizontal",keyboardActivation:o="automatic"}=fr(ys),c=Xs(n),{tabListProps:m}=Ba({...s,orientation:a,keyboardActivation:o},r,c),d=gt({...s,children:null,defaultClassName:"react-aria-TabList",values:{orientation:a,state:r}}),p=dt(s,{global:!0});return delete p.id,K.createElement(lt.div,{...We(p,d,m),ref:c,"data-orientation":a||void 0},K.createElement(Gi,null,K.createElement(i,{collection:r.collection,persistedKeys:Xi(r.selectionManager.focusedKey)})))}class Dr extends Yi{}Dr.type="item";const no=Ki(Dr,(s,n,r)=>{let i=l.useContext(ht),a=Xs(n),{tabProps:o,isSelected:c,isDisabled:m,isPressed:d}=Ua({key:r.key,...s},i,a),{focusProps:p,isFocused:u,isFocusVisible:h}=Bt(),{hoverProps:x,isHovered:g}=Ai({isDisabled:m,onHoverStart:s.onHoverStart,onHoverEnd:s.onHoverEnd,onHoverChange:s.onHoverChange}),b=gt({...s,id:void 0,children:r.rendered,defaultClassName:"react-aria-Tab",values:{isSelected:c,isDisabled:m,isFocused:u,isFocusVisible:h,isPressed:d,isHovered:g}}),f=r.props.href?lt.a:lt.div,S=dt(s,{global:!0});return delete S.id,delete S.onClick,K.createElement(f,{...We(S,b,o,p,x),ref:a,"data-selected":c||void 0,"data-disabled":m||void 0,"data-focused":u||void 0,"data-focus-visible":h||void 0,"data-pressed":d||void 0,"data-hovered":g||void 0},K.createElement(Bi.Provider,{value:{isSelected:c}},b.children))}),ro=_i(function(n,r){const i=l.useContext(ht);let a=Xs(r),o=i.selectedKey===n.id,[c,m]=l.useState(i.selectedKey!=null?o:null);c==null&&i.selectedKey!=null?m(o):!o&&c&&m(!1);let d=Vi(a,o);return!o&&!n.shouldForceMount&&!d?null:K.createElement(io,{...n,tabPanelRef:a,isInitiallySelected:c||!1,isExiting:d})});function io(s){let n=l.useContext(ht),{id:r,tabPanelRef:i,isInitiallySelected:a,isExiting:o,...c}=s,{tabPanelProps:m}=Va(s,n,i),{focusProps:d,isFocused:p,isFocusVisible:u}=Bt(),h=n.selectedKey===s.id,x=Wi(i)&&!a,g=gt({...s,defaultClassName:"react-aria-TabPanel",values:{isFocused:p,isFocusVisible:u,isInert:Rn(!h),isEntering:x,isExiting:o,state:n}}),b=dt(c,{global:!0});delete b.id;let f=h?We(b,m,d,g):We(b,g);return K.createElement(lt.div,{...f,ref:i,"data-focused":p||void 0,"data-focus-visible":u||void 0,inert:Rn(!h||s.inert),"data-inert":h?void 0:"true","data-entering":x||void 0,"data-exiting":o||void 0},K.createElement(xs,{values:[[ys,null],[ht,null]]},K.createElement(vr.Provider,{value:qi},g.children)))}const xt=l.createContext({}),$n=({children:s,className:n,hideSeparator:r=!1,variant:i,...a})=>{const o=K.useMemo(()=>Pa({variant:i}),[i]),c=t.jsx(Ga,{className:we(n,o.base()),"data-slot":"accordion",...a,children:m=>t.jsx(t.Fragment,{children:typeof s=="function"?s(m):s})});return t.jsx(xt,{value:{slots:o,hideSeparator:r},children:i==="surface"?t.jsx(Cr,{value:{variant:"default"},children:c}):c})},ao=({className:s,...n})=>{const{hideSeparator:r,slots:i}=l.useContext(xt);return t.jsx(Ja,{className:we(s,i?.item()),"data-hide-separator":r?"true":void 0,"data-slot":"accordion-item",...n,children:n.children})},oo=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(xt),{isExpanded:a}=l.useContext(gn);return s&&K.isValidElement(s)?K.cloneElement(s,{...r,"data-expanded":Ks(a),className:me(i?.indicator,n),"data-slot":"accordion-indicator"}):t.jsx(ki,{className:me(i?.indicator,n),"data-expanded":Ks(a),"data-slot":"accordion-indicator",...r})},lo=({className:s,...n})=>{const{slots:r}=l.useContext(xt);return t.jsx(Qs,{className:me(r?.heading,s),"data-slot":"accordion-heading",...n})},co=({className:s,...n})=>{const{slots:r}=l.useContext(xt);return t.jsx(Ti,{className:we(s,r?.trigger()),"data-slot":"accordion-trigger",slot:"trigger",...n,children:i=>t.jsx(t.Fragment,{children:typeof n.children=="function"?n.children(i):n.children})})},uo=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(xt);return t.jsx("div",{className:i?.body({}),"data-slot":"accordion-body",...r,children:t.jsx("div",{className:me(i?.bodyInner,n),children:s})})},mo=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(xt),{isExpanded:a}=l.useContext(gn);return t.jsx(Qa,{className:we(n,i?.panel()),"data-expanded":Ks(a),"data-slot":"accordion-panel",...r,children:s})},mt=Object.assign($n,{Root:$n,Item:ao,Heading:lo,Trigger:co,Panel:mo,Indicator:oo,Body:uo}),Oe=l.createContext({}),Fn=({children:s,...n})=>{const r=l.useMemo(()=>({slots:bs(),placement:void 0}),[]);return t.jsx(Oe,{value:r,children:t.jsx(jr,{"data-slot":"alert-dialog-root",...n,children:s})})},po=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(Oe);return t.jsx(Sr,{children:t.jsx("div",{className:me(i?.trigger,n),"data-slot":"alert-dialog-trigger",role:"button",...r,children:s})})},ho=({children:s,className:n,isDismissable:r=!1,isKeyboardDismissDisabled:i=!0,onClick:a,variant:o,...c})=>{const{slots:m}=l.useContext(Oe),d=l.useMemo(()=>bs({variant:o}),[o]),p=l.useMemo(()=>({slots:{...m,...d}}),[m,d]);return t.jsx(na,{className:we(n,d?.backdrop()),"data-slot":"alert-dialog-backdrop",isDismissable:r,isKeyboardDismissDisabled:i,onClick:u=>{u.stopPropagation(),a?.(u)},...c,children:u=>t.jsxs(Oe,{value:p,children:[typeof s=="function"?s(u):s," "]})})},go=({children:s,className:n,placement:r="auto",size:i,...a})=>{const{slots:o}=l.useContext(Oe),c=l.useMemo(()=>bs({size:i}),[i]),m=l.useMemo(()=>({placement:r,slots:{...o,...c}}),[r,o,c]);return t.jsx(sa,{className:we(n,c?.container()),"data-placement":r,"data-slot":"alert-dialog-container",...a,children:d=>t.jsx(Oe,{value:m,children:typeof s=="function"?s(d):s})})},xo=({children:s,className:n,...r})=>{const{placement:i,slots:a}=l.useContext(Oe);return t.jsx(wr,{className:me(a?.dialog,n),"data-placement":i,"data-slot":"alert-dialog-dialog",role:"alertdialog",...r,children:s})},fo=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(Oe);return t.jsx("div",{className:me(i?.header,n),"data-slot":"alert-dialog-header",...r,children:s})},bo=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(Oe);return t.jsx(Qs,{className:me(i?.heading,n),"data-slot":"alert-dialog-heading",slot:"title",...r,children:s})},yo=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(Oe);return t.jsx("div",{className:me(i?.body,n),"data-slot":"alert-dialog-body",...r,children:s})},vo=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(Oe);return t.jsx("div",{className:me(i?.footer,n),"data-slot":"alert-dialog-footer",...r,children:s})},jo=({children:s,className:n,status:r="danger",...i})=>{const a=l.useMemo(()=>bs({status:r}),[r]),o=()=>{switch(r){case"default":return t.jsx(Dn,{"data-slot":"alert-dialog-default-icon"});case"accent":return t.jsx(Dn,{"data-slot":"alert-dialog-default-icon"});case"success":return t.jsx(Ri,{"data-slot":"alert-dialog-default-icon"});case"warning":return t.jsx(Ei,{"data-slot":"alert-dialog-default-icon"});case"danger":return t.jsx(Tn,{"data-slot":"alert-dialog-default-icon"});default:return t.jsx(Tn,{"data-slot":"alert-dialog-default-icon"})}};return t.jsx("div",{className:a?.icon({className:n}),"data-slot":"alert-dialog-icon",...i,children:s??o()})},wo=({className:s,...n})=>{const{slots:r}=l.useContext(Oe);return t.jsx(Di,{className:we(s,r?.closeTrigger()),"data-slot":"alert-dialog-close-trigger",slot:"close",...n})},re=Object.assign(Fn,{Root:Fn,Trigger:po,Backdrop:ho,Container:go,Dialog:xo,Header:fo,Heading:bo,Body:yo,Footer:vo,Icon:jo,CloseTrigger:wo}),It=l.createContext({}),Ln=({children:s,...n})=>{const r=K.useMemo(()=>Oa(),[]);return t.jsx(It,{value:{slots:r},children:t.jsx(jr,{"data-slot":"popover-root",...n,children:s})})},So=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(It);return t.jsx(It,{value:{slots:i},children:t.jsx(Cr,{value:{variant:"default"},children:t.jsx(Ji,{...r,className:we(n,i?.base()),children:s})})})},No=({children:s,className:n,...r})=>{const i=t.jsx("svg",{"data-slot":"popover-overlay-arrow",height:12,viewBox:"0 0 12 12",width:12,children:t.jsx("path",{d:"M0 0 Q6 9 12 0"})}),a=K.isValidElement(s)?K.cloneElement(s,{"data-slot":"popover-overlay-arrow"}):i;return t.jsx(Qi,{"data-slot":"popover-overlay-arrow-group",...r,className:n,children:a})},Io=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(It);return t.jsx(wr,{"data-slot":"popover-dialog",...r,className:me(i?.dialog,n),children:s})},Co=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(It);return t.jsx(Sr,{children:t.jsx("div",{className:me(i?.trigger,n),"data-slot":"popover-trigger",role:"button",...r,children:s})})},_o=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(It);return t.jsx(Qs,{slot:"title",...r,className:me(i?.heading,n),children:s})},es=Object.assign(Ln,{Root:Ln,Trigger:Co,Dialog:Io,Arrow:No,Content:So,Heading:_o}),zn=({className:s,orientation:n,variant:r,...i})=>{const a=fr(Zi),o=n??a?.orientation??"horizontal";return t.jsx(ea,{"data-orientation":o,"data-slot":"separator",orientation:o,className:$a({orientation:o,variant:r,className:s}),...i})},Un=Object.assign(zn,{Root:zn}),Xe=Object.assign(Pn,{Root:Pn}),ft=l.createContext({}),Vn=({children:s,className:n,orientation:r="horizontal",variant:i,...a})=>{const o=K.useMemo(()=>Fa({variant:i}),[i]);return t.jsx(ft,{value:{orientation:r,slots:o},children:t.jsx(Za,{...a,className:we(n,o.base()),"data-slot":"tabs",orientation:r,children:s})})},Ao=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(ft);return t.jsx("div",{className:me(i?.tabListContainer,n),"data-slot":"tabs-list-container",...r,children:s})},ko=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(ft);
1return t.jsx(to,{...r,className:we(n,i?.tabList()),"data-slot":"tabs-list",children:s})},To=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(ft);return t.jsx(no,{...r,className:we(n,i?.tab()),"data-slot":"tabs-tab",children:s})},Do=({className:s,...n})=>{const{slots:r}=l.useContext(ft);return t.jsx(ta,{className:me(r?.tabIndicator,s),"data-slot":"tabs-indicator",...n})},Eo=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(ft);return t.jsx(ro,{...r,className:we(n,i?.tabPanel()),"data-slot":"tabs-panel",children:s})},Ro=({className:s,...n})=>{const{slots:r}=l.useContext(ft);return t.jsx("span",{"aria-hidden":"true",className:me(r?.separator,s),"data-slot":"tabs-separator",...n})},Fe=Object.assign(Vn,{Root:Vn,ListContainer:Ao,List:ko,Tab:To,Indicator:Do,Separator:Ro,Panel:Eo}),Wt=l.createContext({}),Kn=({children:s,className:n,fullWidth:r,onClick:i,variant:a,...o})=>{const c=l.useContext(ia),m=a??c?.variant,d=K.useRef(null),p=K.useMemo(()=>Ma({fullWidth:r,variant:m}),[r,m]),u=h=>{const x=h.target,g=d.current?.querySelector("input");g&&x!==g&&!g.contains(x)&&g.focus(),i?.(h)};return t.jsx(Wt,{value:{slots:p},children:t.jsx(aa,{...o,ref:d,className:we(n,p?.base()),"data-slot":"input-group",onClick:u,children:h=>typeof s=="function"?s(h):s})})},Po=({className:s,...n})=>{const{slots:r}=l.useContext(Wt);return t.jsx(la,{className:we(s,r?.input()),"data-slot":"input-group-input",...n})},Mo=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(Wt);return t.jsx("div",{className:me(i?.prefix,n),"data-slot":"input-group-prefix",...r,children:s})},Oo=({className:s,...n})=>{const{slots:r}=l.useContext(Wt);return t.jsx(oa,{className:we(s,r?.input()),"data-slot":"input-group-textarea",...n})},$o=({children:s,className:n,...r})=>{const{slots:i}=l.useContext(Wt);return t.jsx("div",{className:me(i?.suffix,n),"data-slot":"input-group-suffix",...r,children:s})},ts=Object.assign(Kn,{Root:Kn,Input:Po,TextArea:Oo,Prefix:Mo,Suffix:$o}),Bn=({...s})=>t.jsx(ga,{...s}),Fo=Object.assign(Bn,{Root:Bn});const Lo=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],Er=ee("bell",Lo);const zo=[["path",{d:"M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16",key:"jecpp"}],["rect",{width:"20",height:"14",x:"2",y:"6",rx:"2",key:"i6l2r4"}]],Uo=ee("briefcase",zo);const Vo=[["path",{d:"M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z",key:"18u6gg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]],Rr=ee("camera",Vo);const Ko=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],Bo=ee("chevron-left",Ko);const Ho=[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]],Wo=ee("chevron-up",Ho);const qo=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Ms=ee("circle",qo);const Yo=[["path",{d:"M12 6v6l4 2",key:"mmk7yg"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Go=ee("clock",Yo);const Xo=[["path",{d:"M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z",key:"1vdc57"}],["path",{d:"M5 21h14",key:"11awu3"}]],Jo=ee("crown",Xo);const Qo=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"5",r:"1",key:"gxeob9"}],["circle",{cx:"12",cy:"19",r:"1",key:"lyex9k"}]],Zo=ee("ellipsis-vertical",Qo);const el=[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]],tl=ee("external-link",el);const sl=[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]],Pr=ee("gauge",sl);const nl=[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]],Mr=ee("graduation-cap",nl);const rl=[["path",{d:"M19.414 14.414C21 12.828 22 11.5 22 9.5a5.5 5.5 0 0 0-9.591-3.676.6.6 0 0 1-.818.001A5.5 5.5 0 0 0 2 9.5c0 2.3 1.5 4 3 5.5l5.535 5.362a2 2 0 0 0 2.879.052 2.12 2.12 0 0 0-.004-3 2.124 2.124 0 1 0 3-3 2.124 2.124 0 0 0 3.004 0 2 2
10 0 0 0-2.828l-1.881-1.882a2.41 2.41 0 0 0-3.409 0l-1.71 1.71a2 2 0 0 1-2.828 0 2 2 0 0 1 0-2.828l2.823-2.762",key:"17lmqv"}]],il=ee("heart-handshake",rl);const al=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],ol=ee("info",al);const ll=[["path",{d:"M3 5h8",key:"18g2rq"}],["path",{d:"M3 12h8",key:"1xfjp6"}],["path",{d:"M3 19h8",key:"fpbke4"}],["path",{d:"m15 5 3 3 3-3",key:"1t4thf"}],["path",{d:"m15 19 3-3 3 3",key:"y4ckd2"}]],cl=ee("list-chevrons-down-up",ll);const dl=[["path",{d:"M3 5h8",key:"18g2rq"}],["path",{d:"M3 12h8",key:"1xfjp6"}],["path",{d:"M3 19h8",key:"fpbke4"}],["path",{d:"m15 8 3-3 3 3",key:"bc4io6"}],["path",{d:"m15 16 3 3 3-3",key:"9wmg1l"}]],ul=ee("list-chevrons-up-down",dl);const ml=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],Or=ee("message-square",ml);const pl=[["path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",key:"1n2ejm"}],["path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1",key:"1qfcsi"}]],hl=ee("messages-square",pl);const gl=[["path",{d:"M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z",key:"1a0edw"}],["path",{d:"M12 22V12",key:"d0xqtd"}],["polyline",{points:"3.29 7 12 12 20.71 7",key:"ousv84"}],["path",{d:"m7.5 4.27 9 5.15",key:"1c824w"}]],$r=ee("package",gl);const xl=[["path",{d:"M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z",key:"e79jfc"}],["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}]],Fr=ee("palette",xl);const fl=[["path",{d:"M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z",key:"1wgbhj"}]],Lr=ee("shirt",fl);const bl=[["path",{d:"M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7",key:"1m0v6g"}],["path",{d:"M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z",key:"ohrbg2"}]],Hn=ee("square-pen",bl);const yl=[["path",{d:"M10 2h4",key:"n1abiw"}],["path",{d:"M12 14v-4",key:"1evpnu"}],["path",{d:"M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6",key:"1ts96g"}],["path",{d:"M9 17H4v5",key:"8t5av"}]],vl=ee("timer-reset",yl);const jl=[["line",{x1:"10",x2:"14",y1:"2",y2:"2",key:"14vaq8"}],["line",{x1:"12",x2:"15",y1:"14",y2:"11",key:"17fdiu"}],["circle",{cx:"12",cy:"14",r:"8",key:"1e1u0o"}]],wl=ee("timer",jl);const Sl=[["path",{d:"M10 15h4",key:"192ueg"}],["path",{d:"m14.817 10.995-.971-1.45 1.034-1.232a2 2 0 0 0-2.025-3.238l-1.82.364L9.91 3.885a2 2 0 0 0-3.625.748L6.141 6.55l-1.725.426a2 2 0 0 0-.19 3.756l.657.27",key:"xbnumr"}],["path",{d:"m18.822 10.995 2.26-5.38a1 1 0 0 0-.557-1.318L16.954 2.9a1 1 0 0 0-1.281.533l-.924 2.122",key:"eaw7gc"}],["path",{d:"M4 12.006A1 1 0 0 1 4.994 11H19a1 1 0 0 1 1 1v7a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z",key:"1vaooh"}]],Nl=ee("tool-case",Sl);const Il=[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],vs=ee("triangle-alert",Il);const Cl=[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]],zr=ee("wrench",Cl);function _l({userId:s,userEmail:n}){const r=Pi(),[i,a]=l.useState(""),[o,c]=l.useState(!1),[m,d]=l.useState(!1),{mutateAsync:p,isPending:u}=J({mutationFn:X(V.admin.deleteUser),onSuccess:()=>{ye("User deleted successfully"),r({to:"/admin"})},onError:f=>{Y(f.message)}}),h=async()=>{await navigator.clipboard.writeText(n),c(!0),setTimeout(()=>c(!1),2e3)},x=async()=>{i===n&&await p({userId:s,confirmEmail:i})},g=f=>{d(f),f||(a(""),c(!1))},b=i===n&&!u;return t.jsxs(t.Fragment,{children:[t.jsxs(D,{variant:"danger",onPress:()=>d(!0),children:[t.jsx(br,{size:16}),"Delete User"]}),t.jsx(re.Backdrop,{isOpen:m,onOpenChange:g,isDismissable:!u,isKeyboardDismissDisabled:u,children:t.jsx(re.Container,{children:t.jsxs(re.Dialog,{className:"sm:max-w-[480px]",children:[t.jsxs(re.Header,{children:[t.jsx(re.Icon,{status:"danger",children:t.jsx(vs,{size:20})}),t.jsx(re.Heading,{children:"Delete User Permanently"})]}),t.jsxs(re.Body,{className:"space-y-4",children:[t.jsxs("p",{className:"text-muted",children:["This will permanently delete the user and"," ",t.jsx("strong",{className:"text-foreground",children:"ALL"})," associated data:"]}),t.jsxs("ul",{className:"text-sm text-muted list-disc list-inside space-y-1",children:[t.jsx("li",{children:"User account"}),t.jsx("li",{children:"User profile"}),t.jsx("li",{children:"Vendor profile"}),t.jsx("li",{children:"All services"}),t.jsx("li",{children:"Email history"}),t.jsx("li",{children:"Authentication records"}),t.jsx("li",{children:"Role assignments"})]}),t.jsx("p",{className:"text-danger font-medium",children:"This action cannot be undone."}),t.jsxs("div",{className:"pt-2 space-y-3",children:[t.jsx($,{className:"text-sm font-medium",children:"Type this email to confirm:"}),t.jsxs("div",{className:"flex items-center gap-2 p-3 rounded-xl bg-surface-secondary",children:[t.jsx("code",{className:"flex-1 text-sm font-mono break-all",children:n}),t.jsx(D,{size:"sm",variant:"ghost",isIconOnly:!0,onPress:h,children:o?t.jsx(Ht,{size:16,className:"text-success"}):t.jsx(ra,{size:16})})]}),t.jsx(ue,{value:i,onChange:a,"aria-label":"Confirm email",children:t.jsx(xe,{placeholder:"Paste email here to confirm"})}),i&&i!==n&&t.jsx(ae,{className:"text-danger text-sm",children:"Email does not match"})]})]}),t.jsxs(re.Footer,{children:[t.jsx(D,{variant:"ghost",onPress:()=>g(!1),isDisabled:u,children:"Cancel"}),t.jsx(D,{variant:"danger",onPress:x,isDisabled:!b,isPending:u,children:"Delete User"})]})]})})})]})}function Al({userId:s}){const{data:n,isLoading:r}=Qe(Je(V.adminTesting.getNotificationTestData,{userId:s})),{mutateAsync:i}=J({mutationFn:X(V.adminTesting.sendTestPushNotification),onSuccess:()=>ye("Push notification sent"),onError:g=>Y(g.message)}),{mutateAsync:a}=J({mutationFn:X(V.adminTesting.sendTestEmail),onSuccess:()=>ye("Email sent"),onError:g=>Y(g.message)}),[o,c]=l.useState(null);if(r)return t.jsxs(B,{className:"p-4 sm:p-6",children:[t.jsx(B.Header,{children:t.jsx(B.Title,{className:"text-lg",children:"Notification Testing"})}),t.jsx(B.Content,{className:"flex justify-center py-8",children:t.jsx(je,{})})]});if(!n)return null;const m=async(g,b,f)=>{const S=`push-${g}`;c(S);try{await i({userId:s,type:g,targetId:b,tier:f})}finally{c(null)}},d=async(g,b,f,S)=>{const k=`email-${g}${S?`-${S}`:""}`;c(k);try{await a({userId:s,emailType:g,targetId:b,tier:f,subscriptionTier:S})}finally{c(null)}},p=n.conversations[0],u=n.conversations.filter(g=>g.conversationType==="marketplace"),h=n.reviewsAuthored.filter(g=>g.hasVendorResponse),x=u.filter(g=>g.userRole==="vendor");return t.jsxs(B,{className:"p-4 sm:p-6",children:[t.jsxs(B.Header,{className:"mb-4",children:[t.jsxs(B.Title,{className:"text-lg flex items-center gap-2",children:[t.jsx(Er,{size:20}),"Notification Testing"]}),t.jsx(B.Description,{children:"Send test notifications to this user's devices and email"})]}),t.jsxs(B.Content,{className:"space-y-6",children:[t.jsx(kl,{count:n.pushTokenCount,ios:n.iosPushTokens,android:n.androidPushTokens}),t.jsxs(Os,{title:"Messaging",icon:t.jsx(Or,{size:16}),children:[t.jsx(ut,{label:"New Message",channels:["push"],ready:!!p,readyLabel:p?`Conversation with ${p.otherUserName}${p.serviceName?` about ${p.serviceName}`:""}`:void 0,notReadyMessage:"No conversations. Start a conversation with this user from another account.",noPushTokens:n.pushTokenCount===0,onSendPush:()=>m("message",p._id),isSendingPush:o==="push-message"}),t.jsx(ut,{label:"Listing Inquiry",channels:["push"],ready:x.length>0,readyLabel:x[0]?`"${x[0].listingTitle}" inquiry from ${x[0].otherUserName}`:void 0,notReadyMessage:"No marketplace conversations where this user is the seller.",noPushTokens:n.pushTokenCount===0,onSendPush:()=>m("listing_inquiry",x[0]._id),isSendingPush:o==="push-listing_inquiry"})]}),t.jsxs(Os,{title:"Reviews",icon:t.jsx(ca,{size:16}),children:[t.jsx(ut,{label:"New Review Received",channels:["push","email"],ready:n.services.length>0,readyLabel:n.services[0]?`Service: ${n.services[0].name}`:void 0,notReadyMessage:"User has no services. They need to complete vendor onboarding and create a service.",noPushTokens:n.pushTokenCount===0,onSendPush:()=>m("service_review",n.services[0]._id),onSendEmail:()=>d("new_review_notification",n.services[0]._id),isSendingPush:o==="push-service_review",isSendingEmail:o==="email-new_review_notification"}),t.jsx(ut,{label:"Vendor Response",channels:["push","email"],ready:h.length>0,readyLabel:h[0]?`Review of ${h[0].serviceName} (${h[0].overallRating}-star)`:void 0,notReadyMessage:"User hasn't written any reviews with vendor responses.",noPushTokens:n.pushTokenCount===0,onSendPush:h[0]?.serviceId?()=>m("vendor_review_response",h[0].serviceId):void 0,onSendEmail:h[0]?.serviceId?()=>d("vendor_review_response",h[0].serviceId):void 0,isSendingPush:o==="push-vendor_review_response",isSendingEmail:o==="email-vendor_review_response"})]}),t.jsxs(Os,{title:"Emails Only",icon:t.jsx(Zs,{size:16}),children:[t.jsx(ut,{label:"Welcome Email",channels:["email"],ready:!0,readyLabel:`Will send to ${s?"this user's email":""}`,onSendEmail:()=>d("welcome"),isSendingEmail:o==="email-welcome"}),t.jsx(ut,{label:"Admin Notification",channels:["email"],ready:!0,readyLabel:"Will send to [email protected]",onSendEmail:()=>d("admin_notification"),isSendingEmail:o==="email-admin_notification"}),t.jsx(ut,{label:"Pro Subscription Welcome",channels:["email"],ready:!0,readyLabel:"Sends the Pro tier welcome email to this user",onSendEmail:()=>
1d("subscription_welcome",void 0,void 0,"pro"),isSendingEmail:o==="email-subscription_welcome-pro"})]})]})]})}function kl({count:s,ios:n,android:r}){return s===0?t.jsxs("div",{className:"flex items-center gap-3 p-3 rounded-xl bg-warning/10 border border-warning/20",children:[t.jsx(vs,{size:18,className:"text-warning shrink-0"}),t.jsxs("div",{children:[t.jsx("p",{className:"text-sm font-medium text-warning",children:"No push tokens registered"}),t.jsx("p",{className:"text-xs text-muted",children:"Push notifications won't be delivered. The user needs to log in on a device and allow notifications."})]})]}):t.jsxs("div",{className:"flex items-center gap-3 p-3 rounded-xl bg-success/10 border border-success/20",children:[t.jsx(da,{size:18,className:"text-success shrink-0"}),t.jsxs("div",{children:[t.jsxs("p",{className:"text-sm font-medium text-success",children:[s," push token",s!==1?"s":""," registered"]}),t.jsxs("p",{className:"text-xs text-muted",children:["iOS: ",n," · Android: ",r]})]})]})}function Os({title:s,icon:n,children:r}){return t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"flex items-center gap-2 text-sm font-medium text-foreground border-b border-muted/20 pb-2",children:[n,s]}),t.jsx("div",{className:"space-y-2 pl-1",children:r})]})}function ut({label:s,channels:n,ready:r,readyLabel:i,notReadyMessage:a,warningLabel:o,noPushTokens:c,onSendPush:m,onSendEmail:d,isSendingPush:p,isSendingEmail:u}){const h=n.includes("push"),x=n.includes("email");return t.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2 sm:gap-4 py-2",children:[t.jsxs("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[r?o?t.jsx(Ms,{size:10,className:"text-warning fill-warning shrink-0"}):t.jsx(Ms,{size:10,className:"text-success fill-success shrink-0"}):t.jsx(Ms,{size:10,className:"text-muted fill-muted/30 shrink-0"}),t.jsxs("div",{className:"min-w-0 flex-1",children:[t.jsx("p",{className:"text-sm font-medium",children:s}),r?t.jsx("p",{className:"text-xs text-muted truncate",children:o??i}):t.jsx("p",{className:"text-xs text-muted",children:a})]})]}),t.jsxs("div",{className:"flex gap-2 shrink-0 pl-5 sm:pl-0",children:[h&&t.jsxs(D,{size:"sm",variant:"secondary",onPress:m,isDisabled:!r||c&&!x,isPending:p,children:[t.jsx(Er,{size:14}),"Push"]}),x&&t.jsxs(D,{size:"sm",variant:"secondary",onPress:d,isDisabled:!r,isPending:u,children:[t.jsx(Zs,{size:14}),"Email"]})]})]})}const Tl=[{value:"spam",label:"Spam"},{value:"offensive",label:"Offensive"},{value:"harassment",label:"Harassment"},{value:"fraud",label:"Fraud"},{value:"inappropriate_content",label:"Inappropriate Content"},{value:"other",label:"Other"}];function Dl({targetType:s,targetId:n,onClose:r}){const[i,a]=l.useState(null),[o,c]=l.useState(""),[m,d]=l.useState(!1),p=X(V.reports.submitReport),u=()=>{a(null),c(""),d(!1),r()},h=async()=>{if(!(!i||!n)){d(!0);try{await p({targetType:s,targetId:n,reason:i,details:o.trim()||void 0}),ye("Report submitted. It will appear in the reports queue."),u()}catch(x){const g=x instanceof Error?x.message:"Failed to submit report";Y(g),d(!1)}}};return t.jsx(N.Backdrop,{isOpen:n!==null,onOpenChange:x=>{x||u()},children:t.jsx(N.Container,{children:t.jsxs(N.Dialog,{className:"sm:max-w-md",children:[t.jsx(N.Header,{children:t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx("div",{className:"w-8 h-8 rounded-full bg-danger/10 flex items-center justify-center",children:t.jsx(pa,{size:16,className:"text-danger"})}),t.jsxs(N.Heading,{children:["Report ",s]})]})}),t.jsxs(N.Body,{className:"space-y-4",children:[t.jsx("p",{className:"text-sm text-muted font-medium",children:"Why are you reporting this?"}),t.jsx("div",{className:"flex flex-wrap gap-2",children:Tl.map(x=>t.jsx("button",{type:"button",onClick:()=>a(x.value),className:["px-4 py-2 rounded-full border text-sm transition-colors",i===x.value?"border-danger bg-danger/10 text-danger font-medium":"border-muted/30 text-foreground hover:border-muted/50"].join(" "),children:x.label},x.value))}),i&&t.jsx("textarea",{value:o,onChange:x=>c(x.target.value.slice(0,500)),placeholder:"Additional details (optional)",rows:3,maxLength:500,className:"w-full border border-muted/20 rounded-xl p-3 text-sm bg-transparent text-foreground placeholder:text-muted resize-none"})]}),t.jsxs(N.Footer,{className:"flex gap-2",children:[t.jsx(D,{variant:"ghost",onPress:u,isDisabled:m,children:"Cancel"}),t.jsx(D,{variant:"danger",onPress:h,isDisabled:!i||m,isPending:m,children:"Submit Report"})]})]})})})}const El={transparent:"transparent",white:"#ffffff",black:"#000000",surface:"var(--color-surface)","surface-secondary":"var(--color-surface-secondary)"};function Bs({imageUrl:s,shape:n,background:r,size:i,fallbackContent:a,className:o=""}
1){const c=n??"circle",m=r??"transparent",d=c==="rectangle",p=d?i*1.5:i,u=i,h=c==="circle"?i/2:8,x=El[m]??"transparent";return t.jsx("div",{className:`overflow-hidden flex items-center justify-center shrink-0 ${o}`,style:{width:p,height:u,borderRadius:h,backgroundColor:x},children:s?t.jsx("img",{src:s,alt:"Vendor logo",className:`w-full h-full ${d?"object-contain":"object-cover"}`}):a||null})}const Rl={CA:{AB:"Alberta",BC:"British Columbia",MB:"Manitoba",NB:"New Brunswick",NL:"Newfoundland and Labrador",NS:"Nova Scotia",NT:"Northwest Territories",NU:"Nunavut",ON:"Ontario",PE:"Prince Edward Island",QC:"Quebec",SK:"Saskatchewan",YT:"Yukon"},US:{AL:"Alabama",AK:"Alaska",AS:"American Samoa",AZ:"Arizona",AR:"Arkansas",CA:"California",CO:"Colorado",CT:"Connecticut",DE:"Delaware",DC:"District of Columbia",FL:"Florida",GA:"Georgia",GU:"Guam",HI:"Hawaii",ID:"Idaho",IL:"Illinois",IN:"Indiana",IA:"Iowa",KS:"Kansas",KY:"Kentucky",LA:"Louisiana",ME:"Maine",MD:"Maryland",MA:"Massachusetts",MI:"Michigan",MN:"Minnesota",MS:"Mississippi",MO:"Missouri",MT:"Montana",NE:"Nebraska",NV:"Nevada",NH:"New Hampshire",NJ:"New Jersey",NM:"New Mexico",NY:"New York",NC:"North Carolina",ND:"North Dakota",MP:"Northern Mariana Islands",OH:"Ohio",OK:"Oklahoma",OR:"Oregon",PA:"Pennsylvania",PR:"Puerto Rico",RI:"Rhode Island",SC:"South Carolina",SD:"South Dakota",TN:"Tennessee",TX:"Texas",UT:"Utah",VT:"Vermont",VI:"Virgin Islands",VA:"Virginia",WA:"Washington",WV:"West Virginia",WI:"Wisconsin",WY:"Wyoming"}},Pl={CA:[{code:"AB",name:"Alberta"},{code:"BC",name:"British Columbia"},{code:"MB",name:"Manitoba"},{code:"NB",name:"New Brunswick"},{code:"NL",name:"Newfoundland and Labrador"},{code:"NS",name:"Nova Scotia"},{code:"NT",name:"Northwest Territories"},{code:"NU",name:"Nunavut"},{code:"ON",name:"Ontario"},{code:"PE",name:"Prince Edward Island"},{code:"QC",name:"Quebec"},{code:"SK",name:"Saskatchewan"},{code:"YT",name:"Yukon"}],US:[{code:"AL",name:"Alabama"},{code:"AK",name:"Alaska"},{code:"AS",name:"American Samoa"},{code:"AZ",name:"Arizona"},{code:"AR",name:"Arkansas"},{code:"CA",name:"California"},{code:"CO",name:"Colorado"},{code:"CT",name:"Connecticut"},{code:"DE",name:"Delaware"},{code:"DC",name:"District of Columbia"},{code:"FL",name:"Florida"},{code:"GA",name:"Georgia"},{code:"GU",name:"Guam"},{code:"HI",name:"Hawaii"},{code:"ID",name:"Idaho"},{code:"IL",name:"Illinois"},{code:"IN",name:"Indiana"},{code:"IA",name:"Iowa"},{code:"KS",name:"Kansas"},{code:"KY",name:"Kentucky"},{code:"LA",name:"Louisiana"},{code:"ME",name:"Maine"},{code:"MD",name:"Maryland"},{code:"MA",name:"Massachusetts"},{code:"MI",name:"Michigan"},{code:"MN",name:"Minnesota"},{code:"MS",name:"Mississippi"},{code:"MO",name:"Missouri"},{code:"MT",name:"Montana"},{code:"NE",name:"Nebraska"},{code:"NV",name:"Nevada"},{code:"NH",name:"New Hampshire"},{code:"NJ",name:"New Jersey"},{code:"NM",name:"New Mexico"},{code:"NY",name:"New York"},{code:"NC",name:"North Carolina"},{code:"ND",name:"North Dakota"},{code:"MP",name:"Northern Mariana Islands"},{code:"OH",name:"Ohio"},{code:"OK",name:"Oklahoma"},{code:"OR",name:"Oregon"},{code:"PA",name:"Pennsylvania"},{code:"PR",name:"Puerto Rico"},{code:"RI",name:"Rhode Island"},{code:"SC",name:"South Carolina"},{code:"SD",name:"South Dakota"},{code:"TN",name:"Tennessee"},{code:"TX",name:"Texas"},{code:"UT",name:"Utah"},{code:"VT",name:"Vermont"},{code:"VI",name:"Virgin Islands"},{code:"VA",name:"Virginia"},{code:"WA",name:"Washington"},{code:"WV",name:"West Virginia"},{code:"WI",name:"Wisconsin"},{code:"WY",name:"Wyoming"}]};function Wn(s){return Pl[s]}function qn(s){return Rl[s]}function ds(s){return js[s]?.name??s}function us(s,n){return js[s]?.aaMap[n]??n}const js={CA:{name:"Canada",defaultCurrency:"CAD",aaMap:qn("CA"),aaList:Wn("CA")},US:{name:"United States",defaultCurrency:"USD",aaMap:qn("US"),aaList:Wn("US")}};function xn(s){return js[s]?.defaultCurrency||"USD"}const Yn=["CA","US"];function Ml(s){return s in js}const ws={wrenching:{key:"wrenching",sortPriority:0,name:"Wrenching / Mechanic",description:"Hands-on mechanical work: suspension setup, chassis alignment, brakes, tire mounting, repairs, and race-prep."},coaching:{key:"coaching",sortPriority:1,name:"Coaching",description:"Track-side or remote coaching: driving technique, racing lines, data analysis, racecraft, and mental performance."},kartMaintenance:{key:"kartMaintenance",sortPriority:2,name:"Kart Maintenance",description:"Welding, painting, powder coat, parts, axle/chassis straightening, etc."},engineTuning:{key:"engineTuning",sortPriority:3,name:"Engine Tuning & Rebuilds",description:"Dyno tuning, carb jetting, clutch setup, and full engine rebuilds (2-stroke & 4-stroke classes)."},parts:{key:"parts",sortPriority:4,name:"Parts & Accessories Sales",description:"Selling karting parts: tires, wheels, chains, sprockets, bodywork, seats, and related accessories."},photographer:{key:"photographer",sortPriority:5,name:"Track Photography",description:"Event photography: action shots, podium photos, digital downloads, and prints from race weekends."},apparel:{key:"apparel",sortPriority:6,name:"Apparel & Team Wear",description:"Custom race suits, gloves, boots, team shirts, hoodies, and branded merchandise."},graphics:{key:"graphics",sortPriority:7,name:"Custom Design & Graphics",description:"Painting, wraps, and graphics for karts and helmets for personalized looks."}},Ol=Object.values(ws);function wt({label:s,inputValue:n,onSave:r,isPending:i=!1,isSuccess:a=!1,placeholder:o="",inputType:c="text",isRequired:m=!1,onSuccessReset:d}){const[p,u]=l.useState(n),[h,x]=l.useState(!1);l.useEffect(()=>{h||u(n)},[n,h]),l.useEffect(()=>{a&&h&&x(!1)},[a,h]),l.useEffect(()=>{if(a&&d){const b=setTimeout(d,2e3);return()=>clearTimeout(b)}},[a,d]);async function g(b){b.preventDefault();try{await r(p)}catch{}}return t.jsxs("div",{className:"flex flex-col gap-1",children:[t.jsxs($,{className:"text-muted flex flex-row gap-2",children:[s,a&&!h&&t.jsx(as,{size:16,className:"relative top-px text-accent"})]}),p&&!h&&t.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between sm:justify-start",children:[t.jsx("p",{className:"text-foreground",children:p}),t.jsx(D,{variant:"ghost",size:"sm",className:"underline text-muted",onPress:()=>x(!0),isDisabled:i||a,children:"change"})]}),!p&&!h&&t.jsxs(D,{size:"sm",variant:"ghost",className:"underline",onPress:()=>x(!0),isDisabled:i||a,children:[t.jsx(Ze,{size:12,className:"relative top-px"}),"Add"]}),h&&t.jsx(Fo,{onSubmit:g,className:"flex flex-row gap-4",children:t.jsxs(ue,{name:"editableValue",type:c,className:"w-full",value:p,onChange:b=>u(b),isDisabled:i,isRequired:m,children:[t.jsx($,{className:"sr-only text-",children:s}),t.jsxs("div",{className:"flex flex-row flex-wrap items-center gap-1 sm:gap-4",children:[t.jsx(xe,{className:"grow",placeholder:o||p}),t.jsxs("div",{className:"flex flex-row gap-2",children:[t.jsx(D,{variant:"ghost",size:"sm",className:"text-muted underline",onPress:()=>{x(!1),u(n)},isDisabled:i,children:"cancel"}),t.jsx(D,{type:"submit",size:"sm",variant:"ghost",className:"text-accent underline",isDisabled:i,children:i?"saving...":"save"})]})]}),t.jsx(ct,{children:"cannot be empty"})]})})]})}function $l(){const[s,n]=l.useState([]),[r,i]=l.useState(!1),a=l.useRef(crypto.randomUUID()),o=l.useRef(null),c=is(V.googlePlaces.autocompleteCities),m=is(V.googlePlaces.getPlaceDetails),d=l.useCallback((h,x)=>
1{if(o.current&&clearTimeout(o.current),h.trim().length<2){n([]);return}o.current=setTimeout(async()=>{i(!0);try{const g=await c({input:h,countryCodes:x,sessionToken:a.current});n(g)}catch{n([])}finally{i(!1)}},300)},[c]),p=l.useCallback(async h=>{try{const x=await m({placeId:h,sessionToken:a.current});return a.current=crypto.randomUUID(),n([]),x}catch{return null}},[m]),u=l.useCallback(()=>n([]),[]);return{predictions:s,isSearching:r,search:d,selectPlace:p,clearPredictions:u}}function Fl({value:s,onChange:n,onCitySelected:r,onSelectionStateChange:i,countryCodes:a,label:o="City",placeholder:c="Start typing a city...",isRequired:m,description:d}){const{predictions:p,search:u,selectPlace:h,clearPredictions:x}=$l(),[g,b]=l.useState(!1),f=l.useRef(null),S=l.useRef(null);l.useEffect(()=>{const j=v=>{S.current&&!S.current.contains(v.target)&&f.current&&!f.current.contains(v.target)&&b(!1)};return document.addEventListener("mousedown",j),()=>document.removeEventListener("mousedown",j)},[]);const k=j=>{n(j),i?.(!1),u(j,a)},R=async(j,v)=>{n(v),i?.(!0),x(),b(!1);const y=await h(j);y&&r({locality:y.locality??v,administrativeArea:y.administrativeArea,country:y.country,latitude:y.latitude,longitude:y.longitude})},I=g&&p.length>0;return t.jsxs("div",{ref:f,className:"relative",children:[t.jsxs(ue,{value:s,onChange:k,onFocus:()=>b(!0),isRequired:m,className:"w-full",children:[t.jsx($,{children:o}),t.jsx(xe,{placeholder:c}),d&&t.jsx(ae,{children:d})]}),I&&t.jsx("div",{ref:S,className:"absolute top-full left-0 w-full z-50 mt-1 bg-overlay border border-separator rounded-xl shadow-lg overflow-hidden",children:p.map(j=>t.jsxs("button",{type:"button",className:"w-full text-left px-3 py-2 hover:bg-surface-secondary transition-colors cursor-pointer",onMouseDown:v=>v.preventDefault(),onClick:()=>R(j.placeId,j.mainText),children:[t.jsx("div",{className:"text-foreground font-medium text-sm",children:j.mainText}),t.jsx("div",{className:"text-muted text-xs",children:j.secondaryText})]},j.placeId))})]})}function Ll(){const[s,n]=l.useState([]),[r,i]=l.useState(!1),a=l.useRef(crypto.randomUUID()),o=l.useRef(null),c=is(V.googlePlaces.autocompleteAddresses),m=is(V.googlePlaces.getPlaceDetails),d=l.useCallback((h,x)=>{if(o.current&&clearTimeout(o.current),h.trim().length<3){n([]);return}o.current=setTimeout(async()=>{i(!0);try{const g=await c({input:h,countryCodes:x,sessionToken:a.current});n(g)}catch{n([])}finally{i(!1)}},300)},[c]),p=l.useCallback(async h=>{try{const x=await m({placeId:h,sessionToken:a.current});if(a.current=crypto.randomUUID(),n([]),!x)return null;const g=x.streetNumber??"",b=x.route??"";return{line1:[g,b].filter(Boolean).join(" "),line2:x.subpremise??"",locality:x.locality??"",administrativeArea:x.administrativeArea??"",country:x.country??"",postalCode:x.postalCode??"",latitude:x.latitude,longitude:x.longitude}}catch{return null}},[m]),u=l.useCallback(()=>n([]),[]);return{predictions:s,isSearching:r,search:d,selectPlace:p,clearPredictions:u}}function zl({value:s,onChange:n,onAddressSelected:r,onSelectionStateChange:i,countryCodes:a,label:o="Search Address",placeholder:c="Start typing an address...",isRequired:m,description:d}){const{predictions:p,search:u,selectPlace:h,clearPredictions:x}=Ll(),[g,b]=l.useState(!1),f=l.useRef(null),S=l.useRef(null);l.useEffect(()=>{const j=v=>{S.current&&!S.current.contains(v.target)&&f.current&&!f.current.contains(v.target)&&b(!1)};return document.addEventListener("mousedown",j),()=>document.removeEventListener("mousedown",j)},[]);const k=j=>{n(j),i?.(!1),u(j,a)},R=async(j,v)=>{n(v),i?.(!0),x(),b(!1);const y=await h(j);y&&r(y)},I=g&&p.length>0;return t.jsxs("div",{ref:f,className:"relative",children:[t.jsxs(ue,{value:s,onChange:k,onFocus:()=>b(!0),isRequired:m,className:"w-full",children:[t.jsx($,{children:o}),t.jsx(xe,{placeholder:c}),d&&t.jsx(ae,{children:d})]}),I&&t.jsx("div",{ref:S,className:"absolute top-full left-0 w-full z-50 mt-1 bg-overlay border border-separator rounded-xl shadow-lg overflow-hidden",children:p.map(j=>t.jsx("button",{type:"button",className:"w-full text-left px-3 py-2 hover:bg-surface-secondary transition-colors cursor-pointer",onMouseDown:v=>v.preventDefault(),onClick:()=>R(j.placeId,j.description),children:t.jsx("div",{className:"text-foreground text-sm",children:j.description})},j.placeId))})]})}function Ul({isOpen:s,onOpenChange:n,type:r,initialData:i,onSave:a,isPending:o=!1}){const[c,m]=l.useState(i),[d,p]=l.useState(null),[u,h]=l.useState(!1),[x,g]=l.useState(r==="service"?i.latitude!=null:!0);l.useEffect(()=>{s&&(m(i),p(null),h(!1),g(r==="service"?i.latitude!=null:!0))},[s,i]);const b=async()=>{p(null),g(r==="service"?i.latitude!=null:!0);try{u?await a({physicalAddressLine1:"",physicalAddressLine2:"",physicalAddressLocality:"",physicalAddressAdministrativeArea:"",physicalAddressCountry:"",physicalAddressPostalCode:"",clearPhysicalAddress:!0}):await a(c),n(!1)}catch{p("Failed to save location. Please try again.")}},f=r==="service",[S,k]=l.useState(""),[R,I]=l.useState(!f&&!!i.physicalAddressLine1),j=()=>
1{if(u)return!0;if(f)return c.locationLocality.trim().length>=2&&x;{const y=c;return y.physicalAddressLocality.trim().length>=2&&y.physicalAddressLine1.trim().length>=2}},v=()=>{m(y=>({...y,physicalAddressLine1:"",physicalAddressLine2:"",physicalAddressLocality:"",physicalAddressAdministrativeArea:"",physicalAddressCountry:"",physicalAddressPostalCode:""})),I(!1),h(!0),k(""),p(null)};return t.jsx(N.Backdrop,{isOpen:s,onOpenChange:n,isDismissable:!o,isKeyboardDismissDisabled:o,children:t.jsx(N.Container,{placement:"center",scroll:"inside",children:t.jsxs(N.Dialog,{className:"sm:w-[28rem] max-h-[90dvh] overflow-visible",children:[t.jsx(N.Header,{children:t.jsx(N.Heading,{children:f?"Edit Service Location":"Edit Physical Address"})}),t.jsxs(N.Body,{className:"p-2 space-y-4 overflow-visible",children:[f?t.jsxs(t.Fragment,{children:[t.jsx(Fl,{value:c.locationLocality,onChange:y=>m(w=>({...w,locationLocality:y})),countryCodes:Yn,placeholder:"Search for a city...",isRequired:!0,onSelectionStateChange:y=>{g(y),y||m(w=>({...w,latitude:void 0,longitude:void 0,locationCountry:"",locationAdministrativeArea:""}))},onCitySelected:y=>{m(w=>({...w,locationLocality:y.locality,latitude:y.latitude,longitude:y.longitude,...y.country&&Ml(y.country)?{locationCountry:y.country}:{},...y.administrativeArea?{locationAdministrativeArea:y.administrativeArea}:{}}))}}),x&&c.locationAdministrativeArea&&t.jsx("p",{className:"text-muted text-sm",children:[us(c.locationCountry,c.locationAdministrativeArea),ds(c.locationCountry)].filter(Boolean).join(", ")})]}):t.jsxs(t.Fragment,{children:[t.jsx(zl,{value:S,onChange:k,countryCodes:Yn,placeholder:"Start typing your address...",onSelectionStateChange:I,onAddressSelected:y=>{m(w=>({...w,physicalAddressLine1:y.line1,physicalAddressLine2:y.line2,physicalAddressLocality:y.locality,physicalAddressAdministrativeArea:y.administrativeArea,physicalAddressCountry:y.country,physicalAddressPostalCode:y.postalCode})),h(!1)}}),(i.physicalAddressLine1||R)&&!u&&t.jsx("button",{type:"button",className:"text-muted text-sm underline hover:text-foreground transition-colors text-left",onClick:v,disabled:o,children:"Clear Address"}),R&&c.physicalAddressLine1&&t.jsxs(Xe,{variant:"secondary",className:"space-y-3 p-4",children:[t.jsxs("div",{children:[t.jsx("p",{className:"text-muted text-xs",children:"Address"}),t.jsx("p",{className:"text-foreground text-sm",children:c.physicalAddressLine1})]}),t.jsxs(ue,{value:c.physicalAddressLine2,onChange:y=>m(w=>({...w,physicalAddressLine2:y})),children:[t.jsx($,{className:"text-xs text-muted",children:"Unit / Suite (optional)"}),t.jsx(xe,{placeholder:"unit, apt, etc."})]}),t.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[t.jsxs("div",{children:[t.jsx("p",{className:"text-muted text-xs",children:"What city are you located in?"}),t.jsx("p",{className:"text-foreground text-sm",children:c.physicalAddressLocality})]}),t.jsxs("div",{children:[t.jsx("p",{className:"text-muted text-xs",children:"Province / State"}),t.jsx("p",{className:"text-foreground text-sm",children:c.physicalAddressAdministrativeArea?us(c.physicalAddressCountry,c.physicalAddressAdministrativeArea):"â"})]}),t.jsxs("div",{children:[t.jsx("p",{className:"text-muted text-xs",children:"Country"}),t.jsx("p",{className:"text-foreground text-sm",children:ds(c.physicalAddressCountry)||"â"})]}),t.jsxs("div",{children:[t.jsx("p",{className:"text-muted text-xs",children:"Postal Code"}),t.jsx("p",{className:"text-foreground text-sm",children:c.physicalAddressPostalCode||"â"})]})]})]})]}),d&&t.jsx("p",{className:"text-danger text-sm",children:d})]}),t.jsxs(N.Footer,{className:"pt-4 px-2 border-t border-separator flex flex-row gap-4 justify-end",children:[t.jsxs(D,{variant:"tertiary",onPress:()=>n(!1),isDisabled:o,children:[t.jsx(Me,{size:12,className:"relative top-px"}),"Cancel"]}),t.jsxs(D,{variant:"primary",onPress:b,isDisabled:!j()||o,isPending:o,children:[t.jsx(Ht,{size:12,className:"relative top-px"}),"Save"]})]})]})})})}function Vl({isOpen:s,onOpenChange:n,initialBio:r,onSave:i,isPending:a=!1}){const[o,c]=l.useState(r);l.useEffect(()=>{s&&c(r)},[s,r]);const m=async()=>{await i(o),n(!1)};return t.jsx(N.Backdrop,{isOpen:s,onOpenChange:n,isDismissable:!a,isKeyboardDismissDisabled:a,children:t.jsx(N.Container,{placement:"center",children:t.jsxs(N.Dialog,{className:"sm:w-[28rem]",children:[t.jsx(N.Header,{children:t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx(N.Heading,{children:"Edit Bio"}),t.jsx(ae,{children:"Tell users about your business, experience and what makes you unique?"})]})}),t.jsx(N.Body,{className:"p-6",children:t.jsxs(ue,{value:o,onChange:d=>c(d),children:[t.jsx($,{children:"Bio"}),t.jsx(en,{className:"w-full min-h-32 mt-1",placeholder:"Tell us about your business..."})]})}),t.jsxs(N.Footer,{className:"p-4 border-t border-separator flex flex-row gap-4 justify-end",children:[t.jsxs(D,{variant:"tertiary",onPress:()=>n(!1),isDisabled:a,children:[t.jsx(Me,{size:12,className:"relative top-px"}),"Cancel"]}),t.jsxs(D,{variant:"primary",onPress:m,isDisabled:a,isPending:a,children:[t.jsx(Ht,{size:12,className:"relative top-px"}),"Save"]})]})]})})})}function Kl({selectedTrackIds:s,onChange:n}){const[r,i]=l.useState(""),[a,o]=l.useState(!1),{data:c=[]}=Qe(Je(V.tracks.getAllTracks,{})),m=l.useMemo(()=>c.filter(b=>s.includes(b._id)),[c,s]),d=l.useMemo(()=>{let b=c;if(r.trim()){const f=r.toLowerCase();b=b.filter(S=>S.name.toLowerCase().includes(f)||S.addressLocality?.toLowerCase().includes(f)||S.addressAdministrativeArea?.toLowerCase().includes(f))}return b},[c,r]),p=b=>{s.includes(b)?n(s.filter(f=>f!==b)):n([...s,b])},u=()=>{o(!1)},h=b=>{i(b.target.value),o(!1)},x=()=>{o(!a)},g=b=>{n(b)};return t.jsx("div",{className:"flex flex-col gap-4 h-full",children:t.jsxs("div",{className:"flex-1 flex flex-col min-h-0 gap-3",children:[s.length>0&&t.jsxs("div",{className:a?"flex-1 flex flex-col min-h-0":"shrink-0",children:[t.jsx("div",{className:"shrink-0",children:t.jsxs("button",{onClick:x,className:"flex items-center justify-between p-3 w-full text-left bg-muted/30 hover:bg-muted/50 transition-colors rounded-lg border border-separator",children:[t.jsxs("span",{className:"text-sm font-medium",children:[s.length," ",s.length===1?"track":"tracks"," selected"]}),t.jsx("div",{className:"flex items-center gap-1 text-sm text-primary",children:a?t.jsxs(t.Fragment,{children:["Collapse ",t.jsx(Wo,{size:16})]}):t.jsxs(t.Fragment,{children:["See all ",t.jsx(Ir,{size:16})]})})]})}),a&&t.jsx("div",{className:"flex-1 overflow-y-auto min-h-0 mt-2 border border-separator rounded-lg divide-y divide-separator",children:m.map(b=>t.jsxs("div",{className:"flex items-center gap-3 p-3 hover:bg-muted/50 transition-colors",children:[t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsx("div",{className:"font-medium truncate",children:b.name}),t.jsxs("div",{className:"text-sm text-muted truncate",children:[b.addressLocality,", ",b.addressAdministrativeArea]})]}),t.jsx("button",{onClick:()=>p(b._id),className:"flex items-center justify-center size-8 shrink-0 text-muted hover:text-foreground hover:bg-background/80 rounded transition-colors","aria-label":`Remove ${b.n
1ame}`,children:t.jsx(Me,{size:16})})]},b._id))})]}),t.jsxs("div",{className:a?"shrink-0":"flex-1 flex flex-col min-h-0 gap-2",children:[t.jsx("div",{className:"shrink-0 w-full",children:t.jsxs(ts,{className:"w-full",children:[t.jsx(ts.Prefix,{children:t.jsx(xa,{size:18,className:"text-muted"})}),t.jsx(ts.Input,{className:"w-full",placeholder:"Search tracks by name or location...",value:r,onChange:h,onFocus:u}),t.jsx(ts.Suffix,{children:r&&t.jsx("button",{onClick:()=>i(""),className:"text-muted hover:text-foreground",children:t.jsx(Me,{size:18})})})]})}),!a&&t.jsx("div",{className:"flex-1 overflow-y-auto min-h-0 border border-separator rounded-lg divide-y divide-separator px-4 pb-4",children:d.length===0?t.jsx("div",{className:"p-4 text-center text-muted",children:r?"No tracks found":"Loading tracks..."}):t.jsx(tn,{value:s,onChange:g,name:"tracks",children:d.map(b=>t.jsxs(ve,{value:b._id,children:[t.jsx(ve.Control,{children:t.jsx(ve.Indicator,{})}),t.jsxs(ve.Content,{children:[t.jsx($,{children:b.name}),t.jsxs(ae,{children:[b.addressLocality,", ",b.addressAdministrativeArea]})]})]},b._id))})})]})]})})}function Bl({isOpen:s,onOpenChange:n,onSave:r,isPending:i,tracksSelected:a}){const[o,c]=l.useState(a);function m(p){c(p)}const d=async()=>{await r(o),n(!1)};return t.jsx(N.Backdrop,{isOpen:s,onOpenChange:n,isDismissable:!i,isKeyboardDismissDisabled:i,children:t.jsx(N.Container,{placement:"center",children:t.jsxs(N.Dialog,{className:"sm:w-[28rem]",children:[t.jsx(N.Header,{className:"mb-4",children:t.jsx(N.Heading,{children:"Select the Tracks you service"})}),t.jsx(N.Body,{children:t.jsx(Kl,{onChange:m,selectedTrackIds:o})}),t.jsxs(N.Footer,{className:"p-4 border-t border-separator flex flex-col gap-2",children:[o.length===0&&t.jsx("p",{className:"text-sm text-danger text-center",children:"Select at least one track"}),t.jsxs("div",{className:"flex flex-row gap-4 justify-end",children:[t.jsxs(D,{variant:"tertiary",onPress:()=>n(!1),isDisabled:i,children:[t.jsx(Me,{size:12,className:"relative top-px"}),"Cancel"]}),t.jsxs(D,{variant:"primary",onPress:d,isDisabled:i||o.length===0,isPending:i,children:[t.jsx(Ht,{size:12,className:"relative top-px"}),"Save"]})]})]})]})})})}const Ur={users:_({name:e.optional(e.string()),image:e.optional(e.string()),email:e.optional(e.string()),emailVerificationTime:e.optional(e.number()),phone:e.optional(e.string()),phoneVerificationTime:e.optional(e.number()),isAnonymous:e.optional(e.boolean())}).index("email",["email"]).index("phone",["phone"]),authSessions:_({userId:e.id("users"),expirationTime:e.number()}).index("userId",["userId"]),authAccounts:_({userId:e.id("users"),provider:e.string(),providerAccountId:e.string(),secret:e.optional(e.string()),emailVerified:e.optional(e.string()),phoneVerified:e.optional(e.string())}).index("userIdAndProvider",["userId","provider"]).index("providerAndAccountId",["provider","providerAccountId"]),authRefreshTokens:_({sessionId:e.id("authSessions"),expirationTime:e.number(),firstUsedTime:e.optional(e.number()),parentRefreshTokenId:e.optional(e.id("authRefreshTokens"))}).index("sessionId",["sessionId"]).index("sessionIdAndParentRefreshTokenId",["sessionId","parentRefreshTokenId"]),authVerificationCodes:_({accountId:e.id("authAccounts"),provider:e.string(),code:e.string(),expirationTime:e.number(),verifier:e.optional(e.string()),emailVerified:e.optional(e.string()),phoneVerified:e.optional(e.string())}).index("accountId",["accountId"]).index("code",["code"]),authVerifiers:_({sessionId:e.optional(e.id("authSessions")),signature:e.optional(e.string())}).index("signature",["signature"]),authRateLimits:_({identifier:e.string(),lastAttemptTime:e.number(),attemptsLeft:e.number()}).index("identifier",["identifier"])};hn(Ur);const Hl=e.union(e.literal("max_neg"),e.literal("med_neg"),e.literal("slight_neg"),e.literal("neutral"),e.literal("slight_pos"),e.literal("med_pos"),e.literal("max_pos")),Wl=e.union(e.literal("full_fwd"),e.literal("med_fwd"),e.literal("neutral"),e.literal("med_rear"),e.literal("full_rear")),ql=e.union(e.literal("hole_1"),e.literal("hole_2"),e.literal("hole_3"),e.literal("hole_4"),e.literal("hole_5")),Gn=e.union(e.literal("short_50"),e.literal("medium_75"),e.literal("long_95"),e.literal("extra_long_115")),Yl=e.union(e.literal("extra_soft"),e.literal("soft"),e.literal("medium"),e.literal("hard"),e.literal("extra_hard")),Xn=e.union(e.literal("none"),e.literal("soft"),e.literal("medium"),e.literal("hard"),e.literal("in"),e.literal("out")),Gl=e.union(e.literal("aluminum"),e.literal("magnesium"),e.literal("steel"),e.literal("douglas_aluminum"),e.literal("douglas_magnesium"),e.literal("mxc_magnesium"),e.literal("otk_aluminum"),e.literal("freeline_magnesium")),Xl=e.union(e.literal("stock"),e.literal("rlv_4104"),e.literal("rlv_4106"),e.literal("rlv_4107"),e.literal("rlv_4108"),e.literal("rlv_4109"),e.literal("other"),e.literal("custom")),Jl=e.union(e.literal("standard"),e.literal("soft"),e.literal("medium"),e.literal("stiff"),e.literal("extra_stiff"),e.literal("otk"),e.literal("tillett"),e.literal("jecko"),e.literal("ribtect"),e.literal("other")),Ql=e.union(e.literal("none"),e.literal("left_only"),e.literal("right_only"),e.literal("both_loose"),e.literal("both_tight"),e.literal("left_tight_right_loose"),e.literal("left_loose_right_tight")),Zl=["business","online"],ec=e.union(...Zl.map(e.literal)),Vr=["wrenching","coaching","kartMaintenance","engineTuning","photographer","apparel","parts","graphics"],Jn=e.union(...Vr.map(e.literal)),tc=["US","CA"],sc=e.union(...tc.map(e.literal)),nc=["F","C"],rc=e.union(...nc.map(e.literal)),ic=["circle","square","rectangle"],ac=e.union(...ic.map(e.literal)),oc=["transparent","white","black","surface","surface-secondary"],lc=e.union(...oc.map(e.literal)),cc=["free","hourly","fixed","contact"],dc=e.union(...cc.map(e.literal)),uc=["CAD","USD"],$s=e.union(...uc.map(e.literal)),mc=["facebook","instagram","youtube","twitter","tiktok"],Qn=e.object(mc.reduce((s,n)=>(s[n]=e.union(e.string(),e.null()),s),{})),pc=["superAdmin","admin"],hc=e.array(e.union(...pc.map(s=>e.literal(s)))),gc=["practice","qualifying","heat","race"],xc=e.union(...gc.map(e.literal)),fc=["2-stroke","4-stroke"],bc=e.union(...fc.map(e.literal)),yc=["pro","proplus","foun
1der"],vc=e.union(...yc.map(e.literal)),jc=["stripe","revenuecat","admin","promo"],wc=e.union(...jc.map(e.literal)),Sc=["automatic","code"],Nc=e.union(...Sc.map(e.literal)),Ic=["qr_scan","manual_entry","onboarding_qr_scan","onboarding_manual_entry"],Cc=e.union(...Ic.map(e.literal)),_c=["complete_kart","chassis","engine","tires","safety_gear","bodywork","electronics","tools","parts","apparel","other"],Ac=e.union(..._c.map(e.literal)),kc=["new","like_new","good","fair","parts_only"],Tc=e.union(...kc.map(e.literal)),Dc=["active","pending","sold","expired","deleted"],Zn=e.union(...Dc.map(e.literal)),Ec=["service","marketplace"],Rc=e.union(...Ec.map(e.literal)),Pc=["active","archived","closed"],Mc=e.union(...Pc.map(e.literal)),Oc=["welcome","vendor_welcome","vendor_created","service_created","preregistration_complete","admin_notification","new_message","message_email_reminder","new_review_notification","vendor_review_response","listing_inquiry","listing_expired","vendor_migrated_online","broadcast","user_moderation","promo_reminder","admin_ticket_comment","subscription_welcome"],$c=e.union(...Oc.map(e.literal)),Fc=["published","deleted"],Lc=e.union(...Fc.map(e.literal)),zc=["on_time","great_communication","quality_work","fair_price","professional","knowledgeable"],Uc=e.array(e.union(...zc.map(e.literal))),Vc=["24hr","3day","7day"],er=e.union(...Vc.map(e.literal)),Kc=["queued","sent","delivered","bounced","opened","clicked","complained"],Bc=e.union(...Kc.map(e.literal)),Hc=["listing","service","review","user","conversation"],Wc=e.union(...Hc.map(e.literal)),qc=e.union(...fa.map(s=>e.literal(s))),Yc=["spam","offensive","harassment","fraud","inappropriate_content","other"],Gc=e.union(...Yc.map(e.literal)),Xc=["pending","reviewed","dismissed"],Jc=e.union(...Xc.map(e.literal)),{users:xp,...Qc}=Ur;hn({...Qc,users:_({email:e.string(),name:e.string(),image:e.optional(e.string()),lastUpdated:e.number(),lastOAuthService:e.string(),authProvider:e.string(),disabled:e.optional(e.boolean()),isReviewUser:e.optional(e.boolean()),isIAP:e.optional(e.boolean()),newUserOnboardingComplete:e.optional(e.number()),stripeCustomerId:e.optional(e.string()),subscriptionTier:e.optional(vc),subscriptionSource:e.optional(wc),isDeleted:e.optional(e.boolean()),deletedAt:e.optional(e.number()),emailUnsubscribed:e.optional(e.boolean()),promoExpiresAt:e.optional(e.number()),promoReminderSent:e.optional(e.boolean()),promoReminder3DaySent:e.optional(e.boolean()),promoWelcomeShown:e.optional(e.boolean()),promotionId:e.optional(e.id("promotions"))}).index("by_isDeleted",["isDeleted"]).index("by_email",["email"]).index("by_stripeCustomerId",["stripeCustomerId"]).index("by_subscriptionSource_and_promoExpiresAt",["subscriptionSource","promoExpiresAt"]).index("by_subscriptionTier",["subscriptionTier"]).index("by_disabled",["disabled"]).searchIndex("search_by_name",{searchField:"name"}).searchIndex("search_by_email",{searchField:"email"}),roles:_({userId:e.id("users"),roles:hc}).index("by_userId",["userId"]),userProfile:_({userId:e.id("users"),altName:e.string(),image:e.optional(e.id("_storage"))}).index("by_userId",["userId"]),userFavoriteTracks:_({userId:e.id("users"),tracks:e.array(e.id("tracks"))}).index("by_userId",["userId"]),serviceLikes:_({userId:e.id("users"),serviceId:e.id("services"),liked:e.boolean()}).index("by_userId_service",["userId","serviceId"]),serviceViews:_({serviceId:e.id("services"),userId:e.id("users"),viewDate:e.string(),viewerCountry:e.optional(e.string()),viewerAdministrativeArea:e.optional(e.string())}).index("by_service_user_date",["serviceId","userId","viewDate"]).index("by_user",["userId"]),serviceViewCounts:_({serviceId:e.id("services"),count:e.number(),isActive:e.boolean()}).index("by_serviceId",["serviceId"]).index("by_isActive_count",["isActive","count"]),vendorLikes:_({userId:e.id("users"),vendorId:e.id("vendors"),liked:e.boolean()}).index("by_userId_vendor",["userId","vendorId"]),vendors:_({userId:e.id("users"),logoImage:e.optional(e.id("_storage")),logoShape:e.optional(ac),logoBackground:e.optional(lc),name:e.optional(e.string()),description:e.string(),website:e.optional(e.string()),email:e.optional(e.string()),phoneNumber:e.optional(e.string()),rating:e.optional(e.number()),type:ec,physicalAddressLine1:e.optional(e.string()),physicalAddressLine2:e.optional(e.string()),physicalAddressPostalCode:e.optional(e.string()),physicalAddressLocality:e.optional(e.string()),physicalAddressAdministrativeArea:e.optional(e.string()),physicalAddressCountry:e.optional(e.string()),locationCountry:e.optional(e.string()),locationLocality:e.optional(e.string()),locationAdministrativeArea:e.optional(e.string()),latitude:e.optional(e.number()),longitude:e.optional(e.number()),tracks:e.optional(e.array(e.id("tracks"))),operatesAtAllTracks:e.optional(e.boolean()),onboardingCompleted:e.optional(e.boolean()),onlineServiceTypes:e.optional(e.array(Jn)),shipsToCountries:e.optional(e.array(sc)),suggestedOnline:e.optional(e.boolean()),likes:e.optional(e.number())}).index("by_userId",["userId"]).index("by_type",["type"]).searchIndex("search_by_name",{searchField:"name"}),services:_({vendorId:e.id("vendors"),name:e.string(),description:e.string(),images:e.array(e.id("_storage")),type:Jn,isDisabled:e.boolean(),pricingType:dc,price:e.number(),currency:$s,likes:e.number(),isDeleted:e.boolean(),deletedAt:e.optional(e.number())}).index("by_vendor",["vendorId"]).index("by_vendor_type",["vendorId","type"]).index("by_isDisabled_isDeleted",["isDisabled","isDeleted"]).index("by_vendor_isDeleted",["vendorId","isDeleted"]),showcaseItems:_({vendorId:e.id("vendors"),image:e.id("_storage"),title:e.string(),price:e.optional(e.number()),maxPrice:e.optional(e.number()),currency:e.optional($s),externalUrl:e.string(),sortOrder:e.number(),isDisabled:e.boolean(),isDeleted:e.boolean(),deletedAt:e.optional(e.number())}).index("by_vendor",["vendorId"]).index("by_vendor_isDeleted",["vendorId","isDeleted"]),tracks:_({name:e.string(),shortName:e.optional(e.string()),slug:e.optional(e.string()),latitude:e.optional(e.number()),longitude:e.optional(e.number()),isActive:e.boolean(),owner:e.optional(e.string()),phoneNumber:e.optional(e.string()),email:e.optional(e.string()),website:e.optional(e.string()),socials:e.optional(Qn),description1:e.optional(e.string()),description2:e.optional(e.string()),logoUrl:e.optional(e.id("_storage")),images:e.optional(e.array(e.id("_storage"))),addressLine1:e.optional(e.string()),addressLine2:e.optional(e.string()),addressLocality:e.optional(e.string()),addressAdministrativeArea:e.optional(e.string()),addressCountry:e.optional(e.string()),addressPostalCode:e.optional(e.string())}).index("by_slug",["slug"]).index("by_isActive",["isActive"]),trackDesigns:_({userId:e.id("users"),trackId:e.id("tracks"),imageStorageId:e.id("_storage"),drawingDataStorageId:e.optional(e.id("_storage")),backgroundImageStorageId:e.optional(e.id("_storage")),ownsBackgroun
1dImage:e.optional(e.boolean()),createdAt:e.number()}).index("by_userId",["userId"]).index("by_user_track",["userId","trackId"]).index("by_userId_createdAt",["userId","createdAt"]).index("by_backgroundImageStorageId",["backgroundImageStorageId"]),scheduleSeries:_({slug:e.string(),name:e.string(),shortName:e.string(),scope:e.string(),website:e.optional(e.string()),homeTrackId:e.optional(e.id("tracks")),country:e.string(),region:e.optional(e.string()),isActive:e.boolean(),description:e.optional(e.string()),history:e.optional(e.string()),logoUrl:e.optional(e.id("_storage")),images:e.optional(e.array(e.id("_storage"))),convenerName:e.optional(e.string()),phoneNumber:e.optional(e.string()),email:e.optional(e.string()),socials:e.optional(Qn),pushedAt:e.number()}).index("by_slug",["slug"]),scheduleSeriesDocuments:_({sourceKey:e.string(),seriesSlug:e.string(),season:e.string(),raceYear:e.number(),documentType:e.literal("seriesRules"),version:e.number(),pdfUrl:e.string(),sourcePdfR2Key:e.optional(e.string()),fileName:e.str
1ing(),fileSize:e.optional(e.number()),uploadedAt:e.optional(e.number()),pushedAt:e.number(),updatedAt:e.number()}).index("by_sourceKey",["sourceKey"]).index("by_seriesSlug_season_documentType",["seriesSlug","season","documentType"]),scheduleLocalizedSeriesRules:_({sourceKey:e.string(),seriesSlug:e.string(),season:e.string(),raceYear:e.number(),version:e.number(),pushedAt:e.number(),updatedAt:e.number()}).index("by_sourceKey",["sourceKey"]).index("by_seriesSlug_and_season",["seriesSlug","season"]),scheduleLocalizedSeriesRuleTranslations:_({localizedSeriesRuleId:e.id("scheduleLocalizedSeriesRules"),languageCode:e.string(),pdfUrl:e.string(),fileName:e.string(),fileSize:e.optional(e.number()),uploadedAt:e.optional(e.number()),documentVersion:e.optional(e.number()),createdAt:e.number(),updatedAt:e.number()}).index("by_localizedSeriesRuleId",["localizedSeriesRuleId"]).index("by_localizedSeriesRuleId_and_languageCode",["localizedSeriesRuleId","languageCode"]),seriesFollows:_({userId:e.id("users"),seriesSlug:e.string(),isFollowing:e.boolean(),createdAt:e.number(),updatedAt:e.number(),unfollowedAt:e.optional(e.number())}).index("by_user",["userId"]).index("by_user_and_isFollowing",["userId","isFollowing"]).index("by_user_and_seriesSlug",["userId","seriesSlug"]).index("by_seriesSlug_and_isFollowing",["seriesSlug","isFollowing"]),scheduleEngineTypes:_({slug:e.string(),name:e.string(),stroke:e.number(),displacement:e.optional(e.string()),notes:e.optional(e.string()),pushedAt:e.number()}).index("by_slug",["slug"]),scheduleSeriesClasses:_({sourceClassKey:e.string(),sourceClassId:e.string(),seriesSlug:e.string(),raceYear:e.number(),name:e.string(),key:e.string(),notes:e.optional(e.string()),properties:e.optional(e.array(e.object({category:e.string(),description:e.string()}))),sortOrder:e.number(),sourceVersion:e.number(),isActive:e.boolean(),deactivatedAt:e.optional(e.number()),pushedAt:e.number(),updatedAt:e.number()}).index("by_sourceClassKey",["sourceClassKey"]).index("by_seriesSlug_raceYear",["seriesSlug","raceYear"]).index("by_seriesSlug_raceYear_isActive",["seriesSlug","raceYear","isActive"]),scheduleEvents:_({sourceKey:e.string(),sourceEventId:e.string(),sourceRevision:e.optional(e.number()),raceClassesRevision:e.optional(e.number()),seriesSlug:e.string(),season:e.string(),sourceTitle:e.string(),seriesTitle:e.string(),startTime:e.number(),endTime:e.number(),trackId:e.optional(e.id("tracks")),trackSlug:e.optional(e.string()),trackLayout:e.optional(e.string()),roundNumber:e.optional(e.number()),roundNumberEnd:e.optional(e.number()),eventType:e.optional(e.string()),raceFormat:e.optional(e.string()),isPointsEvent:e.optional(e.boolean()),notes:e.optional(e.string()),description:e.optional(e.string()),sourceUrl:e.optional(e.string()),division:e.optional(e.string()),engineTypes:e.optional(e.array(e.string())),linkedRaces:e.array(e.object({seriesSlug:e.string(),seriesShortName:e.string(),roundNumber:e.optional(e.number())})),isCancelled:e.boolean(),cancelledAt:e.optional(e.number()),raceControlEnabled:e.optional(e.boolean()),raceControlEnabledAt:e.optional(e.number()),raceControlEnabledByEmail:e.optional(e.string()),raceControlUpdatedAt:e.optional(e.number()),raceControlEnabledNotificationSentAt:e.optional(e.number()),pushedAt:e.number()}).index("by_sourceKey",["sourceKey"]).index("by_seriesSlug_season",["seriesSlug","season"]).index("by_trackId_season",["trackId","season"]).index("by_sourceEventId",["sourceEventId"]).index("by_startTime",["startTime"]).index("by_seriesSlug_season_isCancelled",["seriesSlug","season","isCancelled"]).index("by_trackId_season_isCancelled",["trackId","season","isCancelled"]).index("by_isCancelled_startTime",["isCancelled","startTime"]),scheduleRaceClasses:_({scheduleEventId:e.id("scheduleEvents"),sourceClassKey:e.string(),sourceType:e.union(e.literal("series"),e.literal("race")),name:e.string(),description:e.optional(e.string()),sortOrder:e.number(),sourceVersion:e.number(),isActive:e.boolean(),deactivatedAt:e.optional(e.number()),pushedAt:e.number(),updatedAt:e.number()}).index("by_scheduleEventId",["scheduleEventId"]).index("by_scheduleEventId_and_sourceClassKey",["scheduleEventId","sourceClassKey"]),scheduleEventDayItems:_({scheduleEventId:e.id("scheduleEvents"),sourceKey:e.string(),sourceItemKey:e.string(),dayDate:e.number(),dayLabel:e.optional(e.string()),rowKind:e.union(e.literal("dayHeading"),e.literal("title"),e.literal("subtitle"),e.literal("timedItem"),e.literal("text"),e.literal("break"),e.literal("ceremony"),e.literal("note"),e.literal("session"),e.literal("other")),startTime:e.optional(e.number()),endTime:e.optional(e.number()),label:e.string(),displayLabelRaw:e.optional(e.string()),timeTextRaw:e.optional(e.string()),textStyle:e.optional(e.union(e.literal("normal"),e.literal("italic"),e.literal("bold"),e.literal("boldItalic"))),isImportant:e.optional(e.boolean()),semanticTags:e.optional(e.array(e.string())),visualCueRaw:e.optional(e.string()),groupName:e.optional(e.string()),itemTypeLabel:e.optional(e.string()),sessionType:e.optional(e.union(e.literal("practice"),e.literal("warmup"),e.literal("qual
1ifying"),e.literal("heat"),e.literal("preFinal"),e.literal("final"),e.literal("feature"),e.literal("meeting"),e.literal("break"),e.literal("registration"),e.literal("tech"),e.literal("other"))),laps:e.optional(e.number()),durationMinutes:e.optional(e.number()),notes:e.optional(e.string()),sortOrder:e.number(),sourceConfidence:e.optional(e.number()),dayColumnRaw:e.optional(e.string()),sectionName:e.optional(e.string()),subsectionName:e.optional(e.string()),rawLabel:e.optional(e.string()),rawLine:e.optional(e.string()),sourcePage:e.optional(e.number()),sourceBoundingBoxJson:e.optional(e.string()),sourceVersion:e.number(),pushedAt:e.number()}).index("by_scheduleEventId",["scheduleEventId"]).index("by_scheduleEventId_and_sortOrder",["scheduleEventId","sortOrder"]).index("by_sourceKey",["sourceKey"]).index("by_sourceItemKey",["sourceItemKey"]),scheduleEventDocuments:_({scheduleEventId:e.id("scheduleEvents"),sourceKey:e.string(),documentType:e.union(e.literal("timetable"),e.literal("supplementalRules")),pdfUrl:e.string(),fileName:e.string(),fileSize:e.optional(e.number()),uploadedAt:e.optional(e.number()),sourceVersion:e.optional(e.number()),pushedAt:e.number(),updatedAt:e.number()}).index("by_scheduleEventId",["scheduleEventId"]).index("by_scheduleEventId_and_documentType",["scheduleEventId","documentType"]).index("by_sourceKey_and_documentType",["sourceKey","documentType"]),scheduleRaceFiles:_({scheduleEventId:e.id("scheduleEvents"),sourceFileKey:e.string(),kind:e.union(e.literal("timetable"),e.literal("supplementalRules"),e.literal("raceFile")),name:e.string(),description:e.optional(e.string()),sortOrder:e.number(),version:e.number(),pushedAt:e.number(),updatedAt:e.number()}).index("by_scheduleEventId",["scheduleEventId"]).index("by_scheduleEventId_and_kind_and_sortOrder",["scheduleEventId","kind","sortOrder"]).index("by_sourceFileKey",["sourceFileKey"]),scheduleRaceFileTranslations:_({scheduleRaceFileId:e.id("scheduleRaceFiles"),languageCode:e.string(),pdfUrl:e.string(),fileName:e.string(),fileSize:e.optional(e.number()),uploadedAt:e.optional(e.number()),documentVersion:e.optional(e.number()),createdAt:e.number(),updatedAt:e.number()}).index("by_scheduleRaceFileId",["scheduleRaceFileId"]).index("by_scheduleRaceFileId_and_languageCode",["scheduleRaceFileId","languageCode"]),scheduleResultSessions:_({scheduleEventId:e.id("scheduleEvents"),sourceKey:e.string(),sourceEventId:e.string(),sourceSessionKey:e.string(),sourceClassKey:e.optional(e.string()),seriesSlug:e.string(),season:e.string(),raceYear:e.number(),sourceVersion:e.number(),sourceFileName:e.string(),sourcePdfUrl:e.optional(e.string()),sourcePdfR2Key:e.optional(e.string()),layout:e.union(e.literal("RaceFull"),e.literal("QualifyReduced")),eventCode:e.optional(e.string()),resultClassNumberRaw:e.optional(e.string()),resultClassNumber:e.optional(e.number()),resultClassLabel:e.optional(e.string()),rawResultClassLabel:e.optional(e.string()),resultCategoryKey:e.string(),resultCategoryLabel:e.string(),sessionName:e.optional(e.string()),sessionType:e.optional(e.string()),startedLine:e.optional(e.string()),startTimeRaw:e.optional(e.string()),lapsPlanned:e.optional(e.number()),trackName:e.optional(e.string()),trackLengthKm:e.optional(e.number()),sessionDate:e.optional(e.string()),sessionDateTimeText:e.optional(e.string()),printedAt:e.optional(e.string()),sortedOn:e.optional(e.string()),summaryItemsJson:e.optional(e.string()),resultColumnsJson:e.optional(e.string()),rowCount:e.number(),announcementCount:e.number(),pushedAt:e.number(),updatedAt:e.number()}).index("by_scheduleEventId",["scheduleEventId"]).index("by_sourceKey",["sourceKey"]).index("by_sourceSessionKey",["sourceSessionKey"]),scheduleResultRows:_({scheduleResultSessionId:e.id("scheduleResultSessions"),sourceSessionKey:e.string(),sourceRowKey:e.string(),sortOrder:e.number(),pos:e.number(),positionRaw:e.string(),kartNo:e.string(),driverName:e.string(),classNameRaw:e.optional(e.string()),laps:e.optional(e.number()),diffRaw:e.optional(e.string()),totalTimeRaw:e.optional(e.string()),bestLapRaw:e.optional(e.string()),bestSpeedRaw:e.optional(e.string()),bestLapSpeedKmh:e.optional(e.number()),inLap:e.optional(e.number()),natState:e.optional(e.string()),sponsor:e.optional(e.string()),classificationStatus:e.string(),rawValuesJson:e.optional(e.string())}).index("by_scheduleResultSessionId",["scheduleResultSessionId"]).index("by_scheduleResultSessionId_and_sortOrder",["scheduleResultSessionId","sortOrder"]).index("by_sourceSessionKey",["sourceSessionKey"]),scheduleResultAnnouncements:_({scheduleResultSessionId:e.id("scheduleResultSessions"),sourceSessionKey:e.string(),sourceAnnouncementKey:e.string(),sortOrder:e.number(),rawText:e.string(),affectedKarts:e.array(e.string()),penaltyType:e.optional(e.string()),reason:e.optional(e.string())}).index("by_scheduleResultSessionId",["scheduleResultSessionId"]).index("by_scheduleResultSessionId_and_sortOrder",["scheduleResultSessionId","sortOrder"]).index("by_sourceSessionKey",["sourceSessionKey"]),raceBroadcasts:_({scheduleEventId:e.id("scheduleEvents"),sourceBroadcastKey:e.string(),sourceBroadcastId:e.string(),sourceKey:e.string(),sourceEventId:e.string(),seriesSlug:e.string(),season:e.string(),eventTitle:e.string(),alertLevel:e.union(e.literal("info"),e.literal("warning"),e.literal("important")),title:e.optional(e.string()),message:e.string(),notificationMessage:e.optional(e.string()),sendNotification:e.boolean(),notificationSent:e.boolean(),notificationStatus:e.union(e.literal("not_requested"),e.literal("disabled"),e.literal("pending"),e.literal("sent"),e.literal("failed")),notificationRecipientCount:e.optional(e.number()),notificationJobCount:e.optional(e.number()),notificationCompletedJobCount:e.optional(e.number()),notificationFailedJobCount:e.optional(e.number()),notificationSentCount:e.optional(e.number()),notificationFailedTokenCount:e.optional(e.number()),notificationSentAt:e.optional(e.number()),notificationError:e.optional(e.string()),createdAt:e.number(),receivedAt:e.number(),updatedAt:e.number()}).index("by_sourceBroadcastKey",["sourceBroadcastKey"]).index("by_scheduleEventId",["scheduleEventId"]).index("by_scheduleEventId_and_createdAt",["scheduleEventId","createdAt"]),raceBroadcastImages:_({raceBroadcastId:e.id("raceBroadcasts"),scheduleEventId:e.id("scheduleEvents"),sourceImageKey:e.string(),storageId:e.id("_storage"),thumbnailStorageId:e.optional(e.id("_storage")),width:e.number(),height:e.number(),thumbnailWidth:e.optional(e.number()),thumbnailHeight:e.optional(e.number()),contentType:e.string(),fileSize:e.number(),sortOrder:e.number(),createdAt:e.number()}).index("by_raceBroadcastId",["raceBroadcastId"]).index("by_scheduleEventId",["scheduleEventId"]).index("by_sourceImageKey",["sourceImageKey"]),raceNotificationSubscriptions:_({userId:e.id("users"),scheduleEventId:e.id("scheduleEvents"),isSubscribed:e.boolean(),raceUpdatesEnabled:e.optional(e.boolean()),createdAt:e.number(),updatedAt:e.number(),unsubscribedAt:e.optional(e.number())}).index("by_user",["userId"]).index("by_user_and_scheduleEventId",["userId","scheduleEventId"]).index("by_scheduleEventId",["scheduleEventId"]).index("by_scheduleEventId_and_isSubscribed",["scheduleEventId","isSubscribed"]).index("by_scheduleEventId_and_raceUpdatesEnabled",["scheduleEventId","raceUpdatesEnabled"]),raceResultNotificationSettings:_({userId:e.id("users"),scheduleEventId:e.id("scheduleEvents"),allClassesSubscribed:e.boolean(),createdAt:e.number(),updatedAt:e.number()}).index("by_user_and_scheduleEventId",["userId","scheduleEventId"]).index("by_scheduleEventId_and_allClassesSubscribed",["scheduleEventId","allClassesSubscribed"]),raceResultNotificationSeriesDefaults:_({userId:e.id("users"),seriesSlug:e.string(),season:e.string(),isEnabled:e.boolean(),allClassesSubscribed:e.boolean(),createdAt:e.number(),updatedAt:e.number()}).index("by_user",["userId"]).index("by_user_and_seriesSlug_and_season",["userId","seriesSlug","season"]),raceResultNotificationSeriesDefaultClasses:_({userId:e.id("users"),seriesSlug:e.string(),season:e.string(),sourceClassKey:e.string(),isSubscribed:e.boolean(),createdAt:e.number(),updatedAt:e.number()}).index("by_user_and_seriesSlug_and_season",["userId","seriesSlug","season"]).index("by_user_and_seriesSlug_and_season_and_sourceClassKey",["userId","seriesSlug","season","sourceClassKey"]).index("by_user_and_seriesSlug_and_season_and_isSubscribed",["userId","seriesSlug","season","isSubscribed"]),raceResultClassNotificationSubscriptions:_({userId:e.id("users"),scheduleEventId:e.id("scheduleEvents"),sourceClassKey:e.string(),isSubscribed:e.boolean(),createdAt:e.number(),updatedAt:e.number()}).index("by_user_and_scheduleEventId",["userId","scheduleEventId"]).index("by_user_and_scheduleEventId_and_sourceClassKey",["userId","scheduleEventId","sourceClassKey"]).index("by_user_and_scheduleEventId_and_isSubscribed",["userId","scheduleEventId","isSubscribed"]).index("by_scheduleEventId_and_sourceClassKey_and_isSubscribed",["scheduleEventId","sourceClassKey","isSubscribed"]),raceBroadcastReadStates:_({userId:e.id("users"),scheduleEventId:e.id("scheduleEvents"),lastReadAt:e.number(),updatedAt:e.number()}).index("by_user_and_scheduleEventId",["userId","scheduleEventId"]).index("by_scheduleEventId",["scheduleEventId"]),emailEvents:_({emailId:e.string(),userId:e.optional(e.id("users")),vendorId:e.optional(e.id("vendors")),emailType:$c,recipientEmail:e.string(),status:Bc,sentAt:e.number(),deliveredAt:e.optional(e.number()),openedAt:e.optional(e.number()),clickedAt:e.optional(e.number()),bouncedAt:e.optional(e.number()),complainedAt:e.optional(e.number()),errorMessage:e.optional(e.string()),broadcastId:e.optional(e.id("emailBroadcasts"))}).index("by_emailId",["emailId"]).index("by_userId",["userId"]).index("by_broadcastId",["broadcastId"]),conversations:_({conversation_type:e.optional(Rc),initiatorUserId:e.id("users"),vendorId:e.optional(e.id("vendors")),vendorUserId:e.id("users"),serviceId:e.optional(e.id("services")),trackId:e.optional(e.id("tracks")),forWhom:e.optional(e.string()),dateNeeded:e.optional(e.number()),budgetMin:e.optional(e.number()),budgetMax:e.optional(e.number()),listingId:e.optional(e.id("listings")),status:Mc,initiatorLastReadAt:e.number(),vendorLastReadAt:e.number(),initiatorHasUnread:e.boolean(),vendorHasUnread:e.boolean(),lastMessageAt:e.number(),initialSubject:e.string(),lastMessagePreview:e.optional(e.string()),initiatorName:e.optional(e.string()),initiatorImageUrl:e.optional(e.string()),vendorDisplayName:e.optional(e.string()),vendorDisplayImageUrl:e.optional(e.string()),contextName:e.optional(e.string()),contextIsDeleted:e.optional(e.boolean())}).index("by_initiator",["initiatorUserId","lastMessageAt"]).index("by_vendorUserId",["vendorUserId","lastMessageAt"]).index("by_service",["serviceId"]).index("by_listing",["listingId"]).index("by_initiator_unread",["initiatorUserId","initiatorHasUnread","status"]).index("by_vendorUser_unread",["vendorUserId","vendorHasUnread","status"]).index("by_lastMessageAt",["lastMessageAt"]),messages:_({conversationId:e.id("conversations"),senderId:e.id("users"),senderRole:e.union(e.literal("initiator"),e.literal("vendor")),content:e.string(),imageId:e.optional(e.id("_storage")),linkPreviewUrl:e.optional(e.string()),linkPreviewDisabled:e.optional(e.boolean()),isSystemMessage:e.optional(e.boolean()),systemMessageType:e.optional(e.string()),editedAt:e.optional(e.number()),deletedAt:e.optional(e.number()),deletedBy:e.optional(e.id("users"))}).index("by_conversation",["conversationId"]).index("by_conversation_sender",["conversationId","senderId"]),linkPreviews:_({normalizedUrl:e.string(),originalUrl:e.string(),status:e.union(e.literal("pending"),e.literal("ready"),e.literal("failed")),title:e.optional(e.string()),description:e.optional(e.string()),imageUrl:e.optional(e.string()),imageWidth:e.optional(e.number()),imageHeight:e.optional(e.number()),siteName:e.optional(e.string()),domain:e.string(),finalUrl:e.optional(e.string()),errorMessage:e.optional(e.string()),fetchedAt:e.optional(e.number()),parserVersion:e.optional(e.number()),expiresAt:e.number(),updatedAt:e.number()}).index("by_normalizedUrl",["normalizedUrl"]).index("by_expiresAt",["expiresAt"]),pushTokens:_({userId:e.id("users"),token:e.string(),platform:e.union(e.literal("ios"),e.literal("android")),lastUpdated:e.number()}).index("by_userId",["userId"]).index("by_token",["token"]),conversationEmailAlerts:_({conversationId:e.id("conversations"),alertTier:er,alertedAt:e.number()}).index("by_conversation",["conversationId"]),pendingConversationReminders:_({userId:e.id("users"),conversationId:e.id("conversations"),unreadSince:e.number(),alertTier:e.optional(er),alertedAt:e.optional(e.number())}).index("by_user_conversation",["userId","conversationId"]).index("by_alertTier_unreadSince",["alertTier","unreadSince"]).index("by_alertTier_alertedAt",["alertTier","alertedAt"]).index("by_user",["userId"]),presence:_({userId:e.id("users"),lastSeenAt:e.number()}).index("by_userId",["userId"]),reviews:_({serviceId:e.id("services"),vendorId:e.id("vendors"),authorUserId:e.id("users"),overallRating:e.number(),qualityRating:e.number(),communicationRating:e.number(),timelinessRating:e.number(),valueRating:e.number(),body:e.optional(e.string()),images:e.array(e.id("_storage")),attributes:Uc,vendorResponse:e.optional(e.string()),vendorRespondedAt:e.optional(e.number()),helpfulCount:e.number(),status:Lc,editedAt:e.optional(e.number()),editCount:e.number()}).index("by_service",["serviceId","status"]).index("by_vendor",["vendorId","status"]).index("by_author",["authorUserId"]).index("by_author_service",["authorUserId","serviceId"]).index("by_status",["status"]),reviewHelpfulVotes:_({reviewId:e.id("reviews"),userId:e.id("users"),isHelpful:e.boolean()}).index("by_review",["reviewId"]).index("by_user_review",["userId","reviewId"]),reviewAggregates:_({serviceId:e.id("services"),vendorId:e.id("vendors"),totalReviews:e.number(),averageRating:e.number(),bayesianRating:e.number(),ratingDistribution:e.object({one:e.number(),two:e.number(),three:e.number(),four:e.number(),five:e.number()}),averageQuality:e.optional(e.number()),averageCommunication:e.optional(e.number()),averageTimeliness:e.optional(e.number()),averageValue:e.optional(e.number()),attributeCounts:e.object({on_time:e.number(),great_communication:e.number(),quality_work:e.number(),fair_price:e.number(),professional:e.number(),knowledgeable:e.number()}),lastUpdatedAt:e.number()}).index("by_service",["serviceId"]).index("by_vendor",["vendorId"]),listings:_({sellerUserId:e.id("users"),title:e.string(),description:e.string(),images:e.array(e.id("_storage")),category:Ac,condition:Tc,price:e.number(),currency:$s,isNegotiable:e.boolean(),locationLocality:e.string(),locationAdministrativeArea:e.string(),locationCountry:e.string(),latitude:e.optional(e.number()),longitude:e.optional(e.number()),status:Zn,soldAt:e.optional(e.number()),expiresAt:e.number(),views:e.number(),isDeleted:e.boolean(),deletedAt:e.optional(e.number())}).index("by_seller",["sellerUserId"]).index("by_status",["status"]).index("by_seller_status",["sellerUserId","status"]).index("by_status_expires",["status","expiresAt"]).index("by_seller_isDeleted",["sellerUserId","isDeleted"]),paddockDays:_({userId:e.id("users"),title:e.string(),trackName:e.optional(e.string()),trackId:e.optional(e.id("tracks")),date:e.number(),type:e.union(e.literal("practice"),e.literal("race"),e.literal("test")),scheduleEventId:e.optional(e.id("scheduleEvents"))}).index("by_user",["userId"]).index("by_user_and_date",["userId","date"]).index("by_user_scheduleEvent",["userId","scheduleEventId"]),paddockSessions:_({paddockDayId:e.id("paddockDays"),userId:e.id("users"),sessionNumber:e.number(),sessionName:e.optional(e.string()),manualLaps:e.optional(e.number()),bestLap:e.optional(e.string()),flHotPsi:e.optional(e.number()),flColdPsi:e.optional(e.number()),frHotPsi:e.optional(e.number()),frColdPsi:e.optional(e.number()),rlHotPsi:e.optional(e.number()),rlColdPsi:e.optional(e.number()),rrHotPsi:e.optional(e.number()),rrColdPsi:e.optional(e.number()),frontWidth:e.optional(e.number()),rearWidth:e.optional(e.number()),frontTeeth:e.optional(e.number()),rearTeeth:e.optional(e.number()),weather:e.optional(e.string()),temp:e.optional(e.number()),notes:e.optional(e.string()),scheduledTime:e.optional(e.number()),eng
1ineType:e.optional(bc),sessionType:e.optional(xc),camber:e.optional(Hl),caster:e.optional(Wl),ackermann:e.optional(ql),frontHubType:e.optional(Gn),rearHubType:e.optional(Gn),axleType:e.optional(Yl),frontStabilizer:e.optional(Xn),rearStabilizer:e.optional(Xn),rimType:e.optional(Gl),exhaust:e.optional(Xl),seatType:e.optional(Jl),seatStrut:e.optional(Ql)}).index("by_day",["paddockDayId"]).index("by_user",["userId"]).index("by_user_and_sessionNumber",["userId","sessionNumber"]),paddockSessionLaps:_({sessionId:e.id("paddockSessions"),userId:e.id("users"),lapNumber:e.number(),lapMs:e.number(),sessionTireSetLinkId:e.optional(e.id("paddockSessionTireSets"))}).index("by_session",["sessionId"]).index("by_session_and_lapNumber",["sessionId","lapNumber"]).index("by_user",["userId"]),paddockSessionTireSets:_({userId:e.id("users"),sessionId:e.id("paddockSessions"),tireSetId:e.id("tireSets"),isActive:e.boolean(),lapsApplied:e.number()}).index("by_session",["sessionId"]).index("by_session_and_isActive",["sessionId","isActive"]).index("by_session_and_tireSet",["sessionId","tireSetId"]).index("by_user_and_tireSet",["userId","tireSetId"]).index("by_user",["userId"]),userScheduleEvents:_({userId:e.id("users"),scheduleEventId:e.id("scheduleEvents"),isPinned:e.boolean(),result:e.optional(e.string()),notes:e.optional(e.string()),lastWeatherAlertPrecipLevel:e.optional(e.union(e.literal(0),e.literal(1),e.literal(2))),lastWeatherAlertCold:e.optional(e.boolean()),lastWeatherAlertHeat:e.optional(e.boolean()),lastWeatherAlertAt:e.optional(e.number()),overviewSentAt:e.optional(e.number())}).index("by_user",["userId"]).index("by_user_event",["userId","scheduleEventId"]).index("by_scheduleEventId",["scheduleEventId"]).index("by_scheduleEventId_and_isPinned",["scheduleEventId","isPinned"]),paddockInventory:_({userId:e.id("users"),name:e.string(),quantity:e.number(),unit:e.optional(e.string()),category:e.string()}).index("by_user",["userId"]),paddockInventoryCategories:_({userId:e.id("users"),name:e.string(),sortOrder:e.number()}).index("by_user",["userId"]),tireSets:_({userId:e.id("users"),setNumber:e.number(),customName:e.optional(e.string()),brand:e.string(),purpose:e.union(e.literal("slick"),e.literal("wet")),totalLaps:e.number(),linkedSessionCount:e.number(),notes:e.optional(e.string()),isDeleted:e.boolean(),deletedAt:e.optional(e.number())}).index("by_user",["userId"]).index("by_user_setNumber",["userId","setNumber"]).index("by_user_and_isDeleted",["userId","isDeleted"]),tires:_({userId:e.id("users"),tireNumber:e.optional(e.number()),barcode:e.optional(e.string()),brand:e.string(),brandNormalized:e.optional(e.string()),isCustomBrand:e.optional(e.boolean()),model:e.optional(e.string()),modelNormalized:e.optional(e.string()),hardness:e.union(e.literal("soft"),e.literal("medium"),e.literal("hard"),e.literal("xhard")),lifespanLaps:e.number(),widthInches:e.number(),diameterInches:e.number(),rimDiameterInches:e.number(),purpose:e.union(e.literal("slick"),e.literal("wet")),wearOuter:e.number(),wearCenter:e.number(),wearInner:e.number(),laps:e.optional(e.number()),membershipCount:e.optional(e.number()),isMounted:e.optional(e.boolean()),latestSetPosition:e.optional(e.union(e.literal("fl"),e.literal("fr"),e.literal("rl"),e.literal("rr")))}).index("by_user",["userId"]).index("by_user_and_tireNumber",["userId","tireNumber"]).index("by_user_barcode",["userId","barcode"]).index("by_user_and_isMounted",["userId","isMounted"]).index("by_user_and_latestSetPosition",["userId","latestSetPosition"]).index("by_user_and_brandNormalized",["userId","brandNormalized"]).index("by_user_and_modelNormalized",["userId","modelNormalized"]).index("by_user_and_isCustomBrand",["userId","isCustomBrand"]).index("by_user_and_widthInches",["userId","widthInches"]).index("by_user_and_diameterInches",["userId","diameterInches"]).index("by_user_and_rimDiameterInches",["userId","rimDiameterInches"]).index("by_user_and_laps",["userId","laps"]),tireSetTires:_({userId:e.id("users"),tireId:e.id("tires"),tireSetId:e.id("tireSets"),setPosition:e.union(e.literal("fl"),e.literal("fr"),e.literal("rl"),e.literal("rr"))}).index("by_set",["tireSetId"]).index("by_set_and_setPosition",["tireSetId","setPosition"]).index("by_tire_and_set",["tireId","tireSetId"]).index("by_user_and_tire",["userId","tireId"]).index("by_user_and_setPosition",["userId","setPosition"]),tireBrands:_({name:e.string(),normalizedName:e.string(),logoImage:e.id("_storage"),barcodePrefixes:e.optional(e.array(e.string())),sortOrder:e.number()}).index("by_normalizedName",["normalizedName"]).index("by_sortOrder",["sortOrder"]),tireModels:_({brandId:e.id("tireBrands"),brandNormalizedName:e.string(),model:e.string(),normalizedModel:e.string(),purpose:e.union(e.literal("slick"),e.literal("wet")),widthInches:e.number(),diameterInches:e.number(),rimDiameterInches:e.number(),hardness:e.optional(e.union(e.literal("soft"),e.literal("medium"),e.literal("hard"),e.literal("xhard")))}).index("by_brandId",["brandId"]).index("by_brandId_and_normalizedModel",["brandId","normalizedModel"]).index("by_brandNormalizedName_and_normalizedModel",["brandNormalizedName","normalizedModel"]),trackWeather:_({trackId:e.id("tracks"),currentTempF:e.number(),currentCondition:e.string(),currentIconUrl:e.string(),hourlyForecast:e.array(e.object({time:e.number(),tempF:e.number(),condition:e.string(),iconUrl:e.string(),humidity:e.number(),windSpeedMph:e.number(),windDirection:e.string(),precipChance:e.number()})),dailyForecast:e.optional(e.array(e.object({date:e.number(),highTempF:e.number(),lowTempF:e.number(),condition:e.string(),iconUrl:e.string(),precipChance:e.number(),windSpeedMph:e.number(),humidity:e.number()}))),previousDailyForecast:e.optional(e.array(e.object({date:e.number(),highTempF:e.number(),lowTempF:e.number(),condition:e.string(),iconUrl:e.string(),precipChance:e.number(),windSpeedMph:e.number(),humidity:e.number()}))),lastUpdatedAt:e.number(),trackTimezoneOffsetHours:e.optional(e.number())}).index("by_trackId",["trackId"]),userWeatherPreferences:_({userId:e.id("users"),alertRain:e.optional(e.boolean()),alertStorms:e.optional(e.boolean()),alertHeat:e.optional(e.boolean()),alertCold:e.optional(e.boolean()),maxPerDay:e.optional(e.number()),lookaheadDays:e.optional(e.number()),enabled:e.optional(e.boolean()),temperatureUnit:e.optional(rc)}).index("by_user",["userId"]),scheduleEventAlertState:_({scheduleEventId:e.id("scheduleEvents"),lastAlertedPrecipLevel:e.union(e.literal(0),e.literal(1),e.literal(2)),lastAlertedCold:e.boolean(),lastAlertedHeat:e.boolean(),lastAlertSentAt:e.optional(e.number()),lastAlertedDailyForecast:e.optional(e.array(e.object({date:e.number(),highTempF:e.number(),lowTempF:e.number(),condition:e.string(),iconUrl:e.string(),precipChance:e.number(),windSpeedMph:e.number(),humidity:e.number()}))),pendingAlertedDailyForecast:e.optional(e.array(e.object({date:e.number(),highTempF:e.number(),lowTempF:e.number(),condition:e.string(),iconUrl:e.string(),precipChance:e.number(),windSpeedMph:e.number(),humidity:e.number()})))}).index("by_scheduleEventId",["scheduleEventId"]),weatherAlertHistory:_({userId:e.id("users"),scheduleEventId:e.id("scheduleEvents"),trackId:e.id("tracks"),alertType:e.string(),sentAt:e.number()}).index("by_user_event",["userId","scheduleEventId"]).index("by_user_date",["userId","sentAt"]),reports:_({reporterUserId:e.id("users"),targetType:Wc,targetListingId:e.optional(e.id("listings")),targetServiceId:e.optional(e.id("services")),targetReviewId:e.optional(e.id("reviews")),targetUserId:e.optional(e.id("users")),targetConversationId:e.optional(e.id("conversations")),reason:Gc,details:e.optional(e.string()),status:Jc,reviewedAt:e.optional(e.number()),reviewedBy:e.optional(e.id("users")),adminNotes:e.optional(e.string())}).index("by_reporter",["reporterUserId"]).index("by_status",["status"]).index("by_target_listing",["targetListingId"]).index("by_target_service",["targetServiceId"]).index("by_target_review",["targetReviewId"]).index("by_target_user",["targetUserId"]).index("by_target_conversation",["targetConversationId"]),blockedUsers:_({blockerUserId:e.id("users"),blockedUserId:e.id("users")}).index("by_blocker",["blockerUserId"]).index("by_blocked",["blockedUserId"]).index("by_blocker_blocked",["blockerUserId","blockedUserId"]),contactSubmissions:_({email:e.string(),submittedAt:e.number()}).index("by_email_time",["email","submittedAt"]),adminActions:_({actionType:e.union(e.literal("listing_removed"),e.literal("service_removed"),e.literal("review_removed"),e.literal("user_suspended")),listingId:e.optional(e.id("listings")),serviceId:e.optional(e.id("services")),reviewId:e.optional(e.id("reviews")),targetUserId:e.id("users"),targetUserName:e.string(),targetUserEmail:e.string(),itemSnapshot:e.string(),previousListingStatus:e.optional(Zn),previousUserDisabled:e.optional(e.boolean()),adminUserId:e.id("users"),adminUserName:e.string(),violationReason:qc,violationDetail
1s:e.optional(e.string()),originalReportId:e.optional(e.id("reports")),isReinstated:e.optional(e.boolean()),reinstatedAt:e.optional(e.number()),reinstatedById:e.optional(e.id("users")),reinstatedByName:e.optional(e.string())}).index("by_targetUser",["targetUserId"]).index("by_actionType",["actionType"]).index("by_admin",["adminUserId"]).index("by_originalReport",["originalReportId"]),emailBroadcasts:_({subject:e.string(),previewText:e.optional(e.string()),content:e.any(),imageStorageIds:e.optional(e.array(e.id("_storage"))),audience:e.union(e.object({type:e.literal("all_users")}),e.object({type:e.literal("all_vendors")}),e.object({type:e.literal("custom"),userIds:e.array(e.id("users"))})),status:e.union(e.literal("draft"),e.literal("sending"),e.literal("sent"),e.literal("failed")),createdBy:e.id("users"),createdAt:e.number(),sentAt:e.optional(e.number()),recipientCount:e.optional(e.number()),sentCount:e.optional(e.number()),failedCount:e.optional(e.number())}).index("by_status",["status"]).index("by_createdAt",["createdAt"]),promotions:_({name:e.string(),isEnabled:e.boolean(),startMs:e.number(),endMs:e.number(),grantDurationDays:e.number(),promoKind:e.optional(Nc),codeHash:e.optional(e.string()),codeDisplay:e.optional(e.string()),codePayload:e.optional(e.string()),maxRedemptions:e.optional(e.number()),redemptionCount:e.optional(e.number()),createdBy:e.optional(e.id("users")),createdAt:e.optional(e.number()),updatedAt:e.optional(e.number()),heroImageStorageId:e.optional(e.id("_storage")),headline:e.string(),subheadline:e.string(),features:e.array(e.object({title:e.string(),description:e.string()})),ctaLabel:e.string()}).index("by_startMs",["startMs"]).index("by_codeHash",["codeHash"]),promotionRedemptions:_({promotionId:e.id("promotions"),userId:e.id("users"),codeHash:e.string(),redeemedAt:e.number(),source:Cc}).index("by_promotionId",["promotionId"]).index("by_userId_and_promotionId",["userId","promotionId"]).index("by_userId_and_codeHash",["userId","codeHash"]),adminTickets:_({title:e.string(),body:e.string(),images:e.array(e.id("_storage")),status:e.union(e.literal("pending"),e.literal("started"),e.literal("testing"),e.literal("completed")),tag:e.optional(e.union(e.literal("bug"),e.literal("feature"),e.literal("backlog"),e.literal("admin"))),createdBy:e.id("users"),createdAt:e.number(),startedBy:e.optional(e.id("users")),startedAt:e.optional(e.number()),completedBy:e.optional(e.id("users")),completedAt:e.optional(e.number()),completionNote:e.optional(e.string()),completionImages:e.optional(e.array(e.id("_storage"))),releaseId:e.optional(e.id("adminReleases")),notForRelease:e.optional(e.boolean())}).index("by_status_and_createdAt",["status","createdAt"]).index("by_releaseId_and_notForRelease_and_createdAt",["releaseId","notForRelease","createdAt"]).index("by_releaseId",["releaseId"]),adminTicketComments:_({ticketId:e.id("adminTickets"),createdBy:e.id("users"),createdAt:e.number(),body:e.string(),images:e.array(e.id("_storage")),editedAt:e.optional(e.number())}).index("by_ticketId_and_createdAt",["ticketId","createdAt"]),adminReleases:_({version:e.string(),description:e.optional(e.string()),playStoreApprovedAt:e.optional(e.number()),iosStoreApprovedAt:e.optional(e.number()),isPublishedToMobile:e.optional(e.boolean()),mobileTitle:e.optional(e.string()),mobileSummary:e.optional(e.string()),mobileBullets:e.optional(e.array(e.string())),mobileHeroImageStorageId:e.optional(e.id("_storage")),mobileFeatureActionKey:e.optional(e.union(e.literal("tireRack"))),mobileRequiresProForFeatureAction:e.optional(e.boolean()),createdBy:e.id("users"),createdAt:e.number()}).index("by_createdAt",["createdAt"]).index("by_isPublishedToMobile_and_version_and_createdAt",["isPublishedToMobile","version","createdAt"]).index("by_isPublishedToMobile_and_createdAt",["isPublishedToMobile","createdAt"]),mobileStoreVersions:_({platform:e.union(e.literal("ios"),e.literal("android")),latestVersion:e.union(e.string(),e.null()),storeUrl:e.string(),latestVersionFirstSeenAt:e.union(e.number(),e.null()),lastCheckedAt:e.union(e.number(),e.null()),lastError:e.union(e.string(),e.null()),source:e.union(e.literal("cron"),e.literal("manual")),updatedAt:e.number()}).index("by_platform",["platform"])});function Zc({isOpen:s,onOpenChange:n,vendorProfile:r}){const[i,a]=l.useState(r.onlineServiceTypes||[]),{mutateAsync:o,isPending:c}=J({mutationFn:X(V.profile.updateOnlineServiceTypes)}),m=async()=>{try{await o({vendorId:r._id,onlineServiceTypes:i}),n(!1)}catch(d){console.error("Failed to update service types:",d),Y("Failed to save service categories. Please try again.")}};return t.jsx(N.Backdrop,{isOpen:s,onOpenChange:n,children:t.jsx(N.Container,{children:t.jsxs(N.Dialog,{className:"sm:w-[28rem]",children:[t.jsx(N.Header,{children:t.jsx(N.Heading,{children:"Product Categories"})}),t.jsxs(N.Body,{children:[t.jsx("p",{className:"text-muted text-sm mb-4",children:"Select up to 4 product categories your website covers."}),t.jsx(tn,{value:i,onChange:d=>
1a(d),children:Vr.map(d=>{const p=ws[d],u=i.includes(d),h=i.length>=4;return t.jsxs(ve,{value:d,className:"mb-2",isDisabled:!u&&h,children:[t.jsx(ve.Control,{children:t.jsx(ve.Indicator,{})}),t.jsx(ve.Content,{children:t.jsx($,{className:"font-medium text-sm",children:p.name})})]},d)})})]}),t.jsxs(N.Footer,{children:[t.jsx(D,{variant:"ghost",onPress:()=>n(!1),children:"Cancel"}),t.jsx(D,{variant:"primary",onPress:m,isDisabled:c||i.length===0,isPending:c,children:c?t.jsx(je,{size:"sm"}):"Save"})]})]})})})}const ed=[{code:"US",name:"United States"},{code:"CA",name:"Canada"}];function td({isOpen:s,onOpenChange:n,vendorProfile:r}){const[i,a]=l.useState(r.shipsToCountries||[]),{mutateAsync:o,isPending:c}=J({mutationFn:X(V.profile.updateShipsToCountries)}),m=async()=>{try{await o({vendorId:r._id,shipsToCountries:i}),n(!1)}catch(d){console.error("Failed to update shipping countries:",d),Y("Failed to save shipping countries. Please try again.")}};return t.jsx(N.Backdrop,{isOpen:s,onOpenChange:n,children:t.jsx(N.Container,{children:t.jsxs(N.Dialog,{className:"sm:w-[24rem]",children:[t.jsx(N.Header,{children:t.jsx(N.Heading,{children:"Shipping Countries"})}),t.jsxs(N.Body,{children:[t.jsx("p",{className:"text-muted text-sm mb-4",children:"Select which countries your website ships to."}),t.jsx(tn,{value:i,onChange:d=>a(d),children:ed.map(d=>t.jsxs(ve,{value:d.code,className:"mb-2",children:[t.jsx(ve.Control,{children:t.jsx(ve.Indicator,{})}),t.jsx(ve.Content,{children:t.jsx($,{className:"font-medium",children:d.name})})]},d.code))})]}),t.jsxs(N.Footer,{children:[t.jsx(D,{variant:"ghost",onPress:()=>n(!1),children:"Cancel"}),t.jsx(D,{variant:"primary",onPress:m,isDisabled:c||i.length===0,isPending:c,children:c?t.jsx(je,{size:"sm"}):"Save"})]})]})})})}function sd({isOpen:s,onOpenChange:n,vendorProfile:r}){const[i,a]=l.useState(!1),{mutateAsync:o,isPending:c}=J({mutationFn:X(V.profile.migrateToOnlineVendor),onSuccess:p=>{ye(`Migrated to Online Vendor. ${p.showcaseItemsCreated} showcase items created.`),n(!1)},onError:p=>{Y(p.message||"Migration failed. Please try again.")}}),m=async()=>{await o({vendorId:r._id})},d=p=>{c||(p||a(!1),n(p))};return t.jsx(re.Backdrop,{isOpen:s,onOpenChange:d,isDismissable:!c,isKeyboardDismissDisabled:c,
1children:t.jsx(re.Container,{children:t.jsxs(re.Dialog,{className:"sm:max-w-[520px]",children:[t.jsxs(re.Header,{children:[t.jsx(re.Icon,{status:"warning",children:t.jsx(vs,{size:20})}),t.jsx(re.Heading,{children:"Migrate to Online Business"})]}),t.jsxs(re.Body,{className:"space-y-4",children:[t.jsxs("p",{className:"text-muted",children:["If your business is primarily online â such as an online parts store, apparel shop, or distributor â the ",t.jsx("strong",{className:"text-foreground",children:"Online Vendor"})," type is designed for you. Instead of being contacted through the app, users will be directed straight to your website."]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx($,{className:"text-sm font-medium text-foreground",children:"What will change:"}),t.jsxs("ul",{className:"text-sm text-muted list-disc list-inside space-y-1",children:[t.jsxs("li",{children:["Your existing services will be converted to ",t.jsx("strong",{className:"text-foreground",children:"Showcase"})," items"]}),t.jsx("li",{children:"Users will visit your website instead of messaging you through the app"}),t.jsx("li",{children:"You'll select which service categories your website covers"}),t.jsx("li",{children:"Your showcase items will link to your website â you can edit the URLs later"})]})]}),t.jsx("p",{className:"text-warning font-medium",children:"This action cannot be undone."}),t.jsx("div",{className:"pt-2",children:t.jsxs(ve,{isSelected:i,onChange:a,isDisabled:c,
1children:[t.jsx(ve.Control,{children:t.jsx(ve.Indicator,{})}),t.jsx(ve.Content,{children:t.jsx($,{className:"text-sm",children:"I understand I cannot go back after migrating to Online"})})]})})]}),t.jsxs(re.Footer,{children:[t.jsx(D,{variant:"ghost",onPress:()=>d(!1),isDisabled:c,children:"Cancel"}),t.jsx(D,{variant:"primary",onPress:m,isDisabled:!i||c,isPending:c,children:"Migrate to Online"})]})]})})})}const nd=[{value:"circle",label:"Circle"},{value:"square",label:"Square"},{value:"rectangle",label:"Rectangle"}],rd=[{value:"transparent",label:"None",colorClass:"",isDashed:!0},{value:"white",label:"White",colorClass:"bg-white"},{value:"black",label:"Black",colorClass:"bg-black"},{value:"surface",label:"Gray 1",colorClass:"bg-surface"},{value:"surface-secondary",label:"Gray 2",colorClass:"bg-surface-secondary"}];function id({value:s,onChange:n}){return t.jsxs("div",{children:[t.jsx("p",{className:"text-xs font-semibold text-muted uppercase tracking-wide mb-2",children:"Shape"}),t.jsx("div",{className:"flex gap-2 flex-wrap",children:nd.map(r=>{const i=s===r.value,a=r.value==="rectangle"?48:32,o=r.value==="circle"?"rounded-full":"rounded-md";return t.jsxs("button",{type:"button",onClick:()=>n(r.value),className:`flex flex-col items-center gap-1.5 px-3 py-2 rounded-xl border-2 transition-colors ${i?"border-success":"border-transparent bg-default hover:bg-default/80"}
1`,children:[t.jsx("div",{className:`h-8 bg-default-foreground/30 ${o}`,style:{width:a}}),t.jsx("span",{className:`text-xs ${i?"text-foreground":"text-muted"}`,children:r.label})]},r.value)})})]})}function ad({value:s,onChange:n}){return t.jsxs("div",{children:[t.jsx("p",{className:"text-xs font-semibold text-muted uppercase tracking-wide mb-2",children:"Background"}),t.jsx("div",{className:"flex gap-2 flex-wrap",children:rd.map(r=>{const i=s===r.value;return t.jsxs("button",{type:"button",onClick:()=>n(r.value),className:`flex flex-col items-center gap-1.5 px-2.5 py-2 rounded-xl border-2 transition-colors ${i?"border-success":"border-transparent bg-default hover:bg-default/80"}`,children:[t.jsx("div",{className:`w-7 h-7 rounded-full ${r.colorClass} ${r.isDashed?"border border-dashed border-muted":"border border-default"}`}),t.jsx("span",{className:`text-xs ${i?"text-foreground":"text-muted"}`,children:r.label})]},r.value)})})]})}function od({isOpen:s,onOpenChange:n,vendorProfile:r,currentLogoUrl:i,avatarUrl:a}){const o=l.useRef(null),[c,m]=l.useState(null),[d,p]=l.useState(null),[u,h]=l.useState(!1),[x,g]=l.useState(null),[b,f]=l.useState(r.logoShape??"circle"),[S,k]=l.useState(r.logoBackground??"transparent"),{mutateAsync:R}=J({mutationFn:X(V.profile.generateVendorLogoUploadUrl)}),{mutateAsync:I,isPending:j}=J({mutationFn:X(V.profile.updateVendorLogo)}),v=!!r.logoImage,y=c||i||a,w=(r.name||"V").slice(0,2).toUpperCase(),C=async te=>{const L=te.target.files?.[0];if(L){if(!L.type.startsWith("image/")){g("Please select an image file");return}if(L.size>10*1024*1024){g("Image must be less than 10MB");return}g(null),h(!0);try{const{file:E,preview:Q}=await ba(L,{targetSize:512,quality:.4});m(Q);const Z=await R({}),le=await fetch(Z,{method:"POST",headers:{"Content-Type":E.type},body:E});if(!le.ok)throw new Error("Upload failed");const{storageId:pe}=await le.json();p(pe)}catch(E){console.error("Logo upload error:",E),g(E instanceof Error?E.message:"Upload failed"),m(null),p(null)}finally{h(!1),o.current&&(o.current.value="")}}},T=b!==(r.logoShape??"circle"),P=S!==(r.logoBackground??"transparent"),O=!!d||T||P,H=async()=>{if(O)try{await I({vendorId:r._id,...d?{storageId:d}:{},logoShape:b,logoBackground:S}),m(null),p(null),n(!1)}catch(te){console.error("Failed to save logo:",te),g("Failed to save logo")}},A=()=>{c&&URL.revokeObjectURL(c),m(null),p(null),g(null),f(r.logoShape??"circle"),k(r.logoBackground??"transparent"),n(!1)},z=u||j;return t.jsx(N.Backdrop,{isOpen:s,onOpenChange:te=>{te?n(te):A()},isDismissable:!z,isKeyboardDismissDisabled:z,children:t.jsx(N.Container,{placement:"center",children:t.jsxs(N.Dialog,{className:"sm:w-[28rem]",children:[t.jsx(N.Header,{children:t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx(N.Heading,{children:"Vendor Logo"}),t.jsx(ae,{children:"Create your vendor logo"})]})}),t.jsxs(N.Body,{className:"p-6 flex flex-col items-center gap-6",children:[t.jsx(Bs,{imageUrl:y,shape:b,background:S,size:96,fallbackContent:t.jsx("span",{className:"text-2xl font-light text-foreground",children:w})}),!v&&!c&&t.jsx("p",{className:"text-muted text-sm",children:"Currently using your profile picture"}),c&&t.jsx("p",{className:"text-accent text-sm",children:"New logo selected"}),t.jsxs("div",{className:"w-full flex flex-col gap-4",children:[t.jsx(id,{value:b,onChange:f}),t.jsx(ad,{value:S,onChange:k})]}),t.jsxs("div",{className:"w-full",children:[t.jsx("p",{className:"text-xs font-semibold text-muted uppercase tracking-wide mb-2",children:"Image"}),t.jsx("input",{ref:o,type:"file",accept:"image/*",onChange:C,className:"hidden"}),t.jsxs(D,{variant:"secondary",onPress:()=>o.current?.click(),isDisabled:z,children:[u?t.jsx(je,{size:"sm"}):t.jsx(sn,{size:16}),u?"Uploading...":"Select Image"]})]}),x&&t.jsx("p",{className:"text-danger text-sm",children:x})]}),t.jsx(N.Footer,{className:"p-4 border-t border-separator flex flex-row gap-4 justify-end",children:t.jsxs("div",{className:"flex flex-row gap-4",children:[t.jsxs(D,{variant:"tertiary",onPress:A,isDisabled:z,children:[t.jsx(Me,{size:14}),"Cancel"]}),O&&t.jsxs(D,{variant:"primary",onPress:H,isDisabled:z,isPending:j,children:[t.jsx(Ht,{size:12}),"Save"]})]})})]})})})}const ld={wrenching:t.jsx(zr,{size:16}),coaching:t.jsx(Mr,{size:16}),kartMaintenance:t.jsx(Uo,{size:16}),engineTuning:t.jsx(Pr,{size:16}),parts:t.jsx($r,{size:16}),photographer:t.jsx(Rr,{size:16}),apparel:t.jsx(Lr,{size:16}),graphics:t.jsx(Fr,{size:16})};function cd({loggedInUser:s,vendorProfile:n,avatarUrl:r,onSetupVendorProfile:i}){const{data:a}=Qe(Je(V.files.getImageUrl,n?.logoImage?{storageId:n.logoImage}:"skip")),[o,c]=l.useState(null),[m,d]=l.useState(!1),[p,u]=l.useState("service"),[h,x]=l.useState(!1),[g,b]=l.useState(!1),[f,S]=l.useState(!1),[k,R]=l.useState(!1),[I,j]=l.useState(!1),[v,y]=l.useState(!1),{mutateAsync:w,isPending:C,isSuccess:T,error:P,reset:O}=J({mutationFn:X(V.profile.updateVendorInfo),onSettled:()=>{setTimeout(()=>c(null),2100)},onError:F=>{console.log({error:F})}}),{mutateAsync:H,isPending:A,isSuccess:z,reset:te}=J({mutationFn:X(V.profile.updateVendorLocation)}),{mutateAsync:L,isPending:E,isSuccess:Q,reset:Z}=J({mutationFn:X(V.tracks.updateTracks)}),[le,pe]=l.useState(null),[ie,fe]=l.useState(!1),[oe,Te]=l.useState(!1),W=z?le:null;l.useEffect(()=>{if(z){const F=setTimeout(()=>{te(),pe(null)},2e3);return()=>clearTimeout(F)}},[z,te]),l.useEffect(()=>{if(Q){const F=setTimeout(()=>Z(),2e3);return()=>clearTimeout(F)}},[Q,Z]),l.useEffect(()=>{if(oe){const F=setTimeout(()=>Te(!1),2e3);return()=>clearTimeout(F)}},[oe]);const Ie=async(F,De)=>{if(!n)throw new Error("No company profile");c(F),await w({userId:s._id,vendorId:n._id,[F]:De||null})},he=F=>({isPending:o===F&&C,isSuccess:o===F&&T,errorMessage:o===F?P?.message:void 0,onSuccessReset:o===F?O:void 0}),Se=F=>F.replace(/^https?:\/\//,"").trim(),q=async F=>{if(!n)throw new Error("No company profile");if(pe(p),p==="service"){const De=F;await H({userId:s._id,vendorId:n._id,locationCountry:De.locationCountry,locationAdministrativeArea:De.locationAdministrativeArea,locationLocality:De.locationLocality,latitude:De.latitude,longitude:De.longitude})}else{const{clearPhysicalAddress:De,...Jt}=F;await H({userId:s._id,vendorId:n._id,...Jt,...De?{clearPhysicalAddress:!0}:{}})}},ze=async F=>{if(!n)throw new Error("No company profile");fe(!0);try{await w({userId:s._id,vendorId:n._id,description:F}),Te(!0)}finally{fe(!1)}},M=async F=>{if(!n)throw new Error("No company profile");await L({vendorId:n._id,tracks:F})},tt=()=>({locationCountry:n?.locationCountry||"",locationAdministrativeArea:n?.locationAdministrativeArea||"",locationLocality:n?.locationLocality||""}),$e=()=>({physicalAddressLine1:n?.physicalAddressLine1||"",physicalAddressLine2:n?.physicalAddressLine2||"",physicalAddressLocality:n?.physicalAddressLocality||"",physicalAddressAdministrativeArea:n?.physicalAddressAdministrativeArea||"",physicalAddressCountry:n?.physicalAddressCountry||"",physicalAddressPostalCode:n?.physicalAddressPostalCode||""}),Ue=F=>{u(F),d(!0)};return n?t.jsxs(t.Fragment,{children:[t.jsxs(B,{className:"w-full p-4 space-y-4 sm:p-8 sm:space-y-8",children:[t.jsx(B.Header,{className:"flex flex-row flex-wrap md:flex-none gap-8 justify-between",children:t.jsxs("div",{className:"flex flex-col gap-1",children:[t.jsx("h2",{className:"text-xl",children:"Vendor Profile"}),t.jsx(ae,{children:"This information will be visible to all users."})]})}),t.jsxs(B.Content,{className:"",children:[n.type==="business"&&t.jsxs("div",{className:"grid grid-cols-1 grid-rows-1 md:grid-cols-2 gap-8",children:[t.jsxs("div",{className:"flex flex-row gap-4 sm:gap-8 w-full",children:[t.jsxs("div",{className:"relative flex flex-col gap-2 items-center shrink-0",children:[t.jsx(Bs,{imageUrl:a||r||null,shape:n.logoShape,background:n.logoBackgroun
1d,size:96,fallbackContent:t.jsx("span",{className:"text-2xl font-light text-foreground",children:(n.name||s.name||"V").slice(0,2).toUpperCase()})}),t.jsx(D,{isIconOnly:!0,variant:"tertiary",size:"sm",onPress:()=>y(!0),className:"bg-separator rounded-full absolute -bottom-2 -left-2",children:t.jsx(Hn,{size:16})})]}),t.jsx(wt,{label:"Vendor Name",inputValue:n.name||"",onSave:F=>Ie("name",F),inputType:"text",isRequired:!0,...he("name")})]}),t.jsxs("div",{className:"flex flex-col gap-1",children:[t.jsxs($,{className:"text-muted flex flex-row gap-2",children:["Location",W==="service"&&t.jsx(as,{size:16,className:"relative top-px text-accent"})]}),t.jsxs("div",{className:"flex flex-row gap-4 items-center justify-between sm:justify-start",children:[t.jsx("p",{children:n.locationLocality+", "+(n?.locationCountry&&n?.locationAdministrativeArea?us(n.locationCountry,n.locationAdministrativeArea):"")+", "+(n?.locationCountry?ds(n.locationCountry):"")}),t.jsx(D,{variant:"ghost",size:"sm",className:"underline text-muted",onPress:()=>Ue("service"),isDisabled:A||W==="service",children:"change"})]})]}),t.jsx(tr,{description:n.description,onEdit:()=>x(!0),isSaving:ie,isSuccess:oe})]}),n.type==="online"&&t.jsxs("div",{className:"grid grid-cols-1 grid-rows-1 md:grid-cols-2 mb-4 gap-8",children:[t.jsxs("div",{className:"flex flex-row gap-4 sm:gap-8 w-full",children:[t.jsxs("div",{className:"relative flex flex-col gap-2 items-center shrink-0",children:[t.jsx(Bs,{imageUrl:a||r||null,shape:n.logoShape,background:n.logoBackground,size:96,fallbackContent:t.jsx("span",{className:"text-2xl font-light text-foreground",children:(n.name||s.name||"V").slice(0,2).toUpperCase()})}),t.jsx(D,{isIconOnly:!0,variant:"tertiary",size:"sm",onPress:()=>y(!0),className:"bg-separator rounded-full absolute -bottom-2 -left-2",children:t.jsx(Hn,{size:16})})]}),t.jsx(wt,{label:"Vendor Name",inputValue:n.name||"",onSave:F=>Ie("name",F),inputType:"text",isRequired:!0,...he("name")})]}),t.jsx(wt,{label:"Website",inputValue:n.website||"",onSave:F=>Ie("website",Se(F)),placeholder:"www.mywebsite.com",inputType:"text",...he("website")}),t.jsx(tr,{description:n.description,onEdit:()=>x(!0),isSaving:ie,isSuccess:oe})]}),n.type==="online"?t.jsxs(t.Fragment,{children:[t.jsxs(Xe,{className:"flex flex-row items-start justify-between w-full p-2 sm:p-4 rounded-2xl mb-4",variant:"secondary",children:[t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx($,{className:"text-muted text-sm",children:"Product Categories"}),(n.onlineServiceTypes||[]).length>0?(n.onlineServiceTypes||[]).map(F=>t.jsxs("div",{className:"flex items-center gap-2",children:[ld[F],t.jsx("span",{className:"text-foreground",children:ws[F].name})]},F)):t.jsx("span",{className:"text-muted text-sm",children:"No categories selected"})]}),t.jsx(D,{onPress:()=>S(!0),variant:"ghost",children:"edit"})]}),t.jsxs(Xe,{className:"flex flex-row items-start justify-between w-full p-2 sm:p-4 rounded-2xl mb-8",variant:"secondary",children:[t.jsxs("div",{className:"flex flex-col gap-1",children:[t.jsx($,{className:"text-muted text-sm",children:"Ships To"}),t.jsx("p",{className:"text-foreground",children:(n.shipsToCountries||[]).map(F=>F==="US"?"United States":F==="CA"?"Canada":F).join(", ")||"Not set"})]}),t.jsx(D,{onPress:()=>R(!0),variant:"ghost",children:"edit"})]})]}):t.jsxs(Xe,{className:"flex flex-row items-center justify-between w-full p-2 sm:p-4 rounded-2xl mb-8",variant:"secondary",children:[n.tracks&&n.tracks.length>0?t.jsx("div",{className:"flex flex-row",children:t.jsxs("p",{children:["Servicing ",n.tracks.length," ",n.tracks.length>1?"tracks":"track"]})}):t.jsx("span",{className:"text-muted text-sm",children:"No tracks selected"}),t.jsx("span",{children:t.jsx(D,{onPress:()=>b(!0),variant:"ghost",children:"edit"})})]}),n.suggestedOnline&&n.type!=="online"&&t.jsxs(Xe,{className:"flex flex-row items-center justify-between w-full p-4 rounded-2xl mb-4 border border-warning/30",variant:"secondary",children:[t.jsxs("div",{className:"flex flex-col gap-1",children:[t.jsx($,{className:"text-sm font-medium text-foreground",children:"Online Vendor Type Available"}),t.jsx("p",{className:"text-muted text-sm",children:"Your business may be a good fit for our Online Vendor type, which directs users to your website."})]}),t.jsx(D,{variant:"ghost",onPress:()=>j(!0),children:"Learn More"})]}),t.jsxs("div",{className:"grid grid-cols-1 grid-rows-1 md:grid-cols-2 gap-8",children:[t.jsxs("h2",{className:"flex flex-row gap-2 items-baseline md:items-center col-span-1 md:col-span-2",children:[t.jsx(ol,{size:14}),"Add these additional items to have them show up on your Vendor Profile"]}),t.jsx(wt,{label:"Email",inputValue:n.email||"",onSave:F=>Ie("email",F),placeholder:"[email protected]",inputType:"email",...he("email")}),t.jsx(wt,{label:"Phone Number",inputValue:n.phoneNumber||"",onSave:F=>Ie("phoneNumber",F),placeholder:"+1 555-000-0000",inputType:"tel",...he("phoneNumber")}),n.type!=="online"&&t.jsx(wt,{label:"Website",inputValue:n.website||"",onSave:F=>Ie("website",Se(F)),placeholder:"www.myservice.com",inputType:"text",...he("website")}),t.jsxs("div",{className:"flex flex-col gap-1",children:[t.jsxs($,{className:"text-muted flex flex-row gap-2",children:["Physical Location",W==="physical"&&t.jsx(as,{size:16,className:"relative top-px text-accent"})]}),n.physicalAddressLine1&&n.physicalAddressCountry&&n.physicalAddressAdministrativeArea?t.jsxs("div",{className:"flex flex-row gap-4 items-start justify-between sm:justify-start",children:[t.jsxs("div",{className:"",children:[t.jsx("p",{children:n.physicalAddressLine1}),n.physicalAddressLine2&&t.jsx("p",{children:n.physicalAddressLine2}),t.jsx("p",{children:n.physicalAddressLocality+", "+us(n.physicalAddressCountry,n.physicalAddressAdministrativeArea)+", "+ds(n.physicalAddressCountry)}),n.physicalAddressPostalCode&&t.jsx("p",{children:n.physicalAddressPostalCode})]}),t.jsx(D,{variant:"ghost",size:"sm",className:"underline text-muted",onPress:()=>Ue("physical"),isDisabled:A||W==="physical",children:"change"})]}):t.jsxs(D,{size:"sm",variant:"ghost",className:"underline",onPress:()=>Ue("physical"),isDisabled:A||W==="physical",children:[t.jsx(Ze,{size:12,className:"relative top-px"}),"Add"]})]})]})]})]}),m&&t.jsx(Ul,{isOpen:m,onOpenChange:d,type:p,initialData:p==="service"?tt():$e(),onSave:q,isPending:A}),h&&t.jsx(Vl,{isOpen:h,onOpenChange:x,initialBio:n?.description||"",onSave:ze,isPending:ie}),g&&t.jsx(Bl,{isOpen:g,onOpenChange:b,onSave:M,isPending:E,tracksSelected:n.tracks||[]}),f&&n&&t.jsx(Zc,{isOpen:f,onOpenChange:S,vendorProfile:n}),k&&n&&t.jsx(td,{isOpen:k,onOpenChange:R,vendorProfile:n}),n&&t.jsx(sd,{isOpen:I,onOpenChange:j,vendorProfile:n}),v&&n&&t.jsx(od,{isOpen:v,onOpenChange:y,vendorProfile:n,currentLogoUrl:a??null,avatarUrl:r??null})]}):t.jsxs(B,{className:"w-full p-4 space-y-4 sm:p-8 sm:space-y-8",children:[t.jsx(B.Header,{className:"flex flex-row flex-wrap md:flex-none gap-8 justify-between",children:t.jsxs("div",{className:"flex flex-col gap-1",children:[t.jsx("h2",{className:"text-xl",children:"Vendor Profile"}),t.jsx(ae,{children:"Information about your business that all users will see."})]})}),t.jsx(B.Content,{className:"pt-4",children:t.jsx(D,{onPress:i,children:"Create Vendor Profile"})})]})}function tr({description:s,onEdit:n,isSaving:r,isSuccess:i}){return t.jsxs(Xe,{variant:"secondary",className:"flex flex-row items-start justify-between w-full p-2 sm:p-4 roun
1ded-2xl col-span-1 sm:col-span-2",children:[t.jsxs("div",{className:"flex flex-col gap-1",children:[t.jsxs($,{className:"text-muted text-sm flex flex-row gap-2",children:["Company Bio",i&&t.jsx(as,{size:16,className:"relative top-px text-accent"})]}),t.jsx("p",{className:"font-text whitespace-pre-line",children:s})]}),t.jsx(D,{variant:"ghost",onPress:n,isDisabled:r||i,children:"edit"})]})}const Kr={wrenching:zr,coaching:Mr,kartMaintenance:Nl,engineTuning:Pr,parts:$r,photographer:Rr,apparel:Lr,graphics:Fr};function dd({data:s,setData:n,disabledServiceTypes:r=[]}){return t.jsxs("div",{className:"flex flex-col h-full px-4 py-8 grow",children:[t.jsx("h2",{className:"text-foreground text-2xl font-bold mb-2 text-center",children:"Service Details"}),t.jsx("p",{className:"text-muted mb-8 text-center",children:"Tell us about the service you want to offer"}),t.jsxs("div",{className:"flex flex-col w-full gap-6 grow",children:[t.jsx(Br,{value:s.serviceType,onChange:i=>n(a=>({...a,serviceType:i})),isRequired:!0,disabledKeys:r}),t.jsxs(ue,{value:s.name,onChange:i=>n(a=>({...a,name:i})),isRequired:!0,children:[t.jsx($,{children:"Service Title"}),t.jsx(xe,{placeholder:"Full Service Kart Maintenance"}),t.jsx(ae,{children:"A clear, descriptive title for your service"}),t.jsx(ct,{})]}),t.jsxs("div",{className:"grow flex flex-col",children:[t.jsx($,{children:"Description"}),t.jsx(en,{className:"w-full h-full grow mt-1",placeholder:"Describe what customers can expect from your service...",value:s.description,onChange:i=>{n(a=>({...a,description:i.target.value}))},required:!0}),t.jsxs("div",{className:"flex flex-row items-center justify-between",children:[t.jsx(ae,{className:"mt-1",children:"Be specific about what you offer."}),t.jsx("span",{className:s.description.trim().length>=50?"text-success":s.description.trim().length>=45?"text-warning":"text-danger",children:"min 50"})]})]})]})]})}function Br({value:s,onChange:n,isRequired:r=!1,isDisabled:i=!1,disabledKeys:a=[]}){return t.jsxs(U,{isRequired:r,placeholder:"Select a Service",value:s,onChange:o=>n(o),isDisabled:i,disabledKeys:a,children:[t.jsx($,{className:"mb-1",children:"Service Type"}),t.jsxs(U.Trigger,{children:[t.jsx(U.Value,{}),t.jsx(U.Indicator,{})]}),t.jsx(U.Popover,{className:"border-1 border-white/25",children:t.jsx(se,{children:Ol.map(o=>{const c=Kr[o.key];return t.jsx(se.Item,{id:o.key,textValue:o.name,children:t.jsxs("div",{className:"flex items-center gap-3 max-w-sm",children:[t.jsx(c,{size:24,className:"text-accent/50 shrink-0 self-start releative pt-[2px]"}),t.jsxs("div",{className:"flex flex-col",children:[t.jsx("span",{className:"font-medium",children:o.name}),t.jsx(ae,{className:"px-0",children:o.description})]})]})},o.key)})})}),t.jsx(ct,{})]})}function ud({data:s,setData:n,disabledServiceTypes:r=[]}){return t.jsxs("div",{className:"flex flex-col gap-8 h-full",children:[t.jsx(Br,{value:s.serviceType,onChange:i=>n(a=>({...a,serviceType:i})),isRequired:!0,disabledKeys:r}),t.jsxs(ue,{value:s.name,onChange:i=>n(a=>({...a,name:i})),isRequired:!0,children:[t.jsx($,{children:"Service Name"}),t.jsx(xe,{placeholder:"e.g., Professional Headshot Photography"}),s.name.trim().length>0&&s.name.trim().length<3&&t.jsx(ae,{className:"text-danger",children:"Name must be at least 3 characters"})]}),t.jsxs("div",{className:"grow flex flex-col",children:[t.jsx($,{htmlFor:"description",children:"Description"}),t.jsx(en,{id:"description",value:s.description,onChange:i=>n(a=>({...a,description:i.target.value})),placeholder:"Describe your service in detail...",rows:4,required:!0,className:"w-full mt-1 grow"}),t.jsxs("div",{className:"flex flex-row items-center justify-between",children:[t.jsx(ae,{className:"mt-1",children:"Be specific about what you offer."}),t.jsx("span",{className:s.description.trim().length>=50?"text-success":s.description.trim().length>=45?"text-warning":"text-danger",children:"min 50"})]})]})]})}const Ct=[{key:"CAD",sortPriority:1,name:"Canadian Dollar",symbol:"$",description:"Canadian Dollar (CAD)"},{key:"USD",sortPriority:2,name:"US Dollar",symbol:"$",description:"US Dollar (USD)"}],md={free:{key:"free",sortPriority:0,name:"Free",description:"You provide this service completely free of charge."},hourly:{key:"hourly",sortPriority:1,name:"Hourly Rate",description:"You charge by the hour for your time."},fixed:{key:"fixed",sortPriority:2,name:"Fixed Price",description:"You charge one flat price for the entire job."},contact:{key:"contact",sortPriority:3,name:"Contact for Price",description:"You want to be contacted for pricing as it differs with scope."}},pd=Object.values(md);function hd(s){if(s==null||s==="")return"";const n=typeof s=="string"?parseFloat(s):s;return isNaN(n)?"":n.toFixed(2)}const gd={free:il,hourly:vl,fixed:wl,contact:hl};function xd({data:s,setData:n}){const r=s.pricingType==="hourly"||s.pricingType==="fixed",i=a=>{n(o=>({...o,price:a,priceDisplay:a.toString()}))};return t.jsxs("div",{className:"flex flex-col h-full px-4 py-8",children:[t.jsx("h2",{className:"text-foreground text-2xl font-bold mb-2 text-center",children:"Pricing Information"}),t.jsx("p",{className:"text-muted mb-8 text-center",children:"How do you charge for this service?"}),t.jsxs("div",{className:"w-full space-y-6",children:[t.jsx(Hr,{value:s.pricingType,onCh
1ange:a=>{n(o=>({...o,pricingType:a,priceDisplay:(a==="hourly"||a==="fixed")&&o.price>0?hd(o.price):""}))},isRequired:!0}),r&&t.jsxs("div",{className:"flex flex-wrap gap-4 sm:justify-between",children:[t.jsxs(He,{className:"w-full sm:max-w-[70%]",value:s.price,onChange:i,maxValue:1e5,minValue:1,formatOptions:{style:"currency",currency:s.currency,minimumFractionDigits:2,maximumFractionDigits:2},children:[t.jsx($,{children:"Price"}),t.jsxs(He.Group,{className:"",children:[t.jsx(He.DecrementButton,{}),t.jsx(He.Input,{className:"max-w-full"}),t.jsx(He.IncrementButton,{})]}),t.jsx(ae,{children:s.pricingType==="hourly"?"Per hour rate":"One-time flat rate"})]}),t.jsxs(U,{className:"w-full sm:max-w-[25%]",value:s.currency,onChange:a=>n(o=>({...o,currency:a})),children:[t.jsx($,{children:"Currency"}),t.jsxs(U.Trigger,{children:[t.jsx(U.Value,{}),t.jsx(U.Indicator,{})]}),t.jsx(U.Popover,{className:"border-1 border-white/25",children:t.jsx(se,{children:Ct.map(a=>t.jsxs(se.Item,{id:a.key,textValue:a.name,children:[a.symbol," ",a.key]},a.key))})})]})]})]})]})}function Hr({value:s,onChange:n,isRequired:r=!1,isDisabled:i=!1}){return t.jsxs(U,{isRequired:r,placeholder:"Select a Pricing Model",value:s,onChange:a=>n(a),isDisabled:i,children:[t.jsx($,{className:"mb-1",children:"Pricing Model"}),t.jsxs(U.Trigger,{children:[t.jsx(U.Value,{}),t.jsx(U.Indicator,{})]}),t.jsx(U.Popover,{className:"border-1 border-white/25",children:t.jsx(se,{children:pd.map(a=>{const o=gd[a.key];return t.jsx(se.Item,{id:a.key,textValue:a.name,children:t.jsxs("div",{className:"flex items-center gap-3 max-w-sm",children:[t.jsx(o,{size:24,className:"text-accent/50 shrink-0 self-start releative pt-[2px]"}),t.jsxs("div",{className:"flex flex-col",children:[t.jsx("span",{className:"font-medium",children:a.name}),t.jsx(ae,{className:"px-0",children:a.description})]})]})},a.key)})})}),t.jsx(ct,{})]})}function fd({data:s,setData:n}){const r=a=>{n(o=>({...o,price:a,priceDisplay:a.toString()}))},i=s.pricingType==="hourly"||s.pricingType==="fixed";return t.jsxs("div",{className:"flex flex-col gap-8",children:[t.jsx(Hr,{value:s.pricingType,onChange:a=>n(o=>({...o,pricingType:a}))}),i&&t.jsxs("div",{className:"flex flex-wrap gap-4 sm:justify-between",children:[t.jsxs(He,{className:"w-full sm:max-w-[70%]",value:s.price,onChange:r,maxValue:1e5,minValue:1,formatOptions:{style:"currency",currency:s.currency,minimumFractionDigits:2,maximumFractionDigits:2},children:[t.jsx($,{children:"Price"}),t.jsxs(He.Group,{className:"",children:[t.jsx(He.DecrementButton,{}),t.jsx(He.Input,{className:"max-w-full"}),t.jsx(He.IncrementButton,{})]}),t.jsx(ae,{children:s.pricingType==="hourly"?"Per hour rate":"One-time flat rate"})]}),t.jsxs(U,{className:"w-full sm:max-w-[25%]",value:s.currency,onChange:a=>n(o=>({...o,currency:a})),children:[t.jsx($,{children:"Currency"}),t.jsxs(U.Trigger,{children:[t.jsx(U.Value,{}),t.jsx(U.Indicator,{})]}),t.jsx(U.Popover,{className:"border-1 border-white/25",children:t.jsx(se,{children:Ct.map(a=>t.jsxs(se.Item,{id:a.key,textValue:a.name,children:[a.symbol," ",a.key]},a.key))})})]})]}),s.pricingType==="free"&&t.jsx("div",{className:"bg-surface border border-separator rounded-lg p-4",children:t.jsx("p",{className:"text-sm text-muted",children:"This service will be displayed as free to potential clients."})}),s.pricingType==="contact"&&t.jsx("div",{className:"bg-surface border border-separator rounded-lg p-4",children:t.jsx("p",{className:"text-sm text-muted",children:"Clients will need to contact you for pricing details. This is ideal for custom projects."})})]})}function Wr(){const[s,n]=l.useState(!1),[r,i]=l.useState(null),{mutateAsync:a}=J({mutationFn:X(V.services.generateServiceImageUploadUrl)});return{processAndUpload:async(c,m)=>{n(!0),i(null);try{let d,p;if(m){const g=await ya(c,m,1200,800,.5,"webp");d=g.file,p=g.preview}else{const{processServiceImage:g}=await Mi(async()=>{const{processServiceImage:f}=await import("./useImageProcessor-CAGfRUnE.js");return{processServiceImage:f}},[]),b=await g(c,{maxDimension:1200,quality:.5});d=b.file,p=b.preview}const u=await a({}),h=await fetch(u,{method:"POST",headers:{"Content-Type":d.type},body:d});if(!h.ok)throw new Error("Upload failed");const{storageId:x}=await h.json();return{storageId:x,preview:p,file:d}}catch(d){const p=d instanceof Error?d.message:"Failed to process image";throw i(p),d}finally{n(!1)}},isProcessing:s,error:r}}function bd({storageId:s,index:n,isMarkedForDeletion:r,onToggleDelete:i}){const{data:a}=Qe(Je(V.files.getImageUrl,{storageId:s}
1));return t.jsxs("div",{className:`relative aspect-[3/2] bg-surface border-2 ${r?"border-danger/25":"border-separator"} rounded-lg group`,children:[t.jsx("div",{className:"absolute inset-0 rounded-md overflow-hidden",children:a?t.jsx("img",{src:a,alt:`Service image ${n+1}`,className:`w-full h-full object-cover ${r?"opacity-50":""}`}):t.jsx("div",{className:"w-full h-full bg-surface animate-pulse"})}),!r&&t.jsx("button",{onClick:()=>i(s),className:"absolute -top-2 -right-2 bg-danger/75 hover:bg-danger text-white rounded-full p-1 z-10 cursor-pointer","aria-label":"Delete image",children:t.jsx(Me,{size:16})}),r&&t.jsxs("div",{className:"absolute inset-0 flex items-center justify-center bg-warning/5",children:[t.jsx("button",{onClick:()=>i(s),className:"absolute -top-2 -right-2 bg-foreground/50 hover:bg-foreground/75 text-white rounded-full p-1 z-10 cursor-pointer","aria-label":"Undo delete",children:t.jsx(Me,{size:16})}),t.jsx("span",{className:"w-full bg-background/50 px-4 py-2 text-danger font-semibold",children:"Will be deleted"})]})]})}function yd(){for(var s=arguments.length,n=new Array(s),r=0;r<s;r++)n[r]=arguments[r];return l.useMemo(()=>i=>{n.forEach(a=>a(i))},n)}const Ss=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function At(s){const n=Object.prototype.toString.call(s);return n==="[object Window]"||n==="[object global]"}function fn(s){return"nodeType"in s}function Ne(s){var n,r;return s?At(s)?s:fn(s)&&(n=(r=s.ownerDocument)==null?void 0:r.defaultView)!=null?n:window:window}function bn(s){const{Document:n}=Ne(s);return s instanceof n}function qt(s){return At(s)?!1:s instanceof Ne(s).HTMLElement}function qr(s){return s instanceof Ne(s).SVGElement}function kt(s){return s?At(s)?s.document:fn(s)?bn(s)?s:qt(s)||qr(s)?s.ownerDocument:document:document:document}const qe=Ss?l.useLayoutEffect:l.useEffect;function yn(s){const n=l.useRef(s);return qe(()=>{n.current=s}),l.useCallback(function(){for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];return n.current==null?void 0:n.current(...i)},[])}function vd(){const s=l.useRef(null),n=l.useCallback((i,a)=>{s.current=setInterval(i,a)},[]),r=l.useCallback(()=>{s.current!==null&&(clearInterval(s.current),s.current=null)},[]);return[n,r]}function Vt(s,n){n===void 0&&(n=[s]);const r=l.useRef(s);return qe(()=>{r.current!==s&&(r.current=s)},n),r}function Yt(s,n){const r=l.useRef();return l.useMemo(()=>{const i=s(r.current);return r.current=i,i},[...n])}function ms(s){const n=yn(s),r=l.useRef(null),i=l.useCallback(a=>{a!==r.current&&n?.(a,r.current),r.current=a},[]);return[r,i]}function Hs(s){const n=l.useRef();return l.useEffect(()=>{n.current=s},[s]),n.current}let Fs={};function Gt(s,n){return l.useMemo(()=>{if(n)return n;const r=Fs[s]==null?0:Fs[s]+1;return Fs[s]=r,s+"-"+r},[s,n])}function Yr(s){return function(n){for(var r=arguments.length,i=new Array(r>1?r-1:0),a=1;a<r;a++)i[a-1]=arguments[a];return i.reduce((o,c)=>{const m=Object.entries(c);for(const[d,p]of m){const u=o[d];u!=null&&(o[d]=u+s*p)}return o},{...n})}}const Nt=Yr(1),ps=Yr(-1);
1function jd(s){return"clientX"in s&&"clientY"in s}function vn(s){if(!s)return!1;const{KeyboardEvent:n}=Ne(s.target);return n&&s instanceof n}function wd(s){if(!s)return!1;const{TouchEvent:n}=Ne(s.target);return n&&s instanceof n}function Ws(s){if(wd(s)){if(s.touches&&s.touches.length){const{clientX:n,clientY:r}=s.touches[0];return{x:n,y:r}}else if(s.changedTouches&&s.changedTouches.length){const{clientX:n,clientY:r}=s.changedTouches[0];return{x:n,y:r}}}return jd(s)?{x:s.clientX,y:s.clientY}:null}const et=Object.freeze({Translate:{toString(s){if(!s)return;const{x:n,y:r}=s;return"translate3d("+(n?Math.round(n):0)+"px, "+(r?Math.round(r):0)+"px, 0)"}},Scale:{toString(s){if(!s)return;const{scaleX:n,scaleY:r}=s;return"scaleX("+n+") scaleY("+r+")"}},Transform:{toString(s){if(s)return[et.Translate.toString(s),et.Scale.toString(s)].join(" ")}},Transition:{toString(s){let{property:n,duration:r,easing:i}=s;return n+" "+r+"ms "+i}}}),sr="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function Sd(s){return s.matches(sr)?s:s.querySelector(sr)}const Nd={display:"none"};function Id(s){let{id:n,value:r}=s;return K.createElement("div",{id:n,style:Nd},r)}function Cd(s){let{id:n,announcement:r,ariaLiveType:i="assertive"}=s;const a={position:"fixed",top:0,left:0,width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0 0 0 0)",clipPath:"inset(100%)",whiteSpace:"nowrap"};return K.createElement("div",{id:n,style:a,role:"status","aria-live":i,"aria-atomic":!0},r)}function _d(){const[s,n]=l.useState("");return{announce:l.useCallback(i=>{i!=null&&n(i)},[]),announcement:s}}const Gr=l.createContext(null);function Ad(s){const n=l.useContext(Gr);l.useEffect(()=>{if(!n)throw new Error("useDndMonitor must be used within a children of <DndContext>");return n(s)},[s,n])}function kd(){const[s]=l.useState(()=>new Set),n=l.useCallback(i=>(s.add(i),()=>s.delete(i)),[s]);return[l.useCallback(i=>{let{type:a,event:o}=i;s.forEach(c=>{var m;return(m=c[a])==null?void 0:m.call(c,o)})},[s]),n]}const Td={draggable:` 2 To pick up a draggable item, press the space bar. 3 While dragging, use the arrow keys to move the item. 4 Press space again to drop the item in its new position, or press escape to cancel. 5 `},Dd={onDragStart(s){let{active:n}=s;return"Picked up draggable item "+n.id+"."},onDragOver(s){let{active:n,over:r}=s;return r?"Draggable item "+n.id+" was moved over droppable area "+r.id+".":"Draggable item "+n.id+" is no longer over a droppable area."},onDragEnd(s){let{active:n,over:r}=s;return r?"Draggable item "+n.id+" was dropped over droppable area "+r.id:"Draggable item "+n.id+" was dropped."},onDragCancel(s){let{active:n}=s;return"Dragging was cancelled. Draggable item "+n.id+" was dropped."}};function Ed(s){let{announcements:n=Dd,container:r,hiddenTextDescribedById:i,screenReaderInstructions:a=Td}=s;const{announce:o,announcement:c}=_d(),m=Gt("DndLiveRegion"),[d,p]=l.useState(!1);if(l.useEffect(()=>{p(!0)},[]),Ad(l.useMemo(()=>({onDragStart(h){let{active:x}=h;o(n.onDragStart({active:x}))},onDragMove(h){let{active:x,over:g}=h;n.onDragMove&&o(n.onDragMove({active:x,over:g}))},onDragOver(h){let{active:x,over:g}=h;o(n.onDragOver({active:x,over:g}))},onDragEnd(h){let{active:x,over:g}=h;o(n.onDragEnd({active:x,over:g}))},onDragCancel(h){let{active:x,over:g}=h;o(n.onDragCancel({active:x,over:g}))}}),[o,n])),!d)return null;const u=K.createElement(K.Fragment,null,K.createElement(Id,{id:i,value:a.draggable}),K.createElement(Cd,{id:m,announcement:c}));return r?St.createPortal(u,r):u}var ce;(function(s){s.DragStart="dragStart",s.DragMove="dragMove",s.DragEnd="dragEnd",s.DragCancel="dragCancel",s.DragOver="dragOver",s.RegisterDroppable="registerDroppable",s.SetDroppableDisabled="setDroppableDisabled",s.UnregisterDroppable="unregisterDroppable"})(ce||(ce={}));function hs(){}function Ns(s,n){return l.useMemo(()=>({sensor:s,options:n??{}}),[s,n])}function Is(){for(var s=arguments.length,n=new Array(s),r=0;r<s;r++)n[r]=arguments[r];return l.useMemo(()=>[...n].filter(i=>i!=null),[...n])}const Le=Object.freeze({x:0,y:0});function Rd(s,n){return Math.sqrt(Math.pow(s.x-n.x,2)+Math.pow(s.y-n.y,2))}function Pd(s,n){let{data:{value:r}}=s,{data:{value:i}}=n;return r-i}function Md(s,n){let{data:{value:r}}=s,{data:{value:i}}=n;return i-r}function Od(s,n){if(!s||s.length===0)return null;const[r]=s;return r[n]}function nr(s,n,r){return n===void 0&&(n=s.left),r===void 0&&(r=s.top),{x:n+s.width*.5,y:r+s.height*.5}}const Cs=s=>
5{let{collisionRect:n,droppableRects:r,droppableContainers:i}=s;const a=nr(n,n.left,n.top),o=[];for(const c of i){const{id:m}=c,d=r.get(m);if(d){const p=Rd(nr(d),a);o.push({id:m,data:{droppableContainer:c,value:p}})}}return o.sort(Pd)};function $d(s,n){const r=Math.max(n.top,s.top),i=Math.max(n.left,s.left),a=Math.min(n.left+n.width,s.left+s.width),o=Math.min(n.top+n.height,s.top+s.height),c=a-i,m=o-r;if(i<a&&r<o){const d=n.width*n.height,p=s.width*s.height,u=c*m,h=u/(d+p-u);return Number(h.toFixed(4))}return 0}const Fd=s=>{let{collisionRect:n,droppableRects:r,droppableContainers:i}=s;const a=[];for(const o of i){const{id:c}=o,m=r.get(c);if(m){const d=$d(m,n);d>0&&a.push({id:c,data:{droppableContainer:o,value:d}})}}return a.sort(Md)};function Ld(s,n,r){return{...s,scaleX:n&&r?n.width/r.width:1,scaleY:n&&r?n.height/r.height:1}}function Xr(s,n){return s&&n?{x:s.left-n.left,y:s.top-n.top}:Le}function zd(s){return function(r){for(var i=arguments.length,a=new Array(i>1?i-1:0),o=1;o<i;o++)a[o-1]=arguments[o];return a.reduce((c,m)=>
5({...c,top:c.top+s*m.y,bottom:c.bottom+s*m.y,left:c.left+s*m.x,right:c.right+s*m.x}),{...r})}}const Ud=zd(1);function Vd(s){if(s.startsWith("matrix3d(")){const n=s.slice(9,-1).split(/, /);return{x:+n[12],y:+n[13],scaleX:+n[0],scaleY:+n[5]}}else if(s.startsWith("matrix(")){const n=s.slice(7,-1).split(/, /);return{x:+n[4],y:+n[5],scaleX:+n[0],scaleY:+n[3]}}return null}function Kd(s,n,r){const i=Vd(n);if(!i)return s;const{scaleX:a,scaleY:o,x:c,y:m}=i,d=s.left-c-(1-a)*parseFloat(r),p=s.top-m-(1-o)*parseFloat(r.slice(r.indexOf(" ")+1)),u=a?s.width/a:s.width,h=o?s.height/o:s.height;return{width:u,height:h,top:p,right:d+u,bottom:p+h,left:d}}const Bd={ignoreTransform:!1};function Tt(s,n){n===void 0&&(n=Bd);let r=s.getBoundingClientRect();if(n.ignoreTransform){const{transform:p,transformOrigin:u}=Ne(s).getComputedStyle(s);p&&(r=Kd(r,p,u))}const{top:i,left:a,width:o,height:c,bottom:m,right:d}=r;return{top:i,left:a,width:o,height:c,bottom:m,right:d}}function rr(s){return Tt(s,{ignoreTransform:!0})}function Hd(s){const n=s.innerWidth,r=s.innerHeight;return{top:0,left:0,right:n,bottom:r,width:n,height:r}}function Wd(s,n){return n===void 0&&(n=Ne(s).getComputedStyle(s)),n.position==="fixed"}function qd(s,n){n===void 0&&(n=Ne(s).getComputedStyle(s));const r=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(a=>{const o=n[a];return typeof o=="string"?r.test(o):!1})}function jn(s,n){const r=[];function i(a){if(n!=null&&r.length>=n||!a)return r;if(bn(a)&&a.scrollingElement!=null&&!r.includes(a.scrollingElement))return r.push(a.scrollingElement),r;if(!qt(a)||qr(a)||r.includes(a))return r;const o=Ne(s).getComputedStyle(a);return a!==s&&qd(a,o)&&r.push(a),Wd(a,o)?r:i(a.parentNode)}return s?i(s):r}function Jr(s){const[n]=jn(s,1);return n??null}function Ls(s){return!Ss||!s?null:At(s)?s:fn(s)?bn(s)||s===kt(s).scrollingElement?window:qt(s)?s:null:null}function Qr(s){return At(s)?s.scrollX:s.scrollLeft}function Zr(s){return At(s)?s.scrollY:s.scrollTop}function qs(s){return{x:Qr(s),y:Zr(s)}}var de;(function(s){s[s.Forward=1]="Forward",s[s.Backward=-1]="Backward"})(de||(de={}));function ei(s){return!Ss||!s?!1:s===document.scrollingElement}function ti(s){const n={x:0,y:0},r=ei(s)?{height:window.innerHeight,width:window.innerWidth}:{height:s.clientHeight,width:s.clientWidth},i={x:s.scrollWidth-r.width,y:s.scrollHeight-r.height},a=s.scrollTop<=n.y,o=s.scrollLeft<=n.x,c=s.scrollTop>=i.y,m=s.scrollLeft>=i.x;return{isTop:a,isLeft:o,isBottom:c,isRight:m,maxScroll:i,minScroll:n}}const Yd={x:.2,y:.2};function Gd(s,n,r,i,a){let{top:o,left:c,right:m,bottom:d}=r;i===void 0&&(i=10),a===void 0&&(a=Yd);const{isTop:p,isBottom:u,isLeft:h,isRight:x}=ti(s),g={x:0,y:0},b={x:0,y:0},f={height:n.height*a.y,width:n.width*a.x};return!p&&o<=n.top+f.height?(g.y=de.Backward,b.y=i*Math.abs((n.top+f.height-o)/f.height)):!u&&d>=n.bottom-f.height&&(g.y=de.Forward,b.y=i*Math.abs((n.bottom-f.height-d)/f.height)),!x&&m>=n.right-f.width?(g.x=de.Forward,b.x=i*Math.abs((n.right-f.width-m)/f.width)):!h&&c<=n.left+f.width&&(g.x=de.Backward,b.x=i*Math.abs((n.left+f.width-c)/f.width)),{direction:g,speed:b}}function Xd(s){if(s===document.scrollingElement){const{innerWidth:o,innerHeight:c}=window;return{top:0,left:0,right:o,bottom:c,width:o,height:c}}const{top:n,left:r,right:i,bottom:a}=s.getBoundingClientRect();return{top:n,left:r,right:i,bottom:a,width:s.clientWidth,height:s.clientHeight}}function si(s){return s.reduce((n,r)=>Nt(n,qs(r)),Le)}function Jd(s){return s.reduce((n,r)=>n+Qr(r),0)}function Qd(s){return s.reduce((n,r)=>n+Zr(r),0)}function Zd(s,n){if(n===void 0&&(n=Tt),!s)return;const{top:r,left:i,bottom:a,right:o}=n(s);Jr(s)&&(a<=0||o<=0||r>=window.innerHeight||i>=window.innerWidth)&&s.scrollIntoView({block:"center",inline:"center"})}const eu=[["x",["left","right"],Jd],["y",["top","bottom"],Qd]];class wn{constructor(n,r){this.rect=void 0,this.width=void 0,this.height=void 0,this.top=void 0,this.bottom=void 0,this.right=void 0,this.left=void 0;const i=jn(r),a=si(i);this.rect={...n},this.width=n.width,this.height=n.height;for(const[o,c,m]of eu)for(const d of c)Object.defineProperty(this,d,{get:()=>{const p=m(i),u=a[o]-p;return this.rect[d]+u},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Ft{constructor(n){this.target=void 0,this.listeners=[],this.removeAll=()=>
5{this.listeners.forEach(r=>{var i;return(i=this.target)==null?void 0:i.removeEventListener(...r)})},this.target=n}add(n,r,i){var a;(a=this.target)==null||a.addEventListener(n,r,i),this.listeners.push([n,r,i])}}function tu(s){const{EventTarget:n}=Ne(s);return s instanceof n?s:kt(s)}function zs(s,n){const r=Math.abs(s.x),i=Math.abs(s.y);return typeof n=="number"?Math.sqrt(r**2+i**2)>n:"x"in n&&"y"in n?r>n.x&&i>n.y:"x"in n?r>n.x:"y"in n?i>n.y:!1}var Pe;(function(s){s.Click="click",s.DragStart="dragstart",s.Keydown="keydown",s.ContextMenu="contextmenu",s.Resize="resize",s.SelectionChange="selectionchange",s.VisibilityChange="visibilitychange"})(Pe||(Pe={}));function ir(s){s.preventDefault()}function su(s){s.stopPropagation()}var G;(function(s){s.Space="Space",s.Down="ArrowDown",s.Right="ArrowRight",s.Left="ArrowLeft",s.Up="ArrowUp",s.Esc="Escape",s.Enter="Enter",s.Tab="Tab"})(G||(G={}));const ni={start:[G.Space,G.Enter],cancel:[G.Esc],end:[G.Space,G.Enter,G.Tab]},nu=(s,n)=>{let{currentCoordinates:r}=n;switch(s.code){case G.Right:return{...r,x:r.x+25};case G.Left:return{...r,x:r.x-25};case G.Down:return{...r,y:r.y+25};case G.Up:return{...r,y:r.y-25}}};class ri{constructor(n){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=n;const{event:{target:r}}=n;this.props=n,this.listeners=new Ft(kt(r)),this.windowListeners=new Ft(Ne(r)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Pe.Resize,this.handleCancel),this.windowListeners.add(Pe.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Pe.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:n,onStart:r}=this.props,i=n.node.current;i&&Zd(i),r(Le)}handleKeyDown(n){if(vn(n)){const{active:r,context:i,options:a}=this.props,{keyboardCodes:o=ni,coordinateGetter:c=nu,scrollBehavior:m="smooth"}=a,{code:d}=n;
5if(o.end.includes(d)){this.handleEnd(n);return}if(o.cancel.includes(d)){this.handleCancel(n);return}const{collisionRect:p}=i.current,u=p?{x:p.left,y:p.top}:Le;this.referenceCoordinates||(this.referenceCoordinates=u);const h=c(n,{active:r,context:i.current,currentCoordinates:u});if(h){const x=ps(h,u),g={x:0,y:0},{scrollableAncestors:b}=i.current;for(const f of b){const S=n.code,{isTop:k,isRight:R,isLeft:I,isBottom:j,maxScroll:v,minScroll:y}=ti(f),w=Xd(f),C={x:Math.min(S===G.Right?w.right-w.width/2:w.right,Math.max(S===G.Right?w.left:w.left+w.width/2,h.x)),y:Math.min(S===G.Down?w.bottom-w.height/2:w.bottom,Math.max(S===G.Down?w.top:w.top+w.height/2,h.y))},T=S===G.Right&&!R||S===G.Left&&!I,P=S===G.Down&&!j||S===G.Up&&!k;if(T&&C.x!==h.x){const O=f.scrollLeft+x.x,H=S===G.Right&&O<=v.x||S===G.Left&&O>=y.x;if(H&&!x.y){f.scrollTo({left:O,behavior:m});return}H?g.x=f.scrollLeft-O:g.x=S===G.Right?f.scrollLeft-v.x:f.scrollLeft-y.x,g.x&&f.scrollBy({left:-g.x,behavior:m});break}else if(P&&C.y!==h.y){const O=f.scrollTop+x.y,H=S===G.Down&&O<=v.y||S===G.Up&&O>=y.y;if(H&&!x.x){f.scrollTo({top:O,behavior:m});return}H?g.y=f.scrollTop-O:g.y=S===G.Down?f.scrollTop-v.y:f.scrollTop-y.y,g.y&&f.scrollBy({top:-g.y,behavior:m});break}}this.handleMove(n,Nt(ps(h,this.referenceCoordinates),g))}}}handleMove(n,r){const{onMove:i}=this.props;n.preventDefault(),i(r)}handleEnd(n){const{onEnd:r}=this.props;n.preventDefault(),this.detach(),r()}handleCancel(n){const{onCancel:r}=this.props;n.preventDefault(),this.detach(),r()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}}ri.activators=[{eventName:"onKeyDown",handler:(s,n,r)=>{let{keyboardCodes:i=ni,onActivation:a}=n,{active:o}=r;const{code:c}=s.nativeEvent;if(i.start.includes(c)){const m=o.activatorNode.current;return m&&s.target!==m?!1:(s.preventDefault(),a?.({event:s.nativeEvent}),!0)}return!1}}];function ar(s){return!!(s&&"distance"in s)}function or(s){return!!(s&&"delay"in s)}class Sn{constructor(n,r,i){var a;i===void 0&&(i=tu(n.event.target)),this.props=void 0,this.events=void 0,this.autoScrollEnabled=!0,this.document=void 0,this.activated=!1,this.initialCoordinates=void 0,this.timeoutId=null,this.listeners=void 0,this.documentListeners=void 0,this.windowListeners=void 0,this.props=n,this.events=r;const{event:o}=n,{target:c}=o;this.props=n,this.events=r,this.document=kt(c),this.documentListeners=new Ft(this.document),this.listeners=new Ft(i),this.windowListeners=new Ft(Ne(c)),this.initialCoordinates=(a=Ws(o))!=null?a:Le,this.handleStart=this.handleStart.bind(this),this.handleMove=this.handleMove.bind(this),this.handleEnd=this.handleEnd.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleKeydown=this.handleKeydown.bind(this),this.removeTextSelection=this.removeTextSelection.bind(this),this.attach()}attach(){const{events:n,props:{options:{activationConstraint:r,bypassActivationConstraint:i}}}=this;if(this.listeners.add(n.move.name,this.handleMove,{passive:!1}),this.listeners.add(n.end.name,this.handleEnd),n.cancel&&this.listeners.add(n.cancel.name,this.handleCancel),this.windowListeners.add(Pe.Resize,this.handleCancel),this.windowListeners.add(Pe.DragStart,ir),this.windowListeners.add(Pe.VisibilityChange,this.handleCancel),this.windowListeners.add(Pe.ContextMenu,ir),this.documentListeners.add(Pe.Keydown,this.handleKeydown),r){if(i!=null&&i({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(or(r)){this.timeoutId=setTimeout(this.handleStart,r.delay),this.handlePending(r);return}if(ar(r)){this.handlePending(r);return}}this.handleStart()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll(),setTimeout(this.documentListeners.removeAll,50),this.timeoutId!==null&&(clearTimeout(this.timeoutId),this.timeoutId=null)}handlePending(n,r){const{active:i,onPending:a}=this.props;a(i,n,this.initialCoordinates,r)}handleStart(){const{initialCoordinates:n}=this,{onStart:r}=this.props;n&&(this.activated=!0,this.documentListeners.add(Pe.Click,su,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Pe.SelectionChange,this.removeTextSelection),r(n))}handleMove(n){var r;const{activated:i,initialCoordinates:a,props:o}=this,{onMove:c,options:{activationConstraint:m}}=o;if(!a)return;const d=(r=Ws(n))!=null?r:Le,p=ps(a,d);if(!i&&m){if(ar(m)){if(m.tolerance!=null&&zs(p,m.tolerance))return this.handleCancel();if(zs(p,m.distance))return this.handleStart()}if(or(m)&&zs(p,m.tolerance))return this.handleCancel();this.handlePending(m,p);return}n.cancelable&&n.preventDefault(),c(d)}handleEnd(){const{onAbort:n,onEnd:r}=this.props;this.detach(),this.activated||n(this.props.active),r()}handleCancel(){const{onAbort:n,onCancel:r}=this.props;this.detach(),this.activated||n(this.props.active),r()}handleKeydown(n){n.code===G.Esc&&this.handleCancel()}removeTextSelection(){var n;(n=this.document.getSelection())==null||n.removeAllRanges()}}const ru={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Dt extends Sn{constructor(n){const{event:r}=n,i=kt(r.target);super(n,ru,i)}}Dt.activators=[{eventName:"onPointerDown",handler:(s,n)=>{let{nativeEvent:r}=s,{onActivation:i}=n;return!r.isPrimary||r.button!==0?!1:(i?.({event:r}),!0)}}];const iu={move:{name:"mousemove"},end:{name:"mouseup"}};var Ys;(function(s){s[s.RightClick=2]="RightClick"})(Ys||(Ys={}));class au extends Sn{constructor(n){super(n,iu,kt(n.event.target))}}au.activators=[{eventName:"onMouseDown",handler:(s,n)=>{let{nativeEvent:r}=s,{onActivation:i}=n;return r.button===Ys.RightClick?!1:(i?.({event:r}),!0)}}];const Us={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class ou extends Sn{constructor(n){super(n,Us)}static setup(){return window.addEventListener(Us.move.name,n,{capture:!1,passive:!1}),function(){window.removeEventListener(Us.move.name,n)};function n(){}}}ou.activators=[{eventName:"onTouchStart",handler:(s,n)=>{let{nativeEvent:r}=s,{onActivation:i}=n;const{touches:a}=r;return a.length>1?!1:(i?.({event:r}),!0)}}];var Lt;(function(s){s[s.Pointer=0]="Pointer",s[s.DraggableRect=1]="DraggableRect"})(Lt||(Lt={}));var gs;
5(function(s){s[s.TreeOrder=0]="TreeOrder",s[s.ReversedTreeOrder=1]="ReversedTreeOrder"})(gs||(gs={}));function lu(s){let{acceleration:n,activator:r=Lt.Pointer,canScroll:i,draggingRect:a,enabled:o,interval:c=5,order:m=gs.TreeOrder,pointerCoordinates:d,scrollableAncestors:p,scrollableAncestorRects:u,delta:h,threshold:x}=s;const g=du({delta:h,disabled:!o}),[b,f]=vd(),S=l.useRef({x:0,y:0}),k=l.useRef({x:0,y:0}),R=l.useMemo(()=>{switch(r){case Lt.Pointer:return d?{top:d.y,bottom:d.y,left:d.x,right:d.x}:null;case Lt.DraggableRect:return a}},[r,a,d]),I=l.useRef(null),j=l.useCallback(()=>{const y=I.current;if(!y)return;const w=S.current.x*k.current.x,C=S.current.y*k.current.y;y.scrollBy(w,C)},[]),v=l.useMemo(()=>m===gs.TreeOrder?[...p].reverse():p,[m,p]);l.useEffect(()=>{if(!o||!p.length||!R){f();return}for(const y of v){if(i?.(y)===!1)continue;const w=p.indexOf(y),C=u[w];if(!C)continue;const{direction:T,speed:P}=Gd(y,C,R,n,x);for(const O of["x","y"])g[O][T[O]]||(P[O]=0,T[O]=0);if(P.x>0||P.y>0){f(),I.current=y,b(j,c),S.current=P,k.current=T;return}}S.current={x:0,y:0},k.current={x:0,y:0},f()},[n,j,i,f,o,c,JSON.stringify(R),JSON.stringify(g),b,p,v,u,JSON.stringify(x)])}const cu={x:{[de.Backward]:!1,[de.Forward]:!1},y:{[de.Backward]:!1,[de.Forward]:!1}};function du(s){let{delta:n,disabled:r}=s;const i=Hs(n);return Yt(a=>{if(r||!i||!a)return cu;const o={x:Math.sign(n.x-i.x),y:Math.sign(n.y-i.y)};return{x:{[de.Backward]:a.x[de.Backward]||o.x===-1,[de.Forward]:a.x[de.Forward]||o.x===1},y:{[de.Backward]:a.y[de.Backward]||o.y===-1,[de.Forward]:a.y[de.Forward]||o.y===1}}},[r,n,i])}function uu(s,n){const r=n!=null?s.get(n):void 0,i=r?r.node.current:null;return Yt(a=>{var o;return n==null?null:(o=i??a)!=null?o:null},[i,n])}function mu(s,n){return l.useMemo(()=>s.reduce((r,i)=>{const{sensor:a}=i,o=a.activators.map(c=>({eventName:c.eventName,handler:n(c.handler,i)}));return[...r,...o]},[]),[s,n])}var Kt;(function(s){s[s.Always=0]="Always",s[s.BeforeDragging=1]="BeforeDragging",s[s.WhileDragging=2]="WhileDragging"})(Kt||(Kt={}));var Gs;(function(s){s.Optimized="optimized"})(Gs||(Gs={}));const lr=new Map;function pu(s,n){let{dragging:r,dependencies:i,config:a}=n;const[o,c]=l.useState(null),{frequency:m,measure:d,strategy:p}=a,u=l.useRef(s),h=S(),x=Vt(h),g=l.useCallback(function(k){k===void 0&&(k=[]),!x.current&&c(R=>R===null?k:R.concat(k.filter(I=>!R.includes(I))))},[x]),b=l.useRef(null),f=Yt(k=>{if(h&&!r)return lr;if(!k||k===lr||u.current!==s||o!=null){const R=new Map;for(let I of s){if(!I)continue;if(o&&o.length>0&&!o.includes(I.id)&&I.rect.current){R.set(I.id,I.rect.current);continue}const j=I.node.current,v=j?new wn(d(j),j):null;I.rect.current=v,v&&R.set(I.id,v)}return R}return k},[s,o,r,h,d]);return l.useEffect(()=>{u.current=s},[s]),l.useEffect(()=>{h||g()},[r,h]),l.useEffect(()=>{o&&o.length>0&&c(null)},[JSON.stringify(o)]),l.useEffect(()=>{h||typeof m!="number"||b.current!==null||(b.current=setTimeout(()=>{g(),b.current=null},m))},[m,h,g,...i]),{droppableRects:f,measureDroppableContainers:g,measuringScheduled:o!=null};function S(){switch(p){case Kt.Always:return!1;case Kt.BeforeDragging:return r;default:return!r}}}function ii(s,n){return Yt(r=>s?r||(typeof n=="function"?n(s):s):null,[n,s])}function hu(s,n){return ii(s,n)}function gu(s){let{callback:n,disabled:r}=s;const i=yn(n),a=l.useMemo(()=>{if(r||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:o}=window;return new o(i)},[i,r]);return l.useEffect(()=>()=>a?.disconnect(),[a]),a}function _s(s){let{callback:n,disabled:r}=s;const i=yn(n),a=l.useMemo(()=>{if(r||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:o}=window;return new o(i)},[r]);return l.useEffect(()=>()=>a?.disconnect(),[a]),a}function xu(s){return new wn(Tt(s),s)}function cr(s,n,r){n===void 0&&(n=xu);const[i,a]=l.useState(null);function o(){a(d=>{if(!s)return null;if(s.isConnected===!1){var p;return(p=d??r)!=null?p:null}const u=n(s);return JSON.stringify(d)===JSON.stringify(u)?d:u})}const c=gu({callback(d){if(s)for(const p of d){const{type:u,target:h}=p;if(u==="childList"&&h instanceof HTMLElement&&h.contains(s)){o();break}}}}),m=_s({callback:o});return qe(()=>{o(),s?(m?.observe(s),c?.observe(document.body,{childList:!0,subtree:!0})):(m?.disconnect(),c?.disconnect())},[s]),i}function fu(s){const n=ii(s);return Xr(s,n)}const dr=[];function bu(s){const n=l.useRef(s),r=Yt(i=>s?i&&i!==dr&&s&&n.current&&s.parentNode===n.current.parentNode?i:jn(s):dr,[s]);return l.useEffect(()=>{n.current=s},[s]),r}function yu(s){const[n,r]=l.useState(null),i=l.useRef(s),a=l.useCallback(o=>{const c=Ls(o.target);c&&r(m=>m?(m.set(c,qs(c)),new Map(m)):null)},[]);return l.useEffect(()=>{const o=i.current;if(s!==o){c(o);const m=s.map(d=>{const p=Ls(d);return p?(p.addEventListener("scroll",a,{passive:!0}),[p,qs(p)]):null}).filter(d=>d!=null);r(m.length?new Map(m):null),i.current=s}return()=>{c(s),c(o)};function c(m){m.forEach(d=>{const p=Ls(d);p?.removeEventListener("scroll",a)})}},[a,s]),l.useMemo(()=>s.length?n?Array.from(n.values()).reduce((o,c)=>
5Nt(o,c),Le):si(s):Le,[s,n])}function ur(s,n){n===void 0&&(n=[]);const r=l.useRef(null);return l.useEffect(()=>{r.current=null},n),l.useEffect(()=>{const i=s!==Le;i&&!r.current&&(r.current=s),!i&&r.current&&(r.current=null)},[s]),r.current?ps(s,r.current):Le}function vu(s){l.useEffect(()=>{if(!Ss)return;const n=s.map(r=>{let{sensor:i}=r;return i.setup==null?void 0:i.setup()});return()=>{for(const r of n)r?.()}},s.map(n=>{let{sensor:r}=n;return r}))}function ju(s,n){return l.useMemo(()=>s.reduce((r,i)=>{let{eventName:a,handler:o}=i;return r[a]=c=>{o(c,n)},r},{}),[s,n])}function ai(s){return l.useMemo(()=>s?Hd(s):null,[s])}const mr=[];function wu(s,n){n===void 0&&(n=Tt);const[r]=s,i=ai(r?Ne(r):null),[a,o]=l.useState(mr);function c(){o(()=>s.length?s.map(d=>ei(d)?i:new wn(n(d),d)):mr)}const m=_s({callback:c});return qe(()=>{m?.disconnect(),c(),s.forEach(d=>m?.observe(d))},[s]),a}function Su(s){if(!s)return null;if(s.children.length>1)return s;const n=s.children[0];return qt(n)?n:s}function Nu(s){let{measure:n}=s;const[r,i]=l.useState(null),a=l.useCallback(p=>{for(const{target:u}of p)if(qt(u)){i(h=>{const x=n(u);return h?{...h,width:x.width,height:x.height}:x});break}},[n]),o=_s({callback:a}),c=l.useCallback(p=>{const u=Su(p);o?.disconnect(),u&&o?.observe(u),i(u?n(u):null)},[n,o]),[m,d]=ms(c);return l.useMemo(()=>({nodeRef:m,rect:r,setRef:d}),[r,m,d])}const Iu=[{sensor:Dt,options:{}},{sensor:ri,options:{}}],Cu={current:{}},ns={draggable:{measure:rr},droppable:{measure:rr,strategy:Kt.WhileDragging,frequency:Gs.Optimized},dragOverlay:{measure:Tt}};class zt extends Map{get(n){var r;return n!=null&&(r=super.get(n))!=null?r:void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(n=>{let{disabled:r}=n;return!r})}getNodeFor(n){var r,i;return(r=(i=this.get(n))==null?void 0:i.node.current)!=null?r:void 0}}const _u={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new zt,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:hs},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:ns,measureDroppableContainers:hs,windowRect:null,measuringScheduled:!1},Au={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:hs,draggableNodes:new Map,over:null,measureDroppableContainers:hs},As=l.createContext(Au),oi=l.createContext(_u);function ku(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new zt}}}function Tu(s,n){switch(n.type){case ce.DragStart:return{...s,draggable:{...s.draggable,initialCoordinates:n.initialCoordinates,active:n.active}};case ce.DragMove:return s.draggable.active==null?s:{...s,draggable:{...s.draggable,translate:{x:n.coordinates.x-s.draggable.initialCoordinates.x,y:n.coordinates.y-s.draggable.initialCoordinates.y}}};case ce.DragEnd:case ce.DragCancel:return{...s,draggable:{...s.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case ce.RegisterDroppable:{const{element:r}=n,{id:i}=r,a=new zt(s.droppable.containers);return a.set(i,r),{...s,droppable:{...s.droppable,containers:a}}}case ce.SetDroppableDisabled:{const{id:r,key:i,disabled:a}=n,o=s.droppable.containers.get(r);if(!o||i!==o.key)return s;const c=new zt(s.droppable.containers);return c.set(r,{...o,disabled:a}),{...s,droppable:{...s.droppable,containers:c}}}case ce.UnregisterDroppable:{const{id:r,key:i}=n,a=s.droppable.containers.get(r);if(!a||i!==a.key)return s;const o=new zt(s.droppable.containers);return o.delete(r),{...s,droppable:{...s.droppable,containers:o}}}default:return s}}function Du(s){let{disabled:n}=s;const{active:r,activatorEvent:i,draggableNodes:a}=l.useContext(As),o=Hs(i),c=Hs(r?.id);return l.useEffect(()=>{if(!n&&!i&&o&&c!=null){if(!vn(o)||document.activeElement===o.target)return;const m=a.get(c);if(!m)return;const{activatorNode:d,node:p}=m;if(!d.current&&!p.current)return;requestAnimationFrame(()=>{for(const u of[d.current,p.current]){if(!u)continue;const h=Sd(u);if(h){h.focus();break}}})}},[i,n,a,c,o]),null}function Eu(s,n){let{transform:r,...i}=n;return s!=null&&s.length?s.reduce((a,o)=>o({transform:a,...i}),r):r}function Ru(s){return l.useMemo(()=>({draggable:{...ns.draggable,...s?.draggable},droppable:{...ns.droppable,...s?.droppable},dragOverlay:{...ns.dragOverlay,...s?.dragOverlay}}),[s?.draggable,s?.droppable,s?.dragOverlay])}function Pu(s){let{activeNode:n,measure:r,initialRect:i,config:a=!0}=s;const o=l.useRef(!1),{x:c,y:m}=typeof a=="boolean"?{x:a,y:a}:a;qe(()=>{if(!c&&!m||!n){o.current=!1;return}if(o.current||!i)return;const p=n?.node.current;
5if(!p||p.isConnected===!1)return;const u=r(p),h=Xr(u,i);if(c||(h.x=0),m||(h.y=0),o.current=!0,Math.abs(h.x)>0||Math.abs(h.y)>0){const x=Jr(p);x&&x.scrollBy({top:h.y,left:h.x})}},[n,c,m,i,r])}const li=l.createContext({...Le,scaleX:1,scaleY:1});var ot;(function(s){s[s.Uninitialized=0]="Uninitialized",s[s.Initializing=1]="Initializing",s[s.Initialized=2]="Initialized"})(ot||(ot={}));const ks=l.memo(function(n){var r,i,a,o;let{id:c,accessibility:m,autoScroll:d=!0,children:p,sensors:u=Iu,collisionDetection:h=Fd,measuring:x,modifiers:g,...b}=n;const f=l.useReducer(Tu,void 0,ku),[S,k]=f,[R,I]=kd(),[j,v]=l.useState(ot.Uninitialized),y=j===ot.Initialized,{draggable:{active:w,nodes:C,translate:T},droppable:{containers:P}}=S,O=w!=null?C.get(w):null,H=l.useRef({initial:null,translated:null}),A=l.useMemo(()=>{var be;return w!=null?{id:w,data:(be=O?.data)!=null?be:Cu,rect:H}:null},[w,O]),z=l.useRef(null),[te,L]=l.useState(null),[E,Q]=l.useState(null),Z=Vt(b,Object.values(b)),le=Gt("DndDescribedBy",c),pe=l.useMemo(()=>P.getEnabled(),[P]),ie=Ru(x),{droppableRects:fe,measureDroppableContainers:oe,measuringScheduled:Te}=pu(pe,{dragging:y,dependencies:[T.x,T.y],config:ie.droppable}),W=uu(C,w),Ie=l.useMemo(()=>E?Ws(E):null,[E]),he=yi(),Se=hu(W,ie.draggable.measure);Pu({activeNode:w!=null?C.get(w):null,config:he.layoutShiftCompensation,initialRect:Se,measure:ie.draggable.measure});const q=cr(W,ie.draggable.measure,Se),ze=cr(W?W.parentElement:null),M=l.useRef({activatorEvent:null,active:null,activeNode:W,collisionRect:null,collisions:null,droppableRects:fe,draggableNodes:C,draggingNode:null,draggingNodeRect:null,droppableContainers:P,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),tt=P.getNodeFor((r=M.current.over)==null?void 0:r.id),$e=Nu({measure:ie.dragOverlay.measure}),Ue=(i=$e.nodeRef.current)!=null?i:W,F=y?(a=$e.rect)!=null?a:q:null,De=!!($e.nodeRef.current&&$e.rect),Jt=fu(De?null:q),Ds=ai(Ue?Ne(Ue):null),st=bu(y?tt??W:null),Qt=wu(st),Zt=Eu(g,{transform:{x:T.x-Jt.x,y:T.y-Jt.y,scaleX:1,scaleY:1},activatorEvent:E,active:A,activeNodeRect:q,containerNodeRect:ze,draggingNodeRect:F,over:M.current.over,overlayNodeRect:$e.rect,scrollableAncestors:st,scrollableAncestorRects:Qt,windowRect:Ds}),Nn=Ie?Nt(Ie,T):null,In=yu(st),mi=ur(In),pi=ur(In,[q]),bt=Nt(Zt,mi),yt=F?Ud(F,Zt):null,Pt=A&&yt?h({active:A,collisionRect:yt,droppableRects:fe,droppableContainers:pe,pointerCoordinates:Nn}):null,Cn=Od(Pt,"id"),[nt,_n]=l.useState(null),hi=De?Zt:Nt(Zt,pi),gi=Ld(hi,(o=nt?.rect)!=null?o:null,q),Es=l.useRef(null),An=l.useCallback((be,Ce)=>{let{sensor:_e,options:rt}=Ce;if(z.current==null)return;const Ee=C.get(z.current);if(!Ee)return;const Ae=be.nativeEvent,Ve=new _e({active:z.current,activeNode:Ee,event:Ae,options:rt,context:M,onAbort(ge){if(!C.get(ge))return;const{onDragAbort:Ke}=Z.current,Ye={id:ge};Ke?.(Ye),R({type:"onDragAbort",event:Ye})},onPending(ge,it,Ke,Ye){if(!C.get(ge))return;const{onDragPending:Ot}=Z.current,at={id:ge,constraint:it,initialCoordinates:Ke,offset:Ye};Ot?.(at),R({type:"onDragPending",event:at})},onStart(ge){const it=z.current;if(it==null)return;const Ke=C.get(it);if(!Ke)return;const{onDragStart:Ye}=Z.current,Mt={activatorEvent:Ae,active:{id:it,data:Ke.data,rect:H}};St.unstable_batchedUpdates(()=>{Ye?.(Mt),v(ot.Initializing),k({type:ce.DragStart,initialCoordinates:ge,active:it}),R({type:"onDragStart",event:Mt}),L(Es.current),Q(Ae)})},onMove(ge){k({type:ce.DragMove,coordinates:ge})},onEnd:vt(ce.DragEnd),onCancel:vt(ce.DragCancel)});Es.current=Ve;function vt(ge){return async function(){const{active:Ke,collisions:Ye,over:Mt,scrollAdjustedTranslate:Ot}=M.current;let at=null;if(Ke&&Ot){const{cancelDrop:$t}=Z.current;at={activatorEvent:Ae,active:Ke,collisions:Ye,delta:Ot,over:Mt},ge===ce.DragEnd&&typeof $t=="function"&&await Promise.resolve($t(at))&&(ge=ce.DragCancel)}z.current=null,St.unstable_batchedUpdates(()=>{k({type:ge}),v(ot.Uninitialized),_n(null),L(null),Q(null),Es.current=null;const $t=ge===ce.DragEnd?"onDragEnd":"onDragCancel";if(at){const Rs=Z.current[$t];Rs?.(at),R({type:$t,event:at})}})}}},[C]),xi=l.useCallback((be,Ce)=>(_e,rt)=>{const Ee=_e.nativeEvent,Ae=C.get(rt);
5if(z.current!==null||!Ae||Ee.dndKit||Ee.defaultPrevented)return;const Ve={active:Ae};be(_e,Ce.options,Ve)===!0&&(Ee.dndKit={capturedBy:Ce.sensor},z.current=rt,An(_e,Ce))},[C,An]),kn=mu(u,xi);vu(u),qe(()=>{q&&j===ot.Initializing&&v(ot.Initialized)},[q,j]),l.useEffect(()=>{const{onDragMove:be}=Z.current,{active:Ce,activatorEvent:_e,collisions:rt,over:Ee}=M.current;if(!Ce||!_e)return;const Ae={active:Ce,activatorEvent:_e,collisions:rt,delta:{x:bt.x,y:bt.y},over:Ee};St.unstable_batchedUpdates(()=>{be?.(Ae),R({type:"onDragMove",event:Ae})})},[bt.x,bt.y]),l.useEffect(()=>{const{active:be,activatorEvent:Ce,collisions:_e,droppableContainers:rt,scrollAdjustedTranslate:Ee}=M.current;if(!be||z.current==null||!Ce||!Ee)return;const{onDragOver:Ae}=Z.current,Ve=rt.get(Cn),vt=Ve&&Ve.rect.current?{id:Ve.id,rect:Ve.rect.current,data:Ve.data,disabled:Ve.disabled}:null,ge={active:be,activatorEvent:Ce,collisions:_e,delta:{x:Ee.x,y:Ee.y},over:vt};St.unstable_batchedUpdates(()=>{_n(vt),Ae?.(ge),R({type:"onDragOver",event:ge})})},[Cn]),qe(()=>{M.current={activatorEvent:E,active:A,activeNode:W,collisionRect:yt,collisions:Pt,droppableRects:fe,draggableNodes:C,draggingNode:Ue,draggingNodeRect:F,droppableContainers:P,over:nt,scrollableAncestors:st,scrollAdjustedTranslate:bt},H.current={initial:F,translated:yt}},[A,W,Pt,yt,C,Ue,F,fe,P,nt,st,bt]),lu({...he,delta:T,draggingRect:yt,pointerCoordinates:Nn,scrollableAncestors:st,scrollableAncestorRects:Qt});const fi=l.useMemo(()=>({active:A,activeNode:W,activeNodeRect:q,activatorEvent:E,collisions:Pt,containerNodeRect:ze,dragOverlay:$e,draggableNodes:C,droppableContainers:P,droppableRects:fe,over:nt,measureDroppableContainers:oe,scrollableAncestors:st,scrollableAncestorRects:Qt,measuringConfiguration:ie,measuringScheduled:Te,windowRect:Ds}),[A,W,q,E,Pt,ze,$e,C,P,fe,nt,oe,st,Qt,ie,Te,Ds]),bi=l.useMemo(()=>({activatorEvent:E,activators:kn,active:A,activeNodeRect:q,ariaDescribedById:{draggable:le},dispatch:k,draggableNodes:C,over:nt,measureDroppableContainers:oe}),[E,kn,A,q,k,le,C,nt,oe]);return K.createElement(Gr.Provider,{value:I},K.createElement(As.Provider,{value:bi},K.createElement(oi.Provider,{value:fi},K.createElement(li.Provider,{value:gi},p)),K.createElement(Du,{disabled:m?.restoreFocus===!1})),K.createElement(Ed,{...m,hiddenTextDescribedById:le}));function yi(){const be=te?.autoScrollEnabled===!1,Ce=typeof d=="object"?d.enabled===!1:d===!1,_e=y&&!be&&!Ce;return typeof d=="object"?{...d,enabled:_e}:{enabled:_e}}}),Mu=l.createContext(null),pr="button",Ou="Draggable";function $u(s){let{id:n,data:r,disabled:i=!1,attributes:a}=s;const o=Gt(Ou),{activators:c,activatorEvent:m,active:d,activeNodeRect:p,ariaDescribedById:u,draggableNodes:h,over:x}=l.useContext(As),{role:g=pr,roleDescription:b="draggable",tabIndex:f=0}=a??{},S=d?.id===n,k=l.useContext(S?li:Mu),[R,I]=ms(),[j,v]=ms(),y=ju(c,n),w=Vt(r);qe(()=>(h.set(n,{id:n,key:o,node:R,activatorNode:j,data:w}),()=>{const T=h.get(n);T&&T.key===o&&h.delete(n)}),[h,n]);const C=l.useMemo(()=>({role:g,tabIndex:f,"aria-disabled":i,"aria-pressed":S&&g===pr?!0:void 0,"aria-roledescription":b,"aria-describedby":u.draggable}),[i,g,f,S,b,u.draggable]);return{active:d,activatorEvent:m,activeNodeRect:p,attributes:C,isDragging:S,listeners:i?void 0:y,node:R,over:x,setNodeRef:I,setActivatorNodeRef:v,transform:k}}function Fu(){return l.useContext(oi)}const Lu="Droppable",zu={timeout:25};function Uu(s){let{data:n,disabled:r=!1,id:i,resizeObserverConfig:a}=s;const o=Gt(Lu),{active:c,dispatch:m,over:d,measureDroppableContainers:p}=l.useContext(As),u=l.useRef({disabled:r}),h=l.useRef(!1),x=l.useRef(null),g=l.useRef(null),{disabled:b,updateMeasurementsFor:f,timeout:S}={...zu,...a},k=Vt(f??i),R=l.useCallback(()=>{if(!h.current){h.current=!0;return}g.current!=null&&clearTimeout(g.current),g.current=setTimeout(()=>{p(Array.isArray(k.current)?k.current:[k.current]),g.current=null},S)},[S]),I=_s({callback:R,disabled:b||!c}),j=l.useCallback((C,T)=>{I&&(T&&(I.unobserve(T),h.current=!1),C&&I.observe(C))},[I]),[v,y]=ms(j),w=Vt(n);return l.useEffect(()=>{!I||!v.current||(I.disconnect(),h.current=!1,I.observe(v.current))},[v,I]),l.useEffect(()=>(m({type:ce.RegisterDroppable,element:{id:i,key:o,disabled:r,node:v,rect:x,data:w}}),()=>m({type:ce.UnregisterDroppable,key:o,id:i})),[i]),l.useEffect(()=>{r!==u.current.disabled&&(m({type:ce.SetDroppableDisabled,id:i,key:o,disabled:r}),u.current.disabled=r)},[i,o,r,m]),{active:c,rect:x,isOver:d?.id===i,node:v,over:d,setNodeRef:y}}function Et(s,n,r){const i=s.slice();return i.splice(r<0?i.length+r:r,0,i.splice(n,1)[0]),i}function Vu(s,n){return s.reduce((r,i,a)=>{const o=n.get(i);return o&&(r[a]=o),r},Array(s.length))}function ss(s){return s!==null&&s>=0}
5function Ku(s,n){if(s===n)return!0;if(s.length!==n.length)return!1;for(let r=0;r<s.length;r++)if(s[r]!==n[r])return!1;return!0}function Bu(s){return typeof s=="boolean"?{draggable:s,droppable:s}:s}const Rt=s=>{let{rects:n,activeIndex:r,overIndex:i,index:a}=s;const o=Et(n,i,r),c=n[a],m=o[a];return!m||!c?null:{x:m.left-c.left,y:m.top-c.top,scaleX:m.width/c.width,scaleY:m.height/c.height}},ci="Sortable",di=K.createContext({activeIndex:-1,containerId:ci,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Rt,disabled:{draggable:!1,droppable:!1}});function Ts(s){let{children:n,id:r,items:i,strategy:a=Rt,disabled:o=!1}=s;const{active:c,dragOverlay:m,droppableRects:d,over:p,measureDroppableContainers:u}=Fu(),h=Gt(ci,r),x=m.rect!==null,g=l.useMemo(()=>i.map(y=>typeof y=="object"&&"id"in y?y.id:y),[i]),b=c!=null,f=c?g.indexOf(c.id):-1,S=p?g.indexOf(p.id):-1,k=l.useRef(g),R=!Ku(g,k.current),I=S!==-1&&f===-1||R,j=Bu(o);qe(()=>{R&&b&&u(g)},[R,g,b,u]),l.useEffect(()=>{k.current=g},[g]);const v=l.useMemo(()=>({activeIndex:f,containerId:h,disabled:j,disableTransforms:I,items:g,overIndex:S,useDragOverlay:x,sortedRects:Vu(g,d),strategy:a}),[f,h,j.draggable,j.droppable,I,g,S,d,x,a]);return K.createElement(di.Provider,{value:v},n)}const Hu=s=>{let{id:n,items:r,activeIndex:i,overIndex:a}=s;return Et(r,i,a).indexOf(n)},Wu=s=>{let{containerId:n,isSorting:r,wasDragging:i,index:a,items:o,newIndex:c,previousItems:m,previousContainerId:d,transition:p}=s;return!p||!i||m!==o&&a===c?!1:r?!0:c!==a&&n===d},qu={duration:200,easing:"ease"},ui="transform",Yu=et.Transition.toString({property:ui,duration:0,easing:"linear"}),Gu={roleDescription:"sortable"};function Xu(s){let{disabled:n,index:r,node:i,rect:a}=s;const[o,c]=l.useState(null),m=l.useRef(r);return qe(()=>{if(!n&&r!==m.current&&i.current){const d=a.current;if(d){const p=Tt(i.current,{ignoreTransform:!0}),u={x:d.left-p.left,y:d.top-p.top,scaleX:d.width/p.width,scaleY:d.height/p.height};(u.x||u.y)&&c(u)}}r!==m.current&&(m.current=r)},[n,r,i,a]),l.useEffect(()=>{o&&c(null)},[o]),o}function Xt(s){let{animateLayoutChanges:n=Wu,attributes:r,disabled:i,data:a,getNewIndex:o=Hu,id:c,strategy:m,resizeObserverConfig:d,transition:p=qu}=s;const{items:u,containerId:h,activeIndex:x,disabled:g,disableTransforms:b,sortedRects:f,overIndex:S,useDragOverlay:k,strategy:R}=l.useContext(di),I=Ju(i,g),j=u.indexOf(c),v=l.useMemo(()=>({sortable:{containerId:h,index:j,items:u},...a}),[h,a,j,u]),y=l.useMemo(()=>u.slice(u.indexOf(c)),[u,c]),{rect:w,node:C,isOver:T,setNodeRef:P}=Uu({id:c,data:v,disabled:I.droppable,resizeObserverConfig:{updateMeasurementsFor:y,...d}}),{active:O,activatorEvent:H,activeNodeRect:A,attributes:z,setNodeRef:te,listeners:L,isDragging:E,over:Q,setActivatorNodeRef:Z,transform:le}=$u({id:c,data:v,attributes:{...Gu,...r},disabled:I.draggable}),pe=yd(P,te),ie=!!O,fe=ie&&!b&&ss(x)&&ss(S),oe=!k&&E,Te=oe&&fe?le:null,Ie=fe?Te??(m??R)({rects:f,activeNodeRect:A,activeIndex:x,overIndex:S,index:j}):null,he=ss(x)&&ss(S)?o({id:c,items:u,activeIndex:x,overIndex:S}):j,Se=O?.id,q=l.useRef({activeId:Se,items:u,newIndex:he,containerId:h}),ze=u!==q.current.items,M=n({active:O,containerId:h,isDragging:E,isSorting:ie,id:c,index:j,items:u,newIndex:q.current.newIndex,previousItems:q.current.items,previousContainerId:q.current.containerId,transition:p,wasDragging:q.current.activeId!=null}),tt=Xu({disabled:!M,index:j,node:C,rect:w});return l.useEffect(()=>{ie&&q.current.newIndex!==he&&(q.current.newIndex=he),h!==q.current.containerId&&(q.current.containerId=h),u!==q.current.items&&(q.current.items=u)},[ie,he,h,u]),l.useEffect(()=>{if(Se===q.current.activeId)return;if(Se!=null&&q.current.activeId==null){q.current.activeId=Se;return}const Ue=setTimeout(()=>{q.current.activeId=Se},50);return()=>clearTimeout(Ue)},[Se]),{active:O,activeIndex:x,attributes:z,data:v,rect:w,index:j,newIndex:he,items:u,isOver:T,isSorting:ie,isDragging:E,listeners:L,node:C,overIndex:S,over:Q,setNodeRef:pe,setActivatorNodeRef:Z,setDroppableNodeRef:P,setDraggableNodeRef:te,transform:tt??Ie,transition:$e()};function $e(){if(tt||ze&&q.current.newIndex===j)return Yu;if(!(oe&&!vn(H)||!p)&&(ie||M))return et.Transition.toString({...p,property:ui})}}function Ju(s,n){var r,i;return typeof s=="boolean"?{draggable:s,droppable:!1}:{draggable:(r=s?.draggable)!=null?r:n.draggable,droppable:(i=s?.droppable)!=null?i:n.droppable}}G.Down,G.Right,G.Up,G.Left;function Qu({item:s,isPrimary:n,isMarkedForDeletion:r,onToggleDelete:i}){const{attributes:a,listeners:o,setNodeRef:c,transform:m,transition:d,isDragging:p}=Xt({id:s.id}),u={transform:et.Transform.toString(m),transition:d,opacity:p?.5:1,cursor:"grab"};return t.jsxs("div",{ref:c,style:u,...a,...o,className:"relative",children:[t.jsx(bd,{storageId:s.storageId,index:0,isMarkedForDeletion:r,onToggleDelete:i}),n&&!r&&t.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-accent text-white text-[10px] font-semibold text-center py-0.5",children:"Primary"})]})}function Zu({item:s,isPrimary:n,preview:r,onRemove:i}){const{attributes:a,listeners:o,setNodeRef:c,transform:m,transition:d,isDragging:p}=Xt({id:s.id}),u={transform:et.Transform.toString(m),transition:d,opacity:p?.5:1,cursor:"grab"};return t.jsxs("div",{ref:c,style:u,...a,...o,className:"relative aspect-[3/2] bg-surface border-2 border-accent rounded-lg group",children:[t.jsxs("div",{className:"absolute inset-0 rounded-md overflow-hidden",children:[t.jsx("img",{src:r,alt:"New service image",className:"w-full h-full object-cover pointer-events-none"}),t.jsx("div",{className:"absolute top-2 left-2 bg-accent text-white text-xs px-2 py-1 rounded",children:"New"}),n&&t.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-accent text-white text-[10px] font-semibold text-center py-0.5",children:"Primary"})]}),t.jsx("button",{onClick:h=>{h.stopPropagation(),i()},onPointerDown:h=>h.stopPropagation(),className:"absolute -top-2 -right-2 bg-danger/75 hover:bg-danger text-white rounded-full p-1 z-10 cursor-pointer","aria-label":"Remove image",children:t.jsx(Me,{size:16})})]})}function em({data:s,setData:n,service:r}){const i=l.useRef(null),[a,o]=l.useState(null),{processAndUpload:c}=Wr(),[m,d]=l.useState(null),p=new Set(s.imagesToDelete||[]),u=r.images.length-p.size+s.images.length,x=(()=>{const v=r.images.map(C=>({id:C,type:"existing",storageId:C})),y=s.images.map((C,T)=>({id:`new:${T}`,type:"new",newIndex:T,preview:C.preview})),w=[...v,...y];if(s.imageOrder&&s.imageOrder.length>0){const C=new Map(s.imageOrder.map((T,P)=>[T,P]));return w.sort((T,P)=>{const O=C.get(T.id)??999,H=C.get(P.id)??999;return O-H})}return w})(),g=x.map(v=>v.id);l.useEffect(()=>{if(!s.imageOrder||s.imageOrder.length===0){const v=[...r.images,...s.images.map((y,w)=>`new:${w}`)];v.length>0&&n(y=>({...y,imageOrder:v}))}},[]);const b=Is(Ns(Dt,{activationConstraint:{distance:8}})),f=v=>{const{active:y,over:w}=v;if(!w||y.id===w.id)return;const C=g.indexOf(y.id),T=g.indexOf(w.id);if(C===-1||T===-1)return;const P=Et(g,C,T);n(O=>({...O,imageOrder:P}))},S=async v=>{const y=v.target.files;if(!y||y.length===0)return;const w=y[0];if(!w.type.startsWith("image/")){Y("Please select an image file");return}if(w.size>10*1024*1024){Y("Image must be less than 10MB");return}if(u>=5){Y("Maximum 5 images allowed");return}d(w),i.current&&(i.current.value="")},k=async(v,y)=>{d(null);try{o(s.images.length);const{storageId:w}=await c(v),T=`new:${s.images.length}`;n(P=>({...P,images:[...P.images,{file:v,preview:y,storageId:w}],imageOrder:[...P.imageOrder||g,T]}
5))}catch(w){console.error("Failed to upload image:",w),Y("Failed to upload image. Please try again."),URL.revokeObjectURL(y)}finally{o(null)}},R=v=>{const y=s.images[v];y.preview&&URL.revokeObjectURL(y.preview);const w=`new:${v}`;n(C=>{const T=C.images.filter((A,z)=>z!==v),P=(C.imageOrder||[]).filter(A=>A!==w);let O=0;const H=P.map(A=>A.startsWith("new:")?`new:${O++}`:A);return{...C,images:T,imageOrder:H}})},I=v=>{n(y=>{const w=new Set(y.imagesToDelete||[]);return w.has(v)?w.delete(v):w.add(v),{...y,imagesToDelete:Array.from(w)}})},j=()=>{i.current?.click()};return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex flex-col h-full py-4",children:[t.jsx("p",{className:"text-xl font-semibold mb-1 text-foreground",children:"Manage Images"}),t.jsx("p",{className:"text-xs text-muted mb-4",children:"* Click and drag to reorder images"}),t.jsx("input",{ref:i,type:"file",accept:"image/*",onChange:S,className:"hidden"}),t.jsx(ks,{sensors:b,collisionDetection:Cs,onDragEnd:f,children:t.jsx(Ts,{items:g,strategy:Rt,children:t.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4 mb-6",children:[x.map(v=>{const y=x.find(C=>C.type==="new"||!p.has(C.storageId))?.id,w=v.id===y;if(v.type==="existing")return t.jsx(Qu,{item:v,isPrimary:w,isMarkedForDeletion:p.has(v.storageId),onToggleDelete:I},v.id);{const C=s.images[v.newIndex];return C?t.jsx(Zu,{item:v,isPrimary:w,preview:C.preview,onRemove:()=>R(v.newIndex)},v.id):null}}),u<5&&t.jsx("button",{onClick:j,disabled:a!==null,className:"aspect-[3/2] bg-muted/1 border-2 border-dashed border-muted/20 rounded-lg flex flex-col items-center justify-center gap-2 hover:border-accent hover:bg-accent/5 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:a!==null?t.jsxs(t.Fragment,{children:[t.jsx(je,{size:"md"}),t.jsx("span",{className:"text-sm text-muted",children:"Uploading..."})]}):t.jsxs(t.Fragment,{children:[t.jsx(Nr,{size:32,className:"text-muted"}),t.jsx("span",{className:"text-sm text-muted",children:"Add Image"})]})})]})})}),t.jsxs("div",{className:"bg-surface border border-separator rounded-lg p-4 space-y-2",children:[t.jsx("p",{className:"text-sm text-foreground font-medium",children:"Image Guidelines"}),t.jsxs("ul",{className:"text-sm text-muted space-y-1",children:[t.jsx("li",{children:"⢠Maximum 5 images per service"}),t.jsx("li",{children:"⢠Maximum 10MB per image before processing"}),t.jsx("li",{children:"⢠The primary image is shown in search results"}),t.jsx("li",{children:"⢠Images are displayed in 3:2 landscape ratio"})]})]}),p.size>0&&t.jsx("div",{className:"mt-4 bg-danger/10 border border-danger rounded-lg p-4",children:t.jsxs("p",{className:"text-danger text-sm font-medium",children:[p.size," image(s) will be permanently deleted when you save."]})}),s.images.length>0&&t.jsx("div",{className:"mt-4 bg-accent/10 border border-accent rounded-lg p-4",children:t.jsxs("p",{className:"text-accent text-sm font-medium",children:[s.images.length," new image(s) will be added when you save."]})}),u===5&&t.jsx("div",{className:"mt-4 text-center",children:t.jsx("p",{className:"text-accent text-sm font-medium",children:"Maximum number of images reached (5/5)"})})]}),m&&t.jsx(fs,{file:m,aspectRatio:3/2,targetWidth:1200,targetHeight:800,quality:.5,format:"webp",onCrop:k,onClose:()=>d(null)})]})}function tm({isOpen:s,onOpenChange:n,service:r,vendorId:i,initialTab:a="details",usedServiceTypes:o=[]}){const[c,m]=l.useState(r),[d,p]=l.useState(a),[u,h]=l.useState({serviceType:r.type,name:r.name,description:r.description,pricingType:r.pricingType,price:r.price,priceDisplay:r.price.toString(),currency:r.currency,images:[],imagesToDelete:[]}),[x,g]=l.useState(null),{mutateAsync:b,isPending:f}=J({mutationFn:X(V.services.updateService)}),S=l.useRef(!1);l.useEffect(()=>{s&&!S.current&&(m(r),p(a),h({serviceType:r.type,name:r.name,description:r.description,pricingType:r.pricingType,price:r.price,priceDisplay:r.price.toString(),currency:r.currency,images:[],imagesToDelete:[]}),g(null)),S.current=s},[s]);const k=()=>{switch(d){case"details":return!!u.serviceType&&u.name.trim().length>=3&&u.description.trim().length>=50;case"payment":return u.pricingType?u.pricingType==="hourly"||u.pricingType==="fixed"?u.price>0:!0:!1;case"images":return!0;default:return!0}},R=()=>{const j=!!u.serviceType&&u.name.trim().length>=3&&u.description.trim().length>=20;let v=!0;return u.pricingType?(u.pricingType==="hourly"||u.pricingType==="fixed")&&(v=u.price>0):v=!1,j&&v&&!0},I=async()=>{g(null);try{const j={};u.name!==c.name&&(j.name=u.name),u.description!==c.description&&(j.description=u.description),u.serviceType!==c.type&&(j.type=u.serviceType??void 0),u.pricingType!==c.pricingType&&(j.pricingType=u.pricingType??void 0),u.price!==c.price&&(j.price=u.price),u.currency!==c.currency&&(j.currency=u.currency);const v=u.imagesToDelete||[],y=u.imageOrder||[],w=u.images.length>0||v.length>0,C=c.images.filter(O=>!v.includes(O)),T=y.filter(O=>!O.startsWith("new:")&&!v.includes(O)),P=y.length>0&&JSON.stringify(C)!==JSON.stringify(T);if(w||P){const O=new Map;
5if(u.images.forEach((H,A)=>{H.storageId&&O.set(`new:${A}`,H.storageId)}),y.length>0){const H=y.filter(A=>A.startsWith("new:")?O.has(A):!v.includes(A)).map(A=>A.startsWith("new:")?O.get(A):A);j.images=H}else{let H=c.images.filter(z=>!v.includes(z));const A=u.images.map(z=>z.storageId).filter(z=>!!z);A.length>0&&(H=[...H,...A]),j.images=H}}Object.keys(j).length>0&&await b({serviceId:c._id,vendorId:i,...j}),u.images.forEach(O=>{O.preview&&URL.revokeObjectURL(O.preview)}),n(!1)}catch(j){console.error("Failed to update service:",j),g("Failed to update service. Please try again.")}};return t.jsx(N.Backdrop,{isOpen:s,onOpenChange:j=>{n(j),j||g(null)},isDismissable:!f,isKeyboardDismissDisabled:f,children:t.jsx(N.Container,{size:"full",placement:"center",scroll:"inside",children:t.jsxs(N.Dialog,{className:"p-0 rounded-none",children:[t.jsx(N.Header,{className:"shrink-0 border-b border-separator p-4 sm:p-6",children:t.jsx(N.Heading,{children:t.jsx("h2",{children:"Edit Service"})})}),t.jsx(N.Body,{className:"w-full max-w-lg mx-auto grow p-2 sm:p-4",children:t.jsxs(Fe,{selectedKey:d,onSelectionChange:j=>p(j),className:"h-full space-y-4",children:[t.jsxs(Fe.List,{className:"",children:[t.jsxs(Fe.Tab,{id:"details",isDisabled:d!=="details"&&!k(),children:["Details",t.jsx(Fe.Indicator,{className:"bg-accent"})]}),t.jsxs(Fe.Tab,{id:"payment",isDisabled:d!=="payment"&&!k(),children:["Payment",t.jsx(Fe.Indicator,{className:"bg-accent"})]}),t.jsxs(Fe.Tab,{id:"images",isDisabled:d!=="images"&&!k(),children:["Images",t.jsx(Fe.Indicator,{className:"bg-accent"})]})]}),t.jsx(Fe.Panel,{id:"details",className:"grow overflow-y-auto",children:t.jsx("div",{className:"max-w-2xl h-full",children:t.jsx(ud,{data:u,setData:h,service:c,disabledServiceTypes:o.filter(j=>j!==r.type)})})}),t.jsx(Fe.Panel,{id:"payment",className:"grow overflow-y-auto",children:t.jsx("div",{className:"max-w-2xl h-full",children:t.jsx(fd,{data:u,setData:h,service:c})})}),t.jsx(Fe.Panel,{id:"images",className:"grow overflow-y-auto",children:t.jsx("div",{className:"max-w-2xl h-full",children:t.jsx(em,{data:u,setData:h,service:c})})})]})}),t.jsx(N.Footer,{className:"shrink-0 bg-background p-4",children:t.jsxs("div",{className:"flex justify-between w-full",children:[t.jsx(D,{variant:"ghost",onPress:()=>n(!1),isDisabled:f,children:"Cancel"}),t.jsxs("div",{className:"flex flex-col items-end gap-2",children:[x&&t.jsx("p",{className:"text-danger text-sm",children:x}),t.jsxs(D,{variant:"primary",onPress:I,isDisabled:!R()||f,isPending:f,children:[f?t.jsx(je,{size:"sm"}):t.jsx(va,{size:16}),"Save Changes"]})]})]})})]})})})}function sm({isOpen:s,onOpenChange:n,onConfirm:r,serviceName:i,isDeleting:a}){return t.jsx(re.Backdrop,{isOpen:s,onOpenChange:n,isDismissable:!a,isKeyboardDismissDisabled:a,children:t.jsx(re.Container,{children:t.jsxs(re.Dialog,{children:[t.jsx(re.Header,{children:t.jsx(re.Heading,{children:"Delete Service"})}),t.jsxs(re.Body,{children:[t.jsxs("p",{className:"text-foreground",children:["Are you sure you want to delete ",t.jsxs("strong",{children:['"',i,'"']}),"?"]}),t.jsx("p",{className:"text-muted text-sm mt-2",children:"This action cannot be undone. All associated images and data will be permanently removed."})]}),t.jsxs(re.Footer,{children:[t.jsx(D,{variant:"ghost",onPress:()=>n(!1),isDisabled:a,children:"Cancel"}),t.jsx(D,{variant:"danger",onPress:r,isDisabled:a,isPending:a,children:a?t.jsxs(t.Fragment,{children:[t.jsx(je,{size:"sm"}),"Deleting..."]}):"Delete Service"})]})]})})})}function nm({name:s,ServiceIcon:n,unlisted:r=!1}){return t.jsxs("div",{className:"flex flex-row items-center w-full gap-4 px-4 min-w-0",children:[t.jsxs("h3",{className:"font-semibold truncate flex-1 min-w-0",children:[s,r&&t.jsxs("span",{className:"text-muted/50",children:[" ","(unlisted)"]})]}),t.jsx(n,{className:"text-muted",size:20})]})}function rm({service:s}){const n=()=>
5{if(s.pricingType==="free")return"Free";if(s.pricingType==="contact")return"Contact for Price";const r=s.price.toFixed(2),i=s.pricingType==="hourly"?" / hr":"";return t.jsxs("span",{children:[t.jsxs("strong",{className:"text-xl text-accent",children:["$",r]}),i," ",`(${s.currency})`]})};return t.jsx("div",{className:"flex flex-col gap-2",children:t.jsxs("div",{className:"max-w-fit",children:[s.pricingType==="free"&&t.jsx("span",{children:t.jsx("strong",{className:"text-xl text-accent",children:"Free"})}),s.pricingType==="contact"&&t.jsx("span",{children:t.jsx("strong",{className:"text-lg",children:"No Price - Contact"})}),s.pricingType==="hourly"&&t.jsx(n,{}),s.pricingType==="fixed"&&t.jsx(n,{})]})})}function im({description:s}){return t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx($,{className:"text-muted",children:"DESCRIPTION"}),t.jsx("p",{children:s})]})}function am({storageId:s,alt:n,className:r,onClick:i}){const{data:a}=Qe(Je(V.files.getImageUrl,{storageId:s}));return a?i?t.jsx("button",{onClick:i,className:`${r} cursor-pointer hover:opacity-80 transition-opacity rounded`,children:t.jsx("img",{src:a,alt:n,className:"w-full h-full object-cover rounded-2xl"})}):t.jsx("img",{src:a,alt:n,className:r}):t.jsx("div",{className:r+" animate-pulse bg-surface"})}function om({isOpen:s,onOpenChange:n,images:r,initialIndex:i,serviceName:a}){const[o,c]=l.useState(i);l.useEffect(()=>{s&&c(i)},[s,i]);const{data:m=[]}=Qe(Je(V.files.getImageUrls,{storageIds:r})),d=m[o],p=l.useCallback(()=>{c(h=>h>0?h-1:r.length-1)},[r.length]),u=l.useCallback(()=>{c(h=>h<r.length-1?h+1:0)},[r.length]);return l.useEffect(()=>{if(!s)return;const h=x=>{x.key==="ArrowLeft"?p():x.key==="ArrowRight"&&u()};return window.addEventListener("keydown",h),()=>window.removeEventListener("keydown",h)},[s,p,u]),t.jsx(N.Backdrop,{isOpen:s,onOpenChange:n,className:"bg-black/90",children:t.jsx(N.Container,{size:"full",placement:"center",children:t.jsxs(N.Dialog,{className:"flex flex-col bg-black text-white",children:[t.jsx(N.Header,{className:"shrink-0 border-b border-white/10",children:t.jsxs("div",{className:"flex items-center justify-between w-full",children:[t.jsx(N.Heading,{className:"text-white",children:a}),t.jsx(D,{variant:"ghost",size:"sm",onPress:()=>n(!1),isIconOnly:!0,children:t.jsx(Me,{size:20})})]})}),t.jsxs(N.Body,{className:"grow flex flex-col items-center justify-center p-4 gap-6 overflow-y-auto",children:[t.jsxs("div",{className:"relative flex items-center justify-center w-full max-w-5xl grow",children:[r.length>1&&t.jsx(D,{variant:"ghost",size:"lg",onPress:p,className:"absolute left-4 z-10 bg-white/10 hover:bg-white/20",isIconOnly:!0,children:t.jsx(Bo,{size:32})}),d?t.jsx("img",{src:d,alt:`${a} image ${o+1}`,className:"max-w-full max-h-[70dvh] object-contain rounded-lg"}):t.jsx("div",{className:"w-full h-[70dvh] bg-surface/20 animate-pulse rounded-lg flex items-center justify-center",children:t.jsx("span",{className:"text-white/50",children:"Loading..."})}),r.length>1&&t.jsx(D,{variant:"ghost",size:"lg",onPress:u,className:"absolute right-4 z-10 bg-white/10 hover:bg-white/20",isIconOnly:!0,children:t.jsx(ua,{size:32})})]}),r.length>1&&t.jsx("div",{className:"flex gap-2 overflow-x-auto pb-2 max-w-5xl w-full justify-center",children:r.map((h,x)=>{const g=m[x],b=x===o;return t.jsxs("button",{onClick:()=>c(x),className:` 6 relative shrink-0 w-20 h-20 rounded-lg overflow-hidden 7 border-2 transition-all hover:opacity-100 8 ${b?"border-accent scale-105 opacity-100":"border-white/20 opacity-60"} 9 `,children:[g?t.jsx("img",{src:g,alt:`${a} thumbnail ${x+1}`,className:"w-full h-full object-cover"}):t.jsx("div",{className:"w-full h-full bg-surface/20 animate-pulse"}),b&&t.jsx("div",{className:"absolute inset-0 bg-accent/20"})]},h)})}),t.jsxs("div",{className:"text-sm text-muted",children:[o+1," / ",r.length]})]}),t.jsx(N.Footer,{className:"shrink-0 border-t border-white/10 justify-center",children:t.jsx("div",{className:"text-sm text-muted",children:"Use arrow keys or click thumbnails to navigate"})})]})})})}function lm({storageId:s,alt:n,isPrimary:r,onClick:i}){const{attributes:a,listeners:o,setNodeRef:c,transform:m,transition:d,isDragging:p}=Xt({id:s}),u={transform:et.Transform.toString(m),transition:d,opacity:p?.5:1,cursor:"grab"};return t.jsxs("div",{ref:c,style:u,...a,...o,className:"relative aspect-[3/2] rounded-lg border border-separator overflow-hidden",children:[t.jsx(am,{storageId:s,alt:n,className:"w-full h-full object-cover",onClick:i}),r&&t.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-accent text-white text-[10px] font-semibold text-center py-0.5",children:"Primary"})]})}function cm({images:s,serviceName:n,onAddClick:r,onReorder:i}
9){const[a,o]=l.useState(!1),[c,m]=l.useState(0),d=Is(Ns(Dt,{activationConstraint:{distance:8}})),p=h=>{m(h),o(!0)},u=h=>{const{active:x,over:g}=h;if(!g||x.id===g.id)return;const b=s.indexOf(x.id),f=s.indexOf(g.id);if(b===-1||f===-1)return;const S=Et(s,b,f);i?.(S)};return s.length===0?t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx($,{children:"Images"}),t.jsx(D,{variant:"tertiary",size:"sm",onPress:r,className:"w-18 h-18 border-2 border-dashed border-separator",children:t.jsx(Ze,{size:20})})]}):t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsx($,{className:"text-muted",children:"IMAGES"}),t.jsx(ks,{sensors:d,collisionDetection:Cs,onDragEnd:u,children:t.jsx(Ts,{items:s,strategy:Rt,children:t.jsxs("div",{className:"grid grid-cols-3 sm:grid-cols-4 md:grid-cols-5 gap-2 items-center",children:[s.map((h,x)=>t.jsx(lm,{storageId:h,alt:`${n} image ${x+1}`,isPrimary:x===0,onClick:()=>p(x)},h)),s.length<5&&t.jsx("button",{onClick:r,className:"aspect-[3/2] border-2 border-dashed border-separator rounded-lg flex items-center justify-center hover:bg-muted/5 transition-colors",children:t.jsx(Ze,{size:20,className:"text-muted"})})]})})}),t.jsx("p",{className:"text-xs text-muted",children:"* Click and drag to reorder images"}),a&&t.jsx(om,{isOpen:a,onOpenChange:o,images:s,initialIndex:c,serviceName:n})]})}function dm({service:s,onEdit:n,onDelete:r,onToggleEnabled:i,onReorderImages:a,index:o}){const c=Kr[s.type],m=ws[s.type];return t.jsxs(mt.Item,{id:s._id,className:"border border-white",children:[o===0&&t.jsx(Un,{className:"bg-gradient-to-r from-transparent via-muted to-transparent"}),t.jsx(mt.Heading,{className:"relative",children:t.jsxs(mt.Trigger,{className:"min-w-0",children:[t.jsx(mt.Indicator,{className:"block",children:t.jsx(Ir,{size:16,className:"text-muted shrink-0"})}),t.jsx(nm,{serviceId:s._id,name:s.name,ServiceIcon:c,unlisted:s.isDisabled,onEdit:()=>n(s._id,"details"),onDelete:()=>r(s._id)})]})}),t.jsx(mt.Panel,{className:"rounded-br-xl bg-",children:t.jsx(Xe,{variant:"secondary",className:"py-4 space-y-4",children:t.jsxs(mt.Body,{className:"space-y-8",children:[t.jsxs("div",{children:[t.jsxs("div",{className:"flex flex-row justify-between items-start",children:[t.jsx(rm,{service:s}),t.jsxs("div",{className:"flex items-center gap-2 pt-2",children:[t.jsx($,{className:"text-sm",children:s.isDisabled?"Unlisted":"Active"}),t.jsx(Re,{isSelected:!s.isDisabled,onChange:()=>i(s._id,!s.isDisabled),size:"sm",children:t.jsx(Re.Control,{children:t.jsx(Re.Thumb,{})})})]})]}),t.jsxs(Ge,{className:"mt-2 px-4 py-2 w-full sm:max-w-fit",variant:"soft",color:"accent",children:[t.jsx(c,{size:16,className:"relative top-px"}),m.name]})]}),t.jsx(im,{description:s.description}),t.jsx(cm,{images:s.images,serviceName:s.name,onAddClick:()=>n(s._id,"images"),onReorder:d=>a(s._id,d)}),t.jsxs("div",{className:"flex flex-row items-center justify-between gap-4",children:[t.jsxs(D,{variant:"tertiary",size:"sm",className:"flex items-center gap-2 hover:text-danger",onPress:()=>r(s._id),children:[t.jsx(br,{size:14,className:"relative top-px"}),"Delete"]}),t.jsxs(D,{size:"sm",className:"flex items-center gap-2",onPress:()=>n(s._id),children:[t.jsx(ja,{size:14,className:"relative top-px"}),"Edit Service"]})]})]})})}),t.jsx(Un,{className:"bg-gradient-to-r from-transparent via-muted to-transparent"})]},s._id)}function um({vendorProfile:s,services:n,setAddServiceModalIsOpen:r,setShowServicesOnboarding:i,initialExpandedId:a}){const[o,c]=l.useState(!1),[m,d]=l.useState(!1),[p,u]=l.useState(null),[h,x]=l.useState("details"),[g,b]=l.useState(()=>a?new Set([a]):new Set);l.useEffect(()=>{a&&b(A=>A.has(a)?A:new Set([...A,a]))},[a]);const{mutateAsync:f}=J({mutationFn:X(V.services.toggleServiceEnabled)}),{mutateAsync:S,isPending:k}=J({mutationFn:X(V.services.deleteService)}),{mutateAsync:R}=J({mutationFn:X(V.services.updateService)}),I=n?.find(A=>A._id===p),j=n&&n.length>0,v=(A,z="details")=>{u(A),x(z),c(!0)},y=async(A,z)=>{if(s)try{await f({serviceId:A,vendorId:s._id,isDisabled:z})}catch(te){console.error("Failed to toggle service:",te)}},w=async(A,z)=>
9{if(s)try{await R({serviceId:A,vendorId:s._id,images:z})}catch(te){console.error("Failed to reorder images:",te),Y("Failed to reorder images. Please try again.")}},C=A=>{if(n.length===1){Y("You must have at least 1 service as a Vendor.");return}u(A),d(!0)},T=async()=>{if(!(!s||!p))try{await S({serviceId:p,vendorId:s._id}),ye("Service deleted successfully!"),d(!1),u(null)}catch(A){console.error("Failed to delete service:",A),Y("Failed to delete service. Please try again.")}},P=()=>{if(n){const A=new Set(n.map(z=>z._id));b(A)}},O=()=>{b(new Set)},H=A=>{b(A)};return t.jsxs(t.Fragment,{children:[t.jsxs(B,{className:"w-full p-4 sm:p-8 space-y-4 sm:space-y-8",children:[t.jsx(B.Header,{className:"flex flex-row justify-between items-center flex-wrap sm:wrap-none gap-4 sm:gap-8",children:t.jsxs("div",{className:"flex flex-col gap-1",children:[t.jsxs("div",{className:"flex flex-row gap-4",children:[t.jsx("h2",{className:"text-xl",children:"My Services"}),t.jsxs(Ge,{variant:"soft",color:"accent",size:"sm",className:"px-4 hidden md:hidden-not",children:[n?.length||0," service",n?.length===1?"":"s"," offered"]})]}),s&&t.jsx(ae,{children:"This is a list of services that you provide at different tracks around your area"})]})}),t.jsx(B.Content,{children:j?t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex flex-row justify-between items-center pl-2",children:[g.size>0&&t.jsxs(jt,{delay:1e3,children:[t.jsx(D,{isIconOnly:!0,variant:"ghost",onPress:O,children:t.jsx(cl,{className:"text-muted"})}),t.jsx(jt.Content,{children:t.jsx("p",{children:"Collapse All"})})]}),g.size===0&&t.jsxs(jt,{delay:1e3,children:[t.jsx(D,{isIconOnly:!0,variant:"ghost",onPress:P,children:t.jsx(ul,{className:"text-muted"})}),t.jsx(jt.Content,{children:t.jsx("p",{children:"Expand All"})})]}),t.jsxs(jt,{delay:1e3,children:[t.jsxs(D,{onPress:()=>r(!0),isDisabled:!s,size:"sm",className:"mr-3",children:[t.jsx(Ze,{size:12,className:"relative top-px"}),"Add"]}),t.jsx(jt.Content,{children:t.jsx("p",{children:"Add New Service"})})]})]}),t.jsx("div",{className:"space-y-0 w-full",children:t.jsx(mt,{allowsMultipleExpanded:!0,expandedKeys:g,onExpandedChange:H,children:n.map((A,z)=>t.jsx(dm,{service:A,onEdit:v,onDelete:C,onToggleEnabled:y,onReorderImages:w,index:z},A._id))})})]}):t.jsxs("div",{className:"flex flex-col items-center justify-center py-8 gap-4",children:[t.jsx("p",{className:"text-muted",children:'No services yet. Click "Add Service" to get started.'}),t.jsxs(D,{onPress:()=>i(!0),isDisabled:!s,children:[t.jsx(Ze,{size:12}),"Add Your First Service"]})]})})]}),o&&s&&I&&t.jsx(tm,{isOpen:o,onOpenChange:A=>{c(A),A||u(null)},service:I,vendorId:s._id,initialTab:h,usedServiceTypes:n.map(A=>A.type)}),m&&I&&t.jsx(sm,{isOpen:m,onOpenChange:A=>{d(A),A||u(null)},onConfirm:T,serviceName:I.name,isDeleting:k})]})}function mm({isOpen:s,onOpenChange:n,vendorId:r,vendorCountry:i}){const a=i?xn(i):"CAD",[o,c]=l.useState(""),[m,d]=l.useState("none"),[p,u]=l.useState(""),[h,x]=l.useState(""),[g,b]=l.useState(a),[f,S]=l.useState(""),[k,R]=l.useState(null),[I,j]=l.useState(null),[v,y]=l.useState(!1),[w,C]=l.useState(null),T=l.useRef(null),{mutateAsync:P}=J({mutationFn:X(V.showcase.generateShowcaseImageUploadUrl)}),{mutateAsync:O}=J({mutationFn:X(V.showcase.createShowcaseItem)}),H=L=>{const E=L.target.files?.[0];if(E){if(!E.type.startsWith("image/")){Y("Please select an image file");return}if(E.size>10*1024*1024){Y("Image must be less than 10MB");return}C(E),T.current&&(T.current.value="")}},A=(L,E)=>{I&&URL.revokeObjectURL(I),R(L),j(E),C(null)},z=async()=>{if(!(!o.trim()||!f.trim()||!k)){y(!0);try{const L=await P({}),E=await fetch(L,{method:"POST",headers:{"Content-Type":k.type},body:k}),{storageId:Q}=await E.json();let Z,le,pe;m==="set"?(Z=p?parseFloat(p):void 0,pe=Z!==void 0?g:void 0):m==="range"?(Z=p?parseFloat(p):void 0,le=h?parseFloat(h):void 0,pe=Z!==void 0?g:void 0):m==="contact"&&(Z=0),await O({vendorId:r,image:Q,title:o.trim(),price:Z,maxPrice:le,currency:pe,externalUrl:f.trim()}),ye("Showcase item added!"),n(!1)}catch(L){console.error("Failed to add showcase item:",L),Y("Failed to add showcase item"),y(!1)}}},te=o.trim().length>=2&&f.trim().length>=4&&k;return t.jsxs(t.Fragment,{children:[t.jsx(N.Backdrop,{isOpen:s,onOpenChange:n,children:t.jsx(N.Container,{children:t.jsxs(N.Dialog,{className:"sm:w-[28rem]",children:[t.jsx(N.Header,{children:t.jsx(N.Heading,{children:"Add Showcase Item"})}),t.jsxs(N.Body,{className:"space-y-4",children:[t.jsxs("div",{children:[t.jsx($,{className:"text-sm mb-2 block",children:"Product Image *"}),t.jsx("input",{ref:T,type:"file",accept:"image/*",onChange:H,className:"hidden"}),I?t.jsx("div",{className:"relative w-32 h-32 rounded-xl overflow-hidden cursor-pointer border border-separator",onClick:()=>T.current?.click(),children:t.jsx("img",{src:I,alt:"Preview",className:"w-full h-full object-cover"})}):t.jsxs(D,{variant:"ghost",className:"w-32 h-32 border border-separator",onPress:()=>T.current?.click(),children:[t.jsx(sn,{size:20}),"Upload"]})]}),t.jsxs(ue,{value:o,onChange:c,isRequired:!0,children:[t.jsx($,{children:"Title"}),t.jsx(xe,{placeholder:"Product name"}),t.jsx(ct,{})]}),t.jsxs("div",{children:[t.jsx($,{className:"text-sm mb-2 block",children:"Pricing"}),t.jsx("div",{className:"flex flex-wrap gap-2",children:[{key:"set",label:"Set Price"},{key:"range",label:"Price Range"},{key:"contact",label:"Contact for Price"}].map(L=>t.jsx("button",{type:"button",onClick:()=>d(E=>E===L.key?"none":L.key),className:`px-3 py-1.5 rounded-lg text-sm font-semibold transition-colors ${m===L.key?"bg-accent text-white":"bg-content2 text-foreground-500 hover:bg-content3"}`,children:L.label},L.key))})]}),m==="set"&&t.jsxs("div",{className:"flex gap-3",children:[t.jsxs(ue,{className:"flex-1",value:p,onChange:u,children:[t.jsx($,{children:"Price"}),t.jsx(xe,{placeholder:"29.99",type:"number"})]}),t.jsxs(U,{className:"w-24",value:g,onChange:L=>b(L),children:[t.jsx($,{children:"Currency"}),t.jsxs(U.Trigger,{children:[t.jsx(U.Value,{}),t.jsx(U.Indicator,{})]}),t.jsx(U.Popover,{className:"border-1 border-white/25",children:t.jsx(se,{children:Ct.map(L=>t.jsxs(se.Item,{id:L.key,textValue:L.name,children:[L.symbol," ",L.key]},L.key))})})]})]}),m==="range"&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex gap-3",children:[t.jsxs(ue,{className:"flex-1",value:p,onChange:u,children:[t.jsx($,{children:"From"}),t.jsx(xe,{placeholder:"10.00",type:"number"})]}),t.jsxs(ue,{className:"flex-1",value:h,onChange:x,children:[t.jsx($,{children:"To"}),t.jsx(xe,{placeholder:"50.00",type:"number"})]})]}),t.jsxs(U,{className:"w-24",value:g,onChange:L=>b(L),children:[t.jsx($,{children:"Currency"}),t.jsxs(U.Trigger,{children:[t.jsx(U.Value,{}),t.jsx(U.Indicator,{})]}),t.jsx(U.Popover,{className:"border-1 border-white/25",children:t.jsx(se,{children:Ct.map(L=>t.jsxs(se.Item,{id:L.key,textValue:L.name,children:[L.symbol," ",L.key]},L.key))})})]})]}),t.jsxs(ue,{value:f,onChange:S,isRequired:!0,children:[t.jsx($,{children:"Product URL"}),t.jsx(xe,{placeholder:"www.example.com/product"}),t.jsx(ae,{children:"Link to this product on your website"}),t.jsx(ct,{})]})]}),t.jsxs(N.Footer,{children:[t.jsx(D,{variant:"ghost",onPress:()=>n(!1),isDisabled:v,children:"Cancel"}),t.jsx(D,{variant:"primary",onPress:z,isDisabled:!te||v,isPending:v,children:v?t.jsx(je,{size:"sm"}):"Add Item"})]})]})})}),w&&t.jsx(fs,{file:w,aspectRatio:1,targetWidth:512,targetHeight:512,quality:.75,onCrop:A,onClose:()=>C(null)})]})}const Vs=12;function pm(s){return!s||s.price==null?"none":s.price===0?"contact":s.maxPrice!=null?"range":"set"}function hm({isOpen:s,onOpenChange:n,item:r,vendorCountry:i}){const a=i?xn(i):"CAD",[o,c]=l.useState(r.title),[m,d]=l.useState(()=>pm(r)),[p,u]=l.useState(r.price!=null&&r.price!==0?String(r.price):""),[h,x]=l.useState(r.maxPrice!=null?String(r.maxPrice):""),[g,b]=l.useState(r.currency||a),[f,S]=l.useState(r.externalUrl),[k,R]=l.useState(null),[I,j]=l.useState(null),[v,y]=l.useState(!1),[w,C]=l.useState(null),T=l.useRef(null),{mutateAsync:P}=J({mutationFn:X(V.showcase.generateShowcaseImageUploadUrl)}),{mutateAsync:O}=J({mutationFn:X(V.showcase.updateShowcaseItem)}),H=E=>{const Q=E.target.files?.[0];if(Q){if(!Q.type.startsWith("image/")){Y("Please select an image file");return}if(Q.size>10*1024*1024){Y("Image must be less than 10MB");return}C(Q),T.current&&(T.current.value="")}},A=(E,Q)=>{I&&URL.revokeObjectURL(I),R(E),j(Q),C(null)},z=async()=>
9{if(!(!o.trim()||!f.trim())){y(!0);try{let E;if(k){const pe=await P({}),ie=await fetch(pe,{method:"POST",headers:{"Content-Type":k.type},body:k}),{storageId:fe}=await ie.json();E=fe}let Q=null,Z=null,le=null;m==="set"?(Q=p?parseFloat(p):null,le=Q!==null?g:null):m==="range"?(Q=p?parseFloat(p):null,Z=h?parseFloat(h):null,le=Q!==null?g:null):m==="contact"&&(Q=0),await O({itemId:r._id,...E&&{image:E},title:o.trim(),price:Q,maxPrice:Z,currency:le,externalUrl:f.trim()}),ye("Showcase item updated!"),n(!1)}catch(E){console.error("Failed to update showcase item:",E),Y("Failed to update showcase item"),y(!1)}}},te=o.trim().length>=2&&f.trim().length>=4,L=I||r.imageUrl;return t.jsxs(t.Fragment,{children:[t.jsx(N.Backdrop,{isOpen:s,onOpenChange:n,children:t.jsx(N.Container,{children:t.jsxs(N.Dialog,{className:"sm:w-[28rem]",children:[t.jsx(N.Header,{children:t.jsx(N.Heading,{children:"Edit Showcase Item"})}),t.jsxs(N.Body,{className:"space-y-4",children:[t.jsxs("div",{children:[t.jsx($,{className:"text-sm mb-2 block",children:"Product Image"}),t.jsx("input",{ref:T,type:"file",accept:"image/*",onChange:H,className:"hidden"}),L?t.jsx("div",{className:"relative w-32 h-32 rounded-xl overflow-hidden cursor-pointer border border-separator",onClick:()=>T.current?.click(),children:t.jsx("img",{src:L,alt:"Preview",className:"w-full h-full object-cover"})}):t.jsxs(D,{variant:"ghost",className:"w-32 h-32 border border-separator",onPress:()=>T.current?.click(),children:[t.jsx(sn,{size:20}),"Upload"]}),t.jsx(ae,{className:"mt-1",children:"Click image to replace"})]}),t.jsxs(ue,{value:o,onChange:c,isRequired:!0,children:[t.jsx($,{children:"Title"}),t.jsx(xe,{placeholder:"Product name"}),t.jsx(ct,{})]}),t.jsxs("div",{children:[t.jsx($,{className:"text-sm mb-2 block",children:"Pricing"}),t.jsx("div",{className:"flex flex-wrap gap-2",children:[{key:"set",label:"Set Price"},{key:"range",label:"Price Range"},{key:"contact",label:"Contact for Price"}].map(E=>t.jsx("button",{type:"button",onClick:()=>d(Q=>Q===E.key?"none":E.key),className:`px-3 py-1.5 rounded-lg text-sm font-semibold transition-colors ${m===E.key?"bg-accent text-white":"bg-content2 text-foreground-500 hover:bg-content3"}`,children:E.label},E.key))})]}),m==="set"&&t.jsxs("div",{className:"flex gap-3",children:[t.jsxs(ue,{className:"flex-1",value:p,onChange:u,children:[t.jsx($,{children:"Price"}),t.jsx(xe,{placeholder:"29.99",type:"number"})]}),t.jsxs(U,{className:"w-24",value:g,onChange:E=>b(E),children:[t.jsx($,{children:"Currency"}),t.jsxs(U.Trigger,{children:[t.jsx(U.Value,{}),t.jsx(U.Indicator,{})]}),t.jsx(U.Popover,{className:"border-1 border-white/25",children:t.jsx(se,{children:Ct.map(E=>t.jsxs(se.Item,{id:E.key,textValue:E.name,children:[E.symbol," ",E.key]},E.key))})})]})]}),m==="range"&&t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex gap-3",children:[t.jsxs(ue,{className:"flex-1",value:p,onChange:u,children:[t.jsx($,{children:"From"}),t.jsx(xe,{placeholder:"10.00",type:"number"})]}),t.jsxs(ue,{className:"flex-1",value:h,onChange:x,children:[t.jsx($,{children:"To"}),t.jsx(xe,{placeholder:"50.00",type:"number"})]})]}),t.jsxs(U,{className:"w-24",value:g,onChange:E=>b(E),children:[t.jsx($,{children:"Currency"}),t.jsxs(U.Trigger,{children:[t.jsx(U.Value,{}),t.jsx(U.Indicator,{})]}),t.jsx(U.Popover,{className:"border-1 border-white/25",children:t.jsx(se,{children:Ct.map(E=>t.jsxs(se.Item,{id:E.key,textValue:E.name,children:[E.symbol," ",E.key]},E.key))})})]})]}),t.jsxs(ue,{value:f,onChange:S,isRequired:!0,children:[t.jsx($,{children:"Product URL"}),t.jsx(xe,{placeholder:"www.example.com/product"}),t.jsx(ae,{children:"Link to this product on your website"}),t.jsx(ct,{})]})]}),t.jsxs(N.Footer,{children:[t.jsx(D,{variant:"ghost",onPress:()=>n(!1),isDisabled:v,children:"Cancel"}),t.jsx(D,{variant:"primary",onPress:z,isDisabled:!te||v,isPending:v,children:v?t.jsx(je,{size:"sm"}):"Save"})]})]})})}),w&&t.jsx(fs,{file:w,aspectRatio:1,targetWidth:512,targetHeight:512,quality:.75,onCrop:A,onClose:()=>C(null)})]})}function gm({isOpen:s,onOpenChange:n,onConfirm:r,isDeleting:i}){return t.jsx(N.Backdrop,{isOpen:s,onOpenChange:n,children:t.jsx(N.Container,{children:t.jsxs(N.Dialog,{className:"sm:w-[24rem]",children:[t.jsx(N.Header,{children:t.jsx(N.Heading,{children:"Delete Showcase Item"})}),t.jsx(N.Body,{children:t.jsx("p",{className:"text-muted",children:"Are you sure you want to delete this showcase item? This action cannot be undone."})}),t.jsxs(N.Footer,{children:[t.jsx(D,{variant:"ghost",onPress:()=>n(!1),isDisabled:i,children:"Cancel"}),t.jsx(D,{variant:"danger",onPress:r,isDisabled:i,isPending:i,children:i?t.jsx(je,{size:"sm"}):"Delete"})]})]})})})}function xm({item:s,onEdit:n,onDelete:r,onToggleEnabled:i}
9){const[a,o]=l.useState(!1),{attributes:c,listeners:m,setNodeRef:d,transform:p,transition:u,isDragging:h}=Xt({id:s._id}),x={transform:et.Transform.toString(p),transition:u,opacity:h?.5:1,cursor:"grab"};return t.jsxs(Xe,{ref:d,style:x,...c,...m,variant:"secondary",className:"rounded-xl overflow-hidden",children:[t.jsxs("div",{className:"relative",children:[s.imageUrl&&t.jsx("img",{src:s.imageUrl,alt:s.title,className:"w-full aspect-square object-cover pointer-events-none",style:s.isDisabled?{opacity:.5}:void 0}),t.jsx("div",{className:"absolute top-1 right-1",onClick:g=>g.stopPropagation(),onPointerDown:g=>g.stopPropagation(),children:t.jsxs(es,{isOpen:a,onOpenChange:o,children:[t.jsx(es.Trigger,{children:t.jsx("button",{className:"inline-flex items-center justify-center rounded-lg bg-default/40 hover:bg-default/60 w-7 h-7","aria-label":"Options",children:t.jsx(Zo,{size:14})})}),t.jsx(es.Content,{placement:"bottom end",children:t.jsx(es.Dialog,{children:t.jsxs(se,{"aria-label":"Actions",selectionMode:"single",children:[t.jsx(se.Item,{id:"toggle",className:"flex flex-row items-center",onPress:()=>{o(!1),i(!s.isDisabled)},children:t.jsx($,{children:s.isDisabled?"List":"Unlist"})}),t.jsx(se.Item,{id:"edit",className:"flex flex-row items-center",onPress:()=>{o(!1),n()},children:t.jsx($,{children:"Edit"})}),t.jsx(se.Item,{id:"delete",className:"flex flex-row items-center text-danger",onPress:()=>{o(!1),r()},children:t.jsx($,{children:"Delete"})})]})})})]})})]}),t.jsxs("div",{className:"flex flex-col gap-2 p-2",children:[t.jsxs("h3",{className:"text-foreground font-semibold text-xs line-clamp-2",children:[s.title,s.isDisabled&&t.jsx("span",{className:"text-muted font-normal",children:" (unlisted)"})]}),s.price!=null&&t.jsx("p",{className:"text-accent font-semibold text-xs",children:s.price===0?"Contact for Price":t.jsxs(t.Fragment,{children:[`$${s.price.toFixed(2)}${s.maxPrice!=null&&s.maxPrice>s.price?` â $${s.maxPrice.toFixed(2)}`:""}`,s.currency&&t.jsx("span",{className:"text-muted text-[10px] font-normal ml-0.5",children:s.currency})]})}),t.jsxs("a",{href:s.externalUrl.startsWith("http")?s.externalUrl:`https://${s.externalUrl}`,target:"_blank",rel:"noopener noreferrer",className:"text-accent text-xs flex items-center gap-1 hover:underline",onClick:g=>g.stopPropagation(),onPointerDown:g=>g.stopPropagation(),children:[t.jsx(tl,{size:10}),"View on website"]})]})]})}function fm({vendorProfile:s,overrideVendorId:n}){const{data:r,isPending:i}=Qe(Je(V.showcase.getMyShowcaseItems,n?{vendorId:n}:{})),{mutateAsync:a,isPending:o}=J({mutationFn:X(V.showcase.deleteShowcaseItem)}),{mutateAsync:c}=J({mutationFn:X(V.showcase.reorderShowcaseItems)}),{mutateAsync:m}=J({mutationFn:X(V.showcase.toggleShowcaseItemEnabled)}),[d,p]=l.useState([]),[u,h]=l.useState(!1),[x,g]=l.useState(!1),[b,f]=l.useState(null),[S,k]=l.useState(null),R=async(w,C)=>{try{await m({itemId:w,isDisabled:C})}catch{Y("Failed to toggle item")}},I=()=>{d.length>=Vs?g(!0):h(!0)};l.useEffect(()=>{r&&p(r)},[r]);const j=Is(Ns(Dt,{activationConstraint:{distance:8}})),v=l.useCallback(async w=>{const{active:C,over:T}=w;if(!T||C.id===T.id)return;const P=d.findIndex(A=>A._id===C.id),O=d.findIndex(A=>A._id===T.id);if(P===-1||O===-1)return;const H=Et(d,P,O);p(H);try{await c({vendorId:s._id,orderedIds:H.map(A=>A._id)})}catch{Y("Failed to reorder items"),r&&p(r)}},[d,r,c,s._id]),y=async()=>{if(S)try{await a({itemId:S}),ye("Showcase item deleted"),k(null)}catch{Y("Failed to delete item")}};return t.jsxs(t.Fragment,{children:[t.jsxs(B,{className:"w-full p-4 sm:p-8 space-y-4 sm:space-y-8",children:[t.jsxs(B.Header,{className:"flex flex-row justify-between items-center flex-wrap gap-4",children:[t.jsxs("div",{className:"flex flex-col",children:[t.jsxs("div",{className:"flex flex-row gap-4 items-center",children:[t.jsx("h2",{className:"text-xl",children:"My Showcase"}),d.length>0&&t.jsxs(Ge,{variant:"soft",color:"accent",size:"sm",className:"px-4",children:[d.length,"/",Vs," items"]})]}),t.jsx("p",{className:"text-muted",children:"Featured products from your website that customers can browse."})]}),t.jsxs(D,{onPress:I,size:"sm",children:[t.jsx(Ze,{size:12}),"Add Item"]})]}),t.jsxs(B.Content,{children:[i?t.jsx("div",{className:"flex items-center justify-center py-12",children:t.jsx(je,{size:"lg"})}):d.length===0?t.jsxs("div",{className:"flex flex-col items-center justify-center py-12 gap-4",children:[t.jsx("p",{className:"text-muted",children:"No showcase items yet. Add featured products to show customers what you offer."}),t.jsxs(D,{onPress:I,children:[t.jsx(Ze,{size:12}),"Add Your First Item"]})]}):t.jsx(ks,{sensors:j,collisionDetection:Cs,onDragEnd:v,children:t.jsx(Ts,{items:d.map(w=>w._id),strategy:Rt,children:t.jsx("div",{className:"grid grid-cols-3 sm:grid-cols-4 lg:grid-cols-6 gap-3",children:d.map(w=>t.jsx(xm,{item:w,onEdit:()=>f(w),onDelete:()=>k(w._id),onToggleEnabled:C=>R(w._id,C)},w._id))})})}),t.jsx("p",{className:"text-muted text-sm mt-2",children:"* Click and drag items to reorder."})]})]}),u&&t.jsx(mm,{isOpen:u,onOpenChange:h,vendorId:s._id,vendorCountry:s.locationCountry}),b&&t.jsx(hm,{isOpen:!!b,onOpenChange:w=>{w||f(null)},item:b,vendorCountry:s.locationCountry}),t.jsx(N,{isOpen:x,onOpenChange:g,children:t.jsx(N.Container,{children:t.jsxs(N.Dialog,{children:[t.jsx(N.Header,{children:t.jsx(N.Heading,{children:"Showcase Full"})}),t.jsx(N.Body,{children:t.jsxs("p",{children:["You've used all ",Vs," showcase slots. Remove an existing item to make room for a new one."]})}),t.jsx(N.Footer,{children:t.jsx(D,{variant:"secondary",onPress:()=>g(!1),children:"Got it"})})]})})}),S&&t.jsx(gm,{isOpen:!!S,onOpenChange:w=>{w||k(null)},onConfirm:y,isDeleting:o})]})}function bm({id:s,isPrimary:n,preview:r,onRemove:i}){const{attributes:a,listeners:o,setNodeRef:c,transform:m,transition:d,isDragging:p}=Xt({id:s}),u={transform:et.Transform.toString(m),transition:d,opacity:p?.5:1,cursor:"grab"};return t.jsxs("div",{ref:c,style:u,...a,...o,className:"relative aspect-[3/2] bg-surface border-2 border-separator rounded-lg group",children:[t.jsxs("div",{className:"absolute inset-0 rounded-md overflow-hidden",children:[t.jsx("img",{src:r,alt:"Service image",className:"w-full h-full object-cover pointer-events-none"}),n&&t.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-accent text-white text-[10px] font-semibold text-center py-0.5",children:"Primary"})]}),t.jsx("button",{onClick:h=>{h.stopPropagation(),i()},onPointerDown:h=>h.stopPropagation(),className:"absolute -top-2 -right-2 bg-danger/75 hover:bg-danger text-white rounded-full p-1 z-10 cursor-pointer","aria-label":"Remove image",children:t.jsx(Me,{size:16})})]})}function ym({data:s,setData:n}){const r=l.useRef(null),[i,a]=l.useState(null),{processAndUpload:o,isProcessing:c}=Wr(),[m,d]=l.useState(null),[p,u]=l.useState(()=>s.images.map((I,j)=>j)),h=Is(Ns(Dt,{activationConstraint:{distance:8}})),x=p.filter(I=>I<s.images.length).map(I=>({index:I,image:s.images[I]})),g=I=>{const{active:j,over:v}=I;if(!v||j.id===v.id)return;const y=p.indexOf(Number(j.id)),w=p.indexOf(Number(v.id));if(y===-1||w===-1)return;const C=Et(p,y,w);u(C);const T=C.map(P=>s.images[P]);n(P=>({...P,images:T})),u(C.map((P,O)=>O))},b=async I=>{const j=I.target.files;if(!j||j.length===0)return;const v=j[0];if(!v.type.startsWith("image/")){Y("Please select an image file");return}if(v.size>10*1024*1024){Y("Image must be less than 10MB");return}if(s.images.length>=5){Y("Maximum 5 images allowed");return}d(v),r.current&&(r.current.value="")},f=async(I,j)=>{d(null);try{a(s.images.length);const{storageId:v}=await o(I);n(y=>({...y,images:[...y.images,{file:I,preview:j,storageId:v}]})),u(y=>[...y,y.length])}catch(v){console.error("Failed to upload image:",v),Y("Failed to upload image. Please try again."),URL.revokeObjectURL(j)}finally{a(null)}},S=I=>{const j=s.images[I];j.preview&&URL.revokeObjectURL(j.preview),n(v=>({...v,images:v.images.filter((y,w)=>w!==I)})),u(s.images.filter((v,y)=>y!==I).map((v,y)=>y))}
9,k=()=>{r.current?.click()},R=x.map(I=>I.index);return t.jsxs(t.Fragment,{children:[t.jsxs("div",{className:"flex flex-col h-full px-4 py-8",children:[t.jsx("h2",{className:"text-foreground text-2xl font-bold mb-2 text-center",children:"Service Images"}),t.jsx("p",{className:"text-muted text-center",children:"Add photos that may be related to your service"}),t.jsx("p",{className:"text-muted mb-8 text-center",children:"(optional, can be done later)"}),t.jsxs("div",{className:"max-w-2xl mx-auto w-full",children:[t.jsx("input",{ref:r,type:"file",accept:"image/*",onChange:b,className:"hidden"}),t.jsx(ks,{sensors:h,collisionDetection:Cs,onDragEnd:g,children:t.jsx(Ts,{items:R,strategy:Rt,children:t.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 gap-4 mb-2",children:[x.map(({index:I,image:j},v)=>t.jsx(bm,{id:String(I),isPrimary:v===0,preview:j.preview,onRemove:()=>S(I)},I)),s.images.length<5&&t.jsx("button",{onClick:k,disabled:c,className:"aspect-[3/2] bg-surface border-2 border-dashed border-separator rounded-lg flex flex-col items-center justify-center gap-2 hover:border-accent hover:bg-accent/5 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:i===s.images.length?t.jsxs(t.Fragment,{children:[t.jsx(je,{size:"md"}),t.jsx("span",{className:"text-sm text-muted",children:"Uploading..."})]}):t.jsxs(t.Fragment,{children:[t.jsx(Nr,{size:32,className:"text-muted"}),t.jsx("span",{className:"text-sm text-muted",children:"Add Image"})]})})]})})}),s.images.length>1&&t.jsx("p",{className:"text-xs text-muted mb-4",children:"* Click and drag to reorder images"}),s.images.length===5&&t.jsx("div",{className:"mt-8 text-center",children:t.jsx("p",{className:"text-warning text-sm font-medium",children:"Maximum number of images reached (5/5)"})}),t.jsxs("div",{className:"bg-surface border border-separator rounded-xl my-8 space-y-2 p-4",children:[t.jsx("p",{className:"text-sm text-foreground font-medium",children:"Image Guidelines"}),t.jsxs("ul",{className:"text-sm text-muted space-y-1",children:[t.jsx("li",{children:"⢠Maximum 5 images per service"}),t.jsx("li",{children:"⢠Maximum 10MB per image before processing"}),t.jsx("li",{children:"⢠The primary image is shown in search results"}),t.jsx("li",{children:"⢠Images are displayed in 3:2 landscape ratio"})]})]})]})]}),m&&t.jsx(fs,{file:m,aspectRatio:3/2,targetWidth:1200,targetHeight:800,quality:.5,format:"webp",onCrop:f,onClose:()=>d(null)})]})}function vm({isOpen:s,onOpenChange:n,vendorId:r,vendorCountry:i,onServiceCreated:a,usedServiceTypes:o=[]}){const c=i?xn(i):"CAD",m=l.useMemo(()=>({serviceType:null,name:"",description:"",pricingType:null,price:0,priceDisplay:"",currency:c,images:[]}),[c]),[d,p]=l.useState("type-description"),[u,h]=l.useState(m),[x,g]=l.useState(null),{mutateAsync:b,isPending:f}=J({mutationFn:X(V.services.createService)}),S=()=>["type-description","pricing","images"],k=()=>{switch(d){case"type-description":return!!u.serviceType&&u.name.trim().length>=3&&u.description.trim().length>=50;case"pricing":return u.pricingType?u.pricingType==="hourly"||u.pricingType==="fixed"?u.price>0:!0:!1;case"images":return!0;default:return!0}},R=()=>{if(!k())return;const T=S(),P=T.indexOf(d);P<T.length-1&&p(T[P+1])},I=()=>{const T=S(),P=T.indexOf(d);P>0&&p(T[P-1])},j=async()=>{g(null);try{const T=u.images.map(P=>P.storageId).filter(P=>!!P);await b({vendorId:r,name:u.name,description:u.description,images:T,type:u.serviceType,isDisabled:!1,pricingType:u.pricingType,price:u.price,currency:u.currency}),u.images.forEach(P=>{P.preview&&URL.revokeObjectURL(P.preview)}),ye("Service added successfully!"),h(m),p("type-description"),n(!1),a&&a()}catch(T){console.error("Failed to create service:",T),g("Failed to create service. Please try again.")}},v=()=>{const T={data:u,setData:h};switch(d){case"type-description":return t.jsx(dd,{...T,disabledServiceTypes:o});case"pricing":return t.jsx(xd,{...T});case"images":return t.jsx(ym,{...T})}},y=()=>d==="images"?"Create Service":"Next",w=()=>f?!0:d==="images"?!1:!k(),C=()=>{h(m),p("type-description"),g(null)};return t.jsx(N.Backdrop,{isOpen:s,onOpenChange:T=>{n(T),T||C()},isDismissable:!f,isKeyboardDismissDisabled:f,children:t.jsx(N.Container,{size:"full",placement:"center",scroll:"inside",children:t.jsxs(N.Dialog,{className:"p-0 rounded-none",children:[t.jsx(N.Body,{className:"w-full max-w-lg mx-auto grow p-2 sm:p-4",children:v()}),t.jsx(N.Footer,{className:"shrink-0 border-t border-separator bg-background p-4",children:t.jsxs("div",{className:"flex flex-row justify-between w-full",children:[t.jsxs(D,{variant:"tertiary",onPress:()=>{C(),n(!1)},isDisabled:f,children:[t.jsx(Me,{size:16,className:"relative top-px"}),"Close"]}),t.jsxs("div",{className:"flex flex-row gap-4 items-center",children:[t.jsx("div",{children:d!=="type-description"&&t.jsxs(D,{variant:"ghost",onPress:I,isDisabled:f,children:[t.jsx(_r,{size:16,className:"relative top-px"}),"Back"]})}),t.jsxs("div",{className:"flex flex-col items-end gap-2",children:[x&&t.jsx("p",{className:"text-danger text-sm",children:x}),t.jsxs(D,{variant:"primary",onPress:d==="images"?j:R,isDisabled:w(),isPending:f,children:[f?t.jsx(je,{size:"sm",className:"relative top-px"}):d==="images"?t.jsx(Ze,{size:16,className:"relative top-px"}):t.jsx(wa,{size:16,className:"relative top-px"}),y()]})]})]})]})})]})})})}function jm({userId:s,expandedServiceId:n,from:r}){const{data:i,isLoading:a,refetch:o}=Qe(Je(V.admin.getUserById,{userId:s})),[c,m]=l.useState(!1),[d,p]=l.useState("pro"),[u,h]=l.useState(!1),[x,g]=l.useState(!1),[b,f]=l.useState(!1),[S,k]=l.useState(null),[R,I]=l.useState(null);l.useEffect(()=>{if(i?.user){m(i.user.disabled??!1);const M=i.user.subscriptionSource==="admin";h(M),p(M?i.user.subscriptionTier??"pro":"pro")}},[i?.user]);const j=l.useRef(null);l.useEffect(()=>{if(!n||!i?.vendorProfile)return;const M=setTimeout(()=>{j.current?.scrollIntoView({behavior:"smooth",block:"start"})},150);return()=>
9clearTimeout(M)},[n,i?.vendorProfile]);const{mutateAsync:v,isPending:y}=J({mutationFn:X(V.admin.toggleUserDisabled),onSuccess:()=>{ye("User status updated"),o()},onError:M=>{Y(M.message),m(!c)}}),{mutateAsync:w,isPending:C}=J({mutationFn:X(V.admin.resendWelcomeEmail),onSuccess:()=>ye("User welcome email sent"),onError:M=>Y(M.message)}),{mutateAsync:T,isPending:P}=J({mutationFn:X(V.admin.resendVendorWelcomeEmail),onSuccess:()=>ye("Vendor welcome email sent"),onError:M=>Y(M.message)}),{mutate:O}=J({mutationFn:X(V.admin.adminUpdateVendor),onSuccess:()=>{ye("Vendor updated"),o()},onError:M=>Y(M.message)}),{mutateAsync:H,isPending:A}=J({mutationFn:X(V.admin.setAdminSubscriptionOverride),onSuccess:()=>{ye("Admin subscription override set"),o()},onError:M=>Y(M.message)}),{mutateAsync:z,isPending:te}=J({mutationFn:X(V.admin.removeAdminSubscriptionOverride),onSuccess:()=>{ye("Admin override removed"),o()},onError:M=>{Y(M.message),p(i?.user.subscriptionTier??"free")}}),{results:L,status:E,loadMore:Q}=Sa(V.admin.getListingsForUserAdmin,{userId:s,includeAll:!0},{initialNumItems:10}),{data:Z}=Qe(Je(V.admin.getConversationsForUserAdmin,{userId:s})),le=l.useMemo(()=>u?i?.user.subscriptionSource==="admin"?d!==i?.user.subscriptionTier:!0:!1,[u,d,i?.user.subscriptionSource,i?.user.subscriptionTier]),pe=l.useCallback(M=>{M?i?.platformSubscription?g(!0):h(!0):(h(!1),z({userId:s}))},[i?.platformSubscription,z,s]),ie=l.useCallback(()=>{g(!1),h(!0)},[]),fe=async M=>{m(!M),await v({userId:s,disabled:!M})};if(a)return t.jsx("div",{className:"min-h-dvh bg-background flex items-center justify-center",children:t.jsxs("div",{className:"flex flex-col items-center gap-2",children:[t.jsx(je,{size:"xl"}),t.jsx(ae,{children:"Loading user details..."})]})});if(!i)return t.jsx("div",{className:"min-h-dvh bg-background flex items-center justify-center",children:t.jsx(ae,{children:"User not found"})});const{user:oe,userProfile:Te,vendorProfile:W,services:Ie,isPreRegistered:he,profileImageUrl:Se}=i,q=Se||oe.image,ze=Ie.filter(M=>!M.isDeleted);return t.jsxs("div",{className:"w-full pb-16",children:[t.jsx("div",{className:"sticky top-0 z-10 bg-background border-b border-muted/20 px-4 sm:px-6 py-3",children:t.jsxs(Oi,{to:r==="dashboard"?"/admin":"/admin/users",className:"inline-flex items-center gap-1 text-sm text-muted hover:text-foreground",children:[t.jsx(_r,{size:16}),r==="dashboard"?"Back to Dashboard":"Back to Users"]})}),t.jsxs("main",{className:"w-full flex flex-col gap-6 px-4 py-6 sm:px-6",children:[t.jsx(B,{className:"p-4 sm:p-5",children:t.jsxs("div",{className:"flex flex-row items-center gap-4",children:[t.jsxs(Ps,{size:"lg",color:"accent",children:[q&&t.jsx(Ps.Image,{src:q,alt:Te?.altName??oe.name}),t.jsx(Ps.Fallback,{children:(Te?.altName??oe.name)?.charAt(0)?.toUpperCase()??"?"})]}),t.jsxs("div",{className:"flex-1 min-w-0",children:[t.jsxs("div",{className:"flex flex-row items-center gap-3 flex-wrap",children:[t.jsx("h2",{className:"text-lg font-semibold truncate",children:Te?.altName??oe.name}),c?t.jsxs(Ge,{color:"danger",variant:"soft",size:"sm",className:"gap-1",children:[t.jsx(Na,{size:10})," Disabled"]}):he?t.jsxs(Ge,{color:"success",variant:"soft",size:"sm",className:"gap-1",children:[t.jsx(Ia,{size:10})," Registered"]}):t.jsxs(Ge,{color:"warning",variant:"soft",size:"sm",className:"gap-1",children:[t.jsx(Go,{size:10})," Pending"]}),W&&t.jsxs(Ge,{variant:"soft",size:"sm",className:"capitalize",children:[W.type," vendor"]})]}),t.jsxs("div",{className:"flex flex-row items-center gap-4 mt-0.5",children:[t.jsx("span",{className:"text-sm text-muted truncate",children:oe.email}),t.jsx("span",{className:"text-xs text-muted capitalize",children:oe.authProvider})]})]})]})}),t.jsxs("div",{className:"grid grid-cols-1 xl:grid-cols-[1fr_360px] gap-6 items-start",children:[t.jsx("div",{className:"flex flex-col gap-6 min-w-0 order-2 xl:order-1",children:W?t.jsxs(t.Fragment,{children:[t.jsx(cd,{loggedInUser:oe,vendorProfile:W,avatarUrl:q??null}),t.jsx("div",{ref:j,children:W.type==="online"?t.jsx(fm,{vendorProfile:W,overrideVendorId:W._id}):t.jsx(um,{vendorProfile:W,services:ze,setAddServiceModalIsOpen:f,setShowServicesOnboarding:()=>{},initialExpandedId:n})})]}):t.jsx(B,{className:"p-6",children:t.jsxs(B.Header,{children:[t.jsx(B.Title,{children:"Vendor Profile"}),t.jsx(B.Description,{children:"This user has not created a vendor profile yet."})]})})}),t.jsxs("div",{className:"flex flex-col gap-4 order-1 xl:order-2 xl:sticky xl:top-[104px]",children:[t.jsx(B,{className:"p-4",children:t.jsxs("div",{className:"flex flex-row items-center justify-between gap-3",children:[t.jsxs("div",{children:[t.jsx($,{className:"text-sm font-medium",children:"Account"}),t.jsx("p",{className:"text-xs text-muted",children:c?"Login disabled":"Active"})]}),t.jsx(Re,{isSelected:!c,onChange:fe,isDisabled:y,children:t.jsx(Re.Control,{children:t.jsx(Re.Thumb,{})})})]})}),W&&t.jsx(B,{className:"p-4",children:t.jsxs("div",{className:"flex flex-row items-center justify-between gap-3",children:[t.jsxs("div",{children:[t.jsx($,{className:"text-sm font-medium",children:"Onboarding"}),t.jsx("p",{className:"text-xs text-muted",children:W.onboardingCompleted?"Completed":"Incomplete"})]}),t.jsx(Re,{isSelected:W.onboardingCompleted===!0,onChange:M=>{O({vendorId:W._id,onboardingCompleted:M})},children:t.jsx(Re.Control,{children:t.jsx(Re.Thumb,{})})})]})}),t.jsx(B,{className:"p-4",children:t.jsxs("div",{className:"flex flex-col gap-3",children:[t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsx(Jo,{size:14,className:"text-muted"}),t.jsx($,{className:"text-sm font-medium",children:"Subscription"})]}),t.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[t.jsx(Ge,{color:(i.user.subscriptionTier??null)==="founder"?"warning":(i.user.subscriptionTier??null)==="proplus"?"success":(i.user.subscriptionTier??null)==="pro"?"accent":"default",variant:"soft",size:"sm",children:i.user.subscriptionTier==="founder"?"Founder":i.user.subscriptionTier==="proplus"?"Pro+":i.user.subscriptionTier==="pro"?"Pro":"Free"}),t.jsx("span",{className:"text-xs text-muted",children:i.user.subscriptionSource==="admin"?"Admin Override":i.user.subscriptionSource==="stripe"?"Stripe":i.user.subscriptionSource==="revenuecat"?"Apple IAP":""})]}),i.platformSubscription&&i.user.subscriptionSource==="admin"&&t.jsxs("p",{className:"text-xs text-muted",children:["Platform: ",i.platformSubscription.tier==="proplus"?"Pro+":"Pro"," via ",i.platformSubscription.source==="stripe"?"Stripe":"Apple IAP"]}),t.jsxs("div",{className:"flex flex-row items-center justify-between gap-3 pt-2 border-t border-muted/10",children:[t.jsxs("div",{children:[t.jsx($,{className:"text-xs font-medium",children:"Admin Override"}),t.jsx("p",{className:"text-xs text-muted",children:u?"Manual control":"Platform-managed"})]}),t.jsx(Re,{isSelected:u,onChange:pe,isDisabled:te,children:t.jsx(Re.Control,{children:t.jsx(Re.Thumb,{})})})]}),x&&t.jsxs(Xe,{variant:"secondary",className:"p-3 rounded-xl flex flex-col gap-2",children:[t.jsxs("div",{className:"flex items-center gap-2 text-warning",children:[t.jsx(vs,{size:14}),t.jsx("span",{className:"text-xs font-medium",children:"Active platform subscription"})]}),t.jsxs("p",{className:"text-xs text-muted",children:["Override will take precedence over the ",i.platformSubscription?.source==="stripe"?"Stripe":"Apple IAP"," subscription."]}),t.jsxs("div",{className:"flex gap-2",children:[t.jsx(D,{size:"sm",variant:"secondary",onPress:()=>g(!1),children:"Cancel"}),t.jsx(D,{size:"sm",variant:"secondary",onPress:ie,children:"Override"})]})]}),u&&t.jsxs("div",{className:"flex flex-row items-end gap-2",children:[t.jsx("div",{className:"flex-1",children:t.jsxs(U,{"aria-label":"Override Tier",selectedKey:d,onSelectionChange:M=>p(M),children:[t.jsxs(U.Trigger,{children:[t.jsx(U.Value,{}),t.jsx(U.Indicator,{})]}),t.jsx(U.Popover,{children:t.jsxs(se,{children:[t.jsx(se.Item,{id:"pro",children:"Pro"}),t.jsx(se.Item,{id:"proplus",children:"Pro+"}),t.jsx(se.Item,{id:"founder",children:"Founder"})]})})]})}),t.jsx(D,{variant:"secondary",size:"sm",isDisabled:!le,isPending:A,onPress:()=>{H({userId:s,tier:d})},children:"Save"})]})]})}),t.jsx(B,{className:"p-4",children:t.jsxs("div",{className:"flex flex-col gap-3",children:[t.jsx($,{className:"text-sm font-medium",children:"Email Actions"}),t.jsxs("div",{className:"flex flex-col gap-2",children:[t.jsxs(D,{variant:"secondary",size:"sm",className:"w-full justify-start",onPress:()=>w({userId:s}),isPending:C,children:[t.jsx(Zs,{size:14}),"Resend User Welcome Email"]}),W&&t.jsxs(D,{variant:"secondary",size:"sm",className:"w-full justify-start",onPress:()=>T({userId:s}),isPending:P,children:[t.jsx(Ca,{size:14}),"Resend Vendor Welcome Email"]})]})]})}),t.jsx(B,{className:"p-4 border border-danger/20",children:t.jsxs("div",{className:"flex flex-row items-center justify-between gap-3",children:[t.jsxs("div",{children:[t.jsx($,{className:"text-xs font-medium text-danger",children:"Delete User"}),t.jsx("p",{className:"text-xs text-muted",children:"Permanent, cannot be undone"})]}),t.jsx(_l,{userId:s,userEmail:oe.email})]})})]})]}),t.jsxs(B,{className:"p-4",children:[t.jsxs(B.Header,{children:[t.jsx(B.Title,{children:"Listings"}),t.jsx(B.Description,{children:"All listings by this user"})]}),t.jsxs(B.Content,{className:"pt-2 flex flex-col gap-2",children:[E==="LoadingFirstPage"?t.jsx("div",{className:"flex justify-center py-4",children:t.jsx(je,{size:"sm"})}):L.length===0?t.jsx("p",{className:"text-sm text-muted py-2",children:"No listings"}):L.map(M=>t.jsx("div",{className:"border border-muted/10 rounded-xl p-3 space-y-2",children:t.jsxs("div",{className:"flex items-start gap-3",children:[M.firstImageUrl&&t.jsx("img",{src:M.firstImageUrl,alt:M.title,className:"w-16 h-16 rounded-lg object-cover flex-shrink-0"}),t.jsx("div",{className:"flex-1 min-w-0",children:t.jsxs("div",{className:"flex items-start justify-between gap-2",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"font-medium text-sm truncate",children:M.title}),t.jsxs("div",{className:"text-xs text-muted capitalize",children:[M.status," · ",M.currency," ",M.price.toLocaleStr
9ing()]}),t.jsx("div",{className:"text-xs text-muted mt-0.5 line-clamp-2",children:M.description})]}),t.jsxs("div",{className:"flex-shrink-0 flex flex-col items-end gap-1",children:[!M.isDeleted&&t.jsx(D,{size:"sm",variant:"ghost",onPress:()=>k(M._id),children:"Report"}),M.isDeleted&&t.jsx(Ge,{variant:"soft",size:"sm",children:"Removed"})]})]})})]})},M._id)),E==="CanLoadMore"&&t.jsx(D,{variant:"ghost",size:"sm",onPress:()=>Q(10),children:"Load More"})]})]}),t.jsxs(B,{className:"p-4",children:[t.jsxs(B.Header,{children:[t.jsx(B.Title,{children:"Conversations"}),t.jsx(B.Description,{children:"Recent conversations (up to 50)"})]}),t.jsx(B.Content,{className:"pt-2 flex flex-col gap-2",children:Z?Z.length===0?t.jsx("p",{className:"text-sm text-muted py-2",children:"No conversations"}):Z.map(M=>t.jsxs("div",{className:"border border-muted/10 rounded-xl p-3 flex items-center justify-between gap-2",children:[t.jsxs("div",{className:"min-w-0",children:[t.jsx("div",{className:"text-sm truncate font-medium",children:M.contextName??"Conversation"}),t.jsx("div",{className:"text-xs text-muted capitalize",children:M.conversation_type})]}),t.jsxs(D,{size:"sm",variant:"ghost",onPress:()=>I(M._id),children:[t.jsx(Or,{size:14}),"View"]}
9)]},M._id)):t.jsx("div",{className:"flex justify-center py-4",children:t.jsx(je,{size:"sm"})})})]}),t.jsx(Al,{userId:s})]}),b&&W&&W.type!=="online"&&t.jsx(vm,{isOpen:b,onOpenChange:f,vendorId:W._id,vendorCountry:W.locationCountry,usedServiceTypes:ze.map(M=>M.type)}),t.jsx(ma,{conversationId:R,profileUserId:s,onClose:()=>I(null)}),t.jsx(Dl,{targetType:"listing",targetId:S,onClose:()=>k(null)})]})}function fp(){const{userId:s}=En.useParams(),{expandedServiceId:n,from:r}=En.useSearch();return t.jsx(jm,{userId:s,expandedServiceId:n,from:r})}export{fp as component};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.