@chaos_team/chaos-ui 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/CHANGELOG.md +286 -0
  2. package/LICENSE +21 -0
  3. package/README.md +295 -0
  4. package/THIRD_PARTY_NOTICES.md +22 -0
  5. package/dist/business.cjs +26 -0
  6. package/dist/business.d.cts +10311 -0
  7. package/dist/business.d.ts +10311 -0
  8. package/dist/business.js +26 -0
  9. package/dist/format-BUpOzeCo.d.cts +8 -0
  10. package/dist/format-BUpOzeCo.d.ts +8 -0
  11. package/dist/hooks.cjs +8 -0
  12. package/dist/hooks.d.cts +1148 -0
  13. package/dist/hooks.d.ts +1148 -0
  14. package/dist/hooks.js +8 -0
  15. package/dist/index.cjs +6 -0
  16. package/dist/index.d.cts +5616 -0
  17. package/dist/index.d.ts +5616 -0
  18. package/dist/index.js +6 -0
  19. package/dist/lib.cjs +42 -0
  20. package/dist/lib.d.cts +804 -0
  21. package/dist/lib.d.ts +804 -0
  22. package/dist/lib.js +42 -0
  23. package/dist/message-KJli9tvf.d.cts +71 -0
  24. package/dist/message-KJli9tvf.d.ts +71 -0
  25. package/dist/message-provider-BI-P3CNq.d.cts +11 -0
  26. package/dist/message-provider-BI-P3CNq.d.ts +11 -0
  27. package/dist/next.cjs +6 -0
  28. package/dist/next.d.cts +103 -0
  29. package/dist/next.d.ts +103 -0
  30. package/dist/next.js +6 -0
  31. package/dist/theme-toggle-JL_jZE-w.d.cts +81 -0
  32. package/dist/theme-toggle-JL_jZE-w.d.ts +81 -0
  33. package/dist/time-picker-H1AaecnE.d.cts +452 -0
  34. package/dist/time-picker-H1AaecnE.d.ts +452 -0
  35. package/dist/ui/icons.cjs +6 -0
  36. package/dist/ui/icons.d.cts +3 -0
  37. package/dist/ui/icons.d.ts +3 -0
  38. package/dist/ui/icons.js +6 -0
  39. package/dist/ui-icons.cjs +6 -0
  40. package/dist/ui-icons.d.cts +205 -0
  41. package/dist/ui-icons.d.ts +205 -0
  42. package/dist/ui-icons.js +6 -0
  43. package/dist/ui.cjs +6 -0
  44. package/dist/ui.d.cts +39 -0
  45. package/dist/ui.d.ts +39 -0
  46. package/dist/ui.js +6 -0
  47. package/package.json +265 -0
  48. package/styles.css +1300 -0
  49. package/styles.css.d.ts +11 -0
