@kaushalparajuli/react-crud-ui 1.0.48 → 1.0.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -260,5 +260,5 @@ You can add a description to the \`${Pn}\` by passing a \`${Pp}\` component as a
|
|
|
260
260
|
|
|
261
261
|
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 \`${Pn}\`. 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.
|
|
262
262
|
|
|
263
|
-
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return g.useEffect(()=>{var i;document.getElementById((i=e.current)==null?void 0:i.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},JE=kp,e5=Mp,t5=Dp,zp=Ap,Hp=Rp,Vp=Bp,Wp=jp,$p=Op,Up=Ip;const n5=JE,i5=e5,Yp=t5,Fl=g.forwardRef(({className:e,...t},n)=>m.jsx(zp,{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}));Fl.displayName=zp.displayName;const Zp=g.forwardRef(({className:e,...t},n)=>m.jsxs(Yp,{children:[m.jsx(Fl,{}),m.jsx(Hp,{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 md:w-full",e),...t})]}));Zp.displayName=Hp.displayName;const qp=({className:e,...t})=>m.jsx("div",{className:q("flex flex-col space-y-2 text-center sm:text-left",e),...t});qp.displayName="AlertDialogHeader";const Gp=({className:e,...t})=>m.jsx("div",{className:q("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Gp.displayName="AlertDialogFooter";const Kp=g.forwardRef(({className:e,...t},n)=>m.jsx($p,{ref:n,className:q("text-lg font-semibold",e),...t}));Kp.displayName=$p.displayName;const Xp=g.forwardRef(({className:e,...t},n)=>m.jsx(Up,{ref:n,className:q("text-sm text-muted-foreground",e),...t}));Xp.displayName=Up.displayName;const Qp=g.forwardRef(({className:e,...t},n)=>m.jsx(Vp,{ref:n,className:q(Bn(),e),...t}));Qp.displayName=Vp.displayName;const Jp=g.forwardRef(({className:e,...t},n)=>m.jsx(Wp,{ref:n,className:q(Bn({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));Jp.displayName=Wp.displayName;const jl=g.forwardRef(({className:e,...t},n)=>m.jsx("div",{className:"relative w-full overflow-auto",children:m.jsx("table",{ref:n,className:q("w-full caption-bottom text-sm",e),...t})}));jl.displayName="Table";const zl=g.forwardRef(({className:e,...t},n)=>m.jsx("thead",{ref:n,className:q("[&_tr]:border-b",e),...t}));zl.displayName="TableHeader";const Hl=g.forwardRef(({className:e,...t},n)=>m.jsx("tbody",{ref:n,className:q("[&_tr:last-child]:border-0",e),...t}));Hl.displayName="TableBody";const em=g.forwardRef(({className:e,...t},n)=>m.jsx("tfoot",{ref:n,className:q("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));em.displayName="TableFooter";const An=g.forwardRef(({className:e,...t},n)=>m.jsx("tr",{ref:n,className:q("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));An.displayName="TableRow";const gi=g.forwardRef(({className:e,...t},n)=>m.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}));gi.displayName="TableHead";const hn=g.forwardRef(({className:e,...t},n)=>m.jsx("td",{ref:n,className:q("p-4 align-middle [&:has([role=checkbox])]:pr-0",e),...t}));hn.displayName="TableCell";const tm=g.forwardRef(({className:e,...t},n)=>m.jsx("caption",{ref:n,className:q("mt-4 text-sm text-muted-foreground",e),...t}));tm.displayName="TableCaption";const Vl=g.forwardRef(({options:e=[],value:t,onChange:n,onSearch:i,placeholder:s="Select...",searchPlaceholder:o="Search...",loading:l=!1,disabled:a=!1,multiple:r=!1,clearable:f=!0,className:d,renderOption:h,renderValue:b,getOptionLabel:w=y=>(y==null?void 0:y.label)||(y==null?void 0:y.name)||String(y),getOptionValue:C=y=>(y==null?void 0:y.value)||(y==null?void 0:y.id)||y,filterOption:S,noOptionsMessage:c="No options found",loadingMessage:u="Loading...",...p},v)=>{const[y,_]=g.useState(!1),[x,E]=g.useState(""),[T,N]=g.useState(0),k=g.useRef(null),A=g.useRef(null),M=g.useMemo(()=>x?S?e.filter(j=>S(j,x)):e.filter(j=>w(j).toLowerCase().includes(x.toLowerCase())):e,[e,x,S,w]),D=g.useMemo(()=>Lc(j=>{i==null||i(j)},300),[i]),R=j=>{const O=j.target.value;E(O),N(0),D(O)},z=j=>{if(r){const O=Array.isArray(t)?t:[],U=C(j);O.some(W=>C(W)===U)?n==null||n(O.filter(W=>C(W)!==U)):n==null||n([...O,j])}else n==null||n(j),_(!1),E("")},V=j=>{j.stopPropagation(),n==null||n(r?[]:null),E("")},H=j=>{if(!y){(j.key==="Enter"||j.key===" "||j.key==="ArrowDown")&&(j.preventDefault(),_(!0));return}switch(j.key){case"ArrowDown":j.preventDefault(),N(O=>Math.min(O+1,M.length-1));break;case"ArrowUp":j.preventDefault(),N(O=>Math.max(O-1,0));break;case"Enter":j.preventDefault(),M[T]&&z(M[T]);break;case"Escape":j.preventDefault(),_(!1),E("");break}};g.useEffect(()=>{const j=O=>{k.current&&!k.current.contains(O.target)&&(_(!1),E(""))};return document.addEventListener("mousedown",j),()=>document.removeEventListener("mousedown",j)},[]);const B=j=>r?(Array.isArray(t)?t:[]).some(I=>(typeof I=="object"&&I!==null?C(I):I)===C(j)):t?(typeof t=="object"&&t!==null?C(t):t)===C(j):!1,L=r?Array.isArray(t)&&t.length>0:!!t,P=()=>{if(!L)return m.jsx("span",{className:"text-muted-foreground",children:s});if(b)return b(t);if(r){const O=Array.isArray(t)?t:[];if(O.length===1){const U=O[0],I=e.find(W=>{const J=C(W),$=typeof U=="object"&&U!==null?C(U):U;return J===$});return I?w(I):String(U)}return`${O.length} selected`}const j=e.find(O=>{const U=C(O),I=typeof t=="object"&&t!==null?C(t):t;return U===I});return j?w(j):String(t)};return m.jsxs("div",{ref:k,className:q("relative w-full",d),...p,children:[m.jsxs("button",{ref:v,type:"button",role:"combobox","aria-expanded":y,"aria-haspopup":"listbox",disabled:a,onClick:()=>_(!y),onKeyDown:H,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 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",y&&"ring-2 ring-ring ring-offset-2"),children:[m.jsx("span",{className:"flex-1 text-left truncate",children:P()}),m.jsxs("div",{className:"flex items-center gap-1",children:[f&&L&&!a&&m.jsx(In,{className:"h-4 w-4 opacity-50 hover:opacity-100 cursor-pointer",onClick:V}),m.jsx(Ai,{className:q("h-4 w-4 opacity-50 transition-transform",y&&"rotate-180")})]})]}),y&&m.jsxs("div",{className:"absolute z-50 mt-1 w-full rounded-md border bg-popover text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95",children:[m.jsxs("div",{className:"flex items-center border-b px-3",children:[m.jsx(ho,{className:"h-4 w-4 shrink-0 opacity-50"}),m.jsx("input",{ref:A,type:"text",value:x,onChange:R,placeholder:o,className:"flex h-10 w-full bg-transparent py-3 pl-2 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",autoFocus:!0}),l&&m.jsx(gn,{className:"h-4 w-4 animate-spin"})]}),m.jsx("div",{className:"max-h-60 overflow-auto p-1",children:l&&M.length===0?m.jsx("div",{className:"py-6 text-center text-sm text-muted-foreground",children:u}):M.length===0?m.jsx("div",{className:"py-6 text-center text-sm text-muted-foreground",children:c}):M.map((j,O)=>m.jsxs("div",{role:"option","aria-selected":B(j),onClick:()=>z(j),onMouseEnter:()=>N(O),className:q("relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none",T===O&&"bg-accent text-accent-foreground",B(j)&&"bg-accent/50"),children:[r&&m.jsx("div",{className:q("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",B(j)&&"bg-primary text-primary-foreground"),children:B(j)&&m.jsx(yi,{className:"h-3 w-3"})}),h?h(j):m.jsx("span",{className:"flex-1",children:w(j)}),!r&&B(j)&&m.jsx(yi,{className:"ml-auto h-4 w-4"})]},C(j)))})]})]})});Vl.displayName="SearchSelect";const Kt=g.forwardRef(({className:e,label:t,description:n,error:i,required:s,children:o,...l},a)=>{const r=g.useId();return m.jsxs("div",{ref:a,className:q("space-y-2",e),...l,children:[t&&m.jsxs(Yt,{htmlFor:r,className:q(i&&"text-destructive"),children:[t,s&&m.jsx("span",{className:"text-destructive ml-1",children:"*"})]}),g.Children.map(o,f=>g.isValidElement(f)?g.cloneElement(f,{id:r,"aria-invalid":!!i}):f),n&&!i&&m.jsx("p",{className:"text-sm text-muted-foreground",children:n}),i&&m.jsx("p",{className:"text-sm text-destructive",children:i})]})});Kt.displayName="FormField";const Ns=g.forwardRef(({label:e,description:t,error:n,required:i,className:s,inputClassName:o,onChange:l,emitValue:a=!0,...r},f)=>{const d=h=>{a?l==null||l(h.target.value):l==null||l(h)};return m.jsx(Kt,{label:e,description:t,error:n,required:i,className:s,children:m.jsx(Hn,{ref:f,className:q(n&&"border-destructive",o),onChange:d,...r})})});Ns.displayName="QInput";const Wl=g.forwardRef(({label:e,description:t,error:n,required:i,className:s,textareaClassName:o,onChange:l,emitValue:a=!0,...r},f)=>{const d=h=>{a?l==null||l(h.target.value):l==null||l(h)};return m.jsx(Kt,{label:e,description:t,error:n,required:i,className:s,children:m.jsx(po,{ref:f,className:q(n&&"border-destructive",o),onChange:d,...r})})});Wl.displayName="QTextarea";const $l=g.forwardRef(({label:e,description:t,error:n,required:i,options:s=[],placeholder:o="Select...",className:l,value:a,onChange:r,getOptionLabel:f,getOptionValue:d,optionLabel:h,optionValue:b,...w},C)=>{const S=f||(typeof h=="function"?h:h?u=>u==null?void 0:u[h]:u=>(u==null?void 0:u.label)||(u==null?void 0:u.name)||String(u)),c=d||(typeof b=="function"?b:b?u=>u==null?void 0:u[b]:u=>(u==null?void 0:u.value)||(u==null?void 0:u.id)||u);return m.jsx(Kt,{label:e,description:t,error:n,required:i,className:l,children:m.jsxs(Ao,{value:a,onValueChange:r,...w,children:[m.jsx($s,{ref:C,className:q(n&&"border-destructive"),children:m.jsx(Ro,{placeholder:o})}),m.jsx(Us,{children:s.map(u=>m.jsx(Ys,{value:String(c(u)),children:S(u)},c(u)))})]})})});$l.displayName="QSelect";const Ul=g.forwardRef(({label:e,description:t,error:n,required:i,className:s,value:o,onChange:l,options:a=[],getOptionLabel:r,getOptionValue:f,optionLabel:d,optionValue:h,onSearch:b,...w},C)=>{const S=r||(typeof d=="function"?d:d?v=>v==null?void 0:v[d]:v=>(v==null?void 0:v.label)||(v==null?void 0:v.name)||String(v)),c=f||(typeof h=="function"?h:h?v=>v==null?void 0:v[h]:v=>(v==null?void 0:v.value)||(v==null?void 0:v.id)||v),u=v=>{if(v==null)l==null||l(null);else{const y=c(v);l==null||l(y)}},p=g.useCallback(v=>{if(!v)return null;if(typeof v=="object"&&v!==null)return S(v);const y=a.find(_=>c(_)===v);return y?S(y):String(v)},[a,S,c]);return m.jsx(Kt,{label:e,description:t,error:n,required:i,className:s,children:m.jsx(Vl,{ref:C,value:o,onChange:u,options:a,getOptionLabel:S,getOptionValue:c,renderValue:p,onSearch:b,...w})})});Ul.displayName="QSearchSelect";const Yl=g.forwardRef(({label:e,description:t,error:n,className:i,checked:s,onCheckedChange:o,onChange:l,...a},r)=>{const f=g.useId(),d=h=>{l==null||l(h),o==null||o(h)};return m.jsxs("div",{className:q("flex items-center justify-between space-x-2",i),children:[m.jsxs("div",{className:"space-y-0.5",children:[e&&m.jsx(Yt,{htmlFor:f,className:"text-base",children:e}),t&&m.jsx("p",{className:"text-sm text-muted-foreground",children:t}),n&&m.jsx("p",{className:"text-sm text-destructive",children:n})]}),m.jsx(xo,{ref:r,id:f,checked:s,onCheckedChange:d,...a})]})});Yl.displayName="QSwitch";const nm=g.forwardRef(({label:e,description:t,error:n,className:i,checked:s,onCheckedChange:o,...l},a)=>{const r=g.useId();return m.jsxs("div",{className:q("flex items-start space-x-2",i),children:[m.jsx(Vn,{ref:a,id:r,checked:s,onCheckedChange:o,className:"mt-1",...l}),m.jsxs("div",{className:"space-y-1 leading-none",children:[e&&m.jsx(Yt,{htmlFor:r,children:e}),t&&m.jsx("p",{className:"text-sm text-muted-foreground",children:t}),n&&m.jsx("p",{className:"text-sm text-destructive",children:n})]})]})});nm.displayName="QCheckbox";const im=g.forwardRef(({onSubmit:e,className:t,children:n,...i},s)=>{const o=l=>{l.preventDefault(),e==null||e(l)};return m.jsx("form",{ref:s,onSubmit:o,className:q("space-y-4",t),...i,children:n})});im.displayName="QForm";const sm=g.forwardRef(({label:e,description:t,error:n,required:i,className:s,value:o,onChange:l,placeholder:a="Pick a date",...r},f)=>m.jsx(Kt,{label:e,description:t,error:n,required:i,className:s,children:m.jsx(fl,{ref:f,date:o,onDateChange:l,placeholder:a,...r})}));sm.displayName="QDatePicker";const rm=g.forwardRef(({label:e,description:t,error:n,required:i,className:s,value:o,onChange:l,placeholder:a="Pick a date range",...r},f)=>m.jsx(Kt,{label:e,description:t,error:n,required:i,className:s,children:m.jsx(hl,{ref:f,dateRange:o,onDateRangeChange:l,placeholder:a,...r})}));rm.displayName="QDateRangePicker";const om=g.forwardRef(({label:e,description:t,error:n,required:i,className:s,value:o,onChange:l,placeholder:a="Start writing...",height:r="200px",...f},d)=>m.jsx(Kt,{label:e,description:t,error:n,required:i,className:s,children:m.jsx(yl,{ref:d,value:o,onChange:l,placeholder:a,height:r,...f})}));om.displayName="QRichTextEditor";const Zl=({currentPage:e=1,totalPages:t=1,totalItems:n=0,pageSize:i=10,pageSizeOptions:s=[10,20,50,100],onPageChange:o,onPageSizeChange:l,showPageSizeSelector:a=!0,showInfo:r=!0,className:f})=>{const d=(e-1)*i+1,h=Math.min(e*i,n),b=e>1,w=e<t,C=()=>{const S=[];if(t<=5)for(let u=1;u<=t;u++)S.push(u);else{S.push(1),e>3&&S.push("...");const u=Math.max(2,e-1),p=Math.min(t-1,e+1);for(let v=u;v<=p;v++)S.push(v);e<t-2&&S.push("..."),t>1&&S.push(t)}return S};return m.jsxs("div",{className:q("flex flex-col sm:flex-row items-center justify-between gap-4 px-2 py-4",f),children:[m.jsxs("div",{className:"flex items-center gap-4",children:[a&&m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx("span",{className:"text-sm text-muted-foreground",children:"Rows per page"}),m.jsxs(Ao,{value:String(i),onValueChange:S=>l==null?void 0:l(Number(S)),children:[m.jsx($s,{className:"h-8 w-[70px]",children:m.jsx(Ro,{placeholder:i})}),m.jsx(Us,{side:"top",children:s.map(S=>m.jsx(Ys,{value:String(S),children:S},S))})]})]}),r&&n>0&&m.jsxs("span",{className:"text-sm text-muted-foreground",children:["Showing ",d," to ",h," of ",n," results"]})]}),m.jsxs("div",{className:"flex items-center gap-1",children:[m.jsxs(xe,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>o==null?void 0:o(1),disabled:!b,children:[m.jsx(Bg,{className:"h-4 w-4"}),m.jsx("span",{className:"sr-only",children:"First page"})]}),m.jsxs(xe,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>o==null?void 0:o(e-1),disabled:!b,children:[m.jsx(fo,{className:"h-4 w-4"}),m.jsx("span",{className:"sr-only",children:"Previous page"})]}),m.jsx("div",{className:"flex items-center gap-1",children:C().map((S,c)=>S==="..."?m.jsx("span",{className:"px-2 text-muted-foreground",children:"..."},`ellipsis-${c}`):m.jsx(xe,{variant:e===S?"default":"outline",size:"icon",className:"h-8 w-8",onClick:()=>o==null?void 0:o(S),children:S},S))}),m.jsxs(xe,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>o==null?void 0:o(e+1),disabled:!w,children:[m.jsx(Ri,{className:"h-4 w-4"}),m.jsx("span",{className:"sr-only",children:"Next page"})]}),m.jsxs(xe,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>o==null?void 0:o(t),disabled:!w,children:[m.jsx(Fg,{className:"h-4 w-4"}),m.jsx("span",{className:"sr-only",children:"Last page"})]})]})]})};Zl.displayName="Pagination";const Gn=({variant:e="spinner",size:t="default",text:n,className:i,fullScreen:s=!1,overlay:o=!1})=>{const l={sm:"h-4 w-4",default:"h-8 w-8",lg:"h-12 w-12",xl:"h-16 w-16"},a=q("flex flex-col items-center justify-center gap-3",s&&"fixed inset-0 z-50",o&&"bg-background/80 backdrop-blur-sm",i),r=()=>{switch(e){case"spinner":return m.jsx(gn,{className:q("animate-spin text-primary",l[t])});case"dots":return m.jsx("div",{className:"flex gap-1",children:[0,1,2].map(f=>m.jsx("div",{className:q("rounded-full bg-primary animate-bounce",t==="sm"&&"h-1.5 w-1.5",t==="default"&&"h-2 w-2",t==="lg"&&"h-3 w-3",t==="xl"&&"h-4 w-4"),style:{animationDelay:`${f*.15}s`}},f))});case"pulse":return m.jsx("div",{className:q("rounded-full bg-primary animate-pulse",l[t])});case"skeleton":return m.jsxs("div",{className:"space-y-3 w-full max-w-sm",children:[m.jsx("div",{className:"h-4 bg-muted rounded animate-pulse"}),m.jsx("div",{className:"h-4 bg-muted rounded animate-pulse w-3/4"}),m.jsx("div",{className:"h-4 bg-muted rounded animate-pulse w-1/2"})]});default:return m.jsx(gn,{className:q("animate-spin text-primary",l[t])})}};return m.jsxs("div",{className:a,children:[r(),n&&m.jsx("p",{className:"text-sm text-muted-foreground animate-pulse",children:n})]})};Gn.displayName="Loading";const lm=({loading:e,children:t,text:n,className:i})=>m.jsxs("div",{className:q("relative",i),children:[t,e&&m.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-background/80 backdrop-blur-sm rounded-lg",children:m.jsx(Gn,{text:n})})]});lm.displayName="LoadingOverlay";const am=g.forwardRef(({loading:e,loadingText:t,children:n,disabled:i,className:s,...o},l)=>m.jsx(xe,{ref:l,disabled:i||e,className:s,...o,children:e?m.jsxs(m.Fragment,{children:[m.jsx(gn,{className:"mr-2 h-4 w-4 animate-spin"}),t||"Loading..."]}):n}));am.displayName="LoadingButton";const ii=({icon:e=fa,title:t="No data found",description:n="There are no items to display.",action:i,actionLabel:s,onAction:o,variant:l="default",className:a,children:r})=>{const f={default:{icon:fa,title:"No data found",description:"There are no items to display."},search:{icon:ho,title:"No results found",description:"Try adjusting your search or filters to find what you're looking for."},empty:{icon:Pc,title:"Get started",description:"Create your first item to get started."},error:{icon:Bc,title:"Something went wrong",description:"There was an error loading the data. Please try again."}},d=f[l]||f.default,h=e||d.icon,b=t||d.title,w=n||d.description;return m.jsxs("div",{className:q("flex flex-col items-center justify-center py-12 px-4 text-center",a),children:[m.jsx("div",{className:"rounded-full bg-muted p-4 mb-4",children:m.jsx(h,{className:"h-8 w-8 text-muted-foreground"})}),m.jsx("h3",{className:"text-lg font-semibold mb-2",children:b}),m.jsx("p",{className:"text-sm text-muted-foreground mb-6 max-w-sm",children:w}),r,(i||o)&&m.jsx(xe,{onClick:o,children:s||"Take Action"})]})};ii.displayName="EmptyState";const ql=({searchTerm:e,onClear:t,className:n})=>m.jsx(ii,{variant:"search",title:`No results for "${e}"`,description:"Try searching with different keywords or check your filters.",className:n,children:t&&m.jsx(xe,{variant:"outline",onClick:t,children:"Clear Search"})});ql.displayName="SearchEmptyState";const cm=({itemName:e="item",onCreate:t,className:n})=>m.jsx(ii,{variant:"empty",icon:Pc,title:`No ${e}s yet`,description:`Create your first ${e} to get started.`,onAction:t,actionLabel:`Create ${e}`,className:n});cm.displayName="CreateEmptyState";const um=({error:e,onRetry:t,className:n})=>m.jsx(ii,{variant:"error",title:"Error loading data",description:(e==null?void 0:e.message)||"Something went wrong. Please try again.",onAction:t,actionLabel:"Try Again",className:n});um.displayName="ErrorState";const hr=({open:e,onOpenChange:t,title:n,description:i,children:s,footer:o,size:l="default",showClose:a=!0,className:r,...f})=>{const d={sm:"max-w-sm",default:"max-w-lg",lg:"max-w-2xl",xl:"max-w-4xl",full:"max-w-[95vw]"};return m.jsx(Yd,{open:e,onOpenChange:t,...f,children:m.jsxs(Wo,{className:q(d[l],r),children:[(n||i)&&m.jsxs($o,{children:[n&&m.jsx(Uo,{children:n}),i&&m.jsx(Yo,{children:i})]}),s,o&&m.jsx(Gs,{children:o})]})})};hr.displayName="Modal";const Gl=({open:e,onOpenChange:t,onConfirm:n,onCancel:i,title:s="Are you sure?",description:o="This action cannot be undone.",confirmText:l="Confirm",cancelText:a="Cancel",variant:r="default",loading:f=!1,className:d})=>{const h=async()=>{await(n==null?void 0:n())},b=()=>{i==null||i(),t==null||t(!1)};return m.jsx(hr,{open:e,onOpenChange:t,title:s,description:o,size:"sm",className:d,footer:m.jsxs("div",{className:"flex gap-2 justify-end",children:[m.jsx(xe,{variant:"outline",onClick:b,disabled:f,children:a}),m.jsx(xe,{variant:r==="destructive"?"destructive":"default",onClick:h,disabled:f,children:f?"Loading...":l})]})})};Gl.displayName="ConfirmModal";const Mi=({open:e,onOpenChange:t,onConfirm:n,itemName:i="item",loading:s=!1})=>m.jsx(Gl,{open:e,onOpenChange:t,onConfirm:n,title:`Delete ${i}?`,description:`Are you sure you want to delete this ${i}? This action cannot be undone.`,confirmText:"Delete",variant:"destructive",loading:s});Mi.displayName="DeleteConfirmModal";const dm=({open:e,onOpenChange:t,onSubmit:n,title:i,description:s,children:o,submitText:l="Save",cancelText:a="Cancel",loading:r=!1,size:f="default",className:d})=>{const h=async b=>{b==null||b.preventDefault(),await(n==null?void 0:n())};return m.jsx(hr,{open:e,onOpenChange:t,title:i,description:s,size:f,className:d,children:m.jsxs("form",{onSubmit:h,children:[m.jsx("div",{className:"py-4",children:o}),m.jsxs(Gs,{children:[m.jsx(xe,{type:"button",variant:"outline",onClick:()=>t==null?void 0:t(!1),disabled:r,children:a}),m.jsx(xe,{type:"submit",disabled:r,children:r?"Saving...":l})]})]})})};dm.displayName="FormModal";const Kl=({data:e=[],columns:t=[],loading:n=!1,error:i=null,pagination:s=null,currentPage:o=1,pageSize:l=10,totalItems:a=0,totalPages:r=1,onPageChange:f,onPageSizeChange:d,sortable:h=!0,sortColumn:b=null,sortDirection:w=null,onSort:C,searchable:S=!0,searchValue:c="",onSearchChange:u,searchPlaceholder:p="Search...",selectable:v=!1,selectedRows:y=[],onSelectionChange:_,actions:x=[],onRowClick:E,striped:T=!1,hover:N=!0,compact:k=!1,className:A,emptyTitle:M="No data found",emptyDescription:D="There are no items to display.",emptyAction:R,onEmptyAction:z,getRowKey:V=H=>H.id||H._id})=>{const[H,B]=g.useState(c);g.useEffect(()=>{const $=setTimeout(()=>{u&&H!==c&&u(H)},300);return()=>clearTimeout($)},[H]);const L=$=>{if(!h||!$.sortable)return;const Q=$.sortKey||$.accessor;let Z="asc";b===Q&&(Z=w==="asc"?"desc":"asc"),C==null||C(Q,Z)},P=$=>{$?_==null||_(e.map(V)):_==null||_([])},j=($,Q)=>{Q?_==null||_([...y,$]):_==null||_(y.filter(Z=>Z!==$))},O=e.length>0&&y.length===e.length,U=y.length>0&&y.length<e.length,I=($,Q,Z)=>{const K=$.accessor||$.key,te=K?typeof K=="function"?K(Q):Q[K]:void 0;return $.render?$.render(te,Q,Z):$.format?$.format(te,Q):te!==null&&typeof te=="object"?"-":te??"-"},W=$=>{if(!h||!$.sortable)return null;const Q=$.sortKey||$.accessor;return b!==Q?m.jsx(Og,{className:"ml-2 h-4 w-4 opacity-50"}):w==="asc"?m.jsx(Pg,{className:"ml-2 h-4 w-4"}):m.jsx(Lg,{className:"ml-2 h-4 w-4"})},J=$=>{if(!x||x.length===0)return null;const Q=x.filter(Z=>Z.hidden?typeof Z.hidden=="function"?!Z.hidden($):!Z.hidden:!0);return Q.length===0?null:m.jsxs(kl,{children:[m.jsx(Ml,{asChild:!0,children:m.jsxs(xe,{variant:"ghost",size:"icon",className:"h-8 w-8",children:[m.jsx($g,{className:"h-4 w-4"}),m.jsx("span",{className:"sr-only",children:"Open menu"})]})}),m.jsxs(cr,{align:"end",children:[m.jsx(ur,{children:"Actions"}),m.jsx(ki,{}),Q.map((Z,K)=>m.jsxs(Ti,{onClick:()=>{var te;return(te=Z.onClick)==null?void 0:te.call(Z,$)},className:q(Z.variant==="destructive"&&"text-destructive focus:text-destructive"),disabled:Z.disabled,children:[Z.icon&&m.jsx(Z.icon,{className:"mr-2 h-4 w-4"}),Z.label]},Z.label||K))]})]})};return m.jsxs("div",{className:q("w-full",A),children:[(S||y.length>0)&&m.jsxs("div",{className:"flex items-center justify-between gap-4 mb-4",children:[S&&m.jsxs("div",{className:"relative max-w-sm",children:[m.jsx(ho,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),m.jsx(Hn,{placeholder:p,value:H,onChange:$=>B($.target.value),className:"pl-9 pr-9"}),H&&m.jsx("button",{onClick:()=>{B(""),u==null||u("")},className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:m.jsx(In,{className:"h-4 w-4"})})]}),v&&y.length>0&&m.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[y.length," row(s) selected",m.jsx(xe,{variant:"ghost",size:"sm",onClick:()=>_==null?void 0:_([]),children:"Clear selection"})]})]}),m.jsx("div",{className:"rounded-md border",children:m.jsxs(jl,{children:[m.jsx(zl,{children:m.jsxs(An,{children:[v&&m.jsx(gi,{className:"w-12",children:m.jsx(Vn,{checked:O,indeterminate:U,onCheckedChange:P})}),t.map(($,Q)=>m.jsx(gi,{className:q($.headerClassName,h&&$.sortable&&"cursor-pointer select-none"),style:{width:$.width},onClick:()=>L($),children:m.jsxs("div",{className:"flex items-center",children:[$.header||$.label,W($)]})},$.accessor||Q)),x&&x.length>0&&m.jsx(gi,{className:"w-12",children:"Actions"})]})}),m.jsx(Hl,{children:n?m.jsx(An,{children:m.jsx(hn,{colSpan:t.length+(v?1:0)+(x!=null&&x.length?1:0),className:"h-48",children:m.jsx(Gn,{text:"Loading data..."})})}):e.length===0?m.jsx(An,{children:m.jsx(hn,{colSpan:t.length+(v?1:0)+(x!=null&&x.length?1:0),className:"h-48",children:H?m.jsx(ql,{searchTerm:H,onClear:()=>{B(""),u==null||u("")}}):m.jsx(ii,{title:M,description:D,onAction:z,actionLabel:R})})}):e.map(($,Q)=>{const Z=V($),K=y.includes(Z);return m.jsxs(An,{"data-state":K?"selected":void 0,className:q(T&&Q%2===1&&"bg-muted/50",N&&"cursor-pointer",E&&"hover:bg-muted"),onClick:()=>E==null?void 0:E($),children:[v&&m.jsx(hn,{onClick:te=>te.stopPropagation(),children:m.jsx(Vn,{checked:K,onCheckedChange:te=>j(Z,te)})}),t.map((te,re)=>m.jsx(hn,{className:q(k&&"py-2",te.cellClassName),children:I(te,$,Q)},te.accessor||re)),x&&x.length>0&&m.jsx(hn,{onClick:te=>te.stopPropagation(),children:J($)})]},Z)})})]})}),!n&&e.length>0&&s!==!1&&m.jsx(Zl,{currentPage:o,totalPages:r,totalItems:a,pageSize:l,onPageChange:f,onPageSizeChange:d})]})};Kl.displayName="DataTable";const fm=({store:e,data:t,loading:n=!1,error:i=null,columns:s=[],currentPage:o=1,pageSize:l=10,totalItems:a=0,totalPages:r=1,onPageChange:f,onPageSizeChange:d,sortColumn:h,sortDirection:b,onSort:w,searchValue:C="",onSearchChange:S,searchPlaceholder:c="Search...",selectable:u=!1,selectedRows:p=[],onSelectionChange:v,onCreate:y,onView:_,onEdit:x,onDelete:E,onRefresh:T,onExport:N,createPath:k,detailPath:A,editPath:M,getBreadcrumbName:D,additionalActions:R=[],bulkActions:z=[],title:V,description:H,createLabel:B="Create",refreshLabel:L="Refresh",exportLabel:P="Export",viewLabel:j="View",editLabel:O="Edit",deleteLabel:U="Delete",itemName:I="item",getRowKey:W=he=>he.id||he._id,showHeader:J=!0,showToolbar:$=!0,compact:Q=!1,className:Z,deleteConfirmTitle:K,deleteConfirmDescription:te,getDeleteItemName:re,filters:ae,headerActions:ie,searchable:oe=!0,showEditButton:Se=!0,showDeleteButton:Ae=!0})=>{const he=it.useNavigate(),[Te,F]=g.useState(!1),[Y,G]=g.useState(null),[se,ne]=g.useState(!1),[ee,ue]=g.useState(""),ge=g.useRef(!1),me=g.useRef(ee),_e=g.useRef(null),Me=g.useRef(null),De=(e==null?void 0:e.items)??t??[],Ke=(e==null?void 0:e.loading)??n,Ue=(e==null?void 0:e.error)??i,Fe=(e==null?void 0:e.pagination)??{page:o,pageSize:l,total:a,totalPages:r},qe=Fe.page??o,rt=Fe.pageSize??l,jt=Fe.total??a,ft=Fe.totalPages??r,Ye=e==null?void 0:e.fetchList,ve=e==null?void 0:e.delete,Ee=e==null?void 0:e.setPage,fe=e==null?void 0:e.setPageSize,we=e==null?void 0:e.setFilters;g.useEffect(()=>{Ye&&!ge.current&&(ge.current=!0,_e.current=qe,Me.current=rt,Ye())},[Ye]),g.useEffect(()=>{if(!Ye||!ge.current)return;const Ce=_e.current!==qe,zt=Me.current!==rt;(Ce||zt)&&(_e.current=qe,Me.current=rt,Ye())},[qe,rt,Ye]),g.useEffect(()=>{if(!Ye||!ge.current||me.current===ee)return;const Ce=setTimeout(()=>{oe&&(me.current=ee,we==null||we({search:ee}),qe!==1?Ee==null||Ee(1):Ye())},300);return()=>clearTimeout(Ce)},[ee,oe,qe,we,Ee,Ye]);const et=g.useCallback(Ce=>{Ee?Ee(Ce):f==null||f(Ce)},[Ee,f]),Ne=g.useCallback(Ce=>{fe?fe(Ce):d==null||d(Ce)},[fe,d]),gr=g.useCallback(Ce=>{we?ue(Ce):S==null||S(Ce)},[we,S]),ts=g.useCallback(()=>{k?he(k):y==null||y()},[k,he,y]),ns=g.useCallback(Ce=>{if(A){const zt=D?D(Ce):void 0;he(`${A}/${W(Ce)}`,{state:zt?{breadcrumbName:zt}:void 0})}else _==null||_(Ce)},[A,he,W,_,D]),wn=g.useCallback(Ce=>{if(M){const zt=D?D(Ce):void 0;he(`${M}/${W(Ce)}/edit`,{state:zt?{breadcrumbName:zt}:void 0})}else x==null||x(Ce)},[M,he,W,x,D]),si=g.useCallback(()=>{Ye?Ye():T==null||T()},[Ye,T]),na=g.useCallback(Ce=>{G(Ce),F(!0)},[]),Mm=async()=>{if(Y){ne(!0);try{ve?(await ve(W(Y)),Ye==null||Ye()):E&&await E(Y),F(!1),G(null)}catch(Ce){console.error("Delete error:",Ce)}finally{ne(!1)}}},Dm=g.useMemo(()=>{const Ce=[];return(A||_)&&Ce.push({label:j,icon:Ic,onClick:ns}),(M||x)&&Se&&Ce.push({label:O,icon:zr,onClick:wn}),(ve||E)&&Ae&&Ce.push({label:U,icon:Hr,variant:"destructive",onClick:na}),[...Ce,...R]},[A,M,_,x,ve,E,j,O,U,ns,wn,na,R]),vr=k||y,Am=Ye||T,ia=g.useMemo(()=>Y?re?re(Y):Y.name||Y.title||I:I,[Y,re,I]),sa=()=>$?m.jsxs("div",{className:"flex items-center gap-2",children:[ie,u&&p.length>0&&z.length>0&&m.jsx(m.Fragment,{children:z.map((Ce,zt)=>m.jsxs(xe,{variant:Ce.variant||"outline",size:"sm",onClick:()=>{var oa;return(oa=Ce.onClick)==null?void 0:oa.call(Ce,p)},disabled:Ce.disabled,children:[Ce.icon&&m.jsx(Ce.icon,{className:"mr-2 h-4 w-4"}),Ce.label]},Ce.label||zt))}),N&&m.jsxs(xe,{variant:"outline",size:"sm",onClick:N,children:[m.jsx(Wg,{className:"mr-2 h-4 w-4"}),P]}),Am&&m.jsxs(xe,{variant:"outline",size:"sm",onClick:si,disabled:Ke,children:[m.jsx(Bc,{className:q("mr-2 h-4 w-4",Ke&&"animate-spin")}),L]}),vr&&m.jsxs(xe,{size:"sm",onClick:ts,children:[m.jsx(qg,{className:"mr-2 h-4 w-4"}),B]})]}):null,ra=m.jsxs(m.Fragment,{children:[ae&&m.jsx("div",{className:"mb-4 flex items-center gap-2",children:ae}),m.jsx(Kl,{data:De,columns:s,loading:Ke,error:Ue,currentPage:qe,pageSize:rt,totalItems:jt,totalPages:ft,onPageChange:et,onPageSizeChange:Ne,sortColumn:h,sortDirection:b,onSort:w,searchable:oe,searchValue:we?ee:C,onSearchChange:gr,searchPlaceholder:c,selectable:u,selectedRows:p,onSelectionChange:v,actions:Dm,getRowKey:W,compact:Q,emptyTitle:`No ${I}s found`,emptyDescription:`Create your first ${I} to get started.`,emptyAction:vr?`Create ${I}`:void 0,onEmptyAction:vr?ts:void 0}),m.jsx(Mi,{open:Te,onOpenChange:F,onConfirm:Mm,title:K||`Delete ${I}`,description:te||`Are you sure you want to delete "${ia}"? This action cannot be undone.`,itemName:ia,loading:se})]});return J&&(V||H)?m.jsxs(mt,{className:Z,children:[m.jsxs(Fn,{className:"flex flex-row items-center justify-between space-y-0 pb-4",children:[m.jsxs("div",{children:[V&&m.jsx(jn,{children:V}),H&&m.jsx(zn,{children:H})]}),sa()]}),m.jsx(gt,{children:ra})]}):m.jsxs("div",{className:Z,children:[$&&m.jsxs("div",{className:"flex items-center justify-between mb-4",children:[m.jsx("div",{}),sa()]}),ra]})};fm.displayName="CrudList";var es=e=>e.type==="checkbox",mn=e=>e instanceof Date,nt=e=>e==null;const hm=e=>typeof e=="object";var We=e=>!nt(e)&&!Array.isArray(e)&&hm(e)&&!mn(e),s5=e=>We(e)&&e.target?es(e.target)?e.target.checked:e.target.value:e,r5=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,o5=(e,t)=>e.has(r5(t)),l5=e=>{const t=e.constructor&&e.constructor.prototype;return We(t)&&t.hasOwnProperty("isPrototypeOf")},Xl=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function Ge(e){let t;const n=Array.isArray(e),i=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)t=new Date(e);else if(!(Xl&&(e instanceof Blob||i))&&(n||We(e)))if(t=n?[]:Object.create(Object.getPrototypeOf(e)),!n&&!l5(e))t=e;else for(const s in e)e.hasOwnProperty(s)&&(t[s]=Ge(e[s]));else return e;return t}var pr=e=>/^\w*$/.test(e),ze=e=>e===void 0,Ql=e=>Array.isArray(e)?e.filter(Boolean):[],Jl=e=>Ql(e.replace(/["|']|\]/g,"").split(/\.|\[/)),ce=(e,t,n)=>{if(!t||!We(e))return n;const i=(pr(t)?[t]:Jl(t)).reduce((s,o)=>nt(s)?s:s[o],e);return ze(i)||i===e?ze(e[t])?n:e[t]:i},Mt=e=>typeof e=="boolean",Oe=(e,t,n)=>{let i=-1;const s=pr(t)?[t]:Jl(t),o=s.length,l=o-1;for(;++i<o;){const a=s[i];let r=n;if(i!==l){const f=e[a];r=We(f)||Array.isArray(f)?f:isNaN(+s[i+1])?{}:[]}if(a==="__proto__"||a==="constructor"||a==="prototype")return;e[a]=r,e=e[a]}};const cc={BLUR:"blur",FOCUS_OUT:"focusout"},_t={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},Vt={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},a5=X.createContext(null);a5.displayName="HookFormContext";var c5=(e,t,n,i=!0)=>{const s={defaultValues:t._defaultValues};for(const o in e)Object.defineProperty(s,o,{get:()=>{const l=o;return t._proxyFormState[l]!==_t.all&&(t._proxyFormState[l]=!i||_t.all),e[l]}});return s};const u5=typeof window<"u"?X.useLayoutEffect:X.useEffect;var at=e=>typeof e=="string",d5=(e,t,n,i,s)=>at(e)?(i&&t.watch.add(e),ce(n,e,s)):Array.isArray(e)?e.map(o=>(i&&t.watch.add(o),ce(n,o))):(i&&(t.watchAll=!0),n),lo=e=>nt(e)||!hm(e);function tn(e,t,n=new WeakSet){if(lo(e)||lo(t))return Object.is(e,t);if(mn(e)&&mn(t))return e.getTime()===t.getTime();const i=Object.keys(e),s=Object.keys(t);if(i.length!==s.length)return!1;if(n.has(e)||n.has(t))return!0;n.add(e),n.add(t);for(const o of i){const l=e[o];if(!s.includes(o))return!1;if(o!=="ref"){const a=t[o];if(mn(l)&&mn(a)||We(l)&&We(a)||Array.isArray(l)&&Array.isArray(a)?!tn(l,a,n):!Object.is(l,a))return!1}}return!0}var pm=(e,t,n,i,s)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[i]:s||!0}}:{},vi=e=>Array.isArray(e)?e:[e],uc=()=>{let e=[];return{get observers(){return e},next:s=>{for(const o of e)o.next&&o.next(s)},subscribe:s=>(e.push(s),{unsubscribe:()=>{e=e.filter(o=>o!==s)}}),unsubscribe:()=>{e=[]}}};function mm(e,t){const n={};for(const i in e)if(e.hasOwnProperty(i)){const s=e[i],o=t[i];if(s&&We(s)&&o){const l=mm(s,o);We(l)&&(n[i]=l)}else e[i]&&(n[i]=o)}return n}var tt=e=>We(e)&&!Object.keys(e).length,ea=e=>e.type==="file",wt=e=>typeof e=="function",Ts=e=>{if(!Xl)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},gm=e=>e.type==="select-multiple",ta=e=>e.type==="radio",f5=e=>ta(e)||es(e),Fr=e=>Ts(e)&&e.isConnected;function h5(e,t){const n=t.slice(0,-1).length;let i=0;for(;i<n;)e=ze(e)?i++:e[t[i++]];return e}function p5(e){for(const t in e)if(e.hasOwnProperty(t)&&!ze(e[t]))return!1;return!0}function Ve(e,t){const n=Array.isArray(t)?t:pr(t)?[t]:Jl(t),i=n.length===1?e:h5(e,n),s=n.length-1,o=n[s];return i&&delete i[o],s!==0&&(We(i)&&tt(i)||Array.isArray(i)&&p5(i))&&Ve(e,n.slice(0,-1)),e}var m5=e=>{for(const t in e)if(wt(e[t]))return!0;return!1};function vm(e){return Array.isArray(e)||We(e)&&!m5(e)}function ao(e,t={}){for(const n in e){const i=e[n];vm(i)?(t[n]=Array.isArray(i)?[]:{},ao(i,t[n])):ze(i)||(t[n]=!0)}return t}function Dn(e,t,n){n||(n=ao(t));for(const i in e){const s=e[i];if(vm(s))ze(t)||lo(n[i])?n[i]=ao(s,Array.isArray(s)?[]:{}):Dn(s,nt(t)?{}:t[i],n[i]);else{const o=t[i];n[i]=!tn(s,o)}}return n}const dc={value:!1,isValid:!1},fc={value:!0,isValid:!0};var bm=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(n=>n&&n.checked&&!n.disabled).map(n=>n.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!ze(e[0].attributes.value)?ze(e[0].value)||e[0].value===""?fc:{value:e[0].value,isValid:!0}:fc:dc}return dc},ym=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:i})=>ze(e)?e:t?e===""?NaN:e&&+e:n&&at(e)?new Date(e):i?i(e):e;const hc={isValid:!1,value:null};var xm=e=>Array.isArray(e)?e.reduce((t,n)=>n&&n.checked&&!n.disabled?{isValid:!0,value:n.value}:t,hc):hc;function pc(e){const t=e.ref;return ea(t)?t.files:ta(t)?xm(e.refs).value:gm(t)?[...t.selectedOptions].map(({value:n})=>n):es(t)?bm(e.refs).value:ym(ze(t.value)?e.ref.value:t.value,e)}var g5=(e,t,n,i)=>{const s={};for(const o of e){const l=ce(t,o);l&&Oe(s,o,l._f)}return{criteriaMode:n,names:[...e],fields:s,shouldUseNativeValidation:i}},ks=e=>e instanceof RegExp,ui=e=>ze(e)?e:ks(e)?e.source:We(e)?ks(e.value)?e.value.source:e.value:e,mc=e=>({isOnSubmit:!e||e===_t.onSubmit,isOnBlur:e===_t.onBlur,isOnChange:e===_t.onChange,isOnAll:e===_t.all,isOnTouch:e===_t.onTouched});const gc="AsyncFunction";var v5=e=>!!e&&!!e.validate&&!!(wt(e.validate)&&e.validate.constructor.name===gc||We(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===gc)),b5=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),vc=(e,t,n)=>!n&&(t.watchAll||t.watch.has(e)||[...t.watch].some(i=>e.startsWith(i)&&/^\.\w+/.test(e.slice(i.length))));const bi=(e,t,n,i)=>{for(const s of n||Object.keys(e)){const o=ce(e,s);if(o){const{_f:l,...a}=o;if(l){if(l.refs&&l.refs[0]&&t(l.refs[0],s)&&!i)return!0;if(l.ref&&t(l.ref,l.name)&&!i)return!0;if(bi(a,t))break}else if(We(a)&&bi(a,t))break}}};function bc(e,t,n){const i=ce(e,n);if(i||pr(n))return{error:i,name:n};const s=n.split(".");for(;s.length;){const o=s.join("."),l=ce(t,o),a=ce(e,o);if(l&&!Array.isArray(l)&&n!==o)return{name:n};if(a&&a.type)return{name:o,error:a};if(a&&a.root&&a.root.type)return{name:`${o}.root`,error:a.root};s.pop()}return{name:n}}var y5=(e,t,n,i)=>{n(e);const{name:s,...o}=e;return tt(o)||Object.keys(o).length>=Object.keys(t).length||Object.keys(o).find(l=>t[l]===(!i||_t.all))},x5=(e,t,n)=>!e||!t||e===t||vi(e).some(i=>i&&(n?i===t:i.startsWith(t)||t.startsWith(i))),_5=(e,t,n,i,s)=>s.isOnAll?!1:!n&&s.isOnTouch?!(t||e):(n?i.isOnBlur:s.isOnBlur)?!e:(n?i.isOnChange:s.isOnChange)?e:!0,w5=(e,t)=>!Ql(ce(e,t)).length&&Ve(e,t),C5=(e,t,n)=>{const i=vi(ce(e,n));return Oe(i,"root",t[n]),Oe(e,n,i),e};function yc(e,t,n="validate"){if(at(e)||Array.isArray(e)&&e.every(at)||Mt(e)&&!e)return{type:n,message:at(e)?e:"",ref:t}}var kn=e=>We(e)&&!ks(e)?e:{value:e,message:""},xc=async(e,t,n,i,s,o)=>{const{ref:l,refs:a,required:r,maxLength:f,minLength:d,min:h,max:b,pattern:w,validate:C,name:S,valueAsNumber:c,mount:u}=e._f,p=ce(n,S);if(!u||t.has(S))return{};const v=a?a[0]:l,y=M=>{s&&v.reportValidity&&(v.setCustomValidity(Mt(M)?"":M||""),v.reportValidity())},_={},x=ta(l),E=es(l),T=x||E,N=(c||ea(l))&&ze(l.value)&&ze(p)||Ts(l)&&l.value===""||p===""||Array.isArray(p)&&!p.length,k=pm.bind(null,S,i,_),A=(M,D,R,z=Vt.maxLength,V=Vt.minLength)=>{const H=M?D:R;_[S]={type:M?z:V,message:H,ref:l,...k(M?z:V,H)}};if(o?!Array.isArray(p)||!p.length:r&&(!T&&(N||nt(p))||Mt(p)&&!p||E&&!bm(a).isValid||x&&!xm(a).isValid)){const{value:M,message:D}=at(r)?{value:!!r,message:r}:kn(r);if(M&&(_[S]={type:Vt.required,message:D,ref:v,...k(Vt.required,D)},!i))return y(D),_}if(!N&&(!nt(h)||!nt(b))){let M,D;const R=kn(b),z=kn(h);if(!nt(p)&&!isNaN(p)){const V=l.valueAsNumber||p&&+p;nt(R.value)||(M=V>R.value),nt(z.value)||(D=V<z.value)}else{const V=l.valueAsDate||new Date(p),H=P=>new Date(new Date().toDateString()+" "+P),B=l.type=="time",L=l.type=="week";at(R.value)&&p&&(M=B?H(p)>H(R.value):L?p>R.value:V>new Date(R.value)),at(z.value)&&p&&(D=B?H(p)<H(z.value):L?p<z.value:V<new Date(z.value))}if((M||D)&&(A(!!M,R.message,z.message,Vt.max,Vt.min),!i))return y(_[S].message),_}if((f||d)&&!N&&(at(p)||o&&Array.isArray(p))){const M=kn(f),D=kn(d),R=!nt(M.value)&&p.length>+M.value,z=!nt(D.value)&&p.length<+D.value;if((R||z)&&(A(R,M.message,D.message),!i))return y(_[S].message),_}if(w&&!N&&at(p)){const{value:M,message:D}=kn(w);if(ks(M)&&!p.match(M)&&(_[S]={type:Vt.pattern,message:D,ref:l,...k(Vt.pattern,D)},!i))return y(D),_}if(C){if(wt(C)){const M=await C(p,n),D=yc(M,v);if(D&&(_[S]={...D,...k(Vt.validate,D.message)},!i))return y(D.message),_}else if(We(C)){let M={};for(const D in C){if(!tt(M)&&!i)break;const R=yc(await C[D](p,n),v,D);R&&(M={...R,...k(D,R.message)},y(R.message),i&&(_[S]=M))}if(!tt(M)&&(_[S]={ref:v,...M},!i))return _}}return y(!0),_};const S5={mode:_t.onSubmit,reValidateMode:_t.onChange,shouldFocusError:!0};function E5(e={}){let t={...S5,...e},n={submitCount:0,isDirty:!1,isReady:!1,isLoading:wt(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},i={},s=We(t.defaultValues)||We(t.values)?Ge(t.defaultValues||t.values)||{}:{},o=t.shouldUnregister?{}:Ge(s),l={action:!1,mount:!1,watch:!1},a={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},r,f=0;const d={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let h={...d};const b={array:uc(),state:uc()},w=t.criteriaMode===_t.all,C=F=>Y=>{clearTimeout(f),f=setTimeout(F,Y)},S=async F=>{if(!t.disabled&&(d.isValid||h.isValid||F)){const Y=t.resolver?tt((await E()).errors):await N(i,!0);Y!==n.isValid&&b.state.next({isValid:Y})}},c=(F,Y)=>{!t.disabled&&(d.isValidating||d.validatingFields||h.isValidating||h.validatingFields)&&((F||Array.from(a.mount)).forEach(G=>{G&&(Y?Oe(n.validatingFields,G,Y):Ve(n.validatingFields,G))}),b.state.next({validatingFields:n.validatingFields,isValidating:!tt(n.validatingFields)}))},u=(F,Y=[],G,se,ne=!0,ee=!0)=>{if(se&&G&&!t.disabled){if(l.action=!0,ee&&Array.isArray(ce(i,F))){const ue=G(ce(i,F),se.argA,se.argB);ne&&Oe(i,F,ue)}if(ee&&Array.isArray(ce(n.errors,F))){const ue=G(ce(n.errors,F),se.argA,se.argB);ne&&Oe(n.errors,F,ue),w5(n.errors,F)}if((d.touchedFields||h.touchedFields)&&ee&&Array.isArray(ce(n.touchedFields,F))){const ue=G(ce(n.touchedFields,F),se.argA,se.argB);ne&&Oe(n.touchedFields,F,ue)}(d.dirtyFields||h.dirtyFields)&&(n.dirtyFields=Dn(s,o)),b.state.next({name:F,isDirty:A(F,Y),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else Oe(o,F,Y)},p=(F,Y)=>{Oe(n.errors,F,Y),b.state.next({errors:n.errors})},v=F=>{n.errors=F,b.state.next({errors:n.errors,isValid:!1})},y=(F,Y,G,se)=>{const ne=ce(i,F);if(ne){const ee=ce(o,F,ze(G)?ce(s,F):G);ze(ee)||se&&se.defaultChecked||Y?Oe(o,F,Y?ee:pc(ne._f)):R(F,ee),l.mount&&!l.action&&S()}},_=(F,Y,G,se,ne)=>{let ee=!1,ue=!1;const ge={name:F};if(!t.disabled){if(!G||se){(d.isDirty||h.isDirty)&&(ue=n.isDirty,n.isDirty=ge.isDirty=A(),ee=ue!==ge.isDirty);const me=tn(ce(s,F),Y);ue=!!ce(n.dirtyFields,F),me?Ve(n.dirtyFields,F):Oe(n.dirtyFields,F,!0),ge.dirtyFields=n.dirtyFields,ee=ee||(d.dirtyFields||h.dirtyFields)&&ue!==!me}if(G){const me=ce(n.touchedFields,F);me||(Oe(n.touchedFields,F,G),ge.touchedFields=n.touchedFields,ee=ee||(d.touchedFields||h.touchedFields)&&me!==G)}ee&&ne&&b.state.next(ge)}return ee?ge:{}},x=(F,Y,G,se)=>{const ne=ce(n.errors,F),ee=(d.isValid||h.isValid)&&Mt(Y)&&n.isValid!==Y;if(t.delayError&&G?(r=C(()=>p(F,G)),r(t.delayError)):(clearTimeout(f),r=null,G?Oe(n.errors,F,G):Ve(n.errors,F)),(G?!tn(ne,G):ne)||!tt(se)||ee){const ue={...se,...ee&&Mt(Y)?{isValid:Y}:{},errors:n.errors,name:F};n={...n,...ue},b.state.next(ue)}},E=async F=>{c(F,!0);const Y=await t.resolver(o,t.context,g5(F||a.mount,i,t.criteriaMode,t.shouldUseNativeValidation));return c(F),Y},T=async F=>{const{errors:Y}=await E(F);if(F)for(const G of F){const se=ce(Y,G);se?Oe(n.errors,G,se):Ve(n.errors,G)}else n.errors=Y;return Y},N=async(F,Y,G={valid:!0})=>{for(const se in F){const ne=F[se];if(ne){const{_f:ee,...ue}=ne;if(ee){const ge=a.array.has(ee.name),me=ne._f&&v5(ne._f);me&&d.validatingFields&&c([ee.name],!0);const _e=await xc(ne,a.disabled,o,w,t.shouldUseNativeValidation&&!Y,ge);if(me&&d.validatingFields&&c([ee.name]),_e[ee.name]&&(G.valid=!1,Y))break;!Y&&(ce(_e,ee.name)?ge?C5(n.errors,_e,ee.name):Oe(n.errors,ee.name,_e[ee.name]):Ve(n.errors,ee.name))}!tt(ue)&&await N(ue,Y,G)}}return G.valid},k=()=>{for(const F of a.unMount){const Y=ce(i,F);Y&&(Y._f.refs?Y._f.refs.every(G=>!Fr(G)):!Fr(Y._f.ref))&&$(F)}a.unMount=new Set},A=(F,Y)=>!t.disabled&&(F&&Y&&Oe(o,F,Y),!tn(P(),s)),M=(F,Y,G)=>d5(F,a,{...l.mount?o:ze(Y)?s:at(F)?{[F]:Y}:Y},G,Y),D=F=>Ql(ce(l.mount?o:s,F,t.shouldUnregister?ce(s,F,[]):[])),R=(F,Y,G={})=>{const se=ce(i,F);let ne=Y;if(se){const ee=se._f;ee&&(!ee.disabled&&Oe(o,F,ym(Y,ee)),ne=Ts(ee.ref)&&nt(Y)?"":Y,gm(ee.ref)?[...ee.ref.options].forEach(ue=>ue.selected=ne.includes(ue.value)):ee.refs?es(ee.ref)?ee.refs.forEach(ue=>{(!ue.defaultChecked||!ue.disabled)&&(Array.isArray(ne)?ue.checked=!!ne.find(ge=>ge===ue.value):ue.checked=ne===ue.value||!!ne)}):ee.refs.forEach(ue=>ue.checked=ue.value===ne):ea(ee.ref)?ee.ref.value="":(ee.ref.value=ne,ee.ref.type||b.state.next({name:F,values:Ge(o)})))}(G.shouldDirty||G.shouldTouch)&&_(F,ne,G.shouldTouch,G.shouldDirty,!0),G.shouldValidate&&L(F)},z=(F,Y,G)=>{for(const se in Y){if(!Y.hasOwnProperty(se))return;const ne=Y[se],ee=F+"."+se,ue=ce(i,ee);(a.array.has(F)||We(ne)||ue&&!ue._f)&&!mn(ne)?z(ee,ne,G):R(ee,ne,G)}},V=(F,Y,G={})=>{const se=ce(i,F),ne=a.array.has(F),ee=Ge(Y);Oe(o,F,ee),ne?(b.array.next({name:F,values:Ge(o)}),(d.isDirty||d.dirtyFields||h.isDirty||h.dirtyFields)&&G.shouldDirty&&b.state.next({name:F,dirtyFields:Dn(s,o),isDirty:A(F,ee)})):se&&!se._f&&!nt(ee)?z(F,ee,G):R(F,ee,G),vc(F,a)&&b.state.next({...n,name:F}),b.state.next({name:l.mount?F:void 0,values:Ge(o)})},H=async F=>{l.mount=!0;const Y=F.target;let G=Y.name,se=!0;const ne=ce(i,G),ee=me=>{se=Number.isNaN(me)||mn(me)&&isNaN(me.getTime())||tn(me,ce(o,G,me))},ue=mc(t.mode),ge=mc(t.reValidateMode);if(ne){let me,_e;const Me=Y.type?pc(ne._f):s5(F),De=F.type===cc.BLUR||F.type===cc.FOCUS_OUT,Ke=!b5(ne._f)&&!t.resolver&&!ce(n.errors,G)&&!ne._f.deps||_5(De,ce(n.touchedFields,G),n.isSubmitted,ge,ue),Ue=vc(G,a,De);Oe(o,G,Me),De?(!Y||!Y.readOnly)&&(ne._f.onBlur&&ne._f.onBlur(F),r&&r(0)):ne._f.onChange&&ne._f.onChange(F);const Fe=_(G,Me,De),qe=!tt(Fe)||Ue;if(!De&&b.state.next({name:G,type:F.type,values:Ge(o)}),Ke)return(d.isValid||h.isValid)&&(t.mode==="onBlur"?De&&S():De||S()),qe&&b.state.next({name:G,...Ue?{}:Fe});if(!De&&Ue&&b.state.next({...n}),t.resolver){const{errors:rt}=await E([G]);if(ee(Me),se){const jt=bc(n.errors,i,G),ft=bc(rt,i,jt.name||G);me=ft.error,G=ft.name,_e=tt(rt)}}else c([G],!0),me=(await xc(ne,a.disabled,o,w,t.shouldUseNativeValidation))[G],c([G]),ee(Me),se&&(me?_e=!1:(d.isValid||h.isValid)&&(_e=await N(i,!0)));se&&(ne._f.deps&&(!Array.isArray(ne._f.deps)||ne._f.deps.length>0)&&L(ne._f.deps),x(G,_e,me,Fe))}},B=(F,Y)=>{if(ce(n.errors,Y)&&F.focus)return F.focus(),1},L=async(F,Y={})=>{let G,se;const ne=vi(F);if(t.resolver){const ee=await T(ze(F)?F:ne);G=tt(ee),se=F?!ne.some(ue=>ce(ee,ue)):G}else F?(se=(await Promise.all(ne.map(async ee=>{const ue=ce(i,ee);return await N(ue&&ue._f?{[ee]:ue}:ue)}))).every(Boolean),!(!se&&!n.isValid)&&S()):se=G=await N(i);return b.state.next({...!at(F)||(d.isValid||h.isValid)&&G!==n.isValid?{}:{name:F},...t.resolver||!F?{isValid:G}:{},errors:n.errors}),Y.shouldFocus&&!se&&bi(i,B,F?ne:a.mount),se},P=(F,Y)=>{let G={...l.mount?o:s};return Y&&(G=mm(Y.dirtyFields?n.dirtyFields:n.touchedFields,G)),ze(F)?G:at(F)?ce(G,F):F.map(se=>ce(G,se))},j=(F,Y)=>({invalid:!!ce((Y||n).errors,F),isDirty:!!ce((Y||n).dirtyFields,F),error:ce((Y||n).errors,F),isValidating:!!ce(n.validatingFields,F),isTouched:!!ce((Y||n).touchedFields,F)}),O=F=>{F&&vi(F).forEach(Y=>Ve(n.errors,Y)),b.state.next({errors:F?n.errors:{}})},U=(F,Y,G)=>{const se=(ce(i,F,{_f:{}})._f||{}).ref,ne=ce(n.errors,F)||{},{ref:ee,message:ue,type:ge,...me}=ne;Oe(n.errors,F,{...me,...Y,ref:se}),b.state.next({name:F,errors:n.errors,isValid:!1}),G&&G.shouldFocus&&se&&se.focus&&se.focus()},I=(F,Y)=>wt(F)?b.state.subscribe({next:G=>"values"in G&&F(M(void 0,Y),G)}):M(F,Y,!0),W=F=>b.state.subscribe({next:Y=>{x5(F.name,Y.name,F.exact)&&y5(Y,F.formState||d,Ae,F.reRenderRoot)&&F.callback({values:{...o},...n,...Y,defaultValues:s})}}).unsubscribe,J=F=>(l.mount=!0,h={...h,...F.formState},W({...F,formState:h})),$=(F,Y={})=>{for(const G of F?vi(F):a.mount)a.mount.delete(G),a.array.delete(G),Y.keepValue||(Ve(i,G),Ve(o,G)),!Y.keepError&&Ve(n.errors,G),!Y.keepDirty&&Ve(n.dirtyFields,G),!Y.keepTouched&&Ve(n.touchedFields,G),!Y.keepIsValidating&&Ve(n.validatingFields,G),!t.shouldUnregister&&!Y.keepDefaultValue&&Ve(s,G);b.state.next({values:Ge(o)}),b.state.next({...n,...Y.keepDirty?{isDirty:A()}:{}}),!Y.keepIsValid&&S()},Q=({disabled:F,name:Y})=>{(Mt(F)&&l.mount||F||a.disabled.has(Y))&&(F?a.disabled.add(Y):a.disabled.delete(Y))},Z=(F,Y={})=>{let G=ce(i,F);const se=Mt(Y.disabled)||Mt(t.disabled);return Oe(i,F,{...G||{},_f:{...G&&G._f?G._f:{ref:{name:F}},name:F,mount:!0,...Y}}),a.mount.add(F),G?Q({disabled:Mt(Y.disabled)?Y.disabled:t.disabled,name:F}):y(F,!0,Y.value),{...se?{disabled:Y.disabled||t.disabled}:{},...t.progressive?{required:!!Y.required,min:ui(Y.min),max:ui(Y.max),minLength:ui(Y.minLength),maxLength:ui(Y.maxLength),pattern:ui(Y.pattern)}:{},name:F,onChange:H,onBlur:H,ref:ne=>{if(ne){Z(F,Y),G=ce(i,F);const ee=ze(ne.value)&&ne.querySelectorAll&&ne.querySelectorAll("input,select,textarea")[0]||ne,ue=f5(ee),ge=G._f.refs||[];if(ue?ge.find(me=>me===ee):ee===G._f.ref)return;Oe(i,F,{_f:{...G._f,...ue?{refs:[...ge.filter(Fr),ee,...Array.isArray(ce(s,F))?[{}]:[]],ref:{type:ee.type,name:F}}:{ref:ee}}}),y(F,!1,void 0,ee)}else G=ce(i,F,{}),G._f&&(G._f.mount=!1),(t.shouldUnregister||Y.shouldUnregister)&&!(o5(a.array,F)&&l.action)&&a.unMount.add(F)}}},K=()=>t.shouldFocusError&&bi(i,B,a.mount),te=F=>{Mt(F)&&(b.state.next({disabled:F}),bi(i,(Y,G)=>{const se=ce(i,G);se&&(Y.disabled=se._f.disabled||F,Array.isArray(se._f.refs)&&se._f.refs.forEach(ne=>{ne.disabled=se._f.disabled||F}))},0,!1))},re=(F,Y)=>async G=>{let se;G&&(G.preventDefault&&G.preventDefault(),G.persist&&G.persist());let ne=Ge(o);if(b.state.next({isSubmitting:!0}),t.resolver){const{errors:ee,values:ue}=await E();n.errors=ee,ne=Ge(ue)}else await N(i);if(a.disabled.size)for(const ee of a.disabled)Ve(ne,ee);if(Ve(n.errors,"root"),tt(n.errors)){b.state.next({errors:{}});try{await F(ne,G)}catch(ee){se=ee}}else Y&&await Y({...n.errors},G),K(),setTimeout(K);if(b.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:tt(n.errors)&&!se,submitCount:n.submitCount+1,errors:n.errors}),se)throw se},ae=(F,Y={})=>{ce(i,F)&&(ze(Y.defaultValue)?V(F,Ge(ce(s,F))):(V(F,Y.defaultValue),Oe(s,F,Ge(Y.defaultValue))),Y.keepTouched||Ve(n.touchedFields,F),Y.keepDirty||(Ve(n.dirtyFields,F),n.isDirty=Y.defaultValue?A(F,Ge(ce(s,F))):A()),Y.keepError||(Ve(n.errors,F),d.isValid&&S()),b.state.next({...n}))},ie=(F,Y={})=>{const G=F?Ge(F):s,se=Ge(G),ne=tt(F),ee=ne?s:se;if(Y.keepDefaultValues||(s=G),!Y.keepValues){if(Y.keepDirtyValues){const ue=new Set([...a.mount,...Object.keys(Dn(s,o))]);for(const ge of Array.from(ue))ce(n.dirtyFields,ge)?Oe(ee,ge,ce(o,ge)):V(ge,ce(ee,ge))}else{if(Xl&&ze(F))for(const ue of a.mount){const ge=ce(i,ue);if(ge&&ge._f){const me=Array.isArray(ge._f.refs)?ge._f.refs[0]:ge._f.ref;if(Ts(me)){const _e=me.closest("form");if(_e){_e.reset();break}}}}if(Y.keepFieldsRef)for(const ue of a.mount)V(ue,ce(ee,ue));else i={}}o=t.shouldUnregister?Y.keepDefaultValues?Ge(s):{}:Ge(ee),b.array.next({values:{...ee}}),b.state.next({values:{...ee}})}a={mount:Y.keepDirtyValues?a.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},l.mount=!d.isValid||!!Y.keepIsValid||!!Y.keepDirtyValues||!t.shouldUnregister&&!tt(ee),l.watch=!!t.shouldUnregister,l.action=!1,Y.keepErrors||(n.errors={}),b.state.next({submitCount:Y.keepSubmitCount?n.submitCount:0,isDirty:ne?!1:Y.keepDirty?n.isDirty:!!(Y.keepDefaultValues&&!tn(F,s)),isSubmitted:Y.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:ne?{}:Y.keepDirtyValues?Y.keepDefaultValues&&o?Dn(s,o):n.dirtyFields:Y.keepDefaultValues&&F?Dn(s,F):Y.keepDirty?n.dirtyFields:{},touchedFields:Y.keepTouched?n.touchedFields:{},errors:Y.keepErrors?n.errors:{},isSubmitSuccessful:Y.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:s})},oe=(F,Y)=>ie(wt(F)?F(o):F,Y),Se=(F,Y={})=>{const G=ce(i,F),se=G&&G._f;if(se){const ne=se.refs?se.refs[0]:se.ref;ne.focus&&(ne.focus(),Y.shouldSelect&&wt(ne.select)&&ne.select())}},Ae=F=>{n={...n,...F}},Te={control:{register:Z,unregister:$,getFieldState:j,handleSubmit:re,setError:U,_subscribe:W,_runSchema:E,_focusError:K,_getWatch:M,_getDirty:A,_setValid:S,_setFieldArray:u,_setDisabledField:Q,_setErrors:v,_getFieldArray:D,_reset:ie,_resetDefaultValues:()=>wt(t.defaultValues)&&t.defaultValues().then(F=>{oe(F,t.resetOptions),b.state.next({isLoading:!1})}),_removeUnmounted:k,_disableForm:te,_subjects:b,_proxyFormState:d,get _fields(){return i},get _formValues(){return o},get _state(){return l},set _state(F){l=F},get _defaultValues(){return s},get _names(){return a},set _names(F){a=F},get _formState(){return n},get _options(){return t},set _options(F){t={...t,...F}}},subscribe:J,trigger:L,register:Z,handleSubmit:re,watch:I,setValue:V,getValues:P,reset:oe,resetField:ae,clearErrors:O,unregister:$,setError:U,setFocus:Se,getFieldState:j};return{...Te,formControl:Te}}function N5(e={}){const t=X.useRef(void 0),n=X.useRef(void 0),[i,s]=X.useState({isDirty:!1,isValidating:!1,isLoading:wt(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:wt(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:i},e.defaultValues&&!wt(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:l,...a}=E5(e);t.current={...a,formState:i}}const o=t.current.control;return o._options=e,u5(()=>{const l=o._subscribe({formState:o._proxyFormState,callback:()=>s({...o._formState}),reRenderRoot:!0});return s(a=>({...a,isReady:!0})),o._formState.isReady=!0,l},[o]),X.useEffect(()=>o._disableForm(e.disabled),[o,e.disabled]),X.useEffect(()=>{e.mode&&(o._options.mode=e.mode),e.reValidateMode&&(o._options.reValidateMode=e.reValidateMode)},[o,e.mode,e.reValidateMode]),X.useEffect(()=>{e.errors&&(o._setErrors(e.errors),o._focusError())},[o,e.errors]),X.useEffect(()=>{e.shouldUnregister&&o._subjects.state.next({values:o._getWatch()})},[o,e.shouldUnregister]),X.useEffect(()=>{if(o._proxyFormState.isDirty){const l=o._getDirty();l!==i.isDirty&&o._subjects.state.next({isDirty:l})}},[o,i.isDirty]),X.useEffect(()=>{var l;e.values&&!tn(e.values,n.current)?(o._reset(e.values,{keepFieldsRef:!0,...o._options.resetOptions}),!((l=o._options.resetOptions)===null||l===void 0)&&l.keepIsValid||o._setValid(),n.current=e.values,s(a=>({...a}))):o._resetDefaultValues()},[o,e.values]),X.useEffect(()=>{o._state.mount||(o._setValid(),o._state.mount=!0),o._state.watch&&(o._state.watch=!1,o._subjects.state.next({...o._formState})),o._removeUnmounted()}),t.current.formState=c5(i,o),t.current}const _c=(e,t,n)=>{if(e&&"reportValidity"in e){const i=ce(n,t);e.setCustomValidity(i&&i.message||""),e.reportValidity()}},_m=(e,t)=>{for(const n in t.fields){const i=t.fields[n];i&&i.ref&&"reportValidity"in i.ref?_c(i.ref,n,e):i.refs&&i.refs.forEach(s=>_c(s,n,e))}},T5=(e,t)=>{t.shouldUseNativeValidation&&_m(e,t);const n={};for(const i in e){const s=ce(t.fields,i),o=Object.assign(e[i]||{},{ref:s&&s.ref});if(k5(t.names||Object.keys(e),i)){const l=Object.assign({},ce(n,i));Oe(l,"root",o),Oe(n,i,l)}else Oe(n,i,o)}return n},k5=(e,t)=>e.some(n=>n.startsWith(t+"."));var M5=function(e,t){for(var n={};e.length;){var i=e[0],s=i.code,o=i.message,l=i.path.join(".");if(!n[l])if("unionErrors"in i){var a=i.unionErrors[0].errors[0];n[l]={message:a.message,type:a.code}}else n[l]={message:o,type:s};if("unionErrors"in i&&i.unionErrors.forEach(function(d){return d.errors.forEach(function(h){return e.push(h)})}),t){var r=n[l].types,f=r&&r[i.code];n[l]=pm(l,t,n,s,f?[].concat(f,i.message):i.message)}e.shift()}return n},D5=function(e,t,n){return n===void 0&&(n={}),function(i,s,o){try{return Promise.resolve(function(l,a){try{var r=Promise.resolve(e[n.mode==="sync"?"parse":"parseAsync"](i,t)).then(function(f){return o.shouldUseNativeValidation&&_m({},o),{errors:{},values:n.raw?i:f}})}catch(f){return a(f)}return r&&r.then?r.then(void 0,a):r}(0,function(l){if(function(a){return Array.isArray(a==null?void 0:a.errors)}(l))return{values:{},errors:T5(M5(l.errors,!o.shouldUseNativeValidation&&o.criteriaMode==="all"),o)};throw l}))}catch(l){return Promise.reject(l)}}};const wm=({useStore:e,fields:t=[],defaultValues:n={},validationSchema:i,children:s,onSubmit:o,onCancel:l,onBack:a,onBeforeSubmit:r,initialData:f=null,loading:d=!1,submitting:h=!1,title:b,description:w,submitLabel:C="Save",cancelLabel:S="Cancel",backLabel:c="Back",columns:u=1,showHeader:p=!0,showFooter:v=!0,showBack:y=!0,showCard:_=!0,listPath:x,icon:E,className:T,...N})=>{var Te;const k=it.useNavigate(),{id:A}=it.useParams(),M=!!A,D=e==null?void 0:e(),R=D==null?void 0:D.form,z=(D==null?void 0:D.loading)??!1,V=((Te=D==null?void 0:D.form)==null?void 0:Te.isSubmitting)??!1,H=(D==null?void 0:D.fetchAndPopulateForm)||(D==null?void 0:D.fetchById)||(D==null?void 0:D.fetchOne),B=D==null?void 0:D.create,L=D==null?void 0:D.update,P=D==null?void 0:D.resetForm,j=d||z,O=h||V;g.useEffect(()=>(M&&A&&H&&H(A),()=>{P==null||P()}),[A,M]);const U=()=>{a?a():k(x||-1)},I=()=>{l?l():U()},W=async F=>{var Y;(Y=F==null?void 0:F.preventDefault)==null||Y.call(F);try{let G=(R==null?void 0:R.values)||{};r&&(G=r(G)),M?await(L==null?void 0:L(A,G)):await(B==null?void 0:B(G)),U()}catch(G){console.error("Form submission error:",G)}};if(e&&s){const F=M?`Edit ${b}`:`Create ${b}`,Y=m.jsxs("form",{onSubmit:W,children:[s,v&&m.jsxs("div",{className:"flex items-center justify-end gap-2 mt-6 pt-4 border-t",children:[m.jsxs(xe,{type:"button",variant:"outline",onClick:I,disabled:O,children:[m.jsx(In,{className:"mr-2 h-4 w-4"}),S]}),m.jsx(xe,{type:"submit",disabled:O||j,children:O?m.jsxs(m.Fragment,{children:[m.jsx(gn,{className:"mr-2 h-4 w-4 animate-spin"}),"Saving..."]}):m.jsxs(m.Fragment,{children:[m.jsx(pa,{className:"mr-2 h-4 w-4"}),C]})})]})]});return _?m.jsxs(mt,{className:T,...N,children:[m.jsx(Fn,{children:m.jsxs("div",{className:"flex items-center gap-4",children:[y&&m.jsx(xe,{variant:"ghost",size:"icon",onClick:U,children:m.jsx(Wt,{className:"h-4 w-4"})}),E&&m.jsx("div",{className:"h-10 w-10 rounded-full bg-primary/10 flex items-center justify-center",children:m.jsx(E,{className:"h-5 w-5 text-primary"})}),m.jsxs("div",{children:[m.jsx(jn,{children:F}),w&&m.jsx(zn,{children:w})]})]})}),m.jsx(gt,{children:Y})]}):m.jsxs("div",{className:q("space-y-6",T),...N,children:[m.jsxs("div",{className:"flex items-center gap-4",children:[y&&m.jsx(xe,{variant:"ghost",size:"icon",onClick:U,children:m.jsx(Wt,{className:"h-4 w-4"})}),E&&m.jsx("div",{className:"h-10 w-10 rounded-full bg-primary/10 flex items-center justify-center",children:m.jsx(E,{className:"h-5 w-5 text-primary"})}),m.jsxs("div",{children:[m.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:F}),w&&m.jsx("p",{className:"text-muted-foreground",children:w})]})]}),Y]})}const J=N5({defaultValues:f||n,resolver:i?D5(i):void 0,mode:"onBlur"}),{handleSubmit:$,formState:{errors:Q,isDirty:Z,isValid:K},reset:te,watch:re,setValue:ae,control:ie}=J;g.useEffect(()=>{f&&te(f)},[f,te]);const oe=async F=>{try{await(o==null?void 0:o(F))}catch(Y){console.error("Form submission error:",Y)}},Se=F=>{var Fe;const{name:Y,type:G="text",label:se,placeholder:ne,description:ee,required:ue,disabled:ge,options:me=[],className:_e,...Me}=F,De=(Fe=Q[Y])==null?void 0:Fe.message,Ke=re(Y),Ue={label:se,placeholder:ne,description:ee,error:De,required:ue,disabled:ge||j||O,className:_e};switch(G){case"text":case"email":case"password":case"number":case"url":case"tel":return m.jsx(Ns,{...Ue,type:G,emitValue:!1,...J.register(Y),...Me});case"textarea":return m.jsx(Wl,{...Ue,emitValue:!1,...J.register(Y),...Me});case"select":return m.jsx($l,{...Ue,options:me,value:Ke,onChange:ft=>ae(Y,ft,{shouldValidate:!0}),...Me});case"search-select":return m.jsx(Ul,{...Ue,options:me,value:Ke,onChange:ft=>ae(Y,ft,{shouldValidate:!0}),...Me});case"switch":return m.jsx(Yl,{...Ue,checked:Ke,onCheckedChange:ft=>ae(Y,ft,{shouldValidate:!0}),...Me});case"section":const{title:qe,description:rt,icon:jt}=F;return m.jsx("div",{className:"col-span-full mb-4 mt-8",children:m.jsxs("div",{className:"flex items-center gap-3 mb-4 pb-2 border-b border-border/50",children:[jt&&m.jsx("div",{className:"flex-shrink-0 h-8 w-8 rounded-lg bg-primary/10 flex items-center justify-center",children:m.jsx(jt,{className:"h-4 w-4 text-primary"})}),m.jsxs("div",{className:"flex-1 min-w-0",children:[m.jsx("h3",{className:"text-lg font-semibold text-foreground tracking-tight",children:qe}),rt&&m.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:rt})]})]})},`section-${qe}`);case"custom":return F.render?F.render({form:J,field:F,error:De,value:Ke}):null;default:return m.jsx(Ns,{...Ue,type:"text",emitValue:!1,...J.register(Y),...Me})}},Ae=q("grid gap-4",u===1&&"grid-cols-1",u===2&&"grid-cols-1 md:grid-cols-2",u===3&&"grid-cols-1 md:grid-cols-2 lg:grid-cols-3",u===4&&"grid-cols-1 md:grid-cols-2 lg:grid-cols-4"),he=m.jsxs("form",{onSubmit:$(oe),children:[m.jsx("div",{className:Ae,children:t.map(F=>{if(F.hidden&&(typeof F.hidden=="function"?F.hidden(re()):F.hidden))return null;const Y=F.colSpan||1,G=q(Y===2&&"md:col-span-2",Y===3&&"md:col-span-2 lg:col-span-3",Y===4&&"md:col-span-2 lg:col-span-4",Y==="full"&&"col-span-full");return m.jsx("div",{className:G,children:Se(F)},F.name||`section-${F.title}`)})}),v&&m.jsxs("div",{className:"flex items-center justify-end gap-2 mt-6 pt-4 border-t",children:[l&&m.jsxs(xe,{type:"button",variant:"outline",onClick:l,disabled:O,children:[m.jsx(In,{className:"mr-2 h-4 w-4"}),S]}),m.jsx(xe,{type:"submit",disabled:O||j,children:O?m.jsxs(m.Fragment,{children:[m.jsx(gn,{className:"mr-2 h-4 w-4 animate-spin"}),"Saving..."]}):m.jsxs(m.Fragment,{children:[m.jsx(pa,{className:"mr-2 h-4 w-4"}),C]})})]})]});return p&&(b||w||y)?m.jsxs(mt,{className:T,...N,children:[m.jsx(Fn,{children:m.jsxs("div",{className:"flex items-center gap-4",children:[y&&a&&m.jsx(xe,{variant:"ghost",size:"icon",onClick:a,children:m.jsx(Wt,{className:"h-4 w-4"})}),m.jsxs("div",{children:[b&&m.jsx(jn,{children:b}),w&&m.jsx(zn,{children:w})]})]})}),m.jsx(gt,{children:he})]}):m.jsx("div",{className:T,...N,children:he})};wm.displayName="CrudForm";const Cm=({useStore:e,children:t,data:n=null,loading:i=!1,error:s=null,fields:o=[],onBack:l,onEdit:a,onDelete:r,listPath:f,editPath:d,title:h,description:b,editLabel:w="Edit",deleteLabel:C="Delete",backLabel:S="Back",itemName:c="item",getItemName:u,showEditButton:p=!0,showDeleteButton:v=!0,showHeader:y=!0,showMeta:_=!0,showCard:x=!0,columns:E=2,icon:T,className:N,...k})=>{const A=it.useNavigate(),{id:M}=it.useParams(),D=e==null?void 0:e(),R=D==null?void 0:D.currentItem,z=(D==null?void 0:D.loading)??!1,V=D==null?void 0:D.error,H=(D==null?void 0:D.fetchById)||(D==null?void 0:D.fetchOne),B=D==null?void 0:D.delete,L=n||R,P=i||z,j=s||V,[O,U]=g.useState(!1),[I,W]=g.useState(!1);g.useEffect(()=>{M&&H&&H(M)},[M]);const J=()=>{l?l():A(f||-1)},$=()=>{a?a(L):d&&M&&A(`${d}/${M}/edit`)},Q=async()=>{W(!0);try{r?await r(L):B&&M&&(await B(M),J()),U(!1)}catch(ie){console.error("Delete error:",ie)}finally{W(!1)}},Z=L&&u?u(L):(L==null?void 0:L.name)||(L==null?void 0:L.title)||c,K=(ie,oe)=>{if(ie.render)return L?ie.render(oe,L):m.jsx("span",{className:"text-muted-foreground",children:"-"});if(oe==null||oe==="")return m.jsx("span",{className:"text-muted-foreground",children:"-"});switch(ie.type){case"badge":return m.jsx(di,{variant:ie.variant||"default",children:ie.format?ie.format(oe):String(oe)});case"status":const Se={active:"success",inactive:"secondary",pending:"warning",error:"destructive",...ie.statusColors};return m.jsx(di,{variant:Se[oe==null?void 0:oe.toLowerCase()]||"default",children:ie.format?ie.format(oe):String(oe)});case"boolean":const Ae=!!oe;return m.jsx(di,{variant:Ae?"success":"secondary",children:Ae?ie.trueLabel||"Yes":ie.falseLabel||"No"});case"date":return uo(oe);case"datetime":return us(oe);case"currency":return new Intl.NumberFormat("en-US",{style:"currency",currency:ie.currency||"USD"}).format(oe);case"number":return ie.format?ie.format(oe):new Intl.NumberFormat().format(oe);case"list":return Array.isArray(oe)?m.jsx("div",{className:"flex flex-wrap gap-1",children:oe.map((he,Te)=>m.jsx(di,{variant:"outline",children:ie.getItemLabel?ie.getItemLabel(he):String(he)},Te))}):String(oe);case"link":return m.jsx("a",{href:oe,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:ie.linkText||oe});case"email":return m.jsx("a",{href:`mailto:${oe}`,className:"text-primary hover:underline",children:oe});case"phone":return m.jsx("a",{href:`tel:${oe}`,className:"text-primary hover:underline",children:oe});case"image":return m.jsx("img",{src:oe,alt:ie.label||"Image",className:q("rounded-md object-cover",ie.imageClassName||"h-20 w-20")});case"html":return m.jsx("div",{className:"prose prose-sm max-w-none",dangerouslySetInnerHTML:{__html:oe}});default:return ie.format?ie.format(oe):String(oe)}},te=ie=>{if(L)return ie.accessor?typeof ie.accessor=="function"?ie.accessor(L):L[ie.accessor]:L[ie.name]},re=q("grid gap-6",E===1&&"grid-cols-1",E===2&&"grid-cols-1 md:grid-cols-2",E===3&&"grid-cols-1 md:grid-cols-2 lg:grid-cols-3"),ae=m.jsxs(m.Fragment,{children:[m.jsx("div",{className:re,children:o.map(ie=>{if(ie.hidden&&(typeof ie.hidden=="function"?L&&ie.hidden(L):ie.hidden))return null;const oe=te(ie),Se=ie.colSpan||1,Ae=q(Se===2&&"md:col-span-2",Se===3&&"lg:col-span-3",Se==="full"&&"col-span-full");return m.jsxs("div",{className:Ae,children:[m.jsxs("dt",{className:"text-sm font-medium text-muted-foreground mb-1",children:[ie.icon&&m.jsx(ie.icon,{className:"inline-block mr-2 h-4 w-4"}),ie.label]}),m.jsx("dd",{className:"text-sm",children:K(ie,oe)})]},ie.name||ie.accessor)})}),_&&L&&(L.created_at||L.updated_at||L.createdAt||L.updatedAt)&&m.jsxs(m.Fragment,{children:[m.jsx(Oi,{className:"my-6"}),m.jsxs("div",{className:"flex flex-wrap gap-6 text-sm text-muted-foreground",children:[(L.created_at||L.createdAt)&&(L.created_at||L.createdAt)!==""&&m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx(ms,{className:"h-4 w-4"}),m.jsxs("span",{children:["Created: ",us(L.created_at||L.createdAt)]})]}),(L.updated_at||L.updatedAt)&&(L.updated_at||L.updatedAt)!==""&&m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx(ms,{className:"h-4 w-4"}),m.jsxs("span",{children:["Updated: ",us(L.updated_at||L.updatedAt)]})]}),(L.id||L._id)&&m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx(Yg,{className:"h-4 w-4"}),m.jsxs("span",{children:["ID: ",L.id||L._id]})]})]})]})]});return e&&t&&typeof t=="function"?P?m.jsx("div",{className:q("space-y-6",N),children:m.jsx(mt,{children:m.jsx(gt,{className:"py-12",children:m.jsx(Gn,{text:`Loading ${c}...`})})})}):j?m.jsx("div",{className:q("space-y-6",N),children:m.jsx(mt,{children:m.jsxs(gt,{className:"py-12 text-center",children:[m.jsx("p",{className:"text-destructive",children:(j==null?void 0:j.message)||"An error occurred"}),m.jsxs(xe,{variant:"outline",onClick:J,className:"mt-4",children:[m.jsx(Wt,{className:"mr-2 h-4 w-4"}),S]})]})})}):L?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:q("space-y-6",N),...k,children:[y&&m.jsxs("div",{className:"flex items-center justify-between",children:[m.jsxs("div",{className:"flex items-center gap-4",children:[m.jsx(xe,{variant:"ghost",size:"icon",onClick:J,children:m.jsx(Wt,{className:"h-4 w-4"})}),T&&m.jsx("div",{className:"h-10 w-10 rounded-full bg-primary/10 flex items-center justify-center",children:m.jsx(T,{className:"h-5 w-5 text-primary"})}),m.jsxs("div",{children:[m.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:h}),b&&m.jsx("p",{className:"text-muted-foreground",children:b})]})]}),m.jsxs("div",{className:"flex items-center gap-2",children:[(a||d)&&p&&m.jsxs(xe,{variant:"outline",onClick:$,children:[m.jsx(zr,{className:"mr-2 h-4 w-4"}),w]}),(r||B)&&v&&m.jsxs(xe,{variant:"destructive",onClick:()=>U(!0),children:[m.jsx(Hr,{className:"mr-2 h-4 w-4"}),C]})]})]}),t(L)]}),m.jsx(Mi,{open:O,onOpenChange:U,onConfirm:Q,itemName:Z,loading:I})]}):m.jsx("div",{className:q("space-y-6",N),children:m.jsx(mt,{children:m.jsxs(gt,{className:"py-12 text-center",children:[m.jsxs("p",{className:"text-muted-foreground",children:["No ",c," found"]}),m.jsxs(xe,{variant:"outline",onClick:J,className:"mt-4",children:[m.jsx(Wt,{className:"mr-2 h-4 w-4"}),S]})]})})}):P?m.jsx(mt,{className:N,children:m.jsx(gt,{className:"py-12",children:m.jsx(Gn,{text:`Loading ${c}...`})})}):j?m.jsx(mt,{className:N,children:m.jsxs(gt,{className:"py-12 text-center",children:[m.jsx("p",{className:"text-destructive",children:(j==null?void 0:j.message)||"An error occurred"}),m.jsxs(xe,{variant:"outline",onClick:J,className:"mt-4",children:[m.jsx(Wt,{className:"mr-2 h-4 w-4"}),S]})]})}):L?m.jsxs(m.Fragment,{children:[m.jsxs(mt,{className:N,...k,children:[y&&m.jsxs(Fn,{className:"flex flex-row items-center justify-between space-y-0 pb-4",children:[m.jsxs("div",{className:"flex items-center gap-4",children:[m.jsx(xe,{variant:"ghost",size:"icon",onClick:J,children:m.jsx(Wt,{className:"h-4 w-4"})}),m.jsxs("div",{children:[h&&m.jsx(jn,{children:h}),b&&m.jsx(zn,{children:b})]})]}),m.jsxs("div",{className:"flex items-center gap-2",children:[(a||d)&&p&&m.jsxs(xe,{variant:"outline",onClick:$,children:[m.jsx(zr,{className:"mr-2 h-4 w-4"}),w]}),(r||B)&&v&&m.jsxs(xe,{variant:"destructive",onClick:()=>U(!0),children:[m.jsx(Hr,{className:"mr-2 h-4 w-4"}),C]})]})]}),m.jsx(gt,{children:ae})]}),m.jsx(Mi,{open:O,onOpenChange:U,onConfirm:Q,itemName:Z,loading:I})]}):m.jsx(mt,{className:N,children:m.jsxs(gt,{className:"py-12 text-center",children:[m.jsxs("p",{className:"text-muted-foreground",children:["No ",c," found"]}),m.jsxs(xe,{variant:"outline",onClick:J,className:"mt-4",children:[m.jsx(Wt,{className:"mr-2 h-4 w-4"}),S]})]})})};Cm.displayName="CrudDetail";const Sm=e=>{const{name:t="crud",apiClient:n,endpoint:i,transformResponse:s=h=>h,transformRequest:o=h=>h,initialState:l={},extraActions:a={},idField:r="id",listKey:f="results",countKey:d="count"}=e;if(!n)throw new Error("createCrudStore: apiClient is required");if(!i)throw new Error("createCrudStore: endpoint is required");return h=>h((b,w)=>({items:[],item:null,loading:!1,submitting:!1,error:null,page:1,pageSize:10,totalItems:0,totalPages:0,sortColumn:null,sortDirection:null,search:"",filters:{},selectedIds:[],...l,setPage:C=>b({page:C}),setPageSize:C=>b({pageSize:C,page:1}),setSearch:C=>b({search:C,page:1}),setFilters:C=>b({filters:C,page:1}),setSort:(C,S)=>b({sortColumn:C,sortDirection:S}),setSelectedIds:C=>b({selectedIds:C}),clearSelection:()=>b({selectedIds:[]}),clearError:()=>b({error:null}),reset:()=>b({items:[],item:null,loading:!1,submitting:!1,error:null,page:1,search:"",filters:{},selectedIds:[]}),fetchList:async(C={})=>{var c,u,p,v;const S=w();b({loading:!0,error:null});try{const y={page:S.page,page_size:S.pageSize,search:S.search||void 0,ordering:S.sortColumn?`${S.sortDirection==="desc"?"-":""}${S.sortColumn}`:void 0,...S.filters,...C};Object.keys(y).forEach(k=>{(y[k]===void 0||y[k]==="")&&delete y[k]});const x=(await n.get(i,{params:y})).data,E=x[f]||x.data||(Array.isArray(x)?x:[]),T=x[d]||x.total||E.length,N=Math.ceil(T/S.pageSize);return b({items:E.map(s),totalItems:T,totalPages:N,loading:!1}),{items:E,totalItems:T,totalPages:N}}catch(y){const _=((u=(c=y.response)==null?void 0:c.data)==null?void 0:u.message)||((v=(p=y.response)==null?void 0:p.data)==null?void 0:v.detail)||y.message||"Failed to fetch items";throw b({error:{message:_,original:y},loading:!1}),y}},fetchOne:async C=>{var S,c,u,p;b({loading:!0,error:null,item:null});try{const v=await n.get(`${i}/${C}/`),y=s(v.data);return b({item:y,loading:!1}),y}catch(v){const y=((c=(S=v.response)==null?void 0:S.data)==null?void 0:c.message)||((p=(u=v.response)==null?void 0:u.data)==null?void 0:p.detail)||v.message||"Failed to fetch item";throw b({error:{message:y,original:v},loading:!1}),v}},create:async C=>{var S,c,u,p,v;b({submitting:!0,error:null});try{const y=o(C),_=await n.post(`${i}/`,y),x=s(_.data);return b(E=>({items:[x,...E.items],totalItems:E.totalItems+1,submitting:!1})),x}catch(y){const _=((c=(S=y.response)==null?void 0:S.data)==null?void 0:c.message)||((p=(u=y.response)==null?void 0:u.data)==null?void 0:p.detail)||y.message||"Failed to create item",x=((v=y.response)==null?void 0:v.data)||{};throw b({error:{message:_,fieldErrors:x,original:y},submitting:!1}),y}},update:async(C,S)=>{var c,u,p,v,y;b({submitting:!0,error:null});try{const _=o(S),x=await n.patch(`${i}/${C}/`,_),E=s(x.data);return b(T=>{var N;return{items:T.items.map(k=>k[r]===C?E:k),item:((N=T.item)==null?void 0:N[r])===C?E:T.item,submitting:!1}}),E}catch(_){const x=((u=(c=_.response)==null?void 0:c.data)==null?void 0:u.message)||((v=(p=_.response)==null?void 0:p.data)==null?void 0:v.detail)||_.message||"Failed to update item",E=((y=_.response)==null?void 0:y.data)||{};throw b({error:{message:x,fieldErrors:E,original:_},submitting:!1}),_}},delete:async C=>{var S,c,u,p;b({submitting:!0,error:null});try{return await n.delete(`${i}/${C}/`),b(v=>{var y;return{items:v.items.filter(_=>_[r]!==C),totalItems:v.totalItems-1,item:((y=v.item)==null?void 0:y[r])===C?null:v.item,selectedIds:v.selectedIds.filter(_=>_!==C),submitting:!1}}),!0}catch(v){const y=((c=(S=v.response)==null?void 0:S.data)==null?void 0:c.message)||((p=(u=v.response)==null?void 0:u.data)==null?void 0:p.detail)||v.message||"Failed to delete item";throw b({error:{message:y,original:v},submitting:!1}),v}},bulkDelete:async C=>{var S,c,u,p;b({submitting:!0,error:null});try{return await Promise.all(C.map(v=>n.delete(`${i}/${v}/`))),b(v=>({items:v.items.filter(y=>!C.includes(y[r])),totalItems:v.totalItems-C.length,selectedIds:[],submitting:!1})),!0}catch(v){const y=((c=(S=v.response)==null?void 0:S.data)==null?void 0:c.message)||((p=(u=v.response)==null?void 0:u.data)==null?void 0:p.detail)||v.message||"Failed to delete items";throw b({error:{message:y,original:v},submitting:!1}),v}},replace:async(C,S)=>{var c,u,p,v,y;b({submitting:!0,error:null});try{const _=o(S),x=await n.put(`${i}/${C}/`,_),E=s(x.data);return b(T=>{var N;return{items:T.items.map(k=>k[r]===C?E:k),item:((N=T.item)==null?void 0:N[r])===C?E:T.item,submitting:!1}}),E}catch(_){const x=((u=(c=_.response)==null?void 0:c.data)==null?void 0:u.message)||((v=(p=_.response)==null?void 0:p.data)==null?void 0:v.detail)||_.message||"Failed to update item",E=((y=_.response)==null?void 0:y.data)||{};throw b({error:{message:x,fieldErrors:E,original:_},submitting:!1}),_}},...a}))},A5=e=>{const{create:t}=require("zustand");return t(Sm(e))};function R5({brandName:e="Your Brand",brandLogo:t,brandDescription:n="Welcome back",quote:i,quoteAuthor:s,copyright:o,leftPanelClassName:l,rightPanelClassName:a,leftPanelContent:r,rightPanelContent:f,showLeftPanel:d=!0,children:h}){const b=new Date().getFullYear(),w=o||`© ${b} ${e}. All rights reserved.`,C=m.jsxs("div",{className:"flex flex-col h-full p-8 lg:p-12 text-white",children:[m.jsxs("div",{className:"flex items-center gap-3",children:[t||m.jsx("div",{className:"h-10 w-10 rounded-lg bg-white/20 flex items-center justify-center",children:m.jsx("span",{className:"text-white font-bold text-xl",children:e.charAt(0)})}),m.jsx("span",{className:"text-xl font-semibold",children:e})]}),m.jsxs("div",{className:"flex-1 flex items-center justify-center",children:[i&&m.jsxs("div",{className:"max-w-md",children:[m.jsxs("blockquote",{className:"text-2xl lg:text-3xl font-light leading-relaxed",children:['"',i,'"']}),s&&m.jsxs("p",{className:"mt-4 text-white/70",children:["— ",s]})]}),!i&&n&&m.jsx("div",{className:"text-center",children:m.jsx("p",{className:"text-2xl lg:text-3xl font-light",children:n})})]}),m.jsx("div",{className:"text-sm text-white/60",children:w})]});return m.jsxs("div",{className:"min-h-screen flex",children:[d&&m.jsx("div",{className:q("hidden lg:flex lg:w-1/2 bg-gray-900",l),children:r||C}),m.jsx("div",{className:q("w-full flex items-center justify-center p-8",d?"lg:w-1/2":"",a),children:m.jsx("div",{className:"w-full max-w-md",children:f||h||m.jsx(it.Outlet,{})})})]})}function L5({onSubmit:e,isLoading:t=!1,error:n,title:i="Login",subtitle:s="Enter your email below to login to your account",emailLabel:o="Email",emailPlaceholder:l="m@example.com",passwordLabel:a="Password",rememberMeLabel:r="Remember me",forgotPasswordText:f="Forgot your password?",forgotPasswordPath:d="/forgot-password",submitButtonText:h="Login",signUpText:b="Don't have an account?",signUpLinkText:w="Sign up",signUpPath:C="/register",showRememberMe:S=!0,showForgotPassword:c=!0,showSignUp:u=!0,logo:p,className:v,children:y}){const[_,x]=X.useState(""),[E,T]=X.useState(""),[N,k]=X.useState(!1),[A,M]=X.useState(!1),D=async R=>{R.preventDefault(),e&&await e({email:_,password:E,rememberMe:N})};return m.jsxs("div",{className:q("space-y-6",v),children:[p&&m.jsx("div",{className:"flex justify-center",children:p}),m.jsxs("div",{className:"space-y-2 text-center",children:[m.jsx("h1",{className:"text-2xl font-semibold tracking-tight",children:i}),s&&m.jsx("p",{className:"text-sm text-muted-foreground",children:s})]}),n&&m.jsx("div",{className:"p-3 text-sm text-destructive bg-destructive/10 rounded-md",children:n}),m.jsxs("form",{onSubmit:D,className:"space-y-4",children:[m.jsxs("div",{className:"space-y-2",children:[m.jsx(Yt,{htmlFor:"email",children:o}),m.jsx(Hn,{id:"email",type:"email",placeholder:l,value:_,onChange:R=>x(R.target.value),required:!0,autoComplete:"email"})]}),m.jsxs("div",{className:"space-y-2",children:[m.jsx("div",{className:"flex items-center justify-between",children:m.jsx(Yt,{htmlFor:"password",children:a})}),m.jsxs("div",{className:"relative",children:[m.jsx(Hn,{id:"password",type:A?"text":"password",value:E,onChange:R=>T(R.target.value),required:!0,placeholder:"Enter you password",autoComplete:"current-password",className:"pr-10"}),m.jsx("button",{type:"button",onClick:()=>M(!A),className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground transition-colors","aria-label":A?"Hide password":"Show password",children:A?m.jsx(Ic,{className:"h-4 w-4"}):m.jsx(Ug,{className:"h-4 w-4"})})]})]}),S&&m.jsxs("div",{className:"flex items-center space-x-2",children:[m.jsx(Vn,{id:"remember",checked:N,onCheckedChange:k}),m.jsx(Yt,{htmlFor:"remember",className:"text-sm font-normal cursor-pointer",children:r})]}),y,m.jsx(xe,{type:"submit",className:"w-full",disabled:t,children:t?"Signing in...":h})]})]})}const Em=X.createContext(null);function mr(){const e=X.useContext(Em);if(!e)throw new Error("useSidebarContext must be used within a SidebarProvider");return e}function Nm({defaultOpen:e=!1,defaultCollapsed:t=!1,children:n}){const[i,s]=X.useState(e),[o,l]=X.useState(t),a=X.useCallback(()=>{s(b=>!b)},[]),r=X.useCallback(b=>{s(b)},[]),f=X.useCallback(()=>{l(b=>!b)},[]),d=X.useCallback(b=>{l(b)},[]),h={isOpen:i,isCollapsed:o,toggle:a,setOpen:r,toggleCollapse:f,setCollapsed:d};return m.jsx(Em.Provider,{value:h,children:n})}function Tm({items:e=[],brandName:t="Brand",brandLogo:n,brandPath:i="/dashboard",user:s,onLogout:o,userMenuItems:l=[],showUserProfile:a=!0,className:r,collapsedWidth:f="w-16",expandedWidth:d="w-60",renderItem:h,headerSlot:b,footerSlot:w}){var N,k;const{isOpen:C,isCollapsed:S,setOpen:c,toggleCollapse:u}=mr(),p=it.useLocation(),[v,y]=X.useState([]),_=A=>{y(M=>M.includes(A)?M.filter(D=>D!==A):[...M,A])},x=(A,M=!1)=>{if(A.title)return m.jsxs("div",{className:"mt-6",children:[!S&&m.jsx("h3",{className:"px-3 text-xs font-medium text-sidebar-foreground/50 uppercase tracking-wider mb-2",children:A.title}),S&&m.jsx(Oi,{className:"my-3 bg-sidebar-border"})]},A.title);if(h)return h(A,{isCollapsed:S,isSubItem:M,location:p});const D=A.icon,R=A.children&&A.children.length>0,z=v.includes(A.label),V=A.path&&(p.pathname===A.path||p.pathname.startsWith(A.path+"/")),H=R&&A.children.some(B=>p.pathname===B.path||p.pathname.startsWith(B.path+"/"));return R?m.jsxs("div",{children:[m.jsxs("button",{onClick:()=>_(A.label),className:q("w-full flex items-center gap-3 px-3 py-2 rounded-lg transition-colors text-sm",H?"bg-sidebar-accent text-sidebar-accent-foreground":"hover:bg-sidebar-accent text-sidebar-foreground hover:text-sidebar-accent-foreground",S&&"justify-center px-2"),title:S?A.label:void 0,children:[D&&m.jsx(D,{className:"h-4 w-4 flex-shrink-0"}),!S&&m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"flex-1 text-left",children:A.label}),m.jsx(Ai,{className:q("h-4 w-4 transition-transform",z&&"rotate-180")})]})]}),!S&&z&&m.jsx("div",{className:"ml-4 mt-1 space-y-0.5",children:A.children.map(B=>x(B,!0))})]},A.label):m.jsxs(it.Link,{to:A.path,className:q("flex items-center gap-3 px-3 py-2 rounded-lg transition-colors",V?"bg-sidebar-primary text-sidebar-primary-foreground":"hover:bg-sidebar-accent text-sidebar-foreground hover:text-sidebar-accent-foreground",S&&"justify-center px-2","text-sm"),title:S?A.label:void 0,children:[D&&m.jsx(D,{className:"h-4 w-4 flex-shrink-0"}),!S&&m.jsx("span",{children:A.label})]},A.path||A.label)},E=m.jsxs("div",{className:"flex items-center justify-between h-14 px-3 border-b border-sidebar-border",children:[!S&&m.jsxs(it.Link,{to:i,className:"flex items-center gap-2",children:[n||m.jsx("div",{className:"h-7 w-7 rounded-md bg-sidebar-primary flex items-center justify-center",children:m.jsx("span",{className:"text-sidebar-primary-foreground font-semibold text-sm",children:t.charAt(0)})}),m.jsx("span",{className:"font-semibold text-sidebar-foreground",children:t})]}),S&&m.jsx(it.Link,{to:i,className:"mx-auto",children:n||m.jsx("div",{className:"h-7 w-7 rounded-md bg-sidebar-primary flex items-center justify-center",children:m.jsx("span",{className:"text-sidebar-primary-foreground font-semibold text-sm",children:t.charAt(0)})})}),m.jsx("button",{onClick:()=>c(!1),className:"p-1.5 rounded-lg hover:bg-sidebar-accent lg:hidden",children:m.jsx(In,{className:"h-4 w-4 text-sidebar-foreground"})}),m.jsx("button",{onClick:u,className:q("hidden lg:block p-1.5 rounded-lg hover:bg-sidebar-accent",S&&"mx-auto"),children:S?m.jsx(Ri,{className:"h-4 w-4 text-sidebar-foreground"}):m.jsx(fo,{className:"h-4 w-4 text-sidebar-foreground"})})]}),T=s&&a&&m.jsx("div",{className:"px-3 py-3 border-t border-sidebar-border",children:m.jsxs(kl,{children:[m.jsx(Ml,{asChild:!0,children:m.jsxs("button",{className:q("w-full flex items-center gap-3 px-2 py-2 rounded-lg transition-colors hover:bg-sidebar-accent",S&&"justify-center px-0"),children:[m.jsxs(Go,{className:"h-8 w-8",children:[m.jsx(Ko,{src:s.avatar,alt:s.firstName||"User"}),m.jsxs(Xo,{className:"bg-sidebar-primary text-sidebar-primary-foreground text-xs",children:[((N=s.firstName)==null?void 0:N[0])||"U",((k=s.lastName)==null?void 0:k[0])||""]})]}),!S&&m.jsxs("div",{className:"flex-1 text-left",children:[m.jsxs("p",{className:"text-sm font-medium text-sidebar-foreground truncate",children:[s.firstName," ",s.lastName]}),m.jsx("p",{className:"text-xs text-sidebar-foreground/50 truncate",children:s.email})]})]})}),m.jsxs(cr,{align:"end",className:"w-56",children:[m.jsx(ur,{children:"My Account"}),m.jsx(ki,{}),l.map((A,M)=>m.jsx(Ti,{asChild:!!A.path,onClick:A.onClick,children:A.path?m.jsx(it.Link,{to:A.path,children:A.label}):A.label},M)),l.length>0&&m.jsx(ki,{}),o&&m.jsx(Ti,{onClick:o,className:"text-destructive",children:"Log out"})]})]})});return m.jsxs(m.Fragment,{children:[C&&m.jsx("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>c(!1)}),m.jsxs("aside",{className:q("fixed top-0 left-0 z-50 h-full bg-sidebar border-r border-sidebar-border transition-all duration-300 ease-in-out flex flex-col",C?"translate-x-0":"-translate-x-full",S?f:d,"lg:translate-x-0",r),children:[b||E,m.jsx("nav",{className:"flex-1 overflow-y-auto px-3 py-3",children:m.jsx("div",{className:"space-y-1",children:e.map(A=>x(A))})}),w||T]})]})}function km({pathNames:e={},showBreadcrumbs:t=!0,showMenuButton:n=!0,className:i,leftSlot:s,rightSlot:o,breadcrumbsSlot:l,children:a}){const{toggle:r}=mr(),f=it.useLocation(),d={dashboard:"Dashboard",users:"Users",roles:"Roles",permissions:"Permissions",settings:"Settings",profile:"Profile",create:"Create",edit:"Edit",...e},h=()=>{const b=f.pathname.split("/").filter(Boolean);return m.jsx("nav",{className:"flex items-center gap-1 text-sm",children:b.map((w,C)=>{var v,y;const S="/"+b.slice(0,C+1).join("/"),c=C===b.length-1;let u;const p=/^\d+$/.test(w);return p&&((v=f.state)!=null&&v.breadcrumbName)?u=f.state.breadcrumbName:p&&((y=window.__breadcrumbNames)!=null&&y[w])?u=window.__breadcrumbNames[w]:u=d[w]||w,m.jsxs("div",{className:"flex items-center gap-1",children:[C>0&&m.jsx(Ri,{className:"h-4 w-4 text-muted-foreground"}),c?m.jsx("span",{className:"font-medium text-foreground",children:u}):m.jsx(it.Link,{to:S,className:"text-muted-foreground hover:text-foreground transition-colors",children:u})]},S)})})};return m.jsxs("header",{className:q("sticky top-0 z-30 bg-background",i),children:[m.jsxs("div",{className:"flex items-center h-14 px-4 md:px-6",children:[n&&m.jsx("button",{onClick:r,className:"p-2 -ml-2 rounded-lg hover:bg-muted lg:hidden",children:m.jsx(Zg,{className:"h-5 w-5"})}),m.jsx("div",{className:"flex items-center gap-4 flex-1",children:s||t&&(l||m.jsx(h,{}))}),o&&m.jsx("div",{className:"flex items-center gap-2",children:o}),a]}),m.jsx(Oi,{})]})}function O5({sidebarProps:e,headerProps:t,showHeader:n=!0,showSidebar:i=!0,contentClassName:s,mainSlot:o,children:l}){const{isCollapsed:a}=mr();return m.jsxs("div",{className:"min-h-screen bg-background",children:[i&&m.jsx(Tm,{...e}),m.jsxs("div",{className:q("transition-all duration-300 ease-in-out",i&&(a?"lg:ml-16":"lg:ml-60")),children:[n&&m.jsx(km,{...t}),m.jsx("main",{className:q("p-4 md:p-6",s),children:o||l||m.jsx(it.Outlet,{})})]})]})}function P5({sidebarProps:e={},headerProps:t={},defaultOpen:n=!1,defaultCollapsed:i=!1,showHeader:s=!0,showSidebar:o=!0,contentClassName:l,mainSlot:a,children:r}){return m.jsx(Nm,{defaultOpen:n,defaultCollapsed:i,children:m.jsx(O5,{sidebarProps:e,headerProps:t,showHeader:s,showSidebar:o,contentClassName:l,mainSlot:a,children:r})})}exports.Alert=Pl;exports.AlertDescription=Bl;exports.AlertDialog=n5;exports.AlertDialogAction=Qp;exports.AlertDialogCancel=Jp;exports.AlertDialogContent=Zp;exports.AlertDialogDescription=Xp;exports.AlertDialogFooter=Gp;exports.AlertDialogHeader=qp;exports.AlertDialogOverlay=Fl;exports.AlertDialogPortal=Yp;exports.AlertDialogTitle=Kp;exports.AlertDialogTrigger=i5;exports.AlertTitle=Il;exports.AlertWithIcon=Np;exports.AuthLayout=R5;exports.Avatar=Go;exports.AvatarFallback=Xo;exports.AvatarImage=Ko;exports.Badge=di;exports.Button=xe;exports.Calendar=dl;exports.Card=mt;exports.CardContent=gt;exports.CardDescription=zn;exports.CardFooter=Fc;exports.CardHeader=Fn;exports.CardTitle=jn;exports.Checkbox=Vn;exports.ConfirmModal=Gl;exports.CreateEmptyState=cm;exports.CrudDetail=Cm;exports.CrudForm=wm;exports.CrudList=fm;exports.DashboardLayout=P5;exports.DataTable=Kl;exports.DatePicker=fl;exports.DateRangePicker=hl;exports.DeleteConfirmModal=Mi;exports.Dialog=Yd;exports.DialogClose=u_;exports.DialogContent=Wo;exports.DialogDescription=Yo;exports.DialogFooter=Gs;exports.DialogHeader=$o;exports.DialogOverlay=Vo;exports.DialogPortal=Zd;exports.DialogTitle=Uo;exports.DialogTrigger=c_;exports.DropdownMenu=kl;exports.DropdownMenuCheckboxItem=ap;exports.DropdownMenuContent=cr;exports.DropdownMenuGroup=pE;exports.DropdownMenuItem=Ti;exports.DropdownMenuLabel=ur;exports.DropdownMenuPortal=mE;exports.DropdownMenuRadioGroup=vE;exports.DropdownMenuRadioItem=cp;exports.DropdownMenuSeparator=ki;exports.DropdownMenuShortcut=up;exports.DropdownMenuSub=gE;exports.DropdownMenuSubContent=lp;exports.DropdownMenuSubTrigger=op;exports.DropdownMenuTrigger=Ml;exports.EmptyState=ii;exports.ErrorState=um;exports.FormField=Kt;exports.FormModal=dm;exports.Header=km;exports.Input=Hn;exports.Label=Yt;exports.Loading=Gn;exports.LoadingButton=am;exports.LoadingOverlay=lm;exports.LoginPage=L5;exports.Modal=hr;exports.Pagination=Zl;exports.Popover=el;exports.PopoverContent=ir;exports.PopoverTrigger=tl;exports.QCheckbox=nm;exports.QDatePicker=sm;exports.QDateRangePicker=rm;exports.QForm=im;exports.QInput=Ns;exports.QRichTextEditor=om;exports.QSearchSelect=Ul;exports.QSelect=$l;exports.QSwitch=Yl;exports.QTabs=yf;exports.QTextarea=Wl;exports.RichTextEditor=yl;exports.ScrollArea=Sp;exports.ScrollBar=Ol;exports.SearchEmptyState=ql;exports.SearchSelect=Vl;exports.Select=Ao;exports.SelectContent=Us;exports.SelectGroup=Wx;exports.SelectItem=Ys;exports.SelectLabel=Cd;exports.SelectScrollDownButton=Oo;exports.SelectScrollUpButton=Lo;exports.SelectSeparator=Sd;exports.SelectTrigger=$s;exports.SelectValue=Ro;exports.Separator=Oi;exports.Sidebar=Tm;exports.SidebarProvider=Nm;exports.Skeleton=A1;exports.Switch=xo;exports.Table=jl;exports.TableBody=Hl;exports.TableCaption=tm;exports.TableCell=hn;exports.TableFooter=em;exports.TableHead=gi;exports.TableHeader=zl;exports.TableRow=An;exports.Tabs=V_;exports.TabsContent=bf;exports.TabsList=gf;exports.TabsTrigger=vf;exports.Textarea=po;exports.TimeStampFormat=yg;exports.Tooltip=Mw;exports.TooltipContent=jf;exports.TooltipProvider=kw;exports.TooltipTrigger=Dw;exports.alertVariants=Ep;exports.badgeVariants=jc;exports.buildQueryString=Mg;exports.buttonVariants=Bn;exports.capitalize=wg;exports.cn=q;exports.createCrudStore=Sm;exports.createStore=A5;exports.debounce=Lc;exports.deepClone=Sg;exports.formatCurrency=bg;exports.formatDate=uo;exports.formatDateTime=us;exports.formatRelativeTime=xg;exports.generateId=Tg;exports.getInitials=Ng;exports.isEmpty=Eg;exports.parseQueryString=kg;exports.slugify=Cg;exports.truncate=_g;exports.useSidebarContext=mr;
|
|
263
|
+
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return g.useEffect(()=>{var i;document.getElementById((i=e.current)==null?void 0:i.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},JE=kp,e5=Mp,t5=Dp,zp=Ap,Hp=Rp,Vp=Bp,Wp=jp,$p=Op,Up=Ip;const n5=JE,i5=e5,Yp=t5,Fl=g.forwardRef(({className:e,...t},n)=>m.jsx(zp,{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}));Fl.displayName=zp.displayName;const Zp=g.forwardRef(({className:e,...t},n)=>m.jsxs(Yp,{children:[m.jsx(Fl,{}),m.jsx(Hp,{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 md:w-full",e),...t})]}));Zp.displayName=Hp.displayName;const qp=({className:e,...t})=>m.jsx("div",{className:q("flex flex-col space-y-2 text-center sm:text-left",e),...t});qp.displayName="AlertDialogHeader";const Gp=({className:e,...t})=>m.jsx("div",{className:q("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Gp.displayName="AlertDialogFooter";const Kp=g.forwardRef(({className:e,...t},n)=>m.jsx($p,{ref:n,className:q("text-lg font-semibold",e),...t}));Kp.displayName=$p.displayName;const Xp=g.forwardRef(({className:e,...t},n)=>m.jsx(Up,{ref:n,className:q("text-sm text-muted-foreground",e),...t}));Xp.displayName=Up.displayName;const Qp=g.forwardRef(({className:e,...t},n)=>m.jsx(Vp,{ref:n,className:q(Bn(),e),...t}));Qp.displayName=Vp.displayName;const Jp=g.forwardRef(({className:e,...t},n)=>m.jsx(Wp,{ref:n,className:q(Bn({variant:"outline"}),"mt-2 sm:mt-0",e),...t}));Jp.displayName=Wp.displayName;const jl=g.forwardRef(({className:e,...t},n)=>m.jsx("div",{className:"relative w-full overflow-auto",children:m.jsx("table",{ref:n,className:q("w-full caption-bottom text-sm",e),...t})}));jl.displayName="Table";const zl=g.forwardRef(({className:e,...t},n)=>m.jsx("thead",{ref:n,className:q("[&_tr]:border-b",e),...t}));zl.displayName="TableHeader";const Hl=g.forwardRef(({className:e,...t},n)=>m.jsx("tbody",{ref:n,className:q("[&_tr:last-child]:border-0",e),...t}));Hl.displayName="TableBody";const em=g.forwardRef(({className:e,...t},n)=>m.jsx("tfoot",{ref:n,className:q("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",e),...t}));em.displayName="TableFooter";const An=g.forwardRef(({className:e,...t},n)=>m.jsx("tr",{ref:n,className:q("border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",e),...t}));An.displayName="TableRow";const gi=g.forwardRef(({className:e,...t},n)=>m.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}));gi.displayName="TableHead";const hn=g.forwardRef(({className:e,...t},n)=>m.jsx("td",{ref:n,className:q("p-4 align-middle [&:has([role=checkbox])]:pr-0",e),...t}));hn.displayName="TableCell";const tm=g.forwardRef(({className:e,...t},n)=>m.jsx("caption",{ref:n,className:q("mt-4 text-sm text-muted-foreground",e),...t}));tm.displayName="TableCaption";const Vl=g.forwardRef(({options:e=[],value:t,onChange:n,onSearch:i,placeholder:s="Select...",searchPlaceholder:o="Search...",loading:l=!1,disabled:a=!1,multiple:r=!1,clearable:f=!0,className:d,renderOption:h,renderValue:b,getOptionLabel:w=y=>(y==null?void 0:y.label)||(y==null?void 0:y.name)||String(y),getOptionValue:C=y=>(y==null?void 0:y.value)||(y==null?void 0:y.id)||y,filterOption:S,noOptionsMessage:c="No options found",loadingMessage:u="Loading...",...p},v)=>{const[y,_]=g.useState(!1),[x,E]=g.useState(""),[T,N]=g.useState(0),k=g.useRef(null),A=g.useRef(null),M=g.useMemo(()=>x?S?e.filter(j=>S(j,x)):e.filter(j=>w(j).toLowerCase().includes(x.toLowerCase())):e,[e,x,S,w]),D=g.useMemo(()=>Lc(j=>{i==null||i(j)},300),[i]),R=j=>{const O=j.target.value;E(O),N(0),D(O)},z=j=>{if(r){const O=Array.isArray(t)?t:[],U=C(j);O.some(W=>C(W)===U)?n==null||n(O.filter(W=>C(W)!==U)):n==null||n([...O,j])}else n==null||n(j),_(!1),E("")},V=j=>{j.stopPropagation(),n==null||n(r?[]:null),E("")},H=j=>{if(!y){(j.key==="Enter"||j.key===" "||j.key==="ArrowDown")&&(j.preventDefault(),_(!0));return}switch(j.key){case"ArrowDown":j.preventDefault(),N(O=>Math.min(O+1,M.length-1));break;case"ArrowUp":j.preventDefault(),N(O=>Math.max(O-1,0));break;case"Enter":j.preventDefault(),M[T]&&z(M[T]);break;case"Escape":j.preventDefault(),_(!1),E("");break}};g.useEffect(()=>{const j=O=>{k.current&&!k.current.contains(O.target)&&(_(!1),E(""))};return document.addEventListener("mousedown",j),()=>document.removeEventListener("mousedown",j)},[]);const B=j=>r?(Array.isArray(t)?t:[]).some(I=>(typeof I=="object"&&I!==null?C(I):I)===C(j)):t?(typeof t=="object"&&t!==null?C(t):t)===C(j):!1,L=r?Array.isArray(t)&&t.length>0:!!t,P=()=>{if(!L)return m.jsx("span",{className:"text-muted-foreground",children:s});if(b)return b(t);if(r){const O=Array.isArray(t)?t:[];if(O.length===1){const U=O[0],I=e.find(W=>{const J=C(W),$=typeof U=="object"&&U!==null?C(U):U;return J===$});return I?w(I):String(U)}return`${O.length} selected`}const j=e.find(O=>{const U=C(O),I=typeof t=="object"&&t!==null?C(t):t;return U===I});return j?w(j):String(t)};return m.jsxs("div",{ref:k,className:q("relative w-full",d),...p,children:[m.jsxs("button",{ref:v,type:"button",role:"combobox","aria-expanded":y,"aria-haspopup":"listbox",disabled:a,onClick:()=>_(!y),onKeyDown:H,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 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",y&&"ring-2 ring-ring ring-offset-2"),children:[m.jsx("span",{className:"flex-1 text-left truncate",children:P()}),m.jsxs("div",{className:"flex items-center gap-1",children:[f&&L&&!a&&m.jsx(In,{className:"h-4 w-4 opacity-50 hover:opacity-100 cursor-pointer",onClick:V}),m.jsx(Ai,{className:q("h-4 w-4 opacity-50 transition-transform",y&&"rotate-180")})]})]}),y&&m.jsxs("div",{className:"absolute z-50 mt-1 w-full rounded-md border bg-popover text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95",children:[m.jsxs("div",{className:"flex items-center border-b px-3",children:[m.jsx(ho,{className:"h-4 w-4 shrink-0 opacity-50"}),m.jsx("input",{ref:A,type:"text",value:x,onChange:R,placeholder:o,className:"flex h-10 w-full bg-transparent py-3 pl-2 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",autoFocus:!0}),l&&m.jsx(gn,{className:"h-4 w-4 animate-spin"})]}),m.jsx("div",{className:"max-h-60 overflow-auto p-1",children:l&&M.length===0?m.jsx("div",{className:"py-6 text-center text-sm text-muted-foreground",children:u}):M.length===0?m.jsx("div",{className:"py-6 text-center text-sm text-muted-foreground",children:c}):M.map((j,O)=>m.jsxs("div",{role:"option","aria-selected":B(j),onClick:()=>z(j),onMouseEnter:()=>N(O),className:q("relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none",T===O&&"bg-accent text-accent-foreground",B(j)&&"bg-accent/50"),children:[r&&m.jsx("div",{className:q("mr-2 flex h-4 w-4 items-center justify-center rounded-sm border border-primary",B(j)&&"bg-primary text-primary-foreground"),children:B(j)&&m.jsx(yi,{className:"h-3 w-3"})}),h?h(j):m.jsx("span",{className:"flex-1",children:w(j)}),!r&&B(j)&&m.jsx(yi,{className:"ml-auto h-4 w-4"})]},C(j)))})]})]})});Vl.displayName="SearchSelect";const Kt=g.forwardRef(({className:e,label:t,description:n,error:i,required:s,children:o,...l},a)=>{const r=g.useId();return m.jsxs("div",{ref:a,className:q("space-y-2",e),...l,children:[t&&m.jsxs(Yt,{htmlFor:r,className:q(i&&"text-destructive"),children:[t,s&&m.jsx("span",{className:"text-destructive ml-1",children:"*"})]}),g.Children.map(o,f=>g.isValidElement(f)?g.cloneElement(f,{id:r,"aria-invalid":!!i}):f),n&&!i&&m.jsx("p",{className:"text-sm text-muted-foreground",children:n}),i&&m.jsx("p",{className:"text-sm text-destructive",children:i})]})});Kt.displayName="FormField";const Ns=g.forwardRef(({label:e,description:t,error:n,required:i,className:s,inputClassName:o,onChange:l,emitValue:a=!0,...r},f)=>{const d=h=>{a?l==null||l(h.target.value):l==null||l(h)};return m.jsx(Kt,{label:e,description:t,error:n,required:i,className:s,children:m.jsx(Hn,{ref:f,className:q(n&&"border-destructive",o),onChange:d,...r})})});Ns.displayName="QInput";const Wl=g.forwardRef(({label:e,description:t,error:n,required:i,className:s,textareaClassName:o,onChange:l,emitValue:a=!0,...r},f)=>{const d=h=>{a?l==null||l(h.target.value):l==null||l(h)};return m.jsx(Kt,{label:e,description:t,error:n,required:i,className:s,children:m.jsx(po,{ref:f,className:q(n&&"border-destructive",o),onChange:d,...r})})});Wl.displayName="QTextarea";const $l=g.forwardRef(({label:e,description:t,error:n,required:i,options:s=[],placeholder:o="Select...",className:l,value:a,onChange:r,getOptionLabel:f,getOptionValue:d,optionLabel:h,optionValue:b,...w},C)=>{const S=f||(typeof h=="function"?h:h?u=>u==null?void 0:u[h]:u=>(u==null?void 0:u.label)||(u==null?void 0:u.name)||String(u)),c=d||(typeof b=="function"?b:b?u=>u==null?void 0:u[b]:u=>(u==null?void 0:u.value)||(u==null?void 0:u.id)||u);return m.jsx(Kt,{label:e,description:t,error:n,required:i,className:l,children:m.jsxs(Ao,{value:a,onValueChange:r,...w,children:[m.jsx($s,{ref:C,className:q(n&&"border-destructive"),children:m.jsx(Ro,{placeholder:o})}),m.jsx(Us,{children:s.map(u=>m.jsx(Ys,{value:String(c(u)),children:S(u)},c(u)))})]})})});$l.displayName="QSelect";const Ul=g.forwardRef(({label:e,description:t,error:n,required:i,className:s,value:o,onChange:l,options:a=[],getOptionLabel:r,getOptionValue:f,optionLabel:d,optionValue:h,onSearch:b,...w},C)=>{const S=r||(typeof d=="function"?d:d?v=>v==null?void 0:v[d]:v=>(v==null?void 0:v.label)||(v==null?void 0:v.name)||String(v)),c=f||(typeof h=="function"?h:h?v=>v==null?void 0:v[h]:v=>(v==null?void 0:v.value)||(v==null?void 0:v.id)||v),u=v=>{if(v==null)l==null||l(null);else{const y=c(v);l==null||l(y)}},p=g.useCallback(v=>{if(!v)return null;if(typeof v=="object"&&v!==null)return S(v);const y=a.find(_=>c(_)===v);return y?S(y):String(v)},[a,S,c]);return m.jsx(Kt,{label:e,description:t,error:n,required:i,className:s,children:m.jsx(Vl,{ref:C,value:o,onChange:u,options:a,getOptionLabel:S,getOptionValue:c,renderValue:p,onSearch:b,...w})})});Ul.displayName="QSearchSelect";const Yl=g.forwardRef(({label:e,description:t,error:n,className:i,checked:s,onCheckedChange:o,onChange:l,...a},r)=>{const f=g.useId(),d=h=>{l==null||l(h),o==null||o(h)};return m.jsxs("div",{className:q("flex items-center justify-between space-x-2",i),children:[m.jsxs("div",{className:"space-y-0.5",children:[e&&m.jsx(Yt,{htmlFor:f,className:"text-base",children:e}),t&&m.jsx("p",{className:"text-sm text-muted-foreground",children:t}),n&&m.jsx("p",{className:"text-sm text-destructive",children:n})]}),m.jsx(xo,{ref:r,id:f,checked:s,onCheckedChange:d,...a})]})});Yl.displayName="QSwitch";const nm=g.forwardRef(({label:e,description:t,error:n,className:i,checked:s,onCheckedChange:o,...l},a)=>{const r=g.useId();return m.jsxs("div",{className:q("flex items-start space-x-2",i),children:[m.jsx(Vn,{ref:a,id:r,checked:s,onCheckedChange:o,className:"mt-1",...l}),m.jsxs("div",{className:"space-y-1 leading-none",children:[e&&m.jsx(Yt,{htmlFor:r,children:e}),t&&m.jsx("p",{className:"text-sm text-muted-foreground",children:t}),n&&m.jsx("p",{className:"text-sm text-destructive",children:n})]})]})});nm.displayName="QCheckbox";const im=g.forwardRef(({onSubmit:e,className:t,children:n,...i},s)=>{const o=l=>{l.preventDefault(),e==null||e(l)};return m.jsx("form",{ref:s,onSubmit:o,className:q("space-y-4",t),...i,children:n})});im.displayName="QForm";const sm=g.forwardRef(({label:e,description:t,error:n,required:i,className:s,value:o,onChange:l,placeholder:a="Pick a date",...r},f)=>m.jsx(Kt,{label:e,description:t,error:n,required:i,className:s,children:m.jsx(fl,{ref:f,date:o,onDateChange:l,placeholder:a,...r})}));sm.displayName="QDatePicker";const rm=g.forwardRef(({label:e,description:t,error:n,required:i,className:s,value:o,onChange:l,placeholder:a="Pick a date range",...r},f)=>m.jsx(Kt,{label:e,description:t,error:n,required:i,className:s,children:m.jsx(hl,{ref:f,dateRange:o,onDateRangeChange:l,placeholder:a,...r})}));rm.displayName="QDateRangePicker";const om=g.forwardRef(({label:e,description:t,error:n,required:i,className:s,value:o,onChange:l,placeholder:a="Start writing...",height:r="200px",...f},d)=>m.jsx(Kt,{label:e,description:t,error:n,required:i,className:s,children:m.jsx(yl,{ref:d,value:o,onChange:l,placeholder:a,height:r,...f})}));om.displayName="QRichTextEditor";const Zl=({currentPage:e=1,totalPages:t=1,totalItems:n=0,pageSize:i=10,pageSizeOptions:s=[10,20,50,100],onPageChange:o,onPageSizeChange:l,showPageSizeSelector:a=!0,showInfo:r=!0,className:f})=>{const d=(e-1)*i+1,h=Math.min(e*i,n),b=e>1,w=e<t,C=()=>{const S=[];if(t<=5)for(let u=1;u<=t;u++)S.push(u);else{S.push(1),e>3&&S.push("...");const u=Math.max(2,e-1),p=Math.min(t-1,e+1);for(let v=u;v<=p;v++)S.push(v);e<t-2&&S.push("..."),t>1&&S.push(t)}return S};return m.jsxs("div",{className:q("flex flex-col sm:flex-row items-center justify-between gap-4 px-2 py-4",f),children:[m.jsxs("div",{className:"flex items-center gap-4",children:[a&&m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx("span",{className:"text-sm text-muted-foreground",children:"Rows per page"}),m.jsxs(Ao,{value:String(i),onValueChange:S=>l==null?void 0:l(Number(S)),children:[m.jsx($s,{className:"h-8 w-[70px]",children:m.jsx(Ro,{placeholder:i})}),m.jsx(Us,{side:"top",children:s.map(S=>m.jsx(Ys,{value:String(S),children:S},S))})]})]}),r&&n>0&&m.jsxs("span",{className:"text-sm text-muted-foreground",children:["Showing ",d," to ",h," of ",n," results"]})]}),m.jsxs("div",{className:"flex items-center gap-1",children:[m.jsxs(xe,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>o==null?void 0:o(1),disabled:!b,children:[m.jsx(Bg,{className:"h-4 w-4"}),m.jsx("span",{className:"sr-only",children:"First page"})]}),m.jsxs(xe,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>o==null?void 0:o(e-1),disabled:!b,children:[m.jsx(fo,{className:"h-4 w-4"}),m.jsx("span",{className:"sr-only",children:"Previous page"})]}),m.jsx("div",{className:"flex items-center gap-1",children:C().map((S,c)=>S==="..."?m.jsx("span",{className:"px-2 text-muted-foreground",children:"..."},`ellipsis-${c}`):m.jsx(xe,{variant:e===S?"default":"outline",size:"icon",className:"h-8 w-8",onClick:()=>o==null?void 0:o(S),children:S},S))}),m.jsxs(xe,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>o==null?void 0:o(e+1),disabled:!w,children:[m.jsx(Ri,{className:"h-4 w-4"}),m.jsx("span",{className:"sr-only",children:"Next page"})]}),m.jsxs(xe,{variant:"outline",size:"icon",className:"h-8 w-8",onClick:()=>o==null?void 0:o(t),disabled:!w,children:[m.jsx(Fg,{className:"h-4 w-4"}),m.jsx("span",{className:"sr-only",children:"Last page"})]})]})]})};Zl.displayName="Pagination";const Gn=({variant:e="spinner",size:t="default",text:n,className:i,fullScreen:s=!1,overlay:o=!1})=>{const l={sm:"h-4 w-4",default:"h-8 w-8",lg:"h-12 w-12",xl:"h-16 w-16"},a=q("flex flex-col items-center justify-center gap-3",s&&"fixed inset-0 z-50",o&&"bg-background/80 backdrop-blur-sm",i),r=()=>{switch(e){case"spinner":return m.jsx(gn,{className:q("animate-spin text-primary",l[t])});case"dots":return m.jsx("div",{className:"flex gap-1",children:[0,1,2].map(f=>m.jsx("div",{className:q("rounded-full bg-primary animate-bounce",t==="sm"&&"h-1.5 w-1.5",t==="default"&&"h-2 w-2",t==="lg"&&"h-3 w-3",t==="xl"&&"h-4 w-4"),style:{animationDelay:`${f*.15}s`}},f))});case"pulse":return m.jsx("div",{className:q("rounded-full bg-primary animate-pulse",l[t])});case"skeleton":return m.jsxs("div",{className:"space-y-3 w-full max-w-sm",children:[m.jsx("div",{className:"h-4 bg-muted rounded animate-pulse"}),m.jsx("div",{className:"h-4 bg-muted rounded animate-pulse w-3/4"}),m.jsx("div",{className:"h-4 bg-muted rounded animate-pulse w-1/2"})]});default:return m.jsx(gn,{className:q("animate-spin text-primary",l[t])})}};return m.jsxs("div",{className:a,children:[r(),n&&m.jsx("p",{className:"text-sm text-muted-foreground animate-pulse",children:n})]})};Gn.displayName="Loading";const lm=({loading:e,children:t,text:n,className:i})=>m.jsxs("div",{className:q("relative",i),children:[t,e&&m.jsx("div",{className:"absolute inset-0 z-10 flex items-center justify-center bg-background/80 backdrop-blur-sm rounded-lg",children:m.jsx(Gn,{text:n})})]});lm.displayName="LoadingOverlay";const am=g.forwardRef(({loading:e,loadingText:t,children:n,disabled:i,className:s,...o},l)=>m.jsx(xe,{ref:l,disabled:i||e,className:s,...o,children:e?m.jsxs(m.Fragment,{children:[m.jsx(gn,{className:"mr-2 h-4 w-4 animate-spin"}),t||"Loading..."]}):n}));am.displayName="LoadingButton";const ii=({icon:e=fa,title:t="No data found",description:n="There are no items to display.",action:i,actionLabel:s,onAction:o,variant:l="default",className:a,children:r})=>{const f={default:{icon:fa,title:"No data found",description:"There are no items to display."},search:{icon:ho,title:"No results found",description:"Try adjusting your search or filters to find what you're looking for."},empty:{icon:Pc,title:"Get started",description:"Create your first item to get started."},error:{icon:Bc,title:"Something went wrong",description:"There was an error loading the data. Please try again."}},d=f[l]||f.default,h=e||d.icon,b=t||d.title,w=n||d.description;return m.jsxs("div",{className:q("flex flex-col items-center justify-center py-12 px-4 text-center",a),children:[m.jsx("div",{className:"rounded-full bg-muted p-4 mb-4",children:m.jsx(h,{className:"h-8 w-8 text-muted-foreground"})}),m.jsx("h3",{className:"text-lg font-semibold mb-2",children:b}),m.jsx("p",{className:"text-sm text-muted-foreground mb-6 max-w-sm",children:w}),r,(i||o)&&m.jsx(xe,{onClick:o,children:s||"Take Action"})]})};ii.displayName="EmptyState";const ql=({searchTerm:e,onClear:t,className:n})=>m.jsx(ii,{variant:"search",title:`No results for "${e}"`,description:"Try searching with different keywords or check your filters.",className:n,children:t&&m.jsx(xe,{variant:"outline",onClick:t,children:"Clear Search"})});ql.displayName="SearchEmptyState";const cm=({itemName:e="item",onCreate:t,className:n})=>m.jsx(ii,{variant:"empty",icon:Pc,title:`No ${e}s yet`,description:`Create your first ${e} to get started.`,onAction:t,actionLabel:`Create ${e}`,className:n});cm.displayName="CreateEmptyState";const um=({error:e,onRetry:t,className:n})=>m.jsx(ii,{variant:"error",title:"Error loading data",description:(e==null?void 0:e.message)||"Something went wrong. Please try again.",onAction:t,actionLabel:"Try Again",className:n});um.displayName="ErrorState";const hr=({open:e,onOpenChange:t,title:n,description:i,children:s,footer:o,size:l="default",showClose:a=!0,className:r,...f})=>{const d={sm:"max-w-sm",default:"max-w-lg",lg:"max-w-2xl",xl:"max-w-4xl",full:"max-w-[95vw]"};return m.jsx(Yd,{open:e,onOpenChange:t,...f,children:m.jsxs(Wo,{className:q(d[l],r),children:[(n||i)&&m.jsxs($o,{children:[n&&m.jsx(Uo,{children:n}),i&&m.jsx(Yo,{children:i})]}),s,o&&m.jsx(Gs,{children:o})]})})};hr.displayName="Modal";const Gl=({open:e,onOpenChange:t,onConfirm:n,onCancel:i,title:s="Are you sure?",description:o="This action cannot be undone.",confirmText:l="Confirm",cancelText:a="Cancel",variant:r="default",loading:f=!1,className:d})=>{const h=async()=>{await(n==null?void 0:n())},b=()=>{i==null||i(),t==null||t(!1)};return m.jsx(hr,{open:e,onOpenChange:t,title:s,description:o,size:"sm",className:d,footer:m.jsxs("div",{className:"flex gap-2 justify-end",children:[m.jsx(xe,{variant:"outline",onClick:b,disabled:f,children:a}),m.jsx(xe,{variant:r==="destructive"?"destructive":"default",onClick:h,disabled:f,children:f?"Loading...":l})]})})};Gl.displayName="ConfirmModal";const Mi=({open:e,onOpenChange:t,onConfirm:n,itemName:i="item",loading:s=!1})=>m.jsx(Gl,{open:e,onOpenChange:t,onConfirm:n,title:`Delete ${i}?`,description:`Are you sure you want to delete this ${i}? This action cannot be undone.`,confirmText:"Delete",variant:"destructive",loading:s});Mi.displayName="DeleteConfirmModal";const dm=({open:e,onOpenChange:t,onSubmit:n,title:i,description:s,children:o,submitText:l="Save",cancelText:a="Cancel",loading:r=!1,size:f="default",className:d})=>{const h=async b=>{b==null||b.preventDefault(),await(n==null?void 0:n())};return m.jsx(hr,{open:e,onOpenChange:t,title:i,description:s,size:f,className:d,children:m.jsxs("form",{onSubmit:h,children:[m.jsx("div",{className:"py-4",children:o}),m.jsxs(Gs,{children:[m.jsx(xe,{type:"button",variant:"outline",onClick:()=>t==null?void 0:t(!1),disabled:r,children:a}),m.jsx(xe,{type:"submit",disabled:r,children:r?"Saving...":l})]})]})})};dm.displayName="FormModal";const Kl=({data:e=[],columns:t=[],loading:n=!1,error:i=null,pagination:s=null,currentPage:o=1,pageSize:l=10,totalItems:a=0,totalPages:r=1,onPageChange:f,onPageSizeChange:d,sortable:h=!0,sortColumn:b=null,sortDirection:w=null,onSort:C,searchable:S=!0,searchValue:c="",onSearchChange:u,searchPlaceholder:p="Search...",selectable:v=!1,selectedRows:y=[],onSelectionChange:_,actions:x=[],onRowClick:E,striped:T=!1,hover:N=!0,compact:k=!1,className:A,emptyTitle:M="No data found",emptyDescription:D="There are no items to display.",emptyAction:R,onEmptyAction:z,getRowKey:V=H=>H.id||H._id})=>{const[H,B]=g.useState(c);g.useEffect(()=>{const $=setTimeout(()=>{u&&H!==c&&u(H)},300);return()=>clearTimeout($)},[H]);const L=$=>{if(!h||!$.sortable)return;const Q=$.sortKey||$.accessor;let Z="asc";b===Q&&(Z=w==="asc"?"desc":"asc"),C==null||C(Q,Z)},P=$=>{$?_==null||_(e.map(V)):_==null||_([])},j=($,Q)=>{Q?_==null||_([...y,$]):_==null||_(y.filter(Z=>Z!==$))},O=e.length>0&&y.length===e.length,U=y.length>0&&y.length<e.length,I=($,Q,Z)=>{const K=$.accessor||$.key,te=K?typeof K=="function"?K(Q):Q[K]:void 0;return $.render?$.render(te,Q,Z):$.format?$.format(te,Q):te!==null&&typeof te=="object"?"-":te??"-"},W=$=>{if(!h||!$.sortable)return null;const Q=$.sortKey||$.accessor;return b!==Q?m.jsx(Og,{className:"ml-2 h-4 w-4 opacity-50"}):w==="asc"?m.jsx(Pg,{className:"ml-2 h-4 w-4"}):m.jsx(Lg,{className:"ml-2 h-4 w-4"})},J=$=>{if(!x||x.length===0)return null;const Q=x.filter(Z=>Z.hidden?typeof Z.hidden=="function"?!Z.hidden($):!Z.hidden:!0);return Q.length===0?null:m.jsxs(kl,{children:[m.jsx(Ml,{asChild:!0,children:m.jsxs(xe,{variant:"ghost",size:"icon",className:"h-8 w-8",children:[m.jsx($g,{className:"h-4 w-4"}),m.jsx("span",{className:"sr-only",children:"Open menu"})]})}),m.jsxs(cr,{align:"end",children:[m.jsx(ur,{children:"Actions"}),m.jsx(ki,{}),Q.map((Z,K)=>m.jsxs(Ti,{onClick:()=>{var te;return(te=Z.onClick)==null?void 0:te.call(Z,$)},className:q(Z.variant==="destructive"&&"text-destructive focus:text-destructive"),disabled:Z.disabled,children:[Z.icon&&m.jsx(Z.icon,{className:"mr-2 h-4 w-4"}),Z.label]},Z.label||K))]})]})};return m.jsxs("div",{className:q("w-full",A),children:[(S||y.length>0)&&m.jsxs("div",{className:"flex items-center justify-between gap-4 mb-4",children:[S&&m.jsxs("div",{className:"relative max-w-sm",children:[m.jsx(ho,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),m.jsx(Hn,{placeholder:p,value:H,onChange:$=>B($.target.value),className:"pl-9 pr-9"}),H&&m.jsx("button",{onClick:()=>{B(""),u==null||u("")},className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:m.jsx(In,{className:"h-4 w-4"})})]}),v&&y.length>0&&m.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[y.length," row(s) selected",m.jsx(xe,{variant:"ghost",size:"sm",onClick:()=>_==null?void 0:_([]),children:"Clear selection"})]})]}),m.jsx("div",{className:"rounded-md border",children:m.jsxs(jl,{children:[m.jsx(zl,{children:m.jsxs(An,{children:[v&&m.jsx(gi,{className:"w-12",children:m.jsx(Vn,{checked:O,indeterminate:U,onCheckedChange:P})}),t.map(($,Q)=>m.jsx(gi,{className:q($.headerClassName,h&&$.sortable&&"cursor-pointer select-none"),style:{width:$.width},onClick:()=>L($),children:m.jsxs("div",{className:"flex items-center",children:[$.header||$.label,W($)]})},$.accessor||Q)),x&&x.length>0&&m.jsx(gi,{className:"w-12",children:"Actions"})]})}),m.jsx(Hl,{children:n?m.jsx(An,{children:m.jsx(hn,{colSpan:t.length+(v?1:0)+(x!=null&&x.length?1:0),className:"h-48",children:m.jsx(Gn,{text:"Loading data..."})})}):e.length===0?m.jsx(An,{children:m.jsx(hn,{colSpan:t.length+(v?1:0)+(x!=null&&x.length?1:0),className:"h-48",children:H?m.jsx(ql,{searchTerm:H,onClear:()=>{B(""),u==null||u("")}}):m.jsx(ii,{title:M,description:D,onAction:z,actionLabel:R})})}):e.map(($,Q)=>{const Z=V($),K=y.includes(Z);return m.jsxs(An,{"data-state":K?"selected":void 0,className:q(T&&Q%2===1&&"bg-muted/50",N&&"cursor-pointer",E&&"hover:bg-muted"),onClick:()=>E==null?void 0:E($),children:[v&&m.jsx(hn,{onClick:te=>te.stopPropagation(),children:m.jsx(Vn,{checked:K,onCheckedChange:te=>j(Z,te)})}),t.map((te,re)=>m.jsx(hn,{className:q(k&&"py-2",te.cellClassName),children:I(te,$,Q)},te.accessor||re)),x&&x.length>0&&m.jsx(hn,{onClick:te=>te.stopPropagation(),children:J($)})]},Z)})})]})}),!n&&e.length>0&&s!==!1&&m.jsx(Zl,{currentPage:o,totalPages:r,totalItems:a,pageSize:l,onPageChange:f,onPageSizeChange:d})]})};Kl.displayName="DataTable";const fm=({store:e,data:t,loading:n=!1,error:i=null,columns:s=[],currentPage:o=1,pageSize:l=10,totalItems:a=0,totalPages:r=1,onPageChange:f,onPageSizeChange:d,sortColumn:h,sortDirection:b,onSort:w,searchValue:C="",onSearchChange:S,searchPlaceholder:c="Search...",selectable:u=!1,selectedRows:p=[],onSelectionChange:v,onCreate:y,onView:_,onEdit:x,onDelete:E,onRefresh:T,onExport:N,createPath:k,detailPath:A,editPath:M,getBreadcrumbName:D,additionalActions:R=[],bulkActions:z=[],title:V,description:H,createLabel:B="Create",refreshLabel:L="Refresh",exportLabel:P="Export",viewLabel:j="View",editLabel:O="Edit",deleteLabel:U="Delete",itemName:I="item",getRowKey:W=he=>he.id||he._id,showHeader:J=!0,showToolbar:$=!0,compact:Q=!1,className:Z,deleteConfirmTitle:K,deleteConfirmDescription:te,getDeleteItemName:re,filters:ae,headerActions:ie,searchable:oe=!0,showEditButton:Se=!0,showDeleteButton:Ae=!0})=>{const he=it.useNavigate(),[Te,F]=g.useState(!1),[Y,G]=g.useState(null),[se,ne]=g.useState(!1),[ee,ue]=g.useState(""),ge=g.useRef(!1),me=g.useRef(ee),_e=g.useRef(null),Me=g.useRef(null),De=(e==null?void 0:e.items)??t??[],Ke=(e==null?void 0:e.loading)??n,Ue=(e==null?void 0:e.error)??i,Fe=(e==null?void 0:e.pagination)??{page:o,pageSize:l,total:a,totalPages:r},qe=Fe.page??o,rt=Fe.pageSize??l,jt=Fe.total??a,ft=Fe.totalPages??r,Ye=e==null?void 0:e.fetchList,ve=e==null?void 0:e.delete,Ee=e==null?void 0:e.setPage,fe=e==null?void 0:e.setPageSize,we=e==null?void 0:e.setFilters;g.useEffect(()=>{Ye&&!ge.current&&(ge.current=!0,_e.current=qe,Me.current=rt,Ye())},[Ye]),g.useEffect(()=>{if(!Ye||!ge.current)return;const Ce=_e.current!==qe,zt=Me.current!==rt;(Ce||zt)&&(_e.current=qe,Me.current=rt,Ye())},[qe,rt,Ye]),g.useEffect(()=>{if(!Ye||!ge.current||me.current===ee)return;const Ce=setTimeout(()=>{oe&&(me.current=ee,we==null||we({search:ee}),qe!==1?Ee==null||Ee(1):Ye())},300);return()=>clearTimeout(Ce)},[ee,oe,qe,we,Ee,Ye]);const et=g.useCallback(Ce=>{Ee?Ee(Ce):f==null||f(Ce)},[Ee,f]),Ne=g.useCallback(Ce=>{fe?fe(Ce):d==null||d(Ce)},[fe,d]),gr=g.useCallback(Ce=>{we?ue(Ce):S==null||S(Ce)},[we,S]),ts=g.useCallback(()=>{k?he(k):y==null||y()},[k,he,y]),ns=g.useCallback(Ce=>{if(A){const zt=D?D(Ce):void 0;he(`${A}/${W(Ce)}`,{state:zt?{breadcrumbName:zt}:void 0})}else _==null||_(Ce)},[A,he,W,_,D]),wn=g.useCallback(Ce=>{if(M){const zt=D?D(Ce):void 0;he(`${M}/${W(Ce)}/edit`,{state:zt?{breadcrumbName:zt}:void 0})}else x==null||x(Ce)},[M,he,W,x,D]),si=g.useCallback(()=>{Ye?Ye():T==null||T()},[Ye,T]),na=g.useCallback(Ce=>{G(Ce),F(!0)},[]),Mm=async()=>{if(Y){ne(!0);try{ve?(await ve(W(Y)),Ye==null||Ye()):E&&await E(Y),F(!1),G(null)}catch(Ce){console.error("Delete error:",Ce)}finally{ne(!1)}}},Dm=g.useMemo(()=>{const Ce=[];return(A||_)&&Ce.push({label:j,icon:Ic,onClick:ns}),(M||x)&&Se&&Ce.push({label:O,icon:zr,onClick:wn}),(ve||E)&&Ae&&Ce.push({label:U,icon:Hr,variant:"destructive",onClick:na}),[...Ce,...R]},[A,M,_,x,ve,E,j,O,U,ns,wn,na,R]),vr=k||y,Am=Ye||T,ia=g.useMemo(()=>Y?re?re(Y):Y.name||Y.title||I:I,[Y,re,I]),sa=()=>$?m.jsxs("div",{className:"flex items-center gap-2",children:[ie,u&&p.length>0&&z.length>0&&m.jsx(m.Fragment,{children:z.map((Ce,zt)=>m.jsxs(xe,{variant:Ce.variant||"outline",size:"sm",onClick:()=>{var oa;return(oa=Ce.onClick)==null?void 0:oa.call(Ce,p)},disabled:Ce.disabled,children:[Ce.icon&&m.jsx(Ce.icon,{className:"mr-2 h-4 w-4"}),Ce.label]},Ce.label||zt))}),N&&m.jsxs(xe,{variant:"outline",size:"sm",onClick:N,children:[m.jsx(Wg,{className:"mr-2 h-4 w-4"}),P]}),Am&&m.jsxs(xe,{variant:"outline",size:"sm",onClick:si,disabled:Ke,children:[m.jsx(Bc,{className:q("mr-2 h-4 w-4",Ke&&"animate-spin")}),L]}),vr&&m.jsxs(xe,{size:"sm",onClick:ts,children:[m.jsx(qg,{className:"mr-2 h-4 w-4"}),B]})]}):null,ra=m.jsxs(m.Fragment,{children:[ae&&m.jsx("div",{className:"mb-4 flex items-center gap-2",children:ae}),m.jsx(Kl,{data:De,columns:s,loading:Ke,error:Ue,currentPage:qe,pageSize:rt,totalItems:jt,totalPages:ft,onPageChange:et,onPageSizeChange:Ne,sortColumn:h,sortDirection:b,onSort:w,searchable:oe,searchValue:we?ee:C,onSearchChange:gr,searchPlaceholder:c,selectable:u,selectedRows:p,onSelectionChange:v,actions:Dm,getRowKey:W,compact:Q,emptyTitle:`No ${I}s found`,emptyDescription:`Create your first ${I} to get started.`,emptyAction:vr?`Create ${I}`:void 0,onEmptyAction:vr?ts:void 0}),m.jsx(Mi,{open:Te,onOpenChange:F,onConfirm:Mm,title:K||`Delete ${I}`,description:te||`Are you sure you want to delete "${ia}"? This action cannot be undone.`,itemName:ia,loading:se})]});return J&&(V||H)?m.jsxs(mt,{className:Z+" !border-none !shadow-none !p-0",children:[m.jsxs(Fn,{className:"flex flex-row items-center justify-between space-y-0 pb-4",children:[m.jsxs("div",{children:[V&&m.jsx(jn,{children:V}),H&&m.jsx(zn,{children:H})]}),sa()]}),m.jsx(gt,{children:ra})]}):m.jsxs("div",{className:Z,children:[$&&m.jsxs("div",{className:"flex items-center justify-between mb-4",children:[m.jsx("div",{}),sa()]}),ra]})};fm.displayName="CrudList";var es=e=>e.type==="checkbox",mn=e=>e instanceof Date,nt=e=>e==null;const hm=e=>typeof e=="object";var We=e=>!nt(e)&&!Array.isArray(e)&&hm(e)&&!mn(e),s5=e=>We(e)&&e.target?es(e.target)?e.target.checked:e.target.value:e,r5=e=>e.substring(0,e.search(/\.\d+(\.|$)/))||e,o5=(e,t)=>e.has(r5(t)),l5=e=>{const t=e.constructor&&e.constructor.prototype;return We(t)&&t.hasOwnProperty("isPrototypeOf")},Xl=typeof window<"u"&&typeof window.HTMLElement<"u"&&typeof document<"u";function Ge(e){let t;const n=Array.isArray(e),i=typeof FileList<"u"?e instanceof FileList:!1;if(e instanceof Date)t=new Date(e);else if(!(Xl&&(e instanceof Blob||i))&&(n||We(e)))if(t=n?[]:Object.create(Object.getPrototypeOf(e)),!n&&!l5(e))t=e;else for(const s in e)e.hasOwnProperty(s)&&(t[s]=Ge(e[s]));else return e;return t}var pr=e=>/^\w*$/.test(e),ze=e=>e===void 0,Ql=e=>Array.isArray(e)?e.filter(Boolean):[],Jl=e=>Ql(e.replace(/["|']|\]/g,"").split(/\.|\[/)),ce=(e,t,n)=>{if(!t||!We(e))return n;const i=(pr(t)?[t]:Jl(t)).reduce((s,o)=>nt(s)?s:s[o],e);return ze(i)||i===e?ze(e[t])?n:e[t]:i},Mt=e=>typeof e=="boolean",Oe=(e,t,n)=>{let i=-1;const s=pr(t)?[t]:Jl(t),o=s.length,l=o-1;for(;++i<o;){const a=s[i];let r=n;if(i!==l){const f=e[a];r=We(f)||Array.isArray(f)?f:isNaN(+s[i+1])?{}:[]}if(a==="__proto__"||a==="constructor"||a==="prototype")return;e[a]=r,e=e[a]}};const cc={BLUR:"blur",FOCUS_OUT:"focusout"},_t={onBlur:"onBlur",onChange:"onChange",onSubmit:"onSubmit",onTouched:"onTouched",all:"all"},Vt={max:"max",min:"min",maxLength:"maxLength",minLength:"minLength",pattern:"pattern",required:"required",validate:"validate"},a5=X.createContext(null);a5.displayName="HookFormContext";var c5=(e,t,n,i=!0)=>{const s={defaultValues:t._defaultValues};for(const o in e)Object.defineProperty(s,o,{get:()=>{const l=o;return t._proxyFormState[l]!==_t.all&&(t._proxyFormState[l]=!i||_t.all),e[l]}});return s};const u5=typeof window<"u"?X.useLayoutEffect:X.useEffect;var at=e=>typeof e=="string",d5=(e,t,n,i,s)=>at(e)?(i&&t.watch.add(e),ce(n,e,s)):Array.isArray(e)?e.map(o=>(i&&t.watch.add(o),ce(n,o))):(i&&(t.watchAll=!0),n),lo=e=>nt(e)||!hm(e);function tn(e,t,n=new WeakSet){if(lo(e)||lo(t))return Object.is(e,t);if(mn(e)&&mn(t))return e.getTime()===t.getTime();const i=Object.keys(e),s=Object.keys(t);if(i.length!==s.length)return!1;if(n.has(e)||n.has(t))return!0;n.add(e),n.add(t);for(const o of i){const l=e[o];if(!s.includes(o))return!1;if(o!=="ref"){const a=t[o];if(mn(l)&&mn(a)||We(l)&&We(a)||Array.isArray(l)&&Array.isArray(a)?!tn(l,a,n):!Object.is(l,a))return!1}}return!0}var pm=(e,t,n,i,s)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[i]:s||!0}}:{},vi=e=>Array.isArray(e)?e:[e],uc=()=>{let e=[];return{get observers(){return e},next:s=>{for(const o of e)o.next&&o.next(s)},subscribe:s=>(e.push(s),{unsubscribe:()=>{e=e.filter(o=>o!==s)}}),unsubscribe:()=>{e=[]}}};function mm(e,t){const n={};for(const i in e)if(e.hasOwnProperty(i)){const s=e[i],o=t[i];if(s&&We(s)&&o){const l=mm(s,o);We(l)&&(n[i]=l)}else e[i]&&(n[i]=o)}return n}var tt=e=>We(e)&&!Object.keys(e).length,ea=e=>e.type==="file",wt=e=>typeof e=="function",Ts=e=>{if(!Xl)return!1;const t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},gm=e=>e.type==="select-multiple",ta=e=>e.type==="radio",f5=e=>ta(e)||es(e),Fr=e=>Ts(e)&&e.isConnected;function h5(e,t){const n=t.slice(0,-1).length;let i=0;for(;i<n;)e=ze(e)?i++:e[t[i++]];return e}function p5(e){for(const t in e)if(e.hasOwnProperty(t)&&!ze(e[t]))return!1;return!0}function Ve(e,t){const n=Array.isArray(t)?t:pr(t)?[t]:Jl(t),i=n.length===1?e:h5(e,n),s=n.length-1,o=n[s];return i&&delete i[o],s!==0&&(We(i)&&tt(i)||Array.isArray(i)&&p5(i))&&Ve(e,n.slice(0,-1)),e}var m5=e=>{for(const t in e)if(wt(e[t]))return!0;return!1};function vm(e){return Array.isArray(e)||We(e)&&!m5(e)}function ao(e,t={}){for(const n in e){const i=e[n];vm(i)?(t[n]=Array.isArray(i)?[]:{},ao(i,t[n])):ze(i)||(t[n]=!0)}return t}function Dn(e,t,n){n||(n=ao(t));for(const i in e){const s=e[i];if(vm(s))ze(t)||lo(n[i])?n[i]=ao(s,Array.isArray(s)?[]:{}):Dn(s,nt(t)?{}:t[i],n[i]);else{const o=t[i];n[i]=!tn(s,o)}}return n}const dc={value:!1,isValid:!1},fc={value:!0,isValid:!0};var bm=e=>{if(Array.isArray(e)){if(e.length>1){const t=e.filter(n=>n&&n.checked&&!n.disabled).map(n=>n.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!ze(e[0].attributes.value)?ze(e[0].value)||e[0].value===""?fc:{value:e[0].value,isValid:!0}:fc:dc}return dc},ym=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:i})=>ze(e)?e:t?e===""?NaN:e&&+e:n&&at(e)?new Date(e):i?i(e):e;const hc={isValid:!1,value:null};var xm=e=>Array.isArray(e)?e.reduce((t,n)=>n&&n.checked&&!n.disabled?{isValid:!0,value:n.value}:t,hc):hc;function pc(e){const t=e.ref;return ea(t)?t.files:ta(t)?xm(e.refs).value:gm(t)?[...t.selectedOptions].map(({value:n})=>n):es(t)?bm(e.refs).value:ym(ze(t.value)?e.ref.value:t.value,e)}var g5=(e,t,n,i)=>{const s={};for(const o of e){const l=ce(t,o);l&&Oe(s,o,l._f)}return{criteriaMode:n,names:[...e],fields:s,shouldUseNativeValidation:i}},ks=e=>e instanceof RegExp,ui=e=>ze(e)?e:ks(e)?e.source:We(e)?ks(e.value)?e.value.source:e.value:e,mc=e=>({isOnSubmit:!e||e===_t.onSubmit,isOnBlur:e===_t.onBlur,isOnChange:e===_t.onChange,isOnAll:e===_t.all,isOnTouch:e===_t.onTouched});const gc="AsyncFunction";var v5=e=>!!e&&!!e.validate&&!!(wt(e.validate)&&e.validate.constructor.name===gc||We(e.validate)&&Object.values(e.validate).find(t=>t.constructor.name===gc)),b5=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate),vc=(e,t,n)=>!n&&(t.watchAll||t.watch.has(e)||[...t.watch].some(i=>e.startsWith(i)&&/^\.\w+/.test(e.slice(i.length))));const bi=(e,t,n,i)=>{for(const s of n||Object.keys(e)){const o=ce(e,s);if(o){const{_f:l,...a}=o;if(l){if(l.refs&&l.refs[0]&&t(l.refs[0],s)&&!i)return!0;if(l.ref&&t(l.ref,l.name)&&!i)return!0;if(bi(a,t))break}else if(We(a)&&bi(a,t))break}}};function bc(e,t,n){const i=ce(e,n);if(i||pr(n))return{error:i,name:n};const s=n.split(".");for(;s.length;){const o=s.join("."),l=ce(t,o),a=ce(e,o);if(l&&!Array.isArray(l)&&n!==o)return{name:n};if(a&&a.type)return{name:o,error:a};if(a&&a.root&&a.root.type)return{name:`${o}.root`,error:a.root};s.pop()}return{name:n}}var y5=(e,t,n,i)=>{n(e);const{name:s,...o}=e;return tt(o)||Object.keys(o).length>=Object.keys(t).length||Object.keys(o).find(l=>t[l]===(!i||_t.all))},x5=(e,t,n)=>!e||!t||e===t||vi(e).some(i=>i&&(n?i===t:i.startsWith(t)||t.startsWith(i))),_5=(e,t,n,i,s)=>s.isOnAll?!1:!n&&s.isOnTouch?!(t||e):(n?i.isOnBlur:s.isOnBlur)?!e:(n?i.isOnChange:s.isOnChange)?e:!0,w5=(e,t)=>!Ql(ce(e,t)).length&&Ve(e,t),C5=(e,t,n)=>{const i=vi(ce(e,n));return Oe(i,"root",t[n]),Oe(e,n,i),e};function yc(e,t,n="validate"){if(at(e)||Array.isArray(e)&&e.every(at)||Mt(e)&&!e)return{type:n,message:at(e)?e:"",ref:t}}var kn=e=>We(e)&&!ks(e)?e:{value:e,message:""},xc=async(e,t,n,i,s,o)=>{const{ref:l,refs:a,required:r,maxLength:f,minLength:d,min:h,max:b,pattern:w,validate:C,name:S,valueAsNumber:c,mount:u}=e._f,p=ce(n,S);if(!u||t.has(S))return{};const v=a?a[0]:l,y=M=>{s&&v.reportValidity&&(v.setCustomValidity(Mt(M)?"":M||""),v.reportValidity())},_={},x=ta(l),E=es(l),T=x||E,N=(c||ea(l))&&ze(l.value)&&ze(p)||Ts(l)&&l.value===""||p===""||Array.isArray(p)&&!p.length,k=pm.bind(null,S,i,_),A=(M,D,R,z=Vt.maxLength,V=Vt.minLength)=>{const H=M?D:R;_[S]={type:M?z:V,message:H,ref:l,...k(M?z:V,H)}};if(o?!Array.isArray(p)||!p.length:r&&(!T&&(N||nt(p))||Mt(p)&&!p||E&&!bm(a).isValid||x&&!xm(a).isValid)){const{value:M,message:D}=at(r)?{value:!!r,message:r}:kn(r);if(M&&(_[S]={type:Vt.required,message:D,ref:v,...k(Vt.required,D)},!i))return y(D),_}if(!N&&(!nt(h)||!nt(b))){let M,D;const R=kn(b),z=kn(h);if(!nt(p)&&!isNaN(p)){const V=l.valueAsNumber||p&&+p;nt(R.value)||(M=V>R.value),nt(z.value)||(D=V<z.value)}else{const V=l.valueAsDate||new Date(p),H=P=>new Date(new Date().toDateString()+" "+P),B=l.type=="time",L=l.type=="week";at(R.value)&&p&&(M=B?H(p)>H(R.value):L?p>R.value:V>new Date(R.value)),at(z.value)&&p&&(D=B?H(p)<H(z.value):L?p<z.value:V<new Date(z.value))}if((M||D)&&(A(!!M,R.message,z.message,Vt.max,Vt.min),!i))return y(_[S].message),_}if((f||d)&&!N&&(at(p)||o&&Array.isArray(p))){const M=kn(f),D=kn(d),R=!nt(M.value)&&p.length>+M.value,z=!nt(D.value)&&p.length<+D.value;if((R||z)&&(A(R,M.message,D.message),!i))return y(_[S].message),_}if(w&&!N&&at(p)){const{value:M,message:D}=kn(w);if(ks(M)&&!p.match(M)&&(_[S]={type:Vt.pattern,message:D,ref:l,...k(Vt.pattern,D)},!i))return y(D),_}if(C){if(wt(C)){const M=await C(p,n),D=yc(M,v);if(D&&(_[S]={...D,...k(Vt.validate,D.message)},!i))return y(D.message),_}else if(We(C)){let M={};for(const D in C){if(!tt(M)&&!i)break;const R=yc(await C[D](p,n),v,D);R&&(M={...R,...k(D,R.message)},y(R.message),i&&(_[S]=M))}if(!tt(M)&&(_[S]={ref:v,...M},!i))return _}}return y(!0),_};const S5={mode:_t.onSubmit,reValidateMode:_t.onChange,shouldFocusError:!0};function E5(e={}){let t={...S5,...e},n={submitCount:0,isDirty:!1,isReady:!1,isLoading:wt(t.defaultValues),isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{},errors:t.errors||{},disabled:t.disabled||!1},i={},s=We(t.defaultValues)||We(t.values)?Ge(t.defaultValues||t.values)||{}:{},o=t.shouldUnregister?{}:Ge(s),l={action:!1,mount:!1,watch:!1},a={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set},r,f=0;const d={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1};let h={...d};const b={array:uc(),state:uc()},w=t.criteriaMode===_t.all,C=F=>Y=>{clearTimeout(f),f=setTimeout(F,Y)},S=async F=>{if(!t.disabled&&(d.isValid||h.isValid||F)){const Y=t.resolver?tt((await E()).errors):await N(i,!0);Y!==n.isValid&&b.state.next({isValid:Y})}},c=(F,Y)=>{!t.disabled&&(d.isValidating||d.validatingFields||h.isValidating||h.validatingFields)&&((F||Array.from(a.mount)).forEach(G=>{G&&(Y?Oe(n.validatingFields,G,Y):Ve(n.validatingFields,G))}),b.state.next({validatingFields:n.validatingFields,isValidating:!tt(n.validatingFields)}))},u=(F,Y=[],G,se,ne=!0,ee=!0)=>{if(se&&G&&!t.disabled){if(l.action=!0,ee&&Array.isArray(ce(i,F))){const ue=G(ce(i,F),se.argA,se.argB);ne&&Oe(i,F,ue)}if(ee&&Array.isArray(ce(n.errors,F))){const ue=G(ce(n.errors,F),se.argA,se.argB);ne&&Oe(n.errors,F,ue),w5(n.errors,F)}if((d.touchedFields||h.touchedFields)&&ee&&Array.isArray(ce(n.touchedFields,F))){const ue=G(ce(n.touchedFields,F),se.argA,se.argB);ne&&Oe(n.touchedFields,F,ue)}(d.dirtyFields||h.dirtyFields)&&(n.dirtyFields=Dn(s,o)),b.state.next({name:F,isDirty:A(F,Y),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else Oe(o,F,Y)},p=(F,Y)=>{Oe(n.errors,F,Y),b.state.next({errors:n.errors})},v=F=>{n.errors=F,b.state.next({errors:n.errors,isValid:!1})},y=(F,Y,G,se)=>{const ne=ce(i,F);if(ne){const ee=ce(o,F,ze(G)?ce(s,F):G);ze(ee)||se&&se.defaultChecked||Y?Oe(o,F,Y?ee:pc(ne._f)):R(F,ee),l.mount&&!l.action&&S()}},_=(F,Y,G,se,ne)=>{let ee=!1,ue=!1;const ge={name:F};if(!t.disabled){if(!G||se){(d.isDirty||h.isDirty)&&(ue=n.isDirty,n.isDirty=ge.isDirty=A(),ee=ue!==ge.isDirty);const me=tn(ce(s,F),Y);ue=!!ce(n.dirtyFields,F),me?Ve(n.dirtyFields,F):Oe(n.dirtyFields,F,!0),ge.dirtyFields=n.dirtyFields,ee=ee||(d.dirtyFields||h.dirtyFields)&&ue!==!me}if(G){const me=ce(n.touchedFields,F);me||(Oe(n.touchedFields,F,G),ge.touchedFields=n.touchedFields,ee=ee||(d.touchedFields||h.touchedFields)&&me!==G)}ee&&ne&&b.state.next(ge)}return ee?ge:{}},x=(F,Y,G,se)=>{const ne=ce(n.errors,F),ee=(d.isValid||h.isValid)&&Mt(Y)&&n.isValid!==Y;if(t.delayError&&G?(r=C(()=>p(F,G)),r(t.delayError)):(clearTimeout(f),r=null,G?Oe(n.errors,F,G):Ve(n.errors,F)),(G?!tn(ne,G):ne)||!tt(se)||ee){const ue={...se,...ee&&Mt(Y)?{isValid:Y}:{},errors:n.errors,name:F};n={...n,...ue},b.state.next(ue)}},E=async F=>{c(F,!0);const Y=await t.resolver(o,t.context,g5(F||a.mount,i,t.criteriaMode,t.shouldUseNativeValidation));return c(F),Y},T=async F=>{const{errors:Y}=await E(F);if(F)for(const G of F){const se=ce(Y,G);se?Oe(n.errors,G,se):Ve(n.errors,G)}else n.errors=Y;return Y},N=async(F,Y,G={valid:!0})=>{for(const se in F){const ne=F[se];if(ne){const{_f:ee,...ue}=ne;if(ee){const ge=a.array.has(ee.name),me=ne._f&&v5(ne._f);me&&d.validatingFields&&c([ee.name],!0);const _e=await xc(ne,a.disabled,o,w,t.shouldUseNativeValidation&&!Y,ge);if(me&&d.validatingFields&&c([ee.name]),_e[ee.name]&&(G.valid=!1,Y))break;!Y&&(ce(_e,ee.name)?ge?C5(n.errors,_e,ee.name):Oe(n.errors,ee.name,_e[ee.name]):Ve(n.errors,ee.name))}!tt(ue)&&await N(ue,Y,G)}}return G.valid},k=()=>{for(const F of a.unMount){const Y=ce(i,F);Y&&(Y._f.refs?Y._f.refs.every(G=>!Fr(G)):!Fr(Y._f.ref))&&$(F)}a.unMount=new Set},A=(F,Y)=>!t.disabled&&(F&&Y&&Oe(o,F,Y),!tn(P(),s)),M=(F,Y,G)=>d5(F,a,{...l.mount?o:ze(Y)?s:at(F)?{[F]:Y}:Y},G,Y),D=F=>Ql(ce(l.mount?o:s,F,t.shouldUnregister?ce(s,F,[]):[])),R=(F,Y,G={})=>{const se=ce(i,F);let ne=Y;if(se){const ee=se._f;ee&&(!ee.disabled&&Oe(o,F,ym(Y,ee)),ne=Ts(ee.ref)&&nt(Y)?"":Y,gm(ee.ref)?[...ee.ref.options].forEach(ue=>ue.selected=ne.includes(ue.value)):ee.refs?es(ee.ref)?ee.refs.forEach(ue=>{(!ue.defaultChecked||!ue.disabled)&&(Array.isArray(ne)?ue.checked=!!ne.find(ge=>ge===ue.value):ue.checked=ne===ue.value||!!ne)}):ee.refs.forEach(ue=>ue.checked=ue.value===ne):ea(ee.ref)?ee.ref.value="":(ee.ref.value=ne,ee.ref.type||b.state.next({name:F,values:Ge(o)})))}(G.shouldDirty||G.shouldTouch)&&_(F,ne,G.shouldTouch,G.shouldDirty,!0),G.shouldValidate&&L(F)},z=(F,Y,G)=>{for(const se in Y){if(!Y.hasOwnProperty(se))return;const ne=Y[se],ee=F+"."+se,ue=ce(i,ee);(a.array.has(F)||We(ne)||ue&&!ue._f)&&!mn(ne)?z(ee,ne,G):R(ee,ne,G)}},V=(F,Y,G={})=>{const se=ce(i,F),ne=a.array.has(F),ee=Ge(Y);Oe(o,F,ee),ne?(b.array.next({name:F,values:Ge(o)}),(d.isDirty||d.dirtyFields||h.isDirty||h.dirtyFields)&&G.shouldDirty&&b.state.next({name:F,dirtyFields:Dn(s,o),isDirty:A(F,ee)})):se&&!se._f&&!nt(ee)?z(F,ee,G):R(F,ee,G),vc(F,a)&&b.state.next({...n,name:F}),b.state.next({name:l.mount?F:void 0,values:Ge(o)})},H=async F=>{l.mount=!0;const Y=F.target;let G=Y.name,se=!0;const ne=ce(i,G),ee=me=>{se=Number.isNaN(me)||mn(me)&&isNaN(me.getTime())||tn(me,ce(o,G,me))},ue=mc(t.mode),ge=mc(t.reValidateMode);if(ne){let me,_e;const Me=Y.type?pc(ne._f):s5(F),De=F.type===cc.BLUR||F.type===cc.FOCUS_OUT,Ke=!b5(ne._f)&&!t.resolver&&!ce(n.errors,G)&&!ne._f.deps||_5(De,ce(n.touchedFields,G),n.isSubmitted,ge,ue),Ue=vc(G,a,De);Oe(o,G,Me),De?(!Y||!Y.readOnly)&&(ne._f.onBlur&&ne._f.onBlur(F),r&&r(0)):ne._f.onChange&&ne._f.onChange(F);const Fe=_(G,Me,De),qe=!tt(Fe)||Ue;if(!De&&b.state.next({name:G,type:F.type,values:Ge(o)}),Ke)return(d.isValid||h.isValid)&&(t.mode==="onBlur"?De&&S():De||S()),qe&&b.state.next({name:G,...Ue?{}:Fe});if(!De&&Ue&&b.state.next({...n}),t.resolver){const{errors:rt}=await E([G]);if(ee(Me),se){const jt=bc(n.errors,i,G),ft=bc(rt,i,jt.name||G);me=ft.error,G=ft.name,_e=tt(rt)}}else c([G],!0),me=(await xc(ne,a.disabled,o,w,t.shouldUseNativeValidation))[G],c([G]),ee(Me),se&&(me?_e=!1:(d.isValid||h.isValid)&&(_e=await N(i,!0)));se&&(ne._f.deps&&(!Array.isArray(ne._f.deps)||ne._f.deps.length>0)&&L(ne._f.deps),x(G,_e,me,Fe))}},B=(F,Y)=>{if(ce(n.errors,Y)&&F.focus)return F.focus(),1},L=async(F,Y={})=>{let G,se;const ne=vi(F);if(t.resolver){const ee=await T(ze(F)?F:ne);G=tt(ee),se=F?!ne.some(ue=>ce(ee,ue)):G}else F?(se=(await Promise.all(ne.map(async ee=>{const ue=ce(i,ee);return await N(ue&&ue._f?{[ee]:ue}:ue)}))).every(Boolean),!(!se&&!n.isValid)&&S()):se=G=await N(i);return b.state.next({...!at(F)||(d.isValid||h.isValid)&&G!==n.isValid?{}:{name:F},...t.resolver||!F?{isValid:G}:{},errors:n.errors}),Y.shouldFocus&&!se&&bi(i,B,F?ne:a.mount),se},P=(F,Y)=>{let G={...l.mount?o:s};return Y&&(G=mm(Y.dirtyFields?n.dirtyFields:n.touchedFields,G)),ze(F)?G:at(F)?ce(G,F):F.map(se=>ce(G,se))},j=(F,Y)=>({invalid:!!ce((Y||n).errors,F),isDirty:!!ce((Y||n).dirtyFields,F),error:ce((Y||n).errors,F),isValidating:!!ce(n.validatingFields,F),isTouched:!!ce((Y||n).touchedFields,F)}),O=F=>{F&&vi(F).forEach(Y=>Ve(n.errors,Y)),b.state.next({errors:F?n.errors:{}})},U=(F,Y,G)=>{const se=(ce(i,F,{_f:{}})._f||{}).ref,ne=ce(n.errors,F)||{},{ref:ee,message:ue,type:ge,...me}=ne;Oe(n.errors,F,{...me,...Y,ref:se}),b.state.next({name:F,errors:n.errors,isValid:!1}),G&&G.shouldFocus&&se&&se.focus&&se.focus()},I=(F,Y)=>wt(F)?b.state.subscribe({next:G=>"values"in G&&F(M(void 0,Y),G)}):M(F,Y,!0),W=F=>b.state.subscribe({next:Y=>{x5(F.name,Y.name,F.exact)&&y5(Y,F.formState||d,Ae,F.reRenderRoot)&&F.callback({values:{...o},...n,...Y,defaultValues:s})}}).unsubscribe,J=F=>(l.mount=!0,h={...h,...F.formState},W({...F,formState:h})),$=(F,Y={})=>{for(const G of F?vi(F):a.mount)a.mount.delete(G),a.array.delete(G),Y.keepValue||(Ve(i,G),Ve(o,G)),!Y.keepError&&Ve(n.errors,G),!Y.keepDirty&&Ve(n.dirtyFields,G),!Y.keepTouched&&Ve(n.touchedFields,G),!Y.keepIsValidating&&Ve(n.validatingFields,G),!t.shouldUnregister&&!Y.keepDefaultValue&&Ve(s,G);b.state.next({values:Ge(o)}),b.state.next({...n,...Y.keepDirty?{isDirty:A()}:{}}),!Y.keepIsValid&&S()},Q=({disabled:F,name:Y})=>{(Mt(F)&&l.mount||F||a.disabled.has(Y))&&(F?a.disabled.add(Y):a.disabled.delete(Y))},Z=(F,Y={})=>{let G=ce(i,F);const se=Mt(Y.disabled)||Mt(t.disabled);return Oe(i,F,{...G||{},_f:{...G&&G._f?G._f:{ref:{name:F}},name:F,mount:!0,...Y}}),a.mount.add(F),G?Q({disabled:Mt(Y.disabled)?Y.disabled:t.disabled,name:F}):y(F,!0,Y.value),{...se?{disabled:Y.disabled||t.disabled}:{},...t.progressive?{required:!!Y.required,min:ui(Y.min),max:ui(Y.max),minLength:ui(Y.minLength),maxLength:ui(Y.maxLength),pattern:ui(Y.pattern)}:{},name:F,onChange:H,onBlur:H,ref:ne=>{if(ne){Z(F,Y),G=ce(i,F);const ee=ze(ne.value)&&ne.querySelectorAll&&ne.querySelectorAll("input,select,textarea")[0]||ne,ue=f5(ee),ge=G._f.refs||[];if(ue?ge.find(me=>me===ee):ee===G._f.ref)return;Oe(i,F,{_f:{...G._f,...ue?{refs:[...ge.filter(Fr),ee,...Array.isArray(ce(s,F))?[{}]:[]],ref:{type:ee.type,name:F}}:{ref:ee}}}),y(F,!1,void 0,ee)}else G=ce(i,F,{}),G._f&&(G._f.mount=!1),(t.shouldUnregister||Y.shouldUnregister)&&!(o5(a.array,F)&&l.action)&&a.unMount.add(F)}}},K=()=>t.shouldFocusError&&bi(i,B,a.mount),te=F=>{Mt(F)&&(b.state.next({disabled:F}),bi(i,(Y,G)=>{const se=ce(i,G);se&&(Y.disabled=se._f.disabled||F,Array.isArray(se._f.refs)&&se._f.refs.forEach(ne=>{ne.disabled=se._f.disabled||F}))},0,!1))},re=(F,Y)=>async G=>{let se;G&&(G.preventDefault&&G.preventDefault(),G.persist&&G.persist());let ne=Ge(o);if(b.state.next({isSubmitting:!0}),t.resolver){const{errors:ee,values:ue}=await E();n.errors=ee,ne=Ge(ue)}else await N(i);if(a.disabled.size)for(const ee of a.disabled)Ve(ne,ee);if(Ve(n.errors,"root"),tt(n.errors)){b.state.next({errors:{}});try{await F(ne,G)}catch(ee){se=ee}}else Y&&await Y({...n.errors},G),K(),setTimeout(K);if(b.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:tt(n.errors)&&!se,submitCount:n.submitCount+1,errors:n.errors}),se)throw se},ae=(F,Y={})=>{ce(i,F)&&(ze(Y.defaultValue)?V(F,Ge(ce(s,F))):(V(F,Y.defaultValue),Oe(s,F,Ge(Y.defaultValue))),Y.keepTouched||Ve(n.touchedFields,F),Y.keepDirty||(Ve(n.dirtyFields,F),n.isDirty=Y.defaultValue?A(F,Ge(ce(s,F))):A()),Y.keepError||(Ve(n.errors,F),d.isValid&&S()),b.state.next({...n}))},ie=(F,Y={})=>{const G=F?Ge(F):s,se=Ge(G),ne=tt(F),ee=ne?s:se;if(Y.keepDefaultValues||(s=G),!Y.keepValues){if(Y.keepDirtyValues){const ue=new Set([...a.mount,...Object.keys(Dn(s,o))]);for(const ge of Array.from(ue))ce(n.dirtyFields,ge)?Oe(ee,ge,ce(o,ge)):V(ge,ce(ee,ge))}else{if(Xl&&ze(F))for(const ue of a.mount){const ge=ce(i,ue);if(ge&&ge._f){const me=Array.isArray(ge._f.refs)?ge._f.refs[0]:ge._f.ref;if(Ts(me)){const _e=me.closest("form");if(_e){_e.reset();break}}}}if(Y.keepFieldsRef)for(const ue of a.mount)V(ue,ce(ee,ue));else i={}}o=t.shouldUnregister?Y.keepDefaultValues?Ge(s):{}:Ge(ee),b.array.next({values:{...ee}}),b.state.next({values:{...ee}})}a={mount:Y.keepDirtyValues?a.mount:new Set,unMount:new Set,array:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:""},l.mount=!d.isValid||!!Y.keepIsValid||!!Y.keepDirtyValues||!t.shouldUnregister&&!tt(ee),l.watch=!!t.shouldUnregister,l.action=!1,Y.keepErrors||(n.errors={}),b.state.next({submitCount:Y.keepSubmitCount?n.submitCount:0,isDirty:ne?!1:Y.keepDirty?n.isDirty:!!(Y.keepDefaultValues&&!tn(F,s)),isSubmitted:Y.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:ne?{}:Y.keepDirtyValues?Y.keepDefaultValues&&o?Dn(s,o):n.dirtyFields:Y.keepDefaultValues&&F?Dn(s,F):Y.keepDirty?n.dirtyFields:{},touchedFields:Y.keepTouched?n.touchedFields:{},errors:Y.keepErrors?n.errors:{},isSubmitSuccessful:Y.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:s})},oe=(F,Y)=>ie(wt(F)?F(o):F,Y),Se=(F,Y={})=>{const G=ce(i,F),se=G&&G._f;if(se){const ne=se.refs?se.refs[0]:se.ref;ne.focus&&(ne.focus(),Y.shouldSelect&&wt(ne.select)&&ne.select())}},Ae=F=>{n={...n,...F}},Te={control:{register:Z,unregister:$,getFieldState:j,handleSubmit:re,setError:U,_subscribe:W,_runSchema:E,_focusError:K,_getWatch:M,_getDirty:A,_setValid:S,_setFieldArray:u,_setDisabledField:Q,_setErrors:v,_getFieldArray:D,_reset:ie,_resetDefaultValues:()=>wt(t.defaultValues)&&t.defaultValues().then(F=>{oe(F,t.resetOptions),b.state.next({isLoading:!1})}),_removeUnmounted:k,_disableForm:te,_subjects:b,_proxyFormState:d,get _fields(){return i},get _formValues(){return o},get _state(){return l},set _state(F){l=F},get _defaultValues(){return s},get _names(){return a},set _names(F){a=F},get _formState(){return n},get _options(){return t},set _options(F){t={...t,...F}}},subscribe:J,trigger:L,register:Z,handleSubmit:re,watch:I,setValue:V,getValues:P,reset:oe,resetField:ae,clearErrors:O,unregister:$,setError:U,setFocus:Se,getFieldState:j};return{...Te,formControl:Te}}function N5(e={}){const t=X.useRef(void 0),n=X.useRef(void 0),[i,s]=X.useState({isDirty:!1,isValidating:!1,isLoading:wt(e.defaultValues),isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,submitCount:0,dirtyFields:{},touchedFields:{},validatingFields:{},errors:e.errors||{},disabled:e.disabled||!1,isReady:!1,defaultValues:wt(e.defaultValues)?void 0:e.defaultValues});if(!t.current)if(e.formControl)t.current={...e.formControl,formState:i},e.defaultValues&&!wt(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{const{formControl:l,...a}=E5(e);t.current={...a,formState:i}}const o=t.current.control;return o._options=e,u5(()=>{const l=o._subscribe({formState:o._proxyFormState,callback:()=>s({...o._formState}),reRenderRoot:!0});return s(a=>({...a,isReady:!0})),o._formState.isReady=!0,l},[o]),X.useEffect(()=>o._disableForm(e.disabled),[o,e.disabled]),X.useEffect(()=>{e.mode&&(o._options.mode=e.mode),e.reValidateMode&&(o._options.reValidateMode=e.reValidateMode)},[o,e.mode,e.reValidateMode]),X.useEffect(()=>{e.errors&&(o._setErrors(e.errors),o._focusError())},[o,e.errors]),X.useEffect(()=>{e.shouldUnregister&&o._subjects.state.next({values:o._getWatch()})},[o,e.shouldUnregister]),X.useEffect(()=>{if(o._proxyFormState.isDirty){const l=o._getDirty();l!==i.isDirty&&o._subjects.state.next({isDirty:l})}},[o,i.isDirty]),X.useEffect(()=>{var l;e.values&&!tn(e.values,n.current)?(o._reset(e.values,{keepFieldsRef:!0,...o._options.resetOptions}),!((l=o._options.resetOptions)===null||l===void 0)&&l.keepIsValid||o._setValid(),n.current=e.values,s(a=>({...a}))):o._resetDefaultValues()},[o,e.values]),X.useEffect(()=>{o._state.mount||(o._setValid(),o._state.mount=!0),o._state.watch&&(o._state.watch=!1,o._subjects.state.next({...o._formState})),o._removeUnmounted()}),t.current.formState=c5(i,o),t.current}const _c=(e,t,n)=>{if(e&&"reportValidity"in e){const i=ce(n,t);e.setCustomValidity(i&&i.message||""),e.reportValidity()}},_m=(e,t)=>{for(const n in t.fields){const i=t.fields[n];i&&i.ref&&"reportValidity"in i.ref?_c(i.ref,n,e):i.refs&&i.refs.forEach(s=>_c(s,n,e))}},T5=(e,t)=>{t.shouldUseNativeValidation&&_m(e,t);const n={};for(const i in e){const s=ce(t.fields,i),o=Object.assign(e[i]||{},{ref:s&&s.ref});if(k5(t.names||Object.keys(e),i)){const l=Object.assign({},ce(n,i));Oe(l,"root",o),Oe(n,i,l)}else Oe(n,i,o)}return n},k5=(e,t)=>e.some(n=>n.startsWith(t+"."));var M5=function(e,t){for(var n={};e.length;){var i=e[0],s=i.code,o=i.message,l=i.path.join(".");if(!n[l])if("unionErrors"in i){var a=i.unionErrors[0].errors[0];n[l]={message:a.message,type:a.code}}else n[l]={message:o,type:s};if("unionErrors"in i&&i.unionErrors.forEach(function(d){return d.errors.forEach(function(h){return e.push(h)})}),t){var r=n[l].types,f=r&&r[i.code];n[l]=pm(l,t,n,s,f?[].concat(f,i.message):i.message)}e.shift()}return n},D5=function(e,t,n){return n===void 0&&(n={}),function(i,s,o){try{return Promise.resolve(function(l,a){try{var r=Promise.resolve(e[n.mode==="sync"?"parse":"parseAsync"](i,t)).then(function(f){return o.shouldUseNativeValidation&&_m({},o),{errors:{},values:n.raw?i:f}})}catch(f){return a(f)}return r&&r.then?r.then(void 0,a):r}(0,function(l){if(function(a){return Array.isArray(a==null?void 0:a.errors)}(l))return{values:{},errors:T5(M5(l.errors,!o.shouldUseNativeValidation&&o.criteriaMode==="all"),o)};throw l}))}catch(l){return Promise.reject(l)}}};const wm=({useStore:e,fields:t=[],defaultValues:n={},validationSchema:i,children:s,onSubmit:o,onCancel:l,onBack:a,onBeforeSubmit:r,initialData:f=null,loading:d=!1,submitting:h=!1,title:b,description:w,submitLabel:C="Save",cancelLabel:S="Cancel",backLabel:c="Back",columns:u=1,showHeader:p=!0,showFooter:v=!0,showBack:y=!0,showCard:_=!0,listPath:x,icon:E,className:T,...N})=>{var Te;const k=it.useNavigate(),{id:A}=it.useParams(),M=!!A,D=e==null?void 0:e(),R=D==null?void 0:D.form,z=(D==null?void 0:D.loading)??!1,V=((Te=D==null?void 0:D.form)==null?void 0:Te.isSubmitting)??!1,H=(D==null?void 0:D.fetchAndPopulateForm)||(D==null?void 0:D.fetchById)||(D==null?void 0:D.fetchOne),B=D==null?void 0:D.create,L=D==null?void 0:D.update,P=D==null?void 0:D.resetForm,j=d||z,O=h||V;g.useEffect(()=>(M&&A&&H&&H(A),()=>{P==null||P()}),[A,M]);const U=()=>{a?a():k(x||-1)},I=()=>{l?l():U()},W=async F=>{var Y;(Y=F==null?void 0:F.preventDefault)==null||Y.call(F);try{let G=(R==null?void 0:R.values)||{};r&&(G=r(G)),M?await(L==null?void 0:L(A,G)):await(B==null?void 0:B(G)),U()}catch(G){console.error("Form submission error:",G)}};if(e&&s){const F=M?`Edit ${b}`:`Create ${b}`,Y=m.jsxs("form",{onSubmit:W,children:[s,v&&m.jsxs("div",{className:"flex items-center justify-end gap-2 mt-6 pt-4 border-t",children:[m.jsxs(xe,{type:"button",variant:"outline",onClick:I,disabled:O,children:[m.jsx(In,{className:"mr-2 h-4 w-4"}),S]}),m.jsx(xe,{type:"submit",disabled:O||j,children:O?m.jsxs(m.Fragment,{children:[m.jsx(gn,{className:"mr-2 h-4 w-4 animate-spin"}),"Saving..."]}):m.jsxs(m.Fragment,{children:[m.jsx(pa,{className:"mr-2 h-4 w-4"}),C]})})]})]});return _?m.jsxs(mt,{className:T,...N,children:[m.jsx(Fn,{children:m.jsxs("div",{className:"flex items-center gap-4",children:[y&&m.jsx(xe,{variant:"ghost",size:"icon",onClick:U,children:m.jsx(Wt,{className:"h-4 w-4"})}),E&&m.jsx("div",{className:"h-10 w-10 rounded-full bg-primary/10 flex items-center justify-center",children:m.jsx(E,{className:"h-5 w-5 text-primary"})}),m.jsxs("div",{children:[m.jsx(jn,{children:F}),w&&m.jsx(zn,{children:w})]})]})}),m.jsx(gt,{children:Y})]}):m.jsxs("div",{className:q("space-y-6",T),...N,children:[m.jsxs("div",{className:"flex items-center gap-4",children:[y&&m.jsx(xe,{variant:"ghost",size:"icon",onClick:U,children:m.jsx(Wt,{className:"h-4 w-4"})}),E&&m.jsx("div",{className:"h-10 w-10 rounded-full bg-primary/10 flex items-center justify-center",children:m.jsx(E,{className:"h-5 w-5 text-primary"})}),m.jsxs("div",{children:[m.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:F}),w&&m.jsx("p",{className:"text-muted-foreground",children:w})]})]}),Y]})}const J=N5({defaultValues:f||n,resolver:i?D5(i):void 0,mode:"onBlur"}),{handleSubmit:$,formState:{errors:Q,isDirty:Z,isValid:K},reset:te,watch:re,setValue:ae,control:ie}=J;g.useEffect(()=>{f&&te(f)},[f,te]);const oe=async F=>{try{await(o==null?void 0:o(F))}catch(Y){console.error("Form submission error:",Y)}},Se=F=>{var Fe;const{name:Y,type:G="text",label:se,placeholder:ne,description:ee,required:ue,disabled:ge,options:me=[],className:_e,...Me}=F,De=(Fe=Q[Y])==null?void 0:Fe.message,Ke=re(Y),Ue={label:se,placeholder:ne,description:ee,error:De,required:ue,disabled:ge||j||O,className:_e};switch(G){case"text":case"email":case"password":case"number":case"url":case"tel":return m.jsx(Ns,{...Ue,type:G,emitValue:!1,...J.register(Y),...Me});case"textarea":return m.jsx(Wl,{...Ue,emitValue:!1,...J.register(Y),...Me});case"select":return m.jsx($l,{...Ue,options:me,value:Ke,onChange:ft=>ae(Y,ft,{shouldValidate:!0}),...Me});case"search-select":return m.jsx(Ul,{...Ue,options:me,value:Ke,onChange:ft=>ae(Y,ft,{shouldValidate:!0}),...Me});case"switch":return m.jsx(Yl,{...Ue,checked:Ke,onCheckedChange:ft=>ae(Y,ft,{shouldValidate:!0}),...Me});case"section":const{title:qe,description:rt,icon:jt}=F;return m.jsx("div",{className:"col-span-full mb-4 mt-8",children:m.jsxs("div",{className:"flex items-center gap-3 mb-4 pb-2 border-b border-border/50",children:[jt&&m.jsx("div",{className:"flex-shrink-0 h-8 w-8 rounded-lg bg-primary/10 flex items-center justify-center",children:m.jsx(jt,{className:"h-4 w-4 text-primary"})}),m.jsxs("div",{className:"flex-1 min-w-0",children:[m.jsx("h3",{className:"text-lg font-semibold text-foreground tracking-tight",children:qe}),rt&&m.jsx("p",{className:"text-sm text-muted-foreground mt-1",children:rt})]})]})},`section-${qe}`);case"custom":return F.render?F.render({form:J,field:F,error:De,value:Ke}):null;default:return m.jsx(Ns,{...Ue,type:"text",emitValue:!1,...J.register(Y),...Me})}},Ae=q("grid gap-4",u===1&&"grid-cols-1",u===2&&"grid-cols-1 md:grid-cols-2",u===3&&"grid-cols-1 md:grid-cols-2 lg:grid-cols-3",u===4&&"grid-cols-1 md:grid-cols-2 lg:grid-cols-4"),he=m.jsxs("form",{onSubmit:$(oe),children:[m.jsx("div",{className:Ae,children:t.map(F=>{if(F.hidden&&(typeof F.hidden=="function"?F.hidden(re()):F.hidden))return null;const Y=F.colSpan||1,G=q(Y===2&&"md:col-span-2",Y===3&&"md:col-span-2 lg:col-span-3",Y===4&&"md:col-span-2 lg:col-span-4",Y==="full"&&"col-span-full");return m.jsx("div",{className:G,children:Se(F)},F.name||`section-${F.title}`)})}),v&&m.jsxs("div",{className:"flex items-center justify-end gap-2 mt-6 pt-4 border-t",children:[l&&m.jsxs(xe,{type:"button",variant:"outline",onClick:l,disabled:O,children:[m.jsx(In,{className:"mr-2 h-4 w-4"}),S]}),m.jsx(xe,{type:"submit",disabled:O||j,children:O?m.jsxs(m.Fragment,{children:[m.jsx(gn,{className:"mr-2 h-4 w-4 animate-spin"}),"Saving..."]}):m.jsxs(m.Fragment,{children:[m.jsx(pa,{className:"mr-2 h-4 w-4"}),C]})})]})]});return p&&(b||w||y)?m.jsxs(mt,{className:T,...N,children:[m.jsx(Fn,{children:m.jsxs("div",{className:"flex items-center gap-4",children:[y&&a&&m.jsx(xe,{variant:"ghost",size:"icon",onClick:a,children:m.jsx(Wt,{className:"h-4 w-4"})}),m.jsxs("div",{children:[b&&m.jsx(jn,{children:b}),w&&m.jsx(zn,{children:w})]})]})}),m.jsx(gt,{children:he})]}):m.jsx("div",{className:T,...N,children:he})};wm.displayName="CrudForm";const Cm=({useStore:e,children:t,data:n=null,loading:i=!1,error:s=null,fields:o=[],onBack:l,onEdit:a,onDelete:r,listPath:f,editPath:d,title:h,description:b,editLabel:w="Edit",deleteLabel:C="Delete",backLabel:S="Back",itemName:c="item",getItemName:u,showEditButton:p=!0,showDeleteButton:v=!0,showHeader:y=!0,showMeta:_=!0,showCard:x=!0,columns:E=2,icon:T,className:N,...k})=>{const A=it.useNavigate(),{id:M}=it.useParams(),D=e==null?void 0:e(),R=D==null?void 0:D.currentItem,z=(D==null?void 0:D.loading)??!1,V=D==null?void 0:D.error,H=(D==null?void 0:D.fetchById)||(D==null?void 0:D.fetchOne),B=D==null?void 0:D.delete,L=n||R,P=i||z,j=s||V,[O,U]=g.useState(!1),[I,W]=g.useState(!1);g.useEffect(()=>{M&&H&&H(M)},[M]);const J=()=>{l?l():A(f||-1)},$=()=>{a?a(L):d&&M&&A(`${d}/${M}/edit`)},Q=async()=>{W(!0);try{r?await r(L):B&&M&&(await B(M),J()),U(!1)}catch(ie){console.error("Delete error:",ie)}finally{W(!1)}},Z=L&&u?u(L):(L==null?void 0:L.name)||(L==null?void 0:L.title)||c,K=(ie,oe)=>{if(ie.render)return L?ie.render(oe,L):m.jsx("span",{className:"text-muted-foreground",children:"-"});if(oe==null||oe==="")return m.jsx("span",{className:"text-muted-foreground",children:"-"});switch(ie.type){case"badge":return m.jsx(di,{variant:ie.variant||"default",children:ie.format?ie.format(oe):String(oe)});case"status":const Se={active:"success",inactive:"secondary",pending:"warning",error:"destructive",...ie.statusColors};return m.jsx(di,{variant:Se[oe==null?void 0:oe.toLowerCase()]||"default",children:ie.format?ie.format(oe):String(oe)});case"boolean":const Ae=!!oe;return m.jsx(di,{variant:Ae?"success":"secondary",children:Ae?ie.trueLabel||"Yes":ie.falseLabel||"No"});case"date":return uo(oe);case"datetime":return us(oe);case"currency":return new Intl.NumberFormat("en-US",{style:"currency",currency:ie.currency||"USD"}).format(oe);case"number":return ie.format?ie.format(oe):new Intl.NumberFormat().format(oe);case"list":return Array.isArray(oe)?m.jsx("div",{className:"flex flex-wrap gap-1",children:oe.map((he,Te)=>m.jsx(di,{variant:"outline",children:ie.getItemLabel?ie.getItemLabel(he):String(he)},Te))}):String(oe);case"link":return m.jsx("a",{href:oe,target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:ie.linkText||oe});case"email":return m.jsx("a",{href:`mailto:${oe}`,className:"text-primary hover:underline",children:oe});case"phone":return m.jsx("a",{href:`tel:${oe}`,className:"text-primary hover:underline",children:oe});case"image":return m.jsx("img",{src:oe,alt:ie.label||"Image",className:q("rounded-md object-cover",ie.imageClassName||"h-20 w-20")});case"html":return m.jsx("div",{className:"prose prose-sm max-w-none",dangerouslySetInnerHTML:{__html:oe}});default:return ie.format?ie.format(oe):String(oe)}},te=ie=>{if(L)return ie.accessor?typeof ie.accessor=="function"?ie.accessor(L):L[ie.accessor]:L[ie.name]},re=q("grid gap-6",E===1&&"grid-cols-1",E===2&&"grid-cols-1 md:grid-cols-2",E===3&&"grid-cols-1 md:grid-cols-2 lg:grid-cols-3"),ae=m.jsxs(m.Fragment,{children:[m.jsx("div",{className:re,children:o.map(ie=>{if(ie.hidden&&(typeof ie.hidden=="function"?L&&ie.hidden(L):ie.hidden))return null;const oe=te(ie),Se=ie.colSpan||1,Ae=q(Se===2&&"md:col-span-2",Se===3&&"lg:col-span-3",Se==="full"&&"col-span-full");return m.jsxs("div",{className:Ae,children:[m.jsxs("dt",{className:"text-sm font-medium text-muted-foreground mb-1",children:[ie.icon&&m.jsx(ie.icon,{className:"inline-block mr-2 h-4 w-4"}),ie.label]}),m.jsx("dd",{className:"text-sm",children:K(ie,oe)})]},ie.name||ie.accessor)})}),_&&L&&(L.created_at||L.updated_at||L.createdAt||L.updatedAt)&&m.jsxs(m.Fragment,{children:[m.jsx(Oi,{className:"my-6"}),m.jsxs("div",{className:"flex flex-wrap gap-6 text-sm text-muted-foreground",children:[(L.created_at||L.createdAt)&&(L.created_at||L.createdAt)!==""&&m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx(ms,{className:"h-4 w-4"}),m.jsxs("span",{children:["Created: ",us(L.created_at||L.createdAt)]})]}),(L.updated_at||L.updatedAt)&&(L.updated_at||L.updatedAt)!==""&&m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx(ms,{className:"h-4 w-4"}),m.jsxs("span",{children:["Updated: ",us(L.updated_at||L.updatedAt)]})]}),(L.id||L._id)&&m.jsxs("div",{className:"flex items-center gap-2",children:[m.jsx(Yg,{className:"h-4 w-4"}),m.jsxs("span",{children:["ID: ",L.id||L._id]})]})]})]})]});return e&&t&&typeof t=="function"?P?m.jsx("div",{className:q("space-y-6",N),children:m.jsx(mt,{children:m.jsx(gt,{className:"py-12",children:m.jsx(Gn,{text:`Loading ${c}...`})})})}):j?m.jsx("div",{className:q("space-y-6",N),children:m.jsx(mt,{children:m.jsxs(gt,{className:"py-12 text-center",children:[m.jsx("p",{className:"text-destructive",children:(j==null?void 0:j.message)||"An error occurred"}),m.jsxs(xe,{variant:"outline",onClick:J,className:"mt-4",children:[m.jsx(Wt,{className:"mr-2 h-4 w-4"}),S]})]})})}):L?m.jsxs(m.Fragment,{children:[m.jsxs("div",{className:q("space-y-6",N),...k,children:[y&&m.jsxs("div",{className:"flex items-center justify-between",children:[m.jsxs("div",{className:"flex items-center gap-4",children:[m.jsx(xe,{variant:"ghost",size:"icon",onClick:J,children:m.jsx(Wt,{className:"h-4 w-4"})}),T&&m.jsx("div",{className:"h-10 w-10 rounded-full bg-primary/10 flex items-center justify-center",children:m.jsx(T,{className:"h-5 w-5 text-primary"})}),m.jsxs("div",{children:[m.jsx("h1",{className:"text-2xl font-bold tracking-tight",children:h}),b&&m.jsx("p",{className:"text-muted-foreground",children:b})]})]}),m.jsxs("div",{className:"flex items-center gap-2",children:[(a||d)&&p&&m.jsxs(xe,{variant:"outline",onClick:$,children:[m.jsx(zr,{className:"mr-2 h-4 w-4"}),w]}),(r||B)&&v&&m.jsxs(xe,{variant:"destructive",onClick:()=>U(!0),children:[m.jsx(Hr,{className:"mr-2 h-4 w-4"}),C]})]})]}),t(L)]}),m.jsx(Mi,{open:O,onOpenChange:U,onConfirm:Q,itemName:Z,loading:I})]}):m.jsx("div",{className:q("space-y-6",N),children:m.jsx(mt,{children:m.jsxs(gt,{className:"py-12 text-center",children:[m.jsxs("p",{className:"text-muted-foreground",children:["No ",c," found"]}),m.jsxs(xe,{variant:"outline",onClick:J,className:"mt-4",children:[m.jsx(Wt,{className:"mr-2 h-4 w-4"}),S]})]})})}):P?m.jsx(mt,{className:N,children:m.jsx(gt,{className:"py-12",children:m.jsx(Gn,{text:`Loading ${c}...`})})}):j?m.jsx(mt,{className:N,children:m.jsxs(gt,{className:"py-12 text-center",children:[m.jsx("p",{className:"text-destructive",children:(j==null?void 0:j.message)||"An error occurred"}),m.jsxs(xe,{variant:"outline",onClick:J,className:"mt-4",children:[m.jsx(Wt,{className:"mr-2 h-4 w-4"}),S]})]})}):L?m.jsxs(m.Fragment,{children:[m.jsxs(mt,{className:N,...k,children:[y&&m.jsxs(Fn,{className:"flex flex-row items-center justify-between space-y-0 pb-4",children:[m.jsxs("div",{className:"flex items-center gap-4",children:[m.jsx(xe,{variant:"ghost",size:"icon",onClick:J,children:m.jsx(Wt,{className:"h-4 w-4"})}),m.jsxs("div",{children:[h&&m.jsx(jn,{children:h}),b&&m.jsx(zn,{children:b})]})]}),m.jsxs("div",{className:"flex items-center gap-2",children:[(a||d)&&p&&m.jsxs(xe,{variant:"outline",onClick:$,children:[m.jsx(zr,{className:"mr-2 h-4 w-4"}),w]}),(r||B)&&v&&m.jsxs(xe,{variant:"destructive",onClick:()=>U(!0),children:[m.jsx(Hr,{className:"mr-2 h-4 w-4"}),C]})]})]}),m.jsx(gt,{children:ae})]}),m.jsx(Mi,{open:O,onOpenChange:U,onConfirm:Q,itemName:Z,loading:I})]}):m.jsx(mt,{className:N,children:m.jsxs(gt,{className:"py-12 text-center",children:[m.jsxs("p",{className:"text-muted-foreground",children:["No ",c," found"]}),m.jsxs(xe,{variant:"outline",onClick:J,className:"mt-4",children:[m.jsx(Wt,{className:"mr-2 h-4 w-4"}),S]})]})})};Cm.displayName="CrudDetail";const Sm=e=>{const{name:t="crud",apiClient:n,endpoint:i,transformResponse:s=h=>h,transformRequest:o=h=>h,initialState:l={},extraActions:a={},idField:r="id",listKey:f="results",countKey:d="count"}=e;if(!n)throw new Error("createCrudStore: apiClient is required");if(!i)throw new Error("createCrudStore: endpoint is required");return h=>h((b,w)=>({items:[],item:null,loading:!1,submitting:!1,error:null,page:1,pageSize:10,totalItems:0,totalPages:0,sortColumn:null,sortDirection:null,search:"",filters:{},selectedIds:[],...l,setPage:C=>b({page:C}),setPageSize:C=>b({pageSize:C,page:1}),setSearch:C=>b({search:C,page:1}),setFilters:C=>b({filters:C,page:1}),setSort:(C,S)=>b({sortColumn:C,sortDirection:S}),setSelectedIds:C=>b({selectedIds:C}),clearSelection:()=>b({selectedIds:[]}),clearError:()=>b({error:null}),reset:()=>b({items:[],item:null,loading:!1,submitting:!1,error:null,page:1,search:"",filters:{},selectedIds:[]}),fetchList:async(C={})=>{var c,u,p,v;const S=w();b({loading:!0,error:null});try{const y={page:S.page,page_size:S.pageSize,search:S.search||void 0,ordering:S.sortColumn?`${S.sortDirection==="desc"?"-":""}${S.sortColumn}`:void 0,...S.filters,...C};Object.keys(y).forEach(k=>{(y[k]===void 0||y[k]==="")&&delete y[k]});const x=(await n.get(i,{params:y})).data,E=x[f]||x.data||(Array.isArray(x)?x:[]),T=x[d]||x.total||E.length,N=Math.ceil(T/S.pageSize);return b({items:E.map(s),totalItems:T,totalPages:N,loading:!1}),{items:E,totalItems:T,totalPages:N}}catch(y){const _=((u=(c=y.response)==null?void 0:c.data)==null?void 0:u.message)||((v=(p=y.response)==null?void 0:p.data)==null?void 0:v.detail)||y.message||"Failed to fetch items";throw b({error:{message:_,original:y},loading:!1}),y}},fetchOne:async C=>{var S,c,u,p;b({loading:!0,error:null,item:null});try{const v=await n.get(`${i}/${C}/`),y=s(v.data);return b({item:y,loading:!1}),y}catch(v){const y=((c=(S=v.response)==null?void 0:S.data)==null?void 0:c.message)||((p=(u=v.response)==null?void 0:u.data)==null?void 0:p.detail)||v.message||"Failed to fetch item";throw b({error:{message:y,original:v},loading:!1}),v}},create:async C=>{var S,c,u,p,v;b({submitting:!0,error:null});try{const y=o(C),_=await n.post(`${i}/`,y),x=s(_.data);return b(E=>({items:[x,...E.items],totalItems:E.totalItems+1,submitting:!1})),x}catch(y){const _=((c=(S=y.response)==null?void 0:S.data)==null?void 0:c.message)||((p=(u=y.response)==null?void 0:u.data)==null?void 0:p.detail)||y.message||"Failed to create item",x=((v=y.response)==null?void 0:v.data)||{};throw b({error:{message:_,fieldErrors:x,original:y},submitting:!1}),y}},update:async(C,S)=>{var c,u,p,v,y;b({submitting:!0,error:null});try{const _=o(S),x=await n.patch(`${i}/${C}/`,_),E=s(x.data);return b(T=>{var N;return{items:T.items.map(k=>k[r]===C?E:k),item:((N=T.item)==null?void 0:N[r])===C?E:T.item,submitting:!1}}),E}catch(_){const x=((u=(c=_.response)==null?void 0:c.data)==null?void 0:u.message)||((v=(p=_.response)==null?void 0:p.data)==null?void 0:v.detail)||_.message||"Failed to update item",E=((y=_.response)==null?void 0:y.data)||{};throw b({error:{message:x,fieldErrors:E,original:_},submitting:!1}),_}},delete:async C=>{var S,c,u,p;b({submitting:!0,error:null});try{return await n.delete(`${i}/${C}/`),b(v=>{var y;return{items:v.items.filter(_=>_[r]!==C),totalItems:v.totalItems-1,item:((y=v.item)==null?void 0:y[r])===C?null:v.item,selectedIds:v.selectedIds.filter(_=>_!==C),submitting:!1}}),!0}catch(v){const y=((c=(S=v.response)==null?void 0:S.data)==null?void 0:c.message)||((p=(u=v.response)==null?void 0:u.data)==null?void 0:p.detail)||v.message||"Failed to delete item";throw b({error:{message:y,original:v},submitting:!1}),v}},bulkDelete:async C=>{var S,c,u,p;b({submitting:!0,error:null});try{return await Promise.all(C.map(v=>n.delete(`${i}/${v}/`))),b(v=>({items:v.items.filter(y=>!C.includes(y[r])),totalItems:v.totalItems-C.length,selectedIds:[],submitting:!1})),!0}catch(v){const y=((c=(S=v.response)==null?void 0:S.data)==null?void 0:c.message)||((p=(u=v.response)==null?void 0:u.data)==null?void 0:p.detail)||v.message||"Failed to delete items";throw b({error:{message:y,original:v},submitting:!1}),v}},replace:async(C,S)=>{var c,u,p,v,y;b({submitting:!0,error:null});try{const _=o(S),x=await n.put(`${i}/${C}/`,_),E=s(x.data);return b(T=>{var N;return{items:T.items.map(k=>k[r]===C?E:k),item:((N=T.item)==null?void 0:N[r])===C?E:T.item,submitting:!1}}),E}catch(_){const x=((u=(c=_.response)==null?void 0:c.data)==null?void 0:u.message)||((v=(p=_.response)==null?void 0:p.data)==null?void 0:v.detail)||_.message||"Failed to update item",E=((y=_.response)==null?void 0:y.data)||{};throw b({error:{message:x,fieldErrors:E,original:_},submitting:!1}),_}},...a}))},A5=e=>{const{create:t}=require("zustand");return t(Sm(e))};function R5({brandName:e="Your Brand",brandLogo:t,brandDescription:n="Welcome back",quote:i,quoteAuthor:s,copyright:o,leftPanelClassName:l,rightPanelClassName:a,leftPanelContent:r,rightPanelContent:f,showLeftPanel:d=!0,children:h}){const b=new Date().getFullYear(),w=o||`© ${b} ${e}. All rights reserved.`,C=m.jsxs("div",{className:"flex flex-col h-full p-8 lg:p-12 text-white",children:[m.jsxs("div",{className:"flex items-center gap-3",children:[t||m.jsx("div",{className:"h-10 w-10 rounded-lg bg-white/20 flex items-center justify-center",children:m.jsx("span",{className:"text-white font-bold text-xl",children:e.charAt(0)})}),m.jsx("span",{className:"text-xl font-semibold",children:e})]}),m.jsxs("div",{className:"flex-1 flex items-center justify-center",children:[i&&m.jsxs("div",{className:"max-w-md",children:[m.jsxs("blockquote",{className:"text-2xl lg:text-3xl font-light leading-relaxed",children:['"',i,'"']}),s&&m.jsxs("p",{className:"mt-4 text-white/70",children:["— ",s]})]}),!i&&n&&m.jsx("div",{className:"text-center",children:m.jsx("p",{className:"text-2xl lg:text-3xl font-light",children:n})})]}),m.jsx("div",{className:"text-sm text-white/60",children:w})]});return m.jsxs("div",{className:"min-h-screen flex",children:[d&&m.jsx("div",{className:q("hidden lg:flex lg:w-1/2 bg-gray-900",l),children:r||C}),m.jsx("div",{className:q("w-full flex items-center justify-center p-8",d?"lg:w-1/2":"",a),children:m.jsx("div",{className:"w-full max-w-md",children:f||h||m.jsx(it.Outlet,{})})})]})}function L5({onSubmit:e,isLoading:t=!1,error:n,title:i="Login",subtitle:s="Enter your email below to login to your account",emailLabel:o="Email",emailPlaceholder:l="m@example.com",passwordLabel:a="Password",rememberMeLabel:r="Remember me",forgotPasswordText:f="Forgot your password?",forgotPasswordPath:d="/forgot-password",submitButtonText:h="Login",signUpText:b="Don't have an account?",signUpLinkText:w="Sign up",signUpPath:C="/register",showRememberMe:S=!0,showForgotPassword:c=!0,showSignUp:u=!0,logo:p,className:v,children:y}){const[_,x]=X.useState(""),[E,T]=X.useState(""),[N,k]=X.useState(!1),[A,M]=X.useState(!1),D=async R=>{R.preventDefault(),e&&await e({email:_,password:E,rememberMe:N})};return m.jsxs("div",{className:q("space-y-6",v),children:[p&&m.jsx("div",{className:"flex justify-center",children:p}),m.jsxs("div",{className:"space-y-2 text-center",children:[m.jsx("h1",{className:"text-2xl font-semibold tracking-tight",children:i}),s&&m.jsx("p",{className:"text-sm text-muted-foreground",children:s})]}),n&&m.jsx("div",{className:"p-3 text-sm text-destructive bg-destructive/10 rounded-md",children:n}),m.jsxs("form",{onSubmit:D,className:"space-y-4",children:[m.jsxs("div",{className:"space-y-2",children:[m.jsx(Yt,{htmlFor:"email",children:o}),m.jsx(Hn,{id:"email",type:"email",placeholder:l,value:_,onChange:R=>x(R.target.value),required:!0,autoComplete:"email"})]}),m.jsxs("div",{className:"space-y-2",children:[m.jsx("div",{className:"flex items-center justify-between",children:m.jsx(Yt,{htmlFor:"password",children:a})}),m.jsxs("div",{className:"relative",children:[m.jsx(Hn,{id:"password",type:A?"text":"password",value:E,onChange:R=>T(R.target.value),required:!0,placeholder:"Enter you password",autoComplete:"current-password",className:"pr-10"}),m.jsx("button",{type:"button",onClick:()=>M(!A),className:"absolute right-3 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground transition-colors","aria-label":A?"Hide password":"Show password",children:A?m.jsx(Ic,{className:"h-4 w-4"}):m.jsx(Ug,{className:"h-4 w-4"})})]})]}),S&&m.jsxs("div",{className:"flex items-center space-x-2",children:[m.jsx(Vn,{id:"remember",checked:N,onCheckedChange:k}),m.jsx(Yt,{htmlFor:"remember",className:"text-sm font-normal cursor-pointer",children:r})]}),y,m.jsx(xe,{type:"submit",className:"w-full",disabled:t,children:t?"Signing in...":h})]})]})}const Em=X.createContext(null);function mr(){const e=X.useContext(Em);if(!e)throw new Error("useSidebarContext must be used within a SidebarProvider");return e}function Nm({defaultOpen:e=!1,defaultCollapsed:t=!1,children:n}){const[i,s]=X.useState(e),[o,l]=X.useState(t),a=X.useCallback(()=>{s(b=>!b)},[]),r=X.useCallback(b=>{s(b)},[]),f=X.useCallback(()=>{l(b=>!b)},[]),d=X.useCallback(b=>{l(b)},[]),h={isOpen:i,isCollapsed:o,toggle:a,setOpen:r,toggleCollapse:f,setCollapsed:d};return m.jsx(Em.Provider,{value:h,children:n})}function Tm({items:e=[],brandName:t="Brand",brandLogo:n,brandPath:i="/dashboard",user:s,onLogout:o,userMenuItems:l=[],showUserProfile:a=!0,className:r,collapsedWidth:f="w-16",expandedWidth:d="w-60",renderItem:h,headerSlot:b,footerSlot:w}){var N,k;const{isOpen:C,isCollapsed:S,setOpen:c,toggleCollapse:u}=mr(),p=it.useLocation(),[v,y]=X.useState([]),_=A=>{y(M=>M.includes(A)?M.filter(D=>D!==A):[...M,A])},x=(A,M=!1)=>{if(A.title)return m.jsxs("div",{className:"mt-6",children:[!S&&m.jsx("h3",{className:"px-3 text-xs font-medium text-sidebar-foreground/50 uppercase tracking-wider mb-2",children:A.title}),S&&m.jsx(Oi,{className:"my-3 bg-sidebar-border"})]},A.title);if(h)return h(A,{isCollapsed:S,isSubItem:M,location:p});const D=A.icon,R=A.children&&A.children.length>0,z=v.includes(A.label),V=A.path&&(p.pathname===A.path||p.pathname.startsWith(A.path+"/")),H=R&&A.children.some(B=>p.pathname===B.path||p.pathname.startsWith(B.path+"/"));return R?m.jsxs("div",{children:[m.jsxs("button",{onClick:()=>_(A.label),className:q("w-full flex items-center gap-3 px-3 py-2 rounded-lg transition-colors text-sm",H?"bg-sidebar-accent text-sidebar-accent-foreground":"hover:bg-sidebar-accent text-sidebar-foreground hover:text-sidebar-accent-foreground",S&&"justify-center px-2"),title:S?A.label:void 0,children:[D&&m.jsx(D,{className:"h-4 w-4 flex-shrink-0"}),!S&&m.jsxs(m.Fragment,{children:[m.jsx("span",{className:"flex-1 text-left",children:A.label}),m.jsx(Ai,{className:q("h-4 w-4 transition-transform",z&&"rotate-180")})]})]}),!S&&z&&m.jsx("div",{className:"ml-4 mt-1 space-y-0.5",children:A.children.map(B=>x(B,!0))})]},A.label):m.jsxs(it.Link,{to:A.path,className:q("flex items-center gap-3 px-3 py-2 rounded-lg transition-colors",V?"bg-sidebar-primary text-sidebar-primary-foreground":"hover:bg-sidebar-accent text-sidebar-foreground hover:text-sidebar-accent-foreground",S&&"justify-center px-2","text-sm"),title:S?A.label:void 0,children:[D&&m.jsx(D,{className:"h-4 w-4 flex-shrink-0"}),!S&&m.jsx("span",{children:A.label})]},A.path||A.label)},E=m.jsxs("div",{className:"flex items-center justify-between h-14 px-3 border-b border-sidebar-border",children:[!S&&m.jsxs(it.Link,{to:i,className:"flex items-center gap-2",children:[n||m.jsx("div",{className:"h-7 w-7 rounded-md bg-sidebar-primary flex items-center justify-center",children:m.jsx("span",{className:"text-sidebar-primary-foreground font-semibold text-sm",children:t.charAt(0)})}),m.jsx("span",{className:"font-semibold text-sidebar-foreground",children:t})]}),S&&m.jsx(it.Link,{to:i,className:"mx-auto",children:n||m.jsx("div",{className:"h-7 w-7 rounded-md bg-sidebar-primary flex items-center justify-center",children:m.jsx("span",{className:"text-sidebar-primary-foreground font-semibold text-sm",children:t.charAt(0)})})}),m.jsx("button",{onClick:()=>c(!1),className:"p-1.5 rounded-lg hover:bg-sidebar-accent lg:hidden",children:m.jsx(In,{className:"h-4 w-4 text-sidebar-foreground"})}),m.jsx("button",{onClick:u,className:q("hidden lg:block p-1.5 rounded-lg hover:bg-sidebar-accent",S&&"mx-auto"),children:S?m.jsx(Ri,{className:"h-4 w-4 text-sidebar-foreground"}):m.jsx(fo,{className:"h-4 w-4 text-sidebar-foreground"})})]}),T=s&&a&&m.jsx("div",{className:"px-3 py-3 border-t border-sidebar-border",children:m.jsxs(kl,{children:[m.jsx(Ml,{asChild:!0,children:m.jsxs("button",{className:q("w-full flex items-center gap-3 px-2 py-2 rounded-lg transition-colors hover:bg-sidebar-accent",S&&"justify-center px-0"),children:[m.jsxs(Go,{className:"h-8 w-8",children:[m.jsx(Ko,{src:s.avatar,alt:s.firstName||"User"}),m.jsxs(Xo,{className:"bg-sidebar-primary text-sidebar-primary-foreground text-xs",children:[((N=s.firstName)==null?void 0:N[0])||"U",((k=s.lastName)==null?void 0:k[0])||""]})]}),!S&&m.jsxs("div",{className:"flex-1 text-left",children:[m.jsxs("p",{className:"text-sm font-medium text-sidebar-foreground truncate",children:[s.firstName," ",s.lastName]}),m.jsx("p",{className:"text-xs text-sidebar-foreground/50 truncate",children:s.email})]})]})}),m.jsxs(cr,{align:"end",className:"w-56",children:[m.jsx(ur,{children:"My Account"}),m.jsx(ki,{}),l.map((A,M)=>m.jsx(Ti,{asChild:!!A.path,onClick:A.onClick,children:A.path?m.jsx(it.Link,{to:A.path,children:A.label}):A.label},M)),l.length>0&&m.jsx(ki,{}),o&&m.jsx(Ti,{onClick:o,className:"text-destructive",children:"Log out"})]})]})});return m.jsxs(m.Fragment,{children:[C&&m.jsx("div",{className:"fixed inset-0 bg-black/50 z-40 lg:hidden",onClick:()=>c(!1)}),m.jsxs("aside",{className:q("fixed top-0 left-0 z-50 h-full bg-sidebar border-r border-sidebar-border transition-all duration-300 ease-in-out flex flex-col",C?"translate-x-0":"-translate-x-full",S?f:d,"lg:translate-x-0",r),children:[b||E,m.jsx("nav",{className:"flex-1 overflow-y-auto px-3 py-3",children:m.jsx("div",{className:"space-y-1",children:e.map(A=>x(A))})}),w||T]})]})}function km({pathNames:e={},showBreadcrumbs:t=!0,showMenuButton:n=!0,className:i,leftSlot:s,rightSlot:o,breadcrumbsSlot:l,children:a}){const{toggle:r}=mr(),f=it.useLocation(),d={dashboard:"Dashboard",users:"Users",roles:"Roles",permissions:"Permissions",settings:"Settings",profile:"Profile",create:"Create",edit:"Edit",...e},h=()=>{const b=f.pathname.split("/").filter(Boolean);return m.jsx("nav",{className:"flex items-center gap-1 text-sm",children:b.map((w,C)=>{var v,y;const S="/"+b.slice(0,C+1).join("/"),c=C===b.length-1;let u;const p=/^\d+$/.test(w);return p&&((v=f.state)!=null&&v.breadcrumbName)?u=f.state.breadcrumbName:p&&((y=window.__breadcrumbNames)!=null&&y[w])?u=window.__breadcrumbNames[w]:u=d[w]||w,m.jsxs("div",{className:"flex items-center gap-1",children:[C>0&&m.jsx(Ri,{className:"h-4 w-4 text-muted-foreground"}),c?m.jsx("span",{className:"font-medium text-foreground",children:u}):m.jsx(it.Link,{to:S,className:"text-muted-foreground hover:text-foreground transition-colors",children:u})]},S)})})};return m.jsxs("header",{className:q("sticky top-0 z-30 bg-background",i),children:[m.jsxs("div",{className:"flex items-center h-14 px-4 md:px-6",children:[n&&m.jsx("button",{onClick:r,className:"p-2 -ml-2 rounded-lg hover:bg-muted lg:hidden",children:m.jsx(Zg,{className:"h-5 w-5"})}),m.jsx("div",{className:"flex items-center gap-4 flex-1",children:s||t&&(l||m.jsx(h,{}))}),o&&m.jsx("div",{className:"flex items-center gap-2",children:o}),a]}),m.jsx(Oi,{})]})}function O5({sidebarProps:e,headerProps:t,showHeader:n=!0,showSidebar:i=!0,contentClassName:s,mainSlot:o,children:l}){const{isCollapsed:a}=mr();return m.jsxs("div",{className:"min-h-screen bg-background",children:[i&&m.jsx(Tm,{...e}),m.jsxs("div",{className:q("transition-all duration-300 ease-in-out",i&&(a?"lg:ml-16":"lg:ml-60")),children:[n&&m.jsx(km,{...t}),m.jsx("main",{className:q("p-4 md:p-6",s),children:o||l||m.jsx(it.Outlet,{})})]})]})}function P5({sidebarProps:e={},headerProps:t={},defaultOpen:n=!1,defaultCollapsed:i=!1,showHeader:s=!0,showSidebar:o=!0,contentClassName:l,mainSlot:a,children:r}){return m.jsx(Nm,{defaultOpen:n,defaultCollapsed:i,children:m.jsx(O5,{sidebarProps:e,headerProps:t,showHeader:s,showSidebar:o,contentClassName:l,mainSlot:a,children:r})})}exports.Alert=Pl;exports.AlertDescription=Bl;exports.AlertDialog=n5;exports.AlertDialogAction=Qp;exports.AlertDialogCancel=Jp;exports.AlertDialogContent=Zp;exports.AlertDialogDescription=Xp;exports.AlertDialogFooter=Gp;exports.AlertDialogHeader=qp;exports.AlertDialogOverlay=Fl;exports.AlertDialogPortal=Yp;exports.AlertDialogTitle=Kp;exports.AlertDialogTrigger=i5;exports.AlertTitle=Il;exports.AlertWithIcon=Np;exports.AuthLayout=R5;exports.Avatar=Go;exports.AvatarFallback=Xo;exports.AvatarImage=Ko;exports.Badge=di;exports.Button=xe;exports.Calendar=dl;exports.Card=mt;exports.CardContent=gt;exports.CardDescription=zn;exports.CardFooter=Fc;exports.CardHeader=Fn;exports.CardTitle=jn;exports.Checkbox=Vn;exports.ConfirmModal=Gl;exports.CreateEmptyState=cm;exports.CrudDetail=Cm;exports.CrudForm=wm;exports.CrudList=fm;exports.DashboardLayout=P5;exports.DataTable=Kl;exports.DatePicker=fl;exports.DateRangePicker=hl;exports.DeleteConfirmModal=Mi;exports.Dialog=Yd;exports.DialogClose=u_;exports.DialogContent=Wo;exports.DialogDescription=Yo;exports.DialogFooter=Gs;exports.DialogHeader=$o;exports.DialogOverlay=Vo;exports.DialogPortal=Zd;exports.DialogTitle=Uo;exports.DialogTrigger=c_;exports.DropdownMenu=kl;exports.DropdownMenuCheckboxItem=ap;exports.DropdownMenuContent=cr;exports.DropdownMenuGroup=pE;exports.DropdownMenuItem=Ti;exports.DropdownMenuLabel=ur;exports.DropdownMenuPortal=mE;exports.DropdownMenuRadioGroup=vE;exports.DropdownMenuRadioItem=cp;exports.DropdownMenuSeparator=ki;exports.DropdownMenuShortcut=up;exports.DropdownMenuSub=gE;exports.DropdownMenuSubContent=lp;exports.DropdownMenuSubTrigger=op;exports.DropdownMenuTrigger=Ml;exports.EmptyState=ii;exports.ErrorState=um;exports.FormField=Kt;exports.FormModal=dm;exports.Header=km;exports.Input=Hn;exports.Label=Yt;exports.Loading=Gn;exports.LoadingButton=am;exports.LoadingOverlay=lm;exports.LoginPage=L5;exports.Modal=hr;exports.Pagination=Zl;exports.Popover=el;exports.PopoverContent=ir;exports.PopoverTrigger=tl;exports.QCheckbox=nm;exports.QDatePicker=sm;exports.QDateRangePicker=rm;exports.QForm=im;exports.QInput=Ns;exports.QRichTextEditor=om;exports.QSearchSelect=Ul;exports.QSelect=$l;exports.QSwitch=Yl;exports.QTabs=yf;exports.QTextarea=Wl;exports.RichTextEditor=yl;exports.ScrollArea=Sp;exports.ScrollBar=Ol;exports.SearchEmptyState=ql;exports.SearchSelect=Vl;exports.Select=Ao;exports.SelectContent=Us;exports.SelectGroup=Wx;exports.SelectItem=Ys;exports.SelectLabel=Cd;exports.SelectScrollDownButton=Oo;exports.SelectScrollUpButton=Lo;exports.SelectSeparator=Sd;exports.SelectTrigger=$s;exports.SelectValue=Ro;exports.Separator=Oi;exports.Sidebar=Tm;exports.SidebarProvider=Nm;exports.Skeleton=A1;exports.Switch=xo;exports.Table=jl;exports.TableBody=Hl;exports.TableCaption=tm;exports.TableCell=hn;exports.TableFooter=em;exports.TableHead=gi;exports.TableHeader=zl;exports.TableRow=An;exports.Tabs=V_;exports.TabsContent=bf;exports.TabsList=gf;exports.TabsTrigger=vf;exports.Textarea=po;exports.TimeStampFormat=yg;exports.Tooltip=Mw;exports.TooltipContent=jf;exports.TooltipProvider=kw;exports.TooltipTrigger=Dw;exports.alertVariants=Ep;exports.badgeVariants=jc;exports.buildQueryString=Mg;exports.buttonVariants=Bn;exports.capitalize=wg;exports.cn=q;exports.createCrudStore=Sm;exports.createStore=A5;exports.debounce=Lc;exports.deepClone=Sg;exports.formatCurrency=bg;exports.formatDate=uo;exports.formatDateTime=us;exports.formatRelativeTime=xg;exports.generateId=Tg;exports.getInitials=Ng;exports.isEmpty=Eg;exports.parseQueryString=kg;exports.slugify=Cg;exports.truncate=_g;exports.useSidebarContext=mr;
|
|
264
264
|
//# sourceMappingURL=index.cjs.map
|