@jerry-fd/ui 0.4.4 → 0.4.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.
package/data-table.js CHANGED
@@ -1,2 +1,2 @@
1
- import {e,b as b$1,c as c$1,j,f,g,h,l as l$1,d}from'./chunk-EM7GIZXE.js';import {O,V,k,l,p,s,c,r,t,q,U,n,T,m as m$1,o,M,i,D as D$1,E,v,F,w,x,z,y,A,B}from'./chunk-VZDC732G.js';export{P as DATE_FORMATS,R as formatDateRange,Q as getDateDisplayFormat,S as getPickerInputFormat,O as useTransition}from'./chunk-VZDC732G.js';import {b}from'./chunk-M7AD2PUT.js';import {Table,Pagination,Checkbox}from'antd';import {AnimatePresence,m}from'motion/react';import P,{useState,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {create,useStore,createStore}from'zustand';import {useShallow}from'zustand/react/shallow';import {persist}from'zustand/middleware';import {immer}from'zustand/middleware/immer';import {Check,Upload,Download,RefreshCw,FolderUp}from'lucide-react';import {Progress,Portal}from'radix-ui';function mt(t){P.useEffect(t,[]);}var ca={initial:{opacity:0},animate:{opacity:1},exit:{opacity:0}},le={variants:ca,initial:"initial",animate:"animate",exit:"exit"},da={initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0}},ce={variants:da,initial:"initial",animate:"animate",exit:"exit"},pa={initial:{opacity:0,y:24},animate:{opacity:1,y:0},exit:{opacity:0,y:-24}},de={variants:pa,initial:"initial",animate:"animate",exit:"exit"};var ma={small:"min-h-22",medium:"min-h-26",middle:"min-h-30",large:"min-h-38"};function me({count:t,size:n="small",classNames:a,columns:e,scroll:o}){let r=P.useCallback(()=>ba(e,ma[n]),[e,n]);return jsx(Table,{rowKey:"id",size:n,rowHoverable:false,classNames:a,dataSource:Array.from({length:t},(s,c)=>({id:c})),pagination:false,scroll:o,children:e.map((s,c)=>jsx(Table.Column,{dataIndex:s.dataIndex,width:s.width,title:jsx(j,{className:"h-22 w-full animate-none bg-bg-antd"}),render:r,onCell:()=>c===0?{colSpan:e.length}:{colSpan:0}},s.key||s.dataIndex))})}var ue=16;function ba(t,n){let a=t.length,o=`calc((100% - ${ue*(a-1)}px) / ${a})`,r=t.some(s=>s.skeleton==="avatar"||s.skeleton==="double-line");return jsx("div",{className:c("flex items-center",n),style:{gap:`${ue}px`},children:t.map((s,c)=>{let l=s?.key??c;return jsx("div",{style:{width:o},children:fa(s.skeleton,r)},l)})})}function fa(t,n){switch(t){case "avatar":return jsx(ga,{});case "double-line":return jsx(ya,{});case "group":return jsx(Ca,{needAlignment:n});default:return jsx(Ta,{needAlignment:n})}}function Ta({needAlignment:t}){return jsxs("div",{className:"grid h-full gap-4",children:[t&&jsx("div",{className:"h-12 w-1"}),jsx(j,{className:"h-10"})]})}function ga(){return jsxs("div",{className:"flex w-full items-center gap-6",children:[jsx(j,{className:"shrink-0 rounded-full",style:{width:"var(--avatar-size, 32px)",height:"var(--avatar-size, 32px)"}}),jsxs("div",{className:"grid flex-1 gap-4",children:[jsx(j,{className:"h-12 w-[60%]"}),jsx(j,{className:"h-10"})]})]})}function ya(){return jsxs("div",{className:"grid h-full w-full gap-4 py-4",children:[jsx(j,{className:"h-12 w-[60%]"}),jsx(j,{className:"h-10"})]})}function Ca({needAlignment:t}){return jsxs("div",{className:"grid h-full gap-4",children:[t&&jsx("div",{className:"h-12 w-1"}),jsxs("div",{className:"flex w-full items-center gap-4",children:[jsx(j,{className:"h-10 w-[20%]"}),jsx(j,{className:"h-10 w-[20%]"}),jsx(j,{className:"h-10 w-[20%]"}),jsx(j,{className:"h-10 w-[20%]"}),jsx(j,{className:"h-10 w-[20%]"})]})]})}var $={pagination:{current:1,pageSize:10},filters:[],sorter:{},extra:{action:"paginate",currentDataSource:[]},tableSize:"middle",columnVisibility:{},exporting:false,loading:false,syncing:false,disabled:false},Q=(t,n)=>(t.tabs[n]||(t.tabs[n]={...$}),t.tabs[n]),Sa="APP_UI_TABLE_CONFIG",xa=(t,n)=>({activeTabId:n,tabs:{},stateVersion:0,changeReason:"mount",setActiveTab:a=>t(e=>{e.activeTabId=a,Q(e,a),e.changeReason="tab_switch",e.stateVersion++;}),syncTabExternal:(a,e)=>t(o=>{let r=o.tabs[a];r&&(r.loading=e.loading,r.syncing=e.syncing,r.exporting=e.exporting,r.disabled=e.disabled);}),initTab:(a,e)=>t(o=>{let r=o.tabs[a];r?(e.pagination&&(r.pagination=e.pagination),e.filters&&(r.filters=e.filters),e.sorter&&(r.sorter=e.sorter),r.loading=e.loading,r.syncing=e.syncing,r.exporting=e.exporting,r.disabled=e.disabled):o.tabs[a]={...$,...e};}),setFilters:(a,e)=>t(o=>{let r=Q(o,a);r.filters=e,r.pagination.current=1,o.changeReason="filter",o.stateVersion++;}),setPagination:(a,e,o)=>t(r=>{let s=Q(r,a);s.pagination={current:e,pageSize:o},r.changeReason="paginate",r.stateVersion++;}),setTableChange:(a,e,o)=>t(r=>{let s=Q(r,a);s.sorter=e,s.extra=o,r.changeReason="sort",r.stateVersion++;}),setTableSize:a=>t(e=>{Q(e,e.activeTabId).tableSize=a;}),setColumnVisibility:(a,e)=>t(o=>{Q(o,o.activeTabId).columnVisibility[a]=e;}),setColumnVisibilityState:a=>t(e=>{let o=Q(e,e.activeTabId);o.columnVisibility=typeof a=="function"?a(o.columnVisibility):a;}),toggleColumnVisibility:a=>t(e=>{let o=Q(e,e.activeTabId);o.columnVisibility[a]=!o.columnVisibility[a];}),resetTabUIState:a=>t(e=>{let o=a??e.activeTabId,r=e.tabs[o];r&&(r.tableSize=$.tableSize,r.columnVisibility={});})}),be=(t,n=Sa)=>createStore()(persist(immer(a=>xa(a,t)),{name:n,partialize:a=>({tableUIStatus:Object.fromEntries(Object.entries(a.tabs).map(([e,o])=>[e,{tableSize:o.tableSize,columnVisibility:o.columnVisibility}]))}),merge:(a,e)=>{let o=a,r={...e};if(!o?.tableUIStatus)return r;for(let[s,c]of Object.entries(o.tableUIStatus)){let l=r.tabs[s];l?(c.tableSize&&(l.tableSize=c.tableSize),c.columnVisibility&&(l.columnVisibility=c.columnVisibility)):r.tabs[s]={...$,tableSize:c.tableSize??$.tableSize,columnVisibility:c.columnVisibility??{}};}return r}}));var Te=P.createContext(null),ge=["id","action","actions"],ye=P.createContext({alwaysShowingColumns:ge});function Ce({store:t,tabList:n,alwaysShowingColumns:a,children:e}){let o=P.useMemo(()=>({tabList:n,alwaysShowingColumns:a??ge}),[n,a]);return jsx(ye.Provider,{value:o,children:jsx(Te.Provider,{value:t,children:e})})}function ft(){let t=P.useContext(Te);if(!t)throw new Error("useDataTableStoreApi must be used within DataTableProvider");return t}function J(t){let n=ft();return useStore(n,t)}function De(){let t=ft();return useStore(t,useShallow(n=>n.tabs[n.activeTabId]??$))}function he(){return J(t=>t.tabs[t.activeTabId]?.tableSize??$.tableSize)}function ve(){let t=ft();return useStore(t,useShallow(n=>n.tabs[n.activeTabId]?.columnVisibility??$.columnVisibility))}function Se(){let t=ft();return useStore(t,useShallow(n=>{let a=n.tabs[n.activeTabId];return {loading:a?.loading??false,syncing:a?.syncing??false,exporting:a?.exporting??false,disabled:a?.disabled??false}}))}function ot(){return P.useContext(ye)}function xe(t){let{tabList:n$1}=ot(),a=J(o=>o.activeTabId),e=J(o=>o.setActiveTab);return !n$1||!n$1?.length||n$1.length===1?null:jsx(n,{...t,children:jsx(f,{className:c("w-full"),value:a,onValueChange:e,children:jsx(g,{variant:"line",size:"medium",className:"w-full px-12",children:n$1.map(o=>jsx(h,{value:o.value,className:"py-8",children:o.label},o.id))})})})}var Z=create((t,n)=>({activeTableId:"",tasks:{},updateTableId:a=>t(()=>({activeTableId:a})),addTask:a=>t(e=>{let o=e.activeTableId;return {tasks:{...e.tasks,[o]:[...e.tasks[o]??[],a]}}}),removeTask:a=>t(e=>{let o=e.activeTableId;return {tasks:{...e.tasks,[o]:(e.tasks[o]??[]).filter(r=>r.localTaskId!==a)}}}),updateTask:(a,e)=>t(o=>{let r=o.activeTableId;return {tasks:{...o.tasks,[r]:(o.tasks[r]??[]).map(s=>s.localTaskId===a?{...s,...e}:s)}}}),getTasks:()=>{let a=n();return a.tasks[a.activeTableId]??[]}})),gt=()=>Z(useShallow(t=>t.tasks[t.activeTableId]??[]));function Re({className:t,...n}){let a=O(),[e,o]=P.useState(false),r=J(l=>l.setTableSize),s=he(),c$1=P.useMemo(()=>[{groupType:"radio",value:s,options:[{label:a("large"),value:"large"},{label:a("middle"),value:"middle"},{label:a("compact"),value:"small"}],onValueChange:r}],[r,a,s]);return jsx(l$1,{side:"bottom",align:"end",collisionPadding:6,items:c$1,className:"min-w-100",open:e,onOpenChange:o,children:jsxs(M,{mode:"stroke",variant:"neutral",size:"small",className:c("gap-0",t,e&&"active"),...n,children:[jsx(i,{content:a("density"),size:"small",children:jsx("div",{className:"absolute inset-0"})}),jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"size-16",viewBox:"0 0 1024 1024",children:jsx("path",{d:"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"})})]})})}function Pe(t,n){return new Promise((a,e)=>{let r=Object.assign({},{method:"GET",responseType:"json"},n),{method:s,timeout:c,responseType:l,headers:p,body:i,validateResponse:f}=r,h;function g(){r.signal&&r.signal.removeEventListener("abort",h);}if(r.signal&&r.signal.aborted)return e(new D("Aborted"));let m=new XMLHttpRequest,b=null,u=null;m.open(s.toUpperCase(),t,true),m.timeout=c||0,m.withCredentials=r.withCredentials===true,m.onloadend=function(){if(!m)return;let S=m.status,N=m.getResponseHeader("Content-Type")??"",F=l&&l!=="text"&&l!=="json",k=F?m.response:m.responseText,q=m.getAllResponseHeaders().split(`\r
2
- `).reduce((y,x)=>{let V=x.indexOf(": ");return V!==-1&&(y[x.slice(0,V).toLowerCase()]=x.slice(V+2)),y},{});function L(y){if(b){b.cancel();let x=y instanceof Blob?y.size:y instanceof ArrayBuffer?y.byteLength:typeof y=="string"?y.length:0;r.onDownloadProgress?.({loaded:x,total:x,lengthComputable:true,percentage:100});}r.withResponseHeaders?a({data:y,status:S,headers:q}):a(y);}if(S>=200&&S<300)if(l==="json"){let y=k;try{let x=y!==""?JSON.parse(y):null;if(!(f?.(x)??!0))throw new D("invalid response");L(x);}catch(x){e(x);}}else f?.(k)??true?L(k):e(new D("invalid response"));else {let y=null;if(!F)if(N.includes("application/json"))try{y=k!==""?JSON.parse(k):null;}catch{}else y=k||null;e(new D("Xhr Request failed",S,y));}g(),m=null;},m.onabort=function(){m&&(b?.cancel(),u?.cancel(),e(new D(D.ECONNABORTED)),g(),m=null);},m.onerror=function(){b?.cancel(),u?.cancel(),e(new D("Network Error",D.ERR_NETWORK)),g(),m=null;},m.ontimeout=function(){b?.cancel(),u?.cancel(),e(new D("Timeout exceeded",D.ETIMEDOUT)),g(),m=null;},typeof p=="object"&&Object.keys(p).forEach(R=>{m?.setRequestHeader(R,p[R]);}),i==null&&m.setRequestHeader("Content-Type",""),l&&l!=="json"&&(m.responseType=l),r.onDownloadProgress&&(b=Ee(r.onDownloadProgress),m.addEventListener("progress",b)),r.onUploadProgress&&m.upload&&(u=Ee(r.onUploadProgress),m.upload.addEventListener("progress",u),m.upload.addEventListener("loadend",R=>{u?.cancel(),r.onUploadProgress?.({loaded:R.loaded,total:R.loaded,lengthComputable:true,percentage:100});})),r.signal&&(h=()=>{m&&(e(new D(D.REQUEST_CANCELED,D.REQUEST_CANCELED)),m.abort(),m=null);},r.signal.aborted?h():r.signal.addEventListener("abort",h)),m.send(i??null);})}function Ee(t){return d(a=>{t({loaded:a.loaded,total:a.lengthComputable?a.total:0,lengthComputable:a.lengthComputable,percentage:a.lengthComputable&&a.total>0?Math.round(a.loaded/a.total*100):null});},250)}var D=class extends Error{constructor(a,e,o){super(a);b(this,"message");b(this,"code");b(this,"data");this.name="RequestError",this.message=a,e&&(this.code=e),o!==void 0&&(this.data=o);}};b(D,"ETIMEDOUT","ETIMEDOUT"),b(D,"ERR_NETWORK","ERR_NETWORK"),b(D,"ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION_VALUE"),b(D,"ERR_BAD_OPTION","ERR_BAD_OPTION"),b(D,"ECONNABORTED","ECONNABORTED"),b(D,"ERR_FR_TOO_MANY_REDIRECTS","ERR_FR_TOO_MANY_REDIRECTS"),b(D,"ERR_DEPRECATED","ERR_DEPRECATED"),b(D,"ERR_BAD_RESPONSE","ERR_BAD_RESPONSE"),b(D,"ERR_BAD_REQUEST","ERR_BAD_REQUEST"),b(D,"ERR_CANCELED","ERR_CANCELED"),b(D,"REQUEST_CANCELED","REQUEST_CANCELED"),b(D,"ERR_NOT_SUPPORT","ERR_NOT_SUPPORT"),b(D,"ERR_INVALID_URL","ERR_INVALID_URL");var we=(t=false)=>{let[n,a]=useState(t),e=useCallback(()=>{a(true);},[]),o=useCallback(()=>{a(false);},[]);return [n,e,o]};var Ae=150,yt={ease:[.26,.08,.25,1],duration:.25},_a={initial:{opacity:0,scale:.95},visible:{opacity:1,scale:1,transition:{...yt,when:"beforeChildren"}},hidden:{opacity:0,scale:1.05,transition:{...yt,when:"afterChildren"}}},La={initial:{y:10,opacity:0},visible:{y:0,opacity:1,transition:yt},hidden:{y:-10,opacity:0,transition:yt}};function _e({containerRef:t,accept:n,acceptHint:a,onFileSelect:e}){let o=P.useRef(null),r=P.useRef(null),[s,c,l]=we(false),p=P.useCallback(g=>{g.stopPropagation();let{target:m,relatedTarget:b}=g;m.matches(".data-drop-target, .data-drop-area")&&(!b||!b.matches(".data-drop-target, .data-drop-area"))&&(o.current=window.setTimeout(()=>{l();},Ae));},[l]),i=P.useCallback(()=>{o.current&&window.clearTimeout(o.current);},[]),f=P.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=window.setTimeout(()=>{l();},Ae);},[l]),h=P.useEffectEvent(async g=>{let{dataTransfer:m}=g,b=[];m.files&&m.files.length>0&&(b=b.concat(Array.from(m.files))),b.length&&(r.current&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{e?.(b);},600));});return mt(()=>{if(!t?.current)return;let g=t.current;return g.addEventListener("dragenter",c),()=>{g.removeEventListener("dragenter",c),o.current&&window.clearTimeout(o.current),r.current&&window.clearTimeout(r.current);}}),jsx(Portal.Root,{container:t?.current,asChild:true,children:jsx(AnimatePresence,{children:s&&jsx(m.div,{className:"data-drop-area absolute inset-0 bottom-8 z-10 flex items-center justify-center select-none",onDragLeave:p,onDragOver:i,onDrop:f,initial:"hidden",animate:"visible",exit:"hidden",variants:_a,children:jsx(Oa,{accept:n,acceptHint:a,onFileSelect:h})})})})}function Oa({accept:t,acceptHint:n,onFileSelect:a}){let e=O(),[o,r]=P.useState(false),s=P.useCallback(p=>{if(!t||!p.dataTransfer.items.length){r(false);return}let i=[...p.dataTransfer.items].every(f=>Ma(f.type,t));r(!i);},[t]),c$1=P.useCallback(p=>{let{relatedTarget:i,currentTarget:f}=p;i&&f.contains(i)&&p.stopPropagation();},[]),l=P.useCallback(p=>{if(o){p.preventDefault();return}a(p);},[o,a]);return jsxs("div",{"data-dropzone":true,onDragEnter:s,onDrop:l,onDragLeave:c$1,className:"data-drop-target relative flex h-full w-full items-center justify-center rounded-[8px] bg-bg-weak p-16",children:[jsx("svg",{className:c("pointer-events-none absolute top-16 left-16 h-[calc(100%-32px)] w-[calc(100%-32px)] overflow-visible",o?"text-error-base":"text-primary-base"),children:jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",rx:"8",fill:"none",stroke:"currentColor",strokeDasharray:"11, 8",strokeDashoffset:"0",strokeLinecap:"round",strokeWidth:"2",children:jsx("animate",{attributeName:"stroke-dashoffset",from:"0",to:"-19",dur:"0.5s",repeatCount:"indefinite"})})}),jsxs(m.div,{className:c("pointer-events-none flex flex-col items-center gap-4",o?"text-error-base":"text-primary-base"),variants:La,children:[jsxs("div",{className:"flex flex-col items-center",children:[jsx(FolderUp,{className:"size-48"}),jsx("strong",{className:"text-title-h6",children:e(o?"file_type_rejected":"drop_file_hint")})]}),jsx("span",{className:"text-text-soft",children:n?e("file_support_list",{formats:n}):e("file_support_all")})]})]})}function Ma(t,n,a=""){if(!n||n==="*")return true;if(!t&&!a)return false;let e=n.split(",").map(s=>s.trim().toLowerCase()),o=(t||"").toLowerCase(),r=(a||"").toLowerCase();return e.some(s=>{if(s.startsWith("."))return r.endsWith(s);if(s.endsWith("/*")){let c=s.slice(0,-1);return o.startsWith(c)}return o===s})}function Le(t=""){return `${t}-${Date.now().toString(36)+Math.random().toString(36).slice(2)}`}function Oe(t){return t?t.filter(n=>n.filter!==void 0).map(n=>{let{filter:a,dataIndex:e,title:o}=n,r=Array.isArray(e)?e.join("."):e,s=a.displayName??(typeof o=="string"?o:r);return {...a,columnId:r,displayName:s}}):[]}function Me(t){return t.key?String(t.key):Array.isArray(t.dataIndex)?t.dataIndex.join("."):String(t.dataIndex)}function Ba(t){return typeof t=="string"&&t.length>0}function Be(t){return [Array.isArray(t.dataIndex)?t.dataIndex.join(" "):typeof t.dataIndex=="string"?t.dataIndex:null,typeof t.title=="string"?t.title:null,t.key!==null?String(t.key):null].filter(Ba)}function Fe(t,n=22){if(!t)return "";if(t.length<=n)return t;let a=Math.floor(n/2.5),e=t.lastIndexOf("."),o,r;if(e>0?(o=t.substring(0,e),r=t.substring(e)):(o=t,r=""),o.length<=a*2)return t;let s=o.substring(0,a),c=o.substring(o.length-a);return `${s}\u2026${c}${r}`}function Ve(t,n){return {type:"import",localTaskId:Le(n?`import-file-${n}`:"import-file"),status:"pending",progress:0,file:t}}function He({tooltip:t,btnProps:n,disabled:a,loading:e,containerRef:o,accept:r,acceptHint:s,requestConfig:c,onBeforeUpload:l}){let p=O(),i$1=P.useId(),f=Z(b=>b.addTask),h=Z(b=>b.updateTask),g=a||e,m=P.useCallback(async b=>{if(b=[b[0]],l&&typeof l=="function"){let u=await l(b);if(u===false)return;Array.isArray(u)&&(b=u);}b.forEach((u,R)=>{let S=new AbortController,N={...Ve(u,R),abortController:S};if(f(N),!c)throw Error("requestConfig is required.");let{url:F,method:k="POST",fieldName:q="file",body:L,onSuccess:y,onFailed:x,onUploadProgress:V,...K}=c,O=new FormData;O.append(q,u),L instanceof FormData?L.forEach((_,H)=>O.append(H,_)):L&&Object.keys(L).forEach(_=>{O.append(_,L[_]);}),Pe(F,{...K,onUploadProgress:_=>{V?.(_),h(N.localTaskId,{status:"importing",progress:_.percentage??0});},method:k,body:O,signal:S.signal}).then(_=>{y?.(_),h(N.localTaskId,{status:"done"});}).catch(_=>{x?.(_),h(N.localTaskId,{status:"failed"});});});},[c,l,f,h]);return jsxs(Fragment,{children:[jsx(_e,{containerRef:o,onFileSelect:m,accept:r,acceptHint:s}),jsx("input",{type:"file",id:i$1,accept:r,multiple:false,onChange:b=>{let u=Array.from(b.target.files??[]);u.length&&(m(u),b.target.value="");},className:"invisible absolute -top-9999 -left-9999"}),jsx(i,{content:t??p("import_tooltip"),children:jsx("label",{htmlFor:i$1,className:"m-0 inline-flex cursor-pointer p-0 leading-none",children:jsx(M,{variant:"neutral",mode:"stroke",loading:e,startContent:jsx(Upload,{}),disabled:g,className:"pointer-events-none",...n,children:p("data_import")})})})]})}function $e({disabled:t,columns:n}){let a=O(),{alwaysShowingColumns:e}=ot(),[o,r]=P.useState(false),s=ve(),c$1=J(p=>p.setColumnVisibilityState),l=P.useCallback((p,i)=>{c$1(f=>({...f,[p]:i}));},[c$1]);return jsxs(D$1,{open:o,onOpenChange:r,children:[jsx(E,{asChild:true,children:jsx(M,{mode:"stroke",variant:"neutral",size:"small",className:c(o&&"active","relative gap-0"),disabled:t,startContent:jsx(v,{}),children:jsx(i,{content:a("column_set"),children:jsx("div",{className:"absolute inset-0"})})})}),jsx(F,{align:"end",side:"bottom",arrow:false,className:"w-fit rounded-xl p-0",sideOffset:6,children:jsxs(w,{children:[jsx(x,{autoFocus:true,placeholder:"Search..."}),jsx(z,{children:a("no_results")}),jsx(y,{className:"max-h-256",children:jsx(A,{children:n.map(p=>{let i=Me(p),f=s[i]!==false,h=typeof p.title=="string"&&p.title?.trim()==="",g=h?p.key:p.title;return jsxs(B,{keywords:Be(p),onSelect:()=>l(i,!f),className:"group flex items-center gap-6",value:i,disabled:e?.includes(i),children:[jsx(Checkbox,{checked:f,tabIndex:-1,className:c("mr-4 opacity-100")}),jsx("span",{className:c(h&&"capitalize"),children:g})]},i)})})})]})})]})}var Ke=["data_refresh","size_setting","column_setting","filter_btn"];function Ka({btnProps:t,disabled:n,loading:a,onAction:e}){let o=O();return jsx(M,{variant:"primary",startContent:jsx(Download,{}),loading:a,disabled:n||a,onClick:()=>e({action:"data_export"}),...t,children:o("data_export")})}var Wa={initial:{opacity:0,scale:.85,x:10,originX:1},animate:{opacity:1,scale:1,x:0,originX:1},exit:{opacity:0,scale:.85,x:10,originX:1}},ja={ease:[.26,.08,.25,1],duration:.25};function We({containerRef:t,columns:n,filter:a,items:e=Ke,className:o,onAction:r,...s}){let{loading:c$1,syncing:l,exporting:p,disabled:i}=De(),f=P.useMemo(()=>e.map(u=>Ga(u)),[e]),h=P.useMemo(()=>f.filter(u=>!u.hidden),[f]),g=P.useCallback(u=>{r?.(u);},[r]),m$1=P.useMemo(()=>({disabled:i,loading:c$1,syncing:l,exporting:p,columns:n,onAction:g}),[i,c$1,p,l,n,g]),b=u=>{let R={btnProps:u.btnProps,tooltip:u.tooltip,disabled:i||l||c$1,loading:c$1,onAction:g};switch(u.type){case "data_refresh":return jsx(qa,{...R,syncing:l});case "size_setting":return jsx(Re,{...u.btnProps});case "column_setting":return jsx($e,{...u.btnProps,columns:n});case "data_export":return jsx(Ka,{...R,loading:p});case "data_import":return jsx(He,{...R,loading:p,containerRef:t,requestConfig:u.requestConfig,onBeforeUpload:u.onBeforeUpload,acceptHint:u.acceptHint,accept:u.accept});case "custom":return u.render?.(m$1);case "filter_btn":return a;default:return null}};return jsx(m.div,{"data-slot":"data-table-toolbar",className:c("flex items-center gap-8 transition-opacity",o),...s,children:jsx(AnimatePresence,{mode:"popLayout",initial:false,children:h.map(u=>jsx(m.div,{layout:true,variants:Wa,initial:"initial",animate:"animate",exit:"exit",className:"leading-none",transition:ja,children:b(u)},u.key))})})}function qa({btnProps:t,tooltip:n,disabled:a,loading:e,syncing:o,onAction:r}){let s=O(),c=n??s("refresh");return jsx(i,{content:c,children:jsx(M,{mode:"stroke",variant:"neutral",startContent:jsx(RefreshCw,{}),loading:o||e,disabled:a||e||o,className:"gap-0",onClick:()=>r({action:"data_refresh"}),...t})})}function Ga(t){return typeof t=="string"?{type:t,key:t}:t.type==="custom"?{type:"custom",key:t.key,hidden:t.hidden,render:t.render}:t.type==="data_import"?{type:"data_import",key:t.key??t.type,hidden:t.hidden,btnProps:t.btnProps,tooltip:t.tooltip,accept:t.accept,acceptHint:t.acceptHint,requestConfig:t.requestConfig,onBeforeUpload:t.onBeforeUpload}:{type:t.type,key:t.key??t.type,hidden:t.hidden,btnProps:t.btnProps,tooltip:t.tooltip}}function Ge({className:t,value:n,...a}){return jsx(Progress.Root,{"data-slot":"progress",className:c("relative flex h-4 w-full items-center overflow-x-hidden rounded-full bg-bg-soft",t),...a,children:jsx(Progress.Indicator,{"data-slot":"progress-indicator",className:"size-full flex-1 bg-primary-base transition-all",style:{transform:`translateX(-${100-(n||0)}%)`}})})}function Ye({onAction:t,...n}){let a=gt();return jsx(m.div,{"data-slot":"data-table-taskbar",className:"w-fit items-center justify-center bg-bg-white select-none",...n,children:a.map(e=>e.type==="import"?jsx(Ja,{...e,onSuccess:()=>{t?.({action:"import_done"});}},e.localTaskId):jsx(Za,{...e},e.localTaskId))})}function Ja(t){let n=O(),a=Z(s=>s.removeTask),e=t.status==="failed",o=t.status==="done";return jsxs("div",{className:"flex h-full items-center gap-8",children:[jsxs("span",{className:c("truncate text-md font-medium",o?"text-success-base":e?"text-error-base":"text-text-strong"),children:[n(e?"import_failed":o?"import_done":t.status)," ",Fe(t.file.name)]}),jsxs("span",{className:"min-w-34 shrink-0 text-right text-sm text-text-sub",children:[t.progress,"%"]}),jsx(M,{variant:"neutral",mode:"ghost",size:"xsmall",className:"min-w-28 rounded-full px-0",onClick:()=>{t.abortController?.signal.aborted===false&&!e&&!o&&t.abortController?.abort("User canceled"),a(t.localTaskId),o&&t.onSuccess?.(t.localTaskId);},startContent:o?jsx(Check,{className:"text-success-base"}):jsx(to,{})})]})}function Za(t){return jsxs("div",{className:"flex w-fit min-w-220 flex-col justify-center gap-6",children:[jsxs("div",{className:"lable flex items-center justify-center gap-12",children:[jsx("span",{className:"font-medium text-text-strong",children:"Task Name"}),jsx("span",{className:"ml-auto text-sm text-text-sub",children:t.progress})]}),jsx(Ge,{value:66})]})}function to(){return jsxs("svg",{width:"0.8em",height:"0.8em",viewBox:"0 0 12 12",fill:"none",children:[jsx("path",{d:"M10.4854 1.99998L2.00007 10.4853",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),jsx("path",{d:"M10.4854 10.4844L2.00007 1.99908",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}var Qe={initial:{y:10,opacity:0},animate:{y:0,opacity:1},exit:{y:-10,opacity:0}},Je={ease:[.26,.08,.25,1],duration:.25};function Ze({containerRef:t,items:n,filter:a,columns:e,onAction:o}){let r=gt();return jsx(AnimatePresence,{initial:false,mode:"popLayout",children:r.length?jsx(Ye,{variants:Qe,initial:"initial",animate:"animate",exit:"exit",transition:Je,onAction:o},"task-bar"):jsx(We,{variants:Qe,initial:"initial",animate:"animate",exit:"exit",transition:Je,containerRef:t,onAction:o,filter:a,columns:e,items:n},"toolbar")})}var ao=26,ta=44,oo=200,ro=250,no={},so=t=>t.querySelector(".ant-table-thead")?.offsetHeight??ta,kt=(t,n)=>{if(!t)return 0;let a=t.querySelectorAll(':scope [data-id^="data-table-card-"]'),e=0;return a.forEach(o=>{let r=o.getAttribute("data-id")==="data-table-card-content";e+=r?0:o.clientHeight;}),document.documentElement.clientHeight-n-window.scrollY-ao-so(t)-e-3};function ea(t,n,{x:a,y:e,...o}=no,r,s,c){let[l,p]=P.useState(e),i=P.useRef(0),f=P.useRef(null);if(P.useLayoutEffect(()=>{if(!s)return;i.current=t.current?.offsetTop??0,f.current||(f.current=c$1(()=>{i.current=t.current?.offsetTop??0,p(kt(t.current,i.current));},oo,false,true)),window.addEventListener("resize",f.current);let g=null;return t.current&&(g=new MutationObserver(f.current),g.observe(t.current,{childList:true,subtree:true,attributes:true,attributeFilter:["style","class","hidden"]})),()=>{f.current&&(window.removeEventListener("resize",f.current),f.current.cancel()),g?.disconnect();}},[t,s]),P.useEffect(()=>{if(!s||e!==void 0)return;p(kt(t.current,i.current));let g=setTimeout(()=>{p(kt(t.current,i.current));},ro);return ()=>{clearTimeout(g);}},[e,n,t,s]),!s)return {x:a,y:e,...o};let h=l&&typeof l=="number"?l+(r?ta:0):l;return {x:c&&!a?1280:a??"max-content",y:c&&!h?620:h,...o}}var co={ease:[.26,.08,.25,1],duration:.3},po={},uo={root:"m-0 flex w-full [&_.ant-pagination-total-text]:ps-6 [&_.ant-pagination-total-text]:mr-auto"};function mo(t){let{store:n,tabList:a,alwaysShowingColumns:e,...o}=t;return mt(()=>{let r=document.body,s=l=>{l.preventDefault(),l.dataTransfer&&(l.target.closest("[data-dropzone]")?l.dataTransfer.dropEffect="copy":l.dataTransfer.dropEffect="none");},c=l=>{l.preventDefault();};return r.addEventListener("drop",c),r.addEventListener("dragover",s),r.addEventListener("dragenter",s),()=>{r.removeEventListener("drop",c),r.removeEventListener("dragover",s),r.removeEventListener("dragenter",s);}}),jsx(Ce,{store:n,tabList:a,alwaysShowingColumns:e,children:jsx(bo,{...o})})}function bo(t$1){let{ref:n$1,activeTabId:a,variant:e$1,style:o$1,cardTitle:r$1,cardIcon:s$1,cardDescription:c$1,classNames:l$1,enableTableAutoScrollSizer:p$1,slots:i,columns:f,filterColumns:h,tableColumns:g,defaultFilters:m$2,tableProps:b,paginationProps:u,toolbarItems:R,isCustomTab:S,tabRenderCtx:N,customRender:F,onToolbarAction:k$1,onFiltersChange:q$1}=t$1,L=O(),y=P.useRef(null),x=P.useRef(null),{tabList:V$1}=ot(),{syncing:K,loading:O$1}=Se(),_=Z(E=>E.updateTableId),[H,ut]=V({filters:m$2,onFiltersChange:q$1});P.useEffect(()=>{_(a);},[a]);let tt=H&&H.length!==0,ht=!!(O$1&&g.some(E=>E.skeleton)),vt=Math.min(u.pageSize,15),St=P.useCallback(E=>L("pagination_total").replace("{total}",String(E)),[L]),st=ea(x,`${H?.length}-${a}`,b.scroll,S,p$1,b.virtual),d=ht?jsx(me,{id:`${a}-skeleton`,columns:g,size:b.size,count:vt,scroll:st}):jsx(Table,{id:`${a}-data-table`,columns:g,loading:O$1,showSorterTooltip:false,...b,scroll:st}),T$1=!!u.total&&(u.hideOnSinglePage!==true||u.total>u.pageSize);return jsxs(k,{ref:e([x,n$1]),style:o$1,className:c("relative rounded-[16px]",p$1&&"h-full max-h-[calc(100vh-var(--offset-top))] overflow-hidden",l$1?.root),variant:e$1,children:[jsxs(l,{"data-id":"data-table-card-header",className:c("data-table-card-header relative min-h-56 grow-0 px-14 pt-12 pb-10",e$1==="accent"&&"pt-10",V$1&&V$1?.length>1&&"border-b-0",l$1?.cardHeader),children:[jsxs(p,{className:c("flex items-center gap-12",l$1?.cardHeading),children:[s$1&&jsx(s,{className:c("size-34 border border-stone-200 bg-stone-100 text-text-sub",!!(r$1&&c$1)&&"size-44 [&_svg]:size-24",l$1?.cardIcon),children:s$1}),r$1&&jsxs("div",{className:c(c$1&&"flex flex-col gap-4"),children:[jsx(r,{children:r$1}),c$1&&jsx(t,{children:c$1})]})]}),jsx(AnimatePresence,{initial:false,children:R!==false&&jsx(q,{as:m.div,className:l$1?.cardToolbar,...le,children:jsx(Ze,{containerRef:y,items:R,columns:f,onAction:k$1,filter:h.length!==0&&jsx(U,{columns:h,filters:H,actions:ut,disabled:O$1||K,align:"end",enableAutoBack:true},`${a}-filter`)})})})]}),i?.cardSummary&&jsx(n,{"data-id":"data-table-card-summary",className:c("grow-0 p-12",l$1?.cardSummary),children:i.cardSummary}),jsx(xe,{"data-id":"data-table-card-tabs",className:"grow-0 p-0"}),jsx(AnimatePresence,{initial:false,children:tt&&jsx(m.div,{"data-id":"data-table-card-filter-values",...ce,children:jsx(n,{className:"p-0",children:jsx(T,{columns:h,filters:H,actions:ut,"data-id":"data-table-active-filters",className:"flex flex-wrap gap-10 px-12 pt-16",disabled:K||O$1,enableAutoClose:true})})},a)}),jsxs(m$1,{"data-id":"data-table-card-content",className:c("relative grow p-12 pb-0",(K||O$1)&&"pointer-events-none",p$1&&"overflow-hidden",l$1?.cardContent),children:[i?.tableSummary&&jsx(n,{"data-id":"data-table-card-table-summary",className:c("grow-0 p-0 pb-12",l$1?.tableSummary),children:i.tableSummary}),jsx(AnimatePresence,{mode:"popLayout",initial:false,children:jsx(m.div,{ref:y,className:c("relative w-full",S&&p$1&&"overflow-auto"),style:S&&p$1?{maxHeight:st.y}:po,...de,transition:co,children:S?F?.(N):d},a)})]}),T$1&&jsx(o,{"data-id":"data-table-card-pager",className:"flex min-h-44 w-full grow-0 items-center justify-between",children:jsx(Pagination,{classNames:uo,disabled:O$1||K,size:"small",showTotal:St,...u})}),i?.cardFooter&&jsx(o,{"data-id":"data-table-card-footer",className:c("grow-0 px-16 py-12",l$1?.cardFooter),children:i.cardFooter})]})}function To(t){let{tabList:n,fireOnMount:a=true,storageKey:e,onTabChange:o,onTableChange:r,onToolbarAction:s}=t,{pagination:c,tableStateStorageKey:l}=b$1(),p=P.useRef(new Set),[i]=P.useState(()=>{let d=be(n[0].id,e??l);for(let T of n)d.getState().initTab(T.id,oa(T)),p.current.add(T.id);return d}),f=P.useRef({onTabChange:o,onTableChange:r,onToolbarAction:s});f.current={onTabChange:o,onTableChange:r,onToolbarAction:s};let h=P.useRef(new Map);h.current=new Map(n.map(d=>[d.id,d]));let g=n.map(d=>d.id).join(),m=P.useRef(true);P.useEffect(()=>{if(m.current){m.current=false;return}for(let d of n)p.current.has(d.id)||(i.getState().initTab(d.id,oa(d)),p.current.add(d.id));},[i,g]);let b=n.map(d=>`${d.id}:${d.loading}:${d.syncing}:${d.exporting}:${d.disabled}`).join();P.useEffect(()=>{let{syncTabExternal:d}=i.getState();for(let T of n)d(T.id,{loading:T.loading,syncing:T.syncing,exporting:T.exporting,disabled:T.disabled});},[i,b]),P.useEffect(()=>{let d=i.getState().stateVersion;return i.subscribe(T=>{if(T.stateVersion===d)return;d=T.stateVersion;let E=T.activeTabId,G=T.tabs[E];if(!G)return;let it={pagination:G.pagination,filters:G.filters,sorter:G.sorter},Nt=T.changeReason;Nt==="tab_switch"&&f.current.onTabChange?.(E),f.current.onTableChange?.(E,it,Nt);})},[i]);let u=P.useRef(false);P.useEffect(()=>{if(u.current||(u.current=true,!a))return;let d=i.getState(),T=d.activeTabId,E=d.tabs[T];E&&f.current.onTableChange?.(T,E,"mount");},[i,a]);let R=useStore(i,d=>d.activeTabId),S=useStore(i,useShallow(d=>d.tabs[d.activeTabId]??$)),N=h.current.get(R),F=N?.type==="custom",k=F?void 0:N,q=F?N:void 0,{columnVisibility:L,pagination:y}=S,x=k?.columns,V=q?.filterColumns,K=P.useMemo(()=>x?x.filter(d=>!d.hidden):[],[x]),O=P.useMemo(()=>F?V??[]:Oe(x),[F,V,x]),_=P.useMemo(()=>K.filter(d=>{let T=d.key??d.dataIndex;return !T||L[T]!==false}),[K,L]),H=P.useCallback(d=>{let T=i.getState(),E=T.activeTabId,G=T.tabs[E]?.filters??[],it=typeof d=="function"?d(G):d;T.setFilters(E,it);},[i]),ut=P.useCallback((d,T,E,G)=>{let it=i.getState().activeTabId;i.getState().setTableChange(it,E,G);},[i]),tt=P.useCallback((d,T)=>{let E=i.getState().activeTabId;i.getState().setPagination(E,d,T);},[i]),ht=P.useCallback(d=>{let T=i.getState().activeTabId;f.current.onToolbarAction?.(T,d);},[i]),vt=P.useMemo(()=>({...c,current:y.current,pageSize:y.pageSize,total:N?.total,onChange:tt,onShowSizeChange:tt}),[c,y,N?.total,tt]),St=P.useMemo(()=>({loading:S.loading,syncing:S.syncing,exporting:S.exporting,disabled:S.disabled,filters:S.filters,pagination:y,onFiltersChange:H,onPaginationChange:tt}),[S,y,H,tt]),st=P.useMemo(()=>n.map(({id:d,label:T,value:E})=>({id:d,label:T,value:E})),[g]);return {store:i,activeTabId:R,tabList:st,columns:K,filterColumns:O,tableColumns:_,tableProps:{dataSource:k?.dataSource,rowKey:k?.rowKey,size:S.tableSize,pagination:false,scroll:k?.scroll,virtual:k?.virtual,onChange:ut},paginationProps:vt,defaultFilters:S.filters,onFiltersChange:H,toolbarItems:N?.toolbarItems,onToolbarAction:ht,isCustomTab:F,customRender:q?.render,tabRenderCtx:St,enableTableAutoScrollSizer:k?.enableTableAutoScrollSizer??q?.enableTableAutoScrollSizer??true}}function oa(t){return {pagination:t.defaultPagination,filters:t.defaultFilters,sorter:t.type!=="custom"?t.defaultSorter:void 0,loading:t.loading,syncing:t.syncing,exporting:t.exporting,disabled:t.disabled}}export{Ke as DEFAULT_TOOLBAR_ITEMS,mo as DataTable,To as useDataTable};
1
+ import {j,k as k$1,l as l$1,e,b as b$1,c as c$1,m as m$2,f,g,h,o as o$1,d}from'./chunk-GL6SS2S2.js';import {O as O$1,V,k,l,p,s,c,r,t,q,U,n,T,m as m$1,o,M,i,D as D$1,E,v,F,w,x,z,y,A,B}from'./chunk-T44X4HCD.js';export{P as DATE_FORMATS,R as formatDateRange,Q as getDateDisplayFormat,S as getPickerInputFormat,O as useTransition}from'./chunk-T44X4HCD.js';import {b}from'./chunk-M7AD2PUT.js';import {Table,Pagination,Checkbox}from'antd';import {AnimatePresence,m}from'motion/react';import P,{useState,useCallback}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import {create,useStore,createStore}from'zustand';import {useShallow}from'zustand/react/shallow';import {persist}from'zustand/middleware';import {immer}from'zustand/middleware/immer';import {Check,Upload,Download,RefreshCw,FolderUp}from'lucide-react';import {Progress,Portal}from'radix-ui';function me(e){P.useEffect(e,[]);}var da={small:"min-h-22",medium:"min-h-26",middle:"min-h-30",large:"min-h-38"};function mt({count:e,size:n="small",classNames:a,columns:t,scroll:o}){let r=P.useCallback(()=>pa(t,da[n]),[t,n]);return jsx(Table,{rowKey:"id",size:n,rowHoverable:false,classNames:a,dataSource:Array.from({length:e},(s,c)=>({id:c})),pagination:false,scroll:o,children:t.map((s,c)=>jsx(Table.Column,{dataIndex:s.dataIndex,width:s.width,title:jsx(m$2,{className:"h-22 w-full animate-none bg-bg-antd"}),render:r,onCell:()=>c===0?{colSpan:t.length}:{colSpan:0}},s.key||s.dataIndex))})}var ut=16;function pa(e,n){let a=e.length,o=`calc((100% - ${ut*(a-1)}px) / ${a})`,r=e.some(s=>s.skeleton==="avatar"||s.skeleton==="double-line");return jsx("div",{className:c("flex items-center",n),style:{gap:`${ut}px`},children:e.map((s,c)=>{let l=s?.key??c;return jsx("div",{style:{width:o},children:ua(s.skeleton,r)},l)})})}function ua(e,n){switch(e){case "avatar":return jsx(ba,{});case "double-line":return jsx(fa,{});case "group":return jsx(Ta,{needAlignment:n});default:return jsx(ma,{needAlignment:n})}}function ma({needAlignment:e}){return jsxs("div",{className:"grid h-full gap-4",children:[e&&jsx("div",{className:"h-12 w-1"}),jsx(m$2,{className:"h-10"})]})}function ba(){return jsxs("div",{className:"flex w-full items-center gap-6",children:[jsx(m$2,{className:"shrink-0 rounded-full",style:{width:"var(--avatar-size, 32px)",height:"var(--avatar-size, 32px)"}}),jsxs("div",{className:"grid flex-1 gap-4",children:[jsx(m$2,{className:"h-12 w-[60%]"}),jsx(m$2,{className:"h-10"})]})]})}function fa(){return jsxs("div",{className:"grid h-full w-full gap-4 py-4",children:[jsx(m$2,{className:"h-12 w-[60%]"}),jsx(m$2,{className:"h-10"})]})}function Ta({needAlignment:e}){return jsxs("div",{className:"grid h-full gap-4",children:[e&&jsx("div",{className:"h-12 w-1"}),jsxs("div",{className:"flex w-full items-center gap-4",children:[jsx(m$2,{className:"h-10 w-[20%]"}),jsx(m$2,{className:"h-10 w-[20%]"}),jsx(m$2,{className:"h-10 w-[20%]"}),jsx(m$2,{className:"h-10 w-[20%]"}),jsx(m$2,{className:"h-10 w-[20%]"})]})]})}var O={pagination:{current:1,pageSize:10},filters:[],sorter:{},extra:{action:"paginate",currentDataSource:[]},tableSize:"middle",columnVisibility:{},exporting:false,loading:false,syncing:false,disabled:false},Q=(e,n)=>(e.tabs[n]||(e.tabs[n]={...O}),e.tabs[n]),Da="APP_UI_TABLE_CONFIG",ha=(e,n)=>({activeTabId:n,tabs:{},stateVersion:0,changeReason:"mount",setActiveTab:a=>e(t=>{t.activeTabId=a,Q(t,a),t.changeReason="tab_switch",t.stateVersion++;}),syncTabExternal:(a,t)=>e(o=>{let r=o.tabs[a];r&&(r.loading=t.loading,r.syncing=t.syncing,r.exporting=t.exporting,r.disabled=t.disabled);}),initTab:(a,t)=>e(o=>{let r=o.tabs[a];r?(t.pagination&&(r.pagination=t.pagination),t.filters&&(r.filters=t.filters),t.sorter&&(r.sorter=t.sorter),r.loading=t.loading,r.syncing=t.syncing,r.exporting=t.exporting,r.disabled=t.disabled):o.tabs[a]={...O,...t};}),setFilters:(a,t)=>e(o=>{let r=Q(o,a);r.filters=t,r.pagination.current=1,o.changeReason="filter",o.stateVersion++;}),setPagination:(a,t,o)=>e(r=>{let s=Q(r,a);s.pagination={current:t,pageSize:o},r.changeReason="paginate",r.stateVersion++;}),setTableChange:(a,t,o)=>e(r=>{let s=Q(r,a);s.sorter=t,s.extra=o,r.changeReason="sort",r.stateVersion++;}),setTableSize:a=>e(t=>{Q(t,t.activeTabId).tableSize=a;}),setColumnVisibility:(a,t)=>e(o=>{Q(o,o.activeTabId).columnVisibility[a]=t;}),setColumnVisibilityState:a=>e(t=>{let o=Q(t,t.activeTabId);o.columnVisibility=typeof a=="function"?a(o.columnVisibility):a;}),toggleColumnVisibility:a=>e(t=>{let o=Q(t,t.activeTabId);o.columnVisibility[a]=!o.columnVisibility[a];}),resetTabUIState:a=>e(t=>{let o=a??t.activeTabId,r=t.tabs[o];r&&(r.tableSize=O.tableSize,r.columnVisibility={});})}),bt=(e,n=Da)=>createStore()(persist(immer(a=>ha(a,e)),{name:n,partialize:a=>({tableUIStatus:Object.fromEntries(Object.entries(a.tabs).map(([t,o])=>[t,{tableSize:o.tableSize,columnVisibility:o.columnVisibility}]))}),merge:(a,t)=>{let o=a,r={...t};if(!o?.tableUIStatus)return r;for(let[s,c]of Object.entries(o.tableUIStatus)){let l=r.tabs[s];l?(c.tableSize&&(l.tableSize=c.tableSize),c.columnVisibility&&(l.columnVisibility=c.columnVisibility)):r.tabs[s]={...O,tableSize:c.tableSize??O.tableSize,columnVisibility:c.columnVisibility??{}};}return r}}));var Tt=P.createContext(null),gt=["id","action","actions"],yt=P.createContext({alwaysShowingColumns:gt});function Ct({store:e,tabList:n,alwaysShowingColumns:a,children:t}){let o=P.useMemo(()=>({tabList:n,alwaysShowingColumns:a??gt}),[n,a]);return jsx(yt.Provider,{value:o,children:jsx(Tt.Provider,{value:e,children:t})})}function fe(){let e=P.useContext(Tt);if(!e)throw new Error("useDataTableStoreApi must be used within DataTableProvider");return e}function J(e){let n=fe();return useStore(n,e)}function Dt(){let e=fe();return useStore(e,useShallow(n=>n.tabs[n.activeTabId]??O))}function ht(){return J(e=>e.tabs[e.activeTabId]?.tableSize??O.tableSize)}function St(){let e=fe();return useStore(e,useShallow(n=>n.tabs[n.activeTabId]?.columnVisibility??O.columnVisibility))}function vt(){let e=fe();return useStore(e,useShallow(n=>{let a=n.tabs[n.activeTabId];return {loading:a?.loading??false,syncing:a?.syncing??false,exporting:a?.exporting??false,disabled:a?.disabled??false}}))}function re(){return P.useContext(yt)}function xt(e){let{tabList:n$1}=re(),a=J(o=>o.activeTabId),t=J(o=>o.setActiveTab);return !n$1||!n$1?.length||n$1.length===1?null:jsx(n,{...e,children:jsx(f,{className:c("w-full"),value:a,onValueChange:t,children:jsx(g,{variant:"line",size:"medium",className:"w-full px-12",children:n$1.map(o=>jsx(h,{value:o.value,className:"py-8",children:o.label},o.id))})})})}var Z=create((e,n)=>({activeTableId:"",tasks:{},updateTableId:a=>e(()=>({activeTableId:a})),addTask:a=>e(t=>{let o=t.activeTableId;return {tasks:{...t.tasks,[o]:[...t.tasks[o]??[],a]}}}),removeTask:a=>e(t=>{let o=t.activeTableId;return {tasks:{...t.tasks,[o]:(t.tasks[o]??[]).filter(r=>r.localTaskId!==a)}}}),updateTask:(a,t)=>e(o=>{let r=o.activeTableId;return {tasks:{...o.tasks,[r]:(o.tasks[r]??[]).map(s=>s.localTaskId===a?{...s,...t}:s)}}}),getTasks:()=>{let a=n();return a.tasks[a.activeTableId]??[]}})),ge=()=>Z(useShallow(e=>e.tasks[e.activeTableId]??[]));function Rt({className:e,...n}){let a=O$1(),[t,o]=P.useState(false),r=J(l=>l.setTableSize),s=ht(),c$1=P.useMemo(()=>[{groupType:"radio",value:s,options:[{label:a("large"),value:"large"},{label:a("middle"),value:"middle"},{label:a("compact"),value:"small"}],onValueChange:r}],[r,a,s]);return jsx(o$1,{side:"bottom",align:"end",collisionPadding:6,items:c$1,className:"min-w-100",open:t,onOpenChange:o,children:jsxs(M,{mode:"stroke",variant:"neutral",size:"small",className:c("gap-0",e,t&&"active"),...n,children:[jsx(i,{content:a("density"),size:"small",children:jsx("div",{className:"absolute inset-0"})}),jsx("svg",{xmlns:"http://www.w3.org/2000/svg",className:"size-16",viewBox:"0 0 1024 1024",children:jsx("path",{d:"M840 836H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zm0-724H184c-4.4 0-8 3.6-8 8v60c0 4.4 3.6 8 8 8h656c4.4 0 8-3.6 8-8v-60c0-4.4-3.6-8-8-8zM610.8 378c6 0 9.4-7 5.7-11.7L515.7 238.7a7.14 7.14 0 0 0-11.3 0L403.6 366.3a7.23 7.23 0 0 0 5.7 11.7H476v268h-62.8c-6 0-9.4 7-5.7 11.7l100.8 127.5c2.9 3.7 8.5 3.7 11.3 0l100.8-127.5c3.7-4.7.4-11.7-5.7-11.7H548V378h62.8z"})})]})})}function Pt(e,n){return new Promise((a,t)=>{let r=Object.assign({},{method:"GET",responseType:"json"},n),{method:s,timeout:c,responseType:l,headers:p,body:i,validateResponse:f}=r,h;function g(){r.signal&&r.signal.removeEventListener("abort",h);}if(r.signal&&r.signal.aborted)return t(new D("Aborted"));let m=new XMLHttpRequest,b=null,u=null;m.open(s.toUpperCase(),e,true),m.timeout=c||0,m.withCredentials=r.withCredentials===true,m.onloadend=function(){if(!m)return;let x=m.status,N=m.getResponseHeader("Content-Type")??"",z=l&&l!=="text"&&l!=="json",k=z?m.response:m.responseText,G=m.getAllResponseHeaders().split(`\r
2
+ `).reduce((y,I)=>{let V=I.indexOf(": ");return V!==-1&&(y[I.slice(0,V).toLowerCase()]=I.slice(V+2)),y},{});function L(y){if(b){b.cancel();let I=y instanceof Blob?y.size:y instanceof ArrayBuffer?y.byteLength:typeof y=="string"?y.length:0;r.onDownloadProgress?.({loaded:I,total:I,lengthComputable:true,percentage:100});}r.withResponseHeaders?a({data:y,status:x,headers:G}):a(y);}if(x>=200&&x<300)if(l==="json"){let y=k;try{let I=y!==""?JSON.parse(y):null;if(!(f?.(I)??!0))throw new D("invalid response");L(I);}catch(I){t(I);}}else f?.(k)??true?L(k):t(new D("invalid response"));else {let y=null;if(!z)if(N.includes("application/json"))try{y=k!==""?JSON.parse(k):null;}catch{}else y=k||null;t(new D("Xhr Request failed",x,y));}g(),m=null;},m.onabort=function(){m&&(b?.cancel(),u?.cancel(),t(new D(D.ECONNABORTED)),g(),m=null);},m.onerror=function(){b?.cancel(),u?.cancel(),t(new D("Network Error",D.ERR_NETWORK)),g(),m=null;},m.ontimeout=function(){b?.cancel(),u?.cancel(),t(new D("Timeout exceeded",D.ETIMEDOUT)),g(),m=null;},typeof p=="object"&&Object.keys(p).forEach(E=>{m?.setRequestHeader(E,p[E]);}),i==null&&m.setRequestHeader("Content-Type",""),l&&l!=="json"&&(m.responseType=l),r.onDownloadProgress&&(b=Et(r.onDownloadProgress),m.addEventListener("progress",b)),r.onUploadProgress&&m.upload&&(u=Et(r.onUploadProgress),m.upload.addEventListener("progress",u),m.upload.addEventListener("loadend",E=>{u?.cancel(),r.onUploadProgress?.({loaded:E.loaded,total:E.loaded,lengthComputable:true,percentage:100});})),r.signal&&(h=()=>{m&&(t(new D(D.REQUEST_CANCELED,D.REQUEST_CANCELED)),m.abort(),m=null);},r.signal.aborted?h():r.signal.addEventListener("abort",h)),m.send(i??null);})}function Et(e){return d(a=>{e({loaded:a.loaded,total:a.lengthComputable?a.total:0,lengthComputable:a.lengthComputable,percentage:a.lengthComputable&&a.total>0?Math.round(a.loaded/a.total*100):null});},250)}var D=class extends Error{constructor(a,t,o){super(a);b(this,"message");b(this,"code");b(this,"data");this.name="RequestError",this.message=a,t&&(this.code=t),o!==void 0&&(this.data=o);}};b(D,"ETIMEDOUT","ETIMEDOUT"),b(D,"ERR_NETWORK","ERR_NETWORK"),b(D,"ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION_VALUE"),b(D,"ERR_BAD_OPTION","ERR_BAD_OPTION"),b(D,"ECONNABORTED","ECONNABORTED"),b(D,"ERR_FR_TOO_MANY_REDIRECTS","ERR_FR_TOO_MANY_REDIRECTS"),b(D,"ERR_DEPRECATED","ERR_DEPRECATED"),b(D,"ERR_BAD_RESPONSE","ERR_BAD_RESPONSE"),b(D,"ERR_BAD_REQUEST","ERR_BAD_REQUEST"),b(D,"ERR_CANCELED","ERR_CANCELED"),b(D,"REQUEST_CANCELED","REQUEST_CANCELED"),b(D,"ERR_NOT_SUPPORT","ERR_NOT_SUPPORT"),b(D,"ERR_INVALID_URL","ERR_INVALID_URL");var wt=(e=false)=>{let[n,a]=useState(e),t=useCallback(()=>{a(true);},[]),o=useCallback(()=>{a(false);},[]);return [n,t,o]};var At=150,ye={ease:[.26,.08,.25,1],duration:.25},wa={initial:{opacity:0,scale:.95},visible:{opacity:1,scale:1,transition:{...ye,when:"beforeChildren"}},hidden:{opacity:0,scale:1.05,transition:{...ye,when:"afterChildren"}}},Aa={initial:{y:10,opacity:0},visible:{y:0,opacity:1,transition:ye},hidden:{y:-10,opacity:0,transition:ye}};function _t({containerRef:e,accept:n,acceptHint:a,onFileSelect:t}){let o=P.useRef(null),r=P.useRef(null),[s,c,l]=wt(false),p=P.useCallback(g=>{g.stopPropagation();let{target:m,relatedTarget:b}=g;m.matches(".data-drop-target, .data-drop-area")&&(!b||!b.matches(".data-drop-target, .data-drop-area"))&&(o.current=window.setTimeout(()=>{l();},At));},[l]),i=P.useCallback(()=>{o.current&&window.clearTimeout(o.current);},[]),f=P.useCallback(()=>{o.current&&window.clearTimeout(o.current),o.current=window.setTimeout(()=>{l();},At);},[l]),h=P.useEffectEvent(async g=>{let{dataTransfer:m}=g,b=[];m.files&&m.files.length>0&&(b=b.concat(Array.from(m.files))),b.length&&(r.current&&window.clearTimeout(r.current),r.current=window.setTimeout(()=>{t?.(b);},600));});return me(()=>{if(!e?.current)return;let g=e.current;return g.addEventListener("dragenter",c),()=>{g.removeEventListener("dragenter",c),o.current&&window.clearTimeout(o.current),r.current&&window.clearTimeout(r.current);}}),jsx(Portal.Root,{container:e?.current,asChild:true,children:jsx(AnimatePresence,{children:s&&jsx(m.div,{className:"data-drop-area absolute inset-0 bottom-8 z-10 flex items-center justify-center select-none",onDragLeave:p,onDragOver:i,onDrop:f,initial:"hidden",animate:"visible",exit:"hidden",variants:wa,children:jsx(Na,{accept:n,acceptHint:a,onFileSelect:h})})})})}function Na({accept:e,acceptHint:n,onFileSelect:a}){let t=O$1(),[o,r]=P.useState(false),s=P.useCallback(p=>{if(!e||!p.dataTransfer.items.length){r(false);return}let i=[...p.dataTransfer.items].every(f=>_a(f.type,e));r(!i);},[e]),c$1=P.useCallback(p=>{let{relatedTarget:i,currentTarget:f}=p;i&&f.contains(i)&&p.stopPropagation();},[]),l=P.useCallback(p=>{if(o){p.preventDefault();return}a(p);},[o,a]);return jsxs("div",{"data-dropzone":true,onDragEnter:s,onDrop:l,onDragLeave:c$1,className:"data-drop-target relative flex h-full w-full items-center justify-center rounded-[8px] bg-bg-weak p-16",children:[jsx("svg",{className:c("pointer-events-none absolute top-16 left-16 h-[calc(100%-32px)] w-[calc(100%-32px)] overflow-visible",o?"text-error-base":"text-primary-base"),children:jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",rx:"8",fill:"none",stroke:"currentColor",strokeDasharray:"11, 8",strokeDashoffset:"0",strokeLinecap:"round",strokeWidth:"2",children:jsx("animate",{attributeName:"stroke-dashoffset",from:"0",to:"-19",dur:"0.5s",repeatCount:"indefinite"})})}),jsxs(m.div,{className:c("pointer-events-none flex flex-col items-center gap-4",o?"text-error-base":"text-primary-base"),variants:Aa,children:[jsxs("div",{className:"flex flex-col items-center",children:[jsx(FolderUp,{className:"size-48"}),jsx("strong",{className:"text-title-h6",children:t(o?"file_type_rejected":"drop_file_hint")})]}),jsx("span",{className:"text-text-soft",children:n?t("file_support_list",{formats:n}):t("file_support_all")})]})]})}function _a(e,n,a=""){if(!n||n==="*")return true;if(!e&&!a)return false;let t=n.split(",").map(s=>s.trim().toLowerCase()),o=(e||"").toLowerCase(),r=(a||"").toLowerCase();return t.some(s=>{if(s.startsWith("."))return r.endsWith(s);if(s.endsWith("/*")){let c=s.slice(0,-1);return o.startsWith(c)}return o===s})}function Lt(e=""){return `${e}-${Date.now().toString(36)+Math.random().toString(36).slice(2)}`}function Ot(e){return e?e.filter(n=>n.filter!==void 0).map(n=>{let{filter:a,dataIndex:t,title:o}=n,r=Array.isArray(t)?t.join("."):t,s=a.displayName??(typeof o=="string"?o:r);return {...a,columnId:r,displayName:s}}):[]}function Bt(e){return e.key?String(e.key):Array.isArray(e.dataIndex)?e.dataIndex.join("."):String(e.dataIndex)}function La(e){return typeof e=="string"&&e.length>0}function Mt(e){return [Array.isArray(e.dataIndex)?e.dataIndex.join(" "):typeof e.dataIndex=="string"?e.dataIndex:null,typeof e.title=="string"?e.title:null,e.key!==null?String(e.key):null].filter(La)}function Ft(e,n=22){if(!e)return "";if(e.length<=n)return e;let a=Math.floor(n/2.5),t=e.lastIndexOf("."),o,r;if(t>0?(o=e.substring(0,t),r=e.substring(t)):(o=e,r=""),o.length<=a*2)return e;let s=o.substring(0,a),c=o.substring(o.length-a);return `${s}\u2026${c}${r}`}function zt(e,n){return {type:"import",localTaskId:Lt(n?`import-file-${n}`:"import-file"),status:"pending",progress:0,file:e}}function Ht({tooltip:e,btnProps:n,disabled:a,loading:t,containerRef:o,accept:r,acceptHint:s,requestConfig:c,onBeforeUpload:l}){let p=O$1(),i$1=P.useId(),f=Z(b=>b.addTask),h=Z(b=>b.updateTask),g=a||t,m=P.useCallback(async b=>{if(b=[b[0]],l&&typeof l=="function"){let u=await l(b);if(u===false)return;Array.isArray(u)&&(b=u);}b.forEach((u,E)=>{let x=new AbortController,N={...zt(u,E),abortController:x};if(f(N),!c)throw Error("requestConfig is required.");let{url:z,method:k="POST",fieldName:G="file",body:L,onSuccess:y,onFailed:I,onUploadProgress:V,...W}=c,B=new FormData;B.append(G,u),L instanceof FormData?L.forEach((_,$)=>B.append($,_)):L&&Object.keys(L).forEach(_=>{B.append(_,L[_]);}),Pt(z,{...W,onUploadProgress:_=>{V?.(_),h(N.localTaskId,{status:"importing",progress:_.percentage??0});},method:k,body:B,signal:x.signal}).then(_=>{y?.(_),h(N.localTaskId,{status:"done"});}).catch(_=>{I?.(_),h(N.localTaskId,{status:"failed"});});});},[c,l,f,h]);return jsxs(Fragment,{children:[jsx(_t,{containerRef:o,onFileSelect:m,accept:r,acceptHint:s}),jsx("input",{type:"file",id:i$1,accept:r,multiple:false,onChange:b=>{let u=Array.from(b.target.files??[]);u.length&&(m(u),b.target.value="");},className:"invisible absolute -top-9999 -left-9999"}),jsx(i,{content:e??p("import_tooltip"),children:jsx("label",{htmlFor:i$1,className:"m-0 inline-flex cursor-pointer p-0 leading-none",children:jsx(M,{variant:"neutral",mode:"stroke",loading:t,startContent:jsx(Upload,{}),disabled:g,className:"pointer-events-none",...n,children:p("data_import")})})})]})}function $t({disabled:e,columns:n}){let a=O$1(),{alwaysShowingColumns:t}=re(),[o,r]=P.useState(false),s=St(),c$1=J(p=>p.setColumnVisibilityState),l=P.useCallback((p,i)=>{c$1(f=>({...f,[p]:i}));},[c$1]);return jsxs(D$1,{open:o,onOpenChange:r,children:[jsx(E,{asChild:true,children:jsx(M,{mode:"stroke",variant:"neutral",size:"small",className:c(o&&"active","relative gap-0"),disabled:e,startContent:jsx(v,{}),children:jsx(i,{content:a("column_set"),children:jsx("div",{className:"absolute inset-0"})})})}),jsx(F,{align:"end",side:"bottom",arrow:false,className:"w-fit rounded-xl p-0",sideOffset:6,children:jsxs(w,{children:[jsx(x,{autoFocus:true,placeholder:"Search..."}),jsx(z,{children:a("no_results")}),jsx(y,{className:"max-h-256",children:jsx(A,{children:n.map(p=>{let i=Bt(p),f=s[i]!==false,h=typeof p.title=="string"&&p.title?.trim()==="",g=h?p.key:p.title;return jsxs(B,{keywords:Mt(p),onSelect:()=>l(i,!f),className:"group flex items-center gap-6",value:i,disabled:t?.includes(i),children:[jsx(Checkbox,{checked:f,tabIndex:-1,className:c("mr-4 opacity-100")}),jsx("span",{className:c(h&&"capitalize"),children:g})]},i)})})})]})})]})}var Kt=["data_refresh","size_setting","column_setting","filter_btn"];function Ua({btnProps:e,disabled:n,loading:a,onAction:t}){let o=O$1();return jsx(M,{variant:"primary",startContent:jsx(Download,{}),loading:a,disabled:n||a,onClick:()=>t({action:"data_export"}),...e,children:o("data_export")})}var $a={initial:{opacity:0,scale:.85,x:10,originX:1},animate:{opacity:1,scale:1,x:0,originX:1},exit:{opacity:0,scale:.85,x:10,originX:1}},Xa={ease:[.26,.08,.25,1],duration:.25};function Wt({containerRef:e,columns:n,filter:a,items:t=Kt,className:o,onAction:r,...s}){let{loading:c$1,syncing:l,exporting:p,disabled:i}=Dt(),f=P.useMemo(()=>t.map(u=>Wa(u)),[t]),h=P.useMemo(()=>f.filter(u=>!u.hidden),[f]),g=P.useCallback(u=>{r?.(u);},[r]),m$1=P.useMemo(()=>({disabled:i,loading:c$1,syncing:l,exporting:p,columns:n,onAction:g}),[i,c$1,p,l,n,g]),b=u=>{let E={btnProps:u.btnProps,tooltip:u.tooltip,disabled:i||l||c$1,loading:c$1,onAction:g};switch(u.type){case "data_refresh":return jsx(Ka,{...E,syncing:l});case "size_setting":return jsx(Rt,{...u.btnProps});case "column_setting":return jsx($t,{...u.btnProps,columns:n});case "data_export":return jsx(Ua,{...E,loading:p});case "data_import":return jsx(Ht,{...E,loading:p,containerRef:e,requestConfig:u.requestConfig,onBeforeUpload:u.onBeforeUpload,acceptHint:u.acceptHint,accept:u.accept});case "custom":return u.render?.(m$1);case "filter_btn":return a;default:return null}};return jsx(m.div,{"data-slot":"data-table-toolbar",className:c("flex items-center gap-8 transition-opacity",o),...s,children:jsx(AnimatePresence,{mode:"popLayout",initial:false,children:h.map(u=>jsx(m.div,{layout:true,variants:$a,initial:"initial",animate:"animate",exit:"exit",className:"leading-none",transition:Xa,children:b(u)},u.key))})})}function Ka({btnProps:e,tooltip:n,disabled:a,loading:t,syncing:o,onAction:r}){let s=O$1(),c=n??s("refresh");return jsx(i,{content:c,children:jsx(M,{mode:"stroke",variant:"neutral",startContent:jsx(RefreshCw,{}),loading:o||t,disabled:a||t||o,className:"gap-0",onClick:()=>r({action:"data_refresh"}),...e})})}function Wa(e){return typeof e=="string"?{type:e,key:e}:e.type==="custom"?{type:"custom",key:e.key,hidden:e.hidden,render:e.render}:e.type==="data_import"?{type:"data_import",key:e.key??e.type,hidden:e.hidden,btnProps:e.btnProps,tooltip:e.tooltip,accept:e.accept,acceptHint:e.acceptHint,requestConfig:e.requestConfig,onBeforeUpload:e.onBeforeUpload}:{type:e.type,key:e.key??e.type,hidden:e.hidden,btnProps:e.btnProps,tooltip:e.tooltip}}function Gt({className:e,value:n,...a}){return jsx(Progress.Root,{"data-slot":"progress",className:c("relative flex h-4 w-full items-center overflow-x-hidden rounded-full bg-bg-soft",e),...a,children:jsx(Progress.Indicator,{"data-slot":"progress-indicator",className:"size-full flex-1 bg-primary-base transition-all",style:{transform:`translateX(-${100-(n||0)}%)`}})})}function Yt({onAction:e,...n}){let a=ge();return jsx(m.div,{"data-slot":"data-table-taskbar",className:"w-fit items-center justify-center bg-bg-white select-none",...n,children:a.map(t=>t.type==="import"?jsx(Ga,{...t,onSuccess:()=>{e?.({action:"import_done"});}},t.localTaskId):jsx(Ya,{...t},t.localTaskId))})}function Ga(e){let n=O$1(),a=Z(s=>s.removeTask),t=e.status==="failed",o=e.status==="done";return jsxs("div",{className:"flex h-full items-center gap-8",children:[jsxs("span",{className:c("truncate text-md font-medium",o?"text-success-base":t?"text-error-base":"text-text-strong"),children:[n(t?"import_failed":o?"import_done":e.status)," ",Ft(e.file.name)]}),jsxs("span",{className:"min-w-34 shrink-0 text-right text-sm text-text-sub",children:[e.progress,"%"]}),jsx(M,{variant:"neutral",mode:"ghost",size:"xsmall",className:"min-w-28 rounded-full px-0",onClick:()=>{e.abortController?.signal.aborted===false&&!t&&!o&&e.abortController?.abort("User canceled"),a(e.localTaskId),o&&e.onSuccess?.(e.localTaskId);},startContent:o?jsx(Check,{className:"text-success-base"}):jsx(Qa,{})})]})}function Ya(e){return jsxs("div",{className:"flex w-fit min-w-220 flex-col justify-center gap-6",children:[jsxs("div",{className:"lable flex items-center justify-center gap-12",children:[jsx("span",{className:"font-medium text-text-strong",children:"Task Name"}),jsx("span",{className:"ml-auto text-sm text-text-sub",children:e.progress})]}),jsx(Gt,{value:66})]})}function Qa(){return jsxs("svg",{width:"0.8em",height:"0.8em",viewBox:"0 0 12 12",fill:"none",children:[jsx("path",{d:"M10.4854 1.99998L2.00007 10.4853",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),jsx("path",{d:"M10.4854 10.4844L2.00007 1.99908",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})}var Qt={initial:{y:10,opacity:0},animate:{y:0,opacity:1},exit:{y:-10,opacity:0}},Jt={ease:[.26,.08,.25,1],duration:.25};function Zt({containerRef:e,items:n,filter:a,columns:t,onAction:o}){let r=ge();return jsx(AnimatePresence,{initial:false,mode:"popLayout",children:r.length?jsx(Yt,{variants:Qt,initial:"initial",animate:"animate",exit:"exit",transition:Jt,onAction:o},"task-bar"):jsx(Wt,{variants:Qt,initial:"initial",animate:"animate",exit:"exit",transition:Jt,containerRef:e,onAction:o,filter:a,columns:t,items:n},"toolbar")})}var Za=26,ea=44,eo=200,to=250,ao={},oo=e=>e.querySelector(".ant-table-thead")?.offsetHeight??ea,ke=(e,n)=>{if(!e)return 0;let a=e.querySelectorAll(':scope [data-id^="data-table-card-"]'),t=0;return a.forEach(o=>{let r=o.getAttribute("data-id")==="data-table-card-content";t+=r?0:o.clientHeight;}),document.documentElement.clientHeight-n-window.scrollY-Za-oo(e)-t-3};function ta(e,n,{x:a,y:t,...o}=ao,r,s,c){let[l,p]=P.useState(t),i=P.useRef(0),f=P.useRef(null);if(P.useLayoutEffect(()=>{if(!s)return;i.current=e.current?.offsetTop??0,f.current||(f.current=c$1(()=>{i.current=e.current?.offsetTop??0,p(ke(e.current,i.current));},eo,false,true)),window.addEventListener("resize",f.current);let g=null;return e.current&&(g=new MutationObserver(f.current),g.observe(e.current,{childList:true,subtree:true,attributes:true,attributeFilter:["style","class","hidden"]})),()=>{f.current&&(window.removeEventListener("resize",f.current),f.current.cancel()),g?.disconnect();}},[e,s]),P.useEffect(()=>{if(!s||t!==void 0)return;p(ke(e.current,i.current));let g=setTimeout(()=>{p(ke(e.current,i.current));},to);return ()=>{clearTimeout(g);}},[t,n,e,s]),!s)return {x:a,y:t,...o};let h=l&&typeof l=="number"?l+(r?ea:0):l;return {x:c&&!a?1280:a??"max-content",y:c&&!h?620:h,...o}}var so={ease:[.26,.08,.25,1],duration:.3},io={},lo={root:"m-0 flex w-full [&_.ant-pagination-total-text]:ps-6 [&_.ant-pagination-total-text]:mr-auto"};function co(e){let{store:n,tabList:a,alwaysShowingColumns:t,...o}=e;return me(()=>{let r=document.body,s=l=>{l.preventDefault(),l.dataTransfer&&(l.target.closest("[data-dropzone]")?l.dataTransfer.dropEffect="copy":l.dataTransfer.dropEffect="none");},c=l=>{l.preventDefault();};return r.addEventListener("drop",c),r.addEventListener("dragover",s),r.addEventListener("dragenter",s),()=>{r.removeEventListener("drop",c),r.removeEventListener("dragover",s),r.removeEventListener("dragenter",s);}}),jsx(Ct,{store:n,tabList:a,alwaysShowingColumns:t,children:jsx(po,{...o})})}function po(e$1){let{ref:n$1,activeTabId:a,variant:t$1,style:o$1,cardTitle:r$1,cardIcon:s$1,cardDescription:c$1,classNames:l$2,enableTableAutoScrollSizer:p$1,slots:i,columns:f,filterColumns:h,tableColumns:g,defaultFilters:m$2,tableProps:b,paginationProps:u,toolbarItems:E,isCustomTab:x,tabRenderCtx:N,customRender:z,onToolbarAction:k$2,onFiltersChange:G}=e$1,L=O$1(),y=P.useRef(null),I=P.useRef(null),{tabList:V$1}=re(),{syncing:W,loading:B}=vt(),_=Z(S=>S.updateTableId),[$,ue]=V({filters:m$2,onFiltersChange:G});P.useEffect(()=>{_(a);},[a]);let ee=$&&$.length!==0,he=!!(B&&g.some(S=>S.skeleton)),Se=Math.min(u.pageSize,15),ve=P.useCallback(S=>L("pagination_total").replace("{total}",String(S)),[L]),ie=ta(I,`${$?.length}-${a}`,b.scroll,x,p$1,b.virtual),d=he?jsx(mt,{id:`${a}-skeleton`,columns:g,size:b.size,count:Se,scroll:ie}):jsx(Table,{id:`${a}-data-table`,columns:g,loading:B,showSorterTooltip:false,...b,scroll:ie}),T$1=!!u.total&&(u.hideOnSinglePage!==true||u.total>u.pageSize);return jsxs(k,{ref:e([I,n$1]),style:o$1,className:c("relative rounded-[16px]",p$1&&"h-full max-h-[calc(100vh-var(--offset-top))] overflow-hidden",l$2?.root),variant:t$1,children:[jsxs(l,{"data-id":"data-table-card-header",className:c("data-table-card-header relative min-h-56 grow-0 px-14 pt-12 pb-10",t$1==="accent"&&"pt-10",V$1&&V$1?.length>1&&"border-b-0",l$2?.cardHeader),children:[jsxs(p,{className:c("flex items-center gap-12",l$2?.cardHeading),children:[s$1&&jsx(s,{className:c("size-34 border border-stone-200 bg-stone-100 text-text-sub",!!(r$1&&c$1)&&"size-44 [&_svg]:size-24",l$2?.cardIcon),children:s$1}),r$1&&jsxs("div",{className:c(c$1&&"flex flex-col gap-4"),children:[jsx(r,{children:r$1}),c$1&&jsx(t,{children:c$1})]})]}),jsx(AnimatePresence,{initial:false,children:E!==false&&jsx(q,{as:m.div,className:l$2?.cardToolbar,...j,children:jsx(Zt,{containerRef:y,items:E,columns:f,onAction:k$2,filter:h.length!==0&&jsx(U,{columns:h,filters:$,actions:ue,disabled:B||W,align:"end",enableAutoBack:true},`${a}-filter`)})})})]}),i?.cardSummary&&jsx(n,{"data-id":"data-table-card-summary",className:c("grow-0 p-12",l$2?.cardSummary),children:i.cardSummary}),jsx(xt,{"data-id":"data-table-card-tabs",className:"grow-0 p-0"}),jsx(AnimatePresence,{initial:false,children:ee&&jsx(m.div,{"data-id":"data-table-card-filter-values",...k$1,children:jsx(n,{className:"p-0",children:jsx(T,{columns:h,filters:$,actions:ue,"data-id":"data-table-active-filters",className:"flex flex-wrap gap-10 px-12 pt-16",disabled:W||B,enableAutoClose:true})})},a)}),jsxs(m$1,{"data-id":"data-table-card-content",className:c("relative grow p-12 pb-0",(W||B)&&"pointer-events-none",p$1&&"overflow-hidden",l$2?.cardContent),children:[i?.tableSummary&&jsx(n,{"data-id":"data-table-card-table-summary",className:c("grow-0 p-0 pb-12",l$2?.tableSummary),children:i.tableSummary}),jsx(AnimatePresence,{mode:"popLayout",initial:false,children:jsx(m.div,{ref:y,className:c("relative w-full",x&&p$1&&"overflow-auto"),style:x&&p$1?{maxHeight:ie.y}:io,...l$1,transition:so,children:x?z?.(N):d},a)})]}),T$1&&jsx(o,{"data-id":"data-table-card-pager",className:"flex min-h-44 w-full grow-0 items-center justify-between",children:jsx(Pagination,{classNames:lo,disabled:B||W,size:"small",showTotal:ve,...u})}),i?.cardFooter&&jsx(o,{"data-id":"data-table-card-footer",className:c("grow-0 px-16 py-12",l$2?.cardFooter),children:i.cardFooter})]})}function mo(e){let{tabList:n,fireOnMount:a=true,storageKey:t,onTabChange:o,onTableChange:r,onToolbarAction:s}=e,{pagination:c,tableStateStorageKey:l}=b$1(),p=P.useRef(new Set),[i]=P.useState(()=>{let d=bt(n[0].id,t??l);for(let T of n)d.getState().initTab(T.id,oa(T)),p.current.add(T.id);return d}),f=P.useRef({onTabChange:o,onTableChange:r,onToolbarAction:s});f.current={onTabChange:o,onTableChange:r,onToolbarAction:s};let h=P.useRef(new Map);h.current=new Map(n.map(d=>[d.id,d]));let g=n.map(d=>d.id).join(),m=P.useRef(true);P.useEffect(()=>{if(m.current){m.current=false;return}for(let d of n)p.current.has(d.id)||(i.getState().initTab(d.id,oa(d)),p.current.add(d.id));},[i,g]);let b=n.map(d=>`${d.id}:${d.loading}:${d.syncing}:${d.exporting}:${d.disabled}`).join();P.useEffect(()=>{let{syncTabExternal:d}=i.getState();for(let T of n)d(T.id,{loading:T.loading,syncing:T.syncing,exporting:T.exporting,disabled:T.disabled});},[i,b]),P.useEffect(()=>{let d=i.getState().stateVersion;return i.subscribe(T=>{if(T.stateVersion===d)return;d=T.stateVersion;let S=T.activeTabId,H=T.tabs[S];if(!H)return;let te={pagination:H.pagination,filters:H.filters,sorter:H.sorter},Ne=T.changeReason;Ne==="tab_switch"&&f.current.onTabChange?.(S),f.current.onTableChange?.(te,Ne,S);})},[i]);let u=P.useRef(false);P.useEffect(()=>{if(u.current||(u.current=true,!a))return;let d=i.getState(),T=d.activeTabId,S=d.tabs[T];S&&f.current.onTableChange?.(S,"mount",T);},[i,a]);let E=useStore(i,d=>d.activeTabId),x=useStore(i,useShallow(d=>d.tabs[d.activeTabId]??O)),N=h.current.get(E),z=N?.type==="custom",k=z?void 0:N,G=z?N:void 0,{columnVisibility:L,pagination:y}=x,I=k?.columns,V=G?.filterColumns,W=P.useMemo(()=>I?I.filter(d=>!d.hidden):[],[I]),B=P.useMemo(()=>z?V??[]:Ot(I),[z,V,I]),_=P.useMemo(()=>W.filter(d=>{let T=d.key??d.dataIndex;return !T||L[T]!==false}),[W,L]),$=P.useCallback(d=>{let T=i.getState(),S=T.activeTabId,H=T.tabs[S]?.filters??[],te=typeof d=="function"?d(H):d;T.setFilters(S,te);},[i]),ue=P.useCallback((d,T,S,H)=>{let te=i.getState().activeTabId;i.getState().setTableChange(te,S,H);},[i]),ee=P.useCallback((d,T)=>{let S=i.getState().activeTabId;i.getState().setPagination(S,d,T);},[i]),he=P.useCallback(d=>{let T=i.getState(),S=T.activeTabId,H=T.tabs[S],te={pagination:H?.pagination??O.pagination,filters:H?.filters??O.filters,sorter:H?.sorter??O.sorter};d.tableState=te,f.current.onToolbarAction?.(d,S);},[i]),Se=P.useMemo(()=>({...c,current:y.current,pageSize:y.pageSize,total:N?.total,onChange:ee,onShowSizeChange:ee}),[c,y,N?.total,ee]),ve=P.useMemo(()=>({loading:x.loading,syncing:x.syncing,exporting:x.exporting,disabled:x.disabled,filters:x.filters,pagination:y,onFiltersChange:$,onPaginationChange:ee}),[x,y,$,ee]),ie=P.useMemo(()=>n.map(({id:d,label:T,value:S})=>({id:d,label:T,value:S})),[g]);return {store:i,activeTabId:E,tabList:ie,columns:W,filterColumns:B,tableColumns:_,tableProps:{dataSource:k?.dataSource,rowKey:k?.rowKey,size:x.tableSize,pagination:false,scroll:k?.scroll,virtual:k?.virtual,onChange:ue},paginationProps:Se,defaultFilters:x.filters,onFiltersChange:$,toolbarItems:N?.toolbarItems,onToolbarAction:he,isCustomTab:z,customRender:G?.render,tabRenderCtx:ve,enableTableAutoScrollSizer:k?.enableTableAutoScrollSizer??G?.enableTableAutoScrollSizer??true}}function oa(e){return {pagination:e.defaultPagination,filters:e.defaultFilters,sorter:e.type!=="custom"?e.defaultSorter:void 0,loading:e.loading,syncing:e.syncing,exporting:e.exporting,disabled:e.disabled}}export{Kt as DEFAULT_TOOLBAR_ITEMS,co as DataTable,mo as useDataTable};
package/index.d.ts CHANGED
@@ -4,7 +4,7 @@ import { PaginationProps } from 'antd';
4
4
  import * as tailwind_variants from 'tailwind-variants';
5
5
  import { VariantProps } from 'tailwind-variants';
6
6
  import * as react_jsx_runtime from 'react/jsx-runtime';
7
- import { Avatar as Avatar$1, Tabs as Tabs$1, Popover as Popover$1, DropdownMenu as DropdownMenu$2, Collapsible as Collapsible$1, Tooltip as Tooltip$1 } from 'radix-ui';
7
+ import { Avatar as Avatar$1, Tabs as Tabs$1, Popover as Popover$1, Switch as Switch$1, DropdownMenu as DropdownMenu$2, Collapsible as Collapsible$1, Tooltip as Tooltip$1 } from 'radix-ui';
8
8
  import { Command as Command$1 } from 'cmdk';
9
9
  import { DialogProps } from 'vaul';
10
10
  import { B as ButtonSharedProps } from './button-DMIeJ1gB.js';
@@ -431,7 +431,7 @@ declare function PopoverClose({ className, unstyled, ...rest }: React__default.C
431
431
  unstyled?: boolean;
432
432
  }): react_jsx_runtime.JSX.Element;
433
433
  declare function PopoverAnchor({ ...props }: React__default.ComponentProps<typeof Popover$1.Anchor>): react_jsx_runtime.JSX.Element;
434
- declare function PopoverOverlay({ className, ...props }: React__default.ComponentProps<'div'>): react_jsx_runtime.JSX.Element;
434
+ declare function PopoverOverlay<T extends React__default.ElementType = 'div'>({ as, className, ...props }: PolymorphicProps<T>): react_jsx_runtime.JSX.Element;
435
435
 
436
436
  declare const popover_Popover: typeof Popover;
437
437
  declare const popover_PopoverAnchor: typeof PopoverAnchor;
@@ -514,7 +514,27 @@ type PopoverPresetProps = VariantProps<typeof popoverVariants> & React__default.
514
514
  onOpenChange?: (open: boolean) => void;
515
515
  onClose?: () => void;
516
516
  };
517
- declare function PopoverPreset({ variant, className, contentClassName, side, align, arrow, unstyled, closeable, sideOffset, title, content: contentNode, children, defaultOpen, open: controlledOpen, onOpenChange: controlledOnOpenChange, onClose, ...rest }: PopoverPresetProps): react_jsx_runtime.JSX.Element;
517
+ declare function PopoverPreset({ variant, className, contentClassName, side, align, arrow, unstyled, closeable, sideOffset, title, content: contentNode, children, asChild, defaultOpen, open: controlledOpen, onOpenChange: controlledOnOpenChange, onClose, ...rest }: PopoverPresetProps): react_jsx_runtime.JSX.Element;
518
+
519
+ type PopConfirmProps = VariantProps<typeof popoverVariants> & React__default.ComponentProps<typeof PopoverContent> & {
520
+ title?: React__default.ReactNode;
521
+ content?: React__default.ReactNode;
522
+ contentClassName?: string;
523
+ open?: boolean;
524
+ defaultOpen?: boolean;
525
+ closeable?: boolean;
526
+ onOpenChange?: (open: boolean) => void;
527
+ onConfirm?: () => void | Promise<void>;
528
+ onCancel?: () => void;
529
+ };
530
+ declare function PopConfirm({ variant, title, content: contentNode, children, defaultOpen, className, side, align, sideOffset, arrow, open: controlledOpen, contentClassName, onOpenChange: controlledOnOpenChange, onConfirm, onCancel, ...rest }: PopConfirmProps): react_jsx_runtime.JSX.Element;
531
+
532
+ type RootProps = React__default.ComponentProps<typeof Switch$1.Root>;
533
+ declare function Switch({ className, size, disabled, loading, onChange, ...props }: Omit<RootProps, 'onCheckedChange' | 'onChange'> & {
534
+ size?: 'small' | 'default';
535
+ loading?: boolean;
536
+ onChange?: RootProps['onCheckedChange'];
537
+ }): react_jsx_runtime.JSX.Element;
518
538
 
519
539
  type DrawerProps = Omit<DialogProps, 'onOpenChange'> & {
520
540
  className?: string;
@@ -873,4 +893,4 @@ declare const Tooltip: React__default.FC<TooltipProps & {
873
893
  content: React__default.ReactNode;
874
894
  }>;
875
895
 
876
- export { avatar as Avatar, badge as Badge, ButtonSharedProps, card as Card, Collapsible, CollapsibleContent, CollapsibleTrigger, ColorPanel, command as Command, CopyableText, type CopyableTextProps, type DebouncedFunction, Drawer, type DrawerProps, DropdownMenu, type DropdownMenuItemProps, type DropdownMenuProps, type DropdownMenuVariants, type MenuPropBase, popover as Popover, PopoverPreset, type PopoverPresetProps, type Scheduler, Skeleton, Spinner, tabs as Tabs, type ThrottledFunction, Tooltip, TooltipArrow, TooltipProvider, TooltipRoot, TooltipTrigger, UIProvider, type UseDrawerOptions, cn, dateUtils, debounce, dropdownMenuStyles, formatCurrency, formatIntegerCompact, formatNumber, getFirstLetters, mergeRefs, throttle, tooltipVariants, tv, twMergeConfig, useDrawer };
896
+ export { avatar as Avatar, badge as Badge, ButtonSharedProps, card as Card, Collapsible, CollapsibleContent, CollapsibleTrigger, ColorPanel, command as Command, CopyableText, type CopyableTextProps, type DebouncedFunction, Drawer, type DrawerProps, DropdownMenu, type DropdownMenuItemProps, type DropdownMenuProps, type DropdownMenuVariants, type MenuPropBase, PopConfirm, type PopConfirmProps, popover as Popover, PopoverPreset, type PopoverPresetProps, type Scheduler, Skeleton, Spinner, Switch, tabs as Tabs, type ThrottledFunction, Tooltip, TooltipArrow, TooltipProvider, TooltipRoot, TooltipTrigger, UIProvider, type UseDrawerOptions, cn, dateUtils, debounce, dropdownMenuStyles, formatCurrency, formatIntegerCompact, formatNumber, getFirstLetters, mergeRefs, throttle, tooltipVariants, tv, twMergeConfig, useDrawer };
package/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import {j}from'./chunk-EM7GIZXE.js';export{l as DropdownMenu,j as Skeleton,i as Tabs,a as UIProvider,c as debounce,k as dropdownMenuStyles,e as mergeRefs,d as throttle}from'./chunk-EM7GIZXE.js';import {b,c,D,H,E,F,G,O as O$1,M,i}from'./chunk-VZDC732G.js';export{M as Button,u as Card,C as Command,I as Popover,J as Spinner,i as Tooltip,f as TooltipArrow,h as TooltipProvider,d as TooltipRoot,e as TooltipTrigger,K as baseButtonStyle,L as buttonVariants,c as cn,g as tooltipVariants,b as tv,a as twMergeConfig}from'./chunk-VZDC732G.js';import {a}from'./chunk-M7AD2PUT.js';import {Slot,Avatar,Collapsible}from'radix-ui';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import*as O from'react';import O__default from'react';import {Drawer}from'vaul';import {AnimatePresence,m}from'motion/react';import {Copy,CheckCheck}from'lucide-react';var He={dateDash:"yyyy-MM-dd",dateSlash:"YYYY/MM/DD",dateTimeMinuteDash:"yyyy-MM-dd HH:mm",dateTimeMinuteSlash:"yyyy/MM/dd HH:mm",dateTimeSecondDash:"yyyy-MM-dd HH:mm:ss",dateTimeSecondSlash:"yyyy/MM/dd HH:mm:ss",timeMinute:"HH:mm",timeSecond:"HH:mm:ss"},Ie={presets:He};var le=new WeakMap;function pe(e){return((...t)=>{let r=le.get(e),o=t.map(String).join("_");if(r){let i=r.get(o);if(i)return i}else r=new Map,le.set(e,r);let n=e(...t);return r.set(o,n),n})}function zt(e,t,r="zh-CN"){return new Intl.NumberFormat(r,t).format(e)}function Vt(e,t,r="zh-CN"){return new Intl.NumberFormat(r,{style:"currency",...t}).format(e)}function Bt(e,t="en-US"){return new Intl.NumberFormat(t,{notation:"compact",compactDisplay:"short"}).format(e)}var Mt=pe((e,t=2)=>e.replace(/[.,!@#$%^&*()_+=\-`~[\]/\\{}:"|<>?]+/gi,"").trim().split(/\s+/).slice(0,t).map(r=>{if(!r.length)return "";if(/\s+/.test(e))return r.match(/./u)?.[0].toUpperCase();let o=new RegExp(".".repeat(t),"u"),n=r.match(o)?.[0];return n?n.charAt(0).toUpperCase()+n.slice(1):e.charAt(0).toUpperCase()+e.slice(1,2)}).join(""));var de={};a(de,{Badge:()=>Fe,BadgeButton:()=>Ee,BadgeDot:()=>Ue,Root:()=>Fe,badgeVariants:()=>me});var me=b({base:["inline-flex items-center justify-center border border-transparent font-medium whitespace-nowrap select-none [&_svg]:-ms-px [&_svg]:shrink-0","focus:ring-2 focus:ring-primary-base focus:ring-offset-2 focus:outline-hidden"],variants:{variant:{primary:"bg-primary-base text-static-white",secondary:"bg-gray-200 text-gray-700",success:"bg-green-500 text-static-white",warning:"bg-yellow-500 text-static-white",info:"bg-violet-500 text-static-white",outline:"border border-stroke-soft bg-transparent text-text-sub",error:"bg-red-600 text-static-white"},appearance:{default:"",light:"",outline:"border-stroke-sub",ghost:"border-transparent bg-transparent"},disabled:{true:"pointer-events-none opacity-50"},size:{large:"h-28 min-w-28 gap-6 rounded-lg px-8 text-[14px] [&_svg]:size-14",medium:"h-24 min-w-24 gap-5 rounded-lg px-[7.2px] text-[14px] [&_svg]:size-14",small:"h-20 min-w-20 gap-4 rounded-md px-[5.2px] text-[12px] leading-14 [&_svg]:size-12",xsmall:"h-16 min-w-16 gap-4 rounded-md px-4 text-[10px] leading-12 [&_svg]:size-12"},shape:{default:"",circle:"rounded-full"}},compoundVariants:[{variant:"primary",appearance:"light",className:"bg-primary-base text-static-white"},{variant:"secondary",appearance:"light",className:"bg-gray-200"},{variant:"success",appearance:"light",className:"bg-green-50 text-green-700"},{variant:"warning",appearance:"light",className:"bg-yellow-50 text-yellow-700"},{variant:"info",appearance:"light",className:"bg-violet-50 text-violet-700"},{variant:"error",appearance:"light",className:"bg-red-50 text-red-700"},{variant:"primary",appearance:"outline",className:"border-blue-100 bg-blue-50 text-blue-700"},{variant:"success",appearance:"outline",className:"border-green-100 bg-green-50 text-green-700"},{variant:"warning",appearance:"outline",className:"border-yellow-100 bg-yellow-50 text-yellow-700"},{variant:"info",appearance:"outline",className:"border-violet-100 bg-violet-50 text-violet-700"},{variant:"error",appearance:"outline",className:"border-red-100 bg-red-50 text-red-700"},{variant:"primary",appearance:"ghost",className:"text-primary-base"},{variant:"secondary",appearance:"ghost",className:"text-gray-700"},{variant:"success",appearance:"ghost",className:"text-green-500"},{variant:"warning",appearance:"ghost",className:"text-yellow-500"},{variant:"info",appearance:"ghost",className:"text-violet-500"},{variant:"error",appearance:"ghost",className:"text-error-base"},{size:"large",appearance:"ghost",className:"px-0"},{size:"medium",appearance:"ghost",className:"px-0"},{size:"small",appearance:"ghost",className:"px-0"},{size:"xsmall",appearance:"ghost",className:"px-0"}],defaultVariants:{variant:"primary",appearance:"default",size:"medium"}}),Le=b({base:"-me-2 inline-flex size-14 cursor-pointer items-center justify-center rounded-md p-0 leading-none opacity-60 transition-all hover:opacity-100 [&>svg]:size-14! [&>svg]:opacity-100!",variants:{variant:{default:""}},defaultVariants:{variant:"default"}});function Fe({className:e,variant:t,size:r,appearance:o,shape:n,asChild:i=false,disabled:u,...l}){let m=i?Slot.Slot:"span";return jsx(m,{"data-slot":"badge",className:c(me({variant:t,size:r,appearance:o,shape:n,disabled:u}),e),...l})}function Ee({className:e,variant:t,asChild:r=false,...o}){let n=r?Slot.Slot:"span";return jsx(n,{"data-slot":"badge-button",className:c(Le({variant:t,className:e})),role:"button",...o})}function Ue({className:e,...t}){return jsx("span",{"data-slot":"badge-dot",className:c("size-6 rounded-full bg-[currentColor] opacity-75",e),...t})}var fe={};a(fe,{Avatar:()=>_e,AvatarFallback:()=>We,AvatarImage:()=>Ye,AvatarIndicator:()=>qe,AvatarStatus:()=>$e,Root:()=>_e,avatarStatusVariants:()=>ue});var ue=b({base:"border-background flex size-2 items-center rounded-full border-2",variants:{variant:{online:"bg-green-600",offline:"bg-zinc-400 dark:bg-zinc-500",busy:"bg-yellow-600",away:"bg-blue-600"}},defaultVariants:{variant:"online"}});function _e({className:e,...t}){return jsx(Avatar.Root,{"data-slot":"avatar",className:c("relative flex size-40 shrink-0",e),...t})}function Ye({className:e,...t}){return jsx("div",{className:c("relative overflow-hidden rounded-full",e),children:jsx(Avatar.Image,{"data-slot":"avatar-image",className:c("aspect-square h-full w-full"),...t})})}function We({className:e,...t}){return jsx(Avatar.Fallback,{"data-slot":"avatar-fallback",className:c("flex h-full w-full items-center justify-center rounded-full border border-stroke-soft bg-bg-weak text-[13px] text-text-sub",e),...t})}function qe({className:e,...t}){return jsx("div",{"data-slot":"avatar-indicator",className:c("absolute flex size-24 items-center justify-center",e),...t})}function $e({className:e,variant:t,...r}){return jsx("div",{"data-slot":"avatar-status",className:c(ue({variant:t}),e),...r})}function U({className:e,variant:t="neutral",mode:r="stroke",size:o="small",...n}){return jsx(M,{variant:t,mode:r,size:o,className:c("absolute top-12 right-10 z-10 m-auto aspect-square rounded-full border-transparent text-text-soft hover:text-text-strong",e),...n,children:jsxs("svg",{width:"1em",height:"1em",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M10.4854 1.99998L2.00007 10.4853",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),jsx("path",{d:"M10.4854 10.4844L2.00007 1.99908",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})}var je=b({slots:{root:"relative flex w-fit max-w-xl flex-col rounded-[12px] border border-stroke-soft p-0 text-md",content:"",arrowCls:"",header:"flex items-center pe-28 select-none",close:"rounded-full"},variants:{variant:{default:{root:"gap-8 bg-bg-white p-16 pt-12",close:"top-14 right-12 hover:bg-bg-weak"},accent:{root:"bg-bg-weak p-4",content:"rounded-[8px] bg-bg-white px-12 py-8 shadow-sm",header:"px-12 py-4 pb-6",close:"top-10 right-8 hover:bg-bg-white",arrowCls:"bg-bg-weak"}}},defaultVariants:{variant:"default"}});function Ge({variant:e,className:t,contentClassName:r,side:o="bottom",align:n="start",arrow:i=true,unstyled:u=true,closeable:l=true,sideOffset:m=1,title:p,content:d,children:b,defaultOpen:H$1,open:h,onOpenChange:C,onClose:v,...P}){let{root:N,content:R,header:D$1,close:T,arrowCls:q}=je({variant:e}),[I,$]=O__default.useState(H$1??false),k=h!==void 0,z=k?h:I,V=O__default.useCallback(L=>{k||$(L),C?.(L);},[k,C]);return jsxs(D,{open:z,onOpenChange:V,children:[k&&z&&jsx(H,{}),jsx(E,{className:c(z&&"active",k&&z&&"relative z-20"),children:b}),jsxs(F,{className:N({className:t}),arrowClassName:q(),unstyled:u,side:o,align:n,sideOffset:m,arrow:i,...P,children:[p&&jsxs("header",{className:D$1(),children:[jsx("h4",{className:"m-0 text-[15px] leading-26 font-medium text-text-strong",children:p}),l&&jsx(G,{asChild:true,onClick:v,children:jsx(U,{size:"xsmall",mode:"ghost",className:T({class:"size-24 p-0"})})})]}),jsx("div",{className:R({className:r}),children:d})]})]})}function ve({...e}){return jsx(Drawer.Root,{"data-slot":"drawer",...e})}function xe({...e}){return jsx(Drawer.Trigger,{"data-slot":"drawer-trigger",...e})}function Je({...e}){return jsx(Drawer.Portal,{"data-slot":"drawer-portal",...e})}function X({...e}){return jsx(Drawer.Close,{"data-slot":"drawer-close",...e})}function Qe({className:e,...t}){return jsx(Drawer.Overlay,{"data-slot":"drawer-overlay",className:c("fixed inset-0 z-50 bg-black/10 data-closed:animate-out data-closed:fade-out-0 data-open:animate-in data-open:fade-in-0",e),...t})}var Xe={top:"inset-x-8 top-8 max-h-[80vh]",bottom:"inset-x-8 bottom-8 mt-96 max-h-[80vh]",left:"inset-y-8 left-8 w-3/5",right:"inset-y-8 right-8 w-3/5"};function ye({className:e,direction:t,children:r,...o}){let n=O.useRef({"--initial-transform":"calc(100% + 8px)"});return jsxs(Je,{"data-slot":"drawer-portal",children:[jsx(Qe,{}),jsx(Drawer.Content,{"data-slot":"drawer-content",style:n.current,className:c("group/drawer-content fixed z-50 flex h-auto flex-col rounded-[12px] bg-static-white outline-none",t&&Xe[t],e),...o,children:r})]})}function we({className:e,...t}){return jsx("div",{"data-slot":"drawer-header",className:c("flex flex-col px-16 py-12",e),...t})}function he({className:e,...t}){return jsx("div",{"data-slot":"drawer-body",className:c("scrollbar-thin overflow-y-auto p-16 select-text",e),...t})}function Ce({className:e,...t}){return jsx("div",{"data-slot":"drawer-footer",className:c("mt-auto flex flex-col gap-8 px-16 py-18",e),...t})}function Pe({className:e,...t}){return jsx(Drawer.Title,{"data-slot":"drawer-title",className:c("m-0 text-xl leading-32 font-medium text-text-strong",e),...t})}function Ne({className:e,...t}){return jsx(Drawer.Description,{"data-slot":"drawer-description",className:c("m-0 text-md text-text-sub",e),...t})}function tt({direction:e="right",dismissible:t=true,skeletonItemCount:r=5,className:o,footerClassName:n,bodyClassName:i,headerClassName:u,title:l="Title",description:m,footer:p,trigger:d,container:b,children:H,open:h,onOpenChange:C,loading:v,handleOnly:P=true,style:N,width:R,onClose:D,onOk:T,...q}){let I=O$1(),$=O__default.useRef({...N,width:R}),[k,z]=O__default.useState(false),[V,L]=O__default.useState(false),K=h!==void 0,ke=K?h:k,F=O__default.useCallback(B=>{!B&&V||(K||z(B),C?.(B));},[K,C,V]),Se=O__default.useCallback(async()=>{if(!T){F(false);return}let B=T();if(B instanceof Promise){L(true);try{await B,F(!1);}catch{}finally{L(false);}}else F(false);},[T,F]),E=!V&&t;return jsxs(ve,{container:b,direction:e,dismissible:E,handleOnly:P,autoFocus:true,open:ke,onOpenChange:F,...q,children:[d&&jsx(xe,{asChild:true,children:d}),jsxs(ye,{direction:e,className:c(b&&b!==document.body&&"absolute",o),style:$.current,children:[t&&jsx(X,{asChild:true,children:jsx(U,{disabled:!E})}),t===false&&jsx(U,{disabled:!E,onClick:D}),jsxs(we,{className:c("border-b border-b-stroke-antd",u),children:[jsx(Pe,{className:"pe-42",asChild:true,children:typeof l=="string"?jsx("h3",{children:l}):jsx("div",{children:l})}),jsx(Ne,{className:c(!m&&"sr-only"),children:m})]}),jsxs(he,{className:i,children:[v&&jsx(rt,{count:r}),!v&&H]}),jsxs(Ce,{className:c("flex-row border-t border-t-stroke-antd",n),children:[p,!p&&jsxs(Fragment,{children:[t&&jsx(X,{asChild:true,children:jsx(M,{variant:"neutral",mode:"stroke",className:"w-2/5",disabled:!E,children:I("close")})}),t===false&&jsx(M,{variant:"neutral",mode:"stroke",className:"w-2/5",disabled:!E,onClick:D,children:I("close")}),jsx(M,{variant:"neutral",mode:"filled",className:"w-3/5",loading:v||V,onClick:Se,children:I("ok")})]})]})]})]})}function rt({count:e=5}){let t=Array.from({length:e});return jsxs("div",{className:"flex flex-col gap-16",children:[jsxs("div",{className:"flex flex-row items-center gap-12",children:[jsx(j,{className:"size-58 rounded-2xl"}),jsxs("div",{className:"flex flex-1 flex-col gap-4",children:[jsx(j,{className:"mb-4 h-14 w-3/10"}),jsx(j,{className:"h-10 w-7/10"}),jsx(j,{className:"h-10 w-9/10"})]})]}),t.map((r,o)=>jsxs("div",{className:"flex flex-col gap-8",children:[jsx(j,{className:"h-12 w-5/10"}),jsx(j,{className:"h-12 w-7/10"}),jsx(j,{className:"h-12 w-full"})]},o))]})}function ot(e){let[t,r]=O__default.useState(false),[o,n]=O__default.useState(null),i=O__default.useCallback(p=>{n(p),r(true);},[]),u=O__default.useCallback(()=>{r(false),n(null);},[]),l=O__default.useCallback(p=>{r(p),p||n(null);},[]);return [{...e,open:t,onOpenChange:l,onClose:u},o,i,u]}var it={initial:{scale:.5,opacity:0,filter:"blur(2px)"},animate:{scale:1,opacity:1,filter:"blur(0px)"},exit:{scale:.5,opacity:0,filter:"blur(2px)"}},lt={opacity:{duration:.25},filter:{duration:.25},scale:{duration:.35,ease:[.34,1.56,.64,1]}};function De({state:e,states:t,className:r}){return jsx(AnimatePresence,{initial:false,mode:"popLayout",children:jsx(m.span,{className:c("inline-flex items-center justify-center",r),variants:it,initial:"initial",animate:"animate",exit:"exit",transition:lt,children:t[e]},e)})}var Te=async e=>{if(!e)return;if(navigator.clipboard){await navigator.clipboard.writeText(e);return}let t=document.createElement("textarea");t.setAttribute("readonly",""),t.tabIndex=-1,t.style.position="fixed",t.style.left="-9999px",t.value=e,document.body.appendChild(t);let r=document.getSelection();if(r){let o=r.rangeCount>0&&r.getRangeAt(0);t.select(),document.execCommand("copy"),o&&(r.removeAllRanges(),r.addRange(o));}document.body.removeChild(t);};function mt({content:e,delay:t=2e3,tooltipDelayDuration:r=700,variant:o="neutral",mode:n="stroke",size:i$1="small",as:u="button",onCopy:l,className:m}){let p=O$1(),[d,b]=O__default.useState(false),[H,h]=O__default.useState(false),[C,v]=O__default.useState(false),P=O__default.useRef(null),N=O__default.useRef(null);O__default.useEffect(()=>()=>{P.current&&clearTimeout(P.current),N.current&&clearTimeout(N.current);},[]);let R=O__default.useCallback(async()=>{d||(b(true),v(true),await Te(e),l?.(e),P.current=setTimeout(()=>{v(false),N.current=setTimeout(()=>b(false),150);},t));},[d,t,e,l]),D=jsx(De,{state:d?"succeed":"normal",states:{succeed:jsx(CheckCheck,{width:"1em",height:"1em"}),normal:jsx(Copy,{width:"1em",height:"1em"})}}),T=(()=>{switch(u){case "text":return jsx("span",{className:c("relative cursor-pointer before:absolute before:-inset-x-6 before:-inset-y-2 before:rounded-md hover:before:bg-bg-antd",m),onClick:R,children:jsx("span",{className:"relative z-1",children:e})});case "inline":return jsxs("span",{className:c("relative inline-flex cursor-pointer items-center gap-6 before:absolute before:-inset-x-6 before:-inset-y-2 before:rounded-md hover:before:bg-bg-antd",m),onClick:R,children:[jsx("span",{className:"relative z-1",children:e}),jsx("span",{className:c("inline-flex items-center text-zinc-500",d&&"text-primary-base"),children:D})]});default:return jsx(M,{variant:o,mode:n,size:i$1,className:c(d&&"cursor-not-allowed",m),onClick:R,startContent:D})}})();return jsx(i,{content:p(d?"copied":"copy"),size:i$1,open:C||H,delayDuration:r,onOpenChange:h,children:T})}function Or({asChild:e,children:t,className:r,variant:o="slate",...n}){let i=e?Slot.Root:"div";return jsx(i,{className:c(`flex shrink-0 items-center justify-center rounded-xl border ui-badge-${o}`,r),...n,children:t})}function Ar({...e}){return jsx(Collapsible.Root,{"data-slot":"collapsible",...e})}function Hr({...e}){return jsx(Collapsible.CollapsibleTrigger,{"data-slot":"collapsible-trigger",...e})}function Ir({className:e,...t}){return jsx(Collapsible.CollapsibleContent,{"data-slot":"collapsible-content",className:c("collapsible-content",e),...t})}
2
- export{fe as Avatar,de as Badge,Ar as Collapsible,Ir as CollapsibleContent,Hr as CollapsibleTrigger,Or as ColorPanel,mt as CopyableText,tt as Drawer,Ge as PopoverPreset,Ie as dateUtils,Vt as formatCurrency,Bt as formatIntegerCompact,zt as formatNumber,Mt as getFirstLetters,ot as useDrawer};
1
+ import {j,m as m$1}from'./chunk-GL6SS2S2.js';export{o as DropdownMenu,m as Skeleton,i as Tabs,a as UIProvider,c as debounce,n as dropdownMenuStyles,e as mergeRefs,d as throttle}from'./chunk-GL6SS2S2.js';import {b,c,D,H,E,F,G,M,O,i}from'./chunk-T44X4HCD.js';export{M as Button,u as Card,C as Command,I as Popover,J as Spinner,i as Tooltip,f as TooltipArrow,h as TooltipProvider,d as TooltipRoot,e as TooltipTrigger,K as baseButtonStyle,L as buttonVariants,c as cn,g as tooltipVariants,b as tv,a as twMergeConfig}from'./chunk-T44X4HCD.js';import {a}from'./chunk-M7AD2PUT.js';import {Slot,Avatar,Switch,Collapsible}from'radix-ui';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import*as I from'react';import I__default from'react';import {CircleAlert,Loader2,Copy,CheckCheck}from'lucide-react';import {AnimatePresence,m}from'motion/react';import {Drawer}from'vaul';var We={dateDash:"yyyy-MM-dd",dateSlash:"YYYY/MM/DD",dateTimeMinuteDash:"yyyy-MM-dd HH:mm",dateTimeMinuteSlash:"yyyy/MM/dd HH:mm",dateTimeSecondDash:"yyyy-MM-dd HH:mm:ss",dateTimeSecondSlash:"yyyy/MM/dd HH:mm:ss",timeMinute:"HH:mm",timeSecond:"HH:mm:ss"},Ye={presets:We};var fe=new WeakMap;function ge(e){return((...t)=>{let a=fe.get(e),o=t.map(String).join("_");if(a){let i=a.get(o);if(i)return i}else a=new Map,fe.set(e,a);let n=e(...t);return a.set(o,n),n})}function Yt(e,t,a="zh-CN"){return new Intl.NumberFormat(a,t).format(e)}function qt(e,t,a="zh-CN"){return new Intl.NumberFormat(a,{style:"currency",...t}).format(e)}function $t(e,t="en-US"){return new Intl.NumberFormat(t,{notation:"compact",compactDisplay:"short"}).format(e)}var Kt=ge((e,t=2)=>e.replace(/[.,!@#$%^&*()_+=\-`~[\]/\\{}:"|<>?]+/gi,"").trim().split(/\s+/).slice(0,t).map(a=>{if(!a.length)return "";if(/\s+/.test(e))return a.match(/./u)?.[0].toUpperCase();let o=new RegExp(".".repeat(t),"u"),n=a.match(o)?.[0];return n?n.charAt(0).toUpperCase()+n.slice(1):e.charAt(0).toUpperCase()+e.slice(1,2)}).join(""));var he={};a(he,{Badge:()=>$e,BadgeButton:()=>Ke,BadgeDot:()=>je,Root:()=>$e,badgeVariants:()=>ve});var ve=b({base:["inline-flex items-center justify-center border border-transparent font-medium whitespace-nowrap select-none [&_svg]:-ms-px [&_svg]:shrink-0","focus:ring-2 focus:ring-primary-base focus:ring-offset-2 focus:outline-hidden"],variants:{variant:{primary:"bg-primary-base text-static-white",secondary:"bg-gray-200 text-gray-700",success:"bg-green-500 text-static-white",warning:"bg-yellow-500 text-static-white",info:"bg-violet-500 text-static-white",outline:"border border-stroke-soft bg-transparent text-text-sub",error:"bg-red-600 text-static-white"},appearance:{default:"",light:"",outline:"border-stroke-sub",ghost:"border-transparent bg-transparent"},disabled:{true:"pointer-events-none opacity-50"},size:{large:"h-28 min-w-28 gap-6 rounded-lg px-8 text-[14px] [&_svg]:size-14",medium:"h-24 min-w-24 gap-5 rounded-lg px-[7.2px] text-[14px] [&_svg]:size-14",small:"h-20 min-w-20 gap-4 rounded-md px-[5.2px] text-[12px] leading-14 [&_svg]:size-12",xsmall:"h-16 min-w-16 gap-4 rounded-md px-4 text-[10px] leading-12 [&_svg]:size-12"},shape:{default:"",circle:"rounded-full"}},compoundVariants:[{variant:"primary",appearance:"light",className:"bg-primary-base text-static-white"},{variant:"secondary",appearance:"light",className:"bg-gray-200"},{variant:"success",appearance:"light",className:"bg-green-50 text-green-700"},{variant:"warning",appearance:"light",className:"bg-yellow-50 text-yellow-700"},{variant:"info",appearance:"light",className:"bg-violet-50 text-violet-700"},{variant:"error",appearance:"light",className:"bg-red-50 text-red-700"},{variant:"primary",appearance:"outline",className:"border-blue-100 bg-blue-50 text-blue-700"},{variant:"success",appearance:"outline",className:"border-green-100 bg-green-50 text-green-700"},{variant:"warning",appearance:"outline",className:"border-yellow-100 bg-yellow-50 text-yellow-700"},{variant:"info",appearance:"outline",className:"border-violet-100 bg-violet-50 text-violet-700"},{variant:"error",appearance:"outline",className:"border-red-100 bg-red-50 text-red-700"},{variant:"primary",appearance:"ghost",className:"text-primary-base"},{variant:"secondary",appearance:"ghost",className:"text-gray-700"},{variant:"success",appearance:"ghost",className:"text-green-500"},{variant:"warning",appearance:"ghost",className:"text-yellow-500"},{variant:"info",appearance:"ghost",className:"text-violet-500"},{variant:"error",appearance:"ghost",className:"text-error-base"},{size:"large",appearance:"ghost",className:"px-0"},{size:"medium",appearance:"ghost",className:"px-0"},{size:"small",appearance:"ghost",className:"px-0"},{size:"xsmall",appearance:"ghost",className:"px-0"}],defaultVariants:{variant:"primary",appearance:"default",size:"medium"}}),qe=b({base:"-me-2 inline-flex size-14 cursor-pointer items-center justify-center rounded-md p-0 leading-none opacity-60 transition-all hover:opacity-100 [&>svg]:size-14! [&>svg]:opacity-100!",variants:{variant:{default:""}},defaultVariants:{variant:"default"}});function $e({className:e,variant:t,size:a,appearance:o,shape:n,asChild:i=false,disabled:d,...l}){let m=i?Slot.Slot:"span";return jsx(m,{"data-slot":"badge",className:c(ve({variant:t,size:a,appearance:o,shape:n,disabled:d}),e),...l})}function Ke({className:e,variant:t,asChild:a=false,...o}){let n=a?Slot.Slot:"span";return jsx(n,{"data-slot":"badge-button",className:c(qe({variant:t,className:e})),role:"button",...o})}function je({className:e,...t}){return jsx("span",{"data-slot":"badge-dot",className:c("size-6 rounded-full bg-[currentColor] opacity-75",e),...t})}var ye={};a(ye,{Avatar:()=>Ge,AvatarFallback:()=>Qe,AvatarImage:()=>Je,AvatarIndicator:()=>Xe,AvatarStatus:()=>Ze,Root:()=>Ge,avatarStatusVariants:()=>xe});var xe=b({base:"border-background flex size-2 items-center rounded-full border-2",variants:{variant:{online:"bg-green-600",offline:"bg-zinc-400 dark:bg-zinc-500",busy:"bg-yellow-600",away:"bg-blue-600"}},defaultVariants:{variant:"online"}});function Ge({className:e,...t}){return jsx(Avatar.Root,{"data-slot":"avatar",className:c("relative flex size-40 shrink-0",e),...t})}function Je({className:e,...t}){return jsx("div",{className:c("relative overflow-hidden rounded-full",e),children:jsx(Avatar.Image,{"data-slot":"avatar-image",className:c("aspect-square h-full w-full"),...t})})}function Qe({className:e,...t}){return jsx(Avatar.Fallback,{"data-slot":"avatar-fallback",className:c("flex h-full w-full items-center justify-center rounded-full border border-stroke-soft bg-bg-weak text-[13px] text-text-sub",e),...t})}function Xe({className:e,...t}){return jsx("div",{"data-slot":"avatar-indicator",className:c("absolute flex size-24 items-center justify-center",e),...t})}function Ze({className:e,variant:t,...a}){return jsx("div",{"data-slot":"avatar-status",className:c(xe({variant:t}),e),...a})}function $({className:e,variant:t="neutral",mode:a="stroke",size:o="small",...n}){return jsx(M,{variant:t,mode:a,size:o,className:c("absolute top-12 right-10 z-10 m-auto aspect-square rounded-full border-transparent text-text-soft hover:text-text-strong",e),...n,children:jsxs("svg",{width:"1em",height:"1em",viewBox:"0 0 12 12",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[jsx("path",{d:"M10.4854 1.99998L2.00007 10.4853",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),jsx("path",{d:"M10.4854 10.4844L2.00007 1.99908",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]})})}var se=b({slots:{root:"relative flex w-fit max-w-xl flex-col rounded-[12px] border border-stroke-soft p-0 text-md",content:"",arrowCls:"",header:"flex items-center pe-28 select-none",close:"rounded-full"},variants:{variant:{default:{root:"gap-8 bg-bg-white p-16 pt-12",close:"top-12 right-12 hover:bg-bg-weak"},accent:{root:"bg-bg-weak p-4",content:"rounded-[8px] bg-bg-white px-12 py-8 shadow-sm",header:"px-12 py-4 pb-6",close:"top-9 right-8 hover:bg-bg-white",arrowCls:"bg-bg-weak"}}},defaultVariants:{variant:"default"}});function tt({variant:e,className:t,contentClassName:a,side:o="bottom",align:n="start",arrow:i=true,unstyled:d=true,closeable:l=true,sideOffset:m=1,title:p,content:c$1,children:v,asChild:O,defaultOpen:x,open:y,onOpenChange:g,onClose:w,...C}){let{root:P,content:N,header:R,close:W,arrowCls:k}=se({variant:e}),[A,M]=I__default.useState(x??false),D$1=y!==void 0,u=D$1?y:A,L=I__default.useCallback(T=>{D$1||M(T),g?.(T);},[D$1,g]);return jsxs(D,{open:u,onOpenChange:L,children:[D$1&&u&&jsx(H,{}),jsx(E,{className:c(u&&"active",D$1&&u&&"relative z-20"),asChild:O,children:v}),jsxs(F,{className:P({className:t}),arrowClassName:k(),unstyled:d,side:o,align:n,sideOffset:m,arrow:i,...C,children:[p&&jsxs("header",{className:R(),children:[jsx("h4",{className:"m-0 text-15 leading-26 font-medium text-text-strong",children:p}),l&&jsx(G,{asChild:true,onClick:w,children:jsx($,{size:"xsmall",mode:"ghost",className:W({class:"size-24 p-0"})})})]}),jsx("div",{className:N({className:a}),children:c$1})]})]})}function nt({variant:e="default",title:t,content:a,children:o,defaultOpen:n,className:i,side:d="top",align:l="center",sideOffset:m$1=1,arrow:p=true,open:c$1,contentClassName:v,onOpenChange:O,onConfirm:x,onCancel:y,...g}){let{root:w,content:C,header:P,arrowCls:N}=se({variant:e}),[R,W]=I__default.useState(n??false),k=c$1!==void 0,A=k?c$1:R,M$1=I__default.useCallback(T=>{k||W(T),O?.(T);},[k,O]),[D$1,u]=I__default.useState(false),L=I__default.useCallback(async()=>{M$1(false);try{u(!0),await x?.();}catch{}finally{u(false);}},[M$1,x]);return jsxs(D,{open:A,onOpenChange:M$1,children:[jsx(AnimatePresence,{children:A&&jsx(H,{as:m.div,...j,className:"bg-black/5"})}),jsx(E,{className:c(A&&"relative z-20"),children:jsx("div",{className:"inline-flex items-center",children:I__default.isValidElement(o)?I__default.cloneElement(o,{loading:D$1}):o})}),jsxs(F,{className:w({className:c("max-w-lg",i)}),arrowClassName:N(),unstyled:true,side:d,align:l,sideOffset:m$1,arrow:p,...g,children:[t&&jsxs("header",{className:P({className:"gap-6"}),children:[jsx(CircleAlert,{className:"text-red-500",size:16}),jsx("h4",{className:"m-0 text-15 leading-26 font-medium text-text-strong",children:t})]}),jsxs("div",{className:C({className:v}),children:[a,jsxs("div",{className:"mt-8 flex justify-end gap-12",children:[jsx(G,{unstyled:true,onClick:y,asChild:true,children:jsx(M,{size:"xsmall",variant:"neutral",mode:"stroke",className:"h-26",children:"Cancel"})}),jsx(M,{size:"xsmall",mode:"stroke",className:"h-26",onClick:L,children:"Confirm"})]})]})]})]})}function it({className:e,size:t="default",disabled:a,loading:o,onChange:n,...i}){return jsxs(Switch.Root,{"data-slot":"switch","data-size":t,onCheckedChange:n,className:c("peer group/switch relative inline-flex shrink-0 items-center rounded-full border border-transparent p-0 transition-all outline-none","focus-visible:ring-2 focus-visible:ring-primary-base focus-visible:ring-offset-1 data-disabled:cursor-not-allowed data-disabled:opacity-50 data-[state=checked]:bg-primary-base data-[state=unchecked]:bg-bg-sub","data-[size=default]:h-20 data-[size=default]:w-38 data-[size=small]:h-18 data-[size=small]:w-32","aria-invalid:border-error-base aria-invalid:ring-3 aria-invalid:ring-error-light","after:absolute after:-inset-x-12 after:-inset-y-8",e),disabled:a||o,...i,children:[jsx(Switch.Thumb,{"data-slot":"switch-thumb",className:c("pointer-events-none block rounded-full bg-bg-white ring-0 transition-transform duration-250","group-data-[size=default]/switch:size-16 group-data-[size=default]/switch:data-[state=checked]:translate-x-19","group-data-[size=default]/switch:data-[state=unchecked]:translate-x-1","group-data-[size=small]/switch:size-14 group-data-[size=small]/switch:data-[state=checked]:translate-x-15","group-data-[size=small]/switch:data-[state=unchecked]:translate-x-1")}),o&&jsx("span",{"data-slot":"switch-loader",className:c("absolute inset-y-0 left-0 m-auto flex items-center justify-center text-text-soft transition-transform","group-data-[size=default]/switch:size-16 group-data-[size=default]/switch:group-data-[state=checked]/switch:translate-x-19","group-data-[size=default]/switch:group-data-[state=unchecked]/switch:translate-x-1","group-data-[size=small]/switch:size-14 group-data-[size=small]/switch:group-data-[state=checked]/switch:translate-x-15","group-data-[size=small]/switch:group-data-[state=unchecked]/switch:translate-x-1"),children:jsx(Loader2,{className:"animate-spin group-data-[size=default]/switch:size-14 group-data-[size=small]/switch:size-12",strokeWidth:"1"})})]})}function Ne({...e}){return jsx(Drawer.Root,{"data-slot":"drawer",...e})}function Re({...e}){return jsx(Drawer.Trigger,{"data-slot":"drawer-trigger",...e})}function pt({...e}){return jsx(Drawer.Portal,{"data-slot":"drawer-portal",...e})}function le({...e}){return jsx(Drawer.Close,{"data-slot":"drawer-close",...e})}function ct({className:e,...t}){return jsx(Drawer.Overlay,{"data-slot":"drawer-overlay",className:c("fixed inset-0 z-50 bg-black/10 data-closed:animate-out data-closed:fade-out-0 data-open:animate-in data-open:fade-in-0",e),...t})}var mt={top:"inset-x-8 top-8 max-h-[80vh]",bottom:"inset-x-8 bottom-8 mt-96 max-h-[80vh]",left:"inset-y-8 left-8 w-3/5",right:"inset-y-8 right-8 w-3/5"};function ke({className:e,direction:t,children:a,...o}){let n=I.useRef({"--initial-transform":"calc(100% + 8px)"});return jsxs(pt,{"data-slot":"drawer-portal",children:[jsx(ct,{}),jsx(Drawer.Content,{"data-slot":"drawer-content",style:n.current,className:c("group/drawer-content fixed z-50 flex h-auto flex-col rounded-[12px] bg-static-white outline-none",t&&mt[t],e),...o,children:a})]})}function De({className:e,...t}){return jsx("div",{"data-slot":"drawer-header",className:c("flex flex-col px-16 py-12",e),...t})}function Te({className:e,...t}){return jsx("div",{"data-slot":"drawer-body",className:c("scrollbar-thin overflow-y-auto p-16 select-text",e),...t})}function ze({className:e,...t}){return jsx("div",{"data-slot":"drawer-footer",className:c("mt-auto flex flex-col gap-8 px-16 py-18",e),...t})}function Se({className:e,...t}){return jsx(Drawer.Title,{"data-slot":"drawer-title",className:c("m-0 text-xl leading-32 font-medium text-text-strong",e),...t})}function Oe({className:e,...t}){return jsx(Drawer.Description,{"data-slot":"drawer-description",className:c("m-0 text-md text-text-sub",e),...t})}function ft({direction:e="right",dismissible:t=true,skeletonItemCount:a=5,className:o,footerClassName:n,bodyClassName:i,headerClassName:d,title:l="Title",description:m,footer:p,trigger:c$1,container:v,children:O$1,open:x,onOpenChange:y,loading:g,handleOnly:w=true,style:C,width:P,onClose:N,onOk:R,...W}){let k=O(),A=I__default.useRef({...C,width:P}),[M$1,D]=I__default.useState(false),[u,L]=I__default.useState(false),T=x!==void 0,Me=T?x:M$1,Y=I__default.useCallback(F=>{!F&&u||(T||D(F),y?.(F));},[T,y,u]),He=I__default.useCallback(async()=>{if(!R){Y(false);return}let F=R();if(F instanceof Promise){L(true);try{await F,Y(!1);}catch{}finally{L(false);}}else Y(false);},[R,Y]),q=!u&&t;return jsxs(Ne,{container:v,direction:e,dismissible:q,handleOnly:w,autoFocus:true,open:Me,onOpenChange:Y,...W,children:[c$1&&jsx(Re,{asChild:true,children:c$1}),jsxs(ke,{direction:e,className:c(v&&v!==document.body&&"absolute",o),style:A.current,children:[t&&jsx(le,{asChild:true,children:jsx($,{disabled:!q})}),t===false&&jsx($,{disabled:!q,onClick:N}),jsxs(De,{className:c("border-b border-b-stroke-antd",d),children:[jsx(Se,{className:"pe-42",asChild:true,children:typeof l=="string"?jsx("h3",{children:l}):jsx("div",{children:l})}),jsx(Oe,{className:c(!m&&"sr-only"),children:m})]}),jsxs(Te,{className:i,children:[g&&jsx(gt,{count:a}),!g&&O$1]}),jsxs(ze,{className:c("flex-row border-t border-t-stroke-antd",n),children:[p,!p&&jsxs(Fragment,{children:[t&&jsx(le,{asChild:true,children:jsx(M,{variant:"neutral",mode:"stroke",className:"w-2/5",disabled:!q,children:k("close")})}),t===false&&jsx(M,{variant:"neutral",mode:"stroke",className:"w-2/5",disabled:!q,onClick:N,children:k("close")}),jsx(M,{variant:"neutral",mode:"filled",className:"w-3/5",loading:g||u,onClick:He,children:k("ok")})]})]})]})]})}function gt({count:e=5}){let t=Array.from({length:e});return jsxs("div",{className:"flex flex-col gap-16",children:[jsxs("div",{className:"flex flex-row items-center gap-12",children:[jsx(m$1,{className:"size-58 rounded-2xl"}),jsxs("div",{className:"flex flex-1 flex-col gap-4",children:[jsx(m$1,{className:"mb-4 h-14 w-3/10"}),jsx(m$1,{className:"h-10 w-7/10"}),jsx(m$1,{className:"h-10 w-9/10"})]})]}),t.map((a,o)=>jsxs("div",{className:"flex flex-col gap-8",children:[jsx(m$1,{className:"h-12 w-5/10"}),jsx(m$1,{className:"h-12 w-7/10"}),jsx(m$1,{className:"h-12 w-full"})]},o))]})}function vt(e){let[t,a]=I__default.useState(false),[o,n]=I__default.useState(null),i=I__default.useCallback(p=>{n(p),a(true);},[]),d=I__default.useCallback(()=>{a(false),n(null);},[]),l=I__default.useCallback(p=>{a(p),p||n(null);},[]);return [{...e,open:t,onOpenChange:l,onClose:d},o,i,d]}var yt={initial:{scale:.5,opacity:0,filter:"blur(2px)"},animate:{scale:1,opacity:1,filter:"blur(0px)"},exit:{scale:.5,opacity:0,filter:"blur(2px)"}},wt={opacity:{duration:.25},filter:{duration:.25},scale:{duration:.35,ease:[.34,1.56,.64,1]}};function Be({state:e,states:t,className:a}){return jsx(AnimatePresence,{initial:false,mode:"popLayout",children:jsx(m.span,{className:c("inline-flex items-center justify-center",a),variants:yt,initial:"initial",animate:"animate",exit:"exit",transition:wt,children:t[e]},e)})}var Ae=async e=>{if(!e)return;if(navigator.clipboard){await navigator.clipboard.writeText(e);return}let t=document.createElement("textarea");t.setAttribute("readonly",""),t.tabIndex=-1,t.style.position="fixed",t.style.left="-9999px",t.value=e,document.body.appendChild(t);let a=document.getSelection();if(a){let o=a.rangeCount>0&&a.getRangeAt(0);t.select(),document.execCommand("copy"),o&&(a.removeAllRanges(),a.addRange(o));}document.body.removeChild(t);};function Nt({content:e,delay:t=2e3,tooltipDelayDuration:a=700,variant:o="neutral",mode:n="stroke",size:i$1="small",as:d="button",onCopy:l,className:m}){let p=O(),[c$1,v]=I__default.useState(false),[O$1,x]=I__default.useState(false),[y,g]=I__default.useState(false),w=I__default.useRef(null),C=I__default.useRef(null);I__default.useEffect(()=>()=>{w.current&&clearTimeout(w.current),C.current&&clearTimeout(C.current);},[]);let P=I__default.useCallback(async()=>{c$1||(v(true),g(true),await Ae(e),l?.(e),w.current=setTimeout(()=>{g(false),C.current=setTimeout(()=>v(false),150);},t));},[c$1,t,e,l]),N=jsx(Be,{state:c$1?"succeed":"normal",states:{succeed:jsx(CheckCheck,{width:"1em",height:"1em"}),normal:jsx(Copy,{width:"1em",height:"1em"})}}),R=(()=>{switch(d){case "text":return jsx("span",{className:c("relative cursor-pointer before:absolute before:-inset-x-6 before:-inset-y-2 before:rounded-md hover:before:bg-bg-antd",m),onClick:P,children:jsx("span",{className:"relative z-1",children:e})});case "inline":return jsxs("span",{className:c("relative inline-flex cursor-pointer items-center gap-6 before:absolute before:-inset-x-6 before:-inset-y-2 before:rounded-md hover:before:bg-bg-antd",m),onClick:P,children:[jsx("span",{className:"relative z-1",children:e}),jsx("span",{className:c("inline-flex items-center text-zinc-500",c$1&&"text-primary-base"),children:N})]});default:return jsx(M,{variant:o,mode:n,size:i$1,className:c(c$1&&"cursor-not-allowed",m),onClick:P,startContent:N})}})();return jsx(i,{content:p(c$1?"copied":"copy"),size:i$1,open:y||O$1,delayDuration:a,onOpenChange:x,children:R})}function or({asChild:e,children:t,className:a,variant:o="slate",...n}){let i=e?Slot.Root:"div";return jsx(i,{className:c(`flex shrink-0 items-center justify-center rounded-xl border ui-badge-${o}`,a),...n,children:t})}function pr({...e}){return jsx(Collapsible.Root,{"data-slot":"collapsible",...e})}function cr({...e}){return jsx(Collapsible.CollapsibleTrigger,{"data-slot":"collapsible-trigger",...e})}function mr({className:e,...t}){return jsx(Collapsible.CollapsibleContent,{"data-slot":"collapsible-content",className:c("collapsible-content",e),...t})}
2
+ export{ye as Avatar,he as Badge,pr as Collapsible,mr as CollapsibleContent,cr as CollapsibleTrigger,or as ColorPanel,Nt as CopyableText,ft as Drawer,nt as PopConfirm,tt as PopoverPreset,it as Switch,Ye as dateUtils,qt as formatCurrency,$t as formatIntegerCompact,Yt as formatNumber,Kt as getFirstLetters,vt as useDrawer};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jerry-fd/ui",
3
- "version": "0.4.4",
3
+ "version": "0.4.5",
4
4
  "description": "UI component library based on Ant Design (Client-side only)",
5
5
  "type": "module",
6
6
  "sideEffects": ["index.js", "*.css"],
@@ -32,20 +32,20 @@
32
32
  "peerDependencies": {
33
33
  "react": ">=18",
34
34
  "react-dom": ">=18",
35
- "antd": ">=5.0.0",
35
+ "antd": ">=6.0.0",
36
36
  "dayjs": ">=1.11.0",
37
- "tailwindcss": ">=4.1.18",
37
+ "tailwindcss": "^4.2.1",
38
38
  "zustand": "^5.0.11",
39
- "lucide-react": "^0.563.0",
39
+ "lucide-react": "^0.575.0",
40
40
  "immer": "^11.1.3"
41
41
  },
42
42
  "dependencies": {
43
43
  "cmdk": "^1.1.1",
44
- "motion": "^12.29.0",
44
+ "motion": "^12.34.3",
45
45
  "radix-ui": "^1.4.3",
46
46
  "vaul": "^1.1.2",
47
47
  "react-use-measure": "^2.1.7",
48
- "tailwind-merge": "^3.4.0",
48
+ "tailwind-merge": "^3.5.0",
49
49
  "tailwind-variants": "^3.2.2",
50
50
  "tw-animate-css": "^1.4.0"
51
51
  }
@@ -8,7 +8,7 @@
8
8
  --text-sm: 12px;
9
9
  --text-13: 13px;
10
10
  --text-md: 14px;
11
- --text-15: 13px;
11
+ --text-15: 15px;
12
12
  --text-lg: 16px;
13
13
  --text-xl: 18px;
14
14
  --text-2xl: 20px;