@customafk/lunas-ui 0.2.58 → 0.2.60

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 (92) hide show
  1. package/dist/cms-layout-BMwn0Yv3.cjs +2 -0
  2. package/dist/cms-layout-BMwn0Yv3.cjs.map +1 -0
  3. package/dist/cms-layout-sd6GB6tR.mjs +2 -0
  4. package/dist/cms-layout-sd6GB6tR.mjs.map +1 -0
  5. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  6. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  7. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  8. package/dist/dialogs/detail-dialog/index.mjs.map +1 -1
  9. package/dist/features/logo/index.cjs +2 -0
  10. package/dist/features/logo/index.cjs.map +1 -0
  11. package/dist/features/logo/index.d.cts +22 -0
  12. package/dist/features/logo/index.d.mts +22 -0
  13. package/dist/features/logo/index.mjs +2 -0
  14. package/dist/features/logo/index.mjs.map +1 -0
  15. package/dist/features/tables/index.cjs +1 -1
  16. package/dist/features/tables/index.d.cts +2 -2
  17. package/dist/features/tables/index.d.mts +2 -2
  18. package/dist/features/tables/index.mjs +1 -1
  19. package/dist/features/tanstack-form/index.cjs +1 -1
  20. package/dist/features/tanstack-form/index.mjs +1 -1
  21. package/dist/{index-aPuQLHfq.d.mts → index-Cbhv1_Xe.d.mts} +49 -19
  22. package/dist/{index-Cqe6rsMe.d.cts → index-nsk470g_.d.cts} +49 -19
  23. package/dist/index.cjs +1 -1
  24. package/dist/index.d.cts +3 -3
  25. package/dist/index.d.mts +3 -3
  26. package/dist/index.mjs +1 -1
  27. package/dist/layouts/cms-layout/index.cjs +1 -1
  28. package/dist/layouts/cms-layout/index.mjs +1 -1
  29. package/dist/layouts/payment-layout/index.cjs +1 -1
  30. package/dist/layouts/payment-layout/index.mjs +1 -1
  31. package/dist/pages/FeatureDeveloping.cjs +1 -1
  32. package/dist/pages/FeatureDeveloping.cjs.map +1 -1
  33. package/dist/pages/FeatureDeveloping.mjs +1 -1
  34. package/dist/pages/FeatureDeveloping.mjs.map +1 -1
  35. package/dist/pages/FeatureFixing.cjs +1 -1
  36. package/dist/pages/FeatureFixing.cjs.map +1 -1
  37. package/dist/pages/FeatureFixing.mjs +1 -1
  38. package/dist/pages/FeatureFixing.mjs.map +1 -1
  39. package/dist/pages/LoginPage.cjs +1 -1
  40. package/dist/pages/LoginPage.cjs.map +1 -1
  41. package/dist/pages/LoginPage.mjs +1 -1
  42. package/dist/pages/LoginPage.mjs.map +1 -1
  43. package/dist/pages/NotAuthorized.cjs +1 -1
  44. package/dist/pages/NotAuthorized.cjs.map +1 -1
  45. package/dist/pages/NotAuthorized.mjs +1 -1
  46. package/dist/pages/NotAuthorized.mjs.map +1 -1
  47. package/dist/pages/NotFound.cjs +1 -1
  48. package/dist/pages/NotFound.cjs.map +1 -1
  49. package/dist/pages/NotFound.mjs +1 -1
  50. package/dist/pages/NotFound.mjs.map +1 -1
  51. package/dist/pages/RegisterPage.cjs +1 -1
  52. package/dist/pages/RegisterPage.cjs.map +1 -1
  53. package/dist/pages/RegisterPage.mjs +1 -1
  54. package/dist/pages/RegisterPage.mjs.map +1 -1
  55. package/dist/pages/VerifyEmailPage.cjs +1 -1
  56. package/dist/pages/VerifyEmailPage.cjs.map +1 -1
  57. package/dist/pages/VerifyEmailPage.mjs +1 -1
  58. package/dist/pages/VerifyEmailPage.mjs.map +1 -1
  59. package/dist/payment-layout-BLrXT-oc.cjs +2 -0
  60. package/dist/payment-layout-BLrXT-oc.cjs.map +1 -0
  61. package/dist/payment-layout-Dsz6wYT1.mjs +2 -0
  62. package/dist/{payment-layout-CG_l7Es-.mjs.map → payment-layout-Dsz6wYT1.mjs.map} +1 -1
  63. package/dist/{resizable-CNIYTd7k.d.cts → resizable-CFCYn9e_.d.cts} +2 -2
  64. package/dist/{resizable-CNIYTd7k.d.mts → resizable-CFCYn9e_.d.mts} +2 -2
  65. package/dist/tables-B9cF58YD.mjs +4 -0
  66. package/dist/tables-B9cF58YD.mjs.map +1 -0
  67. package/dist/tables-NiAoBy75.cjs +4 -0
  68. package/dist/tables-NiAoBy75.cjs.map +1 -0
  69. package/dist/{tanstack-form-Bnfatlfx.cjs → tanstack-form-BMVn8ai_.cjs} +2 -2
  70. package/dist/tanstack-form-BMVn8ai_.cjs.map +1 -0
  71. package/dist/{tanstack-form-CRY_uHFd.mjs → tanstack-form-DTCgWGCA.mjs} +2 -2
  72. package/dist/tanstack-form-DTCgWGCA.mjs.map +1 -0
  73. package/dist/ui/resizable.d.cts +1 -1
  74. package/dist/ui/resizable.d.mts +1 -1
  75. package/dist/ui/switch.cjs +1 -1
  76. package/dist/ui/switch.cjs.map +1 -1
  77. package/dist/ui/switch.mjs +1 -1
  78. package/dist/ui/switch.mjs.map +1 -1
  79. package/package.json +5 -1
  80. package/dist/cms-layout-Bsw2mKXo.cjs +0 -2
  81. package/dist/cms-layout-Bsw2mKXo.cjs.map +0 -1
  82. package/dist/cms-layout-IwpD0LvR.mjs +0 -2
  83. package/dist/cms-layout-IwpD0LvR.mjs.map +0 -1
  84. package/dist/payment-layout-CG_l7Es-.mjs +0 -2
  85. package/dist/payment-layout-Dlvc1P7b.cjs +0 -2
  86. package/dist/payment-layout-Dlvc1P7b.cjs.map +0 -1
  87. package/dist/tables-BHdeig0n.mjs +0 -4
  88. package/dist/tables-BHdeig0n.mjs.map +0 -1
  89. package/dist/tables-BfuoYxlt.cjs +0 -4
  90. package/dist/tables-BfuoYxlt.cjs.map +0 -1
  91. package/dist/tanstack-form-Bnfatlfx.cjs.map +0 -1
  92. package/dist/tanstack-form-CRY_uHFd.mjs.map +0 -1
