@chem-po/react-web 0.0.45 → 0.0.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -3,5 +3,5 @@ import {HStack,Box,Center,Text,VStack,Popover,PopoverTrigger,Button,Image,Portal
3
3
  background: url(/svg/clock.svg) center/80% no-repeat;
4
4
  color: white;
5
5
  }
6
- `,fontSize:"md",type:"time",placeholder:e.placeholder,...o,value:o.value??""})));Ke.displayName="TimeInput";var Bp=e=>{if(!e)return {date:void 0,time:void 0};let o=new Date(e);return {date:wt(o),time:o.toTimeString().substring(0,5)}},vt=forwardRef(({input:{value:e,onBlur:o,onChange:t,onFocus:r}},n)=>{let[{date:s,time:i},l]=useState(Bp(e)),[a,d]=useState(null),m=useCallback((p,c)=>{p==="date"?(l({date:c,time:i}),c&&i&&t(new Date(`${c}T${i}`).getTime())):(l({time:c,date:s}),c&&s&&t(new Date(`${s}T${c}:00.000`).getTime()));},[s,i,t]);useImperativeHandle(n,()=>({focus:()=>{},blur:()=>{}}));let u=useMemo(()=>({active:a==="date",error:void 0,touched:false}),[a]);return b.createElement(HStack,{w:"100%"},b.createElement(qe,{field:{_type:"date",placeholder:"Date"},input:{value:s,onChange:p=>{m("date",p);},onBlur:()=>{d(null),o();},onFocus:()=>{d("date"),r();}},meta:u}),b.createElement(Ke,{field:{_type:"time",placeholder:"Time"},input:{value:i,onChange:p=>m("time",p.target.value),onBlur:()=>{d(null),o();},onFocus:()=>{d("time"),r();}},meta:u}))});vt.displayName="DateTimeInput";var Je=create(()=>({isPlaying:false,media:null,isLoading:false,fetchingMedia:null,shuffle:false,playlist:null,volume:.5,repeat:false,api:{pause:()=>{},play:()=>{},canGoNext:false,canGoPrev:false,goNext:()=>{},goPrev:()=>{},seek:()=>{},sound:null,trackProgress:new MotionValue(0),setMedia:()=>{},stop:()=>{},loop:()=>{}}})),wn=()=>{let{media:e,playlist:o}=Je();return useMemo(()=>o?o.currentId!==null?o.items.find(t=>t.id===o.currentId)??null:null:e,[o,e])};var vn=({media:e,size:o=50,opacity:t=.8,buttonProps:r})=>{let{id:n}=e??{},{playlist:s}=usePlaylist(),i=Je(p=>p.api),l=Je(p=>p.isPlaying),a=Je(p=>p.isLoading),d=wn(),m=l&&d?.id===n,u=a&&d?.id===n;return b.createElement(IconButton,{boxShadow:"md",p:1,height:`${o}px`,width:`${o}px`,minW:"0",minH:"0",borderRadius:"full",isLoading:u,"aria-label":"play/pause",onClick:p=>{p.stopPropagation(),e&&(d?.id===n?l?i.pause():i.play():s?i.setMedia({playlist:{...s,currentId:n??null}}):i.setMedia({media:e}));},style:{background:"#eee"},...r,icon:b.createElement(Center,{borderRadius:"full",height:`${o}px`,width:`${o}px`},b.createElement(Image,{opacity:m?t:0,width:"100%",transition:"all 0.2s ease-in-out",src:"/svg/pause.svg",filter:"invert(100%) drop-shadow(0 0 4px black)",transform:`scale(${m?.8:1})`}),b.createElement(Image,{position:"absolute",width:"100%",opacity:m?0:t,transition:"all 0.2s ease-in-out",filter:"invert(100%) drop-shadow(0 0 3px black)",src:"/svg/play.svg",transform:`scale(${m?1:.8})`}))})};var Qp=e=>{if(!e.accept)return;let o=[];return e.accept.includes("image")&&o.push("image/jpg","image/jpeg","image/png","image/svg","image/gif"),e.accept.includes("pdf")&&o.push("application/pdf"),e.accept.includes("audio")&&o.push("audio/mp3","audio/wav","audio/x-wav","audio/webm","audio/ogg"),o.join(",")},qp=({hasUpload:e,value:o,noLabel:t})=>{let r=useMemo(()=>({id:generateId(),title:o.filename||"Uploaded file",artistName:"",artistId:"",storageDir:"",producerId:"",songwriterId:""}),[o]);return b.createElement(VStack,null,b.createElement(HStack,{spacing:4},b.createElement(vn,{withThumbnail:true,media:r}),e?b.createElement(IconButton,{w:"40px",h:"40px",p:2,borderRadius:"full",boxShadow:"0 0 4px black","aria-label":"upload",icon:b.createElement(Image,{filter:"invert(100%)",src:"/svg/upload.svg",opacity:.8})}):null),!t&&o.filename?b.createElement(Text,{fontSize:"md"},o.filename||"Uploaded file"):null)},Kp=({value:e,options:o,hasUpload:t,loading:r})=>{let[n,s]=useState(false),{url:i,loading:l}=useObjectUrl(e),[a,d]=useState({width:0,height:0}),{shape:m,placeholder:u,objectFit:p,withFullView:c,background:f}=o??{},{src:g,opacity:h,scale:y}=u??{},x=useImageSize(o,a),{width:v,height:S}=x??{},w=useMemo(()=>n?i?1:h??.8:0,[n,i,h]),F=useMemo(()=>i?{objectFit:p??(n&&m?"cover":"contain"),onLoad:M=>{s(true),d({width:M.currentTarget.naturalWidth,height:M.currentTarget.naturalHeight});}}:{width:x?`${x.width*(y??.9)}px`:"auto",height:x?`${x.height*(y??.9)}px`:"80px"},[i,x,y,n,m,p]),D=!!r||l,A=typeof v=="number"?`${v}px`:"auto",B=typeof S=="number"?`${S}px`:"100px";return b.createElement(qr,{width:A,height:B,withFullView:!t||c,overflow:"hidden",borderRadius:m==="circle"?"full":4,boxShadow:m?"1px 1px 3px #00000066":"none",opacity:w,background:f,transition:"opacity 333ms ease",loadingOverride:D,imageProps:F,src:i??g})},Jp={txt:"/icons/description.svg",pdf:"/icons/pdf.svg",zip:"/icons/zip.svg","7z":"/icons/zip.svg",rar:"/icons/zip.svg"},Zp=({value:e})=>{let o=useMemo(()=>{if(!e)return "";let n=e.filename.split(".");return n[n.length-1]},[e]),t=Jp[o],r=useColorModeValue("invert(0)","invert(1)");return t?b.createElement(Image,{filter:o!=="pdf"?r:"none",h:"24px",src:t}):null},Rp=({value:e,noLabel:o,imageOptions:t,loading:r,hasUpload:n})=>{switch(useMemo(()=>e.type?.split("/")?.[0],[e])){case "image":return b.createElement(Kp,{hasUpload:n,loading:r,options:t,value:e});case "audio":return b.createElement(qp,{noLabel:o,value:e,hasUpload:n});case "pdf":return b.createElement(Image,{src:"/icons/pdf.svg"});default:return b.createElement(Flex,{gap:2},b.createElement(Zp,{value:e}),b.createElement(Text,null,e.filename))}},ed=({hasUpload:e,imageOptions:o})=>{let t=useImageSize(o),{shape:r,placeholder:n}=o??{},{src:s,scale:i,opacity:l}=n??{},{width:a,height:d}=t??{},m=useColorModeValue("invert(0)","invert(1)"),u=useColorModeValue("whiteAlpha.500","whiteAlpha.100"),p=G(),c=o?b.createElement(Center,{height:r?`${d}px`:"auto",width:r?`${a}px`:"auto",bg:r?u:"transparent",borderRadius:r==="circle"?"full":4,overflow:"hidden",boxShadow:r?"1px 1px 4px #00000055":"none"},b.createElement(Image,{filter:m,opacity:l,height:typeof d=="number"?`${d*(i??.6)}px`:"50px",src:s??"/icons/image.svg"})):b.createElement(Text,{border:"1px dashed",borderColor:p,p:3,fontSize:"sm",textAlign:"center",w:"100%",opacity:.8},e?"Click to upload or drop file here":"No file uploaded");return b.createElement(Center,{width:typeof a=="number"?`${a}px`:"auto",height:typeof d=="number"?`${d}px`:"auto"},c)},Lo=({value:e,hasUpload:o,noLabel:t,loading:r,imageOptions:n})=>{let{storagePath:s,dataUrl:i}=e??{},l=useMemo(()=>!i&&!s,[i,s]);return !e||l?b.createElement(ed,{hasUpload:o,imageOptions:n}):b.createElement(Rp,{loading:r,imageOptions:n,noLabel:t,hasUpload:o,value:e})},St=forwardRef(({input:{value:e,onChange:o},field:t},r)=>{let{imageOptions:n}=t||{},s=useRef(null),i=useCallback(d=>{let m=d.target.files?.[0];m&&(e?.dataUrl&&URL.revokeObjectURL(e.dataUrl),o({...e,dataUrl:URL.createObjectURL(m),type:m.type,filename:m.name}));},[o,e]);useImperativeHandle(r,()=>({focus:()=>{s.current?.click();},blur:()=>{s.current?.blur();}}));let l=useMemo(()=>t.accept&&t.accept.length===1&&t.accept[0]==="image",[t]),a=useMemo(()=>l||e?.type?.startsWith("image/")||e?.type?.startsWith("video/")?{height:120,...n,objectFit:"contain"}:void 0,[n,l,e]);return b.createElement(Center,{flexFlow:"column",position:"relative",cursor:"pointer",onClick:()=>s.current?.click(),width:"100%"},b.createElement(Text,{fontSize:"sm",opacity:.8,mb:1},t.placeholder),b.createElement(Center,{width:"100%",position:"relative",p:2,overflow:"hidden"},b.createElement(Lo,{hasUpload:true,imageOptions:a,value:e}),b.createElement("input",{onChange:i,ref:s,accept:Qp(t),type:"file",style:{position:"absolute",pointerEvents:"none",height:.1,width:.1,opacity:0}})))});St.displayName="FileComponent";var Y={input:{width:"100%",fontSize:"16px",outline:"none"},inputXSmall:{padding:"4px 6px",borderRadius:"3px"},inputSmall:{padding:"6px 9px",borderRadius:"4px"},inputMedium:{padding:"8px 12px",borderRadius:"6px"},inputLarge:{padding:"10px 14px",borderRadius:"8px"},inputTextSmall:{fontSize:"14px"},inputTextMedium:{fontSize:"16px"},inputTextLarge:{fontSize:"18px"},buttonContainer:{display:"flex",flexDirection:"row",alignItems:"center"},buttonContainerSmall:{gap:"6px"},buttonContainerMedium:{gap:"8px"},buttonContainerLarge:{gap:"10px"}},nd={sm:16,md:20,lg:24},id={sm:12,md:14,lg:16},sd={sm:Y.inputSmall,md:Y.inputMedium,lg:Y.inputLarge},ld={sm:Y.inputXSmall,md:Y.inputSmall,lg:Y.inputMedium},ad={sm:Y.inputTextSmall,md:Y.inputTextMedium,lg:Y.inputTextLarge},pd={sm:Y.buttonContainerSmall,md:Y.buttonContainerMedium,lg:Y.buttonContainerLarge},K=(e,o,t="md")=>{let r=useBackgroundColor(150),n=useMemo(()=>e?"transparent":r,[e,r]),s=useTextColor(),i=o??t;return {text:{...ad[i],color:s},container:{...Y.input,...e?ld[i]:sd[i],backgroundColor:n},size:i,iconSize:nd[i],clearButtonSize:id[i],buttonContainer:{...Y.buttonContainer,...pd[i]}}};var It=(e,o)=>t=>{let{renderOption:r}=e;return typeof r=="function"?b.createElement(r,{...t}):b.createElement(Text,{style:o},t.option.label)},Tn=forwardRef(({field:e,input:o,inEditable:t,formSize:r},n)=>{let{options:s,renderOption:i}=e,{onChange:l,value:a,onFocus:d,onBlur:m}=o,{text:u,size:p}=K(t,e.size,r),{colorMode:c}=useColorMode();useImperativeHandle(n,()=>({focus:()=>{d();},blur:()=>{m();}}));let f=useMemo(()=>It(e,u),[e,u]),g=b.createElement(Flex,{w:"100%",flexFlow:"row wrap"},s.map(h=>b.createElement(Box,{key:h.value,p:.5},b.createElement(Button,{w:"100%",minH:0,size:"xs",p:0,opacity:a?.includes(h.value)?1:.7,variant:"unstyled",onClick:y=>{y.stopPropagation(),l(a?.includes(h.value)?a.filter(x=>x!==h.value):[...a??[],h.value]);},_hover:{opacity:.8}},b.createElement(f,{value:h.value,size:p,option:h,colorMode:c,isSelected:true})))));return t?b.createElement(Flex,{py:.5,flexFlow:"column",w:"100%"},b.createElement(Text,{lineHeight:1,px:2,opacity:.8,fontSize:"sm",fontWeight:600},e.placeholder),g):g});var _e=({children:e,style:o})=>b.createElement(Flex,{width:"100%",borderRadius:4,style:o},e);var Pt=forwardRef(({input:{onChange:e,value:o,...t},field:r,formSize:n,prefix:s,inEditable:i,...l},a)=>{let{type:d,defaultValue:m,placeholder:u,size:p}=r,c=useColorModeValue("number-input","number-input-dark"),{container:f,text:g}=K(i,p,n),h=vo(a),[y,x]=useState(""),v=typeof o=="number"&&!Number.isNaN(o)?`${o}${y}`:"",S=d==="slider"?b.createElement(Fo,{label:u,onChange:e,value:o,defaultValue:m}):b.createElement(vd,{className:c,placeholder:r.placeholder,decimalsLimit:r.precision,allowDecimals:!!r.precision,prefix:s,ref:h,onValueChange:(w,F,D)=>{w?.endsWith(".")?x("."):w?.includes(".")&&w?.endsWith("0")?x("0"):x(""),e(D?.float);},value:v,...l,style:{background:"none",resize:"none",fontFamily:"Encode Sans",boxSizing:"border-box",opacity:o?1:.7,width:"100%",borderRadius:"4px",border:"none",outline:"none",...g,...l.style},...t});return b.createElement(_e,{style:f},S)}),Fd=({field:e,...o},t)=>{let r=useRef(null);return useImperativeHandle(t,()=>({focus:()=>{r.current?.focus();},blur:()=>{r.current?.blur();}})),b.createElement(Pt,{prefix:"$",field:{...e,_type:"number"},...o})},Mn=forwardRef(Fd);var Bn=({value:e,field:o})=>{let t=useMemo(()=>{if(e===""||e===void 0||e===null)return 1;switch(o._type){case "text":case "number":case "select":case "date":case "time":case "datetime":return -1;default:return 1}},[e,o]);return b.createElement(Flex,{transition:"top 300ms",top:t,position:"absolute",right:3},b.createElement(Text,{fontSize:"xs",opacity:.6},"OPTIONAL"))};var zn=forwardRef(({field:e,input:o,meta:t,inEditable:r,formSize:n},s)=>{let{placeholder:i,options:l,renderOption:a}=e,{onChange:d,value:m,onFocus:u,onBlur:p}=o,{text:c,size:f,container:g}=K(r,e.size,n),{active:h}=t,y=useMemo(()=>m&&l.find(F=>F.value===m),[m,l]),{colorMode:x}=useColorMode();useImperativeHandle(s,()=>({focus:()=>{u();},blur:()=>{p();}}));let v=useBackgroundColor(150),w=a??(F=>b.createElement(Text,{style:c},F.option.label));return b.createElement(Popover,{strategy:"fixed",placement:"bottom",matchWidth:true,isOpen:h,onClose:p},b.createElement(PopoverTrigger,null,b.createElement(Button,{w:"100%",onClick:F=>{F.stopPropagation(),u();},variant:"unstyled",position:"relative"},b.createElement(_e,{style:g},y?b.createElement(w,{size:f,value:y.value,option:y,colorMode:x,isSelected:true}):b.createElement(Text,{fontWeight:400,style:c,opacity:.6},i)))),b.createElement(PopoverContent,{w:"100%",overflowY:"auto",maxH:"300px",bg:v,border:"none",boxShadow:"0 0 8px rgba(0, 0, 0, 0.3)"},b.createElement(PopoverBody,{p:0},l.map(F=>b.createElement(Button,{key:F.value,w:"100%",variant:"unstyled",onClick:D=>{D.stopPropagation(),d(F.value),p();},display:"flex",justifyContent:"flex-start",alignItems:"center",px:3,_hover:{bg:"blackAlpha.100"},_dark:{_hover:{bg:"whiteAlpha.100"}}},b.createElement(w,{value:F.value,option:F,size:f,colorMode:x,isSelected:F.value===m}))))))});var qd="/icons/facebook.svg",Kd="/icons/instagram.svg",Jd="/icons/soundcloud.svg",Zd="/icons/twitter.svg",Rd="/icons/youtube.svg",eu={facebook:qd,instagram:Kd,twitter:Zd,youtube:Rd,soundcloud:Jd},Ze=({site:e,value:o,onChange:t})=>{let{handle:r,error:n}=useMemo(()=>{try{return {handle:getHandle(e,o)}}catch(i){return {error:i?.message??"Error parsing handle"}}},[o,e]),s=useMemo(()=>r?`${e.toUpperCase()}: ${r}`:e.toUpperCase(),[e,r]);return b.createElement(Popover,{trigger:"hover"},b.createElement(PopoverTrigger,null,b.createElement(Center,{opacity:r?1:.6,borderRadius:"full",width:"34px",height:"34px"},b.createElement(Image,{cursor:"pointer",filter:`grayscale(${r?0:100}%)`,height:"24px",width:"24px",objectFit:"contain",src:eu[e]}))),b.createElement(PopoverContent,{w:"auto"},b.createElement(PopoverBody,{overflow:"hidden",borderRadius:4,p:0,w:"auto"},b.createElement(VStack,{spacing:0,p:2,w:"300px",align:"flex-start"},b.createElement(Text,{fontSize:"md"},s),b.createElement(Collapse,{in:!!n,style:{width:"100%"}},b.createElement(Text,{px:1,bg:"red.500",fontSize:"sm",color:"white"},n)),b.createElement(Input,{onChange:i=>t(i.target.value),placeholder:"Handle or URL",width:"100%",value:o,size:"md"})))))},Mt=forwardRef((e,o)=>{let{input:{value:t,onChange:r},field:{sites:n}}=e,s=useCallback((i,l)=>{let{[i]:a,...d}=t??{};!l&&Object.keys(d).length===0&&r({target:{value:void 0}}),l||r(d),r({...d,[i]:l});},[r,t]);return useImperativeHandle(o,()=>({blur:()=>{},focus:()=>{}})),b.createElement(VStack,{w:"100%",p:1},b.createElement(VStack,{borderRadius:4,p:2,spacing:0,w:"100%"},b.createElement(Text,{fontSize:"md"},"Links"),b.createElement(HStack,null,!n||n.facebook?b.createElement(Ze,{onChange:i=>s("facebook",i),site:"facebook",value:t?.facebook}):null,!n||n.instagram?b.createElement(Ze,{onChange:i=>s("instagram",i),site:"instagram",value:t?.instagram}):null,!n||n.twitter?b.createElement(Ze,{onChange:i=>s("twitter",i),site:"twitter",value:t?.twitter}):null,!n||n.youtube?b.createElement(Ze,{onChange:i=>s("youtube",i),site:"youtube",value:t?.youtube}):null,!n||n.soundcloud?b.createElement(Ze,{onChange:i=>s("soundcloud",i),site:"soundcloud",value:t?.soundcloud}):null)))});Mt.displayName="SocialMediaComponent";var Lt=forwardRef(({input:e,field:o,inEditable:t},r)=>{let n=useTextColor(),s=useRef(null);return useImperativeHandle(r,()=>({focus:()=>{s.current?.focus();},blur:()=>{s.current?.blur();}})),b.createElement(su,{placeholder:o.placeholder,minRows:2,maxRows:5,ref:s,style:{resize:"none",width:"100%",color:n,background:"none",fontFamily:"fonts.body",boxSizing:"border-box",borderRadius:"4px",border:"none",outline:"none"},...e})});Lt.displayName="TextAreaComponent";var Bt=forwardRef(({input:e,inEditable:o,meta:t,field:r,formSize:n},s)=>{let{placeholder:i,type:l}=r,[a,d]=useState(l==="password"),{text:m,container:u}=K(o,r.size,n),{value:p}=e,c=useRef(null);useImperativeHandle(s,()=>({focus:()=>{c.current?.focus();},blur:()=>{c.current?.blur();}}));let f=l==="textarea"?b.createElement(Lt,{inEditable:o,field:r,input:e,meta:t}):b.createElement(Input,{ref:c,border:"none",_dark:{border:"none"},borderRadius:0,background:"transparent",_focus:{border:"none",boxShadow:"none"},py:0,px:0,height:"auto",outline:"none",type:a?"password":"text",placeholder:i,style:m,...e,onChange:g=>{e.onChange({target:{value:g.target.value}});},value:p??""});return b.createElement(_e,{style:u},f,l==="password"&&b.createElement(IconButton,{position:"absolute",right:2,onClick:()=>d(!a),variant:"ghost",icon:a?b.createElement(ViewIcon,null):b.createElement(ViewOffIcon,null),"aria-label":a?"show":"hide",title:a?"Show":"Hide",size:"xs"}))});Bt.displayName="TextComponent";var bu={text:Bt,file:St,boolean:mn,select:zn,multipleSelect:Tn,currency:Mn,number:Pt,date:qe,datetime:vt,time:Ke,socialMedia:Mt,color:xn},yu=(e,o)=>{let{field:t,meta:{error:r,active:n,touched:s},input:i,inEditable:l}=e,{value:a}=i,d=useMemo(()=>r&&s?"#ff7777":n?"rgba(0,0,0,0.7)":"rgba(0,0,0,0.3)",[r,n,s]),{_type:m,optional:u,label:p}=t,c=useMemo(()=>m==="multipleSelect"||!!a&&m!=="file"&&m!=="boolean",[a,m]),f=useMemo(()=>{if(l)return {};switch(m){case "text":case "number":case "currency":case "select":return {boxShadow:`0 0 7px ${d}`,transition:"all 300ms"};default:return {}}},[m,d,l]),g=useMemo(()=>bu[m],[m]),h=useMemo(()=>l?0:r&&s?6:2,[l,r,s]);return b.createElement(VStack,{position:"relative",align:"flex-start",width:"100%",py:l?0:1,px:1,spacing:0,pb:h,transition:"all 500ms",pt:c&&!l?5:0},p&&!l?typeof p=="string"?b.createElement(Text,{color:"gray.800",fontSize:"sm",px:2},p):b.createElement(p,null):null,b.createElement(Flex,{width:"100%",borderRadius:4,overflow:"hidden",...f},b.createElement(g,{ref:o,...e})),l?null:b.createElement(b.Fragment,null,b.createElement(Text,{opacity:r&&s?1:0,transition:`opacity 500ms ease ${r&&s?250:0}ms`,position:"absolute",bottom:"0px",fontSize:"sm",px:1,pointerEvents:"none",color:"red.600"},r),b.createElement(Text,{opacity:c?1:0,transition:`opacity 500ms ease ${c?250:0}ms`,position:"absolute",top:"-5px",pointerEvents:"none",fontSize:"sm",fontFamily:"fonts.heading",px:1,color:"blackAlpha.600",_dark:{color:"whiteAlpha.600"}},t.placeholder||"")),u&&!l?b.createElement(Bn,{field:t,value:a}):null)},Ao=forwardRef(yu);var Fu=({field:e,name:o},t)=>{let{control:r,getOnChange:n,meta:s,onFocus:i,onBlur:l}=useField(o,e);return b.createElement(Controller,{control:r,name:o,render:({field:{name:a,ref:d,onBlur:m,...u}})=>b.createElement(Ao,{ref:t,field:e,input:{...u,onFocus:i,onBlur:()=>{l(),m();},onChange:n(u.onChange)},meta:s})})},Vn=forwardRef(Fu);var Oo=({uploads:e})=>{let o=useMemo(()=>Object.values(e),[e]);return b.createElement(TransitionGroup,{component:Flex,width:"100%",flexFlow:"column"},o.map(t=>b.createElement(ee,{key:t.label},b.createElement(Center,{px:2,height:"26px",position:"relative",w:"100%",flexDirection:"column"},b.createElement(Progress,{borderRadius:"full",value:t.percent*100,mx:2,my:1,size:"md",height:"100%",width:"100%"}),b.createElement(Text,{fontFamily:"fonts.heading",textShadow:"1px 1px 3px #000000aa",color:"white",position:"absolute",fontSize:"sm",fontWeight:500},t.label.toUpperCase())))))};var Vu=({onBack:e,children:o})=>b.createElement(Button,{flex:1,transition:"all 500ms",onClick:e,variant:"outline",border:"1px solid #cdcdcd",color:"#777",ml:"auto"},o),Hu=({onSubmitClick:e,submitting:o,children:t,filter:r,opacity:n})=>b.createElement(Button,{isLoading:o,filter:r,flex:1,transition:"all 500ms",opacity:n,onClick:()=>{e();},ml:"auto",variant:"solid"},t),_u=()=>{let{formError:e}=useChempoForm();return b.createElement(Collapse,{in:!!e},b.createElement(Text,{color:"red"},e??""))},Wn=({renderFooter:e,...o})=>{let{uploads:t,onBack:r,buttonText:n,onSubmit:s}=o,{isSubmitting:i,isValid:l}=useFormState(),a=useBorderColor();return b.createElement(Flex,{w:"100%",flexFlow:"column"},b.createElement(Collapse,{endingHeight:5,style:{width:"100%"},in:i},b.createElement(Progress,{w:"100%",h:"5px",isIndeterminate:true})),b.createElement(Oo,{uploads:t}),b.createElement(_u,null),e?b.createElement(e,{...o}):b.createElement(HStack,{py:2,borderTop:"1px solid",borderColor:a,px:3,w:"100%"},r?b.createElement(Vu,{onBack:r},"Cancel"):null,b.createElement(Hu,{size:"sm",filter:`grayscale(${l?0:100}%)`,opacity:l?1:.5,onSubmitClick:s,submitting:i},n)))};var Nn=({field:e,value:o,noLabel:t,style:r})=>{let{imageOptions:n,placeholder:s}=e,i=useMemo(()=>({height:150,...n}),[n]);return b.createElement(Flex,{flexFlow:o?"column":"row",style:r},t?null:b.createElement(Text,{pr:2,opacity:.7,fontWeight:600},s),o?b.createElement(ee,null,b.createElement(Box,{p:1},b.createElement(Lo,{imageOptions:i,value:o}))):b.createElement(Text,{opacity:.7},"None"))};var Un=({field:e,value:o,noLabel:t,style:r})=>{let{placeholder:n,options:s}=e,{size:i,text:l}=K(void 0,e.size),a=useMemo(()=>s.filter(u=>o?.includes(u.value)),[o,s]),d=useMemo(()=>It(e,l),[e,l]),{colorMode:m}=useColorMode();return b.createElement(Flex,{maxW:"100%",flexFlow:"row wrap",align:"center",style:r},t?null:b.createElement(Text,{pr:2,opacity:.7,fontWeight:600},n),a.length?a.map(u=>b.createElement(Box,{key:u.value,p:.5},b.createElement(d,{value:u.value,option:u,colorMode:m,isSelected:true,size:i}))):b.createElement(Text,{opacity:.6},"None"))};var Qu=e=>typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?e.toString():JSON.stringify(e),qu=e=>b.createElement(Text,null,Qu(e)),Yn=({field:e,value:o,noLabel:t,style:r,size:n})=>{let{placeholder:s,renderOption:i}=e,{colorMode:l}=useColorMode(),{size:a}=K(void 0,e.size,n),d=e.options.find(u=>u.value===o);return b.createElement(Flex,{align:"center",style:r},t?null:b.createElement(Text,{pr:2,opacity:.7,fontWeight:600},s),o&&d?b.createElement(i??qu,{value:o,option:d,colorMode:l,isSelected:true,size:a}):b.createElement(Text,null,"None"))};var Ru=({field:e,value:o,noLabel:t,style:r})=>{let{placeholder:n}=e,s=useMemo(()=>{let i=formatField[e._type];return i?i(e,o):o},[o,e]);return b.createElement(Flex,{align:"center",style:r},t?null:b.createElement(Text,{pr:2,opacity:.7,fontWeight:600},n),b.createElement(Text,{opacity:o!=null?1:.6},s??"None"))},ro=({field:e,value:o,noLabel:t,style:r})=>{switch(e._type){case "select":return b.createElement(Yn,{style:r,field:e,value:o,noLabel:t});case "multipleSelect":return b.createElement(Un,{style:r,field:e,value:o,noLabel:t});case "file":return b.createElement(Nn,{style:r,field:e,value:o,noLabel:t});default:return b.createElement(Ru,{style:r,field:e,value:o,noLabel:t})}};var rm=({onChange:e,value:o,field:t,onBlur:r,inEditable:n,onFocus:s,style:i},l)=>{let{inputProps:a,meta:d}=useStandaloneInput(t,o,e,s,r);return b.createElement(Ao,{ref:l,field:t,inEditable:n,style:i,input:a,meta:d})},Qn=forwardRef(rm);var Jn=({value:e,field:o,onSubmit:t,storagePath:r,style:n,onEditClose:s,onEditOpen:i,CustomInput:l,CustomView:a,containerStyle:d,size:m})=>{let{inputRef:u,onChange:p,isLoading:c,uploads:f,editHovered:g,handleEditOpen:h,handleEditClose:y,isEditing:x,value:v,setEditHovered:S,shouldSubmitOnChange:w,submit:F,submitValue:D}=useEditable({value:e,field:o,onSubmit:t,storagePath:r,onEditOpen:i,onEditClose:s});useEffect(()=>{x&&u.current?.focus();},[x,u]);let A=useColorModeValue$1("#00000055","#ffffff55"),B=useCallback(E=>{if(l)return b.createElement(l,{...E});if(!o)throw new Error("Editable component must have a field OR a CustomInput");return b.createElement(Qn,{field:o,...E})},[l,o]),M=useCallback(E=>{if(a)return b.createElement(a,{...E});if(!o)throw new Error("Editable component must have a field OR a CustomView");return b.createElement(ro,{style:n,field:o,value:v,...E})},[a,o,n,v]);return b.createElement(Flex,{borderRadius:4,border:`1px dashed ${g&&!x?A:"transparent"}`,flexFlow:"column",w:"100%",style:d},b.createElement(Flex,{align:"center",px:1,position:"relative",w:"100%"},b.createElement(Flex,{opacity:c?0:1,transition:"all 300ms",mr:1,border:`1px dashed ${x?A:"transparent"}`,flex:1,minW:"0"},x||w?b.createElement(B,{ref:u,value:v,inEditable:true,style:{padding:0,...n},size:m,onChange:w?E=>void D(E):p,inputStyle:n}):b.createElement(M,{inEditable:true,size:m,value:v})),w?null:b.createElement(b.Fragment,null,b.createElement(IconButton,{"aria-label":"Edit",size:"xs",icon:x?b.createElement(CloseIcon,{width:3}):b.createElement(EditIcon,null),onMouseEnter:()=>S(true),onMouseLeave:()=>S(false),onClick:()=>{x?(p(v),y()):h();}}),b.createElement(Flex,{transition:"all 300ms",justify:"flex-end",opacity:x?1:0,overflow:"hidden",w:x?"30px":"0px"},b.createElement(IconButton,{"aria-label":"Edit",size:"xs",bg:palette.cyan.light,_dark:{bg:palette.cyan.light,_hover:{bg:palette.cyan.lighter}},_hover:{bg:palette.cyan.medium},icon:b.createElement(CheckIcon,{filter:"drop-shadow(1px 1px 3px #000000aa)"}),onClick:()=>{F();}}))),b.createElement(ze,{isLoading:c})),b.createElement(Oo,{uploads:f}))};var Mm=e=>o=>{o.destination&&e(o.source.index,o.destination.index);},Lm=({field:e,name:o})=>{let t=useMemo(()=>isField(e.itemField)?"":isListField(e.itemField)?[]:{},[e]),r=useColorModeValue("#efefef","#2b2b2b"),n=G(),{control:s}=useFormContext(),{fields:i,append:l,remove:a,move:d}=useFieldArray({control:s,name:o}),m=useMemo(()=>Mm(d),[d]);return b.createElement(Flex,{overflow:"hidden",gap:2,flexFlow:"column",w:"100%",px:2,py:1},b.createElement(Text,{lineHeight:1,opacity:.7,fontSize:"sm"},e.placeholder),b.createElement(DragDropContext,{onDragEnd:m},b.createElement(Droppable,{droppableId:"droppable"},(u,{draggingFromThisWith:p})=>b.createElement(Flex,{ref:u.innerRef,flexFlow:"column",w:"100%",py:1,borderRadius:4,minH:"30px",align:"flex",...u.droppableProps},i.length?i.map((c,f)=>b.createElement(Draggable,{key:c.id,draggableId:c.id,index:f},({dragHandleProps:g,draggableProps:h,innerRef:y},{isDragging:x})=>b.createElement(Flex,{transition:"all 300ms",boxShadow:`2px 2px 4px #000000${x?"55":"00"}`,borderRadius:4,pt:2,px:2,border:`1px solid ${n}`,bg:`${r}${x?"ff":"00"}`,ref:y,w:"100%",...h},b.createElement(ee,null,b.createElement(Flex,{opacity:p&&!x?.5:1,gap:1,align:"center",w:"100%"},b.createElement(IconButton,{"aria-label":"drag",size:"xs",opacity:.8,variant:"ghost",icon:b.createElement(DragHandleIcon,null),...g}),b.createElement(Box,{minW:"0",flex:1},b.createElement(zt,{name:c.id,field:e.itemField})),b.createElement(IconButton,{"aria-label":"delete",size:"xs",bg:"red.600",color:"white",icon:b.createElement(DeleteIcon,{filter:"drop-shadow(1px 1px 3px #00000088)"}),onClick:v=>{v.stopPropagation(),a(f);}})))))):b.createElement(Text,{fontSize:"sm",opacity:.7,py:1,px:2},"No items"),u.placeholder))),b.createElement(Flex,null,b.createElement(Button,{mr:"auto",width:"auto",size:"xs",onClick:()=>l(t)},"+ NEW")))},zt=({field:e,name:o})=>{let t=useMemo(()=>isField(e)||isListField(e)?[{name:"value",field:e}]:Object.entries(e.children).map(([r,n])=>({name:`${o?`${o}.`:""}${r}`,field:n})),[e,o]);return b.createElement(VStack,{spacing:1,w:"100%"},t.map(r=>{if(isListField(r.field)){let s=b.createElement(Lm,{key:r.name,name:r.name,field:r.field});return r.field.condition?b.createElement(Co,{path:o,condition:r.field.condition,key:r.name},s):s}if(isField(r.field)){let s=b.createElement(Vn,{key:r.name,name:r.name,field:r.field});return r.field.condition?b.createElement(Co,{path:o,condition:r.field.condition,key:r.name},s):s}let n=b.createElement(zt,{key:r.name,name:r.name,field:r.field});return r.field.condition?b.createElement(Co,{path:o,condition:r.field.condition,key:r.name},n):n}))},Bm=({field:e,value:o,path:t})=>{let{placeholder:r}=e,n=G(),s=useGetItemField(e);return b.createElement(Box,{w:"100%",p:1},b.createElement(Ro,{border:`1px solid ${n}`,borderRadius:4,initExpanded:true,header:()=>b.createElement(Text,{py:1},r)},b.createElement(Flex,{flexFlow:"column",bg:"background.200",gap:2,px:2,py:1},o?.length?o.map((i,l)=>b.createElement(Box,{bg:"background.100",key:`${t}.${l}`,border:`1px solid ${n}`,borderRadius:3},b.createElement(Zn,{path:`${t}.${l}`,field:s(l),value:i}))):b.createElement(Text,{fontSize:"sm",opacity:.7,py:1,px:2},"No items"))))},Zn=({field:e,value:o,path:t,storagePath:r})=>{let{updateField:n}=useDataView();return isField(e)?n?b.createElement(Jn,{storagePath:r,field:e,value:o,onSubmit:s=>n(t,s)}):b.createElement(ro,{field:e,value:o}):isListField(e)?b.createElement(Bm,{path:t,field:e,value:o}):b.createElement(Am,{storagePath:r?`${r}.${t}`:void 0,path:t,field:e})},Am=({field:e,value:o,onClose:t,onDelete:r,onSubmit:n,itemName:s,storagePath:i,path:l=""})=>{let{name:a,children:d}=e,[m,u]=useState(false);return b.createElement(DataViewProvider,{value:o,onSubmit:n},b.createElement(Ro,{alwaysExpanded:true,header:()=>b.createElement(Flex,{align:"center",px:2,w:"100%"},b.createElement(Text,{py:2,fontSize:"lg",fontFamily:"fonts.heading"},a),b.createElement(Flex,{gap:2,align:"center",ml:"auto"},r?b.createElement(Vr,{onDelete:r,itemName:s??"item"}):null,n?b.createElement(IconButton,{size:"sm",borderRadius:"full",minW:0,w:7,h:7,ml:"auto","aria-label":"edit",icon:b.createElement(EditIcon,null),onClick:()=>u(true)}):null,t?b.createElement(IconButton,{size:"sm",borderRadius:"full",minW:0,w:7,h:7,variant:"ghost","aria-label":"close",icon:b.createElement(CloseIcon,{opacity:.8,w:3,h:3}),onClick:t}):null))},m&&n?b.createElement(Dt,{storagePath:i,field:e,value:o,onSubmit:n,onBack:()=>u(false)}):b.createElement(Flex,{flexFlow:"column",px:4,py:2},Object.entries(d).map(([p,c])=>b.createElement(Zn,{storagePath:i?`${i}/${p}`:void 0,path:l?`${l}.${p}`:p,key:p,field:c,value:o?.[p]})))))},Rn=({onSubmit:e,onBack:o,field:t,value:r,buttonText:n="SUBMIT",renderFooter:s,storagePath:i})=>{let l=useMemo(()=>({field:t,value:r,submit:e,storagePath:i}),[t,r,e,i]),{onSubmit:a,uploads:d}=useFormSubmit(l);return b.createElement(Stack,{w:"100%",spacing:3},b.createElement("form",null,b.createElement(Box,{pt:1,px:2,w:"100%"},b.createElement(zt,{name:"",field:t})),b.createElement(Wn,{uploads:d,onSubmit:a,renderFooter:s,onBack:o,buttonText:n})))},Om=({onSubmit:e,field:o,value:t,...r})=>{let n=useMemo(()=>({children:{value:o}}),[o]);return b.createElement(Rn,{field:n,value:{value:t},onSubmit:s=>e(s?.value),...r})},Dt=({field:e,onSubmit:o,...t})=>{let r=isField(e)||isListField(e)?b.createElement(Om,{field:e,onSubmit:o,...t}):b.createElement(Rn,{field:e,onSubmit:o,...t});return b.createElement(ChempoFormProvider,null,r)};var oi=e=>{let o=useMounted();return b.createElement(mr,null,b.createElement(Flex,{overflow:"hidden",flexFlow:"column",h:"100%",w:"100%",opacity:o?1:0,transition:"opacity 300ms",...e}))};var Ne=({data:e,rowIndex:o,columnIndex:t,style:r})=>{let{items:n,onSelect:s,refetch:i,grid:l,numCols:a,colorMode:d}=e||{},{ItemPreview:m}=l,u=o*a+t,p=n[u];return p?b.createElement(Flex,{display:"flex",cursor:"pointer","aria-label":"list-item",onClick:()=>{s(p);},style:r,px:1,py:.25,key:u},b.createElement(m,{index:u,item:p,refetch:i?()=>i(p.id):void 0,colorMode:d})):null};var we=()=>{let{list:e,search:{debounced:o,search:t}}=useDataList(),{data:{isLoading:r}}=usePaginatedList(),n=useMemo(()=>r||o!==t,[r,o,t]),{itemName:s,pluralItemName:i,noItemsMessage:l,searchRequired:a}=e;return b.createElement(Flex,{justify:"center",align:"flex-start",w:"100%",h:"100%"},n?b.createElement(Pe,{text:`Loading ${i??toPlural(s)}`}):b.createElement(Text,{textAlign:"center",flex:1,p:3,fontStyle:"italic",opacity:.7},!o&&a?`Search ${i??toPlural(s)}`:l??`No ${i??toPlural(s)}`))};var ce=e=>typeof e=="function";var Gm=(e,o)=>{if(e.key!==o.key||e.operator!==o.operator)return false;if(arrayOperators.includes(e.operator)){let t=Array.isArray(e.value)?e.value:[e.value];return !(Array.isArray(o.value)?o.value:[o.value]).every(n=>!t.includes(n))}return e.value===o.value},ri=(e,{nativeFilter:o})=>(Array.isArray(o)?o:[o]).every(r=>Gm(r,e));var Ym=(e,o,t)=>{let{rowHeight:r,columnWidth:n}=o;if(typeof r!="number"&&typeof n!="number")throw new Error("Cannot have both variable row height and variable column width");if(typeof n=="function"){let l=Math.floor(t/n(e[0]));return {numRows:Math.ceil(e.length/l),numCols:l}}let s=Math.max(1,Math.floor(t/n));return {numRows:Math.ceil(e.length/s),numCols:s}},Xm=(e,o,t)=>{let{rowHeight:r,columnWidth:n}=o,{numRows:s,numCols:i}=Ym(e,o,t),l=typeof n=="number"?t/i:Array.from({length:i},(u,p)=>e.filter((f,g)=>g%i===p).reduce((f,g)=>{let h=n(g);return Math.max(f,h)},0)),a=typeof r=="number"?r:Array.from({length:s},(u,p)=>e.slice(p*i,(p+1)*i).reduce((f,g)=>{let h=r(g);return Math.max(f,h)},0)),d=Array.isArray(a)?u=>a[u]:a,m=Array.isArray(l)?u=>l[u]:l;return {rowHeight:d,colWidth:m,numCols:i,numRows:s}},Ho=(e,o)=>{let{data:{data:t}}=usePaginatedList();return useMemo(()=>Xm(t,e,o),[t,e,o])};var ai=({height:e,options:o})=>{let{totalCount:t,data:{data:r},refetchItem:n,isItemLoaded:s,goNext:i}=usePaginatedList(),{list:l,onSelectItem:a,mobileLayout:d,query:m}=useDataList(),{width:u}=useFullSize(),{numCols:p,numRows:c,rowHeight:f,colWidth:g}=Ho(o,u),{previewHeight:h,mobile:y}=l,{colorMode:x}=useColorMode(),v=useMemo(()=>({list:l,items:r,mobileLayout:d,grid:o,colorMode:x,numCols:p,onSelect:M=>a(M.id),refetch:n}),[r,l,n,a,d,p,o,x]),S=useRef(null),w=useMemo(()=>d?y?.previewHeight??h:h,[y,h,d]);useEffect(()=>{let M=S.current;M&&(M.resetAfterColumnIndex(0),M.resetAfterRowIndex(0));},[m]);let F=useRef(null);useEffect(()=>{F.current&&F.current.resetloadMoreItemsCache(true);},[t]);let D=useMemo(()=>ce(w),[w]),A=useCallback(({columnIndex:M,rowIndex:E,data:V})=>{let U=E*p+M;return V.items[U]?.id||`${U}`},[p]),B=useCallback(({overscanColumnStartIndex:M,overscanColumnStopIndex:E,overscanRowStartIndex:V,overscanRowStopIndex:U,visibleColumnStartIndex:ge,visibleColumnStopIndex:Be,visibleRowStartIndex:Ae,visibleRowStopIndex:Fe},T)=>{let H=Ae*p+ge,k=Fe*p+Be,I=V*p+M,L=U*p+E;T({overscanStartIndex:I,overscanStopIndex:L,visibleStartIndex:H,visibleStopIndex:k});},[p]);return r.length?D?b.createElement(li,{isItemLoaded:s,ref:F,itemCount:t??0,loadMoreItems:i},({onItemsRendered:M,ref:E})=>b.createElement(VariableSizeGrid,{height:e,width:u,rowCount:c,columnCount:p,rowHeight:f,columnWidth:g,itemData:v,style:{overflowX:"hidden"},itemKey:A,onItemsRendered:V=>B(V,M),ref:V=>{E(V),S.current=V;}},Ne)):b.createElement(li,{isItemLoaded:s,itemCount:t??0,ref:F,loadMoreItems:i},({onItemsRendered:M,ref:E})=>b.createElement(FixedSizeGrid,{height:e,width:u,rowCount:c,columnCount:p,rowHeight:f,columnWidth:g,itemData:v,onItemsRendered:V=>B(V,M),style:{overflowX:"hidden"},ref:V=>{E(V),S.current=null;}},Ne)):b.createElement(we,null)};var Ge=({data:e,index:o,style:t})=>{let{list:r,items:n,onSelect:s,refetch:i,mobileLayout:l,colorMode:a}=e||{},{ItemPreview:d,mobile:m}=r,u=l?m?.ItemPreview??d:d,p=n[o];return p?b.createElement(Flex,{display:"flex",cursor:"pointer","aria-label":"list-item",onClick:()=>{s(n[o]);},style:t,key:o},b.createElement(u,{index:o,item:p,refetch:i?()=>i(p.id):void 0,colorMode:a})):null};var ci=({height:e})=>{let{totalCount:o,data:{data:t},refetchItem:r,isItemLoaded:n,goNext:s}=usePaginatedList(),{list:i,onSelectItem:l,mobileLayout:a,query:d}=useDataList(),{previewHeight:m,mobile:u}=i,{colorMode:p}=useColorMode(),{width:c}=useFullSize(),f=useMemo(()=>({list:i,items:t,mobileLayout:a,colorMode:p,onSelect:S=>l(S.id),refetch:r}),[t,i,r,l,a,p]),g=useRef(null),h=useMemo(()=>a?u?.previewHeight??m:m,[u,m,a]),y=useRef(null);useEffect(()=>{y.current&&y.current.resetloadMoreItemsCache(true);},[o]),useEffect(()=>{let S=g.current;S&&(S.resetAfterRowIndex(0),S.resetAfterColumnIndex(0));},[d]);let x=useCallback(S=>typeof h=="function"?h(t[S]):h,[t,h]),v=useMemo(()=>ce(h),[h]);return t.length?v?b.createElement(li,{ref:y,isItemLoaded:n,itemCount:o??0,loadMoreItems:s},({onItemsRendered:S,ref:w})=>b.createElement(VariableSizeList,{height:e,width:c,itemSize:x,itemCount:o??0,itemData:f,style:{overflowX:"hidden"},itemKey:F=>t[F]?.id||`${F}`,onItemsRendered:F=>{S(F);},ref:w},Ge)):b.createElement(li,{ref:y,isItemLoaded:n,itemCount:o??0,loadMoreItems:s},({onItemsRendered:S,ref:w})=>b.createElement(FixedSizeList,{height:e,width:c,itemSize:h,itemCount:o??0,itemData:f,itemKey:F=>t[F]?.id||`${F}`,style:{overflowX:"hidden"},onItemsRendered:S,ref:w},Ge)):b.createElement(we,null)};var gc=({height:e,options:o})=>{let{list:t,onSelectItem:r,mobileLayout:n,query:s}=useDataList(),{data:{data:i},pageIndex:l}=usePaginatedList(),a=useRef(null),d=useRef(null),{width:m}=useFullSize(),{numCols:u,numRows:p,rowHeight:c,colWidth:f}=Ho(o,m),{colorMode:g}=useColorMode(),h=useMemo(()=>({list:t,items:i,numCols:u,onSelect:x=>r(x.id),mobileLayout:n,colorMode:g,grid:o}),[i,t,r,n,u,o,g]);useEffect(()=>{let x=a.current;x&&(x.resetAfterColumnIndex(0),x.resetAfterRowIndex(0));},[s]),useEffect(()=>{let x=a.current,v=d.current;x&&x.scrollTo({scrollLeft:0,scrollTop:0}),v&&v.scrollTo({scrollLeft:0,scrollTop:0});},[l,s]);let y=useMemo(()=>ce(o.rowHeight)||ce(o.columnWidth),[o]);return i.length?y?b.createElement(VariableSizeGrid,{ref:a,height:e,width:m,rowCount:p,columnCount:u,rowHeight:c,columnWidth:f,itemData:h,style:{overflowX:"hidden"}},Ne):b.createElement(FixedSizeGrid,{height:e,ref:d,width:m,rowCount:p,columnCount:u,rowHeight:c,columnWidth:f,itemData:h,style:{overflowX:"hidden"}},Ne):b.createElement(we,null)},xi=memo(gc);var Sc=({height:e})=>{let{list:o,onSelectItem:t,mobileLayout:r,query:n}=useDataList(),{data:{data:s},pageIndex:i}=usePaginatedList(),{width:l}=useFullSize(),{previewHeight:a,mobile:d}=o,m=useRef(null),u=useRef(null),{colorMode:p}=useColorMode(),c=useMemo(()=>({list:o,colorMode:p,items:s,onSelect:y=>t(y.id),mobileLayout:r}),[s,o,t,r,p]),f=useMemo(()=>r?d?.previewHeight??a:a,[d,a,r]);useEffect(()=>{let y=m.current;y&&y.resetAfterIndex(0);},[n]),useEffect(()=>{let y=m.current,x=u.current;y&&y.scrollTo(0),x&&x.scrollTo(0);},[n,i]);let g=useCallback(y=>typeof f=="function"?f(s[y]):f,[s,f]),h=useMemo(()=>ce(f),[f]);return s.length?h?b.createElement(FixedSizeList,{ref:u,height:e,width:l,itemSize:f,itemCount:s.length,itemData:c,style:{overflowX:"hidden"}},Ge):b.createElement(VariableSizeList,{ref:m,height:e,width:l,itemSize:g,itemCount:s.length,itemData:c,style:{overflowX:"hidden"}},Ge):b.createElement(we,null)},wi=memo(Sc);var Ci=({height:e})=>{let{infiniteScroll:o,gridLayout:t,list:r}=useDataList(),{grid:n}=r;return t&&n?o?b.createElement(ai,{options:n,height:e}):b.createElement(xi,{options:n,height:e}):o?b.createElement(ci,{height:e}):b.createElement(wi,{height:e})};var $o=({children:e,isOpen:o,contentProps:t,...r})=>{let n=useBackgroundColor(100);return b.createElement(Modal,{scrollBehavior:"inside",isCentered:true,isOpen:o,...r},b.createElement(ModalOverlay,null),b.createElement(ModalContent,{position:"relative",overflowY:"auto",bg:n,...t},b.createElement(Box,null,e)))};var Fi=e=>{let{overlayRef:o}=useMobileFrame();return b.createElement(Portal,{containerRef:o},b.createElement(Flex,{justify:"center",align:"center",transition:"opacity 300ms",position:"absolute",left:0,top:0,height:"100%",width:"100%",...e}))};var Vc=({onClick:e})=>b.createElement(Flex,{onClick:e,w:"100%",h:"100%",position:"absolute",bg:"blackAlpha.400",transition:"opacity 300ms"}),Ti=({isOpen:e,onClose:o,children:t,contentProps:r,onContentMounted:n,closeOnOverlayClick:s})=>{let{height:i,width:l}=useMobileFrame(),a=useColorModeValue("gray.100","#454545"),[d,m]=useState(false),[u,p]=useState(false),c=useRef(null),f=useRef(null);return useEffect(()=>(c.current&&(clearTimeout(c.current),c.current=null),f.current&&(clearTimeout(f.current),f.current=null),e?(m(true),f.current=setTimeout(()=>{p(true),n&&n(true);},50)):(p(false),n&&n(false),c.current=setTimeout(()=>{m(false);},300)),()=>{c.current&&(clearTimeout(c.current),c.current=null),f.current&&(clearTimeout(f.current),f.current=null);}),[e,n]),d?b.createElement(Fi,{opacity:u?1:0,pointerEvents:u?"auto":"none"},b.createElement(Vc,{onClick:s!==false?o:void 0}),b.createElement(Flex,{width:`${l-10}px`,maxH:`${i-10}px`,overflowY:"auto",overflowX:"hidden",minH:"100px",bg:a,borderRadius:6,position:"relative",...r},t)):null};var ki=e=>{let o=useScreen(n=>n.isMobile),t=br(),r=useMemo(()=>o||t?Ti:$o,[o,t]);return b.createElement(r,{...e})};var Mi=({field:e})=>{let{list:{baseQuery:o,itemName:t},newItemOpen:r,setNewItemOpen:n}=useDataList(),{adapter:{db:s}}=useBackendBase(),{refetch:i}=usePaginatedList(),l=useCallback(async a=>{await s.createItem(o.collection,a),n(false),i&&i();},[n,i,s,o]);return b.createElement($o,{isOpen:r,onClose:()=>n(false)},b.createElement(Flex,{align:"center",pt:3,px:3,w:"100%"},b.createElement(Text,{pl:1,opacity:.7,fontWeight:600},"NEW ",t.toUpperCase()),b.createElement(IconButton,{size:"sm",borderRadius:"full",ml:"auto",h:7,w:7,minW:0,onClick:()=>n(false),"aria-label":"Close",icon:b.createElement(CloseIcon,{opacity:.8,w:3,h:3})})),b.createElement(Dt,{field:e,onSubmit:l}))};var Ai=({goNext:e,canGoNext:o,mobileLayout:t})=>b.createElement(Button,{opacity:o?1:.6,pointerEvents:o?"auto":"none",borderRadius:"full",onClick:e,"aria-label":"next",variant:"ghost",size:t?"xs":"sm",pl:3,pr:1,gap:1},b.createElement(Text,null,"Next"),b.createElement(ChevronRightIcon,{w:5,h:5})),Oi=({goPrev:e,canGoPrev:o,mobileLayout:t})=>b.createElement(Button,{opacity:o?1:.5,pointerEvents:o?"auto":"none",onClick:e,borderRadius:"full","aria-label":"back",variant:"ghost",pr:3,pl:1,gap:1,size:t?"xs":"sm"},b.createElement(ChevronLeftIcon,{w:5,h:5}),b.createElement(Text,null,"Back")),pf=({progressBg:e,borderColor:o})=>{let{data:{isLoading:t,error:r}}=usePaginatedList();return b.createElement(Box,{position:"absolute",bottom:"100%",w:"100%",left:0},b.createElement(Collapse,{style:{width:"100%"},in:!!r,animateOpacity:true},b.createElement(Box,{borderTopRadius:6,bg:"red.600",maxW:"100%",p:1},b.createElement(Tooltip,{placement:"top",hasArrow:true,label:r?.message??"","aria-label":"error"},b.createElement(Text,{textShadow:"1px 1px 3px #00000077",_dark:{textShadow:"none"},px:1,fontWeight:600,isTruncated:true,maxW:"100%",fontSize:"sm",color:"white"},r?.message)))),b.createElement(ee,{in:t,animateOpacity:true},b.createElement(Flex,{bg:e,borderTop:"1px solid",borderBottom:"1px solid",borderColor:o,w:"100%"},b.createElement(Progress,{borderRadius:0,w:"100%",height:"8px",isIndeterminate:t}))))},df=(e,o,t)=>Math.abs(e-o)<=1?2:e<3?o===0?2:0:e>t-4?o>t-3?2:4:e<o?1:3,jo=28,Uo=24,zi=({index:e,isActive:o,onClick:t,borderColor:r,isLoading:n,mobileLayout:s})=>b.createElement(Button,{key:e,onClick:t,variant:"unstyled",display:"flex",border:"1px solid",borderColor:o?"transparent":r,justifyContent:"center",alignItems:"center",width:`${s?Uo:jo}px`,height:`${s?Uo:jo}px`,fontFamily:"fonts.heading",lineHeight:1,fontWeight:600,minW:"0",bg:o?"accent.400":"transparent",_hover:{bg:o?"accent.500":"whiteAlpha.500"},color:o?"white":r,textShadow:o?"1px 1px 3px #00000088":"none",size:"sm",disabled:n,"aria-label":`Go to page ${e+1}`},e+1),uf=({group:{indicators:e,collapsed:o},mobileLayout:t})=>{let{data:{isLoading:r},goToPage:n}=usePaginatedList(),s=G();return o?b.createElement(Popover,{trigger:"hover",gutter:1,variant:"fixed"},({onClose:i})=>b.createElement(b.Fragment,null,b.createElement(PopoverTrigger,null,b.createElement(IconButton,{variant:"unstyled",width:`${t?Uo:jo}px`,height:`${t?Uo:jo}px`,minW:"0",opacity:.7,_hover:{opacity:1},"aria-label":"more pages",icon:b.createElement(Text,{fontSize:"md",position:"relative",bottom:"2px"},"...")})),b.createElement(PopoverContent,{bg:"background.200",w:"auto",border:"1px solid",borderColor:s,boxShadow:"none"},b.createElement(PopoverBody,{w:"auto",maxW:"166px",p:.5},b.createElement(Flex,{align:"center",justify:"center",flexFlow:"row wrap"},e.map(({index:l,isActive:a})=>b.createElement(Box,{key:`ind-${l}`,m:.5},b.createElement(zi,{mobileLayout:t,index:l,isActive:a,onClick:()=>{n(l),i();},borderColor:s,isLoading:r})))))))):b.createElement(b.Fragment,null,e.map(({index:i,isActive:l})=>b.createElement(zi,{mobileLayout:t,key:i,index:i,isActive:l,onClick:()=>n(i),borderColor:s,isLoading:r})))},mf=()=>{let{pageIndex:e,numPages:o}=usePaginatedList(),{mobileLayout:t}=useDataList(),r=useMemo(()=>{let n=o??0;if(n<=9)return [{indicators:Array.from({length:n},(i,l)=>({index:l,isActive:l===e})),collapsed:false}];let s=Array.from({length:5},(i,l)=>({indicators:[],collapsed:l%2===1}));for(let i=0;i<n;i+=1){let l=df(i,e,n);s[l]||(s[l]={indicators:[],collapsed:l!==2}),s[l].indicators.push({index:i,isActive:i===e});}return s.filter(i=>i.indicators.length).map(i=>({...i,collapsed:i.collapsed&&i.indicators.length>1}))},[o,e]);return b.createElement(Flex,{gap:1,align:"center"},r.map((n,s)=>b.createElement(uf,{mobileLayout:t,key:`group-${s}`,group:n})))},Gt=120,Ei=({onResize:e,flexProps:o,noFooter:t})=>{let r=useColorModeValue("#cdcdcd","#2d3748"),{list:n,mobileLayout:s,infiniteScroll:i,search:{search:l,debounced:a}}=useDataList(),{data:{data:d,isLoading:m},totalCount:u,pageIndex:p,limit:c,numFetched:f,goNext:g,goPrev:h,hasMoreData:y}=usePaginatedList(),{itemName:x,pluralItemName:v,searchRequired:S}=n,{itemsText:w,pageText:F}=useMemo(()=>m&&!i?{itemsText:s?"Loading...":"",pageText:""}:u===null?{itemsText:"Loading...",pageText:""}:u===0&&!m&&l===a?{itemsText:!l&&S?`Search ${v??toPlural(x)}`:`No ${v??toPlural(x)} found`,pageText:""}:{itemsText:`${i?1:(p||0)*c+1} - ${i?f:p*c+d.length} of ${u}`,pageText:`Page ${p+1} of ${c?Math.ceil((u??0)/c):0}`},[u,m,x,v,c,p,l,S,s,a,d,i,f]),D=useMemo(()=>!i&&h,[i,h]),A=useMemo(()=>!i&&g,[i,g]),B=useColorModeValue("#efefef","#212121"),M=useRef(null),E=useCallback(V=>{let U=V.borderBoxSize[0].blockSize,ge=V.borderBoxSize[0].inlineSize;e({height:U,width:ge});},[e]);return pr(M,E),b.createElement(Flex,{ref:M,py:t?0:2,px:t?0:3,borderTop:`1px solid ${r}`,position:"relative",flexFlow:s?"column":"row",gap:s?1:0,w:"100%",...o},t||s&&i?null:b.createElement(Flex,{align:"center",justify:s?"center":"space-between",position:"relative",w:"100%"},D&&!s?b.createElement(Oi,{goPrev:h,canGoPrev:!m&&!!p}):null,b.createElement(Flex,{gap:1,align:"center"},i?null:b.createElement(b.Fragment,null,s?null:b.createElement(Text,{fontFamily:"fonts.heading",whiteSpace:"nowrap",textAlign:"center",w:`${Gt}px`,fontSize:"sm"},F),b.createElement(mf,null)),s?null:b.createElement(Text,{fontFamily:"fonts.heading",textAlign:"center",w:s||i?"auto":`${Gt}px`,whiteSpace:"nowrap",fontSize:"sm"},w)),A&&!s?b.createElement(Ai,{goNext:g,canGoNext:!m&&y}):null),s&&!t?b.createElement(Flex,{gap:2,w:"100%",justify:"space-between",align:"center"},D?b.createElement(Oi,{mobileLayout:true,goPrev:h,canGoPrev:!!p}):null,b.createElement(Text,{fontFamily:"fonts.heading",textAlign:"center",w:s||i?"auto":`${Gt}px`,whiteSpace:"nowrap",fontSize:"sm"},w),A?b.createElement(Ai,{mobileLayout:true,goNext:g,canGoNext:y}):null):null,b.createElement(pf,{progressBg:B,borderColor:r}))};var _i=({filter:e,filters:o,GroupRender:t,toggleFilter:r})=>{let{label:n,Render:s}=e,i=useMemo(()=>o.some(u=>ri(u,e)),[o,e]),{colorMode:l}=useColorMode(),a=G(),d=useColorModeValue("gray.700","gray.100"),m=s??t;return b.createElement(Box,{p:.5},b.createElement(Button,{onClick:()=>r(e),variant:"unstyled",color:i&&!m?"white":d,bg:i&&!m?"accent.400":"transparent",px:m?0:2,py:m?0:1,transition:"all 300ms",border:"none",boxShadow:`0px 0px 1px 1px ${i?"transparent":"#00000033"}`,w:"auto",_dark:{boxShadow:`0px 0px 1px 1px ${i?"transparent":"#ffffff66"}`},h:"auto",minW:"0",minH:"0",alignItems:"center",justifyContent:"center",borderColor:i?"transparent":a,size:"none"},m?b.createElement(m,{active:i,colorMode:l,preset:e}):b.createElement(Text,{textShadow:i?"0 0 3px rgba(0,0,0,0.8)":"none",fontSize:"xs"},n)))},Mf=({group:e,filters:o,toggleFilter:t})=>{let{label:r,filters:n}=e;return b.createElement(Flex,{px:1,flexFlow:"column",w:"100%"},b.createElement(Text,{px:1,opacity:.8,fontSize:"sm",fontWeight:600},r),b.createElement(Flex,{w:"100%",flexFlow:"row wrap"},n.map(s=>b.createElement(_i,{toggleFilter:t,GroupRender:e.RenderFilter,filters:o,key:s.label,filter:s}))))},Xt=()=>{let{query:e,list:o,toggleFilter:t}=useDataList(),r=useScreen(l=>l.isMobile),{filters:n=[]}=e||{},{filterPresets:s}=o,i=G();return s?.length?b.createElement(HStack,{spacing:1},b.createElement(Popover,{placement:"right-start",trigger:r?"click":"hover",strategy:"fixed"},b.createElement(PopoverTrigger,null,b.createElement(IconButton,{size:"sm",variant:"ghost","aria-label":"Filters",icon:b.createElement(Image,{width:"24px",filter:`grayscale(${n.length?0:100}%)`,src:"/icons/tune.svg"})})),b.createElement(Portal,null,b.createElement(PopoverContent,{borderRadius:6,w:"auto"},b.createElement(PopoverBody,{w:"240px",p:0},b.createElement(Flex,{flexFlow:"column",w:"100%"},b.createElement(HStack,{py:1.5,px:2,w:"100%",spacing:1,borderBottom:`1px solid ${i}`},b.createElement(Image,{width:"18px",filter:"grayscale(100%)",src:"/icons/tune.svg"}),b.createElement(Text,{opacity:.8,fontSize:"sm",fontWeight:600},"FILTERS")),b.createElement(Flex,{justify:"center",w:"100%",flexFlow:"row wrap",py:1,px:2},s.map(l=>isFilterGroup(l)?b.createElement(Mf,{toggleFilter:t,filters:n,key:l.label,group:l}):b.createElement(_i,{toggleFilter:t,filters:n,key:l.label,filter:l}))))),b.createElement(PopoverArrow,null),b.createElement(PopoverCloseButton,null))))):null};var Ef=({preset:e})=>{let{setSort:o,query:t}=useDataList(),{sort:r}=t,{label:n,key:s,Render:i}=e,l=useMemo(()=>r?.key===s?r.direction:null,[r,s]),{colorMode:a}=useColorMode(),d=useMemo(()=>l?"white":a==="light"?"gray.500":"gray.400",[l,a]),m=useMemo(()=>r?.direction==="asc"?b.createElement(ArrowUpIcon,{w:4,h:4}):b.createElement(ArrowDownIcon,{w:4,h:4}),[r]);return b.createElement(Button,{size:"xs",variant:"outline",bg:l?"accent.400":"transparent",transition:"all 300ms",textShadow:l?"0 0 2px rgba(0,0,0,0.7)":"none",boxShadow:`0px 0px 1px 1px ${l?"transparent":"#00000033"}`,border:"none",_dark:{boxShadow:`0px 0px 1px 1px ${l?"transparent":"#ffffff66"}`,color:d,textShadow:l?"0 0 2px rgba(0,0,0,0.7)":"none"},"aria-label":n,opacity:l?1:.8,height:6,pl:l?3:2,pr:2,_hover:{opacity:1},gap:0,color:d,onClick:()=>o({direction:l&&r?.direction==="asc"?"desc":"asc",key:s})},i?b.createElement(i,{active:l,colorMode:a,preset:e}):b.createElement(Text,{fontWeight:600,fontSize:"sm",color:d},n),b.createElement(tr,{active:!!l,h:"16px",width:20},m))},qt=()=>{let{list:{sortPresets:e}}=useDataList();return e?b.createElement(HStack,{spacing:2},e.map(o=>b.createElement(Ef,{key:o.label,preset:o}))):null};var ji=()=>{let{list:e,search:{search:o,update:t}}=useDataList(),{searchIcon:r,itemName:n,pluralItemName:s}=e,i=useColorModeValue("invert(0)","invert(1)");return b.createElement(Flex,{p:1,flex:1,minW:"0"},b.createElement(InputGroup,null,b.createElement(InputLeftElement,{pointerEvents:"none"},r?b.createElement(Image,{filter:i,src:r,w:"24px"}):b.createElement(SearchIcon,{w:"24px",opacity:.5})),b.createElement(Input,{bg:"whiteAlpha.700",pl:9,borderRadius:6,_focus:{boxShadow:"none",outline:"none"},border:"none",_dark:{bg:"blackAlpha.400",color:"#cdcdcd",_placeholder:{color:"#ababab"},border:"none"},value:o,placeholder:`Search for ${s??toPlural(n)}`,onChange:l=>t(l.target.value)})))},Ui=({refetch:e})=>{let{list:o,setNewItemOpen:t}=useDataList(),r=useAuth(),{itemName:n,field:s,access:i}=o,l=useMemo(()=>getHasAccess(r,i?.create,null),[i,r]);return b.createElement(Flex,{gap:2,ml:"auto",align:"center"},e?b.createElement(Tooltip,{placement:"left",hasArrow:true,label:"Refresh","aria-label":"Refresh"},b.createElement(IconButton,{size:"xs",icon:b.createElement(RepeatIcon,null),"aria-label":"Refresh",onClick:e})):null,s&&l?b.createElement(Tooltip,{placement:"left",hasArrow:true,label:`Create new ${n}`,"aria-label":`Create new ${n}`},b.createElement(IconButton,{size:"xs",icon:b.createElement(AddIcon,null),"aria-label":`Create new ${n}`,onClick:()=>t(true)})):null)},Kf=[{id:"grid",label:"Grid View",Render:e=>b.createElement(Image,{w:5,opacity:e?1:.7,src:"/icons/grid_view.svg"})},{id:"list",label:"List View",Render:e=>b.createElement(Image,{w:6,opacity:e?1:.7,src:"/icons/list.svg"})}],Yi=()=>{let{toggleGridLayout:e,gridLayout:o}=useDataList();return e?b.createElement(Hr,{onChange:e,options:Kf,value:o?"grid":"list"}):null},Qi=({onResize:e,refetch:o,boxProps:t})=>{let{list:r,mobileLayout:n,toggleGridLayout:s}=useDataList(),{searchPath:i,sortPresets:l,filterPresets:a,Header:d}=r,m=G(),u=useRef(null),p=useCallback(f=>{e({height:f.contentRect.height,width:f.contentRect.width});},[e]),c=useMemo(()=>!!Object.keys(i??{}).length,[i]);return pr(u,p),b.createElement(Box,{ref:u,bg:"background.200",borderBottom:`1px solid ${m}`,w:"100%",...t},b.createElement(Flex,{px:2,align:"center",w:"100%"},l?.length||a?.length||c?b.createElement(Flex,{w:"100%",flexFlow:n?"column":"row"},n&&!d?null:b.createElement(Flex,{flex:1,px:2,py:n?0:1,gap:1,align:"center"},n?null:b.createElement(Flex,{flex:1,minW:"0",align:"center",gap:2},s?b.createElement(Yi,null):null,b.createElement(Xt,null),b.createElement(qt,null),c?b.createElement(ji,null):null),b.createElement(Flex,{align:"center",minW:"0",gap:3,ml:"auto"},d?b.createElement(Box,{minW:"0",flex:1},b.createElement(d,null)):null,n?null:b.createElement(Ui,{refetch:o}))),c&&n?b.createElement(ji,null):null,n&&(l?.length||a?.length)?b.createElement(Flex,{pl:1,py:1,gap:1.5,align:"center",w:"100%"},s?b.createElement(Yi,null):null,b.createElement(Xt,null),b.createElement(qt,null),b.createElement(Ui,{refetch:o})):null):null))};var Ki=()=>{let{selectedItemId:e,deselectItem:o,list:t}=useDataList(),{ItemView:r,itemName:n}=t||{},[s,i]=useState({x:0,y:0}),{data:{data:l}}=usePaginatedList(),a=useMemo(()=>l.find(c=>c.id===e)??null,[l,e]),{colorMode:d}=useColorMode(),m=useColorModeValue("red.600","red.300"),[u,p]=useState(null);return useEffect(()=>{a&&p(a);},[a]),b.createElement(ki,{contentProps:{p:0,transition:"all 300ms",transform:`translate(${s.x}px, ${s.y}px)`},scrollBehavior:"inside",onClose:o,isOpen:!!r&&!!e},r&&u?b.createElement(r,{item:u,colorMode:d,clearContentOffset:()=>i({x:0,y:0}),updateContentOffset:(c,f)=>i({x:c,y:f})}):b.createElement(Text,{color:m,p:4},"Error displaying ",n))};var Ri=({modals:e,noFooter:o,headerProps:t,footerProps:r})=>{let{data:{isLoading:n,data:s}}=usePaginatedList(),{list:i}=useDataList(),{height:l}=useFullSize(),[a,d]=useState(0),[m,u]=useState(0),p=useMemo(()=>l-a-m,[l,a,m]),c=useCallback(y=>{d(y.height);},[]),f=useCallback(y=>{u(y.height);},[]),{ItemView:g,field:h}=i;return b.createElement(b.Fragment,null,b.createElement(Qi,{boxProps:t,onResize:c}),b.createElement(Box,{h:`${p}px`,position:"relative",w:"100%"},b.createElement(Ci,{height:p}),o?b.createElement(ze,{isLoading:!s.length&&n}):null),b.createElement(Ei,{noFooter:o,flexProps:r,onResize:f}),e??null,g?b.createElement(Ki,null):null,h?b.createElement(Mi,{field:h}):null)};var sP=({list:e,flexProps:o,infiniteScroll:t,...r})=>{let{adapter:{db:n}}=useBackendBase(),{baseQuery:s}=e,i=useDataListData(e,t),l=usePaginatedQuery(n,s,!!t);return b.createElement(PaginatedListProvider,{state:i,data:l},b.createElement(oi,{...o},b.createElement(Ri,{...r})))};var pP=({value:e,duration:o=30})=>{let t=useRef(null),r=useRef(e),n=useRef(null);return useEffect(()=>(n.current=setInterval(()=>{if(t.current){if(r.current===e&&n.current)return clearInterval(n.current);r.current<e?(r.current+=1,t.current.innerText=r.current.toString()):r.current>e&&(r.current-=1,t.current.innerText=r.current.toString());}return ()=>{}},o),()=>{n.current&&clearInterval(n.current);}),[e,o]),b.createElement("span",{ref:t},e)};var w0=()=>{let{colorMode:e,toggleColorMode:o}=useColorMode(),t=useColorModeValue("gray.200","whiteAlpha.200"),r=useColorModeValue("blackAlpha.700","whiteAlpha.800"),n=useColorModeValue("gray.300","whiteAlpha.300"),s=useColorModeValue("gray.800","whiteAlpha.800");return b.createElement(IconButton,{"aria-label":"Toggle dark mode",bg:t,color:r,borderRadius:"full",_hover:{bg:n,color:s},w:8,h:8,minW:0,icon:e==="light"?b.createElement(SunIcon,{w:4,h:4}):b.createElement(MoonIcon,{w:4,h:4,filter:"drop-shadow(1px 1px 2px #000000aa)"}),onClick:o,variant:"ghost"})},gP=e=>b.createElement(Flex,{position:"absolute",bottom:3,right:3,...e},b.createElement(w0,null));var {definePartsStyle:I0,defineMultiStyleConfig:P0}=createMultiStyleConfigHelpers(switchAnatomy.keys),T0=I0({track:{_focusVisible:{boxShadow:"none"}}}),k0=P0({baseStyle:T0}),Ko=cssVar("popper-arrow-bg"),es="Encode Sans",os="Noto Sans",CP=extendTheme({semanticTokens:{colors:{background:{50:{default:"white",_dark:palette.gray.darker},100:{default:"gray.100",_dark:palette.gray.dark},200:{default:"#efefef",_dark:palette.gray.medium}},accent:{50:{default:"blue.50",_dark:"blue.900"},100:{default:"blue.100",_dark:"blue.800"},200:{default:"blue.200",_dark:"blue.700"},300:{default:"blue.300",_dark:"blue.600"},400:{default:"blue.400",_dark:"blue.500"},500:{default:"blue.500",_dark:"blue.400"},600:{default:"blue.600",_dark:"blue.300"},700:{default:"blue.700",_dark:"blue.200"},800:{default:"blue.800",_dark:"blue.100"},900:{default:"blue.900",_dark:"blue.50"}},error:{default:"red.500",_dark:"red.300"}},fonts:{body:os,heading:es}},components:{Badge:{baseStyle:{bg:"#9a9a9a",textShadow:"none",color:"white",boxShadow:"1px 1px 3px #00000077",_dark:{bg:"#555555",textShadow:"1px 1px 2px #00000077",color:"#efefef"}}},Tooltip:{baseStyle:{bg:"#ababab",textShadow:"0 0 3px rgba(0,0,0,0.5)",color:"white",[Ko.variable]:"#ababab",_dark:{bg:"#777777",textShadow:"none",color:"#efefef",[Ko.variable]:"#777777"}}},Button:{baseStyle:{fontFamily:es,fontWeight:500,_focus:{boxShadow:"none"}},variants:{link:{color:"#444",_dark:{color:"rgba(230,230,255,0.9)"}},ghost:{_hover:{bg:"blackAlpha.500"}},solid:{textShadow:"1px 1px 3px #00000077",bg:"blackAlpha.400",color:"whiteAlpha.800",_hover:{bg:"blackAlpha.500"},_dark:{bg:"whiteAlpha.300",color:"whiteAlpha.800",_hover:{bg:"whiteAlpha.400"}}},outline:{border:"1px solid",borderColor:"#ababab",color:"#656565",_hover:{bg:"blackAlpha.100"},_dark:{border:"1px solid #999",color:"#999",_hover:{bg:"whiteAlpha.300"}}}}},Tabs:{baseStyle:{tab:{_focus:{boxShadow:"none"}}}},Text:{baseStyle:{fontFamily:os}},Popover:{baseStyle:{root:{_focus:{boxShadow:"none"}},content:{bg:"background.100",border:"none",boxShadow:"0 0 4px rgba(0,0,0,0.5)",[Ko.variable]:"background.100",_dark:{bg:"background.100",[Ko.variable]:"background.100"}}}},Checkbox:{baseStyle:{control:{_focus:{boxShadow:"none"},border:"2px solid #ababab",borderColor:"#ababab",_checked:{bg:"#666666",color:"#efefef",border:"none"},_hover:{bg:"#555",border:"none"},_dark:{_checked:{bg:"#efefef",color:"#444444",border:"none"},_hover:{bg:"#555",border:"none"}}},label:{color:"#888",_dark:{color:"#999999"},_checked:{color:"#444444",_dark:{color:"#cdcdcd"}}}},variants:{noBox:{control:{bg:"transparent",_hover:{bg:"none"}}}}},Modal:{baseStyle:{dialog:{bg:"background.100",boxShadow:"0 0 6px rgba(0,0,0,0.5)",_dark:{bg:"background.100"}}}},Input:{baseStyle:{field:{_focus:{boxShadow:"none",outline:"none",border:"1px solid #bcbcbc"}}},variants:{text:{field:{borderRadius:6,border:"1px solid #dedede",_focus:{boxShadow:"none",borderColor:"#bcbcbc"},_active:{boxShadow:"none"},_placeholder:{color:"#777"},_dark:{border:"1px solid #777",_focus:{borderColor:"#999",boxShadow:"none"},_placeholder:{color:"#777"}}}}},defaultProps:{variant:"text"}},Switch:k0,Menu:{baseStyle:{list:{bg:"background.100",border:"none",boxShadow:"0 0 6px rgba(0,0,0,0.5)",_dark:{bg:"background.100"}},item:{_hover:{bg:"rgba(0,0,0,0.3)"},_focus:{bg:"rgba(0,0,0,0.2)"}}}},Progress:{baseStyle:{track:{bg:"blackAlpha.300",borderRadius:"full",_dark:{bg:"whiteAlpha.300"}},filledTrack:{bg:"blackAlpha.400",_dark:{bg:"whiteAlpha.500"}}}}}});var SP=()=>{if(typeof window<"u"){let e=()=>{let o=window.innerWidth,t=window.innerHeight;useScreen.setState({width:o,height:t,isMobile:o<769,isPortrait:o<t}),window.addEventListener("resize",e);};return e(),()=>{window.removeEventListener("resize",e);}}return ()=>{}};export{gP as AbsoluteDarkModeToggle,O0 as AbsoluteLogin,ho as CircularProgress,tr as CollapseHorizontal,Oe as ContentBox,w0 as DarkModeToggle,sP as DataList,Am as DataView,ki as DefaultModal,Vr as DeleteButton,Ol as DeleteConfirmAlert,$o as DesktopModal,Jn as Editable,wr as ErrorView,ee as ExpandOnMount,Ro as Expandable,Om as FieldForm,Rn as FieldMapForm,ro as FieldView,Lo as FileView,Dt as Form,zt as FormElement,yg as FullSizeContainer,mr as FullSizeProvider,jr as ImageViewOverlay,oi as ListContainer,Ri as ListContent,Lm as ListFieldInput,Pe as Loading,qr as LoadingImage,Ie as LoadingLogo,ze as LoadingOverlay,mx as LoadingSwitch,Ir as LottieLoadingLogo,ob as MediaFeed,Lh as MobileFrame,Ti as MobileModal,Fi as MobileOverlay,Vc as MobileOverlayBackground,tt as NAV_BAR_HEIGHT,yr as NavBar,pP as NumberTicker,vn as PlayButton,Mr as RedirectView,ls as SignIn,Qn as StandaloneInput,Hr as Toggle,rr as ViewButton,cr as ViewsContext,fr as ViewsProvider,CP as baseTheme,os as bodyFont,es as headingFont,SP as initializeScreen,k0 as switchTheme,G as useBorderColor,Gl as useMediaFeed,fo as useViews};//# sourceMappingURL=index.js.map
6
+ `,fontSize:"md",type:"time",placeholder:e.placeholder,...o,value:o.value??""})));Ke.displayName="TimeInput";var Bp=e=>{if(!e)return {date:void 0,time:void 0};let o=new Date(e);return {date:wt(o),time:o.toTimeString().substring(0,5)}},vt=forwardRef(({input:{value:e,onBlur:o,onChange:t,onFocus:r}},n)=>{let[{date:s,time:i},l]=useState(Bp(e)),[a,d]=useState(null),m=useCallback((p,c)=>{p==="date"?(l({date:c,time:i}),c&&i&&t(new Date(`${c}T${i}`).getTime())):(l({time:c,date:s}),c&&s&&t(new Date(`${s}T${c}:00.000`).getTime()));},[s,i,t]);useImperativeHandle(n,()=>({focus:()=>{},blur:()=>{}}));let u=useMemo(()=>({active:a==="date",error:void 0,touched:false}),[a]);return b.createElement(HStack,{w:"100%"},b.createElement(qe,{field:{_type:"date",placeholder:"Date"},input:{value:s,onChange:p=>{m("date",p);},onBlur:()=>{d(null),o();},onFocus:()=>{d("date"),r();}},meta:u}),b.createElement(Ke,{field:{_type:"time",placeholder:"Time"},input:{value:i,onChange:p=>m("time",p.target.value),onBlur:()=>{d(null),o();},onFocus:()=>{d("time"),r();}},meta:u}))});vt.displayName="DateTimeInput";var Je=create(()=>({isPlaying:false,media:null,isLoading:false,fetchingMedia:null,shuffle:false,playlist:null,volume:.5,repeat:false,api:{pause:()=>{},play:()=>{},canGoNext:false,canGoPrev:false,goNext:()=>{},goPrev:()=>{},seek:()=>{},sound:null,trackProgress:new MotionValue(0),setMedia:()=>{},stop:()=>{},loop:()=>{}}})),wn=()=>{let{media:e,playlist:o}=Je();return useMemo(()=>o?o.currentId!==null?o.items.find(t=>t.id===o.currentId)??null:null:e,[o,e])};var vn=({media:e,size:o=50,opacity:t=.8,buttonProps:r})=>{let{id:n}=e??{},{playlist:s}=usePlaylist(),i=Je(p=>p.api),l=Je(p=>p.isPlaying),a=Je(p=>p.isLoading),d=wn(),m=l&&d?.id===n,u=a&&d?.id===n;return b.createElement(IconButton,{boxShadow:"md",p:1,height:`${o}px`,width:`${o}px`,minW:"0",minH:"0",borderRadius:"full",isLoading:u,"aria-label":"play/pause",onClick:p=>{p.stopPropagation(),e&&(d?.id===n?l?i.pause():i.play():s?i.setMedia({playlist:{...s,currentId:n??null}}):i.setMedia({media:e}));},style:{background:"#eee"},...r,icon:b.createElement(Center,{borderRadius:"full",height:`${o}px`,width:`${o}px`},b.createElement(Image,{opacity:m?t:0,width:"100%",transition:"all 0.2s ease-in-out",src:"/svg/pause.svg",filter:"invert(100%) drop-shadow(0 0 4px black)",transform:`scale(${m?.8:1})`}),b.createElement(Image,{position:"absolute",width:"100%",opacity:m?0:t,transition:"all 0.2s ease-in-out",filter:"invert(100%) drop-shadow(0 0 3px black)",src:"/svg/play.svg",transform:`scale(${m?1:.8})`}))})};var Qp=e=>{if(!e.accept)return;let o=[];return e.accept.includes("image")&&o.push("image/jpg","image/jpeg","image/png","image/svg","image/gif"),e.accept.includes("pdf")&&o.push("application/pdf"),e.accept.includes("audio")&&o.push("audio/mp3","audio/wav","audio/x-wav","audio/webm","audio/ogg"),o.join(",")},qp=({hasUpload:e,value:o,noLabel:t})=>{let r=useMemo(()=>({id:generateId(),title:o.filename||"Uploaded file",artistName:"",artistId:"",storageDir:"",producerId:"",songwriterId:""}),[o]);return b.createElement(VStack,null,b.createElement(HStack,{spacing:4},b.createElement(vn,{withThumbnail:true,media:r}),e?b.createElement(IconButton,{w:"40px",h:"40px",p:2,borderRadius:"full",boxShadow:"0 0 4px black","aria-label":"upload",icon:b.createElement(Image,{filter:"invert(100%)",src:"/svg/upload.svg",opacity:.8})}):null),!t&&o.filename?b.createElement(Text,{fontSize:"md"},o.filename||"Uploaded file"):null)},Kp=({value:e,options:o,hasUpload:t,loading:r})=>{let[n,s]=useState(false),{url:i,loading:l}=useObjectUrl(e),[a,d]=useState({width:0,height:0}),{shape:m,placeholder:u,objectFit:p,withFullView:c,background:f}=o??{},{src:g,opacity:h,scale:y}=u??{},x=useImageSize(o,a),{width:v,height:S}=x??{},w=useMemo(()=>n?i?1:h??.8:0,[n,i,h]),F=useMemo(()=>i?{objectFit:p??(n&&m?"cover":"contain"),onLoad:M=>{s(true),d({width:M.currentTarget.naturalWidth,height:M.currentTarget.naturalHeight});}}:{width:x?`${x.width*(y??.9)}px`:"auto",height:x?`${x.height*(y??.9)}px`:"80px"},[i,x,y,n,m,p]),D=!!r||l,A=typeof v=="number"?`${v}px`:"auto",B=typeof S=="number"?`${S}px`:"100px";return b.createElement(qr,{width:A,height:B,withFullView:!t||c,overflow:"hidden",borderRadius:m==="circle"?"full":4,boxShadow:m?"1px 1px 3px #00000066":"none",opacity:w,background:f,transition:"opacity 333ms ease",loadingOverride:D,imageProps:F,src:i??g})},Jp={txt:"/icons/description.svg",pdf:"/icons/pdf.svg",zip:"/icons/zip.svg","7z":"/icons/zip.svg",rar:"/icons/zip.svg"},Zp=({value:e})=>{let o=useMemo(()=>{if(!e)return "";let n=e.filename.split(".");return n[n.length-1]},[e]),t=Jp[o],r=useColorModeValue("invert(0)","invert(1)");return t?b.createElement(Image,{filter:o!=="pdf"?r:"none",h:"24px",src:t}):null},Rp=({value:e,noLabel:o,imageOptions:t,loading:r,hasUpload:n})=>{switch(useMemo(()=>e.type?.split("/")?.[0],[e])){case "image":return b.createElement(Kp,{hasUpload:n,loading:r,options:t,value:e});case "audio":return b.createElement(qp,{noLabel:o,value:e,hasUpload:n});case "pdf":return b.createElement(Image,{src:"/icons/pdf.svg"});default:return b.createElement(Flex,{gap:2},b.createElement(Zp,{value:e}),b.createElement(Text,null,e.filename))}},ed=({hasUpload:e,imageOptions:o})=>{let t=useImageSize(o),{shape:r,placeholder:n}=o??{},{src:s,scale:i,opacity:l}=n??{},{width:a,height:d}=t??{},m=useColorModeValue("invert(0)","invert(1)"),u=useColorModeValue("whiteAlpha.500","whiteAlpha.100"),p=G(),c=o?b.createElement(Center,{height:r?`${d}px`:"auto",width:r?`${a}px`:"auto",bg:r?u:"transparent",borderRadius:r==="circle"?"full":4,overflow:"hidden",boxShadow:r?"1px 1px 4px #00000055":"none"},b.createElement(Image,{filter:m,opacity:l,height:typeof d=="number"?`${d*(i??.6)}px`:"50px",src:s??"/icons/image.svg"})):b.createElement(Text,{border:"1px dashed",borderColor:p,p:3,fontSize:"sm",textAlign:"center",w:"100%",opacity:.8},e?"Click to upload or drop file here":"No file uploaded");return b.createElement(Center,{width:typeof a=="number"?`${a}px`:"auto",height:typeof d=="number"?`${d}px`:"auto"},c)},Lo=({value:e,hasUpload:o,noLabel:t,loading:r,imageOptions:n})=>{let{storagePath:s,dataUrl:i}=e??{},l=useMemo(()=>!i&&!s,[i,s]);return !e||l?b.createElement(ed,{hasUpload:o,imageOptions:n}):b.createElement(Rp,{loading:r,imageOptions:n,noLabel:t,hasUpload:o,value:e})},St=forwardRef(({input:{value:e,onChange:o},field:t},r)=>{let{imageOptions:n}=t||{},s=useRef(null),i=useCallback(d=>{let m=d.target.files?.[0];m&&(e?.dataUrl&&URL.revokeObjectURL(e.dataUrl),o({...e,dataUrl:URL.createObjectURL(m),type:m.type,filename:m.name}));},[o,e]);useImperativeHandle(r,()=>({focus:()=>{s.current?.click();},blur:()=>{s.current?.blur();}}));let l=useMemo(()=>t.accept?.length===1&&t.accept[0]==="image",[t]),a=useMemo(()=>l||e?.type?.startsWith("image/")||e?.type?.startsWith("video/")?{height:120,...n,objectFit:"contain"}:void 0,[n,l,e]);return b.createElement(Center,{flexFlow:"column",position:"relative",cursor:"pointer",onClick:()=>s.current?.click(),width:"100%"},b.createElement(Text,{fontSize:"sm",opacity:.8,mb:1},t.placeholder),b.createElement(Center,{width:"100%",position:"relative",p:2,overflow:"hidden"},b.createElement(Lo,{hasUpload:true,imageOptions:a,value:e}),b.createElement("input",{onChange:i,ref:s,accept:Qp(t),type:"file",style:{position:"absolute",pointerEvents:"none",height:.1,width:.1,opacity:0}})))});St.displayName="FileComponent";var Y={input:{width:"100%",fontSize:"16px",outline:"none"},inputXSmall:{padding:"4px 6px",borderRadius:"3px"},inputSmall:{padding:"6px 9px",borderRadius:"4px"},inputMedium:{padding:"8px 12px",borderRadius:"6px"},inputLarge:{padding:"10px 14px",borderRadius:"8px"},inputTextSmall:{fontSize:"14px"},inputTextMedium:{fontSize:"16px"},inputTextLarge:{fontSize:"18px"},buttonContainer:{display:"flex",flexDirection:"row",alignItems:"center"},buttonContainerSmall:{gap:"6px"},buttonContainerMedium:{gap:"8px"},buttonContainerLarge:{gap:"10px"}},nd={sm:16,md:20,lg:24},id={sm:12,md:14,lg:16},sd={sm:Y.inputSmall,md:Y.inputMedium,lg:Y.inputLarge},ld={sm:Y.inputXSmall,md:Y.inputSmall,lg:Y.inputMedium},ad={sm:Y.inputTextSmall,md:Y.inputTextMedium,lg:Y.inputTextLarge},pd={sm:Y.buttonContainerSmall,md:Y.buttonContainerMedium,lg:Y.buttonContainerLarge},K=(e,o,t="md")=>{let r=useBackgroundColor(150),n=useMemo(()=>e?"transparent":r,[e,r]),s=useTextColor(),i=o??t;return {text:{...ad[i],color:s},container:{...Y.input,...e?ld[i]:sd[i],backgroundColor:n},size:i,iconSize:nd[i],clearButtonSize:id[i],buttonContainer:{...Y.buttonContainer,...pd[i]}}};var It=(e,o)=>t=>{let{renderOption:r}=e;return typeof r=="function"?b.createElement(r,{...t}):b.createElement(Text,{style:o},t.option.label)},Tn=forwardRef(({field:e,input:o,inEditable:t,formSize:r},n)=>{let{options:s,renderOption:i}=e,{onChange:l,value:a,onFocus:d,onBlur:m}=o,{text:u,size:p}=K(t,e.size,r),{colorMode:c}=useColorMode();useImperativeHandle(n,()=>({focus:()=>{d();},blur:()=>{m();}}));let f=useMemo(()=>It(e,u),[e,u]),g=b.createElement(Flex,{w:"100%",flexFlow:"row wrap"},s.map(h=>b.createElement(Box,{key:h.value,p:.5},b.createElement(Button,{w:"100%",minH:0,size:"xs",p:0,opacity:a?.includes(h.value)?1:.7,variant:"unstyled",onClick:y=>{y.stopPropagation(),l(a?.includes(h.value)?a.filter(x=>x!==h.value):[...a??[],h.value]);},_hover:{opacity:.8}},b.createElement(f,{value:h.value,size:p,option:h,colorMode:c,isSelected:true})))));return t?b.createElement(Flex,{py:.5,flexFlow:"column",w:"100%"},b.createElement(Text,{lineHeight:1,px:2,opacity:.8,fontSize:"sm",fontWeight:600},e.placeholder),g):g});var _e=({children:e,style:o})=>b.createElement(Flex,{width:"100%",borderRadius:4,style:o},e);var Pt=forwardRef(({input:{onChange:e,value:o,...t},field:r,formSize:n,prefix:s,inEditable:i,...l},a)=>{let{type:d,defaultValue:m,placeholder:u,size:p}=r,c=useColorModeValue("number-input","number-input-dark"),{container:f,text:g}=K(i,p,n),h=vo(a),[y,x]=useState(""),v=typeof o=="number"&&!Number.isNaN(o)?`${o}${y}`:"",S=d==="slider"?b.createElement(Fo,{label:u,onChange:e,value:o,defaultValue:m}):b.createElement(vd,{className:c,placeholder:r.placeholder,decimalsLimit:r.precision,allowDecimals:!!r.precision,prefix:s,ref:h,onValueChange:(w,F,D)=>{w?.endsWith(".")?x("."):w?.includes(".")&&w?.endsWith("0")?x("0"):x(""),e(D?.float);},value:v,...l,style:{background:"none",resize:"none",fontFamily:"Encode Sans",boxSizing:"border-box",opacity:o?1:.7,width:"100%",borderRadius:"4px",border:"none",outline:"none",...g,...l.style},...t});return b.createElement(_e,{style:f},S)}),Fd=({field:e,...o},t)=>{let r=useRef(null);return useImperativeHandle(t,()=>({focus:()=>{r.current?.focus();},blur:()=>{r.current?.blur();}})),b.createElement(Pt,{prefix:"$",field:{...e,_type:"number"},...o})},Mn=forwardRef(Fd);var Bn=({value:e,field:o})=>{let t=useMemo(()=>{if(e===""||e===void 0||e===null)return 1;switch(o._type){case "text":case "number":case "select":case "date":case "time":case "datetime":return -1;default:return 1}},[e,o]);return b.createElement(Flex,{transition:"top 300ms",top:t,position:"absolute",right:3},b.createElement(Text,{fontSize:"xs",opacity:.6},"OPTIONAL"))};var zn=forwardRef(({field:e,input:o,meta:t,inEditable:r,formSize:n},s)=>{let{placeholder:i,options:l,renderOption:a}=e,{onChange:d,value:m,onFocus:u,onBlur:p}=o,{text:c,size:f,container:g}=K(r,e.size,n),{active:h}=t,y=useMemo(()=>m&&l.find(F=>F.value===m),[m,l]),{colorMode:x}=useColorMode();useImperativeHandle(s,()=>({focus:()=>{u();},blur:()=>{p();}}));let v=useBackgroundColor(150),w=a??(F=>b.createElement(Text,{style:c},F.option.label));return b.createElement(Popover,{strategy:"fixed",placement:"bottom",matchWidth:true,isOpen:h,onClose:p},b.createElement(PopoverTrigger,null,b.createElement(Button,{w:"100%",onClick:F=>{F.stopPropagation(),u();},variant:"unstyled",position:"relative"},b.createElement(_e,{style:g},y?b.createElement(w,{size:f,value:y.value,option:y,colorMode:x,isSelected:true}):b.createElement(Text,{fontWeight:400,style:c,opacity:.6},i)))),b.createElement(PopoverContent,{w:"100%",overflowY:"auto",maxH:"300px",bg:v,border:"none",boxShadow:"0 0 8px rgba(0, 0, 0, 0.3)"},b.createElement(PopoverBody,{p:0},l.map(F=>b.createElement(Button,{key:F.value,w:"100%",variant:"unstyled",onClick:D=>{D.stopPropagation(),d(F.value),p();},display:"flex",justifyContent:"flex-start",alignItems:"center",px:3,_hover:{bg:"blackAlpha.100"},_dark:{_hover:{bg:"whiteAlpha.100"}}},b.createElement(w,{value:F.value,option:F,size:f,colorMode:x,isSelected:F.value===m}))))))});var qd="/icons/facebook.svg",Kd="/icons/instagram.svg",Jd="/icons/soundcloud.svg",Zd="/icons/twitter.svg",Rd="/icons/youtube.svg",eu={facebook:qd,instagram:Kd,twitter:Zd,youtube:Rd,soundcloud:Jd},Ze=({site:e,value:o,onChange:t})=>{let{handle:r,error:n}=useMemo(()=>{try{return {handle:getHandle(e,o)}}catch(i){return {error:i?.message??"Error parsing handle"}}},[o,e]),s=useMemo(()=>r?`${e.toUpperCase()}: ${r}`:e.toUpperCase(),[e,r]);return b.createElement(Popover,{trigger:"hover"},b.createElement(PopoverTrigger,null,b.createElement(Center,{opacity:r?1:.6,borderRadius:"full",width:"34px",height:"34px"},b.createElement(Image,{cursor:"pointer",filter:`grayscale(${r?0:100}%)`,height:"24px",width:"24px",objectFit:"contain",src:eu[e]}))),b.createElement(PopoverContent,{w:"auto"},b.createElement(PopoverBody,{overflow:"hidden",borderRadius:4,p:0,w:"auto"},b.createElement(VStack,{spacing:0,p:2,w:"300px",align:"flex-start"},b.createElement(Text,{fontSize:"md"},s),b.createElement(Collapse,{in:!!n,style:{width:"100%"}},b.createElement(Text,{px:1,bg:"red.500",fontSize:"sm",color:"white"},n)),b.createElement(Input,{onChange:i=>t(i.target.value),placeholder:"Handle or URL",width:"100%",value:o,size:"md"})))))},Mt=forwardRef((e,o)=>{let{input:{value:t,onChange:r},field:{sites:n}}=e,s=useCallback((i,l)=>{let{[i]:a,...d}=t??{};!l&&Object.keys(d).length===0&&r({target:{value:void 0}}),l||r(d),r({...d,[i]:l});},[r,t]);return useImperativeHandle(o,()=>({blur:()=>{},focus:()=>{}})),b.createElement(VStack,{w:"100%",p:1},b.createElement(VStack,{borderRadius:4,p:2,spacing:0,w:"100%"},b.createElement(Text,{fontSize:"md"},"Links"),b.createElement(HStack,null,!n||n.facebook?b.createElement(Ze,{onChange:i=>s("facebook",i),site:"facebook",value:t?.facebook}):null,!n||n.instagram?b.createElement(Ze,{onChange:i=>s("instagram",i),site:"instagram",value:t?.instagram}):null,!n||n.twitter?b.createElement(Ze,{onChange:i=>s("twitter",i),site:"twitter",value:t?.twitter}):null,!n||n.youtube?b.createElement(Ze,{onChange:i=>s("youtube",i),site:"youtube",value:t?.youtube}):null,!n||n.soundcloud?b.createElement(Ze,{onChange:i=>s("soundcloud",i),site:"soundcloud",value:t?.soundcloud}):null)))});Mt.displayName="SocialMediaComponent";var Lt=forwardRef(({input:e,field:o,inEditable:t},r)=>{let n=useTextColor(),s=useRef(null);return useImperativeHandle(r,()=>({focus:()=>{s.current?.focus();},blur:()=>{s.current?.blur();}})),b.createElement(su,{placeholder:o.placeholder,minRows:2,maxRows:5,ref:s,style:{resize:"none",width:"100%",color:n,background:"none",fontFamily:"fonts.body",boxSizing:"border-box",borderRadius:"4px",border:"none",outline:"none"},...e})});Lt.displayName="TextAreaComponent";var Bt=forwardRef(({input:e,inEditable:o,meta:t,field:r,formSize:n},s)=>{let{placeholder:i,type:l}=r,[a,d]=useState(l==="password"),{text:m,container:u}=K(o,r.size,n),{value:p}=e,c=useRef(null);useImperativeHandle(s,()=>({focus:()=>{c.current?.focus();},blur:()=>{c.current?.blur();}}));let f=l==="textarea"?b.createElement(Lt,{inEditable:o,field:r,input:e,meta:t}):b.createElement(Input,{ref:c,border:"none",_dark:{border:"none"},borderRadius:0,background:"transparent",_focus:{border:"none",boxShadow:"none"},py:0,px:0,height:"auto",outline:"none",type:a?"password":"text",placeholder:i,style:m,...e,onChange:g=>{e.onChange({target:{value:g.target.value}});},value:p??""});return b.createElement(_e,{style:u},f,l==="password"&&b.createElement(IconButton,{position:"absolute",right:2,onClick:()=>d(!a),variant:"ghost",icon:a?b.createElement(ViewIcon,null):b.createElement(ViewOffIcon,null),"aria-label":a?"show":"hide",title:a?"Show":"Hide",size:"xs"}))});Bt.displayName="TextComponent";var bu={text:Bt,file:St,boolean:mn,select:zn,multipleSelect:Tn,currency:Mn,number:Pt,date:qe,datetime:vt,time:Ke,socialMedia:Mt,color:xn},yu=(e,o)=>{let{field:t,meta:{error:r,active:n,touched:s},input:i,inEditable:l}=e,{value:a}=i,d=useMemo(()=>r&&s?"#ff7777":n?"rgba(0,0,0,0.7)":"rgba(0,0,0,0.3)",[r,n,s]),{_type:m,optional:u,label:p}=t,c=useMemo(()=>m==="multipleSelect"||!!a&&m!=="file"&&m!=="boolean",[a,m]),f=useMemo(()=>{if(l)return {};switch(m){case "text":case "number":case "currency":case "select":return {boxShadow:`0 0 7px ${d}`,transition:"all 300ms"};default:return {}}},[m,d,l]),g=useMemo(()=>bu[m],[m]),h=useMemo(()=>l?0:r&&s?6:2,[l,r,s]);return b.createElement(VStack,{position:"relative",align:"flex-start",width:"100%",py:l?0:1,px:1,spacing:0,pb:h,transition:"all 500ms",pt:c&&!l?5:0},p&&!l?typeof p=="string"?b.createElement(Text,{color:"gray.800",fontSize:"sm",px:2},p):b.createElement(p,null):null,b.createElement(Flex,{width:"100%",borderRadius:4,overflow:"hidden",...f},b.createElement(g,{ref:o,...e})),l?null:b.createElement(b.Fragment,null,b.createElement(Text,{opacity:r&&s?1:0,transition:`opacity 500ms ease ${r&&s?250:0}ms`,position:"absolute",bottom:"0px",fontSize:"sm",px:1,pointerEvents:"none",color:"red.600"},r),b.createElement(Text,{opacity:c?1:0,transition:`opacity 500ms ease ${c?250:0}ms`,position:"absolute",top:"-5px",pointerEvents:"none",fontSize:"sm",fontFamily:"fonts.heading",px:1,color:"blackAlpha.600",_dark:{color:"whiteAlpha.600"}},t.placeholder||"")),u&&!l?b.createElement(Bn,{field:t,value:a}):null)},Ao=forwardRef(yu);var Fu=({field:e,name:o},t)=>{let{control:r,getOnChange:n,meta:s,onFocus:i,onBlur:l}=useField(o,e);return b.createElement(Controller,{control:r,name:o,render:({field:{name:a,ref:d,onBlur:m,...u}})=>b.createElement(Ao,{ref:t,field:e,input:{...u,onFocus:i,onBlur:()=>{l(),m();},onChange:n(u.onChange)},meta:s})})},Vn=forwardRef(Fu);var Oo=({uploads:e})=>{let o=useMemo(()=>Object.values(e),[e]);return b.createElement(TransitionGroup,{component:Flex,width:"100%",flexFlow:"column"},o.map(t=>b.createElement(ee,{key:t.label},b.createElement(Center,{px:2,height:"26px",position:"relative",w:"100%",flexDirection:"column"},b.createElement(Progress,{borderRadius:"full",value:t.percent*100,mx:2,my:1,size:"md",height:"100%",width:"100%"}),b.createElement(Text,{fontFamily:"fonts.heading",textShadow:"1px 1px 3px #000000aa",color:"white",position:"absolute",fontSize:"sm",fontWeight:500},t.label.toUpperCase())))))};var Vu=({onBack:e,children:o})=>b.createElement(Button,{flex:1,transition:"all 500ms",onClick:e,variant:"outline",border:"1px solid #cdcdcd",color:"#777",ml:"auto"},o),Hu=({onSubmitClick:e,submitting:o,children:t,filter:r,opacity:n})=>b.createElement(Button,{isLoading:o,filter:r,flex:1,transition:"all 500ms",opacity:n,onClick:()=>{e();},ml:"auto",variant:"solid"},t),_u=()=>{let{formError:e}=useChempoForm();return b.createElement(Collapse,{in:!!e},b.createElement(Text,{color:"red"},e??""))},Wn=({renderFooter:e,...o})=>{let{uploads:t,onBack:r,buttonText:n,onSubmit:s}=o,{isSubmitting:i,isValid:l}=useFormState(),a=useBorderColor();return b.createElement(Flex,{w:"100%",flexFlow:"column"},b.createElement(Collapse,{endingHeight:5,style:{width:"100%"},in:i},b.createElement(Progress,{w:"100%",h:"5px",isIndeterminate:true})),b.createElement(Oo,{uploads:t}),b.createElement(_u,null),e?b.createElement(e,{...o}):b.createElement(HStack,{py:2,borderTop:"1px solid",borderColor:a,px:3,w:"100%"},r?b.createElement(Vu,{onBack:r},"Cancel"):null,b.createElement(Hu,{size:"sm",filter:`grayscale(${l?0:100}%)`,opacity:l?1:.5,onSubmitClick:s,submitting:i},n)))};var Nn=({field:e,value:o,noLabel:t,style:r})=>{let{imageOptions:n,placeholder:s}=e,i=useMemo(()=>({height:150,...n}),[n]);return b.createElement(Flex,{flexFlow:o?"column":"row",style:r},t?null:b.createElement(Text,{pr:2,opacity:.7,fontWeight:600},s),o?b.createElement(ee,null,b.createElement(Box,{p:1},b.createElement(Lo,{imageOptions:i,value:o}))):b.createElement(Text,{opacity:.7},"None"))};var Un=({field:e,value:o,noLabel:t,style:r})=>{let{placeholder:n,options:s}=e,{size:i,text:l}=K(void 0,e.size),a=useMemo(()=>s.filter(u=>o?.includes(u.value)),[o,s]),d=useMemo(()=>It(e,l),[e,l]),{colorMode:m}=useColorMode();return b.createElement(Flex,{maxW:"100%",flexFlow:"row wrap",align:"center",style:r},t?null:b.createElement(Text,{pr:2,opacity:.7,fontWeight:600},n),a.length?a.map(u=>b.createElement(Box,{key:u.value,p:.5},b.createElement(d,{value:u.value,option:u,colorMode:m,isSelected:true,size:i}))):b.createElement(Text,{opacity:.6},"None"))};var Qu=e=>typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?e.toString():JSON.stringify(e),qu=e=>b.createElement(Text,null,Qu(e)),Yn=({field:e,value:o,noLabel:t,style:r,size:n})=>{let{placeholder:s,renderOption:i}=e,{colorMode:l}=useColorMode(),{size:a}=K(void 0,e.size,n),d=e.options.find(u=>u.value===o);return b.createElement(Flex,{align:"center",style:r},t?null:b.createElement(Text,{pr:2,opacity:.7,fontWeight:600},s),o&&d?b.createElement(i??qu,{value:o,option:d,colorMode:l,isSelected:true,size:a}):b.createElement(Text,null,"None"))};var Ru=({field:e,value:o,noLabel:t,style:r})=>{let{placeholder:n}=e,s=useMemo(()=>{let i=formatField[e._type];return i?i(e,o):o},[o,e]);return b.createElement(Flex,{align:"center",style:r},t?null:b.createElement(Text,{pr:2,opacity:.7,fontWeight:600},n),b.createElement(Text,{opacity:o!=null?1:.6},s??"None"))},ro=({field:e,value:o,noLabel:t,style:r})=>{switch(e._type){case "select":return b.createElement(Yn,{style:r,field:e,value:o,noLabel:t});case "multipleSelect":return b.createElement(Un,{style:r,field:e,value:o,noLabel:t});case "file":return b.createElement(Nn,{style:r,field:e,value:o,noLabel:t});default:return b.createElement(Ru,{style:r,field:e,value:o,noLabel:t})}};var rm=({onChange:e,value:o,field:t,onBlur:r,inEditable:n,onFocus:s,style:i},l)=>{let{inputProps:a,meta:d}=useStandaloneInput(t,o,e,s,r);return b.createElement(Ao,{ref:l,field:t,inEditable:n,style:i,input:a,meta:d})},Qn=forwardRef(rm);var Jn=({value:e,field:o,onSubmit:t,storagePath:r,style:n,onEditClose:s,onEditOpen:i,CustomInput:l,CustomView:a,containerStyle:d,size:m})=>{let{inputRef:u,onChange:p,isLoading:c,uploads:f,editHovered:g,handleEditOpen:h,handleEditClose:y,isEditing:x,value:v,setEditHovered:S,shouldSubmitOnChange:w,submit:F,submitValue:D}=useEditable({value:e,field:o,onSubmit:t,storagePath:r,onEditOpen:i,onEditClose:s});useEffect(()=>{x&&u.current?.focus();},[x,u]);let A=useColorModeValue$1("#00000055","#ffffff55"),B=useCallback(E=>{if(l)return b.createElement(l,{...E});if(!o)throw new Error("Editable component must have a field OR a CustomInput");return b.createElement(Qn,{field:o,...E})},[l,o]),M=useCallback(E=>{if(a)return b.createElement(a,{...E});if(!o)throw new Error("Editable component must have a field OR a CustomView");return b.createElement(ro,{style:n,field:o,value:v,...E})},[a,o,n,v]);return b.createElement(Flex,{borderRadius:4,border:`1px dashed ${g&&!x?A:"transparent"}`,flexFlow:"column",w:"100%",style:d},b.createElement(Flex,{align:"center",px:1,position:"relative",w:"100%"},b.createElement(Flex,{opacity:c?0:1,transition:"all 300ms",mr:1,border:`1px dashed ${x?A:"transparent"}`,flex:1,minW:"0"},x||w?b.createElement(B,{ref:u,value:v,inEditable:true,style:{padding:0,...n},size:m,onChange:w?E=>void D(E):p,inputStyle:n}):b.createElement(M,{inEditable:true,size:m,value:v})),w?null:b.createElement(b.Fragment,null,b.createElement(IconButton,{"aria-label":"Edit",size:"xs",icon:x?b.createElement(CloseIcon,{width:3}):b.createElement(EditIcon,null),onMouseEnter:()=>S(true),onMouseLeave:()=>S(false),onClick:()=>{x?(p(v),y()):h();}}),b.createElement(Flex,{transition:"all 300ms",justify:"flex-end",opacity:x?1:0,overflow:"hidden",w:x?"30px":"0px"},b.createElement(IconButton,{"aria-label":"Edit",size:"xs",bg:palette.cyan.light,_dark:{bg:palette.cyan.light,_hover:{bg:palette.cyan.lighter}},_hover:{bg:palette.cyan.medium},icon:b.createElement(CheckIcon,{filter:"drop-shadow(1px 1px 3px #000000aa)"}),onClick:()=>{F();}}))),b.createElement(ze,{isLoading:c})),b.createElement(Oo,{uploads:f}))};var Mm=e=>o=>{o.destination&&e(o.source.index,o.destination.index);},Lm=({field:e,name:o})=>{let t=useMemo(()=>isField(e.itemField)?"":isListField(e.itemField)?[]:{},[e]),r=useColorModeValue("#efefef","#2b2b2b"),n=G(),{control:s}=useFormContext(),{fields:i,append:l,remove:a,move:d}=useFieldArray({control:s,name:o}),m=useMemo(()=>Mm(d),[d]);return b.createElement(Flex,{overflow:"hidden",gap:2,flexFlow:"column",w:"100%",px:2,py:1},b.createElement(Text,{lineHeight:1,opacity:.7,fontSize:"sm"},e.placeholder),b.createElement(DragDropContext,{onDragEnd:m},b.createElement(Droppable,{droppableId:"droppable"},(u,{draggingFromThisWith:p})=>b.createElement(Flex,{ref:u.innerRef,flexFlow:"column",w:"100%",py:1,borderRadius:4,minH:"30px",align:"flex",...u.droppableProps},i.length?i.map((c,f)=>b.createElement(Draggable,{key:c.id,draggableId:c.id,index:f},({dragHandleProps:g,draggableProps:h,innerRef:y},{isDragging:x})=>b.createElement(Flex,{transition:"all 300ms",boxShadow:`2px 2px 4px #000000${x?"55":"00"}`,borderRadius:4,pt:2,px:2,border:`1px solid ${n}`,bg:`${r}${x?"ff":"00"}`,ref:y,w:"100%",...h},b.createElement(ee,null,b.createElement(Flex,{opacity:p&&!x?.5:1,gap:1,align:"center",w:"100%"},b.createElement(IconButton,{"aria-label":"drag",size:"xs",opacity:.8,variant:"ghost",icon:b.createElement(DragHandleIcon,null),...g}),b.createElement(Box,{minW:"0",flex:1},b.createElement(zt,{name:c.id,field:e.itemField})),b.createElement(IconButton,{"aria-label":"delete",size:"xs",bg:"red.600",color:"white",icon:b.createElement(DeleteIcon,{filter:"drop-shadow(1px 1px 3px #00000088)"}),onClick:v=>{v.stopPropagation(),a(f);}})))))):b.createElement(Text,{fontSize:"sm",opacity:.7,py:1,px:2},"No items"),u.placeholder))),b.createElement(Flex,null,b.createElement(Button,{mr:"auto",width:"auto",size:"xs",onClick:()=>l(t)},"+ NEW")))},zt=({field:e,name:o})=>{let t=useMemo(()=>isField(e)||isListField(e)?[{name:"value",field:e}]:Object.entries(e.children).map(([r,n])=>({name:`${o?`${o}.`:""}${r}`,field:n})),[e,o]);return b.createElement(VStack,{spacing:1,w:"100%"},t.map(r=>{if(isListField(r.field)){let s=b.createElement(Lm,{key:r.name,name:r.name,field:r.field});return r.field.condition?b.createElement(Co,{path:o,condition:r.field.condition,key:r.name},s):s}if(isField(r.field)){let s=b.createElement(Vn,{key:r.name,name:r.name,field:r.field});return r.field.condition?b.createElement(Co,{path:o,condition:r.field.condition,key:r.name},s):s}let n=b.createElement(zt,{key:r.name,name:r.name,field:r.field});return r.field.condition?b.createElement(Co,{path:o,condition:r.field.condition,key:r.name},n):n}))},Bm=({field:e,value:o,path:t})=>{let{placeholder:r}=e,n=G(),s=useGetItemField(e);return b.createElement(Box,{w:"100%",p:1},b.createElement(Ro,{border:`1px solid ${n}`,borderRadius:4,initExpanded:true,header:()=>b.createElement(Text,{py:1},r)},b.createElement(Flex,{flexFlow:"column",bg:"background.200",gap:2,px:2,py:1},o?.length?o.map((i,l)=>b.createElement(Box,{bg:"background.100",key:`${t}.${l}`,border:`1px solid ${n}`,borderRadius:3},b.createElement(Zn,{path:`${t}.${l}`,field:s(l),value:i}))):b.createElement(Text,{fontSize:"sm",opacity:.7,py:1,px:2},"No items"))))},Zn=({field:e,value:o,path:t,storagePath:r})=>{let{updateField:n}=useDataView();return isField(e)?n?b.createElement(Jn,{storagePath:r,field:e,value:o,onSubmit:s=>n(t,s)}):b.createElement(ro,{field:e,value:o}):isListField(e)?b.createElement(Bm,{path:t,field:e,value:o}):b.createElement(Am,{storagePath:r?`${r}.${t}`:void 0,path:t,field:e})},Am=({field:e,value:o,onClose:t,onDelete:r,onSubmit:n,itemName:s,storagePath:i,path:l=""})=>{let{name:a,children:d}=e,[m,u]=useState(false);return b.createElement(DataViewProvider,{value:o,onSubmit:n},b.createElement(Ro,{alwaysExpanded:true,header:()=>b.createElement(Flex,{align:"center",px:2,w:"100%"},b.createElement(Text,{py:2,fontSize:"lg",fontFamily:"fonts.heading"},a),b.createElement(Flex,{gap:2,align:"center",ml:"auto"},r?b.createElement(Vr,{onDelete:r,itemName:s??"item"}):null,n?b.createElement(IconButton,{size:"sm",borderRadius:"full",minW:0,w:7,h:7,ml:"auto","aria-label":"edit",icon:b.createElement(EditIcon,null),onClick:()=>u(true)}):null,t?b.createElement(IconButton,{size:"sm",borderRadius:"full",minW:0,w:7,h:7,variant:"ghost","aria-label":"close",icon:b.createElement(CloseIcon,{opacity:.8,w:3,h:3}),onClick:t}):null))},m&&n?b.createElement(Dt,{storagePath:i,field:e,value:o,onSubmit:n,onBack:()=>u(false)}):b.createElement(Flex,{flexFlow:"column",px:4,py:2},Object.entries(d).map(([p,c])=>b.createElement(Zn,{storagePath:i?`${i}/${p}`:void 0,path:l?`${l}.${p}`:p,key:p,field:c,value:o?.[p]})))))},Rn=({onSubmit:e,onBack:o,field:t,value:r,buttonText:n="SUBMIT",renderFooter:s,storagePath:i})=>{let l=useMemo(()=>({field:t,value:r,submit:e,storagePath:i}),[t,r,e,i]),{onSubmit:a,uploads:d}=useFormSubmit(l);return b.createElement(Stack,{w:"100%",spacing:3},b.createElement("form",null,b.createElement(Box,{pt:1,px:2,w:"100%"},b.createElement(zt,{name:"",field:t})),b.createElement(Wn,{uploads:d,onSubmit:a,renderFooter:s,onBack:o,buttonText:n})))},Om=({onSubmit:e,field:o,value:t,...r})=>{let n=useMemo(()=>({children:{value:o}}),[o]);return b.createElement(Rn,{field:n,value:{value:t},onSubmit:s=>e(s?.value),...r})},Dt=({field:e,onSubmit:o,...t})=>{let r=isField(e)||isListField(e)?b.createElement(Om,{field:e,onSubmit:o,...t}):b.createElement(Rn,{field:e,onSubmit:o,...t});return b.createElement(ChempoFormProvider,null,r)};var oi=e=>{let o=useMounted();return b.createElement(mr,null,b.createElement(Flex,{overflow:"hidden",flexFlow:"column",h:"100%",w:"100%",opacity:o?1:0,transition:"opacity 300ms",...e}))};var Ne=({data:e,rowIndex:o,columnIndex:t,style:r})=>{let{items:n,onSelect:s,refetch:i,grid:l,numCols:a,colorMode:d}=e||{},{ItemPreview:m}=l,u=o*a+t,p=n[u];return p?b.createElement(Flex,{display:"flex",cursor:"pointer","aria-label":"list-item",onClick:()=>{s(p);},style:r,px:1,py:.25,key:u},b.createElement(m,{index:u,item:p,refetch:i?()=>i(p.id):void 0,colorMode:d})):null};var we=()=>{let{list:e,search:{debounced:o,search:t}}=useDataList(),{data:{isLoading:r}}=usePaginatedList(),n=useMemo(()=>r||o!==t,[r,o,t]),{itemName:s,pluralItemName:i,noItemsMessage:l,searchRequired:a}=e;return b.createElement(Flex,{justify:"center",align:"flex-start",w:"100%",h:"100%"},n?b.createElement(Pe,{text:`Loading ${i??toPlural(s)}`}):b.createElement(Text,{textAlign:"center",flex:1,p:3,fontStyle:"italic",opacity:.7},!o&&a?`Search ${i??toPlural(s)}`:l??`No ${i??toPlural(s)}`))};var ce=e=>typeof e=="function";var Gm=(e,o)=>{if(e.key!==o.key||e.operator!==o.operator)return false;if(arrayOperators.includes(e.operator)){let t=Array.isArray(e.value)?e.value:[e.value];return !(Array.isArray(o.value)?o.value:[o.value]).every(n=>!t.includes(n))}return e.value===o.value},ri=(e,{nativeFilter:o})=>(Array.isArray(o)?o:[o]).every(r=>Gm(r,e));var Ym=(e,o,t)=>{let{rowHeight:r,columnWidth:n}=o;if(typeof r!="number"&&typeof n!="number")throw new Error("Cannot have both variable row height and variable column width");if(typeof n=="function"){let l=Math.floor(t/n(e[0]));return {numRows:Math.ceil(e.length/l),numCols:l}}let s=Math.max(1,Math.floor(t/n));return {numRows:Math.ceil(e.length/s),numCols:s}},Xm=(e,o,t)=>{let{rowHeight:r,columnWidth:n}=o,{numRows:s,numCols:i}=Ym(e,o,t),l=typeof n=="number"?t/i:Array.from({length:i},(u,p)=>e.filter((f,g)=>g%i===p).reduce((f,g)=>{let h=n(g);return Math.max(f,h)},0)),a=typeof r=="number"?r:Array.from({length:s},(u,p)=>e.slice(p*i,(p+1)*i).reduce((f,g)=>{let h=r(g);return Math.max(f,h)},0)),d=Array.isArray(a)?u=>a[u]:a,m=Array.isArray(l)?u=>l[u]:l;return {rowHeight:d,colWidth:m,numCols:i,numRows:s}},Ho=(e,o)=>{let{data:{data:t}}=usePaginatedList();return useMemo(()=>Xm(t,e,o),[t,e,o])};var ai=({height:e,options:o})=>{let{totalCount:t,data:{data:r},refetchItem:n,isItemLoaded:s,goNext:i}=usePaginatedList(),{list:l,onSelectItem:a,mobileLayout:d,query:m}=useDataList(),{width:u}=useFullSize(),{numCols:p,numRows:c,rowHeight:f,colWidth:g}=Ho(o,u),{previewHeight:h,mobile:y}=l,{colorMode:x}=useColorMode(),v=useMemo(()=>({list:l,items:r,mobileLayout:d,grid:o,colorMode:x,numCols:p,onSelect:M=>a(M.id),refetch:n}),[r,l,n,a,d,p,o,x]),S=useRef(null),w=useMemo(()=>d?y?.previewHeight??h:h,[y,h,d]);useEffect(()=>{let M=S.current;M&&(M.resetAfterColumnIndex(0),M.resetAfterRowIndex(0));},[m]);let F=useRef(null);useEffect(()=>{F.current&&F.current.resetloadMoreItemsCache(true);},[t]);let D=useMemo(()=>ce(w),[w]),A=useCallback(({columnIndex:M,rowIndex:E,data:V})=>{let U=E*p+M;return V.items[U]?.id||`${U}`},[p]),B=useCallback(({overscanColumnStartIndex:M,overscanColumnStopIndex:E,overscanRowStartIndex:V,overscanRowStopIndex:U,visibleColumnStartIndex:ge,visibleColumnStopIndex:Be,visibleRowStartIndex:Ae,visibleRowStopIndex:Fe},T)=>{let H=Ae*p+ge,k=Fe*p+Be,I=V*p+M,L=U*p+E;T({overscanStartIndex:I,overscanStopIndex:L,visibleStartIndex:H,visibleStopIndex:k});},[p]);return r.length?D?b.createElement(li,{isItemLoaded:s,ref:F,itemCount:t??0,loadMoreItems:i},({onItemsRendered:M,ref:E})=>b.createElement(VariableSizeGrid,{height:e,width:u,rowCount:c,columnCount:p,rowHeight:f,columnWidth:g,itemData:v,style:{overflowX:"hidden"},itemKey:A,onItemsRendered:V=>B(V,M),ref:V=>{E(V),S.current=V;}},Ne)):b.createElement(li,{isItemLoaded:s,itemCount:t??0,ref:F,loadMoreItems:i},({onItemsRendered:M,ref:E})=>b.createElement(FixedSizeGrid,{height:e,width:u,rowCount:c,columnCount:p,rowHeight:f,columnWidth:g,itemData:v,onItemsRendered:V=>B(V,M),style:{overflowX:"hidden"},ref:V=>{E(V),S.current=null;}},Ne)):b.createElement(we,null)};var Ge=({data:e,index:o,style:t})=>{let{list:r,items:n,onSelect:s,refetch:i,mobileLayout:l,colorMode:a}=e||{},{ItemPreview:d,mobile:m}=r,u=l?m?.ItemPreview??d:d,p=n[o];return p?b.createElement(Flex,{display:"flex",cursor:"pointer","aria-label":"list-item",onClick:()=>{s(n[o]);},style:t,key:o},b.createElement(u,{index:o,item:p,refetch:i?()=>i(p.id):void 0,colorMode:a})):null};var ci=({height:e})=>{let{totalCount:o,data:{data:t},refetchItem:r,isItemLoaded:n,goNext:s}=usePaginatedList(),{list:i,onSelectItem:l,mobileLayout:a,query:d}=useDataList(),{previewHeight:m,mobile:u}=i,{colorMode:p}=useColorMode(),{width:c}=useFullSize(),f=useMemo(()=>({list:i,items:t,mobileLayout:a,colorMode:p,onSelect:S=>l(S.id),refetch:r}),[t,i,r,l,a,p]),g=useRef(null),h=useMemo(()=>a?u?.previewHeight??m:m,[u,m,a]),y=useRef(null);useEffect(()=>{y.current&&y.current.resetloadMoreItemsCache(true);},[o]),useEffect(()=>{let S=g.current;S&&(S.resetAfterRowIndex(0),S.resetAfterColumnIndex(0));},[d]);let x=useCallback(S=>typeof h=="function"?h(t[S]):h,[t,h]),v=useMemo(()=>ce(h),[h]);return t.length?v?b.createElement(li,{ref:y,isItemLoaded:n,itemCount:o??0,loadMoreItems:s},({onItemsRendered:S,ref:w})=>b.createElement(VariableSizeList,{height:e,width:c,itemSize:x,itemCount:o??0,itemData:f,style:{overflowX:"hidden"},itemKey:F=>t[F]?.id||`${F}`,onItemsRendered:F=>{S(F);},ref:w},Ge)):b.createElement(li,{ref:y,isItemLoaded:n,itemCount:o??0,loadMoreItems:s},({onItemsRendered:S,ref:w})=>b.createElement(FixedSizeList,{height:e,width:c,itemSize:h,itemCount:o??0,itemData:f,itemKey:F=>t[F]?.id||`${F}`,style:{overflowX:"hidden"},onItemsRendered:S,ref:w},Ge)):b.createElement(we,null)};var gc=({height:e,options:o})=>{let{list:t,onSelectItem:r,mobileLayout:n,query:s}=useDataList(),{data:{data:i},pageIndex:l}=usePaginatedList(),a=useRef(null),d=useRef(null),{width:m}=useFullSize(),{numCols:u,numRows:p,rowHeight:c,colWidth:f}=Ho(o,m),{colorMode:g}=useColorMode(),h=useMemo(()=>({list:t,items:i,numCols:u,onSelect:x=>r(x.id),mobileLayout:n,colorMode:g,grid:o}),[i,t,r,n,u,o,g]);useEffect(()=>{let x=a.current;x&&(x.resetAfterColumnIndex(0),x.resetAfterRowIndex(0));},[s]),useEffect(()=>{let x=a.current,v=d.current;x&&x.scrollTo({scrollLeft:0,scrollTop:0}),v&&v.scrollTo({scrollLeft:0,scrollTop:0});},[l,s]);let y=useMemo(()=>ce(o.rowHeight)||ce(o.columnWidth),[o]);return i.length?y?b.createElement(VariableSizeGrid,{ref:a,height:e,width:m,rowCount:p,columnCount:u,rowHeight:c,columnWidth:f,itemData:h,style:{overflowX:"hidden"}},Ne):b.createElement(FixedSizeGrid,{height:e,ref:d,width:m,rowCount:p,columnCount:u,rowHeight:c,columnWidth:f,itemData:h,style:{overflowX:"hidden"}},Ne):b.createElement(we,null)},xi=memo(gc);var Sc=({height:e})=>{let{list:o,onSelectItem:t,mobileLayout:r,query:n}=useDataList(),{data:{data:s},pageIndex:i}=usePaginatedList(),{width:l}=useFullSize(),{previewHeight:a,mobile:d}=o,m=useRef(null),u=useRef(null),{colorMode:p}=useColorMode(),c=useMemo(()=>({list:o,colorMode:p,items:s,onSelect:y=>t(y.id),mobileLayout:r}),[s,o,t,r,p]),f=useMemo(()=>r?d?.previewHeight??a:a,[d,a,r]);useEffect(()=>{let y=m.current;y&&y.resetAfterIndex(0);},[n]),useEffect(()=>{let y=m.current,x=u.current;y&&y.scrollTo(0),x&&x.scrollTo(0);},[n,i]);let g=useCallback(y=>typeof f=="function"?f(s[y]):f,[s,f]),h=useMemo(()=>ce(f),[f]);return s.length?h?b.createElement(FixedSizeList,{ref:u,height:e,width:l,itemSize:f,itemCount:s.length,itemData:c,style:{overflowX:"hidden"}},Ge):b.createElement(VariableSizeList,{ref:m,height:e,width:l,itemSize:g,itemCount:s.length,itemData:c,style:{overflowX:"hidden"}},Ge):b.createElement(we,null)},wi=memo(Sc);var Ci=({height:e})=>{let{infiniteScroll:o,gridLayout:t,list:r}=useDataList(),{grid:n}=r;return t&&n?o?b.createElement(ai,{options:n,height:e}):b.createElement(xi,{options:n,height:e}):o?b.createElement(ci,{height:e}):b.createElement(wi,{height:e})};var $o=({children:e,isOpen:o,contentProps:t,...r})=>{let n=useBackgroundColor(100);return b.createElement(Modal,{scrollBehavior:"inside",isCentered:true,isOpen:o,...r},b.createElement(ModalOverlay,null),b.createElement(ModalContent,{position:"relative",overflowY:"auto",bg:n,...t},b.createElement(Box,null,e)))};var Fi=e=>{let{overlayRef:o}=useMobileFrame();return b.createElement(Portal,{containerRef:o},b.createElement(Flex,{justify:"center",align:"center",transition:"opacity 300ms",position:"absolute",left:0,top:0,height:"100%",width:"100%",...e}))};var Vc=({onClick:e})=>b.createElement(Flex,{onClick:e,w:"100%",h:"100%",position:"absolute",bg:"blackAlpha.400",transition:"opacity 300ms"}),Ti=({isOpen:e,onClose:o,children:t,contentProps:r,onContentMounted:n,closeOnOverlayClick:s})=>{let{height:i,width:l}=useMobileFrame(),a=useColorModeValue("gray.100","#454545"),[d,m]=useState(false),[u,p]=useState(false),c=useRef(null),f=useRef(null);return useEffect(()=>(c.current&&(clearTimeout(c.current),c.current=null),f.current&&(clearTimeout(f.current),f.current=null),e?(m(true),f.current=setTimeout(()=>{p(true),n&&n(true);},50)):(p(false),n&&n(false),c.current=setTimeout(()=>{m(false);},300)),()=>{c.current&&(clearTimeout(c.current),c.current=null),f.current&&(clearTimeout(f.current),f.current=null);}),[e,n]),d?b.createElement(Fi,{opacity:u?1:0,pointerEvents:u?"auto":"none"},b.createElement(Vc,{onClick:s!==false?o:void 0}),b.createElement(Flex,{width:`${l-10}px`,maxH:`${i-10}px`,overflowY:"auto",overflowX:"hidden",minH:"100px",bg:a,borderRadius:6,position:"relative",...r},t)):null};var ki=e=>{let o=useScreen(n=>n.isMobile),t=br(),r=useMemo(()=>o||t?Ti:$o,[o,t]);return b.createElement(r,{...e})};var Mi=({field:e})=>{let{list:{baseQuery:o,itemName:t},newItemOpen:r,setNewItemOpen:n}=useDataList(),{adapter:{db:s}}=useBackendBase(),{refetch:i}=usePaginatedList(),l=useCallback(async a=>{await s.createItem(o.collection,a),n(false),i&&i();},[n,i,s,o]);return b.createElement($o,{isOpen:r,onClose:()=>n(false)},b.createElement(Flex,{align:"center",pt:3,px:3,w:"100%"},b.createElement(Text,{pl:1,opacity:.7,fontWeight:600},"NEW ",t.toUpperCase()),b.createElement(IconButton,{size:"sm",borderRadius:"full",ml:"auto",h:7,w:7,minW:0,onClick:()=>n(false),"aria-label":"Close",icon:b.createElement(CloseIcon,{opacity:.8,w:3,h:3})})),b.createElement(Dt,{field:e,onSubmit:l}))};var Ai=({goNext:e,canGoNext:o,mobileLayout:t})=>b.createElement(Button,{opacity:o?1:.6,pointerEvents:o?"auto":"none",borderRadius:"full",onClick:e,"aria-label":"next",variant:"ghost",size:t?"xs":"sm",pl:3,pr:1,gap:1},b.createElement(Text,null,"Next"),b.createElement(ChevronRightIcon,{w:5,h:5})),Oi=({goPrev:e,canGoPrev:o,mobileLayout:t})=>b.createElement(Button,{opacity:o?1:.5,pointerEvents:o?"auto":"none",onClick:e,borderRadius:"full","aria-label":"back",variant:"ghost",pr:3,pl:1,gap:1,size:t?"xs":"sm"},b.createElement(ChevronLeftIcon,{w:5,h:5}),b.createElement(Text,null,"Back")),pf=({progressBg:e,borderColor:o})=>{let{data:{isLoading:t,error:r}}=usePaginatedList();return b.createElement(Box,{position:"absolute",bottom:"100%",w:"100%",left:0},b.createElement(Collapse,{style:{width:"100%"},in:!!r,animateOpacity:true},b.createElement(Box,{borderTopRadius:6,bg:"red.600",maxW:"100%",p:1},b.createElement(Tooltip,{placement:"top",hasArrow:true,label:r?.message??"","aria-label":"error"},b.createElement(Text,{textShadow:"1px 1px 3px #00000077",_dark:{textShadow:"none"},px:1,fontWeight:600,isTruncated:true,maxW:"100%",fontSize:"sm",color:"white"},r?.message)))),b.createElement(ee,{in:t,animateOpacity:true},b.createElement(Flex,{bg:e,borderTop:"1px solid",borderBottom:"1px solid",borderColor:o,w:"100%"},b.createElement(Progress,{borderRadius:0,w:"100%",height:"8px",isIndeterminate:t}))))},df=(e,o,t)=>Math.abs(e-o)<=1?2:e<3?o===0?2:0:e>t-4?o>t-3?2:4:e<o?1:3,jo=28,Uo=24,zi=({index:e,isActive:o,onClick:t,borderColor:r,isLoading:n,mobileLayout:s})=>b.createElement(Button,{key:e,onClick:t,variant:"unstyled",display:"flex",border:"1px solid",borderColor:o?"transparent":r,justifyContent:"center",alignItems:"center",width:`${s?Uo:jo}px`,height:`${s?Uo:jo}px`,fontFamily:"fonts.heading",lineHeight:1,fontWeight:600,minW:"0",bg:o?"accent.400":"transparent",_hover:{bg:o?"accent.500":"whiteAlpha.500"},color:o?"white":r,textShadow:o?"1px 1px 3px #00000088":"none",size:"sm",disabled:n,"aria-label":`Go to page ${e+1}`},e+1),uf=({group:{indicators:e,collapsed:o},mobileLayout:t})=>{let{data:{isLoading:r},goToPage:n}=usePaginatedList(),s=G();return o?b.createElement(Popover,{trigger:"hover",gutter:1,variant:"fixed"},({onClose:i})=>b.createElement(b.Fragment,null,b.createElement(PopoverTrigger,null,b.createElement(IconButton,{variant:"unstyled",width:`${t?Uo:jo}px`,height:`${t?Uo:jo}px`,minW:"0",opacity:.7,_hover:{opacity:1},"aria-label":"more pages",icon:b.createElement(Text,{fontSize:"md",position:"relative",bottom:"2px"},"...")})),b.createElement(PopoverContent,{bg:"background.200",w:"auto",border:"1px solid",borderColor:s,boxShadow:"none"},b.createElement(PopoverBody,{w:"auto",maxW:"166px",p:.5},b.createElement(Flex,{align:"center",justify:"center",flexFlow:"row wrap"},e.map(({index:l,isActive:a})=>b.createElement(Box,{key:`ind-${l}`,m:.5},b.createElement(zi,{mobileLayout:t,index:l,isActive:a,onClick:()=>{n(l),i();},borderColor:s,isLoading:r})))))))):b.createElement(b.Fragment,null,e.map(({index:i,isActive:l})=>b.createElement(zi,{mobileLayout:t,key:i,index:i,isActive:l,onClick:()=>n(i),borderColor:s,isLoading:r})))},mf=()=>{let{pageIndex:e,numPages:o}=usePaginatedList(),{mobileLayout:t}=useDataList(),r=useMemo(()=>{let n=o??0;if(n<=9)return [{indicators:Array.from({length:n},(i,l)=>({index:l,isActive:l===e})),collapsed:false}];let s=Array.from({length:5},(i,l)=>({indicators:[],collapsed:l%2===1}));for(let i=0;i<n;i+=1){let l=df(i,e,n);s[l]||(s[l]={indicators:[],collapsed:l!==2}),s[l].indicators.push({index:i,isActive:i===e});}return s.filter(i=>i.indicators.length).map(i=>({...i,collapsed:i.collapsed&&i.indicators.length>1}))},[o,e]);return b.createElement(Flex,{gap:1,align:"center"},r.map((n,s)=>b.createElement(uf,{mobileLayout:t,key:`group-${s}`,group:n})))},Gt=120,Ei=({onResize:e,flexProps:o,noFooter:t})=>{let r=useColorModeValue("#cdcdcd","#2d3748"),{list:n,mobileLayout:s,infiniteScroll:i,search:{search:l,debounced:a}}=useDataList(),{data:{data:d,isLoading:m},totalCount:u,pageIndex:p,limit:c,numFetched:f,goNext:g,goPrev:h,hasMoreData:y}=usePaginatedList(),{itemName:x,pluralItemName:v,searchRequired:S}=n,{itemsText:w,pageText:F}=useMemo(()=>m&&!i?{itemsText:s?"Loading...":"",pageText:""}:u===null?{itemsText:"Loading...",pageText:""}:u===0&&!m&&l===a?{itemsText:!l&&S?`Search ${v??toPlural(x)}`:`No ${v??toPlural(x)} found`,pageText:""}:{itemsText:`${i?1:(p||0)*c+1} - ${i?f:p*c+d.length} of ${u}`,pageText:`Page ${p+1} of ${c?Math.ceil((u??0)/c):0}`},[u,m,x,v,c,p,l,S,s,a,d,i,f]),D=useMemo(()=>!i&&h,[i,h]),A=useMemo(()=>!i&&g,[i,g]),B=useColorModeValue("#efefef","#212121"),M=useRef(null),E=useCallback(V=>{let U=V.borderBoxSize[0].blockSize,ge=V.borderBoxSize[0].inlineSize;e({height:U,width:ge});},[e]);return pr(M,E),b.createElement(Flex,{ref:M,py:t?0:2,px:t?0:3,borderTop:`1px solid ${r}`,position:"relative",flexFlow:s?"column":"row",gap:s?1:0,w:"100%",...o},t||s&&i?null:b.createElement(Flex,{align:"center",justify:s?"center":"space-between",position:"relative",w:"100%"},D&&!s?b.createElement(Oi,{goPrev:h,canGoPrev:!m&&!!p}):null,b.createElement(Flex,{gap:1,align:"center"},i?null:b.createElement(b.Fragment,null,s?null:b.createElement(Text,{fontFamily:"fonts.heading",whiteSpace:"nowrap",textAlign:"center",w:`${Gt}px`,fontSize:"sm"},F),b.createElement(mf,null)),s?null:b.createElement(Text,{fontFamily:"fonts.heading",textAlign:"center",w:s||i?"auto":`${Gt}px`,whiteSpace:"nowrap",fontSize:"sm"},w)),A&&!s?b.createElement(Ai,{goNext:g,canGoNext:!m&&y}):null),s&&!t?b.createElement(Flex,{gap:2,w:"100%",justify:"space-between",align:"center"},D?b.createElement(Oi,{mobileLayout:true,goPrev:h,canGoPrev:!!p}):null,b.createElement(Text,{fontFamily:"fonts.heading",textAlign:"center",w:s||i?"auto":`${Gt}px`,whiteSpace:"nowrap",fontSize:"sm"},w),A?b.createElement(Ai,{mobileLayout:true,goNext:g,canGoNext:y}):null):null,b.createElement(pf,{progressBg:B,borderColor:r}))};var _i=({filter:e,filters:o,GroupRender:t,toggleFilter:r})=>{let{label:n,Render:s}=e,i=useMemo(()=>o.some(u=>ri(u,e)),[o,e]),{colorMode:l}=useColorMode(),a=G(),d=useColorModeValue("gray.700","gray.100"),m=s??t;return b.createElement(Box,{p:.5},b.createElement(Button,{onClick:()=>r(e),variant:"unstyled",color:i&&!m?"white":d,bg:i&&!m?"accent.400":"transparent",px:m?0:2,py:m?0:1,transition:"all 300ms",border:"none",boxShadow:`0px 0px 1px 1px ${i?"transparent":"#00000033"}`,w:"auto",_dark:{boxShadow:`0px 0px 1px 1px ${i?"transparent":"#ffffff66"}`},h:"auto",minW:"0",minH:"0",alignItems:"center",justifyContent:"center",borderColor:i?"transparent":a,size:"none"},m?b.createElement(m,{active:i,colorMode:l,preset:e}):b.createElement(Text,{textShadow:i?"0 0 3px rgba(0,0,0,0.8)":"none",fontSize:"xs"},n)))},Mf=({group:e,filters:o,toggleFilter:t})=>{let{label:r,filters:n}=e;return b.createElement(Flex,{px:1,flexFlow:"column",w:"100%"},b.createElement(Text,{px:1,opacity:.8,fontSize:"sm",fontWeight:600},r),b.createElement(Flex,{w:"100%",flexFlow:"row wrap"},n.map(s=>b.createElement(_i,{toggleFilter:t,GroupRender:e.RenderFilter,filters:o,key:s.label,filter:s}))))},Xt=()=>{let{query:e,list:o,toggleFilter:t}=useDataList(),r=useScreen(l=>l.isMobile),{filters:n=[]}=e||{},{filterPresets:s}=o,i=G();return s?.length?b.createElement(HStack,{spacing:1},b.createElement(Popover,{placement:"right-start",trigger:r?"click":"hover",strategy:"fixed"},b.createElement(PopoverTrigger,null,b.createElement(IconButton,{size:"sm",variant:"ghost","aria-label":"Filters",icon:b.createElement(Image,{width:"24px",filter:`grayscale(${n.length?0:100}%)`,src:"/icons/tune.svg"})})),b.createElement(Portal,null,b.createElement(PopoverContent,{borderRadius:6,w:"auto"},b.createElement(PopoverBody,{w:"240px",p:0},b.createElement(Flex,{flexFlow:"column",w:"100%"},b.createElement(HStack,{py:1.5,px:2,w:"100%",spacing:1,borderBottom:`1px solid ${i}`},b.createElement(Image,{width:"18px",filter:"grayscale(100%)",src:"/icons/tune.svg"}),b.createElement(Text,{opacity:.8,fontSize:"sm",fontWeight:600},"FILTERS")),b.createElement(Flex,{justify:"center",w:"100%",flexFlow:"row wrap",py:1,px:2},s.map(l=>isFilterGroup(l)?b.createElement(Mf,{toggleFilter:t,filters:n,key:l.label,group:l}):b.createElement(_i,{toggleFilter:t,filters:n,key:l.label,filter:l}))))),b.createElement(PopoverArrow,null),b.createElement(PopoverCloseButton,null))))):null};var Ef=({preset:e})=>{let{setSort:o,query:t}=useDataList(),{sort:r}=t,{label:n,key:s,Render:i}=e,l=useMemo(()=>r?.key===s?r.direction:null,[r,s]),{colorMode:a}=useColorMode(),d=useMemo(()=>l?"white":a==="light"?"gray.500":"gray.400",[l,a]),m=useMemo(()=>r?.direction==="asc"?b.createElement(ArrowUpIcon,{w:4,h:4}):b.createElement(ArrowDownIcon,{w:4,h:4}),[r]);return b.createElement(Button,{size:"xs",variant:"outline",bg:l?"accent.400":"transparent",transition:"all 300ms",textShadow:l?"0 0 2px rgba(0,0,0,0.7)":"none",boxShadow:`0px 0px 1px 1px ${l?"transparent":"#00000033"}`,border:"none",_dark:{boxShadow:`0px 0px 1px 1px ${l?"transparent":"#ffffff66"}`,color:d,textShadow:l?"0 0 2px rgba(0,0,0,0.7)":"none"},"aria-label":n,opacity:l?1:.8,height:6,pl:l?3:2,pr:2,_hover:{opacity:1},gap:0,color:d,onClick:()=>o({direction:l&&r?.direction==="asc"?"desc":"asc",key:s})},i?b.createElement(i,{active:l,colorMode:a,preset:e}):b.createElement(Text,{fontWeight:600,fontSize:"sm",color:d},n),b.createElement(tr,{active:!!l,h:"16px",width:20},m))},qt=()=>{let{list:{sortPresets:e}}=useDataList();return e?b.createElement(HStack,{spacing:2},e.map(o=>b.createElement(Ef,{key:o.label,preset:o}))):null};var ji=()=>{let{list:e,search:{search:o,update:t}}=useDataList(),{searchIcon:r,itemName:n,pluralItemName:s}=e,i=useColorModeValue("invert(0)","invert(1)");return b.createElement(Flex,{p:1,flex:1,minW:"0"},b.createElement(InputGroup,null,b.createElement(InputLeftElement,{pointerEvents:"none"},r?b.createElement(Image,{filter:i,src:r,w:"24px"}):b.createElement(SearchIcon,{w:"24px",opacity:.5})),b.createElement(Input,{bg:"whiteAlpha.700",pl:9,borderRadius:6,_focus:{boxShadow:"none",outline:"none"},border:"none",_dark:{bg:"blackAlpha.400",color:"#cdcdcd",_placeholder:{color:"#ababab"},border:"none"},value:o,placeholder:`Search for ${s??toPlural(n)}`,onChange:l=>t(l.target.value)})))},Ui=({refetch:e})=>{let{list:o,setNewItemOpen:t}=useDataList(),r=useAuth(),{itemName:n,field:s,access:i}=o,l=useMemo(()=>getHasAccess(r,i?.create,null),[i,r]);return b.createElement(Flex,{gap:2,ml:"auto",align:"center"},e?b.createElement(Tooltip,{placement:"left",hasArrow:true,label:"Refresh","aria-label":"Refresh"},b.createElement(IconButton,{size:"xs",icon:b.createElement(RepeatIcon,null),"aria-label":"Refresh",onClick:e})):null,s&&l?b.createElement(Tooltip,{placement:"left",hasArrow:true,label:`Create new ${n}`,"aria-label":`Create new ${n}`},b.createElement(IconButton,{size:"xs",icon:b.createElement(AddIcon,null),"aria-label":`Create new ${n}`,onClick:()=>t(true)})):null)},Kf=[{id:"grid",label:"Grid View",Render:e=>b.createElement(Image,{w:5,opacity:e?1:.7,src:"/icons/grid_view.svg"})},{id:"list",label:"List View",Render:e=>b.createElement(Image,{w:6,opacity:e?1:.7,src:"/icons/list.svg"})}],Yi=()=>{let{toggleGridLayout:e,gridLayout:o}=useDataList();return e?b.createElement(Hr,{onChange:e,options:Kf,value:o?"grid":"list"}):null},Qi=({onResize:e,refetch:o,boxProps:t})=>{let{list:r,mobileLayout:n,toggleGridLayout:s}=useDataList(),{searchPath:i,sortPresets:l,filterPresets:a,Header:d}=r,m=G(),u=useRef(null),p=useCallback(f=>{e({height:f.contentRect.height,width:f.contentRect.width});},[e]),c=useMemo(()=>!!Object.keys(i??{}).length,[i]);return pr(u,p),b.createElement(Box,{ref:u,bg:"background.200",borderBottom:`1px solid ${m}`,w:"100%",...t},b.createElement(Flex,{px:2,align:"center",w:"100%"},l?.length||a?.length||c?b.createElement(Flex,{w:"100%",flexFlow:n?"column":"row"},n&&!d?null:b.createElement(Flex,{flex:1,px:2,py:n?0:1,gap:1,align:"center"},n?null:b.createElement(Flex,{flex:1,minW:"0",align:"center",gap:2},s?b.createElement(Yi,null):null,b.createElement(Xt,null),b.createElement(qt,null),c?b.createElement(ji,null):null),b.createElement(Flex,{align:"center",minW:"0",gap:3,ml:"auto"},d?b.createElement(Box,{minW:"0",flex:1},b.createElement(d,null)):null,n?null:b.createElement(Ui,{refetch:o}))),c&&n?b.createElement(ji,null):null,n&&(l?.length||a?.length)?b.createElement(Flex,{pl:1,py:1,gap:1.5,align:"center",w:"100%"},s?b.createElement(Yi,null):null,b.createElement(Xt,null),b.createElement(qt,null),b.createElement(Ui,{refetch:o})):null):null))};var Ki=()=>{let{selectedItemId:e,deselectItem:o,list:t}=useDataList(),{ItemView:r,itemName:n}=t||{},[s,i]=useState({x:0,y:0}),{data:{data:l}}=usePaginatedList(),a=useMemo(()=>l.find(c=>c.id===e)??null,[l,e]),{colorMode:d}=useColorMode(),m=useColorModeValue("red.600","red.300"),[u,p]=useState(null);return useEffect(()=>{a&&p(a);},[a]),b.createElement(ki,{contentProps:{p:0,transition:"all 300ms",transform:`translate(${s.x}px, ${s.y}px)`},scrollBehavior:"inside",onClose:o,isOpen:!!r&&!!e},r&&u?b.createElement(r,{item:u,colorMode:d,clearContentOffset:()=>i({x:0,y:0}),updateContentOffset:(c,f)=>i({x:c,y:f})}):b.createElement(Text,{color:m,p:4},"Error displaying ",n))};var Ri=({modals:e,noFooter:o,headerProps:t,footerProps:r})=>{let{data:{isLoading:n,data:s}}=usePaginatedList(),{list:i}=useDataList(),{height:l}=useFullSize(),[a,d]=useState(0),[m,u]=useState(0),p=useMemo(()=>l-a-m,[l,a,m]),c=useCallback(y=>{d(y.height);},[]),f=useCallback(y=>{u(y.height);},[]),{ItemView:g,field:h}=i;return b.createElement(b.Fragment,null,b.createElement(Qi,{boxProps:t,onResize:c}),b.createElement(Box,{h:`${p}px`,position:"relative",w:"100%"},b.createElement(Ci,{height:p}),o?b.createElement(ze,{isLoading:!s.length&&n}):null),b.createElement(Ei,{noFooter:o,flexProps:r,onResize:f}),e??null,g?b.createElement(Ki,null):null,h?b.createElement(Mi,{field:h}):null)};var sP=({list:e,flexProps:o,infiniteScroll:t,...r})=>{let{adapter:{db:n}}=useBackendBase(),{baseQuery:s}=e,i=useDataListData(e,t),l=usePaginatedQuery(n,s,!!t);return b.createElement(PaginatedListProvider,{state:i,data:l},b.createElement(oi,{...o},b.createElement(Ri,{...r})))};var pP=({value:e,duration:o=30})=>{let t=useRef(null),r=useRef(e),n=useRef(null);return useEffect(()=>(n.current=setInterval(()=>{if(t.current){if(r.current===e&&n.current)return clearInterval(n.current);r.current<e?(r.current+=1,t.current.innerText=r.current.toString()):r.current>e&&(r.current-=1,t.current.innerText=r.current.toString());}return ()=>{}},o),()=>{n.current&&clearInterval(n.current);}),[e,o]),b.createElement("span",{ref:t},e)};var w0=()=>{let{colorMode:e,toggleColorMode:o}=useColorMode(),t=useColorModeValue("gray.200","whiteAlpha.200"),r=useColorModeValue("blackAlpha.700","whiteAlpha.800"),n=useColorModeValue("gray.300","whiteAlpha.300"),s=useColorModeValue("gray.800","whiteAlpha.800");return b.createElement(IconButton,{"aria-label":"Toggle dark mode",bg:t,color:r,borderRadius:"full",_hover:{bg:n,color:s},w:8,h:8,minW:0,icon:e==="light"?b.createElement(SunIcon,{w:4,h:4}):b.createElement(MoonIcon,{w:4,h:4,filter:"drop-shadow(1px 1px 2px #000000aa)"}),onClick:o,variant:"ghost"})},gP=e=>b.createElement(Flex,{position:"absolute",bottom:3,right:3,...e},b.createElement(w0,null));var {definePartsStyle:I0,defineMultiStyleConfig:P0}=createMultiStyleConfigHelpers(switchAnatomy.keys),T0=I0({track:{_focusVisible:{boxShadow:"none"}}}),k0=P0({baseStyle:T0}),Ko=cssVar("popper-arrow-bg"),es="Encode Sans",os="Noto Sans",CP=extendTheme({semanticTokens:{colors:{background:{50:{default:"white",_dark:palette.gray.darker},100:{default:"gray.100",_dark:palette.gray.dark},200:{default:"#efefef",_dark:palette.gray.medium}},accent:{50:{default:"blue.50",_dark:"blue.900"},100:{default:"blue.100",_dark:"blue.800"},200:{default:"blue.200",_dark:"blue.700"},300:{default:"blue.300",_dark:"blue.600"},400:{default:"blue.400",_dark:"blue.500"},500:{default:"blue.500",_dark:"blue.400"},600:{default:"blue.600",_dark:"blue.300"},700:{default:"blue.700",_dark:"blue.200"},800:{default:"blue.800",_dark:"blue.100"},900:{default:"blue.900",_dark:"blue.50"}},error:{default:"red.500",_dark:"red.300"}},fonts:{body:os,heading:es}},components:{Badge:{baseStyle:{bg:"#9a9a9a",textShadow:"none",color:"white",boxShadow:"1px 1px 3px #00000077",_dark:{bg:"#555555",textShadow:"1px 1px 2px #00000077",color:"#efefef"}}},Tooltip:{baseStyle:{bg:"#ababab",textShadow:"0 0 3px rgba(0,0,0,0.5)",color:"white",[Ko.variable]:"#ababab",_dark:{bg:"#777777",textShadow:"none",color:"#efefef",[Ko.variable]:"#777777"}}},Button:{baseStyle:{fontFamily:es,fontWeight:500,_focus:{boxShadow:"none"}},variants:{link:{color:"#444",_dark:{color:"rgba(230,230,255,0.9)"}},ghost:{_hover:{bg:"blackAlpha.500"}},solid:{textShadow:"1px 1px 3px #00000077",bg:"blackAlpha.400",color:"whiteAlpha.800",_hover:{bg:"blackAlpha.500"},_dark:{bg:"whiteAlpha.300",color:"whiteAlpha.800",_hover:{bg:"whiteAlpha.400"}}},outline:{border:"1px solid",borderColor:"#ababab",color:"#656565",_hover:{bg:"blackAlpha.100"},_dark:{border:"1px solid #999",color:"#999",_hover:{bg:"whiteAlpha.300"}}}}},Tabs:{baseStyle:{tab:{_focus:{boxShadow:"none"}}}},Text:{baseStyle:{fontFamily:os}},Popover:{baseStyle:{root:{_focus:{boxShadow:"none"}},content:{bg:"background.100",border:"none",boxShadow:"0 0 4px rgba(0,0,0,0.5)",[Ko.variable]:"background.100",_dark:{bg:"background.100",[Ko.variable]:"background.100"}}}},Checkbox:{baseStyle:{control:{_focus:{boxShadow:"none"},border:"2px solid #ababab",borderColor:"#ababab",_checked:{bg:"#666666",color:"#efefef",border:"none"},_hover:{bg:"#555",border:"none"},_dark:{_checked:{bg:"#efefef",color:"#444444",border:"none"},_hover:{bg:"#555",border:"none"}}},label:{color:"#888",_dark:{color:"#999999"},_checked:{color:"#444444",_dark:{color:"#cdcdcd"}}}},variants:{noBox:{control:{bg:"transparent",_hover:{bg:"none"}}}}},Modal:{baseStyle:{dialog:{bg:"background.100",boxShadow:"0 0 6px rgba(0,0,0,0.5)",_dark:{bg:"background.100"}}}},Input:{baseStyle:{field:{_focus:{boxShadow:"none",outline:"none",border:"1px solid #bcbcbc"}}},variants:{text:{field:{borderRadius:6,border:"1px solid #dedede",_focus:{boxShadow:"none",borderColor:"#bcbcbc"},_active:{boxShadow:"none"},_placeholder:{color:"#777"},_dark:{border:"1px solid #777",_focus:{borderColor:"#999",boxShadow:"none"},_placeholder:{color:"#777"}}}}},defaultProps:{variant:"text"}},Switch:k0,Menu:{baseStyle:{list:{bg:"background.100",border:"none",boxShadow:"0 0 6px rgba(0,0,0,0.5)",_dark:{bg:"background.100"}},item:{_hover:{bg:"rgba(0,0,0,0.3)"},_focus:{bg:"rgba(0,0,0,0.2)"}}}},Progress:{baseStyle:{track:{bg:"blackAlpha.300",borderRadius:"full",_dark:{bg:"whiteAlpha.300"}},filledTrack:{bg:"blackAlpha.400",_dark:{bg:"whiteAlpha.500"}}}}}});var SP=()=>{if(typeof window<"u"){let e=()=>{let o=window.innerWidth,t=window.innerHeight;useScreen.setState({width:o,height:t,isMobile:o<769,isPortrait:o<t}),window.addEventListener("resize",e);};return e(),()=>{window.removeEventListener("resize",e);}}return ()=>{}};export{gP as AbsoluteDarkModeToggle,O0 as AbsoluteLogin,ho as CircularProgress,tr as CollapseHorizontal,Oe as ContentBox,w0 as DarkModeToggle,sP as DataList,Am as DataView,ki as DefaultModal,Vr as DeleteButton,Ol as DeleteConfirmAlert,$o as DesktopModal,Jn as Editable,wr as ErrorView,ee as ExpandOnMount,Ro as Expandable,Om as FieldForm,Rn as FieldMapForm,ro as FieldView,Lo as FileView,Dt as Form,zt as FormElement,yg as FullSizeContainer,mr as FullSizeProvider,jr as ImageViewOverlay,oi as ListContainer,Ri as ListContent,Lm as ListFieldInput,Pe as Loading,qr as LoadingImage,Ie as LoadingLogo,ze as LoadingOverlay,mx as LoadingSwitch,Ir as LottieLoadingLogo,ob as MediaFeed,Lh as MobileFrame,Ti as MobileModal,Fi as MobileOverlay,Vc as MobileOverlayBackground,tt as NAV_BAR_HEIGHT,yr as NavBar,pP as NumberTicker,vn as PlayButton,Mr as RedirectView,ls as SignIn,Qn as StandaloneInput,Hr as Toggle,rr as ViewButton,cr as ViewsContext,fr as ViewsProvider,CP as baseTheme,os as bodyFont,es as headingFont,SP as initializeScreen,k0 as switchTheme,G as useBorderColor,Gl as useMediaFeed,fo as useViews};//# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map