@collective-intelligence/external-apps-client-sdk-react 0.1.3 → 0.1.5
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.
|
@@ -45,5 +45,5 @@ var __defProp=Object.defineProperty;var __returnValue=(v)=>v;function __exportSe
|
|
|
45
45
|
`)};var mc=function(){var t=parseInt(document.body.getAttribute(Xt)||"0",10);return isFinite(t)?t:0};var nu=function(){Zt.useEffect(function(){return document.body.setAttribute(Xt,(mc()+1).toString()),function(){var t=mc()-1;if(t<=0)document.body.removeAttribute(Xt);else document.body.setAttribute(Xt,t.toString())}},[])};var Vr=function(t){var{noRelative:f,noImportant:m,gapMode:v}=t,g=v===undefined?"margin":v;nu();var R=Zt.useMemo(function(){return Wr(g)},[g]);return Zt.createElement(eu,{styles:tu(R,!f,g,!m?"!important":"")})};var $r=false;if(typeof window<"u")try{Qt=Object.defineProperty({},"passive",{get:function(){return $r=true,true}}),window.addEventListener("test",Qt,Qt),window.removeEventListener("test",Qt,Qt)}catch(t){$r=false}var Qt;var kt=$r?{passive:false}:false;var ru=function(t){return t.tagName==="TEXTAREA"};var pc=function(t,f){if(!(t instanceof Element))return false;var m=window.getComputedStyle(t);return m[f]!=="hidden"&&!(m.overflowY===m.overflowX&&!ru(t)&&m[f]==="visible")};var ou=function(t){return pc(t,"overflowY")};var iu=function(t){return pc(t,"overflowX")};var zr=function(t,f){var m=f.ownerDocument,v=f;do{if(typeof ShadowRoot<"u"&&v instanceof ShadowRoot)v=v.host;var g=hc(t,v);if(g){var R=vc(t,v),b=R[1],S=R[2];if(b>S)return true}v=v.parentNode}while(v&&v!==m.body);return false};var cu=function(t){var{scrollTop:f,scrollHeight:m,clientHeight:v}=t;return[f,m,v]};var su=function(t){var{scrollLeft:f,scrollWidth:m,clientWidth:v}=t;return[f,m,v]};var hc=function(t,f){return t==="v"?ou(f):iu(f)};var vc=function(t,f){return t==="v"?cu(f):su(f)};var au=function(t,f){return t==="h"&&f==="rtl"?-1:1};var gc=function(t,f,m,v,g){var R=au(t,window.getComputedStyle(f).direction),b=R*v,S=m.target,P=f.contains(S),A=false,I=b>0,C=0,_=0;do{if(!S)break;var M=vc(t,S),T=M[0],D=M[1],F=M[2],V=D-F-R*T;if(T||V){if(hc(t,S))C+=V,_+=T}var k=S.parentNode;S=k&&k.nodeType===Node.DOCUMENT_FRAGMENT_NODE?k.host:k}while(!P&&S!==document.body||P&&(f.contains(S)||f===S));if(I&&(g&&Math.abs(C)<1||!g&&b>C))A=true;else if(!I&&(g&&Math.abs(_)<1||!g&&-b>_))A=true;return A};var zn=function(t){return"changedTouches"in t?[t.changedTouches[0].clientX,t.changedTouches[0].clientY]:[0,0]};var yc=function(t){return[t.deltaX,t.deltaY]};var Rc=function(t){return t&&"current"in t?t.current:t};var uu=function(t,f){return t[0]===f[0]&&t[1]===f[1]};var lu=function(t){return`
|
|
46
46
|
.block-interactivity-`.concat(t,` {pointer-events: none;}
|
|
47
47
|
.allow-interactivity-`).concat(t,` {pointer-events: all;}
|
|
48
|
-
`)};var fu=0;var Jt=[];function wc(t){var f=Fe2.useRef([]),m=Fe2.useRef([0,0]),v=Fe2.useRef(),g=Fe2.useState(fu++)[0],R=Fe2.useState(dn)[0],b=Fe2.useRef(t);Fe2.useEffect(function(){b.current=t},[t]),Fe2.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(g));var D=ic([t.lockRef.current],(t.shards||[]).map(Rc),true).filter(Boolean);return D.forEach(function(F){return F.classList.add("allow-interactivity-".concat(g))}),function(){document.body.classList.remove("block-interactivity-".concat(g)),D.forEach(function(F){return F.classList.remove("allow-interactivity-".concat(g))})}}return},[t.inert,t.lockRef.current,t.shards]);var S=Fe2.useCallback(function(D,F){if("touches"in D&&D.touches.length===2||D.type==="wheel"&&D.ctrlKey)return!b.current.allowPinchZoom;var V=zn(D),k=m.current,B="deltaX"in D?D.deltaX:k[0]-V[0],z="deltaY"in D?D.deltaY:k[1]-V[1],H,K=D.target,Y=Math.abs(B)>Math.abs(z)?"h":"v";if("touches"in D&&Y==="h"&&K.type==="range")return false;var re=window.getSelection(),Z=re&&re.anchorNode,ae=Z?Z===K||Z.contains(K):false;if(ae)return false;var he=zr(Y,K);if(!he)return true;if(he)H=Y;else H=Y==="v"?"h":"v",he=zr(Y,K);if(!he)return false;if(!v.current&&"changedTouches"in D&&(B||z))v.current=H;if(!H)return true;var oe=v.current||H;return gc(oe,F,D,oe==="h"?B:z,true)},[]),P=Fe2.useCallback(function(D){var F=D;if(!Jt.length||Jt[Jt.length-1]!==R)return;var V="deltaY"in F?yc(F):zn(F),k=f.current.filter(function(H){return H.name===F.type&&(H.target===F.target||F.target===H.shadowParent)&&uu(H.delta,V)})[0];if(k&&k.should){if(F.cancelable)F.preventDefault();return}if(!k){var B=(b.current.shards||[]).map(Rc).filter(Boolean).filter(function(H){return H.contains(F.target)}),z=B.length>0?S(F,B[0]):!b.current.noIsolation;if(z){if(F.cancelable)F.preventDefault()}}},[]),A=Fe2.useCallback(function(D,F,V,k){var B={name:D,delta:F,target:V,should:k,shadowParent:du(V)};f.current.push(B),setTimeout(function(){f.current=f.current.filter(function(z){return z!==B})},1)},[]),I=Fe2.useCallback(function(D){m.current=zn(D),v.current=undefined},[]),C=Fe2.useCallback(function(D){A(D.type,yc(D),D.target,S(D,t.lockRef.current))},[]),_=Fe2.useCallback(function(D){A(D.type,zn(D),D.target,S(D,t.lockRef.current))},[]);Fe2.useEffect(function(){return Jt.push(R),t.setCallbacks({onScrollCapture:C,onWheelCapture:C,onTouchMoveCapture:_}),document.addEventListener("wheel",P,kt),document.addEventListener("touchmove",P,kt),document.addEventListener("touchstart",I,kt),function(){Jt=Jt.filter(function(D){return D!==R}),document.removeEventListener("wheel",P,kt),document.removeEventListener("touchmove",P,kt),document.removeEventListener("touchstart",I,kt)}},[]);var{removeScrollBar:M,inert:T}=t;return Fe2.createElement(Fe2.Fragment,null,T?Fe2.createElement(R,{styles:lu(g)}):null,M?Fe2.createElement(Vr,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function du(t){var f=null;while(t!==null){if(t instanceof ShadowRoot)f=t.host,t=t.host;t=t.parentNode}return f}var bc=Nr($n,wc);var xc=Hn.forwardRef(function(t,f){return Hn.createElement(fn,qe2({},t,{ref:f,sideCar:bc}))});xc.classNames=fn.classNames;var Q=xc;var mu=Object.defineProperty;var de=(t,f)=>mu(t,"name",{value:f,configurable:true});var Hr=["Enter"," "];var pu=["ArrowDown","PageUp","Home"];var Cc=["ArrowUp","PageDown","End"];var hu=[...pu,...Cc];var vu={ltr:[...Hr,"ArrowRight"],rtl:[...Hr,"ArrowLeft"]};var gu={ltr:["ArrowLeft"],rtl:["ArrowRight"]};var Gn="Menu";var[mn,yu,Ru]=y(Gn);var[jt,ee]=s(Gn,[Ru,O,w]);var Kn=O();var Ec=w();var[Pc,Ct]=jt(Gn);var[wu,hn]=jt(Gn);var bu=de((t)=>{let{__scopeMenu:f,open:m=false,children:v,dir:g,onOpenChange:R,modal:b=true}=t,S=Kn(f),[P,A]=X.useState(null),I=X.useRef(false),C=u2(R),_=h(g);return X.useEffect(()=>{let M=de(()=>{I.current=true,document.addEventListener("pointerdown",T,{capture:true,once:true}),document.addEventListener("pointermove",T,{capture:true,once:true})},"handleKeyDown"),T=de(()=>I.current=false,"handlePointer");return document.addEventListener("keydown",M,{capture:true}),()=>{document.removeEventListener("keydown",M,{capture:true}),document.removeEventListener("pointerdown",T,{capture:true}),document.removeEventListener("pointermove",T,{capture:true})}},[]),X.useEffect(()=>{if(!m)return;let M=de(()=>C(false),"handleBlur");return window.addEventListener("blur",M),()=>window.removeEventListener("blur",M)},[m,C]),ce(se2,{...S,children:ce(Pc,{scope:f,open:m,onOpenChange:C,content:P,onContentChange:A,children:ce(wu,{scope:f,onClose:X.useCallback(()=>C(false),[C]),isUsingKeyboardRef:I,dir:_,modal:b,children:v})})})},"Menu");var Oc=X.forwardRef(de(function(f,m){let{__scopeMenu:v,...g}=f,R=Kn(v);return ce(ie,{...R,...g,ref:m})},"MenuAnchor"));var _c="MenuPortal";var[xu,Ac]=jt(_c,{forceMount:undefined});var Su=de((t)=>{let{__scopeMenu:f,forceMount:m,children:v,container:g}=t,R=Ct(_c,f);return ce(xu,{scope:f,forceMount:m,children:ce(d,{present:m||R.open,children:ce(U2,{asChild:true,container:g,children:v})})})},"MenuPortal");var ut="MenuContent";var[Cu,Gr]=jt(ut);var Eu=X.forwardRef(de(function(f,m){let v=Ac(ut,f.__scopeMenu),{forceMount:g=v.forceMount,...R}=f,b=Ct(ut,f.__scopeMenu),S=hn(ut,f.__scopeMenu);return ce(mn.Provider,{scope:f.__scopeMenu,children:ce(d,{present:g||b.open,children:ce(mn.Slot,{scope:f.__scopeMenu,children:S.modal?ce(Pu,{...R,ref:m}):ce(Ou,{...R,ref:m})})})})},"MenuContent"));var Pu=X.forwardRef(de(function(f,m){let v=Ct(ut,f.__scopeMenu),g=X.useRef(null),R=r(m,g);return X.useEffect(()=>{let b=g.current;if(b)return le(b)},[]),ce(Kr,{...f,ref:R,trapFocus:v.open,disableOutsidePointerEvents:v.open,disableOutsideScroll:true,onFocusOutside:o(f.onFocusOutside,(b)=>b.preventDefault(),{checkForDefaultPrevented:false}),onDismiss:()=>v.onOpenChange(false)})},"MenuRootContentModal"));var Ou=X.forwardRef(de(function(f,m){let v=Ct(ut,f.__scopeMenu);return ce(Kr,{...f,ref:m,trapFocus:false,disableOutsidePointerEvents:false,disableOutsideScroll:false,onDismiss:()=>v.onOpenChange(false)})},"MenuRootContentNonModal"));var _u=x("MenuContent.ScrollLock");var Kr=X.forwardRef(de(function(f,m){let{__scopeMenu:v,loop:g=false,trapFocus:R,onOpenAutoFocus:b,onCloseAutoFocus:S,disableOutsidePointerEvents:P,onEntryFocus:A,onEscapeKeyDown:I,onPointerDownOutside:C,onFocusOutside:_,onInteractOutside:M,onDismiss:T,disableOutsideScroll:D,...F}=f,V=Ct(ut,v),k=hn(ut,v),B=Kn(v),z=Ec(v),H=yu(v),[K,Y]=X.useState(null),re=X.useRef(null),Z=r(m,re,V.onContentChange),ae=X.useRef(0),he=X.useRef(""),oe=X.useRef(0),ue=X.useRef(null),pe=X.useRef("right"),je=X.useRef(0),ge=D?Q:X.Fragment,fe=D?{as:_u,allowPinchZoom:true}:undefined,me=de((te)=>{let ht=he.current+te,lt=H().filter((Ke)=>!Ke.disabled),xt=document.activeElement,tn=lt.find((Ke)=>Ke.ref.current===xt)?.textValue,nn=lt.map((Ke)=>Ke.textValue),vn=jc(nn,ht,tn),Et=lt.find((Ke)=>Ke.textValue===vn)?.ref.current;if(de(function Ke(Bt){if(he.current=Bt,window.clearTimeout(ae.current),Bt!=="")ae.current=window.setTimeout(()=>Ke(""),1000)},"updateSearch")(ht),Et)setTimeout(()=>Et.focus())},"handleTypeaheadSearch");X.useEffect(()=>()=>window.clearTimeout(ae.current),[]),G3();let _e=X.useCallback((te)=>pe.current===ue.current?.side&&Wc(te,ue.current?.area),[]);return ce(Cu,{scope:v,searchRef:he,onItemEnter:X.useCallback((te)=>{if(_e(te))te.preventDefault()},[_e]),onItemLeave:X.useCallback((te)=>{if(_e(te))return;re.current?.focus(),Y(null)},[_e]),onTriggerLeave:X.useCallback((te)=>{if(_e(te))te.preventDefault()},[_e]),pointerGraceTimerRef:oe,onPointerGraceIntentChange:X.useCallback((te)=>{ue.current=te},[]),children:ce(ge,{...fe,children:ce(ne2,{asChild:true,trapped:R,onMountAutoFocus:o(b,(te)=>{te.preventDefault(),re.current?.focus({preventScroll:true})}),onUnmountAutoFocus:S,children:ce(N2,{asChild:true,disableOutsidePointerEvents:P,onEscapeKeyDown:I,onPointerDownOutside:C,onFocusOutside:_,onInteractOutside:M,onDismiss:T,children:ce(q,{asChild:true,...z,dir:k.dir,orientation:"vertical",loop:g,currentTabStopId:K,onCurrentTabStopIdChange:Y,onEntryFocus:o(A,(te)=>{if(!k.isUsingKeyboardRef.current)te.preventDefault()}),preventScrollOnEntryFocus:true,children:ce(ye2,{role:"menu","aria-orientation":"vertical","data-state":Xr(V.open),"data-radix-menu-content":"",dir:k.dir,...B,...F,ref:Z,style:{outline:"none",...F.style},onKeyDown:o(F.onKeyDown,(te)=>{let lt=te.target.closest("[data-radix-menu-content]")===te.currentTarget,xt=te.ctrlKey||te.altKey||te.metaKey,tn=te.key.length===1;if(lt){if(te.key==="Tab")te.preventDefault();if(!xt&&tn)me(te.key)}let nn=re.current;if(te.target!==nn)return;if(!hu.includes(te.key))return;te.preventDefault();let Et=H().filter((Ke)=>!Ke.disabled).map((Ke)=>Ke.ref.current);if(Cc.includes(te.key))Et.reverse();Fc(Et)}),onBlur:o(f.onBlur,(te)=>{if(!te.currentTarget.contains(te.target))window.clearTimeout(ae.current),he.current=""}),onPointerMove:o(f.onPointerMove,en((te)=>{let ht=te.target,lt=je.current!==te.clientX;if(te.currentTarget.contains(ht)&<){let xt=te.clientX>je.current?"right":"left";pe.current=xt,je.current=te.clientX}}))})})})})})})},"MenuContentImpl"));var Mc=X.forwardRef(de(function(f,m){let{__scopeMenu:v,...g}=f;return ce(a2.div,{role:"group",...g,ref:m})},"MenuGroup"));var Au=X.forwardRef(de(function(f,m){let{__scopeMenu:v,...g}=f;return ce(a2.div,{...g,ref:m})},"MenuLabel"));var Ur="MenuItem";var Sc="menu.itemSelect";var Yr=X.forwardRef(de(function(f,m){let{disabled:v=false,onSelect:g,...R}=f,b=X.useRef(null),S=hn(Ur,f.__scopeMenu),P=Gr(Ur,f.__scopeMenu),A=r(m,b),I=X.useRef(false),C=de(()=>{let _=b.current;if(!v&&_){let M=new CustomEvent(Sc,{bubbles:true,cancelable:true});if(_.addEventListener(Sc,(T)=>g?.(T),{once:true}),be(_,M),M.defaultPrevented)I.current=false;else S.onClose()}},"handleSelect");return ce(Ic,{...R,ref:A,disabled:v,onClick:o(f.onClick,C),onPointerDown:(_)=>{f.onPointerDown?.(_),I.current=true},onPointerUp:o(f.onPointerUp,(_)=>{if(!I.current)_.currentTarget?.click()}),onKeyDown:o(f.onKeyDown,(_)=>{if(v||_.target!==_.currentTarget)return;if(P.searchRef.current!==""&&_.key===" ")return;if(Hr.includes(_.key))_.currentTarget.click(),_.preventDefault()})})},"MenuItem"));var Ic=X.forwardRef(de(function(f,m){let{__scopeMenu:v,disabled:g=false,textValue:R,...b}=f,S=Gr(Ur,v),P=Ec(v),A=X.useRef(null),I=r(m,A),[C,_]=X.useState(false),[M,T]=X.useState("");return X.useEffect(()=>{let D=A.current;if(D)T((D.textContent??"").trim())},[b.children]),ce(mn.ItemSlot,{scope:v,disabled:g,textValue:R??M,children:ce(j,{asChild:true,...P,focusable:!g,children:ce(a2.div,{role:"menuitem","data-highlighted":C?"":undefined,"aria-disabled":g||undefined,"data-disabled":g?"":undefined,...b,ref:I,onPointerMove:o(f.onPointerMove,en((D)=>{if(g)S.onItemLeave(D);else if(S.onItemEnter(D),!D.defaultPrevented)D.currentTarget.focus({preventScroll:true})})),onPointerLeave:o(f.onPointerLeave,en((D)=>S.onItemLeave(D))),onFocus:o(f.onFocus,()=>_(true)),onBlur:o(f.onBlur,()=>_(false))})})})},"MenuItemImpl"));var Mu=X.forwardRef(de(function(f,m){let{checked:v=false,onCheckedChange:g,...R}=f;return ce(Dc,{scope:f.__scopeMenu,checked:v,children:ce(Yr,{role:"menuitemcheckbox","aria-checked":pn(v)?"mixed":v,...R,ref:m,"data-state":Yn(v),onSelect:o(R.onSelect,()=>g?.(pn(v)?true:!v),{checkForDefaultPrevented:false})})})},"MenuCheckboxItem"));var Iu="MenuRadioGroup";var[Tu,Du]=jt(Iu,{value:undefined,onValueChange:de(()=>{},"onValueChange")});var Lu=X.forwardRef(de(function(f,m){let{value:v,onValueChange:g,...R}=f,b=u2(g);return ce(Tu,{scope:f.__scopeMenu,value:v,onValueChange:b,children:ce(Mc,{...R,ref:m})})},"MenuRadioGroup"));var Nu="MenuRadioItem";var Fu=X.forwardRef(de(function(f,m){let{value:v,...g}=f,R=Du(Nu,f.__scopeMenu),b=v===R.value;return ce(Dc,{scope:f.__scopeMenu,checked:b,children:ce(Yr,{role:"menuitemradio","aria-checked":b,...g,ref:m,"data-state":Yn(b),onSelect:o(g.onSelect,()=>R.onValueChange?.(v),{checkForDefaultPrevented:false})})})},"MenuRadioItem"));var Tc="MenuItemIndicator";var[Dc,ku]=jt(Tc,{checked:false});var ju=X.forwardRef(de(function(f,m){let{__scopeMenu:v,forceMount:g,...R}=f,b=ku(Tc,v);return ce(d,{present:g||pn(b.checked)||b.checked===true,children:ce(a2.span,{...R,ref:m,"data-state":Yn(b.checked)})})},"MenuItemIndicator"));var Bu=X.forwardRef(de(function(f,m){let{__scopeMenu:v,...g}=f;return ce(a2.div,{role:"separator","aria-orientation":"horizontal",...g,ref:m})},"MenuSeparator"));var Lc="MenuSub";var[Wu,Nc]=jt(Lc);var Vu=de((t)=>{let{__scopeMenu:f,children:m,open:v=false,onOpenChange:g}=t,R=Ct(Lc,f),b=Kn(f),[S,P]=X.useState(null),[A,I]=X.useState(null),C=u2(g);return X.useEffect(()=>{if(R.open===false)C(false);return()=>C(false)},[R.open,C]),ce(se2,{...b,children:ce(Pc,{scope:f,open:v,onOpenChange:C,content:A,onContentChange:I,children:ce(Wu,{scope:f,contentId:c(),triggerId:c(),trigger:S,onTriggerChange:P,children:m})})})},"MenuSub");var Un="MenuSubTrigger";var $u=X.forwardRef(de(function(f,m){let v=Ct(Un,f.__scopeMenu),g=hn(Un,f.__scopeMenu),R=Nc(Un,f.__scopeMenu),b=Gr(Un,f.__scopeMenu),S=X.useRef(null),{pointerGraceTimerRef:P,onPointerGraceIntentChange:A}=b,I={__scopeMenu:f.__scopeMenu},C=X.useCallback(()=>{if(S.current)window.clearTimeout(S.current);S.current=null},[]);X.useEffect(()=>C,[C]),X.useEffect(()=>{let M=P.current;return()=>{window.clearTimeout(M),A(null)}},[P,A]);let _=r(m,R.onTriggerChange);return ce(Oc,{asChild:true,...I,children:ce(Ic,{id:R.triggerId,"aria-haspopup":"menu","aria-expanded":v.open,"aria-controls":v.open?R.contentId:undefined,"data-state":Xr(v.open),...f,ref:_,onClick:(M)=>{if(f.onClick?.(M),f.disabled||M.defaultPrevented)return;if(M.currentTarget.focus(),!v.open)v.onOpenChange(true)},onPointerMove:o(f.onPointerMove,en((M)=>{if(b.onItemEnter(M),M.defaultPrevented)return;if(!f.disabled&&!v.open&&!S.current)b.onPointerGraceIntentChange(null),S.current=window.setTimeout(()=>{v.onOpenChange(true),C()},100)})),onPointerLeave:o(f.onPointerLeave,en((M)=>{C();let T=v.content?.getBoundingClientRect();if(T){let D=v.content?.dataset.side,F=D==="right",V=F?-5:5,k=T[F?"left":"right"],B=T[F?"right":"left"];b.onPointerGraceIntentChange({area:[{x:M.clientX+V,y:M.clientY},{x:k,y:T.top},{x:B,y:T.top},{x:B,y:T.bottom},{x:k,y:T.bottom}],side:D}),window.clearTimeout(P.current),P.current=window.setTimeout(()=>b.onPointerGraceIntentChange(null),300)}else{if(b.onTriggerLeave(M),M.defaultPrevented)return;b.onPointerGraceIntentChange(null)}})),onKeyDown:o(f.onKeyDown,(M)=>{if(f.disabled||M.target!==M.currentTarget)return;if(b.searchRef.current!==""&&M.key===" ")return;if(vu[g.dir].includes(M.key))v.onOpenChange(true),v.content?.focus(),M.preventDefault()})})})},"MenuSubTrigger"));var zu="MenuSubContent";var Hu=X.forwardRef(de(function(f,m){let v=Ac(ut,f.__scopeMenu),{forceMount:g=v.forceMount,align:R="start",...b}=f,S=Ct(ut,f.__scopeMenu),P=hn(ut,f.__scopeMenu),A=Nc(zu,f.__scopeMenu),I=X.useRef(null),C=r(m,I);return ce(mn.Provider,{scope:f.__scopeMenu,children:ce(d,{present:g||S.open,children:ce(mn.Slot,{scope:f.__scopeMenu,children:ce(Kr,{id:A.contentId,"aria-labelledby":A.triggerId,...b,ref:C,align:R,side:P.dir==="rtl"?"left":"right",disableOutsidePointerEvents:false,disableOutsideScroll:false,trapFocus:false,onOpenAutoFocus:(_)=>{if(P.isUsingKeyboardRef.current)I.current?.focus();_.preventDefault()},onCloseAutoFocus:(_)=>_.preventDefault(),onFocusOutside:o(f.onFocusOutside,(_)=>{if(_.target!==A.trigger)S.onOpenChange(false)}),onEscapeKeyDown:o(f.onEscapeKeyDown,(_)=>{P.onClose(),_.preventDefault()}),onKeyDown:o(f.onKeyDown,(_)=>{let M=_.currentTarget.contains(_.target),T=gu[P.dir].includes(_.key);if(M&&T)S.onOpenChange(false),A.trigger?.focus(),_.preventDefault()})})})})})},"MenuSubContent"));function Xr(t){return t?"open":"closed"}de(Xr,"getOpenState");function pn(t){return t==="indeterminate"}de(pn,"isIndeterminate");function Yn(t){return pn(t)?"indeterminate":t?"checked":"unchecked"}de(Yn,"getCheckedState");function Fc(t){let f=document.activeElement;for(let m of t){if(m===f)return;if(m.focus(),document.activeElement!==f)return}}de(Fc,"focusFirst");function kc(t,f){return t.map((m,v)=>t[(f+v)%t.length])}de(kc,"wrapArray");function jc(t,f,m){let g=f.length>1&&Array.from(f).every((A)=>A===f[0])?f[0]:f,R=m?t.indexOf(m):-1,b=kc(t,Math.max(R,0));if(g.length===1)b=b.filter((A)=>A!==m);let P=b.find((A)=>A.toLowerCase().startsWith(g.toLowerCase()));return P!==m?P:undefined}de(jc,"getNextMatch");function Bc(t,f){let{x:m,y:v}=t,g=false;for(let R=0,b=f.length-1;R<f.length;b=R++){let S=f[R],P=f[b],{x:A,y:I}=S,{x:C,y:_}=P;if(I>v!==_>v&&m<(C-A)*(v-I)/(_-I)+A)g=!g}return g}de(Bc,"isPointInPolygon");function Wc(t,f){if(!f)return false;let m={x:t.clientX,y:t.clientY};return Bc(m,f)}de(Wc,"isPointerInGraceArea");function en(t){return(f)=>f.pointerType==="mouse"?t(f):undefined}de(en,"whenMouse");var Ce2=bu;var we2=Oc;var Se2=Su;var Re2=Eu;var Pe2=Mc;var Ie2=Au;var Le2=Yr;var ke2=Mu;var Me2=Lu;var De2=Fu;var Te2=ju;var Ne2=Bu;var Ae2=Vu;var Ee2=$u;var Oe2=Hu;var c2=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]];var st3=t("ellipsis",c2);var e2=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]];var it3=t("chevron-left",e2);import*as d2 from"react";import{Fragment as ae2,jsx as C,jsxs as re}from"react/jsx-runtime";import{jsx as l2,jsxs as G4}from"react/jsx-runtime";import{jsx as b,jsxs as O2}from"react/jsx-runtime";import{jsx as R2}from"react/jsx-runtime";var Z=Object.defineProperty;var te=(n)=>n;function ne3(n,t){this[n]=te.bind(null,t)}var pt2=(n,t)=>{for(var r in t)Z(n,r,{get:t[r],enumerable:true,configurable:true,set:ne3.bind(t,r)})};var oe=Object.defineProperty;var x2=(n,t)=>oe(n,"name",{value:t,configurable:true});var T2="ContextMenu";var[ie2,tt2]=s(T2,[ee]);var v=ee();var[se3,E3]=ie2(T2);var ce2=x2((n)=>{let{__scopeContextMenu:t,children:r,onOpenChange:u,open:c,dir:p,modal:M=true}=n,P=d2.useRef(false);if(J){let w=d2.useRef(false);d2.useEffect(()=>{if(c===true&&!P.current&&!w.current)w.current=true,console.warn("ContextMenu: The `open` prop has been set to `true` before the user has interacted with the trigger, so its position is indeterminate. This is likely unintended and will result in the menu being anchored to the top-left corner of the viewport.")},[c])}let[g,y]=i({prop:c,defaultProp:false,onChange:u,caller:T2}),N=v(t);return C(se3,{scope:t,open:g,onOpenChange:y,modal:M,hasInteractedRef:P,children:C(Ce2,{...N,dir:p,open:g,onOpenChange:y,modal:M,children:r})})},"ContextMenu");var ue="ContextMenuTrigger";var me=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,disabled:c=false,...p}=t,M=E3(ue,u),P=v(u),[g,y]=d2.useState({x:0,y:0}),N=d2.useMemo(()=>({current:{getBoundingClientRect:x2(()=>DOMRect.fromRect({width:0,height:0,...g}),"getBoundingClientRect")}}),[g]),w=d2.useRef(0),h=d2.useCallback(()=>window.clearTimeout(w.current),[]),L=x2((I)=>{M.hasInteractedRef.current=true,y({x:I.clientX,y:I.clientY}),M.onOpenChange(true)},"handleOpen");return d2.useEffect(()=>h,[h]),d2.useEffect(()=>void(c&&h()),[c,h]),re(ae2,{children:[C(we2,{...P,virtualRef:N}),C(a2.span,{"data-state":M.open?"open":"closed","data-disabled":c?"":undefined,...p,ref:r,style:{WebkitTouchCallout:"none",...t.style},onContextMenu:c?t.onContextMenu:o(t.onContextMenu,(I)=>{h(),L(I),I.preventDefault()}),onPointerDown:c?t.onPointerDown:o(t.onPointerDown,_((I)=>{if(h(),M.open)M.onOpenChange(false);w.current=window.setTimeout(()=>L(I),700)})),onPointerMove:c?t.onPointerMove:o(t.onPointerMove,_(h)),onPointerCancel:c?t.onPointerCancel:o(t.onPointerCancel,_(h)),onPointerUp:c?t.onPointerUp:o(t.onPointerUp,_(h))})]})},"ContextMenuTrigger"));var de2=x2((n)=>{let{__scopeContextMenu:t,...r}=n,u=v(t);return C(Se2,{...u,...r})},"ContextMenuPortal");var pe="ContextMenuContent";var le2=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=E3(pe,u),M=v(u),P=d2.useRef(false);return C(Re2,{...M,...c,ref:r,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:(g)=>{if(t.onCloseAutoFocus?.(g),!g.defaultPrevented&&P.current)g.preventDefault();P.current=false},onInteractOutside:(g)=>{if(t.onInteractOutside?.(g),!g.defaultPrevented&&!p.modal)P.current=true},style:{...t.style,...{"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}}})},"ContextMenuContent"));var xe3=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Pe2,{...p,...c,ref:r})},"ContextMenuGroup"));var fe2=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Ie2,{...p,...c,ref:r})},"ContextMenuLabel"));var ve3=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Le2,{...p,...c,ref:r})},"ContextMenuItem"));var ge2=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(ke2,{...p,...c,ref:r})},"ContextMenuCheckboxItem"));var be2=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Me2,{...p,...c,ref:r})},"ContextMenuRadioGroup"));var he2=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(De2,{...p,...c,ref:r})},"ContextMenuRadioItem"));var _e3=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Te2,{...p,...c,ref:r})},"ContextMenuItemIndicator"));var ye3=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Ne2,{...p,...c,ref:r})},"ContextMenuSeparator"));var ze3="ContextMenuSub";var Ge3=x2((n)=>{let{__scopeContextMenu:t,children:r,onOpenChange:u,open:c,defaultOpen:p}=n,M=v(t),[P,g]=i({prop:c,defaultProp:p??false,onChange:u,caller:ze3});return C(Ae2,{...M,open:P,onOpenChange:g,children:r})},"ContextMenuSub");var Be3=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Ee2,{...p,...c,ref:r})},"ContextMenuSubTrigger"));var Fe3=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Oe2,{...p,...c,ref:r,style:{...t.style,...{"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}}})},"ContextMenuSubContent"));function _(n){return(t)=>t.pointerType!=="mouse"?n(t):undefined}x2(_,"whenTouchOrPen");var A=ce2;var D=me;var k=de2;var B=le2;var jt2=({...n})=>l2(A,{"data-slot":"context-menu",...n});var $t2=({...n})=>l2(D,{"data-slot":"context-menu-trigger",...n});var Yt2=({className:n,...t})=>l2(k,{children:l2(B,{"data-slot":"context-menu-content",className:e("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 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 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",n),...t})});var Kt2=({className:n,...t})=>b("nav",{role:"navigation","aria-label":"pagination","data-slot":"pagination",className:e("mx-auto flex w-full justify-center",n),...t});var Xt2=({className:n,children:t,...r})=>b("ul",{"data-slot":"pagination-content",className:e("flex flex-row items-center gap-1",n),...r,children:t});var Ue3=({...n})=>b("li",{"data-slot":"pagination-item",...n});var Zt2=({className:n,...t})=>O2("span",{"aria-hidden":true,"data-slot":"pagination-ellipsis",className:e("flex size-9 items-center justify-center",n),...t,children:[b(st3,{className:"size-4"}),b("span",{className:"sr-only",children:"More pages"})]});var Jt2=({className:n,...t})=>R2("div",{"data-slot":"table-container",className:"relative w-full max-w-full overflow-x-auto",children:R2("table",{"data-slot":"table",className:e("min-w-full w-max caption-bottom text-sm",n),...t})});var Qt2=({className:n,...t})=>R2("thead",{"data-slot":"table-header",className:e("[&_tr]:border-b",n),...t});var eo3=({className:n,...t})=>R2("tbody",{"data-slot":"table-body",className:e("[&_tr:last-child]:border-0",n),...t});var qe3=({className:n,...t})=>R2("tr",{"data-slot":"table-row",className:e("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",n),...t});var wt2=({className:n,...t})=>R2("th",{"data-slot":"table-head",className:e("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",n),...t});var je3=({className:n,...t})=>R2("td",{"data-slot":"table-cell",className:e("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",n),...t});var to3=({className:n,...t})=>R2("caption",{"data-slot":"table-caption",className:e("text-muted-foreground mt-4 text-sm",n),...t});var o2=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]];var v2=t("chevron-down",o2);var e3=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]];var C2=t("x",e3);import*as P2 from"react";import{Fragment as go3,jsx as R3}from"react/jsx-runtime";import{jsx as O3,jsxs as j2}from"react/jsx-runtime";import{jsx as ho3}from"react/jsx-runtime";import*as J2 from"react";import{jsx as Io2}from"react/jsx-runtime";import{jsx as No2}from"react/jsx-runtime";var so3=Object.defineProperty;var h2=(f,t)=>so3(f,"name",{value:t,configurable:true});var k2="Dialog";var[K2,ao3]=s(k2);var[fo3,I]=K2(k2);var _2=h2((f)=>{let{__scopeDialog:t,children:m,open:u,defaultOpen:v,onOpenChange:p,modal:n=true}=f,y=P2.useRef(null),w=P2.useRef(null),[W,A]=i({prop:u,defaultProp:v??false,onChange:p,caller:k2}),[to,eo]=P2.useState(0),[io,no]=P2.useState(0);return R3(fo3,{scope:t,triggerRef:y,contentRef:w,contentId:c(),titleId:c(),descriptionId:c(),titlePresent:to>0,descriptionPresent:io>0,setTitleCount:eo,setDescriptionCount:no,open:W,onOpenChange:A,onOpenToggle:P2.useCallback(()=>A((lo)=>!lo),[A]),modal:n,children:m})},"Dialog");var po3="DialogTrigger";var ge3=P2.forwardRef(h2(function(t,m){let{__scopeDialog:u,...v}=t,p=I(po3,u),n=r(m,p.triggerRef);return R3(a2.button,{type:"button","aria-haspopup":"dialog","aria-expanded":p.open,"aria-controls":p.open?p.contentId:undefined,"data-state":S2(p.open),...v,ref:n,onClick:o(t.onClick,p.onOpenToggle)})},"DialogTrigger"));var X2="DialogPortal";var[uo3,Y]=K2(X2,{forceMount:undefined});var F=h2((f)=>{let{__scopeDialog:t,forceMount:m,children:u,container:v}=f,p=I(X2,t);return R3(uo3,{scope:t,forceMount:m,children:P2.Children.map(u,(n)=>R3(d,{present:m||p.open,children:R3(U2,{asChild:true,container:v,children:n})}))})},"DialogPortal");var L2="DialogOverlay";var B2=P2.forwardRef(h2(function(t,m){let u=Y(L2,t.__scopeDialog),{forceMount:v=u.forceMount,...p}=t,n=I(L2,t.__scopeDialog);return n.modal?R3(d,{present:v||n.open,children:R3(Do2,{...p,ref:m})}):null},"DialogOverlay"));var mo3=x("DialogOverlay.RemoveScroll");var Do2=P2.forwardRef(h2(function(t,m){let{__scopeDialog:u,...v}=t,p=I(L2,u),n=co2(),y=r(m,n);return R3(Q,{as:mo3,allowPinchZoom:true,shards:[p.contentRef],children:R3(a2.div,{"data-state":S2(p.open),...v,ref:y,style:{pointerEvents:"auto",...v.style}})})},"DialogOverlayImpl"));var E4="DialogContent";var z=P2.forwardRef(h2(function(t,m){let u=Y(E4,t.__scopeDialog),{forceMount:v=u.forceMount,...p}=t,n=I(E4,t.__scopeDialog);return R3(d,{present:v||n.open,children:n.modal?R3(vo3,{...p,ref:m}):R3(Po2,{...p,ref:m})})},"DialogContent"));var vo3=P2.forwardRef(h2(function(t,m){let u=I(E4,t.__scopeDialog),v=P2.useRef(null),p=r(m,u.contentRef,v);return P2.useEffect(()=>{let n=v.current;if(n)return le(n)},[]),R3(q2,{...t,ref:p,trapFocus:u.open,disableOutsidePointerEvents:u.open,onCloseAutoFocus:o(t.onCloseAutoFocus,(n)=>{n.preventDefault(),u.triggerRef.current?.focus()}),onPointerDownOutside:o(t.onPointerDownOutside,(n)=>{let y=n.detail.originalEvent,w=y.button===0&&y.ctrlKey===true;if(y.button===2||w)n.preventDefault()}),onFocusOutside:o(t.onFocusOutside,(n)=>n.preventDefault())})},"DialogContentModal"));var Po2=P2.forwardRef(h2(function(t,m){let u=I(E4,t.__scopeDialog),v=P2.useRef(false),p=P2.useRef(false);return R3(q2,{...t,ref:m,trapFocus:false,disableOutsidePointerEvents:false,onCloseAutoFocus:(n)=>{if(t.onCloseAutoFocus?.(n),!n.defaultPrevented){if(!v.current)u.triggerRef.current?.focus();n.preventDefault()}v.current=false,p.current=false},onInteractOutside:(n)=>{if(t.onInteractOutside?.(n),!n.defaultPrevented){if(v.current=true,n.detail.originalEvent.type==="pointerdown")p.current=true}let y=n.target;if(u.triggerRef.current?.contains(y))n.preventDefault();if(n.detail.originalEvent.type==="focusin"&&p.current)n.preventDefault()}})},"DialogContentNonModal"));var q2=P2.forwardRef(h2(function(t,m){let{__scopeDialog:u,trapFocus:v,onOpenAutoFocus:p,onCloseAutoFocus:n,...y}=t,w=I(E4,u);return G3(),R3(go3,{children:R3(ne2,{asChild:true,loop:true,trapped:v,onMountAutoFocus:p,onUnmountAutoFocus:n,children:R3(N2,{role:"dialog",id:w.contentId,"aria-describedby":w.descriptionPresent?w.descriptionId:undefined,"aria-labelledby":w.titlePresent?w.titleId:undefined,"data-state":S2(w.open),...y,ref:m,deferPointerDownOutside:true,onDismiss:()=>w.onOpenChange(false)})})})},"DialogContentImpl"));var Ro3="DialogTitle";var he3=P2.forwardRef(h2(function(t,m){let{__scopeDialog:u,...v}=t,p=I(Ro3,u),{setTitleCount:n}=p;return l(()=>(n((y)=>y+1),()=>n((y)=>y-1)),[n]),R3(a2.h2,{id:p.titleId,...v,ref:m})},"DialogTitle"));var Co2="DialogDescription";var ve4=P2.forwardRef(h2(function(t,m){let{__scopeDialog:u,...v}=t,p=I(Co2,u),{setDescriptionCount:n}=p;return l(()=>(n((y)=>y+1),()=>n((y)=>y-1)),[n]),R3(a2.p,{id:p.descriptionId,...v,ref:m})},"DialogDescription"));var bo3="DialogClose";var H2=P2.forwardRef(h2(function(t,m){let{__scopeDialog:u,...v}=t,p=I(bo3,u);return R3(a2.button,{type:"button",...v,ref:m,onClick:o(t.onClick,()=>p.onOpenChange(false))})},"DialogClose"));function S2(f){return f?"open":"closed"}h2(S2,"getState");var M2=({...f})=>O3(_2,{"data-slot":"dialog",...f});var Yo2=({...f})=>O3(F,{"data-slot":"dialog-portal",...f});var Ko2=({className:f,...t})=>O3(B2,{"data-slot":"dialog-overlay",className:e("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",f),...t});var _o2={lg:"sm:max-w-2xl",md:"sm:max-w-lg",xl:"sm:max-w-4xl"};var yo3={content:"",viewport:"max-h-[calc(100vh-2rem)]"};var D2=({className:f,children:t,fixedBottom:m=false,height:u="viewport",size:v="md",showCloseButton:p=true,...n})=>j2(Yo2,{"data-slot":"dialog-portal",children:[O3(Ko2,{}),j2(z,{"data-slot":"dialog-content",className:e("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 flex flex-col w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200",_o2[v],yo3[u],m&&"[&_[data-slot=dialog-footer]]:sticky [&_[data-slot=dialog-footer]]:bottom-0 [&_[data-slot=dialog-footer]]:z-10 [&_[data-slot=dialog-footer]]:-mx-6 [&_[data-slot=dialog-footer]]:border-t [&_[data-slot=dialog-footer]]:bg-background [&_[data-slot=dialog-footer]]:px-6 [&_[data-slot=dialog-footer]]:py-4 [&_[data-slot=form-actions]]:sticky [&_[data-slot=form-actions]]:bottom-0 [&_[data-slot=form-actions]]:z-10 [&_[data-slot=form-actions]]:-mx-6 [&_[data-slot=form-actions]]:border-t [&_[data-slot=form-actions]]:bg-background [&_[data-slot=form-actions]]:px-6 [&_[data-slot=form-actions]]:py-4",f),...n,children:[t,p?j2(H2,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[O3(C2,{}),O3("span",{className:"sr-only",children:"Close"})]}):null]})]});var T3=({className:f,...t})=>O3(he3,{"data-slot":"dialog-title",className:e("text-lg leading-none font-semibold",f),...t});var Z2=({className:f,...t})=>O3(ve4,{"data-slot":"dialog-description",className:e("text-muted-foreground text-sm",f),...t});var g2=({className:f,type:t,...m})=>ho3("input",{type:t,"data-slot":"input",className:e("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",f),...m});var Oo2=Object.defineProperty;var wo3=(f,t)=>Oo2(f,"name",{value:t,configurable:true});var To2=J2.forwardRef(wo3(function(t,m){return Io2(a2.label,{...t,ref:m,onMouseDown:(u)=>{if(u.target.closest("button, input, select, textarea"))return;if(t.onMouseDown?.(u),!u.defaultPrevented&&u.detail>1)u.preventDefault()}})},"Label"));var oo3=To2;var b2=({className:f,...t})=>No2(oo3,{"data-slot":"label",className:e("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",f),...t});import{Fragment as _3,useId as j3}from"react";import{jsx as t2,jsxs as P3}from"react/jsx-runtime";import{useId as te2}from"react";import{jsx as f2,jsxs as N3}from"react/jsx-runtime";import{jsx as B3,jsxs as X3,Fragment as le3}from"react/jsx-runtime";"use client";var L3={};pt2(L3,{ResourceActionPrimitive:()=>G5,ResourceDialogPrimitive:()=>J3,ResourceFilterPrimitive:()=>W2,ResourceFiltersBar:()=>Y2,ResourceFormPrimitive:()=>Q2,ResourceListPrimitive:()=>z2,ResourcePaginationPrimitive:()=>K3,ResourceTablePrimitive:()=>q3});var k3=(...e)=>e.filter(Boolean).join(" ");var oe2={border:"1px solid currentColor",borderRadius:"0.5rem",padding:"0.75rem"};var q3=({caption:e,className:i,columns:r,empty:l="No resources found",getRowKey:s,onRowClick:o,renderActions:u,actionsLabel:d="Actions",stickyActions:a=true,isPending:c=false,isRowSelected:C,isRowExpanded:S,onExpandedChange:x,renderDetails:h,renderContextMenu:p,renderCell:w,rows:A,style:ee})=>{let I=u!==undefined||h!==undefined,V=a?"sticky right-0 z-10 shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":"";return P3(Jt2,{className:k3("ci-resource-table",i),style:{borderCollapse:"collapse",width:"100%",...ee},children:[e?t2(to3,{children:e}):null,t2(Qt2,{children:P3(qe3,{children:[r.map((R)=>t2(wt2,{scope:"col",children:R.label},R.id)),I?t2(wt2,{className:V,children:t2("span",{className:"sr-only",children:d})}):null]})}),t2(eo3,{children:A.length===0?t2(qe3,{children:t2(je3,{className:"py-10",colSpan:Math.max(r.length+(I?1:0),1),children:l})}):A.map((R)=>{let F=S?.(R)??false,O=h?.(R,F),E=!!O,H=P3(qe3,{"data-state":C?.(R)?"selected":undefined,tabIndex:o?0:undefined,className:o?"cursor-pointer":undefined,onKeyDown:(y)=>{if(y.target===y.currentTarget&&(y.key==="Enter"||y.key===" "))y.preventDefault(),o?.(R)},onClick:(y)=>{if(y.target instanceof Element&&y.target.closest("[data-slot='row-actions']"))return;o?.(R)},children:[r.map((y)=>t2(je3,{children:w(R,y)},y.id)),I?P3(je3,{"data-slot":"row-actions",className:`flex gap-2 justify-end ${V}`,children:[u?.(R),E&&x?t2(n2,{type:"button",variant:"ghost",size:"icon","aria-label":F?"Collapse":"Expand","aria-expanded":F,disabled:c,onClick:()=>x(R,!F),children:F?t2(v2,{}):t2(m,{})}):null]}):null]},s(R));return P3(_3,{children:[p?P3(jt2,{children:[t2($t2,{asChild:true,children:H}),t2(Yt2,{children:p(R)})]}):H,E&&F?t2(qe3,{className:"hover:bg-transparent",children:t2(je3,{colSpan:r.length+(I?1:0),children:O})}):null]},s(R))})})]})};var z2=({ariaLabel:e="Resources",className:i,empty:r="No resources found",getItemKey:l,items:s,renderItem:o,renderContainer:u,style:d})=>u?u(s.length===0?r:s.map((a,c)=>t2(_3,{children:o(a,c)},l(a)))):t2("ul",{"aria-label":e,className:k3("ci-resource-list",i),style:{display:"flex",flexDirection:"column",gap:"1rem",listStyle:"none",...d},children:s.length===0?t2("li",{children:r}):s.map((a,c)=>t2("li",{children:o(a,c)},l(a)))});var W2=({className:e,inputProps:i,label:r,onChange:l,style:s,value:o})=>t2(g2,{...i,"aria-label":r,className:k3("ci-resource-filter",e),onChange:(u)=>{l(u.currentTarget.value)},style:s,type:"search",value:o});var re2=(e,i)=>{if(i<=7)return Array.from({length:i},(s,o)=>o+1);let r=Math.max(2,Math.min(e-1,i-3)),l=Math.min(i-1,Math.max(e+1,4));return[1,...r>2?[null]:[],...Array.from({length:l-r+1},(s,o)=>r+o),...l<i-1?[null]:[],i]};var K3=({className:e,currentPage:i,hasNextPage:r,hasPreviousPage:l=false,isPending:s=false,navigationLabel:o="Resource pagination",nextLabel:u="Next",onNext:d,onPrevious:a,onPageChange:c,totalPages:C,ellipsisLabel:S="More pages",previousLabel:x="Previous",style:h})=>t2(Kt2,{"aria-label":o,className:k3("ci-resource-pagination",e),style:h,children:P3(Xt2,{children:[t2(Ue3,{children:t2(n2,{variant:"ghost",disabled:!l||s,onClick:a,type:"button",children:x})}),i!==undefined&&C!==undefined&&c?re2(i,C).map((p,w)=>t2(Ue3,{children:p===null?t2(Zt2,{"aria-label":S}):t2(n2,{type:"button",size:"icon",variant:p===i?"outline":"ghost","aria-current":p===i?"page":undefined,disabled:s,onClick:()=>c(p),children:p})},p??`gap-${w}`)):null,i!==undefined&&(C===undefined||!c)?t2(Ue3,{children:P3("span",{"aria-live":"polite",children:["Page ",i]})}):null,t2(Ue3,{children:t2(n2,{variant:"ghost",disabled:!r||s,onClick:d,type:"button",children:u})})]})});var G5=({children:e,className:i,components:r,disabled:l=false,onClick:s,pending:o=false,style:u})=>{let d=r?.Button??n2;return t2(d,{"aria-busy":o,className:k3("ci-resource-action",i),disabled:l||o,onClick:s,style:u,type:"button",children:e})};var J3=({children:e,className:i,components:r,open:l,onOpenChange:s,description:o,style:u,title:d})=>{let a=j3(),c=j3();if(!r?.Dialog)return t2(M2,{open:l,...s?{onOpenChange:s}:{},children:P3(D2,{className:i,style:u,"aria-describedby":o?c:undefined,children:[t2(T3,{children:d}),o?t2(Z2,{id:c,children:o}):null,e]})});if(!l)return null;let C=r.Dialog;return P3(C,{open:l,"aria-labelledby":a,"aria-modal":"true",className:k3("ci-resource-dialog",i),style:{...oe2,...u},children:[t2("h2",{id:a,children:d}),e]})};var ie3=(e)=>e===null||e===undefined?"":String(e);var ae3=({field:e,id:i,value:r,disabled:l,errorId:s,onChange:o})=>{let u={"aria-describedby":s,"aria-invalid":s!==undefined,disabled:l,id:i,name:e.name,required:e.control!=="checkbox"&&e.required===true&&r!==null};if(e.control==="select"){let d=e.options??[];return N3("select",{...u,disabled:l||e.readOnly,className:"border-input bg-background h-9 w-full rounded-md border px-3 text-sm focus-visible:ring-ring focus-visible:ring-2",value:d.findIndex((a)=>a.value===r),onChange:(a)=>{let c=d[Number(a.currentTarget.value)];if(c)o(c.value)},children:[N3("option",{value:-1,disabled:true,children:["Select ",e.label]}),d.map((a,c)=>f2("option",{value:c,children:a.label},c))]})}if(e.control==="checkbox")return f2(g2,{...u,className:"size-4",type:"checkbox",checked:r===true,disabled:l||e.readOnly,onChange:(d)=>o(d.currentTarget.checked)});if(e.control==="custom")return N3("p",{role:"alert",children:["A custom control is required for ",e.label,"."]});return f2(g2,{...u,readOnly:e.readOnly,type:e.control,value:ie3(r),onChange:(d)=>{let a=d.currentTarget;o(e.control==="number"&&a.value!==""?a.valueAsNumber:a.value)}})};var ne4=({field:e,value:i,error:r,disabled:l,onChange:s,renderControl:o})=>{let u=te2(),d=r?`${u}-error`:undefined,a={disabled:l,errorId:d,field:e,id:u,onChange:(c)=>{if(!l&&!e.readOnly)s(c)},value:i};return N3("div",{className:"grid gap-2",children:[N3(b2,{htmlFor:u,children:[e.label,e.required?" *":""]}),e.control==="custom"&&o?o(a):f2(ae3,{...a}),e.nullable?f2(n2,{"aria-label":`Clear ${e.label}`,type:"button",variant:"ghost",size:"sm",className:"justify-self-start",disabled:l||e.readOnly||i===null,onClick:()=>s(null),children:"Clear"}):null,r?f2("p",{id:d,role:"alert",className:"text-destructive text-sm",children:r}):null]})};var Q2=({label:e,fields:i,values:r,errors:l,onChange:s,onSubmit:o,onCancel:u,renderControl:d,pending:a=false,disabled:c=false,submitLabel:C="Save",cancelLabel:S="Cancel",error:x,className:h})=>N3("form",{"aria-label":e,"aria-busy":a,className:h??"grid gap-4",onSubmit:(p)=>{if(p.preventDefault(),!a&&!c)o()},children:[x?f2("div",{role:"alert",className:"text-destructive text-sm",children:x}):null,i.map((p)=>f2(ne4,{field:p,value:r[p.name],error:l?.[p.name],disabled:c||a,onChange:(w)=>s(p.name,w),renderControl:d},p.name)),N3("div",{"data-slot":"form-actions",className:"flex justify-end gap-2",children:[u?f2(n2,{type:"button",variant:"outline",disabled:a,onClick:u,children:S}):null,f2(n2,{type:"submit",disabled:c||a,children:C})]})]});var U3=(e)=>B3("div",{className:"contents",children:e.control},e.key);var Y2=({label:e="Filter by",layout:i="stacked",controls:r})=>{if(r.length===0)return null;let l=r.filter((o)=>!o.fullWidth),s=r.filter((o)=>o.fullWidth);return B3("div",{className:"mb-4",children:i==="inline"?B3("form",{className:"flex flex-wrap items-end gap-2",onSubmit:(o)=>o.preventDefault(),children:r.map(U3)}):X3(le3,{children:[l.length>0?X3("form",{className:"flex flex-wrap gap-2 mb-2",onSubmit:(o)=>o.preventDefault(),children:[B3(b2,{className:"mt-3 mr-2",children:e}),l.map(U3)]}):null,s.map((o)=>B3("form",{className:"mb-2 last:mb-0",onSubmit:(u)=>u.preventDefault(),children:o.control},o.key))]})})};var{ResourceActionPrimitive:we3,ResourceDialogPrimitive:Be4,ResourceFilterPrimitive:Ie3,ResourceFormPrimitive:Le3,ResourceFiltersBar:Ae3,ResourceListPrimitive:Me3,ResourcePaginationPrimitive:Ve3,ResourceTablePrimitive:Oe3}=L3;import{useMemo as useMemo12,useState as useState19}from"react";import{useIsMutating,useMutation,useQueryClient as useQueryClient2}from"@tanstack/react-query";import{useMemo as useMemo9,useRef as useRef18}from"react";var immutable=(value)=>{if(value!==null&&typeof value==="object"){for(const child of Object.values(value)){immutable(child)}Object.freeze(value)}return value};var useEntityMutation=(contract,options)=>{const runtime=useEntityRuntime();const queryClient=useQueryClient2();const client=useMemo9(()=>runtime.source.bind(contract),[runtime,contract]);const resourceKey=["ci-entities",...runtime.key,contract.id,contract.version];const mutationKey=[...resourceKey,"write",options.id??"create"];const lastAction=useRef18(null);const scopeOptions={};if(options.id!==undefined){scopeOptions.scope={id:JSON.stringify(mutationKey)}}const mutation=useMutation({mutationKey,...scopeOptions,mutationFn:async(action)=>{if(!action.current()){throw entityScopeError()}const result=await action.execute();if(!action.current()){throw entityScopeError("uncertain")}if(!result.ok){throw new ResourceQueryError2(result.correlationId,result.error)}return result},networkMode:"always",onSuccess:async(_data,action)=>{if(action.current()){await queryClient.invalidateQueries({queryKey:resourceKey})}},retry:false});const pending=useIsMutating({mutationKey})>0;const send=async(action)=>{try{const result=await mutation.mutateAsync(action);if(!action.current()){const error=entityScopeError("uncertain");return{correlationId:error.correlationId,error:error.resourceError,ok:false}}return result}catch(error){if(error instanceof ResourceQueryError2){return{correlationId:error.correlationId,error:error.resourceError,ok:false}}throw error}};const submit=(input)=>{const captured=immutable(structuredClone(options.prepare(input)));const action={current:runtime.current,execute:()=>options.execute(client,captured),input:captured,runtime,target:options.id};lastAction.current=action;return send(action)};const resubmit=()=>{const action=lastAction.current;if(action===null){throw new Error("No submitted entity action to resubmit")}if(action.target!==options.id){throw new Error("The submitted action belongs to a different record")}return send(action)};const current=mutation.variables===undefined||mutation.variables.runtime===runtime&&mutation.variables.target===options.id&&mutation.variables.current();const error=current&&mutation.error instanceof ResourceQueryError2?mutation.error:null;const failureStatus=()=>{if(error?.resourceError.outcome==="uncertain"){return"uncertain"}if(error?.resourceError.code==="conflict"){return"conflict"}return"rejected"};const status=mutation.isError?failureStatus():mutation.status;return{available:runtime.state.status==="authenticated"&&client.definition.capabilities[options.operation]===true,data:current?mutation.data?.value:undefined,error,pending,resubmit,status:current?status:"idle",submit,submitted:current?mutation.variables?.input:undefined}};var useEntityUpdate2=(contract,target)=>useEntityMutation(contract,{execute:(client,input)=>client.update(input),id:target.id,operation:"update",prepare:(input)=>({...input,id:target.id,idempotencyKey:globalThis.crypto.randomUUID()})});var useEntityCreate2=(contract)=>useEntityMutation(contract,{execute:(client,input)=>client.create(input),operation:"create",prepare:(input)=>({...input,idempotencyKey:globalThis.crypto.randomUUID()})});var useEntityDelete2=(contract,target)=>useEntityMutation(contract,{execute:(client,input)=>client.delete(input),id:target.id,operation:"delete",prepare:(input)=>({...input,id:target.id,idempotencyKey:globalThis.crypto.randomUUID()})});import{useQuery}from"@tanstack/react-query";import{useMemo as useMemo10}from"react";var authStateForError=(error,state)=>{if(error instanceof ResourceQueryError2){if(error.resourceError.code==="forbidden"){return{status:"forbidden"}}if(error.resourceError.code==="unauthenticated"){return{status:"unauthenticated"}}}return state};var useEntityList2=(contract,query)=>{const runtime=useEntityRuntime();const client=useMemo10(()=>runtime.source.bind(contract),[runtime,contract]);const result=useQuery({enabled:runtime.state.status==="authenticated"&&client.definition.capabilities.search,queryFn:async({signal})=>{if(!runtime.current()){throw entityScopeError()}const data=unwrapResourceResult2(await client.list(query,{signal}));if(!runtime.current()){throw entityScopeError()}return data},queryKey:["ci-entities",...runtime.key,contract.id,contract.version,"list",query],retry:false});return{authState:authStateForError(result.error,runtime.state),capabilities:client.definition.capabilities,data:result.data,empty:result.data?.items.length===0,error:result.error,loading:result.isLoading,refresh:async()=>{await result.refetch()},refreshing:result.isFetching}};var useEntityRecord2=(contract,input)=>{const runtime=useEntityRuntime();const client=useMemo10(()=>runtime.source.bind(contract),[runtime,contract]);const result=useQuery({enabled:runtime.state.status==="authenticated"&&client.definition.capabilities.get===true,queryFn:async({signal})=>{if(!runtime.current()){throw entityScopeError()}const data=unwrapResourceResult2(await client.get(input,{signal}));if(!runtime.current()){throw entityScopeError()}return data},queryKey:["ci-entities",...runtime.key,contract.id,contract.version,"record",input.id],retry:false});return{authState:authStateForError(result.error,runtime.state),capabilities:client.definition.capabilities,data:result.data,error:result.error,loading:result.isLoading,refresh:async()=>{await result.refetch()},refreshing:result.isFetching}};import{createParser,parseAsJson,useQueryStates}from"nuqs";import{useMemo as useMemo11,useState as useState18}from"react";var DEFAULT_PAGE_SIZE=25;var namespacePattern=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u;var isObject=(value)=>typeof value==="object"&&value!==null&&!Array.isArray(value);var isFilter=(value)=>{if(!isObject(value)){return false}if((value.operator==="and"||value.operator==="or")&&"filters"in value){return Array.isArray(value.filters)&&value.filters.every(isFilter)}if(value.operator==="not"&&"filter"in value){return isFilter(value.filter)}return typeof value.field==="string"&&typeof value.operator==="string"&&(value.operator==="is_null"||value.operator==="is_not_null"||("value"in value))};var isSorts=(value)=>Array.isArray(value)&&value.every((sort)=>isObject(sort)&&typeof sort.field==="string"&&(sort.direction==="asc"||sort.direction==="desc"));var positiveInteger=(maximum=Number.MAX_SAFE_INTEGER)=>createParser({parse:(value)=>{const number=Number(value);return/^[1-9]\d*$/u.test(value)&&Number.isSafeInteger(number)&&number<=maximum?number:null},serialize:String});var pageSizeFor=(value=DEFAULT_PAGE_SIZE)=>Number.isSafeInteger(value)&&value>0&&value<=100?value:DEFAULT_PAGE_SIZE;var parsersFor=(pageSize,contract)=>{const protocol=contract===undefined?undefined:createEntityProtocol(contract);const accepts=(query)=>protocol===undefined||protocol.decodeRequest({operation:"list",query:{pagination:{mode:"page",page:1,pageSize},...query},requestId:"view-state",resourceId:contract?.id}).ok;return{filter:parseAsJson((value)=>isFilter(value)&&accepts({filter:value})?value:null),page:positiveInteger().withDefault(1),pageSize:positiveInteger(100).withDefault(pageSize),sort:parseAsJson((value)=>isSorts(value)&&accepts({sort:value})?value:null).withDefault([]),textSearch:createParser({parse:(value)=>accepts({textSearch:value})?value:null,serialize:(value)=>value}).withDefault("")}};var queryFor=(state)=>{const query={pagination:{mode:"page",page:state.page,pageSize:state.pageSize}};if(state.filter!==null){query.filter=state.filter}if(state.sort.length>0){query.sort=state.sort}if(state.textSearch.trim()!==""){query.textSearch=state.textSearch.trim()}return query};var controller=(state,update)=>({query:queryFor(state),setFilter:(filter)=>update({filter,page:1}),setPage:(page)=>update({page:Math.max(1,page)}),setPageSize:(pageSize)=>update({page:1,pageSize:Math.max(1,Math.min(100,pageSize))}),setSort:(sort)=>update({page:1,sort:[...sort]}),setTextSearch:(textSearch)=>update({page:1,textSearch}),state});var useEntityViewState2=(namespace,input={})=>{if(!namespacePattern.test(namespace)){throw new Error("URL-backed entity views require a stable alphanumeric namespace")}const parsers=useMemo11(()=>parsersFor(pageSizeFor(input.pageSize),input.contract),[input.pageSize,input.contract]);const[state,setState]=useQueryStates(parsers,{clearOnDefault:true,history:"replace",shallow:false,urlKeys:{filter:`${namespace}.filter`,page:`${namespace}.page`,pageSize:`${namespace}.pageSize`,sort:`${namespace}.sort`,textSearch:`${namespace}.textSearch`}});const normalized=useMemo11(()=>({filter:state.filter,page:state.page>0?state.page:1,pageSize:state.pageSize>0&&state.pageSize<=100?state.pageSize:input.pageSize??DEFAULT_PAGE_SIZE,sort:state.sort,textSearch:state.textSearch}),[input.pageSize,state]);return controller(normalized,(next)=>{const{sort,...values}=next;const update=values;if(sort!==undefined){update.sort=[...sort]}setState(update)})};var useMemoryEntityViewState2=(input={})=>{const[state,setState]=useState18({filter:null,page:1,pageSize:pageSizeFor(input.pageSize),sort:[],textSearch:""});return controller(state,(next)=>{setState((current)=>({...current,...next}))})};import{jsx as jsx2,jsxs,Fragment as Fragment5}from"react/jsx-runtime";var isObject2=(value)=>value!==null&&typeof value==="object"&&!Array.isArray(value);var schemaProperties=(entity,mode="entity")=>{const properties=entity.contract.schemas[mode]?.properties;return isObject2(properties)?properties:{}};var requiredFields=(entity,mode)=>{const required=entity.contract.schemas[mode]?.required;return new Set(Array.isArray(required)?required.filter((value)=>typeof value==="string"):[])};var scalarTypes=(schema)=>{const{type}=schema;if(typeof type==="string"){return[type]}return Array.isArray(type)?type.filter((value)=>typeof value==="string"):[]};var presentationSchema=(schema)=>{const union=schema.anyOf??schema.oneOf;if(!Array.isArray(union)){return schema}const members=union.filter(isObject2);const values=members.filter((member)=>member.type!=="null");const[value]=values;if(members.length===2&&values.length===1&&value!==undefined){return{...schema,...value,type:[...scalarTypes(value),"null"]}}return schema};var defaultControl=(schema)=>{if(schema.$ref!==undefined||(schema.anyOf!==undefined||schema.oneOf!==undefined)&&schema.type===undefined){return"custom"}if(Array.isArray(schema.enum)){return"select"}const types=scalarTypes(schema);if(types.includes("boolean")){return"checkbox"}if(types.includes("number")||types.includes("integer")){return"number"}if(schema.format==="email"){return"email"}if(schema.format==="date"){return"date"}if(schema.format==="date-time"){return"datetime-local"}return types.some((type)=>type==="object"||type==="array")?"custom":"text"};var configuredControl=(config,schema)=>{switch(config.control){case"text":case"email":case"number":case"checkbox":case"date":case"datetime-local":case"select":case"custom":{return config.control}case undefined:{return defaultControl(schema)}default:{return"custom"}}};var formFields=(entity,mode)=>{const properties=schemaProperties(entity,mode);const entityProperties=schemaProperties(entity);const required=requiredFields(entity,mode);return entity.config.forms[mode].fields.map((name)=>{const config=entity.config.fields[name];if(config===undefined){throw new Error(`Missing entity field configuration: ${name}`)}const candidate=properties[name]??entityProperties[name];const schema=isObject2(candidate)?presentationSchema(candidate):{};const entityField=entityProperties[name];const enums=Array.isArray(schema.enum)?schema.enum.filter((value)=>typeof value==="string"||typeof value==="number"||typeof value==="boolean"):[];return{control:configuredControl(config,schema),label:config.label,name,nullable:scalarTypes(schema).includes("null")||Array.isArray(schema.enum)&&schema.enum.includes(null),options:enums.map((value)=>({label:String(value),value})),readOnly:config.readOnly===true||schema.readOnly===true||isObject2(entityField)&&entityField.readOnly===true,required:required.has(name)}})};var displayValue=(value)=>{if(value===null||value===undefined){return"—"}if(typeof value==="boolean"){return value?"Yes":"No"}return typeof value==="object"?JSON.stringify(value):String(value)};var renderField=(entity,record,name,renderers)=>{const renderer=entity.config.fields[name]?.renderer;return renderer===undefined||renderers?.[renderer]===undefined?displayValue(record.value[name]):renderers[renderer]({field:name,record})};var sortFor=(state,field)=>{const[current]=state.state.sort;return[{direction:current?.field===field&¤t.direction==="asc"?"desc":"asc",field}]};var QueryControls=({view})=>jsx2(Ae3,{controls:[{control:jsx2(Ie3,{label:"Search",onChange:(value)=>view.setTextSearch(value),value:view.state.textSearch}),fullWidth:true,key:"search"}]});var EntityStatus=({state})=>{if(state.authState.status!=="authenticated"){return jsx2("output",{children:state.authState.status})}if(state.loading){return jsx2("output",{children:"Loading"})}if(state.error!==null){return jsx2("output",{role:"alert",children:state.error.message})}return null};var EntityPagination=({result,view,pending})=>{if(result===undefined||result.pagination!=="page"){return null}return jsx2(Ve3,{currentPage:result.page,totalPages:result.totalPages,hasPreviousPage:result.page>1,hasNextPage:result.page<result.totalPages,isPending:pending,onPageChange:(page)=>view.setPage(page),onPrevious:()=>view.setPage(result.page-1),onNext:()=>view.setPage(result.page+1)})};var ControlledEntityTable=({entity,empty,renderers,variant,view})=>{const result=useEntityList2(entity.contract,view.query);const names=variant===undefined?entity.config.table.columns:entity.config.table.variants?.[variant]?.columns??entity.config.table.columns;const columns=names.map((name)=>({id:name,label:entity.config.fields[name]?.label??name}));const hasStatus=result.authState.status!=="authenticated"||result.loading||result.error!==null;return jsxs("section",{children:[jsx2(QueryControls,{view}),hasStatus?jsx2(EntityStatus,{state:result}):jsxs(Fragment5,{children:[jsx2(Oe3,{columns:columns.map((column)=>({...column,label:entity.contract.query.sortableFields.includes(column.id)?jsx2("button",{type:"button",onClick:()=>view.setSort(sortFor(view,column.id)),children:column.label}):column.label})),empty,getRowKey:(record)=>record.id,renderCell:(record,column)=>{const name=names.find((field)=>field===column.id);return name===undefined?null:renderField(entity,record,name,renderers)},rows:result.data?.items??[]}),jsx2(EntityPagination,{pending:result.refreshing,result:result.data,view})]})]})};var UrlEntityTable=(props)=>jsx2(ControlledEntityTable,{...props,view:useEntityViewState2(props.namespace,{contract:props.entity.contract,pageSize:props.pageSize??25})});var MemoryEntityTable=(props)=>jsx2(ControlledEntityTable,{...props,view:useMemoryEntityViewState2(props.pageSize===undefined?{}:{pageSize:props.pageSize})});var EntityTable2=(props)=>props.viewState==="memory"?jsx2(MemoryEntityTable,{...props}):jsx2(UrlEntityTable,{...props,namespace:props.namespace});var ControlledEntityList=({entity,empty,renderers,view})=>{const result=useEntityList2(entity.contract,view.query);const hasStatus=result.authState.status!=="authenticated"||result.loading||result.error!==null;return jsxs("section",{children:[jsx2(QueryControls,{view}),hasStatus?jsx2(EntityStatus,{state:result}):jsxs(Fragment5,{children:[jsx2(Me3,{empty,getItemKey:(record)=>record.id,items:result.data?.items??[],renderItem:(record)=>jsxs("article",{children:[jsx2("strong",{children:renderField(entity,record,entity.config.list.title,renderers)}),entity.config.list.description===undefined?null:jsx2("p",{children:renderField(entity,record,entity.config.list.description,renderers)})]})}),jsx2(EntityPagination,{pending:result.refreshing,result:result.data,view})]})]})};var UrlEntityList=(props)=>jsx2(ControlledEntityList,{...props,view:useEntityViewState2(props.namespace,{contract:props.entity.contract,pageSize:props.pageSize??25})});var MemoryEntityList=(props)=>jsx2(ControlledEntityList,{...props,view:useMemoryEntityViewState2(props.pageSize===undefined?{}:{pageSize:props.pageSize})});var EntityList2=(props)=>props.viewState==="memory"?jsx2(MemoryEntityList,{...props}):jsx2(UrlEntityList,{...props,namespace:props.namespace});var initialFormValues=(entity,mode,supplied,record)=>{const values={};const properties=schemaProperties(entity,mode);const required=requiredFields(entity,mode);for(const name of entity.config.forms[mode].fields){const schema=properties[name];if(required.has(name)&&isObject2(schema)&&scalarTypes(presentationSchema(schema)).includes("boolean")){values[name]=false}if(isObject2(schema)&&schema.default!==undefined){values[name]=schema.default}if(record?.value[name]!==undefined){values[name]=record.value[name]}if(supplied?.[name]!==undefined){values[name]=supplied[name]}}return values};var controlRenderer=(entity,controls)=>function renderEntityControl(props){const fields=entity.config.fields;const key=fields[props.field.name]?.control;return key===undefined||controls?.[key]===undefined?jsxs("p",{role:"alert",children:["A custom control is required for ",props.field.label,"."]}):controls[key](props)};var mutationMessage=(mutation)=>{if(mutation.status==="conflict"){return"This entity changed. Your draft is preserved."}if(mutation.status==="uncertain"){return"The write outcome is unknown. Resubmit the same action to resolve it."}return mutation.error?.resourceError.message};var writableValues=(fields,values)=>{const writable=new Set(fields.filter((field)=>!field.readOnly).map((field)=>field.name));return Object.fromEntries(Object.entries(values).filter(([name])=>writable.has(name)))};var displayedValues=(fields,values)=>Object.fromEntries(Object.entries(values).map(([name,value])=>{if(typeof value!=="string"||fields.find((field)=>field.name===name)?.control!=="datetime-local"){return[name,value]}const date=new Date(value);if(Number.isNaN(date.getTime())){return[name,value]}return[name,new Date(date.getTime()-date.getTimezoneOffset()*60000).toISOString().slice(0,23)]}));var wireValue=(fields,name,value)=>{if(typeof value!=="string"||value===""||fields.find((field)=>field.name===name)?.control!=="datetime-local"){return value}const date=new Date(value);return Number.isNaN(date.getTime())?value:date.toISOString()};var CreateEntityForm=(props)=>{const mutation=useEntityCreate2(props.entity.contract);const[values,setValues]=useState19(()=>initialFormValues(props.entity,"create",props.initialValues));const fields=useMemo12(()=>formFields(props.entity,"create"),[props.entity]);return jsx2(Le3,{label:"Create entity",fields,values:displayedValues(fields,values),disabled:!mutation.available,pending:mutation.pending,error:mutationMessage(mutation),...props.onCancel===undefined?{}:{onCancel:props.onCancel},onChange:(name,value)=>setValues((current)=>({...current,[name]:wireValue(fields,name,value)})),onSubmit:async()=>{const value=writableValues(fields,values);const action=mutation.status==="uncertain"?mutation.resubmit():mutation.submit({value});const result=await action;if(result.ok){props.onSuccess?.(result.value)}},renderControl:controlRenderer(props.entity,props.controls),submitLabel:mutation.status==="uncertain"?"Resubmit":"Create"})};var UpdateEntityForm=(props)=>{const mutation=useEntityUpdate2(props.entity.contract,{id:props.record.id});const[draft,setDraft]=useState19(()=>({expectedRevision:props.record.revision,values:initialFormValues(props.entity,"update",props.initialValues,props.record)}));const{expectedRevision,values}=draft;const fields=useMemo12(()=>formFields(props.entity,"update"),[props.entity]);return jsx2(Le3,{label:"Update entity",fields,values:displayedValues(fields,values),disabled:!mutation.available,pending:mutation.pending,error:mutationMessage(mutation),...props.onCancel===undefined?{}:{onCancel:props.onCancel},onChange:(name,value)=>setDraft((current)=>({...current,values:{...current.values,[name]:wireValue(fields,name,value)}})),onSubmit:async()=>{const value=writableValues(fields,values);const result=await(mutation.status==="uncertain"?mutation.resubmit():mutation.submit({expectedRevision,value}));if(result.ok){props.onSuccess?.(result.value)}},renderControl:controlRenderer(props.entity,props.controls),submitLabel:mutation.status==="uncertain"?"Resubmit":"Save"})};var EntityForm2=(props)=>{const runtime=useEntityRuntime();if(runtime.state.status!=="authenticated"){return jsx2("output",{children:runtime.state.status})}return props.mode==="create"?jsx2(CreateEntityForm,{...props},runtime.formScope):jsx2(UpdateEntityForm,{...props,record:props.record},JSON.stringify([runtime.formScope,props.record.id]))};
|
|
48
|
+
`)};var fu=0;var Jt=[];function wc(t){var f=Fe2.useRef([]),m=Fe2.useRef([0,0]),v=Fe2.useRef(),g=Fe2.useState(fu++)[0],R=Fe2.useState(dn)[0],b=Fe2.useRef(t);Fe2.useEffect(function(){b.current=t},[t]),Fe2.useEffect(function(){if(t.inert){document.body.classList.add("block-interactivity-".concat(g));var D=ic([t.lockRef.current],(t.shards||[]).map(Rc),true).filter(Boolean);return D.forEach(function(F){return F.classList.add("allow-interactivity-".concat(g))}),function(){document.body.classList.remove("block-interactivity-".concat(g)),D.forEach(function(F){return F.classList.remove("allow-interactivity-".concat(g))})}}return},[t.inert,t.lockRef.current,t.shards]);var S=Fe2.useCallback(function(D,F){if("touches"in D&&D.touches.length===2||D.type==="wheel"&&D.ctrlKey)return!b.current.allowPinchZoom;var V=zn(D),k=m.current,B="deltaX"in D?D.deltaX:k[0]-V[0],z="deltaY"in D?D.deltaY:k[1]-V[1],H,K=D.target,Y=Math.abs(B)>Math.abs(z)?"h":"v";if("touches"in D&&Y==="h"&&K.type==="range")return false;var re=window.getSelection(),Z=re&&re.anchorNode,ae=Z?Z===K||Z.contains(K):false;if(ae)return false;var he=zr(Y,K);if(!he)return true;if(he)H=Y;else H=Y==="v"?"h":"v",he=zr(Y,K);if(!he)return false;if(!v.current&&"changedTouches"in D&&(B||z))v.current=H;if(!H)return true;var oe=v.current||H;return gc(oe,F,D,oe==="h"?B:z,true)},[]),P=Fe2.useCallback(function(D){var F=D;if(!Jt.length||Jt[Jt.length-1]!==R)return;var V="deltaY"in F?yc(F):zn(F),k=f.current.filter(function(H){return H.name===F.type&&(H.target===F.target||F.target===H.shadowParent)&&uu(H.delta,V)})[0];if(k&&k.should){if(F.cancelable)F.preventDefault();return}if(!k){var B=(b.current.shards||[]).map(Rc).filter(Boolean).filter(function(H){return H.contains(F.target)}),z=B.length>0?S(F,B[0]):!b.current.noIsolation;if(z){if(F.cancelable)F.preventDefault()}}},[]),A=Fe2.useCallback(function(D,F,V,k){var B={name:D,delta:F,target:V,should:k,shadowParent:du(V)};f.current.push(B),setTimeout(function(){f.current=f.current.filter(function(z){return z!==B})},1)},[]),I=Fe2.useCallback(function(D){m.current=zn(D),v.current=undefined},[]),C=Fe2.useCallback(function(D){A(D.type,yc(D),D.target,S(D,t.lockRef.current))},[]),_=Fe2.useCallback(function(D){A(D.type,zn(D),D.target,S(D,t.lockRef.current))},[]);Fe2.useEffect(function(){return Jt.push(R),t.setCallbacks({onScrollCapture:C,onWheelCapture:C,onTouchMoveCapture:_}),document.addEventListener("wheel",P,kt),document.addEventListener("touchmove",P,kt),document.addEventListener("touchstart",I,kt),function(){Jt=Jt.filter(function(D){return D!==R}),document.removeEventListener("wheel",P,kt),document.removeEventListener("touchmove",P,kt),document.removeEventListener("touchstart",I,kt)}},[]);var{removeScrollBar:M,inert:T}=t;return Fe2.createElement(Fe2.Fragment,null,T?Fe2.createElement(R,{styles:lu(g)}):null,M?Fe2.createElement(Vr,{noRelative:t.noRelative,gapMode:t.gapMode}):null)}function du(t){var f=null;while(t!==null){if(t instanceof ShadowRoot)f=t.host,t=t.host;t=t.parentNode}return f}var bc=Nr($n,wc);var xc=Hn.forwardRef(function(t,f){return Hn.createElement(fn,qe2({},t,{ref:f,sideCar:bc}))});xc.classNames=fn.classNames;var Q=xc;var mu=Object.defineProperty;var de=(t,f)=>mu(t,"name",{value:f,configurable:true});var Hr=["Enter"," "];var pu=["ArrowDown","PageUp","Home"];var Cc=["ArrowUp","PageDown","End"];var hu=[...pu,...Cc];var vu={ltr:[...Hr,"ArrowRight"],rtl:[...Hr,"ArrowLeft"]};var gu={ltr:["ArrowLeft"],rtl:["ArrowRight"]};var Gn="Menu";var[mn,yu,Ru]=y(Gn);var[jt,ee]=s(Gn,[Ru,O,w]);var Kn=O();var Ec=w();var[Pc,Ct]=jt(Gn);var[wu,hn]=jt(Gn);var bu=de((t)=>{let{__scopeMenu:f,open:m=false,children:v,dir:g,onOpenChange:R,modal:b=true}=t,S=Kn(f),[P,A]=X.useState(null),I=X.useRef(false),C=u2(R),_=h(g);return X.useEffect(()=>{let M=de(()=>{I.current=true,document.addEventListener("pointerdown",T,{capture:true,once:true}),document.addEventListener("pointermove",T,{capture:true,once:true})},"handleKeyDown"),T=de(()=>I.current=false,"handlePointer");return document.addEventListener("keydown",M,{capture:true}),()=>{document.removeEventListener("keydown",M,{capture:true}),document.removeEventListener("pointerdown",T,{capture:true}),document.removeEventListener("pointermove",T,{capture:true})}},[]),X.useEffect(()=>{if(!m)return;let M=de(()=>C(false),"handleBlur");return window.addEventListener("blur",M),()=>window.removeEventListener("blur",M)},[m,C]),ce(se2,{...S,children:ce(Pc,{scope:f,open:m,onOpenChange:C,content:P,onContentChange:A,children:ce(wu,{scope:f,onClose:X.useCallback(()=>C(false),[C]),isUsingKeyboardRef:I,dir:_,modal:b,children:v})})})},"Menu");var Oc=X.forwardRef(de(function(f,m){let{__scopeMenu:v,...g}=f,R=Kn(v);return ce(ie,{...R,...g,ref:m})},"MenuAnchor"));var _c="MenuPortal";var[xu,Ac]=jt(_c,{forceMount:undefined});var Su=de((t)=>{let{__scopeMenu:f,forceMount:m,children:v,container:g}=t,R=Ct(_c,f);return ce(xu,{scope:f,forceMount:m,children:ce(d,{present:m||R.open,children:ce(U2,{asChild:true,container:g,children:v})})})},"MenuPortal");var ut="MenuContent";var[Cu,Gr]=jt(ut);var Eu=X.forwardRef(de(function(f,m){let v=Ac(ut,f.__scopeMenu),{forceMount:g=v.forceMount,...R}=f,b=Ct(ut,f.__scopeMenu),S=hn(ut,f.__scopeMenu);return ce(mn.Provider,{scope:f.__scopeMenu,children:ce(d,{present:g||b.open,children:ce(mn.Slot,{scope:f.__scopeMenu,children:S.modal?ce(Pu,{...R,ref:m}):ce(Ou,{...R,ref:m})})})})},"MenuContent"));var Pu=X.forwardRef(de(function(f,m){let v=Ct(ut,f.__scopeMenu),g=X.useRef(null),R=r(m,g);return X.useEffect(()=>{let b=g.current;if(b)return le(b)},[]),ce(Kr,{...f,ref:R,trapFocus:v.open,disableOutsidePointerEvents:v.open,disableOutsideScroll:true,onFocusOutside:o(f.onFocusOutside,(b)=>b.preventDefault(),{checkForDefaultPrevented:false}),onDismiss:()=>v.onOpenChange(false)})},"MenuRootContentModal"));var Ou=X.forwardRef(de(function(f,m){let v=Ct(ut,f.__scopeMenu);return ce(Kr,{...f,ref:m,trapFocus:false,disableOutsidePointerEvents:false,disableOutsideScroll:false,onDismiss:()=>v.onOpenChange(false)})},"MenuRootContentNonModal"));var _u=x("MenuContent.ScrollLock");var Kr=X.forwardRef(de(function(f,m){let{__scopeMenu:v,loop:g=false,trapFocus:R,onOpenAutoFocus:b,onCloseAutoFocus:S,disableOutsidePointerEvents:P,onEntryFocus:A,onEscapeKeyDown:I,onPointerDownOutside:C,onFocusOutside:_,onInteractOutside:M,onDismiss:T,disableOutsideScroll:D,...F}=f,V=Ct(ut,v),k=hn(ut,v),B=Kn(v),z=Ec(v),H=yu(v),[K,Y]=X.useState(null),re=X.useRef(null),Z=r(m,re,V.onContentChange),ae=X.useRef(0),he=X.useRef(""),oe=X.useRef(0),ue=X.useRef(null),pe=X.useRef("right"),je=X.useRef(0),ge=D?Q:X.Fragment,fe=D?{as:_u,allowPinchZoom:true}:undefined,me=de((te)=>{let ht=he.current+te,lt=H().filter((Ke)=>!Ke.disabled),xt=document.activeElement,tn=lt.find((Ke)=>Ke.ref.current===xt)?.textValue,nn=lt.map((Ke)=>Ke.textValue),vn=jc(nn,ht,tn),Et=lt.find((Ke)=>Ke.textValue===vn)?.ref.current;if(de(function Ke(Bt){if(he.current=Bt,window.clearTimeout(ae.current),Bt!=="")ae.current=window.setTimeout(()=>Ke(""),1000)},"updateSearch")(ht),Et)setTimeout(()=>Et.focus())},"handleTypeaheadSearch");X.useEffect(()=>()=>window.clearTimeout(ae.current),[]),G3();let _e=X.useCallback((te)=>pe.current===ue.current?.side&&Wc(te,ue.current?.area),[]);return ce(Cu,{scope:v,searchRef:he,onItemEnter:X.useCallback((te)=>{if(_e(te))te.preventDefault()},[_e]),onItemLeave:X.useCallback((te)=>{if(_e(te))return;re.current?.focus(),Y(null)},[_e]),onTriggerLeave:X.useCallback((te)=>{if(_e(te))te.preventDefault()},[_e]),pointerGraceTimerRef:oe,onPointerGraceIntentChange:X.useCallback((te)=>{ue.current=te},[]),children:ce(ge,{...fe,children:ce(ne2,{asChild:true,trapped:R,onMountAutoFocus:o(b,(te)=>{te.preventDefault(),re.current?.focus({preventScroll:true})}),onUnmountAutoFocus:S,children:ce(N2,{asChild:true,disableOutsidePointerEvents:P,onEscapeKeyDown:I,onPointerDownOutside:C,onFocusOutside:_,onInteractOutside:M,onDismiss:T,children:ce(q,{asChild:true,...z,dir:k.dir,orientation:"vertical",loop:g,currentTabStopId:K,onCurrentTabStopIdChange:Y,onEntryFocus:o(A,(te)=>{if(!k.isUsingKeyboardRef.current)te.preventDefault()}),preventScrollOnEntryFocus:true,children:ce(ye2,{role:"menu","aria-orientation":"vertical","data-state":Xr(V.open),"data-radix-menu-content":"",dir:k.dir,...B,...F,ref:Z,style:{outline:"none",...F.style},onKeyDown:o(F.onKeyDown,(te)=>{let lt=te.target.closest("[data-radix-menu-content]")===te.currentTarget,xt=te.ctrlKey||te.altKey||te.metaKey,tn=te.key.length===1;if(lt){if(te.key==="Tab")te.preventDefault();if(!xt&&tn)me(te.key)}let nn=re.current;if(te.target!==nn)return;if(!hu.includes(te.key))return;te.preventDefault();let Et=H().filter((Ke)=>!Ke.disabled).map((Ke)=>Ke.ref.current);if(Cc.includes(te.key))Et.reverse();Fc(Et)}),onBlur:o(f.onBlur,(te)=>{if(!te.currentTarget.contains(te.target))window.clearTimeout(ae.current),he.current=""}),onPointerMove:o(f.onPointerMove,en((te)=>{let ht=te.target,lt=je.current!==te.clientX;if(te.currentTarget.contains(ht)&<){let xt=te.clientX>je.current?"right":"left";pe.current=xt,je.current=te.clientX}}))})})})})})})},"MenuContentImpl"));var Mc=X.forwardRef(de(function(f,m){let{__scopeMenu:v,...g}=f;return ce(a2.div,{role:"group",...g,ref:m})},"MenuGroup"));var Au=X.forwardRef(de(function(f,m){let{__scopeMenu:v,...g}=f;return ce(a2.div,{...g,ref:m})},"MenuLabel"));var Ur="MenuItem";var Sc="menu.itemSelect";var Yr=X.forwardRef(de(function(f,m){let{disabled:v=false,onSelect:g,...R}=f,b=X.useRef(null),S=hn(Ur,f.__scopeMenu),P=Gr(Ur,f.__scopeMenu),A=r(m,b),I=X.useRef(false),C=de(()=>{let _=b.current;if(!v&&_){let M=new CustomEvent(Sc,{bubbles:true,cancelable:true});if(_.addEventListener(Sc,(T)=>g?.(T),{once:true}),be(_,M),M.defaultPrevented)I.current=false;else S.onClose()}},"handleSelect");return ce(Ic,{...R,ref:A,disabled:v,onClick:o(f.onClick,C),onPointerDown:(_)=>{f.onPointerDown?.(_),I.current=true},onPointerUp:o(f.onPointerUp,(_)=>{if(!I.current)_.currentTarget?.click()}),onKeyDown:o(f.onKeyDown,(_)=>{if(v||_.target!==_.currentTarget)return;if(P.searchRef.current!==""&&_.key===" ")return;if(Hr.includes(_.key))_.currentTarget.click(),_.preventDefault()})})},"MenuItem"));var Ic=X.forwardRef(de(function(f,m){let{__scopeMenu:v,disabled:g=false,textValue:R,...b}=f,S=Gr(Ur,v),P=Ec(v),A=X.useRef(null),I=r(m,A),[C,_]=X.useState(false),[M,T]=X.useState("");return X.useEffect(()=>{let D=A.current;if(D)T((D.textContent??"").trim())},[b.children]),ce(mn.ItemSlot,{scope:v,disabled:g,textValue:R??M,children:ce(j,{asChild:true,...P,focusable:!g,children:ce(a2.div,{role:"menuitem","data-highlighted":C?"":undefined,"aria-disabled":g||undefined,"data-disabled":g?"":undefined,...b,ref:I,onPointerMove:o(f.onPointerMove,en((D)=>{if(g)S.onItemLeave(D);else if(S.onItemEnter(D),!D.defaultPrevented)D.currentTarget.focus({preventScroll:true})})),onPointerLeave:o(f.onPointerLeave,en((D)=>S.onItemLeave(D))),onFocus:o(f.onFocus,()=>_(true)),onBlur:o(f.onBlur,()=>_(false))})})})},"MenuItemImpl"));var Mu=X.forwardRef(de(function(f,m){let{checked:v=false,onCheckedChange:g,...R}=f;return ce(Dc,{scope:f.__scopeMenu,checked:v,children:ce(Yr,{role:"menuitemcheckbox","aria-checked":pn(v)?"mixed":v,...R,ref:m,"data-state":Yn(v),onSelect:o(R.onSelect,()=>g?.(pn(v)?true:!v),{checkForDefaultPrevented:false})})})},"MenuCheckboxItem"));var Iu="MenuRadioGroup";var[Tu,Du]=jt(Iu,{value:undefined,onValueChange:de(()=>{},"onValueChange")});var Lu=X.forwardRef(de(function(f,m){let{value:v,onValueChange:g,...R}=f,b=u2(g);return ce(Tu,{scope:f.__scopeMenu,value:v,onValueChange:b,children:ce(Mc,{...R,ref:m})})},"MenuRadioGroup"));var Nu="MenuRadioItem";var Fu=X.forwardRef(de(function(f,m){let{value:v,...g}=f,R=Du(Nu,f.__scopeMenu),b=v===R.value;return ce(Dc,{scope:f.__scopeMenu,checked:b,children:ce(Yr,{role:"menuitemradio","aria-checked":b,...g,ref:m,"data-state":Yn(b),onSelect:o(g.onSelect,()=>R.onValueChange?.(v),{checkForDefaultPrevented:false})})})},"MenuRadioItem"));var Tc="MenuItemIndicator";var[Dc,ku]=jt(Tc,{checked:false});var ju=X.forwardRef(de(function(f,m){let{__scopeMenu:v,forceMount:g,...R}=f,b=ku(Tc,v);return ce(d,{present:g||pn(b.checked)||b.checked===true,children:ce(a2.span,{...R,ref:m,"data-state":Yn(b.checked)})})},"MenuItemIndicator"));var Bu=X.forwardRef(de(function(f,m){let{__scopeMenu:v,...g}=f;return ce(a2.div,{role:"separator","aria-orientation":"horizontal",...g,ref:m})},"MenuSeparator"));var Lc="MenuSub";var[Wu,Nc]=jt(Lc);var Vu=de((t)=>{let{__scopeMenu:f,children:m,open:v=false,onOpenChange:g}=t,R=Ct(Lc,f),b=Kn(f),[S,P]=X.useState(null),[A,I]=X.useState(null),C=u2(g);return X.useEffect(()=>{if(R.open===false)C(false);return()=>C(false)},[R.open,C]),ce(se2,{...b,children:ce(Pc,{scope:f,open:v,onOpenChange:C,content:A,onContentChange:I,children:ce(Wu,{scope:f,contentId:c(),triggerId:c(),trigger:S,onTriggerChange:P,children:m})})})},"MenuSub");var Un="MenuSubTrigger";var $u=X.forwardRef(de(function(f,m){let v=Ct(Un,f.__scopeMenu),g=hn(Un,f.__scopeMenu),R=Nc(Un,f.__scopeMenu),b=Gr(Un,f.__scopeMenu),S=X.useRef(null),{pointerGraceTimerRef:P,onPointerGraceIntentChange:A}=b,I={__scopeMenu:f.__scopeMenu},C=X.useCallback(()=>{if(S.current)window.clearTimeout(S.current);S.current=null},[]);X.useEffect(()=>C,[C]),X.useEffect(()=>{let M=P.current;return()=>{window.clearTimeout(M),A(null)}},[P,A]);let _=r(m,R.onTriggerChange);return ce(Oc,{asChild:true,...I,children:ce(Ic,{id:R.triggerId,"aria-haspopup":"menu","aria-expanded":v.open,"aria-controls":v.open?R.contentId:undefined,"data-state":Xr(v.open),...f,ref:_,onClick:(M)=>{if(f.onClick?.(M),f.disabled||M.defaultPrevented)return;if(M.currentTarget.focus(),!v.open)v.onOpenChange(true)},onPointerMove:o(f.onPointerMove,en((M)=>{if(b.onItemEnter(M),M.defaultPrevented)return;if(!f.disabled&&!v.open&&!S.current)b.onPointerGraceIntentChange(null),S.current=window.setTimeout(()=>{v.onOpenChange(true),C()},100)})),onPointerLeave:o(f.onPointerLeave,en((M)=>{C();let T=v.content?.getBoundingClientRect();if(T){let D=v.content?.dataset.side,F=D==="right",V=F?-5:5,k=T[F?"left":"right"],B=T[F?"right":"left"];b.onPointerGraceIntentChange({area:[{x:M.clientX+V,y:M.clientY},{x:k,y:T.top},{x:B,y:T.top},{x:B,y:T.bottom},{x:k,y:T.bottom}],side:D}),window.clearTimeout(P.current),P.current=window.setTimeout(()=>b.onPointerGraceIntentChange(null),300)}else{if(b.onTriggerLeave(M),M.defaultPrevented)return;b.onPointerGraceIntentChange(null)}})),onKeyDown:o(f.onKeyDown,(M)=>{if(f.disabled||M.target!==M.currentTarget)return;if(b.searchRef.current!==""&&M.key===" ")return;if(vu[g.dir].includes(M.key))v.onOpenChange(true),v.content?.focus(),M.preventDefault()})})})},"MenuSubTrigger"));var zu="MenuSubContent";var Hu=X.forwardRef(de(function(f,m){let v=Ac(ut,f.__scopeMenu),{forceMount:g=v.forceMount,align:R="start",...b}=f,S=Ct(ut,f.__scopeMenu),P=hn(ut,f.__scopeMenu),A=Nc(zu,f.__scopeMenu),I=X.useRef(null),C=r(m,I);return ce(mn.Provider,{scope:f.__scopeMenu,children:ce(d,{present:g||S.open,children:ce(mn.Slot,{scope:f.__scopeMenu,children:ce(Kr,{id:A.contentId,"aria-labelledby":A.triggerId,...b,ref:C,align:R,side:P.dir==="rtl"?"left":"right",disableOutsidePointerEvents:false,disableOutsideScroll:false,trapFocus:false,onOpenAutoFocus:(_)=>{if(P.isUsingKeyboardRef.current)I.current?.focus();_.preventDefault()},onCloseAutoFocus:(_)=>_.preventDefault(),onFocusOutside:o(f.onFocusOutside,(_)=>{if(_.target!==A.trigger)S.onOpenChange(false)}),onEscapeKeyDown:o(f.onEscapeKeyDown,(_)=>{P.onClose(),_.preventDefault()}),onKeyDown:o(f.onKeyDown,(_)=>{let M=_.currentTarget.contains(_.target),T=gu[P.dir].includes(_.key);if(M&&T)S.onOpenChange(false),A.trigger?.focus(),_.preventDefault()})})})})})},"MenuSubContent"));function Xr(t){return t?"open":"closed"}de(Xr,"getOpenState");function pn(t){return t==="indeterminate"}de(pn,"isIndeterminate");function Yn(t){return pn(t)?"indeterminate":t?"checked":"unchecked"}de(Yn,"getCheckedState");function Fc(t){let f=document.activeElement;for(let m of t){if(m===f)return;if(m.focus(),document.activeElement!==f)return}}de(Fc,"focusFirst");function kc(t,f){return t.map((m,v)=>t[(f+v)%t.length])}de(kc,"wrapArray");function jc(t,f,m){let g=f.length>1&&Array.from(f).every((A)=>A===f[0])?f[0]:f,R=m?t.indexOf(m):-1,b=kc(t,Math.max(R,0));if(g.length===1)b=b.filter((A)=>A!==m);let P=b.find((A)=>A.toLowerCase().startsWith(g.toLowerCase()));return P!==m?P:undefined}de(jc,"getNextMatch");function Bc(t,f){let{x:m,y:v}=t,g=false;for(let R=0,b=f.length-1;R<f.length;b=R++){let S=f[R],P=f[b],{x:A,y:I}=S,{x:C,y:_}=P;if(I>v!==_>v&&m<(C-A)*(v-I)/(_-I)+A)g=!g}return g}de(Bc,"isPointInPolygon");function Wc(t,f){if(!f)return false;let m={x:t.clientX,y:t.clientY};return Bc(m,f)}de(Wc,"isPointerInGraceArea");function en(t){return(f)=>f.pointerType==="mouse"?t(f):undefined}de(en,"whenMouse");var Ce2=bu;var we2=Oc;var Se2=Su;var Re2=Eu;var Pe2=Mc;var Ie2=Au;var Le2=Yr;var ke2=Mu;var Me2=Lu;var De2=Fu;var Te2=ju;var Ne2=Bu;var Ae2=Vu;var Ee2=$u;var Oe2=Hu;var c2=[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"19",cy:"12",r:"1",key:"1wjl8i"}],["circle",{cx:"5",cy:"12",r:"1",key:"1pcz8c"}]];var st3=t("ellipsis",c2);var e2=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]];var it3=t("chevron-left",e2);import*as d2 from"react";import{Fragment as ae2,jsx as C,jsxs as re}from"react/jsx-runtime";import{jsx as l2,jsxs as G4}from"react/jsx-runtime";import{jsx as b,jsxs as O2}from"react/jsx-runtime";import{jsx as R2}from"react/jsx-runtime";var Z=Object.defineProperty;var te=(n)=>n;function ne3(n,t){this[n]=te.bind(null,t)}var pt2=(n,t)=>{for(var r in t)Z(n,r,{get:t[r],enumerable:true,configurable:true,set:ne3.bind(t,r)})};var oe=Object.defineProperty;var x2=(n,t)=>oe(n,"name",{value:t,configurable:true});var T2="ContextMenu";var[ie2,tt2]=s(T2,[ee]);var v=ee();var[se3,E3]=ie2(T2);var ce2=x2((n)=>{let{__scopeContextMenu:t,children:r,onOpenChange:u,open:c,dir:p,modal:M=true}=n,P=d2.useRef(false);if(J){let w=d2.useRef(false);d2.useEffect(()=>{if(c===true&&!P.current&&!w.current)w.current=true,console.warn("ContextMenu: The `open` prop has been set to `true` before the user has interacted with the trigger, so its position is indeterminate. This is likely unintended and will result in the menu being anchored to the top-left corner of the viewport.")},[c])}let[g,y]=i({prop:c,defaultProp:false,onChange:u,caller:T2}),N=v(t);return C(se3,{scope:t,open:g,onOpenChange:y,modal:M,hasInteractedRef:P,children:C(Ce2,{...N,dir:p,open:g,onOpenChange:y,modal:M,children:r})})},"ContextMenu");var ue="ContextMenuTrigger";var me=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,disabled:c=false,...p}=t,M=E3(ue,u),P=v(u),[g,y]=d2.useState({x:0,y:0}),N=d2.useMemo(()=>({current:{getBoundingClientRect:x2(()=>DOMRect.fromRect({width:0,height:0,...g}),"getBoundingClientRect")}}),[g]),w=d2.useRef(0),h=d2.useCallback(()=>window.clearTimeout(w.current),[]),L=x2((I)=>{M.hasInteractedRef.current=true,y({x:I.clientX,y:I.clientY}),M.onOpenChange(true)},"handleOpen");return d2.useEffect(()=>h,[h]),d2.useEffect(()=>void(c&&h()),[c,h]),re(ae2,{children:[C(we2,{...P,virtualRef:N}),C(a2.span,{"data-state":M.open?"open":"closed","data-disabled":c?"":undefined,...p,ref:r,style:{WebkitTouchCallout:"none",...t.style},onContextMenu:c?t.onContextMenu:o(t.onContextMenu,(I)=>{h(),L(I),I.preventDefault()}),onPointerDown:c?t.onPointerDown:o(t.onPointerDown,_((I)=>{if(h(),M.open)M.onOpenChange(false);w.current=window.setTimeout(()=>L(I),700)})),onPointerMove:c?t.onPointerMove:o(t.onPointerMove,_(h)),onPointerCancel:c?t.onPointerCancel:o(t.onPointerCancel,_(h)),onPointerUp:c?t.onPointerUp:o(t.onPointerUp,_(h))})]})},"ContextMenuTrigger"));var de2=x2((n)=>{let{__scopeContextMenu:t,...r}=n,u=v(t);return C(Se2,{...u,...r})},"ContextMenuPortal");var pe="ContextMenuContent";var le2=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=E3(pe,u),M=v(u),P=d2.useRef(false);return C(Re2,{...M,...c,ref:r,side:"right",sideOffset:2,align:"start",onCloseAutoFocus:(g)=>{if(t.onCloseAutoFocus?.(g),!g.defaultPrevented&&P.current)g.preventDefault();P.current=false},onInteractOutside:(g)=>{if(t.onInteractOutside?.(g),!g.defaultPrevented&&!p.modal)P.current=true},style:{...t.style,...{"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}}})},"ContextMenuContent"));var xe3=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Pe2,{...p,...c,ref:r})},"ContextMenuGroup"));var fe2=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Ie2,{...p,...c,ref:r})},"ContextMenuLabel"));var ve3=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Le2,{...p,...c,ref:r})},"ContextMenuItem"));var ge2=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(ke2,{...p,...c,ref:r})},"ContextMenuCheckboxItem"));var be2=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Me2,{...p,...c,ref:r})},"ContextMenuRadioGroup"));var he2=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(De2,{...p,...c,ref:r})},"ContextMenuRadioItem"));var _e3=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Te2,{...p,...c,ref:r})},"ContextMenuItemIndicator"));var ye3=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Ne2,{...p,...c,ref:r})},"ContextMenuSeparator"));var ze3="ContextMenuSub";var Ge3=x2((n)=>{let{__scopeContextMenu:t,children:r,onOpenChange:u,open:c,defaultOpen:p}=n,M=v(t),[P,g]=i({prop:c,defaultProp:p??false,onChange:u,caller:ze3});return C(Ae2,{...M,open:P,onOpenChange:g,children:r})},"ContextMenuSub");var Be3=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Ee2,{...p,...c,ref:r})},"ContextMenuSubTrigger"));var Fe3=d2.forwardRef(x2(function(t,r){let{__scopeContextMenu:u,...c}=t,p=v(u);return C(Oe2,{...p,...c,ref:r,style:{...t.style,...{"--radix-context-menu-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-context-menu-content-available-width":"var(--radix-popper-available-width)","--radix-context-menu-content-available-height":"var(--radix-popper-available-height)","--radix-context-menu-trigger-width":"var(--radix-popper-anchor-width)","--radix-context-menu-trigger-height":"var(--radix-popper-anchor-height)"}}})},"ContextMenuSubContent"));function _(n){return(t)=>t.pointerType!=="mouse"?n(t):undefined}x2(_,"whenTouchOrPen");var A=ce2;var D=me;var k=de2;var B=le2;var jt2=({...n})=>l2(A,{"data-slot":"context-menu",...n});var $t2=({...n})=>l2(D,{"data-slot":"context-menu-trigger",...n});var Yt2=({className:n,...t})=>l2(k,{children:l2(B,{"data-slot":"context-menu-content",className:e("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 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 z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] origin-(--radix-context-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",n),...t})});var Kt2=({className:n,...t})=>b("nav",{role:"navigation","aria-label":"pagination","data-slot":"pagination",className:e("mx-auto flex w-full justify-center",n),...t});var Xt2=({className:n,children:t,...r})=>b("ul",{"data-slot":"pagination-content",className:e("flex flex-row items-center gap-1",n),...r,children:t});var Ue3=({...n})=>b("li",{"data-slot":"pagination-item",...n});var Zt2=({className:n,...t})=>O2("span",{"aria-hidden":true,"data-slot":"pagination-ellipsis",className:e("flex size-9 items-center justify-center",n),...t,children:[b(st3,{className:"size-4"}),b("span",{className:"sr-only",children:"More pages"})]});var Jt2=({className:n,...t})=>R2("div",{"data-slot":"table-container",className:"relative w-full max-w-full overflow-x-auto",children:R2("table",{"data-slot":"table",className:e("min-w-full w-max caption-bottom text-sm",n),...t})});var Qt2=({className:n,...t})=>R2("thead",{"data-slot":"table-header",className:e("[&_tr]:border-b",n),...t});var eo3=({className:n,...t})=>R2("tbody",{"data-slot":"table-body",className:e("[&_tr:last-child]:border-0",n),...t});var qe3=({className:n,...t})=>R2("tr",{"data-slot":"table-row",className:e("hover:bg-muted/50 data-[state=selected]:bg-muted border-b transition-colors",n),...t});var wt2=({className:n,...t})=>R2("th",{"data-slot":"table-head",className:e("text-foreground h-10 px-2 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",n),...t});var je3=({className:n,...t})=>R2("td",{"data-slot":"table-cell",className:e("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]",n),...t});var to3=({className:n,...t})=>R2("caption",{"data-slot":"table-caption",className:e("text-muted-foreground mt-4 text-sm",n),...t});var o2=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]];var v2=t("chevron-down",o2);var e3=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]];var C2=t("x",e3);import*as P2 from"react";import{Fragment as go3,jsx as R3}from"react/jsx-runtime";import{jsx as O3,jsxs as j2}from"react/jsx-runtime";import{jsx as ho3}from"react/jsx-runtime";import*as J2 from"react";import{jsx as Io2}from"react/jsx-runtime";import{jsx as No2}from"react/jsx-runtime";var so3=Object.defineProperty;var h2=(f,t)=>so3(f,"name",{value:t,configurable:true});var k2="Dialog";var[K2,ao3]=s(k2);var[fo3,I]=K2(k2);var _2=h2((f)=>{let{__scopeDialog:t,children:m,open:u,defaultOpen:v,onOpenChange:p,modal:n=true}=f,y=P2.useRef(null),w=P2.useRef(null),[W,A]=i({prop:u,defaultProp:v??false,onChange:p,caller:k2}),[to,eo]=P2.useState(0),[io,no]=P2.useState(0);return R3(fo3,{scope:t,triggerRef:y,contentRef:w,contentId:c(),titleId:c(),descriptionId:c(),titlePresent:to>0,descriptionPresent:io>0,setTitleCount:eo,setDescriptionCount:no,open:W,onOpenChange:A,onOpenToggle:P2.useCallback(()=>A((lo)=>!lo),[A]),modal:n,children:m})},"Dialog");var po3="DialogTrigger";var ge3=P2.forwardRef(h2(function(t,m){let{__scopeDialog:u,...v}=t,p=I(po3,u),n=r(m,p.triggerRef);return R3(a2.button,{type:"button","aria-haspopup":"dialog","aria-expanded":p.open,"aria-controls":p.open?p.contentId:undefined,"data-state":S2(p.open),...v,ref:n,onClick:o(t.onClick,p.onOpenToggle)})},"DialogTrigger"));var X2="DialogPortal";var[uo3,Y]=K2(X2,{forceMount:undefined});var F=h2((f)=>{let{__scopeDialog:t,forceMount:m,children:u,container:v}=f,p=I(X2,t);return R3(uo3,{scope:t,forceMount:m,children:P2.Children.map(u,(n)=>R3(d,{present:m||p.open,children:R3(U2,{asChild:true,container:v,children:n})}))})},"DialogPortal");var L2="DialogOverlay";var B2=P2.forwardRef(h2(function(t,m){let u=Y(L2,t.__scopeDialog),{forceMount:v=u.forceMount,...p}=t,n=I(L2,t.__scopeDialog);return n.modal?R3(d,{present:v||n.open,children:R3(Do2,{...p,ref:m})}):null},"DialogOverlay"));var mo3=x("DialogOverlay.RemoveScroll");var Do2=P2.forwardRef(h2(function(t,m){let{__scopeDialog:u,...v}=t,p=I(L2,u),n=co2(),y=r(m,n);return R3(Q,{as:mo3,allowPinchZoom:true,shards:[p.contentRef],children:R3(a2.div,{"data-state":S2(p.open),...v,ref:y,style:{pointerEvents:"auto",...v.style}})})},"DialogOverlayImpl"));var E4="DialogContent";var z=P2.forwardRef(h2(function(t,m){let u=Y(E4,t.__scopeDialog),{forceMount:v=u.forceMount,...p}=t,n=I(E4,t.__scopeDialog);return R3(d,{present:v||n.open,children:n.modal?R3(vo3,{...p,ref:m}):R3(Po2,{...p,ref:m})})},"DialogContent"));var vo3=P2.forwardRef(h2(function(t,m){let u=I(E4,t.__scopeDialog),v=P2.useRef(null),p=r(m,u.contentRef,v);return P2.useEffect(()=>{let n=v.current;if(n)return le(n)},[]),R3(q2,{...t,ref:p,trapFocus:u.open,disableOutsidePointerEvents:u.open,onCloseAutoFocus:o(t.onCloseAutoFocus,(n)=>{n.preventDefault(),u.triggerRef.current?.focus()}),onPointerDownOutside:o(t.onPointerDownOutside,(n)=>{let y=n.detail.originalEvent,w=y.button===0&&y.ctrlKey===true;if(y.button===2||w)n.preventDefault()}),onFocusOutside:o(t.onFocusOutside,(n)=>n.preventDefault())})},"DialogContentModal"));var Po2=P2.forwardRef(h2(function(t,m){let u=I(E4,t.__scopeDialog),v=P2.useRef(false),p=P2.useRef(false);return R3(q2,{...t,ref:m,trapFocus:false,disableOutsidePointerEvents:false,onCloseAutoFocus:(n)=>{if(t.onCloseAutoFocus?.(n),!n.defaultPrevented){if(!v.current)u.triggerRef.current?.focus();n.preventDefault()}v.current=false,p.current=false},onInteractOutside:(n)=>{if(t.onInteractOutside?.(n),!n.defaultPrevented){if(v.current=true,n.detail.originalEvent.type==="pointerdown")p.current=true}let y=n.target;if(u.triggerRef.current?.contains(y))n.preventDefault();if(n.detail.originalEvent.type==="focusin"&&p.current)n.preventDefault()}})},"DialogContentNonModal"));var q2=P2.forwardRef(h2(function(t,m){let{__scopeDialog:u,trapFocus:v,onOpenAutoFocus:p,onCloseAutoFocus:n,...y}=t,w=I(E4,u);return G3(),R3(go3,{children:R3(ne2,{asChild:true,loop:true,trapped:v,onMountAutoFocus:p,onUnmountAutoFocus:n,children:R3(N2,{role:"dialog",id:w.contentId,"aria-describedby":w.descriptionPresent?w.descriptionId:undefined,"aria-labelledby":w.titlePresent?w.titleId:undefined,"data-state":S2(w.open),...y,ref:m,deferPointerDownOutside:true,onDismiss:()=>w.onOpenChange(false)})})})},"DialogContentImpl"));var Ro3="DialogTitle";var he3=P2.forwardRef(h2(function(t,m){let{__scopeDialog:u,...v}=t,p=I(Ro3,u),{setTitleCount:n}=p;return l(()=>(n((y)=>y+1),()=>n((y)=>y-1)),[n]),R3(a2.h2,{id:p.titleId,...v,ref:m})},"DialogTitle"));var Co2="DialogDescription";var ve4=P2.forwardRef(h2(function(t,m){let{__scopeDialog:u,...v}=t,p=I(Co2,u),{setDescriptionCount:n}=p;return l(()=>(n((y)=>y+1),()=>n((y)=>y-1)),[n]),R3(a2.p,{id:p.descriptionId,...v,ref:m})},"DialogDescription"));var bo3="DialogClose";var H2=P2.forwardRef(h2(function(t,m){let{__scopeDialog:u,...v}=t,p=I(bo3,u);return R3(a2.button,{type:"button",...v,ref:m,onClick:o(t.onClick,()=>p.onOpenChange(false))})},"DialogClose"));function S2(f){return f?"open":"closed"}h2(S2,"getState");var M2=({...f})=>O3(_2,{"data-slot":"dialog",...f});var Yo2=({...f})=>O3(F,{"data-slot":"dialog-portal",...f});var Ko2=({className:f,...t})=>O3(B2,{"data-slot":"dialog-overlay",className:e("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50",f),...t});var _o2={lg:"sm:max-w-2xl",md:"sm:max-w-lg",xl:"sm:max-w-4xl"};var yo3={content:"",viewport:"max-h-[calc(100vh-2rem)]"};var D2=({className:f,children:t,fixedBottom:m=false,height:u="viewport",size:v="md",showCloseButton:p=true,...n})=>j2(Yo2,{"data-slot":"dialog-portal",children:[O3(Ko2,{}),j2(z,{"data-slot":"dialog-content",className:e("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 flex flex-col w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg outline-hidden duration-200",_o2[v],yo3[u],m&&"[&_[data-slot=dialog-footer]]:sticky [&_[data-slot=dialog-footer]]:bottom-0 [&_[data-slot=dialog-footer]]:z-10 [&_[data-slot=dialog-footer]]:-mx-6 [&_[data-slot=dialog-footer]]:border-t [&_[data-slot=dialog-footer]]:bg-background [&_[data-slot=dialog-footer]]:px-6 [&_[data-slot=dialog-footer]]:py-4 [&_[data-slot=form-actions]]:sticky [&_[data-slot=form-actions]]:bottom-0 [&_[data-slot=form-actions]]:z-10 [&_[data-slot=form-actions]]:-mx-6 [&_[data-slot=form-actions]]:border-t [&_[data-slot=form-actions]]:bg-background [&_[data-slot=form-actions]]:px-6 [&_[data-slot=form-actions]]:py-4",f),...n,children:[t,p?j2(H2,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",children:[O3(C2,{}),O3("span",{className:"sr-only",children:"Close"})]}):null]})]});var T3=({className:f,...t})=>O3(he3,{"data-slot":"dialog-title",className:e("text-lg leading-none font-semibold",f),...t});var Z2=({className:f,...t})=>O3(ve4,{"data-slot":"dialog-description",className:e("text-muted-foreground text-sm",f),...t});var g2=({className:f,type:t,...m})=>ho3("input",{type:t,"data-slot":"input",className:e("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",f),...m});var Oo2=Object.defineProperty;var wo3=(f,t)=>Oo2(f,"name",{value:t,configurable:true});var To2=J2.forwardRef(wo3(function(t,m){return Io2(a2.label,{...t,ref:m,onMouseDown:(u)=>{if(u.target.closest("button, input, select, textarea"))return;if(t.onMouseDown?.(u),!u.defaultPrevented&&u.detail>1)u.preventDefault()}})},"Label"));var oo3=To2;var b2=({className:f,...t})=>No2(oo3,{"data-slot":"label",className:e("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50",f),...t});import{Fragment as _3,useId as j3}from"react";import{jsx as t2,jsxs as P3}from"react/jsx-runtime";import{useId as te2}from"react";import{jsx as f2,jsxs as N3}from"react/jsx-runtime";import{jsx as B3,jsxs as X3,Fragment as le3}from"react/jsx-runtime";"use client";var L3={};pt2(L3,{ResourceActionPrimitive:()=>G5,ResourceDialogPrimitive:()=>J3,ResourceFilterPrimitive:()=>W2,ResourceFiltersBar:()=>Y2,ResourceFormPrimitive:()=>Q2,ResourceListPrimitive:()=>z2,ResourcePaginationPrimitive:()=>K3,ResourceTablePrimitive:()=>q3});var k3=(...e)=>e.filter(Boolean).join(" ");var oe2={border:"1px solid currentColor",borderRadius:"0.5rem",padding:"0.75rem"};var q3=({caption:e,className:i,columns:r,empty:l="No resources found",getRowKey:s,onRowClick:o,renderActions:u,actionsLabel:d="Actions",stickyActions:a=true,isPending:c=false,isRowSelected:C,isRowExpanded:S,onExpandedChange:x,renderDetails:h,renderContextMenu:p,renderCell:w,rows:A,style:ee})=>{let I=u!==undefined||h!==undefined,V=a?"sticky right-0 z-10 shadow-[-4px_0_8px_-6px_rgba(0,0,0,0.1)]":"";return P3(Jt2,{className:k3("ci-resource-table",i),style:{borderCollapse:"collapse",width:"100%",...ee},children:[e?t2(to3,{children:e}):null,t2(Qt2,{children:P3(qe3,{children:[r.map((R)=>t2(wt2,{scope:"col",children:R.label},R.id)),I?t2(wt2,{className:V,children:t2("span",{className:"sr-only",children:d})}):null]})}),t2(eo3,{children:A.length===0?t2(qe3,{children:t2(je3,{className:"py-10",colSpan:Math.max(r.length+(I?1:0),1),children:l})}):A.map((R)=>{let F=S?.(R)??false,O=h?.(R,F),E=!!O,H=P3(qe3,{"data-state":C?.(R)?"selected":undefined,tabIndex:o?0:undefined,className:o?"cursor-pointer":undefined,onKeyDown:(y)=>{if(y.target===y.currentTarget&&(y.key==="Enter"||y.key===" "))y.preventDefault(),o?.(R)},onClick:(y)=>{if(y.target instanceof Element&&y.target.closest("[data-slot='row-actions']"))return;o?.(R)},children:[r.map((y)=>t2(je3,{children:w(R,y)},y.id)),I?P3(je3,{"data-slot":"row-actions",className:`flex gap-2 justify-end ${V}`,children:[u?.(R),E&&x?t2(n2,{type:"button",variant:"ghost",size:"icon","aria-label":F?"Collapse":"Expand","aria-expanded":F,disabled:c,onClick:()=>x(R,!F),children:F?t2(v2,{}):t2(m,{})}):null]}):null]},s(R));return P3(_3,{children:[p?P3(jt2,{children:[t2($t2,{asChild:true,children:H}),t2(Yt2,{children:p(R)})]}):H,E&&F?t2(qe3,{className:"hover:bg-transparent",children:t2(je3,{colSpan:r.length+(I?1:0),children:O})}):null]},s(R))})})]})};var z2=({ariaLabel:e="Resources",className:i,empty:r="No resources found",getItemKey:l,items:s,renderItem:o,renderContainer:u,style:d})=>u?u(s.length===0?r:s.map((a,c)=>t2(_3,{children:o(a,c)},l(a)))):t2("ul",{"aria-label":e,className:k3("ci-resource-list",i),style:{display:"flex",flexDirection:"column",gap:"1rem",listStyle:"none",...d},children:s.length===0?t2("li",{children:r}):s.map((a,c)=>t2("li",{children:o(a,c)},l(a)))});var W2=({className:e,inputProps:i,label:r,onChange:l,style:s,value:o})=>t2(g2,{...i,"aria-label":r,className:k3("ci-resource-filter",e),onChange:(u)=>{l(u.currentTarget.value)},style:s,type:"search",value:o});var re2=(e,i)=>{if(i<=7)return Array.from({length:i},(s,o)=>o+1);let r=Math.max(2,Math.min(e-1,i-3)),l=Math.min(i-1,Math.max(e+1,4));return[1,...r>2?[null]:[],...Array.from({length:l-r+1},(s,o)=>r+o),...l<i-1?[null]:[],i]};var K3=({className:e,currentPage:i,hasNextPage:r,hasPreviousPage:l=false,isPending:s=false,navigationLabel:o="Resource pagination",nextLabel:u="Next",onNext:d,onPrevious:a,onPageChange:c,totalPages:C,ellipsisLabel:S="More pages",previousLabel:x="Previous",style:h})=>t2(Kt2,{"aria-label":o,className:k3("ci-resource-pagination",e),style:h,children:P3(Xt2,{children:[t2(Ue3,{children:t2(n2,{variant:"ghost",disabled:!l||s,onClick:a,type:"button",children:x})}),i!==undefined&&C!==undefined&&c?re2(i,C).map((p,w)=>t2(Ue3,{children:p===null?t2(Zt2,{"aria-label":S}):t2(n2,{type:"button",size:"icon",variant:p===i?"outline":"ghost","aria-current":p===i?"page":undefined,disabled:s,onClick:()=>c(p),children:p})},p??`gap-${w}`)):null,i!==undefined&&(C===undefined||!c)?t2(Ue3,{children:P3("span",{"aria-live":"polite",children:["Page ",i]})}):null,t2(Ue3,{children:t2(n2,{variant:"ghost",disabled:!r||s,onClick:d,type:"button",children:u})})]})});var G5=({children:e,className:i,components:r,disabled:l=false,onClick:s,pending:o=false,style:u})=>{let d=r?.Button??n2;return t2(d,{"aria-busy":o,className:k3("ci-resource-action",i),disabled:l||o,onClick:s,style:u,type:"button",children:e})};var J3=({children:e,className:i,components:r,open:l,onOpenChange:s,description:o,style:u,title:d})=>{let a=j3(),c=j3();if(!r?.Dialog)return t2(M2,{open:l,...s?{onOpenChange:s}:{},children:P3(D2,{className:i,style:u,"aria-describedby":o?c:undefined,children:[t2(T3,{children:d}),o?t2(Z2,{id:c,children:o}):null,e]})});if(!l)return null;let C=r.Dialog;return P3(C,{open:l,"aria-labelledby":a,"aria-modal":"true",className:k3("ci-resource-dialog",i),style:{...oe2,...u},children:[t2("h2",{id:a,children:d}),e]})};var ie3=(e)=>e===null||e===undefined?"":String(e);var ae3=({field:e,id:i,value:r,disabled:l,errorId:s,onChange:o})=>{let u={"aria-describedby":s,"aria-invalid":s!==undefined,disabled:l,id:i,name:e.name,required:e.control!=="checkbox"&&e.required===true&&r!==null};if(e.control==="select"){let d=e.options??[];return N3("select",{...u,disabled:l||e.readOnly,className:"border-input bg-background h-9 w-full rounded-md border px-3 text-sm focus-visible:ring-ring focus-visible:ring-2",value:d.findIndex((a)=>a.value===r),onChange:(a)=>{let c=d[Number(a.currentTarget.value)];if(c)o(c.value)},children:[N3("option",{value:-1,disabled:true,children:["Select ",e.label]}),d.map((a,c)=>f2("option",{value:c,children:a.label},c))]})}if(e.control==="checkbox")return f2(g2,{...u,className:"size-4",type:"checkbox",checked:r===true,disabled:l||e.readOnly,onChange:(d)=>o(d.currentTarget.checked)});if(e.control==="custom")return N3("p",{role:"alert",children:["A custom control is required for ",e.label,"."]});return f2(g2,{...u,readOnly:e.readOnly,type:e.control,value:ie3(r),onChange:(d)=>{let a=d.currentTarget;o(e.control==="number"&&a.value!==""?a.valueAsNumber:a.value)}})};var ne4=({field:e,value:i,error:r,disabled:l,onChange:s,renderControl:o})=>{let u=te2(),d=r?`${u}-error`:undefined,a={disabled:l,errorId:d,field:e,id:u,onChange:(c)=>{if(!l&&!e.readOnly)s(c)},value:i};return N3("div",{className:"grid gap-2",children:[N3(b2,{htmlFor:u,children:[e.label,e.required?" *":""]}),e.control==="custom"&&o?o(a):f2(ae3,{...a}),e.nullable?f2(n2,{"aria-label":`Clear ${e.label}`,type:"button",variant:"ghost",size:"sm",className:"justify-self-start",disabled:l||e.readOnly||i===null,onClick:()=>s(null),children:"Clear"}):null,r?f2("p",{id:d,role:"alert",className:"text-destructive text-sm",children:r}):null]})};var Q2=({label:e,fields:i,values:r,errors:l,onChange:s,onSubmit:o,onCancel:u,renderControl:d,pending:a=false,disabled:c=false,submitLabel:C="Save",cancelLabel:S="Cancel",error:x,className:h})=>N3("form",{"aria-label":e,"aria-busy":a,className:h??"grid gap-4",onSubmit:(p)=>{if(p.preventDefault(),!a&&!c)o()},children:[x?f2("div",{role:"alert",className:"text-destructive text-sm",children:x}):null,i.map((p)=>f2(ne4,{field:p,value:r[p.name],error:l?.[p.name],disabled:c||a,onChange:(w)=>s(p.name,w),renderControl:d},p.name)),N3("div",{"data-slot":"form-actions",className:"flex justify-end gap-2",children:[u?f2(n2,{type:"button",variant:"outline",disabled:a,onClick:u,children:S}):null,f2(n2,{type:"submit",disabled:c||a,children:C})]})]});var U3=(e)=>B3("div",{className:"contents",children:e.control},e.key);var Y2=({label:e="Filter by",layout:i="stacked",controls:r})=>{if(r.length===0)return null;let l=r.filter((o)=>!o.fullWidth),s=r.filter((o)=>o.fullWidth);return B3("div",{className:"mb-4",children:i==="inline"?B3("form",{className:"flex flex-wrap items-end gap-2",onSubmit:(o)=>o.preventDefault(),children:r.map(U3)}):X3(le3,{children:[l.length>0?X3("form",{className:"flex flex-wrap gap-2 mb-2",onSubmit:(o)=>o.preventDefault(),children:[B3(b2,{className:"mt-3 mr-2",children:e}),l.map(U3)]}):null,s.map((o)=>B3("form",{className:"mb-2 last:mb-0",onSubmit:(u)=>u.preventDefault(),children:o.control},o.key))]})})};var{ResourceActionPrimitive:we3,ResourceDialogPrimitive:Be4,ResourceFilterPrimitive:Ie3,ResourceFormPrimitive:Le3,ResourceFiltersBar:Ae3,ResourceListPrimitive:Me3,ResourcePaginationPrimitive:Ve3,ResourceTablePrimitive:Oe3}=L3;import{useMemo as useMemo12,useState as useState19}from"react";import{useIsMutating,useMutation,useQueryClient as useQueryClient2}from"@tanstack/react-query";import{useMemo as useMemo9,useRef as useRef18}from"react";var immutable=(value)=>{if(value!==null&&typeof value==="object"){for(const child of Object.values(value)){immutable(child)}Object.freeze(value)}return value};var useEntityMutation=(contract,options)=>{const runtime=useEntityRuntime();const queryClient=useQueryClient2();const client=useMemo9(()=>runtime.source.bind(contract),[runtime,contract]);const resourceKey=["ci-entities",...runtime.key,contract.id,contract.version];const mutationKey=[...resourceKey,"write",options.id??"create"];const lastAction=useRef18(null);const scopeOptions={};if(options.id!==undefined){scopeOptions.scope={id:JSON.stringify(mutationKey)}}const mutation=useMutation({mutationKey,...scopeOptions,mutationFn:async(action)=>{if(!action.current()){throw entityScopeError()}const result=await action.execute();if(!action.current()){throw entityScopeError("uncertain")}if(!result.ok){throw new ResourceQueryError2(result.correlationId,result.error)}return result},networkMode:"always",onSuccess:async(_data,action)=>{if(action.current()){await queryClient.invalidateQueries({queryKey:resourceKey})}},retry:false});const pending=useIsMutating({mutationKey})>0;const send=async(action)=>{try{const result=await mutation.mutateAsync(action);if(!action.current()){const error=entityScopeError("uncertain");return{correlationId:error.correlationId,error:error.resourceError,ok:false}}return result}catch(error){if(error instanceof ResourceQueryError2){return{correlationId:error.correlationId,error:error.resourceError,ok:false}}throw error}};const submit=(input)=>{const captured=immutable(structuredClone(options.prepare(input)));const action={current:runtime.current,execute:()=>options.execute(client,captured),input:captured,runtime,target:options.id};lastAction.current=action;return send(action)};const resubmit=()=>{const action=lastAction.current;if(action===null){throw new Error("No submitted entity action to resubmit")}if(action.target!==options.id){throw new Error("The submitted action belongs to a different record")}return send(action)};const current=mutation.variables===undefined||mutation.variables.runtime===runtime&&mutation.variables.target===options.id&&mutation.variables.current();const error=current&&mutation.error instanceof ResourceQueryError2?mutation.error:null;const failureStatus=()=>{if(error?.resourceError.outcome==="uncertain"){return"uncertain"}if(error?.resourceError.code==="conflict"){return"conflict"}return"rejected"};const status=mutation.isError?failureStatus():mutation.status;return{available:runtime.state.status==="authenticated"&&client.definition.capabilities[options.operation]===true,data:current?mutation.data?.value:undefined,error,pending,resubmit,status:current?status:"idle",submit,submitted:current?mutation.variables?.input:undefined}};var useEntityUpdate2=(contract,target)=>useEntityMutation(contract,{execute:(client,input)=>client.update(input),id:target.id,operation:"update",prepare:(input)=>({...input,id:target.id,idempotencyKey:globalThis.crypto.randomUUID()})});var useEntityCreate2=(contract)=>useEntityMutation(contract,{execute:(client,input)=>client.create(input),operation:"create",prepare:(input)=>({...input,idempotencyKey:globalThis.crypto.randomUUID()})});var useEntityDelete2=(contract,target)=>useEntityMutation(contract,{execute:(client,input)=>client.delete(input),id:target.id,operation:"delete",prepare:(input)=>({...input,id:target.id,idempotencyKey:globalThis.crypto.randomUUID()})});import{useQuery}from"@tanstack/react-query";import{useMemo as useMemo10}from"react";var authStateForError=(error,state)=>{if(error instanceof ResourceQueryError2){if(error.resourceError.code==="forbidden"){return{status:"forbidden"}}if(error.resourceError.code==="unauthenticated"){return{status:"unauthenticated"}}}return state};var useEntityList2=(contract,query)=>{const runtime=useEntityRuntime();const client=useMemo10(()=>runtime.source.bind(contract),[runtime,contract]);const result=useQuery({enabled:runtime.state.status==="authenticated"&&client.definition.capabilities.search,queryFn:async({signal})=>{if(!runtime.current()){throw entityScopeError()}const data=unwrapResourceResult2(await client.list(query,{signal}));if(!runtime.current()){throw entityScopeError()}return data},queryKey:["ci-entities",...runtime.key,contract.id,contract.version,"list",query],retry:false});return{authState:authStateForError(result.error,runtime.state),capabilities:client.definition.capabilities,data:result.data,empty:result.data?.items.length===0,error:result.error,loading:result.isLoading,refresh:async()=>{await result.refetch()},refreshing:result.isFetching}};var useEntityRecord2=(contract,input)=>{const runtime=useEntityRuntime();const client=useMemo10(()=>runtime.source.bind(contract),[runtime,contract]);const result=useQuery({enabled:runtime.state.status==="authenticated"&&client.definition.capabilities.get===true,queryFn:async({signal})=>{if(!runtime.current()){throw entityScopeError()}const data=unwrapResourceResult2(await client.get(input,{signal}));if(!runtime.current()){throw entityScopeError()}return data},queryKey:["ci-entities",...runtime.key,contract.id,contract.version,"record",input.id],retry:false});return{authState:authStateForError(result.error,runtime.state),capabilities:client.definition.capabilities,data:result.data,error:result.error,loading:result.isLoading,refresh:async()=>{await result.refetch()},refreshing:result.isFetching}};import{createParser,parseAsJson,useQueryStates}from"nuqs";import{useMemo as useMemo11,useState as useState18}from"react";var DEFAULT_PAGE_SIZE=25;var namespacePattern=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/u;var isObject=(value)=>typeof value==="object"&&value!==null&&!Array.isArray(value);var isFilter=(value)=>{if(!isObject(value)){return false}if((value.operator==="and"||value.operator==="or")&&"filters"in value){return Array.isArray(value.filters)&&value.filters.every(isFilter)}if(value.operator==="not"&&"filter"in value){return isFilter(value.filter)}return typeof value.field==="string"&&typeof value.operator==="string"&&(value.operator==="is_null"||value.operator==="is_not_null"||("value"in value))};var isSorts=(value)=>Array.isArray(value)&&value.every((sort)=>isObject(sort)&&typeof sort.field==="string"&&(sort.direction==="asc"||sort.direction==="desc"));var positiveInteger=(maximum=Number.MAX_SAFE_INTEGER)=>createParser({parse:(value)=>{const number=Number(value);return/^[1-9]\d*$/u.test(value)&&Number.isSafeInteger(number)&&number<=maximum?number:null},serialize:String});var pageSizeFor=(value=DEFAULT_PAGE_SIZE)=>Number.isSafeInteger(value)&&value>0&&value<=100?value:DEFAULT_PAGE_SIZE;var parsersFor=(pageSize,contract)=>{const protocol=contract===undefined?undefined:createEntityProtocol(contract);const accepts=(query)=>protocol===undefined||protocol.decodeRequest({operation:"list",query:{pagination:{mode:"page",page:1,pageSize},...query},requestId:"view-state",resourceId:contract?.id}).ok;return{filter:parseAsJson((value)=>isFilter(value)&&accepts({filter:value})?value:null),page:positiveInteger().withDefault(1),pageSize:positiveInteger(100).withDefault(pageSize),sort:parseAsJson((value)=>isSorts(value)&&accepts({sort:value})?value:null).withDefault([]),textSearch:createParser({parse:(value)=>accepts({textSearch:value})?value:null,serialize:(value)=>value}).withDefault("")}};var queryFor=(state)=>{const query={pagination:{mode:"page",page:state.page,pageSize:state.pageSize}};if(state.filter!==null){query.filter=state.filter}if(state.sort.length>0){query.sort=state.sort}if(state.textSearch.trim()!==""){query.textSearch=state.textSearch.trim()}return query};var controller=(state,update)=>({query:queryFor(state),setFilter:(filter)=>update({filter,page:1}),setPage:(page)=>update({page:Math.max(1,page)}),setPageSize:(pageSize)=>update({page:1,pageSize:Math.max(1,Math.min(100,pageSize))}),setSort:(sort)=>update({page:1,sort:[...sort]}),setTextSearch:(textSearch)=>update({page:1,textSearch}),state});var useEntityViewState2=(namespace,input={})=>{if(!namespacePattern.test(namespace)){throw new Error("URL-backed entity views require a stable alphanumeric namespace")}const parsers=useMemo11(()=>parsersFor(pageSizeFor(input.pageSize),input.contract),[input.pageSize,input.contract]);const[state,setState]=useQueryStates(parsers,{clearOnDefault:true,history:"replace",shallow:false,urlKeys:{filter:`${namespace}.filter`,page:`${namespace}.page`,pageSize:`${namespace}.pageSize`,sort:`${namespace}.sort`,textSearch:`${namespace}.textSearch`}});const normalized=useMemo11(()=>({filter:state.filter,page:state.page>0?state.page:1,pageSize:state.pageSize>0&&state.pageSize<=100?state.pageSize:input.pageSize??DEFAULT_PAGE_SIZE,sort:state.sort,textSearch:state.textSearch}),[input.pageSize,state]);return controller(normalized,(next)=>{const{sort,...values}=next;const update=values;if(sort!==undefined){update.sort=[...sort]}setState(update)})};var useMemoryEntityViewState2=(input={})=>{const[state,setState]=useState18({filter:null,page:1,pageSize:pageSizeFor(input.pageSize),sort:[],textSearch:""});return controller(state,(next)=>{setState((current)=>({...current,...next}))})};import{jsx as jsx2,jsxs,Fragment as Fragment5}from"react/jsx-runtime";var isObject2=(value)=>value!==null&&typeof value==="object"&&!Array.isArray(value);var schemaProperties=(entity,mode="entity")=>{const properties=entity.contract.schemas[mode]?.properties;return isObject2(properties)?properties:{}};var requiredFields=(entity,mode)=>{const required=entity.contract.schemas[mode]?.required;return new Set(Array.isArray(required)?required.filter((value)=>typeof value==="string"):[])};var scalarTypes=(schema)=>{const{type}=schema;if(typeof type==="string"){return[type]}return Array.isArray(type)?type.filter((value)=>typeof value==="string"):[]};var presentationSchema=(schema)=>{const union=schema.anyOf??schema.oneOf;if(!Array.isArray(union)){return schema}const members=union.filter(isObject2);const values=members.filter((member)=>member.type!=="null");const[value]=values;if(members.length===2&&values.length===1&&value!==undefined){return{...schema,...value,type:[...scalarTypes(value),"null"]}}return schema};var defaultControl=(schema)=>{if(schema.$ref!==undefined||(schema.anyOf!==undefined||schema.oneOf!==undefined)&&schema.type===undefined){return"custom"}if(Array.isArray(schema.enum)){return"select"}const types=scalarTypes(schema);if(types.includes("boolean")){return"checkbox"}if(types.includes("number")||types.includes("integer")){return"number"}if(schema.format==="email"){return"email"}if(schema.format==="date"){return"date"}if(schema.format==="date-time"){return"datetime-local"}return types.some((type)=>type==="object"||type==="array")?"custom":"text"};var configuredControl=(config,schema)=>{switch(config.control){case"text":case"email":case"number":case"checkbox":case"date":case"datetime-local":case"select":case"custom":{return config.control}case undefined:{return defaultControl(schema)}default:{return"custom"}}};var formFields=(entity,mode)=>{const properties=schemaProperties(entity,mode);const entityProperties=schemaProperties(entity);const required=requiredFields(entity,mode);return entity.config.forms[mode].fields.map((name)=>{const config=entity.config.fields[name];if(config===undefined){throw new Error(`Missing entity field configuration: ${name}`)}const candidate=properties[name]??entityProperties[name];const schema=isObject2(candidate)?presentationSchema(candidate):{};const entityField=entityProperties[name];const enums=Array.isArray(schema.enum)?schema.enum.filter((value)=>typeof value==="string"||typeof value==="number"||typeof value==="boolean"):[];return{control:configuredControl(config,schema),label:config.label,name,nullable:scalarTypes(schema).includes("null")||Array.isArray(schema.enum)&&schema.enum.includes(null),options:enums.map((value)=>({label:String(value),value})),readOnly:config.readOnly===true||schema.readOnly===true||isObject2(entityField)&&entityField.readOnly===true,required:required.has(name)}})};var displayValue=(value)=>{if(value===null||value===undefined){return"—"}if(typeof value==="boolean"){return value?"Yes":"No"}return typeof value==="object"?JSON.stringify(value):String(value)};var renderField=(entity,record,name,renderers)=>{const renderer=entity.config.fields[name]?.renderer;return renderer===undefined||renderers?.[renderer]===undefined?displayValue(record.value[name]):renderers[renderer]({field:name,record})};var sortFor=(state,field)=>{const[current]=state.state.sort;return[{direction:current?.field===field&¤t.direction==="asc"?"desc":"asc",field}]};var QueryControls=({view})=>jsx2(Ae3,{controls:[{control:jsx2(Ie3,{label:"Search",onChange:(value)=>view.setTextSearch(value),value:view.state.textSearch}),fullWidth:true,key:"search"}]});var EntityStatus=({state})=>{if(state.authState.status!=="authenticated"){return jsx2("output",{children:state.authState.status})}if(state.loading){return jsx2("output",{children:"Loading"})}if(state.error!==null){return jsx2("output",{role:"alert",children:state.error.message})}return null};var EntityPagination=({result,view,pending})=>{if(result===undefined||result.pagination!=="page"){return null}return jsx2(Ve3,{currentPage:result.page,totalPages:result.totalPages,hasPreviousPage:result.page>1,hasNextPage:result.page<result.totalPages,isPending:pending,onPageChange:(page)=>view.setPage(page),onPrevious:()=>view.setPage(result.page-1),onNext:()=>view.setPage(result.page+1)})};var ControlledEntityTable=({entity,empty,renderers,variant,view})=>{const result=useEntityList2(entity.contract,view.query);const names=variant===undefined?entity.config.table.columns:entity.config.table.variants?.[variant]?.columns??entity.config.table.columns;const columns=names.map((name)=>({id:name,label:entity.config.fields[name]?.label??name}));const hasStatus=result.authState.status!=="authenticated"||result.loading||result.error!==null;return jsxs("section",{children:[jsx2(QueryControls,{view}),hasStatus?jsx2(EntityStatus,{state:result}):jsxs(Fragment5,{children:[jsx2(Oe3,{columns:columns.map((column)=>({...column,label:entity.contract.query.sortableFields.includes(column.id)?jsx2("button",{type:"button",onClick:()=>view.setSort(sortFor(view,column.id)),children:column.label}):column.label})),empty,getRowKey:(record)=>record.id,renderCell:(record,column)=>{const name=names.find((field)=>field===column.id);return name===undefined?null:renderField(entity,record,name,renderers)},rows:result.data?.items??[]}),jsx2(EntityPagination,{pending:result.refreshing,result:result.data,view})]})]})};var UrlEntityTable=(props)=>jsx2(ControlledEntityTable,{...props,view:useEntityViewState2(props.namespace,{contract:props.entity.contract,pageSize:props.pageSize??25})});var MemoryEntityTable=(props)=>jsx2(ControlledEntityTable,{...props,view:useMemoryEntityViewState2(props.pageSize===undefined?{}:{pageSize:props.pageSize})});var EntityTable2=(props)=>props.viewState==="memory"?jsx2(MemoryEntityTable,{...props}):jsx2(UrlEntityTable,{...props,namespace:props.namespace});var ControlledEntityList=({entity,empty,renderers,view})=>{const result=useEntityList2(entity.contract,view.query);const hasStatus=result.authState.status!=="authenticated"||result.loading||result.error!==null;return jsxs("section",{children:[jsx2(QueryControls,{view}),hasStatus?jsx2(EntityStatus,{state:result}):jsxs(Fragment5,{children:[jsx2(Me3,{empty,getItemKey:(record)=>record.id,items:result.data?.items??[],renderItem:(record)=>jsxs("article",{children:[jsx2("strong",{children:renderField(entity,record,entity.config.list.title,renderers)}),entity.config.list.description===undefined?null:jsx2("p",{children:renderField(entity,record,entity.config.list.description,renderers)})]})}),jsx2(EntityPagination,{pending:result.refreshing,result:result.data,view})]})]})};var UrlEntityList=(props)=>jsx2(ControlledEntityList,{...props,view:useEntityViewState2(props.namespace,{contract:props.entity.contract,pageSize:props.pageSize??25})});var MemoryEntityList=(props)=>jsx2(ControlledEntityList,{...props,view:useMemoryEntityViewState2(props.pageSize===undefined?{}:{pageSize:props.pageSize})});var EntityList2=(props)=>props.viewState==="memory"?jsx2(MemoryEntityList,{...props}):jsx2(UrlEntityList,{...props,namespace:props.namespace});var initialFormValues=(entity,mode,supplied,record)=>{const values={};const properties=schemaProperties(entity,mode);const required=requiredFields(entity,mode);for(const name of entity.config.forms[mode].fields){const schema=properties[name];if(required.has(name)&&isObject2(schema)&&scalarTypes(presentationSchema(schema)).includes("boolean")){values[name]=false}if(isObject2(schema)&&schema.default!==undefined){values[name]=schema.default}if(record?.value[name]!==undefined){values[name]=record.value[name]}if(supplied?.[name]!==undefined){values[name]=supplied[name]}}return values};var controlRenderer=(entity,controls)=>function renderEntityControl(props){const fields=entity.config.fields;const key=fields[props.field.name]?.control;return key===undefined||controls?.[key]===undefined?jsxs("p",{role:"alert",children:["A custom control is required for ",props.field.label,"."]}):controls[key](props)};var mutationMessage=(mutation)=>{if(mutation.status==="conflict"){return"This entity changed. Your draft is preserved."}if(mutation.status==="uncertain"){return"The write outcome is unknown. Resubmit the same action to resolve it."}return mutation.error?.resourceError.message};var writableValues=(fields,values)=>{const writable=new Set(fields.filter((field)=>!field.readOnly).map((field)=>field.name));return Object.fromEntries(Object.entries(values).filter(([name])=>writable.has(name)))};var displayedValues=(fields,values)=>Object.fromEntries(Object.entries(values).map(([name,value])=>{if(typeof value!=="string"||fields.find((field)=>field.name===name)?.control!=="datetime-local"){return[name,value]}const date=new Date(value);if(Number.isNaN(date.getTime())){return[name,value]}return[name,new Date(date.getTime()-date.getTimezoneOffset()*60000).toISOString().slice(0,23)]}));var wireValue=(fields,name,value)=>{if(typeof value!=="string"||value===""||fields.find((field)=>field.name===name)?.control!=="datetime-local"){return value}const date=new Date(value);return Number.isNaN(date.getTime())?value:date.toISOString()};var CreateEntityForm=(props)=>{const mutation=useEntityCreate2(props.entity.contract);const[values,setValues]=useState19(()=>initialFormValues(props.entity,"create",props.initialValues));const fields=useMemo12(()=>formFields(props.entity,"create"),[props.entity]);return jsx2(Le3,{label:"Create entity",fields,values:displayedValues(fields,values),disabled:!mutation.available,pending:mutation.pending,error:mutationMessage(mutation),...props.onCancel===undefined?{}:{onCancel:props.onCancel},onChange:(name,value)=>setValues((current)=>({...current,[name]:wireValue(fields,name,value)})),onSubmit:async()=>{const value=writableValues(fields,values);const action=mutation.status==="uncertain"?mutation.resubmit():mutation.submit({value});const result=await action;if(result.ok){props.onSuccess?.(result.value)}},renderControl:controlRenderer(props.entity,props.controls),submitLabel:mutation.status==="uncertain"?"Resubmit":"Create"})};var UpdateEntityForm=(props)=>{const mutation=useEntityUpdate2(props.entity.contract,{id:props.record.id});const[draft,setDraft]=useState19(()=>({expectedRevision:props.record.revision,values:initialFormValues(props.entity,"update",props.initialValues,props.record)}));const{expectedRevision,values}=draft;const fields=useMemo12(()=>formFields(props.entity,"update"),[props.entity]);return jsx2(Le3,{label:"Update entity",fields,values:displayedValues(fields,values),disabled:!mutation.available,pending:mutation.pending,error:mutationMessage(mutation),...props.onCancel===undefined?{}:{onCancel:props.onCancel},onChange:(name,value)=>setDraft((current)=>({...current,values:{...current.values,[name]:wireValue(fields,name,value)}})),onSubmit:async()=>{const value=writableValues(fields,values);const result=await(mutation.status==="uncertain"?mutation.resubmit():mutation.submit({expectedRevision,value}));if(result.ok){props.onSuccess?.(result.value)}},renderControl:controlRenderer(props.entity,props.controls),submitLabel:mutation.status==="uncertain"?"Resubmit":"Save"})};var EntityForm2=(props)=>{const runtime=useEntityRuntime();if(runtime.state.status!=="authenticated"){return jsx2("output",{children:runtime.state.status})}return props.mode==="create"?jsx2(CreateEntityForm,{...props},runtime.formScope):jsx2(UpdateEntityForm,{...props,record:props.record},JSON.stringify([runtime.formScope,props.record.id]))};
|
|
49
49
|
export{__export,FederatedAuthError,resourceKeys,ResourceQueryError2,unwrapResourceResult2,createResourceListQueryOptions,mapResourceAuthState2,hasResourceCapability2,clearProtectedResourceQueries,EntityRuntimeProvider,createDelegatedEntitySource,defineEntity2,useEntityUpdate2,useEntityCreate2,useEntityDelete2,useEntityList2,useEntityRecord2,useEntityViewState2,useMemoryEntityViewState2,EntityTable2,EntityList2,EntityForm2};
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{__export,FederatedAuthError,EntityRuntimeProvider,createDelegatedEntitySource,defineEntity2,useEntityViewState2,useMemoryEntityViewState2,EntityTable2,EntityList2,EntityForm2}from"./index-sd2evg35.js";var exports_src={};__export(exports_src,{AgentPrompt:()=>AgentPrompt,AgentPromptPrimitive:()=>AgentPromptPrimitive,CollectiveIntelligenceLoginProvider:()=>CollectiveIntelligenceLoginProvider,CollectiveIntelligenceProvider:()=>CollectiveIntelligenceProvider,EntityForm:()=>EntityForm2,EntityList:()=>EntityList2,EntityTable:()=>EntityTable2,LoginButton:()=>LoginButton,LoginCallback:()=>LoginCallback,LoginCallbackPrimitive:()=>LoginCallbackPrimitive,SessionGate:()=>SessionGate,clientSdkReactEntrypoint:()=>clientSdkReactEntrypoint,createDelegatedEntitySource:()=>createDelegatedEntitySource,createPromptKeyHandler:()=>createPromptKeyHandler,defineEntity:()=>defineEntity2,useAgentInvocation:()=>useAgentInvocation,useAgents:()=>useAgents,useAttachments:()=>useAttachments,useClientContext:()=>useClientContext,useCollectiveIntelligenceAuth:()=>useCollectiveIntelligenceAuth,useCollectiveIntelligenceClient:()=>useCollectiveIntelligenceClient,useEntityViewState:()=>useEntityViewState2,useKnowledge:()=>useKnowledge,useMemoryEntityViewState:()=>useMemoryEntityViewState2,useOrganizationClient:()=>useOrganizationClient,useRuns:()=>useRuns,useSession:()=>useSession,useSkills:()=>useSkills,useWorkflows:()=>useWorkflows});import{useCallback,useId,useState as useState2}from"react";import{QueryClient,QueryClientProvider}from"@tanstack/react-query";import{createContext,useContext,useMemo,useState}from"react";import{jsx}from"react/jsx-runtime";var ClientContext=createContext(null);var CollectiveIntelligenceProvider=(props)=>{const{clientFactory}=props;const[queryClient]=useState(()=>new QueryClient({defaultOptions:{mutations:{retry:false},queries:{retry:false}}}));const ownedClient=useMemo(()=>clientFactory===undefined?undefined:clientFactory(),[clientFactory]);const client=props.client??ownedClient;if(client===undefined){throw new TypeError("A client or clientFactory is required")}return jsx(ClientContext.Provider,{value:client,children:jsx(QueryClientProvider,{client:queryClient,children:props.entitySource===undefined?props.children:jsx(EntityRuntimeProvider,{source:props.entitySource,children:props.children})})})};var useCollectiveIntelligenceClient=()=>{const client=useContext(ClientContext);if(client===null){throw new Error("CollectiveIntelligenceProvider must wrap Collective Intelligence hooks")}return client};var useOrganizationClient=(organizationId)=>{const client=useCollectiveIntelligenceClient();return useMemo(()=>client.forOrganization(organizationId),[client,organizationId])};var useKnowledge=(organizationId)=>useOrganizationClient(organizationId).knowledge;var useAgents=(organizationId)=>useOrganizationClient(organizationId).agents;var useSkills=(organizationId)=>useOrganizationClient(organizationId).skills;var useWorkflows=(organizationId)=>useOrganizationClient(organizationId).workflows;var useRuns=(organizationId)=>useOrganizationClient(organizationId).runs;var useAttachments=(organizationId)=>useOrganizationClient(organizationId).attachments;var useClientContext=(organizationId)=>useOrganizationClient(organizationId).context;import{jsx as jsx2,jsxs}from"react/jsx-runtime";var ignoreSubmit=()=>false;var createPromptKeyHandler=(onSubmit)=>(event)=>{if(event.key==="Enter"&&!event.shiftKey&&!event.isComposing){event.preventDefault();onSubmit()}};var AgentPromptPrimitive=({autoFocus=false,className,components,id,label,onChange,onSubmit,pending,status,style,submitLabel="Send",value})=>{const Form=components?.Form??"form";const Label=components?.Label??"label";const Textarea=components?.Textarea??"textarea";const Button=components?.Button??"button";const Status=components?.Status??"div";const statusId=`${id}-status`;const submit=(event)=>{event.preventDefault();if(!pending){onSubmit()}};const onKeyDown=(event)=>{createPromptKeyHandler(pending?ignoreSubmit:onSubmit)({isComposing:event.nativeEvent.isComposing,key:event.key,preventDefault:()=>{event.preventDefault()},shiftKey:event.shiftKey})};return jsxs(Form,{className:["ci-agent-prompt",className].filter(Boolean).join(" "),onSubmit:submit,style,children:[jsx2(Label,{className:"ci-agent-prompt__label",htmlFor:id,children:label}),jsx2(Textarea,{"aria-describedby":statusId,autoFocus,className:"ci-agent-prompt__input",disabled:pending,id,onChange:(event)=>{onChange(event.currentTarget.value)},onKeyDown,value}),jsx2(Button,{className:"ci-agent-prompt__submit",disabled:pending||value.trim().length===0,type:"submit",children:submitLabel}),jsx2(Status,{"aria-live":"polite",className:"ci-agent-prompt__status",id:statusId,children:status})]})};var useAgentInvocation=(organizationId)=>{const{agents}=useOrganizationClient(organizationId);const[state,setState]=useState2({status:"idle"});const invoke=useCallback(async(input)=>{setState({status:"submitting"});try{const result=await agents.invoke(input);setState(result.ok?{result,status:"success"}:{result,status:"failure"});return result}catch(error){setState({error,status:"error"});throw error}},[agents]);return{invoke,reset:()=>{setState({status:"idle"})},state}};var invocationStatus=(state)=>{switch(state.status){case"submitting":{return"Sending"}case"success":{return"Request started"}case"failure":{return state.result.error.message}case"error":{return"Request failed"}case"idle":{return null}default:{return null}}};var EMPTY_AGENT_PROMPT_COMPONENTS={};var EMPTY_AGENT_PROMPT_STYLE={};var createDefaultIdempotencyKey=()=>globalThis.crypto.randomUUID();var AgentPrompt=({agentId,autoFocus=false,className="",components=EMPTY_AGENT_PROMPT_COMPONENTS,createIdempotencyKey=createDefaultIdempotencyKey,label="Message",onResult,organizationId,style=EMPTY_AGENT_PROMPT_STYLE,submitLabel="Send"})=>{const id=`ci-agent-prompt-${useId().replaceAll(":","")}`;const[value,setValue]=useState2("");const invocation=useAgentInvocation(organizationId);const submit=()=>{const prompt=value.trim();if(prompt.length===0||invocation.state.status==="submitting"){return}const submitInvocation=async()=>{try{const result=await invocation.invoke({agentId,idempotencyKey:createIdempotencyKey(),input:{prompt}});if(result.ok){setValue("")}onResult?.(result)}catch{}};submitInvocation()};return jsx2(AgentPromptPrimitive,{autoFocus,className,components,id,label,onChange:setValue,onSubmit:submit,pending:invocation.state.status==="submitting",status:invocationStatus(invocation.state),style,submitLabel,value})};import{createContext as createContext2,useCallback as useCallback2,useContext as useContext2,useEffect,useMemo as useMemo2,useSyncExternalStore}from"react";import{jsx as jsx3}from"react/jsx-runtime";var AuthContext=createContext2(null);var toFederatedAuthError=(error)=>new FederatedAuthError("authorization_failed",error.message);var unknownAuthError=()=>new FederatedAuthError("authorization_failed","Sign in failed");var CollectiveIntelligenceLoginProvider=(props)=>{const state=useSyncExternalStore(props.auth.subscribe,props.auth.getState,props.auth.getState);const contextValue=useMemo2(()=>({auth:props.auth,state}),[props.auth,state]);return jsx3(AuthContext.Provider,{value:contextValue,children:props.clientFactory===undefined?jsx3(CollectiveIntelligenceProvider,{client:props.client,entitySource:props.entitySource,children:props.children}):jsx3(CollectiveIntelligenceProvider,{clientFactory:props.clientFactory,entitySource:props.entitySource,children:props.children})})};var useCollectiveIntelligenceAuth=()=>{const value=useContext2(AuthContext);if(value===null){throw new Error("CollectiveIntelligenceLoginProvider must wrap authentication bindings")}return{...value,beginLogin:value.auth.beginLogin,completeLogin:value.auth.completeLogin,logout:value.auth.logout,reauthorize:value.auth.reauthorize}};var LoginButton=({children="Sign in with Collective Intelligence",className,components,disabled=false,onError,returnTo,style})=>{const{auth,state}=useCollectiveIntelligenceAuth();const Button=components?.Button??"button";const redirecting=state.status==="redirecting";const onClick=useCallback2((event)=>{event.preventDefault();const target=returnTo??globalThis.location.href;const begin=async()=>{try{await auth.beginLogin({returnTo:target})}catch(error){onError?.(error instanceof Error?toFederatedAuthError(error):unknownAuthError())}};begin()},[auth,onError,returnTo]);return jsx3(Button,{"aria-busy":redirecting,className:["ci-login-button",className].filter(Boolean).join(" "),disabled:disabled||redirecting,onClick,style,type:"button",children})};var callbackMessage=(state)=>{switch(state.status){case"authenticated":{return"Sign in complete"}case"error":{return state.error.message}case"expired":{return"Sign in expired"}case"anonymous":case"redirecting":{return"Completing sign in"}default:{return"Completing sign in"}}};var LoginCallbackPrimitive=({className,components,state,style})=>{const Status=components?.Status??"div";return jsx3(Status,{"aria-live":"polite",className:["ci-login-callback",className].filter(Boolean).join(" "),style,children:callbackMessage(state)})};var LoginCallback=({callbackUrl,onComplete,onError,...primitiveProps})=>{const{auth,state}=useCollectiveIntelligenceAuth();useEffect(()=>{const url=callbackUrl??globalThis.location.href;const complete=async()=>{try{const{returnTo}=await auth.completeLogin(url);onComplete?.(returnTo)}catch(error){onError?.(error instanceof Error?toFederatedAuthError(error):unknownAuthError())}};complete()},[auth,callbackUrl,onComplete,onError]);return jsx3(LoginCallbackPrimitive,{...primitiveProps,state})};var useSession=()=>{const{state}=useCollectiveIntelligenceAuth();return state};var SessionGate=({children,fallback=null})=>{const session=useSession();if(session.status!=="authenticated"){return fallback}return children};"use client";var clientSdkReactEntrypoint="react";"use client";var{AgentPrompt:AgentPrompt2,AgentPromptPrimitive:AgentPromptPrimitive2,CollectiveIntelligenceLoginProvider:CollectiveIntelligenceLoginProvider2,CollectiveIntelligenceProvider:CollectiveIntelligenceProvider2,LoginButton:LoginButton2,LoginCallback:LoginCallback2,LoginCallbackPrimitive:LoginCallbackPrimitive2,SessionGate:SessionGate2,clientSdkReactEntrypoint:clientSdkReactEntrypoint2,createPromptKeyHandler:createPromptKeyHandler2,useAgents:useAgents2,useAttachments:useAttachments2,useClientContext:useClientContext2,useCollectiveIntelligenceAuth:useCollectiveIntelligenceAuth2,useCollectiveIntelligenceClient:useCollectiveIntelligenceClient2,useKnowledge:useKnowledge2,useOrganizationClient:useOrganizationClient2,useRuns:useRuns2,useSession:useSession2,useSkills:useSkills2,useWorkflows:useWorkflows2,useAgentInvocation:useAgentInvocation2}=exports_src;export{AgentPrompt2 as AgentPrompt,AgentPromptPrimitive2 as AgentPromptPrimitive,CollectiveIntelligenceLoginProvider2 as CollectiveIntelligenceLoginProvider,CollectiveIntelligenceProvider2 as CollectiveIntelligenceProvider,LoginButton2 as LoginButton,LoginCallback2 as LoginCallback,LoginCallbackPrimitive2 as LoginCallbackPrimitive,SessionGate2 as SessionGate,clientSdkReactEntrypoint2 as clientSdkReactEntrypoint,createPromptKeyHandler2 as createPromptKeyHandler,useAgentInvocation2 as useAgentInvocation,useAgents2 as useAgents,useAttachments2 as useAttachments,useClientContext2 as useClientContext,useCollectiveIntelligenceAuth2 as useCollectiveIntelligenceAuth,useCollectiveIntelligenceClient2 as useCollectiveIntelligenceClient,useKnowledge2 as useKnowledge,useOrganizationClient2 as useOrganizationClient,useRuns2 as useRuns,useSession2 as useSession,useSkills2 as useSkills,useWorkflows2 as useWorkflows};
|
|
2
|
+
import{__export,FederatedAuthError,EntityRuntimeProvider,createDelegatedEntitySource,defineEntity2,useEntityViewState2,useMemoryEntityViewState2,EntityTable2,EntityList2,EntityForm2}from"./index-yhe7hpfh.js";var exports_src={};__export(exports_src,{AgentPrompt:()=>AgentPrompt,AgentPromptPrimitive:()=>AgentPromptPrimitive,CollectiveIntelligenceLoginProvider:()=>CollectiveIntelligenceLoginProvider,CollectiveIntelligenceProvider:()=>CollectiveIntelligenceProvider,EntityForm:()=>EntityForm2,EntityList:()=>EntityList2,EntityTable:()=>EntityTable2,LoginButton:()=>LoginButton,LoginCallback:()=>LoginCallback,LoginCallbackPrimitive:()=>LoginCallbackPrimitive,SessionGate:()=>SessionGate,clientSdkReactEntrypoint:()=>clientSdkReactEntrypoint,createDelegatedEntitySource:()=>createDelegatedEntitySource,createPromptKeyHandler:()=>createPromptKeyHandler,defineEntity:()=>defineEntity2,useAgentInvocation:()=>useAgentInvocation,useAgents:()=>useAgents,useAttachments:()=>useAttachments,useClientContext:()=>useClientContext,useCollectiveIntelligenceAuth:()=>useCollectiveIntelligenceAuth,useCollectiveIntelligenceClient:()=>useCollectiveIntelligenceClient,useEntityViewState:()=>useEntityViewState2,useKnowledge:()=>useKnowledge,useMemoryEntityViewState:()=>useMemoryEntityViewState2,useOrganizationClient:()=>useOrganizationClient,useRuns:()=>useRuns,useSession:()=>useSession,useSkills:()=>useSkills,useWorkflows:()=>useWorkflows});import{useCallback,useId,useState as useState2}from"react";import{QueryClient,QueryClientProvider}from"@tanstack/react-query";import{createContext,useContext,useMemo,useState}from"react";import{jsx}from"react/jsx-runtime";var ClientContext=createContext(null);var CollectiveIntelligenceProvider=(props)=>{const{clientFactory}=props;const[queryClient]=useState(()=>new QueryClient({defaultOptions:{mutations:{retry:false},queries:{retry:false}}}));const ownedClient=useMemo(()=>clientFactory===undefined?undefined:clientFactory(),[clientFactory]);const client=props.client??ownedClient;if(client===undefined){throw new TypeError("A client or clientFactory is required")}return jsx(ClientContext.Provider,{value:client,children:jsx(QueryClientProvider,{client:queryClient,children:props.entitySource===undefined?props.children:jsx(EntityRuntimeProvider,{source:props.entitySource,children:props.children})})})};var useCollectiveIntelligenceClient=()=>{const client=useContext(ClientContext);if(client===null){throw new Error("CollectiveIntelligenceProvider must wrap Collective Intelligence hooks")}return client};var useOrganizationClient=(organizationId)=>{const client=useCollectiveIntelligenceClient();return useMemo(()=>client.forOrganization(organizationId),[client,organizationId])};var useKnowledge=(organizationId)=>useOrganizationClient(organizationId).knowledge;var useAgents=(organizationId)=>useOrganizationClient(organizationId).agents;var useSkills=(organizationId)=>useOrganizationClient(organizationId).skills;var useWorkflows=(organizationId)=>useOrganizationClient(organizationId).workflows;var useRuns=(organizationId)=>useOrganizationClient(organizationId).runs;var useAttachments=(organizationId)=>useOrganizationClient(organizationId).attachments;var useClientContext=(organizationId)=>useOrganizationClient(organizationId).context;import{jsx as jsx2,jsxs}from"react/jsx-runtime";var ignoreSubmit=()=>false;var createPromptKeyHandler=(onSubmit)=>(event)=>{if(event.key==="Enter"&&!event.shiftKey&&!event.isComposing){event.preventDefault();onSubmit()}};var AgentPromptPrimitive=({autoFocus=false,className,components,id,label,onChange,onSubmit,pending,status,style,submitLabel="Send",value})=>{const Form=components?.Form??"form";const Label=components?.Label??"label";const Textarea=components?.Textarea??"textarea";const Button=components?.Button??"button";const Status=components?.Status??"div";const statusId=`${id}-status`;const submit=(event)=>{event.preventDefault();if(!pending){onSubmit()}};const onKeyDown=(event)=>{createPromptKeyHandler(pending?ignoreSubmit:onSubmit)({isComposing:event.nativeEvent.isComposing,key:event.key,preventDefault:()=>{event.preventDefault()},shiftKey:event.shiftKey})};return jsxs(Form,{className:["ci-agent-prompt",className].filter(Boolean).join(" "),onSubmit:submit,style,children:[jsx2(Label,{className:"ci-agent-prompt__label",htmlFor:id,children:label}),jsx2(Textarea,{"aria-describedby":statusId,autoFocus,className:"ci-agent-prompt__input",disabled:pending,id,onChange:(event)=>{onChange(event.currentTarget.value)},onKeyDown,value}),jsx2(Button,{className:"ci-agent-prompt__submit",disabled:pending||value.trim().length===0,type:"submit",children:submitLabel}),jsx2(Status,{"aria-live":"polite",className:"ci-agent-prompt__status",id:statusId,children:status})]})};var useAgentInvocation=(organizationId)=>{const{agents}=useOrganizationClient(organizationId);const[state,setState]=useState2({status:"idle"});const invoke=useCallback(async(input)=>{setState({status:"submitting"});try{const result=await agents.invoke(input);setState(result.ok?{result,status:"success"}:{result,status:"failure"});return result}catch(error){setState({error,status:"error"});throw error}},[agents]);return{invoke,reset:()=>{setState({status:"idle"})},state}};var invocationStatus=(state)=>{switch(state.status){case"submitting":{return"Sending"}case"success":{return"Request started"}case"failure":{return state.result.error.message}case"error":{return"Request failed"}case"idle":{return null}default:{return null}}};var EMPTY_AGENT_PROMPT_COMPONENTS={};var EMPTY_AGENT_PROMPT_STYLE={};var createDefaultIdempotencyKey=()=>globalThis.crypto.randomUUID();var AgentPrompt=({agentId,autoFocus=false,className="",components=EMPTY_AGENT_PROMPT_COMPONENTS,createIdempotencyKey=createDefaultIdempotencyKey,label="Message",onResult,organizationId,style=EMPTY_AGENT_PROMPT_STYLE,submitLabel="Send"})=>{const id=`ci-agent-prompt-${useId().replaceAll(":","")}`;const[value,setValue]=useState2("");const invocation=useAgentInvocation(organizationId);const submit=()=>{const prompt=value.trim();if(prompt.length===0||invocation.state.status==="submitting"){return}const submitInvocation=async()=>{try{const result=await invocation.invoke({agentId,idempotencyKey:createIdempotencyKey(),input:{prompt}});if(result.ok){setValue("")}onResult?.(result)}catch{}};submitInvocation()};return jsx2(AgentPromptPrimitive,{autoFocus,className,components,id,label,onChange:setValue,onSubmit:submit,pending:invocation.state.status==="submitting",status:invocationStatus(invocation.state),style,submitLabel,value})};import{createContext as createContext2,useCallback as useCallback2,useContext as useContext2,useEffect,useMemo as useMemo2,useSyncExternalStore}from"react";import{jsx as jsx3}from"react/jsx-runtime";var AuthContext=createContext2(null);var toFederatedAuthError=(error)=>new FederatedAuthError("authorization_failed",error.message);var unknownAuthError=()=>new FederatedAuthError("authorization_failed","Sign in failed");var CollectiveIntelligenceLoginProvider=(props)=>{const state=useSyncExternalStore(props.auth.subscribe,props.auth.getState,props.auth.getState);const contextValue=useMemo2(()=>({auth:props.auth,state}),[props.auth,state]);return jsx3(AuthContext.Provider,{value:contextValue,children:props.clientFactory===undefined?jsx3(CollectiveIntelligenceProvider,{client:props.client,entitySource:props.entitySource,children:props.children}):jsx3(CollectiveIntelligenceProvider,{clientFactory:props.clientFactory,entitySource:props.entitySource,children:props.children})})};var useCollectiveIntelligenceAuth=()=>{const value=useContext2(AuthContext);if(value===null){throw new Error("CollectiveIntelligenceLoginProvider must wrap authentication bindings")}return{...value,beginLogin:value.auth.beginLogin,completeLogin:value.auth.completeLogin,logout:value.auth.logout,reauthorize:value.auth.reauthorize}};var LoginButton=({children="Sign in with Collective Intelligence",className,components,disabled=false,onError,returnTo,style})=>{const{auth,state}=useCollectiveIntelligenceAuth();const Button=components?.Button??"button";const redirecting=state.status==="redirecting";const onClick=useCallback2((event)=>{event.preventDefault();const target=returnTo??globalThis.location.href;const begin=async()=>{try{await auth.beginLogin({returnTo:target})}catch(error){onError?.(error instanceof Error?toFederatedAuthError(error):unknownAuthError())}};begin()},[auth,onError,returnTo]);return jsx3(Button,{"aria-busy":redirecting,className:["ci-login-button",className].filter(Boolean).join(" "),disabled:disabled||redirecting,onClick,style,type:"button",children})};var callbackMessage=(state)=>{switch(state.status){case"authenticated":{return"Sign in complete"}case"error":{return state.error.message}case"expired":{return"Sign in expired"}case"anonymous":case"redirecting":{return"Completing sign in"}default:{return"Completing sign in"}}};var LoginCallbackPrimitive=({className,components,state,style})=>{const Status=components?.Status??"div";return jsx3(Status,{"aria-live":"polite",className:["ci-login-callback",className].filter(Boolean).join(" "),style,children:callbackMessage(state)})};var LoginCallback=({callbackUrl,onComplete,onError,...primitiveProps})=>{const{auth,state}=useCollectiveIntelligenceAuth();useEffect(()=>{const url=callbackUrl??globalThis.location.href;const complete=async()=>{try{const{returnTo}=await auth.completeLogin(url);onComplete?.(returnTo)}catch(error){onError?.(error instanceof Error?toFederatedAuthError(error):unknownAuthError())}};complete()},[auth,callbackUrl,onComplete,onError]);return jsx3(LoginCallbackPrimitive,{...primitiveProps,state})};var useSession=()=>{const{state}=useCollectiveIntelligenceAuth();return state};var SessionGate=({children,fallback=null})=>{const session=useSession();if(session.status!=="authenticated"){return fallback}return children};"use client";var clientSdkReactEntrypoint="react";"use client";var{AgentPrompt:AgentPrompt2,AgentPromptPrimitive:AgentPromptPrimitive2,CollectiveIntelligenceLoginProvider:CollectiveIntelligenceLoginProvider2,CollectiveIntelligenceProvider:CollectiveIntelligenceProvider2,LoginButton:LoginButton2,LoginCallback:LoginCallback2,LoginCallbackPrimitive:LoginCallbackPrimitive2,SessionGate:SessionGate2,clientSdkReactEntrypoint:clientSdkReactEntrypoint2,createPromptKeyHandler:createPromptKeyHandler2,useAgents:useAgents2,useAttachments:useAttachments2,useClientContext:useClientContext2,useCollectiveIntelligenceAuth:useCollectiveIntelligenceAuth2,useCollectiveIntelligenceClient:useCollectiveIntelligenceClient2,useKnowledge:useKnowledge2,useOrganizationClient:useOrganizationClient2,useRuns:useRuns2,useSession:useSession2,useSkills:useSkills2,useWorkflows:useWorkflows2,useAgentInvocation:useAgentInvocation2}=exports_src;export{AgentPrompt2 as AgentPrompt,AgentPromptPrimitive2 as AgentPromptPrimitive,CollectiveIntelligenceLoginProvider2 as CollectiveIntelligenceLoginProvider,CollectiveIntelligenceProvider2 as CollectiveIntelligenceProvider,LoginButton2 as LoginButton,LoginCallback2 as LoginCallback,LoginCallbackPrimitive2 as LoginCallbackPrimitive,SessionGate2 as SessionGate,clientSdkReactEntrypoint2 as clientSdkReactEntrypoint,createPromptKeyHandler2 as createPromptKeyHandler,useAgentInvocation2 as useAgentInvocation,useAgents2 as useAgents,useAttachments2 as useAttachments,useClientContext2 as useClientContext,useCollectiveIntelligenceAuth2 as useCollectiveIntelligenceAuth,useCollectiveIntelligenceClient2 as useCollectiveIntelligenceClient,useKnowledge2 as useKnowledge,useOrganizationClient2 as useOrganizationClient,useRuns2 as useRuns,useSession2 as useSession,useSkills2 as useSkills,useWorkflows2 as useWorkflows};
|
package/dist/resources.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{__export,resourceKeys,ResourceQueryError2,unwrapResourceResult2,createResourceListQueryOptions,mapResourceAuthState2,hasResourceCapability2,clearProtectedResourceQueries,createDelegatedEntitySource,defineEntity2,useEntityUpdate2,useEntityCreate2,useEntityDelete2,useEntityList2,useEntityRecord2,useEntityViewState2,useMemoryEntityViewState2,EntityTable2,EntityList2,EntityForm2}from"./index-
|
|
2
|
+
import{__export,resourceKeys,ResourceQueryError2,unwrapResourceResult2,createResourceListQueryOptions,mapResourceAuthState2,hasResourceCapability2,clearProtectedResourceQueries,createDelegatedEntitySource,defineEntity2,useEntityUpdate2,useEntityCreate2,useEntityDelete2,useEntityList2,useEntityRecord2,useEntityViewState2,useMemoryEntityViewState2,EntityTable2,EntityList2,EntityForm2}from"./index-yhe7hpfh.js";var exports_resources={};__export(exports_resources,{EntityForm:()=>EntityForm2,EntityList:()=>EntityList2,EntityTable:()=>EntityTable2,ResourceCapabilityAction:()=>ResourceCapabilityAction,ResourceFilter:()=>ResourceFilter,ResourceLifecycleAction:()=>ResourceLifecycleAction,ResourceList:()=>ResourceList,ResourcePagination:()=>ResourcePagination,ResourceProvider:()=>ResourceProvider,ResourceQueryError:()=>ResourceQueryError2,ResourceTable:()=>ResourceTable,createDelegatedEntitySource:()=>createDelegatedEntitySource,defineEntity:()=>defineEntity2,hasResourceCapability:()=>hasResourceCapability2,mapResourceAuthState:()=>mapResourceAuthState2,unwrapResourceResult:()=>unwrapResourceResult2,useEntityCreate:()=>useEntityCreate2,useEntityDelete:()=>useEntityDelete2,useEntityList:()=>useEntityList2,useEntityRecord:()=>useEntityRecord2,useEntityUpdate:()=>useEntityUpdate2,useEntityViewState:()=>useEntityViewState2,useMemoryEntityViewState:()=>useMemoryEntityViewState2});import{useMutation,useQuery,useQueryClient as useQueryClient2}from"@tanstack/react-query";import{mutationOptions}from"@tanstack/react-query";var invalidateResource=async(options)=>{await options.queryClient.invalidateQueries({queryKey:resourceKeys.resource(options.organizationId,options.client.definition.id,options.client.definition.version)})};var createResourceMutationOptions=(options)=>mutationOptions({mutationFn:async(input)=>{let result;switch(options.operation){case"hard_delete":{unwrapResourceResult2(await options.client.hardDelete(input));break}case"restore":{result=unwrapResourceResult2(await options.client.restore(input));break}case"soft_delete":{result=unwrapResourceResult2(await options.client.softDelete(input));break}default:{throw new TypeError(`Unknown resource operation: ${String(options.operation)}`)}}return result},mutationKey:[...resourceKeys.resource(options.organizationId,options.client.definition.id,options.client.definition.version),"mutations",options.operation],onSuccess:async()=>{await invalidateResource(options)}});import{useQueryClient}from"@tanstack/react-query";import{createContext,useContext,useEffect,useMemo,useRef}from"react";import{jsx}from"react/jsx-runtime";var useResourceQueryCleanup=(queryClient,authStatus,organizationId)=>{const previousOrganizationId=useRef(null);const input=useMemo(()=>({authStatus,organizationId}),[authStatus,organizationId]);useEffect(()=>{const previous=previousOrganizationId.current;previousOrganizationId.current=input.organizationId;if(input.authStatus!=="authenticated"){clearProtectedResourceQueries(queryClient);return}if(previous!==null&&previous!==input.organizationId){clearProtectedResourceQueries(queryClient,previous)}},[input,queryClient])};var ResourceContext=createContext(null);var ResourceProvider=({authState,capabilities,children,organizationId})=>{const queryClient=useQueryClient();useResourceQueryCleanup(queryClient,authState.status,organizationId);const value=useMemo(()=>({authState,capabilities,organizationId}),[authState,capabilities,organizationId]);return jsx(ResourceContext.Provider,{value,children})};var useResourceContext=()=>{const value=useContext(ResourceContext);if(value===null){throw new Error("ResourceProvider must wrap resource bindings")}return value};var authStateForError=(error,fallback)=>error instanceof ResourceQueryError2?mapResourceAuthState2({correlationId:error.correlationId,error:error.resourceError,ok:false}):fallback;var useResourceList=(client,query)=>{const context=useResourceContext();const result=useQuery({...createResourceListQueryOptions({client,organizationId:context.organizationId,query}),enabled:context.authState.status==="authenticated"});return{...result,authState:authStateForError(result.error,context.authState)}};var useResourceLifecycleMutation=(client,operation)=>{const{capabilities,organizationId}=useResourceContext();const queryClient=useQueryClient2();const mutation=useMutation(createResourceMutationOptions({client,operation,organizationId,queryClient}));let capability;if(operation==="hard_delete"){capability="hardDelete"}else if(operation==="soft_delete"){capability="softDelete"}else{capability=operation}return{...mutation,available:capabilities[capability]===true}};import{jsx as jsx2,jsxs,Fragment}from"react/jsx-runtime";var nextQuery=(query,result)=>{if(result.pagination==="cursor"){return result.nextCursor===undefined?undefined:{...query,pagination:{cursor:result.nextCursor,limit:query.pagination.mode==="cursor"?query.pagination.limit:25,mode:"cursor"}}}return result.page>=result.totalPages?undefined:{...query,pagination:{mode:"page",page:result.page+1,pageSize:result.pageSize}}};var previousQuery=(query,result)=>result.pagination==="page"&&result.page>1?{...query,pagination:{mode:"page",page:result.page-1,pageSize:result.pageSize}}:undefined;var DefaultStatus=({authState,error,pending})=>{let message=authState.status;if(authState.status==="authenticated"){message=pending?"Loading resources":error?.message??""}return jsx2("output",{"aria-live":"polite",children:message})};var ResourceList=({client,components,onQueryChange,query,renderItem})=>{const resourceQuery=useResourceList(client,query);const Status=components.Status??DefaultStatus;if(resourceQuery.authState.status!=="authenticated"||resourceQuery.isPending||resourceQuery.error!==null){return jsx2(Status,{authState:resourceQuery.authState,pending:resourceQuery.isPending,...resourceQuery.error===null?{}:{error:resourceQuery.error}})}const{List}=components;const{Pagination}=components;const result=resourceQuery.data;const next=nextQuery(query,result);const previous=previousQuery(query,result);return jsxs(Fragment,{children:[jsx2(List,{getItemKey:(item)=>item.id,items:result.items,renderItem}),Pagination===undefined?null:jsx2(Pagination,{hasNextPage:next!==undefined,hasPreviousPage:previous!==undefined,isPending:resourceQuery.isFetching,onNext:()=>{if(next!==undefined){onQueryChange?.(next)}},onPrevious:()=>{if(previous!==undefined){onQueryChange?.(previous)}},...result.pagination==="page"?{currentPage:result.page}:{}})]})};var ResourceCapabilityAction=({capability,children,components,unsupported="disable"})=>{const{capabilities}=useResourceContext();const supported=capabilities[capability]===true;if(!supported&&unsupported==="hide"){return null}const{Action}=components;return jsx2(Action,{disabled:!supported,children})};var ResourceFilter=({components,label="Search resources",onQueryChange,query})=>{const{Filter}=components;const{textSearch:_textSearch,...queryWithoutTextSearch}=query;return jsx2(Filter,{label,onChange:(value)=>{onQueryChange(value===""?queryWithoutTextSearch:{...query,textSearch:value})},value:query.textSearch??""})};var ResourcePagination=({components,isPending=false,onQueryChange,query,result})=>{const{Pagination}=components;const next=nextQuery(query,result);const previous=previousQuery(query,result);return jsx2(Pagination,{hasNextPage:next!==undefined,hasPreviousPage:previous!==undefined,isPending,onNext:()=>{if(next!==undefined){onQueryChange(next)}},onPrevious:()=>{if(previous!==undefined){onQueryChange(previous)}},...result.pagination==="page"?{currentPage:result.page}:{}})};var ResourceTable=({caption,client,columns,components,query})=>{const resourceQuery=useResourceList(client,query);const Status=components.Status??DefaultStatus;if(resourceQuery.authState.status!=="authenticated"||resourceQuery.isPending||resourceQuery.error!==null){return jsx2(Status,{authState:resourceQuery.authState,pending:resourceQuery.isPending,...resourceQuery.error===null?{}:{error:resourceQuery.error}})}const{Table}=components;return jsx2(Table,{caption,columns,getRowKey:(row)=>row.id,renderCell:(row,column)=>column.render(row),rows:resourceQuery.data.items})};var ResourceLifecycleAction=({children,client,components,input,operation,unsupported="disable"})=>{const mutation=useResourceLifecycleMutation(client,operation);if(!mutation.available&&unsupported==="hide"){return null}const{Action}=components;return jsx2(Action,{disabled:!mutation.available,onClick:()=>{mutation.mutate(input)},pending:mutation.isPending,children})};var{defineEntity,EntityForm,EntityList,EntityTable,ResourceCapabilityAction:ResourceCapabilityAction2,ResourceFilter:ResourceFilter2,ResourceLifecycleAction:ResourceLifecycleAction2,ResourceList:ResourceList2,ResourcePagination:ResourcePagination2,ResourceProvider:ResourceProvider2,ResourceQueryError,ResourceTable:ResourceTable2,hasResourceCapability,mapResourceAuthState,unwrapResourceResult,useEntityCreate,useEntityDelete,useEntityList,useEntityRecord,useEntityUpdate,useEntityViewState,useMemoryEntityViewState}=exports_resources;export{EntityForm,EntityList,EntityTable,ResourceCapabilityAction2 as ResourceCapabilityAction,ResourceFilter2 as ResourceFilter,ResourceLifecycleAction2 as ResourceLifecycleAction,ResourceList2 as ResourceList,ResourcePagination2 as ResourcePagination,ResourceProvider2 as ResourceProvider,ResourceQueryError,ResourceTable2 as ResourceTable,defineEntity,hasResourceCapability,mapResourceAuthState,unwrapResourceResult,useEntityCreate,useEntityDelete,useEntityList,useEntityRecord,useEntityUpdate,useEntityViewState,useMemoryEntityViewState};
|
package/package.json
CHANGED