@@ -0,0 +1,4 @@
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/switch.cjs"),f=require("./ui/checkbox.cjs"),p=require("./ui/spinner.cjs"),m=require("./ui/resizable.cjs"),h=require("./ui/input.cjs"),g=require("./ui/label.cjs"),_=require("./ui/popover.cjs"),v=require("./ui/select.cjs");let y=require("lucide-react"),b=require("react"),x=require("@customafk/react-toolkit/utils"),S=require("class-variance-authority"),C=require("react/jsx-runtime"),w=require("@customafk/react-toolkit/color-hash"),T=require("@tanstack/react-table"),E=require("@customafk/react-toolkit/hooks/useDebounceCallback");const ee=({name:e,avatarUrl:t,uuid:n})=>{let r=w.colorHashLight.hex(n??e);return(0,C.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,C.jsxs)(s.Avatar,{className:`size-8 shrink-0`,children:[(0,C.jsx)(s.AvatarImage,{src:t,alt:e}),(0,C.jsx)(s.AvatarFallback,{style:{backgroundColor:r},children:(0,C.jsx)(y.UserRoundIcon,{size:18,className:`text-white`})})]}),(0,C.jsx)(`span`,{className:`truncate text-sm font-medium`,children:e})]})},D=()=>(0,C.jsxs)(`div`,{className:`flex gap-0 text-text-positive-weak`,children:[(0,C.jsx)(y.MinusIcon,{size:16}),(0,C.jsx)(y.MinusIcon,{size:16})]}),te=({label:e,onClick:t,onRemove:n})=>e?n?(0,C.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,C.jsx)(`button`,{className:`cursor-pointer text-text-positive-weak hover:text-text-positive-strong`,onClick:e=>{n?.(),e.stopPropagation(),e.preventDefault()},children:(0,C.jsx)(y.XIcon,{size:12})})]}):(0,C.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,C.jsx)(D,{}),ne=({value:e})=>e==null?(0,C.jsx)(D,{}):e===!1?(0,C.jsx)(y.XIcon,{size:14,strokeWidth:2,className:`text-danger-strong`}):(0,C.jsx)(y.CheckIcon,{size:14,strokeWidth:2,className:`text-success-strong`}),re=(0,b.memo)(({value:e,currency:t=`USD`,locale:n=`en-US`,display:r=`symbol`,size:i=`md`,colorize:a=!1})=>{let o=(0,b.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,b.useMemo)(()=>{let t=typeof e==`string`?Number(e.trim()):e;return typeof t==`number`&&t<0},[e]);return o?(0,C.jsx)(`p`,{className:(0,x.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,C.jsx)(D,{})});re.displayName=`UITableCurrencyDisplay`;const O=({date:e})=>e==null?(0,C.jsx)(D,{}):(0,C.jsx)(a.TooltipProvider,{children:(0,C.jsxs)(a.Tooltip,{children:[(0,C.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,C.jsx)(i.Badge,{className:`h-fit`,children:(0,C.jsx)(r.t,{date:e,format:`medium`,className:`font-normal text-white`})})}),(0,C.jsx)(a.TooltipContent,{className:`rounded px-2`,children:(0,C.jsx)(r.t,{date:e,format:`full`,showTime:!0,className:`font-medium text-text-negative text-xs`})})]})}),ie=({content:e})=>e==null?(0,C.jsx)(D,{}):(0,C.jsxs)(a.Tooltip,{children:[(0,C.jsx)(a.TooltipTrigger,{children:(0,C.jsx)(t.Paragraph,{variant:`sm`,className:`line-clamp-2 whitespace-pre-line break-all`,children:e})}),(0,C.jsx)(a.TooltipContent,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:(0,C.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[(0,C.jsx)(t.Paragraph,{variant:`xs`,className:`whitespace-pre-line text-wrap break-keep text-text-negative-weak`,children:e}),(0,C.jsxs)(`p`,{className:`w-full text-end`,children:[e.toString().length,` chars`]})]})})]}),k=({title:t,onClick:n})=>(0,C.jsxs)(a.Tooltip,{children:[(0,C.jsx)(a.TooltipTrigger,{children:(0,C.jsx)(e.Button,{type:`button`,variant:`ghost`,color:`secondary`,size:`icon`,onClick:(0,b.useCallback)(async e=>{e.preventDefault(),e.stopPropagation(),await n?.()},[n]),children:(0,C.jsx)(y.PencilIcon,{})})}),(0,C.jsx)(a.TooltipContent,{children:(0,C.jsx)(`p`,{children:t||`Edit item`})})]}),ae=({email:e,linkable:t=!0})=>{let[n,r]=(0,b.useState)(!1);return e?(0,C.jsx)(a.TooltipProvider,{children:(0,C.jsxs)(`div`,{className:`group flex items-center gap-x-1.5`,children:[(0,C.jsx)(y.MailIcon,{size:13,className:`shrink-0 text-text-positive-weak`}),t?(0,C.jsx)(`a`,{href:`mailto:${e}`,className:`truncate text-primary text-sm underline-offset-2 hover:underline`,onClick:e=>e.stopPropagation(),children:e}):(0,C.jsx)(`span`,{className:`truncate text-text-positive text-sm`,children:e}),(0,C.jsxs)(a.Tooltip,{children:[(0,C.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,C.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,C.jsx)(y.CheckIcon,{size:13,className:`text-success-strong`}):(0,C.jsx)(y.CopyIcon,{size:13})})}),(0,C.jsx)(a.TooltipContent,{children:n?`Copied!`:`Copy email`})]})]})}):(0,C.jsx)(D,{})},oe=({items:e,maxVisible:t=3})=>{if(!e||e.length===0)return(0,C.jsx)(D,{});let n=e.slice(0,t),r=e.slice(t);return(0,C.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[n.map((e,t)=>(0,C.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,C.jsx)(a.TooltipProvider,{children:(0,C.jsxs)(a.Tooltip,{children:[(0,C.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,C.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,C.jsx)(a.TooltipContent,{align:`start`,className:`flex max-w-64 flex-wrap gap-1 p-2`,children:r.map((e,t)=>(0,C.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))})]})})]})},se=({items:t=[]})=>(0,C.jsxs)(l.DropdownMenu,{children:[(0,C.jsx)(l.DropdownMenuTrigger,{asChild:!0,children:(0,C.jsx)(e.Button,{size:`sm`,variant:`ghost`,color:`secondary`,className:`size-9 rounded-full`,children:(0,C.jsx)(y.MoreVerticalIcon,{})})}),(0,C.jsx)(l.DropdownMenuContent,{children:(0,C.jsx)(l.DropdownMenuGroup,{children:t.map(e=>(0,C.jsx)(l.DropdownMenuItem,{className:`px-3`,onSelect:t=>{e.onClick(e.id),t.preventDefault(),t.stopPropagation()},children:e.label},e.id))})})]}),A=({name:e})=>e?(0,C.jsxs)(a.Tooltip,{children:[(0,C.jsx)(a.TooltipTrigger,{children:(0,C.jsx)(t.Paragraph,{variant:`sm`,className:`line-clamp-2 w-full truncate text-wrap pb-px text-start`,children:e})}),(0,C.jsx)(a.TooltipContent,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:(0,C.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[(0,C.jsx)(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:e}),(0,C.jsxs)(`p`,{className:`w-full text-end`,children:[e.length,` chars`]})]})})]}):(0,C.jsx)(D,{}),j=({href:e,label:t})=>(0,C.jsxs)(`a`,{href:e,target:`_blank`,className:`inline-flex items-center gap-1 truncate text-primary text-sm underline`,rel:`noopener noreferrer`,children:[(0,C.jsx)(`span`,{children:t||e}),(0,C.jsx)(y.ExternalLinkIcon,{size:14})]}),ce=({value:e})=>(0,C.jsxs)(a.Tooltip,{children:[(0,C.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,C.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,C.jsx)(a.TooltipContent,{align:`start`,children:(0,C.jsx)(`p`,{className:`tabular-nums`,children:e.slice(1).replace(/(\d{2})(\d{3})(\d{4})/,`(00) (+84) ($1) $2-$3`)})})]}),M=(0,b.memo)(({value:e,showLabel:t=!0,successThreshold:n=70,warningThreshold:r=40})=>{if(e==null)return(0,C.jsx)(D,{});let i=Math.min(100,Math.max(0,e));return(0,C.jsxs)(`div`,{className:`flex w-full min-w-24 items-center gap-x-2`,children:[(0,C.jsx)(u.Progress,{value:i,className:(0,x.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,C.jsxs)(`span`,{className:`w-9 shrink-0 text-right font-number text-text-positive-weak text-xs tabular-nums`,children:[i,`%`]})]})});M.displayName=`UITableProgressDisplay`;const N=({title:t,onClick:n})=>(0,C.jsxs)(a.Tooltip,{children:[(0,C.jsx)(a.TooltipTrigger,{children:(0,C.jsx)(e.Button,{type:`button`,variant:`ghost`,color:`danger`,size:`icon`,onClick:(0,b.useCallback)(async e=>{e.preventDefault(),e.stopPropagation(),await n?.()},[n]),children:(0,C.jsx)(y.Trash2Icon,{})})}),(0,C.jsx)(a.TooltipContent,{children:(0,C.jsx)(`p`,{children:t||`Remove item from list table`})})]}),P=(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}},F=(0,b.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,b.useMemo)(()=>{let e={};return typeof a==`number`&&a>=0&&s&&(e.minimumFractionDigits=a),e.maximumFractionDigits=a,e},[a,s]),d=(0,b.useCallback)(e=>{let t=e;return typeof a==`number`&&a>=0&&(t=P(e,a,o)),t.toLocaleString(`en-US`,u)},[o,u,a]),f=(0,b.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,b.useMemo)(()=>e===`.`&&t===`,`?f:f.replace(/,/g,t).replace(/\./g,e),[f,e,t]);return p===`0`||p===`N/A`||!p?(0,C.jsx)(D,{}):(0,C.jsxs)(n.Flex,{padding:`none`,className:(0,x.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,C.jsx)(`p`,{children:p}),i]})});F.displayName=`UITableStatisticDisplay`;const le=({value:e,colorMap:t,defaultColor:n=`muted`,variant:r=`soft`})=>e==null||e===``?(0,C.jsx)(D,{}):(0,C.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,` `)}),I=({checked:e,titleOn:t,titleOff:n,disabled:r,onCheckedChange:i})=>{let o=(0,b.useCallback)(async e=>{await i?.(e)},[i]);return(0,C.jsxs)(a.Tooltip,{children:[(0,C.jsx)(a.TooltipTrigger,{asChild:!0,children:(0,C.jsx)(`span`,{onClick:(0,b.useCallback)(e=>{e.stopPropagation()},[]),children:(0,C.jsx)(d.Switch,{checked:e,disabled:r,onCheckedChange:o})})}),(0,C.jsx)(a.TooltipContent,{children:(0,C.jsx)(`p`,{children:e?t||`Turn off`:n||`Turn on`})})]})},L=({uuid:e,username:r,email:i})=>(0,C.jsxs)(n.Flex,{wrap:!1,gap:`sm`,padding:`none`,children:[!e&&(0,C.jsx)(s.Avatar,{className:`size-10 shadow-card`,children:(0,C.jsx)(s.AvatarFallback,{className:`bg-muted-weak`,children:(0,C.jsx)(y.UserRoundIcon,{size:28,className:`text-text-negative`})})}),e&&(0,C.jsx)(s.Avatar,{className:`size-10 shadow-card`,children:(0,C.jsx)(s.AvatarFallback,{style:{backgroundColor:w.colorHashLight.hex(e)},children:(0,C.jsx)(y.UserRoundIcon,{size:28,className:`text-white`})})}),(0,C.jsxs)(n.Flex,{vertical:!0,padding:`none`,gap:`none`,align:`start`,children:[(0,C.jsx)(t.Paragraph,{className:`font-medium text-sm text-text-positive-weak`,children:r??`Unknown User`}),(0,C.jsx)(t.Paragraph,{variant:`sm`,className:`mt-0! text-text-positive-weak text-xs`,children:i})]})]}),R=(0,b.createContext)(null),ue=()=>{let e=(0,b.use)(R);if(!e)throw Error(`useTableInnerWrapperContext must be used within a TableInnerWrapperProvider`);return e},z=(0,b.createContext)(null),B=()=>{let e=(0,b.use)(z);if(!e)throw Error(`useTableInnerTableContext must be used within a TableInnerTableProvider`);return e},V=(0,b.createContext)(null),H=()=>{let e=(0,b.use)(V);if(!e)throw Error(`useTableHeaderRowContext must be used within a TableHeaderRowProvider`);return e},U=(0,b.createContext)(null),W=()=>{let e=(0,b.use)(U);if(!e)throw Error(`useTableBodyContext must be used within a TableBodyProvider`);return e},G=(0,b.createContext)(null),K=()=>{let e=(0,b.use)(G);if(!e)throw Error(`useTableRowContext must be used within a TableRowProvider`);return e},de=(0,b.createContext)(null),q=()=>{let e=(0,b.use)(de);if(!e)throw Error(`useTableContext must be used within a TableProvider`);return e},fe=(0,b.createContext)(null),pe=()=>{let e=(0,b.use)(fe);if(!e)throw Error(`useUITableFilterContext must be used within a UITableProvider`);return e},me=(0,b.createContext)(null),he=()=>{let e=(0,b.use)(me);if(!e)throw Error(`useUITableAnalysisContext must be used within a UITableProvider`);return e},ge=(0,S.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`]),_e=(0,S.cva)([`sticky left-0 flex flex-1 items-center justify-center bg-transparent text-text-positive-weak opacity-100`]),ve=(0,S.cva)([`relative m-0 flex size-full flex-col flex-nowrap items-start justify-start gap-2`]),ye=(0,S.cva)([`relative w-full flex-1 min-h-0 overflow-auto border-b border-b-border border-l border-l-border`]),be=(0,S.cva)([`grid w-full table-fixed caption-bottom border-collapse border-spacing-0 flex-col content-start`]),xe=(0,S.cva)([`sticky top-0 z-40 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`]),Se=(0,S.cva)([`flex`]),Ce=(0,S.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`}]}),we=(0,S.cva)([`relative w-full`,`[&_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`]),Te=(0,S.cva)([`group transition-colors hover:bg-muted-muted hover:[&_td]:bg-muted-muted! [&_td]:border-r [&_td]:border-r-border`]),J=(0,S.cva)([`group-hover:bg-muted-muted!`],{variants:{isPinned:{left:`sticky`,right:`sticky`,false:`relative`}},defaultVariants:{isPinned:void 0}}),Ee=(0,S.cva)([`sticky border-r-0! inset-y-0 right-0 z-30 flex items-center pr-4 group-hover:bg-muted-muted!`]),De=(0,S.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`}]}),Oe=(0,S.cva)([`overflow-x-hidden`],{variants:{position:{start:`justify-start`,center:`justify-center`,end:`justify-end`}},defaultVariants:{position:`start`}}),ke=(0,S.cva)([`shrink-0 flex w-full justify-center border-t border-border-weak font-medium`]),Ae=(0,S.cva)([`flex w-full`,`text-[13px] font-medium text-text-positive-weak`]),Y=(0,S.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:``}}}),je=(0,S.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,b.memo)(({className:e,children:t,...n})=>{let{isFetching:r,isRefetching:i,isEmpty:a}=W();return a||r||i?null:(0,C.jsx)(`tbody`,{slot:`table-body`,className:(0,x.cn)(we(),e),...n,children:t})});X.displayName=`UITableBody`;const Me=(0,b.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}=B(),u=(0,b.useRef)(null),d=(0,b.useRef)(null),f=(0,b.useMemo)(()=>{let t=a?.getStart(`left`);return e===`left`&&typeof t==`number`?`${t}px`:void 0},[e,a]),p=(0,b.useMemo)(()=>{let t=a?.getAfter(`right`);return e===`right`&&typeof t==`number`?`${t}px`:void 0},[e,a]),m=(0,b.useMemo)(()=>`calc(var(--col-${r}-size) * 1px)`,[r]),h=(0,b.useMemo)(()=>a?.columnDef.minSize?`calc(var(--col-${r}-minSize) * 1px)`:void 0,[r,a]),g=(0,b.useMemo)(()=>a?.columnDef.maxSize?`calc(var(--col-${r}-maxSize) * 1px)`:void 0,[r,a]),_=(0,b.useMemo)(()=>(0,T.flexRender)(a?.columnDef.cell,o()),[a,o]);return(0,b.useEffect)(()=>{u.current=document.querySelector(`table[id="${c}"]`)},[c]),(0,b.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,C.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:De({isPinned:e||void 0,isLastCell:n,isFirstCell:t}),...s,children:(0,C.jsx)(`div`,{ref:d,slot:`table-body-cell-inner`,className:Oe({position:i}),children:_})})});Me.displayName=`UITableCell`;const Ne=(0,b.memo)(({column:e,getContext:t,className:n,...r})=>{let i=(0,b.useMemo)(()=>(0,T.flexRender)(e?.columnDef.cell,t()),[e,t]);return(0,C.jsx)(`td`,{"data-col":`actions`,className:Ee(),...r,children:i})});Ne.displayName=`UITableCellActions`;const Pe=(0,b.memo)(({isPinned:e,isSelected:t=!1,className:n,onToggleRowSelected:r,...i})=>{let a=(0,b.useCallback)(e=>{r?.(!!e)},[r]);return(0,C.jsx)(`td`,{slot:`table-body-cell`,"data-pinned":!0,style:{left:0,zIndex:20,width:60,maxWidth:60},className:(0,x.cn)(J({isPinned:e}),n),...i,children:(0,C.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,C.jsx)(f.Checkbox,{"aria-label":`Select Row`,checked:t,onCheckedChange:a})})})});Pe.displayName=`UITableCellSelect`;const Fe=(0,b.memo)(()=>{let{table:e,isFetching:t,isRefetching:n,loadingDisplayRow:r=3}=q();return!t&&!n?null:(0,C.jsx)(`tbody`,{className:(0,x.cn)(we(),`pointer-events-none`),children:Array.from({length:r}).map((t,n)=>(0,C.jsx)(`tr`,{"data-slot":`table-row`,"data-index":n,className:(0,x.cn)(Te(),`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,C.jsx)(`td`,{"data-slot":`table-body-cell`,"data-col":t.id,"data-cell":r,style:{width:60},className:Ee(),children:(0,C.jsx)(`div`,{className:`w-full h-4 bg-muted-muted rounded-full`})},`${t.id}-${r}`):t.id===`select`?(0,C.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,C.jsx)(`div`,{className:`w-full flex justify-center`,children:(0,C.jsx)(`div`,{className:`size-4 bg-muted-muted rounded-full`})})},`${t.id}-${n}`):(0,C.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:De({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,C.jsx)(`div`,{className:Oe({position:t.columnDef.meta?.position??`start`}),children:(0,C.jsx)(`div`,{className:`w-full h-4 bg-muted-muted rounded-full`})})},`${t.id}-${r}`)})},n))})}),Ie=(0,b.memo)(()=>{let{isEmpty:e,emptyDisplayHeight:t}=q();return e?(0,C.jsx)(C.Fragment,{children:e&&(0,C.jsx)(`div`,{className:_e(),style:{minHeight:t??`24rem`},children:(0,C.jsxs)(`div`,{className:`flex flex-col items-center gap-1`,children:[(0,C.jsx)(y.BoxIcon,{strokeWidth:1,size:48}),(0,C.jsx)(`p`,{children:`Không có dữ liệu`})]})})}):null});Ie.displayName=`UITableEmptyDisplay`;const Le=(0,b.memo)(({className:e,children:t,...n})=>(0,C.jsx)(`div`,{slot:`table-footer`,className:(0,x.cn)(ke(),e),...n,children:t}));Le.displayName=`UITableFooter`;function Re(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 ze(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 Be=(0,b.memo)(()=>{let{table:e}=q(),{rowSelectionState:t}=W(),n=(0,b.useMemo)(()=>e.getHeaderGroups()[0]?.headers??[],[e.getHeaderGroups()]),r=(0,b.useMemo)(()=>n.some(e=>e.column.columnDef.meta?.aggregation),[n]),i=(0,b.useMemo)(()=>e.getSelectedRowModel().flatRows,[e,t]),a=(0,b.useMemo)(()=>e.getRowModel().rows,[e]),s=i.length>0?i:a,c=(0,b.useMemo)(()=>{let e={};for(let t of n){let n=t.column.columnDef.meta?.aggregation;if(!n)continue;let r=ze(s,t.id);e[t.id]=Re(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,C.jsx)(`div`,{slot:`table-footer-row`,className:Ae(),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,C.jsx)(`div`,{slot:`table-footer-select`,"data-pinned":`left`,style:{left:`0px`,width:`60px`},className:(0,x.cn)(Y({isPinned:`left`,isFirstCell:!1,isLastCell:!1}),`justify-center`),children:(0,C.jsx)(`span`,{className:`truncate text-[11px] items-center text-text-positive-weak`,children:m})},t);if(t===`actions`)return(0,C.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,C.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,C.jsx)(o.Statistic,{value:h,prefix:l.prefix,suffix:l.suffix,precision:l.precision,size:`sm`}):(0,C.jsx)(`span`,{className:`text-text-positive-weak`,children:`—`})},t)})})});Be.displayName=`UITableFooterRow`;const Ve=(0,b.memo)(({className:e,children:t,...n})=>(0,C.jsx)(`thead`,{slot:`table-head`,className:(0,x.cn)(xe(),e),...n,children:t}));Ve.displayName=`UITableHead`;const He=(0,b.memo)(({isPinned:e,onLeftPin:t,onRightPin:n,onUnpin:r,className:i})=>{let a=(0,b.useCallback)(()=>{t?.(`left`)},[t]),o=(0,b.useCallback)(()=>{n?.(`right`)},[n]),s=(0,b.useCallback)(()=>{r?.(!1)},[r]);return(0,C.jsxs)(l.DropdownMenu,{children:[(0,C.jsx)(l.DropdownMenuTrigger,{asChild:!0,children:(0,C.jsx)(`button`,{type:`button`,className:(0,x.cn)(ge(),i),children:(0,C.jsx)(y.EllipsisVerticalIcon,{})})}),(0,C.jsx)(l.DropdownMenuContent,{align:`end`,className:`w-64 p-4`,children:(0,C.jsxs)(l.DropdownMenuGroup,{className:`*:data-[slot=dropdown-menu-item]:rounded-xs *:data-[slot=dropdown-menu-item]:p-2`,children:[(0,C.jsx)(b.Activity,{mode:e?`visible`:`hidden`,children:(0,C.jsxs)(l.DropdownMenuItem,{onClick:s,children:[!!e&&`Bỏ ghim`,(0,C.jsx)(l.DropdownMenuShortcut,{children:(0,C.jsx)(y.PinOffIcon,{className:`size-4`})})]})}),(0,C.jsxs)(b.Activity,{mode:e?`hidden`:`visible`,children:[(0,C.jsxs)(l.DropdownMenuItem,{onClick:a,children:[e?`Bỏ ghim`:`Ghim trái`,(0,C.jsx)(l.DropdownMenuShortcut,{children:(0,C.jsx)(y.MoveLeftIcon,{className:`size-4`})})]}),(0,C.jsxs)(l.DropdownMenuItem,{onClick:o,children:[e?`Bỏ ghim`:`Ghim phải`,(0,C.jsx)(l.DropdownMenuShortcut,{children:(0,C.jsx)(y.MoveRightIcon,{className:`size-4`})})]})]})]})})]})});He.displayName=`UITableHeadCellOption`;const Z=(0,b.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,C.jsxs)(`th`,{slot:`table-head-cell`,"data-pinned":t,"data-header":a,style:{zIndex:(0,b.useMemo)(()=>t?20:void 0,[t]),left:(0,b.useMemo)(()=>{let e=o?.getStart?.(`left`);return t===`left`&&typeof e==`number`?`${e}px`:void 0},[t,o]),right:(0,b.useMemo)(()=>{let e=o?.getAfter?.(`right`);return t===`right`&&typeof e==`number`?`${e}px`:void 0},[t,o]),width:(0,b.useMemo)(()=>`calc(var(--header-${a}-size) * 1px)`,[a]),minWidth:(0,b.useMemo)(()=>o?.columnDef.minSize?`calc(var(--col-${a}-minSize) * 1px)`:void 0,[a,o]),maxWidth:(0,b.useMemo)(()=>o?.columnDef.maxSize?`calc(var(--col-${a}-maxSize) * 1px)`:void 0,[a,o])},className:(0,x.cn)(Ce({isPinned:t||`false`,isActions:a===`actions`,isLastCell:r,isFirstCell:n,position:f}),s),...d,children:[(0,C.jsx)(`div`,{className:`truncate px-4`,children:c}),i&&(0,C.jsx)(He,{isPinned:t,isVisible:e,onLeftPin:l,onRightPin:l,onUnpin:l})]})});Z.displayName=`UITableHeadCell`;const Ue=(0,b.memo)(({isPinned:e,isAllRowsSelected:t,style:n,onToggleAllRowsSelected:r,...i})=>{let a=(0,b.useCallback)(e=>{r?.(!!e)},[r]);return(0,C.jsx)(`th`,{slot:`table-header-cell`,"data-pinned":!0,style:{left:0,zIndex:40,width:60,maxWidth:60},className:J({isPinned:e}),...i,children:(0,C.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center`,onClick:e=>{e.preventDefault(),e.stopPropagation()},children:(0,C.jsx)(f.Checkbox,{"aria-label":`Select All Rows`,checked:t,onCheckedChange:a})})})});Ue.displayName=`UITableHeadCellSelect`;const We=(0,b.memo)(({headerGroup:e,className:t,...n})=>{let{isAllRowsSelected:r,columnPinningState:i,leftPinnedHeaders:a,rightPinnedHeaders:o,onToggleAllRowsSelected:s}=H(),c=o[0]?.id,l=a[a.length-1]?.id;return(0,C.jsx)(`tr`,{slot:`table-head-row`,className:(0,x.cn)(Se(),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,C.jsx)(Ue,{isPinned:a,isAllRowsSelected:r,onToggleAllRowsSelected:s},e.id):(0,C.jsx)(Z,{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,T.flexRender)(e.column.columnDef.header,e.getContext())},`${e.id}-${t}`)})})});We.displayName=`UITableHeadRow`;const Ge=(0,b.memo)(({children:e,...t})=>{let{table:n,innerTableId:r,totalSize:i}=B(),a=(0,b.useRef)(null);return(0,b.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,C.jsx)(`table`,{id:r,ref:a,slot:`table-inner-table`,className:be(),style:{minWidth:i},...t,children:e})});Ge.displayName=`UITableInnerTable`;const Ke=(0,b.memo)(({children:e,...t})=>{let{innerWrapperId:n}=ue();return(0,C.jsx)(`div`,{id:n,slot:`table-inner-wrapper`,className:ye(),...t,children:e})});Ke.displayName=`UITableInnerWrapper`;const qe=(0,b.memo)(({fetchMoreData:e})=>{let{innerWrapperId:t}=ue(),[n,r]=(0,b.useState)(`idle`),[i,a]=(0,b.useState)(0),o=(0,b.useCallback)(async()=>{try{r(`fetching`),await e?.(),r(`idle`)}catch(e){console.error(`Error fetching more data:`,e),r(`error`)}},[e]);return(0,b.useEffect)(()=>{let e=document.querySelector(`div[id="${t}"]`);if(!e)return;let n=new ResizeObserver(e=>{a(e[0].contentRect.width)});return n.observe(e),()=>n.disconnect()},[t]),e?(0,C.jsx)(`tr`,{className:`sticky! left-0 h-10`,style:{width:i},children:(0,C.jsx)(`td`,{className:`absolute left-0 flex w-full items-center justify-center text-xs`,children:(0,C.jsxs)(`button`,{type:`button`,disabled:n===`fetching`,className:je({state:n}),onClick:o,children:[n===`idle`&&(0,C.jsx)(y.ChevronDown,{className:`size-4`}),n===`fetching`&&(0,C.jsx)(p.Spinner,{className:`size-4 animate-spin`}),n===`error`&&(0,C.jsx)(y.AlertTriangle,{className:`size-4 text-danger`}),n===`idle`&&`Tải thêm`,n===`fetching`&&`Đang tải...`,n===`error`&&`Lỗi! Thử lại?`]})})}):null});qe.displayName=`UITableLoadMore`;const Je=(0,b.memo)(({row:e,isSelected:t,rowIndex:n,children:r,...i})=>{let{keyOfClickRow:a,isAllRowsSelected:o,columnPinningState:s,leftPinnedHeaders:c,rightPinnedHeaders:l,onClickRow:u}=K(),d=(0,b.useMemo)(()=>s.left??[],[s]),f=(0,b.useMemo)(()=>s.right??[],[s]),p=(0,b.useMemo)(()=>l?.[0]?.id,[l]),m=(0,b.useMemo)(()=>c?.[c.length-1]?.id,[c]),h=(0,b.useMemo)(()=>e.getVisibleCells().some(e=>e.column.id===`select`),[e]),g=(0,b.useCallback)(t=>{if(u){let t=a?e.original?.[a]:void 0;u(n,typeof t==`string`||typeof t==`number`?t:void 0)}else h&&e.toggleSelected();t.preventDefault(),t.stopPropagation()},[a,u,e,n,h]);return(0,C.jsx)(`tr`,{slot:`table-row`,"data-index":n,className:Te(),onClick:g,...i,children:e.getVisibleCells().map((e,r)=>{let i=d.includes(e.column.id),a=f.includes(e.column.id),s=i?`left`:a?`right`:!1;return e.column.id===`actions`?(0,C.jsx)(Ne,{"data-col":e.column.id,"data-cell":n,"data-selected":t||void 0,column:e.column,getContext:e.getContext},`${e.id}-${r}`):e.column.id===`select`?(0,C.jsx)(Pe,{"data-col":e.column.id,"data-cell":n,"data-selected":t||void 0,isPinned:s,isSelected:o||t,onToggleRowSelected:e.row.toggleSelected},`${e.id}-${r}`):(0,C.jsx)(Me,{"data-col":e.column.id,"data-cell":n,"data-selected":t||void 0,isPinned:s,isFirstCell:e.column.id===p,isLastCell:e.column.id===m,colId:e.column.id,position:e.column.columnDef.meta?.position??`start`,column:e.column,getContext:e.getContext},`${e.id}-${r}`)})})});Je.displayName=`UITableRow`;const Ye=(0,b.memo)(({className:e,children:t,...n})=>(0,C.jsx)(`div`,{slot:`table-wrapper`,className:(0,x.cn)(ve(),e),...n,children:t}));Ye.displayName=`UITableWrapper`;const Xe=({children:e})=>{let{table:t,fetchMoreData:n}=q(),{rowSelectionState:r}=W(),{rows:i}=t.getRowModel();return(0,C.jsxs)(m.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,C.jsx)(m.ResizablePanel,{"data-slot":`table-scroll-host`,className:`relative flex flex-col`,children:(0,C.jsxs)(Ke,{children:[(0,C.jsxs)(Ge,{children:[(0,C.jsx)(Ve,{children:t.getHeaderGroups().map(e=>(0,C.jsx)(We,{headerGroup:e},e.id))}),(0,C.jsxs)(X,{children:[i.map((e,t)=>(0,C.jsx)(Je,{row:e,isSelected:r[e.id]===!0,rowIndex:t},e.id)),n&&(0,C.jsx)(qe,{fetchMoreData:n})]}),(0,C.jsx)(Fe,{})]}),(0,C.jsx)(Ie,{})]})}),e&&(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(m.ResizableHandle,{}),e]})]})};function Ze(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 Qe(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 $e={sum:`Tổng`,avg:`Trung bình`,count:`Đếm`,min:`Nhỏ nhất`,max:`Lớn nhất`},et=(0,b.memo)(()=>{let{table:e,totalRows:t}=q(),{rowSelectionState:n}=W(),{isOpen:r,toggle:i}=he(),a=(0,b.useMemo)(()=>e.getRowModel().rows,[e]),s=(0,b.useMemo)(()=>e.getSelectedRowModel().flatRows,[e,n]),c=(0,b.useMemo)(()=>e.getHeaderGroups()[0]?.headers??[],[e]),l=(0,b.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=Qe(a,e.id),i=s.length>0?Qe(s,e.id):null;return[{colId:e.id,header:n,aggregation:t,allValue:Ze(a.length,r,t.type),selectedValue:i===null?null:Ze(s.length,i,t.type)}]}),[c,a,s]);return(0,C.jsxs)(`div`,{"data-slot":`table-analysis-panel`,className:`w-full border-t border-border`,children:[(0,C.jsxs)(`button`,{type:`button`,className:(0,x.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,C.jsx)(`span`,{children:`Tổng quan dữ liệu`}),r?(0,C.jsx)(y.ChevronUpIcon,{size:14}):(0,C.jsx)(y.ChevronDownIcon,{size:14})]}),r&&(0,C.jsxs)(`div`,{className:`px-4 pb-4 pt-2 space-y-4`,children:[(0,C.jsxs)(`div`,{className:`flex flex-wrap gap-4`,children:[(0,C.jsx)(Q,{label:`Tổng bản ghi`,value:t??a.length}),(0,C.jsx)(Q,{label:`Hàng hiển thị`,value:a.length}),(0,C.jsx)(Q,{label:`Hàng đã chọn`,value:s.length,highlight:s.length>0})]}),l.length>0&&(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`p`,{className:`mb-2 text-xs font-semibold uppercase tracking-wide text-text-positive-weak`,children:`Tóm tắt cột`}),(0,C.jsx)(`div`,{className:`overflow-x-auto rounded-md border border-border`,children:(0,C.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,C.jsx)(`thead`,{children:(0,C.jsxs)(`tr`,{className:`border-b border-border bg-muted-bg-subtle text-xs text-text-positive-weak`,children:[(0,C.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:`Cột`}),(0,C.jsx)(`th`,{className:`px-3 py-2 text-left font-medium`,children:`Kiểu`}),(0,C.jsx)(`th`,{className:`px-3 py-2 text-right font-medium`,children:`Tất cả hàng`}),s.length>0&&(0,C.jsx)(`th`,{className:`px-3 py-2 text-right font-medium`,children:`Hàng đã chọn`})]})}),(0,C.jsx)(`tbody`,{children:l.map((e,t)=>(0,C.jsxs)(`tr`,{className:(0,x.cn)(`border-b border-border last:border-b-0`,t%2==1&&`bg-muted-bg-subtle/50`),children:[(0,C.jsx)(`td`,{className:`px-3 py-2 text-text-positive font-medium`,children:e.header}),(0,C.jsx)(`td`,{className:`px-3 py-2 text-text-positive-weak`,children:$e[e.aggregation.type]}),(0,C.jsx)(`td`,{className:`px-3 py-2 text-right`,children:(0,C.jsx)(o.Statistic,{value:e.allValue,prefix:e.aggregation.prefix,suffix:e.aggregation.suffix,precision:e.aggregation.precision,size:`sm`})}),s.length>0&&(0,C.jsx)(`td`,{className:`px-3 py-2 text-right`,children:e.selectedValue===null?(0,C.jsx)(`span`,{className:`text-text-positive-weak`,children:`—`}):(0,C.jsx)(o.Statistic,{value:e.selectedValue,prefix:e.aggregation.prefix,suffix:e.aggregation.suffix,precision:e.aggregation.precision,size:`sm`})})]},e.colId))})]})})]})]})]})});et.displayName=`UITableAnalysisPanel`;const Q=(0,b.memo)(({label:e,value:t,highlight:n})=>(0,C.jsxs)(`div`,{className:(0,x.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,C.jsx)(`span`,{className:`text-[11px] text-text-positive-weak`,children:e}),(0,C.jsx)(`span`,{className:`text-base font-semibold tabular-nums text-text-positive-strong`,children:t.toLocaleString()})]}));Q.displayName=`StatChip`;const tt={tag:(0,C.jsx)(y.TagIcon,{size:14}),"single-tag":(0,C.jsx)(y.TagIcon,{size:14}),"date-range":(0,C.jsx)(y.CalendarIcon,{size:14}),number:(0,C.jsx)(y.HashIcon,{size:14}),text:(0,C.jsx)(y.TypeIcon,{size:14}),boolean:(0,C.jsx)(y.ToggleLeftIcon,{size:14})},nt=[{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`}],rt=[{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 it(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 at=({value:e,definition:t,onChange:n})=>(0,C.jsx)(`div`,{className:`flex flex-col gap-1 p-3`,children:(t.options??[]).length===0?(0,C.jsx)(`p`,{className:`text-xs text-text-positive-muted`,children:`Không có tùy chọn`}):t.options.map(t=>(0,C.jsxs)(g.Label,{className:(0,x.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,C.jsx)(f.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,C.jsx)(`span`,{className:`text-sm`,children:t.label})]},t.value))}),ot=({value:e,definition:t,onChange:n})=>(0,C.jsx)(`div`,{className:`flex flex-col gap-1 p-3`,children:(t.options??[]).length===0?(0,C.jsx)(`p`,{className:`text-xs text-text-positive-muted`,children:`Không có tùy chọn`}):t.options.map(t=>(0,C.jsxs)(g.Label,{className:(0,x.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,C.jsx)(f.Checkbox,{checked:e.value===t.value,onCheckedChange:e=>{n({type:`single-tag`,value:e?t.value:null})}}),(0,C.jsx)(`span`,{className:`text-sm`,children:t.label})]},t.value))}),st=({value:e,onChange:t})=>(0,C.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[(0,C.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,C.jsx)(`span`,{className:`text-text-positive-muted text-xs`,children:`Từ ngày`}),(0,C.jsx)(h.Input,{type:`date`,size:`md`,value:e.from??``,onValueChange:n=>t({...e,from:n||void 0})})]}),(0,C.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,C.jsx)(`span`,{className:`text-text-positive-muted text-xs`,children:`Đến ngày`}),(0,C.jsx)(h.Input,{type:`date`,size:`md`,value:e.to??``,onValueChange:n=>t({...e,to:n||void 0})})]})]}),ct=({value:e,onChange:t})=>(0,C.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[(0,C.jsxs)(v.Select,{value:e.operator,onValueChange:n=>t({...e,operator:n}),children:[(0,C.jsx)(v.SelectTrigger,{size:`sm`,children:(0,C.jsx)(v.SelectValue,{})}),(0,C.jsx)(v.SelectContent,{children:nt.map(e=>(0,C.jsx)(v.SelectItem,{value:e.value,children:e.label},e.value))})]}),(0,C.jsx)(h.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,C.jsx)(h.Input,{type:`number`,size:`md`,placeholder:`Đến giá trị`,value:e.valueTo??``,onValueChange:n=>t({...e,valueTo:n?Number(n):void 0})})]}),lt=({value:e,onChange:t})=>(0,C.jsxs)(`div`,{className:`flex flex-col gap-3 p-3`,children:[(0,C.jsxs)(v.Select,{value:e.operator,onValueChange:n=>t({...e,operator:n}),children:[(0,C.jsx)(v.SelectTrigger,{size:`sm`,children:(0,C.jsx)(v.SelectValue,{})}),(0,C.jsx)(v.SelectContent,{children:rt.map(e=>(0,C.jsx)(v.SelectItem,{value:e.value,children:e.label},e.value))})]}),(0,C.jsx)(h.Input,{type:`text`,size:`md`,placeholder:`Nhập văn bản...`,value:e.value,onValueChange:n=>t({...e,value:n})})]}),ut=[{label:`Có`,value:!0},{label:`Không`,value:!1},{label:`Không xác định`,value:null}],dt=({value:t,onChange:n})=>(0,C.jsx)(`div`,{className:`flex flex-col gap-1 p-3`,children:ut.map(({label:r,value:i})=>(0,C.jsx)(e.Button,{type:`button`,tabIndex:-1,variant:`outline`,className:(0,x.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 ft({value:e,definition:t,onChange:n}){switch(e.type){case`tag`:return(0,C.jsx)(at,{value:e,definition:t,onChange:n});case`single-tag`:return(0,C.jsx)(ot,{value:e,definition:t,onChange:n});case`date-range`:return(0,C.jsx)(st,{value:e,onChange:n});case`number`:return(0,C.jsx)(ct,{value:e,onChange:n});case`text`:return(0,C.jsx)(lt,{value:e,onChange:n});case`boolean`:return(0,C.jsx)(dt,{value:e,onChange:n})}}const pt=({filter:t,definition:n,onRemove:r,onUpdate:i})=>(0,C.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,C.jsxs)(_.Popover,{children:[(0,C.jsx)(_.PopoverTrigger,{asChild:!0,children:(0,C.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,C.jsx)(`span`,{className:`shrink-0 text-text-positive font-medium`,children:n.label}),(0,C.jsx)(`span`,{className:`truncate text-xs text-text-positive-weak`,children:it(t.value,n)})]})}),(0,C.jsxs)(_.PopoverContent,{className:`w-64 p-0`,align:`start`,side:`bottom`,children:[(0,C.jsx)(`div`,{className:`border-b border-border px-3 py-2`,children:(0,C.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,C.jsx)(`span`,{className:`text-text-positive-muted`,children:tt[n.type]}),(0,C.jsx)(`p`,{className:`font-medium`,children:n.label})]})}),(0,C.jsx)(ft,{value:t.value,definition:n,onChange:i})]})]}),(0,C.jsx)(e.Button,{type:`button`,size:`icon`,variant:`soft`,color:`danger`,className:`shrink`,onClick:r,children:(0,C.jsx)(y.Trash2Icon,{size:13})})]}),mt=()=>{let{filterDefinitions:t,activeFilters:n,addFilter:r,removeFilter:i,updateFilter:a}=pe(),[o,s]=(0,b.useState)(null),u=t.filter(e=>!n.some(t=>t.definitionId===e.id));return(0,C.jsx)(m.ResizablePanel,{defaultSize:25,className:(0,x.cn)(`bg-card`,o===null?`max-w-8!`:`min-w-64`),children:(0,C.jsxs)(`div`,{className:`relative z-20 flex size-full bg-muted-bg-subtle`,children:[(0,C.jsx)(`div`,{className:`min-w-0 flex-1 overflow-hidden`,children:(0,C.jsx)(b.Activity,{mode:o===`filters`?`visible`:`hidden`,children:(0,C.jsxs)(`div`,{className:`flex size-full flex-col gap-2 p-4`,children:[(0,C.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,C.jsx)(`p`,{className:`font-medium`,children:`Bộ lọc`}),(0,C.jsxs)(l.DropdownMenu,{children:[(0,C.jsx)(l.DropdownMenuTrigger,{asChild:!0,children:(0,C.jsxs)(e.Button,{variant:`outline`,color:`muted`,disabled:u.length===0,children:[(0,C.jsx)(y.ListFilterPlus,{size:13}),`Thêm bộ lọc`]})}),(0,C.jsx)(l.DropdownMenuContent,{align:`end`,children:u.map(e=>(0,C.jsxs)(l.DropdownMenuItem,{className:`flex items-center gap-2`,onClick:()=>r(e.id),children:[tt[e.type],e.label]},e.id))})]})]}),(0,C.jsx)(c.Separator,{}),n.length===0?(0,C.jsx)(`p`,{className:`py-6 text-center text-xs text-text-positive-muted`,children:`Không có bộ lọc nào`}):(0,C.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,C.jsx)(pt,{filter:e,definition:n,onRemove:()=>i(e.id),onUpdate:t=>a(e.id,t)},e.id):null})})]})})}),(0,C.jsxs)(`div`,{className:`flex h-full flex-col border-l border-border bg-muted-bg-subtle text-sm`,children:[(0,C.jsxs)(`button`,{type:`button`,className:(0,x.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,C.jsx)(y.ListFilterIcon,{size:18}),n.length>0&&(0,C.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,C.jsx)(`span`,{className:`text-nowrap [writing-mode:vertical-lr]`,children:`Bộ lọc`})]}),(0,C.jsx)(c.Separator,{})]})]})})};function ht(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 gt=(0,b.memo)(({innerWrapperId:e,children:t})=>{let n=(0,b.useMemo)(()=>({innerWrapperId:e}),[e]);return(0,C.jsx)(R.Provider,{value:n,children:t})});gt.displayName=`UITableInnerWrapperProvider`;const _t=(0,b.memo)(({table:e,innerTableId:t,totalSize:n,children:r})=>{let i=(0,b.useMemo)(()=>({table:e,innerTableId:t,totalSize:n}),[e,t,n]);return(0,C.jsx)(z.Provider,{value:i,children:r})});_t.displayName=`UITableInnerTableProvider`;const vt=(0,b.memo)(({isAllRowsSelected:e,columnPinningState:t,leftPinnedHeaders:n,rightPinnedHeaders:r,onToggleAllRowsSelected:i,children:a})=>{let o=(0,b.useMemo)(()=>({isAllRowsSelected:e,columnPinningState:t,leftPinnedHeaders:n,rightPinnedHeaders:r,onToggleAllRowsSelected:i}),[e,t,n,r,i]);return(0,C.jsx)(V.Provider,{value:o,children:a})});vt.displayName=`UITableHeadRowProvider`;const yt=(0,b.memo)(({isFetching:e,isRefetching:t,isEmpty:n,rowSelectionState:r,children:i})=>{let a=(0,b.useMemo)(()=>({isFetching:e,isRefetching:t,isEmpty:n,rowSelectionState:r}),[e,n,r]);return(0,C.jsx)(U.Provider,{value:a,children:i})});yt.displayName=`UITableBodyProvider`;const bt=(0,b.memo)(({keyOfClickRow:e,isAllRowsSelected:t,columnPinningState:n,leftPinnedHeaders:r,rightPinnedHeaders:i,onClickRow:a,children:o})=>{let s=(0,b.useMemo)(()=>({keyOfClickRow:e,isAllRowsSelected:t,columnPinningState:n,leftPinnedHeaders:r,rightPinnedHeaders:i,onClickRow:a}),[e,t,n,r,i,a]);return(0,C.jsx)(G.Provider,{value:s,children:o})});bt.displayName=`UITableRowProvider`;const xt=({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:y,summary:x=[],showAnalysisPanel:S=!1,description:w,headerActions:E,children:ee})=>{let D=(0,b.useId)(),te=(0,b.useId)(),[ne,re]=(0,b.useState)(!1),[O,ie]=(0,b.useState)({}),[k,ae]=(0,b.useState)({right:l,left:[`select`,...c]}),[oe,se]=(0,b.useState)({}),[A,j]=(0,b.useState)([]),ce=(0,b.useCallback)(e=>(ie(e),f?.(e instanceof Function?e(O):e),e),[O,f]),M=(0,b.useCallback)(e=>{ae(e),p?.(e instanceof Function?e(k):e)},[k,p]),N=(0,b.useCallback)(e=>{let t=v.find(t=>t.id===e);if(!t)return;let n={id:`${e}-${crypto.randomUUID()}`,definitionId:e,value:ht(t.type)};j(e=>{let t=[...e,n];return y?.(t),t})},[v,y]),P=(0,b.useCallback)(e=>{j(t=>{let n=t.filter(t=>t.id!==e);return y?.(n),n})},[y]),F=(0,b.useCallback)((e,t)=>{j(n=>{let r=n.map(n=>n.id===e?{...n,value:t}:n);return y?.(r),r})},[y]),le=(0,b.useMemo)(()=>({filterDefinitions:v,activeFilters:A,addFilter:N,removeFilter:P,updateFilter:F}),[v,A,N,P,F]),I=(0,T.useReactTable)({data:a,columns:o,state:{rowSelection:O,columnPinning:k,expanded:oe},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,T.getCoreRowModel)(),getGroupedRowModel:(0,T.getGroupedRowModel)(),getExpandedRowModel:(0,T.getExpandedRowModel)(),onRowSelectionChange:ce,onColumnPinningChange:M,onExpandedChange:se}),L=(0,b.useMemo)(()=>{let{rows:e}=I.getRowModel();return e},[I.getRowModel().rows,I.getState().columnPinning]),R=(0,b.useMemo)(()=>!t&&!n&&L.length===0,[L,t,n]),ue=(0,b.useMemo)(()=>({title:e,table:I,isEmpty:R,isFetching:t,isRefetching:n,isLoading:r,loadingDisplayRow:i,totalRows:s,fetchMoreData:m,emptyDisplayHeight:h,csvData:g,csvFileName:_,summary:x,showAnalysisPanel:S,description:w,headerActions:E}),[e,I,R,n,t,r,i,s,m,h,I.getState().columnPinning,I.getState().expanded,g,_,x,S,w,E]),z=(0,b.useMemo)(()=>I.getState(),[I.getState()]),B=(0,b.useMemo)(()=>I.getIsAllRowsSelected(),[I.getIsAllRowsSelected()]),V=(0,b.useMemo)(()=>z.rowSelection,[z.rowSelection]),H=(0,b.useMemo)(()=>z.columnPinning,[z.columnPinning]),U=(0,b.useMemo)(()=>I.getLeftHeaderGroups()[0]?.headers||[],[I.getState().columnPinning]),W=(0,b.useMemo)(()=>I.getRightHeaderGroups()[0]?.headers||[],[I.getState().columnPinning]),G=(0,b.useMemo)(()=>I.getTotalSize(),[I.getTotalSize()]),K=(0,b.useCallback)(()=>re(e=>!e),[]),q=(0,b.useMemo)(()=>({isOpen:ne,toggle:K}),[ne,K]);return(0,C.jsx)(me.Provider,{value:q,children:(0,C.jsx)(fe.Provider,{value:le,children:(0,C.jsx)(de.Provider,{value:ue,children:(0,C.jsx)(gt,{innerWrapperId:D,children:(0,C.jsx)(_t,{table:I,innerTableId:te,totalSize:G,children:(0,C.jsx)(vt,{isAllRowsSelected:B,columnPinningState:H,leftPinnedHeaders:U,rightPinnedHeaders:W,onToggleAllRowsSelected:I.toggleAllRowsSelected,children:(0,C.jsx)(yt,{isFetching:t,isRefetching:n,isEmpty:R,rowSelectionState:V,children:(0,C.jsx)(bt,{keyOfClickRow:u,isAllRowsSelected:B,columnPinningState:H,leftPinnedHeaders:U,rightPinnedHeaders:W,onClickRow:d,children:ee})})})})})})})})},St={up:`bg-success`,down:`bg-danger`,neutral:`bg-primary`},Ct=(0,b.memo)(()=>{let{summary:e}=q();return!e||e.length===0?null:(0,C.jsx)(`div`,{"data-slot":`table-summary-bar`,className:`w-full overflow-x-auto px-2 pb-1`,children:(0,C.jsx)(`div`,{className:`grid gap-3`,style:{gridTemplateColumns:`repeat(auto-fill, minmax(200px, 240px))`},children:e.map(e=>{let t=St[e.trend??`neutral`];return(0,C.jsxs)(`div`,{className:`flex flex-col overflow-hidden rounded border border-border bg-card shadow-card`,children:[(0,C.jsx)(`div`,{className:(0,x.cn)(`h-0.75 w-full shrink-0`,t)}),(0,C.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 px-5 py-4`,children:[(0,C.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,C.jsx)(o.Statistic,{value:e.value,prefix:e.prefix,suffix:e.suffix,precision:e.precision,trend:e.trend,size:`xl`,className:`font-bold`}):(0,C.jsx)(`span`,{className:`text-xl font-bold tabular-nums text-text-positive-strong`,children:`—`}),e.description&&(0,C.jsx)(`span`,{className:`text-xs text-text-positive-weak`,children:e.description})]})]},e.label)})})})});Ct.displayName=`UITableSummaryBar`;function wt(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 Tt(e){if(e.length===0)return``;let t=e[0].map(e=>wt(e.label)),n=e.map(e=>e.map(e=>wt(e.value)).join(`,`));return[t.join(`,`),...n].join(`
3
+ `)}function Et(e,t){let n=Tt(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 Dt=({onSearch:e,onChange:t,...n})=>{let r=(0,E.useDebounceCallback)(t=>{e?.(t)},500);return(0,C.jsxs)(`div`,{className:`relative w-full max-w-80 flex-1`,children:[(0,C.jsx)(h.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,C.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,C.jsx)(y.SearchIcon,{size:16})}),(0,C.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,C.jsx)(y.ArrowRightIcon,{size:16,"aria-hidden":`true`})})]})},$=({children:e,disabled:t,onClick:n,className:r,...i})=>(0,C.jsx)(`button`,{type:`button`,disabled:t,className:(0,x.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}),Ot=({onCreate:e,onDownload:t,onRefresh:n})=>{let{table:r,csvData:i,csvFileName:a,title:o,showAnalysisPanel:s}=q(),{isOpen:c,toggle:l}=he(),u=(0,b.useCallback)(()=>{if(t){t();return}if(!i||i.length===0)return;let e=r.getSelectedRowModel().flatRows;Et(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,C.jsxs)(`div`,{className:`flex [&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none`,children:[(0,C.jsx)($,{disabled:!e,onClick:t=>{e?.(),t.stopPropagation(),t.preventDefault()},children:(0,C.jsx)(y.CirclePlus,{})}),(0,C.jsx)($,{disabled:!n,onClick:e=>{n?.(),e.stopPropagation(),e.preventDefault()},children:(0,C.jsx)(y.RefreshCwIcon,{})}),(0,C.jsx)($,{disabled:!d,onClick:e=>{u(),e.stopPropagation(),e.preventDefault()},children:(0,C.jsx)(y.DownloadIcon,{})}),s&&(0,C.jsx)($,{onClick:e=>{l(),e.stopPropagation(),e.preventDefault()},"aria-pressed":c,className:c?`bg-muted-muted text-text-positive`:void 0,children:(0,C.jsx)(y.BarChart2Icon,{})})]})},kt=({children:e})=>{let{title:t,description:n,headerActions:r}=q();return(0,C.jsxs)(`div`,{"data-slot":`table-tooltip`,className:`relative flex w-full flex-col gap-2 px-2 py-0 text-sm`,children:[(0,C.jsxs)(`div`,{className:`flex w-full items-start justify-between gap-4`,children:[(0,C.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,C.jsx)(`h3`,{className:`font-semibold text-base text-text-positive`,children:t}),n&&(0,C.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n})]}),r&&(0,C.jsx)(`div`,{className:`flex items-center gap-2 shrink-0`,children:r})]}),(0,C.jsx)(`div`,{className:`flex w-full flex-1 justify-between gap-x-2`,children:e})]})};kt.displayName=`TableTooltip`,Object.defineProperty(exports,"A",{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,"B",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"C",{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,"D",{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,"E",{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,"F",{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,"H",{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,"I",{enumerable:!0,get:function(){return oe}}),Object.defineProperty(exports,"L",{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,"M",{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,"N",{enumerable:!0,get:function(){return j}}),Object.defineProperty(exports,"O",{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,"P",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"R",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"S",{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,"T",{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,"U",{enumerable:!0,get:function(){return te}}),Object.defineProperty(exports,"V",{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,"W",{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,"_",{enumerable:!0,get:function(){return He}}),Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return xt}}),Object.defineProperty(exports,"b",{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return Xe}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return Ke}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return Ue}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(exports,"j",{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,"k",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return Ye}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return We}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Ot}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return mt}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return Ge}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return Dt}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return et}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return kt}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return Je}}),Object.defineProperty(exports,"v",{enumerable:!0,get:function(){return Ve}}),Object.defineProperty(exports,"w",{enumerable:!0,get:function(){return Me}}),Object.defineProperty(exports,"x",{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,"y",{enumerable:!0,get:function(){return Be}}),Object.defineProperty(exports,"z",{enumerable:!0,get:function(){return ie}});
4
+ //# sourceMappingURL=tables-NiAoBy75.cjs.map