@customafk/lunas-ui 0.2.66 → 0.2.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{analysis-panel-ikcRtzG9.mjs → analysis-panel-BD2QvOth.mjs} +2 -2
- package/dist/{analysis-panel-ikcRtzG9.mjs.map → analysis-panel-BD2QvOth.mjs.map} +1 -1
- package/dist/{analysis-panel-DzsZKA9l.cjs → analysis-panel-UlC7cvO2.cjs} +2 -2
- package/dist/{analysis-panel-DzsZKA9l.cjs.map → analysis-panel-UlC7cvO2.cjs.map} +1 -1
- package/dist/{badge-display-9WXwgQgH.cjs → badge-display-Bs0QeCJt.cjs} +2 -2
- package/dist/{badge-display-9WXwgQgH.cjs.map → badge-display-Bs0QeCJt.cjs.map} +1 -1
- package/dist/{badge-display-Dx-dITLB.mjs → badge-display-Dg5XM66P.mjs} +2 -2
- package/dist/{badge-display-Dx-dITLB.mjs.map → badge-display-Dg5XM66P.mjs.map} +1 -1
- package/dist/{boolean-display-pmzYS-ND.cjs → boolean-display-BnN32_Jd.cjs} +2 -2
- package/dist/{boolean-display-pmzYS-ND.cjs.map → boolean-display-BnN32_Jd.cjs.map} +1 -1
- package/dist/{boolean-display-OVCtvzI1.mjs → boolean-display-DVn3UGuZ.mjs} +2 -2
- package/dist/{boolean-display-OVCtvzI1.mjs.map → boolean-display-DVn3UGuZ.mjs.map} +1 -1
- package/dist/{currency-display-BN1i8jnU.mjs → currency-display-CKLQ_lxN.mjs} +2 -2
- package/dist/{currency-display-BN1i8jnU.mjs.map → currency-display-CKLQ_lxN.mjs.map} +1 -1
- package/dist/{currency-display-B91H66HM.cjs → currency-display-CZ6PJAzu.cjs} +2 -2
- package/dist/{currency-display-B91H66HM.cjs.map → currency-display-CZ6PJAzu.cjs.map} +1 -1
- package/dist/{date-display-odcC9NcB.cjs → date-display-BQOVmN7S.cjs} +2 -2
- package/dist/{date-display-odcC9NcB.cjs.map → date-display-BQOVmN7S.cjs.map} +1 -1
- package/dist/{date-display-BWtvWDHK.mjs → date-display-BrCdJkmq.mjs} +2 -2
- package/dist/{date-display-BWtvWDHK.mjs.map → date-display-BrCdJkmq.mjs.map} +1 -1
- package/dist/{description-display-BubAcFan.mjs → description-display-BQFLzI2g.mjs} +2 -2
- package/dist/{description-display-BubAcFan.mjs.map → description-display-BQFLzI2g.mjs.map} +1 -1
- package/dist/{description-display-CKe0j3q-.cjs → description-display-DnDAB3a1.cjs} +2 -2
- package/dist/{description-display-CKe0j3q-.cjs.map → description-display-DnDAB3a1.cjs.map} +1 -1
- package/dist/{email-display-BLt60GQ1.cjs → email-display-D6ZgA_en.cjs} +2 -2
- package/dist/{email-display-BLt60GQ1.cjs.map → email-display-D6ZgA_en.cjs.map} +1 -1
- package/dist/{email-display-CMme47S9.mjs → email-display-m745lUts.mjs} +2 -2
- package/dist/{email-display-CMme47S9.mjs.map → email-display-m745lUts.mjs.map} +1 -1
- package/dist/features/tables/index.cjs +1 -1
- package/dist/features/tables/index.mjs +1 -1
- package/dist/{filter-Cmg6SHMu.cjs → filter-Bb9_Blk3.cjs} +2 -2
- package/dist/{filter-Cmg6SHMu.cjs.map → filter-Bb9_Blk3.cjs.map} +1 -1
- package/dist/{filter-CMzD5h0M.mjs → filter-CG6wQHRd.mjs} +2 -2
- package/dist/{filter-CMzD5h0M.mjs.map → filter-CG6wQHRd.mjs.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{list-display-BuRCso6J.mjs → list-display-8Jx6G5nk.mjs} +2 -2
- package/dist/{list-display-BuRCso6J.mjs.map → list-display-8Jx6G5nk.mjs.map} +1 -1
- package/dist/{list-display-DEU6yFa9.cjs → list-display-BQjNDttz.cjs} +2 -2
- package/dist/{list-display-DEU6yFa9.cjs.map → list-display-BQjNDttz.cjs.map} +1 -1
- package/dist/{name-display-DXMZ8Lug.mjs → name-display-BBJoNnRG.mjs} +2 -2
- package/dist/{name-display-DXMZ8Lug.mjs.map → name-display-BBJoNnRG.mjs.map} +1 -1
- package/dist/{name-display-B6X52ip_.cjs → name-display-scAMZdyr.cjs} +2 -2
- package/dist/{name-display-B6X52ip_.cjs.map → name-display-scAMZdyr.cjs.map} +1 -1
- package/dist/{progress-display-Bp0xVhln.cjs → progress-display-B45TkUcr.cjs} +2 -2
- package/dist/{progress-display-Bp0xVhln.cjs.map → progress-display-B45TkUcr.cjs.map} +1 -1
- package/dist/{progress-display-DYj7vAe9.mjs → progress-display-DvV-YhkE.mjs} +2 -2
- package/dist/{progress-display-DYj7vAe9.mjs.map → progress-display-DvV-YhkE.mjs.map} +1 -1
- package/dist/{statistic-BUGIRhL9.cjs → statistic-BHCSCw9Q.cjs} +2 -2
- package/dist/{statistic-BUGIRhL9.cjs.map → statistic-BHCSCw9Q.cjs.map} +1 -1
- package/dist/{statistic-Ug9Zgi3N.mjs → statistic-DwiUKz02.mjs} +2 -2
- package/dist/{statistic-Ug9Zgi3N.mjs.map → statistic-DwiUKz02.mjs.map} +1 -1
- package/dist/{status-display-B-6KKttX.mjs → status-display-BKe0EupF.mjs} +2 -2
- package/dist/{status-display-B-6KKttX.mjs.map → status-display-BKe0EupF.mjs.map} +1 -1
- package/dist/{status-display-DkI9UwAu.cjs → status-display-BRJX53bQ.cjs} +2 -2
- package/dist/{status-display-DkI9UwAu.cjs.map → status-display-BRJX53bQ.cjs.map} +1 -1
- package/dist/{summary-bar-CZHeAORf.mjs → summary-bar-ByYm7uWR.mjs} +2 -2
- package/dist/{summary-bar-CZHeAORf.mjs.map → summary-bar-ByYm7uWR.mjs.map} +1 -1
- package/dist/{summary-bar-DTFVpBZn.cjs → summary-bar-DjdtmsIY.cjs} +2 -2
- package/dist/{summary-bar-DTFVpBZn.cjs.map → summary-bar-DjdtmsIY.cjs.map} +1 -1
- package/dist/{tables-UikqnT9q.mjs → tables-9d53sH9E.mjs} +2 -2
- package/dist/{tables-UikqnT9q.mjs.map → tables-9d53sH9E.mjs.map} +1 -1
- package/dist/{tables-7aC9WFs9.cjs → tables-B1O9qy-m.cjs} +2 -2
- package/dist/{tables-7aC9WFs9.cjs.map → tables-B1O9qy-m.cjs.map} +1 -1
- package/dist/{tooltip-octglTPf.cjs → tooltip-DVK6xfZ1.cjs} +2 -2
- package/dist/{tooltip-octglTPf.cjs.map → tooltip-DVK6xfZ1.cjs.map} +1 -1
- package/dist/{tooltip-B-yLj6pe.mjs → tooltip-lvpW5dMi.mjs} +2 -2
- package/dist/{tooltip-B-yLj6pe.mjs.map → tooltip-lvpW5dMi.mjs.map} +1 -1
- package/package.json +5 -1
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Button as e}from"./ui/button.mjs";import{Paragraph as t,paragraphVariants as n}from"./typography/paragraph.mjs";import{Card as r,CardAction as i,CardContent as a,CardDescription as o,CardFooter as s,CardHeader as c,CardTitle as l}from"./ui/card.mjs";import{Skeleton as u}from"./ui/skeleton.mjs";import{Image as d}from"./ui/image.mjs";import{GridProductCard as f}from"./cards/grid-product-card.mjs";import{ProductCard as p}from"./cards/product-card.mjs";import{SimpleCard as m}from"./cards/simple-card.mjs";import{Flex as h}from"./layouts/flex.mjs";import{CountryDisplay as g}from"./data-display/country.mjs";import{DataList as _,DataListItem as v}from"./data-display/data-list.mjs";import{t as y}from"./date-Nsz0Pewe.mjs";import{Badge as b,badgeVariants as x}from"./ui/badge.mjs";import{Tooltip as S,TooltipContent as C,TooltipProvider as w,TooltipTrigger as T}from"./ui/tooltip.mjs";import{DateTooltip as E}from"./data-display/date-tooltip.mjs";import{EmptyDisplay as D}from"./data-display/empty.mjs";import{NameDisplay as O}from"./data-display/name.mjs";import{PhoneNumberDisplay as k}from"./data-display/phone-number.mjs";import{RoleBadge as A}from"./data-display/role-badge.mjs";import{Statistic as j}from"./data-display/statistic.mjs";import{Avatar as M,AvatarFallback as N,AvatarImage as P}from"./ui/avatar.mjs";import{UserDataDisplay as F}from"./data-display/user.mjs";import{AlertDialog as I,AlertDialogAction as L,AlertDialogCancel as R,AlertDialogContent as z,AlertDialogDescription as B,AlertDialogFooter as V,AlertDialogHeader as H,AlertDialogOverlay as U,AlertDialogPortal as W,AlertDialogTitle as G,AlertDialogTrigger as K}from"./ui/alert-dialog.mjs";import{ConfirmDialog as q}from"./dialogs/confirm-dialog.mjs";import{Title as J}from"./typography/title.mjs";import{Sheet as Y,SheetClose as X,SheetContent as Z,SheetDescription as Q,SheetFooter as $,SheetHeader as ee,SheetTitle as te,SheetTrigger as ne}from"./ui/sheet.mjs";import{DetailDialog as re}from"./dialogs/detail-dialog/index.mjs";import{ErrorDialog as ie}from"./dialogs/error-dialog.mjs";import{Dialog as ae,DialogClose as oe,DialogContent as se,DialogDescription as ce,DialogFooter as le,DialogHeader as ue,DialogOverlay as de,DialogPortal as fe,DialogTitle as pe,DialogTrigger as me}from"./ui/dialog.mjs";import{LoadingDialog as he}from"./dialogs/loading-dialog.mjs";import{ActivityHeatmapChart as ge,CandlestickChart as _e,ConversionFunnelChart as ve,CorrelationScatterChart as ye,DonutChart as be,GainLossBarChart as xe,IndexedPerformanceLineChart as Se,MetricRadarChart as Ce,MirroredBarChart as we,OrdersBarChart as Te,PortfolioAllocationTreemap as Ee,PriceRangeAreaChart as De,RevenueAreaChart as Oe,RevenueOrdersComposedChart as ke,SalesTargetRadialChart as Ae,SankeyFlowChart as je,SparklineChart as Me,StackedAreaChart as Ne,TopProductsBarChart as Pe,VolumeBarChart as Fe,WaterfallChart as Ie,computeIndexedSeries as Le,formatCompactNumber as Re,formatCurrency as ze,formatPercent as Be,formatSignedPercent as Ve,getChartColor as He,getDirectionColor as Ue,toDateLabel as We}from"./features/charts/index.mjs";import{Description as Ge,DescriptionBadge as Ke,DescriptionBoolean as qe,DescriptionCopy as Je,DescriptionDate as Ye,DescriptionEmpty as Xe,DescriptionHeader as Ze,DescriptionImages as Qe,DescriptionItem as $e,DescriptionLink as et,DescriptionLongText as tt,DescriptionName as nt,DescriptionNumberPhone as rt,DescriptionSection as it,DescriptionStatistic as at,DescriptionStatus as ot,DescriptionTagList as st,DescriptionUser as ct}from"./features/descriptions/index.mjs";import{Command as lt,CommandDialog as ut,CommandEmpty as dt,CommandGroup as ft,CommandInput as pt,CommandItem as mt,CommandList as ht,CommandSeparator as gt,CommandShortcut as _t}from"./ui/command.mjs";import{t as vt}from"./search-modal-Cdmi2iyV.mjs";import{A as yt,B as bt,C as xt,D as St,E as Ct,F as wt,H as Tt,I as Et,L as Dt,M as Ot,N as kt,O as At,P as jt,R as Mt,S as Nt,T as Pt,U as Ft,V as It,W as Lt,Y as Rt,_ as zt,a as Bt,b as Vt,c as Ht,d as Ut,f as Wt,g as Gt,h as Kt,i as qt,j as Jt,k as Yt,l as Xt,m as Zt,n as Qt,o as $t,p as en,r as tn,s as nn,t as rn,u as an,v as on,w as sn,x as cn,y as ln,z as un}from"./tables-UikqnT9q.mjs";import{Checkbox as dn}from"./ui/checkbox.mjs";import{DropdownMenu as fn,DropdownMenuCheckboxItem as pn,DropdownMenuContent as mn,DropdownMenuGroup as hn,DropdownMenuItem as gn,DropdownMenuLabel as _n,DropdownMenuPortal as vn,DropdownMenuRadioGroup as yn,DropdownMenuRadioItem as bn,DropdownMenuSeparator as xn,DropdownMenuShortcut as Sn,DropdownMenuSub as Cn,DropdownMenuSubContent as wn,DropdownMenuSubTrigger as Tn,DropdownMenuTrigger as En}from"./ui/dropdown-menu.mjs";import{Spinner as Dn}from"./ui/spinner.mjs";import{ResizableHandle as On,ResizablePanel as kn,ResizablePanelGroup as An}from"./ui/resizable.mjs";import{A as jn,B as Mn,C as Nn,D as Pn,E as Fn,F as In,G as Ln,H as Rn,I as zn,K as Bn,L as Vn,M as Hn,N as Un,O as Wn,P as Gn,R as Kn,S as qn,T as Jn,U as Yn,V as Xn,W as Zn,_ as Qn,a as $n,b as er,c as tr,d as nr,f as rr,g as ir,h as ar,i as or,j as sr,k as cr,l as lr,m as ur,n as dr,o as fr,p as pr,r as mr,s as hr,t as gr,u as _r,v as vr,w as yr,x as br,y as xr,z as Sr}from"./tanstack-form-PC9YNeeo.mjs";import{Popover as Cr,PopoverAnchor as wr,PopoverClose as Tr,PopoverContent as Er,PopoverTrigger as Dr}from"./ui/popover.mjs";import{n as Or,t as kr}from"./text-editor-BYE2-G5K.mjs";import{Input as Ar}from"./ui/input.mjs";import{Separator as jr}from"./ui/separator.mjs";import{t as Mr}from"./cms-layout-ePySxIQN.mjs";import{t as Nr}from"./payment-layout-DS5CEH1h.mjs";import{Grid as Pr}from"./layouts/grid.mjs";import{FeatureDeveloping as Fr}from"./pages/FeatureDeveloping.mjs";import{FeatureFixing as Ir}from"./pages/FeatureFixing.mjs";import{NotAuthorized as Lr}from"./pages/NotAuthorized.mjs";import{NotFound as Rr}from"./pages/NotFound.mjs";import{n as zr,r as Br,t as Vr}from"./alert-OD1KJTEV.mjs";import{Label as Hr}from"./ui/label.mjs";import{LoginPage as Ur}from"./pages/LoginPage.mjs";import{RegisterPage as Wr}from"./pages/RegisterPage.mjs";import{InputOTP as Gr,InputOTPGroup as Kr,InputOTPSeparator as qr,InputOTPSlot as Jr}from"./ui/input-otp.mjs";import{VerifyEmailPage as Yr}from"./pages/VerifyEmailPage.mjs";import{Google as Xr}from"./systems/google.mjs";import{AddNewBtn as Zr}from"./ui/buttons/add-new.mjs";import{EditBtn as Qr}from"./ui/buttons/edit.mjs";import{RefreshBtn as $r}from"./ui/buttons/refresh.mjs";import{TrashBtn as ei}from"./ui/buttons/trash.mjs";import{UploadImageBtn as ti}from"./ui/buttons/upload-image.mjs";import{SearchInput as ni}from"./ui/inputs/search-input.mjs";import{AspectRatio as ri}from"./ui/aspect-ratio.mjs";import{Breadcrumb as ii,BreadcrumbEllipsis as ai,BreadcrumbItem as oi,BreadcrumbLink as si,BreadcrumbList as ci,BreadcrumbPage as li,BreadcrumbSeparator as ui}from"./ui/breadcrumb.mjs";import{ButtonGroup as di,ButtonGroupSeparator as fi,ButtonGroupText as pi,buttonGroupVariants as mi}from"./ui/button-group.mjs";import{Calendar as hi,CalendarDayButton as gi}from"./ui/calendar.mjs";import{Carousel as _i,CarouselContent as vi,CarouselItem as yi,CarouselNext as bi,CarouselPrevious as xi}from"./ui/carousel.mjs";import{ChartContainer as Si,ChartLegend as Ci,ChartLegendContent as wi,ChartStyle as Ti,ChartTooltip as Ei,ChartTooltipContent as Di,useChart as Oi}from"./ui/chart.mjs";import{Collapsible as ki,CollapsibleContent as Ai,CollapsibleTrigger as ji}from"./ui/collapsible.mjs";import{ContextMenu as Mi,ContextMenuCheckboxItem as Ni,ContextMenuContent as Pi,ContextMenuGroup as Fi,ContextMenuItem as Ii,ContextMenuLabel as Li,ContextMenuPortal as Ri,ContextMenuRadioGroup as zi,ContextMenuRadioItem as Bi,ContextMenuSeparator as Vi,ContextMenuShortcut as Hi,ContextMenuSub as Ui,ContextMenuSubContent as Wi,ContextMenuSubTrigger as Gi,ContextMenuTrigger as Ki}from"./ui/context-menu.mjs";import{Drawer as qi,DrawerClose as Ji,DrawerContent as Yi,DrawerDescription as Xi,DrawerFooter as Zi,DrawerHeader as Qi,DrawerOverlay as $i,DrawerPortal as ea,DrawerTitle as ta,DrawerTrigger as na}from"./ui/drawer.mjs";import{Empty as ra,EmptyContent as ia,EmptyDescription as aa,EmptyHeader as oa,EmptyMedia as sa,EmptyTitle as ca}from"./ui/empty.mjs";import{Progress as la}from"./ui/progress.mjs";import{FileUploader as ua}from"./ui/file-uploader.mjs";import{Form as da,FormControl as fa,FormDescription as pa,FormField as ma,FormItem as ha,FormLabel as ga,FormMessage as _a,useFormField as va}from"./ui/form.mjs";import{HoverCard as ya,HoverCardContent as ba,HoverCardTrigger as xa}from"./ui/hover-card.mjs";import{Item as Sa,ItemActions as Ca,ItemContent as wa,ItemDescription as Ta,ItemFooter as Ea,ItemGroup as Da,ItemHeader as Oa,ItemMedia as ka,ItemSeparator as Aa,ItemTitle as ja}from"./ui/item.mjs";import{Menubar as Ma,MenubarCheckboxItem as Na,MenubarContent as Pa,MenubarGroup as Fa,MenubarItem as Ia,MenubarLabel as La,MenubarMenu as Ra,MenubarPortal as za,MenubarRadioGroup as Ba,MenubarRadioItem as Va,MenubarSeparator as Ha,MenubarShortcut as Ua,MenubarSub as Wa,MenubarSubContent as Ga,MenubarSubTrigger as Ka,MenubarTrigger as qa}from"./ui/menubar.mjs";import{MultipleSelector as Ja,useDebounce as Ya}from"./ui/multi-select.mjs";import{NavigationMenu as Xa,NavigationMenuContent as Za,NavigationMenuIndicator as Qa,NavigationMenuItem as $a,NavigationMenuLink as eo,NavigationMenuList as to,NavigationMenuTrigger as no,NavigationMenuViewport as ro,navigationMenuTriggerStyle as io}from"./ui/navigation-menu.mjs";import{Pagination as ao,PaginationContent as oo,PaginationEllipsis as so,PaginationItem as co,PaginationLink as lo,PaginationNext as uo,PaginationPrevious as fo}from"./ui/pagination.mjs";import{RadioGroup as po,RadioGroupItem as mo}from"./ui/radio-group.mjs";import{ScrollArea as ho,ScrollBar as go}from"./ui/scroll-area.mjs";import{Select as _o,SelectContent as vo,SelectGroup as yo,SelectItem as bo,SelectLabel as xo,SelectSeparator as So,SelectTrigger as Co,SelectValue as wo}from"./ui/select.mjs";import{Slider as To}from"./ui/slider.mjs";import{Toaster as Eo,toast as Do}from"./ui/sonner.mjs";import{Switch as Oo}from"./ui/switch.mjs";import{Table as ko,TableBody as Ao,TableCaption as jo,TableCell as Mo,TableFooter as No,TableHead as Po,TableHeader as Fo,TableRow as Io}from"./ui/table.mjs";import{Tabs as Lo,TabsContent as Ro,TabsList as zo,TabsTrigger as Bo}from"./ui/tabs.mjs";import{Textarea as Vo}from"./ui/textarea.mjs";import{Toggle as Ho,toggleVariants as Uo}from"./ui/toggle.mjs";import{ToggleGroup as Wo,ToggleGroupItem as Go}from"./ui/toggle-group.mjs";export{ge as ActivityHeatmapChart,Zr as AddNewBtn,Vr as Alert,zr as AlertDescription,I as AlertDialog,L as AlertDialogAction,R as AlertDialogCancel,z as AlertDialogContent,B as AlertDialogDescription,V as AlertDialogFooter,H as AlertDialogHeader,U as AlertDialogOverlay,W as AlertDialogPortal,G as AlertDialogTitle,K as AlertDialogTrigger,Br as AlertTitle,gr as ArrayCol,dr as ArrayHeaderRow,ri as AspectRatio,M as Avatar,N as AvatarFallback,P as AvatarImage,b as Badge,ii as Breadcrumb,ai as BreadcrumbEllipsis,oi as BreadcrumbItem,si as BreadcrumbLink,ci as BreadcrumbList,li as BreadcrumbPage,ui as BreadcrumbSeparator,e as Button,di as ButtonGroup,fi as ButtonGroupSeparator,pi as ButtonGroupText,Mr as CMSLayout,hi as Calendar,gi as CalendarDayButton,_e as CandlestickChart,r as Card,i as CardAction,a as CardContent,o as CardDescription,s as CardFooter,c as CardHeader,l as CardTitle,_i as Carousel,vi as CarouselContent,yi as CarouselItem,bi as CarouselNext,xi as CarouselPrevious,Si as ChartContainer,Ci as ChartLegend,wi as ChartLegendContent,Ti as ChartStyle,Ei as ChartTooltip,Di as ChartTooltipContent,dn as Checkbox,mr as CheckboxField,ki as Collapsible,Ai as CollapsibleContent,ji as CollapsibleTrigger,or as ComboboxField,lt as Command,ut as CommandDialog,dt as CommandEmpty,ft as CommandGroup,pt as CommandInput,mt as CommandItem,ht as CommandList,gt as CommandSeparator,_t as CommandShortcut,q as ConfirmDialog,Mi as ContextMenu,Ni as ContextMenuCheckboxItem,Pi as ContextMenuContent,Fi as ContextMenuGroup,Ii as ContextMenuItem,Li as ContextMenuLabel,Ri as ContextMenuPortal,zi as ContextMenuRadioGroup,Bi as ContextMenuRadioItem,Vi as ContextMenuSeparator,Hi as ContextMenuShortcut,Ui as ContextMenuSub,Wi as ContextMenuSubContent,Gi as ContextMenuSubTrigger,Ki as ContextMenuTrigger,ve as ConversionFunnelChart,ye as CorrelationScatterChart,g as CountryDisplay,_ as DataList,v as DataListItem,y as DateDisplay,$n as DateField,E as DateTooltip,Ge as Description,Ke as DescriptionBadge,qe as DescriptionBoolean,Je as DescriptionCopy,Ye as DescriptionDate,Xe as DescriptionEmpty,Ze as DescriptionHeader,Qe as DescriptionImages,$e as DescriptionItem,et as DescriptionLink,tt as DescriptionLongText,nt as DescriptionName,rt as DescriptionNumberPhone,it as DescriptionSection,at as DescriptionStatistic,ot as DescriptionStatus,st as DescriptionTagList,ct as DescriptionUser,re as DetailDialog,ae as Dialog,oe as DialogClose,se as DialogContent,ce as DialogDescription,le as DialogFooter,ue as DialogHeader,de as DialogOverlay,fe as DialogPortal,pe as DialogTitle,me as DialogTrigger,be as DonutChart,qi as Drawer,Ji as DrawerClose,Yi as DrawerContent,Xi as DrawerDescription,Zi as DrawerFooter,Qi as DrawerHeader,$i as DrawerOverlay,ea as DrawerPortal,ta as DrawerTitle,na as DrawerTrigger,fn as DropdownMenu,pn as DropdownMenuCheckboxItem,mn as DropdownMenuContent,hn as DropdownMenuGroup,gn as DropdownMenuItem,_n as DropdownMenuLabel,vn as DropdownMenuPortal,yn as DropdownMenuRadioGroup,bn as DropdownMenuRadioItem,xn as DropdownMenuSeparator,Sn as DropdownMenuShortcut,Cn as DropdownMenuSub,wn as DropdownMenuSubContent,Tn as DropdownMenuSubTrigger,En as DropdownMenuTrigger,Qr as EditBtn,fr as EmailField,ra as Empty,ia as EmptyContent,aa as EmptyDescription,D as EmptyDisplay,oa as EmptyHeader,sa as EmptyMedia,ca as EmptyTitle,ie as ErrorDialog,Fr as FeatureDeveloping,Ir as FeatureFixing,hr as Field,tr as FieldContent,lr as FieldContentMain,_r as FieldError,nr as FieldGroup,rr as FieldLabel,pr as FieldSeparator,ua as FileUploader,h as Flex,da as Form,fa as FormControl,pa as FormDescription,ma as FormField,ha as FormItem,ga as FormLabel,_a as FormMessage,xe as GainLossBarChart,Xr as Google,Pr as Grid,f as GridProductCard,ya as HoverCard,ba as HoverCardContent,xa as HoverCardTrigger,d as Image,Se as IndexedPerformanceLineChart,Ar as Input,Gr as InputOTP,Kr as InputOTPGroup,qr as InputOTPSeparator,Jr as InputOTPSlot,Sa as Item,Ca as ItemActions,wa as ItemContent,Ta as ItemDescription,Ea as ItemFooter,Da as ItemGroup,Oa as ItemHeader,ka as ItemMedia,Aa as ItemSeparator,ja as ItemTitle,Hr as Label,he as LoadingDialog,Ur as LoginPage,Ma as Menubar,Na as MenubarCheckboxItem,Pa as MenubarContent,Fa as MenubarGroup,Ia as MenubarItem,La as MenubarLabel,Ra as MenubarMenu,za as MenubarPortal,Ba as MenubarRadioGroup,Va as MenubarRadioItem,Ha as MenubarSeparator,Ua as MenubarShortcut,Wa as MenubarSub,Ga as MenubarSubContent,Ka as MenubarSubTrigger,qa as MenubarTrigger,Ce as MetricRadarChart,we as MirroredBarChart,Ja as MultipleSelector,O as NameDisplay,Xa as NavigationMenu,Za as NavigationMenuContent,Qa as NavigationMenuIndicator,$a as NavigationMenuItem,eo as NavigationMenuLink,to as NavigationMenuList,no as NavigationMenuTrigger,ro as NavigationMenuViewport,Lr as NotAuthorized,Rr as NotFound,ur as NumberField,Te as OrdersBarChart,ao as Pagination,oo as PaginationContent,so as PaginationEllipsis,co as PaginationItem,lo as PaginationLink,uo as PaginationNext,fo as PaginationPrevious,t as Paragraph,ar as PasswordField,Nr as PaymentLayout,k as PhoneNumberDisplay,Cr as Popover,wr as PopoverAnchor,Tr as PopoverClose,Er as PopoverContent,Dr as PopoverTrigger,Ee as PortfolioAllocationTreemap,De as PriceRangeAreaChart,p as ProductCard,la as Progress,po as RadioGroup,ir as RadioGroupField,mo as RadioGroupItem,$r as RefreshBtn,Wr as RegisterPage,On as ResizableHandle,kn as ResizablePanel,An as ResizablePanelGroup,Oe as RevenueAreaChart,ke as RevenueOrdersComposedChart,A as RoleBadge,Ae as SalesTargetRadialChart,je as SankeyFlowChart,ho as ScrollArea,go as ScrollBar,ni as SearchInput,vt as SearchModal,_o as Select,vo as SelectContent,Qn as SelectField,yo as SelectGroup,bo as SelectItem,xo as SelectLabel,So as SelectSeparator,Co as SelectTrigger,wo as SelectValue,jr as Separator,Y as Sheet,X as SheetClose,Z as SheetContent,Q as SheetDescription,$ as SheetFooter,ee as SheetHeader,te as SheetTitle,ne as SheetTrigger,vr as SimpleArrayField,xr as SimpleBooleanField,m as SimpleCard,er as SimpleComboboxField,br as SimpleDateField,qn as SimpleEmailField,Nn as SimpleNumberField,yr as SimplePasswordField,Jn as SimpleRadioGroupField,Fn as SimpleSelectField,Pn as SimpleTextField,Wn as SimpleTextareaField,u as Skeleton,To as Slider,Me as SparklineChart,Dn as Spinner,Ne as StackedAreaChart,j as Statistic,Oo as Switch,cr as SwitchField,ko as Table,Ao as TableBody,jo as TableCaption,Mo as TableCell,No as TableFooter,Po as TableHead,Fo as TableHeader,Io as TableRow,Lo as Tabs,Ro as TabsContent,zo as TabsList,Bo as TabsTrigger,jn as TanStackActionSubmit,sr as TanStackActionsForm,Hn as TanStackCardForm,Un as TanStackContainerForm,Gn as TanStackDialogForm,In as TanStackFieldGroup,zn as TanStackPopoverForm,Vn as TanStackSectionForm,Kn as TanStackTitleField,kr as TextEditor,Sr as TextEditorField,Or as TextEditorToolbar,Mn as TextField,Vo as Textarea,Xn as TextareaField,J as Title,Eo as Toaster,Ho as Toggle,Wo as ToggleGroup,Go as ToggleGroupItem,S as Tooltip,C as TooltipContent,w as TooltipProvider,T as TooltipTrigger,Pe as TopProductsBarChart,ei as TrashBtn,rn as UITableAnalysisPanel,Qt as UITableAvatarNameDisplay,tn as UITableBadgeDisplay,Lt as UITableBody,qt as UITableBooleanDisplay,Ft as UITableCell,Tt as UITableCellActions,It as UITableCellSelect,St as UITableContainer,Bt as UITableCurrencyDisplay,$t as UITableDateDisplay,nn as UITableDescriptionDisplay,Ht as UITableEditButton,Xt as UITableEmailDisplay,Rt as UITableEmpty,bt as UITableEmptyDisplay,an as UITableFilter,un as UITableFooter,Mt as UITableFooterRow,Dt as UITableHead,wt as UITableHeadCell,Et as UITableHeadCellOption,jt as UITableHeadCellSelect,kt as UITableHeadRow,Ot as UITableInnerTable,Jt as UITableInnerWrapper,Ut as UITableListDisplay,yt as UITableLoadMore,Wt as UITableMoreButton,en as UITableNameDisplay,Zt as UITablePermalink,Kt as UITablePhoneNumberDisplay,Gt as UITableProgressDisplay,Ct as UITableProvider,zt as UITableRemoveButton,Yt as UITableRow,on as UITableStatisticDisplay,ln as UITableStatusDisplay,Vt as UITableSummaryBar,cn as UITableToggleButton,Nt as UITableTooltip,xt as UITableTooltipActions,sn as UITableTooltipFilter,Pt as UITableUserDataDisplay,At as UITableWrapper,ti as UploadImageBtn,F as UserDataDisplay,Yr as VerifyEmailPage,Fe as VolumeBarChart,Ie as WaterfallChart,x as badgeVariants,mi as buttonGroupVariants,Le as computeIndexedSeries,Re as formatCompactNumber,ze as formatCurrency,Be as formatPercent,Ve as formatSignedPercent,He as getChartColor,Ue as getDirectionColor,io as navigationMenuTriggerStyle,n as paragraphVariants,We as toDateLabel,Do as toast,Uo as toggleVariants,Oi as useChart,Ya as useDebounce,va as useFormField,Ln as useTanStackFieldContext,Rn as useTanStackForm,Bn as useTanStackFormContext,Yn as withTanStackFieldGroup,Zn as withTanStackForm};
|
|
1
|
+
import{Button as e}from"./ui/button.mjs";import{Paragraph as t,paragraphVariants as n}from"./typography/paragraph.mjs";import{Card as r,CardAction as i,CardContent as a,CardDescription as o,CardFooter as s,CardHeader as c,CardTitle as l}from"./ui/card.mjs";import{Skeleton as u}from"./ui/skeleton.mjs";import{Image as d}from"./ui/image.mjs";import{GridProductCard as f}from"./cards/grid-product-card.mjs";import{ProductCard as p}from"./cards/product-card.mjs";import{SimpleCard as m}from"./cards/simple-card.mjs";import{Flex as h}from"./layouts/flex.mjs";import{CountryDisplay as g}from"./data-display/country.mjs";import{DataList as _,DataListItem as v}from"./data-display/data-list.mjs";import{t as y}from"./date-Nsz0Pewe.mjs";import{Badge as b,badgeVariants as x}from"./ui/badge.mjs";import{Tooltip as S,TooltipContent as C,TooltipProvider as w,TooltipTrigger as T}from"./ui/tooltip.mjs";import{DateTooltip as E}from"./data-display/date-tooltip.mjs";import{EmptyDisplay as D}from"./data-display/empty.mjs";import{NameDisplay as O}from"./data-display/name.mjs";import{PhoneNumberDisplay as k}from"./data-display/phone-number.mjs";import{RoleBadge as A}from"./data-display/role-badge.mjs";import{Statistic as j}from"./data-display/statistic.mjs";import{Avatar as M,AvatarFallback as N,AvatarImage as P}from"./ui/avatar.mjs";import{UserDataDisplay as F}from"./data-display/user.mjs";import{AlertDialog as I,AlertDialogAction as L,AlertDialogCancel as R,AlertDialogContent as z,AlertDialogDescription as B,AlertDialogFooter as V,AlertDialogHeader as H,AlertDialogOverlay as U,AlertDialogPortal as W,AlertDialogTitle as G,AlertDialogTrigger as K}from"./ui/alert-dialog.mjs";import{ConfirmDialog as q}from"./dialogs/confirm-dialog.mjs";import{Title as J}from"./typography/title.mjs";import{Sheet as Y,SheetClose as X,SheetContent as Z,SheetDescription as Q,SheetFooter as $,SheetHeader as ee,SheetTitle as te,SheetTrigger as ne}from"./ui/sheet.mjs";import{DetailDialog as re}from"./dialogs/detail-dialog/index.mjs";import{ErrorDialog as ie}from"./dialogs/error-dialog.mjs";import{Dialog as ae,DialogClose as oe,DialogContent as se,DialogDescription as ce,DialogFooter as le,DialogHeader as ue,DialogOverlay as de,DialogPortal as fe,DialogTitle as pe,DialogTrigger as me}from"./ui/dialog.mjs";import{LoadingDialog as he}from"./dialogs/loading-dialog.mjs";import{ActivityHeatmapChart as ge,CandlestickChart as _e,ConversionFunnelChart as ve,CorrelationScatterChart as ye,DonutChart as be,GainLossBarChart as xe,IndexedPerformanceLineChart as Se,MetricRadarChart as Ce,MirroredBarChart as we,OrdersBarChart as Te,PortfolioAllocationTreemap as Ee,PriceRangeAreaChart as De,RevenueAreaChart as Oe,RevenueOrdersComposedChart as ke,SalesTargetRadialChart as Ae,SankeyFlowChart as je,SparklineChart as Me,StackedAreaChart as Ne,TopProductsBarChart as Pe,VolumeBarChart as Fe,WaterfallChart as Ie,computeIndexedSeries as Le,formatCompactNumber as Re,formatCurrency as ze,formatPercent as Be,formatSignedPercent as Ve,getChartColor as He,getDirectionColor as Ue,toDateLabel as We}from"./features/charts/index.mjs";import{Description as Ge,DescriptionBadge as Ke,DescriptionBoolean as qe,DescriptionCopy as Je,DescriptionDate as Ye,DescriptionEmpty as Xe,DescriptionHeader as Ze,DescriptionImages as Qe,DescriptionItem as $e,DescriptionLink as et,DescriptionLongText as tt,DescriptionName as nt,DescriptionNumberPhone as rt,DescriptionSection as it,DescriptionStatistic as at,DescriptionStatus as ot,DescriptionTagList as st,DescriptionUser as ct}from"./features/descriptions/index.mjs";import{Command as lt,CommandDialog as ut,CommandEmpty as dt,CommandGroup as ft,CommandInput as pt,CommandItem as mt,CommandList as ht,CommandSeparator as gt,CommandShortcut as _t}from"./ui/command.mjs";import{t as vt}from"./search-modal-Cdmi2iyV.mjs";import{A as yt,B as bt,C as xt,D as St,E as Ct,F as wt,H as Tt,I as Et,L as Dt,M as Ot,N as kt,O as At,P as jt,R as Mt,S as Nt,T as Pt,U as Ft,V as It,W as Lt,Y as Rt,_ as zt,a as Bt,b as Vt,c as Ht,d as Ut,f as Wt,g as Gt,h as Kt,i as qt,j as Jt,k as Yt,l as Xt,m as Zt,n as Qt,o as $t,p as en,r as tn,s as nn,t as rn,u as an,v as on,w as sn,x as cn,y as ln,z as un}from"./tables-9d53sH9E.mjs";import{Checkbox as dn}from"./ui/checkbox.mjs";import{DropdownMenu as fn,DropdownMenuCheckboxItem as pn,DropdownMenuContent as mn,DropdownMenuGroup as hn,DropdownMenuItem as gn,DropdownMenuLabel as _n,DropdownMenuPortal as vn,DropdownMenuRadioGroup as yn,DropdownMenuRadioItem as bn,DropdownMenuSeparator as xn,DropdownMenuShortcut as Sn,DropdownMenuSub as Cn,DropdownMenuSubContent as wn,DropdownMenuSubTrigger as Tn,DropdownMenuTrigger as En}from"./ui/dropdown-menu.mjs";import{Spinner as Dn}from"./ui/spinner.mjs";import{ResizableHandle as On,ResizablePanel as kn,ResizablePanelGroup as An}from"./ui/resizable.mjs";import{A as jn,B as Mn,C as Nn,D as Pn,E as Fn,F as In,G as Ln,H as Rn,I as zn,K as Bn,L as Vn,M as Hn,N as Un,O as Wn,P as Gn,R as Kn,S as qn,T as Jn,U as Yn,V as Xn,W as Zn,_ as Qn,a as $n,b as er,c as tr,d as nr,f as rr,g as ir,h as ar,i as or,j as sr,k as cr,l as lr,m as ur,n as dr,o as fr,p as pr,r as mr,s as hr,t as gr,u as _r,v as vr,w as yr,x as br,y as xr,z as Sr}from"./tanstack-form-PC9YNeeo.mjs";import{Popover as Cr,PopoverAnchor as wr,PopoverClose as Tr,PopoverContent as Er,PopoverTrigger as Dr}from"./ui/popover.mjs";import{n as Or,t as kr}from"./text-editor-BYE2-G5K.mjs";import{Input as Ar}from"./ui/input.mjs";import{Separator as jr}from"./ui/separator.mjs";import{t as Mr}from"./cms-layout-ePySxIQN.mjs";import{t as Nr}from"./payment-layout-DS5CEH1h.mjs";import{Grid as Pr}from"./layouts/grid.mjs";import{FeatureDeveloping as Fr}from"./pages/FeatureDeveloping.mjs";import{FeatureFixing as Ir}from"./pages/FeatureFixing.mjs";import{NotAuthorized as Lr}from"./pages/NotAuthorized.mjs";import{NotFound as Rr}from"./pages/NotFound.mjs";import{n as zr,r as Br,t as Vr}from"./alert-OD1KJTEV.mjs";import{Label as Hr}from"./ui/label.mjs";import{LoginPage as Ur}from"./pages/LoginPage.mjs";import{RegisterPage as Wr}from"./pages/RegisterPage.mjs";import{InputOTP as Gr,InputOTPGroup as Kr,InputOTPSeparator as qr,InputOTPSlot as Jr}from"./ui/input-otp.mjs";import{VerifyEmailPage as Yr}from"./pages/VerifyEmailPage.mjs";import{Google as Xr}from"./systems/google.mjs";import{AddNewBtn as Zr}from"./ui/buttons/add-new.mjs";import{EditBtn as Qr}from"./ui/buttons/edit.mjs";import{RefreshBtn as $r}from"./ui/buttons/refresh.mjs";import{TrashBtn as ei}from"./ui/buttons/trash.mjs";import{UploadImageBtn as ti}from"./ui/buttons/upload-image.mjs";import{SearchInput as ni}from"./ui/inputs/search-input.mjs";import{AspectRatio as ri}from"./ui/aspect-ratio.mjs";import{Breadcrumb as ii,BreadcrumbEllipsis as ai,BreadcrumbItem as oi,BreadcrumbLink as si,BreadcrumbList as ci,BreadcrumbPage as li,BreadcrumbSeparator as ui}from"./ui/breadcrumb.mjs";import{ButtonGroup as di,ButtonGroupSeparator as fi,ButtonGroupText as pi,buttonGroupVariants as mi}from"./ui/button-group.mjs";import{Calendar as hi,CalendarDayButton as gi}from"./ui/calendar.mjs";import{Carousel as _i,CarouselContent as vi,CarouselItem as yi,CarouselNext as bi,CarouselPrevious as xi}from"./ui/carousel.mjs";import{ChartContainer as Si,ChartLegend as Ci,ChartLegendContent as wi,ChartStyle as Ti,ChartTooltip as Ei,ChartTooltipContent as Di,useChart as Oi}from"./ui/chart.mjs";import{Collapsible as ki,CollapsibleContent as Ai,CollapsibleTrigger as ji}from"./ui/collapsible.mjs";import{ContextMenu as Mi,ContextMenuCheckboxItem as Ni,ContextMenuContent as Pi,ContextMenuGroup as Fi,ContextMenuItem as Ii,ContextMenuLabel as Li,ContextMenuPortal as Ri,ContextMenuRadioGroup as zi,ContextMenuRadioItem as Bi,ContextMenuSeparator as Vi,ContextMenuShortcut as Hi,ContextMenuSub as Ui,ContextMenuSubContent as Wi,ContextMenuSubTrigger as Gi,ContextMenuTrigger as Ki}from"./ui/context-menu.mjs";import{Drawer as qi,DrawerClose as Ji,DrawerContent as Yi,DrawerDescription as Xi,DrawerFooter as Zi,DrawerHeader as Qi,DrawerOverlay as $i,DrawerPortal as ea,DrawerTitle as ta,DrawerTrigger as na}from"./ui/drawer.mjs";import{Empty as ra,EmptyContent as ia,EmptyDescription as aa,EmptyHeader as oa,EmptyMedia as sa,EmptyTitle as ca}from"./ui/empty.mjs";import{Progress as la}from"./ui/progress.mjs";import{FileUploader as ua}from"./ui/file-uploader.mjs";import{Form as da,FormControl as fa,FormDescription as pa,FormField as ma,FormItem as ha,FormLabel as ga,FormMessage as _a,useFormField as va}from"./ui/form.mjs";import{HoverCard as ya,HoverCardContent as ba,HoverCardTrigger as xa}from"./ui/hover-card.mjs";import{Item as Sa,ItemActions as Ca,ItemContent as wa,ItemDescription as Ta,ItemFooter as Ea,ItemGroup as Da,ItemHeader as Oa,ItemMedia as ka,ItemSeparator as Aa,ItemTitle as ja}from"./ui/item.mjs";import{Menubar as Ma,MenubarCheckboxItem as Na,MenubarContent as Pa,MenubarGroup as Fa,MenubarItem as Ia,MenubarLabel as La,MenubarMenu as Ra,MenubarPortal as za,MenubarRadioGroup as Ba,MenubarRadioItem as Va,MenubarSeparator as Ha,MenubarShortcut as Ua,MenubarSub as Wa,MenubarSubContent as Ga,MenubarSubTrigger as Ka,MenubarTrigger as qa}from"./ui/menubar.mjs";import{MultipleSelector as Ja,useDebounce as Ya}from"./ui/multi-select.mjs";import{NavigationMenu as Xa,NavigationMenuContent as Za,NavigationMenuIndicator as Qa,NavigationMenuItem as $a,NavigationMenuLink as eo,NavigationMenuList as to,NavigationMenuTrigger as no,NavigationMenuViewport as ro,navigationMenuTriggerStyle as io}from"./ui/navigation-menu.mjs";import{Pagination as ao,PaginationContent as oo,PaginationEllipsis as so,PaginationItem as co,PaginationLink as lo,PaginationNext as uo,PaginationPrevious as fo}from"./ui/pagination.mjs";import{RadioGroup as po,RadioGroupItem as mo}from"./ui/radio-group.mjs";import{ScrollArea as ho,ScrollBar as go}from"./ui/scroll-area.mjs";import{Select as _o,SelectContent as vo,SelectGroup as yo,SelectItem as bo,SelectLabel as xo,SelectSeparator as So,SelectTrigger as Co,SelectValue as wo}from"./ui/select.mjs";import{Slider as To}from"./ui/slider.mjs";import{Toaster as Eo,toast as Do}from"./ui/sonner.mjs";import{Switch as Oo}from"./ui/switch.mjs";import{Table as ko,TableBody as Ao,TableCaption as jo,TableCell as Mo,TableFooter as No,TableHead as Po,TableHeader as Fo,TableRow as Io}from"./ui/table.mjs";import{Tabs as Lo,TabsContent as Ro,TabsList as zo,TabsTrigger as Bo}from"./ui/tabs.mjs";import{Textarea as Vo}from"./ui/textarea.mjs";import{Toggle as Ho,toggleVariants as Uo}from"./ui/toggle.mjs";import{ToggleGroup as Wo,ToggleGroupItem as Go}from"./ui/toggle-group.mjs";export{ge as ActivityHeatmapChart,Zr as AddNewBtn,Vr as Alert,zr as AlertDescription,I as AlertDialog,L as AlertDialogAction,R as AlertDialogCancel,z as AlertDialogContent,B as AlertDialogDescription,V as AlertDialogFooter,H as AlertDialogHeader,U as AlertDialogOverlay,W as AlertDialogPortal,G as AlertDialogTitle,K as AlertDialogTrigger,Br as AlertTitle,gr as ArrayCol,dr as ArrayHeaderRow,ri as AspectRatio,M as Avatar,N as AvatarFallback,P as AvatarImage,b as Badge,ii as Breadcrumb,ai as BreadcrumbEllipsis,oi as BreadcrumbItem,si as BreadcrumbLink,ci as BreadcrumbList,li as BreadcrumbPage,ui as BreadcrumbSeparator,e as Button,di as ButtonGroup,fi as ButtonGroupSeparator,pi as ButtonGroupText,Mr as CMSLayout,hi as Calendar,gi as CalendarDayButton,_e as CandlestickChart,r as Card,i as CardAction,a as CardContent,o as CardDescription,s as CardFooter,c as CardHeader,l as CardTitle,_i as Carousel,vi as CarouselContent,yi as CarouselItem,bi as CarouselNext,xi as CarouselPrevious,Si as ChartContainer,Ci as ChartLegend,wi as ChartLegendContent,Ti as ChartStyle,Ei as ChartTooltip,Di as ChartTooltipContent,dn as Checkbox,mr as CheckboxField,ki as Collapsible,Ai as CollapsibleContent,ji as CollapsibleTrigger,or as ComboboxField,lt as Command,ut as CommandDialog,dt as CommandEmpty,ft as CommandGroup,pt as CommandInput,mt as CommandItem,ht as CommandList,gt as CommandSeparator,_t as CommandShortcut,q as ConfirmDialog,Mi as ContextMenu,Ni as ContextMenuCheckboxItem,Pi as ContextMenuContent,Fi as ContextMenuGroup,Ii as ContextMenuItem,Li as ContextMenuLabel,Ri as ContextMenuPortal,zi as ContextMenuRadioGroup,Bi as ContextMenuRadioItem,Vi as ContextMenuSeparator,Hi as ContextMenuShortcut,Ui as ContextMenuSub,Wi as ContextMenuSubContent,Gi as ContextMenuSubTrigger,Ki as ContextMenuTrigger,ve as ConversionFunnelChart,ye as CorrelationScatterChart,g as CountryDisplay,_ as DataList,v as DataListItem,y as DateDisplay,$n as DateField,E as DateTooltip,Ge as Description,Ke as DescriptionBadge,qe as DescriptionBoolean,Je as DescriptionCopy,Ye as DescriptionDate,Xe as DescriptionEmpty,Ze as DescriptionHeader,Qe as DescriptionImages,$e as DescriptionItem,et as DescriptionLink,tt as DescriptionLongText,nt as DescriptionName,rt as DescriptionNumberPhone,it as DescriptionSection,at as DescriptionStatistic,ot as DescriptionStatus,st as DescriptionTagList,ct as DescriptionUser,re as DetailDialog,ae as Dialog,oe as DialogClose,se as DialogContent,ce as DialogDescription,le as DialogFooter,ue as DialogHeader,de as DialogOverlay,fe as DialogPortal,pe as DialogTitle,me as DialogTrigger,be as DonutChart,qi as Drawer,Ji as DrawerClose,Yi as DrawerContent,Xi as DrawerDescription,Zi as DrawerFooter,Qi as DrawerHeader,$i as DrawerOverlay,ea as DrawerPortal,ta as DrawerTitle,na as DrawerTrigger,fn as DropdownMenu,pn as DropdownMenuCheckboxItem,mn as DropdownMenuContent,hn as DropdownMenuGroup,gn as DropdownMenuItem,_n as DropdownMenuLabel,vn as DropdownMenuPortal,yn as DropdownMenuRadioGroup,bn as DropdownMenuRadioItem,xn as DropdownMenuSeparator,Sn as DropdownMenuShortcut,Cn as DropdownMenuSub,wn as DropdownMenuSubContent,Tn as DropdownMenuSubTrigger,En as DropdownMenuTrigger,Qr as EditBtn,fr as EmailField,ra as Empty,ia as EmptyContent,aa as EmptyDescription,D as EmptyDisplay,oa as EmptyHeader,sa as EmptyMedia,ca as EmptyTitle,ie as ErrorDialog,Fr as FeatureDeveloping,Ir as FeatureFixing,hr as Field,tr as FieldContent,lr as FieldContentMain,_r as FieldError,nr as FieldGroup,rr as FieldLabel,pr as FieldSeparator,ua as FileUploader,h as Flex,da as Form,fa as FormControl,pa as FormDescription,ma as FormField,ha as FormItem,ga as FormLabel,_a as FormMessage,xe as GainLossBarChart,Xr as Google,Pr as Grid,f as GridProductCard,ya as HoverCard,ba as HoverCardContent,xa as HoverCardTrigger,d as Image,Se as IndexedPerformanceLineChart,Ar as Input,Gr as InputOTP,Kr as InputOTPGroup,qr as InputOTPSeparator,Jr as InputOTPSlot,Sa as Item,Ca as ItemActions,wa as ItemContent,Ta as ItemDescription,Ea as ItemFooter,Da as ItemGroup,Oa as ItemHeader,ka as ItemMedia,Aa as ItemSeparator,ja as ItemTitle,Hr as Label,he as LoadingDialog,Ur as LoginPage,Ma as Menubar,Na as MenubarCheckboxItem,Pa as MenubarContent,Fa as MenubarGroup,Ia as MenubarItem,La as MenubarLabel,Ra as MenubarMenu,za as MenubarPortal,Ba as MenubarRadioGroup,Va as MenubarRadioItem,Ha as MenubarSeparator,Ua as MenubarShortcut,Wa as MenubarSub,Ga as MenubarSubContent,Ka as MenubarSubTrigger,qa as MenubarTrigger,Ce as MetricRadarChart,we as MirroredBarChart,Ja as MultipleSelector,O as NameDisplay,Xa as NavigationMenu,Za as NavigationMenuContent,Qa as NavigationMenuIndicator,$a as NavigationMenuItem,eo as NavigationMenuLink,to as NavigationMenuList,no as NavigationMenuTrigger,ro as NavigationMenuViewport,Lr as NotAuthorized,Rr as NotFound,ur as NumberField,Te as OrdersBarChart,ao as Pagination,oo as PaginationContent,so as PaginationEllipsis,co as PaginationItem,lo as PaginationLink,uo as PaginationNext,fo as PaginationPrevious,t as Paragraph,ar as PasswordField,Nr as PaymentLayout,k as PhoneNumberDisplay,Cr as Popover,wr as PopoverAnchor,Tr as PopoverClose,Er as PopoverContent,Dr as PopoverTrigger,Ee as PortfolioAllocationTreemap,De as PriceRangeAreaChart,p as ProductCard,la as Progress,po as RadioGroup,ir as RadioGroupField,mo as RadioGroupItem,$r as RefreshBtn,Wr as RegisterPage,On as ResizableHandle,kn as ResizablePanel,An as ResizablePanelGroup,Oe as RevenueAreaChart,ke as RevenueOrdersComposedChart,A as RoleBadge,Ae as SalesTargetRadialChart,je as SankeyFlowChart,ho as ScrollArea,go as ScrollBar,ni as SearchInput,vt as SearchModal,_o as Select,vo as SelectContent,Qn as SelectField,yo as SelectGroup,bo as SelectItem,xo as SelectLabel,So as SelectSeparator,Co as SelectTrigger,wo as SelectValue,jr as Separator,Y as Sheet,X as SheetClose,Z as SheetContent,Q as SheetDescription,$ as SheetFooter,ee as SheetHeader,te as SheetTitle,ne as SheetTrigger,vr as SimpleArrayField,xr as SimpleBooleanField,m as SimpleCard,er as SimpleComboboxField,br as SimpleDateField,qn as SimpleEmailField,Nn as SimpleNumberField,yr as SimplePasswordField,Jn as SimpleRadioGroupField,Fn as SimpleSelectField,Pn as SimpleTextField,Wn as SimpleTextareaField,u as Skeleton,To as Slider,Me as SparklineChart,Dn as Spinner,Ne as StackedAreaChart,j as Statistic,Oo as Switch,cr as SwitchField,ko as Table,Ao as TableBody,jo as TableCaption,Mo as TableCell,No as TableFooter,Po as TableHead,Fo as TableHeader,Io as TableRow,Lo as Tabs,Ro as TabsContent,zo as TabsList,Bo as TabsTrigger,jn as TanStackActionSubmit,sr as TanStackActionsForm,Hn as TanStackCardForm,Un as TanStackContainerForm,Gn as TanStackDialogForm,In as TanStackFieldGroup,zn as TanStackPopoverForm,Vn as TanStackSectionForm,Kn as TanStackTitleField,kr as TextEditor,Sr as TextEditorField,Or as TextEditorToolbar,Mn as TextField,Vo as Textarea,Xn as TextareaField,J as Title,Eo as Toaster,Ho as Toggle,Wo as ToggleGroup,Go as ToggleGroupItem,S as Tooltip,C as TooltipContent,w as TooltipProvider,T as TooltipTrigger,Pe as TopProductsBarChart,ei as TrashBtn,rn as UITableAnalysisPanel,Qt as UITableAvatarNameDisplay,tn as UITableBadgeDisplay,Lt as UITableBody,qt as UITableBooleanDisplay,Ft as UITableCell,Tt as UITableCellActions,It as UITableCellSelect,St as UITableContainer,Bt as UITableCurrencyDisplay,$t as UITableDateDisplay,nn as UITableDescriptionDisplay,Ht as UITableEditButton,Xt as UITableEmailDisplay,Rt as UITableEmpty,bt as UITableEmptyDisplay,an as UITableFilter,un as UITableFooter,Mt as UITableFooterRow,Dt as UITableHead,wt as UITableHeadCell,Et as UITableHeadCellOption,jt as UITableHeadCellSelect,kt as UITableHeadRow,Ot as UITableInnerTable,Jt as UITableInnerWrapper,Ut as UITableListDisplay,yt as UITableLoadMore,Wt as UITableMoreButton,en as UITableNameDisplay,Zt as UITablePermalink,Kt as UITablePhoneNumberDisplay,Gt as UITableProgressDisplay,Ct as UITableProvider,zt as UITableRemoveButton,Yt as UITableRow,on as UITableStatisticDisplay,ln as UITableStatusDisplay,Vt as UITableSummaryBar,cn as UITableToggleButton,Nt as UITableTooltip,xt as UITableTooltipActions,sn as UITableTooltipFilter,Pt as UITableUserDataDisplay,At as UITableWrapper,ti as UploadImageBtn,F as UserDataDisplay,Yr as VerifyEmailPage,Fe as VolumeBarChart,Ie as WaterfallChart,x as badgeVariants,mi as buttonGroupVariants,Le as computeIndexedSeries,Re as formatCompactNumber,ze as formatCurrency,Be as formatPercent,Ve as formatSignedPercent,He as getChartColor,Ue as getDirectionColor,io as navigationMenuTriggerStyle,n as paragraphVariants,We as toDateLabel,Do as toast,Uo as toggleVariants,Oi as useChart,Ya as useDebounce,va as useFormField,Ln as useTanStackFieldContext,Rn as useTanStackForm,Bn as useTanStackFormContext,Yn as withTanStackFieldGroup,Zn as withTanStackForm};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Tooltip as e,TooltipContent as t,TooltipProvider as n,TooltipTrigger as r}from"./ui/tooltip.mjs";import{Y as i}from"./tables-
|
|
2
|
-
//# sourceMappingURL=list-display-
|
|
1
|
+
import{Tooltip as e,TooltipContent as t,TooltipProvider as n,TooltipTrigger as r}from"./ui/tooltip.mjs";import{Y as i}from"./tables-9d53sH9E.mjs";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=({items:s,maxVisible:c=3})=>{if(!s||s.length===0)return a(i,{});let l=s.slice(0,c),u=s.slice(c);return o(`div`,{className:`flex flex-wrap gap-1`,children:[l.map((e,t)=>a(`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)),u.length>0&&a(n,{children:o(e,{children:[a(r,{asChild:!0,children:o(`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:[`+`,u.length,` more`]})}),a(t,{align:`start`,className:`flex max-w-64 flex-wrap gap-1 p-2`,children:u.map((e,t)=>a(`span`,{className:`inline-flex items-center rounded-full border border-border px-2 py-0.5 text-text-negative text-xs`,children:e},t))})]})})]})};export{s as UITableListDisplay};
|
|
2
|
+
//# sourceMappingURL=list-display-8Jx6G5nk.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-display-
|
|
1
|
+
{"version":3,"file":"list-display-8Jx6G5nk.mjs","names":[],"sources":["../packages/components/features/tables/components/atoms/list-display.tsx"],"sourcesContent":["'use client';\n\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { UITableEmpty } from './empty';\n\n/** Props for the {@link UITableListDisplay} component. */\ntype Props = {\n /** Array of strings or numbers to render as inline pills. */\n items: (string | number)[] | null | undefined;\n /**\n * Maximum number of pills shown before a `+N more` overflow badge appears\n * (default: `3`).\n */\n maxVisible?: number;\n};\n\n/**\n * Renders an array of values as compact inline pills in a table cell. When the\n * list exceeds `maxVisible`, a `+N more` badge is shown; hovering it reveals all\n * remaining items in a tooltip. Renders {@link UITableEmpty} for empty or absent\n * arrays.\n *\n * @example\n * import { UITableListDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableListDisplay items={['React', 'TypeScript', 'TailwindCSS', 'Vite']} maxVisible={3} />\n */\nexport const UITableListDisplay: React.FC<Props> = ({ items, maxVisible = 3 }) => {\n if (!items || items.length === 0) return <UITableEmpty />;\n\n const visible = items.slice(0, maxVisible);\n const overflow = items.slice(maxVisible);\n\n return (\n <div className=\"flex flex-wrap gap-1\">\n {visible.map((item, i) => (\n <span key={i} className=\"inline-flex items-center rounded-full border border-border bg-muted-weak px-2 py-0.5 text-text-positive text-xs\">\n {item}\n </span>\n ))}\n\n {overflow.length > 0 && (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"inline-flex cursor-default items-center rounded-full bg-primary-bg-subtle px-2 py-0.5 text-primary-intense text-xs\">\n +{overflow.length} more\n </span>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"flex max-w-64 flex-wrap gap-1 p-2\">\n {overflow.map((item, i) => (\n <span key={i} className=\"inline-flex items-center rounded-full border border-border px-2 py-0.5 text-text-negative text-xs\">\n {item}\n </span>\n ))}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n );\n};\n"],"mappings":"oMA2BA,MAAa,GAAuC,CAAE,QAAO,aAAa,KAAQ,CAChF,GAAI,CAAC,GAAS,EAAM,SAAW,EAAG,OAAO,EAAC,EAAD,CAAe,CAAA,EAExD,IAAM,EAAU,EAAM,MAAM,EAAG,CAAU,EACnC,EAAW,EAAM,MAAM,CAAU,EAEvC,OACE,EAAC,MAAD,CAAK,UAAU,gCAAf,CACG,EAAQ,KAAK,EAAM,IAClB,EAAC,OAAD,CAAc,UAAU,2HACrB,CACG,EAFK,CAEL,CACP,EAEA,EAAS,OAAS,GACjB,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAgB,QAAA,YACd,EAAC,OAAD,CAAM,UAAU,8HAAhB,CAAqI,IACjI,EAAS,OAAO,OACd,GACQ,CAAA,EAChB,EAAC,EAAD,CAAgB,MAAM,QAAQ,UAAU,6CACrC,EAAS,KAAK,EAAM,IACnB,EAAC,OAAD,CAAc,UAAU,6GACrB,CACG,EAFK,CAEL,CACP,CACa,CAAA,CACT,CAAA,CAAA,CACM,CAAA,CAEhB,GAET"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./ui/tooltip.cjs"),t=require("./tables-
|
|
2
|
-
//# sourceMappingURL=list-display-
|
|
1
|
+
const e=require("./ui/tooltip.cjs"),t=require("./tables-B1O9qy-m.cjs");let n=require("react/jsx-runtime");const r=({items:r,maxVisible:i=3})=>{if(!r||r.length===0)return(0,n.jsx)(t.Y,{});let a=r.slice(0,i),o=r.slice(i);return(0,n.jsxs)(`div`,{className:`flex flex-wrap gap-1`,children:[a.map((e,t)=>(0,n.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)),o.length>0&&(0,n.jsx)(e.TooltipProvider,{children:(0,n.jsxs)(e.Tooltip,{children:[(0,n.jsx)(e.TooltipTrigger,{asChild:!0,children:(0,n.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:[`+`,o.length,` more`]})}),(0,n.jsx)(e.TooltipContent,{align:`start`,className:`flex max-w-64 flex-wrap gap-1 p-2`,children:o.map((e,t)=>(0,n.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))})]})})]})};exports.UITableListDisplay=r;
|
|
2
|
+
//# sourceMappingURL=list-display-BQjNDttz.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-display-
|
|
1
|
+
{"version":3,"file":"list-display-BQjNDttz.cjs","names":["UITableEmpty","TooltipProvider","Tooltip","TooltipTrigger","TooltipContent"],"sources":["../packages/components/features/tables/components/atoms/list-display.tsx"],"sourcesContent":["'use client';\n\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '@/components/ui/tooltip';\nimport { UITableEmpty } from './empty';\n\n/** Props for the {@link UITableListDisplay} component. */\ntype Props = {\n /** Array of strings or numbers to render as inline pills. */\n items: (string | number)[] | null | undefined;\n /**\n * Maximum number of pills shown before a `+N more` overflow badge appears\n * (default: `3`).\n */\n maxVisible?: number;\n};\n\n/**\n * Renders an array of values as compact inline pills in a table cell. When the\n * list exceeds `maxVisible`, a `+N more` badge is shown; hovering it reveals all\n * remaining items in a tooltip. Renders {@link UITableEmpty} for empty or absent\n * arrays.\n *\n * @example\n * import { UITableListDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableListDisplay items={['React', 'TypeScript', 'TailwindCSS', 'Vite']} maxVisible={3} />\n */\nexport const UITableListDisplay: React.FC<Props> = ({ items, maxVisible = 3 }) => {\n if (!items || items.length === 0) return <UITableEmpty />;\n\n const visible = items.slice(0, maxVisible);\n const overflow = items.slice(maxVisible);\n\n return (\n <div className=\"flex flex-wrap gap-1\">\n {visible.map((item, i) => (\n <span key={i} className=\"inline-flex items-center rounded-full border border-border bg-muted-weak px-2 py-0.5 text-text-positive text-xs\">\n {item}\n </span>\n ))}\n\n {overflow.length > 0 && (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger asChild>\n <span className=\"inline-flex cursor-default items-center rounded-full bg-primary-bg-subtle px-2 py-0.5 text-primary-intense text-xs\">\n +{overflow.length} more\n </span>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"flex max-w-64 flex-wrap gap-1 p-2\">\n {overflow.map((item, i) => (\n <span key={i} className=\"inline-flex items-center rounded-full border border-border px-2 py-0.5 text-text-negative text-xs\">\n {item}\n </span>\n ))}\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n )}\n </div>\n );\n};\n"],"mappings":"0GA2BA,MAAa,GAAuC,CAAE,QAAO,aAAa,KAAQ,CAChF,GAAI,CAAC,GAAS,EAAM,SAAW,EAAG,OAAO,EAAA,EAAA,IAAA,CAACA,EAAAA,EAAD,CAAe,CAAA,EAExD,IAAM,EAAU,EAAM,MAAM,EAAG,CAAU,EACnC,EAAW,EAAM,MAAM,CAAU,EAEvC,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,gCAAf,CACG,EAAQ,KAAK,EAAM,KAClB,EAAA,EAAA,IAAA,CAAC,OAAD,CAAc,UAAU,2HACrB,CACG,EAFK,CAEL,CACP,EAEA,EAAS,OAAS,IACjB,EAAA,EAAA,IAAA,CAACC,EAAAA,gBAAD,CAAA,UACE,EAAA,EAAA,KAAA,CAACC,EAAAA,QAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,QAAA,aACd,EAAA,EAAA,KAAA,CAAC,OAAD,CAAM,UAAU,8HAAhB,CAAqI,IACjI,EAAS,OAAO,OACd,GACQ,CAAA,GAChB,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,MAAM,QAAQ,UAAU,6CACrC,EAAS,KAAK,EAAM,KACnB,EAAA,EAAA,IAAA,CAAC,OAAD,CAAc,UAAU,6GACrB,CACG,EAFK,CAEL,CACP,CACa,CAAA,CACT,CAAA,CAAA,CACM,CAAA,CAEhB,GAET"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Paragraph as e}from"./typography/paragraph.mjs";import{Tooltip as t,TooltipContent as n,TooltipTrigger as r}from"./ui/tooltip.mjs";import{Y as i}from"./tables-
|
|
2
|
-
//# sourceMappingURL=name-display-
|
|
1
|
+
import{Paragraph as e}from"./typography/paragraph.mjs";import{Tooltip as t,TooltipContent as n,TooltipTrigger as r}from"./ui/tooltip.mjs";import{Y as i}from"./tables-9d53sH9E.mjs";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=({name:s})=>s?o(t,{children:[a(r,{children:a(e,{variant:`sm`,className:`line-clamp-2 w-full truncate text-wrap pb-px text-start`,children:s})}),a(n,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:o(`div`,{className:`flex flex-col gap-y-2`,children:[a(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:s}),o(`p`,{className:`w-full text-end`,children:[s.length,` chars`]})]})})]}):a(i,{});export{s as UITableNameDisplay};
|
|
2
|
+
//# sourceMappingURL=name-display-BBJoNnRG.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"name-display-
|
|
1
|
+
{"version":3,"file":"name-display-BBJoNnRG.mjs","names":[],"sources":["../packages/components/features/tables/components/atoms/name-display.tsx"],"sourcesContent":["import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { Paragraph } from '@/components/typography/paragraph';\nimport { UITableEmpty } from './empty';\n\n/** Props for the {@link UITableNameDisplay} component. */\ntype NameDisplayProps = {\n /** The name string to display; renders an empty placeholder when falsy. */\n name?: string | null | undefined;\n};\n\n/**\n * Renders a clamped, truncated name string inside a tooltip that shows the full\n * text and character count on hover; falls back to {@link UITableEmpty} when the\n * value is absent.\n *\n * @example\n * import { UITableNameDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableNameDisplay name=\"John Doe\" />\n */\nexport const UITableNameDisplay: React.FC<NameDisplayProps> = ({ name }) => {\n if (!name) return <UITableEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger>\n <Paragraph variant=\"sm\" className=\"line-clamp-2 w-full truncate text-wrap pb-px text-start\">\n {name}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{name}</p>\n <p className=\"w-full text-end\">{name.length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n"],"mappings":"sOAqBA,MAAa,GAAkD,CAAE,UAC1D,EAEH,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SACE,EAAC,EAAD,CAAW,QAAQ,KAAK,UAAU,mEAC/B,CACQ,CAAA,CACG,CAAA,EAChB,EAAC,EAAD,CAAgB,MAAM,QAAQ,UAAU,wCACtC,EAAC,MAAD,CAAK,UAAU,iCAAf,CACE,EAAC,IAAD,CAAG,UAAU,oDAA4C,CAAQ,CAAA,EACjE,EAAC,IAAD,CAAG,UAAU,2BAAb,CAAgC,EAAK,OAAO,QAAS,GAClD,GACS,CAAA,CACT,CAAA,CAAA,EAdO,EAAC,EAAD,CAAe,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./typography/paragraph.cjs"),t=require("./ui/tooltip.cjs"),n=require("./tables-
|
|
2
|
-
//# sourceMappingURL=name-display-
|
|
1
|
+
const e=require("./typography/paragraph.cjs"),t=require("./ui/tooltip.cjs"),n=require("./tables-B1O9qy-m.cjs");let r=require("react/jsx-runtime");const i=({name:i})=>i?(0,r.jsxs)(t.Tooltip,{children:[(0,r.jsx)(t.TooltipTrigger,{children:(0,r.jsx)(e.Paragraph,{variant:`sm`,className:`line-clamp-2 w-full truncate text-wrap pb-px text-start`,children:i})}),(0,r.jsx)(t.TooltipContent,{align:`start`,className:`h-fit min-w-48 max-w-80 pt-4`,children:(0,r.jsxs)(`div`,{className:`flex flex-col gap-y-2`,children:[(0,r.jsx)(`p`,{className:`whitespace-pre-line text-wrap break-keep`,children:i}),(0,r.jsxs)(`p`,{className:`w-full text-end`,children:[i.length,` chars`]})]})})]}):(0,r.jsx)(n.Y,{});exports.UITableNameDisplay=i;
|
|
2
|
+
//# sourceMappingURL=name-display-scAMZdyr.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"name-display-
|
|
1
|
+
{"version":3,"file":"name-display-scAMZdyr.cjs","names":["UITableEmpty","Tooltip","TooltipTrigger","Paragraph","TooltipContent"],"sources":["../packages/components/features/tables/components/atoms/name-display.tsx"],"sourcesContent":["import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';\n\nimport { Paragraph } from '@/components/typography/paragraph';\nimport { UITableEmpty } from './empty';\n\n/** Props for the {@link UITableNameDisplay} component. */\ntype NameDisplayProps = {\n /** The name string to display; renders an empty placeholder when falsy. */\n name?: string | null | undefined;\n};\n\n/**\n * Renders a clamped, truncated name string inside a tooltip that shows the full\n * text and character count on hover; falls back to {@link UITableEmpty} when the\n * value is absent.\n *\n * @example\n * import { UITableNameDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableNameDisplay name=\"John Doe\" />\n */\nexport const UITableNameDisplay: React.FC<NameDisplayProps> = ({ name }) => {\n if (!name) return <UITableEmpty />;\n return (\n <Tooltip>\n <TooltipTrigger>\n <Paragraph variant=\"sm\" className=\"line-clamp-2 w-full truncate text-wrap pb-px text-start\">\n {name}\n </Paragraph>\n </TooltipTrigger>\n <TooltipContent align=\"start\" className=\"h-fit min-w-48 max-w-80 pt-4\">\n <div className=\"flex flex-col gap-y-2\">\n <p className=\"whitespace-pre-line text-wrap break-keep\">{name}</p>\n <p className=\"w-full text-end\">{name.length} chars</p>\n </div>\n </TooltipContent>\n </Tooltip>\n );\n};\n"],"mappings":"kJAqBA,MAAa,GAAkD,CAAE,UAC1D,GAEH,EAAA,EAAA,KAAA,CAACC,EAAAA,QAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,QAAQ,KAAK,UAAU,mEAC/B,CACQ,CAAA,CACG,CAAA,GAChB,EAAA,EAAA,IAAA,CAACC,EAAAA,eAAD,CAAgB,MAAM,QAAQ,UAAU,yCACtC,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,iCAAf,EACE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,oDAA4C,CAAQ,CAAA,GACjE,EAAA,EAAA,KAAA,CAAC,IAAD,CAAG,UAAU,2BAAb,CAAgC,EAAK,OAAO,QAAS,GAClD,GACS,CAAA,CACT,CAAA,CAAA,GAdO,EAAA,EAAA,IAAA,CAACJ,EAAAA,EAAD,CAAe,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./tables-
|
|
2
|
-
//# sourceMappingURL=progress-display-
|
|
1
|
+
const e=require("./tables-B1O9qy-m.cjs"),t=require("./ui/progress.cjs");let n=require("react"),r=require("@customafk/react-toolkit/utils"),i=require("react/jsx-runtime");const a=(0,n.memo)(({value:n,showLabel:a=!0,successThreshold:o=70,warningThreshold:s=40})=>{if(n==null)return(0,i.jsx)(e.Y,{});let c=Math.min(100,Math.max(0,n));return(0,i.jsxs)(`div`,{className:`flex w-full min-w-24 items-center gap-x-2`,children:[(0,i.jsx)(t.Progress,{value:c,className:(0,r.cn)(`flex-1`,c>=o?`[&>[data-slot=progress-indicator]]:bg-success`:c>=s?`[&>[data-slot=progress-indicator]]:bg-warning`:`[&>[data-slot=progress-indicator]]:bg-danger`)}),a&&(0,i.jsxs)(`span`,{className:`w-9 shrink-0 text-right font-number text-text-positive-weak text-xs tabular-nums`,children:[c,`%`]})]})});a.displayName=`UITableProgressDisplay`,exports.UITableProgressDisplay=a;
|
|
2
|
+
//# sourceMappingURL=progress-display-B45TkUcr.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-display-
|
|
1
|
+
{"version":3,"file":"progress-display-B45TkUcr.cjs","names":["UITableEmpty","Progress"],"sources":["../packages/components/features/tables/components/atoms/progress-display.tsx"],"sourcesContent":["'use client';\n\nimport { memo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Progress } from '@/components/ui/progress';\nimport { UITableEmpty } from './empty';\n\n/** Props for the {@link UITableProgressDisplay} component. */\ntype Props = {\n /** Percentage value between 0 and 100; `null`/`undefined` renders an empty state. */\n value: number | null | undefined;\n /** When `true`, shows the numeric percentage next to the bar (default: `true`). */\n showLabel?: boolean;\n /**\n * Color thresholds applied to the progress indicator.\n * - `≥ successThreshold` → green\n * - `≥ warningThreshold` → yellow\n * - otherwise → red\n *\n * Defaults: `successThreshold = 70`, `warningThreshold = 40`.\n */\n successThreshold?: number;\n warningThreshold?: number;\n};\n\n/**\n * Renders a horizontal progress bar with an optional percentage label for a\n * table cell. The bar color shifts from red → yellow → green based on\n * configurable thresholds. Renders {@link UITableEmpty} when `value` is absent.\n *\n * @example\n * import { UITableProgressDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableProgressDisplay value={75} />\n */\nexport const UITableProgressDisplay = memo(({ value, showLabel = true, successThreshold = 70, warningThreshold = 40 }: Props) => {\n if (value === null || value === undefined) return <UITableEmpty />;\n\n const clamped = Math.min(100, Math.max(0, value));\n\n const indicatorClass =\n clamped >= successThreshold\n ? '[&>[data-slot=progress-indicator]]:bg-success'\n : clamped >= warningThreshold\n ? '[&>[data-slot=progress-indicator]]:bg-warning'\n : '[&>[data-slot=progress-indicator]]:bg-danger';\n\n return (\n <div className=\"flex w-full min-w-24 items-center gap-x-2\">\n <Progress value={clamped} className={cn('flex-1', indicatorClass)} />\n {showLabel && <span className=\"w-9 shrink-0 text-right font-number text-text-positive-weak text-xs tabular-nums\">{clamped}%</span>}\n </div>\n );\n});\nUITableProgressDisplay.displayName = 'UITableProgressDisplay';\n"],"mappings":"0KAqCA,MAAa,GAAA,EAAA,EAAA,KAAA,EAA+B,CAAE,QAAO,YAAY,GAAM,mBAAmB,GAAI,mBAAmB,MAAgB,CAC/H,GAAI,GAAU,KAA6B,OAAO,EAAA,EAAA,IAAA,CAACA,EAAAA,EAAD,CAAe,CAAA,EAEjE,IAAM,EAAU,KAAK,IAAI,IAAK,KAAK,IAAI,EAAG,CAAK,CAAC,EAShD,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,qDAAf,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,SAAD,CAAU,MAAO,EAAS,WAAA,EAAA,EAAA,GAAA,CAAc,SAR1C,GAAW,EACP,gDACA,GAAW,EACT,gDACA,8CAI4D,CAAI,CAAA,EACnE,IAAa,EAAA,EAAA,KAAA,CAAC,OAAD,CAAM,UAAU,4FAAhB,CAAoG,EAAQ,GAAO,GAC9H,GAET,CAAC,EACD,EAAuB,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Y as e}from"./tables-
|
|
2
|
-
//# sourceMappingURL=progress-display-
|
|
1
|
+
import{Y as e}from"./tables-9d53sH9E.mjs";import{Progress as t}from"./ui/progress.mjs";import{memo as n}from"react";import{cn as r}from"@customafk/react-toolkit/utils";import{jsx as i,jsxs as a}from"react/jsx-runtime";const o=n(({value:n,showLabel:o=!0,successThreshold:s=70,warningThreshold:c=40})=>{if(n==null)return i(e,{});let l=Math.min(100,Math.max(0,n));return a(`div`,{className:`flex w-full min-w-24 items-center gap-x-2`,children:[i(t,{value:l,className:r(`flex-1`,l>=s?`[&>[data-slot=progress-indicator]]:bg-success`:l>=c?`[&>[data-slot=progress-indicator]]:bg-warning`:`[&>[data-slot=progress-indicator]]:bg-danger`)}),o&&a(`span`,{className:`w-9 shrink-0 text-right font-number text-text-positive-weak text-xs tabular-nums`,children:[l,`%`]})]})});o.displayName=`UITableProgressDisplay`;export{o as UITableProgressDisplay};
|
|
2
|
+
//# sourceMappingURL=progress-display-DvV-YhkE.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress-display-
|
|
1
|
+
{"version":3,"file":"progress-display-DvV-YhkE.mjs","names":[],"sources":["../packages/components/features/tables/components/atoms/progress-display.tsx"],"sourcesContent":["'use client';\n\nimport { memo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Progress } from '@/components/ui/progress';\nimport { UITableEmpty } from './empty';\n\n/** Props for the {@link UITableProgressDisplay} component. */\ntype Props = {\n /** Percentage value between 0 and 100; `null`/`undefined` renders an empty state. */\n value: number | null | undefined;\n /** When `true`, shows the numeric percentage next to the bar (default: `true`). */\n showLabel?: boolean;\n /**\n * Color thresholds applied to the progress indicator.\n * - `≥ successThreshold` → green\n * - `≥ warningThreshold` → yellow\n * - otherwise → red\n *\n * Defaults: `successThreshold = 70`, `warningThreshold = 40`.\n */\n successThreshold?: number;\n warningThreshold?: number;\n};\n\n/**\n * Renders a horizontal progress bar with an optional percentage label for a\n * table cell. The bar color shifts from red → yellow → green based on\n * configurable thresholds. Renders {@link UITableEmpty} when `value` is absent.\n *\n * @example\n * import { UITableProgressDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableProgressDisplay value={75} />\n */\nexport const UITableProgressDisplay = memo(({ value, showLabel = true, successThreshold = 70, warningThreshold = 40 }: Props) => {\n if (value === null || value === undefined) return <UITableEmpty />;\n\n const clamped = Math.min(100, Math.max(0, value));\n\n const indicatorClass =\n clamped >= successThreshold\n ? '[&>[data-slot=progress-indicator]]:bg-success'\n : clamped >= warningThreshold\n ? '[&>[data-slot=progress-indicator]]:bg-warning'\n : '[&>[data-slot=progress-indicator]]:bg-danger';\n\n return (\n <div className=\"flex w-full min-w-24 items-center gap-x-2\">\n <Progress value={clamped} className={cn('flex-1', indicatorClass)} />\n {showLabel && <span className=\"w-9 shrink-0 text-right font-number text-text-positive-weak text-xs tabular-nums\">{clamped}%</span>}\n </div>\n );\n});\nUITableProgressDisplay.displayName = 'UITableProgressDisplay';\n"],"mappings":"0NAqCA,MAAa,EAAyB,GAAM,CAAE,QAAO,YAAY,GAAM,mBAAmB,GAAI,mBAAmB,MAAgB,CAC/H,GAAI,GAAU,KAA6B,OAAO,EAAC,EAAD,CAAe,CAAA,EAEjE,IAAM,EAAU,KAAK,IAAI,IAAK,KAAK,IAAI,EAAG,CAAK,CAAC,EAShD,OACE,EAAC,MAAD,CAAK,UAAU,qDAAf,CACE,EAAC,EAAD,CAAU,MAAO,EAAS,UAAW,EAAG,SAR1C,GAAW,EACP,gDACA,GAAW,EACT,gDACA,8CAI4D,CAAI,CAAA,EACnE,GAAa,EAAC,OAAD,CAAM,UAAU,4FAAhB,CAAoG,EAAQ,GAAO,GAC9H,GAET,CAAC,EACD,EAAuB,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./layouts/flex.cjs"),t=require("./tables-
|
|
2
|
-
//# sourceMappingURL=statistic-
|
|
1
|
+
const e=require("./layouts/flex.cjs"),t=require("./tables-B1O9qy-m.cjs");let n=require("react"),r=require("@customafk/react-toolkit/utils"),i=require("react/jsx-runtime");const a=(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}},o=(0,n.memo)(({decimalSeparator:o=`.`,groupSeparator:s=`,`,prefix:c,suffix:l,precision:u,roundingMode:d=`round`,showTrailingZeros:f=!1,size:p=`lg`,value:m=0})=>{let h=(0,n.useMemo)(()=>{let e={};return typeof u==`number`&&u>=0&&f&&(e.minimumFractionDigits=u),e.maximumFractionDigits=u,e},[u,f]),g=(0,n.useCallback)(e=>{let t=e;return typeof u==`number`&&u>=0&&(t=a(e,u,d)),t.toLocaleString(`en-US`,h)},[d,h,u]),_=(0,n.useMemo)(()=>{if(typeof m==`number`)return Number.isNaN(m)||!Number.isFinite(m)?`N/A`:g(m);if(typeof m==`string`){let e=m.trim();if(!e)return`N/A`;let t=Number(e);return Number.isNaN(t)||!Number.isFinite(t)?`N/A`:g(t)}return`N/A`},[m,g]),v=(0,n.useMemo)(()=>o===`.`&&s===`,`?_:_.replace(/,/g,s).replace(/\./g,o),[_,o,s]);return v===`0`||v===`N/A`||!v?(0,i.jsx)(t.Y,{}):(0,i.jsxs)(e.Flex,{padding:`none`,className:(0,r.cn)(`font-number text-lg text-text-positive tabular-nums`,p===`xs`&&`text-xs`,p===`sm`&&`text-sm`,p===`md`&&`text-base`,p===`lg`&&`text-lg`,p===`xl`&&`text-xl`),children:[c,(0,i.jsx)(`p`,{children:v}),l]})});o.displayName=`UITableStatisticDisplay`,exports.UITableStatisticDisplay=o;
|
|
2
|
+
//# sourceMappingURL=statistic-BHCSCw9Q.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statistic-
|
|
1
|
+
{"version":3,"file":"statistic-BHCSCw9Q.cjs","names":["UITableEmpty","Flex"],"sources":["../packages/components/features/tables/components/atoms/statistic.tsx"],"sourcesContent":["import { memo, useCallback, useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Flex } from '@/components/layouts/flex';\nimport { UITableEmpty } from './empty';\n\n/**\n * Applies the specified rounding mode to `num` at the given decimal precision.\n *\n * @param num - The number to round.\n * @param precisionValue - Number of decimal places to keep.\n * @param roundingMode - Rounding strategy: `'round'` (default), `'floor'`, or `'ceil'`.\n * @returns The rounded number.\n */\nconst applyRounding = (num: number, precisionValue: number, roundingMode?: 'round' | 'floor' | 'ceil') => {\n const multiplier = 10 ** precisionValue;\n\n switch (roundingMode) {\n case 'floor':\n return Math.floor(num * multiplier) / multiplier;\n case 'ceil':\n return Math.ceil(num * multiplier) / multiplier;\n default:\n return Math.round(num * multiplier) / multiplier;\n }\n};\n\n/** Props for the {@link UITableStatisticDisplay} component. */\ntype Props = {\n /** Character used to separate the integer and fractional parts (default: `'.'`). */\n decimalSeparator?: string;\n /** Character used to separate thousands groups (default: `','`). */\n groupSeparator?: string;\n /** Optional node rendered before the formatted number (e.g. a currency symbol). */\n prefix?: React.ReactNode;\n /** Optional node rendered after the formatted number (e.g. a unit label). */\n suffix?: React.ReactNode;\n /** Number of decimal digits to display. */\n precision?: number;\n /** Rounding strategy applied before formatting (default: `'round'`). */\n roundingMode?: 'round' | 'floor' | 'ceil';\n /** When `true`, pads the fractional part with trailing zeros up to `precision` digits. */\n showTrailingZeros?: boolean;\n /** Font-size variant for the displayed number (default: `'lg'`). */\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n /** The numeric or string value to format; falsy / invalid values render an empty state. */\n value: number | string | null | undefined;\n};\n\n/**\n * A memoized table-cell component that formats a numeric value with configurable\n * separators, precision, rounding, and size; renders {@link UITableEmpty} when\n * the value is zero, invalid, or absent.\n *\n * @example\n * import { UITableStatisticDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableStatisticDisplay value={1234567.89} precision={2} prefix=\"$\" size=\"md\" />\n */\nexport const UITableStatisticDisplay = memo(\n ({\n decimalSeparator = '.',\n groupSeparator = ',',\n prefix: Prefix,\n suffix: Suffix,\n precision,\n roundingMode = 'round',\n showTrailingZeros = false,\n size = 'lg',\n value = 0,\n }: Props) => {\n // Memoize number formatting options\n const formatOptions = useMemo((): Intl.NumberFormatOptions => {\n const options: Intl.NumberFormatOptions = {};\n\n if (typeof precision === 'number' && precision >= 0 && showTrailingZeros) {\n options.minimumFractionDigits = precision;\n options.maximumFractionDigits = precision;\n } else {\n options.maximumFractionDigits = precision;\n }\n\n return options;\n }, [precision, showTrailingZeros]);\n\n const formatNumber = useCallback(\n (num: number): string => {\n let processedNum = num;\n\n // Áp dụng làm tròn nếu có precision\n if (typeof precision === 'number' && precision >= 0) {\n processedNum = applyRounding(num, precision, roundingMode);\n }\n\n return processedNum.toLocaleString('en-US', formatOptions);\n },\n [roundingMode, formatOptions, precision]\n );\n\n // Memoize value processing\n const processedValue = useMemo((): string => {\n // Xử lý giá trị number\n if (typeof value === 'number') {\n if (Number.isNaN(value) || !Number.isFinite(value)) {\n return 'N/A';\n }\n return formatNumber(value);\n }\n\n // Xử lý giá trị string\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n\n // Nếu là chuỗi rỗng\n if (!trimmedValue) {\n return 'N/A';\n }\n\n // Thử convert sang number\n const numValue = Number(trimmedValue);\n\n if (Number.isNaN(numValue) || !Number.isFinite(numValue)) {\n // Nếu không phải số, trả về string gốc\n return 'N/A';\n }\n\n return formatNumber(numValue);\n }\n\n return 'N/A';\n }, [value, formatNumber]);\n\n // Memoize separator replacement\n const finalFormattedValue = useMemo((): string => {\n // Chỉ thay thế separators nếu khác mặc định\n if (decimalSeparator === '.' && groupSeparator === ',') {\n return processedValue;\n }\n return processedValue.replace(/,/g, groupSeparator).replace(/\\./g, decimalSeparator);\n }, [processedValue, decimalSeparator, groupSeparator]);\n\n if (finalFormattedValue === '0' || finalFormattedValue === 'N/A' || !finalFormattedValue) {\n return <UITableEmpty />;\n }\n\n return (\n <Flex\n padding=\"none\"\n className={cn(\n 'font-number text-lg text-text-positive tabular-nums',\n size === 'xs' && 'text-xs',\n size === 'sm' && 'text-sm',\n size === 'md' && 'text-base',\n size === 'lg' && 'text-lg',\n size === 'xl' && 'text-xl'\n )}\n >\n {Prefix}\n <p>{finalFormattedValue}</p>\n {Suffix}\n </Flex>\n );\n }\n);\nUITableStatisticDisplay.displayName = 'UITableStatisticDisplay';\n"],"mappings":"2KAeA,MAAM,GAAiB,EAAa,EAAwB,IAA8C,CACxG,IAAM,EAAa,IAAM,EAEzB,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,KAAK,MAAM,EAAM,CAAU,EAAI,EACxC,IAAK,OACH,OAAO,KAAK,KAAK,EAAM,CAAU,EAAI,EACvC,QACE,OAAO,KAAK,MAAM,EAAM,CAAU,EAAI,CAC1C,CACF,EAkCa,GAAA,EAAA,EAAA,KAAA,EACV,CACC,mBAAmB,IACnB,iBAAiB,IACjB,OAAQ,EACR,OAAQ,EACR,YACA,eAAe,QACf,oBAAoB,GACpB,OAAO,KACP,QAAQ,KACG,CAEX,IAAM,GAAA,EAAA,EAAA,QAAA,KAAwD,CAC5D,IAAM,EAAoC,CAAC,EAS3C,OAPI,OAAO,GAAc,UAAY,GAAa,GAAK,IACrD,EAAQ,sBAAwB,GAGhC,EAAQ,sBAAwB,EAG3B,CACT,EAAG,CAAC,EAAW,CAAiB,CAAC,EAE3B,GAAA,EAAA,EAAA,YAAA,CACH,GAAwB,CACvB,IAAI,EAAe,EAOnB,OAJI,OAAO,GAAc,UAAY,GAAa,IAChD,EAAe,EAAc,EAAK,EAAW,CAAY,GAGpD,EAAa,eAAe,QAAS,CAAa,CAC3D,EACA,CAAC,EAAc,EAAe,CAAS,CACzC,EAGM,GAAA,EAAA,EAAA,QAAA,KAAuC,CAE3C,GAAI,OAAO,GAAU,SAInB,OAHI,OAAO,MAAM,CAAK,GAAK,CAAC,OAAO,SAAS,CAAK,EACxC,MAEF,EAAa,CAAK,EAI3B,GAAI,OAAO,GAAU,SAAU,CAC7B,IAAM,EAAe,EAAM,KAAK,EAGhC,GAAI,CAAC,EACH,MAAO,MAIT,IAAM,EAAW,OAAO,CAAY,EAOpC,OALI,OAAO,MAAM,CAAQ,GAAK,CAAC,OAAO,SAAS,CAAQ,EAE9C,MAGF,EAAa,CAAQ,CAC9B,CAEA,MAAO,KACT,EAAG,CAAC,EAAO,CAAY,CAAC,EAGlB,GAAA,EAAA,EAAA,QAAA,KAEA,IAAqB,KAAO,IAAmB,IAC1C,EAEF,EAAe,QAAQ,KAAM,CAAc,CAAC,CAAC,QAAQ,MAAO,CAAgB,EAClF,CAAC,EAAgB,EAAkB,CAAc,CAAC,EAMrD,OAJI,IAAwB,KAAO,IAAwB,OAAS,CAAC,GAC5D,EAAA,EAAA,IAAA,CAACA,EAAAA,EAAD,CAAe,CAAA,GAItB,EAAA,EAAA,KAAA,CAACC,EAAAA,KAAD,CACE,QAAQ,OACR,WAAA,EAAA,EAAA,GAAA,CACE,sDACA,IAAS,MAAQ,UACjB,IAAS,MAAQ,UACjB,IAAS,MAAQ,YACjB,IAAS,MAAQ,UACjB,IAAS,MAAQ,SACnB,WATF,CAWG,GACD,EAAA,EAAA,IAAA,CAAC,IAAD,CAAA,SAAI,CAAuB,CAAA,EAC1B,CACG,GAEV,CACF,EACA,EAAwB,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Flex as e}from"./layouts/flex.mjs";import{Y as t}from"./tables-
|
|
2
|
-
//# sourceMappingURL=statistic-
|
|
1
|
+
import{Flex as e}from"./layouts/flex.mjs";import{Y as t}from"./tables-9d53sH9E.mjs";import{memo as n,useCallback as r,useMemo as i}from"react";import{cn as a}from"@customafk/react-toolkit/utils";import{jsx as o,jsxs as s}from"react/jsx-runtime";const c=(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}},l=n(({decimalSeparator:n=`.`,groupSeparator:l=`,`,prefix:u,suffix:d,precision:f,roundingMode:p=`round`,showTrailingZeros:m=!1,size:h=`lg`,value:g=0})=>{let _=i(()=>{let e={};return typeof f==`number`&&f>=0&&m&&(e.minimumFractionDigits=f),e.maximumFractionDigits=f,e},[f,m]),v=r(e=>{let t=e;return typeof f==`number`&&f>=0&&(t=c(e,f,p)),t.toLocaleString(`en-US`,_)},[p,_,f]),y=i(()=>{if(typeof g==`number`)return Number.isNaN(g)||!Number.isFinite(g)?`N/A`:v(g);if(typeof g==`string`){let e=g.trim();if(!e)return`N/A`;let t=Number(e);return Number.isNaN(t)||!Number.isFinite(t)?`N/A`:v(t)}return`N/A`},[g,v]),b=i(()=>n===`.`&&l===`,`?y:y.replace(/,/g,l).replace(/\./g,n),[y,n,l]);return b===`0`||b===`N/A`||!b?o(t,{}):s(e,{padding:`none`,className:a(`font-number text-lg text-text-positive tabular-nums`,h===`xs`&&`text-xs`,h===`sm`&&`text-sm`,h===`md`&&`text-base`,h===`lg`&&`text-lg`,h===`xl`&&`text-xl`),children:[u,o(`p`,{children:b}),d]})});l.displayName=`UITableStatisticDisplay`;export{l as UITableStatisticDisplay};
|
|
2
|
+
//# sourceMappingURL=statistic-DwiUKz02.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statistic-
|
|
1
|
+
{"version":3,"file":"statistic-DwiUKz02.mjs","names":[],"sources":["../packages/components/features/tables/components/atoms/statistic.tsx"],"sourcesContent":["import { memo, useCallback, useMemo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Flex } from '@/components/layouts/flex';\nimport { UITableEmpty } from './empty';\n\n/**\n * Applies the specified rounding mode to `num` at the given decimal precision.\n *\n * @param num - The number to round.\n * @param precisionValue - Number of decimal places to keep.\n * @param roundingMode - Rounding strategy: `'round'` (default), `'floor'`, or `'ceil'`.\n * @returns The rounded number.\n */\nconst applyRounding = (num: number, precisionValue: number, roundingMode?: 'round' | 'floor' | 'ceil') => {\n const multiplier = 10 ** precisionValue;\n\n switch (roundingMode) {\n case 'floor':\n return Math.floor(num * multiplier) / multiplier;\n case 'ceil':\n return Math.ceil(num * multiplier) / multiplier;\n default:\n return Math.round(num * multiplier) / multiplier;\n }\n};\n\n/** Props for the {@link UITableStatisticDisplay} component. */\ntype Props = {\n /** Character used to separate the integer and fractional parts (default: `'.'`). */\n decimalSeparator?: string;\n /** Character used to separate thousands groups (default: `','`). */\n groupSeparator?: string;\n /** Optional node rendered before the formatted number (e.g. a currency symbol). */\n prefix?: React.ReactNode;\n /** Optional node rendered after the formatted number (e.g. a unit label). */\n suffix?: React.ReactNode;\n /** Number of decimal digits to display. */\n precision?: number;\n /** Rounding strategy applied before formatting (default: `'round'`). */\n roundingMode?: 'round' | 'floor' | 'ceil';\n /** When `true`, pads the fractional part with trailing zeros up to `precision` digits. */\n showTrailingZeros?: boolean;\n /** Font-size variant for the displayed number (default: `'lg'`). */\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n /** The numeric or string value to format; falsy / invalid values render an empty state. */\n value: number | string | null | undefined;\n};\n\n/**\n * A memoized table-cell component that formats a numeric value with configurable\n * separators, precision, rounding, and size; renders {@link UITableEmpty} when\n * the value is zero, invalid, or absent.\n *\n * @example\n * import { UITableStatisticDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableStatisticDisplay value={1234567.89} precision={2} prefix=\"$\" size=\"md\" />\n */\nexport const UITableStatisticDisplay = memo(\n ({\n decimalSeparator = '.',\n groupSeparator = ',',\n prefix: Prefix,\n suffix: Suffix,\n precision,\n roundingMode = 'round',\n showTrailingZeros = false,\n size = 'lg',\n value = 0,\n }: Props) => {\n // Memoize number formatting options\n const formatOptions = useMemo((): Intl.NumberFormatOptions => {\n const options: Intl.NumberFormatOptions = {};\n\n if (typeof precision === 'number' && precision >= 0 && showTrailingZeros) {\n options.minimumFractionDigits = precision;\n options.maximumFractionDigits = precision;\n } else {\n options.maximumFractionDigits = precision;\n }\n\n return options;\n }, [precision, showTrailingZeros]);\n\n const formatNumber = useCallback(\n (num: number): string => {\n let processedNum = num;\n\n // Áp dụng làm tròn nếu có precision\n if (typeof precision === 'number' && precision >= 0) {\n processedNum = applyRounding(num, precision, roundingMode);\n }\n\n return processedNum.toLocaleString('en-US', formatOptions);\n },\n [roundingMode, formatOptions, precision]\n );\n\n // Memoize value processing\n const processedValue = useMemo((): string => {\n // Xử lý giá trị number\n if (typeof value === 'number') {\n if (Number.isNaN(value) || !Number.isFinite(value)) {\n return 'N/A';\n }\n return formatNumber(value);\n }\n\n // Xử lý giá trị string\n if (typeof value === 'string') {\n const trimmedValue = value.trim();\n\n // Nếu là chuỗi rỗng\n if (!trimmedValue) {\n return 'N/A';\n }\n\n // Thử convert sang number\n const numValue = Number(trimmedValue);\n\n if (Number.isNaN(numValue) || !Number.isFinite(numValue)) {\n // Nếu không phải số, trả về string gốc\n return 'N/A';\n }\n\n return formatNumber(numValue);\n }\n\n return 'N/A';\n }, [value, formatNumber]);\n\n // Memoize separator replacement\n const finalFormattedValue = useMemo((): string => {\n // Chỉ thay thế separators nếu khác mặc định\n if (decimalSeparator === '.' && groupSeparator === ',') {\n return processedValue;\n }\n return processedValue.replace(/,/g, groupSeparator).replace(/\\./g, decimalSeparator);\n }, [processedValue, decimalSeparator, groupSeparator]);\n\n if (finalFormattedValue === '0' || finalFormattedValue === 'N/A' || !finalFormattedValue) {\n return <UITableEmpty />;\n }\n\n return (\n <Flex\n padding=\"none\"\n className={cn(\n 'font-number text-lg text-text-positive tabular-nums',\n size === 'xs' && 'text-xs',\n size === 'sm' && 'text-sm',\n size === 'md' && 'text-base',\n size === 'lg' && 'text-lg',\n size === 'xl' && 'text-xl'\n )}\n >\n {Prefix}\n <p>{finalFormattedValue}</p>\n {Suffix}\n </Flex>\n );\n }\n);\nUITableStatisticDisplay.displayName = 'UITableStatisticDisplay';\n"],"mappings":"qPAeA,MAAM,GAAiB,EAAa,EAAwB,IAA8C,CACxG,IAAM,EAAa,IAAM,EAEzB,OAAQ,EAAR,CACE,IAAK,QACH,OAAO,KAAK,MAAM,EAAM,CAAU,EAAI,EACxC,IAAK,OACH,OAAO,KAAK,KAAK,EAAM,CAAU,EAAI,EACvC,QACE,OAAO,KAAK,MAAM,EAAM,CAAU,EAAI,CAC1C,CACF,EAkCa,EAA0B,GACpC,CACC,mBAAmB,IACnB,iBAAiB,IACjB,OAAQ,EACR,OAAQ,EACR,YACA,eAAe,QACf,oBAAoB,GACpB,OAAO,KACP,QAAQ,KACG,CAEX,IAAM,EAAgB,MAAwC,CAC5D,IAAM,EAAoC,CAAC,EAS3C,OAPI,OAAO,GAAc,UAAY,GAAa,GAAK,IACrD,EAAQ,sBAAwB,GAGhC,EAAQ,sBAAwB,EAG3B,CACT,EAAG,CAAC,EAAW,CAAiB,CAAC,EAE3B,EAAe,EAClB,GAAwB,CACvB,IAAI,EAAe,EAOnB,OAJI,OAAO,GAAc,UAAY,GAAa,IAChD,EAAe,EAAc,EAAK,EAAW,CAAY,GAGpD,EAAa,eAAe,QAAS,CAAa,CAC3D,EACA,CAAC,EAAc,EAAe,CAAS,CACzC,EAGM,EAAiB,MAAsB,CAE3C,GAAI,OAAO,GAAU,SAInB,OAHI,OAAO,MAAM,CAAK,GAAK,CAAC,OAAO,SAAS,CAAK,EACxC,MAEF,EAAa,CAAK,EAI3B,GAAI,OAAO,GAAU,SAAU,CAC7B,IAAM,EAAe,EAAM,KAAK,EAGhC,GAAI,CAAC,EACH,MAAO,MAIT,IAAM,EAAW,OAAO,CAAY,EAOpC,OALI,OAAO,MAAM,CAAQ,GAAK,CAAC,OAAO,SAAS,CAAQ,EAE9C,MAGF,EAAa,CAAQ,CAC9B,CAEA,MAAO,KACT,EAAG,CAAC,EAAO,CAAY,CAAC,EAGlB,EAAsB,MAEtB,IAAqB,KAAO,IAAmB,IAC1C,EAEF,EAAe,QAAQ,KAAM,CAAc,CAAC,CAAC,QAAQ,MAAO,CAAgB,EAClF,CAAC,EAAgB,EAAkB,CAAc,CAAC,EAMrD,OAJI,IAAwB,KAAO,IAAwB,OAAS,CAAC,EAC5D,EAAC,EAAD,CAAe,CAAA,EAItB,EAAC,EAAD,CACE,QAAQ,OACR,UAAW,EACT,sDACA,IAAS,MAAQ,UACjB,IAAS,MAAQ,UACjB,IAAS,MAAQ,YACjB,IAAS,MAAQ,UACjB,IAAS,MAAQ,SACnB,WATF,CAWG,EACD,EAAC,IAAD,CAAA,SAAI,CAAuB,CAAA,EAC1B,CACG,GAEV,CACF,EACA,EAAwB,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Badge as e}from"./ui/badge.mjs";import{Y as t}from"./tables-
|
|
2
|
-
//# sourceMappingURL=status-display-
|
|
1
|
+
import{Badge as e}from"./ui/badge.mjs";import{Y as t}from"./tables-9d53sH9E.mjs";import{jsx as n}from"react/jsx-runtime";const r=({value:r,colorMap:i,defaultColor:a=`muted`,variant:o=`soft`})=>r==null||r===``?n(t,{}):n(e,{variant:o,color:(i&&i[r])??a,size:`sm`,className:`min-w-16 justify-center capitalize`,children:r.charAt(0).toUpperCase()+r.slice(1).replace(/_/g,` `)});export{r as UITableStatusDisplay};
|
|
2
|
+
//# sourceMappingURL=status-display-BKe0EupF.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-display-
|
|
1
|
+
{"version":3,"file":"status-display-BKe0EupF.mjs","names":[],"sources":["../packages/components/features/tables/components/atoms/status-display.tsx"],"sourcesContent":["'use client';\n\nimport { Badge } from '@/components/ui/badge';\nimport { UITableEmpty } from './empty';\n\ntype BadgeColor = 'primary' | 'secondary' | 'muted' | 'accent' | 'info' | 'success' | 'warning' | 'danger';\n\n/** Props for the {@link UITableStatusDisplay} component. */\ntype Props = {\n /** The status string to display; `null`/`undefined` renders an empty state. */\n value: string | null | undefined;\n /**\n * Maps each status string to a badge color. Any key not present in the map\n * falls back to `defaultColor`.\n */\n colorMap?: Record<string, BadgeColor>;\n /** Color used when `value` is not found in `colorMap` (default: `'muted'`). */\n defaultColor?: BadgeColor;\n /** Badge variant forwarded to the underlying {@link Badge} (default: `'soft'`). */\n variant?: 'solid' | 'soft' | 'outline';\n};\n\n/**\n * Renders a color-coded status badge for a table cell. The mapping from status\n * string to badge color is fully configurable via `colorMap`; unknown statuses\n * fall back to `defaultColor`.\n *\n * @example\n * import { UITableStatusDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableStatusDisplay\n * value=\"active\"\n * colorMap={{ active: 'success', inactive: 'danger', pending: 'warning' }}\n * />\n */\nexport const UITableStatusDisplay: React.FC<Props> = ({ value, colorMap, defaultColor = 'muted', variant = 'soft' }) => {\n if (value === null || value === undefined || value === '') return <UITableEmpty />;\n\n const color: BadgeColor = (colorMap && colorMap[value]) ?? defaultColor;\n const label = value.charAt(0).toUpperCase() + value.slice(1).replace(/_/g, ' ');\n\n return (\n <Badge variant={variant} color={color} size=\"sm\" className=\"min-w-16 justify-center capitalize\">\n {label}\n </Badge>\n );\n};\n"],"mappings":"yHAmCA,MAAa,GAAyC,CAAE,QAAO,WAAU,eAAe,QAAS,UAAU,UACrG,GAAU,MAA+B,IAAU,GAAW,EAAC,EAAD,CAAe,CAAA,EAM/E,EAAC,EAAD,CAAgB,UAAS,OAJA,GAAY,EAAS,KAAW,EAIlB,KAAK,KAAK,UAAU,8CAH/C,EAAM,OAAO,CAAC,CAAC,CAAC,YAAY,EAAI,EAAM,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAM,GAAG,CAKrE,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./ui/badge.cjs"),t=require("./tables-
|
|
2
|
-
//# sourceMappingURL=status-display-
|
|
1
|
+
const e=require("./ui/badge.cjs"),t=require("./tables-B1O9qy-m.cjs");let n=require("react/jsx-runtime");const r=({value:r,colorMap:i,defaultColor:a=`muted`,variant:o=`soft`})=>r==null||r===``?(0,n.jsx)(t.Y,{}):(0,n.jsx)(e.Badge,{variant:o,color:(i&&i[r])??a,size:`sm`,className:`min-w-16 justify-center capitalize`,children:r.charAt(0).toUpperCase()+r.slice(1).replace(/_/g,` `)});exports.UITableStatusDisplay=r;
|
|
2
|
+
//# sourceMappingURL=status-display-BRJX53bQ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status-display-
|
|
1
|
+
{"version":3,"file":"status-display-BRJX53bQ.cjs","names":["UITableEmpty","Badge"],"sources":["../packages/components/features/tables/components/atoms/status-display.tsx"],"sourcesContent":["'use client';\n\nimport { Badge } from '@/components/ui/badge';\nimport { UITableEmpty } from './empty';\n\ntype BadgeColor = 'primary' | 'secondary' | 'muted' | 'accent' | 'info' | 'success' | 'warning' | 'danger';\n\n/** Props for the {@link UITableStatusDisplay} component. */\ntype Props = {\n /** The status string to display; `null`/`undefined` renders an empty state. */\n value: string | null | undefined;\n /**\n * Maps each status string to a badge color. Any key not present in the map\n * falls back to `defaultColor`.\n */\n colorMap?: Record<string, BadgeColor>;\n /** Color used when `value` is not found in `colorMap` (default: `'muted'`). */\n defaultColor?: BadgeColor;\n /** Badge variant forwarded to the underlying {@link Badge} (default: `'soft'`). */\n variant?: 'solid' | 'soft' | 'outline';\n};\n\n/**\n * Renders a color-coded status badge for a table cell. The mapping from status\n * string to badge color is fully configurable via `colorMap`; unknown statuses\n * fall back to `defaultColor`.\n *\n * @example\n * import { UITableStatusDisplay } from '@customafk/lunas-ui/features/tables';\n *\n * <UITableStatusDisplay\n * value=\"active\"\n * colorMap={{ active: 'success', inactive: 'danger', pending: 'warning' }}\n * />\n */\nexport const UITableStatusDisplay: React.FC<Props> = ({ value, colorMap, defaultColor = 'muted', variant = 'soft' }) => {\n if (value === null || value === undefined || value === '') return <UITableEmpty />;\n\n const color: BadgeColor = (colorMap && colorMap[value]) ?? defaultColor;\n const label = value.charAt(0).toUpperCase() + value.slice(1).replace(/_/g, ' ');\n\n return (\n <Badge variant={variant} color={color} size=\"sm\" className=\"min-w-16 justify-center capitalize\">\n {label}\n </Badge>\n );\n};\n"],"mappings":"wGAmCA,MAAa,GAAyC,CAAE,QAAO,WAAU,eAAe,QAAS,UAAU,UACrG,GAAU,MAA+B,IAAU,IAAW,EAAA,EAAA,IAAA,CAACA,EAAAA,EAAD,CAAe,CAAA,GAM/E,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CAAgB,UAAS,OAJA,GAAY,EAAS,KAAW,EAIlB,KAAK,KAAK,UAAU,8CAH/C,EAAM,OAAO,CAAC,CAAC,CAAC,YAAY,EAAI,EAAM,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAM,GAAG,CAKrE,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Statistic as e}from"./data-display/statistic.mjs";import{q as t}from"./tables-
|
|
2
|
-
//# sourceMappingURL=summary-bar-
|
|
1
|
+
import{Statistic as e}from"./data-display/statistic.mjs";import{q as t}from"./tables-9d53sH9E.mjs";import{memo as n}from"react";import{cn as r}from"@customafk/react-toolkit/utils";import{jsx as i,jsxs as a}from"react/jsx-runtime";const o={up:`bg-success`,down:`bg-danger`,neutral:`bg-primary`},s=n(()=>{let{summary:n,onSummaryItemClick:s}=t();return!n||n.length===0?null:i(`div`,{"data-slot":`table-summary-bar`,className:`w-full overflow-x-auto px-2 pb-1`,children:i(`div`,{className:`grid gap-3`,style:{gridTemplateColumns:`repeat(auto-fill, minmax(200px, 240px))`},children:n.map(t=>{let n=o[t.trend??`neutral`],c=!!s;return a(`div`,{className:r(`flex flex-col overflow-hidden rounded border border-border bg-card shadow-card`,c&&`cursor-pointer transition-shadow hover:shadow-md`),onClick:c?()=>s(t):void 0,role:c?`button`:void 0,tabIndex:c?0:void 0,onKeyDown:c?e=>{(e.key===`Enter`||e.key===` `)&&s(t)}:void 0,children:[i(`div`,{className:r(`h-0.75 w-full shrink-0`,n)}),a(`div`,{className:`flex flex-1 flex-col gap-2 px-5 py-4`,children:[i(`span`,{className:`text-[11px] font-semibold uppercase tracking-widest text-text-positive-weak`,children:t.label}),t.value!==null&&t.value!==void 0?i(e,{value:t.value,prefix:t.prefix,suffix:t.suffix,precision:t.precision,trend:t.trend,size:`xl`,className:`font-bold`}):i(`span`,{className:`text-xl font-bold tabular-nums text-text-positive-strong`,children:`—`}),t.description&&i(`span`,{className:`text-xs text-text-positive-weak`,children:t.description})]})]},t.label)})})})});s.displayName=`UITableSummaryBar`;export{s as UITableSummaryBar};
|
|
2
|
+
//# sourceMappingURL=summary-bar-ByYm7uWR.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary-bar-
|
|
1
|
+
{"version":3,"file":"summary-bar-ByYm7uWR.mjs","names":[],"sources":["../packages/components/features/tables/components/table/summary-bar.tsx"],"sourcesContent":["'use client';\nimport { memo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Statistic } from '@/components/data-display/statistic';\n\nimport { useUITableContext } from '../../hooks/use-context';\nimport type { SummaryItem } from '../../types';\n\nconst trendAccent: Record<NonNullable<SummaryItem['trend']>, string> = {\n up: 'bg-success',\n down: 'bg-danger',\n neutral: 'bg-primary',\n};\n\nexport const UITableSummaryBar = memo(() => {\n const { summary, onSummaryItemClick } = useUITableContext();\n\n if (!summary || summary.length === 0) return null;\n\n return (\n <div data-slot=\"table-summary-bar\" className=\"w-full overflow-x-auto px-2 pb-1\">\n <div className=\"grid gap-3\" style={{ gridTemplateColumns: 'repeat(auto-fill, minmax(200px, 240px))' }}>\n {summary.map(item => {\n const accent = trendAccent[item.trend ?? 'neutral'];\n const isClickable = !!onSummaryItemClick;\n\n return (\n <div\n key={item.label}\n className={cn(\n 'flex flex-col overflow-hidden rounded border border-border bg-card shadow-card',\n isClickable && 'cursor-pointer transition-shadow hover:shadow-md'\n )}\n onClick={isClickable ? () => onSummaryItemClick(item) : undefined}\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onKeyDown={\n isClickable\n ? e => {\n if (e.key === 'Enter' || e.key === ' ') onSummaryItemClick(item);\n }\n : undefined\n }\n >\n {/* Coloured accent strip */}\n <div className={cn('h-0.75 w-full shrink-0', accent)} />\n\n <div className=\"flex flex-1 flex-col gap-2 px-5 py-4\">\n {/* Label */}\n <span className=\"text-[11px] font-semibold uppercase tracking-widest text-text-positive-weak\">{item.label}</span>\n\n {/* Value */}\n {item.value !== null && item.value !== undefined ? (\n <Statistic\n value={item.value}\n prefix={item.prefix}\n suffix={item.suffix}\n precision={item.precision}\n trend={item.trend}\n size=\"xl\"\n className=\"font-bold\"\n />\n ) : (\n <span className=\"text-xl font-bold tabular-nums text-text-positive-strong\">—</span>\n )}\n\n {/* Description */}\n {item.description && <span className=\"text-xs text-text-positive-weak\">{item.description}</span>}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n});\nUITableSummaryBar.displayName = 'UITableSummaryBar';\n"],"mappings":"sOAUA,MAAM,EAAiE,CACrE,GAAI,aACJ,KAAM,YACN,QAAS,YACX,EAEa,EAAoB,MAAW,CAC1C,GAAM,CAAE,UAAS,sBAAuB,EAAkB,EAI1D,MAFI,CAAC,GAAW,EAAQ,SAAW,EAAU,KAG3C,EAAC,MAAD,CAAK,YAAU,oBAAoB,UAAU,4CAC3C,EAAC,MAAD,CAAK,UAAU,aAAa,MAAO,CAAE,oBAAqB,yCAA0C,WACjG,EAAQ,IAAI,GAAQ,CACnB,IAAM,EAAS,EAAY,EAAK,OAAS,WACnC,EAAc,CAAC,CAAC,EAEtB,OACE,EAAC,MAAD,CAEE,UAAW,EACT,iFACA,GAAe,kDACjB,EACA,QAAS,MAAoB,EAAmB,CAAI,EAAI,IAAA,GACxD,KAAM,EAAc,SAAW,IAAA,GAC/B,SAAU,EAAc,EAAI,IAAA,GAC5B,UACE,EACI,GAAK,EACC,EAAE,MAAQ,SAAW,EAAE,MAAQ,MAAK,EAAmB,CAAI,CACjE,EACA,IAAA,YAdR,CAkBE,EAAC,MAAD,CAAK,UAAW,EAAG,yBAA0B,CAAM,CAAI,CAAA,EAEvD,EAAC,MAAD,CAAK,UAAU,gDAAf,CAEE,EAAC,OAAD,CAAM,UAAU,uFAA+E,EAAK,KAAY,CAAA,EAG/G,EAAK,QAAU,MAAQ,EAAK,QAAU,IAAA,GACrC,EAAC,EAAD,CACE,MAAO,EAAK,MACZ,OAAQ,EAAK,OACb,OAAQ,EAAK,OACb,UAAW,EAAK,UAChB,MAAO,EAAK,MACZ,KAAK,KACL,UAAU,WACX,CAAA,EAED,EAAC,OAAD,CAAM,UAAU,oEAA2D,GAAO,CAAA,EAInF,EAAK,aAAe,EAAC,OAAD,CAAM,UAAU,2CAAmC,EAAK,WAAkB,CAAA,CAC5F,GACF,GAzCE,EAAK,KAyCP,CAET,CAAC,CACE,CAAA,CACF,CAAA,CAET,CAAC,EACD,EAAkB,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./data-display/statistic.cjs"),t=require("./tables-
|
|
2
|
-
//# sourceMappingURL=summary-bar-
|
|
1
|
+
const e=require("./data-display/statistic.cjs"),t=require("./tables-B1O9qy-m.cjs");let n=require("react"),r=require("@customafk/react-toolkit/utils"),i=require("react/jsx-runtime");const a={up:`bg-success`,down:`bg-danger`,neutral:`bg-primary`},o=(0,n.memo)(()=>{let{summary:n,onSummaryItemClick:o}=t.q();return!n||n.length===0?null:(0,i.jsx)(`div`,{"data-slot":`table-summary-bar`,className:`w-full overflow-x-auto px-2 pb-1`,children:(0,i.jsx)(`div`,{className:`grid gap-3`,style:{gridTemplateColumns:`repeat(auto-fill, minmax(200px, 240px))`},children:n.map(t=>{let n=a[t.trend??`neutral`],s=!!o;return(0,i.jsxs)(`div`,{className:(0,r.cn)(`flex flex-col overflow-hidden rounded border border-border bg-card shadow-card`,s&&`cursor-pointer transition-shadow hover:shadow-md`),onClick:s?()=>o(t):void 0,role:s?`button`:void 0,tabIndex:s?0:void 0,onKeyDown:s?e=>{(e.key===`Enter`||e.key===` `)&&o(t)}:void 0,children:[(0,i.jsx)(`div`,{className:(0,r.cn)(`h-0.75 w-full shrink-0`,n)}),(0,i.jsxs)(`div`,{className:`flex flex-1 flex-col gap-2 px-5 py-4`,children:[(0,i.jsx)(`span`,{className:`text-[11px] font-semibold uppercase tracking-widest text-text-positive-weak`,children:t.label}),t.value!==null&&t.value!==void 0?(0,i.jsx)(e.Statistic,{value:t.value,prefix:t.prefix,suffix:t.suffix,precision:t.precision,trend:t.trend,size:`xl`,className:`font-bold`}):(0,i.jsx)(`span`,{className:`text-xl font-bold tabular-nums text-text-positive-strong`,children:`—`}),t.description&&(0,i.jsx)(`span`,{className:`text-xs text-text-positive-weak`,children:t.description})]})]},t.label)})})})});o.displayName=`UITableSummaryBar`,exports.UITableSummaryBar=o;
|
|
2
|
+
//# sourceMappingURL=summary-bar-DjdtmsIY.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary-bar-
|
|
1
|
+
{"version":3,"file":"summary-bar-DjdtmsIY.cjs","names":["useUITableContext","Statistic"],"sources":["../packages/components/features/tables/components/table/summary-bar.tsx"],"sourcesContent":["'use client';\nimport { memo } from 'react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Statistic } from '@/components/data-display/statistic';\n\nimport { useUITableContext } from '../../hooks/use-context';\nimport type { SummaryItem } from '../../types';\n\nconst trendAccent: Record<NonNullable<SummaryItem['trend']>, string> = {\n up: 'bg-success',\n down: 'bg-danger',\n neutral: 'bg-primary',\n};\n\nexport const UITableSummaryBar = memo(() => {\n const { summary, onSummaryItemClick } = useUITableContext();\n\n if (!summary || summary.length === 0) return null;\n\n return (\n <div data-slot=\"table-summary-bar\" className=\"w-full overflow-x-auto px-2 pb-1\">\n <div className=\"grid gap-3\" style={{ gridTemplateColumns: 'repeat(auto-fill, minmax(200px, 240px))' }}>\n {summary.map(item => {\n const accent = trendAccent[item.trend ?? 'neutral'];\n const isClickable = !!onSummaryItemClick;\n\n return (\n <div\n key={item.label}\n className={cn(\n 'flex flex-col overflow-hidden rounded border border-border bg-card shadow-card',\n isClickable && 'cursor-pointer transition-shadow hover:shadow-md'\n )}\n onClick={isClickable ? () => onSummaryItemClick(item) : undefined}\n role={isClickable ? 'button' : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onKeyDown={\n isClickable\n ? e => {\n if (e.key === 'Enter' || e.key === ' ') onSummaryItemClick(item);\n }\n : undefined\n }\n >\n {/* Coloured accent strip */}\n <div className={cn('h-0.75 w-full shrink-0', accent)} />\n\n <div className=\"flex flex-1 flex-col gap-2 px-5 py-4\">\n {/* Label */}\n <span className=\"text-[11px] font-semibold uppercase tracking-widest text-text-positive-weak\">{item.label}</span>\n\n {/* Value */}\n {item.value !== null && item.value !== undefined ? (\n <Statistic\n value={item.value}\n prefix={item.prefix}\n suffix={item.suffix}\n precision={item.precision}\n trend={item.trend}\n size=\"xl\"\n className=\"font-bold\"\n />\n ) : (\n <span className=\"text-xl font-bold tabular-nums text-text-positive-strong\">—</span>\n )}\n\n {/* Description */}\n {item.description && <span className=\"text-xs text-text-positive-weak\">{item.description}</span>}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n});\nUITableSummaryBar.displayName = 'UITableSummaryBar';\n"],"mappings":"qLAUA,MAAM,EAAiE,CACrE,GAAI,aACJ,KAAM,YACN,QAAS,YACX,EAEa,GAAA,EAAA,EAAA,KAAA,KAA+B,CAC1C,GAAM,CAAE,UAAS,sBAAuBA,EAAAA,EAAkB,EAI1D,MAFI,CAAC,GAAW,EAAQ,SAAW,EAAU,MAG3C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,YAAU,oBAAoB,UAAU,6CAC3C,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,aAAa,MAAO,CAAE,oBAAqB,yCAA0C,WACjG,EAAQ,IAAI,GAAQ,CACnB,IAAM,EAAS,EAAY,EAAK,OAAS,WACnC,EAAc,CAAC,CAAC,EAEtB,OACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAEE,WAAA,EAAA,EAAA,GAAA,CACE,iFACA,GAAe,kDACjB,EACA,QAAS,MAAoB,EAAmB,CAAI,EAAI,IAAA,GACxD,KAAM,EAAc,SAAW,IAAA,GAC/B,SAAU,EAAc,EAAI,IAAA,GAC5B,UACE,EACI,GAAK,EACC,EAAE,MAAQ,SAAW,EAAE,MAAQ,MAAK,EAAmB,CAAI,CACjE,EACA,IAAA,YAdR,EAkBE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,WAAA,EAAA,EAAA,GAAA,CAAc,yBAA0B,CAAM,CAAI,CAAA,GAEvD,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,gDAAf,EAEE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,uFAA+E,EAAK,KAAY,CAAA,EAG/G,EAAK,QAAU,MAAQ,EAAK,QAAU,IAAA,IACrC,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CACE,MAAO,EAAK,MACZ,OAAQ,EAAK,OACb,OAAQ,EAAK,OACb,UAAW,EAAK,UAChB,MAAO,EAAK,MACZ,KAAK,KACL,UAAU,WACX,CAAA,GAED,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,oEAA2D,GAAO,CAAA,EAInF,EAAK,cAAe,EAAA,EAAA,IAAA,CAAC,OAAD,CAAM,UAAU,2CAAmC,EAAK,WAAkB,CAAA,CAC5F,GACF,GAzCE,EAAK,KAyCP,CAET,CAAC,CACE,CAAA,CACF,CAAA,CAET,CAAC,EACD,EAAkB,YAAc"}
|