@customafk/lunas-ui 0.2.58 → 0.2.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/dist/features/tables/index.cjs +1 -1
  2. package/dist/features/tables/index.d.cts +2 -2
  3. package/dist/features/tables/index.d.mts +2 -2
  4. package/dist/features/tables/index.mjs +1 -1
  5. package/dist/features/tanstack-form/index.cjs +1 -1
  6. package/dist/features/tanstack-form/index.mjs +1 -1
  7. package/dist/{index-aPuQLHfq.d.mts → index-Cbhv1_Xe.d.mts} +49 -19
  8. package/dist/{index-Cqe6rsMe.d.cts → index-nsk470g_.d.cts} +49 -19
  9. package/dist/index.cjs +1 -1
  10. package/dist/index.d.cts +3 -3
  11. package/dist/index.d.mts +3 -3
  12. package/dist/index.mjs +1 -1
  13. package/dist/{resizable-CNIYTd7k.d.cts → resizable-CVpc0g5U.d.cts} +2 -2
  14. package/dist/{resizable-CNIYTd7k.d.mts → resizable-CVpc0g5U.d.mts} +2 -2
  15. package/dist/tables-CNJ10l7L.cjs +4 -0
  16. package/dist/tables-CNJ10l7L.cjs.map +1 -0
  17. package/dist/tables-UaA4qIaD.mjs +4 -0
  18. package/dist/tables-UaA4qIaD.mjs.map +1 -0
  19. package/dist/{tanstack-form-Bnfatlfx.cjs → tanstack-form-BMVn8ai_.cjs} +2 -2
  20. package/dist/tanstack-form-BMVn8ai_.cjs.map +1 -0
  21. package/dist/{tanstack-form-CRY_uHFd.mjs → tanstack-form-DTCgWGCA.mjs} +2 -2
  22. package/dist/tanstack-form-DTCgWGCA.mjs.map +1 -0
  23. package/dist/ui/resizable.d.cts +1 -1
  24. package/dist/ui/resizable.d.mts +1 -1
  25. package/dist/ui/switch.cjs +1 -1
  26. package/dist/ui/switch.cjs.map +1 -1
  27. package/dist/ui/switch.mjs +1 -1
  28. package/dist/ui/switch.mjs.map +1 -1
  29. package/package.json +1 -1
  30. package/dist/tables-BHdeig0n.mjs +0 -4
  31. package/dist/tables-BHdeig0n.mjs.map +0 -1
  32. package/dist/tables-BfuoYxlt.cjs +0 -4
  33. package/dist/tables-BfuoYxlt.cjs.map +0 -1
  34. package/dist/tanstack-form-Bnfatlfx.cjs.map +0 -1
  35. package/dist/tanstack-form-CRY_uHFd.mjs.map +0 -1