@@ -0,0 +1,8 @@
1
+ declare function formatDate(value: Date | number | string, options?: Intl.DateTimeFormatOptions, locale?: string): string;
2
+ declare function formatDateTime(value: Date | number | string, locale?: string): string;
3
+ declare function formatRelativeTime(value: Date | number | string, locale?: string): string;
4
+ declare function formatNumber(value: number, options?: Intl.NumberFormatOptions, locale?: string): string;
5
+ declare function formatPercent(value: number, fractionDigits?: number, locale?: string): string;
6
+ declare function formatCurrency(value: number, currency?: string, locale?: string): string;
7
+
8
+ export { formatDate as a, formatDateTime as b, formatNumber as c, formatPercent as d, formatRelativeTime as e, formatCurrency as f };
@@ -0,0 +1,8 @@
1
+ declare function formatDate(value: Date | number | string, options?: Intl.DateTimeFormatOptions, locale?: string): string;
2
+ declare function formatDateTime(value: Date | number | string, locale?: string): string;
3
+ declare function formatRelativeTime(value: Date | number | string, locale?: string): string;
4
+ declare function formatNumber(value: number, options?: Intl.NumberFormatOptions, locale?: string): string;
5
+ declare function formatPercent(value: number, fractionDigits?: number, locale?: string): string;
6
+ declare function formatCurrency(value: number, currency?: string, locale?: string): string;
7
+
8
+ export { formatDate as a, formatDateTime as b, formatNumber as c, formatPercent as d, formatRelativeTime as e, formatCurrency as f };
package/dist/hooks.cjs ADDED
@@ -0,0 +1,8 @@
1
+ /*
2
+ * Chaos UI - Enterprise React Component Library
3
+ * Copyright (c) 2026 qxyfoods
4
+ * MIT License
5
+ */
6
+ "use strict";"use client";var ro=Object.create;var je=Object.defineProperty;var so=Object.getOwnPropertyDescriptor;var io=Object.getOwnPropertyNames;var ao=Object.getPrototypeOf,co=Object.prototype.hasOwnProperty;var uo=(e,t)=>{for(var n in t)je(e,n,{get:t[n],enumerable:!0})},kt=(e,t,n,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of io(t))!co.call(e,r)&&r!==n&&je(e,r,{get:()=>t[r],enumerable:!(o=so(t,r))||o.enumerable});return e};var R=(e,t,n)=>(n=e!=null?ro(ao(e)):{},kt(t||!e||!e.__esModule?je(n,"default",{value:e,enumerable:!0}):n,e)),lo=e=>kt(je({},"__esModule",{value:!0}),e);var yo={};uo(yo,{ConfirmProvider:()=>Rn,LocaleProvider:()=>cn,ModalRenderer:()=>Wt,PermissionContext:()=>ut,PermissionProvider:()=>En,confirmAsync:()=>gn,getStoredLocale:()=>yt,supportedLocales:()=>nt,useApproval:()=>On,useAsync:()=>Qt,useAsyncTask:()=>Dn,useBill:()=>Fn,useBreakpoint:()=>gt,useClickOutside:()=>jt,useClipboard:()=>Cn,useConfirmAsync:()=>xn,useConfirmContext:()=>vn,useCopyToClipboard:()=>Gt,useCountdown:()=>_t,useCrud:()=>dn,useDataScope:()=>Un,useDebounce:()=>Xt,useDict:()=>Nn,useEventListener:()=>Pt,useExport:()=>An,useFetch:()=>Bn,useFieldValidation:()=>bn,useForm:()=>ct,useFormSchema:()=>Ln,useFormTable:()=>Vn,useHotkeys:()=>qt,useIdle:()=>zn,useImport:()=>Hn,useInView:()=>qe,useInfiniteScroll:()=>$t,useIntersectionObserver:()=>bt,useIsBreakpoint:()=>Et,useIsDesktop:()=>Zt,useIsMobile:()=>en,useIsTablet:()=>Yt,useKey:()=>Rt,useKeyCombo:()=>Ot,useLineEditor:()=>Kn,useLocalStorage:()=>Jt,useLocale:()=>un,useMediaQuery:()=>Je,useMessage:()=>_e,useModal:()=>Kt,useMutation:()=>Jn,useNetworkQuality:()=>Qn,useNetworkStatus:()=>In,useNotification:()=>Nt,useOrientation:()=>Tn,usePageTitle:()=>fn,usePagination:()=>Ye,usePermission:()=>Pn,usePrevious:()=>tn,usePrint:()=>jn,useQuery:()=>qn,useRedo:()=>Gn,useScroll:()=>Tt,useScrollDirection:()=>wn,useSse:()=>_n,useStep:()=>nn,useSwr:()=>Zn,useTable:()=>Yn,useThrottle:()=>on,useToggle:()=>rn,useTrack:()=>to,useUndo:()=>no,useVisibilityChange:()=>yn,useWebsocket:()=>oo,useWindowSize:()=>hn,zodResolverAdapter:()=>kn});module.exports=lo(yo);var Ge=R(require("react"),1),Me={xs:0,sm:640,md:768,lg:1024,xl:1280,"2xl":1536};function gt(){let[e,t]=Ge.useState(void 0);return Ge.useEffect(()=>{let n=()=>{let o=window.innerWidth;o>=Me["2xl"]?t("2xl"):o>=Me.xl?t("xl"):o>=Me.lg?t("lg"):o>=Me.md?t("md"):o>=Me.sm?t("sm"):t("xs")};return n(),window.addEventListener("resize",n,{passive:!0}),()=>window.removeEventListener("resize",n)},[]),e}function Et(e){let t=gt();if(!t)return!1;let n=["xs","sm","md","lg","xl","2xl"];return n.indexOf(t)>=n.indexOf(e)}var fe=R(require("react"),1);function Pt(e,t,n,o){let r=fe.useRef(n),i=fe.useRef(o);fe.useEffect(()=>{r.current=n},[n]),fe.useEffect(()=>{i.current=o},[o]),fe.useEffect(()=>{if(!e)return;let c=u=>{r.current(u)},a=i.current;return e.addEventListener(t,c,a),()=>{e.removeEventListener(t,c,a)}},[e,t])}var Oe=R(require("react"),1);function Mt(e,t){let n=t.toLowerCase().split("+"),o=e.key.toLowerCase(),r=n.includes("ctrl")||n.includes("control"),i=n.includes("meta")||n.includes("cmd"),c=n.includes("shift"),a=n.includes("alt"),u=n.filter(p=>!["ctrl","control","meta","cmd","shift","alt"].includes(p))[0];return o===u&&e.ctrlKey===r&&e.metaKey===i&&e.shiftKey===c&&e.altKey===a}function Rt(e,t,n={}){let{event:o="keydown",target:r,preventDefault:i=!1,enabled:c=!0}=n,a=Oe.useRef(t);Oe.useEffect(()=>{a.current=t},[t]),Oe.useEffect(()=>{if(!c)return;let u=r??window,p=m=>{let d=m,f=!1;typeof e=="function"?f=e(d):typeof e=="string"?f=Mt(d,e):Array.isArray(e)&&(f=e.some(l=>Mt(d,l))),f&&(i&&d.preventDefault(),a.current(d))};return u.addEventListener(o,p),()=>u.removeEventListener(o,p)},[e,o,r,i,c])}function Ot(e,t,n){Rt(e,t,n)}var Ft=require("react");var $=require("sonner");function ye(e){let t={};return e?.key!==void 0&&(t.id=e.key),e?.duration!==void 0&&(t.duration=e.duration),e?.description!==void 0&&(t.description=e.description),e?.action&&(t.action={label:e.action.label,onClick:e.action.onClick}),e?.icon!==void 0&&(t.icon=e.icon),e?.className!==void 0&&(t.classNames={toast:e.className}),e?.onClick&&(t.onClick=e.onClick),e?.onDismiss&&(t.onDismiss=e.onDismiss),e?.onAutoClose&&(t.onAutoClose=e.onAutoClose),t}var Dt={duration:3,maxCount:5,placement:"top-right",richColors:!0,expand:!1},ae=Object.assign((e,t)=>(0,$.toast)(e,ye(t)),{success:(e,t)=>$.toast.success(e,ye(t)),error:(e,t)=>$.toast.error(e,ye(t)),warning:(e,t)=>$.toast.warning(e,ye(t)),info:(e,t)=>$.toast.info(e,ye(t)),loading:(e,t)=>{let n=ye({...t,duration:t?.duration??0});return $.toast.loading(e,n)},promise:(e,t)=>$.toast.promise(e,{loading:t.loading??"Loading...",success:t.success,error:t.error}),destroy:e=>{e!==void 0?$.toast.dismiss(e):$.toast.dismiss()},config:e=>{Dt={...Dt,...e}}});function _e(){return(0,Ft.useMemo)(()=>({success:ae.success,error:ae.error,warning:ae.warning,info:ae.info,loading:ae.loading,promise:ae.promise,destroy:ae.destroy}),[])}var Ut=R(require("react"),1),ce=require("sonner");function Nt(){let e=Ut.useCallback(t=>{let{type:n="info",title:o,description:r,duration:i,id:c,action:a}=t,u={};switch(c!==void 0&&(u.id=c),r!==void 0&&(u.description=r),i!==void 0&&(u.duration=i),a&&(u.action={label:a.label,onClick:a.onClick}),n){case"success":return ce.toast.success(o,u);case"error":return ce.toast.error(o,u);case"warning":return ce.toast.warning(o,u);default:return ce.toast.info(o,u)}},[]);return{open:e,success:t=>e({...t,type:"success"}),error:t=>e({...t,type:"error"}),warning:t=>e({...t,type:"warning"}),info:t=>e({...t,type:"info"}),close:t=>{t?ce.toast.dismiss(t):ce.toast.dismiss()},closeAll:()=>ce.toast.dismiss()}}var D=R(require("react"),1);var Uo=require("react"),vt=require("react-i18next"),re=require("@base-ui/react/dialog");var At=require("clsx"),Bt=require("tailwind-merge");function oe(...e){return(0,Bt.twMerge)((0,At.clsx)(e))}var Mo=require("react"),Vt=require("@base-ui/react/button"),zt=require("class-variance-authority");var ue=require("react/jsx-runtime"),po=(0,zt.cva)("group/button inline-flex shrink-0 items-center justify-center rounded-lg border border-transparent bg-clip-padding text-sm font-medium whitespace-nowrap transition-all outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 active:not-aria-[haspopup]:translate-y-px disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/80",outline:"border-border bg-background hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-[color-mix(in_oklch,var(--secondary),var(--foreground)_5%)] aria-expanded:bg-secondary aria-expanded:text-secondary-foreground",ghost:"hover:bg-muted hover:text-foreground aria-expanded:bg-muted aria-expanded:text-foreground dark:hover:bg-muted/50",destructive:"bg-destructive/10 text-destructive hover:bg-destructive/20 focus-visible:border-destructive/40 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:hover:bg-destructive/30 dark:focus-visible:ring-destructive/40",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-8 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",xs:"h-6 gap-1 rounded-[min(var(--radius-md),10px)] px-2 text-xs in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3",sm:"h-7 gap-1 rounded-[min(var(--radius-md),12px)] px-2.5 text-[0.8rem] in-data-[slot=button-group]:rounded-lg has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 [&_svg:not([class*='size-'])]:size-3.5",lg:"h-9 gap-1.5 px-2.5 has-data-[icon=inline-end]:pr-2 has-data-[icon=inline-start]:pl-2",icon:"size-8","icon-xs":"size-6 rounded-[min(var(--radius-md),10px)] in-data-[slot=button-group]:rounded-lg [&_svg:not([class*='size-'])]:size-3","icon-sm":"size-7 rounded-[min(var(--radius-md),12px)] in-data-[slot=button-group]:rounded-lg","icon-lg":"size-9"}},defaultVariants:{variant:"default",size:"default"}});function G({className:e,variant:t="default",size:n="default",icon:o,iconRight:r,children:i,...c}){let a=o!=null||r!=null;return(0,ue.jsx)(Vt.Button,{"data-slot":"button",className:oe(po({variant:t,size:n,className:e})),...c,children:a?(0,ue.jsxs)(ue.Fragment,{children:[o!=null&&(0,ue.jsx)("span",{"data-icon":"inline-start",className:"shrink-0",children:o}),i,r!=null&&(0,ue.jsx)("span",{"data-icon":"inline-end",className:"shrink-0",children:r})]}):i})}var s=R(require("lucide-react"),1),xt=s.AlertCircleIcon;var Ht=s.XIcon;var k=require("react/jsx-runtime");function De({...e}){return(0,k.jsx)(re.Dialog.Root,{"data-slot":"dialog",...e})}function fo({...e}){return(0,k.jsx)(re.Dialog.Portal,{"data-slot":"dialog-portal",...e})}function mo({className:e,...t}){return(0,k.jsx)(re.Dialog.Backdrop,{"data-slot":"dialog-overlay",className:oe("data-open:animate-in data-open:fade-in-0 data-closed:animate-out data-closed:fade-out-0 fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs",e),...t})}function Fe({className:e,children:t,showCloseButton:n=!0,...o}){let{t:r}=(0,vt.useTranslation)("ui");return(0,k.jsxs)(fo,{children:[(0,k.jsx)(mo,{}),(0,k.jsxs)(re.Dialog.Popup,{"data-slot":"dialog-content",className:oe("bg-popover text-popover-foreground ring-foreground/10 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl p-4 text-sm ring-1 duration-100 outline-none sm:max-w-sm",e),...o,children:[t,n&&(0,k.jsxs)(re.Dialog.Close,{"data-slot":"dialog-close",render:(0,k.jsx)(G,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm"}),children:[(0,k.jsx)(Ht,{}),(0,k.jsx)("span",{className:"sr-only",children:r("dialog.close")})]})]})]})}function Ue({className:e,...t}){return(0,k.jsx)("div",{"data-slot":"dialog-header",className:oe("flex flex-col gap-2",e),...t})}function Ne({className:e,showCloseButton:t=!1,children:n,...o}){let{t:r}=(0,vt.useTranslation)("ui");return(0,k.jsxs)("div",{"data-slot":"dialog-footer",className:oe("bg-muted/50 -mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t p-4 sm:flex-row sm:justify-end",e),...o,children:[n,t&&(0,k.jsx)(re.Dialog.Close,{render:(0,k.jsx)(G,{variant:"outline"}),children:r("dialog.closeButton")})]})}function Ae({className:e,...t}){return(0,k.jsx)(re.Dialog.Title,{"data-slot":"dialog-title",className:oe("font-heading text-base leading-none font-medium",e),...t})}function Be({className:e,...t}){return(0,k.jsx)(re.Dialog.Description,{"data-slot":"dialog-description",className:oe("text-muted-foreground *:[a]:hover:text-foreground text-sm *:[a]:underline *:[a]:underline-offset-3",e),...t})}var F=require("react/jsx-runtime");function Kt(){let[e,t]=D.useState({open:!1,options:{}}),[n,o]=D.useState(!1),r=D.useCallback(g=>{t({open:!0,options:g})},[]),i=D.useCallback(()=>{t(g=>({...g,open:!1})),o(!1)},[]),c=D.useCallback(async()=>{let{onOk:g}=e.options;if(g)try{o(!0),await g()}finally{i()}else i()},[e.options,i]),a=D.useCallback(()=>{e.options.onCancel?.(),i()},[e.options,i]),u=D.useCallback(g=>r(g),[r]),p=D.useCallback(g=>r(g),[r]),m=D.useCallback(g=>r(g),[r]),d=D.useCallback(g=>r(g),[r]),f=D.useCallback(g=>r({...g,okVariant:"destructive"}),[r]),l=(0,F.jsx)(De,{open:e.open,onOpenChange:g=>{!g&&e.options.maskClosable!==!1&&a()},children:(0,F.jsxs)(Fe,{style:{maxWidth:typeof e.options.width=="number"?`${e.options.width}px`:e.options.width},children:[(0,F.jsxs)(Ue,{children:[e.options.title&&(0,F.jsx)(Ae,{children:e.options.title}),e.options.content&&(0,F.jsx)(Be,{children:e.options.content})]}),(0,F.jsxs)(Ne,{children:[e.options.cancelText!==void 0&&(0,F.jsx)(G,{variant:"outline",onClick:a,disabled:n,children:e.options.cancelText??"Cancel"}),(0,F.jsx)(G,{variant:e.options.okVariant==="destructive"?"destructive":"default",onClick:c,disabled:n,children:n?"Loading...":e.options.okText??"OK"})]})]})});return u.modal=l,p.modal=l,m.modal=l,d.modal=l,f.modal=l,{confirm:u,info:p,warning:m,success:d,error:f}}function Wt({modal:e}){let t=e.confirm.modal;return(0,F.jsx)(F.Fragment,{children:t})}var J=R(require("react"),1);function Qt(e,t=!0){let[n,o]=J.useState({status:"idle",data:void 0,error:void 0}),r=J.useRef(!0),i=J.useRef(null);J.useEffect(()=>(r.current=!0,()=>{r.current=!1}),[]);let c=J.useCallback(async(...a)=>{i.current=a,o(u=>({status:"pending",data:u.data,error:void 0}));try{let u=await e(...a);return r.current?(o({status:"success",data:u,error:void 0}),u):void 0}catch(u){let p=u instanceof Error?u:new Error(String(u));if(!r.current)return;throw o({status:"error",data:void 0,error:p}),p}},[e]);return J.useEffect(()=>{if(!t)return;let a=window.setTimeout(()=>{c(...i.current??[])},0);return()=>window.clearTimeout(a)},[t,c]),{...n,run:c,isLoading:n.status==="pending"}}var Ve=R(require("react"),1);function jt(e,t,n=!0){let o=Ve.useRef(t);Ve.useEffect(()=>{o.current=t},[t]),Ve.useEffect(()=>{if(!n)return;let r=i=>{let c=e.current;!c||c.contains(i.target)||o.current(i)};return document.addEventListener("mousedown",r),document.addEventListener("touchstart",r),()=>{document.removeEventListener("mousedown",r),document.removeEventListener("touchstart",r)}},[e,n])}var se=R(require("react"),1);function Gt(){let[e,t]=se.useState(!1),n=se.useRef(null),o=se.useCallback(async i=>{if(typeof navigator>"u"||!navigator.clipboard)return!1;try{return await navigator.clipboard.writeText(i),t(!0),n.current&&clearTimeout(n.current),n.current=setTimeout(()=>t(!1),2e3),!0}catch{return!1}},[]),r=se.useCallback(()=>{n.current&&clearTimeout(n.current),t(!1)},[]);return se.useEffect(()=>()=>{n.current&&clearTimeout(n.current)},[]),[e,o,r]}var he=R(require("react"),1);function _t(e){let t=he.useMemo(()=>new Date(e).getTime(),[e]),[n,o]=he.useState(()=>Date.now());he.useEffect(()=>{if(Number.isNaN(t)||t<=Date.now())return;let d=setInterval(()=>{let f=Date.now();if(t<=f){o(f),clearInterval(d);return}o(f)},1e3);return()=>clearInterval(d)},[t]);let r=Math.max(0,t-n),i=Math.floor(r/1e3),c=Math.floor(i/86400),a=Math.floor(i%86400/3600),u=Math.floor(i%3600/60),p=i%60,m=r<=0||Number.isNaN(t);return{days:c,hours:a,minutes:u,seconds:p,isFinished:m,totalSeconds:i}}var Xe=R(require("react"),1);function Xt(e,t=300){let[n,o]=Xe.useState(e);return Xe.useEffect(()=>{let r=setTimeout(()=>o(e),t);return()=>clearTimeout(r)},[e,t]),n}var ze=R(require("react"),1);function go(e){return e.toLowerCase().split("+").map(t=>t.trim()).sort().join("+")}function Ro(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t==="INPUT"||t==="TEXTAREA"||t==="SELECT"||e.isContentEditable}function xo(e,t){let n=t.split("+").map(c=>c.trim()),o=e.key.toLowerCase(),r={mod:n.includes("mod")||n.includes("cmd")||n.includes("ctrl"),shift:n.includes("shift"),alt:n.includes("alt")||n.includes("option"),key:n.filter(c=>!["mod","cmd","ctrl","shift","alt","option","meta"].includes(c))[0]},i=e.metaKey||e.ctrlKey;return r.mod!==i||r.shift!==e.shiftKey||r.alt!==e.altKey||!r.key?!1:o===r.key.toLowerCase()}function qt(e,t={}){let{enabled:n=!0,preventDefault:o=!0,allowInInputs:r=!1}=t,i=ze.useRef(e);ze.useEffect(()=>{i.current=e},[e]),ze.useEffect(()=>{if(!n)return;let c=a=>{if(!(!r&&Ro(a.target))){for(let[u,p]of Object.entries(i.current))if(xo(a,go(u))){o&&a.preventDefault(),p(a);return}}};return document.addEventListener("keydown",c),()=>document.removeEventListener("keydown",c)},[n,o,r])}var M=R(require("react"),1);var we=R(require("react"),1);function bt(e,t={}){let{enabled:n=!0,triggerOnce:o=!1,root:r,rootMargin:i,threshold:c}=t,[a,u]=we.useState(null),p=we.useRef(!1);return we.useEffect(()=>{if(!n||p.current)return;let m=e.current;if(!m)return;if(typeof IntersectionObserver>"u"){u({isIntersecting:!0,target:m,boundingClientRect:m.getBoundingClientRect(),intersectionRatio:1,intersectionRect:m.getBoundingClientRect(),rootBounds:null,time:Date.now()});return}let d=new IntersectionObserver(f=>{let l=f[0];l&&(u(l),o&&l.isIntersecting&&(p.current=!0,d.disconnect()))},(()=>{let f={};return r!==void 0&&(f.root=r),i!==void 0&&(f.rootMargin=i),c!==void 0&&(f.threshold=c),f})());return d.observe(m),()=>d.disconnect()},[e,n,o,r,i,c]),a}function qe(e,t={}){return!!bt(e,t)?.isIntersecting}function $t(e,t={}){let{enabled:n=!0}=t,[o,r]=M.useState([]),[i,c]=M.useState(!0),[a,u]=M.useState(!1),[p,m]=M.useState(null),d=M.useRef(null),f=qe(d,{rootMargin:t.rootMargin??"100px",threshold:t.threshold??0}),l=M.useRef(e);M.useEffect(()=>{l.current=e},[e]);let g=M.useCallback(async()=>{if(!(a||!i||!n)){u(!0),m(null);try{let v=await l.current();r(b=>[...b,...v.items]),c(v.hasMore)}catch(v){m(v instanceof Error?v:new Error(String(v)))}finally{u(!1)}}},[a,i,n]);M.useEffect(()=>{if(!f)return;let v=window.setTimeout(()=>{g()},0);return()=>window.clearTimeout(v)},[f,g]);let x=M.useCallback(()=>{r([]),c(!0),m(null)},[]);return{items:o,hasMore:i,loading:a,error:p,sentinelRef:d,loadMore:g,reset:x}}var le=R(require("react"),1);function Jt(e,t){let n=le.useCallback(()=>{if(typeof window>"u")return t;try{let a=window.localStorage.getItem(e);return a==null?t:JSON.parse(a)}catch{return t}},[e,t]),[o,r]=le.useState(n),i=le.useCallback(a=>{r(u=>{let p=a instanceof Function?a(u):a;try{window.localStorage.setItem(e,JSON.stringify(p))}catch{}return p})},[e]),c=le.useCallback(()=>{try{window.localStorage.removeItem(e)}catch{}r(t)},[e,t]);return le.useEffect(()=>{let a=u=>{u.key===e&&r(n())};return window.addEventListener("storage",a),()=>window.removeEventListener("storage",a)},[e,n]),[o,i,c]}var $e=R(require("react"),1);function Je(e){let[t,n]=$e.useState(()=>typeof window>"u"?!1:window.matchMedia(e).matches);return $e.useEffect(()=>{if(typeof window>"u")return;let o=window.matchMedia(e),r=()=>n(o.matches);o.addEventListener("change",r);let i=window.setTimeout(()=>n(o.matches),0);return()=>{window.clearTimeout(i),o.removeEventListener("change",r)}},[e]),t}var Zt=(e=1024)=>Je(`(min-width: ${e}px)`),Yt=(e=768,t=1023)=>Je(`(min-width: ${e}px) and (max-width: ${t}px)`);var Ze=R(require("react"),1),It=768;function en(){let[e,t]=Ze.useState(()=>typeof window>"u"?!1:window.innerWidth<It);return Ze.useEffect(()=>{let n=window.matchMedia(`(max-width: ${It}px)`),o=()=>{t(window.innerWidth<It)};return n.addEventListener("change",o),()=>n.removeEventListener("change",o)},[]),e}var Te=R(require("react"),1);function Ye(e,t={}){let{page:n=1,pageSize:o=10}=t,[r,i]=Te.useState(n),[c,a]=Te.useState(o),u=Math.max(1,Math.ceil(e/c)),p=Math.min(r,u),m=(p-1)*c,d=Te.useCallback(l=>i(Math.min(Math.max(1,l),u)),[u]),f=Te.useCallback(l=>{a(l),i(1)},[]);return{page:p,pageSize:c,total:e,totalPages:u,offset:m,hasNext:p<u,hasPrev:p>1,setPage:d,setPageSize:f,next:()=>d(p+1),prev:()=>d(p-1),first:()=>i(1),last:()=>d(u)}}var et=R(require("react"),1);function tn(e){let t=et.useRef(void 0);return et.useEffect(()=>{t.current=e},[e]),t.current}var me=R(require("react"),1);function nn(e,t=0){let[n,o]=me.useState(t),r=me.useCallback(()=>o(u=>Math.min(u+1,e-1)),[e]),i=me.useCallback(()=>o(u=>Math.max(u-1,0)),[]),c=me.useCallback(u=>o(Math.min(Math.max(0,u),e-1)),[e]),a=me.useCallback(()=>o(t),[t]);return{step:n,next:r,prev:i,goTo:c,reset:a,isFirst:n===0,isLast:n===e-1}}var ge=R(require("react"),1);function on(e,t=300){let[n,o]=ge.useState(e),r=ge.useRef(0),i=ge.useRef(null);return ge.useEffect(()=>{let c=Date.now(),a=c-r.current;return a>=t?(r.current=c,o(e)):(i.current&&clearTimeout(i.current),i.current=setTimeout(()=>{r.current=Date.now(),o(e)},t-a)),()=>{i.current&&clearTimeout(i.current)}},[e,t]),n}var tt=R(require("react"),1);function rn(e=!1){let[t,n]=tt.useState(e),o=tt.useCallback(()=>n(r=>!r),[]);return[t,o,n]}var Z=require("react"),ln=require("react/jsx-runtime"),nt=["zh-CN","en-US"],sn="chaos-ui-locale";function yt(){if(typeof window>"u")return"zh-CN";let e=localStorage.getItem(sn);return e&&nt.includes(e)?e:"zh-CN"}var an=(0,Z.createContext)(null);function cn({initialLocale:e="zh-CN",children:t}){let[n,o]=(0,Z.useState)(()=>typeof window>"u"?e:yt()),r=(0,Z.useCallback)(i=>{o(i),typeof window<"u"&&localStorage.setItem(sn,i)},[]);return(0,Z.useEffect)(()=>{document.documentElement.lang=n},[n]),(0,ln.jsx)(an.Provider,{value:{locale:n,setLocale:r,supportedLocales:[...nt]},children:t})}function un(){let e=(0,Z.useContext)(an);if(!e)throw new Error("useLocale must be used within a LocaleProvider");return e}var C=R(require("react"),1);function ht(e,t,n){if(e===!1)return!1;if(e===void 0)return n;if(typeof e=="string")return e;let o=e[t];return o!==void 0?o:n}function dn(e){let{fetcher:t,onCreate:n,onUpdate:o,onDelete:r,rowKey:i="id",emptyForm:c,defaultPageSize:a=20,onValidate:u,defaultFilters:p={},successMessage:m,deleteConfirmTitle:d}=e,[f,l]=C.useState(p),[g,x]=C.useState([]),[v,b]=C.useState(0),[T,h]=C.useState(!1),[L,W]=C.useState(null),[te,Ie]=C.useState(c),[ft,Ke]=C.useState(!1),Q=Ye(v,{pageSize:a}),O=_e(),Ee=L!==null,ne=C.useCallback(async()=>{Ke(!0);try{let w=await t(Q.page,Q.pageSize,f);x(w.list),b(w.total)}finally{Ke(!1)}},[t,Q.page,Q.pageSize,f]);C.useEffect(()=>{ne()},[ne]);let mt=C.useCallback(w=>{l(We=>({...We,...w})),Q.setPage(1)},[Q.setPage]),I=C.useCallback(w=>{l(w),Q.setPage(1)},[Q.setPage]),P=C.useCallback(()=>{W(null),Ie(c),h(!0)},[c]),j=C.useCallback(w=>{W(w),Ie({...w}),h(!0)},[]),q=C.useCallback((w,We)=>{Ie(Qe=>({...Qe,[w]:We}))},[]),pe=C.useCallback(async()=>{if(u){let w=u(te);if(w){O.error(w);return}}try{if(Ee&&L&&o){await o(L[i],te);let w=ht(m,"update","Updated successfully");w!==!1&&O.success(w)}else if(n){await n(te);let w=ht(m,"create","Created successfully");w!==!1&&O.success(w)}h(!1),await ne()}catch{O.error("Operation failed")}},[L,te,Ee,n,o,u,i,ne,O,m]),Pe=C.useCallback(async w=>{if(!(!r||!globalThis.confirm?.(d??"Are you sure you want to delete this item?")))try{await r(w[i]);let Qe=ht(m,"delete","Deleted successfully");Qe!==!1&&O.success(Qe),await ne()}catch{O.error("Delete failed")}},[r,i,ne,O,m,d]);return{data:g,total:v,loading:ft,filters:f,setFilters:mt,resetFilters:I,pagination:Q,modalOpen:T,setModalOpen:h,editing:L,form:te,setForm:Ie,updateFormField:q,handleAdd:P,handleEdit:j,handleSubmit:pe,handleDelete:Pe,refresh:ne,isEdit:Ee}}var pn=R(require("react"),1);function fn(e,{template:t="{title}",defaultTitle:n=""}={}){pn.useEffect(()=>{let o=e??n;document.title=o?t.replace("{title}",o):n||t.replace("{title}","")},[e,t,n])}var E=R(require("react"),1);var y=require("react/jsx-runtime"),mn=E.createContext(null);function gn(e){if(ot)return ot(e);throw new Error("confirmAsync() called outside <ConfirmProvider>. Either wrap your app with <ConfirmProvider> or use useConfirmAsync() hook.")}var ot=null;function Rn({children:e,defaultOptions:t}){let[n,o]=E.useState({open:!1,options:{},resolve:null}),r=E.useCallback(a=>new Promise(u=>{let p={...t,...a};o({open:!0,options:p,resolve:u})}),[t]);E.useEffect(()=>(ot=r,()=>{ot=null}),[r]);let i=E.useCallback(()=>{n.resolve?.(!0),o(a=>({...a,open:!1}))},[n.resolve]),c=E.useCallback(()=>{n.resolve?.(!1),o(a=>({...a,open:!1}))},[n.resolve]);return(0,y.jsxs)(mn.Provider,{value:r,children:[e,(0,y.jsx)(De,{open:n.open,onOpenChange:a=>{a||c()},children:(0,y.jsxs)(Fe,{showCloseButton:!1,className:"sm:max-w-sm",children:[(0,y.jsx)(Ue,{children:(0,y.jsxs)("div",{className:"flex items-start gap-3",children:[(0,y.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-full bg-muted",children:n.options.icon??(0,y.jsx)(xt,{className:"size-4"})}),(0,y.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,y.jsx)(Ae,{children:n.options.title??"Confirm"}),(0,y.jsx)(Be,{children:n.options.content??"This action cannot be undone. Continue?"})]})]})}),(0,y.jsxs)(Ne,{children:[(0,y.jsx)(G,{variant:"outline",onClick:c,children:n.options.cancelText??"Cancel"}),(0,y.jsx)(G,{variant:n.options.okVariant==="destructive"?"destructive":"default",onClick:i,children:n.options.okText??"Confirm"})]})]})})]})}function xn(){let[e,t]=E.useState({open:!1,options:{},resolve:null}),n=E.useCallback(c=>new Promise(a=>{t({open:!0,options:c,resolve:a})}),[]),o=E.useCallback(()=>{e.resolve?.(!0),t(c=>({...c,open:!1}))},[e.resolve]),r=E.useCallback(()=>{e.resolve?.(!1),t(c=>({...c,open:!1}))},[e.resolve]);return[n,()=>(0,y.jsx)(De,{open:e.open,onOpenChange:c=>{c||r()},children:(0,y.jsxs)(Fe,{showCloseButton:!1,className:"sm:max-w-sm",children:[(0,y.jsx)(Ue,{children:(0,y.jsxs)("div",{className:"flex items-start gap-3",children:[(0,y.jsx)("div",{className:"flex size-9 shrink-0 items-center justify-center rounded-full bg-muted",children:e.options.icon??(0,y.jsx)(xt,{className:"size-4"})}),(0,y.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,y.jsx)(Ae,{children:e.options.title??"Confirm"}),(0,y.jsx)(Be,{children:e.options.content??"This action cannot be undone. Continue?"})]})]})}),(0,y.jsxs)(Ne,{children:[(0,y.jsx)(G,{variant:"outline",onClick:r,children:e.options.cancelText??"Cancel"}),(0,y.jsx)(G,{variant:e.options.okVariant==="destructive"?"destructive":"default",onClick:o,children:e.options.okText??"Confirm"})]})]})})]}function vn(){let e=E.useContext(mn);if(!e)throw new Error("useConfirmContext must be used within <ConfirmProvider>");return e}var de=R(require("react"),1);function vo(e,t){for(let n of t)switch(n.type){case"required":{if(e==null||e===""||Array.isArray(e)&&e.length===0)return n.message;break}case"min":{if(typeof n.value=="number"&&(typeof e=="number"&&e<n.value||typeof e=="string"&&e.length<n.value))return n.message;break}case"max":{if(typeof n.value=="number"&&(typeof e=="number"&&e>n.value||typeof e=="string"&&e.length>n.value))return n.message;break}case"pattern":{if(n.value instanceof RegExp&&typeof e=="string"&&!n.value.test(e))return n.message;break}case"custom":{if(typeof n.value=="function"&&!n.value(e))return n.message;break}}}function bn(e={}){let{rules:t=[],externalError:n,validateOnBlur:o=!0,validateOnChange:r=!1}=e,[i,c]=de.useState(void 0),[a,u]=de.useState(!1),p=de.useCallback(g=>{let x=vo(g,t);return c(x),x},[t]),m=de.useCallback(g=>{u(!0),o&&p(g.target.value)},[p,o]),d=de.useCallback(g=>{r&&a&&p(g.target.value)},[p,r,a]),f=de.useCallback(()=>{c(void 0),u(!1)},[]);return{error:n??i,onBlur:m,onChange:d,validate:p,reset:f,touched:a}}var rt=R(require("react"),1);function wt(){if(!(typeof navigator>"u"))return navigator.connection}function In(){let[e,t]=rt.useState(()=>{let n=wt();return{online:navigator.onLine,...n?{downlink:n.downlink,effectiveType:n.effectiveType,rtt:n.rtt,saveData:n.saveData}:{}}});return rt.useEffect(()=>{let n=()=>t(c=>({...c,online:!0})),o=()=>t(c=>({...c,online:!1})),r=()=>{let c=wt();c&&t(a=>({...a,downlink:c.downlink,effectiveType:c.effectiveType,rtt:c.rtt,saveData:c.saveData}))};window.addEventListener("online",n),window.addEventListener("offline",o);let i=wt();return i?.addEventListener?.("change",r),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",o),i?.removeEventListener?.("change",r)}},[]),e}var st=R(require("react"),1);function yn(e){let[t,n]=st.useState(typeof document<"u"?!document.hidden:!0);return st.useEffect(()=>{let o=()=>{let r=!document.hidden;n(r),e?.(r)};return document.addEventListener("visibilitychange",o),()=>document.removeEventListener("visibilitychange",o)},[e]),t}var it=R(require("react"),1);function hn(e=100){let[t,n]=it.useState({width:typeof window<"u"?window.innerWidth:0,height:typeof window<"u"?window.innerHeight:0});return it.useEffect(()=>{let o,r=()=>{clearTimeout(o),o=setTimeout(()=>{n({width:window.innerWidth,height:window.innerHeight})},e)};return window.addEventListener("resize",r),()=>{window.removeEventListener("resize",r),clearTimeout(o)}},[e]),t}var Re=R(require("react"),1);function Tt(e=50,t){let[n,o]=Re.useState({x:0,y:0,isScrolled:!1,direction:null}),r=Re.useRef(0),i=Re.useRef(0);return Re.useEffect(()=>{let c=t?.current,a=!c,u=()=>({x:a?window.scrollX:c.scrollLeft,y:a?window.scrollY:c.scrollTop}),p=()=>{let d=Date.now();if(d-i.current<e)return;i.current=d;let{x:f,y:l}=u(),g=l-r.current;o({x:f,y:l,isScrolled:l>0,direction:g>0?"down":g<0?"up":null}),r.current=l},m=a?window:c;return m.addEventListener("scroll",p,{passive:!0}),()=>m.removeEventListener("scroll",p)},[e,t]),n}function wn(e=50,t){return Tt(e,t).direction}var at=R(require("react"),1);function Tn(){let[e,t]=at.useState(()=>typeof window>"u"?"portrait":window.innerWidth>window.innerHeight?"landscape":"portrait");return at.useEffect(()=>{let n=()=>{t(window.innerWidth>window.innerHeight?"landscape":"portrait")};return screen.orientation?.addEventListener?.("change",n),window.addEventListener("resize",n),()=>{screen.orientation?.removeEventListener?.("change",n),window.removeEventListener("resize",n)}},[]),e}var _=R(require("react"),1);function Cn(e=2e3){let[t,n]=_.useState(!1),[o,r]=_.useState(!1),[i,c]=_.useState(null),a=_.useRef(void 0),u=_.useCallback(async m=>{n(!0);try{return await navigator.clipboard.writeText(m),r(!0),c(m),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>r(!1),e),!0}catch{try{let d=document.createElement("textarea");d.value=m,d.style.position="fixed",d.style.opacity="0",document.body.appendChild(d),d.select();let f=document.execCommand("copy");return document.body.removeChild(d),f&&(r(!0),c(m),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>r(!1),e)),f}catch{return!1}}finally{n(!1)}},[e]),p=_.useCallback(()=>{r(!1),c(null),n(!1)},[]);return _.useEffect(()=>()=>{a.current&&clearTimeout(a.current)},[]),{copy:u,copying:t,copied:o,value:i,reset:p}}var Sn=require("react-hook-form");function ct(e){return(0,Sn.useForm)({mode:"onTouched",reValidateMode:"onChange",...e})}var Ct=require("@hookform/resolvers/zod");function Ln(e={}){let{schema:t,resolver:n,...o}=e,r=n??(t?(0,Ct.zodResolver)(t):void 0);return ct(r?{...o,resolver:r}:o)}function kn(e){return(0,Ct.zodResolver)(e)}var Ce=R(require("react"),1),Mn=require("react/jsx-runtime"),ut=Ce.createContext({permissions:[],hasPermission:()=>!0,hasAny:()=>!0,hasAll:()=>!0});function En({permissions:e,children:t}){let n=Ce.useMemo(()=>{let o=new Set(e);return{permissions:e,hasPermission:r=>o.has(r),hasAny:r=>r.some(i=>o.has(i)),hasAll:r=>r.every(i=>o.has(i))}},[e]);return(0,Mn.jsx)(ut.Provider,{value:n,children:t})}function Pn(){return Ce.useContext(ut)}var Y=R(require("react"),1);function On(e){let[t,n]=Y.useState(void 0),[o,r]=Y.useState("idle"),[i,c]=Y.useState(void 0),a=Y.useRef(!0);return Y.useEffect(()=>(a.current=!0,()=>{a.current=!1}),[]),{submit:Y.useCallback(async(p,m)=>{r("pending"),c(void 0);try{let d=await e(p,m);return a.current?(n(d),r("success"),d):void 0}catch(d){if(!a.current)return;throw c(d instanceof Error?d:new Error(String(d))),r("error"),d}},[e]),status:o,data:t,error:i,isLoading:o==="pending"}}var U=R(require("react"),1);function Dn(e){let[t,n]=U.useState("idle"),[o,r]=U.useState(void 0),[i,c]=U.useState(void 0),a=U.useRef(null),u=U.useRef(!0);U.useEffect(()=>(u.current=!0,()=>{u.current=!1,a.current?.abort()}),[]);let p=U.useCallback(async()=>{a.current?.abort();let f=new AbortController;a.current=f,n("pending"),c(void 0);try{let l=await e(f.signal);return f.signal.aborted||!u.current?void 0:(r(l),n("success"),l)}catch(l){if(f.signal.aborted||!u.current)return;throw c(l instanceof Error?l:new Error(String(l))),n("error"),l}},[e]),m=U.useCallback(()=>{a.current?.abort()},[]),d=U.useCallback(()=>{n("idle"),r(void 0),c(void 0)},[]);return{run:p,status:t,data:o,error:i,isLoading:t==="pending",abort:m,reset:d}}var xe=R(require("react"),1),bo={draft:["submitted","void"],submitted:["approved","rejected","void"],approved:["paid","void"],rejected:["submitted","void"],paid:["void"],void:[]};function Fn(e="draft"){let[t,n]=xe.useState(e),[o,r]=xe.useState([e]),i=xe.useCallback(u=>(bo[t]??[]).includes(u),[t]),c=xe.useCallback(u=>i(u)?(n(u),r(p=>[...p,u]),!0):!1,[i]),a=xe.useCallback((u=e)=>{n(u),r([u])},[e]);return{status:t,transition:c,can:i,history:o,reset:a}}var ee=R(require("react"),1);function Un(e,t={}){let{storageKey:n}=t,[o,r]=ee.useState(()=>{if(n&&typeof window<"u")try{let d=window.localStorage.getItem(n);if(d)return{...e,...JSON.parse(d)}}catch{}return e}),i=ee.useRef(new Set),c=ee.useCallback(d=>{if(n&&typeof window<"u")try{window.localStorage.setItem(n,JSON.stringify(d))}catch{}i.current.forEach(f=>f(d))},[n]),a=ee.useCallback(d=>{r(f=>{let l=typeof d=="function"?d(f):d;return c(l),l})},[c]),u=ee.useCallback(d=>{r(f=>{let l={...f,...d};return c(l),l})},[c]),p=ee.useCallback(()=>{r(e),c(e)},[e,c]),m=ee.useCallback(d=>(i.current.add(d),()=>{i.current.delete(d)}),[]);return{scope:o,setScope:a,patch:u,reset:p,subscribe:m}}var N=R(require("react"),1),Se=new Map;function Nn(e,t){let[n,o]=N.useState(e&&Se.has(e)?Se.get(e):[]),[r,i]=N.useState(e!==null&&!(e&&Se.has(e))),[c,a]=N.useState(void 0),[u,p]=N.useState(0),m=N.useRef(!0);N.useEffect(()=>(m.current=!0,()=>{m.current=!1}),[]),N.useEffect(()=>{if(e){if(Se.has(e)&&u===0){o(Se.get(e)),i(!1);return}i(!0),t(e).then(l=>{m.current&&(Se.set(e,l),o(l),a(void 0),i(!1))}).catch(l=>{m.current&&(a(l instanceof Error?l:new Error(String(l))),i(!1))})}},[e,u,t]);let d=N.useCallback(l=>n.find(g=>g.value===l)?.label??l,[n]),f=N.useCallback(()=>p(l=>l+1),[]);return{options:n,isLoading:r,error:c,getLabel:d,refresh:f}}var z=R(require("react"),1);function St(){return typeof window<"u"}var Lt={text(e,t,n="text/plain"){if(!St())return;let o=new Blob([t],{type:n});this.blob(e,o)},json(e,t,n=!0){let o=JSON.stringify(t,null,n?2:0);this.text(e,o,"application/json")},blob(e,t){if(!St())return;let n=URL.createObjectURL(t);this.url(e,n),setTimeout(()=>URL.revokeObjectURL(n),1e3)},url(e,t){if(!St())return;let n=document.createElement("a");n.href=t,n.download=e,n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)},csv(e,t,n){if(t.length===0){this.text(e,"","text/csv");return}let o=n??Object.keys(t[0]),r=[o.join(","),...t.map(i=>o.map(c=>{let a=i[c],u=a==null?"":String(a);return u.includes(",")||u.includes('"')||u.includes(`
7
+ `)?`"${u.replace(/"/g,'""')}"`:u}).join(","))].join(`
8
+ `);this.text(e,"\uFEFF"+r,"text/csv;charset=utf-8")},async response(e,t){let n=await t.blob();this.blob(e,n)},async fetch(e,t,n){let o=await fetch(e,n);if(!o.ok)throw new Error(`Download failed: ${o.status}`);await this.response(t,o)}};function An(){let[e,t]=z.useState(!1),[n,o]=z.useState(void 0),[r,i]=z.useState(0),c=z.useRef(!1),a=z.useRef(!0);z.useEffect(()=>(a.current=!0,()=>{a.current=!1}),[]);let u=z.useCallback(async(m,d,f)=>{c.current=!1,t(!0),o(void 0),i(0);try{let l=await m();if(c.current||!a.current)return;i(1),typeof l=="string"?Lt.text(d,l,f??"text/plain"):Lt.blob(d,l)}catch(l){if(c.current||!a.current)return;o(l instanceof Error?l:new Error(String(l)))}finally{a.current&&t(!1)}},[]),p=z.useCallback(()=>{c.current=!0},[]);return{exportFile:u,isLoading:e,error:n,progress:r,abort:p}}var X=R(require("react"),1);function Bn(e,t){let[n,o]=X.useState({data:void 0,error:void 0,isLoading:!0}),r=X.useRef(!0),i=X.useRef(0),[c,a]=X.useState(0);X.useEffect(()=>(r.current=!0,()=>{r.current=!1}),[]);let u=X.useCallback(()=>{a(p=>p+1)},[]);return X.useEffect(()=>{let p=new AbortController;i.current+=1;let m=i.current;return o(d=>({...d,isLoading:!0,error:void 0})),fetch(e,{...t,signal:p.signal}).then(async d=>{if(!d.ok)throw new Error(`HTTP ${d.status}`);let f=await d.json();r.current&&m===i.current&&o({data:f,error:void 0,isLoading:!1})}).catch(d=>{if(!p.signal.aborted&&r.current&&m===i.current){let f=d instanceof Error?d:new Error(String(d));o(l=>({...l,error:f,isLoading:!1}))}}),()=>p.abort()},[e,JSON.stringify(t),c]),{...n,refetch:u}}var H=R(require("react"),1);function Vn(e,t={}){let{validate:n,createId:o=()=>Math.random().toString(36).slice(2)}=t,[r,i]=H.useState(e),[c,a]=H.useState(!1),u=H.useMemo(()=>{if(!n)return{};let x={};return r.forEach((v,b)=>{let T=n(v,b);T&&Object.keys(T).length>0&&(x[b]=T)}),x},[r,n]),p=H.useCallback(()=>a(!0),[]),m=H.useCallback(x=>{i(v=>[...v,{...x,id:x.id||o()}]),p()},[o,p]),d=H.useCallback((x,v)=>{i(b=>b.map((T,h)=>h===x?{...T,...v}:T)),p()},[p]),f=H.useCallback(x=>{i(v=>v.filter((b,T)=>T!==x)),p()},[p]),l=H.useCallback(x=>{i(x),p()},[p]),g=H.useCallback(x=>{i(x??e),a(!1)},[e]);return{rows:r,addRow:m,updateRow:d,removeRow:f,setRows:l,reset:g,errors:u,isValid:Object.keys(u).length===0,dirty:c}}var Le=R(require("react"),1);function zn(e=6e4,t=["mousedown","keydown","touchstart","scroll","mousemove"]){let[n,o]=Le.useState(!1),r=Le.useRef(void 0);return Le.useEffect(()=>{if(typeof window>"u")return;let i=()=>{o(!1),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>o(!0),e)};return i(),t.forEach(c=>window.addEventListener(c,i,{passive:!0})),()=>{r.current&&clearTimeout(r.current),t.forEach(c=>window.removeEventListener(c,i))}},[e]),n}var K=R(require("react"),1);function Hn(){let[e,t]=K.useState([]),[n,o]=K.useState([]),[r,i]=K.useState(!1),[c,a]=K.useState(0),u=K.useRef(!0);K.useEffect(()=>(u.current=!0,()=>{u.current=!1}),[]);let p=K.useCallback(async(d,f)=>{i(!0),a(0),o([]),t([]);try{let l=await d.text();if(!u.current)return[];a(.5);let g=await f(l,d);return u.current?(t(g),a(1),g):[]}catch(l){return u.current?(o([{row:0,message:l instanceof Error?l.message:String(l)}]),[]):[]}finally{u.current&&i(!1)}},[]),m=K.useCallback(()=>{t([]),o([]),a(0),i(!1)},[]);return{rows:e,errors:n,isLoading:r,progress:c,importFile:p,reset:m}}var A=R(require("react"),1);function Kn(e,t={}){let{onCommit:n,validate:o}=t,[r,i]=A.useState(e),[c,a]=A.useState(!1),[u,p]=A.useState(null),m=A.useRef(e);m.current=e,A.useEffect(()=>{c||i(e)},[e,c]);let d=A.useCallback(()=>{i(m.current),p(null),a(!0)},[]),f=A.useCallback(x=>{i(x),p(o?o(x):null)},[o]),l=A.useCallback(async()=>{let x=o?o(r):null;if(x){p(x);return}p(null),a(!1),await n?.(r)},[r,o,n]),g=A.useCallback(()=>{i(m.current),p(null),a(!1)},[]);return{value:e,draft:r,isEditing:c,error:u,isValid:u===null,dirty:r!==e,start:d,setDraft:f,commit:l,cancel:g}}var lt=R(require("react"),1);function Wn(){if(typeof navigator>"u")return{online:!0,effectiveType:void 0,downlink:void 0,rtt:void 0,saveData:void 0};let e=navigator.connection;return{online:navigator.onLine,effectiveType:e?.effectiveType,downlink:e?.downlink,rtt:e?.rtt,saveData:e?.saveData}}function Qn(){let[e,t]=lt.useState(Wn);return lt.useEffect(()=>{if(typeof window>"u")return;let n=()=>t(Wn());window.addEventListener("online",n),window.addEventListener("offline",n);let o=navigator.connection;return o?.addEventListener?.("change",n),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",n),o?.removeEventListener?.("change",n)}},[]),e}var dt=R(require("react"),1);function jn(){let[e,t]=dt.useState(!1);return{print:dt.useCallback(async(o,r={})=>{if(typeof window>"u")return;let{title:i,beforePrint:c,afterPrint:a}=r;t(!0),c?.();try{o?await Io(o,r):window.print(),i&&(document.title=i)}finally{a?.(),t(!1)}},[]),isPrinting:e}}function Io(e,t){return new Promise(n=>{let o=document.createElement("iframe");o.style.position="fixed",o.style.right="0",o.style.bottom="0",o.style.width="0",o.style.height="0",o.style.border="0",document.body.appendChild(o);let r=o.contentWindow?.document;if(!r){document.body.removeChild(o),n();return}r.open(),r.write(`<!doctype html><html><head><title>${t.title??""}</title>`),t.cssText&&r.write(`<style>${t.cssText}</style>`),r.write(`</head><body>${e.outerHTML}</body></html>`),r.close();let i=()=>{document.body.removeChild(o),n()};o.contentWindow?.addEventListener("afterprint",i,{once:!0}),setTimeout(()=>{try{o.contentWindow?.focus(),o.contentWindow?.print()}catch{}setTimeout(i,500)},100)})}var ve=R(require("react"),1);function Gn(){let[e,t]=ve.useState([]),n=ve.useCallback(c=>{t(a=>[c,...a])},[]),o=ve.useCallback(()=>{let c;return t(a=>a.length===0?a:(c=a[0],a.slice(1))),c},[]),r=ve.useCallback(()=>e[0],[e]),i=ve.useCallback(()=>t([]),[]);return{redoCount:e.length,push:n,pop:o,peek:r,clear:i}}var ke=R(require("react"),1);function _n(e,t={}){let{onMessage:n,event:o,withCredentials:r=!1}=t,[i,c]=ke.useState({readyState:0,lastEvent:void 0,error:void 0}),a=ke.useRef(n);return a.current=n,ke.useEffect(()=>{if(!e||typeof EventSource>"u")return;let u=new EventSource(e,{withCredentials:r});c(l=>({...l,readyState:u.readyState}));let p=u,m=o??"message",d=l=>{c(g=>({...g,lastEvent:l.data,readyState:u.readyState})),a.current?.(l.data,l)};p.addEventListener(m,d);let f=l=>{c(g=>({...g,error:l,readyState:u.readyState}))};return u.addEventListener("error",f),()=>{u.removeEventListener(m,d),u.removeEventListener("error",f),u.close()}},[e,o,r]),i}var Xn=require("@tanstack/react-query");function qn(e){return(0,Xn.useQuery)({staleTime:3e4,...e})}var $n=require("@tanstack/react-query");function Jn(e){return(0,$n.useMutation)(e)}var B=R(require("react"),1),He=new Map;function Zn(e,t,n={}){let{revalidateOnFocus:o=!0,refreshInterval:r=0,dedupingInterval:i=2e3}=n,[c,a]=B.useState(e&&He.has(e)?He.get(e).data:void 0),[u,p]=B.useState(void 0),[m,d]=B.useState(e!==null&&!(e&&He.has(e))),f=B.useRef(!0),l=B.useRef(0);B.useEffect(()=>(f.current=!0,()=>{f.current=!1}),[]);let g=B.useCallback(()=>{if(!e)return;let v=Date.now();v-l.current<i&&l.current!==0||(l.current=v,d(!0),t(e).then(b=>{f.current&&(He.set(e,{data:b,ts:v}),a(b),p(void 0),d(!1))}).catch(b=>{f.current&&(p(b instanceof Error?b:new Error(String(b))),d(!1))}))},[e,t,i]);B.useEffect(()=>{if(!e)return;g();let v;r>0&&(v=setInterval(g,r));let b=()=>{o&&g()};return o&&typeof window<"u"&&window.addEventListener("focus",b),()=>{v&&clearInterval(v),typeof window<"u"&&window.removeEventListener("focus",b)}},[e,g,r,o]);let x=B.useCallback(v=>{e&&a(b=>{let T=typeof v=="function"?v(b):v;return T!==void 0&&He.set(e,{data:T,ts:Date.now()}),T!==void 0?T:b})},[e]);return{data:c,error:u,isLoading:m,mutate:x}}var S=R(require("react"),1);function Yn(e,t={}){let{pageSize:n=10,initialSort:o={key:null,direction:"asc"},filter:r,getRowId:i=(I,P)=>String(P)}=t,[c,a]=S.useState(1),[u,p]=S.useState(n),[m,d]=S.useState(o),[f,l]=S.useState(""),[g,x]=S.useState(new Set),v=S.useMemo(()=>!f||!r?e:e.filter(I=>r(I,f)),[e,f,r]),b=S.useMemo(()=>{if(!m.key)return v;let I=m.key,P=m.direction==="asc"?1:-1;return[...v].sort((j,q)=>{let pe=j[I],Pe=q[I];return pe===Pe?0:pe==null?1:Pe==null?-1:pe>Pe?P:-P})},[v,m]),T=b.length,h=Math.max(1,Math.ceil(T/u)),L=Math.min(c,h),W=(L-1)*u,te=S.useMemo(()=>b.slice(W,W+u),[b,W,u]),Ie=S.useCallback(I=>{d(P=>P.key!==I?{key:I,direction:"asc"}:P.direction==="asc"?{key:I,direction:"desc"}:{key:null,direction:"asc"})},[]),ft=S.useCallback(I=>{l(I),a(1)},[]),Ke=S.useCallback(I=>a(Math.min(Math.max(1,I),h)),[h]),Q=S.useCallback(I=>{p(I),a(1)},[]),O=S.useMemo(()=>te.map((I,P)=>i(I,W+P)),[te,W,i]),Ee=S.useCallback(I=>{x(P=>{let j=new Set(P);return j.has(I)?j.delete(I):j.add(I),j})},[]),ne=S.useCallback(()=>{x(I=>{if(O.every(q=>I.has(q))){let q=new Set(I);return O.forEach(pe=>q.delete(pe)),q}let j=new Set(I);return O.forEach(q=>j.add(q)),j})},[O]),mt=S.useCallback(()=>x(new Set),[]);return{rows:te,page:L,pageSize:u,total:T,totalPages:h,sort:m,setSort:Ie,filterTerm:f,setFilter:ft,setPage:Ke,setPageSize:Q,selected:g,toggleRow:Ee,toggleAll:ne,clearSelected:mt}}var be=require("react");var eo=null;function pt(e,t){eo&&eo.track({name:e,properties:t})}function to(e){let{event:t,properties:n,trackOnMount:o,trackOnUnmount:r}=e,i=(0,be.useRef)(n);i.current=n;let c=(0,be.useCallback)(a=>{pt(t,{...i.current,...a})},[t]);return(0,be.useEffect)(()=>{o&&pt(t,i.current)},[]),(0,be.useEffect)(()=>()=>{r&&pt(t,{...i.current,unmount:!0})},[]),{trackNow:c}}var ie=R(require("react"),1);function no(e,t=100){let[n,o]=ie.useState([]),[r,i]=ie.useState(e),[c,a]=ie.useState([]),u=ie.useCallback(f=>{let l=typeof f=="function"?f(r):f;o(g=>{let x=[...g,r];return x.length>t?x.slice(x.length-t):x}),i(l),a([])},[r,t]),p=ie.useCallback(()=>{o(f=>{if(f.length===0)return f;let l=f[f.length-1];return i(g=>(a(x=>[g,...x]),l)),f.slice(0,-1)})},[]),m=ie.useCallback(()=>{a(f=>{if(f.length===0)return f;let l=f[0];return i(g=>(o(x=>[...x,g]),l)),f.slice(1)})},[]),d=ie.useCallback(()=>{o([]),a([]),i(e)},[e]);return{value:r,setValue:u,undo:p,redo:m,clear:d,canUndo:n.length>0,canRedo:c.length>0}}var V=R(require("react"),1);function oo(e,t={}){let{onOpen:n,onMessage:o,onClose:r,onError:i,protocols:c,retryInterval:a=3e3,autoConnect:u=!0}=t,[p,m]=V.useState(0),[d,f]=V.useState(void 0),l=V.useRef(null),g=V.useRef({onOpen:n,onMessage:o,onClose:r,onError:i});g.current={onOpen:n,onMessage:o,onClose:r,onError:i};let x=V.useRef(void 0),v=V.useCallback(()=>{if(!e||typeof WebSocket>"u")return;let h=new WebSocket(e,c);l.current=h,m(h.readyState),h.onopen=L=>{m(h.readyState),g.current.onOpen?.(L)},h.onmessage=L=>{let W=typeof L.data=="string"?L.data:"";f(W),g.current.onMessage?.(W,L)},h.onclose=L=>{m(h.readyState),g.current.onClose?.(L),u&&a>0&&(x.current=setTimeout(v,a))},h.onerror=L=>{g.current.onError?.(L)}},[e,c,u,a]);V.useEffect(()=>(u&&v(),()=>{x.current&&clearTimeout(x.current),l.current?.close()}),[u,v]);let b=V.useCallback(h=>{l.current?.readyState===WebSocket.OPEN&&l.current.send(h)},[]),T=V.useCallback(()=>{x.current&&clearTimeout(x.current),l.current?.close()},[]);return{readyState:p,lastMessage:d,send:b,close:T}}0&&(module.exports={ConfirmProvider,LocaleProvider,ModalRenderer,PermissionContext,PermissionProvider,confirmAsync,getStoredLocale,supportedLocales,useApproval,useAsync,useAsyncTask,useBill,useBreakpoint,useClickOutside,useClipboard,useConfirmAsync,useConfirmContext,useCopyToClipboard,useCountdown,useCrud,useDataScope,useDebounce,useDict,useEventListener,useExport,useFetch,useFieldValidation,useForm,useFormSchema,useFormTable,useHotkeys,useIdle,useImport,useInView,useInfiniteScroll,useIntersectionObserver,useIsBreakpoint,useIsDesktop,useIsMobile,useIsTablet,useKey,useKeyCombo,useLineEditor,useLocalStorage,useLocale,useMediaQuery,useMessage,useModal,useMutation,useNetworkQuality,useNetworkStatus,useNotification,useOrientation,usePageTitle,usePagination,usePermission,usePrevious,usePrint,useQuery,useRedo,useScroll,useScrollDirection,useSse,useStep,useSwr,useTable,useThrottle,useToggle,useTrack,useUndo,useVisibilityChange,useWebsocket,useWindowSize,zodResolverAdapter});