@objectstack/studio 5.1.0 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/index-81ZhtCq-.js +159 -0
- package/dist/assets/index-CSlaSCb_.css +2 -0
- package/dist/assets/rolldown-runtime-aKtaBQYM.js +1 -0
- package/dist/assets/vendor-charts-CMWbKNvz.js +34 -0
- package/dist/assets/vendor-icons-C-VDCqO9.js +1 -0
- package/dist/assets/vendor-kzrx2K5g.css +1 -0
- package/dist/assets/vendor-object-ui-core-C_SRaIe4.js +59 -0
- package/dist/assets/vendor-object-ui-form-DRRdiS9F.js +1 -0
- package/dist/assets/vendor-object-ui-grid-BvNa3IUR.js +6 -0
- package/dist/assets/vendor-object-ui-views-CyaLQwFl.js +0 -0
- package/dist/assets/vendor-rQmwIIxi.js +152 -0
- package/dist/assets/vendor-radix-DlDjksHy.js +1 -0
- package/dist/assets/vendor-react-CfxtBSJn.js +9 -0
- package/dist/assets/vendor-tanstack-D6oxbowc.js +1 -0
- package/dist/index.html +30 -2
- package/package.json +30 -24
- package/dist/assets/dist-DiOJyKuv.js +0 -1
- package/dist/assets/index-BiwiL-EB.css +0 -2
- package/dist/assets/index-DYSVcooZ.js +0 -230
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import{i as e,r as t}from"./rolldown-runtime-aKtaBQYM.js";import{$ as n,$t as r,A as i,At as a,Bt as o,C as s,Ct as c,D as l,Dt as u,E as d,Et as f,Ft as p,G as m,Gt as h,Ht as g,It as _,J as v,Jt as y,K as b,Kt as x,Lt as S,Mt as C,Nt as w,O as T,Ot as E,Pt as ee,Q as D,Qt as O,Rt as k,S as A,St as te,T as ne,Tt as re,Ut as ie,Vt as j,Wt as M,X as ae,Xt as N,Y as oe,Yt as P,Z as se,Zt as F,_n as ce,_t as le,an as ue,at as de,b as fe,bn as pe,bt as me,cn as I,ct as he,dn as L,dt as ge,en as _e,et as ve,fn as R,ft as ye,gt as be,hn as z,ht as xe,in as Se,it as Ce,k as we,ln as B,lt as Te,mn as V,mt as Ee,nn as H,on as De,ot as Oe,pn as ke,pt as Ae,q as je,qt as Me,rn as Ne,sn as Pe,st as Fe,tn as U,un as Ie,ut as Le,vn as Re,vt as ze,w as Be,wt as Ve,xt as He,y as Ue,yn as We,yt as Ge,zt as Ke}from"./vendor-rQmwIIxi.js";import{$ as qe,$t as Je,A as Ye,Bn as Xe,Et as Ze,F as Qe,Fn as $e,G as et,Gt as tt,Hn as nt,Ht as rt,I as it,In as at,J as ot,K as st,Kn as ct,Ln as lt,Mn as ut,Mt as dt,N as ft,Nt as pt,O as mt,Ot as ht,Pn as gt,Q as _t,Rn as vt,Sn as yt,T as bt,Tn as xt,Tt as St,Un as Ct,Ut as wt,Vn as Tt,Wt as Et,Yt as Dt,_ as Ot,_n as kt,a as At,ar as jt,bn as Mt,cr as Nt,dn as Pt,dt as Ft,en as It,er as Lt,fn as Rt,fr as zt,g as Bt,gn as Vt,gt as Ht,ht as Ut,i as Wt,ir as Gt,it as Kt,jt as qt,kn as Jt,kt as Yt,ln as Xt,lr as Zt,m as Qt,mn as $t,mt as en,n as tn,nn,nr as rn,nt as an,or as on,ot as sn,pn as cn,qn as ln,r as un,rn as dn,rr as fn,sr as pn,st as mn,t as hn,tr as gn,un as _n,v as vn,wt as yn,xn as bn,xt as xn,y as Sn,yn as Cn,zn as wn}from"./vendor-icons-C-VDCqO9.js";import{r as Tn}from"./vendor-charts-CMWbKNvz.js";var En=e(We(),1),Dn=ce(),W=e(pe(),1),G=Re(),On=`Separator`,kn=`horizontal`,An=[`horizontal`,`vertical`],jn=W.forwardRef((e,t)=>{let{decorative:n,orientation:r=kn,...i}=e,a=Mn(r)?r:kn,o=n?{role:`none`}:{"aria-orientation":a===`vertical`?a:void 0,role:`separator`};return(0,G.jsx)(g.div,{"data-orientation":a,...o,...i,ref:t})});jn.displayName=On;function Mn(e){return An.includes(e)}var Nn=jn,Pn=typeof document<`u`?W.useLayoutEffect:function(){};function Fn(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e==`function`&&e.toString()===t.toString())return!0;let n,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Fn(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!Fn(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function In(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Ln(e,t){let n=In(e);return Math.round(t*n)/n}function Rn(e){let t=W.useRef(e);return Pn(()=>{t.current=e}),t}function zn(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=W.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=W.useState(r);Fn(f,r)||p(r);let[m,h]=W.useState(null),[g,_]=W.useState(null),v=W.useCallback(e=>{e!==S.current&&(S.current=e,h(e))},[]),y=W.useCallback(e=>{e!==C.current&&(C.current=e,_(e))},[]),b=a||m,x=o||g,S=W.useRef(null),C=W.useRef(null),w=W.useRef(u),T=c!=null,E=Rn(c),ee=Rn(i),D=Rn(l),O=W.useCallback(()=>{if(!S.current||!C.current)return;let e={placement:t,strategy:n,middleware:f};ee.current&&(e.platform=ee.current),Oe(S.current,C.current,e).then(e=>{let t={...e,isPositioned:D.current!==!1};k.current&&!Fn(w.current,t)&&(w.current=t,En.flushSync(()=>{d(t)}))})},[f,t,n,ee,D]);Pn(()=>{l===!1&&w.current.isPositioned&&(w.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let k=W.useRef(!1);Pn(()=>(k.current=!0,()=>{k.current=!1}),[]),Pn(()=>{if(b&&(S.current=b),x&&(C.current=x),b&&x){if(E.current)return E.current(b,x,O);O()}},[b,x,O,E,T]);let A=W.useMemo(()=>({reference:S,floating:C,setReference:v,setFloating:y}),[v,y]),te=W.useMemo(()=>({reference:b,floating:x}),[b,x]),ne=W.useMemo(()=>{let e={position:n,left:0,top:0};if(!te.floating)return e;let t=Ln(te.floating,u.x),r=Ln(te.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...In(te.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,te.floating,u.x,u.y]);return W.useMemo(()=>({...u,update:O,refs:A,elements:te,floatingStyles:ne}),[u,O,A,te,ne])}var Bn=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:Ce({element:r.current,padding:i}).fn(n):r?Ce({element:r,padding:i}).fn(n):{}}}},Vn=(e,t)=>{let n=Le(e);return{name:n.name,fn:n.fn,options:[e,t]}},Hn=(e,t)=>{let n=ge(e);return{name:n.name,fn:n.fn,options:[e,t]}},Un=(e,t)=>({fn:Te(e).fn,options:[e,t]}),Wn=(e,t)=>{let n=Fe(e);return{name:n.name,fn:n.fn,options:[e,t]}},Gn=(e,t)=>{let n=ye(e);return{name:n.name,fn:n.fn,options:[e,t]}},Kn=(e,t)=>{let n=he(e);return{name:n.name,fn:n.fn,options:[e,t]}},qn=(e,t)=>{let n=Bn(e);return{name:n.name,fn:n.fn,options:[e,t]}},Jn=`Arrow`,Yn=W.forwardRef((e,t)=>{let{children:n,width:r=10,height:i=5,...a}=e;return(0,G.jsx)(w.svg,{...a,ref:t,width:r,height:i,viewBox:`0 0 30 10`,preserveAspectRatio:`none`,children:e.asChild?n:(0,G.jsx)(`polygon`,{points:`0,0 30,0 15,10`})})});Yn.displayName=Jn;var Xn=Yn;function Zn(e){let[t,n]=W.useState(void 0);return Ke(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}else n(void 0)},[e]),t}var Qn=`Popper`,[$n,er]=o(Qn),[tr,nr]=$n(Qn),rr=e=>{let{__scopePopper:t,children:n}=e,[r,i]=W.useState(null);return(0,G.jsx)(tr,{scope:t,anchor:r,onAnchorChange:i,children:n})};rr.displayName=Qn;var ir=`PopperAnchor`,ar=W.forwardRef((e,t)=>{let{__scopePopper:n,virtualRef:r,...i}=e,a=nr(ir,n),o=W.useRef(null),s=y(t,o),c=W.useRef(null);return W.useEffect(()=>{let e=c.current;c.current=r?.current||o.current,e!==c.current&&a.onAnchorChange(c.current)}),r?null:(0,G.jsx)(w.div,{...i,ref:s})});ar.displayName=ir;var or=`PopperContent`,[sr,cr]=$n(or),lr=W.forwardRef((e,t)=>{let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d=`partial`,hideWhenDetached:f=!1,updatePositionStrategy:p=`optimized`,onPlaced:m,...h}=e,g=nr(or,n),[_,v]=W.useState(null),b=y(t,e=>v(e)),[x,S]=W.useState(null),T=Zn(x),E=T?.width??0,ee=T?.height??0,D=r+(a===`center`?``:`-`+a),O=typeof u==`number`?u:{top:0,right:0,bottom:0,left:0,...u},k=Array.isArray(l)?l:[l],A=k.length>0,te={padding:O,boundary:k.filter(pr),altBoundary:A},{refs:ne,floatingStyles:re,placement:ie,isPositioned:j,middlewareData:M}=zn({strategy:`fixed`,placement:D,whileElementsMounted:(...e)=>de(...e,{animationFrame:p===`always`}),elements:{reference:g.anchor},middleware:[Vn({mainAxis:i+ee,alignmentAxis:o}),c&&Hn({mainAxis:!0,crossAxis:!1,limiter:d===`partial`?Un():void 0,...te}),c&&Wn({...te}),Gn({...te,apply:({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)}}),x&&qn({element:x,padding:s}),mr({arrowWidth:E,arrowHeight:ee}),f&&Kn({strategy:`referenceHidden`,...te})]}),[ae,N]=hr(ie),oe=C(m);Ke(()=>{j&&oe?.()},[j,oe]);let P=M.arrow?.x,se=M.arrow?.y,F=M.arrow?.centerOffset!==0,[ce,le]=W.useState();return Ke(()=>{_&&le(window.getComputedStyle(_).zIndex)},[_]),(0,G.jsx)(`div`,{ref:ne.setFloating,"data-radix-popper-content-wrapper":``,style:{...re,transform:j?re.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:ce,"--radix-popper-transform-origin":[M.transformOrigin?.x,M.transformOrigin?.y].join(` `),...M.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,G.jsx)(sr,{scope:n,placedSide:ae,onArrowChange:S,arrowX:P,arrowY:se,shouldHideArrow:F,children:(0,G.jsx)(w.div,{"data-side":ae,"data-align":N,...h,ref:b,style:{...h.style,animation:j?void 0:`none`}})})})});lr.displayName=or;var ur=`PopperArrow`,dr={top:`bottom`,right:`left`,bottom:`top`,left:`right`},fr=W.forwardRef(function(e,t){let{__scopePopper:n,...r}=e,i=cr(ur,n),a=dr[i.placedSide];return(0,G.jsx)(`span`,{ref:i.onArrowChange,style:{position:`absolute`,left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:``,right:`0 0`,bottom:`center 0`,left:`100% 0`}[i.placedSide],transform:{top:`translateY(100%)`,right:`translateY(50%) rotate(90deg) translateX(-50%)`,bottom:`rotate(180deg)`,left:`translateY(50%) rotate(-90deg) translateX(50%)`}[i.placedSide],visibility:i.shouldHideArrow?`hidden`:void 0},children:(0,G.jsx)(Xn,{...r,ref:t,style:{...r.style,display:`block`}})})});fr.displayName=ur;function pr(e){return e!==null}var mr=e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=hr(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}});function hr(e){let[t,n=`center`]=e.split(`-`);return[t,n]}var gr=rr,_r=ar,vr=lr,yr=fr,br=Object.freeze({position:`absolute`,border:0,width:1,height:1,padding:0,margin:-1,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,whiteSpace:`nowrap`,wordWrap:`normal`}),xr=`VisuallyHidden`,Sr=W.forwardRef((e,t)=>(0,G.jsx)(w.span,{...e,ref:t,style:{...br,...e.style}}));Sr.displayName=xr;var Cr=Sr,[wr,Tr]=o(`Tooltip`,[er]),Er=er(),Dr=`TooltipProvider`,Or=700,kr=`tooltip.open`,[Ar,jr]=wr(Dr),Mr=e=>{let{__scopeTooltip:t,delayDuration:n=Or,skipDelayDuration:r=300,disableHoverableContent:i=!1,children:a}=e,o=W.useRef(!0),s=W.useRef(!1),c=W.useRef(0);return W.useEffect(()=>{let e=c.current;return()=>window.clearTimeout(e)},[]),(0,G.jsx)(Ar,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:W.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:W.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,r)},[r]),isPointerInTransitRef:s,onPointerInTransitChange:W.useCallback(e=>{s.current=e},[]),disableHoverableContent:i,children:a})};Mr.displayName=Dr;var Nr=`Tooltip`,[Pr,Fr]=wr(Nr),Ir=e=>{let{__scopeTooltip:t,children:n,open:r,defaultOpen:i,onOpenChange:a,disableHoverableContent:o,delayDuration:s}=e,c=jr(Nr,e.__scopeTooltip),l=Er(t),[u,d]=W.useState(null),f=k(),p=W.useRef(0),m=o??c.disableHoverableContent,h=s??c.delayDuration,g=W.useRef(!1),[_,v]=S({prop:r,defaultProp:i??!1,onChange:e=>{e?(c.onOpen(),document.dispatchEvent(new CustomEvent(kr))):c.onClose(),a?.(e)},caller:Nr}),y=W.useMemo(()=>_?g.current?`delayed-open`:`instant-open`:`closed`,[_]),b=W.useCallback(()=>{window.clearTimeout(p.current),p.current=0,g.current=!1,v(!0)},[v]),x=W.useCallback(()=>{window.clearTimeout(p.current),p.current=0,v(!1)},[v]),C=W.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{g.current=!0,v(!0),p.current=0},h)},[h,v]);return W.useEffect(()=>()=>{p.current&&=(window.clearTimeout(p.current),0)},[]),(0,G.jsx)(gr,{...l,children:(0,G.jsx)(Pr,{scope:t,contentId:f,open:_,stateAttribute:y,trigger:u,onTriggerChange:d,onTriggerEnter:W.useCallback(()=>{c.isOpenDelayedRef.current?C():b()},[c.isOpenDelayedRef,C,b]),onTriggerLeave:W.useCallback(()=>{m?x():(window.clearTimeout(p.current),p.current=0)},[x,m]),onOpen:b,onClose:x,disableHoverableContent:m,children:n})})};Ir.displayName=Nr;var Lr=`TooltipTrigger`,Rr=W.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=Fr(Lr,n),a=jr(Lr,n),o=Er(n),s=y(t,W.useRef(null),i.onTriggerChange),c=W.useRef(!1),l=W.useRef(!1),u=W.useCallback(()=>c.current=!1,[]);return W.useEffect(()=>()=>document.removeEventListener(`pointerup`,u),[u]),(0,G.jsx)(_r,{asChild:!0,...o,children:(0,G.jsx)(w.button,{"aria-describedby":i.open?i.contentId:void 0,"data-state":i.stateAttribute,...r,ref:s,onPointerMove:j(e.onPointerMove,e=>{e.pointerType!==`touch`&&!l.current&&!a.isPointerInTransitRef.current&&(i.onTriggerEnter(),l.current=!0)}),onPointerLeave:j(e.onPointerLeave,()=>{i.onTriggerLeave(),l.current=!1}),onPointerDown:j(e.onPointerDown,()=>{i.open&&i.onClose(),c.current=!0,document.addEventListener(`pointerup`,u,{once:!0})}),onFocus:j(e.onFocus,()=>{c.current||i.onOpen()}),onBlur:j(e.onBlur,i.onClose),onClick:j(e.onClick,i.onClose)})})});Rr.displayName=Lr;var zr=`TooltipPortal`,[Br,Vr]=wr(zr,{forceMount:void 0}),Hr=e=>{let{__scopeTooltip:t,forceMount:n,children:r,container:i}=e,a=Fr(zr,t);return(0,G.jsx)(Br,{scope:t,forceMount:n,children:(0,G.jsx)(f,{present:n||a.open,children:(0,G.jsx)(u,{asChild:!0,container:i,children:r})})})};Hr.displayName=zr;var Ur=`TooltipContent`,Wr=W.forwardRef((e,t)=>{let n=Vr(Ur,e.__scopeTooltip),{forceMount:r=n.forceMount,side:i=`top`,...a}=e,o=Fr(Ur,e.__scopeTooltip);return(0,G.jsx)(f,{present:r||o.open,children:o.disableHoverableContent?(0,G.jsx)(Yr,{side:i,...a,ref:t}):(0,G.jsx)(Gr,{side:i,...a,ref:t})})}),Gr=W.forwardRef((e,t)=>{let n=Fr(Ur,e.__scopeTooltip),r=jr(Ur,e.__scopeTooltip),i=W.useRef(null),a=y(t,i),[o,s]=W.useState(null),{trigger:c,onClose:l}=n,u=i.current,{onPointerInTransitChange:d}=r,f=W.useCallback(()=>{s(null),d(!1)},[d]),p=W.useCallback((e,t)=>{let n=e.currentTarget,r={x:e.clientX,y:e.clientY},i=$r(r,Qr(r,n.getBoundingClientRect())),a=ei(t.getBoundingClientRect());s(ni([...i,...a])),d(!0)},[d]);return W.useEffect(()=>()=>f(),[f]),W.useEffect(()=>{if(c&&u){let e=e=>p(e,u),t=e=>p(e,c);return c.addEventListener(`pointerleave`,e),u.addEventListener(`pointerleave`,t),()=>{c.removeEventListener(`pointerleave`,e),u.removeEventListener(`pointerleave`,t)}}},[c,u,p,f]),W.useEffect(()=>{if(o){let e=e=>{let t=e.target,n={x:e.clientX,y:e.clientY},r=c?.contains(t)||u?.contains(t),i=!ti(n,o);r?f():i&&(f(),l())};return document.addEventListener(`pointermove`,e),()=>document.removeEventListener(`pointermove`,e)}},[c,u,o,l,f]),(0,G.jsx)(Yr,{...e,ref:a})}),[Kr,qr]=wr(Nr,{isInside:!1}),Jr=_(`TooltipContent`),Yr=W.forwardRef((e,t)=>{let{__scopeTooltip:n,children:r,"aria-label":i,onEscapeKeyDown:o,onPointerDownOutside:s,...c}=e,l=Fr(Ur,n),u=Er(n),{onClose:d}=l;return W.useEffect(()=>(document.addEventListener(kr,d),()=>document.removeEventListener(kr,d)),[d]),W.useEffect(()=>{if(l.trigger){let e=e=>{e.target?.contains(l.trigger)&&d()};return window.addEventListener(`scroll`,e,{capture:!0}),()=>window.removeEventListener(`scroll`,e,{capture:!0})}},[l.trigger,d]),(0,G.jsx)(a,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:d,children:(0,G.jsxs)(vr,{"data-state":l.stateAttribute,...u,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-tooltip-content-available-width":`var(--radix-popper-available-width)`,"--radix-tooltip-content-available-height":`var(--radix-popper-available-height)`,"--radix-tooltip-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-tooltip-trigger-height":`var(--radix-popper-anchor-height)`},children:[(0,G.jsx)(Jr,{children:r}),(0,G.jsx)(Kr,{scope:n,isInside:!0,children:(0,G.jsx)(Cr,{id:l.contentId,role:`tooltip`,children:i||r})})]})})});Wr.displayName=Ur;var Xr=`TooltipArrow`,Zr=W.forwardRef((e,t)=>{let{__scopeTooltip:n,...r}=e,i=Er(n);return qr(Xr,n).isInside?null:(0,G.jsx)(yr,{...i,...r,ref:t})});Zr.displayName=Xr;function Qr(e,t){let n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),i=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,r,i,a)){case a:return`left`;case i:return`right`;case n:return`top`;case r:return`bottom`;default:throw Error(`unreachable`)}}function $r(e,t,n=5){let r=[];switch(t){case`top`:r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case`bottom`:r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case`left`:r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case`right`:r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function ei(e){let{top:t,right:n,bottom:r,left:i}=e;return[{x:i,y:t},{x:n,y:t},{x:n,y:r},{x:i,y:r}]}function ti(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function ni(e){let t=e.slice();return t.sort((e,t)=>e.x<t.x?-1:e.x>t.x?1:e.y<t.y?-1:+(e.y>t.y)),ri(t)}function ri(e){if(e.length<=1)return e.slice();let t=[];for(let n=0;n<e.length;n++){let r=e[n];for(;t.length>=2;){let e=t[t.length-1],n=t[t.length-2];if((e.x-n.x)*(r.y-n.y)>=(e.y-n.y)*(r.x-n.x))t.pop();else break}t.push(r)}t.pop();let n=[];for(let t=e.length-1;t>=0;t--){let r=e[t];for(;n.length>=2;){let e=n[n.length-1],t=n[n.length-2];if((e.x-t.x)*(r.y-t.y)>=(e.y-t.y)*(r.x-t.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var ii=Mr,ai=Ir,oi=Rr,si=Wr;function ci(e){let t=e+`CollectionProvider`,[n,r]=o(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),s=e=>{let{scope:t,children:n}=e,r=W.useRef(null),a=W.useRef(new Map).current;return(0,G.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})};s.displayName=t;let c=e+`CollectionSlot`,l=p(c),u=W.forwardRef((e,t)=>{let{scope:n,children:r}=e;return(0,G.jsx)(l,{ref:y(t,a(c,n).collectionRef),children:r})});u.displayName=c;let d=e+`CollectionItemSlot`,f=`data-radix-collection-item`,m=p(d),h=W.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=W.useRef(null),s=y(t,o),c=a(d,n);return W.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,G.jsx)(m,{[f]:``,ref:s,children:r})});h.displayName=d;function g(t){let n=a(e+`CollectionConsumer`,t);return W.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${f}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:s,Slot:u,ItemSlot:h},g,r]}var li=W.createContext(void 0);function ui(e){let t=W.useContext(li);return e||t||`ltr`}function di(e,[t,n]){return Math.min(n,Math.max(t,e))}function fi(e,t){return W.useReducer((e,n)=>t[e][n]??e,e)}var pi=`ScrollArea`,[mi,hi]=o(pi),[gi,_i]=mi(pi),vi=W.forwardRef((e,t)=>{let{__scopeScrollArea:n,type:r=`hover`,dir:i,scrollHideDelay:a=600,...o}=e,[s,c]=W.useState(null),[l,u]=W.useState(null),[d,f]=W.useState(null),[p,m]=W.useState(null),[h,g]=W.useState(null),[_,v]=W.useState(0),[b,x]=W.useState(0),[S,C]=W.useState(!1),[T,E]=W.useState(!1),ee=y(t,e=>c(e)),D=ui(i);return(0,G.jsx)(gi,{scope:n,type:r,dir:D,scrollHideDelay:a,scrollArea:s,viewport:l,onViewportChange:u,content:d,onContentChange:f,scrollbarX:p,onScrollbarXChange:m,scrollbarXEnabled:S,onScrollbarXEnabledChange:C,scrollbarY:h,onScrollbarYChange:g,scrollbarYEnabled:T,onScrollbarYEnabledChange:E,onCornerWidthChange:v,onCornerHeightChange:x,children:(0,G.jsx)(w.div,{dir:D,...o,ref:ee,style:{position:`relative`,"--radix-scroll-area-corner-width":_+`px`,"--radix-scroll-area-corner-height":b+`px`,...e.style}})})});vi.displayName=pi;var yi=`ScrollAreaViewport`,bi=W.forwardRef((e,t)=>{let{__scopeScrollArea:n,children:r,nonce:i,...a}=e,o=_i(yi,n),s=y(t,W.useRef(null),o.onViewportChange);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}`},nonce:i}),(0,G.jsx)(w.div,{"data-radix-scroll-area-viewport":``,...a,ref:s,style:{overflowX:o.scrollbarXEnabled?`scroll`:`hidden`,overflowY:o.scrollbarYEnabled?`scroll`:`hidden`,...e.style},children:(0,G.jsx)(`div`,{ref:o.onContentChange,style:{minWidth:`100%`,display:`table`},children:r})})]})});bi.displayName=yi;var xi=`ScrollAreaScrollbar`,Si=W.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=_i(xi,e.__scopeScrollArea),{onScrollbarXEnabledChange:a,onScrollbarYEnabledChange:o}=i,s=e.orientation===`horizontal`;return W.useEffect(()=>(s?a(!0):o(!0),()=>{s?a(!1):o(!1)}),[s,a,o]),i.type===`hover`?(0,G.jsx)(Ci,{...r,ref:t,forceMount:n}):i.type===`scroll`?(0,G.jsx)(wi,{...r,ref:t,forceMount:n}):i.type===`auto`?(0,G.jsx)(Ti,{...r,ref:t,forceMount:n}):i.type===`always`?(0,G.jsx)(Ei,{...r,ref:t}):null});Si.displayName=xi;var Ci=W.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=_i(xi,e.__scopeScrollArea),[a,o]=W.useState(!1);return W.useEffect(()=>{let e=i.scrollArea,t=0;if(e){let n=()=>{window.clearTimeout(t),o(!0)},r=()=>{t=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return e.addEventListener(`pointerenter`,n),e.addEventListener(`pointerleave`,r),()=>{window.clearTimeout(t),e.removeEventListener(`pointerenter`,n),e.removeEventListener(`pointerleave`,r)}}},[i.scrollArea,i.scrollHideDelay]),(0,G.jsx)(f,{present:n||a,children:(0,G.jsx)(Ti,{"data-state":a?`visible`:`hidden`,...r,ref:t})})}),wi=W.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=_i(xi,e.__scopeScrollArea),a=e.orientation===`horizontal`,o=Ki(()=>c(`SCROLL_END`),100),[s,c]=fi(`hidden`,{hidden:{SCROLL:`scrolling`},scrolling:{SCROLL_END:`idle`,POINTER_ENTER:`interacting`},interacting:{SCROLL:`interacting`,POINTER_LEAVE:`idle`},idle:{HIDE:`hidden`,SCROLL:`scrolling`,POINTER_ENTER:`interacting`}});return W.useEffect(()=>{if(s===`idle`){let e=window.setTimeout(()=>c(`HIDE`),i.scrollHideDelay);return()=>window.clearTimeout(e)}},[s,i.scrollHideDelay,c]),W.useEffect(()=>{let e=i.viewport,t=a?`scrollLeft`:`scrollTop`;if(e){let n=e[t],r=()=>{let r=e[t];n!==r&&(c(`SCROLL`),o()),n=r};return e.addEventListener(`scroll`,r),()=>e.removeEventListener(`scroll`,r)}},[i.viewport,a,c,o]),(0,G.jsx)(f,{present:n||s!==`hidden`,children:(0,G.jsx)(Ei,{"data-state":s===`hidden`?`hidden`:`visible`,...r,ref:t,onPointerEnter:j(e.onPointerEnter,()=>c(`POINTER_ENTER`)),onPointerLeave:j(e.onPointerLeave,()=>c(`POINTER_LEAVE`))})})}),Ti=W.forwardRef((e,t)=>{let n=_i(xi,e.__scopeScrollArea),{forceMount:r,...i}=e,[a,o]=W.useState(!1),s=e.orientation===`horizontal`,c=Ki(()=>{if(n.viewport){let e=n.viewport.offsetWidth<n.viewport.scrollWidth,t=n.viewport.offsetHeight<n.viewport.scrollHeight;o(s?e:t)}},10);return qi(n.viewport,c),qi(n.content,c),(0,G.jsx)(f,{present:r||a,children:(0,G.jsx)(Ei,{"data-state":a?`visible`:`hidden`,...i,ref:t})})}),Ei=W.forwardRef((e,t)=>{let{orientation:n=`vertical`,...r}=e,i=_i(xi,e.__scopeScrollArea),a=W.useRef(null),o=W.useRef(0),[s,c]=W.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),l=zi(s.viewport,s.content),u={...r,sizes:s,onSizesChange:c,hasThumb:l>0&&l<1,onThumbChange:e=>a.current=e,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:e=>o.current=e};function d(e,t){return Vi(e,o.current,s,t)}return n===`horizontal`?(0,G.jsx)(Di,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollLeft,t=Hi(e,s,i.dir);a.current.style.transform=`translate3d(${t}px, 0, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollLeft=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollLeft=d(e,i.dir))}}):n===`vertical`?(0,G.jsx)(Oi,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&a.current){let e=i.viewport.scrollTop,t=Hi(e,s);a.current.style.transform=`translate3d(0, ${t}px, 0)`}},onWheelScroll:e=>{i.viewport&&(i.viewport.scrollTop=e)},onDragScroll:e=>{i.viewport&&(i.viewport.scrollTop=d(e))}}):null}),Di=W.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=_i(xi,e.__scopeScrollArea),[o,s]=W.useState(),c=W.useRef(null),l=y(t,c,a.onScrollbarXChange);return W.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,G.jsx)(ji,{"data-orientation":`horizontal`,...i,ref:l,sizes:n,style:{bottom:0,left:a.dir===`rtl`?`var(--radix-scroll-area-corner-width)`:0,right:a.dir===`ltr`?`var(--radix-scroll-area-corner-width)`:0,"--radix-scroll-area-thumb-width":Bi(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.x),onDragScroll:t=>e.onDragScroll(t.x),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollLeft+t.deltaX;e.onWheelScroll(r),Wi(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollWidth,viewport:a.viewport.offsetWidth,scrollbar:{size:c.current.clientWidth,paddingStart:Ri(o.paddingLeft),paddingEnd:Ri(o.paddingRight)}})}})}),Oi=W.forwardRef((e,t)=>{let{sizes:n,onSizesChange:r,...i}=e,a=_i(xi,e.__scopeScrollArea),[o,s]=W.useState(),c=W.useRef(null),l=y(t,c,a.onScrollbarYChange);return W.useEffect(()=>{c.current&&s(getComputedStyle(c.current))},[c]),(0,G.jsx)(ji,{"data-orientation":`vertical`,...i,ref:l,sizes:n,style:{top:0,right:a.dir===`ltr`?0:void 0,left:a.dir===`rtl`?0:void 0,bottom:`var(--radix-scroll-area-corner-height)`,"--radix-scroll-area-thumb-height":Bi(n)+`px`,...e.style},onThumbPointerDown:t=>e.onThumbPointerDown(t.y),onDragScroll:t=>e.onDragScroll(t.y),onWheelScroll:(t,n)=>{if(a.viewport){let r=a.viewport.scrollTop+t.deltaY;e.onWheelScroll(r),Wi(r,n)&&t.preventDefault()}},onResize:()=>{c.current&&a.viewport&&o&&r({content:a.viewport.scrollHeight,viewport:a.viewport.offsetHeight,scrollbar:{size:c.current.clientHeight,paddingStart:Ri(o.paddingTop),paddingEnd:Ri(o.paddingBottom)}})}})}),[ki,Ai]=mi(xi),ji=W.forwardRef((e,t)=>{let{__scopeScrollArea:n,sizes:r,hasThumb:i,onThumbChange:a,onThumbPointerUp:o,onThumbPointerDown:s,onThumbPositionChange:c,onDragScroll:l,onWheelScroll:u,onResize:d,...f}=e,p=_i(xi,n),[m,h]=W.useState(null),g=y(t,e=>h(e)),_=W.useRef(null),v=W.useRef(``),b=p.viewport,x=r.content-r.viewport,S=C(u),T=C(c),E=Ki(d,10);function ee(e){_.current&&l({x:e.clientX-_.current.left,y:e.clientY-_.current.top})}return W.useEffect(()=>{let e=e=>{let t=e.target;m?.contains(t)&&S(e,x)};return document.addEventListener(`wheel`,e,{passive:!1}),()=>document.removeEventListener(`wheel`,e,{passive:!1})},[b,m,x,S]),W.useEffect(T,[r,T]),qi(m,E),qi(p.content,E),(0,G.jsx)(ki,{scope:n,scrollbar:m,hasThumb:i,onThumbChange:C(a),onThumbPointerUp:C(o),onThumbPositionChange:T,onThumbPointerDown:C(s),children:(0,G.jsx)(w.div,{...f,ref:g,style:{position:`absolute`,...f.style},onPointerDown:j(e.onPointerDown,e=>{e.button===0&&(e.target.setPointerCapture(e.pointerId),_.current=m.getBoundingClientRect(),v.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect=`none`,p.viewport&&(p.viewport.style.scrollBehavior=`auto`),ee(e))}),onPointerMove:j(e.onPointerMove,ee),onPointerUp:j(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),document.body.style.webkitUserSelect=v.current,p.viewport&&(p.viewport.style.scrollBehavior=``),_.current=null})})})}),Mi=`ScrollAreaThumb`,Ni=W.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Ai(Mi,e.__scopeScrollArea);return(0,G.jsx)(f,{present:n||i.hasThumb,children:(0,G.jsx)(Pi,{ref:t,...r})})}),Pi=W.forwardRef((e,t)=>{let{__scopeScrollArea:n,style:r,...i}=e,a=_i(Mi,n),o=Ai(Mi,n),{onThumbPositionChange:s}=o,c=y(t,e=>o.onThumbChange(e)),l=W.useRef(void 0),u=Ki(()=>{l.current&&=(l.current(),void 0)},100);return W.useEffect(()=>{let e=a.viewport;if(e){let t=()=>{u(),l.current||(l.current=Gi(e,s),s())};return s(),e.addEventListener(`scroll`,t),()=>e.removeEventListener(`scroll`,t)}},[a.viewport,u,s]),(0,G.jsx)(w.div,{"data-state":o.hasThumb?`visible`:`hidden`,...i,ref:c,style:{width:`var(--radix-scroll-area-thumb-width)`,height:`var(--radix-scroll-area-thumb-height)`,...r},onPointerDownCapture:j(e.onPointerDownCapture,e=>{let t=e.target.getBoundingClientRect(),n=e.clientX-t.left,r=e.clientY-t.top;o.onThumbPointerDown({x:n,y:r})}),onPointerUp:j(e.onPointerUp,o.onThumbPointerUp)})});Ni.displayName=Mi;var Fi=`ScrollAreaCorner`,Ii=W.forwardRef((e,t)=>{let n=_i(Fi,e.__scopeScrollArea),r=!!(n.scrollbarX&&n.scrollbarY);return n.type!==`scroll`&&r?(0,G.jsx)(Li,{...e,ref:t}):null});Ii.displayName=Fi;var Li=W.forwardRef((e,t)=>{let{__scopeScrollArea:n,...r}=e,i=_i(Fi,n),[a,o]=W.useState(0),[s,c]=W.useState(0),l=!!(a&&s);return qi(i.scrollbarX,()=>{let e=i.scrollbarX?.offsetHeight||0;i.onCornerHeightChange(e),c(e)}),qi(i.scrollbarY,()=>{let e=i.scrollbarY?.offsetWidth||0;i.onCornerWidthChange(e),o(e)}),l?(0,G.jsx)(w.div,{...r,ref:t,style:{width:a,height:s,position:`absolute`,right:i.dir===`ltr`?0:void 0,left:i.dir===`rtl`?0:void 0,bottom:0,...e.style}}):null});function Ri(e){return e?parseInt(e,10):0}function zi(e,t){let n=e/t;return isNaN(n)?0:n}function Bi(e){let t=zi(e.viewport,e.content),n=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,r=(e.scrollbar.size-n)*t;return Math.max(r,18)}function Vi(e,t,n,r=`ltr`){let i=Bi(n),a=i/2,o=t||a,s=i-o,c=n.scrollbar.paddingStart+o,l=n.scrollbar.size-n.scrollbar.paddingEnd-s,u=n.content-n.viewport,d=r===`ltr`?[0,u]:[u*-1,0];return Ui([c,l],d)(e)}function Hi(e,t,n=`ltr`){let r=Bi(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,a=t.scrollbar.size-i,o=t.content-t.viewport,s=a-r,c=di(e,n===`ltr`?[0,o]:[o*-1,0]);return Ui([0,o],[0,s])(c)}function Ui(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function Wi(e,t){return e>0&&e<t}var Gi=(e,t=()=>{})=>{let n={left:e.scrollLeft,top:e.scrollTop},r=0;return(function i(){let a={left:e.scrollLeft,top:e.scrollTop},o=n.left!==a.left,s=n.top!==a.top;(o||s)&&t(),n=a,r=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(r)};function Ki(e,t){let n=C(e),r=W.useRef(0);return W.useEffect(()=>()=>window.clearTimeout(r.current),[]),W.useCallback(()=>{window.clearTimeout(r.current),r.current=window.setTimeout(n,t)},[n,t])}function qi(e,t){let n=C(t);Ke(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}var Ji=vi,Yi=bi,Xi=Ii,Zi=`Label`,Qi=W.forwardRef((e,t)=>(0,G.jsx)(g.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));Qi.displayName=Zi;var $i=Qi,ea=`rovingFocusGroup.onEntryFocus`,ta={bubbles:!1,cancelable:!0},na=`RovingFocusGroup`,[ra,ia,aa]=ci(na),[oa,sa]=o(na,[aa]),[ca,la]=oa(na),ua=W.forwardRef((e,t)=>(0,G.jsx)(ra.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,G.jsx)(ra.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,G.jsx)(da,{...e,ref:t})})}));ua.displayName=na;var da=W.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:l,preventScrollOnEntryFocus:u=!1,...d}=e,f=W.useRef(null),p=y(t,f),m=ui(a),[h,g]=S({prop:o,defaultProp:s??null,onChange:c,caller:na}),[_,v]=W.useState(!1),b=C(l),x=ia(n),T=W.useRef(!1),[E,ee]=W.useState(0);return W.useEffect(()=>{let e=f.current;if(e)return e.addEventListener(ea,b),()=>e.removeEventListener(ea,b)},[b]),(0,G.jsx)(ca,{scope:n,orientation:r,dir:m,loop:i,currentTabStopId:h,onItemFocus:W.useCallback(e=>g(e),[g]),onItemShiftTab:W.useCallback(()=>v(!0),[]),onFocusableItemAdd:W.useCallback(()=>ee(e=>e+1),[]),onFocusableItemRemove:W.useCallback(()=>ee(e=>e-1),[]),children:(0,G.jsx)(w.div,{tabIndex:_||E===0?-1:0,"data-orientation":r,...d,ref:p,style:{outline:`none`,...e.style},onMouseDown:j(e.onMouseDown,()=>{T.current=!0}),onFocus:j(e.onFocus,e=>{let t=!T.current;if(e.target===e.currentTarget&&t&&!_){let t=new CustomEvent(ea,ta);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>e.focusable);_a([e.find(e=>e.active),e.find(e=>e.id===h),...e].filter(Boolean).map(e=>e.ref.current),u)}}T.current=!1}),onBlur:j(e.onBlur,()=>v(!1))})})}),fa=`RovingFocusGroupItem`,pa=W.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,children:o,...s}=e,c=k(),l=a||c,u=la(fa,n),d=u.currentTabStopId===l,f=ia(n),{onFocusableItemAdd:p,onFocusableItemRemove:m,currentTabStopId:h}=u;return W.useEffect(()=>{if(r)return p(),()=>m()},[r,p,m]),(0,G.jsx)(ra.ItemSlot,{scope:n,id:l,focusable:r,active:i,children:(0,G.jsx)(w.span,{tabIndex:d?0:-1,"data-orientation":u.orientation,...s,ref:t,onMouseDown:j(e.onMouseDown,e=>{r?u.onItemFocus(l):e.preventDefault()}),onFocus:j(e.onFocus,()=>u.onItemFocus(l)),onKeyDown:j(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){u.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=ga(e,u.orientation,u.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=f().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=u.loop?va(n,r+1):n.slice(r+1)}setTimeout(()=>_a(n))}}),children:typeof o==`function`?o({isCurrentTabStop:d,hasTabStop:h!=null}):o})})});pa.displayName=fa;var ma={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function ha(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function ga(e,t,n){let r=ha(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return ma[r]}function _a(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function va(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var ya=ua,ba=pa,xa=[`Enter`,` `],Sa=[`ArrowDown`,`PageUp`,`Home`],Ca=[`ArrowUp`,`PageDown`,`End`],wa=[...Sa,...Ca],Ta={ltr:[...xa,`ArrowRight`],rtl:[...xa,`ArrowLeft`]},Ea={ltr:[`ArrowLeft`],rtl:[`ArrowRight`]},Da=`Menu`,[Oa,ka,Aa]=ci(Da),[ja,Ma]=o(Da,[Aa,er,sa]),Na=er(),Pa=sa(),[Fa,Ia]=ja(Da),[La,Ra]=ja(Da),za=e=>{let{__scopeMenu:t,open:n=!1,children:r,dir:i,onOpenChange:a,modal:o=!0}=e,s=Na(t),[c,l]=W.useState(null),u=W.useRef(!1),d=C(a),f=ui(i);return W.useEffect(()=>{let e=()=>{u.current=!0,document.addEventListener(`pointerdown`,t,{capture:!0,once:!0}),document.addEventListener(`pointermove`,t,{capture:!0,once:!0})},t=()=>u.current=!1;return document.addEventListener(`keydown`,e,{capture:!0}),()=>{document.removeEventListener(`keydown`,e,{capture:!0}),document.removeEventListener(`pointerdown`,t,{capture:!0}),document.removeEventListener(`pointermove`,t,{capture:!0})}},[]),(0,G.jsx)(gr,{...s,children:(0,G.jsx)(Fa,{scope:t,open:n,onOpenChange:d,content:c,onContentChange:l,children:(0,G.jsx)(La,{scope:t,onClose:W.useCallback(()=>d(!1),[d]),isUsingKeyboardRef:u,dir:f,modal:o,children:r})})})};za.displayName=Da;var Ba=`MenuAnchor`,Va=W.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=Na(n);return(0,G.jsx)(_r,{...i,...r,ref:t})});Va.displayName=Ba;var Ha=`MenuPortal`,[Ua,Wa]=ja(Ha,{forceMount:void 0}),Ga=e=>{let{__scopeMenu:t,forceMount:n,children:r,container:i}=e,a=Ia(Ha,t);return(0,G.jsx)(Ua,{scope:t,forceMount:n,children:(0,G.jsx)(f,{present:n||a.open,children:(0,G.jsx)(u,{asChild:!0,container:i,children:r})})})};Ga.displayName=Ha;var Ka=`MenuContent`,[qa,Ja]=ja(Ka),Ya=W.forwardRef((e,t)=>{let n=Wa(Ka,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Ia(Ka,e.__scopeMenu),o=Ra(Ka,e.__scopeMenu);return(0,G.jsx)(Oa.Provider,{scope:e.__scopeMenu,children:(0,G.jsx)(f,{present:r||a.open,children:(0,G.jsx)(Oa.Slot,{scope:e.__scopeMenu,children:o.modal?(0,G.jsx)(Xa,{...i,ref:t}):(0,G.jsx)(Za,{...i,ref:t})})})})}),Xa=W.forwardRef((e,t)=>{let n=Ia(Ka,e.__scopeMenu),r=W.useRef(null),i=y(t,r);return W.useEffect(()=>{let e=r.current;if(e)return c(e)},[]),(0,G.jsx)($a,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:n.open,disableOutsideScroll:!0,onFocusOutside:j(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1}),onDismiss:()=>n.onOpenChange(!1)})}),Za=W.forwardRef((e,t)=>{let n=Ia(Ka,e.__scopeMenu);return(0,G.jsx)($a,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,onDismiss:()=>n.onOpenChange(!1)})}),Qa=p(`MenuContent.ScrollLock`),$a=W.forwardRef((e,t)=>{let{__scopeMenu:n,loop:r=!1,trapFocus:i,onOpenAutoFocus:o,onCloseAutoFocus:s,disableOutsidePointerEvents:c,onEntryFocus:l,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:m,disableOutsideScroll:h,...g}=e,_=Ia(Ka,n),v=Ra(Ka,n),b=Na(n),x=Pa(n),S=ka(n),[C,w]=W.useState(null),T=W.useRef(null),ee=y(t,T,_.onContentChange),D=W.useRef(0),O=W.useRef(``),k=W.useRef(0),A=W.useRef(null),te=W.useRef(`right`),ne=W.useRef(0),ie=h?Ve:W.Fragment,M=h?{as:Qa,allowPinchZoom:!0}:void 0,ae=e=>{let t=O.current+e,n=S().filter(e=>!e.disabled),r=document.activeElement,i=n.find(e=>e.ref.current===r)?.textValue,a=Ro(n.map(e=>e.textValue),t,i),o=n.find(e=>e.textValue===a)?.ref.current;(function e(t){O.current=t,window.clearTimeout(D.current),t!==``&&(D.current=window.setTimeout(()=>e(``),1e3))})(t),o&&setTimeout(()=>o.focus())};W.useEffect(()=>()=>window.clearTimeout(D.current),[]),re();let N=W.useCallback(e=>te.current===A.current?.side&&Bo(e,A.current?.area),[]);return(0,G.jsx)(qa,{scope:n,searchRef:O,onItemEnter:W.useCallback(e=>{N(e)&&e.preventDefault()},[N]),onItemLeave:W.useCallback(e=>{N(e)||(T.current?.focus(),w(null))},[N]),onTriggerLeave:W.useCallback(e=>{N(e)&&e.preventDefault()},[N]),pointerGraceTimerRef:k,onPointerGraceIntentChange:W.useCallback(e=>{A.current=e},[]),children:(0,G.jsx)(ie,{...M,children:(0,G.jsx)(E,{asChild:!0,trapped:i,onMountAutoFocus:j(o,e=>{e.preventDefault(),T.current?.focus({preventScroll:!0})}),onUnmountAutoFocus:s,children:(0,G.jsx)(a,{asChild:!0,disableOutsidePointerEvents:c,onEscapeKeyDown:u,onPointerDownOutside:d,onFocusOutside:f,onInteractOutside:p,onDismiss:m,children:(0,G.jsx)(ya,{asChild:!0,...x,dir:v.dir,orientation:`vertical`,loop:r,currentTabStopId:C,onCurrentTabStopIdChange:w,onEntryFocus:j(l,e=>{v.isUsingKeyboardRef.current||e.preventDefault()}),preventScrollOnEntryFocus:!0,children:(0,G.jsx)(vr,{role:`menu`,"aria-orientation":`vertical`,"data-state":No(_.open),"data-radix-menu-content":``,dir:v.dir,...b,...g,ref:ee,style:{outline:`none`,...g.style},onKeyDown:j(g.onKeyDown,e=>{let t=e.target.closest(`[data-radix-menu-content]`)===e.currentTarget,n=e.ctrlKey||e.altKey||e.metaKey,r=e.key.length===1;t&&(e.key===`Tab`&&e.preventDefault(),!n&&r&&ae(e.key));let i=T.current;if(e.target!==i||!wa.includes(e.key))return;e.preventDefault();let a=S().filter(e=>!e.disabled).map(e=>e.ref.current);Ca.includes(e.key)&&a.reverse(),Io(a)}),onBlur:j(e.onBlur,e=>{e.currentTarget.contains(e.target)||(window.clearTimeout(D.current),O.current=``)}),onPointerMove:j(e.onPointerMove,Vo(e=>{let t=e.target,n=ne.current!==e.clientX;e.currentTarget.contains(t)&&n&&(te.current=e.clientX>ne.current?`right`:`left`,ne.current=e.clientX)}))})})})})})})});Ya.displayName=Ka;var eo=`MenuGroup`,to=W.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,G.jsx)(w.div,{role:`group`,...r,ref:t})});to.displayName=eo;var no=`MenuLabel`,ro=W.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,G.jsx)(w.div,{...r,ref:t})});ro.displayName=no;var io=`MenuItem`,ao=`menu.itemSelect`,oo=W.forwardRef((e,t)=>{let{disabled:n=!1,onSelect:r,...i}=e,a=W.useRef(null),o=Ra(io,e.__scopeMenu),s=Ja(io,e.__scopeMenu),c=y(t,a),l=W.useRef(!1),u=()=>{let e=a.current;if(!n&&e){let t=new CustomEvent(ao,{bubbles:!0,cancelable:!0});e.addEventListener(ao,e=>r?.(e),{once:!0}),ee(e,t),t.defaultPrevented?l.current=!1:o.onClose()}};return(0,G.jsx)(so,{...i,ref:c,disabled:n,onClick:j(e.onClick,u),onPointerDown:t=>{e.onPointerDown?.(t),l.current=!0},onPointerUp:j(e.onPointerUp,e=>{l.current||e.currentTarget?.click()}),onKeyDown:j(e.onKeyDown,e=>{let t=s.searchRef.current!==``;n||t&&e.key===` `||xa.includes(e.key)&&(e.currentTarget.click(),e.preventDefault())})})});oo.displayName=io;var so=W.forwardRef((e,t)=>{let{__scopeMenu:n,disabled:r=!1,textValue:i,...a}=e,o=Ja(io,n),s=Pa(n),c=W.useRef(null),l=y(t,c),[u,d]=W.useState(!1),[f,p]=W.useState(``);return W.useEffect(()=>{let e=c.current;e&&p((e.textContent??``).trim())},[a.children]),(0,G.jsx)(Oa.ItemSlot,{scope:n,disabled:r,textValue:i??f,children:(0,G.jsx)(ba,{asChild:!0,...s,focusable:!r,children:(0,G.jsx)(w.div,{role:`menuitem`,"data-highlighted":u?``:void 0,"aria-disabled":r||void 0,"data-disabled":r?``:void 0,...a,ref:l,onPointerMove:j(e.onPointerMove,Vo(e=>{r?o.onItemLeave(e):(o.onItemEnter(e),e.defaultPrevented||e.currentTarget.focus({preventScroll:!0}))})),onPointerLeave:j(e.onPointerLeave,Vo(e=>o.onItemLeave(e))),onFocus:j(e.onFocus,()=>d(!0)),onBlur:j(e.onBlur,()=>d(!1))})})})}),co=`MenuCheckboxItem`,lo=W.forwardRef((e,t)=>{let{checked:n=!1,onCheckedChange:r,...i}=e;return(0,G.jsx)(vo,{scope:e.__scopeMenu,checked:n,children:(0,G.jsx)(oo,{role:`menuitemcheckbox`,"aria-checked":Po(n)?`mixed`:n,...i,ref:t,"data-state":Fo(n),onSelect:j(i.onSelect,()=>r?.(Po(n)?!0:!n),{checkForDefaultPrevented:!1})})})});lo.displayName=co;var uo=`MenuRadioGroup`,[fo,po]=ja(uo,{value:void 0,onValueChange:()=>{}}),mo=W.forwardRef((e,t)=>{let{value:n,onValueChange:r,...i}=e,a=C(r);return(0,G.jsx)(fo,{scope:e.__scopeMenu,value:n,onValueChange:a,children:(0,G.jsx)(to,{...i,ref:t})})});mo.displayName=uo;var ho=`MenuRadioItem`,go=W.forwardRef((e,t)=>{let{value:n,...r}=e,i=po(ho,e.__scopeMenu),a=n===i.value;return(0,G.jsx)(vo,{scope:e.__scopeMenu,checked:a,children:(0,G.jsx)(oo,{role:`menuitemradio`,"aria-checked":a,...r,ref:t,"data-state":Fo(a),onSelect:j(r.onSelect,()=>i.onValueChange?.(n),{checkForDefaultPrevented:!1})})})});go.displayName=ho;var _o=`MenuItemIndicator`,[vo,yo]=ja(_o,{checked:!1}),bo=W.forwardRef((e,t)=>{let{__scopeMenu:n,forceMount:r,...i}=e,a=yo(_o,n);return(0,G.jsx)(f,{present:r||Po(a.checked)||a.checked===!0,children:(0,G.jsx)(w.span,{...i,ref:t,"data-state":Fo(a.checked)})})});bo.displayName=_o;var xo=`MenuSeparator`,So=W.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e;return(0,G.jsx)(w.div,{role:`separator`,"aria-orientation":`horizontal`,...r,ref:t})});So.displayName=xo;var Co=`MenuArrow`,wo=W.forwardRef((e,t)=>{let{__scopeMenu:n,...r}=e,i=Na(n);return(0,G.jsx)(yr,{...i,...r,ref:t})});wo.displayName=Co;var To=`MenuSub`,[Eo,Do]=ja(To),Oo=e=>{let{__scopeMenu:t,children:n,open:r=!1,onOpenChange:i}=e,a=Ia(To,t),o=Na(t),[s,c]=W.useState(null),[l,u]=W.useState(null),d=C(i);return W.useEffect(()=>(a.open===!1&&d(!1),()=>d(!1)),[a.open,d]),(0,G.jsx)(gr,{...o,children:(0,G.jsx)(Fa,{scope:t,open:r,onOpenChange:d,content:l,onContentChange:u,children:(0,G.jsx)(Eo,{scope:t,contentId:k(),triggerId:k(),trigger:s,onTriggerChange:c,children:n})})})};Oo.displayName=To;var ko=`MenuSubTrigger`,Ao=W.forwardRef((e,t)=>{let n=Ia(ko,e.__scopeMenu),r=Ra(ko,e.__scopeMenu),i=Do(ko,e.__scopeMenu),a=Ja(ko,e.__scopeMenu),o=W.useRef(null),{pointerGraceTimerRef:s,onPointerGraceIntentChange:c}=a,l={__scopeMenu:e.__scopeMenu},u=W.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=null},[]);return W.useEffect(()=>u,[u]),W.useEffect(()=>{let e=s.current;return()=>{window.clearTimeout(e),c(null)}},[s,c]),(0,G.jsx)(Va,{asChild:!0,...l,children:(0,G.jsx)(so,{id:i.triggerId,"aria-haspopup":`menu`,"aria-expanded":n.open,"aria-controls":i.contentId,"data-state":No(n.open),...e,ref:Me(t,i.onTriggerChange),onClick:t=>{e.onClick?.(t),!(e.disabled||t.defaultPrevented)&&(t.currentTarget.focus(),n.open||n.onOpenChange(!0))},onPointerMove:j(e.onPointerMove,Vo(t=>{a.onItemEnter(t),!t.defaultPrevented&&!e.disabled&&!n.open&&!o.current&&(a.onPointerGraceIntentChange(null),o.current=window.setTimeout(()=>{n.onOpenChange(!0),u()},100))})),onPointerLeave:j(e.onPointerLeave,Vo(e=>{u();let t=n.content?.getBoundingClientRect();if(t){let r=n.content?.dataset.side,i=r===`right`,o=i?-5:5,c=t[i?`left`:`right`],l=t[i?`right`:`left`];a.onPointerGraceIntentChange({area:[{x:e.clientX+o,y:e.clientY},{x:c,y:t.top},{x:l,y:t.top},{x:l,y:t.bottom},{x:c,y:t.bottom}],side:r}),window.clearTimeout(s.current),s.current=window.setTimeout(()=>a.onPointerGraceIntentChange(null),300)}else{if(a.onTriggerLeave(e),e.defaultPrevented)return;a.onPointerGraceIntentChange(null)}})),onKeyDown:j(e.onKeyDown,t=>{let i=a.searchRef.current!==``;e.disabled||i&&t.key===` `||Ta[r.dir].includes(t.key)&&(n.onOpenChange(!0),n.content?.focus(),t.preventDefault())})})})});Ao.displayName=ko;var jo=`MenuSubContent`,Mo=W.forwardRef((e,t)=>{let n=Wa(Ka,e.__scopeMenu),{forceMount:r=n.forceMount,...i}=e,a=Ia(Ka,e.__scopeMenu),o=Ra(Ka,e.__scopeMenu),s=Do(jo,e.__scopeMenu),c=W.useRef(null),l=y(t,c);return(0,G.jsx)(Oa.Provider,{scope:e.__scopeMenu,children:(0,G.jsx)(f,{present:r||a.open,children:(0,G.jsx)(Oa.Slot,{scope:e.__scopeMenu,children:(0,G.jsx)($a,{id:s.contentId,"aria-labelledby":s.triggerId,...i,ref:l,align:`start`,side:o.dir===`rtl`?`left`:`right`,disableOutsidePointerEvents:!1,disableOutsideScroll:!1,trapFocus:!1,onOpenAutoFocus:e=>{o.isUsingKeyboardRef.current&&c.current?.focus(),e.preventDefault()},onCloseAutoFocus:e=>e.preventDefault(),onFocusOutside:j(e.onFocusOutside,e=>{e.target!==s.trigger&&a.onOpenChange(!1)}),onEscapeKeyDown:j(e.onEscapeKeyDown,e=>{o.onClose(),e.preventDefault()}),onKeyDown:j(e.onKeyDown,e=>{let t=e.currentTarget.contains(e.target),n=Ea[o.dir].includes(e.key);t&&n&&(a.onOpenChange(!1),s.trigger?.focus(),e.preventDefault())})})})})})});Mo.displayName=jo;function No(e){return e?`open`:`closed`}function Po(e){return e===`indeterminate`}function Fo(e){return Po(e)?`indeterminate`:e?`checked`:`unchecked`}function Io(e){let t=document.activeElement;for(let n of e)if(n===t||(n.focus(),document.activeElement!==t))return}function Lo(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Ro(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Lo(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function zo(e,t){let{x:n,y:r}=e,i=!1;for(let e=0,a=t.length-1;e<t.length;a=e++){let o=t[e],s=t[a],c=o.x,l=o.y,u=s.x,d=s.y;l>r!=d>r&&n<(u-c)*(r-l)/(d-l)+c&&(i=!i)}return i}function Bo(e,t){return t?zo({x:e.clientX,y:e.clientY},t):!1}function Vo(e){return t=>t.pointerType===`mouse`?e(t):void 0}var Ho=za,Uo=Va,Wo=Ga,Go=Ya,Ko=to,qo=ro,Jo=oo,Yo=lo,Xo=mo,Zo=go,Qo=bo,$o=So,es=wo,ts=Oo,ns=Ao,rs=Mo,is=`DropdownMenu`,[as,os]=o(is,[Ma]),ss=Ma(),[cs,ls]=as(is),us=e=>{let{__scopeDropdownMenu:t,children:n,dir:r,open:i,defaultOpen:a,onOpenChange:o,modal:s=!0}=e,c=ss(t),l=W.useRef(null),[u,d]=S({prop:i,defaultProp:a??!1,onChange:o,caller:is});return(0,G.jsx)(cs,{scope:t,triggerId:k(),triggerRef:l,contentId:k(),open:u,onOpenChange:d,onOpenToggle:W.useCallback(()=>d(e=>!e),[d]),modal:s,children:(0,G.jsx)(Ho,{...c,open:u,onOpenChange:d,dir:r,modal:s,children:n})})};us.displayName=is;var ds=`DropdownMenuTrigger`,fs=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,disabled:r=!1,...i}=e,a=ls(ds,n),o=ss(n);return(0,G.jsx)(Uo,{asChild:!0,...o,children:(0,G.jsx)(w.button,{type:`button`,id:a.triggerId,"aria-haspopup":`menu`,"aria-expanded":a.open,"aria-controls":a.open?a.contentId:void 0,"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:Me(t,a.triggerRef),onPointerDown:j(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(a.onOpenToggle(),a.open||e.preventDefault())}),onKeyDown:j(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&a.onOpenToggle(),e.key===`ArrowDown`&&a.onOpenChange(!0),[`Enter`,` `,`ArrowDown`].includes(e.key)&&e.preventDefault())})})})});fs.displayName=ds;var ps=`DropdownMenuPortal`,ms=e=>{let{__scopeDropdownMenu:t,...n}=e,r=ss(t);return(0,G.jsx)(Wo,{...r,...n})};ms.displayName=ps;var hs=`DropdownMenuContent`,gs=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ls(hs,n),a=ss(n),o=W.useRef(!1);return(0,G.jsx)(Go,{id:i.contentId,"aria-labelledby":i.triggerId,...a,...r,ref:t,onCloseAutoFocus:j(e.onCloseAutoFocus,e=>{o.current||i.triggerRef.current?.focus(),o.current=!1,e.preventDefault()}),onInteractOutside:j(e.onInteractOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0,r=t.button===2||n;(!i.modal||r)&&(o.current=!0)}),style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});gs.displayName=hs;var _s=`DropdownMenuGroup`,vs=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ss(n);return(0,G.jsx)(Ko,{...i,...r,ref:t})});vs.displayName=_s;var ys=`DropdownMenuLabel`,bs=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ss(n);return(0,G.jsx)(qo,{...i,...r,ref:t})});bs.displayName=ys;var xs=`DropdownMenuItem`,Ss=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ss(n);return(0,G.jsx)(Jo,{...i,...r,ref:t})});Ss.displayName=xs;var Cs=`DropdownMenuCheckboxItem`,ws=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ss(n);return(0,G.jsx)(Yo,{...i,...r,ref:t})});ws.displayName=Cs;var Ts=`DropdownMenuRadioGroup`,Es=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ss(n);return(0,G.jsx)(Xo,{...i,...r,ref:t})});Es.displayName=Ts;var Ds=`DropdownMenuRadioItem`,Os=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ss(n);return(0,G.jsx)(Zo,{...i,...r,ref:t})});Os.displayName=Ds;var ks=`DropdownMenuItemIndicator`,As=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ss(n);return(0,G.jsx)(Qo,{...i,...r,ref:t})});As.displayName=ks;var js=`DropdownMenuSeparator`,Ms=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ss(n);return(0,G.jsx)($o,{...i,...r,ref:t})});Ms.displayName=js;var Ns=`DropdownMenuArrow`,Ps=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ss(n);return(0,G.jsx)(es,{...i,...r,ref:t})});Ps.displayName=Ns;var Fs=e=>{let{__scopeDropdownMenu:t,children:n,open:r,onOpenChange:i,defaultOpen:a}=e,o=ss(t),[s,c]=S({prop:r,defaultProp:a??!1,onChange:i,caller:`DropdownMenuSub`});return(0,G.jsx)(ts,{...o,open:s,onOpenChange:c,children:n})},Is=`DropdownMenuSubTrigger`,Ls=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ss(n);return(0,G.jsx)(ns,{...i,...r,ref:t})});Ls.displayName=Is;var Rs=`DropdownMenuSubContent`,zs=W.forwardRef((e,t)=>{let{__scopeDropdownMenu:n,...r}=e,i=ss(n);return(0,G.jsx)(rs,{...i,...r,ref:t,style:{...e.style,"--radix-dropdown-menu-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-dropdown-menu-content-available-width":`var(--radix-popper-available-width)`,"--radix-dropdown-menu-content-available-height":`var(--radix-popper-available-height)`,"--radix-dropdown-menu-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-dropdown-menu-trigger-height":`var(--radix-popper-anchor-height)`}})});zs.displayName=Rs;var Bs=us,Vs=fs,Hs=ms,Us=gs,Ws=bs,Gs=Ss,Ks=ws,qs=Os,Js=As,Ys=Ms,Xs=Fs,Zs=Ls,Qs=zs;function $s(e,t=[]){let n=[];function r(t,r){let i=W.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=W.useMemo(()=>o,Object.values(o));return(0,G.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o){let s=o?.[e]?.[a]||i,c=W.useContext(s);if(c)return c;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>W.createContext(e));return function(n){let r=n?.[e]||t;return W.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,ec(i,...t)]}function ec(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return W.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}function tc(){return(0,Dn.useSyncExternalStore)(nc,()=>!0,()=>!1)}function nc(){return()=>{}}var rc=`Avatar`,[ic,ac]=$s(rc),[oc,sc]=ic(rc),cc=W.forwardRef((e,t)=>{let{__scopeAvatar:n,...r}=e,[i,a]=W.useState(`idle`);return(0,G.jsx)(oc,{scope:n,imageLoadingStatus:i,onImageLoadingStatusChange:a,children:(0,G.jsx)(g.span,{...r,ref:t})})});cc.displayName=rc;var lc=`AvatarImage`,uc=W.forwardRef((e,t)=>{let{__scopeAvatar:n,src:r,onLoadingStatusChange:i=()=>{},...a}=e,o=sc(lc,n),s=mc(r,a),c=C(e=>{i(e),o.onImageLoadingStatusChange(e)});return Ke(()=>{s!==`idle`&&c(s)},[s,c]),s===`loaded`?(0,G.jsx)(g.img,{...a,ref:t,src:r}):null});uc.displayName=lc;var dc=`AvatarFallback`,fc=W.forwardRef((e,t)=>{let{__scopeAvatar:n,delayMs:r,...i}=e,a=sc(dc,n),[o,s]=W.useState(r===void 0);return W.useEffect(()=>{if(r!==void 0){let e=window.setTimeout(()=>s(!0),r);return()=>window.clearTimeout(e)}},[r]),o&&a.imageLoadingStatus!==`loaded`?(0,G.jsx)(g.span,{...i,ref:t}):null});fc.displayName=dc;function pc(e,t){return e?t?(e.src!==t&&(e.src=t),e.complete&&e.naturalWidth>0?`loaded`:`loading`):`error`:`idle`}function mc(e,{referrerPolicy:t,crossOrigin:n}){let r=tc(),i=W.useRef(null),a=r?(i.current||=new window.Image,i.current):null,[o,s]=W.useState(()=>pc(a,e));return Ke(()=>{s(pc(a,e))},[a,e]),Ke(()=>{let e=e=>()=>{s(e)};if(!a)return;let r=e(`loaded`),i=e(`error`);return a.addEventListener(`load`,r),a.addEventListener(`error`,i),t&&(a.referrerPolicy=t),typeof n==`string`&&(a.crossOrigin=n),()=>{a.removeEventListener(`load`,r),a.removeEventListener(`error`,i)}},[a,n,t]),o}var hc=cc,gc=uc,_c=fc,vc=`Tabs`,[yc,bc]=o(vc,[sa]),xc=sa(),[Sc,Cc]=yc(vc),wc=W.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,onValueChange:i,defaultValue:a,orientation:o=`horizontal`,dir:s,activationMode:c=`automatic`,...l}=e,u=ui(s),[d,f]=S({prop:r,onChange:i,defaultProp:a??``,caller:vc});return(0,G.jsx)(Sc,{scope:n,baseId:k(),value:d,onValueChange:f,orientation:o,dir:u,activationMode:c,children:(0,G.jsx)(w.div,{dir:u,"data-orientation":o,...l,ref:t})})});wc.displayName=vc;var Tc=`TabsList`,Ec=W.forwardRef((e,t)=>{let{__scopeTabs:n,loop:r=!0,...i}=e,a=Cc(Tc,n),o=xc(n);return(0,G.jsx)(ya,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:r,children:(0,G.jsx)(w.div,{role:`tablist`,"aria-orientation":a.orientation,...i,ref:t})})});Ec.displayName=Tc;var Dc=`TabsTrigger`,Oc=W.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,disabled:i=!1,...a}=e,o=Cc(Dc,n),s=xc(n),c=jc(o.baseId,r),l=Mc(o.baseId,r),u=r===o.value;return(0,G.jsx)(ba,{asChild:!0,...s,focusable:!i,active:u,children:(0,G.jsx)(w.button,{type:`button`,role:`tab`,"aria-selected":u,"aria-controls":l,"data-state":u?`active`:`inactive`,"data-disabled":i?``:void 0,disabled:i,id:c,...a,ref:t,onMouseDown:j(e.onMouseDown,e=>{!i&&e.button===0&&e.ctrlKey===!1?o.onValueChange(r):e.preventDefault()}),onKeyDown:j(e.onKeyDown,e=>{[` `,`Enter`].includes(e.key)&&o.onValueChange(r)}),onFocus:j(e.onFocus,()=>{let e=o.activationMode!==`manual`;!u&&!i&&e&&o.onValueChange(r)})})})});Oc.displayName=Dc;var kc=`TabsContent`,Ac=W.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,forceMount:i,children:a,...o}=e,s=Cc(kc,n),c=jc(s.baseId,r),l=Mc(s.baseId,r),u=r===s.value,d=W.useRef(u);return W.useEffect(()=>{let e=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,G.jsx)(f,{present:i||u,children:({present:n})=>(0,G.jsx)(w.div,{"data-state":u?`active`:`inactive`,"data-orientation":s.orientation,role:`tabpanel`,"aria-labelledby":c,hidden:!n,id:l,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:d.current?`0s`:void 0},children:n&&a})})});Ac.displayName=kc;function jc(e,t){return`${e}-trigger-${t}`}function Mc(e,t){return`${e}-content-${t}`}var Nc=wc,Pc=Ec,Fc=Oc,Ic=Ac,K=new class{constructor(){Object.defineProperty(this,"components",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"lazyEntries",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"listeners",{enumerable:!0,configurable:!0,writable:!0,value:new Set})}register(e,t,n){let r=n?.namespace?`${n.namespace}:${e}`:e;n?.namespace||console.warn(`Registering component "${e}" without a namespace is deprecated. Please provide a namespace in the meta parameter.\n\n Migration:\n // Before (deprecated):\n registry.register('${e}', MyComponent);\n\n // After:\n registry.register('${e}', MyComponent, { namespace: 'my-plugin' });\n\n See: https://github.com/objectstack-ai/objectui/blob/main/MIGRATION_GUIDE.md`),this.components.has(r),this.components.set(r,{type:r,component:t,...n}),n?.namespace&&!n?.skipFallback&&this.components.set(e,{type:r,component:t,...n}),this.lazyEntries.delete(r),this.lazyEntries.delete(e),this.notify()}registerLazy(e,t,n){let r=n?.namespace?`${n.namespace}:${e}`:e,i={loader:t,meta:n};this.lazyEntries.set(r,i),n?.namespace&&!n?.skipFallback&&this.lazyEntries.set(e,i)}hasLazy(e,t){return t?this.lazyEntries.has(`${t}:${e}`):this.lazyEntries.has(e)}loadLazy(e,t){let n=t?`${t}:${e}`:e,r=this.lazyEntries.get(n);if(r)return r.pending||=r.loader().catch(e=>{throw r.pending=void 0,e}),r.pending}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(){for(let e of this.listeners)try{e()}catch(e){console.error(`[Registry] listener error`,e)}}get(e,t){if(t){let n=`${t}:${e}`;return this.components.get(n)?.component}return this.components.get(e)?.component}getConfig(e,t){if(t){let n=`${t}:${e}`;return this.components.get(n)}return this.components.get(e)}has(e,t){if(t){let n=`${t}:${e}`;return this.components.has(n)}return this.components.has(e)}getAllTypes(){return Array.from(this.components.keys())}getAllConfigs(){return Array.from(this.components.values())}getNamespaceComponents(e){return Array.from(this.components.values()).filter(t=>t.namespace===e)}},Lc={type:{required:!0,validate:e=>typeof e==`string`&&e.length>0,message:`type must be a non-empty string`},id:{required:!1,validate:e=>typeof e==`string`,message:`id must be a string`},className:{required:!1,validate:e=>typeof e==`string`,message:`className must be a string`},visible:{required:!1,validate:e=>typeof e==`boolean`,message:`visible must be a boolean`},disabled:{required:!1,validate:e=>typeof e==`boolean`,message:`disabled must be a boolean`}};function Rc(e,t=`schema`){let n=[];return!e||typeof e!=`object`?(n.push({path:t,message:`Schema must be an object`,type:`error`,code:`INVALID_SCHEMA`}),n):(Object.entries(Lc).forEach(([r,i])=>{let a=e[r];i.required&&a===void 0&&n.push({path:`${t}.${r}`,message:`${r} is required`,type:`error`,code:`MISSING_REQUIRED`}),a!==void 0&&!i.validate(a)&&n.push({path:`${t}.${r}`,message:i.message,type:`error`,code:`INVALID_TYPE`})}),n)}function zc(e,t=`schema`){let n=[];return e.type===`crud`&&((!e.columns||!Array.isArray(e.columns))&&n.push({path:`${t}.columns`,message:`CRUD schema requires columns array`,type:`error`,code:`MISSING_COLUMNS`}),!e.api&&!e.dataSource&&n.push({path:`${t}.api`,message:`CRUD schema requires api or dataSource`,type:`warning`,code:`MISSING_DATA_SOURCE`}),e.columns&&Array.isArray(e.columns)&&e.columns.forEach((e,r)=>{e.name||n.push({path:`${t}.columns[${r}]`,message:`Column requires name property`,type:`error`,code:`MISSING_COLUMN_NAME`})}),e.fields&&Array.isArray(e.fields)&&e.fields.forEach((e,r)=>{e.name||n.push({path:`${t}.fields[${r}]`,message:`Field requires name property`,type:`error`,code:`MISSING_FIELD_NAME`})})),n}function Bc(e,t=`schema`){let n=[];return e.type===`form`&&e.fields&&Array.isArray(e.fields)&&e.fields.forEach((r,i)=>{r.name||n.push({path:`${t}.fields[${i}]`,message:`Form field requires name property`,type:`error`,code:`MISSING_FIELD_NAME`}),e.fields.filter(e=>e.name===r.name).length>1&&n.push({path:`${t}.fields[${i}]`,message:`Duplicate field name: ${r.name}`,type:`warning`,code:`DUPLICATE_FIELD_NAME`})}),n}function Vc(e,t=`schema`){let n=[],r=e.children||e.body;if(r){if(Array.isArray(r))r.forEach((e,r)=>{if(typeof e==`object`&&e){let i=Hc(e,`${t}.children[${r}]`);n.push(...i.errors,...i.warnings)}});else if(typeof r==`object`&&r){let e=Hc(r,`${t}.children`);n.push(...e.errors,...e.warnings)}}return n}function Hc(e,t=`schema`){let n=[];n.push(...Rc(e,t)),n.push(...zc(e,t)),n.push(...Bc(e,t)),n.push(...Vc(e,t));let r=n.filter(e=>e.type===`error`),i=n.filter(e=>e.type===`warning`);return{valid:r.length===0,errors:r,warnings:i}}function Uc(e){if(Array.isArray(e))return e;if(e&&typeof e==`object`){if(Array.isArray(e.records))return e.records;if(Array.isArray(e.data))return e.data;if(Array.isArray(e.value))return e.value}return[]}function Wc(e,t){if(!e||typeof e!=`object`)return[];let n=[];for(let[t,r]of Object.entries(e))r&&typeof r==`object`&&(r.type===`lookup`||r.type===`master_detail`)&&n.push(t);if(n.length===0)return[];if(t&&Array.isArray(t)&&t.length>0){let e=new Set;for(let n of t)if(typeof n==`string`)e.add(n);else if(n&&typeof n==`object`){let t=n.field??n.name??n.fieldName;t&&e.add(t)}return n.filter(t=>e.has(t))}return n}var Gc=class e{constructor(e={}){Object.defineProperty(this,"scopes",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.scopes.push(new Map(Object.entries(e)))}pushScope(e){this.scopes.push(new Map(Object.entries(e)))}popScope(){this.scopes.length>1&&this.scopes.pop()}get(e){let t=e.split(`.`),n=t[0];for(let e=this.scopes.length-1;e>=0;e--)if(this.scopes[e].has(n)){let r=this.scopes[e].get(n);for(let e=1;e<t.length;e++)if(r&&typeof r==`object`)r=r[t[e]];else return;return r}}set(e,t){this.scopes.length>0&&this.scopes[this.scopes.length-1].set(e,t)}has(e){let t=e.split(`.`)[0];for(let e=this.scopes.length-1;e>=0;e--)if(this.scopes[e].has(t))return!0;return!1}toObject(){let e={};for(let t of this.scopes)for(let[n,r]of t.entries())e[n]=r;return e}createChild(t={}){let n=new e;return n.scopes=[...this.scopes,new Map(Object.entries(t))],n}},Kc={Math,JSON,parseInt,parseFloat,isNaN,isFinite},qc=new Set([`constructor`,`__proto__`,`prototype`,`__defineGetter__`,`__defineSetter__`,`__lookupGetter__`,`__lookupSetter__`]),Jc=class e{constructor(){Object.defineProperty(this,"source",{enumerable:!0,configurable:!0,writable:!0,value:``}),Object.defineProperty(this,"pos",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"context",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_evaluating",{enumerable:!0,configurable:!0,writable:!0,value:!0})}evaluate(e,t){this.source=e.trim(),this.pos=0,this.context={...Kc,...t};let n=this.parseTernary();if(this.skipWhitespace(),this.pos<this.source.length)throw SyntaxError(`Unexpected token "${this.source[this.pos]}" at position ${this.pos} in expression "${e}"`);return n}skipWhitespace(){for(;this.pos<this.source.length&&/\s/.test(this.source[this.pos]);)this.pos++}peek(e=0){return this.source[this.pos+e]??``}consume(){return this.source[this.pos++]??``}withEvaluation(e,t){let n=this._evaluating;this._evaluating=e;try{return t()}finally{this._evaluating=n}}assertSafeProp(e){if(typeof e==`string`&&qc.has(e))throw TypeError(`Access to property "${e}" is not permitted in expressions`)}parseTernary(){let e=this.parseNullish();if(this.skipWhitespace(),this.peek()===`?`&&this.peek(1)!==`?`){if(this.pos++,this.skipWhitespace(),!this._evaluating){if(this.parseTernary(),this.skipWhitespace(),this.peek()!==`:`)throw SyntaxError(`Expected ":" in ternary expression`);this.pos++,this.skipWhitespace(),this.parseTernary();return}if(e){let e=this.parseTernary();if(this.skipWhitespace(),this.peek()!==`:`)throw SyntaxError(`Expected ":" in ternary expression`);return this.pos++,this.skipWhitespace(),this.withEvaluation(!1,()=>this.parseTernary()),e}else{if(this.withEvaluation(!1,()=>this.parseTernary()),this.skipWhitespace(),this.peek()!==`:`)throw SyntaxError(`Expected ":" in ternary expression`);return this.pos++,this.skipWhitespace(),this.parseTernary()}}return e}parseNullish(){let e=this.parseOr();for(this.skipWhitespace();this.peek()===`?`&&this.peek(1)===`?`;){if(this.pos+=2,this.skipWhitespace(),this._evaluating&&e!=null)this.withEvaluation(!1,()=>this.parseOr());else{let t=this.parseOr();this._evaluating&&(e??=t)}this.skipWhitespace()}return e}parseOr(){let e=this.parseAnd();for(this.skipWhitespace();this.peek()===`|`&&this.peek(1)===`|`;){if(this.pos+=2,this.skipWhitespace(),this._evaluating&&e)this.withEvaluation(!1,()=>this.parseAnd());else{let t=this.parseAnd();this._evaluating&&(e||=t)}this.skipWhitespace()}return e}parseAnd(){let e=this.parseEquality();for(this.skipWhitespace();this.peek()===`&`&&this.peek(1)===`&`;){if(this.pos+=2,this.skipWhitespace(),this._evaluating&&!e)this.withEvaluation(!1,()=>this.parseEquality());else{let t=this.parseEquality();this._evaluating&&(e&&=t)}this.skipWhitespace()}return e}parseEquality(){let e=this.parseAddition();for(this.skipWhitespace();;){let t=null;if(this.peek()===`=`&&this.peek(1)===`=`&&this.peek(2)===`=`)t=`===`,this.pos+=3;else if(this.peek()===`!`&&this.peek(1)===`=`&&this.peek(2)===`=`)t=`!==`,this.pos+=3;else if(this.peek()===`=`&&this.peek(1)===`=`)t=`==`,this.pos+=2;else if(this.peek()===`!`&&this.peek(1)===`=`)t=`!=`,this.pos+=2;else if(this.peek()===`>`&&this.peek(1)===`=`)t=`>=`,this.pos+=2;else if(this.peek()===`<`&&this.peek(1)===`=`)t=`<=`,this.pos+=2;else if(this.peek()===`>`&&this.peek(1)!==`>`)t=`>`,this.pos++;else if(this.peek()===`<`&&this.peek(1)!==`<`)t=`<`,this.pos++;else break;this.skipWhitespace();let n=this.parseAddition();switch(t){case`===`:e=e===n;break;case`!==`:e=e!==n;break;case`==`:e=e==n;break;case`!=`:e=e!=n;break;case`>`:e=e>n;break;case`<`:e=e<n;break;case`>=`:e=e>=n;break;case`<=`:e=e<=n;break}this.skipWhitespace()}return e}parseAddition(){let e=this.parseMultiplication();for(this.skipWhitespace();(this.peek()===`+`||this.peek()===`-`)&&this.peek(1)!==`=`;){let t=this.consume();this.skipWhitespace();let n=this.parseMultiplication();e=t===`+`?e+n:e-n,this.skipWhitespace()}return e}parseMultiplication(){let e=this.parseUnary();for(this.skipWhitespace();(this.peek()===`*`||this.peek()===`/`||this.peek()===`%`)&&this.peek(1)!==`=`;){let t=this.consume();this.skipWhitespace();let n=this.parseUnary();t===`*`?e*=n:t===`/`?e/=n:e%=n,this.skipWhitespace()}return e}parseUnary(){if(this.skipWhitespace(),this.source.startsWith(`typeof`,this.pos)&&!/[\w$]/.test(this.source[this.pos+6]??``)){this.pos+=6,this.skipWhitespace();try{return typeof this.parseUnary()}catch{return`undefined`}}return this.peek()===`!`?(this.pos++,!this.parseUnary()):this.peek()===`-`?(this.pos++,-this.parseUnary()):this.peek()===`+`?(this.pos++,+this.parseUnary()):this.parseMember()}parseMember(){let e=this.parsePrimary();for(;;){this.skipWhitespace();let t=this.peek()===`?`&&this.peek(1)===`.`;if(this.peek()===`.`&&this.peek(1)!==`.`||t){t&&this.pos++,this.pos++,this.skipWhitespace();let n=this.parseIdentifierName();if(!n)break;if(this.assertSafeProp(n),this.skipWhitespace(),this.peek()===`(`){this.pos++;let t=this.parseArgList();if(this.peek()!==`)`)throw SyntaxError(`Expected ")" after argument list at position ${this.pos}`);if(this.pos++,!this._evaluating){e=void 0;continue}e=e!=null&&typeof e[n]==`function`?e[n](...t):void 0}else{if(!this._evaluating){e=void 0;continue}e=e?.[n]}continue}let n=this.peek()===`?`&&this.peek(1)===`[`;if(this.peek()===`[`||n){n&&this.pos++,this.pos++,this.skipWhitespace();let t=this.parseTernary();if(this.skipWhitespace(),this.peek()!==`]`)throw SyntaxError(`Expected "]" after bracket expression at position ${this.pos}`);if(this.pos++,this.assertSafeProp(t),!this._evaluating){e=void 0;continue}e=e?.[t];continue}if(this.peek()===`(`){this.pos++;let t=this.parseArgList();if(this.peek()!==`)`)throw SyntaxError(`Expected ")" after argument list at position ${this.pos}`);if(this.pos++,!this._evaluating){e=void 0;continue}if(typeof e==`function`)e=e(...t);else throw TypeError(`${String(e)} is not a function`);continue}break}return e}parsePrimary(){this.skipWhitespace();let e=this.peek();if(e===`(`){this.pos++;let e=this.parseTernary();if(this.skipWhitespace(),this.peek()!==`)`)throw SyntaxError(`Expected ")" to close "(" expression at position ${this.pos}`);return this.pos++,e}if(e===`[`)return this.parseArrayLiteral();if(e===`"`||e===`'`)return this.parseString(e);if(/\d/.test(e)||e===`.`&&/\d/.test(this.peek(1)))return this.parseNumber();if(/[a-zA-Z_$]/.test(e))return this.parseIdentifierOrKeyword();throw SyntaxError(`Unexpected character "${e}" at position ${this.pos}`)}parseArrayLiteral(){this.pos++;let e=[];for(this.skipWhitespace();this.peek()!==`]`&&this.pos<this.source.length;)e.push(this.parseTernary()),this.skipWhitespace(),this.peek()===`,`&&(this.pos++,this.skipWhitespace());if(this.peek()!==`]`)throw SyntaxError(`Expected "]" to close array literal at position ${this.pos}`);return this.pos++,e}parseString(e){this.pos++;let t=``;for(;this.pos<this.source.length;){let n=this.source[this.pos];if(n===`\\`){this.pos++;let e=this.source[this.pos++]??``;switch(e){case`n`:t+=`
|
|
2
|
+
`;break;case`t`:t+=` `;break;case`r`:t+=`\r`;break;case`\\`:t+=`\\`;break;case`"`:t+=`"`;break;case`'`:t+=`'`;break;case"`":t+="`";break;default:t+=e}}else if(n===e){this.pos++;break}else t+=n,this.pos++}return t}parseNumber(){let e=this.pos,t=!1;for(;this.pos<this.source.length&&/\d/.test(this.source[this.pos]);)t=!0,this.pos++;if(this.source[this.pos]===`.`)for(this.pos++;this.pos<this.source.length&&/\d/.test(this.source[this.pos]);)t=!0,this.pos++;if(/[eE]/.test(this.source[this.pos]??``)){this.pos++,/[+\-]/.test(this.source[this.pos]??``)&&this.pos++;let t=0;for(;this.pos<this.source.length&&/\d/.test(this.source[this.pos]);)t++,this.pos++;if(t===0)throw SyntaxError(`Invalid numeric literal exponent at position ${e}`)}if(!t)throw SyntaxError(`Invalid numeric literal at position ${e}`);let n=this.source.slice(e,this.pos),r=Number(n);if(!Number.isFinite(r))throw SyntaxError(`Invalid numeric literal "${n}" at position ${e}`);return r}parseIdentifierName(){let e=this.pos;for(;this.pos<this.source.length&&/[\w$]/.test(this.source[this.pos]);)this.pos++;return this.source.slice(e,this.pos)}parseIdentifierOrKeyword(){let e=this.parseIdentifierName();switch(e){case`true`:return!0;case`false`:return!1;case`null`:return null;case`undefined`:return;case`NaN`:return NaN;case`Infinity`:return 1/0}if(e===`new`)return this.parseNewExpression();if(this.skipWhitespace(),this.peek()===`=`&&this.peek(1)===`>`)return this.parseArrowFunction(e);if(this.peek()===`(`){this.pos++;let t=this.parseArgList();if(this.peek()!==`)`)throw SyntaxError(`Expected ")" after argument list at position ${this.pos}`);if(this.pos++,!this._evaluating)return;let n=this.context[e];if(typeof n==`function`)return n(...t);throw TypeError(`"${e}" is not a function`)}if(this._evaluating){if(!(e in this.context))throw ReferenceError(`${e} is not defined`);return this.context[e]}}parseNewExpression(){this.skipWhitespace();let e=this.parseIdentifierName();this.skipWhitespace();let t=[];if(this.peek()===`(`){if(this.pos++,t=this.parseArgList(),this.peek()!==`)`)throw SyntaxError(`Expected ")" after new ${e}() at position ${this.pos}`);this.pos++}if(this._evaluating)switch(e){case`Date`:return new Date(...t);case`RegExp`:return new RegExp(t[0],t[1]);default:throw TypeError(`new ${e}() is not supported in expressions`)}}parseArrowFunction(t){this.pos+=2,this.skipWhitespace();let n=this.pos,r=this.scanExpressionEnd(),i=this.source.slice(n,r).trim();this.pos=r;let a=this.context;return n=>new e().evaluate(i,{...a,[t]:n})}scanExpressionEnd(){let e=this.pos,t=0,n=!1,r=``;for(;e<this.source.length;){let i=this.source[e];if(n){if(i===`\\`){e+=2;continue}i===r&&(n=!1),e++;continue}if(i===`"`||i===`'`){n=!0,r=i,e++;continue}if(i===`(`||i===`[`)t++;else if(i===`)`||i===`]`){if(t===0)break;t--}else if(i===`,`&&t===0)break;e++}return e}parseArgList(){let e=[];for(this.skipWhitespace();this.peek()!==`)`&&this.pos<this.source.length;)e.push(this.parseTernary()),this.skipWhitespace(),this.peek()===`,`&&(this.pos++,this.skipWhitespace());return e}},Yc=class{constructor(e=1e3){Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}compile(e,t){let n=`${e}::${t.join(`,`)}`;if(this.cache.has(n)){let e=this.cache.get(n);return e.hitCount++,e}this.cache.size>=this.maxSize&&this.evictLFU();let r={fn:this.compileExpression(e,t),varNames:[...t],expression:e,compiledAt:Date.now(),hitCount:1};return this.cache.set(n,r),r}compileExpression(e,t){let n=new Jc;return(...r)=>{let i={};for(let e=0;e<t.length;e++)i[t[e]]=r[e];return n.evaluate(e,i)}}evictLFU(){let e=null,t=1/0,n=1/0;for(let[r,i]of this.cache.entries())(i.hitCount<n||i.hitCount===n&&i.compiledAt<t)&&(e=r,t=i.compiledAt,n=i.hitCount);e&&this.cache.delete(e)}has(e,t){let n=`${e}::${t.join(`,`)}`;return this.cache.has(n)}clear(){this.cache.clear()}getStats(){let e=0,t=[];for(let n of this.cache.values())e+=n.hitCount,t.push({expression:n.expression,hitCount:n.hitCount});return{size:this.cache.size,maxSize:this.maxSize,totalHits:e,entries:t.sort((e,t)=>t.hitCount-e.hitCount)}}},Xc=class{constructor(){Object.defineProperty(this,"functions",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this.registerDefaults()}register(e,t){this.functions.set(e.toUpperCase(),t)}get(e){return this.functions.get(e.toUpperCase())}has(e){return this.functions.has(e.toUpperCase())}getNames(){return Array.from(this.functions.keys())}toObject(){let e={};for(let[t,n]of this.functions)e[t]=n;return e}registerDefaults(){this.registerAggregationFunctions(),this.registerDateFunctions(),this.registerLogicFunctions(),this.registerStringFunctions(),this.registerStringSearchFunctions(),this.registerStatisticalFunctions()}registerAggregationFunctions(){this.register(`SUM`,(...e)=>Zc(e).reduce((e,t)=>e+t,0)),this.register(`AVG`,(...e)=>{let t=Zc(e);return t.length===0?0:t.reduce((e,t)=>e+t,0)/t.length}),this.register(`COUNT`,(...e)=>Qc(e).filter(e=>e!=null).length),this.register(`MIN`,(...e)=>{let t=Zc(e);return t.length===0?0:Math.min(...t)}),this.register(`MAX`,(...e)=>{let t=Zc(e);return t.length===0?0:Math.max(...t)})}registerDateFunctions(){this.register(`TODAY`,()=>new Date().toISOString().split(`T`)[0]),this.register(`NOW`,()=>new Date().toISOString()),this.register(`DATEADD`,(e,t,n)=>{let r=new Date(e);if(isNaN(r.getTime()))throw Error(`DATEADD: Invalid date "${e}"`);switch(String(n).toLowerCase()){case`day`:case`days`:r.setDate(r.getDate()+t);break;case`month`:case`months`:r.setMonth(r.getMonth()+t);break;case`year`:case`years`:r.setFullYear(r.getFullYear()+t);break;case`hour`:case`hours`:r.setHours(r.getHours()+t);break;case`minute`:case`minutes`:r.setMinutes(r.getMinutes()+t);break;default:throw Error(`DATEADD: Unsupported unit "${n}"`)}return r.toISOString()}),this.register(`DATEDIFF`,(e,t,n)=>{let r=new Date(e),i=new Date(t);if(isNaN(r.getTime()))throw Error(`DATEDIFF: Invalid date "${e}"`);if(isNaN(i.getTime()))throw Error(`DATEDIFF: Invalid date "${t}"`);let a=i.getTime()-r.getTime();switch(String(n).toLowerCase()){case`day`:case`days`:return Math.floor(a/(1e3*60*60*24));case`month`:case`months`:return(i.getFullYear()-r.getFullYear())*12+(i.getMonth()-r.getMonth());case`year`:case`years`:return i.getFullYear()-r.getFullYear();case`hour`:case`hours`:return Math.floor(a/(1e3*60*60));case`minute`:case`minutes`:return Math.floor(a/(1e3*60));default:throw Error(`DATEDIFF: Unsupported unit "${n}"`)}}),this.register(`DATEFORMAT`,(e,t)=>{let n=new Date(e);if(isNaN(n.getTime()))throw Error(`DATEFORMAT: Invalid date "${e}"`);let r=(e,t=2)=>String(e).padStart(t,`0`);return t.replace(`YYYY`,String(n.getFullYear())).replace(`YY`,String(n.getFullYear()).slice(-2)).replace(`MM`,r(n.getMonth()+1)).replace(`DD`,r(n.getDate())).replace(`HH`,r(n.getHours())).replace(`mm`,r(n.getMinutes())).replace(`ss`,r(n.getSeconds()))})}registerLogicFunctions(){this.register(`IF`,(e,t,n)=>e?t:n),this.register(`AND`,(...e)=>e.every(Boolean)),this.register(`OR`,(...e)=>e.some(Boolean)),this.register(`NOT`,e=>!e),this.register(`SWITCH`,(e,...t)=>{for(let n=0;n<t.length-1;n+=2)if(e===t[n])return t[n+1];if(t.length%2==1)return t[t.length-1]})}registerStringFunctions(){this.register(`CONCAT`,(...e)=>e.map(e=>String(e??``)).join(``)),this.register(`LEFT`,(e,t)=>String(e??``).substring(0,t)),this.register(`RIGHT`,(e,t)=>{let n=String(e??``);return n.substring(Math.max(0,n.length-t))}),this.register(`TRIM`,e=>String(e??``).trim()),this.register(`UPPER`,e=>String(e??``).toUpperCase()),this.register(`LOWER`,e=>String(e??``).toLowerCase())}registerStringSearchFunctions(){this.register(`FIND`,(e,t,n)=>String(t??``).indexOf(String(e??``),n??0)),this.register(`REPLACE`,(e,t,n)=>String(e??``).split(String(t??``)).join(String(n??``))),this.register(`SUBSTRING`,(e,t,n)=>{let r=String(e??``);return n===void 0?r.substring(t):r.substring(t,t+n)}),this.register(`REGEX`,(e,t,n)=>{let r=String(e??``);return new RegExp(t,n).test(r)}),this.register(`LEN`,e=>String(e??``).length)}registerStatisticalFunctions(){this.register(`MEDIAN`,(...e)=>{let t=Zc(e).sort((e,t)=>e-t);if(t.length===0)return 0;let n=Math.floor(t.length/2);return t.length%2==0?(t[n-1]+t[n])/2:t[n]}),this.register(`STDEV`,(...e)=>{let t=Zc(e);if(t.length<2)return 0;let n=t.reduce((e,t)=>e+t,0)/t.length,r=t.map(e=>(e-n)**2).reduce((e,t)=>e+t,0)/(t.length-1);return Math.sqrt(r)}),this.register(`VARIANCE`,(...e)=>{let t=Zc(e);if(t.length<2)return 0;let n=t.reduce((e,t)=>e+t,0)/t.length;return t.map(e=>(e-n)**2).reduce((e,t)=>e+t,0)/(t.length-1)}),this.register(`PERCENTILE`,(e,...t)=>{let n=Zc(t).sort((e,t)=>e-t);if(n.length===0)return 0;let r=Math.max(0,Math.min(100,e))/100*(n.length-1),i=Math.floor(r),a=Math.ceil(r);if(i===a)return n[i];let o=r-i;return n[i]+o*(n[a]-n[i])})}};function Zc(e){let t=[];for(let n of e)if(Array.isArray(n))t.push(...Zc(n));else{let e=Number(n);isNaN(e)||t.push(e)}return t}function Qc(e){let t=[];for(let n of e)Array.isArray(n)?t.push(...Qc(n)):t.push(n);return t}var $c=class e{constructor(e,t,n){Object.defineProperty(this,"context",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formulas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),e instanceof Gc?this.context=e:this.context=new Gc(e||{}),this.cache=t||new Yc,this.formulas=n||new Xc}evaluate(e,t={}){if(e&&typeof e==`object`&&typeof e.source==`string`&&(e=e.source),typeof e!=`string`)return e;let{defaultValue:n,throwOnError:r=!1,sanitize:i=!0}=t;try{if(!e.includes("${"))return e;let t=e.match(/^\$\{([^}]+)\}$/);return t?this.evaluateExpression(t[1].trim(),{sanitize:i}):e.replace(/\$\{([^}]+)\}/g,(e,t)=>{try{let e=this.evaluateExpression(t.trim(),{sanitize:i});return String(e??``)}catch(n){if(r)throw n;return console.warn(`Expression evaluation failed for: ${t}`,n),e}})}catch(t){if(r)throw t;return console.warn(`Failed to evaluate expression: ${e}`,t),n??e}}evaluateExpression(e,t={}){let{sanitize:n=!0}=t;if(!(!e||e.trim()===``)){if(n&&this.isDangerous(e))throw Error(`Potentially dangerous expression detected: ${e}`);try{let t=this.context.toObject(),n={...this.formulas.toObject(),...t},r=Object.keys(n),i=Object.values(n);return this.cache.compile(e,r).fn(...i)}catch(t){throw Error(`Failed to evaluate expression "${e}": ${t.message}`)}}}isDangerous(e){return[/eval\s*\(/i,/Function\s*\(/i,/setTimeout\s*\(/i,/setInterval\s*\(/i,/import\s*\(/i,/require\s*\(/i,/process\./i,/global\./i,/window\./i,/document\./i,/__proto__/i,/constructor\s*\(/i,/prototype\./i].some(t=>t.test(e))}evaluateCondition(e,t={}){return typeof e==`boolean`?e:(e&&typeof e==`object`&&typeof e.source==`string`&&(e=e.source),e?!!this.evaluate(e,t):!0)}updateContext(e){Object.entries(e).forEach(([e,t])=>{this.context.set(e,t)})}getContext(){return this.context}withContext(t){return new e(this.context.createChild(t),this.cache,this.formulas)}getCacheStats(){return this.cache.getStats()}clearCache(){this.cache.clear()}getFormulas(){return this.formulas}registerFunction(e,t){this.formulas.register(e,t)}},el=new Yc,tl=new Xc;function nl(e,t){let n=new $c({...t,data:t},el,tl);try{return(/\$\{/.test(e)?n.evaluate(e,{throwOnError:!0}):n.evaluateExpression(e))===!0}catch{return!1}}var rl=class{constructor(e={}){Object.defineProperty(this,"handlers",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"scripts",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"evaluator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"context",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"confirmHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"toastHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"modalHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"navigationHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"paramCollectionHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.context=e,this.evaluator=new $c(e),this.confirmHandler=async e=>window.confirm(e),this.toastHandler=null,this.modalHandler=null,this.navigationHandler=null,this.paramCollectionHandler=null}setConfirmHandler(e){this.confirmHandler=e}setToastHandler(e){this.toastHandler=e}setModalHandler(e){this.modalHandler=e}setNavigationHandler(e){this.navigationHandler=e}setParamCollectionHandler(e){this.paramCollectionHandler=e}registerHandler(e,t){this.handlers.set(e,t)}unregisterHandler(e){this.handlers.delete(e)}registerScript(e,t){this.scripts.set(e,t)}unregisterScript(e){this.scripts.delete(e)}async execute(e){try{let t=e.type||e.actionType||e.name||``;if(e.condition&&!this.evaluator.evaluateCondition(e.condition))return{success:!1,error:`Action condition not met`};if(e.disabled&&(typeof e.disabled==`string`?this.evaluator.evaluateCondition(e.disabled):e.disabled))return{success:!1,error:`Action is disabled`};let n=e.confirm?.message||e.confirmText;if(n&&!await this.confirmHandler(this.evaluator.evaluate(n),e.confirm?{title:e.confirm.title,confirmText:e.confirm.confirmText,cancelText:e.confirm.cancelText}:void 0))return{success:!1,error:`Action cancelled by user`};let r=e.actionParams&&Array.isArray(e.actionParams)?e.actionParams:Array.isArray(e.params)?e.params:void 0;if(r&&r.length>0&&this.paramCollectionHandler){let t=await this.paramCollectionHandler(r,e);if(t===null)return{success:!1,error:`Action cancelled by user (params)`};let n=Array.isArray(e.params)?{}:e.params||{},i=n._rowRecord;e.params={...n,...t},i!==void 0&&(e.params._rowRecord=i)}if(t&&this.handlers.has(t)){let n=await this.handlers.get(t)(e,this.context);return await this.handlePostExecution(e,n),n}let i;switch(t){case`script`:i=await this.executeScript(e);break;case`url`:i=await this.executeUrl(e);break;case`modal`:i=await this.executeModal(e);break;case`flow`:i=await this.executeFlow(e);break;case`api`:i=await this.executeAPI(e);break;case`navigation`:i=await this.executeNavigation(e);break;default:e.navigate?i=await this.executeNavigation(e):e.api||e.endpoint?i=await this.executeAPI(e):e.onClick?(await e.onClick(),i={success:!0}):i=await this.executeActionSchema(e)}return await this.handlePostExecution(e,i),i}catch(t){let n={success:!1,error:t.message};return await this.handlePostExecution(e,n),n}}async executeChain(e,t=`sequential`){if(e.length===0)return{success:!0};if(t===`parallel`){let t=await Promise.allSettled(e.map(e=>this.execute(e)));if(t.filter(e=>e.status===`rejected`||e.status===`fulfilled`&&!e.value.success).length>0)return{success:!1,error:t.find(e=>e.status===`fulfilled`&&!e.value.success)?.value?.error||`One or more parallel actions failed`};let n=t[t.length-1];return n.status===`fulfilled`?n.value:{success:!1,error:`Action failed`}}let n={success:!0};for(let t of e)if(n=await this.execute(t),!n.success)return n;return n}async handlePostExecution(e,t){if(this.toastHandler){let n=e.toast??{showOnSuccess:!0,showOnError:!0},r=e.toast?.duration;if(t.success&&n.showOnSuccess!==!1){let t=e.successMessage||`Action completed successfully`;this.toastHandler(t,{type:`success`,duration:r})}if(!t.success&&n.showOnError!==!1&&t.error){let n=e.errorMessage||t.error;this.toastHandler(n,{type:`error`,duration:r})}}if(e.refreshAfter&&t.success&&(t.reload=!0),e.chain&&e.chain.length>0&&t.success){let n=await this.executeChain(e.chain,e.chainMode||`sequential`);n.success||(t.success=!1,t.error=n.error),n.data&&(t.data=n.data),n.redirect&&(t.redirect=n.redirect),n.reload&&(t.reload=!0)}if(t.success&&e.onSuccess){let t=Array.isArray(e.onSuccess)?e.onSuccess:[e.onSuccess];await this.executeChain(t,`sequential`)}if(!t.success&&e.onFailure){let t=Array.isArray(e.onFailure)?e.onFailure:[e.onFailure];await this.executeChain(t,`sequential`)}}async executeScript(e){let t=e.execute||e.target;if(!t)return{success:!1,error:`No script provided for script action`};let n=this.scripts.get(t);if(n)try{return await n(e,this.context)}catch(e){return{success:!1,error:`Script execution failed: ${e.message}`}}try{return{success:!0,data:this.evaluator.evaluate(`\${${t}}`)}}catch(e){return{success:!1,error:`Script execution failed: ${e.message}`}}}async executeUrl(e){let t=e.target||e.redirect;if(!t)return{success:!1,error:`No URL provided for url action`};let n=this.evaluator.evaluate(t);if(!this.isValidUrl(n))return{success:!1,error:`Invalid URL scheme. Only http://, https://, and relative URLs are allowed.`};let r=n.startsWith(`http://`)||n.startsWith(`https://`),i=e.params?.newTab??r;if(this.navigationHandler)return this.navigationHandler(n,{external:r,newTab:i}),{success:!0};if(i)window.open(n,`_blank`,`noopener,noreferrer`);else return{success:!0,redirect:n};return{success:!0}}async executeModal(e){let t=e.modal||e.target||e.params?.schema;return t?this.modalHandler?await this.modalHandler(t,this.context):{success:!0,modal:t}:{success:!1,error:`No modal schema or target provided for modal action`}}async executeFlow(e){let t=e.target||e.name;return t?this.handlers.has(`flow`)?await this.handlers.get(`flow`)(e,this.context):{success:!1,error:`Flow handler not registered. Cannot execute flow: ${t}`}:{success:!1,error:`No flow target provided for flow action`}}async executeActionSchema(e){let t={success:!0};if(e.api||e.endpoint){let n=await this.executeAPI(e);if(!n.success)return n;t.data=n.data}return e.onClick&&await e.onClick(),t.reload=e.reload!==!1,t.close=e.close!==!1,e.redirect&&(t.redirect=this.evaluator.evaluate(e.redirect)),t}async executeNavigation(e){let t=e.navigate||e,n=this.evaluator.evaluate(t.to||t.target);if(!this.isValidUrl(n))return{success:!1,error:`Invalid URL scheme. Only http://, https://, and relative URLs are allowed.`};let r=t.external||typeof n==`string`&&(n.startsWith(`http://`)||n.startsWith(`https://`));if(this.navigationHandler)return this.navigationHandler(n,{external:r,newTab:t.newTab??r,replace:t.replace}),{success:!0};if(r)window.open(n,`_blank`,`noopener,noreferrer`);else return{success:!0,redirect:n};return{success:!0}}async executeAPI(e){let t=e.api||e.endpoint||e.target;if(!t)return{success:!1,error:`No API endpoint provided`};try{let n,r,i={"Content-Type":`application/json`},a,o=`json`;if(typeof t==`string`)n=t,r=e.method||`POST`,a=JSON.stringify(e.params||this.context.data||{});else{let s=t;if(n=s.url,r=s.method||e.method||`POST`,i={...i,...s.headers},o=s.responseType||`json`,s.queryParams){let e=new URLSearchParams(s.queryParams);n=`${n}${n.includes(`?`)?`&`:`?`}${e.toString()}`}s.body?a=typeof s.body==`string`?s.body:JSON.stringify(s.body):r!==`GET`&&r!==`HEAD`&&(a=JSON.stringify(e.params||this.context.data||{}))}let s={method:r,headers:i};a&&r!==`GET`&&r!==`HEAD`&&(s.body=a);let c=await fetch(n,s);if(!c.ok)throw Error(`HTTP ${c.status}: ${c.statusText}`);let l;switch(o){case`text`:l=await c.text();break;case`blob`:l=await c.blob();break;default:l=await c.json()}return{success:!0,data:l}}catch(e){return{success:!1,error:e.message}}}isValidUrl(e){return typeof e==`string`&&(e.startsWith(`http://`)||e.startsWith(`https://`)||e.startsWith(`/`)||e.startsWith(`./`))}updateContext(e){this.context={...this.context,...e},this.evaluator.updateContext(e)}getContext(){return this.context}getEvaluator(){return this.evaluator}};function il(e){return e.toLowerCase().split(`+`).map(e=>e.trim()).sort().join(`+`)}var al=class{constructor(e={}){Object.defineProperty(this,"actions",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"mappings",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"shortcuts",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"normalizedShortcutMap",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"runner",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.runner=new rl(e)}getRunner(){return this.runner}registerAction(e,t){let n=e.name||e.type||``;if(!n)throw Error(`Action must have a name or type`);this.actions.set(n,{action:e,locations:t?.locations||[],shortcut:t?.shortcut,bulkEnabled:t?.bulkEnabled??!1,priority:t?.priority??100}),t?.shortcut&&(this.shortcuts.push({keys:t.shortcut,actionName:n}),this.normalizedShortcutMap.set(il(t.shortcut),n))}registerActions(e){for(let t of e)this.registerAction(t,{locations:t.locations,shortcut:t.shortcut,bulkEnabled:t.bulkEnabled})}unregisterAction(e){let t=this.actions.get(e);t?.shortcut&&this.normalizedShortcutMap.delete(il(t.shortcut)),this.actions.delete(e),this.shortcuts=this.shortcuts.filter(t=>t.actionName!==e),this.mappings=this.mappings.filter(t=>t.actionName!==e)}addMapping(e){this.mappings.push(e)}getActionsForLocation(e){return Array.from(this.actions.values()).filter(t=>t.locations.includes(e)).sort((e,t)=>(e.priority??100)-(t.priority??100)).map(e=>e.action)}getBulkActions(){return Array.from(this.actions.values()).filter(e=>e.bulkEnabled).sort((e,t)=>(e.priority??100)-(t.priority??100)).map(e=>e.action)}getShortcuts(){return[...this.shortcuts]}getAction(e){return this.actions.get(e)?.action}async executeAction(e,t){let n=this.actions.get(e);return n?(t&&this.runner.updateContext(t),this.runner.execute(n.action)):{success:!1,error:`Action not found: ${e}`}}async dispatch(e,t){let n=this.mappings.filter(t=>t.event===e);if(n.length===0)return[];let r=[];for(let e of n){if(e.condition&&!this.runner.getEvaluator().evaluateCondition(e.condition))continue;let n=await this.executeAction(e.actionName,t);r.push(n)}return r}async handleShortcut(e,t){let n=this.normalizedShortcutMap.get(il(e));return n?this.executeAction(n,t):null}async executeBulk(e,t,n){let r=this.actions.get(e);if(!r)return{total:0,succeeded:0,failed:0,results:[{success:!1,error:`Action not found: ${e}`}]};if(!r.bulkEnabled)return{total:0,succeeded:0,failed:0,results:[{success:!1,error:`Action ${e} does not support bulk operations`}]};let i=[],a=0,o=0;if(n?.parallel){let e=t.map(e=>(this.runner.updateContext({record:e,selectedRecords:t}),this.runner.execute(r.action))),n=await Promise.allSettled(e);for(let e of n)e.status===`fulfilled`?(i.push(e.value),e.value.success?a++:o++):(i.push({success:!1,error:e.reason?.message||`Unknown error`}),o++)}else for(let e of t){this.runner.updateContext({record:e,selectedRecords:t});let s=await this.runner.execute(r.action);if(i.push(s),s.success)a++;else if(o++,!n?.continueOnError)break}return{total:t.length,succeeded:a,failed:o,results:i}}updateContext(e){this.runner.updateContext(e)}clear(){this.actions.clear(),this.mappings=[],this.shortcuts=[],this.normalizedShortcutMap.clear()}};function ol(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.type==`string`&&typeof t.objectName==`string`&&typeof t.recordId==`string`&&typeof t.timestamp==`number`}var sl=class e{constructor(e){Object.defineProperty(this,"undoStack",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"redoStack",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"maxHistory",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"listeners",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),this.maxHistory=e?.maxHistory??50}push(e){this.undoStack.push(e),this.undoStack.length>this.maxHistory&&this.undoStack.shift(),this.redoStack=[],this.notify()}peekUndo(){return this.undoStack[this.undoStack.length-1]}peekRedo(){return this.redoStack[this.redoStack.length-1]}popUndo(){let e=this.undoStack.pop();return e&&(this.redoStack.push(e),this.notify()),e}popRedo(){let e=this.redoStack.pop();return e&&(this.undoStack.push(e),this.notify()),e}clear(){this.undoStack=[],this.redoStack=[],this.notify()}get canUndo(){return this.undoStack.length>0}get canRedo(){return this.redoStack.length>0}get undoCount(){return this.undoStack.length}get redoCount(){return this.redoStack.length}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}getHistory(){return[...this.undoStack]}getRedoHistory(){return[...this.redoStack]}pushBatch(e){e.length!==0&&(this.undoStack.push(...e),this.undoStack.length>this.maxHistory&&this.undoStack.splice(0,this.undoStack.length-this.maxHistory),this.redoStack=[],this.notify())}popUndoBatch(e){let t=Math.min(e,this.undoStack.length);if(t===0)return[];let n=this.undoStack.splice(this.undoStack.length-t,t);return this.redoStack.push(...n),this.notify(),n}popRedoBatch(e){let t=Math.min(e,this.redoStack.length);if(t===0)return[];let n=this.redoStack.splice(this.redoStack.length-t,t);return this.undoStack.push(...n),this.notify(),n}saveToStorage(){try{let t=JSON.stringify({undoStack:this.undoStack,redoStack:this.redoStack});localStorage.setItem(e.STORAGE_KEY,t)}catch{}}loadFromStorage(){try{if(typeof localStorage>`u`)return;let t=localStorage.getItem(e.STORAGE_KEY);if(!t)return;let n=JSON.parse(t);Array.isArray(n.undoStack)&&(this.undoStack=n.undoStack.filter(ol)),Array.isArray(n.redoStack)&&(this.redoStack=n.redoStack.filter(ol)),this.undoStack.length>this.maxHistory&&this.undoStack.splice(0,this.undoStack.length-this.maxHistory),this.notify()}catch{}}notify(){this.listeners.forEach(e=>e())}};Object.defineProperty(sl,"STORAGE_KEY",{enumerable:!0,configurable:!0,writable:!0,value:`objectui:undo-history`});var cl=new sl;async function ll(e,t){let{ids:n,allowBulk:r,offset:i,label:a=`bulk`}=e,o={succeeded:0,failed:0,errors:[]};if(r&&typeof t.bulkCall==`function`)try{let e=await t.bulkCall(n),r=Math.max(0,Math.min(e,n.length));o.succeeded+=r;let s=n.length-r;return s>0&&(o.failed+=s,o.errors.push({id:`batch_${i}`,error:`${s} record${s===1?``:`s`} failed in ${a}`})),o}catch{}return(await Promise.allSettled(n.map(e=>t.perRow(e)))).forEach((e,t)=>{e.status===`fulfilled`?o.succeeded+=1:(o.failed+=1,o.errors.push({id:n[t],error:e.reason instanceof Error?e.reason.message:String(e.reason)}))}),o}var ul=`https://objectui.dev/docs/errors`,dl={"OBJUI-001":{code:`OBJUI-001`,message:'Unknown component type: "${type}"',suggestion:`Ensure the component is registered via registry.register() before rendering. Check for typos in the component type name.`,docUrl:`${ul}/OBJUI-001`},"OBJUI-002":{code:`OBJUI-002`,message:"Schema validation failed: ${reason}",suggestion:`Verify the schema against the ObjectUI JSON spec. Run the built-in schema validator for details.`,docUrl:`${ul}/OBJUI-002`},"OBJUI-003":{code:`OBJUI-003`,message:"Expression evaluation failed: ${expression}",suggestion:`Check the expression syntax and ensure all referenced variables exist in the current data scope.`,docUrl:`${ul}/OBJUI-003`},"OBJUI-004":{code:`OBJUI-004`,message:'Plugin dependency missing: "${dependency}"',suggestion:`Install the required dependency and register it before loading this plugin.`,docUrl:`${ul}/OBJUI-004`},"OBJUI-005":{code:`OBJUI-005`,message:'Plugin already loaded: "${plugin}"',suggestion:`A plugin with the same name is already registered. Remove the duplicate or use a unique plugin name.`,docUrl:`${ul}/OBJUI-005`},"OBJUI-006":{code:`OBJUI-006`,message:'Plugin not found: "${plugin}"',suggestion:`Verify the plugin name and ensure it has been registered before access.`,docUrl:`${ul}/OBJUI-006`},"OBJUI-007":{code:`OBJUI-007`,message:'Registry namespace deprecated: "${namespace}"',suggestion:`Migrate to the new namespace format. See the migration guide for details.`,docUrl:`${ul}/OBJUI-007`},"OBJUI-008":{code:`OBJUI-008`,message:'Read-only scope violation: "${scope}"',suggestion:`You are trying to mutate a read-only data scope. Use a writable scope or clone the data before modifying.`,docUrl:`${ul}/OBJUI-008`},"OBJUI-009":{code:`OBJUI-009`,message:'Invalid field configuration: "${field}"',suggestion:`Check the field schema for required properties (type, name). Ensure the field widget is registered.`,docUrl:`${ul}/OBJUI-009`},"OBJUI-010":{code:`OBJUI-010`,message:'Action execution failed: "${action}"',suggestion:`Verify the action handler is registered and that all required parameters are provided.`,docUrl:`${ul}/OBJUI-010`}},fl=class extends Error{constructor(e,t,n){super(e),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:n}),this.name=`ObjectUIError`,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,message:this.message,code:this.code,details:this.details,stack:this.stack}}};function pl(e){return e instanceof fl}var ml=`__debug`;function hl(e){let t=e;if(t===void 0)try{t=typeof window<`u`?window.location.search:``}catch{t=``}let n=new URLSearchParams(t),r=n.has(ml),i=n.has(`${ml}_schema`),a=n.has(`${ml}_perf`),o=n.has(`${ml}_data`),s=n.has(`${ml}_expr`),c=n.has(`${ml}_events`),l=n.has(`${ml}_registry`);return{enabled:r||i||a||o||s||c||l,...i&&{schema:i},...a&&{perf:a},...o&&{data:o},...s&&{expr:s},...c&&{events:c},...l&&{registry:l}}}function gl(){try{if(typeof window<`u`)try{if(hl(window.location.search).enabled)return!0}catch{}let e=typeof globalThis<`u`&&globalThis.OBJECTUI_DEBUG;return e===!0||e===`true`||globalThis.process?.env?.OBJECTUI_DEBUG===`true`}catch{return!1}}function _l(e,t,n){gl()&&(n===void 0?console.log(`[ObjectUI Debug][${e}] ${t}`):console.log(`[ObjectUI Debug][${e}] ${t}`,n))}var vl=new Map;function yl(e){gl()&&vl.set(e,performance.now())}function bl(e){if(!gl())return;let t=vl.get(e);if(t!==void 0){let n=(performance.now()-t).toFixed(2);console.log(`[ObjectUI Debug][perf] ${e}: ${n}ms`),vl.delete(e)}}var xl=200,Sl=class e{constructor(){Object.defineProperty(this,"entries",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"subscribers",{enumerable:!0,configurable:!0,writable:!0,value:new Set})}static getInstance(){return e.instance||=new e,e.instance}static resetInstance(){e.instance=null}addPerf(e){this.push({kind:`perf`,data:e})}addExpr(e){this.push({kind:`expr`,data:e})}addEvent(e){this.push({kind:`event`,data:e})}getEntries(e){return e?this.entries.filter(t=>t.kind===e):this.entries.slice()}clear(){this.entries=[]}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}push(e){this.entries.push(e),this.entries.length>xl&&(this.entries=this.entries.slice(-200));for(let t of this.subscribers)try{t(e)}catch{}}};Object.defineProperty(Sl,"instance",{enumerable:!0,configurable:!0,writable:!0,value:null});var Cl=/\$\{event\.([a-zA-Z0-9_]+)\}/g;function wl(e,t){return typeof e!=`string`||e.indexOf("${event.")===-1?e:e.replace(Cl,(e,n)=>{let r=t[n];return r==null?``:String(r)})}function Tl(e,t){if(typeof e==`string`){let n=e.match(/^\$\{event\.([a-zA-Z0-9_]+)\}$/);if(n){let e=t[n[1]];return e===``||e===void 0?null:e}return wl(e,t)}if(Array.isArray(e))return e.map(e=>Tl(e,t));if(e&&typeof e==`object`){let n={};for(let[r,i]of Object.entries(e))n[r]=Tl(i,t);return n}return e}function El(e,t,n={}){if(e?.filter)return Tl(e.filter,t);let r={},{rowField:i,columnField:a,groupByField:o}=n,s=t.scope??`cell`;return s===`total`?r:((s===`cell`||s===`row`)&&i&&`rowKey`in t&&(r[i]=t.rowKey===``?null:t.rowKey),(s===`cell`||s===`column`)&&a&&`colKey`in t&&(r[a]=t.colKey===``?null:t.colKey),o&&`category`in t&&(r[o]=t.category===``?null:t.category),r)}function Dl(e,t,n=`Details`){if(e?.title){let n=wl(e.title,t).trim();if(n)return n}let r=[];return t.rowLabel&&r.push(t.rowLabel),t.colLabel&&r.push(t.colLabel),t.categoryLabel?r.push(t.categoryLabel):t.category&&r.push(t.category),t.series&&r.push(t.series),r.length>0?r.join(` × `):n}function Ol(e){return e?e.enabled!==!1:!1}function kl(e,t=new Date){if(e==null)return e;let n=e=>{let t=new Date(e);return t.setHours(0,0,0,0),t},r=e=>{let t=n(e);return`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`},i=e=>{let t=n(e),r=(t.getDay()+6)%7;return t.setDate(t.getDate()-r),t},a=e=>new Date(e.getFullYear(),e.getMonth(),1),o=e=>{let t=Math.floor(e.getMonth()/3);return new Date(e.getFullYear(),t*3,1)},s=e=>new Date(e.getFullYear(),0,1),c=(e,t)=>new Date(e.getFullYear(),e.getMonth()+t,1),l={today:()=>r(t),now:()=>t.toISOString(),current_week_start:()=>r(i(t)),current_month_start:()=>r(a(t)),current_quarter_start:()=>r(o(t)),current_year_start:()=>r(s(t)),last_week_start:()=>{let e=i(t);return e.setDate(e.getDate()-7),r(e)},last_month_start:()=>r(c(a(t),-1)),last_quarter_start:()=>r(c(o(t),-3)),last_year_start:()=>r(new Date(t.getFullYear()-1,0,1))},u=/\$?\{([a-zA-Z_][a-zA-Z0-9_]*)\}/g,d=e=>{if(e==null)return e;if(typeof e==`string`){let t=e.match(/^\$?\{([a-zA-Z_][a-zA-Z0-9_]*)\}$/);if(t&&l[t[1]])return l[t[1]]();let n=!1,r=e.replace(u,(e,t)=>l[t]?(n=!0,l[t]()):e);return n?r:e}if(Array.isArray(e))return e.map(d);if(typeof e==`object`){let t={};for(let n of Object.keys(e))t[n]=d(e[n]);return t}return e};return d(e)}var Al=(0,W.createContext)(null),jl=()=>{let e=(0,W.useContext)(Al);if(!e)throw Error(`useSchemaContext must be used within a SchemaRendererProvider`);return e},Ml=e=>{let t=(0,W.useContext)(Al)?.dataSource;if(e&&t)return e.split(`.`).reduce((e,t)=>e&&e[t],t)};function Nl(e){if(e!=null)return typeof e==`string`?e:e.defaultValue||e.key}var Pl=(()=>{try{return!1}catch{return!0}})(),Fl=typeof WeakSet<`u`?new WeakSet:{add(){},has(){return!1}};function Il(e){if(!Pl||!e||typeof e!=`object`||Fl.has(e))return{valid:!0,messages:[]};Fl.add(e);try{let t=Hc(e);if(!t.valid){let n=t.errors.map(e=>`${e.path}: ${e.message}`);return console.warn(`[ObjectUI] Invalid schema detected:
|
|
3
|
+
`+n.join(`
|
|
4
|
+
`),e),{valid:!1,messages:n}}}catch(e){console.warn(`[ObjectUI] Schema validator threw:`,e)}return{valid:!0,messages:[]}}function Ll(e){let t={};return e.ariaLabel&&(t[`aria-label`]=Nl(e.ariaLabel)),e.ariaDescribedBy&&(t[`aria-describedby`]=e.ariaDescribedBy),e.role&&(t.role=e.role),t}var Rl=class extends W.Component{constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:{hasError:!1,error:null}}),Object.defineProperty(this,"handleRetry",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.setState({hasError:!1,error:null})}})}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidUpdate(e){this.state.hasError&&(e.componentType!==this.props.componentType||e.resetKey!==this.props.resetKey)&&this.setState({hasError:!1,error:null})}render(){if(this.state.hasError&&this.state.error){let e=this.state.error;return pl(e),(0,G.jsxs)(`div`,{className:`p-4 border border-orange-400 rounded bg-orange-50 text-orange-700 my-2`,role:`alert`,children:[(0,G.jsxs)(`p`,{className:`font-medium`,children:[`Component`,this.props.componentType?` "${this.props.componentType}"`:``,` failed to render`]}),(0,G.jsx)(`p`,{className:`text-sm mt-1`,children:e.message}),!1,(0,G.jsx)(`button`,{onClick:this.handleRetry,className:`mt-2 text-sm underline hover:no-underline`,children:`Retry`})]})}return this.props.children}},zl=(0,W.forwardRef)(({schema:e,...t},n)=>{let r=(0,W.useContext)(Al),i=r?.dataSource||{},[,a]=(0,W.useReducer)(e=>e+1,0);(0,W.useEffect)(()=>K.subscribe(a),[]);let[o,s]=(0,W.useState)(null),c=(0,W.useMemo)(()=>{if(!e||typeof e==`string`)return e;let t=new $c({data:i}),n={...e};if(n.properties){let e=n.type,t=n.id,r=n.properties;for(let[e,t]of Object.entries(r))e===`type`||e===`id`||(n[e]=t);e!==void 0&&(n.type=e),t!==void 0&&(n.id=t),n.properties=r}if(typeof n.content==`string`&&(n.content=t.evaluate(n.content)),n.props){let e={...n.props};for(let[n,r]of Object.entries(e))e[n]=t.evaluate(r);n.props=e}return(n.visible===void 0?n.visibleOn===void 0?n.hidden===void 0?n.hiddenOn!==void 0&&t.evaluateCondition(n.hiddenOn):t.evaluateCondition(n.hidden):!t.evaluateCondition(n.visibleOn):!t.evaluateCondition(n.visible))&&(n._hidden=!0),(n.disabled===void 0?n.disabledOn!==void 0&&t.evaluateCondition(n.disabledOn):t.evaluateCondition(n.disabled))&&(n._disabled=!0),n},[e,i]);if(!c||c?._hidden)return null;if(typeof c==`string`)return(0,G.jsx)(G.Fragment,{children:c});let l=Pl?Il(e):{valid:!0,messages:[]};_l(`schema`,`Rendering schema node`,{type:c.type,id:c.id});let u=K.get(c.type);if(!u){if(!o&&K.hasLazy(c.type)){let e=K.loadLazy(c.type);if(e)return e.catch(e=>{s(e instanceof Error?e:Error(String(e)))}),(0,G.jsxs)(`div`,{className:`p-2 text-sm text-muted-foreground animate-pulse`,role:`status`,"aria-live":`polite`,"data-lazy-loading":c.type,children:[`Loading `,(0,G.jsx)(`code`,{children:c.type}),`…`]})}return _l(`schema`,`Component not found in registry`,{type:c.type}),dl[`OBJUI-001`],(0,G.jsxs)(`div`,{className:`p-4 border border-red-500 rounded text-red-500 bg-red-50 my-2`,role:`alert`,children:[(0,G.jsxs)(`p`,{className:`font-medium`,children:[`Unknown component type: `,(0,G.jsx)(`strong`,{children:c.type})]}),o&&(0,G.jsxs)(`p`,{className:`text-xs mt-1`,children:[`Failed to load plugin: `,o.message]}),!1,(0,G.jsx)(`pre`,{className:`text-xs mt-2 overflow-auto`,children:JSON.stringify(c,null,2)})]})}let{type:d,children:f,body:p,schema:m,visible:h,visibleOn:g,hidden:_,hiddenOn:v,disabled:y,disabledOn:b,_hidden:x,_disabled:S,...C}=c,w=Ll(c),T=r?.debug||r?.debugFlags?.enabled,E={};T&&(E[`data-debug-type`]=c.type,c.id&&(E[`data-debug-id`]=c.id)),yl(`render:${c.type}:${c.id??`anon`}`);let ee=T?performance.now():0,D=(0,G.jsx)(Rl,{componentType:c.type,resetKey:c.id??null,children:W.createElement(u,{schema:c,...C,...c.props||{},...w,...E,disabled:S||void 0,className:c.className,"data-obj-id":c.id,"data-obj-type":c.type,...Pl&&!l.valid?{"data-obj-schema-invalid":`true`}:{},...t})});if(bl(`render:${c.type}:${c.id??`anon`}`),T&&ee){let e=performance.now()-ee;Sl.getInstance().addPerf({type:c.type,id:c.id,durationMs:e,timestamp:Date.now()})}return D});zl.displayName=`SchemaRenderer`;function Bl(e){if(!(e==null||e===``)){if(typeof e==`boolean`)return e;if(typeof e==`string`)return`\${${e}}`;if(typeof e==`object`&&typeof e.source==`string`){let t=e.source;return t?`\${${t}}`:void 0}}}function Vl(e,t={}){return(0,W.useMemo)(()=>new $c(t).evaluateCondition(e),[e,t])}function Hl(e){let{navigation:t,objectName:n,onNavigate:r,onRowClick:i}=e,[a,o]=(0,W.useState)(!1),[s,c]=(0,W.useState)(null),l=t?.mode??`page`,u=t?.width,d=t?.view,f=l===`drawer`||l===`modal`||l===`split`||l===`popover`,p=(0,W.useCallback)(()=>{o(!1),c(null)},[]),m=(0,W.useCallback)(e=>{c(e),o(!0)},[]),h=(0,W.useCallback)((e,a)=>{if(i){i(e,a);return}if(a&&(a.metaKey||a.ctrlKey||a.button===1)){let t=e.id||e._id;if(r&&t!=null){r(t,`new_window`);return}}if(!t){let t=e.id||e._id;r&&t!=null&&r(t,d??`view`);return}if(!(l===`none`||t.preventNavigation)){if(l===`new_window`||t.openNewTab){let t=e.id||e._id;if(r&&t!=null){r(t,`new_window`);return}let i=encodeURIComponent(String(t)),a=n?`/${n}/record/${i}`:`/${i}`;window.open(a,`_blank`);return}if(l===`page`){let t=e.id||e._id;r&&t!=null&&r(t,d??`view`);return}if(f){c(e),o(!0);return}}},[i,t,l,n,r,f,d]);return(0,W.useMemo)(()=>({isOpen:a,selectedRecord:s,mode:l,close:p,open:m,setIsOpen:o,handleClick:h,width:u,view:d,isOverlay:f}),[a,s,l,p,m,h,u,d,f])}var Ul=(0,W.createContext)(null);function Wl(e){if(!e||e.length===0)return{};let t={};for(let n of e)if(n.defaultValue!==void 0)t[n.name]=n.defaultValue;else switch(n.type){case`number`:t[n.name]=0;break;case`boolean`:t[n.name]=!1;break;case`object`:t[n.name]={};break;case`array`:t[n.name]=[];break;default:t[n.name]=``;break}return t}var Gl=({definitions:e,children:t})=>{let[n,r]=(0,W.useState)(()=>Wl(e)),i=(0,W.useCallback)((e,t)=>{r(n=>({...n,[e]:t}))},[]),a=(0,W.useCallback)(e=>{r(t=>({...t,...e}))},[]),o=(0,W.useCallback)(()=>{r(Wl(e))},[e]),s=(0,W.useMemo)(()=>({variables:n,setVariable:i,setVariables:a,resetVariables:o}),[n,i,a,o]);return(0,G.jsx)(Ul.Provider,{value:s,children:t})};Gl.displayName=`PageVariablesProvider`,[`a[href]`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`, `);var Kl=0,ql=(0,W.createContext)(null),Jl=({children:e,config:t={},onToast:n})=>{let r=(0,W.useMemo)(()=>({position:`top-right`,defaultDuration:5e3,maxVisible:5,stacking:!0,...t}),[JSON.stringify(t)]),[i,a]=(0,W.useState)([]),o=(0,W.useCallback)(e=>{let t=`notification-${++Kl}`,i={...e,id:t,createdAt:new Date,read:!1};a(e=>[i,...e]),n&&n(i);let o=e.duration??r.defaultDuration??5e3;return o>0&&setTimeout(()=>{a(e=>e.filter(e=>e.id!==t))},o),t},[r.defaultDuration,n]),s=(0,W.useCallback)((e,t)=>o({title:e,message:t,severity:`info`}),[o]),c=(0,W.useCallback)((e,t)=>o({title:e,message:t,severity:`success`}),[o]),l=(0,W.useCallback)((e,t)=>o({title:e,message:t,severity:`warning`}),[o]),u=(0,W.useCallback)((e,t)=>o({title:e,message:t,severity:`error`}),[o]),d=(0,W.useCallback)(e=>{a(t=>t.map(t=>t.id===e?{...t,read:!0}:t))},[]),f=(0,W.useCallback)(()=>{a(e=>e.map(e=>({...e,read:!0})))},[]),p=(0,W.useCallback)(e=>{a(t=>t.filter(t=>t.id!==e))},[]),m=(0,W.useCallback)(()=>{a([])},[]),h=(0,W.useMemo)(()=>i.filter(e=>!e.read).length,[i]),g=(0,W.useMemo)(()=>({notifications:i,unreadCount:h,notify:o,info:s,success:c,warning:l,error:u,markAsRead:d,markAllAsRead:f,dismiss:p,clearAll:m,config:r}),[i,h,o,s,c,l,u,d,f,p,m,r]);return(0,G.jsx)(ql.Provider,{value:g,children:e})};Jl.displayName=`NotificationProvider`;function Yl(){return{canUndo:cl.canUndo,canRedo:cl.canRedo,undoDescription:cl.peekUndo()?.description,redoDescription:cl.peekRedo()?.description,history:cl.getHistory()}}Yl();function Xl(e={}){let{actions:t=[],context:n={}}=e,r=(0,W.useMemo)(()=>{let e=new al(n);return e.registerActions(t),e},[JSON.stringify(t),JSON.stringify(n)]);return{getActionsForLocation:(0,W.useCallback)(e=>r.getActionsForLocation(e),[r]),getBulkActions:(0,W.useCallback)(()=>r.getBulkActions(),[r]),executeAction:(0,W.useCallback)((e,t)=>r.executeAction(e,t),[r]),handleShortcut:(0,W.useCallback)(e=>r.handleShortcut(e),[r]),engine:r}}(0,W.createContext)(null),(0,W.createContext)(null);var Zl=(0,W.createContext)(null),Ql=({children:e,context:t={},onConfirm:n,onToast:r,onModal:i,onNavigate:a,onParamCollection:o,handlers:s})=>{let[c,l]=(0,W.useState)(!1),[u,d]=(0,W.useState)(null),[f,p]=(0,W.useState)(null),m=(0,W.useMemo)(()=>{let e=new rl(t);return n&&e.setConfirmHandler(n),r&&e.setToastHandler(r),i&&e.setModalHandler(i),a&&e.setNavigationHandler(a),o&&e.setParamCollectionHandler(o),s&&Object.entries(s).forEach(([t,n])=>{e.registerHandler(t,n)}),e},[JSON.stringify(t)]),h=(0,W.useCallback)(async e=>{l(!0),d(null),p(null);try{let t=await m.execute(e);return p(t),t.success||d(t.error||`Action failed`),t}catch(e){let t=e.message;d(t);let n={success:!1,error:t};return p(n),n}finally{l(!1)}},[m]),g=(0,W.useCallback)(async(e,t)=>{l(!0),d(null),p(null);try{let n=await m.executeChain(e,t);return p(n),n.success||d(n.error||`Chain failed`),n}catch(e){let t=e.message;d(t);let n={success:!1,error:t};return p(n),n}finally{l(!1)}},[m]),_=(0,W.useCallback)(e=>{m.updateContext(e)},[m]),v=(0,W.useMemo)(()=>({execute:h,executeChain:g,loading:c,error:u,result:f,runner:m,updateContext:_}),[h,g,c,u,f,m,_]);return(0,G.jsx)(Zl.Provider,{value:v,children:e})};Ql.displayName=`ActionProvider`;function $l(){let e=(0,W.useContext)(Zl);if(!e){let e=new rl;return{execute:t=>e.execute(t),executeChain:(t,n)=>e.executeChain(t,n),loading:!1,error:null,result:null,runner:e,updateContext:t=>e.updateContext(t)}}return e}(0,W.createContext)(null);var eu=(0,W.createContext)(null),tu=({children:e,config:t={},onDragStart:n,onDrop:r,onDragCancel:i})=>{let a=(0,W.useMemo)(()=>({enabled:!0,showPreview:!0,autoScroll:!0,...t}),[JSON.stringify(t)]),[o,s]=(0,W.useState)(null),[c]=(0,W.useState)(()=>new Map),l=(0,W.useCallback)(e=>{a.enabled&&(s(e),n?.({item:e,targetZoneId:null,effect:`move`}))},[a.enabled,n]),u=(0,W.useCallback)(e=>{if(!o)return;let t=(e?c.get(e):void 0)?.effect??`move`;r?.({item:o,targetZoneId:e??null,effect:t}),s(null)},[o,c,r]),d=(0,W.useCallback)(()=>{o&&(i?.({item:o,targetZoneId:null,effect:`none`}),s(null))},[o,i]),f=(0,W.useCallback)(e=>{c.set(e.id,e)},[c]),p=(0,W.useCallback)(e=>{c.delete(e)},[c]),m=(0,W.useCallback)((e,t)=>{let n=c.get(e);return!n||n.disabled?!1:n.acceptTypes.includes(t)},[c]),h=(0,W.useMemo)(()=>({config:a,enabled:a.enabled??!0,activeItem:o,dropZones:c,startDrag:l,endDrag:u,cancelDrag:d,registerDropZone:f,unregisterDropZone:p,canDrop:m}),[a,o,c,l,u,d,f,p,m]);return(0,G.jsx)(eu.Provider,{value:h,children:e})};tu.displayName=`DndProvider`;function nu(){let e=(0,W.useContext)(eu);if(!e)throw Error(`useDnd must be used within a <DndProvider>. Wrap your app with <DndProvider> to use the drag and drop system.`);return e}function ru(){return(0,W.useContext)(eu)!==null}var iu=W.createContext(null);function au(){let e=W.useContext(iu);return W.useSyncExternalStore(e?e.subscribe:su,e?e.getNames:cu,e?e.getNames:cu)}function ou(e,t){let n=W.useContext(iu),r=t.join(`|`);W.useEffect(()=>{if(n)return n.register(e,r.length===0?[]:r.split(`|`)),()=>n.unregister(e)},[n,e,r])}var su=e=>()=>{},cu=()=>lu,lu=new Set,uu=W.createContext(null);function du(){return W.useContext(uu)}var fu=W.createContext(null);function pu(){return W.useContext(fu)}var mu=(0,W.createContext)(null);function hu(e){let t=(0,W.useContext)(mu),{t:n,i18n:r}=oe(e);return{t:n,language:t?.language||r.language||`en`,changeLanguage:t?.changeLanguage||(async e=>{await r.changeLanguage(e)}),direction:t?.direction||`ltr`,i18n:r}}function gu(e,t){return function(){try{let n=hu();return n.t(t)===t?{t:(t,n)=>{let r=e[t]||t;if(n)for(let[e,t]of Object.entries(n))r=r.replace(`{{${e}}}`,String(t));return r}}:{t:n.t}}catch{return{t:(t,n)=>{let r=e[t]||t;if(n)for(let[e,t]of Object.entries(n))r=r.replace(`{{${e}}}`,String(t));return r}}}}}var _u=new Set([`common`,`validation`,`form`,`table`,`grid`,`calendar`,`list`,`kanban`,`chart`,`dashboard`,`configPanel`,`appDesigner`,`console`,`errors`,`detail`]);function vu(){let{t:e,i18n:t}=hu();return(0,W.useMemo)(()=>{let n=()=>{if(!t||typeof t.getResourceBundle!=`function`)return[];let e=t.language||`en`,n=t.getResourceBundle(e,`translation`);return n?Object.keys(n).filter(e=>!_u.has(e)&&n[e]&&typeof n[e]==`object`&&(n[e].objects||n[e].fields||n[e].apps||n[e].dashboards||n[e].pages||n[e].reports)):[]},r=e=>{if(typeof e!=`string`)return``;let t=e.indexOf(`__`);return t>0?e.slice(t+2):e},i=(t,r)=>{let i=Array.isArray(t)?t:[t];try{let t=n();for(let n of t)for(let t of i){let r=`${n}.${t}`,i=e(r,{defaultValue:``});if(i&&i!==r&&i!==``)return i}}catch{}return r},a=(e,t)=>{let n=r(e);return n===e?[`objects.${e}.${t}`]:[`objects.${e}.${t}`,`objects.${n}.${t}`]},o=(e,t)=>{let n=r(e);return n===e?[`fields.${e}.${t}`]:[`fields.${e}.${t}`,`fields.${n}.${t}`]},s=(e,t,n)=>{let i=r(e);return i===e?[`fieldOptions.${e}.${t}.${n}`]:[`fieldOptions.${e}.${t}.${n}`,`fieldOptions.${i}.${t}.${n}`]},c=(e,t)=>{let n=r(e);return n===e?[`dashboards.${e}.${t}`]:[`dashboards.${e}.${t}`,`dashboards.${n}.${t}`]},l=(e,t)=>{let n=r(e);return n===e?[`pages.${e}.${t}`]:[`pages.${e}.${t}`,`pages.${n}.${t}`]},u=(e,t)=>{let n=r(e);return n===e?[`reports.${e}.${t}`]:[`reports.${e}.${t}`,`reports.${n}.${t}`]};return{objectLabel:e=>i(a(e.name,`label`),e.label),objectDescription:e=>{if(e.description)return i(a(e.name,`description`),e.description)},fieldLabel:(e,t,n)=>i(o(e,t),n),fieldOptionLabel:(e,t,n,r)=>i(s(e,t,n),r),translateOptions:(e,t,n)=>n.map(n=>({...n,label:i(s(e,t,n.value),n.label)})),appLabel:e=>i(`apps.${e.name}.label`,e.label??e.name),appDescription:e=>{let t=e.description??``;return i(`apps.${e.name}.description`,t)||void 0},navGroupLabel:(e,t,n)=>i(`apps.${e}.navigation.${t}.label`,n),dashboardLabel:e=>i(c(e.name,`label`),e.label??e.name),dashboardDescription:e=>{let t=e.description??``;return i(c(e.name,`description`),t)||void 0},dashboardActionLabel:(e,t,n)=>i(c(e,`actions.${t}.label`),n),widgetTitle:(e,t,n)=>i(c(e,`widgets.${t}.title`),n),widgetDescription:(e,t,n)=>{let r=n??``;return i(c(e,`widgets.${t}.description`),r)||void 0},pageLabel:e=>i(l(e.name,`label`),e.label??e.name),reportLabel:e=>i(u(e.name,`label`),e.label??e.name),viewLabel:(e,t,n)=>i(a(e,`_views.${t}.label`),n),viewDescription:(e,t,n)=>{let r=n??``;return i(a(e,`_views.${t}.description`),r)||void 0},viewEmptyState:(e,t,n)=>{if(!n)return;let r=n.title?i(a(e,`_views.${t}.emptyState.title`),n.title):n.title,o=n.message?i(a(e,`_views.${t}.emptyState.message`),n.message):n.message;return{...n,title:r,message:o}},sectionLabel:(e,t,n)=>i(a(e,`_sections.${t}.label`),n),actionLabel:(e,t,n)=>i(e?a(e,`_actions.${t}.label`):`globalActions.${t}.label`,n),actionConfirm:(e,t,n)=>{let r=n??``;return i(e?a(e,`_actions.${t}.confirmText`):`globalActions.${t}.confirmText`,r)||void 0},actionSuccess:(e,t,n)=>{let r=n??``;return i(e?a(e,`_actions.${t}.successMessage`):`globalActions.${t}.successMessage`,r)||void 0}}},[e,t])}var yu={fieldLabel:(e,t,n)=>n,translateOptions:(e,t,n)=>n,fieldOptionLabel:(e,t,n,r)=>r,sectionLabel:(e,t,n)=>n};function bu(){let e=null;try{e=vu()}catch{e=null}return e??yu}var xu=gu({"common.selectOption":`Select an option`},`common.selectOption`),Su=({field:e,methods:t,disabled:n=!1})=>{let{register:r,formState:{errors:i}}=t,{t:a}=xu(),o=e,s=e.widget||`text`,c=e.field,l=i[c],u=Nl(e.label),d=Nl(e.placeholder),f=Nl(e.helpText),p=e=>o.multiple&&e instanceof HTMLCollection?Array.from(e).map(e=>e.value):e;if(e.hidden)return null;let m=t=>(0,G.jsxs)(`div`,{className:`space-y-2`,children:[u&&(0,G.jsxs)(`label`,{htmlFor:c,className:`block text-sm font-medium text-gray-700`,children:[u,e.required&&(0,G.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),t,f&&(0,G.jsx)(`p`,{className:`text-sm text-gray-500`,children:f}),l&&(0,G.jsx)(`p`,{className:`text-sm text-red-600`,children:l.message})]});switch(s.toLowerCase()){case`text`:case`string`:case`email`:case`password`:case`url`:case`tel`:return m((0,G.jsx)(`input`,{id:c,type:s===`string`?`text`:s,placeholder:d,disabled:n,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`number`:case`integer`:case`float`:return m((0,G.jsx)(`input`,{id:c,type:`number`,placeholder:d,disabled:n,step:s===`integer`?`1`:`any`,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1,valueAsNumber:!0})}));case`checkbox`:case`boolean`:return(0,G.jsxs)(`div`,{className:`flex items-start space-x-2`,children:[(0,G.jsx)(`input`,{id:c,type:`checkbox`,disabled:n,className:`mt-1 h-4 w-4 text-blue-600 border-gray-300 rounded focus:ring-2 focus:ring-blue-500 disabled:opacity-50`,...r(c)}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[u&&(0,G.jsxs)(`label`,{htmlFor:c,className:`text-sm font-medium text-gray-700`,children:[u,e.required&&(0,G.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),f&&(0,G.jsx)(`p`,{className:`text-sm text-gray-500 mt-1`,children:f}),l&&(0,G.jsx)(`p`,{className:`text-sm text-red-600 mt-1`,children:l.message})]})]});case`textarea`:return m((0,G.jsx)(`textarea`,{id:c,placeholder:d,disabled:n,rows:4,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`select`:case`dropdown`:return m((0,G.jsxs)(`select`,{id:c,disabled:n,multiple:o.multiple,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1,setValueAs:p}),children:[!o.multiple&&(0,G.jsx)(`option`,{value:``,children:d||a(`common.selectOption`)}),o.options?.map(e=>(0,G.jsx)(`option`,{value:e.value,disabled:e.disabled,children:e.label},e.value))]}));case`date`:return m((0,G.jsx)(`input`,{id:c,type:`date`,placeholder:d,disabled:n,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`datetime`:case`datetime-local`:return m((0,G.jsx)(`input`,{id:c,type:`datetime-local`,placeholder:d,disabled:n,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`time`:return m((0,G.jsx)(`input`,{id:c,type:`time`,placeholder:d,disabled:n,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`currency`:return m((0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`span`,{className:`absolute left-3 top-2 text-gray-500`,children:`$`}),(0,G.jsx)(`input`,{id:c,type:`number`,placeholder:d,disabled:n,step:`0.01`,className:`w-full pl-8 pr-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1,valueAsNumber:!0})})]}));case`percent`:return m((0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{id:c,type:`number`,placeholder:d,disabled:n,step:`0.01`,min:`0`,max:`100`,className:`w-full pr-8 pl-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1,valueAsNumber:!0})}),(0,G.jsx)(`span`,{className:`absolute right-3 top-2 text-gray-500`,children:`%`})]}));case`phone`:return m((0,G.jsx)(`input`,{id:c,type:`tel`,placeholder:d||`+1 (555) 000-0000`,disabled:n,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`markdown`:return m((0,G.jsx)(`textarea`,{id:c,placeholder:d||`Enter markdown text...`,disabled:n,rows:8,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed font-mono`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`html`:return m((0,G.jsx)(`textarea`,{id:c,placeholder:d||`Enter HTML...`,disabled:n,rows:8,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed font-mono`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`file`:return m((0,G.jsx)(`input`,{id:c,type:`file`,disabled:n,multiple:o.multiple,accept:o.accept?.join(`,`),className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed file:mr-4 file:py-2 file:px-4 file:rounded-md file:border-0 file:text-sm file:font-semibold file:bg-blue-50 file:text-blue-700 hover:file:bg-blue-100`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`image`:return m((0,G.jsx)(`input`,{id:c,type:`file`,disabled:n,multiple:o.multiple,accept:o.accept?.join(`,`)||`image/*`,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed file:mr-4 file:py-2 file:px-4 file:rounded-md file:border-0 file:text-sm file:font-semibold file:bg-blue-50 file:text-blue-700 hover:file:bg-blue-100`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`location`:return m((0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`input`,{id:`${c}-lat`,type:`number`,placeholder:`Latitude`,disabled:n,step:`any`,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(`${c}.lat`,{required:e.required?`Latitude is required`:!1,valueAsNumber:!0})}),(0,G.jsx)(`input`,{id:`${c}-lng`,type:`number`,placeholder:`Longitude`,disabled:n,step:`any`,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(`${c}.lng`,{required:e.required?`Longitude is required`:!1,valueAsNumber:!0})})]}));case`lookup`:case`master_detail`:return m((0,G.jsxs)(`select`,{id:c,disabled:n,multiple:o.multiple,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1,setValueAs:p}),children:[!o.multiple&&(0,G.jsx)(`option`,{value:``,children:d||a(`common.selectOption`)}),o.options?.map(e=>(0,G.jsx)(`option`,{value:e.value,disabled:e.disabled,children:e.label},e.value))]}));case`user`:case`owner`:return m((0,G.jsxs)(`select`,{id:c,disabled:n,multiple:o.multiple,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1,setValueAs:p}),children:[!o.multiple&&(0,G.jsx)(`option`,{value:``,children:d||`Select user`}),o.options?.map(e=>(0,G.jsx)(`option`,{value:e.value,disabled:e.disabled,children:e.label},e.value))]}));case`formula`:case`summary`:case`auto_number`:return m((0,G.jsx)(`input`,{id:c,type:`text`,disabled:!0,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm bg-gray-50 cursor-not-allowed text-gray-600`,...r(c)}));case`object`:return m((0,G.jsx)(`textarea`,{id:c,placeholder:d||`Enter JSON object...`,disabled:n,rows:6,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed font-mono text-sm`,...r(c,{required:e.required?`${u||c} is required`:!1,validate:e=>{if(!e)return!0;try{return JSON.parse(e),!0}catch{return`Invalid JSON format`}}})}));case`vector`:return m((0,G.jsx)(`input`,{id:c,type:`text`,placeholder:d||`Vector data (read-only)`,disabled:!0,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm bg-gray-50 cursor-not-allowed text-gray-600`,...r(c)}));case`grid`:return m((0,G.jsx)(`div`,{className:`w-full px-3 py-2 border border-gray-300 rounded-md bg-gray-50 text-gray-600`,children:(0,G.jsx)(`p`,{className:`text-sm`,children:`Grid editor not yet implemented`})}));default:return m((0,G.jsx)(`input`,{id:c,type:`text`,placeholder:d,disabled:n,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}))}};Su.displayName=`FieldFactory`;var Cu=({schema:e,data:t={},onSubmit:n,onChange:r,className:i=``,disabled:a=!1})=>{let o=D({defaultValues:t,mode:`onChange`}),{handleSubmit:s,watch:c}=o;W.useEffect(()=>{if(r){let e=c(e=>{r(e)});return()=>e.unsubscribe()}},[c,r]);let l=s(async e=>{n&&await n(e)}),u=()=>!e.sections||e.sections.length===0?null:(0,G.jsx)(`div`,{className:`space-y-6`,children:e.sections.map((e,t)=>(0,G.jsx)(Du,{section:e,methods:o,disabled:a},t))});return(0,G.jsx)(se,{...o,children:(0,G.jsxs)(`form`,{onSubmit:l,className:`space-y-6 ${i}`,children:[u(),(0,G.jsx)(`div`,{className:`flex justify-end gap-2`,children:(0,G.jsx)(`button`,{type:`submit`,disabled:a,className:`px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed`,children:`Submit`})})]})})},wu={1:`grid-cols-1`,2:`grid-cols-1 md:grid-cols-2`,3:`grid-cols-1 md:grid-cols-3`,4:`grid-cols-1 md:grid-cols-2 lg:grid-cols-4`},Tu={1:`col-span-1`,2:`col-span-2`,3:`col-span-3`,4:`col-span-4`};function Eu(e,t){if(e.hidden)return!1;if(e.visibleOn)try{return new $c({data:t,form:t}).evaluateCondition(e.visibleOn)}catch{return!0}if(e.dependsOn){let n=t[e.dependsOn];return n!=null&&n!==``}return!0}var Du=({section:e,methods:t,disabled:n=!1})=>{let[r,i]=W.useState(e.collapsed||!1),a=wu[e.columns||1],o=W.useMemo(()=>e.fields.some(e=>typeof e==`string`?!1:!!e.dependsOn||!!e.visibleOn),[e.fields]),s=t.watch(),c=o?s:void 0;return(0,G.jsxs)(`div`,{className:`border rounded-lg p-4`,children:[e.label&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4 ${e.collapsible?`cursor-pointer`:``}`,onClick:()=>{e.collapsible&&i(!r)},children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold`,children:Nl(e.label)}),e.collapsible&&(0,G.jsx)(`span`,{className:`text-sm text-gray-500`,children:r?`▶`:`▼`})]}),!r&&(0,G.jsx)(`div`,{className:`grid ${a} gap-4`,children:e.fields.map((r,i)=>{let a=typeof r==`string`?r:r.field,o=typeof r==`string`?{field:a}:r;if(!Eu(o,c||{}))return null;let s=o.colSpan||1,l=Tu[Math.min(s,e.columns||1)];return(0,G.jsx)(`div`,{className:l,children:(0,G.jsx)(Su,{field:o,methods:t,disabled:n||o.readonly})},`${a}-${i}`)})})]})};Cu.displayName=`FormRenderer`;var Ou=`Collapsible`,[ku,Au]=o(Ou),[ju,Mu]=ku(Ou),Nu=W.forwardRef((e,t)=>{let{__scopeCollapsible:n,open:r,defaultOpen:i,disabled:a,onOpenChange:o,...s}=e,[c,l]=S({prop:r,defaultProp:i??!1,onChange:o,caller:Ou});return(0,G.jsx)(ju,{scope:n,disabled:a,contentId:k(),open:c,onOpenToggle:W.useCallback(()=>l(e=>!e),[l]),children:(0,G.jsx)(w.div,{"data-state":zu(c),"data-disabled":a?``:void 0,...s,ref:t})})});Nu.displayName=Ou;var Pu=`CollapsibleTrigger`,Fu=W.forwardRef((e,t)=>{let{__scopeCollapsible:n,...r}=e,i=Mu(Pu,n);return(0,G.jsx)(w.button,{type:`button`,"aria-controls":i.contentId,"aria-expanded":i.open||!1,"data-state":zu(i.open),"data-disabled":i.disabled?``:void 0,disabled:i.disabled,...r,ref:t,onClick:j(e.onClick,i.onOpenToggle)})});Fu.displayName=Pu;var Iu=`CollapsibleContent`,Lu=W.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=Mu(Iu,e.__scopeCollapsible);return(0,G.jsx)(f,{present:n||i.open,children:({present:e})=>(0,G.jsx)(Ru,{...r,ref:t,present:e})})});Lu.displayName=Iu;var Ru=W.forwardRef((e,t)=>{let{__scopeCollapsible:n,present:r,children:i,...a}=e,o=Mu(Iu,n),[s,c]=W.useState(r),l=W.useRef(null),u=y(t,l),d=W.useRef(0),f=d.current,p=W.useRef(0),m=p.current,h=o.open||s,g=W.useRef(h),_=W.useRef(void 0);return W.useEffect(()=>{let e=requestAnimationFrame(()=>g.current=!1);return()=>cancelAnimationFrame(e)},[]),Ke(()=>{let e=l.current;if(e){_.current=_.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();d.current=t.height,p.current=t.width,g.current||(e.style.transitionDuration=_.current.transitionDuration,e.style.animationName=_.current.animationName),c(r)}},[o.open,r]),(0,G.jsx)(w.div,{"data-state":zu(o.open),"data-disabled":o.disabled?``:void 0,id:o.contentId,hidden:!h,...a,ref:u,style:{"--radix-collapsible-content-height":f?`${f}px`:void 0,"--radix-collapsible-content-width":m?`${m}px`:void 0,...e.style},children:h&&i})});function zu(e){return e?`open`:`closed`}var Bu=Nu,Vu=Fu,Hu=Lu,Uu=`Accordion`,Wu=[`Home`,`End`,`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`],[Gu,Ku,qu]=ci(Uu),[Ju,Yu]=o(Uu,[qu,Au]),Xu=Au(),Zu=W.forwardRef((e,t)=>{let{type:n,...r}=e,i=r,a=r;return(0,G.jsx)(Gu.Provider,{scope:e.__scopeAccordion,children:n===`multiple`?(0,G.jsx)(rd,{...a,ref:t}):(0,G.jsx)(nd,{...i,ref:t})})});Zu.displayName=Uu;var[Qu,$u]=Ju(Uu),[ed,td]=Ju(Uu,{collapsible:!1}),nd=W.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},collapsible:a=!1,...o}=e,[s,c]=S({prop:n,defaultProp:r??``,onChange:i,caller:Uu});return(0,G.jsx)(Qu,{scope:e.__scopeAccordion,value:W.useMemo(()=>s?[s]:[],[s]),onItemOpen:c,onItemClose:W.useCallback(()=>a&&c(``),[a,c]),children:(0,G.jsx)(ed,{scope:e.__scopeAccordion,collapsible:a,children:(0,G.jsx)(od,{...o,ref:t})})})}),rd=W.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=S({prop:n,defaultProp:r??[],onChange:i,caller:Uu}),c=W.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=W.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,G.jsx)(Qu,{scope:e.__scopeAccordion,value:o,onItemOpen:c,onItemClose:l,children:(0,G.jsx)(ed,{scope:e.__scopeAccordion,collapsible:!0,children:(0,G.jsx)(od,{...a,ref:t})})})}),[id,ad]=Ju(Uu),od=W.forwardRef((e,t)=>{let{__scopeAccordion:n,disabled:r,dir:i,orientation:a=`vertical`,...o}=e,s=y(W.useRef(null),t),c=Ku(n),l=ui(i)===`ltr`,u=j(e.onKeyDown,e=>{if(!Wu.includes(e.key))return;let t=e.target,n=c().filter(e=>!e.ref.current?.disabled),r=n.findIndex(e=>e.ref.current===t),i=n.length;if(r===-1)return;e.preventDefault();let o=r,s=i-1,u=()=>{o=r+1,o>s&&(o=0)},d=()=>{o=r-1,o<0&&(o=s)};switch(e.key){case`Home`:o=0;break;case`End`:o=s;break;case`ArrowRight`:a===`horizontal`&&(l?u():d());break;case`ArrowDown`:a===`vertical`&&u();break;case`ArrowLeft`:a===`horizontal`&&(l?d():u());break;case`ArrowUp`:a===`vertical`&&d();break}n[o%i].ref.current?.focus()});return(0,G.jsx)(id,{scope:n,disabled:r,direction:i,orientation:a,children:(0,G.jsx)(Gu.Slot,{scope:n,children:(0,G.jsx)(w.div,{...o,"data-orientation":a,ref:s,onKeyDown:r?void 0:u})})})}),sd=`AccordionItem`,[cd,ld]=Ju(sd),ud=W.forwardRef((e,t)=>{let{__scopeAccordion:n,value:r,...i}=e,a=ad(sd,n),o=$u(sd,n),s=Xu(n),c=k(),l=r&&o.value.includes(r)||!1,u=a.disabled||e.disabled;return(0,G.jsx)(cd,{scope:n,open:l,disabled:u,triggerId:c,children:(0,G.jsx)(Bu,{"data-orientation":a.orientation,"data-state":_d(l),...s,...i,ref:t,disabled:u,open:l,onOpenChange:e=>{e?o.onItemOpen(r):o.onItemClose(r)}})})});ud.displayName=sd;var dd=`AccordionHeader`,fd=W.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=ad(Uu,n),a=ld(dd,n);return(0,G.jsx)(w.h3,{"data-orientation":i.orientation,"data-state":_d(a.open),"data-disabled":a.disabled?``:void 0,...r,ref:t})});fd.displayName=dd;var pd=`AccordionTrigger`,md=W.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=ad(Uu,n),a=ld(pd,n),o=td(pd,n),s=Xu(n);return(0,G.jsx)(Gu.ItemSlot,{scope:n,children:(0,G.jsx)(Vu,{"aria-disabled":a.open&&!o.collapsible||void 0,"data-orientation":i.orientation,id:a.triggerId,...s,...r,ref:t})})});md.displayName=pd;var hd=`AccordionContent`,gd=W.forwardRef((e,t)=>{let{__scopeAccordion:n,...r}=e,i=ad(Uu,n),a=ld(hd,n),o=Xu(n);return(0,G.jsx)(Hu,{role:`region`,"aria-labelledby":a.triggerId,"data-orientation":i.orientation,...o,...r,ref:t,style:{"--radix-accordion-content-height":`var(--radix-collapsible-content-height)`,"--radix-accordion-content-width":`var(--radix-collapsible-content-width)`,...e.style}})});gd.displayName=hd;function _d(e){return e?`open`:`closed`}var vd=Zu,yd=ud,bd=fd,xd=md,Sd=gd,Cd=`AlertDialog`,[wd,Td]=o(Cd,[te]),Ed=te(),Dd=e=>{let{__scopeAlertDialog:t,...n}=e,r=Ed(t);return(0,G.jsx)(ze,{...r,...n,modal:!0})};Dd.displayName=Cd;var Od=`AlertDialogTrigger`,kd=W.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=Ed(n);return(0,G.jsx)(me,{...i,...r,ref:t})});kd.displayName=Od;var Ad=`AlertDialogPortal`,jd=e=>{let{__scopeAlertDialog:t,...n}=e,r=Ed(t);return(0,G.jsx)(le,{...r,...n})};jd.displayName=Ad;var Md=`AlertDialogOverlay`,Nd=W.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=Ed(n);return(0,G.jsx)(be,{...i,...r,ref:t})});Nd.displayName=Md;var Pd=`AlertDialogContent`,[Fd,Id]=wd(Pd),Ld=_(`AlertDialogContent`),Rd=W.forwardRef((e,t)=>{let{__scopeAlertDialog:n,children:r,...i}=e,a=Ed(n),o=W.useRef(null),s=y(t,o),c=W.useRef(null);return(0,G.jsx)(He,{contentName:Pd,titleName:zd,docsSlug:`alert-dialog`,children:(0,G.jsx)(Fd,{scope:n,cancelRef:c,children:(0,G.jsxs)(Ee,{role:`alertdialog`,...a,...i,ref:s,onOpenAutoFocus:j(i.onOpenAutoFocus,e=>{e.preventDefault(),c.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,G.jsx)(Ld,{children:r}),(0,G.jsx)(qd,{contentRef:o})]})})})});Rd.displayName=Pd;var zd=`AlertDialogTitle`,Bd=W.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=Ed(n);return(0,G.jsx)(Ge,{...i,...r,ref:t})});Bd.displayName=zd;var Vd=`AlertDialogDescription`,Hd=W.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=Ed(n);return(0,G.jsx)(xe,{...i,...r,ref:t})});Hd.displayName=Vd;var Ud=`AlertDialogAction`,Wd=W.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=Ed(n);return(0,G.jsx)(Ae,{...i,...r,ref:t})});Wd.displayName=Ud;var Gd=`AlertDialogCancel`,Kd=W.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,{cancelRef:i}=Id(Gd,n),a=Ed(n),o=y(t,i);return(0,G.jsx)(Ae,{...a,...r,ref:o})});Kd.displayName=Gd;var qd=({contentRef:e})=>{let t=`\`${Pd}\` requires a description for the component to be accessible for screen reader users.
|
|
5
|
+
|
|
6
|
+
You can add a description to the \`${Pd}\` by passing a \`${Vd}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
|
|
7
|
+
|
|
8
|
+
Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Pd}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
|
|
9
|
+
|
|
10
|
+
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return W.useEffect(()=>{document.getElementById(e.current?.getAttribute(`aria-describedby`))||console.warn(t)},[t,e]),null},Jd=Dd,Yd=kd,Xd=jd,Zd=Nd,Qd=Rd,$d=Wd,ef=Kd,tf=Bd,nf=Hd,rf=`AspectRatio`,af=W.forwardRef((e,t)=>{let{ratio:n=1/1,style:r,...i}=e;return(0,G.jsx)(`div`,{style:{position:`relative`,width:`100%`,paddingBottom:`${100/n}%`},"data-radix-aspect-ratio-wrapper":``,children:(0,G.jsx)(g.div,{...i,ref:t,style:{...r,position:`absolute`,top:0,right:0,bottom:0,left:0}})})});af.displayName=rf;var of=af;function sf(e){let t=W.useRef({value:e,previous:e});return W.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var cf=`Checkbox`,[lf,uf]=o(cf),[df,ff]=lf(cf);function pf(e){let{__scopeCheckbox:t,checked:n,children:r,defaultChecked:i,disabled:a,form:o,name:s,onCheckedChange:c,required:l,value:u=`on`,internal_do_not_use_render:d}=e,[f,p]=S({prop:n,defaultProp:i??!1,onChange:c,caller:cf}),[m,h]=W.useState(null),[g,_]=W.useState(null),v=W.useRef(!1),y=m?!!o||!!m.closest(`form`):!0,b={checked:f,disabled:a,setChecked:p,control:m,setControl:h,name:s,form:o,value:u,hasConsumerStoppedPropagationRef:v,required:l,defaultChecked:Sf(i)?!1:i,isFormControl:y,bubbleInput:g,setBubbleInput:_};return(0,G.jsx)(df,{scope:t,...b,children:xf(d)?d(b):r})}var mf=`CheckboxTrigger`,hf=W.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...r},i)=>{let{control:a,value:o,disabled:s,checked:c,required:l,setControl:u,setChecked:d,hasConsumerStoppedPropagationRef:f,isFormControl:p,bubbleInput:m}=ff(mf,e),h=y(i,u),g=W.useRef(c);return W.useEffect(()=>{let e=a?.form;if(e){let t=()=>d(g.current);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[a,d]),(0,G.jsx)(w.button,{type:`button`,role:`checkbox`,"aria-checked":Sf(c)?`mixed`:c,"aria-required":l,"data-state":Cf(c),"data-disabled":s?``:void 0,disabled:s,value:o,...r,ref:h,onKeyDown:j(t,e=>{e.key===`Enter`&&e.preventDefault()}),onClick:j(n,e=>{d(e=>Sf(e)?!0:!e),m&&p&&(f.current=e.isPropagationStopped(),f.current||e.stopPropagation())})})});hf.displayName=mf;var gf=W.forwardRef((e,t)=>{let{__scopeCheckbox:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c,onCheckedChange:l,form:u,...d}=e;return(0,G.jsx)(pf,{__scopeCheckbox:n,checked:i,defaultChecked:a,disabled:s,required:o,onCheckedChange:l,name:r,form:u,value:c,internal_do_not_use_render:({isFormControl:e})=>(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(hf,{...d,ref:t,__scopeCheckbox:n}),e&&(0,G.jsx)(bf,{__scopeCheckbox:n})]})})});gf.displayName=cf;var _f=`CheckboxIndicator`,vf=W.forwardRef((e,t)=>{let{__scopeCheckbox:n,forceMount:r,...i}=e,a=ff(_f,n);return(0,G.jsx)(f,{present:r||Sf(a.checked)||a.checked===!0,children:(0,G.jsx)(w.span,{"data-state":Cf(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t,style:{pointerEvents:`none`,...e.style}})})});vf.displayName=_f;var yf=`CheckboxBubbleInput`,bf=W.forwardRef(({__scopeCheckbox:e,...t},n)=>{let{control:r,hasConsumerStoppedPropagationRef:i,checked:a,defaultChecked:o,required:s,disabled:c,name:l,value:u,form:d,bubbleInput:f,setBubbleInput:p}=ff(yf,e),m=y(n,p),h=sf(a),g=Zn(r);W.useEffect(()=>{let e=f;if(!e)return;let t=window.HTMLInputElement.prototype,n=Object.getOwnPropertyDescriptor(t,`checked`).set,r=!i.current;if(h!==a&&n){let t=new Event(`click`,{bubbles:r});e.indeterminate=Sf(a),n.call(e,Sf(a)?!1:a),e.dispatchEvent(t)}},[f,h,a,i]);let _=W.useRef(Sf(a)?!1:a);return(0,G.jsx)(w.input,{type:`checkbox`,"aria-hidden":!0,defaultChecked:o??_.current,required:s,disabled:c,name:l,value:u,form:d,...t,tabIndex:-1,ref:m,style:{...t.style,...g,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0,transform:`translateX(-100%)`}})});bf.displayName=yf;function xf(e){return typeof e==`function`}function Sf(e){return e===`indeterminate`}function Cf(e){return Sf(e)?`indeterminate`:e?`checked`:`unchecked`}var wf=`ContextMenu`,[Tf,Ef]=o(wf,[Ma]),Df=Ma(),[Of,kf]=Tf(wf),Af=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,dir:i,modal:a=!0}=e,[o,s]=W.useState(!1),c=Df(t),l=C(r),u=W.useCallback(e=>{s(e),l(e)},[l]);return(0,G.jsx)(Of,{scope:t,open:o,onOpenChange:u,modal:a,children:(0,G.jsx)(Ho,{...c,dir:i,open:o,onOpenChange:u,modal:a,children:n})})};Af.displayName=wf;var jf=`ContextMenuTrigger`,Mf=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,disabled:r=!1,...i}=e,a=kf(jf,n),o=Df(n),s=W.useRef({x:0,y:0}),c=W.useRef({getBoundingClientRect:()=>DOMRect.fromRect({width:0,height:0,...s.current})}),l=W.useRef(0),u=W.useCallback(()=>window.clearTimeout(l.current),[]),d=e=>{s.current={x:e.clientX,y:e.clientY},a.onOpenChange(!0)};return W.useEffect(()=>u,[u]),W.useEffect(()=>void(r&&u()),[r,u]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Uo,{...o,virtualRef:c}),(0,G.jsx)(w.span,{"data-state":a.open?`open`:`closed`,"data-disabled":r?``:void 0,...i,ref:t,style:{WebkitTouchCallout:`none`,...e.style},onContextMenu:r?e.onContextMenu:j(e.onContextMenu,e=>{u(),d(e),e.preventDefault()}),onPointerDown:r?e.onPointerDown:j(e.onPointerDown,sp(e=>{u(),l.current=window.setTimeout(()=>d(e),700)})),onPointerMove:r?e.onPointerMove:j(e.onPointerMove,sp(u)),onPointerCancel:r?e.onPointerCancel:j(e.onPointerCancel,sp(u)),onPointerUp:r?e.onPointerUp:j(e.onPointerUp,sp(u))})]})});Mf.displayName=jf;var Nf=`ContextMenuPortal`,Pf=e=>{let{__scopeContextMenu:t,...n}=e,r=Df(t);return(0,G.jsx)(Wo,{...r,...n})};Pf.displayName=Nf;var Ff=`ContextMenuContent`,If=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=kf(Ff,n),a=Df(n),o=W.useRef(!1);return(0,G.jsx)(Go,{...a,...r,ref:t,side:`right`,sideOffset:2,align:`start`,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),!t.defaultPrevented&&o.current&&t.preventDefault(),o.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),!t.defaultPrevented&&!i.modal&&(o.current=!0)},style:{...e.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)`}})});If.displayName=Ff;var Lf=`ContextMenuGroup`,Rf=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Df(n);return(0,G.jsx)(Ko,{...i,...r,ref:t})});Rf.displayName=Lf;var zf=`ContextMenuLabel`,Bf=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Df(n);return(0,G.jsx)(qo,{...i,...r,ref:t})});Bf.displayName=zf;var Vf=`ContextMenuItem`,Hf=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Df(n);return(0,G.jsx)(Jo,{...i,...r,ref:t})});Hf.displayName=Vf;var Uf=`ContextMenuCheckboxItem`,Wf=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Df(n);return(0,G.jsx)(Yo,{...i,...r,ref:t})});Wf.displayName=Uf;var Gf=`ContextMenuRadioGroup`,Kf=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Df(n);return(0,G.jsx)(Xo,{...i,...r,ref:t})});Kf.displayName=Gf;var qf=`ContextMenuRadioItem`,Jf=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Df(n);return(0,G.jsx)(Zo,{...i,...r,ref:t})});Jf.displayName=qf;var Yf=`ContextMenuItemIndicator`,Xf=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Df(n);return(0,G.jsx)(Qo,{...i,...r,ref:t})});Xf.displayName=Yf;var Zf=`ContextMenuSeparator`,Qf=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Df(n);return(0,G.jsx)($o,{...i,...r,ref:t})});Qf.displayName=Zf;var $f=`ContextMenuArrow`,ep=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Df(n);return(0,G.jsx)(es,{...i,...r,ref:t})});ep.displayName=$f;var tp=`ContextMenuSub`,np=e=>{let{__scopeContextMenu:t,children:n,onOpenChange:r,open:i,defaultOpen:a}=e,o=Df(t),[s,c]=S({prop:i,defaultProp:a??!1,onChange:r,caller:tp});return(0,G.jsx)(ts,{...o,open:s,onOpenChange:c,children:n})};np.displayName=tp;var rp=`ContextMenuSubTrigger`,ip=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Df(n);return(0,G.jsx)(ns,{...i,...r,ref:t})});ip.displayName=rp;var ap=`ContextMenuSubContent`,op=W.forwardRef((e,t)=>{let{__scopeContextMenu:n,...r}=e,i=Df(n);return(0,G.jsx)(rs,{...i,...r,ref:t,style:{...e.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)`}})});op.displayName=ap;function sp(e){return t=>t.pointerType===`mouse`?void 0:e(t)}var cp=Af,lp=Mf,up=Pf,dp=If,fp=Bf,pp=Hf,mp=Wf,hp=Jf,gp=Xf,_p=Qf,vp=np,yp=ip,bp=op,xp,Sp=`HoverCard`,[Cp,wp]=o(Sp,[er]),Tp=er(),[Ep,Dp]=Cp(Sp),Op=e=>{let{__scopeHoverCard:t,children:n,open:r,defaultOpen:i,onOpenChange:a,openDelay:o=700,closeDelay:s=300}=e,c=Tp(t),l=W.useRef(0),u=W.useRef(0),d=W.useRef(!1),f=W.useRef(!1),[p,m]=S({prop:r,defaultProp:i??!1,onChange:a,caller:Sp}),h=W.useCallback(()=>{clearTimeout(u.current),l.current=window.setTimeout(()=>m(!0),o)},[o,m]),g=W.useCallback(()=>{clearTimeout(l.current),!d.current&&!f.current&&(u.current=window.setTimeout(()=>m(!1),s))},[s,m]),_=W.useCallback(()=>m(!1),[m]);return W.useEffect(()=>()=>{clearTimeout(l.current),clearTimeout(u.current)},[]),(0,G.jsx)(Ep,{scope:t,open:p,onOpenChange:m,onOpen:h,onClose:g,onDismiss:_,hasSelectionRef:d,isPointerDownOnContentRef:f,children:(0,G.jsx)(gr,{...c,children:n})})};Op.displayName=Sp;var kp=`HoverCardTrigger`,Ap=W.forwardRef((e,t)=>{let{__scopeHoverCard:n,...r}=e,i=Dp(kp,n),a=Tp(n);return(0,G.jsx)(_r,{asChild:!0,...a,children:(0,G.jsx)(w.a,{"data-state":i.open?`open`:`closed`,...r,ref:t,onPointerEnter:j(e.onPointerEnter,Bp(i.onOpen)),onPointerLeave:j(e.onPointerLeave,Bp(i.onClose)),onFocus:j(e.onFocus,i.onOpen),onBlur:j(e.onBlur,i.onClose),onTouchStart:j(e.onTouchStart,e=>e.preventDefault())})})});Ap.displayName=kp;var jp=`HoverCardPortal`,[Mp,Np]=Cp(jp,{forceMount:void 0}),Pp=e=>{let{__scopeHoverCard:t,forceMount:n,children:r,container:i}=e,a=Dp(jp,t);return(0,G.jsx)(Mp,{scope:t,forceMount:n,children:(0,G.jsx)(f,{present:n||a.open,children:(0,G.jsx)(u,{asChild:!0,container:i,children:r})})})};Pp.displayName=jp;var Fp=`HoverCardContent`,Ip=W.forwardRef((e,t)=>{let n=Np(Fp,e.__scopeHoverCard),{forceMount:r=n.forceMount,...i}=e,a=Dp(Fp,e.__scopeHoverCard);return(0,G.jsx)(f,{present:r||a.open,children:(0,G.jsx)(Lp,{"data-state":a.open?`open`:`closed`,...i,onPointerEnter:j(e.onPointerEnter,Bp(a.onOpen)),onPointerLeave:j(e.onPointerLeave,Bp(a.onClose)),ref:t})})});Ip.displayName=Fp;var Lp=W.forwardRef((e,t)=>{let{__scopeHoverCard:n,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:o,onInteractOutside:s,...c}=e,l=Dp(Fp,n),u=Tp(n),d=W.useRef(null),f=y(t,d),[p,m]=W.useState(!1);return W.useEffect(()=>{if(p){let e=document.body;return xp=e.style.userSelect||e.style.webkitUserSelect,e.style.userSelect=`none`,e.style.webkitUserSelect=`none`,()=>{e.style.userSelect=xp,e.style.webkitUserSelect=xp}}},[p]),W.useEffect(()=>{if(d.current){let e=()=>{m(!1),l.isPointerDownOnContentRef.current=!1,setTimeout(()=>{document.getSelection()?.toString()!==``&&(l.hasSelectionRef.current=!0)})};return document.addEventListener(`pointerup`,e),()=>{document.removeEventListener(`pointerup`,e),l.hasSelectionRef.current=!1,l.isPointerDownOnContentRef.current=!1}}},[l.isPointerDownOnContentRef,l.hasSelectionRef]),W.useEffect(()=>{d.current&&Vp(d.current).forEach(e=>e.setAttribute(`tabindex`,`-1`))}),(0,G.jsx)(a,{asChild:!0,disableOutsidePointerEvents:!1,onInteractOutside:s,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:j(o,e=>{e.preventDefault()}),onDismiss:l.onDismiss,children:(0,G.jsx)(vr,{...u,...c,onPointerDown:j(c.onPointerDown,e=>{e.currentTarget.contains(e.target)&&m(!0),l.hasSelectionRef.current=!1,l.isPointerDownOnContentRef.current=!0}),ref:f,style:{...c.style,userSelect:p?`text`:void 0,WebkitUserSelect:p?`text`:void 0,"--radix-hover-card-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-hover-card-content-available-width":`var(--radix-popper-available-width)`,"--radix-hover-card-content-available-height":`var(--radix-popper-available-height)`,"--radix-hover-card-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-hover-card-trigger-height":`var(--radix-popper-anchor-height)`}})})}),Rp=`HoverCardArrow`,zp=W.forwardRef((e,t)=>{let{__scopeHoverCard:n,...r}=e,i=Tp(n);return(0,G.jsx)(yr,{...i,...r,ref:t})});zp.displayName=Rp;function Bp(e){return t=>t.pointerType===`touch`?void 0:e()}function Vp(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP});for(;n.nextNode();)t.push(n.currentNode);return t}var Hp=Op,Up=Ap,Wp=Ip,Gp=`Menubar`,[Kp,qp,Jp]=ci(Gp),[Yp,Xp]=o(Gp,[Jp,sa]),Zp=Ma(),Qp=sa(),[$p,em]=Yp(Gp),tm=W.forwardRef((e,t)=>{let{__scopeMenubar:n,value:r,onValueChange:i,defaultValue:a,loop:o=!0,dir:s,...c}=e,l=ui(s),u=Qp(n),[d,f]=S({prop:r,onChange:i,defaultProp:a??``,caller:Gp}),[p,m]=W.useState(null);return(0,G.jsx)($p,{scope:n,value:d,onMenuOpen:W.useCallback(e=>{f(e),m(e)},[f]),onMenuClose:W.useCallback(()=>f(``),[f]),onMenuToggle:W.useCallback(e=>{f(t=>t?``:e),m(e)},[f]),dir:l,loop:o,children:(0,G.jsx)(Kp.Provider,{scope:n,children:(0,G.jsx)(Kp.Slot,{scope:n,children:(0,G.jsx)(ya,{asChild:!0,...u,orientation:`horizontal`,loop:o,dir:l,currentTabStopId:p,onCurrentTabStopIdChange:m,children:(0,G.jsx)(w.div,{role:`menubar`,...c,ref:t})})})})})});tm.displayName=Gp;var nm=`MenubarMenu`,[rm,im]=Yp(nm),am=e=>{let{__scopeMenubar:t,value:n,...r}=e,i=k(),a=n||i||`LEGACY_REACT_AUTO_VALUE`,o=em(nm,t),s=Zp(t),c=W.useRef(null),l=W.useRef(!1),u=o.value===a;return W.useEffect(()=>{u||(l.current=!1)},[u]),(0,G.jsx)(rm,{scope:t,value:a,triggerId:k(),triggerRef:c,contentId:k(),wasKeyboardTriggerOpenRef:l,children:(0,G.jsx)(Ho,{...s,open:u,onOpenChange:e=>{e||o.onMenuClose()},modal:!1,dir:o.dir,...r})})};am.displayName=nm;var om=`MenubarTrigger`,sm=W.forwardRef((e,t)=>{let{__scopeMenubar:n,disabled:r=!1,...i}=e,a=Qp(n),o=Zp(n),s=em(om,n),c=im(om,n),l=W.useRef(null),u=y(t,l,c.triggerRef),[d,f]=W.useState(!1),p=s.value===c.value;return(0,G.jsx)(Kp.ItemSlot,{scope:n,value:c.value,disabled:r,children:(0,G.jsx)(ba,{asChild:!0,...a,focusable:!r,tabStopId:c.value,children:(0,G.jsx)(Uo,{asChild:!0,...o,children:(0,G.jsx)(w.button,{type:`button`,role:`menuitem`,id:c.triggerId,"aria-haspopup":`menu`,"aria-expanded":p,"aria-controls":p?c.contentId:void 0,"data-highlighted":d?``:void 0,"data-state":p?`open`:`closed`,"data-disabled":r?``:void 0,disabled:r,...i,ref:u,onPointerDown:j(e.onPointerDown,e=>{!r&&e.button===0&&e.ctrlKey===!1&&(s.onMenuOpen(c.value),p||e.preventDefault())}),onPointerEnter:j(e.onPointerEnter,()=>{s.value&&!p&&(s.onMenuOpen(c.value),l.current?.focus())}),onKeyDown:j(e.onKeyDown,e=>{r||([`Enter`,` `].includes(e.key)&&s.onMenuToggle(c.value),e.key===`ArrowDown`&&s.onMenuOpen(c.value),[`Enter`,` `,`ArrowDown`].includes(e.key)&&(c.wasKeyboardTriggerOpenRef.current=!0,e.preventDefault()))}),onFocus:j(e.onFocus,()=>f(!0)),onBlur:j(e.onBlur,()=>f(!1))})})})})});sm.displayName=om;var cm=`MenubarPortal`,lm=e=>{let{__scopeMenubar:t,...n}=e,r=Zp(t);return(0,G.jsx)(Wo,{...r,...n})};lm.displayName=cm;var um=`MenubarContent`,dm=W.forwardRef((e,t)=>{let{__scopeMenubar:n,align:r=`start`,...i}=e,a=Zp(n),o=em(um,n),s=im(um,n),c=qp(n),l=W.useRef(!1);return(0,G.jsx)(Go,{id:s.contentId,"aria-labelledby":s.triggerId,"data-radix-menubar-content":``,...a,...i,ref:t,align:r,onCloseAutoFocus:j(e.onCloseAutoFocus,e=>{!o.value&&!l.current&&s.triggerRef.current?.focus(),l.current=!1,e.preventDefault()}),onFocusOutside:j(e.onFocusOutside,e=>{let t=e.target;c().some(e=>e.ref.current?.contains(t))&&e.preventDefault()}),onInteractOutside:j(e.onInteractOutside,()=>{l.current=!0}),onEntryFocus:e=>{s.wasKeyboardTriggerOpenRef.current||e.preventDefault()},onKeyDown:j(e.onKeyDown,e=>{if([`ArrowRight`,`ArrowLeft`].includes(e.key)){let t=e.target,n=t.hasAttribute(`data-radix-menubar-subtrigger`),r=t.closest(`[data-radix-menubar-content]`)!==e.currentTarget,i=(o.dir===`rtl`?`ArrowRight`:`ArrowLeft`)===e.key;if(!i&&n||r&&i)return;let a=c().filter(e=>!e.disabled).map(e=>e.value);i&&a.reverse();let l=a.indexOf(s.value);a=o.loop?Im(a,l+1):a.slice(l+1);let[u]=a;u&&o.onMenuOpen(u)}},{checkForDefaultPrevented:!1}),style:{...e.style,"--radix-menubar-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-menubar-content-available-width":`var(--radix-popper-available-width)`,"--radix-menubar-content-available-height":`var(--radix-popper-available-height)`,"--radix-menubar-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-menubar-trigger-height":`var(--radix-popper-anchor-height)`}})});dm.displayName=um;var fm=`MenubarGroup`,pm=W.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=Zp(n);return(0,G.jsx)(Ko,{...i,...r,ref:t})});pm.displayName=fm;var mm=`MenubarLabel`,hm=W.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=Zp(n);return(0,G.jsx)(qo,{...i,...r,ref:t})});hm.displayName=mm;var gm=`MenubarItem`,_m=W.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=Zp(n);return(0,G.jsx)(Jo,{...i,...r,ref:t})});_m.displayName=gm;var vm=`MenubarCheckboxItem`,ym=W.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=Zp(n);return(0,G.jsx)(Yo,{...i,...r,ref:t})});ym.displayName=vm;var bm=`MenubarRadioGroup`,xm=W.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=Zp(n);return(0,G.jsx)(Xo,{...i,...r,ref:t})});xm.displayName=bm;var Sm=`MenubarRadioItem`,Cm=W.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=Zp(n);return(0,G.jsx)(Zo,{...i,...r,ref:t})});Cm.displayName=Sm;var wm=`MenubarItemIndicator`,Tm=W.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=Zp(n);return(0,G.jsx)(Qo,{...i,...r,ref:t})});Tm.displayName=wm;var Em=`MenubarSeparator`,Dm=W.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=Zp(n);return(0,G.jsx)($o,{...i,...r,ref:t})});Dm.displayName=Em;var Om=`MenubarArrow`,km=W.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=Zp(n);return(0,G.jsx)(es,{...i,...r,ref:t})});km.displayName=Om;var Am=`MenubarSub`,jm=e=>{let{__scopeMenubar:t,children:n,open:r,onOpenChange:i,defaultOpen:a}=e,o=Zp(t),[s,c]=S({prop:r,defaultProp:a??!1,onChange:i,caller:Am});return(0,G.jsx)(ts,{...o,open:s,onOpenChange:c,children:n})};jm.displayName=Am;var Mm=`MenubarSubTrigger`,Nm=W.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=Zp(n);return(0,G.jsx)(ns,{"data-radix-menubar-subtrigger":``,...i,...r,ref:t})});Nm.displayName=Mm;var Pm=`MenubarSubContent`,Fm=W.forwardRef((e,t)=>{let{__scopeMenubar:n,...r}=e,i=Zp(n);return(0,G.jsx)(rs,{...i,"data-radix-menubar-content":``,...r,ref:t,style:{...e.style,"--radix-menubar-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-menubar-content-available-width":`var(--radix-popper-available-width)`,"--radix-menubar-content-available-height":`var(--radix-popper-available-height)`,"--radix-menubar-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-menubar-trigger-height":`var(--radix-popper-anchor-height)`}})});Fm.displayName=Pm;function Im(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Lm=tm,Rm=am,zm=sm,Bm=lm,Vm=dm,Hm=hm,Um=_m,Wm=ym,Gm=Cm,Km=Tm,qm=Dm,Jm=jm,Ym=Nm,Xm=Fm,Zm=`NavigationMenu`,[Qm,$m,eh]=ci(Zm),[th,nh,rh]=ci(Zm),[ih,ah]=o(Zm,[eh,rh]),[oh,sh]=ih(Zm),[ch,lh]=ih(Zm),uh=W.forwardRef((e,t)=>{let{__scopeNavigationMenu:n,value:r,onValueChange:i,defaultValue:a,delayDuration:o=200,skipDelayDuration:s=300,orientation:c=`horizontal`,dir:l,...u}=e,[d,f]=W.useState(null),p=y(t,e=>f(e)),m=ui(l),h=W.useRef(0),g=W.useRef(0),_=W.useRef(0),[v,b]=W.useState(!0),[x,C]=S({prop:r,onChange:e=>{let t=e!==``,n=s>0;t?(window.clearTimeout(_.current),n&&b(!1)):(window.clearTimeout(_.current),_.current=window.setTimeout(()=>b(!0),s)),i?.(e)},defaultProp:a??``,caller:Zm}),T=W.useCallback(()=>{window.clearTimeout(g.current),g.current=window.setTimeout(()=>C(``),150)},[C]),E=W.useCallback(e=>{window.clearTimeout(g.current),C(e)},[C]),ee=W.useCallback(e=>{x===e?window.clearTimeout(g.current):h.current=window.setTimeout(()=>{window.clearTimeout(g.current),C(e)},o)},[x,C,o]);return W.useEffect(()=>()=>{window.clearTimeout(h.current),window.clearTimeout(g.current),window.clearTimeout(_.current)},[]),(0,G.jsx)(ph,{scope:n,isRootMenu:!0,value:x,dir:m,orientation:c,rootNavigationMenu:d,onTriggerEnter:e=>{window.clearTimeout(h.current),v?ee(e):E(e)},onTriggerLeave:()=>{window.clearTimeout(h.current),T()},onContentEnter:()=>window.clearTimeout(g.current),onContentLeave:T,onItemSelect:e=>{C(t=>t===e?``:e)},onItemDismiss:()=>C(``),children:(0,G.jsx)(w.nav,{"aria-label":`Main`,"data-orientation":c,dir:m,...u,ref:p})})});uh.displayName=Zm;var dh=`NavigationMenuSub`,fh=W.forwardRef((e,t)=>{let{__scopeNavigationMenu:n,value:r,onValueChange:i,defaultValue:a,orientation:o=`horizontal`,...s}=e,c=sh(dh,n),[l,u]=S({prop:r,onChange:i,defaultProp:a??``,caller:dh});return(0,G.jsx)(ph,{scope:n,isRootMenu:!1,value:l,dir:c.dir,orientation:o,rootNavigationMenu:c.rootNavigationMenu,onTriggerEnter:e=>u(e),onItemSelect:e=>u(e),onItemDismiss:()=>u(``),children:(0,G.jsx)(w.div,{"data-orientation":o,...s,ref:t})})});fh.displayName=dh;var ph=e=>{let{scope:t,isRootMenu:n,rootNavigationMenu:r,dir:i,orientation:a,children:o,value:s,onItemSelect:c,onItemDismiss:l,onTriggerEnter:u,onTriggerLeave:d,onContentEnter:f,onContentLeave:p}=e,[m,h]=W.useState(null),[g,_]=W.useState(new Map),[v,y]=W.useState(null);return(0,G.jsx)(oh,{scope:t,isRootMenu:n,rootNavigationMenu:r,value:s,previousValue:sf(s),baseId:k(),dir:i,orientation:a,viewport:m,onViewportChange:h,indicatorTrack:v,onIndicatorTrackChange:y,onTriggerEnter:C(u),onTriggerLeave:C(d),onContentEnter:C(f),onContentLeave:C(p),onItemSelect:C(c),onItemDismiss:C(l),onViewportContentChange:W.useCallback((e,t)=>{_(n=>(n.set(e,t),new Map(n)))},[]),onViewportContentRemove:W.useCallback(e=>{_(t=>t.has(e)?(t.delete(e),new Map(t)):t)},[]),children:(0,G.jsx)(Qm.Provider,{scope:t,children:(0,G.jsx)(ch,{scope:t,items:g,children:o})})})},mh=`NavigationMenuList`,hh=W.forwardRef((e,t)=>{let{__scopeNavigationMenu:n,...r}=e,i=sh(mh,n),a=(0,G.jsx)(w.ul,{"data-orientation":i.orientation,...r,ref:t});return(0,G.jsx)(w.div,{style:{position:`relative`},ref:i.onIndicatorTrackChange,children:(0,G.jsx)(Qm.Slot,{scope:n,children:i.isRootMenu?(0,G.jsx)(Lh,{asChild:!0,children:a}):a})})});hh.displayName=mh;var gh=`NavigationMenuItem`,[_h,vh]=ih(gh),yh=W.forwardRef((e,t)=>{let{__scopeNavigationMenu:n,value:r,...i}=e,a=k(),o=r||a||`LEGACY_REACT_AUTO_VALUE`,s=W.useRef(null),c=W.useRef(null),l=W.useRef(null),u=W.useRef(()=>{}),d=W.useRef(!1),f=W.useCallback((e=`start`)=>{if(s.current){u.current();let t=Vh(s.current);t.length&&Hh(e===`start`?t:t.reverse())}},[]),p=W.useCallback(()=>{if(s.current){let e=Vh(s.current);e.length&&(u.current=Uh(e))}},[]);return(0,G.jsx)(_h,{scope:n,value:o,triggerRef:c,contentRef:s,focusProxyRef:l,wasEscapeCloseRef:d,onEntryKeyDown:f,onFocusProxyEnter:f,onRootContentClose:p,onContentFocusOutside:p,children:(0,G.jsx)(w.li,{...i,ref:t})})});yh.displayName=gh;var bh=`NavigationMenuTrigger`,xh=W.forwardRef((e,t)=>{let{__scopeNavigationMenu:n,disabled:r,...i}=e,a=sh(bh,e.__scopeNavigationMenu),o=vh(bh,e.__scopeNavigationMenu),s=W.useRef(null),c=y(s,o.triggerRef,t),l=Kh(a.baseId,o.value),u=qh(a.baseId,o.value),d=W.useRef(!1),f=W.useRef(!1),p=o.value===a.value;return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Qm.ItemSlot,{scope:n,value:o.value,children:(0,G.jsx)(Bh,{asChild:!0,children:(0,G.jsx)(w.button,{id:l,disabled:r,"data-disabled":r?``:void 0,"data-state":Gh(p),"aria-expanded":p,"aria-controls":u,...i,ref:c,onPointerEnter:j(e.onPointerEnter,()=>{f.current=!1,o.wasEscapeCloseRef.current=!1}),onPointerMove:j(e.onPointerMove,Jh(()=>{r||f.current||o.wasEscapeCloseRef.current||d.current||(a.onTriggerEnter(o.value),d.current=!0)})),onPointerLeave:j(e.onPointerLeave,Jh(()=>{r||(a.onTriggerLeave(),d.current=!1)})),onClick:j(e.onClick,()=>{a.onItemSelect(o.value),f.current=p}),onKeyDown:j(e.onKeyDown,e=>{let t={horizontal:`ArrowDown`,vertical:a.dir===`rtl`?`ArrowLeft`:`ArrowRight`}[a.orientation];p&&e.key===t&&(o.onEntryKeyDown(),e.preventDefault())})})})}),p&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Cr,{"aria-hidden":!0,tabIndex:0,ref:o.focusProxyRef,onFocus:e=>{let t=o.contentRef.current,n=e.relatedTarget,r=n===s.current,i=t?.contains(n);(r||!i)&&o.onFocusProxyEnter(r?`start`:`end`)}}),a.viewport&&(0,G.jsx)(`span`,{"aria-owns":u})]})]})});xh.displayName=bh;var Sh=`NavigationMenuLink`,Ch=`navigationMenu.linkSelect`,wh=W.forwardRef((e,t)=>{let{__scopeNavigationMenu:n,active:r,onSelect:i,...a}=e;return(0,G.jsx)(Bh,{asChild:!0,children:(0,G.jsx)(w.a,{"data-active":r?``:void 0,"aria-current":r?`page`:void 0,...a,ref:t,onClick:j(e.onClick,e=>{let t=e.target,n=new CustomEvent(Ch,{bubbles:!0,cancelable:!0});t.addEventListener(Ch,e=>i?.(e),{once:!0}),ee(t,n),!n.defaultPrevented&&!e.metaKey&&ee(t,new CustomEvent(jh,{bubbles:!0,cancelable:!0}))},{checkForDefaultPrevented:!1})})})});wh.displayName=Sh;var Th=`NavigationMenuIndicator`,Eh=W.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=sh(Th,e.__scopeNavigationMenu),a=!!i.value;return i.indicatorTrack?En.createPortal((0,G.jsx)(f,{present:n||a,children:(0,G.jsx)(Dh,{...r,ref:t})}),i.indicatorTrack):null});Eh.displayName=Th;var Dh=W.forwardRef((e,t)=>{let{__scopeNavigationMenu:n,...r}=e,i=sh(Th,n),a=$m(n),[o,s]=W.useState(null),[c,l]=W.useState(null),u=i.orientation===`horizontal`,d=!!i.value;W.useEffect(()=>{let e=a().find(e=>e.value===i.value)?.ref.current;e&&s(e)},[a,i.value]);let f=()=>{o&&l({size:u?o.offsetWidth:o.offsetHeight,offset:u?o.offsetLeft:o.offsetTop})};return Wh(o,f),Wh(i.indicatorTrack,f),c?(0,G.jsx)(w.div,{"aria-hidden":!0,"data-state":d?`visible`:`hidden`,"data-orientation":i.orientation,...r,ref:t,style:{position:`absolute`,...u?{left:0,width:c.size+`px`,transform:`translateX(${c.offset}px)`}:{top:0,height:c.size+`px`,transform:`translateY(${c.offset}px)`},...r.style}}):null}),Oh=`NavigationMenuContent`,kh=W.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=sh(Oh,e.__scopeNavigationMenu),a=vh(Oh,e.__scopeNavigationMenu),o=y(a.contentRef,t),s=a.value===i.value,c={value:a.value,triggerRef:a.triggerRef,focusProxyRef:a.focusProxyRef,wasEscapeCloseRef:a.wasEscapeCloseRef,onContentFocusOutside:a.onContentFocusOutside,onRootContentClose:a.onRootContentClose,...r};return i.viewport?(0,G.jsx)(Ah,{forceMount:n,...c,ref:o}):(0,G.jsx)(f,{present:n||s,children:(0,G.jsx)(Mh,{"data-state":Gh(s),...c,ref:o,onPointerEnter:j(e.onPointerEnter,i.onContentEnter),onPointerLeave:j(e.onPointerLeave,Jh(i.onContentLeave)),style:{pointerEvents:!s&&i.isRootMenu?`none`:void 0,...c.style}})})});kh.displayName=Oh;var Ah=W.forwardRef((e,t)=>{let{onViewportContentChange:n,onViewportContentRemove:r}=sh(Oh,e.__scopeNavigationMenu);return Ke(()=>{n(e.value,{ref:t,...e})},[e,t,n]),Ke(()=>()=>r(e.value),[e.value,r]),null}),jh=`navigationMenu.rootContentDismiss`,Mh=W.forwardRef((e,t)=>{let{__scopeNavigationMenu:n,value:r,triggerRef:i,focusProxyRef:o,wasEscapeCloseRef:s,onRootContentClose:c,onContentFocusOutside:l,...u}=e,d=sh(Oh,n),f=W.useRef(null),p=y(f,t),m=Kh(d.baseId,r),h=qh(d.baseId,r),g=$m(n),_=W.useRef(null),{onItemDismiss:v}=d;return W.useEffect(()=>{let e=f.current;if(d.isRootMenu&&e){let t=()=>{v(),c(),e.contains(document.activeElement)&&i.current?.focus()};return e.addEventListener(jh,t),()=>e.removeEventListener(jh,t)}},[d.isRootMenu,e.value,i,v,c]),(0,G.jsx)(Lh,{asChild:!0,children:(0,G.jsx)(a,{id:h,"aria-labelledby":m,"data-motion":W.useMemo(()=>{let e=g().map(e=>e.value);d.dir===`rtl`&&e.reverse();let t=e.indexOf(d.value),n=e.indexOf(d.previousValue),i=r===d.value,a=n===e.indexOf(r);if(!i&&!a)return _.current;let o=(()=>{if(t!==n){if(i&&n!==-1)return t>n?`from-end`:`from-start`;if(a&&t!==-1)return t>n?`to-start`:`to-end`}return null})();return _.current=o,o},[d.previousValue,d.value,d.dir,g,r]),"data-orientation":d.orientation,...u,ref:p,disableOutsidePointerEvents:!1,onDismiss:()=>{let e=new Event(jh,{bubbles:!0,cancelable:!0});f.current?.dispatchEvent(e)},onFocusOutside:j(e.onFocusOutside,e=>{l();let t=e.target;d.rootNavigationMenu?.contains(t)&&e.preventDefault()}),onPointerDownOutside:j(e.onPointerDownOutside,e=>{let t=e.target,n=g().some(e=>e.ref.current?.contains(t)),r=d.isRootMenu&&d.viewport?.contains(t);(n||r||!d.isRootMenu)&&e.preventDefault()}),onKeyDown:j(e.onKeyDown,e=>{let t=e.altKey||e.ctrlKey||e.metaKey;if(e.key===`Tab`&&!t){let t=Vh(e.currentTarget),n=document.activeElement,r=t.findIndex(e=>e===n);Hh(e.shiftKey?t.slice(0,r).reverse():t.slice(r+1,t.length))?e.preventDefault():o.current?.focus()}}),onEscapeKeyDown:j(e.onEscapeKeyDown,e=>{s.current=!0})})})}),Nh=`NavigationMenuViewport`,Ph=W.forwardRef((e,t)=>{let{forceMount:n,...r}=e,i=!!sh(Nh,e.__scopeNavigationMenu).value;return(0,G.jsx)(f,{present:n||i,children:(0,G.jsx)(Fh,{...r,ref:t})})});Ph.displayName=Nh;var Fh=W.forwardRef((e,t)=>{let{__scopeNavigationMenu:n,children:r,...i}=e,a=sh(Nh,n),o=y(t,a.onViewportChange),s=lh(Oh,e.__scopeNavigationMenu),[c,l]=W.useState(null),[u,d]=W.useState(null),p=c?c?.width+`px`:void 0,m=c?c?.height+`px`:void 0,h=!!a.value,g=h?a.value:a.previousValue;return Wh(u,()=>{u&&l({width:u.offsetWidth,height:u.offsetHeight})}),(0,G.jsx)(w.div,{"data-state":Gh(h),"data-orientation":a.orientation,...i,ref:o,style:{pointerEvents:!h&&a.isRootMenu?`none`:void 0,"--radix-navigation-menu-viewport-width":p,"--radix-navigation-menu-viewport-height":m,...i.style},onPointerEnter:j(e.onPointerEnter,a.onContentEnter),onPointerLeave:j(e.onPointerLeave,Jh(a.onContentLeave)),children:Array.from(s.items).map(([e,{ref:t,forceMount:n,...r}])=>{let i=g===e;return(0,G.jsx)(f,{present:n||i,children:(0,G.jsx)(Mh,{...r,ref:Me(t,e=>{i&&e&&d(e)})})},e)})})}),Ih=`FocusGroup`,Lh=W.forwardRef((e,t)=>{let{__scopeNavigationMenu:n,...r}=e,i=sh(Ih,n);return(0,G.jsx)(th.Provider,{scope:n,children:(0,G.jsx)(th.Slot,{scope:n,children:(0,G.jsx)(w.div,{dir:i.dir,...r,ref:t})})})}),Rh=[`ArrowRight`,`ArrowLeft`,`ArrowUp`,`ArrowDown`],zh=`FocusGroupItem`,Bh=W.forwardRef((e,t)=>{let{__scopeNavigationMenu:n,...r}=e,i=nh(n),a=sh(zh,n);return(0,G.jsx)(th.ItemSlot,{scope:n,children:(0,G.jsx)(w.button,{...r,ref:t,onKeyDown:j(e.onKeyDown,e=>{if([`Home`,`End`,...Rh].includes(e.key)){let t=i().map(e=>e.ref.current);if([a.dir===`rtl`?`ArrowRight`:`ArrowLeft`,`ArrowUp`,`End`].includes(e.key)&&t.reverse(),Rh.includes(e.key)){let n=t.indexOf(e.currentTarget);t=t.slice(n+1)}setTimeout(()=>Hh(t)),e.preventDefault()}})})})});function Vh(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Hh(e){let t=document.activeElement;return e.some(e=>e===t?!0:(e.focus(),document.activeElement!==t))}function Uh(e){return e.forEach(e=>{e.dataset.tabindex=e.getAttribute(`tabindex`)||``,e.setAttribute(`tabindex`,`-1`)}),()=>{e.forEach(e=>{let t=e.dataset.tabindex;e.setAttribute(`tabindex`,t)})}}function Wh(e,t){let n=C(t);Ke(()=>{let t=0;if(e){let r=new ResizeObserver(()=>{cancelAnimationFrame(t),t=window.requestAnimationFrame(n)});return r.observe(e),()=>{window.cancelAnimationFrame(t),r.unobserve(e)}}},[e,n])}function Gh(e){return e?`open`:`closed`}function Kh(e,t){return`${e}-trigger-${t}`}function qh(e,t){return`${e}-content-${t}`}function Jh(e){return t=>t.pointerType===`mouse`?e(t):void 0}var Yh=uh,Xh=hh,Zh=yh,Qh=xh,$h=wh,eg=Eh,tg=kh,ng=Ph,rg=`Popover`,[ig,ag]=o(rg,[er]),og=er(),[sg,cg]=ig(rg),lg=e=>{let{__scopePopover:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!1}=e,s=og(t),c=W.useRef(null),[l,u]=W.useState(!1),[d,f]=S({prop:r,defaultProp:i??!1,onChange:a,caller:rg});return(0,G.jsx)(gr,{...s,children:(0,G.jsx)(sg,{scope:t,contentId:k(),triggerRef:c,open:d,onOpenChange:f,onOpenToggle:W.useCallback(()=>f(e=>!e),[f]),hasCustomAnchor:l,onCustomAnchorAdd:W.useCallback(()=>u(!0),[]),onCustomAnchorRemove:W.useCallback(()=>u(!1),[]),modal:o,children:n})})};lg.displayName=rg;var ug=`PopoverAnchor`,dg=W.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=cg(ug,n),a=og(n),{onCustomAnchorAdd:o,onCustomAnchorRemove:s}=i;return W.useEffect(()=>(o(),()=>s()),[o,s]),(0,G.jsx)(_r,{...a,...r,ref:t})});dg.displayName=ug;var fg=`PopoverTrigger`,pg=W.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=cg(fg,n),a=og(n),o=y(t,i.triggerRef),s=(0,G.jsx)(w.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.contentId,"data-state":Og(i.open),...r,ref:o,onClick:j(e.onClick,i.onOpenToggle)});return i.hasCustomAnchor?s:(0,G.jsx)(_r,{asChild:!0,...a,children:s})});pg.displayName=fg;var mg=`PopoverPortal`,[hg,gg]=ig(mg,{forceMount:void 0}),_g=e=>{let{__scopePopover:t,forceMount:n,children:r,container:i}=e,a=cg(mg,t);return(0,G.jsx)(hg,{scope:t,forceMount:n,children:(0,G.jsx)(f,{present:n||a.open,children:(0,G.jsx)(u,{asChild:!0,container:i,children:r})})})};_g.displayName=mg;var vg=`PopoverContent`,yg=W.forwardRef((e,t)=>{let n=gg(vg,e.__scopePopover),{forceMount:r=n.forceMount,...i}=e,a=cg(vg,e.__scopePopover);return(0,G.jsx)(f,{present:r||a.open,children:a.modal?(0,G.jsx)(xg,{...i,ref:t}):(0,G.jsx)(Sg,{...i,ref:t})})});yg.displayName=vg;var bg=p(`PopoverContent.RemoveScroll`),xg=W.forwardRef((e,t)=>{let n=cg(vg,e.__scopePopover),r=W.useRef(null),i=y(t,r),a=W.useRef(!1);return W.useEffect(()=>{let e=r.current;if(e)return c(e)},[]),(0,G.jsx)(Ve,{as:bg,allowPinchZoom:!0,children:(0,G.jsx)(Cg,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:j(e.onCloseAutoFocus,e=>{e.preventDefault(),a.current||n.triggerRef.current?.focus()}),onPointerDownOutside:j(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;a.current=t.button===2||n},{checkForDefaultPrevented:!1}),onFocusOutside:j(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),Sg=W.forwardRef((e,t)=>{let n=cg(vg,e.__scopePopover),r=W.useRef(!1),i=W.useRef(!1);return(0,G.jsx)(Cg,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),Cg=W.forwardRef((e,t)=>{let{__scopePopover:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:o,disableOutsidePointerEvents:s,onEscapeKeyDown:c,onPointerDownOutside:l,onFocusOutside:u,onInteractOutside:d,...f}=e,p=cg(vg,n),m=og(n);return re(),(0,G.jsx)(E,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:o,children:(0,G.jsx)(a,{asChild:!0,disableOutsidePointerEvents:s,onInteractOutside:d,onEscapeKeyDown:c,onPointerDownOutside:l,onFocusOutside:u,onDismiss:()=>p.onOpenChange(!1),children:(0,G.jsx)(vr,{"data-state":Og(p.open),role:`dialog`,id:p.contentId,...m,...f,ref:t,style:{...f.style,"--radix-popover-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-popover-content-available-width":`var(--radix-popper-available-width)`,"--radix-popover-content-available-height":`var(--radix-popper-available-height)`,"--radix-popover-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-popover-trigger-height":`var(--radix-popper-anchor-height)`}})})})}),wg=`PopoverClose`,Tg=W.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=cg(wg,n);return(0,G.jsx)(w.button,{type:`button`,...r,ref:t,onClick:j(e.onClick,()=>i.onOpenChange(!1))})});Tg.displayName=wg;var Eg=`PopoverArrow`,Dg=W.forwardRef((e,t)=>{let{__scopePopover:n,...r}=e,i=og(n);return(0,G.jsx)(yr,{...i,...r,ref:t})});Dg.displayName=Eg;function Og(e){return e?`open`:`closed`}var kg=lg,Ag=pg,jg=_g,Mg=yg,Ng=`Progress`,Pg=100,[Fg,Ig]=$s(Ng),[Lg,Rg]=Fg(Ng),zg=W.forwardRef((e,t)=>{let{__scopeProgress:n,value:r=null,max:i,getValueLabel:a=Hg,...o}=e;(i||i===0)&&!Gg(i)&&console.error(qg(`${i}`,`Progress`));let s=Gg(i)?i:Pg;r!==null&&!Kg(r,s)&&console.error(Jg(`${r}`,`Progress`));let c=Kg(r,s)?r:null,l=Wg(c)?a(c,s):void 0;return(0,G.jsx)(Lg,{scope:n,value:c,max:s,children:(0,G.jsx)(g.div,{"aria-valuemax":s,"aria-valuemin":0,"aria-valuenow":Wg(c)?c:void 0,"aria-valuetext":l,role:`progressbar`,"data-state":Ug(c,s),"data-value":c??void 0,"data-max":s,...o,ref:t})})});zg.displayName=Ng;var Bg=`ProgressIndicator`,Vg=W.forwardRef((e,t)=>{let{__scopeProgress:n,...r}=e,i=Rg(Bg,n);return(0,G.jsx)(g.div,{"data-state":Ug(i.value,i.max),"data-value":i.value??void 0,"data-max":i.max,...r,ref:t})});Vg.displayName=Bg;function Hg(e,t){return`${Math.round(e/t*100)}%`}function Ug(e,t){return e==null?`indeterminate`:e===t?`complete`:`loading`}function Wg(e){return typeof e==`number`}function Gg(e){return Wg(e)&&!isNaN(e)&&e>0}function Kg(e,t){return Wg(e)&&!isNaN(e)&&e<=t&&e>=0}function qg(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${Pg}\`.`}function Jg(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be:
|
|
11
|
+
- a positive number
|
|
12
|
+
- less than the value passed to \`max\` (or ${Pg} if no \`max\` prop is set)
|
|
13
|
+
- \`null\` or \`undefined\` if the progress is indeterminate.
|
|
14
|
+
|
|
15
|
+
Defaulting to \`null\`.`}var Yg=zg,Xg=Vg,Zg=`Radio`,[Qg,$g]=o(Zg),[e_,t_]=Qg(Zg),n_=W.forwardRef((e,t)=>{let{__scopeRadio:n,name:r,checked:i=!1,required:a,disabled:o,value:s=`on`,onCheck:c,form:l,...u}=e,[d,f]=W.useState(null),p=y(t,e=>f(e)),m=W.useRef(!1),h=d?l||!!d.closest(`form`):!0;return(0,G.jsxs)(e_,{scope:n,checked:i,disabled:o,children:[(0,G.jsx)(w.button,{type:`button`,role:`radio`,"aria-checked":i,"data-state":s_(i),"data-disabled":o?``:void 0,disabled:o,value:s,...u,ref:p,onClick:j(e.onClick,e=>{i||c?.(),h&&(m.current=e.isPropagationStopped(),m.current||e.stopPropagation())})}),h&&(0,G.jsx)(o_,{control:d,bubbles:!m.current,name:r,value:s,checked:i,required:a,disabled:o,form:l,style:{transform:`translateX(-100%)`}})]})});n_.displayName=Zg;var r_=`RadioIndicator`,i_=W.forwardRef((e,t)=>{let{__scopeRadio:n,forceMount:r,...i}=e,a=t_(r_,n);return(0,G.jsx)(f,{present:r||a.checked,children:(0,G.jsx)(w.span,{"data-state":s_(a.checked),"data-disabled":a.disabled?``:void 0,...i,ref:t})})});i_.displayName=r_;var a_=`RadioBubbleInput`,o_=W.forwardRef(({__scopeRadio:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let o=W.useRef(null),s=y(o,a),c=sf(n),l=Zn(t);return W.useEffect(()=>{let e=o.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(c!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[c,n,r]),(0,G.jsx)(w.input,{type:`radio`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...l,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});o_.displayName=a_;function s_(e){return e?`checked`:`unchecked`}var c_=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],l_=`RadioGroup`,[u_,d_]=o(l_,[sa,$g]),f_=sa(),p_=$g(),[m_,h_]=u_(l_),g_=W.forwardRef((e,t)=>{let{__scopeRadioGroup:n,name:r,defaultValue:i,value:a,required:o=!1,disabled:s=!1,orientation:c,dir:l,loop:u=!0,onValueChange:d,...f}=e,p=f_(n),m=ui(l),[h,g]=S({prop:a,defaultProp:i??null,onChange:d,caller:l_});return(0,G.jsx)(m_,{scope:n,name:r,required:o,disabled:s,value:h,onValueChange:g,children:(0,G.jsx)(ya,{asChild:!0,...p,orientation:c,dir:m,loop:u,children:(0,G.jsx)(w.div,{role:`radiogroup`,"aria-required":o,"aria-orientation":c,"data-disabled":s?``:void 0,dir:m,...f,ref:t})})})});g_.displayName=l_;var __=`RadioGroupItem`,v_=W.forwardRef((e,t)=>{let{__scopeRadioGroup:n,disabled:r,...i}=e,a=h_(__,n),o=a.disabled||r,s=f_(n),c=p_(n),l=W.useRef(null),u=y(t,l),d=a.value===i.value,f=W.useRef(!1);return W.useEffect(()=>{let e=e=>{c_.includes(e.key)&&(f.current=!0)},t=()=>f.current=!1;return document.addEventListener(`keydown`,e),document.addEventListener(`keyup`,t),()=>{document.removeEventListener(`keydown`,e),document.removeEventListener(`keyup`,t)}},[]),(0,G.jsx)(ba,{asChild:!0,...s,focusable:!o,active:d,children:(0,G.jsx)(n_,{disabled:o,required:a.required,checked:d,...c,...i,name:a.name,ref:u,onCheck:()=>a.onValueChange(i.value),onKeyDown:j(e=>{e.key===`Enter`&&e.preventDefault()}),onFocus:j(i.onFocus,()=>{f.current&&l.current?.click()})})})});v_.displayName=__;var y_=`RadioGroupIndicator`,b_=W.forwardRef((e,t)=>{let{__scopeRadioGroup:n,...r}=e;return(0,G.jsx)(i_,{...p_(n),...r,ref:t})});b_.displayName=y_;var x_=g_,S_=v_,C_=b_,w_=[` `,`Enter`,`ArrowUp`,`ArrowDown`],T_=[` `,`Enter`],E_=`Select`,[D_,O_,k_]=ci(E_),[A_,j_]=o(E_,[k_,er]),M_=er(),[N_,P_]=A_(E_),[F_,I_]=A_(E_),L_=e=>{let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m}=e,h=M_(t),[g,_]=W.useState(null),[v,y]=W.useState(null),[b,x]=W.useState(!1),C=ui(l),[w,T]=S({prop:r,defaultProp:i??!1,onChange:a,caller:E_}),[E,ee]=S({prop:o,defaultProp:s,onChange:c,caller:E_}),D=W.useRef(null),O=g?m||!!g.closest(`form`):!0,[A,te]=W.useState(new Set),ne=Array.from(A).map(e=>e.props.value).join(`;`);return(0,G.jsx)(gr,{...h,children:(0,G.jsxs)(N_,{required:p,scope:t,trigger:g,onTriggerChange:_,valueNode:v,onValueNodeChange:y,valueNodeHasChildren:b,onValueNodeHasChildrenChange:x,contentId:k(),value:E,onValueChange:ee,open:w,onOpenChange:T,dir:C,triggerPointerDownPosRef:D,disabled:f,children:[(0,G.jsx)(D_.Provider,{scope:t,children:(0,G.jsx)(F_,{scope:e.__scopeSelect,onNativeOptionAdd:W.useCallback(e=>{te(t=>new Set(t).add(e))},[]),onNativeOptionRemove:W.useCallback(e=>{te(t=>{let n=new Set(t);return n.delete(e),n})},[]),children:n})}),O?(0,G.jsxs)(Mv,{"aria-hidden":!0,required:p,tabIndex:-1,name:u,autoComplete:d,value:E,onChange:e=>ee(e.target.value),disabled:f,form:m,children:[E===void 0?(0,G.jsx)(`option`,{value:``}):null,Array.from(A)]},ne):null]})})};L_.displayName=E_;var R_=`SelectTrigger`,z_=W.forwardRef((e,t)=>{let{__scopeSelect:n,disabled:r=!1,...i}=e,a=M_(n),o=P_(R_,n),s=o.disabled||r,c=y(t,o.onTriggerChange),l=O_(n),u=W.useRef(`touch`),[d,f,p]=Pv(e=>{let t=l().filter(e=>!e.disabled),n=Fv(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),m=e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,G.jsx)(_r,{asChild:!0,...a,children:(0,G.jsx)(w.button,{type:`button`,role:`combobox`,"aria-controls":o.contentId,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":Nv(o.value)?``:void 0,...i,ref:c,onClick:j(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&m(e)}),onPointerDown:j(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(m(e),e.preventDefault())}),onKeyDown:j(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&f(e.key),!(t&&e.key===` `)&&w_.includes(e.key)&&(m(),e.preventDefault())})})})});z_.displayName=R_;var B_=`SelectValue`,V_=W.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=P_(B_,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=y(t,c.onValueNodeChange);return Ke(()=>{l(u)},[l,u]),(0,G.jsx)(w.span,{...s,ref:d,style:{pointerEvents:`none`},children:Nv(c.value)?(0,G.jsx)(G.Fragment,{children:o}):a})});V_.displayName=B_;var H_=`SelectIcon`,U_=W.forwardRef((e,t)=>{let{__scopeSelect:n,children:r,...i}=e;return(0,G.jsx)(w.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})});U_.displayName=H_;var W_=`SelectPortal`,G_=e=>(0,G.jsx)(u,{asChild:!0,...e});G_.displayName=W_;var K_=`SelectContent`,q_=W.forwardRef((e,t)=>{let n=P_(K_,e.__scopeSelect),[r,i]=W.useState();if(Ke(()=>{i(new DocumentFragment)},[]),!n.open){let t=r;return t?En.createPortal((0,G.jsx)(Y_,{scope:e.__scopeSelect,children:(0,G.jsx)(D_.Slot,{scope:e.__scopeSelect,children:(0,G.jsx)(`div`,{children:e.children})})}),t):null}return(0,G.jsx)($_,{...e,ref:t})});q_.displayName=K_;var J_=10,[Y_,X_]=A_(K_),Z_=`SelectContentImpl`,Q_=p(`SelectContent.RemoveScroll`),$_=W.forwardRef((e,t)=>{let{__scopeSelect:n,position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:o,onPointerDownOutside:s,side:l,sideOffset:u,align:d,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:g,hideWhenDetached:_,avoidCollisions:v,...b}=e,x=P_(K_,n),[S,C]=W.useState(null),[w,T]=W.useState(null),ee=y(t,e=>C(e)),[D,O]=W.useState(null),[k,A]=W.useState(null),te=O_(n),[ne,ie]=W.useState(!1),M=W.useRef(!1);W.useEffect(()=>{if(S)return c(S)},[S]),re();let ae=W.useCallback(e=>{let[t,...n]=te().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&w&&(w.scrollTop=0),n===r&&w&&(w.scrollTop=w.scrollHeight),n?.focus(),document.activeElement!==i))return},[te,w]),N=W.useCallback(()=>ae([D,S]),[ae,D,S]);W.useEffect(()=>{ne&&N()},[ne,N]);let{onOpenChange:oe,triggerPointerDownPosRef:P}=x;W.useEffect(()=>{if(S){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(P.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(P.current?.y??0))}},n=n=>{e.x<=10&&e.y<=10?n.preventDefault():S.contains(n.target)||oe(!1),document.removeEventListener(`pointermove`,t),P.current=null};return P.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[S,oe,P]),W.useEffect(()=>{let e=()=>oe(!1);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[oe]);let[se,F]=Pv(e=>{let t=te().filter(e=>!e.disabled),n=Fv(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current.focus())}),ce=W.useCallback((e,t,n)=>{let r=!M.current&&!n;(x.value!==void 0&&x.value===t||r)&&(O(e),r&&(M.current=!0))},[x.value]),le=W.useCallback(()=>S?.focus(),[S]),ue=W.useCallback((e,t,n)=>{let r=!M.current&&!n;(x.value!==void 0&&x.value===t||r)&&A(e)},[x.value]),de=r===`popper`?rv:tv,fe=de===rv?{side:l,sideOffset:u,align:d,alignOffset:f,arrowPadding:p,collisionBoundary:m,collisionPadding:h,sticky:g,hideWhenDetached:_,avoidCollisions:v}:{};return(0,G.jsx)(Y_,{scope:n,content:S,viewport:w,onViewportChange:T,itemRefCallback:ce,selectedItem:D,onItemLeave:le,itemTextRefCallback:ue,focusSelectedItem:N,selectedItemText:k,position:r,isPositioned:ne,searchRef:se,children:(0,G.jsx)(Ve,{as:Q_,allowPinchZoom:!0,children:(0,G.jsx)(E,{asChild:!0,trapped:x.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:j(i,e=>{x.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,G.jsx)(a,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>x.onOpenChange(!1),children:(0,G.jsx)(de,{role:`listbox`,id:x.contentId,"data-state":x.open?`open`:`closed`,dir:x.dir,onContextMenu:e=>e.preventDefault(),...b,...fe,onPlaced:()=>ie(!0),ref:ee,style:{display:`flex`,flexDirection:`column`,outline:`none`,...b.style},onKeyDown:j(b.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&F(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=te().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>ae(t)),e.preventDefault()}})})})})})})});$_.displayName=Z_;var ev=`SelectItemAlignedPosition`,tv=W.forwardRef((e,t)=>{let{__scopeSelect:n,onPlaced:r,...i}=e,a=P_(K_,n),o=X_(K_,n),[s,c]=W.useState(null),[l,u]=W.useState(null),d=y(t,e=>u(e)),f=O_(n),p=W.useRef(!1),m=W.useRef(!0),{viewport:h,selectedItem:g,selectedItemText:_,focusSelectedItem:v}=o,b=W.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&h&&g&&_){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=_.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-J_,d=di(a,[J_,Math.max(J_,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-J_,d=di(a,[J_,Math.max(J_,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-J_*2,u=h.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),v=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+v+u+b+y,S=Math.min(g.offsetHeight*5,x),C=window.getComputedStyle(h),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-J_,ee=c-E,D=g.offsetHeight/2,O=g.offsetTop+D,k=m+v+O,A=x-k;if(k<=E){let e=o.length>0&&g===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-h.offsetTop-h.offsetHeight,n=k+Math.max(ee,D+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&g===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+h.offsetTop+(e?w:0)+D)+A;s.style.height=t+`px`,h.scrollTop=k-E+h.offsetTop}s.style.margin=`${J_}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,h,g,_,a.dir,r]);Ke(()=>b(),[b]);let[x,S]=W.useState();return Ke(()=>{l&&S(window.getComputedStyle(l).zIndex)},[l]),(0,G.jsx)(iv,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:W.useCallback(e=>{e&&m.current===!0&&(b(),v?.(),m.current=!1)},[b,v]),children:(0,G.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:x},children:(0,G.jsx)(w.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})});tv.displayName=ev;var nv=`SelectPopperPosition`,rv=W.forwardRef((e,t)=>{let{__scopeSelect:n,align:r=`start`,collisionPadding:i=J_,...a}=e,o=M_(n);return(0,G.jsx)(vr,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.style,"--radix-select-content-transform-origin":`var(--radix-popper-transform-origin)`,"--radix-select-content-available-width":`var(--radix-popper-available-width)`,"--radix-select-content-available-height":`var(--radix-popper-available-height)`,"--radix-select-trigger-width":`var(--radix-popper-anchor-width)`,"--radix-select-trigger-height":`var(--radix-popper-anchor-height)`}})});rv.displayName=nv;var[iv,av]=A_(K_,{}),ov=`SelectViewport`,sv=W.forwardRef((e,t)=>{let{__scopeSelect:n,nonce:r,...i}=e,a=X_(ov,n),o=av(ov,n),s=y(t,a.onViewportChange),c=W.useRef(0);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`style`,{dangerouslySetInnerHTML:{__html:`[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}`},nonce:r}),(0,G.jsx)(D_.Slot,{scope:n,children:(0,G.jsx)(w.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:j(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-J_*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})});sv.displayName=ov;var cv=`SelectGroup`,[lv,uv]=A_(cv),dv=W.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=k();return(0,G.jsx)(lv,{scope:n,id:i,children:(0,G.jsx)(w.div,{role:`group`,"aria-labelledby":i,...r,ref:t})})});dv.displayName=cv;var fv=`SelectLabel`,pv=W.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=uv(fv,n);return(0,G.jsx)(w.div,{id:i.id,...r,ref:t})});pv.displayName=fv;var mv=`SelectItem`,[hv,gv]=A_(mv),_v=W.forwardRef((e,t)=>{let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=P_(mv,n),c=X_(mv,n),l=s.value===r,[u,d]=W.useState(a??``),[f,p]=W.useState(!1),m=y(t,e=>c.itemRefCallback?.(e,r,i)),h=k(),g=W.useRef(`touch`),_=()=>{i||(s.onValueChange(r),s.onOpenChange(!1))};if(r===``)throw Error(`A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return(0,G.jsx)(hv,{scope:n,value:r,disabled:i,textId:h,isSelected:l,onItemTextChange:W.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,G.jsx)(D_.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,G.jsx)(w.div,{role:`option`,"aria-labelledby":h,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:m,onFocus:j(o.onFocus,()=>p(!0)),onBlur:j(o.onBlur,()=>p(!1)),onClick:j(o.onClick,()=>{g.current!==`mouse`&&_()}),onPointerUp:j(o.onPointerUp,()=>{g.current===`mouse`&&_()}),onPointerDown:j(o.onPointerDown,e=>{g.current=e.pointerType}),onPointerMove:j(o.onPointerMove,e=>{g.current=e.pointerType,i?c.onItemLeave?.():g.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:j(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:j(o.onKeyDown,e=>{c.searchRef?.current!==``&&e.key===` `||(T_.includes(e.key)&&_(),e.key===` `&&e.preventDefault())})})})})});_v.displayName=mv;var vv=`SelectItemText`,yv=W.forwardRef((e,t)=>{let{__scopeSelect:n,className:r,style:i,...a}=e,o=P_(vv,n),s=X_(vv,n),c=gv(vv,n),l=I_(vv,n),[u,d]=W.useState(null),f=y(t,e=>d(e),c.onItemTextChange,e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=u?.textContent,m=W.useMemo(()=>(0,G.jsx)(`option`,{value:c.value,disabled:c.disabled,children:p},c.value),[c.disabled,c.value,p]),{onNativeOptionAdd:h,onNativeOptionRemove:g}=l;return Ke(()=>(h(m),()=>g(m)),[h,g,m]),(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(w.span,{id:c.textId,...a,ref:f}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren?En.createPortal(a.children,o.valueNode):null]})});yv.displayName=vv;var bv=`SelectItemIndicator`,xv=W.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return gv(bv,n).isSelected?(0,G.jsx)(w.span,{"aria-hidden":!0,...r,ref:t}):null});xv.displayName=bv;var Sv=`SelectScrollUpButton`,Cv=W.forwardRef((e,t)=>{let n=X_(Sv,e.__scopeSelect),r=av(Sv,e.__scopeSelect),[i,a]=W.useState(!1),o=y(t,r.onScrollButtonChange);return Ke(()=>{if(n.viewport&&n.isPositioned){let e=function(){a(t.scrollTop>0)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,G.jsx)(Ev,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null});Cv.displayName=Sv;var wv=`SelectScrollDownButton`,Tv=W.forwardRef((e,t)=>{let n=X_(wv,e.__scopeSelect),r=av(wv,e.__scopeSelect),[i,a]=W.useState(!1),o=y(t,r.onScrollButtonChange);return Ke(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;a(Math.ceil(t.scrollTop)<e)},t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,G.jsx)(Ev,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null});Tv.displayName=wv;var Ev=W.forwardRef((e,t)=>{let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=X_(`SelectScrollButton`,n),o=W.useRef(null),s=O_(n),c=W.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return W.useEffect(()=>()=>c(),[c]),Ke(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,G.jsx)(w.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:j(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:j(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:j(i.onPointerLeave,()=>{c()})})}),Dv=`SelectSeparator`,Ov=W.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e;return(0,G.jsx)(w.div,{"aria-hidden":!0,...r,ref:t})});Ov.displayName=Dv;var kv=`SelectArrow`,Av=W.forwardRef((e,t)=>{let{__scopeSelect:n,...r}=e,i=M_(n),a=P_(kv,n),o=X_(kv,n);return a.open&&o.position===`popper`?(0,G.jsx)(yr,{...i,...r,ref:t}):null});Av.displayName=kv;var jv=`SelectBubbleInput`,Mv=W.forwardRef(({__scopeSelect:e,value:t,...n},r)=>{let i=W.useRef(null),a=y(r,i),o=sf(t);return W.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLSelectElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(o!==t&&r){let n=new Event(`change`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,G.jsx)(w.select,{...n,style:{...br,...n.style},ref:a,defaultValue:t})});Mv.displayName=jv;function Nv(e){return e===``||e===void 0}function Pv(e){let t=C(e),n=W.useRef(``),r=W.useRef(0),i=W.useCallback(e=>{let i=n.current+e;t(i),(function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))})(i)},[t]),a=W.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return W.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}function Fv(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Iv(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function Iv(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Lv=L_,Rv=z_,zv=V_,Bv=U_,Vv=G_,Hv=q_,Uv=sv,Wv=pv,Gv=_v,Kv=yv,qv=xv,Jv=Cv,Yv=Tv,Xv=Ov,Zv=[`PageUp`,`PageDown`],Qv=[`ArrowUp`,`ArrowDown`,`ArrowLeft`,`ArrowRight`],$v={"from-left":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-right":[`Home`,`PageDown`,`ArrowDown`,`ArrowRight`],"from-bottom":[`Home`,`PageDown`,`ArrowDown`,`ArrowLeft`],"from-top":[`Home`,`PageDown`,`ArrowUp`,`ArrowLeft`]},ey=`Slider`,[ty,ny,ry]=ci(ey),[iy,ay]=o(ey,[ry]),[oy,sy]=iy(ey),cy=W.forwardRef((e,t)=>{let{name:n,min:r=0,max:i=100,step:a=1,orientation:o=`horizontal`,disabled:s=!1,minStepsBetweenThumbs:c=0,defaultValue:l=[r],value:u,onValueChange:d=()=>{},onValueCommit:f=()=>{},inverted:p=!1,form:m,...h}=e,g=W.useRef(new Set),_=W.useRef(0),v=o===`horizontal`?dy:fy,[y=[],b]=S({prop:u,defaultProp:l,onChange:e=>{[...g.current][_.current]?.focus(),d(e)}}),x=W.useRef(y);function C(e){E(e,Ey(y,e))}function w(e){E(e,_.current)}function T(){let e=x.current[_.current];y[_.current]!==e&&f(y)}function E(e,t,{commit:n}={commit:!1}){let o=jy(a),s=di(My(Math.round((e-r)/a)*a+r,o),[r,i]);b((e=[])=>{let r=Cy(e,s,t);if(ky(r,c*a)){_.current=r.indexOf(s);let t=String(r)!==String(e);return t&&n&&f(r),t?r:e}else return e})}return(0,G.jsx)(oy,{scope:e.__scopeSlider,name:n,disabled:s,min:r,max:i,valueIndexToChangeRef:_,thumbs:g.current,values:y,orientation:o,form:m,children:(0,G.jsx)(ty.Provider,{scope:e.__scopeSlider,children:(0,G.jsx)(ty.Slot,{scope:e.__scopeSlider,children:(0,G.jsx)(v,{"aria-disabled":s,"data-disabled":s?``:void 0,...h,ref:t,onPointerDown:j(h.onPointerDown,()=>{s||(x.current=y)}),min:r,max:i,inverted:p,onSlideStart:s?void 0:C,onSlideMove:s?void 0:w,onSlideEnd:s?void 0:T,onHomeKeyDown:()=>!s&&E(r,0,{commit:!0}),onEndKeyDown:()=>!s&&E(i,y.length-1,{commit:!0}),onStepKeyDown:({event:e,direction:t})=>{if(!s){let n=Zv.includes(e.key)||e.shiftKey&&Qv.includes(e.key)?10:1,r=_.current,i=y[r];E(i+a*n*t,r,{commit:!0})}}})})})})});cy.displayName=ey;var[ly,uy]=iy(ey,{startEdge:`left`,endEdge:`right`,size:`width`,direction:1}),dy=W.forwardRef((e,t)=>{let{min:n,max:r,dir:i,inverted:a,onSlideStart:o,onSlideMove:s,onSlideEnd:c,onStepKeyDown:l,...u}=e,[d,f]=W.useState(null),p=y(t,e=>f(e)),m=W.useRef(void 0),h=ui(i),g=h===`ltr`,_=g&&!a||!g&&a;function v(e){let t=m.current||d.getBoundingClientRect(),i=Ay([0,t.width],_?[n,r]:[r,n]);return m.current=t,i(e-t.left)}return(0,G.jsx)(ly,{scope:e.__scopeSlider,startEdge:_?`left`:`right`,endEdge:_?`right`:`left`,direction:_?1:-1,size:`width`,children:(0,G.jsx)(py,{dir:h,"data-orientation":`horizontal`,...u,ref:p,style:{...u.style,"--radix-slider-thumb-transform":`translateX(-50%)`},onSlideStart:e=>{let t=v(e.clientX);o?.(t)},onSlideMove:e=>{let t=v(e.clientX);s?.(t)},onSlideEnd:()=>{m.current=void 0,c?.()},onStepKeyDown:e=>{let t=$v[_?`from-left`:`from-right`].includes(e.key);l?.({event:e,direction:t?-1:1})}})})}),fy=W.forwardRef((e,t)=>{let{min:n,max:r,inverted:i,onSlideStart:a,onSlideMove:o,onSlideEnd:s,onStepKeyDown:c,...l}=e,u=W.useRef(null),d=y(t,u),f=W.useRef(void 0),p=!i;function m(e){let t=f.current||u.current.getBoundingClientRect(),i=Ay([0,t.height],p?[r,n]:[n,r]);return f.current=t,i(e-t.top)}return(0,G.jsx)(ly,{scope:e.__scopeSlider,startEdge:p?`bottom`:`top`,endEdge:p?`top`:`bottom`,size:`height`,direction:p?1:-1,children:(0,G.jsx)(py,{"data-orientation":`vertical`,...l,ref:d,style:{...l.style,"--radix-slider-thumb-transform":`translateY(50%)`},onSlideStart:e=>{let t=m(e.clientY);a?.(t)},onSlideMove:e=>{let t=m(e.clientY);o?.(t)},onSlideEnd:()=>{f.current=void 0,s?.()},onStepKeyDown:e=>{let t=$v[p?`from-bottom`:`from-top`].includes(e.key);c?.({event:e,direction:t?-1:1})}})})}),py=W.forwardRef((e,t)=>{let{__scopeSlider:n,onSlideStart:r,onSlideMove:i,onSlideEnd:a,onHomeKeyDown:o,onEndKeyDown:s,onStepKeyDown:c,...l}=e,u=sy(ey,n);return(0,G.jsx)(w.span,{...l,ref:t,onKeyDown:j(e.onKeyDown,e=>{e.key===`Home`?(o(e),e.preventDefault()):e.key===`End`?(s(e),e.preventDefault()):Zv.concat(Qv).includes(e.key)&&(c(e),e.preventDefault())}),onPointerDown:j(e.onPointerDown,e=>{let t=e.target;t.setPointerCapture(e.pointerId),e.preventDefault(),u.thumbs.has(t)?t.focus():r(e)}),onPointerMove:j(e.onPointerMove,e=>{e.target.hasPointerCapture(e.pointerId)&&i(e)}),onPointerUp:j(e.onPointerUp,e=>{let t=e.target;t.hasPointerCapture(e.pointerId)&&(t.releasePointerCapture(e.pointerId),a(e))})})}),my=`SliderTrack`,hy=W.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=sy(my,n);return(0,G.jsx)(w.span,{"data-disabled":i.disabled?``:void 0,"data-orientation":i.orientation,...r,ref:t})});hy.displayName=my;var gy=`SliderRange`,_y=W.forwardRef((e,t)=>{let{__scopeSlider:n,...r}=e,i=sy(gy,n),a=uy(gy,n),o=y(t,W.useRef(null)),s=i.values.length,c=i.values.map(e=>wy(e,i.min,i.max)),l=s>1?Math.min(...c):0,u=100-Math.max(...c);return(0,G.jsx)(w.span,{"data-orientation":i.orientation,"data-disabled":i.disabled?``:void 0,...r,ref:o,style:{...e.style,[a.startEdge]:l+`%`,[a.endEdge]:u+`%`}})});_y.displayName=gy;var vy=`SliderThumb`,yy=W.forwardRef((e,t)=>{let n=ny(e.__scopeSlider),[r,i]=W.useState(null),a=y(t,e=>i(e)),o=W.useMemo(()=>r?n().findIndex(e=>e.ref.current===r):-1,[n,r]);return(0,G.jsx)(by,{...e,ref:a,index:o})}),by=W.forwardRef((e,t)=>{let{__scopeSlider:n,index:r,name:i,...a}=e,o=sy(vy,n),s=uy(vy,n),[c,l]=W.useState(null),u=y(t,e=>l(e)),d=c?o.form||!!c.closest(`form`):!0,f=Zn(c),p=o.values[r],m=p===void 0?0:wy(p,o.min,o.max),h=Ty(r,o.values.length),g=f?.[s.size],_=g?Dy(g,m,s.direction):0;return W.useEffect(()=>{if(c)return o.thumbs.add(c),()=>{o.thumbs.delete(c)}},[c,o.thumbs]),(0,G.jsxs)(`span`,{style:{transform:`var(--radix-slider-thumb-transform)`,position:`absolute`,[s.startEdge]:`calc(${m}% + ${_}px)`},children:[(0,G.jsx)(ty.ItemSlot,{scope:e.__scopeSlider,children:(0,G.jsx)(w.span,{role:`slider`,"aria-label":e[`aria-label`]||h,"aria-valuemin":o.min,"aria-valuenow":p,"aria-valuemax":o.max,"aria-orientation":o.orientation,"data-orientation":o.orientation,"data-disabled":o.disabled?``:void 0,tabIndex:o.disabled?void 0:0,...a,ref:u,style:p===void 0?{display:`none`}:e.style,onFocus:j(e.onFocus,()=>{o.valueIndexToChangeRef.current=r})})}),d&&(0,G.jsx)(Sy,{name:i??(o.name?o.name+(o.values.length>1?`[]`:``):void 0),form:o.form,value:p},r)]})});yy.displayName=vy;var xy=`RadioBubbleInput`,Sy=W.forwardRef(({__scopeSlider:e,value:t,...n},r)=>{let i=W.useRef(null),a=y(i,r),o=sf(t);return W.useEffect(()=>{let e=i.current;if(!e)return;let n=window.HTMLInputElement.prototype,r=Object.getOwnPropertyDescriptor(n,`value`).set;if(o!==t&&r){let n=new Event(`input`,{bubbles:!0});r.call(e,t),e.dispatchEvent(n)}},[o,t]),(0,G.jsx)(w.input,{style:{display:`none`},...n,ref:a,defaultValue:t})});Sy.displayName=xy;function Cy(e=[],t,n){let r=[...e];return r[n]=t,r.sort((e,t)=>e-t)}function wy(e,t,n){return di(100/(n-t)*(e-t),[0,100])}function Ty(e,t){if(t>2)return`Value ${e+1} of ${t}`;if(t===2)return[`Minimum`,`Maximum`][e]}function Ey(e,t){if(e.length===1)return 0;let n=e.map(e=>Math.abs(e-t)),r=Math.min(...n);return n.indexOf(r)}function Dy(e,t,n){let r=e/2;return(r-Ay([0,50],[0,r])(t)*n)*n}function Oy(e){return e.slice(0,-1).map((t,n)=>e[n+1]-t)}function ky(e,t){if(t>0){let n=Oy(e);return Math.min(...n)>=t}return!0}function Ay(e,t){return n=>{if(e[0]===e[1]||t[0]===t[1])return t[0];let r=(t[1]-t[0])/(e[1]-e[0]);return t[0]+r*(n-e[0])}}function jy(e){return(String(e).split(`.`)[1]||``).length}function My(e,t){let n=10**t;return Math.round(e*n)/n}var Ny=cy,Py=hy,Fy=_y,Iy=yy,Ly=`Switch`,[Ry,zy]=o(Ly),[By,Vy]=Ry(Ly),Hy=W.forwardRef((e,t)=>{let{__scopeSwitch:n,name:r,checked:i,defaultChecked:a,required:o,disabled:s,value:c=`on`,onCheckedChange:l,form:u,...d}=e,[f,p]=W.useState(null),m=y(t,e=>p(e)),h=W.useRef(!1),g=f?u||!!f.closest(`form`):!0,[_,v]=S({prop:i,defaultProp:a??!1,onChange:l,caller:Ly});return(0,G.jsxs)(By,{scope:n,checked:_,disabled:s,children:[(0,G.jsx)(w.button,{type:`button`,role:`switch`,"aria-checked":_,"aria-required":o,"data-state":qy(_),"data-disabled":s?``:void 0,disabled:s,value:c,...d,ref:m,onClick:j(e.onClick,e=>{v(e=>!e),g&&(h.current=e.isPropagationStopped(),h.current||e.stopPropagation())})}),g&&(0,G.jsx)(Ky,{control:f,bubbles:!h.current,name:r,value:c,checked:_,required:o,disabled:s,form:u,style:{transform:`translateX(-100%)`}})]})});Hy.displayName=Ly;var Uy=`SwitchThumb`,Wy=W.forwardRef((e,t)=>{let{__scopeSwitch:n,...r}=e,i=Vy(Uy,n);return(0,G.jsx)(w.span,{"data-state":qy(i.checked),"data-disabled":i.disabled?``:void 0,...r,ref:t})});Wy.displayName=Uy;var Gy=`SwitchBubbleInput`,Ky=W.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:r=!0,...i},a)=>{let o=W.useRef(null),s=y(o,a),c=sf(n),l=Zn(t);return W.useEffect(()=>{let e=o.current;if(!e)return;let t=window.HTMLInputElement.prototype,i=Object.getOwnPropertyDescriptor(t,`checked`).set;if(c!==n&&i){let t=new Event(`click`,{bubbles:r});i.call(e,n),e.dispatchEvent(t)}},[c,n,r]),(0,G.jsx)(`input`,{type:`checkbox`,"aria-hidden":!0,defaultChecked:n,...i,tabIndex:-1,ref:s,style:{...i.style,...l,position:`absolute`,pointerEvents:`none`,opacity:0,margin:0}})});Ky.displayName=Gy;function qy(e){return e?`checked`:`unchecked`}var Jy=Hy,Yy=Wy,Xy=`Toggle`,Zy=W.forwardRef((e,t)=>{let{pressed:n,defaultPressed:r,onPressedChange:i,...a}=e,[o,s]=S({prop:n,onChange:i,defaultProp:r??!1,caller:Xy});return(0,G.jsx)(w.button,{type:`button`,"aria-pressed":o,"data-state":o?`on`:`off`,"data-disabled":e.disabled?``:void 0,...a,ref:t,onClick:j(e.onClick,()=>{e.disabled||s(!o)})})});Zy.displayName=Xy;var Qy=Zy,$y=`ToggleGroup`,[eb,tb]=o($y,[sa]),nb=sa(),rb=W.forwardRef((e,t)=>{let{type:n,...r}=e;if(n===`single`)return(0,G.jsx)(ob,{...r,ref:t});if(n===`multiple`)return(0,G.jsx)(sb,{...r,ref:t});throw Error(`Missing prop \`type\` expected on \`${$y}\``)});rb.displayName=$y;var[ib,ab]=eb($y),ob=W.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=S({prop:n,defaultProp:r??``,onChange:i,caller:$y});return(0,G.jsx)(ib,{scope:e.__scopeToggleGroup,type:`single`,value:W.useMemo(()=>o?[o]:[],[o]),onItemActivate:s,onItemDeactivate:W.useCallback(()=>s(``),[s]),children:(0,G.jsx)(ub,{...a,ref:t})})}),sb=W.forwardRef((e,t)=>{let{value:n,defaultValue:r,onValueChange:i=()=>{},...a}=e,[o,s]=S({prop:n,defaultProp:r??[],onChange:i,caller:$y}),c=W.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=W.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,G.jsx)(ib,{scope:e.__scopeToggleGroup,type:`multiple`,value:o,onItemActivate:c,onItemDeactivate:l,children:(0,G.jsx)(ub,{...a,ref:t})})});rb.displayName=$y;var[cb,lb]=eb($y),ub=W.forwardRef((e,t)=>{let{__scopeToggleGroup:n,disabled:r=!1,rovingFocus:i=!0,orientation:a,dir:o,loop:s=!0,...c}=e,l=nb(n),u=ui(o),d={role:`group`,dir:u,...c};return(0,G.jsx)(cb,{scope:n,rovingFocus:i,disabled:r,children:i?(0,G.jsx)(ya,{asChild:!0,...l,orientation:a,dir:u,loop:s,children:(0,G.jsx)(w.div,{...d,ref:t})}):(0,G.jsx)(w.div,{...d,ref:t})})}),db=`ToggleGroupItem`,fb=W.forwardRef((e,t)=>{let n=ab(db,e.__scopeToggleGroup),r=lb(db,e.__scopeToggleGroup),i=nb(e.__scopeToggleGroup),a=n.value.includes(e.value),o=r.disabled||e.disabled,s={...e,pressed:a,disabled:o},c=W.useRef(null);return r.rovingFocus?(0,G.jsx)(ba,{asChild:!0,...i,focusable:!o,active:a,ref:c,children:(0,G.jsx)(pb,{...s,ref:t})}):(0,G.jsx)(pb,{...s,ref:t})});fb.displayName=db;var pb=W.forwardRef((e,t)=>{let{__scopeToggleGroup:n,value:r,...i}=e,a=ab(db,n),o={role:`radio`,"aria-checked":e.pressed,"aria-pressed":void 0};return(0,G.jsx)(Zy,{...a.type===`single`?o:void 0,...i,ref:t,onPressedChange:e=>{e?a.onItemActivate(r):a.onItemDeactivate(r)}})}),mb=rb,hb=fb;function q(...e){return ie(h(e))}function gb(e){return e?typeof e==`string`||typeof e==`number`?e:Array.isArray(e)?e.length===0?null:e.length===1?(0,G.jsx)(zl,{schema:e[0]}):e.map((e,t)=>(0,G.jsx)(zl,{schema:e},e.id||t)):(0,G.jsx)(zl,{schema:e}):null}var _b=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n;return(0,G.jsx)(`div`,{ref:r,className:t,...s,"data-obj-id":i,"data-obj-type":a,style:o,children:gb(e.children||e.body)})});K.register(`div`,_b,{namespace:`ui`,label:`Container (Deprecated)`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{className:`p-2 sm:p-4 border border-dashed border-gray-300 rounded min-h-[100px]`}}),K.register(`text`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return n||e.className||a.className?(0,G.jsx)(`span`,{"data-obj-id":n,"data-obj-type":r,style:i,className:e.className||a.className,...a,children:e.content||e.value}):(0,G.jsx)(G.Fragment,{children:e.content||e.value})},{namespace:`ui`,label:`Text`,inputs:[{name:`content`,type:`string`,label:`Content`,required:!0}],defaultProps:{content:`Text content`}});var vb=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n;return(0,G.jsx)(`span`,{ref:r,className:t,...s,"data-obj-id":i,"data-obj-type":a,style:o,children:gb(e.body)})});K.register(`span`,vb,{namespace:`ui`,label:`Inline Container (Deprecated)`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{className:`px-1.5 py-0.5 sm:px-2 sm:py-1`},defaultChildren:[{type:`text`,content:`Inline text`}]});var yb=vd,bb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(yd,{ref:n,className:q(`border-b`,e),...t}));bb.displayName=`AccordionItem`;var xb=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsx)(bd,{className:`flex`,children:(0,G.jsxs)(xd,{ref:r,className:q(`flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180`,e),...n,children:[t,(0,G.jsx)(nt,{className:`h-4 w-4 shrink-0 transition-transform duration-200`})]})}));xb.displayName=xd.displayName;var Sb=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsx)(Sd,{ref:r,className:`overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down`,...n,children:(0,G.jsx)(`div`,{className:q(`pb-4 pt-0`,e),children:t})}));Sb.displayName=Sd.displayName;var Cb=M(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-input bg-background hover:bg-accent hover:text-accent-foreground`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-10 px-4 py-2`,sm:`h-9 rounded-md px-3`,lg:`h-11 rounded-md px-8`,icon:`h-10 w-10`}},defaultVariants:{variant:`default`,size:`default`}}),J=W.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...i},a)=>(0,G.jsx)(r?x:`button`,{className:q(Cb({variant:t,size:n,className:e})),ref:a,...i}));J.displayName=`Button`;var wb=Jd,Tb=Yd,Eb=Xd,Db=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Zd,{className:q(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,e),...t,ref:n}));Db.displayName=Zd.displayName;var Ob=W.forwardRef(({className:e,...t},n)=>(0,G.jsxs)(Eb,{children:[(0,G.jsx)(Db,{}),(0,G.jsx)(Qd,{ref:n,className:q(`fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg`,e),...t})]}));Ob.displayName=Qd.displayName;var kb=({className:e,...t})=>(0,G.jsx)(`div`,{className:q(`flex flex-col space-y-2 text-center sm:text-left`,e),...t});kb.displayName=`AlertDialogHeader`;var Ab=({className:e,...t})=>(0,G.jsx)(`div`,{className:q(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,e),...t});Ab.displayName=`AlertDialogFooter`;var jb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(tf,{ref:n,className:q(`text-lg font-semibold`,e),...t}));jb.displayName=tf.displayName;var Mb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(nf,{ref:n,className:q(`text-sm text-muted-foreground`,e),...t}));Mb.displayName=nf.displayName;var Nb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)($d,{ref:n,className:q(Cb(),e),...t}));Nb.displayName=$d.displayName;var Pb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ef,{ref:n,className:q(Cb({variant:`outline`}),`mt-2 sm:mt-0`,e),...t}));Pb.displayName=ef.displayName;var Fb=M(`relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground`,{variants:{variant:{default:`bg-background text-foreground`,destructive:`border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive`}},defaultVariants:{variant:`default`}}),Ib=W.forwardRef(({className:e,variant:t,...n},r)=>(0,G.jsx)(`div`,{ref:r,role:`alert`,className:q(Fb({variant:t}),e),...n}));Ib.displayName=`Alert`;var Lb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`h5`,{ref:n,className:q(`mb-1 font-medium leading-none tracking-tight`,e),...t}));Lb.displayName=`AlertTitle`;var Rb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:q(`text-sm [&_p]:leading-relaxed`,e),...t}));Rb.displayName=`AlertDescription`;var zb=of,Bb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(hc,{ref:n,className:q(`relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full`,e),...t}));Bb.displayName=hc.displayName;var Vb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(gc,{ref:n,className:q(`aspect-square h-full w-full`,e),...t}));Vb.displayName=gc.displayName;var Hb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(_c,{ref:n,className:q(`flex h-full w-full items-center justify-center rounded-full bg-muted`,e),...t}));Hb.displayName=_c.displayName;var Ub=M(`inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground hover:bg-primary/80`,secondary:`border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80`,destructive:`border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80`,outline:`text-foreground`}},defaultVariants:{variant:`default`}});function Wb({className:e,variant:t,...n}){return(0,G.jsx)(`div`,{className:q(Ub({variant:t}),e),...n})}var Gb=W.forwardRef(({...e},t)=>(0,G.jsx)(`nav`,{ref:t,"aria-label":`breadcrumb`,...e}));Gb.displayName=`Breadcrumb`;var Kb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`ol`,{ref:n,className:q(`flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5`,e),...t}));Kb.displayName=`BreadcrumbList`;var qb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`li`,{ref:n,className:q(`inline-flex items-center gap-1.5`,e),...t}));qb.displayName=`BreadcrumbItem`;var Jb=W.forwardRef(({asChild:e,className:t,...n},r)=>(0,G.jsx)(e?x:`a`,{ref:r,className:q(`transition-colors hover:text-foreground`,t),...n}));Jb.displayName=`BreadcrumbLink`;var Yb=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`span`,{ref:n,role:`link`,"aria-disabled":`true`,"aria-current":`page`,className:q(`font-normal text-foreground`,e),...t}));Yb.displayName=`BreadcrumbPage`;var Xb=({children:e,className:t,...n})=>(0,G.jsx)(`li`,{role:`presentation`,"aria-hidden":`true`,className:q(`[&>svg]:w-3.5 [&>svg]:h-3.5`,t),...n,children:e??(0,G.jsx)(Xe,{})});Xb.displayName=`BreadcrumbSeparator`;var Zb=({className:e,...t})=>(0,G.jsxs)(`span`,{role:`presentation`,"aria-hidden":`true`,className:q(`flex h-9 w-9 items-center justify-center`,e),...t,children:[(0,G.jsx)($t,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`More`})]});Zb.displayName=`BreadcrumbElipssis`;function Qb({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r=`label`,buttonVariant:i=`ghost`,formatters:a,components:o,...s}){let c=je();return(0,G.jsx)(b,{showOutsideDays:n,className:q(`bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent`,String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:e=>e.toLocaleString(`default`,{month:`short`}),...a},classNames:{root:q(`w-fit`,c.root),months:q(`relative flex flex-col gap-4 md:flex-row`,c.months),month:q(`flex w-full flex-col gap-4`,c.month),nav:q(`absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1`,c.nav),button_previous:q(Cb({variant:i}),`h-(--cell-size) w-(--cell-size) select-none p-0 aria-disabled:opacity-50`,c.button_previous),button_next:q(Cb({variant:i}),`h-(--cell-size) w-(--cell-size) select-none p-0 aria-disabled:opacity-50`,c.button_next),month_caption:q(`flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)`,c.month_caption),dropdowns:q(`flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium`,c.dropdowns),dropdown_root:q(`has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border`,c.dropdown_root),dropdown:q(`bg-popover absolute inset-0 opacity-0`,c.dropdown),caption_label:q(`select-none font-medium`,r===`label`?`text-sm`:`[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5`,c.caption_label),table:`w-full border-collapse`,weekdays:q(`flex`,c.weekdays),weekday:q(`text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal`,c.weekday),week:q(`mt-2 flex w-full`,c.week),week_number_header:q(`w-(--cell-size) select-none`,c.week_number_header),week_number:q(`text-muted-foreground select-none text-[0.8rem]`,c.week_number),day:q(`group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md`,c.day),range_start:q(`bg-accent rounded-l-md`,c.range_start),range_middle:q(`rounded-none`,c.range_middle),range_end:q(`bg-accent rounded-r-md`,c.range_end),today:q(`bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none`,c.today),outside:q(`text-muted-foreground aria-selected:text-muted-foreground`,c.outside),disabled:q(`text-muted-foreground opacity-50`,c.disabled),hidden:q(`invisible`,c.hidden),...t},components:{Root:({className:e,rootRef:t,...n})=>(0,G.jsx)(`div`,{"data-slot":`calendar`,ref:t,className:q(e),...n}),Chevron:({className:e,orientation:t,...n})=>(0,G.jsx)(t===`left`?Tt:t===`right`?Xe:nt,{className:q(`size-4`,e),...n}),DayButton:$b,WeekNumber:({children:e,...t})=>(0,G.jsx)(`td`,{...t,children:(0,G.jsx)(`div`,{className:`flex size-(--cell-size) items-center justify-center text-center`,children:e})}),...o},...s})}function $b({className:e,day:t,modifiers:n,...r}){let i=je(),a=W.useRef(null);return W.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),(0,G.jsx)(J,{ref:a,variant:`ghost`,size:`icon`,"data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:q(`data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-(--cell-size) flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70`,i.day,e),...r})}var ex=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:q(`rounded-lg border bg-card text-card-foreground shadow-sm`,e),...t}));ex.displayName=`Card`;var tx=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:q(`flex flex-col space-y-1.5 p-6`,e),...t}));tx.displayName=`CardHeader`;var nx=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:q(`text-2xl font-semibold leading-none tracking-tight`,e),...t}));nx.displayName=`CardTitle`;var rx=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:q(`text-sm text-muted-foreground`,e),...t}));rx.displayName=`CardDescription`;var ix=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:q(`p-6 pt-0`,e),...t}));ix.displayName=`CardContent`;var ax=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:q(`flex items-center p-6 pt-0`,e),...t}));ax.displayName=`CardFooter`;var ox=W.createContext(null);function sx(){let e=W.useContext(ox);if(!e)throw Error(`useCarousel must be used within a <Carousel />`);return e}var cx=W.forwardRef(({orientation:e=`horizontal`,opts:t,setApi:n,plugins:r,className:i,children:a,...o},s)=>{let[c,l]=m({...t,axis:e===`horizontal`?`x`:`y`},r),[u,d]=W.useState(!1),[f,p]=W.useState(!1),h=W.useCallback(e=>{e&&(d(e.canScrollPrev()),p(e.canScrollNext()))},[]),g=W.useCallback(()=>{l?.scrollPrev()},[l]),_=W.useCallback(()=>{l?.scrollNext()},[l]),v=W.useCallback(e=>{e.key===`ArrowLeft`?(e.preventDefault(),g()):e.key===`ArrowRight`&&(e.preventDefault(),_())},[g,_]);return W.useEffect(()=>{!l||!n||n(l)},[l,n]),W.useEffect(()=>{if(l)return h(l),l.on(`reInit`,h),l.on(`select`,h),()=>{l?.off(`select`,h)}},[l,h]),(0,G.jsx)(ox.Provider,{value:{carouselRef:c,api:l,opts:t,orientation:e||(t?.axis===`y`?`vertical`:`horizontal`),scrollPrev:g,scrollNext:_,canScrollPrev:u,canScrollNext:f},children:(0,G.jsx)(`div`,{ref:s,onKeyDownCapture:v,className:q(`relative`,i),role:`region`,"aria-roledescription":`carousel`,...o,children:a})})});cx.displayName=`Carousel`;var lx=W.forwardRef(({className:e,...t},n)=>{let{carouselRef:r,orientation:i}=sx();return(0,G.jsx)(`div`,{ref:r,className:`overflow-hidden`,children:(0,G.jsx)(`div`,{ref:n,className:q(`flex`,i===`horizontal`?`-ml-4`:`-mt-4 flex-col`,e),...t})})});lx.displayName=`CarouselContent`;var ux=W.forwardRef(({className:e,...t},n)=>{let{orientation:r}=sx();return(0,G.jsx)(`div`,{ref:n,role:`group`,"aria-roledescription":`slide`,className:q(`min-w-0 shrink-0 grow-0 basis-full`,r===`horizontal`?`pl-4`:`pt-4`,e),...t})});ux.displayName=`CarouselItem`;var dx=W.forwardRef(({className:e,variant:t=`outline`,size:n=`icon`,...r},i)=>{let{orientation:a,scrollPrev:o,canScrollPrev:s}=sx();return(0,G.jsxs)(J,{ref:i,variant:t,size:n,className:q(`absolute h-8 w-8 rounded-full`,a===`horizontal`?`-left-12 top-1/2 -translate-y-1/2`:`-top-12 left-1/2 -translate-x-1/2 rotate-90`,e),disabled:!s,onClick:o,...r,children:[(0,G.jsx)(Nt,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Previous slide`})]})});dx.displayName=`CarouselPrevious`;var fx=W.forwardRef(({className:e,variant:t=`outline`,size:n=`icon`,...r},i)=>{let{orientation:a,scrollNext:o,canScrollNext:s}=sx();return(0,G.jsxs)(J,{ref:i,variant:t,size:n,className:q(`absolute h-8 w-8 rounded-full`,a===`horizontal`?`-right-12 top-1/2 -translate-y-1/2`:`-bottom-12 left-1/2 -translate-x-1/2 rotate-90`,e),disabled:!s,onClick:o,...r,children:[(0,G.jsx)(on,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Next slide`})]})});fx.displayName=`CarouselNext`;var px={light:``,dark:`.dark`},mx=W.createContext(null);function hx(){let e=W.useContext(mx);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}var gx=W.forwardRef(({id:e,className:t,children:n,config:r,...i},a)=>{let o=W.useId(),s=`chart-${e||o.replace(/:/g,``)}`;return(0,G.jsx)(mx.Provider,{value:{config:r},children:(0,G.jsxs)(`div`,{"data-chart":s,ref:a,className:q(`flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none`,t),...i,children:[(0,G.jsx)(_x,{id:s,config:r}),(0,G.jsx)(Tn,{children:n})]})})});gx.displayName=`Chart`;var _x=({id:e,config:t})=>{let n=Object.entries(t).filter(([,e])=>e.theme||e.color);return n.length?(0,G.jsx)(`style`,{dangerouslySetInnerHTML:{__html:Object.entries(px).map(([t,r])=>`
|
|
16
|
+
${r} [data-chart=${e}] {
|
|
17
|
+
${n.map(([e,n])=>{let r=n.theme?.[t]||n.color;return r?` --color-${e}: ${r};`:null}).join(`
|
|
18
|
+
`)}
|
|
19
|
+
}
|
|
20
|
+
`).join(`
|
|
21
|
+
`)}}):null},vx=W.forwardRef(({active:e,payload:t,className:n,indicator:r=`dot`,hideLabel:i=!1,hideIndicator:a=!1,label:o,labelFormatter:s,labelClassName:c,formatter:l,color:u,nameKey:d,labelKey:f},p)=>{let{config:m}=hx(),h=W.useMemo(()=>{if(i||!t?.length)return null;let[e]=t,n=bx(m,e,`${f||e?.dataKey||e?.name||`value`}`),r=!f&&typeof o==`string`?m[o]?.label||o:n?.label;return s?(0,G.jsx)(`div`,{className:q(`font-medium`,c),children:s(r,t)}):r?(0,G.jsx)(`div`,{className:q(`font-medium`,c),children:r}):null},[o,s,t,i,c,m,f]);if(!e||!t?.length)return null;let g=t.length===1&&r!==`dot`;return(0,G.jsxs)(`div`,{ref:p,className:q(`grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl`,n),children:[g?null:h,(0,G.jsx)(`div`,{className:`grid gap-1.5`,children:t.filter(e=>e.type!==`none`).map((e,t)=>{let n=bx(m,e,`${d||e.name||e.dataKey||`value`}`),i=u||e.payload.fill||e.color;return(0,G.jsx)(`div`,{className:q(`flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground`,r===`dot`&&`items-center`),children:l&&e?.value!==void 0&&e.name?l(e.value,e.name,e,t,e.payload):(0,G.jsxs)(G.Fragment,{children:[n?.icon?(0,G.jsx)(n.icon,{}):!a&&(0,G.jsx)(`div`,{className:q(`shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)`,{"h-2.5 w-2.5":r===`dot`,"w-1":r===`line`,"w-0 border-[1.5px] border-dashed bg-transparent":r===`dashed`,"my-0.5":g&&r===`dashed`}),style:{"--color-bg":i,"--color-border":i}}),(0,G.jsxs)(`div`,{className:q(`flex flex-1 justify-between leading-none`,g?`items-end`:`items-center`),children:[(0,G.jsxs)(`div`,{className:`grid gap-1.5`,children:[g?h:null,(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:n?.label||e.name})]}),e.value&&(0,G.jsx)(`span`,{className:`font-mono font-medium tabular-nums text-foreground`,children:e.value.toLocaleString()})]})]})},e.dataKey)})})]})});vx.displayName=`ChartTooltip`;var yx=W.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r=`bottom`,nameKey:i},a)=>{let{config:o}=hx();return n?.length?(0,G.jsx)(`div`,{ref:a,className:q(`flex items-center justify-center gap-4`,r===`top`?`pb-3`:`pt-3`,e),children:n.filter(e=>e.type!==`none`).map(e=>{let n=bx(o,e,`${i||e.dataKey||`value`}`);return(0,G.jsxs)(`div`,{className:q(`flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground`),children:[n?.icon&&!t?(0,G.jsx)(n.icon,{}):(0,G.jsx)(`div`,{className:`h-2 w-2 shrink-0 rounded-[2px]`,style:{backgroundColor:e.color}}),n?.label]},e.value)})}):null});yx.displayName=`ChartLegend`;function bx(e,t,n){if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n;return n in t&&typeof t[n]==`string`?i=t[n]:r&&n in r&&typeof r[n]==`string`&&(i=r[n]),i in e?e[i]:e[n]}var xx=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(gf,{ref:n,className:q(`grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground`,e),...t,children:(0,G.jsx)(vf,{className:q(`grid place-content-center text-current`),children:(0,G.jsx)(Ct,{className:`h-4 w-4`})})}));xx.displayName=gf.displayName;var Sx=Bu,Cx=Fu,wx=Lu,Tx=ze,Ex=me,Dx=le,Ox=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(be,{ref:n,className:q(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,e),...t}));Ox.displayName=be.displayName;var kx=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Dx,{children:[(0,G.jsx)(Ox,{}),(0,G.jsxs)(Ee,{ref:r,className:q(`fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg`,e),...n,children:[t,(0,G.jsxs)(Ae,{className:`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground`,children:[(0,G.jsx)(At,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}));kx.displayName=Ee.displayName;var Ax=({className:e,...t})=>(0,G.jsx)(`div`,{className:q(`flex flex-col space-y-1.5 text-center sm:text-left`,e),...t});Ax.displayName=`DialogHeader`;var jx=({className:e,...t})=>(0,G.jsx)(`div`,{className:q(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,e),...t});jx.displayName=`DialogFooter`;var Mx=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Ge,{ref:n,className:q(`text-lg font-semibold leading-none tracking-tight`,e),...t}));Mx.displayName=Ge.displayName;var Nx=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(xe,{ref:n,className:q(`text-sm text-muted-foreground`,e),...t}));Nx.displayName=xe.displayName;var Px=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ve,{ref:n,className:q(`flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground`,e),...t}));Px.displayName=ve.displayName;var Fx=W.forwardRef(({className:e,...t},n)=>(0,G.jsxs)(`div`,{className:`flex items-center border-b px-3`,"cmdk-input-wrapper":``,children:[(0,G.jsx)(st,{className:`mr-2 h-4 w-4 shrink-0 opacity-50`}),(0,G.jsx)(ve.Input,{ref:n,className:q(`flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`,e),...t})]}));Fx.displayName=ve.Input.displayName;var Ix=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ve.List,{ref:n,className:q(`max-h-[300px] overflow-y-auto overflow-x-hidden`,e),...t}));Ix.displayName=ve.List.displayName;var Lx=W.forwardRef((e,t)=>(0,G.jsx)(ve.Empty,{ref:t,className:`py-6 text-center text-sm`,...e}));Lx.displayName=ve.Empty.displayName;var Rx=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ve.Group,{ref:n,className:q(`overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground`,e),...t}));Rx.displayName=ve.Group.displayName;var zx=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ve.Separator,{ref:n,className:q(`-mx-1 h-px bg-border`,e),...t}));zx.displayName=ve.Separator.displayName;var Bx=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ve.Item,{ref:n,className:q(`relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,e),...t}));Bx.displayName=ve.Item.displayName;var Vx=({className:e,...t})=>(0,G.jsx)(`span`,{className:q(`ml-auto text-xs tracking-widest text-muted-foreground`,e),...t});Vx.displayName=`CommandShortcut`;var Hx=cp,Ux=lp,Wx=vp,Gx=W.forwardRef(({className:e,inset:t,children:n,...r},i)=>(0,G.jsxs)(yp,{ref:i,className:q(`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`,t&&`pl-8`,e),...r,children:[n,(0,G.jsx)(Xe,{className:`ml-auto h-4 w-4`})]}));Gx.displayName=yp.displayName;var Kx=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(bp,{ref:n,className:q(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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 origin-(--radix-context-menu-content-transform-origin)`,e),...t}));Kx.displayName=bp.displayName;var qx=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(up,{children:(0,G.jsx)(dp,{ref:n,className:q(`z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 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 origin-(--radix-context-menu-content-transform-origin)`,e),...t})}));qx.displayName=dp.displayName;var Jx=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(pp,{ref:r,className:q(`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,t&&`pl-8`,e),...n}));Jx.displayName=pp.displayName;var Yx=W.forwardRef(({className:e,children:t,checked:n,...r},i)=>(0,G.jsxs)(mp,{ref:i,className:q(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),checked:n,...r,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(gp,{children:(0,G.jsx)(Ct,{className:`h-4 w-4`})})}),t]}));Yx.displayName=mp.displayName;var Xx=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(hp,{ref:r,className:q(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(gp,{children:(0,G.jsx)(Jt,{className:`h-2 w-2 fill-current`})})}),t]}));Xx.displayName=hp.displayName;var Zx=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(fp,{ref:r,className:q(`px-2 py-1.5 text-sm font-semibold text-foreground`,t&&`pl-8`,e),...n}));Zx.displayName=fp.displayName;var Qx=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(_p,{ref:n,className:q(`-mx-1 my-1 h-px bg-border`,e),...t}));Qx.displayName=_p.displayName;var $x=({className:e,...t})=>(0,G.jsx)(`span`,{className:q(`ml-auto text-xs tracking-widest text-muted-foreground`,e),...t});$x.displayName=`ContextMenuShortcut`;var eS=({shouldScaleBackground:e=!0,...t})=>(0,G.jsx)(i.Root,{shouldScaleBackground:e,...t});eS.displayName=`Drawer`;var tS=i.Trigger,nS=i.Portal,rS=i.Close,iS=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(i.Overlay,{ref:n,className:q(`fixed inset-0 z-50 bg-black/80`,e),...t}));iS.displayName=i.Overlay.displayName;var aS=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(nS,{children:[(0,G.jsx)(iS,{}),(0,G.jsxs)(i.Content,{ref:r,className:q(`fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background`,e),...n,children:[(0,G.jsx)(`div`,{className:`mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted`}),t]})]}));aS.displayName=`DrawerContent`;var oS=({className:e,...t})=>(0,G.jsx)(`div`,{className:q(`grid gap-1.5 p-4 text-center sm:text-left`,e),...t});oS.displayName=`DrawerHeader`;var sS=({className:e,...t})=>(0,G.jsx)(`div`,{className:q(`mt-auto flex flex-col gap-2 p-4`,e),...t});sS.displayName=`DrawerFooter`;var cS=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(i.Title,{ref:n,className:q(`text-lg font-semibold leading-none tracking-tight`,e),...t}));cS.displayName=i.Title.displayName;var lS=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(i.Description,{ref:n,className:q(`text-sm text-muted-foreground`,e),...t}));lS.displayName=i.Description.displayName;var uS=Bs,dS=Vs,fS=Xs,pS=W.forwardRef(({className:e,inset:t,children:n,...r},i)=>(0,G.jsxs)(Zs,{ref:i,className:q(`flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,t&&`pl-8`,e),...r,children:[n,(0,G.jsx)(Xe,{className:`ml-auto`})]}));pS.displayName=Zs.displayName;var mS=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Qs,{ref:n,className:q(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-(--radix-dropdown-menu-content-transform-origin)`,e),...t}));mS.displayName=Qs.displayName;var hS=W.forwardRef(({className:e,sideOffset:t=4,...n},r)=>(0,G.jsx)(Hs,{children:(0,G.jsx)(Us,{ref:r,sideOffset:t,className:q(`z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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 origin-(--radix-dropdown-menu-content-transform-origin)`,e),...n})}));hS.displayName=Us.displayName;var gS=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(Gs,{ref:r,className:q(`relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,t&&`pl-8`,e),...n}));gS.displayName=Gs.displayName;var _S=W.forwardRef(({className:e,children:t,checked:n,...r},i)=>(0,G.jsxs)(Ks,{ref:i,className:q(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),checked:n,...r,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(Js,{children:(0,G.jsx)(Ct,{className:`h-4 w-4`})})}),t]}));_S.displayName=Ks.displayName;var vS=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(qs,{ref:r,className:q(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(Js,{children:(0,G.jsx)(Jt,{className:`h-2 w-2 fill-current`})})}),t]}));vS.displayName=qs.displayName;var yS=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(Ws,{ref:r,className:q(`px-2 py-1.5 text-sm font-semibold`,t&&`pl-8`,e),...n}));yS.displayName=Ws.displayName;var bS=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Ys,{ref:n,className:q(`-mx-1 my-1 h-px bg-muted`,e),...t}));bS.displayName=Ys.displayName;var xS=({className:e,...t})=>(0,G.jsx)(`span`,{className:q(`ml-auto text-xs tracking-widest opacity-60`,e),...t});xS.displayName=`DropdownMenuShortcut`;var SS=M(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`),CS=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)($i,{ref:n,className:q(SS(),e),...t}));CS.displayName=$i.displayName;var wS=se,TS=W.createContext(null),ES=({...e})=>(0,G.jsx)(TS.Provider,{value:{name:e.name},children:(0,G.jsx)(ae,{...e})}),DS=()=>{let e=W.useContext(TS),t=W.useContext(OS),{getFieldState:r,formState:i}=n();if(!e)throw Error(`useFormField should be used within <FormField>`);if(!t)throw Error(`useFormField should be used within <FormItem>`);let a=r(e.name,i),{id:o}=t;return{id:o,name:e.name,formItemId:`${o}-form-item`,formDescriptionId:`${o}-form-item-description`,formMessageId:`${o}-form-item-message`,...a}},OS=W.createContext(null),kS=W.forwardRef(({className:e,...t},n)=>{let r=W.useId();return(0,G.jsx)(OS.Provider,{value:{id:r},children:(0,G.jsx)(`div`,{ref:n,className:q(`space-y-2`,e),...t})})});kS.displayName=`FormItem`;var AS=W.forwardRef(({className:e,...t},n)=>{let{error:r,formItemId:i}=DS();return(0,G.jsx)(CS,{ref:n,className:q(r&&`text-destructive`,e),htmlFor:i,...t})});AS.displayName=`FormLabel`;var jS=W.forwardRef(({...e},t)=>{let{error:n,formItemId:r,formDescriptionId:i,formMessageId:a}=DS();return(0,G.jsx)(x,{ref:t,id:r,"aria-describedby":n?`${i} ${a}`:`${i}`,"aria-invalid":!!n,...e})});jS.displayName=`FormControl`;var MS=W.forwardRef(({className:e,...t},n)=>{let{formDescriptionId:r}=DS();return(0,G.jsx)(`p`,{ref:n,id:r,className:q(`text-sm text-muted-foreground`,e),...t})});MS.displayName=`FormDescription`;var NS=W.forwardRef(({className:e,children:t,...n},r)=>{let{error:i,formMessageId:a}=DS(),o=i?String(i?.message??``):t;return o?(0,G.jsx)(`p`,{ref:r,id:a,className:q(`text-sm font-medium text-destructive`,e),...n,children:o}):null});NS.displayName=`FormMessage`;var PS=Hp,FS=Up,IS=W.forwardRef(({className:e,align:t=`center`,sideOffset:n=4,...r},i)=>(0,G.jsx)(Wp,{ref:i,align:t,sideOffset:n,className:q(`z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-(--radix-hover-card-content-transform-origin)`,e),...r}));IS.displayName=Wp.displayName;var LS=W.forwardRef(({className:e,containerClassName:t,...n},r)=>(0,G.jsx)(T,{ref:r,containerClassName:q(`flex items-center gap-2 has-[:disabled]:opacity-50`,t),className:q(`disabled:cursor-not-allowed`,e),...n}));LS.displayName=`InputOTP`;var RS=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:q(`flex items-center`,e),...t}));RS.displayName=`InputOTPGroup`;var zS=W.forwardRef(({index:e,className:t,...n},r)=>{let{char:i,hasFakeCaret:a,isActive:o}=W.useContext(we).slots[e];return(0,G.jsxs)(`div`,{ref:r,className:q(`relative flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md`,o&&`z-10 ring-2 ring-ring ring-offset-background`,t),...n,children:[i,a&&(0,G.jsx)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:(0,G.jsx)(`div`,{className:`h-4 w-px animate-caret-blink bg-foreground duration-1000`})})]})});zS.displayName=`InputOTPSlot`;var BS=W.forwardRef(({...e},t)=>(0,G.jsx)(`div`,{ref:t,role:`separator`,...e,children:(0,G.jsx)(kt,{})}));BS.displayName=`InputOTPSeparator`;var VS=W.forwardRef(({className:e,type:t,...n},r)=>(0,G.jsx)(`input`,{type:t,className:q(`flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,e),ref:r,...n}));VS.displayName=`Input`;function HS({...e}){return(0,G.jsx)(Rm,{...e})}function US({...e}){return(0,G.jsx)(Jm,{"data-slot":`menubar-sub`,...e})}var WS=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Lm,{ref:n,className:q(`flex h-10 items-center space-x-1 rounded-md border bg-background p-1`,e),...t}));WS.displayName=Lm.displayName;var GS=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(zm,{ref:n,className:q(`flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`,e),...t}));GS.displayName=zm.displayName;var KS=W.forwardRef(({className:e,inset:t,children:n,...r},i)=>(0,G.jsxs)(Ym,{ref:i,className:q(`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`,t&&`pl-8`,e),...r,children:[n,(0,G.jsx)(Xe,{className:`ml-auto h-4 w-4`})]}));KS.displayName=Ym.displayName;var qS=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Xm,{ref:n,className:q(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 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 origin-(--radix-menubar-content-transform-origin)`,e),...t}));qS.displayName=Xm.displayName;var JS=W.forwardRef(({className:e,align:t=`start`,alignOffset:n=-4,sideOffset:r=8,...i},a)=>(0,G.jsx)(Bm,{children:(0,G.jsx)(Vm,{ref:a,align:t,alignOffset:n,sideOffset:r,className:q(`z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in 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 origin-(--radix-menubar-content-transform-origin)`,e),...i})}));JS.displayName=Vm.displayName;var YS=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(Um,{ref:r,className:q(`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,t&&`pl-8`,e),...n}));YS.displayName=Um.displayName;var XS=W.forwardRef(({className:e,children:t,checked:n,...r},i)=>(0,G.jsxs)(Wm,{ref:i,className:q(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),checked:n,...r,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(Km,{children:(0,G.jsx)(Ct,{className:`h-4 w-4`})})}),t]}));XS.displayName=Wm.displayName;var ZS=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Gm,{ref:r,className:q(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(Km,{children:(0,G.jsx)(Jt,{className:`h-2 w-2 fill-current`})})}),t]}));ZS.displayName=Gm.displayName;var QS=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(Hm,{ref:r,className:q(`px-2 py-1.5 text-sm font-semibold`,t&&`pl-8`,e),...n}));QS.displayName=Hm.displayName;var $S=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(qm,{ref:n,className:q(`-mx-1 my-1 h-px bg-muted`,e),...t}));$S.displayName=qm.displayName;var eC=({className:e,...t})=>(0,G.jsx)(`span`,{className:q(`ml-auto text-xs tracking-widest text-muted-foreground`,e),...t});eC.displayname=`MenubarShortcut`;var tC=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Yh,{ref:r,className:q(`relative z-10 flex max-w-max flex-1 items-center justify-center`,e),...n,children:[t,(0,G.jsx)(cC,{})]}));tC.displayName=Yh.displayName;var nC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Xh,{ref:n,className:q(`group flex flex-1 list-none items-center justify-center space-x-1`,e),...t}));nC.displayName=Xh.displayName;var rC=Zh,iC=M(`group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent`),aC=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Qh,{ref:r,className:q(iC(),`group`,e),...n,children:[t,` `,(0,G.jsx)(nt,{className:`relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180`,"aria-hidden":`true`})]}));aC.displayName=Qh.displayName;var oC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(tg,{ref:n,className:q(`left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto `,e),...t}));oC.displayName=tg.displayName;var sC=$h,cC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{className:q(`absolute left-0 top-full flex justify-center`),children:(0,G.jsx)(ng,{className:q(`origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]`,e),ref:n,...t})}));cC.displayName=ng.displayName;var lC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(eg,{ref:n,className:q(`top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in`,e),...t,children:(0,G.jsx)(`div`,{className:`relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md`})}));lC.displayName=eg.displayName;var uC=({className:e,...t})=>(0,G.jsx)(`nav`,{role:`navigation`,"aria-label":`pagination`,className:q(`mx-auto flex w-full justify-center`,e),...t});uC.displayName=`Pagination`;var dC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`ul`,{ref:n,className:q(`flex flex-row items-center gap-1`,e),...t}));dC.displayName=`PaginationContent`;var fC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`li`,{ref:n,className:q(``,e),...t}));fC.displayName=`PaginationItem`;var pC=({className:e,isActive:t,size:n=`icon`,...r})=>(0,G.jsx)(`a`,{"aria-current":t?`page`:void 0,className:q(Cb({variant:t?`outline`:`ghost`,size:n}),e),...r});pC.displayName=`PaginationLink`;var mC=({className:e,...t})=>(0,G.jsxs)(pC,{"aria-label":`Go to previous page`,size:`default`,className:q(`gap-1 pl-2.5`,e),...t,children:[(0,G.jsx)(Tt,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:`Previous`})]});mC.displayName=`PaginationPrevious`;var hC=({className:e,...t})=>(0,G.jsxs)(pC,{"aria-label":`Go to next page`,size:`default`,className:q(`gap-1 pr-2.5`,e),...t,children:[(0,G.jsx)(`span`,{children:`Next`}),(0,G.jsx)(Xe,{className:`h-4 w-4`})]});hC.displayName=`PaginationNext`;var gC=({className:e,...t})=>(0,G.jsxs)(`span`,{"aria-hidden":!0,className:q(`flex h-9 w-9 items-center justify-center`,e),...t,children:[(0,G.jsx)($t,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`More pages`})]});gC.displayName=`PaginationEllipsis`;var _C=kg,vC=Ag,yC=W.forwardRef(({className:e,align:t=`center`,sideOffset:n=4,...r},i)=>(0,G.jsx)(jg,{children:(0,G.jsx)(Mg,{ref:i,align:t,sideOffset:n,className:q(`z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-(--radix-popover-content-transform-origin)`,e),...r})}));yC.displayName=Mg.displayName;var bC=W.forwardRef(({className:e,value:t,...n},r)=>(0,G.jsx)(Yg,{ref:r,className:q(`relative h-4 w-full overflow-hidden rounded-full bg-secondary`,e),...n,children:(0,G.jsx)(Xg,{className:`h-full w-full flex-1 bg-primary transition-all`,style:{transform:`translateX(-${100-(t||0)}%)`}})}));bC.displayName=Yg.displayName;var xC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(x_,{className:q(`grid gap-2`,e),...t,ref:n}));xC.displayName=x_.displayName;var SC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(S_,{ref:n,className:q(`aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,e),...t,children:(0,G.jsx)(C_,{className:`flex items-center justify-center`,children:(0,G.jsx)(Jt,{className:`h-2.5 w-2.5 fill-current text-current`})})}));SC.displayName=S_.displayName;var CC=({className:e,...t})=>(0,G.jsx)(d,{className:q(`flex h-full w-full data-[panel-group-direction=vertical]:flex-col`,e),...t}),wC=l,TC=({withHandle:e,className:t,...n})=>(0,G.jsx)(ne,{className:q(`relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90`,t),...n,children:e&&(0,G.jsx)(`div`,{className:`z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border`,children:(0,G.jsx)(Dt,{className:`h-2.5 w-2.5`})})}),EC=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Ji,{ref:r,className:q(`relative overflow-hidden`,e),...n,children:[(0,G.jsx)(Yi,{className:`h-full w-full rounded-[inherit]`,children:t}),(0,G.jsx)(DC,{}),(0,G.jsx)(Xi,{})]}));EC.displayName=Ji.displayName;var DC=W.forwardRef(({className:e,orientation:t=`vertical`,...n},r)=>(0,G.jsx)(Si,{ref:r,orientation:t,className:q(`flex touch-none select-none transition-colors`,t===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,t===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,e),...n,children:(0,G.jsx)(Ni,{className:`relative flex-1 rounded-full bg-border`})}));DC.displayName=Si.displayName;var OC=Lv,kC=zv,AC=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Rv,{ref:r,className:q(`flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1`,e),...n,children:[t,(0,G.jsx)(Bv,{asChild:!0,children:(0,G.jsx)(nt,{className:`h-4 w-4 opacity-50`})})]}));AC.displayName=Rv.displayName;var jC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Jv,{ref:n,className:q(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,G.jsx)(wn,{className:`h-4 w-4`})}));jC.displayName=Jv.displayName;var MC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Yv,{ref:n,className:q(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,G.jsx)(nt,{className:`h-4 w-4`})}));MC.displayName=Yv.displayName;var NC=W.forwardRef(({className:e,children:t,position:n=`popper`,...r},i)=>(0,G.jsx)(Vv,{children:(0,G.jsxs)(Hv,{ref:i,className:q(`relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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 origin-(--radix-select-content-transform-origin)`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,...r,children:[(0,G.jsx)(jC,{}),(0,G.jsx)(Uv,{className:q(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]`),children:t}),(0,G.jsx)(MC,{})]})}));NC.displayName=Hv.displayName;var PC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Wv,{ref:n,className:q(`py-1.5 pl-8 pr-2 text-sm font-semibold`,e),...t}));PC.displayName=Wv.displayName;var FC=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Gv,{ref:r,className:q(`relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(qv,{children:(0,G.jsx)(Ct,{className:`h-4 w-4`})})}),(0,G.jsx)(Kv,{children:t})]}));FC.displayName=Gv.displayName;var IC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Xv,{ref:n,className:q(`-mx-1 my-1 h-px bg-muted`,e),...t}));IC.displayName=Xv.displayName;var LC=W.forwardRef(({className:e,orientation:t=`horizontal`,decorative:n=!0,...r},i)=>(0,G.jsx)(Nn,{ref:i,decorative:n,orientation:t,className:q(`shrink-0 bg-border`,t===`horizontal`?`h-[1px] w-full`:`h-full w-[1px]`,e),...r}));LC.displayName=Nn.displayName;var RC=ze,zC=me,BC=Ae,VC=le,HC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(be,{className:q(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,e),...t,ref:n}));HC.displayName=be.displayName;var UC=M(`fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500`,{variants:{side:{top:`inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top`,bottom:`inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom`,left:`inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm`,right:`inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm`}},defaultVariants:{side:`right`}}),WC=W.forwardRef(({side:e=`right`,className:t,children:n,hideOverlay:r,...i},a)=>(0,G.jsxs)(VC,{children:[!r&&(0,G.jsx)(HC,{}),(0,G.jsxs)(Ee,{ref:a,className:q(UC({side:e}),t),...i,children:[n,(0,G.jsxs)(Ae,{className:`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary`,children:[(0,G.jsx)(At,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}));WC.displayName=Ee.displayName;var GC=({className:e,...t})=>(0,G.jsx)(`div`,{className:q(`flex flex-col space-y-2 text-center sm:text-left`,e),...t});GC.displayName=`SheetHeader`;var KC=({className:e,...t})=>(0,G.jsx)(`div`,{className:q(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,e),...t});KC.displayName=`SheetFooter`;var qC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Ge,{ref:n,className:q(`text-lg font-semibold text-foreground`,e),...t}));qC.displayName=Ge.displayName;var JC=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(xe,{ref:n,className:q(`text-sm text-muted-foreground`,e),...t}));JC.displayName=xe.displayName;var YC=768;function XC(){let[e,t]=W.useState(void 0);return W.useEffect(()=>{let e=window.matchMedia(`(max-width: ${YC-1}px)`),n=()=>{t(window.innerWidth<YC)};return e.addEventListener(`change`,n),t(window.innerWidth<YC),()=>e.removeEventListener(`change`,n)},[]),!!e}function ZC({className:e,...t}){return(0,G.jsx)(`div`,{className:q(`animate-pulse rounded-md bg-muted`,e),...t})}var QC=ii,$C=ai,ew=oi,tw=W.forwardRef(({className:e,sideOffset:t=4,...n},r)=>(0,G.jsx)(si,{ref:r,sideOffset:t,className:q(`z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-(--radix-tooltip-content-transform-origin)`,e),...n}));tw.displayName=si.displayName;var nw=`sidebar_state`,rw=3600*24*7,iw=`16rem`,aw=`18rem`,ow=`3rem`,sw=`b`,cw=W.createContext(null);function lw(){let e=W.useContext(cw);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}var uw=W.forwardRef(({defaultOpen:e=!0,open:t,onOpenChange:n,className:r,style:i,children:a,...o},s)=>{let c=XC(),[l,u]=W.useState(!1),[d,f]=W.useState(e),p=t??d,m=W.useCallback(e=>{let t=typeof e==`function`?e(p):e;n?n(t):f(t),document.cookie=`${nw}=${t}; path=/; max-age=${rw}`},[n,p]),h=W.useCallback(()=>c?u(e=>!e):m(e=>!e),[c,m,u]);W.useEffect(()=>{let e=e=>{e.key===sw&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),h())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[h]);let g=p?`expanded`:`collapsed`,_=W.useMemo(()=>({state:g,open:p,setOpen:m,isMobile:c,openMobile:l,setOpenMobile:u,toggleSidebar:h}),[g,p,m,c,l,u,h]);return(0,G.jsx)(cw.Provider,{value:_,children:(0,G.jsx)(QC,{delayDuration:0,children:(0,G.jsx)(`div`,{style:{"--sidebar-width":iw,"--sidebar-width-icon":ow,...i},className:q(`group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar`,r),ref:s,...o,children:a})})})});uw.displayName=`SidebarProvider`;var dw=W.forwardRef(({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,...a},o)=>{let{isMobile:s,state:c,openMobile:l,setOpenMobile:u}=lw();return n===`none`?(0,G.jsx)(`div`,{className:q(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,r),ref:o,...a,children:i}):s?(0,G.jsx)(RC,{open:l,onOpenChange:u,...a,children:(0,G.jsxs)(WC,{"data-sidebar":`sidebar`,"data-mobile":`true`,className:`w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden`,style:{"--sidebar-width":aw},side:e,children:[(0,G.jsxs)(GC,{className:`sr-only`,children:[(0,G.jsx)(qC,{children:`Sidebar`}),(0,G.jsx)(JC,{children:`Displays the mobile sidebar.`})]}),(0,G.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:i})]})}):(0,G.jsxs)(`div`,{ref:o,className:`group peer hidden text-sidebar-foreground md:block`,"data-state":c,"data-collapsible":n,"data-variant":t,"data-side":e,children:[(0,G.jsx)(`div`,{className:q(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,t===`floating`||t===`inset`?`group-data-[state=collapsed]:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_1rem)]`:`group-data-[state=collapsed]:group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),(0,G.jsx)(`div`,{className:q(`fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,e===`left`?`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`:`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,t===`floating`||t===`inset`?`p-2 group-data-[state=collapsed]:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_1rem_+_2px)]`:`group-data-[state=collapsed]:group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,r),...a,children:(0,G.jsx)(`div`,{"data-sidebar":`sidebar`,className:`flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow`,children:i})})]})});dw.displayName=`Sidebar`;var fw=W.forwardRef(({className:e,onClick:t,...n},r)=>{let{toggleSidebar:i}=lw();return(0,G.jsxs)(J,{ref:r,"data-sidebar":`trigger`,variant:`ghost`,size:`icon`,className:q(`h-7 w-7`,e),onClick:e=>{t?.(e),i()},...n,children:[(0,G.jsx)(Ht,{}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})});fw.displayName=`SidebarTrigger`;var pw=W.forwardRef(({className:e,...t},n)=>{let{toggleSidebar:r}=lw();return(0,G.jsx)(`button`,{ref:n,"data-sidebar":`rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:r,title:`Toggle Sidebar`,className:q(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex`,`[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,e),...t})});pw.displayName=`SidebarRail`;var mw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`main`,{ref:n,className:q(`relative flex w-full flex-1 flex-col bg-background`,`md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow`,e),...t}));mw.displayName=`SidebarInset`;var hw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(VS,{ref:n,"data-sidebar":`input`,className:q(`h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring`,e),...t}));hw.displayName=`SidebarInput`;var gw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,"data-sidebar":`header`,className:q(`flex flex-col gap-2 p-2`,e),...t}));gw.displayName=`SidebarHeader`;var _w=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,"data-sidebar":`footer`,className:q(`flex flex-col gap-2 p-2`,e),...t}));_w.displayName=`SidebarFooter`;var vw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(LC,{ref:n,"data-sidebar":`separator`,className:q(`mx-2 w-auto bg-sidebar-border`,e),...t}));vw.displayName=`SidebarSeparator`;var yw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,"data-sidebar":`content`,className:q(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[state=collapsed]:group-data-[collapsible=icon]:overflow-hidden`,e),...t}));yw.displayName=`SidebarContent`;var bw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,"data-sidebar":`group`,className:q(`relative flex w-full min-w-0 flex-col p-2`,e),...t}));bw.displayName=`SidebarGroup`;var xw=W.forwardRef(({className:e,asChild:t=!1,...n},r)=>(0,G.jsx)(t?x:`div`,{ref:r,"data-sidebar":`group-label`,className:q(`flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`group-data-[state=collapsed]:group-data-[collapsible=icon]:-mt-8 group-data-[state=collapsed]:group-data-[collapsible=icon]:opacity-0`,e),...n}));xw.displayName=`SidebarGroupLabel`;var Sw=W.forwardRef(({className:e,asChild:t=!1,...n},r)=>(0,G.jsx)(t?x:`button`,{ref:r,"data-sidebar":`group-action`,className:q(`absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`after:absolute after:-inset-2 after:md:hidden`,`group-data-[state=collapsed]:group-data-[collapsible=icon]:hidden`,e),...n}));Sw.displayName=`SidebarGroupAction`;var Cw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,"data-sidebar":`group-content`,className:q(`w-full text-sm`,e),...t}));Cw.displayName=`SidebarGroupContent`;var ww=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`ul`,{ref:n,"data-sidebar":`menu`,className:q(`flex w-full min-w-0 flex-col gap-1`,e),...t}));ww.displayName=`SidebarMenu`;var Tw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`li`,{ref:n,"data-sidebar":`menu-item`,className:q(`group/menu-item relative`,e),...t}));Tw.displayName=`SidebarMenuItem`;var Ew=M(`peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground sidebar-menu-button-icon-mode [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm sidebar-menu-button-icon-mode-lg`}},defaultVariants:{variant:`default`,size:`default`}}),Dw=W.forwardRef(({asChild:e=!1,isActive:t=!1,variant:n=`default`,size:r=`default`,tooltip:i,className:a,...o},s)=>{let c=e?x:`button`,{isMobile:l,state:u}=lw(),d=(0,G.jsx)(c,{ref:s,"data-sidebar":`menu-button`,"data-size":r,"data-active":t,className:q(Ew({variant:n,size:r}),a),...o});return i?(typeof i==`string`&&(i={children:i}),(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:d}),(0,G.jsx)(tw,{side:`right`,align:`center`,hidden:u!==`collapsed`||l,...i})]})):d});Dw.displayName=`SidebarMenuButton`;var Ow=W.forwardRef(({className:e,asChild:t=!1,showOnHover:n=!1,...r},i)=>(0,G.jsx)(t?x:`button`,{ref:i,"data-sidebar":`menu-action`,className:q(`absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0`,`after:absolute after:-inset-2 after:md:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[state=collapsed]:group-data-[collapsible=icon]:hidden`,n&&`group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0`,e),...r}));Ow.displayName=`SidebarMenuAction`;var kw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,"data-sidebar":`menu-badge`,className:q(`pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground`,`peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[state=collapsed]:group-data-[collapsible=icon]:hidden`,e),...t}));kw.displayName=`SidebarMenuBadge`;var Aw=W.forwardRef(({className:e,showIcon:t=!1,...n},r)=>{let i=W.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return(0,G.jsxs)(`div`,{ref:r,"data-sidebar":`menu-skeleton`,className:q(`flex h-8 items-center gap-2 rounded-md px-2`,e),...n,children:[t&&(0,G.jsx)(ZC,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),(0,G.jsx)(ZC,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":i}})]})});Aw.displayName=`SidebarMenuSkeleton`;var jw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`ul`,{ref:n,"data-sidebar":`menu-sub`,className:q(`mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5`,`group-data-[state=collapsed]:group-data-[collapsible=icon]:hidden`,e),...t}));jw.displayName=`SidebarMenuSub`;var Mw=W.forwardRef(({...e},t)=>(0,G.jsx)(`li`,{ref:t,...e}));Mw.displayName=`SidebarMenuSubItem`;var Nw=W.forwardRef(({asChild:e=!1,size:t=`md`,isActive:n,className:r,...i},a)=>(0,G.jsx)(e?x:`a`,{ref:a,"data-sidebar":`menu-sub-button`,"data-size":t,"data-active":n,className:q(`flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground`,`data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground`,t===`sm`&&`text-xs`,t===`md`&&`text-sm`,`group-data-[state=collapsed]:group-data-[collapsible=icon]:hidden`,r),...i}));Nw.displayName=`SidebarMenuSubButton`;var Pw=W.forwardRef(({className:e,...t},n)=>(0,G.jsxs)(Ny,{ref:n,className:q(`relative flex w-full touch-none select-none items-center`,e),...t,children:[(0,G.jsx)(Py,{className:`relative h-2 w-full grow overflow-hidden rounded-full bg-secondary`,children:(0,G.jsx)(Fy,{className:`absolute h-full bg-primary`})}),(0,G.jsx)(Iy,{className:`block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50`,"aria-label":t[`aria-label`]})]}));Pw.displayName=Ny.displayName;var Fw=({...e})=>{let{theme:t=`system`}=Be();return(0,G.jsx)(A,{theme:t,className:`toaster group`,icons:{success:(0,G.jsx)(gt,{className:`h-4 w-4`}),info:(0,G.jsx)(wt,{className:`h-4 w-4`}),warning:(0,G.jsx)(Bt,{className:`h-4 w-4`}),error:(0,G.jsx)(xn,{className:`h-4 w-4`}),loading:(0,G.jsx)(dt,{className:`h-4 w-4 animate-spin`})},toastOptions:{classNames:{toast:`group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg`,description:`group-[.toast]:text-muted-foreground`,actionButton:`group-[.toast]:bg-primary group-[.toast]:text-primary-foreground`,cancelButton:`group-[.toast]:bg-muted group-[.toast]:text-muted-foreground`}},...e})},Iw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Jy,{className:q(`peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,e),...t,ref:n,children:(0,G.jsx)(Yy,{className:q(`pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0`)})}));Iw.displayName=Jy.displayName;var Lw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{className:`relative w-full overflow-auto`,children:(0,G.jsx)(`table`,{ref:n,className:q(`w-full caption-bottom text-sm`,e),...t})}));Lw.displayName=`Table`;var Rw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`thead`,{ref:n,className:q(`[&_tr]:border-b`,e),...t}));Rw.displayName=`TableHeader`;var zw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`tbody`,{ref:n,className:q(`[&_tr:last-child]:border-0`,e),...t}));zw.displayName=`TableBody`;var Bw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`tfoot`,{ref:n,className:q(`border-t bg-muted/50 font-medium [&>tr]:last:border-b-0`,e),...t}));Bw.displayName=`TableFooter`;var Vw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`tr`,{ref:n,className:q(`border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted`,e),...t}));Vw.displayName=`TableRow`;var Hw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`th`,{ref:n,className:q(`h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0`,e),...t}));Hw.displayName=`TableHead`;var Uw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`td`,{ref:n,className:q(`p-4 align-middle [&:has([role=checkbox])]:pr-0`,e),...t}));Uw.displayName=`TableCell`;var Ww=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`caption`,{ref:n,className:q(`mt-4 text-sm text-muted-foreground`,e),...t}));Ww.displayName=`TableCaption`;var Gw=Nc,Kw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Pc,{ref:n,className:q(`inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground`,e),...t}));Kw.displayName=Pc.displayName;var qw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Fc,{ref:n,className:q(`inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm`,e),...t}));qw.displayName=Fc.displayName;var Jw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Ic,{ref:n,className:q(`mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,e),...t}));Jw.displayName=Ic.displayName;var Yw=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`textarea`,{className:q(`flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,e),ref:n,...t}));Yw.displayName=`Textarea`;var Xw=M(`inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent hover:bg-accent hover:text-accent-foreground`},size:{default:`h-10 px-3 min-w-10`,sm:`h-9 px-2.5 min-w-9`,lg:`h-11 px-5 min-w-11`}},defaultVariants:{variant:`default`,size:`default`}}),Zw=W.forwardRef(({className:e,variant:t,size:n,...r},i)=>(0,G.jsx)(Qy,{ref:i,className:q(Xw({variant:t,size:n,className:e})),...r}));Zw.displayName=Qy.displayName;var Qw=W.createContext({size:`default`,variant:`default`}),$w=W.forwardRef(({className:e,variant:t,size:n,children:r,...i},a)=>(0,G.jsx)(mb,{ref:a,className:q(`flex items-center justify-center gap-1`,e),...i,children:(0,G.jsx)(Qw.Provider,{value:{variant:t,size:n},children:r})}));$w.displayName=mb.displayName;var eT=W.forwardRef(({className:e,children:t,variant:n,size:r,...i},a)=>{let o=W.useContext(Qw);return(0,G.jsx)(hb,{ref:a,className:q(Xw({variant:o.variant||n,size:o.size||r}),e),...i,children:t})});eT.displayName=hb.displayName;var tT=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`h1`,{ref:n,className:q(`scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl`,e),...t}));tT.displayName=`TypographyH1`;var nT=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`h2`,{ref:n,className:q(`scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0`,e),...t}));nT.displayName=`TypographyH2`;var rT=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`h3`,{ref:n,className:q(`scroll-m-20 text-2xl font-semibold tracking-tight`,e),...t}));rT.displayName=`TypographyH3`;var iT=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`h4`,{ref:n,className:q(`scroll-m-20 text-xl font-semibold tracking-tight`,e),...t}));iT.displayName=`TypographyH4`;var aT=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`p`,{ref:n,className:q(`leading-7 [&:not(:first-child)]:mt-6`,e),...t}));aT.displayName=`TypographyP`;var oT=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`blockquote`,{ref:n,className:q(`mt-6 border-l-2 pl-6 italic`,e),...t}));oT.displayName=`TypographyBlockquote`;var sT=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`ul`,{ref:n,className:q(`my-6 ml-6 list-disc [&>li]:mt-2`,e),...t}));sT.displayName=`TypographyList`;var cT=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`code`,{ref:n,className:q(`relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold`,e),...t}));cT.displayName=`TypographyInlineCode`;var lT=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`p`,{ref:n,className:q(`text-xl text-muted-foreground`,e),...t}));lT.displayName=`TypographyLead`;var uT=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:q(`text-lg font-semibold`,e),...t}));uT.displayName=`TypographyLarge`;var dT=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`small`,{ref:n,className:q(`text-sm font-medium leading-none`,e),...t}));dT.displayName=`TypographySmall`;var fT=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`p`,{ref:n,className:q(`text-sm text-muted-foreground`,e),...t}));fT.displayName=`TypographyMuted`;var pT=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n;return(0,G.jsx)(LC,{ref:r,orientation:e.orientation,className:t,...s,"data-obj-id":i,"data-obj-type":a,style:o})});K.register(`separator`,pT,{namespace:`ui`,label:`Separator`,inputs:[{name:`orientation`,type:`enum`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`,label:`Orientation`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{orientation:`horizontal`,className:`my-2 sm:my-4`}}),K.register(`image`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n;return(0,G.jsx)(`img`,{src:e.src,alt:e.alt||``,className:t,...o,"data-obj-id":r,"data-obj-type":i,style:a})},{namespace:`ui`,label:`Image`,icon:`image`,category:`basic`,inputs:[{name:`src`,type:`string`,label:`Source URL`},{name:`alt`,type:`string`,label:`Alt Text`},{name:`className`,type:`string`,label:`Classes`}],defaultProps:{className:`max-w-full h-auto`}});function mT(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}var hT={Home:`House`},gT=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n,c=mT(e.name),l=hT[c]||c,u=un[l];if(!u)return console.warn(`Icon "${e.name}" (lookup: "${c}"${l===c?``:` -> "${l}"`}) not found in lucide-react`),null;let d=e.size?{width:e.size,height:e.size}:void 0;return(0,G.jsx)(u,{ref:r,className:q(e.color,e.className,t),style:{...d,...o},...s,"data-obj-id":i,"data-obj-type":a})});gT.displayName=`IconRenderer`,K.register(`icon`,gT,{namespace:`ui`,label:`Icon`,icon:`smile`,category:`basic`,inputs:[{name:`name`,type:`string`,label:`Icon Name`,defaultValue:`smile`},{name:`size`,type:`number`,label:`Size (px)`},{name:`color`,type:`string`,label:`Color Class`},{name:`className`,type:`string`,label:`CSS Class`}]}),K.register(`html`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n;return(0,G.jsx)(`div`,{className:q(`prose prose-sm max-w-none dark:prose-invert`,t),dangerouslySetInnerHTML:{__html:e.html},...o,"data-obj-id":r,"data-obj-type":i,style:a})},{namespace:`ui`,label:`HTML Content`,inputs:[{name:`html`,type:`string`,label:`HTML`,description:`Raw HTML content`}]}),K.register(`button-group`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(`div`,{className:q(`flex flex-wrap sm:inline-flex rounded-md shadow-sm`,e.className),role:`group`,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.buttons?.map((t,n)=>(0,G.jsx)(J,{variant:t.variant||e.variant,size:t.size||e.size,className:q(`rounded-none`,n===0&&`rounded-l-md`,n===(e.buttons?.length||0)-1&&`rounded-r-md`,n>0&&`-ml-px`,t.className),children:t.label},n))})},{namespace:`ui`,label:`Button Group`,inputs:[{name:`variant`,type:`enum`,enum:[`default`,`destructive`,`outline`,`secondary`,`ghost`,`link`],defaultValue:`default`,label:`Variant`},{name:`size`,type:`enum`,enum:[`default`,`sm`,`lg`,`icon`],defaultValue:`default`,label:`Size`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{variant:`default`,size:`default`,buttons:[{label:`Left`},{label:`Middle`},{label:`Right`}]}}),K.register(`pagination`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,onPageChange:a,...o}=t,s=e.currentPage||e.page||1,c=e.totalPages||1,l=(e,t)=>{t.preventDefault(),e!==s&&(e<1||e>c||a&&a(e))},u=()=>c<=7?Array.from({length:c},(e,t)=>t+1):s<=3?[1,2,3,4,5,-1,c]:s>=c-2?[1,-1,c-4,c-3,c-2,c-1,c]:[1,-1,s-1,s,s+1,-1,c];return(0,G.jsx)(uC,{className:e.className,...o,"data-obj-id":n,"data-obj-type":r,style:i,children:(0,G.jsxs)(dC,{children:[(0,G.jsx)(fC,{children:(0,G.jsx)(mC,{href:`#`,onClick:e=>l(s-1,e),className:s<=1?`pointer-events-none opacity-50`:`cursor-pointer`,"aria-disabled":s<=1})}),u().map((e,t)=>(0,G.jsx)(fC,{children:e===-1?(0,G.jsx)(gC,{}):(0,G.jsx)(pC,{href:`#`,isActive:e===s,onClick:t=>l(e,t),className:`cursor-pointer`,children:e})},t)),(0,G.jsx)(fC,{children:(0,G.jsx)(hC,{href:`#`,onClick:e=>l(s+1,e),className:s>=c?`pointer-events-none opacity-50`:`cursor-pointer`,"aria-disabled":s>=c})})]})})},{namespace:`ui`,label:`Pagination`,inputs:[{name:`currentPage`,type:`number`,label:`Current Page`,defaultValue:1},{name:`totalPages`,type:`number`,label:`Total Pages`,defaultValue:10},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{currentPage:1,totalPages:10}}),K.register(`navigation-menu`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(tC,{className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:(0,G.jsx)(nC,{children:e.items?.map((e,t)=>(0,G.jsx)(rC,{children:e.children?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(aC,{children:e.label}),(0,G.jsx)(oC,{children:(0,G.jsx)(`ul`,{className:`grid w-full gap-3 p-4 sm:w-[400px] md:w-[500px] md:grid-cols-2 lg:w-[600px]`,children:e.children.map((e,t)=>(0,G.jsx)(`li`,{children:(0,G.jsx)(sC,{asChild:!0,children:(0,G.jsxs)(`a`,{className:q(`block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground`),href:e.href,children:[(0,G.jsx)(`div`,{className:`text-sm font-medium leading-none`,children:e.label}),e.description&&(0,G.jsx)(`p`,{className:`line-clamp-2 text-sm leading-snug text-muted-foreground`,children:e.description})]})})},t))})})]}):(0,G.jsx)(sC,{href:e.href,children:e.label})},t))})})},{namespace:`ui`,label:`Navigation Menu`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{items:[{label:`Home`,href:`/`},{label:`About`,href:`/about`}]}});function _T({label:e,collapsible:t,collapsed:n,onToggle:r}){return e?(0,G.jsx)(`div`,{className:q(`col-span-full pt-4 pb-1 border-b border-border`,t&&`cursor-pointer select-none`),onClick:t?r:void 0,role:t?`button`:void 0,"aria-expanded":t?!n:void 0,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[t&&(0,G.jsx)(n?Xe:nt,{className:`h-3.5 w-3.5 text-muted-foreground`}),(0,G.jsx)(`span`,{className:`text-sm font-semibold text-foreground`,children:e})]})}):null}var vT=gu({"common.selectOption":`Select an option`},`common.selectOption`);function yT({value:e,onChange:t,placeholder:n,className:r,label:i,...a}){let[o,s]=W.useState(!1),[c,l]=W.useState(e??``),u=e=>t&&t(e),d=()=>{l(e??``),s(!0)},f=()=>{u(c),s(!1)};return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Yw,{placeholder:n,className:q(`pr-10`,r),value:e??``,onChange:e=>u(e.target.value),...a}),(0,G.jsx)(`button`,{type:`button`,onClick:d,className:`absolute top-1.5 right-1.5 inline-flex items-center justify-center size-7 rounded-md bg-background/80 text-muted-foreground hover:text-foreground hover:bg-background border shadow-sm`,"aria-label":`Edit ${i??`text`} fullscreen`,"data-testid":`form-textarea-fullscreen-toggle`,children:(0,G.jsx)(Ze,{className:`size-3.5`})}),(0,G.jsx)(Tx,{open:o,onOpenChange:s,children:(0,G.jsxs)(kx,{className:`sm:max-w-3xl h-[100dvh] sm:h-[80vh] max-h-[100dvh] sm:max-h-[80vh] flex flex-col p-0 gap-0`,"data-testid":`form-textarea-fullscreen-dialog`,children:[(0,G.jsx)(Ax,{className:`p-4 border-b`,children:(0,G.jsx)(Mx,{className:`text-base`,children:i??`Edit text`})}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 p-4`,children:(0,G.jsx)(Yw,{autoFocus:!0,value:c,onChange:e=>l(e.target.value),placeholder:n,className:`h-full min-h-full resize-none text-base`,"data-testid":`form-textarea-fullscreen-input`})}),(0,G.jsxs)(jx,{className:`p-3 border-t flex-row justify-end gap-2`,children:[(0,G.jsxs)(J,{type:`button`,variant:`ghost`,onClick:()=>s(!1),children:[(0,G.jsx)(At,{className:`size-4 mr-1`}),` Cancel`]}),(0,G.jsxs)(J,{type:`button`,onClick:f,"data-testid":`form-textarea-fullscreen-save`,children:[(0,G.jsx)(Ct,{className:`size-4 mr-1`}),` Done`]})]})]})})]})}K.register(`form`,({schema:e,className:t,onAction:n,...r})=>{let{t:i}=vT(),{defaultValues:a={},fields:o=[],submitLabel:s=`Submit`,cancelLabel:c=`Cancel`,showCancel:l=!1,showSubmit:u=!0,layout:d=`vertical`,columns:f=1,onSubmit:p,onChange:m,onCancel:h,resetOnSubmit:g=!1,validationMode:_=`onSubmit`,disabled:v=!1}=e,y=D({defaultValues:a,mode:_}),[b,x]=W.useState(!1),[S,C]=W.useState(null),w=W.useContext(Al)?.dataSource??null;W.useEffect(()=>{y.reset(a)},[a]),W.useEffect(()=>{if(n){let e=y.watch(e=>{n({type:`form_change`,data:e,formData:e})});return()=>e.unsubscribe()}},[y,n]);let T=y.handleSubmit(async e=>{x(!0),C(null);let t=e;if(e&&(e.nativeEvent||typeof e.preventDefault==`function`||typeof e.stopPropagation==`function`||e.target||e.bubbles))t=y.getValues();else if(!t||Object.keys(t).length===0){let e=y.getValues();e&&Object.keys(e).length>0&&(t=e)}try{if(n){let e=await n({type:`form_submit`,data:t,formData:t});if(e?.error){C(e.error);return}}p&&typeof p==`function`&&await p(t),g&&y.reset()}catch(e){C(e instanceof Error?e.message:typeof e==`string`?e:`An error occurred during submission`)}finally{x(!1)}}),E=()=>{y.reset(),h&&typeof h==`function`&&h(),n&&n({type:`form_cancel`,data:y.getValues()})},ee=f>1?q(`grid gap-4`,f===1?``:f===2?`md:grid-cols-2`:f===3?`md:grid-cols-2 lg:grid-cols-3`:`md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4`):`space-y-4`,{"data-obj-id":O,"data-obj-type":k,style:A,onSubmit:te,onChange:ne,submitLabel:re,cancelLabel:ie,showSubmit:j,showCancel:M,resetOnSubmit:ae,defaultValues:N,inputType:oe,...P}=r;return(0,G.jsx)(wS,{...y,children:(0,G.jsxs)(`form`,{onSubmit:T,className:t,...P,"data-obj-id":O,"data-obj-type":k,style:A,children:[S&&(0,G.jsxs)(Ib,{variant:`destructive`,className:`mb-4`,children:[(0,G.jsx)($e,{className:`h-4 w-4`}),(0,G.jsx)(Rb,{children:S})]}),e.children?(0,G.jsx)(`div`,{className:e.fieldContainerClass||`space-y-4`,children:gb(e.children)}):(0,G.jsx)(`div`,{className:e.fieldContainerClass||ee,children:o.map(t=>{let{name:n,label:r,description:a,type:o=`input`,required:s=!1,disabled:c=!1,validation:l={},condition:u,colSpan:d,hidden:f,widget:p,visibleOn:m,readonly:h,...g}=t;if(f)return null;if(u){let e=u.field,t=y.watch(e),n=t!=null;if(u.equals!==void 0&&t!==u.equals||u.notEquals!==void 0&&t===u.notEquals||u.in&&(!n||!u.in.includes(t)))return null}if(o===`section-divider`){let e=g;return(0,G.jsx)(_T,{label:r,collapsible:e.collapsible,collapsed:e.collapsed,onToggle:e.onToggle},n)}let _={...l};s&&(_.required=typeof l.required==`string`?l.required:`${r||n} is required`);let x=t.id??n,S=p||o,C=e.fieldContainerClass||ee,T=e=>{let t=Array.from(C.matchAll(/(@)?(sm|md|lg|xl|2xl|3xl|4xl|5xl|6xl|7xl):grid-cols-(\d+)/g)).map(e=>({at:e[1]||``,bp:e[2],cols:Number(e[3])}));if(!t.length)return e===2?`col-span-2`:e===3?`col-span-3`:`col-span-4`;let n=t.find(t=>t.cols>=e)||t[t.length-1];return{"@sm:2":`@sm:col-span-2`,"@md:2":`@md:col-span-2`,"@lg:2":`@lg:col-span-2`,"@xl:2":`@xl:col-span-2`,"@2xl:2":`@2xl:col-span-2`,"@sm:3":`@sm:col-span-3`,"@md:3":`@md:col-span-3`,"@lg:3":`@lg:col-span-3`,"@xl:3":`@xl:col-span-3`,"@2xl:3":`@2xl:col-span-3`,"@4xl:3":`@4xl:col-span-3`,"@sm:4":`@sm:col-span-4`,"@md:4":`@md:col-span-4`,"@lg:4":`@lg:col-span-4`,"@xl:4":`@xl:col-span-4`,"@2xl:4":`@2xl:col-span-4`,"@4xl:4":`@4xl:col-span-4`,"sm:2":`sm:col-span-2`,"md:2":`md:col-span-2`,"lg:2":`lg:col-span-2`,"xl:2":`xl:col-span-2`,"sm:3":`sm:col-span-3`,"md:3":`md:col-span-3`,"lg:3":`lg:col-span-3`,"xl:3":`xl:col-span-3`,"sm:4":`sm:col-span-4`,"md:4":`md:col-span-4`,"lg:4":`lg:col-span-4`,"xl:4":`xl:col-span-4`}[`${n.at}${n.bp}:${e}`]||(e===2?`col-span-2`:e===3?`col-span-3`:`col-span-4`)},E=d&&d>1?d===2?T(2):d===3?T(3):d>=4?T(4):``:``;return(0,G.jsx)(ES,{control:y.control,name:n,rules:_,render:({field:e})=>(0,G.jsxs)(kS,{className:E||void 0,children:[r&&(0,G.jsxs)(AS,{className:`text-xs sm:text-sm`,children:[r,s&&(0,G.jsx)(`span`,{className:`text-destructive ml-1`,"aria-label":`required`,children:`*`})]}),(0,G.jsx)(jS,{children:bT(S,{...g,field:t.field||t,...e,inputType:g.inputType,options:g.options,placeholder:g.placeholder??(S===`select`?i(`common.selectOption`):void 0),disabled:v||c||h||b,dataSource:w})}),a&&(0,G.jsx)(MS,{children:a}),(0,G.jsx)(NS,{})]})},x)})}),e.showActions!==!1&&(0,G.jsxs)(`div`,{className:q(`flex flex-col sm:flex-row gap-2 ${d===`horizontal`?`sm:justify-end`:`sm:justify-start`} mt-6`,e.mobileStickyActions&&`sticky bottom-0 z-10 -mx-4 px-4 py-3 bg-background/95 supports-[backdrop-filter]:bg-background/80 backdrop-blur border-t md:static md:mx-0 md:px-0 md:py-0 md:bg-transparent md:border-0 md:backdrop-blur-none`),"data-testid":e.mobileStickyActions?`form-mobile-sticky-actions`:void 0,children:[l&&(0,G.jsx)(J,{type:`button`,variant:`outline`,onClick:E,disabled:b||v,className:`w-full sm:w-auto`,children:c}),u&&(0,G.jsxs)(J,{type:`submit`,disabled:b||v,className:`w-full sm:w-auto`,children:[b&&(0,G.jsx)(dt,{className:`mr-2 h-4 w-4 animate-spin`}),s]})]})]})})},{namespace:`ui`,label:`Form`,inputs:[{name:`fields`,type:`array`,label:`Fields`,description:`Array of field configurations with name, label, type, validation, etc.`},{name:`defaultValues`,type:`object`,label:`Default Values`,description:`Object with default values for form fields`},{name:`submitLabel`,type:`string`,label:`Submit Button Label`,defaultValue:`Submit`},{name:`cancelLabel`,type:`string`,label:`Cancel Button Label`,defaultValue:`Cancel`},{name:`showCancel`,type:`boolean`,label:`Show Cancel Button`,defaultValue:!1},{name:`layout`,type:`enum`,enum:[`vertical`,`horizontal`],label:`Layout`,defaultValue:`vertical`},{name:`columns`,type:`number`,label:`Number of Columns`,defaultValue:1,description:`For multi-column layouts (1-4)`},{name:`validationMode`,type:`enum`,enum:[`onSubmit`,`onBlur`,`onChange`,`onTouched`,`all`],label:`Validation Mode`,defaultValue:`onSubmit`},{name:`resetOnSubmit`,type:`boolean`,label:`Reset After Submit`,defaultValue:!1},{name:`disabled`,type:`boolean`,label:`Disabled`,defaultValue:!1},{name:`className`,type:`string`,label:`CSS Class`},{name:`fieldContainerClass`,type:`string`,label:`Field Container CSS Class`}],defaultProps:{submitLabel:`Submit`,cancelLabel:`Cancel`,showCancel:!1,layout:`vertical`,columns:1,validationMode:`onSubmit`,resetOnSubmit:!1,disabled:!1,fields:[{name:`name`,label:`Name`,type:`input`,required:!0,placeholder:`Enter your name`},{name:`email`,label:`Email`,type:`input`,inputType:`email`,required:!0,placeholder:`Enter your email`}]}});function bT(e,t){let n=K.get(e);if(n)return(0,G.jsx)(n,{schema:t,...t});let{inputType:r,options:i=[],placeholder:a,...o}=t;switch(e){case`input`:if(r===`file`){let{value:e,...t}=o;return(0,G.jsx)(VS,{type:`file`,placeholder:a,className:`min-h-[44px] sm:min-h-0`,...t})}return(0,G.jsx)(VS,{type:r||`text`,placeholder:a,className:`min-h-[44px] sm:min-h-0`,...o,value:o.value??``});case`textarea`:{let{mobile_fullscreen:e,fullscreen:t,label:n,...r}=o;return e||t?(0,G.jsx)(yT,{placeholder:a,label:n,className:`min-h-[44px] sm:min-h-0`,...r,value:r.value??``}):(0,G.jsx)(Yw,{placeholder:a,className:`min-h-[44px] sm:min-h-0`,...r,value:r.value??``})}case`checkbox`:{let{value:e,onChange:t,...n}=o;return(0,G.jsx)(xx,{checked:e,onCheckedChange:t,className:`min-h-[44px] min-w-[44px] sm:min-h-0 sm:min-w-0`,...n})}case`switch`:{let{value:e,onChange:t,...n}=o;return(0,G.jsx)(Iw,{checked:e,onCheckedChange:t,className:`min-h-[44px] min-w-[44px] sm:min-h-0 sm:min-w-0`,...n})}case`select`:{let{value:e,onChange:t,...n}=o;return!i||i.length===0?(0,G.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`No options available`}):(0,G.jsxs)(OC,{value:e,onValueChange:t,...n,children:[(0,G.jsx)(AC,{className:`min-h-[44px] sm:min-h-0`,children:(0,G.jsx)(kC,{placeholder:a||`Select an option`})}),(0,G.jsx)(NC,{children:i.map(e=>(0,G.jsx)(FC,{value:e.value,children:e.label},e.value))})]})}default:return(0,G.jsx)(VS,{type:r||`text`,placeholder:a,...o})}}function xT(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}var ST={Home:`House`},CT=(0,W.forwardRef)(({schema:e,...t},n)=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=t,s=null;if(e.icon){let t=xT(e.icon);s=un[ST[t]||t]}let c=e.loading||t.loading,l=e.disabled||t.disabled||c;return(0,G.jsxs)(J,{ref:n,type:e.buttonType||`button`,variant:e.variant,size:e.size,className:e.className,disabled:l,...o,"data-obj-id":r,"data-obj-type":i,style:a,children:[c&&(0,G.jsx)(dt,{className:`mr-2 h-4 w-4 animate-spin`}),!c&&s&&e.iconPosition!==`right`&&(0,G.jsx)(s,{className:`mr-2 h-4 w-4`}),e.label||gb(e.body||e.children),!c&&s&&e.iconPosition===`right`&&(0,G.jsx)(s,{className:`ml-2 h-4 w-4`})]})});CT.displayName=`ButtonRenderer`,K.register(`button`,CT,{namespace:`ui`,label:`Button`,inputs:[{name:`label`,type:`string`,label:`Label`,defaultValue:`Button`},{name:`variant`,type:`enum`,label:`Variant`,enum:[`default`,`secondary`,`destructive`,`outline`,`ghost`,`link`],defaultValue:`default`},{name:`size`,type:`enum`,label:`Size`,enum:[`default`,`sm`,`lg`,`icon`],defaultValue:`default`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{label:`Button`,variant:`default`,size:`default`}}),K.register(`label`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n;return(0,G.jsx)(CS,{className:t,...o,"data-obj-id":r,"data-obj-type":i,style:a,children:e.text||e.label||e.content})},{namespace:`ui`,label:`Label`,inputs:[{name:`text`,type:`string`,label:`Text`,required:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{text:`Label Text`}});var wT=({schema:e,className:t,onChange:n,value:r,...i})=>{let a=e=>{n&&n(e.target.value)},{"data-obj-id":o,"data-obj-type":s,style:c,...l}=i;return(0,G.jsxs)(`div`,{className:q(`grid w-full items-center gap-1.5`,e.wrapperClass),"data-obj-id":o,"data-obj-type":s,style:c,children:[e.label&&(0,G.jsx)(CS,{htmlFor:e.id,className:q(e.required&&`text-destructive after:content-['*'] after:ml-0.5`),children:e.label}),(0,G.jsx)(VS,{type:e.inputType||`text`,id:e.id,name:e.name,placeholder:e.placeholder,className:t,required:e.required,disabled:e.disabled,readOnly:e.readOnly,value:r??e.value??``,defaultValue:r===void 0?e.defaultValue:void 0,onChange:a,min:e.min,max:e.max,step:e.step,maxLength:e.maxLength,pattern:e.pattern,...l}),e.description&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description}),e.error&&(0,G.jsx)(`p`,{className:`text-sm font-medium text-destructive`,children:e.error})]})};K.register(`input`,wT,{namespace:`ui`,label:`Input Field`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`name`,type:`string`,label:`Field Name`},{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`inputType`,type:`enum`,label:`Type`,enum:[`text`,`email`,`password`,`number`,`tel`,`url`,`date`,`time`,`datetime-local`],defaultValue:`text`},{name:`required`,type:`boolean`,label:`Required`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`description`,type:`string`,label:`Description`}],defaultProps:{inputType:`text`}}),K.register(`email`,e=>(0,G.jsx)(wT,{...e,schema:{...e.schema,inputType:`email`}}),{namespace:`ui`,label:`Email Input`,icon:`mail`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`name`,type:`string`,label:`Field Name`},{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`required`,type:`boolean`,label:`Required`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`description`,type:`string`,label:`Description`}]}),K.register(`password`,e=>(0,G.jsx)(wT,{...e,schema:{...e.schema,inputType:`password`}}),{namespace:`ui`,label:`Password Input`,icon:`lock`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`name`,type:`string`,label:`Field Name`},{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`required`,type:`boolean`,label:`Required`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`description`,type:`string`,label:`Description`}]}),K.register(`textarea`,({schema:e,className:t,onChange:n,value:r,...i})=>{let a=e=>{n&&n(e.target.value)},{"data-obj-id":o,"data-obj-type":s,style:c,...l}=i;return(0,G.jsxs)(`div`,{className:q(`grid w-full gap-1.5`,e.wrapperClass),"data-obj-id":o,"data-obj-type":s,style:c,children:[e.label&&(0,G.jsx)(CS,{htmlFor:e.id,className:q(e.required&&`text-destructive after:content-['*'] after:ml-0.5`),children:e.label}),(0,G.jsx)(Yw,{id:e.id,name:e.name,placeholder:e.placeholder,className:t,disabled:e.disabled,readOnly:e.readOnly,required:e.required,rows:e.rows,value:r??e.value??``,defaultValue:r===void 0?e.defaultValue:void 0,onChange:a,...l})]})},{namespace:`ui`,label:`Textarea`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`rows`,type:`number`,label:`Rows`},{name:`required`,type:`boolean`,label:`Required`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`id`,type:`string`,label:`ID`,required:!0}],defaultProps:{label:`Textarea label`,placeholder:`Enter text here...`,rows:3,id:`textarea-field`}}),K.register(`checkbox`,({schema:e,className:t,onChange:n,value:r,...i})=>{let{"data-obj-id":a,"data-obj-type":o,style:s,...c}=i;return(0,G.jsxs)(`div`,{className:q(`flex items-center space-x-2`,e.wrapperClass),"data-obj-id":a,"data-obj-type":o,style:s,children:[(0,G.jsx)(xx,{id:e.id,className:t,checked:r??e.checked??!1,defaultChecked:r===void 0?e.defaultChecked:void 0,onCheckedChange:e=>{n&&n(e)},disabled:e.disabled,required:e.required,name:e.name,...c}),(0,G.jsx)(CS,{htmlFor:e.id,className:q(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,e.required&&`text-destructive after:content-['*'] after:ml-0.5`),children:e.label})]})},{namespace:`ui`,label:`Checkbox`,inputs:[{name:`label`,type:`string`,label:`Label`,required:!0},{name:`id`,type:`string`,label:`ID`,required:!0},{name:`checked`,type:`boolean`,label:`Checked`},{name:`required`,type:`boolean`,label:`Required`},{name:`disabled`,type:`boolean`,label:`Disabled`}],defaultProps:{label:`Checkbox label`,id:`checkbox-field`}}),K.register(`switch`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n;return(0,G.jsxs)(`div`,{className:`flex items-center space-x-2 ${e.wrapperClass||``}`,"data-obj-id":r,"data-obj-type":i,style:a,children:[(0,G.jsx)(Iw,{id:e.id,className:t,...o}),(0,G.jsx)(CS,{htmlFor:e.id,children:e.label})]})},{namespace:`ui`,label:`Switch`,inputs:[{name:`label`,type:`string`,label:`Label`,required:!0},{name:`id`,type:`string`,label:`ID`,required:!0},{name:`checked`,type:`boolean`,label:`Checked`}],defaultProps:{label:`Switch label`,id:`switch-field`}}),K.register(`select`,({schema:e,className:t,onChange:n,value:r,...i})=>{let{"data-obj-id":a,"data-obj-type":o,style:s,...c}=i;return(0,G.jsxs)(`div`,{className:q(`grid w-full items-center gap-1.5`,e.wrapperClass),"data-obj-id":a,"data-obj-type":o,style:s,children:[e.label&&(0,G.jsx)(CS,{className:q(e.required&&`text-destructive after:content-['*'] after:ml-0.5`),children:e.label}),(0,G.jsxs)(OC,{defaultValue:r===void 0?e.defaultValue:void 0,value:r??e.value,onValueChange:e=>{n&&n(e)},disabled:e.disabled,required:e.required,name:e.name,...c,children:[(0,G.jsx)(AC,{className:t,children:(0,G.jsx)(kC,{placeholder:e.placeholder})}),(0,G.jsx)(NC,{children:e.options?.map(e=>(0,G.jsx)(FC,{value:e.value,disabled:e.disabled,children:e.label},e.value))})]})]})},{namespace:`ui`,label:`Select`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`defaultValue`,type:`string`,label:`Default Value`},{name:`required`,type:`boolean`,label:`Required`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`options`,type:`array`,label:`Options`,description:`Array of {label, value} objects`}],defaultProps:{label:`Select an option`,placeholder:`Choose...`,options:[{label:`Option 1`,value:`option1`},{label:`Option 2`,value:`option2`},{label:`Option 3`,value:`option3`}]}}),K.register(`radio-group`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n;return(0,G.jsx)(xC,{defaultValue:e.defaultValue,className:t,...o,"data-obj-id":r,"data-obj-type":i,style:a,children:e.options?.map(t=>(0,G.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,G.jsx)(SC,{value:t.value,id:`${e.id}-${t.value}`}),(0,G.jsx)(CS,{htmlFor:`${e.id}-${t.value}`,children:t.label})]},t.value))})},{namespace:`ui`,label:`Radio Group`,inputs:[{name:`defaultValue`,type:`string`,label:`Default Value`},{name:`id`,type:`string`,label:`Group ID`,required:!0},{name:`options`,type:`array`,label:`Options`,description:`Array of {label, value} objects`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{id:`radio-group`,options:[{label:`Option 1`,value:`option1`},{label:`Option 2`,value:`option2`},{label:`Option 3`,value:`option3`}]}}),K.register(`slider`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n;return(0,G.jsx)(Pw,{defaultValue:Array.isArray(e.defaultValue)?e.defaultValue:e.defaultValue===void 0?void 0:[e.defaultValue],max:e.max,min:e.min,step:e.step,className:t,...o,"data-obj-id":r,"data-obj-type":i,style:a})},{namespace:`ui`,label:`Slider`,inputs:[{name:`defaultValue`,type:`array`,label:`Default Value`,defaultValue:[50]},{name:`max`,type:`number`,label:`Max`,defaultValue:100},{name:`min`,type:`number`,label:`Min`,defaultValue:0},{name:`step`,type:`number`,label:`Step`,defaultValue:1},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{defaultValue:[50],max:100,min:0,step:1,className:`w-full`}}),K.register(`toggle`,({schema:e,...t})=>(0,G.jsx)(Zw,{variant:e.variant,size:e.size,pressed:e.pressed,"aria-label":e.ariaLabel,...t,children:e.label||gb(e.children)}),{namespace:`ui`,label:`Toggle`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`pressed`,type:`boolean`,label:`Pressed`},{name:`variant`,type:`enum`,enum:[`default`,`outline`],defaultValue:`default`,label:`Variant`},{name:`size`,type:`enum`,enum:[`default`,`sm`,`lg`],defaultValue:`default`,label:`Size`},{name:`ariaLabel`,type:`string`,label:`Aria Label`}],defaultProps:{label:`Toggle`,variant:`default`,size:`default`}}),K.register(`input-otp`,({schema:e,className:t,onChange:n,value:r,...i})=>{let a=e.maxLength||6,o=Array.from({length:a});return(0,G.jsx)(LS,{maxLength:a,className:t,value:r??e.value,onChange:e=>{n&&n(e)},...i,children:(0,G.jsx)(RS,{children:o.map((e,t)=>(0,G.jsx)(zS,{index:t},t))})})},{namespace:`ui`,label:`Input OTP`,inputs:[{name:`maxLength`,type:`number`,label:`Max Length`,defaultValue:6},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{maxLength:6}}),K.register(`calendar`,({schema:e,className:t,...n})=>(0,G.jsx)(Qb,{mode:e.mode||`single`,selected:e.value||e.defaultValue,className:t,...n}),{namespace:`ui`,label:`Calendar`,inputs:[{name:`mode`,type:`enum`,enum:[`default`,`single`,`multiple`,`range`],defaultValue:`single`,label:`Mode`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{mode:`single`,className:`rounded-md border`}}),K.register(`date-picker`,({schema:e,className:t,value:n,onChange:r,...i})=>{let a=e=>{r&&r(e)},{"data-obj-id":o,"data-obj-type":s,style:c,...l}=i;return(0,G.jsxs)(`div`,{className:`grid w-full max-w-sm items-center gap-1.5 ${e.wrapperClass||``}`,"data-obj-id":o,"data-obj-type":s,style:c,children:[e.label&&(0,G.jsx)(CS,{htmlFor:e.id,children:e.label}),(0,G.jsxs)(_C,{children:[(0,G.jsx)(vC,{asChild:!0,children:(0,G.jsxs)(J,{id:e.id,variant:`outline`,className:q(`w-full justify-start text-left font-normal`,!n&&`text-muted-foreground`,t),...l,children:[(0,G.jsx)(ln,{className:`mr-2 h-4 w-4`}),n?v(n,e.format||`PPP`):(0,G.jsx)(`span`,{children:e.placeholder||`Pick a date`})]})}),(0,G.jsx)(yC,{className:`w-auto p-0`,children:(0,G.jsx)(Qb,{mode:`single`,selected:n,onSelect:a,initialFocus:!0})})]})]})},{namespace:`ui`,label:`Date Picker`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`format`,type:`string`,label:`Date Format`,description:`date-fns format string (e.g., "PPP", "yyyy-MM-dd")`},{name:`id`,type:`string`,label:`ID`,required:!0}],defaultProps:{label:`Date`,placeholder:`Pick a date`,format:`PPP`,id:`date-picker-field`}}),K.register(`file-upload`,({schema:e,className:t,value:n,onChange:r,...i})=>{let[a,o]=(0,W.useState)(n||[]),[s,c]=(0,W.useState)(!1),[l,u]=(0,W.useState)(0),d=(0,W.useRef)(null);(0,W.useEffect)(()=>{if(s){let e=setInterval(()=>{u(t=>t>=100?(clearInterval(e),c(!1),0):t+5)},50);return()=>clearInterval(e)}},[s]);let f=t=>{let n=Array.from(t.target.files||[]);if(n.length>0){c(!0),u(0);let t=e.multiple?[...a,...n]:n;setTimeout(()=>{o(t),r&&r(t)},1e3)}},p=e=>{let t=a.filter((t,n)=>n!==e);o(t),r&&r(t)},m=()=>{d.current?.click()},{"data-obj-id":h,"data-obj-type":g,style:_,...v}=i;return(0,G.jsxs)(`div`,{className:`grid w-full max-w-sm items-center gap-2 ${e.wrapperClass||``}`,"data-obj-id":h,"data-obj-type":g,style:_,children:[e.label&&(0,G.jsx)(CS,{htmlFor:e.id,children:e.label}),(0,G.jsxs)(`div`,{className:q(`relative flex flex-col gap-3 group/upload`,t),children:[(0,G.jsx)(`input`,{ref:d,type:`file`,id:e.id,className:`hidden`,accept:e.accept,multiple:e.multiple,onChange:f,...v}),(0,G.jsxs)(`div`,{onClick:m,className:q(`relative overflow-hidden cursor-pointer rounded-lg border-2 border-dashed transition-all duration-300 min-h-[120px] flex flex-col items-center justify-center p-4 sm:p-6 gap-3`,s?`border-cyan-400 bg-cyan-950/30`:`border-slate-700 bg-slate-900/50 hover:bg-slate-900 hover:border-cyan-500/50 hover:shadow-[0_0_20px_-5px_rgba(6,182,212,0.3)]`),children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-[url('https://grainy-gradients.vercel.app/noise.svg')] opacity-5 pointer-events-none`}),(0,G.jsx)(`div`,{className:`absolute inset-0 bg-[linear-gradient(to_right,#80808012_1px,transparent_1px),linear-gradient(to_bottom,#80808012_1px,transparent_1px)] bg-[size:14px_24px] pointer-events-none`}),(0,G.jsx)(`div`,{className:q(`relative z-10 p-3 rounded-full bg-slate-800 border border-slate-700 transition-all duration-500`,s?`scale-110 shadow-[0_0_30px_cyan] border-cyan-400 animate-bounce`:`group-hover/upload:scale-110 group-hover/upload:shadow-lg group-hover/upload:border-cyan-500`),children:s?(0,G.jsx)(qe,{className:`w-8 h-8 text-cyan-300 animate-pulse`}):(0,G.jsx)(Qt,{className:`w-6 h-6 text-slate-400 group-hover/upload:text-cyan-400`})}),(0,G.jsx)(`div`,{className:`relative z-10 text-center`,children:(0,G.jsx)(`p`,{className:q(`text-xs font-mono uppercase tracking-widest transition-colors`,s?`text-cyan-300`:`text-slate-500 group-hover/upload:text-cyan-200`),children:s?`INITIATING LAUNCH SEQUENCE...`:e.buttonText||`DROP PAYLOAD OR CLICK TO UPLOAD`})}),s&&(0,G.jsx)(`div`,{className:`absolute bottom-0 left-0 h-1 bg-cyan-500 shadow-[0_0_10px_cyan] transition-all duration-75 ease-out`,style:{width:`${l}%`}})]}),a.length>0&&(0,G.jsx)(`div`,{className:`flex flex-col gap-2 mt-1 perspective-1000`,children:a.map((e,t)=>(0,G.jsxs)(`div`,{className:`relative group/file overflow-hidden flex items-center justify-between p-3 border border-border bg-card/80 rounded-sm text-sm transition-all hover:border-primary/30 hover:shadow-lg hover:shadow-primary/10 animate-in slide-in-from-bottom-2 fade-in`,children:[(0,G.jsx)(`div`,{className:`absolute left-0 top-0 bottom-0 w-[2px] bg-primary/50 group-hover/file:bg-primary group-hover/file:shadow-[0_0_8px_hsl(var(--primary))]`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 z-10`,children:[(0,G.jsx)(gt,{className:`w-4 h-4 text-emerald-500 rounded-full`}),(0,G.jsx)(`span`,{className:`truncate max-w-[150px] sm:max-w-[200px] md:max-w-[300px] text-muted-foreground group-hover/file:text-foreground font-mono text-xs transition-colors`,children:e.name})]}),(0,G.jsx)(J,{type:`button`,variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 hover:bg-destructive/10 hover:text-destructive`,onClick:()=>p(t),children:(0,G.jsx)(At,{className:`h-3 w-3`})}),(0,G.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-r from-transparent via-primary/5 to-transparent -translate-x-full group-hover/file:animate-[shimmer_1s_infinite] pointer-events-none`})]},t))})]})]})},{namespace:`ui`,label:`File Upload`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`buttonText`,type:`string`,label:`Button Text`},{name:`accept`,type:`string`,label:`Accepted File Types`,description:`MIME types (e.g., "image/*,application/pdf")`},{name:`multiple`,type:`boolean`,label:`Allow Multiple Files`},{name:`id`,type:`string`,label:`ID`,required:!0}],defaultProps:{label:`Upload files`,buttonText:`Choose files`,multiple:!0,id:`file-upload-field`}}),M(`flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2`,{variants:{orientation:{horizontal:`[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none`,vertical:`flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none`}},defaultVariants:{orientation:`horizontal`}});function TT({options:e,value:t,onValueChange:n,placeholder:r=`Select option...`,searchPlaceholder:i=`Search...`,emptyText:a=`No option found.`,className:o,disabled:s}){let[c,l]=W.useState(!1);return(0,G.jsxs)(_C,{open:c,onOpenChange:l,children:[(0,G.jsx)(vC,{asChild:!0,children:(0,G.jsxs)(J,{variant:`outline`,role:`combobox`,"aria-expanded":c,className:q(`w-[200px] justify-between`,o),disabled:s,children:[t?e.find(e=>e.value===t)?.label:r,(0,G.jsx)(at,{className:`ml-2 h-4 w-4 shrink-0 opacity-50`})]})}),(0,G.jsx)(yC,{className:`w-[200px] p-0`,children:(0,G.jsxs)(Px,{children:[(0,G.jsx)(Fx,{placeholder:i}),(0,G.jsxs)(Ix,{children:[(0,G.jsx)(Lx,{children:a}),(0,G.jsx)(Rx,{children:e.map(e=>(0,G.jsxs)(Bx,{value:e.value,onSelect:e=>{n?.(e===t?``:e),l(!1)},children:[(0,G.jsx)(Ct,{className:q(`mr-2 h-4 w-4`,t===e.value?`opacity-100`:`opacity-0`)}),e.label]},e.value))})]})]})})]})}var ET=[{value:`equals`,label:`Equals`},{value:`notEquals`,label:`Does not equal`},{value:`contains`,label:`Contains`},{value:`notContains`,label:`Does not contain`},{value:`isEmpty`,label:`Is empty`},{value:`isNotEmpty`,label:`Is not empty`},{value:`greaterThan`,label:`Greater than`},{value:`lessThan`,label:`Less than`},{value:`greaterOrEqual`,label:`Greater than or equal`},{value:`lessOrEqual`,label:`Less than or equal`},{value:`before`,label:`Before`},{value:`after`,label:`After`},{value:`between`,label:`Between`},{value:`in`,label:`In`},{value:`notIn`,label:`Not in`}],DT=[`equals`,`notEquals`,`contains`,`notContains`,`isEmpty`,`isNotEmpty`],OT=[`equals`,`notEquals`,`greaterThan`,`lessThan`,`greaterOrEqual`,`lessOrEqual`,`isEmpty`,`isNotEmpty`],kT=[`equals`,`notEquals`],AT=[`equals`,`notEquals`,`before`,`after`,`between`,`isEmpty`,`isNotEmpty`],jT=[`equals`,`notEquals`,`in`,`notIn`,`isEmpty`,`isNotEmpty`],MT=[`equals`,`notEquals`,`in`,`notIn`,`isEmpty`,`isNotEmpty`],NT=[`number`,`currency`,`percent`,`rating`],PT=[`date`,`datetime`,`time`],FT=[`select`,`status`],IT=[`lookup`,`master_detail`,`user`,`owner`];function LT(e){return Array.isArray(e)?e:e!=null&&e!==``?[e]:[]}function RT(e){return!!e&&typeof e==`object`&&Array.isArray(e.conditions)&&(e.logic===`and`||e.logic===`or`)}var zT={id:`root`,logic:`and`,conditions:[]};function BT({fields:e=[],value:t,onChange:n,className:r,showClearAll:i=!0}){let[a,o]=W.useState(RT(t)?t:zT);W.useEffect(()=>{RT(t)&&JSON.stringify(t)!==JSON.stringify(a)&&o(t)},[t]);let s=e=>{o(e),n?.(e)},c=()=>{let t={id:crypto.randomUUID(),field:e[0]?.value||``,operator:`equals`,value:``};s({...a,conditions:[...a.conditions,t]})},l=e=>{s({...a,conditions:a.conditions.filter(t=>t.id!==e)})},u=()=>{s({...a,conditions:[]})},d=(e,t)=>{s({...a,conditions:a.conditions.map(n=>n.id===e?{...n,...t}:n)})},f=()=>{s({...a,logic:a.logic===`and`?`or`:`and`})},p=t=>{let n=e.find(e=>e.value===t)?.type||`text`;return NT.includes(n)?ET.filter(e=>OT.includes(e.value)):n===`boolean`?ET.filter(e=>kT.includes(e.value)):PT.includes(n)?ET.filter(e=>AT.includes(e.value)):FT.includes(n)?ET.filter(e=>jT.includes(e.value)):IT.includes(n)?ET.filter(e=>MT.includes(e.value)):ET.filter(e=>DT.includes(e.value))},m=e=>![`isEmpty`,`isNotEmpty`].includes(e),h=t=>{let n=e.find(e=>e.value===t)?.type||`text`;return NT.includes(n)?`number`:n===`date`?`date`:n===`datetime`?`datetime-local`:n===`time`?`time`:`text`},g=t=>{let n=e.find(e=>e.value===t.field),r=[`in`,`notIn`].includes(t.operator);if(IT.includes(n?.type||``)&&!n?.options&&(n?.referenceTo||n?.type===`user`||n?.type===`owner`))return(0,G.jsx)(VT,{field:n,value:t.value,multiple:r,onChange:e=>d(t.id,{value:e})});if(n?.options&&r){let e=LT(t.value);return(0,G.jsx)(`div`,{className:`max-h-40 overflow-y-auto space-y-0.5 border rounded-md p-2`,children:n.options.map(n=>{let r=e.map(String).includes(String(n.value));return(0,G.jsxs)(`label`,{className:q(`flex items-center gap-2 text-sm py-1 px-1.5 rounded cursor-pointer`,r?`bg-primary/5 text-primary`:`hover:bg-muted`),children:[(0,G.jsx)(xx,{checked:r,onCheckedChange:r=>{let i=r?[...e,n.value]:e.filter(e=>String(e)!==String(n.value));d(t.id,{value:i})}}),(0,G.jsx)(`span`,{className:`truncate`,children:n.label})]},n.value)})})}if(n?.options&&(FT.includes(n.type||``)||IT.includes(n.type||``)))return(0,G.jsxs)(OC,{value:String(t.value||``),onValueChange:e=>d(t.id,{value:e}),children:[(0,G.jsx)(AC,{className:`h-9 text-sm`,children:(0,G.jsx)(kC,{placeholder:`Select value`})}),(0,G.jsx)(NC,{children:n.options.map(e=>(0,G.jsx)(FC,{value:e.value,children:e.label},e.value))})]});if(n?.type===`boolean`)return(0,G.jsxs)(OC,{value:String(t.value||``),onValueChange:e=>d(t.id,{value:e===`true`}),children:[(0,G.jsx)(AC,{className:`h-9 text-sm`,children:(0,G.jsx)(kC,{placeholder:`Select value`})}),(0,G.jsxs)(NC,{children:[(0,G.jsx)(FC,{value:`true`,children:`True`}),(0,G.jsx)(FC,{value:`false`,children:`False`})]})]});let i=h(t.field),a=()=>t.value?i===`date`&&typeof t.value==`string`?t.value.split(`T`)[0]:String(t.value):``,o=e=>{let r=e;NT.includes(n?.type||``)&&e!==``?r=parseFloat(e)||0:PT.includes(n?.type||``)&&(r=e),d(t.id,{value:r})};return(0,G.jsx)(VS,{type:i,className:`h-9 text-sm`,placeholder:`Value`,value:a(),onChange:e=>o(e.target.value)})};return(0,G.jsxs)(`div`,{className:q(`space-y-3`,r),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium`,children:`Where`}),a.conditions.length>1&&(0,G.jsx)(J,{variant:`outline`,size:`sm`,onClick:f,className:`h-7 text-xs`,children:a.logic.toUpperCase()})]}),i&&a.conditions.length>0&&(0,G.jsxs)(J,{variant:`ghost`,size:`sm`,onClick:u,className:`h-7 text-xs text-muted-foreground hover:text-destructive`,children:[(0,G.jsx)(Sn,{className:`h-3 w-3 mr-1`}),`Clear all`]})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:a.conditions.map(t=>(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex-1 grid grid-cols-12 gap-2`,children:[(0,G.jsx)(`div`,{className:`col-span-4`,children:(0,G.jsxs)(OC,{value:t.field,onValueChange:e=>d(t.id,{field:e}),children:[(0,G.jsx)(AC,{className:`h-9 text-sm`,children:(0,G.jsx)(kC,{placeholder:`Select field`})}),(0,G.jsx)(NC,{children:e.map(e=>(0,G.jsx)(FC,{value:e.value,children:e.label},e.value))})]})}),(0,G.jsx)(`div`,{className:`col-span-4`,children:(0,G.jsxs)(OC,{value:t.operator,onValueChange:e=>d(t.id,{operator:e}),children:[(0,G.jsx)(AC,{className:`h-9 text-sm`,children:(0,G.jsx)(kC,{placeholder:`Operator`})}),(0,G.jsx)(NC,{children:p(t.field).map(e=>(0,G.jsx)(FC,{value:e.value,children:e.label},e.value))})]})}),m(t.operator)&&(0,G.jsx)(`div`,{className:`col-span-4`,children:g(t)})]}),(0,G.jsxs)(J,{variant:`ghost`,size:`icon`,className:`h-9 w-9 shrink-0`,onClick:()=>l(t.id),children:[(0,G.jsx)(At,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Remove condition`})]})]},t.id))}),(0,G.jsxs)(J,{variant:`outline`,size:`sm`,onClick:c,className:`h-8`,disabled:e.length===0,children:[(0,G.jsx)(Kt,{className:`h-3 w-3`}),`Add filter`]})]})}BT.displayName=`FilterBuilder`;function VT({field:e,value:t,multiple:n,onChange:r}){let i=W.useContext(Al)?.dataSource??null,a=e.referenceTo||(e.type===`user`||e.type===`owner`?`users`:void 0),o=e.displayField||`name`,s=e.idField||`id`,[c,l]=W.useState(!1),[u,d]=W.useState(``),[f,p]=W.useState([]),[m,h]=W.useState(!1),[g,_]=W.useState(null),[v,y]=W.useState({}),b=W.useRef(null),x=W.useMemo(()=>n?LT(t).map(e=>String(e)):t==null||t===``?[]:[String(t)],[t,n]),S=i!=null&&typeof i.find==`function`&&!!a,C=W.useCallback(e=>{let t=e?.[s]??e?.id??e?._id,n=e?.[o]??e?.label??e?.name??String(t);return{value:t,label:String(n)}},[o,s]),w=W.useCallback(async e=>{if(S){h(!0),_(null);try{let t={$top:50};e&&e.trim()&&(t.$search=e.trim());let n=await i.find(a,t),r=(n?.data??n??[]).map(C);p(r),r.length>0&&y(e=>{let t={...e};for(let e of r)t[String(e.value)]=e.label;return t})}catch(e){_(e instanceof Error?e.message:String(e)),p([])}finally{h(!1)}}},[i,a,S,C]);W.useEffect(()=>{if(!S||x.length===0)return;let e=x.filter(e=>!(e in v));if(e.length===0)return;let t=!1;return(async()=>{try{let n=await i.find(a,{$top:e.length,$filter:{[s]:{$in:e}}}),r=n?.data??n??[];if(t)return;y(e=>{let t={...e};for(let e of r){let n=C(e);t[String(n.value)]=n.label}return t})}catch{}})(),()=>{t=!0}},[x,S,i,a,s,C,v]),W.useEffect(()=>{c&&S&&f.length===0&&w()},[c]);let T=e=>{d(e),S&&(b.current&&clearTimeout(b.current),b.current=setTimeout(()=>w(e||void 0),300))},E=e=>{if(n){let n=LT(t);r(n.map(String).includes(String(e))?n.filter(t=>String(t)!==String(e)):[...n,e])}else r(e),l(!1)};return S?(0,G.jsxs)(_C,{open:c,onOpenChange:l,children:[(0,G.jsx)(vC,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:q(`inline-flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-background px-3 text-sm`,`hover:bg-accent hover:text-accent-foreground`,`focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1`),"data-testid":`lookup-picker-${e.value}`,children:[x.length===0?(0,G.jsxs)(`span`,{className:`text-muted-foreground truncate`,children:[`Search `,e.label,`…`]}):n?(0,G.jsx)(`span`,{className:`truncate`,children:x.length===1?v[x[0]]||x[0]:`${x.length} selected`}):(0,G.jsx)(`span`,{className:`truncate`,children:v[x[0]]||x[0]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1 shrink-0`,children:[x.length>0&&(0,G.jsx)(At,{className:`h-3.5 w-3.5 opacity-60 hover:opacity-100`,onClick:e=>{e.stopPropagation(),r(n?[]:``)}}),(0,G.jsx)(nt,{className:`h-3.5 w-3.5 opacity-60`})]})]})}),(0,G.jsxs)(yC,{align:`start`,className:`w-72 p-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center border-b px-3`,children:[(0,G.jsx)(st,{className:`h-4 w-4 text-muted-foreground shrink-0`}),(0,G.jsx)(`input`,{autoFocus:!0,value:u,onChange:e=>T(e.target.value),placeholder:`Search ${e.label}…`,className:`flex h-9 w-full bg-transparent px-2 py-1 text-sm outline-none placeholder:text-muted-foreground`,"data-testid":`lookup-search-${e.value}`}),m&&(0,G.jsx)(dt,{className:`h-3.5 w-3.5 animate-spin text-muted-foreground`})]}),(0,G.jsxs)(`div`,{className:`max-h-64 overflow-y-auto p-1`,"data-testid":`lookup-options-${e.value}`,children:[g&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-xs text-destructive`,children:g}),!g&&!m&&f.length===0&&(0,G.jsx)(`div`,{className:`px-3 py-4 text-center text-xs text-muted-foreground`,children:`No results`}),f.map(e=>{let t=x.includes(String(e.value));return(0,G.jsxs)(`label`,{className:q(`flex items-center gap-2 px-2 py-1.5 rounded text-sm cursor-pointer`,t?`bg-primary/5 text-primary`:`hover:bg-muted`),children:[n?(0,G.jsx)(xx,{checked:t,onCheckedChange:()=>E(e.value)}):(0,G.jsx)(`input`,{type:`radio`,checked:t,onChange:()=>E(e.value),className:`rounded-full border-input`}),(0,G.jsx)(`span`,{className:`truncate flex-1`,children:e.label})]},String(e.value))})]})]})]}):(0,G.jsx)(VS,{className:`h-9 text-sm`,placeholder:`Enter ${e.label} id`,value:x[0]??``,onChange:e=>r(e.target.value)})}function HT(){try{let{t:e}=hu(),t=e(`detail.noValue`);return!t||t===`detail.noValue`?`No value`:t}catch{return`No value`}}M(`flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{default:`bg-transparent`,icon:`bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6`}},defaultVariants:{variant:`default`}});function UT({className:e,glyph:t=`—`,...n}){return(0,G.jsx)(`span`,{"data-slot":`empty-value`,"aria-label":HT(),className:q(`select-none text-muted-foreground/50 no-underline pointer-events-none`,e),...n,children:t})}var WT=M(`space-y-2`),GT=W.forwardRef(({className:e,label:t,description:n,error:r,required:i,htmlFor:a,children:o,...s},c)=>{let l=W.useId(),u=a||l,d=`${u}-description`,f=`${u}-error`;return(0,G.jsxs)(`div`,{ref:c,className:q(WT(),e),...s,children:[t&&(0,G.jsx)(CS,{htmlFor:u,className:q(r&&`text-destructive`,i&&`after:content-['*'] after:ml-0.5 after:text-destructive`),children:t}),(0,G.jsx)(x,{id:u,"aria-describedby":[n&&d,r&&f].filter(Boolean).join(` `)||void 0,"aria-invalid":!!r,children:o}),n&&!r&&(0,G.jsx)(`p`,{id:d,className:`text-[0.8rem] text-muted-foreground`,children:n}),r&&(0,G.jsx)(`p`,{id:f,className:`text-[0.8rem] font-medium text-destructive`,children:r})]})});GT.displayName=`Field`;var KT=W.forwardRef(({className:e,startContent:t,endContent:n,children:r,...i},a)=>(0,G.jsxs)(`div`,{ref:a,className:q(`flex w-full items-center rounded-md border border-input bg-transparent ring-offset-background focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2`,`has-[[data-invalid]]:border-destructive`,e),...i,children:[t&&(0,G.jsx)(`div`,{className:`flex items-center px-3 text-muted-foreground bg-muted/50 border-r h-full self-stretch rounded-l-md`,children:t}),(0,G.jsx)(`div`,{className:`flex-1 relative [&_input]:border-0 [&_input]:shadow-none [&_input]:focus-visible:ring-0 [&_input]:bg-transparent`,children:r}),n&&(0,G.jsx)(`div`,{className:`flex items-center px-3 text-muted-foreground bg-muted/50 border-l h-full self-stretch rounded-r-md`,children:n})]}));KT.displayName=`InputGroup`,M(`group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,{variants:{variant:{default:`bg-transparent`,outline:`border-border`,muted:`bg-muted/50`},size:{default:`p-4 gap-4 `,sm:`py-3 px-4 gap-2.5`}},defaultVariants:{variant:`default`,size:`default`}}),M(`flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5`,{variants:{variant:{default:`bg-transparent`,icon:`size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4`,image:`size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover`}},defaultVariants:{variant:`default`}});var qT=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsx)(`select`,{className:q(`flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,e),ref:r,...n,children:t}));qT.displayName=`NativeSelect`;function JT(e){if(e!=null)return typeof e==`number`?`${e}px`:e}function YT(e){let t=JT(e);return t?{"--ov-w":t}:{}}var XT=360,ZT=.95;function QT(e){let[t,n]=W.useState(null),r=W.useRef(!1);return W.useEffect(()=>{if(!(!e||typeof window>`u`))try{let t=window.localStorage.getItem(`ov:${e}`);if(!t)return;let r=Number(t);Number.isFinite(r)&&r>=XT&&n(r)}catch{}},[e]),{width:t,handleMouseDown:W.useCallback(t=>{if(!e||typeof window>`u`)return;t.preventDefault(),r.current=!0;let i=Math.floor(window.innerWidth*ZT);document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let a=e=>{r.current&&n(Math.min(i,Math.max(XT,window.innerWidth-e.clientX)))},o=()=>{r.current=!1,document.body.style.cursor=``,document.body.style.userSelect=``,window.removeEventListener(`mousemove`,a),window.removeEventListener(`mouseup`,o),n(t=>{if(t!=null)try{window.localStorage.setItem(`ov:${e}`,String(t))}catch{}return t})};window.addEventListener(`mousemove`,a),window.addEventListener(`mouseup`,o)},[e]),handleDoubleClick:W.useCallback(()=>{if(!(!e||typeof window>`u`)){n(null);try{window.localStorage.removeItem(`ov:${e}`)}catch{}}},[e]),enabled:!!e}}var $T=({isOpen:e,selectedRecord:t,mode:n,close:r,setIsOpen:i,width:a,view:o,title:s,description:c,className:l,children:u,renderView:d,mainContent:f,popoverTrigger:p,onExpand:m,expandLabel:h=`Open as full page`,storageKey:g})=>{if(n===`page`||n===`new_window`||n===`none`||!t)return null;let _=YT(a),v=s||`Record Detail`,y=QT(n===`drawer`?g:void 0),b=JT(a)??`42rem`,x=y.width==null?{"--ov-w":`max(${b}, min(60vw, 880px))`}:{"--ov-w":`${y.width}px`},S=e=>d&&o?d(e,o):u(e);if(n===`drawer`)return(0,G.jsx)(RC,{open:e,onOpenChange:i,children:(0,G.jsxs)(WC,{side:`right`,className:q(`w-screen max-w-none sm:w-full sm:max-w-[var(--ov-w,42rem)] p-0 flex flex-col gap-0 overflow-hidden`,`[&>button:last-of-type]:hidden`,l),style:x,children:[y.enabled&&(0,G.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize drawer`,onMouseDown:y.handleMouseDown,onDoubleClick:y.handleDoubleClick,className:`hidden sm:block absolute left-0 top-0 bottom-0 z-30 w-1 cursor-col-resize bg-transparent hover:bg-primary/40 active:bg-primary/60 transition-colors`,style:{touchAction:`none`}}),(0,G.jsxs)(GC,{className:`shrink-0 flex-row items-center justify-between gap-2 space-y-0 px-4 py-2 border-b bg-muted/30`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(qC,{className:`truncate text-xs font-medium tracking-wide text-muted-foreground`,children:v}),c&&(0,G.jsx)(JC,{className:`truncate text-xs`,children:c})]}),(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[m&&(0,G.jsx)(`button`,{type:`button`,onClick:m,"aria-label":h,title:h,className:`inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:(0,G.jsx)(Ze,{className:`h-3.5 w-3.5`})}),(0,G.jsx)(BC,{asChild:!0,children:(0,G.jsx)(`button`,{type:`button`,"aria-label":`Close`,title:`Close`,className:`inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:(0,G.jsx)(At,{className:`h-3.5 w-3.5`})})})]})]}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:S(t)})]})});if(n===`modal`)return(0,G.jsx)(Tx,{open:e,onOpenChange:i,children:(0,G.jsxs)(kx,{className:q(`w-[calc(100vw-1rem)] max-w-none sm:max-w-[var(--ov-w,42rem)] max-h-[90vh] overflow-y-auto`,l),style:_,children:[m&&(0,G.jsx)(`button`,{type:`button`,onClick:m,"aria-label":h,title:h,className:`absolute right-12 top-4 z-10 inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-colors`,children:(0,G.jsx)(Ze,{className:`h-4 w-4`})}),(0,G.jsxs)(Ax,{children:[(0,G.jsx)(Mx,{children:v}),c&&(0,G.jsx)(Nx,{children:c})]}),(0,G.jsx)(`div`,{className:`mt-4`,children:S(t)})]})});if(n===`split`){if(!e||!f)return null;let n=a&&typeof a==`number`?Math.min(70,Math.max(20,a/1200*100)):40,i=100-n;return(0,G.jsxs)(CC,{direction:`horizontal`,className:q(`h-full`,l),children:[(0,G.jsx)(wC,{defaultSize:i,minSize:30,children:f}),(0,G.jsx)(TC,{withHandle:!0}),(0,G.jsx)(wC,{defaultSize:n,minSize:20,children:(0,G.jsxs)(`div`,{className:`h-full overflow-y-auto p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold`,children:v}),(0,G.jsx)(`button`,{onClick:r,className:`rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,"aria-label":`Close panel`,children:(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,G.jsx)(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),(0,G.jsx)(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})]})})]}),c&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground mb-4`,children:c}),S(t)]})})]})}return n===`popover`?p?(0,G.jsxs)(_C,{open:e,onOpenChange:i,children:[p&&(0,G.jsx)(vC,{asChild:!0,children:p}),(0,G.jsx)(yC,{className:q(`w-96 max-h-[400px] overflow-y-auto p-4`,l),style:_,children:(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-semibold`,children:v}),c&&(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:c}),S(t)]})})]}):e?(0,G.jsx)(Tx,{open:e,onOpenChange:i,children:(0,G.jsxs)(kx,{className:q(`w-96 max-h-[80vh] overflow-y-auto p-4`,l),style:_,children:[(0,G.jsxs)(Ax,{children:[(0,G.jsx)(Mx,{className:`text-sm`,children:v}),c&&(0,G.jsx)(Nx,{className:`text-xs`,children:c})]}),(0,G.jsx)(`div`,{className:`mt-2`,children:S(t)})]})}):null:null};$T.displayName=`NavigationOverlay`;function eE({className:e,...t}){return(0,G.jsx)(`div`,{role:`status`,"aria-label":`Loading`,className:q(`flex items-center justify-center`,e),...t,children:(0,G.jsx)(dt,{className:`animate-spin text-muted-foreground w-full h-full min-w-4 min-h-4`})})}var tE=({params:e,open:t,onSubmit:n,onCancel:r,title:i=`Action Parameters`,description:a=`Please provide the required parameters.`})=>{let[o,s]=(0,W.useState)(()=>{let t={};return e.forEach(e=>{e.defaultValue===void 0?t[e.name]=e.type===`boolean`?!1:``:t[e.name]=e.defaultValue}),t}),[c,l]=(0,W.useState)({}),u=(0,W.useCallback)((e,t)=>{s(n=>({...n,[e]:t})),l(t=>{let n={...t};return delete n[e],n})},[]),d=(0,W.useCallback)(()=>{let t={};if(e.forEach(e=>{if(e.required){let n=o[e.name];(n==null||n===``)&&(t[e.name]=`${e.label} is required`)}}),Object.keys(t).length>0){l(t);return}n(o)},[e,o,n]);return(0,G.jsx)(Tx,{open:t,onOpenChange:e=>{e||r()},children:(0,G.jsxs)(kx,{className:`sm:max-w-[425px]`,children:[(0,G.jsxs)(Ax,{children:[(0,G.jsx)(Mx,{children:i}),(0,G.jsx)(Nx,{children:a})]}),(0,G.jsx)(`div`,{className:`space-y-4 py-4`,children:e.map(e=>{let t=o[e.name],n=c[e.name];switch(e.type){case`textarea`:return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(CS,{htmlFor:e.name,children:[e.label,e.required&&(0,G.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,G.jsx)(Yw,{id:e.name,value:t||``,onChange:t=>u(e.name,t.target.value),placeholder:e.placeholder}),e.helpText&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.helpText}),n&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:n})]},e.name);case`number`:return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(CS,{htmlFor:e.name,children:[e.label,e.required&&(0,G.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,G.jsx)(VS,{id:e.name,type:`number`,value:t??``,onChange:t=>u(e.name,Number.isNaN(t.target.valueAsNumber)?``:t.target.valueAsNumber),placeholder:e.placeholder}),e.helpText&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.helpText}),n&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:n})]},e.name);case`boolean`:return(0,G.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,G.jsx)(xx,{id:e.name,checked:!!t,onCheckedChange:t=>u(e.name,!!t)}),(0,G.jsx)(CS,{htmlFor:e.name,children:e.label}),e.helpText&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground ml-2`,children:e.helpText})]},e.name);case`select`:return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(CS,{htmlFor:e.name,children:[e.label,e.required&&(0,G.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,G.jsxs)(OC,{value:t||``,onValueChange:t=>u(e.name,t),children:[(0,G.jsx)(AC,{children:(0,G.jsx)(kC,{placeholder:e.placeholder||`Select...`})}),(0,G.jsx)(NC,{children:e.options?.map(e=>(0,G.jsx)(FC,{value:e.value,children:e.label},e.value))})]}),e.helpText&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.helpText}),n&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:n})]},e.name);case`date`:return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(CS,{htmlFor:e.name,children:[e.label,e.required&&(0,G.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,G.jsx)(VS,{id:e.name,type:`date`,value:t||``,onChange:t=>u(e.name,t.target.value)}),e.helpText&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.helpText}),n&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:n})]},e.name);default:return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(CS,{htmlFor:e.name,children:[e.label,e.required&&(0,G.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,G.jsx)(VS,{id:e.name,type:`text`,value:t||``,onChange:t=>u(e.name,t.target.value),placeholder:e.placeholder}),e.helpText&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.helpText}),n&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:n})]},e.name)}})}),(0,G.jsxs)(jx,{children:[(0,G.jsx)(J,{variant:`outline`,onClick:r,children:`Cancel`}),(0,G.jsx)(J,{onClick:d,children:`Continue`})]})]})})};tE.displayName=`ActionParamDialog`;var nE={"zh-CN":{addToFavorites:`加入收藏`,removeFromFavorites:`从收藏移除`,copyRecordId:`复制记录 ID`,copied:`已复制`},"zh-TW":{addToFavorites:`加入收藏`,removeFromFavorites:`從收藏移除`,copyRecordId:`複製記錄 ID`,copied:`已複製`}},rE=()=>{if(typeof document<`u`){let e=document.documentElement?.lang;if(e)return e}return typeof navigator<`u`&&navigator.language?navigator.language:`en`},iE=(e,t)=>{let n=rE(),r=nE[n],i=n.split(`-`)[0],a=r||(i===`zh`?nE[`zh-CN`]:void 0);return a&&a[e]||t},aE=({title:e,icon:t,objectLabel:n,resourceId:r,showStar:i=!0,showCopyId:a=!0,isFavorite:o,onToggleFavorite:s,className:c,inlineExtras:l})=>{let[u,d]=W.useState(!1),[f,p]=W.useState(!1),m=o??u,h=W.useCallback(()=>{let e=!m;s&&s(e),o===void 0&&d(e)},[m,o,s]),g=W.useCallback(()=>{if(r)try{typeof navigator<`u`&&navigator.clipboard&&navigator.clipboard.writeText(r),p(!0),setTimeout(()=>p(!1),1500)}catch{}},[r]),_=m?iE(`removeFromFavorites`,`Remove from favourites`):iE(`addToFavorites`,`Add to favourites`),v=f?iE(`copied`,`Copied`):iE(`copyRecordId`,`Copy record ID`);return(0,G.jsx)(QC,{children:(0,G.jsx)(`div`,{className:q(`flex flex-col min-w-0`,c),children:(0,G.jsxs)(`div`,{className:`flex items-baseline gap-2 flex-wrap`,children:[t&&(0,G.jsx)(`span`,{className:`text-muted-foreground shrink-0 self-center`,"aria-hidden":!0,children:t}),(0,G.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold truncate`,children:e}),n&&(0,G.jsx)(`span`,{className:`text-xs font-medium tracking-wide text-muted-foreground/70 shrink-0`,children:n}),a&&r&&(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-5 w-5 shrink-0 text-muted-foreground/50 hover:text-foreground`,onClick:g,"aria-label":v,children:f?(0,G.jsx)(Ct,{className:`h-3 w-3 text-green-600`}):(0,G.jsx)(yt,{className:`h-3 w-3`})})}),(0,G.jsx)(tw,{children:v})]}),i&&(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0`,onClick:h,"aria-label":_,"aria-pressed":m,children:(0,G.jsx)(mt,{className:q(`h-4 w-4`,m?`fill-yellow-400 text-yellow-400`:`text-muted-foreground`)})})}),(0,G.jsx)(tw,{children:_})]}),l]})})})},oE=!1;function sE(){if(oE||typeof document>`u`)return;let e=`objui-refresh-indicator-kf`;if(document.getElementById(e)){oE=!0;return}let t=document.createElement(`style`);t.id=e,t.textContent=`
|
|
22
|
+
@keyframes objui-refresh-bar {
|
|
23
|
+
0% { transform: translateX(-100%); }
|
|
24
|
+
100% { transform: translateX(400%); }
|
|
25
|
+
}
|
|
26
|
+
`,document.head.appendChild(t),oE=!0}var cE=({active:e,ariaLabel:t=`Refreshing`,className:n,...r})=>(W.useEffect(()=>{e&&sE()},[e]),e?(0,G.jsx)(`div`,{className:q(`pointer-events-none absolute inset-x-0 top-0 z-20 h-0.5 overflow-hidden`,n),role:`progressbar`,"aria-busy":`true`,"aria-label":t,"data-testid":`refresh-indicator`,...r,children:(0,G.jsx)(`div`,{className:`h-full w-1/4 rounded-full bg-primary/70`,style:{animation:`objui-refresh-bar 1.1s ease-in-out infinite`}})}):null);cE.displayName=`RefreshIndicator`;function lE({className:e,icon:t,illustration:n,showIcon:r=!0,iconWrapperClassName:i,title:a=`No data`,description:o,action:s,children:c,...l}){let u=r&&(t!=null||!n);return(0,G.jsxs)(`div`,{"data-slot":`data-empty-state`,className:q(`flex flex-col items-center justify-center gap-3 p-6 text-center`,e),...l,children:[n&&(0,G.jsx)(`div`,{"data-slot":`data-empty-state-illustration`,className:`motion-safe:animate-in motion-safe:fade-in-0 motion-safe:zoom-in-95 motion-safe:duration-300 [&_svg]:max-h-40 [&_svg]:w-auto`,"aria-hidden":!0,children:n}),u&&(0,G.jsx)(`div`,{"data-slot":`data-empty-state-icon`,className:q(i??`flex size-10 items-center justify-center rounded-lg bg-muted`),children:t??(0,G.jsx)(Et,{className:`size-5 text-muted-foreground`})}),a&&(0,G.jsx)(`h3`,{className:`text-sm font-medium`,children:a}),o&&(0,G.jsx)(`p`,{className:`max-w-sm text-sm text-muted-foreground`,children:o}),s,c]})}var uE=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Dx,{children:[(0,G.jsx)(Ox,{}),(0,G.jsxs)(Ee,{ref:r,className:q(`fixed inset-0 z-50 w-full bg-background p-4 shadow-lg duration-200`,`h-[100dvh]`,`sm:inset-auto sm:left-[50%] sm:top-[50%] sm:translate-x-[-50%] sm:translate-y-[-50%]`,`sm:max-w-lg sm:h-auto sm:max-h-[90vh] sm:rounded-lg sm:border sm:p-6`,`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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]`,`data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]`,e),...n,children:[t,(0,G.jsxs)(Ae,{className:q(`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity`,`hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,`disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground`,`min-h-[44px] min-w-[44px] sm:min-h-0 sm:min-w-0 flex items-center justify-center`),children:[(0,G.jsx)(At,{className:`h-5 w-5 sm:h-4 sm:w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}));uE.displayName=`MobileDialogContent`;function dE(e){return!e&&e!==0?``:e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/(1024*1024)).toFixed(1)} MB`:`${(e/(1024*1024*1024)).toFixed(2)} GB`}function fE({open:e,onOpenChange:t,job:n,title:r,description:i,filename:a,allowCloseWhileRunning:o=!0,className:s,onAfterDownload:c,closeAfterDownloadMs:l}){let{progress:u,error:d,isRunning:f,cancel:p,download:m,reset:h}=n,g=u?.status,_=typeof u?.percentComplete==`number`?Math.max(0,Math.min(100,u.percentComplete)):void 0,v=g===`completed`,y=g===`failed`||g===`expired`,b=g===`cancelled`,x=W.useCallback(async()=>{await m(a)&&(c?.(),l&&l>0&&setTimeout(()=>t(!1),l))},[m,a,c,l,t]),S=W.useCallback(e=>{!e&&f&&!o||(t(e),!e&&!f&&setTimeout(h,0))},[f,o,t,h]),C=r??(v?`Export ready`:y?`Export failed`:b?`Export cancelled`:`Exporting…`),w=i??(v?`Your export is ready to download.`:y?`The export job did not complete.`:b?`The export was cancelled.`:`Your export is being prepared on the server. You can close this window — the job will continue in the background.`);return(0,G.jsx)(Tx,{open:e,onOpenChange:S,children:(0,G.jsxs)(kx,{"data-testid":`export-progress-dialog`,className:q(`sm:max-w-md`,s),children:[(0,G.jsxs)(Ax,{children:[(0,G.jsxs)(Mx,{className:`flex items-center gap-2`,children:[v?(0,G.jsx)(gt,{className:`h-5 w-5 text-green-600`,"aria-hidden":`true`}):y?(0,G.jsx)($e,{className:`h-5 w-5 text-destructive`,"aria-hidden":`true`}):(0,G.jsx)(dt,{className:q(`h-5 w-5 text-muted-foreground`,f&&`animate-spin`),"aria-hidden":`true`}),C]}),(0,G.jsx)(Nx,{children:w})]}),(0,G.jsxs)(`div`,{className:`py-2 space-y-3`,children:[(f||v)&&(0,G.jsx)(`div`,{"data-testid":`export-progress-bar`,children:_===void 0?(0,G.jsx)(bC,{value:void 0,"aria-label":`Export progress (indeterminate)`}):(0,G.jsx)(bC,{value:_,"aria-label":`Export progress`})}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-muted-foreground`,children:[(0,G.jsx)(`span`,{"data-testid":`export-progress-counts`,children:u?.processedRecords==null?f?`Starting…`:``:`${u.processedRecords.toLocaleString()}${u.totalRecords==null?``:` / ${u.totalRecords.toLocaleString()}`} records`}),(0,G.jsx)(`span`,{"data-testid":`export-progress-percent`,children:_===void 0?``:`${_.toFixed(0)}%`})]}),u?.fileSize?(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:dE(u.fileSize)}):null,(d||u?.error)&&(0,G.jsx)(`div`,{"data-testid":`export-progress-error`,className:`text-xs text-destructive bg-destructive/10 border border-destructive/30 rounded-md px-2 py-1`,children:d?.message||u?.error?.message})]}),(0,G.jsxs)(jx,{className:`gap-2 sm:gap-2`,children:[f&&(0,G.jsxs)(J,{type:`button`,variant:`ghost`,onClick:()=>p(),"data-testid":`export-progress-cancel`,children:[(0,G.jsx)(At,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`ml-1`,children:`Cancel`})]}),v&&(0,G.jsxs)(J,{type:`button`,variant:`default`,onClick:x,"data-testid":`export-progress-download`,children:[(0,G.jsx)(Vt,{className:`h-4 w-4`,"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`ml-1`,children:`Download`})]}),!f&&(0,G.jsx)(J,{type:`button`,variant:`outline`,onClick:()=>S(!1),"data-testid":`export-progress-close`,children:`Close`})]})]})})}K.register(`combobox`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(TT,{options:e.options||[],placeholder:e.placeholder,value:e.value,disabled:e.disabled,className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i})},{namespace:`ui`,label:`Combobox`,inputs:[{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`value`,type:`string`,label:`Value`},{name:`disabled`,type:`boolean`,label:`Disabled`,defaultValue:!1},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{placeholder:`Select option...`,options:[]}}),K.register(`command`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsxs)(Px,{className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:[(0,G.jsx)(Fx,{placeholder:e.placeholder||`Type a command or search...`}),(0,G.jsxs)(Ix,{children:[(0,G.jsx)(Lx,{children:e.emptyText||`No results found.`}),e.groups?.map((e,t)=>(0,G.jsx)(Rx,{heading:e.heading,children:e.items?.map((e,t)=>(0,G.jsx)(Bx,{value:e.value,children:e.label},t))},t))]})]})},{namespace:`ui`,label:`Command`,inputs:[{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`emptyText`,type:`string`,label:`Empty Text`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{placeholder:`Type a command or search...`,emptyText:`No results found.`,groups:[]}});var pE=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n,c=e.clickable||!!n.onClick;return(0,G.jsxs)(ex,{ref:r,className:q(t,(e.hoverable||c)&&`transition-colors hover:bg-muted/50`,c&&`cursor-pointer active:bg-muted`),...s,"data-obj-id":i,"data-obj-type":a,style:o,children:[(e.title||e.description||e.header)&&(0,G.jsxs)(tx,{children:[e.title&&(0,G.jsx)(nx,{children:e.title}),e.description&&(0,G.jsx)(rx,{children:e.description}),e.header&&gb(e.header)]}),(e.children||e.body)&&(0,G.jsx)(ix,{children:gb(e.children||e.body)}),e.footer&&(0,G.jsx)(ax,{className:`flex justify-between`,children:gb(e.footer)})]})});K.register(`card`,pE,{namespace:`ui`,label:`Card`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`Card Title`,description:`Card description goes here`,className:`w-full`},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:200,minHeight:100}}),K.register(`tabs`,({schema:e,className:t,onChange:n,value:r,...i})=>{let{"data-obj-id":a,"data-obj-type":o,style:s,...c}=i,l=e=>{n&&n(e)},u=e.orientation===`vertical`;return(0,G.jsxs)(Gw,{defaultValue:r===void 0?e.defaultValue:void 0,value:r??e.value,onValueChange:l,orientation:e.orientation||`horizontal`,className:q(t,u&&`flex gap-2`),...c,"data-obj-id":a,"data-obj-type":o,style:s,children:[(0,G.jsx)(Kw,{className:q(u&&`flex-col h-auto items-stretch bg-muted/50 p-1`),children:e.items?.map(e=>(0,G.jsx)(qw,{value:e.value,disabled:e.disabled,className:q(u&&`justify-start`),children:e.label},e.value))}),e.items?.map(e=>(0,G.jsx)(Jw,{value:e.value,className:q(`mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,u&&`mt-0 flex-1`),children:gb(e.content||e.body)},e.value))]})},{namespace:`ui`,label:`Tabs`,inputs:[{name:`defaultValue`,type:`string`,label:`Default Value`,required:!0},{name:`className`,type:`string`,label:`CSS Class`},{name:`items`,type:`array`,label:`Items`}],defaultProps:{defaultValue:`tab1`,items:[{label:`Tab 1`,value:`tab1`,body:[{type:`text`,content:`Content for Tab 1`}]},{label:`Tab 2`,value:`tab2`,body:[{type:`text`,content:`Content for Tab 2`}]},{label:`Tab 3`,value:`tab3`,body:[{type:`text`,content:`Content for Tab 3`}]}],className:`w-full`}});var mE={1:`grid-cols-1`,2:`grid-cols-2`,3:`grid-cols-3`,4:`grid-cols-4`,5:`grid-cols-5`,6:`grid-cols-6`,7:`grid-cols-7`,8:`grid-cols-8`,9:`grid-cols-9`,10:`grid-cols-10`,11:`grid-cols-11`,12:`grid-cols-12`},hE={1:`sm:grid-cols-1`,2:`sm:grid-cols-2`,3:`sm:grid-cols-3`,4:`sm:grid-cols-4`,5:`sm:grid-cols-5`,6:`sm:grid-cols-6`,7:`sm:grid-cols-7`,8:`sm:grid-cols-8`,9:`sm:grid-cols-9`,10:`sm:grid-cols-10`,11:`sm:grid-cols-11`,12:`sm:grid-cols-12`},gE={1:`md:grid-cols-1`,2:`md:grid-cols-2`,3:`md:grid-cols-3`,4:`md:grid-cols-4`,5:`md:grid-cols-5`,6:`md:grid-cols-6`,7:`md:grid-cols-7`,8:`md:grid-cols-8`,9:`md:grid-cols-9`,10:`md:grid-cols-10`,11:`md:grid-cols-11`,12:`md:grid-cols-12`},_E={1:`lg:grid-cols-1`,2:`lg:grid-cols-2`,3:`lg:grid-cols-3`,4:`lg:grid-cols-4`,5:`lg:grid-cols-5`,6:`lg:grid-cols-6`,7:`lg:grid-cols-7`,8:`lg:grid-cols-8`,9:`lg:grid-cols-9`,10:`lg:grid-cols-10`,11:`lg:grid-cols-11`,12:`lg:grid-cols-12`},vE={1:`xl:grid-cols-1`,2:`xl:grid-cols-2`,3:`xl:grid-cols-3`,4:`xl:grid-cols-4`,5:`xl:grid-cols-5`,6:`xl:grid-cols-6`,7:`xl:grid-cols-7`,8:`xl:grid-cols-8`,9:`xl:grid-cols-9`,10:`xl:grid-cols-10`,11:`xl:grid-cols-11`,12:`xl:grid-cols-12`},yE={0:`gap-0`,1:`gap-1`,2:`gap-2`,3:`gap-3`,4:`gap-4`,5:`gap-5`,6:`gap-6`,8:`gap-8`,10:`gap-10`,12:`gap-12`};K.register(`grid`,({schema:e,className:t,...n})=>{let r=2,i,a,o,s;typeof e.columns==`number`?r=e.columns:typeof e.columns==`object`&&e.columns!==null&&(r=e.columns.xs??1,i=e.columns.sm,a=e.columns.md,o=e.columns.lg,s=e.columns.xl),e.smColumns&&(i=e.smColumns),e.mdColumns&&(a=e.mdColumns),e.lgColumns&&(o=e.lgColumns),e.xlColumns&&(s=e.xlColumns);let c=e.gap??4,l=q(`grid`,mE[r]||`grid-cols-2`,i&&hE[i],a&&gE[a],o&&_E[o],s&&vE[s],yE[c]||`gap-[${c*.25}rem]`,t),{"data-obj-id":u,"data-obj-type":d,style:f,...p}=n;return(0,G.jsx)(`div`,{className:l,...p,"data-obj-id":u,"data-obj-type":d,style:f,children:e.children&&gb(e.children)})},{namespace:`ui`,label:`Grid Layout`,inputs:[{name:`columns`,type:`number`,label:`Base Columns (Mobile)`,defaultValue:2,description:`Number of columns on mobile devices`},{name:`smColumns`,type:`number`,label:`SM Columns (Tablet)`,description:`Columns at sm breakpoint (>640px)`},{name:`mdColumns`,type:`number`,label:`MD Columns (Laptop)`,description:`Columns at md breakpoint (>768px)`},{name:`lgColumns`,type:`number`,label:`LG Columns (Desktop)`,description:`Columns at lg breakpoint (>1024px)`},{name:`xlColumns`,type:`number`,label:`XL Columns (Wide)`,description:`Columns at xl breakpoint (>1280px)`},{name:`gap`,type:`number`,label:`Gap`,defaultValue:4,description:`Gap between items (0-12)`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{columns:1,mdColumns:2,lgColumns:4,gap:4,children:[{type:`card`,title:`Card 1`,description:`First card`},{type:`card`,title:`Card 2`,description:`Second card`},{type:`card`,title:`Card 3`,description:`Third card`},{type:`card`,title:`Card 4`,description:`Fourth card`}]},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:200,minHeight:100}}),K.register(`flex`,({schema:e,className:t,...n})=>{let r=e.direction||`row`,i=e.justify||`start`,a=e.align||`start`,o=e.gap||2,s=e.wrap||!1,c=q(`flex`,r===`row`&&`flex-row`,r===`col`&&`flex-col`,r===`row-reverse`&&`flex-row-reverse`,r===`col-reverse`&&`flex-col-reverse`,i===`start`&&`justify-start`,i===`end`&&`justify-end`,i===`center`&&`justify-center`,i===`between`&&`justify-between`,i===`around`&&`justify-around`,i===`evenly`&&`justify-evenly`,a===`start`&&`items-start`,a===`end`&&`items-end`,a===`center`&&`items-center`,a===`baseline`&&`items-baseline`,a===`stretch`&&`items-stretch`,o===0&&`gap-0`,o===1&&`gap-1`,o===2&&`gap-1.5 sm:gap-2`,o===3&&`gap-2 sm:gap-3`,o===4&&`gap-2 sm:gap-3 md:gap-4`,o===5&&`gap-3 sm:gap-4 md:gap-5`,o===6&&`gap-3 sm:gap-4 md:gap-6`,o===7&&`gap-4 sm:gap-5 md:gap-7`,o===8&&`gap-4 sm:gap-6 md:gap-8`,s&&`flex-wrap`,t),{"data-obj-id":l,"data-obj-type":u,style:d,...f}=n;return(0,G.jsx)(`div`,{className:c,...f,"data-obj-id":l,"data-obj-type":u,style:d,children:e.children&&gb(e.children)})},{namespace:`ui`,label:`Flex Layout`,inputs:[{name:`direction`,type:`enum`,enum:[`row`,`col`,`row-reverse`,`col-reverse`],label:`Direction`,defaultValue:`row`},{name:`justify`,type:`enum`,enum:[`start`,`end`,`center`,`between`,`around`,`evenly`],label:`Justify Content`,defaultValue:`start`},{name:`align`,type:`enum`,enum:[`start`,`end`,`center`,`baseline`,`stretch`],label:`Align Items`,defaultValue:`start`},{name:`gap`,type:`number`,label:`Gap`,defaultValue:2,description:`Gap between items (0-8)`},{name:`wrap`,type:`boolean`,label:`Wrap`,defaultValue:!1,description:`Allow flex items to wrap`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{direction:`row`,justify:`start`,align:`center`,gap:2,wrap:!1,children:[{type:`button`,label:`Button 1`},{type:`button`,label:`Button 2`},{type:`button`,label:`Button 3`}]}});var bE=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let i=e.direction||`col`,a=e.justify||`start`,o=e.align||`stretch`,s=e.gap??e.spacing??2,c=e.wrap||!1,l=q(`flex`,i===`row`&&`flex-row`,i===`col`&&`flex-col`,i===`row-reverse`&&`flex-row-reverse`,i===`col-reverse`&&`flex-col-reverse`,a===`start`&&`justify-start`,a===`end`&&`justify-end`,a===`center`&&`justify-center`,a===`between`&&`justify-between`,a===`around`&&`justify-around`,a===`evenly`&&`justify-evenly`,o===`start`&&`items-start`,o===`end`&&`items-end`,o===`center`&&`items-center`,o===`baseline`&&`items-baseline`,o===`stretch`&&`items-stretch`,s===0&&`gap-0`,s===1&&`gap-1`,s===2&&`gap-1.5 sm:gap-2`,s===3&&`gap-2 sm:gap-3`,s===4&&`gap-2 sm:gap-3 md:gap-4`,s===5&&`gap-3 sm:gap-4 md:gap-5`,s===6&&`gap-3 sm:gap-4 md:gap-6`,s===8&&`gap-4 sm:gap-6 md:gap-8`,s===10&&`gap-5 sm:gap-7 md:gap-10`,c&&`flex-wrap`,t),{"data-obj-id":u,"data-obj-type":d,style:f,...p}=n;return(0,G.jsx)(`div`,{ref:r,className:l,...p,"data-obj-id":u,"data-obj-type":d,style:f,children:e.children&&gb(e.children)})});K.register(`stack`,bE,{namespace:`ui`,label:`Stack`,inputs:[{name:`direction`,type:`enum`,label:`Direction`,enum:[`col`,`row`,`col-reverse`,`row-reverse`],defaultValue:`col`},{name:`gap`,type:`number`,label:`Gap`,defaultValue:2},{name:`align`,type:`enum`,label:`Align Items`,enum:[`start`,`end`,`center`,`stretch`,`baseline`],defaultValue:`stretch`},{name:`justify`,type:`enum`,label:`Justify Content`,enum:[`start`,`end`,`center`,`between`,`around`,`evenly`],defaultValue:`start`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{direction:`col`,gap:2,align:`stretch`,children:[]},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:100,minHeight:50}});var xE=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let i=e.maxWidth||`xl`,a=e.padding||4,o=e.centered!==!1,s=q(`w-full`,i===`sm`&&`max-w-sm`,i===`md`&&`max-w-md`,i===`lg`&&`max-w-lg`,i===`xl`&&`max-w-xl`,i===`2xl`&&`max-w-2xl`,i===`3xl`&&`max-w-3xl`,i===`4xl`&&`max-w-4xl`,i===`5xl`&&`max-w-5xl`,i===`6xl`&&`max-w-6xl`,i===`7xl`&&`max-w-7xl`,i===`full`&&`max-w-full`,i===`screen`&&`max-w-screen-2xl`,o&&`mx-auto`,a===0&&`p-0`,a===1&&`p-0.5 sm:p-1`,a===2&&`p-1 sm:p-2`,a===3&&`p-2 sm:p-3`,a===4&&`p-2 sm:p-3 md:p-4`,a===5&&`p-3 sm:p-4 md:p-5`,a===6&&`p-3 sm:p-4 md:p-6`,a===7&&`p-4 sm:p-5 md:p-7`,a===8&&`p-4 sm:p-6 md:p-8`,a===10&&`p-5 sm:p-7 md:p-10`,a===12&&`p-6 sm:p-8 md:p-12`,a===16&&`p-8 sm:p-10 md:p-16`,t),{"data-obj-id":c,"data-obj-type":l,style:u,...d}=n;return(0,G.jsx)(`div`,{ref:r,className:s,...d,"data-obj-id":c,"data-obj-type":l,style:u,children:e.children&&gb(e.children)})});K.register(`container`,xE,{namespace:`ui`,label:`Container`,inputs:[{name:`maxWidth`,type:`enum`,enum:[`sm`,`md`,`lg`,`xl`,`2xl`,`3xl`,`4xl`,`5xl`,`6xl`,`7xl`,`full`,`screen`],label:`Max Width`,defaultValue:`xl`},{name:`padding`,type:`number`,label:`Padding`,defaultValue:4,description:`Padding value (0, 1-8, 10, 12, 16)`},{name:`centered`,type:`boolean`,label:`Center Horizontally`,defaultValue:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{maxWidth:`xl`,padding:4,centered:!0,children:[{type:`text`,content:`Container content goes here`}]},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:200,minHeight:100}});function SE(e){switch(e){case`small`:return`w-64`;case`medium`:return`w-80`;case`large`:return`w-96`;case`full`:return`w-full`;default:return e||`w-full`}}function CE(e){switch(e){case`utility`:return`max-w-4xl`;case`home`:return`max-w-screen-2xl`;case`app`:return`max-w-screen-xl`;default:return`max-w-7xl`}}function wE(e,t){return e?.find(e=>e.name?.toLowerCase()===t.toLowerCase())}function TE(e,t){if(!e)return[];let n=new Set(t.map(e=>e.toLowerCase()));return e.filter(e=>!n.has(e.name?.toLowerCase()??``))}var EE=({region:e,className:t})=>{let n=e.components||[];return n.length===0?null:(0,G.jsx)(`div`,{className:q(`space-y-4`,e.className,t),"data-region":e.name,children:n.map((t,n)=>(0,G.jsx)(zl,{schema:t},t?.id||`${e.name}-${n}`))})},DE=({regions:e,pageType:t,className:n})=>{let r=wE(e,`header`),i=wE(e,`sidebar`),a=wE(e,`main`),o=wE(e,`aside`),s=wE(e,`footer`),c=TE(e,[`header`,`sidebar`,`main`,`aside`,`footer`]);return r||i||a||o||s?(0,G.jsxs)(`div`,{className:q(`flex flex-col gap-6`,n),"data-page-layout":t,children:[r&&(0,G.jsx)(EE,{region:r,className:q(SE(r.width))}),(0,G.jsxs)(`div`,{className:`flex flex-1 gap-6`,children:[i&&(0,G.jsx)(`aside`,{className:q(`shrink-0`,SE(i.width||`small`)),children:(0,G.jsx)(EE,{region:i})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-6`,children:[a&&(0,G.jsx)(EE,{region:a}),c.map((e,t)=>(0,G.jsx)(EE,{region:e},e.name||`extra-${t}`))]}),o&&(0,G.jsx)(`aside`,{className:q(`shrink-0`,SE(o.width||`small`),o.className),children:(0,G.jsx)(EE,{region:o})})]}),s&&(0,G.jsx)(EE,{region:s,className:q(SE(s.width))})]}):(0,G.jsx)(`div`,{className:q(`space-y-6`,n),"data-page-layout":t,children:e.map((e,t)=>(0,G.jsx)(EE,{region:e},e.name||t))})},OE=({schema:e})=>{let t=e.body||e.children,n=Array.isArray(t)?t:t?[t]:[];return n.length===0?null:(0,G.jsx)(`div`,{className:`space-y-6`,children:n.map((e,t)=>(0,G.jsx)(zl,{schema:e},e?.id||t))})},kE=({schema:e})=>e.regions&&e.regions.length>0?(0,G.jsx)(DE,{regions:e.regions,pageType:e.pageType}):(0,G.jsx)(OE,{schema:e}),AE={default:kE,"full-width":kE,"header-sidebar-main":({schema:e})=>{let t=e.regions||[];if(t.length===0)return(0,G.jsx)(OE,{schema:e});let n=wE(t,`header`),r=wE(t,`sidebar`),i=wE(t,`main`),a=TE(t,[`header`,`sidebar`,`main`]);return(0,G.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-template":`header-sidebar-main`,children:[n&&(0,G.jsx)(EE,{region:n}),(0,G.jsxs)(`div`,{className:`flex flex-1 gap-6`,children:[r&&(0,G.jsx)(`aside`,{className:q(`shrink-0`,SE(r.width||`medium`)),children:(0,G.jsx)(EE,{region:r})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-6`,children:[i&&(0,G.jsx)(EE,{region:i}),a.map((e,t)=>(0,G.jsx)(EE,{region:e},e.name||`extra-${t}`))]})]})]})},"three-column":({schema:e})=>{let t=e.regions||[];if(t.length===0)return(0,G.jsx)(OE,{schema:e});let n=wE(t,`header`),r=wE(t,`sidebar`),i=wE(t,`main`),a=wE(t,`aside`),o=wE(t,`footer`),s=TE(t,[`header`,`sidebar`,`main`,`aside`,`footer`]);return(0,G.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-template":`three-column`,children:[n&&(0,G.jsx)(EE,{region:n}),(0,G.jsxs)(`div`,{className:`flex flex-1 gap-6`,children:[r&&(0,G.jsx)(`aside`,{className:q(`shrink-0`,SE(r.width||`small`)),children:(0,G.jsx)(EE,{region:r})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-6`,children:[i&&(0,G.jsx)(EE,{region:i}),s.map((e,t)=>(0,G.jsx)(EE,{region:e},e.name||`extra-${t}`))]}),a&&(0,G.jsx)(`aside`,{className:q(`shrink-0`,SE(a.width||`small`),a.className),children:(0,G.jsx)(EE,{region:a})})]}),o&&(0,G.jsx)(EE,{region:o})]})},dashboard:({schema:e})=>{let t=e.regions||[];if(t.length===0)return(0,G.jsx)(OE,{schema:e});let n=wE(t,`header`),r=wE(t,`footer`),i=TE(t,[`header`,`footer`]);return(0,G.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-template":`dashboard`,children:[n&&(0,G.jsx)(EE,{region:n}),(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:i.map((e,t)=>(0,G.jsx)(EE,{region:e},e.name||`region-${t}`))}),r&&(0,G.jsx)(EE,{region:r})]})}};function jE(e){return e.template&&AE[e.template]||null}var ME=({schema:e})=>e.regions&&e.regions.length>0?(0,G.jsx)(DE,{regions:e.regions,pageType:`record`}):(0,G.jsx)(OE,{schema:e}),NE=({schema:e})=>e.regions&&e.regions.length>0?(0,G.jsx)(DE,{regions:e.regions,pageType:`home`}):(0,G.jsx)(OE,{schema:e}),PE=({schema:e})=>e.regions&&e.regions.length>0?(0,G.jsx)(DE,{regions:e.regions,pageType:`app`}):(0,G.jsx)(OE,{schema:e}),FE=({schema:e})=>e.regions&&e.regions.length>0?(0,G.jsx)(DE,{regions:e.regions,pageType:`utility`}):(0,G.jsx)(OE,{schema:e}),IE=({schema:e,className:t,...n})=>{let r=e.pageType||`record`,{"data-obj-id":i,"data-obj-type":a,style:o,pageType:s,schema:c,regions:l,template:u,title:d,icon:f,description:p,object:m,variables:h,blankLayout:g,body:_,isDefault:v,assignedProfiles:y,aria:b,recordOverride:x,permissions:S,requiredPermissions:C,enforceFieldSecurity:w,redactFields:T,children:E,...ee}=n,D=Object.fromEntries(Object.entries(ee).filter(([e])=>!e.startsWith(`_`))),O=(0,W.useMemo)(()=>{let t=jE(e);if(t)return(0,G.jsx)(t,{schema:e});switch(r){case`home`:return(0,G.jsx)(NE,{schema:e});case`app`:return(0,G.jsx)(PE,{schema:e});case`utility`:return(0,G.jsx)(FE,{schema:e});default:return(0,G.jsx)(ME,{schema:e})}},[e,r]),k=(0,G.jsx)(`div`,{className:q(`min-h-full w-full bg-background p-3 md:p-4 lg:p-6`,t),"data-page-type":r,"data-obj-id":i,"data-obj-type":a,style:o,...D,children:(0,G.jsxs)(`div`,{className:q(`mx-auto space-y-6`,CE(r)),children:[r!==`record`&&(e.title||e.description)&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[e.title&&(0,G.jsx)(`h1`,{className:`text-3xl font-bold tracking-tight text-foreground`,children:e.title}),e.description&&(0,G.jsx)(`p`,{className:`text-muted-foreground`,children:e.description})]}),O]})});return e.variables&&e.variables.length>0?(0,G.jsx)(Gl,{definitions:e.variables,children:k}):k},LE={namespace:`ui`,label:`Page`,icon:`Layout`,category:`layout`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`pageType`,type:`string`,label:`Page Type`},{name:`object`,type:`string`,label:`Object Name`},{name:`template`,type:`string`,label:`Template`},{name:`regions`,type:`array`,label:`Regions`,itemType:`object`},{name:`variables`,type:`array`,label:`Variables`,itemType:`object`},{name:`body`,type:`array`,label:`Content (Legacy)`,itemType:`component`}]};K.register(`page`,IE,LE),K.register(`app`,IE,{...LE,label:`App Page`}),K.register(`utility`,IE,{...LE,label:`Utility Page`}),K.register(`home`,IE,{...LE,label:`Home Page`}),K.register(`record`,IE,{...LE,label:`Record Page`});function RE(e){return e.includes(`-`)?e.toLowerCase():e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).toLowerCase()}var zE=new Set(tn);function BE(e){return zE.has(e)}var VE=new Map;function HE(e){if(!e)return Cn;let t=VE.get(e);if(t)return t;let n=RE(e);if(!BE(n))return VE.set(e,Cn),Cn;let r=e=>W.createElement(hn,{name:n,fallback:Cn,...e});return r.displayName=`LucideIcon(${e})`,VE.set(e,r),r}var UE=({name:e,...t})=>{if(!e)return W.createElement(Cn,t);let n=RE(e);return BE(n)?W.createElement(hn,{name:n,fallback:Cn,...t}):W.createElement(Cn,t)},WE=new Map,GE=new Map,KE=new Set;function qE(e,t,n){return`${e}::${t??``}::${n??``}`}function JE(){for(let e of KE)e()}function YE(e,t,n){return WE.get(qE(e,t,n))}function XE(e,t,n,r){let i=qE(e,t,n);WE.get(i)!==r&&(WE.set(i,r),JE())}async function ZE(e,t,n,r){let i=qE(t,n,r),a=WE.get(i);if(a!==void 0)return a;let o=GE.get(i);if(o)return o;let s=(async()=>{let a={};if(n){if(!r)return 0;a[n]=r}try{let i=await e(t,{$filter:a,$top:1}),o=typeof i?.total==`number`?i.total:Array.isArray(i?.data)?i.data.length:Array.isArray(i)?i.length:0,s=typeof o==`number`?o:0;return XE(t,n,r,s),s}catch{return 0}finally{GE.delete(i)}})();return GE.set(i,s),s}function QE(e,t){let n=!1,r=`${e}::`;for(let e of WE.keys())e.startsWith(r)&&(t!==void 0&&!e.endsWith(`::${t}`)||(WE.delete(e),n=!0));n&&JE()}function $E(){WE.size!==0&&(WE.clear(),JE())}function eD(e){return KE.add(e),()=>{KE.delete(e)}}function tD(){return WE}function nD(e,t,n){if((0,W.useSyncExternalStore)(eD,tD,tD),e)return YE(e,t,n)}var rD={get:YE,set:XE,fetch:ZE,invalidate:QE,invalidateAll:$E,_reset:()=>{WE.clear(),GE.clear(),JE()}},iD=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},aD=e=>e==null?``:typeof e==`string`?e:typeof e==`object`?e.default||e.value||``:String(e),oD={"zh-CN":{Details:`详情`,Related:`相关`,Activity:`活动`,History:`历史`,Notes:`备注`,Files:`文件`,Tasks:`任务`,"Open Tasks":`待办任务`,"Closed Tasks":`已完成任务`,Events:`日程`,Attachments:`附件`,Chatter:`讨论`,Discussion:`讨论`,Comments:`评论`,Overview:`概览`,Summary:`摘要`,Quotes:`报价单`,Products:`产品`,Contacts:`联系人`,Accounts:`客户`,Leads:`线索`,Opportunities:`商机`,Cases:`服务案例`,Campaigns:`营销活动`,Approvals:`审批`,Documents:`文档`,Emails:`邮件`,Calls:`通话`,Meetings:`会议`},"zh-TW":{Details:`詳情`,Related:`相關`,Activity:`活動`,History:`歷史`,Notes:`備註`,Files:`檔案`,Tasks:`任務`,"Open Tasks":`待辦任務`,"Closed Tasks":`已完成任務`,Events:`行程`,Attachments:`附件`,Chatter:`討論`,Discussion:`討論`,Comments:`評論`,Overview:`概覽`,Summary:`摘要`,Quotes:`報價單`,Products:`產品`,Contacts:`聯絡人`,Accounts:`客戶`,Leads:`線索`,Opportunities:`商機`,Cases:`服務案例`,Campaigns:`行銷活動`,Approvals:`審批`,Documents:`文件`,Emails:`郵件`,Calls:`通話`,Meetings:`會議`}},sD=()=>{if(typeof document<`u`){let e=document.documentElement?.lang;if(e)return e}return typeof navigator<`u`&&navigator.language?navigator.language:`en`},cD=e=>{if(!e)return e;let t=sD(),n=oD[t],r=t.split(`-`)[0]===`zh`?oD[`zh-CN`]:void 0,i=n||r;if(!i)return e;if(i[e]!==void 0)return i[e];let a=/\s*(?:&|and|和)\s*/i;if(a.test(e)){let n=e.split(a);if(n.every(e=>i[e.trim()]!==void 0)){let e=t.startsWith(`zh`)?`与`:` & `;return n.map(e=>i[e.trim()]).join(e)}}return e},lD=(e,t,n,r,i)=>!e||typeof e!=`string`?e||``:e.includes(`{`)?e.replace(/\{([a-zA-Z0-9_.]+)\}/g,(e,a)=>{let o=a.split(`.`).reduce((e,t)=>e==null?e:e[t],t);if(o==null||typeof o==`object`)return``;let s=String(o);if(n?.fields&&r&&i&&!a.includes(`.`)){let e=(Array.isArray(n.fields)?n.fields.find(e=>e?.name===a):n.fields[a])?.options;if(Array.isArray(e)){let t=e.find(e=>String(e?.value??e)===s);return r(i,a,s,t?.label?String(t.label):s)}}return s}).replace(/\s+/g,` `).trim():e,uD=e=>{let t=typeof e==`number`?e:Number(e);return Number.isFinite(t)?t>=1e4?`${Math.round(t/1e3)}k`:t>=1e3?`${(t/1e3).toFixed(1).replace(/\.0$/,``)}k`:String(t):String(e)},dD=(e,t=[])=>{if(!e)return t;let n=Array.isArray(e)?e:[e];for(let e of n){if(!e||typeof e!=`object`)continue;if(e.type===`record:related_list`||e.type===`record_related_list`){t.push(e);continue}let n=[e.children,e.properties?.children,e.properties?.items,e.body,e.items];for(let e of n)e&&dD(e,t)}return t};K.register(`page:tabs`,({schema:e,className:t,...n})=>{let{designer:r}=iD(n),i=e?.items||[],a=e?.properties?.type||e?.tabStyle||`line`,o=(e?.position||`top`)===`left`,s=du(),c=s?.data?.id,l=s?.dataSource;nD(void 0,void 0,c);let u=W.useMemo(()=>{let e=new Map;return i.forEach((t,n)=>{if(t.count!==void 0&&t.count!==null&&t.count!==``)return;let r=dD(t.children),i=[];for(let e of r){let t=e?.properties?.objectName||e?.objectName;if(!t)continue;let n=e?.properties?.relationshipField||e?.relationshipField;i.push({objectName:t,relationshipField:n})}i.length>0&&e.set(n,i)}),e},[i]);W.useEffect(()=>{if(!l||typeof l.find!=`function`||u.size===0)return;let e=!1;for(let t of u.values())for(let n of t)if(rD.fetch((e,t)=>l.find(e,t),n.objectName,n.relationshipField,c).catch(()=>0),e)return;return()=>{e=!0}},[l,u,c]);let d=e=>{let t=u.get(e);if(!t||t.length===0)return;let n=0,r=!1;for(let e of t){let t=rD.get(e.objectName,e.relationshipField,c);t!==void 0&&(n+=t,r=!0)}return r?n:void 0},f=i.map((e,t)=>({...e,value:`tab-${t}`,labelStr:cD(aD(e.label)),count:e.count!==void 0&&e.count!==null&&e.count!==``?e.count:d(t)})),p=f[0]?.value,m=q(o&&`flex-col h-auto items-stretch p-1`,a===`card`&&`bg-transparent gap-1`,a===`pill`&&`bg-muted rounded-full p-1 gap-1`,a===`line`&&!o&&`h-auto rounded-none bg-transparent p-0 gap-4 border-b border-border w-full justify-start`,!o&&`sticky top-0 z-20 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60`),h=()=>q(o&&`justify-start`,a===`card`&&`data-[state=active]:bg-background data-[state=active]:border data-[state=active]:shadow-sm rounded-md`,a===`pill`&&`rounded-full data-[state=active]:bg-background`,a===`line`&&!o&&`rounded-none border-b-2 border-transparent bg-transparent px-1 pb-2.5 -mb-px shadow-none data-[state=active]:border-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none data-[state=active]:text-foreground`);return(0,G.jsxs)(Gw,{defaultValue:p,orientation:o?`vertical`:`horizontal`,className:q(t,o&&`flex gap-4 w-full`),...r,children:[(f.length>1||e?.properties?.alwaysShowStrip===!0)&&(0,G.jsx)(Kw,{className:m,children:f.map(e=>(0,G.jsxs)(qw,{value:e.value,className:h(),children:[e.icon&&(0,G.jsx)(UE,{name:e.icon,className:`mr-1.5 h-3.5 w-3.5 shrink-0 opacity-70`,"aria-hidden":!0}),(0,G.jsx)(`span`,{children:e.labelStr}),e.count!==void 0&&e.count!==null&&e.count!==``&&Number(e.count)>0&&(0,G.jsx)(`span`,{className:`ml-1.5 inline-flex h-4 min-w-[1rem] items-center justify-center rounded-full bg-muted px-1 text-[10px] font-medium leading-none text-muted-foreground`,"aria-label":`${uD(e.count)} items`,children:uD(e.count)})]},e.value))}),f.map(e=>(0,G.jsx)(Jw,{value:e.value,className:q(f.length>1?`mt-3`:`mt-0`,o&&`mt-0 flex-1`),children:gb(e.children)},e.value))]})},{namespace:`page`,label:`Page Tabs`,category:`layout`,isContainer:!0}),K.register(`page:card`,({schema:e,className:t,...n})=>{let{designer:r}=iD(n),i=aD(e?.title),a=e?.bordered!==!1,o=e?.body,s=e?.footer;return(0,G.jsxs)(ex,{className:q(t,!a&&`border-0 shadow-none bg-transparent`),...r,children:[i&&(0,G.jsx)(tx,{children:(0,G.jsx)(nx,{children:i})}),o&&(0,G.jsx)(ix,{children:gb(o)}),s&&(0,G.jsx)(ax,{className:`flex justify-between`,children:gb(s)})]})},{namespace:`page`,label:`Page Card`,category:`layout`,isContainer:!0}),K.register(`page:accordion`,({schema:e,className:t,...n})=>{let{designer:r}=iD(n),i=e?.items||[],a=!!e?.allowMultiple,o=(e?.variant??e?.properties?.variant??`flush`)===`flush`?`border-b last:border-b-0`:void 0,s=i.map((e,t)=>({...e,value:`panel-${t}`,labelStr:cD(aD(e.label))})),c=s.filter(e=>e.collapsed===!1).map(e=>e.value),l=s.map(e=>(0,G.jsxs)(bb,{value:e.value,className:o,children:[(0,G.jsx)(xb,{className:`text-sm font-semibold tracking-tight hover:no-underline`,children:e.labelStr}),(0,G.jsx)(Sb,{children:gb(e.children)})]},e.value));return a?(0,G.jsx)(yb,{type:`multiple`,defaultValue:c,className:t,...r,children:l}):(0,G.jsx)(yb,{type:`single`,collapsible:!0,defaultValue:c[0],className:t,...r,children:l})},{namespace:`page`,label:`Page Accordion`,category:`layout`,isContainer:!0}),K.register(`page:section`,({schema:e,className:t,...n})=>{let{designer:r}=iD(n);return(0,G.jsx)(`section`,{className:q(`space-y-4`,t),...r,children:gb(e?.children||e?.body)})},{namespace:`page`,label:`Page Section`,category:`layout`,isContainer:!0});function fD(e){if(!e)return e;let t=e;for(let e=0;e<4;e+=1){let e=t.replace(/[\s\u00A0]*[-·:|/–—][\s\u00A0]*$/u,``).trimEnd();if(e===t)break;t=e}for(let e=0;e<4;e+=1){let e=t.replace(/^[\s\u00A0]*[-·:|/–—][\s\u00A0]*/u,``).trimStart();if(e===t)break;t=e}return t=t.replace(/([-·:|/–—])[\s\u00A0]*\1/gu,`$1`),t=t.replace(/[\s\u00A0]+/g,` `).trim(),t}K.register(`page:header`,({schema:e,className:t,...n})=>{let{designer:r}=iD(n),i=du(),{execute:a}=$l(),{objectLabel:o,actionLabel:s}=vu(),{fieldOptionLabel:c}=bu(),l=e?.title??e?.properties?.title,u=e?.subtitle??e?.properties?.subtitle,d=i?.objectSchema,f=i?.objectName||d?.name,p=lD(aD(l),i?.data,d,c,f),m=lD(aD(u),i?.data,d,c,f),h=(e?.breadcrumb??e?.properties?.breadcrumb)!==!1,g=e?.recordChrome===!1||e?.properties?.recordChrome===!1,_=e?.showStar!==!1&&e?.properties?.showStar!==!1,v=e?.showCopyId!==!1&&e?.properties?.showCopyId!==!1,y=e?.actions??e?.properties?.actions,b=i?.headerSystemActions,x=W.useMemo(()=>{let e=i?.data,t=new $c({record:e,data:e}),n=e=>{try{return t.evaluateExpression(e)}catch{return}},r=e=>{if(Array.isArray(e?.locations)&&e.locations.length>0&&!e.locations.includes(`record_header`))return!1;let t=e?.visible;if(t!=null)if(typeof t==`boolean`){if(!t)return!1}else{let e=typeof t==`string`?t:t&&typeof t==`object`&&typeof t.source==`string`?t.source:null;if(e&&!n(e))return!1}let r=e?.hidden;if(r!=null)if(typeof r==`boolean`){if(r)return!1}else{let e=typeof r==`string`?r:r&&typeof r==`object`&&typeof r.source==`string`?r.source:null;if(e&&n(e))return!1}return!0},a=Array.isArray(y)?y.filter(r):[],o=Array.isArray(b)?b.filter(r):[],s=new Set,c=[];for(let e of[...a,...o]){let t=e?.name||e?.id||``;t&&s.has(t)||(t&&s.add(t),c.push(e))}return c},[y,b,i?.data]),S=()=>{if(x.length===0)return null;let e=(e,t)=>{let n=e?.name||e?.id,r=e?.label||n||`Action ${t+1}`;return n?s(i?.objectName,n,r):r},t=x.length>2,n=t?x.slice(0,1):x,r=t?x.slice(1):[];return(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 shrink-0`,role:`toolbar`,"aria-label":`Page header actions`,children:[n.map((t,n)=>{let r=e(t,n),i=t.variant||`default`,o=t.size||`sm`,s=typeof t.disabled==`boolean`?t.disabled:void 0,c=typeof t.icon==`string`?t.icon:null;return(0,G.jsxs)(J,{variant:i,size:o,disabled:s,className:`gap-2`,onClick:()=>{if(typeof t.onClick==`function`){t.onClick();return}a(t)},children:[c&&(0,G.jsx)(UE,{name:c,className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:r})]},t.name||t.id||`header-action-${n}`)}),t&&(0,G.jsxs)(uS,{children:[(0,G.jsx)(dS,{asChild:!0,children:(0,G.jsx)(J,{variant:`outline`,size:`sm`,className:`gap-1 px-2`,"aria-label":`More actions`,children:(0,G.jsx)($t,{className:`h-4 w-4`})})}),(0,G.jsx)(hS,{align:`end`,className:`w-44`,children:r.map((t,n)=>{let r=e(t,n+1),i=typeof t.disabled==`boolean`?t.disabled:void 0,o=typeof t.icon==`string`?t.icon:null;return(0,G.jsxs)(gS,{disabled:i,onSelect:e=>{if(e.preventDefault(),typeof t.onClick==`function`){t.onClick();return}a(t)},className:q(`gap-2`,(t.variant===`destructive`||t.name===`sys_delete`)&&`text-destructive focus:text-destructive focus:bg-destructive/10`),children:[o&&(0,G.jsx)(UE,{name:o,className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:r})]},t.name||t.id||`overflow-action-${n}`)})})]})]})};if(i?.data&&i?.objectSchema&&!g){let e=i.data,n=i.objectSchema,a=i.objectName||n?.name,s=aD(n?.label)||n?.name||i.objectName||``,l=a?o({name:a,label:s}):s||void 0,u=n?.primaryField,d=n?.titleFormat,f=typeof d==`string`?d:d&&typeof d==`object`&&typeof d.source==`string`?d.source:void 0,g=f?fD(lD(f,e,n,c,a).trim()):``,y=p||u&&e?.[u]||(g&&!g.includes(`{`)?g:``)||e?.name||e?.full_name||e?.title||e?.subject||e?.display_name||e?.label||(l&&e?.id?`${l} ${String(e.id).slice(0,8)}`:``)||l||``;return(0,G.jsxs)(`header`,{className:q(`flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 sm:gap-4 pb-4 border-b`,t),...r,children:[(0,G.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[h&&(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground mb-1`,"data-page-breadcrumb-slot":!0}),(0,G.jsx)(aE,{title:y,objectLabel:l,resourceId:e?.id?String(e.id):void 0,showStar:_,showCopyId:v,isFavorite:i?.isFavorite,onToggleFavorite:i?.onToggleFavorite?()=>i.onToggleFavorite():void 0}),m&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:m})]}),S()??(0,G.jsx)(`div`,{"data-page-actions-slot":!0,className:`shrink-0`})]})}return(0,G.jsxs)(`header`,{className:q(`flex flex-col gap-2 pb-4 border-b`,t),...r,children:[h&&(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground`,"data-page-breadcrumb-slot":!0}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col`,children:[p&&(0,G.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight`,children:p}),m&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m})]}),S()??(0,G.jsx)(`div`,{"data-page-actions-slot":!0})]})]})},{namespace:`page`,label:`Page Header`,category:`layout`}),K.register(`page:footer`,({schema:e,className:t,...n})=>{let{designer:r}=iD(n);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(LC,{className:`my-4`}),(0,G.jsx)(`footer`,{className:q(`flex items-center justify-between text-sm text-muted-foreground`,t),...r,children:gb(e?.children||e?.body)})]})},{namespace:`page`,label:`Page Footer`,category:`layout`,isContainer:!0}),K.register(`page:sidebar`,({schema:e,className:t,...n})=>{let{designer:r}=iD(n);return(0,G.jsx)(`aside`,{className:q(`flex flex-col gap-4 w-full md:w-80 shrink-0`,t),...r,children:gb(e?.children||e?.body)})},{namespace:`page`,label:`Page Sidebar`,category:`layout`,isContainer:!0}),[`aside`,`main`,`header`,`nav`,`footer`,`section`,`article`].forEach(e=>{let t=(0,W.forwardRef)(({schema:t,className:n,...r},i)=>{let{"data-obj-id":a,"data-obj-type":o,style:s,...c}=r;return(0,G.jsx)(e,{ref:i,className:n,...c,"data-obj-id":a,"data-obj-type":o,style:s,children:gb(t.children||t.body)})});t.displayName=`Semantic${e.charAt(0).toUpperCase()+e.slice(1)}`,K.register(e,t,{namespace:`ui`,label:e.charAt(0).toUpperCase()+e.slice(1),category:`layout`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}]})}),K.register(`aspect-ratio`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(zb,{ratio:e.ratio||16/9,className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.image?(0,G.jsx)(`img`,{src:e.image,alt:e.alt||``,loading:`lazy`,className:`rounded-md object-cover w-full h-full`}):gb(e.children||e.body)})},{namespace:`ui`,label:`Aspect Ratio`,inputs:[{name:`ratio`,type:`number`,label:`Ratio`,defaultValue:16/9},{name:`image`,type:`string`,label:`Image URL`},{name:`alt`,type:`string`,label:`Alt Text`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{ratio:16/9}}),K.register(`sidebar-provider`,({schema:e,...t})=>(0,G.jsx)(uw,{...t,children:gb(e.body)}),{namespace:`ui`,label:`Sidebar Provider`,inputs:[{name:`defaultOpen`,type:`boolean`,label:`Default Open`,defaultValue:!0}],defaultProps:{defaultOpen:!0},defaultChildren:[{type:`sidebar`},{type:`sidebar-inset`}]}),K.register(`sidebar`,({schema:e,...t})=>(0,G.jsx)(dw,{...t,children:gb(e.body)}),{namespace:`ui`,label:`Sidebar`,inputs:[{name:`collapsible`,type:`enum`,enum:[`offcanvas`,`icon`,`none`],defaultValue:`icon`,label:`Collapsible`},{name:`side`,type:`enum`,enum:[`left`,`right`],defaultValue:`left`,label:`Side`},{name:`variant`,type:`enum`,enum:[`sidebar`,`floating`,`inset`],defaultValue:`sidebar`,label:`Variant`}],defaultProps:{collapsible:`icon`,side:`left`,variant:`sidebar`},defaultChildren:[{type:`sidebar-header`},{type:`sidebar-content`},{type:`sidebar-footer`}]}),K.register(`sidebar-header`,({schema:e,...t})=>(0,G.jsx)(gw,{...t,children:gb(e.body)}),{namespace:`ui`,label:`Sidebar Header`,defaultChildren:[{type:`text`,content:`Sidebar Header`}]}),K.register(`sidebar-content`,({schema:e,...t})=>(0,G.jsx)(yw,{...t,children:gb(e.body)}),{namespace:`ui`,label:`Sidebar Content`,defaultChildren:[{type:`sidebar-group`}]}),K.register(`sidebar-group`,({schema:e,...t})=>(0,G.jsxs)(bw,{...t,children:[e.label&&(0,G.jsx)(xw,{children:e.label}),(0,G.jsx)(Cw,{children:gb(e.body)})]}),{namespace:`ui`,label:`Sidebar Group`,inputs:[{name:`label`,type:`string`,label:`Label`}],defaultProps:{label:`Menu`},defaultChildren:[{type:`sidebar-menu`}]}),K.register(`sidebar-menu`,({schema:e,...t})=>(0,G.jsx)(ww,{...t,children:gb(e.body)}),{namespace:`ui`,label:`Sidebar Menu`,defaultChildren:[{type:`sidebar-menu-item`},{type:`sidebar-menu-item`}]}),K.register(`sidebar-menu-item`,({schema:e,...t})=>(0,G.jsx)(Tw,{...t,children:gb(e.body)}),{namespace:`ui`,label:`Sidebar Menu Item`,defaultChildren:[{type:`sidebar-menu-button`}]}),K.register(`sidebar-menu-button`,({schema:e,...t})=>(0,G.jsx)(Dw,{isActive:e.active,...t,children:gb(e.body)}),{namespace:`ui`,label:`Sidebar Menu Button`,inputs:[{name:`active`,type:`boolean`,label:`Active`,defaultValue:!1},{name:`size`,type:`enum`,enum:[`default`,`sm`,`lg`],defaultValue:`default`,label:`Size`},{name:`tooltip`,type:`string`,label:`Tooltip`}],defaultProps:{size:`default`},defaultChildren:[{type:`text`,content:`Menu Item`}]}),K.register(`sidebar-footer`,({schema:e,...t})=>(0,G.jsx)(_w,{...t,children:gb(e.body)}),{namespace:`ui`,label:`Sidebar Footer`,defaultChildren:[{type:`text`,content:`Footer`}]}),K.register(`sidebar-inset`,({schema:e,...t})=>(0,G.jsx)(mw,{...t,children:gb(e.body)}),{namespace:`ui`,label:`Sidebar Inset`,defaultChildren:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Main content area`}]}]}),K.register(`sidebar-trigger`,({className:e,...t})=>(0,G.jsx)(fw,{className:e,...t}),{namespace:`ui`,label:`Sidebar Trigger`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}]});function pD({crumb:e,isLast:t}){let n=Nl(e.label)??``;return e.siblings&&e.siblings.length>0?(0,G.jsxs)(uS,{children:[(0,G.jsxs)(dS,{className:`flex items-center gap-1`,children:[t?(0,G.jsx)(`span`,{className:`font-semibold`,children:n}):(0,G.jsx)(`span`,{children:n}),(0,G.jsx)(nt,{className:`h-3 w-3`})]}),(0,G.jsx)(hS,{align:`start`,children:e.siblings.map((e,t)=>(0,G.jsx)(gS,{asChild:!0,children:(0,G.jsx)(`a`,{href:e.href,children:e.label})},t))})]}):t?(0,G.jsx)(Yb,{children:n}):(0,G.jsx)(Jb,{href:e.href||`#`,children:n})}K.register(`header-bar`,({schema:e})=>(0,G.jsxs)(`header`,{className:`flex h-14 sm:h-16 shrink-0 items-center gap-2 border-b px-3 sm:px-4`,children:[(0,G.jsx)(fw,{}),(0,G.jsx)(LC,{orientation:`vertical`,className:`mr-2 h-4`}),(0,G.jsx)(Gb,{children:(0,G.jsx)(Kb,{children:e.crumbs?.map((t,n)=>(0,G.jsxs)(W.Fragment,{children:[(0,G.jsx)(qb,{children:(0,G.jsx)(pD,{crumb:t,isLast:n===e.crumbs.length-1})}),n<e.crumbs.length-1&&(0,G.jsx)(Xb,{})]},n))})}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[e.search?.enabled&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(st,{className:`absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground`}),(0,G.jsx)(VS,{type:`search`,placeholder:e.search.placeholder,className:`pl-8 w-[200px] lg:w-[300px]`}),e.search.shortcut&&(0,G.jsx)(`kbd`,{className:`pointer-events-none absolute right-2 top-2 hidden h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 sm:flex`,children:e.search.shortcut})]}),e.actions?.map((e,t)=>(0,G.jsx)(zl,{schema:e},t)),e.rightContent&&(0,G.jsx)(zl,{schema:e.rightContent})]})]}),{namespace:`ui`,label:`Header Bar`,inputs:[{name:`crumbs`,type:`array`,label:`Breadcrumbs`},{name:`search`,type:`object`,label:`Search Configuration`},{name:`actions`,type:`array`,label:`Action Slots`},{name:`rightContent`,type:`object`,label:`Right Content`}],defaultProps:{crumbs:[{label:`Home`,href:`#`},{label:`Current Page`}]}}),K.register(`badge`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(Wb,{variant:e.variant,className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.label||gb(e.body)})},{namespace:`ui`,label:`Badge`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`variant`,type:`enum`,enum:[`default`,`secondary`,`destructive`,`outline`],defaultValue:`default`,label:`Variant`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{label:`Badge`,variant:`default`}}),K.register(`avatar`,({schema:e,className:t,...n})=>(0,G.jsxs)(Bb,{className:t,...n,children:[(0,G.jsx)(Vb,{src:e.src,alt:e.alt}),(0,G.jsx)(Hb,{children:e.fallback})]}),{namespace:`ui`,label:`Avatar`,inputs:[{name:`src`,type:`string`,label:`Image URL`},{name:`alt`,type:`string`,label:`Alt Text`},{name:`fallback`,type:`string`,label:`Fallback Initials`,defaultValue:`CN`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{fallback:`CN`,alt:`Avatar`}}),K.register(`alert`,({schema:e,className:t,...n})=>(0,G.jsxs)(Ib,{variant:e.variant,className:t,...n,children:[(0,G.jsx)(Lb,{children:e.title}),(0,G.jsx)(Rb,{children:e.description||gb(e.body)})]}),{namespace:`ui`,label:`Alert`,inputs:[{name:`title`,type:`string`,label:`Title`,required:!0},{name:`description`,type:`string`,label:`Description`},{name:`variant`,type:`enum`,enum:[`default`,`destructive`],defaultValue:`default`,label:`Variant`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`Alert Title`,description:`This is an alert message.`,variant:`default`}}),K.register(`list`,({schema:e,className:t,...n})=>{let r=Ml(e.bind),i=Array.isArray(r)?r:Array.isArray(e.items)?e.items:[],a=e.ordered?`ol`:`ul`,o=e.ordered?`list-decimal`:`list-disc`;return(0,G.jsxs)(`div`,{className:q(`space-y-2`,e.wrapperClass),children:[e.title&&(0,G.jsx)(`h3`,{className:`text-lg font-semibold tracking-tight`,children:e.title}),(0,G.jsx)(a,{className:q(`ml-6 [&>li]:mt-2`,o,t),...n,children:i.map((e,t)=>(0,G.jsx)(`li`,{className:q(typeof e==`object`&&e.className),children:typeof e==`string`?e:e.content||gb(e.body)},t))})]})},{namespace:`ui`,label:`List`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`ordered`,type:`boolean`,label:`Ordered List (numbered)`,defaultValue:!1},{name:`items`,type:`array`,label:`List Items`,description:`Array of strings or objects with content/body`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{ordered:!1,items:[`First item`,`Second item`,`Third item`],className:`text-sm`}});var mD=({node:e,onNodeClick:t})=>{let[n,r]=(0,W.useState)(!1),i=e.children&&e.children.length>0;return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`div`,{className:q(`group flex items-center py-1.5 px-2 rounded-sm cursor-pointer transition-colors`,`hover:bg-accent hover:text-accent-foreground`,n&&i&&`bg-accent/50`),onClick:()=>{t&&t(e)},children:[i?(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),r(!n)},className:`mr-2 p-0.5 h-5 w-5 flex items-center justify-center rounded-sm hover:bg-muted text-muted-foreground transition-colors`,children:(0,G.jsx)(n?nt:Xe,{className:`h-4 w-4`})}):(0,G.jsx)(`span`,{className:`mr-2 w-5 flex justify-center`,children:(0,G.jsx)(`div`,{className:`w-1 h-1 rounded-full bg-muted-foreground/50`})}),e.icon===`folder`||i?n?(0,G.jsx)(It,{className:`h-4 w-4 mr-2 text-primary`}):(0,G.jsx)(Je,{className:`h-4 w-4 mr-2 text-muted-foreground group-hover:text-primary transition-colors`}):(0,G.jsx)(nn,{className:`h-4 w-4 mr-2 text-muted-foreground group-hover:text-primary transition-colors`}),(0,G.jsx)(`span`,{className:q(`text-sm transition-colors`,n?`font-medium text-foreground`:`text-muted-foreground group-hover:text-foreground`),children:e.label})]}),i&&n&&(0,G.jsx)(`div`,{className:`relative ml-[11px] pl-3 border-l border-border animate-in slide-in-from-left-2 fade-in duration-200`,children:e.children.map(e=>(0,G.jsx)(mD,{node:e,onNodeClick:t},e.id))})]})};K.register(`tree-view`,({schema:e,className:t,...n})=>{let r=t=>{e.onNodeClick&&e.onNodeClick(t)},i=Ml(e.bind)||e.nodes||e.data||[],a=Array.isArray(i)?i:[];return(0,G.jsxs)(`div`,{className:q(`relative border rounded-lg p-3 bg-card text-card-foreground`,t),...n,children:[e.title&&(0,G.jsx)(`div`,{className:`flex items-center gap-2 mb-3 pb-2 border-b`,children:(0,G.jsx)(`h3`,{className:`text-sm font-semibold`,children:e.title})}),(0,G.jsx)(`div`,{className:`space-y-1`,children:a.map(e=>(0,G.jsx)(mD,{node:e,onNodeClick:r},e.id))})]})},{namespace:`ui`,label:`Tree View`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`nodes`,type:`array`,label:`Tree Nodes`,description:`Array of { id, label, icon, children, data }`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`File Explorer`,nodes:[{id:`1`,label:`Documents`,icon:`folder`,children:[{id:`1-1`,label:`Resume.pdf`,icon:`file`},{id:`1-2`,label:`Cover Letter.docx`,icon:`file`}]},{id:`2`,label:`Photos`,icon:`folder`,children:[{id:`2-1`,label:`Vacation`,icon:`folder`,children:[{id:`2-1-1`,label:`Beach.jpg`,icon:`file`}]},{id:`2-2`,label:`Family.jpg`,icon:`file`}]},{id:`3`,label:`README.md`,icon:`file`}]}});var hD=e=>e?HE(e):null;K.register(`statistic`,({schema:e})=>{let t=e.icon?hD(e.icon):null;return(0,G.jsxs)(`div`,{className:q(`group relative flex flex-col p-4 sm:p-5 md:p-6 rounded-xl border bg-card text-card-foreground shadow-sm`,e.className),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[e.label&&(0,G.jsx)(`p`,{className:`text-sm font-medium text-muted-foreground`,children:e.label}),t&&(0,G.jsx)(t,{className:`h-4 w-4 text-muted-foreground`})]}),(0,G.jsx)(`div`,{className:`flex items-baseline gap-2`,children:(0,G.jsx)(`h3`,{className:`text-2xl font-bold tracking-tight`,children:e.value})}),(e.trend||e.description)&&(0,G.jsxs)(`div`,{className:`mt-1 flex items-center text-xs text-muted-foreground`,children:[e.trend===`up`&&(0,G.jsx)(Ot,{className:`mr-1 h-3 w-3 text-emerald-500`}),e.trend===`down`&&(0,G.jsx)(vn,{className:`mr-1 h-3 w-3 text-rose-500`}),e.trend===`neutral`&&(0,G.jsx)(yn,{className:`mr-1 h-3 w-3`}),(0,G.jsx)(`span`,{className:q(e.trend===`up`&&`text-emerald-500 font-medium`,e.trend===`down`&&`text-rose-500 font-medium`),children:e.description})]})]})},{namespace:`ui`,label:`Statistic`,category:`data-display`,icon:`Activity`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`value`,type:`string`,label:`Value`},{name:`description`,type:`string`,label:`Description`},{name:`trend`,type:`enum`,enum:[{label:`Up`,value:`up`},{label:`Down`,value:`down`},{label:`Neutral`,value:`neutral`}],label:`Trend`}],defaultProps:{label:`Total Revenue`,value:`$45,231.89`,trend:`up`,description:`+20.1% from last month`}}),K.register(`breadcrumb`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(Gb,{className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:(0,G.jsx)(Kb,{children:e.items?.map((t,n)=>(0,G.jsxs)(`div`,{className:`flex items-center`,children:[(0,G.jsx)(qb,{children:n===(e.items?.length||0)-1?(0,G.jsx)(Yb,{children:Nl(t.label)??``}):(0,G.jsx)(Jb,{href:t.href,children:Nl(t.label)??``})}),n<(e.items?.length||0)-1&&(0,G.jsx)(Xb,{})]},n))})})},{namespace:`ui`,label:`Breadcrumb`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{items:[{label:`Home`,href:`/`},{label:`Products`,href:`/products`},{label:`Product`}]}}),K.register(`kbd`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t,o=Array.isArray(e.keys)?e.keys:[e.keys||e.label||`K`];return(0,G.jsx)(`div`,{className:q(`inline-flex flex-wrap gap-1`,e.className),children:o.map((e,t)=>(0,G.jsx)(`kbd`,{className:`pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100`,...a,...t===0?{"data-obj-id":n,"data-obj-type":r,style:i}:{},children:e},t))})},{namespace:`ui`,label:`Keyboard Key`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{label:`K`}}),K.register(`table`,({schema:e,className:t})=>{let n=Ml(e.bind)||e.data||e.props?.data||[],r=Array.isArray(e.columns)?e.columns:Array.isArray(e.props?.columns)?e.props.columns:[];if(n&&!Array.isArray(n))return(0,G.jsx)(`div`,{className:`text-red-500 p-2 border border-red-200 bg-red-50 rounded text-sm`,children:`Table data must be an array`});let i=Array.isArray(n)?n:[];return(0,G.jsx)(`div`,{className:q(`rounded-md border`,t),children:(0,G.jsxs)(Lw,{children:[(0,G.jsx)(Rw,{children:(0,G.jsx)(Vw,{children:r.map((e,t)=>(0,G.jsx)(Hw,{children:e.label||e.header},e.key||e.accessorKey||t))})}),(0,G.jsx)(zw,{children:i.length===0?(0,G.jsx)(Vw,{children:(0,G.jsx)(Uw,{colSpan:r.length,className:`h-24 text-center`,children:`No results.`})}):i.map((e,t)=>(0,G.jsx)(Vw,{children:r.map((t,n)=>{let r=t.key||t.accessorKey||``,i=r?e[r]:``;return(0,G.jsx)(Uw,{children:typeof i==`object`&&i?String(i):i},t.key||t.accessorKey||n)})},e.id||t))})]})})},{namespace:`ui`}),K.register(`progress`,({schema:e,className:t,...n})=>(0,G.jsx)(bC,{value:e.value,className:t,...n}),{namespace:`ui`,label:`Progress`,inputs:[{name:`value`,type:`number`,label:`Value`,defaultValue:0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{value:50,className:`w-full`}}),K.register(`skeleton`,({schema:e,className:t,...n})=>(0,G.jsx)(ZC,{className:t,...n,style:{width:e.width,height:e.height}}),{namespace:`ui`,label:`Skeleton`,inputs:[{name:`width`,type:`string`,label:`Width`},{name:`height`,type:`string`,label:`Height`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{width:`100%`,height:`20px`,className:`rounded-md`}}),K.register(`toaster`,()=>(0,G.jsx)(Fw,{}),{namespace:`ui`,label:`Toaster`,inputs:[],defaultProps:{}}),K.register(`loading`,({schema:e,className:t,...n})=>{let r=e.size||`md`,i=e.fullscreen||!1,a=(0,G.jsxs)(`div`,{className:q(`flex flex-col items-center justify-center gap-2`,t),children:[(0,G.jsx)(eE,{className:q(r===`sm`&&`h-4 w-4`,r===`md`&&`h-8 w-8`,r===`lg`&&`h-12 w-12`,r===`xl`&&`h-16 w-16`)}),e.text&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.text})]});return i?(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm`,...n,children:a}):(0,G.jsx)(`div`,{className:`flex items-center justify-center p-8`,...n,children:a})},{namespace:`ui`,label:`Loading`,inputs:[{name:`text`,type:`string`,label:`Loading Text`},{name:`size`,type:`enum`,enum:[`sm`,`md`,`lg`,`xl`],label:`Size`,defaultValue:`md`},{name:`fullscreen`,type:`boolean`,label:`Fullscreen Overlay`,defaultValue:!1},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{text:`Loading...`,size:`md`,fullscreen:!1}}),K.register(`toast`,({schema:e})=>(0,G.jsx)(J,{onClick:()=>{(e.variant===`success`?s.success:e.variant===`error`?s.error:e.variant===`warning`?s.warning:e.variant===`info`?s.info:s)(e.title||`Notification`,{description:e.description,duration:e.duration})},variant:e.buttonVariant,className:e.className,children:e.buttonLabel||`Show Toast`}),{namespace:`ui`,label:`Toast`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`variant`,type:`enum`,enum:[`default`,`success`,`warning`,`error`,`info`],defaultValue:`default`,label:`Variant`},{name:`duration`,type:`number`,label:`Duration (ms)`},{name:`buttonLabel`,type:`string`,label:`Button Label`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`Notification`,buttonLabel:`Show Toast`,variant:`default`,duration:5e3}}),K.register(`spinner`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(dt,{className:q(`animate-spin`,{sm:`h-4 w-4`,md:`h-6 w-6`,lg:`h-8 w-8`,xl:`h-12 w-12`}[e.size||`md`],e.className),...a,"data-obj-id":n,"data-obj-type":r,style:i})},{namespace:`ui`,label:`Spinner`,inputs:[{name:`size`,type:`enum`,enum:[`sm`,`md`,`lg`,`xl`],defaultValue:`md`,label:`Size`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{size:`md`}}),K.register(`empty`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,action:a,icon:o,...s}=t,c=e.action,l=c&&typeof c==`object`?(0,G.jsx)(zl,{schema:c}):void 0;return(0,G.jsx)(lE,{title:e.title||`No data`,description:e.description,className:e.className,action:l,...s,"data-obj-id":n,"data-obj-type":r,style:i})},{namespace:`ui`,label:`Empty`,inputs:[{name:`title`,type:`string`,label:`Title`,defaultValue:`No data`},{name:`description`,type:`string`,label:`Description`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`No data`}}),K.register(`sonner`,({schema:e,...t})=>(0,G.jsx)(J,{onClick:()=>{(e.variant===`success`?s.success:e.variant===`error`?s.error:e.variant===`warning`?s.warning:e.variant===`info`?s.info:s)(e.message||e.title||`Notification`,{description:e.description})},variant:e.buttonVariant,className:e.className,...t,children:e.buttonLabel||`Show Toast`}),{namespace:`ui`,label:`Sonner Toast`,inputs:[{name:`message`,type:`string`,label:`Message`},{name:`description`,type:`string`,label:`Description`},{name:`variant`,type:`enum`,enum:[`default`,`success`,`error`,`warning`,`info`],defaultValue:`default`,label:`Variant`},{name:`buttonLabel`,type:`string`,label:`Button Label`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{message:`Notification`,buttonLabel:`Show Toast`,variant:`default`}}),K.register(`dialog`,({schema:e,className:t,...n})=>(0,G.jsxs)(Tx,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,G.jsx)(Ex,{asChild:!0,children:gb(e.trigger)}),(0,G.jsxs)(kx,{className:t,children:[(0,G.jsxs)(Ax,{children:[e.title&&(0,G.jsx)(Mx,{children:e.title}),e.description&&(0,G.jsx)(Nx,{children:e.description})]}),gb(e.content),e.footer&&(0,G.jsx)(jx,{children:gb(e.footer)})]})]}),{namespace:`ui`,label:`Dialog`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`modal`,type:`boolean`,label:`Modal`,defaultValue:!0},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`trigger`,type:`slot`,label:`Trigger`,description:`Element that opens the dialog`},{name:`content`,type:`slot`,label:`Content`,description:`Main content of the dialog`},{name:`footer`,type:`slot`,label:`Footer`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Dialog Title`,description:`Dialog description goes here`,modal:!0,trigger:[{type:`button`,label:`Open Dialog`}],content:[{type:`text`,content:`Dialog content goes here`}]}}),K.register(`sheet`,({schema:e,className:t,...n})=>(0,G.jsxs)(RC,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,G.jsx)(zC,{asChild:!0,children:gb(e.trigger)}),(0,G.jsxs)(WC,{side:e.side||`right`,className:t,children:[(0,G.jsxs)(GC,{children:[e.title&&(0,G.jsx)(qC,{children:e.title}),e.description&&(0,G.jsx)(JC,{children:e.description})]}),gb(e.content),e.footer&&(0,G.jsx)(KC,{children:gb(e.footer)})]})]}),{namespace:`ui`,label:`Sheet`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],defaultValue:`right`,label:`Side`},{name:`modal`,type:`boolean`,label:`Modal`,defaultValue:!0},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`footer`,type:`slot`,label:`Footer`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Sheet Title`,description:`Sheet description`,side:`right`,modal:!0,trigger:[{type:`button`,label:`Open Sheet`}],content:[{type:`text`,content:`Sheet content goes here`}]}}),K.register(`popover`,({schema:e,className:t,...n})=>(0,G.jsxs)(_C,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,G.jsx)(vC,{asChild:!0,children:gb(e.trigger)}),(0,G.jsx)(yC,{align:e.align,side:e.side,className:t,children:gb(e.content)})]}),{namespace:`ui`,label:`Popover`,inputs:[{name:`modal`,type:`boolean`,label:`Modal`},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Open Popover`,variant:`outline`}],content:[{type:`text`,content:`Popover content goes here`}],align:`center`,side:`bottom`}}),K.register(`tooltip`,({schema:e,className:t,...n})=>(0,G.jsx)(QC,{delayDuration:e.delayDuration,children:(0,G.jsxs)($C,{...n,children:[(0,G.jsx)(ew,{asChild:!0,children:gb(e.trigger)}),(0,G.jsx)(tw,{side:e.side,align:e.align,className:t,children:e.content||gb(e.body)})]})}),{namespace:`ui`,label:`Tooltip`,inputs:[{name:`delayDuration`,type:`number`,label:`Delay Duration`,defaultValue:700},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`string`,label:`Content Text`},{name:`body`,type:`slot`,label:`Rich Content`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Hover me`,variant:`outline`}],content:`Tooltip content`,delayDuration:700,side:`top`}}),K.register(`alert-dialog`,({schema:e,className:t,...n})=>(0,G.jsxs)(wb,{defaultOpen:e.defaultOpen,...n,children:[(0,G.jsx)(Tb,{asChild:!0,children:gb(e.trigger)}),(0,G.jsxs)(Ob,{className:t,children:[(0,G.jsxs)(kb,{children:[e.title&&(0,G.jsx)(jb,{children:e.title}),e.description&&(0,G.jsx)(Mb,{children:e.description})]}),gb(e.content),(0,G.jsxs)(Ab,{children:[e.cancelText&&(0,G.jsx)(Pb,{children:e.cancelText}),e.actionText&&(0,G.jsx)(Nb,{onClick:e.onAction,children:e.actionText})]})]})]}),{namespace:`ui`,label:`Alert Dialog`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`cancelText`,type:`string`,label:`Cancel Text`,defaultValue:`Cancel`},{name:`actionText`,type:`string`,label:`Action Text`,defaultValue:`Continue`},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content/Body`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Are you sure?`,description:`This action cannot be undone.`,cancelText:`Cancel`,actionText:`Continue`,trigger:[{type:`button`,label:`Open Alert`,variant:`destructive`}]}}),K.register(`drawer`,({schema:e,className:t,...n})=>(0,G.jsxs)(eS,{shouldScaleBackground:e.shouldScaleBackground,defaultOpen:e.defaultOpen,...n,children:[(0,G.jsx)(tS,{asChild:!0,children:gb(e.trigger)}),(0,G.jsxs)(aS,{className:t,children:[(0,G.jsxs)(oS,{children:[e.title&&(0,G.jsx)(cS,{children:e.title}),e.description&&(0,G.jsx)(lS,{children:e.description})]}),gb(e.content),e.footer&&(0,G.jsxs)(sS,{children:[gb(e.footer),e.showClose&&(0,G.jsx)(rS,{asChild:!0,children:(0,G.jsx)(`button`,{children:`Close`})})]})]})]}),{namespace:`ui`,label:`Drawer`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`shouldScaleBackground`,type:`boolean`,label:`Scale Background`},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`showClose`,type:`boolean`,label:`Show Close Button in Footer`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`footer`,type:`slot`,label:`Footer`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Drawer Title`,description:`Drawer description`,trigger:[{type:`button`,label:`Open Drawer`}],content:[{type:`text`,content:`Drawer content goes here`}]}}),K.register(`hover-card`,({schema:e,className:t,...n})=>(0,G.jsxs)(PS,{openDelay:e.openDelay,closeDelay:e.closeDelay,...n,children:[(0,G.jsx)(FS,{asChild:!0,children:gb(e.trigger)}),(0,G.jsx)(IS,{align:e.align,side:e.side,className:t,children:gb(e.content)})]}),{namespace:`ui`,label:`Hover Card`,inputs:[{name:`openDelay`,type:`number`,label:`Open Delay`},{name:`closeDelay`,type:`number`,label:`Close Delay`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Hover me`,variant:`link`}],content:[{type:`text`,content:`Hover card content appears on hover`}],side:`top`}});var gD=e=>e?e.map((e,t)=>e.type===`separator`?(0,G.jsx)(bS,{},t):e.type===`label`?(0,G.jsx)(yS,{children:e.label},t):e.children?(0,G.jsxs)(fS,{children:[(0,G.jsxs)(pS,{inset:e.inset,children:[e.icon&&(0,G.jsx)(`span`,{className:`mr-2`,children:e.icon}),e.label]}),(0,G.jsx)(mS,{children:gD(e.children)})]},t):(0,G.jsxs)(gS,{disabled:e.disabled,inset:e.inset,onSelect:e.onSelect,children:[e.icon&&(0,G.jsx)(`span`,{className:`mr-2`,children:e.icon}),e.label,e.shortcut&&(0,G.jsx)(`span`,{className:`ml-auto text-xs tracking-widest opacity-60`,children:e.shortcut})]},t)):null;K.register(`dropdown-menu`,({schema:e,className:t,...n})=>(0,G.jsxs)(uS,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,G.jsx)(dS,{asChild:!0,children:gb(e.trigger)}),(0,G.jsxs)(hS,{align:e.align,side:e.side,className:t,children:[e.label&&(0,G.jsx)(yS,{children:e.label}),e.label&&(0,G.jsx)(bS,{}),gD(e.items)]})]}),{namespace:`ui`,label:`Dropdown Menu`,inputs:[{name:`label`,type:`string`,label:`Menu Label`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`items`,type:`array`,label:`Items`,description:`Recursive structure: { type?: "separator"|"label", label, icon, shortcut, disabled, children: [] }`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Menu`,variant:`outline`}],items:[{label:`Item 1`},{label:`Item 2`},{type:`separator`},{label:`Item 3`}],align:`start`,side:`bottom`}});var _D=e=>e?e.map((e,t)=>e.type===`separator`?(0,G.jsx)(Qx,{},t):e.type===`label`?(0,G.jsx)(Zx,{children:e.label},t):e.children?(0,G.jsxs)(Wx,{children:[(0,G.jsx)(Gx,{inset:e.inset,children:e.label}),(0,G.jsx)(Kx,{children:_D(e.children)})]},t):(0,G.jsxs)(Jx,{disabled:e.disabled,inset:e.inset,onSelect:e.onSelect,children:[e.label,e.shortcut&&(0,G.jsx)($x,{children:e.shortcut})]},t)):null;K.register(`context-menu`,({schema:e,className:t,...n})=>{let r=e.triggerClassName||t||e.className||`h-[120px] w-full sm:h-[150px] sm:w-[300px] border border-dashed text-sm flex items-center justify-center`,i=e.contentClassName;return(0,G.jsxs)(Hx,{modal:e.modal,...n,children:[(0,G.jsx)(Ux,{asChild:!0,children:(0,G.jsx)(`div`,{className:r,children:gb(e.trigger||{type:`text`,value:`Right click here`})})}),(0,G.jsx)(qx,{className:i,children:_D(e.items)})]})},{namespace:`ui`,label:`Context Menu`,inputs:[{name:`trigger`,type:`slot`,label:`Trigger Area`},{name:`triggerClassName`,type:`string`,label:`Trigger Area Class`},{name:`items`,type:`array`,label:`Items`,description:`Recursive structure: { type?: "separator"|"label", label, shortcut, children }`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{items:[{label:`Action 1`},{label:`Action 2`},{type:`separator`},{label:`Action 3`}],trigger:[{type:`text`,content:`Right click here`}]}}),K.register(`menubar`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(WS,{className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.menus?.map((e,t)=>(0,G.jsxs)(HS,{children:[(0,G.jsx)(GS,{children:e.label}),(0,G.jsx)(JS,{children:e.items?.map((e,t)=>e.separator?(0,G.jsx)($S,{},t):e.children?(0,G.jsxs)(US,{children:[(0,G.jsx)(KS,{children:e.label}),(0,G.jsx)(qS,{children:e.children.map((e,t)=>(0,G.jsx)(YS,{children:e.label},t))})]},t):(0,G.jsx)(YS,{disabled:e.disabled,children:e.label},t))})]},t))})},{namespace:`ui`,label:`Menubar`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{menus:[{label:`File`,items:[{label:`New`},{label:`Open`},{separator:!0},{label:`Exit`}]}]}}),K.register(`accordion`,({schema:e,className:t,...n})=>(0,G.jsx)(yb,{type:e.accordionType||`single`,collapsible:e.collapsible,className:t,...n,children:e.items?.map((e,t)=>(0,G.jsxs)(bb,{value:e.value||`item-${t}`,children:[(0,G.jsx)(xb,{children:e.title}),(0,G.jsx)(Sb,{children:gb(e.content)})]},e.value||t))}),{namespace:`ui`,label:`Accordion`,inputs:[{name:`accordionType`,type:`enum`,enum:[`single`,`multiple`],defaultValue:`single`,label:`Type`},{name:`collapsible`,type:`boolean`,label:`Collapsible (for single type)`},{name:`items`,type:`array`,label:`Items`,description:`Array of { trigger, content, value }`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{accordionType:`single`,collapsible:!0,items:[{label:`Item 1`,value:`item-1`,content:[{type:`text`,content:`Content for item 1`}]},{label:`Item 2`,value:`item-2`,content:[{type:`text`,content:`Content for item 2`}]},{label:`Item 3`,value:`item-3`,content:[{type:`text`,content:`Content for item 3`}]}],className:`w-full`}}),K.register(`collapsible`,({schema:e,className:t,...n})=>(0,G.jsxs)(Sx,{defaultOpen:e.defaultOpen,disabled:e.disabled,className:t,...n,children:[(0,G.jsx)(Cx,{asChild:!0,children:gb(e.trigger)}),(0,G.jsx)(wx,{children:gb(e.content)})]}),{namespace:`ui`,label:`Collapsible`,inputs:[{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Toggle`,variant:`outline`}],content:[{type:`text`,content:`Collapsible content goes here`}],className:`w-full`}}),K.register(`toggle-group`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,type:a,...o}=t;return(0,G.jsx)($w,{type:e.selectionType||`single`,variant:e.variant,size:e.size,value:e.value,className:e.className,...o,"data-obj-id":n,"data-obj-type":r,style:i,children:e.items?.map((e,t)=>(0,G.jsx)(eT,{value:e.value,"aria-label":e.label,children:e.label},t))})},{namespace:`ui`,label:`Toggle Group`,inputs:[{name:`selectionType`,type:`enum`,enum:[`single`,`multiple`],defaultValue:`single`,label:`Selection Type`},{name:`variant`,type:`enum`,enum:[`default`,`outline`],defaultValue:`default`,label:`Variant`},{name:`size`,type:`enum`,enum:[`default`,`sm`,`lg`],defaultValue:`default`,label:`Size`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{selectionType:`single`,variant:`default`,size:`default`,items:[{value:`bold`,label:`Bold`},{value:`italic`,label:`Italic`},{value:`underline`,label:`Underline`}]}}),K.register(`carousel`,({schema:e,className:t,...n})=>(0,G.jsxs)(cx,{opts:e.opts,orientation:e.orientation||`horizontal`,className:t,...n,children:[(0,G.jsx)(lx,{children:e.items?.map((t,n)=>(0,G.jsx)(ux,{className:e.itemClassName,children:gb(t)},n))}),e.showArrows&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(dx,{}),(0,G.jsx)(fx,{})]})]}),{namespace:`ui`,label:`Carousel`,inputs:[{name:`orientation`,type:`enum`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`,label:`Orientation`},{name:`showArrows`,type:`boolean`,label:`Show Arrows`,defaultValue:!0},{name:`items`,type:`array`,label:`Items`,description:`Array of content schemas`},{name:`itemClassName`,type:`string`,label:`Item CSS Class`},{name:`className`,type:`string`,label:`Container CSS Class`}],defaultProps:{orientation:`horizontal`,showArrows:!0,items:[[{type:`div`,className:`p-4 sm:p-6 md:p-8 border rounded bg-slate-50`,body:[{type:`text`,content:`Slide 1`}]}],[{type:`div`,className:`p-4 sm:p-6 md:p-8 border rounded bg-slate-50`,body:[{type:`text`,content:`Slide 2`}]}],[{type:`div`,className:`p-4 sm:p-6 md:p-8 border rounded bg-slate-50`,body:[{type:`text`,content:`Slide 3`}]}]],className:`w-full max-w-xs`}}),K.register(`filter-builder`,({schema:e,className:t,onChange:n,...r})=>(0,G.jsxs)(`div`,{className:e.wrapperClass||``,children:[e.label&&(0,G.jsx)(`label`,{className:`text-sm font-medium mb-2 block`,children:e.label}),(0,G.jsx)(BT,{fields:e.fields||[],value:e.value||r.value,onChange:t=>{n&&n({target:{name:e.name,value:t}})},className:t,...r})]}),{namespace:`ui`,label:`Filter Builder`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`name`,type:`string`,label:`Name`,required:!0},{name:`fields`,type:`array`,label:`Fields`,description:`Array of { value: string, label: string, type?: string } objects`,required:!0},{name:`value`,type:`object`,label:`Initial Value`,description:`FilterGroup object with conditions`}],defaultProps:{label:`Filters`,name:`filters`,fields:[{value:`name`,label:`Name`,type:`text`},{value:`email`,label:`Email`,type:`text`},{value:`age`,label:`Age`,type:`number`},{value:`status`,label:`Status`,type:`text`}],value:{id:`root`,logic:`and`,conditions:[]}}}),K.register(`scroll-area`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n,s=e.orientation||`vertical`;return(0,G.jsxs)(EC,{className:t,style:{height:e.height,width:e.width,...a},...o,"data-obj-id":r,"data-obj-type":i,children:[gb(e.children),(s===`horizontal`||s===`both`)&&(0,G.jsx)(DC,{orientation:`horizontal`}),(s===`vertical`||s===`both`)&&(0,G.jsx)(DC,{orientation:`vertical`})]})},{namespace:`ui`,label:`Scroll Area`,inputs:[{name:`height`,type:`string`,label:`Height (e.g. 200px)`},{name:`width`,type:`string`,label:`Width`},{name:`orientation`,type:`enum`,enum:[`vertical`,`horizontal`,`both`],defaultValue:`vertical`,label:`Orientation`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{height:`200px`,width:`100%`,orientation:`vertical`,children:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Scrollable content goes here. Add more content to see scrolling behavior.`}]}],className:`rounded-md border`}}),K.register(`resizable`,({schema:e,className:t,...n})=>{let r=Array.isArray(e.panels)?e.panels:[];return(0,G.jsx)(CC,{orientation:e.direction||`horizontal`,className:t,...n,style:{minHeight:e.minHeight||`200px`},children:r.map((t,n)=>(0,G.jsxs)(W.Fragment,{children:[(0,G.jsx)(wC,{defaultSize:t.defaultSize,minSize:t.minSize,maxSize:t.maxSize,children:gb(t.content)}),n<r.length-1&&(0,G.jsx)(TC,{withHandle:e.withHandle})]},n))})},{namespace:`ui`,label:`Resizable Panel Group`,inputs:[{name:`direction`,type:`enum`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`,label:`Direction`},{name:`minHeight`,type:`string`,label:`Min Height`},{name:`withHandle`,type:`boolean`,label:`Show Handle Icon`,defaultValue:!0},{name:`panels`,type:`array`,label:`Panels`,description:`Array of { defaultSize, minSize, maxSize, content }`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{direction:`horizontal`,minHeight:`200px`,withHandle:!0,panels:[{defaultSize:50,content:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Panel 1`}]}]},{defaultSize:50,content:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Panel 2`}]}]}],className:`rounded-lg border`}}),K.register(`table`,({schema:e,className:t,...n})=>(0,G.jsxs)(Lw,{className:t,...n,children:[e.caption&&(0,G.jsx)(Ww,{children:e.caption}),(0,G.jsx)(Rw,{children:(0,G.jsx)(Vw,{children:e.columns?.map((e,t)=>(0,G.jsx)(Hw,{className:e.className,style:{width:e.width},children:e.header||e.label},t))})}),(0,G.jsx)(zw,{children:e.data?.map((t,n)=>(0,G.jsx)(Vw,{children:e.columns?.map((e,n)=>(0,G.jsx)(Uw,{className:e.cellClassName,children:t[e.accessorKey||e.name]},n))},n))}),e.footer&&(0,G.jsx)(Bw,{children:(0,G.jsx)(Vw,{children:(0,G.jsx)(Uw,{colSpan:e.columns?.length,children:typeof e.footer==`string`?e.footer:gb(e.footer)})})})]}),{namespace:`ui`,label:`Table`,inputs:[{name:`caption`,type:`string`,label:`Caption`},{name:`footer`,type:`string`,label:`Footer Content`},{name:`columns`,type:`array`,label:`Columns`,description:`Array of { header, accessorKey, className, width }`},{name:`data`,type:`array`,label:`Data`,description:`Array of objects`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{caption:`Table Caption`,columns:[{header:`Column 1`,accessorKey:`col1`},{header:`Column 2`,accessorKey:`col2`},{header:`Column 3`,accessorKey:`col3`}],data:[{col1:`Row 1, Col 1`,col2:`Row 1, Col 2`,col3:`Row 1, Col 3`},{col1:`Row 2, Col 1`,col2:`Row 2, Col 2`,col3:`Row 2, Col 3`},{col1:`Row 3, Col 1`,col2:`Row 3, Col 2`,col3:`Row 3, Col 3`}]}});var vD={"table.rowsPerPage":`Rows per page`,"table.pageInfo":`Page {{current}} of {{total}}`,"table.totalRecords":`{{count}} total`,"table.noResults":`No results found`,"table.noResultsHint":`Try adjusting your filters or search query.`,"table.sortAsc":`Sort ascending`,"table.sortDesc":`Sort descending`,"table.hideColumn":`Hide column`,"table.cancelAll":`Cancel All`,"table.saveAll":`Save All ({{count}})`,"table.exportCSV":`Export CSV`,"table.addRecord":`Add record`,"table.open":`Open`,"table.search":`Search...`,"table.modified":`{{count}} row modified`,"table.selected":`{{count}} selected`,"table.edit":`Edit`,"table.delete":`Delete`,"common.actions":`Actions`};function yD(){try{let e=hu();return e.t(`table.rowsPerPage`)===`table.rowsPerPage`?{t:(e,t)=>{let n=vD[e]||e;if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{{${e}}}`,String(r));return n},language:e.language||`en`}:{t:e.t,language:e.language||`en`}}catch{return{t:(e,t)=>{let n=vD[e]||e;if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{{${e}}}`,String(r));return n},language:`en`}}}K.register(`data-table`,({schema:e})=>{let{caption:t,columns:n=[],data:r=[],pagination:i=!0,pageSize:a=10,searchable:o=!0,selectable:s=!1,sortable:c=!0,exportable:l=!1,rowActions:u=!1,resizableColumns:d=!0,reorderableColumns:f=!0,editable:p=!1,singleClickEdit:m=!1,selectionStyle:h=`always`,rowClassName:g,rowStyle:_,className:v,cellClassName:y,frozenColumns:b=0,showRowNumbers:x=!1,showAddRow:S=!1,borderless:C=!1}=e,{t:w,language:T}=yD(),E=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:?\d{2})?)?$/,ee=W.useCallback(e=>{if(typeof e!=`string`||e.length<8||!E.test(e))return e;let t=Date.parse(e);if(Number.isNaN(t))return e;let n=e.includes(`T`);try{return new Intl.DateTimeFormat(T,n?{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}:{year:`numeric`,month:`short`,day:`numeric`}).format(new Date(t))}catch{return e}},[T]),D=Array.isArray(r)?r:[],O=(0,W.useMemo)(()=>n.map(e=>({...e,header:e.header||e.label,accessorKey:e.accessorKey||e.name})),[n]),k=(0,W.useMemo)(()=>{let e={},t=n.map(e=>({header:e.header||e.label,accessorKey:e.accessorKey||e.name,width:e.width}));for(let n of t){if(n.width)continue;let t=(n.header||``).length,r=D.slice(0,50);for(let e of r){let r=e[n.accessorKey],i=r==null?0:String(r).length;i>t&&(t=i)}e[n.accessorKey]=Math.min(400,Math.max(80,t*8+48))}return e},[n,D]),[A,te]=(0,W.useState)(``),[ne,re]=(0,W.useState)(null),[ie,j]=(0,W.useState)(null),[M,ae]=(0,W.useState)(new Set),[N,oe]=(0,W.useState)(1),[P,se]=(0,W.useState)(a),[F,ce]=(0,W.useState)(O),[le,ue]=(0,W.useState)({}),[de,fe]=(0,W.useState)(null),[pe,me]=(0,W.useState)(null),[I,he]=(0,W.useState)(null),[L,ge]=(0,W.useState)(``),[_e,ve]=(0,W.useState)(new Map),[R,ye]=(0,W.useState)(!1),[be,z]=(0,W.useState)(null),xe=(0,W.useRef)(null),Se=(0,W.useRef)(0),Ce=(0,W.useRef)(0),we=(0,W.useRef)(null);(0,W.useEffect)(()=>{ce(O)},[O]);let B=(0,W.useMemo)(()=>A?D.filter(e=>F.some(t=>e[t.accessorKey]?.toString().toLowerCase().includes(A.toLowerCase()))):D,[D,A,F]),Te=(0,W.useMemo)(()=>!ne||!ie?B:[...B].sort((e,t)=>{let n=e[ne],r=t[ne];if(n===r)return 0;let i=n<r?-1:1;return ie===`asc`?i:-i}),[B,ne,ie]),V=Math.ceil(Te.length/P),Ee=i?Te.slice((N-1)*P,N*P):Te,H=(e,t)=>e.id===void 0?`row-${t}`:e.id,De=e=>{c&&(ne===e?ie===`asc`?j(`desc`):ie===`desc`&&(j(null),re(null)):(re(e),j(`asc`)))},Oe=(e,t)=>{e.preventDefault(),z({x:e.clientX,y:e.clientY,columnKey:t})},ke=e=>{ce(t=>t.filter(t=>t.accessorKey!==e)),z(null)};(0,W.useEffect)(()=>{if(!be)return;let e=()=>z(null);return document.addEventListener(`click`,e),()=>document.removeEventListener(`click`,e)},[be]);let Ae=t=>{let n=new Set;if(t&&Ee.forEach((e,t)=>{let r=H(e,(N-1)*P+t);n.add(r)}),ae(n),e.onSelectionChange){let t=Te.filter((e,t)=>{let r=H(e,t);return n.has(r)});e.onSelectionChange(t)}},je=(t,n)=>{let r=new Set(M);if(n?r.add(t):r.delete(t),ae(r),e.onSelectionChange){let t=Te.filter((e,t)=>{let n=H(e,t);return r.has(n)});e.onSelectionChange(t)}},Me=()=>{let e=[F.map(e=>e.header).join(`,`),...Te.map(e=>F.map(t=>JSON.stringify(e[t.accessorKey]||``)).join(`,`))].join(`
|
|
27
|
+
`),t=new Blob([e],{type:`text/csv`}),n=window.URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`table-export.csv`,r.click(),window.URL.revokeObjectURL(n)},Ne=e=>ne===e?(0,G.jsx)(ie===`asc`?wn:nt,{className:`h-3 w-3 ml-0.5 text-primary`}):(0,G.jsx)(at,{className:`h-3 w-3 ml-0.5 opacity-0 group-hover:opacity-50 transition-opacity`}),Pe=(e,t)=>{if(!d)return;e.preventDefault(),e.stopPropagation(),xe.current=t,Se.current=e.clientX;let n=e.target.closest(`th`);n&&(Ce.current=n.offsetWidth),document.addEventListener(`mousemove`,Fe),document.addEventListener(`mouseup`,U)},Fe=e=>{if(!xe.current)return;let t=e.clientX-Se.current,n=Math.max(50,Ce.current+t);ue(e=>({...e,[xe.current]:n}))},U=()=>{xe.current=null,document.removeEventListener(`mousemove`,Fe),document.removeEventListener(`mouseup`,U)},Ie=(e,t)=>{f&&(fe(t),e.dataTransfer.effectAllowed=`move`)},Le=(e,t)=>{f&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,me(t))},Re=(t,n)=>{if(!f||de===null)return;if(t.preventDefault(),de===n){fe(null),me(null);return}let r=[...F],[i]=r.splice(de,1);r.splice(n,0,i),ce(r),fe(null),me(null),e.onColumnsReorder&&e.onColumnsReorder(r)},ze=()=>{fe(null),me(null)},Be=(e,t)=>{if(!p||F.find(e=>e.accessorKey===t)?.editable===!1)return;he({rowIndex:e,columnKey:t});let n=_e.get(e),r=Ee[e][t];ge(n?.[t]??r??``)},Ve=(t=!1)=>{if(!I||!t&&I===null)return;let{rowIndex:n,columnKey:r}=I,i=(N-1)*P+n,a=Te[i],o=new Map(_e),s=o.get(n)||{};s[r]=L,o.set(n,s),ve(o),e.onCellChange&&e.onCellChange(i,r,L,a),he(null),ge(``)},He=()=>{he(null),ge(``)},Ue=async t=>{let n=(N-1)*P+t,r=Te[n],i=_e.get(t);if(!(!i||Object.keys(i).length===0)){ye(!0);try{e.onRowSave&&await e.onRowSave(n,i,r);let a=new Map(_e);a.delete(t),ve(a)}catch(e){console.error(`Failed to save row:`,e)}finally{ye(!1)}}},We=e=>{let t=new Map(_e);t.delete(e),ve(t)},Ge=async()=>{if(_e.size!==0){ye(!0);try{let t=Array.from(_e.entries()).map(([e,t])=>{let n=(N-1)*P+e;return{rowIndex:n,changes:t,row:Te[n]}});e.onBatchSave&&await e.onBatchSave(t),ve(new Map)}catch(e){console.error(`Failed to save batch:`,e)}finally{ye(!1)}}},Ke=()=>{ve(new Map)},qe=(e,t,n)=>{if((e.ctrlKey||e.metaKey)&&e.key===`c`&&!I){e.preventDefault();let r=Te[(N-1)*P+t];if(r){let e=r[n],t=e==null?``:String(e);navigator.clipboard.writeText(t).catch(()=>{})}return}p&&F.find(e=>e.accessorKey===n)?.editable!==!1&&e.key===`Enter`&&!I&&(e.preventDefault(),Be(t,n))},Je=e=>{e.key===`Enter`?(e.preventDefault(),Ve(!0)):e.key===`Escape`&&(e.preventDefault(),He())};(0,W.useEffect)(()=>{I&&we.current&&(we.current.focus(),we.current.select())},[I]),(0,W.useEffect)(()=>()=>{document.removeEventListener(`mousemove`,Fe),document.removeEventListener(`mouseup`,U)},[]);let Ze=Ee.length>0&&Ee.every((e,t)=>{let n=H(e,(N-1)*P+t);return M.has(n)}),Qe=Ee.some((e,t)=>{let n=H(e,(N-1)*P+t);return M.has(n)})&&!Ze,$e=_e.size>0,et=o||l||s&&M.size>0||$e;return(0,G.jsxs)(`div`,{className:`flex flex-col h-full gap-2 sm:gap-4 ${v||``}`,children:[et&&(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-stretch sm:items-center justify-between gap-2 sm:gap-4 flex-none`,children:[(0,G.jsx)(`div`,{className:`flex items-center gap-2 flex-1`,children:o&&(0,G.jsxs)(`div`,{className:`relative w-full sm:max-w-sm flex-1`,children:[(0,G.jsx)(st,{className:`absolute left-2 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,G.jsx)(VS,{placeholder:w(`table.search`),value:A,onChange:e=>{te(e.target.value),oe(1)},className:`pl-8`})]})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[$e&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:w(`table.modified`,{count:_e.size})}),(0,G.jsxs)(J,{variant:`outline`,size:`sm`,onClick:Ke,disabled:R,children:[(0,G.jsx)(At,{className:`h-4 w-4 mr-2`}),w(`table.cancelAll`)]}),(0,G.jsxs)(J,{variant:`default`,size:`sm`,onClick:Ge,disabled:R,children:[(0,G.jsx)(ot,{className:`h-4 w-4 mr-2`}),w(`table.saveAll`,{count:_e.size})]})]}),l&&(0,G.jsxs)(J,{variant:`outline`,size:`sm`,onClick:Me,disabled:Te.length===0,children:[(0,G.jsx)(Vt,{className:`h-4 w-4 mr-2`}),w(`table.exportCSV`)]}),s&&M.size>0&&(0,G.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:w(`table.selected`,{count:M.size})})]})]}),(0,G.jsx)(`div`,{className:q(`flex-1 min-h-0 overflow-auto relative bg-background [-webkit-overflow-scrolling:touch]`,!C&&`rounded-md border shadow-[inset_-8px_0_8px_-8px_rgba(0,0,0,0.08)]`),children:(0,G.jsxs)(Lw,{children:[t&&(0,G.jsx)(Ww,{children:t}),(0,G.jsx)(Rw,{className:`sticky top-0 bg-muted/30 z-10`,children:(0,G.jsxs)(Vw,{children:[s&&(0,G.jsx)(Hw,{className:q(`w-10 bg-muted/30`,b>0&&`sticky left-0 z-20`),children:(0,G.jsx)(xx,{checked:Ze?!0:Qe?`indeterminate`:!1,onCheckedChange:Ae})}),x&&(0,G.jsx)(Hw,{className:q(`w-10 bg-muted/30 text-center`,b>0&&`sticky z-20`),style:b>0?{left:s?40:0}:void 0,children:(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`#`})}),F.map((e,t)=>{let n=le[e.accessorKey]||e.width||k[e.accessorKey],r=de===t,i=pe===t,a=b>0&&t<b,o=a?F.slice(0,t).reduce((e,t,n)=>{if(n<b){let n=le[t.accessorKey]||t.width||k[t.accessorKey];return e+(typeof n==`number`?n:n&&parseInt(String(n),10)||150)}return e},(s?40:0)+(x?40:0)):void 0;return(0,G.jsx)(Hw,{className:q(e.className,c&&e.sortable!==!1&&`cursor-pointer select-none`,r&&`opacity-50`,i&&`border-l-2 border-primary`,e.align===`right`&&`text-right`,e.align===`center`&&`text-center`,`relative group bg-muted/30`,a&&`sticky z-20`,a&&t===b-1&&`border-r-2 border-border shadow-[2px_0_4px_-2px_rgba(0,0,0,0.1)]`),style:{width:n,minWidth:n,...a&&{left:o}},draggable:f,onDragStart:e=>Ie(e,t),onDragOver:e=>Le(e,t),onDrop:e=>Re(e,t),onDragEnd:ze,onClick:()=>c&&e.sortable!==!1&&De(e.accessorKey),onContextMenu:t=>Oe(t,e.accessorKey),children:(0,G.jsxs)(`div`,{className:q(`flex items-center`,e.align===`right`?`justify-end`:`justify-between`),children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[f&&(0,G.jsx)(Dt,{className:`h-4 w-4 opacity-0 group-hover:opacity-50 cursor-grab active:cursor-grabbing shrink-0`}),e.headerIcon&&(0,G.jsx)(`span`,{className:`text-muted-foreground shrink-0`,children:e.headerIcon}),(0,G.jsx)(`span`,{className:`text-xs font-normal text-muted-foreground whitespace-nowrap truncate`,children:e.header}),c&&e.sortable!==!1&&Ne(e.accessorKey)]}),d&&e.resizable!==!1&&(0,G.jsx)(`div`,{className:`absolute right-0 top-0 h-full w-1 cursor-col-resize hover:bg-primary opacity-0 hover:opacity-100 transition-opacity`,onMouseDown:t=>Pe(t,e.accessorKey),onClick:e=>e.stopPropagation()})]})},e.accessorKey)}),u&&(0,G.jsx)(Hw,{className:`w-24 text-right bg-muted/30`,children:w(`common.actions`)})]})}),(0,G.jsx)(zw,{children:Ee.length===0?(0,G.jsx)(Vw,{className:`hover:bg-transparent`,children:(0,G.jsx)(Uw,{colSpan:F.length+ +!!s+ +!!x+ +!!u,className:`h-48 text-center text-muted-foreground border-0`,children:(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-3`,children:[(0,G.jsx)(st,{className:`h-8 w-8 text-muted-foreground/50`}),(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(`p`,{children:w(`table.noResults`)}),(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground/50`,children:w(`table.noResultsHint`)})]}),e.emptyAction&&(()=>{let t=e.emptyAction,n=t?.type?K.get(t.type):null;return n?(0,G.jsx)(n,{schema:t}):null})()]})})}):(0,G.jsxs)(G.Fragment,{children:[Ee.map((t,n)=>{let r=(N-1)*P+n,i=H(t,r),a=M.has(i),o=_e.has(n),c=_e.get(n)||{};return(0,G.jsxs)(Vw,{"data-state":a?`selected`:void 0,className:q(`bg-background border-b border-border group/row transition-colors`,`hover:bg-muted/40`,`data-[state=selected]:bg-primary/5 data-[state=selected]:hover:bg-primary/10`,`focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-inset`,e.onRowClick&&`cursor-pointer`,o&&`bg-amber-50 dark:bg-amber-950/20`,g&&g(t,n)),style:_?_(t,n):void 0,onClick:n=>{if(e.onRowClick&&!n.defaultPrevented){let r=n.target;if(r.closest(`button`)||r.closest(`a`)||r.closest(`input, select, textarea, label`)||r.closest(`[role="checkbox"]`)||r.closest(`[role="menu"]`)||r.closest(`[role="menuitem"]`)||r.closest(`[role="menuitemcheckbox"]`)||r.closest(`[role="menuitemradio"]`)||r.closest(`[role="dialog"]`)||r.closest(`[role="alertdialog"]`)||r.closest(`[role="listbox"]`)||r.closest(`[role="option"]`)||r.closest(`[role="tab"]`)||r.closest(`[data-radix-popper-content-wrapper]`))return;e.onRowClick(t)}},children:[s&&(0,G.jsx)(Uw,{className:q(y,b>0&&`sticky left-0 z-10 bg-background`,h===`hover`&&`relative`),children:h===`hover`?(0,G.jsx)(`div`,{className:q(`transition-opacity`,a?`opacity-100`:`opacity-0 group-hover/row:opacity-100`),children:(0,G.jsx)(xx,{checked:a,onCheckedChange:e=>je(i,e)})}):(0,G.jsx)(xx,{checked:a,onCheckedChange:e=>je(i,e)})}),x&&(0,G.jsxs)(Uw,{className:q(`text-center w-10 relative`,y,b>0&&`sticky z-10 bg-background`),style:b>0?{left:s?40:0}:void 0,children:[(0,G.jsx)(`span`,{className:q(`text-xs text-muted-foreground tabular-nums select-none`,!s&&e.onRowClick&&`group-hover/row:invisible`),children:r+1}),!s&&e.onRowClick&&(0,G.jsxs)(`button`,{type:`button`,className:`absolute inset-0 hidden group-hover/row:flex items-center justify-center gap-0.5 text-xs font-medium text-primary hover:text-primary/80`,"data-testid":`row-expand-button`,onClick:n=>{n.stopPropagation(),e.onRowClick?.(t)},title:`Open record`,children:[(0,G.jsx)(`span`,{children:w(`table.open`)}),(0,G.jsx)(Xe,{className:`h-3 w-3`})]})]}),F.map((e,r)=>{let i=le[e.accessorKey]||e.width||k[e.accessorKey],a=t[e.accessorKey],o=c[e.accessorKey]!==void 0,l=o?c[e.accessorKey]:a,u=I?.rowIndex===n&&I?.columnKey===e.accessorKey,d=p&&e.editable!==!1,f=b>0&&r<b,h=f?F.slice(0,r).reduce((e,t,n)=>{if(n<b){let n=le[t.accessorKey]||t.width||k[t.accessorKey];return e+(typeof n==`number`?n:n&&parseInt(String(n),10)||150)}return e},(s?40:0)+(x?40:0)):void 0;return(0,G.jsx)(Uw,{className:q(e.cellClassName,e.align===`right`&&`text-right`,e.align===`center`&&`text-center`,d&&!u&&`cursor-text hover:bg-muted/50`,o&&`font-semibold text-amber-700 dark:text-amber-400`,f&&`sticky z-10 bg-background`,f&&r===b-1&&`border-r-2 border-border shadow-[2px_0_4px_-2px_rgba(0,0,0,0.1)]`),style:{width:i,minWidth:i,maxWidth:i,...f&&{left:h}},onDoubleClick:()=>d&&!m&&Be(n,e.accessorKey),onClick:()=>d&&m&&Be(n,e.accessorKey),onKeyDown:t=>qe(t,n,e.accessorKey),tabIndex:0,children:u?(0,G.jsx)(VS,{ref:we,value:L,onChange:e=>ge(e.target.value),onKeyDown:Je,className:`h-8 px-2 py-1`}):typeof e.cell==`function`?e.cell(l,t):typeof l==`object`&&l?String(l):ee(l)},r)}),u&&(0,G.jsx)(Uw,{className:q(`text-right`,y),children:(0,G.jsx)(`div`,{className:`flex items-center justify-end gap-1`,children:o&&(e.onRowSave||e.onBatchSave)?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(J,{variant:`ghost`,size:`icon`,onClick:()=>We(n),disabled:R,title:`Cancel changes`,children:(0,G.jsx)(At,{className:`h-4 w-4`})}),(0,G.jsx)(J,{variant:`ghost`,size:`icon`,onClick:()=>Ue(n),disabled:R,title:`Save row`,children:(0,G.jsx)(ot,{className:`h-4 w-4 text-green-600`})})]}):(e.onRowEdit||e.onRowDelete)&&(0,G.jsxs)(uS,{children:[(0,G.jsx)(dS,{asChild:!0,children:(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:e=>e.stopPropagation(),"aria-label":`Row actions`,children:(0,G.jsx)($t,{className:`h-4 w-4`})})}),(0,G.jsxs)(hS,{align:`end`,onClick:e=>e.stopPropagation(),children:[e.onRowEdit&&(0,G.jsxs)(gS,{onClick:()=>e.onRowEdit?.(t),children:[(0,G.jsx)(Ye,{className:`mr-2 h-4 w-4`}),w(`table.edit`)]}),e.onRowEdit&&e.onRowDelete&&(0,G.jsx)(bS,{}),e.onRowDelete&&(0,G.jsxs)(gS,{onClick:()=>e.onRowDelete?.(t),className:`text-destructive focus:text-destructive`,children:[(0,G.jsx)(Sn,{className:`mr-2 h-4 w-4`}),w(`table.delete`)]})]})]})})})]},i)}),S&&(0,G.jsx)(Vw,{className:`hover:bg-muted/30 cursor-pointer border-b border-border`,"data-testid":`add-record-row`,onClick:()=>e.onAddRecord?.(),children:(0,G.jsx)(Uw,{colSpan:F.length+ +!!s+ +!!x+ +!!u,className:`h-9 px-3 py-1.5`,children:(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5 text-muted-foreground text-sm hover:text-foreground transition-colors`,children:[(0,G.jsx)(Kt,{className:`h-3.5 w-3.5`}),w(`table.addRecord`)]})})})]})})]})}),i&&Te.length>0&&V>1&&(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-xs sm:text-sm text-muted-foreground`,children:[w(`table.rowsPerPage`),`:`]}),(0,G.jsxs)(OC,{value:P.toString(),onValueChange:e=>{se(Number(e)),oe(1)},children:[(0,G.jsx)(AC,{className:`w-20`,children:(0,G.jsx)(kC,{})}),(0,G.jsxs)(NC,{children:[(0,G.jsx)(FC,{value:`5`,children:`5`}),(0,G.jsx)(FC,{value:`10`,children:`10`}),(0,G.jsx)(FC,{value:`20`,children:`20`}),(0,G.jsx)(FC,{value:`50`,children:`50`}),(0,G.jsx)(FC,{value:`100`,children:`100`})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs sm:text-sm text-muted-foreground`,children:w(`table.pageInfo`,{current:N,total:V})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(J,{variant:`outline`,size:`icon`,onClick:()=>oe(1),disabled:N===1,children:(0,G.jsx)(vt,{className:`h-4 w-4`})}),(0,G.jsx)(J,{variant:`outline`,size:`icon`,onClick:()=>oe(Math.max(1,N-1)),disabled:N===1,children:(0,G.jsx)(Tt,{className:`h-4 w-4`})}),(0,G.jsx)(J,{variant:`outline`,size:`icon`,onClick:()=>oe(Math.min(V,N+1)),disabled:N===V,children:(0,G.jsx)(Xe,{className:`h-4 w-4`})}),(0,G.jsx)(J,{variant:`outline`,size:`icon`,onClick:()=>oe(V),disabled:N===V,children:(0,G.jsx)(lt,{className:`h-4 w-4`})})]})]})]}),be&&(0,G.jsxs)(`div`,{className:`fixed z-50 min-w-[160px] rounded-md border bg-popover p-1 shadow-md`,style:{left:be.x,top:be.y},"data-testid":`column-context-menu`,onClick:e=>e.stopPropagation(),children:[c&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer`,onClick:()=>{re(be.columnKey),j(`asc`),z(null)},children:[(0,G.jsx)(wn,{className:`h-3.5 w-3.5`}),w(`table.sortAsc`)]}),(0,G.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer`,onClick:()=>{re(be.columnKey),j(`desc`),z(null)},children:[(0,G.jsx)(nt,{className:`h-3.5 w-3.5`}),w(`table.sortDesc`)]}),(0,G.jsx)(`div`,{className:`my-1 h-px bg-border`})]}),(0,G.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer`,onClick:()=>ke(be.columnKey),children:[(0,G.jsx)(At,{className:`h-3.5 w-3.5`}),w(`table.hideColumn`)]})]})]})},{namespace:`ui`,label:`Data Table`,icon:`table`,inputs:[{name:`caption`,type:`string`,label:`Caption`},{name:`columns`,type:`array`,label:`Columns`,description:`Array of { header, accessorKey, className, width, sortable, filterable, resizable }`,required:!0},{name:`data`,type:`array`,label:`Data`,description:`Array of data objects`,required:!0},{name:`pagination`,type:`boolean`,label:`Enable Pagination`,defaultValue:!0},{name:`pageSize`,type:`number`,label:`Page Size`,defaultValue:10},{name:`searchable`,type:`boolean`,label:`Enable Search`,defaultValue:!0},{name:`selectable`,type:`boolean`,label:`Enable Row Selection`,defaultValue:!1},{name:`sortable`,type:`boolean`,label:`Enable Sorting`,defaultValue:!0},{name:`exportable`,type:`boolean`,label:`Enable Export`,defaultValue:!1},{name:`rowActions`,type:`boolean`,label:`Show Row Actions`,defaultValue:!1},{name:`resizableColumns`,type:`boolean`,label:`Enable Column Resizing`,defaultValue:!0},{name:`reorderableColumns`,type:`boolean`,label:`Enable Column Reordering`,defaultValue:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{caption:`Enterprise Data Table`,pagination:!0,pageSize:10,searchable:!0,selectable:!0,sortable:!0,exportable:!0,rowActions:!0,resizableColumns:!0,reorderableColumns:!0,columns:[{header:`ID`,accessorKey:`id`,width:`80px`},{header:`Name`,accessorKey:`name`},{header:`Email`,accessorKey:`email`},{header:`Status`,accessorKey:`status`},{header:`Role`,accessorKey:`role`}],data:[{id:1,name:`John Doe`,email:`john@example.com`,status:`Active`,role:`Admin`},{id:2,name:`Jane Smith`,email:`jane@example.com`,status:`Active`,role:`User`},{id:3,name:`Bob Johnson`,email:`bob@example.com`,status:`Inactive`,role:`User`},{id:4,name:`Alice Williams`,email:`alice@example.com`,status:`Active`,role:`Manager`},{id:5,name:`Charlie Brown`,email:`charlie@example.com`,status:`Active`,role:`User`},{id:6,name:`Diana Prince`,email:`diana@example.com`,status:`Active`,role:`Admin`},{id:7,name:`Ethan Hunt`,email:`ethan@example.com`,status:`Inactive`,role:`User`},{id:8,name:`Fiona Gallagher`,email:`fiona@example.com`,status:`Active`,role:`User`},{id:9,name:`George Wilson`,email:`george@example.com`,status:`Active`,role:`Manager`},{id:10,name:`Hannah Montana`,email:`hannah@example.com`,status:`Active`,role:`User`},{id:11,name:`Ivan Drago`,email:`ivan@example.com`,status:`Inactive`,role:`User`},{id:12,name:`Julia Roberts`,email:`julia@example.com`,status:`Active`,role:`Admin`}]}});function bD(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}var xD={Home:`House`};function SD(e){if(!e)return null;let t=bD(e);return un[xD[t]||t]??null}var CD=(0,W.forwardRef)(({schema:e,className:t,context:n,...r},i)=>{let{"data-obj-id":a,"data-obj-type":o,style:s,data:c,...l}=r,{execute:u}=$l(),[d,f]=(0,W.useState)(!1),p=typeof c==`object`&&c?c:{},m=Vl(Bl(e.visible),p),h=Vl(Bl(e.enabled),p),g=SD(e.icon),_=e.variant===`primary`?`default`:e.variant||`default`,v=e.size===`md`?`default`:e.size||`default`,y=(0,W.useCallback)(async()=>{if(!d){f(!0);try{let t=Array.isArray(e.params)?{actionParams:e.params}:{params:e.params};await u({type:e.actionType||e.type,name:e.name,target:e.target,execute:e.execute,endpoint:e.endpoint,method:e.method,...t,confirmText:e.confirmText,successMessage:e.successMessage,errorMessage:e.errorMessage,refreshAfter:e.refreshAfter,toast:e.toast,...n})}finally{f(!1)}}},[e,u,d,n]);return e.visible&&!m?null:(0,G.jsxs)(J,{ref:i,type:`button`,variant:_,size:v,className:q(e.className,t),disabled:(e.enabled?!h:!1)||d,onClick:y,...l,"data-obj-id":a,"data-obj-type":o,style:s,children:[d&&(0,G.jsx)(dt,{className:`mr-2 h-4 w-4 animate-spin`}),!d&&g&&(0,G.jsx)(g,{className:q(`h-4 w-4`,e.label&&`mr-2`)}),e.label]})});CD.displayName=`ActionButtonRenderer`,K.register(`action:button`,CD,{namespace:`action`,label:`Action Button`,inputs:[{name:`name`,type:`string`,label:`Action Name`},{name:`label`,type:`string`,label:`Label`,defaultValue:`Action`},{name:`icon`,type:`string`,label:`Icon`},{name:`type`,type:`enum`,label:`Action Type`,enum:[`script`,`url`,`modal`,`flow`,`api`],defaultValue:`script`},{name:`target`,type:`string`,label:`Target`},{name:`variant`,type:`enum`,label:`Variant`,enum:[`default`,`primary`,`secondary`,`destructive`,`outline`,`ghost`],defaultValue:`default`},{name:`size`,type:`enum`,label:`Size`,enum:[`sm`,`md`,`lg`],defaultValue:`md`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{label:`Action`,type:`script`,variant:`default`,size:`md`}});var wD=(0,W.forwardRef)(({schema:e,className:t,context:n,...r},i)=>{let{"data-obj-id":a,"data-obj-type":o,style:s,...c}=r,{execute:l}=$l(),[u,d]=(0,W.useState)(!1),f=Vl(Bl(e.visible)),p=Vl(Bl(e.enabled)),m=SD(e.icon),h=e.variant===`primary`?`default`:e.variant||`ghost`,g=(0,W.useCallback)(async()=>{if(!u){d(!0);try{await l({type:e.type,name:e.name,target:e.target,execute:e.execute,endpoint:e.endpoint,method:e.method,params:e.params,confirmText:e.confirmText,successMessage:e.successMessage,errorMessage:e.errorMessage,refreshAfter:e.refreshAfter,toast:e.toast,...n})}finally{d(!1)}}},[e,l,u,n]);if(e.visible&&!f)return null;let _=(0,G.jsx)(J,{ref:i,type:`button`,variant:h,size:`icon`,className:q(`h-8 w-8`,e.className,t),disabled:(e.enabled?!p:!1)||u,onClick:g,"aria-label":e.label||e.name,...c,"data-obj-id":a,"data-obj-type":o,style:s,children:u?(0,G.jsx)(dt,{className:`h-4 w-4 animate-spin`}):m?(0,G.jsx)(m,{className:`h-4 w-4`}):(0,G.jsx)(`span`,{className:`text-xs`,children:e.label?.charAt(0)||`?`})});return e.label||e.description?(0,G.jsx)(QC,{delayDuration:300,children:(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:_}),(0,G.jsx)(tw,{children:(0,G.jsx)(`p`,{children:e.label||e.description})})]})}):_});wD.displayName=`ActionIconRenderer`,K.register(`action:icon`,wD,{namespace:`action`,label:`Action Icon`,inputs:[{name:`name`,type:`string`,label:`Action Name`},{name:`label`,type:`string`,label:`Tooltip Label`},{name:`icon`,type:`string`,label:`Icon`},{name:`type`,type:`enum`,label:`Action Type`,enum:[`script`,`url`,`modal`,`flow`,`api`],defaultValue:`script`},{name:`target`,type:`string`,label:`Target`},{name:`variant`,type:`enum`,label:`Variant`,enum:[`default`,`secondary`,`destructive`,`outline`,`ghost`],defaultValue:`ghost`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{icon:`play`,type:`script`,variant:`ghost`}});function TD(){try{let{t:e}=hu(),t=e(`detail.moreActions`);return!t||t===`detail.moreActions`?`More actions`:t}catch{return`More actions`}}var ED=({action:e,onExecute:t})=>{let n=Vl(Bl(e.visible)),r=Vl(Bl(e.enabled)),i=(0,W.useMemo)(()=>{let t=SD(e.icon);return t?(0,G.jsx)(t,{className:`mr-2 h-4 w-4`}):null},[e.icon]);return e.visible&&!n?null:(0,G.jsxs)(gS,{disabled:e.enabled?!r:!1,onSelect:n=>{n.preventDefault(),t(e)},className:q(e.variant===`destructive`&&`text-destructive focus:text-destructive`,e.className),children:[i,(0,G.jsx)(`span`,{children:e.label||e.name})]})};ED.displayName=`ActionMenuItem`;var DD=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n,{execute:c}=$l(),[l,u]=(0,W.useState)(!1),d=TD(),f=Vl(Bl(e.visible)),p=SD(e.icon)||$t,m=e.variant||`ghost`,h=e.size||`icon`,g=(0,W.useCallback)(async e=>{u(!0);try{if(typeof e.onClick==`function`){await e.onClick();return}await c({type:e.type,name:e.name,target:e.target,execute:e.execute,endpoint:e.endpoint,method:e.method,params:e.params,confirmText:e.confirmText,successMessage:e.successMessage,errorMessage:e.errorMessage,refreshAfter:e.refreshAfter,toast:e.toast})}finally{u(!1)}},[c]);if(e.visible&&!f)return null;let _=e.actions||[];return _.length===0?null:(0,G.jsxs)(uS,{children:[(0,G.jsx)(dS,{asChild:!0,children:(0,G.jsx)(J,{ref:r,type:`button`,variant:m,size:h,className:q(h===`icon`&&`h-8 w-8`,e.className,t),disabled:l,"aria-label":e.label||d,...s,"data-obj-id":i,"data-obj-type":a,style:o,children:l?(0,G.jsx)(dt,{className:`h-4 w-4 animate-spin`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(p,{className:q(`h-4 w-4`,e.label&&`mr-2`)}),e.label&&(0,G.jsx)(`span`,{children:e.label})]})})}),(0,G.jsx)(hS,{align:`end`,children:_.map((e,t)=>{let n=e.tags?.includes(`separator-before`)&&t>0;return(0,G.jsxs)(W.Fragment,{children:[n&&(0,G.jsx)(bS,{}),(0,G.jsx)(ED,{action:e,onExecute:g})]},e.name||t)})})]})});DD.displayName=`ActionMenuRenderer`,K.register(`action:menu`,DD,{namespace:`action`,label:`Action Menu`,inputs:[{name:`label`,type:`string`,label:`Trigger Label`},{name:`icon`,type:`string`,label:`Trigger Icon`},{name:`actions`,type:`object`,label:`Actions`},{name:`variant`,type:`enum`,label:`Trigger Variant`,enum:[`default`,`secondary`,`outline`,`ghost`],defaultValue:`ghost`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{variant:`ghost`,actions:[]}});var OD=({action:e,variant:t,size:n,onExecute:r})=>{let[i,a]=(0,W.useState)(!1),o=Vl(Bl(e.visible)),s=Vl(Bl(e.enabled)),c=SD(e.icon),l=e.variant===`primary`?`default`:e.variant||t||`outline`,u=e.size===`md`?`default`:e.size||n||`sm`,d=(0,W.useCallback)(async()=>{if(!i){a(!0);try{await r(e)}finally{a(!1)}}},[e,r,i]);return e.visible&&!o?null:(0,G.jsxs)(J,{type:`button`,variant:l,size:u,className:e.className,disabled:(e.enabled?!s:!1)||i,onClick:d,children:[i&&(0,G.jsx)(dt,{className:`mr-2 h-4 w-4 animate-spin`}),!i&&c&&(0,G.jsx)(c,{className:q(`h-4 w-4`,e.label&&`mr-2`)}),e.label]})};OD.displayName=`InlineActionButton`;var kD=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n,{execute:c}=$l(),[l,u]=(0,W.useState)(!1),d=Vl(Bl(e.visible)),f=e.actions||[];e.location&&(f=f.filter(t=>!t.locations||t.locations.includes(e.location)));let p=(0,W.useCallback)(async e=>{await c({type:e.type,name:e.name,target:e.target,execute:e.execute,endpoint:e.endpoint,method:e.method,params:e.params,confirmText:e.confirmText,successMessage:e.successMessage,errorMessage:e.errorMessage,refreshAfter:e.refreshAfter,toast:e.toast})},[c]);if(e.visible&&!d||f.length===0)return null;if((e.display||`inline`)===`dropdown`){let n=SD(e.icon);return(0,G.jsxs)(uS,{children:[(0,G.jsx)(dS,{asChild:!0,children:(0,G.jsxs)(J,{type:`button`,variant:e.variant||`outline`,size:e.size===`md`?`default`:e.size||`default`,className:q(e.className,t),disabled:l,"data-obj-id":i,"data-obj-type":a,style:o,children:[l&&(0,G.jsx)(dt,{className:`mr-2 h-4 w-4 animate-spin`}),!l&&n&&(0,G.jsx)(n,{className:`mr-2 h-4 w-4`}),e.label||`Actions`,(0,G.jsx)(nt,{className:`ml-2 h-3 w-3 opacity-50`})]})}),(0,G.jsx)(hS,{align:`end`,children:f.map((e,t)=>{let n=SD(e.icon),r=e.tags?.includes(`separator-before`)&&t>0;return(0,G.jsxs)(W.Fragment,{children:[r&&(0,G.jsx)(bS,{}),(0,G.jsxs)(gS,{onSelect:async t=>{t.preventDefault(),u(!0);try{await p(e)}finally{u(!1)}},className:q(e.variant===`destructive`&&`text-destructive focus:text-destructive`,e.className),children:[n&&(0,G.jsx)(n,{className:`mr-2 h-4 w-4`}),(0,G.jsx)(`span`,{children:e.label||e.name})]})]},e.name||t)})})]})}return(0,G.jsx)(`div`,{ref:r,className:q(`flex items-center gap-2`,e.className,t),...s,"data-obj-id":i,"data-obj-type":a,style:o,children:f.map(t=>(0,G.jsx)(OD,{action:t,variant:e.variant,size:e.size,onExecute:p},t.name))})});kD.displayName=`ActionGroupRenderer`,K.register(`action:group`,kD,{namespace:`action`,label:`Action Group`,inputs:[{name:`name`,type:`string`,label:`Group Name`},{name:`label`,type:`string`,label:`Label`},{name:`icon`,type:`string`,label:`Icon`},{name:`actions`,type:`object`,label:`Actions`},{name:`display`,type:`enum`,label:`Display Mode`,enum:[`inline`,`dropdown`],defaultValue:`inline`},{name:`variant`,type:`enum`,label:`Variant`,enum:[`default`,`secondary`,`outline`,`ghost`],defaultValue:`outline`},{name:`size`,type:`enum`,label:`Size`,enum:[`sm`,`md`,`lg`],defaultValue:`sm`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{display:`inline`,variant:`outline`,size:`sm`,actions:[]}});function AD(){try{let{t:e}=hu(),t=e(`common.actions`);return!t||t===`common.actions`?`Actions`:t}catch{return`Actions`}}var jD=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let i=AD(),{"data-obj-id":a,"data-obj-type":o,style:s,data:c,actions:l,systemActions:u,location:d,maxVisible:f,mobileMaxVisible:p,direction:m,gap:h,variant:g,size:_,visible:v,...y}=n,b=Vl(Bl(e.visible)),x=XC(),S=(0,W.useMemo)(()=>{let t=e.actions||[],n=e.location?t.filter(t=>!t.locations||t.locations.length===0||t.locations.includes(e.location)):t,r=new Set;return n.filter(e=>e.name?r.has(e.name)?!1:(r.add(e.name),!0):!0)},[e.actions,e.location]),C=(0,W.useMemo)(()=>{let t=e.systemActions||[],n=new Set;return t.filter(e=>e.name?n.has(e.name)?!1:(n.add(e.name),!0):!0)},[e.systemActions]),w=x?e.mobileMaxVisible??1:e.maxVisible??3,{inlineActions:T,overflowActions:E}=(0,W.useMemo)(()=>S.length<=w?{inlineActions:S,overflowActions:[]}:{inlineActions:S.slice(0,w),overflowActions:S.slice(w)},[S,w]),ee=(0,W.useMemo)(()=>{if(C.length===0)return E;if(E.length===0)return C;let[e,...t]=C,n={...e,tags:[...e.tags||[],`separator-before`]};return[...E,n,...t]},[E,C]);if(e.visible&&!b||S.length===0&&C.length===0)return null;let D=e.direction||`horizontal`,O=e.gap||`gap-2`,k=ee.length>0?K.get(`action:menu`):null,A=k?(0,G.jsx)(k,{schema:{type:`action:menu`,actions:ee,variant:e.variant||`ghost`,size:e.size||`sm`}}):null;return(0,G.jsxs)(`div`,{ref:r,className:q(`flex items-center`,D===`vertical`?`flex-col items-stretch`:`flex-row flex-wrap`,O,e.className,t),role:`toolbar`,"aria-label":i,...y,"data-obj-id":a,"data-obj-type":o,style:s,children:[T.map(t=>{let n=t.component||`action:button`,r=K.get(n);return r?(0,G.jsx)(r,{schema:{...t,type:n,actionType:t.type,variant:t.variant||e.variant,size:t.size||e.size},data:c},t.name):null}),ee.length>0&&A]})});jD.displayName=`ActionBarRenderer`,K.register(`action:bar`,jD,{namespace:`action`,label:`Action Bar`,inputs:[{name:`actions`,type:`object`,label:`Actions`},{name:`systemActions`,type:`object`,label:`System Actions (always in overflow)`},{name:`location`,type:`enum`,label:`Location`,enum:[`list_toolbar`,`list_item`,`record_header`,`record_more`,`record_related`,`global_nav`]},{name:`maxVisible`,type:`number`,label:`Max Visible Actions`,defaultValue:3},{name:`direction`,type:`enum`,label:`Direction`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`},{name:`variant`,type:`enum`,label:`Default Variant`,enum:[`default`,`secondary`,`outline`,`ghost`],defaultValue:`outline`},{name:`size`,type:`enum`,label:`Default Size`,enum:[`sm`,`md`,`lg`],defaultValue:`sm`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{maxVisible:3,direction:`horizontal`,variant:`outline`,size:`sm`,actions:[]}});function MD(e){let[t,n]=W.useState({width:0,height:0});return W.useEffect(()=>{let t=e.current;if(!t||typeof ResizeObserver>`u`)return;let r=t.getBoundingClientRect();n(e=>e.width===r.width&&e.height===r.height?e:{width:r.width,height:r.height});let i=new ResizeObserver(e=>{let t=e[0];if(!t)return;let r,i=t.borderBoxSize?.[0];r=i?{width:i.inlineSize,height:i.blockSize}:{width:t.contentRect.width,height:t.contentRect.height},n(e=>e.width===r.width&&e.height===r.height?e:r)});return i.observe(t),()=>i.disconnect()},[e]),t}var ND=[`completed`,`failed`,`cancelled`,`expired`];function PD(e){return!!e&&ND.includes(e)}function FD(e={}){let{dataSource:t,pollIntervalMs:n=1500,maxAttempts:r=600,onComplete:i,onError:a}=e,[o,s]=(0,W.useState)(null),[c,l]=(0,W.useState)(null),[u,d]=(0,W.useState)(!1),f=(0,W.useRef)(null),p=(0,W.useRef)(null),m=(0,W.useRef)(0),h=(0,W.useRef)(!1),g=(0,W.useRef)({onComplete:i,onError:a});g.current={onComplete:i,onError:a};let _=!!t?.createExportJob&&!!t?.getExportJobProgress,v=(0,W.useCallback)(()=>{p.current&&=(clearTimeout(p.current),null)},[]),y=(0,W.useCallback)(()=>{v(),f.current=null,h.current=!1,m.current=0,s(null),l(null),d(!1)},[v]);(0,W.useEffect)(()=>()=>v(),[v]);let b=(0,W.useCallback)(async()=>{if(t?.getExportJobProgress&&!(!f.current||h.current)){if(m.current+=1,m.current>r){let e=Error(`Export job timed out (max attempts exceeded)`);l(e),d(!1),g.current.onError?.(e,o??void 0);return}try{let e=await t.getExportJobProgress(f.current);if(h.current)return;if(s(e),PD(e.status)){if(d(!1),e.status===`completed`)g.current.onComplete?.(e);else{let t=e.error?.message??`Export ${e.status}`,n=Error(t);l(n),g.current.onError?.(n,e)}return}p.current=setTimeout(b,n)}catch(e){if(h.current)return;let t=e instanceof Error?e:Error(String(e));l(t),d(!1),g.current.onError?.(t,o??void 0)}}},[t,r,n,o]),x=(0,W.useCallback)(async(e,r)=>{if(!t?.createExportJob){let e=Error(`DataSource does not implement createExportJob — cannot start async export.`);return l(e),g.current.onError?.(e),null}v(),h.current=!1,m.current=0,l(null),s(null),d(!0);try{let i=await t.createExportJob(e,r);if(f.current=i.jobId,s({jobId:i.jobId,status:i.status,processedRecords:0,totalRecords:i.estimatedRecords,percentComplete:0}),PD(i.status)){if(d(!1),i.status===`completed`&&t.getExportJobProgress)try{let e=await t.getExportJobProgress(i.jobId);s(e),g.current.onComplete?.(e)}catch{}return i.jobId}return p.current=setTimeout(b,n),i.jobId}catch(e){let t=e instanceof Error?e:Error(String(e));return l(t),d(!1),g.current.onError?.(t),null}},[t,v,b,n]),S=(0,W.useCallback)(async()=>{if(f.current){if(h.current=!0,v(),d(!1),t?.cancelExportJob)try{await t.cancelExportJob(f.current)}catch{}s(e=>e&&{...e,status:`cancelled`})}},[t,v]),C=(0,W.useCallback)(async()=>{if(!f.current)return null;if(t?.getExportJobDownloadUrl)try{return await t.getExportJobDownloadUrl(f.current)}catch{}return o?.downloadUrl??null},[t,o]);return{isRunning:u,progress:o,error:c,isSupported:_,start:x,cancel:S,getDownloadUrl:C,download:(0,W.useCallback)(async e=>{let t=await C();if(!t)return!1;let n=document.createElement(`a`);return n.href=t,e&&(n.download=e),n.rel=`noopener`,document.body.appendChild(n),n.click(),n.remove(),!0},[C]),reset:y}}(0,W.createContext)(null),(0,W.createContext)(null),(0,W.createContext)(null);var ID=(0,W.createContext)(null);function LD(){return{name:`object-url`,async upload(e){let t=e,n=`name`in t&&t.name||`upload`;return{url:URL.createObjectURL(e),name:n,size:e.size,mimeType:e.type||`application/octet-stream`}}}}function RD(){let e=(0,W.useContext)(ID),t=(0,W.useMemo)(()=>{let e=LD();return{upload:(t,n)=>e.upload(t,n),adapter:e}},[]);return e??t}var zD=Object.defineProperty,BD=(e,t)=>()=>(e&&(t=e(e=0)),t),VD=(e,t)=>{let n={};for(var r in e)zD(n,r,{get:e[r],enumerable:!0});return t||zD(n,Symbol.toStringTag,{value:`Module`}),n},HD=VD({TextField:()=>UD});function UD({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema;if(r)return(0,G.jsx)(`span`,{className:`text-sm`,children:e||(0,G.jsx)(UT,{})});let o=a?.rows,{inputType:s,...c}=i;return o&&o>1?(0,G.jsx)(Yw,{...c,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder,disabled:r||c.disabled}):(0,G.jsx)(VS,{...c,type:a?.type===`password`?`password`:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder,disabled:r||c.disabled})}var WD=BD((()=>{})),GD=VD({NumberField:()=>KD});function KD({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return e==null?(0,G.jsx)(UT,{}):(0,G.jsx)(`span`,{className:`text-sm`,children:e});let a=n||i.schema,o=a?.precision,{inputType:s,...c}=i;return(0,G.jsx)(VS,{...c,type:`number`,value:e??``,onChange:e=>{let n=e.target.value;t(n===``?null:Number(n))},placeholder:a?.placeholder,disabled:r||c.disabled,step:o?10**-o:`any`})}var qD=BD((()=>{})),JD=VD({BooleanField:()=>YD});function YD({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.widget,s=(0,W.useId)(),c=a?.name||s,l=a?.label||`Checkbox`;if(r)return(0,G.jsx)(`span`,{className:`text-sm`,children:e?`Yes`:`No`});let{inputType:u,...d}=i;return o===`checkbox`?(0,G.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,G.jsx)(xx,{...d,id:c,checked:!!e,onCheckedChange:e=>t(!!e),disabled:r||d.disabled}),(0,G.jsx)(CS,{htmlFor:c,className:`sr-only`,children:l})]}):(0,G.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,G.jsx)(Iw,{...d,id:c,checked:!!e,onCheckedChange:t,disabled:r||d.disabled}),(0,G.jsx)(CS,{htmlFor:c,className:`sr-only`,children:l})]})}var XD=BD((()=>{})),ZD,QD,$D=BD((()=>{ZD={"common.selectOption":`Select an option`,"common.select":`Select...`,"common.search":`Search`,"table.selected":`{{count}} selected`},QD=gu(ZD,`common.selectOption`)})),eO=VD({SelectField:()=>tO});function tO({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.options||[],{t:s}=QD();if(r){let t=o.find(t=>t.value===e)?.label||e;return t?(0,G.jsx)(`span`,{className:`text-sm`,children:t}):(0,G.jsx)(UT,{})}return(0,G.jsxs)(OC,{...i,value:e,onValueChange:t,disabled:r||i.disabled,children:[(0,G.jsx)(AC,{className:i.className,id:i.id,children:(0,G.jsx)(kC,{placeholder:a?.placeholder||s(`common.selectOption`)})}),(0,G.jsx)(NC,{position:`popper`,children:o.map(e=>(0,G.jsx)(FC,{value:e.value,children:e.label},e.value))})]})}var nO=BD((()=>{$D()})),rO=VD({DateField:()=>iO});function iO({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return e?(0,G.jsx)(`span`,{className:`text-sm`,children:new Date(e).toLocaleDateString()}):(0,G.jsx)(UT,{});let{inputType:a,...o}=i;return(0,G.jsx)(VS,{...o,type:`date`,value:e||``,onChange:e=>t(e.target.value),disabled:r||o.disabled})}var aO=BD((()=>{})),oO=VD({EmailField:()=>sO});function sO({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let o=n||a.schema;if(r)return e?(0,G.jsx)(`a`,{href:`mailto:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,G.jsx)(UT,{});let{inputType:s,...c}=a;return(0,G.jsx)(VS,{...c,type:`email`,value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder||`email@example.com`,disabled:r||c.disabled,"aria-invalid":!!i})}var cO=BD((()=>{})),lO=VD({PhoneField:()=>uO});function uO({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let o=n||a.schema;if(r)return e?(0,G.jsx)(`a`,{href:`tel:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,G.jsx)(UT,{});let{inputType:s,...c}=a;return(0,G.jsx)(VS,{...c,type:`tel`,value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder||`(555) 123-4567`,disabled:r||c.disabled,"aria-invalid":!!i})}var dO=BD((()=>{})),fO=VD({UrlField:()=>pO});function pO({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let o=n||a.schema;if(r)return e?e.startsWith(`http://`)||e.startsWith(`https://`)?(0,G.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,G.jsx)(`span`,{className:`text-sm`,children:e}):(0,G.jsx)(UT,{});let{inputType:s,...c}=a;return(0,G.jsx)(VS,{...c,type:`url`,value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder||`https://example.com`,disabled:r||c.disabled,"aria-invalid":!!i})}var mO=BD((()=>{})),hO=VD({CurrencyField:()=>_O});function gO(e,t,n){if(t)try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t,minimumFractionDigits:n,maximumFractionDigits:n}).format(e)}catch{return`${t} ${e.toFixed(n)}`}try{return new Intl.NumberFormat(`en-US`,{minimumFractionDigits:n,maximumFractionDigits:n}).format(e)}catch{return e.toFixed(n)}}function _O({value:e,onChange:t,field:n,readonly:r,errorMessage:i,className:a,...o}){let s=n||o.schema,c=s?.currency,l=s?.precision??2;if(r)return e==null?(0,G.jsx)(UT,{}):(0,G.jsx)(`span`,{className:`text-sm font-medium tabular-nums`,children:gO(Number(e),c,l)});let u=e=>{let n=parseFloat(e.target.value);isNaN(n)||t(parseFloat(n.toFixed(l)))},d=c?c===`USD`?`$`:c:``;return(0,G.jsxs)(`div`,{className:`relative`,children:[d&&(0,G.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:d}),(0,G.jsx)(VS,{...o,type:`number`,value:e??``,onChange:e=>{t(e.target.value===``?null:parseFloat(e.target.value))},onBlur:u,placeholder:s?.placeholder||`0.00`,disabled:r||o.disabled,className:`${d?`pl-8`:``} ${a||``}`,step:(10**-l).toFixed(l),"aria-invalid":!!i})]})}var vO=BD((()=>{})),yO=VD({TextAreaField:()=>bO});function bO({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){if(r)return(0,G.jsx)(`div`,{className:`text-sm whitespace-pre-wrap`,children:e||(0,G.jsx)(UT,{})});let o=n||a.schema,s=o?.rows||4,c=o?.max_length,l=!!(a.mobileFullscreen??o?.mobile_fullscreen??a.mobile_fullscreen??a.schema?.mobile_fullscreen),[u,d]=(0,W.useState)(!1),[f,p]=(0,W.useState)(e??``),m=()=>{p(e??``),d(!0)},h=()=>d(!1),g=()=>{t(f),d(!1)},{inputType:_,mobileFullscreen:v,...y}=a;return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Yw,{...y,value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder,disabled:r||y.disabled,rows:s,maxLength:c,"aria-invalid":!!i,className:y.className}),l&&(0,G.jsx)(`button`,{type:`button`,onClick:m,className:`absolute top-1.5 right-1.5 inline-flex items-center justify-center size-7 rounded-md bg-background/80 text-muted-foreground hover:text-foreground hover:bg-background border shadow-sm transition-colors`,"aria-label":`Edit ${o?.label??`text`} fullscreen`,"data-testid":`textarea-fullscreen-toggle`,children:(0,G.jsx)(Ze,{className:`size-3.5`})}),c&&(0,G.jsxs)(`div`,{className:`absolute bottom-2 right-2 text-xs text-gray-400`,"aria-live":`polite`,"aria-label":`Character count: ${(e||``).length} of ${c}`,children:[(e||``).length,`/`,c]}),l&&(0,G.jsx)(Tx,{open:u,onOpenChange:d,children:(0,G.jsxs)(kx,{className:`sm:max-w-3xl h-[100dvh] sm:h-[80vh] max-h-[100dvh] sm:max-h-[80vh] flex flex-col p-0 gap-0`,"data-testid":`textarea-fullscreen-dialog`,children:[(0,G.jsx)(Ax,{className:`p-4 border-b`,children:(0,G.jsx)(Mx,{className:`text-base`,children:o?.label??`Edit text`})}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 p-4`,children:(0,G.jsx)(Yw,{autoFocus:!0,value:f,onChange:e=>p(e.target.value),maxLength:c,placeholder:o?.placeholder,className:`h-full min-h-full resize-none text-base`,"data-testid":`textarea-fullscreen-input`})}),(0,G.jsxs)(jx,{className:`p-3 border-t flex-row justify-between sm:justify-end gap-2`,children:[c&&(0,G.jsxs)(`span`,{className:`text-xs text-muted-foreground self-center`,children:[f.length,`/`,c]}),(0,G.jsxs)(`div`,{className:`flex gap-2 ml-auto`,children:[(0,G.jsxs)(J,{type:`button`,variant:`ghost`,onClick:h,children:[(0,G.jsx)(At,{className:`size-4 mr-1`}),` Cancel`]}),(0,G.jsxs)(J,{type:`button`,onClick:g,"data-testid":`textarea-fullscreen-save`,children:[(0,G.jsx)(Ct,{className:`size-4 mr-1`}),` Done`]})]})]})]})})]})}var xO=BD((()=>{})),SO=VD({RichTextField:()=>CO});function CO({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let{t:o}=hu();if(r)return(0,G.jsx)(`div`,{className:`text-sm prose prose-sm max-w-none`,children:e||(0,G.jsx)(UT,{})});let s=n||a.schema,c=s?.rows||8,l=s?.format||`markdown`;return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-gray-500`,children:[(0,G.jsx)(`span`,{children:o(`fields.richText.format`,{format:l,defaultValue:`Format: ${l}`})}),(0,G.jsx)(`span`,{className:`italic`,children:o(`fields.richText.basicEditorHint`,{defaultValue:`Rich text editor (basic)`})})]}),(0,G.jsx)(Yw,{value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||o(`fields.richText.placeholder`,{defaultValue:`Enter text...`}),disabled:r||a.disabled,rows:c,className:`font-mono text-sm ${a.className||``}`,"aria-invalid":!!i})]})}var wO=BD((()=>{}));function TO(e){return typeof e==`string`?{field:e}:e}function EO(e){return e.replace(/_/g,` `).replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/\b\w/g,e=>e.toUpperCase())}function DO(e){let t={};for(let n of e)switch(n.operator){case`eq`:t[n.field]=n.value;break;case`ne`:t[n.field]={$ne:n.value};break;case`gt`:t[n.field]={$gt:n.value};break;case`lt`:t[n.field]={$lt:n.value};break;case`gte`:t[n.field]={$gte:n.value};break;case`lte`:t[n.field]={$lte:n.value};break;case`contains`:t[n.field]={$contains:n.value};break;case`in`:t[n.field]={$in:n.value};break;case`notIn`:t[n.field]={$nin:n.value};break}return t}function OO(e,t){let n={};for(let r of t){let t=e[r.field];t==null||t===``||(r.type===`boolean`?n[r.field]=!!t:r.type===`text`?n[r.field]={$contains:t}:n[r.field]=t)}return n}function kO({open:e,onOpenChange:t,title:n=`Select Record`,multiple:r=!1,dataSource:i,objectName:a,columns:o,displayField:s=`name`,titleFormat:c,idField:l=`id`,pageSize:u=AO,value:d,onSelect:f,onSelectRecords:p,lookupFilters:m,cellRenderer:h,filterColumns:g,renderFilterBar:_,renderGrid:v}){let[y,b]=(0,W.useState)([]),[x,S]=(0,W.useState)(!1),[C,w]=(0,W.useState)(null),[T,E]=(0,W.useState)(0),[ee,D]=(0,W.useState)(``),[O,k]=(0,W.useState)(1),A=(0,W.useRef)(null),[te,ne]=(0,W.useState)(null),[re,ie]=(0,W.useState)(`asc`),[j,M]=(0,W.useState)(new Set),ae=(0,W.useRef)(new Map),[N,oe]=(0,W.useState)(-1),P=(0,W.useRef)(null),[se,F]=(0,W.useState)(!1),[ce,le]=(0,W.useState)({}),[ue,de]=(0,W.useState)({}),fe=(0,W.useRef)(null),[pe,me]=(0,W.useState)(``),I=(0,W.useMemo)(()=>o&&o.length>0?o.map(TO):[{field:s,label:EO(s)}],[o,s]),he=(0,W.useMemo)(()=>{if(g&&g.length>0)return g;if(m&&m.length>0)return m.map(e=>{let t=`text`;return typeof e.value==`boolean`?t=`boolean`:Array.isArray(e.value)?t=`select`:typeof e.value==`number`||e.operator===`gt`||e.operator===`lt`||e.operator===`gte`||e.operator===`lte`?t=`number`:(e.operator===`in`||e.operator===`notIn`)&&(t=`select`),{field:e.field,label:EO(e.field),type:t,...Array.isArray(e.value)?{options:e.value.map(e=>{if(typeof e==`object`&&e){let t=e;return{label:String(t.name||t.label||t.title||e),value:e}}return{label:String(e),value:e}})}:{}}})},[g,m]),L=(0,W.useMemo)(()=>{let e=m?.length?DO(m):{},t=he?.length?OO(ce,he):{},n={...e,...t};return Object.keys(n).length>0?n:void 0},[m,he,ce]),ge=Math.max(1,Math.ceil(T/u)),_e=(0,W.useCallback)(async(e,t=1,n,r)=>{if(!(!i||!a)){S(!0),w(null);try{let o={$top:u,$skip:(t-1)*u};e&&e.trim()&&(o.$search=e.trim()),n&&(o.$orderby={[n.field]:n.direction});let s=r===void 0?L:r;s&&Object.keys(s).length>0&&(o.$filter=s);let c=await i.find(a,o),l=c?.data??c??[];b(l),E(c?.total??l.length),oe(-1)}catch(e){w(e instanceof Error?e.message:String(e)),b([])}finally{S(!1)}}},[i,a,u,L]),ve=(0,W.useMemo)(()=>te?{field:te,direction:re}:null,[te,re]);(0,W.useEffect)(()=>{e||(D(``),k(1),w(null),b([]),ne(null),ie(`asc`),oe(-1),F(!1),le({}),de({}),me(``),M(new Set(r&&Array.isArray(d)?d:[])),ae.current.clear())},[e]),(0,W.useEffect)(()=>{e&&_e(ee||void 0,O,ve)},[e,O,ve,L]),(0,W.useEffect)(()=>{e&&r&&M(new Set(Array.isArray(d)?d:[]))},[e,r,d]);let R=(0,W.useCallback)(e=>{D(e),k(1),A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{_e(e||void 0,1,ve)},300)},[_e,ve]);(0,W.useEffect)(()=>()=>{A.current&&clearTimeout(A.current)},[]);let ye=(0,W.useCallback)(e=>{ne(t=>t===e?(ie(e=>e===`asc`?`desc`:`asc`),e):(ie(`asc`),e)),k(1)},[]),be=(0,W.useCallback)(e=>e[l]??e.id??e._id,[l]),z=(0,W.useCallback)(e=>{let t=be(e);return r?j.has(t):d===t},[r,d,j,be]),xe=(0,W.useCallback)(e=>{let n=be(e);r?M(t=>{let r=new Set(t);return r.has(n)?(r.delete(n),ae.current.delete(n)):(r.add(n),ae.current.set(n,e)),r}):(f(n),p?.([e]),t(!1))},[r,be,f,p,t]),Se=(0,W.useCallback)(()=>{let e=Array.from(j);f(e);let n=e.map(e=>ae.current.get(e)).filter(Boolean);p?.(n),t(!1)},[j,f,p,t]),Ce=(0,W.useCallback)(()=>{k(e=>Math.max(1,e-1))},[]),we=(0,W.useCallback)(()=>{k(e=>Math.min(ge,e+1))},[ge]),B=(0,W.useCallback)(e=>{if(e.key!==`Enter`)return;let t=parseInt(pe,10);!isNaN(t)&&t>=1&&t<=ge&&k(t),me(``)},[pe,ge]),Te=(0,W.useCallback)(e=>{y.length!==0&&(e.key===`ArrowDown`?(e.preventDefault(),oe(e=>Math.min(e+1,y.length-1))):e.key===`ArrowUp`?(e.preventDefault(),oe(e=>Math.max(e-1,0))):(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),N>=0&&N<y.length&&xe(y[N])))},[y,N,xe]);(0,W.useEffect)(()=>{if(N>=0&&P.current){let e=P.current.querySelector(`[data-row-index="${N}"]`);e&&typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`})}},[N]);let V=(0,W.useCallback)((e,t)=>{if(c&&t.field===s){let t=`[-\\u2013\\u2014|/·,:]`,n=!1,r=c.replace(/\{([^{}]+)\}/g,(t,r)=>{let i=e[r.trim()];return i!=null&&i!==``?(n=!0,String(i)):`\0`});if(n){let e=r.replace(RegExp(`\\s*${t}\\s*`,`g`),``).replace(RegExp(`\\s*${t}\\s*`,`g`),``).replace(RegExp(`\0`,`g`),``).replace(/\s+/g,` `).trim();if(e)return e}}let n=e[t.field];if(t.type&&h){let e=h(t.type);if(e)return(0,G.jsx)(e,{value:n,field:{name:t.field,type:t.type}})}return n==null?``:typeof n==`object`?n.$numberDecimal?String(Number(n.$numberDecimal)):n.$oid?String(n.$oid):n.$date?new Date(n.$date).toLocaleDateString():n.name||n.label?String(n.name||n.label):JSON.stringify(n):typeof n==`boolean`?n?`Yes`:`No`:String(n)},[h,c,s]),Ee=(0,W.useCallback)(e=>te===e?(0,G.jsx)(re===`asc`?Gt:Zt,{className:`ml-1 size-3`}):(0,G.jsx)(jt,{className:`ml-1 size-3 opacity-40`}),[te,re]),H=(0,W.useCallback)((e,t,n)=>{e.preventDefault(),e.stopPropagation(),fe.current={field:t,startX:e.clientX,startWidth:n};let r=e=>{if(!fe.current)return;let t=e.clientX-fe.current.startX,n=Math.max(jO,fe.current.startWidth+t);de(e=>({...e,[fe.current.field]:n}))},i=()=>{fe.current=null,document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[]),De=(0,W.useCallback)((e,t)=>{le(n=>({...n,[e]:t})),k(1)},[]),Oe=(0,W.useCallback)(()=>{le({}),k(1)},[]),ke=(0,W.useMemo)(()=>Object.values(ce).filter(e=>e!=null&&e!==``).length,[ce]),Ae=(0,W.useCallback)(e=>{let t=ce[e.field],n=e.label||EO(e.field);switch(e.type){case`select`:return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(CS,{className:`text-xs text-muted-foreground`,children:n}),(0,G.jsxs)(OC,{value:t==null?``:String(t),onValueChange:t=>De(e.field,t),children:[(0,G.jsx)(AC,{className:`h-8 text-xs`,children:(0,G.jsx)(kC,{placeholder:`Filter ${n}`})}),(0,G.jsx)(NC,{children:e.options?.map(e=>(0,G.jsx)(FC,{value:String(e.value),children:e.label},String(e.value)))})]})]});case`number`:return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(CS,{className:`text-xs text-muted-foreground`,children:n}),(0,G.jsx)(VS,{type:`number`,className:`h-8 text-xs`,value:t??``,placeholder:`Filter ${n}`,onChange:t=>{let n=t.target.value;De(e.field,n===``?``:Number(n))}})]});case`date`:return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(CS,{className:`text-xs text-muted-foreground`,children:n}),(0,G.jsx)(VS,{type:`date`,className:`h-8 text-xs`,value:t??``,onChange:t=>De(e.field,t.target.value)})]});case`boolean`:return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(CS,{className:`text-xs text-muted-foreground`,children:n}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,G.jsx)(xx,{checked:!!t,onCheckedChange:t=>De(e.field,!!t)}),(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Yes`})]})]});default:return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(CS,{className:`text-xs text-muted-foreground`,children:n}),(0,G.jsx)(VS,{className:`h-8 text-xs`,value:t??``,placeholder:`Filter ${n}`,onChange:t=>De(e.field,t.target.value)})]})}},[ce,De]),je=(0,W.useCallback)((e,t)=>e?`bg-primary/5 hover:bg-primary/10`:t%2==1?`bg-muted/20 hover:bg-accent/30`:`hover:bg-accent/30`,[]);return(0,G.jsx)(Tx,{open:e,onOpenChange:t,children:(0,G.jsxs)(kx,{className:`w-[95vw] sm:max-w-3xl lg:max-w-5xl max-h-[85vh] sm:max-h-[80vh] flex flex-col gap-0`,"data-testid":`record-picker-dialog`,children:[(0,G.jsx)(Ax,{children:(0,G.jsxs)(Mx,{children:[n,r&&(0,G.jsx)(`span`,{className:`sr-only`,children:` (multiple selection)`})]})}),(0,G.jsxs)(`div`,{className:`relative rounded-md border bg-muted/30 mb-3`,children:[(0,G.jsx)(st,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,G.jsx)(VS,{placeholder:`Search...`,value:ee,onChange:e=>R(e.target.value),className:`pl-9 border-0 bg-transparent shadow-none focus-visible:ring-0`,"data-testid":`record-picker-search`}),x&&(0,G.jsx)(dt,{className:`absolute right-3 top-1/2 -translate-y-1/2 size-4 animate-spin text-muted-foreground`,"data-testid":`record-picker-loading-indicator`})]}),he&&he.length>0&&(0,G.jsx)(`div`,{className:`py-2`,children:_?(0,G.jsx)(`div`,{"data-testid":`record-picker-filter-bar`,children:_({filterColumns:he,values:ce,onChange:De,onClear:Oe,activeCount:ke})}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`record-picker-filter-bar`,children:[(0,G.jsxs)(J,{type:`button`,variant:ke>0?`secondary`:`outline`,size:`sm`,className:`gap-1.5 shrink-0`,onClick:()=>F(e=>!e),children:[(0,G.jsx)(it,{className:`size-3.5`}),`Filters`,ke>0&&(0,G.jsx)(`span`,{className:`inline-flex h-5 min-w-[20px] items-center justify-center rounded-full bg-primary/10 px-1 text-xs font-medium text-primary`,children:ke})]}),ke>0&&(0,G.jsxs)(J,{type:`button`,variant:`ghost`,size:`sm`,className:`gap-1 text-xs`,onClick:Oe,children:[(0,G.jsx)(At,{className:`size-3`}),`Clear`]})]}),se&&(0,G.jsx)(`div`,{className:`mt-2 grid gap-3 sm:grid-cols-2 lg:grid-cols-3 border rounded-md p-3 bg-muted/30`,"data-testid":`record-picker-filter-panel`,children:he.map(e=>(0,G.jsx)(`div`,{children:Ae(e)},e.field))})]})}),C&&(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4`,role:`alert`,children:[(0,G.jsx)($e,{className:`size-5 text-destructive`}),(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:C}),(0,G.jsx)(J,{variant:`outline`,size:`sm`,onClick:()=>_e(ee||void 0,O,ve),type:`button`,children:`Retry`})]}),v?(0,G.jsx)(`div`,{className:`flex-1 min-h-0`,"data-testid":`record-picker-grid-slot`,children:v({columns:I,records:y,loading:x,totalCount:T,currentPage:O,pageSize:u,sortField:te,sortDirection:re,onSort:ye,onPageChange:k,onRowClick:xe,isSelected:z,multiple:r,idField:l,cellRenderer:h})}):(0,G.jsxs)(G.Fragment,{children:[x&&y.length===0&&!C&&(0,G.jsx)(`div`,{className:`flex-1 overflow-hidden min-h-0 border rounded-md`,role:`status`,"aria-live":`polite`,"data-testid":`record-picker-skeleton`,children:(0,G.jsxs)(Lw,{children:[(0,G.jsx)(Rw,{children:(0,G.jsxs)(Vw,{className:`bg-muted/40`,children:[r&&(0,G.jsx)(Hw,{className:`w-10`}),I.map(e=>(0,G.jsx)(Hw,{children:(0,G.jsx)(ZC,{className:`h-4 w-20`})},e.field))]})}),(0,G.jsx)(zw,{children:Array.from({length:MO},(e,t)=>(0,G.jsxs)(Vw,{children:[r&&(0,G.jsx)(Uw,{className:`w-10`,children:(0,G.jsx)(ZC,{className:`size-4 rounded`})}),I.map(e=>(0,G.jsx)(Uw,{children:(0,G.jsx)(ZC,{className:`h-4 w-full`})},e.field))]},t))})]})}),!x&&!C&&y.length===0&&(0,G.jsx)(`div`,{className:`py-8 text-center`,children:(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No records found`})}),!C&&y.length>0&&(0,G.jsxs)(`div`,{className:`relative flex-1 overflow-auto min-h-0 border rounded-md`,tabIndex:0,onKeyDown:Te,role:`grid`,"aria-label":`Records`,children:[x&&(0,G.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-background/60`,"data-testid":`record-picker-loading-overlay`,children:(0,G.jsx)(dt,{className:`size-6 animate-spin text-muted-foreground`})}),(0,G.jsxs)(Lw,{style:Object.keys(ue).length>0?{tableLayout:`fixed`}:void 0,children:[(0,G.jsx)(Rw,{className:`sticky top-0 z-[5] bg-muted/50 [&_tr]:border-b`,"data-testid":`record-picker-sticky-header`,children:(0,G.jsxs)(Vw,{children:[r&&(0,G.jsx)(Hw,{className:`w-10`}),I.map(e=>{let t=ue[e.field];return(0,G.jsxs)(Hw,{style:t?{width:`${t}px`,minWidth:`${t}px`}:e.width?{width:e.width}:void 0,className:`cursor-pointer select-none relative group text-xs font-semibold uppercase tracking-wider`,onClick:()=>ye(e.field),"aria-sort":te===e.field?re===`asc`?`ascending`:`descending`:`none`,children:[(0,G.jsxs)(`span`,{className:`inline-flex items-center`,children:[e.label||EO(e.field),Ee(e.field)]}),(0,G.jsx)(`span`,{role:`separator`,"aria-orientation":`vertical`,className:`absolute right-0 top-0 bottom-0 w-1 cursor-col-resize opacity-0 group-hover:opacity-100 bg-border hover:bg-primary/50 transition-opacity`,onMouseDown:t=>{let n=t.currentTarget.parentElement?.getBoundingClientRect();H(t,e.field,n?.width??100)},onClick:e=>e.stopPropagation(),"data-testid":`resize-handle-${e.field}`})]},e.field)})]})}),(0,G.jsx)(zw,{ref:P,children:y.map((e,t)=>{let n=be(e),i=z(e),a=t===N;return(0,G.jsxs)(Vw,{"data-row-index":t,className:q(`cursor-pointer transition-colors`,je(i,t),a&&`ring-2 ring-primary ring-inset`),onClick:()=>xe(e),"data-testid":`record-row-${n}`,"aria-selected":i,children:[r&&(0,G.jsx)(Uw,{className:`w-10`,children:i&&(0,G.jsx)(Ct,{className:`size-4 text-primary`})}),I.map(t=>(0,G.jsx)(Uw,{className:`py-2.5`,children:V(e,t)},t.field))]},n??t)})})]})]}),!C&&T>0&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-sm text-muted-foreground border-t pt-3 mt-2 px-1`,"data-testid":`record-picker-pagination`,children:[(0,G.jsxs)(`span`,{children:[T,` `,T===1?`record`:`records`,ge>1&&` · Page ${O} of ${ge}`]}),ge>1&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(J,{variant:`outline`,size:`icon`,className:`size-7`,onClick:Ce,disabled:O<=1,type:`button`,"aria-label":`Previous page`,children:(0,G.jsx)(Tt,{className:`size-4`})}),(0,G.jsx)(VS,{className:`h-7 w-12 text-center text-xs px-1`,placeholder:String(O),value:pe,onChange:e=>me(e.target.value),onKeyDown:B,"aria-label":`Jump to page`,"data-testid":`record-picker-page-jump`}),(0,G.jsx)(J,{variant:`outline`,size:`icon`,className:`size-7`,onClick:we,disabled:O>=ge,type:`button`,"aria-label":`Next page`,children:(0,G.jsx)(Xe,{className:`size-4`})})]})]})]}),r&&(0,G.jsx)(jx,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 w-full justify-between`,children:[(0,G.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[j.size,` selected`]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(J,{variant:`outline`,type:`button`,onClick:()=>t(!1),children:`Cancel`}),(0,G.jsx)(J,{type:`button`,onClick:Se,children:`Confirm`})]})]})})]})})}var AO,jO,MO,NO=BD((()=>{AO=10,jO=60,MO=5}));function PO(e){IO=e}function FO(){return IO}var IO,LO=BD((()=>{})),RO=VD({LookupField:()=>HO});function zO(e,t){if(!e||typeof e!=`object`||!t)return null;let n=`[-\\u2013\\u2014|/·,:]`,r=!1,i=t.replace(/\{([^{}]+)\}/g,(t,n)=>{let i=e[n.trim()];return i!=null&&i!==``?(r=!0,String(i)):`\0`});return r&&i.replace(RegExp(`\\s*${n}\\s*`,`g`),``).replace(RegExp(`\\s*${n}\\s*`,`g`),``).replace(RegExp(`\0`,`g`),``).replace(/\s+/g,` `).trim()||null}function BO(e,t,n,r,i){let a=e[n]??e.id??e._id,o=(i?zO(e,i):null)??e[t]??e.label??e.name??e.full_name??e.title??e.subject??String(a),s=r?e[r]:void 0;return{value:a,label:String(o),description:s,...e}}function VO(e){return{text:`text`,number:`number`,currency:`number`,percent:`number`,select:`select`,status:`select`,date:`date`,datetime:`date`,boolean:`boolean`}[e]}function HO({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=(0,W.useState)(!1),[s,c]=(0,W.useState)(``),{t:l}=QD(),[u,d]=(0,W.useState)([]),[f,p]=(0,W.useState)(!1),[m,h]=(0,W.useState)(null),[g,_]=(0,W.useState)(0),v=(0,W.useRef)(null),[y,b]=(0,W.useState)([]),[x,S]=(0,W.useState)(-1),C=(0,W.useRef)(null),w=n||i.schema,T=w?.field,E=T&&typeof T==`object`&&(`reference_to`in T||`reference`in T||`type`in T)?T:w,ee=E?.options||[],D=E?.multiple||!1,O=E?.display_field||E?.reference_field||`name`,k=E?.description_field,A=E?.id_field||`id`,te=E?.reference_to||E?.reference,ne=E?.lookup_columns,re=E?.lookup_page_size,ie=E?.lookup_filters,j=(0,W.useMemo)(()=>{let e=E?.depends_on??E?.dependsOn;return e&&Array.isArray(e)?e.map(e=>typeof e==`string`?{field:e,param:e}:{field:e.field,param:e.param??e.field}):[]},[E?.depends_on,E?.dependsOn]),M=i.dependentValues,ae=(0,W.useMemo)(()=>{if(!ne)return;let e=[];for(let t of ne)if(typeof t==`object`&&t.type){let n=VO(t.type);n&&e.push({field:t.field,label:t.label,type:n})}return e.length>0?e:void 0},[ne]),N=(0,W.useContext)(WO),oe=N?.dataSource??null,P=i.dataSource??w?.dataSource??E?.dataSource??oe,se=(0,W.useMemo)(()=>M||(N?.formValues??N?.data??{}),[M,N?.formValues,N?.data]),F=(0,W.useMemo)(()=>j.length===0?!1:j.some(({field:e})=>{let t=se[e];return t==null||t===``||Array.isArray(t)&&t.length===0}),[j,se]),ce=P!=null&&typeof P.find==`function`&&!!te,[le,ue]=(0,W.useState)(null);(0,W.useEffect)(()=>{if(!P||!te)return;let e=P.getObjectSchema;if(typeof e!=`function`)return;let t=!0;return Promise.resolve(e.call(P,te)).then(e=>{t&&ue(e)}).catch(()=>{}),()=>{t=!1}},[P,te]);let de=(0,W.useMemo)(()=>{let e=le?.titleFormat;return typeof e==`string`?e:e&&typeof e==`object`&&typeof e.source==`string`?e.source:null},[le]),fe=i.onCreateNew??w?.onCreateNew,[pe,me]=(0,W.useState)(!1),I=ce?u:ee,he=(0,W.useMemo)(()=>{if(ce||!s)return I;let e=s.toLowerCase();return I.filter(t=>t.label.toLowerCase().includes(e)||t.description&&t.description.toLowerCase().includes(e))},[ce,I,s]);(0,W.useEffect)(()=>{S(-1)},[he.length]);let L=(0,W.useCallback)(async e=>{if(!(!P||!te)){if(F){d([]),_(0);return}p(!0),h(null);try{let t={$top:UO};if(e&&e.trim()&&(t.$search=e.trim()),j.length>0){let e={};for(let{field:t,param:n}of j){let r=se[t];r==null||r===``||(e[n]=typeof r==`number`?r:String(r))}Object.keys(e).length>0&&(t.$filter=e)}let n=await P.find(te,t),r=n?.data??n??[];d(r.map(e=>BO(e,O,A,k,de))),_(n?.total??r.length)}catch(e){h(e instanceof Error?e.message:String(e)),d([])}finally{p(!1)}}},[P,te,O,A,k,de,F,j,se]);(0,W.useEffect)(()=>{a&&ce&&j.length>0&&L(s||void 0)},[(0,W.useMemo)(()=>j.map(e=>`${e.param}=${se[e.field]??``}`).join(`|`),[j,se])]),(0,W.useEffect)(()=>{a&&ce&&L(s||void 0),a||(c(``),h(null),S(-1))},[a]);let ge=(0,W.useCallback)(e=>{c(e),ce&&(v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{L(e||void 0)},300))},[ce,L]);(0,W.useEffect)(()=>()=>{v.current&&clearTimeout(v.current)},[]),(0,W.useEffect)(()=>{if(!ce||!P||!te)return;let t=D?Array.isArray(e)?e:[]:e!=null&&e!==``?[e]:[];if(!t.length)return;let n=t.filter(e=>!_e(e));if(!n.length)return;let r=!1;return(async()=>{try{let e=[];for(let t of n)if(typeof P.findOne==`function`){let n=await P.findOne(te,t);n&&e.push(BO(n,O,A,k,de))}else{let n=await P.find(te,{$filter:{[A]:t},$top:1}),r=n?.data??n??[];r[0]&&e.push(BO(r[0],O,A,k,de))}!r&&e.length&&b(t=>{let n=new Map(t.map(e=>[e.value,e]));for(let t of e)n.set(t.value,t);return Array.from(n.values())})}catch{}})(),()=>{r=!0}},[e,ce,te,O,A,k,D]);let _e=(0,W.useCallback)(e=>ee.find(t=>t.value===e)??u.find(t=>t.value===e)??y.find(t=>t.value===e),[ee,u,y]),ve=D?(Array.isArray(e)?e:[]).map(_e).filter(Boolean):e?[_e(e)].filter(Boolean):[],R=(0,W.useCallback)(n=>{if(D){let r=Array.isArray(e)?e:[];r.includes(n.value)?t(r.filter(e=>e!==n.value)):t([...r,n.value])}else t(n.value),o(!1)},[D,e,t]),ye=n=>{t(D?(Array.isArray(e)?e:[]).filter(e=>e!==n):null)},be=(0,W.useCallback)(e=>{b(e.map(e=>BO(e,O,A,k,de)))},[O,A,k,de]),z=(0,W.useCallback)(e=>{e.key===`ArrowDown`?(e.preventDefault(),S(e=>e<he.length-1?e+1:e)):e.key===`ArrowUp`?(e.preventDefault(),S(e=>e>0?e-1:0)):e.key===`Enter`&&(e.preventDefault(),x>=0&&x<he.length&&R(he[x]))},[he,x,R]);return(0,W.useEffect)(()=>{x>=0&&C.current&&C.current.querySelector(`[data-lookup-index="${x}"]`)?.scrollIntoView({block:`nearest`})},[x]),r?ve.length?D?(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:ve.map((e,t)=>(0,G.jsx)(Wb,{variant:`outline`,children:e?.label||e?.[O]},t))}):(0,G.jsx)(`span`,{className:`text-sm`,children:ve[0]?.label||ve[0]?.[O]}):(0,G.jsx)(UT,{}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[ve.length>0&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:ve.map((e,t)=>(0,G.jsxs)(Wb,{variant:`outline`,className:`gap-1`,children:[e?.label||e?.[O],(0,G.jsx)(`button`,{onClick:()=>ye(e?.value),className:`ml-1 hover:text-destructive`,type:`button`,"aria-label":`Remove ${e?.label||e?.[O]}`,children:(0,G.jsx)(At,{className:`size-3`})})]},t))}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsxs)(_C,{open:a,onOpenChange:e=>!F&&o(e),children:[(0,G.jsx)(vC,{asChild:!0,children:(0,G.jsxs)(J,{variant:`outline`,className:`min-w-0 flex-1 justify-start text-left font-normal`,type:`button`,disabled:F||i.disabled,"data-testid":F?`lookup-trigger-gated`:void 0,title:F?`Select ${j.map(e=>e.field).join(`, `)} first`:void 0,children:[(0,G.jsx)(st,{className:`mr-2 size-4`}),F?`Select ${j.map(e=>e.field).join(`, `)} first`:ve.length===0?w?.placeholder||l(`common.select`):D?l(`table.selected`,{count:ve.length}):l(`common.select`)]})}),(0,G.jsxs)(yC,{className:`w-[var(--radix-popover-trigger-width)] p-0`,align:`start`,children:[(0,G.jsx)(`div`,{className:`p-2`,children:(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(st,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,G.jsx)(VS,{placeholder:l(`common.search`)+`...`,value:s,onChange:e=>ge(e.target.value),onKeyDown:z,className:`w-full pl-9 h-8 text-sm`}),f&&(0,G.jsx)(dt,{className:`absolute right-3 top-1/2 -translate-y-1/2 size-4 animate-spin text-muted-foreground`,"data-testid":`lookup-loading`})]})}),m&&(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4 px-2`,role:`alert`,children:[(0,G.jsx)($e,{className:`size-5 text-destructive`}),(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:m}),(0,G.jsx)(J,{variant:`outline`,size:`sm`,onClick:()=>L(s||void 0),type:`button`,children:`Retry`})]}),f&&he.length===0&&!m&&(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-6`,role:`status`,"aria-live":`polite`,children:[(0,G.jsx)(dt,{className:`size-6 animate-spin text-muted-foreground`}),(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading…`})]}),!m&&!(f&&he.length===0)&&(0,G.jsx)(`div`,{ref:C,className:`max-h-64 overflow-y-auto px-1 pb-1`,role:`listbox`,children:he.length===0?(0,G.jsxs)(`div`,{className:`py-4 text-center`,children:[(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No options found`}),fe&&(0,G.jsxs)(J,{variant:`ghost`,size:`sm`,className:`mt-2 gap-1`,type:`button`,onClick:()=>{fe(s),o(!1)},children:[(0,G.jsx)(Kt,{className:`size-4`}),`Create new`]})]}):(0,G.jsxs)(G.Fragment,{children:[he.map((t,n)=>{let r=D?(Array.isArray(e)?e:[]).includes(t.value):e===t.value;return(0,G.jsxs)(`button`,{"data-lookup-index":n,role:`option`,"aria-selected":r,onClick:()=>R(t),className:`w-full text-left px-3 py-2 rounded-md text-sm hover:bg-accent flex items-center justify-between ${n===x?`bg-accent text-accent-foreground`:r?`bg-accent/50 text-accent-foreground`:``}`,type:`button`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`span`,{className:`block truncate`,children:t.label}),t.description&&(0,G.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:t.description})]}),r&&(0,G.jsx)(Wb,{variant:`default`,className:`ml-2 shrink-0`,children:`Selected`})]},t.value)}),ce&&g>he.length&&(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground text-center py-2`,children:[`Showing `,he.length,` of `,g,` results.`]}),ce&&g>he.length&&(0,G.jsxs)(`button`,{type:`button`,className:`w-full text-center px-3 py-2 rounded-md text-sm font-medium text-primary hover:bg-accent flex items-center justify-center gap-1.5`,onClick:()=>{o(!1),me(!0)},"data-testid":`show-all-results`,children:[(0,G.jsx)(bt,{className:`size-3.5`}),`Show All Results (`,g,`)`]}),fe&&(0,G.jsxs)(`button`,{type:`button`,className:`w-full text-left px-3 py-2 rounded-md text-sm hover:bg-accent flex items-center gap-1.5 text-muted-foreground`,onClick:()=>{fe(s),o(!1)},children:[(0,G.jsx)(Kt,{className:`size-3.5`}),`Create new`,s?` "${s}"`:``]})]})})]})]}),ce&&(0,G.jsx)(J,{variant:`outline`,size:`icon`,className:`shrink-0`,type:`button`,onClick:()=>me(!0),"aria-label":`Browse all records`,title:`Browse all records`,"data-testid":`browse-all-records`,children:(0,G.jsx)(bt,{className:`size-4`})})]}),ce&&P&&te&&(0,G.jsx)(kO,{open:pe,onOpenChange:me,title:w?.label||`Select`,multiple:D,dataSource:P,objectName:te,columns:ne,displayField:O,titleFormat:de,idField:A,pageSize:re,value:e,onSelect:t,onSelectRecords:be,lookupFilters:ie,cellRenderer:FO(),filterColumns:ae})]})}var UO,WO,GO=BD((()=>{NO(),LO(),$D(),UO=50,WO=Al})),KO=VD({DateTimeField:()=>qO});function qO({value:e,onChange:t,field:n,readonly:r,...i}){if(r){if(!e)return(0,G.jsx)(UT,{});let t=new Date(e);return(0,G.jsxs)(`span`,{className:`text-sm`,children:[t.toLocaleDateString(),` `,t.toLocaleTimeString()]})}let{inputType:a,...o}=i;return(0,G.jsx)(VS,{...o,type:`datetime-local`,value:e||``,onChange:e=>t(e.target.value),disabled:r||o.disabled})}var JO=BD((()=>{})),YO=VD({TimeField:()=>XO});function XO({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return(0,G.jsx)(`span`,{className:`text-sm`,children:e||(0,G.jsx)(UT,{})});let{inputType:a,...o}=i;return(0,G.jsx)(VS,{...o,type:`time`,value:e||``,onChange:e=>t(e.target.value),disabled:r||o.disabled})}var ZO=BD((()=>{})),QO=VD({PercentField:()=>$O});function $O({value:e,onChange:t,field:n,readonly:r,errorMessage:i,className:a,...o}){let s=n||o.schema,c=s?.precision??2;if(r)return e==null?(0,G.jsx)(UT,{}):(0,G.jsxs)(`span`,{className:`text-sm font-medium tabular-nums`,children:[(e*100).toFixed(c),`%`]});let l=e==null?``:e*100,u=e==null?0:e*100,d=e=>{if(e.target.value===``){t(null);return}let n=parseFloat(e.target.value);t(isNaN(n)?null:n/100)},f=e=>{if(r||o.disabled)return;if(!Array.isArray(e)||e.length===0){t(null);return}let n=e[0];t(typeof n==`number`?n/100:null)},p=10**-c;return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(VS,{...o,type:`number`,value:l,onChange:d,placeholder:s?.placeholder||`0`,disabled:r||o.disabled,className:`pr-8 ${a||``}`,step:(10**-c).toFixed(c),"aria-invalid":!!i}),(0,G.jsx)(`span`,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:`%`})]}),(0,G.jsx)(Pw,{value:[u],onValueChange:f,min:0,max:100,step:p,disabled:r||o.disabled,className:`w-full`,"aria-label":`Percentage`,"data-testid":`percent-slider`})]})}var ek=BD((()=>{})),tk=VD({PasswordField:()=>nk});function nk({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let[o,s]=(0,W.useState)(!1),c=n||a.schema;if(r)return(0,G.jsx)(`span`,{className:`text-sm`,children:`••••••••`});let{inputType:l,...u}=a;return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(VS,{...u,type:o?`text`:`password`,value:e||``,onChange:e=>t(e.target.value),placeholder:c?.placeholder,disabled:r||u.disabled,className:`pr-10 ${i||``}`}),(0,G.jsx)(J,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent`,onClick:()=>s(!o),tabIndex:-1,children:(0,G.jsx)(o?Pt:_n,{className:`size-4 text-gray-500`})})]})}var rk=BD((()=>{})),ik=VD({FileField:()=>ak});function ak({value:e,onChange:t,field:n,readonly:r,...i}){let a=(0,W.useRef)(null),o=(0,W.useRef)(null),s=n||i.schema,c=s?.multiple||!1,l=s?.accept?s.accept.join(`,`):void 0,u=s?.maxSize,d=s?.capture??null,f=!l||l.split(`,`).some(e=>e.trim().startsWith(`image/`)||e.trim()===`image/*`||e.trim().startsWith(`.jp`)||e.trim().startsWith(`.png`)||e.trim().startsWith(`.gif`)||e.trim().startsWith(`.webp`)),p=typeof navigator<`u`&&(navigator.maxTouchPoints>0||/Mobi|Android/i.test(navigator.userAgent)),m=d===!1?!1:d??(f&&p?`environment`:null),[h,g]=(0,W.useState)(!1),[_,v]=(0,W.useState)([]),{upload:y}=RD(),[b,x]=(0,W.useState)({}),[S,C]=(0,W.useState)(!1),w=e?Array.isArray(e)?e:[e]:[],T=(0,W.useCallback)(async e=>{if(e.length===0)return;let n=[],r=e.filter(e=>{if(u&&e.size>u){let t=(u/(1024*1024)).toFixed(1);return n.push(`"${e.name}" exceeds max size (${t} MB)`),!1}return!0});if(v(n),r.length!==0){C(!0);try{let e=(await Promise.all(r.map(async e=>{try{let t=await y(e,{onProgress:t=>x(n=>({...n,[e.name]:t}))});return{name:t.name,original_name:e.name,size:t.size,mime_type:t.mimeType,url:t.url}}catch(t){return n.push(`Failed to upload "${e.name}": ${t.message}`),v([...n]),null}}))).filter(Boolean);if(e.length===0)return;t(c?[...w,...e]:e[0])}finally{C(!1),x({})}}},[w,c,t,u,y]),E=(0,W.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),g(!0)},[]),ee=(0,W.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),g(!1)},[]),D=(0,W.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),g(!1);let t=Array.from(e.dataTransfer.files);if(l){let e=l.split(`,`).map(e=>e.trim().toLowerCase());T(t.filter(t=>{let n=t.name.split(`.`),r=n.length>1?`.`+n.pop()?.toLowerCase():``;return e.some(e=>e===t.type||r&&e===r||e.endsWith(`/*`)&&t.type.startsWith(e.replace(`/*`,`/`)))}))}else T(t)},[l,T]);if(r)return e?(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,G.jsx)(`span`,{className:`text-sm truncate max-w-xs`,children:e.name||e.original_name||`File`},t))}):(0,G.jsx)(UT,{});let O=e=>{T(Array.from(e.target.files||[]))},k=e=>{if(c){let n=w.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)},A=e=>(e.mime_type||``).startsWith(`image/`);return(0,G.jsxs)(`div`,{className:i.className,children:[(0,G.jsx)(`input`,{ref:a,type:`file`,multiple:c,accept:l,onChange:O,className:`hidden`}),m&&(0,G.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,capture:m,onChange:O,className:`hidden`,"aria-label":`Camera capture`,"data-testid":`file-field-camera-input`}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{onDragOver:E,onDragLeave:ee,onDrop:D,onClick:()=>a.current?.click(),className:`
|
|
28
|
+
flex flex-col items-center justify-center gap-2 p-6
|
|
29
|
+
border-2 border-dashed rounded-lg cursor-pointer
|
|
30
|
+
transition-colors duration-200
|
|
31
|
+
${h?`border-primary bg-primary/5 text-primary`:`border-muted-foreground/25 hover:border-primary/50 text-muted-foreground hover:text-foreground`}
|
|
32
|
+
`,role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),a.current?.click())},children:[(0,G.jsx)(Qt,{className:`size-8 ${h?`text-primary`:`text-muted-foreground`}`}),(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium`,children:h?`Drop files here`:`Drag & drop files here`}),(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[`or click to browse`,m?` • use the camera button below`:``]})]})]}),m&&(0,G.jsxs)(J,{type:`button`,variant:`outline`,size:`sm`,className:`w-full`,onClick:e=>{e.stopPropagation(),o.current?.click()},"data-testid":`file-field-camera-button`,children:[(0,G.jsx)(ct,{className:`size-4 mr-2`}),m===`user`?`Take selfie`:`Take photo`]}),S&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,"data-testid":`file-field-uploading`,children:[(0,G.jsx)(dt,{className:`size-3 animate-spin`}),(0,G.jsxs)(`span`,{children:[`Uploading…`,Object.keys(b).length>0&&` (${Math.round(Object.values(b).reduce((e,t)=>e+t,0)/Object.keys(b).length*100)}%)`]})]}),_.length>0&&(0,G.jsx)(`div`,{className:`space-y-0.5`,children:_.map((e,t)=>(0,G.jsx)(`p`,{className:`text-xs text-destructive`,children:e},t))}),w.length>0&&(0,G.jsx)(`div`,{className:`space-y-1`,children:w.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 bg-muted/50 rounded-md border`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[A(e)&&e.url?(0,G.jsx)(`img`,{src:e.url,alt:e.name,className:`size-8 object-cover rounded shrink-0`}):A(e)?(0,G.jsx)(tt,{className:`size-4 text-muted-foreground shrink-0`}):(0,G.jsx)(nn,{className:`size-4 text-muted-foreground shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`}),e.size&&(0,G.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`(`,(e.size/1024).toFixed(1),` KB)`]})]}),(0,G.jsx)(J,{type:`button`,variant:`ghost`,size:`sm`,onClick:e=>{e.stopPropagation(),k(t)},className:`h-6 w-6 p-0`,children:(0,G.jsx)(At,{className:`size-3`})})]},t))})]})]})}var ok=BD((()=>{})),sk=VD({ImageCropperDialog:()=>ck}),ck,lk=BD((()=>{ck=({open:e,onOpenChange:t,src:n,outputType:r=`image/png`,outputName:i=`cropped.png`,onConfirm:a})=>{let o=(0,W.useRef)(null),s=(0,W.useRef)(null),[c,l]=(0,W.useState)(0),[u,d]=(0,W.useState)({x:0,y:0,width:100,height:100}),[f,p]=(0,W.useState)(null),[m,h]=(0,W.useState)(!1);(0,W.useEffect)(()=>{if(!e||!n)return;h(!1);let t=new Image;t.crossOrigin=`anonymous`,t.onload=()=>{s.current=t;let e=t.naturalWidth*.8,n=t.naturalHeight*.8;d({x:(t.naturalWidth-e)/2,y:(t.naturalHeight-n)/2,width:e,height:n}),l(0),h(!0)},t.onerror=()=>h(!1),t.src=n},[e,n]),(0,W.useEffect)(()=>{if(!m||!s.current||!o.current)return;let e=s.current,t=o.current,n=t.getContext(`2d`);if(!n)return;let r=480/e.naturalWidth,i=e.naturalHeight*r;t.width=480,t.height=i,n.clearRect(0,0,480,i),n.save(),n.translate(480/2,i/2),n.rotate(c*Math.PI/180);let a=c%180==0?480:i,l=c%180==0?i:480;n.drawImage(e,-a/2,-l/2,a,l),n.restore();let d=u.x*r,f=u.y*r,p=u.width*r,h=u.height*r;n.fillStyle=`rgba(0,0,0,0.45)`,n.fillRect(0,0,480,f),n.fillRect(0,f+h,480,i-f-h),n.fillRect(0,f,d,h),n.fillRect(d+p,f,480-d-p,h),n.strokeStyle=`#3b82f6`,n.lineWidth=2,n.strokeRect(d,f,p,h)},[m,u,c]);let g=(0,W.useCallback)(e=>{if(!s.current||!o.current)return;let t=o.current.getBoundingClientRect(),n=s.current.naturalWidth/t.width;p({ox:(e.clientX-t.left)*n,oy:(e.clientY-t.top)*n,cx:u.x,cy:u.y}),e.target.setPointerCapture(e.pointerId)},[u]),_=(0,W.useCallback)(e=>{if(!f||!s.current||!o.current)return;let t=o.current.getBoundingClientRect(),n=s.current.naturalWidth/t.width,r=(e.clientX-t.left)*n-f.ox,i=(e.clientY-t.top)*n-f.oy,a=Math.max(0,Math.min(f.cx+r,s.current.naturalWidth-u.width)),c=Math.max(0,Math.min(f.cy+i,s.current.naturalHeight-u.height));d(e=>({...e,x:a,y:c}))},[f,u.width,u.height]),v=(0,W.useCallback)(()=>p(null),[]),y=(0,W.useCallback)(()=>l(e=>(e+90)%360),[]),b=(0,W.useCallback)(async()=>{if(!s.current)return;let e=s.current,n=document.createElement(`canvas`),o=u.width,l=u.height;n.width=c%180==0?o:l,n.height=c%180==0?l:o;let d=n.getContext(`2d`);if(!d)return;d.save(),d.translate(n.width/2,n.height/2),d.rotate(c*Math.PI/180),d.drawImage(e,u.x,u.y,o,l,-o/2,-l/2,o,l),d.restore();let f=await new Promise(e=>n.toBlob(e,r));f&&(a(f,i),t(!1))},[u,c,i,r,a,t]);return(0,G.jsx)(Tx,{open:e,onOpenChange:t,children:(0,G.jsxs)(kx,{className:`max-w-xl`,children:[(0,G.jsxs)(Ax,{children:[(0,G.jsx)(Mx,{children:`Crop & rotate image`}),(0,G.jsx)(Nx,{children:`Drag the highlighted box to reposition the crop. Use the rotate button to spin the image in 90° increments.`})]}),(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[m?(0,G.jsx)(`canvas`,{ref:o,"data-testid":`image-cropper-canvas`,role:`img`,"aria-label":`Image crop preview`,className:`border rounded-md cursor-move touch-none max-w-full`,onPointerDown:g,onPointerMove:_,onPointerUp:v,onPointerCancel:v}):(0,G.jsx)(`div`,{className:`flex h-[270px] w-full items-center justify-center text-sm text-muted-foreground`,children:`Loading image…`}),(0,G.jsxs)(`div`,{className:`flex w-full items-center justify-between text-xs text-muted-foreground`,children:[(0,G.jsxs)(`span`,{children:[`Crop: `,Math.round(u.width),` × `,Math.round(u.height),` px`]}),(0,G.jsxs)(`span`,{children:[`Rotation: `,c,`°`]})]})]}),(0,G.jsxs)(jx,{className:`flex justify-between sm:justify-between`,children:[(0,G.jsxs)(J,{type:`button`,variant:`outline`,onClick:y,"data-testid":`image-cropper-rotate`,children:[(0,G.jsx)(_t,{className:`size-4 mr-2`}),`Rotate 90°`]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(J,{type:`button`,variant:`ghost`,onClick:()=>t(!1),children:`Cancel`}),(0,G.jsxs)(J,{type:`button`,onClick:b,disabled:!m,"data-testid":`image-cropper-confirm`,children:[(0,G.jsx)(bn,{className:`size-4 mr-2`}),`Apply crop`]})]})]})]})})}})),uk=VD({ImageField:()=>dk});function dk({value:e,onChange:t,field:n,readonly:r,...i}){let a=(0,W.useRef)(null),o=n||i.schema,s=o?.multiple||!1,c=o?.accept?o.accept.join(`,`):`image/*`,l=o?.crop!==!1,[u,d]=(0,W.useState)(null),{upload:f}=RD(),[p,m]=(0,W.useState)(!1);if(r)return e?(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,G.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`},t))}):(0,G.jsx)(UT,{});let h=e?Array.isArray(e)?e:[e]:[],g=async e=>{let n=Array.from(e.target.files||[]);if(n.length!==0){m(!0);try{let e=await Promise.all(n.map(async e=>{let t=await f(e);return{name:t.name,original_name:e.name,size:t.size,mime_type:t.mimeType,url:t.url}}));t(s?[...h,...e]:e[0])}finally{m(!1),a.current&&(a.current.value=``)}}},_=e=>{if(s){let n=h.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)},v=(0,W.useCallback)(async(e,n)=>{if(u){m(!0);try{let r=await f(e),i={name:r.name||n,original_name:n,size:r.size,mime_type:r.mimeType,url:r.url};if(s){let e=[...h];e[u.index]=i,t(e)}else t(i)}finally{m(!1),d(null)}}},[u,h,s,t,f]),y=(0,W.useCallback)(e=>{let t=h[e];t?.url&&d({index:e,src:t.url,name:t.name||`image-${e}.png`})},[h]);return(0,G.jsxs)(`div`,{className:i.className,children:[(0,G.jsx)(`input`,{ref:a,type:`file`,multiple:s,accept:c,onChange:g,className:`hidden`}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[h.length>0&&(0,G.jsx)(`div`,{className:`grid grid-cols-4 gap-2`,children:h.map((e,t)=>(0,G.jsxs)(`div`,{className:`relative group`,children:[(0,G.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`}),(0,G.jsxs)(`div`,{className:`absolute top-1 right-1 flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:[l&&(0,G.jsx)(J,{type:`button`,variant:`secondary`,size:`sm`,onClick:()=>y(t),className:`h-6 w-6 p-0`,"aria-label":`Crop image ${t+1}`,"data-testid":`image-field-crop-${t}`,children:(0,G.jsx)(bn,{className:`size-3`})}),(0,G.jsx)(J,{type:`button`,variant:`destructive`,size:`sm`,onClick:()=>_(t),className:`h-6 w-6 p-0`,children:(0,G.jsx)(At,{className:`size-3`})})]})]},t))}),(0,G.jsxs)(J,{type:`button`,variant:`outline`,onClick:()=>a.current?.click(),className:`w-full`,disabled:p,"data-testid":`image-field-upload-button`,children:[p?(0,G.jsx)(dt,{className:`size-4 mr-2 animate-spin`}):(0,G.jsx)(tt,{className:`size-4 mr-2`}),p?`Uploading…`:h.length>0?`Add More Images`:`Upload Image`]})]}),l&&u&&(0,G.jsx)(W.Suspense,{fallback:null,children:(0,G.jsx)(fk,{open:!0,onOpenChange:e=>!e&&d(null),src:u.src,outputName:u.name,onConfirm:v})})]})}var fk,pk=BD((()=>{fk=(0,W.lazy)(()=>Promise.resolve().then(()=>(lk(),sk)).then(e=>({default:e.ImageCropperDialog})))})),mk=VD({LocationField:()=>hk});function hk({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=e&&typeof e==`object`?`${e.latitude||0}, ${e.longitude||0}`:``;return r?(0,G.jsx)(`span`,{className:`text-sm`,children:o||(0,G.jsx)(UT,{})}):(0,G.jsx)(VS,{type:`text`,value:o,onChange:e=>{let n=e.target.value;if(!n.trim()){t(null);return}let r=n.split(`,`).map(e=>e.trim());if(r.length===2){let e=parseFloat(r[0]),n=parseFloat(r[1]);!isNaN(e)&&!isNaN(n)&&t({latitude:e,longitude:n})}},placeholder:a?.placeholder||`latitude, longitude`,disabled:r||i.disabled,className:i.className})}var gk=BD((()=>{})),_k=VD({FormulaField:()=>vk});function vk({value:e,field:t,...n}){let r=(t||n.schema)?.return_type||`text`;if(e==null)return(0,G.jsx)(UT,{className:n.className});let i;return i=r===`number`||r===`currency`?typeof e==`number`?e.toFixed(2):String(e):r===`boolean`?e?`Yes`:`No`:r===`date`?new Date(e).toLocaleDateString():String(e),(0,G.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:i})}var yk=BD((()=>{})),bk=VD({SummaryField:()=>xk});function xk({value:e,field:t,...n}){let r=(t||n.schema)?.summary_type||`count`;if(e==null)return(0,G.jsx)(UT,{className:n.className});let i;return i=r===`count`?String(e):[`sum`,`avg`,`min`,`max`].includes(r)&&typeof e==`number`?e.toFixed(2):String(e),(0,G.jsx)(`span`,{className:`text-sm font-medium tabular-nums text-gray-700 ${n.className||``}`,children:i})}var Sk=BD((()=>{})),Ck=VD({AutoNumberField:()=>wk});function wk({value:e,field:t,...n}){return e==null?(0,G.jsx)(UT,{className:n.className}):(0,G.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:String(e)})}var Tk=BD((()=>{})),Ek=VD({UserField:()=>Dk});function Dk({value:e,onChange:t,field:n,readonly:r,...i}){let a=(n||i.schema)?.multiple||!1;if(r){if(!e)return(0,G.jsx)(UT,{});let t=Array.isArray(e)?e:[e];return(0,G.jsxs)(`div`,{className:`flex -space-x-2`,children:[t.slice(0,3).map((e,t)=>{let n=e.name||e.username||`User`;return(0,G.jsx)(Bb,{className:`size-8 border-2 border-white`,title:n,children:(0,G.jsx)(Hb,{className:`bg-blue-500 text-white text-xs`,children:n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})},t)}),t.length>3&&(0,G.jsx)(Bb,{className:`size-8 border-2 border-white`,children:(0,G.jsxs)(Hb,{className:`bg-gray-200 text-gray-600 text-xs`,children:[`+`,t.length-3]})})]})}let o=e?Array.isArray(e)?e:[e]:[],s=e=>{if(a){let n=o.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)};return(0,G.jsxs)(`div`,{className:i.className,children:[o.length>0&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2 mb-2`,children:o.map((e,t)=>{let n=e.name||e.username||`User`;return(0,G.jsxs)(Wb,{variant:`outline`,className:`gap-2 pr-1`,children:[(0,G.jsx)(Bb,{className:`size-5`,children:(0,G.jsx)(Hb,{className:`bg-blue-500 text-white text-xs`,children:n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})}),(0,G.jsx)(`span`,{className:`text-sm`,children:n}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>s(t),className:`ml-1 rounded-full hover:bg-gray-200 p-0.5`,children:(0,G.jsx)(At,{className:`size-3`})})]},t)})}),(0,G.jsx)(`div`,{className:`text-sm text-gray-500 italic`,children:`User selection component requires integration with user management system`})]})}var Ok=BD((()=>{})),kk=VD({ObjectField:()=>Ak});function Ak({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,[o,s]=(0,W.useState)(()=>e==null?``:JSON.stringify(e,null,2)),[c,l]=(0,W.useState)(null);return(0,W.useEffect)(()=>{try{if(e==null){s(``);return}let t=o?JSON.parse(o):null;JSON.stringify(t)!==JSON.stringify(e)&&s(JSON.stringify(e,null,2))}catch{s(JSON.stringify(e,null,2))}},[e,o]),r?e?(0,G.jsx)(`pre`,{className:q(`text-xs bg-gray-50 p-2 rounded border border-gray-200 overflow-auto max-h-40`,i.className),children:JSON.stringify(e,null,2)}):(0,G.jsx)(UT,{}):(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(Yw,{value:o,onChange:e=>{let n=e.target.value;if(s(n),l(null),!n.trim()){t(null);return}try{t(JSON.parse(n))}catch{l(`Invalid JSON`)}},placeholder:a?.placeholder||`{
|
|
33
|
+
"key": "value"
|
|
34
|
+
}`,disabled:r||i.disabled,className:q(`font-mono text-xs`,c?`border-red-500 focus-visible:ring-red-500`:``,i.className),rows:6}),c&&(0,G.jsx)(`p`,{className:`text-xs text-red-500`,children:c})]})}var jk=BD((()=>{})),Mk=VD({VectorField:()=>Nk});function Nk({value:e,field:t,...n}){let r=(t||n.schema)?.dimensions||(Array.isArray(e)?e.length:0);if(!e||!Array.isArray(e))return(0,G.jsx)(UT,{});let i=e.slice(0,3).map(e=>{let t=Number(e);return isNaN(t)?`0`:t.toFixed(4)}).join(`, `);return(0,G.jsxs)(`div`,{className:`text-sm ${n.className||``}`,children:[(0,G.jsxs)(`span`,{className:`font-mono text-gray-700`,children:[`[`,i,`...]`]}),(0,G.jsxs)(`span`,{className:`text-gray-500 ml-2`,children:[`(`,r,`D)`]})]})}var Pk=BD((()=>{})),Fk=VD({GridField:()=>Ik});function Ik({value:e,field:t,readonly:n,...r}){let i=(t||r.schema)?.columns||[];return!e||!Array.isArray(e)?(0,G.jsx)(UT,{}):n?(0,G.jsx)(`div`,{className:q(`text-sm`,r.className),children:(0,G.jsxs)(`span`,{className:`text-foreground`,children:[e.length,` rows`]})}):(0,G.jsxs)(`div`,{className:q(`border border-border rounded-lg overflow-hidden`,r.className),children:[(0,G.jsx)(`div`,{className:`overflow-auto max-h-60`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{className:`bg-muted border-b border-border`,children:(0,G.jsx)(`tr`,{children:i.map((e,t)=>(0,G.jsx)(`th`,{className:`px-3 py-2 text-left text-xs font-medium text-muted-foreground`,children:e.label||e.name},t))})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-border`,children:e.slice(0,5).map((e,t)=>(0,G.jsx)(`tr`,{className:`hover:bg-muted/50 transition-colors`,children:i.map((t,n)=>(0,G.jsx)(`td`,{className:`px-3 py-2 text-foreground`,children:e[t.name]==null?(0,G.jsx)(UT,{}):String(e[t.name])},n))},t))})]})}),e.length>5&&(0,G.jsxs)(`div`,{className:`bg-muted px-3 py-2 text-xs text-muted-foreground border-t border-border`,children:[`Showing 5 of `,e.length,` rows`]})]})}var Lk=BD((()=>{})),Rk=VD({ColorField:()=>zk});function zk({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema;return r?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`w-6 h-6 rounded border border-input`,style:{backgroundColor:e||`#000000`}}),(0,G.jsx)(`span`,{className:`text-sm`,children:e||(0,G.jsx)(UT,{})})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`color`,value:e||`#000000`,onChange:e=>t(e.target.value),disabled:r||i.disabled,className:`w-10 h-10 rounded border border-input cursor-pointer`}),(0,G.jsx)(VS,{type:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder||`#000000`,disabled:r||i.disabled,className:i.className,pattern:`^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$`})]})}var Bk=BD((()=>{})),Vk=VD({SliderField:()=>Hk});function Hk({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.min??0,s=a?.max??100,c=a?.step??1;return r?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium`,children:e??o}),(0,G.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`/ `,s]})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsx)(Pw,{value:[e??o],onValueChange:e=>t(e[0]),min:o,max:s,step:c,disabled:r||i.disabled,className:i.className}),(0,G.jsx)(`span`,{className:`text-sm font-medium w-12 text-right`,children:e??o})]})}var Uk=BD((()=>{})),Wk=VD({RatingField:()=>Gk});function Gk({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let o=(n||a.schema)?.max??5,s=e??0,[c,l]=W.useState(null),u=c===null?s:c;return r?(0,G.jsxs)(`div`,{className:q(`flex items-center gap-1`,i),children:[Array.from({length:o},(e,t)=>(0,G.jsx)(mt,{className:`w-5 h-5 ${t<s?`fill-yellow-400 text-yellow-400`:`text-muted-foreground`}`},t)),(0,G.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[s,` / `,o]})]}):(0,G.jsxs)(`div`,{className:q(`flex items-center gap-1`,i),children:[Array.from({length:o},(e,n)=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>t(n+1),onMouseEnter:()=>l(n+1),onMouseLeave:()=>l(null),className:`focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 rounded`,disabled:r||a.disabled,children:(0,G.jsx)(mt,{className:`w-5 h-5 transition-colors ${n<u?`fill-yellow-400 text-yellow-400 hover:fill-yellow-500 hover:text-yellow-500`:`text-muted-foreground hover:text-yellow-400`}`})},n)),(0,G.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[s,` / `,o]})]})}var Kk=BD((()=>{})),qk=VD({CodeField:()=>Jk});function Jk({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.language??`javascript`;return r?(0,G.jsx)(`pre`,{className:q(`text-sm bg-muted p-2 rounded overflow-x-auto border`,i.className),children:(0,G.jsx)(`code`,{children:e||(0,G.jsx)(UT,{})})}):(0,G.jsx)(Yw,{value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder||`// Write ${o} code here...`,disabled:r||i.disabled,className:q(`font-mono text-sm`,i.className),rows:12,spellCheck:!1})}var Yk=BD((()=>{})),Xk=VD({AvatarField:()=>Zk});function Zk({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=W.useState(!1),s=W.useRef(null),c=n||i.schema,l=e=>{let n=e.target.files?.[0];if(!n)return;if(!n.type.startsWith(`image/`)){console.error(`Please select an image file`);return}if(n.size>5*1024*1024){console.error(`File size must be less than 5MB`);return}let r=new FileReader;r.onloadend=()=>{t(r.result)},r.readAsDataURL(n)},u=()=>{t(``)},d=()=>(c?.defaultName||c?.label||`User`).split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2);return r?(0,G.jsxs)(Bb,{className:`w-16 h-16`,children:[e&&(0,G.jsx)(Vb,{src:e,alt:c?.label}),(0,G.jsx)(Hb,{children:d()})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsxs)(`div`,{className:`relative`,onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:[(0,G.jsxs)(Bb,{className:`w-16 h-16`,children:[e&&(0,G.jsx)(Vb,{src:e,alt:c?.label}),(0,G.jsx)(Hb,{children:d()})]}),!r&&a&&e&&(0,G.jsx)(`button`,{type:`button`,onClick:u,className:`absolute -top-1 -right-1 bg-destructive text-destructive-foreground rounded-full p-1 hover:bg-destructive/90`,children:(0,G.jsx)(At,{className:`w-3 h-3`})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(`input`,{ref:s,type:`file`,accept:`image/*`,onChange:l,className:`hidden`}),(0,G.jsxs)(J,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>s.current?.click(),disabled:r||i.disabled,children:[(0,G.jsx)(Qt,{className:`w-4 h-4 mr-2`}),e?`Change`:`Upload`,` Avatar`]}),(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`PNG, JPG up to 5MB`})]})]})}var Qk=BD((()=>{})),$k=VD({AddressField:()=>eA});function eA({value:e,onChange:t,field:n,readonly:r,...i}){let a=e||{},o=(e,n)=>{t({...a,[e]:n})},s=e=>[e.street,e.city,[e.state,e.zipCode].filter(Boolean).join(` `),e.country].filter(Boolean).join(`, `);if(r){let e=s(a);return e?(0,G.jsx)(`span`,{className:`text-sm`,children:e}):(0,G.jsx)(UT,{})}return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(CS,{htmlFor:`street`,className:`text-xs`,children:`Street Address`}),(0,G.jsx)(VS,{id:`street`,type:`text`,value:a.street||``,onChange:e=>o(`street`,e.target.value),placeholder:`123 Main St`,disabled:r||i.disabled,className:i.className})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(CS,{htmlFor:`city`,className:`text-xs`,children:`City`}),(0,G.jsx)(VS,{id:`city`,type:`text`,value:a.city||``,onChange:e=>o(`city`,e.target.value),placeholder:`San Francisco`,disabled:r||i.disabled})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(CS,{htmlFor:`state`,className:`text-xs`,children:`State / Province`}),(0,G.jsx)(VS,{id:`state`,type:`text`,value:a.state||``,onChange:e=>o(`state`,e.target.value),placeholder:`CA`,disabled:r||i.disabled})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(CS,{htmlFor:`zipCode`,className:`text-xs`,children:`ZIP / Postal Code`}),(0,G.jsx)(VS,{id:`zipCode`,type:`text`,value:a.zipCode||``,onChange:e=>o(`zipCode`,e.target.value),placeholder:`94102`,disabled:r||i.disabled})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(CS,{htmlFor:`country`,className:`text-xs`,children:`Country`}),(0,G.jsx)(VS,{id:`country`,type:`text`,value:a.country||``,onChange:e=>o(`country`,e.target.value),placeholder:`United States`,disabled:r||i.disabled})]})]})]})}var tA=BD((()=>{})),nA=VD({GeolocationField:()=>rA});function rA({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=W.useState(!1),s=e||{},c=(e,n)=>{t({...s,[e]:n?Number(n):void 0})},l=()=>{if(!navigator.geolocation){console.error(`Geolocation is not supported by this browser`);return}o(!0),navigator.geolocation.getCurrentPosition(e=>{t({latitude:e.coords.latitude,longitude:e.coords.longitude,accuracy:e.coords.accuracy}),o(!1)},e=>{console.error(`Error getting location:`,e.message),o(!1)},{enableHighAccuracy:!0,timeout:5e3,maximumAge:0})},u=e=>!e.latitude||!e.longitude?``:`${e.latitude.toFixed(6)}, ${e.longitude.toFixed(6)}`,d=()=>{if(!s.latitude||!s.longitude)return;let e=`https://www.google.com/maps?q=${s.latitude},${s.longitude}`;window.open(e,`_blank`)};if(r){let e=u(s);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(ht,{className:`w-4 h-4 text-muted-foreground`}),e?(0,G.jsx)(`span`,{className:`text-sm`,children:e}):(0,G.jsx)(UT,{}),s.latitude&&s.longitude&&(0,G.jsx)(J,{type:`button`,variant:`link`,size:`sm`,onClick:d,className:`p-0 h-auto`,children:`View on map`})]})}return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(J,{type:`button`,variant:`outline`,size:`sm`,onClick:l,disabled:r||a,children:[(0,G.jsx)(Mt,{className:`w-4 h-4 mr-2`}),a?`Getting location...`:`Use Current Location`]}),s.latitude&&s.longitude&&(0,G.jsxs)(J,{type:`button`,variant:`link`,size:`sm`,onClick:d,children:[(0,G.jsx)(ht,{className:`w-4 h-4 mr-2`}),`View on map`]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(CS,{htmlFor:`latitude`,className:`text-xs`,children:`Latitude`}),(0,G.jsx)(VS,{id:`latitude`,type:`number`,value:s.latitude??``,onChange:e=>c(`latitude`,e.target.value),placeholder:`37.7749`,disabled:r||i.disabled,step:`any`,className:i.className})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(CS,{htmlFor:`longitude`,className:`text-xs`,children:`Longitude`}),(0,G.jsx)(VS,{id:`longitude`,type:`number`,value:s.longitude??``,onChange:e=>c(`longitude`,e.target.value),placeholder:`-122.4194`,disabled:r||i.disabled,step:`any`})]})]}),s.accuracy&&(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Accuracy: ±`,s.accuracy.toFixed(0),`m`]})]})}var iA=BD((()=>{})),aA=VD({SignatureField:()=>oA});function oA({value:e,onChange:t,readonly:n}){let r=(0,W.useRef)(null),[i,a]=W.useState(!1),[o,s]=W.useState(!e);(0,W.useEffect)(()=>{if(e&&r.current){let t=r.current.getContext(`2d`);if(t){let n=new Image;n.onload=()=>{t.drawImage(n,0,0),s(!1)},n.src=e}}},[e]);let c=e=>{if(n)return;a(!0),s(!1);let t=r.current;if(!t)return;let i=t.getContext(`2d`);if(!i)return;let o=t.getBoundingClientRect(),c=`touches`in e?e.touches[0].clientX-o.left:e.clientX-o.left,l=`touches`in e?e.touches[0].clientY-o.top:e.clientY-o.top;i.beginPath(),i.moveTo(c,l)},l=e=>{if(!i||n)return;let t=r.current;if(!t)return;let a=t.getContext(`2d`);if(!a)return;let o=t.getBoundingClientRect(),s=`touches`in e?e.touches[0].clientX-o.left:e.clientX-o.left,c=`touches`in e?e.touches[0].clientY-o.top:e.clientY-o.top;a.lineTo(s,c),a.strokeStyle=`#000`,a.lineWidth=2,a.lineCap=`round`,a.lineJoin=`round`,a.stroke()},u=()=>{if(!i)return;a(!1);let e=r.current;e&&t(e.toDataURL(`image/png`))};return n&&e?(0,G.jsx)(`div`,{className:`border rounded p-2 bg-white`,children:(0,G.jsx)(`img`,{src:e,alt:`Signature`,loading:`lazy`,className:`max-w-full h-auto`})}):n&&!e?(0,G.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`No signature`}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`div`,{className:`border rounded bg-white`,children:(0,G.jsx)(`canvas`,{ref:r,width:400,height:200,className:`w-full touch-none cursor-crosshair`,onMouseDown:c,onMouseMove:l,onMouseUp:u,onMouseLeave:u,onTouchStart:c,onTouchMove:l,onTouchEnd:u})}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o?`Sign above`:`Signature captured`}),(0,G.jsxs)(J,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{let e=r.current;if(!e)return;let n=e.getContext(`2d`);n&&(n.clearRect(0,0,e.width,e.height),s(!0),t(``))},disabled:n||o,children:[(0,G.jsx)(cn,{className:`w-4 h-4 mr-2`}),`Clear`]})]})]})}var sA=BD((()=>{})),cA=VD({QRCodeField:()=>lA});function lA({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=W.useState(!1),s=n||i.schema;return r?(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`span`,{className:`text-sm flex-1 truncate`,children:e||(0,G.jsx)(UT,{})}),e&&(0,G.jsxs)(J,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>o(!a),children:[(0,G.jsx)(an,{className:`w-4 h-4 mr-2`}),a?`Hide`:`Show`,` QR`]})]}):(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(VS,{type:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||`Enter text for QR code`,disabled:r||i.disabled,className:i.className}),e&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(J,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{e&&navigator.clipboard.writeText(e)},children:(0,G.jsx)(yt,{className:`w-4 h-4`})}),(0,G.jsx)(J,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>o(!a),children:(0,G.jsx)(an,{className:`w-4 h-4`})})]})]}),a&&e&&(0,G.jsx)(`div`,{className:`border rounded p-4 bg-white flex justify-center`,children:(0,G.jsx)(`img`,{src:(e=>`https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(e)}`)(e),alt:`QR Code`,className:`w-48 h-48`})}),e&&(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`QR code contains: `,e.length,` characters`]})]})}var uA=BD((()=>{}));WD(),qD(),XD(),nO(),aO(),cO(),dO(),mO(),vO(),xO(),wO(),GO(),JO(),ZO(),ek(),rk(),ok(),pk(),gk(),yk(),Sk(),Tk(),Ok(),jk(),Pk(),Lk(),Bk(),Uk(),Kk(),Yk(),Qk(),tA(),iA(),sA(),uA(),lk(),LO(),WD(),qD(),XD(),nO(),aO(),JO(),ZO(),cO(),dO(),mO(),vO(),ek(),rk(),xO(),wO(),GO(),NO(),ok(),pk(),gk(),yk(),Sk(),Tk(),Ok(),jk(),Pk(),Lk(),Bk(),Uk(),Kk(),Yk(),Qk(),tA(),iA(),sA(),uA();var dA=new Map;function fA(e){if(!e||typeof e!=`object`)return;for(let t of[`name`,`full_name`,`display_name`,`label`,`title`,`subject`,`username`]){let n=e[t];if(typeof n==`string`&&n.trim())return n.trim();if(typeof n==`number`)return String(n)}let t=e.first_name,n=e.last_name,r=[e.salutation,t,n].filter(e=>typeof e==`string`&&e.trim()).map(e=>e.trim()).join(` `);if(r)return r;let i=e.email;if(typeof i==`string`&&i.trim())return i.trim()}function pA(e){if(typeof e!=`string`||!/^[A-Za-z0-9_-]{12,32}$/.test(e))return!1;let t=/[A-Z]/.test(e),n=/[a-z]/.test(e),r=/[0-9_-]/.test(e);return t&&n||t&&r||n&&r}function mA(e,t){let n=W.useContext(Al)?.dataSource,[,r]=W.useState(0),i=!!e&&!!n&&typeof n.find==`function`&&(typeof t==`string`||typeof t==`number`)&&t!==``,a=i?`${e}:${String(t)}`:``;if(W.useEffect(()=>{if(!i)return;let o=dA.get(a);if(o&&o.state!==`pending`&&o.promise==null||o?.state===`pending`)return;let s=(async()=>{try{let r;if(typeof n.findOne==`function`)r=await n.findOne(e,t);else{let i=await n.find(e,{$filter:{id:t},options:{$top:1}});r=(Array.isArray(i)?i:i?.value||i?.data||[])[0]}let i=fA(r);dA.set(a,{state:`ok`,name:i})}catch{dA.set(a,{state:`err`})}r(e=>e+1)})();dA.set(a,{state:`pending`,promise:s})},[a,i,e,t,n]),!i)return;let o=dA.get(a);return o?.state===`ok`?o.name:void 0}function hA(){try{let{t:e}=hu();return(t,n)=>{let r=e(t);return!r||r===t?n:r}}catch{return(e,t)=>t}}function gA(e){if(e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>{if(typeof e==`object`&&e){let t=e;return String(t.name||t.label||t.id||t._id||`[Object]`)}return String(e)}).join(`, `);if(typeof e==`object`){let t=e;return`$numberDecimal`in t?Number(t.$numberDecimal):`$oid`in t?String(t.$oid):`$date`in t?String(t.$date):String(t.name||t.label||t.id||t._id||`[Object]`)}return String(e)}function _A(e,t){let n=Number.isFinite(e)&&e===Math.trunc(e)?0:2;if(!t)return yA(e,n);try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t,minimumFractionDigits:0,maximumFractionDigits:n}).format(e)}catch{return`${t} ${e.toFixed(n)}`}}function vA(e,t){if(!t)try{return new Intl.NumberFormat(`en-US`,{notation:`compact`,maximumFractionDigits:1}).format(e).replace(/\.0(?=[KMBT])/,``)}catch{return String(e)}try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t,notation:`compact`,maximumFractionDigits:1}).format(e).replace(/\.0(?=[KMBT])/,``)}catch{return`${t} ${e}`}}function yA(e,t=2){try{return new Intl.NumberFormat(`en-US`,{minimumFractionDigits:t,maximumFractionDigits:t}).format(e)}catch{return e.toFixed(t)}}function bA(e,t=0){return`${(e>-1&&e<1?e*100:e).toFixed(t)}%`}function xA(e){return e.replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function SA(e){if(e==null||e===``)return`—`;let t=e instanceof Date?e:new Date(e);if(!(t instanceof Date)||isNaN(t.getTime()))return`—`;let n=new Date,r=new Date(n.getFullYear(),n.getMonth(),n.getDate()),i=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-r.getTime(),a=Math.round(i/(1e3*60*60*24));if(a===0)return`Today`;if(a===1)return`Tomorrow`;if(a===-1)return`Yesterday`;if(a<-1){let e=Math.abs(a);return e<=7?`Overdue ${e}d`:CA(t)}return a>1&&a<=7?`In ${a} days`:CA(t)}function CA(e,t){if(e==null||e===``)return`—`;let n=e instanceof Date?e:new Date(e);if(!(n instanceof Date)||isNaN(n.getTime()))return`—`;if(t===`short`)return`${n.toLocaleDateString(`en-US`,{month:`short`})} ${n.getDate()}, '${String(n.getFullYear()).slice(-2)}`;if(t===`relative`)return SA(n);let r=n.getFullYear()===new Date().getFullYear();return n.toLocaleDateString(void 0,{year:r?void 0:`numeric`,month:`short`,day:`numeric`})}function wA({value:e}){let t=gA(e);return t==null||t===``?(0,G.jsx)(UT,{}):(0,G.jsx)(`span`,{className:`truncate`,children:String(t)})}function TA({value:e,field:t}){if(e==null)return(0,G.jsx)(UT,{});let n=gA(e),r=t.precision??0,i=Number(n);return(0,G.jsx)(`span`,{className:`tabular-nums`,children:isNaN(i)?String(n):new Intl.NumberFormat(`en-US`,{minimumFractionDigits:r,maximumFractionDigits:r}).format(i)})}function EA({value:e,field:t}){if(e==null)return(0,G.jsx)(UT,{});let n=gA(e),r=t,i=r.currency||r.defaultCurrency||r.currencyConfig?.defaultCurrency||void 0,a=Number(n);return(0,G.jsx)(`span`,{className:`tabular-nums font-medium whitespace-nowrap`,children:isNaN(a)?String(n):_A(a,i)})}var DA=/progress|completion/;function OA({value:e,field:t}){if(e==null)return(0,G.jsx)(UT,{});let n=gA(e),r=t.precision??0,i=Number(n);if(isNaN(i))return(0,G.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:String(n)});let a=DA.test(t?.name?.toLowerCase()||``),o=a?i:i>-1&&i<1?i*100:i,s=a?`${i.toFixed(r)}%`:bA(i,r),c=Math.max(0,Math.min(100,o));return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`h-1.5 w-16 rounded-full bg-muted ring-1 ring-inset ring-border/60 overflow-hidden shrink-0`,role:`progressbar`,"aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":100,children:(0,G.jsx)(`div`,{className:`h-full rounded-full bg-primary transition-all`,style:{width:`${c}%`}})}),(0,G.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:s})]})}var kA=new Set([`active`,`is_active`,`enabled`,`is_enabled`,`verified`,`is_verified`]);function AA({value:e,field:t}){if(e==null)return(0,G.jsx)(`span`,{className:`flex items-center justify-center`,children:(0,G.jsx)(UT,{})});let n=t?.name?.toLowerCase()||``;return n===`completed`||n===`is_completed`||n===`done`||n===`is_done`?(0,G.jsx)(`div`,{className:`flex items-center justify-center`,children:e?(0,G.jsx)(`div`,{className:`size-5 rounded-full bg-green-500 flex items-center justify-center`,role:`img`,"aria-label":`Completed`,"data-testid":`completion-indicator`,children:(0,G.jsx)(Ct,{className:`size-3 text-white`})}):(0,G.jsx)(`div`,{className:`size-5 rounded-full border-2 border-muted-foreground/30`,role:`img`,"aria-label":`Not completed`,"data-testid":`completion-indicator`})}):kA.has(n)&&!e?(0,G.jsxs)(Wb,{variant:`destructive`,className:`text-xs`,"data-testid":`boolean-warning-badge`,children:[t?.label||xA(n),` — Off`]}):(0,G.jsx)(`div`,{className:`flex items-center justify-start`,children:(0,G.jsx)(xx,{checked:!!e,disabled:!0,className:`pointer-events-none`})})}function jA({value:e,field:t}){if(!e)return(0,G.jsx)(UT,{});let n=gA(e),r=t,i=CA(n,r.format||`relative`),a=n==null?null:new Date(n),o=a!==null&&!isNaN(a.getTime()),s=new Date;s.setHours(0,0,0,0);let c=String(r?.name||r?.accessorKey||r?.key||``).toLowerCase(),l=(r?.dueLike===!0||/(^|_)(due|deadline|expires?|expiry|expiration|expected_close|target_close|sla|return_by|renewal|next_action)(_|$)/.test(c))&&o&&a<s,u=o?a.toISOString():String(n);return(0,G.jsx)(`span`,{className:`tabular-nums${l?` text-red-600`:``}`,title:u,children:i})}function MA({value:e}){if(!e)return(0,G.jsx)(UT,{});let t=gA(e),n=t==null?null:new Date(t);if(n===null||isNaN(n.getTime()))return(0,G.jsx)(UT,{});let r=n.toLocaleDateString(void 0,{month:`numeric`,day:`numeric`,year:`numeric`}),i=n.toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`,hour12:!0}).toLowerCase();return(0,G.jsxs)(`span`,{className:`tabular-nums text-sm whitespace-nowrap`,children:[(0,G.jsx)(`span`,{children:r}),(0,G.jsx)(`span`,{className:`ml-2 text-muted-foreground`,children:i})]})}var NA={critical:`red`,urgent:`red`,high:`orange`,medium:`yellow`,normal:`blue`,low:`gray`,none:`gray`,paid:`green`,completed:`green`,done:`green`,active:`green`,approved:`green`,resolved:`green`,pending:`yellow`,waiting:`yellow`,on_hold:`yellow`,shipped:`blue`,in_progress:`blue`,open:`blue`,processing:`blue`,draft:`gray`,new:`gray`,inactive:`gray`,closed:`gray`,cancelled:`red`,canceled:`red`,rejected:`red`,failed:`red`,overdue:`red`,delivered:`purple`,archived:`indigo`,contacted:`blue`,qualified:`purple`,converted:`green`,won:`green`,lost:`red`,紧急:`red`,严重:`red`,高:`orange`,中:`yellow`,普通:`blue`,低:`gray`,无:`gray`,新建:`gray`,草稿:`gray`,待处理:`yellow`,待审核:`yellow`,待联系:`yellow`,挂起:`yellow`,进行中:`blue`,处理中:`blue`,已联系:`blue`,跟进中:`blue`,已发货:`blue`,打开:`blue`,已确认:`green`,已审核:`green`,已通过:`green`,已完成:`green`,已支付:`green`,已签收:`green`,已转化:`green`,成单:`green`,赢得:`green`,已签约:`green`,已交付:`purple`,已归档:`indigo`,已关闭:`gray`,已取消:`red`,已拒绝:`red`,失败:`red`,逾期:`red`,流失:`red`,丢失:`red`},PA={gray:`bg-gray-50 text-gray-700 border-gray-200 dark:bg-gray-800/50 dark:text-gray-200 dark:border-gray-700/60`,red:`bg-red-50 text-red-700 border-red-200 dark:bg-red-950/40 dark:text-red-300 dark:border-red-900/60`,orange:`bg-orange-50 text-orange-700 border-orange-200 dark:bg-orange-950/40 dark:text-orange-300 dark:border-orange-900/60`,yellow:`bg-yellow-50 text-yellow-800 border-yellow-200 dark:bg-yellow-950/40 dark:text-yellow-300 dark:border-yellow-900/60`,green:`bg-green-50 text-green-700 border-green-200 dark:bg-green-950/40 dark:text-green-300 dark:border-green-900/60`,blue:`bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-950/40 dark:text-blue-300 dark:border-blue-900/60`,indigo:`bg-indigo-50 text-indigo-700 border-indigo-200 dark:bg-indigo-950/40 dark:text-indigo-300 dark:border-indigo-900/60`,purple:`bg-purple-50 text-purple-700 border-purple-200 dark:bg-purple-950/40 dark:text-purple-300 dark:border-purple-900/60`,pink:`bg-pink-50 text-pink-700 border-pink-200 dark:bg-pink-950/40 dark:text-pink-300 dark:border-pink-900/60`},FA={gray:`bg-gray-400 dark:bg-gray-500`,red:`bg-red-500`,orange:`bg-orange-500`,yellow:`bg-yellow-500`,green:`bg-green-500`,blue:`bg-blue-500`,indigo:`bg-indigo-500`,purple:`bg-purple-500`,pink:`bg-pink-500`},IA=[`blue`,`green`,`purple`,`orange`,`pink`,`indigo`,`yellow`,`red`];function LA(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t^e.charCodeAt(n);return IA[Math.abs(t)%IA.length]}function RA(e,t){if(e&&PA[e])return PA[e];if(t==null||t===``)return`bg-muted text-muted-foreground border-border`;let n=String(t).toLowerCase().replace(/[\s-]/g,`_`),r=NA[n];return r&&PA[r]?PA[r]:PA[LA(n)]}function zA({value:e,field:t}){let n=t,r=n.options||[],i=n.appearance===`dot`?`dot`:`badge`;if(e==null||e===``)return(0,G.jsx)(UT,{});let a=e=>{let t=r.find(t=>t.value===e);if(t)return t;let n=String(e).toLowerCase();return r.find(e=>String(e.value).toLowerCase()===n)},o=(e,t)=>{let n=a(e),r=n?.label||xA(String(e));return i===`dot`?(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-sm`,children:[(0,G.jsx)(`span`,{className:q(`h-1.5 w-1.5 rounded-full shrink-0`,FA[n?.color||NA[String(e).toLowerCase().replace(/[\s-]/g,`_`)]||LA(String(e).toLowerCase().replace(/[\s-]/g,`_`))]||FA.gray),"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`truncate`,children:r})]},t):(0,G.jsx)(Wb,{variant:`outline`,className:RA(n?.color,e),children:r},t)};return Array.isArray(e)?(0,G.jsx)(`div`,{className:q(`flex flex-wrap`,i===`dot`?`gap-x-3 gap-y-1`:`gap-1`),children:e.map((e,t)=>o(e,t))}):o(e)}function BA({value:e}){if(!e)return(0,G.jsx)(UT,{});let t=hA(),n=String(gA(e)??``),[r,i]=W.useState(!1);return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/email`,children:[(0,G.jsx)(J,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,G.jsx)(`a`,{href:`mailto:${n}`,onClick:e=>e.stopPropagation(),children:n})}),(0,G.jsx)(`button`,{type:`button`,className:`opacity-0 group-hover/email:opacity-100 transition-opacity p-0.5 rounded hover:bg-muted`,onClick:e=>{e.stopPropagation(),e.preventDefault(),navigator.clipboard.writeText(n).then(()=>{i(!0),setTimeout(()=>i(!1),2e3)}).catch(()=>{})},"aria-label":t(`detail.copyEmail`,`Copy email`),children:r?(0,G.jsx)(Ct,{className:`h-3 w-3 text-green-600`}):(0,G.jsx)(yt,{className:`h-3 w-3 text-muted-foreground`})})]})}function VA({value:e}){if(!e)return(0,G.jsx)(UT,{});let t=String(gA(e)??``);return(0,G.jsx)(J,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,G.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),children:t})})}function HA({value:e}){if(!e)return(0,G.jsx)(UT,{});let t=hA(),n=String(gA(e)??``),[r,i]=W.useState(!1);return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/phone`,children:[(0,G.jsxs)(`a`,{href:`tel:${n}`,className:`inline-flex items-center gap-1 text-blue-600 hover:text-blue-800`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(mn,{className:`h-3 w-3`}),n]}),(0,G.jsx)(`button`,{type:`button`,className:`opacity-0 group-hover/phone:opacity-100 transition-opacity p-0.5 rounded hover:bg-muted`,onClick:e=>{e.stopPropagation(),e.preventDefault(),navigator.clipboard.writeText(n).then(()=>{i(!0),setTimeout(()=>i(!1),2e3)}).catch(()=>{})},"aria-label":t(`detail.copyPhone`,`Copy phone number`),children:r?(0,G.jsx)(Ct,{className:`h-3 w-3 text-green-600`}):(0,G.jsx)(yt,{className:`h-3 w-3 text-muted-foreground`})})]})}function UA({value:e,field:t}){if(!e)return(0,G.jsx)(UT,{});if(t.multiple,Array.isArray(e)){let t=e.length;return(0,G.jsxs)(`span`,{className:`text-sm text-gray-600`,children:[t,` `,t===1?`file`:`files`]})}return(0,G.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`})}function WA({value:e}){return e?Array.isArray(e)?(0,G.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.slice(0,3).map((e,t)=>(0,G.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-8 rounded-md border-2 border-white object-cover`},t)),e.length>3&&(0,G.jsxs)(`div`,{className:`size-8 rounded-md border-2 border-white bg-gray-100 flex items-center justify-center text-xs font-medium text-gray-600`,children:[`+`,e.length-3]})]}):(0,G.jsx)(`img`,{src:e.url||``,alt:e.name||`Image`,className:`size-10 rounded-md object-cover`}):(0,G.jsx)(UT,{})}function GA({value:e,field:t}){let n=t.reference_to,r=(()=>{if(Array.isArray(e))return e.find(e=>e!=null&&(typeof e==`string`||typeof e==`number`)&&e!==``);if(e!=null&&e!==``&&(typeof e==`string`||typeof e==`number`)&&typeof e!=`object`)return e})(),i=mA(n,r);if(e==null||e===``)return(0,G.jsx)(UT,{});if(!Array.isArray(e)&&typeof e==`object`){let t=e,n=fA(t)||String(t.id||t._id||``);if(n)return(0,G.jsx)(`span`,{className:`truncate`,children:n})}let a=t.options||[],o=e=>{if(a.length>0){let t=a.find(t=>String(t.value)===String(e));if(t)return{text:t.label,muted:!1}}return e===r&&i?{text:i,muted:!1}:pA(e)?{text:`—`,muted:!0}:{text:String(e),muted:!1}};if(Array.isArray(e))return(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.map((e,t)=>{let n,r=!1;if(typeof e==`object`&&e)n=fA(e)||String(e.id||e._id||`[Object]`);else{let t=o(e);n=t.text,r=t.muted}return(0,G.jsx)(`span`,{className:q(`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium`,r?`bg-muted/40 text-muted-foreground`:`bg-gray-50 text-gray-700 dark:bg-gray-800/50 dark:text-gray-200`),children:n},t)})});if(typeof e==`object`&&e)return(0,G.jsx)(`span`,{className:`truncate`,children:fA(e)||String(e.id||e._id||`[Object]`)});let{text:s,muted:c}=o(e);return(0,G.jsx)(`span`,{className:q(`truncate`,c&&`text-muted-foreground`),children:s})}function KA({value:e}){let t=gA(e);return t==null||t===``?(0,G.jsx)(UT,{}):(0,G.jsx)(`span`,{className:`text-gray-700 font-mono text-sm`,children:String(t)})}function qA({value:e}){if(!e)return(0,G.jsx)(UT,{});if(typeof e!=`object`)return(0,G.jsx)(`span`,{className:`truncate`,children:String(e)});if(Array.isArray(e))return(0,G.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.slice(0,3).map((e,t)=>{if(typeof e!=`object`||!e)return(0,G.jsx)(`span`,{className:`truncate text-sm`,children:String(e)},t);let n=e.name||e.username||`User`;return(0,G.jsx)(Bb,{className:`size-8 border-2 border-white`,title:n,children:(0,G.jsx)(Hb,{className:`bg-blue-500 text-white text-xs`,children:n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})},t)}),e.length>3&&(0,G.jsx)(Bb,{className:`size-8 border-2 border-white`,children:(0,G.jsxs)(Hb,{className:`bg-gray-200 text-gray-600 text-xs`,children:[`+`,e.length-3]})})]});let t=e.name||e.username||`User`;return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(Bb,{className:`size-8`,children:(0,G.jsx)(Hb,{className:`bg-blue-500 text-white text-xs`,children:t.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})}),(0,G.jsx)(`span`,{className:`truncate`,children:t})]})}var JA=new Map;function YA(e,t){JA.set(e,t)}var XA={phone:`phone`,tel:`phone`,telephone:`phone`,email:`email`,url:`url`,uri:`url`,link:`url`,currency:`currency`,money:`currency`,percent:`percent`,percentage:`percent`},ZA=new Set([`text`,`textarea`,`string`,`longtext`,``]);function QA(e){if(!e)return`text`;if(typeof e==`string`)return e;let t=(e.type||``).toLowerCase(),n=e.format,r=typeof n==`string`?n.toLowerCase():``;return r&&XA[r]&&ZA.has(t)?XA[r]:e.type||`text`}function $A(e){return JA.has(e)?JA.get(e):{text:wA,textarea:wA,markdown:wA,html:wA,number:TA,currency:EA,percent:OA,boolean:AA,date:jA,datetime:MA,time:wA,select:zA,status:zA,lookup:GA,master_detail:GA,email:BA,url:VA,phone:HA,file:UA,image:WA,formula:KA,summary:KA,auto_number:wA,user:qA,owner:qA,password:()=>(0,G.jsx)(`span`,{children:`••••••`}),location:wA,object:()=>(0,G.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Object]`}),vector:()=>(0,G.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Vector]`}),grid:()=>(0,G.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Grid]`})}[e]||wA}YA(`lookup`,GA),YA(`master_detail`,GA),YA(`select`,zA),YA(`status`,zA),YA(`user`,qA),YA(`owner`,qA),PO($A);function ej(e){return{text:`field:text`,textarea:`field:textarea`,markdown:`field:markdown`,html:`field:html`,number:`field:number`,currency:`field:currency`,percent:`field:percent`,date:`field:date`,datetime:`field:datetime`,time:`field:time`,boolean:`field:boolean`,select:`field:select`,lookup:`field:lookup`,master_detail:`field:master_detail`,email:`field:email`,phone:`field:phone`,url:`field:url`,file:`field:file`,image:`field:image`,password:`field:password`,location:`field:location`,formula:`field:formula`,summary:`field:summary`,auto_number:`field:auto_number`}[e]||`field:text`}function tj(e){if(e<0||!Number.isFinite(e)||e===0)return`0 B`;let t=[`B`,`KB`,`MB`,`GB`,`TB`],n=e,r=0;for(;n>=1024&&r<t.length-1;)n/=1024,r++;return`${n.toFixed(+(r>0))} ${t[r]}`}function nj(e){let t={};return e.required&&(t.required=typeof e.required_message==`string`?e.required_message:`${e.label||e.name} is required`),e.min_length&&(t.minLength={value:e.min_length,message:e.min_length_message||`Minimum length is ${e.min_length} characters`}),e.max_length&&(t.maxLength={value:e.max_length,message:e.max_length_message||`Maximum length is ${e.max_length} characters`}),e.min!==void 0&&(t.min={value:e.min,message:e.min_message||`Minimum value is ${e.min}`}),e.max!==void 0&&(t.max={value:e.max,message:e.max_message||`Maximum value is ${e.max}`}),e.pattern&&(t.pattern={value:typeof e.pattern==`string`?new RegExp(e.pattern):e.pattern,message:e.pattern_message||`Invalid format`}),e.type===`email`&&(t.pattern={value:/^[^\s@]+@[^\s@]+\.[^\s@]+$/,message:`Please enter a valid email address`}),e.type===`url`&&(t.pattern={value:/^https?:\/\/.+/,message:`Please enter a valid URL`}),e.validate&&(t.validate=e.validate),Object.keys(t).length>0?t:void 0}function rj(e,t){if(!e)return!0;if(e.field&&e.value!==void 0){let n=t[e.field];if(e.operator===`=`||e.operator===`==`)return n===e.value;if(e.operator===`!=`)return n!==e.value;if(e.operator===`>`)return n>e.value;if(e.operator===`>=`)return n>=e.value;if(e.operator===`<`)return n<e.value;if(e.operator===`<=`)return n<=e.value;if(e.operator===`in`)return Array.isArray(e.value)&&e.value.includes(n)}return e.and&&Array.isArray(e.and)?e.and.every(e=>rj(e,t)):e.or&&Array.isArray(e.or)?e.or.some(e=>rj(e,t)):!0}var ij={text:()=>Promise.resolve().then(()=>(WD(),HD)).then(e=>({default:e.TextField})),textarea:()=>Promise.resolve().then(()=>(xO(),yO)).then(e=>({default:e.TextAreaField})),number:()=>Promise.resolve().then(()=>(qD(),GD)).then(e=>({default:e.NumberField})),boolean:()=>Promise.resolve().then(()=>(XD(),JD)).then(e=>({default:e.BooleanField})),select:()=>Promise.resolve().then(()=>(nO(),eO)).then(e=>({default:e.SelectField})),date:()=>Promise.resolve().then(()=>(aO(),rO)).then(e=>({default:e.DateField})),datetime:()=>Promise.resolve().then(()=>(JO(),KO)).then(e=>({default:e.DateTimeField})),time:()=>Promise.resolve().then(()=>(ZO(),YO)).then(e=>({default:e.TimeField})),email:()=>Promise.resolve().then(()=>(cO(),oO)).then(e=>({default:e.EmailField})),phone:()=>Promise.resolve().then(()=>(dO(),lO)).then(e=>({default:e.PhoneField})),url:()=>Promise.resolve().then(()=>(mO(),fO)).then(e=>({default:e.UrlField})),currency:()=>Promise.resolve().then(()=>(vO(),hO)).then(e=>({default:e.CurrencyField})),percent:()=>Promise.resolve().then(()=>(ek(),QO)).then(e=>({default:e.PercentField})),password:()=>Promise.resolve().then(()=>(rk(),tk)).then(e=>({default:e.PasswordField})),markdown:()=>Promise.resolve().then(()=>(wO(),SO)).then(e=>({default:e.RichTextField})),html:()=>Promise.resolve().then(()=>(wO(),SO)).then(e=>({default:e.RichTextField})),lookup:()=>Promise.resolve().then(()=>(GO(),RO)).then(e=>({default:e.LookupField})),master_detail:()=>Promise.resolve().then(()=>(GO(),RO)).then(e=>({default:e.LookupField})),file:()=>Promise.resolve().then(()=>(ok(),ik)).then(e=>({default:e.FileField})),image:()=>Promise.resolve().then(()=>(pk(),uk)).then(e=>({default:e.ImageField})),location:()=>Promise.resolve().then(()=>(gk(),mk)).then(e=>({default:e.LocationField})),formula:()=>Promise.resolve().then(()=>(yk(),_k)).then(e=>({default:e.FormulaField})),summary:()=>Promise.resolve().then(()=>(Sk(),bk)).then(e=>({default:e.SummaryField})),auto_number:()=>Promise.resolve().then(()=>(Tk(),Ck)).then(e=>({default:e.AutoNumberField})),user:()=>Promise.resolve().then(()=>(Ok(),Ek)).then(e=>({default:e.UserField})),owner:()=>Promise.resolve().then(()=>(Ok(),Ek)).then(e=>({default:e.UserField})),object:()=>Promise.resolve().then(()=>(jk(),kk)).then(e=>({default:e.ObjectField})),vector:()=>Promise.resolve().then(()=>(Pk(),Mk)).then(e=>({default:e.VectorField})),grid:()=>Promise.resolve().then(()=>(Lk(),Fk)).then(e=>({default:e.GridField})),color:()=>Promise.resolve().then(()=>(Bk(),Rk)).then(e=>({default:e.ColorField})),slider:()=>Promise.resolve().then(()=>(Uk(),Vk)).then(e=>({default:e.SliderField})),rating:()=>Promise.resolve().then(()=>(Kk(),Wk)).then(e=>({default:e.RatingField})),code:()=>Promise.resolve().then(()=>(Yk(),qk)).then(e=>({default:e.CodeField})),avatar:()=>Promise.resolve().then(()=>(Qk(),Xk)).then(e=>({default:e.AvatarField})),address:()=>Promise.resolve().then(()=>(tA(),$k)).then(e=>({default:e.AddressField})),geolocation:()=>Promise.resolve().then(()=>(iA(),nA)).then(e=>({default:e.GeolocationField})),signature:()=>Promise.resolve().then(()=>(sA(),aA)).then(e=>({default:e.SignatureField})),qrcode:()=>Promise.resolve().then(()=>(uA(),cA)).then(e=>({default:e.QRCodeField}))};function aj(e){let t=ij[e];if(!t){console.warn(`Unknown field type: ${e}`);return}let n=W.lazy(t);K.register(e,n,{namespace:`field`})}function oj(){Object.keys(ij).forEach(e=>{aj(e)})}oj();function sj(e){let{onRefresh:t,threshold:n=80,enabled:r=!0}=e,i=(0,W.useRef)(null),[a,o]=(0,W.useState)(!1),[s,c]=(0,W.useState)(0),l=(0,W.useRef)(0),u=(0,W.useCallback)(e=>{if(!r||a)return;let t=i.current;t&&t.scrollTop===0&&(l.current=e.touches[0].clientY)},[r,a]),d=(0,W.useCallback)(e=>{if(!r||a||!l.current)return;let t=e.touches[0].clientY-l.current;t>0&&c(Math.min(t,n*1.5))},[r,a,n]),f=(0,W.useCallback)(async()=>{if(!r||a)return;let e=s;if(c(0),l.current=0,e>=n){o(!0);try{await t()}finally{o(!1)}}},[r,a,s,n,t]);return(0,W.useEffect)(()=>{let e=i.current;if(!(!e||!r))return e.addEventListener(`touchstart`,u,{passive:!0}),e.addEventListener(`touchmove`,d,{passive:!0}),e.addEventListener(`touchend`,f,{passive:!0}),()=>{e.removeEventListener(`touchstart`,u),e.removeEventListener(`touchmove`,d),e.removeEventListener(`touchend`,f)}},[u,d,f,r]),{ref:i,isRefreshing:a,pullDistance:s}}var cj=(0,W.createContext)(null);cj.displayName=`MobileContext`;var Y=new class{constructor(){Object.defineProperty(this,"components",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"lazyEntries",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"listeners",{enumerable:!0,configurable:!0,writable:!0,value:new Set})}register(e,t,n){let r=n?.namespace?`${n.namespace}:${e}`:e;n?.namespace||console.warn(`Registering component "${e}" without a namespace is deprecated. Please provide a namespace in the meta parameter.\n\n Migration:\n // Before (deprecated):\n registry.register('${e}', MyComponent);\n\n // After:\n registry.register('${e}', MyComponent, { namespace: 'my-plugin' });\n\n See: https://github.com/objectstack-ai/objectui/blob/main/MIGRATION_GUIDE.md`),this.components.has(r),this.components.set(r,{type:r,component:t,...n}),n?.namespace&&!n?.skipFallback&&this.components.set(e,{type:r,component:t,...n}),this.lazyEntries.delete(r),this.lazyEntries.delete(e),this.notify()}registerLazy(e,t,n){let r=n?.namespace?`${n.namespace}:${e}`:e,i={loader:t,meta:n};this.lazyEntries.set(r,i),n?.namespace&&!n?.skipFallback&&this.lazyEntries.set(e,i)}hasLazy(e,t){return t?this.lazyEntries.has(`${t}:${e}`):this.lazyEntries.has(e)}loadLazy(e,t){let n=t?`${t}:${e}`:e,r=this.lazyEntries.get(n);if(r)return r.pending||=r.loader().catch(e=>{throw r.pending=void 0,e}),r.pending}subscribe(e){return this.listeners.add(e),()=>{this.listeners.delete(e)}}notify(){for(let e of this.listeners)try{e()}catch(e){console.error(`[Registry] listener error`,e)}}get(e,t){if(t){let n=`${t}:${e}`;return this.components.get(n)?.component}return this.components.get(e)?.component}getConfig(e,t){if(t){let n=`${t}:${e}`;return this.components.get(n)}return this.components.get(e)}has(e,t){if(t){let n=`${t}:${e}`;return this.components.has(n)}return this.components.has(e)}getAllTypes(){return Array.from(this.components.keys())}getAllConfigs(){return Array.from(this.components.values())}getNamespaceComponents(e){return Array.from(this.components.values()).filter(t=>t.namespace===e)}},lj={type:{required:!0,validate:e=>typeof e==`string`&&e.length>0,message:`type must be a non-empty string`},id:{required:!1,validate:e=>typeof e==`string`,message:`id must be a string`},className:{required:!1,validate:e=>typeof e==`string`,message:`className must be a string`},visible:{required:!1,validate:e=>typeof e==`boolean`,message:`visible must be a boolean`},disabled:{required:!1,validate:e=>typeof e==`boolean`,message:`disabled must be a boolean`}};function uj(e,t=`schema`){let n=[];return!e||typeof e!=`object`?(n.push({path:t,message:`Schema must be an object`,type:`error`,code:`INVALID_SCHEMA`}),n):(Object.entries(lj).forEach(([r,i])=>{let a=e[r];i.required&&a===void 0&&n.push({path:`${t}.${r}`,message:`${r} is required`,type:`error`,code:`MISSING_REQUIRED`}),a!==void 0&&!i.validate(a)&&n.push({path:`${t}.${r}`,message:i.message,type:`error`,code:`INVALID_TYPE`})}),n)}function dj(e,t=`schema`){let n=[];return e.type===`crud`&&((!e.columns||!Array.isArray(e.columns))&&n.push({path:`${t}.columns`,message:`CRUD schema requires columns array`,type:`error`,code:`MISSING_COLUMNS`}),!e.api&&!e.dataSource&&n.push({path:`${t}.api`,message:`CRUD schema requires api or dataSource`,type:`warning`,code:`MISSING_DATA_SOURCE`}),e.columns&&Array.isArray(e.columns)&&e.columns.forEach((e,r)=>{e.name||n.push({path:`${t}.columns[${r}]`,message:`Column requires name property`,type:`error`,code:`MISSING_COLUMN_NAME`})}),e.fields&&Array.isArray(e.fields)&&e.fields.forEach((e,r)=>{e.name||n.push({path:`${t}.fields[${r}]`,message:`Field requires name property`,type:`error`,code:`MISSING_FIELD_NAME`})})),n}function fj(e,t=`schema`){let n=[];return e.type===`form`&&e.fields&&Array.isArray(e.fields)&&e.fields.forEach((r,i)=>{r.name||n.push({path:`${t}.fields[${i}]`,message:`Form field requires name property`,type:`error`,code:`MISSING_FIELD_NAME`}),e.fields.filter(e=>e.name===r.name).length>1&&n.push({path:`${t}.fields[${i}]`,message:`Duplicate field name: ${r.name}`,type:`warning`,code:`DUPLICATE_FIELD_NAME`})}),n}function pj(e,t=`schema`){let n=[],r=e.children||e.body;if(r){if(Array.isArray(r))r.forEach((e,r)=>{if(typeof e==`object`&&e){let i=mj(e,`${t}.children[${r}]`);n.push(...i.errors,...i.warnings)}});else if(typeof r==`object`&&r){let e=mj(r,`${t}.children`);n.push(...e.errors,...e.warnings)}}return n}function mj(e,t=`schema`){let n=[];n.push(...uj(e,t)),n.push(...dj(e,t)),n.push(...fj(e,t)),n.push(...pj(e,t));let r=n.filter(e=>e.type===`error`),i=n.filter(e=>e.type===`warning`);return{valid:r.length===0,errors:r,warnings:i}}var hj=class e{constructor(e={}){Object.defineProperty(this,"scopes",{enumerable:!0,configurable:!0,writable:!0,value:[]}),this.scopes.push(new Map(Object.entries(e)))}pushScope(e){this.scopes.push(new Map(Object.entries(e)))}popScope(){this.scopes.length>1&&this.scopes.pop()}get(e){let t=e.split(`.`),n=t[0];for(let e=this.scopes.length-1;e>=0;e--)if(this.scopes[e].has(n)){let r=this.scopes[e].get(n);for(let e=1;e<t.length;e++)if(r&&typeof r==`object`)r=r[t[e]];else return;return r}}set(e,t){this.scopes.length>0&&this.scopes[this.scopes.length-1].set(e,t)}has(e){let t=e.split(`.`)[0];for(let e=this.scopes.length-1;e>=0;e--)if(this.scopes[e].has(t))return!0;return!1}toObject(){let e={};for(let t of this.scopes)for(let[n,r]of t.entries())e[n]=r;return e}createChild(t={}){let n=new e;return n.scopes=[...this.scopes,new Map(Object.entries(t))],n}},gj={Math,JSON,parseInt,parseFloat,isNaN,isFinite},_j=new Set([`constructor`,`__proto__`,`prototype`,`__defineGetter__`,`__defineSetter__`,`__lookupGetter__`,`__lookupSetter__`]),vj=class e{constructor(){Object.defineProperty(this,"source",{enumerable:!0,configurable:!0,writable:!0,value:``}),Object.defineProperty(this,"pos",{enumerable:!0,configurable:!0,writable:!0,value:0}),Object.defineProperty(this,"context",{enumerable:!0,configurable:!0,writable:!0,value:{}}),Object.defineProperty(this,"_evaluating",{enumerable:!0,configurable:!0,writable:!0,value:!0})}evaluate(e,t){this.source=e.trim(),this.pos=0,this.context={...gj,...t};let n=this.parseTernary();if(this.skipWhitespace(),this.pos<this.source.length)throw SyntaxError(`Unexpected token "${this.source[this.pos]}" at position ${this.pos} in expression "${e}"`);return n}skipWhitespace(){for(;this.pos<this.source.length&&/\s/.test(this.source[this.pos]);)this.pos++}peek(e=0){return this.source[this.pos+e]??``}consume(){return this.source[this.pos++]??``}withEvaluation(e,t){let n=this._evaluating;this._evaluating=e;try{return t()}finally{this._evaluating=n}}assertSafeProp(e){if(typeof e==`string`&&_j.has(e))throw TypeError(`Access to property "${e}" is not permitted in expressions`)}parseTernary(){let e=this.parseNullish();if(this.skipWhitespace(),this.peek()===`?`&&this.peek(1)!==`?`){if(this.pos++,this.skipWhitespace(),!this._evaluating){if(this.parseTernary(),this.skipWhitespace(),this.peek()!==`:`)throw SyntaxError(`Expected ":" in ternary expression`);this.pos++,this.skipWhitespace(),this.parseTernary();return}if(e){let e=this.parseTernary();if(this.skipWhitespace(),this.peek()!==`:`)throw SyntaxError(`Expected ":" in ternary expression`);return this.pos++,this.skipWhitespace(),this.withEvaluation(!1,()=>this.parseTernary()),e}else{if(this.withEvaluation(!1,()=>this.parseTernary()),this.skipWhitespace(),this.peek()!==`:`)throw SyntaxError(`Expected ":" in ternary expression`);return this.pos++,this.skipWhitespace(),this.parseTernary()}}return e}parseNullish(){let e=this.parseOr();for(this.skipWhitespace();this.peek()===`?`&&this.peek(1)===`?`;){if(this.pos+=2,this.skipWhitespace(),this._evaluating&&e!=null)this.withEvaluation(!1,()=>this.parseOr());else{let t=this.parseOr();this._evaluating&&(e??=t)}this.skipWhitespace()}return e}parseOr(){let e=this.parseAnd();for(this.skipWhitespace();this.peek()===`|`&&this.peek(1)===`|`;){if(this.pos+=2,this.skipWhitespace(),this._evaluating&&e)this.withEvaluation(!1,()=>this.parseAnd());else{let t=this.parseAnd();this._evaluating&&(e||=t)}this.skipWhitespace()}return e}parseAnd(){let e=this.parseEquality();for(this.skipWhitespace();this.peek()===`&`&&this.peek(1)===`&`;){if(this.pos+=2,this.skipWhitespace(),this._evaluating&&!e)this.withEvaluation(!1,()=>this.parseEquality());else{let t=this.parseEquality();this._evaluating&&(e&&=t)}this.skipWhitespace()}return e}parseEquality(){let e=this.parseAddition();for(this.skipWhitespace();;){let t=null;if(this.peek()===`=`&&this.peek(1)===`=`&&this.peek(2)===`=`)t=`===`,this.pos+=3;else if(this.peek()===`!`&&this.peek(1)===`=`&&this.peek(2)===`=`)t=`!==`,this.pos+=3;else if(this.peek()===`=`&&this.peek(1)===`=`)t=`==`,this.pos+=2;else if(this.peek()===`!`&&this.peek(1)===`=`)t=`!=`,this.pos+=2;else if(this.peek()===`>`&&this.peek(1)===`=`)t=`>=`,this.pos+=2;else if(this.peek()===`<`&&this.peek(1)===`=`)t=`<=`,this.pos+=2;else if(this.peek()===`>`&&this.peek(1)!==`>`)t=`>`,this.pos++;else if(this.peek()===`<`&&this.peek(1)!==`<`)t=`<`,this.pos++;else break;this.skipWhitespace();let n=this.parseAddition();switch(t){case`===`:e=e===n;break;case`!==`:e=e!==n;break;case`==`:e=e==n;break;case`!=`:e=e!=n;break;case`>`:e=e>n;break;case`<`:e=e<n;break;case`>=`:e=e>=n;break;case`<=`:e=e<=n;break}this.skipWhitespace()}return e}parseAddition(){let e=this.parseMultiplication();for(this.skipWhitespace();(this.peek()===`+`||this.peek()===`-`)&&this.peek(1)!==`=`;){let t=this.consume();this.skipWhitespace();let n=this.parseMultiplication();e=t===`+`?e+n:e-n,this.skipWhitespace()}return e}parseMultiplication(){let e=this.parseUnary();for(this.skipWhitespace();(this.peek()===`*`||this.peek()===`/`||this.peek()===`%`)&&this.peek(1)!==`=`;){let t=this.consume();this.skipWhitespace();let n=this.parseUnary();t===`*`?e*=n:t===`/`?e/=n:e%=n,this.skipWhitespace()}return e}parseUnary(){if(this.skipWhitespace(),this.source.startsWith(`typeof`,this.pos)&&!/[\w$]/.test(this.source[this.pos+6]??``)){this.pos+=6,this.skipWhitespace();try{return typeof this.parseUnary()}catch{return`undefined`}}return this.peek()===`!`?(this.pos++,!this.parseUnary()):this.peek()===`-`?(this.pos++,-this.parseUnary()):this.peek()===`+`?(this.pos++,+this.parseUnary()):this.parseMember()}parseMember(){let e=this.parsePrimary();for(;;){this.skipWhitespace();let t=this.peek()===`?`&&this.peek(1)===`.`;if(this.peek()===`.`&&this.peek(1)!==`.`||t){t&&this.pos++,this.pos++,this.skipWhitespace();let n=this.parseIdentifierName();if(!n)break;if(this.assertSafeProp(n),this.skipWhitespace(),this.peek()===`(`){this.pos++;let t=this.parseArgList();if(this.peek()!==`)`)throw SyntaxError(`Expected ")" after argument list at position ${this.pos}`);if(this.pos++,!this._evaluating){e=void 0;continue}e=e!=null&&typeof e[n]==`function`?e[n](...t):void 0}else{if(!this._evaluating){e=void 0;continue}e=e?.[n]}continue}let n=this.peek()===`?`&&this.peek(1)===`[`;if(this.peek()===`[`||n){n&&this.pos++,this.pos++,this.skipWhitespace();let t=this.parseTernary();if(this.skipWhitespace(),this.peek()!==`]`)throw SyntaxError(`Expected "]" after bracket expression at position ${this.pos}`);if(this.pos++,this.assertSafeProp(t),!this._evaluating){e=void 0;continue}e=e?.[t];continue}if(this.peek()===`(`){this.pos++;let t=this.parseArgList();if(this.peek()!==`)`)throw SyntaxError(`Expected ")" after argument list at position ${this.pos}`);if(this.pos++,!this._evaluating){e=void 0;continue}if(typeof e==`function`)e=e(...t);else throw TypeError(`${String(e)} is not a function`);continue}break}return e}parsePrimary(){this.skipWhitespace();let e=this.peek();if(e===`(`){this.pos++;let e=this.parseTernary();if(this.skipWhitespace(),this.peek()!==`)`)throw SyntaxError(`Expected ")" to close "(" expression at position ${this.pos}`);return this.pos++,e}if(e===`[`)return this.parseArrayLiteral();if(e===`"`||e===`'`)return this.parseString(e);if(/\d/.test(e)||e===`.`&&/\d/.test(this.peek(1)))return this.parseNumber();if(/[a-zA-Z_$]/.test(e))return this.parseIdentifierOrKeyword();throw SyntaxError(`Unexpected character "${e}" at position ${this.pos}`)}parseArrayLiteral(){this.pos++;let e=[];for(this.skipWhitespace();this.peek()!==`]`&&this.pos<this.source.length;)e.push(this.parseTernary()),this.skipWhitespace(),this.peek()===`,`&&(this.pos++,this.skipWhitespace());if(this.peek()!==`]`)throw SyntaxError(`Expected "]" to close array literal at position ${this.pos}`);return this.pos++,e}parseString(e){this.pos++;let t=``;for(;this.pos<this.source.length;){let n=this.source[this.pos];if(n===`\\`){this.pos++;let e=this.source[this.pos++]??``;switch(e){case`n`:t+=`
|
|
35
|
+
`;break;case`t`:t+=` `;break;case`r`:t+=`\r`;break;case`\\`:t+=`\\`;break;case`"`:t+=`"`;break;case`'`:t+=`'`;break;case"`":t+="`";break;default:t+=e}}else if(n===e){this.pos++;break}else t+=n,this.pos++}return t}parseNumber(){let e=this.pos,t=!1;for(;this.pos<this.source.length&&/\d/.test(this.source[this.pos]);)t=!0,this.pos++;if(this.source[this.pos]===`.`)for(this.pos++;this.pos<this.source.length&&/\d/.test(this.source[this.pos]);)t=!0,this.pos++;if(/[eE]/.test(this.source[this.pos]??``)){this.pos++,/[+\-]/.test(this.source[this.pos]??``)&&this.pos++;let t=0;for(;this.pos<this.source.length&&/\d/.test(this.source[this.pos]);)t++,this.pos++;if(t===0)throw SyntaxError(`Invalid numeric literal exponent at position ${e}`)}if(!t)throw SyntaxError(`Invalid numeric literal at position ${e}`);let n=this.source.slice(e,this.pos),r=Number(n);if(!Number.isFinite(r))throw SyntaxError(`Invalid numeric literal "${n}" at position ${e}`);return r}parseIdentifierName(){let e=this.pos;for(;this.pos<this.source.length&&/[\w$]/.test(this.source[this.pos]);)this.pos++;return this.source.slice(e,this.pos)}parseIdentifierOrKeyword(){let e=this.parseIdentifierName();switch(e){case`true`:return!0;case`false`:return!1;case`null`:return null;case`undefined`:return;case`NaN`:return NaN;case`Infinity`:return 1/0}if(e===`new`)return this.parseNewExpression();if(this.skipWhitespace(),this.peek()===`=`&&this.peek(1)===`>`)return this.parseArrowFunction(e);if(this.peek()===`(`){this.pos++;let t=this.parseArgList();if(this.peek()!==`)`)throw SyntaxError(`Expected ")" after argument list at position ${this.pos}`);if(this.pos++,!this._evaluating)return;let n=this.context[e];if(typeof n==`function`)return n(...t);throw TypeError(`"${e}" is not a function`)}if(this._evaluating){if(!(e in this.context))throw ReferenceError(`${e} is not defined`);return this.context[e]}}parseNewExpression(){this.skipWhitespace();let e=this.parseIdentifierName();this.skipWhitespace();let t=[];if(this.peek()===`(`){if(this.pos++,t=this.parseArgList(),this.peek()!==`)`)throw SyntaxError(`Expected ")" after new ${e}() at position ${this.pos}`);this.pos++}if(this._evaluating)switch(e){case`Date`:return new Date(...t);case`RegExp`:return new RegExp(t[0],t[1]);default:throw TypeError(`new ${e}() is not supported in expressions`)}}parseArrowFunction(t){this.pos+=2,this.skipWhitespace();let n=this.pos,r=this.scanExpressionEnd(),i=this.source.slice(n,r).trim();this.pos=r;let a=this.context;return n=>new e().evaluate(i,{...a,[t]:n})}scanExpressionEnd(){let e=this.pos,t=0,n=!1,r=``;for(;e<this.source.length;){let i=this.source[e];if(n){if(i===`\\`){e+=2;continue}i===r&&(n=!1),e++;continue}if(i===`"`||i===`'`){n=!0,r=i,e++;continue}if(i===`(`||i===`[`)t++;else if(i===`)`||i===`]`){if(t===0)break;t--}else if(i===`,`&&t===0)break;e++}return e}parseArgList(){let e=[];for(this.skipWhitespace();this.peek()!==`)`&&this.pos<this.source.length;)e.push(this.parseTernary()),this.skipWhitespace(),this.peek()===`,`&&(this.pos++,this.skipWhitespace());return e}},yj=class{constructor(e=1e3){Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"maxSize",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.maxSize=e}compile(e,t){let n=`${e}::${t.join(`,`)}`;if(this.cache.has(n)){let e=this.cache.get(n);return e.hitCount++,e}this.cache.size>=this.maxSize&&this.evictLFU();let r={fn:this.compileExpression(e,t),varNames:[...t],expression:e,compiledAt:Date.now(),hitCount:1};return this.cache.set(n,r),r}compileExpression(e,t){let n=new vj;return(...r)=>{let i={};for(let e=0;e<t.length;e++)i[t[e]]=r[e];return n.evaluate(e,i)}}evictLFU(){let e=null,t=1/0,n=1/0;for(let[r,i]of this.cache.entries())(i.hitCount<n||i.hitCount===n&&i.compiledAt<t)&&(e=r,t=i.compiledAt,n=i.hitCount);e&&this.cache.delete(e)}has(e,t){let n=`${e}::${t.join(`,`)}`;return this.cache.has(n)}clear(){this.cache.clear()}getStats(){let e=0,t=[];for(let n of this.cache.values())e+=n.hitCount,t.push({expression:n.expression,hitCount:n.hitCount});return{size:this.cache.size,maxSize:this.maxSize,totalHits:e,entries:t.sort((e,t)=>t.hitCount-e.hitCount)}}},bj=class{constructor(){Object.defineProperty(this,"functions",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),this.registerDefaults()}register(e,t){this.functions.set(e.toUpperCase(),t)}get(e){return this.functions.get(e.toUpperCase())}has(e){return this.functions.has(e.toUpperCase())}getNames(){return Array.from(this.functions.keys())}toObject(){let e={};for(let[t,n]of this.functions)e[t]=n;return e}registerDefaults(){this.registerAggregationFunctions(),this.registerDateFunctions(),this.registerLogicFunctions(),this.registerStringFunctions(),this.registerStringSearchFunctions(),this.registerStatisticalFunctions()}registerAggregationFunctions(){this.register(`SUM`,(...e)=>xj(e).reduce((e,t)=>e+t,0)),this.register(`AVG`,(...e)=>{let t=xj(e);return t.length===0?0:t.reduce((e,t)=>e+t,0)/t.length}),this.register(`COUNT`,(...e)=>Sj(e).filter(e=>e!=null).length),this.register(`MIN`,(...e)=>{let t=xj(e);return t.length===0?0:Math.min(...t)}),this.register(`MAX`,(...e)=>{let t=xj(e);return t.length===0?0:Math.max(...t)})}registerDateFunctions(){this.register(`TODAY`,()=>new Date().toISOString().split(`T`)[0]),this.register(`NOW`,()=>new Date().toISOString()),this.register(`DATEADD`,(e,t,n)=>{let r=new Date(e);if(isNaN(r.getTime()))throw Error(`DATEADD: Invalid date "${e}"`);switch(String(n).toLowerCase()){case`day`:case`days`:r.setDate(r.getDate()+t);break;case`month`:case`months`:r.setMonth(r.getMonth()+t);break;case`year`:case`years`:r.setFullYear(r.getFullYear()+t);break;case`hour`:case`hours`:r.setHours(r.getHours()+t);break;case`minute`:case`minutes`:r.setMinutes(r.getMinutes()+t);break;default:throw Error(`DATEADD: Unsupported unit "${n}"`)}return r.toISOString()}),this.register(`DATEDIFF`,(e,t,n)=>{let r=new Date(e),i=new Date(t);if(isNaN(r.getTime()))throw Error(`DATEDIFF: Invalid date "${e}"`);if(isNaN(i.getTime()))throw Error(`DATEDIFF: Invalid date "${t}"`);let a=i.getTime()-r.getTime();switch(String(n).toLowerCase()){case`day`:case`days`:return Math.floor(a/(1e3*60*60*24));case`month`:case`months`:return(i.getFullYear()-r.getFullYear())*12+(i.getMonth()-r.getMonth());case`year`:case`years`:return i.getFullYear()-r.getFullYear();case`hour`:case`hours`:return Math.floor(a/(1e3*60*60));case`minute`:case`minutes`:return Math.floor(a/(1e3*60));default:throw Error(`DATEDIFF: Unsupported unit "${n}"`)}}),this.register(`DATEFORMAT`,(e,t)=>{let n=new Date(e);if(isNaN(n.getTime()))throw Error(`DATEFORMAT: Invalid date "${e}"`);let r=(e,t=2)=>String(e).padStart(t,`0`);return t.replace(`YYYY`,String(n.getFullYear())).replace(`YY`,String(n.getFullYear()).slice(-2)).replace(`MM`,r(n.getMonth()+1)).replace(`DD`,r(n.getDate())).replace(`HH`,r(n.getHours())).replace(`mm`,r(n.getMinutes())).replace(`ss`,r(n.getSeconds()))})}registerLogicFunctions(){this.register(`IF`,(e,t,n)=>e?t:n),this.register(`AND`,(...e)=>e.every(Boolean)),this.register(`OR`,(...e)=>e.some(Boolean)),this.register(`NOT`,e=>!e),this.register(`SWITCH`,(e,...t)=>{for(let n=0;n<t.length-1;n+=2)if(e===t[n])return t[n+1];if(t.length%2==1)return t[t.length-1]})}registerStringFunctions(){this.register(`CONCAT`,(...e)=>e.map(e=>String(e??``)).join(``)),this.register(`LEFT`,(e,t)=>String(e??``).substring(0,t)),this.register(`RIGHT`,(e,t)=>{let n=String(e??``);return n.substring(Math.max(0,n.length-t))}),this.register(`TRIM`,e=>String(e??``).trim()),this.register(`UPPER`,e=>String(e??``).toUpperCase()),this.register(`LOWER`,e=>String(e??``).toLowerCase())}registerStringSearchFunctions(){this.register(`FIND`,(e,t,n)=>String(t??``).indexOf(String(e??``),n??0)),this.register(`REPLACE`,(e,t,n)=>String(e??``).split(String(t??``)).join(String(n??``))),this.register(`SUBSTRING`,(e,t,n)=>{let r=String(e??``);return n===void 0?r.substring(t):r.substring(t,t+n)}),this.register(`REGEX`,(e,t,n)=>{let r=String(e??``);return new RegExp(t,n).test(r)}),this.register(`LEN`,e=>String(e??``).length)}registerStatisticalFunctions(){this.register(`MEDIAN`,(...e)=>{let t=xj(e).sort((e,t)=>e-t);if(t.length===0)return 0;let n=Math.floor(t.length/2);return t.length%2==0?(t[n-1]+t[n])/2:t[n]}),this.register(`STDEV`,(...e)=>{let t=xj(e);if(t.length<2)return 0;let n=t.reduce((e,t)=>e+t,0)/t.length,r=t.map(e=>(e-n)**2).reduce((e,t)=>e+t,0)/(t.length-1);return Math.sqrt(r)}),this.register(`VARIANCE`,(...e)=>{let t=xj(e);if(t.length<2)return 0;let n=t.reduce((e,t)=>e+t,0)/t.length;return t.map(e=>(e-n)**2).reduce((e,t)=>e+t,0)/(t.length-1)}),this.register(`PERCENTILE`,(e,...t)=>{let n=xj(t).sort((e,t)=>e-t);if(n.length===0)return 0;let r=Math.max(0,Math.min(100,e))/100*(n.length-1),i=Math.floor(r),a=Math.ceil(r);if(i===a)return n[i];let o=r-i;return n[i]+o*(n[a]-n[i])})}};function xj(e){let t=[];for(let n of e)if(Array.isArray(n))t.push(...xj(n));else{let e=Number(n);isNaN(e)||t.push(e)}return t}function Sj(e){let t=[];for(let n of e)Array.isArray(n)?t.push(...Sj(n)):t.push(n);return t}var Cj=class e{constructor(e,t,n){Object.defineProperty(this,"context",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"cache",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"formulas",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),e instanceof hj?this.context=e:this.context=new hj(e||{}),this.cache=t||new yj,this.formulas=n||new bj}evaluate(e,t={}){if(e&&typeof e==`object`&&typeof e.source==`string`&&(e=e.source),typeof e!=`string`)return e;let{defaultValue:n,throwOnError:r=!1,sanitize:i=!0}=t;try{if(!e.includes("${"))return e;let t=e.match(/^\$\{([^}]+)\}$/);return t?this.evaluateExpression(t[1].trim(),{sanitize:i}):e.replace(/\$\{([^}]+)\}/g,(e,t)=>{try{let e=this.evaluateExpression(t.trim(),{sanitize:i});return String(e??``)}catch(n){if(r)throw n;return console.warn(`Expression evaluation failed for: ${t}`,n),e}})}catch(t){if(r)throw t;return console.warn(`Failed to evaluate expression: ${e}`,t),n??e}}evaluateExpression(e,t={}){let{sanitize:n=!0}=t;if(!(!e||e.trim()===``)){if(n&&this.isDangerous(e))throw Error(`Potentially dangerous expression detected: ${e}`);try{let t=this.context.toObject(),n={...this.formulas.toObject(),...t},r=Object.keys(n),i=Object.values(n);return this.cache.compile(e,r).fn(...i)}catch(t){throw Error(`Failed to evaluate expression "${e}": ${t.message}`)}}}isDangerous(e){return[/eval\s*\(/i,/Function\s*\(/i,/setTimeout\s*\(/i,/setInterval\s*\(/i,/import\s*\(/i,/require\s*\(/i,/process\./i,/global\./i,/window\./i,/document\./i,/__proto__/i,/constructor\s*\(/i,/prototype\./i].some(t=>t.test(e))}evaluateCondition(e,t={}){return typeof e==`boolean`?e:(e&&typeof e==`object`&&typeof e.source==`string`&&(e=e.source),e?!!this.evaluate(e,t):!0)}updateContext(e){Object.entries(e).forEach(([e,t])=>{this.context.set(e,t)})}getContext(){return this.context}withContext(t){return new e(this.context.createChild(t),this.cache,this.formulas)}getCacheStats(){return this.cache.getStats()}clearCache(){this.cache.clear()}getFormulas(){return this.formulas}registerFunction(e,t){this.formulas.register(e,t)}};new yj,new bj;var wj=class{constructor(e={}){Object.defineProperty(this,"handlers",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"scripts",{enumerable:!0,configurable:!0,writable:!0,value:new Map}),Object.defineProperty(this,"evaluator",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"context",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"confirmHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"toastHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"modalHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"navigationHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"paramCollectionHandler",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.context=e,this.evaluator=new Cj(e),this.confirmHandler=async e=>window.confirm(e),this.toastHandler=null,this.modalHandler=null,this.navigationHandler=null,this.paramCollectionHandler=null}setConfirmHandler(e){this.confirmHandler=e}setToastHandler(e){this.toastHandler=e}setModalHandler(e){this.modalHandler=e}setNavigationHandler(e){this.navigationHandler=e}setParamCollectionHandler(e){this.paramCollectionHandler=e}registerHandler(e,t){this.handlers.set(e,t)}unregisterHandler(e){this.handlers.delete(e)}registerScript(e,t){this.scripts.set(e,t)}unregisterScript(e){this.scripts.delete(e)}async execute(e){try{let t=e.type||e.actionType||e.name||``;if(e.condition&&!this.evaluator.evaluateCondition(e.condition))return{success:!1,error:`Action condition not met`};if(e.disabled&&(typeof e.disabled==`string`?this.evaluator.evaluateCondition(e.disabled):e.disabled))return{success:!1,error:`Action is disabled`};let n=e.confirm?.message||e.confirmText;if(n&&!await this.confirmHandler(this.evaluator.evaluate(n),e.confirm?{title:e.confirm.title,confirmText:e.confirm.confirmText,cancelText:e.confirm.cancelText}:void 0))return{success:!1,error:`Action cancelled by user`};let r=e.actionParams&&Array.isArray(e.actionParams)?e.actionParams:Array.isArray(e.params)?e.params:void 0;if(r&&r.length>0&&this.paramCollectionHandler){let t=await this.paramCollectionHandler(r,e);if(t===null)return{success:!1,error:`Action cancelled by user (params)`};let n=Array.isArray(e.params)?{}:e.params||{},i=n._rowRecord;e.params={...n,...t},i!==void 0&&(e.params._rowRecord=i)}if(t&&this.handlers.has(t)){let n=await this.handlers.get(t)(e,this.context);return await this.handlePostExecution(e,n),n}let i;switch(t){case`script`:i=await this.executeScript(e);break;case`url`:i=await this.executeUrl(e);break;case`modal`:i=await this.executeModal(e);break;case`flow`:i=await this.executeFlow(e);break;case`api`:i=await this.executeAPI(e);break;case`navigation`:i=await this.executeNavigation(e);break;default:e.navigate?i=await this.executeNavigation(e):e.api||e.endpoint?i=await this.executeAPI(e):e.onClick?(await e.onClick(),i={success:!0}):i=await this.executeActionSchema(e)}return await this.handlePostExecution(e,i),i}catch(t){let n={success:!1,error:t.message};return await this.handlePostExecution(e,n),n}}async executeChain(e,t=`sequential`){if(e.length===0)return{success:!0};if(t===`parallel`){let t=await Promise.allSettled(e.map(e=>this.execute(e)));if(t.filter(e=>e.status===`rejected`||e.status===`fulfilled`&&!e.value.success).length>0)return{success:!1,error:t.find(e=>e.status===`fulfilled`&&!e.value.success)?.value?.error||`One or more parallel actions failed`};let n=t[t.length-1];return n.status===`fulfilled`?n.value:{success:!1,error:`Action failed`}}let n={success:!0};for(let t of e)if(n=await this.execute(t),!n.success)return n;return n}async handlePostExecution(e,t){if(this.toastHandler){let n=e.toast??{showOnSuccess:!0,showOnError:!0},r=e.toast?.duration;if(t.success&&n.showOnSuccess!==!1){let t=e.successMessage||`Action completed successfully`;this.toastHandler(t,{type:`success`,duration:r})}if(!t.success&&n.showOnError!==!1&&t.error){let n=e.errorMessage||t.error;this.toastHandler(n,{type:`error`,duration:r})}}if(e.refreshAfter&&t.success&&(t.reload=!0),e.chain&&e.chain.length>0&&t.success){let n=await this.executeChain(e.chain,e.chainMode||`sequential`);n.success||(t.success=!1,t.error=n.error),n.data&&(t.data=n.data),n.redirect&&(t.redirect=n.redirect),n.reload&&(t.reload=!0)}if(t.success&&e.onSuccess){let t=Array.isArray(e.onSuccess)?e.onSuccess:[e.onSuccess];await this.executeChain(t,`sequential`)}if(!t.success&&e.onFailure){let t=Array.isArray(e.onFailure)?e.onFailure:[e.onFailure];await this.executeChain(t,`sequential`)}}async executeScript(e){let t=e.execute||e.target;if(!t)return{success:!1,error:`No script provided for script action`};let n=this.scripts.get(t);if(n)try{return await n(e,this.context)}catch(e){return{success:!1,error:`Script execution failed: ${e.message}`}}try{return{success:!0,data:this.evaluator.evaluate(`\${${t}}`)}}catch(e){return{success:!1,error:`Script execution failed: ${e.message}`}}}async executeUrl(e){let t=e.target||e.redirect;if(!t)return{success:!1,error:`No URL provided for url action`};let n=this.evaluator.evaluate(t);if(!this.isValidUrl(n))return{success:!1,error:`Invalid URL scheme. Only http://, https://, and relative URLs are allowed.`};let r=n.startsWith(`http://`)||n.startsWith(`https://`),i=e.params?.newTab??r;if(this.navigationHandler)return this.navigationHandler(n,{external:r,newTab:i}),{success:!0};if(i)window.open(n,`_blank`,`noopener,noreferrer`);else return{success:!0,redirect:n};return{success:!0}}async executeModal(e){let t=e.modal||e.target||e.params?.schema;return t?this.modalHandler?await this.modalHandler(t,this.context):{success:!0,modal:t}:{success:!1,error:`No modal schema or target provided for modal action`}}async executeFlow(e){let t=e.target||e.name;return t?this.handlers.has(`flow`)?await this.handlers.get(`flow`)(e,this.context):{success:!1,error:`Flow handler not registered. Cannot execute flow: ${t}`}:{success:!1,error:`No flow target provided for flow action`}}async executeActionSchema(e){let t={success:!0};if(e.api||e.endpoint){let n=await this.executeAPI(e);if(!n.success)return n;t.data=n.data}return e.onClick&&await e.onClick(),t.reload=e.reload!==!1,t.close=e.close!==!1,e.redirect&&(t.redirect=this.evaluator.evaluate(e.redirect)),t}async executeNavigation(e){let t=e.navigate||e,n=this.evaluator.evaluate(t.to||t.target);if(!this.isValidUrl(n))return{success:!1,error:`Invalid URL scheme. Only http://, https://, and relative URLs are allowed.`};let r=t.external||typeof n==`string`&&(n.startsWith(`http://`)||n.startsWith(`https://`));if(this.navigationHandler)return this.navigationHandler(n,{external:r,newTab:t.newTab??r,replace:t.replace}),{success:!0};if(r)window.open(n,`_blank`,`noopener,noreferrer`);else return{success:!0,redirect:n};return{success:!0}}async executeAPI(e){let t=e.api||e.endpoint||e.target;if(!t)return{success:!1,error:`No API endpoint provided`};try{let n,r,i={"Content-Type":`application/json`},a,o=`json`;if(typeof t==`string`)n=t,r=e.method||`POST`,a=JSON.stringify(e.params||this.context.data||{});else{let s=t;if(n=s.url,r=s.method||e.method||`POST`,i={...i,...s.headers},o=s.responseType||`json`,s.queryParams){let e=new URLSearchParams(s.queryParams);n=`${n}${n.includes(`?`)?`&`:`?`}${e.toString()}`}s.body?a=typeof s.body==`string`?s.body:JSON.stringify(s.body):r!==`GET`&&r!==`HEAD`&&(a=JSON.stringify(e.params||this.context.data||{}))}let s={method:r,headers:i};a&&r!==`GET`&&r!==`HEAD`&&(s.body=a);let c=await fetch(n,s);if(!c.ok)throw Error(`HTTP ${c.status}: ${c.statusText}`);let l;switch(o){case`text`:l=await c.text();break;case`blob`:l=await c.blob();break;default:l=await c.json()}return{success:!0,data:l}}catch(e){return{success:!1,error:e.message}}}isValidUrl(e){return typeof e==`string`&&(e.startsWith(`http://`)||e.startsWith(`https://`)||e.startsWith(`/`)||e.startsWith(`./`))}updateContext(e){this.context={...this.context,...e},this.evaluator.updateContext(e)}getContext(){return this.context}getEvaluator(){return this.evaluator}};function Tj(e){if(typeof e!=`object`||!e)return!1;let t=e;return typeof t.id==`string`&&typeof t.type==`string`&&typeof t.objectName==`string`&&typeof t.recordId==`string`&&typeof t.timestamp==`number`}var Ej=class e{constructor(e){Object.defineProperty(this,"undoStack",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"redoStack",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"maxHistory",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),Object.defineProperty(this,"listeners",{enumerable:!0,configurable:!0,writable:!0,value:new Set}),this.maxHistory=e?.maxHistory??50}push(e){this.undoStack.push(e),this.undoStack.length>this.maxHistory&&this.undoStack.shift(),this.redoStack=[],this.notify()}peekUndo(){return this.undoStack[this.undoStack.length-1]}peekRedo(){return this.redoStack[this.redoStack.length-1]}popUndo(){let e=this.undoStack.pop();return e&&(this.redoStack.push(e),this.notify()),e}popRedo(){let e=this.redoStack.pop();return e&&(this.undoStack.push(e),this.notify()),e}clear(){this.undoStack=[],this.redoStack=[],this.notify()}get canUndo(){return this.undoStack.length>0}get canRedo(){return this.redoStack.length>0}get undoCount(){return this.undoStack.length}get redoCount(){return this.redoStack.length}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}getHistory(){return[...this.undoStack]}getRedoHistory(){return[...this.redoStack]}pushBatch(e){e.length!==0&&(this.undoStack.push(...e),this.undoStack.length>this.maxHistory&&this.undoStack.splice(0,this.undoStack.length-this.maxHistory),this.redoStack=[],this.notify())}popUndoBatch(e){let t=Math.min(e,this.undoStack.length);if(t===0)return[];let n=this.undoStack.splice(this.undoStack.length-t,t);return this.redoStack.push(...n),this.notify(),n}popRedoBatch(e){let t=Math.min(e,this.redoStack.length);if(t===0)return[];let n=this.redoStack.splice(this.redoStack.length-t,t);return this.undoStack.push(...n),this.notify(),n}saveToStorage(){try{let t=JSON.stringify({undoStack:this.undoStack,redoStack:this.redoStack});localStorage.setItem(e.STORAGE_KEY,t)}catch{}}loadFromStorage(){try{if(typeof localStorage>`u`)return;let t=localStorage.getItem(e.STORAGE_KEY);if(!t)return;let n=JSON.parse(t);Array.isArray(n.undoStack)&&(this.undoStack=n.undoStack.filter(Tj)),Array.isArray(n.redoStack)&&(this.redoStack=n.redoStack.filter(Tj)),this.undoStack.length>this.maxHistory&&this.undoStack.splice(0,this.undoStack.length-this.maxHistory),this.notify()}catch{}}notify(){this.listeners.forEach(e=>e())}};Object.defineProperty(Ej,"STORAGE_KEY",{enumerable:!0,configurable:!0,writable:!0,value:`objectui:undo-history`});var Dj=new Ej,Oj=`https://objectui.dev/docs/errors`,kj={"OBJUI-001":{code:`OBJUI-001`,message:'Unknown component type: "${type}"',suggestion:`Ensure the component is registered via registry.register() before rendering. Check for typos in the component type name.`,docUrl:`${Oj}/OBJUI-001`},"OBJUI-002":{code:`OBJUI-002`,message:"Schema validation failed: ${reason}",suggestion:`Verify the schema against the ObjectUI JSON spec. Run the built-in schema validator for details.`,docUrl:`${Oj}/OBJUI-002`},"OBJUI-003":{code:`OBJUI-003`,message:"Expression evaluation failed: ${expression}",suggestion:`Check the expression syntax and ensure all referenced variables exist in the current data scope.`,docUrl:`${Oj}/OBJUI-003`},"OBJUI-004":{code:`OBJUI-004`,message:'Plugin dependency missing: "${dependency}"',suggestion:`Install the required dependency and register it before loading this plugin.`,docUrl:`${Oj}/OBJUI-004`},"OBJUI-005":{code:`OBJUI-005`,message:'Plugin already loaded: "${plugin}"',suggestion:`A plugin with the same name is already registered. Remove the duplicate or use a unique plugin name.`,docUrl:`${Oj}/OBJUI-005`},"OBJUI-006":{code:`OBJUI-006`,message:'Plugin not found: "${plugin}"',suggestion:`Verify the plugin name and ensure it has been registered before access.`,docUrl:`${Oj}/OBJUI-006`},"OBJUI-007":{code:`OBJUI-007`,message:'Registry namespace deprecated: "${namespace}"',suggestion:`Migrate to the new namespace format. See the migration guide for details.`,docUrl:`${Oj}/OBJUI-007`},"OBJUI-008":{code:`OBJUI-008`,message:'Read-only scope violation: "${scope}"',suggestion:`You are trying to mutate a read-only data scope. Use a writable scope or clone the data before modifying.`,docUrl:`${Oj}/OBJUI-008`},"OBJUI-009":{code:`OBJUI-009`,message:'Invalid field configuration: "${field}"',suggestion:`Check the field schema for required properties (type, name). Ensure the field widget is registered.`,docUrl:`${Oj}/OBJUI-009`},"OBJUI-010":{code:`OBJUI-010`,message:'Action execution failed: "${action}"',suggestion:`Verify the action handler is registered and that all required parameters are provided.`,docUrl:`${Oj}/OBJUI-010`}},Aj=class extends Error{constructor(e,t,n){super(e),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:t}),Object.defineProperty(this,"details",{enumerable:!0,configurable:!0,writable:!0,value:n}),this.name=`ObjectUIError`,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,message:this.message,code:this.code,details:this.details,stack:this.stack}}};function jj(e){return e instanceof Aj}var Mj=`__debug`;function Nj(e){let t=e;if(t===void 0)try{t=typeof window<`u`?window.location.search:``}catch{t=``}let n=new URLSearchParams(t),r=n.has(Mj),i=n.has(`${Mj}_schema`),a=n.has(`${Mj}_perf`),o=n.has(`${Mj}_data`),s=n.has(`${Mj}_expr`),c=n.has(`${Mj}_events`),l=n.has(`${Mj}_registry`);return{enabled:r||i||a||o||s||c||l,...i&&{schema:i},...a&&{perf:a},...o&&{data:o},...s&&{expr:s},...c&&{events:c},...l&&{registry:l}}}function Pj(){try{if(typeof window<`u`)try{if(Nj(window.location.search).enabled)return!0}catch{}let e=typeof globalThis<`u`&&globalThis.OBJECTUI_DEBUG;return e===!0||e===`true`||globalThis.process?.env?.OBJECTUI_DEBUG===`true`}catch{return!1}}function Fj(e,t,n){Pj()&&(n===void 0?console.log(`[ObjectUI Debug][${e}] ${t}`):console.log(`[ObjectUI Debug][${e}] ${t}`,n))}var Ij=new Map;function Lj(e){Pj()&&Ij.set(e,performance.now())}function Rj(e){if(!Pj())return;let t=Ij.get(e);if(t!==void 0){let n=(performance.now()-t).toFixed(2);console.log(`[ObjectUI Debug][perf] ${e}: ${n}ms`),Ij.delete(e)}}var zj=200,Bj=class e{constructor(){Object.defineProperty(this,"entries",{enumerable:!0,configurable:!0,writable:!0,value:[]}),Object.defineProperty(this,"subscribers",{enumerable:!0,configurable:!0,writable:!0,value:new Set})}static getInstance(){return e.instance||=new e,e.instance}static resetInstance(){e.instance=null}addPerf(e){this.push({kind:`perf`,data:e})}addExpr(e){this.push({kind:`expr`,data:e})}addEvent(e){this.push({kind:`event`,data:e})}getEntries(e){return e?this.entries.filter(t=>t.kind===e):this.entries.slice()}clear(){this.entries=[]}subscribe(e){return this.subscribers.add(e),()=>this.subscribers.delete(e)}push(e){this.entries.push(e),this.entries.length>zj&&(this.entries=this.entries.slice(-200));for(let t of this.subscribers)try{t(e)}catch{}}};Object.defineProperty(Bj,"instance",{enumerable:!0,configurable:!0,writable:!0,value:null});var Vj=(0,W.createContext)(null),Hj=e=>{let t=(0,W.useContext)(Vj)?.dataSource;if(e&&t)return e.split(`.`).reduce((e,t)=>e&&e[t],t)};function Uj(e){if(e!=null)return typeof e==`string`?e:e.defaultValue||e.key}var Wj=(()=>{try{return!1}catch{return!0}})(),Gj=typeof WeakSet<`u`?new WeakSet:{add(){},has(){return!1}};function Kj(e){if(!Wj||!e||typeof e!=`object`||Gj.has(e))return{valid:!0,messages:[]};Gj.add(e);try{let t=mj(e);if(!t.valid){let n=t.errors.map(e=>`${e.path}: ${e.message}`);return console.warn(`[ObjectUI] Invalid schema detected:
|
|
36
|
+
`+n.join(`
|
|
37
|
+
`),e),{valid:!1,messages:n}}}catch(e){console.warn(`[ObjectUI] Schema validator threw:`,e)}return{valid:!0,messages:[]}}function qj(e){let t={};return e.ariaLabel&&(t[`aria-label`]=Uj(e.ariaLabel)),e.ariaDescribedBy&&(t[`aria-describedby`]=e.ariaDescribedBy),e.role&&(t.role=e.role),t}var Jj=class extends W.Component{constructor(){super(...arguments),Object.defineProperty(this,"state",{enumerable:!0,configurable:!0,writable:!0,value:{hasError:!1,error:null}}),Object.defineProperty(this,"handleRetry",{enumerable:!0,configurable:!0,writable:!0,value:()=>{this.setState({hasError:!1,error:null})}})}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidUpdate(e){this.state.hasError&&(e.componentType!==this.props.componentType||e.resetKey!==this.props.resetKey)&&this.setState({hasError:!1,error:null})}render(){if(this.state.hasError&&this.state.error){let e=this.state.error;return jj(e),(0,G.jsxs)(`div`,{className:`p-4 border border-orange-400 rounded bg-orange-50 text-orange-700 my-2`,role:`alert`,children:[(0,G.jsxs)(`p`,{className:`font-medium`,children:[`Component`,this.props.componentType?` "${this.props.componentType}"`:``,` failed to render`]}),(0,G.jsx)(`p`,{className:`text-sm mt-1`,children:e.message}),!1,(0,G.jsx)(`button`,{onClick:this.handleRetry,className:`mt-2 text-sm underline hover:no-underline`,children:`Retry`})]})}return this.props.children}},Yj=(0,W.forwardRef)(({schema:e,...t},n)=>{let r=(0,W.useContext)(Vj),i=r?.dataSource||{},[,a]=(0,W.useReducer)(e=>e+1,0);(0,W.useEffect)(()=>Y.subscribe(a),[]);let[o,s]=(0,W.useState)(null),c=(0,W.useMemo)(()=>{if(!e||typeof e==`string`)return e;let t=new Cj({data:i}),n={...e};if(n.properties){let e=n.type,t=n.id,r=n.properties;for(let[e,t]of Object.entries(r))e===`type`||e===`id`||(n[e]=t);e!==void 0&&(n.type=e),t!==void 0&&(n.id=t),n.properties=r}if(typeof n.content==`string`&&(n.content=t.evaluate(n.content)),n.props){let e={...n.props};for(let[n,r]of Object.entries(e))e[n]=t.evaluate(r);n.props=e}return(n.visible===void 0?n.visibleOn===void 0?n.hidden===void 0?n.hiddenOn!==void 0&&t.evaluateCondition(n.hiddenOn):t.evaluateCondition(n.hidden):!t.evaluateCondition(n.visibleOn):!t.evaluateCondition(n.visible))&&(n._hidden=!0),(n.disabled===void 0?n.disabledOn!==void 0&&t.evaluateCondition(n.disabledOn):t.evaluateCondition(n.disabled))&&(n._disabled=!0),n},[e,i]);if(!c||c?._hidden)return null;if(typeof c==`string`)return(0,G.jsx)(G.Fragment,{children:c});let l=Wj?Kj(e):{valid:!0,messages:[]};Fj(`schema`,`Rendering schema node`,{type:c.type,id:c.id});let u=Y.get(c.type);if(!u){if(!o&&Y.hasLazy(c.type)){let e=Y.loadLazy(c.type);if(e)return e.catch(e=>{s(e instanceof Error?e:Error(String(e)))}),(0,G.jsxs)(`div`,{className:`p-2 text-sm text-muted-foreground animate-pulse`,role:`status`,"aria-live":`polite`,"data-lazy-loading":c.type,children:[`Loading `,(0,G.jsx)(`code`,{children:c.type}),`…`]})}return Fj(`schema`,`Component not found in registry`,{type:c.type}),kj[`OBJUI-001`],(0,G.jsxs)(`div`,{className:`p-4 border border-red-500 rounded text-red-500 bg-red-50 my-2`,role:`alert`,children:[(0,G.jsxs)(`p`,{className:`font-medium`,children:[`Unknown component type: `,(0,G.jsx)(`strong`,{children:c.type})]}),o&&(0,G.jsxs)(`p`,{className:`text-xs mt-1`,children:[`Failed to load plugin: `,o.message]}),!1,(0,G.jsx)(`pre`,{className:`text-xs mt-2 overflow-auto`,children:JSON.stringify(c,null,2)})]})}let{type:d,children:f,body:p,schema:m,visible:h,visibleOn:g,hidden:_,hiddenOn:v,disabled:y,disabledOn:b,_hidden:x,_disabled:S,...C}=c,w=qj(c),T=r?.debug||r?.debugFlags?.enabled,E={};T&&(E[`data-debug-type`]=c.type,c.id&&(E[`data-debug-id`]=c.id)),Lj(`render:${c.type}:${c.id??`anon`}`);let ee=T?performance.now():0,D=(0,G.jsx)(Jj,{componentType:c.type,resetKey:c.id??null,children:W.createElement(u,{schema:c,...C,...c.props||{},...w,...E,disabled:S||void 0,className:c.className,"data-obj-id":c.id,"data-obj-type":c.type,...Wj&&!l.valid?{"data-obj-schema-invalid":`true`}:{},...t})});if(Rj(`render:${c.type}:${c.id??`anon`}`),T&&ee){let e=performance.now()-ee;Bj.getInstance().addPerf({type:c.type,id:c.id,durationMs:e,timestamp:Date.now()})}return D});Yj.displayName=`SchemaRenderer`;function Xj(e){if(!(e==null||e===``)){if(typeof e==`boolean`)return e;if(typeof e==`string`)return`\${${e}}`;if(typeof e==`object`&&typeof e.source==`string`){let t=e.source;return t?`\${${t}}`:void 0}}}function Zj(e,t={}){return(0,W.useMemo)(()=>new Cj(t).evaluateCondition(e),[e,t])}var Qj=(0,W.createContext)(null);function $j(e){if(!e||e.length===0)return{};let t={};for(let n of e)if(n.defaultValue!==void 0)t[n.name]=n.defaultValue;else switch(n.type){case`number`:t[n.name]=0;break;case`boolean`:t[n.name]=!1;break;case`object`:t[n.name]={};break;case`array`:t[n.name]=[];break;default:t[n.name]=``;break}return t}var eM=({definitions:e,children:t})=>{let[n,r]=(0,W.useState)(()=>$j(e)),i=(0,W.useCallback)((e,t)=>{r(n=>({...n,[e]:t}))},[]),a=(0,W.useCallback)(e=>{r(t=>({...t,...e}))},[]),o=(0,W.useCallback)(()=>{r($j(e))},[e]),s=(0,W.useMemo)(()=>({variables:n,setVariable:i,setVariables:a,resetVariables:o}),[n,i,a,o]);return(0,G.jsx)(Qj.Provider,{value:s,children:t})};eM.displayName=`PageVariablesProvider`,[`a[href]`,`button:not([disabled])`,`input:not([disabled])`,`select:not([disabled])`,`textarea:not([disabled])`,`[tabindex]:not([tabindex="-1"])`].join(`, `);var tM=0,nM=(0,W.createContext)(null),rM=({children:e,config:t={},onToast:n})=>{let r=(0,W.useMemo)(()=>({position:`top-right`,defaultDuration:5e3,maxVisible:5,stacking:!0,...t}),[JSON.stringify(t)]),[i,a]=(0,W.useState)([]),o=(0,W.useCallback)(e=>{let t=`notification-${++tM}`,i={...e,id:t,createdAt:new Date,read:!1};a(e=>[i,...e]),n&&n(i);let o=e.duration??r.defaultDuration??5e3;return o>0&&setTimeout(()=>{a(e=>e.filter(e=>e.id!==t))},o),t},[r.defaultDuration,n]),s=(0,W.useCallback)((e,t)=>o({title:e,message:t,severity:`info`}),[o]),c=(0,W.useCallback)((e,t)=>o({title:e,message:t,severity:`success`}),[o]),l=(0,W.useCallback)((e,t)=>o({title:e,message:t,severity:`warning`}),[o]),u=(0,W.useCallback)((e,t)=>o({title:e,message:t,severity:`error`}),[o]),d=(0,W.useCallback)(e=>{a(t=>t.map(t=>t.id===e?{...t,read:!0}:t))},[]),f=(0,W.useCallback)(()=>{a(e=>e.map(e=>({...e,read:!0})))},[]),p=(0,W.useCallback)(e=>{a(t=>t.filter(t=>t.id!==e))},[]),m=(0,W.useCallback)(()=>{a([])},[]),h=(0,W.useMemo)(()=>i.filter(e=>!e.read).length,[i]),g=(0,W.useMemo)(()=>({notifications:i,unreadCount:h,notify:o,info:s,success:c,warning:l,error:u,markAsRead:d,markAllAsRead:f,dismiss:p,clearAll:m,config:r}),[i,h,o,s,c,l,u,d,f,p,m,r]);return(0,G.jsx)(nM.Provider,{value:g,children:e})};rM.displayName=`NotificationProvider`;function iM(){return{canUndo:Dj.canUndo,canRedo:Dj.canRedo,undoDescription:Dj.peekUndo()?.description,redoDescription:Dj.peekRedo()?.description,history:Dj.getHistory()}}iM(),(0,W.createContext)(null),(0,W.createContext)(null);var aM=(0,W.createContext)(null),oM=({children:e,context:t={},onConfirm:n,onToast:r,onModal:i,onNavigate:a,onParamCollection:o,handlers:s})=>{let[c,l]=(0,W.useState)(!1),[u,d]=(0,W.useState)(null),[f,p]=(0,W.useState)(null),m=(0,W.useMemo)(()=>{let e=new wj(t);return n&&e.setConfirmHandler(n),r&&e.setToastHandler(r),i&&e.setModalHandler(i),a&&e.setNavigationHandler(a),o&&e.setParamCollectionHandler(o),s&&Object.entries(s).forEach(([t,n])=>{e.registerHandler(t,n)}),e},[JSON.stringify(t)]),h=(0,W.useCallback)(async e=>{l(!0),d(null),p(null);try{let t=await m.execute(e);return p(t),t.success||d(t.error||`Action failed`),t}catch(e){let t=e.message;d(t);let n={success:!1,error:t};return p(n),n}finally{l(!1)}},[m]),g=(0,W.useCallback)(async(e,t)=>{l(!0),d(null),p(null);try{let n=await m.executeChain(e,t);return p(n),n.success||d(n.error||`Chain failed`),n}catch(e){let t=e.message;d(t);let n={success:!1,error:t};return p(n),n}finally{l(!1)}},[m]),_=(0,W.useCallback)(e=>{m.updateContext(e)},[m]),v=(0,W.useMemo)(()=>({execute:h,executeChain:g,loading:c,error:u,result:f,runner:m,updateContext:_}),[h,g,c,u,f,m,_]);return(0,G.jsx)(aM.Provider,{value:v,children:e})};oM.displayName=`ActionProvider`;function sM(){let e=(0,W.useContext)(aM);if(!e){let e=new wj;return{execute:t=>e.execute(t),executeChain:(t,n)=>e.executeChain(t,n),loading:!1,error:null,result:null,runner:e,updateContext:t=>e.updateContext(t)}}return e}(0,W.createContext)(null);var cM=(0,W.createContext)(null),lM=({children:e,config:t={},onDragStart:n,onDrop:r,onDragCancel:i})=>{let a=(0,W.useMemo)(()=>({enabled:!0,showPreview:!0,autoScroll:!0,...t}),[JSON.stringify(t)]),[o,s]=(0,W.useState)(null),[c]=(0,W.useState)(()=>new Map),l=(0,W.useCallback)(e=>{a.enabled&&(s(e),n?.({item:e,targetZoneId:null,effect:`move`}))},[a.enabled,n]),u=(0,W.useCallback)(e=>{if(!o)return;let t=(e?c.get(e):void 0)?.effect??`move`;r?.({item:o,targetZoneId:e??null,effect:t}),s(null)},[o,c,r]),d=(0,W.useCallback)(()=>{o&&(i?.({item:o,targetZoneId:null,effect:`none`}),s(null))},[o,i]),f=(0,W.useCallback)(e=>{c.set(e.id,e)},[c]),p=(0,W.useCallback)(e=>{c.delete(e)},[c]),m=(0,W.useCallback)((e,t)=>{let n=c.get(e);return!n||n.disabled?!1:n.acceptTypes.includes(t)},[c]),h=(0,W.useMemo)(()=>({config:a,enabled:a.enabled??!0,activeItem:o,dropZones:c,startDrag:l,endDrag:u,cancelDrag:d,registerDropZone:f,unregisterDropZone:p,canDrop:m}),[a,o,c,l,u,d,f,p,m]);return(0,G.jsx)(cM.Provider,{value:h,children:e})};lM.displayName=`DndProvider`,W.createContext(null);var uM=W.createContext(null);function dM(){return W.useContext(uM)}W.createContext(null);var fM=(0,W.createContext)(null);function pM(e){let t=(0,W.useContext)(fM),{t:n,i18n:r}=oe(e);return{t:n,language:t?.language||r.language||`en`,changeLanguage:t?.changeLanguage||(async e=>{await r.changeLanguage(e)}),direction:t?.direction||`ltr`,i18n:r}}function mM(e,t){return function(){try{let n=pM();return n.t(t)===t?{t:(t,n)=>{let r=e[t]||t;if(n)for(let[e,t]of Object.entries(n))r=r.replace(`{{${e}}}`,String(t));return r}}:{t:n.t}}catch{return{t:(t,n)=>{let r=e[t]||t;if(n)for(let[e,t]of Object.entries(n))r=r.replace(`{{${e}}}`,String(t));return r}}}}}var hM=new Set([`common`,`validation`,`form`,`table`,`grid`,`calendar`,`list`,`kanban`,`chart`,`dashboard`,`configPanel`,`appDesigner`,`console`,`errors`,`detail`]);function gM(){let{t:e,i18n:t}=pM();return(0,W.useMemo)(()=>{let n=()=>{if(!t||typeof t.getResourceBundle!=`function`)return[];let e=t.language||`en`,n=t.getResourceBundle(e,`translation`);return n?Object.keys(n).filter(e=>!hM.has(e)&&n[e]&&typeof n[e]==`object`&&(n[e].objects||n[e].fields||n[e].apps||n[e].dashboards||n[e].pages||n[e].reports)):[]},r=e=>{if(typeof e!=`string`)return``;let t=e.indexOf(`__`);return t>0?e.slice(t+2):e},i=(t,r)=>{let i=Array.isArray(t)?t:[t];try{let t=n();for(let n of t)for(let t of i){let r=`${n}.${t}`,i=e(r,{defaultValue:``});if(i&&i!==r&&i!==``)return i}}catch{}return r},a=(e,t)=>{let n=r(e);return n===e?[`objects.${e}.${t}`]:[`objects.${e}.${t}`,`objects.${n}.${t}`]},o=(e,t)=>{let n=r(e);return n===e?[`fields.${e}.${t}`]:[`fields.${e}.${t}`,`fields.${n}.${t}`]},s=(e,t,n)=>{let i=r(e);return i===e?[`fieldOptions.${e}.${t}.${n}`]:[`fieldOptions.${e}.${t}.${n}`,`fieldOptions.${i}.${t}.${n}`]},c=(e,t)=>{let n=r(e);return n===e?[`dashboards.${e}.${t}`]:[`dashboards.${e}.${t}`,`dashboards.${n}.${t}`]},l=(e,t)=>{let n=r(e);return n===e?[`pages.${e}.${t}`]:[`pages.${e}.${t}`,`pages.${n}.${t}`]},u=(e,t)=>{let n=r(e);return n===e?[`reports.${e}.${t}`]:[`reports.${e}.${t}`,`reports.${n}.${t}`]};return{objectLabel:e=>i(a(e.name,`label`),e.label),objectDescription:e=>{if(e.description)return i(a(e.name,`description`),e.description)},fieldLabel:(e,t,n)=>i(o(e,t),n),fieldOptionLabel:(e,t,n,r)=>i(s(e,t,n),r),translateOptions:(e,t,n)=>n.map(n=>({...n,label:i(s(e,t,n.value),n.label)})),appLabel:e=>i(`apps.${e.name}.label`,e.label??e.name),appDescription:e=>{let t=e.description??``;return i(`apps.${e.name}.description`,t)||void 0},navGroupLabel:(e,t,n)=>i(`apps.${e}.navigation.${t}.label`,n),dashboardLabel:e=>i(c(e.name,`label`),e.label??e.name),dashboardDescription:e=>{let t=e.description??``;return i(c(e.name,`description`),t)||void 0},dashboardActionLabel:(e,t,n)=>i(c(e,`actions.${t}.label`),n),widgetTitle:(e,t,n)=>i(c(e,`widgets.${t}.title`),n),widgetDescription:(e,t,n)=>{let r=n??``;return i(c(e,`widgets.${t}.description`),r)||void 0},pageLabel:e=>i(l(e.name,`label`),e.label??e.name),reportLabel:e=>i(u(e.name,`label`),e.label??e.name),viewLabel:(e,t,n)=>i(a(e,`_views.${t}.label`),n),viewDescription:(e,t,n)=>{let r=n??``;return i(a(e,`_views.${t}.description`),r)||void 0},viewEmptyState:(e,t,n)=>{if(!n)return;let r=n.title?i(a(e,`_views.${t}.emptyState.title`),n.title):n.title,o=n.message?i(a(e,`_views.${t}.emptyState.message`),n.message):n.message;return{...n,title:r,message:o}},sectionLabel:(e,t,n)=>i(a(e,`_sections.${t}.label`),n),actionLabel:(e,t,n)=>i(e?a(e,`_actions.${t}.label`):`globalActions.${t}.label`,n),actionConfirm:(e,t,n)=>{let r=n??``;return i(e?a(e,`_actions.${t}.confirmText`):`globalActions.${t}.confirmText`,r)||void 0},actionSuccess:(e,t,n)=>{let r=n??``;return i(e?a(e,`_actions.${t}.successMessage`):`globalActions.${t}.successMessage`,r)||void 0}}},[e,t])}var _M={fieldLabel:(e,t,n)=>n,translateOptions:(e,t,n)=>n,fieldOptionLabel:(e,t,n,r)=>r,sectionLabel:(e,t,n)=>n};function vM(){let e=null;try{e=gM()}catch{e=null}return e??_M}var yM=mM({"common.selectOption":`Select an option`},`common.selectOption`),bM=({field:e,methods:t,disabled:n=!1})=>{let{register:r,formState:{errors:i}}=t,{t:a}=yM(),o=e,s=e.widget||`text`,c=e.field,l=i[c],u=Uj(e.label),d=Uj(e.placeholder),f=Uj(e.helpText),p=e=>o.multiple&&e instanceof HTMLCollection?Array.from(e).map(e=>e.value):e;if(e.hidden)return null;let m=t=>(0,G.jsxs)(`div`,{className:`space-y-2`,children:[u&&(0,G.jsxs)(`label`,{htmlFor:c,className:`block text-sm font-medium text-gray-700`,children:[u,e.required&&(0,G.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),t,f&&(0,G.jsx)(`p`,{className:`text-sm text-gray-500`,children:f}),l&&(0,G.jsx)(`p`,{className:`text-sm text-red-600`,children:l.message})]});switch(s.toLowerCase()){case`text`:case`string`:case`email`:case`password`:case`url`:case`tel`:return m((0,G.jsx)(`input`,{id:c,type:s===`string`?`text`:s,placeholder:d,disabled:n,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`number`:case`integer`:case`float`:return m((0,G.jsx)(`input`,{id:c,type:`number`,placeholder:d,disabled:n,step:s===`integer`?`1`:`any`,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1,valueAsNumber:!0})}));case`checkbox`:case`boolean`:return(0,G.jsxs)(`div`,{className:`flex items-start space-x-2`,children:[(0,G.jsx)(`input`,{id:c,type:`checkbox`,disabled:n,className:`mt-1 h-4 w-4 text-blue-600 border-gray-300 rounded focus:ring-2 focus:ring-blue-500 disabled:opacity-50`,...r(c)}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[u&&(0,G.jsxs)(`label`,{htmlFor:c,className:`text-sm font-medium text-gray-700`,children:[u,e.required&&(0,G.jsx)(`span`,{className:`text-red-500 ml-1`,children:`*`})]}),f&&(0,G.jsx)(`p`,{className:`text-sm text-gray-500 mt-1`,children:f}),l&&(0,G.jsx)(`p`,{className:`text-sm text-red-600 mt-1`,children:l.message})]})]});case`textarea`:return m((0,G.jsx)(`textarea`,{id:c,placeholder:d,disabled:n,rows:4,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`select`:case`dropdown`:return m((0,G.jsxs)(`select`,{id:c,disabled:n,multiple:o.multiple,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1,setValueAs:p}),children:[!o.multiple&&(0,G.jsx)(`option`,{value:``,children:d||a(`common.selectOption`)}),o.options?.map(e=>(0,G.jsx)(`option`,{value:e.value,disabled:e.disabled,children:e.label},e.value))]}));case`date`:return m((0,G.jsx)(`input`,{id:c,type:`date`,placeholder:d,disabled:n,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`datetime`:case`datetime-local`:return m((0,G.jsx)(`input`,{id:c,type:`datetime-local`,placeholder:d,disabled:n,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`time`:return m((0,G.jsx)(`input`,{id:c,type:`time`,placeholder:d,disabled:n,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`currency`:return m((0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`span`,{className:`absolute left-3 top-2 text-gray-500`,children:`$`}),(0,G.jsx)(`input`,{id:c,type:`number`,placeholder:d,disabled:n,step:`0.01`,className:`w-full pl-8 pr-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1,valueAsNumber:!0})})]}));case`percent`:return m((0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`input`,{id:c,type:`number`,placeholder:d,disabled:n,step:`0.01`,min:`0`,max:`100`,className:`w-full pr-8 pl-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1,valueAsNumber:!0})}),(0,G.jsx)(`span`,{className:`absolute right-3 top-2 text-gray-500`,children:`%`})]}));case`phone`:return m((0,G.jsx)(`input`,{id:c,type:`tel`,placeholder:d||`+1 (555) 000-0000`,disabled:n,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`markdown`:return m((0,G.jsx)(`textarea`,{id:c,placeholder:d||`Enter markdown text...`,disabled:n,rows:8,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed font-mono`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`html`:return m((0,G.jsx)(`textarea`,{id:c,placeholder:d||`Enter HTML...`,disabled:n,rows:8,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed font-mono`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`file`:return m((0,G.jsx)(`input`,{id:c,type:`file`,disabled:n,multiple:o.multiple,accept:o.accept?.join(`,`),className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed file:mr-4 file:py-2 file:px-4 file:rounded-md file:border-0 file:text-sm file:font-semibold file:bg-blue-50 file:text-blue-700 hover:file:bg-blue-100`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`image`:return m((0,G.jsx)(`input`,{id:c,type:`file`,disabled:n,multiple:o.multiple,accept:o.accept?.join(`,`)||`image/*`,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed file:mr-4 file:py-2 file:px-4 file:rounded-md file:border-0 file:text-sm file:font-semibold file:bg-blue-50 file:text-blue-700 hover:file:bg-blue-100`,...r(c,{required:e.required?`${u||c} is required`:!1})}));case`location`:return m((0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`input`,{id:`${c}-lat`,type:`number`,placeholder:`Latitude`,disabled:n,step:`any`,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(`${c}.lat`,{required:e.required?`Latitude is required`:!1,valueAsNumber:!0})}),(0,G.jsx)(`input`,{id:`${c}-lng`,type:`number`,placeholder:`Longitude`,disabled:n,step:`any`,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(`${c}.lng`,{required:e.required?`Longitude is required`:!1,valueAsNumber:!0})})]}));case`lookup`:case`master_detail`:return m((0,G.jsxs)(`select`,{id:c,disabled:n,multiple:o.multiple,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1,setValueAs:p}),children:[!o.multiple&&(0,G.jsx)(`option`,{value:``,children:d||a(`common.selectOption`)}),o.options?.map(e=>(0,G.jsx)(`option`,{value:e.value,disabled:e.disabled,children:e.label},e.value))]}));case`user`:case`owner`:return m((0,G.jsxs)(`select`,{id:c,disabled:n,multiple:o.multiple,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1,setValueAs:p}),children:[!o.multiple&&(0,G.jsx)(`option`,{value:``,children:d||`Select user`}),o.options?.map(e=>(0,G.jsx)(`option`,{value:e.value,disabled:e.disabled,children:e.label},e.value))]}));case`formula`:case`summary`:case`auto_number`:return m((0,G.jsx)(`input`,{id:c,type:`text`,disabled:!0,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm bg-gray-50 cursor-not-allowed text-gray-600`,...r(c)}));case`object`:return m((0,G.jsx)(`textarea`,{id:c,placeholder:d||`Enter JSON object...`,disabled:n,rows:6,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed font-mono text-sm`,...r(c,{required:e.required?`${u||c} is required`:!1,validate:e=>{if(!e)return!0;try{return JSON.parse(e),!0}catch{return`Invalid JSON format`}}})}));case`vector`:return m((0,G.jsx)(`input`,{id:c,type:`text`,placeholder:d||`Vector data (read-only)`,disabled:!0,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm bg-gray-50 cursor-not-allowed text-gray-600`,...r(c)}));case`grid`:return m((0,G.jsx)(`div`,{className:`w-full px-3 py-2 border border-gray-300 rounded-md bg-gray-50 text-gray-600`,children:(0,G.jsx)(`p`,{className:`text-sm`,children:`Grid editor not yet implemented`})}));default:return m((0,G.jsx)(`input`,{id:c,type:`text`,placeholder:d,disabled:n,className:`w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-blue-500 disabled:bg-gray-100 disabled:cursor-not-allowed`,...r(c,{required:e.required?`${u||c} is required`:!1})}))}};bM.displayName=`FieldFactory`;var xM=({schema:e,data:t={},onSubmit:n,onChange:r,className:i=``,disabled:a=!1})=>{let o=D({defaultValues:t,mode:`onChange`}),{handleSubmit:s,watch:c}=o;W.useEffect(()=>{if(r){let e=c(e=>{r(e)});return()=>e.unsubscribe()}},[c,r]);let l=s(async e=>{n&&await n(e)}),u=()=>!e.sections||e.sections.length===0?null:(0,G.jsx)(`div`,{className:`space-y-6`,children:e.sections.map((e,t)=>(0,G.jsx)(TM,{section:e,methods:o,disabled:a},t))});return(0,G.jsx)(se,{...o,children:(0,G.jsxs)(`form`,{onSubmit:l,className:`space-y-6 ${i}`,children:[u(),(0,G.jsx)(`div`,{className:`flex justify-end gap-2`,children:(0,G.jsx)(`button`,{type:`submit`,disabled:a,className:`px-4 py-2 bg-blue-600 text-white rounded-md hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed`,children:`Submit`})})]})})},SM={1:`grid-cols-1`,2:`grid-cols-1 md:grid-cols-2`,3:`grid-cols-1 md:grid-cols-3`,4:`grid-cols-1 md:grid-cols-2 lg:grid-cols-4`},CM={1:`col-span-1`,2:`col-span-2`,3:`col-span-3`,4:`col-span-4`};function wM(e,t){if(e.hidden)return!1;if(e.visibleOn)try{return new Cj({data:t,form:t}).evaluateCondition(e.visibleOn)}catch{return!0}if(e.dependsOn){let n=t[e.dependsOn];return n!=null&&n!==``}return!0}var TM=({section:e,methods:t,disabled:n=!1})=>{let[r,i]=W.useState(e.collapsed||!1),a=SM[e.columns||1],o=W.useMemo(()=>e.fields.some(e=>typeof e==`string`?!1:!!e.dependsOn||!!e.visibleOn),[e.fields]),s=t.watch(),c=o?s:void 0;return(0,G.jsxs)(`div`,{className:`border rounded-lg p-4`,children:[e.label&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4 ${e.collapsible?`cursor-pointer`:``}`,onClick:()=>{e.collapsible&&i(!r)},children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold`,children:Uj(e.label)}),e.collapsible&&(0,G.jsx)(`span`,{className:`text-sm text-gray-500`,children:r?`▶`:`▼`})]}),!r&&(0,G.jsx)(`div`,{className:`grid ${a} gap-4`,children:e.fields.map((r,i)=>{let a=typeof r==`string`?r:r.field,o=typeof r==`string`?{field:a}:r;if(!wM(o,c||{}))return null;let s=o.colSpan||1,l=CM[Math.min(s,e.columns||1)];return(0,G.jsx)(`div`,{className:l,children:(0,G.jsx)(bM,{field:o,methods:t,disabled:n||o.readonly})},`${a}-${i}`)})})]})};xM.displayName=`FormRenderer`;function X(...e){return ie(h(e))}function EM(e){return e?typeof e==`string`||typeof e==`number`?e:Array.isArray(e)?e.length===0?null:e.length===1?(0,G.jsx)(Yj,{schema:e[0]}):e.map((e,t)=>(0,G.jsx)(Yj,{schema:e},e.id||t)):(0,G.jsx)(Yj,{schema:e}):null}var DM=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n;return(0,G.jsx)(`div`,{ref:r,className:t,...s,"data-obj-id":i,"data-obj-type":a,style:o,children:EM(e.children||e.body)})});Y.register(`div`,DM,{namespace:`ui`,label:`Container (Deprecated)`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{className:`p-2 sm:p-4 border border-dashed border-gray-300 rounded min-h-[100px]`}}),Y.register(`text`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return n||e.className||a.className?(0,G.jsx)(`span`,{"data-obj-id":n,"data-obj-type":r,style:i,className:e.className||a.className,...a,children:e.content||e.value}):(0,G.jsx)(G.Fragment,{children:e.content||e.value})},{namespace:`ui`,label:`Text`,inputs:[{name:`content`,type:`string`,label:`Content`,required:!0}],defaultProps:{content:`Text content`}});var OM=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n;return(0,G.jsx)(`span`,{ref:r,className:t,...s,"data-obj-id":i,"data-obj-type":a,style:o,children:EM(e.body)})});Y.register(`span`,OM,{namespace:`ui`,label:`Inline Container (Deprecated)`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{className:`px-1.5 py-0.5 sm:px-2 sm:py-1`},defaultChildren:[{type:`text`,content:`Inline text`}]});var kM=vd,AM=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(yd,{ref:n,className:X(`border-b`,e),...t}));AM.displayName=`AccordionItem`;var jM=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsx)(bd,{className:`flex`,children:(0,G.jsxs)(xd,{ref:r,className:X(`flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180`,e),...n,children:[t,(0,G.jsx)(nt,{className:`h-4 w-4 shrink-0 transition-transform duration-200`})]})}));jM.displayName=xd.displayName;var MM=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsx)(Sd,{ref:r,className:`overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down`,...n,children:(0,G.jsx)(`div`,{className:X(`pb-4 pt-0`,e),children:t})}));MM.displayName=Sd.displayName;var NM=M(`inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,{variants:{variant:{default:`bg-primary text-primary-foreground hover:bg-primary/90`,destructive:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,outline:`border border-input bg-background hover:bg-accent hover:text-accent-foreground`,secondary:`bg-secondary text-secondary-foreground hover:bg-secondary/80`,ghost:`hover:bg-accent hover:text-accent-foreground`,link:`text-primary underline-offset-4 hover:underline`},size:{default:`h-10 px-4 py-2`,sm:`h-9 rounded-md px-3`,lg:`h-11 rounded-md px-8`,icon:`h-10 w-10`}},defaultVariants:{variant:`default`,size:`default`}}),Z=W.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...i},a)=>(0,G.jsx)(r?x:`button`,{className:X(NM({variant:t,size:n,className:e})),ref:a,...i}));Z.displayName=`Button`;var PM=Jd,FM=Yd,IM=Xd,LM=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Zd,{className:X(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,e),...t,ref:n}));LM.displayName=Zd.displayName;var RM=W.forwardRef(({className:e,...t},n)=>(0,G.jsxs)(IM,{children:[(0,G.jsx)(LM,{}),(0,G.jsx)(Qd,{ref:n,className:X(`fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg`,e),...t})]}));RM.displayName=Qd.displayName;var zM=({className:e,...t})=>(0,G.jsx)(`div`,{className:X(`flex flex-col space-y-2 text-center sm:text-left`,e),...t});zM.displayName=`AlertDialogHeader`;var BM=({className:e,...t})=>(0,G.jsx)(`div`,{className:X(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,e),...t});BM.displayName=`AlertDialogFooter`;var VM=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(tf,{ref:n,className:X(`text-lg font-semibold`,e),...t}));VM.displayName=tf.displayName;var HM=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(nf,{ref:n,className:X(`text-sm text-muted-foreground`,e),...t}));HM.displayName=nf.displayName;var UM=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)($d,{ref:n,className:X(NM(),e),...t}));UM.displayName=$d.displayName;var WM=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ef,{ref:n,className:X(NM({variant:`outline`}),`mt-2 sm:mt-0`,e),...t}));WM.displayName=ef.displayName;var GM=M(`relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground`,{variants:{variant:{default:`bg-background text-foreground`,destructive:`border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive`}},defaultVariants:{variant:`default`}}),KM=W.forwardRef(({className:e,variant:t,...n},r)=>(0,G.jsx)(`div`,{ref:r,role:`alert`,className:X(GM({variant:t}),e),...n}));KM.displayName=`Alert`;var qM=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`h5`,{ref:n,className:X(`mb-1 font-medium leading-none tracking-tight`,e),...t}));qM.displayName=`AlertTitle`;var JM=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:X(`text-sm [&_p]:leading-relaxed`,e),...t}));JM.displayName=`AlertDescription`;var YM=of,XM=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(hc,{ref:n,className:X(`relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full`,e),...t}));XM.displayName=hc.displayName;var ZM=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(gc,{ref:n,className:X(`aspect-square h-full w-full`,e),...t}));ZM.displayName=gc.displayName;var QM=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(_c,{ref:n,className:X(`flex h-full w-full items-center justify-center rounded-full bg-muted`,e),...t}));QM.displayName=_c.displayName;var $M=M(`inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,{variants:{variant:{default:`border-transparent bg-primary text-primary-foreground hover:bg-primary/80`,secondary:`border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80`,destructive:`border-transparent bg-destructive text-destructive-foreground hover:bg-destructive/80`,outline:`text-foreground`}},defaultVariants:{variant:`default`}});function eN({className:e,variant:t,...n}){return(0,G.jsx)(`div`,{className:X($M({variant:t}),e),...n})}var tN=W.forwardRef(({...e},t)=>(0,G.jsx)(`nav`,{ref:t,"aria-label":`breadcrumb`,...e}));tN.displayName=`Breadcrumb`;var nN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`ol`,{ref:n,className:X(`flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5`,e),...t}));nN.displayName=`BreadcrumbList`;var rN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`li`,{ref:n,className:X(`inline-flex items-center gap-1.5`,e),...t}));rN.displayName=`BreadcrumbItem`;var iN=W.forwardRef(({asChild:e,className:t,...n},r)=>(0,G.jsx)(e?x:`a`,{ref:r,className:X(`transition-colors hover:text-foreground`,t),...n}));iN.displayName=`BreadcrumbLink`;var aN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`span`,{ref:n,role:`link`,"aria-disabled":`true`,"aria-current":`page`,className:X(`font-normal text-foreground`,e),...t}));aN.displayName=`BreadcrumbPage`;var oN=({children:e,className:t,...n})=>(0,G.jsx)(`li`,{role:`presentation`,"aria-hidden":`true`,className:X(`[&>svg]:w-3.5 [&>svg]:h-3.5`,t),...n,children:e??(0,G.jsx)(Xe,{})});oN.displayName=`BreadcrumbSeparator`;var sN=({className:e,...t})=>(0,G.jsxs)(`span`,{role:`presentation`,"aria-hidden":`true`,className:X(`flex h-9 w-9 items-center justify-center`,e),...t,children:[(0,G.jsx)($t,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`More`})]});sN.displayName=`BreadcrumbElipssis`;function cN({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r=`label`,buttonVariant:i=`ghost`,formatters:a,components:o,...s}){let c=je();return(0,G.jsx)(b,{showOutsideDays:n,className:X(`bg-background group/calendar p-3 [--cell-size:2rem] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent`,String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:e=>e.toLocaleString(`default`,{month:`short`}),...a},classNames:{root:X(`w-fit`,c.root),months:X(`relative flex flex-col gap-4 md:flex-row`,c.months),month:X(`flex w-full flex-col gap-4`,c.month),nav:X(`absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1`,c.nav),button_previous:X(NM({variant:i}),`h-(--cell-size) w-(--cell-size) select-none p-0 aria-disabled:opacity-50`,c.button_previous),button_next:X(NM({variant:i}),`h-(--cell-size) w-(--cell-size) select-none p-0 aria-disabled:opacity-50`,c.button_next),month_caption:X(`flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)`,c.month_caption),dropdowns:X(`flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium`,c.dropdowns),dropdown_root:X(`has-focus:border-ring border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] relative rounded-md border`,c.dropdown_root),dropdown:X(`bg-popover absolute inset-0 opacity-0`,c.dropdown),caption_label:X(`select-none font-medium`,r===`label`?`text-sm`:`[&>svg]:text-muted-foreground flex h-8 items-center gap-1 rounded-md pl-2 pr-1 text-sm [&>svg]:size-3.5`,c.caption_label),table:`w-full border-collapse`,weekdays:X(`flex`,c.weekdays),weekday:X(`text-muted-foreground flex-1 select-none rounded-md text-[0.8rem] font-normal`,c.weekday),week:X(`mt-2 flex w-full`,c.week),week_number_header:X(`w-(--cell-size) select-none`,c.week_number_header),week_number:X(`text-muted-foreground select-none text-[0.8rem]`,c.week_number),day:X(`group/day relative aspect-square h-full w-full select-none p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md`,c.day),range_start:X(`bg-accent rounded-l-md`,c.range_start),range_middle:X(`rounded-none`,c.range_middle),range_end:X(`bg-accent rounded-r-md`,c.range_end),today:X(`bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none`,c.today),outside:X(`text-muted-foreground aria-selected:text-muted-foreground`,c.outside),disabled:X(`text-muted-foreground opacity-50`,c.disabled),hidden:X(`invisible`,c.hidden),...t},components:{Root:({className:e,rootRef:t,...n})=>(0,G.jsx)(`div`,{"data-slot":`calendar`,ref:t,className:X(e),...n}),Chevron:({className:e,orientation:t,...n})=>(0,G.jsx)(t===`left`?Tt:t===`right`?Xe:nt,{className:X(`size-4`,e),...n}),DayButton:lN,WeekNumber:({children:e,...t})=>(0,G.jsx)(`td`,{...t,children:(0,G.jsx)(`div`,{className:`flex size-(--cell-size) items-center justify-center text-center`,children:e})}),...o},...s})}function lN({className:e,day:t,modifiers:n,...r}){let i=je(),a=W.useRef(null);return W.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),(0,G.jsx)(Z,{ref:a,variant:`ghost`,size:`icon`,"data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:X(`data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 flex aspect-square h-auto w-full min-w-(--cell-size) flex-col gap-1 font-normal leading-none data-[range-end=true]:rounded-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] [&>span]:text-xs [&>span]:opacity-70`,i.day,e),...r})}var uN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:X(`rounded-lg border bg-card text-card-foreground shadow-sm`,e),...t}));uN.displayName=`Card`;var dN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:X(`flex flex-col space-y-1.5 p-6`,e),...t}));dN.displayName=`CardHeader`;var fN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:X(`text-2xl font-semibold leading-none tracking-tight`,e),...t}));fN.displayName=`CardTitle`;var pN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:X(`text-sm text-muted-foreground`,e),...t}));pN.displayName=`CardDescription`;var mN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:X(`p-6 pt-0`,e),...t}));mN.displayName=`CardContent`;var hN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:X(`flex items-center p-6 pt-0`,e),...t}));hN.displayName=`CardFooter`;var gN=W.createContext(null);function _N(){let e=W.useContext(gN);if(!e)throw Error(`useCarousel must be used within a <Carousel />`);return e}var vN=W.forwardRef(({orientation:e=`horizontal`,opts:t,setApi:n,plugins:r,className:i,children:a,...o},s)=>{let[c,l]=m({...t,axis:e===`horizontal`?`x`:`y`},r),[u,d]=W.useState(!1),[f,p]=W.useState(!1),h=W.useCallback(e=>{e&&(d(e.canScrollPrev()),p(e.canScrollNext()))},[]),g=W.useCallback(()=>{l?.scrollPrev()},[l]),_=W.useCallback(()=>{l?.scrollNext()},[l]),v=W.useCallback(e=>{e.key===`ArrowLeft`?(e.preventDefault(),g()):e.key===`ArrowRight`&&(e.preventDefault(),_())},[g,_]);return W.useEffect(()=>{!l||!n||n(l)},[l,n]),W.useEffect(()=>{if(l)return h(l),l.on(`reInit`,h),l.on(`select`,h),()=>{l?.off(`select`,h)}},[l,h]),(0,G.jsx)(gN.Provider,{value:{carouselRef:c,api:l,opts:t,orientation:e||(t?.axis===`y`?`vertical`:`horizontal`),scrollPrev:g,scrollNext:_,canScrollPrev:u,canScrollNext:f},children:(0,G.jsx)(`div`,{ref:s,onKeyDownCapture:v,className:X(`relative`,i),role:`region`,"aria-roledescription":`carousel`,...o,children:a})})});vN.displayName=`Carousel`;var yN=W.forwardRef(({className:e,...t},n)=>{let{carouselRef:r,orientation:i}=_N();return(0,G.jsx)(`div`,{ref:r,className:`overflow-hidden`,children:(0,G.jsx)(`div`,{ref:n,className:X(`flex`,i===`horizontal`?`-ml-4`:`-mt-4 flex-col`,e),...t})})});yN.displayName=`CarouselContent`;var bN=W.forwardRef(({className:e,...t},n)=>{let{orientation:r}=_N();return(0,G.jsx)(`div`,{ref:n,role:`group`,"aria-roledescription":`slide`,className:X(`min-w-0 shrink-0 grow-0 basis-full`,r===`horizontal`?`pl-4`:`pt-4`,e),...t})});bN.displayName=`CarouselItem`;var xN=W.forwardRef(({className:e,variant:t=`outline`,size:n=`icon`,...r},i)=>{let{orientation:a,scrollPrev:o,canScrollPrev:s}=_N();return(0,G.jsxs)(Z,{ref:i,variant:t,size:n,className:X(`absolute h-8 w-8 rounded-full`,a===`horizontal`?`-left-12 top-1/2 -translate-y-1/2`:`-top-12 left-1/2 -translate-x-1/2 rotate-90`,e),disabled:!s,onClick:o,...r,children:[(0,G.jsx)(Nt,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Previous slide`})]})});xN.displayName=`CarouselPrevious`;var SN=W.forwardRef(({className:e,variant:t=`outline`,size:n=`icon`,...r},i)=>{let{orientation:a,scrollNext:o,canScrollNext:s}=_N();return(0,G.jsxs)(Z,{ref:i,variant:t,size:n,className:X(`absolute h-8 w-8 rounded-full`,a===`horizontal`?`-right-12 top-1/2 -translate-y-1/2`:`-bottom-12 left-1/2 -translate-x-1/2 rotate-90`,e),disabled:!s,onClick:o,...r,children:[(0,G.jsx)(on,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Next slide`})]})});SN.displayName=`CarouselNext`;var CN={light:``,dark:`.dark`},wN=W.createContext(null);function TN(){let e=W.useContext(wN);if(!e)throw Error(`useChart must be used within a <ChartContainer />`);return e}var EN=W.forwardRef(({id:e,className:t,children:n,config:r,...i},a)=>{let o=W.useId(),s=`chart-${e||o.replace(/:/g,``)}`;return(0,G.jsx)(wN.Provider,{value:{config:r},children:(0,G.jsxs)(`div`,{"data-chart":s,ref:a,className:X(`flex aspect-video justify-center text-xs [&_.recharts-cartesian-axis-tick_text]:fill-muted-foreground [&_.recharts-cartesian-grid_line[stroke='#ccc']]:stroke-border/50 [&_.recharts-curve.recharts-tooltip-cursor]:stroke-border [&_.recharts-dot[stroke='#fff']]:stroke-transparent [&_.recharts-layer]:outline-none [&_.recharts-polar-grid_[stroke='#ccc']]:stroke-border [&_.recharts-radial-bar-background-sector]:fill-muted [&_.recharts-rectangle.recharts-tooltip-cursor]:fill-muted [&_.recharts-reference-line_[stroke='#ccc']]:stroke-border [&_.recharts-sector[stroke='#fff']]:stroke-transparent [&_.recharts-sector]:outline-none [&_.recharts-surface]:outline-none`,t),...i,children:[(0,G.jsx)(DN,{id:s,config:r}),(0,G.jsx)(Tn,{children:n})]})})});EN.displayName=`Chart`;var DN=({id:e,config:t})=>{let n=Object.entries(t).filter(([,e])=>e.theme||e.color);return n.length?(0,G.jsx)(`style`,{dangerouslySetInnerHTML:{__html:Object.entries(CN).map(([t,r])=>`
|
|
38
|
+
${r} [data-chart=${e}] {
|
|
39
|
+
${n.map(([e,n])=>{let r=n.theme?.[t]||n.color;return r?` --color-${e}: ${r};`:null}).join(`
|
|
40
|
+
`)}
|
|
41
|
+
}
|
|
42
|
+
`).join(`
|
|
43
|
+
`)}}):null},ON=W.forwardRef(({active:e,payload:t,className:n,indicator:r=`dot`,hideLabel:i=!1,hideIndicator:a=!1,label:o,labelFormatter:s,labelClassName:c,formatter:l,color:u,nameKey:d,labelKey:f},p)=>{let{config:m}=TN(),h=W.useMemo(()=>{if(i||!t?.length)return null;let[e]=t,n=AN(m,e,`${f||e?.dataKey||e?.name||`value`}`),r=!f&&typeof o==`string`?m[o]?.label||o:n?.label;return s?(0,G.jsx)(`div`,{className:X(`font-medium`,c),children:s(r,t)}):r?(0,G.jsx)(`div`,{className:X(`font-medium`,c),children:r}):null},[o,s,t,i,c,m,f]);if(!e||!t?.length)return null;let g=t.length===1&&r!==`dot`;return(0,G.jsxs)(`div`,{ref:p,className:X(`grid min-w-[8rem] items-start gap-1.5 rounded-lg border border-border/50 bg-background px-2.5 py-1.5 text-xs shadow-xl`,n),children:[g?null:h,(0,G.jsx)(`div`,{className:`grid gap-1.5`,children:t.filter(e=>e.type!==`none`).map((e,t)=>{let n=AN(m,e,`${d||e.name||e.dataKey||`value`}`),i=u||e.payload.fill||e.color;return(0,G.jsx)(`div`,{className:X(`flex w-full flex-wrap items-stretch gap-2 [&>svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground`,r===`dot`&&`items-center`),children:l&&e?.value!==void 0&&e.name?l(e.value,e.name,e,t,e.payload):(0,G.jsxs)(G.Fragment,{children:[n?.icon?(0,G.jsx)(n.icon,{}):!a&&(0,G.jsx)(`div`,{className:X(`shrink-0 rounded-[2px] border-(--color-border) bg-(--color-bg)`,{"h-2.5 w-2.5":r===`dot`,"w-1":r===`line`,"w-0 border-[1.5px] border-dashed bg-transparent":r===`dashed`,"my-0.5":g&&r===`dashed`}),style:{"--color-bg":i,"--color-border":i}}),(0,G.jsxs)(`div`,{className:X(`flex flex-1 justify-between leading-none`,g?`items-end`:`items-center`),children:[(0,G.jsxs)(`div`,{className:`grid gap-1.5`,children:[g?h:null,(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:n?.label||e.name})]}),e.value&&(0,G.jsx)(`span`,{className:`font-mono font-medium tabular-nums text-foreground`,children:e.value.toLocaleString()})]})]})},e.dataKey)})})]})});ON.displayName=`ChartTooltip`;var kN=W.forwardRef(({className:e,hideIcon:t=!1,payload:n,verticalAlign:r=`bottom`,nameKey:i},a)=>{let{config:o}=TN();return n?.length?(0,G.jsx)(`div`,{ref:a,className:X(`flex items-center justify-center gap-4`,r===`top`?`pb-3`:`pt-3`,e),children:n.filter(e=>e.type!==`none`).map(e=>{let n=AN(o,e,`${i||e.dataKey||`value`}`);return(0,G.jsxs)(`div`,{className:X(`flex items-center gap-1.5 [&>svg]:h-3 [&>svg]:w-3 [&>svg]:text-muted-foreground`),children:[n?.icon&&!t?(0,G.jsx)(n.icon,{}):(0,G.jsx)(`div`,{className:`h-2 w-2 shrink-0 rounded-[2px]`,style:{backgroundColor:e.color}}),n?.label]},e.value)})}):null});kN.displayName=`ChartLegend`;function AN(e,t,n){if(typeof t!=`object`||!t)return;let r=`payload`in t&&typeof t.payload==`object`&&t.payload!==null?t.payload:void 0,i=n;return n in t&&typeof t[n]==`string`?i=t[n]:r&&n in r&&typeof r[n]==`string`&&(i=r[n]),i in e?e[i]:e[n]}var jN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(gf,{ref:n,className:X(`grid place-content-center peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground`,e),...t,children:(0,G.jsx)(vf,{className:X(`grid place-content-center text-current`),children:(0,G.jsx)(Ct,{className:`h-4 w-4`})})}));jN.displayName=gf.displayName;var MN=Bu,NN=Fu,PN=Lu,FN=ze,IN=me,LN=le,RN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(be,{ref:n,className:X(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,e),...t}));RN.displayName=be.displayName;var zN=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(LN,{children:[(0,G.jsx)(RN,{}),(0,G.jsxs)(Ee,{ref:r,className:X(`fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg`,e),...n,children:[t,(0,G.jsxs)(Ae,{className:`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground`,children:[(0,G.jsx)(At,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}));zN.displayName=Ee.displayName;var BN=({className:e,...t})=>(0,G.jsx)(`div`,{className:X(`flex flex-col space-y-1.5 text-center sm:text-left`,e),...t});BN.displayName=`DialogHeader`;var VN=({className:e,...t})=>(0,G.jsx)(`div`,{className:X(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,e),...t});VN.displayName=`DialogFooter`;var HN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Ge,{ref:n,className:X(`text-lg font-semibold leading-none tracking-tight`,e),...t}));HN.displayName=Ge.displayName;var UN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(xe,{ref:n,className:X(`text-sm text-muted-foreground`,e),...t}));UN.displayName=xe.displayName;var WN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ve,{ref:n,className:X(`flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground`,e),...t}));WN.displayName=ve.displayName;var GN=W.forwardRef(({className:e,...t},n)=>(0,G.jsxs)(`div`,{className:`flex items-center border-b px-3`,"cmdk-input-wrapper":``,children:[(0,G.jsx)(st,{className:`mr-2 h-4 w-4 shrink-0 opacity-50`}),(0,G.jsx)(ve.Input,{ref:n,className:X(`flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50`,e),...t})]}));GN.displayName=ve.Input.displayName;var KN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ve.List,{ref:n,className:X(`max-h-[300px] overflow-y-auto overflow-x-hidden`,e),...t}));KN.displayName=ve.List.displayName;var qN=W.forwardRef((e,t)=>(0,G.jsx)(ve.Empty,{ref:t,className:`py-6 text-center text-sm`,...e}));qN.displayName=ve.Empty.displayName;var JN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ve.Group,{ref:n,className:X(`overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground`,e),...t}));JN.displayName=ve.Group.displayName;var YN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ve.Separator,{ref:n,className:X(`-mx-1 h-px bg-border`,e),...t}));YN.displayName=ve.Separator.displayName;var XN=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ve.Item,{ref:n,className:X(`relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,e),...t}));XN.displayName=ve.Item.displayName;var ZN=({className:e,...t})=>(0,G.jsx)(`span`,{className:X(`ml-auto text-xs tracking-widest text-muted-foreground`,e),...t});ZN.displayName=`CommandShortcut`;var QN=cp,$N=lp,eP=vp,tP=W.forwardRef(({className:e,inset:t,children:n,...r},i)=>(0,G.jsxs)(yp,{ref:i,className:X(`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`,t&&`pl-8`,e),...r,children:[n,(0,G.jsx)(Xe,{className:`ml-auto h-4 w-4`})]}));tP.displayName=yp.displayName;var nP=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(bp,{ref:n,className:X(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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 origin-(--radix-context-menu-content-transform-origin)`,e),...t}));nP.displayName=bp.displayName;var rP=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(up,{children:(0,G.jsx)(dp,{ref:n,className:X(`z-50 max-h-(--radix-context-menu-content-available-height) min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md animate-in fade-in-80 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 origin-(--radix-context-menu-content-transform-origin)`,e),...t})}));rP.displayName=dp.displayName;var iP=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(pp,{ref:r,className:X(`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,t&&`pl-8`,e),...n}));iP.displayName=pp.displayName;var aP=W.forwardRef(({className:e,children:t,checked:n,...r},i)=>(0,G.jsxs)(mp,{ref:i,className:X(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),checked:n,...r,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(gp,{children:(0,G.jsx)(Ct,{className:`h-4 w-4`})})}),t]}));aP.displayName=mp.displayName;var oP=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(hp,{ref:r,className:X(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(gp,{children:(0,G.jsx)(Jt,{className:`h-2 w-2 fill-current`})})}),t]}));oP.displayName=hp.displayName;var sP=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(fp,{ref:r,className:X(`px-2 py-1.5 text-sm font-semibold text-foreground`,t&&`pl-8`,e),...n}));sP.displayName=fp.displayName;var cP=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(_p,{ref:n,className:X(`-mx-1 my-1 h-px bg-border`,e),...t}));cP.displayName=_p.displayName;var lP=({className:e,...t})=>(0,G.jsx)(`span`,{className:X(`ml-auto text-xs tracking-widest text-muted-foreground`,e),...t});lP.displayName=`ContextMenuShortcut`;var uP=({shouldScaleBackground:e=!0,...t})=>(0,G.jsx)(i.Root,{shouldScaleBackground:e,...t});uP.displayName=`Drawer`;var dP=i.Trigger,fP=i.Portal,pP=i.Close,mP=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(i.Overlay,{ref:n,className:X(`fixed inset-0 z-50 bg-black/80`,e),...t}));mP.displayName=i.Overlay.displayName;var hP=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(fP,{children:[(0,G.jsx)(mP,{}),(0,G.jsxs)(i.Content,{ref:r,className:X(`fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background`,e),...n,children:[(0,G.jsx)(`div`,{className:`mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted`}),t]})]}));hP.displayName=`DrawerContent`;var gP=({className:e,...t})=>(0,G.jsx)(`div`,{className:X(`grid gap-1.5 p-4 text-center sm:text-left`,e),...t});gP.displayName=`DrawerHeader`;var _P=({className:e,...t})=>(0,G.jsx)(`div`,{className:X(`mt-auto flex flex-col gap-2 p-4`,e),...t});_P.displayName=`DrawerFooter`;var vP=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(i.Title,{ref:n,className:X(`text-lg font-semibold leading-none tracking-tight`,e),...t}));vP.displayName=i.Title.displayName;var yP=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(i.Description,{ref:n,className:X(`text-sm text-muted-foreground`,e),...t}));yP.displayName=i.Description.displayName;var bP=Bs,xP=Vs,SP=Xs,CP=W.forwardRef(({className:e,inset:t,children:n,...r},i)=>(0,G.jsxs)(Zs,{ref:i,className:X(`flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,t&&`pl-8`,e),...r,children:[n,(0,G.jsx)(Xe,{className:`ml-auto`})]}));CP.displayName=Zs.displayName;var wP=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Qs,{ref:n,className:X(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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 origin-(--radix-dropdown-menu-content-transform-origin)`,e),...t}));wP.displayName=Qs.displayName;var TP=W.forwardRef(({className:e,sideOffset:t=4,...n},r)=>(0,G.jsx)(Hs,{children:(0,G.jsx)(Us,{ref:r,sideOffset:t,className:X(`z-50 max-h-[var(--radix-dropdown-menu-content-available-height)] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md 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 origin-(--radix-dropdown-menu-content-transform-origin)`,e),...n})}));TP.displayName=Us.displayName;var EP=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(Gs,{ref:r,className:X(`relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0`,t&&`pl-8`,e),...n}));EP.displayName=Gs.displayName;var DP=W.forwardRef(({className:e,children:t,checked:n,...r},i)=>(0,G.jsxs)(Ks,{ref:i,className:X(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),checked:n,...r,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(Js,{children:(0,G.jsx)(Ct,{className:`h-4 w-4`})})}),t]}));DP.displayName=Ks.displayName;var OP=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(qs,{ref:r,className:X(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(Js,{children:(0,G.jsx)(Jt,{className:`h-2 w-2 fill-current`})})}),t]}));OP.displayName=qs.displayName;var kP=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(Ws,{ref:r,className:X(`px-2 py-1.5 text-sm font-semibold`,t&&`pl-8`,e),...n}));kP.displayName=Ws.displayName;var AP=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Ys,{ref:n,className:X(`-mx-1 my-1 h-px bg-muted`,e),...t}));AP.displayName=Ys.displayName;var jP=({className:e,...t})=>(0,G.jsx)(`span`,{className:X(`ml-auto text-xs tracking-widest opacity-60`,e),...t});jP.displayName=`DropdownMenuShortcut`;var MP=M(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`),NP=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)($i,{ref:n,className:X(MP(),e),...t}));NP.displayName=$i.displayName;var PP=se,FP=W.createContext(null),IP=({...e})=>(0,G.jsx)(FP.Provider,{value:{name:e.name},children:(0,G.jsx)(ae,{...e})}),LP=()=>{let e=W.useContext(FP),t=W.useContext(RP),{getFieldState:r,formState:i}=n();if(!e)throw Error(`useFormField should be used within <FormField>`);if(!t)throw Error(`useFormField should be used within <FormItem>`);let a=r(e.name,i),{id:o}=t;return{id:o,name:e.name,formItemId:`${o}-form-item`,formDescriptionId:`${o}-form-item-description`,formMessageId:`${o}-form-item-message`,...a}},RP=W.createContext(null),zP=W.forwardRef(({className:e,...t},n)=>{let r=W.useId();return(0,G.jsx)(RP.Provider,{value:{id:r},children:(0,G.jsx)(`div`,{ref:n,className:X(`space-y-2`,e),...t})})});zP.displayName=`FormItem`;var BP=W.forwardRef(({className:e,...t},n)=>{let{error:r,formItemId:i}=LP();return(0,G.jsx)(NP,{ref:n,className:X(r&&`text-destructive`,e),htmlFor:i,...t})});BP.displayName=`FormLabel`;var VP=W.forwardRef(({...e},t)=>{let{error:n,formItemId:r,formDescriptionId:i,formMessageId:a}=LP();return(0,G.jsx)(x,{ref:t,id:r,"aria-describedby":n?`${i} ${a}`:`${i}`,"aria-invalid":!!n,...e})});VP.displayName=`FormControl`;var HP=W.forwardRef(({className:e,...t},n)=>{let{formDescriptionId:r}=LP();return(0,G.jsx)(`p`,{ref:n,id:r,className:X(`text-sm text-muted-foreground`,e),...t})});HP.displayName=`FormDescription`;var UP=W.forwardRef(({className:e,children:t,...n},r)=>{let{error:i,formMessageId:a}=LP(),o=i?String(i?.message??``):t;return o?(0,G.jsx)(`p`,{ref:r,id:a,className:X(`text-sm font-medium text-destructive`,e),...n,children:o}):null});UP.displayName=`FormMessage`;var WP=Hp,GP=Up,KP=W.forwardRef(({className:e,align:t=`center`,sideOffset:n=4,...r},i)=>(0,G.jsx)(Wp,{ref:i,align:t,sideOffset:n,className:X(`z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-(--radix-hover-card-content-transform-origin)`,e),...r}));KP.displayName=Wp.displayName;var qP=W.forwardRef(({className:e,containerClassName:t,...n},r)=>(0,G.jsx)(T,{ref:r,containerClassName:X(`flex items-center gap-2 has-[:disabled]:opacity-50`,t),className:X(`disabled:cursor-not-allowed`,e),...n}));qP.displayName=`InputOTP`;var JP=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:X(`flex items-center`,e),...t}));JP.displayName=`InputOTPGroup`;var YP=W.forwardRef(({index:e,className:t,...n},r)=>{let{char:i,hasFakeCaret:a,isActive:o}=W.useContext(we).slots[e];return(0,G.jsxs)(`div`,{ref:r,className:X(`relative flex h-10 w-10 items-center justify-center border-y border-r border-input text-sm transition-all first:rounded-l-md first:border-l last:rounded-r-md`,o&&`z-10 ring-2 ring-ring ring-offset-background`,t),...n,children:[i,a&&(0,G.jsx)(`div`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:(0,G.jsx)(`div`,{className:`h-4 w-px animate-caret-blink bg-foreground duration-1000`})})]})});YP.displayName=`InputOTPSlot`;var XP=W.forwardRef(({...e},t)=>(0,G.jsx)(`div`,{ref:t,role:`separator`,...e,children:(0,G.jsx)(kt,{})}));XP.displayName=`InputOTPSeparator`;var ZP=W.forwardRef(({className:e,type:t,...n},r)=>(0,G.jsx)(`input`,{type:t,className:X(`flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,e),ref:r,...n}));ZP.displayName=`Input`;function QP({...e}){return(0,G.jsx)(Rm,{...e})}function $P({...e}){return(0,G.jsx)(Jm,{"data-slot":`menubar-sub`,...e})}var eF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Lm,{ref:n,className:X(`flex h-10 items-center space-x-1 rounded-md border bg-background p-1`,e),...t}));eF.displayName=Lm.displayName;var tF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(zm,{ref:n,className:X(`flex cursor-default select-none items-center rounded-sm px-3 py-1.5 text-sm font-medium outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`,e),...t}));tF.displayName=zm.displayName;var nF=W.forwardRef(({className:e,inset:t,children:n,...r},i)=>(0,G.jsxs)(Ym,{ref:i,className:X(`flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground`,t&&`pl-8`,e),...r,children:[n,(0,G.jsx)(Xe,{className:`ml-auto h-4 w-4`})]}));nF.displayName=Ym.displayName;var rF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Xm,{ref:n,className:X(`z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 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 origin-(--radix-menubar-content-transform-origin)`,e),...t}));rF.displayName=Xm.displayName;var iF=W.forwardRef(({className:e,align:t=`start`,alignOffset:n=-4,sideOffset:r=8,...i},a)=>(0,G.jsx)(Bm,{children:(0,G.jsx)(Vm,{ref:a,align:t,alignOffset:n,sideOffset:r,className:X(`z-50 min-w-[12rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=open]:animate-in 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 origin-(--radix-menubar-content-transform-origin)`,e),...i})}));iF.displayName=Vm.displayName;var aF=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(Um,{ref:r,className:X(`relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,t&&`pl-8`,e),...n}));aF.displayName=Um.displayName;var oF=W.forwardRef(({className:e,children:t,checked:n,...r},i)=>(0,G.jsxs)(Wm,{ref:i,className:X(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),checked:n,...r,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(Km,{children:(0,G.jsx)(Ct,{className:`h-4 w-4`})})}),t]}));oF.displayName=Wm.displayName;var sF=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Gm,{ref:r,className:X(`relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(Km,{children:(0,G.jsx)(Jt,{className:`h-2 w-2 fill-current`})})}),t]}));sF.displayName=Gm.displayName;var cF=W.forwardRef(({className:e,inset:t,...n},r)=>(0,G.jsx)(Hm,{ref:r,className:X(`px-2 py-1.5 text-sm font-semibold`,t&&`pl-8`,e),...n}));cF.displayName=Hm.displayName;var lF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(qm,{ref:n,className:X(`-mx-1 my-1 h-px bg-muted`,e),...t}));lF.displayName=qm.displayName;var uF=({className:e,...t})=>(0,G.jsx)(`span`,{className:X(`ml-auto text-xs tracking-widest text-muted-foreground`,e),...t});uF.displayname=`MenubarShortcut`;var dF=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Yh,{ref:r,className:X(`relative z-10 flex max-w-max flex-1 items-center justify-center`,e),...n,children:[t,(0,G.jsx)(vF,{})]}));dF.displayName=Yh.displayName;var fF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Xh,{ref:n,className:X(`group flex flex-1 list-none items-center justify-center space-x-1`,e),...t}));fF.displayName=Xh.displayName;var pF=Zh,mF=M(`group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[state=open]:text-accent-foreground data-[state=open]:bg-accent/50 data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent`),hF=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Qh,{ref:r,className:X(mF(),`group`,e),...n,children:[t,` `,(0,G.jsx)(nt,{className:`relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180`,"aria-hidden":`true`})]}));hF.displayName=Qh.displayName;var gF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(tg,{ref:n,className:X(`left-0 top-0 w-full data-[motion^=from-]:animate-in data-[motion^=to-]:animate-out data-[motion^=from-]:fade-in data-[motion^=to-]:fade-out data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 md:absolute md:w-auto `,e),...t}));gF.displayName=tg.displayName;var _F=$h,vF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{className:X(`absolute left-0 top-full flex justify-center`),children:(0,G.jsx)(ng,{className:X(`origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]`,e),ref:n,...t})}));vF.displayName=ng.displayName;var yF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(eg,{ref:n,className:X(`top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=visible]:animate-in data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:fade-in`,e),...t,children:(0,G.jsx)(`div`,{className:`relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md`})}));yF.displayName=eg.displayName;var bF=({className:e,...t})=>(0,G.jsx)(`nav`,{role:`navigation`,"aria-label":`pagination`,className:X(`mx-auto flex w-full justify-center`,e),...t});bF.displayName=`Pagination`;var xF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`ul`,{ref:n,className:X(`flex flex-row items-center gap-1`,e),...t}));xF.displayName=`PaginationContent`;var SF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`li`,{ref:n,className:X(``,e),...t}));SF.displayName=`PaginationItem`;var CF=({className:e,isActive:t,size:n=`icon`,...r})=>(0,G.jsx)(`a`,{"aria-current":t?`page`:void 0,className:X(NM({variant:t?`outline`:`ghost`,size:n}),e),...r});CF.displayName=`PaginationLink`;var wF=({className:e,...t})=>(0,G.jsxs)(CF,{"aria-label":`Go to previous page`,size:`default`,className:X(`gap-1 pl-2.5`,e),...t,children:[(0,G.jsx)(Tt,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:`Previous`})]});wF.displayName=`PaginationPrevious`;var TF=({className:e,...t})=>(0,G.jsxs)(CF,{"aria-label":`Go to next page`,size:`default`,className:X(`gap-1 pr-2.5`,e),...t,children:[(0,G.jsx)(`span`,{children:`Next`}),(0,G.jsx)(Xe,{className:`h-4 w-4`})]});TF.displayName=`PaginationNext`;var EF=({className:e,...t})=>(0,G.jsxs)(`span`,{"aria-hidden":!0,className:X(`flex h-9 w-9 items-center justify-center`,e),...t,children:[(0,G.jsx)($t,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`More pages`})]});EF.displayName=`PaginationEllipsis`;var DF=kg,OF=Ag,kF=W.forwardRef(({className:e,align:t=`center`,sideOffset:n=4,...r},i)=>(0,G.jsx)(jg,{children:(0,G.jsx)(Mg,{ref:i,align:t,sideOffset:n,className:X(`z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none 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 origin-(--radix-popover-content-transform-origin)`,e),...r})}));kF.displayName=Mg.displayName;var AF=W.forwardRef(({className:e,value:t,...n},r)=>(0,G.jsx)(Yg,{ref:r,className:X(`relative h-4 w-full overflow-hidden rounded-full bg-secondary`,e),...n,children:(0,G.jsx)(Xg,{className:`h-full w-full flex-1 bg-primary transition-all`,style:{transform:`translateX(-${100-(t||0)}%)`}})}));AF.displayName=Yg.displayName;var jF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(x_,{className:X(`grid gap-2`,e),...t,ref:n}));jF.displayName=x_.displayName;var MF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(S_,{ref:n,className:X(`aspect-square h-4 w-4 rounded-full border border-primary text-primary ring-offset-background focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,e),...t,children:(0,G.jsx)(C_,{className:`flex items-center justify-center`,children:(0,G.jsx)(Jt,{className:`h-2.5 w-2.5 fill-current text-current`})})}));MF.displayName=S_.displayName;var NF=({className:e,...t})=>(0,G.jsx)(d,{className:X(`flex h-full w-full data-[panel-group-direction=vertical]:flex-col`,e),...t}),PF=l,FF=({withHandle:e,className:t,...n})=>(0,G.jsx)(ne,{className:X(`relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:-translate-y-1/2 data-[panel-group-direction=vertical]:after:translate-x-0 [&[data-panel-group-direction=vertical]>div]:rotate-90`,t),...n,children:e&&(0,G.jsx)(`div`,{className:`z-10 flex h-4 w-3 items-center justify-center rounded-sm border bg-border`,children:(0,G.jsx)(Dt,{className:`h-2.5 w-2.5`})})}),IF=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Ji,{ref:r,className:X(`relative overflow-hidden`,e),...n,children:[(0,G.jsx)(Yi,{className:`h-full w-full rounded-[inherit]`,children:t}),(0,G.jsx)(LF,{}),(0,G.jsx)(Xi,{})]}));IF.displayName=Ji.displayName;var LF=W.forwardRef(({className:e,orientation:t=`vertical`,...n},r)=>(0,G.jsx)(Si,{ref:r,orientation:t,className:X(`flex touch-none select-none transition-colors`,t===`vertical`&&`h-full w-2.5 border-l border-l-transparent p-[1px]`,t===`horizontal`&&`h-2.5 flex-col border-t border-t-transparent p-[1px]`,e),...n,children:(0,G.jsx)(Ni,{className:`relative flex-1 rounded-full bg-border`})}));LF.displayName=Si.displayName;var RF=Lv,zF=zv,BF=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Rv,{ref:r,className:X(`flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1`,e),...n,children:[t,(0,G.jsx)(Bv,{asChild:!0,children:(0,G.jsx)(nt,{className:`h-4 w-4 opacity-50`})})]}));BF.displayName=Rv.displayName;var VF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Jv,{ref:n,className:X(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,G.jsx)(wn,{className:`h-4 w-4`})}));VF.displayName=Jv.displayName;var HF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Yv,{ref:n,className:X(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,G.jsx)(nt,{className:`h-4 w-4`})}));HF.displayName=Yv.displayName;var UF=W.forwardRef(({className:e,children:t,position:n=`popper`,...r},i)=>(0,G.jsx)(Vv,{children:(0,G.jsxs)(Hv,{ref:i,className:X(`relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md 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 origin-(--radix-select-content-transform-origin)`,n===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,e),position:n,...r,children:[(0,G.jsx)(VF,{}),(0,G.jsx)(Uv,{className:X(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]`),children:t}),(0,G.jsx)(HF,{})]})}));UF.displayName=Hv.displayName;var WF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Wv,{ref:n,className:X(`py-1.5 pl-8 pr-2 text-sm font-semibold`,e),...t}));WF.displayName=Wv.displayName;var GF=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(Gv,{ref:r,className:X(`relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50`,e),...n,children:[(0,G.jsx)(`span`,{className:`absolute left-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,G.jsx)(qv,{children:(0,G.jsx)(Ct,{className:`h-4 w-4`})})}),(0,G.jsx)(Kv,{children:t})]}));GF.displayName=Gv.displayName;var KF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Xv,{ref:n,className:X(`-mx-1 my-1 h-px bg-muted`,e),...t}));KF.displayName=Xv.displayName;var qF=W.forwardRef(({className:e,orientation:t=`horizontal`,decorative:n=!0,...r},i)=>(0,G.jsx)(Nn,{ref:i,decorative:n,orientation:t,className:X(`shrink-0 bg-border`,t===`horizontal`?`h-[1px] w-full`:`h-full w-[1px]`,e),...r}));qF.displayName=Nn.displayName;var JF=ze,YF=me,XF=Ae,ZF=le,QF=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(be,{className:X(`fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0`,e),...t,ref:n}));QF.displayName=be.displayName;var $F=M(`fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500`,{variants:{side:{top:`inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top`,bottom:`inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom`,left:`inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm`,right:`inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm`}},defaultVariants:{side:`right`}}),eI=W.forwardRef(({side:e=`right`,className:t,children:n,hideOverlay:r,...i},a)=>(0,G.jsxs)(ZF,{children:[!r&&(0,G.jsx)(QF,{}),(0,G.jsxs)(Ee,{ref:a,className:X($F({side:e}),t),...i,children:[n,(0,G.jsxs)(Ae,{className:`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-secondary`,children:[(0,G.jsx)(At,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}));eI.displayName=Ee.displayName;var tI=({className:e,...t})=>(0,G.jsx)(`div`,{className:X(`flex flex-col space-y-2 text-center sm:text-left`,e),...t});tI.displayName=`SheetHeader`;var nI=({className:e,...t})=>(0,G.jsx)(`div`,{className:X(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,e),...t});nI.displayName=`SheetFooter`;var rI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Ge,{ref:n,className:X(`text-lg font-semibold text-foreground`,e),...t}));rI.displayName=Ge.displayName;var iI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(xe,{ref:n,className:X(`text-sm text-muted-foreground`,e),...t}));iI.displayName=xe.displayName;var aI=768;function oI(){let[e,t]=W.useState(void 0);return W.useEffect(()=>{let e=window.matchMedia(`(max-width: ${aI-1}px)`),n=()=>{t(window.innerWidth<aI)};return e.addEventListener(`change`,n),t(window.innerWidth<aI),()=>e.removeEventListener(`change`,n)},[]),!!e}function sI({className:e,...t}){return(0,G.jsx)(`div`,{className:X(`animate-pulse rounded-md bg-muted`,e),...t})}var cI=ii,lI=ai,uI=oi,dI=W.forwardRef(({className:e,sideOffset:t=4,...n},r)=>(0,G.jsx)(si,{ref:r,sideOffset:t,className:X(`z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-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 origin-(--radix-tooltip-content-transform-origin)`,e),...n}));dI.displayName=si.displayName;var fI=`sidebar_state`,pI=3600*24*7,mI=`16rem`,hI=`18rem`,gI=`3rem`,_I=`b`,vI=W.createContext(null);function yI(){let e=W.useContext(vI);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}var bI=W.forwardRef(({defaultOpen:e=!0,open:t,onOpenChange:n,className:r,style:i,children:a,...o},s)=>{let c=oI(),[l,u]=W.useState(!1),[d,f]=W.useState(e),p=t??d,m=W.useCallback(e=>{let t=typeof e==`function`?e(p):e;n?n(t):f(t),document.cookie=`${fI}=${t}; path=/; max-age=${pI}`},[n,p]),h=W.useCallback(()=>c?u(e=>!e):m(e=>!e),[c,m,u]);W.useEffect(()=>{let e=e=>{e.key===_I&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),h())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[h]);let g=p?`expanded`:`collapsed`,_=W.useMemo(()=>({state:g,open:p,setOpen:m,isMobile:c,openMobile:l,setOpenMobile:u,toggleSidebar:h}),[g,p,m,c,l,u,h]);return(0,G.jsx)(vI.Provider,{value:_,children:(0,G.jsx)(cI,{delayDuration:0,children:(0,G.jsx)(`div`,{style:{"--sidebar-width":mI,"--sidebar-width-icon":gI,...i},className:X(`group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar`,r),ref:s,...o,children:a})})})});bI.displayName=`SidebarProvider`;var xI=W.forwardRef(({side:e=`left`,variant:t=`sidebar`,collapsible:n=`offcanvas`,className:r,children:i,...a},o)=>{let{isMobile:s,state:c,openMobile:l,setOpenMobile:u}=yI();return n===`none`?(0,G.jsx)(`div`,{className:X(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,r),ref:o,...a,children:i}):s?(0,G.jsx)(JF,{open:l,onOpenChange:u,...a,children:(0,G.jsxs)(eI,{"data-sidebar":`sidebar`,"data-mobile":`true`,className:`w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden`,style:{"--sidebar-width":hI},side:e,children:[(0,G.jsxs)(tI,{className:`sr-only`,children:[(0,G.jsx)(rI,{children:`Sidebar`}),(0,G.jsx)(iI,{children:`Displays the mobile sidebar.`})]}),(0,G.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:i})]})}):(0,G.jsxs)(`div`,{ref:o,className:`group peer hidden text-sidebar-foreground md:block`,"data-state":c,"data-collapsible":n,"data-variant":t,"data-side":e,children:[(0,G.jsx)(`div`,{className:X(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offcanvas]:w-0`,`group-data-[side=right]:rotate-180`,t===`floating`||t===`inset`?`group-data-[state=collapsed]:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_1rem)]`:`group-data-[state=collapsed]:group-data-[collapsible=icon]:w-(--sidebar-width-icon)`)}),(0,G.jsx)(`div`,{className:X(`fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,e===`left`?`left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]`:`right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]`,t===`floating`||t===`inset`?`p-2 group-data-[state=collapsed]:group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_1rem_+_2px)]`:`group-data-[state=collapsed]:group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,r),...a,children:(0,G.jsx)(`div`,{"data-sidebar":`sidebar`,className:`flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow`,children:i})})]})});xI.displayName=`Sidebar`;var SI=W.forwardRef(({className:e,onClick:t,...n},r)=>{let{toggleSidebar:i}=yI();return(0,G.jsxs)(Z,{ref:r,"data-sidebar":`trigger`,variant:`ghost`,size:`icon`,className:X(`h-7 w-7`,e),onClick:e=>{t?.(e),i()},...n,children:[(0,G.jsx)(Ht,{}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`})]})});SI.displayName=`SidebarTrigger`;var CI=W.forwardRef(({className:e,...t},n)=>{let{toggleSidebar:r}=yI();return(0,G.jsx)(`button`,{ref:n,"data-sidebar":`rail`,"aria-label":`Toggle Sidebar`,tabIndex:-1,onClick:r,title:`Toggle Sidebar`,className:X(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex`,`[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar`,`[[data-side=left][data-collapsible=offcanvas]_&]:-right-2`,`[[data-side=right][data-collapsible=offcanvas]_&]:-left-2`,e),...t})});CI.displayName=`SidebarRail`;var wI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`main`,{ref:n,className:X(`relative flex w-full flex-1 flex-col bg-background`,`md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow`,e),...t}));wI.displayName=`SidebarInset`;var TI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(ZP,{ref:n,"data-sidebar":`input`,className:X(`h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring`,e),...t}));TI.displayName=`SidebarInput`;var EI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,"data-sidebar":`header`,className:X(`flex flex-col gap-2 p-2`,e),...t}));EI.displayName=`SidebarHeader`;var DI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,"data-sidebar":`footer`,className:X(`flex flex-col gap-2 p-2`,e),...t}));DI.displayName=`SidebarFooter`;var OI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(qF,{ref:n,"data-sidebar":`separator`,className:X(`mx-2 w-auto bg-sidebar-border`,e),...t}));OI.displayName=`SidebarSeparator`;var kI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,"data-sidebar":`content`,className:X(`flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[state=collapsed]:group-data-[collapsible=icon]:overflow-hidden`,e),...t}));kI.displayName=`SidebarContent`;var AI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,"data-sidebar":`group`,className:X(`relative flex w-full min-w-0 flex-col p-2`,e),...t}));AI.displayName=`SidebarGroup`;var jI=W.forwardRef(({className:e,asChild:t=!1,...n},r)=>(0,G.jsx)(t?x:`div`,{ref:r,"data-sidebar":`group-label`,className:X(`flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`group-data-[state=collapsed]:group-data-[collapsible=icon]:-mt-8 group-data-[state=collapsed]:group-data-[collapsible=icon]:opacity-0`,e),...n}));jI.displayName=`SidebarGroupLabel`;var MI=W.forwardRef(({className:e,asChild:t=!1,...n},r)=>(0,G.jsx)(t?x:`button`,{ref:r,"data-sidebar":`group-action`,className:X(`absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,`after:absolute after:-inset-2 after:md:hidden`,`group-data-[state=collapsed]:group-data-[collapsible=icon]:hidden`,e),...n}));MI.displayName=`SidebarGroupAction`;var NI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,"data-sidebar":`group-content`,className:X(`w-full text-sm`,e),...t}));NI.displayName=`SidebarGroupContent`;var PI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`ul`,{ref:n,"data-sidebar":`menu`,className:X(`flex w-full min-w-0 flex-col gap-1`,e),...t}));PI.displayName=`SidebarMenu`;var FI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`li`,{ref:n,"data-sidebar":`menu-item`,className:X(`group/menu-item relative`,e),...t}));FI.displayName=`SidebarMenuItem`;var II=M(`peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground sidebar-menu-button-icon-mode [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-sm`,sm:`h-7 text-xs`,lg:`h-12 text-sm sidebar-menu-button-icon-mode-lg`}},defaultVariants:{variant:`default`,size:`default`}}),LI=W.forwardRef(({asChild:e=!1,isActive:t=!1,variant:n=`default`,size:r=`default`,tooltip:i,className:a,...o},s)=>{let c=e?x:`button`,{isMobile:l,state:u}=yI(),d=(0,G.jsx)(c,{ref:s,"data-sidebar":`menu-button`,"data-size":r,"data-active":t,className:X(II({variant:n,size:r}),a),...o});return i?(typeof i==`string`&&(i={children:i}),(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:d}),(0,G.jsx)(dI,{side:`right`,align:`center`,hidden:u!==`collapsed`||l,...i})]})):d});LI.displayName=`SidebarMenuButton`;var RI=W.forwardRef(({className:e,asChild:t=!1,showOnHover:n=!1,...r},i)=>(0,G.jsx)(t?x:`button`,{ref:i,"data-sidebar":`menu-action`,className:X(`absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0`,`after:absolute after:-inset-2 after:md:hidden`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[state=collapsed]:group-data-[collapsible=icon]:hidden`,n&&`group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0`,e),...r}));RI.displayName=`SidebarMenuAction`;var zI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,"data-sidebar":`menu-badge`,className:X(`pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground`,`peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground`,`peer-data-[size=sm]/menu-button:top-1`,`peer-data-[size=default]/menu-button:top-1.5`,`peer-data-[size=lg]/menu-button:top-2.5`,`group-data-[state=collapsed]:group-data-[collapsible=icon]:hidden`,e),...t}));zI.displayName=`SidebarMenuBadge`;var BI=W.forwardRef(({className:e,showIcon:t=!1,...n},r)=>{let i=W.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return(0,G.jsxs)(`div`,{ref:r,"data-sidebar":`menu-skeleton`,className:X(`flex h-8 items-center gap-2 rounded-md px-2`,e),...n,children:[t&&(0,G.jsx)(sI,{className:`size-4 rounded-md`,"data-sidebar":`menu-skeleton-icon`}),(0,G.jsx)(sI,{className:`h-4 max-w-(--skeleton-width) flex-1`,"data-sidebar":`menu-skeleton-text`,style:{"--skeleton-width":i}})]})});BI.displayName=`SidebarMenuSkeleton`;var VI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`ul`,{ref:n,"data-sidebar":`menu-sub`,className:X(`mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5`,`group-data-[state=collapsed]:group-data-[collapsible=icon]:hidden`,e),...t}));VI.displayName=`SidebarMenuSub`;var HI=W.forwardRef(({...e},t)=>(0,G.jsx)(`li`,{ref:t,...e}));HI.displayName=`SidebarMenuSubItem`;var UI=W.forwardRef(({asChild:e=!1,size:t=`md`,isActive:n,className:r,...i},a)=>(0,G.jsx)(e?x:`a`,{ref:a,"data-sidebar":`menu-sub-button`,"data-size":t,"data-active":n,className:X(`flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground`,`data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground`,t===`sm`&&`text-xs`,t===`md`&&`text-sm`,`group-data-[state=collapsed]:group-data-[collapsible=icon]:hidden`,r),...i}));UI.displayName=`SidebarMenuSubButton`;var WI=W.forwardRef(({className:e,...t},n)=>(0,G.jsxs)(Ny,{ref:n,className:X(`relative flex w-full touch-none select-none items-center`,e),...t,children:[(0,G.jsx)(Py,{className:`relative h-2 w-full grow overflow-hidden rounded-full bg-secondary`,children:(0,G.jsx)(Fy,{className:`absolute h-full bg-primary`})}),(0,G.jsx)(Iy,{className:`block h-5 w-5 rounded-full border-2 border-primary bg-background ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50`,"aria-label":t[`aria-label`]})]}));WI.displayName=Ny.displayName;var GI=({...e})=>{let{theme:t=`system`}=Be();return(0,G.jsx)(A,{theme:t,className:`toaster group`,icons:{success:(0,G.jsx)(gt,{className:`h-4 w-4`}),info:(0,G.jsx)(wt,{className:`h-4 w-4`}),warning:(0,G.jsx)(Bt,{className:`h-4 w-4`}),error:(0,G.jsx)(xn,{className:`h-4 w-4`}),loading:(0,G.jsx)(dt,{className:`h-4 w-4 animate-spin`})},toastOptions:{classNames:{toast:`group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg`,description:`group-[.toast]:text-muted-foreground`,actionButton:`group-[.toast]:bg-primary group-[.toast]:text-primary-foreground`,cancelButton:`group-[.toast]:bg-muted group-[.toast]:text-muted-foreground`}},...e})},KI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Jy,{className:X(`peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input`,e),...t,ref:n,children:(0,G.jsx)(Yy,{className:X(`pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0`)})}));KI.displayName=Jy.displayName;var qI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{className:`relative w-full overflow-auto`,children:(0,G.jsx)(`table`,{ref:n,className:X(`w-full caption-bottom text-sm`,e),...t})}));qI.displayName=`Table`;var JI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`thead`,{ref:n,className:X(`[&_tr]:border-b`,e),...t}));JI.displayName=`TableHeader`;var YI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`tbody`,{ref:n,className:X(`[&_tr:last-child]:border-0`,e),...t}));YI.displayName=`TableBody`;var XI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`tfoot`,{ref:n,className:X(`border-t bg-muted/50 font-medium [&>tr]:last:border-b-0`,e),...t}));XI.displayName=`TableFooter`;var ZI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`tr`,{ref:n,className:X(`border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted`,e),...t}));ZI.displayName=`TableRow`;var QI=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`th`,{ref:n,className:X(`h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0`,e),...t}));QI.displayName=`TableHead`;var $I=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`td`,{ref:n,className:X(`p-4 align-middle [&:has([role=checkbox])]:pr-0`,e),...t}));$I.displayName=`TableCell`;var eL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`caption`,{ref:n,className:X(`mt-4 text-sm text-muted-foreground`,e),...t}));eL.displayName=`TableCaption`;var tL=Nc,nL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Pc,{ref:n,className:X(`inline-flex h-10 items-center justify-center rounded-md bg-muted p-1 text-muted-foreground`,e),...t}));nL.displayName=Pc.displayName;var rL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Fc,{ref:n,className:X(`inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm`,e),...t}));rL.displayName=Fc.displayName;var iL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(Ic,{ref:n,className:X(`mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,e),...t}));iL.displayName=Ic.displayName;var aL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`textarea`,{className:X(`flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm`,e),ref:n,...t}));aL.displayName=`Textarea`;var oL=M(`inline-flex items-center justify-center rounded-md text-sm font-medium ring-offset-background transition-colors hover:bg-muted hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0 gap-2`,{variants:{variant:{default:`bg-transparent`,outline:`border border-input bg-transparent hover:bg-accent hover:text-accent-foreground`},size:{default:`h-10 px-3 min-w-10`,sm:`h-9 px-2.5 min-w-9`,lg:`h-11 px-5 min-w-11`}},defaultVariants:{variant:`default`,size:`default`}}),sL=W.forwardRef(({className:e,variant:t,size:n,...r},i)=>(0,G.jsx)(Qy,{ref:i,className:X(oL({variant:t,size:n,className:e})),...r}));sL.displayName=Qy.displayName;var cL=W.createContext({size:`default`,variant:`default`}),lL=W.forwardRef(({className:e,variant:t,size:n,children:r,...i},a)=>(0,G.jsx)(mb,{ref:a,className:X(`flex items-center justify-center gap-1`,e),...i,children:(0,G.jsx)(cL.Provider,{value:{variant:t,size:n},children:r})}));lL.displayName=mb.displayName;var uL=W.forwardRef(({className:e,children:t,variant:n,size:r,...i},a)=>{let o=W.useContext(cL);return(0,G.jsx)(hb,{ref:a,className:X(oL({variant:o.variant||n,size:o.size||r}),e),...i,children:t})});uL.displayName=hb.displayName;var dL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`h1`,{ref:n,className:X(`scroll-m-20 text-4xl font-extrabold tracking-tight lg:text-5xl`,e),...t}));dL.displayName=`TypographyH1`;var fL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`h2`,{ref:n,className:X(`scroll-m-20 border-b pb-2 text-3xl font-semibold tracking-tight first:mt-0`,e),...t}));fL.displayName=`TypographyH2`;var pL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`h3`,{ref:n,className:X(`scroll-m-20 text-2xl font-semibold tracking-tight`,e),...t}));pL.displayName=`TypographyH3`;var mL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`h4`,{ref:n,className:X(`scroll-m-20 text-xl font-semibold tracking-tight`,e),...t}));mL.displayName=`TypographyH4`;var hL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`p`,{ref:n,className:X(`leading-7 [&:not(:first-child)]:mt-6`,e),...t}));hL.displayName=`TypographyP`;var gL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`blockquote`,{ref:n,className:X(`mt-6 border-l-2 pl-6 italic`,e),...t}));gL.displayName=`TypographyBlockquote`;var _L=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`ul`,{ref:n,className:X(`my-6 ml-6 list-disc [&>li]:mt-2`,e),...t}));_L.displayName=`TypographyList`;var vL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`code`,{ref:n,className:X(`relative rounded bg-muted px-[0.3rem] py-[0.2rem] font-mono text-sm font-semibold`,e),...t}));vL.displayName=`TypographyInlineCode`;var yL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`p`,{ref:n,className:X(`text-xl text-muted-foreground`,e),...t}));yL.displayName=`TypographyLead`;var bL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`div`,{ref:n,className:X(`text-lg font-semibold`,e),...t}));bL.displayName=`TypographyLarge`;var xL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`small`,{ref:n,className:X(`text-sm font-medium leading-none`,e),...t}));xL.displayName=`TypographySmall`;var SL=W.forwardRef(({className:e,...t},n)=>(0,G.jsx)(`p`,{ref:n,className:X(`text-sm text-muted-foreground`,e),...t}));SL.displayName=`TypographyMuted`;var CL=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n;return(0,G.jsx)(qF,{ref:r,orientation:e.orientation,className:t,...s,"data-obj-id":i,"data-obj-type":a,style:o})});Y.register(`separator`,CL,{namespace:`ui`,label:`Separator`,inputs:[{name:`orientation`,type:`enum`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`,label:`Orientation`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{orientation:`horizontal`,className:`my-2 sm:my-4`}}),Y.register(`image`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n;return(0,G.jsx)(`img`,{src:e.src,alt:e.alt||``,className:t,...o,"data-obj-id":r,"data-obj-type":i,style:a})},{namespace:`ui`,label:`Image`,icon:`image`,category:`basic`,inputs:[{name:`src`,type:`string`,label:`Source URL`},{name:`alt`,type:`string`,label:`Alt Text`},{name:`className`,type:`string`,label:`Classes`}],defaultProps:{className:`max-w-full h-auto`}});function wL(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}var TL={Home:`House`},EL=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n,c=wL(e.name),l=TL[c]||c,u=un[l];if(!u)return console.warn(`Icon "${e.name}" (lookup: "${c}"${l===c?``:` -> "${l}"`}) not found in lucide-react`),null;let d=e.size?{width:e.size,height:e.size}:void 0;return(0,G.jsx)(u,{ref:r,className:X(e.color,e.className,t),style:{...d,...o},...s,"data-obj-id":i,"data-obj-type":a})});EL.displayName=`IconRenderer`,Y.register(`icon`,EL,{namespace:`ui`,label:`Icon`,icon:`smile`,category:`basic`,inputs:[{name:`name`,type:`string`,label:`Icon Name`,defaultValue:`smile`},{name:`size`,type:`number`,label:`Size (px)`},{name:`color`,type:`string`,label:`Color Class`},{name:`className`,type:`string`,label:`CSS Class`}]}),Y.register(`html`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n;return(0,G.jsx)(`div`,{className:X(`prose prose-sm max-w-none dark:prose-invert`,t),dangerouslySetInnerHTML:{__html:e.html},...o,"data-obj-id":r,"data-obj-type":i,style:a})},{namespace:`ui`,label:`HTML Content`,inputs:[{name:`html`,type:`string`,label:`HTML`,description:`Raw HTML content`}]}),Y.register(`button-group`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(`div`,{className:X(`flex flex-wrap sm:inline-flex rounded-md shadow-sm`,e.className),role:`group`,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.buttons?.map((t,n)=>(0,G.jsx)(Z,{variant:t.variant||e.variant,size:t.size||e.size,className:X(`rounded-none`,n===0&&`rounded-l-md`,n===(e.buttons?.length||0)-1&&`rounded-r-md`,n>0&&`-ml-px`,t.className),children:t.label},n))})},{namespace:`ui`,label:`Button Group`,inputs:[{name:`variant`,type:`enum`,enum:[`default`,`destructive`,`outline`,`secondary`,`ghost`,`link`],defaultValue:`default`,label:`Variant`},{name:`size`,type:`enum`,enum:[`default`,`sm`,`lg`,`icon`],defaultValue:`default`,label:`Size`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{variant:`default`,size:`default`,buttons:[{label:`Left`},{label:`Middle`},{label:`Right`}]}}),Y.register(`pagination`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,onPageChange:a,...o}=t,s=e.currentPage||e.page||1,c=e.totalPages||1,l=(e,t)=>{t.preventDefault(),e!==s&&(e<1||e>c||a&&a(e))},u=()=>c<=7?Array.from({length:c},(e,t)=>t+1):s<=3?[1,2,3,4,5,-1,c]:s>=c-2?[1,-1,c-4,c-3,c-2,c-1,c]:[1,-1,s-1,s,s+1,-1,c];return(0,G.jsx)(bF,{className:e.className,...o,"data-obj-id":n,"data-obj-type":r,style:i,children:(0,G.jsxs)(xF,{children:[(0,G.jsx)(SF,{children:(0,G.jsx)(wF,{href:`#`,onClick:e=>l(s-1,e),className:s<=1?`pointer-events-none opacity-50`:`cursor-pointer`,"aria-disabled":s<=1})}),u().map((e,t)=>(0,G.jsx)(SF,{children:e===-1?(0,G.jsx)(EF,{}):(0,G.jsx)(CF,{href:`#`,isActive:e===s,onClick:t=>l(e,t),className:`cursor-pointer`,children:e})},t)),(0,G.jsx)(SF,{children:(0,G.jsx)(TF,{href:`#`,onClick:e=>l(s+1,e),className:s>=c?`pointer-events-none opacity-50`:`cursor-pointer`,"aria-disabled":s>=c})})]})})},{namespace:`ui`,label:`Pagination`,inputs:[{name:`currentPage`,type:`number`,label:`Current Page`,defaultValue:1},{name:`totalPages`,type:`number`,label:`Total Pages`,defaultValue:10},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{currentPage:1,totalPages:10}}),Y.register(`navigation-menu`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(dF,{className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:(0,G.jsx)(fF,{children:e.items?.map((e,t)=>(0,G.jsx)(pF,{children:e.children?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(hF,{children:e.label}),(0,G.jsx)(gF,{children:(0,G.jsx)(`ul`,{className:`grid w-full gap-3 p-4 sm:w-[400px] md:w-[500px] md:grid-cols-2 lg:w-[600px]`,children:e.children.map((e,t)=>(0,G.jsx)(`li`,{children:(0,G.jsx)(_F,{asChild:!0,children:(0,G.jsxs)(`a`,{className:X(`block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground`),href:e.href,children:[(0,G.jsx)(`div`,{className:`text-sm font-medium leading-none`,children:e.label}),e.description&&(0,G.jsx)(`p`,{className:`line-clamp-2 text-sm leading-snug text-muted-foreground`,children:e.description})]})})},t))})})]}):(0,G.jsx)(_F,{href:e.href,children:e.label})},t))})})},{namespace:`ui`,label:`Navigation Menu`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{items:[{label:`Home`,href:`/`},{label:`About`,href:`/about`}]}});function DL({label:e,collapsible:t,collapsed:n,onToggle:r}){return e?(0,G.jsx)(`div`,{className:X(`col-span-full pt-4 pb-1 border-b border-border`,t&&`cursor-pointer select-none`),onClick:t?r:void 0,role:t?`button`:void 0,"aria-expanded":t?!n:void 0,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[t&&(0,G.jsx)(n?Xe:nt,{className:`h-3.5 w-3.5 text-muted-foreground`}),(0,G.jsx)(`span`,{className:`text-sm font-semibold text-foreground`,children:e})]})}):null}var OL=mM({"common.selectOption":`Select an option`},`common.selectOption`);function kL({value:e,onChange:t,placeholder:n,className:r,label:i,...a}){let[o,s]=W.useState(!1),[c,l]=W.useState(e??``),u=e=>t&&t(e),d=()=>{l(e??``),s(!0)},f=()=>{u(c),s(!1)};return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(aL,{placeholder:n,className:X(`pr-10`,r),value:e??``,onChange:e=>u(e.target.value),...a}),(0,G.jsx)(`button`,{type:`button`,onClick:d,className:`absolute top-1.5 right-1.5 inline-flex items-center justify-center size-7 rounded-md bg-background/80 text-muted-foreground hover:text-foreground hover:bg-background border shadow-sm`,"aria-label":`Edit ${i??`text`} fullscreen`,"data-testid":`form-textarea-fullscreen-toggle`,children:(0,G.jsx)(Ze,{className:`size-3.5`})}),(0,G.jsx)(FN,{open:o,onOpenChange:s,children:(0,G.jsxs)(zN,{className:`sm:max-w-3xl h-[100dvh] sm:h-[80vh] max-h-[100dvh] sm:max-h-[80vh] flex flex-col p-0 gap-0`,"data-testid":`form-textarea-fullscreen-dialog`,children:[(0,G.jsx)(BN,{className:`p-4 border-b`,children:(0,G.jsx)(HN,{className:`text-base`,children:i??`Edit text`})}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 p-4`,children:(0,G.jsx)(aL,{autoFocus:!0,value:c,onChange:e=>l(e.target.value),placeholder:n,className:`h-full min-h-full resize-none text-base`,"data-testid":`form-textarea-fullscreen-input`})}),(0,G.jsxs)(VN,{className:`p-3 border-t flex-row justify-end gap-2`,children:[(0,G.jsxs)(Z,{type:`button`,variant:`ghost`,onClick:()=>s(!1),children:[(0,G.jsx)(At,{className:`size-4 mr-1`}),` Cancel`]}),(0,G.jsxs)(Z,{type:`button`,onClick:f,"data-testid":`form-textarea-fullscreen-save`,children:[(0,G.jsx)(Ct,{className:`size-4 mr-1`}),` Done`]})]})]})})]})}Y.register(`form`,({schema:e,className:t,onAction:n,...r})=>{let{t:i}=OL(),{defaultValues:a={},fields:o=[],submitLabel:s=`Submit`,cancelLabel:c=`Cancel`,showCancel:l=!1,showSubmit:u=!0,layout:d=`vertical`,columns:f=1,onSubmit:p,onChange:m,onCancel:h,resetOnSubmit:g=!1,validationMode:_=`onSubmit`,disabled:v=!1}=e,y=D({defaultValues:a,mode:_}),[b,x]=W.useState(!1),[S,C]=W.useState(null),w=W.useContext(Vj)?.dataSource??null;W.useEffect(()=>{y.reset(a)},[a]),W.useEffect(()=>{if(n){let e=y.watch(e=>{n({type:`form_change`,data:e,formData:e})});return()=>e.unsubscribe()}},[y,n]);let T=y.handleSubmit(async e=>{x(!0),C(null);let t=e;if(e&&(e.nativeEvent||typeof e.preventDefault==`function`||typeof e.stopPropagation==`function`||e.target||e.bubbles))t=y.getValues();else if(!t||Object.keys(t).length===0){let e=y.getValues();e&&Object.keys(e).length>0&&(t=e)}try{if(n){let e=await n({type:`form_submit`,data:t,formData:t});if(e?.error){C(e.error);return}}p&&typeof p==`function`&&await p(t),g&&y.reset()}catch(e){C(e instanceof Error?e.message:typeof e==`string`?e:`An error occurred during submission`)}finally{x(!1)}}),E=()=>{y.reset(),h&&typeof h==`function`&&h(),n&&n({type:`form_cancel`,data:y.getValues()})},ee=f>1?X(`grid gap-4`,f===1?``:f===2?`md:grid-cols-2`:f===3?`md:grid-cols-2 lg:grid-cols-3`:`md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4`):`space-y-4`,{"data-obj-id":O,"data-obj-type":k,style:A,onSubmit:te,onChange:ne,submitLabel:re,cancelLabel:ie,showSubmit:j,showCancel:M,resetOnSubmit:ae,defaultValues:N,inputType:oe,...P}=r;return(0,G.jsx)(PP,{...y,children:(0,G.jsxs)(`form`,{onSubmit:T,className:t,...P,"data-obj-id":O,"data-obj-type":k,style:A,children:[S&&(0,G.jsxs)(KM,{variant:`destructive`,className:`mb-4`,children:[(0,G.jsx)($e,{className:`h-4 w-4`}),(0,G.jsx)(JM,{children:S})]}),e.children?(0,G.jsx)(`div`,{className:e.fieldContainerClass||`space-y-4`,children:EM(e.children)}):(0,G.jsx)(`div`,{className:e.fieldContainerClass||ee,children:o.map(t=>{let{name:n,label:r,description:a,type:o=`input`,required:s=!1,disabled:c=!1,validation:l={},condition:u,colSpan:d,hidden:f,widget:p,visibleOn:m,readonly:h,...g}=t;if(f)return null;if(u){let e=u.field,t=y.watch(e),n=t!=null;if(u.equals!==void 0&&t!==u.equals||u.notEquals!==void 0&&t===u.notEquals||u.in&&(!n||!u.in.includes(t)))return null}if(o===`section-divider`){let e=g;return(0,G.jsx)(DL,{label:r,collapsible:e.collapsible,collapsed:e.collapsed,onToggle:e.onToggle},n)}let _={...l};s&&(_.required=typeof l.required==`string`?l.required:`${r||n} is required`);let x=t.id??n,S=p||o,C=e.fieldContainerClass||ee,T=e=>{let t=Array.from(C.matchAll(/(@)?(sm|md|lg|xl|2xl|3xl|4xl|5xl|6xl|7xl):grid-cols-(\d+)/g)).map(e=>({at:e[1]||``,bp:e[2],cols:Number(e[3])}));if(!t.length)return e===2?`col-span-2`:e===3?`col-span-3`:`col-span-4`;let n=t.find(t=>t.cols>=e)||t[t.length-1];return{"@sm:2":`@sm:col-span-2`,"@md:2":`@md:col-span-2`,"@lg:2":`@lg:col-span-2`,"@xl:2":`@xl:col-span-2`,"@2xl:2":`@2xl:col-span-2`,"@sm:3":`@sm:col-span-3`,"@md:3":`@md:col-span-3`,"@lg:3":`@lg:col-span-3`,"@xl:3":`@xl:col-span-3`,"@2xl:3":`@2xl:col-span-3`,"@4xl:3":`@4xl:col-span-3`,"@sm:4":`@sm:col-span-4`,"@md:4":`@md:col-span-4`,"@lg:4":`@lg:col-span-4`,"@xl:4":`@xl:col-span-4`,"@2xl:4":`@2xl:col-span-4`,"@4xl:4":`@4xl:col-span-4`,"sm:2":`sm:col-span-2`,"md:2":`md:col-span-2`,"lg:2":`lg:col-span-2`,"xl:2":`xl:col-span-2`,"sm:3":`sm:col-span-3`,"md:3":`md:col-span-3`,"lg:3":`lg:col-span-3`,"xl:3":`xl:col-span-3`,"sm:4":`sm:col-span-4`,"md:4":`md:col-span-4`,"lg:4":`lg:col-span-4`,"xl:4":`xl:col-span-4`}[`${n.at}${n.bp}:${e}`]||(e===2?`col-span-2`:e===3?`col-span-3`:`col-span-4`)},E=d&&d>1?d===2?T(2):d===3?T(3):d>=4?T(4):``:``;return(0,G.jsx)(IP,{control:y.control,name:n,rules:_,render:({field:e})=>(0,G.jsxs)(zP,{className:E||void 0,children:[r&&(0,G.jsxs)(BP,{className:`text-xs sm:text-sm`,children:[r,s&&(0,G.jsx)(`span`,{className:`text-destructive ml-1`,"aria-label":`required`,children:`*`})]}),(0,G.jsx)(VP,{children:AL(S,{...g,field:t.field||t,...e,inputType:g.inputType,options:g.options,placeholder:g.placeholder??(S===`select`?i(`common.selectOption`):void 0),disabled:v||c||h||b,dataSource:w})}),a&&(0,G.jsx)(HP,{children:a}),(0,G.jsx)(UP,{})]})},x)})}),e.showActions!==!1&&(0,G.jsxs)(`div`,{className:X(`flex flex-col sm:flex-row gap-2 ${d===`horizontal`?`sm:justify-end`:`sm:justify-start`} mt-6`,e.mobileStickyActions&&`sticky bottom-0 z-10 -mx-4 px-4 py-3 bg-background/95 supports-[backdrop-filter]:bg-background/80 backdrop-blur border-t md:static md:mx-0 md:px-0 md:py-0 md:bg-transparent md:border-0 md:backdrop-blur-none`),"data-testid":e.mobileStickyActions?`form-mobile-sticky-actions`:void 0,children:[l&&(0,G.jsx)(Z,{type:`button`,variant:`outline`,onClick:E,disabled:b||v,className:`w-full sm:w-auto`,children:c}),u&&(0,G.jsxs)(Z,{type:`submit`,disabled:b||v,className:`w-full sm:w-auto`,children:[b&&(0,G.jsx)(dt,{className:`mr-2 h-4 w-4 animate-spin`}),s]})]})]})})},{namespace:`ui`,label:`Form`,inputs:[{name:`fields`,type:`array`,label:`Fields`,description:`Array of field configurations with name, label, type, validation, etc.`},{name:`defaultValues`,type:`object`,label:`Default Values`,description:`Object with default values for form fields`},{name:`submitLabel`,type:`string`,label:`Submit Button Label`,defaultValue:`Submit`},{name:`cancelLabel`,type:`string`,label:`Cancel Button Label`,defaultValue:`Cancel`},{name:`showCancel`,type:`boolean`,label:`Show Cancel Button`,defaultValue:!1},{name:`layout`,type:`enum`,enum:[`vertical`,`horizontal`],label:`Layout`,defaultValue:`vertical`},{name:`columns`,type:`number`,label:`Number of Columns`,defaultValue:1,description:`For multi-column layouts (1-4)`},{name:`validationMode`,type:`enum`,enum:[`onSubmit`,`onBlur`,`onChange`,`onTouched`,`all`],label:`Validation Mode`,defaultValue:`onSubmit`},{name:`resetOnSubmit`,type:`boolean`,label:`Reset After Submit`,defaultValue:!1},{name:`disabled`,type:`boolean`,label:`Disabled`,defaultValue:!1},{name:`className`,type:`string`,label:`CSS Class`},{name:`fieldContainerClass`,type:`string`,label:`Field Container CSS Class`}],defaultProps:{submitLabel:`Submit`,cancelLabel:`Cancel`,showCancel:!1,layout:`vertical`,columns:1,validationMode:`onSubmit`,resetOnSubmit:!1,disabled:!1,fields:[{name:`name`,label:`Name`,type:`input`,required:!0,placeholder:`Enter your name`},{name:`email`,label:`Email`,type:`input`,inputType:`email`,required:!0,placeholder:`Enter your email`}]}});function AL(e,t){let n=Y.get(e);if(n)return(0,G.jsx)(n,{schema:t,...t});let{inputType:r,options:i=[],placeholder:a,...o}=t;switch(e){case`input`:if(r===`file`){let{value:e,...t}=o;return(0,G.jsx)(ZP,{type:`file`,placeholder:a,className:`min-h-[44px] sm:min-h-0`,...t})}return(0,G.jsx)(ZP,{type:r||`text`,placeholder:a,className:`min-h-[44px] sm:min-h-0`,...o,value:o.value??``});case`textarea`:{let{mobile_fullscreen:e,fullscreen:t,label:n,...r}=o;return e||t?(0,G.jsx)(kL,{placeholder:a,label:n,className:`min-h-[44px] sm:min-h-0`,...r,value:r.value??``}):(0,G.jsx)(aL,{placeholder:a,className:`min-h-[44px] sm:min-h-0`,...r,value:r.value??``})}case`checkbox`:{let{value:e,onChange:t,...n}=o;return(0,G.jsx)(jN,{checked:e,onCheckedChange:t,className:`min-h-[44px] min-w-[44px] sm:min-h-0 sm:min-w-0`,...n})}case`switch`:{let{value:e,onChange:t,...n}=o;return(0,G.jsx)(KI,{checked:e,onCheckedChange:t,className:`min-h-[44px] min-w-[44px] sm:min-h-0 sm:min-w-0`,...n})}case`select`:{let{value:e,onChange:t,...n}=o;return!i||i.length===0?(0,G.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`No options available`}):(0,G.jsxs)(RF,{value:e,onValueChange:t,...n,children:[(0,G.jsx)(BF,{className:`min-h-[44px] sm:min-h-0`,children:(0,G.jsx)(zF,{placeholder:a||`Select an option`})}),(0,G.jsx)(UF,{children:i.map(e=>(0,G.jsx)(GF,{value:e.value,children:e.label},e.value))})]})}default:return(0,G.jsx)(ZP,{type:r||`text`,placeholder:a,...o})}}function jL(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}var ML={Home:`House`},NL=(0,W.forwardRef)(({schema:e,...t},n)=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=t,s=null;if(e.icon){let t=jL(e.icon);s=un[ML[t]||t]}let c=e.loading||t.loading,l=e.disabled||t.disabled||c;return(0,G.jsxs)(Z,{ref:n,type:e.buttonType||`button`,variant:e.variant,size:e.size,className:e.className,disabled:l,...o,"data-obj-id":r,"data-obj-type":i,style:a,children:[c&&(0,G.jsx)(dt,{className:`mr-2 h-4 w-4 animate-spin`}),!c&&s&&e.iconPosition!==`right`&&(0,G.jsx)(s,{className:`mr-2 h-4 w-4`}),e.label||EM(e.body||e.children),!c&&s&&e.iconPosition===`right`&&(0,G.jsx)(s,{className:`ml-2 h-4 w-4`})]})});NL.displayName=`ButtonRenderer`,Y.register(`button`,NL,{namespace:`ui`,label:`Button`,inputs:[{name:`label`,type:`string`,label:`Label`,defaultValue:`Button`},{name:`variant`,type:`enum`,label:`Variant`,enum:[`default`,`secondary`,`destructive`,`outline`,`ghost`,`link`],defaultValue:`default`},{name:`size`,type:`enum`,label:`Size`,enum:[`default`,`sm`,`lg`,`icon`],defaultValue:`default`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{label:`Button`,variant:`default`,size:`default`}}),Y.register(`label`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n;return(0,G.jsx)(NP,{className:t,...o,"data-obj-id":r,"data-obj-type":i,style:a,children:e.text||e.label||e.content})},{namespace:`ui`,label:`Label`,inputs:[{name:`text`,type:`string`,label:`Text`,required:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{text:`Label Text`}});var PL=({schema:e,className:t,onChange:n,value:r,...i})=>{let a=e=>{n&&n(e.target.value)},{"data-obj-id":o,"data-obj-type":s,style:c,...l}=i;return(0,G.jsxs)(`div`,{className:X(`grid w-full items-center gap-1.5`,e.wrapperClass),"data-obj-id":o,"data-obj-type":s,style:c,children:[e.label&&(0,G.jsx)(NP,{htmlFor:e.id,className:X(e.required&&`text-destructive after:content-['*'] after:ml-0.5`),children:e.label}),(0,G.jsx)(ZP,{type:e.inputType||`text`,id:e.id,name:e.name,placeholder:e.placeholder,className:t,required:e.required,disabled:e.disabled,readOnly:e.readOnly,value:r??e.value??``,defaultValue:r===void 0?e.defaultValue:void 0,onChange:a,min:e.min,max:e.max,step:e.step,maxLength:e.maxLength,pattern:e.pattern,...l}),e.description&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description}),e.error&&(0,G.jsx)(`p`,{className:`text-sm font-medium text-destructive`,children:e.error})]})};Y.register(`input`,PL,{namespace:`ui`,label:`Input Field`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`name`,type:`string`,label:`Field Name`},{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`inputType`,type:`enum`,label:`Type`,enum:[`text`,`email`,`password`,`number`,`tel`,`url`,`date`,`time`,`datetime-local`],defaultValue:`text`},{name:`required`,type:`boolean`,label:`Required`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`description`,type:`string`,label:`Description`}],defaultProps:{inputType:`text`}}),Y.register(`email`,e=>(0,G.jsx)(PL,{...e,schema:{...e.schema,inputType:`email`}}),{namespace:`ui`,label:`Email Input`,icon:`mail`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`name`,type:`string`,label:`Field Name`},{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`required`,type:`boolean`,label:`Required`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`description`,type:`string`,label:`Description`}]}),Y.register(`password`,e=>(0,G.jsx)(PL,{...e,schema:{...e.schema,inputType:`password`}}),{namespace:`ui`,label:`Password Input`,icon:`lock`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`name`,type:`string`,label:`Field Name`},{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`required`,type:`boolean`,label:`Required`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`description`,type:`string`,label:`Description`}]}),Y.register(`textarea`,({schema:e,className:t,onChange:n,value:r,...i})=>{let a=e=>{n&&n(e.target.value)},{"data-obj-id":o,"data-obj-type":s,style:c,...l}=i;return(0,G.jsxs)(`div`,{className:X(`grid w-full gap-1.5`,e.wrapperClass),"data-obj-id":o,"data-obj-type":s,style:c,children:[e.label&&(0,G.jsx)(NP,{htmlFor:e.id,className:X(e.required&&`text-destructive after:content-['*'] after:ml-0.5`),children:e.label}),(0,G.jsx)(aL,{id:e.id,name:e.name,placeholder:e.placeholder,className:t,disabled:e.disabled,readOnly:e.readOnly,required:e.required,rows:e.rows,value:r??e.value??``,defaultValue:r===void 0?e.defaultValue:void 0,onChange:a,...l})]})},{namespace:`ui`,label:`Textarea`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`rows`,type:`number`,label:`Rows`},{name:`required`,type:`boolean`,label:`Required`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`id`,type:`string`,label:`ID`,required:!0}],defaultProps:{label:`Textarea label`,placeholder:`Enter text here...`,rows:3,id:`textarea-field`}}),Y.register(`checkbox`,({schema:e,className:t,onChange:n,value:r,...i})=>{let{"data-obj-id":a,"data-obj-type":o,style:s,...c}=i;return(0,G.jsxs)(`div`,{className:X(`flex items-center space-x-2`,e.wrapperClass),"data-obj-id":a,"data-obj-type":o,style:s,children:[(0,G.jsx)(jN,{id:e.id,className:t,checked:r??e.checked??!1,defaultChecked:r===void 0?e.defaultChecked:void 0,onCheckedChange:e=>{n&&n(e)},disabled:e.disabled,required:e.required,name:e.name,...c}),(0,G.jsx)(NP,{htmlFor:e.id,className:X(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`,e.required&&`text-destructive after:content-['*'] after:ml-0.5`),children:e.label})]})},{namespace:`ui`,label:`Checkbox`,inputs:[{name:`label`,type:`string`,label:`Label`,required:!0},{name:`id`,type:`string`,label:`ID`,required:!0},{name:`checked`,type:`boolean`,label:`Checked`},{name:`required`,type:`boolean`,label:`Required`},{name:`disabled`,type:`boolean`,label:`Disabled`}],defaultProps:{label:`Checkbox label`,id:`checkbox-field`}}),Y.register(`switch`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n;return(0,G.jsxs)(`div`,{className:`flex items-center space-x-2 ${e.wrapperClass||``}`,"data-obj-id":r,"data-obj-type":i,style:a,children:[(0,G.jsx)(KI,{id:e.id,className:t,...o}),(0,G.jsx)(NP,{htmlFor:e.id,children:e.label})]})},{namespace:`ui`,label:`Switch`,inputs:[{name:`label`,type:`string`,label:`Label`,required:!0},{name:`id`,type:`string`,label:`ID`,required:!0},{name:`checked`,type:`boolean`,label:`Checked`}],defaultProps:{label:`Switch label`,id:`switch-field`}}),Y.register(`select`,({schema:e,className:t,onChange:n,value:r,...i})=>{let{"data-obj-id":a,"data-obj-type":o,style:s,...c}=i;return(0,G.jsxs)(`div`,{className:X(`grid w-full items-center gap-1.5`,e.wrapperClass),"data-obj-id":a,"data-obj-type":o,style:s,children:[e.label&&(0,G.jsx)(NP,{className:X(e.required&&`text-destructive after:content-['*'] after:ml-0.5`),children:e.label}),(0,G.jsxs)(RF,{defaultValue:r===void 0?e.defaultValue:void 0,value:r??e.value,onValueChange:e=>{n&&n(e)},disabled:e.disabled,required:e.required,name:e.name,...c,children:[(0,G.jsx)(BF,{className:t,children:(0,G.jsx)(zF,{placeholder:e.placeholder})}),(0,G.jsx)(UF,{children:e.options?.map(e=>(0,G.jsx)(GF,{value:e.value,disabled:e.disabled,children:e.label},e.value))})]})]})},{namespace:`ui`,label:`Select`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`defaultValue`,type:`string`,label:`Default Value`},{name:`required`,type:`boolean`,label:`Required`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`options`,type:`array`,label:`Options`,description:`Array of {label, value} objects`}],defaultProps:{label:`Select an option`,placeholder:`Choose...`,options:[{label:`Option 1`,value:`option1`},{label:`Option 2`,value:`option2`},{label:`Option 3`,value:`option3`}]}}),Y.register(`radio-group`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n;return(0,G.jsx)(jF,{defaultValue:e.defaultValue,className:t,...o,"data-obj-id":r,"data-obj-type":i,style:a,children:e.options?.map(t=>(0,G.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,G.jsx)(MF,{value:t.value,id:`${e.id}-${t.value}`}),(0,G.jsx)(NP,{htmlFor:`${e.id}-${t.value}`,children:t.label})]},t.value))})},{namespace:`ui`,label:`Radio Group`,inputs:[{name:`defaultValue`,type:`string`,label:`Default Value`},{name:`id`,type:`string`,label:`Group ID`,required:!0},{name:`options`,type:`array`,label:`Options`,description:`Array of {label, value} objects`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{id:`radio-group`,options:[{label:`Option 1`,value:`option1`},{label:`Option 2`,value:`option2`},{label:`Option 3`,value:`option3`}]}}),Y.register(`slider`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n;return(0,G.jsx)(WI,{defaultValue:Array.isArray(e.defaultValue)?e.defaultValue:e.defaultValue===void 0?void 0:[e.defaultValue],max:e.max,min:e.min,step:e.step,className:t,...o,"data-obj-id":r,"data-obj-type":i,style:a})},{namespace:`ui`,label:`Slider`,inputs:[{name:`defaultValue`,type:`array`,label:`Default Value`,defaultValue:[50]},{name:`max`,type:`number`,label:`Max`,defaultValue:100},{name:`min`,type:`number`,label:`Min`,defaultValue:0},{name:`step`,type:`number`,label:`Step`,defaultValue:1},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{defaultValue:[50],max:100,min:0,step:1,className:`w-full`}}),Y.register(`toggle`,({schema:e,...t})=>(0,G.jsx)(sL,{variant:e.variant,size:e.size,pressed:e.pressed,"aria-label":e.ariaLabel,...t,children:e.label||EM(e.children)}),{namespace:`ui`,label:`Toggle`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`pressed`,type:`boolean`,label:`Pressed`},{name:`variant`,type:`enum`,enum:[`default`,`outline`],defaultValue:`default`,label:`Variant`},{name:`size`,type:`enum`,enum:[`default`,`sm`,`lg`],defaultValue:`default`,label:`Size`},{name:`ariaLabel`,type:`string`,label:`Aria Label`}],defaultProps:{label:`Toggle`,variant:`default`,size:`default`}}),Y.register(`input-otp`,({schema:e,className:t,onChange:n,value:r,...i})=>{let a=e.maxLength||6,o=Array.from({length:a});return(0,G.jsx)(qP,{maxLength:a,className:t,value:r??e.value,onChange:e=>{n&&n(e)},...i,children:(0,G.jsx)(JP,{children:o.map((e,t)=>(0,G.jsx)(YP,{index:t},t))})})},{namespace:`ui`,label:`Input OTP`,inputs:[{name:`maxLength`,type:`number`,label:`Max Length`,defaultValue:6},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{maxLength:6}}),Y.register(`calendar`,({schema:e,className:t,...n})=>(0,G.jsx)(cN,{mode:e.mode||`single`,selected:e.value||e.defaultValue,className:t,...n}),{namespace:`ui`,label:`Calendar`,inputs:[{name:`mode`,type:`enum`,enum:[`default`,`single`,`multiple`,`range`],defaultValue:`single`,label:`Mode`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{mode:`single`,className:`rounded-md border`}}),Y.register(`date-picker`,({schema:e,className:t,value:n,onChange:r,...i})=>{let a=e=>{r&&r(e)},{"data-obj-id":o,"data-obj-type":s,style:c,...l}=i;return(0,G.jsxs)(`div`,{className:`grid w-full max-w-sm items-center gap-1.5 ${e.wrapperClass||``}`,"data-obj-id":o,"data-obj-type":s,style:c,children:[e.label&&(0,G.jsx)(NP,{htmlFor:e.id,children:e.label}),(0,G.jsxs)(DF,{children:[(0,G.jsx)(OF,{asChild:!0,children:(0,G.jsxs)(Z,{id:e.id,variant:`outline`,className:X(`w-full justify-start text-left font-normal`,!n&&`text-muted-foreground`,t),...l,children:[(0,G.jsx)(ln,{className:`mr-2 h-4 w-4`}),n?v(n,e.format||`PPP`):(0,G.jsx)(`span`,{children:e.placeholder||`Pick a date`})]})}),(0,G.jsx)(kF,{className:`w-auto p-0`,children:(0,G.jsx)(cN,{mode:`single`,selected:n,onSelect:a,initialFocus:!0})})]})]})},{namespace:`ui`,label:`Date Picker`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`format`,type:`string`,label:`Date Format`,description:`date-fns format string (e.g., "PPP", "yyyy-MM-dd")`},{name:`id`,type:`string`,label:`ID`,required:!0}],defaultProps:{label:`Date`,placeholder:`Pick a date`,format:`PPP`,id:`date-picker-field`}}),Y.register(`file-upload`,({schema:e,className:t,value:n,onChange:r,...i})=>{let[a,o]=(0,W.useState)(n||[]),[s,c]=(0,W.useState)(!1),[l,u]=(0,W.useState)(0),d=(0,W.useRef)(null);(0,W.useEffect)(()=>{if(s){let e=setInterval(()=>{u(t=>t>=100?(clearInterval(e),c(!1),0):t+5)},50);return()=>clearInterval(e)}},[s]);let f=t=>{let n=Array.from(t.target.files||[]);if(n.length>0){c(!0),u(0);let t=e.multiple?[...a,...n]:n;setTimeout(()=>{o(t),r&&r(t)},1e3)}},p=e=>{let t=a.filter((t,n)=>n!==e);o(t),r&&r(t)},m=()=>{d.current?.click()},{"data-obj-id":h,"data-obj-type":g,style:_,...v}=i;return(0,G.jsxs)(`div`,{className:`grid w-full max-w-sm items-center gap-2 ${e.wrapperClass||``}`,"data-obj-id":h,"data-obj-type":g,style:_,children:[e.label&&(0,G.jsx)(NP,{htmlFor:e.id,children:e.label}),(0,G.jsxs)(`div`,{className:X(`relative flex flex-col gap-3 group/upload`,t),children:[(0,G.jsx)(`input`,{ref:d,type:`file`,id:e.id,className:`hidden`,accept:e.accept,multiple:e.multiple,onChange:f,...v}),(0,G.jsxs)(`div`,{onClick:m,className:X(`relative overflow-hidden cursor-pointer rounded-lg border-2 border-dashed transition-all duration-300 min-h-[120px] flex flex-col items-center justify-center p-4 sm:p-6 gap-3`,s?`border-cyan-400 bg-cyan-950/30`:`border-slate-700 bg-slate-900/50 hover:bg-slate-900 hover:border-cyan-500/50 hover:shadow-[0_0_20px_-5px_rgba(6,182,212,0.3)]`),children:[(0,G.jsx)(`div`,{className:`absolute inset-0 bg-[url('https://grainy-gradients.vercel.app/noise.svg')] opacity-5 pointer-events-none`}),(0,G.jsx)(`div`,{className:`absolute inset-0 bg-[linear-gradient(to_right,#80808012_1px,transparent_1px),linear-gradient(to_bottom,#80808012_1px,transparent_1px)] bg-[size:14px_24px] pointer-events-none`}),(0,G.jsx)(`div`,{className:X(`relative z-10 p-3 rounded-full bg-slate-800 border border-slate-700 transition-all duration-500`,s?`scale-110 shadow-[0_0_30px_cyan] border-cyan-400 animate-bounce`:`group-hover/upload:scale-110 group-hover/upload:shadow-lg group-hover/upload:border-cyan-500`),children:s?(0,G.jsx)(qe,{className:`w-8 h-8 text-cyan-300 animate-pulse`}):(0,G.jsx)(Qt,{className:`w-6 h-6 text-slate-400 group-hover/upload:text-cyan-400`})}),(0,G.jsx)(`div`,{className:`relative z-10 text-center`,children:(0,G.jsx)(`p`,{className:X(`text-xs font-mono uppercase tracking-widest transition-colors`,s?`text-cyan-300`:`text-slate-500 group-hover/upload:text-cyan-200`),children:s?`INITIATING LAUNCH SEQUENCE...`:e.buttonText||`DROP PAYLOAD OR CLICK TO UPLOAD`})}),s&&(0,G.jsx)(`div`,{className:`absolute bottom-0 left-0 h-1 bg-cyan-500 shadow-[0_0_10px_cyan] transition-all duration-75 ease-out`,style:{width:`${l}%`}})]}),a.length>0&&(0,G.jsx)(`div`,{className:`flex flex-col gap-2 mt-1 perspective-1000`,children:a.map((e,t)=>(0,G.jsxs)(`div`,{className:`relative group/file overflow-hidden flex items-center justify-between p-3 border border-border bg-card/80 rounded-sm text-sm transition-all hover:border-primary/30 hover:shadow-lg hover:shadow-primary/10 animate-in slide-in-from-bottom-2 fade-in`,children:[(0,G.jsx)(`div`,{className:`absolute left-0 top-0 bottom-0 w-[2px] bg-primary/50 group-hover/file:bg-primary group-hover/file:shadow-[0_0_8px_hsl(var(--primary))]`}),(0,G.jsxs)(`div`,{className:`flex items-center gap-3 z-10`,children:[(0,G.jsx)(gt,{className:`w-4 h-4 text-emerald-500 rounded-full`}),(0,G.jsx)(`span`,{className:`truncate max-w-[150px] sm:max-w-[200px] md:max-w-[300px] text-muted-foreground group-hover/file:text-foreground font-mono text-xs transition-colors`,children:e.name})]}),(0,G.jsx)(Z,{type:`button`,variant:`ghost`,size:`sm`,className:`h-6 w-6 p-0 hover:bg-destructive/10 hover:text-destructive`,onClick:()=>p(t),children:(0,G.jsx)(At,{className:`h-3 w-3`})}),(0,G.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-r from-transparent via-primary/5 to-transparent -translate-x-full group-hover/file:animate-[shimmer_1s_infinite] pointer-events-none`})]},t))})]})]})},{namespace:`ui`,label:`File Upload`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`buttonText`,type:`string`,label:`Button Text`},{name:`accept`,type:`string`,label:`Accepted File Types`,description:`MIME types (e.g., "image/*,application/pdf")`},{name:`multiple`,type:`boolean`,label:`Allow Multiple Files`},{name:`id`,type:`string`,label:`ID`,required:!0}],defaultProps:{label:`Upload files`,buttonText:`Choose files`,multiple:!0,id:`file-upload-field`}}),M(`flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2`,{variants:{orientation:{horizontal:`[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none`,vertical:`flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none`}},defaultVariants:{orientation:`horizontal`}});function FL({options:e,value:t,onValueChange:n,placeholder:r=`Select option...`,searchPlaceholder:i=`Search...`,emptyText:a=`No option found.`,className:o,disabled:s}){let[c,l]=W.useState(!1);return(0,G.jsxs)(DF,{open:c,onOpenChange:l,children:[(0,G.jsx)(OF,{asChild:!0,children:(0,G.jsxs)(Z,{variant:`outline`,role:`combobox`,"aria-expanded":c,className:X(`w-[200px] justify-between`,o),disabled:s,children:[t?e.find(e=>e.value===t)?.label:r,(0,G.jsx)(at,{className:`ml-2 h-4 w-4 shrink-0 opacity-50`})]})}),(0,G.jsx)(kF,{className:`w-[200px] p-0`,children:(0,G.jsxs)(WN,{children:[(0,G.jsx)(GN,{placeholder:i}),(0,G.jsxs)(KN,{children:[(0,G.jsx)(qN,{children:a}),(0,G.jsx)(JN,{children:e.map(e=>(0,G.jsxs)(XN,{value:e.value,onSelect:e=>{n?.(e===t?``:e),l(!1)},children:[(0,G.jsx)(Ct,{className:X(`mr-2 h-4 w-4`,t===e.value?`opacity-100`:`opacity-0`)}),e.label]},e.value))})]})]})})]})}var IL=[{value:`equals`,label:`Equals`},{value:`notEquals`,label:`Does not equal`},{value:`contains`,label:`Contains`},{value:`notContains`,label:`Does not contain`},{value:`isEmpty`,label:`Is empty`},{value:`isNotEmpty`,label:`Is not empty`},{value:`greaterThan`,label:`Greater than`},{value:`lessThan`,label:`Less than`},{value:`greaterOrEqual`,label:`Greater than or equal`},{value:`lessOrEqual`,label:`Less than or equal`},{value:`before`,label:`Before`},{value:`after`,label:`After`},{value:`between`,label:`Between`},{value:`in`,label:`In`},{value:`notIn`,label:`Not in`}],LL=[`equals`,`notEquals`,`contains`,`notContains`,`isEmpty`,`isNotEmpty`],RL=[`equals`,`notEquals`,`greaterThan`,`lessThan`,`greaterOrEqual`,`lessOrEqual`,`isEmpty`,`isNotEmpty`],zL=[`equals`,`notEquals`],BL=[`equals`,`notEquals`,`before`,`after`,`between`,`isEmpty`,`isNotEmpty`],VL=[`equals`,`notEquals`,`in`,`notIn`,`isEmpty`,`isNotEmpty`],HL=[`equals`,`notEquals`,`in`,`notIn`,`isEmpty`,`isNotEmpty`],UL=[`number`,`currency`,`percent`,`rating`],WL=[`date`,`datetime`,`time`],GL=[`select`,`status`],KL=[`lookup`,`master_detail`,`user`,`owner`];function qL(e){return Array.isArray(e)?e:e!=null&&e!==``?[e]:[]}function JL(e){return!!e&&typeof e==`object`&&Array.isArray(e.conditions)&&(e.logic===`and`||e.logic===`or`)}var YL={id:`root`,logic:`and`,conditions:[]};function XL({fields:e=[],value:t,onChange:n,className:r,showClearAll:i=!0}){let[a,o]=W.useState(JL(t)?t:YL);W.useEffect(()=>{JL(t)&&JSON.stringify(t)!==JSON.stringify(a)&&o(t)},[t]);let s=e=>{o(e),n?.(e)},c=()=>{let t={id:crypto.randomUUID(),field:e[0]?.value||``,operator:`equals`,value:``};s({...a,conditions:[...a.conditions,t]})},l=e=>{s({...a,conditions:a.conditions.filter(t=>t.id!==e)})},u=()=>{s({...a,conditions:[]})},d=(e,t)=>{s({...a,conditions:a.conditions.map(n=>n.id===e?{...n,...t}:n)})},f=()=>{s({...a,logic:a.logic===`and`?`or`:`and`})},p=t=>{let n=e.find(e=>e.value===t)?.type||`text`;return UL.includes(n)?IL.filter(e=>RL.includes(e.value)):n===`boolean`?IL.filter(e=>zL.includes(e.value)):WL.includes(n)?IL.filter(e=>BL.includes(e.value)):GL.includes(n)?IL.filter(e=>VL.includes(e.value)):KL.includes(n)?IL.filter(e=>HL.includes(e.value)):IL.filter(e=>LL.includes(e.value))},m=e=>![`isEmpty`,`isNotEmpty`].includes(e),h=t=>{let n=e.find(e=>e.value===t)?.type||`text`;return UL.includes(n)?`number`:n===`date`?`date`:n===`datetime`?`datetime-local`:n===`time`?`time`:`text`},g=t=>{let n=e.find(e=>e.value===t.field),r=[`in`,`notIn`].includes(t.operator);if(KL.includes(n?.type||``)&&!n?.options&&(n?.referenceTo||n?.type===`user`||n?.type===`owner`))return(0,G.jsx)(ZL,{field:n,value:t.value,multiple:r,onChange:e=>d(t.id,{value:e})});if(n?.options&&r){let e=qL(t.value);return(0,G.jsx)(`div`,{className:`max-h-40 overflow-y-auto space-y-0.5 border rounded-md p-2`,children:n.options.map(n=>{let r=e.map(String).includes(String(n.value));return(0,G.jsxs)(`label`,{className:X(`flex items-center gap-2 text-sm py-1 px-1.5 rounded cursor-pointer`,r?`bg-primary/5 text-primary`:`hover:bg-muted`),children:[(0,G.jsx)(jN,{checked:r,onCheckedChange:r=>{let i=r?[...e,n.value]:e.filter(e=>String(e)!==String(n.value));d(t.id,{value:i})}}),(0,G.jsx)(`span`,{className:`truncate`,children:n.label})]},n.value)})})}if(n?.options&&(GL.includes(n.type||``)||KL.includes(n.type||``)))return(0,G.jsxs)(RF,{value:String(t.value||``),onValueChange:e=>d(t.id,{value:e}),children:[(0,G.jsx)(BF,{className:`h-9 text-sm`,children:(0,G.jsx)(zF,{placeholder:`Select value`})}),(0,G.jsx)(UF,{children:n.options.map(e=>(0,G.jsx)(GF,{value:e.value,children:e.label},e.value))})]});if(n?.type===`boolean`)return(0,G.jsxs)(RF,{value:String(t.value||``),onValueChange:e=>d(t.id,{value:e===`true`}),children:[(0,G.jsx)(BF,{className:`h-9 text-sm`,children:(0,G.jsx)(zF,{placeholder:`Select value`})}),(0,G.jsxs)(UF,{children:[(0,G.jsx)(GF,{value:`true`,children:`True`}),(0,G.jsx)(GF,{value:`false`,children:`False`})]})]});let i=h(t.field),a=()=>t.value?i===`date`&&typeof t.value==`string`?t.value.split(`T`)[0]:String(t.value):``,o=e=>{let r=e;UL.includes(n?.type||``)&&e!==``?r=parseFloat(e)||0:WL.includes(n?.type||``)&&(r=e),d(t.id,{value:r})};return(0,G.jsx)(ZP,{type:i,className:`h-9 text-sm`,placeholder:`Value`,value:a(),onChange:e=>o(e.target.value)})};return(0,G.jsxs)(`div`,{className:X(`space-y-3`,r),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium`,children:`Where`}),a.conditions.length>1&&(0,G.jsx)(Z,{variant:`outline`,size:`sm`,onClick:f,className:`h-7 text-xs`,children:a.logic.toUpperCase()})]}),i&&a.conditions.length>0&&(0,G.jsxs)(Z,{variant:`ghost`,size:`sm`,onClick:u,className:`h-7 text-xs text-muted-foreground hover:text-destructive`,children:[(0,G.jsx)(Sn,{className:`h-3 w-3 mr-1`}),`Clear all`]})]}),(0,G.jsx)(`div`,{className:`space-y-2`,children:a.conditions.map(t=>(0,G.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex-1 grid grid-cols-12 gap-2`,children:[(0,G.jsx)(`div`,{className:`col-span-4`,children:(0,G.jsxs)(RF,{value:t.field,onValueChange:e=>d(t.id,{field:e}),children:[(0,G.jsx)(BF,{className:`h-9 text-sm`,children:(0,G.jsx)(zF,{placeholder:`Select field`})}),(0,G.jsx)(UF,{children:e.map(e=>(0,G.jsx)(GF,{value:e.value,children:e.label},e.value))})]})}),(0,G.jsx)(`div`,{className:`col-span-4`,children:(0,G.jsxs)(RF,{value:t.operator,onValueChange:e=>d(t.id,{operator:e}),children:[(0,G.jsx)(BF,{className:`h-9 text-sm`,children:(0,G.jsx)(zF,{placeholder:`Operator`})}),(0,G.jsx)(UF,{children:p(t.field).map(e=>(0,G.jsx)(GF,{value:e.value,children:e.label},e.value))})]})}),m(t.operator)&&(0,G.jsx)(`div`,{className:`col-span-4`,children:g(t)})]}),(0,G.jsxs)(Z,{variant:`ghost`,size:`icon`,className:`h-9 w-9 shrink-0`,onClick:()=>l(t.id),children:[(0,G.jsx)(At,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Remove condition`})]})]},t.id))}),(0,G.jsxs)(Z,{variant:`outline`,size:`sm`,onClick:c,className:`h-8`,disabled:e.length===0,children:[(0,G.jsx)(Kt,{className:`h-3 w-3`}),`Add filter`]})]})}XL.displayName=`FilterBuilder`;function ZL({field:e,value:t,multiple:n,onChange:r}){let i=W.useContext(Vj)?.dataSource??null,a=e.referenceTo||(e.type===`user`||e.type===`owner`?`users`:void 0),o=e.displayField||`name`,s=e.idField||`id`,[c,l]=W.useState(!1),[u,d]=W.useState(``),[f,p]=W.useState([]),[m,h]=W.useState(!1),[g,_]=W.useState(null),[v,y]=W.useState({}),b=W.useRef(null),x=W.useMemo(()=>n?qL(t).map(e=>String(e)):t==null||t===``?[]:[String(t)],[t,n]),S=i!=null&&typeof i.find==`function`&&!!a,C=W.useCallback(e=>{let t=e?.[s]??e?.id??e?._id,n=e?.[o]??e?.label??e?.name??String(t);return{value:t,label:String(n)}},[o,s]),w=W.useCallback(async e=>{if(S){h(!0),_(null);try{let t={$top:50};e&&e.trim()&&(t.$search=e.trim());let n=await i.find(a,t),r=(n?.data??n??[]).map(C);p(r),r.length>0&&y(e=>{let t={...e};for(let e of r)t[String(e.value)]=e.label;return t})}catch(e){_(e instanceof Error?e.message:String(e)),p([])}finally{h(!1)}}},[i,a,S,C]);W.useEffect(()=>{if(!S||x.length===0)return;let e=x.filter(e=>!(e in v));if(e.length===0)return;let t=!1;return(async()=>{try{let n=await i.find(a,{$top:e.length,$filter:{[s]:{$in:e}}}),r=n?.data??n??[];if(t)return;y(e=>{let t={...e};for(let e of r){let n=C(e);t[String(n.value)]=n.label}return t})}catch{}})(),()=>{t=!0}},[x,S,i,a,s,C,v]),W.useEffect(()=>{c&&S&&f.length===0&&w()},[c]);let T=e=>{d(e),S&&(b.current&&clearTimeout(b.current),b.current=setTimeout(()=>w(e||void 0),300))},E=e=>{if(n){let n=qL(t);r(n.map(String).includes(String(e))?n.filter(t=>String(t)!==String(e)):[...n,e])}else r(e),l(!1)};return S?(0,G.jsxs)(DF,{open:c,onOpenChange:l,children:[(0,G.jsx)(OF,{asChild:!0,children:(0,G.jsxs)(`button`,{type:`button`,className:X(`inline-flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-background px-3 text-sm`,`hover:bg-accent hover:text-accent-foreground`,`focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-1`),"data-testid":`lookup-picker-${e.value}`,children:[x.length===0?(0,G.jsxs)(`span`,{className:`text-muted-foreground truncate`,children:[`Search `,e.label,`…`]}):n?(0,G.jsx)(`span`,{className:`truncate`,children:x.length===1?v[x[0]]||x[0]:`${x.length} selected`}):(0,G.jsx)(`span`,{className:`truncate`,children:v[x[0]]||x[0]}),(0,G.jsxs)(`span`,{className:`flex items-center gap-1 shrink-0`,children:[x.length>0&&(0,G.jsx)(At,{className:`h-3.5 w-3.5 opacity-60 hover:opacity-100`,onClick:e=>{e.stopPropagation(),r(n?[]:``)}}),(0,G.jsx)(nt,{className:`h-3.5 w-3.5 opacity-60`})]})]})}),(0,G.jsxs)(kF,{align:`start`,className:`w-72 p-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center border-b px-3`,children:[(0,G.jsx)(st,{className:`h-4 w-4 text-muted-foreground shrink-0`}),(0,G.jsx)(`input`,{autoFocus:!0,value:u,onChange:e=>T(e.target.value),placeholder:`Search ${e.label}…`,className:`flex h-9 w-full bg-transparent px-2 py-1 text-sm outline-none placeholder:text-muted-foreground`,"data-testid":`lookup-search-${e.value}`}),m&&(0,G.jsx)(dt,{className:`h-3.5 w-3.5 animate-spin text-muted-foreground`})]}),(0,G.jsxs)(`div`,{className:`max-h-64 overflow-y-auto p-1`,"data-testid":`lookup-options-${e.value}`,children:[g&&(0,G.jsx)(`div`,{className:`px-3 py-2 text-xs text-destructive`,children:g}),!g&&!m&&f.length===0&&(0,G.jsx)(`div`,{className:`px-3 py-4 text-center text-xs text-muted-foreground`,children:`No results`}),f.map(e=>{let t=x.includes(String(e.value));return(0,G.jsxs)(`label`,{className:X(`flex items-center gap-2 px-2 py-1.5 rounded text-sm cursor-pointer`,t?`bg-primary/5 text-primary`:`hover:bg-muted`),children:[n?(0,G.jsx)(jN,{checked:t,onCheckedChange:()=>E(e.value)}):(0,G.jsx)(`input`,{type:`radio`,checked:t,onChange:()=>E(e.value),className:`rounded-full border-input`}),(0,G.jsx)(`span`,{className:`truncate flex-1`,children:e.label})]},String(e.value))})]})]})]}):(0,G.jsx)(ZP,{className:`h-9 text-sm`,placeholder:`Enter ${e.label} id`,value:x[0]??``,onChange:e=>r(e.target.value)})}function QL(){try{let{t:e}=pM(),t=e(`detail.noValue`);return!t||t===`detail.noValue`?`No value`:t}catch{return`No value`}}M(`flex shrink-0 items-center justify-center mb-2 [&_svg]:pointer-events-none [&_svg]:shrink-0`,{variants:{variant:{default:`bg-transparent`,icon:`bg-muted text-foreground flex size-10 shrink-0 items-center justify-center rounded-lg [&_svg:not([class*='size-'])]:size-6`}},defaultVariants:{variant:`default`}});function $L({className:e,glyph:t=`—`,...n}){return(0,G.jsx)(`span`,{"data-slot":`empty-value`,"aria-label":QL(),className:X(`select-none text-muted-foreground/50 no-underline pointer-events-none`,e),...n,children:t})}var eR=M(`space-y-2`),tR=W.forwardRef(({className:e,label:t,description:n,error:r,required:i,htmlFor:a,children:o,...s},c)=>{let l=W.useId(),u=a||l,d=`${u}-description`,f=`${u}-error`;return(0,G.jsxs)(`div`,{ref:c,className:X(eR(),e),...s,children:[t&&(0,G.jsx)(NP,{htmlFor:u,className:X(r&&`text-destructive`,i&&`after:content-['*'] after:ml-0.5 after:text-destructive`),children:t}),(0,G.jsx)(x,{id:u,"aria-describedby":[n&&d,r&&f].filter(Boolean).join(` `)||void 0,"aria-invalid":!!r,children:o}),n&&!r&&(0,G.jsx)(`p`,{id:d,className:`text-[0.8rem] text-muted-foreground`,children:n}),r&&(0,G.jsx)(`p`,{id:f,className:`text-[0.8rem] font-medium text-destructive`,children:r})]})});tR.displayName=`Field`;var nR=W.forwardRef(({className:e,startContent:t,endContent:n,children:r,...i},a)=>(0,G.jsxs)(`div`,{ref:a,className:X(`flex w-full items-center rounded-md border border-input bg-transparent ring-offset-background focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2`,`has-[[data-invalid]]:border-destructive`,e),...i,children:[t&&(0,G.jsx)(`div`,{className:`flex items-center px-3 text-muted-foreground bg-muted/50 border-r h-full self-stretch rounded-l-md`,children:t}),(0,G.jsx)(`div`,{className:`flex-1 relative [&_input]:border-0 [&_input]:shadow-none [&_input]:focus-visible:ring-0 [&_input]:bg-transparent`,children:r}),n&&(0,G.jsx)(`div`,{className:`flex items-center px-3 text-muted-foreground bg-muted/50 border-l h-full self-stretch rounded-r-md`,children:n})]}));nR.displayName=`InputGroup`,M(`group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]`,{variants:{variant:{default:`bg-transparent`,outline:`border-border`,muted:`bg-muted/50`},size:{default:`p-4 gap-4 `,sm:`py-3 px-4 gap-2.5`}},defaultVariants:{variant:`default`,size:`default`}}),M(`flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5`,{variants:{variant:{default:`bg-transparent`,icon:`size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4`,image:`size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover`}},defaultVariants:{variant:`default`}});var rR=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsx)(`select`,{className:X(`flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50`,e),ref:r,...n,children:t}));rR.displayName=`NativeSelect`;function iR(e){if(e!=null)return typeof e==`number`?`${e}px`:e}function aR(e){let t=iR(e);return t?{"--ov-w":t}:{}}var oR=360,sR=.95;function cR(e){let[t,n]=W.useState(null),r=W.useRef(!1);return W.useEffect(()=>{if(!(!e||typeof window>`u`))try{let t=window.localStorage.getItem(`ov:${e}`);if(!t)return;let r=Number(t);Number.isFinite(r)&&r>=oR&&n(r)}catch{}},[e]),{width:t,handleMouseDown:W.useCallback(t=>{if(!e||typeof window>`u`)return;t.preventDefault(),r.current=!0;let i=Math.floor(window.innerWidth*sR);document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`;let a=e=>{r.current&&n(Math.min(i,Math.max(oR,window.innerWidth-e.clientX)))},o=()=>{r.current=!1,document.body.style.cursor=``,document.body.style.userSelect=``,window.removeEventListener(`mousemove`,a),window.removeEventListener(`mouseup`,o),n(t=>{if(t!=null)try{window.localStorage.setItem(`ov:${e}`,String(t))}catch{}return t})};window.addEventListener(`mousemove`,a),window.addEventListener(`mouseup`,o)},[e]),handleDoubleClick:W.useCallback(()=>{if(!(!e||typeof window>`u`)){n(null);try{window.localStorage.removeItem(`ov:${e}`)}catch{}}},[e]),enabled:!!e}}var lR=({isOpen:e,selectedRecord:t,mode:n,close:r,setIsOpen:i,width:a,view:o,title:s,description:c,className:l,children:u,renderView:d,mainContent:f,popoverTrigger:p,onExpand:m,expandLabel:h=`Open as full page`,storageKey:g})=>{if(n===`page`||n===`new_window`||n===`none`||!t)return null;let _=aR(a),v=s||`Record Detail`,y=cR(n===`drawer`?g:void 0),b=iR(a)??`42rem`,x=y.width==null?{"--ov-w":`max(${b}, min(60vw, 880px))`}:{"--ov-w":`${y.width}px`},S=e=>d&&o?d(e,o):u(e);if(n===`drawer`)return(0,G.jsx)(JF,{open:e,onOpenChange:i,children:(0,G.jsxs)(eI,{side:`right`,className:X(`w-screen max-w-none sm:w-full sm:max-w-[var(--ov-w,42rem)] p-0 flex flex-col gap-0 overflow-hidden`,`[&>button:last-of-type]:hidden`,l),style:x,children:[y.enabled&&(0,G.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize drawer`,onMouseDown:y.handleMouseDown,onDoubleClick:y.handleDoubleClick,className:`hidden sm:block absolute left-0 top-0 bottom-0 z-30 w-1 cursor-col-resize bg-transparent hover:bg-primary/40 active:bg-primary/60 transition-colors`,style:{touchAction:`none`}}),(0,G.jsxs)(tI,{className:`shrink-0 flex-row items-center justify-between gap-2 space-y-0 px-4 py-2 border-b bg-muted/30`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(rI,{className:`truncate text-xs font-medium tracking-wide text-muted-foreground`,children:v}),c&&(0,G.jsx)(iI,{className:`truncate text-xs`,children:c})]}),(0,G.jsxs)(`div`,{className:`flex shrink-0 items-center gap-0.5`,children:[m&&(0,G.jsx)(`button`,{type:`button`,onClick:m,"aria-label":h,title:h,className:`inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:(0,G.jsx)(Ze,{className:`h-3.5 w-3.5`})}),(0,G.jsx)(XF,{asChild:!0,children:(0,G.jsx)(`button`,{type:`button`,"aria-label":`Close`,title:`Close`,className:`inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground transition-colors hover:bg-accent hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring`,children:(0,G.jsx)(At,{className:`h-3.5 w-3.5`})})})]})]}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 overflow-y-auto`,children:S(t)})]})});if(n===`modal`)return(0,G.jsx)(FN,{open:e,onOpenChange:i,children:(0,G.jsxs)(zN,{className:X(`w-[calc(100vw-1rem)] max-w-none sm:max-w-[var(--ov-w,42rem)] max-h-[90vh] overflow-y-auto`,l),style:_,children:[m&&(0,G.jsx)(`button`,{type:`button`,onClick:m,"aria-label":h,title:h,className:`absolute right-12 top-4 z-10 inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-accent hover:text-accent-foreground transition-colors`,children:(0,G.jsx)(Ze,{className:`h-4 w-4`})}),(0,G.jsxs)(BN,{children:[(0,G.jsx)(HN,{children:v}),c&&(0,G.jsx)(UN,{children:c})]}),(0,G.jsx)(`div`,{className:`mt-4`,children:S(t)})]})});if(n===`split`){if(!e||!f)return null;let n=a&&typeof a==`number`?Math.min(70,Math.max(20,a/1200*100)):40,i=100-n;return(0,G.jsxs)(NF,{direction:`horizontal`,className:X(`h-full`,l),children:[(0,G.jsx)(PF,{defaultSize:i,minSize:30,children:f}),(0,G.jsx)(FF,{withHandle:!0}),(0,G.jsx)(PF,{defaultSize:n,minSize:20,children:(0,G.jsxs)(`div`,{className:`h-full overflow-y-auto p-4`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,G.jsx)(`h3`,{className:`text-lg font-semibold`,children:v}),(0,G.jsx)(`button`,{onClick:r,className:`rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,"aria-label":`Close panel`,children:(0,G.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,width:`16`,height:`16`,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`,children:[(0,G.jsx)(`line`,{x1:`18`,y1:`6`,x2:`6`,y2:`18`}),(0,G.jsx)(`line`,{x1:`6`,y1:`6`,x2:`18`,y2:`18`})]})})]}),c&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground mb-4`,children:c}),S(t)]})})]})}return n===`popover`?p?(0,G.jsxs)(DF,{open:e,onOpenChange:i,children:[p&&(0,G.jsx)(OF,{asChild:!0,children:p}),(0,G.jsx)(kF,{className:X(`w-96 max-h-[400px] overflow-y-auto p-4`,l),style:_,children:(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`h4`,{className:`text-sm font-semibold`,children:v}),c&&(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:c}),S(t)]})})]}):e?(0,G.jsx)(FN,{open:e,onOpenChange:i,children:(0,G.jsxs)(zN,{className:X(`w-96 max-h-[80vh] overflow-y-auto p-4`,l),style:_,children:[(0,G.jsxs)(BN,{children:[(0,G.jsx)(HN,{className:`text-sm`,children:v}),c&&(0,G.jsx)(UN,{className:`text-xs`,children:c})]}),(0,G.jsx)(`div`,{className:`mt-2`,children:S(t)})]})}):null:null};lR.displayName=`NavigationOverlay`;function uR({className:e,...t}){return(0,G.jsx)(`div`,{role:`status`,"aria-label":`Loading`,className:X(`flex items-center justify-center`,e),...t,children:(0,G.jsx)(dt,{className:`animate-spin text-muted-foreground w-full h-full min-w-4 min-h-4`})})}var dR=({params:e,open:t,onSubmit:n,onCancel:r,title:i=`Action Parameters`,description:a=`Please provide the required parameters.`})=>{let[o,s]=(0,W.useState)(()=>{let t={};return e.forEach(e=>{e.defaultValue===void 0?t[e.name]=e.type===`boolean`?!1:``:t[e.name]=e.defaultValue}),t}),[c,l]=(0,W.useState)({}),u=(0,W.useCallback)((e,t)=>{s(n=>({...n,[e]:t})),l(t=>{let n={...t};return delete n[e],n})},[]),d=(0,W.useCallback)(()=>{let t={};if(e.forEach(e=>{if(e.required){let n=o[e.name];(n==null||n===``)&&(t[e.name]=`${e.label} is required`)}}),Object.keys(t).length>0){l(t);return}n(o)},[e,o,n]);return(0,G.jsx)(FN,{open:t,onOpenChange:e=>{e||r()},children:(0,G.jsxs)(zN,{className:`sm:max-w-[425px]`,children:[(0,G.jsxs)(BN,{children:[(0,G.jsx)(HN,{children:i}),(0,G.jsx)(UN,{children:a})]}),(0,G.jsx)(`div`,{className:`space-y-4 py-4`,children:e.map(e=>{let t=o[e.name],n=c[e.name];switch(e.type){case`textarea`:return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(NP,{htmlFor:e.name,children:[e.label,e.required&&(0,G.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,G.jsx)(aL,{id:e.name,value:t||``,onChange:t=>u(e.name,t.target.value),placeholder:e.placeholder}),e.helpText&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.helpText}),n&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:n})]},e.name);case`number`:return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(NP,{htmlFor:e.name,children:[e.label,e.required&&(0,G.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,G.jsx)(ZP,{id:e.name,type:`number`,value:t??``,onChange:t=>u(e.name,Number.isNaN(t.target.valueAsNumber)?``:t.target.valueAsNumber),placeholder:e.placeholder}),e.helpText&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.helpText}),n&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:n})]},e.name);case`boolean`:return(0,G.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,G.jsx)(jN,{id:e.name,checked:!!t,onCheckedChange:t=>u(e.name,!!t)}),(0,G.jsx)(NP,{htmlFor:e.name,children:e.label}),e.helpText&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground ml-2`,children:e.helpText})]},e.name);case`select`:return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(NP,{htmlFor:e.name,children:[e.label,e.required&&(0,G.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,G.jsxs)(RF,{value:t||``,onValueChange:t=>u(e.name,t),children:[(0,G.jsx)(BF,{children:(0,G.jsx)(zF,{placeholder:e.placeholder||`Select...`})}),(0,G.jsx)(UF,{children:e.options?.map(e=>(0,G.jsx)(GF,{value:e.value,children:e.label},e.value))})]}),e.helpText&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.helpText}),n&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:n})]},e.name);case`date`:return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(NP,{htmlFor:e.name,children:[e.label,e.required&&(0,G.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,G.jsx)(ZP,{id:e.name,type:`date`,value:t||``,onChange:t=>u(e.name,t.target.value)}),e.helpText&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.helpText}),n&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:n})]},e.name);default:return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(NP,{htmlFor:e.name,children:[e.label,e.required&&(0,G.jsx)(`span`,{className:`text-destructive ml-1`,children:`*`})]}),(0,G.jsx)(ZP,{id:e.name,type:`text`,value:t||``,onChange:t=>u(e.name,t.target.value),placeholder:e.placeholder}),e.helpText&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.helpText}),n&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:n})]},e.name)}})}),(0,G.jsxs)(VN,{children:[(0,G.jsx)(Z,{variant:`outline`,onClick:r,children:`Cancel`}),(0,G.jsx)(Z,{onClick:d,children:`Continue`})]})]})})};dR.displayName=`ActionParamDialog`;var fR={"zh-CN":{addToFavorites:`加入收藏`,removeFromFavorites:`从收藏移除`,copyRecordId:`复制记录 ID`,copied:`已复制`},"zh-TW":{addToFavorites:`加入收藏`,removeFromFavorites:`從收藏移除`,copyRecordId:`複製記錄 ID`,copied:`已複製`}},pR=()=>{if(typeof document<`u`){let e=document.documentElement?.lang;if(e)return e}return typeof navigator<`u`&&navigator.language?navigator.language:`en`},mR=(e,t)=>{let n=pR(),r=fR[n],i=n.split(`-`)[0],a=r||(i===`zh`?fR[`zh-CN`]:void 0);return a&&a[e]||t},hR=({title:e,icon:t,objectLabel:n,resourceId:r,showStar:i=!0,showCopyId:a=!0,isFavorite:o,onToggleFavorite:s,className:c,inlineExtras:l})=>{let[u,d]=W.useState(!1),[f,p]=W.useState(!1),m=o??u,h=W.useCallback(()=>{let e=!m;s&&s(e),o===void 0&&d(e)},[m,o,s]),g=W.useCallback(()=>{if(r)try{typeof navigator<`u`&&navigator.clipboard&&navigator.clipboard.writeText(r),p(!0),setTimeout(()=>p(!1),1500)}catch{}},[r]),_=m?mR(`removeFromFavorites`,`Remove from favourites`):mR(`addToFavorites`,`Add to favourites`),v=f?mR(`copied`,`Copied`):mR(`copyRecordId`,`Copy record ID`);return(0,G.jsx)(cI,{children:(0,G.jsx)(`div`,{className:X(`flex flex-col min-w-0`,c),children:(0,G.jsxs)(`div`,{className:`flex items-baseline gap-2 flex-wrap`,children:[t&&(0,G.jsx)(`span`,{className:`text-muted-foreground shrink-0 self-center`,"aria-hidden":!0,children:t}),(0,G.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold truncate`,children:e}),n&&(0,G.jsx)(`span`,{className:`text-xs font-medium tracking-wide text-muted-foreground/70 shrink-0`,children:n}),a&&r&&(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-5 w-5 shrink-0 text-muted-foreground/50 hover:text-foreground`,onClick:g,"aria-label":v,children:f?(0,G.jsx)(Ct,{className:`h-3 w-3 text-green-600`}):(0,G.jsx)(yt,{className:`h-3 w-3`})})}),(0,G.jsx)(dI,{children:v})]}),i&&(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0`,onClick:h,"aria-label":_,"aria-pressed":m,children:(0,G.jsx)(mt,{className:X(`h-4 w-4`,m?`fill-yellow-400 text-yellow-400`:`text-muted-foreground`)})})}),(0,G.jsx)(dI,{children:_})]}),l]})})})},gR=!1;function _R(){if(gR||typeof document>`u`)return;let e=`objui-refresh-indicator-kf`;if(document.getElementById(e)){gR=!0;return}let t=document.createElement(`style`);t.id=e,t.textContent=`
|
|
44
|
+
@keyframes objui-refresh-bar {
|
|
45
|
+
0% { transform: translateX(-100%); }
|
|
46
|
+
100% { transform: translateX(400%); }
|
|
47
|
+
}
|
|
48
|
+
`,document.head.appendChild(t),gR=!0}var vR=({active:e,ariaLabel:t=`Refreshing`,className:n,...r})=>(W.useEffect(()=>{e&&_R()},[e]),e?(0,G.jsx)(`div`,{className:X(`pointer-events-none absolute inset-x-0 top-0 z-20 h-0.5 overflow-hidden`,n),role:`progressbar`,"aria-busy":`true`,"aria-label":t,"data-testid":`refresh-indicator`,...r,children:(0,G.jsx)(`div`,{className:`h-full w-1/4 rounded-full bg-primary/70`,style:{animation:`objui-refresh-bar 1.1s ease-in-out infinite`}})}):null);vR.displayName=`RefreshIndicator`;function yR({className:e,icon:t,illustration:n,showIcon:r=!0,iconWrapperClassName:i,title:a=`No data`,description:o,action:s,children:c,...l}){let u=r&&(t!=null||!n);return(0,G.jsxs)(`div`,{"data-slot":`data-empty-state`,className:X(`flex flex-col items-center justify-center gap-3 p-6 text-center`,e),...l,children:[n&&(0,G.jsx)(`div`,{"data-slot":`data-empty-state-illustration`,className:`motion-safe:animate-in motion-safe:fade-in-0 motion-safe:zoom-in-95 motion-safe:duration-300 [&_svg]:max-h-40 [&_svg]:w-auto`,"aria-hidden":!0,children:n}),u&&(0,G.jsx)(`div`,{"data-slot":`data-empty-state-icon`,className:X(i??`flex size-10 items-center justify-center rounded-lg bg-muted`),children:t??(0,G.jsx)(Et,{className:`size-5 text-muted-foreground`})}),a&&(0,G.jsx)(`h3`,{className:`text-sm font-medium`,children:a}),o&&(0,G.jsx)(`p`,{className:`max-w-sm text-sm text-muted-foreground`,children:o}),s,c]})}var bR=W.forwardRef(({className:e,children:t,...n},r)=>(0,G.jsxs)(LN,{children:[(0,G.jsx)(RN,{}),(0,G.jsxs)(Ee,{ref:r,className:X(`fixed inset-0 z-50 w-full bg-background p-4 shadow-lg duration-200`,`h-[100dvh]`,`sm:inset-auto sm:left-[50%] sm:top-[50%] sm:translate-x-[-50%] sm:translate-y-[-50%]`,`sm:max-w-lg sm:h-auto sm:max-h-[90vh] sm:rounded-lg sm:border sm:p-6`,`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-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%]`,`data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%]`,e),...n,children:[t,(0,G.jsxs)(Ae,{className:X(`absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity`,`hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2`,`disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground`,`min-h-[44px] min-w-[44px] sm:min-h-0 sm:min-w-0 flex items-center justify-center`),children:[(0,G.jsx)(At,{className:`h-5 w-5 sm:h-4 sm:w-4`}),(0,G.jsx)(`span`,{className:`sr-only`,children:`Close`})]})]})]}));bR.displayName=`MobileDialogContent`,Y.register(`combobox`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(FL,{options:e.options||[],placeholder:e.placeholder,value:e.value,disabled:e.disabled,className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i})},{namespace:`ui`,label:`Combobox`,inputs:[{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`value`,type:`string`,label:`Value`},{name:`disabled`,type:`boolean`,label:`Disabled`,defaultValue:!1},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{placeholder:`Select option...`,options:[]}}),Y.register(`command`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsxs)(WN,{className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:[(0,G.jsx)(GN,{placeholder:e.placeholder||`Type a command or search...`}),(0,G.jsxs)(KN,{children:[(0,G.jsx)(qN,{children:e.emptyText||`No results found.`}),e.groups?.map((e,t)=>(0,G.jsx)(JN,{heading:e.heading,children:e.items?.map((e,t)=>(0,G.jsx)(XN,{value:e.value,children:e.label},t))},t))]})]})},{namespace:`ui`,label:`Command`,inputs:[{name:`placeholder`,type:`string`,label:`Placeholder`},{name:`emptyText`,type:`string`,label:`Empty Text`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{placeholder:`Type a command or search...`,emptyText:`No results found.`,groups:[]}});var xR=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n,c=e.clickable||!!n.onClick;return(0,G.jsxs)(uN,{ref:r,className:X(t,(e.hoverable||c)&&`transition-colors hover:bg-muted/50`,c&&`cursor-pointer active:bg-muted`),...s,"data-obj-id":i,"data-obj-type":a,style:o,children:[(e.title||e.description||e.header)&&(0,G.jsxs)(dN,{children:[e.title&&(0,G.jsx)(fN,{children:e.title}),e.description&&(0,G.jsx)(pN,{children:e.description}),e.header&&EM(e.header)]}),(e.children||e.body)&&(0,G.jsx)(mN,{children:EM(e.children||e.body)}),e.footer&&(0,G.jsx)(hN,{className:`flex justify-between`,children:EM(e.footer)})]})});Y.register(`card`,xR,{namespace:`ui`,label:`Card`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`Card Title`,description:`Card description goes here`,className:`w-full`},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:200,minHeight:100}}),Y.register(`tabs`,({schema:e,className:t,onChange:n,value:r,...i})=>{let{"data-obj-id":a,"data-obj-type":o,style:s,...c}=i,l=e=>{n&&n(e)},u=e.orientation===`vertical`;return(0,G.jsxs)(tL,{defaultValue:r===void 0?e.defaultValue:void 0,value:r??e.value,onValueChange:l,orientation:e.orientation||`horizontal`,className:X(t,u&&`flex gap-2`),...c,"data-obj-id":a,"data-obj-type":o,style:s,children:[(0,G.jsx)(nL,{className:X(u&&`flex-col h-auto items-stretch bg-muted/50 p-1`),children:e.items?.map(e=>(0,G.jsx)(rL,{value:e.value,disabled:e.disabled,className:X(u&&`justify-start`),children:e.label},e.value))}),e.items?.map(e=>(0,G.jsx)(iL,{value:e.value,className:X(`mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,u&&`mt-0 flex-1`),children:EM(e.content||e.body)},e.value))]})},{namespace:`ui`,label:`Tabs`,inputs:[{name:`defaultValue`,type:`string`,label:`Default Value`,required:!0},{name:`className`,type:`string`,label:`CSS Class`},{name:`items`,type:`array`,label:`Items`}],defaultProps:{defaultValue:`tab1`,items:[{label:`Tab 1`,value:`tab1`,body:[{type:`text`,content:`Content for Tab 1`}]},{label:`Tab 2`,value:`tab2`,body:[{type:`text`,content:`Content for Tab 2`}]},{label:`Tab 3`,value:`tab3`,body:[{type:`text`,content:`Content for Tab 3`}]}],className:`w-full`}});var SR={1:`grid-cols-1`,2:`grid-cols-2`,3:`grid-cols-3`,4:`grid-cols-4`,5:`grid-cols-5`,6:`grid-cols-6`,7:`grid-cols-7`,8:`grid-cols-8`,9:`grid-cols-9`,10:`grid-cols-10`,11:`grid-cols-11`,12:`grid-cols-12`},CR={1:`sm:grid-cols-1`,2:`sm:grid-cols-2`,3:`sm:grid-cols-3`,4:`sm:grid-cols-4`,5:`sm:grid-cols-5`,6:`sm:grid-cols-6`,7:`sm:grid-cols-7`,8:`sm:grid-cols-8`,9:`sm:grid-cols-9`,10:`sm:grid-cols-10`,11:`sm:grid-cols-11`,12:`sm:grid-cols-12`},wR={1:`md:grid-cols-1`,2:`md:grid-cols-2`,3:`md:grid-cols-3`,4:`md:grid-cols-4`,5:`md:grid-cols-5`,6:`md:grid-cols-6`,7:`md:grid-cols-7`,8:`md:grid-cols-8`,9:`md:grid-cols-9`,10:`md:grid-cols-10`,11:`md:grid-cols-11`,12:`md:grid-cols-12`},TR={1:`lg:grid-cols-1`,2:`lg:grid-cols-2`,3:`lg:grid-cols-3`,4:`lg:grid-cols-4`,5:`lg:grid-cols-5`,6:`lg:grid-cols-6`,7:`lg:grid-cols-7`,8:`lg:grid-cols-8`,9:`lg:grid-cols-9`,10:`lg:grid-cols-10`,11:`lg:grid-cols-11`,12:`lg:grid-cols-12`},ER={1:`xl:grid-cols-1`,2:`xl:grid-cols-2`,3:`xl:grid-cols-3`,4:`xl:grid-cols-4`,5:`xl:grid-cols-5`,6:`xl:grid-cols-6`,7:`xl:grid-cols-7`,8:`xl:grid-cols-8`,9:`xl:grid-cols-9`,10:`xl:grid-cols-10`,11:`xl:grid-cols-11`,12:`xl:grid-cols-12`},DR={0:`gap-0`,1:`gap-1`,2:`gap-2`,3:`gap-3`,4:`gap-4`,5:`gap-5`,6:`gap-6`,8:`gap-8`,10:`gap-10`,12:`gap-12`};Y.register(`grid`,({schema:e,className:t,...n})=>{let r=2,i,a,o,s;typeof e.columns==`number`?r=e.columns:typeof e.columns==`object`&&e.columns!==null&&(r=e.columns.xs??1,i=e.columns.sm,a=e.columns.md,o=e.columns.lg,s=e.columns.xl),e.smColumns&&(i=e.smColumns),e.mdColumns&&(a=e.mdColumns),e.lgColumns&&(o=e.lgColumns),e.xlColumns&&(s=e.xlColumns);let c=e.gap??4,l=X(`grid`,SR[r]||`grid-cols-2`,i&&CR[i],a&&wR[a],o&&TR[o],s&&ER[s],DR[c]||`gap-[${c*.25}rem]`,t),{"data-obj-id":u,"data-obj-type":d,style:f,...p}=n;return(0,G.jsx)(`div`,{className:l,...p,"data-obj-id":u,"data-obj-type":d,style:f,children:e.children&&EM(e.children)})},{namespace:`ui`,label:`Grid Layout`,inputs:[{name:`columns`,type:`number`,label:`Base Columns (Mobile)`,defaultValue:2,description:`Number of columns on mobile devices`},{name:`smColumns`,type:`number`,label:`SM Columns (Tablet)`,description:`Columns at sm breakpoint (>640px)`},{name:`mdColumns`,type:`number`,label:`MD Columns (Laptop)`,description:`Columns at md breakpoint (>768px)`},{name:`lgColumns`,type:`number`,label:`LG Columns (Desktop)`,description:`Columns at lg breakpoint (>1024px)`},{name:`xlColumns`,type:`number`,label:`XL Columns (Wide)`,description:`Columns at xl breakpoint (>1280px)`},{name:`gap`,type:`number`,label:`Gap`,defaultValue:4,description:`Gap between items (0-12)`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{columns:1,mdColumns:2,lgColumns:4,gap:4,children:[{type:`card`,title:`Card 1`,description:`First card`},{type:`card`,title:`Card 2`,description:`Second card`},{type:`card`,title:`Card 3`,description:`Third card`},{type:`card`,title:`Card 4`,description:`Fourth card`}]},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:200,minHeight:100}}),Y.register(`flex`,({schema:e,className:t,...n})=>{let r=e.direction||`row`,i=e.justify||`start`,a=e.align||`start`,o=e.gap||2,s=e.wrap||!1,c=X(`flex`,r===`row`&&`flex-row`,r===`col`&&`flex-col`,r===`row-reverse`&&`flex-row-reverse`,r===`col-reverse`&&`flex-col-reverse`,i===`start`&&`justify-start`,i===`end`&&`justify-end`,i===`center`&&`justify-center`,i===`between`&&`justify-between`,i===`around`&&`justify-around`,i===`evenly`&&`justify-evenly`,a===`start`&&`items-start`,a===`end`&&`items-end`,a===`center`&&`items-center`,a===`baseline`&&`items-baseline`,a===`stretch`&&`items-stretch`,o===0&&`gap-0`,o===1&&`gap-1`,o===2&&`gap-1.5 sm:gap-2`,o===3&&`gap-2 sm:gap-3`,o===4&&`gap-2 sm:gap-3 md:gap-4`,o===5&&`gap-3 sm:gap-4 md:gap-5`,o===6&&`gap-3 sm:gap-4 md:gap-6`,o===7&&`gap-4 sm:gap-5 md:gap-7`,o===8&&`gap-4 sm:gap-6 md:gap-8`,s&&`flex-wrap`,t),{"data-obj-id":l,"data-obj-type":u,style:d,...f}=n;return(0,G.jsx)(`div`,{className:c,...f,"data-obj-id":l,"data-obj-type":u,style:d,children:e.children&&EM(e.children)})},{namespace:`ui`,label:`Flex Layout`,inputs:[{name:`direction`,type:`enum`,enum:[`row`,`col`,`row-reverse`,`col-reverse`],label:`Direction`,defaultValue:`row`},{name:`justify`,type:`enum`,enum:[`start`,`end`,`center`,`between`,`around`,`evenly`],label:`Justify Content`,defaultValue:`start`},{name:`align`,type:`enum`,enum:[`start`,`end`,`center`,`baseline`,`stretch`],label:`Align Items`,defaultValue:`start`},{name:`gap`,type:`number`,label:`Gap`,defaultValue:2,description:`Gap between items (0-8)`},{name:`wrap`,type:`boolean`,label:`Wrap`,defaultValue:!1,description:`Allow flex items to wrap`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{direction:`row`,justify:`start`,align:`center`,gap:2,wrap:!1,children:[{type:`button`,label:`Button 1`},{type:`button`,label:`Button 2`},{type:`button`,label:`Button 3`}]}});var OR=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let i=e.direction||`col`,a=e.justify||`start`,o=e.align||`stretch`,s=e.gap??e.spacing??2,c=e.wrap||!1,l=X(`flex`,i===`row`&&`flex-row`,i===`col`&&`flex-col`,i===`row-reverse`&&`flex-row-reverse`,i===`col-reverse`&&`flex-col-reverse`,a===`start`&&`justify-start`,a===`end`&&`justify-end`,a===`center`&&`justify-center`,a===`between`&&`justify-between`,a===`around`&&`justify-around`,a===`evenly`&&`justify-evenly`,o===`start`&&`items-start`,o===`end`&&`items-end`,o===`center`&&`items-center`,o===`baseline`&&`items-baseline`,o===`stretch`&&`items-stretch`,s===0&&`gap-0`,s===1&&`gap-1`,s===2&&`gap-1.5 sm:gap-2`,s===3&&`gap-2 sm:gap-3`,s===4&&`gap-2 sm:gap-3 md:gap-4`,s===5&&`gap-3 sm:gap-4 md:gap-5`,s===6&&`gap-3 sm:gap-4 md:gap-6`,s===8&&`gap-4 sm:gap-6 md:gap-8`,s===10&&`gap-5 sm:gap-7 md:gap-10`,c&&`flex-wrap`,t),{"data-obj-id":u,"data-obj-type":d,style:f,...p}=n;return(0,G.jsx)(`div`,{ref:r,className:l,...p,"data-obj-id":u,"data-obj-type":d,style:f,children:e.children&&EM(e.children)})});Y.register(`stack`,OR,{namespace:`ui`,label:`Stack`,inputs:[{name:`direction`,type:`enum`,label:`Direction`,enum:[`col`,`row`,`col-reverse`,`row-reverse`],defaultValue:`col`},{name:`gap`,type:`number`,label:`Gap`,defaultValue:2},{name:`align`,type:`enum`,label:`Align Items`,enum:[`start`,`end`,`center`,`stretch`,`baseline`],defaultValue:`stretch`},{name:`justify`,type:`enum`,label:`Justify Content`,enum:[`start`,`end`,`center`,`between`,`around`,`evenly`],defaultValue:`start`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{direction:`col`,gap:2,align:`stretch`,children:[]},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:100,minHeight:50}});var kR=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let i=e.maxWidth||`xl`,a=e.padding||4,o=e.centered!==!1,s=X(`w-full`,i===`sm`&&`max-w-sm`,i===`md`&&`max-w-md`,i===`lg`&&`max-w-lg`,i===`xl`&&`max-w-xl`,i===`2xl`&&`max-w-2xl`,i===`3xl`&&`max-w-3xl`,i===`4xl`&&`max-w-4xl`,i===`5xl`&&`max-w-5xl`,i===`6xl`&&`max-w-6xl`,i===`7xl`&&`max-w-7xl`,i===`full`&&`max-w-full`,i===`screen`&&`max-w-screen-2xl`,o&&`mx-auto`,a===0&&`p-0`,a===1&&`p-0.5 sm:p-1`,a===2&&`p-1 sm:p-2`,a===3&&`p-2 sm:p-3`,a===4&&`p-2 sm:p-3 md:p-4`,a===5&&`p-3 sm:p-4 md:p-5`,a===6&&`p-3 sm:p-4 md:p-6`,a===7&&`p-4 sm:p-5 md:p-7`,a===8&&`p-4 sm:p-6 md:p-8`,a===10&&`p-5 sm:p-7 md:p-10`,a===12&&`p-6 sm:p-8 md:p-12`,a===16&&`p-8 sm:p-10 md:p-16`,t),{"data-obj-id":c,"data-obj-type":l,style:u,...d}=n;return(0,G.jsx)(`div`,{ref:r,className:s,...d,"data-obj-id":c,"data-obj-type":l,style:u,children:e.children&&EM(e.children)})});Y.register(`container`,kR,{namespace:`ui`,label:`Container`,inputs:[{name:`maxWidth`,type:`enum`,enum:[`sm`,`md`,`lg`,`xl`,`2xl`,`3xl`,`4xl`,`5xl`,`6xl`,`7xl`,`full`,`screen`],label:`Max Width`,defaultValue:`xl`},{name:`padding`,type:`number`,label:`Padding`,defaultValue:4,description:`Padding value (0, 1-8, 10, 12, 16)`},{name:`centered`,type:`boolean`,label:`Center Horizontally`,defaultValue:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{maxWidth:`xl`,padding:4,centered:!0,children:[{type:`text`,content:`Container content goes here`}]},isContainer:!0,resizable:!0,resizeConstraints:{width:!0,height:!0,minWidth:200,minHeight:100}});function AR(e){switch(e){case`small`:return`w-64`;case`medium`:return`w-80`;case`large`:return`w-96`;case`full`:return`w-full`;default:return e||`w-full`}}function jR(e){switch(e){case`utility`:return`max-w-4xl`;case`home`:return`max-w-screen-2xl`;case`app`:return`max-w-screen-xl`;default:return`max-w-7xl`}}function MR(e,t){return e?.find(e=>e.name?.toLowerCase()===t.toLowerCase())}function NR(e,t){if(!e)return[];let n=new Set(t.map(e=>e.toLowerCase()));return e.filter(e=>!n.has(e.name?.toLowerCase()??``))}var PR=({region:e,className:t})=>{let n=e.components||[];return n.length===0?null:(0,G.jsx)(`div`,{className:X(`space-y-4`,e.className,t),"data-region":e.name,children:n.map((t,n)=>(0,G.jsx)(Yj,{schema:t},t?.id||`${e.name}-${n}`))})},FR=({regions:e,pageType:t,className:n})=>{let r=MR(e,`header`),i=MR(e,`sidebar`),a=MR(e,`main`),o=MR(e,`aside`),s=MR(e,`footer`),c=NR(e,[`header`,`sidebar`,`main`,`aside`,`footer`]);return r||i||a||o||s?(0,G.jsxs)(`div`,{className:X(`flex flex-col gap-6`,n),"data-page-layout":t,children:[r&&(0,G.jsx)(PR,{region:r,className:X(AR(r.width))}),(0,G.jsxs)(`div`,{className:`flex flex-1 gap-6`,children:[i&&(0,G.jsx)(`aside`,{className:X(`shrink-0`,AR(i.width||`small`)),children:(0,G.jsx)(PR,{region:i})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-6`,children:[a&&(0,G.jsx)(PR,{region:a}),c.map((e,t)=>(0,G.jsx)(PR,{region:e},e.name||`extra-${t}`))]}),o&&(0,G.jsx)(`aside`,{className:X(`shrink-0`,AR(o.width||`small`),o.className),children:(0,G.jsx)(PR,{region:o})})]}),s&&(0,G.jsx)(PR,{region:s,className:X(AR(s.width))})]}):(0,G.jsx)(`div`,{className:X(`space-y-6`,n),"data-page-layout":t,children:e.map((e,t)=>(0,G.jsx)(PR,{region:e},e.name||t))})},IR=({schema:e})=>{let t=e.body||e.children,n=Array.isArray(t)?t:t?[t]:[];return n.length===0?null:(0,G.jsx)(`div`,{className:`space-y-6`,children:n.map((e,t)=>(0,G.jsx)(Yj,{schema:e},e?.id||t))})},LR=({schema:e})=>e.regions&&e.regions.length>0?(0,G.jsx)(FR,{regions:e.regions,pageType:e.pageType}):(0,G.jsx)(IR,{schema:e}),RR={default:LR,"full-width":LR,"header-sidebar-main":({schema:e})=>{let t=e.regions||[];if(t.length===0)return(0,G.jsx)(IR,{schema:e});let n=MR(t,`header`),r=MR(t,`sidebar`),i=MR(t,`main`),a=NR(t,[`header`,`sidebar`,`main`]);return(0,G.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-template":`header-sidebar-main`,children:[n&&(0,G.jsx)(PR,{region:n}),(0,G.jsxs)(`div`,{className:`flex flex-1 gap-6`,children:[r&&(0,G.jsx)(`aside`,{className:X(`shrink-0`,AR(r.width||`medium`)),children:(0,G.jsx)(PR,{region:r})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-6`,children:[i&&(0,G.jsx)(PR,{region:i}),a.map((e,t)=>(0,G.jsx)(PR,{region:e},e.name||`extra-${t}`))]})]})]})},"three-column":({schema:e})=>{let t=e.regions||[];if(t.length===0)return(0,G.jsx)(IR,{schema:e});let n=MR(t,`header`),r=MR(t,`sidebar`),i=MR(t,`main`),a=MR(t,`aside`),o=MR(t,`footer`),s=NR(t,[`header`,`sidebar`,`main`,`aside`,`footer`]);return(0,G.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-template":`three-column`,children:[n&&(0,G.jsx)(PR,{region:n}),(0,G.jsxs)(`div`,{className:`flex flex-1 gap-6`,children:[r&&(0,G.jsx)(`aside`,{className:X(`shrink-0`,AR(r.width||`small`)),children:(0,G.jsx)(PR,{region:r})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 space-y-6`,children:[i&&(0,G.jsx)(PR,{region:i}),s.map((e,t)=>(0,G.jsx)(PR,{region:e},e.name||`extra-${t}`))]}),a&&(0,G.jsx)(`aside`,{className:X(`shrink-0`,AR(a.width||`small`),a.className),children:(0,G.jsx)(PR,{region:a})})]}),o&&(0,G.jsx)(PR,{region:o})]})},dashboard:({schema:e})=>{let t=e.regions||[];if(t.length===0)return(0,G.jsx)(IR,{schema:e});let n=MR(t,`header`),r=MR(t,`footer`),i=NR(t,[`header`,`footer`]);return(0,G.jsxs)(`div`,{className:`flex flex-col gap-6`,"data-template":`dashboard`,children:[n&&(0,G.jsx)(PR,{region:n}),(0,G.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:i.map((e,t)=>(0,G.jsx)(PR,{region:e},e.name||`region-${t}`))}),r&&(0,G.jsx)(PR,{region:r})]})}};function zR(e){return e.template&&RR[e.template]||null}var BR=({schema:e})=>e.regions&&e.regions.length>0?(0,G.jsx)(FR,{regions:e.regions,pageType:`record`}):(0,G.jsx)(IR,{schema:e}),VR=({schema:e})=>e.regions&&e.regions.length>0?(0,G.jsx)(FR,{regions:e.regions,pageType:`home`}):(0,G.jsx)(IR,{schema:e}),HR=({schema:e})=>e.regions&&e.regions.length>0?(0,G.jsx)(FR,{regions:e.regions,pageType:`app`}):(0,G.jsx)(IR,{schema:e}),UR=({schema:e})=>e.regions&&e.regions.length>0?(0,G.jsx)(FR,{regions:e.regions,pageType:`utility`}):(0,G.jsx)(IR,{schema:e}),WR=({schema:e,className:t,...n})=>{let r=e.pageType||`record`,{"data-obj-id":i,"data-obj-type":a,style:o,pageType:s,schema:c,regions:l,template:u,title:d,icon:f,description:p,object:m,variables:h,blankLayout:g,body:_,isDefault:v,assignedProfiles:y,aria:b,recordOverride:x,permissions:S,requiredPermissions:C,enforceFieldSecurity:w,redactFields:T,children:E,...ee}=n,D=Object.fromEntries(Object.entries(ee).filter(([e])=>!e.startsWith(`_`))),O=(0,W.useMemo)(()=>{let t=zR(e);if(t)return(0,G.jsx)(t,{schema:e});switch(r){case`home`:return(0,G.jsx)(VR,{schema:e});case`app`:return(0,G.jsx)(HR,{schema:e});case`utility`:return(0,G.jsx)(UR,{schema:e});default:return(0,G.jsx)(BR,{schema:e})}},[e,r]),k=(0,G.jsx)(`div`,{className:X(`min-h-full w-full bg-background p-3 md:p-4 lg:p-6`,t),"data-page-type":r,"data-obj-id":i,"data-obj-type":a,style:o,...D,children:(0,G.jsxs)(`div`,{className:X(`mx-auto space-y-6`,jR(r)),children:[r!==`record`&&(e.title||e.description)&&(0,G.jsxs)(`div`,{className:`space-y-2`,children:[e.title&&(0,G.jsx)(`h1`,{className:`text-3xl font-bold tracking-tight text-foreground`,children:e.title}),e.description&&(0,G.jsx)(`p`,{className:`text-muted-foreground`,children:e.description})]}),O]})});return e.variables&&e.variables.length>0?(0,G.jsx)(eM,{definitions:e.variables,children:k}):k},GR={namespace:`ui`,label:`Page`,icon:`Layout`,category:`layout`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`pageType`,type:`string`,label:`Page Type`},{name:`object`,type:`string`,label:`Object Name`},{name:`template`,type:`string`,label:`Template`},{name:`regions`,type:`array`,label:`Regions`,itemType:`object`},{name:`variables`,type:`array`,label:`Variables`,itemType:`object`},{name:`body`,type:`array`,label:`Content (Legacy)`,itemType:`component`}]};Y.register(`page`,WR,GR),Y.register(`app`,WR,{...GR,label:`App Page`}),Y.register(`utility`,WR,{...GR,label:`Utility Page`}),Y.register(`home`,WR,{...GR,label:`Home Page`}),Y.register(`record`,WR,{...GR,label:`Record Page`});function KR(e){return e.includes(`-`)?e.toLowerCase():e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).replace(/([A-Z]+)([A-Z][a-z])/g,`$1-$2`).toLowerCase()}var qR=new Set(tn);function JR(e){return qR.has(e)}var YR=new Map;function XR(e){if(!e)return Cn;let t=YR.get(e);if(t)return t;let n=KR(e);if(!JR(n))return YR.set(e,Cn),Cn;let r=e=>W.createElement(hn,{name:n,fallback:Cn,...e});return r.displayName=`LucideIcon(${e})`,YR.set(e,r),r}var ZR=({name:e,...t})=>{if(!e)return W.createElement(Cn,t);let n=KR(e);return JR(n)?W.createElement(hn,{name:n,fallback:Cn,...t}):W.createElement(Cn,t)},QR=new Map,$R=new Map,ez=new Set;function tz(e,t,n){return`${e}::${t??``}::${n??``}`}function nz(){for(let e of ez)e()}function rz(e,t,n){return QR.get(tz(e,t,n))}function iz(e,t,n,r){let i=tz(e,t,n);QR.get(i)!==r&&(QR.set(i,r),nz())}async function az(e,t,n,r){let i=tz(t,n,r),a=QR.get(i);if(a!==void 0)return a;let o=$R.get(i);if(o)return o;let s=(async()=>{let a={};if(n){if(!r)return 0;a[n]=r}try{let i=await e(t,{$filter:a,$top:1}),o=typeof i?.total==`number`?i.total:Array.isArray(i?.data)?i.data.length:Array.isArray(i)?i.length:0,s=typeof o==`number`?o:0;return iz(t,n,r,s),s}catch{return 0}finally{$R.delete(i)}})();return $R.set(i,s),s}function oz(e,t){let n=!1,r=`${e}::`;for(let e of QR.keys())e.startsWith(r)&&(t!==void 0&&!e.endsWith(`::${t}`)||(QR.delete(e),n=!0));n&&nz()}function sz(){QR.size!==0&&(QR.clear(),nz())}function cz(e){return ez.add(e),()=>{ez.delete(e)}}function lz(){return QR}function uz(e,t,n){if((0,W.useSyncExternalStore)(cz,lz,lz),e)return rz(e,t,n)}var dz={get:rz,set:iz,fetch:az,invalidate:oz,invalidateAll:sz,_reset:()=>{QR.clear(),$R.clear(),nz()}},fz=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},pz=e=>e==null?``:typeof e==`string`?e:typeof e==`object`?e.default||e.value||``:String(e),mz={"zh-CN":{Details:`详情`,Related:`相关`,Activity:`活动`,History:`历史`,Notes:`备注`,Files:`文件`,Tasks:`任务`,"Open Tasks":`待办任务`,"Closed Tasks":`已完成任务`,Events:`日程`,Attachments:`附件`,Chatter:`讨论`,Discussion:`讨论`,Comments:`评论`,Overview:`概览`,Summary:`摘要`,Quotes:`报价单`,Products:`产品`,Contacts:`联系人`,Accounts:`客户`,Leads:`线索`,Opportunities:`商机`,Cases:`服务案例`,Campaigns:`营销活动`,Approvals:`审批`,Documents:`文档`,Emails:`邮件`,Calls:`通话`,Meetings:`会议`},"zh-TW":{Details:`詳情`,Related:`相關`,Activity:`活動`,History:`歷史`,Notes:`備註`,Files:`檔案`,Tasks:`任務`,"Open Tasks":`待辦任務`,"Closed Tasks":`已完成任務`,Events:`行程`,Attachments:`附件`,Chatter:`討論`,Discussion:`討論`,Comments:`評論`,Overview:`概覽`,Summary:`摘要`,Quotes:`報價單`,Products:`產品`,Contacts:`聯絡人`,Accounts:`客戶`,Leads:`線索`,Opportunities:`商機`,Cases:`服務案例`,Campaigns:`行銷活動`,Approvals:`審批`,Documents:`文件`,Emails:`郵件`,Calls:`通話`,Meetings:`會議`}},hz=()=>{if(typeof document<`u`){let e=document.documentElement?.lang;if(e)return e}return typeof navigator<`u`&&navigator.language?navigator.language:`en`},gz=e=>{if(!e)return e;let t=hz(),n=mz[t],r=t.split(`-`)[0]===`zh`?mz[`zh-CN`]:void 0,i=n||r;if(!i)return e;if(i[e]!==void 0)return i[e];let a=/\s*(?:&|and|和)\s*/i;if(a.test(e)){let n=e.split(a);if(n.every(e=>i[e.trim()]!==void 0)){let e=t.startsWith(`zh`)?`与`:` & `;return n.map(e=>i[e.trim()]).join(e)}}return e},_z=(e,t,n,r,i)=>!e||typeof e!=`string`?e||``:e.includes(`{`)?e.replace(/\{([a-zA-Z0-9_.]+)\}/g,(e,a)=>{let o=a.split(`.`).reduce((e,t)=>e==null?e:e[t],t);if(o==null||typeof o==`object`)return``;let s=String(o);if(n?.fields&&r&&i&&!a.includes(`.`)){let e=(Array.isArray(n.fields)?n.fields.find(e=>e?.name===a):n.fields[a])?.options;if(Array.isArray(e)){let t=e.find(e=>String(e?.value??e)===s);return r(i,a,s,t?.label?String(t.label):s)}}return s}).replace(/\s+/g,` `).trim():e,vz=e=>{let t=typeof e==`number`?e:Number(e);return Number.isFinite(t)?t>=1e4?`${Math.round(t/1e3)}k`:t>=1e3?`${(t/1e3).toFixed(1).replace(/\.0$/,``)}k`:String(t):String(e)},yz=(e,t=[])=>{if(!e)return t;let n=Array.isArray(e)?e:[e];for(let e of n){if(!e||typeof e!=`object`)continue;if(e.type===`record:related_list`||e.type===`record_related_list`){t.push(e);continue}let n=[e.children,e.properties?.children,e.properties?.items,e.body,e.items];for(let e of n)e&&yz(e,t)}return t};Y.register(`page:tabs`,({schema:e,className:t,...n})=>{let{designer:r}=fz(n),i=e?.items||[],a=e?.properties?.type||e?.tabStyle||`line`,o=(e?.position||`top`)===`left`,s=dM(),c=s?.data?.id,l=s?.dataSource;uz(void 0,void 0,c);let u=W.useMemo(()=>{let e=new Map;return i.forEach((t,n)=>{if(t.count!==void 0&&t.count!==null&&t.count!==``)return;let r=yz(t.children),i=[];for(let e of r){let t=e?.properties?.objectName||e?.objectName;if(!t)continue;let n=e?.properties?.relationshipField||e?.relationshipField;i.push({objectName:t,relationshipField:n})}i.length>0&&e.set(n,i)}),e},[i]);W.useEffect(()=>{if(!l||typeof l.find!=`function`||u.size===0)return;let e=!1;for(let t of u.values())for(let n of t)if(dz.fetch((e,t)=>l.find(e,t),n.objectName,n.relationshipField,c).catch(()=>0),e)return;return()=>{e=!0}},[l,u,c]);let d=e=>{let t=u.get(e);if(!t||t.length===0)return;let n=0,r=!1;for(let e of t){let t=dz.get(e.objectName,e.relationshipField,c);t!==void 0&&(n+=t,r=!0)}return r?n:void 0},f=i.map((e,t)=>({...e,value:`tab-${t}`,labelStr:gz(pz(e.label)),count:e.count!==void 0&&e.count!==null&&e.count!==``?e.count:d(t)})),p=f[0]?.value,m=X(o&&`flex-col h-auto items-stretch p-1`,a===`card`&&`bg-transparent gap-1`,a===`pill`&&`bg-muted rounded-full p-1 gap-1`,a===`line`&&!o&&`h-auto rounded-none bg-transparent p-0 gap-4 border-b border-border w-full justify-start`,!o&&`sticky top-0 z-20 bg-background/95 backdrop-blur supports-[backdrop-filter]:bg-background/60`),h=()=>X(o&&`justify-start`,a===`card`&&`data-[state=active]:bg-background data-[state=active]:border data-[state=active]:shadow-sm rounded-md`,a===`pill`&&`rounded-full data-[state=active]:bg-background`,a===`line`&&!o&&`rounded-none border-b-2 border-transparent bg-transparent px-1 pb-2.5 -mb-px shadow-none data-[state=active]:border-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none data-[state=active]:text-foreground`);return(0,G.jsxs)(tL,{defaultValue:p,orientation:o?`vertical`:`horizontal`,className:X(t,o&&`flex gap-4 w-full`),...r,children:[(f.length>1||e?.properties?.alwaysShowStrip===!0)&&(0,G.jsx)(nL,{className:m,children:f.map(e=>(0,G.jsxs)(rL,{value:e.value,className:h(),children:[e.icon&&(0,G.jsx)(ZR,{name:e.icon,className:`mr-1.5 h-3.5 w-3.5 shrink-0 opacity-70`,"aria-hidden":!0}),(0,G.jsx)(`span`,{children:e.labelStr}),e.count!==void 0&&e.count!==null&&e.count!==``&&Number(e.count)>0&&(0,G.jsx)(`span`,{className:`ml-1.5 inline-flex h-4 min-w-[1rem] items-center justify-center rounded-full bg-muted px-1 text-[10px] font-medium leading-none text-muted-foreground`,"aria-label":`${vz(e.count)} items`,children:vz(e.count)})]},e.value))}),f.map(e=>(0,G.jsx)(iL,{value:e.value,className:X(f.length>1?`mt-3`:`mt-0`,o&&`mt-0 flex-1`),children:EM(e.children)},e.value))]})},{namespace:`page`,label:`Page Tabs`,category:`layout`,isContainer:!0}),Y.register(`page:card`,({schema:e,className:t,...n})=>{let{designer:r}=fz(n),i=pz(e?.title),a=e?.bordered!==!1,o=e?.body,s=e?.footer;return(0,G.jsxs)(uN,{className:X(t,!a&&`border-0 shadow-none bg-transparent`),...r,children:[i&&(0,G.jsx)(dN,{children:(0,G.jsx)(fN,{children:i})}),o&&(0,G.jsx)(mN,{children:EM(o)}),s&&(0,G.jsx)(hN,{className:`flex justify-between`,children:EM(s)})]})},{namespace:`page`,label:`Page Card`,category:`layout`,isContainer:!0}),Y.register(`page:accordion`,({schema:e,className:t,...n})=>{let{designer:r}=fz(n),i=e?.items||[],a=!!e?.allowMultiple,o=(e?.variant??e?.properties?.variant??`flush`)===`flush`?`border-b last:border-b-0`:void 0,s=i.map((e,t)=>({...e,value:`panel-${t}`,labelStr:gz(pz(e.label))})),c=s.filter(e=>e.collapsed===!1).map(e=>e.value),l=s.map(e=>(0,G.jsxs)(AM,{value:e.value,className:o,children:[(0,G.jsx)(jM,{className:`text-sm font-semibold tracking-tight hover:no-underline`,children:e.labelStr}),(0,G.jsx)(MM,{children:EM(e.children)})]},e.value));return a?(0,G.jsx)(kM,{type:`multiple`,defaultValue:c,className:t,...r,children:l}):(0,G.jsx)(kM,{type:`single`,collapsible:!0,defaultValue:c[0],className:t,...r,children:l})},{namespace:`page`,label:`Page Accordion`,category:`layout`,isContainer:!0}),Y.register(`page:section`,({schema:e,className:t,...n})=>{let{designer:r}=fz(n);return(0,G.jsx)(`section`,{className:X(`space-y-4`,t),...r,children:EM(e?.children||e?.body)})},{namespace:`page`,label:`Page Section`,category:`layout`,isContainer:!0});function bz(e){if(!e)return e;let t=e;for(let e=0;e<4;e+=1){let e=t.replace(/[\s\u00A0]*[-·:|/–—][\s\u00A0]*$/u,``).trimEnd();if(e===t)break;t=e}for(let e=0;e<4;e+=1){let e=t.replace(/^[\s\u00A0]*[-·:|/–—][\s\u00A0]*/u,``).trimStart();if(e===t)break;t=e}return t=t.replace(/([-·:|/–—])[\s\u00A0]*\1/gu,`$1`),t=t.replace(/[\s\u00A0]+/g,` `).trim(),t}Y.register(`page:header`,({schema:e,className:t,...n})=>{let{designer:r}=fz(n),i=dM(),{execute:a}=sM(),{objectLabel:o,actionLabel:s}=gM(),{fieldOptionLabel:c}=vM(),l=e?.title??e?.properties?.title,u=e?.subtitle??e?.properties?.subtitle,d=i?.objectSchema,f=i?.objectName||d?.name,p=_z(pz(l),i?.data,d,c,f),m=_z(pz(u),i?.data,d,c,f),h=(e?.breadcrumb??e?.properties?.breadcrumb)!==!1,g=e?.recordChrome===!1||e?.properties?.recordChrome===!1,_=e?.showStar!==!1&&e?.properties?.showStar!==!1,v=e?.showCopyId!==!1&&e?.properties?.showCopyId!==!1,y=e?.actions??e?.properties?.actions,b=i?.headerSystemActions,x=W.useMemo(()=>{let e=i?.data,t=new Cj({record:e,data:e}),n=e=>{try{return t.evaluateExpression(e)}catch{return}},r=e=>{if(Array.isArray(e?.locations)&&e.locations.length>0&&!e.locations.includes(`record_header`))return!1;let t=e?.visible;if(t!=null)if(typeof t==`boolean`){if(!t)return!1}else{let e=typeof t==`string`?t:t&&typeof t==`object`&&typeof t.source==`string`?t.source:null;if(e&&!n(e))return!1}let r=e?.hidden;if(r!=null)if(typeof r==`boolean`){if(r)return!1}else{let e=typeof r==`string`?r:r&&typeof r==`object`&&typeof r.source==`string`?r.source:null;if(e&&n(e))return!1}return!0},a=Array.isArray(y)?y.filter(r):[],o=Array.isArray(b)?b.filter(r):[],s=new Set,c=[];for(let e of[...a,...o]){let t=e?.name||e?.id||``;t&&s.has(t)||(t&&s.add(t),c.push(e))}return c},[y,b,i?.data]),S=()=>{if(x.length===0)return null;let e=(e,t)=>{let n=e?.name||e?.id,r=e?.label||n||`Action ${t+1}`;return n?s(i?.objectName,n,r):r},t=x.length>2,n=t?x.slice(0,1):x,r=t?x.slice(1):[];return(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 shrink-0`,role:`toolbar`,"aria-label":`Page header actions`,children:[n.map((t,n)=>{let r=e(t,n),i=t.variant||`default`,o=t.size||`sm`,s=typeof t.disabled==`boolean`?t.disabled:void 0,c=typeof t.icon==`string`?t.icon:null;return(0,G.jsxs)(Z,{variant:i,size:o,disabled:s,className:`gap-2`,onClick:()=>{if(typeof t.onClick==`function`){t.onClick();return}a(t)},children:[c&&(0,G.jsx)(ZR,{name:c,className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:r})]},t.name||t.id||`header-action-${n}`)}),t&&(0,G.jsxs)(bP,{children:[(0,G.jsx)(xP,{asChild:!0,children:(0,G.jsx)(Z,{variant:`outline`,size:`sm`,className:`gap-1 px-2`,"aria-label":`More actions`,children:(0,G.jsx)($t,{className:`h-4 w-4`})})}),(0,G.jsx)(TP,{align:`end`,className:`w-44`,children:r.map((t,n)=>{let r=e(t,n+1),i=typeof t.disabled==`boolean`?t.disabled:void 0,o=typeof t.icon==`string`?t.icon:null;return(0,G.jsxs)(EP,{disabled:i,onSelect:e=>{if(e.preventDefault(),typeof t.onClick==`function`){t.onClick();return}a(t)},className:X(`gap-2`,(t.variant===`destructive`||t.name===`sys_delete`)&&`text-destructive focus:text-destructive focus:bg-destructive/10`),children:[o&&(0,G.jsx)(ZR,{name:o,className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:r})]},t.name||t.id||`overflow-action-${n}`)})})]})]})};if(i?.data&&i?.objectSchema&&!g){let e=i.data,n=i.objectSchema,a=i.objectName||n?.name,s=pz(n?.label)||n?.name||i.objectName||``,l=a?o({name:a,label:s}):s||void 0,u=n?.primaryField,d=n?.titleFormat,f=typeof d==`string`?d:d&&typeof d==`object`&&typeof d.source==`string`?d.source:void 0,g=f?bz(_z(f,e,n,c,a).trim()):``,y=p||u&&e?.[u]||(g&&!g.includes(`{`)?g:``)||e?.name||e?.full_name||e?.title||e?.subject||e?.display_name||e?.label||(l&&e?.id?`${l} ${String(e.id).slice(0,8)}`:``)||l||``;return(0,G.jsxs)(`header`,{className:X(`flex flex-col sm:flex-row items-start sm:items-center justify-between gap-3 sm:gap-4 pb-4 border-b`,t),...r,children:[(0,G.jsxs)(`div`,{className:`flex flex-col min-w-0 flex-1`,children:[h&&(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground mb-1`,"data-page-breadcrumb-slot":!0}),(0,G.jsx)(hR,{title:y,objectLabel:l,resourceId:e?.id?String(e.id):void 0,showStar:_,showCopyId:v,isFavorite:i?.isFavorite,onToggleFavorite:i?.onToggleFavorite?()=>i.onToggleFavorite():void 0}),m&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:m})]}),S()??(0,G.jsx)(`div`,{"data-page-actions-slot":!0,className:`shrink-0`})]})}return(0,G.jsxs)(`header`,{className:X(`flex flex-col gap-2 pb-4 border-b`,t),...r,children:[h&&(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground`,"data-page-breadcrumb-slot":!0}),(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col`,children:[p&&(0,G.jsx)(`h1`,{className:`text-2xl font-semibold tracking-tight`,children:p}),m&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:m})]}),S()??(0,G.jsx)(`div`,{"data-page-actions-slot":!0})]})]})},{namespace:`page`,label:`Page Header`,category:`layout`}),Y.register(`page:footer`,({schema:e,className:t,...n})=>{let{designer:r}=fz(n);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(qF,{className:`my-4`}),(0,G.jsx)(`footer`,{className:X(`flex items-center justify-between text-sm text-muted-foreground`,t),...r,children:EM(e?.children||e?.body)})]})},{namespace:`page`,label:`Page Footer`,category:`layout`,isContainer:!0}),Y.register(`page:sidebar`,({schema:e,className:t,...n})=>{let{designer:r}=fz(n);return(0,G.jsx)(`aside`,{className:X(`flex flex-col gap-4 w-full md:w-80 shrink-0`,t),...r,children:EM(e?.children||e?.body)})},{namespace:`page`,label:`Page Sidebar`,category:`layout`,isContainer:!0}),[`aside`,`main`,`header`,`nav`,`footer`,`section`,`article`].forEach(e=>{let t=(0,W.forwardRef)(({schema:t,className:n,...r},i)=>{let{"data-obj-id":a,"data-obj-type":o,style:s,...c}=r;return(0,G.jsx)(e,{ref:i,className:n,...c,"data-obj-id":a,"data-obj-type":o,style:s,children:EM(t.children||t.body)})});t.displayName=`Semantic${e.charAt(0).toUpperCase()+e.slice(1)}`,Y.register(e,t,{namespace:`ui`,label:e.charAt(0).toUpperCase()+e.slice(1),category:`layout`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}]})}),Y.register(`aspect-ratio`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(YM,{ratio:e.ratio||16/9,className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.image?(0,G.jsx)(`img`,{src:e.image,alt:e.alt||``,loading:`lazy`,className:`rounded-md object-cover w-full h-full`}):EM(e.children||e.body)})},{namespace:`ui`,label:`Aspect Ratio`,inputs:[{name:`ratio`,type:`number`,label:`Ratio`,defaultValue:16/9},{name:`image`,type:`string`,label:`Image URL`},{name:`alt`,type:`string`,label:`Alt Text`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{ratio:16/9}}),Y.register(`sidebar-provider`,({schema:e,...t})=>(0,G.jsx)(bI,{...t,children:EM(e.body)}),{namespace:`ui`,label:`Sidebar Provider`,inputs:[{name:`defaultOpen`,type:`boolean`,label:`Default Open`,defaultValue:!0}],defaultProps:{defaultOpen:!0},defaultChildren:[{type:`sidebar`},{type:`sidebar-inset`}]}),Y.register(`sidebar`,({schema:e,...t})=>(0,G.jsx)(xI,{...t,children:EM(e.body)}),{namespace:`ui`,label:`Sidebar`,inputs:[{name:`collapsible`,type:`enum`,enum:[`offcanvas`,`icon`,`none`],defaultValue:`icon`,label:`Collapsible`},{name:`side`,type:`enum`,enum:[`left`,`right`],defaultValue:`left`,label:`Side`},{name:`variant`,type:`enum`,enum:[`sidebar`,`floating`,`inset`],defaultValue:`sidebar`,label:`Variant`}],defaultProps:{collapsible:`icon`,side:`left`,variant:`sidebar`},defaultChildren:[{type:`sidebar-header`},{type:`sidebar-content`},{type:`sidebar-footer`}]}),Y.register(`sidebar-header`,({schema:e,...t})=>(0,G.jsx)(EI,{...t,children:EM(e.body)}),{namespace:`ui`,label:`Sidebar Header`,defaultChildren:[{type:`text`,content:`Sidebar Header`}]}),Y.register(`sidebar-content`,({schema:e,...t})=>(0,G.jsx)(kI,{...t,children:EM(e.body)}),{namespace:`ui`,label:`Sidebar Content`,defaultChildren:[{type:`sidebar-group`}]}),Y.register(`sidebar-group`,({schema:e,...t})=>(0,G.jsxs)(AI,{...t,children:[e.label&&(0,G.jsx)(jI,{children:e.label}),(0,G.jsx)(NI,{children:EM(e.body)})]}),{namespace:`ui`,label:`Sidebar Group`,inputs:[{name:`label`,type:`string`,label:`Label`}],defaultProps:{label:`Menu`},defaultChildren:[{type:`sidebar-menu`}]}),Y.register(`sidebar-menu`,({schema:e,...t})=>(0,G.jsx)(PI,{...t,children:EM(e.body)}),{namespace:`ui`,label:`Sidebar Menu`,defaultChildren:[{type:`sidebar-menu-item`},{type:`sidebar-menu-item`}]}),Y.register(`sidebar-menu-item`,({schema:e,...t})=>(0,G.jsx)(FI,{...t,children:EM(e.body)}),{namespace:`ui`,label:`Sidebar Menu Item`,defaultChildren:[{type:`sidebar-menu-button`}]}),Y.register(`sidebar-menu-button`,({schema:e,...t})=>(0,G.jsx)(LI,{isActive:e.active,...t,children:EM(e.body)}),{namespace:`ui`,label:`Sidebar Menu Button`,inputs:[{name:`active`,type:`boolean`,label:`Active`,defaultValue:!1},{name:`size`,type:`enum`,enum:[`default`,`sm`,`lg`],defaultValue:`default`,label:`Size`},{name:`tooltip`,type:`string`,label:`Tooltip`}],defaultProps:{size:`default`},defaultChildren:[{type:`text`,content:`Menu Item`}]}),Y.register(`sidebar-footer`,({schema:e,...t})=>(0,G.jsx)(DI,{...t,children:EM(e.body)}),{namespace:`ui`,label:`Sidebar Footer`,defaultChildren:[{type:`text`,content:`Footer`}]}),Y.register(`sidebar-inset`,({schema:e,...t})=>(0,G.jsx)(wI,{...t,children:EM(e.body)}),{namespace:`ui`,label:`Sidebar Inset`,defaultChildren:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Main content area`}]}]}),Y.register(`sidebar-trigger`,({className:e,...t})=>(0,G.jsx)(SI,{className:e,...t}),{namespace:`ui`,label:`Sidebar Trigger`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}]});function xz({crumb:e,isLast:t}){let n=Uj(e.label)??``;return e.siblings&&e.siblings.length>0?(0,G.jsxs)(bP,{children:[(0,G.jsxs)(xP,{className:`flex items-center gap-1`,children:[t?(0,G.jsx)(`span`,{className:`font-semibold`,children:n}):(0,G.jsx)(`span`,{children:n}),(0,G.jsx)(nt,{className:`h-3 w-3`})]}),(0,G.jsx)(TP,{align:`start`,children:e.siblings.map((e,t)=>(0,G.jsx)(EP,{asChild:!0,children:(0,G.jsx)(`a`,{href:e.href,children:e.label})},t))})]}):t?(0,G.jsx)(aN,{children:n}):(0,G.jsx)(iN,{href:e.href||`#`,children:n})}Y.register(`header-bar`,({schema:e})=>(0,G.jsxs)(`header`,{className:`flex h-14 sm:h-16 shrink-0 items-center gap-2 border-b px-3 sm:px-4`,children:[(0,G.jsx)(SI,{}),(0,G.jsx)(qF,{orientation:`vertical`,className:`mr-2 h-4`}),(0,G.jsx)(tN,{children:(0,G.jsx)(nN,{children:e.crumbs?.map((t,n)=>(0,G.jsxs)(W.Fragment,{children:[(0,G.jsx)(rN,{children:(0,G.jsx)(xz,{crumb:t,isLast:n===e.crumbs.length-1})}),n<e.crumbs.length-1&&(0,G.jsx)(oN,{})]},n))})}),(0,G.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[e.search?.enabled&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(st,{className:`absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground`}),(0,G.jsx)(ZP,{type:`search`,placeholder:e.search.placeholder,className:`pl-8 w-[200px] lg:w-[300px]`}),e.search.shortcut&&(0,G.jsx)(`kbd`,{className:`pointer-events-none absolute right-2 top-2 hidden h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium opacity-100 sm:flex`,children:e.search.shortcut})]}),e.actions?.map((e,t)=>(0,G.jsx)(Yj,{schema:e},t)),e.rightContent&&(0,G.jsx)(Yj,{schema:e.rightContent})]})]}),{namespace:`ui`,label:`Header Bar`,inputs:[{name:`crumbs`,type:`array`,label:`Breadcrumbs`},{name:`search`,type:`object`,label:`Search Configuration`},{name:`actions`,type:`array`,label:`Action Slots`},{name:`rightContent`,type:`object`,label:`Right Content`}],defaultProps:{crumbs:[{label:`Home`,href:`#`},{label:`Current Page`}]}}),Y.register(`badge`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(eN,{variant:e.variant,className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.label||EM(e.body)})},{namespace:`ui`,label:`Badge`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`variant`,type:`enum`,enum:[`default`,`secondary`,`destructive`,`outline`],defaultValue:`default`,label:`Variant`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{label:`Badge`,variant:`default`}}),Y.register(`avatar`,({schema:e,className:t,...n})=>(0,G.jsxs)(XM,{className:t,...n,children:[(0,G.jsx)(ZM,{src:e.src,alt:e.alt}),(0,G.jsx)(QM,{children:e.fallback})]}),{namespace:`ui`,label:`Avatar`,inputs:[{name:`src`,type:`string`,label:`Image URL`},{name:`alt`,type:`string`,label:`Alt Text`},{name:`fallback`,type:`string`,label:`Fallback Initials`,defaultValue:`CN`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{fallback:`CN`,alt:`Avatar`}}),Y.register(`alert`,({schema:e,className:t,...n})=>(0,G.jsxs)(KM,{variant:e.variant,className:t,...n,children:[(0,G.jsx)(qM,{children:e.title}),(0,G.jsx)(JM,{children:e.description||EM(e.body)})]}),{namespace:`ui`,label:`Alert`,inputs:[{name:`title`,type:`string`,label:`Title`,required:!0},{name:`description`,type:`string`,label:`Description`},{name:`variant`,type:`enum`,enum:[`default`,`destructive`],defaultValue:`default`,label:`Variant`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`Alert Title`,description:`This is an alert message.`,variant:`default`}}),Y.register(`list`,({schema:e,className:t,...n})=>{let r=Hj(e.bind),i=Array.isArray(r)?r:Array.isArray(e.items)?e.items:[],a=e.ordered?`ol`:`ul`,o=e.ordered?`list-decimal`:`list-disc`;return(0,G.jsxs)(`div`,{className:X(`space-y-2`,e.wrapperClass),children:[e.title&&(0,G.jsx)(`h3`,{className:`text-lg font-semibold tracking-tight`,children:e.title}),(0,G.jsx)(a,{className:X(`ml-6 [&>li]:mt-2`,o,t),...n,children:i.map((e,t)=>(0,G.jsx)(`li`,{className:X(typeof e==`object`&&e.className),children:typeof e==`string`?e:e.content||EM(e.body)},t))})]})},{namespace:`ui`,label:`List`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`ordered`,type:`boolean`,label:`Ordered List (numbered)`,defaultValue:!1},{name:`items`,type:`array`,label:`List Items`,description:`Array of strings or objects with content/body`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{ordered:!1,items:[`First item`,`Second item`,`Third item`],className:`text-sm`}});var Sz=({node:e,onNodeClick:t})=>{let[n,r]=(0,W.useState)(!1),i=e.children&&e.children.length>0;return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsxs)(`div`,{className:X(`group flex items-center py-1.5 px-2 rounded-sm cursor-pointer transition-colors`,`hover:bg-accent hover:text-accent-foreground`,n&&i&&`bg-accent/50`),onClick:()=>{t&&t(e)},children:[i?(0,G.jsx)(`button`,{onClick:e=>{e.stopPropagation(),r(!n)},className:`mr-2 p-0.5 h-5 w-5 flex items-center justify-center rounded-sm hover:bg-muted text-muted-foreground transition-colors`,children:(0,G.jsx)(n?nt:Xe,{className:`h-4 w-4`})}):(0,G.jsx)(`span`,{className:`mr-2 w-5 flex justify-center`,children:(0,G.jsx)(`div`,{className:`w-1 h-1 rounded-full bg-muted-foreground/50`})}),e.icon===`folder`||i?n?(0,G.jsx)(It,{className:`h-4 w-4 mr-2 text-primary`}):(0,G.jsx)(Je,{className:`h-4 w-4 mr-2 text-muted-foreground group-hover:text-primary transition-colors`}):(0,G.jsx)(nn,{className:`h-4 w-4 mr-2 text-muted-foreground group-hover:text-primary transition-colors`}),(0,G.jsx)(`span`,{className:X(`text-sm transition-colors`,n?`font-medium text-foreground`:`text-muted-foreground group-hover:text-foreground`),children:e.label})]}),i&&n&&(0,G.jsx)(`div`,{className:`relative ml-[11px] pl-3 border-l border-border animate-in slide-in-from-left-2 fade-in duration-200`,children:e.children.map(e=>(0,G.jsx)(Sz,{node:e,onNodeClick:t},e.id))})]})};Y.register(`tree-view`,({schema:e,className:t,...n})=>{let r=t=>{e.onNodeClick&&e.onNodeClick(t)},i=Hj(e.bind)||e.nodes||e.data||[],a=Array.isArray(i)?i:[];return(0,G.jsxs)(`div`,{className:X(`relative border rounded-lg p-3 bg-card text-card-foreground`,t),...n,children:[e.title&&(0,G.jsx)(`div`,{className:`flex items-center gap-2 mb-3 pb-2 border-b`,children:(0,G.jsx)(`h3`,{className:`text-sm font-semibold`,children:e.title})}),(0,G.jsx)(`div`,{className:`space-y-1`,children:a.map(e=>(0,G.jsx)(Sz,{node:e,onNodeClick:r},e.id))})]})},{namespace:`ui`,label:`Tree View`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`nodes`,type:`array`,label:`Tree Nodes`,description:`Array of { id, label, icon, children, data }`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`File Explorer`,nodes:[{id:`1`,label:`Documents`,icon:`folder`,children:[{id:`1-1`,label:`Resume.pdf`,icon:`file`},{id:`1-2`,label:`Cover Letter.docx`,icon:`file`}]},{id:`2`,label:`Photos`,icon:`folder`,children:[{id:`2-1`,label:`Vacation`,icon:`folder`,children:[{id:`2-1-1`,label:`Beach.jpg`,icon:`file`}]},{id:`2-2`,label:`Family.jpg`,icon:`file`}]},{id:`3`,label:`README.md`,icon:`file`}]}});var Cz=e=>e?XR(e):null;Y.register(`statistic`,({schema:e})=>{let t=e.icon?Cz(e.icon):null;return(0,G.jsxs)(`div`,{className:X(`group relative flex flex-col p-4 sm:p-5 md:p-6 rounded-xl border bg-card text-card-foreground shadow-sm`,e.className),children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[e.label&&(0,G.jsx)(`p`,{className:`text-sm font-medium text-muted-foreground`,children:e.label}),t&&(0,G.jsx)(t,{className:`h-4 w-4 text-muted-foreground`})]}),(0,G.jsx)(`div`,{className:`flex items-baseline gap-2`,children:(0,G.jsx)(`h3`,{className:`text-2xl font-bold tracking-tight`,children:e.value})}),(e.trend||e.description)&&(0,G.jsxs)(`div`,{className:`mt-1 flex items-center text-xs text-muted-foreground`,children:[e.trend===`up`&&(0,G.jsx)(Ot,{className:`mr-1 h-3 w-3 text-emerald-500`}),e.trend===`down`&&(0,G.jsx)(vn,{className:`mr-1 h-3 w-3 text-rose-500`}),e.trend===`neutral`&&(0,G.jsx)(yn,{className:`mr-1 h-3 w-3`}),(0,G.jsx)(`span`,{className:X(e.trend===`up`&&`text-emerald-500 font-medium`,e.trend===`down`&&`text-rose-500 font-medium`),children:e.description})]})]})},{namespace:`ui`,label:`Statistic`,category:`data-display`,icon:`Activity`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`value`,type:`string`,label:`Value`},{name:`description`,type:`string`,label:`Description`},{name:`trend`,type:`enum`,enum:[{label:`Up`,value:`up`},{label:`Down`,value:`down`},{label:`Neutral`,value:`neutral`}],label:`Trend`}],defaultProps:{label:`Total Revenue`,value:`$45,231.89`,trend:`up`,description:`+20.1% from last month`}}),Y.register(`breadcrumb`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(tN,{className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:(0,G.jsx)(nN,{children:e.items?.map((t,n)=>(0,G.jsxs)(`div`,{className:`flex items-center`,children:[(0,G.jsx)(rN,{children:n===(e.items?.length||0)-1?(0,G.jsx)(aN,{children:Uj(t.label)??``}):(0,G.jsx)(iN,{href:t.href,children:Uj(t.label)??``})}),n<(e.items?.length||0)-1&&(0,G.jsx)(oN,{})]},n))})})},{namespace:`ui`,label:`Breadcrumb`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{items:[{label:`Home`,href:`/`},{label:`Products`,href:`/products`},{label:`Product`}]}}),Y.register(`kbd`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t,o=Array.isArray(e.keys)?e.keys:[e.keys||e.label||`K`];return(0,G.jsx)(`div`,{className:X(`inline-flex flex-wrap gap-1`,e.className),children:o.map((e,t)=>(0,G.jsx)(`kbd`,{className:`pointer-events-none inline-flex h-5 select-none items-center gap-1 rounded border bg-muted px-1.5 font-mono text-[10px] font-medium text-muted-foreground opacity-100`,...a,...t===0?{"data-obj-id":n,"data-obj-type":r,style:i}:{},children:e},t))})},{namespace:`ui`,label:`Keyboard Key`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{label:`K`}}),Y.register(`table`,({schema:e,className:t})=>{let n=Hj(e.bind)||e.data||e.props?.data||[],r=Array.isArray(e.columns)?e.columns:Array.isArray(e.props?.columns)?e.props.columns:[];if(n&&!Array.isArray(n))return(0,G.jsx)(`div`,{className:`text-red-500 p-2 border border-red-200 bg-red-50 rounded text-sm`,children:`Table data must be an array`});let i=Array.isArray(n)?n:[];return(0,G.jsx)(`div`,{className:X(`rounded-md border`,t),children:(0,G.jsxs)(qI,{children:[(0,G.jsx)(JI,{children:(0,G.jsx)(ZI,{children:r.map((e,t)=>(0,G.jsx)(QI,{children:e.label||e.header},e.key||e.accessorKey||t))})}),(0,G.jsx)(YI,{children:i.length===0?(0,G.jsx)(ZI,{children:(0,G.jsx)($I,{colSpan:r.length,className:`h-24 text-center`,children:`No results.`})}):i.map((e,t)=>(0,G.jsx)(ZI,{children:r.map((t,n)=>{let r=t.key||t.accessorKey||``,i=r?e[r]:``;return(0,G.jsx)($I,{children:typeof i==`object`&&i?String(i):i},t.key||t.accessorKey||n)})},e.id||t))})]})})},{namespace:`ui`}),Y.register(`progress`,({schema:e,className:t,...n})=>(0,G.jsx)(AF,{value:e.value,className:t,...n}),{namespace:`ui`,label:`Progress`,inputs:[{name:`value`,type:`number`,label:`Value`,defaultValue:0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{value:50,className:`w-full`}}),Y.register(`skeleton`,({schema:e,className:t,...n})=>(0,G.jsx)(sI,{className:t,...n,style:{width:e.width,height:e.height}}),{namespace:`ui`,label:`Skeleton`,inputs:[{name:`width`,type:`string`,label:`Width`},{name:`height`,type:`string`,label:`Height`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{width:`100%`,height:`20px`,className:`rounded-md`}}),Y.register(`toaster`,()=>(0,G.jsx)(GI,{}),{namespace:`ui`,label:`Toaster`,inputs:[],defaultProps:{}}),Y.register(`loading`,({schema:e,className:t,...n})=>{let r=e.size||`md`,i=e.fullscreen||!1,a=(0,G.jsxs)(`div`,{className:X(`flex flex-col items-center justify-center gap-2`,t),children:[(0,G.jsx)(uR,{className:X(r===`sm`&&`h-4 w-4`,r===`md`&&`h-8 w-8`,r===`lg`&&`h-12 w-12`,r===`xl`&&`h-16 w-16`)}),e.text&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.text})]});return i?(0,G.jsx)(`div`,{className:`fixed inset-0 z-50 flex items-center justify-center bg-background/80 backdrop-blur-sm`,...n,children:a}):(0,G.jsx)(`div`,{className:`flex items-center justify-center p-8`,...n,children:a})},{namespace:`ui`,label:`Loading`,inputs:[{name:`text`,type:`string`,label:`Loading Text`},{name:`size`,type:`enum`,enum:[`sm`,`md`,`lg`,`xl`],label:`Size`,defaultValue:`md`},{name:`fullscreen`,type:`boolean`,label:`Fullscreen Overlay`,defaultValue:!1},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{text:`Loading...`,size:`md`,fullscreen:!1}}),Y.register(`toast`,({schema:e})=>(0,G.jsx)(Z,{onClick:()=>{(e.variant===`success`?s.success:e.variant===`error`?s.error:e.variant===`warning`?s.warning:e.variant===`info`?s.info:s)(e.title||`Notification`,{description:e.description,duration:e.duration})},variant:e.buttonVariant,className:e.className,children:e.buttonLabel||`Show Toast`}),{namespace:`ui`,label:`Toast`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`variant`,type:`enum`,enum:[`default`,`success`,`warning`,`error`,`info`],defaultValue:`default`,label:`Variant`},{name:`duration`,type:`number`,label:`Duration (ms)`},{name:`buttonLabel`,type:`string`,label:`Button Label`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`Notification`,buttonLabel:`Show Toast`,variant:`default`,duration:5e3}}),Y.register(`spinner`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(dt,{className:X(`animate-spin`,{sm:`h-4 w-4`,md:`h-6 w-6`,lg:`h-8 w-8`,xl:`h-12 w-12`}[e.size||`md`],e.className),...a,"data-obj-id":n,"data-obj-type":r,style:i})},{namespace:`ui`,label:`Spinner`,inputs:[{name:`size`,type:`enum`,enum:[`sm`,`md`,`lg`,`xl`],defaultValue:`md`,label:`Size`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{size:`md`}}),Y.register(`empty`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,action:a,icon:o,...s}=t,c=e.action,l=c&&typeof c==`object`?(0,G.jsx)(Yj,{schema:c}):void 0;return(0,G.jsx)(yR,{title:e.title||`No data`,description:e.description,className:e.className,action:l,...s,"data-obj-id":n,"data-obj-type":r,style:i})},{namespace:`ui`,label:`Empty`,inputs:[{name:`title`,type:`string`,label:`Title`,defaultValue:`No data`},{name:`description`,type:`string`,label:`Description`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{title:`No data`}}),Y.register(`sonner`,({schema:e,...t})=>(0,G.jsx)(Z,{onClick:()=>{(e.variant===`success`?s.success:e.variant===`error`?s.error:e.variant===`warning`?s.warning:e.variant===`info`?s.info:s)(e.message||e.title||`Notification`,{description:e.description})},variant:e.buttonVariant,className:e.className,...t,children:e.buttonLabel||`Show Toast`}),{namespace:`ui`,label:`Sonner Toast`,inputs:[{name:`message`,type:`string`,label:`Message`},{name:`description`,type:`string`,label:`Description`},{name:`variant`,type:`enum`,enum:[`default`,`success`,`error`,`warning`,`info`],defaultValue:`default`,label:`Variant`},{name:`buttonLabel`,type:`string`,label:`Button Label`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{message:`Notification`,buttonLabel:`Show Toast`,variant:`default`}}),Y.register(`dialog`,({schema:e,className:t,...n})=>(0,G.jsxs)(FN,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,G.jsx)(IN,{asChild:!0,children:EM(e.trigger)}),(0,G.jsxs)(zN,{className:t,children:[(0,G.jsxs)(BN,{children:[e.title&&(0,G.jsx)(HN,{children:e.title}),e.description&&(0,G.jsx)(UN,{children:e.description})]}),EM(e.content),e.footer&&(0,G.jsx)(VN,{children:EM(e.footer)})]})]}),{namespace:`ui`,label:`Dialog`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`modal`,type:`boolean`,label:`Modal`,defaultValue:!0},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`trigger`,type:`slot`,label:`Trigger`,description:`Element that opens the dialog`},{name:`content`,type:`slot`,label:`Content`,description:`Main content of the dialog`},{name:`footer`,type:`slot`,label:`Footer`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Dialog Title`,description:`Dialog description goes here`,modal:!0,trigger:[{type:`button`,label:`Open Dialog`}],content:[{type:`text`,content:`Dialog content goes here`}]}}),Y.register(`sheet`,({schema:e,className:t,...n})=>(0,G.jsxs)(JF,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,G.jsx)(YF,{asChild:!0,children:EM(e.trigger)}),(0,G.jsxs)(eI,{side:e.side||`right`,className:t,children:[(0,G.jsxs)(tI,{children:[e.title&&(0,G.jsx)(rI,{children:e.title}),e.description&&(0,G.jsx)(iI,{children:e.description})]}),EM(e.content),e.footer&&(0,G.jsx)(nI,{children:EM(e.footer)})]})]}),{namespace:`ui`,label:`Sheet`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],defaultValue:`right`,label:`Side`},{name:`modal`,type:`boolean`,label:`Modal`,defaultValue:!0},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`footer`,type:`slot`,label:`Footer`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Sheet Title`,description:`Sheet description`,side:`right`,modal:!0,trigger:[{type:`button`,label:`Open Sheet`}],content:[{type:`text`,content:`Sheet content goes here`}]}}),Y.register(`popover`,({schema:e,className:t,...n})=>(0,G.jsxs)(DF,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,G.jsx)(OF,{asChild:!0,children:EM(e.trigger)}),(0,G.jsx)(kF,{align:e.align,side:e.side,className:t,children:EM(e.content)})]}),{namespace:`ui`,label:`Popover`,inputs:[{name:`modal`,type:`boolean`,label:`Modal`},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Open Popover`,variant:`outline`}],content:[{type:`text`,content:`Popover content goes here`}],align:`center`,side:`bottom`}}),Y.register(`tooltip`,({schema:e,className:t,...n})=>(0,G.jsx)(cI,{delayDuration:e.delayDuration,children:(0,G.jsxs)(lI,{...n,children:[(0,G.jsx)(uI,{asChild:!0,children:EM(e.trigger)}),(0,G.jsx)(dI,{side:e.side,align:e.align,className:t,children:e.content||EM(e.body)})]})}),{namespace:`ui`,label:`Tooltip`,inputs:[{name:`delayDuration`,type:`number`,label:`Delay Duration`,defaultValue:700},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`string`,label:`Content Text`},{name:`body`,type:`slot`,label:`Rich Content`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Hover me`,variant:`outline`}],content:`Tooltip content`,delayDuration:700,side:`top`}}),Y.register(`alert-dialog`,({schema:e,className:t,...n})=>(0,G.jsxs)(PM,{defaultOpen:e.defaultOpen,...n,children:[(0,G.jsx)(FM,{asChild:!0,children:EM(e.trigger)}),(0,G.jsxs)(RM,{className:t,children:[(0,G.jsxs)(zM,{children:[e.title&&(0,G.jsx)(VM,{children:e.title}),e.description&&(0,G.jsx)(HM,{children:e.description})]}),EM(e.content),(0,G.jsxs)(BM,{children:[e.cancelText&&(0,G.jsx)(WM,{children:e.cancelText}),e.actionText&&(0,G.jsx)(UM,{onClick:e.onAction,children:e.actionText})]})]})]}),{namespace:`ui`,label:`Alert Dialog`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`cancelText`,type:`string`,label:`Cancel Text`,defaultValue:`Cancel`},{name:`actionText`,type:`string`,label:`Action Text`,defaultValue:`Continue`},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content/Body`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Are you sure?`,description:`This action cannot be undone.`,cancelText:`Cancel`,actionText:`Continue`,trigger:[{type:`button`,label:`Open Alert`,variant:`destructive`}]}}),Y.register(`drawer`,({schema:e,className:t,...n})=>(0,G.jsxs)(uP,{shouldScaleBackground:e.shouldScaleBackground,defaultOpen:e.defaultOpen,...n,children:[(0,G.jsx)(dP,{asChild:!0,children:EM(e.trigger)}),(0,G.jsxs)(hP,{className:t,children:[(0,G.jsxs)(gP,{children:[e.title&&(0,G.jsx)(vP,{children:e.title}),e.description&&(0,G.jsx)(yP,{children:e.description})]}),EM(e.content),e.footer&&(0,G.jsxs)(_P,{children:[EM(e.footer),e.showClose&&(0,G.jsx)(pP,{asChild:!0,children:(0,G.jsx)(`button`,{children:`Close`})})]})]})]}),{namespace:`ui`,label:`Drawer`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`shouldScaleBackground`,type:`boolean`,label:`Scale Background`},{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`showClose`,type:`boolean`,label:`Show Close Button in Footer`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`footer`,type:`slot`,label:`Footer`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{title:`Drawer Title`,description:`Drawer description`,trigger:[{type:`button`,label:`Open Drawer`}],content:[{type:`text`,content:`Drawer content goes here`}]}}),Y.register(`hover-card`,({schema:e,className:t,...n})=>(0,G.jsxs)(WP,{openDelay:e.openDelay,closeDelay:e.closeDelay,...n,children:[(0,G.jsx)(GP,{asChild:!0,children:EM(e.trigger)}),(0,G.jsx)(KP,{align:e.align,side:e.side,className:t,children:EM(e.content)})]}),{namespace:`ui`,label:`Hover Card`,inputs:[{name:`openDelay`,type:`number`,label:`Open Delay`},{name:`closeDelay`,type:`number`,label:`Close Delay`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Hover me`,variant:`link`}],content:[{type:`text`,content:`Hover card content appears on hover`}],side:`top`}});var wz=e=>e?e.map((e,t)=>e.type===`separator`?(0,G.jsx)(AP,{},t):e.type===`label`?(0,G.jsx)(kP,{children:e.label},t):e.children?(0,G.jsxs)(SP,{children:[(0,G.jsxs)(CP,{inset:e.inset,children:[e.icon&&(0,G.jsx)(`span`,{className:`mr-2`,children:e.icon}),e.label]}),(0,G.jsx)(wP,{children:wz(e.children)})]},t):(0,G.jsxs)(EP,{disabled:e.disabled,inset:e.inset,onSelect:e.onSelect,children:[e.icon&&(0,G.jsx)(`span`,{className:`mr-2`,children:e.icon}),e.label,e.shortcut&&(0,G.jsx)(`span`,{className:`ml-auto text-xs tracking-widest opacity-60`,children:e.shortcut})]},t)):null;Y.register(`dropdown-menu`,({schema:e,className:t,...n})=>(0,G.jsxs)(bP,{modal:e.modal,defaultOpen:e.defaultOpen,...n,children:[(0,G.jsx)(xP,{asChild:!0,children:EM(e.trigger)}),(0,G.jsxs)(TP,{align:e.align,side:e.side,className:t,children:[e.label&&(0,G.jsx)(kP,{children:e.label}),e.label&&(0,G.jsx)(AP,{}),wz(e.items)]})]}),{namespace:`ui`,label:`Dropdown Menu`,inputs:[{name:`label`,type:`string`,label:`Menu Label`},{name:`side`,type:`enum`,enum:[`top`,`right`,`bottom`,`left`],label:`Side`},{name:`align`,type:`enum`,enum:[`start`,`center`,`end`],label:`Align`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`items`,type:`array`,label:`Items`,description:`Recursive structure: { type?: "separator"|"label", label, icon, shortcut, disabled, children: [] }`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Menu`,variant:`outline`}],items:[{label:`Item 1`},{label:`Item 2`},{type:`separator`},{label:`Item 3`}],align:`start`,side:`bottom`}});var Tz=e=>e?e.map((e,t)=>e.type===`separator`?(0,G.jsx)(cP,{},t):e.type===`label`?(0,G.jsx)(sP,{children:e.label},t):e.children?(0,G.jsxs)(eP,{children:[(0,G.jsx)(tP,{inset:e.inset,children:e.label}),(0,G.jsx)(nP,{children:Tz(e.children)})]},t):(0,G.jsxs)(iP,{disabled:e.disabled,inset:e.inset,onSelect:e.onSelect,children:[e.label,e.shortcut&&(0,G.jsx)(lP,{children:e.shortcut})]},t)):null;Y.register(`context-menu`,({schema:e,className:t,...n})=>{let r=e.triggerClassName||t||e.className||`h-[120px] w-full sm:h-[150px] sm:w-[300px] border border-dashed text-sm flex items-center justify-center`,i=e.contentClassName;return(0,G.jsxs)(QN,{modal:e.modal,...n,children:[(0,G.jsx)($N,{asChild:!0,children:(0,G.jsx)(`div`,{className:r,children:EM(e.trigger||{type:`text`,value:`Right click here`})})}),(0,G.jsx)(rP,{className:i,children:Tz(e.items)})]})},{namespace:`ui`,label:`Context Menu`,inputs:[{name:`trigger`,type:`slot`,label:`Trigger Area`},{name:`triggerClassName`,type:`string`,label:`Trigger Area Class`},{name:`items`,type:`array`,label:`Items`,description:`Recursive structure: { type?: "separator"|"label", label, shortcut, children }`},{name:`className`,type:`string`,label:`Content CSS Class`}],defaultProps:{items:[{label:`Action 1`},{label:`Action 2`},{type:`separator`},{label:`Action 3`}],trigger:[{type:`text`,content:`Right click here`}]}}),Y.register(`menubar`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,...a}=t;return(0,G.jsx)(eF,{className:e.className,...a,"data-obj-id":n,"data-obj-type":r,style:i,children:e.menus?.map((e,t)=>(0,G.jsxs)(QP,{children:[(0,G.jsx)(tF,{children:e.label}),(0,G.jsx)(iF,{children:e.items?.map((e,t)=>e.separator?(0,G.jsx)(lF,{},t):e.children?(0,G.jsxs)($P,{children:[(0,G.jsx)(nF,{children:e.label}),(0,G.jsx)(rF,{children:e.children.map((e,t)=>(0,G.jsx)(aF,{children:e.label},t))})]},t):(0,G.jsx)(aF,{disabled:e.disabled,children:e.label},t))})]},t))})},{namespace:`ui`,label:`Menubar`,inputs:[{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{menus:[{label:`File`,items:[{label:`New`},{label:`Open`},{separator:!0},{label:`Exit`}]}]}}),Y.register(`accordion`,({schema:e,className:t,...n})=>(0,G.jsx)(kM,{type:e.accordionType||`single`,collapsible:e.collapsible,className:t,...n,children:e.items?.map((e,t)=>(0,G.jsxs)(AM,{value:e.value||`item-${t}`,children:[(0,G.jsx)(jM,{children:e.title}),(0,G.jsx)(MM,{children:EM(e.content)})]},e.value||t))}),{namespace:`ui`,label:`Accordion`,inputs:[{name:`accordionType`,type:`enum`,enum:[`single`,`multiple`],defaultValue:`single`,label:`Type`},{name:`collapsible`,type:`boolean`,label:`Collapsible (for single type)`},{name:`items`,type:`array`,label:`Items`,description:`Array of { trigger, content, value }`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{accordionType:`single`,collapsible:!0,items:[{label:`Item 1`,value:`item-1`,content:[{type:`text`,content:`Content for item 1`}]},{label:`Item 2`,value:`item-2`,content:[{type:`text`,content:`Content for item 2`}]},{label:`Item 3`,value:`item-3`,content:[{type:`text`,content:`Content for item 3`}]}],className:`w-full`}}),Y.register(`collapsible`,({schema:e,className:t,...n})=>(0,G.jsxs)(MN,{defaultOpen:e.defaultOpen,disabled:e.disabled,className:t,...n,children:[(0,G.jsx)(NN,{asChild:!0,children:EM(e.trigger)}),(0,G.jsx)(PN,{children:EM(e.content)})]}),{namespace:`ui`,label:`Collapsible`,inputs:[{name:`defaultOpen`,type:`boolean`,label:`Default Open`},{name:`disabled`,type:`boolean`,label:`Disabled`},{name:`trigger`,type:`slot`,label:`Trigger`},{name:`content`,type:`slot`,label:`Content`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{trigger:[{type:`button`,label:`Toggle`,variant:`outline`}],content:[{type:`text`,content:`Collapsible content goes here`}],className:`w-full`}}),Y.register(`toggle-group`,({schema:e,...t})=>{let{"data-obj-id":n,"data-obj-type":r,style:i,type:a,...o}=t;return(0,G.jsx)(lL,{type:e.selectionType||`single`,variant:e.variant,size:e.size,value:e.value,className:e.className,...o,"data-obj-id":n,"data-obj-type":r,style:i,children:e.items?.map((e,t)=>(0,G.jsx)(uL,{value:e.value,"aria-label":e.label,children:e.label},t))})},{namespace:`ui`,label:`Toggle Group`,inputs:[{name:`selectionType`,type:`enum`,enum:[`single`,`multiple`],defaultValue:`single`,label:`Selection Type`},{name:`variant`,type:`enum`,enum:[`default`,`outline`],defaultValue:`default`,label:`Variant`},{name:`size`,type:`enum`,enum:[`default`,`sm`,`lg`],defaultValue:`default`,label:`Size`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{selectionType:`single`,variant:`default`,size:`default`,items:[{value:`bold`,label:`Bold`},{value:`italic`,label:`Italic`},{value:`underline`,label:`Underline`}]}}),Y.register(`carousel`,({schema:e,className:t,...n})=>(0,G.jsxs)(vN,{opts:e.opts,orientation:e.orientation||`horizontal`,className:t,...n,children:[(0,G.jsx)(yN,{children:e.items?.map((t,n)=>(0,G.jsx)(bN,{className:e.itemClassName,children:EM(t)},n))}),e.showArrows&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(xN,{}),(0,G.jsx)(SN,{})]})]}),{namespace:`ui`,label:`Carousel`,inputs:[{name:`orientation`,type:`enum`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`,label:`Orientation`},{name:`showArrows`,type:`boolean`,label:`Show Arrows`,defaultValue:!0},{name:`items`,type:`array`,label:`Items`,description:`Array of content schemas`},{name:`itemClassName`,type:`string`,label:`Item CSS Class`},{name:`className`,type:`string`,label:`Container CSS Class`}],defaultProps:{orientation:`horizontal`,showArrows:!0,items:[[{type:`div`,className:`p-4 sm:p-6 md:p-8 border rounded bg-slate-50`,body:[{type:`text`,content:`Slide 1`}]}],[{type:`div`,className:`p-4 sm:p-6 md:p-8 border rounded bg-slate-50`,body:[{type:`text`,content:`Slide 2`}]}],[{type:`div`,className:`p-4 sm:p-6 md:p-8 border rounded bg-slate-50`,body:[{type:`text`,content:`Slide 3`}]}]],className:`w-full max-w-xs`}}),Y.register(`filter-builder`,({schema:e,className:t,onChange:n,...r})=>(0,G.jsxs)(`div`,{className:e.wrapperClass||``,children:[e.label&&(0,G.jsx)(`label`,{className:`text-sm font-medium mb-2 block`,children:e.label}),(0,G.jsx)(XL,{fields:e.fields||[],value:e.value||r.value,onChange:t=>{n&&n({target:{name:e.name,value:t}})},className:t,...r})]}),{namespace:`ui`,label:`Filter Builder`,inputs:[{name:`label`,type:`string`,label:`Label`},{name:`name`,type:`string`,label:`Name`,required:!0},{name:`fields`,type:`array`,label:`Fields`,description:`Array of { value: string, label: string, type?: string } objects`,required:!0},{name:`value`,type:`object`,label:`Initial Value`,description:`FilterGroup object with conditions`}],defaultProps:{label:`Filters`,name:`filters`,fields:[{value:`name`,label:`Name`,type:`text`},{value:`email`,label:`Email`,type:`text`},{value:`age`,label:`Age`,type:`number`},{value:`status`,label:`Status`,type:`text`}],value:{id:`root`,logic:`and`,conditions:[]}}}),Y.register(`scroll-area`,({schema:e,className:t,...n})=>{let{"data-obj-id":r,"data-obj-type":i,style:a,...o}=n,s=e.orientation||`vertical`;return(0,G.jsxs)(IF,{className:t,style:{height:e.height,width:e.width,...a},...o,"data-obj-id":r,"data-obj-type":i,children:[EM(e.children),(s===`horizontal`||s===`both`)&&(0,G.jsx)(LF,{orientation:`horizontal`}),(s===`vertical`||s===`both`)&&(0,G.jsx)(LF,{orientation:`vertical`})]})},{namespace:`ui`,label:`Scroll Area`,inputs:[{name:`height`,type:`string`,label:`Height (e.g. 200px)`},{name:`width`,type:`string`,label:`Width`},{name:`orientation`,type:`enum`,enum:[`vertical`,`horizontal`,`both`],defaultValue:`vertical`,label:`Orientation`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{height:`200px`,width:`100%`,orientation:`vertical`,children:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Scrollable content goes here. Add more content to see scrolling behavior.`}]}],className:`rounded-md border`}}),Y.register(`resizable`,({schema:e,className:t,...n})=>{let r=Array.isArray(e.panels)?e.panels:[];return(0,G.jsx)(NF,{orientation:e.direction||`horizontal`,className:t,...n,style:{minHeight:e.minHeight||`200px`},children:r.map((t,n)=>(0,G.jsxs)(W.Fragment,{children:[(0,G.jsx)(PF,{defaultSize:t.defaultSize,minSize:t.minSize,maxSize:t.maxSize,children:EM(t.content)}),n<r.length-1&&(0,G.jsx)(FF,{withHandle:e.withHandle})]},n))})},{namespace:`ui`,label:`Resizable Panel Group`,inputs:[{name:`direction`,type:`enum`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`,label:`Direction`},{name:`minHeight`,type:`string`,label:`Min Height`},{name:`withHandle`,type:`boolean`,label:`Show Handle Icon`,defaultValue:!0},{name:`panels`,type:`array`,label:`Panels`,description:`Array of { defaultSize, minSize, maxSize, content }`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{direction:`horizontal`,minHeight:`200px`,withHandle:!0,panels:[{defaultSize:50,content:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Panel 1`}]}]},{defaultSize:50,content:[{type:`div`,className:`p-4`,body:[{type:`text`,content:`Panel 2`}]}]}],className:`rounded-lg border`}}),Y.register(`table`,({schema:e,className:t,...n})=>(0,G.jsxs)(qI,{className:t,...n,children:[e.caption&&(0,G.jsx)(eL,{children:e.caption}),(0,G.jsx)(JI,{children:(0,G.jsx)(ZI,{children:e.columns?.map((e,t)=>(0,G.jsx)(QI,{className:e.className,style:{width:e.width},children:e.header||e.label},t))})}),(0,G.jsx)(YI,{children:e.data?.map((t,n)=>(0,G.jsx)(ZI,{children:e.columns?.map((e,n)=>(0,G.jsx)($I,{className:e.cellClassName,children:t[e.accessorKey||e.name]},n))},n))}),e.footer&&(0,G.jsx)(XI,{children:(0,G.jsx)(ZI,{children:(0,G.jsx)($I,{colSpan:e.columns?.length,children:typeof e.footer==`string`?e.footer:EM(e.footer)})})})]}),{namespace:`ui`,label:`Table`,inputs:[{name:`caption`,type:`string`,label:`Caption`},{name:`footer`,type:`string`,label:`Footer Content`},{name:`columns`,type:`array`,label:`Columns`,description:`Array of { header, accessorKey, className, width }`},{name:`data`,type:`array`,label:`Data`,description:`Array of objects`},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{caption:`Table Caption`,columns:[{header:`Column 1`,accessorKey:`col1`},{header:`Column 2`,accessorKey:`col2`},{header:`Column 3`,accessorKey:`col3`}],data:[{col1:`Row 1, Col 1`,col2:`Row 1, Col 2`,col3:`Row 1, Col 3`},{col1:`Row 2, Col 1`,col2:`Row 2, Col 2`,col3:`Row 2, Col 3`},{col1:`Row 3, Col 1`,col2:`Row 3, Col 2`,col3:`Row 3, Col 3`}]}});var Ez={"table.rowsPerPage":`Rows per page`,"table.pageInfo":`Page {{current}} of {{total}}`,"table.totalRecords":`{{count}} total`,"table.noResults":`No results found`,"table.noResultsHint":`Try adjusting your filters or search query.`,"table.sortAsc":`Sort ascending`,"table.sortDesc":`Sort descending`,"table.hideColumn":`Hide column`,"table.cancelAll":`Cancel All`,"table.saveAll":`Save All ({{count}})`,"table.exportCSV":`Export CSV`,"table.addRecord":`Add record`,"table.open":`Open`,"table.search":`Search...`,"table.modified":`{{count}} row modified`,"table.selected":`{{count}} selected`,"table.edit":`Edit`,"table.delete":`Delete`,"common.actions":`Actions`};function Dz(){try{let e=pM();return e.t(`table.rowsPerPage`)===`table.rowsPerPage`?{t:(e,t)=>{let n=Ez[e]||e;if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{{${e}}}`,String(r));return n},language:e.language||`en`}:{t:e.t,language:e.language||`en`}}catch{return{t:(e,t)=>{let n=Ez[e]||e;if(t)for(let[e,r]of Object.entries(t))n=n.replace(`{{${e}}}`,String(r));return n},language:`en`}}}Y.register(`data-table`,({schema:e})=>{let{caption:t,columns:n=[],data:r=[],pagination:i=!0,pageSize:a=10,searchable:o=!0,selectable:s=!1,sortable:c=!0,exportable:l=!1,rowActions:u=!1,resizableColumns:d=!0,reorderableColumns:f=!0,editable:p=!1,singleClickEdit:m=!1,selectionStyle:h=`always`,rowClassName:g,rowStyle:_,className:v,cellClassName:y,frozenColumns:b=0,showRowNumbers:x=!1,showAddRow:S=!1,borderless:C=!1}=e,{t:w,language:T}=Dz(),E=/^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:?\d{2})?)?$/,ee=W.useCallback(e=>{if(typeof e!=`string`||e.length<8||!E.test(e))return e;let t=Date.parse(e);if(Number.isNaN(t))return e;let n=e.includes(`T`);try{return new Intl.DateTimeFormat(T,n?{year:`numeric`,month:`short`,day:`numeric`,hour:`2-digit`,minute:`2-digit`}:{year:`numeric`,month:`short`,day:`numeric`}).format(new Date(t))}catch{return e}},[T]),D=Array.isArray(r)?r:[],O=(0,W.useMemo)(()=>n.map(e=>({...e,header:e.header||e.label,accessorKey:e.accessorKey||e.name})),[n]),k=(0,W.useMemo)(()=>{let e={},t=n.map(e=>({header:e.header||e.label,accessorKey:e.accessorKey||e.name,width:e.width}));for(let n of t){if(n.width)continue;let t=(n.header||``).length,r=D.slice(0,50);for(let e of r){let r=e[n.accessorKey],i=r==null?0:String(r).length;i>t&&(t=i)}e[n.accessorKey]=Math.min(400,Math.max(80,t*8+48))}return e},[n,D]),[A,te]=(0,W.useState)(``),[ne,re]=(0,W.useState)(null),[ie,j]=(0,W.useState)(null),[M,ae]=(0,W.useState)(new Set),[N,oe]=(0,W.useState)(1),[P,se]=(0,W.useState)(a),[F,ce]=(0,W.useState)(O),[le,ue]=(0,W.useState)({}),[de,fe]=(0,W.useState)(null),[pe,me]=(0,W.useState)(null),[I,he]=(0,W.useState)(null),[L,ge]=(0,W.useState)(``),[_e,ve]=(0,W.useState)(new Map),[R,ye]=(0,W.useState)(!1),[be,z]=(0,W.useState)(null),xe=(0,W.useRef)(null),Se=(0,W.useRef)(0),Ce=(0,W.useRef)(0),we=(0,W.useRef)(null);(0,W.useEffect)(()=>{ce(O)},[O]);let B=(0,W.useMemo)(()=>A?D.filter(e=>F.some(t=>e[t.accessorKey]?.toString().toLowerCase().includes(A.toLowerCase()))):D,[D,A,F]),Te=(0,W.useMemo)(()=>!ne||!ie?B:[...B].sort((e,t)=>{let n=e[ne],r=t[ne];if(n===r)return 0;let i=n<r?-1:1;return ie===`asc`?i:-i}),[B,ne,ie]),V=Math.ceil(Te.length/P),Ee=i?Te.slice((N-1)*P,N*P):Te,H=(e,t)=>e.id===void 0?`row-${t}`:e.id,De=e=>{c&&(ne===e?ie===`asc`?j(`desc`):ie===`desc`&&(j(null),re(null)):(re(e),j(`asc`)))},Oe=(e,t)=>{e.preventDefault(),z({x:e.clientX,y:e.clientY,columnKey:t})},ke=e=>{ce(t=>t.filter(t=>t.accessorKey!==e)),z(null)};(0,W.useEffect)(()=>{if(!be)return;let e=()=>z(null);return document.addEventListener(`click`,e),()=>document.removeEventListener(`click`,e)},[be]);let Ae=t=>{let n=new Set;if(t&&Ee.forEach((e,t)=>{let r=H(e,(N-1)*P+t);n.add(r)}),ae(n),e.onSelectionChange){let t=Te.filter((e,t)=>{let r=H(e,t);return n.has(r)});e.onSelectionChange(t)}},je=(t,n)=>{let r=new Set(M);if(n?r.add(t):r.delete(t),ae(r),e.onSelectionChange){let t=Te.filter((e,t)=>{let n=H(e,t);return r.has(n)});e.onSelectionChange(t)}},Me=()=>{let e=[F.map(e=>e.header).join(`,`),...Te.map(e=>F.map(t=>JSON.stringify(e[t.accessorKey]||``)).join(`,`))].join(`
|
|
49
|
+
`),t=new Blob([e],{type:`text/csv`}),n=window.URL.createObjectURL(t),r=document.createElement(`a`);r.href=n,r.download=`table-export.csv`,r.click(),window.URL.revokeObjectURL(n)},Ne=e=>ne===e?(0,G.jsx)(ie===`asc`?wn:nt,{className:`h-3 w-3 ml-0.5 text-primary`}):(0,G.jsx)(at,{className:`h-3 w-3 ml-0.5 opacity-0 group-hover:opacity-50 transition-opacity`}),Pe=(e,t)=>{if(!d)return;e.preventDefault(),e.stopPropagation(),xe.current=t,Se.current=e.clientX;let n=e.target.closest(`th`);n&&(Ce.current=n.offsetWidth),document.addEventListener(`mousemove`,Fe),document.addEventListener(`mouseup`,U)},Fe=e=>{if(!xe.current)return;let t=e.clientX-Se.current,n=Math.max(50,Ce.current+t);ue(e=>({...e,[xe.current]:n}))},U=()=>{xe.current=null,document.removeEventListener(`mousemove`,Fe),document.removeEventListener(`mouseup`,U)},Ie=(e,t)=>{f&&(fe(t),e.dataTransfer.effectAllowed=`move`)},Le=(e,t)=>{f&&(e.preventDefault(),e.dataTransfer.dropEffect=`move`,me(t))},Re=(t,n)=>{if(!f||de===null)return;if(t.preventDefault(),de===n){fe(null),me(null);return}let r=[...F],[i]=r.splice(de,1);r.splice(n,0,i),ce(r),fe(null),me(null),e.onColumnsReorder&&e.onColumnsReorder(r)},ze=()=>{fe(null),me(null)},Be=(e,t)=>{if(!p||F.find(e=>e.accessorKey===t)?.editable===!1)return;he({rowIndex:e,columnKey:t});let n=_e.get(e),r=Ee[e][t];ge(n?.[t]??r??``)},Ve=(t=!1)=>{if(!I||!t&&I===null)return;let{rowIndex:n,columnKey:r}=I,i=(N-1)*P+n,a=Te[i],o=new Map(_e),s=o.get(n)||{};s[r]=L,o.set(n,s),ve(o),e.onCellChange&&e.onCellChange(i,r,L,a),he(null),ge(``)},He=()=>{he(null),ge(``)},Ue=async t=>{let n=(N-1)*P+t,r=Te[n],i=_e.get(t);if(!(!i||Object.keys(i).length===0)){ye(!0);try{e.onRowSave&&await e.onRowSave(n,i,r);let a=new Map(_e);a.delete(t),ve(a)}catch(e){console.error(`Failed to save row:`,e)}finally{ye(!1)}}},We=e=>{let t=new Map(_e);t.delete(e),ve(t)},Ge=async()=>{if(_e.size!==0){ye(!0);try{let t=Array.from(_e.entries()).map(([e,t])=>{let n=(N-1)*P+e;return{rowIndex:n,changes:t,row:Te[n]}});e.onBatchSave&&await e.onBatchSave(t),ve(new Map)}catch(e){console.error(`Failed to save batch:`,e)}finally{ye(!1)}}},Ke=()=>{ve(new Map)},qe=(e,t,n)=>{if((e.ctrlKey||e.metaKey)&&e.key===`c`&&!I){e.preventDefault();let r=Te[(N-1)*P+t];if(r){let e=r[n],t=e==null?``:String(e);navigator.clipboard.writeText(t).catch(()=>{})}return}p&&F.find(e=>e.accessorKey===n)?.editable!==!1&&e.key===`Enter`&&!I&&(e.preventDefault(),Be(t,n))},Je=e=>{e.key===`Enter`?(e.preventDefault(),Ve(!0)):e.key===`Escape`&&(e.preventDefault(),He())};(0,W.useEffect)(()=>{I&&we.current&&(we.current.focus(),we.current.select())},[I]),(0,W.useEffect)(()=>()=>{document.removeEventListener(`mousemove`,Fe),document.removeEventListener(`mouseup`,U)},[]);let Ze=Ee.length>0&&Ee.every((e,t)=>{let n=H(e,(N-1)*P+t);return M.has(n)}),Qe=Ee.some((e,t)=>{let n=H(e,(N-1)*P+t);return M.has(n)})&&!Ze,$e=_e.size>0,et=o||l||s&&M.size>0||$e;return(0,G.jsxs)(`div`,{className:`flex flex-col h-full gap-2 sm:gap-4 ${v||``}`,children:[et&&(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-stretch sm:items-center justify-between gap-2 sm:gap-4 flex-none`,children:[(0,G.jsx)(`div`,{className:`flex items-center gap-2 flex-1`,children:o&&(0,G.jsxs)(`div`,{className:`relative w-full sm:max-w-sm flex-1`,children:[(0,G.jsx)(st,{className:`absolute left-2 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground`}),(0,G.jsx)(ZP,{placeholder:w(`table.search`),value:A,onChange:e=>{te(e.target.value),oe(1)},className:`pl-8`})]})}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[$e&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:w(`table.modified`,{count:_e.size})}),(0,G.jsxs)(Z,{variant:`outline`,size:`sm`,onClick:Ke,disabled:R,children:[(0,G.jsx)(At,{className:`h-4 w-4 mr-2`}),w(`table.cancelAll`)]}),(0,G.jsxs)(Z,{variant:`default`,size:`sm`,onClick:Ge,disabled:R,children:[(0,G.jsx)(ot,{className:`h-4 w-4 mr-2`}),w(`table.saveAll`,{count:_e.size})]})]}),l&&(0,G.jsxs)(Z,{variant:`outline`,size:`sm`,onClick:Me,disabled:Te.length===0,children:[(0,G.jsx)(Vt,{className:`h-4 w-4 mr-2`}),w(`table.exportCSV`)]}),s&&M.size>0&&(0,G.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:w(`table.selected`,{count:M.size})})]})]}),(0,G.jsx)(`div`,{className:X(`flex-1 min-h-0 overflow-auto relative bg-background [-webkit-overflow-scrolling:touch]`,!C&&`rounded-md border shadow-[inset_-8px_0_8px_-8px_rgba(0,0,0,0.08)]`),children:(0,G.jsxs)(qI,{children:[t&&(0,G.jsx)(eL,{children:t}),(0,G.jsx)(JI,{className:`sticky top-0 bg-muted/30 z-10`,children:(0,G.jsxs)(ZI,{children:[s&&(0,G.jsx)(QI,{className:X(`w-10 bg-muted/30`,b>0&&`sticky left-0 z-20`),children:(0,G.jsx)(jN,{checked:Ze?!0:Qe?`indeterminate`:!1,onCheckedChange:Ae})}),x&&(0,G.jsx)(QI,{className:X(`w-10 bg-muted/30 text-center`,b>0&&`sticky z-20`),style:b>0?{left:s?40:0}:void 0,children:(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`#`})}),F.map((e,t)=>{let n=le[e.accessorKey]||e.width||k[e.accessorKey],r=de===t,i=pe===t,a=b>0&&t<b,o=a?F.slice(0,t).reduce((e,t,n)=>{if(n<b){let n=le[t.accessorKey]||t.width||k[t.accessorKey];return e+(typeof n==`number`?n:n&&parseInt(String(n),10)||150)}return e},(s?40:0)+(x?40:0)):void 0;return(0,G.jsx)(QI,{className:X(e.className,c&&e.sortable!==!1&&`cursor-pointer select-none`,r&&`opacity-50`,i&&`border-l-2 border-primary`,e.align===`right`&&`text-right`,e.align===`center`&&`text-center`,`relative group bg-muted/30`,a&&`sticky z-20`,a&&t===b-1&&`border-r-2 border-border shadow-[2px_0_4px_-2px_rgba(0,0,0,0.1)]`),style:{width:n,minWidth:n,...a&&{left:o}},draggable:f,onDragStart:e=>Ie(e,t),onDragOver:e=>Le(e,t),onDrop:e=>Re(e,t),onDragEnd:ze,onClick:()=>c&&e.sortable!==!1&&De(e.accessorKey),onContextMenu:t=>Oe(t,e.accessorKey),children:(0,G.jsxs)(`div`,{className:X(`flex items-center`,e.align===`right`?`justify-end`:`justify-between`),children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[f&&(0,G.jsx)(Dt,{className:`h-4 w-4 opacity-0 group-hover:opacity-50 cursor-grab active:cursor-grabbing shrink-0`}),e.headerIcon&&(0,G.jsx)(`span`,{className:`text-muted-foreground shrink-0`,children:e.headerIcon}),(0,G.jsx)(`span`,{className:`text-xs font-normal text-muted-foreground whitespace-nowrap truncate`,children:e.header}),c&&e.sortable!==!1&&Ne(e.accessorKey)]}),d&&e.resizable!==!1&&(0,G.jsx)(`div`,{className:`absolute right-0 top-0 h-full w-1 cursor-col-resize hover:bg-primary opacity-0 hover:opacity-100 transition-opacity`,onMouseDown:t=>Pe(t,e.accessorKey),onClick:e=>e.stopPropagation()})]})},e.accessorKey)}),u&&(0,G.jsx)(QI,{className:`w-24 text-right bg-muted/30`,children:w(`common.actions`)})]})}),(0,G.jsx)(YI,{children:Ee.length===0?(0,G.jsx)(ZI,{className:`hover:bg-transparent`,children:(0,G.jsx)($I,{colSpan:F.length+ +!!s+ +!!x+ +!!u,className:`h-48 text-center text-muted-foreground border-0`,children:(0,G.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-3`,children:[(0,G.jsx)(st,{className:`h-8 w-8 text-muted-foreground/50`}),(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(`p`,{children:w(`table.noResults`)}),(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground/50`,children:w(`table.noResultsHint`)})]}),e.emptyAction&&(()=>{let t=e.emptyAction,n=t?.type?Y.get(t.type):null;return n?(0,G.jsx)(n,{schema:t}):null})()]})})}):(0,G.jsxs)(G.Fragment,{children:[Ee.map((t,n)=>{let r=(N-1)*P+n,i=H(t,r),a=M.has(i),o=_e.has(n),c=_e.get(n)||{};return(0,G.jsxs)(ZI,{"data-state":a?`selected`:void 0,className:X(`bg-background border-b border-border group/row transition-colors`,`hover:bg-muted/40`,`data-[state=selected]:bg-primary/5 data-[state=selected]:hover:bg-primary/10`,`focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-inset`,e.onRowClick&&`cursor-pointer`,o&&`bg-amber-50 dark:bg-amber-950/20`,g&&g(t,n)),style:_?_(t,n):void 0,onClick:n=>{if(e.onRowClick&&!n.defaultPrevented){let r=n.target;if(r.closest(`button`)||r.closest(`a`)||r.closest(`input, select, textarea, label`)||r.closest(`[role="checkbox"]`)||r.closest(`[role="menu"]`)||r.closest(`[role="menuitem"]`)||r.closest(`[role="menuitemcheckbox"]`)||r.closest(`[role="menuitemradio"]`)||r.closest(`[role="dialog"]`)||r.closest(`[role="alertdialog"]`)||r.closest(`[role="listbox"]`)||r.closest(`[role="option"]`)||r.closest(`[role="tab"]`)||r.closest(`[data-radix-popper-content-wrapper]`))return;e.onRowClick(t)}},children:[s&&(0,G.jsx)($I,{className:X(y,b>0&&`sticky left-0 z-10 bg-background`,h===`hover`&&`relative`),children:h===`hover`?(0,G.jsx)(`div`,{className:X(`transition-opacity`,a?`opacity-100`:`opacity-0 group-hover/row:opacity-100`),children:(0,G.jsx)(jN,{checked:a,onCheckedChange:e=>je(i,e)})}):(0,G.jsx)(jN,{checked:a,onCheckedChange:e=>je(i,e)})}),x&&(0,G.jsxs)($I,{className:X(`text-center w-10 relative`,y,b>0&&`sticky z-10 bg-background`),style:b>0?{left:s?40:0}:void 0,children:[(0,G.jsx)(`span`,{className:X(`text-xs text-muted-foreground tabular-nums select-none`,!s&&e.onRowClick&&`group-hover/row:invisible`),children:r+1}),!s&&e.onRowClick&&(0,G.jsxs)(`button`,{type:`button`,className:`absolute inset-0 hidden group-hover/row:flex items-center justify-center gap-0.5 text-xs font-medium text-primary hover:text-primary/80`,"data-testid":`row-expand-button`,onClick:n=>{n.stopPropagation(),e.onRowClick?.(t)},title:`Open record`,children:[(0,G.jsx)(`span`,{children:w(`table.open`)}),(0,G.jsx)(Xe,{className:`h-3 w-3`})]})]}),F.map((e,r)=>{let i=le[e.accessorKey]||e.width||k[e.accessorKey],a=t[e.accessorKey],o=c[e.accessorKey]!==void 0,l=o?c[e.accessorKey]:a,u=I?.rowIndex===n&&I?.columnKey===e.accessorKey,d=p&&e.editable!==!1,f=b>0&&r<b,h=f?F.slice(0,r).reduce((e,t,n)=>{if(n<b){let n=le[t.accessorKey]||t.width||k[t.accessorKey];return e+(typeof n==`number`?n:n&&parseInt(String(n),10)||150)}return e},(s?40:0)+(x?40:0)):void 0;return(0,G.jsx)($I,{className:X(e.cellClassName,e.align===`right`&&`text-right`,e.align===`center`&&`text-center`,d&&!u&&`cursor-text hover:bg-muted/50`,o&&`font-semibold text-amber-700 dark:text-amber-400`,f&&`sticky z-10 bg-background`,f&&r===b-1&&`border-r-2 border-border shadow-[2px_0_4px_-2px_rgba(0,0,0,0.1)]`),style:{width:i,minWidth:i,maxWidth:i,...f&&{left:h}},onDoubleClick:()=>d&&!m&&Be(n,e.accessorKey),onClick:()=>d&&m&&Be(n,e.accessorKey),onKeyDown:t=>qe(t,n,e.accessorKey),tabIndex:0,children:u?(0,G.jsx)(ZP,{ref:we,value:L,onChange:e=>ge(e.target.value),onKeyDown:Je,className:`h-8 px-2 py-1`}):typeof e.cell==`function`?e.cell(l,t):typeof l==`object`&&l?String(l):ee(l)},r)}),u&&(0,G.jsx)($I,{className:X(`text-right`,y),children:(0,G.jsx)(`div`,{className:`flex items-center justify-end gap-1`,children:o&&(e.onRowSave||e.onBatchSave)?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,onClick:()=>We(n),disabled:R,title:`Cancel changes`,children:(0,G.jsx)(At,{className:`h-4 w-4`})}),(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,onClick:()=>Ue(n),disabled:R,title:`Save row`,children:(0,G.jsx)(ot,{className:`h-4 w-4 text-green-600`})})]}):(e.onRowEdit||e.onRowDelete)&&(0,G.jsxs)(bP,{children:[(0,G.jsx)(xP,{asChild:!0,children:(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-8 w-8`,onClick:e=>e.stopPropagation(),"aria-label":`Row actions`,children:(0,G.jsx)($t,{className:`h-4 w-4`})})}),(0,G.jsxs)(TP,{align:`end`,onClick:e=>e.stopPropagation(),children:[e.onRowEdit&&(0,G.jsxs)(EP,{onClick:()=>e.onRowEdit?.(t),children:[(0,G.jsx)(Ye,{className:`mr-2 h-4 w-4`}),w(`table.edit`)]}),e.onRowEdit&&e.onRowDelete&&(0,G.jsx)(AP,{}),e.onRowDelete&&(0,G.jsxs)(EP,{onClick:()=>e.onRowDelete?.(t),className:`text-destructive focus:text-destructive`,children:[(0,G.jsx)(Sn,{className:`mr-2 h-4 w-4`}),w(`table.delete`)]})]})]})})})]},i)}),S&&(0,G.jsx)(ZI,{className:`hover:bg-muted/30 cursor-pointer border-b border-border`,"data-testid":`add-record-row`,onClick:()=>e.onAddRecord?.(),children:(0,G.jsx)($I,{colSpan:F.length+ +!!s+ +!!x+ +!!u,className:`h-9 px-3 py-1.5`,children:(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5 text-muted-foreground text-sm hover:text-foreground transition-colors`,children:[(0,G.jsx)(Kt,{className:`h-3.5 w-3.5`}),w(`table.addRecord`)]})})})]})})]})}),i&&Te.length>0&&V>1&&(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-between gap-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(`span`,{className:`text-xs sm:text-sm text-muted-foreground`,children:[w(`table.rowsPerPage`),`:`]}),(0,G.jsxs)(RF,{value:P.toString(),onValueChange:e=>{se(Number(e)),oe(1)},children:[(0,G.jsx)(BF,{className:`w-20`,children:(0,G.jsx)(zF,{})}),(0,G.jsxs)(UF,{children:[(0,G.jsx)(GF,{value:`5`,children:`5`}),(0,G.jsx)(GF,{value:`10`,children:`10`}),(0,G.jsx)(GF,{value:`20`,children:`20`}),(0,G.jsx)(GF,{value:`50`,children:`50`}),(0,G.jsx)(GF,{value:`100`,children:`100`})]})]})]}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-xs sm:text-sm text-muted-foreground`,children:w(`table.pageInfo`,{current:N,total:V})}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,G.jsx)(Z,{variant:`outline`,size:`icon`,onClick:()=>oe(1),disabled:N===1,children:(0,G.jsx)(vt,{className:`h-4 w-4`})}),(0,G.jsx)(Z,{variant:`outline`,size:`icon`,onClick:()=>oe(Math.max(1,N-1)),disabled:N===1,children:(0,G.jsx)(Tt,{className:`h-4 w-4`})}),(0,G.jsx)(Z,{variant:`outline`,size:`icon`,onClick:()=>oe(Math.min(V,N+1)),disabled:N===V,children:(0,G.jsx)(Xe,{className:`h-4 w-4`})}),(0,G.jsx)(Z,{variant:`outline`,size:`icon`,onClick:()=>oe(V),disabled:N===V,children:(0,G.jsx)(lt,{className:`h-4 w-4`})})]})]})]}),be&&(0,G.jsxs)(`div`,{className:`fixed z-50 min-w-[160px] rounded-md border bg-popover p-1 shadow-md`,style:{left:be.x,top:be.y},"data-testid":`column-context-menu`,onClick:e=>e.stopPropagation(),children:[c&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer`,onClick:()=>{re(be.columnKey),j(`asc`),z(null)},children:[(0,G.jsx)(wn,{className:`h-3.5 w-3.5`}),w(`table.sortAsc`)]}),(0,G.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer`,onClick:()=>{re(be.columnKey),j(`desc`),z(null)},children:[(0,G.jsx)(nt,{className:`h-3.5 w-3.5`}),w(`table.sortDesc`)]}),(0,G.jsx)(`div`,{className:`my-1 h-px bg-border`})]}),(0,G.jsxs)(`button`,{type:`button`,className:`flex w-full items-center gap-2 rounded-sm px-2 py-1.5 text-sm hover:bg-accent hover:text-accent-foreground cursor-pointer`,onClick:()=>ke(be.columnKey),children:[(0,G.jsx)(At,{className:`h-3.5 w-3.5`}),w(`table.hideColumn`)]})]})]})},{namespace:`ui`,label:`Data Table`,icon:`table`,inputs:[{name:`caption`,type:`string`,label:`Caption`},{name:`columns`,type:`array`,label:`Columns`,description:`Array of { header, accessorKey, className, width, sortable, filterable, resizable }`,required:!0},{name:`data`,type:`array`,label:`Data`,description:`Array of data objects`,required:!0},{name:`pagination`,type:`boolean`,label:`Enable Pagination`,defaultValue:!0},{name:`pageSize`,type:`number`,label:`Page Size`,defaultValue:10},{name:`searchable`,type:`boolean`,label:`Enable Search`,defaultValue:!0},{name:`selectable`,type:`boolean`,label:`Enable Row Selection`,defaultValue:!1},{name:`sortable`,type:`boolean`,label:`Enable Sorting`,defaultValue:!0},{name:`exportable`,type:`boolean`,label:`Enable Export`,defaultValue:!1},{name:`rowActions`,type:`boolean`,label:`Show Row Actions`,defaultValue:!1},{name:`resizableColumns`,type:`boolean`,label:`Enable Column Resizing`,defaultValue:!0},{name:`reorderableColumns`,type:`boolean`,label:`Enable Column Reordering`,defaultValue:!0},{name:`className`,type:`string`,label:`CSS Class`}],defaultProps:{caption:`Enterprise Data Table`,pagination:!0,pageSize:10,searchable:!0,selectable:!0,sortable:!0,exportable:!0,rowActions:!0,resizableColumns:!0,reorderableColumns:!0,columns:[{header:`ID`,accessorKey:`id`,width:`80px`},{header:`Name`,accessorKey:`name`},{header:`Email`,accessorKey:`email`},{header:`Status`,accessorKey:`status`},{header:`Role`,accessorKey:`role`}],data:[{id:1,name:`John Doe`,email:`john@example.com`,status:`Active`,role:`Admin`},{id:2,name:`Jane Smith`,email:`jane@example.com`,status:`Active`,role:`User`},{id:3,name:`Bob Johnson`,email:`bob@example.com`,status:`Inactive`,role:`User`},{id:4,name:`Alice Williams`,email:`alice@example.com`,status:`Active`,role:`Manager`},{id:5,name:`Charlie Brown`,email:`charlie@example.com`,status:`Active`,role:`User`},{id:6,name:`Diana Prince`,email:`diana@example.com`,status:`Active`,role:`Admin`},{id:7,name:`Ethan Hunt`,email:`ethan@example.com`,status:`Inactive`,role:`User`},{id:8,name:`Fiona Gallagher`,email:`fiona@example.com`,status:`Active`,role:`User`},{id:9,name:`George Wilson`,email:`george@example.com`,status:`Active`,role:`Manager`},{id:10,name:`Hannah Montana`,email:`hannah@example.com`,status:`Active`,role:`User`},{id:11,name:`Ivan Drago`,email:`ivan@example.com`,status:`Inactive`,role:`User`},{id:12,name:`Julia Roberts`,email:`julia@example.com`,status:`Active`,role:`Admin`}]}});function Oz(e){return e.split(`-`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)}var kz={Home:`House`};function Az(e){if(!e)return null;let t=Oz(e);return un[kz[t]||t]??null}var jz=(0,W.forwardRef)(({schema:e,className:t,context:n,...r},i)=>{let{"data-obj-id":a,"data-obj-type":o,style:s,data:c,...l}=r,{execute:u}=sM(),[d,f]=(0,W.useState)(!1),p=typeof c==`object`&&c?c:{},m=Zj(Xj(e.visible),p),h=Zj(Xj(e.enabled),p),g=Az(e.icon),_=e.variant===`primary`?`default`:e.variant||`default`,v=e.size===`md`?`default`:e.size||`default`,y=(0,W.useCallback)(async()=>{if(!d){f(!0);try{let t=Array.isArray(e.params)?{actionParams:e.params}:{params:e.params};await u({type:e.actionType||e.type,name:e.name,target:e.target,execute:e.execute,endpoint:e.endpoint,method:e.method,...t,confirmText:e.confirmText,successMessage:e.successMessage,errorMessage:e.errorMessage,refreshAfter:e.refreshAfter,toast:e.toast,...n})}finally{f(!1)}}},[e,u,d,n]);return e.visible&&!m?null:(0,G.jsxs)(Z,{ref:i,type:`button`,variant:_,size:v,className:X(e.className,t),disabled:(e.enabled?!h:!1)||d,onClick:y,...l,"data-obj-id":a,"data-obj-type":o,style:s,children:[d&&(0,G.jsx)(dt,{className:`mr-2 h-4 w-4 animate-spin`}),!d&&g&&(0,G.jsx)(g,{className:X(`h-4 w-4`,e.label&&`mr-2`)}),e.label]})});jz.displayName=`ActionButtonRenderer`,Y.register(`action:button`,jz,{namespace:`action`,label:`Action Button`,inputs:[{name:`name`,type:`string`,label:`Action Name`},{name:`label`,type:`string`,label:`Label`,defaultValue:`Action`},{name:`icon`,type:`string`,label:`Icon`},{name:`type`,type:`enum`,label:`Action Type`,enum:[`script`,`url`,`modal`,`flow`,`api`],defaultValue:`script`},{name:`target`,type:`string`,label:`Target`},{name:`variant`,type:`enum`,label:`Variant`,enum:[`default`,`primary`,`secondary`,`destructive`,`outline`,`ghost`],defaultValue:`default`},{name:`size`,type:`enum`,label:`Size`,enum:[`sm`,`md`,`lg`],defaultValue:`md`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{label:`Action`,type:`script`,variant:`default`,size:`md`}});var Mz=(0,W.forwardRef)(({schema:e,className:t,context:n,...r},i)=>{let{"data-obj-id":a,"data-obj-type":o,style:s,...c}=r,{execute:l}=sM(),[u,d]=(0,W.useState)(!1),f=Zj(Xj(e.visible)),p=Zj(Xj(e.enabled)),m=Az(e.icon),h=e.variant===`primary`?`default`:e.variant||`ghost`,g=(0,W.useCallback)(async()=>{if(!u){d(!0);try{await l({type:e.type,name:e.name,target:e.target,execute:e.execute,endpoint:e.endpoint,method:e.method,params:e.params,confirmText:e.confirmText,successMessage:e.successMessage,errorMessage:e.errorMessage,refreshAfter:e.refreshAfter,toast:e.toast,...n})}finally{d(!1)}}},[e,l,u,n]);if(e.visible&&!f)return null;let _=(0,G.jsx)(Z,{ref:i,type:`button`,variant:h,size:`icon`,className:X(`h-8 w-8`,e.className,t),disabled:(e.enabled?!p:!1)||u,onClick:g,"aria-label":e.label||e.name,...c,"data-obj-id":a,"data-obj-type":o,style:s,children:u?(0,G.jsx)(dt,{className:`h-4 w-4 animate-spin`}):m?(0,G.jsx)(m,{className:`h-4 w-4`}):(0,G.jsx)(`span`,{className:`text-xs`,children:e.label?.charAt(0)||`?`})});return e.label||e.description?(0,G.jsx)(cI,{delayDuration:300,children:(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:_}),(0,G.jsx)(dI,{children:(0,G.jsx)(`p`,{children:e.label||e.description})})]})}):_});Mz.displayName=`ActionIconRenderer`,Y.register(`action:icon`,Mz,{namespace:`action`,label:`Action Icon`,inputs:[{name:`name`,type:`string`,label:`Action Name`},{name:`label`,type:`string`,label:`Tooltip Label`},{name:`icon`,type:`string`,label:`Icon`},{name:`type`,type:`enum`,label:`Action Type`,enum:[`script`,`url`,`modal`,`flow`,`api`],defaultValue:`script`},{name:`target`,type:`string`,label:`Target`},{name:`variant`,type:`enum`,label:`Variant`,enum:[`default`,`secondary`,`destructive`,`outline`,`ghost`],defaultValue:`ghost`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{icon:`play`,type:`script`,variant:`ghost`}});function Nz(){try{let{t:e}=pM(),t=e(`detail.moreActions`);return!t||t===`detail.moreActions`?`More actions`:t}catch{return`More actions`}}var Pz=({action:e,onExecute:t})=>{let n=Zj(Xj(e.visible)),r=Zj(Xj(e.enabled)),i=(0,W.useMemo)(()=>{let t=Az(e.icon);return t?(0,G.jsx)(t,{className:`mr-2 h-4 w-4`}):null},[e.icon]);return e.visible&&!n?null:(0,G.jsxs)(EP,{disabled:e.enabled?!r:!1,onSelect:n=>{n.preventDefault(),t(e)},className:X(e.variant===`destructive`&&`text-destructive focus:text-destructive`,e.className),children:[i,(0,G.jsx)(`span`,{children:e.label||e.name})]})};Pz.displayName=`ActionMenuItem`;var Fz=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n,{execute:c}=sM(),[l,u]=(0,W.useState)(!1),d=Nz(),f=Zj(Xj(e.visible)),p=Az(e.icon)||$t,m=e.variant||`ghost`,h=e.size||`icon`,g=(0,W.useCallback)(async e=>{u(!0);try{if(typeof e.onClick==`function`){await e.onClick();return}await c({type:e.type,name:e.name,target:e.target,execute:e.execute,endpoint:e.endpoint,method:e.method,params:e.params,confirmText:e.confirmText,successMessage:e.successMessage,errorMessage:e.errorMessage,refreshAfter:e.refreshAfter,toast:e.toast})}finally{u(!1)}},[c]);if(e.visible&&!f)return null;let _=e.actions||[];return _.length===0?null:(0,G.jsxs)(bP,{children:[(0,G.jsx)(xP,{asChild:!0,children:(0,G.jsx)(Z,{ref:r,type:`button`,variant:m,size:h,className:X(h===`icon`&&`h-8 w-8`,e.className,t),disabled:l,"aria-label":e.label||d,...s,"data-obj-id":i,"data-obj-type":a,style:o,children:l?(0,G.jsx)(dt,{className:`h-4 w-4 animate-spin`}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(p,{className:X(`h-4 w-4`,e.label&&`mr-2`)}),e.label&&(0,G.jsx)(`span`,{children:e.label})]})})}),(0,G.jsx)(TP,{align:`end`,children:_.map((e,t)=>{let n=e.tags?.includes(`separator-before`)&&t>0;return(0,G.jsxs)(W.Fragment,{children:[n&&(0,G.jsx)(AP,{}),(0,G.jsx)(Pz,{action:e,onExecute:g})]},e.name||t)})})]})});Fz.displayName=`ActionMenuRenderer`,Y.register(`action:menu`,Fz,{namespace:`action`,label:`Action Menu`,inputs:[{name:`label`,type:`string`,label:`Trigger Label`},{name:`icon`,type:`string`,label:`Trigger Icon`},{name:`actions`,type:`object`,label:`Actions`},{name:`variant`,type:`enum`,label:`Trigger Variant`,enum:[`default`,`secondary`,`outline`,`ghost`],defaultValue:`ghost`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{variant:`ghost`,actions:[]}});var Iz=({action:e,variant:t,size:n,onExecute:r})=>{let[i,a]=(0,W.useState)(!1),o=Zj(Xj(e.visible)),s=Zj(Xj(e.enabled)),c=Az(e.icon),l=e.variant===`primary`?`default`:e.variant||t||`outline`,u=e.size===`md`?`default`:e.size||n||`sm`,d=(0,W.useCallback)(async()=>{if(!i){a(!0);try{await r(e)}finally{a(!1)}}},[e,r,i]);return e.visible&&!o?null:(0,G.jsxs)(Z,{type:`button`,variant:l,size:u,className:e.className,disabled:(e.enabled?!s:!1)||i,onClick:d,children:[i&&(0,G.jsx)(dt,{className:`mr-2 h-4 w-4 animate-spin`}),!i&&c&&(0,G.jsx)(c,{className:X(`h-4 w-4`,e.label&&`mr-2`)}),e.label]})};Iz.displayName=`InlineActionButton`;var Lz=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let{"data-obj-id":i,"data-obj-type":a,style:o,...s}=n,{execute:c}=sM(),[l,u]=(0,W.useState)(!1),d=Zj(Xj(e.visible)),f=e.actions||[];e.location&&(f=f.filter(t=>!t.locations||t.locations.includes(e.location)));let p=(0,W.useCallback)(async e=>{await c({type:e.type,name:e.name,target:e.target,execute:e.execute,endpoint:e.endpoint,method:e.method,params:e.params,confirmText:e.confirmText,successMessage:e.successMessage,errorMessage:e.errorMessage,refreshAfter:e.refreshAfter,toast:e.toast})},[c]);if(e.visible&&!d||f.length===0)return null;if((e.display||`inline`)===`dropdown`){let n=Az(e.icon);return(0,G.jsxs)(bP,{children:[(0,G.jsx)(xP,{asChild:!0,children:(0,G.jsxs)(Z,{type:`button`,variant:e.variant||`outline`,size:e.size===`md`?`default`:e.size||`default`,className:X(e.className,t),disabled:l,"data-obj-id":i,"data-obj-type":a,style:o,children:[l&&(0,G.jsx)(dt,{className:`mr-2 h-4 w-4 animate-spin`}),!l&&n&&(0,G.jsx)(n,{className:`mr-2 h-4 w-4`}),e.label||`Actions`,(0,G.jsx)(nt,{className:`ml-2 h-3 w-3 opacity-50`})]})}),(0,G.jsx)(TP,{align:`end`,children:f.map((e,t)=>{let n=Az(e.icon),r=e.tags?.includes(`separator-before`)&&t>0;return(0,G.jsxs)(W.Fragment,{children:[r&&(0,G.jsx)(AP,{}),(0,G.jsxs)(EP,{onSelect:async t=>{t.preventDefault(),u(!0);try{await p(e)}finally{u(!1)}},className:X(e.variant===`destructive`&&`text-destructive focus:text-destructive`,e.className),children:[n&&(0,G.jsx)(n,{className:`mr-2 h-4 w-4`}),(0,G.jsx)(`span`,{children:e.label||e.name})]})]},e.name||t)})})]})}return(0,G.jsx)(`div`,{ref:r,className:X(`flex items-center gap-2`,e.className,t),...s,"data-obj-id":i,"data-obj-type":a,style:o,children:f.map(t=>(0,G.jsx)(Iz,{action:t,variant:e.variant,size:e.size,onExecute:p},t.name))})});Lz.displayName=`ActionGroupRenderer`,Y.register(`action:group`,Lz,{namespace:`action`,label:`Action Group`,inputs:[{name:`name`,type:`string`,label:`Group Name`},{name:`label`,type:`string`,label:`Label`},{name:`icon`,type:`string`,label:`Icon`},{name:`actions`,type:`object`,label:`Actions`},{name:`display`,type:`enum`,label:`Display Mode`,enum:[`inline`,`dropdown`],defaultValue:`inline`},{name:`variant`,type:`enum`,label:`Variant`,enum:[`default`,`secondary`,`outline`,`ghost`],defaultValue:`outline`},{name:`size`,type:`enum`,label:`Size`,enum:[`sm`,`md`,`lg`],defaultValue:`sm`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{display:`inline`,variant:`outline`,size:`sm`,actions:[]}});function Rz(){try{let{t:e}=pM(),t=e(`common.actions`);return!t||t===`common.actions`?`Actions`:t}catch{return`Actions`}}var zz=(0,W.forwardRef)(({schema:e,className:t,...n},r)=>{let i=Rz(),{"data-obj-id":a,"data-obj-type":o,style:s,data:c,actions:l,systemActions:u,location:d,maxVisible:f,mobileMaxVisible:p,direction:m,gap:h,variant:g,size:_,visible:v,...y}=n,b=Zj(Xj(e.visible)),x=oI(),S=(0,W.useMemo)(()=>{let t=e.actions||[],n=e.location?t.filter(t=>!t.locations||t.locations.length===0||t.locations.includes(e.location)):t,r=new Set;return n.filter(e=>e.name?r.has(e.name)?!1:(r.add(e.name),!0):!0)},[e.actions,e.location]),C=(0,W.useMemo)(()=>{let t=e.systemActions||[],n=new Set;return t.filter(e=>e.name?n.has(e.name)?!1:(n.add(e.name),!0):!0)},[e.systemActions]),w=x?e.mobileMaxVisible??1:e.maxVisible??3,{inlineActions:T,overflowActions:E}=(0,W.useMemo)(()=>S.length<=w?{inlineActions:S,overflowActions:[]}:{inlineActions:S.slice(0,w),overflowActions:S.slice(w)},[S,w]),ee=(0,W.useMemo)(()=>{if(C.length===0)return E;if(E.length===0)return C;let[e,...t]=C,n={...e,tags:[...e.tags||[],`separator-before`]};return[...E,n,...t]},[E,C]);if(e.visible&&!b||S.length===0&&C.length===0)return null;let D=e.direction||`horizontal`,O=e.gap||`gap-2`,k=ee.length>0?Y.get(`action:menu`):null,A=k?(0,G.jsx)(k,{schema:{type:`action:menu`,actions:ee,variant:e.variant||`ghost`,size:e.size||`sm`}}):null;return(0,G.jsxs)(`div`,{ref:r,className:X(`flex items-center`,D===`vertical`?`flex-col items-stretch`:`flex-row flex-wrap`,O,e.className,t),role:`toolbar`,"aria-label":i,...y,"data-obj-id":a,"data-obj-type":o,style:s,children:[T.map(t=>{let n=t.component||`action:button`,r=Y.get(n);return r?(0,G.jsx)(r,{schema:{...t,type:n,actionType:t.type,variant:t.variant||e.variant,size:t.size||e.size},data:c},t.name):null}),ee.length>0&&A]})});zz.displayName=`ActionBarRenderer`,Y.register(`action:bar`,zz,{namespace:`action`,label:`Action Bar`,inputs:[{name:`actions`,type:`object`,label:`Actions`},{name:`systemActions`,type:`object`,label:`System Actions (always in overflow)`},{name:`location`,type:`enum`,label:`Location`,enum:[`list_toolbar`,`list_item`,`record_header`,`record_more`,`record_related`,`global_nav`]},{name:`maxVisible`,type:`number`,label:`Max Visible Actions`,defaultValue:3},{name:`direction`,type:`enum`,label:`Direction`,enum:[`horizontal`,`vertical`],defaultValue:`horizontal`},{name:`variant`,type:`enum`,label:`Default Variant`,enum:[`default`,`secondary`,`outline`,`ghost`],defaultValue:`outline`},{name:`size`,type:`enum`,label:`Default Size`,enum:[`sm`,`md`,`lg`],defaultValue:`sm`},{name:`className`,type:`string`,label:`CSS Class`,advanced:!0}],defaultProps:{maxVisible:3,direction:`horizontal`,variant:`outline`,size:`sm`,actions:[]}}),(0,W.createContext)(null),(0,W.createContext)(null),(0,W.createContext)(null);var Bz=(0,W.createContext)(null);function Vz(){return{name:`object-url`,async upload(e){let t=e,n=`name`in t&&t.name||`upload`;return{url:URL.createObjectURL(e),name:n,size:e.size,mimeType:e.type||`application/octet-stream`}}}}function Hz(){let e=(0,W.useContext)(Bz),t=(0,W.useMemo)(()=>{let e=Vz();return{upload:(t,n)=>e.upload(t,n),adapter:e}},[]);return e??t}var Uz=Object.defineProperty,Wz=(e,t)=>()=>(e&&(t=e(e=0)),t),Gz=(e,t)=>{let n={};for(var r in e)Uz(n,r,{get:e[r],enumerable:!0});return t||Uz(n,Symbol.toStringTag,{value:`Module`}),n},Kz=Gz({TextField:()=>qz});function qz({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema;if(r)return(0,G.jsx)(`span`,{className:`text-sm`,children:e||(0,G.jsx)($L,{})});let o=a?.rows,{inputType:s,...c}=i;return o&&o>1?(0,G.jsx)(aL,{...c,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder,disabled:r||c.disabled}):(0,G.jsx)(ZP,{...c,type:a?.type===`password`?`password`:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder,disabled:r||c.disabled})}var Jz=Wz((()=>{})),Yz=Gz({NumberField:()=>Xz});function Xz({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return e==null?(0,G.jsx)($L,{}):(0,G.jsx)(`span`,{className:`text-sm`,children:e});let a=n||i.schema,o=a?.precision,{inputType:s,...c}=i;return(0,G.jsx)(ZP,{...c,type:`number`,value:e??``,onChange:e=>{let n=e.target.value;t(n===``?null:Number(n))},placeholder:a?.placeholder,disabled:r||c.disabled,step:o?10**-o:`any`})}var Zz=Wz((()=>{})),Qz=Gz({BooleanField:()=>$z});function $z({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.widget,s=(0,W.useId)(),c=a?.name||s,l=a?.label||`Checkbox`;if(r)return(0,G.jsx)(`span`,{className:`text-sm`,children:e?`Yes`:`No`});let{inputType:u,...d}=i;return o===`checkbox`?(0,G.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,G.jsx)(jN,{...d,id:c,checked:!!e,onCheckedChange:e=>t(!!e),disabled:r||d.disabled}),(0,G.jsx)(NP,{htmlFor:c,className:`sr-only`,children:l})]}):(0,G.jsxs)(`div`,{className:`flex items-center space-x-2`,children:[(0,G.jsx)(KI,{...d,id:c,checked:!!e,onCheckedChange:t,disabled:r||d.disabled}),(0,G.jsx)(NP,{htmlFor:c,className:`sr-only`,children:l})]})}var eB=Wz((()=>{})),tB,nB,rB=Wz((()=>{tB={"common.selectOption":`Select an option`,"common.select":`Select...`,"common.search":`Search`,"table.selected":`{{count}} selected`},nB=mM(tB,`common.selectOption`)})),iB=Gz({SelectField:()=>aB});function aB({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.options||[],{t:s}=nB();if(r){let t=o.find(t=>t.value===e)?.label||e;return t?(0,G.jsx)(`span`,{className:`text-sm`,children:t}):(0,G.jsx)($L,{})}return(0,G.jsxs)(RF,{...i,value:e,onValueChange:t,disabled:r||i.disabled,children:[(0,G.jsx)(BF,{className:i.className,id:i.id,children:(0,G.jsx)(zF,{placeholder:a?.placeholder||s(`common.selectOption`)})}),(0,G.jsx)(UF,{position:`popper`,children:o.map(e=>(0,G.jsx)(GF,{value:e.value,children:e.label},e.value))})]})}var oB=Wz((()=>{rB()})),sB=Gz({DateField:()=>cB});function cB({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return e?(0,G.jsx)(`span`,{className:`text-sm`,children:new Date(e).toLocaleDateString()}):(0,G.jsx)($L,{});let{inputType:a,...o}=i;return(0,G.jsx)(ZP,{...o,type:`date`,value:e||``,onChange:e=>t(e.target.value),disabled:r||o.disabled})}var lB=Wz((()=>{})),uB=Gz({EmailField:()=>dB});function dB({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let o=n||a.schema;if(r)return e?(0,G.jsx)(`a`,{href:`mailto:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,G.jsx)($L,{});let{inputType:s,...c}=a;return(0,G.jsx)(ZP,{...c,type:`email`,value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder||`email@example.com`,disabled:r||c.disabled,"aria-invalid":!!i})}var fB=Wz((()=>{})),pB=Gz({PhoneField:()=>mB});function mB({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let o=n||a.schema;if(r)return e?(0,G.jsx)(`a`,{href:`tel:${e}`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,G.jsx)($L,{});let{inputType:s,...c}=a;return(0,G.jsx)(ZP,{...c,type:`tel`,value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder||`(555) 123-4567`,disabled:r||c.disabled,"aria-invalid":!!i})}var hB=Wz((()=>{})),gB=Gz({UrlField:()=>_B});function _B({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let o=n||a.schema;if(r)return e?e.startsWith(`http://`)||e.startsWith(`https://`)?(0,G.jsx)(`a`,{href:e,target:`_blank`,rel:`noopener noreferrer`,className:`text-sm text-blue-600 hover:text-blue-800 hover:underline`,children:e}):(0,G.jsx)(`span`,{className:`text-sm`,children:e}):(0,G.jsx)($L,{});let{inputType:s,...c}=a;return(0,G.jsx)(ZP,{...c,type:`url`,value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder||`https://example.com`,disabled:r||c.disabled,"aria-invalid":!!i})}var vB=Wz((()=>{})),yB=Gz({CurrencyField:()=>xB});function bB(e,t,n){if(t)try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t,minimumFractionDigits:n,maximumFractionDigits:n}).format(e)}catch{return`${t} ${e.toFixed(n)}`}try{return new Intl.NumberFormat(`en-US`,{minimumFractionDigits:n,maximumFractionDigits:n}).format(e)}catch{return e.toFixed(n)}}function xB({value:e,onChange:t,field:n,readonly:r,errorMessage:i,className:a,...o}){let s=n||o.schema,c=s?.currency,l=s?.precision??2;if(r)return e==null?(0,G.jsx)($L,{}):(0,G.jsx)(`span`,{className:`text-sm font-medium tabular-nums`,children:bB(Number(e),c,l)});let u=e=>{let n=parseFloat(e.target.value);isNaN(n)||t(parseFloat(n.toFixed(l)))},d=c?c===`USD`?`$`:c:``;return(0,G.jsxs)(`div`,{className:`relative`,children:[d&&(0,G.jsx)(`span`,{className:`absolute left-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:d}),(0,G.jsx)(ZP,{...o,type:`number`,value:e??``,onChange:e=>{t(e.target.value===``?null:parseFloat(e.target.value))},onBlur:u,placeholder:s?.placeholder||`0.00`,disabled:r||o.disabled,className:`${d?`pl-8`:``} ${a||``}`,step:(10**-l).toFixed(l),"aria-invalid":!!i})]})}var SB=Wz((()=>{})),CB=Gz({TextAreaField:()=>wB});function wB({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){if(r)return(0,G.jsx)(`div`,{className:`text-sm whitespace-pre-wrap`,children:e||(0,G.jsx)($L,{})});let o=n||a.schema,s=o?.rows||4,c=o?.max_length,l=!!(a.mobileFullscreen??o?.mobile_fullscreen??a.mobile_fullscreen??a.schema?.mobile_fullscreen),[u,d]=(0,W.useState)(!1),[f,p]=(0,W.useState)(e??``),m=()=>{p(e??``),d(!0)},h=()=>d(!1),g=()=>{t(f),d(!1)},{inputType:_,mobileFullscreen:v,...y}=a;return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(aL,{...y,value:e||``,onChange:e=>t(e.target.value),placeholder:o?.placeholder,disabled:r||y.disabled,rows:s,maxLength:c,"aria-invalid":!!i,className:y.className}),l&&(0,G.jsx)(`button`,{type:`button`,onClick:m,className:`absolute top-1.5 right-1.5 inline-flex items-center justify-center size-7 rounded-md bg-background/80 text-muted-foreground hover:text-foreground hover:bg-background border shadow-sm transition-colors`,"aria-label":`Edit ${o?.label??`text`} fullscreen`,"data-testid":`textarea-fullscreen-toggle`,children:(0,G.jsx)(Ze,{className:`size-3.5`})}),c&&(0,G.jsxs)(`div`,{className:`absolute bottom-2 right-2 text-xs text-gray-400`,"aria-live":`polite`,"aria-label":`Character count: ${(e||``).length} of ${c}`,children:[(e||``).length,`/`,c]}),l&&(0,G.jsx)(FN,{open:u,onOpenChange:d,children:(0,G.jsxs)(zN,{className:`sm:max-w-3xl h-[100dvh] sm:h-[80vh] max-h-[100dvh] sm:max-h-[80vh] flex flex-col p-0 gap-0`,"data-testid":`textarea-fullscreen-dialog`,children:[(0,G.jsx)(BN,{className:`p-4 border-b`,children:(0,G.jsx)(HN,{className:`text-base`,children:o?.label??`Edit text`})}),(0,G.jsx)(`div`,{className:`flex-1 min-h-0 p-4`,children:(0,G.jsx)(aL,{autoFocus:!0,value:f,onChange:e=>p(e.target.value),maxLength:c,placeholder:o?.placeholder,className:`h-full min-h-full resize-none text-base`,"data-testid":`textarea-fullscreen-input`})}),(0,G.jsxs)(VN,{className:`p-3 border-t flex-row justify-between sm:justify-end gap-2`,children:[c&&(0,G.jsxs)(`span`,{className:`text-xs text-muted-foreground self-center`,children:[f.length,`/`,c]}),(0,G.jsxs)(`div`,{className:`flex gap-2 ml-auto`,children:[(0,G.jsxs)(Z,{type:`button`,variant:`ghost`,onClick:h,children:[(0,G.jsx)(At,{className:`size-4 mr-1`}),` Cancel`]}),(0,G.jsxs)(Z,{type:`button`,onClick:g,"data-testid":`textarea-fullscreen-save`,children:[(0,G.jsx)(Ct,{className:`size-4 mr-1`}),` Done`]})]})]})]})})]})}var TB=Wz((()=>{})),EB=Gz({RichTextField:()=>DB});function DB({value:e,onChange:t,field:n,readonly:r,errorMessage:i,...a}){let{t:o}=pM();if(r)return(0,G.jsx)(`div`,{className:`text-sm prose prose-sm max-w-none`,children:e||(0,G.jsx)($L,{})});let s=n||a.schema,c=s?.rows||8,l=s?.format||`markdown`;return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-gray-500`,children:[(0,G.jsx)(`span`,{children:o(`fields.richText.format`,{format:l,defaultValue:`Format: ${l}`})}),(0,G.jsx)(`span`,{className:`italic`,children:o(`fields.richText.basicEditorHint`,{defaultValue:`Rich text editor (basic)`})})]}),(0,G.jsx)(aL,{value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||o(`fields.richText.placeholder`,{defaultValue:`Enter text...`}),disabled:r||a.disabled,rows:c,className:`font-mono text-sm ${a.className||``}`,"aria-invalid":!!i})]})}var OB=Wz((()=>{}));function kB(e){return typeof e==`string`?{field:e}:e}function AB(e){return e.replace(/_/g,` `).replace(/([a-z])([A-Z])/g,`$1 $2`).replace(/\b\w/g,e=>e.toUpperCase())}function jB(e){let t={};for(let n of e)switch(n.operator){case`eq`:t[n.field]=n.value;break;case`ne`:t[n.field]={$ne:n.value};break;case`gt`:t[n.field]={$gt:n.value};break;case`lt`:t[n.field]={$lt:n.value};break;case`gte`:t[n.field]={$gte:n.value};break;case`lte`:t[n.field]={$lte:n.value};break;case`contains`:t[n.field]={$contains:n.value};break;case`in`:t[n.field]={$in:n.value};break;case`notIn`:t[n.field]={$nin:n.value};break}return t}function MB(e,t){let n={};for(let r of t){let t=e[r.field];t==null||t===``||(r.type===`boolean`?n[r.field]=!!t:r.type===`text`?n[r.field]={$contains:t}:n[r.field]=t)}return n}function NB({open:e,onOpenChange:t,title:n=`Select Record`,multiple:r=!1,dataSource:i,objectName:a,columns:o,displayField:s=`name`,titleFormat:c,idField:l=`id`,pageSize:u=PB,value:d,onSelect:f,onSelectRecords:p,lookupFilters:m,cellRenderer:h,filterColumns:g,renderFilterBar:_,renderGrid:v}){let[y,b]=(0,W.useState)([]),[x,S]=(0,W.useState)(!1),[C,w]=(0,W.useState)(null),[T,E]=(0,W.useState)(0),[ee,D]=(0,W.useState)(``),[O,k]=(0,W.useState)(1),A=(0,W.useRef)(null),[te,ne]=(0,W.useState)(null),[re,ie]=(0,W.useState)(`asc`),[j,M]=(0,W.useState)(new Set),ae=(0,W.useRef)(new Map),[N,oe]=(0,W.useState)(-1),P=(0,W.useRef)(null),[se,F]=(0,W.useState)(!1),[ce,le]=(0,W.useState)({}),[ue,de]=(0,W.useState)({}),fe=(0,W.useRef)(null),[pe,me]=(0,W.useState)(``),I=(0,W.useMemo)(()=>o&&o.length>0?o.map(kB):[{field:s,label:AB(s)}],[o,s]),he=(0,W.useMemo)(()=>{if(g&&g.length>0)return g;if(m&&m.length>0)return m.map(e=>{let t=`text`;return typeof e.value==`boolean`?t=`boolean`:Array.isArray(e.value)?t=`select`:typeof e.value==`number`||e.operator===`gt`||e.operator===`lt`||e.operator===`gte`||e.operator===`lte`?t=`number`:(e.operator===`in`||e.operator===`notIn`)&&(t=`select`),{field:e.field,label:AB(e.field),type:t,...Array.isArray(e.value)?{options:e.value.map(e=>{if(typeof e==`object`&&e){let t=e;return{label:String(t.name||t.label||t.title||e),value:e}}return{label:String(e),value:e}})}:{}}})},[g,m]),L=(0,W.useMemo)(()=>{let e=m?.length?jB(m):{},t=he?.length?MB(ce,he):{},n={...e,...t};return Object.keys(n).length>0?n:void 0},[m,he,ce]),ge=Math.max(1,Math.ceil(T/u)),_e=(0,W.useCallback)(async(e,t=1,n,r)=>{if(!(!i||!a)){S(!0),w(null);try{let o={$top:u,$skip:(t-1)*u};e&&e.trim()&&(o.$search=e.trim()),n&&(o.$orderby={[n.field]:n.direction});let s=r===void 0?L:r;s&&Object.keys(s).length>0&&(o.$filter=s);let c=await i.find(a,o),l=c?.data??c??[];b(l),E(c?.total??l.length),oe(-1)}catch(e){w(e instanceof Error?e.message:String(e)),b([])}finally{S(!1)}}},[i,a,u,L]),ve=(0,W.useMemo)(()=>te?{field:te,direction:re}:null,[te,re]);(0,W.useEffect)(()=>{e||(D(``),k(1),w(null),b([]),ne(null),ie(`asc`),oe(-1),F(!1),le({}),de({}),me(``),M(new Set(r&&Array.isArray(d)?d:[])),ae.current.clear())},[e]),(0,W.useEffect)(()=>{e&&_e(ee||void 0,O,ve)},[e,O,ve,L]),(0,W.useEffect)(()=>{e&&r&&M(new Set(Array.isArray(d)?d:[]))},[e,r,d]);let R=(0,W.useCallback)(e=>{D(e),k(1),A.current&&clearTimeout(A.current),A.current=setTimeout(()=>{_e(e||void 0,1,ve)},300)},[_e,ve]);(0,W.useEffect)(()=>()=>{A.current&&clearTimeout(A.current)},[]);let ye=(0,W.useCallback)(e=>{ne(t=>t===e?(ie(e=>e===`asc`?`desc`:`asc`),e):(ie(`asc`),e)),k(1)},[]),be=(0,W.useCallback)(e=>e[l]??e.id??e._id,[l]),z=(0,W.useCallback)(e=>{let t=be(e);return r?j.has(t):d===t},[r,d,j,be]),xe=(0,W.useCallback)(e=>{let n=be(e);r?M(t=>{let r=new Set(t);return r.has(n)?(r.delete(n),ae.current.delete(n)):(r.add(n),ae.current.set(n,e)),r}):(f(n),p?.([e]),t(!1))},[r,be,f,p,t]),Se=(0,W.useCallback)(()=>{let e=Array.from(j);f(e);let n=e.map(e=>ae.current.get(e)).filter(Boolean);p?.(n),t(!1)},[j,f,p,t]),Ce=(0,W.useCallback)(()=>{k(e=>Math.max(1,e-1))},[]),we=(0,W.useCallback)(()=>{k(e=>Math.min(ge,e+1))},[ge]),B=(0,W.useCallback)(e=>{if(e.key!==`Enter`)return;let t=parseInt(pe,10);!isNaN(t)&&t>=1&&t<=ge&&k(t),me(``)},[pe,ge]),Te=(0,W.useCallback)(e=>{y.length!==0&&(e.key===`ArrowDown`?(e.preventDefault(),oe(e=>Math.min(e+1,y.length-1))):e.key===`ArrowUp`?(e.preventDefault(),oe(e=>Math.max(e-1,0))):(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),N>=0&&N<y.length&&xe(y[N])))},[y,N,xe]);(0,W.useEffect)(()=>{if(N>=0&&P.current){let e=P.current.querySelector(`[data-row-index="${N}"]`);e&&typeof e.scrollIntoView==`function`&&e.scrollIntoView({block:`nearest`})}},[N]);let V=(0,W.useCallback)((e,t)=>{if(c&&t.field===s){let t=`[-\\u2013\\u2014|/·,:]`,n=!1,r=c.replace(/\{([^{}]+)\}/g,(t,r)=>{let i=e[r.trim()];return i!=null&&i!==``?(n=!0,String(i)):`\0`});if(n){let e=r.replace(RegExp(`\\s*${t}\\s*`,`g`),``).replace(RegExp(`\\s*${t}\\s*`,`g`),``).replace(RegExp(`\0`,`g`),``).replace(/\s+/g,` `).trim();if(e)return e}}let n=e[t.field];if(t.type&&h){let e=h(t.type);if(e)return(0,G.jsx)(e,{value:n,field:{name:t.field,type:t.type}})}return n==null?``:typeof n==`object`?n.$numberDecimal?String(Number(n.$numberDecimal)):n.$oid?String(n.$oid):n.$date?new Date(n.$date).toLocaleDateString():n.name||n.label?String(n.name||n.label):JSON.stringify(n):typeof n==`boolean`?n?`Yes`:`No`:String(n)},[h,c,s]),Ee=(0,W.useCallback)(e=>te===e?(0,G.jsx)(re===`asc`?Gt:Zt,{className:`ml-1 size-3`}):(0,G.jsx)(jt,{className:`ml-1 size-3 opacity-40`}),[te,re]),H=(0,W.useCallback)((e,t,n)=>{e.preventDefault(),e.stopPropagation(),fe.current={field:t,startX:e.clientX,startWidth:n};let r=e=>{if(!fe.current)return;let t=e.clientX-fe.current.startX,n=Math.max(FB,fe.current.startWidth+t);de(e=>({...e,[fe.current.field]:n}))},i=()=>{fe.current=null,document.removeEventListener(`mousemove`,r),document.removeEventListener(`mouseup`,i)};document.addEventListener(`mousemove`,r),document.addEventListener(`mouseup`,i)},[]),De=(0,W.useCallback)((e,t)=>{le(n=>({...n,[e]:t})),k(1)},[]),Oe=(0,W.useCallback)(()=>{le({}),k(1)},[]),ke=(0,W.useMemo)(()=>Object.values(ce).filter(e=>e!=null&&e!==``).length,[ce]),Ae=(0,W.useCallback)(e=>{let t=ce[e.field],n=e.label||AB(e.field);switch(e.type){case`select`:return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(NP,{className:`text-xs text-muted-foreground`,children:n}),(0,G.jsxs)(RF,{value:t==null?``:String(t),onValueChange:t=>De(e.field,t),children:[(0,G.jsx)(BF,{className:`h-8 text-xs`,children:(0,G.jsx)(zF,{placeholder:`Filter ${n}`})}),(0,G.jsx)(UF,{children:e.options?.map(e=>(0,G.jsx)(GF,{value:String(e.value),children:e.label},String(e.value)))})]})]});case`number`:return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(NP,{className:`text-xs text-muted-foreground`,children:n}),(0,G.jsx)(ZP,{type:`number`,className:`h-8 text-xs`,value:t??``,placeholder:`Filter ${n}`,onChange:t=>{let n=t.target.value;De(e.field,n===``?``:Number(n))}})]});case`date`:return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(NP,{className:`text-xs text-muted-foreground`,children:n}),(0,G.jsx)(ZP,{type:`date`,className:`h-8 text-xs`,value:t??``,onChange:t=>De(e.field,t.target.value)})]});case`boolean`:return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(NP,{className:`text-xs text-muted-foreground`,children:n}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 h-8`,children:[(0,G.jsx)(jN,{checked:!!t,onCheckedChange:t=>De(e.field,!!t)}),(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Yes`})]})]});default:return(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(NP,{className:`text-xs text-muted-foreground`,children:n}),(0,G.jsx)(ZP,{className:`h-8 text-xs`,value:t??``,placeholder:`Filter ${n}`,onChange:t=>De(e.field,t.target.value)})]})}},[ce,De]),je=(0,W.useCallback)((e,t)=>e?`bg-primary/5 hover:bg-primary/10`:t%2==1?`bg-muted/20 hover:bg-accent/30`:`hover:bg-accent/30`,[]);return(0,G.jsx)(FN,{open:e,onOpenChange:t,children:(0,G.jsxs)(zN,{className:`w-[95vw] sm:max-w-3xl lg:max-w-5xl max-h-[85vh] sm:max-h-[80vh] flex flex-col gap-0`,"data-testid":`record-picker-dialog`,children:[(0,G.jsx)(BN,{children:(0,G.jsxs)(HN,{children:[n,r&&(0,G.jsx)(`span`,{className:`sr-only`,children:` (multiple selection)`})]})}),(0,G.jsxs)(`div`,{className:`relative rounded-md border bg-muted/30 mb-3`,children:[(0,G.jsx)(st,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,G.jsx)(ZP,{placeholder:`Search...`,value:ee,onChange:e=>R(e.target.value),className:`pl-9 border-0 bg-transparent shadow-none focus-visible:ring-0`,"data-testid":`record-picker-search`}),x&&(0,G.jsx)(dt,{className:`absolute right-3 top-1/2 -translate-y-1/2 size-4 animate-spin text-muted-foreground`,"data-testid":`record-picker-loading-indicator`})]}),he&&he.length>0&&(0,G.jsx)(`div`,{className:`py-2`,children:_?(0,G.jsx)(`div`,{"data-testid":`record-picker-filter-bar`,children:_({filterColumns:he,values:ce,onChange:De,onClear:Oe,activeCount:ke})}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,"data-testid":`record-picker-filter-bar`,children:[(0,G.jsxs)(Z,{type:`button`,variant:ke>0?`secondary`:`outline`,size:`sm`,className:`gap-1.5 shrink-0`,onClick:()=>F(e=>!e),children:[(0,G.jsx)(it,{className:`size-3.5`}),`Filters`,ke>0&&(0,G.jsx)(`span`,{className:`inline-flex h-5 min-w-[20px] items-center justify-center rounded-full bg-primary/10 px-1 text-xs font-medium text-primary`,children:ke})]}),ke>0&&(0,G.jsxs)(Z,{type:`button`,variant:`ghost`,size:`sm`,className:`gap-1 text-xs`,onClick:Oe,children:[(0,G.jsx)(At,{className:`size-3`}),`Clear`]})]}),se&&(0,G.jsx)(`div`,{className:`mt-2 grid gap-3 sm:grid-cols-2 lg:grid-cols-3 border rounded-md p-3 bg-muted/30`,"data-testid":`record-picker-filter-panel`,children:he.map(e=>(0,G.jsx)(`div`,{children:Ae(e)},e.field))})]})}),C&&(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4`,role:`alert`,children:[(0,G.jsx)($e,{className:`size-5 text-destructive`}),(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:C}),(0,G.jsx)(Z,{variant:`outline`,size:`sm`,onClick:()=>_e(ee||void 0,O,ve),type:`button`,children:`Retry`})]}),v?(0,G.jsx)(`div`,{className:`flex-1 min-h-0`,"data-testid":`record-picker-grid-slot`,children:v({columns:I,records:y,loading:x,totalCount:T,currentPage:O,pageSize:u,sortField:te,sortDirection:re,onSort:ye,onPageChange:k,onRowClick:xe,isSelected:z,multiple:r,idField:l,cellRenderer:h})}):(0,G.jsxs)(G.Fragment,{children:[x&&y.length===0&&!C&&(0,G.jsx)(`div`,{className:`flex-1 overflow-hidden min-h-0 border rounded-md`,role:`status`,"aria-live":`polite`,"data-testid":`record-picker-skeleton`,children:(0,G.jsxs)(qI,{children:[(0,G.jsx)(JI,{children:(0,G.jsxs)(ZI,{className:`bg-muted/40`,children:[r&&(0,G.jsx)(QI,{className:`w-10`}),I.map(e=>(0,G.jsx)(QI,{children:(0,G.jsx)(sI,{className:`h-4 w-20`})},e.field))]})}),(0,G.jsx)(YI,{children:Array.from({length:IB},(e,t)=>(0,G.jsxs)(ZI,{children:[r&&(0,G.jsx)($I,{className:`w-10`,children:(0,G.jsx)(sI,{className:`size-4 rounded`})}),I.map(e=>(0,G.jsx)($I,{children:(0,G.jsx)(sI,{className:`h-4 w-full`})},e.field))]},t))})]})}),!x&&!C&&y.length===0&&(0,G.jsx)(`div`,{className:`py-8 text-center`,children:(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No records found`})}),!C&&y.length>0&&(0,G.jsxs)(`div`,{className:`relative flex-1 overflow-auto min-h-0 border rounded-md`,tabIndex:0,onKeyDown:Te,role:`grid`,"aria-label":`Records`,children:[x&&(0,G.jsx)(`div`,{className:`absolute inset-0 z-10 flex items-center justify-center bg-background/60`,"data-testid":`record-picker-loading-overlay`,children:(0,G.jsx)(dt,{className:`size-6 animate-spin text-muted-foreground`})}),(0,G.jsxs)(qI,{style:Object.keys(ue).length>0?{tableLayout:`fixed`}:void 0,children:[(0,G.jsx)(JI,{className:`sticky top-0 z-[5] bg-muted/50 [&_tr]:border-b`,"data-testid":`record-picker-sticky-header`,children:(0,G.jsxs)(ZI,{children:[r&&(0,G.jsx)(QI,{className:`w-10`}),I.map(e=>{let t=ue[e.field];return(0,G.jsxs)(QI,{style:t?{width:`${t}px`,minWidth:`${t}px`}:e.width?{width:e.width}:void 0,className:`cursor-pointer select-none relative group text-xs font-semibold uppercase tracking-wider`,onClick:()=>ye(e.field),"aria-sort":te===e.field?re===`asc`?`ascending`:`descending`:`none`,children:[(0,G.jsxs)(`span`,{className:`inline-flex items-center`,children:[e.label||AB(e.field),Ee(e.field)]}),(0,G.jsx)(`span`,{role:`separator`,"aria-orientation":`vertical`,className:`absolute right-0 top-0 bottom-0 w-1 cursor-col-resize opacity-0 group-hover:opacity-100 bg-border hover:bg-primary/50 transition-opacity`,onMouseDown:t=>{let n=t.currentTarget.parentElement?.getBoundingClientRect();H(t,e.field,n?.width??100)},onClick:e=>e.stopPropagation(),"data-testid":`resize-handle-${e.field}`})]},e.field)})]})}),(0,G.jsx)(YI,{ref:P,children:y.map((e,t)=>{let n=be(e),i=z(e),a=t===N;return(0,G.jsxs)(ZI,{"data-row-index":t,className:X(`cursor-pointer transition-colors`,je(i,t),a&&`ring-2 ring-primary ring-inset`),onClick:()=>xe(e),"data-testid":`record-row-${n}`,"aria-selected":i,children:[r&&(0,G.jsx)($I,{className:`w-10`,children:i&&(0,G.jsx)(Ct,{className:`size-4 text-primary`})}),I.map(t=>(0,G.jsx)($I,{className:`py-2.5`,children:V(e,t)},t.field))]},n??t)})})]})]}),!C&&T>0&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between text-sm text-muted-foreground border-t pt-3 mt-2 px-1`,"data-testid":`record-picker-pagination`,children:[(0,G.jsxs)(`span`,{children:[T,` `,T===1?`record`:`records`,ge>1&&` · Page ${O} of ${ge}`]}),ge>1&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(Z,{variant:`outline`,size:`icon`,className:`size-7`,onClick:Ce,disabled:O<=1,type:`button`,"aria-label":`Previous page`,children:(0,G.jsx)(Tt,{className:`size-4`})}),(0,G.jsx)(ZP,{className:`h-7 w-12 text-center text-xs px-1`,placeholder:String(O),value:pe,onChange:e=>me(e.target.value),onKeyDown:B,"aria-label":`Jump to page`,"data-testid":`record-picker-page-jump`}),(0,G.jsx)(Z,{variant:`outline`,size:`icon`,className:`size-7`,onClick:we,disabled:O>=ge,type:`button`,"aria-label":`Next page`,children:(0,G.jsx)(Xe,{className:`size-4`})})]})]})]}),r&&(0,G.jsx)(VN,{children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 w-full justify-between`,children:[(0,G.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[j.size,` selected`]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Z,{variant:`outline`,type:`button`,onClick:()=>t(!1),children:`Cancel`}),(0,G.jsx)(Z,{type:`button`,onClick:Se,children:`Confirm`})]})]})})]})})}var PB,FB,IB,LB=Wz((()=>{PB=10,FB=60,IB=5}));function RB(e){BB=e}function zB(){return BB}var BB,VB=Wz((()=>{})),HB=Gz({LookupField:()=>KB});function UB(e,t){if(!e||typeof e!=`object`||!t)return null;let n=`[-\\u2013\\u2014|/·,:]`,r=!1,i=t.replace(/\{([^{}]+)\}/g,(t,n)=>{let i=e[n.trim()];return i!=null&&i!==``?(r=!0,String(i)):`\0`});return r&&i.replace(RegExp(`\\s*${n}\\s*`,`g`),``).replace(RegExp(`\\s*${n}\\s*`,`g`),``).replace(RegExp(`\0`,`g`),``).replace(/\s+/g,` `).trim()||null}function WB(e,t,n,r,i){let a=e[n]??e.id??e._id,o=(i?UB(e,i):null)??e[t]??e.label??e.name??e.full_name??e.title??e.subject??String(a),s=r?e[r]:void 0;return{value:a,label:String(o),description:s,...e}}function GB(e){return{text:`text`,number:`number`,currency:`number`,percent:`number`,select:`select`,status:`select`,date:`date`,datetime:`date`,boolean:`boolean`}[e]}function KB({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=(0,W.useState)(!1),[s,c]=(0,W.useState)(``),{t:l}=nB(),[u,d]=(0,W.useState)([]),[f,p]=(0,W.useState)(!1),[m,h]=(0,W.useState)(null),[g,_]=(0,W.useState)(0),v=(0,W.useRef)(null),[y,b]=(0,W.useState)([]),[x,S]=(0,W.useState)(-1),C=(0,W.useRef)(null),w=n||i.schema,T=w?.field,E=T&&typeof T==`object`&&(`reference_to`in T||`reference`in T||`type`in T)?T:w,ee=E?.options||[],D=E?.multiple||!1,O=E?.display_field||E?.reference_field||`name`,k=E?.description_field,A=E?.id_field||`id`,te=E?.reference_to||E?.reference,ne=E?.lookup_columns,re=E?.lookup_page_size,ie=E?.lookup_filters,j=(0,W.useMemo)(()=>{let e=E?.depends_on??E?.dependsOn;return e&&Array.isArray(e)?e.map(e=>typeof e==`string`?{field:e,param:e}:{field:e.field,param:e.param??e.field}):[]},[E?.depends_on,E?.dependsOn]),M=i.dependentValues,ae=(0,W.useMemo)(()=>{if(!ne)return;let e=[];for(let t of ne)if(typeof t==`object`&&t.type){let n=GB(t.type);n&&e.push({field:t.field,label:t.label,type:n})}return e.length>0?e:void 0},[ne]),N=(0,W.useContext)(JB),oe=N?.dataSource??null,P=i.dataSource??w?.dataSource??E?.dataSource??oe,se=(0,W.useMemo)(()=>M||(N?.formValues??N?.data??{}),[M,N?.formValues,N?.data]),F=(0,W.useMemo)(()=>j.length===0?!1:j.some(({field:e})=>{let t=se[e];return t==null||t===``||Array.isArray(t)&&t.length===0}),[j,se]),ce=P!=null&&typeof P.find==`function`&&!!te,[le,ue]=(0,W.useState)(null);(0,W.useEffect)(()=>{if(!P||!te)return;let e=P.getObjectSchema;if(typeof e!=`function`)return;let t=!0;return Promise.resolve(e.call(P,te)).then(e=>{t&&ue(e)}).catch(()=>{}),()=>{t=!1}},[P,te]);let de=(0,W.useMemo)(()=>{let e=le?.titleFormat;return typeof e==`string`?e:e&&typeof e==`object`&&typeof e.source==`string`?e.source:null},[le]),fe=i.onCreateNew??w?.onCreateNew,[pe,me]=(0,W.useState)(!1),I=ce?u:ee,he=(0,W.useMemo)(()=>{if(ce||!s)return I;let e=s.toLowerCase();return I.filter(t=>t.label.toLowerCase().includes(e)||t.description&&t.description.toLowerCase().includes(e))},[ce,I,s]);(0,W.useEffect)(()=>{S(-1)},[he.length]);let L=(0,W.useCallback)(async e=>{if(!(!P||!te)){if(F){d([]),_(0);return}p(!0),h(null);try{let t={$top:qB};if(e&&e.trim()&&(t.$search=e.trim()),j.length>0){let e={};for(let{field:t,param:n}of j){let r=se[t];r==null||r===``||(e[n]=typeof r==`number`?r:String(r))}Object.keys(e).length>0&&(t.$filter=e)}let n=await P.find(te,t),r=n?.data??n??[];d(r.map(e=>WB(e,O,A,k,de))),_(n?.total??r.length)}catch(e){h(e instanceof Error?e.message:String(e)),d([])}finally{p(!1)}}},[P,te,O,A,k,de,F,j,se]);(0,W.useEffect)(()=>{a&&ce&&j.length>0&&L(s||void 0)},[(0,W.useMemo)(()=>j.map(e=>`${e.param}=${se[e.field]??``}`).join(`|`),[j,se])]),(0,W.useEffect)(()=>{a&&ce&&L(s||void 0),a||(c(``),h(null),S(-1))},[a]);let ge=(0,W.useCallback)(e=>{c(e),ce&&(v.current&&clearTimeout(v.current),v.current=setTimeout(()=>{L(e||void 0)},300))},[ce,L]);(0,W.useEffect)(()=>()=>{v.current&&clearTimeout(v.current)},[]),(0,W.useEffect)(()=>{if(!ce||!P||!te)return;let t=D?Array.isArray(e)?e:[]:e!=null&&e!==``?[e]:[];if(!t.length)return;let n=t.filter(e=>!_e(e));if(!n.length)return;let r=!1;return(async()=>{try{let e=[];for(let t of n)if(typeof P.findOne==`function`){let n=await P.findOne(te,t);n&&e.push(WB(n,O,A,k,de))}else{let n=await P.find(te,{$filter:{[A]:t},$top:1}),r=n?.data??n??[];r[0]&&e.push(WB(r[0],O,A,k,de))}!r&&e.length&&b(t=>{let n=new Map(t.map(e=>[e.value,e]));for(let t of e)n.set(t.value,t);return Array.from(n.values())})}catch{}})(),()=>{r=!0}},[e,ce,te,O,A,k,D]);let _e=(0,W.useCallback)(e=>ee.find(t=>t.value===e)??u.find(t=>t.value===e)??y.find(t=>t.value===e),[ee,u,y]),ve=D?(Array.isArray(e)?e:[]).map(_e).filter(Boolean):e?[_e(e)].filter(Boolean):[],R=(0,W.useCallback)(n=>{if(D){let r=Array.isArray(e)?e:[];r.includes(n.value)?t(r.filter(e=>e!==n.value)):t([...r,n.value])}else t(n.value),o(!1)},[D,e,t]),ye=n=>{t(D?(Array.isArray(e)?e:[]).filter(e=>e!==n):null)},be=(0,W.useCallback)(e=>{b(e.map(e=>WB(e,O,A,k,de)))},[O,A,k,de]),z=(0,W.useCallback)(e=>{e.key===`ArrowDown`?(e.preventDefault(),S(e=>e<he.length-1?e+1:e)):e.key===`ArrowUp`?(e.preventDefault(),S(e=>e>0?e-1:0)):e.key===`Enter`&&(e.preventDefault(),x>=0&&x<he.length&&R(he[x]))},[he,x,R]);return(0,W.useEffect)(()=>{x>=0&&C.current&&C.current.querySelector(`[data-lookup-index="${x}"]`)?.scrollIntoView({block:`nearest`})},[x]),r?ve.length?D?(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:ve.map((e,t)=>(0,G.jsx)(eN,{variant:`outline`,children:e?.label||e?.[O]},t))}):(0,G.jsx)(`span`,{className:`text-sm`,children:ve[0]?.label||ve[0]?.[O]}):(0,G.jsx)($L,{}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[ve.length>0&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:ve.map((e,t)=>(0,G.jsxs)(eN,{variant:`outline`,className:`gap-1`,children:[e?.label||e?.[O],(0,G.jsx)(`button`,{onClick:()=>ye(e?.value),className:`ml-1 hover:text-destructive`,type:`button`,"aria-label":`Remove ${e?.label||e?.[O]}`,children:(0,G.jsx)(At,{className:`size-3`})})]},t))}),(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsxs)(DF,{open:a,onOpenChange:e=>!F&&o(e),children:[(0,G.jsx)(OF,{asChild:!0,children:(0,G.jsxs)(Z,{variant:`outline`,className:`min-w-0 flex-1 justify-start text-left font-normal`,type:`button`,disabled:F||i.disabled,"data-testid":F?`lookup-trigger-gated`:void 0,title:F?`Select ${j.map(e=>e.field).join(`, `)} first`:void 0,children:[(0,G.jsx)(st,{className:`mr-2 size-4`}),F?`Select ${j.map(e=>e.field).join(`, `)} first`:ve.length===0?w?.placeholder||l(`common.select`):D?l(`table.selected`,{count:ve.length}):l(`common.select`)]})}),(0,G.jsxs)(kF,{className:`w-[var(--radix-popover-trigger-width)] p-0`,align:`start`,children:[(0,G.jsx)(`div`,{className:`p-2`,children:(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(st,{className:`absolute left-3 top-1/2 -translate-y-1/2 size-4 text-muted-foreground`}),(0,G.jsx)(ZP,{placeholder:l(`common.search`)+`...`,value:s,onChange:e=>ge(e.target.value),onKeyDown:z,className:`w-full pl-9 h-8 text-sm`}),f&&(0,G.jsx)(dt,{className:`absolute right-3 top-1/2 -translate-y-1/2 size-4 animate-spin text-muted-foreground`,"data-testid":`lookup-loading`})]})}),m&&(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-4 px-2`,role:`alert`,children:[(0,G.jsx)($e,{className:`size-5 text-destructive`}),(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:m}),(0,G.jsx)(Z,{variant:`outline`,size:`sm`,onClick:()=>L(s||void 0),type:`button`,children:`Retry`})]}),f&&he.length===0&&!m&&(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-2 py-6`,role:`status`,"aria-live":`polite`,children:[(0,G.jsx)(dt,{className:`size-6 animate-spin text-muted-foreground`}),(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading…`})]}),!m&&!(f&&he.length===0)&&(0,G.jsx)(`div`,{ref:C,className:`max-h-64 overflow-y-auto px-1 pb-1`,role:`listbox`,children:he.length===0?(0,G.jsxs)(`div`,{className:`py-4 text-center`,children:[(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No options found`}),fe&&(0,G.jsxs)(Z,{variant:`ghost`,size:`sm`,className:`mt-2 gap-1`,type:`button`,onClick:()=>{fe(s),o(!1)},children:[(0,G.jsx)(Kt,{className:`size-4`}),`Create new`]})]}):(0,G.jsxs)(G.Fragment,{children:[he.map((t,n)=>{let r=D?(Array.isArray(e)?e:[]).includes(t.value):e===t.value;return(0,G.jsxs)(`button`,{"data-lookup-index":n,role:`option`,"aria-selected":r,onClick:()=>R(t),className:`w-full text-left px-3 py-2 rounded-md text-sm hover:bg-accent flex items-center justify-between ${n===x?`bg-accent text-accent-foreground`:r?`bg-accent/50 text-accent-foreground`:``}`,type:`button`,children:[(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsx)(`span`,{className:`block truncate`,children:t.label}),t.description&&(0,G.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:t.description})]}),r&&(0,G.jsx)(eN,{variant:`default`,className:`ml-2 shrink-0`,children:`Selected`})]},t.value)}),ce&&g>he.length&&(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground text-center py-2`,children:[`Showing `,he.length,` of `,g,` results.`]}),ce&&g>he.length&&(0,G.jsxs)(`button`,{type:`button`,className:`w-full text-center px-3 py-2 rounded-md text-sm font-medium text-primary hover:bg-accent flex items-center justify-center gap-1.5`,onClick:()=>{o(!1),me(!0)},"data-testid":`show-all-results`,children:[(0,G.jsx)(bt,{className:`size-3.5`}),`Show All Results (`,g,`)`]}),fe&&(0,G.jsxs)(`button`,{type:`button`,className:`w-full text-left px-3 py-2 rounded-md text-sm hover:bg-accent flex items-center gap-1.5 text-muted-foreground`,onClick:()=>{fe(s),o(!1)},children:[(0,G.jsx)(Kt,{className:`size-3.5`}),`Create new`,s?` "${s}"`:``]})]})})]})]}),ce&&(0,G.jsx)(Z,{variant:`outline`,size:`icon`,className:`shrink-0`,type:`button`,onClick:()=>me(!0),"aria-label":`Browse all records`,title:`Browse all records`,"data-testid":`browse-all-records`,children:(0,G.jsx)(bt,{className:`size-4`})})]}),ce&&P&&te&&(0,G.jsx)(NB,{open:pe,onOpenChange:me,title:w?.label||`Select`,multiple:D,dataSource:P,objectName:te,columns:ne,displayField:O,titleFormat:de,idField:A,pageSize:re,value:e,onSelect:t,onSelectRecords:be,lookupFilters:ie,cellRenderer:zB(),filterColumns:ae})]})}var qB,JB,YB=Wz((()=>{LB(),VB(),rB(),qB=50,JB=Vj})),XB=Gz({DateTimeField:()=>ZB});function ZB({value:e,onChange:t,field:n,readonly:r,...i}){if(r){if(!e)return(0,G.jsx)($L,{});let t=new Date(e);return(0,G.jsxs)(`span`,{className:`text-sm`,children:[t.toLocaleDateString(),` `,t.toLocaleTimeString()]})}let{inputType:a,...o}=i;return(0,G.jsx)(ZP,{...o,type:`datetime-local`,value:e||``,onChange:e=>t(e.target.value),disabled:r||o.disabled})}var QB=Wz((()=>{})),$B=Gz({TimeField:()=>eV});function eV({value:e,onChange:t,field:n,readonly:r,...i}){if(r)return(0,G.jsx)(`span`,{className:`text-sm`,children:e||(0,G.jsx)($L,{})});let{inputType:a,...o}=i;return(0,G.jsx)(ZP,{...o,type:`time`,value:e||``,onChange:e=>t(e.target.value),disabled:r||o.disabled})}var tV=Wz((()=>{})),nV=Gz({PercentField:()=>rV});function rV({value:e,onChange:t,field:n,readonly:r,errorMessage:i,className:a,...o}){let s=n||o.schema,c=s?.precision??2;if(r)return e==null?(0,G.jsx)($L,{}):(0,G.jsxs)(`span`,{className:`text-sm font-medium tabular-nums`,children:[(e*100).toFixed(c),`%`]});let l=e==null?``:e*100,u=e==null?0:e*100,d=e=>{if(e.target.value===``){t(null);return}let n=parseFloat(e.target.value);t(isNaN(n)?null:n/100)},f=e=>{if(r||o.disabled)return;if(!Array.isArray(e)||e.length===0){t(null);return}let n=e[0];t(typeof n==`number`?n/100:null)},p=10**-c;return(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(ZP,{...o,type:`number`,value:l,onChange:d,placeholder:s?.placeholder||`0`,disabled:r||o.disabled,className:`pr-8 ${a||``}`,step:(10**-c).toFixed(c),"aria-invalid":!!i}),(0,G.jsx)(`span`,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-sm text-gray-500`,children:`%`})]}),(0,G.jsx)(WI,{value:[u],onValueChange:f,min:0,max:100,step:p,disabled:r||o.disabled,className:`w-full`,"aria-label":`Percentage`,"data-testid":`percent-slider`})]})}var iV=Wz((()=>{})),aV=Gz({PasswordField:()=>oV});function oV({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let[o,s]=(0,W.useState)(!1),c=n||a.schema;if(r)return(0,G.jsx)(`span`,{className:`text-sm`,children:`••••••••`});let{inputType:l,...u}=a;return(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(ZP,{...u,type:o?`text`:`password`,value:e||``,onChange:e=>t(e.target.value),placeholder:c?.placeholder,disabled:r||u.disabled,className:`pr-10 ${i||``}`}),(0,G.jsx)(Z,{type:`button`,variant:`ghost`,size:`sm`,className:`absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent`,onClick:()=>s(!o),tabIndex:-1,children:(0,G.jsx)(o?Pt:_n,{className:`size-4 text-gray-500`})})]})}var sV=Wz((()=>{})),cV=Gz({FileField:()=>lV});function lV({value:e,onChange:t,field:n,readonly:r,...i}){let a=(0,W.useRef)(null),o=(0,W.useRef)(null),s=n||i.schema,c=s?.multiple||!1,l=s?.accept?s.accept.join(`,`):void 0,u=s?.maxSize,d=s?.capture??null,f=!l||l.split(`,`).some(e=>e.trim().startsWith(`image/`)||e.trim()===`image/*`||e.trim().startsWith(`.jp`)||e.trim().startsWith(`.png`)||e.trim().startsWith(`.gif`)||e.trim().startsWith(`.webp`)),p=typeof navigator<`u`&&(navigator.maxTouchPoints>0||/Mobi|Android/i.test(navigator.userAgent)),m=d===!1?!1:d??(f&&p?`environment`:null),[h,g]=(0,W.useState)(!1),[_,v]=(0,W.useState)([]),{upload:y}=Hz(),[b,x]=(0,W.useState)({}),[S,C]=(0,W.useState)(!1),w=e?Array.isArray(e)?e:[e]:[],T=(0,W.useCallback)(async e=>{if(e.length===0)return;let n=[],r=e.filter(e=>{if(u&&e.size>u){let t=(u/(1024*1024)).toFixed(1);return n.push(`"${e.name}" exceeds max size (${t} MB)`),!1}return!0});if(v(n),r.length!==0){C(!0);try{let e=(await Promise.all(r.map(async e=>{try{let t=await y(e,{onProgress:t=>x(n=>({...n,[e.name]:t}))});return{name:t.name,original_name:e.name,size:t.size,mime_type:t.mimeType,url:t.url}}catch(t){return n.push(`Failed to upload "${e.name}": ${t.message}`),v([...n]),null}}))).filter(Boolean);if(e.length===0)return;t(c?[...w,...e]:e[0])}finally{C(!1),x({})}}},[w,c,t,u,y]),E=(0,W.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),g(!0)},[]),ee=(0,W.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),g(!1)},[]),D=(0,W.useCallback)(e=>{e.preventDefault(),e.stopPropagation(),g(!1);let t=Array.from(e.dataTransfer.files);if(l){let e=l.split(`,`).map(e=>e.trim().toLowerCase());T(t.filter(t=>{let n=t.name.split(`.`),r=n.length>1?`.`+n.pop()?.toLowerCase():``;return e.some(e=>e===t.type||r&&e===r||e.endsWith(`/*`)&&t.type.startsWith(e.replace(`/*`,`/`)))}))}else T(t)},[l,T]);if(r)return e?(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,G.jsx)(`span`,{className:`text-sm truncate max-w-xs`,children:e.name||e.original_name||`File`},t))}):(0,G.jsx)($L,{});let O=e=>{T(Array.from(e.target.files||[]))},k=e=>{if(c){let n=w.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)},A=e=>(e.mime_type||``).startsWith(`image/`);return(0,G.jsxs)(`div`,{className:i.className,children:[(0,G.jsx)(`input`,{ref:a,type:`file`,multiple:c,accept:l,onChange:O,className:`hidden`}),m&&(0,G.jsx)(`input`,{ref:o,type:`file`,accept:`image/*`,capture:m,onChange:O,className:`hidden`,"aria-label":`Camera capture`,"data-testid":`file-field-camera-input`}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsxs)(`div`,{onDragOver:E,onDragLeave:ee,onDrop:D,onClick:()=>a.current?.click(),className:`
|
|
50
|
+
flex flex-col items-center justify-center gap-2 p-6
|
|
51
|
+
border-2 border-dashed rounded-lg cursor-pointer
|
|
52
|
+
transition-colors duration-200
|
|
53
|
+
${h?`border-primary bg-primary/5 text-primary`:`border-muted-foreground/25 hover:border-primary/50 text-muted-foreground hover:text-foreground`}
|
|
54
|
+
`,role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),a.current?.click())},children:[(0,G.jsx)(Qt,{className:`size-8 ${h?`text-primary`:`text-muted-foreground`}`}),(0,G.jsxs)(`div`,{className:`text-center`,children:[(0,G.jsx)(`p`,{className:`text-sm font-medium`,children:h?`Drop files here`:`Drag & drop files here`}),(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:[`or click to browse`,m?` • use the camera button below`:``]})]})]}),m&&(0,G.jsxs)(Z,{type:`button`,variant:`outline`,size:`sm`,className:`w-full`,onClick:e=>{e.stopPropagation(),o.current?.click()},"data-testid":`file-field-camera-button`,children:[(0,G.jsx)(ct,{className:`size-4 mr-2`}),m===`user`?`Take selfie`:`Take photo`]}),S&&(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,"data-testid":`file-field-uploading`,children:[(0,G.jsx)(dt,{className:`size-3 animate-spin`}),(0,G.jsxs)(`span`,{children:[`Uploading…`,Object.keys(b).length>0&&` (${Math.round(Object.values(b).reduce((e,t)=>e+t,0)/Object.keys(b).length*100)}%)`]})]}),_.length>0&&(0,G.jsx)(`div`,{className:`space-y-0.5`,children:_.map((e,t)=>(0,G.jsx)(`p`,{className:`text-xs text-destructive`,children:e},t))}),w.length>0&&(0,G.jsx)(`div`,{className:`space-y-1`,children:w.map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-center justify-between gap-2 p-2 bg-muted/50 rounded-md border`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-1 min-w-0`,children:[A(e)&&e.url?(0,G.jsx)(`img`,{src:e.url,alt:e.name,className:`size-8 object-cover rounded shrink-0`}):A(e)?(0,G.jsx)(tt,{className:`size-4 text-muted-foreground shrink-0`}):(0,G.jsx)(nn,{className:`size-4 text-muted-foreground shrink-0`}),(0,G.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`}),e.size&&(0,G.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`(`,(e.size/1024).toFixed(1),` KB)`]})]}),(0,G.jsx)(Z,{type:`button`,variant:`ghost`,size:`sm`,onClick:e=>{e.stopPropagation(),k(t)},className:`h-6 w-6 p-0`,children:(0,G.jsx)(At,{className:`size-3`})})]},t))})]})]})}var uV=Wz((()=>{})),dV=Gz({ImageCropperDialog:()=>fV}),fV,pV=Wz((()=>{fV=({open:e,onOpenChange:t,src:n,outputType:r=`image/png`,outputName:i=`cropped.png`,onConfirm:a})=>{let o=(0,W.useRef)(null),s=(0,W.useRef)(null),[c,l]=(0,W.useState)(0),[u,d]=(0,W.useState)({x:0,y:0,width:100,height:100}),[f,p]=(0,W.useState)(null),[m,h]=(0,W.useState)(!1);(0,W.useEffect)(()=>{if(!e||!n)return;h(!1);let t=new Image;t.crossOrigin=`anonymous`,t.onload=()=>{s.current=t;let e=t.naturalWidth*.8,n=t.naturalHeight*.8;d({x:(t.naturalWidth-e)/2,y:(t.naturalHeight-n)/2,width:e,height:n}),l(0),h(!0)},t.onerror=()=>h(!1),t.src=n},[e,n]),(0,W.useEffect)(()=>{if(!m||!s.current||!o.current)return;let e=s.current,t=o.current,n=t.getContext(`2d`);if(!n)return;let r=480/e.naturalWidth,i=e.naturalHeight*r;t.width=480,t.height=i,n.clearRect(0,0,480,i),n.save(),n.translate(480/2,i/2),n.rotate(c*Math.PI/180);let a=c%180==0?480:i,l=c%180==0?i:480;n.drawImage(e,-a/2,-l/2,a,l),n.restore();let d=u.x*r,f=u.y*r,p=u.width*r,h=u.height*r;n.fillStyle=`rgba(0,0,0,0.45)`,n.fillRect(0,0,480,f),n.fillRect(0,f+h,480,i-f-h),n.fillRect(0,f,d,h),n.fillRect(d+p,f,480-d-p,h),n.strokeStyle=`#3b82f6`,n.lineWidth=2,n.strokeRect(d,f,p,h)},[m,u,c]);let g=(0,W.useCallback)(e=>{if(!s.current||!o.current)return;let t=o.current.getBoundingClientRect(),n=s.current.naturalWidth/t.width;p({ox:(e.clientX-t.left)*n,oy:(e.clientY-t.top)*n,cx:u.x,cy:u.y}),e.target.setPointerCapture(e.pointerId)},[u]),_=(0,W.useCallback)(e=>{if(!f||!s.current||!o.current)return;let t=o.current.getBoundingClientRect(),n=s.current.naturalWidth/t.width,r=(e.clientX-t.left)*n-f.ox,i=(e.clientY-t.top)*n-f.oy,a=Math.max(0,Math.min(f.cx+r,s.current.naturalWidth-u.width)),c=Math.max(0,Math.min(f.cy+i,s.current.naturalHeight-u.height));d(e=>({...e,x:a,y:c}))},[f,u.width,u.height]),v=(0,W.useCallback)(()=>p(null),[]),y=(0,W.useCallback)(()=>l(e=>(e+90)%360),[]),b=(0,W.useCallback)(async()=>{if(!s.current)return;let e=s.current,n=document.createElement(`canvas`),o=u.width,l=u.height;n.width=c%180==0?o:l,n.height=c%180==0?l:o;let d=n.getContext(`2d`);if(!d)return;d.save(),d.translate(n.width/2,n.height/2),d.rotate(c*Math.PI/180),d.drawImage(e,u.x,u.y,o,l,-o/2,-l/2,o,l),d.restore();let f=await new Promise(e=>n.toBlob(e,r));f&&(a(f,i),t(!1))},[u,c,i,r,a,t]);return(0,G.jsx)(FN,{open:e,onOpenChange:t,children:(0,G.jsxs)(zN,{className:`max-w-xl`,children:[(0,G.jsxs)(BN,{children:[(0,G.jsx)(HN,{children:`Crop & rotate image`}),(0,G.jsx)(UN,{children:`Drag the highlighted box to reposition the crop. Use the rotate button to spin the image in 90° increments.`})]}),(0,G.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[m?(0,G.jsx)(`canvas`,{ref:o,"data-testid":`image-cropper-canvas`,role:`img`,"aria-label":`Image crop preview`,className:`border rounded-md cursor-move touch-none max-w-full`,onPointerDown:g,onPointerMove:_,onPointerUp:v,onPointerCancel:v}):(0,G.jsx)(`div`,{className:`flex h-[270px] w-full items-center justify-center text-sm text-muted-foreground`,children:`Loading image…`}),(0,G.jsxs)(`div`,{className:`flex w-full items-center justify-between text-xs text-muted-foreground`,children:[(0,G.jsxs)(`span`,{children:[`Crop: `,Math.round(u.width),` × `,Math.round(u.height),` px`]}),(0,G.jsxs)(`span`,{children:[`Rotation: `,c,`°`]})]})]}),(0,G.jsxs)(VN,{className:`flex justify-between sm:justify-between`,children:[(0,G.jsxs)(Z,{type:`button`,variant:`outline`,onClick:y,"data-testid":`image-cropper-rotate`,children:[(0,G.jsx)(_t,{className:`size-4 mr-2`}),`Rotate 90°`]}),(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(Z,{type:`button`,variant:`ghost`,onClick:()=>t(!1),children:`Cancel`}),(0,G.jsxs)(Z,{type:`button`,onClick:b,disabled:!m,"data-testid":`image-cropper-confirm`,children:[(0,G.jsx)(bn,{className:`size-4 mr-2`}),`Apply crop`]})]})]})]})})}})),mV=Gz({ImageField:()=>hV});function hV({value:e,onChange:t,field:n,readonly:r,...i}){let a=(0,W.useRef)(null),o=n||i.schema,s=o?.multiple||!1,c=o?.accept?o.accept.join(`,`):`image/*`,l=o?.crop!==!1,[u,d]=(0,W.useState)(null),{upload:f}=Hz(),[p,m]=(0,W.useState)(!1);if(r)return e?(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:(Array.isArray(e)?e:[e]).map((e,t)=>(0,G.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`},t))}):(0,G.jsx)($L,{});let h=e?Array.isArray(e)?e:[e]:[],g=async e=>{let n=Array.from(e.target.files||[]);if(n.length!==0){m(!0);try{let e=await Promise.all(n.map(async e=>{let t=await f(e);return{name:t.name,original_name:e.name,size:t.size,mime_type:t.mimeType,url:t.url}}));t(s?[...h,...e]:e[0])}finally{m(!1),a.current&&(a.current.value=``)}}},_=e=>{if(s){let n=h.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)},v=(0,W.useCallback)(async(e,n)=>{if(u){m(!0);try{let r=await f(e),i={name:r.name||n,original_name:n,size:r.size,mime_type:r.mimeType,url:r.url};if(s){let e=[...h];e[u.index]=i,t(e)}else t(i)}finally{m(!1),d(null)}}},[u,h,s,t,f]),y=(0,W.useCallback)(e=>{let t=h[e];t?.url&&d({index:e,src:t.url,name:t.name||`image-${e}.png`})},[h]);return(0,G.jsxs)(`div`,{className:i.className,children:[(0,G.jsx)(`input`,{ref:a,type:`file`,multiple:s,accept:c,onChange:g,className:`hidden`}),(0,G.jsxs)(`div`,{className:`space-y-2`,children:[h.length>0&&(0,G.jsx)(`div`,{className:`grid grid-cols-4 gap-2`,children:h.map((e,t)=>(0,G.jsxs)(`div`,{className:`relative group`,children:[(0,G.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-20 rounded-md object-cover border border-gray-200`}),(0,G.jsxs)(`div`,{className:`absolute top-1 right-1 flex gap-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:[l&&(0,G.jsx)(Z,{type:`button`,variant:`secondary`,size:`sm`,onClick:()=>y(t),className:`h-6 w-6 p-0`,"aria-label":`Crop image ${t+1}`,"data-testid":`image-field-crop-${t}`,children:(0,G.jsx)(bn,{className:`size-3`})}),(0,G.jsx)(Z,{type:`button`,variant:`destructive`,size:`sm`,onClick:()=>_(t),className:`h-6 w-6 p-0`,children:(0,G.jsx)(At,{className:`size-3`})})]})]},t))}),(0,G.jsxs)(Z,{type:`button`,variant:`outline`,onClick:()=>a.current?.click(),className:`w-full`,disabled:p,"data-testid":`image-field-upload-button`,children:[p?(0,G.jsx)(dt,{className:`size-4 mr-2 animate-spin`}):(0,G.jsx)(tt,{className:`size-4 mr-2`}),p?`Uploading…`:h.length>0?`Add More Images`:`Upload Image`]})]}),l&&u&&(0,G.jsx)(W.Suspense,{fallback:null,children:(0,G.jsx)(gV,{open:!0,onOpenChange:e=>!e&&d(null),src:u.src,outputName:u.name,onConfirm:v})})]})}var gV,_V=Wz((()=>{gV=(0,W.lazy)(()=>Promise.resolve().then(()=>(pV(),dV)).then(e=>({default:e.ImageCropperDialog})))})),vV=Gz({LocationField:()=>yV});function yV({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=e&&typeof e==`object`?`${e.latitude||0}, ${e.longitude||0}`:``;return r?(0,G.jsx)(`span`,{className:`text-sm`,children:o||(0,G.jsx)($L,{})}):(0,G.jsx)(ZP,{type:`text`,value:o,onChange:e=>{let n=e.target.value;if(!n.trim()){t(null);return}let r=n.split(`,`).map(e=>e.trim());if(r.length===2){let e=parseFloat(r[0]),n=parseFloat(r[1]);!isNaN(e)&&!isNaN(n)&&t({latitude:e,longitude:n})}},placeholder:a?.placeholder||`latitude, longitude`,disabled:r||i.disabled,className:i.className})}var bV=Wz((()=>{})),xV=Gz({FormulaField:()=>SV});function SV({value:e,field:t,...n}){let r=(t||n.schema)?.return_type||`text`;if(e==null)return(0,G.jsx)($L,{className:n.className});let i;return i=r===`number`||r===`currency`?typeof e==`number`?e.toFixed(2):String(e):r===`boolean`?e?`Yes`:`No`:r===`date`?new Date(e).toLocaleDateString():String(e),(0,G.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:i})}var CV=Wz((()=>{})),wV=Gz({SummaryField:()=>TV});function TV({value:e,field:t,...n}){let r=(t||n.schema)?.summary_type||`count`;if(e==null)return(0,G.jsx)($L,{className:n.className});let i;return i=r===`count`?String(e):[`sum`,`avg`,`min`,`max`].includes(r)&&typeof e==`number`?e.toFixed(2):String(e),(0,G.jsx)(`span`,{className:`text-sm font-medium tabular-nums text-gray-700 ${n.className||``}`,children:i})}var EV=Wz((()=>{})),DV=Gz({AutoNumberField:()=>OV});function OV({value:e,field:t,...n}){return e==null?(0,G.jsx)($L,{className:n.className}):(0,G.jsx)(`span`,{className:`text-sm font-mono text-gray-700 ${n.className||``}`,children:String(e)})}var kV=Wz((()=>{})),AV=Gz({UserField:()=>jV});function jV({value:e,onChange:t,field:n,readonly:r,...i}){let a=(n||i.schema)?.multiple||!1;if(r){if(!e)return(0,G.jsx)($L,{});let t=Array.isArray(e)?e:[e];return(0,G.jsxs)(`div`,{className:`flex -space-x-2`,children:[t.slice(0,3).map((e,t)=>{let n=e.name||e.username||`User`;return(0,G.jsx)(XM,{className:`size-8 border-2 border-white`,title:n,children:(0,G.jsx)(QM,{className:`bg-blue-500 text-white text-xs`,children:n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})},t)}),t.length>3&&(0,G.jsx)(XM,{className:`size-8 border-2 border-white`,children:(0,G.jsxs)(QM,{className:`bg-gray-200 text-gray-600 text-xs`,children:[`+`,t.length-3]})})]})}let o=e?Array.isArray(e)?e:[e]:[],s=e=>{if(a){let n=o.filter((t,n)=>n!==e);t(n.length>0?n:null)}else t(null)};return(0,G.jsxs)(`div`,{className:i.className,children:[o.length>0&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-2 mb-2`,children:o.map((e,t)=>{let n=e.name||e.username||`User`;return(0,G.jsxs)(eN,{variant:`outline`,className:`gap-2 pr-1`,children:[(0,G.jsx)(XM,{className:`size-5`,children:(0,G.jsx)(QM,{className:`bg-blue-500 text-white text-xs`,children:n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})}),(0,G.jsx)(`span`,{className:`text-sm`,children:n}),(0,G.jsx)(`button`,{type:`button`,onClick:()=>s(t),className:`ml-1 rounded-full hover:bg-gray-200 p-0.5`,children:(0,G.jsx)(At,{className:`size-3`})})]},t)})}),(0,G.jsx)(`div`,{className:`text-sm text-gray-500 italic`,children:`User selection component requires integration with user management system`})]})}var MV=Wz((()=>{})),NV=Gz({ObjectField:()=>PV});function PV({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,[o,s]=(0,W.useState)(()=>e==null?``:JSON.stringify(e,null,2)),[c,l]=(0,W.useState)(null);return(0,W.useEffect)(()=>{try{if(e==null){s(``);return}let t=o?JSON.parse(o):null;JSON.stringify(t)!==JSON.stringify(e)&&s(JSON.stringify(e,null,2))}catch{s(JSON.stringify(e,null,2))}},[e,o]),r?e?(0,G.jsx)(`pre`,{className:X(`text-xs bg-gray-50 p-2 rounded border border-gray-200 overflow-auto max-h-40`,i.className),children:JSON.stringify(e,null,2)}):(0,G.jsx)($L,{}):(0,G.jsxs)(`div`,{className:`space-y-1`,children:[(0,G.jsx)(aL,{value:o,onChange:e=>{let n=e.target.value;if(s(n),l(null),!n.trim()){t(null);return}try{t(JSON.parse(n))}catch{l(`Invalid JSON`)}},placeholder:a?.placeholder||`{
|
|
55
|
+
"key": "value"
|
|
56
|
+
}`,disabled:r||i.disabled,className:X(`font-mono text-xs`,c?`border-red-500 focus-visible:ring-red-500`:``,i.className),rows:6}),c&&(0,G.jsx)(`p`,{className:`text-xs text-red-500`,children:c})]})}var FV=Wz((()=>{})),IV=Gz({VectorField:()=>LV});function LV({value:e,field:t,...n}){let r=(t||n.schema)?.dimensions||(Array.isArray(e)?e.length:0);if(!e||!Array.isArray(e))return(0,G.jsx)($L,{});let i=e.slice(0,3).map(e=>{let t=Number(e);return isNaN(t)?`0`:t.toFixed(4)}).join(`, `);return(0,G.jsxs)(`div`,{className:`text-sm ${n.className||``}`,children:[(0,G.jsxs)(`span`,{className:`font-mono text-gray-700`,children:[`[`,i,`...]`]}),(0,G.jsxs)(`span`,{className:`text-gray-500 ml-2`,children:[`(`,r,`D)`]})]})}var RV=Wz((()=>{})),zV=Gz({GridField:()=>BV});function BV({value:e,field:t,readonly:n,...r}){let i=(t||r.schema)?.columns||[];return!e||!Array.isArray(e)?(0,G.jsx)($L,{}):n?(0,G.jsx)(`div`,{className:X(`text-sm`,r.className),children:(0,G.jsxs)(`span`,{className:`text-foreground`,children:[e.length,` rows`]})}):(0,G.jsxs)(`div`,{className:X(`border border-border rounded-lg overflow-hidden`,r.className),children:[(0,G.jsx)(`div`,{className:`overflow-auto max-h-60`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{className:`bg-muted border-b border-border`,children:(0,G.jsx)(`tr`,{children:i.map((e,t)=>(0,G.jsx)(`th`,{className:`px-3 py-2 text-left text-xs font-medium text-muted-foreground`,children:e.label||e.name},t))})}),(0,G.jsx)(`tbody`,{className:`divide-y divide-border`,children:e.slice(0,5).map((e,t)=>(0,G.jsx)(`tr`,{className:`hover:bg-muted/50 transition-colors`,children:i.map((t,n)=>(0,G.jsx)(`td`,{className:`px-3 py-2 text-foreground`,children:e[t.name]==null?(0,G.jsx)($L,{}):String(e[t.name])},n))},t))})]})}),e.length>5&&(0,G.jsxs)(`div`,{className:`bg-muted px-3 py-2 text-xs text-muted-foreground border-t border-border`,children:[`Showing 5 of `,e.length,` rows`]})]})}var VV=Wz((()=>{})),HV=Gz({ColorField:()=>UV});function UV({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema;return r?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`w-6 h-6 rounded border border-input`,style:{backgroundColor:e||`#000000`}}),(0,G.jsx)(`span`,{className:`text-sm`,children:e||(0,G.jsx)($L,{})})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`input`,{type:`color`,value:e||`#000000`,onChange:e=>t(e.target.value),disabled:r||i.disabled,className:`w-10 h-10 rounded border border-input cursor-pointer`}),(0,G.jsx)(ZP,{type:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder||`#000000`,disabled:r||i.disabled,className:i.className,pattern:`^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$`})]})}var WV=Wz((()=>{})),GV=Gz({SliderField:()=>KV});function KV({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.min??0,s=a?.max??100,c=a?.step??1;return r?(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium`,children:e??o}),(0,G.jsxs)(`span`,{className:`text-xs text-muted-foreground`,children:[`/ `,s]})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsx)(WI,{value:[e??o],onValueChange:e=>t(e[0]),min:o,max:s,step:c,disabled:r||i.disabled,className:i.className}),(0,G.jsx)(`span`,{className:`text-sm font-medium w-12 text-right`,children:e??o})]})}var qV=Wz((()=>{})),JV=Gz({RatingField:()=>YV});function YV({value:e,onChange:t,field:n,readonly:r,className:i,...a}){let o=(n||a.schema)?.max??5,s=e??0,[c,l]=W.useState(null),u=c===null?s:c;return r?(0,G.jsxs)(`div`,{className:X(`flex items-center gap-1`,i),children:[Array.from({length:o},(e,t)=>(0,G.jsx)(mt,{className:`w-5 h-5 ${t<s?`fill-yellow-400 text-yellow-400`:`text-muted-foreground`}`},t)),(0,G.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[s,` / `,o]})]}):(0,G.jsxs)(`div`,{className:X(`flex items-center gap-1`,i),children:[Array.from({length:o},(e,n)=>(0,G.jsx)(`button`,{type:`button`,onClick:()=>t(n+1),onMouseEnter:()=>l(n+1),onMouseLeave:()=>l(null),className:`focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 rounded`,disabled:r||a.disabled,children:(0,G.jsx)(mt,{className:`w-5 h-5 transition-colors ${n<u?`fill-yellow-400 text-yellow-400 hover:fill-yellow-500 hover:text-yellow-500`:`text-muted-foreground hover:text-yellow-400`}`})},n)),(0,G.jsxs)(`span`,{className:`ml-2 text-sm text-muted-foreground`,children:[s,` / `,o]})]})}var XV=Wz((()=>{})),ZV=Gz({CodeField:()=>QV});function QV({value:e,onChange:t,field:n,readonly:r,...i}){let a=n||i.schema,o=a?.language??`javascript`;return r?(0,G.jsx)(`pre`,{className:X(`text-sm bg-muted p-2 rounded overflow-x-auto border`,i.className),children:(0,G.jsx)(`code`,{children:e||(0,G.jsx)($L,{})})}):(0,G.jsx)(aL,{value:e||``,onChange:e=>t(e.target.value),placeholder:a?.placeholder||`// Write ${o} code here...`,disabled:r||i.disabled,className:X(`font-mono text-sm`,i.className),rows:12,spellCheck:!1})}var $V=Wz((()=>{})),eH=Gz({AvatarField:()=>tH});function tH({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=W.useState(!1),s=W.useRef(null),c=n||i.schema,l=e=>{let n=e.target.files?.[0];if(!n)return;if(!n.type.startsWith(`image/`)){console.error(`Please select an image file`);return}if(n.size>5*1024*1024){console.error(`File size must be less than 5MB`);return}let r=new FileReader;r.onloadend=()=>{t(r.result)},r.readAsDataURL(n)},u=()=>{t(``)},d=()=>(c?.defaultName||c?.label||`User`).split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2);return r?(0,G.jsxs)(XM,{className:`w-16 h-16`,children:[e&&(0,G.jsx)(ZM,{src:e,alt:c?.label}),(0,G.jsx)(QM,{children:d()})]}):(0,G.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,G.jsxs)(`div`,{className:`relative`,onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),children:[(0,G.jsxs)(XM,{className:`w-16 h-16`,children:[e&&(0,G.jsx)(ZM,{src:e,alt:c?.label}),(0,G.jsx)(QM,{children:d()})]}),!r&&a&&e&&(0,G.jsx)(`button`,{type:`button`,onClick:u,className:`absolute -top-1 -right-1 bg-destructive text-destructive-foreground rounded-full p-1 hover:bg-destructive/90`,children:(0,G.jsx)(At,{className:`w-3 h-3`})})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(`input`,{ref:s,type:`file`,accept:`image/*`,onChange:l,className:`hidden`}),(0,G.jsxs)(Z,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>s.current?.click(),disabled:r||i.disabled,children:[(0,G.jsx)(Qt,{className:`w-4 h-4 mr-2`}),e?`Change`:`Upload`,` Avatar`]}),(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`PNG, JPG up to 5MB`})]})]})}var nH=Wz((()=>{})),rH=Gz({AddressField:()=>iH});function iH({value:e,onChange:t,field:n,readonly:r,...i}){let a=e||{},o=(e,n)=>{t({...a,[e]:n})},s=e=>[e.street,e.city,[e.state,e.zipCode].filter(Boolean).join(` `),e.country].filter(Boolean).join(`, `);if(r){let e=s(a);return e?(0,G.jsx)(`span`,{className:`text-sm`,children:e}):(0,G.jsx)($L,{})}return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(NP,{htmlFor:`street`,className:`text-xs`,children:`Street Address`}),(0,G.jsx)(ZP,{id:`street`,type:`text`,value:a.street||``,onChange:e=>o(`street`,e.target.value),placeholder:`123 Main St`,disabled:r||i.disabled,className:i.className})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(NP,{htmlFor:`city`,className:`text-xs`,children:`City`}),(0,G.jsx)(ZP,{id:`city`,type:`text`,value:a.city||``,onChange:e=>o(`city`,e.target.value),placeholder:`San Francisco`,disabled:r||i.disabled})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(NP,{htmlFor:`state`,className:`text-xs`,children:`State / Province`}),(0,G.jsx)(ZP,{id:`state`,type:`text`,value:a.state||``,onChange:e=>o(`state`,e.target.value),placeholder:`CA`,disabled:r||i.disabled})]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(NP,{htmlFor:`zipCode`,className:`text-xs`,children:`ZIP / Postal Code`}),(0,G.jsx)(ZP,{id:`zipCode`,type:`text`,value:a.zipCode||``,onChange:e=>o(`zipCode`,e.target.value),placeholder:`94102`,disabled:r||i.disabled})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(NP,{htmlFor:`country`,className:`text-xs`,children:`Country`}),(0,G.jsx)(ZP,{id:`country`,type:`text`,value:a.country||``,onChange:e=>o(`country`,e.target.value),placeholder:`United States`,disabled:r||i.disabled})]})]})]})}var aH=Wz((()=>{})),oH=Gz({GeolocationField:()=>sH});function sH({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=W.useState(!1),s=e||{},c=(e,n)=>{t({...s,[e]:n?Number(n):void 0})},l=()=>{if(!navigator.geolocation){console.error(`Geolocation is not supported by this browser`);return}o(!0),navigator.geolocation.getCurrentPosition(e=>{t({latitude:e.coords.latitude,longitude:e.coords.longitude,accuracy:e.coords.accuracy}),o(!1)},e=>{console.error(`Error getting location:`,e.message),o(!1)},{enableHighAccuracy:!0,timeout:5e3,maximumAge:0})},u=e=>!e.latitude||!e.longitude?``:`${e.latitude.toFixed(6)}, ${e.longitude.toFixed(6)}`,d=()=>{if(!s.latitude||!s.longitude)return;let e=`https://www.google.com/maps?q=${s.latitude},${s.longitude}`;window.open(e,`_blank`)};if(r){let e=u(s);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(ht,{className:`w-4 h-4 text-muted-foreground`}),e?(0,G.jsx)(`span`,{className:`text-sm`,children:e}):(0,G.jsx)($L,{}),s.latitude&&s.longitude&&(0,G.jsx)(Z,{type:`button`,variant:`link`,size:`sm`,onClick:d,className:`p-0 h-auto`,children:`View on map`})]})}return(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsxs)(Z,{type:`button`,variant:`outline`,size:`sm`,onClick:l,disabled:r||a,children:[(0,G.jsx)(Mt,{className:`w-4 h-4 mr-2`}),a?`Getting location...`:`Use Current Location`]}),s.latitude&&s.longitude&&(0,G.jsxs)(Z,{type:`button`,variant:`link`,size:`sm`,onClick:d,children:[(0,G.jsx)(ht,{className:`w-4 h-4 mr-2`}),`View on map`]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(NP,{htmlFor:`latitude`,className:`text-xs`,children:`Latitude`}),(0,G.jsx)(ZP,{id:`latitude`,type:`number`,value:s.latitude??``,onChange:e=>c(`latitude`,e.target.value),placeholder:`37.7749`,disabled:r||i.disabled,step:`any`,className:i.className})]}),(0,G.jsxs)(`div`,{children:[(0,G.jsx)(NP,{htmlFor:`longitude`,className:`text-xs`,children:`Longitude`}),(0,G.jsx)(ZP,{id:`longitude`,type:`number`,value:s.longitude??``,onChange:e=>c(`longitude`,e.target.value),placeholder:`-122.4194`,disabled:r||i.disabled,step:`any`})]})]}),s.accuracy&&(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Accuracy: ±`,s.accuracy.toFixed(0),`m`]})]})}var cH=Wz((()=>{})),lH=Gz({SignatureField:()=>uH});function uH({value:e,onChange:t,readonly:n}){let r=(0,W.useRef)(null),[i,a]=W.useState(!1),[o,s]=W.useState(!e);(0,W.useEffect)(()=>{if(e&&r.current){let t=r.current.getContext(`2d`);if(t){let n=new Image;n.onload=()=>{t.drawImage(n,0,0),s(!1)},n.src=e}}},[e]);let c=e=>{if(n)return;a(!0),s(!1);let t=r.current;if(!t)return;let i=t.getContext(`2d`);if(!i)return;let o=t.getBoundingClientRect(),c=`touches`in e?e.touches[0].clientX-o.left:e.clientX-o.left,l=`touches`in e?e.touches[0].clientY-o.top:e.clientY-o.top;i.beginPath(),i.moveTo(c,l)},l=e=>{if(!i||n)return;let t=r.current;if(!t)return;let a=t.getContext(`2d`);if(!a)return;let o=t.getBoundingClientRect(),s=`touches`in e?e.touches[0].clientX-o.left:e.clientX-o.left,c=`touches`in e?e.touches[0].clientY-o.top:e.clientY-o.top;a.lineTo(s,c),a.strokeStyle=`#000`,a.lineWidth=2,a.lineCap=`round`,a.lineJoin=`round`,a.stroke()},u=()=>{if(!i)return;a(!1);let e=r.current;e&&t(e.toDataURL(`image/png`))};return n&&e?(0,G.jsx)(`div`,{className:`border rounded p-2 bg-white`,children:(0,G.jsx)(`img`,{src:e,alt:`Signature`,loading:`lazy`,className:`max-w-full h-auto`})}):n&&!e?(0,G.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`No signature`}):(0,G.jsxs)(`div`,{className:`space-y-2`,children:[(0,G.jsx)(`div`,{className:`border rounded bg-white`,children:(0,G.jsx)(`canvas`,{ref:r,width:400,height:200,className:`w-full touch-none cursor-crosshair`,onMouseDown:c,onMouseMove:l,onMouseUp:u,onMouseLeave:u,onTouchStart:c,onTouchMove:l,onTouchEnd:u})}),(0,G.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:o?`Sign above`:`Signature captured`}),(0,G.jsxs)(Z,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{let e=r.current;if(!e)return;let n=e.getContext(`2d`);n&&(n.clearRect(0,0,e.width,e.height),s(!0),t(``))},disabled:n||o,children:[(0,G.jsx)(cn,{className:`w-4 h-4 mr-2`}),`Clear`]})]})]})}var dH=Wz((()=>{})),fH=Gz({QRCodeField:()=>pH});function pH({value:e,onChange:t,field:n,readonly:r,...i}){let[a,o]=W.useState(!1),s=n||i.schema;return r?(0,G.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,G.jsx)(`span`,{className:`text-sm flex-1 truncate`,children:e||(0,G.jsx)($L,{})}),e&&(0,G.jsxs)(Z,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>o(!a),children:[(0,G.jsx)(an,{className:`w-4 h-4 mr-2`}),a?`Hide`:`Show`,` QR`]})]}):(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(ZP,{type:`text`,value:e||``,onChange:e=>t(e.target.value),placeholder:s?.placeholder||`Enter text for QR code`,disabled:r||i.disabled,className:i.className}),e&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Z,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>{e&&navigator.clipboard.writeText(e)},children:(0,G.jsx)(yt,{className:`w-4 h-4`})}),(0,G.jsx)(Z,{type:`button`,variant:`outline`,size:`sm`,onClick:()=>o(!a),children:(0,G.jsx)(an,{className:`w-4 h-4`})})]})]}),a&&e&&(0,G.jsx)(`div`,{className:`border rounded p-4 bg-white flex justify-center`,children:(0,G.jsx)(`img`,{src:(e=>`https://api.qrserver.com/v1/create-qr-code/?size=200x200&data=${encodeURIComponent(e)}`)(e),alt:`QR Code`,className:`w-48 h-48`})}),e&&(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`QR code contains: `,e.length,` characters`]})]})}var mH=Wz((()=>{}));Jz(),Zz(),eB(),oB(),lB(),fB(),hB(),vB(),SB(),TB(),OB(),YB(),QB(),tV(),iV(),sV(),uV(),_V(),bV(),CV(),EV(),kV(),MV(),FV(),RV(),VV(),WV(),qV(),XV(),$V(),nH(),aH(),cH(),dH(),mH(),pV(),VB(),Jz(),Zz(),eB(),oB(),lB(),QB(),tV(),fB(),hB(),vB(),SB(),iV(),sV(),TB(),OB(),YB(),LB(),uV(),_V(),bV(),CV(),EV(),kV(),MV(),FV(),RV(),VV(),WV(),qV(),XV(),$V(),nH(),aH(),cH(),dH(),mH();var hH=new Map;function gH(e){if(!e||typeof e!=`object`)return;for(let t of[`name`,`full_name`,`display_name`,`label`,`title`,`subject`,`username`]){let n=e[t];if(typeof n==`string`&&n.trim())return n.trim();if(typeof n==`number`)return String(n)}let t=e.first_name,n=e.last_name,r=[e.salutation,t,n].filter(e=>typeof e==`string`&&e.trim()).map(e=>e.trim()).join(` `);if(r)return r;let i=e.email;if(typeof i==`string`&&i.trim())return i.trim()}function _H(e){if(typeof e!=`string`||!/^[A-Za-z0-9_-]{12,32}$/.test(e))return!1;let t=/[A-Z]/.test(e),n=/[a-z]/.test(e),r=/[0-9_-]/.test(e);return t&&n||t&&r||n&&r}function vH(e,t){let n=W.useContext(Vj)?.dataSource,[,r]=W.useState(0),i=!!e&&!!n&&typeof n.find==`function`&&(typeof t==`string`||typeof t==`number`)&&t!==``,a=i?`${e}:${String(t)}`:``;if(W.useEffect(()=>{if(!i)return;let o=hH.get(a);if(o&&o.state!==`pending`&&o.promise==null||o?.state===`pending`)return;let s=(async()=>{try{let r;if(typeof n.findOne==`function`)r=await n.findOne(e,t);else{let i=await n.find(e,{$filter:{id:t},options:{$top:1}});r=(Array.isArray(i)?i:i?.value||i?.data||[])[0]}let i=gH(r);hH.set(a,{state:`ok`,name:i})}catch{hH.set(a,{state:`err`})}r(e=>e+1)})();hH.set(a,{state:`pending`,promise:s})},[a,i,e,t,n]),!i)return;let o=hH.get(a);return o?.state===`ok`?o.name:void 0}function yH(){try{let{t:e}=pM();return(t,n)=>{let r=e(t);return!r||r===t?n:r}}catch{return(e,t)=>t}}function bH(e){if(e==null||typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>{if(typeof e==`object`&&e){let t=e;return String(t.name||t.label||t.id||t._id||`[Object]`)}return String(e)}).join(`, `);if(typeof e==`object`){let t=e;return`$numberDecimal`in t?Number(t.$numberDecimal):`$oid`in t?String(t.$oid):`$date`in t?String(t.$date):String(t.name||t.label||t.id||t._id||`[Object]`)}return String(e)}function xH(e,t){let n=Number.isFinite(e)&&e===Math.trunc(e)?0:2;if(!t)return SH(e,n);try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t,minimumFractionDigits:0,maximumFractionDigits:n}).format(e)}catch{return`${t} ${e.toFixed(n)}`}}function SH(e,t=2){try{return new Intl.NumberFormat(`en-US`,{minimumFractionDigits:t,maximumFractionDigits:t}).format(e)}catch{return e.toFixed(t)}}function CH(e,t=0){return`${(e>-1&&e<1?e*100:e).toFixed(t)}%`}function wH(e){return e.replace(/[_-]/g,` `).replace(/\b\w/g,e=>e.toUpperCase())}function TH(e){if(e==null||e===``)return`—`;let t=e instanceof Date?e:new Date(e);if(!(t instanceof Date)||isNaN(t.getTime()))return`—`;let n=new Date,r=new Date(n.getFullYear(),n.getMonth(),n.getDate()),i=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-r.getTime(),a=Math.round(i/(1e3*60*60*24));if(a===0)return`Today`;if(a===1)return`Tomorrow`;if(a===-1)return`Yesterday`;if(a<-1){let e=Math.abs(a);return e<=7?`Overdue ${e}d`:EH(t)}return a>1&&a<=7?`In ${a} days`:EH(t)}function EH(e,t){if(e==null||e===``)return`—`;let n=e instanceof Date?e:new Date(e);if(!(n instanceof Date)||isNaN(n.getTime()))return`—`;if(t===`short`)return`${n.toLocaleDateString(`en-US`,{month:`short`})} ${n.getDate()}, '${String(n.getFullYear()).slice(-2)}`;if(t===`relative`)return TH(n);let r=n.getFullYear()===new Date().getFullYear();return n.toLocaleDateString(void 0,{year:r?void 0:`numeric`,month:`short`,day:`numeric`})}function DH({value:e}){let t=bH(e);return t==null||t===``?(0,G.jsx)($L,{}):(0,G.jsx)(`span`,{className:`truncate`,children:String(t)})}function OH({value:e,field:t}){if(e==null)return(0,G.jsx)($L,{});let n=bH(e),r=t.precision??0,i=Number(n);return(0,G.jsx)(`span`,{className:`tabular-nums`,children:isNaN(i)?String(n):new Intl.NumberFormat(`en-US`,{minimumFractionDigits:r,maximumFractionDigits:r}).format(i)})}function kH({value:e,field:t}){if(e==null)return(0,G.jsx)($L,{});let n=bH(e),r=t,i=r.currency||r.defaultCurrency||r.currencyConfig?.defaultCurrency||void 0,a=Number(n);return(0,G.jsx)(`span`,{className:`tabular-nums font-medium whitespace-nowrap`,children:isNaN(a)?String(n):xH(a,i)})}var AH=/progress|completion/;function jH({value:e,field:t}){if(e==null)return(0,G.jsx)($L,{});let n=bH(e),r=t.precision??0,i=Number(n);if(isNaN(i))return(0,G.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:String(n)});let a=AH.test(t?.name?.toLowerCase()||``),o=a?i:i>-1&&i<1?i*100:i,s=a?`${i.toFixed(r)}%`:CH(i,r),c=Math.max(0,Math.min(100,o));return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(`div`,{className:`h-1.5 w-16 rounded-full bg-muted ring-1 ring-inset ring-border/60 overflow-hidden shrink-0`,role:`progressbar`,"aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":100,children:(0,G.jsx)(`div`,{className:`h-full rounded-full bg-primary transition-all`,style:{width:`${c}%`}})}),(0,G.jsx)(`span`,{className:`tabular-nums whitespace-nowrap`,children:s})]})}var MH=new Set([`active`,`is_active`,`enabled`,`is_enabled`,`verified`,`is_verified`]);function NH({value:e,field:t}){if(e==null)return(0,G.jsx)(`span`,{className:`flex items-center justify-center`,children:(0,G.jsx)($L,{})});let n=t?.name?.toLowerCase()||``;return n===`completed`||n===`is_completed`||n===`done`||n===`is_done`?(0,G.jsx)(`div`,{className:`flex items-center justify-center`,children:e?(0,G.jsx)(`div`,{className:`size-5 rounded-full bg-green-500 flex items-center justify-center`,role:`img`,"aria-label":`Completed`,"data-testid":`completion-indicator`,children:(0,G.jsx)(Ct,{className:`size-3 text-white`})}):(0,G.jsx)(`div`,{className:`size-5 rounded-full border-2 border-muted-foreground/30`,role:`img`,"aria-label":`Not completed`,"data-testid":`completion-indicator`})}):MH.has(n)&&!e?(0,G.jsxs)(eN,{variant:`destructive`,className:`text-xs`,"data-testid":`boolean-warning-badge`,children:[t?.label||wH(n),` — Off`]}):(0,G.jsx)(`div`,{className:`flex items-center justify-start`,children:(0,G.jsx)(jN,{checked:!!e,disabled:!0,className:`pointer-events-none`})})}function PH({value:e,field:t}){if(!e)return(0,G.jsx)($L,{});let n=bH(e),r=t,i=EH(n,r.format||`relative`),a=n==null?null:new Date(n),o=a!==null&&!isNaN(a.getTime()),s=new Date;s.setHours(0,0,0,0);let c=String(r?.name||r?.accessorKey||r?.key||``).toLowerCase(),l=(r?.dueLike===!0||/(^|_)(due|deadline|expires?|expiry|expiration|expected_close|target_close|sla|return_by|renewal|next_action)(_|$)/.test(c))&&o&&a<s,u=o?a.toISOString():String(n);return(0,G.jsx)(`span`,{className:`tabular-nums${l?` text-red-600`:``}`,title:u,children:i})}function FH({value:e}){if(!e)return(0,G.jsx)($L,{});let t=bH(e),n=t==null?null:new Date(t);if(n===null||isNaN(n.getTime()))return(0,G.jsx)($L,{});let r=n.toLocaleDateString(void 0,{month:`numeric`,day:`numeric`,year:`numeric`}),i=n.toLocaleTimeString(void 0,{hour:`numeric`,minute:`2-digit`,hour12:!0}).toLowerCase();return(0,G.jsxs)(`span`,{className:`tabular-nums text-sm whitespace-nowrap`,children:[(0,G.jsx)(`span`,{children:r}),(0,G.jsx)(`span`,{className:`ml-2 text-muted-foreground`,children:i})]})}var IH={critical:`red`,urgent:`red`,high:`orange`,medium:`yellow`,normal:`blue`,low:`gray`,none:`gray`,paid:`green`,completed:`green`,done:`green`,active:`green`,approved:`green`,resolved:`green`,pending:`yellow`,waiting:`yellow`,on_hold:`yellow`,shipped:`blue`,in_progress:`blue`,open:`blue`,processing:`blue`,draft:`gray`,new:`gray`,inactive:`gray`,closed:`gray`,cancelled:`red`,canceled:`red`,rejected:`red`,failed:`red`,overdue:`red`,delivered:`purple`,archived:`indigo`,contacted:`blue`,qualified:`purple`,converted:`green`,won:`green`,lost:`red`,紧急:`red`,严重:`red`,高:`orange`,中:`yellow`,普通:`blue`,低:`gray`,无:`gray`,新建:`gray`,草稿:`gray`,待处理:`yellow`,待审核:`yellow`,待联系:`yellow`,挂起:`yellow`,进行中:`blue`,处理中:`blue`,已联系:`blue`,跟进中:`blue`,已发货:`blue`,打开:`blue`,已确认:`green`,已审核:`green`,已通过:`green`,已完成:`green`,已支付:`green`,已签收:`green`,已转化:`green`,成单:`green`,赢得:`green`,已签约:`green`,已交付:`purple`,已归档:`indigo`,已关闭:`gray`,已取消:`red`,已拒绝:`red`,失败:`red`,逾期:`red`,流失:`red`,丢失:`red`},LH={gray:`bg-gray-50 text-gray-700 border-gray-200 dark:bg-gray-800/50 dark:text-gray-200 dark:border-gray-700/60`,red:`bg-red-50 text-red-700 border-red-200 dark:bg-red-950/40 dark:text-red-300 dark:border-red-900/60`,orange:`bg-orange-50 text-orange-700 border-orange-200 dark:bg-orange-950/40 dark:text-orange-300 dark:border-orange-900/60`,yellow:`bg-yellow-50 text-yellow-800 border-yellow-200 dark:bg-yellow-950/40 dark:text-yellow-300 dark:border-yellow-900/60`,green:`bg-green-50 text-green-700 border-green-200 dark:bg-green-950/40 dark:text-green-300 dark:border-green-900/60`,blue:`bg-blue-50 text-blue-700 border-blue-200 dark:bg-blue-950/40 dark:text-blue-300 dark:border-blue-900/60`,indigo:`bg-indigo-50 text-indigo-700 border-indigo-200 dark:bg-indigo-950/40 dark:text-indigo-300 dark:border-indigo-900/60`,purple:`bg-purple-50 text-purple-700 border-purple-200 dark:bg-purple-950/40 dark:text-purple-300 dark:border-purple-900/60`,pink:`bg-pink-50 text-pink-700 border-pink-200 dark:bg-pink-950/40 dark:text-pink-300 dark:border-pink-900/60`},RH={gray:`bg-gray-400 dark:bg-gray-500`,red:`bg-red-500`,orange:`bg-orange-500`,yellow:`bg-yellow-500`,green:`bg-green-500`,blue:`bg-blue-500`,indigo:`bg-indigo-500`,purple:`bg-purple-500`,pink:`bg-pink-500`},zH=[`blue`,`green`,`purple`,`orange`,`pink`,`indigo`,`yellow`,`red`];function BH(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t^e.charCodeAt(n);return zH[Math.abs(t)%zH.length]}function VH(e,t){if(e&&LH[e])return LH[e];if(t==null||t===``)return`bg-muted text-muted-foreground border-border`;let n=String(t).toLowerCase().replace(/[\s-]/g,`_`),r=IH[n];return r&&LH[r]?LH[r]:LH[BH(n)]}function HH({value:e,field:t}){let n=t,r=n.options||[],i=n.appearance===`dot`?`dot`:`badge`;if(e==null||e===``)return(0,G.jsx)($L,{});let a=e=>{let t=r.find(t=>t.value===e);if(t)return t;let n=String(e).toLowerCase();return r.find(e=>String(e.value).toLowerCase()===n)},o=(e,t)=>{let n=a(e),r=n?.label||wH(String(e));return i===`dot`?(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 text-sm`,children:[(0,G.jsx)(`span`,{className:X(`h-1.5 w-1.5 rounded-full shrink-0`,RH[n?.color||IH[String(e).toLowerCase().replace(/[\s-]/g,`_`)]||BH(String(e).toLowerCase().replace(/[\s-]/g,`_`))]||RH.gray),"aria-hidden":`true`}),(0,G.jsx)(`span`,{className:`truncate`,children:r})]},t):(0,G.jsx)(eN,{variant:`outline`,className:VH(n?.color,e),children:r},t)};return Array.isArray(e)?(0,G.jsx)(`div`,{className:X(`flex flex-wrap`,i===`dot`?`gap-x-3 gap-y-1`:`gap-1`),children:e.map((e,t)=>o(e,t))}):o(e)}function UH({value:e}){if(!e)return(0,G.jsx)($L,{});let t=yH(),n=String(bH(e)??``),[r,i]=W.useState(!1);return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/email`,children:[(0,G.jsx)(Z,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,G.jsx)(`a`,{href:`mailto:${n}`,onClick:e=>e.stopPropagation(),children:n})}),(0,G.jsx)(`button`,{type:`button`,className:`opacity-0 group-hover/email:opacity-100 transition-opacity p-0.5 rounded hover:bg-muted`,onClick:e=>{e.stopPropagation(),e.preventDefault(),navigator.clipboard.writeText(n).then(()=>{i(!0),setTimeout(()=>i(!1),2e3)}).catch(()=>{})},"aria-label":t(`detail.copyEmail`,`Copy email`),children:r?(0,G.jsx)(Ct,{className:`h-3 w-3 text-green-600`}):(0,G.jsx)(yt,{className:`h-3 w-3 text-muted-foreground`})})]})}function WH({value:e}){if(!e)return(0,G.jsx)($L,{});let t=String(bH(e)??``);return(0,G.jsx)(Z,{variant:`link`,className:`p-0 h-auto font-normal text-blue-600 hover:text-blue-800`,asChild:!0,children:(0,G.jsx)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,onClick:e=>e.stopPropagation(),children:t})})}function GH({value:e}){if(!e)return(0,G.jsx)($L,{});let t=yH(),n=String(bH(e)??``),[r,i]=W.useState(!1);return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1 group/phone`,children:[(0,G.jsxs)(`a`,{href:`tel:${n}`,className:`inline-flex items-center gap-1 text-blue-600 hover:text-blue-800`,onClick:e=>e.stopPropagation(),children:[(0,G.jsx)(mn,{className:`h-3 w-3`}),n]}),(0,G.jsx)(`button`,{type:`button`,className:`opacity-0 group-hover/phone:opacity-100 transition-opacity p-0.5 rounded hover:bg-muted`,onClick:e=>{e.stopPropagation(),e.preventDefault(),navigator.clipboard.writeText(n).then(()=>{i(!0),setTimeout(()=>i(!1),2e3)}).catch(()=>{})},"aria-label":t(`detail.copyPhone`,`Copy phone number`),children:r?(0,G.jsx)(Ct,{className:`h-3 w-3 text-green-600`}):(0,G.jsx)(yt,{className:`h-3 w-3 text-muted-foreground`})})]})}function KH({value:e,field:t}){if(!e)return(0,G.jsx)($L,{});if(t.multiple,Array.isArray(e)){let t=e.length;return(0,G.jsxs)(`span`,{className:`text-sm text-gray-600`,children:[t,` `,t===1?`file`:`files`]})}return(0,G.jsx)(`span`,{className:`text-sm truncate`,children:e.name||e.original_name||`File`})}function qH({value:e}){return e?Array.isArray(e)?(0,G.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.slice(0,3).map((e,t)=>(0,G.jsx)(`img`,{src:e.url||``,alt:e.name||`Image ${t+1}`,className:`size-8 rounded-md border-2 border-white object-cover`},t)),e.length>3&&(0,G.jsxs)(`div`,{className:`size-8 rounded-md border-2 border-white bg-gray-100 flex items-center justify-center text-xs font-medium text-gray-600`,children:[`+`,e.length-3]})]}):(0,G.jsx)(`img`,{src:e.url||``,alt:e.name||`Image`,className:`size-10 rounded-md object-cover`}):(0,G.jsx)($L,{})}function JH({value:e,field:t}){let n=t.reference_to,r=(()=>{if(Array.isArray(e))return e.find(e=>e!=null&&(typeof e==`string`||typeof e==`number`)&&e!==``);if(e!=null&&e!==``&&(typeof e==`string`||typeof e==`number`)&&typeof e!=`object`)return e})(),i=vH(n,r);if(e==null||e===``)return(0,G.jsx)($L,{});if(!Array.isArray(e)&&typeof e==`object`){let t=e,n=gH(t)||String(t.id||t._id||``);if(n)return(0,G.jsx)(`span`,{className:`truncate`,children:n})}let a=t.options||[],o=e=>{if(a.length>0){let t=a.find(t=>String(t.value)===String(e));if(t)return{text:t.label,muted:!1}}return e===r&&i?{text:i,muted:!1}:_H(e)?{text:`—`,muted:!0}:{text:String(e),muted:!1}};if(Array.isArray(e))return(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.map((e,t)=>{let n,r=!1;if(typeof e==`object`&&e)n=gH(e)||String(e.id||e._id||`[Object]`);else{let t=o(e);n=t.text,r=t.muted}return(0,G.jsx)(`span`,{className:X(`inline-flex items-center px-2 py-0.5 rounded text-xs font-medium`,r?`bg-muted/40 text-muted-foreground`:`bg-gray-50 text-gray-700 dark:bg-gray-800/50 dark:text-gray-200`),children:n},t)})});if(typeof e==`object`&&e)return(0,G.jsx)(`span`,{className:`truncate`,children:gH(e)||String(e.id||e._id||`[Object]`)});let{text:s,muted:c}=o(e);return(0,G.jsx)(`span`,{className:X(`truncate`,c&&`text-muted-foreground`),children:s})}function YH({value:e}){let t=bH(e);return t==null||t===``?(0,G.jsx)($L,{}):(0,G.jsx)(`span`,{className:`text-gray-700 font-mono text-sm`,children:String(t)})}function XH({value:e}){if(!e)return(0,G.jsx)($L,{});if(typeof e!=`object`)return(0,G.jsx)(`span`,{className:`truncate`,children:String(e)});if(Array.isArray(e))return(0,G.jsxs)(`div`,{className:`flex -space-x-2`,children:[e.slice(0,3).map((e,t)=>{if(typeof e!=`object`||!e)return(0,G.jsx)(`span`,{className:`truncate text-sm`,children:String(e)},t);let n=e.name||e.username||`User`;return(0,G.jsx)(XM,{className:`size-8 border-2 border-white`,title:n,children:(0,G.jsx)(QM,{className:`bg-blue-500 text-white text-xs`,children:n.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})},t)}),e.length>3&&(0,G.jsx)(XM,{className:`size-8 border-2 border-white`,children:(0,G.jsxs)(QM,{className:`bg-gray-200 text-gray-600 text-xs`,children:[`+`,e.length-3]})})]});let t=e.name||e.username||`User`;return(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(XM,{className:`size-8`,children:(0,G.jsx)(QM,{className:`bg-blue-500 text-white text-xs`,children:t.split(` `).map(e=>e[0]).join(``).toUpperCase().slice(0,2)})}),(0,G.jsx)(`span`,{className:`truncate`,children:t})]})}var ZH=new Map;function QH(e,t){ZH.set(e,t)}var $H={phone:`phone`,tel:`phone`,telephone:`phone`,email:`email`,url:`url`,uri:`url`,link:`url`,currency:`currency`,money:`currency`,percent:`percent`,percentage:`percent`},eU=new Set([`text`,`textarea`,`string`,`longtext`,``]);function tU(e){if(!e)return`text`;if(typeof e==`string`)return e;let t=(e.type||``).toLowerCase(),n=e.format,r=typeof n==`string`?n.toLowerCase():``;return r&&$H[r]&&eU.has(t)?$H[r]:e.type||`text`}function nU(e){return ZH.has(e)?ZH.get(e):{text:DH,textarea:DH,markdown:DH,html:DH,number:OH,currency:kH,percent:jH,boolean:NH,date:PH,datetime:FH,time:DH,select:HH,status:HH,lookup:JH,master_detail:JH,email:UH,url:WH,phone:GH,file:KH,image:qH,formula:YH,summary:YH,auto_number:DH,user:XH,owner:XH,password:()=>(0,G.jsx)(`span`,{children:`••••••`}),location:DH,object:()=>(0,G.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Object]`}),vector:()=>(0,G.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Vector]`}),grid:()=>(0,G.jsx)(`span`,{className:`text-gray-500 italic`,children:`[Grid]`})}[e]||DH}QH(`lookup`,JH),QH(`master_detail`,JH),QH(`select`,HH),QH(`status`,HH),QH(`user`,XH),QH(`owner`,XH),RB(nU);var rU={text:()=>Promise.resolve().then(()=>(Jz(),Kz)).then(e=>({default:e.TextField})),textarea:()=>Promise.resolve().then(()=>(TB(),CB)).then(e=>({default:e.TextAreaField})),number:()=>Promise.resolve().then(()=>(Zz(),Yz)).then(e=>({default:e.NumberField})),boolean:()=>Promise.resolve().then(()=>(eB(),Qz)).then(e=>({default:e.BooleanField})),select:()=>Promise.resolve().then(()=>(oB(),iB)).then(e=>({default:e.SelectField})),date:()=>Promise.resolve().then(()=>(lB(),sB)).then(e=>({default:e.DateField})),datetime:()=>Promise.resolve().then(()=>(QB(),XB)).then(e=>({default:e.DateTimeField})),time:()=>Promise.resolve().then(()=>(tV(),$B)).then(e=>({default:e.TimeField})),email:()=>Promise.resolve().then(()=>(fB(),uB)).then(e=>({default:e.EmailField})),phone:()=>Promise.resolve().then(()=>(hB(),pB)).then(e=>({default:e.PhoneField})),url:()=>Promise.resolve().then(()=>(vB(),gB)).then(e=>({default:e.UrlField})),currency:()=>Promise.resolve().then(()=>(SB(),yB)).then(e=>({default:e.CurrencyField})),percent:()=>Promise.resolve().then(()=>(iV(),nV)).then(e=>({default:e.PercentField})),password:()=>Promise.resolve().then(()=>(sV(),aV)).then(e=>({default:e.PasswordField})),markdown:()=>Promise.resolve().then(()=>(OB(),EB)).then(e=>({default:e.RichTextField})),html:()=>Promise.resolve().then(()=>(OB(),EB)).then(e=>({default:e.RichTextField})),lookup:()=>Promise.resolve().then(()=>(YB(),HB)).then(e=>({default:e.LookupField})),master_detail:()=>Promise.resolve().then(()=>(YB(),HB)).then(e=>({default:e.LookupField})),file:()=>Promise.resolve().then(()=>(uV(),cV)).then(e=>({default:e.FileField})),image:()=>Promise.resolve().then(()=>(_V(),mV)).then(e=>({default:e.ImageField})),location:()=>Promise.resolve().then(()=>(bV(),vV)).then(e=>({default:e.LocationField})),formula:()=>Promise.resolve().then(()=>(CV(),xV)).then(e=>({default:e.FormulaField})),summary:()=>Promise.resolve().then(()=>(EV(),wV)).then(e=>({default:e.SummaryField})),auto_number:()=>Promise.resolve().then(()=>(kV(),DV)).then(e=>({default:e.AutoNumberField})),user:()=>Promise.resolve().then(()=>(MV(),AV)).then(e=>({default:e.UserField})),owner:()=>Promise.resolve().then(()=>(MV(),AV)).then(e=>({default:e.UserField})),object:()=>Promise.resolve().then(()=>(FV(),NV)).then(e=>({default:e.ObjectField})),vector:()=>Promise.resolve().then(()=>(RV(),IV)).then(e=>({default:e.VectorField})),grid:()=>Promise.resolve().then(()=>(VV(),zV)).then(e=>({default:e.GridField})),color:()=>Promise.resolve().then(()=>(WV(),HV)).then(e=>({default:e.ColorField})),slider:()=>Promise.resolve().then(()=>(qV(),GV)).then(e=>({default:e.SliderField})),rating:()=>Promise.resolve().then(()=>(XV(),JV)).then(e=>({default:e.RatingField})),code:()=>Promise.resolve().then(()=>($V(),ZV)).then(e=>({default:e.CodeField})),avatar:()=>Promise.resolve().then(()=>(nH(),eH)).then(e=>({default:e.AvatarField})),address:()=>Promise.resolve().then(()=>(aH(),rH)).then(e=>({default:e.AddressField})),geolocation:()=>Promise.resolve().then(()=>(cH(),oH)).then(e=>({default:e.GeolocationField})),signature:()=>Promise.resolve().then(()=>(dH(),lH)).then(e=>({default:e.SignatureField})),qrcode:()=>Promise.resolve().then(()=>(mH(),fH)).then(e=>({default:e.QRCodeField}))};function iU(e){let t=rU[e];if(!t){console.warn(`Unknown field type: ${e}`);return}let n=W.lazy(t);Y.register(e,n,{namespace:`field`})}function aU(){Object.keys(rU).forEach(e=>{iU(e)})}aU();var oU=(0,W.createContext)(null);oU.displayName=`PermissionContext`;function sU(){let e=(0,W.useContext)(oU);return(0,W.useMemo)(()=>e?{...e,can:(t,n)=>e.check(t,n).allowed,cannot:(t,n)=>!e.check(t,n).allowed}:{check:()=>({allowed:!0}),checkField:()=>!0,getFieldPermissions:()=>[],getRowFilter:()=>void 0,roles:[],isLoaded:!1,can:()=>!0,cannot:()=>!1},[e])}function cU(e){let{checkField:t,getFieldPermissions:n}=sU(),r=(0,W.useMemo)(()=>n(e),[n,e]);return(0,W.useMemo)(()=>({permissions:r,canRead:n=>t(e,n,`read`),canWrite:n=>t(e,n,`write`),readableFields:n=>n.filter(n=>t(e,n,`read`)),writableFields:n=>n.filter(n=>t(e,n,`write`))}),[r,t,e])}var lU=new Set([`textarea`,`markdown`,`html`,`grid`,`rich-text`,`field:textarea`,`field:markdown`,`field:html`,`field:grid`,`field:rich-text`]);function uU(e){return lU.has(e)}function dU(e,t){let n;return n=e<=3?1:2,t!==void 0&&t<640?Math.min(n,1):n}function fU(e,t){return t<=1?e:e.map(e=>e.span===void 0&&e.type&&uU(e.type)?{...e,span:t}:e)}function pU(e,t,n){if(t!==void 0)return{fields:fU(e,t),columns:t};let r=dU(e.length,n);return{fields:fU(e,r),columns:r}}function mU(e,t){return function(){try{let n=hu();return n.t(t)===t?{t:(t,n)=>{let r=e[t]||t;if(n)for(let[e,t]of Object.entries(n))r=r.replace(`{{${e}}}`,String(t));return r}}:{t:n.t}}catch{return{t:(t,n)=>{let r=e[t]||t;if(n)for(let[e,t]of Object.entries(n))r=r.replace(`{{${e}}}`,String(t));return r}}}}}var hU=mU({"detail.back":`Back`,"detail.edit":`Edit`,"detail.editInline":`Edit`,"detail.save":`Save`,"detail.saveChanges":`Save changes`,"detail.editFieldsInline":`Edit fields inline`,"detail.cancel":`Cancel`,"detail.cancelEdit":`Discard changes`,"detail.openInNewTab":`Open in new tab`,"detail.share":`Share`,"detail.duplicate":`Duplicate`,"detail.export":`Export`,"detail.viewHistory":`View history`,"detail.delete":`Delete`,"detail.moreActions":`More actions`,"detail.addToFavorites":`Add to favorites`,"detail.removeFromFavorites":`Remove from favorites`,"detail.previousRecord":`Previous record`,"detail.nextRecord":`Next record`,"detail.recordOf":`{{current}} of {{total}}`,"detail.recordNotFound":`Record not found`,"detail.recordNotFoundDescription":`The record you are looking for does not exist or may have been deleted.`,"detail.goBack":`Go back`,"detail.details":`Details`,"detail.related":`Related`,"detail.relatedRecords":`{{count}} records`,"detail.relatedRecordOne":`{{count}} record`,"detail.noRelatedRecords":`No related records found`,"detail.loading":`Loading...`,"detail.copyToClipboard":`Copy to clipboard`,"detail.copied":`Copied!`,"detail.deleteConfirmation":`Are you sure you want to delete this record?`,"detail.editRecord":`Edit record`,"detail.viewAll":`View All`,"detail.new":`New`,"detail.emptyValue":`—`,"detail.noValue":`No value`,"detail.activity":`Activity`,"detail.copyRecordId":`Copy record ID`,"detail.showEmptyFields":`Show {{count}} empty fields`,"detail.hideEmptyFields":`Hide empty fields`,"detail.editRow":`Edit`,"detail.deleteRow":`Delete`,"detail.deleteRowConfirmation":`Are you sure you want to delete this record?`,"detail.actions":`Actions`,"detail.previousPage":`Previous`,"detail.nextPage":`Next`,"detail.pageOf":`Page {{current}} of {{total}}`,"detail.sortBy":`Sort by`,"detail.filterPlaceholder":`Filter...`,"detail.highlightFields":`Key Fields`,"detail.comments":`Comments`,"detail.searchComments":`Search comments…`,"detail.addCommentPlaceholder":`Add a comment… (Ctrl+Enter to submit)`,"detail.noMatchingComments":`No matching comments`,"detail.noCommentsYet":`No comments yet`,"detail.pinned":`Pinned`,"detail.pin":`Pin`,"detail.unpin":`Unpin`,"detail.justNow":`just now`,"detail.minutesAgo":`{{count}}m ago`,"detail.hoursAgo":`{{count}}h ago`,"detail.daysAgo":`{{count}}d ago`,"detail.createdBy":`Created by`,"detail.updatedBy":`Updated by`,"detail.dropFilesToUpload":`Drop files here or click to upload`,"detail.attachmentCount":`{{count}} attachment`,"detail.attachmentCountPlural":`{{count}} attachments`,"detail.removeAttachment":`Remove attachment`,"detail.unifiedDiff":`Unified diff`,"detail.sideBySideDiff":`Side-by-side diff`,"detail.noChanges":`No changes`,"detail.previousVersion":`Previous`,"detail.currentVersion":`Current`,"detail.discussion":`Discussion`,"detail.showDiscussion":`Show Discussion ({{count}})`,"detail.hideDiscussion":`Hide discussion`,"detail.bold":`Bold (Ctrl+B)`,"detail.italic":`Italic (Ctrl+I)`,"detail.listFormat":`List`,"detail.inlineCode":`Inline code`,"detail.mentionSomeone":`Mention someone`,"detail.preview":`Preview`,"detail.submitComment":`Submit (Ctrl+Enter)`,"detail.sendComment":`Send`,"detail.writeComment":`Write a comment…`,"detail.subscribedTooltip":`Subscribed — click to unsubscribe`,"detail.unsubscribedTooltip":`Subscribe to notifications`,"detail.firstRecord":`First record (Home)`,"detail.previousRecordKey":`Previous record (←)`,"detail.nextRecordKey":`Next record (→)`,"detail.lastRecord":`Last record (End)`,"detail.noRecords":`No records`,"detail.showEmptyRelated_one":`+ {{count}} empty`,"detail.showEmptyRelated_other":`+ {{count}} empty`,"detail.searchWhileNavigating":`Search while navigating`,"detail.searchRecords":`Search records…`,"detail.allActivity":`All Activity`,"detail.commentsOnly":`Comments Only`,"detail.fieldChangesFilter":`Field Changes`,"detail.tasksOnly":`Tasks Only`,"detail.leaveCommentPlaceholder":`Leave a comment… (Ctrl+Enter to submit)`,"detail.noActivity":`No activity recorded`,"detail.loadMore":`Load more`,"detail.edited":`(edited)`,"detail.via":`via {{source}}`,"detail.replyCount":`{{count}} reply`,"detail.replyCountPlural":`{{count}} replies`,"detail.replyPlaceholder":`Reply…`,"detail.filterActivity":`Filter activity`,"detail.openDiscussion":`Open discussion panel`,"detail.closeDiscussion":`Close discussion panel`,"detail.subscribeAriaLabel":`Subscribe to notifications`,"detail.unsubscribeAriaLabel":`Unsubscribe from notifications`,"detail.clearSearch":`Clear search`,"detail.concurrentUpdateTitle":`This record was modified by someone else`,"detail.concurrentUpdateDescription":`Another user saved a newer version of {{field}} while you were editing. To prevent silently overwriting their change, please choose how to resolve the conflict.`,"detail.concurrentUpdateYourEdit":`Your edit`,"detail.concurrentUpdateCurrentValue":`Current value`,"detail.concurrentUpdateUpdatedBy":`Updated by {{name}}`,"detail.concurrentUpdateUpdatedAt":`Updated at {{when}}`,"detail.concurrentUpdateReload":`Reload latest`,"detail.concurrentUpdateOverwrite":`Overwrite anyway`,"detail.concurrentUpdateCancel":`Cancel`},`detail.back`);function gU(e,t){return!e||e<=1||t<=1?``:t===2?e>=2?`md:col-span-2`:``:e===2?`md:col-span-2`:e>=3?`md:col-span-2 lg:col-span-3`:``}var _U=({section:e,data:t,className:n,objectSchema:r,objectName:i,isEditing:a=!1,onFieldChange:o,virtualScroll:s})=>{let[c,l]=W.useState(e.defaultCollapsed??!1),[u,d]=W.useState(null),[f,p]=W.useState(void 0),[m,h]=W.useState(!1),{t:g}=hU(),{fieldLabel:_,translateOptions:v}=bu(),y=W.useCallback((e,t)=>{let n=t==null?``:String(t);navigator.clipboard.writeText(n).then(()=>{d(e),setTimeout(()=>d(null),2e3)})},[]),b=W.useCallback(e=>{let n=t?.[e.name]??e.value;return n==null||n===``},[t]),x=W.useMemo(()=>e.fields.filter(b).length,[e.fields,b]),S=oI(),C=S?3:4,w=S?.2:.25,T=e.fields.length-x,E=!e.hideEmpty&&!a&&e.fields.length>=C&&x/e.fields.length>=w&&T>0,ee=!m&&(e.hideEmpty||E)?e.fields.filter(e=>!b(e)):e.fields;if(ee.length===0&&x===e.fields.length)return null;let{fields:D,columns:O}=pU(ee,e.columns),k=e=>{let n=t?.[e.name]??e.value;if(e.render)return(0,G.jsx)(zl,{schema:e.render,data:{...t,value:n}});let s=gU(e.span,O),c=r?.fields?.[e.name],l={...e};if(c){!e.type&&c.type&&(l.type=c.type),c.options&&!l.options&&(l.options=c.options),c.currency&&!l.currency&&(l.currency=c.currency),c.precision!==void 0&&l.precision===void 0&&(l.precision=c.precision),c.format&&!l.format&&(l.format=c.format);let t=c.reference_to||c.reference;t&&!l.reference_to&&(l.reference_to=t),c.reference_field&&!l.reference_field&&(l.reference_field=c.reference_field)}i&&Array.isArray(l.options)&&l.options.length>0&&(l.options=v(i,e.name,l.options));let d=(()=>{if(n==null||n===``)return(0,G.jsx)(`span`,{className:`text-muted-foreground/60 text-sm select-none`,"aria-label":g(`detail.noValue`,{defaultValue:`No value`}),title:g(`detail.noValue`,{defaultValue:`No value`}),children:`—`});let t=tU(l)||e.type;if(t){let e=nU(t);if(e)return(0,G.jsx)(e,{value:n,field:l})}return String(n)})(),f=n!=null&&n!==``,p=u===e.name;return(0,G.jsxs)(`div`,{className:X(`space-y-1.5 group`,s),children:[(0,G.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:_(i||``,e.name,e.label||e.name)}),a&&!e.readonly?(0,G.jsx)(`div`,{className:`min-h-[44px] sm:min-h-0`,children:(()=>{let t=l.type||e.type;if(t===`select`&&Array.isArray(l.options)&&l.options.length>0)return(0,G.jsx)(aB,{field:l,value:n==null?``:String(n),onChange:t=>o?.(e.name,t)});if(t===`boolean`)return(0,G.jsx)($z,{field:l,value:!!n,onChange:t=>o?.(e.name,t)});let r=t===`date`||t===`datetime`;return(0,G.jsx)(`input`,{type:t===`number`?`number`:r?`date`:`text`,className:`w-full px-2 py-1.5 text-sm border rounded-md bg-background focus:outline-none focus:ring-2 focus:ring-ring`,value:n==null?``:r?(()=>{let e=String(n);if(/^\d{4}-\d{2}-\d{2}/.test(e))return e.slice(0,10);let t=new Date(e);return isNaN(t.getTime())?``:t.toLocaleDateString(`en-CA`)})():String(n),onChange:t=>{let n=t.target.value;if(r&&n){let t=new Date(n+`T00:00:00`).toISOString();o?.(e.name,t)}else o?.(e.name,n)}})})()}):(0,G.jsxs)(`div`,{className:X(`flex items-start justify-between gap-2 min-h-[44px] sm:min-h-0 rounded-md`,f&&`cursor-pointer active:bg-muted/60 transition-colors`),onClick:f?()=>y(e.name,n):void 0,onKeyDown:f?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),y(e.name,n))}:void 0,role:f?`button`:void 0,tabIndex:f?0:void 0,children:[(0,G.jsx)(`div`,{className:`text-sm flex-1 break-words py-1`,children:d}),f&&(0,G.jsx)(cI,{children:(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity shrink-0`,onClick:t=>{t.stopPropagation(),y(e.name,n)},children:p?(0,G.jsx)(Ct,{className:`h-3 w-3 text-green-600`}):(0,G.jsx)(yt,{className:`h-3 w-3`})})}),(0,G.jsx)(dI,{children:g(p?`detail.copied`:`detail.copyToClipboard`)})]})})]})]},e.name)},A=s?.enabled===!0,te=s?.batchSize??20;W.useEffect(()=>{if(!A){p(void 0);return}if(D.length<=te){p(void 0);return}p(te);let e=setTimeout(()=>p(void 0),100);return()=>clearTimeout(e)},[A,D.length,te]);let ne=f===void 0?D:D.slice(0,f),re=x>0&&(e.hideEmpty||E),ie=(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:X(`grid gap-3 sm:gap-4`,O===1?`grid-cols-1`:O===2?`grid-cols-1 md:grid-cols-2`:`grid-cols-1 md:grid-cols-2 lg:grid-cols-3`),children:ne.map(k)}),re&&(0,G.jsx)(`div`,{className:`mt-3 -ml-2`,children:(0,G.jsxs)(Z,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>h(e=>!e),className:`h-7 px-2 text-xs text-muted-foreground hover:text-foreground`,children:[(0,G.jsx)(m?Pt:_n,{className:`h-3.5 w-3.5 mr-1.5`}),m?g(`detail.hideEmptyFields`,{defaultValue:`Hide empty fields`}):g(`detail.showEmptyFields`,{count:x,defaultValue:`Show ${x} empty field${x===1?``:`s`}`})]})})]});return!e.title&&!e.collapsible&&e.showBorder===!1?(0,G.jsx)(`div`,{className:X(n),children:ie}):e.collapsible?(0,G.jsx)(MN,{open:!c,onOpenChange:e=>l(!e),className:n,children:(0,G.jsxs)(uN,{children:[(0,G.jsx)(NN,{asChild:!0,children:(0,G.jsxs)(dN,{className:X(`py-3 px-4 sm:py-4 sm:px-6 cursor-pointer hover:bg-muted/50 transition-colors`,e.headerColor&&`bg-${e.headerColor}`),children:[(0,G.jsxs)(fN,{className:`flex items-center justify-between text-base font-semibold tracking-tight`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,G.jsx)(`span`,{children:e.title})]}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsx)(c?Xe:nt,{className:`h-4 w-4 text-muted-foreground`})})]}),e.description&&!c&&(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:e.description})]})}),(0,G.jsx)(PN,{children:(0,G.jsx)(mN,{className:`pt-3 sm:pt-4 px-3 sm:px-6 pb-4 sm:pb-5`,children:ie})})]})}):(0,G.jsxs)(uN,{className:X(e.showBorder===!1?`border-none shadow-none`:``,n),children:[e.title&&(0,G.jsxs)(dN,{className:X(`py-3 px-4 sm:py-4 sm:px-6`,e.headerColor&&`bg-${e.headerColor}`),children:[(0,G.jsx)(fN,{className:`flex items-center justify-between text-base font-semibold tracking-tight`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,G.jsx)(`span`,{children:e.title})]})}),e.description&&(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:e.description})]}),(0,G.jsx)(mN,{className:`pt-3 sm:pt-4 px-3 sm:px-6 pb-4 sm:pb-5`,children:ie})]})},vU=({tabs:e,data:t,className:n})=>{let[r,i]=W.useState(e[0]?.key),a=e.filter(e=>typeof e.visible==`boolean`?e.visible:(e.visible,!0));return(0,G.jsxs)(tL,{value:r,onValueChange:i,className:n,children:[(0,G.jsx)(nL,{className:`w-full justify-start border-b rounded-none bg-transparent p-0`,children:a.map(e=>(0,G.jsx)(rL,{value:e.key,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon&&(0,G.jsx)(`span`,{children:e.icon}),(0,G.jsx)(`span`,{children:e.label}),e.badge&&(0,G.jsx)(eN,{variant:`secondary`,className:`ml-1`,children:e.badge})]})},e.key))}),a.map(e=>(0,G.jsx)(iL,{value:e.key,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:(0,G.jsx)(W.Suspense,{fallback:null,children:Array.isArray(e.content)?(0,G.jsx)(`div`,{className:`space-y-4`,children:e.content.map((e,n)=>(0,G.jsx)(zl,{schema:e,data:t},n))}):(0,G.jsx)(zl,{schema:e.content,data:t})})},e.key))]})};function yU(e){return e&&un[e.split(/[-_\s]/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)]||Et}var bU=({title:e,type:t,api:n,data:r,schema:i,columns:a,className:o,dataSource:s,objectName:c,onNew:l,onViewAll:u,onRowEdit:d,onRowDelete:f,onRowClick:p,maxColumns:m=6,pageSize:h,sortable:g=!1,filterable:_=!1,collapsible:v=!1,defaultCollapsed:y=!1,referenceField:b,parentId:x,icon:S})=>{let C=r!==void 0,w=r??[],[T,E]=W.useState(w),[ee,D]=W.useState(()=>!!n&&!C),[O,k]=W.useState(0),[A,te]=W.useState(null),[ne,re]=W.useState(`asc`),[ie,j]=W.useState(``),[M,ae]=W.useState(null),[N,oe]=W.useState(y),[P,se]=W.useState({}),{t:F}=hU(),{fieldLabel:ce}=bu();W.useEffect(()=>{C&&E(r??[])},[r,C]),W.useEffect(()=>{n&&s?.getObjectSchema&&!a?.length&&s.getObjectSchema(n).then(ae).catch(e=>{console.warn(`[RelatedList] Failed to fetch schema for ${n}:`,e)})},[n,s,a]),W.useEffect(()=>{if(n&&!C){if(!(b&&x!=null&&x!==``)){n&&(x==null||x===``)&&!b&&console.warn(`[RelatedList] "${n}" has no referenceField/parentId — refusing to fetch all rows. Pass relationshipField + parentId to scope the query.`),E([]),D(!1);return}D(!0);let e={[b]:x};if(s&&typeof s.find==`function`)s.find(n,{$filter:e}).then(e=>{E(Array.isArray(e)?e:Array.isArray(e?.data)?e.data:[]),D(!1)}).catch(e=>{console.error(`Failed to fetch related data:`,e),D(!1)});else{let e=new URLSearchParams({[`filter[${b}]`]:String(x)}).toString();fetch(`${n}?${e}`).then(e=>e.json()).then(e=>{E(Array.isArray(e)?e:e?.data||[])}).catch(e=>{console.error(`Failed to fetch related data:`,e)}).finally(()=>D(!1))}}},[n,C,s,b,x]),W.useEffect(()=>{if(!s?.find||!M?.fields||!T.length)return;let e=M.fields,t=[];for(let[n,r]of Object.entries(e)){if(!r||r.type!==`lookup`&&r.type!==`master_detail`)continue;let e=r.reference_to||r.reference;if(!e)continue;let i=new Set;for(let e of T){let t=e?.[n];t!=null&&(typeof t==`string`&&t?i.add(t):typeof t==`number`&&i.add(String(t)))}let a=P[n]||{},o=Array.from(i).filter(e=>!(e in a));o.length>0&&t.push({fieldName:n,target:e,ids:o})}if(t.length===0)return;let n=!1;return Promise.all(t.map(({fieldName:e,target:t,ids:n})=>s.find(t,{$filter:{id:{$in:n}},$top:n.length}).then(t=>{let n=Array.isArray(t)?t:t?.data||[],r={};for(let e of n){let t=e?.id||e?._id;t&&(r[String(t)]=e?.full_name||e?.fullname||e?.display_name||e?.name||e?.subject||e?.title||e?.label||e?.code||String(t))}return{fieldName:e,map:r}}).catch(t=>(console.warn(`[RelatedList] Failed to resolve lookups for ${e}:`,t),{fieldName:e,map:{}})))).then(e=>{n||se(t=>{let n={...t};for(let{fieldName:t,map:r}of e)n[t]={...n[t]||{},...r};return n})}),()=>{n=!0}},[s,M,T]);let le=W.useMemo(()=>{if(!ie)return T;let e=ie.toLowerCase();return T.filter(t=>Object.values(t).some(t=>t!=null&&String(t).toLowerCase().includes(e)))},[T,ie]),ue=W.useMemo(()=>A?[...le].sort((e,t)=>{let n=e[A],r=t[A];if(n==null&&r==null)return 0;if(n==null)return 1;if(r==null)return-1;let i=String(n).localeCompare(String(r),void 0,{numeric:!0});return ne===`asc`?i:-i}):le,[le,A,ne]),de=h&&h>0?h:0,fe=de?Math.max(1,Math.ceil(ue.length/de)):1,pe=de?ue.slice(O*de,(O+1)*de):ue;W.useEffect(()=>{k(0)},[ie,A,ne]);let me=W.useCallback(e=>{A===e?re(e=>e===`asc`?`desc`:`asc`):(te(e),re(`asc`))},[A]),[I,he]=W.useState(null),L=W.useCallback(e=>{he(e)},[]),ge=W.useCallback(()=>{I&&f?.(I),he(null)},[I,f]),_e=sU(),ve=W.useMemo(()=>{let e=c||n||``,t=t=>!_e?.isLoaded||!e?t:t.filter(t=>{let n=t?.accessorKey||t?.field||t?.name;return n?_e.checkField(e,String(n),`read`):!0}),r=e=>b?e.filter(e=>(e?.accessorKey||e?.field||e?.name)!==b):e,i=e=>e==null||typeof e==`string`&&e.trim()===``||Array.isArray(e)&&e.length===0,o=e=>T.length?e.filter(e=>{let t=e?.accessorKey||e?.field||e?.name;return t?T.some(e=>!i(e?.[t])):!0}):e;if(a&&a.length>0)return o(t(r(a)));if(!M?.fields)return[];let s=e,l=new Set([`image`,`file`,`attachment`,`rich_text`,`html`,`json`]),u=[`name`,`full_name`,`fullname`,`title`,`subject`,`label`,`code`,`number`],d=Object.entries(M.fields).filter(([e,t])=>!(e.startsWith(`_`)||e===`id`||e===b||t?.hidden||t?.type&&l.has(t.type)||_e?.isLoaded&&s&&!_e.checkField(s,e,`read`)));return d.sort(([e,t],[n,r])=>{let i=u.indexOf(e),a=u.indexOf(n),o=i>=0?i:100,s=a>=0?a:100;if(o!==s)return o-s;let c=t?.type===`select`||e.includes(`status`);return c===(r?.type===`select`||n.includes(`status`))?0:c?-1:1}),o(d.map(([e,t])=>{let n={accessorKey:e,header:ce(s,e,t.label||e)};if(t.type){let r=nU(tU({type:t.type,format:t.format})||t.type);if(r){let i=t.type===`lookup`||t.type===`master_detail`?P[e]:void 0,a=i&&Object.keys(i).length>0?Object.entries(i).map(([e,t])=>({value:e,label:t})):void 0,o={name:e,label:t.label||e,type:t.type,...(a||t.options)&&{options:a||t.options},...t.currency&&{currency:t.currency},...t.precision!==void 0&&{precision:t.precision},...t.format&&{format:t.format},...(t.reference_to||t.reference)&&{reference_to:t.reference_to||t.reference},...t.reference_field&&{reference_field:t.reference_field}};n.cell=e=>e==null?W.createElement(`span`,{className:`text-muted-foreground/50 text-xs italic`},`—`):W.createElement(r,{value:e,field:o})}}return n})).slice(0,Math.max(1,m))},[a,M,c,n,ce,b,T,m,P,_e]),R=!!d||!!f,ye=oI(),be=W.useMemo(()=>{if(i)return i;if(ye&&(t===`grid`||t===`table`)){let e=ve[0]?.accessorKey||ve[0]?.field||ve[0]?.name,t=ve.slice(1,4).map(e=>e.accessorKey||e.field||e.name).filter(Boolean);return{type:`object-gallery`,data:pe,objectName:n,gallery:{titleField:e||`name`,visibleFields:t,cardSize:`medium`},onRowClick:p}}switch(t){case`grid`:case`table`:return{type:`data-table`,data:pe,columns:ve,pagination:!1,pageSize:de||10,searchable:!1,exportable:!1,rowActions:R,onRowEdit:d,onRowDelete:f?L:void 0,onRowClick:p};case`list`:return{type:`data-list`,data:pe};default:return{type:`div`,children:`No view configured`}}},[t,pe,ve,i,de,R,d,f,L,p,ye,n]),z=v?`cursor-pointer select-none`:void 0,xe=v?()=>oe(e=>!e):void 0,Se=yU(S),Ce=!ee&&T.length===0,we=_;return(0,G.jsxs)(uN,{className:X(`shadow-none border-border/60 bg-transparent`,Ce&&`bg-muted/10`,o),children:[(0,G.jsx)(dN,{className:X(`py-3 px-4 sm:py-3 min-h-12 sm:min-h-0`,z),onClick:xe,children:(0,G.jsxs)(fN,{className:`flex items-center justify-between gap-2 text-sm font-semibold`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[v&&(0,G.jsx)(N?Xe:nt,{className:`h-3.5 w-3.5 text-muted-foreground shrink-0`}),(0,G.jsx)(Se,{className:`h-4 w-4 text-muted-foreground shrink-0`,"aria-hidden":!0}),(0,G.jsx)(`span`,{className:X(`truncate`,Ce&&`text-muted-foreground font-medium`),children:e}),(0,G.jsx)(eN,{variant:`secondary`,className:X(`text-xs font-normal h-5 px-1.5`,T.length===0&&`bg-muted text-muted-foreground`),"aria-label":`${T.length} records`,children:T.length}),Ce&&(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground/70 italic ml-1 truncate`,children:F(`detail.noRelatedRecords`)})]}),(0,G.jsx)(`div`,{className:`flex items-center gap-1 shrink-0`,children:l&&(0,G.jsxs)(Z,{variant:Ce?`ghost`:`outline`,size:`sm`,onClick:e=>{e.stopPropagation(),l()},className:`gap-1 h-9 sm:h-7 text-xs shadow-none`,children:[(0,G.jsx)(Kt,{className:`h-3.5 w-3.5`}),F(`detail.new`)]})})]})}),!N&&!Ce&&(0,G.jsxs)(mN,{className:X(`pt-0 pb-4 px-4`),children:[we&&(0,G.jsx)(`div`,{className:`mb-3`,children:(0,G.jsx)(ZP,{placeholder:F(`detail.filterPlaceholder`),value:ie,onChange:e=>j(e.target.value),className:`h-8 text-sm`})}),g&&ve&&ve.length>0&&T.length>0&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1 mb-3`,children:ve.map(e=>{let t=e.accessorKey||e.field||e.name;if(!t)return null;let n=e.header||e.label||t,r=A===t;return(0,G.jsxs)(Z,{variant:r?`secondary`:`ghost`,size:`sm`,className:`gap-1 h-7 text-xs`,onClick:()=>me(t),children:[(0,G.jsx)(jt,{className:`h-3 w-3`}),n,r&&(ne===`asc`?` ↑`:` ↓`)]},t)})}),ee?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-6 text-muted-foreground text-sm`,children:F(`detail.loading`)}):(0,G.jsx)(zl,{schema:be}),de>0&&ue.length>de&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between mt-3 pt-3 border-t`,children:[(0,G.jsxs)(Z,{variant:`outline`,size:`sm`,className:`h-7 text-xs gap-1`,disabled:O===0,onClick:()=>k(e=>Math.max(0,e-1)),children:[(0,G.jsx)(Tt,{className:`h-3 w-3`}),F(`detail.previousPage`)]}),(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:F(`detail.pageOf`,{current:O+1,total:fe})}),(0,G.jsxs)(Z,{variant:`outline`,size:`sm`,className:`h-7 text-xs gap-1`,disabled:O>=fe-1,onClick:()=>k(e=>Math.min(fe-1,e+1)),children:[F(`detail.nextPage`),(0,G.jsx)(Xe,{className:`h-3 w-3`})]})]}),u&&!Ce&&de>0&&ue.length>de&&(0,G.jsx)(`div`,{className:`mt-3 pt-3 border-t flex justify-center`,children:(0,G.jsxs)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),u()},className:`text-xs text-muted-foreground hover:text-foreground inline-flex items-center gap-1 transition-colors`,children:[F(`detail.viewAll`),(0,G.jsx)(Rt,{className:`h-3 w-3`})]})})]}),(0,G.jsx)(PM,{open:I!==null,onOpenChange:e=>{e||he(null)},children:(0,G.jsxs)(RM,{children:[(0,G.jsxs)(zM,{children:[(0,G.jsx)(VM,{children:F(`detail.deleteRowTitle`,{defaultValue:`Delete record`})}),(0,G.jsx)(HM,{children:F(`detail.deleteRowConfirmation`)})]}),(0,G.jsxs)(BM,{children:[(0,G.jsx)(WM,{children:F(`detail.cancel`,{defaultValue:`Cancel`})}),(0,G.jsx)(UM,{onClick:ge,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:F(`detail.delete`,{defaultValue:`Delete`})})]})]})})]})},xU=({group:e,data:t,className:n,objectSchema:r,objectName:i,isEditing:a=!1,onFieldChange:o})=>{let s=e.collapsible??!0,[c,l]=W.useState(e.defaultCollapsed??!1),u=(0,G.jsx)(`div`,{className:`space-y-3 sm:space-y-4`,children:e.sections.map((e,n)=>(0,G.jsx)(_U,{section:e,data:t,objectSchema:r,objectName:i,isEditing:a,onFieldChange:o},n))});return s?(0,G.jsxs)(MN,{open:!c,onOpenChange:e=>l(!e),className:n,children:[(0,G.jsx)(NN,{asChild:!0,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pb-2 border-b cursor-pointer hover:bg-muted/50 transition-colors rounded-t-md px-2 py-1.5`,children:[(0,G.jsx)(c?Xe:nt,{className:`h-4 w-4 text-muted-foreground shrink-0`}),e.icon&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold`,children:e.title})]})}),e.description&&!c&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:e.description}),(0,G.jsx)(PN,{children:(0,G.jsx)(`div`,{className:`mt-3`,children:u})})]}):(0,G.jsxs)(`div`,{className:X(`space-y-3`,n),children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pb-2 border-b`,children:[e.icon&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold`,children:e.title})]}),e.description&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description}),u]})},SU=({fields:e,data:t,className:n,objectName:r,objectSchema:i})=>{let{fieldLabel:a}=bu();if(!e.length||!t)return null;let o=e.filter(e=>{let n=t?.[e.name];return n!=null&&n!==``});return o.length===0?null:(0,G.jsx)(`section`,{className:X(`@container border-b border-border/60 pb-4`,n),"aria-label":`Record highlights`,children:(0,G.jsx)(`div`,{className:X(`flex flex-wrap gap-x-8 gap-y-3`),children:o.map(e=>{let n=t[e.name],o=i?.fields?.[e.name],s=e.type||o?.type,c={name:e.name,label:e.label,type:s||`text`,...o?.options&&{options:o.options},...o?.currency&&{currency:o.currency},...o?.precision!==void 0&&{precision:o.precision},...o?.format&&{format:o.format}},l=nU(tU(c)||s||`text`),u=s===`number`||s===`integer`||s===`currency`||s===`percent`||s===`decimal`;return(0,G.jsxs)(`div`,{className:`flex min-w-[8rem] max-w-[16rem] basis-[10rem] flex-col gap-0.5`,children:[(0,G.jsxs)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:[e.icon&&(0,G.jsx)(`span`,{className:`mr-1`,children:e.icon}),a(r||``,e.name,e.label)]}),(0,G.jsx)(`span`,{className:X(`block min-w-0 truncate`,u?`text-xl md:text-2xl font-semibold leading-tight tabular-nums tracking-tight`:`text-sm font-semibold`),children:(0,G.jsx)(l,{value:n,field:c})})]},e.name)})})})};function CU(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<7?`${a}d ago`:t.toLocaleDateString()}catch{return e}}var wU=({comments:e,onAddComment:t,onTogglePin:n,searchable:r=!1,className:i})=>{let{t:a}=hU(),[o,s]=W.useState(``),[c,l]=W.useState(!1),[u,d]=W.useState(``),f=W.useCallback(async()=>{let e=o.trim();if(!(!e||!t)){l(!0);try{await t(e),s(``)}finally{l(!1)}}},[o,t]),p=W.useCallback(e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),f())},[f]),m=W.useMemo(()=>[...u.trim()?e.filter(e=>{let t=u.trim().toLowerCase();return e.text.toLowerCase().includes(t)||e.author.toLowerCase().includes(t)}):e].sort((e,t)=>e.pinned&&!t.pinned?-1:!e.pinned&&t.pinned?1:0),[e,u]);return(0,G.jsxs)(uN,{className:X(``,i),children:[(0,G.jsx)(dN,{children:(0,G.jsxs)(fN,{className:`flex items-center gap-2 text-base`,children:[(0,G.jsx)(St,{className:`h-4 w-4`}),a(`detail.comments`),(0,G.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,e.length,`)`]})]})}),(0,G.jsxs)(mN,{className:`space-y-4`,children:[r&&(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(st,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,G.jsx)(`input`,{className:`w-full rounded-md border border-input bg-background pl-8 pr-8 py-1.5 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,placeholder:a(`detail.searchComments`),value:u,onChange:e=>d(e.target.value),"aria-label":a(`detail.searchComments`)}),u&&(0,G.jsx)(`button`,{className:`absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,onClick:()=>d(``),"aria-label":a(`detail.clearSearch`),type:`button`,children:(0,G.jsx)(At,{className:`h-3.5 w-3.5`})})]})}),t&&(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`textarea`,{className:`flex-1 min-h-[60px] rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring resize-none`,placeholder:a(`detail.addCommentPlaceholder`),value:o,onChange:e=>s(e.target.value),onKeyDown:p,disabled:c}),(0,G.jsx)(Z,{size:`icon`,variant:`default`,onClick:f,disabled:!o.trim()||c,className:`shrink-0 self-end`,children:(0,G.jsx)(et,{className:`h-4 w-4`})})]}),m.length===0?(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground text-center py-4`,children:u.trim()?a(`detail.noMatchingComments`):a(`detail.noCommentsYet`)}):(0,G.jsx)(`div`,{className:`space-y-3`,children:m.map(e=>(0,G.jsxs)(`div`,{className:X(`flex gap-3`,e.pinned&&`bg-muted/40 rounded-md p-2 -mx-2`),children:[(0,G.jsx)(`div`,{className:`shrink-0`,children:e.avatarUrl?(0,G.jsx)(`img`,{src:e.avatarUrl,alt:e.author,className:`h-8 w-8 rounded-full object-cover`}):(0,G.jsx)(`div`,{className:`h-8 w-8 rounded-full bg-muted flex items-center justify-center text-xs font-medium text-muted-foreground`,children:e.author.charAt(0).toUpperCase()})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-0.5`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium truncate`,children:e.author}),(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:CU(e.createdAt)}),e.pinned&&(0,G.jsxs)(`span`,{className:`text-xs text-amber-600 flex items-center gap-0.5`,children:[(0,G.jsx)(sn,{className:`h-3 w-3`}),a(`detail.pinned`)]})]}),(0,G.jsx)(`p`,{className:`text-sm whitespace-pre-wrap break-words`,children:e.text}),n&&(0,G.jsxs)(`button`,{type:`button`,className:`mt-1 text-xs text-muted-foreground hover:text-foreground flex items-center gap-1`,onClick:()=>n(e.id),"aria-label":e.pinned?a(`detail.unpin`):a(`detail.pin`),children:[(0,G.jsx)(sn,{className:`h-3 w-3`}),e.pinned?a(`detail.unpin`):a(`detail.pin`)]})]})]},e.id))})]})]})},TU={field_change:Ye,create:ut,delete:Sn,comment:St,status_change:pn},EU={field_change:`bg-blue-100 text-blue-600`,create:`bg-green-100 text-green-600`,delete:`bg-red-100 text-red-600`,comment:`bg-purple-100 text-purple-600`,status_change:`bg-amber-100 text-amber-600`};function DU(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<7?`${a}d ago`:t.toLocaleDateString()}catch{return e}}function OU(e){return e.description?e.description:e.type===`field_change`&&e.field?`Changed ${e.field.charAt(0).toUpperCase()+e.field.slice(1).replace(/_/g,` `)} from "${e.oldValue==null?`(empty)`:String(e.oldValue)}" to "${e.newValue==null?`(empty)`:String(e.newValue)}"`:e.type===`create`?`Created this record`:e.type===`delete`?`Deleted this record`:e.type===`status_change`&&e.field?`Changed status to "${e.newValue==null?`(empty)`:String(e.newValue)}"`:`Updated record`}var kU={all:`All`,field_change:`Field Changes`,create:`Creates`,delete:`Deletes`,comment:`Comments`,status_change:`Status Changes`},AU=({activities:e,filterable:t=!1,defaultFilter:n=`all`,className:r})=>{let[i,a]=W.useState(n),o=W.useMemo(()=>i===`all`?e:e.filter(e=>e.type===i),[e,i]);return(0,G.jsxs)(uN,{className:X(``,r),children:[(0,G.jsx)(dN,{children:(0,G.jsxs)(fN,{className:`flex items-center gap-2 text-base`,children:[(0,G.jsx)(zt,{className:`h-4 w-4`}),`Activity`,(0,G.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,o.length,`)`]})]})}),(0,G.jsxs)(mN,{children:[t&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mb-4`,role:`group`,"aria-label":`Activity type filter`,children:Object.keys(kU).map(e=>(0,G.jsxs)(`button`,{type:`button`,className:X(`inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium transition-colors`,i===e?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground hover:bg-muted/80`),onClick:()=>a(e),"aria-pressed":i===e,children:[e!==`all`&&W.createElement(TU[e]||Ye,{className:`h-3 w-3`}),kU[e]]},e))}),o.length===0?(0,G.jsx)(yR,{title:`No activity recorded`,className:`py-6`}):(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`div`,{className:`absolute left-4 top-2 bottom-2 w-px bg-border`}),(0,G.jsx)(`div`,{className:`space-y-4`,children:o.map(e=>{let t=TU[e.type]||Ye;return(0,G.jsxs)(`div`,{className:`flex gap-3 relative`,children:[(0,G.jsx)(`div`,{className:X(`shrink-0 h-8 w-8 rounded-full flex items-center justify-center z-10`,EU[e.type]||`bg-gray-100 text-gray-600`),children:(0,G.jsx)(t,{className:`h-3.5 w-3.5`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,G.jsxs)(`p`,{className:`text-sm`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:e.user}),` `,(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:OU(e)})]}),(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:DU(e.timestamp)})]})]},e.id)})})]})]})]})},jU={create:`default`,update:`secondary`,delete:`destructive`,restore:`outline`,login:`outline`,logout:`outline`,permission_change:`secondary`,config_change:`secondary`,export:`outline`,import:`outline`};function MU(e){if(!e)return``;let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString()}var NU=[[60,`second`],[60,`minute`],[24,`hour`],[7,`day`],[4.34524,`week`],[12,`month`],[1/0,`year`]];function PU(e,t){if(!e)return``;let n=e instanceof Date?e:new Date(e);if(Number.isNaN(n.getTime()))return String(e);let r=(n.getTime()-Date.now())/1e3;for(let[n,i]of NU){if(Math.abs(r)<n)try{return new Intl.RelativeTimeFormat(t,{numeric:`auto`}).format(Math.round(r),i)}catch{return MU(e)}r/=n}return MU(e)}function FU(e){if(!e)return`?`;let t=e.trim().split(/\s+/).filter(Boolean).slice(0,2);return t.length===0?`?`:t.map(e=>e.charAt(0).toUpperCase()).join(``)}function IU(e){if(e==null||e===``)return`—`;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function LU({entries:e,loading:t,emptyText:n,className:r,locale:i}){return t?(0,G.jsx)(`div`,{className:X(`space-y-3`,r),children:Array.from({length:4}).map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(sI,{className:`h-8 w-8 rounded-full`}),(0,G.jsxs)(`div`,{className:`flex-1 space-y-2`,children:[(0,G.jsx)(sI,{className:`h-4 w-1/3`}),(0,G.jsx)(sI,{className:`h-3 w-1/2`})]})]},t))}):!e||e.length===0?(0,G.jsx)(`div`,{className:X(`flex items-center justify-center rounded-md border border-dashed py-10 text-sm text-muted-foreground`,r),children:n??`No history yet`}):(0,G.jsx)(cI,{delayDuration:150,children:(0,G.jsx)(`ol`,{className:X(`space-y-4`,r),children:e.map((e,t)=>{let n=(e.action??``).toLowerCase(),r=jU[n]??`outline`,a=typeof e.user_name==`string`&&e.user_name.trim()||`Unknown user`,o=MU(e.created_at),s=PU(e.created_at,i),c=typeof e.user_avatar==`string`?e.user_avatar:void 0;return(0,G.jsxs)(`li`,{className:`flex items-start gap-3`,children:[(0,G.jsxs)(XM,{className:`h-8 w-8 mt-0.5 shrink-0`,children:[c?(0,G.jsx)(ZM,{src:c,alt:a}):null,(0,G.jsx)(QM,{className:`text-[10px] font-medium`,children:FU(e.user_name)})]}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-1`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:a}),e.action&&(0,G.jsx)(eN,{variant:r,className:`text-[10px] uppercase tracking-wide`,children:e.action}),o&&(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground cursor-help`,"aria-label":o,children:s||o})}),(0,G.jsx)(dI,{children:o})]})]}),e.summary&&(0,G.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:e.summary}),e.changes&&e.changes.length>0&&(n===`create`?(0,G.jsxs)(`details`,{className:`mt-1 group`,children:[(0,G.jsxs)(`summary`,{className:`cursor-pointer list-none text-xs text-muted-foreground hover:text-foreground inline-flex items-center gap-1 select-none`,children:[(0,G.jsx)(`span`,{className:`transition-transform group-open:rotate-90`,children:`▸`}),(0,G.jsx)(`span`,{children:e.changes.length===1?`1 field populated`:`${e.changes.length} fields populated`})]}),(0,G.jsx)(`ul`,{className:`mt-1.5 space-y-0.5 text-xs text-muted-foreground pl-4`,children:e.changes.map(e=>(0,G.jsxs)(`li`,{className:`leading-relaxed`,children:[(0,G.jsx)(`span`,{className:`font-medium text-foreground`,children:e.label||e.field}),`: `,(0,G.jsx)(`span`,{className:`text-foreground`,children:IU(e.to)})]},e.field))})]}):(0,G.jsx)(`ul`,{className:`mt-1.5 space-y-0.5 text-xs text-muted-foreground`,children:e.changes.map(e=>(0,G.jsxs)(`li`,{className:`leading-relaxed`,children:[(0,G.jsx)(`span`,{className:`font-medium text-foreground`,children:e.label||e.field}),`: `,(0,G.jsx)(`span`,{className:`line-through opacity-70`,children:IU(e.from)}),` → `,(0,G.jsx)(`span`,{className:`text-foreground`,children:IU(e.to)})]},e.field))}))]})]},e.id??t)})})})}var RU={createdAt:`created_at`,createdBy:`created_by`,updatedAt:`updated_at`,updatedBy:`updated_by`};function zU(e){if(!e)return null;if(e instanceof Date)return isNaN(e.getTime())?null:e;if(typeof e==`string`||typeof e==`number`){let t=new Date(e);return isNaN(t.getTime())?null:t}return null}function BU(e,t){let n=Date.now()-e.getTime(),r=Math.max(0,Math.floor(n/1e3));if(r<60)return t(`detail.justNow`);let i=Math.floor(r/60);if(i<60)return t(`detail.minutesAgo`,{count:i});let a=Math.floor(i/60);return a<24?t(`detail.hoursAgo`,{count:a}):t(`detail.daysAgo`,{count:Math.floor(a/24)})}function VU(e){try{return new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(e)}catch{return e.toISOString()}}var HU=({value:e,objectSchema:t,fieldName:n})=>{if(e==null||e===``)return null;let r=t?.fields?.[n],i=r?.reference_to||r?.reference,a={name:n,type:r?.type||(i?`lookup`:`text`),...i&&{reference_to:i},...r?.reference_field&&{reference_field:r.reference_field}},o=tU(a)||a.type;if(o){let t=nU(o);if(t)return(0,G.jsx)(`span`,{className:`inline-flex items-center [&_a]:text-inherit [&_a]:hover:underline`,children:(0,G.jsx)(t,{value:e,field:a})})}return(0,G.jsx)(`span`,{children:String(e)})},UU=({label:e,user:t,date:n,objectSchema:r,userField:i,t:a})=>{if(!t&&!n)return null;let o=n?(0,G.jsx)(cI,{delayDuration:200,children:(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsx)(`time`,{dateTime:n.toISOString(),className:`cursor-default underline decoration-dotted decoration-muted-foreground/40 underline-offset-2`,children:BU(n,a)})}),(0,G.jsx)(dI,{side:`top`,children:VU(n)})]})}):null;return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-muted-foreground/70`,children:e}),t?(0,G.jsx)(HU,{value:t,objectSchema:r,fieldName:i}):null,t&&o?(0,G.jsx)(`span`,{className:`text-muted-foreground/40`,children:`·`}):null,o]})},WU=({data:e,objectSchema:t,objectName:n,className:r})=>{let{t:i}=hU();if(!e)return null;let a=zU(e[RU.createdAt]),o=zU(e[RU.updatedAt]),s=e[RU.createdBy],c=e[RU.updatedBy],l=!!(a||s),u=a&&o&&Math.abs(o.getTime()-a.getTime())<2e3,d=!!(o||c)&&!(u&&(s!=null&&c!=null&&String(s)===String(c)||!c));return!l&&!d?null:(0,G.jsxs)(`div`,{className:X(`mt-6 pt-3 border-t border-border/40`,`flex flex-wrap items-center gap-x-4 gap-y-1`,`text-xs text-muted-foreground`,r),"data-testid":`record-meta-footer`,children:[l&&(0,G.jsx)(UU,{label:i(`detail.createdBy`),user:s,date:a,objectSchema:t,userField:RU.createdBy,t:i}),d&&(0,G.jsx)(UU,{label:i(`detail.updatedBy`),user:c,date:o,objectSchema:t,userField:RU.updatedBy,t:i})]})},GU=5;function KU(e,t,n,r){if(e&&typeof e==`object`){if(t.primaryField){let n=e[t.primaryField];if(n!=null&&n!==``)return String(n)}let r=n?.titleFormat,i=typeof r==`string`?r:r&&typeof r==`object`&&typeof r.source==`string`?r.source:void 0;if(i){let t=`[-\\u2013\\u2014|/·,:]`,n=!1,r=i.replace(/\{([^{}]+)\}/g,(t,r)=>{let i=String(r).trim().split(`.`),a=e;for(let e of i){if(a==null)break;a=a[e]}if(a&&typeof a==`object`){let e=a,t=e.name??e.full_name??e.display_name??e.label??e.title??e.subject??null;(t==null||typeof t==`string`&&!t.trim())&&(t=[e.salutation,e.first_name,e.last_name].filter(e=>typeof e==`string`&&e.trim()).map(e=>e.trim()).join(` `)||(typeof e.email==`string`&&e.email.trim()?e.email.trim():null)),a=t}return a!=null&&a!==``?(n=!0,String(a)):`\0`});if(n){let e=r.replace(RegExp(`\\s*${t}\\s*`,`g`),``).replace(RegExp(`\\s*${t}\\s*`,`g`),``).replace(RegExp(`\0`,`g`),``).replace(/\s+/g,` `).trim();if(e)return e}}}if(t.title)return t.title;if(e&&typeof e==`object`)for(let t of[`name`,`full_name`,`fullName`,`title`,`subject`,`label`,`display_name`,`displayName`]){let n=e[t];if(typeof n==`string`&&n.trim())return n.trim();if(n!=null&&n!==``)return String(n)}return r}var qU=({schema:e,dataSource:t,className:n,onEdit:r,onDelete:i,onBack:a,inlineEdit:o=!1,onFieldSave:s,discussionSlot:c,rightRail:l,objectLabel:u,onDataLoaded:d,isFavorite:f,onToggleFavorite:p})=>{let[m,h]=W.useState(e.data),[g,_]=W.useState(!e.data&&!!(e.api&&e.resourceId||t&&e.objectName&&e.resourceId)),[v,y]=W.useState(!1),b=f??v,[x,S]=W.useState(!1),[C,w]=W.useState({}),[T,E]=W.useState(!1),[ee,D]=W.useState(null),[O,k]=W.useState(null),[A,te]=W.useState(!1),[ne,re]=W.useState(0),[ie,j]=W.useState(!1),{t:M}=hU(),{fieldOptionLabel:ae}=bu(),N=oI(),oe=sU(),P=W.useMemo(()=>{if(!oe?.isLoaded||!e.objectName)return e;let t=t=>oe.checkField(e.objectName,t,`read`),n=e=>e&&e.filter(e=>{let n=typeof e==`string`?e:e?.name;return!n||t(n)});return{...e,fields:n(e.fields),sections:e.sections?.map(e=>({...e,fields:n(e.fields)})),summaryFields:n(e.summaryFields)}},[e,oe]);W.useEffect(()=>{m&&d&&d(m)},[m,d]);let se=W.useMemo(()=>{if(P.summaryFields&&P.summaryFields.length>0)return[];let e=[...P.sections?.flatMap(e=>e.fields)||[],...P.fields||[]],t={};for(let n of e)t[n.name]||(t[n.name]=n);if(O?.fields)for(let[e,n]of Object.entries(O.fields))t[e]={...t[e]||{},...n,name:e};let n=e=>m?.[e]!==void 0&&m?.[e]!==null&&m?.[e]!==``,r=[],i=[`status`,`stage`,`state`,`phase`].find(e=>t[e]&&n(e))||Object.keys(t).find(e=>t[e]?.type===`select`&&n(e));i&&r.push(i);let a=Object.keys(t).find(e=>(t[e]?.type===`currency`||/amount|revenue|value|total|price/i.test(e))&&n(e));a&&!r.includes(a)&&r.push(a);let o=Object.keys(t).find(e=>(t[e]?.type===`date`||t[e]?.type===`datetime`)&&/close|due|start|end|expected/i.test(e)&&n(e));return o&&!r.includes(o)&&r.push(o),r},[P.summaryFields,P.sections,P.fields,O,m]),F=P.summaryFields&&P.summaryFields.length>0?P.summaryFields:se,ce=W.useCallback(()=>{P.resourceId&&navigator.clipboard.writeText(String(P.resourceId)).then(()=>{te(!0),setTimeout(()=>te(!1),1500)})},[P.resourceId]);W.useEffect(()=>{let e=!0;if(P.data)return h(P.data),_(!1),t?.getObjectSchema&&P.objectName&&t.getObjectSchema(P.objectName).then(t=>{e&&k(t)}).catch(()=>{}),()=>{e=!1};if(t&&P.objectName&&P.resourceId){_(!0),k(null),h(null);let n=P.objectName,r=P.resourceId,i=`${n}-`,a=[...P.sections?.flatMap(e=>e.fields)||[],...P.fields||[]];(t.getObjectSchema?t.getObjectSchema(n).catch(()=>null):Promise.resolve(null)).then(o=>{if(!e)return;k(o);let s=Wc(o?.fields,a),c=s.length>0?{$expand:s}:void 0,l=c?t.findOne(n,r,c):t.findOne(n,r),u=()=>{let a=String(r),o=a.startsWith(i)?a.slice(i.length):`${i}${a}`;return(c?t.findOne(n,o,c):t.findOne(n,o)).then(t=>{e&&(h(t),_(!1))}).catch(()=>{e&&(h(null),_(!1))})};return l.catch(()=>null).then(t=>{if(e){if(t){h(t),_(!1);return}return u()}})}).catch(t=>{e&&(console.error(`Failed to fetch detail data:`,t),_(!1))})}else P.api&&P.resourceId&&(_(!0),fetch(`${P.api}/${P.resourceId}`).then(e=>e.json()).then(t=>{e&&h(t?.data||t)}).catch(e=>{console.error(`Failed to fetch detail data:`,e)}).finally(()=>{e&&_(!1)}));return()=>{e=!1}},[P.api,P.resourceId,P.objectName,t,P.sections,P.fields,ne]);let le=W.useCallback(()=>{if(a)a();else if(P.onNavigate){let e=P.backUrl||(P.objectName?`/${P.objectName}`:`/`);P.onNavigate(e,{replace:!0})}else P.backUrl?window.location.href=P.backUrl:window.history.back()},[a,P]),ue=W.useCallback(()=>{r?r():P.onNavigate&&P.editUrl?P.onNavigate(P.editUrl):P.onNavigate&&P.objectName&&P.resourceId?P.onNavigate(`/${P.objectName}/${P.resourceId}/edit`):P.editUrl&&(window.location.href=P.editUrl)},[r,P]),de=W.useCallback(async()=>{if(!t?.cancelPendingApproval||!P.objectName||!P.resourceId){D(M(`detail.cancelApprovalUnavailable`));return}j(!0),D(null);try{if(await t.cancelPendingApproval(String(P.objectName),String(P.resourceId)),t.findOne)try{let e=await t.findOne(String(P.objectName),String(P.resourceId));e&&h(e)}catch{}re(e=>e+1);try{window.dispatchEvent(new CustomEvent(`objectui:record-changed`,{detail:{objectName:String(P.objectName),recordId:String(P.resourceId),reason:`approval-recalled`}}))}catch{}}catch(e){let t=(e?.message||e?.error||String(e??`Cancel failed`)).replace(/^\[[^\]]+\]\s*/,``).replace(/^[A-Z][A-Z0-9_]+:\s*/,``);D(`${M(`detail.cancelApprovalFailed`)}: ${t}`)}finally{j(!1)}},[t,P.objectName,P.resourceId,M]),fe=W.useCallback(()=>{let e=P.deleteConfirmation||M(`detail.deleteConfirmation`);window.confirm(e)&&(i?.(),P.onNavigate&&P.objectName&&P.onNavigate(`/${P.objectName}`,{replace:!0}))},[i,P]),pe=W.useCallback(()=>{navigator.share&&P.objectName&&P.resourceId?navigator.share({title:P.title||M(`detail.details`),text:`${P.objectName} #${P.resourceId}`,url:window.location.href}).catch(e=>console.log(`Share failed:`,e)):navigator.clipboard.writeText(window.location.href).then(()=>{console.log(`Link copied to clipboard`)})},[P]),me=W.useCallback(()=>{let e=!b;p&&p(e),f===void 0&&y(e)},[b,f,p]),I=W.useCallback(async()=>{if(x){let e=Object.entries(C);if(e.length>0){let t=m,n={...m,...C};h(n),D(null),E(!0);try{if(s)for(let[t,r]of e)await s(t,r,n);w({}),S(!1)}catch(e){h(t),D((e?.message||e?.error||String(e??`Save failed`)).replace(/^\[[^\]]+\]\s*/,``).replace(/^[A-Z][A-Z0-9_]+:\s*/,``))}finally{E(!1)}return}w({})}S(!x),D(null)},[x,C,m,s]),he=W.useCallback(()=>{w({}),S(!1),D(null)},[]),L=W.useCallback((e,t)=>{w(n=>({...n,[e]:t}))},[]);W.useEffect(()=>{if(!P.recordNavigation)return;let e=P.recordNavigation,t=t=>{let n=t.target?.tagName;n===`INPUT`||n===`TEXTAREA`||t.target?.isContentEditable||(t.key===`ArrowLeft`&&e.currentIndex>0?(t.preventDefault(),e.onNavigate(e.recordIds[e.currentIndex-1])):t.key===`ArrowRight`&&e.currentIndex<e.recordIds.length-1&&(t.preventDefault(),e.onNavigate(e.recordIds[e.currentIndex+1])))};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[P.recordNavigation]),W.useEffect(()=>{if(!o||P.showHeader!==!1)return;let e=`objectui:record:inline-edit-toggle`,t=e=>{let t=e.detail;t?.recordId&&P.recordId&&t.recordId!==P.recordId||t?.objectName&&P.objectName&&t.objectName!==P.objectName||I()};return window.addEventListener(e,t),()=>window.removeEventListener(e,t)},[o,P.showHeader,P.recordId,P.objectName,I]);let ge=W.useMemo(()=>P.related??[],[P.related]),_e=W.useMemo(()=>{let e=[];return e.push({name:`sys_share`,label:M(`detail.share`),icon:`share-2`,type:`script`,onClick:pe}),P.showEdit&&e.push({name:`sys_edit_mobile`,label:M(`detail.edit`),icon:`edit`,type:`script`,className:`sm:hidden`,onClick:ue}),o&&e.push({name:`sys_toggle_inline_edit_mobile`,label:M(x?`detail.save`:`detail.editInline`),icon:`edit`,type:`script`,className:`sm:hidden`,onClick:I}),P.showDelete&&e.push({name:`sys_delete`,label:M(`detail.delete`),icon:`trash-2`,type:`script`,variant:`destructive`,tags:[`separator-before`],onClick:fe}),e},[M,P.showEdit,P.showDelete,o,x,pe,ue,I,fe]),ve=W.useMemo(()=>{let e=P.actions??[];if(_e.length===0)return e;let t=!1,n=e.map(e=>{let n=e;if(n&&typeof n==`object`&&n.type===`action:bar`&&(!n.location||n.location===`record_header`)){t=!0;let e=Array.isArray(n.systemActions)?n.systemActions:[];return{...n,systemActions:[...e,..._e]}}return e});return t||n.push({type:`action:bar`,location:`record_header`,systemActions:_e}),n},[P.actions,_e]);return g||P.loading?(0,G.jsxs)(`div`,{className:X(`space-y-4`,n),children:[(0,G.jsx)(sI,{className:`h-10 w-full`}),(0,G.jsx)(sI,{className:`h-64 w-full`}),(0,G.jsx)(sI,{className:`h-48 w-full`})]}):!m&&!P.data?(0,G.jsxs)(`div`,{className:X(`flex flex-col items-center justify-center py-16 text-center`,n),children:[(0,G.jsx)(`p`,{className:`text-lg font-semibold`,children:M(`detail.recordNotFound`)}),(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:M(`detail.recordNotFoundDescription`)}),(P.showBack??!0)&&(0,G.jsxs)(Z,{variant:`outline`,size:`sm`,onClick:le,className:`mt-4 gap-2`,children:[(0,G.jsx)(Nt,{className:`h-4 w-4`}),M(`detail.goBack`)]})]}):(0,G.jsx)(cI,{children:(0,G.jsxs)(`div`,{className:X(`space-y-6`,n),children:[P.showHeader!==!1&&(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-start justify-between gap-3 sm:gap-4 pb-4 border-b`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-2 sm:gap-3 flex-1 min-w-0`,children:[(P.showBack??!0)&&(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,onClick:le,className:`shrink-0 mt-1`,children:(0,G.jsx)(Nt,{className:`h-4 w-4`})})}),(0,G.jsx)(dI,{children:M(`detail.back`)})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,G.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold truncate`,children:KU(m,P,O,M(`detail.details`))}),F.map(e=>{let t=m?.[e];if(t==null||t===``)return null;let n=(P.sections||[]).flatMap(e=>e.fields).concat(P.fields||[]).find(t=>t.name===e),r=O?.fields?.[e],i=n?.type||r?.type,a=String(t),o=null;try{if(i===`currency`){let e=Number(t);if(!Number.isNaN(e)){let t=n?.currency||r?.currency;a=t?new Intl.NumberFormat(void 0,{style:`currency`,currency:t,maximumFractionDigits:0}).format(e):new Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e)}}else if(i===`date`||i===`datetime`){let e=new Date(t);Number.isNaN(e.getTime())||(a=i===`datetime`?e.toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`}):e.toLocaleDateString(void 0,{dateStyle:`medium`}))}else if(i===`percent`){let e=Number(t);if(!Number.isNaN(e)){a=`${e}%`;let t=e<=1?e*100:e;o=Math.max(0,Math.min(100,t))}}else if(i===`select`||i===`status`||i===`multiselect`){let i=n?.options||r?.options,o=String(t);if(Array.isArray(i)){let e=i.find(e=>String(e?.value??e)===String(t));e?.label&&(o=e.label)}else if(i&&typeof i==`object`){let e=i[String(t)];e?.label&&(o=e.label)}a=P.objectName?ae(P.objectName,e,String(t),o):o}}catch{}return o===null?(0,G.jsx)(eN,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent hover:bg-primary/15`,"aria-label":`${e}: ${a}`,children:a},e):(0,G.jsxs)(eN,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent hover:bg-primary/15 gap-1.5 pl-2 pr-2`,"aria-label":`${e}: ${a}`,children:[(0,G.jsx)(`span`,{className:`relative inline-block h-1.5 w-12 rounded-full bg-primary/20 overflow-hidden`,"aria-hidden":!0,children:(0,G.jsx)(`span`,{className:`absolute inset-y-0 left-0 rounded-full bg-primary`,style:{width:`${o}%`}})}),a]},e)}),(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0`,onClick:me,"aria-label":M(b?`detail.removeFromFavorites`:`detail.addToFavorites`),children:b?(0,G.jsx)(mt,{className:`h-4 w-4 fill-yellow-400 text-yellow-400`}):(0,G.jsx)(mt,{className:`h-4 w-4 text-muted-foreground`})})}),(0,G.jsx)(dI,{children:M(b?`detail.removeFromFavorites`:`detail.addToFavorites`)})]})]}),P.objectName&&(0,G.jsxs)(`p`,{className:`text-sm text-muted-foreground mt-1 flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:u||P.objectName}),P.resourceId&&(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-5 w-5 shrink-0 text-muted-foreground/60 hover:text-foreground`,onClick:ce,"aria-label":M(`detail.copyRecordId`,{defaultValue:`Copy record ID`}),children:A?(0,G.jsx)(Ct,{className:`h-3 w-3 text-green-600`}):(0,G.jsx)(yt,{className:`h-3 w-3`})})}),(0,G.jsx)(dI,{children:A?M(`detail.copied`,{defaultValue:`Copied`}):M(`detail.copyRecordId`,{defaultValue:`Copy record ID`})})]})]})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 shrink-0 w-full sm:w-auto`,children:[P.recordNavigation&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 mr-2`,children:[(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsx)(Z,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:P.recordNavigation.currentIndex<=0,onClick:()=>{let e=P.recordNavigation;e.currentIndex>0&&e.onNavigate(e.recordIds[e.currentIndex-1])},children:(0,G.jsx)(Tt,{className:`h-4 w-4`})})}),(0,G.jsx)(dI,{children:M(`detail.previousRecord`)})]}),(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap px-1`,children:M(`detail.recordOf`,{current:P.recordNavigation.currentIndex+1,total:P.recordNavigation.recordIds.length})}),(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsx)(Z,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:P.recordNavigation.currentIndex>=P.recordNavigation.recordIds.length-1,onClick:()=>{let e=P.recordNavigation;e.currentIndex<e.recordIds.length-1&&e.onNavigate(e.recordIds[e.currentIndex+1])},children:(0,G.jsx)(Xe,{className:`h-4 w-4`})})}),(0,G.jsx)(dI,{children:M(`detail.nextRecord`)})]})]}),o&&(0,G.jsxs)(G.Fragment,{children:[x&&(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsxs)(Z,{variant:`ghost`,size:`sm`,onClick:he,className:`gap-2 hidden sm:inline-flex`,children:[(0,G.jsx)(At,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:M(`detail.cancel`)})]})}),(0,G.jsx)(dI,{children:M(`detail.cancelEdit`)})]}),(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsx)(Z,{variant:x?`default`:`outline`,size:`sm`,onClick:I,className:`gap-2 hidden sm:inline-flex`,children:x?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ct,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:M(`detail.save`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ye,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:M(`detail.editInline`)})]})})}),(0,G.jsx)(dI,{children:M(x?`detail.saveChanges`:`detail.editFieldsInline`)})]})]}),P.showEdit&&(0,G.jsxs)(lI,{children:[(0,G.jsx)(uI,{asChild:!0,children:(0,G.jsxs)(Z,{variant:`default`,onClick:ue,className:`gap-2 hidden sm:inline-flex`,children:[(0,G.jsx)(Ye,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:M(`detail.edit`)})]})}),(0,G.jsx)(dI,{children:M(`detail.editRecord`)})]}),ve.map((e,t)=>(0,G.jsx)(zl,{schema:e,data:m},`header-action-${t}`))]})]}),P.header&&(0,G.jsx)(`div`,{children:(0,G.jsx)(zl,{schema:P.header,data:m})}),P.highlightFields&&P.highlightFields.length>0&&(0,G.jsx)(SU,{fields:P.highlightFields,data:m,objectName:P.objectName,objectSchema:O}),o&&P.showHeader===!1&&(()=>{let e=m?.approval_status,n=e===`pending`||e===`in_approval`;return!x&&!T&&!ee&&!n?null:(0,G.jsxs)(`div`,{className:`flex flex-col items-end gap-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[n&&!x&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{role:`status`,className:`inline-flex items-center gap-1 rounded-md border border-amber-300 bg-amber-50 px-2 py-1 text-xs text-amber-800`,title:M(`detail.lockedTooltip`),children:[(0,G.jsx)(qt,{className:`h-3 w-3`}),(0,G.jsx)(`span`,{children:M(`detail.lockedByApproval`)})]}),t?.cancelPendingApproval&&(0,G.jsxs)(Z,{variant:`outline`,size:`sm`,onClick:de,disabled:ie,className:`gap-2 border-amber-300 text-amber-800 hover:bg-amber-50`,title:M(`detail.cancelApprovalTooltip`),children:[(0,G.jsx)(At,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:M(ie?`detail.cancelApprovalInFlight`:`detail.cancelApproval`)})]})]}),x&&(0,G.jsxs)(Z,{variant:`ghost`,size:`sm`,onClick:he,className:`gap-2`,disabled:T,children:[(0,G.jsx)(At,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:M(`detail.cancel`)})]}),(0,G.jsxs)(Z,{variant:x?`default`:`outline`,size:`sm`,onClick:I,className:`gap-2`,disabled:T||n&&!x,title:n&&!x?M(`detail.lockedTooltip`):void 0,children:[(0,G.jsx)(x?Ct:Ye,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:M(T?`detail.saving`:x?`detail.save`:`detail.editFieldsInline`)})]})]}),ee&&(0,G.jsx)(`div`,{role:`alert`,className:`text-xs text-destructive bg-destructive/10 border border-destructive/20 rounded-md px-2 py-1 max-w-md text-right`,children:ee})]})})(),P.autoTabs&&!P.tabs?.length?(()=>{let e=ge.length>0,n=!!P.activities&&P.activities.length>0,r=!!c,i=!!P.history,a=(0,G.jsxs)(`div`,{className:`space-y-3 sm:space-y-4`,children:[P.sectionGroups&&P.sectionGroups.length>0&&P.sectionGroups.map((e,t)=>(0,G.jsx)(xU,{group:e,data:{...m,...C},objectSchema:O,objectName:P.objectName,isEditing:x,onFieldChange:L},t)),P.sections&&P.sections.length>0&&P.sections.map((e,t)=>(0,G.jsx)(_U,{section:e,data:{...m,...C},objectSchema:O,objectName:P.objectName,isEditing:x,onFieldChange:L},t)),P.fields&&P.fields.length>0&&!P.sections?.length&&(0,G.jsx)(_U,{section:{fields:P.fields,columns:P.columns},data:{...m,...C},objectSchema:O,objectName:P.objectName,isEditing:x,onFieldChange:L}),P.comments&&(0,G.jsx)(wU,{comments:P.comments,onAddComment:P.onAddComment})]});return!e&&!n&&!r&&!i?(0,G.jsx)(`div`,{className:`mt-2`,children:a}):(0,G.jsxs)(tL,{defaultValue:`details`,className:`w-full`,children:[(0,G.jsxs)(nL,{className:`w-full justify-start border-b rounded-none bg-transparent p-0`,children:[(0,G.jsx)(rL,{value:`details`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:M(`detail.details`)}),e&&(0,G.jsx)(rL,{value:`related`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[M(`detail.related`),(0,G.jsx)(eN,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent`,children:ge.length})]})}),n&&(0,G.jsx)(rL,{value:`activity`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[M(`detail.activity`),(0,G.jsx)(eN,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent`,children:P.activities.length})]})}),r&&(0,G.jsx)(rL,{value:`discussion`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:M(`detail.discussion`,{defaultValue:`Discussion`})}),i&&(0,G.jsx)(rL,{value:`history`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[M(`detail.history`,{defaultValue:`History`}),!P.history.loading&&P.history.entries.length>0&&(0,G.jsx)(eN,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent`,children:P.history.entries.length})]})})]}),(0,G.jsx)(iL,{value:`details`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:a}),e&&(0,G.jsx)(iL,{value:`related`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:(0,G.jsx)(`div`,{className:`space-y-3`,children:ge.map((e,n)=>(0,G.jsx)(bU,{title:e.title,type:e.type,api:e.api,data:e.data,columns:e.columns,dataSource:t,objectName:e.api,referenceField:e.referenceField,icon:e.icon,onNew:e.onNew,onViewAll:e.onViewAll,onRowClick:e.onRowClick,onRowEdit:e.onRowEdit,onRowDelete:e.onRowDelete,collapsible:!0,defaultCollapsed:N&&n>0,pageSize:GU},n))})}),n&&(0,G.jsx)(iL,{value:`activity`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:(0,G.jsx)(AU,{activities:P.activities})}),r&&(0,G.jsx)(iL,{value:`discussion`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:c}),i&&(0,G.jsx)(iL,{value:`history`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:(0,G.jsx)(LU,{entries:P.history.entries,loading:P.history.loading,emptyText:P.history.emptyText??M(`detail.historyEmpty`,{defaultValue:`No history yet`})})})]})})():(0,G.jsxs)(G.Fragment,{children:[P.sectionGroups&&P.sectionGroups.length>0&&(0,G.jsx)(`div`,{className:`space-y-3 sm:space-y-4`,children:P.sectionGroups.map((e,t)=>(0,G.jsx)(xU,{group:e,data:{...m,...C},objectSchema:O,objectName:P.objectName,isEditing:x,onFieldChange:L},t))}),P.sections&&P.sections.length>0&&(0,G.jsx)(`div`,{className:`space-y-3 sm:space-y-4`,children:P.sections.map((e,t)=>(0,G.jsx)(_U,{section:e,data:{...m,...C},objectSchema:O,objectName:P.objectName,isEditing:x,onFieldChange:L},t))}),P.fields&&P.fields.length>0&&!P.sections?.length&&(0,G.jsx)(_U,{section:{fields:P.fields,columns:P.columns},data:{...m,...C},objectSchema:O,objectName:P.objectName,isEditing:x,onFieldChange:L}),P.tabs&&P.tabs.length>0&&(0,G.jsx)(vU,{tabs:P.tabs,data:m}),ge.length>0&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,children:M(`detail.related`)}),ge.map((e,n)=>(0,G.jsx)(bU,{title:e.title,type:e.type,api:e.api,data:e.data,columns:e.columns,dataSource:t,objectName:e.api,referenceField:e.referenceField,icon:e.icon,onNew:e.onNew,onViewAll:e.onViewAll,onRowClick:e.onRowClick,onRowEdit:e.onRowEdit,onRowDelete:e.onRowDelete,collapsible:!0,defaultCollapsed:N&&n>0,pageSize:GU},n))]}),P.comments&&(0,G.jsx)(wU,{comments:P.comments,onAddComment:P.onAddComment}),P.activities&&P.activities.length>0&&(0,G.jsx)(AU,{activities:P.activities})]}),(0,G.jsx)(WU,{data:{...m,...C},objectSchema:O,objectName:P.objectName}),P.footer&&(0,G.jsx)(`div`,{children:(0,G.jsx)(zl,{schema:P.footer,data:m})})]})})},JU=e=>{if(e==null)return`—`;if(typeof e==`string`)return e.length>0?e:`""`;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}},YU=e=>{if(typeof e!=`string`||e.length===0)return null;let t=/\d{4}-\d{2}-\d{2}[ T]/.test(e)?e.replace(` `,`T`):e,n=new Date(t);if(Number.isNaN(n.getTime()))return null;try{return n.toLocaleString()}catch{return n.toISOString()}},XU=({open:e,conflict:t,onReload:n,onOverwrite:r,onCancel:i,busy:a=!1})=>{let{t:o}=hU(),s=t?.label||t?.field||``,c=t?JU(t.pendingValue):``,l=t?JU(t.currentValue):``,u=t?.currentRecord??{},d=(()=>{let e=[u.updated_by_name,u.updated_by_label];for(let t of e)if(typeof t==`string`&&t.length>0)return t;let t=u.updated_by;return typeof t!=`string`||t.length===0||t.length>=16&&!/\s/.test(t)&&/^[A-Za-z0-9_-]+$/.test(t)?null:t})(),f=YU(u.updated_at??t?.currentVersion),[p,m]=o(`detail.concurrentUpdateDescription`,{field:`{{field}}`}).split(`{{field}}`);return(0,G.jsx)(PM,{open:e,onOpenChange:e=>{!e&&!a&&i()},children:(0,G.jsxs)(RM,{className:`max-w-lg`,children:[(0,G.jsx)(zM,{children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(`span`,{className:`inline-flex h-9 w-9 flex-none items-center justify-center rounded-full bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-300`,"aria-hidden":`true`,children:(0,G.jsx)(Bt,{className:`h-5 w-5`})}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(VM,{children:o(`detail.concurrentUpdateTitle`)}),(0,G.jsxs)(HM,{className:`mt-1`,children:[p,(0,G.jsx)(`strong`,{className:`font-semibold`,children:s}),m]})]})]})}),(0,G.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[(0,G.jsxs)(`div`,{className:`rounded-md border border-amber-200/70 bg-amber-50/60 p-3 dark:border-amber-500/30 dark:bg-amber-500/10`,children:[(0,G.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-amber-800 dark:text-amber-300`,children:o(`detail.concurrentUpdateYourEdit`)}),(0,G.jsx)(`div`,{className:`mt-1 break-all font-mono text-foreground`,children:c})]}),(0,G.jsxs)(`div`,{className:`rounded-md border border-sky-200/70 bg-sky-50/60 p-3 dark:border-sky-500/30 dark:bg-sky-500/10`,children:[(0,G.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2`,children:[(0,G.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-sky-800 dark:text-sky-300`,children:o(`detail.concurrentUpdateCurrentValue`)}),(d||f)&&(0,G.jsxs)(`div`,{className:`text-[11px] text-muted-foreground`,children:[d&&(0,G.jsx)(`span`,{children:o(`detail.concurrentUpdateUpdatedBy`,{name:d})}),d&&f&&(0,G.jsx)(`span`,{children:` · `}),f&&(0,G.jsx)(`span`,{children:o(`detail.concurrentUpdateUpdatedAt`,{when:f})})]})]}),(0,G.jsx)(`div`,{className:`mt-1 break-all font-mono text-foreground`,children:l})]})]}),(0,G.jsxs)(BM,{className:`gap-2 sm:gap-2`,children:[(0,G.jsx)(`button`,{type:`button`,disabled:a,onClick:i,className:X(NM({variant:`ghost`}),`mt-2 sm:mt-0`),children:o(`detail.concurrentUpdateCancel`)}),(0,G.jsx)(`button`,{type:`button`,disabled:a,onClick:r,className:X(NM({variant:`outline`}),`mt-2 sm:mt-0 text-destructive border-destructive/40 hover:bg-destructive/10 hover:text-destructive`),children:o(`detail.concurrentUpdateOverwrite`)}),(0,G.jsx)(`button`,{type:`button`,disabled:a,onClick:n,autoFocus:!0,className:X(NM({variant:`default`}),`mt-2 sm:mt-0`),children:o(`detail.concurrentUpdateReload`)})]})]})})};function ZU(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.code===`CONCURRENT_UPDATE`||t.name===`ConcurrentUpdateError`}var QU=e=>typeof e==`string`?e:e&&typeof e==`object`&&(e.field||e.name)||null,$U=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},eW=({schema:e={},className:t,...n})=>{let r=du(),{designer:i}=$U(n);if(!r)return(0,G.jsx)(`div`,{className:t,"data-record-details-placeholder":!0,...i,children:(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:details — bind a record to preview`})});let a=e.layout===`inline`||e.layout===`compact`?`horizontal`:`vertical`,o=r.objectName||``,s=sU(),{readableFields:c}=cU(o),{sectionLabel:l}=bu(),u=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[];if(u.length>0&&o&&!u.every(e=>s.can(o,e)))return(0,G.jsx)(`div`,{className:t,...i,role:`status`,"aria-live":`polite`,children:(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view details.`})});let d=e.enforceFieldSecurity===!0,f=Array.isArray(e.redactFields)?e.redactFields:[],p=e=>{if(!e||!d&&f.length===0)return e;let t=e.map(QU).filter(e=>!!e),n=new Set((d&&o?c(t):t).filter(e=>!f.includes(e)));return e.filter(e=>{let t=QU(e);return t?n.has(t):!0})},m=e=>typeof e==`string`?{name:e}:e&&typeof e==`object`&&!e.name&&e.field?{...e,name:e.field}:e,h=e=>Array.isArray(e)?e.map(m):e,g=au(),_=new Set((Array.isArray(e.hideFields)?e.hideFields:[]).map(e=>typeof e==`string`?e:QU(e)).filter(e=>!!e));for(let e of g)_.add(e);let v=r.objectSchema,y=r.data??{},b=[v?.primaryField,`name`,`full_name`,`title`,`subject`,`display_name`,`label`].filter(e=>typeof e==`string`&&e.length>0);for(let e of b)if(y[e]!==void 0&&y[e]!==null&&y[e]!==``){_.add(e);break}let x=e=>!e||_.size===0?e:e.filter(e=>{let t=QU(e);return t?!_.has(t):!0}),S=x(h(p(e.fields))),C=Array.isArray(e.sections)?e.sections.map(e=>{let t=e.title??e.label,n=e.name&&o?l(o,e.name,t??e.name):t;return{...e,title:n,showBorder:e.showBorder??!!n,hideEmpty:e.hideEmpty??!0,fields:x(h(p(e.fields)))}}):e.sections,w=e.inlineEdit??!0,[T,E]=W.useState(null),[ee,D]=W.useState(!1),O=W.useCallback(t=>{let n=[...Array.isArray(e.fields)?e.fields:[],...(Array.isArray(e.sections)?e.sections:[]).flatMap(e=>Array.isArray(e?.fields)?e.fields:[])];for(let e of n)if((typeof e==`string`?e:e?.name||e?.field)===t)return typeof e==`object`?e?.label:void 0},[e.fields,e.sections]),k=W.useCallback(async(e,t)=>{let n=r.dataSource,i=r.recordId,a=r.objectName;if(!n||!i||!a)return;let o=typeof r.data?.updated_at==`string`?r.data.updated_at:void 0,s=o?{ifMatch:o}:void 0;try{if(typeof n.update==`function`)await n.update(a,i,{[e]:t},s);else if(typeof n.updateOne==`function`)await n.updateOne(a,i,{[e]:t},s);else if(typeof n.patch==`function`)await n.patch(a,i,{[e]:t},s);else{console.warn(`[record:details] DataSource exposes no update/updateOne/patch method; cannot persist inline edit`);return}typeof r.refresh==`function`&&await r.refresh()}catch(n){if(ZU(n)){let r=n.currentRecord??null;throw E({field:e,label:O(e),pendingValue:t,currentValue:r?r[e]:void 0,currentVersion:n.currentVersion,currentRecord:r}),n}throw console.error(`[record:details] Inline-edit save failed`,n),n}},[r.dataSource,r.recordId,r.objectName,r.data,r.refresh,O]),A=W.useCallback(()=>{E(null),D(!1)},[]),te=W.useCallback(async()=>{D(!0);try{typeof r.refresh==`function`&&await r.refresh()}finally{A()}},[r.refresh,A]),ne=W.useCallback(async()=>{if(!T){A();return}let e=r.dataSource,t=r.recordId,n=r.objectName;if(!e||!t||!n){A();return}D(!0);try{let i=T.currentVersion?{ifMatch:T.currentVersion}:void 0;typeof e.update==`function`?await e.update(n,t,{[T.field]:T.pendingValue},i):typeof e.updateOne==`function`?await e.updateOne(n,t,{[T.field]:T.pendingValue},i):typeof e.patch==`function`&&await e.patch(n,t,{[T.field]:T.pendingValue},i),typeof r.refresh==`function`&&await r.refresh()}catch(e){console.error(`[record:details] Overwrite-on-conflict failed`,e)}finally{A()}},[T,r.dataSource,r.recordId,r.objectName,r.refresh,A]),re={type:`detail-view`,objectName:r.objectName,resourceId:r.recordId,data:r.data,layout:a,columns:e.columns,sections:C,fields:S,showBack:!1,showHeader:e.showHeader??!1,inlineEdit:w};return(0,G.jsxs)(`div`,{className:t,...i,children:[(0,G.jsx)(qU,{schema:re,dataSource:r.dataSource,inlineEdit:w,onFieldSave:k}),(0,G.jsx)(XU,{open:!!T,conflict:T,busy:ee,onCancel:A,onReload:te,onOverwrite:ne})]})},tW=e=>typeof e==`string`?e:e&&typeof e==`object`&&(e.field||e.name||e.key)||null,nW=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},rW=({schema:e={},className:t,...n})=>{let r=du(),{designer:i}=nW(n),a=bu(),o=e.objectName,s=o&&a.objectLabel?a.objectLabel({name:o,label:wH(o)}):o?wH(o):``,c=e.title||s||`Related`;if(!o)return(0,G.jsx)(`div`,{className:t,...i,children:(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:related_list — missing objectName`})});let l=sU(),{readableFields:u}=cU(o),d=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[];if(d.length>0&&!d.every(e=>l.can(o,e)))return(0,G.jsx)(`div`,{className:t,...i,role:`status`,"aria-live":`polite`,children:(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view related list.`})});let f=e.enforceFieldSecurity===!0,p=Array.isArray(e.redactFields)?e.redactFields:[],m=Array.isArray(e.columns)?e.columns:[],h=m;if(f||p.length>0){let e=m.map(tW).filter(e=>!!e),t=new Set((f?u(e):e).filter(e=>!p.includes(e)));h=m.filter(e=>{let n=tW(e);return n?t.has(n):!0})}return(0,G.jsx)(`div`,{className:t,...i,children:(0,G.jsx)(bU,{title:c,type:`table`,api:o,objectName:o,referenceField:e.relationshipField,parentId:r?.recordId,columns:h,pageSize:e.limit,dataSource:r?.dataSource})})},iW=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},aW=({schema:e={},className:t,...n})=>{let r=du(),{designer:i}=iW(n),a=r?.objectName||``,o=sU(),{readableFields:s}=cU(a),c=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[];if(c.length>0&&a&&!c.every(e=>o.can(a,e)))return(0,G.jsx)(`div`,{className:t,...i,role:`status`,"aria-live":`polite`,children:(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view highlights.`})});let l=(Array.isArray(e.fields)?e.fields:[]).map(e=>typeof e==`string`?{name:e}:{name:e?.name,label:e?.label,icon:e?.icon,type:e?.type}).filter(e=>typeof e.name==`string`&&e.name.length>0),u=e.enforceFieldSecurity===!0,d=Array.isArray(e.redactFields)?e.redactFields:[],f=u&&a?new Set(s(l.map(e=>e.name))):null,p=l.filter(e=>!(d.includes(e.name)||f&&!f.has(e.name)));return ou(W.useId(),p.map(e=>e.name)),(0,G.jsx)(`div`,{className:t,...i,children:(0,G.jsx)(SU,{fields:p,data:r?.data,objectName:r?.objectName,objectSchema:r?.objectSchema})})},oW=({change:e,className:t})=>{let n=e.fieldLabel??e.field.charAt(0).toUpperCase()+e.field.slice(1).replace(/_/g,` `),r=e.oldDisplayValue??(e.oldValue==null?`(empty)`:String(e.oldValue)),i=e.newDisplayValue??(e.newValue==null?`(empty)`:String(e.newValue));return(0,G.jsxs)(`div`,{className:X(`flex items-center gap-1.5 text-sm flex-wrap`,t),children:[(0,G.jsx)(`span`,{className:`font-medium text-foreground`,children:n}),(0,G.jsx)(`span`,{className:`text-muted-foreground line-through`,children:r}),(0,G.jsx)(on,{className:`h-3 w-3 text-muted-foreground shrink-0`}),(0,G.jsx)(`span`,{className:`text-foreground`,children:i})]})},sW=[`👍`,`❤️`,`🎉`,`😂`,`😮`,`😢`],cW=({reactions:e,onToggleReaction:t,emojiOptions:n=sW,className:r})=>{let[i,a]=W.useState(!1),o=W.useCallback(e=>{t?.(e),a(!1)},[t]);return(0,G.jsxs)(`div`,{className:X(`flex items-center gap-1 flex-wrap`,r),children:[e.map(e=>(0,G.jsxs)(`button`,{type:`button`,className:X(`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs border transition-colors`,e.reacted?`bg-primary/10 border-primary/30 text-primary`:`bg-muted border-border text-muted-foreground hover:bg-muted/80`),onClick:()=>o(e.emoji),disabled:!t,"aria-label":`${e.emoji} ${e.count} reaction${e.count===1?``:`s`}`,children:[(0,G.jsx)(`span`,{children:e.emoji}),(0,G.jsx)(`span`,{children:e.count})]},e.emoji)),t&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-6 w-6`,onClick:()=>a(!i),"aria-label":`Add reaction`,children:(0,G.jsx)(Qe,{className:`h-3.5 w-3.5`})}),i&&(0,G.jsx)(`div`,{className:`absolute bottom-full mb-1 left-0 bg-popover border rounded-md shadow-md z-50 p-1.5 flex gap-1`,role:`listbox`,"aria-label":`Emoji picker`,children:n.map(t=>(0,G.jsx)(`button`,{type:`button`,className:`hover:bg-accent rounded p-1 text-base transition-colors`,onClick:()=>o(t),role:`option`,"aria-selected":e.some(e=>e.emoji===t&&e.reacted),children:t},t))})]})]})};function lW(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<7?`${a}d ago`:t.toLocaleDateString()}catch{return e}}var uW=({parentItem:e,replies:t,onAddReply:n,showReplyInput:r=!0,className:i})=>{let{t:a}=hU(),[o,s]=W.useState(!1),[c,l]=W.useState(``),[u,d]=W.useState(!1),f=W.useCallback(async()=>{let t=c.trim();if(!(!t||!n)){d(!0);try{await n(e.id,t),l(``)}finally{d(!1)}}},[c,n,e.id]),p=W.useCallback(e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),f())},[f]);return t.length===0&&!r?null:(0,G.jsxs)(`div`,{className:X(`ml-10 mt-1`,i),children:[t.length>0&&(0,G.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors mb-1`,onClick:()=>s(!o),"aria-expanded":o,children:[(0,G.jsx)(o?nt:Xe,{className:`h-3 w-3`}),(0,G.jsx)(St,{className:`h-3 w-3`}),(0,G.jsx)(`span`,{children:t.length===1?a(`detail.replyCount`,{count:t.length}):a(`detail.replyCountPlural`,{count:t.length})})]}),o&&(0,G.jsx)(`div`,{className:`space-y-2 border-l-2 border-border pl-3`,children:t.map(e=>(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`div`,{className:`shrink-0`,children:e.actorAvatarUrl?(0,G.jsx)(`img`,{src:e.actorAvatarUrl,alt:e.actor,className:`h-6 w-6 rounded-full object-cover`}):(0,G.jsx)(`div`,{className:`h-6 w-6 rounded-full bg-muted flex items-center justify-center text-[10px] font-medium text-muted-foreground`,children:e.actor.charAt(0).toUpperCase()})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs font-medium`,children:e.actor}),(0,G.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:lW(e.createdAt)})]}),(0,G.jsx)(`p`,{className:`text-xs whitespace-pre-wrap break-words`,children:e.body})]})]},e.id))}),r&&n&&(0,G.jsxs)(`div`,{className:`flex gap-1.5 mt-1.5`,children:[(0,G.jsx)(`input`,{className:`flex-1 rounded-md border border-input bg-background px-2 py-1 text-xs placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,placeholder:a(`detail.replyPlaceholder`),value:c,onChange:e=>l(e.target.value),onKeyDown:p,disabled:u}),(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0`,onClick:f,disabled:!c.trim()||u,"aria-label":`Send reply`,children:(0,G.jsx)(et,{className:`h-3 w-3`})})]})]})},dW=({subscription:e,onToggle:t,className:n})=>{let{t:r}=hU(),[i,a]=W.useState(!1),o=W.useCallback(async()=>{if(t){a(!0);try{await t(!e.subscribed)}finally{a(!1)}}},[t,e.subscribed]);return(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:X(`h-8 w-8`,n),onClick:o,disabled:i||!t,"aria-label":e.subscribed?r(`detail.unsubscribeAriaLabel`):r(`detail.subscribeAriaLabel`),title:e.subscribed?r(`detail.subscribedTooltip`):r(`detail.unsubscribedTooltip`),children:e.subscribed?(0,G.jsx)(gn,{className:`h-4 w-4 text-primary`}):(0,G.jsx)(rn,{className:`h-4 w-4 text-muted-foreground`})})};function fW(e){let t=e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/```([\s\S]*?)```/g,`<pre class="bg-muted rounded p-2 text-xs font-mono my-1 overflow-x-auto">$1</pre>`).replace(/`([^`]+)`/g,`<code class="bg-muted rounded px-1 py-0.5 text-xs font-mono">$1</code>`).replace(/\*\*(.+?)\*\*/g,`<strong>$1</strong>`).replace(/\*(.+?)\*/g,`<em>$1</em>`).replace(/@(\w+)/g,`<span class="text-primary font-medium">@$1</span>`).replace(/^- (.+)$/gm,`<li class="ml-4 list-disc">$1</li>`).replace(/\n/g,`<br/>`);return t=t.replace(/(<li[^>]*>.*?<\/li>(?:<br\/>)?)+/g,e=>`<ul class="my-1">${e.replace(/<br\/>/g,``)}</ul>`),t}var pW=({value:e,onChange:t,onSubmit:n,mentionSuggestions:r=[],placeholder:i,className:a,disabled:o=!1,extraSlot:s,canSubmitEmpty:c=!1})=>{let{t:l}=hU(),[u,d]=W.useState(!1),[f,p]=W.useState(!1),[m,h]=W.useState(``),[g,_]=W.useState(0),v=W.useRef(null),y=W.useMemo(()=>{if(!m)return r;let e=m.toLowerCase();return r.filter(t=>t.label.toLowerCase().includes(e))},[m,r]),b=W.useCallback((n,r=``)=>{let i=v.current;if(!i)return;let a=i.selectionStart,o=i.selectionEnd,s=e.slice(a,o);t(e.slice(0,a)+n+s+r+e.slice(o)),requestAnimationFrame(()=>{i.focus();let e=a+n.length+s.length;i.setSelectionRange(e,e)})},[e,t]),x=W.useCallback(()=>b(`**`,`**`),[b]),S=W.useCallback(()=>b(`*`,`*`),[b]),C=W.useCallback(()=>b(`
|
|
57
|
+
- `,``),[b]),w=W.useCallback(()=>b("`","`"),[b]),T=W.useCallback(()=>{b(`@`,``),p(!0),h(``),_(0)},[b]),E=W.useCallback(n=>{let r=v.current;if(!r)return;let i=r.selectionStart,a=e.slice(0,i).lastIndexOf(`@`);a!==-1&&t(e.slice(0,a)+`@${n.label} `+e.slice(i)),p(!1),h(``),requestAnimationFrame(()=>r.focus())},[e,t]),ee=W.useCallback(e=>{let n=e.target.value;t(n);let r=e.target.selectionStart,i=n.slice(0,r),a=i.lastIndexOf(`@`);if(a!==-1){let e=i.slice(a+1),t=a>0?i[a-1]:` `;if(/\s/.test(t)&&!/\s/.test(e)){p(!0),h(e),_(0);return}}p(!1)},[t]),D=W.useCallback(e=>{if(f&&y.length>0){if(e.key===`ArrowDown`){e.preventDefault(),_(e=>e<y.length-1?e+1:0);return}if(e.key===`ArrowUp`){e.preventDefault(),_(e=>e>0?e-1:y.length-1);return}if(e.key===`Enter`||e.key===`Tab`){e.preventDefault(),E(y[g]);return}if(e.key===`Escape`){p(!1);return}}e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),n?.())},[f,y,g,E,n]);return(0,G.jsxs)(`div`,{className:X(`border rounded-md`,a),children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5 px-2 py-1.5 border-b bg-muted/30`,children:[(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:x,disabled:o||u,title:l(`detail.bold`),children:(0,G.jsx)(Lt,{className:`h-3.5 w-3.5`})}),(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:S,disabled:o||u,title:l(`detail.italic`),children:(0,G.jsx)(rt,{className:`h-3.5 w-3.5`})}),(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:C,disabled:o||u,title:l(`detail.listFormat`),children:(0,G.jsx)(pt,{className:`h-3.5 w-3.5`})}),(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:w,disabled:o||u,title:l(`detail.inlineCode`),children:(0,G.jsx)(xt,{className:`h-3.5 w-3.5`})}),(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:T,disabled:o||u,title:l(`detail.mentionSomeone`),children:(0,G.jsx)(fn,{className:`h-3.5 w-3.5`})}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>d(!u),title:l(u?`detail.edit`:`detail.preview`),children:(0,G.jsx)(u?Ye:_n,{className:`h-3.5 w-3.5`})}),n&&(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:n,disabled:o||!c&&!e.trim(),title:l(`detail.submitComment`),children:(0,G.jsx)(et,{className:`h-3.5 w-3.5`})})]}),(0,G.jsx)(`div`,{className:`relative`,children:u?(0,G.jsx)(`div`,{className:`min-h-[80px] px-3 py-2 text-sm prose prose-sm max-w-none`,dangerouslySetInnerHTML:{__html:fW(e)}}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`textarea`,{ref:v,className:`w-full min-h-[80px] px-3 py-2 text-sm bg-transparent resize-none focus:outline-none placeholder:text-muted-foreground`,placeholder:i??l(`detail.writeComment`),value:e,onChange:ee,onKeyDown:D,disabled:o}),f&&y.length>0&&(0,G.jsx)(`div`,{className:`absolute left-2 bottom-full mb-1 w-56 bg-popover border rounded-md shadow-md z-50 max-h-40 overflow-y-auto`,children:y.map((e,t)=>(0,G.jsxs)(`button`,{type:`button`,className:X(`w-full text-left px-3 py-1.5 text-sm flex items-center gap-2 hover:bg-accent transition-colors`,t===g&&`bg-accent`),onMouseDown:t=>{t.preventDefault(),E(e)},children:[e.avatarUrl?(0,G.jsx)(`img`,{src:e.avatarUrl,alt:e.label,className:`h-5 w-5 rounded-full object-cover`}):(0,G.jsx)(`div`,{className:`h-5 w-5 rounded-full bg-muted flex items-center justify-center text-[10px] font-medium`,children:e.label.charAt(0).toUpperCase()}),(0,G.jsx)(`span`,{children:e.label})]},e.id))})]})}),s&&(0,G.jsx)(`div`,{className:`border-t px-2 py-2 bg-muted/20`,children:s})]})};function mW(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function hW(e){return e.startsWith(`image/`)}function gW(e){return hW(e)?tt:e.includes(`pdf`)||e.includes(`document`)||e.includes(`text`)?dn:e.includes(`zip`)||e.includes(`archive`)||e.includes(`compressed`)?Xt:nn}var _W=({attachments:e,onUpload:t,onRemove:n,className:r,readOnly:i=!1})=>{let{t:a}=hU(),[o,s]=W.useState(!1),c=W.useRef(null),l=W.useCallback(e=>{e.preventDefault(),e.stopPropagation(),s(!0)},[]),u=W.useCallback(e=>{e.preventDefault(),e.stopPropagation(),s(!1)},[]),d=W.useCallback(e=>{e.preventDefault(),e.stopPropagation(),s(!1),t&&e.dataTransfer.files.length>0&&t(e.dataTransfer.files)},[t]),f=W.useCallback(e=>{t&&e.target.files&&e.target.files.length>0&&(t(e.target.files),e.target.value=``)},[t]);return(0,G.jsxs)(`div`,{className:X(`space-y-2`,r),children:[t&&!i&&(0,G.jsxs)(`div`,{className:X(`border-2 border-dashed rounded-md px-4 py-3 text-center transition-colors cursor-pointer`,o?`border-primary bg-primary/5`:`border-muted-foreground/25 hover:border-muted-foreground/40`),onDragOver:l,onDragLeave:u,onDrop:d,onClick:()=>c.current?.click(),role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),c.current?.click())},children:[(0,G.jsx)(Qt,{className:`h-5 w-5 mx-auto text-muted-foreground mb-1`}),(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:a(`detail.dropFilesToUpload`)}),(0,G.jsx)(`input`,{ref:c,type:`file`,multiple:!0,className:`hidden`,onChange:f})]}),e.length>0&&(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,G.jsx)(Ft,{className:`h-3 w-3`}),(0,G.jsx)(`span`,{children:e.length===1?a(`detail.attachmentCount`,{count:e.length}):a(`detail.attachmentCountPlural`,{count:e.length})})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2`,children:e.map(e=>{let t=hW(e.type),r=gW(e.type);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border px-2.5 py-2 bg-muted/30 group`,children:[t&&(e.thumbnailUrl||e.url)?(0,G.jsx)(`img`,{src:e.thumbnailUrl||e.url,alt:e.name,className:`h-10 w-10 rounded object-cover shrink-0`}):(0,G.jsx)(`div`,{className:`h-10 w-10 rounded bg-muted flex items-center justify-center shrink-0`,children:(0,G.jsx)(r,{className:`h-5 w-5 text-muted-foreground`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-xs font-medium truncate`,children:e.name}),(0,G.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:mW(e.size)})]}),n&&!i&&(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,onClick:()=>n(e.id),title:a(`detail.removeAttachment`),children:(0,G.jsx)(At,{className:`h-3.5 w-3.5`})})]},e.id)})})]})]})},vW={comment:St,field_change:Ye,task:ft,event:ln,system:Wt,email:Yt,call:mn},yW={comment:`bg-purple-100 text-purple-600`,field_change:`bg-blue-100 text-blue-600`,task:`bg-green-100 text-green-600`,event:`bg-amber-100 text-amber-600`,system:`bg-gray-100 text-gray-600`,email:`bg-indigo-100 text-indigo-600`,call:`bg-teal-100 text-teal-600`};function bW(e){return[{value:`all`,label:e(`detail.allActivity`)},{value:`comments_only`,label:e(`detail.commentsOnly`)},{value:`changes_only`,label:e(`detail.fieldChangesFilter`)},{value:`tasks_only`,label:e(`detail.tasksOnly`)}]}function xW(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<7?`${a}d ago`:t.toLocaleDateString()}catch{return e}}function SW(e,t){switch(t){case`comments_only`:return e.filter(e=>e.type===`comment`);case`changes_only`:return e.filter(e=>e.type===`field_change`);case`tasks_only`:return e.filter(e=>e.type===`task`);default:return e}}var CW=({items:e,config:t,filterMode:n,onFilterChange:r,hasMore:i=!1,onLoadMore:a,loading:o=!1,onAddComment:s,onAddReply:c,onToggleReaction:l,subscription:u,onToggleSubscription:d,collapseWhenEmpty:f=!1,mentionSuggestions:p,onUploadAttachments:m,titleLabel:h,emptyLabel:g,className:_})=>{let{t:v}=hU(),[y,b]=W.useState(`all`),[x,S]=W.useState(``),[C,w]=W.useState(!1),[T,E]=W.useState(!1),[ee,D]=W.useState([]),[O,k]=W.useState(!1),A=n??y,te=t?.showFilterToggle!==!1,ne=t?.showCommentInput!==!1&&!!s,re=t?.enableReactions??!1,ie=t?.enableThreading??!1,j=t?.showSubscriptionToggle??!1,M=W.useMemo(()=>SW(e,A),[e,A]),ae=W.useMemo(()=>ie?M.filter(e=>!e.parentId):M,[M,ie]),N=W.useMemo(()=>{if(!ie)return new Map;let e=new Map;for(let t of M)if(t.parentId){let n=e.get(t.parentId)??[];n.push(t),e.set(t.parentId,n)}return e},[M,ie]),oe=W.useCallback(e=>{r?r(e):b(e)},[r]),P=W.useCallback(async()=>{let e=x.trim();if(s&&!(!e&&ee.length===0)){w(!0);try{await s(e,ee.length>0?ee:void 0),S(``),D([])}finally{w(!1)}}},[x,ee,s]),se=W.useCallback(async e=>{if(!(!m||e.length===0)){k(!0);try{let t=await m(e);Array.isArray(t)&&t.length>0&&D(e=>[...e,...t])}finally{k(!1)}}},[m]),F=W.useCallback(e=>{D(t=>t.filter(t=>t.id!==e))},[]),ce=W.useCallback(async()=>{if(a){E(!0);try{await a()}finally{E(!1)}}},[a]);return(0,G.jsxs)(`section`,{className:X(`border-t border-border/60 pt-5`,_),"aria-label":`Discussion`,children:[(0,G.jsx)(`header`,{className:`mb-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h2`,{className:`flex items-center gap-2 text-base font-semibold leading-none tracking-tight`,children:[(0,G.jsx)(zt,{className:`h-4 w-4`}),h??v(`detail.activity`),(0,G.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,M.length,`)`]})]}),(0,G.jsx)(`div`,{className:`flex items-center gap-1`,children:j&&u&&(0,G.jsx)(dW,{subscription:u,onToggle:d})})]})}),(0,G.jsxs)(`div`,{className:`space-y-4`,children:[te&&(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsxs)(RF,{value:A,onValueChange:e=>oe(e),children:[(0,G.jsx)(BF,{"aria-label":v(`detail.filterActivity`),className:`h-8 w-auto min-w-[140px] py-1 text-sm`,children:(0,G.jsx)(zF,{})}),(0,G.jsx)(UF,{children:bW(v).map(e=>(0,G.jsx)(GF,{value:e.value,children:e.label},e.value))})]})}),ne&&(0,G.jsx)(pW,{value:x,onChange:S,onSubmit:P,mentionSuggestions:p,placeholder:v(`detail.leaveCommentPlaceholder`),disabled:C,canSubmitEmpty:ee.length>0,extraSlot:m?(0,G.jsx)(_W,{attachments:ee,onUpload:se,onRemove:F,readOnly:C||O}):ee.length>0?(0,G.jsx)(_W,{attachments:ee,onRemove:F,readOnly:C}):void 0}),M.length===0?f?null:(0,G.jsx)(yR,{title:g??v(`detail.noActivity`),className:`py-6`}):(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`div`,{className:`absolute left-4 top-2 bottom-2 w-px bg-border`}),(0,G.jsx)(`div`,{className:`space-y-4`,children:ae.map(e=>{let t=vW[e.type]||Wt,n=yW[e.type]||`bg-gray-100 text-gray-600`,r=N.get(e.id)??[];return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex gap-3 relative`,children:[(0,G.jsx)(`div`,{className:X(`shrink-0 h-8 w-8 rounded-full flex items-center justify-center z-10`,n),children:e.actorAvatarUrl?(0,G.jsx)(`img`,{src:e.actorAvatarUrl,alt:e.actor,className:`h-8 w-8 rounded-full object-cover`}):(0,G.jsx)(t,{className:`h-3.5 w-3.5`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-0.5`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium`,children:e.actor}),e.source&&(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:v(`detail.via`,{source:e.source})}),(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:xW(e.createdAt)}),e.edited&&(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground italic`,children:v(`detail.edited`)}),e.pinned&&(0,G.jsxs)(`span`,{className:`text-xs text-amber-600`,children:[`📌 `,v(`detail.pinned`)]})]}),e.body&&(0,G.jsx)(`p`,{className:`text-sm whitespace-pre-wrap break-words text-muted-foreground`,children:e.body}),e.type===`field_change`&&e.fieldChanges&&(0,G.jsx)(`div`,{className:`space-y-1 mt-1`,children:e.fieldChanges.map((e,t)=>(0,G.jsx)(oW,{change:e},t))}),re&&e.reactions&&e.reactions.length>0&&(0,G.jsx)(`div`,{className:`mt-1.5`,children:(0,G.jsx)(cW,{reactions:e.reactions,onToggleReaction:l?t=>l(e.id,t):void 0})}),re&&(!e.reactions||e.reactions.length===0)&&l&&(0,G.jsx)(`div`,{className:`mt-1.5`,children:(0,G.jsx)(cW,{reactions:[],onToggleReaction:t=>l(e.id,t)})})]})]}),ie&&(e.replyCount??0)>0&&(0,G.jsx)(uW,{parentItem:e,replies:r,onAddReply:c,showReplyInput:!!c})]},e.id)})})]}),i&&(0,G.jsx)(`div`,{className:`text-center pt-2`,children:(0,G.jsxs)(Z,{variant:`ghost`,size:`sm`,onClick:ce,disabled:T,"aria-label":v(`detail.loadMore`),children:[T?(0,G.jsx)(dt,{className:`h-4 w-4 animate-spin mr-1`}):(0,G.jsx)(nt,{className:`h-4 w-4 mr-1`}),v(`detail.loadMore`)]})})]})]})},wW=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},TW=({schema:e={},className:t,...n})=>{du();let{designer:r}=wW(n);return(0,G.jsx)(`div`,{className:t,...r,children:(0,G.jsx)(CW,{items:[],config:e})})},EW=({config:e,items:t,hasMore:n,onLoadMore:r,loading:i,onAddComment:a,onAddReply:o,onToggleReaction:s,subscription:c,onToggleSubscription:l,filterMode:u,onFilterChange:d,collapseWhenEmpty:f=!1,mentionSuggestions:p,onUploadAttachments:m,className:h})=>{let g=e?.position??`right`,_=e?.width??`360px`,v=e?.collapsible??!0,y=f&&t.length===0||(e?.defaultCollapsed??!1),{t:b}=hU(),[x,S]=W.useState(y);return g===`right`||g===`left`?x&&v?(0,G.jsx)(`div`,{className:X(`flex items-start pt-4`,g===`right`?`border-l`:`border-r`,h),children:(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-8 w-8 mx-1`,onClick:()=>S(!1),"aria-label":b(`detail.openDiscussion`),children:(0,G.jsx)(en,{className:`h-4 w-4`})})}):(0,G.jsxs)(`div`,{className:X(`flex flex-col overflow-hidden`,g===`right`?`border-l`:`border-r`,h),style:{width:_,minWidth:_},children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(St,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`text-sm font-medium`,children:b(`detail.discussion`)})]}),v&&(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>S(!0),"aria-label":b(`detail.closeDiscussion`),children:(0,G.jsx)(At,{className:`h-3.5 w-3.5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,G.jsx)(CW,{items:t,config:e?.feed,hasMore:n,onLoadMore:r,loading:i,onAddComment:a,onAddReply:o,onToggleReaction:s,subscription:c,onToggleSubscription:l,filterMode:u,onFilterChange:d,collapseWhenEmpty:f,mentionSuggestions:p,onUploadAttachments:m,titleLabel:b(`detail.discussion`),emptyLabel:b(`detail.noCommentsYet`),className:`border-0 shadow-none`})})]}):(0,G.jsx)(`div`,{className:X(``,h),children:v&&x?(0,G.jsxs)(Z,{variant:`ghost`,className:`w-full justify-start gap-2 text-muted-foreground`,onClick:()=>S(!1),"aria-label":b(`detail.showDiscussion`,{count:t.length}),children:[(0,G.jsx)(St,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:b(`detail.showDiscussion`,{count:t.length})})]}):(0,G.jsxs)(`div`,{children:[v&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium`,children:[(0,G.jsx)(St,{className:`h-4 w-4`}),b(`detail.discussion`)]}),(0,G.jsx)(Z,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>S(!0),"aria-label":b(`detail.hideDiscussion`),children:(0,G.jsx)(Ut,{className:`h-3.5 w-3.5`})})]}),(0,G.jsx)(CW,{items:t,config:e?.feed,hasMore:n,onLoadMore:r,loading:i,onAddComment:a,onAddReply:o,onToggleReaction:s,subscription:c,onToggleSubscription:l,filterMode:u,onFilterChange:d,collapseWhenEmpty:f,mentionSuggestions:p,onUploadAttachments:m,titleLabel:b(`detail.discussion`),emptyLabel:b(`detail.noCommentsYet`)})]})})},DW=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},OW=({schema:e={},className:t,...n})=>{du();let r=pu(),{designer:i}=DW(n),a={position:`bottom`,collapsible:!1,feed:{enableReactions:!0,enableThreading:!0,showCommentInput:!0},...e};return(0,G.jsx)(`div`,{className:t,...i,children:(0,G.jsx)(EW,{items:r?.items||[],config:a,onAddComment:r?.onAddComment,onAddReply:r?.onAddReply,onToggleReaction:r?.onToggleReaction,mentionSuggestions:r?.mentionSuggestions,onUploadAttachments:r?.onUploadAttachments})})},kW=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},AW=({schema:e={},className:t,...n})=>{let r=du(),{translateOptions:i}=bu(),{designer:a}=kW(n),o=Array.isArray(e.stages)?e.stages:[],s=e.statusField,c=W.useMemo(()=>{if(o.length===0||!s||!r?.objectName)return o;let e=i(r.objectName,s,o);return Array.isArray(e)&&e.length===o.length?o.map((t,n)=>({...t,label:e[n]?.label??t.label})):o},[o,s,r?.objectName,i]),l=s&&r?.data?r.data[s]:void 0,u=/(^|[_-\s])(closed_)?(lost|failed?|cancell?ed|失败|流失|丢单|败)([_-\s]|$)/i,d=/(^|[_-\s])(closed_)?(won|success|成交|赢|完成)([_-\s]|$)/i,f=c.map(e=>{if(e.terminal)return e.terminal;let t=`${String(e.value??``)} ${String(e.label??``)}`;if(u.test(t))return`lost`;if(d.test(t))return`won`}),p=f.findIndex(e=>e===`lost`),m=p===-1?c:c.slice(0,p),h=p===-1?[]:c.slice(p),g=p===-1?f:f.slice(0,p),_=c.findIndex(e=>e.value===l);_<0&&(_=-1);let v=p!==-1&&_>=p;if(c.length===0)return(0,G.jsx)(`div`,{className:t,...a,children:(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:path — no stages configured`})});let y=(e,t)=>{if(c.length!==1)return e===0?`polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%)`:e===t?`polygon(0 0, 100% 0, 100% 100%, 0 100%, 14px 50%)`:`polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%, 14px 50%)`},b=m.length-1;return(0,G.jsxs)(`div`,{className:X(`w-full`,t),...a,children:[(0,G.jsxs)(`div`,{className:`hidden sm:flex w-full items-stretch gap-2`,role:`list`,"aria-label":e.aria?.label||`Record path`,children:[(0,G.jsx)(`div`,{className:`flex flex-1 items-stretch`,children:m.map((e,t)=>{let n=!v&&_>=0&&t<_,r=!v&&t===_,i=g[t]===`won`&&t===b,a=y(t,b);return(0,G.jsx)(`div`,{role:`listitem`,"aria-current":r?`step`:void 0,style:a?{clipPath:a,WebkitClipPath:a}:void 0,className:X(`relative flex-1 min-w-0 px-5 py-2 text-xs font-medium text-center`,t>0&&`-ml-2`,m.length===1&&`rounded-md border`,r&&`bg-primary text-primary-foreground shadow-sm ring-1 ring-primary/40`,n&&`bg-emerald-500/15 text-emerald-800 dark:text-emerald-200`,!r&&!n&&i&&`bg-emerald-500/5 text-emerald-700/85 dark:text-emerald-300/85 border border-emerald-500/20`,!r&&!n&&!i&&`bg-background text-foreground/85 border border-border/60`),children:(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 truncate`,style:{paddingLeft:t===0?0:`${14/2}px`,paddingRight:t===b?0:`${14/2}px`},children:[n&&(0,G.jsx)(`span`,{"aria-hidden":!0,className:`text-emerald-600 dark:text-emerald-400 font-semibold`,children:`✓`}),i&&!r&&(0,G.jsx)(`span`,{"aria-hidden":!0,className:`opacity-70`,children:`🏆`}),e.label]})},`${e.value}-${t}`)})}),h.length>0&&(0,G.jsx)(`div`,{className:`flex items-stretch gap-1 pl-2 border-l border-border/40`,"aria-label":`Alternative terminal stages`,children:h.map((e,t)=>{let n=p+t===_;return(0,G.jsx)(`div`,{role:`listitem`,"aria-current":n?`step`:void 0,className:X(`shrink-0 px-3 py-2 text-xs font-medium rounded-md border whitespace-nowrap`,n&&`bg-destructive text-destructive-foreground border-destructive shadow-sm ring-1 ring-destructive/40`,!n&&`bg-destructive/5 text-destructive/85 border-destructive/20`),children:(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,G.jsx)(`span`,{"aria-hidden":!0,className:`opacity-70`,children:`✗`}),e.label]})},`${e.value}-lost-${t}`)})})]}),(0,G.jsx)(`div`,{className:`flex sm:hidden w-full items-stretch gap-1 overflow-x-auto pb-1 -mx-1 px-1 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,role:`list`,"aria-label":e.aria?.label||`Record path`,children:c.map((e,t)=>{let n=f[t]===`lost`,r=!n&&!v&&_>=0&&t<_,i=t===_;return(0,G.jsx)(`div`,{role:`listitem`,"aria-current":i?`step`:void 0,className:X(`shrink-0 px-3 py-1.5 rounded-full text-xs font-medium border whitespace-nowrap`,n&&i&&`bg-destructive text-destructive-foreground border-destructive shadow-sm`,n&&!i&&`bg-destructive/5 text-destructive/85 border-destructive/20`,!n&&i&&`bg-primary text-primary-foreground border-primary shadow-sm ring-1 ring-primary/40`,!n&&r&&`bg-emerald-500/15 text-emerald-800 dark:text-emerald-200 border-emerald-500/30`,!n&&!i&&!r&&`bg-background text-foreground/85 border-border/60`),children:(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[n&&(0,G.jsx)(`span`,{"aria-hidden":!0,className:`opacity-70`,children:`✗`}),!n&&r&&(0,G.jsx)(`span`,{"aria-hidden":!0,className:`text-emerald-600 dark:text-emerald-400 font-semibold`,children:`✓`}),e.label]})},`${e.value}-${t}-m`)})})]})},jW=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},MW=({schema:e={},className:t,...n})=>{let r=du(),{designer:i}=jW(n),a=sU(),o=Array.isArray(e.actions)?e.actions:Array.isArray(e.properties?.actions)?e.properties.actions:[],s=r?.objectName||``,c=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[];if(c.length>0&&s&&!c.every(e=>a.can(s,e)))return(0,G.jsx)(`div`,{className:t,...i,role:`status`,"aria-live":`polite`,children:(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view quick actions.`})});let l=e.location||`record_header`,{getActionsForLocation:u,executeAction:d}=Xl({actions:o,context:{record:r?.data,recordId:r?.recordId,objectName:r?.objectName}}),f=o.length>0?u(l):[];if(f.length===0)return(0,G.jsx)(`div`,{className:t,...i,children:(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:quick_actions — no actions configured`})});let p=e.align||`end`,m=p===`start`?`justify-start`:p===`center`?`justify-center`:`justify-end`;return(0,G.jsx)(`div`,{className:X(`flex flex-wrap items-center gap-2`,l===`record_header`&&!e.inline&&`-mt-12 sm:-mt-14 mb-2 relative z-10`,m,t),role:`toolbar`,"aria-label":e.aria?.label||`Quick actions`,...i,children:f.map((t,n)=>{let r=t.label||t.name||`Action ${n+1}`;return(0,G.jsx)(Z,{variant:t.variant||e.variant||`default`,size:t.size||e.size||`sm`,disabled:typeof t.disabled==`boolean`?t.disabled:void 0,onClick:()=>{if(typeof t.onClick==`function`){t.onClick();return}t.name&&d(t.name)},children:r},t.name||`qa-${n}`)})})},NW=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},PW=({schema:e={},className:t,...n})=>{let{designer:r}=NW(n),i=Array.isArray(e.entries)?e.entries:Array.isArray(e.properties?.entries)?e.properties.entries:[],a=e.loading??e.properties?.loading??!1,o=e.emptyText??e.properties?.emptyText;return(0,G.jsx)(`div`,{className:t,...r,children:(0,G.jsx)(LU,{entries:i,loading:a,emptyText:o})})},FW=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},IW=e=>e.replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase()).trim(),LW=e=>e?.name||e?.title||e?.subject||e?.label||e?.id||`—`,RW=({schema:e={},className:t,...n})=>{let r=du(),i=bu(),{t:a}=hU(),{designer:o}=FW(n),s=fe().appName,c=Array.isArray(e.entries)?e.entries:Array.isArray(e.properties?.entries)?e.properties.entries:[],l=r?.recordId,u=r?.dataSource,[d,f]=W.useState({});if(W.useEffect(()=>{if(!u?.find||!l||c.length===0)return;let e=!1;return c.forEach(t=>{let n=t.objectName;f(e=>({...e,[n]:{loading:!0,total:0,items:e[n]?.items||[]}})),u.find(t.objectName,{$filter:{[t.relationshipField]:l},$top:t.limit??3,$count:!0}).then(t=>{if(e)return;let r=Array.isArray(t)?t:t?.data||[],i=typeof t?.total==`number`?t.total:typeof t?.count==`number`?t.count:r.length;f(e=>({...e,[n]:{loading:!1,total:i,items:r}}))}).catch(t=>{e||f(e=>({...e,[n]:{loading:!1,total:0,items:[],error:String(t?.message||t)}}))})}),()=>{e=!0}},[u,l,JSON.stringify(c.map(e=>`${e.objectName}:${e.relationshipField}:${e.limit??3}`))]),c.length===0)return null;let p=e.hideEmpty!==!1,[m,h]=W.useState(!1),g=new Set(c.filter(e=>{let t=d[e.objectName];return p&&t&&!t.loading&&!t.error&&t.total===0}).map(e=>e.objectName)),_=c.filter(e=>m||!g.has(e.objectName)),v=c.filter(e=>g.has(e.objectName)).map(e=>e.title||(i?.objectLabel?i.objectLabel({name:e.objectName,label:IW(e.objectName)}):IW(e.objectName)));return(0,G.jsxs)(`div`,{className:X(`flex flex-col gap-3`,e.className,t),...o,children:[_.map(e=>{let t=e.objectName,n=d[t]||{loading:!0,total:0,items:[]};return(0,G.jsxs)(uN,{className:`overflow-hidden`,children:[(0,G.jsxs)(dN,{className:`flex flex-row items-center justify-between gap-2 py-3 px-4 space-y-0 border-b`,children:[(0,G.jsx)(fN,{className:`text-sm font-semibold tracking-tight truncate`,children:e.title||(i?.objectLabel?i.objectLabel({name:e.objectName,label:IW(e.objectName)}):IW(e.objectName))}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[!n.loading&&(0,G.jsx)(eN,{variant:`secondary`,className:`tabular-nums`,children:n.total}),s&&l&&(0,G.jsx)(Ue,{to:`/apps/${s}/${e.objectName}?filter%5B${e.relationshipField}%5D=${encodeURIComponent(String(l))}`,className:`text-[11px] font-medium text-muted-foreground hover:text-foreground transition-colors`,title:a(`detail.viewAll`,{defaultValue:`View all`}),children:a(`detail.viewAll`,{defaultValue:`View all`})})]})]}),(0,G.jsx)(mN,{className:`p-0`,children:n.loading?(0,G.jsxs)(`div`,{className:`space-y-1.5 p-3`,children:[(0,G.jsx)(sI,{className:`h-3.5 w-4/5`}),(0,G.jsx)(sI,{className:`h-3.5 w-3/5`}),(0,G.jsx)(sI,{className:`h-3.5 w-2/3`})]}):n.items.length===0?(0,G.jsx)(`p`,{className:`px-4 py-3 text-xs text-muted-foreground`,children:a(`detail.noRecords`)}):(0,G.jsx)(`ul`,{className:`divide-y`,children:n.items.map(t=>{let n=t.id||t._id,r=LW(t),i=n?`../${e.objectName}/record/${encodeURIComponent(String(n))}`:void 0;return(0,G.jsx)(`li`,{className:`px-4 py-2`,children:i?(0,G.jsxs)(Ue,{to:i,className:`group flex items-center justify-between gap-2 text-xs hover:text-foreground text-muted-foreground transition-colors`,children:[(0,G.jsx)(`span`,{className:`truncate`,children:r}),(0,G.jsx)(Xe,{className:`h-3 w-3 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`})]}):(0,G.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:r})},String(n||r))})})})]},t)}),!m&&v.length>0&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>h(!0),className:`self-start inline-flex items-center gap-1.5 text-[11px] text-muted-foreground hover:text-foreground transition-colors px-2.5 py-1 rounded-md border border-dashed border-border/60 hover:border-border bg-background`,title:v.join(` · `),children:[(0,G.jsx)(`span`,{children:a(`detail.showEmptyRelated`,{defaultValue:`+ {{count}} empty`,count:v.length})}),(0,G.jsxs)(`span`,{className:`truncate max-w-[180px] text-muted-foreground/70`,children:[`(`,v.join(` · `),`)`]})]})]})},zW=new Set([`id`,`_id`,`__v`,`created_at`,`updated_at`,`createdAt`,`updatedAt`,`created_by`,`updated_by`,`organization_id`,`tenant_id`,`owner_id`,`deleted_at`,`is_deleted`]),BW=480,VW=95;function HW({open:e,onClose:t,title:n,record:r,objectName:i,recordId:a,dataSource:o,objectSchema:s,width:c=`min(960px, 60vw)`,columns:l=2,systemFields:u=zW,onFieldSave:d,onDelete:f,resizable:p=!0,fullPageHref:m}){let{t:h}=hU(),g=`objectui.drawerWidth.${i}`,[_,v]=W.useState(()=>{if(typeof window>`u`||!p)return null;try{let e=window.localStorage.getItem(g);if(e){let t=parseInt(e,10);if(Number.isFinite(t)&&t>=BW)return t}}catch{}return null}),y=W.useMemo(()=>p&&_!=null?`${_}px`:typeof c==`number`?`${c}px`:c,[p,_,c]),b=y?{width:y,maxWidth:y}:void 0,x=W.useRef(null),S=W.useCallback(e=>{if(!p)return;e.preventDefault();let t=_??(typeof window<`u`?Math.min(window.innerWidth*.6,960):720);x.current={startX:e.clientX,startWidth:t};let n=e=>{let t=x.current;if(!t)return;let n=t.startX-e.clientX,r=typeof window<`u`?window.innerWidth*VW/100:1600,i=Math.min(r,Math.max(BW,t.startWidth+n));v(Math.round(i))},r=()=>{x.current,x.current=null,window.removeEventListener(`pointermove`,n),window.removeEventListener(`pointerup`,r),window.removeEventListener(`pointercancel`,r);try{v(e=>(e!=null&&window.localStorage.setItem(g,String(e)),e))}catch{}};window.addEventListener(`pointermove`,n),window.addEventListener(`pointerup`,r),window.addEventListener(`pointercancel`,r)},[p,_,g]),C=s?.fields??{},w=(Object.keys(C).length?Object.keys(C):Object.keys(r)).filter(e=>!u.has(e)&&!e.startsWith(`__`)).filter(e=>e in r).filter(e=>!C[e]?.hidden).map(e=>{let t=C[e]||{},n=t.type===`lookup`||t.type===`master_detail`||t.type===`reference`;return{name:e,label:t.label,type:t.type,readonly:!!t.readonly||n,options:t.options,currency:t.currency,precision:t.precision,format:t.format,reference_to:t.reference_to??t.referenceTo??t.target,reference_field:t.reference_field??t.referenceField,required:t.required,validation:t.validation,placeholder:t.placeholder,description:t.description}});return(0,G.jsx)(JF,{open:e,onOpenChange:e=>{e||t()},children:(0,G.jsxs)(eI,{side:`right`,className:`w-full overflow-y-auto p-0 sm:!max-w-none`,style:b,onOpenAutoFocus:e=>e.preventDefault(),children:[p&&(0,G.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize drawer`,onPointerDown:S,className:`hidden sm:block absolute left-0 top-0 h-full w-1.5 cursor-col-resize select-none bg-transparent hover:bg-primary/30 active:bg-primary/50 transition-colors z-10`}),(0,G.jsx)(tI,{className:`sr-only`,children:(0,G.jsx)(rI,{children:n})}),(0,G.jsx)(`div`,{className:`px-6 pt-6 pb-6`,children:(0,G.jsx)(qU,{dataSource:o,inlineEdit:!0,schema:{type:`detail-view`,objectName:i,resourceId:String(a),data:r,showDelete:!0,columns:l,fields:w,actions:m?[{type:`action:bar`,location:`record_header`,systemActions:[{name:`sys_open_new_tab`,label:h(`detail.openInNewTab`),icon:`external-link`,type:`script`,onClick:()=>window.open(m,`_blank`,`noopener`)}]}]:void 0},onFieldSave:async(e,t)=>{try{await d?.(e,t)}catch(e){console.error(`[RecordDetailDrawer] inline field save failed:`,e)}},onDelete:async()=>{try{await f?.(),t()}catch(e){console.error(`[RecordDetailDrawer] delete failed:`,e)}}})})]})})}function UW(e,t){if(typeof window>`u`)return null;let n=window.location.pathname,r=`/${e}`,i=n.indexOf(r);return`${i>=0?n.slice(0,i):n.replace(/\/$/,``)}/${e}/record/${encodeURIComponent(String(t))}`}K.register(`detail-view`,qU,{namespace:`plugin-detail`,label:`Detail View`,category:`Views`,icon:`FileText`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`objectName`,type:`string`,label:`Object Name`},{name:`resourceId`,type:`string`,label:`Resource ID`},{name:`api`,type:`string`,label:`API Endpoint`},{name:`data`,type:`object`,label:`Data`},{name:`layout`,type:`enum`,label:`Layout Mode`,enum:[`vertical`,`horizontal`,`grid`]},{name:`columns`,type:`number`,label:`Grid Columns`},{name:`sections`,type:`array`,label:`Sections`},{name:`fields`,type:`array`,label:`Fields`},{name:`tabs`,type:`array`,label:`Tabs`},{name:`related`,type:`array`,label:`Related Lists`},{name:`actions`,type:`array`,label:`Actions`},{name:`showBack`,type:`boolean`,label:`Show Back Button`,defaultValue:!0},{name:`backUrl`,type:`string`,label:`Back URL`},{name:`showEdit`,type:`boolean`,label:`Show Edit Button`,defaultValue:!1},{name:`editUrl`,type:`string`,label:`Edit URL`},{name:`showDelete`,type:`boolean`,label:`Show Delete Button`,defaultValue:!1},{name:`deleteConfirmation`,type:`string`,label:`Delete Confirmation Message`},{name:`loading`,type:`boolean`,label:`Show Loading State`},{name:`header`,type:`object`,label:`Custom Header`},{name:`footer`,type:`object`,label:`Custom Footer`}],defaultProps:{title:`Detail View`,showBack:!0,showEdit:!1,showDelete:!1,sections:[],fields:[],tabs:[],related:[]}}),K.register(`detail-section`,_U,{namespace:`plugin-detail`,label:`Detail Section`,category:`Detail Components`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`fields`,type:`array`,label:`Fields`,required:!0},{name:`collapsible`,type:`boolean`,label:`Collapsible`,defaultValue:!1},{name:`defaultCollapsed`,type:`boolean`,label:`Default Collapsed`,defaultValue:!1},{name:`columns`,type:`number`,label:`Columns`,defaultValue:2},{name:`showBorder`,type:`boolean`,label:`Show Border`,defaultValue:!0},{name:`headerColor`,type:`string`,label:`Header Color`}]}),K.register(`related-list`,bU,{namespace:`plugin-detail`,label:`Related List`,category:`Detail Components`,inputs:[{name:`title`,type:`string`,label:`Title`,required:!0},{name:`type`,type:`enum`,label:`Type`,enum:[{label:`List`,value:`list`},{label:`Grid`,value:`grid`},{label:`Table`,value:`table`}],defaultValue:`table`},{name:`api`,type:`string`,label:`API Endpoint`},{name:`data`,type:`array`,label:`Data`},{name:`columns`,type:`array`,label:`Columns`}]}),K.register(`detail`,qU,{namespace:`view`,category:`view`,label:`Detail`,icon:`FileText`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`recordId`,type:`string`,label:`Record ID`},{name:`fields`,type:`array`,label:`Fields`}]}),K.register(`record:details`,eW,{namespace:`record`,category:`record`,label:`Record Details`,icon:`FileText`}),K.register(`record:related_list`,rW,{namespace:`record`,category:`record`,label:`Related List`,icon:`List`}),K.register(`record:highlights`,aW,{namespace:`record`,category:`record`,label:`Highlights Panel`,icon:`Star`}),K.register(`record:activity`,TW,{namespace:`record`,category:`record`,label:`Activity Timeline`,icon:`Activity`}),K.register(`record:chatter`,OW,{namespace:`record`,category:`record`,label:`Chatter Feed`,icon:`MessageSquare`}),K.register(`record:discussion`,OW,{namespace:`record`,category:`record`,label:`Discussion`,icon:`MessageSquare`}),K.register(`record:path`,AW,{namespace:`record`,category:`record`,label:`Path / Stepper`,icon:`GitBranch`}),K.register(`record:quick_actions`,MW,{namespace:`record`,category:`record`,label:`Quick Actions`,icon:`Zap`}),K.register(`record:history`,PW,{namespace:`record`,category:`record`,label:`History Timeline`,icon:`Clock`}),K.register(`record:reference_rail`,RW,{namespace:`record`,category:`record`,label:`Reference Rail`,icon:`PanelRight`});var WW=(0,W.createContext)(null);WW.displayName=`PermissionContext`;function GW(){let e=(0,W.useContext)(WW);return(0,W.useMemo)(()=>e?{...e,can:(t,n)=>e.check(t,n).allowed,cannot:(t,n)=>!e.check(t,n).allowed}:{check:()=>({allowed:!0}),checkField:()=>!0,getFieldPermissions:()=>[],getRowFilter:()=>void 0,roles:[],isLoaded:!1,can:()=>!0,cannot:()=>!1},[e])}function Q(e){if(typeof process<`u`&&{}.OS_EAGER_SCHEMAS===`1`)return e();let t,n=()=>(t===void 0&&(t=e()),t);return new Proxy(function(){},{get(e,t){let r=n(),i=r[t];return typeof i==`function`?i.bind(r):i},set(e,t,r){let i=n();return i[t]=r,!0},has(e,t){return t in n()},ownKeys(){return Reflect.ownKeys(n())},getOwnPropertyDescriptor(e,t){return Reflect.getOwnPropertyDescriptor(n(),t)},getPrototypeOf(){return Reflect.getPrototypeOf(n())}})}var KW=Q(()=>B({$field:R().describe(`Field Reference/Column Name`)}));Q(()=>B({$eq:_e().optional(),$ne:_e().optional()})),Q(()=>B({$gt:V([I(),Se(),KW]).optional(),$gte:V([I(),Se(),KW]).optional(),$lt:V([I(),Se(),KW]).optional(),$lte:V([I(),Se(),KW]).optional()})),Q(()=>B({$in:U(_e()).optional(),$nin:U(_e()).optional()})),Q(()=>B({$between:ke([V([I(),Se(),KW]),V([I(),Se(),KW])]).optional()})),Q(()=>B({$contains:R().optional(),$notContains:R().optional(),$startsWith:R().optional(),$endsWith:R().optional()})),Q(()=>B({$null:H().optional(),$exists:H().optional()}));var qW=Q(()=>B({$eq:_e().optional(),$ne:_e().optional(),$gt:V([I(),Se(),KW]).optional(),$gte:V([I(),Se(),KW]).optional(),$lt:V([I(),Se(),KW]).optional(),$lte:V([I(),Se(),KW]).optional(),$in:U(_e()).optional(),$nin:U(_e()).optional(),$between:ke([V([I(),Se(),KW]),V([I(),Se(),KW])]).optional(),$contains:R().optional(),$notContains:R().optional(),$startsWith:R().optional(),$endsWith:R().optional(),$null:H().optional(),$exists:H().optional()})),JW=De(()=>L(R(),z()).and(B({$and:U(JW).optional(),$or:U(JW).optional(),$not:JW.optional()})));Q(()=>B({where:JW.optional()}));var YW=De(()=>B({$and:U(V([L(R(),qW),YW])).optional(),$or:U(V([L(R(),qW),YW])).optional(),$not:V([L(R(),qW),YW]).optional()})),XW=new Set([`=`,`==`,`!=`,`<>`,`>`,`>=`,`<`,`<=`,`in`,`nin`,`not_in`,`contains`,`notcontains`,`not_contains`,`like`,`startswith`,`starts_with`,`endswith`,`ends_with`,`between`,`is_null`,`is_not_null`]);function ZW(e){if(!Array.isArray(e)||e.length===0)return!1;let t=e[0];if(typeof t==`string`){let n=t.toLowerCase();if(n===`and`||n===`or`)return e.length>=2&&e.slice(1).every(e=>ZW(e));if(e.length>=2&&typeof e[1]==`string`)return XW.has(e[1].toLowerCase())}return e.every(e=>ZW(e))?e.length>0:!1}var QW=[`$eq`,`$ne`,`$gt`,`$gte`,`$lt`,`$lte`,`$in`,`$nin`,`$between`,`$contains`,`$notContains`,`$startsWith`,`$endsWith`,`$null`,`$exists`],$W=[`$and`,`$or`,`$not`];[...QW,...$W];var eG=Q(()=>B({field:R(),order:N([`asc`,`desc`]).default(`asc`)})),tG=N([`count`,`sum`,`avg`,`min`,`max`,`count_distinct`,`array_agg`,`string_agg`]),nG=N([`day`,`week`,`month`,`quarter`,`year`]),rG=Q(()=>V([R(),B({field:R().describe(`Field to group by`),dateGranularity:nG.optional().describe(`Bucket date values into uniform periods (day/week/month/quarter/year)`),alias:R().optional().describe(`Alias for the projected group value`)})])),iG=Q(()=>B({function:tG.describe(`Aggregation function`),field:R().optional().describe(`Field to aggregate (optional for COUNT(*))`),alias:R().describe(`Result column alias`),distinct:H().optional().describe(`Apply DISTINCT before aggregation`),filter:JW.optional().describe(`Filter/Condition to apply to the aggregation (FILTER WHERE clause)`)})),aG=N([`inner`,`left`,`right`,`full`]),oG=N([`auto`,`database`,`hash`,`loop`]),sG=De(()=>B({type:aG.describe(`Join type`),strategy:oG.optional().describe(`Execution strategy hint`),object:R().describe(`Object/table to join`),alias:R().optional().describe(`Table alias`),on:JW.describe(`Join condition`),subquery:De(()=>mG).optional().describe(`Subquery instead of object`)})),cG=N([`row_number`,`rank`,`dense_rank`,`percent_rank`,`lag`,`lead`,`first_value`,`last_value`,`sum`,`avg`,`count`,`min`,`max`]),lG=Q(()=>B({partitionBy:U(R()).optional().describe(`PARTITION BY fields`),orderBy:U(eG).optional().describe(`ORDER BY specification`),frame:B({type:N([`rows`,`range`]).optional(),start:R().optional().describe(`Frame start (e.g., "UNBOUNDED PRECEDING", "1 PRECEDING")`),end:R().optional().describe(`Frame end (e.g., "CURRENT ROW", "1 FOLLOWING")`)}).optional().describe(`Window frame specification`)})),uG=Q(()=>B({function:cG.describe(`Window function name`),field:R().optional().describe(`Field to operate on (for aggregate window functions)`),alias:R().describe(`Result column alias`),over:lG.describe(`Window specification (OVER clause)`)})),dG=De(()=>V([R(),B({field:R(),fields:U(dG).optional(),alias:R().optional()})])),fG=Q(()=>B({query:R().describe(`Search query text`),fields:U(R()).optional().describe(`Fields to search in (if not specified, searches all text fields)`),fuzzy:H().optional().default(!1).describe(`Enable fuzzy matching (tolerates typos)`),operator:N([`and`,`or`]).optional().default(`or`).describe(`Logical operator between terms`),boost:L(R(),I()).optional().describe(`Field-specific relevance boosting (field name -> boost factor)`),minScore:I().optional().describe(`Minimum relevance score threshold`),language:R().optional().describe(`Language for text analysis (e.g., "en", "zh", "es")`),highlight:H().optional().default(!1).describe(`Enable search result highlighting`)})),pG=B({object:R().describe(`Object name (e.g. account)`),fields:U(dG).optional().describe(`Fields to retrieve`),where:JW.optional().describe(`Filtering criteria (WHERE)`),search:fG.optional().describe(`Full-text search configuration ($search parameter)`),orderBy:U(eG).optional().describe(`Sorting instructions (ORDER BY)`),limit:I().optional().describe(`Max records to return (LIMIT)`),offset:I().optional().describe(`Records to skip (OFFSET)`),top:I().optional().describe(`Alias for limit (OData compatibility)`),cursor:L(R(),z()).optional().describe(`Cursor for keyset pagination`),joins:U(sG).optional().describe(`Explicit Table Joins`),aggregations:U(iG).optional().describe(`Aggregation functions`),groupBy:U(rG).optional().describe("GROUP BY targets (strings or `{field, dateGranularity?}` objects for date bucketing)"),having:JW.optional().describe(`HAVING clause for aggregation filtering`),windowFunctions:U(uG).optional().describe(`Window functions with OVER clause`),distinct:H().optional().describe(`SELECT DISTINCT flag`)}),mG=Q(()=>pG.extend({expand:De(()=>L(R(),mG)).optional().describe(`Recursive relation loading map. Keys are lookup/master_detail field names; values are nested QueryAST objects that control select, filter, sort, and further expansion on the related object. The engine resolves expand via batch $in queries (driver-agnostic) with a default max depth of 3.`)})),hG=Q(()=>R().min(2,{message:`System identifier must be at least 2 characters`}).regex(/^[a-z][a-z0-9_.]*$/,{message:`System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., "user_profile" or "order.created")`}).describe(`System identifier (lowercase with underscores or dots)`)),gG=Q(()=>R().min(2,{message:`Identifier must be at least 2 characters`}).regex(/^[a-z][a-z0-9_]*$/,{message:`Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., "user_profile")`}).describe(`Snake case identifier (lowercase with underscores only)`));Q(()=>R().min(3,{message:`Event name must be at least 3 characters`}).regex(/^[a-z][a-z0-9_.]*$/,{message:`Event name must be lowercase with dots for namespacing (e.g., "user.created", "order.paid")`}).describe(`Event name (lowercase with dot notation for namespacing)`));var _G=N([`cel`,`js`,`cron`,`template`]),vG=B({rationale:R().optional(),generatedBy:R().optional()}),yG=B({dialect:_G,source:R().min(1).optional(),ast:z().optional(),meta:vG.optional()}).refine(e=>e.source!==void 0||e.ast!==void 0,{message:"Expression requires at least one of `source` or `ast`"}),bG=V([R().min(1).transform(e=>({dialect:`cel`,source:e})),yG]);V([R().min(1).transform(e=>({dialect:`cron`,source:e})),yG]);var xG=V([R().min(1).transform(e=>({dialect:`template`,source:e})),yG]),SG=Q(()=>N([`aes-256-gcm`,`aes-256-cbc`,`chacha20-poly1305`]).describe(`Supported encryption algorithm`)),CG=Q(()=>N([`local`,`aws-kms`,`azure-key-vault`,`gcp-kms`,`hashicorp-vault`]).describe(`Key management service provider`)),wG=Q(()=>B({enabled:H().default(!1).describe(`Enable automatic key rotation`),frequencyDays:I().min(1).default(90).describe(`Rotation frequency in days`),retainOldVersions:I().default(3).describe(`Number of old key versions to retain`),autoRotate:H().default(!0).describe(`Automatically rotate without manual approval`)}).describe(`Policy for automatic encryption key rotation`)),TG=Q(()=>B({enabled:H().default(!1).describe(`Enable field-level encryption`),algorithm:SG.default(`aes-256-gcm`).describe(`Encryption algorithm`),keyManagement:B({provider:CG.describe(`Key management service provider`),keyId:R().optional().describe(`Key identifier in the provider`),rotationPolicy:wG.optional().describe(`Key rotation policy`)}).describe(`Key management configuration`),scope:N([`field`,`record`,`table`,`database`]).describe(`Encryption scope level`),deterministicEncryption:H().default(!1).describe(`Allows equality queries on encrypted data`),searchableEncryption:H().default(!1).describe(`Allows search on encrypted data`)}).describe(`Field-level encryption configuration`));Q(()=>B({fieldName:R().describe(`Name of the field to encrypt`),encryptionConfig:TG.describe(`Encryption settings for this field`),indexable:H().default(!1).describe(`Allow indexing on encrypted field`)}).describe(`Per-field encryption assignment`));var EG=Q(()=>N([`redact`,`partial`,`hash`,`tokenize`,`randomize`,`nullify`,`substitute`]).describe(`Data masking strategy for PII protection`)),DG=Q(()=>B({field:R().describe(`Field name to apply masking to`),strategy:EG.describe(`Masking strategy to use`),pattern:R().optional().describe(`Regex pattern for partial masking`),preserveFormat:H().default(!0).describe(`Keep the original data format after masking`),preserveLength:H().default(!0).describe(`Keep the original data length after masking`),roles:U(R()).optional().describe(`Roles that see masked data`),exemptRoles:U(R()).optional().describe(`Roles that see unmasked data`)}).describe(`Masking rule for a single field`));Q(()=>B({enabled:H().default(!1).describe(`Enable data masking`),rules:U(DG).describe(`List of field-level masking rules`),auditUnmasking:H().default(!0).describe(`Log when masked data is accessed unmasked`)}).describe(`Top-level data masking configuration for PII protection`));var OG=N(`text.textarea.email.url.phone.password.markdown.html.richtext.number.currency.percent.date.datetime.time.boolean.toggle.select.multiselect.radio.checkboxes.lookup.master_detail.tree.image.file.avatar.video.audio.formula.summary.autonumber.location.address.code.json.color.rating.slider.signature.qrcode.progress.tags.vector`.split(`.`)),kG=Q(()=>B({label:R().describe(`Display label (human-readable, any case allowed)`),value:hG.describe(`Stored value (lowercase machine identifier)`),color:R().optional().describe(`Color code for badges/charts`),default:H().optional().describe(`Is default option`)}));Q(()=>B({latitude:I().min(-90).max(90).describe(`Latitude coordinate`),longitude:I().min(-180).max(180).describe(`Longitude coordinate`),altitude:I().optional().describe(`Altitude in meters`),accuracy:I().optional().describe(`Accuracy in meters`)}));var AG=Q(()=>B({precision:I().int().min(0).max(10).default(2).describe(`Decimal precision (default: 2)`),currencyMode:N([`dynamic`,`fixed`]).default(`dynamic`).describe(`Currency mode: dynamic (user selectable) or fixed (single currency)`),defaultCurrency:R().length(3).default(`CNY`).describe(`Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)`)}));Q(()=>B({value:I().describe(`Monetary amount`),currency:R().length(3).describe(`Currency code (ISO 4217)`)})),Q(()=>B({street:R().optional().describe(`Street address`),city:R().optional().describe(`City name`),state:R().optional().describe(`State/Province`),postalCode:R().optional().describe(`Postal/ZIP code`),country:R().optional().describe(`Country name or code`),countryCode:R().optional().describe(`ISO country code (e.g., US, GB)`),formatted:R().optional().describe(`Formatted address string`)}));var jG=Q(()=>B({dimensions:I().int().min(1).max(1e4).describe(`Vector dimensionality (e.g., 1536 for OpenAI embeddings)`),distanceMetric:N([`cosine`,`euclidean`,`dotProduct`,`manhattan`]).default(`cosine`).describe(`Distance/similarity metric for vector search`),normalized:H().default(!1).describe(`Whether vectors are normalized (unit length)`),indexed:H().default(!0).describe(`Whether to create a vector index for fast similarity search`),indexType:N([`hnsw`,`ivfflat`,`flat`]).optional().describe(`Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)`)})),MG=Q(()=>B({minSize:I().min(0).optional().describe(`Minimum file size in bytes`),maxSize:I().min(1).optional().describe(`Maximum file size in bytes (e.g., 10485760 = 10MB)`),allowedTypes:U(R()).optional().describe(`Allowed file extensions (e.g., [".pdf", ".docx", ".jpg"])`),blockedTypes:U(R()).optional().describe(`Blocked file extensions (e.g., [".exe", ".bat", ".sh"])`),allowedMimeTypes:U(R()).optional().describe(`Allowed MIME types (e.g., ["image/jpeg", "application/pdf"])`),blockedMimeTypes:U(R()).optional().describe(`Blocked MIME types`),virusScan:H().default(!1).describe(`Enable virus scanning for uploaded files`),virusScanProvider:N([`clamav`,`virustotal`,`metadefender`,`custom`]).optional().describe(`Virus scanning service provider`),virusScanOnUpload:H().default(!0).describe(`Scan files immediately on upload`),quarantineOnThreat:H().default(!0).describe(`Quarantine files if threat detected`),storageProvider:R().optional().describe(`Object storage provider name (references ObjectStorageConfig)`),storageBucket:R().optional().describe(`Target bucket name`),storagePrefix:R().optional().describe(`Storage path prefix (e.g., "uploads/documents/")`),imageValidation:B({minWidth:I().min(1).optional().describe(`Minimum image width in pixels`),maxWidth:I().min(1).optional().describe(`Maximum image width in pixels`),minHeight:I().min(1).optional().describe(`Minimum image height in pixels`),maxHeight:I().min(1).optional().describe(`Maximum image height in pixels`),aspectRatio:R().optional().describe(`Required aspect ratio (e.g., "16:9", "1:1")`),generateThumbnails:H().default(!1).describe(`Auto-generate thumbnails`),thumbnailSizes:U(B({name:R().describe(`Thumbnail variant name (e.g., "small", "medium", "large")`),width:I().min(1).describe(`Thumbnail width in pixels`),height:I().min(1).describe(`Thumbnail height in pixels`),crop:H().default(!1).describe(`Crop to exact dimensions`)})).optional().describe(`Thumbnail size configurations`),preserveMetadata:H().default(!1).describe(`Preserve EXIF metadata`),autoRotate:H().default(!0).describe(`Auto-rotate based on EXIF orientation`)}).optional().describe(`Image-specific validation rules`),allowMultiple:H().default(!1).describe(`Allow multiple file uploads (overrides field.multiple)`),allowReplace:H().default(!0).describe(`Allow replacing existing files`),allowDelete:H().default(!0).describe(`Allow deleting uploaded files`),requireUpload:H().default(!1).describe(`Require at least one file when field is required`),extractMetadata:H().default(!0).describe(`Extract file metadata (name, size, type, etc.)`),extractText:H().default(!1).describe(`Extract text content from documents (OCR/parsing)`),versioningEnabled:H().default(!1).describe(`Keep previous versions of replaced files`),maxVersions:I().min(1).optional().describe(`Maximum number of versions to retain`),publicRead:H().default(!1).describe(`Allow public read access to uploaded files`),presignedUrlExpiry:I().min(60).max(604800).default(3600).describe(`Presigned URL expiration in seconds (default: 1 hour)`)}).refine(e=>!(e.minSize!==void 0&&e.maxSize!==void 0&&e.minSize>e.maxSize),{message:`minSize must be less than or equal to maxSize`}).refine(e=>!(e.virusScanProvider!==void 0&&e.virusScan!==!0),{message:`virusScanProvider requires virusScan to be enabled`})),NG=Q(()=>B({uniqueness:H().default(!1).describe(`Enforce unique values across all records`),completeness:I().min(0).max(1).default(0).describe(`Minimum ratio of non-null values (0-1, default: 0 = no requirement)`),accuracy:B({source:R().describe(`Reference data source for validation (e.g., "api.verify.com", "master_data")`),threshold:I().min(0).max(1).describe(`Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)`)}).optional().describe(`Accuracy validation configuration`)})),PG=Q(()=>B({enabled:H().describe(`Enable caching for computed field results`),ttl:I().min(0).describe(`Cache TTL in seconds (0 = no expiration)`),invalidateOn:U(R()).describe(`Field paths that invalidate cache (e.g., ["inventory.quantity", "pricing.base_price"])`)})),FG=Q(()=>B({name:R().regex(/^[a-z_][a-z0-9_]*$/).describe(`Machine name (snake_case)`).optional(),label:R().optional().describe(`Human readable label`),type:OG.describe(`Field Data Type`),description:R().optional().describe(`Tooltip/Help text`),format:R().optional().describe(`Format string (e.g. email, phone)`),columnName:R().optional().describe(`Physical column name in the target datasource. Defaults to the field key when not set.`),required:H().default(!1).describe(`Is required`),searchable:H().default(!1).describe(`Is searchable`),multiple:H().default(!1).describe(`Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image.`),unique:H().default(!1).describe(`Is unique constraint`),defaultValue:z().optional().describe(`Default value`),maxLength:I().optional().describe(`Max character length`),minLength:I().optional().describe(`Min character length`),precision:I().optional().describe(`Total digits`),scale:I().optional().describe(`Decimal places`),min:I().optional().describe(`Minimum value`),max:I().optional().describe(`Maximum value`),options:U(kG).optional().describe(`Static options for select/multiselect`),reference:R().optional().describe(`Target object name (snake_case) for lookup/master_detail fields. Required for relationship types. Used by $expand to resolve foreign key IDs into full objects.`),referenceFilters:U(R()).optional().describe(`Filters applied to lookup dialogs (e.g. "active = true")`),writeRequiresMasterRead:H().optional().describe(`If true, user needs read access to master record to edit this field`),deleteBehavior:N([`set_null`,`cascade`,`restrict`]).optional().default(`set_null`).describe(`What happens if referenced record is deleted`),expression:bG.optional().describe("Formula expression (CEL). e.g. F`record.amount * 0.1`"),summaryOperations:B({object:R().describe(`Source child object name for roll-up`),field:R().describe(`Field on child object to aggregate`),function:N([`count`,`sum`,`min`,`max`,`avg`]).describe(`Aggregation function to apply`)}).optional().describe(`Roll-up summary definition`),language:R().optional().describe(`Programming language for syntax highlighting (e.g., javascript, python, sql)`),theme:R().optional().describe(`Code editor theme (e.g., dark, light, monokai)`),lineNumbers:H().optional().describe(`Show line numbers in code editor`),maxRating:I().optional().describe(`Maximum rating value (default: 5)`),allowHalf:H().optional().describe(`Allow half-star ratings`),displayMap:H().optional().describe(`Display map widget for location field`),allowGeocoding:H().optional().describe(`Allow address-to-coordinate conversion`),addressFormat:N([`us`,`uk`,`international`]).optional().describe(`Address format template`),colorFormat:N([`hex`,`rgb`,`rgba`,`hsl`]).optional().describe(`Color value format`),allowAlpha:H().optional().describe(`Allow transparency/alpha channel`),presetColors:U(R()).optional().describe(`Preset color options`),step:I().optional().describe(`Step increment for slider (default: 1)`),showValue:H().optional().describe(`Display current value on slider`),marks:L(R(),R()).optional().describe(`Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})`),barcodeFormat:N([`qr`,`ean13`,`ean8`,`code128`,`code39`,`upca`,`upce`]).optional().describe(`Barcode format type`),qrErrorCorrection:N([`L`,`M`,`Q`,`H`]).optional().describe(`QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is "qr"`),displayValue:H().optional().describe(`Display human-readable value below barcode/QR code`),allowScanning:H().optional().describe(`Enable camera scanning for barcode/QR code input`),currencyConfig:AG.optional().describe(`Configuration for currency field type`),vectorConfig:jG.optional().describe(`Configuration for vector field type (AI/ML embeddings)`),fileAttachmentConfig:MG.optional().describe(`Configuration for file and attachment field types`),encryptionConfig:TG.optional().describe(`Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)`),maskingRule:DG.optional().describe(`Data masking rules for PII protection`),auditTrail:H().default(!1).describe(`Enable detailed audit trail for this field (tracks all changes with user and timestamp)`),dependencies:U(R()).optional().describe(`Array of field names that this field depends on (for formulas, visibility rules, etc.)`),cached:PG.optional().describe(`Caching configuration for computed/formula fields`),dataQuality:NG.optional().describe(`Data quality validation and monitoring rules`),group:R().optional().describe(`Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system")`),conditionalRequired:bG.optional().describe("Predicate (CEL) — field is required when TRUE. e.g. P`record.status == 'closed_won'`"),hidden:H().default(!1).describe(`Hidden from default UI`),readonly:H().default(!1).describe(`Read-only in UI`),system:H().optional().describe(`Auto-injected system/audit field (e.g. created_at, updated_by, organization_id). Tools that surface system fields separately from author-declared business fields should branch on this flag.`),sortable:H().optional().default(!0).describe(`Whether field is sortable in list views`),inlineHelpText:R().optional().describe(`Help text displayed below the field in forms`),trackFeedHistory:H().optional().describe(`Track field changes in Chatter/activity feed (Salesforce pattern)`),caseSensitive:H().optional().describe(`Whether text comparisons are case-sensitive`),autonumberFormat:R().optional().describe(`Auto-number display format pattern (e.g., "CASE-{0000}")`),index:H().default(!1).describe(`Create standard database index`),externalId:H().default(!1).describe(`Is external ID for upsert operations`)})),IG=B({name:R().regex(/^[a-z_][a-z0-9_]*$/).describe(`Unique rule name (snake_case)`),label:R().optional().describe(`Human-readable label for the rule listing`),description:R().optional().describe(`Administrative notes explaining the business reason`),active:H().default(!0),events:U(N([`insert`,`update`,`delete`])).default([`insert`,`update`]).describe(`Validation contexts`),priority:I().int().min(0).max(9999).default(100).describe(`Execution priority (lower runs first, default: 100)`),tags:U(R()).optional().describe(`Categorization tags (e.g., "compliance", "billing")`),severity:N([`error`,`warning`,`info`]).default(`error`),message:R().describe(`Error message to display to the user`)}),LG=Q(()=>IG.extend({type:Pe(`script`),condition:bG.describe("Predicate (CEL). If TRUE, validation fails. e.g. P`record.amount < 0`")})),RG=Q(()=>IG.extend({type:Pe(`unique`),fields:U(R()).describe(`Fields that must be combined unique`),scope:bG.optional().describe("Predicate (CEL) limiting uniqueness scope. e.g. P`record.active == true`"),caseSensitive:H().default(!0)})),zG=Q(()=>IG.extend({type:Pe(`state_machine`),field:R().describe(`State field (e.g. status)`),transitions:L(R(),U(R())).describe(`Map of { OldState: [AllowedNewStates] }`)})),BG=Q(()=>IG.extend({type:Pe(`format`),field:R(),regex:R().optional(),format:N([`email`,`url`,`phone`,`json`]).optional()})),VG=Q(()=>IG.extend({type:Pe(`cross_field`),condition:bG.describe("Predicate (CEL) comparing fields. e.g. P`record.end_date > record.start_date`"),fields:U(R()).describe(`Fields involved in the validation`)})),HG=Q(()=>IG.extend({type:Pe(`json_schema`),field:R().describe(`JSON field to validate`),schema:L(R(),z()).describe(`JSON Schema object definition`)})),UG=Q(()=>IG.extend({type:Pe(`async`),field:R().describe(`Field to validate`),validatorUrl:R().optional().describe(`External API endpoint for validation`),method:N([`GET`,`POST`]).default(`GET`).describe(`HTTP method for external call`),headers:L(R(),R()).optional().describe(`Custom headers for the request`),validatorFunction:R().optional().describe(`Reference to custom validator function`),timeout:I().optional().default(5e3).describe(`Timeout in milliseconds`),debounce:I().optional().describe(`Debounce delay in milliseconds`),params:L(R(),z()).optional().describe(`Additional parameters to pass to validator`)})),WG=Q(()=>IG.extend({type:Pe(`custom`),handler:R().describe(`Name of the custom validation function registered in the system`),params:L(R(),z()).optional().describe(`Parameters passed to the custom handler`)})),GG=De(()=>ue(`type`,[LG,RG,zG,BG,VG,HG,UG,WG,KG])),KG=Q(()=>IG.extend({type:Pe(`conditional`),when:bG.describe("Predicate (CEL). e.g. P`record.type == 'enterprise'`"),then:GG.describe(`Validation rule to apply when condition is true`),otherwise:GG.optional().describe(`Validation rule to apply when condition is false`)})),qG=Q(()=>V([R().describe(`Action Name`),B({type:R(),params:L(R(),z()).optional()})])),JG=Q(()=>V([R().describe(`Guard Name (e.g., "isManager", "amountGT1000")`),B({type:R(),params:L(R(),z()).optional()})])),YG=Q(()=>B({target:R().optional().describe(`Target State ID`),cond:JG.optional().describe(`Condition (Guard) required to take this path`),actions:U(qG).optional().describe(`Actions to execute during transition`),description:R().optional().describe(`Human readable description of this rule`)}));Q(()=>B({type:R().describe(`Event Type (e.g. "APPROVE", "REJECT", "Submit")`),schema:L(R(),z()).optional().describe(`Expected event payload structure`)}));var XG=De(()=>B({type:N([`atomic`,`compound`,`parallel`,`final`,`history`]).default(`atomic`),entry:U(qG).optional().describe(`Actions to run when entering this state`),exit:U(qG).optional().describe(`Actions to run when leaving this state`),on:L(R(),V([R(),YG,U(YG)])).optional().describe(`Map of Event Type -> Transition Definition`),always:U(YG).optional(),initial:R().optional().describe(`Initial child state (if compound)`),states:L(R(),XG).optional(),meta:B({label:R().optional(),description:R().optional(),color:R().optional(),aiInstructions:R().optional().describe(`Specific instructions for AI when in this state`)}).optional()})),ZG=Q(()=>B({id:gG.describe(`Unique Machine ID`),description:R().optional(),contextSchema:L(R(),z()).optional().describe(`Zod Schema for the machine context/memory`),initial:R().describe(`Initial State ID`),states:L(R(),XG).describe(`State Nodes`),on:L(R(),V([R(),YG,U(YG)])).optional()}));Q(()=>B({key:R().describe(`Translation key (e.g., "views.task_list.label")`),defaultValue:R().optional().describe(`Fallback value when translation key is not found`),params:L(R(),V([R(),I(),H()])).optional().describe(`Interpolation parameters (e.g., { count: 5 })`)}));var QG=Q(()=>R().describe(`Display label (plain string; i18n keys are auto-generated by the framework)`)),$G=Q(()=>B({ariaLabel:QG.optional().describe(`Accessible label for screen readers (WAI-ARIA aria-label)`),ariaDescribedBy:R().optional().describe(`ID of element providing additional description (WAI-ARIA aria-describedby)`),role:R().optional().describe(`WAI-ARIA role attribute (e.g., "dialog", "navigation", "alert")`)}).describe(`ARIA accessibility attributes`));Q(()=>B({key:R().describe(`Translation key`),zero:R().optional().describe(`Zero form (e.g., "No items")`),one:R().optional().describe(`Singular form (e.g., "{count} item")`),two:R().optional().describe(`Dual form (e.g., "{count} items" for exactly 2)`),few:R().optional().describe(`Few form (e.g., for 2-4 in some languages)`),many:R().optional().describe(`Many form (e.g., for 5+ in some languages)`),other:R().describe(`Default plural form (e.g., "{count} items")`)}).describe(`ICU plural rules for a translation key`));var eK=Q(()=>B({style:N([`decimal`,`currency`,`percent`,`unit`]).default(`decimal`).describe(`Number formatting style`),currency:R().optional().describe(`ISO 4217 currency code (e.g., "USD", "EUR")`),unit:R().optional().describe(`Unit for unit formatting (e.g., "kilometer", "liter")`),minimumFractionDigits:I().optional().describe(`Minimum number of fraction digits`),maximumFractionDigits:I().optional().describe(`Maximum number of fraction digits`),useGrouping:H().optional().describe(`Whether to use grouping separators (e.g., 1,000)`)}).describe(`Number formatting rules`)),tK=Q(()=>B({dateStyle:N([`full`,`long`,`medium`,`short`]).optional().describe(`Date display style`),timeStyle:N([`full`,`long`,`medium`,`short`]).optional().describe(`Time display style`),timeZone:R().optional().describe(`IANA time zone (e.g., "America/New_York")`),hour12:H().optional().describe(`Use 12-hour format`)}).describe(`Date/time formatting rules`));Q(()=>B({code:R().describe(`BCP 47 language code (e.g., "en-US", "zh-CN")`),fallbackChain:U(R()).optional().describe(`Fallback language codes in priority order (e.g., ["zh-TW", "en"])`),direction:N([`ltr`,`rtl`]).default(`ltr`).describe(`Text direction: left-to-right or right-to-left`),numberFormat:eK.optional().describe(`Default number formatting rules`),dateFormat:tK.optional().describe(`Default date/time formatting rules`)}).describe(`Locale configuration`));var nK=N([`api.read`,`api.write`,`crypto.uuid`,`crypto.hash`,`log`]),rK=ue(`language`,[B({language:Pe(`expression`),source:R().min(1).describe(`Formula expression source`)}).describe(`L1 expression body — pure formula, no IO`),B({language:Pe(`js`),source:R().min(1).describe(`Function body source`),capabilities:U(nK).default([]).describe(`Granted capability tokens`),timeoutMs:I().int().positive().max(3e4).optional().describe(`Per-invocation timeout (ms)`),memoryMb:I().int().positive().max(256).optional().describe(`Per-invocation memory cap (MB)`)}).describe(`L2 sandboxed JS body — runs inside an isolated VM with declared capabilities`)]).describe(`Hook/Action body — expression (L1) or sandboxed JS (L2)`),iK=Q(()=>B({name:R().optional(),field:gG.optional(),objectOverride:gG.optional(),label:QG.optional(),type:OG.optional(),required:H().optional().default(!1),options:U(B({label:QG,value:R()})).optional(),placeholder:R().optional(),helpText:R().optional(),defaultValue:z().optional(),defaultFromRow:H().optional()}).refine(e=>!!e.name||!!e.field,{message:`ActionParam requires either "name" or "field"`})),aK=N([`script`,`url`,`modal`,`flow`,`api`,`form`]),oK=new Set(aK.options.filter(e=>e!==`script`)),sK=Q(()=>B({name:gG.describe(`Machine name (lowercase snake_case)`),label:QG.describe(`Display label`),objectName:R().regex(/^[a-z_][a-z0-9_]*$/).optional().describe(`Target object this action belongs to. When set, the action is auto-merged into the object's actions array by defineStack().`),icon:R().optional().describe(`Icon name`),locations:U(N([`list_toolbar`,`list_item`,`record_header`,`record_more`,`record_related`,`global_nav`])).optional().describe(`Locations where this action is visible`),component:N([`action:button`,`action:icon`,`action:menu`,`action:group`]).optional().describe(`Visual component override`),type:aK.default(`script`).describe(`Action functionality type`),target:R().optional().describe(`URL, Script Name, Flow ID, or API Endpoint`),body:rK.optional().describe("Action body — expression (L1) or sandboxed JS (L2). Only used when type is `script`."),execute:R().optional().describe(`@deprecated — Use target instead. Auto-migrated to target during parsing.`),params:U(iK).optional().describe(`Input parameters required from user`),variant:N([`primary`,`secondary`,`danger`,`ghost`,`link`]).optional().describe(`Button visual variant for styling (primary = highlighted, danger = destructive, ghost = transparent)`),confirmText:QG.optional().describe(`Confirmation message before execution`),successMessage:QG.optional().describe(`Success message to show after execution`),refreshAfter:H().default(!1).describe(`Refresh view after execution`),visible:bG.optional().describe(`Visibility predicate (CEL).`),disabled:V([H(),bG]).optional().describe(`Boolean or predicate (CEL) — action is disabled when TRUE.`),shortcut:R().optional().describe(`Keyboard shortcut to trigger this action (e.g., "Ctrl+S")`),bulkEnabled:H().optional().describe(`Whether this action can be applied to multiple selected records`),recordIdParam:R().optional().describe(`Body key to inject the row id into when running from a list_item context.`),recordIdField:R().optional().describe(`Row field whose value seeds recordIdParam. Defaults to "id".`),bodyShape:V([Pe(`flat`),B({wrap:R()})]).optional().describe(`Body wrapping: flat (default) or { wrap: key } to nest user-collected params under a key.`),method:N([`POST`,`PATCH`,`PUT`,`DELETE`]).optional().describe(`HTTP method for type:"api" actions. Defaults to POST.`),bodyExtra:L(R(),z()).optional().describe(`Constant body fields merged into the API request (applied last; overrides user params).`),mode:N([`create`,`edit`,`delete`,`custom`]).optional().describe(`Semantic mode of the action.`),timeout:I().optional().describe(`Maximum execution time in milliseconds for the action`),aria:$G.optional().describe(`ARIA accessibility attributes`)}).transform(e=>e.execute&&!e.target?{...e,target:e.execute}:e).refine(e=>!(oK.has(e.type)&&!e.target),{message:`Action 'target' is required when type is 'url', 'flow', 'modal', 'api', or 'form'.`,path:[`target`]})),cK=Q(()=>B({enabled:H().default(!1).describe(`Enable public sharing`),publicLink:R().optional().describe(`Generated public share URL`),password:R().optional().describe(`Password required to access shared link`),allowedDomains:U(R()).optional().describe(`Restrict access to specific email domains (e.g. ["example.com"])`),expiresAt:R().optional().describe(`Expiration date/time in ISO 8601 format`),allowAnonymous:H().optional().default(!1).describe(`Allow access without authentication`)}));Q(()=>B({enabled:H().default(!1).describe(`Enable iframe embedding`),allowedOrigins:U(R()).optional().describe(`Allowed iframe parent origins (e.g. ["https://example.com"])`),width:R().optional().default(`100%`).describe(`Embed width (CSS value)`),height:R().optional().default(`600px`).describe(`Embed height (CSS value)`),showHeader:H().optional().default(!0).describe(`Show interface header in embed`),showNavigation:H().optional().default(!1).describe(`Show navigation in embed`),responsive:H().optional().default(!0).describe(`Enable responsive resizing`)}));var lK=N([`xs`,`sm`,`md`,`lg`,`xl`,`2xl`]),uK=Q(()=>B({xs:I().min(1).max(12).optional(),sm:I().min(1).max(12).optional(),md:I().min(1).max(12).optional(),lg:I().min(1).max(12).optional(),xl:I().min(1).max(12).optional(),"2xl":I().min(1).max(12).optional()}).describe(`Grid columns per breakpoint (1-12)`)),dK=Q(()=>B({xs:I().optional(),sm:I().optional(),md:I().optional(),lg:I().optional(),xl:I().optional(),"2xl":I().optional()}).describe(`Display order per breakpoint`)),fK=Q(()=>B({breakpoint:lK.optional().describe(`Minimum breakpoint for visibility`),hiddenOn:U(lK).optional().describe(`Hide on these breakpoints`),columns:uK.optional().describe(`Grid columns per breakpoint`),order:dK.optional().describe(`Display order per breakpoint`)}).describe(`Responsive layout configuration`)),pK=Q(()=>B({lazyLoad:H().optional().describe(`Enable lazy loading (defer rendering until visible)`),virtualScroll:B({enabled:H().default(!1).describe(`Enable virtual scrolling`),itemHeight:I().optional().describe(`Fixed item height in pixels (for estimation)`),overscan:I().optional().describe(`Number of extra items to render outside viewport`)}).optional().describe(`Virtual scrolling configuration`),cacheStrategy:N([`none`,`cache-first`,`network-first`,`stale-while-revalidate`]).optional().describe(`Client-side data caching strategy`),prefetch:H().optional().describe(`Prefetch data before component is visible`),pageSize:I().optional().describe(`Number of items per page for pagination`),debounceMs:I().optional().describe(`Debounce interval for user interactions in milliseconds`)}).describe(`Performance optimization configuration`)),mK=N([`GET`,`POST`,`PUT`,`DELETE`,`PATCH`,`HEAD`,`OPTIONS`]),hK=Q(()=>N([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`])),gK=Q(()=>B({url:R().describe(`API endpoint URL`),method:hK.optional().default(`GET`).describe(`HTTP method`),headers:L(R(),R()).optional().describe(`Custom HTTP headers`),params:L(R(),z()).optional().describe(`Query parameters`),body:z().optional().describe(`Request body for POST/PUT/PATCH`)}));Q(()=>B({enabled:H().default(!0).describe(`Enable CORS`),origins:V([R(),U(R())]).default(`*`).describe(`Allowed origins (* for all)`),methods:U(mK).optional().describe(`Allowed HTTP methods`),credentials:H().default(!1).describe(`Allow credentials (cookies, authorization headers)`),maxAge:I().int().optional().describe(`Preflight cache duration in seconds`)})),Q(()=>B({enabled:H().default(!1).describe(`Enable rate limiting`),windowMs:I().int().default(6e4).describe(`Time window in milliseconds`),maxRequests:I().int().default(100).describe(`Max requests per window`)})),Q(()=>B({path:R().describe(`URL path to serve from`),directory:R().describe(`Physical directory to serve`),cacheControl:R().optional().describe(`Cache-Control header value`)}));var _K=Q(()=>ue(`provider`,[B({provider:Pe(`object`),object:R().describe(`Target object name`)}),B({provider:Pe(`api`),read:gK.optional().describe(`Configuration for fetching data`),write:gK.optional().describe(`Configuration for submitting data (for forms/editable tables)`)}),B({provider:Pe(`value`),items:U(z()).describe(`Static data array`)})])),vK=Q(()=>B({field:R().describe(`Field name to filter on`),operator:R().describe(`Filter operator (e.g. equals, not_equals, contains, this_quarter)`),value:V([R(),I(),H(),O(),U(V([R(),I()]))]).optional().describe(`Filter value`)}).describe(`View filter rule`)),yK=Q(()=>N([`none`,`count`,`count_empty`,`count_filled`,`count_unique`,`percent_empty`,`percent_filled`,`sum`,`avg`,`min`,`max`]).describe(`Aggregation function for column footer summary`)),bK=Q(()=>B({field:R().describe(`Field name (snake_case)`),label:QG.optional().describe(`Display label override`),width:I().positive().optional().describe(`Column width in pixels`),align:N([`left`,`center`,`right`]).optional().describe(`Text alignment`),hidden:H().optional().describe(`Hide column by default`),sortable:H().optional().describe(`Allow sorting by this column`),resizable:H().optional().describe(`Allow resizing this column`),wrap:H().optional().describe(`Allow text wrapping`),type:R().optional().describe(`Renderer type override (e.g., "currency", "date")`),pinned:N([`left`,`right`]).optional().describe(`Pin/freeze column to left or right side`),summary:yK.optional().describe(`Footer aggregation function for this column`),link:H().optional().describe(`Functions as the primary navigation link (triggers View navigation)`),action:R().optional().describe(`Registered Action ID to execute when clicked`)})),xK=Q(()=>B({type:N([`none`,`single`,`multiple`]).default(`none`).describe(`Selection mode`)})),SK=Q(()=>B({pageSize:I().int().positive().default(25).describe(`Number of records per page`),pageSizeOptions:U(I().int().positive()).optional().describe(`Available page size options`)})),CK=Q(()=>N([`compact`,`short`,`medium`,`tall`,`extra_tall`]).describe(`Row height / density setting for list view`)),wK=Q(()=>B({field:R().describe(`Field name to group by`),order:N([`asc`,`desc`]).default(`asc`).describe(`Group sort order`),collapsed:H().default(!1).describe(`Collapse groups by default`)})),TK=Q(()=>B({fields:U(wK).min(1).describe(`Fields to group by (supports up to 3 levels)`)}).describe(`Record grouping configuration`)),EK=Q(()=>B({coverField:R().optional().describe(`Attachment/image field to display as card cover`),coverFit:N([`cover`,`contain`]).default(`cover`).describe(`Image fit mode for card cover`),cardSize:N([`small`,`medium`,`large`]).default(`medium`).describe(`Card size in gallery view`),titleField:R().optional().describe(`Field to display as card title`),visibleFields:U(R()).optional().describe(`Fields to display on card body`)}).describe(`Gallery/card view configuration`)),DK=Q(()=>B({startDateField:R().describe(`Field for timeline item start date`),endDateField:R().optional().describe(`Field for timeline item end date`),titleField:R().describe(`Field to display as timeline item title`),groupByField:R().optional().describe(`Field to group timeline rows`),colorField:R().optional().describe(`Field to determine item color`),scale:N([`hour`,`day`,`week`,`month`,`quarter`,`year`]).default(`week`).describe(`Default timeline scale`)}).describe(`Timeline view configuration`)),OK=Q(()=>B({type:N([`personal`,`collaborative`]).default(`collaborative`).describe(`View ownership type`),lockedBy:R().optional().describe(`User who locked the view configuration`)}).describe(`View sharing and access configuration`)),kK=Q(()=>B({field:R().describe(`Field to derive color from (typically a select/status field)`),colors:L(R(),R()).optional().describe(`Map of field value to color (hex/token)`)}).describe(`Row color configuration based on field values`)),AK=Q(()=>N([`grid`,`kanban`,`gallery`,`calendar`,`timeline`,`gantt`,`map`]).describe(`Visualization type that users can switch to`)),jK=Q(()=>B({sort:H().default(!0).describe(`Allow users to sort records`),search:H().default(!0).describe(`Allow users to search records`),filter:H().default(!0).describe(`Allow users to filter records`),rowHeight:H().default(!0).describe(`Allow users to toggle row height/density`),addRecordForm:H().default(!1).describe(`Add records through a form instead of inline`),buttons:U(R()).optional().describe(`Custom action button IDs to show in the toolbar`)}).describe(`User action toggles for the view toolbar`)),MK=Q(()=>B({showDescription:H().default(!0).describe(`Show the view description text`),allowedVisualizations:U(AK).optional().describe(`Whitelist of visualization types users can switch between (e.g. ["grid", "gallery", "kanban"])`)}).describe(`Appearance and visualization configuration`)),NK=Q(()=>B({name:gG.describe(`Tab identifier (snake_case)`),label:QG.optional().describe(`Display label`),icon:R().optional().describe(`Tab icon name`),view:R().optional().describe(`Referenced list view name from listViews`),filter:U(vK).optional().describe(`Tab-specific filter criteria`),order:I().int().min(0).optional().describe(`Tab display order`),pinned:H().default(!1).describe(`Pin tab (cannot be removed by users)`),isDefault:H().default(!1).describe(`Set as the default active tab`),visible:H().default(!0).describe(`Tab visibility`)}).describe(`Tab configuration for multi-tab view interface`)),PK=Q(()=>B({enabled:H().default(!0).describe(`Show the add record entry point`),position:N([`top`,`bottom`,`both`]).default(`bottom`).describe(`Position of the add record button`),mode:N([`inline`,`form`,`modal`]).default(`inline`).describe(`How to add a new record`),formView:R().optional().describe(`Named form view to use when mode is "form" or "modal"`)}).describe(`Add record entry point configuration`)),FK=Q(()=>B({groupByField:R().describe(`Field to group columns by (usually status/select)`),summarizeField:R().optional().describe(`Field to sum at top of column (e.g. amount)`),columns:U(R()).describe(`Fields to show on cards`)})),IK=Q(()=>B({chartType:N([`bar`,`line`,`pie`,`area`,`scatter`]).default(`bar`).describe(`Chart visualisation type`),xAxisField:R().describe(`Field used as the X axis / category dimension`),yAxisFields:U(R()).min(1).describe(`Field(s) used as the Y axis / measures`),aggregation:N([`sum`,`avg`,`count`,`min`,`max`]).optional().describe(`Aggregation function applied to Y axis fields`),groupByField:R().optional().describe(`Optional field used to split / stack the chart`)}).describe(`List chart view configuration`)),LK=Q(()=>B({startDateField:R(),endDateField:R().optional(),titleField:R(),colorField:R().optional()})),RK=Q(()=>B({startDateField:R(),endDateField:R(),titleField:R(),progressField:R().optional(),dependenciesField:R().optional()})),zK=Q(()=>N([`page`,`drawer`,`modal`,`split`,`popover`,`new_window`,`none`])),BK=Q(()=>B({mode:zK.default(`page`),view:R().optional().describe(`Name of the form view to use for details (e.g. "summary_view", "edit_form")`),preventNavigation:H().default(!1).describe(`Disable standard navigation entirely`),openNewTab:H().default(!1).describe(`Force open in new tab (applies to page mode)`),width:V([R(),I()]).optional().describe(`Width of the drawer/modal (e.g. "600px", "50%")`)})),VK=Q(()=>B({name:gG.optional().describe(`Internal view name (lowercase snake_case)`),label:QG.optional(),type:N([`grid`,`kanban`,`gallery`,`calendar`,`timeline`,`gantt`,`map`,`chart`]).default(`grid`),data:_K.optional().describe(`Data source configuration (defaults to "object" provider)`),columns:V([U(R()),U(bK)]).describe(`Fields to display as columns`),filter:U(vK).optional().describe(`Filter criteria (JSON Rules)`),sort:V([R(),U(B({field:R(),order:N([`asc`,`desc`])}))]).optional(),searchableFields:U(R()).optional().describe(`Fields enabled for search`),filterableFields:U(R()).optional().describe(`Fields enabled for end-user filtering in the top bar`),resizable:H().optional().describe(`Enable column resizing`),striped:H().optional().describe(`Striped row styling`),bordered:H().optional().describe(`Show borders`),compactToolbar:H().optional().describe(`Collapse Group/Color/Density/Hide-fields into a single View settings popover`),selection:xK.optional().describe(`Row selection configuration`),navigation:BK.optional().describe(`Configuration for item click navigation (page, drawer, modal, etc.)`),pagination:SK.optional().describe(`Pagination configuration`),kanban:FK.optional(),calendar:LK.optional(),gantt:RK.optional(),gallery:EK.optional(),timeline:DK.optional(),chart:IK.optional(),description:QG.optional().describe(`View description for documentation/tooltips`),sharing:OK.optional().describe(`View sharing and access configuration`),rowHeight:CK.optional().describe(`Row height / density setting`),grouping:TK.optional().describe(`Group records by one or more fields`),rowColor:kK.optional().describe(`Color rows based on field value`),hiddenFields:U(R()).optional().describe(`Fields to hide in this specific view`),fieldOrder:U(R()).optional().describe(`Explicit field display order for this view`),rowActions:U(R()).optional().describe(`Actions available for individual row items`),bulkActions:U(R()).optional().describe(`Actions available when multiple rows are selected`),bulkActionDefs:U(L(R(),_e())).optional().describe(`Rich bulk action definitions (schema-driven, executed via BulkActionDialog)`),virtualScroll:H().optional().describe(`Enable virtual scrolling for large datasets`),conditionalFormatting:U(B({condition:bG.describe(`Predicate (CEL) to evaluate.`),style:L(R(),R()).describe(`CSS styles to apply when condition is true`)})).optional().describe(`Conditional formatting rules for list rows`),inlineEdit:H().optional().describe(`Allow inline editing of records directly in the list view`),exportOptions:U(N([`csv`,`xlsx`,`pdf`,`json`])).optional().describe(`Available export format options`),userActions:jK.optional().describe(`User action toggles for the view toolbar`),appearance:MK.optional().describe(`Appearance and visualization configuration`),tabs:U(NK).optional().describe(`Tab definitions for multi-tab view interface`),addRecord:PK.optional().describe(`Add record entry point configuration`),showRecordCount:H().optional().describe(`Show record count at the bottom of the list`),allowPrinting:H().optional().describe(`Allow users to print the view`),emptyState:B({title:QG.optional(),message:QG.optional(),icon:R().optional()}).optional().describe(`Empty state configuration when no records found`),aria:$G.optional().describe(`ARIA accessibility attributes for the list view`),responsive:fK.optional().describe(`Responsive layout configuration`),performance:pK.optional().describe(`Performance optimization settings`)})),HK=Q(()=>B({field:R().describe(`Field name (snake_case)`),label:QG.optional().describe(`Display label override`),placeholder:QG.optional().describe(`Placeholder text`),helpText:QG.optional().describe(`Help/hint text`),readonly:H().optional().describe(`Read-only override`),required:H().optional().describe(`Required override`),hidden:H().optional().describe(`Hidden override`),colSpan:I().int().min(1).max(4).optional().describe(`Column span in grid layout (1-4)`),widget:R().optional().describe(`Custom widget/component name`),dependsOn:R().optional().describe(`Parent field name for cascading`),visibleOn:bG.optional().describe(`Visibility predicate (CEL).`)})),UK=Q(()=>B({label:QG.optional(),collapsible:H().default(!1),collapsed:H().default(!1),columns:V([N([`1`,`2`,`3`,`4`]),Pe(1),Pe(2),Pe(3),Pe(4)]).default(2).transform(e=>typeof e==`string`?parseInt(e):e),fields:U(V([R(),HK]))})),WK=Q(()=>B({type:N([`simple`,`tabbed`,`wizard`,`split`,`drawer`,`modal`]).default(`simple`),data:_K.optional().describe(`Data source configuration (defaults to "object" provider)`),sections:U(UK).optional(),groups:U(UK).optional(),defaultSort:U(B({field:R().describe(`Field name to sort by`),order:N([`asc`,`desc`]).default(`desc`).describe(`Sort direction`)})).optional().describe(`Default sort order for related list views within this form`),sharing:cK.optional().describe(`Public sharing configuration for this form`),submitBehavior:V([B({kind:Pe(`thank-you`),title:R().optional(),message:R().optional()}),B({kind:Pe(`redirect`),url:R(),delayMs:I().int().min(0).optional()}),B({kind:Pe(`continue`)}),B({kind:Pe(`next-record`)})]).optional().describe(`Post-submit behavior`),aria:$G.optional().describe(`ARIA accessibility attributes for the form view`)}));Q(()=>B({list:VK.optional(),form:WK.optional(),listViews:L(R(),VK).optional().describe(`Additional named list views`),formViews:L(R(),WK).optional().describe(`Additional named form views`)}));var GK=N([`get`,`list`,`create`,`update`,`delete`,`upsert`,`bulk`,`aggregate`,`history`,`search`,`restore`,`purge`,`import`,`export`]),KK=B({trackHistory:H().default(!1).describe(`Enable field history tracking for audit compliance`),searchable:H().default(!0).describe(`Index records for global search`),apiEnabled:H().default(!0).describe(`Expose object via automatic APIs`),apiMethods:U(GK).optional().describe(`Whitelist of allowed API operations`),files:H().default(!1).describe(`Enable file attachments and document management`),feeds:H().default(!1).describe(`Enable social feed, comments, and mentions (Chatter-like)`),activities:H().default(!1).describe(`Enable standard tasks and events tracking`),trash:H().default(!0).describe(`Enable soft-delete with restore capability`),mru:H().default(!0).describe(`Track Most Recently Used (MRU) list for users`),clone:H().default(!0).describe(`Allow record deep cloning`)}),qK=Q(()=>B({name:R().optional().describe(`Index name (auto-generated if not provided)`),fields:U(R()).describe(`Fields included in the index`),type:N([`btree`,`hash`,`gin`,`gist`,`fulltext`]).optional().default(`btree`).describe(`Index algorithm type`),unique:H().optional().default(!1).describe(`Whether the index enforces uniqueness`),partial:R().optional().describe(`Partial index condition (SQL WHERE clause for conditional indexes)`)})),JK=Q(()=>B({fields:U(R()).describe(`Fields to index for full-text search weighting`),displayFields:U(R()).optional().describe(`Fields to display in search result cards`),filters:U(R()).optional().describe(`Default filters for search results`)})),YK=Q(()=>B({enabled:H().describe(`Enable multi-tenancy for this object`),strategy:N([`shared`,`isolated`,`hybrid`]).describe(`Tenant isolation strategy: shared (single DB, row-level), isolated (separate DB per tenant), hybrid (mix)`),tenantField:R().default(`tenant_id`).describe(`Field name for tenant identifier`),crossTenantAccess:H().default(!1).describe(`Allow cross-tenant data access (with explicit permission)`)})),XK=Q(()=>B({enabled:H().describe(`Enable soft delete (trash/recycle bin)`),field:R().default(`deleted_at`).describe(`Field name for soft delete timestamp`),cascadeDelete:H().default(!1).describe(`Cascade soft delete to related records`)})),ZK=Q(()=>B({enabled:H().describe(`Enable record versioning`),strategy:N([`snapshot`,`delta`,`event-sourcing`]).describe(`Versioning strategy: snapshot (full copy), delta (changes only), event-sourcing (event log)`),retentionDays:I().min(1).optional().describe(`Number of days to retain old versions (undefined = infinite)`),versionField:R().default(`version`).describe(`Field name for version number/timestamp`)})),QK=Q(()=>B({enabled:H().describe(`Enable table partitioning`),strategy:N([`range`,`hash`,`list`]).describe(`Partitioning strategy: range (date ranges), hash (consistent hashing), list (predefined values)`),key:R().describe(`Field name to partition by`),interval:R().optional().describe(`Partition interval for range strategy (e.g., "1 month", "1 year")`)}).refine(e=>!(e.strategy===`range`&&!e.interval),{message:`interval is required when strategy is "range"`})),$K=Q(()=>B({enabled:H().describe(`Enable Change Data Capture`),events:U(N([`insert`,`update`,`delete`])).describe(`Event types to capture`),destination:R().describe(`Destination endpoint (e.g., "kafka://topic", "webhook://url")`)})),eq=Q(()=>B({key:R().regex(/^[a-z_][a-z0-9_]*$/,{message:`Field group key must be lowercase snake_case (e.g., "contact_info", "billing", "system")`}).describe(`Group machine key (snake_case). Referenced by Field.group.`),label:R().describe(`Group display label`),icon:R().optional().describe(`Icon name (Lucide/Material) for the group header`),description:R().optional().describe(`Optional description shown under the group header`),defaultExpanded:H().optional().default(!0).describe(`Whether the group is expanded by default`),visibleOn:bG.optional().describe(`Visibility predicate (CEL); group is hidden when FALSE.`)})),tq=B({name:R().regex(/^[a-z_][a-z0-9_]*$/).describe(`Machine unique key (snake_case). Immutable.`),label:R().optional().describe(`Human readable singular label (e.g. "Account")`),pluralLabel:R().optional().describe(`Human readable plural label (e.g. "Accounts")`),description:R().optional().describe(`Developer documentation / description`),icon:R().optional().describe(`Icon name (Lucide/Material) for UI representation`),tags:U(R()).optional().describe(`Categorization tags (e.g. "sales", "system", "reference")`),active:H().optional().default(!0).describe(`Is the object active and usable`),isSystem:H().optional().default(!1).describe(`Is system object (protected from deletion)`),abstract:H().optional().default(!1).describe(`Is abstract base object (cannot be instantiated)`),managedBy:N([`platform`,`config`,`system`,`append-only`,`better-auth`]).optional().describe(`Lifecycle bucket — platform (user CRUD) | config (admin authored) | system (engine-managed) | append-only (audit) | better-auth (identity). UI clients honour the resolved affordance matrix.`),userActions:B({create:H().optional().describe(`Show generic "New" button.`),import:H().optional().describe(`Show CSV import wizard entry.`),edit:H().optional().describe(`Allow inline / form edit of existing rows.`),delete:H().optional().describe(`Show row-level delete + bulk delete.`),exportCsv:H().optional().describe(`Show CSV export entry.`)}).optional().describe(`Per-object override of the resolved CRUD affordance matrix.`),systemFields:V([Pe(!1),B({tenant:H().optional().describe(`Inject organization_id (multi-tenant only). Default true.`),owner:H().optional().describe(`Reserved for future owner_id auto-injection.`),audit:H().optional().describe(`Reserved for future created_by/updated_by auto-injection.`)})]).optional().describe(`Opt out of, or selectively disable, registry-level system-field auto-injection.`),datasource:R().optional().default(`default`).describe(`Target Datasource ID. "default" is the primary DB.`),fields:L(R().regex(/^[a-z_][a-z0-9_]*$/,{message:`Field names must be lowercase snake_case (e.g., "first_name", "company", "annual_revenue")`}),FG).describe(`Field definitions map. Keys must be snake_case identifiers.`),indexes:U(qK).optional().describe(`Database performance indexes`),fieldGroups:U(eq).refine(e=>new Set(e.map(e=>e.key)).size===e.length,{message:`fieldGroups[].key must be unique within an object`}).optional().describe(`Ordered list of field groups (array order = display order). See ObjectFieldGroupSchema.`),tenancy:YK.optional().describe(`Multi-tenancy configuration for SaaS applications`),softDelete:XK.optional().describe(`Soft delete (trash/recycle bin) configuration`),versioning:ZK.optional().describe(`Record versioning and history tracking configuration`),partitioning:QK.optional().describe(`Table partitioning configuration for performance`),cdc:$K.optional().describe(`Change Data Capture (CDC) configuration for real-time data streaming`),validations:U(GG).optional().describe(`Object-level validation rules`),stateMachines:L(R(),ZG).optional().describe(`Named state machines for parallel lifecycles (e.g., status, payment, approval)`),displayNameField:R().optional().describe(`Field to use as the record display name (e.g., "name", "title"). Defaults to "name" if present.`),recordName:B({type:N([`text`,`autonumber`]).describe(`Record name type: text (user-entered) or autonumber (system-generated)`),displayFormat:R().optional().describe(`Auto-number format pattern (e.g., "CASE-{0000}", "INV-{YYYY}-{0000}")`),startNumber:I().int().min(0).optional().describe(`Starting number for autonumber (default: 1)`)}).optional().describe(`Record name generation configuration (Salesforce pattern)`),titleFormat:xG.optional().describe(`Title template — supports {{record.field}} interpolation. Overrides displayNameField.`),compactLayout:U(R()).optional().describe(`Primary fields for hover/cards/lookups`),listViews:L(R(),VK).optional().describe(`Built-in named list views (segmented tabs) shipped with the object schema`),defaultDetailForm:R().optional().describe(`Name of the default FormView for record detail / edit screens`),search:JK.optional().describe(`Search engine configuration`),enable:KK.optional().describe(`Enabled system features modules`),recordTypes:U(R()).optional().describe(`Record type names for this object`),sharingModel:N([`private`,`read`,`read_write`,`full`]).optional().describe(`Default sharing model`),keyPrefix:R().max(5).optional().describe(`Short prefix for record IDs (e.g., "001" for Account)`),actions:U(sK).optional().describe(`Actions associated with this object (auto-populated from top-level actions via objectName)`)});function nq(e){return e.split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}Q(()=>Object.assign(tq,{create:e=>{let t={...e,label:e.label??nq(e.name)};return tq.parse(t)}})),N([`own`,`extend`]),Q(()=>B({extend:R().describe(`Target object name (FQN) to extend`),fields:L(R(),FG).optional().describe(`Fields to add/override`),label:R().optional().describe(`Override label for the extended object`),pluralLabel:R().optional().describe(`Override plural label for the extended object`),description:R().optional().describe(`Override description for the extended object`),validations:U(GG).optional().describe(`Additional validation rules to merge into the target object`),indexes:U(qK).optional().describe(`Additional indexes to merge into the target object`),priority:I().int().min(0).max(999).default(200).describe(`Merge priority (higher = applied later)`)}));var rq=N([`beforeFind`,`afterFind`,`beforeFindOne`,`afterFindOne`,`beforeCount`,`afterCount`,`beforeAggregate`,`afterAggregate`,`beforeInsert`,`afterInsert`,`beforeUpdate`,`afterUpdate`,`beforeDelete`,`afterDelete`,`beforeUpdateMany`,`afterUpdateMany`,`beforeDeleteMany`,`afterDeleteMany`]);Q(()=>B({name:R().regex(/^[a-z_][a-z0-9_]*$/).describe(`Hook unique name (snake_case)`),label:R().optional().describe(`Description of what this hook does`),object:V([R(),U(R())]).describe(`Target object(s)`),events:U(rq).describe(`Lifecycle events`),handler:V([R(),Ne(e=>typeof e==`function`,{message:`Expected function`})]).optional().describe("Handler function name (string, post-build) or inline function (pre-build) — DEPRECATED, prefer `body`"),body:rK.optional().describe(`Hook body — expression (L1) or sandboxed JS (L2)`),priority:I().default(100).describe(`Execution priority`),async:H().default(!1).describe(`Run specifically as fire-and-forget`),condition:bG.optional().describe('Predicate (CEL); hook runs only when TRUE. e.g. P`record.status == "closed" && record.amount > 1000`'),description:R().optional().describe(`Human-readable description of what this hook does`),retryPolicy:B({maxRetries:I().default(3).describe(`Maximum retry attempts on failure`),backoffMs:I().default(1e3).describe(`Backoff delay between retries in milliseconds`)}).optional().describe(`Retry policy for failed hook executions`),timeout:I().optional().describe(`Maximum execution time in milliseconds before the hook is aborted`),onError:N([`abort`,`log`]).default(`abort`).describe(`Error handling strategy`)})),Q(()=>B({id:R().optional().describe(`Unique execution ID for tracing`),object:R(),event:rq,input:L(R(),z()).describe(`Mutable input parameters`),result:z().optional().describe(`Operation result (After hooks only)`),previous:L(R(),z()).optional().describe(`Record state before operation`),session:B({userId:R().optional(),tenantId:R().optional(),roles:U(R()).optional(),accessToken:R().optional(),isSystem:H().optional().describe(`True when the call was made with an elevated system context (engine self-writes)`)}).optional().describe(`Current session context`),transaction:z().optional().describe(`Database transaction handle`),ql:z().describe(`ObjectQL Engine Reference`),api:z().optional().describe(`Cross-object data access (ScopedContext)`),user:B({id:R().optional(),name:R().optional(),email:R().optional()}).optional().describe(`Current user info shortcut`)}));var iq=N([`none`,`constant`,`lookup`,`split`,`join`,`javascript`,`map`]),aq=Q(()=>B({source:V([R(),U(R())]).describe(`Source column header(s)`),target:V([R(),U(R())]).describe(`Target object field(s)`),transform:iq.default(`none`),params:B({value:z().optional(),object:R().optional(),fromField:R().optional(),toField:R().optional(),autoCreate:H().optional(),valueMap:L(R(),z()).optional(),separator:R().optional()}).optional()}));Q(()=>B({name:gG.describe(`Mapping unique name (lowercase snake_case)`),label:R().optional(),sourceFormat:N([`csv`,`json`,`xml`,`sql`]).default(`csv`),targetObject:R().describe(`Target Object Name`),fieldMapping:U(aq),mode:N([`insert`,`update`,`upsert`]).default(`insert`),upsertKey:U(R()).optional().describe(`Fields to match for upsert (e.g. email)`),extractQuery:mG.optional().describe(`Query to run for export only`),errorPolicy:N([`skip`,`abort`,`retry`]).default(`skip`),batchSize:I().default(1e3)}));var oq=Q(()=>B({userId:R().optional(),tenantId:R().optional(),roles:U(R()).default([]),permissions:U(R()).default([]),isSystem:H().default(!1),accessToken:R().optional(),transaction:z().optional(),traceId:R().optional()})),sq=Q(()=>V([L(R(),z()),JW]).describe(`Data Engine query filter conditions`)),cq=Q(()=>V([L(R(),N([`asc`,`desc`])),L(R(),V([Pe(1),Pe(-1)])),U(eG)]).describe(`Sort order definition`)),lq=Q(()=>B({context:oq.optional()})),uq=Q(()=>lq.extend({where:V([L(R(),z()),JW]).optional(),fields:U(dG).optional(),orderBy:U(eG).optional(),limit:I().optional(),offset:I().optional(),top:I().optional(),cursor:L(R(),z()).optional(),search:fG.optional(),expand:De(()=>L(R(),mG)).optional(),distinct:H().optional()}).describe(`QueryAST-aligned query options for IDataEngine.find() operations`));Q(()=>lq.extend({filter:sq.optional(),select:U(R()).optional(),sort:cq.optional(),limit:I().int().min(1).optional(),skip:I().int().min(0).optional(),top:I().int().min(1).optional(),populate:U(R()).optional()}).describe(`Query options for IDataEngine.find() operations`));var dq=Q(()=>lq.extend({returning:H().default(!0).optional()}).describe(`Options for DataEngine.insert operations`)),fq=Q(()=>lq.extend({where:V([L(R(),z()),JW]).optional(),upsert:H().default(!1).optional(),multi:H().default(!1).optional(),returning:H().default(!1).optional()}).describe(`QueryAST-aligned options for DataEngine.update operations`));Q(()=>lq.extend({filter:sq.optional(),upsert:H().default(!1).optional(),multi:H().default(!1).optional(),returning:H().default(!1).optional()}).describe(`Options for DataEngine.update operations`));var pq=Q(()=>lq.extend({where:V([L(R(),z()),JW]).optional(),multi:H().default(!1).optional()}).describe(`QueryAST-aligned options for DataEngine.delete operations`));Q(()=>lq.extend({filter:sq.optional(),multi:H().default(!1).optional()}).describe(`Options for DataEngine.delete operations`));var mq=Q(()=>lq.extend({where:V([L(R(),z()),JW]).optional(),groupBy:U(R()).optional(),aggregations:U(iG).optional()}).describe(`QueryAST-aligned options for DataEngine.aggregate operations`));Q(()=>lq.extend({filter:sq.optional(),groupBy:U(R()).optional(),aggregations:U(B({field:R(),method:N([`count`,`sum`,`avg`,`min`,`max`,`count_distinct`]),alias:R().optional()})).optional()}).describe(`Options for DataEngine.aggregate operations`));var hq=Q(()=>lq.extend({where:V([L(R(),z()),JW]).optional()}).describe(`QueryAST-aligned options for DataEngine.count operations`));Q(()=>lq.extend({filter:sq.optional()}).describe(`Options for DataEngine.count operations`)),Q(()=>B({find:F().input(ke([R(),uq.optional()])).output(Ie(U(z()))),findOne:F().input(ke([R(),uq.optional()])).output(Ie(z())),insert:F().input(ke([R(),V([L(R(),z()),U(L(R(),z()))]),dq.optional()])).output(Ie(z())),update:F().input(ke([R(),L(R(),z()),fq.optional()])).output(Ie(z())),delete:F().input(ke([R(),pq.optional()])).output(Ie(z())),count:F().input(ke([R(),hq.optional()])).output(Ie(I())),aggregate:F().input(ke([R(),mq])).output(Ie(U(z())))}).describe(`Standard Data Engine Contract`));var gq={filter:sq.optional()},_q=uq.extend({...gq,select:U(R()).optional(),sort:cq.optional(),skip:I().int().min(0).optional(),populate:U(R()).optional()}),vq=Q(()=>B({method:Pe(`find`),object:R(),query:_q.optional()})),yq=Q(()=>B({method:Pe(`findOne`),object:R(),query:_q.optional()})),bq=Q(()=>B({method:Pe(`insert`),object:R(),data:V([L(R(),z()),U(L(R(),z()))]),options:dq.optional()})),xq=Q(()=>B({method:Pe(`update`),object:R(),data:L(R(),z()),id:V([R(),I()]).optional().describe(`ID for single update, or use where in options`),options:fq.extend(gq).optional()})),Sq=Q(()=>B({method:Pe(`delete`),object:R(),id:V([R(),I()]).optional().describe(`ID for single delete, or use where in options`),options:pq.extend(gq).optional()})),Cq=Q(()=>B({method:Pe(`count`),object:R(),query:hq.extend(gq).optional()})),wq=Q(()=>B({method:Pe(`aggregate`),object:R(),query:mq.extend(gq)})),Tq=Q(()=>B({method:Pe(`execute`),command:z(),options:L(R(),z()).optional()})),Eq=Q(()=>B({method:Pe(`vectorFind`),object:R(),vector:U(I()),where:V([L(R(),z()),JW]).optional(),fields:U(R()).optional(),limit:I().int().default(5).optional(),threshold:I().optional()})),Dq=Q(()=>B({method:Pe(`batch`),requests:U(ue(`method`,[vq,yq,bq,xq,Sq,Cq,wq,Tq,Eq])),transaction:H().default(!0).optional()}));Q(()=>ue(`method`,[vq,yq,bq,xq,Sq,Cq,wq,Dq,Tq,Eq]).describe(`Virtual ObjectQL Request Protocol`)),N([`count`,`sum`,`avg`,`min`,`max`,`count_distinct`,`percentile`,`median`,`stddev`,`variance`]).describe(`Standard aggregation functions`);var Oq=N([`asc`,`desc`]).describe(`Sort order direction`);Q(()=>B({field:R().describe(`Field name to sort by`),order:Oq.describe(`Sort direction`)}).describe(`Sort field and direction pair`)),N([`insert`,`update`,`delete`,`upsert`]).describe(`Data mutation event types`);var kq=N([`read_uncommitted`,`read_committed`,`repeatable_read`,`serializable`,`snapshot`]).describe(`Transaction isolation levels (snake_case standard)`);N([`lru`,`lfu`,`ttl`,`fifo`]).describe(`Cache eviction strategy`);var Aq=Q(()=>B({transaction:z().optional().describe(`Transaction handle`),timeout:I().optional().describe(`Timeout in ms`),skipCache:H().optional().describe(`Bypass cache`),traceContext:L(R(),R()).optional().describe(`OpenTelemetry context or request ID`),tenantId:R().optional().describe(`Tenant Isolation identifier`)})),jq=Q(()=>B({create:H().default(!0).describe(`Supports CREATE operations`),read:H().default(!0).describe(`Supports READ operations`),update:H().default(!0).describe(`Supports UPDATE operations`),delete:H().default(!0).describe(`Supports DELETE operations`),bulkCreate:H().default(!1).describe(`Supports bulk CREATE operations`),bulkUpdate:H().default(!1).describe(`Supports bulk UPDATE operations`),bulkDelete:H().default(!1).describe(`Supports bulk DELETE operations`),transactions:H().default(!1).describe(`Supports ACID transactions`),savepoints:H().default(!1).describe(`Supports transaction savepoints`),isolationLevels:U(kq).optional().describe(`Supported isolation levels`),queryFilters:H().default(!0).describe(`Supports WHERE clause filtering`),queryAggregations:H().default(!1).describe(`Supports GROUP BY and aggregation functions`),queryDateGranularity:L(nG,H()).optional().describe(`Per-granularity native date bucketing (day/week/month/quarter/year). Missing keys fall back to in-memory bucketing.`),querySorting:H().default(!0).describe(`Supports ORDER BY sorting`),queryPagination:H().default(!0).describe(`Supports LIMIT/OFFSET pagination`),queryWindowFunctions:H().default(!1).describe(`Supports window functions with OVER clause`),querySubqueries:H().default(!1).describe(`Supports subqueries`),queryCTE:H().default(!1).describe(`Supports Common Table Expressions (WITH clause)`),joins:H().default(!1).describe(`Supports SQL joins`),fullTextSearch:H().default(!1).describe(`Supports full-text search`),jsonQuery:H().default(!1).describe(`Supports JSON field querying`),geospatialQuery:H().default(!1).describe(`Supports geospatial queries`),streaming:H().default(!1).describe(`Supports result streaming (cursors/iterators)`),jsonFields:H().default(!1).describe(`Supports JSON field types`),arrayFields:H().default(!1).describe(`Supports array field types`),vectorSearch:H().default(!1).describe(`Supports vector embeddings and similarity search`),schemaSync:H().default(!1).describe(`Supports automatic schema synchronization`),batchSchemaSync:H().default(!1).describe(`Supports batched schema sync to reduce schema DDL round-trips`),migrations:H().default(!1).describe(`Supports database migrations`),indexes:H().default(!1).describe(`Supports index creation and management`),connectionPooling:H().default(!1).describe(`Supports connection pooling`),preparedStatements:H().default(!1).describe(`Supports prepared statements (SQL injection prevention)`),queryCache:H().default(!1).describe(`Supports query result caching`)}));Q(()=>B({name:R().describe(`Driver unique name`),version:R().describe(`Driver version`),supports:jq,connect:F().input(ke([])).output(Ie(r())).describe(`Establish connection`),disconnect:F().input(ke([])).output(Ie(r())).describe(`Close connection`),checkHealth:F().input(ke([])).output(Ie(H())).describe(`Health check`),getPoolStats:F().input(ke([])).output(B({total:I(),idle:I(),active:I(),waiting:I()}).optional()).optional().describe(`Get connection pool statistics`),execute:F().input(ke([z(),U(z()).optional(),Aq.optional()])).output(Ie(z())).describe(`Execute raw command`),find:F().input(ke([R(),mG,Aq.optional()])).output(Ie(U(L(R(),z())))).describe(`Find records`),findStream:F().input(ke([R(),mG,Aq.optional()])).output(z()).describe(`Stream records (AsyncIterable)`),findOne:F().input(ke([R(),mG,Aq.optional()])).output(Ie(L(R(),z()).nullable())).describe(`Find one record`),create:F().input(ke([R(),L(R(),z()),Aq.optional()])).output(Ie(L(R(),z()))).describe(`Create record`),update:F().input(ke([R(),R().or(I()),L(R(),z()),Aq.optional()])).output(Ie(L(R(),z()))).describe(`Update record`),upsert:F().input(ke([R(),L(R(),z()),U(R()).optional(),Aq.optional()])).output(Ie(L(R(),z()))).describe(`Upsert record`),delete:F().input(ke([R(),R().or(I()),Aq.optional()])).output(Ie(H())).describe(`Delete record`),count:F().input(ke([R(),mG.optional(),Aq.optional()])).output(Ie(I())).describe(`Count records`),bulkCreate:F().input(ke([R(),U(L(R(),z())),Aq.optional()])).output(Ie(U(L(R(),z())))),bulkUpdate:F().input(ke([R(),U(B({id:R().or(I()),data:L(R(),z())})),Aq.optional()])).output(Ie(U(L(R(),z())))),bulkDelete:F().input(ke([R(),U(R().or(I())),Aq.optional()])).output(Ie(r())),updateMany:F().input(ke([R(),mG,L(R(),z()),Aq.optional()])).output(Ie(I())).optional(),deleteMany:F().input(ke([R(),mG,Aq.optional()])).output(Ie(I())).optional(),beginTransaction:F().input(ke([B({isolationLevel:kq.optional()}).optional()])).output(Ie(z())).describe(`Start transaction`),commit:F().input(ke([z()])).output(Ie(r())).describe(`Commit transaction`),rollback:F().input(ke([z()])).output(Ie(r())).describe(`Rollback transaction`),syncSchema:F().input(ke([R(),z(),Aq.optional()])).output(Ie(r())).describe(`Sync object schema to DB`),syncSchemasBatch:F().input(ke([U(B({object:R(),schema:z()})),Aq.optional()])).output(Ie(r())).optional().describe(`Batch sync multiple schemas in one round-trip`),dropTable:F().input(ke([R(),Aq.optional()])).output(Ie(r())),explain:F().input(ke([R(),mG,Aq.optional()])).output(Ie(z())).optional()}));var Mq=Q(()=>B({min:I().min(0).default(2).describe(`Minimum number of connections in pool`),max:I().min(1).default(10).describe(`Maximum number of connections in pool`),idleTimeoutMillis:I().min(0).default(3e4).describe(`Time in ms before idle connection is closed`),connectionTimeoutMillis:I().min(0).default(5e3).describe(`Time in ms to wait for available connection`)})),Nq=Q(()=>B({name:R().describe(`Driver instance name`),type:N([`sql`,`nosql`,`cache`,`search`,`graph`,`timeseries`]).describe(`Driver type category`),capabilities:jq.describe(`Driver capability flags`),connectionString:R().optional().describe(`Database connection string (driver-specific format)`),poolConfig:Mq.optional().describe(`Connection pool configuration`)})),Pq=Q(()=>N([`postgresql`,`mysql`,`sqlite`,`mssql`,`oracle`,`mariadb`])),Fq=Q(()=>B({text:R().describe(`SQL type for text fields (e.g., VARCHAR, TEXT)`),number:R().describe(`SQL type for number fields (e.g., NUMERIC, DECIMAL, INT)`),boolean:R().describe(`SQL type for boolean fields (e.g., BOOLEAN, BIT)`),date:R().describe(`SQL type for date fields (e.g., DATE)`),datetime:R().describe(`SQL type for datetime fields (e.g., TIMESTAMP, DATETIME)`),json:R().optional().describe(`SQL type for JSON fields (e.g., JSON, JSONB)`),uuid:R().optional().describe(`SQL type for UUID fields (e.g., UUID, CHAR(36))`),binary:R().optional().describe(`SQL type for binary fields (e.g., BLOB, BYTEA)`)})),Iq=Q(()=>B({rejectUnauthorized:H().default(!0).describe(`Reject connections with invalid certificates`),ca:R().optional().describe(`CA certificate file path or content`),cert:R().optional().describe(`Client certificate file path or content`),key:R().optional().describe(`Client private key file path or content`)}).refine(e=>e.cert!==void 0==(e.key!==void 0),{message:`Client certificate (cert) and private key (key) must be provided together`}));Q(()=>Nq.extend({type:Pe(`sql`).describe(`Driver type must be "sql"`),dialect:Pq.describe(`SQL database dialect`),dataTypeMapping:Fq.describe(`SQL data type mapping configuration`),ssl:H().default(!1).describe(`Enable SSL/TLS connection`),sslConfig:Iq.optional().describe(`SSL/TLS configuration (required when ssl is true)`)}).refine(e=>!(e.ssl&&!e.sslConfig),{message:`sslConfig is required when ssl is true`}));var Lq=Q(()=>N([`mongodb`,`couchdb`,`dynamodb`,`cassandra`,`redis`,`elasticsearch`,`neo4j`,`orientdb`]));Q(()=>N([`find`,`findOne`,`insert`,`update`,`delete`,`aggregate`,`mapReduce`,`count`,`distinct`,`createIndex`,`dropIndex`]));var Rq=Q(()=>N([`all`,`quorum`,`one`,`local_quorum`,`each_quorum`,`eventual`])),zq=Q(()=>N([`single`,`compound`,`unique`,`text`,`geospatial`,`hashed`,`ttl`,`sparse`])),Bq=Q(()=>B({enabled:H().default(!1).describe(`Enable sharding`),shardKey:R().optional().describe(`Field to use as shard key`),shardingStrategy:N([`hash`,`range`,`zone`]).optional().describe(`Sharding strategy`),numShards:I().int().positive().optional().describe(`Number of shards`)})),Vq=Q(()=>B({enabled:H().default(!1).describe(`Enable replication`),replicaSetName:R().optional().describe(`Replica set name`),replicas:I().int().positive().optional().describe(`Number of replicas`),readPreference:N([`primary`,`primaryPreferred`,`secondary`,`secondaryPreferred`,`nearest`]).optional().describe(`Read preference for replica set`),writeConcern:N([`majority`,`acknowledged`,`unacknowledged`]).optional().describe(`Write concern level`)})),Hq=Q(()=>B({enabled:H().default(!1).describe(`Enable schema validation`),validationLevel:N([`strict`,`moderate`,`off`]).optional().describe(`Validation strictness`),validationAction:N([`error`,`warn`]).optional().describe(`Action on validation failure`),jsonSchema:L(R(),z()).optional().describe(`JSON Schema for validation`)})),Uq=Q(()=>B({text:R().describe(`NoSQL type for text fields`),number:R().describe(`NoSQL type for number fields`),boolean:R().describe(`NoSQL type for boolean fields`),date:R().describe(`NoSQL type for date fields`),datetime:R().describe(`NoSQL type for datetime fields`),json:R().optional().describe(`NoSQL type for JSON/object fields`),uuid:R().optional().describe(`NoSQL type for UUID fields`),binary:R().optional().describe(`NoSQL type for binary fields`),array:R().optional().describe(`NoSQL type for array fields`),objectId:R().optional().describe(`NoSQL type for ObjectID fields (MongoDB)`),geopoint:R().optional().describe(`NoSQL type for geospatial point fields`)}));Q(()=>Nq.extend({type:Pe(`nosql`).describe(`Driver type must be "nosql"`),databaseType:Lq.describe(`Specific NoSQL database type`),dataTypeMapping:Uq.describe(`NoSQL data type mapping configuration`),consistency:Rq.optional().describe(`Consistency level for operations`),replication:Vq.optional().describe(`Replication configuration`),sharding:Bq.optional().describe(`Sharding configuration`),schemaValidation:Hq.optional().describe(`Document schema validation`),region:R().optional().describe(`AWS region (for managed NoSQL services)`),accessKeyId:R().optional().describe(`AWS access key ID`),secretAccessKey:R().optional().describe(`AWS secret access key`),ttlField:R().optional().describe(`Field name for TTL (auto-deletion)`),maxDocumentSize:I().int().positive().optional().describe(`Maximum document size in bytes`),collectionPrefix:R().optional().describe(`Prefix for collection/table names`)}));var Wq=Q(()=>B({consistency:Rq.optional().describe(`Consistency level override`),readFromSecondary:H().optional().describe(`Allow reading from secondary replicas`),projection:L(R(),V([Pe(0),Pe(1)])).optional().describe(`Field projection`),timeout:I().int().positive().optional().describe(`Query timeout (ms)`),useCursor:H().optional().describe(`Use cursor instead of loading all results`),batchSize:I().int().positive().optional().describe(`Cursor batch size`),profile:H().optional().describe(`Enable query profiling`),hint:R().optional().describe(`Index hint for query optimization`)})),Gq=Q(()=>B({operator:R().describe(`Aggregation operator (e.g., $match, $group, $sort)`),options:L(R(),z()).describe(`Stage-specific options`)}));Q(()=>B({collection:R().describe(`Collection/table name`),stages:U(Gq).describe(`Aggregation pipeline stages`),options:Wq.optional().describe(`Query options`)})),Q(()=>B({name:R().describe(`Index name`),type:zq.describe(`Index type`),fields:U(B({field:R().describe(`Field name`),order:N([`asc`,`desc`,`text`,`2dsphere`]).optional().describe(`Index order or type`)})).describe(`Fields to index`),unique:H().default(!1).describe(`Enforce uniqueness`),sparse:H().default(!1).describe(`Sparse index`),expireAfterSeconds:I().int().positive().optional().describe(`TTL in seconds`),partialFilterExpression:L(R(),z()).optional().describe(`Partial index filter`),background:H().default(!1).describe(`Create index in background`)})),Q(()=>B({readConcern:N([`local`,`majority`,`linearizable`,`snapshot`]).optional().describe(`Read concern level`),writeConcern:N([`majority`,`acknowledged`,`unacknowledged`]).optional().describe(`Write concern level`),readPreference:N([`primary`,`primaryPreferred`,`secondary`,`secondaryPreferred`,`nearest`]).optional().describe(`Read preference`),maxCommitTimeMS:I().int().positive().optional().describe(`Transaction commit timeout (ms)`)}));var Kq=N([`insert`,`update`,`upsert`,`replace`,`ignore`]),qq=Q(()=>B({object:R().regex(/^[a-z_][a-z0-9_]*$/).describe(`Target Object Name`),externalId:R().default(`name`).describe(`Field match for uniqueness check`),mode:Kq.default(`upsert`).describe(`Conflict resolution strategy`),env:U(N([`prod`,`dev`,`test`])).default([`prod`,`dev`,`test`]).describe(`Applicable environments`),records:U(L(R(),z())).describe(`Data records`)})),Jq=Q(()=>B({field:R().describe(`Source field name containing the reference value`),targetObject:R().regex(/^[a-z_][a-z0-9_]*$/).describe(`Target object name (snake_case)`),targetField:R().default(`name`).describe(`Field on target object used for matching`),fieldType:N([`lookup`,`master_detail`]).describe(`Relationship field type`)}).describe(`Describes how a field reference is resolved during seed loading`)),Yq=Q(()=>B({object:R().regex(/^[a-z_][a-z0-9_]*$/).describe(`Object name (snake_case)`),dependsOn:U(R()).describe(`Objects this object depends on`),references:U(Jq).describe(`Field-level reference details`)}).describe(`Object node in the seed data dependency graph`)),Xq=Q(()=>B({nodes:U(Yq).describe(`All objects in the dependency graph`),insertOrder:U(R()).describe(`Topologically sorted insert order`),circularDependencies:U(U(R())).default([]).describe(`Circular dependency chains (e.g., [["a", "b", "a"]])`)}).describe(`Complete object dependency graph for seed data loading`)),Zq=Q(()=>B({sourceObject:R().describe(`Object with the broken reference`),field:R().describe(`Field name with unresolved reference`),targetObject:R().describe(`Target object searched for the reference`),targetField:R().describe(`ExternalId field used for matching`),attemptedValue:z().describe(`Value that failed to resolve`),recordIndex:I().int().min(0).describe(`Index of the record in the dataset`),message:R().describe(`Human-readable error description`)}).describe(`Actionable error for a failed reference resolution`)),Qq=Q(()=>B({dryRun:H().default(!1).describe(`Validate references without writing data`),haltOnError:H().default(!1).describe(`Stop on first reference resolution error`),multiPass:H().default(!0).describe(`Enable multi-pass loading for circular dependencies`),defaultMode:Kq.default(`upsert`).describe(`Default conflict resolution strategy`),batchSize:I().int().min(1).default(1e3).describe(`Maximum records per batch insert/upsert`),transaction:H().default(!1).describe(`Wrap entire load in a transaction (all-or-nothing)`),env:N([`prod`,`dev`,`test`]).optional().describe(`Only load datasets matching this environment`),organizationId:R().min(1).optional().describe(`Target organization id for per-tenant seed replay`)}).describe(`Seed data loader configuration`)),$q=Q(()=>B({object:R().describe(`Object that was loaded`),mode:Kq.describe(`Import mode used`),inserted:I().int().min(0).describe(`Records inserted`),updated:I().int().min(0).describe(`Records updated`),skipped:I().int().min(0).describe(`Records skipped`),errored:I().int().min(0).describe(`Records with errors`),total:I().int().min(0).describe(`Total records in dataset`),referencesResolved:I().int().min(0).describe(`References resolved via externalId`),referencesDeferred:I().int().min(0).describe(`References deferred to second pass`),errors:U(Zq).default([]).describe(`Reference resolution errors`)}).describe(`Result of loading a single dataset`));Q(()=>B({success:H().describe(`Overall success status`),dryRun:H().describe(`Whether this was a dry-run`),dependencyGraph:Xq.describe(`Object dependency graph`),results:U($q).describe(`Per-object load results`),errors:U(Zq).describe(`All reference resolution errors`),summary:B({objectsProcessed:I().int().min(0).describe(`Total objects processed`),totalRecords:I().int().min(0).describe(`Total records across all objects`),totalInserted:I().int().min(0).describe(`Total records inserted`),totalUpdated:I().int().min(0).describe(`Total records updated`),totalSkipped:I().int().min(0).describe(`Total records skipped`),totalErrored:I().int().min(0).describe(`Total records with errors`),totalReferencesResolved:I().int().min(0).describe(`Total references resolved`),totalReferencesDeferred:I().int().min(0).describe(`Total references deferred`),circularDependencyCount:I().int().min(0).describe(`Circular dependency chains detected`),durationMs:I().min(0).describe(`Load duration in milliseconds`)}).describe(`Summary statistics`)}).describe(`Complete seed loader result`)),Q(()=>B({datasets:U(qq).min(1).describe(`Datasets to load`),config:Qq.default(()=>Qq.parse({})).describe(`Loader configuration`)}).describe(`Seed loader request with datasets and configuration`));var eJ=Q(()=>B({versionNumber:I().describe(`Version number`),createdAt:I().describe(`Creation timestamp`),createdBy:R().describe(`Creator user ID`),size:I().describe(`File size in bytes`),checksum:R().describe(`File checksum`),downloadUrl:R().url().describe(`Download URL`),isLatest:H().optional().default(!1).describe(`Is latest version`)})),tJ=Q(()=>B({id:R().describe(`Template ID`),name:R().describe(`Template name`),description:R().optional().describe(`Template description`),fileUrl:R().url().describe(`Template file URL`),fileType:R().describe(`File MIME type`),placeholders:U(B({key:R().describe(`Placeholder key`),label:R().describe(`Placeholder label`),type:N([`text`,`number`,`date`,`image`]).describe(`Placeholder type`),required:H().optional().default(!1).describe(`Is required`)})).describe(`Template placeholders`)})),nJ=Q(()=>B({provider:N([`docusign`,`adobe-sign`,`hellosign`,`custom`]).describe(`E-signature provider`),enabled:H().optional().default(!1).describe(`E-signature enabled`),signers:U(B({email:R().email().describe(`Signer email`),name:R().describe(`Signer name`),role:R().describe(`Signer role`),order:I().describe(`Signing order`)})).describe(`Document signers`),expirationDays:I().optional().default(30).describe(`Expiration days`),reminderDays:I().optional().default(7).describe(`Reminder interval days`)}));Q(()=>B({id:R().describe(`Document ID`),name:R().describe(`Document name`),description:R().optional().describe(`Document description`),fileType:R().describe(`File MIME type`),fileSize:I().describe(`File size in bytes`),category:R().optional().describe(`Document category`),tags:U(R()).optional().describe(`Document tags`),versioning:B({enabled:H().describe(`Versioning enabled`),versions:U(eJ).describe(`Version history`),majorVersion:I().describe(`Major version`),minorVersion:I().describe(`Minor version`)}).optional().describe(`Version control`),template:tJ.optional().describe(`Document template`),eSignature:nJ.optional().describe(`E-signature config`),access:B({isPublic:H().optional().default(!1).describe(`Public access`),sharedWith:U(R()).optional().describe(`Shared with`),expiresAt:I().optional().describe(`Access expiration`)}).optional().describe(`Access control`),metadata:L(R(),z()).optional().describe(`Custom metadata`)}));var rJ=Q(()=>ue(`type`,[B({type:Pe(`constant`),value:z().describe(`Constant value to use`)}).describe(`Set a constant value`),B({type:Pe(`cast`),targetType:N([`string`,`number`,`boolean`,`date`]).describe(`Target data type`)}).describe(`Cast to a specific data type`),B({type:Pe(`lookup`),table:R().describe(`Lookup table name`),keyField:R().describe(`Field to match on`),valueField:R().describe(`Field to retrieve`)}).describe(`Lookup value from another table`),B({type:Pe(`javascript`),expression:bG.describe(`JS expression (dialect="js" recommended). e.g. value.toUpperCase()`)}).describe(`Custom JavaScript transformation`),B({type:Pe(`map`),mappings:L(R(),z()).describe(`Value mappings (e.g., {"Active": "active"})`)}).describe(`Map values using a dictionary`)])),iJ=Q(()=>B({source:R().describe(`Source field name`),target:R().describe(`Target field name`),transform:rJ.optional().describe(`Transformation to apply`),defaultValue:z().optional().describe(`Default if source is null/undefined`)})),aJ=Q(()=>B({id:R().describe(`Data source ID`),name:R().describe(`Data source name`),type:N([`odata`,`rest-api`,`graphql`,`custom`]).describe(`Protocol type`),endpoint:R().url().describe(`API endpoint URL`),authentication:B({type:N([`oauth2`,`api-key`,`basic`,`none`]).describe(`Auth type`),config:L(R(),z()).describe(`Auth configuration`)}).describe(`Authentication`)})),oJ=Q(()=>iJ.extend({type:R().optional().describe(`Field type`),readonly:H().optional().default(!0).describe(`Read-only field`)}));Q(()=>B({fieldName:R().describe(`Field name`),dataSource:aJ.describe(`External data source`),query:B({endpoint:R().describe(`Query endpoint path`),method:N([`GET`,`POST`]).optional().default(`GET`).describe(`HTTP method`),parameters:L(R(),z()).optional().describe(`Query parameters`)}).describe(`Query configuration`),fieldMappings:U(oJ).describe(`Field mappings`),caching:B({enabled:H().optional().default(!0).describe(`Cache enabled`),ttl:I().optional().default(300).describe(`Cache TTL (seconds)`),strategy:N([`lru`,`lfu`,`ttl`]).optional().default(`ttl`).describe(`Cache strategy`)}).optional().describe(`Caching configuration`),fallback:B({enabled:H().optional().default(!0).describe(`Fallback enabled`),defaultValue:z().optional().describe(`Default fallback value`),showError:H().optional().default(!0).describe(`Show error to user`)}).optional().describe(`Fallback configuration`),rateLimit:B({requestsPerSecond:I().describe(`Requests per second limit`),burstSize:I().optional().describe(`Burst size`)}).optional().describe(`Rate limiting`),retry:B({maxRetries:I().min(0).default(3).describe(`Maximum retry attempts`),initialDelayMs:I().default(1e3).describe(`Initial retry delay in milliseconds`),maxDelayMs:I().default(3e4).describe(`Maximum retry delay in milliseconds`),backoffMultiplier:I().default(2).describe(`Exponential backoff multiplier`),retryableStatusCodes:U(I()).default([429,500,502,503,504]).describe(`HTTP status codes that are retryable`)}).optional().describe(`Retry configuration with exponential backoff`),transform:B({request:B({headers:L(R(),R()).optional().describe(`Additional request headers`),queryParams:L(R(),R()).optional().describe(`Additional query parameters`)}).optional().describe(`Request transformation`),response:B({dataPath:R().optional().describe(`JSONPath to extract data (e.g., "$.data.results")`),totalPath:R().optional().describe(`JSONPath to extract total count (e.g., "$.meta.total")`)}).optional().describe(`Response transformation`)}).optional().describe(`Request/response transformation pipeline`),pagination:B({type:N([`offset`,`cursor`,`page`]).default(`offset`).describe(`Pagination type`),pageSize:I().default(100).describe(`Items per page`),maxPages:I().optional().describe(`Maximum number of pages to fetch`)}).optional().describe(`Pagination configuration for external data`)}));var sJ=R().describe(`Underlying driver identifier`);Q(()=>B({id:R().describe(`Unique driver identifier (e.g. "postgres")`),label:R().describe(`Display label (e.g. "PostgreSQL")`),description:R().optional(),icon:R().optional(),configSchema:L(R(),z()).describe(`JSON Schema for connection configuration`),capabilities:De(()=>cJ).optional()}));var cJ=B({transactions:H().default(!1),queryFilters:H().default(!1),queryAggregations:H().default(!1),querySorting:H().default(!1),queryPagination:H().default(!1),queryWindowFunctions:H().default(!1),querySubqueries:H().default(!1),joins:H().default(!1),fullTextSearch:H().default(!1),readOnly:H().default(!1),dynamicSchema:H().default(!1)});Q(()=>B({name:R().regex(/^[a-z_][a-z0-9_]*$/).describe(`Unique datasource identifier`),label:R().optional().describe(`Display label`),driver:sJ.describe(`Underlying driver type`),config:L(R(),z()).describe(`Driver specific configuration`),pool:B({min:I().default(0).describe(`Minimum connections`),max:I().default(10).describe(`Maximum connections`),idleTimeoutMillis:I().default(3e4).describe(`Idle timeout`),connectionTimeoutMillis:I().default(3e3).describe(`Connection establishment timeout`)}).optional().describe(`Connection pool settings`),readReplicas:U(L(R(),z())).optional().describe(`Read-only replica configurations`),capabilities:cJ.optional().describe(`Capability overrides`),healthCheck:B({enabled:H().default(!0).describe(`Enable health check endpoint`),intervalMs:I().default(3e4).describe(`Health check interval in milliseconds`),timeoutMs:I().default(5e3).describe(`Health check timeout in milliseconds`)}).optional().describe(`Datasource health check configuration`),ssl:B({enabled:H().default(!1).describe(`Enable SSL/TLS for database connection`),rejectUnauthorized:H().default(!0).describe(`Reject connections with invalid/self-signed certificates`),ca:R().optional().describe(`CA certificate (PEM format or path to file)`),cert:R().optional().describe(`Client certificate (PEM format or path to file)`),key:R().optional().describe(`Client private key (PEM format or path to file)`)}).optional().describe(`SSL/TLS configuration for secure database connections`),retryPolicy:B({maxRetries:I().default(3).describe(`Maximum number of retry attempts`),baseDelayMs:I().default(1e3).describe(`Base delay between retries in milliseconds`),maxDelayMs:I().default(3e4).describe(`Maximum delay between retries in milliseconds`),backoffMultiplier:I().default(2).describe(`Exponential backoff multiplier`)}).optional().describe(`Connection retry policy for transient failures`),description:R().optional().describe(`Internal description`),active:H().default(!0).describe(`Is datasource enabled`)}));var lJ=N([`count`,`sum`,`avg`,`min`,`max`,`count_distinct`,`number`,`string`,`boolean`]),uJ=N([`string`,`number`,`boolean`,`time`,`geo`]),dJ=N([`second`,`minute`,`hour`,`day`,`week`,`month`,`quarter`,`year`]),fJ=Q(()=>B({name:R().regex(/^[a-z_][a-z0-9_]*$/).describe(`Unique metric ID`),label:R().describe(`Human readable label`),description:R().optional(),type:lJ,sql:R().describe(`SQL expression or field reference`),filters:U(B({sql:R()})).optional(),format:R().optional()})),pJ=Q(()=>B({name:R().regex(/^[a-z_][a-z0-9_]*$/).describe(`Unique dimension ID`),label:R().describe(`Human readable label`),description:R().optional(),type:uJ,sql:R().describe(`SQL expression or column reference`),granularities:U(dJ).optional()})),mJ=Q(()=>B({name:R().describe(`Target cube name`),relationship:N([`one_to_one`,`one_to_many`,`many_to_one`]).default(`many_to_one`),sql:R().describe(`Join condition (ON clause)`)}));Q(()=>B({name:R().regex(/^[a-z_][a-z0-9_]*$/).describe(`Cube name (snake_case)`),title:R().optional(),description:R().optional(),sql:R().describe(`Base SQL statement or Table Name`),measures:L(R(),fJ).describe(`Quantitative metrics`),dimensions:L(R(),pJ).describe(`Qualitative attributes`),joins:L(R(),mJ).optional(),refreshKey:B({every:R().optional(),sql:R().optional()}).optional(),public:H().default(!1)})),Q(()=>B({cube:R().optional().describe(`Target cube name (optional when provided externally, e.g. in API request wrapper)`),measures:U(R()).describe(`List of metrics to calculate`),dimensions:U(R()).optional().describe(`List of dimensions to group by`),where:JW.optional().describe(`Filtering criteria (canonical Query DSL FilterCondition)`),timeDimensions:U(B({dimension:R(),granularity:dJ.optional(),dateRange:V([R(),U(R())]).optional()})).optional(),order:L(R(),N([`asc`,`desc`])).optional(),limit:I().optional(),offset:I().optional(),timezone:R().optional().default(`UTC`)}));var hJ=N([`comment`,`field_change`,`task`,`event`,`email`,`call`,`note`,`file`,`record_create`,`record_delete`,`approval`,`sharing`,`system`]),gJ=Q(()=>B({type:N([`user`,`team`,`record`]).describe(`Mention target type`),id:R().describe(`Target ID`),name:R().describe(`Display name for rendering`),offset:I().int().min(0).describe(`Character offset in body text`),length:I().int().min(1).describe(`Length of mention token in body text`)})),_J=Q(()=>B({field:R().describe(`Field machine name`),fieldLabel:R().optional().describe(`Field display label`),oldValue:z().optional().describe(`Previous value`),newValue:z().optional().describe(`New value`),oldDisplayValue:R().optional().describe(`Human-readable old value`),newDisplayValue:R().optional().describe(`Human-readable new value`)})),vJ=Q(()=>B({emoji:R().describe(`Emoji character or shortcode (e.g., "👍", ":thumbsup:")`),userIds:U(R()).describe(`Users who reacted`),count:I().int().min(1).describe(`Total reaction count`)})),yJ=Q(()=>B({type:N([`user`,`system`,`service`,`automation`]).describe(`Actor type`),id:R().describe(`Actor ID`),name:R().optional().describe(`Actor display name`),avatarUrl:R().url().optional().describe(`Actor avatar URL`),source:R().optional().describe(`Source application (e.g., "Omni", "API", "Studio")`)})),bJ=N([`public`,`internal`,`private`]);Q(()=>B({id:R().describe(`Feed item ID`),type:hJ.describe(`Activity type`),object:R().describe(`Object name (e.g., "account")`),recordId:R().describe(`Record ID this feed item belongs to`),actor:yJ.describe(`Who performed this action`),body:R().optional().describe(`Rich text body (Markdown supported)`),mentions:U(gJ).optional().describe(`Mentioned users/teams/records`),changes:U(_J).optional().describe(`Field-level changes`),reactions:U(vJ).optional().describe(`Emoji reactions on this item`),parentId:R().optional().describe(`Parent feed item ID for threaded replies`),replyCount:I().int().min(0).default(0).describe(`Number of replies`),pinned:H().default(!1).describe(`Whether the feed item is pinned to the top of the timeline`),pinnedAt:R().datetime().optional().describe(`Timestamp when the item was pinned`),pinnedBy:R().optional().describe(`User ID who pinned the item`),starred:H().default(!1).describe(`Whether the feed item is starred/bookmarked by the current user`),starredAt:R().datetime().optional().describe(`Timestamp when the item was starred`),visibility:bJ.default(`public`).describe(`Visibility: public (all users), internal (team only), private (author + mentioned)`),createdAt:R().datetime().describe(`Creation timestamp`),updatedAt:R().datetime().optional().describe(`Last update timestamp`),editedAt:R().datetime().optional().describe(`When comment was last edited`),isEdited:H().default(!1).describe(`Whether comment has been edited`)})),N([`all`,`comments_only`,`changes_only`,`tasks_only`]);var xJ=N([`comment`,`mention`,`field_change`,`task`,`approval`,`all`]),SJ=N([`in_app`,`email`,`push`,`slack`]);Q(()=>B({object:R().describe(`Object name`),recordId:R().describe(`Record ID`),userId:R().describe(`Subscribing user ID`),events:U(xJ).default([`all`]).describe(`Event types to receive notifications for`),channels:U(SJ).default([`in_app`]).describe(`Notification delivery channels`),active:H().default(!0).describe(`Whether the subscription is active`),createdAt:R().datetime().describe(`Subscription creation timestamp`)}));var CJ=Q(()=>N([`header`,`subdomain`,`path`,`token`,`lookup`]).describe(`Strategy for resolving tenant identity from request context`)),wJ=Q(()=>B({name:R().min(1).describe(`Turso database group name`),primaryLocation:R().min(2).describe(`Primary Turso region code (e.g., iad, lhr, nrt)`),replicaLocations:U(R().min(2)).default([]).describe(`Additional replica region codes`),schemaDatabase:R().optional().describe(`Schema database name for multi-db schemas`)}).describe(`Turso database group configuration`)),TJ=Q(()=>B({onTenantCreate:B({autoCreate:H().default(!0).describe(`Auto-create database on tenant registration`),group:R().optional().describe(`Turso group for the new database`),applyGroupSchema:H().default(!0).describe(`Apply shared schema from group`),seedData:H().default(!1).describe(`Populate seed data on creation`)}).describe(`Tenant creation hook`),onTenantDelete:B({immediate:H().default(!1).describe(`Destroy database immediately`),gracePeriodHours:I().int().min(0).default(72).describe(`Grace period before permanent deletion`),createBackup:H().default(!0).describe(`Create backup before deletion`)}).describe(`Tenant deletion hook`),onTenantSuspend:B({revokeTokens:H().default(!0).describe(`Revoke auth tokens on suspension`),readOnly:H().default(!0).describe(`Set database to read-only on suspension`)}).describe(`Tenant suspension hook`)}).describe(`Tenant database lifecycle hooks`));Q(()=>B({organizationSlug:R().min(1).describe(`Turso organization slug`),urlTemplate:R().min(1).describe(`URL template with {tenant_id} placeholder`),groupAuthToken:R().min(1).describe(`Group-level auth token for platform operations`),tenantResolverStrategy:CJ.default(`token`),group:wJ.optional().describe(`Database group configuration`),lifecycle:TJ.optional().describe(`Lifecycle hooks`),maxCachedConnections:I().int().min(1).default(100).describe(`Max cached tenant connections (LRU)`),connectionCacheTTL:I().int().min(0).default(300).describe(`Connection cache TTL in seconds`)}).describe(`Turso multi-tenant router configuration`));var EJ=(e=>t===void 0?typeof Proxy<`u`?new Proxy(e,{get:(e,n)=>(t===void 0?e:t)[n]}):e:t)(function(e){if(t!==void 0)return t.apply(this,arguments);throw Error(`Dynamic require of "`+e+`" is not supported`)}),DJ={debug:0,info:1,warn:2,error:3,fatal:4,silent:5},OJ={debug:`\x1B[36m`,info:`\x1B[32m`,warn:`\x1B[33m`,error:`\x1B[31m`,fatal:`\x1B[35m`,silent:``},kJ=`\x1B[0m`,AJ=class e{constructor(e={},t={}){this.config={name:e.name,level:e.level??`info`,format:e.format??`pretty`,redact:e.redact??[`password`,`token`,`secret`,`key`],sourceLocation:e.sourceLocation??!1,file:e.file,rotation:e.rotation??{maxSize:`10m`,maxFiles:5}},this.bindings=t,this.config.file&&typeof process<`u`&&this.openFileStream(this.config.file)}openFileStream(e){try{let t=EJ(`fs`),n=EJ(`path`).dirname(e);t.mkdirSync(n,{recursive:!0}),this.fileStream=t.createWriteStream(e,{flags:`a`})}catch{}}isEnabled(e){return DJ[e]>=DJ[this.config.level]}redactSensitive(e){if(!e||typeof e!=`object`)return e;let t=Array.isArray(e)?[...e]:{...e};for(let e in t){let n=e.toLowerCase();this.config.redact.some(e=>n.includes(e.toLowerCase()))?t[e]=`***REDACTED***`:typeof t[e]==`object`&&t[e]!==null&&(t[e]=this.redactSensitive(t[e]))}return t}write(e,t,n,r){if(!this.isEnabled(e))return;let i=this.redactSensitive({...this.bindings,...n,...r?{error:{message:r.message,stack:r.stack}}:{}}),a=Object.keys(i).length>0,o=new Date().toISOString(),s;if(this.config.format===`json`)s=JSON.stringify({time:o,level:e,...this.config.name?{name:this.config.name}:{},msg:t,...i});else if(this.config.format===`text`){let n=[o,e.toUpperCase(),t];a&&n.push(JSON.stringify(i)),s=n.join(` | `)}else{let n=OJ[e]||``,r=this.config.name?`[${this.config.name}] `:``;s=`${n}${o} ${e.toUpperCase()}${kJ} ${r}${t}`,a&&(s+=` ${JSON.stringify(i)}`)}let c=s+`
|
|
58
|
+
`;typeof process<`u`&&process.stderr?e===`error`||e===`fatal`?process.stderr.write(c):process.stdout?.write(c):typeof console<`u`&&(e===`error`||e===`fatal`?console.error:e===`warn`?console.warn:e===`debug`?console.debug:console.log)(s),this.fileStream&&this.fileStream.write(c)}debug(e,t){this.write(`debug`,e,t)}info(e,t){this.write(`info`,e,t)}warn(e,t){this.write(`warn`,e,t)}error(e,t,n){t instanceof Error?this.write(`error`,e,n,t):this.write(`error`,e,t)}fatal(e,t,n){t instanceof Error?this.write(`fatal`,e,n,t):this.write(`fatal`,e,t)}log(e,...t){this.info(e,t.length>0?{args:t}:void 0)}child(t){let n=new e(this.config,{...this.bindings,...t});return n.fileStream=this.fileStream,n}withTrace(e,t){return this.child({traceId:e,spanId:t})}async destroy(){this.fileStream&&=(await new Promise(e=>this.fileStream.end(e)),void 0)}};function jJ(e){return new AJ(e)}var MJ=class{constructor(e,t){this.subscriptions=new Map,this.eventBuffer=[],this._baseUrl=e,this._token=t}subscribeMetadata(e,t,n){let r=`metadata-${e}-${Date.now()}`;return this.subscriptions.set(r,{filter:{type:e,packageId:n?.packageId,eventTypes:[`metadata.${e}.created`,`metadata.${e}.updated`,`metadata.${e}.deleted`]},handler:e=>{e.type.startsWith(`metadata.`)&&t(e)}}),this.startPolling(),()=>{this.subscriptions.delete(r),this.subscriptions.size===0&&this.stopPolling()}}subscribeData(e,t,n){let r=`data-${e}-${Date.now()}`;return this.subscriptions.set(r,{filter:{type:e,recordId:n?.recordId,eventTypes:[`data.record.created`,`data.record.updated`,`data.record.deleted`]},handler:r=>{r.type.startsWith(`data.`)&&r.object===e&&(!n?.recordId||r.payload?.recordId===n.recordId)&&t(r)}}),this.startPolling(),()=>{this.subscriptions.delete(r),this.subscriptions.size===0&&this.stopPolling()}}emitEvent(e){for(let t of this.subscriptions.values()){let n=!t.filter.type||e.type.includes(t.filter.type)||e.object===t.filter.type,r=!t.filter.eventTypes?.length||t.filter.eventTypes.includes(e.type),i=!t.filter.packageId||e.payload?.packageId===t.filter.packageId;if(n&&r&&i)try{t.handler(e)}catch(e){console.error(`Error in realtime event handler:`,e)}}}startPolling(){this.pollInterval||=setInterval(()=>{for(;this.eventBuffer.length>0;){let e=this.eventBuffer.shift();e&&this.emitEvent(e)}},2e3)}stopPolling(){this.pollInterval&&=(clearInterval(this.pollInterval),void 0)}_bufferEvent(e){this.eventBuffer.push(e)}disconnect(){this.stopPolling(),this.subscriptions.clear(),this.eventBuffer=[]}},NJ=class{constructor(e){this.meta={getTypes:async()=>{let e=this.getRoute(`metadata`),t=await this.fetch(`${this.baseUrl}${e}`);return this.unwrapResponse(t)},getItems:async(e,t)=>{let n=this.getRoute(`metadata`),r=new URLSearchParams;t?.packageId&&r.set(`package`,t.packageId);let i=r.toString(),a=`${this.baseUrl}${n}/${e}${i?`?${i}`:``}`,o=await this.fetch(a);return this.unwrapResponse(o)},getItem:async(e,t,n)=>{let r=this.getRoute(`metadata`),i=new URLSearchParams;n?.packageId&&i.set(`package`,n.packageId);let a=i.toString(),o=`${this.baseUrl}${r}/${e}/${t}${a?`?${a}`:``}`,s=await this.fetch(o);return this.unwrapResponse(s)},saveItem:async(e,t,n)=>{let r=this.getRoute(`metadata`),i=await this.fetch(`${this.baseUrl}${r}/${e}/${t}`,{method:`PUT`,body:JSON.stringify(n)});return this.unwrapResponse(i)},deleteItem:async(e,t)=>{let n=this.getRoute(`metadata`),r=await this.fetch(`${this.baseUrl}${n}/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{method:`DELETE`});return this.unwrapResponse(r)},getCached:async(e,t)=>{let n=this.getRoute(`metadata`),r={};t?.ifNoneMatch&&(r[`If-None-Match`]=t.ifNoneMatch),t?.ifModifiedSince&&(r[`If-Modified-Since`]=t.ifModifiedSince);let i=await this.fetch(`${this.baseUrl}${n}/object/${e}`,{headers:r});if(i.status===304)return{notModified:!0,etag:t?.ifNoneMatch?{value:t.ifNoneMatch.replace(/^W\/|"/g,``),weak:t.ifNoneMatch.startsWith(`W/`)}:void 0};let a=await i.json(),o=i.headers.get(`ETag`),s=i.headers.get(`Last-Modified`);return{data:a,etag:o?{value:o.replace(/^W\/|"/g,``),weak:o.startsWith(`W/`)}:void 0,lastModified:s||void 0,notModified:!1}},getView:async(e,t=`list`)=>{let n=this.getRoute(`ui`),r=await this.fetch(`${this.baseUrl}${n}/view/${e}?type=${t}`);return this.unwrapResponse(r)}},this.analytics={query:async e=>{let t=this.getRoute(`analytics`);return(await this.fetch(`${this.baseUrl}${t}/query`,{method:`POST`,body:JSON.stringify(e)})).json()},meta:async e=>{let t=this.getRoute(`analytics`);return(await this.fetch(`${this.baseUrl}${t}/meta/${e}`)).json()},explain:async e=>{let t=this.getRoute(`analytics`);return(await this.fetch(`${this.baseUrl}${t}/explain`,{method:`POST`,body:JSON.stringify(e)})).json()}},this.packages={list:async e=>{let t=this.getRoute(`packages`),n=new URLSearchParams;e?.status&&n.set(`status`,e.status),e?.type&&n.set(`type`,e.type),e?.enabled!==void 0&&n.set(`enabled`,String(e.enabled));let r=n.toString(),i=`${this.baseUrl}${t}${r?`?`+r:``}`,a=await this.fetch(i);return this.unwrapResponse(a)},get:async e=>{let t=this.getRoute(`packages`),n=await this.fetch(`${this.baseUrl}${t}/${encodeURIComponent(e)}`);return this.unwrapResponse(n)},install:async(e,t)=>{let n=this.getRoute(`packages`),r=await this.fetch(`${this.baseUrl}${n}`,{method:`POST`,body:JSON.stringify({manifest:e,settings:t?.settings,enableOnInstall:t?.enableOnInstall})});return this.unwrapResponse(r)},uninstall:async e=>{let t=this.getRoute(`packages`),n=await this.fetch(`${this.baseUrl}${t}/${encodeURIComponent(e)}`,{method:`DELETE`});return this.unwrapResponse(n)},enable:async e=>{let t=this.getRoute(`packages`),n=await this.fetch(`${this.baseUrl}${t}/${encodeURIComponent(e)}/enable`,{method:`PATCH`});return this.unwrapResponse(n)},disable:async e=>{let t=this.getRoute(`packages`),n=await this.fetch(`${this.baseUrl}${t}/${encodeURIComponent(e)}/disable`,{method:`PATCH`});return this.unwrapResponse(n)}},this.projects={list:async e=>{let t=new URLSearchParams;e?.organization_id&&t.set(`organizationId`,e.organization_id),e?.env_type&&t.set(`envType`,e.env_type),e?.status&&t.set(`status`,e.status);let n=t.toString(),r=`${this.baseUrl}/api/v1/cloud/projects${n?`?`+n:``}`,i=await this.fetch(r);return this.unwrapResponse(i)},get:async e=>{let t=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}`);return this.unwrapResponse(t)},create:async e=>{let t=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects`,{method:`POST`,body:JSON.stringify(e)});return this.unwrapResponse(t)},update:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify(t)});return this.unwrapResponse(n)},delete:async(e,t)=>{let n=t?.force?`?force=1`:``,r=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}${n}`,{method:`DELETE`});return this.unwrapResponse(r)},activate:async e=>{let t=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/activate`,{method:`POST`});return this.unwrapResponse(t)},rotateCredential:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/credentials/rotate`,{method:`POST`,body:JSON.stringify({plaintext:t})});return this.unwrapResponse(n)},updateHostname:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/hostname`,{method:`POST`,body:JSON.stringify({hostname:t})});return this.unwrapResponse(n)},updateVisibility:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}`,{method:`PATCH`,body:JSON.stringify({visibility:t})});return this.unwrapResponse(n)},listRevisions:async(e,t)=>{let n=new URLSearchParams;t?.limit&&n.set(`limit`,String(t.limit)),t?.cursor&&n.set(`cursor`,t.cursor),t?.branch&&n.set(`branch`,t.branch);let r=n.toString(),i=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/revisions${r?`?${r}`:``}`);return this.unwrapResponse(i)},listBranches:async e=>{let t=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/branches`);return this.unwrapResponse(t)},renameBranch:async(e,t,n)=>{let r=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/branches/${encodeURIComponent(t)}/rename`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({newName:n})});return this.unwrapResponse(r)},deleteBranch:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/branches/${encodeURIComponent(t)}`,{method:`DELETE`});return this.unwrapResponse(n)},activateRevision:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/revisions/${encodeURIComponent(t)}/activate`,{method:`POST`});return this.unwrapResponse(n)},retryProvisioning:async e=>{let t=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/retry`,{method:`POST`});return this.unwrapResponse(t)},listMembers:async e=>{let t=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/members`);return this.unwrapResponse(t)},addMember:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/members`,{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify(t)});return this.unwrapResponse(n)},updateMemberRole:async(e,t,n)=>{let r=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/members/${encodeURIComponent(t)}`,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify({role:n})});return this.unwrapResponse(r)},removeMember:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/members/${encodeURIComponent(t)}`,{method:`DELETE`});return this.unwrapResponse(n)},listDrivers:async()=>{let e=await this.fetch(`${this.baseUrl}/api/v1/cloud/drivers`);return this.unwrapResponse(e)},listTemplates:async()=>{let e=await this.fetch(`${this.baseUrl}/api/v1/cloud/templates`);return this.unwrapResponse(e)},packages:{list:async e=>{let t=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/packages`);return this.unwrapResponse(t)},install:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/packages`,{method:`POST`,body:JSON.stringify(t)});return this.unwrapResponse(n)},get:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/packages/${encodeURIComponent(t)}`);return this.unwrapResponse(n)},enable:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/packages/${encodeURIComponent(t)}/enable`,{method:`PATCH`});return this.unwrapResponse(n)},disable:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/packages/${encodeURIComponent(t)}/disable`,{method:`PATCH`});return this.unwrapResponse(n)},uninstall:async(e,t)=>{let n=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/packages/${encodeURIComponent(t)}`,{method:`DELETE`});return this.unwrapResponse(n)},upgrade:async(e,t,n)=>{let r=await this.fetch(`${this.baseUrl}/api/v1/cloud/projects/${encodeURIComponent(e)}/packages/${encodeURIComponent(t)}/upgrade`,{method:`POST`,body:JSON.stringify({targetVersion:n})});return this.unwrapResponse(r)}}},this.organizations={list:async()=>{let e=this.getRoute(`auth`),t=await(await this.fetch(`${this.baseUrl}${e}/organization/list`)).json();return{organizations:Array.isArray(t)?t:t?.data??[]}},create:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/create`,{method:`POST`,body:JSON.stringify(e)})).json()},update:async(e,t)=>{let n=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${n}/organization/update`,{method:`POST`,body:JSON.stringify({organizationId:e,data:t})})).json()},setActive:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/set-active`,{method:`POST`,body:JSON.stringify({organizationId:e})})).json()},get:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/get-full-organization?organizationId=${encodeURIComponent(e)}`)).json()},listMembers:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/list-members?organizationId=${encodeURIComponent(e)}`)).json()},invite:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/invite-member`,{method:`POST`,body:JSON.stringify(e)})).json()},leave:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/leave`,{method:`POST`,body:JSON.stringify({organizationId:e})})).json()},delete:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/delete`,{method:`POST`,body:JSON.stringify({organizationId:e})})).json()},removeMember:async(e,t)=>{let n=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${n}/organization/remove-member`,{method:`POST`,body:JSON.stringify({memberIdOrEmail:t.memberIdOrEmail,organizationId:e})})).json()},updateMemberRole:async(e,t)=>{let n=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${n}/organization/update-member-role`,{method:`POST`,body:JSON.stringify({memberId:t.memberId,role:t.role,organizationId:e})})).json()},getActiveMember:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/get-active-member?organizationId=${encodeURIComponent(e)}`)).json()},invitations:{list:async e=>{let t=this.getRoute(`auth`),n=await(await this.fetch(`${this.baseUrl}${t}/organization/list-invitations?organizationId=${encodeURIComponent(e)}`)).json();return{invitations:Array.isArray(n)?n:n?.data??n?.invitations??[]}},listMine:async()=>{let e=this.getRoute(`auth`),t=await(await this.fetch(`${this.baseUrl}${e}/organization/list-user-invitations`)).json();return{invitations:Array.isArray(t)?t:t?.data??t?.invitations??[]}},cancel:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/cancel-invitation`,{method:`POST`,body:JSON.stringify({invitationId:e})})).json()},accept:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/accept-invitation`,{method:`POST`,body:JSON.stringify({invitationId:e})})).json()},reject:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/reject-invitation`,{method:`POST`,body:JSON.stringify({invitationId:e})})).json()},resend:async e=>{if(e.id)try{await this.organizations.invitations.cancel(e.id)}catch{}return this.organizations.invite({email:e.email,role:e.role??`member`,organizationId:e.organizationId})}},teams:{list:async e=>{let t=this.getRoute(`auth`),n=await(await this.fetch(`${this.baseUrl}${t}/organization/list-teams?organizationId=${encodeURIComponent(e)}`)).json();return{teams:Array.isArray(n)?n:n?.data??n?.teams??[]}},create:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/create-team`,{method:`POST`,body:JSON.stringify(e)})).json()},update:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/update-team`,{method:`POST`,body:JSON.stringify(e)})).json()},delete:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/remove-team`,{method:`POST`,body:JSON.stringify(e)})).json()},listMembers:async e=>{let t=this.getRoute(`auth`),n=await(await this.fetch(`${this.baseUrl}${t}/organization/list-team-members?teamId=${encodeURIComponent(e)}`)).json();return{members:Array.isArray(n)?n:n?.data??n?.members??[]}},addMember:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/add-team-member`,{method:`POST`,body:JSON.stringify(e)})).json()},removeMember:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/organization/remove-team-member`,{method:`POST`,body:JSON.stringify(e)})).json()}}},this.oauth={applications:{register:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/oauth2/create-client`,{method:`POST`,body:JSON.stringify(e)})).json()},get:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/oauth2/get-client?client_id=${encodeURIComponent(e)}`)).json()},getPublic:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/oauth2/public-client?client_id=${encodeURIComponent(e)}`)).json()},list:async()=>{let e=this.getRoute(`auth`),t=await(await this.fetch(`${this.baseUrl}${e}/oauth2/get-clients`)).json();return{applications:Array.isArray(t)?t:t?.clients??t?.data??[]}},delete:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/oauth2/delete-client`,{method:`POST`,body:JSON.stringify({client_id:e})})).json()}},consent:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/oauth2/consent`,{method:`POST`,body:JSON.stringify(e)})).json()}},this.auth={getConfig:async()=>{let e=this.getRoute(`auth`),t=await this.fetch(`${this.baseUrl}${e}/config`);return this.unwrapResponse(t)},login:async e=>{let t=this.getRoute(`auth`),n=await(await this.fetch(`${this.baseUrl}${t}/sign-in/email`,{method:`POST`,headers:{Origin:this.baseUrl},body:JSON.stringify(e)})).json(),r=n&&(n.data??(n.token||n.user?{token:n.token,user:n.user}:void 0)),i=r?{...n,data:r}:n;return i.data?.token&&(this.token=i.data.token),i},logout:async()=>{let e=this.getRoute(`auth`);await this.fetch(`${this.baseUrl}${e}/sign-out`,{method:`POST`,headers:{"Content-Type":`application/json`,Origin:this.baseUrl},body:`{}`}),this.token=void 0},me:async()=>{let e=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${e}/get-session`,{headers:{Origin:this.baseUrl}})).json()},register:async e=>{let t=this.getRoute(`auth`),n=await(await this.fetch(`${this.baseUrl}${t}/sign-up/email`,{method:`POST`,headers:{Origin:this.baseUrl},body:JSON.stringify(e)})).json(),r=n&&(n.data??(n.token||n.user?{token:n.token,user:n.user}:void 0)),i=r?{...n,data:r}:n;return i.data?.token&&(this.token=i.data.token),i},signInWithProvider:async(e,t)=>{if(typeof window>`u`)throw Error(`signInWithProvider requires a browser environment`);let n=this.getRoute(`auth`),r=t?.callbackURL??window.location.origin+`/login`,i=t?.type===`oidc`,a=i?`/sign-in/oauth2`:`/sign-in/social`,o=i?{providerId:e,callbackURL:r}:{provider:e,callbackURL:r};t?.errorCallbackURL&&(o.errorCallbackURL=t.errorCallbackURL);let s=await(await this.fetch(`${this.baseUrl}${n}${a}`,{method:`POST`,body:JSON.stringify(o)})).json(),c=s?.url??s?.data?.url;if(c)window.location.assign(c);else throw Error(`signInWithProvider: no redirect URL returned for provider "${e}"`)},refreshToken:async e=>{let t=this.getRoute(`auth`),n=await(await this.fetch(`${this.baseUrl}${t}/get-session`,{method:`GET`})).json();return n.data?.token&&(this.token=n.data.token),n},bootstrapStatus:async()=>{let e=this.getRoute(`auth`),t=await(await this.fetch(`${this.baseUrl}${e}/bootstrap-status`)).json();return{hasOwner:!!(t?.data??t)?.hasOwner}},updateUser:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/update-user`,{method:`POST`,body:JSON.stringify(e)})).json()},changePassword:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/change-password`,{method:`POST`,body:JSON.stringify(e)})).json()},changeEmail:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/change-email`,{method:`POST`,body:JSON.stringify(e)})).json()},sendVerificationEmail:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/send-verification-email`,{method:`POST`,body:JSON.stringify(e)})).json()},verifyEmail:async e=>{let t=this.getRoute(`auth`),n=new URL(`${this.baseUrl}${t}/verify-email`);return n.searchParams.set(`token`,e.token),e.callbackURL&&n.searchParams.set(`callbackURL`,e.callbackURL),(await this.fetch(n.toString())).json()},deleteUser:async e=>{let t=this.getRoute(`auth`),n=await this.fetch(`${this.baseUrl}${t}/delete-user`,{method:`POST`,body:JSON.stringify(e)});return this.token=void 0,n.json()},sessions:{list:async()=>{let e=this.getRoute(`auth`),t=await(await this.fetch(`${this.baseUrl}${e}/list-sessions`)).json();return{sessions:Array.isArray(t)?t:t?.data??t?.sessions??[]}},revoke:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/revoke-session`,{method:`POST`,body:JSON.stringify({token:e})})).json()},revokeOthers:async()=>{let e=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${e}/revoke-other-sessions`,{method:`POST`,body:`{}`})).json()},revokeAll:async()=>{let e=this.getRoute(`auth`),t=await this.fetch(`${this.baseUrl}${e}/revoke-sessions`,{method:`POST`,body:`{}`});return this.token=void 0,t.json()}},twoFactor:{enable:async e=>{let t=this.getRoute(`auth`),n=await(await this.fetch(`${this.baseUrl}${t}/two-factor/enable`,{method:`POST`,body:JSON.stringify(e)})).json();return n?.data??n},verifyTotp:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/two-factor/verify-totp`,{method:`POST`,body:JSON.stringify(e)})).json()},disable:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/two-factor/disable`,{method:`POST`,body:JSON.stringify(e)})).json()},generateBackupCodes:async e=>{let t=this.getRoute(`auth`),n=await(await this.fetch(`${this.baseUrl}${t}/two-factor/generate-backup-codes`,{method:`POST`,body:JSON.stringify(e)})).json();return n?.data??n},verifyBackupCode:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/two-factor/verify-backup-code`,{method:`POST`,body:JSON.stringify(e)})).json()}},accounts:{list:async()=>{let e=this.getRoute(`auth`),t=await(await this.fetch(`${this.baseUrl}${e}/list-accounts`)).json();return{accounts:Array.isArray(t)?t:t?.data??t?.accounts??[]}},unlink:async e=>{let t=this.getRoute(`auth`);return(await this.fetch(`${this.baseUrl}${t}/unlink-account`,{method:`POST`,body:JSON.stringify(e)})).json()},linkSocial:async e=>{let t=this.getRoute(`auth`),n=e.callbackURL??(typeof window<`u`?window.location.href:void 0),r=await(await this.fetch(`${this.baseUrl}${t}/link-social`,{method:`POST`,body:JSON.stringify({provider:e.provider,callbackURL:n})})).json();return r?.data??r}}},this.storage={upload:async(e,t=`user`)=>{let n={filename:e.name,mimeType:e.type,size:e.size,scope:t},r=this.getRoute(`storage`),{data:i}=await(await this.fetch(`${this.baseUrl}${r}/upload/presigned`,{method:`POST`,body:JSON.stringify(n)})).json(),a=await this.fetchImpl(i.uploadUrl,{method:i.method,headers:i.headers,body:e});if(!a.ok)throw Error(`Storage Upload Failed: ${a.statusText}`);let o={fileId:i.fileId};return(await this.fetch(`${this.baseUrl}${r}/upload/complete`,{method:`POST`,body:JSON.stringify(o)})).json()},getDownloadUrl:async e=>{let t=this.getRoute(`storage`);return(await(await this.fetch(`${this.baseUrl}${t}/files/${e}/url`)).json()).url},getPresignedUrl:async e=>{let t=this.getRoute(`storage`);return(await this.fetch(`${this.baseUrl}${t}/upload/presigned`,{method:`POST`,body:JSON.stringify(e)})).json()},initChunkedUpload:async e=>{let t=this.getRoute(`storage`);return(await this.fetch(`${this.baseUrl}${t}/upload/chunked`,{method:`POST`,body:JSON.stringify(e)})).json()},uploadPart:async(e,t,n,r)=>{let i=this.getRoute(`storage`);return(await this.fetch(`${this.baseUrl}${i}/upload/chunked/${e}/chunk/${t}`,{method:`PUT`,headers:{"x-resume-token":n},body:r})).json()},completeChunkedUpload:async e=>{let t=this.getRoute(`storage`);return(await this.fetch(`${this.baseUrl}${t}/upload/chunked/${e.uploadId}/complete`,{method:`POST`,body:JSON.stringify(e)})).json()},resumeUpload:async(e,t,n,r)=>{let i=this.getRoute(`storage`),{totalChunks:a,uploadedChunks:o}=(await(await this.fetch(`${this.baseUrl}${i}/upload/chunked/${e}/progress`)).json()).data,s=[],c=t instanceof ArrayBuffer?t:await t.arrayBuffer();for(let t=o;t<a;t++){let i=t*n,a=Math.min(i+n,c.byteLength),o=new Blob([c.slice(i,a)]),l=await this.storage.uploadPart(e,t,r,o);s.push({chunkIndex:t,eTag:l.data.eTag})}return this.storage.completeChunkedUpload({uploadId:e,parts:s})}},this.automation={trigger:async(e,t)=>{let n=this.getRoute(`automation`);return(await this.fetch(`${this.baseUrl}${n}/trigger/${e}`,{method:`POST`,body:JSON.stringify(t)})).json()},list:async()=>{let e=this.getRoute(`automation`),t=await this.fetch(`${this.baseUrl}${e}`);return this.unwrapResponse(t)},get:async e=>{let t=this.getRoute(`automation`),n=await this.fetch(`${this.baseUrl}${t}/${e}`);return this.unwrapResponse(n)},create:async(e,t)=>{let n=this.getRoute(`automation`),r=await this.fetch(`${this.baseUrl}${n}`,{method:`POST`,body:JSON.stringify({name:e,...t})});return this.unwrapResponse(r)},update:async(e,t)=>{let n=this.getRoute(`automation`),r=await this.fetch(`${this.baseUrl}${n}/${e}`,{method:`PUT`,body:JSON.stringify({definition:t})});return this.unwrapResponse(r)},delete:async e=>{let t=this.getRoute(`automation`),n=await this.fetch(`${this.baseUrl}${t}/${e}`,{method:`DELETE`});return this.unwrapResponse(n)},toggle:async(e,t)=>{let n=this.getRoute(`automation`),r=await this.fetch(`${this.baseUrl}${n}/${e}/toggle`,{method:`POST`,body:JSON.stringify({enabled:t})});return this.unwrapResponse(r)},runs:{list:async(e,t)=>{let n=this.getRoute(`automation`),r=new URLSearchParams;t?.limit&&r.set(`limit`,String(t.limit)),t?.cursor&&r.set(`cursor`,t.cursor);let i=r.toString(),a=await this.fetch(`${this.baseUrl}${n}/${e}/runs${i?`?${i}`:``}`);return this.unwrapResponse(a)},get:async(e,t)=>{let n=this.getRoute(`automation`),r=await this.fetch(`${this.baseUrl}${n}/${e}/runs/${t}`);return this.unwrapResponse(r)}},getFlow:async e=>{let t=this.getRoute(`automation`),n=await this.fetch(`${this.baseUrl}${t}/${encodeURIComponent(e)}`);return this.unwrapResponse(n)},execute:async(e,t)=>{let n=this.getRoute(`automation`),r=await this.fetch(`${this.baseUrl}${n}/${encodeURIComponent(e)}/trigger`,{method:`POST`,body:JSON.stringify(t??{})});return this.unwrapResponse(r)},listRuns:async(e,t)=>{let n=this.getRoute(`automation`),r=new URLSearchParams;t?.limit!=null&&r.set(`limit`,String(t.limit)),t?.cursor&&r.set(`cursor`,t.cursor);let i=r.toString(),a=await this.fetch(`${this.baseUrl}${n}/${encodeURIComponent(e)}/runs${i?`?${i}`:``}`);return this.unwrapResponse(a)},getRun:async(e,t)=>{let n=this.getRoute(`automation`),r=await this.fetch(`${this.baseUrl}${n}/${encodeURIComponent(e)}/runs/${encodeURIComponent(t)}`);return this.unwrapResponse(r)}},this.permissions={check:async e=>{let t=this.getRoute(`permissions`),n=new URLSearchParams({object:e.object,action:e.action});e.recordId!==void 0&&n.set(`recordId`,e.recordId),e.field!==void 0&&n.set(`field`,e.field);let r=await this.fetch(`${this.baseUrl}${t}/check?${n.toString()}`);return this.unwrapResponse(r)},getObjectPermissions:async e=>{let t=this.getRoute(`permissions`),n=await this.fetch(`${this.baseUrl}${t}/objects/${encodeURIComponent(e)}`);return this.unwrapResponse(n)},getEffectivePermissions:async()=>{let e=this.getRoute(`permissions`),t=await this.fetch(`${this.baseUrl}${e}/effective`);return this.unwrapResponse(t)}},this.realtime={connect:async e=>{let t=this.getRoute(`realtime`),n=await this.fetch(`${this.baseUrl}${t}/connect`,{method:`POST`,body:JSON.stringify(e||{})});return this.unwrapResponse(n)},disconnect:async()=>{let e=this.getRoute(`realtime`);await this.fetch(`${this.baseUrl}${e}/disconnect`,{method:`POST`})},subscribe:async e=>{let t=this.getRoute(`realtime`),n=await this.fetch(`${this.baseUrl}${t}/subscribe`,{method:`POST`,body:JSON.stringify(e)});return this.unwrapResponse(n)},unsubscribe:async e=>{let t=this.getRoute(`realtime`);await this.fetch(`${this.baseUrl}${t}/unsubscribe`,{method:`POST`,body:JSON.stringify({subscriptionId:e})})},setPresence:async(e,t)=>{let n=this.getRoute(`realtime`);await this.fetch(`${this.baseUrl}${n}/presence`,{method:`PUT`,body:JSON.stringify({channel:e,state:t})})},getPresence:async e=>{let t=this.getRoute(`realtime`),n=await this.fetch(`${this.baseUrl}${t}/presence/${encodeURIComponent(e)}`);return this.unwrapResponse(n)}},this.workflow={getConfig:async e=>{let t=this.getRoute(`workflow`),n=await this.fetch(`${this.baseUrl}${t}/${encodeURIComponent(e)}/config`);return this.unwrapResponse(n)},getState:async(e,t)=>{let n=this.getRoute(`workflow`),r=await this.fetch(`${this.baseUrl}${n}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/state`);return this.unwrapResponse(r)},transition:async e=>{let t=this.getRoute(`workflow`),n=await this.fetch(`${this.baseUrl}${t}/${encodeURIComponent(e.object)}/${encodeURIComponent(e.recordId)}/transition`,{method:`POST`,body:JSON.stringify({transition:e.transition,comment:e.comment,data:e.data})});return this.unwrapResponse(n)},approve:async e=>{let t=this.getRoute(`workflow`),n=await this.fetch(`${this.baseUrl}${t}/${encodeURIComponent(e.object)}/${encodeURIComponent(e.recordId)}/approve`,{method:`POST`,body:JSON.stringify({comment:e.comment,data:e.data})});return this.unwrapResponse(n)},reject:async e=>{let t=this.getRoute(`workflow`),n=await this.fetch(`${this.baseUrl}${t}/${encodeURIComponent(e.object)}/${encodeURIComponent(e.recordId)}/reject`,{method:`POST`,body:JSON.stringify({reason:e.reason,comment:e.comment})});return this.unwrapResponse(n)}},this.views={list:async(e,t)=>{let n=this.getRoute(`views`),r=new URLSearchParams;t&&r.set(`type`,t);let i=r.toString(),a=await this.fetch(`${this.baseUrl}${n}/${encodeURIComponent(e)}${i?`?${i}`:``}`);return this.unwrapResponse(a)},get:async(e,t)=>{let n=this.getRoute(`views`),r=await this.fetch(`${this.baseUrl}${n}/${encodeURIComponent(e)}/${encodeURIComponent(t)}`);return this.unwrapResponse(r)},create:async(e,t)=>{let n=this.getRoute(`views`),r=await this.fetch(`${this.baseUrl}${n}/${encodeURIComponent(e)}`,{method:`POST`,body:JSON.stringify({object:e,data:t})});return this.unwrapResponse(r)},update:async(e,t,n)=>{let r=this.getRoute(`views`),i=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{method:`PUT`,body:JSON.stringify({object:e,viewId:t,data:n})});return this.unwrapResponse(i)},delete:async(e,t)=>{let n=this.getRoute(`views`),r=await this.fetch(`${this.baseUrl}${n}/${encodeURIComponent(e)}/${encodeURIComponent(t)}`,{method:`DELETE`});return this.unwrapResponse(r)}},this.notifications={registerDevice:async e=>{let t=this.getRoute(`notifications`),n=await this.fetch(`${this.baseUrl}${t}/devices`,{method:`POST`,body:JSON.stringify(e)});return this.unwrapResponse(n)},unregisterDevice:async e=>{let t=this.getRoute(`notifications`),n=await this.fetch(`${this.baseUrl}${t}/devices/${encodeURIComponent(e)}`,{method:`DELETE`});return this.unwrapResponse(n)},getPreferences:async()=>{let e=this.getRoute(`notifications`),t=await this.fetch(`${this.baseUrl}${e}/preferences`);return this.unwrapResponse(t)},updatePreferences:async e=>{let t=this.getRoute(`notifications`),n=await this.fetch(`${this.baseUrl}${t}/preferences`,{method:`PUT`,body:JSON.stringify({preferences:e})});return this.unwrapResponse(n)},list:async e=>{let t=this.getRoute(`notifications`),n=new URLSearchParams;e?.read!==void 0&&n.set(`read`,String(e.read)),e?.type&&n.set(`type`,e.type),e?.limit&&n.set(`limit`,String(e.limit)),e?.cursor&&n.set(`cursor`,e.cursor);let r=n.toString(),i=await this.fetch(`${this.baseUrl}${t}${r?`?${r}`:``}`);return this.unwrapResponse(i)},markRead:async e=>{let t=this.getRoute(`notifications`),n=await this.fetch(`${this.baseUrl}${t}/read`,{method:`POST`,body:JSON.stringify({ids:e})});return this.unwrapResponse(n)},markAllRead:async()=>{let e=this.getRoute(`notifications`),t=await this.fetch(`${this.baseUrl}${e}/read/all`,{method:`POST`});return this.unwrapResponse(t)}},this.ai={nlq:async e=>{let t=this.getRoute(`ai`),n=await this.fetch(`${this.baseUrl}${t}/nlq`,{method:`POST`,body:JSON.stringify(e)});return this.unwrapResponse(n)},suggest:async e=>{let t=this.getRoute(`ai`),n=await this.fetch(`${this.baseUrl}${t}/suggest`,{method:`POST`,body:JSON.stringify(e)});return this.unwrapResponse(n)},insights:async e=>{let t=this.getRoute(`ai`),n=await this.fetch(`${this.baseUrl}${t}/insights`,{method:`POST`,body:JSON.stringify(e)});return this.unwrapResponse(n)}},this.i18n={getLocales:async()=>{let e=this.getRoute(`i18n`),t=await this.fetch(`${this.baseUrl}${e}/locales`);return this.unwrapResponse(t)},getTranslations:async(e,t)=>{let n=this.getRoute(`i18n`),r=new URLSearchParams;r.set(`locale`,e),t?.namespace&&r.set(`namespace`,t.namespace),t?.keys&&r.set(`keys`,t.keys.join(`,`));let i=await this.fetch(`${this.baseUrl}${n}/translations?${r.toString()}`);return this.unwrapResponse(i)},getFieldLabels:async(e,t)=>{let n=this.getRoute(`i18n`),r=await this.fetch(`${this.baseUrl}${n}/labels/${encodeURIComponent(e)}?locale=${encodeURIComponent(t)}`);return this.unwrapResponse(r)}},this.feed={list:async(e,t,n)=>{let r=this.getRoute(`data`),i=new URLSearchParams;n?.type&&i.set(`type`,n.type),n?.limit&&i.set(`limit`,String(n.limit)),n?.cursor&&i.set(`cursor`,n.cursor);let a=i.toString(),o=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/feed${a?`?${a}`:``}`);return this.unwrapResponse(o)},create:async(e,t,n)=>{let r=this.getRoute(`data`),i=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/feed`,{method:`POST`,body:JSON.stringify(n)});return this.unwrapResponse(i)},update:async(e,t,n,r)=>{let i=this.getRoute(`data`),a=await this.fetch(`${this.baseUrl}${i}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/feed/${encodeURIComponent(n)}`,{method:`PUT`,body:JSON.stringify(r)});return this.unwrapResponse(a)},delete:async(e,t,n)=>{let r=this.getRoute(`data`),i=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/feed/${encodeURIComponent(n)}`,{method:`DELETE`});return this.unwrapResponse(i)},addReaction:async(e,t,n,r)=>{let i=this.getRoute(`data`),a=await this.fetch(`${this.baseUrl}${i}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/feed/${encodeURIComponent(n)}/reactions`,{method:`POST`,body:JSON.stringify({emoji:r})});return this.unwrapResponse(a)},removeReaction:async(e,t,n,r)=>{let i=this.getRoute(`data`),a=await this.fetch(`${this.baseUrl}${i}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/feed/${encodeURIComponent(n)}/reactions/${encodeURIComponent(r)}`,{method:`DELETE`});return this.unwrapResponse(a)},pin:async(e,t,n)=>{let r=this.getRoute(`data`),i=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/feed/${encodeURIComponent(n)}/pin`,{method:`POST`});return this.unwrapResponse(i)},unpin:async(e,t,n)=>{let r=this.getRoute(`data`),i=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/feed/${encodeURIComponent(n)}/pin`,{method:`DELETE`});return this.unwrapResponse(i)},star:async(e,t,n)=>{let r=this.getRoute(`data`),i=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/feed/${encodeURIComponent(n)}/star`,{method:`POST`});return this.unwrapResponse(i)},unstar:async(e,t,n)=>{let r=this.getRoute(`data`),i=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/feed/${encodeURIComponent(n)}/star`,{method:`DELETE`});return this.unwrapResponse(i)},search:async(e,t,n,r)=>{let i=this.getRoute(`data`),a=new URLSearchParams;a.set(`query`,n),r?.type&&a.set(`type`,r.type),r?.actorId&&a.set(`actorId`,r.actorId),r?.dateFrom&&a.set(`dateFrom`,r.dateFrom),r?.dateTo&&a.set(`dateTo`,r.dateTo),r?.limit&&a.set(`limit`,String(r.limit)),r?.cursor&&a.set(`cursor`,r.cursor);let o=await this.fetch(`${this.baseUrl}${i}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/feed/search?${a.toString()}`);return this.unwrapResponse(o)},getChangelog:async(e,t,n)=>{let r=this.getRoute(`data`),i=new URLSearchParams;n?.field&&i.set(`field`,n.field),n?.actorId&&i.set(`actorId`,n.actorId),n?.dateFrom&&i.set(`dateFrom`,n.dateFrom),n?.dateTo&&i.set(`dateTo`,n.dateTo),n?.limit&&i.set(`limit`,String(n.limit)),n?.cursor&&i.set(`cursor`,n.cursor);let a=i.toString(),o=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/changelog${a?`?${a}`:``}`);return this.unwrapResponse(o)},subscribe:async(e,t,n)=>{let r=this.getRoute(`data`),i=await this.fetch(`${this.baseUrl}${r}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/subscribe`,{method:`POST`,body:JSON.stringify(n||{})});return this.unwrapResponse(i)},unsubscribe:async(e,t)=>{let n=this.getRoute(`data`),r=await this.fetch(`${this.baseUrl}${n}/${encodeURIComponent(e)}/${encodeURIComponent(t)}/subscribe`,{method:`DELETE`});return this.unwrapResponse(r)}},this.data={query:async(e,t)=>{let n=this.getRoute(`data`),r=await this.fetch(`${this.baseUrl}${n}/${e}/query`,{method:`POST`,body:JSON.stringify(t)});return this.unwrapResponse(r)},find:async(e,t={})=>{let n=this.getRoute(`data`),r=new URLSearchParams,i=t,a={};if(`where`in t||`fields`in t||`orderBy`in t||`offset`in t?(i.where&&(a.filter=i.where),i.fields&&(a.select=i.fields),i.orderBy&&(a.sort=i.orderBy),i.limit!=null&&(a.top=i.limit),i.offset!=null&&(a.skip=i.offset),i.aggregations&&(a.aggregations=i.aggregations),i.groupBy&&(a.groupBy=i.groupBy)):Object.assign(a,t),a.top&&r.set(`top`,a.top.toString()),a.skip&&r.set(`skip`,a.skip.toString()),a.sort)if(Array.isArray(a.sort)&&typeof a.sort[0]==`object`)r.set(`sort`,JSON.stringify(a.sort));else{let e=Array.isArray(a.sort)?a.sort.join(`,`):a.sort;r.set(`sort`,e)}a.select&&r.set(`select`,a.select.join(`,`));let o=a.filter??a.filters;o&&(this.isFilterAST(o)||Array.isArray(o)?r.set(`filter`,JSON.stringify(o)):typeof o==`object`&&o&&Object.entries(o).forEach(([e,t])=>{t!=null&&r.append(e,String(t))})),a.aggregations&&r.set(`aggregations`,JSON.stringify(a.aggregations)),a.groupBy&&r.set(`groupBy`,a.groupBy.join(`,`));let s=await this.fetch(`${this.baseUrl}${n}/${e}?${r.toString()}`);return this.unwrapResponse(s)},get:async(e,t)=>{let n=this.getRoute(`data`),r=await this.fetch(`${this.baseUrl}${n}/${e}/${t}`);return this.unwrapResponse(r)},create:async(e,t)=>{let n=this.getRoute(`data`),r=await this.fetch(`${this.baseUrl}${n}/${e}`,{method:`POST`,body:JSON.stringify(t)});return this.unwrapResponse(r)},createMany:async(e,t)=>{let n=this.getRoute(`data`),r=await this.fetch(`${this.baseUrl}${n}/${e}/createMany`,{method:`POST`,body:JSON.stringify(t)});return this.unwrapResponse(r)},update:async(e,t,n,r)=>{let i=this.getRoute(`data`),a={};r?.ifMatch&&(a[`If-Match`]=String(r.ifMatch));let o=await this.fetch(`${this.baseUrl}${i}/${e}/${t}`,{method:`PATCH`,body:JSON.stringify(n),...Object.keys(a).length?{headers:a}:{}});return this.unwrapResponse(o)},batch:async(e,t)=>{let n=this.getRoute(`data`),r=await this.fetch(`${this.baseUrl}${n}/${e}/batch`,{method:`POST`,body:JSON.stringify(t)});return this.unwrapResponse(r)},updateMany:async(e,t,n)=>{let r=this.getRoute(`data`),i={records:t,options:n},a=await this.fetch(`${this.baseUrl}${r}/${e}/updateMany`,{method:`POST`,body:JSON.stringify(i)});return this.unwrapResponse(a)},delete:async(e,t,n)=>{let r=this.getRoute(`data`),i={};n?.ifMatch&&(i[`If-Match`]=String(n.ifMatch));let a=await this.fetch(`${this.baseUrl}${r}/${e}/${t}`,{method:`DELETE`,...Object.keys(i).length?{headers:i}:{}});return this.unwrapResponse(a)},deleteMany:async(e,t,n)=>{let r=this.getRoute(`data`),i={ids:t,options:n},a=await this.fetch(`${this.baseUrl}${r}/${e}/deleteMany`,{method:`POST`,body:JSON.stringify(i)});return this.unwrapResponse(a)}},this.baseUrl=e.baseUrl.replace(/\/$/,``),this.token=e.token,this.projectId=e.projectId,this.fetchImpl=e.fetch||globalThis.fetch.bind(globalThis),this.logger=e.logger||jJ({level:e.debug?`debug`:`info`,format:`pretty`}),this.realtimeAPI=new MJ(this.baseUrl,this.token),this.logger.debug(`ObjectStack client created`,{baseUrl:this.baseUrl})}async connect(){this.logger.debug(`Connecting to ObjectStack server`,{baseUrl:this.baseUrl});try{let e;try{let t=`${this.baseUrl}/api/v1/discovery`;this.logger.debug(`Probing protocol-standard discovery endpoint`,{url:t});let n=await this.fetchImpl(t);if(n.ok){let t=await n.json();e=t.data||t,this.logger.debug(`Discovered via /api/v1/discovery`)}}catch(e){this.logger.debug(`Protocol-standard discovery probe failed`,{error:e.message})}if(!e){let t;try{t=`${new URL(this.baseUrl).origin}/.well-known/objectstack`}catch{t=`/.well-known/objectstack`}this.logger.debug(`Falling back to .well-known discovery`,{url:t});let n=await this.fetchImpl(t);if(!n.ok)throw Error(`Failed to connect to ${t}: ${n.statusText}`);let r=await n.json();e=r.data||r}if(!e)throw Error(`Connection failed: No discovery data returned`);return this.discoveryInfo=e,this.logger.info(`Connected to ObjectStack server`,{version:e.version,apiName:e.apiName,services:e.services}),e}catch(e){throw this.logger.error(`Failed to connect to ObjectStack server`,e,{baseUrl:this.baseUrl}),e}}get capabilities(){let e=this.discoveryInfo?.capabilities;if(!e)return;let t={};for(let[n,r]of Object.entries(e))t[n]=typeof r==`object`&&r?!!r.enabled:!!r;return t}project(e){if(!e)throw Error(`[ObjectStack] project(id): projectId is required`);return new PJ(this,e)}_baseUrl(){return this.baseUrl}_fetch(e,t){return this.fetch(e,t)}_unwrap(e){return this.unwrapResponse(e)}_isFilterAST(e){return this.isFilterAST(e)}setProjectId(e){this.projectId=e,this.logger.debug(`Active project changed`,{projectId:e})}getProjectId(){return this.projectId}get events(){return this.realtimeAPI}isFilterAST(e){return ZW(e)}async unwrapResponse(e){let t=await e.json();return t&&typeof t.success==`boolean`&&`data`in t?t.data:t}async fetch(e,t={}){this.logger.debug(`HTTP request`,{method:t.method||`GET`,url:e,hasBody:!!t.body});let n={"Content-Type":`application/json`,...t.headers||{}};this.token&&(n.Authorization=`Bearer ${this.token}`),this.projectId&&(n[`X-Project-Id`]=this.projectId);let r=await this.fetchImpl(e,{...t,headers:n});if(this.logger.debug(`HTTP response`,{method:t.method||`GET`,url:e,status:r.status,ok:r.ok}),!r.ok){let n;try{n=await r.json()}catch{n={message:r.statusText}}this.logger.error(`HTTP request failed`,void 0,{method:t.method||`GET`,url:e,status:r.status,error:n});let i=n?.message??n?.error?.message??(typeof n?.error==`string`?n.error:void 0)??r.statusText,a=n?.code||n?.error?.code,o=Error(`[ObjectStack] ${a?`${a}: `:``}${i}`);throw o.code=a,o.category=n?.category,o.httpStatus=r.status,o.retryable=n?.retryable,o.details=n?.details||n,o}return r}getRoute(e){let t=this.discoveryInfo?.routes;if(t){let n=t[e];if(n)return n}return{data:`/api/v1/data`,metadata:`/api/v1/meta`,discovery:`/api/v1/discovery`,ui:`/api/v1/ui`,auth:`/api/v1/auth`,analytics:`/api/v1/analytics`,storage:`/api/v1/storage`,automation:`/api/v1/automation`,packages:`/api/v1/packages`,permissions:`/api/v1/permissions`,realtime:`/api/v1/realtime`,workflow:`/api/v1/workflow`,views:`/api/v1/ui/views`,notifications:`/api/v1/notifications`,ai:`/api/v1/ai`,i18n:`/api/v1/i18n`,feed:`/api/v1/feed`,graphql:`/graphql`}[e]||`/api/v1/${e}`}},PJ=class{constructor(e,t){this.meta={getTypes:async()=>{let e=await this.parent._fetch(this.url(`/meta`));return this.parent._unwrap(e)},getItems:async(e,t)=>{let n=new URLSearchParams;t?.packageId&&n.set(`package`,t.packageId);let r=n.toString(),i=await this.parent._fetch(this.url(`/meta/${e}${r?`?${r}`:``}`));return this.parent._unwrap(i)},getItem:async(e,t,n)=>{let r=new URLSearchParams;n?.packageId&&r.set(`package`,n.packageId);let i=r.toString(),a=await this.parent._fetch(this.url(`/meta/${e}/${t}${i?`?${i}`:``}`));return this.parent._unwrap(a)},saveItem:async(e,t,n)=>{let r=await this.parent._fetch(this.url(`/meta/${e}/${t}`),{method:`PUT`,body:JSON.stringify(n)});return this.parent._unwrap(r)},deleteItem:async(e,t)=>{let n=await this.parent._fetch(this.url(`/meta/${encodeURIComponent(e)}/${encodeURIComponent(t)}`),{method:`DELETE`});return this.parent._unwrap(n)}},this.data={query:async(e,t)=>{let n=await this.parent._fetch(this.url(`/data/${e}/query`),{method:`POST`,body:JSON.stringify(t)});return this.parent._unwrap(n)},find:async(e,t={})=>{let n=new URLSearchParams,r=t,i={};if(`where`in t||`fields`in t||`orderBy`in t||`offset`in t?(r.where&&(i.filter=r.where),r.fields&&(i.select=r.fields),r.orderBy&&(i.sort=r.orderBy),r.limit!=null&&(i.top=r.limit),r.offset!=null&&(i.skip=r.offset),r.aggregations&&(i.aggregations=r.aggregations),r.groupBy&&(i.groupBy=r.groupBy)):Object.assign(i,t),i.top&&n.set(`top`,i.top.toString()),i.skip&&n.set(`skip`,i.skip.toString()),i.sort)if(Array.isArray(i.sort)&&typeof i.sort[0]==`object`)n.set(`sort`,JSON.stringify(i.sort));else{let e=Array.isArray(i.sort)?i.sort.join(`,`):i.sort;n.set(`sort`,e)}i.select&&n.set(`select`,i.select.join(`,`));let a=i.filter??i.filters;a&&(this.parent._isFilterAST(a)||Array.isArray(a)?n.set(`filter`,JSON.stringify(a)):typeof a==`object`&&a&&Object.entries(a).forEach(([e,t])=>{t!=null&&n.append(e,String(t))})),i.aggregations&&n.set(`aggregations`,JSON.stringify(i.aggregations)),i.groupBy&&n.set(`groupBy`,i.groupBy.join(`,`));let o=n.toString(),s=await this.parent._fetch(this.url(`/data/${e}${o?`?${o}`:``}`));return this.parent._unwrap(s)},get:async(e,t)=>{let n=await this.parent._fetch(this.url(`/data/${e}/${t}`));return this.parent._unwrap(n)},create:async(e,t)=>{let n=await this.parent._fetch(this.url(`/data/${e}`),{method:`POST`,body:JSON.stringify(t)});return this.parent._unwrap(n)},createMany:async(e,t)=>{let n=await this.parent._fetch(this.url(`/data/${e}/createMany`),{method:`POST`,body:JSON.stringify(t)});return this.parent._unwrap(n)},update:async(e,t,n)=>{let r=await this.parent._fetch(this.url(`/data/${e}/${t}`),{method:`PATCH`,body:JSON.stringify(n)});return this.parent._unwrap(r)},batch:async(e,t)=>{let n=await this.parent._fetch(this.url(`/data/${e}/batch`),{method:`POST`,body:JSON.stringify(t)});return this.parent._unwrap(n)},updateMany:async(e,t,n)=>{let r={records:t,options:n},i=await this.parent._fetch(this.url(`/data/${e}/updateMany`),{method:`POST`,body:JSON.stringify(r)});return this.parent._unwrap(i)},delete:async(e,t)=>{let n=await this.parent._fetch(this.url(`/data/${e}/${t}`),{method:`DELETE`});return this.parent._unwrap(n)},deleteMany:async(e,t,n)=>{let r={ids:t,options:n},i=await this.parent._fetch(this.url(`/data/${e}/deleteMany`),{method:`POST`,body:JSON.stringify(r)});return this.parent._unwrap(i)}},this.packages={list:async()=>{let e=await this.parent._fetch(this.url(`/packages`));return this.parent._unwrap(e)},get:async(e,t)=>{let n=t?`?version=${encodeURIComponent(t)}`:``,r=await this.parent._fetch(this.url(`/packages/${encodeURIComponent(e)}${n}`));return this.parent._unwrap(r)}},this.automation={getFlow:async e=>{let t=await this.parent._fetch(this.url(`/automation/${encodeURIComponent(e)}`));return this.parent._unwrap(t)},execute:async(e,t)=>{let n=await this.parent._fetch(this.url(`/automation/${encodeURIComponent(e)}/trigger`),{method:`POST`,body:JSON.stringify(t??{})});return this.parent._unwrap(n)},listRuns:async(e,t)=>{let n=new URLSearchParams;t?.limit!=null&&n.set(`limit`,String(t.limit)),t?.cursor&&n.set(`cursor`,t.cursor);let r=n.toString(),i=await this.parent._fetch(this.url(`/automation/${encodeURIComponent(e)}/runs${r?`?${r}`:``}`));return this.parent._unwrap(i)},getRun:async(e,t)=>{let n=await this.parent._fetch(this.url(`/automation/${encodeURIComponent(e)}/runs/${encodeURIComponent(t)}`));return this.parent._unwrap(n)}},this.parent=e,this.projectId=t}getProjectId(){return this.projectId}scope(){return`/api/v1/projects/${encodeURIComponent(this.projectId)}`}url(e){return`${this.parent._baseUrl()}${this.scope()}${e}`}},FJ=Object.defineProperty,IJ=(e,t,n)=>t in e?FJ(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,LJ=(e,t,n)=>IJ(e,typeof t==`symbol`?t:t+``,n);function RJ(e){return{$eq:`=`,$ne:`!=`,$gt:`>`,$gte:`>=`,$lt:`<`,$lte:`<=`,$in:`in`,$nin:`nin`,$notin:`nin`,$between:`between`,$contains:`contains`,$notContains:`notcontains`,$notcontains:`notcontains`,$startsWith:`startswith`,$startswith:`startswith`,$endsWith:`endswith`,$endswith:`endswith`}[e]||null}function zJ(e){let t=[];for(let[n,r]of Object.entries(e))if(r!=null)if(typeof r==`object`&&!Array.isArray(r))for(let[e,i]of Object.entries(r)){if(e===`$regex`){console.warn(`[ObjectUI] Warning: $regex operator is not fully supported. Converting to 'contains' which only supports substring matching, not regex patterns. Field: '${n}', Value: ${JSON.stringify(i)}. Consider using $contains or $startsWith instead.`),t.push([n,`contains`,i]);continue}if(e===`$null`){t.push([n,i?`is_null`:`is_not_null`,!0]);continue}if(e===`$exists`){t.push([n,i?`is_not_null`:`is_null`,!0]);continue}let r=RJ(e);if(r)t.push([n,r,i]);else throw Error(`[ObjectUI] Unknown filter operator '${e}' for field '${n}'. Supported operators: $eq, $ne, $gt, $gte, $lt, $lte, $in, $nin, $between, $contains, $notContains, $startsWith, $endsWith, $null, $exists. If you need exact object matching, use the value directly without an operator.`)}else t.push([n,`=`,r]);return t.length===0?e:t.length===1?t[0]:[`and`,...t]}var BJ=class{constructor(e={}){LJ(this,`cache`),LJ(this,`inflight`),LJ(this,`maxSize`),LJ(this,`ttl`),LJ(this,`stats`),this.cache=new Map,this.inflight=new Map,this.maxSize=e.maxSize||100,this.ttl=e.ttl||300*1e3,this.stats={hits:0,misses:0,evictions:0,coalesced:0}}async get(e,t){let n=Date.now(),r=this.cache.get(e);if(r){if(n-r.timestamp<this.ttl)return r.accessCount++,r.lastAccessed=n,this.stats.hits++,this.cache.delete(e),this.cache.set(e,r),r.data;this.cache.delete(e)}let i=this.inflight.get(e);if(i)return this.stats.coalesced++,i;this.stats.misses++;let a=(async()=>{try{let n=await t();return this.set(e,n),n}finally{this.inflight.delete(e)}})();return this.inflight.set(e,a),a}prime(e,t){this.set(e,t)}set(e,t){let n=Date.now();this.cache.size>=this.maxSize&&!this.cache.has(e)&&this.evictLRU(),this.cache.set(e,{data:t,timestamp:n,accessCount:1,lastAccessed:n})}evictLRU(){let e=this.cache.keys().next().value;e!==void 0&&(this.cache.delete(e),this.stats.evictions++)}invalidate(e){e?this.cache.delete(e):this.cache.clear()}clear(){this.cache.clear(),this.inflight.clear(),this.stats={hits:0,misses:0,evictions:0,coalesced:0}}getStats(){let e=this.stats.hits+this.stats.misses,t=e>0?this.stats.hits/e:0;return{size:this.cache.size,maxSize:this.maxSize,hits:this.stats.hits,misses:this.stats.misses,evictions:this.stats.evictions,coalesced:this.stats.coalesced,hitRate:t}}getCachedSync(e){let t=this.cache.get(e);if(t){if(this.ttl>0&&Date.now()-t.timestamp>this.ttl){this.cache.delete(e);return}return this.cache.delete(e),this.cache.set(e,t),this.stats.hits++,t.data}}has(e){let t=this.cache.get(e);return t?Date.now()-t.timestamp>=this.ttl?(this.cache.delete(e),!1):!0:!1}},VJ=class extends Error{constructor(e,t,n,r){super(e),LJ(this,`code`,t),LJ(this,`statusCode`,n),LJ(this,`details`,r),this.name=`ObjectStackError`,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}toJSON(){return{name:this.name,message:this.message,code:this.code,statusCode:this.statusCode,details:this.details,stack:this.stack}}},HJ=class extends VJ{constructor(e,t){super(`Metadata not found for object: ${e}`,`METADATA_NOT_FOUND`,404,{objectName:e,...t}),this.name=`MetadataNotFoundError`}},UJ=class extends VJ{constructor(e,t,n,r,i){super(`Bulk ${e} operation failed: ${t} succeeded, ${n} failed`,`BULK_OPERATION_ERROR`,500,{operation:e,successCount:t,failureCount:n,errors:r,...i}),LJ(this,`successCount`,t),LJ(this,`failureCount`,n),LJ(this,`errors`,r),this.name=`BulkOperationError`}getSummary(){let e=this.successCount+this.failureCount,t=e>0?this.failureCount/e:0;return{operation:this.details?.operation,total:e,successful:this.successCount,failed:this.failureCount,failureRate:t,errors:this.errors}}},WJ=class extends VJ{constructor(e,t,n,r){super(`Connection error: ${e}`,`CONNECTION_ERROR`,r||503,{url:t,...n}),LJ(this,`url`,t),this.name=`ConnectionError`}},GJ=class extends VJ{constructor(e=`Authentication failed`,t,n){super(e,`AUTHENTICATION_ERROR`,n||401,t),this.name=`AuthenticationError`}},KJ=class extends VJ{constructor(e,t,n,r){super(e,`VALIDATION_ERROR`,400,{field:t,validationErrors:n,...r}),LJ(this,`field`,t),LJ(this,`validationErrors`,n),this.name=`ValidationError`}getValidationErrors(){return this.validationErrors||[]}};function qJ(e,t){let n=e?.status||e?.statusCode||500,r=e?.message||e?.statusText||`Unknown error`,i={context:t,response:{status:n,data:e?.data,headers:e?.headers}};switch(n){case 401:return new GJ(r,i,401);case 403:return new GJ(r,i,403);case 404:return t?.includes(`metadata`)||t?.includes(`schema`)||t?.includes(`getObjectSchema`)?new HJ(JJ(t),i):new VJ(r,`NOT_FOUND`,404,i);case 400:return new KJ(r,void 0,e?.data?.errors,i);case 503:return new WJ(r,e?.config?.url,i,503);case 504:return new WJ(r,e?.config?.url,i,504);default:return new VJ(r,`UNKNOWN_ERROR`,n,i)}}function JJ(e){if(!e)return`unknown`;let t=e.match(/\(([^)]+)\)/);return t?t[1]:`unknown`}var YJ={equals:`=`,eq:`=`,"==":`=`,not_equals:`!=`,notequals:`!=`,ne:`!=`,greater_than:`>`,greaterthan:`>`,gt:`>`,greater_than_or_equal:`>=`,greater_than_or_equals:`>=`,greaterthanorequal:`>=`,gte:`>=`,less_than:`<`,lessthan:`<`,lt:`<`,less_than_or_equal:`<=`,less_than_or_equals:`<=`,lessthanorequal:`<=`,lte:`<=`,in:`in`,not_in:`nin`,notin:`nin`,nin:`nin`,contains:`contains`,not_contains:`notcontains`,notcontains:`notcontains`,starts_with:`startswith`,startswith:`startswith`,ends_with:`endswith`,endswith:`endswith`,between:`between`,is_null:`isnull`,isnull:`isnull`,is_not_null:`isnotnull`,isnotnull:`isnotnull`};function XJ(e){return typeof e==`string`?YJ[e.toLowerCase()]??YJ[e]??e:null}function ZJ(e){if(!e||typeof e!=`object`)return null;let t=e.field??e.name,n=XJ(e.operator??e.op??`=`);return!t||!n?null:[String(t),n,e.value]}function QJ(e){if(e!=null){if(Array.isArray(e)){if(e.length===0)return;let t=e[0];if(e.length>0&&typeof t==`object`&&t&&!Array.isArray(t)&&t.field!==void 0){let t=e.map(e=>ZJ(e)).filter(e=>e!==null);return t.length===0?void 0:t.length===1?t[0]:[`and`,...t]}return e}if(typeof e==`object`)return Object.keys(e).length===0?void 0:e}}var $J=new Map;async function eY(e,t){let n=e||`<default>`,r=$J.get(n);if(r)return r;let i=t().catch(e=>{throw $J.delete(n),e});return $J.set(n,i),i}function tY(e){if(!e||typeof e!=`object`)return!1;let t=e;if(t.httpStatus===404||t.status===404||t.statusCode===404)return!0;let n=typeof t.code==`string`?t.code:``;return n===`object_not_found`||n===`record_not_found`}var nY=class extends Error{constructor(e){super(e.message??`Record was modified by another user`),LJ(this,`code`,`CONCURRENT_UPDATE`),LJ(this,`httpStatus`,409),LJ(this,`currentVersion`),LJ(this,`currentRecord`),this.name=`ConcurrentUpdateError`,this.currentVersion=e.currentVersion,this.currentRecord=e.currentRecord}};function rY(e){if(!e||typeof e!=`object`)return e;let t=e;if(t.code!==`CONCURRENT_UPDATE`&&t.httpStatus!==409||t.code!==`CONCURRENT_UPDATE`)return e;let n=t.details??{};return new nY({currentVersion:typeof n.currentVersion==`string`?n.currentVersion:null,currentRecord:n.currentRecord??null,message:typeof t.message==`string`?t.message:void 0})}function iY(){let e=e=>{if(!e||typeof e!=`object`)return!1;if(e.status===404||e.statusCode===404)return!0;let t=e.error;if(t&&typeof t==`object`){let e=t.code;if(e===`object_not_found`||e===`record_not_found`)return!0}return!1},t={debug:(e,t)=>console.debug(e,t??``),info:(e,t)=>console.info(e,t??``),warn:(e,t)=>console.warn(e,t??``),error:(t,n,r)=>{if(e(r)){console.debug(`[ObjectStack] ${t} (suppressed expected 404)`,r);return}console.error(t,n??``,r??``)},fatal:(e,t,n)=>console.error(e,t??``,n??``),log:(e,...t)=>console.log(e,...t),child:()=>t,withTrace:()=>t};return t}function aY(e){if(typeof e!=`object`||!e)return JSON.stringify(e);if(Array.isArray(e))return`[${e.map(aY).join(`,`)}]`;let t=e;return`{${Object.keys(t).sort().map(e=>`${JSON.stringify(e)}:${aY(t[e])}`).join(`,`)}}`}var oY=class{constructor(e){LJ(this,`client`),LJ(this,`connected`,!1),LJ(this,`connectPromise`,null),LJ(this,`metadataCache`),LJ(this,`connectionState`,`disconnected`),LJ(this,`connectionStateListeners`,[]),LJ(this,`batchProgressListeners`,[]),LJ(this,`autoReconnect`),LJ(this,`maxReconnectAttempts`),LJ(this,`reconnectDelay`),LJ(this,`reconnectAttempts`,0),LJ(this,`baseUrl`),LJ(this,`token`),LJ(this,`fetchImpl`),LJ(this,`inflightFinds`,new Map),LJ(this,`missingResources`,new Set),this.client=new NJ({...e,logger:iY()}),this.metadataCache=new BJ(e.cache),this.autoReconnect=e.autoReconnect??!0,this.maxReconnectAttempts=e.maxReconnectAttempts??3,this.reconnectDelay=e.reconnectDelay??1e3,this.baseUrl=e.baseUrl,this.token=e.token,this.fetchImpl=e.fetch||globalThis.fetch.bind(globalThis)}async connect(){if(!this.connected)return this.connectPromise?this.connectPromise:(this.setConnectionState(`connecting`),this.connectPromise=(async()=>{try{let e=this.baseUrl||``,t=e?`${e.replace(/\/$/,``)}/api/v1/discovery`:`/api/v1/discovery`,n=await eY(e,async()=>{let e=await this.fetchImpl(t,{method:`GET`,headers:this.token?{Authorization:`Bearer ${this.token}`}:void 0});if(!e.ok)throw Error(`discovery ${e.status} ${e.statusText}`);let n=await e.json();return n&&typeof n.success==`boolean`&&`data`in n?n.data:n});this.client.discoveryInfo=n,this.connected=!0,this.reconnectAttempts=0,this.setConnectionState(`connected`)}catch(e){let t=new WJ(e instanceof Error?e.message:`Failed to connect to ObjectStack server`,void 0,{originalError:e});if(this.setConnectionState(`error`,t),this.autoReconnect&&this.reconnectAttempts<this.maxReconnectAttempts)await this.attemptReconnect();else throw t}finally{this.connectPromise=null}})(),this.connectPromise)}async attemptReconnect(){this.reconnectAttempts++,this.setConnectionState(`reconnecting`);let e=this.reconnectDelay*2**(this.reconnectAttempts-1);await new Promise(t=>setTimeout(t,e)),this.connected=!1,await this.connect()}getConnectionState(){return this.connectionState}isConnected(){return this.connected&&this.connectionState===`connected`}onConnectionStateChange(e){return this.connectionStateListeners.push(e),()=>{let t=this.connectionStateListeners.indexOf(e);t>-1&&this.connectionStateListeners.splice(t,1)}}onBatchProgress(e){return this.batchProgressListeners.push(e),()=>{let t=this.batchProgressListeners.indexOf(e);t>-1&&this.batchProgressListeners.splice(t,1)}}setConnectionState(e,t){this.connectionState=e;let n={state:e,timestamp:Date.now(),error:t};this.connectionStateListeners.forEach(e=>{try{e(n)}catch(e){console.error(`Error in connection state listener:`,e)}})}emitBatchProgress(e){this.batchProgressListeners.forEach(t=>{try{t(e)}catch(e){console.error(`Error in batch progress listener:`,e)}})}async find(e,t){if(this.missingResources.has(e))return{data:[],total:0};let n=`${e}::${aY(t)}`,r=this.inflightFinds.get(n);if(r)return r;let i=(async()=>{if(await this.connect(),t?.$expand&&t.$expand.length>0){let n=await this.rawFindWithPopulate(e,t);return this.normalizeQueryResult(n,t)}let n=this.convertQueryParams(t);try{let r=await this.client.data.find(e,n);return this.normalizeQueryResult(r,t)}catch(t){if(tY(t))return this.missingResources.add(e),{data:[],total:0};throw t}})();this.inflightFinds.set(n,i);let a=()=>{this.inflightFinds.get(n)===i&&this.inflightFinds.delete(n)};return i.then(a,a),i}async findOne(e,t,n){if(await this.connect(),n?.$expand&&n.$expand.length>0)try{let r={...n,$filter:{id:String(t)},$top:1},i=await this.rawFindWithPopulate(e,r);if(Array.isArray(i))return i[0]||null;let a=i;return(a.records||a.value||[])[0]||null}catch(e){if(tY(e))return null}try{return(await this.client.data.get(e,String(t))).record}catch(e){if(tY(e))return null;throw e}}async create(e,t){return await this.connect(),(await this.client.data.create(e,t)).record}async update(e,t,n,r){await this.connect();try{return(await this.client.data.update(e,String(t),n,r?.ifMatch?{ifMatch:r.ifMatch}:void 0)).record}catch(e){throw rY(e)}}async delete(e,t,n){await this.connect();try{return(await this.client.data.delete(e,String(t),n?.ifMatch?{ifMatch:n.ifMatch}:void 0)).deleted}catch(e){throw rY(e)}}async bulkUpdate(e,t,n){if(await this.connect(),!t||t.length===0)return 0;let r=t.map(e=>({id:String(e),data:n})),i=this.client.data.updateMany;if(typeof i==`function`)try{let n=await i(e,r,{continueOnError:!0});return n&&typeof n==`object`&&typeof n.succeeded==`number`?n.succeeded:Array.isArray(n)?n.length:t.length}catch(e){throw rY(e)}let a=0;for(let r of t)try{await this.client.data.update(e,String(r),n),a++}catch{}return a}async bulkDelete(e,t){if(await this.connect(),!t||t.length===0)return 0;let n=t.map(e=>String(e)),r=this.client.data.deleteMany;if(typeof r==`function`)try{let t=await r(e,n,{continueOnError:!0});return t&&typeof t==`object`&&typeof t.succeeded==`number`?t.succeeded:Array.isArray(t)?t.length:n.length}catch(e){throw rY(e)}let i=0;for(let t of n)try{await this.client.data.delete(e,t),i++}catch{}return i}async bulk(e,t,n){if(await this.connect(),!n||n.length===0)return[];let r=n.length,i=0,a=0,o=()=>{this.emitBatchProgress({operation:t,total:r,completed:i,failed:a,percentage:r>0?(i+a)/r*100:0})};try{switch(t){case`create`:{o();let t=await this.client.data.createMany(e,n);return i=t.length,a=r-i,o(),t}case`delete`:{let t=n.map(e=>e.id).filter(Boolean);if(t.length===0){let e=n.map((e,t)=>({index:t,error:`Missing ID for item at index ${t}`}));throw a=n.length,o(),new UJ(`delete`,0,n.length,e)}return o(),await this.client.data.deleteMany(e,t),i=t.length,a=r-i,o(),[]}case`update`:{if(typeof this.client.data.updateMany==`function`)try{o();let t=this.client.data.updateMany,s=await t(e,n);return i=s.length,a=r-i,o(),s}catch{}let t=[],s=[];for(let r=0;r<n.length;r++){let c=n[r],l=c.id;if(!l){s.push({index:r,error:`Missing ID`}),a++,o();continue}try{let n=await this.client.data.update(e,String(l),c);t.push(n.record),i++,o()}catch(e){let t=e instanceof Error?e.message:String(e);s.push({index:r,error:t}),a++,o()}}if(s.length>0)throw new UJ(`update`,t.length,s.length,s,{resource:e,totalRecords:n.length});return t}default:throw new VJ(`Unsupported bulk operation: ${t}`,`UNSUPPORTED_OPERATION`,400)}}catch(r){if(o(),r instanceof UJ||r instanceof VJ)throw r;let i=r instanceof Error?r.message:String(r),a=n.map((e,t)=>({index:t,error:i}));throw new UJ(t,0,n.length,a,{resource:e,originalError:r})}}normalizeQueryResult(e,t){if(Array.isArray(e))return{data:e,total:e.length,page:1,pageSize:e.length,hasMore:!1};let n=e,r=n.records||n.value||[];return{data:r,total:n.total??n.count??r.length,page:t?.$skip&&t.$top?Math.floor(t.$skip/t.$top)+1:1,pageSize:t?.$top,hasMore:t?.$top?r.length===t.$top:!1}}async rawFindWithPopulate(e,t){let n=new URLSearchParams;if(t.$expand&&t.$expand.length>0&&n.set(`populate`,t.$expand.join(`,`)),t.$top!==void 0&&n.set(`top`,String(t.$top)),t.$skip!==void 0&&n.set(`skip`,String(t.$skip)),t.$select&&t.$select.length>0){let e=t.$select.includes(`id`)?t.$select:[`id`,...t.$select];n.set(`select`,e.join(`,`))}if(t.$orderby)if(Array.isArray(t.$orderby)){let e=t.$orderby.map(e=>{if(typeof e==`string`)return e;let t=e.field;return(e.order||`asc`)===`desc`?`-${t}`:t}).join(`,`);n.set(`sort`,e)}else{let e=Object.entries(t.$orderby).map(([e,t])=>t===`desc`?`-${e}`:e).join(`,`);n.set(`sort`,e)}if(t.$filter!==void 0&&t.$filter!==null){let e=QJ(t.$filter);e!==void 0&&n.set(`filter`,JSON.stringify(e))}let r=this.baseUrl.replace(/\/$/,``),i=n.toString(),a=`${r}${/\/api\/v\d+$/i.test(r)?`/data`:`/api/v1/data`}/${e}${i?`?${i}`:``}`,o={"Content-Type":`application/json`};this.token&&(o.Authorization=`Bearer ${this.token}`);let s=await this.fetchImpl(a,{method:`GET`,headers:o});if(!s.ok){let e=await s.json().catch(()=>({message:s.statusText})),t=Error(e?.error?.message||e?.message||s.statusText);throw t.status=s.status,t}let c=await s.json();return c&&typeof c.success==`boolean`&&`data`in c?c.data:c}convertQueryParams(e){if(!e)return{};let t={};if(e.$select&&(t.select=e.$select.includes(`id`)?e.$select:[`id`,...e.$select]),e.$filter!==void 0&&e.$filter!==null&&!(Array.isArray(e.$filter)?e.$filter.length===0:typeof e.$filter==`object`&&Object.keys(e.$filter).length===0))if(Array.isArray(e.$filter))if(e.$filter.length>0&&typeof e.$filter[0]==`object`&&!Array.isArray(e.$filter[0])&&e.$filter[0].field!==void 0){let n=e.$filter.map(e=>ZJ(e)).filter(e=>e!==null);n.length===0||(n.length===1?t.filters=n[0]:t.filters=[`and`,...n])}else t.filters=e.$filter;else t.filters=zJ(e.$filter);return e.$orderby&&(Array.isArray(e.$orderby)?t.sort=e.$orderby.map(e=>{if(typeof e==`string`)return e;let t=e.field;return(e.order||`asc`)===`desc`?`-${t}`:t}):t.sort=Object.entries(e.$orderby).map(([e,t])=>t===`desc`?`-${e}`:e)),e.$skip!==void 0&&(t.skip=e.$skip),e.$top!==void 0&&(t.top=e.$top),t}async getObjectSchema(e){await this.connect();try{return await this.metadataCache.get(e,async()=>{let t=await this.client.meta.getItem(`object`,e);return t&&t.item?t.item:t})}catch(t){let n=t;throw tY(n)?new HJ(e,{originalError:t}):t instanceof VJ?t:qJ(n,`getObjectSchema(${e})`)}}getClient(){return this.client}async getDiscovery(){try{return await this.connect(),this.client.discoveryInfo||null}catch{return null}}async listViewOverrides(e){await this.connect();try{let t=`view-overrides:${e}`;return await this.metadataCache.get(t,async()=>{let t=await this.client.meta.getItems(e),n=Array.isArray(t?.items)?t.items:[],r={};for(let e of n){if(!e||typeof e!=`object`)continue;let t=e.name??e.id??e._name;typeof t==`string`&&t&&(r[t]=e)}return r})}catch{return{}}}async getView(e,t){await this.connect();try{let n=`view:${e}:${t}`;return await this.metadataCache.get(n,async()=>{let n=await this.client.meta.getItem(e,t);return n&&n.item?n.item:n??null})}catch{return null}}async updateViewConfig(e,t,n){await this.connect();try{let r={...n||{},object:n?.object||e,name:t},i=await this.client.meta.saveItem(`view`,t,r),a=`view:${e}:${t}`;return this.metadataCache.invalidate?.(a),this.metadataCache.invalidate?.(`view-overrides:${e}`),this.metadataCache.invalidate?.(`views:${e}`),i&&i.item?i.item:i??void 0}catch(e){throw e}}async listViews(e){await this.connect();try{let t=await this.client.meta.getItems(`view`);return(Array.isArray(t?.items)?t.items:Array.isArray(t)?t:[]).filter(t=>{if(!t)return!1;let n=t.list??t;return(n?.data?.object??n?.object??n?.objectName)===e}).map(e=>e.list??e)}catch(e){return console.warn(`[OBJECTSTACKDataSource] listViews failed:`,e),[]}}async createView(e,t){await this.connect();let n=String(t?.name||``).trim();if(!n){let r=String(t?.label||e||`view`).toLowerCase().replace(/[^a-z0-9_]+/g,`_`).replace(/^_+|_+$/g,``).slice(0,40);(!r||/^[0-9]/.test(r))&&(r=r?`view_${r}`:`view`);let i=Date.now().toString(36);n=`${r}_${i}`}let r={...t,name:n,object:t?.object||e,data:t?.data||{provider:`object`,object:e}};try{let t=await this.client.meta.saveItem(`view`,n,r);return this.metadataCache.invalidate?.(`views:${e}`),t&&t.item?t.item:r}catch(e){throw e}}async updateView(e,t,n){await this.connect();let r={};try{let e=await this.client.meta.getItem(`view`,t);r=e&&(e.item||e)||{},r?.list&&(r=r.list)}catch{}let i={...r,...n,name:t,object:r?.object||r?.data?.object||e};try{let n=await this.client.meta.saveItem(`view`,t,i);return this.metadataCache.invalidate?.(`views:${e}`),this.metadataCache.invalidate?.(`view:${e}:${t}`),n&&n.item?n.item:i}catch(e){throw e}}async deleteView(e,t){await this.connect();try{let n=await this.client.meta.deleteItem(`view`,t);return this.metadataCache.invalidate?.(`views:${e}`),this.metadataCache.invalidate?.(`view:${e}:${t}`),{deleted:!!(n?.deleted??n?.reset??!0)}}catch(e){throw e}}async getApp(e){await this.connect();try{let t=`app:${e}`;return await this.metadataCache.get(t,async()=>{let t=await this.client.meta.getItem(`apps`,e);return t&&t.item?t.item:t??null})}catch{return null}}async getPage(e){await this.connect();try{let t=`page:${e}`;return await this.metadataCache.get(t,async()=>{let t=await this.client.meta.getItem(`pages`,e);return t&&t.item?t.item:t??null})}catch{return null}}async updateDashboard(e,t){await this.connect();try{let n=await this.client.meta.saveItem(`dashboard`,e,t);return this.metadataCache.invalidate?.(`dashboards`),this.metadataCache.invalidate?.(`dashboard:${e}`),n&&n.item?n.item:n??void 0}catch(e){throw e}}async aggregate(e,t){if(await this.connect(),t!=null&&(Array.isArray(t.groupBy)||Array.isArray(t.aggregations)||t.where!==void 0)){let n={};Array.isArray(t.groupBy)&&(n.groupBy=t.groupBy),Array.isArray(t.aggregations)&&(n.aggregations=t.aggregations),t.where!==void 0&&(n.where=t.where),typeof t.limit==`number`&&(n.limit=t.limit);let r=await this.client.data.query(e,n);return Array.isArray(r)?r:Array.isArray(r?.records)?r.records:Array.isArray(r?.data)?r.data:[]}try{let n=t.function===`count`?`count`:`${t.field}_${t.function}`,r={cube:e,measures:[n],dimensions:t.groupBy&&t.groupBy!==`_all`?[t.groupBy]:[]};t.filter&&(r.where=t.filter);let i=await this.client.analytics.query(r),a=Array.isArray(i)?i:i?.rows&&Array.isArray(i.rows)?i.rows:i?.data&&Array.isArray(i.data)?i.data:i?.data?.rows&&Array.isArray(i.data.rows)?i.data.rows:i?.results&&Array.isArray(i.results)?i.results:[];if(a.length>0&&a.every(e=>e==null?!0:!(n in e&&e[n]!=null||t.field in e&&e[t.field]!=null))){let n=(await this.find(e,t.filter?{$filter:t.filter}:void 0)).data||[];return n.length===0?[]:this.aggregateClientSide(n,t)}return a.map(e=>{let r={...e};return n!==t.field&&n in r&&(r[t.field]=r[n],delete r[n]),r})}catch{let n=(await this.find(e,t.filter?{$filter:t.filter}:void 0)).data||[];return n.length===0?[]:this.aggregateClientSide(n,t)}}aggregateClientSide(e,t){let{field:n,function:r,groupBy:i}=t,a={};for(let t of e){let e=String(t[i]??`Unknown`);a[e]||(a[e]=[]),a[e].push(t)}return Object.entries(a).map(([e,t])=>{let a=t.map(e=>Number(e[n])||0),o;switch(r){case`count`:o=t.length;break;case`avg`:o=a.length>0?a.reduce((e,t)=>e+t,0)/a.length:0;break;case`min`:o=a.length>0?Math.min(...a):0;break;case`max`:o=a.length>0?Math.max(...a):0;break;default:o=a.reduce((e,t)=>e+t,0);break}return{[i]:e,[n]:o}})}async getItems(e,t){return await this.connect(),await Promise.all(t.map(async t=>{let n=`${e}:${t}`;return this.metadataCache.get(n,async()=>{let n=await this.client.meta.getItem(e,t);return n&&n.item?n.item:n})}))}getCached(e){return this.metadataCache.getCachedSync(e)}getCacheStats(){return this.metadataCache.getStats()}invalidateCache(e){this.metadataCache.invalidate(e)}clearCache(){this.metadataCache.clear()}async uploadFile(e,t,n){await this.connect();let r=new FormData;r.append(`file`,t),n?.recordId&&r.append(`recordId`,n.recordId),n?.fieldName&&r.append(`fieldName`,n.fieldName),n?.metadata&&r.append(`metadata`,JSON.stringify(n.metadata));let i=`${this.baseUrl}/api/data/${encodeURIComponent(e)}/upload`,a=await fetch(i,{method:`POST`,body:r,headers:{...this.getAuthHeaders()}});if(!a.ok)throw new VJ((await a.json().catch(()=>({message:a.statusText}))).message||`Upload failed with status ${a.status}`,`UPLOAD_ERROR`,a.status);return a.json()}async uploadFiles(e,t,n){await this.connect();let r=new FormData;t.forEach((e,t)=>{r.append(`files`,e,e.name||`file-${t}`)}),n?.recordId&&r.append(`recordId`,n.recordId),n?.fieldName&&r.append(`fieldName`,n.fieldName),n?.metadata&&r.append(`metadata`,JSON.stringify(n.metadata));let i=`${this.baseUrl}/api/data/${encodeURIComponent(e)}/upload`,a=await fetch(i,{method:`POST`,body:r,headers:{...this.getAuthHeaders()}});if(!a.ok)throw new VJ((await a.json().catch(()=>({message:a.statusText}))).message||`Upload failed with status ${a.status}`,`UPLOAD_ERROR`,a.status);return a.json()}async cancelPendingApproval(e,t){await this.connect();let n=`${this.baseUrl}/api/v1/approvals/requests?recordId=${encodeURIComponent(t)}&object=${encodeURIComponent(e)}`,r=await this.fetchImpl(n,{method:`GET`,headers:{"Content-Type":`application/json`,...this.getAuthHeaders()}});if(!r.ok)throw new VJ(`Failed to look up approval requests (status ${r.status})`,`APPROVAL_LOOKUP_FAILED`,r.status);let i=await r.json().catch(()=>({})),a=(Array.isArray(i)?i:i?.data??[]).find(e=>e?.status===`pending`||e?.status===`in_approval`);if(!a?.id)throw new VJ(`No pending approval request found for this record`,`NO_PENDING_REQUEST`,404);let o=`${this.baseUrl}/api/v1/approvals/requests/${encodeURIComponent(a.id)}/recall`,s=await this.fetchImpl(o,{method:`POST`,headers:{"Content-Type":`application/json`,...this.getAuthHeaders()},body:JSON.stringify({})});if(!s.ok){let e=await s.json().catch(()=>({}));throw new VJ(e?.error||e?.message||`Recall failed with status ${s.status}`,e?.code||`APPROVAL_RECALL_FAILED`,s.status)}let c=await s.json().catch(()=>({}));return{requestId:a.id,status:c?.data?.request?.status??`recalled`}}getAuthHeaders(){let e={};return this.token&&(e.Authorization=`Bearer ${this.token}`),e}};function sY(e){return new oY(e)}var cY=new Set([`textarea`,`markdown`,`html`,`grid`,`rich-text`,`field:textarea`,`field:markdown`,`field:html`,`field:grid`,`field:rich-text`]);function lY(e){return cY.has(e)}function uY(e,t){let n;return n=e<=3?1:2,t!==void 0&&t<640?Math.min(n,1):n}function dY(e,t){return t<=1?e:e.map(e=>e.span===void 0&&e.type&&lY(e.type)?{...e,span:t}:e)}function fY(e,t,n){if(t!==void 0)return{fields:dY(e,t),columns:t};let r=uY(e.length,n);return{fields:dY(e,r),columns:r}}function pY(e,t){return function(){try{let n=hu();return n.t(t)===t?{t:(t,n)=>{let r=e[t]||t;if(n)for(let[e,t]of Object.entries(n))r=r.replace(`{{${e}}}`,String(t));return r}}:{t:n.t}}catch{return{t:(t,n)=>{let r=e[t]||t;if(n)for(let[e,t]of Object.entries(n))r=r.replace(`{{${e}}}`,String(t));return r}}}}}var mY=pY({"detail.back":`Back`,"detail.edit":`Edit`,"detail.editInline":`Edit`,"detail.save":`Save`,"detail.saveChanges":`Save changes`,"detail.editFieldsInline":`Edit fields inline`,"detail.cancel":`Cancel`,"detail.cancelEdit":`Discard changes`,"detail.openInNewTab":`Open in new tab`,"detail.share":`Share`,"detail.duplicate":`Duplicate`,"detail.export":`Export`,"detail.viewHistory":`View history`,"detail.delete":`Delete`,"detail.moreActions":`More actions`,"detail.addToFavorites":`Add to favorites`,"detail.removeFromFavorites":`Remove from favorites`,"detail.previousRecord":`Previous record`,"detail.nextRecord":`Next record`,"detail.recordOf":`{{current}} of {{total}}`,"detail.recordNotFound":`Record not found`,"detail.recordNotFoundDescription":`The record you are looking for does not exist or may have been deleted.`,"detail.goBack":`Go back`,"detail.details":`Details`,"detail.related":`Related`,"detail.relatedRecords":`{{count}} records`,"detail.relatedRecordOne":`{{count}} record`,"detail.noRelatedRecords":`No related records found`,"detail.loading":`Loading...`,"detail.copyToClipboard":`Copy to clipboard`,"detail.copied":`Copied!`,"detail.deleteConfirmation":`Are you sure you want to delete this record?`,"detail.editRecord":`Edit record`,"detail.viewAll":`View All`,"detail.new":`New`,"detail.emptyValue":`—`,"detail.noValue":`No value`,"detail.activity":`Activity`,"detail.copyRecordId":`Copy record ID`,"detail.showEmptyFields":`Show {{count}} empty fields`,"detail.hideEmptyFields":`Hide empty fields`,"detail.editRow":`Edit`,"detail.deleteRow":`Delete`,"detail.deleteRowConfirmation":`Are you sure you want to delete this record?`,"detail.actions":`Actions`,"detail.previousPage":`Previous`,"detail.nextPage":`Next`,"detail.pageOf":`Page {{current}} of {{total}}`,"detail.sortBy":`Sort by`,"detail.filterPlaceholder":`Filter...`,"detail.highlightFields":`Key Fields`,"detail.comments":`Comments`,"detail.searchComments":`Search comments…`,"detail.addCommentPlaceholder":`Add a comment… (Ctrl+Enter to submit)`,"detail.noMatchingComments":`No matching comments`,"detail.noCommentsYet":`No comments yet`,"detail.pinned":`Pinned`,"detail.pin":`Pin`,"detail.unpin":`Unpin`,"detail.justNow":`just now`,"detail.minutesAgo":`{{count}}m ago`,"detail.hoursAgo":`{{count}}h ago`,"detail.daysAgo":`{{count}}d ago`,"detail.createdBy":`Created by`,"detail.updatedBy":`Updated by`,"detail.dropFilesToUpload":`Drop files here or click to upload`,"detail.attachmentCount":`{{count}} attachment`,"detail.attachmentCountPlural":`{{count}} attachments`,"detail.removeAttachment":`Remove attachment`,"detail.unifiedDiff":`Unified diff`,"detail.sideBySideDiff":`Side-by-side diff`,"detail.noChanges":`No changes`,"detail.previousVersion":`Previous`,"detail.currentVersion":`Current`,"detail.discussion":`Discussion`,"detail.showDiscussion":`Show Discussion ({{count}})`,"detail.hideDiscussion":`Hide discussion`,"detail.bold":`Bold (Ctrl+B)`,"detail.italic":`Italic (Ctrl+I)`,"detail.listFormat":`List`,"detail.inlineCode":`Inline code`,"detail.mentionSomeone":`Mention someone`,"detail.preview":`Preview`,"detail.submitComment":`Submit (Ctrl+Enter)`,"detail.sendComment":`Send`,"detail.writeComment":`Write a comment…`,"detail.subscribedTooltip":`Subscribed — click to unsubscribe`,"detail.unsubscribedTooltip":`Subscribe to notifications`,"detail.firstRecord":`First record (Home)`,"detail.previousRecordKey":`Previous record (←)`,"detail.nextRecordKey":`Next record (→)`,"detail.lastRecord":`Last record (End)`,"detail.noRecords":`No records`,"detail.showEmptyRelated_one":`+ {{count}} empty`,"detail.showEmptyRelated_other":`+ {{count}} empty`,"detail.searchWhileNavigating":`Search while navigating`,"detail.searchRecords":`Search records…`,"detail.allActivity":`All Activity`,"detail.commentsOnly":`Comments Only`,"detail.fieldChangesFilter":`Field Changes`,"detail.tasksOnly":`Tasks Only`,"detail.leaveCommentPlaceholder":`Leave a comment… (Ctrl+Enter to submit)`,"detail.noActivity":`No activity recorded`,"detail.loadMore":`Load more`,"detail.edited":`(edited)`,"detail.via":`via {{source}}`,"detail.replyCount":`{{count}} reply`,"detail.replyCountPlural":`{{count}} replies`,"detail.replyPlaceholder":`Reply…`,"detail.filterActivity":`Filter activity`,"detail.openDiscussion":`Open discussion panel`,"detail.closeDiscussion":`Close discussion panel`,"detail.subscribeAriaLabel":`Subscribe to notifications`,"detail.unsubscribeAriaLabel":`Unsubscribe from notifications`,"detail.clearSearch":`Clear search`,"detail.concurrentUpdateTitle":`This record was modified by someone else`,"detail.concurrentUpdateDescription":`Another user saved a newer version of {{field}} while you were editing. To prevent silently overwriting their change, please choose how to resolve the conflict.`,"detail.concurrentUpdateYourEdit":`Your edit`,"detail.concurrentUpdateCurrentValue":`Current value`,"detail.concurrentUpdateUpdatedBy":`Updated by {{name}}`,"detail.concurrentUpdateUpdatedAt":`Updated at {{when}}`,"detail.concurrentUpdateReload":`Reload latest`,"detail.concurrentUpdateOverwrite":`Overwrite anyway`,"detail.concurrentUpdateCancel":`Cancel`},`detail.back`);function hY(e,t){return!e||e<=1||t<=1?``:t===2?e>=2?`md:col-span-2`:``:e===2?`md:col-span-2`:e>=3?`md:col-span-2 lg:col-span-3`:``}var gY=({section:e,data:t,className:n,objectSchema:r,objectName:i,isEditing:a=!1,onFieldChange:o,virtualScroll:s})=>{let[c,l]=W.useState(e.defaultCollapsed??!1),[u,d]=W.useState(null),[f,p]=W.useState(void 0),[m,h]=W.useState(!1),{t:g}=mY(),{fieldLabel:_,translateOptions:v}=bu(),y=W.useCallback((e,t)=>{let n=t==null?``:String(t);navigator.clipboard.writeText(n).then(()=>{d(e),setTimeout(()=>d(null),2e3)})},[]),b=W.useCallback(e=>{let n=t?.[e.name]??e.value;return n==null||n===``},[t]),x=W.useMemo(()=>e.fields.filter(b).length,[e.fields,b]),S=XC(),C=S?3:4,w=S?.2:.25,T=e.fields.length-x,E=!e.hideEmpty&&!a&&e.fields.length>=C&&x/e.fields.length>=w&&T>0,ee=!m&&(e.hideEmpty||E)?e.fields.filter(e=>!b(e)):e.fields;if(ee.length===0&&x===e.fields.length)return null;let{fields:D,columns:O}=fY(ee,e.columns),k=e=>{let n=t?.[e.name]??e.value;if(e.render)return(0,G.jsx)(zl,{schema:e.render,data:{...t,value:n}});let s=hY(e.span,O),c=r?.fields?.[e.name],l={...e};if(c){!e.type&&c.type&&(l.type=c.type),c.options&&!l.options&&(l.options=c.options),c.currency&&!l.currency&&(l.currency=c.currency),c.precision!==void 0&&l.precision===void 0&&(l.precision=c.precision),c.format&&!l.format&&(l.format=c.format);let t=c.reference_to||c.reference;t&&!l.reference_to&&(l.reference_to=t),c.reference_field&&!l.reference_field&&(l.reference_field=c.reference_field)}i&&Array.isArray(l.options)&&l.options.length>0&&(l.options=v(i,e.name,l.options));let d=(()=>{if(n==null||n===``)return(0,G.jsx)(`span`,{className:`text-muted-foreground/60 text-sm select-none`,"aria-label":g(`detail.noValue`,{defaultValue:`No value`}),title:g(`detail.noValue`,{defaultValue:`No value`}),children:`—`});let t=QA(l)||e.type;if(t){let e=$A(t);if(e)return(0,G.jsx)(e,{value:n,field:l})}return String(n)})(),f=n!=null&&n!==``,p=u===e.name;return(0,G.jsxs)(`div`,{className:q(`space-y-1.5 group`,s),children:[(0,G.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:_(i||``,e.name,e.label||e.name)}),a&&!e.readonly?(0,G.jsx)(`div`,{className:`min-h-[44px] sm:min-h-0`,children:(()=>{let t=l.type||e.type;if(t===`select`&&Array.isArray(l.options)&&l.options.length>0)return(0,G.jsx)(tO,{field:l,value:n==null?``:String(n),onChange:t=>o?.(e.name,t)});if(t===`boolean`)return(0,G.jsx)(YD,{field:l,value:!!n,onChange:t=>o?.(e.name,t)});let r=t===`date`||t===`datetime`;return(0,G.jsx)(`input`,{type:t===`number`?`number`:r?`date`:`text`,className:`w-full px-2 py-1.5 text-sm border rounded-md bg-background focus:outline-none focus:ring-2 focus:ring-ring`,value:n==null?``:r?(()=>{let e=String(n);if(/^\d{4}-\d{2}-\d{2}/.test(e))return e.slice(0,10);let t=new Date(e);return isNaN(t.getTime())?``:t.toLocaleDateString(`en-CA`)})():String(n),onChange:t=>{let n=t.target.value;if(r&&n){let t=new Date(n+`T00:00:00`).toISOString();o?.(e.name,t)}else o?.(e.name,n)}})})()}):(0,G.jsxs)(`div`,{className:q(`flex items-start justify-between gap-2 min-h-[44px] sm:min-h-0 rounded-md`,f&&`cursor-pointer active:bg-muted/60 transition-colors`),onClick:f?()=>y(e.name,n):void 0,onKeyDown:f?t=>{(t.key===`Enter`||t.key===` `)&&(t.preventDefault(),y(e.name,n))}:void 0,role:f?`button`:void 0,tabIndex:f?0:void 0,children:[(0,G.jsx)(`div`,{className:`text-sm flex-1 break-words py-1`,children:d}),f&&(0,G.jsx)(QC,{children:(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-6 w-6 opacity-0 group-hover:opacity-100 transition-opacity shrink-0`,onClick:t=>{t.stopPropagation(),y(e.name,n)},children:p?(0,G.jsx)(Ct,{className:`h-3 w-3 text-green-600`}):(0,G.jsx)(yt,{className:`h-3 w-3`})})}),(0,G.jsx)(tw,{children:g(p?`detail.copied`:`detail.copyToClipboard`)})]})})]})]},e.name)},A=s?.enabled===!0,te=s?.batchSize??20;W.useEffect(()=>{if(!A){p(void 0);return}if(D.length<=te){p(void 0);return}p(te);let e=setTimeout(()=>p(void 0),100);return()=>clearTimeout(e)},[A,D.length,te]);let ne=f===void 0?D:D.slice(0,f),re=x>0&&(e.hideEmpty||E),ie=(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`div`,{className:q(`grid gap-3 sm:gap-4`,O===1?`grid-cols-1`:O===2?`grid-cols-1 md:grid-cols-2`:`grid-cols-1 md:grid-cols-2 lg:grid-cols-3`),children:ne.map(k)}),re&&(0,G.jsx)(`div`,{className:`mt-3 -ml-2`,children:(0,G.jsxs)(J,{type:`button`,variant:`ghost`,size:`sm`,onClick:()=>h(e=>!e),className:`h-7 px-2 text-xs text-muted-foreground hover:text-foreground`,children:[(0,G.jsx)(m?Pt:_n,{className:`h-3.5 w-3.5 mr-1.5`}),m?g(`detail.hideEmptyFields`,{defaultValue:`Hide empty fields`}):g(`detail.showEmptyFields`,{count:x,defaultValue:`Show ${x} empty field${x===1?``:`s`}`})]})})]});return!e.title&&!e.collapsible&&e.showBorder===!1?(0,G.jsx)(`div`,{className:q(n),children:ie}):e.collapsible?(0,G.jsx)(Sx,{open:!c,onOpenChange:e=>l(!e),className:n,children:(0,G.jsxs)(ex,{children:[(0,G.jsx)(Cx,{asChild:!0,children:(0,G.jsxs)(tx,{className:q(`py-3 px-4 sm:py-4 sm:px-6 cursor-pointer hover:bg-muted/50 transition-colors`,e.headerColor&&`bg-${e.headerColor}`),children:[(0,G.jsxs)(nx,{className:`flex items-center justify-between text-base font-semibold tracking-tight`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,G.jsx)(`span`,{children:e.title})]}),(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsx)(c?Xe:nt,{className:`h-4 w-4 text-muted-foreground`})})]}),e.description&&!c&&(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:e.description})]})}),(0,G.jsx)(wx,{children:(0,G.jsx)(ix,{className:`pt-3 sm:pt-4 px-3 sm:px-6 pb-4 sm:pb-5`,children:ie})})]})}):(0,G.jsxs)(ex,{className:q(e.showBorder===!1?`border-none shadow-none`:``,n),children:[e.title&&(0,G.jsxs)(tx,{className:q(`py-3 px-4 sm:py-4 sm:px-6`,e.headerColor&&`bg-${e.headerColor}`),children:[(0,G.jsx)(nx,{className:`flex items-center justify-between text-base font-semibold tracking-tight`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,G.jsx)(`span`,{children:e.title})]})}),e.description&&(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1`,children:e.description})]}),(0,G.jsx)(ix,{className:`pt-3 sm:pt-4 px-3 sm:px-6 pb-4 sm:pb-5`,children:ie})]})},_Y=({tabs:e,data:t,className:n})=>{let[r,i]=W.useState(e[0]?.key),a=e.filter(e=>typeof e.visible==`boolean`?e.visible:(e.visible,!0));return(0,G.jsxs)(Gw,{value:r,onValueChange:i,className:n,children:[(0,G.jsx)(Kw,{className:`w-full justify-start border-b rounded-none bg-transparent p-0`,children:a.map(e=>(0,G.jsx)(qw,{value:e.key,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[e.icon&&(0,G.jsx)(`span`,{children:e.icon}),(0,G.jsx)(`span`,{children:e.label}),e.badge&&(0,G.jsx)(Wb,{variant:`secondary`,className:`ml-1`,children:e.badge})]})},e.key))}),a.map(e=>(0,G.jsx)(Jw,{value:e.key,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:(0,G.jsx)(W.Suspense,{fallback:null,children:Array.isArray(e.content)?(0,G.jsx)(`div`,{className:`space-y-4`,children:e.content.map((e,n)=>(0,G.jsx)(zl,{schema:e,data:t},n))}):(0,G.jsx)(zl,{schema:e.content,data:t})})},e.key))]})};function vY(e){return e&&un[e.split(/[-_\s]/).filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(``)]||Et}var yY=({title:e,type:t,api:n,data:r,schema:i,columns:a,className:o,dataSource:s,objectName:c,onNew:l,onViewAll:u,onRowEdit:d,onRowDelete:f,onRowClick:p,maxColumns:m=6,pageSize:h,sortable:g=!1,filterable:_=!1,collapsible:v=!1,defaultCollapsed:y=!1,referenceField:b,parentId:x,icon:S})=>{let C=r!==void 0,w=r??[],[T,E]=W.useState(w),[ee,D]=W.useState(()=>!!n&&!C),[O,k]=W.useState(0),[A,te]=W.useState(null),[ne,re]=W.useState(`asc`),[ie,j]=W.useState(``),[M,ae]=W.useState(null),[N,oe]=W.useState(y),[P,se]=W.useState({}),{t:F}=mY(),{fieldLabel:ce}=bu();W.useEffect(()=>{C&&E(r??[])},[r,C]),W.useEffect(()=>{n&&s?.getObjectSchema&&!a?.length&&s.getObjectSchema(n).then(ae).catch(e=>{console.warn(`[RelatedList] Failed to fetch schema for ${n}:`,e)})},[n,s,a]),W.useEffect(()=>{if(n&&!C){if(!(b&&x!=null&&x!==``)){n&&(x==null||x===``)&&!b&&console.warn(`[RelatedList] "${n}" has no referenceField/parentId — refusing to fetch all rows. Pass relationshipField + parentId to scope the query.`),E([]),D(!1);return}D(!0);let e={[b]:x};if(s&&typeof s.find==`function`)s.find(n,{$filter:e}).then(e=>{E(Array.isArray(e)?e:Array.isArray(e?.data)?e.data:[]),D(!1)}).catch(e=>{console.error(`Failed to fetch related data:`,e),D(!1)});else{let e=new URLSearchParams({[`filter[${b}]`]:String(x)}).toString();fetch(`${n}?${e}`).then(e=>e.json()).then(e=>{E(Array.isArray(e)?e:e?.data||[])}).catch(e=>{console.error(`Failed to fetch related data:`,e)}).finally(()=>D(!1))}}},[n,C,s,b,x]),W.useEffect(()=>{if(!s?.find||!M?.fields||!T.length)return;let e=M.fields,t=[];for(let[n,r]of Object.entries(e)){if(!r||r.type!==`lookup`&&r.type!==`master_detail`)continue;let e=r.reference_to||r.reference;if(!e)continue;let i=new Set;for(let e of T){let t=e?.[n];t!=null&&(typeof t==`string`&&t?i.add(t):typeof t==`number`&&i.add(String(t)))}let a=P[n]||{},o=Array.from(i).filter(e=>!(e in a));o.length>0&&t.push({fieldName:n,target:e,ids:o})}if(t.length===0)return;let n=!1;return Promise.all(t.map(({fieldName:e,target:t,ids:n})=>s.find(t,{$filter:{id:{$in:n}},$top:n.length}).then(t=>{let n=Array.isArray(t)?t:t?.data||[],r={};for(let e of n){let t=e?.id||e?._id;t&&(r[String(t)]=e?.full_name||e?.fullname||e?.display_name||e?.name||e?.subject||e?.title||e?.label||e?.code||String(t))}return{fieldName:e,map:r}}).catch(t=>(console.warn(`[RelatedList] Failed to resolve lookups for ${e}:`,t),{fieldName:e,map:{}})))).then(e=>{n||se(t=>{let n={...t};for(let{fieldName:t,map:r}of e)n[t]={...n[t]||{},...r};return n})}),()=>{n=!0}},[s,M,T]);let le=W.useMemo(()=>{if(!ie)return T;let e=ie.toLowerCase();return T.filter(t=>Object.values(t).some(t=>t!=null&&String(t).toLowerCase().includes(e)))},[T,ie]),ue=W.useMemo(()=>A?[...le].sort((e,t)=>{let n=e[A],r=t[A];if(n==null&&r==null)return 0;if(n==null)return 1;if(r==null)return-1;let i=String(n).localeCompare(String(r),void 0,{numeric:!0});return ne===`asc`?i:-i}):le,[le,A,ne]),de=h&&h>0?h:0,fe=de?Math.max(1,Math.ceil(ue.length/de)):1,pe=de?ue.slice(O*de,(O+1)*de):ue;W.useEffect(()=>{k(0)},[ie,A,ne]);let me=W.useCallback(e=>{A===e?re(e=>e===`asc`?`desc`:`asc`):(te(e),re(`asc`))},[A]),[I,he]=W.useState(null),L=W.useCallback(e=>{he(e)},[]),ge=W.useCallback(()=>{I&&f?.(I),he(null)},[I,f]),_e=sU(),ve=W.useMemo(()=>{let e=c||n||``,t=t=>!_e?.isLoaded||!e?t:t.filter(t=>{let n=t?.accessorKey||t?.field||t?.name;return n?_e.checkField(e,String(n),`read`):!0}),r=e=>b?e.filter(e=>(e?.accessorKey||e?.field||e?.name)!==b):e,i=e=>e==null||typeof e==`string`&&e.trim()===``||Array.isArray(e)&&e.length===0,o=e=>T.length?e.filter(e=>{let t=e?.accessorKey||e?.field||e?.name;return t?T.some(e=>!i(e?.[t])):!0}):e;if(a&&a.length>0)return o(t(r(a)));if(!M?.fields)return[];let s=e,l=new Set([`image`,`file`,`attachment`,`rich_text`,`html`,`json`]),u=[`name`,`full_name`,`fullname`,`title`,`subject`,`label`,`code`,`number`],d=Object.entries(M.fields).filter(([e,t])=>!(e.startsWith(`_`)||e===`id`||e===b||t?.hidden||t?.type&&l.has(t.type)||_e?.isLoaded&&s&&!_e.checkField(s,e,`read`)));return d.sort(([e,t],[n,r])=>{let i=u.indexOf(e),a=u.indexOf(n),o=i>=0?i:100,s=a>=0?a:100;if(o!==s)return o-s;let c=t?.type===`select`||e.includes(`status`);return c===(r?.type===`select`||n.includes(`status`))?0:c?-1:1}),o(d.map(([e,t])=>{let n={accessorKey:e,header:ce(s,e,t.label||e)};if(t.type){let r=$A(QA({type:t.type,format:t.format})||t.type);if(r){let i=t.type===`lookup`||t.type===`master_detail`?P[e]:void 0,a=i&&Object.keys(i).length>0?Object.entries(i).map(([e,t])=>({value:e,label:t})):void 0,o={name:e,label:t.label||e,type:t.type,...(a||t.options)&&{options:a||t.options},...t.currency&&{currency:t.currency},...t.precision!==void 0&&{precision:t.precision},...t.format&&{format:t.format},...(t.reference_to||t.reference)&&{reference_to:t.reference_to||t.reference},...t.reference_field&&{reference_field:t.reference_field}};n.cell=e=>e==null?W.createElement(`span`,{className:`text-muted-foreground/50 text-xs italic`},`—`):W.createElement(r,{value:e,field:o})}}return n})).slice(0,Math.max(1,m))},[a,M,c,n,ce,b,T,m,P,_e]),R=!!d||!!f,ye=XC(),be=W.useMemo(()=>{if(i)return i;if(ye&&(t===`grid`||t===`table`)){let e=ve[0]?.accessorKey||ve[0]?.field||ve[0]?.name,t=ve.slice(1,4).map(e=>e.accessorKey||e.field||e.name).filter(Boolean);return{type:`object-gallery`,data:pe,objectName:n,gallery:{titleField:e||`name`,visibleFields:t,cardSize:`medium`},onRowClick:p}}switch(t){case`grid`:case`table`:return{type:`data-table`,data:pe,columns:ve,pagination:!1,pageSize:de||10,searchable:!1,exportable:!1,rowActions:R,onRowEdit:d,onRowDelete:f?L:void 0,onRowClick:p};case`list`:return{type:`data-list`,data:pe};default:return{type:`div`,children:`No view configured`}}},[t,pe,ve,i,de,R,d,f,L,p,ye,n]),z=v?`cursor-pointer select-none`:void 0,xe=v?()=>oe(e=>!e):void 0,Se=vY(S),Ce=!ee&&T.length===0,we=_;return(0,G.jsxs)(ex,{className:q(`shadow-none border-border/60 bg-transparent`,Ce&&`bg-muted/10`,o),children:[(0,G.jsx)(tx,{className:q(`py-3 px-4 sm:py-3 min-h-12 sm:min-h-0`,z),onClick:xe,children:(0,G.jsxs)(nx,{className:`flex items-center justify-between gap-2 text-sm font-semibold`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[v&&(0,G.jsx)(N?Xe:nt,{className:`h-3.5 w-3.5 text-muted-foreground shrink-0`}),(0,G.jsx)(Se,{className:`h-4 w-4 text-muted-foreground shrink-0`,"aria-hidden":!0}),(0,G.jsx)(`span`,{className:q(`truncate`,Ce&&`text-muted-foreground font-medium`),children:e}),(0,G.jsx)(Wb,{variant:`secondary`,className:q(`text-xs font-normal h-5 px-1.5`,T.length===0&&`bg-muted text-muted-foreground`),"aria-label":`${T.length} records`,children:T.length}),Ce&&(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground/70 italic ml-1 truncate`,children:F(`detail.noRelatedRecords`)})]}),(0,G.jsx)(`div`,{className:`flex items-center gap-1 shrink-0`,children:l&&(0,G.jsxs)(J,{variant:Ce?`ghost`:`outline`,size:`sm`,onClick:e=>{e.stopPropagation(),l()},className:`gap-1 h-9 sm:h-7 text-xs shadow-none`,children:[(0,G.jsx)(Kt,{className:`h-3.5 w-3.5`}),F(`detail.new`)]})})]})}),!N&&!Ce&&(0,G.jsxs)(ix,{className:q(`pt-0 pb-4 px-4`),children:[we&&(0,G.jsx)(`div`,{className:`mb-3`,children:(0,G.jsx)(VS,{placeholder:F(`detail.filterPlaceholder`),value:ie,onChange:e=>j(e.target.value),className:`h-8 text-sm`})}),g&&ve&&ve.length>0&&T.length>0&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1 mb-3`,children:ve.map(e=>{let t=e.accessorKey||e.field||e.name;if(!t)return null;let n=e.header||e.label||t,r=A===t;return(0,G.jsxs)(J,{variant:r?`secondary`:`ghost`,size:`sm`,className:`gap-1 h-7 text-xs`,onClick:()=>me(t),children:[(0,G.jsx)(jt,{className:`h-3 w-3`}),n,r&&(ne===`asc`?` ↑`:` ↓`)]},t)})}),ee?(0,G.jsx)(`div`,{className:`flex items-center justify-center py-6 text-muted-foreground text-sm`,children:F(`detail.loading`)}):(0,G.jsx)(zl,{schema:be}),de>0&&ue.length>de&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between mt-3 pt-3 border-t`,children:[(0,G.jsxs)(J,{variant:`outline`,size:`sm`,className:`h-7 text-xs gap-1`,disabled:O===0,onClick:()=>k(e=>Math.max(0,e-1)),children:[(0,G.jsx)(Tt,{className:`h-3 w-3`}),F(`detail.previousPage`)]}),(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:F(`detail.pageOf`,{current:O+1,total:fe})}),(0,G.jsxs)(J,{variant:`outline`,size:`sm`,className:`h-7 text-xs gap-1`,disabled:O>=fe-1,onClick:()=>k(e=>Math.min(fe-1,e+1)),children:[F(`detail.nextPage`),(0,G.jsx)(Xe,{className:`h-3 w-3`})]})]}),u&&!Ce&&de>0&&ue.length>de&&(0,G.jsx)(`div`,{className:`mt-3 pt-3 border-t flex justify-center`,children:(0,G.jsxs)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),u()},className:`text-xs text-muted-foreground hover:text-foreground inline-flex items-center gap-1 transition-colors`,children:[F(`detail.viewAll`),(0,G.jsx)(Rt,{className:`h-3 w-3`})]})})]}),(0,G.jsx)(wb,{open:I!==null,onOpenChange:e=>{e||he(null)},children:(0,G.jsxs)(Ob,{children:[(0,G.jsxs)(kb,{children:[(0,G.jsx)(jb,{children:F(`detail.deleteRowTitle`,{defaultValue:`Delete record`})}),(0,G.jsx)(Mb,{children:F(`detail.deleteRowConfirmation`)})]}),(0,G.jsxs)(Ab,{children:[(0,G.jsx)(Pb,{children:F(`detail.cancel`,{defaultValue:`Cancel`})}),(0,G.jsx)(Nb,{onClick:ge,className:`bg-destructive text-destructive-foreground hover:bg-destructive/90`,children:F(`detail.delete`,{defaultValue:`Delete`})})]})]})})]})},bY=({group:e,data:t,className:n,objectSchema:r,objectName:i,isEditing:a=!1,onFieldChange:o})=>{let s=e.collapsible??!0,[c,l]=W.useState(e.defaultCollapsed??!1),u=(0,G.jsx)(`div`,{className:`space-y-3 sm:space-y-4`,children:e.sections.map((e,n)=>(0,G.jsx)(gY,{section:e,data:t,objectSchema:r,objectName:i,isEditing:a,onFieldChange:o},n))});return s?(0,G.jsxs)(Sx,{open:!c,onOpenChange:e=>l(!e),className:n,children:[(0,G.jsx)(Cx,{asChild:!0,children:(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pb-2 border-b cursor-pointer hover:bg-muted/50 transition-colors rounded-t-md px-2 py-1.5`,children:[(0,G.jsx)(c?Xe:nt,{className:`h-4 w-4 text-muted-foreground shrink-0`}),e.icon&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold`,children:e.title})]})}),e.description&&!c&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:e.description}),(0,G.jsx)(wx,{children:(0,G.jsx)(`div`,{className:`mt-3`,children:u})})]}):(0,G.jsxs)(`div`,{className:q(`space-y-3`,n),children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 pb-2 border-b`,children:[e.icon&&(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:e.icon}),(0,G.jsx)(`h3`,{className:`text-lg font-semibold`,children:e.title})]}),e.description&&(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:e.description}),u]})},xY=({fields:e,data:t,className:n,objectName:r,objectSchema:i})=>{let{fieldLabel:a}=bu();if(!e.length||!t)return null;let o=e.filter(e=>{let n=t?.[e.name];return n!=null&&n!==``});return o.length===0?null:(0,G.jsx)(`section`,{className:q(`@container border-b border-border/60 pb-4`,n),"aria-label":`Record highlights`,children:(0,G.jsx)(`div`,{className:q(`flex flex-wrap gap-x-8 gap-y-3`),children:o.map(e=>{let n=t[e.name],o=i?.fields?.[e.name],s=e.type||o?.type,c={name:e.name,label:e.label,type:s||`text`,...o?.options&&{options:o.options},...o?.currency&&{currency:o.currency},...o?.precision!==void 0&&{precision:o.precision},...o?.format&&{format:o.format}},l=$A(QA(c)||s||`text`),u=s===`number`||s===`integer`||s===`currency`||s===`percent`||s===`decimal`;return(0,G.jsxs)(`div`,{className:`flex min-w-[8rem] max-w-[16rem] basis-[10rem] flex-col gap-0.5`,children:[(0,G.jsxs)(`span`,{className:`text-xs font-medium text-muted-foreground uppercase tracking-wide`,children:[e.icon&&(0,G.jsx)(`span`,{className:`mr-1`,children:e.icon}),a(r||``,e.name,e.label)]}),(0,G.jsx)(`span`,{className:q(`block min-w-0 truncate`,u?`text-xl md:text-2xl font-semibold leading-tight tabular-nums tracking-tight`:`text-sm font-semibold`),children:(0,G.jsx)(l,{value:n,field:c})})]},e.name)})})})};function SY(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<7?`${a}d ago`:t.toLocaleDateString()}catch{return e}}var CY=({comments:e,onAddComment:t,onTogglePin:n,searchable:r=!1,className:i})=>{let{t:a}=mY(),[o,s]=W.useState(``),[c,l]=W.useState(!1),[u,d]=W.useState(``),f=W.useCallback(async()=>{let e=o.trim();if(!(!e||!t)){l(!0);try{await t(e),s(``)}finally{l(!1)}}},[o,t]),p=W.useCallback(e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),f())},[f]),m=W.useMemo(()=>[...u.trim()?e.filter(e=>{let t=u.trim().toLowerCase();return e.text.toLowerCase().includes(t)||e.author.toLowerCase().includes(t)}):e].sort((e,t)=>e.pinned&&!t.pinned?-1:!e.pinned&&t.pinned?1:0),[e,u]);return(0,G.jsxs)(ex,{className:q(``,i),children:[(0,G.jsx)(tx,{children:(0,G.jsxs)(nx,{className:`flex items-center gap-2 text-base`,children:[(0,G.jsx)(St,{className:`h-4 w-4`}),a(`detail.comments`),(0,G.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,e.length,`)`]})]})}),(0,G.jsxs)(ix,{className:`space-y-4`,children:[r&&(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsxs)(`div`,{className:`relative flex-1`,children:[(0,G.jsx)(st,{className:`absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground`}),(0,G.jsx)(`input`,{className:`w-full rounded-md border border-input bg-background pl-8 pr-8 py-1.5 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,placeholder:a(`detail.searchComments`),value:u,onChange:e=>d(e.target.value),"aria-label":a(`detail.searchComments`)}),u&&(0,G.jsx)(`button`,{className:`absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground`,onClick:()=>d(``),"aria-label":a(`detail.clearSearch`),type:`button`,children:(0,G.jsx)(At,{className:`h-3.5 w-3.5`})})]})}),t&&(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`textarea`,{className:`flex-1 min-h-[60px] rounded-md border border-input bg-background px-3 py-2 text-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring resize-none`,placeholder:a(`detail.addCommentPlaceholder`),value:o,onChange:e=>s(e.target.value),onKeyDown:p,disabled:c}),(0,G.jsx)(J,{size:`icon`,variant:`default`,onClick:f,disabled:!o.trim()||c,className:`shrink-0 self-end`,children:(0,G.jsx)(et,{className:`h-4 w-4`})})]}),m.length===0?(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground text-center py-4`,children:u.trim()?a(`detail.noMatchingComments`):a(`detail.noCommentsYet`)}):(0,G.jsx)(`div`,{className:`space-y-3`,children:m.map(e=>(0,G.jsxs)(`div`,{className:q(`flex gap-3`,e.pinned&&`bg-muted/40 rounded-md p-2 -mx-2`),children:[(0,G.jsx)(`div`,{className:`shrink-0`,children:e.avatarUrl?(0,G.jsx)(`img`,{src:e.avatarUrl,alt:e.author,className:`h-8 w-8 rounded-full object-cover`}):(0,G.jsx)(`div`,{className:`h-8 w-8 rounded-full bg-muted flex items-center justify-center text-xs font-medium text-muted-foreground`,children:e.author.charAt(0).toUpperCase()})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-0.5`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium truncate`,children:e.author}),(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:SY(e.createdAt)}),e.pinned&&(0,G.jsxs)(`span`,{className:`text-xs text-amber-600 flex items-center gap-0.5`,children:[(0,G.jsx)(sn,{className:`h-3 w-3`}),a(`detail.pinned`)]})]}),(0,G.jsx)(`p`,{className:`text-sm whitespace-pre-wrap break-words`,children:e.text}),n&&(0,G.jsxs)(`button`,{type:`button`,className:`mt-1 text-xs text-muted-foreground hover:text-foreground flex items-center gap-1`,onClick:()=>n(e.id),"aria-label":e.pinned?a(`detail.unpin`):a(`detail.pin`),children:[(0,G.jsx)(sn,{className:`h-3 w-3`}),e.pinned?a(`detail.unpin`):a(`detail.pin`)]})]})]},e.id))})]})]})},wY={field_change:Ye,create:ut,delete:Sn,comment:St,status_change:pn},TY={field_change:`bg-blue-100 text-blue-600`,create:`bg-green-100 text-green-600`,delete:`bg-red-100 text-red-600`,comment:`bg-purple-100 text-purple-600`,status_change:`bg-amber-100 text-amber-600`};function EY(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<7?`${a}d ago`:t.toLocaleDateString()}catch{return e}}function DY(e){return e.description?e.description:e.type===`field_change`&&e.field?`Changed ${e.field.charAt(0).toUpperCase()+e.field.slice(1).replace(/_/g,` `)} from "${e.oldValue==null?`(empty)`:String(e.oldValue)}" to "${e.newValue==null?`(empty)`:String(e.newValue)}"`:e.type===`create`?`Created this record`:e.type===`delete`?`Deleted this record`:e.type===`status_change`&&e.field?`Changed status to "${e.newValue==null?`(empty)`:String(e.newValue)}"`:`Updated record`}var OY={all:`All`,field_change:`Field Changes`,create:`Creates`,delete:`Deletes`,comment:`Comments`,status_change:`Status Changes`},kY=({activities:e,filterable:t=!1,defaultFilter:n=`all`,className:r})=>{let[i,a]=W.useState(n),o=W.useMemo(()=>i===`all`?e:e.filter(e=>e.type===i),[e,i]);return(0,G.jsxs)(ex,{className:q(``,r),children:[(0,G.jsx)(tx,{children:(0,G.jsxs)(nx,{className:`flex items-center gap-2 text-base`,children:[(0,G.jsx)(zt,{className:`h-4 w-4`}),`Activity`,(0,G.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,o.length,`)`]})]})}),(0,G.jsxs)(ix,{children:[t&&(0,G.jsx)(`div`,{className:`flex flex-wrap gap-1.5 mb-4`,role:`group`,"aria-label":`Activity type filter`,children:Object.keys(OY).map(e=>(0,G.jsxs)(`button`,{type:`button`,className:q(`inline-flex items-center gap-1 rounded-full px-2.5 py-0.5 text-xs font-medium transition-colors`,i===e?`bg-primary text-primary-foreground`:`bg-muted text-muted-foreground hover:bg-muted/80`),onClick:()=>a(e),"aria-pressed":i===e,children:[e!==`all`&&W.createElement(wY[e]||Ye,{className:`h-3 w-3`}),OY[e]]},e))}),o.length===0?(0,G.jsx)(lE,{title:`No activity recorded`,className:`py-6`}):(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`div`,{className:`absolute left-4 top-2 bottom-2 w-px bg-border`}),(0,G.jsx)(`div`,{className:`space-y-4`,children:o.map(e=>{let t=wY[e.type]||Ye;return(0,G.jsxs)(`div`,{className:`flex gap-3 relative`,children:[(0,G.jsx)(`div`,{className:q(`shrink-0 h-8 w-8 rounded-full flex items-center justify-center z-10`,TY[e.type]||`bg-gray-100 text-gray-600`),children:(0,G.jsx)(t,{className:`h-3.5 w-3.5`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,G.jsxs)(`p`,{className:`text-sm`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:e.user}),` `,(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:DY(e)})]}),(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground mt-0.5`,children:EY(e.timestamp)})]})]},e.id)})})]})]})]})},AY={create:`default`,update:`secondary`,delete:`destructive`,restore:`outline`,login:`outline`,logout:`outline`,permission_change:`secondary`,config_change:`secondary`,export:`outline`,import:`outline`};function jY(e){if(!e)return``;let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?String(e):t.toLocaleString()}var MY=[[60,`second`],[60,`minute`],[24,`hour`],[7,`day`],[4.34524,`week`],[12,`month`],[1/0,`year`]];function NY(e,t){if(!e)return``;let n=e instanceof Date?e:new Date(e);if(Number.isNaN(n.getTime()))return String(e);let r=(n.getTime()-Date.now())/1e3;for(let[n,i]of MY){if(Math.abs(r)<n)try{return new Intl.RelativeTimeFormat(t,{numeric:`auto`}).format(Math.round(r),i)}catch{return jY(e)}r/=n}return jY(e)}function PY(e){if(!e)return`?`;let t=e.trim().split(/\s+/).filter(Boolean).slice(0,2);return t.length===0?`?`:t.map(e=>e.charAt(0).toUpperCase()).join(``)}function FY(e){if(e==null||e===``)return`—`;if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function IY({entries:e,loading:t,emptyText:n,className:r,locale:i}){return t?(0,G.jsx)(`div`,{className:q(`space-y-3`,r),children:Array.from({length:4}).map((e,t)=>(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(ZC,{className:`h-8 w-8 rounded-full`}),(0,G.jsxs)(`div`,{className:`flex-1 space-y-2`,children:[(0,G.jsx)(ZC,{className:`h-4 w-1/3`}),(0,G.jsx)(ZC,{className:`h-3 w-1/2`})]})]},t))}):!e||e.length===0?(0,G.jsx)(`div`,{className:q(`flex items-center justify-center rounded-md border border-dashed py-10 text-sm text-muted-foreground`,r),children:n??`No history yet`}):(0,G.jsx)(QC,{delayDuration:150,children:(0,G.jsx)(`ol`,{className:q(`space-y-4`,r),children:e.map((e,t)=>{let n=(e.action??``).toLowerCase(),r=AY[n]??`outline`,a=typeof e.user_name==`string`&&e.user_name.trim()||`Unknown user`,o=jY(e.created_at),s=NY(e.created_at,i),c=typeof e.user_avatar==`string`?e.user_avatar:void 0;return(0,G.jsxs)(`li`,{className:`flex items-start gap-3`,children:[(0,G.jsxs)(Bb,{className:`h-8 w-8 mt-0.5 shrink-0`,children:[c?(0,G.jsx)(Vb,{src:c,alt:a}):null,(0,G.jsx)(Hb,{className:`text-[10px] font-medium`,children:PY(e.user_name)})]}),(0,G.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,G.jsxs)(`div`,{className:`flex flex-wrap items-baseline gap-x-2 gap-y-1`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium text-foreground`,children:a}),e.action&&(0,G.jsx)(Wb,{variant:r,className:`text-[10px] uppercase tracking-wide`,children:e.action}),o&&(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground cursor-help`,"aria-label":o,children:s||o})}),(0,G.jsx)(tw,{children:o})]})]}),e.summary&&(0,G.jsx)(`p`,{className:`mt-1 text-sm text-muted-foreground`,children:e.summary}),e.changes&&e.changes.length>0&&(n===`create`?(0,G.jsxs)(`details`,{className:`mt-1 group`,children:[(0,G.jsxs)(`summary`,{className:`cursor-pointer list-none text-xs text-muted-foreground hover:text-foreground inline-flex items-center gap-1 select-none`,children:[(0,G.jsx)(`span`,{className:`transition-transform group-open:rotate-90`,children:`▸`}),(0,G.jsx)(`span`,{children:e.changes.length===1?`1 field populated`:`${e.changes.length} fields populated`})]}),(0,G.jsx)(`ul`,{className:`mt-1.5 space-y-0.5 text-xs text-muted-foreground pl-4`,children:e.changes.map(e=>(0,G.jsxs)(`li`,{className:`leading-relaxed`,children:[(0,G.jsx)(`span`,{className:`font-medium text-foreground`,children:e.label||e.field}),`: `,(0,G.jsx)(`span`,{className:`text-foreground`,children:FY(e.to)})]},e.field))})]}):(0,G.jsx)(`ul`,{className:`mt-1.5 space-y-0.5 text-xs text-muted-foreground`,children:e.changes.map(e=>(0,G.jsxs)(`li`,{className:`leading-relaxed`,children:[(0,G.jsx)(`span`,{className:`font-medium text-foreground`,children:e.label||e.field}),`: `,(0,G.jsx)(`span`,{className:`line-through opacity-70`,children:FY(e.from)}),` → `,(0,G.jsx)(`span`,{className:`text-foreground`,children:FY(e.to)})]},e.field))}))]})]},e.id??t)})})})}var LY={createdAt:`created_at`,createdBy:`created_by`,updatedAt:`updated_at`,updatedBy:`updated_by`};function RY(e){if(!e)return null;if(e instanceof Date)return isNaN(e.getTime())?null:e;if(typeof e==`string`||typeof e==`number`){let t=new Date(e);return isNaN(t.getTime())?null:t}return null}function zY(e,t){let n=Date.now()-e.getTime(),r=Math.max(0,Math.floor(n/1e3));if(r<60)return t(`detail.justNow`);let i=Math.floor(r/60);if(i<60)return t(`detail.minutesAgo`,{count:i});let a=Math.floor(i/60);return a<24?t(`detail.hoursAgo`,{count:a}):t(`detail.daysAgo`,{count:Math.floor(a/24)})}function BY(e){try{return new Intl.DateTimeFormat(void 0,{dateStyle:`medium`,timeStyle:`short`}).format(e)}catch{return e.toISOString()}}var VY=({value:e,objectSchema:t,fieldName:n})=>{if(e==null||e===``)return null;let r=t?.fields?.[n],i=r?.reference_to||r?.reference,a={name:n,type:r?.type||(i?`lookup`:`text`),...i&&{reference_to:i},...r?.reference_field&&{reference_field:r.reference_field}},o=QA(a)||a.type;if(o){let t=$A(o);if(t)return(0,G.jsx)(`span`,{className:`inline-flex items-center [&_a]:text-inherit [&_a]:hover:underline`,children:(0,G.jsx)(t,{value:e,field:a})})}return(0,G.jsx)(`span`,{children:String(e)})},HY=({label:e,user:t,date:n,objectSchema:r,userField:i,t:a})=>{if(!t&&!n)return null;let o=n?(0,G.jsx)(QC,{delayDuration:200,children:(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsx)(`time`,{dateTime:n.toISOString(),className:`cursor-default underline decoration-dotted decoration-muted-foreground/40 underline-offset-2`,children:zY(n,a)})}),(0,G.jsx)(tw,{side:`top`,children:BY(n)})]})}):null;return(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-muted-foreground/70`,children:e}),t?(0,G.jsx)(VY,{value:t,objectSchema:r,fieldName:i}):null,t&&o?(0,G.jsx)(`span`,{className:`text-muted-foreground/40`,children:`·`}):null,o]})},UY=({data:e,objectSchema:t,objectName:n,className:r})=>{let{t:i}=mY();if(!e)return null;let a=RY(e[LY.createdAt]),o=RY(e[LY.updatedAt]),s=e[LY.createdBy],c=e[LY.updatedBy],l=!!(a||s),u=a&&o&&Math.abs(o.getTime()-a.getTime())<2e3,d=!!(o||c)&&!(u&&(s!=null&&c!=null&&String(s)===String(c)||!c));return!l&&!d?null:(0,G.jsxs)(`div`,{className:q(`mt-6 pt-3 border-t border-border/40`,`flex flex-wrap items-center gap-x-4 gap-y-1`,`text-xs text-muted-foreground`,r),"data-testid":`record-meta-footer`,children:[l&&(0,G.jsx)(HY,{label:i(`detail.createdBy`),user:s,date:a,objectSchema:t,userField:LY.createdBy,t:i}),d&&(0,G.jsx)(HY,{label:i(`detail.updatedBy`),user:c,date:o,objectSchema:t,userField:LY.updatedBy,t:i})]})},WY=5;function GY(e,t,n,r){if(e&&typeof e==`object`){if(t.primaryField){let n=e[t.primaryField];if(n!=null&&n!==``)return String(n)}let r=n?.titleFormat,i=typeof r==`string`?r:r&&typeof r==`object`&&typeof r.source==`string`?r.source:void 0;if(i){let t=`[-\\u2013\\u2014|/·,:]`,n=!1,r=i.replace(/\{([^{}]+)\}/g,(t,r)=>{let i=String(r).trim().split(`.`),a=e;for(let e of i){if(a==null)break;a=a[e]}if(a&&typeof a==`object`){let e=a,t=e.name??e.full_name??e.display_name??e.label??e.title??e.subject??null;(t==null||typeof t==`string`&&!t.trim())&&(t=[e.salutation,e.first_name,e.last_name].filter(e=>typeof e==`string`&&e.trim()).map(e=>e.trim()).join(` `)||(typeof e.email==`string`&&e.email.trim()?e.email.trim():null)),a=t}return a!=null&&a!==``?(n=!0,String(a)):`\0`});if(n){let e=r.replace(RegExp(`\\s*${t}\\s*`,`g`),``).replace(RegExp(`\\s*${t}\\s*`,`g`),``).replace(RegExp(`\0`,`g`),``).replace(/\s+/g,` `).trim();if(e)return e}}}if(t.title)return t.title;if(e&&typeof e==`object`)for(let t of[`name`,`full_name`,`fullName`,`title`,`subject`,`label`,`display_name`,`displayName`]){let n=e[t];if(typeof n==`string`&&n.trim())return n.trim();if(n!=null&&n!==``)return String(n)}return r}var KY=({schema:e,dataSource:t,className:n,onEdit:r,onDelete:i,onBack:a,inlineEdit:o=!1,onFieldSave:s,discussionSlot:c,rightRail:l,objectLabel:u,onDataLoaded:d,isFavorite:f,onToggleFavorite:p})=>{let[m,h]=W.useState(e.data),[g,_]=W.useState(!e.data&&!!(e.api&&e.resourceId||t&&e.objectName&&e.resourceId)),[v,y]=W.useState(!1),b=f??v,[x,S]=W.useState(!1),[C,w]=W.useState({}),[T,E]=W.useState(!1),[ee,D]=W.useState(null),[O,k]=W.useState(null),[A,te]=W.useState(!1),[ne,re]=W.useState(0),[ie,j]=W.useState(!1),{t:M}=mY(),{fieldOptionLabel:ae}=bu(),N=XC(),oe=sU(),P=W.useMemo(()=>{if(!oe?.isLoaded||!e.objectName)return e;let t=t=>oe.checkField(e.objectName,t,`read`),n=e=>e&&e.filter(e=>{let n=typeof e==`string`?e:e?.name;return!n||t(n)});return{...e,fields:n(e.fields),sections:e.sections?.map(e=>({...e,fields:n(e.fields)})),summaryFields:n(e.summaryFields)}},[e,oe]);W.useEffect(()=>{m&&d&&d(m)},[m,d]);let se=W.useMemo(()=>{if(P.summaryFields&&P.summaryFields.length>0)return[];let e=[...P.sections?.flatMap(e=>e.fields)||[],...P.fields||[]],t={};for(let n of e)t[n.name]||(t[n.name]=n);if(O?.fields)for(let[e,n]of Object.entries(O.fields))t[e]={...t[e]||{},...n,name:e};let n=e=>m?.[e]!==void 0&&m?.[e]!==null&&m?.[e]!==``,r=[],i=[`status`,`stage`,`state`,`phase`].find(e=>t[e]&&n(e))||Object.keys(t).find(e=>t[e]?.type===`select`&&n(e));i&&r.push(i);let a=Object.keys(t).find(e=>(t[e]?.type===`currency`||/amount|revenue|value|total|price/i.test(e))&&n(e));a&&!r.includes(a)&&r.push(a);let o=Object.keys(t).find(e=>(t[e]?.type===`date`||t[e]?.type===`datetime`)&&/close|due|start|end|expected/i.test(e)&&n(e));return o&&!r.includes(o)&&r.push(o),r},[P.summaryFields,P.sections,P.fields,O,m]),F=P.summaryFields&&P.summaryFields.length>0?P.summaryFields:se,ce=W.useCallback(()=>{P.resourceId&&navigator.clipboard.writeText(String(P.resourceId)).then(()=>{te(!0),setTimeout(()=>te(!1),1500)})},[P.resourceId]);W.useEffect(()=>{let e=!0;if(P.data)return h(P.data),_(!1),t?.getObjectSchema&&P.objectName&&t.getObjectSchema(P.objectName).then(t=>{e&&k(t)}).catch(()=>{}),()=>{e=!1};if(t&&P.objectName&&P.resourceId){_(!0),k(null),h(null);let n=P.objectName,r=P.resourceId,i=`${n}-`,a=[...P.sections?.flatMap(e=>e.fields)||[],...P.fields||[]];(t.getObjectSchema?t.getObjectSchema(n).catch(()=>null):Promise.resolve(null)).then(o=>{if(!e)return;k(o);let s=Wc(o?.fields,a),c=s.length>0?{$expand:s}:void 0,l=c?t.findOne(n,r,c):t.findOne(n,r),u=()=>{let a=String(r),o=a.startsWith(i)?a.slice(i.length):`${i}${a}`;return(c?t.findOne(n,o,c):t.findOne(n,o)).then(t=>{e&&(h(t),_(!1))}).catch(()=>{e&&(h(null),_(!1))})};return l.catch(()=>null).then(t=>{if(e){if(t){h(t),_(!1);return}return u()}})}).catch(t=>{e&&(console.error(`Failed to fetch detail data:`,t),_(!1))})}else P.api&&P.resourceId&&(_(!0),fetch(`${P.api}/${P.resourceId}`).then(e=>e.json()).then(t=>{e&&h(t?.data||t)}).catch(e=>{console.error(`Failed to fetch detail data:`,e)}).finally(()=>{e&&_(!1)}));return()=>{e=!1}},[P.api,P.resourceId,P.objectName,t,P.sections,P.fields,ne]);let le=W.useCallback(()=>{if(a)a();else if(P.onNavigate){let e=P.backUrl||(P.objectName?`/${P.objectName}`:`/`);P.onNavigate(e,{replace:!0})}else P.backUrl?window.location.href=P.backUrl:window.history.back()},[a,P]),ue=W.useCallback(()=>{r?r():P.onNavigate&&P.editUrl?P.onNavigate(P.editUrl):P.onNavigate&&P.objectName&&P.resourceId?P.onNavigate(`/${P.objectName}/${P.resourceId}/edit`):P.editUrl&&(window.location.href=P.editUrl)},[r,P]),de=W.useCallback(async()=>{if(!t?.cancelPendingApproval||!P.objectName||!P.resourceId){D(M(`detail.cancelApprovalUnavailable`));return}j(!0),D(null);try{if(await t.cancelPendingApproval(String(P.objectName),String(P.resourceId)),t.findOne)try{let e=await t.findOne(String(P.objectName),String(P.resourceId));e&&h(e)}catch{}re(e=>e+1);try{window.dispatchEvent(new CustomEvent(`objectui:record-changed`,{detail:{objectName:String(P.objectName),recordId:String(P.resourceId),reason:`approval-recalled`}}))}catch{}}catch(e){let t=(e?.message||e?.error||String(e??`Cancel failed`)).replace(/^\[[^\]]+\]\s*/,``).replace(/^[A-Z][A-Z0-9_]+:\s*/,``);D(`${M(`detail.cancelApprovalFailed`)}: ${t}`)}finally{j(!1)}},[t,P.objectName,P.resourceId,M]),fe=W.useCallback(()=>{let e=P.deleteConfirmation||M(`detail.deleteConfirmation`);window.confirm(e)&&(i?.(),P.onNavigate&&P.objectName&&P.onNavigate(`/${P.objectName}`,{replace:!0}))},[i,P]),pe=W.useCallback(()=>{navigator.share&&P.objectName&&P.resourceId?navigator.share({title:P.title||M(`detail.details`),text:`${P.objectName} #${P.resourceId}`,url:window.location.href}).catch(e=>console.log(`Share failed:`,e)):navigator.clipboard.writeText(window.location.href).then(()=>{console.log(`Link copied to clipboard`)})},[P]),me=W.useCallback(()=>{let e=!b;p&&p(e),f===void 0&&y(e)},[b,f,p]),I=W.useCallback(async()=>{if(x){let e=Object.entries(C);if(e.length>0){let t=m,n={...m,...C};h(n),D(null),E(!0);try{if(s)for(let[t,r]of e)await s(t,r,n);w({}),S(!1)}catch(e){h(t),D((e?.message||e?.error||String(e??`Save failed`)).replace(/^\[[^\]]+\]\s*/,``).replace(/^[A-Z][A-Z0-9_]+:\s*/,``))}finally{E(!1)}return}w({})}S(!x),D(null)},[x,C,m,s]),he=W.useCallback(()=>{w({}),S(!1),D(null)},[]),L=W.useCallback((e,t)=>{w(n=>({...n,[e]:t}))},[]);W.useEffect(()=>{if(!P.recordNavigation)return;let e=P.recordNavigation,t=t=>{let n=t.target?.tagName;n===`INPUT`||n===`TEXTAREA`||t.target?.isContentEditable||(t.key===`ArrowLeft`&&e.currentIndex>0?(t.preventDefault(),e.onNavigate(e.recordIds[e.currentIndex-1])):t.key===`ArrowRight`&&e.currentIndex<e.recordIds.length-1&&(t.preventDefault(),e.onNavigate(e.recordIds[e.currentIndex+1])))};return document.addEventListener(`keydown`,t),()=>document.removeEventListener(`keydown`,t)},[P.recordNavigation]),W.useEffect(()=>{if(!o||P.showHeader!==!1)return;let e=`objectui:record:inline-edit-toggle`,t=e=>{let t=e.detail;t?.recordId&&P.recordId&&t.recordId!==P.recordId||t?.objectName&&P.objectName&&t.objectName!==P.objectName||I()};return window.addEventListener(e,t),()=>window.removeEventListener(e,t)},[o,P.showHeader,P.recordId,P.objectName,I]);let ge=W.useMemo(()=>P.related??[],[P.related]),_e=W.useMemo(()=>{let e=[];return e.push({name:`sys_share`,label:M(`detail.share`),icon:`share-2`,type:`script`,onClick:pe}),P.showEdit&&e.push({name:`sys_edit_mobile`,label:M(`detail.edit`),icon:`edit`,type:`script`,className:`sm:hidden`,onClick:ue}),o&&e.push({name:`sys_toggle_inline_edit_mobile`,label:M(x?`detail.save`:`detail.editInline`),icon:`edit`,type:`script`,className:`sm:hidden`,onClick:I}),P.showDelete&&e.push({name:`sys_delete`,label:M(`detail.delete`),icon:`trash-2`,type:`script`,variant:`destructive`,tags:[`separator-before`],onClick:fe}),e},[M,P.showEdit,P.showDelete,o,x,pe,ue,I,fe]),ve=W.useMemo(()=>{let e=P.actions??[];if(_e.length===0)return e;let t=!1,n=e.map(e=>{let n=e;if(n&&typeof n==`object`&&n.type===`action:bar`&&(!n.location||n.location===`record_header`)){t=!0;let e=Array.isArray(n.systemActions)?n.systemActions:[];return{...n,systemActions:[...e,..._e]}}return e});return t||n.push({type:`action:bar`,location:`record_header`,systemActions:_e}),n},[P.actions,_e]);return g||P.loading?(0,G.jsxs)(`div`,{className:q(`space-y-4`,n),children:[(0,G.jsx)(ZC,{className:`h-10 w-full`}),(0,G.jsx)(ZC,{className:`h-64 w-full`}),(0,G.jsx)(ZC,{className:`h-48 w-full`})]}):!m&&!P.data?(0,G.jsxs)(`div`,{className:q(`flex flex-col items-center justify-center py-16 text-center`,n),children:[(0,G.jsx)(`p`,{className:`text-lg font-semibold`,children:M(`detail.recordNotFound`)}),(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground mt-1`,children:M(`detail.recordNotFoundDescription`)}),(P.showBack??!0)&&(0,G.jsxs)(J,{variant:`outline`,size:`sm`,onClick:le,className:`mt-4 gap-2`,children:[(0,G.jsx)(Nt,{className:`h-4 w-4`}),M(`detail.goBack`)]})]}):(0,G.jsx)(QC,{children:(0,G.jsxs)(`div`,{className:q(`space-y-6`,n),children:[P.showHeader!==!1&&(0,G.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-start justify-between gap-3 sm:gap-4 pb-4 border-b`,children:[(0,G.jsxs)(`div`,{className:`flex items-start gap-2 sm:gap-3 flex-1 min-w-0`,children:[(P.showBack??!0)&&(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsx)(J,{variant:`ghost`,size:`icon`,onClick:le,className:`shrink-0 mt-1`,children:(0,G.jsx)(Nt,{className:`h-4 w-4`})})}),(0,G.jsx)(tw,{children:M(`detail.back`)})]}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,G.jsx)(`h1`,{className:`text-xl sm:text-2xl font-bold truncate`,children:GY(m,P,O,M(`detail.details`))}),F.map(e=>{let t=m?.[e];if(t==null||t===``)return null;let n=(P.sections||[]).flatMap(e=>e.fields).concat(P.fields||[]).find(t=>t.name===e),r=O?.fields?.[e],i=n?.type||r?.type,a=String(t),o=null;try{if(i===`currency`){let e=Number(t);if(!Number.isNaN(e)){let t=n?.currency||r?.currency;a=t?new Intl.NumberFormat(void 0,{style:`currency`,currency:t,maximumFractionDigits:0}).format(e):new Intl.NumberFormat(void 0,{maximumFractionDigits:0}).format(e)}}else if(i===`date`||i===`datetime`){let e=new Date(t);Number.isNaN(e.getTime())||(a=i===`datetime`?e.toLocaleString(void 0,{dateStyle:`medium`,timeStyle:`short`}):e.toLocaleDateString(void 0,{dateStyle:`medium`}))}else if(i===`percent`){let e=Number(t);if(!Number.isNaN(e)){a=`${e}%`;let t=e<=1?e*100:e;o=Math.max(0,Math.min(100,t))}}else if(i===`select`||i===`status`||i===`multiselect`){let i=n?.options||r?.options,o=String(t);if(Array.isArray(i)){let e=i.find(e=>String(e?.value??e)===String(t));e?.label&&(o=e.label)}else if(i&&typeof i==`object`){let e=i[String(t)];e?.label&&(o=e.label)}a=P.objectName?ae(P.objectName,e,String(t),o):o}}catch{}return o===null?(0,G.jsx)(Wb,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent hover:bg-primary/15`,"aria-label":`${e}: ${a}`,children:a},e):(0,G.jsxs)(Wb,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent hover:bg-primary/15 gap-1.5 pl-2 pr-2`,"aria-label":`${e}: ${a}`,children:[(0,G.jsx)(`span`,{className:`relative inline-block h-1.5 w-12 rounded-full bg-primary/20 overflow-hidden`,"aria-hidden":!0,children:(0,G.jsx)(`span`,{className:`absolute inset-y-0 left-0 rounded-full bg-primary`,style:{width:`${o}%`}})}),a]},e)}),(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0`,onClick:me,"aria-label":M(b?`detail.removeFromFavorites`:`detail.addToFavorites`),children:b?(0,G.jsx)(mt,{className:`h-4 w-4 fill-yellow-400 text-yellow-400`}):(0,G.jsx)(mt,{className:`h-4 w-4 text-muted-foreground`})})}),(0,G.jsx)(tw,{children:M(b?`detail.removeFromFavorites`:`detail.addToFavorites`)})]})]}),P.objectName&&(0,G.jsxs)(`p`,{className:`text-sm text-muted-foreground mt-1 flex items-center gap-1`,children:[(0,G.jsx)(`span`,{className:`font-medium`,children:u||P.objectName}),P.resourceId&&(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-5 w-5 shrink-0 text-muted-foreground/60 hover:text-foreground`,onClick:ce,"aria-label":M(`detail.copyRecordId`,{defaultValue:`Copy record ID`}),children:A?(0,G.jsx)(Ct,{className:`h-3 w-3 text-green-600`}):(0,G.jsx)(yt,{className:`h-3 w-3`})})}),(0,G.jsx)(tw,{children:A?M(`detail.copied`,{defaultValue:`Copied`}):M(`detail.copyRecordId`,{defaultValue:`Copy record ID`})})]})]})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1.5 shrink-0 w-full sm:w-auto`,children:[P.recordNavigation&&(0,G.jsxs)(`div`,{className:`flex items-center gap-1 mr-2`,children:[(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsx)(J,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:P.recordNavigation.currentIndex<=0,onClick:()=>{let e=P.recordNavigation;e.currentIndex>0&&e.onNavigate(e.recordIds[e.currentIndex-1])},children:(0,G.jsx)(Tt,{className:`h-4 w-4`})})}),(0,G.jsx)(tw,{children:M(`detail.previousRecord`)})]}),(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground whitespace-nowrap px-1`,children:M(`detail.recordOf`,{current:P.recordNavigation.currentIndex+1,total:P.recordNavigation.recordIds.length})}),(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsx)(J,{variant:`outline`,size:`icon`,className:`h-8 w-8`,disabled:P.recordNavigation.currentIndex>=P.recordNavigation.recordIds.length-1,onClick:()=>{let e=P.recordNavigation;e.currentIndex<e.recordIds.length-1&&e.onNavigate(e.recordIds[e.currentIndex+1])},children:(0,G.jsx)(Xe,{className:`h-4 w-4`})})}),(0,G.jsx)(tw,{children:M(`detail.nextRecord`)})]})]}),o&&(0,G.jsxs)(G.Fragment,{children:[x&&(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsxs)(J,{variant:`ghost`,size:`sm`,onClick:he,className:`gap-2 hidden sm:inline-flex`,children:[(0,G.jsx)(At,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:M(`detail.cancel`)})]})}),(0,G.jsx)(tw,{children:M(`detail.cancelEdit`)})]}),(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsx)(J,{variant:x?`default`:`outline`,size:`sm`,onClick:I,className:`gap-2 hidden sm:inline-flex`,children:x?(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ct,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:M(`detail.save`)})]}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(Ye,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:M(`detail.editInline`)})]})})}),(0,G.jsx)(tw,{children:M(x?`detail.saveChanges`:`detail.editFieldsInline`)})]})]}),P.showEdit&&(0,G.jsxs)($C,{children:[(0,G.jsx)(ew,{asChild:!0,children:(0,G.jsxs)(J,{variant:`default`,onClick:ue,className:`gap-2 hidden sm:inline-flex`,children:[(0,G.jsx)(Ye,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`hidden sm:inline`,children:M(`detail.edit`)})]})}),(0,G.jsx)(tw,{children:M(`detail.editRecord`)})]}),ve.map((e,t)=>(0,G.jsx)(zl,{schema:e,data:m},`header-action-${t}`))]})]}),P.header&&(0,G.jsx)(`div`,{children:(0,G.jsx)(zl,{schema:P.header,data:m})}),P.highlightFields&&P.highlightFields.length>0&&(0,G.jsx)(xY,{fields:P.highlightFields,data:m,objectName:P.objectName,objectSchema:O}),o&&P.showHeader===!1&&(()=>{let e=m?.approval_status,n=e===`pending`||e===`in_approval`;return!x&&!T&&!ee&&!n?null:(0,G.jsxs)(`div`,{className:`flex flex-col items-end gap-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-end gap-2`,children:[n&&!x&&(0,G.jsxs)(G.Fragment,{children:[(0,G.jsxs)(`span`,{role:`status`,className:`inline-flex items-center gap-1 rounded-md border border-amber-300 bg-amber-50 px-2 py-1 text-xs text-amber-800`,title:M(`detail.lockedTooltip`),children:[(0,G.jsx)(qt,{className:`h-3 w-3`}),(0,G.jsx)(`span`,{children:M(`detail.lockedByApproval`)})]}),t?.cancelPendingApproval&&(0,G.jsxs)(J,{variant:`outline`,size:`sm`,onClick:de,disabled:ie,className:`gap-2 border-amber-300 text-amber-800 hover:bg-amber-50`,title:M(`detail.cancelApprovalTooltip`),children:[(0,G.jsx)(At,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:M(ie?`detail.cancelApprovalInFlight`:`detail.cancelApproval`)})]})]}),x&&(0,G.jsxs)(J,{variant:`ghost`,size:`sm`,onClick:he,className:`gap-2`,disabled:T,children:[(0,G.jsx)(At,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:M(`detail.cancel`)})]}),(0,G.jsxs)(J,{variant:x?`default`:`outline`,size:`sm`,onClick:I,className:`gap-2`,disabled:T||n&&!x,title:n&&!x?M(`detail.lockedTooltip`):void 0,children:[(0,G.jsx)(x?Ct:Ye,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:M(T?`detail.saving`:x?`detail.save`:`detail.editFieldsInline`)})]})]}),ee&&(0,G.jsx)(`div`,{role:`alert`,className:`text-xs text-destructive bg-destructive/10 border border-destructive/20 rounded-md px-2 py-1 max-w-md text-right`,children:ee})]})})(),P.autoTabs&&!P.tabs?.length?(()=>{let e=ge.length>0,n=!!P.activities&&P.activities.length>0,r=!!c,i=!!P.history,a=(0,G.jsxs)(`div`,{className:`space-y-3 sm:space-y-4`,children:[P.sectionGroups&&P.sectionGroups.length>0&&P.sectionGroups.map((e,t)=>(0,G.jsx)(bY,{group:e,data:{...m,...C},objectSchema:O,objectName:P.objectName,isEditing:x,onFieldChange:L},t)),P.sections&&P.sections.length>0&&P.sections.map((e,t)=>(0,G.jsx)(gY,{section:e,data:{...m,...C},objectSchema:O,objectName:P.objectName,isEditing:x,onFieldChange:L},t)),P.fields&&P.fields.length>0&&!P.sections?.length&&(0,G.jsx)(gY,{section:{fields:P.fields,columns:P.columns},data:{...m,...C},objectSchema:O,objectName:P.objectName,isEditing:x,onFieldChange:L}),P.comments&&(0,G.jsx)(CY,{comments:P.comments,onAddComment:P.onAddComment})]});return!e&&!n&&!r&&!i?(0,G.jsx)(`div`,{className:`mt-2`,children:a}):(0,G.jsxs)(Gw,{defaultValue:`details`,className:`w-full`,children:[(0,G.jsxs)(Kw,{className:`w-full justify-start border-b rounded-none bg-transparent p-0`,children:[(0,G.jsx)(qw,{value:`details`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:M(`detail.details`)}),e&&(0,G.jsx)(qw,{value:`related`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[M(`detail.related`),(0,G.jsx)(Wb,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent`,children:ge.length})]})}),n&&(0,G.jsx)(qw,{value:`activity`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[M(`detail.activity`),(0,G.jsx)(Wb,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent`,children:P.activities.length})]})}),r&&(0,G.jsx)(qw,{value:`discussion`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:M(`detail.discussion`,{defaultValue:`Discussion`})}),i&&(0,G.jsx)(qw,{value:`history`,className:`relative rounded-none border-b-2 border-transparent data-[state=active]:border-primary data-[state=active]:bg-transparent`,children:(0,G.jsxs)(`span`,{className:`flex items-center gap-1.5`,children:[M(`detail.history`,{defaultValue:`History`}),!P.history.loading&&P.history.entries.length>0&&(0,G.jsx)(Wb,{variant:`secondary`,className:`text-xs bg-primary/10 text-primary border-transparent`,children:P.history.entries.length})]})})]}),(0,G.jsx)(Jw,{value:`details`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:a}),e&&(0,G.jsx)(Jw,{value:`related`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:(0,G.jsx)(`div`,{className:`space-y-3`,children:ge.map((e,n)=>(0,G.jsx)(yY,{title:e.title,type:e.type,api:e.api,data:e.data,columns:e.columns,dataSource:t,objectName:e.api,referenceField:e.referenceField,icon:e.icon,onNew:e.onNew,onViewAll:e.onViewAll,onRowClick:e.onRowClick,onRowEdit:e.onRowEdit,onRowDelete:e.onRowDelete,collapsible:!0,defaultCollapsed:N&&n>0,pageSize:WY},n))})}),n&&(0,G.jsx)(Jw,{value:`activity`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:(0,G.jsx)(kY,{activities:P.activities})}),r&&(0,G.jsx)(Jw,{value:`discussion`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:c}),i&&(0,G.jsx)(Jw,{value:`history`,className:`mt-4 motion-safe:data-[state=active]:animate-in motion-safe:data-[state=active]:fade-in-0 motion-safe:duration-150`,children:(0,G.jsx)(IY,{entries:P.history.entries,loading:P.history.loading,emptyText:P.history.emptyText??M(`detail.historyEmpty`,{defaultValue:`No history yet`})})})]})})():(0,G.jsxs)(G.Fragment,{children:[P.sectionGroups&&P.sectionGroups.length>0&&(0,G.jsx)(`div`,{className:`space-y-3 sm:space-y-4`,children:P.sectionGroups.map((e,t)=>(0,G.jsx)(bY,{group:e,data:{...m,...C},objectSchema:O,objectName:P.objectName,isEditing:x,onFieldChange:L},t))}),P.sections&&P.sections.length>0&&(0,G.jsx)(`div`,{className:`space-y-3 sm:space-y-4`,children:P.sections.map((e,t)=>(0,G.jsx)(gY,{section:e,data:{...m,...C},objectSchema:O,objectName:P.objectName,isEditing:x,onFieldChange:L},t))}),P.fields&&P.fields.length>0&&!P.sections?.length&&(0,G.jsx)(gY,{section:{fields:P.fields,columns:P.columns},data:{...m,...C},objectSchema:O,objectName:P.objectName,isEditing:x,onFieldChange:L}),P.tabs&&P.tabs.length>0&&(0,G.jsx)(_Y,{tabs:P.tabs,data:m}),ge.length>0&&(0,G.jsxs)(`div`,{className:`space-y-3`,children:[(0,G.jsx)(`h2`,{className:`text-lg font-semibold`,children:M(`detail.related`)}),ge.map((e,n)=>(0,G.jsx)(yY,{title:e.title,type:e.type,api:e.api,data:e.data,columns:e.columns,dataSource:t,objectName:e.api,referenceField:e.referenceField,icon:e.icon,onNew:e.onNew,onViewAll:e.onViewAll,onRowClick:e.onRowClick,onRowEdit:e.onRowEdit,onRowDelete:e.onRowDelete,collapsible:!0,defaultCollapsed:N&&n>0,pageSize:WY},n))]}),P.comments&&(0,G.jsx)(CY,{comments:P.comments,onAddComment:P.onAddComment}),P.activities&&P.activities.length>0&&(0,G.jsx)(kY,{activities:P.activities})]}),(0,G.jsx)(UY,{data:{...m,...C},objectSchema:O,objectName:P.objectName}),P.footer&&(0,G.jsx)(`div`,{children:(0,G.jsx)(zl,{schema:P.footer,data:m})})]})})},qY=e=>{if(e==null)return`—`;if(typeof e==`string`)return e.length>0?e:`""`;if(typeof e==`number`||typeof e==`boolean`)return String(e);try{return JSON.stringify(e)}catch{return String(e)}},JY=e=>{if(typeof e!=`string`||e.length===0)return null;let t=/\d{4}-\d{2}-\d{2}[ T]/.test(e)?e.replace(` `,`T`):e,n=new Date(t);if(Number.isNaN(n.getTime()))return null;try{return n.toLocaleString()}catch{return n.toISOString()}},YY=({open:e,conflict:t,onReload:n,onOverwrite:r,onCancel:i,busy:a=!1})=>{let{t:o}=mY(),s=t?.label||t?.field||``,c=t?qY(t.pendingValue):``,l=t?qY(t.currentValue):``,u=t?.currentRecord??{},d=(()=>{let e=[u.updated_by_name,u.updated_by_label];for(let t of e)if(typeof t==`string`&&t.length>0)return t;let t=u.updated_by;return typeof t!=`string`||t.length===0||t.length>=16&&!/\s/.test(t)&&/^[A-Za-z0-9_-]+$/.test(t)?null:t})(),f=JY(u.updated_at??t?.currentVersion),[p,m]=o(`detail.concurrentUpdateDescription`,{field:`{{field}}`}).split(`{{field}}`);return(0,G.jsx)(wb,{open:e,onOpenChange:e=>{!e&&!a&&i()},children:(0,G.jsxs)(Ob,{className:`max-w-lg`,children:[(0,G.jsx)(kb,{children:(0,G.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,G.jsx)(`span`,{className:`inline-flex h-9 w-9 flex-none items-center justify-center rounded-full bg-amber-100 text-amber-700 dark:bg-amber-500/20 dark:text-amber-300`,"aria-hidden":`true`,children:(0,G.jsx)(Bt,{className:`h-5 w-5`})}),(0,G.jsxs)(`div`,{className:`flex-1`,children:[(0,G.jsx)(jb,{children:o(`detail.concurrentUpdateTitle`)}),(0,G.jsxs)(Mb,{className:`mt-1`,children:[p,(0,G.jsx)(`strong`,{className:`font-semibold`,children:s}),m]})]})]})}),(0,G.jsxs)(`div`,{className:`space-y-2 text-sm`,children:[(0,G.jsxs)(`div`,{className:`rounded-md border border-amber-200/70 bg-amber-50/60 p-3 dark:border-amber-500/30 dark:bg-amber-500/10`,children:[(0,G.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-amber-800 dark:text-amber-300`,children:o(`detail.concurrentUpdateYourEdit`)}),(0,G.jsx)(`div`,{className:`mt-1 break-all font-mono text-foreground`,children:c})]}),(0,G.jsxs)(`div`,{className:`rounded-md border border-sky-200/70 bg-sky-50/60 p-3 dark:border-sky-500/30 dark:bg-sky-500/10`,children:[(0,G.jsxs)(`div`,{className:`flex items-baseline justify-between gap-2`,children:[(0,G.jsx)(`div`,{className:`text-xs font-medium uppercase tracking-wide text-sky-800 dark:text-sky-300`,children:o(`detail.concurrentUpdateCurrentValue`)}),(d||f)&&(0,G.jsxs)(`div`,{className:`text-[11px] text-muted-foreground`,children:[d&&(0,G.jsx)(`span`,{children:o(`detail.concurrentUpdateUpdatedBy`,{name:d})}),d&&f&&(0,G.jsx)(`span`,{children:` · `}),f&&(0,G.jsx)(`span`,{children:o(`detail.concurrentUpdateUpdatedAt`,{when:f})})]})]}),(0,G.jsx)(`div`,{className:`mt-1 break-all font-mono text-foreground`,children:l})]})]}),(0,G.jsxs)(Ab,{className:`gap-2 sm:gap-2`,children:[(0,G.jsx)(`button`,{type:`button`,disabled:a,onClick:i,className:q(Cb({variant:`ghost`}),`mt-2 sm:mt-0`),children:o(`detail.concurrentUpdateCancel`)}),(0,G.jsx)(`button`,{type:`button`,disabled:a,onClick:r,className:q(Cb({variant:`outline`}),`mt-2 sm:mt-0 text-destructive border-destructive/40 hover:bg-destructive/10 hover:text-destructive`),children:o(`detail.concurrentUpdateOverwrite`)}),(0,G.jsx)(`button`,{type:`button`,disabled:a,onClick:n,autoFocus:!0,className:q(Cb({variant:`default`}),`mt-2 sm:mt-0`),children:o(`detail.concurrentUpdateReload`)})]})]})})};function XY(e){if(!e||typeof e!=`object`)return!1;let t=e;return t.code===`CONCURRENT_UPDATE`||t.name===`ConcurrentUpdateError`}var ZY=e=>typeof e==`string`?e:e&&typeof e==`object`&&(e.field||e.name)||null,QY=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},$Y=({schema:e={},className:t,...n})=>{let r=du(),{designer:i}=QY(n);if(!r)return(0,G.jsx)(`div`,{className:t,"data-record-details-placeholder":!0,...i,children:(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:details — bind a record to preview`})});let a=e.layout===`inline`||e.layout===`compact`?`horizontal`:`vertical`,o=r.objectName||``,s=sU(),{readableFields:c}=cU(o),{sectionLabel:l}=bu(),u=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[];if(u.length>0&&o&&!u.every(e=>s.can(o,e)))return(0,G.jsx)(`div`,{className:t,...i,role:`status`,"aria-live":`polite`,children:(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view details.`})});let d=e.enforceFieldSecurity===!0,f=Array.isArray(e.redactFields)?e.redactFields:[],p=e=>{if(!e||!d&&f.length===0)return e;let t=e.map(ZY).filter(e=>!!e),n=new Set((d&&o?c(t):t).filter(e=>!f.includes(e)));return e.filter(e=>{let t=ZY(e);return t?n.has(t):!0})},m=e=>typeof e==`string`?{name:e}:e&&typeof e==`object`&&!e.name&&e.field?{...e,name:e.field}:e,h=e=>Array.isArray(e)?e.map(m):e,g=au(),_=new Set((Array.isArray(e.hideFields)?e.hideFields:[]).map(e=>typeof e==`string`?e:ZY(e)).filter(e=>!!e));for(let e of g)_.add(e);let v=r.objectSchema,y=r.data??{},b=[v?.primaryField,`name`,`full_name`,`title`,`subject`,`display_name`,`label`].filter(e=>typeof e==`string`&&e.length>0);for(let e of b)if(y[e]!==void 0&&y[e]!==null&&y[e]!==``){_.add(e);break}let x=e=>!e||_.size===0?e:e.filter(e=>{let t=ZY(e);return t?!_.has(t):!0}),S=x(h(p(e.fields))),C=Array.isArray(e.sections)?e.sections.map(e=>{let t=e.title??e.label,n=e.name&&o?l(o,e.name,t??e.name):t;return{...e,title:n,showBorder:e.showBorder??!!n,hideEmpty:e.hideEmpty??!0,fields:x(h(p(e.fields)))}}):e.sections,w=e.inlineEdit??!0,[T,E]=W.useState(null),[ee,D]=W.useState(!1),O=W.useCallback(t=>{let n=[...Array.isArray(e.fields)?e.fields:[],...(Array.isArray(e.sections)?e.sections:[]).flatMap(e=>Array.isArray(e?.fields)?e.fields:[])];for(let e of n)if((typeof e==`string`?e:e?.name||e?.field)===t)return typeof e==`object`?e?.label:void 0},[e.fields,e.sections]),k=W.useCallback(async(e,t)=>{let n=r.dataSource,i=r.recordId,a=r.objectName;if(!n||!i||!a)return;let o=typeof r.data?.updated_at==`string`?r.data.updated_at:void 0,s=o?{ifMatch:o}:void 0;try{if(typeof n.update==`function`)await n.update(a,i,{[e]:t},s);else if(typeof n.updateOne==`function`)await n.updateOne(a,i,{[e]:t},s);else if(typeof n.patch==`function`)await n.patch(a,i,{[e]:t},s);else{console.warn(`[record:details] DataSource exposes no update/updateOne/patch method; cannot persist inline edit`);return}typeof r.refresh==`function`&&await r.refresh()}catch(n){if(XY(n)){let r=n.currentRecord??null;throw E({field:e,label:O(e),pendingValue:t,currentValue:r?r[e]:void 0,currentVersion:n.currentVersion,currentRecord:r}),n}throw console.error(`[record:details] Inline-edit save failed`,n),n}},[r.dataSource,r.recordId,r.objectName,r.data,r.refresh,O]),A=W.useCallback(()=>{E(null),D(!1)},[]),te=W.useCallback(async()=>{D(!0);try{typeof r.refresh==`function`&&await r.refresh()}finally{A()}},[r.refresh,A]),ne=W.useCallback(async()=>{if(!T){A();return}let e=r.dataSource,t=r.recordId,n=r.objectName;if(!e||!t||!n){A();return}D(!0);try{let i=T.currentVersion?{ifMatch:T.currentVersion}:void 0;typeof e.update==`function`?await e.update(n,t,{[T.field]:T.pendingValue},i):typeof e.updateOne==`function`?await e.updateOne(n,t,{[T.field]:T.pendingValue},i):typeof e.patch==`function`&&await e.patch(n,t,{[T.field]:T.pendingValue},i),typeof r.refresh==`function`&&await r.refresh()}catch(e){console.error(`[record:details] Overwrite-on-conflict failed`,e)}finally{A()}},[T,r.dataSource,r.recordId,r.objectName,r.refresh,A]),re={type:`detail-view`,objectName:r.objectName,resourceId:r.recordId,data:r.data,layout:a,columns:e.columns,sections:C,fields:S,showBack:!1,showHeader:e.showHeader??!1,inlineEdit:w};return(0,G.jsxs)(`div`,{className:t,...i,children:[(0,G.jsx)(KY,{schema:re,dataSource:r.dataSource,inlineEdit:w,onFieldSave:k}),(0,G.jsx)(YY,{open:!!T,conflict:T,busy:ee,onCancel:A,onReload:te,onOverwrite:ne})]})},eX=e=>typeof e==`string`?e:e&&typeof e==`object`&&(e.field||e.name||e.key)||null,tX=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},nX=({schema:e={},className:t,...n})=>{let r=du(),{designer:i}=tX(n),a=bu(),o=e.objectName,s=o&&a.objectLabel?a.objectLabel({name:o,label:xA(o)}):o?xA(o):``,c=e.title||s||`Related`;if(!o)return(0,G.jsx)(`div`,{className:t,...i,children:(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:related_list — missing objectName`})});let l=sU(),{readableFields:u}=cU(o),d=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[];if(d.length>0&&!d.every(e=>l.can(o,e)))return(0,G.jsx)(`div`,{className:t,...i,role:`status`,"aria-live":`polite`,children:(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view related list.`})});let f=e.enforceFieldSecurity===!0,p=Array.isArray(e.redactFields)?e.redactFields:[],m=Array.isArray(e.columns)?e.columns:[],h=m;if(f||p.length>0){let e=m.map(eX).filter(e=>!!e),t=new Set((f?u(e):e).filter(e=>!p.includes(e)));h=m.filter(e=>{let n=eX(e);return n?t.has(n):!0})}return(0,G.jsx)(`div`,{className:t,...i,children:(0,G.jsx)(yY,{title:c,type:`table`,api:o,objectName:o,referenceField:e.relationshipField,parentId:r?.recordId,columns:h,pageSize:e.limit,dataSource:r?.dataSource})})},rX=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},iX=({schema:e={},className:t,...n})=>{let r=du(),{designer:i}=rX(n),a=r?.objectName||``,o=sU(),{readableFields:s}=cU(a),c=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[];if(c.length>0&&a&&!c.every(e=>o.can(a,e)))return(0,G.jsx)(`div`,{className:t,...i,role:`status`,"aria-live":`polite`,children:(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view highlights.`})});let l=(Array.isArray(e.fields)?e.fields:[]).map(e=>typeof e==`string`?{name:e}:{name:e?.name,label:e?.label,icon:e?.icon,type:e?.type}).filter(e=>typeof e.name==`string`&&e.name.length>0),u=e.enforceFieldSecurity===!0,d=Array.isArray(e.redactFields)?e.redactFields:[],f=u&&a?new Set(s(l.map(e=>e.name))):null,p=l.filter(e=>!(d.includes(e.name)||f&&!f.has(e.name)));return ou(W.useId(),p.map(e=>e.name)),(0,G.jsx)(`div`,{className:t,...i,children:(0,G.jsx)(xY,{fields:p,data:r?.data,objectName:r?.objectName,objectSchema:r?.objectSchema})})},aX=({change:e,className:t})=>{let n=e.fieldLabel??e.field.charAt(0).toUpperCase()+e.field.slice(1).replace(/_/g,` `),r=e.oldDisplayValue??(e.oldValue==null?`(empty)`:String(e.oldValue)),i=e.newDisplayValue??(e.newValue==null?`(empty)`:String(e.newValue));return(0,G.jsxs)(`div`,{className:q(`flex items-center gap-1.5 text-sm flex-wrap`,t),children:[(0,G.jsx)(`span`,{className:`font-medium text-foreground`,children:n}),(0,G.jsx)(`span`,{className:`text-muted-foreground line-through`,children:r}),(0,G.jsx)(on,{className:`h-3 w-3 text-muted-foreground shrink-0`}),(0,G.jsx)(`span`,{className:`text-foreground`,children:i})]})},oX=[`👍`,`❤️`,`🎉`,`😂`,`😮`,`😢`],sX=({reactions:e,onToggleReaction:t,emojiOptions:n=oX,className:r})=>{let[i,a]=W.useState(!1),o=W.useCallback(e=>{t?.(e),a(!1)},[t]);return(0,G.jsxs)(`div`,{className:q(`flex items-center gap-1 flex-wrap`,r),children:[e.map(e=>(0,G.jsxs)(`button`,{type:`button`,className:q(`inline-flex items-center gap-1 rounded-full px-2 py-0.5 text-xs border transition-colors`,e.reacted?`bg-primary/10 border-primary/30 text-primary`:`bg-muted border-border text-muted-foreground hover:bg-muted/80`),onClick:()=>o(e.emoji),disabled:!t,"aria-label":`${e.emoji} ${e.count} reaction${e.count===1?``:`s`}`,children:[(0,G.jsx)(`span`,{children:e.emoji}),(0,G.jsx)(`span`,{children:e.count})]},e.emoji)),t&&(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-6 w-6`,onClick:()=>a(!i),"aria-label":`Add reaction`,children:(0,G.jsx)(Qe,{className:`h-3.5 w-3.5`})}),i&&(0,G.jsx)(`div`,{className:`absolute bottom-full mb-1 left-0 bg-popover border rounded-md shadow-md z-50 p-1.5 flex gap-1`,role:`listbox`,"aria-label":`Emoji picker`,children:n.map(t=>(0,G.jsx)(`button`,{type:`button`,className:`hover:bg-accent rounded p-1 text-base transition-colors`,onClick:()=>o(t),role:`option`,"aria-selected":e.some(e=>e.emoji===t&&e.reacted),children:t},t))})]})]})};function cX(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<7?`${a}d ago`:t.toLocaleDateString()}catch{return e}}var lX=({parentItem:e,replies:t,onAddReply:n,showReplyInput:r=!0,className:i})=>{let{t:a}=mY(),[o,s]=W.useState(!1),[c,l]=W.useState(``),[u,d]=W.useState(!1),f=W.useCallback(async()=>{let t=c.trim();if(!(!t||!n)){d(!0);try{await n(e.id,t),l(``)}finally{d(!1)}}},[c,n,e.id]),p=W.useCallback(e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),f())},[f]);return t.length===0&&!r?null:(0,G.jsxs)(`div`,{className:q(`ml-10 mt-1`,i),children:[t.length>0&&(0,G.jsxs)(`button`,{type:`button`,className:`flex items-center gap-1 text-xs text-muted-foreground hover:text-foreground transition-colors mb-1`,onClick:()=>s(!o),"aria-expanded":o,children:[(0,G.jsx)(o?nt:Xe,{className:`h-3 w-3`}),(0,G.jsx)(St,{className:`h-3 w-3`}),(0,G.jsx)(`span`,{children:t.length===1?a(`detail.replyCount`,{count:t.length}):a(`detail.replyCountPlural`,{count:t.length})})]}),o&&(0,G.jsx)(`div`,{className:`space-y-2 border-l-2 border-border pl-3`,children:t.map(e=>(0,G.jsxs)(`div`,{className:`flex gap-2`,children:[(0,G.jsx)(`div`,{className:`shrink-0`,children:e.actorAvatarUrl?(0,G.jsx)(`img`,{src:e.actorAvatarUrl,alt:e.actor,className:`h-6 w-6 rounded-full object-cover`}):(0,G.jsx)(`div`,{className:`h-6 w-6 rounded-full bg-muted flex items-center justify-center text-[10px] font-medium text-muted-foreground`,children:e.actor.charAt(0).toUpperCase()})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,G.jsx)(`span`,{className:`text-xs font-medium`,children:e.actor}),(0,G.jsx)(`span`,{className:`text-[10px] text-muted-foreground`,children:cX(e.createdAt)})]}),(0,G.jsx)(`p`,{className:`text-xs whitespace-pre-wrap break-words`,children:e.body})]})]},e.id))}),r&&n&&(0,G.jsxs)(`div`,{className:`flex gap-1.5 mt-1.5`,children:[(0,G.jsx)(`input`,{className:`flex-1 rounded-md border border-input bg-background px-2 py-1 text-xs placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring`,placeholder:a(`detail.replyPlaceholder`),value:c,onChange:e=>l(e.target.value),onKeyDown:p,disabled:u}),(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0`,onClick:f,disabled:!c.trim()||u,"aria-label":`Send reply`,children:(0,G.jsx)(et,{className:`h-3 w-3`})})]})]})},uX=({subscription:e,onToggle:t,className:n})=>{let{t:r}=mY(),[i,a]=W.useState(!1),o=W.useCallback(async()=>{if(t){a(!0);try{await t(!e.subscribed)}finally{a(!1)}}},[t,e.subscribed]);return(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:q(`h-8 w-8`,n),onClick:o,disabled:i||!t,"aria-label":e.subscribed?r(`detail.unsubscribeAriaLabel`):r(`detail.subscribeAriaLabel`),title:e.subscribed?r(`detail.subscribedTooltip`):r(`detail.unsubscribedTooltip`),children:e.subscribed?(0,G.jsx)(gn,{className:`h-4 w-4 text-primary`}):(0,G.jsx)(rn,{className:`h-4 w-4 text-muted-foreground`})})};function dX(e){let t=e.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/```([\s\S]*?)```/g,`<pre class="bg-muted rounded p-2 text-xs font-mono my-1 overflow-x-auto">$1</pre>`).replace(/`([^`]+)`/g,`<code class="bg-muted rounded px-1 py-0.5 text-xs font-mono">$1</code>`).replace(/\*\*(.+?)\*\*/g,`<strong>$1</strong>`).replace(/\*(.+?)\*/g,`<em>$1</em>`).replace(/@(\w+)/g,`<span class="text-primary font-medium">@$1</span>`).replace(/^- (.+)$/gm,`<li class="ml-4 list-disc">$1</li>`).replace(/\n/g,`<br/>`);return t=t.replace(/(<li[^>]*>.*?<\/li>(?:<br\/>)?)+/g,e=>`<ul class="my-1">${e.replace(/<br\/>/g,``)}</ul>`),t}var fX=({value:e,onChange:t,onSubmit:n,mentionSuggestions:r=[],placeholder:i,className:a,disabled:o=!1,extraSlot:s,canSubmitEmpty:c=!1})=>{let{t:l}=mY(),[u,d]=W.useState(!1),[f,p]=W.useState(!1),[m,h]=W.useState(``),[g,_]=W.useState(0),v=W.useRef(null),y=W.useMemo(()=>{if(!m)return r;let e=m.toLowerCase();return r.filter(t=>t.label.toLowerCase().includes(e))},[m,r]),b=W.useCallback((n,r=``)=>{let i=v.current;if(!i)return;let a=i.selectionStart,o=i.selectionEnd,s=e.slice(a,o);t(e.slice(0,a)+n+s+r+e.slice(o)),requestAnimationFrame(()=>{i.focus();let e=a+n.length+s.length;i.setSelectionRange(e,e)})},[e,t]),x=W.useCallback(()=>b(`**`,`**`),[b]),S=W.useCallback(()=>b(`*`,`*`),[b]),C=W.useCallback(()=>b(`
|
|
59
|
+
- `,``),[b]),w=W.useCallback(()=>b("`","`"),[b]),T=W.useCallback(()=>{b(`@`,``),p(!0),h(``),_(0)},[b]),E=W.useCallback(n=>{let r=v.current;if(!r)return;let i=r.selectionStart,a=e.slice(0,i).lastIndexOf(`@`);a!==-1&&t(e.slice(0,a)+`@${n.label} `+e.slice(i)),p(!1),h(``),requestAnimationFrame(()=>r.focus())},[e,t]),ee=W.useCallback(e=>{let n=e.target.value;t(n);let r=e.target.selectionStart,i=n.slice(0,r),a=i.lastIndexOf(`@`);if(a!==-1){let e=i.slice(a+1),t=a>0?i[a-1]:` `;if(/\s/.test(t)&&!/\s/.test(e)){p(!0),h(e),_(0);return}}p(!1)},[t]),D=W.useCallback(e=>{if(f&&y.length>0){if(e.key===`ArrowDown`){e.preventDefault(),_(e=>e<y.length-1?e+1:0);return}if(e.key===`ArrowUp`){e.preventDefault(),_(e=>e>0?e-1:y.length-1);return}if(e.key===`Enter`||e.key===`Tab`){e.preventDefault(),E(y[g]);return}if(e.key===`Escape`){p(!1);return}}e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),n?.())},[f,y,g,E,n]);return(0,G.jsxs)(`div`,{className:q(`border rounded-md`,a),children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-0.5 px-2 py-1.5 border-b bg-muted/30`,children:[(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:x,disabled:o||u,title:l(`detail.bold`),children:(0,G.jsx)(Lt,{className:`h-3.5 w-3.5`})}),(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:S,disabled:o||u,title:l(`detail.italic`),children:(0,G.jsx)(rt,{className:`h-3.5 w-3.5`})}),(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:C,disabled:o||u,title:l(`detail.listFormat`),children:(0,G.jsx)(pt,{className:`h-3.5 w-3.5`})}),(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:w,disabled:o||u,title:l(`detail.inlineCode`),children:(0,G.jsx)(xt,{className:`h-3.5 w-3.5`})}),(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:T,disabled:o||u,title:l(`detail.mentionSomeone`),children:(0,G.jsx)(fn,{className:`h-3.5 w-3.5`})}),(0,G.jsx)(`div`,{className:`flex-1`}),(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>d(!u),title:l(u?`detail.edit`:`detail.preview`),children:(0,G.jsx)(u?Ye:_n,{className:`h-3.5 w-3.5`})}),n&&(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:n,disabled:o||!c&&!e.trim(),title:l(`detail.submitComment`),children:(0,G.jsx)(et,{className:`h-3.5 w-3.5`})})]}),(0,G.jsx)(`div`,{className:`relative`,children:u?(0,G.jsx)(`div`,{className:`min-h-[80px] px-3 py-2 text-sm prose prose-sm max-w-none`,dangerouslySetInnerHTML:{__html:dX(e)}}):(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)(`textarea`,{ref:v,className:`w-full min-h-[80px] px-3 py-2 text-sm bg-transparent resize-none focus:outline-none placeholder:text-muted-foreground`,placeholder:i??l(`detail.writeComment`),value:e,onChange:ee,onKeyDown:D,disabled:o}),f&&y.length>0&&(0,G.jsx)(`div`,{className:`absolute left-2 bottom-full mb-1 w-56 bg-popover border rounded-md shadow-md z-50 max-h-40 overflow-y-auto`,children:y.map((e,t)=>(0,G.jsxs)(`button`,{type:`button`,className:q(`w-full text-left px-3 py-1.5 text-sm flex items-center gap-2 hover:bg-accent transition-colors`,t===g&&`bg-accent`),onMouseDown:t=>{t.preventDefault(),E(e)},children:[e.avatarUrl?(0,G.jsx)(`img`,{src:e.avatarUrl,alt:e.label,className:`h-5 w-5 rounded-full object-cover`}):(0,G.jsx)(`div`,{className:`h-5 w-5 rounded-full bg-muted flex items-center justify-center text-[10px] font-medium`,children:e.label.charAt(0).toUpperCase()}),(0,G.jsx)(`span`,{children:e.label})]},e.id))})]})}),s&&(0,G.jsx)(`div`,{className:`border-t px-2 py-2 bg-muted/20`,children:s})]})};function pX(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function mX(e){return e.startsWith(`image/`)}function hX(e){return mX(e)?tt:e.includes(`pdf`)||e.includes(`document`)||e.includes(`text`)?dn:e.includes(`zip`)||e.includes(`archive`)||e.includes(`compressed`)?Xt:nn}var gX=({attachments:e,onUpload:t,onRemove:n,className:r,readOnly:i=!1})=>{let{t:a}=mY(),[o,s]=W.useState(!1),c=W.useRef(null),l=W.useCallback(e=>{e.preventDefault(),e.stopPropagation(),s(!0)},[]),u=W.useCallback(e=>{e.preventDefault(),e.stopPropagation(),s(!1)},[]),d=W.useCallback(e=>{e.preventDefault(),e.stopPropagation(),s(!1),t&&e.dataTransfer.files.length>0&&t(e.dataTransfer.files)},[t]),f=W.useCallback(e=>{t&&e.target.files&&e.target.files.length>0&&(t(e.target.files),e.target.value=``)},[t]);return(0,G.jsxs)(`div`,{className:q(`space-y-2`,r),children:[t&&!i&&(0,G.jsxs)(`div`,{className:q(`border-2 border-dashed rounded-md px-4 py-3 text-center transition-colors cursor-pointer`,o?`border-primary bg-primary/5`:`border-muted-foreground/25 hover:border-muted-foreground/40`),onDragOver:l,onDragLeave:u,onDrop:d,onClick:()=>c.current?.click(),role:`button`,tabIndex:0,onKeyDown:e=>{(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),c.current?.click())},children:[(0,G.jsx)(Qt,{className:`h-5 w-5 mx-auto text-muted-foreground mb-1`}),(0,G.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:a(`detail.dropFilesToUpload`)}),(0,G.jsx)(`input`,{ref:c,type:`file`,multiple:!0,className:`hidden`,onChange:f})]}),e.length>0&&(0,G.jsxs)(`div`,{className:`space-y-1.5`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs text-muted-foreground`,children:[(0,G.jsx)(Ft,{className:`h-3 w-3`}),(0,G.jsx)(`span`,{children:e.length===1?a(`detail.attachmentCount`,{count:e.length}):a(`detail.attachmentCountPlural`,{count:e.length})})]}),(0,G.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2`,children:e.map(e=>{let t=mX(e.type),r=hX(e.type);return(0,G.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border px-2.5 py-2 bg-muted/30 group`,children:[t&&(e.thumbnailUrl||e.url)?(0,G.jsx)(`img`,{src:e.thumbnailUrl||e.url,alt:e.name,className:`h-10 w-10 rounded object-cover shrink-0`}):(0,G.jsx)(`div`,{className:`h-10 w-10 rounded bg-muted flex items-center justify-center shrink-0`,children:(0,G.jsx)(r,{className:`h-5 w-5 text-muted-foreground`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,G.jsx)(`p`,{className:`text-xs font-medium truncate`,children:e.name}),(0,G.jsx)(`p`,{className:`text-[10px] text-muted-foreground`,children:pX(e.size)})]}),n&&!i&&(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-6 w-6 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`,onClick:()=>n(e.id),title:a(`detail.removeAttachment`),children:(0,G.jsx)(At,{className:`h-3.5 w-3.5`})})]},e.id)})})]})]})},_X={comment:St,field_change:Ye,task:ft,event:ln,system:Wt,email:Yt,call:mn},vX={comment:`bg-purple-100 text-purple-600`,field_change:`bg-blue-100 text-blue-600`,task:`bg-green-100 text-green-600`,event:`bg-amber-100 text-amber-600`,system:`bg-gray-100 text-gray-600`,email:`bg-indigo-100 text-indigo-600`,call:`bg-teal-100 text-teal-600`};function yX(e){return[{value:`all`,label:e(`detail.allActivity`)},{value:`comments_only`,label:e(`detail.commentsOnly`)},{value:`changes_only`,label:e(`detail.fieldChangesFilter`)},{value:`tasks_only`,label:e(`detail.tasksOnly`)}]}function bX(e){try{let t=new Date(e),n=new Date().getTime()-t.getTime(),r=Math.floor(n/6e4);if(r<1)return`just now`;if(r<60)return`${r}m ago`;let i=Math.floor(r/60);if(i<24)return`${i}h ago`;let a=Math.floor(i/24);return a<7?`${a}d ago`:t.toLocaleDateString()}catch{return e}}function xX(e,t){switch(t){case`comments_only`:return e.filter(e=>e.type===`comment`);case`changes_only`:return e.filter(e=>e.type===`field_change`);case`tasks_only`:return e.filter(e=>e.type===`task`);default:return e}}var SX=({items:e,config:t,filterMode:n,onFilterChange:r,hasMore:i=!1,onLoadMore:a,loading:o=!1,onAddComment:s,onAddReply:c,onToggleReaction:l,subscription:u,onToggleSubscription:d,collapseWhenEmpty:f=!1,mentionSuggestions:p,onUploadAttachments:m,titleLabel:h,emptyLabel:g,className:_})=>{let{t:v}=mY(),[y,b]=W.useState(`all`),[x,S]=W.useState(``),[C,w]=W.useState(!1),[T,E]=W.useState(!1),[ee,D]=W.useState([]),[O,k]=W.useState(!1),A=n??y,te=t?.showFilterToggle!==!1,ne=t?.showCommentInput!==!1&&!!s,re=t?.enableReactions??!1,ie=t?.enableThreading??!1,j=t?.showSubscriptionToggle??!1,M=W.useMemo(()=>xX(e,A),[e,A]),ae=W.useMemo(()=>ie?M.filter(e=>!e.parentId):M,[M,ie]),N=W.useMemo(()=>{if(!ie)return new Map;let e=new Map;for(let t of M)if(t.parentId){let n=e.get(t.parentId)??[];n.push(t),e.set(t.parentId,n)}return e},[M,ie]),oe=W.useCallback(e=>{r?r(e):b(e)},[r]),P=W.useCallback(async()=>{let e=x.trim();if(s&&!(!e&&ee.length===0)){w(!0);try{await s(e,ee.length>0?ee:void 0),S(``),D([])}finally{w(!1)}}},[x,ee,s]),se=W.useCallback(async e=>{if(!(!m||e.length===0)){k(!0);try{let t=await m(e);Array.isArray(t)&&t.length>0&&D(e=>[...e,...t])}finally{k(!1)}}},[m]),F=W.useCallback(e=>{D(t=>t.filter(t=>t.id!==e))},[]),ce=W.useCallback(async()=>{if(a){E(!0);try{await a()}finally{E(!1)}}},[a]);return(0,G.jsxs)(`section`,{className:q(`border-t border-border/60 pt-5`,_),"aria-label":`Discussion`,children:[(0,G.jsx)(`header`,{className:`mb-4`,children:(0,G.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,G.jsxs)(`h2`,{className:`flex items-center gap-2 text-base font-semibold leading-none tracking-tight`,children:[(0,G.jsx)(zt,{className:`h-4 w-4`}),h??v(`detail.activity`),(0,G.jsxs)(`span`,{className:`text-sm font-normal text-muted-foreground`,children:[`(`,M.length,`)`]})]}),(0,G.jsx)(`div`,{className:`flex items-center gap-1`,children:j&&u&&(0,G.jsx)(uX,{subscription:u,onToggle:d})})]})}),(0,G.jsxs)(`div`,{className:`space-y-4`,children:[te&&(0,G.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,G.jsxs)(OC,{value:A,onValueChange:e=>oe(e),children:[(0,G.jsx)(AC,{"aria-label":v(`detail.filterActivity`),className:`h-8 w-auto min-w-[140px] py-1 text-sm`,children:(0,G.jsx)(kC,{})}),(0,G.jsx)(NC,{children:yX(v).map(e=>(0,G.jsx)(FC,{value:e.value,children:e.label},e.value))})]})}),ne&&(0,G.jsx)(fX,{value:x,onChange:S,onSubmit:P,mentionSuggestions:p,placeholder:v(`detail.leaveCommentPlaceholder`),disabled:C,canSubmitEmpty:ee.length>0,extraSlot:m?(0,G.jsx)(gX,{attachments:ee,onUpload:se,onRemove:F,readOnly:C||O}):ee.length>0?(0,G.jsx)(gX,{attachments:ee,onRemove:F,readOnly:C}):void 0}),M.length===0?f?null:(0,G.jsx)(lE,{title:g??v(`detail.noActivity`),className:`py-6`}):(0,G.jsxs)(`div`,{className:`relative`,children:[(0,G.jsx)(`div`,{className:`absolute left-4 top-2 bottom-2 w-px bg-border`}),(0,G.jsx)(`div`,{className:`space-y-4`,children:ae.map(e=>{let t=_X[e.type]||Wt,n=vX[e.type]||`bg-gray-100 text-gray-600`,r=N.get(e.id)??[];return(0,G.jsxs)(`div`,{children:[(0,G.jsxs)(`div`,{className:`flex gap-3 relative`,children:[(0,G.jsx)(`div`,{className:q(`shrink-0 h-8 w-8 rounded-full flex items-center justify-center z-10`,n),children:e.actorAvatarUrl?(0,G.jsx)(`img`,{src:e.actorAvatarUrl,alt:e.actor,className:`h-8 w-8 rounded-full object-cover`}):(0,G.jsx)(t,{className:`h-3.5 w-3.5`})}),(0,G.jsxs)(`div`,{className:`flex-1 min-w-0 pt-1`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 mb-0.5`,children:[(0,G.jsx)(`span`,{className:`text-sm font-medium`,children:e.actor}),e.source&&(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:v(`detail.via`,{source:e.source})}),(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:bX(e.createdAt)}),e.edited&&(0,G.jsx)(`span`,{className:`text-xs text-muted-foreground italic`,children:v(`detail.edited`)}),e.pinned&&(0,G.jsxs)(`span`,{className:`text-xs text-amber-600`,children:[`📌 `,v(`detail.pinned`)]})]}),e.body&&(0,G.jsx)(`p`,{className:`text-sm whitespace-pre-wrap break-words text-muted-foreground`,children:e.body}),e.type===`field_change`&&e.fieldChanges&&(0,G.jsx)(`div`,{className:`space-y-1 mt-1`,children:e.fieldChanges.map((e,t)=>(0,G.jsx)(aX,{change:e},t))}),re&&e.reactions&&e.reactions.length>0&&(0,G.jsx)(`div`,{className:`mt-1.5`,children:(0,G.jsx)(sX,{reactions:e.reactions,onToggleReaction:l?t=>l(e.id,t):void 0})}),re&&(!e.reactions||e.reactions.length===0)&&l&&(0,G.jsx)(`div`,{className:`mt-1.5`,children:(0,G.jsx)(sX,{reactions:[],onToggleReaction:t=>l(e.id,t)})})]})]}),ie&&(e.replyCount??0)>0&&(0,G.jsx)(lX,{parentItem:e,replies:r,onAddReply:c,showReplyInput:!!c})]},e.id)})})]}),i&&(0,G.jsx)(`div`,{className:`text-center pt-2`,children:(0,G.jsxs)(J,{variant:`ghost`,size:`sm`,onClick:ce,disabled:T,"aria-label":v(`detail.loadMore`),children:[T?(0,G.jsx)(dt,{className:`h-4 w-4 animate-spin mr-1`}):(0,G.jsx)(nt,{className:`h-4 w-4 mr-1`}),v(`detail.loadMore`)]})})]})]})},CX=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},wX=({schema:e={},className:t,...n})=>{du();let{designer:r}=CX(n);return(0,G.jsx)(`div`,{className:t,...r,children:(0,G.jsx)(SX,{items:[],config:e})})},TX=({config:e,items:t,hasMore:n,onLoadMore:r,loading:i,onAddComment:a,onAddReply:o,onToggleReaction:s,subscription:c,onToggleSubscription:l,filterMode:u,onFilterChange:d,collapseWhenEmpty:f=!1,mentionSuggestions:p,onUploadAttachments:m,className:h})=>{let g=e?.position??`right`,_=e?.width??`360px`,v=e?.collapsible??!0,y=f&&t.length===0||(e?.defaultCollapsed??!1),{t:b}=mY(),[x,S]=W.useState(y);return g===`right`||g===`left`?x&&v?(0,G.jsx)(`div`,{className:q(`flex items-start pt-4`,g===`right`?`border-l`:`border-r`,h),children:(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-8 w-8 mx-1`,onClick:()=>S(!1),"aria-label":b(`detail.openDiscussion`),children:(0,G.jsx)(en,{className:`h-4 w-4`})})}):(0,G.jsxs)(`div`,{className:q(`flex flex-col overflow-hidden`,g===`right`?`border-l`:`border-r`,h),style:{width:_,minWidth:_},children:[(0,G.jsxs)(`div`,{className:`flex items-center justify-between px-4 py-3 border-b`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,G.jsx)(St,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{className:`text-sm font-medium`,children:b(`detail.discussion`)})]}),v&&(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>S(!0),"aria-label":b(`detail.closeDiscussion`),children:(0,G.jsx)(At,{className:`h-3.5 w-3.5`})})]}),(0,G.jsx)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,G.jsx)(SX,{items:t,config:e?.feed,hasMore:n,onLoadMore:r,loading:i,onAddComment:a,onAddReply:o,onToggleReaction:s,subscription:c,onToggleSubscription:l,filterMode:u,onFilterChange:d,collapseWhenEmpty:f,mentionSuggestions:p,onUploadAttachments:m,titleLabel:b(`detail.discussion`),emptyLabel:b(`detail.noCommentsYet`),className:`border-0 shadow-none`})})]}):(0,G.jsx)(`div`,{className:q(``,h),children:v&&x?(0,G.jsxs)(J,{variant:`ghost`,className:`w-full justify-start gap-2 text-muted-foreground`,onClick:()=>S(!1),"aria-label":b(`detail.showDiscussion`,{count:t.length}),children:[(0,G.jsx)(St,{className:`h-4 w-4`}),(0,G.jsx)(`span`,{children:b(`detail.showDiscussion`,{count:t.length})})]}):(0,G.jsxs)(`div`,{children:[v&&(0,G.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,G.jsxs)(`div`,{className:`flex items-center gap-2 text-sm font-medium`,children:[(0,G.jsx)(St,{className:`h-4 w-4`}),b(`detail.discussion`)]}),(0,G.jsx)(J,{variant:`ghost`,size:`icon`,className:`h-7 w-7`,onClick:()=>S(!0),"aria-label":b(`detail.hideDiscussion`),children:(0,G.jsx)(Ut,{className:`h-3.5 w-3.5`})})]}),(0,G.jsx)(SX,{items:t,config:e?.feed,hasMore:n,onLoadMore:r,loading:i,onAddComment:a,onAddReply:o,onToggleReaction:s,subscription:c,onToggleSubscription:l,filterMode:u,onFilterChange:d,collapseWhenEmpty:f,mentionSuggestions:p,onUploadAttachments:m,titleLabel:b(`detail.discussion`),emptyLabel:b(`detail.noCommentsYet`)})]})})},EX=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},DX=({schema:e={},className:t,...n})=>{du();let r=pu(),{designer:i}=EX(n),a={position:`bottom`,collapsible:!1,feed:{enableReactions:!0,enableThreading:!0,showCommentInput:!0},...e};return(0,G.jsx)(`div`,{className:t,...i,children:(0,G.jsx)(TX,{items:r?.items||[],config:a,onAddComment:r?.onAddComment,onAddReply:r?.onAddReply,onToggleReaction:r?.onToggleReaction,mentionSuggestions:r?.mentionSuggestions,onUploadAttachments:r?.onUploadAttachments})})},OX=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},kX=({schema:e={},className:t,...n})=>{let r=du(),{translateOptions:i}=bu(),{designer:a}=OX(n),o=Array.isArray(e.stages)?e.stages:[],s=e.statusField,c=W.useMemo(()=>{if(o.length===0||!s||!r?.objectName)return o;let e=i(r.objectName,s,o);return Array.isArray(e)&&e.length===o.length?o.map((t,n)=>({...t,label:e[n]?.label??t.label})):o},[o,s,r?.objectName,i]),l=s&&r?.data?r.data[s]:void 0,u=/(^|[_-\s])(closed_)?(lost|failed?|cancell?ed|失败|流失|丢单|败)([_-\s]|$)/i,d=/(^|[_-\s])(closed_)?(won|success|成交|赢|完成)([_-\s]|$)/i,f=c.map(e=>{if(e.terminal)return e.terminal;let t=`${String(e.value??``)} ${String(e.label??``)}`;if(u.test(t))return`lost`;if(d.test(t))return`won`}),p=f.findIndex(e=>e===`lost`),m=p===-1?c:c.slice(0,p),h=p===-1?[]:c.slice(p),g=p===-1?f:f.slice(0,p),_=c.findIndex(e=>e.value===l);_<0&&(_=-1);let v=p!==-1&&_>=p;if(c.length===0)return(0,G.jsx)(`div`,{className:t,...a,children:(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:path — no stages configured`})});let y=(e,t)=>{if(c.length!==1)return e===0?`polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%)`:e===t?`polygon(0 0, 100% 0, 100% 100%, 0 100%, 14px 50%)`:`polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%, 14px 50%)`},b=m.length-1;return(0,G.jsxs)(`div`,{className:q(`w-full`,t),...a,children:[(0,G.jsxs)(`div`,{className:`hidden sm:flex w-full items-stretch gap-2`,role:`list`,"aria-label":e.aria?.label||`Record path`,children:[(0,G.jsx)(`div`,{className:`flex flex-1 items-stretch`,children:m.map((e,t)=>{let n=!v&&_>=0&&t<_,r=!v&&t===_,i=g[t]===`won`&&t===b,a=y(t,b);return(0,G.jsx)(`div`,{role:`listitem`,"aria-current":r?`step`:void 0,style:a?{clipPath:a,WebkitClipPath:a}:void 0,className:q(`relative flex-1 min-w-0 px-5 py-2 text-xs font-medium text-center`,t>0&&`-ml-2`,m.length===1&&`rounded-md border`,r&&`bg-primary text-primary-foreground shadow-sm ring-1 ring-primary/40`,n&&`bg-emerald-500/15 text-emerald-800 dark:text-emerald-200`,!r&&!n&&i&&`bg-emerald-500/5 text-emerald-700/85 dark:text-emerald-300/85 border border-emerald-500/20`,!r&&!n&&!i&&`bg-background text-foreground/85 border border-border/60`),children:(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 truncate`,style:{paddingLeft:t===0?0:`${14/2}px`,paddingRight:t===b?0:`${14/2}px`},children:[n&&(0,G.jsx)(`span`,{"aria-hidden":!0,className:`text-emerald-600 dark:text-emerald-400 font-semibold`,children:`✓`}),i&&!r&&(0,G.jsx)(`span`,{"aria-hidden":!0,className:`opacity-70`,children:`🏆`}),e.label]})},`${e.value}-${t}`)})}),h.length>0&&(0,G.jsx)(`div`,{className:`flex items-stretch gap-1 pl-2 border-l border-border/40`,"aria-label":`Alternative terminal stages`,children:h.map((e,t)=>{let n=p+t===_;return(0,G.jsx)(`div`,{role:`listitem`,"aria-current":n?`step`:void 0,className:q(`shrink-0 px-3 py-2 text-xs font-medium rounded-md border whitespace-nowrap`,n&&`bg-destructive text-destructive-foreground border-destructive shadow-sm ring-1 ring-destructive/40`,!n&&`bg-destructive/5 text-destructive/85 border-destructive/20`),children:(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,G.jsx)(`span`,{"aria-hidden":!0,className:`opacity-70`,children:`✗`}),e.label]})},`${e.value}-lost-${t}`)})})]}),(0,G.jsx)(`div`,{className:`flex sm:hidden w-full items-stretch gap-1 overflow-x-auto pb-1 -mx-1 px-1 [-ms-overflow-style:none] [scrollbar-width:none] [&::-webkit-scrollbar]:hidden`,role:`list`,"aria-label":e.aria?.label||`Record path`,children:c.map((e,t)=>{let n=f[t]===`lost`,r=!n&&!v&&_>=0&&t<_,i=t===_;return(0,G.jsx)(`div`,{role:`listitem`,"aria-current":i?`step`:void 0,className:q(`shrink-0 px-3 py-1.5 rounded-full text-xs font-medium border whitespace-nowrap`,n&&i&&`bg-destructive text-destructive-foreground border-destructive shadow-sm`,n&&!i&&`bg-destructive/5 text-destructive/85 border-destructive/20`,!n&&i&&`bg-primary text-primary-foreground border-primary shadow-sm ring-1 ring-primary/40`,!n&&r&&`bg-emerald-500/15 text-emerald-800 dark:text-emerald-200 border-emerald-500/30`,!n&&!i&&!r&&`bg-background text-foreground/85 border-border/60`),children:(0,G.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[n&&(0,G.jsx)(`span`,{"aria-hidden":!0,className:`opacity-70`,children:`✗`}),!n&&r&&(0,G.jsx)(`span`,{"aria-hidden":!0,className:`text-emerald-600 dark:text-emerald-400 font-semibold`,children:`✓`}),e.label]})},`${e.value}-${t}-m`)})})]})},AX=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},jX=({schema:e={},className:t,...n})=>{let r=du(),{designer:i}=AX(n),a=sU(),o=Array.isArray(e.actions)?e.actions:Array.isArray(e.properties?.actions)?e.properties.actions:[],s=r?.objectName||``,c=Array.isArray(e.requiredPermissions)?e.requiredPermissions:[];if(c.length>0&&s&&!c.every(e=>a.can(s,e)))return(0,G.jsx)(`div`,{className:t,...i,role:`status`,"aria-live":`polite`,children:(0,G.jsx)(`p`,{className:`text-sm text-muted-foreground italic`,children:`Insufficient permissions to view quick actions.`})});let l=e.location||`record_header`,{getActionsForLocation:u,executeAction:d}=Xl({actions:o,context:{record:r?.data,recordId:r?.recordId,objectName:r?.objectName}}),f=o.length>0?u(l):[];if(f.length===0)return(0,G.jsx)(`div`,{className:t,...i,children:(0,G.jsx)(`div`,{className:`text-xs text-muted-foreground italic px-3 py-2 border border-dashed rounded`,children:`record:quick_actions — no actions configured`})});let p=e.align||`end`,m=p===`start`?`justify-start`:p===`center`?`justify-center`:`justify-end`;return(0,G.jsx)(`div`,{className:q(`flex flex-wrap items-center gap-2`,l===`record_header`&&!e.inline&&`-mt-12 sm:-mt-14 mb-2 relative z-10`,m,t),role:`toolbar`,"aria-label":e.aria?.label||`Quick actions`,...i,children:f.map((t,n)=>{let r=t.label||t.name||`Action ${n+1}`;return(0,G.jsx)(J,{variant:t.variant||e.variant||`default`,size:t.size||e.size||`sm`,disabled:typeof t.disabled==`boolean`?t.disabled:void 0,onClick:()=>{if(typeof t.onClick==`function`){t.onClick();return}t.name&&d(t.name)},children:r},t.name||`qa-${n}`)})})},MX=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},NX=({schema:e={},className:t,...n})=>{let{designer:r}=MX(n),i=Array.isArray(e.entries)?e.entries:Array.isArray(e.properties?.entries)?e.properties.entries:[],a=e.loading??e.properties?.loading??!1,o=e.emptyText??e.properties?.emptyText;return(0,G.jsx)(`div`,{className:t,...r,children:(0,G.jsx)(IY,{entries:i,loading:a,emptyText:o})})},PX=e=>{let{"data-obj-id":t,"data-obj-type":n,style:r,...i}=e||{};return{designer:{"data-obj-id":t,"data-obj-type":n,style:r},rest:i}},FX=e=>e.replace(/[_-]+/g,` `).replace(/\b\w/g,e=>e.toUpperCase()).trim(),IX=e=>e?.name||e?.title||e?.subject||e?.label||e?.id||`—`,LX=({schema:e={},className:t,...n})=>{let r=du(),i=bu(),{t:a}=mY(),{designer:o}=PX(n),s=fe().appName,c=Array.isArray(e.entries)?e.entries:Array.isArray(e.properties?.entries)?e.properties.entries:[],l=r?.recordId,u=r?.dataSource,[d,f]=W.useState({});if(W.useEffect(()=>{if(!u?.find||!l||c.length===0)return;let e=!1;return c.forEach(t=>{let n=t.objectName;f(e=>({...e,[n]:{loading:!0,total:0,items:e[n]?.items||[]}})),u.find(t.objectName,{$filter:{[t.relationshipField]:l},$top:t.limit??3,$count:!0}).then(t=>{if(e)return;let r=Array.isArray(t)?t:t?.data||[],i=typeof t?.total==`number`?t.total:typeof t?.count==`number`?t.count:r.length;f(e=>({...e,[n]:{loading:!1,total:i,items:r}}))}).catch(t=>{e||f(e=>({...e,[n]:{loading:!1,total:0,items:[],error:String(t?.message||t)}}))})}),()=>{e=!0}},[u,l,JSON.stringify(c.map(e=>`${e.objectName}:${e.relationshipField}:${e.limit??3}`))]),c.length===0)return null;let p=e.hideEmpty!==!1,[m,h]=W.useState(!1),g=new Set(c.filter(e=>{let t=d[e.objectName];return p&&t&&!t.loading&&!t.error&&t.total===0}).map(e=>e.objectName)),_=c.filter(e=>m||!g.has(e.objectName)),v=c.filter(e=>g.has(e.objectName)).map(e=>e.title||(i?.objectLabel?i.objectLabel({name:e.objectName,label:FX(e.objectName)}):FX(e.objectName)));return(0,G.jsxs)(`div`,{className:q(`flex flex-col gap-3`,e.className,t),...o,children:[_.map(e=>{let t=e.objectName,n=d[t]||{loading:!0,total:0,items:[]};return(0,G.jsxs)(ex,{className:`overflow-hidden`,children:[(0,G.jsxs)(tx,{className:`flex flex-row items-center justify-between gap-2 py-3 px-4 space-y-0 border-b`,children:[(0,G.jsx)(nx,{className:`text-sm font-semibold tracking-tight truncate`,children:e.title||(i?.objectLabel?i.objectLabel({name:e.objectName,label:FX(e.objectName)}):FX(e.objectName))}),(0,G.jsxs)(`div`,{className:`flex items-center gap-2 shrink-0`,children:[!n.loading&&(0,G.jsx)(Wb,{variant:`secondary`,className:`tabular-nums`,children:n.total}),s&&l&&(0,G.jsx)(Ue,{to:`/apps/${s}/${e.objectName}?filter%5B${e.relationshipField}%5D=${encodeURIComponent(String(l))}`,className:`text-[11px] font-medium text-muted-foreground hover:text-foreground transition-colors`,title:a(`detail.viewAll`,{defaultValue:`View all`}),children:a(`detail.viewAll`,{defaultValue:`View all`})})]})]}),(0,G.jsx)(ix,{className:`p-0`,children:n.loading?(0,G.jsxs)(`div`,{className:`space-y-1.5 p-3`,children:[(0,G.jsx)(ZC,{className:`h-3.5 w-4/5`}),(0,G.jsx)(ZC,{className:`h-3.5 w-3/5`}),(0,G.jsx)(ZC,{className:`h-3.5 w-2/3`})]}):n.items.length===0?(0,G.jsx)(`p`,{className:`px-4 py-3 text-xs text-muted-foreground`,children:a(`detail.noRecords`)}):(0,G.jsx)(`ul`,{className:`divide-y`,children:n.items.map(t=>{let n=t.id||t._id,r=IX(t),i=n?`../${e.objectName}/record/${encodeURIComponent(String(n))}`:void 0;return(0,G.jsx)(`li`,{className:`px-4 py-2`,children:i?(0,G.jsxs)(Ue,{to:i,className:`group flex items-center justify-between gap-2 text-xs hover:text-foreground text-muted-foreground transition-colors`,children:[(0,G.jsx)(`span`,{className:`truncate`,children:r}),(0,G.jsx)(Xe,{className:`h-3 w-3 shrink-0 opacity-0 group-hover:opacity-100 transition-opacity`})]}):(0,G.jsx)(`span`,{className:`block truncate text-xs text-muted-foreground`,children:r})},String(n||r))})})})]},t)}),!m&&v.length>0&&(0,G.jsxs)(`button`,{type:`button`,onClick:()=>h(!0),className:`self-start inline-flex items-center gap-1.5 text-[11px] text-muted-foreground hover:text-foreground transition-colors px-2.5 py-1 rounded-md border border-dashed border-border/60 hover:border-border bg-background`,title:v.join(` · `),children:[(0,G.jsx)(`span`,{children:a(`detail.showEmptyRelated`,{defaultValue:`+ {{count}} empty`,count:v.length})}),(0,G.jsxs)(`span`,{className:`truncate max-w-[180px] text-muted-foreground/70`,children:[`(`,v.join(` · `),`)`]})]})]})},RX=new Set([`id`,`_id`,`__v`,`created_at`,`updated_at`,`createdAt`,`updatedAt`,`created_by`,`updated_by`,`organization_id`,`tenant_id`,`owner_id`,`deleted_at`,`is_deleted`]),zX=480,BX=95;function VX({open:e,onClose:t,title:n,record:r,objectName:i,recordId:a,dataSource:o,objectSchema:s,width:c=`min(960px, 60vw)`,columns:l=2,systemFields:u=RX,onFieldSave:d,onDelete:f,resizable:p=!0,fullPageHref:m}){let{t:h}=mY(),g=`objectui.drawerWidth.${i}`,[_,v]=W.useState(()=>{if(typeof window>`u`||!p)return null;try{let e=window.localStorage.getItem(g);if(e){let t=parseInt(e,10);if(Number.isFinite(t)&&t>=zX)return t}}catch{}return null}),y=W.useMemo(()=>p&&_!=null?`${_}px`:typeof c==`number`?`${c}px`:c,[p,_,c]),b=y?{width:y,maxWidth:y}:void 0,x=W.useRef(null),S=W.useCallback(e=>{if(!p)return;e.preventDefault();let t=_??(typeof window<`u`?Math.min(window.innerWidth*.6,960):720);x.current={startX:e.clientX,startWidth:t};let n=e=>{let t=x.current;if(!t)return;let n=t.startX-e.clientX,r=typeof window<`u`?window.innerWidth*BX/100:1600,i=Math.min(r,Math.max(zX,t.startWidth+n));v(Math.round(i))},r=()=>{x.current,x.current=null,window.removeEventListener(`pointermove`,n),window.removeEventListener(`pointerup`,r),window.removeEventListener(`pointercancel`,r);try{v(e=>(e!=null&&window.localStorage.setItem(g,String(e)),e))}catch{}};window.addEventListener(`pointermove`,n),window.addEventListener(`pointerup`,r),window.addEventListener(`pointercancel`,r)},[p,_,g]),C=s?.fields??{},w=(Object.keys(C).length?Object.keys(C):Object.keys(r)).filter(e=>!u.has(e)&&!e.startsWith(`__`)).filter(e=>e in r).filter(e=>!C[e]?.hidden).map(e=>{let t=C[e]||{},n=t.type===`lookup`||t.type===`master_detail`||t.type===`reference`;return{name:e,label:t.label,type:t.type,readonly:!!t.readonly||n,options:t.options,currency:t.currency,precision:t.precision,format:t.format,reference_to:t.reference_to??t.referenceTo??t.target,reference_field:t.reference_field??t.referenceField,required:t.required,validation:t.validation,placeholder:t.placeholder,description:t.description}});return(0,G.jsx)(RC,{open:e,onOpenChange:e=>{e||t()},children:(0,G.jsxs)(WC,{side:`right`,className:`w-full overflow-y-auto p-0 sm:!max-w-none`,style:b,onOpenAutoFocus:e=>e.preventDefault(),children:[p&&(0,G.jsx)(`div`,{role:`separator`,"aria-orientation":`vertical`,"aria-label":`Resize drawer`,onPointerDown:S,className:`hidden sm:block absolute left-0 top-0 h-full w-1.5 cursor-col-resize select-none bg-transparent hover:bg-primary/30 active:bg-primary/50 transition-colors z-10`}),(0,G.jsx)(GC,{className:`sr-only`,children:(0,G.jsx)(qC,{children:n})}),(0,G.jsx)(`div`,{className:`px-6 pt-6 pb-6`,children:(0,G.jsx)(KY,{dataSource:o,inlineEdit:!0,schema:{type:`detail-view`,objectName:i,resourceId:String(a),data:r,showDelete:!0,columns:l,fields:w,actions:m?[{type:`action:bar`,location:`record_header`,systemActions:[{name:`sys_open_new_tab`,label:h(`detail.openInNewTab`),icon:`external-link`,type:`script`,onClick:()=>window.open(m,`_blank`,`noopener`)}]}]:void 0},onFieldSave:async(e,t)=>{try{await d?.(e,t)}catch(e){console.error(`[RecordDetailDrawer] inline field save failed:`,e)}},onDelete:async()=>{try{await f?.(),t()}catch(e){console.error(`[RecordDetailDrawer] delete failed:`,e)}}})})]})})}function HX(e,t){if(typeof window>`u`)return null;let n=window.location.pathname,r=`/${e}`,i=n.indexOf(r);return`${i>=0?n.slice(0,i):n.replace(/\/$/,``)}/${e}/record/${encodeURIComponent(String(t))}`}K.register(`detail-view`,KY,{namespace:`plugin-detail`,label:`Detail View`,category:`Views`,icon:`FileText`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`objectName`,type:`string`,label:`Object Name`},{name:`resourceId`,type:`string`,label:`Resource ID`},{name:`api`,type:`string`,label:`API Endpoint`},{name:`data`,type:`object`,label:`Data`},{name:`layout`,type:`enum`,label:`Layout Mode`,enum:[`vertical`,`horizontal`,`grid`]},{name:`columns`,type:`number`,label:`Grid Columns`},{name:`sections`,type:`array`,label:`Sections`},{name:`fields`,type:`array`,label:`Fields`},{name:`tabs`,type:`array`,label:`Tabs`},{name:`related`,type:`array`,label:`Related Lists`},{name:`actions`,type:`array`,label:`Actions`},{name:`showBack`,type:`boolean`,label:`Show Back Button`,defaultValue:!0},{name:`backUrl`,type:`string`,label:`Back URL`},{name:`showEdit`,type:`boolean`,label:`Show Edit Button`,defaultValue:!1},{name:`editUrl`,type:`string`,label:`Edit URL`},{name:`showDelete`,type:`boolean`,label:`Show Delete Button`,defaultValue:!1},{name:`deleteConfirmation`,type:`string`,label:`Delete Confirmation Message`},{name:`loading`,type:`boolean`,label:`Show Loading State`},{name:`header`,type:`object`,label:`Custom Header`},{name:`footer`,type:`object`,label:`Custom Footer`}],defaultProps:{title:`Detail View`,showBack:!0,showEdit:!1,showDelete:!1,sections:[],fields:[],tabs:[],related:[]}}),K.register(`detail-section`,gY,{namespace:`plugin-detail`,label:`Detail Section`,category:`Detail Components`,inputs:[{name:`title`,type:`string`,label:`Title`},{name:`description`,type:`string`,label:`Description`},{name:`fields`,type:`array`,label:`Fields`,required:!0},{name:`collapsible`,type:`boolean`,label:`Collapsible`,defaultValue:!1},{name:`defaultCollapsed`,type:`boolean`,label:`Default Collapsed`,defaultValue:!1},{name:`columns`,type:`number`,label:`Columns`,defaultValue:2},{name:`showBorder`,type:`boolean`,label:`Show Border`,defaultValue:!0},{name:`headerColor`,type:`string`,label:`Header Color`}]}),K.register(`related-list`,yY,{namespace:`plugin-detail`,label:`Related List`,category:`Detail Components`,inputs:[{name:`title`,type:`string`,label:`Title`,required:!0},{name:`type`,type:`enum`,label:`Type`,enum:[{label:`List`,value:`list`},{label:`Grid`,value:`grid`},{label:`Table`,value:`table`}],defaultValue:`table`},{name:`api`,type:`string`,label:`API Endpoint`},{name:`data`,type:`array`,label:`Data`},{name:`columns`,type:`array`,label:`Columns`}]}),K.register(`detail`,KY,{namespace:`view`,category:`view`,label:`Detail`,icon:`FileText`,inputs:[{name:`objectName`,type:`string`,label:`Object Name`,required:!0},{name:`recordId`,type:`string`,label:`Record ID`},{name:`fields`,type:`array`,label:`Fields`}]}),K.register(`record:details`,$Y,{namespace:`record`,category:`record`,label:`Record Details`,icon:`FileText`}),K.register(`record:related_list`,nX,{namespace:`record`,category:`record`,label:`Related List`,icon:`List`}),K.register(`record:highlights`,iX,{namespace:`record`,category:`record`,label:`Highlights Panel`,icon:`Star`}),K.register(`record:activity`,wX,{namespace:`record`,category:`record`,label:`Activity Timeline`,icon:`Activity`}),K.register(`record:chatter`,DX,{namespace:`record`,category:`record`,label:`Chatter Feed`,icon:`MessageSquare`}),K.register(`record:discussion`,DX,{namespace:`record`,category:`record`,label:`Discussion`,icon:`MessageSquare`}),K.register(`record:path`,kX,{namespace:`record`,category:`record`,label:`Path / Stepper`,icon:`GitBranch`}),K.register(`record:quick_actions`,jX,{namespace:`record`,category:`record`,label:`Quick Actions`,icon:`Zap`}),K.register(`record:history`,NX,{namespace:`record`,category:`record`,label:`History Timeline`,icon:`Clock`}),K.register(`record:reference_rail`,LX,{namespace:`record`,category:`record`,label:`Reference Rail`,icon:`PanelRight`});function $(e){if(typeof process<`u`&&{}.OS_EAGER_SCHEMAS===`1`)return e();let t,n=()=>(t===void 0&&(t=e()),t);return new Proxy(function(){},{get(e,t){let r=n(),i=r[t];return typeof i==`function`?i.bind(r):i},set(e,t,r){let i=n();return i[t]=r,!0},has(e,t){return t in n()},ownKeys(){return Reflect.ownKeys(n())},getOwnPropertyDescriptor(e,t){return Reflect.getOwnPropertyDescriptor(n(),t)},getPrototypeOf(){return Reflect.getPrototypeOf(n())}})}$(()=>B({key:R().describe(`Translation key (e.g., "views.task_list.label")`),defaultValue:R().optional().describe(`Fallback value when translation key is not found`),params:L(R(),V([R(),I(),H()])).optional().describe(`Interpolation parameters (e.g., { count: 5 })`)}));var UX=$(()=>R().describe(`Display label (plain string; i18n keys are auto-generated by the framework)`)),WX=$(()=>B({ariaLabel:UX.optional().describe(`Accessible label for screen readers (WAI-ARIA aria-label)`),ariaDescribedBy:R().optional().describe(`ID of element providing additional description (WAI-ARIA aria-describedby)`),role:R().optional().describe(`WAI-ARIA role attribute (e.g., "dialog", "navigation", "alert")`)}).describe(`ARIA accessibility attributes`));$(()=>B({key:R().describe(`Translation key`),zero:R().optional().describe(`Zero form (e.g., "No items")`),one:R().optional().describe(`Singular form (e.g., "{count} item")`),two:R().optional().describe(`Dual form (e.g., "{count} items" for exactly 2)`),few:R().optional().describe(`Few form (e.g., for 2-4 in some languages)`),many:R().optional().describe(`Many form (e.g., for 5+ in some languages)`),other:R().describe(`Default plural form (e.g., "{count} items")`)}).describe(`ICU plural rules for a translation key`));var GX=$(()=>B({style:N([`decimal`,`currency`,`percent`,`unit`]).default(`decimal`).describe(`Number formatting style`),currency:R().optional().describe(`ISO 4217 currency code (e.g., "USD", "EUR")`),unit:R().optional().describe(`Unit for unit formatting (e.g., "kilometer", "liter")`),minimumFractionDigits:I().optional().describe(`Minimum number of fraction digits`),maximumFractionDigits:I().optional().describe(`Maximum number of fraction digits`),useGrouping:H().optional().describe(`Whether to use grouping separators (e.g., 1,000)`)}).describe(`Number formatting rules`)),KX=$(()=>B({dateStyle:N([`full`,`long`,`medium`,`short`]).optional().describe(`Date display style`),timeStyle:N([`full`,`long`,`medium`,`short`]).optional().describe(`Time display style`),timeZone:R().optional().describe(`IANA time zone (e.g., "America/New_York")`),hour12:H().optional().describe(`Use 12-hour format`)}).describe(`Date/time formatting rules`));$(()=>B({code:R().describe(`BCP 47 language code (e.g., "en-US", "zh-CN")`),fallbackChain:U(R()).optional().describe(`Fallback language codes in priority order (e.g., ["zh-TW", "en"])`),direction:N([`ltr`,`rtl`]).default(`ltr`).describe(`Text direction: left-to-right or right-to-left`),numberFormat:GX.optional().describe(`Default number formatting rules`),dateFormat:KX.optional().describe(`Default date/time formatting rules`)}).describe(`Locale configuration`));var qX=$(()=>N(`bar.horizontal-bar.column.grouped-bar.stacked-bar.bi-polar-bar.line.area.stacked-area.step-line.spline.pie.donut.funnel.pyramid.scatter.bubble.treemap.sunburst.sankey.word-cloud.gauge.solid-gauge.metric.kpi.bullet.choropleth.bubble-map.gl-map.heatmap.radar.waterfall.box-plot.violin.candlestick.stock.table.pivot`.split(`.`))),JX=$(()=>B({field:R().describe(`Data field key`),title:UX.optional().describe(`Axis display title`),format:R().optional().describe(`Value format string (e.g., "$0,0.00")`),min:I().optional().describe(`Minimum value`),max:I().optional().describe(`Maximum value`),stepSize:I().optional().describe(`Step size for ticks`),showGridLines:H().default(!0),position:N([`left`,`right`,`top`,`bottom`]).optional().describe(`Axis position`),logarithmic:H().default(!1)})),YX=$(()=>B({name:R().describe(`Field name or series identifier`),label:UX.optional().describe(`Series display label`),type:qX.optional().describe(`Override chart type for this series`),color:R().optional().describe(`Series color (hex/rgb/token)`),stack:R().optional().describe(`Stack identifier to group series`),yAxis:N([`left`,`right`]).default(`left`).describe(`Bind to specific Y-Axis`)})),XX=$(()=>B({type:N([`line`,`region`]).default(`line`),axis:N([`x`,`y`]).default(`y`),value:V([I(),R()]).describe(`Start value`),endValue:V([I(),R()]).optional().describe(`End value for regions`),color:R().optional(),label:UX.optional(),style:N([`solid`,`dashed`,`dotted`]).default(`dashed`)})),ZX=$(()=>B({tooltips:H().default(!0),zoom:H().default(!1),brush:H().default(!1),clickAction:R().optional().describe(`Action ID to trigger on click`)})),QX=$(()=>B({type:qX,title:UX.optional().describe(`Chart title`),subtitle:UX.optional().describe(`Chart subtitle`),description:UX.optional().describe(`Accessibility description`),xAxis:JX.optional().describe(`X-Axis configuration`),yAxis:U(JX).optional().describe(`Y-Axis configuration (support dual axis)`),series:U(YX).optional().describe(`Defined series configuration`),colors:U(R()).optional().describe(`Color palette`),height:I().optional().describe(`Fixed height in pixels`),showLegend:H().default(!0).describe(`Display legend`),showDataLabels:H().default(!1).describe(`Display data labels`),annotations:U(XX).optional(),interaction:ZX.optional(),aria:WX.optional().describe(`ARIA accessibility attributes`)})),$X=N([`xs`,`sm`,`md`,`lg`,`xl`,`2xl`]),eZ=$(()=>B({xs:I().min(1).max(12).optional(),sm:I().min(1).max(12).optional(),md:I().min(1).max(12).optional(),lg:I().min(1).max(12).optional(),xl:I().min(1).max(12).optional(),"2xl":I().min(1).max(12).optional()}).describe(`Grid columns per breakpoint (1-12)`)),tZ=$(()=>B({xs:I().optional(),sm:I().optional(),md:I().optional(),lg:I().optional(),xl:I().optional(),"2xl":I().optional()}).describe(`Display order per breakpoint`)),nZ=$(()=>B({breakpoint:$X.optional().describe(`Minimum breakpoint for visibility`),hiddenOn:U($X).optional().describe(`Hide on these breakpoints`),columns:eZ.optional().describe(`Grid columns per breakpoint`),order:tZ.optional().describe(`Display order per breakpoint`)}).describe(`Responsive layout configuration`)),rZ=$(()=>B({lazyLoad:H().optional().describe(`Enable lazy loading (defer rendering until visible)`),virtualScroll:B({enabled:H().default(!1).describe(`Enable virtual scrolling`),itemHeight:I().optional().describe(`Fixed item height in pixels (for estimation)`),overscan:I().optional().describe(`Number of extra items to render outside viewport`)}).optional().describe(`Virtual scrolling configuration`),cacheStrategy:N([`none`,`cache-first`,`network-first`,`stale-while-revalidate`]).optional().describe(`Client-side data caching strategy`),prefetch:H().optional().describe(`Prefetch data before component is visible`),pageSize:I().optional().describe(`Number of items per page for pagination`),debounceMs:I().optional().describe(`Debounce interval for user interactions in milliseconds`)}).describe(`Performance optimization configuration`)),iZ=$(()=>R().min(2,{message:`System identifier must be at least 2 characters`}).regex(/^[a-z][a-z0-9_.]*$/,{message:`System identifier must be lowercase, starting with a letter, and may contain letters, numbers, underscores, or dots (e.g., "user_profile" or "order.created")`}).describe(`System identifier (lowercase with underscores or dots)`)),aZ=$(()=>R().min(2,{message:`Identifier must be at least 2 characters`}).regex(/^[a-z][a-z0-9_]*$/,{message:`Identifier must be lowercase snake_case, starting with a letter, and may contain only letters, numbers, and underscores (e.g., "user_profile")`}).describe(`Snake case identifier (lowercase with underscores only)`));$(()=>R().min(3,{message:`Event name must be at least 3 characters`}).regex(/^[a-z][a-z0-9_.]*$/,{message:`Event name must be lowercase with dots for namespacing (e.g., "user.created", "order.paid")`}).describe(`Event name (lowercase with dot notation for namespacing)`));var oZ=N([`cel`,`js`,`cron`,`template`]),sZ=B({rationale:R().optional(),generatedBy:R().optional()}),cZ=B({dialect:oZ,source:R().min(1).optional(),ast:z().optional(),meta:sZ.optional()}).refine(e=>e.source!==void 0||e.ast!==void 0,{message:"Expression requires at least one of `source` or `ast`"}),lZ=V([R().min(1).transform(e=>({dialect:`cel`,source:e})),cZ]);V([R().min(1).transform(e=>({dialect:`cron`,source:e})),cZ]),V([R().min(1).transform(e=>({dialect:`template`,source:e})),cZ]);var uZ=$(()=>B({enabled:H().default(!1).describe(`Enable public sharing`),publicLink:R().optional().describe(`Generated public share URL`),password:R().optional().describe(`Password required to access shared link`),allowedDomains:U(R()).optional().describe(`Restrict access to specific email domains (e.g. ["example.com"])`),expiresAt:R().optional().describe(`Expiration date/time in ISO 8601 format`),allowAnonymous:H().optional().default(!1).describe(`Allow access without authentication`)})),dZ=$(()=>B({enabled:H().default(!1).describe(`Enable iframe embedding`),allowedOrigins:U(R()).optional().describe(`Allowed iframe parent origins (e.g. ["https://example.com"])`),width:R().optional().default(`100%`).describe(`Embed width (CSS value)`),height:R().optional().default(`600px`).describe(`Embed height (CSS value)`),showHeader:H().optional().default(!0).describe(`Show interface header in embed`),showNavigation:H().optional().default(!1).describe(`Show navigation in embed`),responsive:H().optional().default(!0).describe(`Enable responsive resizing`)})),fZ=B({id:aZ.describe(`Unique identifier for this navigation item (lowercase snake_case)`),label:UX.describe(`Display proper label`),icon:R().optional().describe(`Icon name`),order:I().optional().describe(`Sort order within the same level (lower = first)`),badge:V([R(),I()]).optional().describe(`Badge text or count displayed on the item`),visible:lZ.optional().describe('Visibility predicate (CEL). e.g. P`os.user.role == "admin"`'),requiredPermissions:U(R()).optional().describe(`Permissions required to access this item`),requiresObject:R().optional().describe(`Hide/disable this entry unless the named object is registered in the runtime`),requiresService:R().optional().describe(`Hide/disable this entry unless the named kernel service is registered`)}),pZ=$(()=>fZ.extend({type:Pe(`object`),objectName:R().describe(`Target object name`),viewName:R().optional().describe(`Default list view to open. Defaults to "all"`)})),mZ=$(()=>fZ.extend({type:Pe(`dashboard`),dashboardName:R().describe(`Target dashboard name`)})),hZ=$(()=>fZ.extend({type:Pe(`page`),pageName:R().describe(`Target custom page component name`),params:L(R(),z()).optional().describe(`Parameters passed to the page context`)})),gZ=$(()=>fZ.extend({type:Pe(`url`),url:R().describe(`Target external URL`),target:N([`_self`,`_blank`]).default(`_self`).describe(`Link target window`)})),_Z=$(()=>fZ.extend({type:Pe(`report`),reportName:R().describe(`Target report name`)})),vZ=$(()=>fZ.extend({type:Pe(`action`),actionDef:B({actionName:R().describe(`Action machine name to execute`),params:L(R(),z()).optional().describe(`Parameters passed to the action`)}).describe(`Action definition to execute when clicked`)})),yZ=$(()=>fZ.extend({type:Pe(`group`),expanded:H().default(!1).describe(`Default expansion state in sidebar`)})),bZ=De(()=>V([pZ.extend({children:U(bZ).optional().describe(`Child navigation items (e.g. specific views)`)}),mZ,hZ,gZ,_Z,vZ,yZ.extend({children:U(bZ).describe(`Child navigation items`)})])),xZ=$(()=>B({primaryColor:R().optional().describe(`Primary theme color hex code`),logo:R().optional().describe(`Custom logo URL for this app`),favicon:R().optional().describe(`Custom favicon URL for this app`)})),SZ=$(()=>B({id:aZ.describe(`Unique area identifier (lowercase snake_case)`),label:UX.describe(`Area display label`),icon:R().optional().describe(`Area icon name`),order:I().optional().describe(`Sort order among areas (lower = first)`),description:UX.optional().describe(`Area description`),visible:lZ.optional().describe(`Visibility predicate (CEL) for this area.`),requiredPermissions:U(R()).optional().describe(`Permissions required to access this area`),navigation:U(bZ).describe(`Navigation items within this area`)}));$(()=>B({name:aZ.describe(`App unique machine name (lowercase snake_case)`),label:UX.describe(`App display label`),version:R().optional().describe(`App version`),description:UX.optional().describe(`App description`),icon:R().optional().describe(`App icon used in the App Launcher`),branding:xZ.optional().describe(`App-specific branding`),active:H().optional().default(!0).describe(`Whether the app is enabled`),isDefault:H().optional().default(!1).describe(`Is default app`),navigation:U(bZ).optional().describe(`Full navigation tree for the app sidebar`),areas:U(SZ).optional().describe(`Navigation areas for partitioning navigation by business domain`),homePageId:R().optional().describe(`ID of the navigation item to serve as landing page`),requiredPermissions:U(R()).optional().describe(`Permissions required to access this app`),objects:U(z()).optional().describe(`Objects belonging to this app`),apis:U(z()).optional().describe(`Custom APIs belonging to this app`),sharing:uZ.optional().describe(`Public sharing configuration`),embed:dZ.optional().describe(`Iframe embedding configuration`),mobileNavigation:B({mode:N([`drawer`,`bottom_nav`,`hamburger`]).default(`drawer`).describe(`Mobile navigation mode: drawer sidebar, bottom navigation bar, or hamburger menu`),bottomNavItems:U(R()).optional().describe(`Navigation item IDs to show in bottom nav (max 5)`)}).optional().describe(`Mobile-specific navigation configuration`),defaultAgent:aZ.optional().describe(`Name of the default AI agent for this app (used by the ambient chat endpoint)`),aria:WX.optional().describe(`ARIA accessibility attributes for the application`)}));var CZ=N([`GET`,`POST`,`PUT`,`DELETE`,`PATCH`,`HEAD`,`OPTIONS`]),wZ=$(()=>N([`GET`,`POST`,`PUT`,`PATCH`,`DELETE`])),TZ=$(()=>B({url:R().describe(`API endpoint URL`),method:wZ.optional().default(`GET`).describe(`HTTP method`),headers:L(R(),R()).optional().describe(`Custom HTTP headers`),params:L(R(),z()).optional().describe(`Query parameters`),body:z().optional().describe(`Request body for POST/PUT/PATCH`)}));$(()=>B({enabled:H().default(!0).describe(`Enable CORS`),origins:V([R(),U(R())]).default(`*`).describe(`Allowed origins (* for all)`),methods:U(CZ).optional().describe(`Allowed HTTP methods`),credentials:H().default(!1).describe(`Allow credentials (cookies, authorization headers)`),maxAge:I().int().optional().describe(`Preflight cache duration in seconds`)})),$(()=>B({enabled:H().default(!1).describe(`Enable rate limiting`),windowMs:I().int().default(6e4).describe(`Time window in milliseconds`),maxRequests:I().int().default(100).describe(`Max requests per window`)})),$(()=>B({path:R().describe(`URL path to serve from`),directory:R().describe(`Physical directory to serve`),cacheControl:R().optional().describe(`Cache-Control header value`)}));var EZ=$(()=>ue(`provider`,[B({provider:Pe(`object`),object:R().describe(`Target object name`)}),B({provider:Pe(`api`),read:TZ.optional().describe(`Configuration for fetching data`),write:TZ.optional().describe(`Configuration for submitting data (for forms/editable tables)`)}),B({provider:Pe(`value`),items:U(z()).describe(`Static data array`)})])),DZ=$(()=>B({field:R().describe(`Field name to filter on`),operator:R().describe(`Filter operator (e.g. equals, not_equals, contains, this_quarter)`),value:V([R(),I(),H(),O(),U(V([R(),I()]))]).optional().describe(`Filter value`)}).describe(`View filter rule`)),OZ=$(()=>N([`none`,`count`,`count_empty`,`count_filled`,`count_unique`,`percent_empty`,`percent_filled`,`sum`,`avg`,`min`,`max`]).describe(`Aggregation function for column footer summary`)),kZ=$(()=>B({field:R().describe(`Field name (snake_case)`),label:UX.optional().describe(`Display label override`),width:I().positive().optional().describe(`Column width in pixels`),align:N([`left`,`center`,`right`]).optional().describe(`Text alignment`),hidden:H().optional().describe(`Hide column by default`),sortable:H().optional().describe(`Allow sorting by this column`),resizable:H().optional().describe(`Allow resizing this column`),wrap:H().optional().describe(`Allow text wrapping`),type:R().optional().describe(`Renderer type override (e.g., "currency", "date")`),pinned:N([`left`,`right`]).optional().describe(`Pin/freeze column to left or right side`),summary:OZ.optional().describe(`Footer aggregation function for this column`),link:H().optional().describe(`Functions as the primary navigation link (triggers View navigation)`),action:R().optional().describe(`Registered Action ID to execute when clicked`)})),AZ=$(()=>B({type:N([`none`,`single`,`multiple`]).default(`none`).describe(`Selection mode`)})),jZ=$(()=>B({pageSize:I().int().positive().default(25).describe(`Number of records per page`),pageSizeOptions:U(I().int().positive()).optional().describe(`Available page size options`)})),MZ=$(()=>N([`compact`,`short`,`medium`,`tall`,`extra_tall`]).describe(`Row height / density setting for list view`)),NZ=$(()=>B({field:R().describe(`Field name to group by`),order:N([`asc`,`desc`]).default(`asc`).describe(`Group sort order`),collapsed:H().default(!1).describe(`Collapse groups by default`)})),PZ=$(()=>B({fields:U(NZ).min(1).describe(`Fields to group by (supports up to 3 levels)`)}).describe(`Record grouping configuration`)),FZ=$(()=>B({coverField:R().optional().describe(`Attachment/image field to display as card cover`),coverFit:N([`cover`,`contain`]).default(`cover`).describe(`Image fit mode for card cover`),cardSize:N([`small`,`medium`,`large`]).default(`medium`).describe(`Card size in gallery view`),titleField:R().optional().describe(`Field to display as card title`),visibleFields:U(R()).optional().describe(`Fields to display on card body`)}).describe(`Gallery/card view configuration`)),IZ=$(()=>B({startDateField:R().describe(`Field for timeline item start date`),endDateField:R().optional().describe(`Field for timeline item end date`),titleField:R().describe(`Field to display as timeline item title`),groupByField:R().optional().describe(`Field to group timeline rows`),colorField:R().optional().describe(`Field to determine item color`),scale:N([`hour`,`day`,`week`,`month`,`quarter`,`year`]).default(`week`).describe(`Default timeline scale`)}).describe(`Timeline view configuration`)),LZ=$(()=>B({type:N([`personal`,`collaborative`]).default(`collaborative`).describe(`View ownership type`),lockedBy:R().optional().describe(`User who locked the view configuration`)}).describe(`View sharing and access configuration`)),RZ=$(()=>B({field:R().describe(`Field to derive color from (typically a select/status field)`),colors:L(R(),R()).optional().describe(`Map of field value to color (hex/token)`)}).describe(`Row color configuration based on field values`)),zZ=$(()=>N([`grid`,`kanban`,`gallery`,`calendar`,`timeline`,`gantt`,`map`]).describe(`Visualization type that users can switch to`)),BZ=$(()=>B({sort:H().default(!0).describe(`Allow users to sort records`),search:H().default(!0).describe(`Allow users to search records`),filter:H().default(!0).describe(`Allow users to filter records`),rowHeight:H().default(!0).describe(`Allow users to toggle row height/density`),addRecordForm:H().default(!1).describe(`Add records through a form instead of inline`),buttons:U(R()).optional().describe(`Custom action button IDs to show in the toolbar`)}).describe(`User action toggles for the view toolbar`)),VZ=$(()=>B({showDescription:H().default(!0).describe(`Show the view description text`),allowedVisualizations:U(zZ).optional().describe(`Whitelist of visualization types users can switch between (e.g. ["grid", "gallery", "kanban"])`)}).describe(`Appearance and visualization configuration`)),HZ=$(()=>B({name:aZ.describe(`Tab identifier (snake_case)`),label:UX.optional().describe(`Display label`),icon:R().optional().describe(`Tab icon name`),view:R().optional().describe(`Referenced list view name from listViews`),filter:U(DZ).optional().describe(`Tab-specific filter criteria`),order:I().int().min(0).optional().describe(`Tab display order`),pinned:H().default(!1).describe(`Pin tab (cannot be removed by users)`),isDefault:H().default(!1).describe(`Set as the default active tab`),visible:H().default(!0).describe(`Tab visibility`)}).describe(`Tab configuration for multi-tab view interface`)),UZ=$(()=>B({enabled:H().default(!0).describe(`Show the add record entry point`),position:N([`top`,`bottom`,`both`]).default(`bottom`).describe(`Position of the add record button`),mode:N([`inline`,`form`,`modal`]).default(`inline`).describe(`How to add a new record`),formView:R().optional().describe(`Named form view to use when mode is "form" or "modal"`)}).describe(`Add record entry point configuration`)),WZ=$(()=>B({groupByField:R().describe(`Field to group columns by (usually status/select)`),summarizeField:R().optional().describe(`Field to sum at top of column (e.g. amount)`),columns:U(R()).describe(`Fields to show on cards`)})),GZ=$(()=>B({chartType:N([`bar`,`line`,`pie`,`area`,`scatter`]).default(`bar`).describe(`Chart visualisation type`),xAxisField:R().describe(`Field used as the X axis / category dimension`),yAxisFields:U(R()).min(1).describe(`Field(s) used as the Y axis / measures`),aggregation:N([`sum`,`avg`,`count`,`min`,`max`]).optional().describe(`Aggregation function applied to Y axis fields`),groupByField:R().optional().describe(`Optional field used to split / stack the chart`)}).describe(`List chart view configuration`)),KZ=$(()=>B({startDateField:R(),endDateField:R().optional(),titleField:R(),colorField:R().optional()})),qZ=$(()=>B({startDateField:R(),endDateField:R(),titleField:R(),progressField:R().optional(),dependenciesField:R().optional()})),JZ=$(()=>N([`page`,`drawer`,`modal`,`split`,`popover`,`new_window`,`none`])),YZ=$(()=>B({mode:JZ.default(`page`),view:R().optional().describe(`Name of the form view to use for details (e.g. "summary_view", "edit_form")`),preventNavigation:H().default(!1).describe(`Disable standard navigation entirely`),openNewTab:H().default(!1).describe(`Force open in new tab (applies to page mode)`),width:V([R(),I()]).optional().describe(`Width of the drawer/modal (e.g. "600px", "50%")`)})),XZ=$(()=>B({name:aZ.optional().describe(`Internal view name (lowercase snake_case)`),label:UX.optional(),type:N([`grid`,`kanban`,`gallery`,`calendar`,`timeline`,`gantt`,`map`,`chart`]).default(`grid`),data:EZ.optional().describe(`Data source configuration (defaults to "object" provider)`),columns:V([U(R()),U(kZ)]).describe(`Fields to display as columns`),filter:U(DZ).optional().describe(`Filter criteria (JSON Rules)`),sort:V([R(),U(B({field:R(),order:N([`asc`,`desc`])}))]).optional(),searchableFields:U(R()).optional().describe(`Fields enabled for search`),filterableFields:U(R()).optional().describe(`Fields enabled for end-user filtering in the top bar`),resizable:H().optional().describe(`Enable column resizing`),striped:H().optional().describe(`Striped row styling`),bordered:H().optional().describe(`Show borders`),compactToolbar:H().optional().describe(`Collapse Group/Color/Density/Hide-fields into a single View settings popover`),selection:AZ.optional().describe(`Row selection configuration`),navigation:YZ.optional().describe(`Configuration for item click navigation (page, drawer, modal, etc.)`),pagination:jZ.optional().describe(`Pagination configuration`),kanban:WZ.optional(),calendar:KZ.optional(),gantt:qZ.optional(),gallery:FZ.optional(),timeline:IZ.optional(),chart:GZ.optional(),description:UX.optional().describe(`View description for documentation/tooltips`),sharing:LZ.optional().describe(`View sharing and access configuration`),rowHeight:MZ.optional().describe(`Row height / density setting`),grouping:PZ.optional().describe(`Group records by one or more fields`),rowColor:RZ.optional().describe(`Color rows based on field value`),hiddenFields:U(R()).optional().describe(`Fields to hide in this specific view`),fieldOrder:U(R()).optional().describe(`Explicit field display order for this view`),rowActions:U(R()).optional().describe(`Actions available for individual row items`),bulkActions:U(R()).optional().describe(`Actions available when multiple rows are selected`),bulkActionDefs:U(L(R(),_e())).optional().describe(`Rich bulk action definitions (schema-driven, executed via BulkActionDialog)`),virtualScroll:H().optional().describe(`Enable virtual scrolling for large datasets`),conditionalFormatting:U(B({condition:lZ.describe(`Predicate (CEL) to evaluate.`),style:L(R(),R()).describe(`CSS styles to apply when condition is true`)})).optional().describe(`Conditional formatting rules for list rows`),inlineEdit:H().optional().describe(`Allow inline editing of records directly in the list view`),exportOptions:U(N([`csv`,`xlsx`,`pdf`,`json`])).optional().describe(`Available export format options`),userActions:BZ.optional().describe(`User action toggles for the view toolbar`),appearance:VZ.optional().describe(`Appearance and visualization configuration`),tabs:U(HZ).optional().describe(`Tab definitions for multi-tab view interface`),addRecord:UZ.optional().describe(`Add record entry point configuration`),showRecordCount:H().optional().describe(`Show record count at the bottom of the list`),allowPrinting:H().optional().describe(`Allow users to print the view`),emptyState:B({title:UX.optional(),message:UX.optional(),icon:R().optional()}).optional().describe(`Empty state configuration when no records found`),aria:WX.optional().describe(`ARIA accessibility attributes for the list view`),responsive:nZ.optional().describe(`Responsive layout configuration`),performance:rZ.optional().describe(`Performance optimization settings`)})),ZZ=$(()=>B({field:R().describe(`Field name (snake_case)`),label:UX.optional().describe(`Display label override`),placeholder:UX.optional().describe(`Placeholder text`),helpText:UX.optional().describe(`Help/hint text`),readonly:H().optional().describe(`Read-only override`),required:H().optional().describe(`Required override`),hidden:H().optional().describe(`Hidden override`),colSpan:I().int().min(1).max(4).optional().describe(`Column span in grid layout (1-4)`),widget:R().optional().describe(`Custom widget/component name`),dependsOn:R().optional().describe(`Parent field name for cascading`),visibleOn:lZ.optional().describe(`Visibility predicate (CEL).`)})),QZ=$(()=>B({label:UX.optional(),collapsible:H().default(!1),collapsed:H().default(!1),columns:V([N([`1`,`2`,`3`,`4`]),Pe(1),Pe(2),Pe(3),Pe(4)]).default(2).transform(e=>typeof e==`string`?parseInt(e):e),fields:U(V([R(),ZZ]))})),$Z=$(()=>B({type:N([`simple`,`tabbed`,`wizard`,`split`,`drawer`,`modal`]).default(`simple`),data:EZ.optional().describe(`Data source configuration (defaults to "object" provider)`),sections:U(QZ).optional(),groups:U(QZ).optional(),defaultSort:U(B({field:R().describe(`Field name to sort by`),order:N([`asc`,`desc`]).default(`desc`).describe(`Sort direction`)})).optional().describe(`Default sort order for related list views within this form`),sharing:uZ.optional().describe(`Public sharing configuration for this form`),submitBehavior:V([B({kind:Pe(`thank-you`),title:R().optional(),message:R().optional()}),B({kind:Pe(`redirect`),url:R(),delayMs:I().int().min(0).optional()}),B({kind:Pe(`continue`)}),B({kind:Pe(`next-record`)})]).optional().describe(`Post-submit behavior`),aria:WX.optional().describe(`ARIA accessibility attributes for the form view`)}));$(()=>B({list:XZ.optional(),form:$Z.optional(),listViews:L(R(),XZ).optional().describe(`Additional named list views`),formViews:L(R(),$Z).optional().describe(`Additional named form views`)}));var eQ=$(()=>B({$field:R().describe(`Field Reference/Column Name`)}));$(()=>B({$eq:_e().optional(),$ne:_e().optional()})),$(()=>B({$gt:V([I(),Se(),eQ]).optional(),$gte:V([I(),Se(),eQ]).optional(),$lt:V([I(),Se(),eQ]).optional(),$lte:V([I(),Se(),eQ]).optional()})),$(()=>B({$in:U(_e()).optional(),$nin:U(_e()).optional()})),$(()=>B({$between:ke([V([I(),Se(),eQ]),V([I(),Se(),eQ])]).optional()})),$(()=>B({$contains:R().optional(),$notContains:R().optional(),$startsWith:R().optional(),$endsWith:R().optional()})),$(()=>B({$null:H().optional(),$exists:H().optional()}));var tQ=$(()=>B({$eq:_e().optional(),$ne:_e().optional(),$gt:V([I(),Se(),eQ]).optional(),$gte:V([I(),Se(),eQ]).optional(),$lt:V([I(),Se(),eQ]).optional(),$lte:V([I(),Se(),eQ]).optional(),$in:U(_e()).optional(),$nin:U(_e()).optional(),$between:ke([V([I(),Se(),eQ]),V([I(),Se(),eQ])]).optional(),$contains:R().optional(),$notContains:R().optional(),$startsWith:R().optional(),$endsWith:R().optional(),$null:H().optional(),$exists:H().optional()})),nQ=De(()=>L(R(),z()).and(B({$and:U(nQ).optional(),$or:U(nQ).optional(),$not:nQ.optional()})));$(()=>B({where:nQ.optional()}));var rQ=De(()=>B({$and:U(V([L(R(),tQ),rQ])).optional(),$or:U(V([L(R(),tQ),rQ])).optional(),$not:V([L(R(),tQ),rQ]).optional()})),iQ=$(()=>N([`default`,`blue`,`teal`,`orange`,`purple`,`success`,`warning`,`danger`]).describe(`Widget color variant`)),aQ=$(()=>N([`script`,`url`,`modal`,`flow`,`api`]).describe(`Widget action type`)),oQ=$(()=>B({label:UX.describe(`Action button label`),actionUrl:R().describe(`URL or target for the action`),actionType:aQ.optional().describe(`Type of action`),icon:R().optional().describe(`Icon identifier for the action button`)}).describe(`Dashboard header action`)),sQ=$(()=>B({showTitle:H().default(!0).describe(`Show dashboard title in header`),showDescription:H().default(!0).describe(`Show dashboard description in header`),actions:U(oQ).optional().describe(`Header action buttons`)}).describe(`Dashboard header configuration`)),cQ=$(()=>B({valueField:R().describe(`Field to aggregate`),aggregate:N([`count`,`sum`,`avg`,`min`,`max`]).default(`count`).describe(`Aggregate function`),label:UX.optional().describe(`Measure display label`),format:R().optional().describe(`Number format string`)}).describe(`Widget measure definition`)),lQ=$(()=>B({id:aZ.describe(`Unique widget identifier (snake_case)`),title:UX.optional().describe(`Widget title`),description:UX.optional().describe(`Widget description text below the header`),type:qX.default(`metric`).describe(`Visualization type`),chartConfig:QX.optional().describe(`Chart visualization configuration`),colorVariant:iQ.optional().describe(`Widget color variant for theming`),requiresObject:R().optional().describe(`Hide the widget unless the named object is registered`),requiresService:R().optional().describe(`Hide the widget unless the named kernel service is registered`),actionUrl:R().optional().describe(`URL or target for the widget action button`),actionType:aQ.optional().describe(`Type of action for the widget action button`),actionIcon:R().optional().describe(`Icon identifier for the widget action button`),object:R().optional().describe(`Data source object name`),filter:nQ.optional().describe(`Data filter criteria`),categoryField:R().optional().describe(`Field for grouping (X-Axis)`),valueField:R().optional().describe(`Field for values (Y-Axis)`),aggregate:N([`count`,`sum`,`avg`,`min`,`max`]).optional().default(`count`).describe(`Aggregate function`),measures:U(cQ).optional().describe(`Multiple measures for pivot/matrix analysis`),layout:B({x:I(),y:I(),w:I(),h:I()}).describe(`Grid layout position`),options:z().optional().describe(`Widget specific configuration`),responsive:nZ.optional().describe(`Responsive layout configuration`),aria:WX.optional().describe(`ARIA accessibility attributes`)})),uQ=$(()=>B({object:R().describe(`Source object name`),valueField:R().describe(`Field to use as option value`),labelField:R().describe(`Field to use as option label`),filter:nQ.optional().describe(`Filter to apply to source object`)}).describe(`Dynamic filter options from object`)),dQ=$(()=>B({field:R().describe(`Field name to filter on`),label:UX.optional().describe(`Display label for the filter`),type:N([`text`,`select`,`date`,`number`,`lookup`]).optional().describe(`Filter input type`),options:U(B({value:V([R(),I(),H()]).describe(`Option value`),label:UX})).optional().describe(`Static filter options`),optionsFrom:uQ.optional().describe(`Dynamic filter options from object`),defaultValue:V([R(),I(),H()]).optional().describe(`Default filter value`),scope:N([`dashboard`,`widget`]).default(`dashboard`).describe(`Filter application scope`),targetWidgets:U(R()).optional().describe(`Widget IDs to apply this filter to`)}));$(()=>B({name:aZ.describe(`Dashboard unique name`),label:UX.describe(`Dashboard label`),description:UX.optional().describe(`Dashboard description`),header:sQ.optional().describe(`Dashboard header configuration`),widgets:U(lQ).describe(`Widgets to display`),columns:I().int().min(1).max(24).optional().describe(`Number of grid columns (default 12)`),gap:I().int().min(0).optional().describe(`Grid gap in Tailwind spacing units`),refreshInterval:I().optional().describe(`Auto-refresh interval in seconds`),dateRange:B({field:R().optional().describe(`Default date field name for time-based filtering`),defaultRange:N([`today`,`yesterday`,`this_week`,`last_week`,`this_month`,`last_month`,`this_quarter`,`last_quarter`,`this_year`,`last_year`,`last_7_days`,`last_30_days`,`last_90_days`,`custom`]).default(`this_month`).describe(`Default date range preset`),allowCustomRange:H().default(!0).describe(`Allow users to pick a custom date range`)}).optional().describe(`Global dashboard date range filter configuration`),globalFilters:U(dQ).optional().describe(`Global filters that apply to all widgets in the dashboard`),aria:WX.optional().describe(`ARIA accessibility attributes`),performance:rZ.optional().describe(`Performance optimization settings`)}));var fQ=N([`tabular`,`summary`,`matrix`,`joined`]),pQ=$(()=>B({field:R().describe(`Field name`),label:UX.optional().describe(`Override label`),aggregate:N([`sum`,`avg`,`max`,`min`,`count`,`unique`]).optional().describe(`Aggregation function`),responsive:nZ.optional().describe(`Responsive visibility for this column`)})),mQ=$(()=>B({field:R().describe(`Field to group by`),sortOrder:N([`asc`,`desc`]).default(`asc`),dateGranularity:N([`day`,`week`,`month`,`quarter`,`year`]).optional().describe(`For date fields`)})),hQ=$(()=>QX.extend({xAxis:R().describe(`Grouping field for X-Axis`),yAxis:R().describe(`Summary field for Y-Axis`),groupBy:R().optional().describe(`Additional grouping field`)})),gQ=$(()=>B({name:aZ,label:UX.optional(),description:UX.optional(),type:N([`tabular`,`summary`,`matrix`]).default(`tabular`),objectName:R().optional(),columns:U(pQ),groupingsDown:U(mQ).optional(),groupingsAcross:U(mQ).optional(),filter:nQ.optional(),chart:hQ.optional()}));$(()=>B({name:aZ.describe(`Report unique name`),label:UX.describe(`Report label`),description:UX.optional(),objectName:R().describe(`Primary object`),type:fQ.default(`tabular`).describe(`Report format type`),columns:U(pQ).describe(`Columns to display`),groupingsDown:U(mQ).optional().describe(`Row groupings`),groupingsAcross:U(mQ).optional().describe(`Column groupings (Matrix only)`),filter:nQ.optional().describe(`Filter criteria`),chart:hQ.optional().describe(`Embedded chart configuration`),aria:WX.optional().describe(`ARIA accessibility attributes`),performance:rZ.optional().describe(`Performance optimization settings`),blocks:U(gQ).optional().describe(`Sub-reports for type=joined`)}));var _Q=$(()=>N([`aes-256-gcm`,`aes-256-cbc`,`chacha20-poly1305`]).describe(`Supported encryption algorithm`)),vQ=$(()=>N([`local`,`aws-kms`,`azure-key-vault`,`gcp-kms`,`hashicorp-vault`]).describe(`Key management service provider`)),yQ=$(()=>B({enabled:H().default(!1).describe(`Enable automatic key rotation`),frequencyDays:I().min(1).default(90).describe(`Rotation frequency in days`),retainOldVersions:I().default(3).describe(`Number of old key versions to retain`),autoRotate:H().default(!0).describe(`Automatically rotate without manual approval`)}).describe(`Policy for automatic encryption key rotation`)),bQ=$(()=>B({enabled:H().default(!1).describe(`Enable field-level encryption`),algorithm:_Q.default(`aes-256-gcm`).describe(`Encryption algorithm`),keyManagement:B({provider:vQ.describe(`Key management service provider`),keyId:R().optional().describe(`Key identifier in the provider`),rotationPolicy:yQ.optional().describe(`Key rotation policy`)}).describe(`Key management configuration`),scope:N([`field`,`record`,`table`,`database`]).describe(`Encryption scope level`),deterministicEncryption:H().default(!1).describe(`Allows equality queries on encrypted data`),searchableEncryption:H().default(!1).describe(`Allows search on encrypted data`)}).describe(`Field-level encryption configuration`));$(()=>B({fieldName:R().describe(`Name of the field to encrypt`),encryptionConfig:bQ.describe(`Encryption settings for this field`),indexable:H().default(!1).describe(`Allow indexing on encrypted field`)}).describe(`Per-field encryption assignment`));var xQ=$(()=>N([`redact`,`partial`,`hash`,`tokenize`,`randomize`,`nullify`,`substitute`]).describe(`Data masking strategy for PII protection`)),SQ=$(()=>B({field:R().describe(`Field name to apply masking to`),strategy:xQ.describe(`Masking strategy to use`),pattern:R().optional().describe(`Regex pattern for partial masking`),preserveFormat:H().default(!0).describe(`Keep the original data format after masking`),preserveLength:H().default(!0).describe(`Keep the original data length after masking`),roles:U(R()).optional().describe(`Roles that see masked data`),exemptRoles:U(R()).optional().describe(`Roles that see unmasked data`)}).describe(`Masking rule for a single field`));$(()=>B({enabled:H().default(!1).describe(`Enable data masking`),rules:U(SQ).describe(`List of field-level masking rules`),auditUnmasking:H().default(!0).describe(`Log when masked data is accessed unmasked`)}).describe(`Top-level data masking configuration for PII protection`));var CQ=N(`text.textarea.email.url.phone.password.markdown.html.richtext.number.currency.percent.date.datetime.time.boolean.toggle.select.multiselect.radio.checkboxes.lookup.master_detail.tree.image.file.avatar.video.audio.formula.summary.autonumber.location.address.code.json.color.rating.slider.signature.qrcode.progress.tags.vector`.split(`.`)),wQ=$(()=>B({label:R().describe(`Display label (human-readable, any case allowed)`),value:iZ.describe(`Stored value (lowercase machine identifier)`),color:R().optional().describe(`Color code for badges/charts`),default:H().optional().describe(`Is default option`)}));$(()=>B({latitude:I().min(-90).max(90).describe(`Latitude coordinate`),longitude:I().min(-180).max(180).describe(`Longitude coordinate`),altitude:I().optional().describe(`Altitude in meters`),accuracy:I().optional().describe(`Accuracy in meters`)}));var TQ=$(()=>B({precision:I().int().min(0).max(10).default(2).describe(`Decimal precision (default: 2)`),currencyMode:N([`dynamic`,`fixed`]).default(`dynamic`).describe(`Currency mode: dynamic (user selectable) or fixed (single currency)`),defaultCurrency:R().length(3).default(`CNY`).describe(`Default or fixed currency code (ISO 4217, e.g., USD, CNY, EUR)`)}));$(()=>B({value:I().describe(`Monetary amount`),currency:R().length(3).describe(`Currency code (ISO 4217)`)})),$(()=>B({street:R().optional().describe(`Street address`),city:R().optional().describe(`City name`),state:R().optional().describe(`State/Province`),postalCode:R().optional().describe(`Postal/ZIP code`),country:R().optional().describe(`Country name or code`),countryCode:R().optional().describe(`ISO country code (e.g., US, GB)`),formatted:R().optional().describe(`Formatted address string`)}));var EQ=$(()=>B({dimensions:I().int().min(1).max(1e4).describe(`Vector dimensionality (e.g., 1536 for OpenAI embeddings)`),distanceMetric:N([`cosine`,`euclidean`,`dotProduct`,`manhattan`]).default(`cosine`).describe(`Distance/similarity metric for vector search`),normalized:H().default(!1).describe(`Whether vectors are normalized (unit length)`),indexed:H().default(!0).describe(`Whether to create a vector index for fast similarity search`),indexType:N([`hnsw`,`ivfflat`,`flat`]).optional().describe(`Vector index algorithm (HNSW for high accuracy, IVFFlat for large datasets)`)})),DQ=$(()=>B({minSize:I().min(0).optional().describe(`Minimum file size in bytes`),maxSize:I().min(1).optional().describe(`Maximum file size in bytes (e.g., 10485760 = 10MB)`),allowedTypes:U(R()).optional().describe(`Allowed file extensions (e.g., [".pdf", ".docx", ".jpg"])`),blockedTypes:U(R()).optional().describe(`Blocked file extensions (e.g., [".exe", ".bat", ".sh"])`),allowedMimeTypes:U(R()).optional().describe(`Allowed MIME types (e.g., ["image/jpeg", "application/pdf"])`),blockedMimeTypes:U(R()).optional().describe(`Blocked MIME types`),virusScan:H().default(!1).describe(`Enable virus scanning for uploaded files`),virusScanProvider:N([`clamav`,`virustotal`,`metadefender`,`custom`]).optional().describe(`Virus scanning service provider`),virusScanOnUpload:H().default(!0).describe(`Scan files immediately on upload`),quarantineOnThreat:H().default(!0).describe(`Quarantine files if threat detected`),storageProvider:R().optional().describe(`Object storage provider name (references ObjectStorageConfig)`),storageBucket:R().optional().describe(`Target bucket name`),storagePrefix:R().optional().describe(`Storage path prefix (e.g., "uploads/documents/")`),imageValidation:B({minWidth:I().min(1).optional().describe(`Minimum image width in pixels`),maxWidth:I().min(1).optional().describe(`Maximum image width in pixels`),minHeight:I().min(1).optional().describe(`Minimum image height in pixels`),maxHeight:I().min(1).optional().describe(`Maximum image height in pixels`),aspectRatio:R().optional().describe(`Required aspect ratio (e.g., "16:9", "1:1")`),generateThumbnails:H().default(!1).describe(`Auto-generate thumbnails`),thumbnailSizes:U(B({name:R().describe(`Thumbnail variant name (e.g., "small", "medium", "large")`),width:I().min(1).describe(`Thumbnail width in pixels`),height:I().min(1).describe(`Thumbnail height in pixels`),crop:H().default(!1).describe(`Crop to exact dimensions`)})).optional().describe(`Thumbnail size configurations`),preserveMetadata:H().default(!1).describe(`Preserve EXIF metadata`),autoRotate:H().default(!0).describe(`Auto-rotate based on EXIF orientation`)}).optional().describe(`Image-specific validation rules`),allowMultiple:H().default(!1).describe(`Allow multiple file uploads (overrides field.multiple)`),allowReplace:H().default(!0).describe(`Allow replacing existing files`),allowDelete:H().default(!0).describe(`Allow deleting uploaded files`),requireUpload:H().default(!1).describe(`Require at least one file when field is required`),extractMetadata:H().default(!0).describe(`Extract file metadata (name, size, type, etc.)`),extractText:H().default(!1).describe(`Extract text content from documents (OCR/parsing)`),versioningEnabled:H().default(!1).describe(`Keep previous versions of replaced files`),maxVersions:I().min(1).optional().describe(`Maximum number of versions to retain`),publicRead:H().default(!1).describe(`Allow public read access to uploaded files`),presignedUrlExpiry:I().min(60).max(604800).default(3600).describe(`Presigned URL expiration in seconds (default: 1 hour)`)}).refine(e=>!(e.minSize!==void 0&&e.maxSize!==void 0&&e.minSize>e.maxSize),{message:`minSize must be less than or equal to maxSize`}).refine(e=>!(e.virusScanProvider!==void 0&&e.virusScan!==!0),{message:`virusScanProvider requires virusScan to be enabled`})),OQ=$(()=>B({uniqueness:H().default(!1).describe(`Enforce unique values across all records`),completeness:I().min(0).max(1).default(0).describe(`Minimum ratio of non-null values (0-1, default: 0 = no requirement)`),accuracy:B({source:R().describe(`Reference data source for validation (e.g., "api.verify.com", "master_data")`),threshold:I().min(0).max(1).describe(`Minimum accuracy threshold (0-1, e.g., 0.95 = 95% match required)`)}).optional().describe(`Accuracy validation configuration`)})),kQ=$(()=>B({enabled:H().describe(`Enable caching for computed field results`),ttl:I().min(0).describe(`Cache TTL in seconds (0 = no expiration)`),invalidateOn:U(R()).describe(`Field paths that invalidate cache (e.g., ["inventory.quantity", "pricing.base_price"])`)})),AQ=$(()=>B({name:R().regex(/^[a-z_][a-z0-9_]*$/).describe(`Machine name (snake_case)`).optional(),label:R().optional().describe(`Human readable label`),type:CQ.describe(`Field Data Type`),description:R().optional().describe(`Tooltip/Help text`),format:R().optional().describe(`Format string (e.g. email, phone)`),columnName:R().optional().describe(`Physical column name in the target datasource. Defaults to the field key when not set.`),required:H().default(!1).describe(`Is required`),searchable:H().default(!1).describe(`Is searchable`),multiple:H().default(!1).describe(`Allow multiple values (Stores as Array/JSON). Applicable for select, lookup, file, image.`),unique:H().default(!1).describe(`Is unique constraint`),defaultValue:z().optional().describe(`Default value`),maxLength:I().optional().describe(`Max character length`),minLength:I().optional().describe(`Min character length`),precision:I().optional().describe(`Total digits`),scale:I().optional().describe(`Decimal places`),min:I().optional().describe(`Minimum value`),max:I().optional().describe(`Maximum value`),options:U(wQ).optional().describe(`Static options for select/multiselect`),reference:R().optional().describe(`Target object name (snake_case) for lookup/master_detail fields. Required for relationship types. Used by $expand to resolve foreign key IDs into full objects.`),referenceFilters:U(R()).optional().describe(`Filters applied to lookup dialogs (e.g. "active = true")`),writeRequiresMasterRead:H().optional().describe(`If true, user needs read access to master record to edit this field`),deleteBehavior:N([`set_null`,`cascade`,`restrict`]).optional().default(`set_null`).describe(`What happens if referenced record is deleted`),expression:lZ.optional().describe("Formula expression (CEL). e.g. F`record.amount * 0.1`"),summaryOperations:B({object:R().describe(`Source child object name for roll-up`),field:R().describe(`Field on child object to aggregate`),function:N([`count`,`sum`,`min`,`max`,`avg`]).describe(`Aggregation function to apply`)}).optional().describe(`Roll-up summary definition`),language:R().optional().describe(`Programming language for syntax highlighting (e.g., javascript, python, sql)`),theme:R().optional().describe(`Code editor theme (e.g., dark, light, monokai)`),lineNumbers:H().optional().describe(`Show line numbers in code editor`),maxRating:I().optional().describe(`Maximum rating value (default: 5)`),allowHalf:H().optional().describe(`Allow half-star ratings`),displayMap:H().optional().describe(`Display map widget for location field`),allowGeocoding:H().optional().describe(`Allow address-to-coordinate conversion`),addressFormat:N([`us`,`uk`,`international`]).optional().describe(`Address format template`),colorFormat:N([`hex`,`rgb`,`rgba`,`hsl`]).optional().describe(`Color value format`),allowAlpha:H().optional().describe(`Allow transparency/alpha channel`),presetColors:U(R()).optional().describe(`Preset color options`),step:I().optional().describe(`Step increment for slider (default: 1)`),showValue:H().optional().describe(`Display current value on slider`),marks:L(R(),R()).optional().describe(`Custom marks/labels at specific values (e.g., {0: "Low", 50: "Medium", 100: "High"})`),barcodeFormat:N([`qr`,`ean13`,`ean8`,`code128`,`code39`,`upca`,`upce`]).optional().describe(`Barcode format type`),qrErrorCorrection:N([`L`,`M`,`Q`,`H`]).optional().describe(`QR code error correction level (L=7%, M=15%, Q=25%, H=30%). Only applicable when barcodeFormat is "qr"`),displayValue:H().optional().describe(`Display human-readable value below barcode/QR code`),allowScanning:H().optional().describe(`Enable camera scanning for barcode/QR code input`),currencyConfig:TQ.optional().describe(`Configuration for currency field type`),vectorConfig:EQ.optional().describe(`Configuration for vector field type (AI/ML embeddings)`),fileAttachmentConfig:DQ.optional().describe(`Configuration for file and attachment field types`),encryptionConfig:bQ.optional().describe(`Field-level encryption configuration for sensitive data (GDPR/HIPAA/PCI-DSS)`),maskingRule:SQ.optional().describe(`Data masking rules for PII protection`),auditTrail:H().default(!1).describe(`Enable detailed audit trail for this field (tracks all changes with user and timestamp)`),dependencies:U(R()).optional().describe(`Array of field names that this field depends on (for formulas, visibility rules, etc.)`),cached:kQ.optional().describe(`Caching configuration for computed/formula fields`),dataQuality:OQ.optional().describe(`Data quality validation and monitoring rules`),group:R().optional().describe(`Field group name for organizing fields in forms and layouts (e.g., "contact_info", "billing", "system")`),conditionalRequired:lZ.optional().describe("Predicate (CEL) — field is required when TRUE. e.g. P`record.status == 'closed_won'`"),hidden:H().default(!1).describe(`Hidden from default UI`),readonly:H().default(!1).describe(`Read-only in UI`),system:H().optional().describe(`Auto-injected system/audit field (e.g. created_at, updated_by, organization_id). Tools that surface system fields separately from author-declared business fields should branch on this flag.`),sortable:H().optional().default(!0).describe(`Whether field is sortable in list views`),inlineHelpText:R().optional().describe(`Help text displayed below the field in forms`),trackFeedHistory:H().optional().describe(`Track field changes in Chatter/activity feed (Salesforce pattern)`),caseSensitive:H().optional().describe(`Whether text comparisons are case-sensitive`),autonumberFormat:R().optional().describe(`Auto-number display format pattern (e.g., "CASE-{0000}")`),index:H().default(!1).describe(`Create standard database index`),externalId:H().default(!1).describe(`Is external ID for upsert operations`)})),jQ=N([`api.read`,`api.write`,`crypto.uuid`,`crypto.hash`,`log`]),MQ=ue(`language`,[B({language:Pe(`expression`),source:R().min(1).describe(`Formula expression source`)}).describe(`L1 expression body — pure formula, no IO`),B({language:Pe(`js`),source:R().min(1).describe(`Function body source`),capabilities:U(jQ).default([]).describe(`Granted capability tokens`),timeoutMs:I().int().positive().max(3e4).optional().describe(`Per-invocation timeout (ms)`),memoryMb:I().int().positive().max(256).optional().describe(`Per-invocation memory cap (MB)`)}).describe(`L2 sandboxed JS body — runs inside an isolated VM with declared capabilities`)]).describe(`Hook/Action body — expression (L1) or sandboxed JS (L2)`),NQ=$(()=>B({name:R().optional(),field:aZ.optional(),objectOverride:aZ.optional(),label:UX.optional(),type:CQ.optional(),required:H().optional().default(!1),options:U(B({label:UX,value:R()})).optional(),placeholder:R().optional(),helpText:R().optional(),defaultValue:z().optional(),defaultFromRow:H().optional()}).refine(e=>!!e.name||!!e.field,{message:`ActionParam requires either "name" or "field"`})),PQ=N([`script`,`url`,`modal`,`flow`,`api`,`form`]),FQ=new Set(PQ.options.filter(e=>e!==`script`));$(()=>B({name:aZ.describe(`Machine name (lowercase snake_case)`),label:UX.describe(`Display label`),objectName:R().regex(/^[a-z_][a-z0-9_]*$/).optional().describe(`Target object this action belongs to. When set, the action is auto-merged into the object's actions array by defineStack().`),icon:R().optional().describe(`Icon name`),locations:U(N([`list_toolbar`,`list_item`,`record_header`,`record_more`,`record_related`,`global_nav`])).optional().describe(`Locations where this action is visible`),component:N([`action:button`,`action:icon`,`action:menu`,`action:group`]).optional().describe(`Visual component override`),type:PQ.default(`script`).describe(`Action functionality type`),target:R().optional().describe(`URL, Script Name, Flow ID, or API Endpoint`),body:MQ.optional().describe("Action body — expression (L1) or sandboxed JS (L2). Only used when type is `script`."),execute:R().optional().describe(`@deprecated — Use target instead. Auto-migrated to target during parsing.`),params:U(NQ).optional().describe(`Input parameters required from user`),variant:N([`primary`,`secondary`,`danger`,`ghost`,`link`]).optional().describe(`Button visual variant for styling (primary = highlighted, danger = destructive, ghost = transparent)`),confirmText:UX.optional().describe(`Confirmation message before execution`),successMessage:UX.optional().describe(`Success message to show after execution`),refreshAfter:H().default(!1).describe(`Refresh view after execution`),visible:lZ.optional().describe(`Visibility predicate (CEL).`),disabled:V([H(),lZ]).optional().describe(`Boolean or predicate (CEL) — action is disabled when TRUE.`),shortcut:R().optional().describe(`Keyboard shortcut to trigger this action (e.g., "Ctrl+S")`),bulkEnabled:H().optional().describe(`Whether this action can be applied to multiple selected records`),recordIdParam:R().optional().describe(`Body key to inject the row id into when running from a list_item context.`),recordIdField:R().optional().describe(`Row field whose value seeds recordIdParam. Defaults to "id".`),bodyShape:V([Pe(`flat`),B({wrap:R()})]).optional().describe(`Body wrapping: flat (default) or { wrap: key } to nest user-collected params under a key.`),method:N([`POST`,`PATCH`,`PUT`,`DELETE`]).optional().describe(`HTTP method for type:"api" actions. Defaults to POST.`),bodyExtra:L(R(),z()).optional().describe(`Constant body fields merged into the API request (applied last; overrides user params).`),mode:N([`create`,`edit`,`delete`,`custom`]).optional().describe(`Semantic mode of the action.`),timeout:I().optional().describe(`Maximum execution time in milliseconds for the action`),aria:WX.optional().describe(`ARIA accessibility attributes`)}).transform(e=>e.execute&&!e.target?{...e,target:e.execute}:e).refine(e=>!(FQ.has(e.type)&&!e.target),{message:`Action 'target' is required when type is 'url', 'flow', 'modal', 'api', or 'form'.`,path:[`target`]})),N([`count`,`sum`,`avg`,`min`,`max`,`count_distinct`,`percentile`,`median`,`stddev`,`variance`]).describe(`Standard aggregation functions`);var IQ=N([`asc`,`desc`]).describe(`Sort order direction`),LQ=$(()=>B({field:R().describe(`Field name to sort by`),order:IQ.describe(`Sort direction`)}).describe(`Sort field and direction pair`));N([`insert`,`update`,`delete`,`upsert`]).describe(`Data mutation event types`),N([`read_uncommitted`,`read_committed`,`repeatable_read`,`serializable`,`snapshot`]).describe(`Transaction isolation levels (snake_case standard)`),N([`lru`,`lfu`,`ttl`,`fifo`]).describe(`Cache eviction strategy`);var RQ=$(()=>B({name:R().describe(`Region name (e.g. "sidebar", "main", "header")`),width:N([`small`,`medium`,`large`,`full`]).optional(),components:U(De(()=>VQ)).describe(`Components in this region`)})),zQ=N(`page:header.page:footer.page:sidebar.page:tabs.page:accordion.page:card.page:section.record:details.record:highlights.record:related_list.record:activity.record:chatter.record:path.app:launcher.nav:menu.nav:breadcrumb.global:search.global:notifications.user:profile.ai:chat_window.ai:suggestion.element:text.element:number.element:image.element:divider.element:button.element:filter.element:form.element:record_picker`.split(`.`)),BQ=$(()=>B({object:R().describe(`Object to query`),view:R().optional().describe(`Named view to apply`),filter:nQ.optional().describe(`Additional filter criteria`),sort:U(LQ).optional().describe(`Sort order`),limit:I().int().positive().optional().describe(`Max records to display`)})),VQ=$(()=>B({type:V([zQ,R()]).describe(`Component Type (Standard enum or custom string)`),id:R().optional().describe(`Unique instance ID`),label:UX.optional(),properties:L(R(),z()).describe(`Component props passed to the widget. See component.zod.ts for schemas.`),events:L(R(),R()).optional().describe(`Event handlers map`),style:L(R(),R()).optional().describe(`Inline styles or utility classes`),className:R().optional().describe(`CSS class names`),visibility:lZ.optional().describe(`Visibility predicate (CEL).`),dataSource:BQ.optional().describe(`Per-element data binding for multi-object pages`),responsive:nZ.optional().describe(`Responsive layout configuration`),aria:WX.optional().describe(`ARIA accessibility attributes`)})),HQ=$(()=>B({name:R().describe(`Variable name`),type:N([`string`,`number`,`boolean`,`object`,`array`,`record_id`]).default(`string`),defaultValue:z().optional(),source:R().optional().describe(`Component ID that writes to this variable`)})),UQ=$(()=>B({componentId:R().describe(`Reference to a PageComponent.id in the page`),x:I().int().min(0).describe(`Grid column position (0-based)`),y:I().int().min(0).describe(`Grid row position (0-based)`),width:I().int().min(1).describe(`Width in grid columns`),height:I().int().min(1).describe(`Height in grid rows`)})),WQ=$(()=>B({columns:I().int().min(1).default(12).describe(`Number of grid columns`),rowHeight:I().int().min(1).default(40).describe(`Height of each grid row in pixels`),gap:I().int().min(0).default(8).describe(`Gap between grid items in pixels`),items:U(UQ).describe(`Positioned components on the canvas`)})),GQ=$(()=>N([`record`,`home`,`app`,`utility`,`dashboard`,`grid`,`list`,`gallery`,`kanban`,`calendar`,`timeline`,`form`,`record_detail`,`record_review`,`overview`,`blank`]).describe(`Page type — platform or interface page types`)),KQ=$(()=>B({object:R().describe(`Target object for review`),filter:nQ.optional().describe(`Filter criteria for review queue`),sort:U(LQ).optional().describe(`Sort order for review queue`),displayFields:U(R()).optional().describe(`Fields to display on the review page`),actions:U(B({label:R().describe(`Action button label`),type:N([`approve`,`reject`,`skip`,`custom`]).describe(`Action type`),field:R().optional().describe(`Field to update on action`),value:V([R(),I(),H()]).optional().describe(`Value to set on action`),nextRecord:H().optional().default(!0).describe(`Auto-advance to next record after action`)})).describe(`Review actions`),navigation:N([`sequential`,`random`,`filtered`]).optional().default(`sequential`).describe(`Record navigation mode`),showProgress:H().optional().default(!0).describe(`Show review progress indicator`)})),qQ=$(()=>B({source:R().optional().describe(`Source object name for the page`),levels:I().int().min(1).optional().describe(`Number of hierarchy levels to display`),filterBy:U(DZ).optional().describe(`Page-level filter criteria`),appearance:VZ.optional().describe(`Appearance and visualization configuration`),userFilters:B({elements:U(N([`grid`,`gallery`,`kanban`])).optional().describe(`Visualization element types available in user filter bar`),tabs:U(HZ).optional().describe(`User-configurable tabs`)}).optional().describe(`User filter configuration`),userActions:BZ.optional().describe(`User action toggles`),addRecord:UZ.optional().describe(`Add record entry point configuration`),showRecordCount:H().optional().describe(`Show record count at page bottom`),allowPrinting:H().optional().describe(`Allow users to print the page`)}).describe(`Interface-level page configuration (Airtable parity)`));$(()=>B({name:aZ.describe(`Page unique name (lowercase snake_case)`),label:UX,description:UX.optional(),icon:R().optional().describe(`Page icon name`),type:GQ.default(`record`).describe(`Page type`),variables:U(HQ).optional().describe(`Local page state variables`),object:R().optional().describe(`Bound object (for Record pages)`),recordReview:KQ.optional().describe(`Record review configuration (required when type is "record_review")`),blankLayout:WQ.optional().describe(`Free-form grid layout for blank pages (used when type is "blank")`),template:R().default(`default`).describe(`Layout template name (e.g. "header-sidebar-main")`),regions:U(RQ).describe(`Defined regions with components`),isDefault:H().default(!1),assignedProfiles:U(R()).optional(),interfaceConfig:qQ.optional().describe(`Interface-level page configuration (for Airtable-style interface pages)`),aria:WX.optional().describe(`ARIA accessibility attributes`),kind:N([`full`,`slotted`]).default(`full`).describe(`Page override mode: full (default) or slotted (partial overrides)`),slots:B({header:V([VQ,U(VQ)]).optional(),actions:V([VQ,U(VQ)]).optional(),highlights:V([VQ,U(VQ)]).optional(),details:V([VQ,U(VQ)]).optional(),tabs:V([VQ,U(VQ)]).optional(),discussion:V([VQ,U(VQ)]).optional()}).optional().describe(`Slot override map for slotted pages`)}).superRefine((e,t)=>{e.type===`record_review`&&!e.recordReview&&t.addIssue({code:P.custom,path:[`recordReview`],message:`recordReview is required when type is "record_review"`}),e.type===`blank`&&!e.blankLayout&&t.addIssue({code:P.custom,path:[`blankLayout`],message:`blankLayout is required when type is "blank"`}),e.kind===`slotted`&&!e.slots&&t.addIssue({code:P.custom,path:[`slots`],message:`slots is required when kind is "slotted"`})}));var JQ=$(()=>B({onMount:R().optional().describe(`Initialization code when widget mounts`),onUpdate:R().optional().describe(`Code to run when props change`),onUnmount:R().optional().describe(`Cleanup code when widget unmounts`),onValidate:R().optional().describe(`Custom validation logic`),onFocus:R().optional().describe(`Code to run on focus`),onBlur:R().optional().describe(`Code to run on blur`),onError:R().optional().describe(`Error handling code`)})),YQ=$(()=>B({name:R().describe(`Event name`),label:UX.optional().describe(`Human-readable event label`),description:UX.optional().describe(`Event description and usage`),bubbles:H().default(!1).describe(`Whether event bubbles`),cancelable:H().default(!1).describe(`Whether event is cancelable`),payload:L(R(),z()).optional().describe(`Event payload schema`)})),XQ=$(()=>B({name:R().describe(`Property name (camelCase)`),label:UX.optional().describe(`Human-readable label`),type:N([`string`,`number`,`boolean`,`array`,`object`,`function`,`any`]).describe(`TypeScript type`),required:H().default(!1).describe(`Whether property is required`),default:z().optional().describe(`Default value`),description:UX.optional().describe(`Property description`),validation:L(R(),z()).optional().describe(`Validation rules`),category:R().optional().describe(`Property category`)})),ZQ=$(()=>ue(`type`,[B({type:Pe(`npm`),packageName:R().describe(`NPM package name`),version:R().default(`latest`),exportName:R().optional().describe(`Named export (default: default)`)}),B({type:Pe(`remote`),url:R().url().describe(`Remote entry URL (.js)`),moduleName:R().describe(`Exposed module name`),scope:R().describe(`Remote scope name`)}),B({type:Pe(`inline`),code:R().describe(`JavaScript code body`)})]));$(()=>B({name:aZ.describe(`Widget identifier (snake_case)`),label:UX.describe(`Widget display name`),description:UX.optional().describe(`Widget description`),version:R().optional().describe(`Widget version (semver)`),author:R().optional().describe(`Widget author`),icon:R().optional().describe(`Widget icon`),fieldTypes:U(R()).optional().describe(`Supported field types`),category:N([`input`,`display`,`picker`,`editor`,`custom`]).default(`custom`).describe(`Widget category`),lifecycle:JQ.optional().describe(`Lifecycle hooks`),events:U(YQ).optional().describe(`Custom events`),properties:U(XQ).optional().describe(`Configuration properties`),implementation:ZQ.optional().describe(`Widget implementation source`),dependencies:U(B({name:R(),version:R().optional(),url:R().url().optional()})).optional().describe(`Widget dependencies`),screenshots:U(R().url()).optional().describe(`Screenshot URLs`),documentation:R().url().optional().describe(`Documentation URL`),license:R().optional().describe(`License (SPDX identifier)`),tags:U(R()).optional().describe(`Tags for categorization`),aria:WX.optional().describe(`ARIA accessibility attributes`),performance:rZ.optional().describe(`Performance optimization settings`)})),$(()=>B({value:z().describe(`Current field value`),onChange:F().input(ke([z()])).output(r()).describe(`Callback to update field value`),readonly:H().default(!1).describe(`Read-only mode flag`),required:H().default(!1).describe(`Required field flag`),error:R().optional().describe(`Validation error message`),field:AQ.describe(`Field schema definition`),record:L(R(),z()).optional().describe(`Complete record data`),options:L(R(),z()).optional().describe(`Custom widget options`)}));var QQ=N([`comment`,`field_change`,`task`,`event`,`email`,`call`,`note`,`file`,`record_create`,`record_delete`,`approval`,`sharing`,`system`]),$Q=$(()=>B({type:N([`user`,`team`,`record`]).describe(`Mention target type`),id:R().describe(`Target ID`),name:R().describe(`Display name for rendering`),offset:I().int().min(0).describe(`Character offset in body text`),length:I().int().min(1).describe(`Length of mention token in body text`)})),e$=$(()=>B({field:R().describe(`Field machine name`),fieldLabel:R().optional().describe(`Field display label`),oldValue:z().optional().describe(`Previous value`),newValue:z().optional().describe(`New value`),oldDisplayValue:R().optional().describe(`Human-readable old value`),newDisplayValue:R().optional().describe(`Human-readable new value`)})),t$=$(()=>B({emoji:R().describe(`Emoji character or shortcode (e.g., "👍", ":thumbsup:")`),userIds:U(R()).describe(`Users who reacted`),count:I().int().min(1).describe(`Total reaction count`)})),n$=$(()=>B({type:N([`user`,`system`,`service`,`automation`]).describe(`Actor type`),id:R().describe(`Actor ID`),name:R().optional().describe(`Actor display name`),avatarUrl:R().url().optional().describe(`Actor avatar URL`),source:R().optional().describe(`Source application (e.g., "Omni", "API", "Studio")`)})),r$=N([`public`,`internal`,`private`]);$(()=>B({id:R().describe(`Feed item ID`),type:QQ.describe(`Activity type`),object:R().describe(`Object name (e.g., "account")`),recordId:R().describe(`Record ID this feed item belongs to`),actor:n$.describe(`Who performed this action`),body:R().optional().describe(`Rich text body (Markdown supported)`),mentions:U($Q).optional().describe(`Mentioned users/teams/records`),changes:U(e$).optional().describe(`Field-level changes`),reactions:U(t$).optional().describe(`Emoji reactions on this item`),parentId:R().optional().describe(`Parent feed item ID for threaded replies`),replyCount:I().int().min(0).default(0).describe(`Number of replies`),pinned:H().default(!1).describe(`Whether the feed item is pinned to the top of the timeline`),pinnedAt:R().datetime().optional().describe(`Timestamp when the item was pinned`),pinnedBy:R().optional().describe(`User ID who pinned the item`),starred:H().default(!1).describe(`Whether the feed item is starred/bookmarked by the current user`),starredAt:R().datetime().optional().describe(`Timestamp when the item was starred`),visibility:r$.default(`public`).describe(`Visibility: public (all users), internal (team only), private (author + mentioned)`),createdAt:R().datetime().describe(`Creation timestamp`),updatedAt:R().datetime().optional().describe(`Last update timestamp`),editedAt:R().datetime().optional().describe(`When comment was last edited`),isEdited:H().default(!1).describe(`Whether comment has been edited`)}));var i$=N([`all`,`comments_only`,`changes_only`,`tasks_only`]);B({}),B({title:UX.describe(`Page title`),subtitle:UX.optional().describe(`Page subtitle`),icon:R().optional().describe(`Icon name`),breadcrumb:H().default(!0).describe(`Show breadcrumb`),actions:U(R()).optional().describe(`Action IDs to show in header`),aria:WX.optional().describe(`ARIA accessibility attributes`)}),B({type:N([`line`,`card`,`pill`]).default(`line`),position:N([`top`,`left`]).default(`top`),items:U(B({label:UX,icon:R().optional(),children:U(z()).describe(`Child components`)})),aria:WX.optional().describe(`ARIA accessibility attributes`)}),B({title:UX.optional(),bordered:H().default(!0),actions:U(R()).optional(),body:U(z()).optional().describe(`Card content components (slot)`),footer:U(z()).optional().describe(`Card footer components (slot)`),aria:WX.optional().describe(`ARIA accessibility attributes`)}),B({columns:N([`1`,`2`,`3`,`4`]).default(`2`).describe(`Number of columns for field layout (1-4)`),layout:N([`auto`,`custom`]).default(`auto`).describe(`Layout mode: auto uses object compactLayout, custom uses explicit sections`),sections:U(R()).optional().describe(`Section IDs to show (required when layout is "custom")`),fields:U(R()).optional().describe(`Explicit field list to display (optional, overrides compactLayout)`),aria:WX.optional().describe(`ARIA accessibility attributes`)}),B({objectName:R().describe(`Related object name (e.g., "task", "opportunity")`),relationshipField:R().describe(`Field on related object that points to this record (e.g., "account_id")`),columns:U(R()).describe(`Fields to display in the related list`),sort:V([R(),U(B({field:R(),order:N([`asc`,`desc`])}))]).optional().describe(`Sort order for related records`),limit:I().int().positive().default(5).describe(`Number of records to display initially`),filter:U(DZ).optional().describe(`Additional filter criteria for related records`),title:UX.optional().describe(`Custom title for the related list`),showViewAll:H().default(!0).describe(`Show "View All" link to see all related records`),actions:U(R()).optional().describe(`Action IDs available for related records`),aria:WX.optional().describe(`ARIA accessibility attributes`)}),B({fields:U(V([R(),B({name:R().describe(`Field name on the record`),label:R().optional().describe(`Display label (overrides schema label)`),icon:R().optional().describe(`Icon name (lucide icon key)`),type:R().optional().describe(`Override cell renderer type (rare)`)})]).describe(`Highlight field: bare name, or {name,label?,icon?,type?}`)).min(1).max(7).describe(`Key fields to highlight (1-7 fields max, typically displayed as prominent cards). Each item may be a bare field name or {name, label?, icon?, type?} for inline overrides.`),layout:N([`horizontal`,`vertical`]).default(`horizontal`).describe(`Layout orientation for highlight fields`),aria:WX.optional().describe(`ARIA accessibility attributes`)});var a$=B({types:U(QQ).optional().describe(`Feed item types to show (default: all)`),filterMode:i$.default(`all`).describe(`Default activity filter`),showFilterToggle:H().default(!0).describe(`Show filter dropdown in panel header`),limit:I().int().positive().default(20).describe(`Number of items to load per page`),showCompleted:H().default(!1).describe(`Include completed activities`),unifiedTimeline:H().default(!0).describe(`Mix field changes and comments in one timeline (Airtable style)`),showCommentInput:H().default(!0).describe(`Show "Leave a comment" input at the bottom`),enableMentions:H().default(!0).describe(`Enable @mentions in comments`),enableReactions:H().default(!1).describe(`Enable emoji reactions on feed items`),enableThreading:H().default(!1).describe(`Enable threaded replies on comments`),showSubscriptionToggle:H().default(!0).describe(`Show bell icon for record-level notification subscription`),aria:WX.optional().describe(`ARIA accessibility attributes`)});B({position:N([`sidebar`,`inline`,`drawer`]).default(`sidebar`).describe(`Where to render the chatter panel`),width:V([R(),I()]).optional().describe(`Panel width (e.g., "350px", "30%")`),collapsible:H().default(!0).describe(`Whether the panel can be collapsed`),defaultCollapsed:H().default(!1).describe(`Whether the panel starts collapsed`),feed:a$.optional().describe(`Embedded activity feed configuration`),aria:WX.optional().describe(`ARIA accessibility attributes`)}),B({statusField:R().describe(`Field name representing the current status/stage`),stages:U(B({value:R(),label:UX})).optional().describe(`Explicit stage definitions (if not using field metadata)`),aria:WX.optional().describe(`ARIA accessibility attributes`)}),B({items:U(B({label:UX,icon:R().optional(),collapsed:H().default(!1),children:U(z()).describe(`Child components`)})),allowMultiple:H().default(!1).describe(`Allow multiple panels to be expanded simultaneously`),aria:WX.optional().describe(`ARIA accessibility attributes`)}),B({mode:N([`float`,`sidebar`,`inline`]).default(`float`).describe(`Display mode for the chat window`),agentId:R().optional().describe(`Specific AI agent to use`),context:L(R(),z()).optional().describe(`Contextual data to pass to the AI`),aria:WX.optional().describe(`ARIA accessibility attributes`)}),$(()=>B({content:R().describe(`Text or Markdown content`),variant:N([`heading`,`subheading`,`body`,`caption`]).optional().default(`body`).describe(`Text style variant`),align:N([`left`,`center`,`right`]).optional().default(`left`).describe(`Text alignment`),aria:WX.optional().describe(`ARIA accessibility attributes`)})),$(()=>B({object:R().describe(`Source object`),field:R().optional().describe(`Field to aggregate`),aggregate:N([`count`,`sum`,`avg`,`min`,`max`]).describe(`Aggregation function`),filter:nQ.optional().describe(`Filter criteria`),format:N([`number`,`currency`,`percent`]).optional().describe(`Number display format`),prefix:R().optional().describe(`Prefix text (e.g. "$")`),suffix:R().optional().describe(`Suffix text (e.g. "%")`),aria:WX.optional().describe(`ARIA accessibility attributes`)})),$(()=>B({src:R().describe(`Image URL or attachment field`),alt:R().optional().describe(`Alt text for accessibility`),fit:N([`cover`,`contain`,`fill`]).optional().default(`cover`).describe(`Image object-fit mode`),height:I().optional().describe(`Fixed height in pixels`),aria:WX.optional().describe(`ARIA accessibility attributes`)})),$(()=>B({label:UX.describe(`Button display label`),variant:N([`primary`,`secondary`,`danger`,`ghost`,`link`]).optional().default(`primary`).describe(`Button visual variant`),size:N([`small`,`medium`,`large`]).optional().default(`medium`).describe(`Button size`),icon:R().optional().describe(`Icon name (Lucide icon)`),iconPosition:N([`left`,`right`]).optional().default(`left`).describe(`Icon position relative to label`),disabled:H().optional().default(!1).describe(`Disable the button`),aria:WX.optional().describe(`ARIA accessibility attributes`)})),$(()=>B({object:R().describe(`Object to filter`),fields:U(R()).describe(`Filterable field names`),targetVariable:R().optional().describe(`Page variable to store filter state`),layout:N([`inline`,`dropdown`,`sidebar`]).optional().default(`inline`).describe(`Filter display layout`),showSearch:H().optional().default(!0).describe(`Show search input`),aria:WX.optional().describe(`ARIA accessibility attributes`)})),$(()=>B({object:R().describe(`Object for the form`),fields:U(R()).optional().describe(`Fields to display (defaults to all editable fields)`),mode:N([`create`,`edit`]).optional().default(`create`).describe(`Form mode`),submitLabel:UX.optional().describe(`Submit button label`),onSubmit:lZ.optional().describe(`Action expression on form submit (CEL)`),aria:WX.optional().describe(`ARIA accessibility attributes`)})),$(()=>B({object:R().describe(`Object to pick records from`),displayField:R().describe(`Field to display as the record label`),searchFields:U(R()).optional().describe(`Fields to search against`),filter:nQ.optional().describe(`Filter criteria for available records`),multiple:H().optional().default(!1).describe(`Allow multiple record selection`),targetVariable:R().optional().describe(`Page variable to bind selected record ID(s)`),placeholder:UX.optional().describe(`Placeholder text`),aria:WX.optional().describe(`ARIA accessibility attributes`)})),B({context:R().optional()});var o$=$(()=>B({minWidth:I().default(44).describe(`Minimum touch target width in pixels (WCAG 2.5.5: 44px)`),minHeight:I().default(44).describe(`Minimum touch target height in pixels (WCAG 2.5.5: 44px)`),padding:I().optional().describe(`Additional padding around touch target in pixels`),hitSlop:B({top:I().optional().describe(`Extra hit area above the element`),right:I().optional().describe(`Extra hit area to the right of the element`),bottom:I().optional().describe(`Extra hit area below the element`),left:I().optional().describe(`Extra hit area to the left of the element`)}).optional().describe(`Invisible hit area extension beyond the visible bounds`)}).describe(`Touch target sizing configuration (WCAG accessible)`)),s$=$(()=>N([`swipe`,`pinch`,`long_press`,`double_tap`,`drag`,`rotate`,`pan`]).describe(`Touch gesture type`)),c$=$(()=>N([`up`,`down`,`left`,`right`])),l$=$(()=>B({direction:U(c$).describe(`Allowed swipe directions`),threshold:I().optional().describe(`Minimum distance in pixels to recognize swipe`),velocity:I().optional().describe(`Minimum velocity (px/ms) to trigger swipe`)}).describe(`Swipe gesture recognition settings`)),u$=$(()=>B({minScale:I().optional().describe(`Minimum scale factor (e.g., 0.5 for 50%)`),maxScale:I().optional().describe(`Maximum scale factor (e.g., 3.0 for 300%)`)}).describe(`Pinch/zoom gesture recognition settings`)),d$=$(()=>B({duration:I().default(500).describe(`Hold duration in milliseconds to trigger long press`),moveTolerance:I().optional().describe(`Max movement in pixels allowed during press`)}).describe(`Long press gesture recognition settings`)),f$=$(()=>B({type:s$.describe(`Gesture type to configure`),label:UX.optional().describe(`Descriptive label for the gesture action`),enabled:H().default(!0).describe(`Whether this gesture is active`),swipe:l$.optional().describe(`Swipe gesture settings (when type is swipe)`),pinch:u$.optional().describe(`Pinch gesture settings (when type is pinch)`),longPress:d$.optional().describe(`Long press settings (when type is long_press)`)}).describe(`Per-gesture configuration`));$(()=>B({gestures:U(f$).optional().describe(`Configured gesture recognizers`),touchTarget:o$.optional().describe(`Touch target sizing and hit area`),hapticFeedback:H().optional().describe(`Enable haptic feedback on touch interactions`)}).merge(WX.partial()).describe(`Touch and gesture interaction configuration`));var p$=$(()=>B({enabled:H().default(!1).describe(`Enable focus trapping within this container`),initialFocus:R().optional().describe(`CSS selector for the element to focus on activation`),returnFocus:H().default(!0).describe(`Return focus to trigger element on deactivation`),escapeDeactivates:H().default(!0).describe(`Allow Escape key to deactivate the focus trap`)}).describe(`Focus trap configuration for modal-like containers`)),m$=$(()=>B({key:R().describe(`Key combination (e.g., "Ctrl+S", "Alt+N", "Escape")`),action:R().describe(`Action identifier to invoke when shortcut is triggered`),description:UX.optional().describe(`Human-readable description of what the shortcut does`),scope:N([`global`,`view`,`form`,`modal`,`list`]).default(`global`).describe(`Scope in which this shortcut is active`)}).describe(`Keyboard shortcut binding`)),h$=$(()=>B({tabOrder:N([`auto`,`manual`]).default(`auto`).describe(`Tab order strategy: auto (DOM order) or manual (explicit tabIndex)`),skipLinks:H().default(!1).describe(`Provide skip-to-content navigation links`),focusVisible:H().default(!0).describe(`Show visible focus indicators for keyboard users`),focusTrap:p$.optional().describe(`Focus trap settings`),arrowNavigation:H().default(!1).describe(`Enable arrow key navigation between focusable items`)}).describe(`Focus and tab navigation management`));$(()=>B({shortcuts:U(m$).optional().describe(`Registered keyboard shortcuts`),focusManagement:h$.optional().describe(`Focus and tab order management`),rovingTabindex:H().default(!1).describe(`Enable roving tabindex pattern for composite widgets`)}).merge(WX.partial()).describe(`Keyboard navigation and shortcut configuration`));var g$=$(()=>B({primary:R().describe(`Primary brand color (hex, rgb, or hsl)`),secondary:R().optional().describe(`Secondary brand color`),accent:R().optional().describe(`Accent color for highlights`),success:R().optional().describe(`Success state color (default: green)`),warning:R().optional().describe(`Warning state color (default: yellow)`),error:R().optional().describe(`Error state color (default: red)`),info:R().optional().describe(`Info state color (default: blue)`),background:R().optional().describe(`Background color`),surface:R().optional().describe(`Surface/card background color`),text:R().optional().describe(`Primary text color`),textSecondary:R().optional().describe(`Secondary text color`),border:R().optional().describe(`Border color`),disabled:R().optional().describe(`Disabled state color`),primaryLight:R().optional().describe(`Lighter shade of primary`),primaryDark:R().optional().describe(`Darker shade of primary`),secondaryLight:R().optional().describe(`Lighter shade of secondary`),secondaryDark:R().optional().describe(`Darker shade of secondary`)})),_$=$(()=>B({fontFamily:B({base:R().optional().describe(`Base font family (default: system fonts)`),heading:R().optional().describe(`Heading font family`),mono:R().optional().describe(`Monospace font family for code`)}).optional(),fontSize:B({xs:R().optional().describe(`Extra small font size (e.g., 0.75rem)`),sm:R().optional().describe(`Small font size (e.g., 0.875rem)`),base:R().optional().describe(`Base font size (e.g., 1rem)`),lg:R().optional().describe(`Large font size (e.g., 1.125rem)`),xl:R().optional().describe(`Extra large font size (e.g., 1.25rem)`),"2xl":R().optional().describe(`2X large font size (e.g., 1.5rem)`),"3xl":R().optional().describe(`3X large font size (e.g., 1.875rem)`),"4xl":R().optional().describe(`4X large font size (e.g., 2.25rem)`)}).optional(),fontWeight:B({light:I().optional().describe(`Light weight (default: 300)`),normal:I().optional().describe(`Normal weight (default: 400)`),medium:I().optional().describe(`Medium weight (default: 500)`),semibold:I().optional().describe(`Semibold weight (default: 600)`),bold:I().optional().describe(`Bold weight (default: 700)`)}).optional(),lineHeight:B({tight:R().optional().describe(`Tight line height (e.g., 1.25)`),normal:R().optional().describe(`Normal line height (e.g., 1.5)`),relaxed:R().optional().describe(`Relaxed line height (e.g., 1.75)`),loose:R().optional().describe(`Loose line height (e.g., 2)`)}).optional(),letterSpacing:B({tighter:R().optional().describe(`Tighter letter spacing (e.g., -0.05em)`),tight:R().optional().describe(`Tight letter spacing (e.g., -0.025em)`),normal:R().optional().describe(`Normal letter spacing (e.g., 0)`),wide:R().optional().describe(`Wide letter spacing (e.g., 0.025em)`),wider:R().optional().describe(`Wider letter spacing (e.g., 0.05em)`)}).optional()})),v$=$(()=>B({0:R().optional().describe(`0 spacing (0)`),1:R().optional().describe(`Spacing unit 1 (e.g., 0.25rem)`),2:R().optional().describe(`Spacing unit 2 (e.g., 0.5rem)`),3:R().optional().describe(`Spacing unit 3 (e.g., 0.75rem)`),4:R().optional().describe(`Spacing unit 4 (e.g., 1rem)`),5:R().optional().describe(`Spacing unit 5 (e.g., 1.25rem)`),6:R().optional().describe(`Spacing unit 6 (e.g., 1.5rem)`),8:R().optional().describe(`Spacing unit 8 (e.g., 2rem)`),10:R().optional().describe(`Spacing unit 10 (e.g., 2.5rem)`),12:R().optional().describe(`Spacing unit 12 (e.g., 3rem)`),16:R().optional().describe(`Spacing unit 16 (e.g., 4rem)`),20:R().optional().describe(`Spacing unit 20 (e.g., 5rem)`),24:R().optional().describe(`Spacing unit 24 (e.g., 6rem)`)})),y$=$(()=>B({none:R().optional().describe(`No border radius (0)`),sm:R().optional().describe(`Small border radius (e.g., 0.125rem)`),base:R().optional().describe(`Base border radius (e.g., 0.25rem)`),md:R().optional().describe(`Medium border radius (e.g., 0.375rem)`),lg:R().optional().describe(`Large border radius (e.g., 0.5rem)`),xl:R().optional().describe(`Extra large border radius (e.g., 0.75rem)`),"2xl":R().optional().describe(`2X large border radius (e.g., 1rem)`),full:R().optional().describe(`Full border radius (50%)`)})),b$=$(()=>B({none:R().optional().describe(`No shadow`),sm:R().optional().describe(`Small shadow`),base:R().optional().describe(`Base shadow`),md:R().optional().describe(`Medium shadow`),lg:R().optional().describe(`Large shadow`),xl:R().optional().describe(`Extra large shadow`),"2xl":R().optional().describe(`2X large shadow`),inner:R().optional().describe(`Inner shadow (inset)`)})),x$=$(()=>B({xs:R().optional().describe(`Extra small breakpoint (e.g., 480px)`),sm:R().optional().describe(`Small breakpoint (e.g., 640px)`),md:R().optional().describe(`Medium breakpoint (e.g., 768px)`),lg:R().optional().describe(`Large breakpoint (e.g., 1024px)`),xl:R().optional().describe(`Extra large breakpoint (e.g., 1280px)`),"2xl":R().optional().describe(`2X large breakpoint (e.g., 1536px)`)})),S$=$(()=>B({duration:B({fast:R().optional().describe(`Fast animation (e.g., 150ms)`),base:R().optional().describe(`Base animation (e.g., 300ms)`),slow:R().optional().describe(`Slow animation (e.g., 500ms)`)}).optional(),timing:B({linear:R().optional().describe(`Linear timing function`),ease:R().optional().describe(`Ease timing function`),ease_in:R().optional().describe(`Ease-in timing function`),ease_out:R().optional().describe(`Ease-out timing function`),ease_in_out:R().optional().describe(`Ease-in-out timing function`)}).optional()})),C$=$(()=>B({base:I().optional().describe(`Base z-index (e.g., 0)`),dropdown:I().optional().describe(`Dropdown z-index (e.g., 1000)`),sticky:I().optional().describe(`Sticky z-index (e.g., 1020)`),fixed:I().optional().describe(`Fixed z-index (e.g., 1030)`),modalBackdrop:I().optional().describe(`Modal backdrop z-index (e.g., 1040)`),modal:I().optional().describe(`Modal z-index (e.g., 1050)`),popover:I().optional().describe(`Popover z-index (e.g., 1060)`),tooltip:I().optional().describe(`Tooltip z-index (e.g., 1070)`)})),w$=$(()=>N([`light`,`dark`,`auto`])),T$=$(()=>N([`compact`,`regular`,`spacious`])),E$=$(()=>N([`AA`,`AAA`]));$(()=>B({name:aZ.describe(`Unique theme identifier (snake_case)`),label:R().describe(`Human-readable theme name`),description:R().optional().describe(`Theme description`),mode:w$.default(`light`).describe(`Theme mode (light, dark, or auto)`),colors:g$.describe(`Color palette configuration`),typography:_$.optional().describe(`Typography settings`),spacing:v$.optional().describe(`Spacing scale`),borderRadius:y$.optional().describe(`Border radius scale`),shadows:b$.optional().describe(`Box shadow effects`),breakpoints:x$.optional().describe(`Responsive breakpoints`),animation:S$.optional().describe(`Animation settings`),zIndex:C$.optional().describe(`Z-index scale for layering`),customVars:L(R(),R()).optional().describe(`Custom CSS variables (key-value pairs)`),logo:B({light:R().optional().describe(`Logo URL for light mode`),dark:R().optional().describe(`Logo URL for dark mode`),favicon:R().optional().describe(`Favicon URL`)}).optional().describe(`Logo assets`),extends:R().optional().describe(`Base theme to extend from`),density:T$.optional().describe(`Display density: compact, regular, or spacious`),wcagContrast:E$.optional().describe(`WCAG color contrast level (AA or AAA)`),rtl:H().optional().describe(`Enable right-to-left layout direction`),touchTarget:o$.optional().describe(`Touch target sizing defaults`),keyboardNavigation:h$.optional().describe(`Keyboard focus management settings`)}));var D$=$(()=>N([`cache_first`,`network_first`,`stale_while_revalidate`,`network_only`,`cache_only`]).describe(`Data fetching strategy for offline/online transitions`)),O$=$(()=>N([`client_wins`,`server_wins`,`manual`,`last_write_wins`]).describe(`How to resolve conflicts when syncing offline changes`)),k$=$(()=>B({strategy:D$.default(`network_first`).describe(`Sync fetch strategy`),conflictResolution:O$.default(`last_write_wins`).describe(`Conflict resolution policy`),retryInterval:I().optional().describe(`Retry interval in milliseconds between sync attempts`),maxRetries:I().optional().describe(`Maximum number of sync retry attempts`),batchSize:I().optional().describe(`Number of mutations to sync per batch`)}).describe(`Offline-to-online synchronization configuration`)),A$=$(()=>N([`indexeddb`,`localstorage`,`sqlite`]).describe(`Client-side storage backend for offline cache`)),j$=$(()=>N([`lru`,`lfu`,`fifo`]).describe(`Cache eviction policy`)),M$=$(()=>B({maxSize:I().optional().describe(`Maximum cache size in bytes`),ttl:I().optional().describe(`Time-to-live for cached entries in milliseconds`),persistStorage:A$.default(`indexeddb`).describe(`Storage backend`),evictionPolicy:j$.default(`lru`).describe(`Cache eviction policy when full`)}).describe(`Client-side offline cache configuration`));$(()=>B({enabled:H().default(!1).describe(`Enable offline support`),strategy:D$.default(`network_first`).describe(`Default offline fetch strategy`),cache:M$.optional().describe(`Cache settings for offline data`),sync:k$.optional().describe(`Sync settings for offline mutations`),offlineIndicator:H().default(!0).describe(`Show a visual indicator when offline`),offlineMessage:UX.optional().describe(`Customizable offline status message shown to users`),queueMaxSize:I().optional().describe(`Maximum number of queued offline mutations`)}).describe(`Offline support configuration`));var N$=$(()=>N([`fade`,`slide_up`,`slide_down`,`slide_left`,`slide_right`,`scale`,`rotate`,`flip`,`none`]).describe(`Transition preset type`)),P$=$(()=>N([`linear`,`ease`,`ease_in`,`ease_out`,`ease_in_out`,`spring`]).describe(`Animation easing function`)),F$=$(()=>B({preset:N$.optional().describe(`Transition preset to apply`),duration:I().optional().describe(`Transition duration in milliseconds`),easing:P$.optional().describe(`Easing function for the transition`),delay:I().optional().describe(`Delay before transition starts in milliseconds`),customKeyframes:R().optional().describe(`CSS @keyframes name for custom animations`),themeToken:R().optional().describe(`Reference to a theme animation token (e.g. "animation.duration.fast")`)}).describe(`Animation transition configuration`)),I$=$(()=>N([`on_mount`,`on_unmount`,`on_hover`,`on_focus`,`on_click`,`on_scroll`,`on_visible`]).describe(`Event that triggers the animation`)),L$=$(()=>B({label:UX.optional().describe(`Descriptive label for this animation configuration`),enter:F$.optional().describe(`Enter/mount animation`),exit:F$.optional().describe(`Exit/unmount animation`),hover:F$.optional().describe(`Hover state animation`),trigger:I$.optional().describe(`When to trigger the animation`),reducedMotion:N([`respect`,`disable`,`alternative`]).default(`respect`).describe(`Accessibility: how to handle prefers-reduced-motion`)}).merge(WX.partial()).describe(`Component-level animation configuration`)),R$=$(()=>B({type:N$.default(`fade`).describe(`Page transition type`),duration:I().default(300).describe(`Transition duration in milliseconds`),easing:P$.default(`ease_in_out`).describe(`Easing function for the transition`),crossFade:H().default(!1).describe(`Whether to cross-fade between pages`)}).describe(`Page-level transition configuration`));$(()=>B({label:UX.optional().describe(`Descriptive label for the motion configuration`),defaultTransition:F$.optional().describe(`Default transition applied to all animations`),pageTransitions:R$.optional().describe(`Page navigation transition settings`),componentAnimations:L(R(),L$).optional().describe(`Component name to animation configuration mapping`),reducedMotion:H().default(!1).describe(`When true, respect prefers-reduced-motion and suppress animations globally`),enabled:H().default(!0).describe(`Enable or disable all animations globally`)}).describe(`Top-level motion and animation design configuration`));var z$=$(()=>N([`toast`,`snackbar`,`banner`,`alert`,`inline`]).describe(`Notification presentation style`)),B$=$(()=>N([`info`,`success`,`warning`,`error`]).describe(`Notification severity level`)),V$=$(()=>N([`top_left`,`top_center`,`top_right`,`bottom_left`,`bottom_center`,`bottom_right`]).describe(`Screen position for notification placement`)),H$=$(()=>B({label:UX.describe(`Action button label`),action:R().describe(`Action identifier to execute`),variant:N([`primary`,`secondary`,`link`]).default(`primary`).describe(`Button variant style`)}).describe(`Notification action button`));$(()=>B({type:z$.default(`toast`).describe(`Notification presentation style`),severity:B$.default(`info`).describe(`Notification severity level`),title:UX.optional().describe(`Notification title`),message:UX.describe(`Notification message body`),icon:R().optional().describe(`Icon name override`),duration:I().optional().describe(`Auto-dismiss duration in ms, omit for persistent`),dismissible:H().default(!0).describe(`Allow user to dismiss the notification`),actions:U(H$).optional().describe(`Action buttons`),position:V$.optional().describe(`Override default position`)}).merge(WX.partial()).describe(`Notification instance definition`)),$(()=>B({defaultPosition:V$.default(`top_right`).describe(`Default screen position for notifications`),defaultDuration:I().default(5e3).describe(`Default auto-dismiss duration in ms`),maxVisible:I().default(5).describe(`Maximum number of notifications visible at once`),stackDirection:N([`up`,`down`]).default(`down`).describe(`Stack direction for multiple notifications`),pauseOnHover:H().default(!0).describe(`Pause auto-dismiss timer on hover`)}).describe(`Global notification system configuration`));var U$=$(()=>N([`element`,`handle`,`grip_icon`]).describe(`Drag initiation method`)),W$=$(()=>N([`move`,`copy`,`link`,`none`]).describe(`Drop operation effect`)),G$=$(()=>B({axis:N([`x`,`y`,`both`]).default(`both`).describe(`Constrain drag axis`),bounds:N([`parent`,`viewport`,`none`]).default(`none`).describe(`Constrain within bounds`),grid:ke([I(),I()]).optional().describe(`Snap to grid [x, y] in pixels`)}).describe(`Drag movement constraints`)),K$=$(()=>B({label:UX.optional().describe(`Accessible label for the drop zone`),accept:U(R()).describe(`Accepted drag item types`),maxItems:I().optional().describe(`Maximum items allowed in drop zone`),highlightOnDragOver:H().default(!0).describe(`Highlight drop zone when dragging over`),dropEffect:W$.default(`move`).describe(`Visual effect on drop`)}).merge(WX.partial()).describe(`Drop zone configuration`)),q$=$(()=>B({type:R().describe(`Drag item type identifier for matching with drop zones`),label:UX.optional().describe(`Accessible label describing the draggable item`),handle:U$.default(`element`).describe(`How to initiate drag`),constraint:G$.optional().describe(`Drag movement constraints`),preview:N([`element`,`custom`,`none`]).default(`element`).describe(`Drag preview type`),disabled:H().default(!1).describe(`Disable dragging`)}).merge(WX.partial()).describe(`Draggable item configuration`));$(()=>B({enabled:H().default(!1).describe(`Enable drag and drop`),dragItem:q$.optional().describe(`Configuration for draggable item`),dropZone:K$.optional().describe(`Configuration for drop target`),sortable:H().default(!1).describe(`Enable sortable list behavior`),autoScroll:H().default(!0).describe(`Auto-scroll during drag near edges`),touchDelay:I().default(200).describe(`Delay in ms before drag starts on touch devices`)}).describe(`Drag and drop interaction configuration`));function J$(e){if(!e||typeof e!=`object`)return!1;let t=e;return typeof t.name==`string`&&typeof t.objectName==`string`&&Array.isArray(t.columns)}function Y$(e){if(!J$(e))return!1;let t=e;return t.type===`joined`&&Array.isArray(t.blocks)}export{yC as $,oi as $n,Lu as $t,cE as A,hc as An,ex as At,bC as B,Qs as Bn,qv as Bt,kx as C,K as Cn,FD as Ct,Gw as D,Fc as Dn,rx as Dt,nx as E,Nc as En,jx as Et,gb as F,Ws as Fn,Jy as Ft,qC as G,Ji as Gn,Yv as Gt,UT as H,Vs as Hn,Wv as Ht,hS as I,Hs as In,Yy as It,FC as J,Yi as Jn,Rv as Jt,ix as K,Si as Kn,Jv as Kt,fE as L,qs as Ln,Hv as Lt,q as M,Us as Mn,Qb as Mt,CS as N,Gs as Nn,Vw as Nt,Yw as O,_c as On,Kw as Ot,Tx as P,Js as Pn,dS as Pt,ZC as Q,ai as Qn,vf as Qt,XC as R,Bs as Rn,Bv as Rt,_A as S,Uc as Sn,Nx as St,GC as T,Pc as Tn,CC as Tt,WC as U,$i as Un,Vv as Ut,uS as V,Zs as Vn,Kv as Vt,tx as W,Xi as Wn,Lv as Wt,VS as X,si as Xn,Uv as Xt,vC as Y,ci as Yn,zv as Yt,_C as Z,ii as Zn,gf as Zt,vA as _,Ol as _n,OC as _t,sY as a,hu as an,Ax as at,xA as b,nl as bn,gS as bt,HW as c,$l as cn,RC as ct,nj as d,zl as dn,EC as dt,Fu as en,Sr as er,zw as et,RA as f,Al as fn,AC as ft,ej as g,El as gn,Mx as gt,QA as h,kl as hn,RE as ht,VX as i,gu as in,Wb as it,Jw as j,Ks as jn,Uw as jt,JC as k,gc as kn,rD as kt,qU as l,Xl as ln,Rw as lt,$A as m,jl as mn,wC as mt,J$ as n,vu as nn,kC as nt,GW as o,nu as on,MD as ot,tj as p,Ml as pn,Iw as pt,qw as q,Ni as qn,Xv as qt,HX as r,bu as rn,$T as rt,UW as s,ru as sn,NC as st,Y$ as t,Bu as tn,Nn as tr,Hw as tt,sj as u,Hl as un,Lw as ut,rj as v,Dl as vn,HE as vt,uE as w,Ic as wn,UE as wt,bA as x,Wc as xn,TC as xt,CA as y,ll as yn,J as yt,lE as z,Ys as zn,Gv as zt};
|