@standardbeagle/edit-db 0.4.437 → 0.4.441

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/editor.es.js CHANGED
@@ -13043,7 +13043,7 @@ function xs(e, t) {
13043
13043
  function rS(e, t) {
13044
13044
  return t.map((n) => {
13045
13045
  const r = e.findTable(n.destinationTable), o = r?.labelColumn ?? "id", i = [...r?.primaryKeys?.length ? r.primaryKeys : ["id"]];
13046
- return o && !i.includes(o) && i.push(o), `${n.fieldName ?? n.destinationTable} { ${i.join(" ")} }`;
13046
+ return o && !i.includes(o) && i.push(o), `${n.fieldName ?? n.destinationTable} { data { ${i.join(" ")} } }`;
13047
13047
  }).join(" ");
13048
13048
  }
13049
13049
  function oS(e, t, n, r, o, s, i) {
@@ -13104,7 +13104,7 @@ function Sl(e, t) {
13104
13104
  }
13105
13105
  function aS(e, t) {
13106
13106
  const n = t.fieldName ?? t.destinationTable;
13107
- return e[n] ?? [];
13107
+ return e[n]?.data ?? [];
13108
13108
  }
13109
13109
  const lS = (e, t, n, r) => {
13110
13110
  if (!e || !t) return [];
@@ -122,7 +122,7 @@ query dbSchema {
122
122
  If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
123
123
 
124
124
  For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return v.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},_v="DialogDescriptionWarning",jv=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${cc(_v).contentName}}.`;return v.useEffect(()=>{const o=e.current?.getAttribute("aria-describedby");t&&o&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},uc=Yl,Mv=Xl,dc=Zl,fc=ec,mc=tc,pc=rc,gc=sc,Or=ac,Dr={exports:{}},ks={};var hc;function Ev(){if(hc)return ks;hc=1;var e=M;function t(d,m){return d===m&&(d!==0||1/d===1/m)||d!==d&&m!==m}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,o=e.useEffect,s=e.useLayoutEffect,i=e.useDebugValue;function l(d,m){var p=m(),h=r({inst:{value:p,getSnapshot:m}}),g=h[0].inst,x=h[1];return s(function(){g.value=p,g.getSnapshot=m,c(g)&&x({inst:g})},[d,p,m]),o(function(){return c(g)&&x({inst:g}),d(function(){c(g)&&x({inst:g})})},[d]),i(p),p}function c(d){var m=d.getSnapshot;d=d.value;try{var p=m();return!n(d,p)}catch{return!0}}function u(d,m){return m()}var f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?u:l;return ks.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:f,ks}var Rs={};var vc;function Nv(){return vc||(vc=1,process.env.NODE_ENV!=="production"&&(function(){function e(p,h){return p===h&&(p!==0||1/p===1/h)||p!==p&&h!==h}function t(p,h){f||o.startTransition===void 0||(f=!0,console.error("You are using an outdated, pre-release alpha of React 18 that does not support useSyncExternalStore. The use-sync-external-store shim will not work correctly. Upgrade to a newer pre-release."));var g=h();if(!d){var x=h();s(g,x)||(console.error("The result of getSnapshot should be cached to avoid an infinite loop"),d=!0)}x=i({inst:{value:g,getSnapshot:h}});var y=x[0].inst,b=x[1];return c(function(){y.value=g,y.getSnapshot=h,n(y)&&b({inst:y})},[p,g,h]),l(function(){return n(y)&&b({inst:y}),p(function(){n(y)&&b({inst:y})})},[p]),u(g),g}function n(p){var h=p.getSnapshot;p=p.value;try{var g=h();return!s(p,g)}catch{return!0}}function r(p,h){return h()}typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());var o=M,s=typeof Object.is=="function"?Object.is:e,i=o.useState,l=o.useEffect,c=o.useLayoutEffect,u=o.useDebugValue,f=!1,d=!1,m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?r:t;Rs.useSyncExternalStore=o.useSyncExternalStore!==void 0?o.useSyncExternalStore:m,typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop=="function"&&__REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error())})()),Rs}var xc;function yc(){return xc||(xc=1,process.env.NODE_ENV==="production"?Dr.exports=Ev():Dr.exports=Nv()),Dr.exports}function bc(e){const t=v.useRef({value:e,previous:e});return v.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}function wc(e){const[t,n]=v.useState(void 0);return je(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const s=o[0];let i,l;if("borderBoxSize"in s){const c=s.borderBoxSize,u=Array.isArray(c)?c[0]:c;i=u.inlineSize,l=u.blockSize}else i=e.offsetWidth,l=e.offsetHeight;n({width:i,height:l})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Lr="Checkbox",[kv]=pt(Lr),[Rv,Ts]=kv(Lr);function Tv(e){const{__scopeCheckbox:t,checked:n,children:r,defaultChecked:o,disabled:s,form:i,name:l,onCheckedChange:c,required:u,value:f="on",internal_do_not_use_render:d}=e,[m,p]=St({prop:n,defaultProp:o??!1,onChange:c,caller:Lr}),[h,g]=v.useState(null),[x,y]=v.useState(null),b=v.useRef(!1),w=h?!!i||!!h.closest("form"):!0,_={checked:m,disabled:s,setChecked:p,control:h,setControl:g,name:l,form:i,value:f,hasConsumerStoppedPropagationRef:b,required:u,defaultChecked:jt(o)?!1:o,isFormControl:w,bubbleInput:x,setBubbleInput:y};return a.jsx(Rv,{scope:t,..._,children:Pv(d)?d(_):r})}var Cc="CheckboxTrigger",Sc=v.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},o)=>{const{control:s,value:i,disabled:l,checked:c,required:u,setControl:f,setChecked:d,hasConsumerStoppedPropagationRef:m,isFormControl:p,bubbleInput:h}=Ts(Cc,e),g=me(o,f),x=v.useRef(c);return v.useEffect(()=>{const y=s?.form;if(y){const b=()=>d(x.current);return y.addEventListener("reset",b),()=>y.removeEventListener("reset",b)}},[s,d]),a.jsx(ie.button,{type:"button",role:"checkbox","aria-checked":jt(c)?"mixed":c,"aria-required":u,"data-state":kc(c),"data-disabled":l?"":void 0,disabled:l,value:i,...r,ref:g,onKeyDown:z(t,y=>{y.key==="Enter"&&y.preventDefault()}),onClick:z(n,y=>{d(b=>jt(b)?!0:!b),h&&p&&(m.current=y.isPropagationStopped(),m.current||y.stopPropagation())})})});Sc.displayName=Cc;var _c=v.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:r,checked:o,defaultChecked:s,required:i,disabled:l,value:c,onCheckedChange:u,form:f,...d}=e;return a.jsx(Tv,{__scopeCheckbox:n,checked:o,defaultChecked:s,disabled:l,required:i,onCheckedChange:u,name:r,form:f,value:c,internal_do_not_use_render:({isFormControl:m})=>a.jsxs(a.Fragment,{children:[a.jsx(Sc,{...d,ref:t,__scopeCheckbox:n}),m&&a.jsx(Nc,{__scopeCheckbox:n})]})})});_c.displayName=Lr;var jc="CheckboxIndicator",Mc=v.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:r,...o}=e,s=Ts(jc,n);return a.jsx(qe,{present:r||jt(s.checked)||s.checked===!0,children:a.jsx(ie.span,{"data-state":kc(s.checked),"data-disabled":s.disabled?"":void 0,...o,ref:t,style:{pointerEvents:"none",...e.style}})})});Mc.displayName=jc;var Ec="CheckboxBubbleInput",Nc=v.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:r,hasConsumerStoppedPropagationRef:o,checked:s,defaultChecked:i,required:l,disabled:c,name:u,value:f,form:d,bubbleInput:m,setBubbleInput:p}=Ts(Ec,e),h=me(n,p),g=bc(s),x=wc(r);v.useEffect(()=>{const b=m;if(!b)return;const w=window.HTMLInputElement.prototype,E=Object.getOwnPropertyDescriptor(w,"checked").set,j=!o.current;if(g!==s&&E){const N=new Event("click",{bubbles:j});b.indeterminate=jt(s),E.call(b,jt(s)?!1:s),b.dispatchEvent(N)}},[m,g,s,o]);const y=v.useRef(jt(s)?!1:s);return a.jsx(ie.input,{type:"checkbox","aria-hidden":!0,defaultChecked:i??y.current,required:l,disabled:c,name:u,value:f,form:d,...t,tabIndex:-1,ref:h,style:{...t.style,...x,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});Nc.displayName=Ec;function Pv(e){return typeof e=="function"}function jt(e){return e==="indeterminate"}function kc(e){return jt(e)?"indeterminate":e?"checked":"unchecked"}const Fv=["top","right","bottom","left"],Mt=Math.min,Ie=Math.max,Vr=Math.round,zr=Math.floor,rt=e=>({x:e,y:e}),Iv={left:"right",right:"left",bottom:"top",top:"bottom"};function Ps(e,t,n){return Ie(e,Mt(t,n))}function gt(e,t){return typeof e=="function"?e(t):e}function ht(e){return e.split("-")[0]}function rn(e){return e.split("-")[1]}function Fs(e){return e==="x"?"y":"x"}function Is(e){return e==="y"?"height":"width"}function ot(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function $s(e){return Fs(ot(e))}function $v(e,t,n){n===void 0&&(n=!1);const r=rn(e),o=$s(e),s=Is(o);let i=o==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(i=Br(i)),[i,Br(i)]}function Av(e){const t=Br(e);return[As(e),t,As(t)]}function As(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const Rc=["left","right"],Tc=["right","left"],Ov=["top","bottom"],Dv=["bottom","top"];function Lv(e,t,n){switch(e){case"top":case"bottom":return n?t?Tc:Rc:t?Rc:Tc;case"left":case"right":return t?Ov:Dv;default:return[]}}function Vv(e,t,n,r){const o=rn(e);let s=Lv(ht(e),n==="start",r);return o&&(s=s.map(i=>i+"-"+o),t&&(s=s.concat(s.map(As)))),s}function Br(e){const t=ht(e);return Iv[t]+e.slice(t.length)}function zv(e){return{top:0,right:0,bottom:0,left:0,...e}}function Pc(e){return typeof e!="number"?zv(e):{top:e,right:e,bottom:e,left:e}}function Hr(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function Fc(e,t,n){let{reference:r,floating:o}=e;const s=ot(t),i=$s(t),l=Is(i),c=ht(t),u=s==="y",f=r.x+r.width/2-o.width/2,d=r.y+r.height/2-o.height/2,m=r[l]/2-o[l]/2;let p;switch(c){case"top":p={x:f,y:r.y-o.height};break;case"bottom":p={x:f,y:r.y+r.height};break;case"right":p={x:r.x+r.width,y:d};break;case"left":p={x:r.x-o.width,y:d};break;default:p={x:r.x,y:r.y}}switch(rn(t)){case"start":p[i]-=m*(n&&u?-1:1);break;case"end":p[i]+=m*(n&&u?-1:1);break}return p}async function Bv(e,t){var n;t===void 0&&(t={});const{x:r,y:o,platform:s,rects:i,elements:l,strategy:c}=e,{boundary:u="clippingAncestors",rootBoundary:f="viewport",elementContext:d="floating",altBoundary:m=!1,padding:p=0}=gt(t,e),h=Pc(p),x=l[m?d==="floating"?"reference":"floating":d],y=Hr(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(x)))==null||n?x:x.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(l.floating)),boundary:u,rootBoundary:f,strategy:c})),b=d==="floating"?{x:r,y:o,width:i.floating.width,height:i.floating.height}:i.reference,w=await(s.getOffsetParent==null?void 0:s.getOffsetParent(l.floating)),_=await(s.isElement==null?void 0:s.isElement(w))?await(s.getScale==null?void 0:s.getScale(w))||{x:1,y:1}:{x:1,y:1},E=Hr(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:b,offsetParent:w,strategy:c}):b);return{top:(y.top-E.top+h.top)/_.y,bottom:(E.bottom-y.bottom+h.bottom)/_.y,left:(y.left-E.left+h.left)/_.x,right:(E.right-y.right+h.right)/_.x}}const Hv=50,Gv=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:s=[],platform:i}=n,l=i.detectOverflow?i:{...i,detectOverflow:Bv},c=await(i.isRTL==null?void 0:i.isRTL(t));let u=await i.getElementRects({reference:e,floating:t,strategy:o}),{x:f,y:d}=Fc(u,r,c),m=r,p=0;const h={};for(let g=0;g<s.length;g++){const x=s[g];if(!x)continue;const{name:y,fn:b}=x,{x:w,y:_,data:E,reset:j}=await b({x:f,y:d,initialPlacement:r,placement:m,strategy:o,middlewareData:h,rects:u,platform:l,elements:{reference:e,floating:t}});f=w??f,d=_??d,h[y]={...h[y],...E},j&&p<Hv&&(p++,typeof j=="object"&&(j.placement&&(m=j.placement),j.rects&&(u=j.rects===!0?await i.getElementRects({reference:e,floating:t,strategy:o}):j.rects),{x:f,y:d}=Fc(u,m,c)),g=-1)}return{x:f,y:d,placement:m,strategy:o,middlewareData:h}},qv=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:s,platform:i,elements:l,middlewareData:c}=t,{element:u,padding:f=0}=gt(e,t)||{};if(u==null)return{};const d=Pc(f),m={x:n,y:r},p=$s(o),h=Is(p),g=await i.getDimensions(u),x=p==="y",y=x?"top":"left",b=x?"bottom":"right",w=x?"clientHeight":"clientWidth",_=s.reference[h]+s.reference[p]-m[p]-s.floating[h],E=m[p]-s.reference[p],j=await(i.getOffsetParent==null?void 0:i.getOffsetParent(u));let N=j?j[w]:0;(!N||!await(i.isElement==null?void 0:i.isElement(j)))&&(N=l.floating[w]||s.floating[h]);const C=_/2-E/2,R=N/2-g[h]/2-1,k=Mt(d[y],R),F=Mt(d[b],R),q=k,W=N-g[h]-F,B=N/2-g[h]/2+C,U=Ps(q,B,W),D=!c.arrow&&rn(o)!=null&&B!==U&&s.reference[h]/2-(B<q?k:F)-g[h]/2<0,Y=D?B<q?B-q:B-W:0;return{[p]:m[p]+Y,data:{[p]:U,centerOffset:B-U-Y,...D&&{alignmentOffset:Y}},reset:D}}}),Wv=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:o,middlewareData:s,rects:i,initialPlacement:l,platform:c,elements:u}=t,{mainAxis:f=!0,crossAxis:d=!0,fallbackPlacements:m,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:h="none",flipAlignment:g=!0,...x}=gt(e,t);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const y=ht(o),b=ot(l),w=ht(l)===l,_=await(c.isRTL==null?void 0:c.isRTL(u.floating)),E=m||(w||!g?[Br(l)]:Av(l)),j=h!=="none";!m&&j&&E.push(...Vv(l,g,h,_));const N=[l,...E],C=await c.detectOverflow(t,x),R=[];let k=((r=s.flip)==null?void 0:r.overflows)||[];if(f&&R.push(C[y]),d){const B=$v(o,i,_);R.push(C[B[0]],C[B[1]])}if(k=[...k,{placement:o,overflows:R}],!R.every(B=>B<=0)){var F,q;const B=(((F=s.flip)==null?void 0:F.index)||0)+1,U=N[B];if(U&&(!(d==="alignment"?b!==ot(U):!1)||k.every(H=>ot(H.placement)===b?H.overflows[0]>0:!0)))return{data:{index:B,overflows:k},reset:{placement:U}};let D=(q=k.filter(Y=>Y.overflows[0]<=0).sort((Y,H)=>Y.overflows[1]-H.overflows[1])[0])==null?void 0:q.placement;if(!D)switch(p){case"bestFit":{var W;const Y=(W=k.filter(H=>{if(j){const $=ot(H.placement);return $===b||$==="y"}return!0}).map(H=>[H.placement,H.overflows.filter($=>$>0).reduce(($,I)=>$+I,0)]).sort((H,$)=>H[1]-$[1])[0])==null?void 0:W[0];Y&&(D=Y);break}case"initialPlacement":D=l;break}if(o!==D)return{reset:{placement:D}}}return{}}}};function Ic(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function $c(e){return Fv.some(t=>e[t]>=0)}const Kv=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:r}=t,{strategy:o="referenceHidden",...s}=gt(e,t);switch(o){case"referenceHidden":{const i=await r.detectOverflow(t,{...s,elementContext:"reference"}),l=Ic(i,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:$c(l)}}}case"escaped":{const i=await r.detectOverflow(t,{...s,altBoundary:!0}),l=Ic(i,n.floating);return{data:{escapedOffsets:l,escaped:$c(l)}}}default:return{}}}}},Ac=new Set(["left","top"]);async function Uv(e,t){const{placement:n,platform:r,elements:o}=e,s=await(r.isRTL==null?void 0:r.isRTL(o.floating)),i=ht(n),l=rn(n),c=ot(n)==="y",u=Ac.has(i)?-1:1,f=s&&c?-1:1,d=gt(t,e);let{mainAxis:m,crossAxis:p,alignmentAxis:h}=typeof d=="number"?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return l&&typeof h=="number"&&(p=l==="end"?h*-1:h),c?{x:p*f,y:m*u}:{x:m*u,y:p*f}}const Yv=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:s,placement:i,middlewareData:l}=t,c=await Uv(t,e);return i===((n=l.offset)==null?void 0:n.placement)&&(r=l.arrow)!=null&&r.alignmentOffset?{}:{x:o+c.x,y:s+c.y,data:{...c,placement:i}}}}},Jv=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o,platform:s}=t,{mainAxis:i=!0,crossAxis:l=!1,limiter:c={fn:y=>{let{x:b,y:w}=y;return{x:b,y:w}}},...u}=gt(e,t),f={x:n,y:r},d=await s.detectOverflow(t,u),m=ot(ht(o)),p=Fs(m);let h=f[p],g=f[m];if(i){const y=p==="y"?"top":"left",b=p==="y"?"bottom":"right",w=h+d[y],_=h-d[b];h=Ps(w,h,_)}if(l){const y=m==="y"?"top":"left",b=m==="y"?"bottom":"right",w=g+d[y],_=g-d[b];g=Ps(w,g,_)}const x=c.fn({...t,[p]:h,[m]:g});return{...x,data:{x:x.x-n,y:x.y-r,enabled:{[p]:i,[m]:l}}}}}},Xv=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:s,middlewareData:i}=t,{offset:l=0,mainAxis:c=!0,crossAxis:u=!0}=gt(e,t),f={x:n,y:r},d=ot(o),m=Fs(d);let p=f[m],h=f[d];const g=gt(l,t),x=typeof g=="number"?{mainAxis:g,crossAxis:0}:{mainAxis:0,crossAxis:0,...g};if(c){const w=m==="y"?"height":"width",_=s.reference[m]-s.floating[w]+x.mainAxis,E=s.reference[m]+s.reference[w]-x.mainAxis;p<_?p=_:p>E&&(p=E)}if(u){var y,b;const w=m==="y"?"width":"height",_=Ac.has(ht(o)),E=s.reference[d]-s.floating[w]+(_&&((y=i.offset)==null?void 0:y[d])||0)+(_?0:x.crossAxis),j=s.reference[d]+s.reference[w]+(_?0:((b=i.offset)==null?void 0:b[d])||0)-(_?x.crossAxis:0);h<E?h=E:h>j&&(h=j)}return{[m]:p,[d]:h}}}},Qv=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:o,rects:s,platform:i,elements:l}=t,{apply:c=()=>{},...u}=gt(e,t),f=await i.detectOverflow(t,u),d=ht(o),m=rn(o),p=ot(o)==="y",{width:h,height:g}=s.floating;let x,y;d==="top"||d==="bottom"?(x=d,y=m===(await(i.isRTL==null?void 0:i.isRTL(l.floating))?"start":"end")?"left":"right"):(y=d,x=m==="end"?"top":"bottom");const b=g-f.top-f.bottom,w=h-f.left-f.right,_=Mt(g-f[x],b),E=Mt(h-f[y],w),j=!t.middlewareData.shift;let N=_,C=E;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(C=w),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(N=b),j&&!m){const k=Ie(f.left,0),F=Ie(f.right,0),q=Ie(f.top,0),W=Ie(f.bottom,0);p?C=h-2*(k!==0||F!==0?k+F:Ie(f.left,f.right)):N=g-2*(q!==0||W!==0?q+W:Ie(f.top,f.bottom))}await c({...t,availableWidth:C,availableHeight:N});const R=await i.getDimensions(l.floating);return h!==R.width||g!==R.height?{reset:{rects:!0}}:{}}}};function Gr(){return typeof window<"u"}function on(e){return Oc(e)?(e.nodeName||"").toLowerCase():"#document"}function $e(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function st(e){var t;return(t=(Oc(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Oc(e){return Gr()?e instanceof Node||e instanceof $e(e).Node:!1}function Ye(e){return Gr()?e instanceof Element||e instanceof $e(e).Element:!1}function vt(e){return Gr()?e instanceof HTMLElement||e instanceof $e(e).HTMLElement:!1}function Dc(e){return!Gr()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof $e(e).ShadowRoot}function In(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=Je(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&o!=="inline"&&o!=="contents"}function Zv(e){return/^(table|td|th)$/.test(on(e))}function qr(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const ex=/transform|translate|scale|rotate|perspective|filter/,tx=/paint|layout|strict|content/,Dt=e=>!!e&&e!=="none";let Os;function Ds(e){const t=Ye(e)?Je(e):e;return Dt(t.transform)||Dt(t.translate)||Dt(t.scale)||Dt(t.rotate)||Dt(t.perspective)||!Ls()&&(Dt(t.backdropFilter)||Dt(t.filter))||ex.test(t.willChange||"")||tx.test(t.contain||"")}function nx(e){let t=Et(e);for(;vt(t)&&!sn(t);){if(Ds(t))return t;if(qr(t))return null;t=Et(t)}return null}function Ls(){return Os==null&&(Os=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Os}function sn(e){return/^(html|body|#document)$/.test(on(e))}function Je(e){return $e(e).getComputedStyle(e)}function Wr(e){return Ye(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Et(e){if(on(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Dc(e)&&e.host||st(e);return Dc(t)?t.host:t}function Lc(e){const t=Et(e);return sn(t)?e.ownerDocument?e.ownerDocument.body:e.body:vt(t)&&In(t)?t:Lc(t)}function $n(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const o=Lc(e),s=o===((r=e.ownerDocument)==null?void 0:r.body),i=$e(o);if(s){const l=Vs(i);return t.concat(i,i.visualViewport||[],In(o)?o:[],l&&n?$n(l):[])}else return t.concat(o,$n(o,[],n))}function Vs(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Vc(e){const t=Je(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=vt(e),s=o?e.offsetWidth:n,i=o?e.offsetHeight:r,l=Vr(n)!==s||Vr(r)!==i;return l&&(n=s,r=i),{width:n,height:r,$:l}}function zs(e){return Ye(e)?e:e.contextElement}function an(e){const t=zs(e);if(!vt(t))return rt(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:s}=Vc(t);let i=(s?Vr(n.width):n.width)/r,l=(s?Vr(n.height):n.height)/o;return(!i||!Number.isFinite(i))&&(i=1),(!l||!Number.isFinite(l))&&(l=1),{x:i,y:l}}const rx=rt(0);function zc(e){const t=$e(e);return!Ls()||!t.visualViewport?rx:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ox(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==$e(e)?!1:t}function Lt(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const o=e.getBoundingClientRect(),s=zs(e);let i=rt(1);t&&(r?Ye(r)&&(i=an(r)):i=an(e));const l=ox(s,n,r)?zc(s):rt(0);let c=(o.left+l.x)/i.x,u=(o.top+l.y)/i.y,f=o.width/i.x,d=o.height/i.y;if(s){const m=$e(s),p=r&&Ye(r)?$e(r):r;let h=m,g=Vs(h);for(;g&&r&&p!==h;){const x=an(g),y=g.getBoundingClientRect(),b=Je(g),w=y.left+(g.clientLeft+parseFloat(b.paddingLeft))*x.x,_=y.top+(g.clientTop+parseFloat(b.paddingTop))*x.y;c*=x.x,u*=x.y,f*=x.x,d*=x.y,c+=w,u+=_,h=$e(g),g=Vs(h)}}return Hr({width:f,height:d,x:c,y:u})}function Kr(e,t){const n=Wr(e).scrollLeft;return t?t.left+n:Lt(st(e)).left+n}function Bc(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Kr(e,n),o=n.top+t.scrollTop;return{x:r,y:o}}function sx(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const s=o==="fixed",i=st(r),l=t?qr(t.floating):!1;if(r===i||l&&s)return n;let c={scrollLeft:0,scrollTop:0},u=rt(1);const f=rt(0),d=vt(r);if((d||!d&&!s)&&((on(r)!=="body"||In(i))&&(c=Wr(r)),d)){const p=Lt(r);u=an(r),f.x=p.x+r.clientLeft,f.y=p.y+r.clientTop}const m=i&&!d&&!s?Bc(i,c):rt(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-c.scrollLeft*u.x+f.x+m.x,y:n.y*u.y-c.scrollTop*u.y+f.y+m.y}}function ix(e){return Array.from(e.getClientRects())}function ax(e){const t=st(e),n=Wr(e),r=e.ownerDocument.body,o=Ie(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),s=Ie(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let i=-n.scrollLeft+Kr(e);const l=-n.scrollTop;return Je(r).direction==="rtl"&&(i+=Ie(t.clientWidth,r.clientWidth)-o),{width:o,height:s,x:i,y:l}}const Hc=25;function lx(e,t){const n=$e(e),r=st(e),o=n.visualViewport;let s=r.clientWidth,i=r.clientHeight,l=0,c=0;if(o){s=o.width,i=o.height;const f=Ls();(!f||f&&t==="fixed")&&(l=o.offsetLeft,c=o.offsetTop)}const u=Kr(r);if(u<=0){const f=r.ownerDocument,d=f.body,m=getComputedStyle(d),p=f.compatMode==="CSS1Compat"&&parseFloat(m.marginLeft)+parseFloat(m.marginRight)||0,h=Math.abs(r.clientWidth-d.clientWidth-p);h<=Hc&&(s-=h)}else u<=Hc&&(s+=u);return{width:s,height:i,x:l,y:c}}function cx(e,t){const n=Lt(e,!0,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft,s=vt(e)?an(e):rt(1),i=e.clientWidth*s.x,l=e.clientHeight*s.y,c=o*s.x,u=r*s.y;return{width:i,height:l,x:c,y:u}}function Gc(e,t,n){let r;if(t==="viewport")r=lx(e,n);else if(t==="document")r=ax(st(e));else if(Ye(t))r=cx(t,n);else{const o=zc(e);r={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return Hr(r)}function qc(e,t){const n=Et(e);return n===t||!Ye(n)||sn(n)?!1:Je(n).position==="fixed"||qc(n,t)}function ux(e,t){const n=t.get(e);if(n)return n;let r=$n(e,[],!1).filter(l=>Ye(l)&&on(l)!=="body"),o=null;const s=Je(e).position==="fixed";let i=s?Et(e):e;for(;Ye(i)&&!sn(i);){const l=Je(i),c=Ds(i);!c&&l.position==="fixed"&&(o=null),(s?!c&&!o:!c&&l.position==="static"&&!!o&&(o.position==="absolute"||o.position==="fixed")||In(i)&&!c&&qc(e,i))?r=r.filter(f=>f!==i):o=l,i=Et(i)}return t.set(e,r),r}function dx(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const i=[...n==="clippingAncestors"?qr(t)?[]:ux(t,this._c):[].concat(n),r],l=Gc(t,i[0],o);let c=l.top,u=l.right,f=l.bottom,d=l.left;for(let m=1;m<i.length;m++){const p=Gc(t,i[m],o);c=Ie(p.top,c),u=Mt(p.right,u),f=Mt(p.bottom,f),d=Ie(p.left,d)}return{width:u-d,height:f-c,x:d,y:c}}function fx(e){const{width:t,height:n}=Vc(e);return{width:t,height:n}}function mx(e,t,n){const r=vt(t),o=st(t),s=n==="fixed",i=Lt(e,!0,s,t);let l={scrollLeft:0,scrollTop:0};const c=rt(0);function u(){c.x=Kr(o)}if(r||!r&&!s)if((on(t)!=="body"||In(o))&&(l=Wr(t)),r){const p=Lt(t,!0,s,t);c.x=p.x+t.clientLeft,c.y=p.y+t.clientTop}else o&&u();s&&!r&&o&&u();const f=o&&!r&&!s?Bc(o,l):rt(0),d=i.left+l.scrollLeft-c.x-f.x,m=i.top+l.scrollTop-c.y-f.y;return{x:d,y:m,width:i.width,height:i.height}}function Bs(e){return Je(e).position==="static"}function Wc(e,t){if(!vt(e)||Je(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return st(e)===n&&(n=n.ownerDocument.body),n}function Kc(e,t){const n=$e(e);if(qr(e))return n;if(!vt(e)){let o=Et(e);for(;o&&!sn(o);){if(Ye(o)&&!Bs(o))return o;o=Et(o)}return n}let r=Wc(e,t);for(;r&&Zv(r)&&Bs(r);)r=Wc(r,t);return r&&sn(r)&&Bs(r)&&!Ds(r)?n:r||nx(e)||n}const px=async function(e){const t=this.getOffsetParent||Kc,n=this.getDimensions,r=await n(e.floating);return{reference:mx(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function gx(e){return Je(e).direction==="rtl"}const hx={convertOffsetParentRelativeRectToViewportRelativeRect:sx,getDocumentElement:st,getClippingRect:dx,getOffsetParent:Kc,getElementRects:px,getClientRects:ix,getDimensions:fx,getScale:an,isElement:Ye,isRTL:gx};function Uc(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function vx(e,t){let n=null,r;const o=st(e);function s(){var l;clearTimeout(r),(l=n)==null||l.disconnect(),n=null}function i(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),s();const u=e.getBoundingClientRect(),{left:f,top:d,width:m,height:p}=u;if(l||t(),!m||!p)return;const h=zr(d),g=zr(o.clientWidth-(f+m)),x=zr(o.clientHeight-(d+p)),y=zr(f),w={rootMargin:-h+"px "+-g+"px "+-x+"px "+-y+"px",threshold:Ie(0,Mt(1,c))||1};let _=!0;function E(j){const N=j[0].intersectionRatio;if(N!==c){if(!_)return i();N?i(!1,N):r=setTimeout(()=>{i(!1,1e-7)},1e3)}N===1&&!Uc(u,e.getBoundingClientRect())&&i(),_=!1}try{n=new IntersectionObserver(E,{...w,root:o.ownerDocument})}catch{n=new IntersectionObserver(E,w)}n.observe(e)}return i(!0),s}function xx(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:o=!0,ancestorResize:s=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=r,u=zs(e),f=o||s?[...u?$n(u):[],...t?$n(t):[]]:[];f.forEach(y=>{o&&y.addEventListener("scroll",n,{passive:!0}),s&&y.addEventListener("resize",n)});const d=u&&l?vx(u,n):null;let m=-1,p=null;i&&(p=new ResizeObserver(y=>{let[b]=y;b&&b.target===u&&p&&t&&(p.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var w;(w=p)==null||w.observe(t)})),n()}),u&&!c&&p.observe(u),t&&p.observe(t));let h,g=c?Lt(e):null;c&&x();function x(){const y=Lt(e);g&&!Uc(g,y)&&n(),g=y,h=requestAnimationFrame(x)}return n(),()=>{var y;f.forEach(b=>{o&&b.removeEventListener("scroll",n),s&&b.removeEventListener("resize",n)}),d?.(),(y=p)==null||y.disconnect(),p=null,c&&cancelAnimationFrame(h)}}const yx=Yv,bx=Jv,wx=Wv,Cx=Qv,Sx=Kv,Yc=qv,_x=Xv,jx=(e,t,n)=>{const r=new Map,o={platform:hx,...n},s={...o.platform,_c:r};return Gv(e,t,{...o,platform:s})};var Mx=typeof document<"u",Ex=function(){},Ur=Mx?M.useLayoutEffect:Ex;function Yr(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Yr(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;r--!==0;){const s=o[r];if(!(s==="_owner"&&e.$$typeof)&&!Yr(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function Jc(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Xc(e,t){const n=Jc(e);return Math.round(t*n)/n}function Hs(e){const t=v.useRef(e);return Ur(()=>{t.current=e}),t}function Nx(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:s,floating:i}={},transform:l=!0,whileElementsMounted:c,open:u}=e,[f,d]=v.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,p]=v.useState(r);Yr(m,r)||p(r);const[h,g]=v.useState(null),[x,y]=v.useState(null),b=v.useCallback(H=>{H!==j.current&&(j.current=H,g(H))},[]),w=v.useCallback(H=>{H!==N.current&&(N.current=H,y(H))},[]),_=s||h,E=i||x,j=v.useRef(null),N=v.useRef(null),C=v.useRef(f),R=c!=null,k=Hs(c),F=Hs(o),q=Hs(u),W=v.useCallback(()=>{if(!j.current||!N.current)return;const H={placement:t,strategy:n,middleware:m};F.current&&(H.platform=F.current),jx(j.current,N.current,H).then($=>{const I={...$,isPositioned:q.current!==!1};B.current&&!Yr(C.current,I)&&(C.current=I,ir.flushSync(()=>{d(I)}))})},[m,t,n,F,q]);Ur(()=>{u===!1&&C.current.isPositioned&&(C.current.isPositioned=!1,d(H=>({...H,isPositioned:!1})))},[u]);const B=v.useRef(!1);Ur(()=>(B.current=!0,()=>{B.current=!1}),[]),Ur(()=>{if(_&&(j.current=_),E&&(N.current=E),_&&E){if(k.current)return k.current(_,E,W);W()}},[_,E,W,k,R]);const U=v.useMemo(()=>({reference:j,floating:N,setReference:b,setFloating:w}),[b,w]),D=v.useMemo(()=>({reference:_,floating:E}),[_,E]),Y=v.useMemo(()=>{const H={position:n,left:0,top:0};if(!D.floating)return H;const $=Xc(D.floating,f.x),I=Xc(D.floating,f.y);return l?{...H,transform:"translate("+$+"px, "+I+"px)",...Jc(D.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:$,top:I}},[n,l,D.floating,f.x,f.y]);return v.useMemo(()=>({...f,update:W,refs:U,elements:D,floatingStyles:Y}),[f,W,U,D,Y])}const kx=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:o}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?Yc({element:r.current,padding:o}).fn(n):{}:r?Yc({element:r,padding:o}).fn(n):{}}}},Rx=(e,t)=>{const n=yx(e);return{name:n.name,fn:n.fn,options:[e,t]}},Tx=(e,t)=>{const n=bx(e);return{name:n.name,fn:n.fn,options:[e,t]}},Px=(e,t)=>({fn:_x(e).fn,options:[e,t]}),Fx=(e,t)=>{const n=wx(e);return{name:n.name,fn:n.fn,options:[e,t]}},Ix=(e,t)=>{const n=Cx(e);return{name:n.name,fn:n.fn,options:[e,t]}},$x=(e,t)=>{const n=Sx(e);return{name:n.name,fn:n.fn,options:[e,t]}},Ax=(e,t)=>{const n=kx(e);return{name:n.name,fn:n.fn,options:[e,t]}};var Ox="Arrow",Qc=v.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...s}=e;return a.jsx(ie.svg,{...s,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:a.jsx("polygon",{points:"0,0 30,0 15,10"})})});Qc.displayName=Ox;var Dx=Qc,Gs="Popper",[Zc,ln]=pt(Gs),[Lx,eu]=Zc(Gs),tu=e=>{const{__scopePopper:t,children:n}=e,[r,o]=v.useState(null);return a.jsx(Lx,{scope:t,anchor:r,onAnchorChange:o,children:n})};tu.displayName=Gs;var nu="PopperAnchor",ru=v.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,s=eu(nu,n),i=v.useRef(null),l=me(t,i),c=v.useRef(null);return v.useEffect(()=>{const u=c.current;c.current=r?.current||i.current,u!==c.current&&s.onAnchorChange(c.current)}),r?null:a.jsx(ie.div,{...o,ref:l})});ru.displayName=nu;var qs="PopperContent",[Vx,zx]=Zc(qs),ou=v.forwardRef((e,t)=>{const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:s="center",alignOffset:i=0,arrowPadding:l=0,avoidCollisions:c=!0,collisionBoundary:u=[],collisionPadding:f=0,sticky:d="partial",hideWhenDetached:m=!1,updatePositionStrategy:p="optimized",onPlaced:h,...g}=e,x=eu(qs,n),[y,b]=v.useState(null),w=me(t,A=>b(A)),[_,E]=v.useState(null),j=wc(_),N=j?.width??0,C=j?.height??0,R=r+(s!=="center"?"-"+s:""),k=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},F=Array.isArray(u)?u:[u],q=F.length>0,W={padding:k,boundary:F.filter(Hx),altBoundary:q},{refs:B,floatingStyles:U,placement:D,isPositioned:Y,middlewareData:H}=Nx({strategy:"fixed",placement:R,whileElementsMounted:(...A)=>xx(...A,{animationFrame:p==="always"}),elements:{reference:x.anchor},middleware:[Rx({mainAxis:o+C,alignmentAxis:i}),c&&Tx({mainAxis:!0,crossAxis:!1,limiter:d==="partial"?Px():void 0,...W}),c&&Fx({...W}),Ix({...W,apply:({elements:A,rects:oe,availableWidth:ne,availableHeight:ue})=>{const{width:T,height:O}=oe.reference,le=A.floating.style;le.setProperty("--radix-popper-available-width",`${ne}px`),le.setProperty("--radix-popper-available-height",`${ue}px`),le.setProperty("--radix-popper-anchor-width",`${T}px`),le.setProperty("--radix-popper-anchor-height",`${O}px`)}}),_&&Ax({element:_,padding:l}),Gx({arrowWidth:N,arrowHeight:C}),m&&$x({strategy:"referenceHidden",...W})]}),[$,I]=au(D),pe=Ke(h);je(()=>{Y&&pe?.()},[Y,pe]);const ae=H.arrow?.x,de=H.arrow?.y,he=H.arrow?.centerOffset!==0,[K,re]=v.useState();return je(()=>{y&&re(window.getComputedStyle(y).zIndex)},[y]),a.jsx("div",{ref:B.setFloating,"data-radix-popper-content-wrapper":"",style:{...U,transform:Y?U.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:K,"--radix-popper-transform-origin":[H.transformOrigin?.x,H.transformOrigin?.y].join(" "),...H.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:a.jsx(Vx,{scope:n,placedSide:$,onArrowChange:E,arrowX:ae,arrowY:de,shouldHideArrow:he,children:a.jsx(ie.div,{"data-side":$,"data-align":I,...g,ref:w,style:{...g.style,animation:Y?void 0:"none"}})})})});ou.displayName=qs;var su="PopperArrow",Bx={top:"bottom",right:"left",bottom:"top",left:"right"},iu=v.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,s=zx(su,r),i=Bx[s.placedSide];return a.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:a.jsx(Dx,{...o,ref:n,style:{...o.style,display:"block"}})})});iu.displayName=su;function Hx(e){return e!==null}var Gx=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:r,middlewareData:o}=t,i=o.arrow?.centerOffset!==0,l=i?0:e.arrowWidth,c=i?0:e.arrowHeight,[u,f]=au(n),d={start:"0%",center:"50%",end:"100%"}[f],m=(o.arrow?.x??0)+l/2,p=(o.arrow?.y??0)+c/2;let h="",g="";return u==="bottom"?(h=i?d:`${m}px`,g=`${-c}px`):u==="top"?(h=i?d:`${m}px`,g=`${r.floating.height+c}px`):u==="right"?(h=`${-c}px`,g=i?d:`${p}px`):u==="left"&&(h=`${r.floating.width+c}px`,g=i?d:`${p}px`),{data:{x:h,y:g}}}});function au(e){const[t,n="center"]=e.split("-");return[t,n]}var Jr=tu,Ws=ru,Ks=ou,Us=iu,Ys="rovingFocusGroup.onEntryFocus",qx={bubbles:!1,cancelable:!0},An="RovingFocusGroup",[Js,lu,Wx]=ms(An),[Kx,cu]=pt(An,[Wx]),[Ux,Yx]=Kx(An),uu=v.forwardRef((e,t)=>a.jsx(Js.Provider,{scope:e.__scopeRovingFocusGroup,children:a.jsx(Js.Slot,{scope:e.__scopeRovingFocusGroup,children:a.jsx(Jx,{...e,ref:t})})}));uu.displayName=An;var Jx=v.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:o=!1,dir:s,currentTabStopId:i,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:c,onEntryFocus:u,preventScrollOnEntryFocus:f=!1,...d}=e,m=v.useRef(null),p=me(t,m),h=ps(s),[g,x]=St({prop:i,defaultProp:l??null,onChange:c,caller:An}),[y,b]=v.useState(!1),w=Ke(u),_=lu(n),E=v.useRef(!1),[j,N]=v.useState(0);return v.useEffect(()=>{const C=m.current;if(C)return C.addEventListener(Ys,w),()=>C.removeEventListener(Ys,w)},[w]),a.jsx(Ux,{scope:n,orientation:r,dir:h,loop:o,currentTabStopId:g,onItemFocus:v.useCallback(C=>x(C),[x]),onItemShiftTab:v.useCallback(()=>b(!0),[]),onFocusableItemAdd:v.useCallback(()=>N(C=>C+1),[]),onFocusableItemRemove:v.useCallback(()=>N(C=>C-1),[]),children:a.jsx(ie.div,{tabIndex:y||j===0?-1:0,"data-orientation":r,...d,ref:p,style:{outline:"none",...e.style},onMouseDown:z(e.onMouseDown,()=>{E.current=!0}),onFocus:z(e.onFocus,C=>{const R=!E.current;if(C.target===C.currentTarget&&R&&!y){const k=new CustomEvent(Ys,qx);if(C.currentTarget.dispatchEvent(k),!k.defaultPrevented){const F=_().filter(D=>D.focusable),q=F.find(D=>D.active),W=F.find(D=>D.id===g),U=[q,W,...F].filter(Boolean).map(D=>D.ref.current);mu(U,f)}}E.current=!1}),onBlur:z(e.onBlur,()=>b(!1))})})}),du="RovingFocusGroupItem",fu=v.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:o=!1,tabStopId:s,children:i,...l}=e,c=We(),u=s||c,f=Yx(du,n),d=f.currentTabStopId===u,m=lu(n),{onFocusableItemAdd:p,onFocusableItemRemove:h,currentTabStopId:g}=f;return v.useEffect(()=>{if(r)return p(),()=>h()},[r,p,h]),a.jsx(Js.ItemSlot,{scope:n,id:u,focusable:r,active:o,children:a.jsx(ie.span,{tabIndex:d?0:-1,"data-orientation":f.orientation,...l,ref:t,onMouseDown:z(e.onMouseDown,x=>{r?f.onItemFocus(u):x.preventDefault()}),onFocus:z(e.onFocus,()=>f.onItemFocus(u)),onKeyDown:z(e.onKeyDown,x=>{if(x.key==="Tab"&&x.shiftKey){f.onItemShiftTab();return}if(x.target!==x.currentTarget)return;const y=Zx(x,f.orientation,f.dir);if(y!==void 0){if(x.metaKey||x.ctrlKey||x.altKey||x.shiftKey)return;x.preventDefault();let w=m().filter(_=>_.focusable).map(_=>_.ref.current);if(y==="last")w.reverse();else if(y==="prev"||y==="next"){y==="prev"&&w.reverse();const _=w.indexOf(x.currentTarget);w=f.loop?ey(w,_+1):w.slice(_+1)}setTimeout(()=>mu(w))}}),children:typeof i=="function"?i({isCurrentTabStop:d,hasTabStop:g!=null}):i})})});fu.displayName=du;var Xx={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function Qx(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function Zx(e,t,n){const r=Qx(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return Xx[r]}function mu(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function ey(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var ty=uu,ny=fu,Xs=["Enter"," "],ry=["ArrowDown","PageUp","Home"],pu=["ArrowUp","PageDown","End"],oy=[...ry,...pu],sy={ltr:[...Xs,"ArrowRight"],rtl:[...Xs,"ArrowLeft"]},iy={ltr:["ArrowLeft"],rtl:["ArrowRight"]},On="Menu",[Dn,ay,ly]=ms(On),[Vt,gu]=pt(On,[ly,ln,cu]),Ln=ln(),hu=cu(),[vu,Nt]=Vt(On),[cy,Vn]=Vt(On),xu=e=>{const{__scopeMenu:t,open:n=!1,children:r,dir:o,onOpenChange:s,modal:i=!0}=e,l=Ln(t),[c,u]=v.useState(null),f=v.useRef(!1),d=Ke(s),m=ps(o);return v.useEffect(()=>{const p=()=>{f.current=!0,document.addEventListener("pointerdown",h,{capture:!0,once:!0}),document.addEventListener("pointermove",h,{capture:!0,once:!0})},h=()=>f.current=!1;return document.addEventListener("keydown",p,{capture:!0}),()=>{document.removeEventListener("keydown",p,{capture:!0}),document.removeEventListener("pointerdown",h,{capture:!0}),document.removeEventListener("pointermove",h,{capture:!0})}},[]),a.jsx(Jr,{...l,children:a.jsx(vu,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:u,children:a.jsx(cy,{scope:t,onClose:v.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:f,dir:m,modal:i,children:r})})})};xu.displayName=On;var uy="MenuAnchor",Qs=v.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,o=Ln(n);return a.jsx(Ws,{...o,...r,ref:t})});Qs.displayName=uy;var Zs="MenuPortal",[dy,yu]=Vt(Zs,{forceMount:void 0}),bu=e=>{const{__scopeMenu:t,forceMount:n,children:r,container:o}=e,s=Nt(Zs,t);return a.jsx(dy,{scope:t,forceMount:n,children:a.jsx(qe,{present:n||s.open,children:a.jsx(Fn,{asChild:!0,container:o,children:r})})})};bu.displayName=Zs;var Ve="MenuContent",[fy,ei]=Vt(Ve),wu=v.forwardRef((e,t)=>{const n=yu(Ve,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,s=Nt(Ve,e.__scopeMenu),i=Vn(Ve,e.__scopeMenu);return a.jsx(Dn.Provider,{scope:e.__scopeMenu,children:a.jsx(qe,{present:r||s.open,children:a.jsx(Dn.Slot,{scope:e.__scopeMenu,children:i.modal?a.jsx(my,{...o,ref:t}):a.jsx(py,{...o,ref:t})})})})}),my=v.forwardRef((e,t)=>{const n=Nt(Ve,e.__scopeMenu),r=v.useRef(null),o=me(t,r);return v.useEffect(()=>{const s=r.current;if(s)return js(s)},[]),a.jsx(ti,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:z(e.onFocusOutside,s=>s.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),py=v.forwardRef((e,t)=>{const n=Nt(Ve,e.__scopeMenu);return a.jsx(ti,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),gy=Qt("MenuContent.ScrollLock"),ti=v.forwardRef((e,t)=>{const{__scopeMenu:n,loop:r=!1,trapFocus:o,onOpenAutoFocus:s,onCloseAutoFocus:i,disableOutsidePointerEvents:l,onEntryFocus:c,onEscapeKeyDown:u,onPointerDownOutside:f,onFocusOutside:d,onInteractOutside:m,onDismiss:p,disableOutsideScroll:h,...g}=e,x=Nt(Ve,n),y=Vn(Ve,n),b=Ln(n),w=hu(n),_=ay(n),[E,j]=v.useState(null),N=v.useRef(null),C=me(t,N,x.onContentChange),R=v.useRef(0),k=v.useRef(""),F=v.useRef(0),q=v.useRef(null),W=v.useRef("right"),B=v.useRef(0),U=h?Pr:v.Fragment,D=h?{as:gy,allowPinchZoom:!0}:void 0,Y=$=>{const I=k.current+$,pe=_().filter(A=>!A.disabled),ae=document.activeElement,de=pe.find(A=>A.ref.current===ae)?.textValue,he=pe.map(A=>A.textValue),K=Ey(he,I,de),re=pe.find(A=>A.textValue===K)?.ref.current;(function A(oe){k.current=oe,window.clearTimeout(R.current),oe!==""&&(R.current=window.setTimeout(()=>A(""),1e3))})(I),re&&setTimeout(()=>re.focus())};v.useEffect(()=>()=>window.clearTimeout(R.current),[]),ys();const H=v.useCallback($=>W.current===q.current?.side&&ky($,q.current?.area),[]);return a.jsx(fy,{scope:n,searchRef:k,onItemEnter:v.useCallback($=>{H($)&&$.preventDefault()},[H]),onItemLeave:v.useCallback($=>{H($)||(N.current?.focus(),j(null))},[H]),onTriggerLeave:v.useCallback($=>{H($)&&$.preventDefault()},[H]),pointerGraceTimerRef:F,onPointerGraceIntentChange:v.useCallback($=>{q.current=$},[]),children:a.jsx(U,{...D,children:a.jsx(Mr,{asChild:!0,trapped:o,onMountAutoFocus:z(s,$=>{$.preventDefault(),N.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:i,children:a.jsx(Pn,{asChild:!0,disableOutsidePointerEvents:l,onEscapeKeyDown:u,onPointerDownOutside:f,onFocusOutside:d,onInteractOutside:m,onDismiss:p,children:a.jsx(ty,{asChild:!0,...w,dir:y.dir,orientation:"vertical",loop:r,currentTabStopId:E,onCurrentTabStopIdChange:j,onEntryFocus:z(c,$=>{y.isUsingKeyboardRef.current||$.preventDefault()}),preventScrollOnEntryFocus:!0,children:a.jsx(Ks,{role:"menu","aria-orientation":"vertical","data-state":Lu(x.open),"data-radix-menu-content":"",dir:y.dir,...b,...g,ref:C,style:{outline:"none",...g.style},onKeyDown:z(g.onKeyDown,$=>{const pe=$.target.closest("[data-radix-menu-content]")===$.currentTarget,ae=$.ctrlKey||$.altKey||$.metaKey,de=$.key.length===1;pe&&($.key==="Tab"&&$.preventDefault(),!ae&&de&&Y($.key));const he=N.current;if($.target!==he||!oy.includes($.key))return;$.preventDefault();const re=_().filter(A=>!A.disabled).map(A=>A.ref.current);pu.includes($.key)&&re.reverse(),jy(re)}),onBlur:z(e.onBlur,$=>{$.currentTarget.contains($.target)||(window.clearTimeout(R.current),k.current="")}),onPointerMove:z(e.onPointerMove,Bn($=>{const I=$.target,pe=B.current!==$.clientX;if($.currentTarget.contains(I)&&pe){const ae=$.clientX>B.current?"right":"left";W.current=ae,B.current=$.clientX}}))})})})})})})});wu.displayName=Ve;var hy="MenuGroup",ni=v.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return a.jsx(ie.div,{role:"group",...r,ref:t})});ni.displayName=hy;var vy="MenuLabel",Cu=v.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return a.jsx(ie.div,{...r,ref:t})});Cu.displayName=vy;var Xr="MenuItem",Su="menu.itemSelect",Qr=v.forwardRef((e,t)=>{const{disabled:n=!1,onSelect:r,...o}=e,s=v.useRef(null),i=Vn(Xr,e.__scopeMenu),l=ei(Xr,e.__scopeMenu),c=me(t,s),u=v.useRef(!1),f=()=>{const d=s.current;if(!n&&d){const m=new CustomEvent(Su,{bubbles:!0,cancelable:!0});d.addEventListener(Su,p=>r?.(p),{once:!0}),Sl(d,m),m.defaultPrevented?u.current=!1:i.onClose()}};return a.jsx(_u,{...o,ref:c,disabled:n,onClick:z(e.onClick,f),onPointerDown:d=>{e.onPointerDown?.(d),u.current=!0},onPointerUp:z(e.onPointerUp,d=>{u.current||d.currentTarget?.click()}),onKeyDown:z(e.onKeyDown,d=>{const m=l.searchRef.current!=="";n||m&&d.key===" "||Xs.includes(d.key)&&(d.currentTarget.click(),d.preventDefault())})})});Qr.displayName=Xr;var _u=v.forwardRef((e,t)=>{const{__scopeMenu:n,disabled:r=!1,textValue:o,...s}=e,i=ei(Xr,n),l=hu(n),c=v.useRef(null),u=me(t,c),[f,d]=v.useState(!1),[m,p]=v.useState("");return v.useEffect(()=>{const h=c.current;h&&p((h.textContent??"").trim())},[s.children]),a.jsx(Dn.ItemSlot,{scope:n,disabled:r,textValue:o??m,children:a.jsx(ny,{asChild:!0,...l,focusable:!r,children:a.jsx(ie.div,{role:"menuitem","data-highlighted":f?"":void 0,"aria-disabled":r||void 0,"data-disabled":r?"":void 0,...s,ref:u,onPointerMove:z(e.onPointerMove,Bn(h=>{r?i.onItemLeave(h):(i.onItemEnter(h),h.defaultPrevented||h.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:z(e.onPointerLeave,Bn(h=>i.onItemLeave(h))),onFocus:z(e.onFocus,()=>d(!0)),onBlur:z(e.onBlur,()=>d(!1))})})})}),xy="MenuCheckboxItem",ju=v.forwardRef((e,t)=>{const{checked:n=!1,onCheckedChange:r,...o}=e;return a.jsx(Ru,{scope:e.__scopeMenu,checked:n,children:a.jsx(Qr,{role:"menuitemcheckbox","aria-checked":Zr(n)?"mixed":n,...o,ref:t,"data-state":si(n),onSelect:z(o.onSelect,()=>r?.(Zr(n)?!0:!n),{checkForDefaultPrevented:!1})})})});ju.displayName=xy;var Mu="MenuRadioGroup",[yy,by]=Vt(Mu,{value:void 0,onValueChange:()=>{}}),Eu=v.forwardRef((e,t)=>{const{value:n,onValueChange:r,...o}=e,s=Ke(r);return a.jsx(yy,{scope:e.__scopeMenu,value:n,onValueChange:s,children:a.jsx(ni,{...o,ref:t})})});Eu.displayName=Mu;var Nu="MenuRadioItem",ku=v.forwardRef((e,t)=>{const{value:n,...r}=e,o=by(Nu,e.__scopeMenu),s=n===o.value;return a.jsx(Ru,{scope:e.__scopeMenu,checked:s,children:a.jsx(Qr,{role:"menuitemradio","aria-checked":s,...r,ref:t,"data-state":si(s),onSelect:z(r.onSelect,()=>o.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});ku.displayName=Nu;var ri="MenuItemIndicator",[Ru,wy]=Vt(ri,{checked:!1}),Tu=v.forwardRef((e,t)=>{const{__scopeMenu:n,forceMount:r,...o}=e,s=wy(ri,n);return a.jsx(qe,{present:r||Zr(s.checked)||s.checked===!0,children:a.jsx(ie.span,{...o,ref:t,"data-state":si(s.checked)})})});Tu.displayName=ri;var Cy="MenuSeparator",Pu=v.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e;return a.jsx(ie.div,{role:"separator","aria-orientation":"horizontal",...r,ref:t})});Pu.displayName=Cy;var Sy="MenuArrow",Fu=v.forwardRef((e,t)=>{const{__scopeMenu:n,...r}=e,o=Ln(n);return a.jsx(Us,{...o,...r,ref:t})});Fu.displayName=Sy;var oi="MenuSub",[_y,Iu]=Vt(oi),$u=e=>{const{__scopeMenu:t,children:n,open:r=!1,onOpenChange:o}=e,s=Nt(oi,t),i=Ln(t),[l,c]=v.useState(null),[u,f]=v.useState(null),d=Ke(o);return v.useEffect(()=>(s.open===!1&&d(!1),()=>d(!1)),[s.open,d]),a.jsx(Jr,{...i,children:a.jsx(vu,{scope:t,open:r,onOpenChange:d,content:u,onContentChange:f,children:a.jsx(_y,{scope:t,contentId:We(),triggerId:We(),trigger:l,onTriggerChange:c,children:n})})})};$u.displayName=oi;var zn="MenuSubTrigger",Au=v.forwardRef((e,t)=>{const n=Nt(zn,e.__scopeMenu),r=Vn(zn,e.__scopeMenu),o=Iu(zn,e.__scopeMenu),s=ei(zn,e.__scopeMenu),i=v.useRef(null),{pointerGraceTimerRef:l,onPointerGraceIntentChange:c}=s,u={__scopeMenu:e.__scopeMenu},f=v.useCallback(()=>{i.current&&window.clearTimeout(i.current),i.current=null},[]);return v.useEffect(()=>f,[f]),v.useEffect(()=>{const d=l.current;return()=>{window.clearTimeout(d),c(null)}},[l,c]),a.jsx(Qs,{asChild:!0,...u,children:a.jsx(_u,{id:o.triggerId,"aria-haspopup":"menu","aria-expanded":n.open,"aria-controls":o.contentId,"data-state":Lu(n.open),...e,ref:Tn(t,o.onTriggerChange),onClick:d=>{e.onClick?.(d),!(e.disabled||d.defaultPrevented)&&(d.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:z(e.onPointerMove,Bn(d=>{s.onItemEnter(d),!d.defaultPrevented&&!e.disabled&&!n.open&&!i.current&&(s.onPointerGraceIntentChange(null),i.current=window.setTimeout(()=>{n.onOpenChange(!0),f()},100))})),onPointerLeave:z(e.onPointerLeave,Bn(d=>{f();const m=n.content?.getBoundingClientRect();if(m){const p=n.content?.dataset.side,h=p==="right",g=h?-5:5,x=m[h?"left":"right"],y=m[h?"right":"left"];s.onPointerGraceIntentChange({area:[{x:d.clientX+g,y:d.clientY},{x,y:m.top},{x:y,y:m.top},{x:y,y:m.bottom},{x,y:m.bottom}],side:p}),window.clearTimeout(l.current),l.current=window.setTimeout(()=>s.onPointerGraceIntentChange(null),300)}else{if(s.onTriggerLeave(d),d.defaultPrevented)return;s.onPointerGraceIntentChange(null)}})),onKeyDown:z(e.onKeyDown,d=>{const m=s.searchRef.current!=="";e.disabled||m&&d.key===" "||sy[r.dir].includes(d.key)&&(n.onOpenChange(!0),n.content?.focus(),d.preventDefault())})})})});Au.displayName=zn;var Ou="MenuSubContent",Du=v.forwardRef((e,t)=>{const n=yu(Ve,e.__scopeMenu),{forceMount:r=n.forceMount,...o}=e,s=Nt(Ve,e.__scopeMenu),i=Vn(Ve,e.__scopeMenu),l=Iu(Ou,e.__scopeMenu),c=v.useRef(null),u=me(t,c);return a.jsx(Dn.Provider,{scope:e.__scopeMenu,children:a.jsx(qe,{present:r||s.open,children:a.jsx(Dn.Slot,{scope:e.__scopeMenu,children:a.jsx(ti,{id:l.contentId,"aria-labelledby":l.triggerId,...o,ref:u,align:"start",side:i.dir==="rtl"?"left":"right",disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:f=>{i.isUsingKeyboardRef.current&&c.current?.focus(),f.preventDefault()},onCloseAutoFocus:f=>f.preventDefault(),onFocusOutside:z(e.onFocusOutside,f=>{f.target!==l.trigger&&s.onOpenChange(!1)}),onEscapeKeyDown:z(e.onEscapeKeyDown,f=>{i.onClose(),f.preventDefault()}),onKeyDown:z(e.onKeyDown,f=>{const d=f.currentTarget.contains(f.target),m=iy[i.dir].includes(f.key);d&&m&&(s.onOpenChange(!1),l.trigger?.focus(),f.preventDefault())})})})})})});Du.displayName=Ou;function Lu(e){return e?"open":"closed"}function Zr(e){return e==="indeterminate"}function si(e){return Zr(e)?"indeterminate":e?"checked":"unchecked"}function jy(e){const t=document.activeElement;for(const n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function My(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Ey(e,t,n){const o=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let i=My(e,Math.max(s,0));o.length===1&&(i=i.filter(u=>u!==n));const c=i.find(u=>u.toLowerCase().startsWith(o.toLowerCase()));return c!==n?c:void 0}function Ny(e,t){const{x:n,y:r}=e;let o=!1;for(let s=0,i=t.length-1;s<t.length;i=s++){const l=t[s],c=t[i],u=l.x,f=l.y,d=c.x,m=c.y;f>r!=m>r&&n<(d-u)*(r-f)/(m-f)+u&&(o=!o)}return o}function ky(e,t){if(!t)return!1;const n={x:e.clientX,y:e.clientY};return Ny(n,t)}function Bn(e){return t=>t.pointerType==="mouse"?e(t):void 0}var Ry=xu,Ty=Qs,Py=bu,Fy=wu,Iy=ni,$y=Cu,Ay=Qr,Oy=ju,Dy=Eu,Ly=ku,Vy=Tu,zy=Pu,By=Fu,Hy=$u,Gy=Au,qy=Du,eo="DropdownMenu",[Wy]=pt(eo,[gu]),Me=gu(),[Ky,Vu]=Wy(eo),zu=e=>{const{__scopeDropdownMenu:t,children:n,dir:r,open:o,defaultOpen:s,onOpenChange:i,modal:l=!0}=e,c=Me(t),u=v.useRef(null),[f,d]=St({prop:o,defaultProp:s??!1,onChange:i,caller:eo});return a.jsx(Ky,{scope:t,triggerId:We(),triggerRef:u,contentId:We(),open:f,onOpenChange:d,onOpenToggle:v.useCallback(()=>d(m=>!m),[d]),modal:l,children:a.jsx(Ry,{...c,open:f,onOpenChange:d,dir:r,modal:l,children:n})})};zu.displayName=eo;var Bu="DropdownMenuTrigger",Hu=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,disabled:r=!1,...o}=e,s=Vu(Bu,n),i=Me(n);return a.jsx(Ty,{asChild:!0,...i,children:a.jsx(ie.button,{type:"button",id:s.triggerId,"aria-haspopup":"menu","aria-expanded":s.open,"aria-controls":s.open?s.contentId:void 0,"data-state":s.open?"open":"closed","data-disabled":r?"":void 0,disabled:r,...o,ref:Tn(t,s.triggerRef),onPointerDown:z(e.onPointerDown,l=>{!r&&l.button===0&&l.ctrlKey===!1&&(s.onOpenToggle(),s.open||l.preventDefault())}),onKeyDown:z(e.onKeyDown,l=>{r||(["Enter"," "].includes(l.key)&&s.onOpenToggle(),l.key==="ArrowDown"&&s.onOpenChange(!0),["Enter"," ","ArrowDown"].includes(l.key)&&l.preventDefault())})})})});Hu.displayName=Bu;var Uy="DropdownMenuPortal",Gu=e=>{const{__scopeDropdownMenu:t,...n}=e,r=Me(t);return a.jsx(Py,{...r,...n})};Gu.displayName=Uy;var qu="DropdownMenuContent",Wu=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Vu(qu,n),s=Me(n),i=v.useRef(!1);return a.jsx(Fy,{id:o.contentId,"aria-labelledby":o.triggerId,...s,...r,ref:t,onCloseAutoFocus:z(e.onCloseAutoFocus,l=>{i.current||o.triggerRef.current?.focus(),i.current=!1,l.preventDefault()}),onInteractOutside:z(e.onInteractOutside,l=>{const c=l.detail.originalEvent,u=c.button===0&&c.ctrlKey===!0,f=c.button===2||u;(!o.modal||f)&&(i.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Wu.displayName=qu;var Yy="DropdownMenuGroup",Jy=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Me(n);return a.jsx(Iy,{...o,...r,ref:t})});Jy.displayName=Yy;var Xy="DropdownMenuLabel",Qy=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Me(n);return a.jsx($y,{...o,...r,ref:t})});Qy.displayName=Xy;var Zy="DropdownMenuItem",Ku=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Me(n);return a.jsx(Ay,{...o,...r,ref:t})});Ku.displayName=Zy;var eb="DropdownMenuCheckboxItem",Uu=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Me(n);return a.jsx(Oy,{...o,...r,ref:t})});Uu.displayName=eb;var tb="DropdownMenuRadioGroup",nb=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Me(n);return a.jsx(Dy,{...o,...r,ref:t})});nb.displayName=tb;var rb="DropdownMenuRadioItem",ob=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Me(n);return a.jsx(Ly,{...o,...r,ref:t})});ob.displayName=rb;var sb="DropdownMenuItemIndicator",Yu=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Me(n);return a.jsx(Vy,{...o,...r,ref:t})});Yu.displayName=sb;var ib="DropdownMenuSeparator",Ju=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Me(n);return a.jsx(zy,{...o,...r,ref:t})});Ju.displayName=ib;var ab="DropdownMenuArrow",lb=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Me(n);return a.jsx(By,{...o,...r,ref:t})});lb.displayName=ab;var cb=e=>{const{__scopeDropdownMenu:t,children:n,open:r,onOpenChange:o,defaultOpen:s}=e,i=Me(t),[l,c]=St({prop:r,defaultProp:s??!1,onChange:o,caller:"DropdownMenuSub"});return a.jsx(Hy,{...i,open:l,onOpenChange:c,children:n})},ub="DropdownMenuSubTrigger",Xu=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Me(n);return a.jsx(Gy,{...o,...r,ref:t})});Xu.displayName=ub;var db="DropdownMenuSubContent",Qu=v.forwardRef((e,t)=>{const{__scopeDropdownMenu:n,...r}=e,o=Me(n);return a.jsx(qy,{...o,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-dropdown-menu-content-available-width":"var(--radix-popper-available-width)","--radix-dropdown-menu-content-available-height":"var(--radix-popper-available-height)","--radix-dropdown-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-dropdown-menu-trigger-height":"var(--radix-popper-anchor-height)"}})});Qu.displayName=db;var fb=zu,mb=Hu,pb=Gu,gb=Wu,hb=Ku,vb=Uu,xb=Yu,yb=Ju,bb=cb,wb=Xu,Cb=Qu,Sb="Label",Zu=v.forwardRef((e,t)=>a.jsx(ie.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));Zu.displayName=Sb;var _b=Zu,ii,to="HoverCard",[ed]=pt(to,[ln]),no=ln(),[jb,ro]=ed(to),td=e=>{const{__scopeHoverCard:t,children:n,open:r,defaultOpen:o,onOpenChange:s,openDelay:i=700,closeDelay:l=300}=e,c=no(t),u=v.useRef(0),f=v.useRef(0),d=v.useRef(!1),m=v.useRef(!1),[p,h]=St({prop:r,defaultProp:o??!1,onChange:s,caller:to}),g=v.useCallback(()=>{clearTimeout(f.current),u.current=window.setTimeout(()=>h(!0),i)},[i,h]),x=v.useCallback(()=>{clearTimeout(u.current),!d.current&&!m.current&&(f.current=window.setTimeout(()=>h(!1),l))},[l,h]),y=v.useCallback(()=>h(!1),[h]);return v.useEffect(()=>()=>{clearTimeout(u.current),clearTimeout(f.current)},[]),a.jsx(jb,{scope:t,open:p,onOpenChange:h,onOpen:g,onClose:x,onDismiss:y,hasSelectionRef:d,isPointerDownOnContentRef:m,children:a.jsx(Jr,{...c,children:n})})};td.displayName=to;var nd="HoverCardTrigger",rd=v.forwardRef((e,t)=>{const{__scopeHoverCard:n,...r}=e,o=ro(nd,n),s=no(n);return a.jsx(Ws,{asChild:!0,...s,children:a.jsx(ie.a,{"data-state":o.open?"open":"closed",...r,ref:t,onPointerEnter:z(e.onPointerEnter,so(o.onOpen)),onPointerLeave:z(e.onPointerLeave,so(o.onClose)),onFocus:z(e.onFocus,o.onOpen),onBlur:z(e.onBlur,o.onClose),onTouchStart:z(e.onTouchStart,i=>i.preventDefault())})})});rd.displayName=nd;var ai="HoverCardPortal",[Mb,Eb]=ed(ai,{forceMount:void 0}),od=e=>{const{__scopeHoverCard:t,forceMount:n,children:r,container:o}=e,s=ro(ai,t);return a.jsx(Mb,{scope:t,forceMount:n,children:a.jsx(qe,{present:n||s.open,children:a.jsx(Fn,{asChild:!0,container:o,children:r})})})};od.displayName=ai;var oo="HoverCardContent",sd=v.forwardRef((e,t)=>{const n=Eb(oo,e.__scopeHoverCard),{forceMount:r=n.forceMount,...o}=e,s=ro(oo,e.__scopeHoverCard);return a.jsx(qe,{present:r||s.open,children:a.jsx(Nb,{"data-state":s.open?"open":"closed",...o,onPointerEnter:z(e.onPointerEnter,so(s.onOpen)),onPointerLeave:z(e.onPointerLeave,so(s.onClose)),ref:t})})});sd.displayName=oo;var Nb=v.forwardRef((e,t)=>{const{__scopeHoverCard:n,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:s,onInteractOutside:i,...l}=e,c=ro(oo,n),u=no(n),f=v.useRef(null),d=me(t,f),[m,p]=v.useState(!1);return v.useEffect(()=>{if(m){const h=document.body;return ii=h.style.userSelect||h.style.webkitUserSelect,h.style.userSelect="none",h.style.webkitUserSelect="none",()=>{h.style.userSelect=ii,h.style.webkitUserSelect=ii}}},[m]),v.useEffect(()=>{if(f.current){const h=()=>{p(!1),c.isPointerDownOnContentRef.current=!1,setTimeout(()=>{document.getSelection()?.toString()!==""&&(c.hasSelectionRef.current=!0)})};return document.addEventListener("pointerup",h),()=>{document.removeEventListener("pointerup",h),c.hasSelectionRef.current=!1,c.isPointerDownOnContentRef.current=!1}}},[c.isPointerDownOnContentRef,c.hasSelectionRef]),v.useEffect(()=>{f.current&&Tb(f.current).forEach(g=>g.setAttribute("tabindex","-1"))}),a.jsx(Pn,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:i,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:z(s,h=>{h.preventDefault()}),onDismiss:c.onDismiss,children:a.jsx(Ks,{...u,...l,onPointerDown:z(l.onPointerDown,h=>{h.currentTarget.contains(h.target)&&p(!0),c.hasSelectionRef.current=!1,c.isPointerDownOnContentRef.current=!0}),ref:d,style:{...l.style,userSelect:m?"text":void 0,WebkitUserSelect:m?"text":void 0,"--radix-hover-card-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-hover-card-content-available-width":"var(--radix-popper-available-width)","--radix-hover-card-content-available-height":"var(--radix-popper-available-height)","--radix-hover-card-trigger-width":"var(--radix-popper-anchor-width)","--radix-hover-card-trigger-height":"var(--radix-popper-anchor-height)"}})})}),kb="HoverCardArrow",Rb=v.forwardRef((e,t)=>{const{__scopeHoverCard:n,...r}=e,o=no(n);return a.jsx(Us,{...o,...r,ref:t})});Rb.displayName=kb;function so(e){return t=>t.pointerType==="touch"?void 0:e()}function Tb(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;n.nextNode();)t.push(n.currentNode);return t}var Pb=td,Fb=rd,Ib=od,$b=sd;function id(e,[t,n]){return Math.min(n,Math.max(t,e))}var Ab=[" ","Enter","ArrowUp","ArrowDown"],Ob=[" ","Enter"],zt="Select",[io,ao,Db]=ms(zt),[cn]=pt(zt,[Db,ln]),lo=ln(),[Lb,kt]=cn(zt),[Vb,zb]=cn(zt),ad=e=>{const{__scopeSelect:t,children:n,open:r,defaultOpen:o,onOpenChange:s,value:i,defaultValue:l,onValueChange:c,dir:u,name:f,autoComplete:d,disabled:m,required:p,form:h}=e,g=lo(t),[x,y]=v.useState(null),[b,w]=v.useState(null),[_,E]=v.useState(!1),j=ps(u),[N,C]=St({prop:r,defaultProp:o??!1,onChange:s,caller:zt}),[R,k]=St({prop:i,defaultProp:l,onChange:c,caller:zt}),F=v.useRef(null),q=x?h||!!x.closest("form"):!0,[W,B]=v.useState(new Set),U=Array.from(W).map(D=>D.props.value).join(";");return a.jsx(Jr,{...g,children:a.jsxs(Lb,{required:p,scope:t,trigger:x,onTriggerChange:y,valueNode:b,onValueNodeChange:w,valueNodeHasChildren:_,onValueNodeHasChildrenChange:E,contentId:We(),value:R,onValueChange:k,open:N,onOpenChange:C,dir:j,triggerPointerDownPosRef:F,disabled:m,children:[a.jsx(io.Provider,{scope:t,children:a.jsx(Vb,{scope:e.__scopeSelect,onNativeOptionAdd:v.useCallback(D=>{B(Y=>new Set(Y).add(D))},[]),onNativeOptionRemove:v.useCallback(D=>{B(Y=>{const H=new Set(Y);return H.delete(D),H})},[]),children:n})}),q?a.jsxs(kd,{"aria-hidden":!0,required:p,tabIndex:-1,name:f,autoComplete:d,value:R,onChange:D=>k(D.target.value),disabled:m,form:h,children:[R===void 0?a.jsx("option",{value:""}):null,Array.from(W)]},U):null]})})};ad.displayName=zt;var ld="SelectTrigger",cd=v.forwardRef((e,t)=>{const{__scopeSelect:n,disabled:r=!1,...o}=e,s=lo(n),i=kt(ld,n),l=i.disabled||r,c=me(t,i.onTriggerChange),u=ao(n),f=v.useRef("touch"),[d,m,p]=Td(g=>{const x=u().filter(w=>!w.disabled),y=x.find(w=>w.value===i.value),b=Pd(x,g,y);b!==void 0&&i.onValueChange(b.value)}),h=g=>{l||(i.onOpenChange(!0),p()),g&&(i.triggerPointerDownPosRef.current={x:Math.round(g.pageX),y:Math.round(g.pageY)})};return a.jsx(Ws,{asChild:!0,...s,children:a.jsx(ie.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:l,"data-disabled":l?"":void 0,"data-placeholder":Rd(i.value)?"":void 0,...o,ref:c,onClick:z(o.onClick,g=>{g.currentTarget.focus(),f.current!=="mouse"&&h(g)}),onPointerDown:z(o.onPointerDown,g=>{f.current=g.pointerType;const x=g.target;x.hasPointerCapture(g.pointerId)&&x.releasePointerCapture(g.pointerId),g.button===0&&g.ctrlKey===!1&&g.pointerType==="mouse"&&(h(g),g.preventDefault())}),onKeyDown:z(o.onKeyDown,g=>{const x=d.current!=="";!(g.ctrlKey||g.altKey||g.metaKey)&&g.key.length===1&&m(g.key),!(x&&g.key===" ")&&Ab.includes(g.key)&&(h(),g.preventDefault())})})})});cd.displayName=ld;var ud="SelectValue",dd=v.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:o,children:s,placeholder:i="",...l}=e,c=kt(ud,n),{onValueNodeHasChildrenChange:u}=c,f=s!==void 0,d=me(t,c.onValueNodeChange);return je(()=>{u(f)},[u,f]),a.jsx(ie.span,{...l,ref:d,style:{pointerEvents:"none"},children:Rd(c.value)?a.jsx(a.Fragment,{children:i}):s})});dd.displayName=ud;var Bb="SelectIcon",fd=v.forwardRef((e,t)=>{const{__scopeSelect:n,children:r,...o}=e;return a.jsx(ie.span,{"aria-hidden":!0,...o,ref:t,children:r||"▼"})});fd.displayName=Bb;var Hb="SelectPortal",md=e=>a.jsx(Fn,{asChild:!0,...e});md.displayName=Hb;var Bt="SelectContent",pd=v.forwardRef((e,t)=>{const n=kt(Bt,e.__scopeSelect),[r,o]=v.useState();if(je(()=>{o(new DocumentFragment)},[]),!n.open){const s=r;return s?ir.createPortal(a.jsx(gd,{scope:e.__scopeSelect,children:a.jsx(io.Slot,{scope:e.__scopeSelect,children:a.jsx("div",{children:e.children})})}),s):null}return a.jsx(hd,{...e,ref:t})});pd.displayName=Bt;var Xe=10,[gd,Rt]=cn(Bt),Gb="SelectContentImpl",qb=Qt("SelectContent.RemoveScroll"),hd=v.forwardRef((e,t)=>{const{__scopeSelect:n,position:r="item-aligned",onCloseAutoFocus:o,onEscapeKeyDown:s,onPointerDownOutside:i,side:l,sideOffset:c,align:u,alignOffset:f,arrowPadding:d,collisionBoundary:m,collisionPadding:p,sticky:h,hideWhenDetached:g,avoidCollisions:x,...y}=e,b=kt(Bt,n),[w,_]=v.useState(null),[E,j]=v.useState(null),N=me(t,A=>_(A)),[C,R]=v.useState(null),[k,F]=v.useState(null),q=ao(n),[W,B]=v.useState(!1),U=v.useRef(!1);v.useEffect(()=>{if(w)return js(w)},[w]),ys();const D=v.useCallback(A=>{const[oe,...ne]=q().map(O=>O.ref.current),[ue]=ne.slice(-1),T=document.activeElement;for(const O of A)if(O===T||(O?.scrollIntoView({block:"nearest"}),O===oe&&E&&(E.scrollTop=0),O===ue&&E&&(E.scrollTop=E.scrollHeight),O?.focus(),document.activeElement!==T))return},[q,E]),Y=v.useCallback(()=>D([C,w]),[D,C,w]);v.useEffect(()=>{W&&Y()},[W,Y]);const{onOpenChange:H,triggerPointerDownPosRef:$}=b;v.useEffect(()=>{if(w){let A={x:0,y:0};const oe=ue=>{A={x:Math.abs(Math.round(ue.pageX)-($.current?.x??0)),y:Math.abs(Math.round(ue.pageY)-($.current?.y??0))}},ne=ue=>{A.x<=10&&A.y<=10?ue.preventDefault():w.contains(ue.target)||H(!1),document.removeEventListener("pointermove",oe),$.current=null};return $.current!==null&&(document.addEventListener("pointermove",oe),document.addEventListener("pointerup",ne,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",oe),document.removeEventListener("pointerup",ne,{capture:!0})}}},[w,H,$]),v.useEffect(()=>{const A=()=>H(!1);return window.addEventListener("blur",A),window.addEventListener("resize",A),()=>{window.removeEventListener("blur",A),window.removeEventListener("resize",A)}},[H]);const[I,pe]=Td(A=>{const oe=q().filter(T=>!T.disabled),ne=oe.find(T=>T.ref.current===document.activeElement),ue=Pd(oe,A,ne);ue&&setTimeout(()=>ue.ref.current.focus())}),ae=v.useCallback((A,oe,ne)=>{const ue=!U.current&&!ne;(b.value!==void 0&&b.value===oe||ue)&&(R(A),ue&&(U.current=!0))},[b.value]),de=v.useCallback(()=>w?.focus(),[w]),he=v.useCallback((A,oe,ne)=>{const ue=!U.current&&!ne;(b.value!==void 0&&b.value===oe||ue)&&F(A)},[b.value]),K=r==="popper"?li:vd,re=K===li?{side:l,sideOffset:c,align:u,alignOffset:f,arrowPadding:d,collisionBoundary:m,collisionPadding:p,sticky:h,hideWhenDetached:g,avoidCollisions:x}:{};return a.jsx(gd,{scope:n,content:w,viewport:E,onViewportChange:j,itemRefCallback:ae,selectedItem:C,onItemLeave:de,itemTextRefCallback:he,focusSelectedItem:Y,selectedItemText:k,position:r,isPositioned:W,searchRef:I,children:a.jsx(Pr,{as:qb,allowPinchZoom:!0,children:a.jsx(Mr,{asChild:!0,trapped:b.open,onMountAutoFocus:A=>{A.preventDefault()},onUnmountAutoFocus:z(o,A=>{b.trigger?.focus({preventScroll:!0}),A.preventDefault()}),children:a.jsx(Pn,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:A=>A.preventDefault(),onDismiss:()=>b.onOpenChange(!1),children:a.jsx(K,{role:"listbox",id:b.contentId,"data-state":b.open?"open":"closed",dir:b.dir,onContextMenu:A=>A.preventDefault(),...y,...re,onPlaced:()=>B(!0),ref:N,style:{display:"flex",flexDirection:"column",outline:"none",...y.style},onKeyDown:z(y.onKeyDown,A=>{const oe=A.ctrlKey||A.altKey||A.metaKey;if(A.key==="Tab"&&A.preventDefault(),!oe&&A.key.length===1&&pe(A.key),["ArrowUp","ArrowDown","Home","End"].includes(A.key)){let ue=q().filter(T=>!T.disabled).map(T=>T.ref.current);if(["ArrowUp","End"].includes(A.key)&&(ue=ue.slice().reverse()),["ArrowUp","ArrowDown"].includes(A.key)){const T=A.target,O=ue.indexOf(T);ue=ue.slice(O+1)}setTimeout(()=>D(ue)),A.preventDefault()}})})})})})})});hd.displayName=Gb;var Wb="SelectItemAlignedPosition",vd=v.forwardRef((e,t)=>{const{__scopeSelect:n,onPlaced:r,...o}=e,s=kt(Bt,n),i=Rt(Bt,n),[l,c]=v.useState(null),[u,f]=v.useState(null),d=me(t,N=>f(N)),m=ao(n),p=v.useRef(!1),h=v.useRef(!0),{viewport:g,selectedItem:x,selectedItemText:y,focusSelectedItem:b}=i,w=v.useCallback(()=>{if(s.trigger&&s.valueNode&&l&&u&&g&&x&&y){const N=s.trigger.getBoundingClientRect(),C=u.getBoundingClientRect(),R=s.valueNode.getBoundingClientRect(),k=y.getBoundingClientRect();if(s.dir!=="rtl"){const T=k.left-C.left,O=R.left-T,le=N.left-O,ye=N.width+le,Re=Math.max(ye,C.width),Ae=window.innerWidth-Xe,xt=id(O,[Xe,Math.max(Xe,Ae-Re)]);l.style.minWidth=ye+"px",l.style.left=xt+"px"}else{const T=C.right-k.right,O=window.innerWidth-R.right-T,le=window.innerWidth-N.right-O,ye=N.width+le,Re=Math.max(ye,C.width),Ae=window.innerWidth-Xe,xt=id(O,[Xe,Math.max(Xe,Ae-Re)]);l.style.minWidth=ye+"px",l.style.right=xt+"px"}const F=m(),q=window.innerHeight-Xe*2,W=g.scrollHeight,B=window.getComputedStyle(u),U=parseInt(B.borderTopWidth,10),D=parseInt(B.paddingTop,10),Y=parseInt(B.borderBottomWidth,10),H=parseInt(B.paddingBottom,10),$=U+D+W+H+Y,I=Math.min(x.offsetHeight*5,$),pe=window.getComputedStyle(g),ae=parseInt(pe.paddingTop,10),de=parseInt(pe.paddingBottom,10),he=N.top+N.height/2-Xe,K=q-he,re=x.offsetHeight/2,A=x.offsetTop+re,oe=U+D+A,ne=$-oe;if(oe<=he){const T=F.length>0&&x===F[F.length-1].ref.current;l.style.bottom="0px";const O=u.clientHeight-g.offsetTop-g.offsetHeight,le=Math.max(K,re+(T?de:0)+O+Y),ye=oe+le;l.style.height=ye+"px"}else{const T=F.length>0&&x===F[0].ref.current;l.style.top="0px";const le=Math.max(he,U+g.offsetTop+(T?ae:0)+re)+ne;l.style.height=le+"px",g.scrollTop=oe-he+g.offsetTop}l.style.margin=`${Xe}px 0`,l.style.minHeight=I+"px",l.style.maxHeight=q+"px",r?.(),requestAnimationFrame(()=>p.current=!0)}},[m,s.trigger,s.valueNode,l,u,g,x,y,s.dir,r]);je(()=>w(),[w]);const[_,E]=v.useState();je(()=>{u&&E(window.getComputedStyle(u).zIndex)},[u]);const j=v.useCallback(N=>{N&&h.current===!0&&(w(),b?.(),h.current=!1)},[w,b]);return a.jsx(Ub,{scope:n,contentWrapper:l,shouldExpandOnScrollRef:p,onScrollButtonChange:j,children:a.jsx("div",{ref:c,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:_},children:a.jsx(ie.div,{...o,ref:d,style:{boxSizing:"border-box",maxHeight:"100%",...o.style}})})})});vd.displayName=Wb;var Kb="SelectPopperPosition",li=v.forwardRef((e,t)=>{const{__scopeSelect:n,align:r="start",collisionPadding:o=Xe,...s}=e,i=lo(n);return a.jsx(Ks,{...i,...s,ref:t,align:r,collisionPadding:o,style:{boxSizing:"border-box",...s.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});li.displayName=Kb;var[Ub,ci]=cn(Bt,{}),ui="SelectViewport",xd=v.forwardRef((e,t)=>{const{__scopeSelect:n,nonce:r,...o}=e,s=Rt(ui,n),i=ci(ui,n),l=me(t,s.onViewportChange),c=v.useRef(0);return a.jsxs(a.Fragment,{children:[a.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:r}),a.jsx(io.Slot,{scope:n,children:a.jsx(ie.div,{"data-radix-select-viewport":"",role:"presentation",...o,ref:l,style:{position:"relative",flex:1,overflow:"hidden auto",...o.style},onScroll:z(o.onScroll,u=>{const f=u.currentTarget,{contentWrapper:d,shouldExpandOnScrollRef:m}=i;if(m?.current&&d){const p=Math.abs(c.current-f.scrollTop);if(p>0){const h=window.innerHeight-Xe*2,g=parseFloat(d.style.minHeight),x=parseFloat(d.style.height),y=Math.max(g,x);if(y<h){const b=y+p,w=Math.min(h,b),_=b-w;d.style.height=w+"px",d.style.bottom==="0px"&&(f.scrollTop=_>0?_:0,d.style.justifyContent="flex-end")}}}c.current=f.scrollTop})})})]})});xd.displayName=ui;var yd="SelectGroup",[Yb,Jb]=cn(yd),Xb=v.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,o=We();return a.jsx(Yb,{scope:n,id:o,children:a.jsx(ie.div,{role:"group","aria-labelledby":o,...r,ref:t})})});Xb.displayName=yd;var bd="SelectLabel",Qb=v.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,o=Jb(bd,n);return a.jsx(ie.div,{id:o.id,...r,ref:t})});Qb.displayName=bd;var co="SelectItem",[Zb,wd]=cn(co),Cd=v.forwardRef((e,t)=>{const{__scopeSelect:n,value:r,disabled:o=!1,textValue:s,...i}=e,l=kt(co,n),c=Rt(co,n),u=l.value===r,[f,d]=v.useState(s??""),[m,p]=v.useState(!1),h=me(t,b=>c.itemRefCallback?.(b,r,o)),g=We(),x=v.useRef("touch"),y=()=>{o||(l.onValueChange(r),l.onOpenChange(!1))};if(r==="")throw new Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return a.jsx(Zb,{scope:n,value:r,disabled:o,textId:g,isSelected:u,onItemTextChange:v.useCallback(b=>{d(w=>w||(b?.textContent??"").trim())},[]),children:a.jsx(io.ItemSlot,{scope:n,value:r,disabled:o,textValue:f,children:a.jsx(ie.div,{role:"option","aria-labelledby":g,"data-highlighted":m?"":void 0,"aria-selected":u&&m,"data-state":u?"checked":"unchecked","aria-disabled":o||void 0,"data-disabled":o?"":void 0,tabIndex:o?void 0:-1,...i,ref:h,onFocus:z(i.onFocus,()=>p(!0)),onBlur:z(i.onBlur,()=>p(!1)),onClick:z(i.onClick,()=>{x.current!=="mouse"&&y()}),onPointerUp:z(i.onPointerUp,()=>{x.current==="mouse"&&y()}),onPointerDown:z(i.onPointerDown,b=>{x.current=b.pointerType}),onPointerMove:z(i.onPointerMove,b=>{x.current=b.pointerType,o?c.onItemLeave?.():x.current==="mouse"&&b.currentTarget.focus({preventScroll:!0})}),onPointerLeave:z(i.onPointerLeave,b=>{b.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:z(i.onKeyDown,b=>{c.searchRef?.current!==""&&b.key===" "||(Ob.includes(b.key)&&y(),b.key===" "&&b.preventDefault())})})})})});Cd.displayName=co;var Hn="SelectItemText",Sd=v.forwardRef((e,t)=>{const{__scopeSelect:n,className:r,style:o,...s}=e,i=kt(Hn,n),l=Rt(Hn,n),c=wd(Hn,n),u=zb(Hn,n),[f,d]=v.useState(null),m=me(t,y=>d(y),c.onItemTextChange,y=>l.itemTextRefCallback?.(y,c.value,c.disabled)),p=f?.textContent,h=v.useMemo(()=>a.jsx("option",{value:c.value,disabled:c.disabled,children:p},c.value),[c.disabled,c.value,p]),{onNativeOptionAdd:g,onNativeOptionRemove:x}=u;return je(()=>(g(h),()=>x(h)),[g,x,h]),a.jsxs(a.Fragment,{children:[a.jsx(ie.span,{id:c.textId,...s,ref:m}),c.isSelected&&i.valueNode&&!i.valueNodeHasChildren?ir.createPortal(s.children,i.valueNode):null]})});Sd.displayName=Hn;var _d="SelectItemIndicator",jd=v.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return wd(_d,n).isSelected?a.jsx(ie.span,{"aria-hidden":!0,...r,ref:t}):null});jd.displayName=_d;var di="SelectScrollUpButton",Md=v.forwardRef((e,t)=>{const n=Rt(di,e.__scopeSelect),r=ci(di,e.__scopeSelect),[o,s]=v.useState(!1),i=me(t,r.onScrollButtonChange);return je(()=>{if(n.viewport&&n.isPositioned){let l=function(){const u=c.scrollTop>0;s(u)};const c=n.viewport;return l(),c.addEventListener("scroll",l),()=>c.removeEventListener("scroll",l)}},[n.viewport,n.isPositioned]),o?a.jsx(Nd,{...e,ref:i,onAutoScroll:()=>{const{viewport:l,selectedItem:c}=n;l&&c&&(l.scrollTop=l.scrollTop-c.offsetHeight)}}):null});Md.displayName=di;var fi="SelectScrollDownButton",Ed=v.forwardRef((e,t)=>{const n=Rt(fi,e.__scopeSelect),r=ci(fi,e.__scopeSelect),[o,s]=v.useState(!1),i=me(t,r.onScrollButtonChange);return je(()=>{if(n.viewport&&n.isPositioned){let l=function(){const u=c.scrollHeight-c.clientHeight,f=Math.ceil(c.scrollTop)<u;s(f)};const c=n.viewport;return l(),c.addEventListener("scroll",l),()=>c.removeEventListener("scroll",l)}},[n.viewport,n.isPositioned]),o?a.jsx(Nd,{...e,ref:i,onAutoScroll:()=>{const{viewport:l,selectedItem:c}=n;l&&c&&(l.scrollTop=l.scrollTop+c.offsetHeight)}}):null});Ed.displayName=fi;var Nd=v.forwardRef((e,t)=>{const{__scopeSelect:n,onAutoScroll:r,...o}=e,s=Rt("SelectScrollButton",n),i=v.useRef(null),l=ao(n),c=v.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null)},[]);return v.useEffect(()=>()=>c(),[c]),je(()=>{l().find(f=>f.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[l]),a.jsx(ie.div,{"aria-hidden":!0,...o,ref:t,style:{flexShrink:0,...o.style},onPointerDown:z(o.onPointerDown,()=>{i.current===null&&(i.current=window.setInterval(r,50))}),onPointerMove:z(o.onPointerMove,()=>{s.onItemLeave?.(),i.current===null&&(i.current=window.setInterval(r,50))}),onPointerLeave:z(o.onPointerLeave,()=>{c()})})}),ew="SelectSeparator",tw=v.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e;return a.jsx(ie.div,{"aria-hidden":!0,...r,ref:t})});tw.displayName=ew;var mi="SelectArrow",nw=v.forwardRef((e,t)=>{const{__scopeSelect:n,...r}=e,o=lo(n),s=kt(mi,n),i=Rt(mi,n);return s.open&&i.position==="popper"?a.jsx(Us,{...o,...r,ref:t}):null});nw.displayName=mi;var rw="SelectBubbleInput",kd=v.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{const o=v.useRef(null),s=me(r,o),i=bc(t);return v.useEffect(()=>{const l=o.current;if(!l)return;const c=window.HTMLSelectElement.prototype,f=Object.getOwnPropertyDescriptor(c,"value").set;if(i!==t&&f){const d=new Event("change",{bubbles:!0});f.call(l,t),l.dispatchEvent(d)}},[i,t]),a.jsx(ie.select,{...n,style:{..._l,...n.style},ref:s,defaultValue:t})});kd.displayName=rw;function Rd(e){return e===""||e===void 0}function Td(e){const t=Ke(e),n=v.useRef(""),r=v.useRef(0),o=v.useCallback(i=>{const l=n.current+i;t(l),(function c(u){n.current=u,window.clearTimeout(r.current),u!==""&&(r.current=window.setTimeout(()=>c(""),1e3))})(l)},[t]),s=v.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return v.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,o,s]}function Pd(e,t,n){const o=t.length>1&&Array.from(t).every(u=>u===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let i=ow(e,Math.max(s,0));o.length===1&&(i=i.filter(u=>u!==n));const c=i.find(u=>u.textValue.toLowerCase().startsWith(o.toLowerCase()));return c!==n?c:void 0}function ow(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var sw=ad,iw=cd,aw=dd,lw=fd,cw=md,uw=pd,dw=xd,fw=Cd,mw=Sd,pw=jd,gw=Md,hw=Ed;function Fd({...e}){return a.jsx(fb,{"data-slot":"dropdown-menu",...e})}function Id({...e}){return a.jsx(mb,{"data-slot":"dropdown-menu-trigger",...e})}function $d({className:e,sideOffset:t=4,...n}){return a.jsx(pb,{children:a.jsx(gb,{"data-slot":"dropdown-menu-content",sideOffset:t,className:Z("z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",e),...n})})}function Gn({className:e,inset:t,variant:n="default",...r}){return a.jsx(hb,{"data-slot":"dropdown-menu-item","data-inset":t,"data-variant":n,className:Z("relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground data-[variant=destructive]:*:[svg]:text-destructive!",e),...r})}function vw({className:e,children:t,checked:n,...r}){return a.jsxs(vb,{"data-slot":"dropdown-menu-checkbox-item",className:Z("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",e),checked:n,...r,children:[a.jsx("span",{className:"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",children:a.jsx(xb,{children:a.jsx(Cr,{className:"size-4"})})}),t]})}function Ht({className:e,...t}){return a.jsx(yb,{"data-slot":"dropdown-menu-separator",className:Z("-mx-1 my-1 h-px bg-border",e),...t})}function qn({...e}){return a.jsx(bb,{"data-slot":"dropdown-menu-sub",...e})}function Wn({className:e,inset:t,children:n,...r}){return a.jsxs(wb,{"data-slot":"dropdown-menu-sub-trigger","data-inset":t,className:Z("flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[inset]:pl-8 data-[state=open]:bg-accent data-[state=open]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",e),...r,children:[n,a.jsx(as,{className:"ml-auto size-4"})]})}function Kn({className:e,...t}){return a.jsx(Cb,{"data-slot":"dropdown-menu-sub-content",className:Z("z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",e),...t})}const Un=v.forwardRef(({...e},t)=>a.jsx(Pb,{"data-slot":"hover-card",...e}));Un.displayName="HoverCard";const Yn=v.forwardRef(({...e},t)=>a.jsx(Fb,{"data-slot":"hover-card-trigger",...e}));Yn.displayName="HoverCardTrigger";const Jn=v.forwardRef(({className:e,align:t="center",sideOffset:n=4,...r},o)=>a.jsx(Ib,{children:a.jsx($b,{ref:o,"data-slot":"hover-card-content",align:t,sideOffset:n,className:Z("z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",e),...r})}));Jn.displayName="HoverCardContent";const Qe=v.forwardRef(({className:e,type:t,...n},r)=>a.jsx("input",{type:t,ref:r,"data-slot":"input",className:Z("h-9 w-full min-w-0 rounded-md border border-input bg-transparent text-foreground px-3 py-0 text-sm shadow-xs transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",e),...n}));Qe.displayName="Input";function it({...e}){return a.jsx(sw,{"data-slot":"select",...e})}function at({...e}){return a.jsx(aw,{"data-slot":"select-value",...e})}function lt({className:e,size:t="default",children:n,...r}){return a.jsxs(iw,{"data-slot":"select-trigger","data-size":t,className:Z("flex w-fit items-center justify-between gap-2 rounded-md border border-input bg-transparent text-foreground px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[placeholder]:text-muted-foreground data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",e),...r,children:[n,a.jsx(lw,{asChild:!0,children:a.jsx(En,{className:"size-4 opacity-50"})})]})}function ct({className:e,children:t,position:n="item-aligned",align:r="center",...o}){return a.jsx(cw,{children:a.jsxs(uw,{"data-slot":"select-content",className:Z("relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,align:r,...o,children:[a.jsx(xw,{}),a.jsx(dw,{className:Z("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1"),children:t}),a.jsx(yw,{})]})})}function ze({className:e,children:t,...n}){return a.jsxs(fw,{"data-slot":"select-item",className:Z("relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",e),...n,children:[a.jsx("span",{"data-slot":"select-item-indicator",className:"absolute right-2 flex size-3.5 items-center justify-center",children:a.jsx(pw,{children:a.jsx(Cr,{className:"size-4"})})}),a.jsx(mw,{children:t})]})}function xw({className:e,...t}){return a.jsx(gw,{"data-slot":"select-scroll-up-button",className:Z("flex cursor-default items-center justify-center py-1",e),...t,children:a.jsx(ls,{className:"size-4"})})}function yw({className:e,...t}){return a.jsx(hw,{"data-slot":"select-scroll-down-button",className:Z("flex cursor-default items-center justify-center py-1",e),...t,children:a.jsx(En,{className:"size-4"})})}const Ad={_contains:"Contains",_starts_with:"Starts with",_ends_with:"Ends with",_eq:"Equals",_neq:"Not equals",_null:"Is null"},bw=300;function ww({column:e}){const n=(e.columnDef.meta?.filterOperators??[]).filter(h=>h in Ad),r=e.getFilterValue(),[o,s]=M.useState(r?.operator??"_contains"),[i,l]=M.useState(r?.operator==="_null"?"":String(r?.value??"")),c=M.useRef(),u=o==="_null";M.useEffect(()=>()=>{c.current&&clearTimeout(c.current)},[]);const f=(h,g)=>{if(c.current&&clearTimeout(c.current),h==="_null"){e.setFilterValue({operator:"_null",value:!0});return}if(!g){e.setFilterValue(void 0);return}c.current=setTimeout(()=>{e.setFilterValue({operator:h,value:g})},bw)},d=h=>{s(h),h==="_null"?(l(""),e.setFilterValue({operator:"_null",value:!0})):i?f(h,i):e.setFilterValue(void 0)},m=h=>{l(h),f(o,h)},p=()=>{c.current&&clearTimeout(c.current),s("_contains"),l(""),e.setFilterValue(void 0)};return n.length===0?null:a.jsxs("div",{className:"flex flex-col gap-2 p-2 min-w-[220px]",children:[a.jsxs(it,{value:o,onValueChange:d,children:[a.jsx(lt,{size:"sm",className:"w-full text-xs",children:a.jsx(at,{})}),a.jsx(ct,{children:n.map(h=>a.jsx(ze,{value:h,children:Ad[h]},h))})]}),!u&&a.jsx(Qe,{placeholder:"Filter value...",value:i,onChange:h=>m(h.target.value),className:"h-8 text-xs",autoFocus:!0}),r!==void 0&&a.jsxs(J,{variant:"ghost",size:"sm",className:"h-7 text-xs justify-start",onClick:p,children:[a.jsx(Le,{className:"size-3"}),"Clear filter"]})]})}const Od={_eq:"Equals",_neq:"Not equals",_gt:"Greater than",_gte:"Greater or equal",_lt:"Less than",_lte:"Less or equal",_between:"Between",_null:"Is null"},Dd=300;function Cw(e){return(e.columnDef.meta?.paramType??"").replace("!","")==="Int"}function pi(e,t){if(e===""||e==="-")return null;const n=t?parseInt(e,10):parseFloat(e);return Number.isNaN(n)?null:n}function Sw({column:e}){const n=(e.columnDef.meta?.filterOperators??[]).filter(C=>C in Od),r=Cw(e),o=e.getFilterValue(),s=o?.operator??"_eq",[i,l]=M.useState(s),[c,u]=M.useState(()=>!o||o.operator==="_null"||o.operator==="_between"?"":String(o.value??"")),[f,d]=M.useState(()=>o?.operator==="_between"&&Array.isArray(o.value)?String(o.value[0]??""):""),[m,p]=M.useState(()=>o?.operator==="_between"&&Array.isArray(o.value)?String(o.value[1]??""):""),h=M.useRef();M.useEffect(()=>()=>{h.current&&clearTimeout(h.current)},[]);const g=(C,R)=>{if(h.current&&clearTimeout(h.current),C==="_null"){e.setFilterValue({operator:"_null",value:!0});return}const k=pi(R,r);if(k===null){e.setFilterValue(void 0);return}h.current=setTimeout(()=>{e.setFilterValue({operator:C,value:k})},Dd)},x=(C,R)=>{h.current&&clearTimeout(h.current);const k=pi(C,r),F=pi(R,r);if(k===null||F===null){e.setFilterValue(void 0);return}h.current=setTimeout(()=>{e.setFilterValue({operator:"_between",value:[k,F]})},Dd)},y=C=>{l(C),C==="_null"?(u(""),d(""),p(""),e.setFilterValue({operator:"_null",value:!0})):C==="_between"?(u(""),f&&m?x(f,m):e.setFilterValue(void 0)):(d(""),p(""),c?g(C,c):e.setFilterValue(void 0))},b=C=>{u(C),g(i,C)},w=C=>{d(C),x(C,m)},_=C=>{p(C),x(f,C)},E=()=>{h.current&&clearTimeout(h.current),l("_eq"),u(""),d(""),p(""),e.setFilterValue(void 0)};if(n.length===0)return null;const j=i==="_between",N=i==="_null";return a.jsxs("div",{className:"flex flex-col gap-2 p-2 min-w-[220px]",children:[a.jsxs(it,{value:i,onValueChange:y,children:[a.jsx(lt,{size:"sm",className:"w-full text-xs",children:a.jsx(at,{})}),a.jsx(ct,{children:n.map(C=>a.jsx(ze,{value:C,children:Od[C]},C))})]}),!N&&!j&&a.jsx(Qe,{type:"number",placeholder:"Filter value...",value:c,onChange:C=>b(C.target.value),className:"h-8 text-xs",autoFocus:!0}),j&&a.jsxs("div",{className:"flex gap-2",children:[a.jsx(Qe,{type:"number",placeholder:"Min",value:f,onChange:C=>w(C.target.value),className:"h-8 text-xs",autoFocus:!0}),a.jsx(Qe,{type:"number",placeholder:"Max",value:m,onChange:C=>_(C.target.value),className:"h-8 text-xs"})]}),o!==void 0&&a.jsxs(J,{variant:"ghost",size:"sm",className:"h-7 text-xs justify-start",onClick:E,children:[a.jsx(Le,{className:"size-3"}),"Clear filter"]})]})}const Ld={_eq:"On",_neq:"Not on",_gt:"After",_gte:"On or after",_lt:"Before",_lte:"On or before",_between:"Between",_null:"Is null"};function _w({column:e}){const n=(e.columnDef.meta?.filterOperators??[]).filter(j=>j in Ld),r=e.getFilterValue(),o=r?.operator??"_eq",[s,i]=M.useState(o),[l,c]=M.useState(()=>!r||r.operator==="_null"||r.operator==="_between"?"":String(r.value??"")),[u,f]=M.useState(()=>r?.operator==="_between"&&Array.isArray(r.value)?String(r.value[0]??""):""),[d,m]=M.useState(()=>r?.operator==="_between"&&Array.isArray(r.value)?String(r.value[1]??""):""),p=(j,N)=>{if(j==="_null"){e.setFilterValue({operator:"_null",value:!0});return}if(!N){e.setFilterValue(void 0);return}e.setFilterValue({operator:j,value:N})},h=(j,N)=>{if(!j||!N){e.setFilterValue(void 0);return}e.setFilterValue({operator:"_between",value:[j,N]})},g=j=>{i(j),j==="_null"?(c(""),f(""),m(""),e.setFilterValue({operator:"_null",value:!0})):j==="_between"?(c(""),u&&d?h(u,d):e.setFilterValue(void 0)):(f(""),m(""),l?p(j,l):e.setFilterValue(void 0))},x=j=>{c(j),p(s,j)},y=j=>{f(j),h(j,d)},b=j=>{m(j),h(u,j)},w=()=>{i("_eq"),c(""),f(""),m(""),e.setFilterValue(void 0)};if(n.length===0)return null;const _=s==="_between",E=s==="_null";return a.jsxs("div",{className:"flex flex-col gap-2 p-2 min-w-[220px]",children:[a.jsxs(it,{value:s,onValueChange:g,children:[a.jsx(lt,{size:"sm",className:"w-full text-xs",children:a.jsx(at,{})}),a.jsx(ct,{children:n.map(j=>a.jsx(ze,{value:j,children:Ld[j]},j))})]}),!E&&!_&&a.jsx(Qe,{type:"date",value:l,onChange:j=>x(j.target.value),className:"h-8 text-xs"}),_&&a.jsxs("div",{className:"flex gap-2",children:[a.jsx(Qe,{type:"date",value:u,onChange:j=>y(j.target.value),className:"h-8 text-xs"}),a.jsx(Qe,{type:"date",value:d,onChange:j=>b(j.target.value),className:"h-8 text-xs"})]}),r!==void 0&&a.jsxs(J,{variant:"ghost",size:"sm",className:"h-7 text-xs justify-start",onClick:w,children:[a.jsx(Le,{className:"size-3"}),"Clear filter"]})]})}const jw={all:"All",true:"True",false:"False",_null:"Is null"};function Mw(e){return e?e.operator==="_null"?"_null":e.operator==="_eq"&&e.value===!0?"true":e.operator==="_eq"&&e.value===!1?"false":"all":"all"}function Ew({column:e}){const n=(e.columnDef.meta?.filterOperators??[]).includes("_null"),r=e.getFilterValue(),o=Mw(r),s=n?["all","true","false","_null"]:["all","true","false"],i=c=>{switch(c){case"true":e.setFilterValue({operator:"_eq",value:!0});break;case"false":e.setFilterValue({operator:"_eq",value:!1});break;case"_null":e.setFilterValue({operator:"_null",value:!0});break;default:e.setFilterValue(void 0)}},l=()=>{e.setFilterValue(void 0)};return a.jsxs("div",{className:"flex flex-col gap-2 p-2 min-w-[220px]",children:[a.jsxs(it,{value:o,onValueChange:i,children:[a.jsx(lt,{size:"sm",className:"w-full text-xs",children:a.jsx(at,{})}),a.jsx(ct,{children:s.map(c=>a.jsx(ze,{value:c,children:jw[c]},c))})]}),r!==void 0&&a.jsxs(J,{variant:"ghost",size:"sm",className:"h-7 text-xs justify-start",onClick:l,children:[a.jsx(Le,{className:"size-3"}),"Clear filter"]})]})}function Nw({column:e,joinTable:t,joinLabelColumn:n,joinFkColumn:r}){const o=De(),i=Fe().findTable(t),l=`query Lookup${t} { ${t}(sort: [${n}_asc], limit: 100) { data { id: ${r} label: ${n} } } }`,{data:c}=Ce.useQuery({queryKey:["fkLookup",t,n],queryFn:()=>o.query(l),staleTime:300*1e3,enabled:!!i}),u=c?.[t]?.data??[],f=e.getFilterValue(),d=f?.operator==="_eq"&&f.value!=null?String(f.value):"all",m=h=>{if(h==="all"){e.setFilterValue(void 0);return}const g=Number(h),x=Number.isNaN(g)?h:g;e.setFilterValue({operator:"_eq",value:x})},p=()=>{e.setFilterValue(void 0)};return a.jsxs("div",{className:"flex flex-col gap-2 p-2 min-w-[220px]",children:[a.jsxs(it,{value:d,onValueChange:m,children:[a.jsx(lt,{size:"sm",className:"w-full text-xs",children:a.jsx(at,{})}),a.jsxs(ct,{children:[a.jsx(ze,{value:"all",children:"All"}),u.map(h=>a.jsx(ze,{value:String(h.id),children:String(h.label)},String(h.id)))]})]}),f!==void 0&&a.jsxs(J,{variant:"ghost",size:"sm",className:"h-7 text-xs justify-start",onClick:p,children:[a.jsx(Le,{className:"size-3"}),"Clear filter"]})]})}function uo(e){return(e.columnDef.meta?.paramType??"").replace("!","")}function kw(e){return uo(e)==="String"}function Rw(e){const t=uo(e);return t==="Int"||t==="Float"}function Tw(e){return uo(e)==="DateTime"}function Pw(e){return uo(e)==="Boolean"}function Fw(e){const t=e.columnDef.meta;return t?.joinTable?{joinTable:t.joinTable,joinLabelColumn:t.joinLabelColumn??"id",joinFkColumn:t.joinFkColumn??"id",isSelfReference:t.isSelfReference===!0}:null}function Iw(e){return e.columnDef.meta?.column}function $w(e){const t=e.paramType.replace("!","");if(e.dbType){const n=e.dbType.toUpperCase();return e.maxLength&&(n.includes("VARCHAR")||n.includes("CHAR"))?`${n}(${e.maxLength})`:(n.includes("DECIMAL")||n.includes("NUMERIC"),n)}return t}function Aw(e){const t=e.paramType.replace("!","");return e.isPrimaryKey?a.jsx(ul,{className:"size-3.5"}):t==="Int"||t==="Float"?a.jsx(wg,{className:"size-3.5"}):t==="DateTime"?a.jsx(gg,{className:"size-3.5"}):t==="Boolean"?a.jsx(Rg,{className:"size-3.5"}):a.jsx(Tg,{className:"size-3.5"})}function Ow({column:e,fkMeta:t}){const n=$w(e),r=e.isNullable,o=e.isPrimaryKey,s=e.isIdentity,i=e.defaultValue;return a.jsxs("div",{className:"space-y-2",children:[a.jsxs("div",{className:"flex items-center gap-2 border-b pb-2",children:[Aw(e),a.jsx("span",{className:"font-semibold text-foreground",children:e.label})]}),a.jsxs("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs",children:[a.jsx("dt",{className:"text-muted-foreground",children:"Type"}),a.jsx("dd",{className:"text-foreground font-medium",children:n}),a.jsx("dt",{className:"text-muted-foreground",children:"Nullable"}),a.jsx("dd",{className:"text-foreground",children:r?"Yes":"No"}),o&&a.jsxs(a.Fragment,{children:[a.jsx("dt",{className:"text-muted-foreground",children:"Primary Key"}),a.jsxs("dd",{className:"text-foreground text-primary flex items-center gap-1",children:[a.jsx(ul,{className:"size-3"}),"Yes"]})]}),s&&a.jsxs(a.Fragment,{children:[a.jsx("dt",{className:"text-muted-foreground",children:"Auto Increment"}),a.jsx("dd",{className:"text-foreground",children:"Yes"})]}),t&&a.jsxs(a.Fragment,{children:[a.jsx("dt",{className:"text-muted-foreground",children:"Foreign Key"}),a.jsxs("dd",{className:"text-foreground text-primary flex items-center gap-1",children:[a.jsx(dl,{className:"size-3"}),t.joinTable,t.isSelfReference&&a.jsx("span",{className:"ml-1 px-1 rounded bg-primary/10 text-[10px] font-medium",children:"self-ref"})]})]}),i!=null&&a.jsxs(a.Fragment,{children:[a.jsx("dt",{className:"text-muted-foreground",children:"Default"}),a.jsx("dd",{className:"text-foreground font-mono text-xs truncate max-w-[150px]",children:String(i)})]}),e.maxLength!==void 0&&a.jsxs(a.Fragment,{children:[a.jsx("dt",{className:"text-muted-foreground",children:"Max Length"}),a.jsx("dd",{className:"text-foreground",children:e.maxLength})]}),e.min!==void 0&&a.jsxs(a.Fragment,{children:[a.jsx("dt",{className:"text-muted-foreground",children:"Min"}),a.jsx("dd",{className:"text-foreground",children:e.min})]}),e.max!==void 0&&a.jsxs(a.Fragment,{children:[a.jsx("dt",{className:"text-muted-foreground",children:"Max"}),a.jsx("dd",{className:"text-foreground",children:e.max})]})]})]})}function un({column:e,table:t,title:n}){const r=t.options.meta?.onResetColumnWidths;if(!e.getCanSort())return a.jsx("span",{children:n});const o=e.getIsSorted(),s=e.getFilterValue()!==void 0,i=Fw(e),l=!i&&kw(e),c=!i&&Rw(e),u=!i&&Tw(e),f=!i&&Pw(e),d=Iw(e),m=a.jsxs(J,{variant:"ghost",size:"sm",className:Z("-ml-2 h-7 text-xs data-[state=open]:bg-accent",o&&"text-foreground"),children:[a.jsx("span",{children:n}),s&&a.jsx(At,{className:"size-3 text-primary"}),o==="desc"?a.jsx(ol,{className:"size-4"}):o==="asc"?a.jsx(il,{className:"size-4"}):a.jsx(sl,{className:"size-4"})]});return a.jsxs(Un,{openDelay:400,closeDelay:200,children:[a.jsxs(Fd,{children:[a.jsx(Id,{asChild:!0,children:a.jsx(Yn,{asChild:!0,children:m})}),a.jsxs($d,{align:"start",children:[a.jsxs(Gn,{onClick:()=>e.toggleSorting(!1),children:[a.jsx(il,{className:"size-3.5 text-muted-foreground"}),"Asc"]}),a.jsxs(Gn,{onClick:()=>e.toggleSorting(!0),children:[a.jsx(ol,{className:"size-3.5 text-muted-foreground"}),"Desc"]}),o&&a.jsxs(Gn,{onClick:()=>e.clearSorting(),children:[a.jsx(sl,{className:"size-3.5 text-muted-foreground"}),"Clear"]}),l&&a.jsxs(a.Fragment,{children:[a.jsx(Ht,{}),a.jsxs(qn,{children:[a.jsxs(Wn,{children:[a.jsx(At,{className:Z("size-3.5",s?"text-primary":"text-muted-foreground")}),"Filter"]}),a.jsx(Kn,{children:a.jsx(ww,{column:e})})]})]}),c&&a.jsxs(a.Fragment,{children:[a.jsx(Ht,{}),a.jsxs(qn,{children:[a.jsxs(Wn,{children:[a.jsx(At,{className:Z("size-3.5",s?"text-primary":"text-muted-foreground")}),"Filter"]}),a.jsx(Kn,{children:a.jsx(Sw,{column:e})})]})]}),u&&a.jsxs(a.Fragment,{children:[a.jsx(Ht,{}),a.jsxs(qn,{children:[a.jsxs(Wn,{children:[a.jsx(At,{className:Z("size-3.5",s?"text-primary":"text-muted-foreground")}),"Filter"]}),a.jsx(Kn,{children:a.jsx(_w,{column:e})})]})]}),f&&a.jsxs(a.Fragment,{children:[a.jsx(Ht,{}),a.jsxs(qn,{children:[a.jsxs(Wn,{children:[a.jsx(At,{className:Z("size-3.5",s?"text-primary":"text-muted-foreground")}),"Filter"]}),a.jsx(Kn,{children:a.jsx(Ew,{column:e})})]})]}),i&&a.jsxs(a.Fragment,{children:[a.jsx(Ht,{}),a.jsxs(qn,{children:[a.jsxs(Wn,{children:[a.jsx(At,{className:Z("size-3.5",s?"text-primary":"text-muted-foreground")}),"Filter"]}),a.jsx(Kn,{children:a.jsx(Nw,{column:e,joinTable:i.joinTable,joinLabelColumn:i.joinLabelColumn,joinFkColumn:i.joinFkColumn})})]})]}),e.getCanHide()&&a.jsxs(a.Fragment,{children:[a.jsx(Ht,{}),a.jsxs(Gn,{onClick:()=>e.toggleVisibility(!1),children:[a.jsx(bg,{className:"size-3.5 text-muted-foreground"}),"Hide"]})]}),r&&a.jsxs(a.Fragment,{children:[a.jsx(Ht,{}),a.jsxs(Gn,{onClick:r,children:[a.jsx(Eg,{className:"size-3.5 text-muted-foreground"}),"Reset column widths"]})]})]})]}),d&&a.jsx(Jn,{align:"start",className:"w-64",children:a.jsx(Ow,{column:d,fkMeta:i})})]})}function Dw(e,t){if(e==null)return null;switch(t){case"Int":{const n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.trunc(n):e}case"Float":{const n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?n:e}case"Boolean":return typeof e=="boolean"?e:e==="true"||e===1?!0:e==="false"||e===0?!1:!!e;default:return String(e)}}function Lw(e){return e?.paramType?.replace("!","")??"String"}function dn(e){return(e.sourceColumnNames?.length??0)>1}function Vw(e,t,n,r="fk"){if(!e)return null;const o=t.sourceColumnNames??[],s=t.destinationColumnNames??[];if(o.length===0||o.length!==s.length)return null;const i=new Map((n?.columns??[]).map(d=>[d.name,d])),l=[],c={},u=[];for(let d=0;d<o.length;d++){const m=o[d],p=s[d];if(!(m in e))return null;const h=Lw(i.get(p)),g=`${r}_${p}`;c[g]=Dw(e[m],h),u.push(`$${g}: ${h}`),l.push(`{${p}: {_eq: $${g}}}`)}return{filterText:l.length===1?l[0]:`{and: [${l.join(", ")}]}`,variables:c,params:u}}const zw=5,Bw=400,Hw=200;function Gw(e){return e.filter(t=>!t.isPrimaryKey).slice(0,zw)}function qw(e,t,n,r){const o=t.map(i=>i.name).join(" ");return`query FkPreview($id: ${r==="Int"||r==="Int!"?"Int":"String"}) { ${e}(filter: { ${n}: { _eq: $id } } limit: 1) { data { ${o} } } }`}function Ww(e,t,n,r){const o=t.map(s=>s.name).join(" ");return`query FkPreview(${n}) { ${e}(filter: ${r} limit: 1) { data { ${o} } } }`}function Kw(e){if(e==null)return"-";if(typeof e=="boolean")return e?"Yes":"No";const t=String(e);return t.length>50?t.slice(0,47)+"...":t}function Uw(e,t,n,r,o,s,i){if(n.length===0)return null;if(r&&dn(r)&&o){const f=Vw(o,r,t);if(!f)return null;const d=f.params.join(", ");return{query:Ww(e,n,d,f.filterText),variables:f.variables,cacheKey:f.variables}}const l=t.columns.find(f=>f.name===i)?.paramType??"Int",u={id:["Int","Int!","Float","Float!"].includes(l)?Number(s):s};return{query:qw(e,n,i,l),variables:u,cacheKey:s}}function Yw({tableName:e,recordId:t,filterColumn:n,join:r,sourceRow:o,children:s}){const[i,l]=M.useState(!1),c=Fe(),u=De(),f=c.findTable(e),d=f?Gw(f.columns):[],m=f?Uw(e,f,d,r,o,t,n):null,{data:p,isLoading:h}=Ce.useQuery({queryKey:["fkPreview",e,m?.cacheKey],queryFn:()=>u.query(m.query,m.variables),enabled:i&&!!m,staleTime:300*1e3}),g=p?.[e]?.data?.[0];return a.jsxs(Un,{openDelay:Bw,closeDelay:Hw,open:i,onOpenChange:l,children:[a.jsx(Yn,{asChild:!0,children:s}),a.jsx(Jn,{align:"start",className:"w-72",children:a.jsxs("div",{className:"space-y-2",children:[a.jsx("p",{className:"text-sm font-semibold text-foreground",children:f?.label??e}),h&&a.jsx("p",{className:"text-xs text-muted-foreground",children:"Loading..."}),g&&a.jsx("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1 text-xs",children:d.map(x=>a.jsxs("div",{className:"contents",children:[a.jsx("dt",{className:"text-muted-foreground truncate",children:x.label}),a.jsx("dd",{className:"text-foreground truncate",children:Kw(g[x.name])})]},x.name))}),!h&&!g&&i&&a.jsx("p",{className:"text-xs text-muted-foreground",children:"Record not found"})]})})]})}const Jw=new Set(["binary","varbinary","image","blob","tinyblob","mediumblob","longblob","bytea"]),Xw=new Set(["text","ntext","xml"]);function Xn(e){return Jw.has(e.toLowerCase().replace(/\(.*\)/,""))}function fo(e){const t=e.toLowerCase(),n=t.replace(/\(.*\)/,"");return!!(Xw.has(n)||t.includes("(max)"))}function gi(e,t){if(!e)return"text";if(t&&Xn(t))return"binary";const n=e.trimStart();if(n.startsWith("{")&&n.endsWith("}")||n.startsWith("[")&&n.endsWith("]"))try{return JSON.parse(n),"json"}catch{}return n.startsWith("<?xml")||n.startsWith("<")&&n.includes("</")&&n.endsWith(">")?"xml":/^[aOsidb]:\d+[:{;]/.test(n)?"php-serialized":e.length>200||e.includes(`
125
- `)?"longtext":"text"}const Vd=80;function Qw(e){return e.length<=Vd?e:e.slice(0,Vd)+"..."}function Zw(e){const t=Math.ceil(e.length*3/4);return t<1024?`${t} bytes`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function fn({kind:e}){return a.jsx("span",{className:"text-muted-foreground/60 italic select-none",children:e==="null"?"NULL":"empty"})}function hi(e){if(e==null)return a.jsx(fn,{kind:"null"});const t=String(e);return t===""?a.jsx(fn,{kind:"empty"}):t}const eC={json:al,xml:cl,"php-serialized":Nn,binary:wr,longtext:Sr,text:Sr},tC={json:"JSON",xml:"XML","php-serialized":"PHP",binary:"Binary",longtext:"Text",text:"Text"};function nC(e,t){if(t==="json")try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}return e}function rC({value:e,dbType:t,onExpand:n}){if(e==null)return a.jsx(fn,{kind:"null"});const r=String(e);if(r==="")return a.jsx(fn,{kind:"empty"});const o=gi(r,t);if(o==="text")return a.jsx("span",{children:r});if(o==="binary")return a.jsxs("span",{className:"inline-flex items-center gap-1.5 text-muted-foreground",children:[a.jsx(wr,{className:"size-3.5"}),a.jsx("span",{className:"text-xs font-mono",children:Zw(r)}),n&&a.jsx("button",{type:"button",className:"shrink-0 opacity-40 hover:opacity-100 transition-opacity",onClick:c=>{c.stopPropagation(),n()},"aria-label":"Expand content",children:a.jsx(us,{className:"size-3"})})]});const s=eC[o],i=Qw(r);return r.length>80||o==="json"||o==="xml"||o==="php-serialized"?a.jsxs(Un,{openDelay:300,closeDelay:200,children:[a.jsx(Yn,{asChild:!0,children:a.jsxs("button",{type:"button",className:"inline-flex items-center gap-1.5 text-left hover:text-primary transition-colors max-w-full",children:[a.jsx(s,{className:"size-3 text-muted-foreground shrink-0"}),a.jsx("span",{className:"font-mono text-xs truncate",children:i}),n&&a.jsx("span",{role:"button",tabIndex:0,className:"shrink-0 opacity-40 hover:opacity-100 transition-opacity",onClick:c=>{c.stopPropagation(),c.preventDefault(),n()},onKeyDown:c=>{c.key==="Enter"&&(c.stopPropagation(),n())},"aria-label":"Expand content",children:a.jsx(us,{className:"size-3"})})]})}),a.jsxs(Jn,{side:"bottom",align:"start",className:"w-[420px] max-h-[320px] p-0",children:[a.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-1.5 border-b border-border bg-muted/30",children:[a.jsx(s,{className:"size-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:tC[o]}),a.jsxs("span",{className:"text-xs text-muted-foreground ml-auto",children:[r.length," chars"]})]}),a.jsx("pre",{className:"p-3 text-xs font-mono overflow-auto max-h-[280px] whitespace-pre-wrap break-all",children:nC(r,o)})]})]}):a.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[a.jsx(s,{className:"size-3 text-muted-foreground shrink-0"}),a.jsx("span",{className:"font-mono text-xs",children:r}),n&&a.jsx("button",{type:"button",className:"shrink-0 opacity-40 hover:opacity-100 transition-opacity",onClick:c=>{c.stopPropagation(),n()},"aria-label":"Expand content",children:a.jsx(us,{className:"size-3"})})]})}const vi="::";function zd(e){return e==null?"":encodeURIComponent(String(e))}function Bd(e){return e===""?null:decodeURIComponent(e)}function Qn(e,t,n){const r=t.primaryKeys??[];return r.length===0?`row-${n}`:r.map(o=>zd(e?.[o])).join(vi)}function mo(e,t){const n=t.primaryKeys??[];if(n.length===0||e==null)return null;const r={};for(const o of n){if(!(o in e))return null;r[o]=e[o]}return r}function oC(e,t){if(e==null)return null;switch(t){case"Int":{const n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.trunc(n):e}case"Float":{const n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?n:e}case"Boolean":return typeof e=="boolean"?e:e==="true"||e===1?!0:e==="false"||e===0?!1:!!e;default:return String(e)}}function sC(e){return e?.paramType?.replace("!","")??"String"}function Hd(e,t){const n=mo(e,t);if(!n)return null;const r=new Map((t.columns??[]).map(c=>[c.name,c])),o=[],s={},i=[];for(const c of t.primaryKeys??[]){const u=sC(r.get(c)),f=`pk_${c}`;s[f]=oC(n[c],u),i.push(`$${f}: ${u}`),o.push(`{${c}: {_eq: $${f}}}`)}return{filterText:o.length===1?o[0]:`{and: [${o.join(", ")}]}`,variables:s,params:i}}function iC(e,t){const n=t.primaryKeys??[];return n.length===0?"":n.map(r=>zd(e[r])).join(vi)}function xi(e,t){const n=t.primaryKeys??[];if(n.length===0)return null;if(n.length===1)return{[n[0]]:Bd(e)};const r=e.split(vi);if(r.length!==n.length)return null;const o={};for(let s=0;s<n.length;s++)o[n[s]]=Bd(r[s]);return o}function aC(e,t,n){if(!e)return;const r=e.filter(o=>o.destinationTable===t);if(r.length!==0){if(r.length===1)return r[0];if(n){const o=r.find(s=>s.destinationColumnNames?.[0]===n);if(o)return o}return r[0]}}function lC(e){return e.fieldName??e.destinationTable}const Gd={String:["_eq","_neq","_contains","_starts_with","_ends_with","_null"],Int:["_eq","_neq","_gt","_gte","_lt","_lte","_between","_null"],Float:["_eq","_neq","_gt","_gte","_lt","_lte","_between","_null"],Boolean:["_eq","_null"],DateTime:["_eq","_neq","_gt","_gte","_lt","_lte","_between","_null"]},cC=/^[_A-Za-z][_0-9A-Za-z]*$/,uC=/^[_A-Za-z][_0-9A-Za-z]*!?$/;function qd(e){return typeof e=="string"&&cC.test(e)}function dC(e){return typeof e=="string"&&uC.test(e)}function Wd(e,t){return typeof e=="string"&&Kd(t).includes(e)}function Kd(e){const t=e.replace("!","");return Gd[t]??Gd.String}function Ud(e){try{if(!e)return{variables:{},param:"",filterText:""};const[t,n,r,o]=JSON.parse(e);return!qd(t)||!dC(o)||!Wd(n,o)?{variables:{},param:"",filterText:""}:{variables:{filter:r},param:`, $filter: ${o}`,filterText:`{${t}: {${n}: $filter} }`}}catch{return{variables:{},param:"",filterText:""}}}function Yd(e){if(!e)return"";const t=new Date(e);return t.toString()==="Invalid Date"||t<new Date("1973-01-01")?"":t.toLocaleString()}function fC(e,t){const n=t.primaryKeys??[];return n.length===0?String(e?.id??""):n.length===1?String(e?.[n[0]]??""):Qn(e,t,0)}function mC(e){switch(e.replace("!","")){case"Int":return"Int";case"Float":return"Float";case"Boolean":return"Boolean";case"DateTime":return"String";default:return"String"}}function Jd(e,t){const n={},r=[],o=[];for(const s of e){const i=s.value;if(i.value===void 0||i.value===null||i.value==="")continue;const l=t.columns.find(f=>f.name===s.id);if(!l||!qd(s.id)||!Wd(i.operator,l.paramType))continue;const c=`cf_${s.id}`,u=mC(l.paramType);if(i.operator==="_null"){o.push(`{${s.id}: {_null: ${i.value?"true":"false"}}}`);continue}if(i.operator==="_between"){const f=i.value;if(!Array.isArray(f)||f.length!==2)continue;const d=`${c}_lo`,m=`${c}_hi`;n[d]=f[0],n[m]=f[1],r.push(`$${d}: ${u}`,`$${m}: ${u}`),o.push(`{${s.id}: {_between: [$${d}, $${m}]}}`);continue}n[c]=i.value,r.push(`$${c}: ${u}`),o.push(`{${s.id}: {${i.operator}: $${c}}}`)}return{variables:n,params:r,filterTexts:o}}function pC(e){return e.length===0?"":JSON.stringify(e.map(t=>[t.id,t.value.operator,t.value.value]))}function gC(e){try{return e?JSON.parse(e).map(([n,r,o])=>({id:n,value:{operator:r,value:o}})):[]}catch{return[]}}function Xd(e){return Zn(e)[0]?.gqlType??"Int"}function Zn(e){const t=e.primaryKeys??[];if(t.length===0)return[];const n=new Map(e.columns.map(r=>[r.name,r]));return t.map(r=>({name:r,gqlType:n.get(r)?.paramType?.replace("!","")??"String"}))}function hC(e,t){if(e==null)return null;switch(t){case"Int":{const n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.trunc(n):e}case"Float":{const n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?n:e}case"Boolean":return typeof e=="boolean"?e:e==="true"||e===1;default:return String(e)}}function yi(e,t){if(Zn(t).length<=1)return{id:hC(e,Xd(t))};const r=xi(e,t);return r?Hd(r,t)?.variables??{}:{}}function vC(e,t){return t.map(n=>{const r=e.findTable(n.destinationTable),o=r?.labelColumn??"id",i=[...r?.primaryKeys?.length?r.primaryKeys:["id"]];return o&&!i.includes(o)&&i.push(o),`${n.fieldName??n.destinationTable} { ${i.join(" ")} }`}).join(" ")}function xC(e,t,n,r,o,s,i){if(!e||!t?.data)return null;const l=t.findTable(e.graphQlName);if(!l)return null;const c=Xd(l),u=Zn(l),f=u[0]?.name??"id";let{param:d,filterText:m}=Ud(n);const{params:p,filterTexts:h}=Jd(r,e);p.length>0&&(d+=p.map(_=>`, ${_}`).join(""));const g=[];m&&g.push(m),g.push(...h),g.length>1?m=`{and: [${g.join(", ")}]}`:g.length===1?m=g[0]:m="";const x=new Set,y=e.columns.filter(_=>_?.joinTable===void 0).map(_=>{const E=l.singleJoins.find(C=>C.sourceColumnNames?.[0]===_.name);if(!E)return _;const N=t.findTable(E.destinationTable)?.labelColumn??"id";return{..._,joinTable:E,joinLabelColumn:N}}).map(_=>{if(_?.joinTable){x.add(_.name);const E=t.findTable(_.joinTable.destinationTable),j=E?.primaryKeys?.length?E.primaryKeys:_.joinTable.destinationColumnNames,N=_.joinLabelColumn??"id",C=N&&!j.includes(N)?` label: ${N}`:"";return j.length===1?`${_.name} ${_.joinTable.destinationTable} { id: ${j[0]}${C} }`:`${_.name} ${_.joinTable.destinationTable} { ${j.join(" ")}${C} }`}return _.name}).join(" "),b=vC(t,l.multiJoins),w=b?`${y} ${b}`:y;if(o&&(i||s)){const _=bi(e,t,s,i);if(_){const E=m?` filter: ${m}`:"",j=`${_.childField}(limit: $limit offset: $offset sort: $sort${E}) { total offset limit data {${w}} }`,N=Zn(_.parentTable);if(N.length<=1){const F=N[0]?.name??"id";d=`, $id: ${N[0]?.gqlType??"Int"}`+d;const W=`{ ${F}: { _eq: $id}}`;return`query Get${e.name}($sort: [${e.graphQlName}SortEnum!], $limit: Int, $offset: Int ${d}) { ${_.parentTable.name}(filter: ${W}) { data { ${j} } } }`}d=`, ${N.map(F=>`$pk_${F.name}: ${F.gqlType}`).join(", ")}`+d;const k=`{and: [${N.map(F=>`{${F.name}: {_eq: $pk_${F.name}}}`).join(", ")}]}`;return`query Get${e.name}($sort: [${e.graphQlName}SortEnum!], $limit: Int, $offset: Int ${d}) { ${_.parentTable.name}(filter: ${k}) { data { ${j} } } }`}}return o&&!s&&!i&&(u.length<=1?(d=`, $id: ${c}`,m=`{ ${f}: { _eq: $id}}`):(d=`, ${u.map(E=>`$pk_${E.name}: ${E.gqlType}`).join(", ")}`,m=`{and: [${u.map(E=>`{${E.name}: {_eq: $pk_${E.name}}}`).join(", ")}]}`)),m&&(m=`filter: ${m}`),`query Get${e.name}($sort: [${e.graphQlName}SortEnum!], $limit: Int, $offset: Int ${d}) { ${e.name}(sort: $sort limit: $limit offset: $offset ${m}) { total offset limit data {${w}}}}`}const yC={data:[],total:0,offset:0,limit:0};function bC(e,t,n){const s=e?.[t]?.data?.[0]?.[n];return!s||!Array.isArray(s.data)?yC:s}function bi(e,t,n,r){const o=n??t.findTable(e.graphQlName)?.singleJoins.find(l=>l.destinationTable===r)?.destinationTable;if(!o)return null;const s=t.findTable(o);if(!s)return null;const i=aC(s.multiJoins,e.graphQlName,r);return i?{parentTable:s,childField:lC(i)}:null}function Qd(e,t){return e?!t||(t.primaryKeys?.length??0)<=1?String(e?.id??""):Qn(e,t,0):""}function wC(e,t){const n=t.fieldName??t.destinationTable;return e[n]??[]}const CC=(e,t,n,r)=>{if(!e||!t)return[];const o=e.columns.map(i=>{const l=e.singleJoins.find(d=>d.sourceColumnNames?.[0]===i.name),c=l?void 0:e.singleJoins.find(d=>(d.sourceColumnNames??[]).includes(i.name)),u=Kd(i.paramType);if(l){const d=l.destinationTable,m=t.findTable(l.destinationTable),p=m?.labelColumn??"id",h=dn(l),g=l.destinationTable===e.name,x=g?`Parent ${i.label}`:i.label;return{id:i.name,accessorKey:i.name,header:({column:y,table:b})=>a.jsx(un,{column:y,table:b,title:x}),enableSorting:!0,meta:{sortField:i.name,paramType:i.paramType,filterOperators:u,joinTable:l.destinationTable,joinLabelColumn:p,joinFkColumn:l.destinationColumnNames[0],column:i,isSelfReference:g,isCompositeFk:h},cell:({row:y})=>{const b=y.original[d];if(!b)return a.jsx(fn,{kind:"null"});const w=Qd(b,m);return a.jsxs("span",{className:"group/fk inline-flex items-center gap-0.5",children:[a.jsx(Yw,{tableName:l.destinationTable,recordId:w,filterColumn:l.destinationColumnNames[0],join:l,sourceRow:y.original,children:a.jsx(Xt,{to:"/"+m?.name+"/"+w,className:"text-primary hover:text-primary/80 hover:underline",children:b?.label})}),r&&a.jsx(J,{variant:"ghost",size:"icon-sm",className:"opacity-0 group-hover/fk:opacity-100 size-5 shrink-0",onClick:_=>{_.stopPropagation(),r({tableName:l.destinationTable,filterId:w})},"aria-label":"Open in side column",title:"Open in side column",children:a.jsx(ds,{className:"size-3"})})]})}}}if(c){const m=t.findTable(c.destinationTable)?.labelColumn??"id",p=c.destinationTable===e.name;return{id:i.name,accessorFn:h=>i.name?String(h?.[i.name]??""):"",cell:({row:h})=>hi(h.original[i.name]),header:({column:h,table:g})=>a.jsx(un,{column:h,table:g,title:i.label}),enableSorting:!0,meta:{sortField:i.name,paramType:i.paramType,dbType:i.dbType,filterOperators:u,joinTable:c.destinationTable,joinLabelColumn:m,joinFkColumn:c.destinationColumnNames[(c.sourceColumnNames??[]).indexOf(i.name)]??c.destinationColumnNames[0],column:i,isSelfReference:p,isCompositeFk:!0,isCompositeFkMember:!0}}}return i?.joinTable?{id:i.name,accessorKey:i.name,header:({column:d,table:m})=>a.jsx(un,{column:d,table:m,title:i.label}),enableSorting:!0,meta:{sortField:i.name,paramType:i.paramType,filterOperators:u,column:i},cell:({row:d})=>{const m=d.original[i.name];return m?a.jsx(Xt,{to:"/"+i.name+"/"+Qd(m,void 0),className:"text-primary hover:text-primary/80 hover:underline",children:i.name}):null}}:i?.paramType==="DateTime"?{id:i.name,accessorFn:d=>Yd(d?.[i.name]),cell:({row:d})=>{const m=d.original[i.name];return m==null||m===""?a.jsx(fn,{kind:m===""?"empty":"null"}):Yd(m)},header:({column:d,table:m})=>a.jsx(un,{column:d,table:m,title:i.label}),enableSorting:!0,meta:{sortField:i.name,paramType:i.paramType,dbType:i.dbType,filterOperators:u,column:i}}:fo(i.dbType)||Xn(i.dbType)?{id:i.name,accessorFn:d=>i.name?String(d?.[i.name]??""):"",header:({column:d,table:m})=>a.jsx(un,{column:d,table:m,title:i.label}),enableSorting:!0,meta:{sortField:i.name,paramType:i.paramType,dbType:i.dbType,filterOperators:u,column:i},cell:({row:d})=>a.jsx(rC,{value:d.original[i.name],dbType:i.dbType,onExpand:n?()=>n(d.index,i.name):void 0})}:{id:i.name,accessorFn:d=>i.name?String(d?.[i.name]??""):"",cell:({row:d})=>hi(d.original[i.name]),header:({column:d,table:m})=>a.jsx(un,{column:d,table:m,title:i.label}),enableSorting:!0,meta:{sortField:i.name,paramType:i.paramType,dbType:i.dbType,filterOperators:u,column:i}}}),s=e.multiJoins.map(i=>{const l=t.findTable(i.destinationTable),c=l?.labelColumn??"id",f=i.destinationTable===e.name?`Child ${l?.label??i.destinationTable}`:l?.label??i.destinationTable;return{id:`join_${i.fieldName??i.destinationTable}`,header:f,enableSorting:!1,enableHiding:!0,cell:({row:d})=>{const m=fC(d.original,e),p=wC(d.original,i),h=p.length;if(h===0)return a.jsx("span",{className:"text-muted-foreground",children:"—"});const g=p.slice(0,10).map(y=>String(y[c]??"")).filter(Boolean),x=l?.label??i.destinationTable;return a.jsxs("span",{className:"group/fk inline-flex items-center gap-1",children:[a.jsxs(Un,{openDelay:300,closeDelay:100,children:[a.jsx(Yn,{asChild:!0,children:a.jsxs(Xt,{to:"/"+l?.name+"/from/"+e.name+"/"+m,className:"inline-flex items-center gap-1 rounded-full border border-border bg-muted/40 px-2 py-0.5 text-xs font-medium text-primary hover:bg-muted hover:border-primary/40 transition-colors",children:[a.jsx(fl,{className:"size-3"}),h]})}),a.jsxs(Jn,{align:"start",sideOffset:6,className:"w-auto max-w-xs p-3",children:[a.jsxs("div",{className:"flex items-center gap-2 border-b pb-2 mb-2",children:[a.jsx(fl,{className:"size-3.5 text-primary"}),a.jsxs("span",{className:"text-xs font-semibold text-foreground",children:[h," ",x]})]}),a.jsxs("ul",{className:"space-y-0.5 text-xs text-foreground",children:[g.map((y,b)=>a.jsx("li",{className:"truncate",children:y},b)),h>10&&a.jsxs("li",{className:"text-muted-foreground italic",children:["… and ",h-10," more"]})]})]})]}),r&&a.jsx(J,{variant:"ghost",size:"icon-sm",className:"opacity-40 group-hover/fk:opacity-100 size-5 shrink-0 transition-opacity",onClick:y=>{y.stopPropagation(),r({tableName:i.destinationTable,filterTable:e.name,filterId:m,...dn(i)?{}:{filterColumn:i.destinationColumnNames[0]}})},"aria-label":"Open in side column",title:"Open in side column",children:a.jsx(ds,{className:"size-3"})})]})}}});return[...o,...s]};function SC(e,t,n,r,o){if(!r&&!o)return yi(e,t);const s=bi(t,n,r,o);return s?yi(e,s.parentTable):yi(e,t)}function _C(e,t,n,r,o,s){const{search:i}=Wp(),l=Mn(),c=i.get("filter")??"",u=i.get("cf")??"",{variables:f}=Ud(c),d=Fe(),m=De(),[p,h]=M.useState([]),[g,x]=M.useState(()=>gC(u)),[y,b]=M.useState(0),[w,_]=M.useState(50),E=M.useRef(e);e&&e!==E.current&&(E.current=e,p.length>0&&h([]),g.length>0&&x([]),y!==0&&b(0));const j=M.useMemo(()=>{if(p.length>0&&e){const K=p[0];if(e.columns.some(A=>A.name===K.id))return[`${K.id}_${K.desc?"desc":"asc"}`]}return e?[`${e.columns.at(0)?.name??"id"}_asc`]:[]},[p,e]),N=M.useMemo(()=>xC(e,d,c,g,t,n,r),[e,d,c,g,t,n,r]),C=M.useMemo(()=>e?Jd(g,e).variables:{},[g,e]),R=y*w,k=M.useMemo(()=>({sort:j,limit:w,offset:R,...t&&e?SC(t,e,d,n,r):{},...f,...C}),[j,w,R,t,e,d,n,r,f,C]),{isLoading:F,error:q,data:W}=Ce.useQuery({queryKey:["tableData",e?.name,N,k],queryFn:()=>m.query(N,k),enabled:!!N&&!!e&&j.length>0}),B=M.useMemo(()=>e?CC(e,d,o,s):[],[e,d,o,s]),U=M.useMemo(()=>t&&(n||r)&&e?bi(e,d,n,r):null,[t,n,r,e,d]);let D,Y;if(U){const K=bC(W,U.parentTable.name,U.childField);D=K.data,Y=K.total}else{const K=W?.[e?.name??""];D=K?.data??[],Y=K?.total??0}const H=Math.max(1,Math.ceil(Y/w)),$=M.useCallback(K=>{const re=new URLSearchParams,A=i.get("filter");A&&re.set("filter",A);const oe=pC(K);oe&&re.set("cf",oe);const ne=re.toString();l(ne?`?${ne}`:"?")},[i,l]),I=M.useCallback(K=>{h(K),b(0)},[]),pe=M.useCallback(K=>{x(K),b(0),$(K)},[$]),ae=M.useCallback(K=>{b(K)},[]),de=M.useCallback(K=>{_(K),b(0)},[]),he=e?.primaryKeys??[];return{columns:B,sorting:p,columnFilters:g,primaryKeys:he,pageIndex:y,pageSize:w,pageCount:H,rows:D,loading:F,error:q,onSortingChange:I,onColumnFiltersChange:pe,onPageIndexChange:ae,onPageSizeChange:de}}function jC(e){return typeof e=="object"&&e!==null}function Zd(e,t){if(e==null)return null;if(!t)return e;const n=t.replace("!","");if(n==="Int"){const r=typeof e=="number"?e:Number(e);return Number.isFinite(r)?Math.trunc(r):e}if(n==="Float"){const r=typeof e=="number"?e:Number(e);return Number.isFinite(r)?r:e}return n==="Boolean"?typeof e=="boolean"?e:e==="true"||e===1:String(e)}function ef(e){const t=De(),n=Ce.useQueryClient(),r=M.useMemo(()=>{const p=new Map;for(const h of e.columns)p.set(h.name,h.paramType);return p},[e]),o=M.useMemo(()=>{const p=e.primaryKeys??[];return p.length>0?p:["id"]},[e]),s=p=>{const h={};if(jC(p)){for(const x of o)h[x]=Zd(p[x],r.get(x));return h}const g=o[0];return h[g]=Zd(p,r.get(g)),h},i=M.useMemo(()=>`mutation deleteSingle($detail: Delete_${e.name}){
125
+ `)?"longtext":"text"}const Vd=80;function Qw(e){return e.length<=Vd?e:e.slice(0,Vd)+"..."}function Zw(e){const t=Math.ceil(e.length*3/4);return t<1024?`${t} bytes`:t<1024*1024?`${(t/1024).toFixed(1)} KB`:`${(t/(1024*1024)).toFixed(1)} MB`}function fn({kind:e}){return a.jsx("span",{className:"text-muted-foreground/60 italic select-none",children:e==="null"?"NULL":"empty"})}function hi(e){if(e==null)return a.jsx(fn,{kind:"null"});const t=String(e);return t===""?a.jsx(fn,{kind:"empty"}):t}const eC={json:al,xml:cl,"php-serialized":Nn,binary:wr,longtext:Sr,text:Sr},tC={json:"JSON",xml:"XML","php-serialized":"PHP",binary:"Binary",longtext:"Text",text:"Text"};function nC(e,t){if(t==="json")try{return JSON.stringify(JSON.parse(e),null,2)}catch{return e}return e}function rC({value:e,dbType:t,onExpand:n}){if(e==null)return a.jsx(fn,{kind:"null"});const r=String(e);if(r==="")return a.jsx(fn,{kind:"empty"});const o=gi(r,t);if(o==="text")return a.jsx("span",{children:r});if(o==="binary")return a.jsxs("span",{className:"inline-flex items-center gap-1.5 text-muted-foreground",children:[a.jsx(wr,{className:"size-3.5"}),a.jsx("span",{className:"text-xs font-mono",children:Zw(r)}),n&&a.jsx("button",{type:"button",className:"shrink-0 opacity-40 hover:opacity-100 transition-opacity",onClick:c=>{c.stopPropagation(),n()},"aria-label":"Expand content",children:a.jsx(us,{className:"size-3"})})]});const s=eC[o],i=Qw(r);return r.length>80||o==="json"||o==="xml"||o==="php-serialized"?a.jsxs(Un,{openDelay:300,closeDelay:200,children:[a.jsx(Yn,{asChild:!0,children:a.jsxs("button",{type:"button",className:"inline-flex items-center gap-1.5 text-left hover:text-primary transition-colors max-w-full",children:[a.jsx(s,{className:"size-3 text-muted-foreground shrink-0"}),a.jsx("span",{className:"font-mono text-xs truncate",children:i}),n&&a.jsx("span",{role:"button",tabIndex:0,className:"shrink-0 opacity-40 hover:opacity-100 transition-opacity",onClick:c=>{c.stopPropagation(),c.preventDefault(),n()},onKeyDown:c=>{c.key==="Enter"&&(c.stopPropagation(),n())},"aria-label":"Expand content",children:a.jsx(us,{className:"size-3"})})]})}),a.jsxs(Jn,{side:"bottom",align:"start",className:"w-[420px] max-h-[320px] p-0",children:[a.jsxs("div",{className:"flex items-center gap-1.5 px-3 py-1.5 border-b border-border bg-muted/30",children:[a.jsx(s,{className:"size-3.5 text-muted-foreground"}),a.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:tC[o]}),a.jsxs("span",{className:"text-xs text-muted-foreground ml-auto",children:[r.length," chars"]})]}),a.jsx("pre",{className:"p-3 text-xs font-mono overflow-auto max-h-[280px] whitespace-pre-wrap break-all",children:nC(r,o)})]})]}):a.jsxs("span",{className:"inline-flex items-center gap-1.5",children:[a.jsx(s,{className:"size-3 text-muted-foreground shrink-0"}),a.jsx("span",{className:"font-mono text-xs",children:r}),n&&a.jsx("button",{type:"button",className:"shrink-0 opacity-40 hover:opacity-100 transition-opacity",onClick:c=>{c.stopPropagation(),n()},"aria-label":"Expand content",children:a.jsx(us,{className:"size-3"})})]})}const vi="::";function zd(e){return e==null?"":encodeURIComponent(String(e))}function Bd(e){return e===""?null:decodeURIComponent(e)}function Qn(e,t,n){const r=t.primaryKeys??[];return r.length===0?`row-${n}`:r.map(o=>zd(e?.[o])).join(vi)}function mo(e,t){const n=t.primaryKeys??[];if(n.length===0||e==null)return null;const r={};for(const o of n){if(!(o in e))return null;r[o]=e[o]}return r}function oC(e,t){if(e==null)return null;switch(t){case"Int":{const n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.trunc(n):e}case"Float":{const n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?n:e}case"Boolean":return typeof e=="boolean"?e:e==="true"||e===1?!0:e==="false"||e===0?!1:!!e;default:return String(e)}}function sC(e){return e?.paramType?.replace("!","")??"String"}function Hd(e,t){const n=mo(e,t);if(!n)return null;const r=new Map((t.columns??[]).map(c=>[c.name,c])),o=[],s={},i=[];for(const c of t.primaryKeys??[]){const u=sC(r.get(c)),f=`pk_${c}`;s[f]=oC(n[c],u),i.push(`$${f}: ${u}`),o.push(`{${c}: {_eq: $${f}}}`)}return{filterText:o.length===1?o[0]:`{and: [${o.join(", ")}]}`,variables:s,params:i}}function iC(e,t){const n=t.primaryKeys??[];return n.length===0?"":n.map(r=>zd(e[r])).join(vi)}function xi(e,t){const n=t.primaryKeys??[];if(n.length===0)return null;if(n.length===1)return{[n[0]]:Bd(e)};const r=e.split(vi);if(r.length!==n.length)return null;const o={};for(let s=0;s<n.length;s++)o[n[s]]=Bd(r[s]);return o}function aC(e,t,n){if(!e)return;const r=e.filter(o=>o.destinationTable===t);if(r.length!==0){if(r.length===1)return r[0];if(n){const o=r.find(s=>s.destinationColumnNames?.[0]===n);if(o)return o}return r[0]}}function lC(e){return e.fieldName??e.destinationTable}const Gd={String:["_eq","_neq","_contains","_starts_with","_ends_with","_null"],Int:["_eq","_neq","_gt","_gte","_lt","_lte","_between","_null"],Float:["_eq","_neq","_gt","_gte","_lt","_lte","_between","_null"],Boolean:["_eq","_null"],DateTime:["_eq","_neq","_gt","_gte","_lt","_lte","_between","_null"]},cC=/^[_A-Za-z][_0-9A-Za-z]*$/,uC=/^[_A-Za-z][_0-9A-Za-z]*!?$/;function qd(e){return typeof e=="string"&&cC.test(e)}function dC(e){return typeof e=="string"&&uC.test(e)}function Wd(e,t){return typeof e=="string"&&Kd(t).includes(e)}function Kd(e){const t=e.replace("!","");return Gd[t]??Gd.String}function Ud(e){try{if(!e)return{variables:{},param:"",filterText:""};const[t,n,r,o]=JSON.parse(e);return!qd(t)||!dC(o)||!Wd(n,o)?{variables:{},param:"",filterText:""}:{variables:{filter:r},param:`, $filter: ${o}`,filterText:`{${t}: {${n}: $filter} }`}}catch{return{variables:{},param:"",filterText:""}}}function Yd(e){if(!e)return"";const t=new Date(e);return t.toString()==="Invalid Date"||t<new Date("1973-01-01")?"":t.toLocaleString()}function fC(e,t){const n=t.primaryKeys??[];return n.length===0?String(e?.id??""):n.length===1?String(e?.[n[0]]??""):Qn(e,t,0)}function mC(e){switch(e.replace("!","")){case"Int":return"Int";case"Float":return"Float";case"Boolean":return"Boolean";case"DateTime":return"String";default:return"String"}}function Jd(e,t){const n={},r=[],o=[];for(const s of e){const i=s.value;if(i.value===void 0||i.value===null||i.value==="")continue;const l=t.columns.find(f=>f.name===s.id);if(!l||!qd(s.id)||!Wd(i.operator,l.paramType))continue;const c=`cf_${s.id}`,u=mC(l.paramType);if(i.operator==="_null"){o.push(`{${s.id}: {_null: ${i.value?"true":"false"}}}`);continue}if(i.operator==="_between"){const f=i.value;if(!Array.isArray(f)||f.length!==2)continue;const d=`${c}_lo`,m=`${c}_hi`;n[d]=f[0],n[m]=f[1],r.push(`$${d}: ${u}`,`$${m}: ${u}`),o.push(`{${s.id}: {_between: [$${d}, $${m}]}}`);continue}n[c]=i.value,r.push(`$${c}: ${u}`),o.push(`{${s.id}: {${i.operator}: $${c}}}`)}return{variables:n,params:r,filterTexts:o}}function pC(e){return e.length===0?"":JSON.stringify(e.map(t=>[t.id,t.value.operator,t.value.value]))}function gC(e){try{return e?JSON.parse(e).map(([n,r,o])=>({id:n,value:{operator:r,value:o}})):[]}catch{return[]}}function Xd(e){return Zn(e)[0]?.gqlType??"Int"}function Zn(e){const t=e.primaryKeys??[];if(t.length===0)return[];const n=new Map(e.columns.map(r=>[r.name,r]));return t.map(r=>({name:r,gqlType:n.get(r)?.paramType?.replace("!","")??"String"}))}function hC(e,t){if(e==null)return null;switch(t){case"Int":{const n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?Math.trunc(n):e}case"Float":{const n=typeof e=="number"?e:Number(e);return Number.isFinite(n)?n:e}case"Boolean":return typeof e=="boolean"?e:e==="true"||e===1;default:return String(e)}}function yi(e,t){if(Zn(t).length<=1)return{id:hC(e,Xd(t))};const r=xi(e,t);return r?Hd(r,t)?.variables??{}:{}}function vC(e,t){return t.map(n=>{const r=e.findTable(n.destinationTable),o=r?.labelColumn??"id",i=[...r?.primaryKeys?.length?r.primaryKeys:["id"]];return o&&!i.includes(o)&&i.push(o),`${n.fieldName??n.destinationTable} { data { ${i.join(" ")} } }`}).join(" ")}function xC(e,t,n,r,o,s,i){if(!e||!t?.data)return null;const l=t.findTable(e.graphQlName);if(!l)return null;const c=Xd(l),u=Zn(l),f=u[0]?.name??"id";let{param:d,filterText:m}=Ud(n);const{params:p,filterTexts:h}=Jd(r,e);p.length>0&&(d+=p.map(_=>`, ${_}`).join(""));const g=[];m&&g.push(m),g.push(...h),g.length>1?m=`{and: [${g.join(", ")}]}`:g.length===1?m=g[0]:m="";const x=new Set,y=e.columns.filter(_=>_?.joinTable===void 0).map(_=>{const E=l.singleJoins.find(C=>C.sourceColumnNames?.[0]===_.name);if(!E)return _;const N=t.findTable(E.destinationTable)?.labelColumn??"id";return{..._,joinTable:E,joinLabelColumn:N}}).map(_=>{if(_?.joinTable){x.add(_.name);const E=t.findTable(_.joinTable.destinationTable),j=E?.primaryKeys?.length?E.primaryKeys:_.joinTable.destinationColumnNames,N=_.joinLabelColumn??"id",C=N&&!j.includes(N)?` label: ${N}`:"";return j.length===1?`${_.name} ${_.joinTable.destinationTable} { id: ${j[0]}${C} }`:`${_.name} ${_.joinTable.destinationTable} { ${j.join(" ")}${C} }`}return _.name}).join(" "),b=vC(t,l.multiJoins),w=b?`${y} ${b}`:y;if(o&&(i||s)){const _=bi(e,t,s,i);if(_){const E=m?` filter: ${m}`:"",j=`${_.childField}(limit: $limit offset: $offset sort: $sort${E}) { total offset limit data {${w}} }`,N=Zn(_.parentTable);if(N.length<=1){const F=N[0]?.name??"id";d=`, $id: ${N[0]?.gqlType??"Int"}`+d;const W=`{ ${F}: { _eq: $id}}`;return`query Get${e.name}($sort: [${e.graphQlName}SortEnum!], $limit: Int, $offset: Int ${d}) { ${_.parentTable.name}(filter: ${W}) { data { ${j} } } }`}d=`, ${N.map(F=>`$pk_${F.name}: ${F.gqlType}`).join(", ")}`+d;const k=`{and: [${N.map(F=>`{${F.name}: {_eq: $pk_${F.name}}}`).join(", ")}]}`;return`query Get${e.name}($sort: [${e.graphQlName}SortEnum!], $limit: Int, $offset: Int ${d}) { ${_.parentTable.name}(filter: ${k}) { data { ${j} } } }`}}return o&&!s&&!i&&(u.length<=1?(d=`, $id: ${c}`,m=`{ ${f}: { _eq: $id}}`):(d=`, ${u.map(E=>`$pk_${E.name}: ${E.gqlType}`).join(", ")}`,m=`{and: [${u.map(E=>`{${E.name}: {_eq: $pk_${E.name}}}`).join(", ")}]}`)),m&&(m=`filter: ${m}`),`query Get${e.name}($sort: [${e.graphQlName}SortEnum!], $limit: Int, $offset: Int ${d}) { ${e.name}(sort: $sort limit: $limit offset: $offset ${m}) { total offset limit data {${w}}}}`}const yC={data:[],total:0,offset:0,limit:0};function bC(e,t,n){const s=e?.[t]?.data?.[0]?.[n];return!s||!Array.isArray(s.data)?yC:s}function bi(e,t,n,r){const o=n??t.findTable(e.graphQlName)?.singleJoins.find(l=>l.destinationTable===r)?.destinationTable;if(!o)return null;const s=t.findTable(o);if(!s)return null;const i=aC(s.multiJoins,e.graphQlName,r);return i?{parentTable:s,childField:lC(i)}:null}function Qd(e,t){return e?!t||(t.primaryKeys?.length??0)<=1?String(e?.id??""):Qn(e,t,0):""}function wC(e,t){const n=t.fieldName??t.destinationTable;return e[n]?.data??[]}const CC=(e,t,n,r)=>{if(!e||!t)return[];const o=e.columns.map(i=>{const l=e.singleJoins.find(d=>d.sourceColumnNames?.[0]===i.name),c=l?void 0:e.singleJoins.find(d=>(d.sourceColumnNames??[]).includes(i.name)),u=Kd(i.paramType);if(l){const d=l.destinationTable,m=t.findTable(l.destinationTable),p=m?.labelColumn??"id",h=dn(l),g=l.destinationTable===e.name,x=g?`Parent ${i.label}`:i.label;return{id:i.name,accessorKey:i.name,header:({column:y,table:b})=>a.jsx(un,{column:y,table:b,title:x}),enableSorting:!0,meta:{sortField:i.name,paramType:i.paramType,filterOperators:u,joinTable:l.destinationTable,joinLabelColumn:p,joinFkColumn:l.destinationColumnNames[0],column:i,isSelfReference:g,isCompositeFk:h},cell:({row:y})=>{const b=y.original[d];if(!b)return a.jsx(fn,{kind:"null"});const w=Qd(b,m);return a.jsxs("span",{className:"group/fk inline-flex items-center gap-0.5",children:[a.jsx(Yw,{tableName:l.destinationTable,recordId:w,filterColumn:l.destinationColumnNames[0],join:l,sourceRow:y.original,children:a.jsx(Xt,{to:"/"+m?.name+"/"+w,className:"text-primary hover:text-primary/80 hover:underline",children:b?.label})}),r&&a.jsx(J,{variant:"ghost",size:"icon-sm",className:"opacity-0 group-hover/fk:opacity-100 size-5 shrink-0",onClick:_=>{_.stopPropagation(),r({tableName:l.destinationTable,filterId:w})},"aria-label":"Open in side column",title:"Open in side column",children:a.jsx(ds,{className:"size-3"})})]})}}}if(c){const m=t.findTable(c.destinationTable)?.labelColumn??"id",p=c.destinationTable===e.name;return{id:i.name,accessorFn:h=>i.name?String(h?.[i.name]??""):"",cell:({row:h})=>hi(h.original[i.name]),header:({column:h,table:g})=>a.jsx(un,{column:h,table:g,title:i.label}),enableSorting:!0,meta:{sortField:i.name,paramType:i.paramType,dbType:i.dbType,filterOperators:u,joinTable:c.destinationTable,joinLabelColumn:m,joinFkColumn:c.destinationColumnNames[(c.sourceColumnNames??[]).indexOf(i.name)]??c.destinationColumnNames[0],column:i,isSelfReference:p,isCompositeFk:!0,isCompositeFkMember:!0}}}return i?.joinTable?{id:i.name,accessorKey:i.name,header:({column:d,table:m})=>a.jsx(un,{column:d,table:m,title:i.label}),enableSorting:!0,meta:{sortField:i.name,paramType:i.paramType,filterOperators:u,column:i},cell:({row:d})=>{const m=d.original[i.name];return m?a.jsx(Xt,{to:"/"+i.name+"/"+Qd(m,void 0),className:"text-primary hover:text-primary/80 hover:underline",children:i.name}):null}}:i?.paramType==="DateTime"?{id:i.name,accessorFn:d=>Yd(d?.[i.name]),cell:({row:d})=>{const m=d.original[i.name];return m==null||m===""?a.jsx(fn,{kind:m===""?"empty":"null"}):Yd(m)},header:({column:d,table:m})=>a.jsx(un,{column:d,table:m,title:i.label}),enableSorting:!0,meta:{sortField:i.name,paramType:i.paramType,dbType:i.dbType,filterOperators:u,column:i}}:fo(i.dbType)||Xn(i.dbType)?{id:i.name,accessorFn:d=>i.name?String(d?.[i.name]??""):"",header:({column:d,table:m})=>a.jsx(un,{column:d,table:m,title:i.label}),enableSorting:!0,meta:{sortField:i.name,paramType:i.paramType,dbType:i.dbType,filterOperators:u,column:i},cell:({row:d})=>a.jsx(rC,{value:d.original[i.name],dbType:i.dbType,onExpand:n?()=>n(d.index,i.name):void 0})}:{id:i.name,accessorFn:d=>i.name?String(d?.[i.name]??""):"",cell:({row:d})=>hi(d.original[i.name]),header:({column:d,table:m})=>a.jsx(un,{column:d,table:m,title:i.label}),enableSorting:!0,meta:{sortField:i.name,paramType:i.paramType,dbType:i.dbType,filterOperators:u,column:i}}}),s=e.multiJoins.map(i=>{const l=t.findTable(i.destinationTable),c=l?.labelColumn??"id",f=i.destinationTable===e.name?`Child ${l?.label??i.destinationTable}`:l?.label??i.destinationTable;return{id:`join_${i.fieldName??i.destinationTable}`,header:f,enableSorting:!1,enableHiding:!0,cell:({row:d})=>{const m=fC(d.original,e),p=wC(d.original,i),h=p.length;if(h===0)return a.jsx("span",{className:"text-muted-foreground",children:"—"});const g=p.slice(0,10).map(y=>String(y[c]??"")).filter(Boolean),x=l?.label??i.destinationTable;return a.jsxs("span",{className:"group/fk inline-flex items-center gap-1",children:[a.jsxs(Un,{openDelay:300,closeDelay:100,children:[a.jsx(Yn,{asChild:!0,children:a.jsxs(Xt,{to:"/"+l?.name+"/from/"+e.name+"/"+m,className:"inline-flex items-center gap-1 rounded-full border border-border bg-muted/40 px-2 py-0.5 text-xs font-medium text-primary hover:bg-muted hover:border-primary/40 transition-colors",children:[a.jsx(fl,{className:"size-3"}),h]})}),a.jsxs(Jn,{align:"start",sideOffset:6,className:"w-auto max-w-xs p-3",children:[a.jsxs("div",{className:"flex items-center gap-2 border-b pb-2 mb-2",children:[a.jsx(fl,{className:"size-3.5 text-primary"}),a.jsxs("span",{className:"text-xs font-semibold text-foreground",children:[h," ",x]})]}),a.jsxs("ul",{className:"space-y-0.5 text-xs text-foreground",children:[g.map((y,b)=>a.jsx("li",{className:"truncate",children:y},b)),h>10&&a.jsxs("li",{className:"text-muted-foreground italic",children:["… and ",h-10," more"]})]})]})]}),r&&a.jsx(J,{variant:"ghost",size:"icon-sm",className:"opacity-40 group-hover/fk:opacity-100 size-5 shrink-0 transition-opacity",onClick:y=>{y.stopPropagation(),r({tableName:i.destinationTable,filterTable:e.name,filterId:m,...dn(i)?{}:{filterColumn:i.destinationColumnNames[0]}})},"aria-label":"Open in side column",title:"Open in side column",children:a.jsx(ds,{className:"size-3"})})]})}}});return[...o,...s]};function SC(e,t,n,r,o){if(!r&&!o)return yi(e,t);const s=bi(t,n,r,o);return s?yi(e,s.parentTable):yi(e,t)}function _C(e,t,n,r,o,s){const{search:i}=Wp(),l=Mn(),c=i.get("filter")??"",u=i.get("cf")??"",{variables:f}=Ud(c),d=Fe(),m=De(),[p,h]=M.useState([]),[g,x]=M.useState(()=>gC(u)),[y,b]=M.useState(0),[w,_]=M.useState(50),E=M.useRef(e);e&&e!==E.current&&(E.current=e,p.length>0&&h([]),g.length>0&&x([]),y!==0&&b(0));const j=M.useMemo(()=>{if(p.length>0&&e){const K=p[0];if(e.columns.some(A=>A.name===K.id))return[`${K.id}_${K.desc?"desc":"asc"}`]}return e?[`${e.columns.at(0)?.name??"id"}_asc`]:[]},[p,e]),N=M.useMemo(()=>xC(e,d,c,g,t,n,r),[e,d,c,g,t,n,r]),C=M.useMemo(()=>e?Jd(g,e).variables:{},[g,e]),R=y*w,k=M.useMemo(()=>({sort:j,limit:w,offset:R,...t&&e?SC(t,e,d,n,r):{},...f,...C}),[j,w,R,t,e,d,n,r,f,C]),{isLoading:F,error:q,data:W}=Ce.useQuery({queryKey:["tableData",e?.name,N,k],queryFn:()=>m.query(N,k),enabled:!!N&&!!e&&j.length>0}),B=M.useMemo(()=>e?CC(e,d,o,s):[],[e,d,o,s]),U=M.useMemo(()=>t&&(n||r)&&e?bi(e,d,n,r):null,[t,n,r,e,d]);let D,Y;if(U){const K=bC(W,U.parentTable.name,U.childField);D=K.data,Y=K.total}else{const K=W?.[e?.name??""];D=K?.data??[],Y=K?.total??0}const H=Math.max(1,Math.ceil(Y/w)),$=M.useCallback(K=>{const re=new URLSearchParams,A=i.get("filter");A&&re.set("filter",A);const oe=pC(K);oe&&re.set("cf",oe);const ne=re.toString();l(ne?`?${ne}`:"?")},[i,l]),I=M.useCallback(K=>{h(K),b(0)},[]),pe=M.useCallback(K=>{x(K),b(0),$(K)},[$]),ae=M.useCallback(K=>{b(K)},[]),de=M.useCallback(K=>{_(K),b(0)},[]),he=e?.primaryKeys??[];return{columns:B,sorting:p,columnFilters:g,primaryKeys:he,pageIndex:y,pageSize:w,pageCount:H,rows:D,loading:F,error:q,onSortingChange:I,onColumnFiltersChange:pe,onPageIndexChange:ae,onPageSizeChange:de}}function jC(e){return typeof e=="object"&&e!==null}function Zd(e,t){if(e==null)return null;if(!t)return e;const n=t.replace("!","");if(n==="Int"){const r=typeof e=="number"?e:Number(e);return Number.isFinite(r)?Math.trunc(r):e}if(n==="Float"){const r=typeof e=="number"?e:Number(e);return Number.isFinite(r)?r:e}return n==="Boolean"?typeof e=="boolean"?e:e==="true"||e===1:String(e)}function ef(e){const t=De(),n=Ce.useQueryClient(),r=M.useMemo(()=>{const p=new Map;for(const h of e.columns)p.set(h.name,h.paramType);return p},[e]),o=M.useMemo(()=>{const p=e.primaryKeys??[];return p.length>0?p:["id"]},[e]),s=p=>{const h={};if(jC(p)){for(const x of o)h[x]=Zd(p[x],r.get(x));return h}const g=o[0];return h[g]=Zd(p,r.get(g)),h},i=M.useMemo(()=>`mutation deleteSingle($detail: Delete_${e.name}){
126
126
  ${e.name}(delete: $detail)
127
127
  }`,[e]),l=M.useMemo(()=>`mutation batchDelete($actions: [batch_${e.name}!]!){
128
128
  ${e.name}_batch(actions: $actions)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@standardbeagle/edit-db",
3
3
  "private": false,
4
- "version": "0.4.437",
4
+ "version": "0.4.441",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "@radix-ui/react-slot": "^1.2.4",