@@ -1,4 +0,0 @@
1
- const e=require("./ui/button.cjs"),t=require("./typography/paragraph.cjs"),n=require("./layouts/flex.cjs"),r=require("./date-B3cozmfV.cjs"),i=require("./ui/badge.cjs"),a=require("./ui/tooltip.cjs"),o=require("./data-display/statistic.cjs"),s=require("./ui/avatar.cjs"),c=require("./ui/separator.cjs"),l=require("./ui/dropdown-menu.cjs"),u=require("./ui/progress.cjs"),d=require("./ui/checkbox.cjs"),f=require("./ui/spinner.cjs"),p=require("./ui/resizable.cjs"),m=require("./ui/input.cjs"),h=require("./ui/label.cjs"),g=require("./ui/popover.cjs"),_=require("./ui/select.cjs");let v=require("lucide-react"),y=require("react"),b=require("@customafk/react-toolkit/utils"),x=require("class-variance-authority"),S=require("react/jsx-runtime"),C=require("@customafk/react-toolkit/color-hash"),w=require("@tanstack/react-table"),ee=require("@tanstack/react-virtual"),T=require("@customafk/react-toolkit/hooks/useDebounceCallback");const te=({name:e,avatarUrl:t,uuid:n})=>{let r=C.colorHashLight.hex(n??e);return(0,S.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,S.jsxs)(s.Avatar,{className:`size-8 shrink-0`,children:[(0,S.jsx)(s.AvatarImage,{src:t,alt:e}),(0,S.jsx)(s.AvatarFallback,{style:{backgroundColor:r},children:(0,S.jsx)(v.UserRoundIcon,{size:18,className:`text-white`})})]}),(0,S.jsx)(`span`,{className:`truncate text-sm font-medium`,children:e})]})},E=()=>(0,S.jsxs)(`div`,{className:`flex gap-0 text-text-positive-weak`,children:[(0,S.jsx)(v.MinusIcon,{size:16}),(0,S.jsx)(v.MinusIcon,{size:16})]}),ne=({label:e,onClick:t,onRemove:n})=>e?n?(0,S.jsxs)(`div`,{className:`flex w-fit gap-x-0.5 rounded-full border border-border py-1 pr-2 pl-3 text-text-positive text-xs shadow-xs`,onClick:e=>{t?.(),e.stopPropagation(),e.preventDefault()},children:[e,(0,S.jsx)(`button`,{className:`cursor-pointer text-text-positive-weak hover:text-text-positive-strong`,onClick:e=>{n?.(),e.stopPropagation(),e.preventDefault()},children:(0,S.jsx)(v.XIcon,{size:12})})]}):(0,S.jsx)(`button`,{className:`w-fit rounded-full border border-border px-3 py-1 text-text-positive text-xs shadow-xs`,onClick:e=>{t?.(),e.stopPropagation(),e.preventDefault()},children:e}):(0,S.jsx)(E,{}),D=({value:e})=>e==null?(0,S.jsx)(E,{}):e===!1?(0,S.jsx)(v.XIcon,{size:14,strokeWidth:2,className:`text-danger-strong`}):(0,S.jsx)(v.CheckIcon,{size:14,strokeWidth:2,className:`text-success-strong`}),O=(0,y.memo)(({value:e,currency:t=`USD`,locale:n=`en-US`,display:r=`symbol`,size:i=`md`,colorize:a=!1})=>{let o=(0,y.useMemo)(()=>{let i=typeof e==`string`?Number(e.trim()):e;return i==null||Number.isNaN(i)||!Number.isFinite(i)?null:new Intl.NumberFormat(n,{style:`currency`,currency:t,currencyDisplay:r,minimumFractionDigits:2,maximumFractionDigits:2}).format(i)},[e,t,n,r]),s=(0,y.useMemo)(()=>{let t=typeof e==`string`?Number(e.trim()):e;return typeof t==`number`&&t<0},[e]);return o?(0,S.jsx)(`p`,{className:(0,b.cn)(`font-number tabular-nums`,i===`xs`&&`text-xs`,i===`sm`&&`text-sm`,i===`md`&&`text-base`,i===`lg`&&`text-lg`,i===`xl`&&`text-xl`,!a&&`text-text-positive`,a&&s&&`text-danger-strong`,a&&!s&&`text-success-strong`),children:o}):(0,S.jsx)(E,{})});O.displayName=`UITableCurrencyDisplay`;const k=({date:e})=>e==null?(0,S.jsx)(E,{}):(0,S.jsx)(a.TooltipProvider,{children:(0,S.jsxs)(a.Tooltip,{children:[(0,S.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,S.jsx)(i.Badge,{className:`h-fit`,children:(0,S.jsx)(r.t,{date:e,format:`medium`,className:`font-normal text-white`})})}),(0,S.jsx)(a.TooltipContent,{className:`rounded px-2`,children:(0,S.jsx)(r.t,{date:e,format:`full`,showTime:!0,className:`font-medium text-text-negative text-xs`})})]})}),re=({content:e})=>e==null?(0,S.jsx)(E,{}):(0,S.jsxs)(a.Tooltip,{children:[(0,S.jsx)(a.TooltipTrigger,{children:(0,S.jsx)(t.Paragraph,{variant:`sm`,className:`line-clamp-2 whitespace-pre-line break-all`,children:e})}),(0,S.jsx)(a.TooltipContent,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:(0,S.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[(0,S.jsx)(t.Paragraph,{variant:`xs`,className:`whitespace-pre-line text-wrap break-keep text-text-negative-weak`,children:e}),(0,S.jsxs)(`p`,{className:`w-full text-end`,children:[e.toString().length,` chars`]})]})})]}),A=({email:e,linkable:t=!0})=>{let[n,r]=(0,y.useState)(!1);return e?(0,S.jsx)(a.TooltipProvider,{children:(0,S.jsxs)(`div`,{className:`group flex items-center gap-x-1.5`,children:[(0,S.jsx)(v.MailIcon,{size:13,className:`shrink-0 text-text-positive-weak`}),t?(0,S.jsx)(`a`,{href:`mailto:${e}`,className:`truncate text-primary text-sm underline-offset-2 hover:underline`,onClick:e=>e.stopPropagation(),children:e}):(0,S.jsx)(`span`,{className:`truncate text-text-positive text-sm`,children:e}),(0,S.jsxs)(a.Tooltip,{children:[(0,S.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,S.jsx)(`button`,{onClick:t=>{t.stopPropagation(),t.preventDefault(),navigator.clipboard.writeText(e).then(()=>{r(!0),setTimeout(()=>r(!1),1500)})},className:`shrink-0 cursor-pointer text-text-positive-weak opacity-0 transition-opacity group-hover:opacity-100 hover:text-text-positive`,children:n?(0,S.jsx)(v.CheckIcon,{size:13,className:`text-success-strong`}):(0,S.jsx)(v.CopyIcon,{size:13})})}),(0,S.jsx)(a.TooltipContent,{children:n?`Copied!`:`Copy email`})]})]})}):(0,S.jsx)(E,{})},ie=({items:e,maxVisible:t=3})=>{if(!e||e.length===0)return(0,S.jsx)(E,{});let n=e.slice(0,t),r=e.slice(t);return(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[n.map((e,t)=>(0,S.jsx)(`span`,{className:`inline-flex items-center rounded-full border border-border bg-muted-weak px-2 py-0.5 text-text-positive text-xs`,children:e},t)),r.length>0&&(0,S.jsx)(a.TooltipProvider,{children:(0,S.jsxs)(a.Tooltip,{children:[(0,S.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,S.jsxs)(`span`,{className:`inline-flex cursor-default items-center rounded-full bg-primary-bg-subtle px-2 py-0.5 text-primary-intense text-xs`,children:[`+`,r.length,` more`]})}),(0,S.jsx)(a.TooltipContent,{align:`start`,className:`flex max-w-64 flex-wrap gap-1 p-2`,children:r.map((e,t)=>(0,S.jsx)(`span`,{className:`inline-flex items-center rounded-full border border-border px-2 py-0.5 text-text-negative text-xs`,children:e},t))})]})})]})},ae=({items:t=[]})=>(0,S.jsxs)(l.DropdownMenu,{children:[(0,S.jsx)(l.DropdownMenuTrigger,{asChild:!0,children:(0,S.jsx)(e.Button,{size:`sm`,variant:`ghost`,color:`secondary`,className:`size-9 rounded-full`,children:(0,S.jsx)(v.MoreVerticalIcon,{})})}),(0,S.jsx)(l.DropdownMenuContent,{children:(0,S.jsx)(l.DropdownMenuGroup,{children:t.map(e=>(0,S.jsx)(l.DropdownMenuItem,{className:`px-3`,onSelect:t=>{e.onClick(e.id),t.preventDefault(),t.stopPropagation()},children:e.label},e.id))})})]}),oe=({name:e})=>e?(0,S.jsxs)(a.Tooltip,{children:[(0,S.jsx)(a.TooltipTrigger,{children:(0,S.jsx)(t.Paragraph,{variant:`sm`,className:`line-clamp-2 w-full truncate text-wrap pb-px text-start`,children:e})}),(0,S.jsx)(a.TooltipContent,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:(0,S.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[(0,S.jsx)(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:e}),(0,S.jsxs)(`p`,{className:`w-full text-end`,children:[e.length,` chars`]})]})})]}):(0,S.jsx)(E,{}),se=({href:e,label:t})=>(0,S.jsxs)(`a`,{href:e,target:`_blank`,className:`inline-flex items-center gap-1 truncate text-primary text-sm underline`,rel:`noopener noreferrer`,children:[(0,S.jsx)(`span`,{children:t||e}),(0,S.jsx)(v.ExternalLinkIcon,{size:14})]}),j=({value:e})=>(0,S.jsxs)(a.Tooltip,{children:[(0,S.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,S.jsx)(`p`,{className:`font-number text-text-positive text-sm tabular-nums`,children:e.replace(/(\d{3})(\d{3})(\d{4})/,`($1) $2-$3`)})}),(0,S.jsx)(a.TooltipContent,{align:`start`,children:(0,S.jsx)(`p`,{className:`tabular-nums`,children:e.slice(1).replace(/(\d{2})(\d{3})(\d{4})/,`(00) (+84) ($1) $2-$3`)})})]}),ce=(0,y.memo)(({value:e,showLabel:t=!0,successThreshold:n=70,warningThreshold:r=40})=>{if(e==null)return(0,S.jsx)(E,{});let i=Math.min(100,Math.max(0,e));return(0,S.jsxs)(`div`,{className:`flex w-full min-w-24 items-center gap-x-2`,children:[(0,S.jsx)(u.Progress,{value:i,className:(0,b.cn)(`flex-1`,i>=n?`[&>[data-slot=progress-indicator]]:bg-success`:i>=r?`[&>[data-slot=progress-indicator]]:bg-warning`:`[&>[data-slot=progress-indicator]]:bg-danger`)}),t&&(0,S.jsxs)(`span`,{className:`w-9 shrink-0 text-right font-number text-text-positive-weak text-xs tabular-nums`,children:[i,`%`]})]})});ce.displayName=`UITableProgressDisplay`;const le=({title:t,onClick:n})=>(0,S.jsxs)(a.Tooltip,{children:[(0,S.jsx)(a.TooltipTrigger,{children:(0,S.jsx)(e.Button,{type:`button`,variant:`ghost`,color:`danger`,size:`icon`,onClick:(0,y.useCallback)(async e=>{e.preventDefault(),e.stopPropagation(),await n?.()},[n]),children:(0,S.jsx)(v.Trash2Icon,{})})}),(0,S.jsx)(a.TooltipContent,{children:(0,S.jsx)(`p`,{children:t||`Remove item from list table`})})]}),M=(e,t,n)=>{let r=10**t;switch(n){case`floor`:return Math.floor(e*r)/r;case`ceil`:return Math.ceil(e*r)/r;default:return Math.round(e*r)/r}},N=(0,y.memo)(({decimalSeparator:e=`.`,groupSeparator:t=`,`,prefix:r,suffix:i,precision:a,roundingMode:o=`round`,showTrailingZeros:s=!1,size:c=`lg`,value:l=0})=>{let u=(0,y.useMemo)(()=>{let e={};return typeof a==`number`&&a>=0&&s&&(e.minimumFractionDigits=a),e.maximumFractionDigits=a,e},[a,s]),d=(0,y.useCallback)(e=>{let t=e;return typeof a==`number`&&a>=0&&(t=M(e,a,o)),t.toLocaleString(`en-US`,u)},[o,u,a]),f=(0,y.useMemo)(()=>{if(typeof l==`number`)return Number.isNaN(l)||!Number.isFinite(l)?`N/A`:d(l);if(typeof l==`string`){let e=l.trim();if(!e)return`N/A`;let t=Number(e);return Number.isNaN(t)||!Number.isFinite(t)?`N/A`:d(t)}return`N/A`},[l,d]),p=(0,y.useMemo)(()=>e===`.`&&t===`,`?f:f.replace(/,/g,t).replace(/\./g,e),[f,e,t]);return p===`0`||p===`N/A`||!p?(0,S.jsx)(E,{}):(0,S.jsxs)(n.Flex,{padding:`none`,className:(0,b.cn)(`font-number text-lg text-text-positive tabular-nums`,c===`xs`&&`text-xs`,c===`sm`&&`text-sm`,c===`md`&&`text-base`,c===`lg`&&`text-lg`,c===`xl`&&`text-xl`),children:[r,(0,S.jsx)(`p`,{children:p}),i]})});N.displayName=`UITableStatisticDisplay`;const P=({value:e,colorMap:t,defaultColor:n=`muted`,variant:r=`soft`})=>e==null||e===``?(0,S.jsx)(E,{}):(0,S.jsx)(i.Badge,{variant:r,color:(t&&t[e])??n,size:`sm`,className:`min-w-16 justify-center capitalize`,children:e.charAt(0).toUpperCase()+e.slice(1).replace(/_/g,` `)}),ue=({uuid:e,username:r,email:i})=>(0,S.jsxs)(n.Flex,{wrap:!1,gap:`sm`,padding:`none`,children:[!e&&(0,S.jsx)(s.Avatar,{className:`size-10 shadow-card`,children:(0,S.jsx)(s.AvatarFallback,{className:`bg-muted-weak`,children:(0,S.jsx)(v.UserRoundIcon,{size:28,className:`text-text-negative`})})}),e&&(0,S.jsx)(s.Avatar,{className:`size-10 shadow-card`,children:(0,S.jsx)(s.AvatarFallback,{style:{backgroundColor:C.colorHashLight.hex(e)},children:(0,S.jsx)(v.UserRoundIcon,{size:28,className:`text-white`})})}),(0,S.jsxs)(n.Flex,{vertical:!0,padding:`none`,gap:`none`,align:`start`,children:[(0,S.jsx)(t.Paragraph,{className:`font-medium text-sm text-text-positive-weak`,children:r??`Unknown User`}),(0,S.jsx)(t.Paragraph,{variant:`sm`,className:`mt-0! text-text-positive-weak text-xs`,children:i})]})]}),F=(0,y.createContext)(null),I=()=>{let e=(0,y.use)(F);if(!e)throw Error(`useTableInnerWrapperContext must be used within a TableInnerWrapperProvider`);return e},L=(0,y.createContext)(null),R=()=>{let e=(0,y.use)(L);if(!e)throw Error(`useTableInnerTableContext must be used within a TableInnerTableProvider`);return e},z=(0,y.createContext)(null),B=()=>{let e=(0,y.use)(z);if(!e)throw Error(`useTableHeaderRowContext must be used within a TableHeaderRowProvider`);return e},V=(0,y.createContext)(null),H=()=>{let e=(0,y.use)(V);if(!e)throw Error(`useTableBodyContext must be used within a TableBodyProvider`);return e},U=(0,y.createContext)(null),W=()=>{let e=(0,y.use)(U);if(!e)throw Error(`useTableRowContext must be used within a TableRowProvider`);return e},de=(0,y.createContext)(null),G=()=>{let e=(0,y.use)(de);if(!e)throw Error(`useTableContext must be used within a TableProvider`);return e},fe=(0,y.createContext)(null),K=()=>{let e=(0,y.use)(fe);if(!e)throw Error(`useUITableFilterContext must be used within a UITableProvider`);return e},pe=(0,y.createContext)(null),q=()=>{let e=(0,y.use)(pe);if(!e)throw Error(`useUITableAnalysisContext must be used within a UITableProvider`);return e},me=(0,x.cva)([`absolute right-2 z-10 p-0.5 opacity-0 bg-card`,`cursor-pointer rounded-full transition-all`,`text-text-positive-weak`,`[&>svg]:size-4`,`group-hover:opacity-100`,`hover:bg-muted-muted hover:text-text-positive`]),he=(0,x.cva)([`sticky left-0 flex flex-1 items-center justify-center bg-transparent text-text-positive-weak opacity-100`]),ge=(0,x.cva)([`relative m-0 flex size-full flex-col flex-nowrap items-start justify-start gap-2`]),_e=(0,x.cva)([`relative w-full flex-1 min-h-0 overflow-auto border-b border-b-border border-l border-l-border`]),ve=(0,x.cva)([`grid w-full table-fixed caption-bottom border-collapse border-spacing-0 flex-col content-start`]),ye=(0,x.cva)([`sticky top-0 z-20 h-9 w-full`,`grid select-none bg-white`,`border-b border-b-border shadow`,`font-medium text-[13px] text-text-positive-weak`,`[&_tr:not(:last-child)_td]:border-b`,`[&_th]:inline-flex`,`[&_th]:bg-card`,`[&_th]:items-center`,`[&_th]:transition-all`,`[&_th]:duration-300`,`[&_th]:whitespace-nowrap`,`[&_th]:border-border`,`[&_th]:border-r`,`[&_th]:first:border-l-0`,`[&_tr_th:not([data-pinned=false])]:bg-card`]),be=(0,x.cva)([`flex`]),xe=(0,x.cva)([`group flex`],{variants:{isPinned:{left:`sticky`,right:`sticky`,false:`relative`},isActions:{true:`border-r-0!`,false:``},isLastCell:{true:``,false:``},isFirstCell:{true:``,false:``},position:{start:`justify-start`,center:`justify-center`,end:`justify-end`}},compoundVariants:[{isPinned:`left`,isLastCell:!0,className:`border-r border-r-border`},{isPinned:`right`,isFirstCell:!0,className:`border-l border-l-border`}]}),Se=(0,x.cva)(`relative w-full,grid,[&_tr]:absolute,[&_tr]:flex,[&_tr]:flex-none,[&_tr]:w-full,[&_tr]:cursor-pointer [&_tr]:focus:outline-none,[&_tr]:border-b [&_tr]:border-b-border,[&_td]:z-10,[&_td]:transition-all,[&_td]:flex,[&_td]:flex-none,[&_td]:overflow-hidden,[&_td]:whitespace-nowrap,[&_td]:px-4,[&_td]:py-2.5,[&_td]:align-middle,[&_td]:border-border,[&_td]:data-[selected=true]:bg-muted-muted!,[&_td]:data-[selected=true]:hover:bg-muted-muted!,[&_td>div]:inline-flex,[&_td>div]:items-center,[&_td>div]:w-full,[&_td:not([data-pinned=false])]:z-20,[&_td:not([data-pinned=false])]:sticky,[&_td:not([data-pinned=false])]:bg-muted-bg-subtle`.split(`,`)),Ce=(0,x.cva)([`group transition-colors hover:bg-muted-muted hover:[&_td]:bg-muted-muted! [&_td]:border-r [&_td]:border-r-border`]),J=(0,x.cva)([`group-hover:bg-muted-muted!`],{variants:{isPinned:{left:`sticky`,right:`sticky`,false:`relative`}},defaultVariants:{isPinned:void 0}}),we=(0,x.cva)([`sticky border-r-0! inset-y-0 right-0 z-50 flex items-center pr-4 group-hover:bg-muted-muted!`]),Te=(0,x.cva)([`group-hover:bg-muted-muted!`],{variants:{isPinned:{left:``,right:``,false:``},isLastCell:{true:``,false:``},isFirstCell:{true:``,false:``}},compoundVariants:[{isPinned:`left`,isLastCell:!0,className:`border-r border-r-border`},{isPinned:`right`,isFirstCell:!0,className:`border-l border-l-border`}]}),Ee=(0,x.cva)([`overflow-x-hidden`],{variants:{position:{start:`justify-start`,center:`justify-center`,end:`justify-end`}},defaultVariants:{position:`start`}}),De=(0,x.cva)([`shrink-0 flex w-full justify-center border-t border-border-weak font-medium`]),Oe=(0,x.cva)([`flex w-full`,`text-[13px] font-medium text-text-positive-weak`]),Y=(0,x.cva)([`flex flex-none items-center overflow-hidden whitespace-nowrap px-4 py-2`,`border-r border-r-border`],{variants:{isPinned:{left:`sticky z-20 bg-white`,right:`sticky z-20 bg-white`,false:`relative`},isFirstCell:{true:`border-l border-l-border`,false:``},isLastCell:{true:`border-r border-r-border`,false:``}}}),ke=(0,x.cva)([`flex cursor-pointer gap-x-0.5`],{variants:{state:{idle:`text-text-positive-weak hover:text-text-positive`,fetching:`cursor-not-allowed`,error:`text-danger hover:text-danger-strong`}},defaultVariants:{state:`idle`}}),X=(0,y.memo)(({height:e,className:t,children:n,...r})=>{let{isFetching:i,isRefetching:a,isEmpty:o}=H();return o||i||a?null:(0,S.jsx)(`tbody`,{slot:`table-body`,style:{height:e},className:(0,b.cn)(Se(),t),...r,children:n})});X.displayName=`UITableBody`;const Z=(0,y.memo)(({isPinned:e=!1,isFirstCell:t=!1,isLastCell:n=!1,colId:r,position:i=`start`,column:a,getContext:o,...s})=>{let{innerTableId:c,table:l}=R(),u=(0,y.useRef)(null),d=(0,y.useRef)(null),f=(0,y.useMemo)(()=>{let t=a?.getStart(`left`);return e===`left`&&typeof t==`number`?`${t}px`:void 0},[e,a]),p=(0,y.useMemo)(()=>{let t=a?.getAfter(`right`);return e===`right`&&typeof t==`number`?`${t}px`:void 0},[e,a]),m=(0,y.useMemo)(()=>`calc(var(--col-${r}-size) * 1px)`,[r]),h=(0,y.useMemo)(()=>a?.columnDef.minSize?`calc(var(--col-${r}-minSize) * 1px)`:void 0,[r,a]),g=(0,y.useMemo)(()=>a?.columnDef.maxSize?`calc(var(--col-${r}-maxSize) * 1px)`:void 0,[r,a]),_=(0,y.useMemo)(()=>(0,w.flexRender)(a?.columnDef.cell,o()),[a,o]);return(0,y.useEffect)(()=>{u.current=document.querySelector(`table[id="${c}"]`)},[c]),(0,y.useEffect)(()=>{if(!d.current)return;let e=d.current.scrollWidth,t=a?.getSize();t!=null&&e>t&&u.current instanceof HTMLTableElement&&typeof r==`string`&&a?.columnDef.meta?.fitContent&&l.setColumnSizing(t=>({...t,[r]:e+32}))},[r,a,l]),(0,S.jsx)(`td`,{slot:`table-body-cell`,"data-pinned":e,"data-lastcell":n||void 0,"data-firstcell":t||void 0,style:{left:f,right:p,width:m,minWidth:h,maxWidth:g},className:Te({isPinned:e||void 0,isLastCell:n,isFirstCell:t}),...s,children:(0,S.jsx)(`div`,{ref:d,slot:`table-body-cell-inner`,className:Ee({position:i}),children:_})})});Z.displayName=`UITableCell`;const Ae=(0,y.memo)(({virtualRowIndex:e,column:t,getContext:n,className:r,...i})=>{let a=(0,y.useMemo)(()=>(0,w.flexRender)(t?.columnDef.cell,n()),[t,n]);return(0,S.jsx)(`td`,{"data-col":`actions`,"data-cell":e,className:we(),...i,children:a})});Ae.displayName=`UITableCellActions`;const je=(0,y.memo)(({isPinned:e,isSelected:t=!1,className:n,onToggleRowSelected:r,...i})=>{let a=(0,y.useCallback)(e=>{r?.(!!e)},[r]);return(0,S.jsx)(`td`,{slot:`table-body-cell`,"data-pinned":!0,style:{left:0,zIndex:20,width:60,maxWidth:60},className:(0,b.cn)(J({isPinned:e}),n),...i,children:(0,S.jsx)(`div`,{"data-slot":`table-cell-inner`,className:`flex! w-full! items-center justify-center bg-transparent text-center align-middle`,onClick:e=>{e.preventDefault(),e.stopPropagation()},children:(0,S.jsx)(d.Checkbox,{"aria-label":`Select Row`,checked:t,onCheckedChange:a})})})});je.displayName=`UITableCellSelect`;const Me=(0,y.memo)(()=>{let{table:e,isFetching:t,isRefetching:n,loadingDisplayRow:r=3}=G();return!t&&!n?null:(0,S.jsx)(`tbody`,{className:(0,b.cn)(Se(),`pointer-events-none`),children:Array.from({length:r}).map((t,n)=>(0,S.jsx)(`tr`,{"data-slot":`table-row`,"data-index":n,className:(0,b.cn)(Ce(),`animate-pulse relative!`),children:e.getAllColumns().map((t,r)=>{let i=t.getIsPinned(),a=t.getStart(`left`),o=t.getAfter(`right`);return t.id===`actions`?(0,S.jsx)(`td`,{"data-slot":`table-body-cell`,"data-col":t.id,"data-cell":r,style:{width:60},className:we(),children:(0,S.jsx)(`div`,{className:`w-full h-4 bg-muted-muted rounded-full`})},`${t.id}-${r}`):t.id===`select`?(0,S.jsx)(`td`,{"data-slot":`table-body-cell`,"data-col":t.id,"data-cell":r,"data-pinned":!0,style:{left:0,zIndex:20,width:60,maxWidth:60},className:J({isPinned:`left`}),children:(0,S.jsx)(`div`,{className:`w-full flex justify-center`,children:(0,S.jsx)(`div`,{className:`size-4 bg-muted-muted rounded-full`})})},`${t.id}-${n}`):(0,S.jsx)(`td`,{"data-col":t.id,"data-cell":r,"data-selected":void 0,"data-lastcell":t.id===e.getAllColumns()[e.getAllColumns().length-1].id||void 0,"data-firstcell":t.id===e.getAllColumns()[0].id||void 0,style:{zIndex:i?20:0,left:i===`left`&&typeof a==`number`?`${a}px`:void 0,right:i===`right`&&typeof o==`number`?`${o}px`:void 0,width:`calc(var(--col-${t.id}-size) * 1px)`,minWidth:t.columnDef.minSize?`calc(var(--col-${t.id}-minSize) * 1px)`:void 0,maxWidth:t.columnDef.maxSize?`calc(var(--col-${t.id}-maxSize) * 1px)`:void 0},className:Te({isPinned:t.getIsPinned(),isFirstCell:t.id===e.getRightHeaderGroups()[0]?.headers[0]?.id,isLastCell:t.id===e.getLeftHeaderGroups()[0]?.headers[e.getLeftHeaderGroups()[0].headers.length-1]?.id}),children:(0,S.jsx)(`div`,{className:Ee({position:t.columnDef.meta?.position??`start`}),children:(0,S.jsx)(`div`,{className:`w-full h-4 bg-muted-muted rounded-full`})})},`${t.id}-${r}`)})},n))})}),Ne=(0,y.memo)(()=>{let{isEmpty:e,emptyDisplayHeight:t}=G();return e?(0,S.jsx)(S.Fragment,{children:e&&(0,S.jsx)(`div`,{className:he(),style:{minHeight:t??`24rem`},children:(0,S.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,S.jsx)(v.BoxIcon,{strokeWidth:1,size:48}),(0,S.jsx)(`p`,{children:`Không có dữ liệu`})]})})}):null});Ne.displayName=`UITableEmptyDisplay`;const Pe=(0,y.memo)(({className:e,children:t,...n})=>(0,S.jsx)(`div`,{slot:`table-footer`,className:(0,b.cn)(De(),e),...n,children:t}));Pe.displayName=`UITableFooter`;function Fe(e,t,n){switch(n){case`count`:return e;case`sum`:return t.reduce((e,t)=>e+t,0);case`avg`:return t.length===0?0:t.reduce((e,t)=>e+t,0)/t.length;case`min`:return t.length===0?0:Math.min(...t);case`max`:return t.length===0?0:Math.max(...t)}}function Ie(e,t){return e.map(e=>{let n=e.getValue(t);return typeof n==`string`?Number(n):typeof n==`number`?n:NaN}).filter(e=>!Number.isNaN(e))}const Le=(0,y.memo)(()=>{let{table:e}=G(),{rowSelectionState:t}=H(),n=(0,y.useMemo)(()=>e.getHeaderGroups()[0]?.headers??[],[e.getHeaderGroups()]),r=(0,y.useMemo)(()=>n.some(e=>e.column.columnDef.meta?.aggregation),[n]),i=(0,y.useMemo)(()=>e.getSelectedRowModel().flatRows,[e,t]),a=(0,y.useMemo)(()=>e.getRowModel().rows,[e]),s=i.length>0?i:a,c=(0,y.useMemo)(()=>{let e={};for(let t of n){let n=t.column.columnDef.meta?.aggregation;if(!n)continue;let r=Ie(s,t.id);e[t.id]=Fe(s.length,r,n.type)}return e},[n,s]),l=e.getState().columnPinning,u=l.left??[],d=l.right??[],f=n.find(e=>d.includes(e.id))?.id,p=[...n].reverse().find(e=>u.includes(e.id))?.id;if(!r)return null;let m=i.length>0?`${i.length}`:`${a.length}`;return(0,S.jsx)(`div`,{slot:`table-footer-row`,className:Oe(),children:n.map(e=>{let t=e.id,n=u.includes(t)?`left`:d.includes(t)?`right`:!1,r=t===f,i=t===p,a=n===`left`?`${e.column.getStart(`left`)}px`:void 0,s=n===`right`?`${e.column.getAfter(`right`)}px`:void 0;if(t===`select`)return(0,S.jsx)(`div`,{slot:`table-footer-select`,"data-pinned":`left`,style:{left:`0px`,width:`60px`},className:(0,b.cn)(Y({isPinned:`left`,isFirstCell:!1,isLastCell:!1}),`justify-center`),children:(0,S.jsx)(`span`,{className:`truncate text-[11px] items-center text-text-positive-weak`,children:m})},t);if(t===`actions`)return(0,S.jsx)(`div`,{slot:`table-footer-actions`,style:{width:`calc(var(--col-${t}-size) * 1px)`,right:`0px`},className:Y({isPinned:!1,isFirstCell:!1,isLastCell:!1})},t);let l=e.column.columnDef.meta?.aggregation,h=c[t]??null;return(0,S.jsx)(`div`,{slot:`table-footer-cell`,"data-pinned":n,style:{left:a,right:s,width:`calc(var(--col-${t}-size) * 1px)`},className:Y({isPinned:n||`left`,isFirstCell:r,isLastCell:i}),children:l&&h!==null?(0,S.jsx)(o.Statistic,{value:h,prefix:l.prefix,suffix:l.suffix,precision:l.precision,size:`sm`}):(0,S.jsx)(`span`,{className:`text-text-positive-weak`,children:`—`})},t)})})});Le.displayName=`UITableFooterRow`;const Re=(0,y.memo)(({className:e,children:t,...n})=>(0,S.jsx)(`thead`,{slot:`table-head`,className:(0,b.cn)(ye(),e),...n,children:t}));Re.displayName=`UITableHead`;const ze=(0,y.memo)(({isPinned:e,onLeftPin:t,onRightPin:n,onUnpin:r,className:i})=>{let a=(0,y.useCallback)(()=>{t?.(`left`)},[t]),o=(0,y.useCallback)(()=>{n?.(`right`)},[n]),s=(0,y.useCallback)(()=>{r?.(!1)},[r]);return(0,S.jsxs)(l.DropdownMenu,{children:[(0,S.jsx)(l.DropdownMenuTrigger,{asChild:!0,children:(0,S.jsx)(`button`,{type:`button`,className:(0,b.cn)(me(),i),children:(0,S.jsx)(v.EllipsisVerticalIcon,{})})}),(0,S.jsx)(l.DropdownMenuContent,{align:`end`,className:`w-64 p-4`,children:(0,S.jsxs)(l.DropdownMenuGroup,{className:`*:data-[slot=dropdown-menu-item]:rounded-xs *:data-[slot=dropdown-menu-item]:p-2`,children:[(0,S.jsx)(y.Activity,{mode:e?`visible`:`hidden`,children:(0,S.jsxs)(l.DropdownMenuItem,{onClick:s,children:[!!e&&`Bỏ ghim`,(0,S.jsx)(l.DropdownMenuShortcut,{children:(0,S.jsx)(v.PinOffIcon,{className:`size-4`})})]})}),(0,S.jsxs)(y.Activity,{mode:e?`hidden`:`visible`,children:[(0,S.jsxs)(l.DropdownMenuItem,{onClick:a,children:[e?`Bỏ ghim`:`Ghim trái`,(0,S.jsx)(l.DropdownMenuShortcut,{children:(0,S.jsx)(v.MoveLeftIcon,{className:`size-4`})})]}),(0,S.jsxs)(l.DropdownMenuItem,{onClick:o,children:[e?`Bỏ ghim`:`Ghim phải`,(0,S.jsx)(l.DropdownMenuShortcut,{children:(0,S.jsx)(v.MoveRightIcon,{className:`size-4`})})]})]})]})})]})});ze.displayName=`UITableHeadCellOption`;const Be=(0,y.memo)(({isVisible:e=!0,isPinned:t=!1,isFirstCell:n=!1,isLastCell:r=!1,isOptionsVisible:i=!0,headerId:a,headerColumn:o,className:s,children:c,onColumnPin:l,onToggleVisibility:u,...d})=>{let f=o?.columnDef.meta?.position;return(0,S.jsxs)(`th`,{slot:`table-head-cell`,"data-pinned":t,"data-header":a,style:{zIndex:(0,y.useMemo)(()=>t?20:void 0,[t]),left:(0,y.useMemo)(()=>{let e=o?.getStart?.(`left`);return t===`left`&&typeof e==`number`?`${e}px`:void 0},[t,o]),right:(0,y.useMemo)(()=>{let e=o?.getAfter?.(`right`);return t===`right`&&typeof e==`number`?`${e}px`:void 0},[t,o]),width:(0,y.useMemo)(()=>`calc(var(--header-${a}-size) * 1px)`,[a]),minWidth:(0,y.useMemo)(()=>o?.columnDef.minSize?`calc(var(--col-${a}-minSize) * 1px)`:void 0,[a,o]),maxWidth:(0,y.useMemo)(()=>o?.columnDef.maxSize?`calc(var(--col-${a}-maxSize) * 1px)`:void 0,[a,o])},className:(0,b.cn)(xe({isPinned:t||`false`,isActions:a===`actions`,isLastCell:r,isFirstCell:n,position:f}),s),...d,children:[(0,S.jsx)(`div`,{className:`truncate px-4`,children:c}),i&&(0,S.jsx)(ze,{isPinned:t,isVisible:e,onLeftPin:l,onRightPin:l,onUnpin:l})]})});Be.displayName=`UITableHeadCell`;const Ve=(0,y.memo)(({isPinned:e,isAllRowsSelected:t,style:n,onToggleAllRowsSelected:r,...i})=>{let a=(0,y.useCallback)(e=>{r?.(!!e)},[r]);return(0,S.jsx)(`th`,{slot:`table-header-cell`,"data-pinned":!0,style:{left:0,zIndex:20,width:60,maxWidth:60},className:J({isPinned:e}),...i,children:(0,S.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,onClick:e=>{e.preventDefault(),e.stopPropagation()},children:(0,S.jsx)(d.Checkbox,{"aria-label":`Select All Rows`,checked:t,onCheckedChange:a})})})});Ve.displayName=`UITableHeadCellSelect`;const He=(0,y.memo)(({headerGroup:e,className:t,...n})=>{let{isAllRowsSelected:r,columnPinningState:i,leftPinnedHeaders:a,rightPinnedHeaders:o,onToggleAllRowsSelected:s}=B(),c=o[0]?.id,l=a[a.length-1]?.id;return(0,S.jsx)(`tr`,{slot:`table-head-row`,className:(0,b.cn)(be(),t),...n,children:e.headers.map((e,t)=>{let n=e.column.getIsVisible(),a=i.left?.includes(e.id)?`left`:i.right?.includes(e.id)?`right`:!1;return e.id===`select`?(0,S.jsx)(Ve,{isPinned:a,isAllRowsSelected:r,onToggleAllRowsSelected:s},e.id):(0,S.jsx)(Be,{isVisible:n,isPinned:a,isFirstCell:e.id===c,isLastCell:e.id===l,isOptionsVisible:![`select`,`actions`].includes(e.id),headerId:e.id,headerColumn:e.column,colSpan:e.colSpan,onColumnPin:e.column.pin,onToggleVisibility:e.column.toggleVisibility,children:(0,w.flexRender)(e.column.columnDef.header,e.getContext())},`${e.id}-${t}`)})})});He.displayName=`UITableHeadRow`;const Ue=(0,y.memo)(({children:e,...t})=>{let{table:n,innerTableId:r,totalSize:i}=R(),a=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(!a.current)return;let e=n.getFlatHeaders(),t,r=new ResizeObserver(r=>{t!==void 0&&cancelAnimationFrame(t),t=requestAnimationFrame(()=>{let t=r[0];if(!t)return;let i=t.target;if(!(i instanceof HTMLTableElement))return;let a=t.contentRect.width,{left:o=[],right:s=[]}=n.getState().columnPinning,c=0,l=0,u=0,d=e.map(e=>{let{id:t}=e,n=t===`select`||t===`actions`,r=o.includes(t)||s.includes(t),i=e.getSize(),a=e.column.columnDef.maxSize;return n?(c+=60,{id:t,isFlex:!1,width:60}):r?(c+=i,{id:t,isFlex:!1,width:i}):e.column.columnDef.size||i!==150?(u+=i,{id:t,isFlex:!1,width:i}):(l++,{id:t,isFlex:!0,maxSize:a})}),f=a-c-u,p=l>0?Math.max(0,Math.floor(f/l)):0,m=i.closest(`[data-slot="table-scroll-host"]`);d.forEach(e=>{if(e.isFlex){let t=e.maxSize?Math.min(p,e.maxSize):p;i.style.setProperty(`--header-${e.id}-size`,`${t}`),i.style.setProperty(`--col-${e.id}-size`,`${t}`),m?.style.setProperty(`--col-${e.id}-size`,`${t}`),e.maxSize&&i.style.setProperty(`--col-${e.id}-maxSize`,`${e.maxSize}`)}else i.style.setProperty(`--header-${e.id}-size`,`${e.width}`),i.style.setProperty(`--col-${e.id}-size`,`${e.width}`),m?.style.setProperty(`--col-${e.id}-size`,`${e.width}`)})})});return r.observe(a.current),()=>{t!==void 0&&cancelAnimationFrame(t),r.disconnect()}},[n.getState().columnSizingInfo,n.getState().columnSizing,n.getState().columnPinning]),(0,S.jsx)(`table`,{id:r,ref:a,slot:`table-inner-table`,className:ve(),style:{minWidth:i},...t,children:e})});Ue.displayName=`UITableInnerTable`;const We=(0,y.memo)(({children:e,...t})=>{let{innerWrapperId:n}=I();return(0,S.jsx)(`div`,{id:n,slot:`table-inner-wrapper`,className:_e(),...t,children:e})});We.displayName=`UITableInnerWrapper`;const Ge=(0,y.memo)(({virtualRowIndex:e,virtualRowStart:t,fetchMoreData:n})=>{let{innerWrapperId:r}=I(),i=(0,y.useRef)(null),a=(0,y.useRef)(null),[o,s]=(0,y.useState)(`idle`),[c,l]=(0,y.useState)(0),u=(0,y.useCallback)(async()=>{try{s(`fetching`),await n?.(),s(`idle`)}catch(e){console.error(`Error fetching more data:`,e),s(`error`)}},[n]);return(0,y.useEffect)(()=>{if(i.current=document.querySelector(`div[id="${r}"]`),!i.current)return;let e=new ResizeObserver(e=>{l(e[0].contentRect.width)});return e.observe(i.current),()=>e.disconnect()},[r]),n?(0,S.jsx)(`tr`,{ref:a,"data-index":e,style:{transform:`translateY(${t}px)`,width:c},className:`sticky! left-0 h-10`,children:(0,S.jsx)(`td`,{className:`absolute left-0 flex w-full items-center justify-center text-xs`,children:(0,S.jsxs)(`button`,{type:`button`,disabled:o===`fetching`,className:ke({state:o}),onClick:u,children:[o===`idle`&&(0,S.jsx)(v.ChevronDown,{className:`size-4`}),o===`fetching`&&(0,S.jsx)(f.Spinner,{className:`size-4 animate-spin`}),o===`error`&&(0,S.jsx)(v.AlertTriangle,{className:`size-4 text-danger`}),o===`idle`&&`Tải thêm`,o===`fetching`&&`Đang tải...`,o===`error`&&`Lỗi! Thử lại?`]})})}):null});Ge.displayName=`UITableLoadMore`;const Ke=(0,y.memo)(({row:e,isSelected:t,virtualRowIndex:n,virtualRowStart:r,children:i,...a})=>{let{keyOfClickRow:o,isAllRowsSelected:s,columnPinningState:c,leftPinnedHeaders:l,rightPinnedHeaders:u,onClickRow:d}=W(),f=(0,y.useMemo)(()=>c.left??[],[c]),p=(0,y.useMemo)(()=>c.right??[],[c]),m=(0,y.useMemo)(()=>u?.[0]?.id,[u]),h=(0,y.useMemo)(()=>l?.[l.length-1]?.id,[l]),g=(0,y.useMemo)(()=>e.getVisibleCells().some(e=>e.column.id===`select`),[e]),_=(0,y.useCallback)(t=>{if(d){let t=o?e.original?.[o]:void 0;d(n,typeof t==`string`||typeof t==`number`?t:void 0)}else g&&e.toggleSelected();t.preventDefault(),t.stopPropagation()},[o,d,e,n,g]);return(0,S.jsx)(`tr`,{slot:`table-row`,"data-index":n,style:{transform:`translateY(${r}px)`},className:Ce(),onClick:_,...a,children:e.getVisibleCells().map((e,r)=>{let i=f.includes(e.column.id),a=p.includes(e.column.id),o=i?`left`:a?`right`:!1;return e.column.id===`actions`?(0,S.jsx)(Ae,{"data-col":e.column.id,"data-cell":n,"data-selected":t||void 0,virtualRowIndex:n,column:e.column,getContext:e.getContext},`${e.id}-${r}`):e.column.id===`select`?(0,S.jsx)(je,{"data-col":e.column.id,"data-cell":n,"data-selected":t||void 0,isPinned:o,isSelected:s||t,onToggleRowSelected:e.row.toggleSelected},`${e.id}-${r}`):(0,S.jsx)(Z,{"data-col":e.column.id,"data-cell":n,"data-selected":t||void 0,isPinned:o,isFirstCell:e.column.id===m,isLastCell:e.column.id===h,colId:e.column.id,position:e.column.columnDef.meta?.position??`start`,column:e.column,getContext:e.getContext},`${e.id}-${r}`)})})});Ke.displayName=`UITableRow`;const qe=(0,y.memo)(({className:e,children:t,...n})=>(0,S.jsx)(`div`,{slot:`table-wrapper`,className:(0,b.cn)(ge(),e),...n,children:t}));qe.displayName=`UITableWrapper`;const Je=({children:e})=>{let{table:t,fetchMoreData:n}=G(),{rowSelectionState:r}=H(),i=(0,y.useRef)(null),{rows:a}=t.getRowModel(),o=(0,ee.useVirtualizer)({count:a.length+ +!!n,estimateSize:()=>40,getScrollElement:()=>i.current,measureElement:typeof window<`u`&&navigator.userAgent.indexOf(`Firefox`)===-1?e=>e?.getBoundingClientRect().height:void 0,overscan:2}),s=(0,y.useMemo)(()=>`${o.getTotalSize()}px`,[o.getTotalSize()]);return(0,S.jsxs)(p.ResizablePanelGroup,{direction:`horizontal`,style:{direction:t.options.columnResizeDirection},className:`relative flex w-full max-w-full flex-1 gap-1 overflow-auto border-t border-t-border border-r border-r-border p-0 text-sm`,children:[(0,S.jsx)(p.ResizablePanel,{"data-slot":`table-scroll-host`,className:`relative flex flex-col`,children:(0,S.jsxs)(We,{ref:i,children:[(0,S.jsxs)(Ue,{children:[(0,S.jsx)(Re,{children:t.getHeaderGroups().map(e=>(0,S.jsx)(He,{headerGroup:e},e.id))}),(0,S.jsx)(X,{height:s,children:o.getVirtualItems().map(e=>{let t=a[e.index];if(!t&&n)return(0,S.jsx)(Ge,{virtualRowIndex:e.index,virtualRowStart:e.start,fetchMoreData:n},e.key);let i=r[t.id]===!0;return(0,S.jsx)(Ke,{ref:o.measureElement,row:t,isSelected:i,virtualRowIndex:e.index,virtualRowStart:e.start},e.key)})}),(0,S.jsx)(Me,{})]}),(0,S.jsx)(Ne,{})]})}),e&&(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(p.ResizableHandle,{}),e]})]})};function Ye(e,t,n){switch(n){case`count`:return e;case`sum`:return t.reduce((e,t)=>e+t,0);case`avg`:return t.length===0?0:t.reduce((e,t)=>e+t,0)/t.length;case`min`:return t.length===0?0:Math.min(...t);case`max`:return t.length===0?0:Math.max(...t)}}function Xe(e,t){return e.map(e=>{let n=e.getValue(t);return typeof n==`string`?Number(n):typeof n==`number`?n:NaN}).filter(e=>!Number.isNaN(e))}const Ze={sum:`Tổng`,avg:`Trung bình`,count:`Đếm`,min:`Nhỏ nhất`,max:`Lớn nhất`},Qe=(0,y.memo)(()=>{let{table:e,totalRows:t}=G(),{rowSelectionState:n}=H(),{isOpen:r,toggle:i}=q(),a=(0,y.useMemo)(()=>e.getRowModel().rows,[e]),s=(0,y.useMemo)(()=>e.getSelectedRowModel().flatRows,[e,n]),c=(0,y.useMemo)(()=>e.getHeaderGroups()[0]?.headers??[],[e]),l=(0,y.useMemo)(()=>c.filter(e=>![`select`,`actions`].includes(e.id)).flatMap(e=>{let t=e.column.columnDef.meta?.aggregation;if(!t)return[];let n=t.label??(typeof e.column.columnDef.header==`string`?e.column.columnDef.header:e.id),r=Xe(a,e.id),i=s.length>0?Xe(s,e.id):null;return[{colId:e.id,header:n,aggregation:t,allValue:Ye(a.length,r,t.type),selectedValue:i===null?null:Ye(s.length,i,t.type)}]}),[c,a,s]);return(0,S.jsxs)(`div`,{"data-slot":`table-analysis-panel`,className:`w-full border-t border-border`,children:[(0,S.jsxs)(`button`,{type:`button`,className:(0,b.cn)(`flex w-full items-center justify-between px-4 py-2 text-sm font-medium text-text-positive`,`hover:bg-muted-bg-subtle transition-colors outline-none`,`focus-visible:ring-2 focus-visible:ring-primary-weak`),onClick:i,"aria-expanded":r,children:[(0,S.jsx)(`span`,{children:`Tổng quan dữ liệu`}),r?(0,S.jsx)(v.ChevronUpIcon,{size:14}):(0,S.jsx)(v.ChevronDownIcon,{size:14})]}),r&&(0,S.jsxs)(`div`,{className:`px-4 pb-4 pt-2 space-y-4`,children:[(0,S.jsxs)(`div`,{className:`flex flex-wrap gap-4`,children:[(0,S.jsx)(Q,{label:`Tổng bản ghi`,value:t??a.length}),(0,S.jsx)(Q,{label:`Hàng hiển thị`,value:a.length}),(0,S.jsx)(Q,{label:`Hàng đã chọn`,value:s.length,highlight:s.length>0})]}),l.length>0&&(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`p`,{className:`mb-2 text-xs font-semibold uppercase tracking-wide text-text-positive-weak`,children:`Tóm tắt cột`}),(0,S.jsx)(`div`,{className:`overflow-x-auto rounded-md border border-border`,children:(0,S.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,S.jsx)(`thead`,{children:(0,S.jsxs)(`tr`,{className:`border-b border-border bg-muted-bg-subtle text-xs text-text-positive-weak`,children:[(0,S.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:`Cột`}),(0,S.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:`Kiểu`}),(0,S.jsx)(`th`,{className:`px-3 py-2 text-right font-medium`,children:`Tất cả hàng`}),s.length>0&&(0,S.jsx)(`th`,{className:`px-3 py-2 text-right font-medium`,children:`Hàng đã chọn`})]})}),(0,S.jsx)(`tbody`,{children:l.map((e,t)=>(0,S.jsxs)(`tr`,{className:(0,b.cn)(`border-b border-border last:border-b-0`,t%2==1&&`bg-muted-bg-subtle/50`),children:[(0,S.jsx)(`td`,{className:`px-3 py-2 text-text-positive font-medium`,children:e.header}),(0,S.jsx)(`td`,{className:`px-3 py-2 text-text-positive-weak`,children:Ze[e.aggregation.type]}),(0,S.jsx)(`td`,{className:`px-3 py-2 text-right`,children:(0,S.jsx)(o.Statistic,{value:e.allValue,prefix:e.aggregation.prefix,suffix:e.aggregation.suffix,precision:e.aggregation.precision,size:`sm`})}),s.length>0&&(0,S.jsx)(`td`,{className:`px-3 py-2 text-right`,children:e.selectedValue===null?(0,S.jsx)(`span`,{className:`text-text-positive-weak`,children:`—`}):(0,S.jsx)(o.Statistic,{value:e.selectedValue,prefix:e.aggregation.prefix,suffix:e.aggregation.suffix,precision:e.aggregation.precision,size:`sm`})})]},e.colId))})]})})]})]})]})});Qe.displayName=`UITableAnalysisPanel`;const Q=(0,y.memo)(({label:e,value:t,highlight:n})=>(0,S.jsxs)(`div`,{className:(0,b.cn)(`flex flex-col gap-0.5 rounded border px-3 py-2 min-w-25 bg-white`,n&&t>0?`border-primary bg-primary-bg-subtle`:`border-border bg-white`),children:[(0,S.jsx)(`span`,{className:`text-[11px] text-text-positive-weak`,children:e}),(0,S.jsx)(`span`,{className:`text-base font-semibold tabular-nums text-text-positive-strong`,children:t.toLocaleString()})]}));Q.displayName=`StatChip`;const $e={tag:(0,S.jsx)(v.TagIcon,{size:14}),"single-tag":(0,S.jsx)(v.TagIcon,{size:14}),"date-range":(0,S.jsx)(v.CalendarIcon,{size:14}),number:(0,S.jsx)(v.HashIcon,{size:14}),text:(0,S.jsx)(v.TypeIcon,{size:14}),boolean:(0,S.jsx)(v.ToggleLeftIcon,{size:14})},et=[{value:`eq`,label:`Bằng (=)`},{value:`ne`,label:`Không bằng (≠)`},{value:`gt`,label:`Lớn hơn (>)`},{value:`gte`,label:`Ít nhất (≥)`},{value:`lt`,label:`Nhỏ hơn (<)`},{value:`lte`,label:`Nhiều nhất (≤)`},{value:`between`,label:`Trong khoảng`}],tt=[{value:`contains`,label:`Chứa`},{value:`equals`,label:`Bằng`},{value:`starts-with`,label:`Bắt đầu bằng`},{value:`ends-with`,label:`Kết thúc bằng`}];function nt(e,t){switch(e.type){case`single-tag`:return e.value?t.options?.find(t=>t.value===e.value)?.label??e.value:`Chưa đặt`;case`tag`:return e.values.length?e.values.map(e=>t.options?.find(t=>t.value===e)?.label??e).join(`, `):`Chưa đặt`;case`date-range`:return!e.from&&!e.to?`Ngày không xác định`:e.from&&e.to?`${e.from} → ${e.to}`:e.from?`từ ${e.from}`:`đến ${e.to}`;case`number`:{let t={eq:`=`,ne:`≠`,gt:`>`,gte:`≥`,lt:`<`,lte:`≤`,between:`trong khoảng`}[e.operator];return e.value===void 0?t:e.operator===`between`?`${t} ${e.value} – ${e.valueTo??`?`}`:`${t} ${e.value}`}case`text`:{let t={contains:`chứa`,equals:`là`,"starts-with":`bắt đầu bằng`,"ends-with":`kết thúc bằng`}[e.operator];return e.value?`${t} "${e.value}"`:t}case`boolean`:return e.value===null?`Không xác định`:e.value?`Có`:`Không`}}const rt=({value:e,definition:t,onChange:n})=>(0,S.jsx)(`div`,{className:`flex flex-col gap-1 p-3`,children:(t.options??[]).length===0?(0,S.jsx)(`p`,{className:`text-xs text-text-positive-muted`,children:`Không có tùy chọn`}):t.options.map(t=>(0,S.jsxs)(h.Label,{className:(0,b.cn)(`flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors`,e.values.includes(t.value)&&`bg-primary-muted hover:bg-primary-subtle`),children:[(0,S.jsx)(d.Checkbox,{checked:e.values.includes(t.value),onCheckedChange:r=>{n({type:`tag`,values:r?[...e.values,t.value]:e.values.filter(e=>e!==t.value)})}}),(0,S.jsx)(`span`,{className:`text-sm`,children:t.label})]},t.value))}),it=({value:e,definition:t,onChange:n})=>(0,S.jsx)(`div`,{className:`flex flex-col gap-1 p-3`,children:(t.options??[]).length===0?(0,S.jsx)(`p`,{className:`text-xs text-text-positive-muted`,children:`Không có tùy chọn`}):t.options.map(t=>(0,S.jsxs)(h.Label,{className:(0,b.cn)(`flex items-center gap-2 bg-secondary-bg-subtle hover:bg-secondary-muted px-4 py-2 rounded transition-colors`,e.value===t.value&&`bg-primary-muted hover:bg-primary-subtle`),children:[(0,S.jsx)(d.Checkbox,{checked:e.value===t.value,onCheckedChange:e=>{n({type:`single-tag`,value:e?t.value:null})}}),(0,S.jsx)(`span`,{className:`text-sm`,children:t.label})]},t.value))}),at=({value:e,onChange:t})=>(0,S.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[(0,S.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,S.jsx)(`span`,{className:`text-text-positive-muted text-xs`,children:`Từ ngày`}),(0,S.jsx)(m.Input,{type:`date`,size:`md`,value:e.from??``,onValueChange:n=>t({...e,from:n||void 0})})]}),(0,S.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,S.jsx)(`span`,{className:`text-text-positive-muted text-xs`,children:`Đến ngày`}),(0,S.jsx)(m.Input,{type:`date`,size:`md`,value:e.to??``,onValueChange:n=>t({...e,to:n||void 0})})]})]}),ot=({value:e,onChange:t})=>(0,S.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[(0,S.jsxs)(_.Select,{value:e.operator,onValueChange:n=>t({...e,operator:n}),children:[(0,S.jsx)(_.SelectTrigger,{size:`sm`,children:(0,S.jsx)(_.SelectValue,{})}),(0,S.jsx)(_.SelectContent,{children:et.map(e=>(0,S.jsx)(_.SelectItem,{value:e.value,children:e.label},e.value))})]}),(0,S.jsx)(m.Input,{type:`number`,size:`md`,placeholder:`Giá trị`,value:e.value??``,onValueChange:n=>t({...e,value:n?Number(n):void 0})}),e.operator===`between`&&(0,S.jsx)(m.Input,{type:`number`,size:`md`,placeholder:`Đến giá trị`,value:e.valueTo??``,onValueChange:n=>t({...e,valueTo:n?Number(n):void 0})})]}),st=({value:e,onChange:t})=>(0,S.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[(0,S.jsxs)(_.Select,{value:e.operator,onValueChange:n=>t({...e,operator:n}),children:[(0,S.jsx)(_.SelectTrigger,{size:`sm`,children:(0,S.jsx)(_.SelectValue,{})}),(0,S.jsx)(_.SelectContent,{children:tt.map(e=>(0,S.jsx)(_.SelectItem,{value:e.value,children:e.label},e.value))})]}),(0,S.jsx)(m.Input,{type:`text`,size:`md`,placeholder:`Nhập văn bản...`,value:e.value,onValueChange:n=>t({...e,value:n})})]}),ct=[{label:`Có`,value:!0},{label:`Không`,value:!1},{label:`Không xác định`,value:null}],lt=({value:t,onChange:n})=>(0,S.jsx)(`div`,{className:`flex flex-col gap-1 p-3`,children:ct.map(({label:r,value:i})=>(0,S.jsx)(e.Button,{type:`button`,tabIndex:-1,variant:`outline`,className:(0,b.cn)(`rounded px-3 py-1.5 text-left text-sm transition-colors`,t.value===i?`bg-primary-muted font-medium`:`hover:bg-muted-bg-subtle`),onClick:()=>n({type:`boolean`,value:i}),children:r},r))});function ut({value:e,definition:t,onChange:n}){switch(e.type){case`tag`:return(0,S.jsx)(rt,{value:e,definition:t,onChange:n});case`single-tag`:return(0,S.jsx)(it,{value:e,definition:t,onChange:n});case`date-range`:return(0,S.jsx)(at,{value:e,onChange:n});case`number`:return(0,S.jsx)(ot,{value:e,onChange:n});case`text`:return(0,S.jsx)(st,{value:e,onChange:n});case`boolean`:return(0,S.jsx)(lt,{value:e,onChange:n})}}const dt=({filter:t,definition:n,onRemove:r,onUpdate:i})=>(0,S.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,S.jsxs)(g.Popover,{children:[(0,S.jsx)(g.PopoverTrigger,{asChild:!0,children:(0,S.jsxs)(e.Button,{type:`button`,variant:`outline`,color:`muted`,className:`flex-1 bg-white max-w-[calc(100%-32px)] justify-start`,innerClassName:`flex truncate gap-1.5`,children:[(0,S.jsx)(`span`,{className:`shrink-0 text-text-positive font-medium`,children:n.label}),(0,S.jsx)(`span`,{className:`truncate text-xs text-text-positive-weak`,children:nt(t.value,n)})]})}),(0,S.jsxs)(g.PopoverContent,{className:`w-64 p-0`,align:`start`,side:`bottom`,children:[(0,S.jsx)(`div`,{className:`border-b border-border px-3 py-2`,children:(0,S.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,S.jsx)(`span`,{className:`text-text-positive-muted`,children:$e[n.type]}),(0,S.jsx)(`p`,{className:`font-medium`,children:n.label})]})}),(0,S.jsx)(ut,{value:t.value,definition:n,onChange:i})]})]}),(0,S.jsx)(e.Button,{type:`button`,size:`icon`,variant:`soft`,color:`danger`,className:`shrink`,onClick:r,children:(0,S.jsx)(v.Trash2Icon,{size:13})})]}),ft=()=>{let{filterDefinitions:t,activeFilters:n,addFilter:r,removeFilter:i,updateFilter:a}=K(),[o,s]=(0,y.useState)(null),u=t.filter(e=>!n.some(t=>t.definitionId===e.id));return(0,S.jsx)(p.ResizablePanel,{defaultSize:25,className:(0,b.cn)(`bg-card`,o===null?`max-w-8!`:`min-w-64`),children:(0,S.jsxs)(`div`,{className:`relative z-20 flex size-full bg-muted-bg-subtle`,children:[(0,S.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,S.jsx)(y.Activity,{mode:o===`filters`?`visible`:`hidden`,children:(0,S.jsxs)(`div`,{className:`flex size-full flex-col gap-2 p-4`,children:[(0,S.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,S.jsx)(`p`,{className:`font-medium`,children:`Bộ lọc`}),(0,S.jsxs)(l.DropdownMenu,{children:[(0,S.jsx)(l.DropdownMenuTrigger,{asChild:!0,children:(0,S.jsxs)(e.Button,{variant:`outline`,color:`muted`,disabled:u.length===0,children:[(0,S.jsx)(v.ListFilterPlus,{size:13}),`Thêm bộ lọc`]})}),(0,S.jsx)(l.DropdownMenuContent,{align:`end`,children:u.map(e=>(0,S.jsxs)(l.DropdownMenuItem,{className:`flex items-center gap-2`,onClick:()=>r(e.id),children:[$e[e.type],e.label]},e.id))})]})]}),(0,S.jsx)(c.Separator,{}),n.length===0?(0,S.jsx)(`p`,{className:`py-6 text-center text-xs text-text-positive-muted`,children:`Không có bộ lọc nào`}):(0,S.jsx)(`div`,{className:`flex flex-col gap-2 pt-1`,children:n.map(e=>{let n=t.find(t=>t.id===e.definitionId);return n?(0,S.jsx)(dt,{filter:e,definition:n,onRemove:()=>i(e.id),onUpdate:t=>a(e.id,t)},e.id):null})})]})})}),(0,S.jsxs)(`div`,{className:`flex h-full flex-col border-l border-border bg-muted-bg-subtle text-sm`,children:[(0,S.jsxs)(`button`,{type:`button`,className:(0,b.cn)(`relative flex h-32 cursor-pointer flex-col items-center gap-y-2 p-2 py-4`,o===`filters`&&`bg-card`),onClick:()=>s(o===`filters`?null:`filters`),children:[(0,S.jsx)(v.ListFilterIcon,{size:18}),n.length>0&&(0,S.jsx)(`span`,{className:`absolute top-2 right-1.5 flex h-4 w-4 items-center justify-center rounded-full bg-primary text-[10px] leading-none text-primary-foreground`,children:n.length}),(0,S.jsx)(`span`,{className:`text-nowrap [writing-mode:vertical-lr]`,children:`Bộ lọc`})]}),(0,S.jsx)(c.Separator,{})]})]})})};function pt(e){switch(e){case`tag`:return{type:`tag`,values:[]};case`single-tag`:return{type:`single-tag`,value:null};case`date-range`:return{type:`date-range`};case`number`:return{type:`number`,operator:`eq`};case`text`:return{type:`text`,operator:`contains`,value:``};case`boolean`:return{type:`boolean`,value:null}}}const mt=(0,y.memo)(({innerWrapperId:e,children:t})=>{let n=(0,y.useMemo)(()=>({innerWrapperId:e}),[e]);return(0,S.jsx)(F.Provider,{value:n,children:t})});mt.displayName=`UITableInnerWrapperProvider`;const ht=(0,y.memo)(({table:e,innerTableId:t,totalSize:n,children:r})=>{let i=(0,y.useMemo)(()=>({table:e,innerTableId:t,totalSize:n}),[e,t,n]);return(0,S.jsx)(L.Provider,{value:i,children:r})});ht.displayName=`UITableInnerTableProvider`;const gt=(0,y.memo)(({isAllRowsSelected:e,columnPinningState:t,leftPinnedHeaders:n,rightPinnedHeaders:r,onToggleAllRowsSelected:i,children:a})=>{let o=(0,y.useMemo)(()=>({isAllRowsSelected:e,columnPinningState:t,leftPinnedHeaders:n,rightPinnedHeaders:r,onToggleAllRowsSelected:i}),[e,t,n,r,i]);return(0,S.jsx)(z.Provider,{value:o,children:a})});gt.displayName=`UITableHeadRowProvider`;const _t=(0,y.memo)(({isFetching:e,isRefetching:t,isEmpty:n,rowSelectionState:r,children:i})=>{let a=(0,y.useMemo)(()=>({isFetching:e,isRefetching:t,isEmpty:n,rowSelectionState:r}),[e,n,r]);return(0,S.jsx)(V.Provider,{value:a,children:i})});_t.displayName=`UITableBodyProvider`;const vt=(0,y.memo)(({keyOfClickRow:e,isAllRowsSelected:t,columnPinningState:n,leftPinnedHeaders:r,rightPinnedHeaders:i,onClickRow:a,children:o})=>{let s=(0,y.useMemo)(()=>({keyOfClickRow:e,isAllRowsSelected:t,columnPinningState:n,leftPinnedHeaders:r,rightPinnedHeaders:i,onClickRow:a}),[e,t,n,r,i,a]);return(0,S.jsx)(U.Provider,{value:s,children:o})});vt.displayName=`UITableRowProvider`;const yt=({title:e,isFetching:t=!1,isRefetching:n=!1,isLoading:r=!1,loadingDisplayRow:i=3,data:a,columns:o,totalRows:s,leftPinnedColumns:c=[],rightPinnedColumns:l=[],keyOfClickRow:u,onClickRow:d,onRowSelection:f,onColumnPinning:p,fetchMoreData:m,emptyDisplayHeight:h,csvData:g,csvFileName:_,filterDefinitions:v=[],onFilterChange:b,summary:x=[],showAnalysisPanel:C=!1,description:ee,headerActions:T,children:te})=>{let E=(0,y.useId)(),ne=(0,y.useId)(),[D,O]=(0,y.useState)(!1),[k,re]=(0,y.useState)({}),[A,ie]=(0,y.useState)({right:l,left:[`select`,...c]}),[ae,oe]=(0,y.useState)({}),[se,j]=(0,y.useState)([]),ce=(0,y.useCallback)(e=>(re(e),f?.(e instanceof Function?e(k):e),e),[k,f]),le=(0,y.useCallback)(e=>{ie(e),p?.(e instanceof Function?e(A):e)},[A,p]),M=(0,y.useCallback)(e=>{let t=v.find(t=>t.id===e);if(!t)return;let n={id:`${e}-${crypto.randomUUID()}`,definitionId:e,value:pt(t.type)};j(e=>{let t=[...e,n];return b?.(t),t})},[v,b]),N=(0,y.useCallback)(e=>{j(t=>{let n=t.filter(t=>t.id!==e);return b?.(n),n})},[b]),P=(0,y.useCallback)((e,t)=>{j(n=>{let r=n.map(n=>n.id===e?{...n,value:t}:n);return b?.(r),r})},[b]),ue=(0,y.useMemo)(()=>({filterDefinitions:v,activeFilters:se,addFilter:M,removeFilter:N,updateFilter:P}),[v,se,M,N,P]),F=(0,w.useReactTable)({data:a,columns:o,state:{rowSelection:k,columnPinning:A,expanded:ae},defaultColumn:{enableResizing:!1,size:void 0,minSize:void 0,maxSize:void 0},columnResizeMode:`onChange`,columnResizeDirection:`ltr`,enableColumnPinning:!0,enableRowSelection:!0,enableColumnResizing:!0,enableMultiRowSelection:!0,autoResetAll:!1,autoResetExpanded:!1,autoResetPageIndex:!1,getSubRows:e=>e.subRows,getCoreRowModel:(0,w.getCoreRowModel)(),getGroupedRowModel:(0,w.getGroupedRowModel)(),getExpandedRowModel:(0,w.getExpandedRowModel)(),onRowSelectionChange:ce,onColumnPinningChange:le,onExpandedChange:oe}),I=(0,y.useMemo)(()=>{let{rows:e}=F.getRowModel();return e},[F.getRowModel().rows,F.getState().columnPinning]),L=(0,y.useMemo)(()=>!t&&!n&&I.length===0,[I,t,n]),R=(0,y.useMemo)(()=>({title:e,table:F,isEmpty:L,isFetching:t,isRefetching:n,isLoading:r,loadingDisplayRow:i,totalRows:s,fetchMoreData:m,emptyDisplayHeight:h,csvData:g,csvFileName:_,summary:x,showAnalysisPanel:C,description:ee,headerActions:T}),[e,F,L,n,t,r,i,s,m,h,F.getState().columnPinning,F.getState().expanded,g,_,x,C,ee,T]),z=(0,y.useMemo)(()=>F.getState(),[F.getState()]),B=(0,y.useMemo)(()=>F.getIsAllRowsSelected(),[F.getIsAllRowsSelected()]),V=(0,y.useMemo)(()=>z.rowSelection,[z.rowSelection]),H=(0,y.useMemo)(()=>z.columnPinning,[z.columnPinning]),U=(0,y.useMemo)(()=>F.getLeftHeaderGroups()[0]?.headers||[],[F.getState().columnPinning]),W=(0,y.useMemo)(()=>F.getRightHeaderGroups()[0]?.headers||[],[F.getState().columnPinning]),G=(0,y.useMemo)(()=>F.getTotalSize(),[F.getTotalSize()]),K=(0,y.useCallback)(()=>O(e=>!e),[]),q=(0,y.useMemo)(()=>({isOpen:D,toggle:K}),[D,K]);return(0,S.jsx)(pe.Provider,{value:q,children:(0,S.jsx)(fe.Provider,{value:ue,children:(0,S.jsx)(de.Provider,{value:R,children:(0,S.jsx)(mt,{innerWrapperId:E,children:(0,S.jsx)(ht,{table:F,innerTableId:ne,totalSize:G,children:(0,S.jsx)(gt,{isAllRowsSelected:B,columnPinningState:H,leftPinnedHeaders:U,rightPinnedHeaders:W,onToggleAllRowsSelected:F.toggleAllRowsSelected,children:(0,S.jsx)(_t,{isFetching:t,isRefetching:n,isEmpty:L,rowSelectionState:V,children:(0,S.jsx)(vt,{keyOfClickRow:u,isAllRowsSelected:B,columnPinningState:H,leftPinnedHeaders:U,rightPinnedHeaders:W,onClickRow:d,children:te})})})})})})})})},bt={up:`bg-success`,down:`bg-danger`,neutral:`bg-primary`},xt=(0,y.memo)(()=>{let{summary:e}=G();return!e||e.length===0?null:(0,S.jsx)(`div`,{"data-slot":`table-summary-bar`,className:`grid w-full gap-3 px-2 pb-1`,style:{gridTemplateColumns:`repeat(${e.length}, minmax(0, 240px))`},children:e.map(e=>{let t=bt[e.trend??`neutral`];return(0,S.jsxs)(`div`,{className:`flex flex-col overflow-hidden rounded border border-border bg-card shadow-card`,children:[(0,S.jsx)(`div`,{className:(0,b.cn)(`h-0.75 w-full shrink-0`,t)}),(0,S.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 px-5 py-4`,children:[(0,S.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-widest text-text-positive-weak`,children:e.label}),e.value!==null&&e.value!==void 0?(0,S.jsx)(o.Statistic,{value:e.value,prefix:e.prefix,suffix:e.suffix,precision:e.precision,trend:e.trend,size:`xl`,className:`font-bold`}):(0,S.jsx)(`span`,{className:`text-xl font-bold tabular-nums text-text-positive-strong`,children:`—`}),e.description&&(0,S.jsx)(`span`,{className:`text-xs text-text-positive-weak`,children:e.description})]})]},e.label)})})});xt.displayName=`UITableSummaryBar`;function St(e){if(e==null)return``;if(typeof e==`number`)return String(e);if(typeof e==`boolean`)return e?`true`:`false`;let t=String(e);return t.includes(`,`)||t.includes(`"`)||t.includes(`
2
- `)||t.includes(`\r`)?`"${t.replace(/"/g,`""`)}"`:t}function Ct(e){if(e.length===0)return``;let t=e[0].map(e=>St(e.label)),n=e.map(e=>e.map(e=>St(e.value)).join(`,`));return[t.join(`,`),...n].join(`
3
- `)}function wt(e,t){let n=Ct(e);if(!n)return;let r=new Blob([n],{type:`text/csv;charset=utf-8;`}),i=URL.createObjectURL(r),a=document.createElement(`a`);a.href=i,a.download=`${t}.csv`,a.click(),URL.revokeObjectURL(i)}const Tt=({onSearch:e,onChange:t,...n})=>{let r=(0,T.useDebounceCallback)(t=>{e?.(t)},500);return(0,S.jsxs)(`div`,{className:`relative w-full max-w-80 flex-1`,children:[(0,S.jsx)(m.Input,{...n,size:`lg`,type:`search`,placeholder:`Tìm kiếm...`,className:`flex-1 ps-9 pe-9`,onChange:e=>{t?.(e),r(e.target.value??``)}}),(0,S.jsx)(`div`,{className:`pointer-events-none absolute inset-y-0 inset-s-0 flex items-center justify-center ps-3 text-text-positive-weak peer-disabled:opacity-50`,children:(0,S.jsx)(v.SearchIcon,{size:16})}),(0,S.jsx)(`button`,{className:`absolute inset-y-0 inset-e-0 flex h-full w-9 items-center justify-center rounded-e-md text-text-positive-weak outline-none transition-[color,box-shadow] hover:text-text-positive focus:z-10 focus-visible:border focus-visible:border-primary-strong focus-visible:ring-[3px] focus-visible:ring-primary-weak disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50`,"aria-label":`Submit search`,type:`submit`,children:(0,S.jsx)(v.ArrowRightIcon,{size:16,"aria-hidden":`true`})})]})},$=({children:e,disabled:t,onClick:n,className:r,...i})=>(0,S.jsx)(`button`,{type:`button`,disabled:t,className:(0,b.cn)(`flex cursor-pointer items-center gap-x-1 rounded-sm border border-border bg-background p-2.5 text-sm text-text-positive-weak outline-none transition-all hover:shadow-card focus:border-border-emphasis focus:bg-muted-muted active:border-border-emphasis active:bg-muted-muted active:text-text-positive disabled:pointer-events-none disabled:cursor-default disabled:opacity-60 [&_svg]:size-3.5`,r),onClick:n,...i,children:e}),Et=({onCreate:e,onDownload:t,onRefresh:n})=>{let{table:r,csvData:i,csvFileName:a,title:o,showAnalysisPanel:s}=G(),{isOpen:c,toggle:l}=q(),u=(0,y.useCallback)(()=>{if(t){t();return}if(!i||i.length===0)return;let e=r.getSelectedRowModel().flatRows;wt(e.length>0?e.map(e=>i[e.index]).filter(Boolean):i,a||o)},[t,i,a,r,o]),d=!!(t||i&&i.length>0);return(0,S.jsxs)(`div`,{className:`flex [&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none`,children:[(0,S.jsx)($,{disabled:!e,onClick:t=>{e?.(),t.stopPropagation(),t.preventDefault()},children:(0,S.jsx)(v.CirclePlus,{})}),(0,S.jsx)($,{disabled:!n,onClick:e=>{n?.(),e.stopPropagation(),e.preventDefault()},children:(0,S.jsx)(v.RefreshCwIcon,{})}),(0,S.jsx)($,{disabled:!d,onClick:e=>{u(),e.stopPropagation(),e.preventDefault()},children:(0,S.jsx)(v.DownloadIcon,{})}),s&&(0,S.jsx)($,{onClick:e=>{l(),e.stopPropagation(),e.preventDefault()},"aria-pressed":c,className:c?`bg-muted-muted text-text-positive`:void 0,children:(0,S.jsx)(v.BarChart2Icon,{})})]})},Dt=({children:e})=>{let{title:t,description:n,headerActions:r}=G();return(0,S.jsxs)(`div`,{"data-slot":`table-tooltip`,className:`relative flex w-full flex-col gap-2 px-2 py-0 text-sm`,children:[(0,S.jsxs)(`div`,{className:`flex w-full items-start justify-between gap-4`,children:[(0,S.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,S.jsx)(`h3`,{className:`font-semibold text-base text-text-positive`,children:t}),n&&(0,S.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n})]}),r&&(0,S.jsx)(`div`,{className:`flex items-center gap-2 shrink-0`,children:r})]}),(0,S.jsx)(`div`,{className:`flex w-full flex-1 justify-between gap-x-2`,children:e})]})};Dt.displayName=`TableTooltip`,Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,"B",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return ue}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,"H",{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return je}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"V",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return ze}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return yt}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return xt}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Et}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return ft}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Tt}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return Qe}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return Dt}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return O}});
4
- //# sourceMappingURL=tables-BfuoYxlt.cjs.map