@customafk/lunas-ui 0.2.59 → 0.2.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/cms-layout-BMwn0Yv3.cjs +2 -0
  2. package/dist/cms-layout-BMwn0Yv3.cjs.map +1 -0
  3. package/dist/cms-layout-sd6GB6tR.mjs +2 -0
  4. package/dist/cms-layout-sd6GB6tR.mjs.map +1 -0
  5. package/dist/dialogs/detail-dialog/index.cjs +1 -1
  6. package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
  7. package/dist/dialogs/detail-dialog/index.mjs +1 -1
  8. package/dist/dialogs/detail-dialog/index.mjs.map +1 -1
  9. package/dist/features/logo/index.cjs +2 -0
  10. package/dist/features/logo/index.cjs.map +1 -0
  11. package/dist/features/logo/index.d.cts +22 -0
  12. package/dist/features/logo/index.d.mts +22 -0
  13. package/dist/features/logo/index.mjs +2 -0
  14. package/dist/features/logo/index.mjs.map +1 -0
  15. package/dist/features/tables/index.cjs +1 -1
  16. package/dist/features/tables/index.mjs +1 -1
  17. package/dist/index.cjs +1 -1
  18. package/dist/index.d.cts +1 -1
  19. package/dist/index.d.mts +1 -1
  20. package/dist/index.mjs +1 -1
  21. package/dist/layouts/cms-layout/index.cjs +1 -1
  22. package/dist/layouts/cms-layout/index.mjs +1 -1
  23. package/dist/layouts/payment-layout/index.cjs +1 -1
  24. package/dist/layouts/payment-layout/index.mjs +1 -1
  25. package/dist/pages/FeatureDeveloping.cjs +1 -1
  26. package/dist/pages/FeatureDeveloping.cjs.map +1 -1
  27. package/dist/pages/FeatureDeveloping.mjs +1 -1
  28. package/dist/pages/FeatureDeveloping.mjs.map +1 -1
  29. package/dist/pages/FeatureFixing.cjs +1 -1
  30. package/dist/pages/FeatureFixing.cjs.map +1 -1
  31. package/dist/pages/FeatureFixing.mjs +1 -1
  32. package/dist/pages/FeatureFixing.mjs.map +1 -1
  33. package/dist/pages/LoginPage.cjs +1 -1
  34. package/dist/pages/LoginPage.cjs.map +1 -1
  35. package/dist/pages/LoginPage.mjs +1 -1
  36. package/dist/pages/LoginPage.mjs.map +1 -1
  37. package/dist/pages/NotAuthorized.cjs +1 -1
  38. package/dist/pages/NotAuthorized.cjs.map +1 -1
  39. package/dist/pages/NotAuthorized.mjs +1 -1
  40. package/dist/pages/NotAuthorized.mjs.map +1 -1
  41. package/dist/pages/NotFound.cjs +1 -1
  42. package/dist/pages/NotFound.cjs.map +1 -1
  43. package/dist/pages/NotFound.mjs +1 -1
  44. package/dist/pages/NotFound.mjs.map +1 -1
  45. package/dist/pages/RegisterPage.cjs +1 -1
  46. package/dist/pages/RegisterPage.cjs.map +1 -1
  47. package/dist/pages/RegisterPage.mjs +1 -1
  48. package/dist/pages/RegisterPage.mjs.map +1 -1
  49. package/dist/pages/VerifyEmailPage.cjs +1 -1
  50. package/dist/pages/VerifyEmailPage.cjs.map +1 -1
  51. package/dist/pages/VerifyEmailPage.mjs +1 -1
  52. package/dist/pages/VerifyEmailPage.mjs.map +1 -1
  53. package/dist/payment-layout-BLrXT-oc.cjs +2 -0
  54. package/dist/payment-layout-BLrXT-oc.cjs.map +1 -0
  55. package/dist/payment-layout-Dsz6wYT1.mjs +2 -0
  56. package/dist/{payment-layout-CG_l7Es-.mjs.map → payment-layout-Dsz6wYT1.mjs.map} +1 -1
  57. package/dist/{resizable-CVpc0g5U.d.cts → resizable-CFCYn9e_.d.cts} +2 -2
  58. package/dist/{resizable-CVpc0g5U.d.mts → resizable-CFCYn9e_.d.mts} +2 -2
  59. package/dist/{tables-UaA4qIaD.mjs → tables-B9cF58YD.mjs} +2 -2
  60. package/dist/{tables-UaA4qIaD.mjs.map → tables-B9cF58YD.mjs.map} +1 -1
  61. package/dist/{tables-CNJ10l7L.cjs → tables-NiAoBy75.cjs} +2 -2
  62. package/dist/{tables-CNJ10l7L.cjs.map → tables-NiAoBy75.cjs.map} +1 -1
  63. package/dist/tanstack-form-BMVn8ai_.cjs.map +1 -1
  64. package/dist/tanstack-form-DTCgWGCA.mjs.map +1 -1
  65. package/dist/ui/resizable.d.cts +1 -1
  66. package/dist/ui/resizable.d.mts +1 -1
  67. package/package.json +5 -1
  68. package/dist/cms-layout-Bsw2mKXo.cjs +0 -2
  69. package/dist/cms-layout-Bsw2mKXo.cjs.map +0 -1
  70. package/dist/cms-layout-IwpD0LvR.mjs +0 -2
  71. package/dist/cms-layout-IwpD0LvR.mjs.map +0 -1
  72. package/dist/payment-layout-CG_l7Es-.mjs +0 -2
  73. package/dist/payment-layout-Dlvc1P7b.cjs +0 -2
  74. package/dist/payment-layout-Dlvc1P7b.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../packages/components/features/logo/index.tsx"],"sourcesContent":["'use client';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nexport type LunasLogoVariant = 'horizontal' | 'stacked' | 'icon';\nexport type LunasLogoColorScheme = 'purple' | 'white' | 'black';\nexport type LunasLogoSize = 'xs' | 'sm' | 'md' | 'lg';\nexport type LunasLogoIconStyle = 'plain' | 'solid' | 'outline';\n\nexport type LunasLogoProps = {\n variant?: LunasLogoVariant;\n colorScheme?: LunasLogoColorScheme;\n size?: LunasLogoSize;\n /** Only applies when variant=\"icon\". Controls background/border style. */\n iconStyle?: LunasLogoIconStyle;\n className?: string;\n};\n\nconst colorMap = {\n purple: { moon: '#8B5CF6', accent: '#D9A441', text: '#3B1F73', sub: '#D9A441' },\n white: { moon: '#FFFFFF', accent: '#FFFFFF', text: '#FFFFFF', sub: '#FFFFFF' },\n black: { moon: '#000000', accent: '#D9A441', text: '#000000', sub: '#D9A441' },\n} as const;\n\n// Colors used when the icon sits on a filled (solid) background\nconst solidIconColors = {\n purple: { bg: '#8B5CF6', moon: '#FFFFFF', accent: '#F2C772' },\n white: { bg: '#FFFFFF', moon: '#8B5CF6', accent: '#D9A441' },\n black: { bg: '#1A1A1A', moon: '#FFFFFF', accent: '#F2C772' },\n} as const;\n\nconst sizeMap = {\n xs: { icon: 20, horizontal: [120, 51] as const, stacked: [88, 76] as const },\n sm: { icon: 28, horizontal: [160, 69] as const, stacked: [110, 95] as const },\n md: { icon: 40, horizontal: [233, 100] as const, stacked: [146, 127] as const },\n lg: { icon: 56, horizontal: [350, 150] as const, stacked: [220, 190] as const },\n} as const;\n\nfunction LunasIconPaths({ moon, accent }: { moon: string; accent: string }) {\n return (\n <>\n <path transform=\"translate(10,8) scale(3)\" d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\" fill={moon} />\n <path d=\"M82,9 L85,15 L91,18 L85,21 L82,27 L79,21 L73,18 L79,15 Z\" fill={accent} />\n <circle cx=\"28\" cy=\"86\" r=\"5\" fill={accent} />\n <circle cx=\"42\" cy=\"92\" r=\"6\" fill={accent} />\n <circle cx=\"56\" cy=\"86\" r=\"5\" fill={accent} />\n </>\n );\n}\n\nexport function LunasLogo({ variant = 'horizontal', colorScheme = 'purple', size = 'md', iconStyle = 'plain', className }: LunasLogoProps) {\n const colors = colorMap[colorScheme];\n const dims = sizeMap[size];\n\n if (variant === 'icon') {\n if (iconStyle === 'solid') {\n const solid = solidIconColors[colorScheme];\n return (\n <svg\n width={dims.icon}\n height={dims.icon}\n viewBox=\"0 0 100 100\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-label=\"Lunas logo\"\n className={cn('shrink-0', className)}\n >\n <rect width=\"100\" height=\"100\" rx=\"20\" fill={solid.bg} />\n <g transform=\"translate(10,10) scale(0.80)\">\n <LunasIconPaths moon={solid.moon} accent={solid.accent} />\n </g>\n </svg>\n );\n }\n\n if (iconStyle === 'outline') {\n return (\n <svg\n width={dims.icon}\n height={dims.icon}\n viewBox=\"0 0 100 100\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-label=\"Lunas logo\"\n className={cn('shrink-0', className)}\n >\n <rect x=\"2\" y=\"2\" width=\"96\" height=\"96\" rx=\"18\" fill=\"none\" stroke={colors.moon} strokeWidth=\"4\" />\n <g transform=\"translate(10,10) scale(0.80)\">\n <LunasIconPaths moon={colors.moon} accent={colors.accent} />\n </g>\n </svg>\n );\n }\n\n return (\n <svg\n width={dims.icon}\n height={dims.icon}\n viewBox=\"0 0 100 100\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-label=\"Lunas logo\"\n className={cn('shrink-0', className)}\n >\n <LunasIconPaths moon={colors.moon} accent={colors.accent} />\n </svg>\n );\n }\n\n if (variant === 'stacked') {\n const [w, h] = dims.stacked;\n return (\n <svg width={w} height={h} viewBox=\"0 0 220 190\" xmlns=\"http://www.w3.org/2000/svg\" aria-label=\"Lunas Store\" className={cn('shrink-0', className)}>\n <g transform=\"translate(60,15) scale(1.0)\">\n <LunasIconPaths moon={colors.moon} accent={colors.accent} />\n </g>\n <text x=\"110\" y=\"150\" textAnchor=\"middle\" fontFamily=\"Arial, Helvetica, sans-serif\" fontSize=\"34\" fontWeight=\"700\" fill={colors.text}>\n Lunas\n </text>\n <text x=\"110\" y=\"174\" textAnchor=\"middle\" fontFamily=\"Arial, Helvetica, sans-serif\" fontSize=\"13\" fontWeight=\"700\" letterSpacing=\"3\" fill={colors.sub}>\n STORE\n </text>\n </svg>\n );\n }\n\n const [w, h] = dims.horizontal;\n return (\n <svg width={w} height={h} viewBox=\"0 0 350 150\" xmlns=\"http://www.w3.org/2000/svg\" aria-label=\"Lunas Store\" className={cn('shrink-0', className)}>\n <g transform=\"translate(10,15) scale(1.2)\">\n <LunasIconPaths moon={colors.moon} accent={colors.accent} />\n </g>\n <text x=\"150\" y=\"78\" fontFamily=\"Arial, Helvetica, sans-serif\" fontSize=\"54\" fontWeight=\"700\" fill={colors.text}>\n Lunas\n </text>\n <text x=\"152\" y=\"106\" fontFamily=\"Arial, Helvetica, sans-serif\" fontSize=\"15\" fontWeight=\"700\" letterSpacing=\"4\" fill={colors.sub}>\n STORE\n </text>\n </svg>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tables-CNJ10l7L.cjs");exports.UITableAnalysisPanel=e.s,exports.UITableAvatarNameDisplay=e.W,exports.UITableBadgeDisplay=e.U,exports.UITableBody=e.T,exports.UITableBooleanDisplay=e.H,exports.UITableCell=e.w,exports.UITableCellActions=e.C,exports.UITableCellSelect=e.S,exports.UITableContainer=e.c,exports.UITableCurrencyDisplay=e.V,exports.UITableDateDisplay=e.B,exports.UITableDescriptionDisplay=e.z,exports.UITableEditButton=e.R,exports.UITableEmailDisplay=e.L,exports.UITableEmptyDisplay=e.x,exports.UITableFilter=e.o,exports.UITableFooter=e.b,exports.UITableFooterRow=e.y,exports.UITableHead=e.v,exports.UITableHeadCell=e.g,exports.UITableHeadCellOption=e._,exports.UITableHeadCellSelect=e.h,exports.UITableHeadRow=e.m,exports.UITableInnerTable=e.p,exports.UITableInnerWrapper=e.f,exports.UITableListDisplay=e.I,exports.UITableLoadMore=e.d,exports.UITableMoreButton=e.F,exports.UITableNameDisplay=e.P,exports.UITablePermalink=e.N,exports.UITablePhoneNumberDisplay=e.M,exports.UITableProgressDisplay=e.j,exports.UITableProvider=e.a,exports.UITableRemoveButton=e.A,exports.UITableRow=e.u,exports.UITableStatisticDisplay=e.k,exports.UITableStatusDisplay=e.O,exports.UITableSummaryBar=e.i,exports.UITableToggleButton=e.D,exports.UITableTooltip=e.t,exports.UITableTooltipActions=e.n,exports.UITableTooltipFilter=e.r,exports.UITableUserDataDisplay=e.E,exports.UITableWrapper=e.l;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../tables-NiAoBy75.cjs");exports.UITableAnalysisPanel=e.s,exports.UITableAvatarNameDisplay=e.W,exports.UITableBadgeDisplay=e.U,exports.UITableBody=e.T,exports.UITableBooleanDisplay=e.H,exports.UITableCell=e.w,exports.UITableCellActions=e.C,exports.UITableCellSelect=e.S,exports.UITableContainer=e.c,exports.UITableCurrencyDisplay=e.V,exports.UITableDateDisplay=e.B,exports.UITableDescriptionDisplay=e.z,exports.UITableEditButton=e.R,exports.UITableEmailDisplay=e.L,exports.UITableEmptyDisplay=e.x,exports.UITableFilter=e.o,exports.UITableFooter=e.b,exports.UITableFooterRow=e.y,exports.UITableHead=e.v,exports.UITableHeadCell=e.g,exports.UITableHeadCellOption=e._,exports.UITableHeadCellSelect=e.h,exports.UITableHeadRow=e.m,exports.UITableInnerTable=e.p,exports.UITableInnerWrapper=e.f,exports.UITableListDisplay=e.I,exports.UITableLoadMore=e.d,exports.UITableMoreButton=e.F,exports.UITableNameDisplay=e.P,exports.UITablePermalink=e.N,exports.UITablePhoneNumberDisplay=e.M,exports.UITableProgressDisplay=e.j,exports.UITableProvider=e.a,exports.UITableRemoveButton=e.A,exports.UITableRow=e.u,exports.UITableStatisticDisplay=e.k,exports.UITableStatusDisplay=e.O,exports.UITableSummaryBar=e.i,exports.UITableToggleButton=e.D,exports.UITableTooltip=e.t,exports.UITableTooltipActions=e.n,exports.UITableTooltipFilter=e.r,exports.UITableUserDataDisplay=e.E,exports.UITableWrapper=e.l;
@@ -1 +1 @@
1
- import{A as e,B as t,C as n,D as r,E as i,F as a,H as o,I as s,L as c,M as l,N as u,O as d,P as f,R as p,S as m,T as h,U as g,V as _,W as v,_ as y,a as b,b as x,c as S,d as C,f as w,g as T,h as E,i as D,j as O,k,l as A,m as j,n as M,o as N,p as P,r as F,s as I,t as L,u as R,v as z,w as B,x as V,y as H,z as U}from"../../tables-UaA4qIaD.mjs";export{I as UITableAnalysisPanel,v as UITableAvatarNameDisplay,g as UITableBadgeDisplay,h as UITableBody,o as UITableBooleanDisplay,B as UITableCell,n as UITableCellActions,m as UITableCellSelect,S as UITableContainer,_ as UITableCurrencyDisplay,t as UITableDateDisplay,U as UITableDescriptionDisplay,p as UITableEditButton,c as UITableEmailDisplay,V as UITableEmptyDisplay,N as UITableFilter,x as UITableFooter,H as UITableFooterRow,z as UITableHead,T as UITableHeadCell,y as UITableHeadCellOption,E as UITableHeadCellSelect,j as UITableHeadRow,P as UITableInnerTable,w as UITableInnerWrapper,s as UITableListDisplay,C as UITableLoadMore,a as UITableMoreButton,f as UITableNameDisplay,u as UITablePermalink,l as UITablePhoneNumberDisplay,O as UITableProgressDisplay,b as UITableProvider,e as UITableRemoveButton,R as UITableRow,k as UITableStatisticDisplay,d as UITableStatusDisplay,D as UITableSummaryBar,r as UITableToggleButton,L as UITableTooltip,M as UITableTooltipActions,F as UITableTooltipFilter,i as UITableUserDataDisplay,A as UITableWrapper};
1
+ import{A as e,B as t,C as n,D as r,E as i,F as a,H as o,I as s,L as c,M as l,N as u,O as d,P as f,R as p,S as m,T as h,U as g,V as _,W as v,_ as y,a as b,b as x,c as S,d as C,f as w,g as T,h as E,i as D,j as O,k,l as A,m as j,n as M,o as N,p as P,r as F,s as I,t as L,u as R,v as z,w as B,x as V,y as H,z as U}from"../../tables-B9cF58YD.mjs";export{I as UITableAnalysisPanel,v as UITableAvatarNameDisplay,g as UITableBadgeDisplay,h as UITableBody,o as UITableBooleanDisplay,B as UITableCell,n as UITableCellActions,m as UITableCellSelect,S as UITableContainer,_ as UITableCurrencyDisplay,t as UITableDateDisplay,U as UITableDescriptionDisplay,p as UITableEditButton,c as UITableEmailDisplay,V as UITableEmptyDisplay,N as UITableFilter,x as UITableFooter,H as UITableFooterRow,z as UITableHead,T as UITableHeadCell,y as UITableHeadCellOption,E as UITableHeadCellSelect,j as UITableHeadRow,P as UITableInnerTable,w as UITableInnerWrapper,s as UITableListDisplay,C as UITableLoadMore,a as UITableMoreButton,f as UITableNameDisplay,u as UITablePermalink,l as UITablePhoneNumberDisplay,O as UITableProgressDisplay,b as UITableProvider,e as UITableRemoveButton,R as UITableRow,k as UITableStatisticDisplay,d as UITableStatusDisplay,D as UITableSummaryBar,r as UITableToggleButton,L as UITableTooltip,M as UITableTooltipActions,F as UITableTooltipFilter,i as UITableUserDataDisplay,A as UITableWrapper};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ui/button.cjs"),t=require("./typography/paragraph.cjs"),n=require("./ui/card.cjs"),r=require("./ui/skeleton.cjs"),ee=require("./ui/image.cjs"),te=require("./cards/grid-product-card.cjs"),ne=require("./cards/product-card.cjs"),re=require("./cards/simple-card.cjs"),ie=require("./layouts/flex.cjs"),ae=require("./data-display/country.cjs"),i=require("./data-display/data-list.cjs"),oe=require("./date-B3cozmfV.cjs"),a=require("./ui/badge.cjs"),o=require("./ui/tooltip.cjs"),s=require("./data-display/date-tooltip.cjs"),c=require("./data-display/empty.cjs"),l=require("./data-display/name.cjs"),se=require("./data-display/phone-number.cjs"),ce=require("./data-display/role-badge.cjs"),le=require("./data-display/statistic.cjs"),u=require("./ui/avatar.cjs"),ue=require("./data-display/user.cjs"),d=require("./ui/alert-dialog.cjs"),de=require("./dialogs/confirm-dialog.cjs"),fe=require("./typography/title.cjs"),pe=require("./ui/separator.cjs"),f=require("./ui/sheet.cjs"),me=require("./dialogs/detail-dialog/index.cjs"),p=require("./dialogs/error-dialog.cjs"),m=require("./ui/dialog.cjs"),he=require("./dialogs/loading-dialog.cjs"),h=require("./features/descriptions/index.cjs"),g=require("./ui/command.cjs"),ge=require("./search-modal-CMhsIxae.cjs"),_=require("./tables-CNJ10l7L.cjs"),v=require("./ui/dropdown-menu.cjs"),y=require("./ui/progress.cjs"),b=require("./ui/switch.cjs"),_e=require("./ui/checkbox.cjs"),ve=require("./ui/spinner.cjs"),x=require("./ui/resizable.cjs"),ye=require("./ui/input.cjs"),be=require("./ui/label.cjs"),S=require("./ui/popover.cjs"),C=require("./ui/select.cjs"),w=require("./tanstack-form-BMVn8ai_.cjs"),T=require("./ui/drawer.cjs"),E=require("./ui/calendar.cjs"),D=require("./ui/radio-group.cjs"),O=require("./ui/textarea.cjs"),k=require("./text-editor-DJYQXXtP.cjs"),A=require("./cms-layout-Bsw2mKXo.cjs"),j=require("./payment-layout-Dlvc1P7b.cjs"),M=require("./layouts/grid.cjs"),N=require("./pages/FeatureDeveloping.cjs"),xe=require("./pages/FeatureFixing.cjs"),Se=require("./pages/NotAuthorized.cjs"),Ce=require("./pages/NotFound.cjs"),P=require("./alert-D31c6DLq.cjs"),we=require("./pages/LoginPage.cjs"),Te=require("./pages/RegisterPage.cjs"),F=require("./ui/input-otp.cjs"),Ee=require("./pages/VerifyEmailPage.cjs"),De=require("./systems/google.cjs"),Oe=require("./ui/buttons/add-new.cjs"),ke=require("./ui/buttons/edit.cjs"),Ae=require("./ui/buttons/refresh.cjs"),je=require("./ui/buttons/trash.cjs"),Me=require("./ui/buttons/upload-image.cjs"),Ne=require("./ui/inputs/search-input.cjs"),Pe=require("./ui/aspect-ratio.cjs"),I=require("./ui/breadcrumb.cjs"),L=require("./ui/button-group.cjs"),R=require("./ui/carousel.cjs"),z=require("./ui/collapsible.cjs"),B=require("./ui/context-menu.cjs"),V=require("./ui/empty.cjs"),Fe=require("./ui/file-uploader.cjs"),H=require("./ui/form.cjs"),U=require("./ui/hover-card.cjs"),W=require("./ui/item.cjs"),G=require("./ui/menubar.cjs"),K=require("./ui/multi-select.cjs"),q=require("./ui/navigation-menu.cjs"),J=require("./ui/pagination.cjs"),Y=require("./ui/scroll-area.cjs"),Ie=require("./ui/slider.cjs"),Le=require("./ui/sonner.cjs"),X=require("./ui/table.cjs"),Z=require("./ui/tabs.cjs"),Q=require("./ui/toggle.cjs"),$=require("./ui/toggle-group.cjs");let Re=require("sonner");exports.AddNewBtn=Oe.AddNewBtn,exports.Alert=P.t,exports.AlertDescription=P.n,exports.AlertDialog=d.AlertDialog,exports.AlertDialogAction=d.AlertDialogAction,exports.AlertDialogCancel=d.AlertDialogCancel,exports.AlertDialogContent=d.AlertDialogContent,exports.AlertDialogDescription=d.AlertDialogDescription,exports.AlertDialogFooter=d.AlertDialogFooter,exports.AlertDialogHeader=d.AlertDialogHeader,exports.AlertDialogOverlay=d.AlertDialogOverlay,exports.AlertDialogPortal=d.AlertDialogPortal,exports.AlertDialogTitle=d.AlertDialogTitle,exports.AlertDialogTrigger=d.AlertDialogTrigger,exports.AlertTitle=P.r,exports.ArrayCol=w.W,exports.ArrayHeaderRow=w.G,exports.AspectRatio=Pe.AspectRatio,exports.Avatar=u.Avatar,exports.AvatarFallback=u.AvatarFallback,exports.AvatarImage=u.AvatarImage,exports.Badge=a.Badge,exports.Breadcrumb=I.Breadcrumb,exports.BreadcrumbEllipsis=I.BreadcrumbEllipsis,exports.BreadcrumbItem=I.BreadcrumbItem,exports.BreadcrumbLink=I.BreadcrumbLink,exports.BreadcrumbList=I.BreadcrumbList,exports.BreadcrumbPage=I.BreadcrumbPage,exports.BreadcrumbSeparator=I.BreadcrumbSeparator,exports.Button=e.Button,exports.ButtonGroup=L.ButtonGroup,exports.ButtonGroupSeparator=L.ButtonGroupSeparator,exports.ButtonGroupText=L.ButtonGroupText,exports.CMSLayout=A.t,exports.Calendar=E.Calendar,exports.CalendarDayButton=E.CalendarDayButton,exports.Card=n.Card,exports.CardAction=n.CardAction,exports.CardContent=n.CardContent,exports.CardDescription=n.CardDescription,exports.CardFooter=n.CardFooter,exports.CardHeader=n.CardHeader,exports.CardTitle=n.CardTitle,exports.Carousel=R.Carousel,exports.CarouselContent=R.CarouselContent,exports.CarouselItem=R.CarouselItem,exports.CarouselNext=R.CarouselNext,exports.CarouselPrevious=R.CarouselPrevious,exports.Checkbox=_e.Checkbox,exports.CheckboxField=w.E,exports.Collapsible=z.Collapsible,exports.CollapsibleContent=z.CollapsibleContent,exports.CollapsibleTrigger=z.CollapsibleTrigger,exports.ComboboxField=w.T,exports.Command=g.Command,exports.CommandDialog=g.CommandDialog,exports.CommandEmpty=g.CommandEmpty,exports.CommandGroup=g.CommandGroup,exports.CommandInput=g.CommandInput,exports.CommandItem=g.CommandItem,exports.CommandList=g.CommandList,exports.CommandSeparator=g.CommandSeparator,exports.CommandShortcut=g.CommandShortcut,exports.ConfirmDialog=de.ConfirmDialog,exports.ContextMenu=B.ContextMenu,exports.ContextMenuCheckboxItem=B.ContextMenuCheckboxItem,exports.ContextMenuContent=B.ContextMenuContent,exports.ContextMenuGroup=B.ContextMenuGroup,exports.ContextMenuItem=B.ContextMenuItem,exports.ContextMenuLabel=B.ContextMenuLabel,exports.ContextMenuPortal=B.ContextMenuPortal,exports.ContextMenuRadioGroup=B.ContextMenuRadioGroup,exports.ContextMenuRadioItem=B.ContextMenuRadioItem,exports.ContextMenuSeparator=B.ContextMenuSeparator,exports.ContextMenuShortcut=B.ContextMenuShortcut,exports.ContextMenuSub=B.ContextMenuSub,exports.ContextMenuSubContent=B.ContextMenuSubContent,exports.ContextMenuSubTrigger=B.ContextMenuSubTrigger,exports.ContextMenuTrigger=B.ContextMenuTrigger,exports.CountryDisplay=ae.CountryDisplay,exports.DataList=i.DataList,exports.DataListItem=i.DataListItem,exports.DateDisplay=oe.t,exports.DateField=w.w,exports.DateTooltip=s.DateTooltip,exports.Description=h.Description,exports.DescriptionBadge=h.DescriptionBadge,exports.DescriptionBoolean=h.DescriptionBoolean,exports.DescriptionCopy=h.DescriptionCopy,exports.DescriptionDate=h.DescriptionDate,exports.DescriptionEmpty=h.DescriptionEmpty,exports.DescriptionHeader=h.DescriptionHeader,exports.DescriptionImages=h.DescriptionImages,exports.DescriptionItem=h.DescriptionItem,exports.DescriptionLink=h.DescriptionLink,exports.DescriptionLongText=h.DescriptionLongText,exports.DescriptionName=h.DescriptionName,exports.DescriptionNumberPhone=h.DescriptionNumberPhone,exports.DescriptionSection=h.DescriptionSection,exports.DescriptionStatistic=h.DescriptionStatistic,exports.DescriptionStatus=h.DescriptionStatus,exports.DescriptionTagList=h.DescriptionTagList,exports.DescriptionUser=h.DescriptionUser,exports.DetailDialog=me.DetailDialog,exports.Dialog=m.Dialog,exports.DialogClose=m.DialogClose,exports.DialogContent=m.DialogContent,exports.DialogDescription=m.DialogDescription,exports.DialogFooter=m.DialogFooter,exports.DialogHeader=m.DialogHeader,exports.DialogOverlay=m.DialogOverlay,exports.DialogPortal=m.DialogPortal,exports.DialogTitle=m.DialogTitle,exports.DialogTrigger=m.DialogTrigger,exports.Drawer=T.Drawer,exports.DrawerClose=T.DrawerClose,exports.DrawerContent=T.DrawerContent,exports.DrawerDescription=T.DrawerDescription,exports.DrawerFooter=T.DrawerFooter,exports.DrawerHeader=T.DrawerHeader,exports.DrawerOverlay=T.DrawerOverlay,exports.DrawerPortal=T.DrawerPortal,exports.DrawerTitle=T.DrawerTitle,exports.DrawerTrigger=T.DrawerTrigger,exports.DropdownMenu=v.DropdownMenu,exports.DropdownMenuCheckboxItem=v.DropdownMenuCheckboxItem,exports.DropdownMenuContent=v.DropdownMenuContent,exports.DropdownMenuGroup=v.DropdownMenuGroup,exports.DropdownMenuItem=v.DropdownMenuItem,exports.DropdownMenuLabel=v.DropdownMenuLabel,exports.DropdownMenuPortal=v.DropdownMenuPortal,exports.DropdownMenuRadioGroup=v.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=v.DropdownMenuRadioItem,exports.DropdownMenuSeparator=v.DropdownMenuSeparator,exports.DropdownMenuShortcut=v.DropdownMenuShortcut,exports.DropdownMenuSub=v.DropdownMenuSub,exports.DropdownMenuSubContent=v.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=v.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=v.DropdownMenuTrigger,exports.EditBtn=ke.EditBtn,exports.EmailField=w.C,exports.Empty=V.Empty,exports.EmptyContent=V.EmptyContent,exports.EmptyDescription=V.EmptyDescription,exports.EmptyDisplay=c.EmptyDisplay,exports.EmptyHeader=V.EmptyHeader,exports.EmptyMedia=V.EmptyMedia,exports.EmptyTitle=V.EmptyTitle,exports.ErrorDialog=p.ErrorDialog,exports.FeatureDeveloping=N.FeatureDeveloping,exports.FeatureFixing=xe.FeatureFixing,exports.Field=w.L,exports.FieldContent=w.R,exports.FieldContentMain=w.z,exports.FieldError=w.B,exports.FieldGroup=w.V,exports.FieldLabel=w.H,exports.FieldSeparator=w.U,exports.FileUploader=Fe.FileUploader,exports.Flex=ie.Flex,exports.Form=H.Form,exports.FormControl=H.FormControl,exports.FormDescription=H.FormDescription,exports.FormField=H.FormField,exports.FormItem=H.FormItem,exports.FormLabel=H.FormLabel,exports.FormMessage=H.FormMessage,exports.Google=De.Google,exports.Grid=M.Grid,exports.GridProductCard=te.GridProductCard,exports.HoverCard=U.HoverCard,exports.HoverCardContent=U.HoverCardContent,exports.HoverCardTrigger=U.HoverCardTrigger,exports.Image=ee.Image,exports.Input=ye.Input,exports.InputOTP=F.InputOTP,exports.InputOTPGroup=F.InputOTPGroup,exports.InputOTPSeparator=F.InputOTPSeparator,exports.InputOTPSlot=F.InputOTPSlot,exports.Item=W.Item,exports.ItemActions=W.ItemActions,exports.ItemContent=W.ItemContent,exports.ItemDescription=W.ItemDescription,exports.ItemFooter=W.ItemFooter,exports.ItemGroup=W.ItemGroup,exports.ItemHeader=W.ItemHeader,exports.ItemMedia=W.ItemMedia,exports.ItemSeparator=W.ItemSeparator,exports.ItemTitle=W.ItemTitle,exports.Label=be.Label,exports.LoadingDialog=he.LoadingDialog,exports.LoginPage=we.LoginPage,exports.Menubar=G.Menubar,exports.MenubarCheckboxItem=G.MenubarCheckboxItem,exports.MenubarContent=G.MenubarContent,exports.MenubarGroup=G.MenubarGroup,exports.MenubarItem=G.MenubarItem,exports.MenubarLabel=G.MenubarLabel,exports.MenubarMenu=G.MenubarMenu,exports.MenubarPortal=G.MenubarPortal,exports.MenubarRadioGroup=G.MenubarRadioGroup,exports.MenubarRadioItem=G.MenubarRadioItem,exports.MenubarSeparator=G.MenubarSeparator,exports.MenubarShortcut=G.MenubarShortcut,exports.MenubarSub=G.MenubarSub,exports.MenubarSubContent=G.MenubarSubContent,exports.MenubarSubTrigger=G.MenubarSubTrigger,exports.MenubarTrigger=G.MenubarTrigger,exports.MultipleSelector=K.MultipleSelector,exports.NameDisplay=l.NameDisplay,exports.NavigationMenu=q.NavigationMenu,exports.NavigationMenuContent=q.NavigationMenuContent,exports.NavigationMenuIndicator=q.NavigationMenuIndicator,exports.NavigationMenuItem=q.NavigationMenuItem,exports.NavigationMenuLink=q.NavigationMenuLink,exports.NavigationMenuList=q.NavigationMenuList,exports.NavigationMenuTrigger=q.NavigationMenuTrigger,exports.NavigationMenuViewport=q.NavigationMenuViewport,exports.NotAuthorized=Se.NotAuthorized,exports.NotFound=Ce.NotFound,exports.NumberField=w.S,exports.Pagination=J.Pagination,exports.PaginationContent=J.PaginationContent,exports.PaginationEllipsis=J.PaginationEllipsis,exports.PaginationItem=J.PaginationItem,exports.PaginationLink=J.PaginationLink,exports.PaginationNext=J.PaginationNext,exports.PaginationPrevious=J.PaginationPrevious,exports.Paragraph=t.Paragraph,exports.PasswordField=w.x,exports.PaymentLayout=j.t,exports.PhoneNumberDisplay=se.PhoneNumberDisplay,exports.Popover=S.Popover,exports.PopoverAnchor=S.PopoverAnchor,exports.PopoverClose=S.PopoverClose,exports.PopoverContent=S.PopoverContent,exports.PopoverTrigger=S.PopoverTrigger,exports.ProductCard=ne.ProductCard,exports.Progress=y.Progress,exports.RadioGroup=D.RadioGroup,exports.RadioGroupField=w.b,exports.RadioGroupItem=D.RadioGroupItem,exports.RefreshBtn=Ae.RefreshBtn,exports.RegisterPage=Te.RegisterPage,exports.ResizableHandle=x.ResizableHandle,exports.ResizablePanel=x.ResizablePanel,exports.ResizablePanelGroup=x.ResizablePanelGroup,exports.RoleBadge=ce.RoleBadge,exports.ScrollArea=Y.ScrollArea,exports.ScrollBar=Y.ScrollBar,exports.SearchInput=Ne.SearchInput,exports.SearchModal=ge.t,exports.Select=C.Select,exports.SelectContent=C.SelectContent,exports.SelectField=w.y,exports.SelectGroup=C.SelectGroup,exports.SelectItem=C.SelectItem,exports.SelectLabel=C.SelectLabel,exports.SelectSeparator=C.SelectSeparator,exports.SelectTrigger=C.SelectTrigger,exports.SelectValue=C.SelectValue,exports.Separator=pe.Separator,exports.Sheet=f.Sheet,exports.SheetClose=f.SheetClose,exports.SheetContent=f.SheetContent,exports.SheetDescription=f.SheetDescription,exports.SheetFooter=f.SheetFooter,exports.SheetHeader=f.SheetHeader,exports.SheetTitle=f.SheetTitle,exports.SheetTrigger=f.SheetTrigger,exports.SimpleArrayField=w.K,exports.SimpleBooleanField=w.I,exports.SimpleCard=re.SimpleCard,exports.SimpleComboboxField=w.F,exports.SimpleDateField=w.P,exports.SimpleEmailField=w.M,exports.SimpleNumberField=w.j,exports.SimplePasswordField=w.A,exports.SimpleRadioGroupField=w.N,exports.SimpleSelectField=w.k,exports.SimpleTextField=w.D,exports.SimpleTextareaField=w.O,exports.Skeleton=r.Skeleton,exports.Slider=Ie.Slider,exports.Spinner=ve.Spinner,exports.Statistic=le.Statistic,exports.Switch=b.Switch,exports.SwitchField=w.v,exports.Table=X.Table,exports.TableBody=X.TableBody,exports.TableCaption=X.TableCaption,exports.TableCell=X.TableCell,exports.TableFooter=X.TableFooter,exports.TableHead=X.TableHead,exports.TableHeader=X.TableHeader,exports.TableRow=X.TableRow,exports.Tabs=Z.Tabs,exports.TabsContent=Z.TabsContent,exports.TabsList=Z.TabsList,exports.TabsTrigger=Z.TabsTrigger,exports.TanStackActionSubmit=w.m,exports.TanStackActionsForm=w.p,exports.TanStackCardForm=w.f,exports.TanStackContainerForm=w.d,exports.TanStackDialogForm=w.u,exports.TanStackFieldGroup=w.l,exports.TanStackPopoverForm=w.c,exports.TanStackSectionForm=w.s,exports.TanStackTitleField=w.o,exports.TextEditor=k.t,exports.TextEditorField=w.h,exports.TextEditorToolbar=k.n,exports.TextField=w._,exports.Textarea=O.Textarea,exports.TextareaField=w.g,exports.Title=fe.Title,exports.Toaster=Le.Toaster,exports.Toggle=Q.Toggle,exports.ToggleGroup=$.ToggleGroup,exports.ToggleGroupItem=$.ToggleGroupItem,exports.Tooltip=o.Tooltip,exports.TooltipContent=o.TooltipContent,exports.TooltipProvider=o.TooltipProvider,exports.TooltipTrigger=o.TooltipTrigger,exports.TrashBtn=je.TrashBtn,exports.UITableAnalysisPanel=_.s,exports.UITableAvatarNameDisplay=_.W,exports.UITableBadgeDisplay=_.U,exports.UITableBody=_.T,exports.UITableBooleanDisplay=_.H,exports.UITableCell=_.w,exports.UITableCellActions=_.C,exports.UITableCellSelect=_.S,exports.UITableContainer=_.c,exports.UITableCurrencyDisplay=_.V,exports.UITableDateDisplay=_.B,exports.UITableDescriptionDisplay=_.z,exports.UITableEditButton=_.R,exports.UITableEmailDisplay=_.L,exports.UITableEmptyDisplay=_.x,exports.UITableFilter=_.o,exports.UITableFooter=_.b,exports.UITableFooterRow=_.y,exports.UITableHead=_.v,exports.UITableHeadCell=_.g,exports.UITableHeadCellOption=_._,exports.UITableHeadCellSelect=_.h,exports.UITableHeadRow=_.m,exports.UITableInnerTable=_.p,exports.UITableInnerWrapper=_.f,exports.UITableListDisplay=_.I,exports.UITableLoadMore=_.d,exports.UITableMoreButton=_.F,exports.UITableNameDisplay=_.P,exports.UITablePermalink=_.N,exports.UITablePhoneNumberDisplay=_.M,exports.UITableProgressDisplay=_.j,exports.UITableProvider=_.a,exports.UITableRemoveButton=_.A,exports.UITableRow=_.u,exports.UITableStatisticDisplay=_.k,exports.UITableStatusDisplay=_.O,exports.UITableSummaryBar=_.i,exports.UITableToggleButton=_.D,exports.UITableTooltip=_.t,exports.UITableTooltipActions=_.n,exports.UITableTooltipFilter=_.r,exports.UITableUserDataDisplay=_.E,exports.UITableWrapper=_.l,exports.UploadImageBtn=Me.UploadImageBtn,exports.UserDataDisplay=ue.UserDataDisplay,exports.VerifyEmailPage=Ee.VerifyEmailPage,exports.badgeVariants=a.badgeVariants,exports.buttonGroupVariants=L.buttonGroupVariants,exports.navigationMenuTriggerStyle=q.navigationMenuTriggerStyle,exports.paragraphVariants=t.paragraphVariants,exports.toast=Re.toast,exports.toggleVariants=Q.toggleVariants,exports.useDebounce=K.useDebounce,exports.useFormField=H.useFormField,exports.useTanStackFieldContext=w.t,exports.useTanStackForm=w.n,exports.useTanStackFormContext=w.r,exports.withTanStackFieldGroup=w.i,exports.withTanStackForm=w.a;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ui/button.cjs"),t=require("./typography/paragraph.cjs"),n=require("./ui/card.cjs"),r=require("./ui/skeleton.cjs"),ee=require("./ui/image.cjs"),te=require("./cards/grid-product-card.cjs"),ne=require("./cards/product-card.cjs"),re=require("./cards/simple-card.cjs"),ie=require("./layouts/flex.cjs"),ae=require("./data-display/country.cjs"),i=require("./data-display/data-list.cjs"),oe=require("./date-B3cozmfV.cjs"),a=require("./ui/badge.cjs"),o=require("./ui/tooltip.cjs"),s=require("./data-display/date-tooltip.cjs"),c=require("./data-display/empty.cjs"),l=require("./data-display/name.cjs"),se=require("./data-display/phone-number.cjs"),ce=require("./data-display/role-badge.cjs"),le=require("./data-display/statistic.cjs"),u=require("./ui/avatar.cjs"),ue=require("./data-display/user.cjs"),d=require("./ui/alert-dialog.cjs"),de=require("./dialogs/confirm-dialog.cjs"),fe=require("./typography/title.cjs"),pe=require("./ui/separator.cjs"),f=require("./ui/sheet.cjs"),me=require("./dialogs/detail-dialog/index.cjs"),p=require("./dialogs/error-dialog.cjs"),m=require("./ui/dialog.cjs"),he=require("./dialogs/loading-dialog.cjs"),h=require("./features/descriptions/index.cjs"),g=require("./ui/command.cjs"),ge=require("./search-modal-CMhsIxae.cjs"),_=require("./tables-NiAoBy75.cjs"),v=require("./ui/dropdown-menu.cjs"),y=require("./ui/progress.cjs"),b=require("./ui/switch.cjs"),_e=require("./ui/checkbox.cjs"),ve=require("./ui/spinner.cjs"),x=require("./ui/resizable.cjs"),ye=require("./ui/input.cjs"),be=require("./ui/label.cjs"),S=require("./ui/popover.cjs"),C=require("./ui/select.cjs"),w=require("./tanstack-form-BMVn8ai_.cjs"),T=require("./ui/drawer.cjs"),E=require("./ui/calendar.cjs"),D=require("./ui/radio-group.cjs"),O=require("./ui/textarea.cjs"),k=require("./text-editor-DJYQXXtP.cjs"),A=require("./cms-layout-BMwn0Yv3.cjs"),j=require("./payment-layout-BLrXT-oc.cjs"),M=require("./layouts/grid.cjs"),N=require("./pages/FeatureDeveloping.cjs"),xe=require("./pages/FeatureFixing.cjs"),Se=require("./pages/NotAuthorized.cjs"),Ce=require("./pages/NotFound.cjs"),P=require("./alert-D31c6DLq.cjs"),we=require("./pages/LoginPage.cjs"),Te=require("./pages/RegisterPage.cjs"),F=require("./ui/input-otp.cjs"),Ee=require("./pages/VerifyEmailPage.cjs"),De=require("./systems/google.cjs"),Oe=require("./ui/buttons/add-new.cjs"),ke=require("./ui/buttons/edit.cjs"),Ae=require("./ui/buttons/refresh.cjs"),je=require("./ui/buttons/trash.cjs"),Me=require("./ui/buttons/upload-image.cjs"),Ne=require("./ui/inputs/search-input.cjs"),Pe=require("./ui/aspect-ratio.cjs"),I=require("./ui/breadcrumb.cjs"),L=require("./ui/button-group.cjs"),R=require("./ui/carousel.cjs"),z=require("./ui/collapsible.cjs"),B=require("./ui/context-menu.cjs"),V=require("./ui/empty.cjs"),Fe=require("./ui/file-uploader.cjs"),H=require("./ui/form.cjs"),U=require("./ui/hover-card.cjs"),W=require("./ui/item.cjs"),G=require("./ui/menubar.cjs"),K=require("./ui/multi-select.cjs"),q=require("./ui/navigation-menu.cjs"),J=require("./ui/pagination.cjs"),Y=require("./ui/scroll-area.cjs"),Ie=require("./ui/slider.cjs"),Le=require("./ui/sonner.cjs"),X=require("./ui/table.cjs"),Z=require("./ui/tabs.cjs"),Q=require("./ui/toggle.cjs"),$=require("./ui/toggle-group.cjs");let Re=require("sonner");exports.AddNewBtn=Oe.AddNewBtn,exports.Alert=P.t,exports.AlertDescription=P.n,exports.AlertDialog=d.AlertDialog,exports.AlertDialogAction=d.AlertDialogAction,exports.AlertDialogCancel=d.AlertDialogCancel,exports.AlertDialogContent=d.AlertDialogContent,exports.AlertDialogDescription=d.AlertDialogDescription,exports.AlertDialogFooter=d.AlertDialogFooter,exports.AlertDialogHeader=d.AlertDialogHeader,exports.AlertDialogOverlay=d.AlertDialogOverlay,exports.AlertDialogPortal=d.AlertDialogPortal,exports.AlertDialogTitle=d.AlertDialogTitle,exports.AlertDialogTrigger=d.AlertDialogTrigger,exports.AlertTitle=P.r,exports.ArrayCol=w.W,exports.ArrayHeaderRow=w.G,exports.AspectRatio=Pe.AspectRatio,exports.Avatar=u.Avatar,exports.AvatarFallback=u.AvatarFallback,exports.AvatarImage=u.AvatarImage,exports.Badge=a.Badge,exports.Breadcrumb=I.Breadcrumb,exports.BreadcrumbEllipsis=I.BreadcrumbEllipsis,exports.BreadcrumbItem=I.BreadcrumbItem,exports.BreadcrumbLink=I.BreadcrumbLink,exports.BreadcrumbList=I.BreadcrumbList,exports.BreadcrumbPage=I.BreadcrumbPage,exports.BreadcrumbSeparator=I.BreadcrumbSeparator,exports.Button=e.Button,exports.ButtonGroup=L.ButtonGroup,exports.ButtonGroupSeparator=L.ButtonGroupSeparator,exports.ButtonGroupText=L.ButtonGroupText,exports.CMSLayout=A.t,exports.Calendar=E.Calendar,exports.CalendarDayButton=E.CalendarDayButton,exports.Card=n.Card,exports.CardAction=n.CardAction,exports.CardContent=n.CardContent,exports.CardDescription=n.CardDescription,exports.CardFooter=n.CardFooter,exports.CardHeader=n.CardHeader,exports.CardTitle=n.CardTitle,exports.Carousel=R.Carousel,exports.CarouselContent=R.CarouselContent,exports.CarouselItem=R.CarouselItem,exports.CarouselNext=R.CarouselNext,exports.CarouselPrevious=R.CarouselPrevious,exports.Checkbox=_e.Checkbox,exports.CheckboxField=w.E,exports.Collapsible=z.Collapsible,exports.CollapsibleContent=z.CollapsibleContent,exports.CollapsibleTrigger=z.CollapsibleTrigger,exports.ComboboxField=w.T,exports.Command=g.Command,exports.CommandDialog=g.CommandDialog,exports.CommandEmpty=g.CommandEmpty,exports.CommandGroup=g.CommandGroup,exports.CommandInput=g.CommandInput,exports.CommandItem=g.CommandItem,exports.CommandList=g.CommandList,exports.CommandSeparator=g.CommandSeparator,exports.CommandShortcut=g.CommandShortcut,exports.ConfirmDialog=de.ConfirmDialog,exports.ContextMenu=B.ContextMenu,exports.ContextMenuCheckboxItem=B.ContextMenuCheckboxItem,exports.ContextMenuContent=B.ContextMenuContent,exports.ContextMenuGroup=B.ContextMenuGroup,exports.ContextMenuItem=B.ContextMenuItem,exports.ContextMenuLabel=B.ContextMenuLabel,exports.ContextMenuPortal=B.ContextMenuPortal,exports.ContextMenuRadioGroup=B.ContextMenuRadioGroup,exports.ContextMenuRadioItem=B.ContextMenuRadioItem,exports.ContextMenuSeparator=B.ContextMenuSeparator,exports.ContextMenuShortcut=B.ContextMenuShortcut,exports.ContextMenuSub=B.ContextMenuSub,exports.ContextMenuSubContent=B.ContextMenuSubContent,exports.ContextMenuSubTrigger=B.ContextMenuSubTrigger,exports.ContextMenuTrigger=B.ContextMenuTrigger,exports.CountryDisplay=ae.CountryDisplay,exports.DataList=i.DataList,exports.DataListItem=i.DataListItem,exports.DateDisplay=oe.t,exports.DateField=w.w,exports.DateTooltip=s.DateTooltip,exports.Description=h.Description,exports.DescriptionBadge=h.DescriptionBadge,exports.DescriptionBoolean=h.DescriptionBoolean,exports.DescriptionCopy=h.DescriptionCopy,exports.DescriptionDate=h.DescriptionDate,exports.DescriptionEmpty=h.DescriptionEmpty,exports.DescriptionHeader=h.DescriptionHeader,exports.DescriptionImages=h.DescriptionImages,exports.DescriptionItem=h.DescriptionItem,exports.DescriptionLink=h.DescriptionLink,exports.DescriptionLongText=h.DescriptionLongText,exports.DescriptionName=h.DescriptionName,exports.DescriptionNumberPhone=h.DescriptionNumberPhone,exports.DescriptionSection=h.DescriptionSection,exports.DescriptionStatistic=h.DescriptionStatistic,exports.DescriptionStatus=h.DescriptionStatus,exports.DescriptionTagList=h.DescriptionTagList,exports.DescriptionUser=h.DescriptionUser,exports.DetailDialog=me.DetailDialog,exports.Dialog=m.Dialog,exports.DialogClose=m.DialogClose,exports.DialogContent=m.DialogContent,exports.DialogDescription=m.DialogDescription,exports.DialogFooter=m.DialogFooter,exports.DialogHeader=m.DialogHeader,exports.DialogOverlay=m.DialogOverlay,exports.DialogPortal=m.DialogPortal,exports.DialogTitle=m.DialogTitle,exports.DialogTrigger=m.DialogTrigger,exports.Drawer=T.Drawer,exports.DrawerClose=T.DrawerClose,exports.DrawerContent=T.DrawerContent,exports.DrawerDescription=T.DrawerDescription,exports.DrawerFooter=T.DrawerFooter,exports.DrawerHeader=T.DrawerHeader,exports.DrawerOverlay=T.DrawerOverlay,exports.DrawerPortal=T.DrawerPortal,exports.DrawerTitle=T.DrawerTitle,exports.DrawerTrigger=T.DrawerTrigger,exports.DropdownMenu=v.DropdownMenu,exports.DropdownMenuCheckboxItem=v.DropdownMenuCheckboxItem,exports.DropdownMenuContent=v.DropdownMenuContent,exports.DropdownMenuGroup=v.DropdownMenuGroup,exports.DropdownMenuItem=v.DropdownMenuItem,exports.DropdownMenuLabel=v.DropdownMenuLabel,exports.DropdownMenuPortal=v.DropdownMenuPortal,exports.DropdownMenuRadioGroup=v.DropdownMenuRadioGroup,exports.DropdownMenuRadioItem=v.DropdownMenuRadioItem,exports.DropdownMenuSeparator=v.DropdownMenuSeparator,exports.DropdownMenuShortcut=v.DropdownMenuShortcut,exports.DropdownMenuSub=v.DropdownMenuSub,exports.DropdownMenuSubContent=v.DropdownMenuSubContent,exports.DropdownMenuSubTrigger=v.DropdownMenuSubTrigger,exports.DropdownMenuTrigger=v.DropdownMenuTrigger,exports.EditBtn=ke.EditBtn,exports.EmailField=w.C,exports.Empty=V.Empty,exports.EmptyContent=V.EmptyContent,exports.EmptyDescription=V.EmptyDescription,exports.EmptyDisplay=c.EmptyDisplay,exports.EmptyHeader=V.EmptyHeader,exports.EmptyMedia=V.EmptyMedia,exports.EmptyTitle=V.EmptyTitle,exports.ErrorDialog=p.ErrorDialog,exports.FeatureDeveloping=N.FeatureDeveloping,exports.FeatureFixing=xe.FeatureFixing,exports.Field=w.L,exports.FieldContent=w.R,exports.FieldContentMain=w.z,exports.FieldError=w.B,exports.FieldGroup=w.V,exports.FieldLabel=w.H,exports.FieldSeparator=w.U,exports.FileUploader=Fe.FileUploader,exports.Flex=ie.Flex,exports.Form=H.Form,exports.FormControl=H.FormControl,exports.FormDescription=H.FormDescription,exports.FormField=H.FormField,exports.FormItem=H.FormItem,exports.FormLabel=H.FormLabel,exports.FormMessage=H.FormMessage,exports.Google=De.Google,exports.Grid=M.Grid,exports.GridProductCard=te.GridProductCard,exports.HoverCard=U.HoverCard,exports.HoverCardContent=U.HoverCardContent,exports.HoverCardTrigger=U.HoverCardTrigger,exports.Image=ee.Image,exports.Input=ye.Input,exports.InputOTP=F.InputOTP,exports.InputOTPGroup=F.InputOTPGroup,exports.InputOTPSeparator=F.InputOTPSeparator,exports.InputOTPSlot=F.InputOTPSlot,exports.Item=W.Item,exports.ItemActions=W.ItemActions,exports.ItemContent=W.ItemContent,exports.ItemDescription=W.ItemDescription,exports.ItemFooter=W.ItemFooter,exports.ItemGroup=W.ItemGroup,exports.ItemHeader=W.ItemHeader,exports.ItemMedia=W.ItemMedia,exports.ItemSeparator=W.ItemSeparator,exports.ItemTitle=W.ItemTitle,exports.Label=be.Label,exports.LoadingDialog=he.LoadingDialog,exports.LoginPage=we.LoginPage,exports.Menubar=G.Menubar,exports.MenubarCheckboxItem=G.MenubarCheckboxItem,exports.MenubarContent=G.MenubarContent,exports.MenubarGroup=G.MenubarGroup,exports.MenubarItem=G.MenubarItem,exports.MenubarLabel=G.MenubarLabel,exports.MenubarMenu=G.MenubarMenu,exports.MenubarPortal=G.MenubarPortal,exports.MenubarRadioGroup=G.MenubarRadioGroup,exports.MenubarRadioItem=G.MenubarRadioItem,exports.MenubarSeparator=G.MenubarSeparator,exports.MenubarShortcut=G.MenubarShortcut,exports.MenubarSub=G.MenubarSub,exports.MenubarSubContent=G.MenubarSubContent,exports.MenubarSubTrigger=G.MenubarSubTrigger,exports.MenubarTrigger=G.MenubarTrigger,exports.MultipleSelector=K.MultipleSelector,exports.NameDisplay=l.NameDisplay,exports.NavigationMenu=q.NavigationMenu,exports.NavigationMenuContent=q.NavigationMenuContent,exports.NavigationMenuIndicator=q.NavigationMenuIndicator,exports.NavigationMenuItem=q.NavigationMenuItem,exports.NavigationMenuLink=q.NavigationMenuLink,exports.NavigationMenuList=q.NavigationMenuList,exports.NavigationMenuTrigger=q.NavigationMenuTrigger,exports.NavigationMenuViewport=q.NavigationMenuViewport,exports.NotAuthorized=Se.NotAuthorized,exports.NotFound=Ce.NotFound,exports.NumberField=w.S,exports.Pagination=J.Pagination,exports.PaginationContent=J.PaginationContent,exports.PaginationEllipsis=J.PaginationEllipsis,exports.PaginationItem=J.PaginationItem,exports.PaginationLink=J.PaginationLink,exports.PaginationNext=J.PaginationNext,exports.PaginationPrevious=J.PaginationPrevious,exports.Paragraph=t.Paragraph,exports.PasswordField=w.x,exports.PaymentLayout=j.t,exports.PhoneNumberDisplay=se.PhoneNumberDisplay,exports.Popover=S.Popover,exports.PopoverAnchor=S.PopoverAnchor,exports.PopoverClose=S.PopoverClose,exports.PopoverContent=S.PopoverContent,exports.PopoverTrigger=S.PopoverTrigger,exports.ProductCard=ne.ProductCard,exports.Progress=y.Progress,exports.RadioGroup=D.RadioGroup,exports.RadioGroupField=w.b,exports.RadioGroupItem=D.RadioGroupItem,exports.RefreshBtn=Ae.RefreshBtn,exports.RegisterPage=Te.RegisterPage,exports.ResizableHandle=x.ResizableHandle,exports.ResizablePanel=x.ResizablePanel,exports.ResizablePanelGroup=x.ResizablePanelGroup,exports.RoleBadge=ce.RoleBadge,exports.ScrollArea=Y.ScrollArea,exports.ScrollBar=Y.ScrollBar,exports.SearchInput=Ne.SearchInput,exports.SearchModal=ge.t,exports.Select=C.Select,exports.SelectContent=C.SelectContent,exports.SelectField=w.y,exports.SelectGroup=C.SelectGroup,exports.SelectItem=C.SelectItem,exports.SelectLabel=C.SelectLabel,exports.SelectSeparator=C.SelectSeparator,exports.SelectTrigger=C.SelectTrigger,exports.SelectValue=C.SelectValue,exports.Separator=pe.Separator,exports.Sheet=f.Sheet,exports.SheetClose=f.SheetClose,exports.SheetContent=f.SheetContent,exports.SheetDescription=f.SheetDescription,exports.SheetFooter=f.SheetFooter,exports.SheetHeader=f.SheetHeader,exports.SheetTitle=f.SheetTitle,exports.SheetTrigger=f.SheetTrigger,exports.SimpleArrayField=w.K,exports.SimpleBooleanField=w.I,exports.SimpleCard=re.SimpleCard,exports.SimpleComboboxField=w.F,exports.SimpleDateField=w.P,exports.SimpleEmailField=w.M,exports.SimpleNumberField=w.j,exports.SimplePasswordField=w.A,exports.SimpleRadioGroupField=w.N,exports.SimpleSelectField=w.k,exports.SimpleTextField=w.D,exports.SimpleTextareaField=w.O,exports.Skeleton=r.Skeleton,exports.Slider=Ie.Slider,exports.Spinner=ve.Spinner,exports.Statistic=le.Statistic,exports.Switch=b.Switch,exports.SwitchField=w.v,exports.Table=X.Table,exports.TableBody=X.TableBody,exports.TableCaption=X.TableCaption,exports.TableCell=X.TableCell,exports.TableFooter=X.TableFooter,exports.TableHead=X.TableHead,exports.TableHeader=X.TableHeader,exports.TableRow=X.TableRow,exports.Tabs=Z.Tabs,exports.TabsContent=Z.TabsContent,exports.TabsList=Z.TabsList,exports.TabsTrigger=Z.TabsTrigger,exports.TanStackActionSubmit=w.m,exports.TanStackActionsForm=w.p,exports.TanStackCardForm=w.f,exports.TanStackContainerForm=w.d,exports.TanStackDialogForm=w.u,exports.TanStackFieldGroup=w.l,exports.TanStackPopoverForm=w.c,exports.TanStackSectionForm=w.s,exports.TanStackTitleField=w.o,exports.TextEditor=k.t,exports.TextEditorField=w.h,exports.TextEditorToolbar=k.n,exports.TextField=w._,exports.Textarea=O.Textarea,exports.TextareaField=w.g,exports.Title=fe.Title,exports.Toaster=Le.Toaster,exports.Toggle=Q.Toggle,exports.ToggleGroup=$.ToggleGroup,exports.ToggleGroupItem=$.ToggleGroupItem,exports.Tooltip=o.Tooltip,exports.TooltipContent=o.TooltipContent,exports.TooltipProvider=o.TooltipProvider,exports.TooltipTrigger=o.TooltipTrigger,exports.TrashBtn=je.TrashBtn,exports.UITableAnalysisPanel=_.s,exports.UITableAvatarNameDisplay=_.W,exports.UITableBadgeDisplay=_.U,exports.UITableBody=_.T,exports.UITableBooleanDisplay=_.H,exports.UITableCell=_.w,exports.UITableCellActions=_.C,exports.UITableCellSelect=_.S,exports.UITableContainer=_.c,exports.UITableCurrencyDisplay=_.V,exports.UITableDateDisplay=_.B,exports.UITableDescriptionDisplay=_.z,exports.UITableEditButton=_.R,exports.UITableEmailDisplay=_.L,exports.UITableEmptyDisplay=_.x,exports.UITableFilter=_.o,exports.UITableFooter=_.b,exports.UITableFooterRow=_.y,exports.UITableHead=_.v,exports.UITableHeadCell=_.g,exports.UITableHeadCellOption=_._,exports.UITableHeadCellSelect=_.h,exports.UITableHeadRow=_.m,exports.UITableInnerTable=_.p,exports.UITableInnerWrapper=_.f,exports.UITableListDisplay=_.I,exports.UITableLoadMore=_.d,exports.UITableMoreButton=_.F,exports.UITableNameDisplay=_.P,exports.UITablePermalink=_.N,exports.UITablePhoneNumberDisplay=_.M,exports.UITableProgressDisplay=_.j,exports.UITableProvider=_.a,exports.UITableRemoveButton=_.A,exports.UITableRow=_.u,exports.UITableStatisticDisplay=_.k,exports.UITableStatusDisplay=_.O,exports.UITableSummaryBar=_.i,exports.UITableToggleButton=_.D,exports.UITableTooltip=_.t,exports.UITableTooltipActions=_.n,exports.UITableTooltipFilter=_.r,exports.UITableUserDataDisplay=_.E,exports.UITableWrapper=_.l,exports.UploadImageBtn=Me.UploadImageBtn,exports.UserDataDisplay=ue.UserDataDisplay,exports.VerifyEmailPage=Ee.VerifyEmailPage,exports.badgeVariants=a.badgeVariants,exports.buttonGroupVariants=L.buttonGroupVariants,exports.navigationMenuTriggerStyle=q.navigationMenuTriggerStyle,exports.paragraphVariants=t.paragraphVariants,exports.toast=Re.toast,exports.toggleVariants=Q.toggleVariants,exports.useDebounce=K.useDebounce,exports.useFormField=H.useFormField,exports.useTanStackFieldContext=w.t,exports.useTanStackForm=w.n,exports.useTanStackFormContext=w.r,exports.withTanStackFieldGroup=w.i,exports.withTanStackForm=w.a;
package/dist/index.d.cts CHANGED
@@ -76,7 +76,7 @@ import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, Pagi
76
76
  import { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger } from "./ui/popover.cjs";
77
77
  import { Progress } from "./ui/progress.cjs";
78
78
  import { RadioGroup, RadioGroupItem } from "./ui/radio-group.cjs";
79
- import { n as ResizablePanel, r as ResizablePanelGroup, t as ResizableHandle } from "./resizable-CVpc0g5U.cjs";
79
+ import { n as ResizablePanel, r as ResizablePanelGroup, t as ResizableHandle } from "./resizable-CFCYn9e_.cjs";
80
80
  import { ScrollArea, ScrollBar } from "./ui/scroll-area.cjs";
81
81
  import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue } from "./ui/select.cjs";
82
82
  import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from "./ui/sheet.cjs";
package/dist/index.d.mts CHANGED
@@ -76,7 +76,7 @@ import { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, Pagi
76
76
  import { Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger } from "./ui/popover.mjs";
77
77
  import { Progress } from "./ui/progress.mjs";
78
78
  import { RadioGroup, RadioGroupItem } from "./ui/radio-group.mjs";
79
- import { n as ResizablePanel, r as ResizablePanelGroup, t as ResizableHandle } from "./resizable-CVpc0g5U.mjs";
79
+ import { n as ResizablePanel, r as ResizablePanelGroup, t as ResizableHandle } from "./resizable-CFCYn9e_.mjs";
80
80
  import { ScrollArea, ScrollBar } from "./ui/scroll-area.mjs";
81
81
  import { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectSeparator, SelectTrigger, SelectValue } from "./ui/select.mjs";
82
82
  import { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from "./ui/sheet.mjs";
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{Separator as Y}from"./ui/separator.mjs";import{Sheet as X,SheetClose as Z,SheetContent as Q,SheetDescription as $,SheetFooter as ee,SheetHeader as te,SheetTitle as ne,SheetTrigger as re}from"./ui/sheet.mjs";import{DetailDialog as ie}from"./dialogs/detail-dialog/index.mjs";import{ErrorDialog as ae}from"./dialogs/error-dialog.mjs";import{Dialog as oe,DialogClose as se,DialogContent as ce,DialogDescription as le,DialogFooter as ue,DialogHeader as de,DialogOverlay as fe,DialogPortal as pe,DialogTitle as me,DialogTrigger as he}from"./ui/dialog.mjs";import{LoadingDialog as ge}from"./dialogs/loading-dialog.mjs";import{Description as _e,DescriptionBadge as ve,DescriptionBoolean as ye,DescriptionCopy as be,DescriptionDate as xe,DescriptionEmpty as Se,DescriptionHeader as Ce,DescriptionImages as we,DescriptionItem as Te,DescriptionLink as Ee,DescriptionLongText as De,DescriptionName as Oe,DescriptionNumberPhone as ke,DescriptionSection as Ae,DescriptionStatistic as je,DescriptionStatus as Me,DescriptionTagList as Ne,DescriptionUser as Pe}from"./features/descriptions/index.mjs";import{Command as Fe,CommandDialog as Ie,CommandEmpty as Le,CommandGroup as Re,CommandInput as ze,CommandItem as Be,CommandList as Ve,CommandSeparator as He,CommandShortcut as Ue}from"./ui/command.mjs";import{t as We}from"./search-modal-Cdmi2iyV.mjs";import{A as Ge,B as Ke,C as qe,D as Je,E as Ye,F as Xe,H as Ze,I as Qe,L as $e,M as et,N as tt,O as nt,P as rt,R as it,S as at,T as ot,U as st,V as ct,W as lt,_ as ut,a as dt,b as ft,c as pt,d as mt,f as ht,g as gt,h as _t,i as vt,j as yt,k as bt,l as xt,m as St,n as Ct,o as wt,p as Tt,r as Et,s as Dt,t as Ot,u as kt,v as At,w as jt,x as Mt,y as Nt,z as Pt}from"./tables-UaA4qIaD.mjs";import{DropdownMenu as Ft,DropdownMenuCheckboxItem as It,DropdownMenuContent as Lt,DropdownMenuGroup as Rt,DropdownMenuItem as zt,DropdownMenuLabel as Bt,DropdownMenuPortal as Vt,DropdownMenuRadioGroup as Ht,DropdownMenuRadioItem as Ut,DropdownMenuSeparator as Wt,DropdownMenuShortcut as Gt,DropdownMenuSub as Kt,DropdownMenuSubContent as qt,DropdownMenuSubTrigger as Jt,DropdownMenuTrigger as Yt}from"./ui/dropdown-menu.mjs";import{Progress as Xt}from"./ui/progress.mjs";import{Switch as Zt}from"./ui/switch.mjs";import{Checkbox as Qt}from"./ui/checkbox.mjs";import{Spinner as $t}from"./ui/spinner.mjs";import{ResizableHandle as en,ResizablePanel as tn,ResizablePanelGroup as nn}from"./ui/resizable.mjs";import{Input as rn}from"./ui/input.mjs";import{Label as an}from"./ui/label.mjs";import{Popover as on,PopoverAnchor as sn,PopoverClose as cn,PopoverContent as ln,PopoverTrigger as un}from"./ui/popover.mjs";import{Select as dn,SelectContent as fn,SelectGroup as pn,SelectItem as mn,SelectLabel as hn,SelectSeparator as gn,SelectTrigger as _n,SelectValue as vn}from"./ui/select.mjs";import{A as yn,B as bn,C as xn,D as Sn,E as Cn,F as wn,G as Tn,H as En,I as Dn,K as On,L as kn,M as An,N as jn,O as Mn,P as Nn,R as Pn,S as Fn,T as In,U as Ln,V as Rn,W as zn,_ as Bn,a as Vn,b as Hn,c as Un,d as Wn,f as Gn,g as Kn,h as qn,i as Jn,j as Yn,k as Xn,l as Zn,m as Qn,n as $n,o as er,p as tr,r as nr,s as rr,t as ir,u as ar,v as or,w as sr,x as cr,y as lr,z as ur}from"./tanstack-form-DTCgWGCA.mjs";import{Drawer as dr,DrawerClose as fr,DrawerContent as pr,DrawerDescription as mr,DrawerFooter as hr,DrawerHeader as gr,DrawerOverlay as _r,DrawerPortal as vr,DrawerTitle as yr,DrawerTrigger as br}from"./ui/drawer.mjs";import{Calendar as xr,CalendarDayButton as Sr}from"./ui/calendar.mjs";import{RadioGroup as Cr,RadioGroupItem as wr}from"./ui/radio-group.mjs";import{Textarea as Tr}from"./ui/textarea.mjs";import{n as Er,t as Dr}from"./text-editor-BQtIXOpM.mjs";import{t as Or}from"./cms-layout-IwpD0LvR.mjs";import{t as kr}from"./payment-layout-CG_l7Es-.mjs";import{Grid as Ar}from"./layouts/grid.mjs";import{FeatureDeveloping as jr}from"./pages/FeatureDeveloping.mjs";import{FeatureFixing as Mr}from"./pages/FeatureFixing.mjs";import{NotAuthorized as Nr}from"./pages/NotAuthorized.mjs";import{NotFound as Pr}from"./pages/NotFound.mjs";import{n as Fr,r as Ir,t as Lr}from"./alert-OD1KJTEV.mjs";import{LoginPage as Rr}from"./pages/LoginPage.mjs";import{RegisterPage as zr}from"./pages/RegisterPage.mjs";import{InputOTP as Br,InputOTPGroup as Vr,InputOTPSeparator as Hr,InputOTPSlot as Ur}from"./ui/input-otp.mjs";import{VerifyEmailPage as Wr}from"./pages/VerifyEmailPage.mjs";import{Google as Gr}from"./systems/google.mjs";import{AddNewBtn as Kr}from"./ui/buttons/add-new.mjs";import{EditBtn as qr}from"./ui/buttons/edit.mjs";import{RefreshBtn as Jr}from"./ui/buttons/refresh.mjs";import{TrashBtn as Yr}from"./ui/buttons/trash.mjs";import{UploadImageBtn as Xr}from"./ui/buttons/upload-image.mjs";import{SearchInput as Zr}from"./ui/inputs/search-input.mjs";import{AspectRatio as Qr}from"./ui/aspect-ratio.mjs";import{Breadcrumb as $r,BreadcrumbEllipsis as ei,BreadcrumbItem as ti,BreadcrumbLink as ni,BreadcrumbList as ri,BreadcrumbPage as ii,BreadcrumbSeparator as ai}from"./ui/breadcrumb.mjs";import{ButtonGroup as oi,ButtonGroupSeparator as si,ButtonGroupText as ci,buttonGroupVariants as li}from"./ui/button-group.mjs";import{Carousel as ui,CarouselContent as di,CarouselItem as fi,CarouselNext as pi,CarouselPrevious as mi}from"./ui/carousel.mjs";import{Collapsible as hi,CollapsibleContent as gi,CollapsibleTrigger as _i}from"./ui/collapsible.mjs";import{ContextMenu as vi,ContextMenuCheckboxItem as yi,ContextMenuContent as bi,ContextMenuGroup as xi,ContextMenuItem as Si,ContextMenuLabel as Ci,ContextMenuPortal as wi,ContextMenuRadioGroup as Ti,ContextMenuRadioItem as Ei,ContextMenuSeparator as Di,ContextMenuShortcut as Oi,ContextMenuSub as ki,ContextMenuSubContent as Ai,ContextMenuSubTrigger as ji,ContextMenuTrigger as Mi}from"./ui/context-menu.mjs";import{Empty as Ni,EmptyContent as Pi,EmptyDescription as Fi,EmptyHeader as Ii,EmptyMedia as Li,EmptyTitle as Ri}from"./ui/empty.mjs";import{FileUploader as zi}from"./ui/file-uploader.mjs";import{Form as Bi,FormControl as Vi,FormDescription as Hi,FormField as Ui,FormItem as Wi,FormLabel as Gi,FormMessage as Ki,useFormField as qi}from"./ui/form.mjs";import{HoverCard as Ji,HoverCardContent as Yi,HoverCardTrigger as Xi}from"./ui/hover-card.mjs";import{Item as Zi,ItemActions as Qi,ItemContent as $i,ItemDescription as ea,ItemFooter as ta,ItemGroup as na,ItemHeader as ra,ItemMedia as ia,ItemSeparator as aa,ItemTitle as oa}from"./ui/item.mjs";import{Menubar as sa,MenubarCheckboxItem as ca,MenubarContent as la,MenubarGroup as ua,MenubarItem as da,MenubarLabel as fa,MenubarMenu as pa,MenubarPortal as ma,MenubarRadioGroup as ha,MenubarRadioItem as ga,MenubarSeparator as _a,MenubarShortcut as va,MenubarSub as ya,MenubarSubContent as ba,MenubarSubTrigger as xa,MenubarTrigger as Sa}from"./ui/menubar.mjs";import{MultipleSelector as Ca,useDebounce as wa}from"./ui/multi-select.mjs";import{NavigationMenu as Ta,NavigationMenuContent as Ea,NavigationMenuIndicator as Da,NavigationMenuItem as Oa,NavigationMenuLink as ka,NavigationMenuList as Aa,NavigationMenuTrigger as ja,NavigationMenuViewport as Ma,navigationMenuTriggerStyle as Na}from"./ui/navigation-menu.mjs";import{Pagination as Pa,PaginationContent as Fa,PaginationEllipsis as Ia,PaginationItem as La,PaginationLink as Ra,PaginationNext as za,PaginationPrevious as Ba}from"./ui/pagination.mjs";import{ScrollArea as Va,ScrollBar as Ha}from"./ui/scroll-area.mjs";import{Slider as Ua}from"./ui/slider.mjs";import{Toaster as Wa,toast as Ga}from"./ui/sonner.mjs";import{Table as Ka,TableBody as qa,TableCaption as Ja,TableCell as Ya,TableFooter as Xa,TableHead as Za,TableHeader as Qa,TableRow as $a}from"./ui/table.mjs";import{Tabs as eo,TabsContent as to,TabsList as no,TabsTrigger as ro}from"./ui/tabs.mjs";import{Toggle as io,toggleVariants as ao}from"./ui/toggle.mjs";import{ToggleGroup as oo,ToggleGroupItem as so}from"./ui/toggle-group.mjs";export{Kr as AddNewBtn,Lr as Alert,Fr 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,Ir as AlertTitle,zn as ArrayCol,Tn as ArrayHeaderRow,Qr as AspectRatio,M as Avatar,N as AvatarFallback,P as AvatarImage,b as Badge,$r as Breadcrumb,ei as BreadcrumbEllipsis,ti as BreadcrumbItem,ni as BreadcrumbLink,ri as BreadcrumbList,ii as BreadcrumbPage,ai as BreadcrumbSeparator,e as Button,oi as ButtonGroup,si as ButtonGroupSeparator,ci as ButtonGroupText,Or as CMSLayout,xr as Calendar,Sr as CalendarDayButton,r as Card,i as CardAction,a as CardContent,o as CardDescription,s as CardFooter,c as CardHeader,l as CardTitle,ui as Carousel,di as CarouselContent,fi as CarouselItem,pi as CarouselNext,mi as CarouselPrevious,Qt as Checkbox,Cn as CheckboxField,hi as Collapsible,gi as CollapsibleContent,_i as CollapsibleTrigger,In as ComboboxField,Fe as Command,Ie as CommandDialog,Le as CommandEmpty,Re as CommandGroup,ze as CommandInput,Be as CommandItem,Ve as CommandList,He as CommandSeparator,Ue as CommandShortcut,q as ConfirmDialog,vi as ContextMenu,yi as ContextMenuCheckboxItem,bi as ContextMenuContent,xi as ContextMenuGroup,Si as ContextMenuItem,Ci as ContextMenuLabel,wi as ContextMenuPortal,Ti as ContextMenuRadioGroup,Ei as ContextMenuRadioItem,Di as ContextMenuSeparator,Oi as ContextMenuShortcut,ki as ContextMenuSub,Ai as ContextMenuSubContent,ji as ContextMenuSubTrigger,Mi as ContextMenuTrigger,g as CountryDisplay,_ as DataList,v as DataListItem,y as DateDisplay,sr as DateField,E as DateTooltip,_e as Description,ve as DescriptionBadge,ye as DescriptionBoolean,be as DescriptionCopy,xe as DescriptionDate,Se as DescriptionEmpty,Ce as DescriptionHeader,we as DescriptionImages,Te as DescriptionItem,Ee as DescriptionLink,De as DescriptionLongText,Oe as DescriptionName,ke as DescriptionNumberPhone,Ae as DescriptionSection,je as DescriptionStatistic,Me as DescriptionStatus,Ne as DescriptionTagList,Pe as DescriptionUser,ie as DetailDialog,oe as Dialog,se as DialogClose,ce as DialogContent,le as DialogDescription,ue as DialogFooter,de as DialogHeader,fe as DialogOverlay,pe as DialogPortal,me as DialogTitle,he as DialogTrigger,dr as Drawer,fr as DrawerClose,pr as DrawerContent,mr as DrawerDescription,hr as DrawerFooter,gr as DrawerHeader,_r as DrawerOverlay,vr as DrawerPortal,yr as DrawerTitle,br as DrawerTrigger,Ft as DropdownMenu,It as DropdownMenuCheckboxItem,Lt as DropdownMenuContent,Rt as DropdownMenuGroup,zt as DropdownMenuItem,Bt as DropdownMenuLabel,Vt as DropdownMenuPortal,Ht as DropdownMenuRadioGroup,Ut as DropdownMenuRadioItem,Wt as DropdownMenuSeparator,Gt as DropdownMenuShortcut,Kt as DropdownMenuSub,qt as DropdownMenuSubContent,Jt as DropdownMenuSubTrigger,Yt as DropdownMenuTrigger,qr as EditBtn,xn as EmailField,Ni as Empty,Pi as EmptyContent,Fi as EmptyDescription,D as EmptyDisplay,Ii as EmptyHeader,Li as EmptyMedia,Ri as EmptyTitle,ae as ErrorDialog,jr as FeatureDeveloping,Mr as FeatureFixing,kn as Field,Pn as FieldContent,ur as FieldContentMain,bn as FieldError,Rn as FieldGroup,En as FieldLabel,Ln as FieldSeparator,zi as FileUploader,h as Flex,Bi as Form,Vi as FormControl,Hi as FormDescription,Ui as FormField,Wi as FormItem,Gi as FormLabel,Ki as FormMessage,Gr as Google,Ar as Grid,f as GridProductCard,Ji as HoverCard,Yi as HoverCardContent,Xi as HoverCardTrigger,d as Image,rn as Input,Br as InputOTP,Vr as InputOTPGroup,Hr as InputOTPSeparator,Ur as InputOTPSlot,Zi as Item,Qi as ItemActions,$i as ItemContent,ea as ItemDescription,ta as ItemFooter,na as ItemGroup,ra as ItemHeader,ia as ItemMedia,aa as ItemSeparator,oa as ItemTitle,an as Label,ge as LoadingDialog,Rr as LoginPage,sa as Menubar,ca as MenubarCheckboxItem,la as MenubarContent,ua as MenubarGroup,da as MenubarItem,fa as MenubarLabel,pa as MenubarMenu,ma as MenubarPortal,ha as MenubarRadioGroup,ga as MenubarRadioItem,_a as MenubarSeparator,va as MenubarShortcut,ya as MenubarSub,ba as MenubarSubContent,xa as MenubarSubTrigger,Sa as MenubarTrigger,Ca as MultipleSelector,O as NameDisplay,Ta as NavigationMenu,Ea as NavigationMenuContent,Da as NavigationMenuIndicator,Oa as NavigationMenuItem,ka as NavigationMenuLink,Aa as NavigationMenuList,ja as NavigationMenuTrigger,Ma as NavigationMenuViewport,Nr as NotAuthorized,Pr as NotFound,Fn as NumberField,Pa as Pagination,Fa as PaginationContent,Ia as PaginationEllipsis,La as PaginationItem,Ra as PaginationLink,za as PaginationNext,Ba as PaginationPrevious,t as Paragraph,cr as PasswordField,kr as PaymentLayout,k as PhoneNumberDisplay,on as Popover,sn as PopoverAnchor,cn as PopoverClose,ln as PopoverContent,un as PopoverTrigger,p as ProductCard,Xt as Progress,Cr as RadioGroup,Hn as RadioGroupField,wr as RadioGroupItem,Jr as RefreshBtn,zr as RegisterPage,en as ResizableHandle,tn as ResizablePanel,nn as ResizablePanelGroup,A as RoleBadge,Va as ScrollArea,Ha as ScrollBar,Zr as SearchInput,We as SearchModal,dn as Select,fn as SelectContent,lr as SelectField,pn as SelectGroup,mn as SelectItem,hn as SelectLabel,gn as SelectSeparator,_n as SelectTrigger,vn as SelectValue,Y as Separator,X as Sheet,Z as SheetClose,Q as SheetContent,$ as SheetDescription,ee as SheetFooter,te as SheetHeader,ne as SheetTitle,re as SheetTrigger,On as SimpleArrayField,Dn as SimpleBooleanField,m as SimpleCard,wn as SimpleComboboxField,Nn as SimpleDateField,An as SimpleEmailField,Yn as SimpleNumberField,yn as SimplePasswordField,jn as SimpleRadioGroupField,Xn as SimpleSelectField,Sn as SimpleTextField,Mn as SimpleTextareaField,u as Skeleton,Ua as Slider,$t as Spinner,j as Statistic,Zt as Switch,or as SwitchField,Ka as Table,qa as TableBody,Ja as TableCaption,Ya as TableCell,Xa as TableFooter,Za as TableHead,Qa as TableHeader,$a as TableRow,eo as Tabs,to as TabsContent,no as TabsList,ro as TabsTrigger,Qn as TanStackActionSubmit,tr as TanStackActionsForm,Gn as TanStackCardForm,Wn as TanStackContainerForm,ar as TanStackDialogForm,Zn as TanStackFieldGroup,Un as TanStackPopoverForm,rr as TanStackSectionForm,er as TanStackTitleField,Dr as TextEditor,qn as TextEditorField,Er as TextEditorToolbar,Bn as TextField,Tr as Textarea,Kn as TextareaField,J as Title,Wa as Toaster,io as Toggle,oo as ToggleGroup,so as ToggleGroupItem,S as Tooltip,C as TooltipContent,w as TooltipProvider,T as TooltipTrigger,Yr as TrashBtn,Dt as UITableAnalysisPanel,lt as UITableAvatarNameDisplay,st as UITableBadgeDisplay,ot as UITableBody,Ze as UITableBooleanDisplay,jt as UITableCell,qe as UITableCellActions,at as UITableCellSelect,pt as UITableContainer,ct as UITableCurrencyDisplay,Ke as UITableDateDisplay,Pt as UITableDescriptionDisplay,it as UITableEditButton,$e as UITableEmailDisplay,Mt as UITableEmptyDisplay,wt as UITableFilter,ft as UITableFooter,Nt as UITableFooterRow,At as UITableHead,gt as UITableHeadCell,ut as UITableHeadCellOption,_t as UITableHeadCellSelect,St as UITableHeadRow,Tt as UITableInnerTable,ht as UITableInnerWrapper,Qe as UITableListDisplay,mt as UITableLoadMore,Xe as UITableMoreButton,rt as UITableNameDisplay,tt as UITablePermalink,et as UITablePhoneNumberDisplay,yt as UITableProgressDisplay,dt as UITableProvider,Ge as UITableRemoveButton,kt as UITableRow,bt as UITableStatisticDisplay,nt as UITableStatusDisplay,vt as UITableSummaryBar,Je as UITableToggleButton,Ot as UITableTooltip,Ct as UITableTooltipActions,Et as UITableTooltipFilter,Ye as UITableUserDataDisplay,xt as UITableWrapper,Xr as UploadImageBtn,F as UserDataDisplay,Wr as VerifyEmailPage,x as badgeVariants,li as buttonGroupVariants,Na as navigationMenuTriggerStyle,n as paragraphVariants,Ga as toast,ao as toggleVariants,wa as useDebounce,qi as useFormField,ir as useTanStackFieldContext,$n as useTanStackForm,nr as useTanStackFormContext,Jn as withTanStackFieldGroup,Vn 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{Separator as Y}from"./ui/separator.mjs";import{Sheet as X,SheetClose as Z,SheetContent as Q,SheetDescription as $,SheetFooter as ee,SheetHeader as te,SheetTitle as ne,SheetTrigger as re}from"./ui/sheet.mjs";import{DetailDialog as ie}from"./dialogs/detail-dialog/index.mjs";import{ErrorDialog as ae}from"./dialogs/error-dialog.mjs";import{Dialog as oe,DialogClose as se,DialogContent as ce,DialogDescription as le,DialogFooter as ue,DialogHeader as de,DialogOverlay as fe,DialogPortal as pe,DialogTitle as me,DialogTrigger as he}from"./ui/dialog.mjs";import{LoadingDialog as ge}from"./dialogs/loading-dialog.mjs";import{Description as _e,DescriptionBadge as ve,DescriptionBoolean as ye,DescriptionCopy as be,DescriptionDate as xe,DescriptionEmpty as Se,DescriptionHeader as Ce,DescriptionImages as we,DescriptionItem as Te,DescriptionLink as Ee,DescriptionLongText as De,DescriptionName as Oe,DescriptionNumberPhone as ke,DescriptionSection as Ae,DescriptionStatistic as je,DescriptionStatus as Me,DescriptionTagList as Ne,DescriptionUser as Pe}from"./features/descriptions/index.mjs";import{Command as Fe,CommandDialog as Ie,CommandEmpty as Le,CommandGroup as Re,CommandInput as ze,CommandItem as Be,CommandList as Ve,CommandSeparator as He,CommandShortcut as Ue}from"./ui/command.mjs";import{t as We}from"./search-modal-Cdmi2iyV.mjs";import{A as Ge,B as Ke,C as qe,D as Je,E as Ye,F as Xe,H as Ze,I as Qe,L as $e,M as et,N as tt,O as nt,P as rt,R as it,S as at,T as ot,U as st,V as ct,W as lt,_ as ut,a as dt,b as ft,c as pt,d as mt,f as ht,g as gt,h as _t,i as vt,j as yt,k as bt,l as xt,m as St,n as Ct,o as wt,p as Tt,r as Et,s as Dt,t as Ot,u as kt,v as At,w as jt,x as Mt,y as Nt,z as Pt}from"./tables-B9cF58YD.mjs";import{DropdownMenu as Ft,DropdownMenuCheckboxItem as It,DropdownMenuContent as Lt,DropdownMenuGroup as Rt,DropdownMenuItem as zt,DropdownMenuLabel as Bt,DropdownMenuPortal as Vt,DropdownMenuRadioGroup as Ht,DropdownMenuRadioItem as Ut,DropdownMenuSeparator as Wt,DropdownMenuShortcut as Gt,DropdownMenuSub as Kt,DropdownMenuSubContent as qt,DropdownMenuSubTrigger as Jt,DropdownMenuTrigger as Yt}from"./ui/dropdown-menu.mjs";import{Progress as Xt}from"./ui/progress.mjs";import{Switch as Zt}from"./ui/switch.mjs";import{Checkbox as Qt}from"./ui/checkbox.mjs";import{Spinner as $t}from"./ui/spinner.mjs";import{ResizableHandle as en,ResizablePanel as tn,ResizablePanelGroup as nn}from"./ui/resizable.mjs";import{Input as rn}from"./ui/input.mjs";import{Label as an}from"./ui/label.mjs";import{Popover as on,PopoverAnchor as sn,PopoverClose as cn,PopoverContent as ln,PopoverTrigger as un}from"./ui/popover.mjs";import{Select as dn,SelectContent as fn,SelectGroup as pn,SelectItem as mn,SelectLabel as hn,SelectSeparator as gn,SelectTrigger as _n,SelectValue as vn}from"./ui/select.mjs";import{A as yn,B as bn,C as xn,D as Sn,E as Cn,F as wn,G as Tn,H as En,I as Dn,K as On,L as kn,M as An,N as jn,O as Mn,P as Nn,R as Pn,S as Fn,T as In,U as Ln,V as Rn,W as zn,_ as Bn,a as Vn,b as Hn,c as Un,d as Wn,f as Gn,g as Kn,h as qn,i as Jn,j as Yn,k as Xn,l as Zn,m as Qn,n as $n,o as er,p as tr,r as nr,s as rr,t as ir,u as ar,v as or,w as sr,x as cr,y as lr,z as ur}from"./tanstack-form-DTCgWGCA.mjs";import{Drawer as dr,DrawerClose as fr,DrawerContent as pr,DrawerDescription as mr,DrawerFooter as hr,DrawerHeader as gr,DrawerOverlay as _r,DrawerPortal as vr,DrawerTitle as yr,DrawerTrigger as br}from"./ui/drawer.mjs";import{Calendar as xr,CalendarDayButton as Sr}from"./ui/calendar.mjs";import{RadioGroup as Cr,RadioGroupItem as wr}from"./ui/radio-group.mjs";import{Textarea as Tr}from"./ui/textarea.mjs";import{n as Er,t as Dr}from"./text-editor-BQtIXOpM.mjs";import{t as Or}from"./cms-layout-sd6GB6tR.mjs";import{t as kr}from"./payment-layout-Dsz6wYT1.mjs";import{Grid as Ar}from"./layouts/grid.mjs";import{FeatureDeveloping as jr}from"./pages/FeatureDeveloping.mjs";import{FeatureFixing as Mr}from"./pages/FeatureFixing.mjs";import{NotAuthorized as Nr}from"./pages/NotAuthorized.mjs";import{NotFound as Pr}from"./pages/NotFound.mjs";import{n as Fr,r as Ir,t as Lr}from"./alert-OD1KJTEV.mjs";import{LoginPage as Rr}from"./pages/LoginPage.mjs";import{RegisterPage as zr}from"./pages/RegisterPage.mjs";import{InputOTP as Br,InputOTPGroup as Vr,InputOTPSeparator as Hr,InputOTPSlot as Ur}from"./ui/input-otp.mjs";import{VerifyEmailPage as Wr}from"./pages/VerifyEmailPage.mjs";import{Google as Gr}from"./systems/google.mjs";import{AddNewBtn as Kr}from"./ui/buttons/add-new.mjs";import{EditBtn as qr}from"./ui/buttons/edit.mjs";import{RefreshBtn as Jr}from"./ui/buttons/refresh.mjs";import{TrashBtn as Yr}from"./ui/buttons/trash.mjs";import{UploadImageBtn as Xr}from"./ui/buttons/upload-image.mjs";import{SearchInput as Zr}from"./ui/inputs/search-input.mjs";import{AspectRatio as Qr}from"./ui/aspect-ratio.mjs";import{Breadcrumb as $r,BreadcrumbEllipsis as ei,BreadcrumbItem as ti,BreadcrumbLink as ni,BreadcrumbList as ri,BreadcrumbPage as ii,BreadcrumbSeparator as ai}from"./ui/breadcrumb.mjs";import{ButtonGroup as oi,ButtonGroupSeparator as si,ButtonGroupText as ci,buttonGroupVariants as li}from"./ui/button-group.mjs";import{Carousel as ui,CarouselContent as di,CarouselItem as fi,CarouselNext as pi,CarouselPrevious as mi}from"./ui/carousel.mjs";import{Collapsible as hi,CollapsibleContent as gi,CollapsibleTrigger as _i}from"./ui/collapsible.mjs";import{ContextMenu as vi,ContextMenuCheckboxItem as yi,ContextMenuContent as bi,ContextMenuGroup as xi,ContextMenuItem as Si,ContextMenuLabel as Ci,ContextMenuPortal as wi,ContextMenuRadioGroup as Ti,ContextMenuRadioItem as Ei,ContextMenuSeparator as Di,ContextMenuShortcut as Oi,ContextMenuSub as ki,ContextMenuSubContent as Ai,ContextMenuSubTrigger as ji,ContextMenuTrigger as Mi}from"./ui/context-menu.mjs";import{Empty as Ni,EmptyContent as Pi,EmptyDescription as Fi,EmptyHeader as Ii,EmptyMedia as Li,EmptyTitle as Ri}from"./ui/empty.mjs";import{FileUploader as zi}from"./ui/file-uploader.mjs";import{Form as Bi,FormControl as Vi,FormDescription as Hi,FormField as Ui,FormItem as Wi,FormLabel as Gi,FormMessage as Ki,useFormField as qi}from"./ui/form.mjs";import{HoverCard as Ji,HoverCardContent as Yi,HoverCardTrigger as Xi}from"./ui/hover-card.mjs";import{Item as Zi,ItemActions as Qi,ItemContent as $i,ItemDescription as ea,ItemFooter as ta,ItemGroup as na,ItemHeader as ra,ItemMedia as ia,ItemSeparator as aa,ItemTitle as oa}from"./ui/item.mjs";import{Menubar as sa,MenubarCheckboxItem as ca,MenubarContent as la,MenubarGroup as ua,MenubarItem as da,MenubarLabel as fa,MenubarMenu as pa,MenubarPortal as ma,MenubarRadioGroup as ha,MenubarRadioItem as ga,MenubarSeparator as _a,MenubarShortcut as va,MenubarSub as ya,MenubarSubContent as ba,MenubarSubTrigger as xa,MenubarTrigger as Sa}from"./ui/menubar.mjs";import{MultipleSelector as Ca,useDebounce as wa}from"./ui/multi-select.mjs";import{NavigationMenu as Ta,NavigationMenuContent as Ea,NavigationMenuIndicator as Da,NavigationMenuItem as Oa,NavigationMenuLink as ka,NavigationMenuList as Aa,NavigationMenuTrigger as ja,NavigationMenuViewport as Ma,navigationMenuTriggerStyle as Na}from"./ui/navigation-menu.mjs";import{Pagination as Pa,PaginationContent as Fa,PaginationEllipsis as Ia,PaginationItem as La,PaginationLink as Ra,PaginationNext as za,PaginationPrevious as Ba}from"./ui/pagination.mjs";import{ScrollArea as Va,ScrollBar as Ha}from"./ui/scroll-area.mjs";import{Slider as Ua}from"./ui/slider.mjs";import{Toaster as Wa,toast as Ga}from"./ui/sonner.mjs";import{Table as Ka,TableBody as qa,TableCaption as Ja,TableCell as Ya,TableFooter as Xa,TableHead as Za,TableHeader as Qa,TableRow as $a}from"./ui/table.mjs";import{Tabs as eo,TabsContent as to,TabsList as no,TabsTrigger as ro}from"./ui/tabs.mjs";import{Toggle as io,toggleVariants as ao}from"./ui/toggle.mjs";import{ToggleGroup as oo,ToggleGroupItem as so}from"./ui/toggle-group.mjs";export{Kr as AddNewBtn,Lr as Alert,Fr 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,Ir as AlertTitle,zn as ArrayCol,Tn as ArrayHeaderRow,Qr as AspectRatio,M as Avatar,N as AvatarFallback,P as AvatarImage,b as Badge,$r as Breadcrumb,ei as BreadcrumbEllipsis,ti as BreadcrumbItem,ni as BreadcrumbLink,ri as BreadcrumbList,ii as BreadcrumbPage,ai as BreadcrumbSeparator,e as Button,oi as ButtonGroup,si as ButtonGroupSeparator,ci as ButtonGroupText,Or as CMSLayout,xr as Calendar,Sr as CalendarDayButton,r as Card,i as CardAction,a as CardContent,o as CardDescription,s as CardFooter,c as CardHeader,l as CardTitle,ui as Carousel,di as CarouselContent,fi as CarouselItem,pi as CarouselNext,mi as CarouselPrevious,Qt as Checkbox,Cn as CheckboxField,hi as Collapsible,gi as CollapsibleContent,_i as CollapsibleTrigger,In as ComboboxField,Fe as Command,Ie as CommandDialog,Le as CommandEmpty,Re as CommandGroup,ze as CommandInput,Be as CommandItem,Ve as CommandList,He as CommandSeparator,Ue as CommandShortcut,q as ConfirmDialog,vi as ContextMenu,yi as ContextMenuCheckboxItem,bi as ContextMenuContent,xi as ContextMenuGroup,Si as ContextMenuItem,Ci as ContextMenuLabel,wi as ContextMenuPortal,Ti as ContextMenuRadioGroup,Ei as ContextMenuRadioItem,Di as ContextMenuSeparator,Oi as ContextMenuShortcut,ki as ContextMenuSub,Ai as ContextMenuSubContent,ji as ContextMenuSubTrigger,Mi as ContextMenuTrigger,g as CountryDisplay,_ as DataList,v as DataListItem,y as DateDisplay,sr as DateField,E as DateTooltip,_e as Description,ve as DescriptionBadge,ye as DescriptionBoolean,be as DescriptionCopy,xe as DescriptionDate,Se as DescriptionEmpty,Ce as DescriptionHeader,we as DescriptionImages,Te as DescriptionItem,Ee as DescriptionLink,De as DescriptionLongText,Oe as DescriptionName,ke as DescriptionNumberPhone,Ae as DescriptionSection,je as DescriptionStatistic,Me as DescriptionStatus,Ne as DescriptionTagList,Pe as DescriptionUser,ie as DetailDialog,oe as Dialog,se as DialogClose,ce as DialogContent,le as DialogDescription,ue as DialogFooter,de as DialogHeader,fe as DialogOverlay,pe as DialogPortal,me as DialogTitle,he as DialogTrigger,dr as Drawer,fr as DrawerClose,pr as DrawerContent,mr as DrawerDescription,hr as DrawerFooter,gr as DrawerHeader,_r as DrawerOverlay,vr as DrawerPortal,yr as DrawerTitle,br as DrawerTrigger,Ft as DropdownMenu,It as DropdownMenuCheckboxItem,Lt as DropdownMenuContent,Rt as DropdownMenuGroup,zt as DropdownMenuItem,Bt as DropdownMenuLabel,Vt as DropdownMenuPortal,Ht as DropdownMenuRadioGroup,Ut as DropdownMenuRadioItem,Wt as DropdownMenuSeparator,Gt as DropdownMenuShortcut,Kt as DropdownMenuSub,qt as DropdownMenuSubContent,Jt as DropdownMenuSubTrigger,Yt as DropdownMenuTrigger,qr as EditBtn,xn as EmailField,Ni as Empty,Pi as EmptyContent,Fi as EmptyDescription,D as EmptyDisplay,Ii as EmptyHeader,Li as EmptyMedia,Ri as EmptyTitle,ae as ErrorDialog,jr as FeatureDeveloping,Mr as FeatureFixing,kn as Field,Pn as FieldContent,ur as FieldContentMain,bn as FieldError,Rn as FieldGroup,En as FieldLabel,Ln as FieldSeparator,zi as FileUploader,h as Flex,Bi as Form,Vi as FormControl,Hi as FormDescription,Ui as FormField,Wi as FormItem,Gi as FormLabel,Ki as FormMessage,Gr as Google,Ar as Grid,f as GridProductCard,Ji as HoverCard,Yi as HoverCardContent,Xi as HoverCardTrigger,d as Image,rn as Input,Br as InputOTP,Vr as InputOTPGroup,Hr as InputOTPSeparator,Ur as InputOTPSlot,Zi as Item,Qi as ItemActions,$i as ItemContent,ea as ItemDescription,ta as ItemFooter,na as ItemGroup,ra as ItemHeader,ia as ItemMedia,aa as ItemSeparator,oa as ItemTitle,an as Label,ge as LoadingDialog,Rr as LoginPage,sa as Menubar,ca as MenubarCheckboxItem,la as MenubarContent,ua as MenubarGroup,da as MenubarItem,fa as MenubarLabel,pa as MenubarMenu,ma as MenubarPortal,ha as MenubarRadioGroup,ga as MenubarRadioItem,_a as MenubarSeparator,va as MenubarShortcut,ya as MenubarSub,ba as MenubarSubContent,xa as MenubarSubTrigger,Sa as MenubarTrigger,Ca as MultipleSelector,O as NameDisplay,Ta as NavigationMenu,Ea as NavigationMenuContent,Da as NavigationMenuIndicator,Oa as NavigationMenuItem,ka as NavigationMenuLink,Aa as NavigationMenuList,ja as NavigationMenuTrigger,Ma as NavigationMenuViewport,Nr as NotAuthorized,Pr as NotFound,Fn as NumberField,Pa as Pagination,Fa as PaginationContent,Ia as PaginationEllipsis,La as PaginationItem,Ra as PaginationLink,za as PaginationNext,Ba as PaginationPrevious,t as Paragraph,cr as PasswordField,kr as PaymentLayout,k as PhoneNumberDisplay,on as Popover,sn as PopoverAnchor,cn as PopoverClose,ln as PopoverContent,un as PopoverTrigger,p as ProductCard,Xt as Progress,Cr as RadioGroup,Hn as RadioGroupField,wr as RadioGroupItem,Jr as RefreshBtn,zr as RegisterPage,en as ResizableHandle,tn as ResizablePanel,nn as ResizablePanelGroup,A as RoleBadge,Va as ScrollArea,Ha as ScrollBar,Zr as SearchInput,We as SearchModal,dn as Select,fn as SelectContent,lr as SelectField,pn as SelectGroup,mn as SelectItem,hn as SelectLabel,gn as SelectSeparator,_n as SelectTrigger,vn as SelectValue,Y as Separator,X as Sheet,Z as SheetClose,Q as SheetContent,$ as SheetDescription,ee as SheetFooter,te as SheetHeader,ne as SheetTitle,re as SheetTrigger,On as SimpleArrayField,Dn as SimpleBooleanField,m as SimpleCard,wn as SimpleComboboxField,Nn as SimpleDateField,An as SimpleEmailField,Yn as SimpleNumberField,yn as SimplePasswordField,jn as SimpleRadioGroupField,Xn as SimpleSelectField,Sn as SimpleTextField,Mn as SimpleTextareaField,u as Skeleton,Ua as Slider,$t as Spinner,j as Statistic,Zt as Switch,or as SwitchField,Ka as Table,qa as TableBody,Ja as TableCaption,Ya as TableCell,Xa as TableFooter,Za as TableHead,Qa as TableHeader,$a as TableRow,eo as Tabs,to as TabsContent,no as TabsList,ro as TabsTrigger,Qn as TanStackActionSubmit,tr as TanStackActionsForm,Gn as TanStackCardForm,Wn as TanStackContainerForm,ar as TanStackDialogForm,Zn as TanStackFieldGroup,Un as TanStackPopoverForm,rr as TanStackSectionForm,er as TanStackTitleField,Dr as TextEditor,qn as TextEditorField,Er as TextEditorToolbar,Bn as TextField,Tr as Textarea,Kn as TextareaField,J as Title,Wa as Toaster,io as Toggle,oo as ToggleGroup,so as ToggleGroupItem,S as Tooltip,C as TooltipContent,w as TooltipProvider,T as TooltipTrigger,Yr as TrashBtn,Dt as UITableAnalysisPanel,lt as UITableAvatarNameDisplay,st as UITableBadgeDisplay,ot as UITableBody,Ze as UITableBooleanDisplay,jt as UITableCell,qe as UITableCellActions,at as UITableCellSelect,pt as UITableContainer,ct as UITableCurrencyDisplay,Ke as UITableDateDisplay,Pt as UITableDescriptionDisplay,it as UITableEditButton,$e as UITableEmailDisplay,Mt as UITableEmptyDisplay,wt as UITableFilter,ft as UITableFooter,Nt as UITableFooterRow,At as UITableHead,gt as UITableHeadCell,ut as UITableHeadCellOption,_t as UITableHeadCellSelect,St as UITableHeadRow,Tt as UITableInnerTable,ht as UITableInnerWrapper,Qe as UITableListDisplay,mt as UITableLoadMore,Xe as UITableMoreButton,rt as UITableNameDisplay,tt as UITablePermalink,et as UITablePhoneNumberDisplay,yt as UITableProgressDisplay,dt as UITableProvider,Ge as UITableRemoveButton,kt as UITableRow,bt as UITableStatisticDisplay,nt as UITableStatusDisplay,vt as UITableSummaryBar,Je as UITableToggleButton,Ot as UITableTooltip,Ct as UITableTooltipActions,Et as UITableTooltipFilter,Ye as UITableUserDataDisplay,xt as UITableWrapper,Xr as UploadImageBtn,F as UserDataDisplay,Wr as VerifyEmailPage,x as badgeVariants,li as buttonGroupVariants,Na as navigationMenuTriggerStyle,n as paragraphVariants,Ga as toast,ao as toggleVariants,wa as useDebounce,qi as useFormField,ir as useTanStackFieldContext,$n as useTanStackForm,nr as useTanStackFormContext,Jn as withTanStackFieldGroup,Vn as withTanStackForm};
@@ -1 +1 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../cms-layout-Bsw2mKXo.cjs");exports.CMSLayout=e.t;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../cms-layout-BMwn0Yv3.cjs");exports.CMSLayout=e.t;
@@ -1 +1 @@
1
- "use client";import{t as e}from"../../cms-layout-IwpD0LvR.mjs";export{e as CMSLayout};
1
+ "use client";import{t as e}from"../../cms-layout-sd6GB6tR.mjs";export{e as CMSLayout};
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../payment-layout-Dlvc1P7b.cjs");exports.PaymentLayout=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../../payment-layout-BLrXT-oc.cjs");exports.PaymentLayout=e.t;
@@ -1 +1 @@
1
- import{t as e}from"../../payment-layout-CG_l7Es-.mjs";export{e as PaymentLayout};
1
+ import{t as e}from"../../payment-layout-Dsz6wYT1.mjs";export{e as PaymentLayout};
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../ui/button.cjs");let t=require("lucide-react"),n=require("@customafk/react-toolkit/utils"),r=require("react/jsx-runtime");const i=({title:i=`Tính năng đang phát triển`,subtitle:a=`Chúng tôi đang phát triển tính năng này. Vui lòng quay lại sau.`,buttonText:o=`Quay lại`,onButtonClick:s=()=>window.history.back(),className:c,iconClassName:l})=>(0,r.jsxs)(`div`,{className:(0,n.cn)(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,c),children:[(0,r.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,r.jsx)(t.Construction,{className:(0,n.cn)(`size-16 sm:size-24 text-yellow-500`,l)}),(0,r.jsx)(`div`,{className:`text-3xl sm:text-5xl font-bold text-yellow-500`})]}),(0,r.jsx)(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:i}),(0,r.jsx)(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:a}),(0,r.jsx)(e.Button,{onClick:s,variant:`default`,className:`mt-2`,size:`sm`,children:o})]});exports.FeatureDeveloping=i,exports.default=i;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../ui/button.cjs"),t=require("../features/logo/index.cjs");let n=require("lucide-react"),r=require("@customafk/react-toolkit/utils"),i=require("react/jsx-runtime");const a=({title:a=`Tính năng đang phát triển`,subtitle:o=`Chúng tôi đang phát triển tính năng này. Vui lòng quay lại sau.`,buttonText:s=`Quay lại`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>(0,i.jsxs)(`div`,{className:(0,r.cn)(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[(0,i.jsx)(t.LunasLogo,{variant:`stacked`,size:`sm`}),(0,i.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,i.jsx)(n.Construction,{className:(0,r.cn)(`size-16 sm:size-24 text-yellow-500`,u)}),(0,i.jsx)(`div`,{className:`text-3xl sm:text-5xl font-bold text-yellow-500`})]}),(0,i.jsx)(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),(0,i.jsx)(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),(0,i.jsx)(e.Button,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});exports.FeatureDeveloping=a,exports.default=a;
2
2
  //# sourceMappingURL=FeatureDeveloping.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureDeveloping.cjs","names":["Construction","Button"],"sources":["../../packages/components/pages/FeatureDeveloping.tsx"],"sourcesContent":["import { Construction } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '../ui/button';\n\nexport interface FeatureDevelopingProps {\n /** Main heading shown beneath the construction icon. Defaults to `'Tính năng đang phát triển'`. */\n title?: string;\n /** Supporting text shown below the title. Defaults to a Vietnamese message asking the user to check back later. */\n subtitle?: string;\n /** Label for the action button. Defaults to `'Quay lại'`. */\n buttonText?: string;\n /** Handler called when the action button is clicked. Defaults to `window.history.back()`. */\n onButtonClick?: () => void;\n /** Additional class names applied to the root container element. */\n className?: string;\n /** Additional class names applied to the `Construction` icon. */\n iconClassName?: string;\n}\n\n/**\n * Full-page placeholder displayed when a feature is still under active development.\n *\n * @example\n * ```tsx\n * import { FeatureDeveloping } from '@customafk/lunas-ui/pages/FeatureDeveloping';\n *\n * <FeatureDeveloping\n * title=\"Coming Soon\"\n * subtitle=\"This feature is not ready yet.\"\n * buttonText=\"Go Back\"\n * onButtonClick={() => router.back()}\n * />\n * ```\n */\nexport const FeatureDeveloping = ({\n title = 'Tính năng đang phát triển',\n subtitle = 'Chúng tôi đang phát triển tính năng này. Vui lòng quay lại sau.',\n buttonText = 'Quay lại',\n onButtonClick = () => window.history.back(),\n className,\n iconClassName,\n}: FeatureDevelopingProps) => {\n return (\n <div className={cn('flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full', className)}>\n <div className=\"flex flex-col items-center gap-2\">\n <Construction className={cn('size-16 sm:size-24 text-yellow-500', iconClassName)} />\n <div className=\"text-3xl sm:text-5xl font-bold text-yellow-500\">{/* This text shows the feature is in development */}</div>\n </div>\n\n <h1 className=\"text-xl sm:text-2xl font-semibold mt-2\">{title}</h1>\n\n <p className=\"text-muted-foreground max-w-md text-sm sm:text-base\">{subtitle}</p>\n\n <Button onClick={onButtonClick} variant=\"default\" className=\"mt-2\" size=\"sm\">\n {buttonText}\n </Button>\n </div>\n );\n};\n\nexport default FeatureDeveloping;\n"],"mappings":"4OAoCA,MAAa,GAAqB,CAChC,QAAQ,4BACR,WAAW,kEACX,aAAa,WACb,oBAAsB,OAAO,QAAQ,KAAK,EAC1C,YACA,oBAGE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,WAAA,EAAA,EAAA,GAAA,CAAc,8GAA+G,CAAS,WAA3I,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,4CAAf,EACE,EAAA,EAAA,IAAA,CAACA,EAAAA,aAAD,CAAc,WAAA,EAAA,EAAA,GAAA,CAAc,qCAAsC,CAAa,CAAI,CAAA,GACnF,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,gDAA2G,CAAA,CACvH,KAEL,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,kDAA0C,CAAU,CAAA,GAElE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,+DAAuD,CAAY,CAAA,GAEhF,EAAA,EAAA,IAAA,CAACC,EAAAA,OAAD,CAAQ,QAAS,EAAe,QAAQ,UAAU,UAAU,OAAO,KAAK,cACrE,CACK,CAAA,CACL"}
1
+ {"version":3,"file":"FeatureDeveloping.cjs","names":["LunasLogo","Construction","Button"],"sources":["../../packages/components/pages/FeatureDeveloping.tsx"],"sourcesContent":["'use client';\n\nimport { Construction } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '../ui/button';\nimport { LunasLogo } from '../features/logo';\n\nexport interface FeatureDevelopingProps {\n /** Main heading shown beneath the construction icon. Defaults to `'Tính năng đang phát triển'`. */\n title?: string;\n /** Supporting text shown below the title. Defaults to a Vietnamese message asking the user to check back later. */\n subtitle?: string;\n /** Label for the action button. Defaults to `'Quay lại'`. */\n buttonText?: string;\n /** Handler called when the action button is clicked. Defaults to `window.history.back()`. */\n onButtonClick?: () => void;\n /** Additional class names applied to the root container element. */\n className?: string;\n /** Additional class names applied to the `Construction` icon. */\n iconClassName?: string;\n}\n\n/**\n * Full-page placeholder displayed when a feature is still under active development.\n *\n * @example\n * ```tsx\n * import { FeatureDeveloping } from '@customafk/lunas-ui/pages/FeatureDeveloping';\n *\n * <FeatureDeveloping\n * title=\"Coming Soon\"\n * subtitle=\"This feature is not ready yet.\"\n * buttonText=\"Go Back\"\n * onButtonClick={() => router.back()}\n * />\n * ```\n */\nexport const FeatureDeveloping = ({\n title = 'Tính năng đang phát triển',\n subtitle = 'Chúng tôi đang phát triển tính năng này. Vui lòng quay lại sau.',\n buttonText = 'Quay lại',\n onButtonClick = () => window.history.back(),\n className,\n iconClassName,\n}: FeatureDevelopingProps) => {\n return (\n <div className={cn('flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full', className)}>\n <LunasLogo variant=\"stacked\" size=\"sm\" />\n <div className=\"flex flex-col items-center gap-2\">\n <Construction className={cn('size-16 sm:size-24 text-yellow-500', iconClassName)} />\n <div className=\"text-3xl sm:text-5xl font-bold text-yellow-500\">{/* This text shows the feature is in development */}</div>\n </div>\n\n <h1 className=\"text-xl sm:text-2xl font-semibold mt-2\">{title}</h1>\n\n <p className=\"text-muted-foreground max-w-md text-sm sm:text-base\">{subtitle}</p>\n\n <Button onClick={onButtonClick} variant=\"default\" className=\"mt-2\" size=\"sm\">\n {buttonText}\n </Button>\n </div>\n );\n};\n\nexport default FeatureDeveloping;\n"],"mappings":"iSAuCA,MAAa,GAAqB,CAChC,QAAQ,4BACR,WAAW,kEACX,aAAa,WACb,oBAAsB,OAAO,QAAQ,KAAK,EAC1C,YACA,oBAGE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,WAAA,EAAA,EAAA,GAAA,CAAc,8GAA+G,CAAS,WAA3I,EACE,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAD,CAAW,QAAQ,UAAU,KAAK,IAAM,CAAA,GACxC,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,4CAAf,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,aAAD,CAAc,WAAA,EAAA,EAAA,GAAA,CAAc,qCAAsC,CAAa,CAAI,CAAA,GACnF,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,gDAA2G,CAAA,CACvH,KAEL,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,kDAA0C,CAAU,CAAA,GAElE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,+DAAuD,CAAY,CAAA,GAEhF,EAAA,EAAA,IAAA,CAACC,EAAAA,OAAD,CAAQ,QAAS,EAAe,QAAQ,UAAU,UAAU,OAAO,KAAK,cACrE,CACK,CAAA,CACL"}
@@ -1,2 +1,2 @@
1
- import{Button as e}from"../ui/button.mjs";import{Construction as t}from"lucide-react";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({title:a=`Tính năng đang phát triển`,subtitle:o=`Chúng tôi đang phát triển tính năng này. Vui lòng quay lại sau.`,buttonText:s=`Quay lại`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>i(`div`,{className:n(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[i(`div`,{className:`flex flex-col items-center gap-2`,children:[r(t,{className:n(`size-16 sm:size-24 text-yellow-500`,u)}),r(`div`,{className:`text-3xl sm:text-5xl font-bold text-yellow-500`})]}),r(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),r(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),r(e,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});export{a as FeatureDeveloping,a as default};
1
+ "use client";import{Button as e}from"../ui/button.mjs";import{LunasLogo as t}from"../features/logo/index.mjs";import{Construction as n}from"lucide-react";import{cn as r}from"@customafk/react-toolkit/utils";import{jsx as i,jsxs as a}from"react/jsx-runtime";const o=({title:o=`Tính năng đang phát triển`,subtitle:s=`Chúng tôi đang phát triển tính năng này. Vui lòng quay lại sau.`,buttonText:c=`Quay lại`,onButtonClick:l=()=>window.history.back(),className:u,iconClassName:d})=>a(`div`,{className:r(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,u),children:[i(t,{variant:`stacked`,size:`sm`}),a(`div`,{className:`flex flex-col items-center gap-2`,children:[i(n,{className:r(`size-16 sm:size-24 text-yellow-500`,d)}),i(`div`,{className:`text-3xl sm:text-5xl font-bold text-yellow-500`})]}),i(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:o}),i(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:s}),i(e,{onClick:l,variant:`default`,className:`mt-2`,size:`sm`,children:c})]});export{o as FeatureDeveloping,o as default};
2
2
  //# sourceMappingURL=FeatureDeveloping.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureDeveloping.mjs","names":[],"sources":["../../packages/components/pages/FeatureDeveloping.tsx"],"sourcesContent":["import { Construction } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '../ui/button';\n\nexport interface FeatureDevelopingProps {\n /** Main heading shown beneath the construction icon. Defaults to `'Tính năng đang phát triển'`. */\n title?: string;\n /** Supporting text shown below the title. Defaults to a Vietnamese message asking the user to check back later. */\n subtitle?: string;\n /** Label for the action button. Defaults to `'Quay lại'`. */\n buttonText?: string;\n /** Handler called when the action button is clicked. Defaults to `window.history.back()`. */\n onButtonClick?: () => void;\n /** Additional class names applied to the root container element. */\n className?: string;\n /** Additional class names applied to the `Construction` icon. */\n iconClassName?: string;\n}\n\n/**\n * Full-page placeholder displayed when a feature is still under active development.\n *\n * @example\n * ```tsx\n * import { FeatureDeveloping } from '@customafk/lunas-ui/pages/FeatureDeveloping';\n *\n * <FeatureDeveloping\n * title=\"Coming Soon\"\n * subtitle=\"This feature is not ready yet.\"\n * buttonText=\"Go Back\"\n * onButtonClick={() => router.back()}\n * />\n * ```\n */\nexport const FeatureDeveloping = ({\n title = 'Tính năng đang phát triển',\n subtitle = 'Chúng tôi đang phát triển tính năng này. Vui lòng quay lại sau.',\n buttonText = 'Quay lại',\n onButtonClick = () => window.history.back(),\n className,\n iconClassName,\n}: FeatureDevelopingProps) => {\n return (\n <div className={cn('flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full', className)}>\n <div className=\"flex flex-col items-center gap-2\">\n <Construction className={cn('size-16 sm:size-24 text-yellow-500', iconClassName)} />\n <div className=\"text-3xl sm:text-5xl font-bold text-yellow-500\">{/* This text shows the feature is in development */}</div>\n </div>\n\n <h1 className=\"text-xl sm:text-2xl font-semibold mt-2\">{title}</h1>\n\n <p className=\"text-muted-foreground max-w-md text-sm sm:text-base\">{subtitle}</p>\n\n <Button onClick={onButtonClick} variant=\"default\" className=\"mt-2\" size=\"sm\">\n {buttonText}\n </Button>\n </div>\n );\n};\n\nexport default FeatureDeveloping;\n"],"mappings":"4LAoCA,MAAa,GAAqB,CAChC,QAAQ,4BACR,WAAW,kEACX,aAAa,WACb,oBAAsB,OAAO,QAAQ,KAAK,EAC1C,YACA,mBAGE,EAAC,MAAD,CAAK,UAAW,EAAG,8GAA+G,CAAS,WAA3I,CACE,EAAC,MAAD,CAAK,UAAU,4CAAf,CACE,EAAC,EAAD,CAAc,UAAW,EAAG,qCAAsC,CAAa,CAAI,CAAA,EACnF,EAAC,MAAD,CAAK,UAAU,gDAA2G,CAAA,CACvH,IAEL,EAAC,KAAD,CAAI,UAAU,kDAA0C,CAAU,CAAA,EAElE,EAAC,IAAD,CAAG,UAAU,+DAAuD,CAAY,CAAA,EAEhF,EAAC,EAAD,CAAQ,QAAS,EAAe,QAAQ,UAAU,UAAU,OAAO,KAAK,cACrE,CACK,CAAA,CACL"}
1
+ {"version":3,"file":"FeatureDeveloping.mjs","names":[],"sources":["../../packages/components/pages/FeatureDeveloping.tsx"],"sourcesContent":["'use client';\n\nimport { Construction } from 'lucide-react';\n\nimport { cn } from '@customafk/react-toolkit/utils';\n\nimport { Button } from '../ui/button';\nimport { LunasLogo } from '../features/logo';\n\nexport interface FeatureDevelopingProps {\n /** Main heading shown beneath the construction icon. Defaults to `'Tính năng đang phát triển'`. */\n title?: string;\n /** Supporting text shown below the title. Defaults to a Vietnamese message asking the user to check back later. */\n subtitle?: string;\n /** Label for the action button. Defaults to `'Quay lại'`. */\n buttonText?: string;\n /** Handler called when the action button is clicked. Defaults to `window.history.back()`. */\n onButtonClick?: () => void;\n /** Additional class names applied to the root container element. */\n className?: string;\n /** Additional class names applied to the `Construction` icon. */\n iconClassName?: string;\n}\n\n/**\n * Full-page placeholder displayed when a feature is still under active development.\n *\n * @example\n * ```tsx\n * import { FeatureDeveloping } from '@customafk/lunas-ui/pages/FeatureDeveloping';\n *\n * <FeatureDeveloping\n * title=\"Coming Soon\"\n * subtitle=\"This feature is not ready yet.\"\n * buttonText=\"Go Back\"\n * onButtonClick={() => router.back()}\n * />\n * ```\n */\nexport const FeatureDeveloping = ({\n title = 'Tính năng đang phát triển',\n subtitle = 'Chúng tôi đang phát triển tính năng này. Vui lòng quay lại sau.',\n buttonText = 'Quay lại',\n onButtonClick = () => window.history.back(),\n className,\n iconClassName,\n}: FeatureDevelopingProps) => {\n return (\n <div className={cn('flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full', className)}>\n <LunasLogo variant=\"stacked\" size=\"sm\" />\n <div className=\"flex flex-col items-center gap-2\">\n <Construction className={cn('size-16 sm:size-24 text-yellow-500', iconClassName)} />\n <div className=\"text-3xl sm:text-5xl font-bold text-yellow-500\">{/* This text shows the feature is in development */}</div>\n </div>\n\n <h1 className=\"text-xl sm:text-2xl font-semibold mt-2\">{title}</h1>\n\n <p className=\"text-muted-foreground max-w-md text-sm sm:text-base\">{subtitle}</p>\n\n <Button onClick={onButtonClick} variant=\"default\" className=\"mt-2\" size=\"sm\">\n {buttonText}\n </Button>\n </div>\n );\n};\n\nexport default FeatureDeveloping;\n"],"mappings":"gQAuCA,MAAa,GAAqB,CAChC,QAAQ,4BACR,WAAW,kEACX,aAAa,WACb,oBAAsB,OAAO,QAAQ,KAAK,EAC1C,YACA,mBAGE,EAAC,MAAD,CAAK,UAAW,EAAG,8GAA+G,CAAS,WAA3I,CACE,EAAC,EAAD,CAAW,QAAQ,UAAU,KAAK,IAAM,CAAA,EACxC,EAAC,MAAD,CAAK,UAAU,4CAAf,CACE,EAAC,EAAD,CAAc,UAAW,EAAG,qCAAsC,CAAa,CAAI,CAAA,EACnF,EAAC,MAAD,CAAK,UAAU,gDAA2G,CAAA,CACvH,IAEL,EAAC,KAAD,CAAI,UAAU,kDAA0C,CAAU,CAAA,EAElE,EAAC,IAAD,CAAG,UAAU,+DAAuD,CAAY,CAAA,EAEhF,EAAC,EAAD,CAAQ,QAAS,EAAe,QAAQ,UAAU,UAAU,OAAO,KAAK,cACrE,CACK,CAAA,CACL"}
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../ui/button.cjs");let t=require("lucide-react"),n=require("@customafk/react-toolkit/utils"),r=require("react/jsx-runtime");const i=({title:i=`Tính năng đang bảo trì`,subtitle:a=`Chúng tôi đang khắc phục vấn đề với tính năng này. Vui lòng quay lại sau.`,buttonText:o=`Quay lại`,onButtonClick:s=()=>window.history.back(),className:c,iconClassName:l})=>(0,r.jsxs)(`div`,{className:(0,n.cn)(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,c),children:[(0,r.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,r.jsx)(t.Wrench,{className:(0,n.cn)(`size-16 sm:size-24 text-orange-500`,l)}),(0,r.jsx)(`div`,{className:`text-3xl sm:text-5xl font-bold text-orange-500`})]}),(0,r.jsx)(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:i}),(0,r.jsx)(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:a}),(0,r.jsx)(e.Button,{onClick:s,variant:`default`,className:`mt-2`,size:`sm`,children:o})]});exports.FeatureFixing=i,exports.default=i;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../ui/button.cjs"),t=require("../features/logo/index.cjs");let n=require("lucide-react"),r=require("@customafk/react-toolkit/utils"),i=require("react/jsx-runtime");const a=({title:a=`Tính năng đang bảo trì`,subtitle:o=`Chúng tôi đang khắc phục vấn đề với tính năng này. Vui lòng quay lại sau.`,buttonText:s=`Quay lại`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>(0,i.jsxs)(`div`,{className:(0,r.cn)(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[(0,i.jsx)(t.LunasLogo,{variant:`stacked`,size:`sm`}),(0,i.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,i.jsx)(n.Wrench,{className:(0,r.cn)(`size-16 sm:size-24 text-orange-500`,u)}),(0,i.jsx)(`div`,{className:`text-3xl sm:text-5xl font-bold text-orange-500`})]}),(0,i.jsx)(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),(0,i.jsx)(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),(0,i.jsx)(e.Button,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});exports.FeatureFixing=a,exports.default=a;
2
2
  //# sourceMappingURL=FeatureFixing.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureFixing.cjs","names":["Wrench","Button"],"sources":["../../packages/components/pages/FeatureFixing.tsx"],"sourcesContent":["import { Button } from '../ui/button';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { Wrench } from 'lucide-react';\n\nexport interface FeatureFixingProps {\n /** Main heading shown beneath the wrench icon. Defaults to `'Tính năng đang bảo trì'`. */\n title?: string;\n /** Supporting text shown below the title. Defaults to a Vietnamese maintenance message. */\n subtitle?: string;\n /** Label for the action button. Defaults to `'Quay lại'`. */\n buttonText?: string;\n /** Handler called when the action button is clicked. Defaults to `window.history.back()`. */\n onButtonClick?: () => void;\n /** Additional class names applied to the root container element. */\n className?: string;\n /** Additional class names applied to the `Wrench` icon. */\n iconClassName?: string;\n}\n\n/**\n * Full-page placeholder displayed when a feature is temporarily unavailable due to maintenance or bug fixes.\n *\n * @example\n * ```tsx\n * import { FeatureFixing } from '@customafk/lunas-ui/pages/FeatureFixing';\n *\n * <FeatureFixing\n * title=\"Under Maintenance\"\n * subtitle=\"We are fixing an issue. Please check back later.\"\n * buttonText=\"Go Back\"\n * onButtonClick={() => router.back()}\n * />\n * ```\n */\nexport const FeatureFixing = ({\n title = 'Tính năng đang bảo trì',\n subtitle = 'Chúng tôi đang khắc phục vấn đề với tính năng này. Vui lòng quay lại sau.',\n buttonText = 'Quay lại',\n onButtonClick = () => window.history.back(),\n className,\n iconClassName,\n}: FeatureFixingProps) => {\n return (\n <div className={cn('flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full', className)}>\n <div className=\"flex flex-col items-center gap-2\">\n <Wrench className={cn('size-16 sm:size-24 text-orange-500', iconClassName)} />\n <div className=\"text-3xl sm:text-5xl font-bold text-orange-500\">{/* This text indicates the feature is being fixed */}</div>\n </div>\n\n <h1 className=\"text-xl sm:text-2xl font-semibold mt-2\">{title}</h1>\n\n <p className=\"text-muted-foreground max-w-md text-sm sm:text-base\">{subtitle}</p>\n\n <Button onClick={onButtonClick} variant=\"default\" className=\"mt-2\" size=\"sm\">\n {buttonText}\n </Button>\n </div>\n );\n};\n\nexport default FeatureFixing;\n"],"mappings":"4OAkCA,MAAa,GAAiB,CAC5B,QAAQ,yBACR,WAAW,4EACX,aAAa,WACb,oBAAsB,OAAO,QAAQ,KAAK,EAC1C,YACA,oBAGE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,WAAA,EAAA,EAAA,GAAA,CAAc,8GAA+G,CAAS,WAA3I,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,4CAAf,EACE,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAD,CAAQ,WAAA,EAAA,EAAA,GAAA,CAAc,qCAAsC,CAAa,CAAI,CAAA,GAC7E,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,gDAA4G,CAAA,CACxH,KAEL,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,kDAA0C,CAAU,CAAA,GAElE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,+DAAuD,CAAY,CAAA,GAEhF,EAAA,EAAA,IAAA,CAACC,EAAAA,OAAD,CAAQ,QAAS,EAAe,QAAQ,UAAU,UAAU,OAAO,KAAK,cACrE,CACK,CAAA,CACL"}
1
+ {"version":3,"file":"FeatureFixing.cjs","names":["LunasLogo","Wrench","Button"],"sources":["../../packages/components/pages/FeatureFixing.tsx"],"sourcesContent":["'use client';\n\nimport { Button } from '../ui/button';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { Wrench } from 'lucide-react';\nimport { LunasLogo } from '../features/logo';\n\nexport interface FeatureFixingProps {\n /** Main heading shown beneath the wrench icon. Defaults to `'Tính năng đang bảo trì'`. */\n title?: string;\n /** Supporting text shown below the title. Defaults to a Vietnamese maintenance message. */\n subtitle?: string;\n /** Label for the action button. Defaults to `'Quay lại'`. */\n buttonText?: string;\n /** Handler called when the action button is clicked. Defaults to `window.history.back()`. */\n onButtonClick?: () => void;\n /** Additional class names applied to the root container element. */\n className?: string;\n /** Additional class names applied to the `Wrench` icon. */\n iconClassName?: string;\n}\n\n/**\n * Full-page placeholder displayed when a feature is temporarily unavailable due to maintenance or bug fixes.\n *\n * @example\n * ```tsx\n * import { FeatureFixing } from '@customafk/lunas-ui/pages/FeatureFixing';\n *\n * <FeatureFixing\n * title=\"Under Maintenance\"\n * subtitle=\"We are fixing an issue. Please check back later.\"\n * buttonText=\"Go Back\"\n * onButtonClick={() => router.back()}\n * />\n * ```\n */\nexport const FeatureFixing = ({\n title = 'Tính năng đang bảo trì',\n subtitle = 'Chúng tôi đang khắc phục vấn đề với tính năng này. Vui lòng quay lại sau.',\n buttonText = 'Quay lại',\n onButtonClick = () => window.history.back(),\n className,\n iconClassName,\n}: FeatureFixingProps) => {\n return (\n <div className={cn('flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full', className)}>\n <LunasLogo variant=\"stacked\" size=\"sm\" />\n <div className=\"flex flex-col items-center gap-2\">\n <Wrench className={cn('size-16 sm:size-24 text-orange-500', iconClassName)} />\n <div className=\"text-3xl sm:text-5xl font-bold text-orange-500\">{/* This text indicates the feature is being fixed */}</div>\n </div>\n\n <h1 className=\"text-xl sm:text-2xl font-semibold mt-2\">{title}</h1>\n\n <p className=\"text-muted-foreground max-w-md text-sm sm:text-base\">{subtitle}</p>\n\n <Button onClick={onButtonClick} variant=\"default\" className=\"mt-2\" size=\"sm\">\n {buttonText}\n </Button>\n </div>\n );\n};\n\nexport default FeatureFixing;\n"],"mappings":"iSAqCA,MAAa,GAAiB,CAC5B,QAAQ,yBACR,WAAW,4EACX,aAAa,WACb,oBAAsB,OAAO,QAAQ,KAAK,EAC1C,YACA,oBAGE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,WAAA,EAAA,EAAA,GAAA,CAAc,8GAA+G,CAAS,WAA3I,EACE,EAAA,EAAA,IAAA,CAACA,EAAAA,UAAD,CAAW,QAAQ,UAAU,KAAK,IAAM,CAAA,GACxC,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,4CAAf,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,OAAD,CAAQ,WAAA,EAAA,EAAA,GAAA,CAAc,qCAAsC,CAAa,CAAI,CAAA,GAC7E,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,gDAA4G,CAAA,CACxH,KAEL,EAAA,EAAA,IAAA,CAAC,KAAD,CAAI,UAAU,kDAA0C,CAAU,CAAA,GAElE,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,+DAAuD,CAAY,CAAA,GAEhF,EAAA,EAAA,IAAA,CAACC,EAAAA,OAAD,CAAQ,QAAS,EAAe,QAAQ,UAAU,UAAU,OAAO,KAAK,cACrE,CACK,CAAA,CACL"}
@@ -1,2 +1,2 @@
1
- import{Button as e}from"../ui/button.mjs";import{Wrench as t}from"lucide-react";import{cn as n}from"@customafk/react-toolkit/utils";import{jsx as r,jsxs as i}from"react/jsx-runtime";const a=({title:a=`Tính năng đang bảo trì`,subtitle:o=`Chúng tôi đang khắc phục vấn đề với tính năng này. Vui lòng quay lại sau.`,buttonText:s=`Quay lại`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>i(`div`,{className:n(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[i(`div`,{className:`flex flex-col items-center gap-2`,children:[r(t,{className:n(`size-16 sm:size-24 text-orange-500`,u)}),r(`div`,{className:`text-3xl sm:text-5xl font-bold text-orange-500`})]}),r(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),r(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),r(e,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});export{a as FeatureFixing,a as default};
1
+ "use client";import{Button as e}from"../ui/button.mjs";import{LunasLogo as t}from"../features/logo/index.mjs";import{Wrench as n}from"lucide-react";import{cn as r}from"@customafk/react-toolkit/utils";import{jsx as i,jsxs as a}from"react/jsx-runtime";const o=({title:o=`Tính năng đang bảo trì`,subtitle:s=`Chúng tôi đang khắc phục vấn đề với tính năng này. Vui lòng quay lại sau.`,buttonText:c=`Quay lại`,onButtonClick:l=()=>window.history.back(),className:u,iconClassName:d})=>a(`div`,{className:r(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,u),children:[i(t,{variant:`stacked`,size:`sm`}),a(`div`,{className:`flex flex-col items-center gap-2`,children:[i(n,{className:r(`size-16 sm:size-24 text-orange-500`,d)}),i(`div`,{className:`text-3xl sm:text-5xl font-bold text-orange-500`})]}),i(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:o}),i(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:s}),i(e,{onClick:l,variant:`default`,className:`mt-2`,size:`sm`,children:c})]});export{o as FeatureFixing,o as default};
2
2
  //# sourceMappingURL=FeatureFixing.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureFixing.mjs","names":[],"sources":["../../packages/components/pages/FeatureFixing.tsx"],"sourcesContent":["import { Button } from '../ui/button';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { Wrench } from 'lucide-react';\n\nexport interface FeatureFixingProps {\n /** Main heading shown beneath the wrench icon. Defaults to `'Tính năng đang bảo trì'`. */\n title?: string;\n /** Supporting text shown below the title. Defaults to a Vietnamese maintenance message. */\n subtitle?: string;\n /** Label for the action button. Defaults to `'Quay lại'`. */\n buttonText?: string;\n /** Handler called when the action button is clicked. Defaults to `window.history.back()`. */\n onButtonClick?: () => void;\n /** Additional class names applied to the root container element. */\n className?: string;\n /** Additional class names applied to the `Wrench` icon. */\n iconClassName?: string;\n}\n\n/**\n * Full-page placeholder displayed when a feature is temporarily unavailable due to maintenance or bug fixes.\n *\n * @example\n * ```tsx\n * import { FeatureFixing } from '@customafk/lunas-ui/pages/FeatureFixing';\n *\n * <FeatureFixing\n * title=\"Under Maintenance\"\n * subtitle=\"We are fixing an issue. Please check back later.\"\n * buttonText=\"Go Back\"\n * onButtonClick={() => router.back()}\n * />\n * ```\n */\nexport const FeatureFixing = ({\n title = 'Tính năng đang bảo trì',\n subtitle = 'Chúng tôi đang khắc phục vấn đề với tính năng này. Vui lòng quay lại sau.',\n buttonText = 'Quay lại',\n onButtonClick = () => window.history.back(),\n className,\n iconClassName,\n}: FeatureFixingProps) => {\n return (\n <div className={cn('flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full', className)}>\n <div className=\"flex flex-col items-center gap-2\">\n <Wrench className={cn('size-16 sm:size-24 text-orange-500', iconClassName)} />\n <div className=\"text-3xl sm:text-5xl font-bold text-orange-500\">{/* This text indicates the feature is being fixed */}</div>\n </div>\n\n <h1 className=\"text-xl sm:text-2xl font-semibold mt-2\">{title}</h1>\n\n <p className=\"text-muted-foreground max-w-md text-sm sm:text-base\">{subtitle}</p>\n\n <Button onClick={onButtonClick} variant=\"default\" className=\"mt-2\" size=\"sm\">\n {buttonText}\n </Button>\n </div>\n );\n};\n\nexport default FeatureFixing;\n"],"mappings":"sLAkCA,MAAa,GAAiB,CAC5B,QAAQ,yBACR,WAAW,4EACX,aAAa,WACb,oBAAsB,OAAO,QAAQ,KAAK,EAC1C,YACA,mBAGE,EAAC,MAAD,CAAK,UAAW,EAAG,8GAA+G,CAAS,WAA3I,CACE,EAAC,MAAD,CAAK,UAAU,4CAAf,CACE,EAAC,EAAD,CAAQ,UAAW,EAAG,qCAAsC,CAAa,CAAI,CAAA,EAC7E,EAAC,MAAD,CAAK,UAAU,gDAA4G,CAAA,CACxH,IAEL,EAAC,KAAD,CAAI,UAAU,kDAA0C,CAAU,CAAA,EAElE,EAAC,IAAD,CAAG,UAAU,+DAAuD,CAAY,CAAA,EAEhF,EAAC,EAAD,CAAQ,QAAS,EAAe,QAAQ,UAAU,UAAU,OAAO,KAAK,cACrE,CACK,CAAA,CACL"}
1
+ {"version":3,"file":"FeatureFixing.mjs","names":[],"sources":["../../packages/components/pages/FeatureFixing.tsx"],"sourcesContent":["'use client';\n\nimport { Button } from '../ui/button';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { Wrench } from 'lucide-react';\nimport { LunasLogo } from '../features/logo';\n\nexport interface FeatureFixingProps {\n /** Main heading shown beneath the wrench icon. Defaults to `'Tính năng đang bảo trì'`. */\n title?: string;\n /** Supporting text shown below the title. Defaults to a Vietnamese maintenance message. */\n subtitle?: string;\n /** Label for the action button. Defaults to `'Quay lại'`. */\n buttonText?: string;\n /** Handler called when the action button is clicked. Defaults to `window.history.back()`. */\n onButtonClick?: () => void;\n /** Additional class names applied to the root container element. */\n className?: string;\n /** Additional class names applied to the `Wrench` icon. */\n iconClassName?: string;\n}\n\n/**\n * Full-page placeholder displayed when a feature is temporarily unavailable due to maintenance or bug fixes.\n *\n * @example\n * ```tsx\n * import { FeatureFixing } from '@customafk/lunas-ui/pages/FeatureFixing';\n *\n * <FeatureFixing\n * title=\"Under Maintenance\"\n * subtitle=\"We are fixing an issue. Please check back later.\"\n * buttonText=\"Go Back\"\n * onButtonClick={() => router.back()}\n * />\n * ```\n */\nexport const FeatureFixing = ({\n title = 'Tính năng đang bảo trì',\n subtitle = 'Chúng tôi đang khắc phục vấn đề với tính năng này. Vui lòng quay lại sau.',\n buttonText = 'Quay lại',\n onButtonClick = () => window.history.back(),\n className,\n iconClassName,\n}: FeatureFixingProps) => {\n return (\n <div className={cn('flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full', className)}>\n <LunasLogo variant=\"stacked\" size=\"sm\" />\n <div className=\"flex flex-col items-center gap-2\">\n <Wrench className={cn('size-16 sm:size-24 text-orange-500', iconClassName)} />\n <div className=\"text-3xl sm:text-5xl font-bold text-orange-500\">{/* This text indicates the feature is being fixed */}</div>\n </div>\n\n <h1 className=\"text-xl sm:text-2xl font-semibold mt-2\">{title}</h1>\n\n <p className=\"text-muted-foreground max-w-md text-sm sm:text-base\">{subtitle}</p>\n\n <Button onClick={onButtonClick} variant=\"default\" className=\"mt-2\" size=\"sm\">\n {buttonText}\n </Button>\n </div>\n );\n};\n\nexport default FeatureFixing;\n"],"mappings":"0PAqCA,MAAa,GAAiB,CAC5B,QAAQ,yBACR,WAAW,4EACX,aAAa,WACb,oBAAsB,OAAO,QAAQ,KAAK,EAC1C,YACA,mBAGE,EAAC,MAAD,CAAK,UAAW,EAAG,8GAA+G,CAAS,WAA3I,CACE,EAAC,EAAD,CAAW,QAAQ,UAAU,KAAK,IAAM,CAAA,EACxC,EAAC,MAAD,CAAK,UAAU,4CAAf,CACE,EAAC,EAAD,CAAQ,UAAW,EAAG,qCAAsC,CAAa,CAAI,CAAA,EAC7E,EAAC,MAAD,CAAK,UAAU,gDAA4G,CAAA,CACxH,IAEL,EAAC,KAAD,CAAI,UAAU,kDAA0C,CAAU,CAAA,EAElE,EAAC,IAAD,CAAG,UAAU,+DAAuD,CAAY,CAAA,EAEhF,EAAC,EAAD,CAAQ,QAAS,EAAe,QAAQ,UAAU,UAAU,OAAO,KAAK,cACrE,CACK,CAAA,CACL"}
@@ -1,2 +1,2 @@
1
- "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../ui/button.cjs"),t=require("../ui/dialog.cjs"),n=require("../ui/input.cjs"),r=require("../ui/label.cjs"),i=require("../alert-D31c6DLq.cjs");let a=require("lucide-react"),o=require("react"),s=require("react/jsx-runtime"),c=require("zod");const l=c.z.object({email:c.z.string().min(1,`Vui lòng nhập email`).email(`Email không hợp lệ`),password:c.z.string().min(1,`Vui lòng nhập mật khẩu`)}),u=({open:c,onOpenChange:u,onLogin:d,onForgotPassword:f,onRegister:p,isLoading:m=!1,errorMessage:h,title:g=`Đăng nhập`,subtitle:_=`Nhập thông tin để tiếp tục`})=>{let v=(0,o.useId)(),y=(0,o.useId)(),[b,x]=(0,o.useState)(``),[S,C]=(0,o.useState)(``),[w,T]=(0,o.useState)(!1),[E,D]=(0,o.useState)({});return(0,s.jsx)(t.Dialog,{open:c,onOpenChange:u,children:(0,s.jsxs)(t.DialogContent,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[(0,s.jsxs)(t.DialogHeader,{children:[(0,s.jsx)(t.DialogTitle,{children:g}),(0,s.jsx)(t.DialogDescription,{children:_})]}),(0,s.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault();let t=l.safeParse({email:b,password:S});if(!t.success){let e=t.error.flatten().fieldErrors;D({email:e.email?.[0],password:e.password?.[0]});return}D({}),await d(b,S)},noValidate:!0,className:`flex flex-col gap-4`,children:[h&&(0,s.jsx)(i.t,{variant:`destructive`,children:(0,s.jsx)(i.n,{children:h})}),(0,s.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,s.jsx)(r.Label,{htmlFor:v,children:`Email`}),(0,s.jsx)(n.Input,{id:v,type:`email`,autoComplete:`email`,placeholder:`you@example.com`,value:b,onChange:e=>x(e.target.value),"aria-invalid":!!E.email,disabled:m}),E.email&&(0,s.jsx)(`p`,{className:`text-destructive text-xs`,children:E.email})]}),(0,s.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,s.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,s.jsx)(r.Label,{htmlFor:y,children:`Mật khẩu`}),f&&(0,s.jsx)(e.Button,{type:`button`,variant:`link`,size:`sm`,className:`h-auto p-0 text-xs`,onClick:f,children:`Quên mật khẩu?`})]}),(0,s.jsxs)(`div`,{className:`relative`,children:[(0,s.jsx)(n.Input,{id:y,type:w?`text`:`password`,autoComplete:`current-password`,placeholder:`••••••••`,value:S,onChange:e=>C(e.target.value),"aria-invalid":!!E.password,disabled:m,className:`pr-10`}),(0,s.jsx)(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),T(e=>!e)},"aria-label":w?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:w?(0,s.jsx)(a.EyeOff,{size:16}):(0,s.jsx)(a.Eye,{size:16})})]}),E.password&&(0,s.jsx)(`p`,{className:`text-destructive text-xs`,children:E.password})]}),(0,s.jsx)(e.Button,{type:`submit`,isLoading:m,className:`w-full`,children:`Đăng nhập`}),(0,s.jsx)(e.Button,{type:`button`,variant:`outline`,className:`w-full`,disabled:m,onClick:()=>u(!1),children:`Đóng hộp thoại`})]}),p&&(0,s.jsxs)(`div`,{className:`flex justify-center gap-1 text-muted-foreground text-sm`,children:[(0,s.jsx)(`span`,{children:`Chưa có tài khoản?`}),(0,s.jsx)(e.Button,{variant:`link`,size:`sm`,className:`h-auto p-0`,onClick:p,children:`Đăng ký`})]})]})})};exports.LoginPage=u;
1
+ "use client";Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("../ui/button.cjs"),t=require("../features/logo/index.cjs"),n=require("../ui/dialog.cjs"),r=require("../ui/input.cjs"),i=require("../ui/label.cjs"),a=require("../alert-D31c6DLq.cjs");let o=require("lucide-react"),s=require("react"),c=require("react/jsx-runtime"),l=require("zod");const u=l.z.object({email:l.z.string().min(1,`Vui lòng nhập email`).email(`Email không hợp lệ`),password:l.z.string().min(1,`Vui lòng nhập mật khẩu`)}),d=({open:l,onOpenChange:d,onLogin:f,onForgotPassword:p,onRegister:m,isLoading:h=!1,errorMessage:g,title:_=`Đăng nhập`,subtitle:v=`Nhập thông tin để tiếp tục`})=>{let y=(0,s.useId)(),b=(0,s.useId)(),[x,S]=(0,s.useState)(``),[C,w]=(0,s.useState)(``),[T,E]=(0,s.useState)(!1),[D,O]=(0,s.useState)({});return(0,c.jsx)(n.Dialog,{open:l,onOpenChange:d,children:(0,c.jsxs)(n.DialogContent,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[(0,c.jsxs)(n.DialogHeader,{children:[(0,c.jsx)(t.LunasLogo,{variant:`horizontal`,size:`sm`,className:`mx-auto`}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,c.jsx)(n.DialogTitle,{children:_}),(0,c.jsx)(n.DialogDescription,{children:v})]})]}),(0,c.jsxs)(`form`,{onSubmit:async e=>{e.preventDefault();let t=u.safeParse({email:x,password:C});if(!t.success){let e=t.error.flatten().fieldErrors;O({email:e.email?.[0],password:e.password?.[0]});return}O({}),await f(x,C)},noValidate:!0,className:`flex flex-col gap-4`,children:[g&&(0,c.jsx)(a.t,{variant:`destructive`,children:(0,c.jsx)(a.n,{children:g})}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,c.jsx)(i.Label,{htmlFor:y,children:`Email`}),(0,c.jsx)(r.Input,{id:y,type:`email`,autoComplete:`email`,placeholder:`you@example.com`,value:x,onChange:e=>S(e.target.value),"aria-invalid":!!D.email,disabled:h}),D.email&&(0,c.jsx)(`p`,{className:`text-destructive text-xs`,children:D.email})]}),(0,c.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,c.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,c.jsx)(i.Label,{htmlFor:b,children:`Mật khẩu`}),p&&(0,c.jsx)(e.Button,{type:`button`,variant:`link`,size:`sm`,className:`h-auto p-0 text-xs`,onClick:p,children:`Quên mật khẩu?`})]}),(0,c.jsxs)(`div`,{className:`relative`,children:[(0,c.jsx)(r.Input,{id:b,type:T?`text`:`password`,autoComplete:`current-password`,placeholder:`••••••••`,value:C,onChange:e=>w(e.target.value),"aria-invalid":!!D.password,disabled:h,className:`pr-10`}),(0,c.jsx)(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),E(e=>!e)},"aria-label":T?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:T?(0,c.jsx)(o.EyeOff,{size:16}):(0,c.jsx)(o.Eye,{size:16})})]}),D.password&&(0,c.jsx)(`p`,{className:`text-destructive text-xs`,children:D.password})]}),(0,c.jsx)(e.Button,{type:`submit`,isLoading:h,className:`w-full`,children:`Đăng nhập`}),(0,c.jsx)(e.Button,{type:`button`,variant:`outline`,className:`w-full`,disabled:h,onClick:()=>d(!1),children:`Đóng hộp thoại`})]}),m&&(0,c.jsxs)(`div`,{className:`flex justify-center gap-1 text-muted-foreground text-sm`,children:[(0,c.jsx)(`span`,{children:`Chưa có tài khoản?`}),(0,c.jsx)(e.Button,{variant:`link`,size:`sm`,className:`h-auto p-0`,onClick:m,children:`Đăng ký`})]})]})})};exports.LoginPage=d;
2
2
  //# sourceMappingURL=LoginPage.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoginPage.cjs","names":["z","Dialog","DialogContent","DialogHeader","DialogTitle","DialogDescription","Alert","AlertDescription","Label","Input","Button","EyeOff","Eye"],"sources":["../../packages/components/pages/LoginPage.tsx"],"sourcesContent":["'use client';\n\nimport { useId, useState } from 'react';\n\nimport { Eye, EyeOff } from 'lucide-react';\nimport { z } from 'zod';\n\nimport { Alert, AlertDescription } from '../ui/alert';\nimport { Button } from '../ui/button';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '../ui/dialog';\nimport { Input } from '../ui/input';\nimport { Label } from '../ui/label';\n\nexport interface LoginPageProps {\n /** Controls whether the dialog is open */\n open: boolean;\n /** Called when the dialog open state changes */\n onOpenChange: (open: boolean) => void;\n /** Called when the user submits login credentials */\n onLogin: (email: string, password: string) => Promise<void> | void;\n /** Called when the \"Quên mật khẩu?\" link is clicked */\n onForgotPassword?: () => void;\n /** Called when the \"Đăng ký\" link is clicked */\n onRegister?: () => void;\n /** Disables the form and shows a spinner on the submit button */\n isLoading?: boolean;\n /** Server-side error message rendered in a destructive Alert */\n errorMessage?: string;\n /** Dialog heading. Default: \"Đăng nhập\" */\n title?: string;\n /** Dialog subheading. Default: \"Nhập thông tin để tiếp tục\" */\n subtitle?: string;\n}\n\nconst loginSchema = z.object({\n email: z.string().min(1, 'Vui lòng nhập email').email('Email không hợp lệ'),\n password: z.string().min(1, 'Vui lòng nhập mật khẩu'),\n});\n\n/**\n * Modal login dialog for the client authentication flow.\n *\n * @example\n * ```tsx\n * import { LoginPage } from '@customafk/lunas-ui/pages/LoginPage';\n *\n * <LoginPage\n * open={open}\n * onOpenChange={setOpen}\n * onLogin={async (email, password) => {\n * await authService.login(email, password);\n * setOpen(false);\n * }}\n * onRegister={() => { setOpen(false); setRegisterOpen(true); }}\n * />\n * ```\n */\nexport const LoginPage = ({\n open,\n onOpenChange,\n onLogin,\n onForgotPassword,\n onRegister,\n isLoading = false,\n errorMessage,\n title = 'Đăng nhập',\n subtitle = 'Nhập thông tin để tiếp tục',\n}: LoginPageProps) => {\n const emailId = useId();\n const passwordId = useId();\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [showPassword, setShowPassword] = useState(false);\n const [fieldErrors, setFieldErrors] = useState<{ email?: string; password?: string }>({});\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n const result = loginSchema.safeParse({ email, password });\n if (!result.success) {\n const errors = result.error.flatten().fieldErrors;\n setFieldErrors({ email: errors.email?.[0], password: errors.password?.[0] });\n return;\n }\n setFieldErrors({});\n await onLogin(email, password);\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm\">\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{subtitle}</DialogDescription>\n </DialogHeader>\n\n <form onSubmit={handleSubmit} noValidate className=\"flex flex-col gap-4\">\n {errorMessage && (\n <Alert variant=\"destructive\">\n <AlertDescription>{errorMessage}</AlertDescription>\n </Alert>\n )}\n\n <div className=\"flex flex-col gap-1.5\">\n <Label htmlFor={emailId}>Email</Label>\n <Input\n id={emailId}\n type=\"email\"\n autoComplete=\"email\"\n placeholder=\"you@example.com\"\n value={email}\n onChange={e => setEmail(e.target.value)}\n aria-invalid={!!fieldErrors.email}\n disabled={isLoading}\n />\n {fieldErrors.email && <p className=\"text-destructive text-xs\">{fieldErrors.email}</p>}\n </div>\n\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label htmlFor={passwordId}>Mật khẩu</Label>\n {onForgotPassword && (\n <Button type=\"button\" variant=\"link\" size=\"sm\" className=\"h-auto p-0 text-xs\" onClick={onForgotPassword}>\n Quên mật khẩu?\n </Button>\n )}\n </div>\n <div className=\"relative\">\n <Input\n id={passwordId}\n type={showPassword ? 'text' : 'password'}\n autoComplete=\"current-password\"\n placeholder=\"••••••••\"\n value={password}\n onChange={e => setPassword(e.target.value)}\n aria-invalid={!!fieldErrors.password}\n disabled={isLoading}\n className=\"pr-10\"\n />\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground\"\n onMouseDown={e => {\n e.preventDefault();\n setShowPassword(v => !v);\n }}\n aria-label={showPassword ? 'Ẩn mật khẩu' : 'Hiện mật khẩu'}\n >\n {showPassword ? <EyeOff size={16} /> : <Eye size={16} />}\n </button>\n </div>\n {fieldErrors.password && <p className=\"text-destructive text-xs\">{fieldErrors.password}</p>}\n </div>\n\n <Button type=\"submit\" isLoading={isLoading} className=\"w-full\">\n Đăng nhập\n </Button>\n <Button type=\"button\" variant=\"outline\" className=\"w-full\" disabled={isLoading} onClick={() => onOpenChange(false)}>\n Đóng hộp thoại\n </Button>\n </form>\n\n {onRegister && (\n <div className=\"flex justify-center gap-1 text-muted-foreground text-sm\">\n <span>Chưa có tài khoản?</span>\n <Button variant=\"link\" size=\"sm\" className=\"h-auto p-0\" onClick={onRegister}>\n Đăng ký\n </Button>\n </div>\n )}\n </DialogContent>\n </Dialog>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"LoginPage.cjs","names":["z","Dialog","DialogContent","DialogHeader","LunasLogo","DialogTitle","DialogDescription","Alert","AlertDescription","Label","Input","Button","EyeOff","Eye"],"sources":["../../packages/components/pages/LoginPage.tsx"],"sourcesContent":["'use client';\n\nimport { useId, useState } from 'react';\n\nimport { Eye, EyeOff } from 'lucide-react';\nimport { z } from 'zod';\n\nimport { Alert, AlertDescription } from '../ui/alert';\nimport { Button } from '../ui/button';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '../ui/dialog';\nimport { LunasLogo } from '../features/logo';\nimport { Input } from '../ui/input';\nimport { Label } from '../ui/label';\n\nexport interface LoginPageProps {\n /** Controls whether the dialog is open */\n open: boolean;\n /** Called when the dialog open state changes */\n onOpenChange: (open: boolean) => void;\n /** Called when the user submits login credentials */\n onLogin: (email: string, password: string) => Promise<void> | void;\n /** Called when the \"Quên mật khẩu?\" link is clicked */\n onForgotPassword?: () => void;\n /** Called when the \"Đăng ký\" link is clicked */\n onRegister?: () => void;\n /** Disables the form and shows a spinner on the submit button */\n isLoading?: boolean;\n /** Server-side error message rendered in a destructive Alert */\n errorMessage?: string;\n /** Dialog heading. Default: \"Đăng nhập\" */\n title?: string;\n /** Dialog subheading. Default: \"Nhập thông tin để tiếp tục\" */\n subtitle?: string;\n}\n\nconst loginSchema = z.object({\n email: z.string().min(1, 'Vui lòng nhập email').email('Email không hợp lệ'),\n password: z.string().min(1, 'Vui lòng nhập mật khẩu'),\n});\n\n/**\n * Modal login dialog for the client authentication flow.\n *\n * @example\n * ```tsx\n * import { LoginPage } from '@customafk/lunas-ui/pages/LoginPage';\n *\n * <LoginPage\n * open={open}\n * onOpenChange={setOpen}\n * onLogin={async (email, password) => {\n * await authService.login(email, password);\n * setOpen(false);\n * }}\n * onRegister={() => { setOpen(false); setRegisterOpen(true); }}\n * />\n * ```\n */\nexport const LoginPage = ({\n open,\n onOpenChange,\n onLogin,\n onForgotPassword,\n onRegister,\n isLoading = false,\n errorMessage,\n title = 'Đăng nhập',\n subtitle = 'Nhập thông tin để tiếp tục',\n}: LoginPageProps) => {\n const emailId = useId();\n const passwordId = useId();\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [showPassword, setShowPassword] = useState(false);\n const [fieldErrors, setFieldErrors] = useState<{ email?: string; password?: string }>({});\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n const result = loginSchema.safeParse({ email, password });\n if (!result.success) {\n const errors = result.error.flatten().fieldErrors;\n setFieldErrors({ email: errors.email?.[0], password: errors.password?.[0] });\n return;\n }\n setFieldErrors({});\n await onLogin(email, password);\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm\">\n <DialogHeader>\n <LunasLogo variant=\"horizontal\" size=\"sm\" className=\"mx-auto\" />\n <div className=\"flex flex-col gap-0.5\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{subtitle}</DialogDescription>\n </div>\n </DialogHeader>\n\n <form onSubmit={handleSubmit} noValidate className=\"flex flex-col gap-4\">\n {errorMessage && (\n <Alert variant=\"destructive\">\n <AlertDescription>{errorMessage}</AlertDescription>\n </Alert>\n )}\n\n <div className=\"flex flex-col gap-1.5\">\n <Label htmlFor={emailId}>Email</Label>\n <Input\n id={emailId}\n type=\"email\"\n autoComplete=\"email\"\n placeholder=\"you@example.com\"\n value={email}\n onChange={e => setEmail(e.target.value)}\n aria-invalid={!!fieldErrors.email}\n disabled={isLoading}\n />\n {fieldErrors.email && <p className=\"text-destructive text-xs\">{fieldErrors.email}</p>}\n </div>\n\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label htmlFor={passwordId}>Mật khẩu</Label>\n {onForgotPassword && (\n <Button type=\"button\" variant=\"link\" size=\"sm\" className=\"h-auto p-0 text-xs\" onClick={onForgotPassword}>\n Quên mật khẩu?\n </Button>\n )}\n </div>\n <div className=\"relative\">\n <Input\n id={passwordId}\n type={showPassword ? 'text' : 'password'}\n autoComplete=\"current-password\"\n placeholder=\"••••••••\"\n value={password}\n onChange={e => setPassword(e.target.value)}\n aria-invalid={!!fieldErrors.password}\n disabled={isLoading}\n className=\"pr-10\"\n />\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground\"\n onMouseDown={e => {\n e.preventDefault();\n setShowPassword(v => !v);\n }}\n aria-label={showPassword ? 'Ẩn mật khẩu' : 'Hiện mật khẩu'}\n >\n {showPassword ? <EyeOff size={16} /> : <Eye size={16} />}\n </button>\n </div>\n {fieldErrors.password && <p className=\"text-destructive text-xs\">{fieldErrors.password}</p>}\n </div>\n\n <Button type=\"submit\" isLoading={isLoading} className=\"w-full\">\n Đăng nhập\n </Button>\n <Button type=\"button\" variant=\"outline\" className=\"w-full\" disabled={isLoading} onClick={() => onOpenChange(false)}>\n Đóng hộp thoại\n </Button>\n </form>\n\n {onRegister && (\n <div className=\"flex justify-center gap-1 text-muted-foreground text-sm\">\n <span>Chưa có tài khoản?</span>\n <Button variant=\"link\" size=\"sm\" className=\"h-auto p-0\" onClick={onRegister}>\n Đăng ký\n </Button>\n </div>\n )}\n </DialogContent>\n </Dialog>\n );\n};\n"],"mappings":"wXAmCA,MAAM,EAAcA,EAAAA,EAAE,OAAO,CAC3B,MAAOA,EAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,EAAG,qBAAqB,CAAC,CAAC,MAAM,oBAAoB,EAC1E,SAAUA,EAAAA,EAAE,OAAO,CAAC,CAAC,IAAI,EAAG,wBAAwB,CACtD,CAAC,EAoBY,GAAa,CACxB,OACA,eACA,UACA,mBACA,aACA,YAAY,GACZ,eACA,QAAQ,YACR,WAAW,gCACS,CACpB,IAAM,GAAA,EAAA,EAAA,MAAA,CAAgB,EAChB,GAAA,EAAA,EAAA,MAAA,CAAmB,EACnB,CAAC,EAAO,IAAA,EAAA,EAAA,SAAA,CAAqB,EAAE,EAC/B,CAAC,EAAU,IAAA,EAAA,EAAA,SAAA,CAAwB,EAAE,EACrC,CAAC,EAAc,IAAA,EAAA,EAAA,SAAA,CAA4B,EAAK,EAChD,CAAC,EAAa,IAAA,EAAA,EAAA,SAAA,CAAkE,CAAC,CAAC,EAcxF,OACE,EAAA,EAAA,IAAA,CAACC,EAAAA,OAAD,CAAc,OAAoB,yBAChC,EAAA,EAAA,KAAA,CAACC,EAAAA,cAAD,CAAe,UAAU,gVAAzB,EACE,EAAA,EAAA,KAAA,CAACC,EAAAA,aAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,UAAD,CAAW,QAAQ,aAAa,KAAK,KAAK,UAAU,SAAW,CAAA,GAC/D,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,iCAAf,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,YAAD,CAAA,SAAc,CAAmB,CAAA,GACjC,EAAA,EAAA,IAAA,CAACC,EAAAA,kBAAD,CAAA,SAAoB,CAA4B,CAAA,CAC7C,GACO,CAAA,CAAA,GAEd,EAAA,EAAA,KAAA,CAAC,OAAD,CAAM,SAAU,KAvBM,IAAwC,CAClE,EAAE,eAAe,EACjB,IAAM,EAAS,EAAY,UAAU,CAAE,QAAO,UAAS,CAAC,EACxD,GAAI,CAAC,EAAO,QAAS,CACnB,IAAM,EAAS,EAAO,MAAM,QAAQ,CAAC,CAAC,YACtC,EAAe,CAAE,MAAO,EAAO,QAAQ,GAAI,SAAU,EAAO,WAAW,EAAG,CAAC,EAC3E,MACF,CACA,EAAe,CAAC,CAAC,EACjB,MAAM,EAAQ,EAAO,CAAQ,CAC/B,EAaoC,WAAA,GAAW,UAAU,+BAAnD,CACG,IACC,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAAO,QAAQ,wBACb,EAAA,EAAA,IAAA,CAACC,EAAAA,EAAD,CAAA,SAAmB,CAA+B,CAAA,CAC7C,CAAA,GAGT,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,iCAAf,EACE,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CAAO,QAAS,WAAS,OAAY,CAAA,GACrC,EAAA,EAAA,IAAA,CAACC,EAAAA,MAAD,CACE,GAAI,EACJ,KAAK,QACL,aAAa,QACb,YAAY,kBACZ,MAAO,EACP,SAAU,GAAK,EAAS,EAAE,OAAO,KAAK,EACtC,eAAc,CAAC,CAAC,EAAY,MAC5B,SAAU,CACX,CAAA,EACA,EAAY,QAAS,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,oCAA4B,EAAY,KAAS,CAAA,CACjF,KAEL,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,iCAAf,EACE,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,6CAAf,EACE,EAAA,EAAA,IAAA,CAACD,EAAAA,MAAD,CAAO,QAAS,WAAY,UAAe,CAAA,EAC1C,IACC,EAAA,EAAA,IAAA,CAACE,EAAAA,OAAD,CAAQ,KAAK,SAAS,QAAQ,OAAO,KAAK,KAAK,UAAU,qBAAqB,QAAS,WAAkB,gBAEjG,CAAA,CAEP,KACL,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,oBAAf,EACE,EAAA,EAAA,IAAA,CAACD,EAAAA,MAAD,CACE,GAAI,EACJ,KAAM,EAAe,OAAS,WAC9B,aAAa,mBACb,YAAY,WACZ,MAAO,EACP,SAAU,GAAK,EAAY,EAAE,OAAO,KAAK,EACzC,eAAc,CAAC,CAAC,EAAY,SAC5B,SAAU,EACV,UAAU,OACX,CAAA,GACD,EAAA,EAAA,IAAA,CAAC,SAAD,CACE,KAAK,SACL,UAAU,gGACV,YAAa,GAAK,CAChB,EAAE,eAAe,EACjB,EAAgB,GAAK,CAAC,CAAC,CACzB,EACA,aAAY,EAAe,cAAgB,yBAE1C,GAAe,EAAA,EAAA,IAAA,CAACE,EAAAA,OAAD,CAAQ,KAAM,EAAK,CAAA,GAAI,EAAA,EAAA,IAAA,CAACC,EAAAA,IAAD,CAAK,KAAM,EAAK,CAAA,CACjD,CAAA,CACL,IACJ,EAAY,WAAY,EAAA,EAAA,IAAA,CAAC,IAAD,CAAG,UAAU,oCAA4B,EAAY,QAAY,CAAA,CACvF,KAEL,EAAA,EAAA,IAAA,CAACF,EAAAA,OAAD,CAAQ,KAAK,SAAoB,YAAW,UAAU,kBAAS,WAEvD,CAAA,GACR,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAD,CAAQ,KAAK,SAAS,QAAQ,UAAU,UAAU,SAAS,SAAU,EAAW,YAAe,EAAa,EAAK,WAAG,gBAE5G,CAAA,CACJ,IAEL,IACC,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,mEAAf,EACE,EAAA,EAAA,IAAA,CAAC,OAAD,CAAA,SAAM,oBAAwB,CAAA,GAC9B,EAAA,EAAA,IAAA,CAACA,EAAAA,OAAD,CAAQ,QAAQ,OAAO,KAAK,KAAK,UAAU,aAAa,QAAS,WAAY,SAErE,CAAA,CACL,GAEM,GACT,CAAA,CAEZ"}
@@ -1,2 +1,2 @@
1
- "use client";import{Button as e}from"../ui/button.mjs";import{Dialog as t,DialogContent as n,DialogDescription as r,DialogHeader as i,DialogTitle as a}from"../ui/dialog.mjs";import{Input as o}from"../ui/input.mjs";import{Label as s}from"../ui/label.mjs";import{n as c,t as l}from"../alert-OD1KJTEV.mjs";import{Eye as u,EyeOff as d}from"lucide-react";import{useId as f,useState as p}from"react";import{jsx as m,jsxs as h}from"react/jsx-runtime";import{z as g}from"zod";const _=g.object({email:g.string().min(1,`Vui lòng nhập email`).email(`Email không hợp lệ`),password:g.string().min(1,`Vui lòng nhập mật khẩu`)}),v=({open:g,onOpenChange:v,onLogin:y,onForgotPassword:b,onRegister:x,isLoading:S=!1,errorMessage:C,title:w=`Đăng nhập`,subtitle:T=`Nhập thông tin để tiếp tục`})=>{let E=f(),D=f(),[O,k]=p(``),[A,j]=p(``),[M,N]=p(!1),[P,F]=p({});return m(t,{open:g,onOpenChange:v,children:h(n,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[h(i,{children:[m(a,{children:w}),m(r,{children:T})]}),h(`form`,{onSubmit:async e=>{e.preventDefault();let t=_.safeParse({email:O,password:A});if(!t.success){let e=t.error.flatten().fieldErrors;F({email:e.email?.[0],password:e.password?.[0]});return}F({}),await y(O,A)},noValidate:!0,className:`flex flex-col gap-4`,children:[C&&m(l,{variant:`destructive`,children:m(c,{children:C})}),h(`div`,{className:`flex flex-col gap-1.5`,children:[m(s,{htmlFor:E,children:`Email`}),m(o,{id:E,type:`email`,autoComplete:`email`,placeholder:`you@example.com`,value:O,onChange:e=>k(e.target.value),"aria-invalid":!!P.email,disabled:S}),P.email&&m(`p`,{className:`text-destructive text-xs`,children:P.email})]}),h(`div`,{className:`flex flex-col gap-1.5`,children:[h(`div`,{className:`flex items-center justify-between`,children:[m(s,{htmlFor:D,children:`Mật khẩu`}),b&&m(e,{type:`button`,variant:`link`,size:`sm`,className:`h-auto p-0 text-xs`,onClick:b,children:`Quên mật khẩu?`})]}),h(`div`,{className:`relative`,children:[m(o,{id:D,type:M?`text`:`password`,autoComplete:`current-password`,placeholder:`••••••••`,value:A,onChange:e=>j(e.target.value),"aria-invalid":!!P.password,disabled:S,className:`pr-10`}),m(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),N(e=>!e)},"aria-label":M?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:m(M?d:u,{size:16})})]}),P.password&&m(`p`,{className:`text-destructive text-xs`,children:P.password})]}),m(e,{type:`submit`,isLoading:S,className:`w-full`,children:`Đăng nhập`}),m(e,{type:`button`,variant:`outline`,className:`w-full`,disabled:S,onClick:()=>v(!1),children:`Đóng hộp thoại`})]}),x&&h(`div`,{className:`flex justify-center gap-1 text-muted-foreground text-sm`,children:[m(`span`,{children:`Chưa có tài khoản?`}),m(e,{variant:`link`,size:`sm`,className:`h-auto p-0`,onClick:x,children:`Đăng ký`})]})]})})};export{v as LoginPage};
1
+ "use client";import{Button as e}from"../ui/button.mjs";import{LunasLogo as t}from"../features/logo/index.mjs";import{Dialog as n,DialogContent as r,DialogDescription as i,DialogHeader as a,DialogTitle as o}from"../ui/dialog.mjs";import{Input as s}from"../ui/input.mjs";import{Label as c}from"../ui/label.mjs";import{n as l,t as u}from"../alert-OD1KJTEV.mjs";import{Eye as d,EyeOff as f}from"lucide-react";import{useId as p,useState as m}from"react";import{jsx as h,jsxs as g}from"react/jsx-runtime";import{z as _}from"zod";const v=_.object({email:_.string().min(1,`Vui lòng nhập email`).email(`Email không hợp lệ`),password:_.string().min(1,`Vui lòng nhập mật khẩu`)}),y=({open:_,onOpenChange:y,onLogin:b,onForgotPassword:x,onRegister:S,isLoading:C=!1,errorMessage:w,title:T=`Đăng nhập`,subtitle:E=`Nhập thông tin để tiếp tục`})=>{let D=p(),O=p(),[k,A]=m(``),[j,M]=m(``),[N,P]=m(!1),[F,I]=m({});return h(n,{open:_,onOpenChange:y,children:g(r,{className:`max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm`,children:[g(a,{children:[h(t,{variant:`horizontal`,size:`sm`,className:`mx-auto`}),g(`div`,{className:`flex flex-col gap-0.5`,children:[h(o,{children:T}),h(i,{children:E})]})]}),g(`form`,{onSubmit:async e=>{e.preventDefault();let t=v.safeParse({email:k,password:j});if(!t.success){let e=t.error.flatten().fieldErrors;I({email:e.email?.[0],password:e.password?.[0]});return}I({}),await b(k,j)},noValidate:!0,className:`flex flex-col gap-4`,children:[w&&h(u,{variant:`destructive`,children:h(l,{children:w})}),g(`div`,{className:`flex flex-col gap-1.5`,children:[h(c,{htmlFor:D,children:`Email`}),h(s,{id:D,type:`email`,autoComplete:`email`,placeholder:`you@example.com`,value:k,onChange:e=>A(e.target.value),"aria-invalid":!!F.email,disabled:C}),F.email&&h(`p`,{className:`text-destructive text-xs`,children:F.email})]}),g(`div`,{className:`flex flex-col gap-1.5`,children:[g(`div`,{className:`flex items-center justify-between`,children:[h(c,{htmlFor:O,children:`Mật khẩu`}),x&&h(e,{type:`button`,variant:`link`,size:`sm`,className:`h-auto p-0 text-xs`,onClick:x,children:`Quên mật khẩu?`})]}),g(`div`,{className:`relative`,children:[h(s,{id:O,type:N?`text`:`password`,autoComplete:`current-password`,placeholder:`••••••••`,value:j,onChange:e=>M(e.target.value),"aria-invalid":!!F.password,disabled:C,className:`pr-10`}),h(`button`,{type:`button`,className:`absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground`,onMouseDown:e=>{e.preventDefault(),P(e=>!e)},"aria-label":N?`Ẩn mật khẩu`:`Hiện mật khẩu`,children:h(N?f:d,{size:16})})]}),F.password&&h(`p`,{className:`text-destructive text-xs`,children:F.password})]}),h(e,{type:`submit`,isLoading:C,className:`w-full`,children:`Đăng nhập`}),h(e,{type:`button`,variant:`outline`,className:`w-full`,disabled:C,onClick:()=>y(!1),children:`Đóng hộp thoại`})]}),S&&g(`div`,{className:`flex justify-center gap-1 text-muted-foreground text-sm`,children:[h(`span`,{children:`Chưa có tài khoản?`}),h(e,{variant:`link`,size:`sm`,className:`h-auto p-0`,onClick:S,children:`Đăng ký`})]})]})})};export{y as LoginPage};
2
2
  //# sourceMappingURL=LoginPage.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoginPage.mjs","names":[],"sources":["../../packages/components/pages/LoginPage.tsx"],"sourcesContent":["'use client';\n\nimport { useId, useState } from 'react';\n\nimport { Eye, EyeOff } from 'lucide-react';\nimport { z } from 'zod';\n\nimport { Alert, AlertDescription } from '../ui/alert';\nimport { Button } from '../ui/button';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '../ui/dialog';\nimport { Input } from '../ui/input';\nimport { Label } from '../ui/label';\n\nexport interface LoginPageProps {\n /** Controls whether the dialog is open */\n open: boolean;\n /** Called when the dialog open state changes */\n onOpenChange: (open: boolean) => void;\n /** Called when the user submits login credentials */\n onLogin: (email: string, password: string) => Promise<void> | void;\n /** Called when the \"Quên mật khẩu?\" link is clicked */\n onForgotPassword?: () => void;\n /** Called when the \"Đăng ký\" link is clicked */\n onRegister?: () => void;\n /** Disables the form and shows a spinner on the submit button */\n isLoading?: boolean;\n /** Server-side error message rendered in a destructive Alert */\n errorMessage?: string;\n /** Dialog heading. Default: \"Đăng nhập\" */\n title?: string;\n /** Dialog subheading. Default: \"Nhập thông tin để tiếp tục\" */\n subtitle?: string;\n}\n\nconst loginSchema = z.object({\n email: z.string().min(1, 'Vui lòng nhập email').email('Email không hợp lệ'),\n password: z.string().min(1, 'Vui lòng nhập mật khẩu'),\n});\n\n/**\n * Modal login dialog for the client authentication flow.\n *\n * @example\n * ```tsx\n * import { LoginPage } from '@customafk/lunas-ui/pages/LoginPage';\n *\n * <LoginPage\n * open={open}\n * onOpenChange={setOpen}\n * onLogin={async (email, password) => {\n * await authService.login(email, password);\n * setOpen(false);\n * }}\n * onRegister={() => { setOpen(false); setRegisterOpen(true); }}\n * />\n * ```\n */\nexport const LoginPage = ({\n open,\n onOpenChange,\n onLogin,\n onForgotPassword,\n onRegister,\n isLoading = false,\n errorMessage,\n title = 'Đăng nhập',\n subtitle = 'Nhập thông tin để tiếp tục',\n}: LoginPageProps) => {\n const emailId = useId();\n const passwordId = useId();\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [showPassword, setShowPassword] = useState(false);\n const [fieldErrors, setFieldErrors] = useState<{ email?: string; password?: string }>({});\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n const result = loginSchema.safeParse({ email, password });\n if (!result.success) {\n const errors = result.error.flatten().fieldErrors;\n setFieldErrors({ email: errors.email?.[0], password: errors.password?.[0] });\n return;\n }\n setFieldErrors({});\n await onLogin(email, password);\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm\">\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{subtitle}</DialogDescription>\n </DialogHeader>\n\n <form onSubmit={handleSubmit} noValidate className=\"flex flex-col gap-4\">\n {errorMessage && (\n <Alert variant=\"destructive\">\n <AlertDescription>{errorMessage}</AlertDescription>\n </Alert>\n )}\n\n <div className=\"flex flex-col gap-1.5\">\n <Label htmlFor={emailId}>Email</Label>\n <Input\n id={emailId}\n type=\"email\"\n autoComplete=\"email\"\n placeholder=\"you@example.com\"\n value={email}\n onChange={e => setEmail(e.target.value)}\n aria-invalid={!!fieldErrors.email}\n disabled={isLoading}\n />\n {fieldErrors.email && <p className=\"text-destructive text-xs\">{fieldErrors.email}</p>}\n </div>\n\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label htmlFor={passwordId}>Mật khẩu</Label>\n {onForgotPassword && (\n <Button type=\"button\" variant=\"link\" size=\"sm\" className=\"h-auto p-0 text-xs\" onClick={onForgotPassword}>\n Quên mật khẩu?\n </Button>\n )}\n </div>\n <div className=\"relative\">\n <Input\n id={passwordId}\n type={showPassword ? 'text' : 'password'}\n autoComplete=\"current-password\"\n placeholder=\"••••••••\"\n value={password}\n onChange={e => setPassword(e.target.value)}\n aria-invalid={!!fieldErrors.password}\n disabled={isLoading}\n className=\"pr-10\"\n />\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground\"\n onMouseDown={e => {\n e.preventDefault();\n setShowPassword(v => !v);\n }}\n aria-label={showPassword ? 'Ẩn mật khẩu' : 'Hiện mật khẩu'}\n >\n {showPassword ? <EyeOff size={16} /> : <Eye size={16} />}\n </button>\n </div>\n {fieldErrors.password && <p className=\"text-destructive text-xs\">{fieldErrors.password}</p>}\n </div>\n\n <Button type=\"submit\" isLoading={isLoading} className=\"w-full\">\n Đăng nhập\n </Button>\n <Button type=\"button\" variant=\"outline\" className=\"w-full\" disabled={isLoading} onClick={() => onOpenChange(false)}>\n Đóng hộp thoại\n </Button>\n </form>\n\n {onRegister && (\n <div className=\"flex justify-center gap-1 text-muted-foreground text-sm\">\n <span>Chưa có tài khoản?</span>\n <Button variant=\"link\" size=\"sm\" className=\"h-auto p-0\" onClick={onRegister}>\n Đăng ký\n </Button>\n </div>\n )}\n </DialogContent>\n </Dialog>\n );\n};\n"],"mappings":"odAkCA,MAAM,EAAc,EAAE,OAAO,CAC3B,MAAO,EAAE,OAAO,CAAC,CAAC,IAAI,EAAG,qBAAqB,CAAC,CAAC,MAAM,oBAAoB,EAC1E,SAAU,EAAE,OAAO,CAAC,CAAC,IAAI,EAAG,wBAAwB,CACtD,CAAC,EAoBY,GAAa,CACxB,OACA,eACA,UACA,mBACA,aACA,YAAY,GACZ,eACA,QAAQ,YACR,WAAW,gCACS,CACpB,IAAM,EAAU,EAAM,EAChB,EAAa,EAAM,EACnB,CAAC,EAAO,GAAY,EAAS,EAAE,EAC/B,CAAC,EAAU,GAAe,EAAS,EAAE,EACrC,CAAC,EAAc,GAAmB,EAAS,EAAK,EAChD,CAAC,EAAa,GAAkB,EAAgD,CAAC,CAAC,EAcxF,OACE,EAAC,EAAD,CAAc,OAAoB,wBAChC,EAAC,EAAD,CAAe,UAAU,gVAAzB,CACE,EAAC,EAAD,CAAA,SAAA,CACE,EAAC,EAAD,CAAA,SAAc,CAAmB,CAAA,EACjC,EAAC,EAAD,CAAA,SAAoB,CAA4B,CAAA,CACpC,CAAA,CAAA,EAEd,EAAC,OAAD,CAAM,SAAU,KApBM,IAAwC,CAClE,EAAE,eAAe,EACjB,IAAM,EAAS,EAAY,UAAU,CAAE,QAAO,UAAS,CAAC,EACxD,GAAI,CAAC,EAAO,QAAS,CACnB,IAAM,EAAS,EAAO,MAAM,QAAQ,CAAC,CAAC,YACtC,EAAe,CAAE,MAAO,EAAO,QAAQ,GAAI,SAAU,EAAO,WAAW,EAAG,CAAC,EAC3E,MACF,CACA,EAAe,CAAC,CAAC,EACjB,MAAM,EAAQ,EAAO,CAAQ,CAC/B,EAUoC,WAAA,GAAW,UAAU,+BAAnD,CACG,GACC,EAAC,EAAD,CAAO,QAAQ,uBACb,EAAC,EAAD,CAAA,SAAmB,CAA+B,CAAA,CAC7C,CAAA,EAGT,EAAC,MAAD,CAAK,UAAU,iCAAf,CACE,EAAC,EAAD,CAAO,QAAS,WAAS,OAAY,CAAA,EACrC,EAAC,EAAD,CACE,GAAI,EACJ,KAAK,QACL,aAAa,QACb,YAAY,kBACZ,MAAO,EACP,SAAU,GAAK,EAAS,EAAE,OAAO,KAAK,EACtC,eAAc,CAAC,CAAC,EAAY,MAC5B,SAAU,CACX,CAAA,EACA,EAAY,OAAS,EAAC,IAAD,CAAG,UAAU,oCAA4B,EAAY,KAAS,CAAA,CACjF,IAEL,EAAC,MAAD,CAAK,UAAU,iCAAf,CACE,EAAC,MAAD,CAAK,UAAU,6CAAf,CACE,EAAC,EAAD,CAAO,QAAS,WAAY,UAAe,CAAA,EAC1C,GACC,EAAC,EAAD,CAAQ,KAAK,SAAS,QAAQ,OAAO,KAAK,KAAK,UAAU,qBAAqB,QAAS,WAAkB,gBAEjG,CAAA,CAEP,IACL,EAAC,MAAD,CAAK,UAAU,oBAAf,CACE,EAAC,EAAD,CACE,GAAI,EACJ,KAAM,EAAe,OAAS,WAC9B,aAAa,mBACb,YAAY,WACZ,MAAO,EACP,SAAU,GAAK,EAAY,EAAE,OAAO,KAAK,EACzC,eAAc,CAAC,CAAC,EAAY,SAC5B,SAAU,EACV,UAAU,OACX,CAAA,EACD,EAAC,SAAD,CACE,KAAK,SACL,UAAU,gGACV,YAAa,GAAK,CAChB,EAAE,eAAe,EACjB,EAAgB,GAAK,CAAC,CAAC,CACzB,EACA,aAAY,EAAe,cAAgB,yBAE3B,EAAf,EAAgB,EAAuB,EAAxB,CAAQ,KAAM,EAAK,CAAoB,CACjD,CAAA,CACL,IACJ,EAAY,UAAY,EAAC,IAAD,CAAG,UAAU,oCAA4B,EAAY,QAAY,CAAA,CACvF,IAEL,EAAC,EAAD,CAAQ,KAAK,SAAoB,YAAW,UAAU,kBAAS,WAEvD,CAAA,EACR,EAAC,EAAD,CAAQ,KAAK,SAAS,QAAQ,UAAU,UAAU,SAAS,SAAU,EAAW,YAAe,EAAa,EAAK,WAAG,gBAE5G,CAAA,CACJ,IAEL,GACC,EAAC,MAAD,CAAK,UAAU,mEAAf,CACE,EAAC,OAAD,CAAA,SAAM,oBAAwB,CAAA,EAC9B,EAAC,EAAD,CAAQ,QAAQ,OAAO,KAAK,KAAK,UAAU,aAAa,QAAS,WAAY,SAErE,CAAA,CACL,GAEM,GACT,CAAA,CAEZ"}
1
+ {"version":3,"file":"LoginPage.mjs","names":[],"sources":["../../packages/components/pages/LoginPage.tsx"],"sourcesContent":["'use client';\n\nimport { useId, useState } from 'react';\n\nimport { Eye, EyeOff } from 'lucide-react';\nimport { z } from 'zod';\n\nimport { Alert, AlertDescription } from '../ui/alert';\nimport { Button } from '../ui/button';\nimport { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from '../ui/dialog';\nimport { LunasLogo } from '../features/logo';\nimport { Input } from '../ui/input';\nimport { Label } from '../ui/label';\n\nexport interface LoginPageProps {\n /** Controls whether the dialog is open */\n open: boolean;\n /** Called when the dialog open state changes */\n onOpenChange: (open: boolean) => void;\n /** Called when the user submits login credentials */\n onLogin: (email: string, password: string) => Promise<void> | void;\n /** Called when the \"Quên mật khẩu?\" link is clicked */\n onForgotPassword?: () => void;\n /** Called when the \"Đăng ký\" link is clicked */\n onRegister?: () => void;\n /** Disables the form and shows a spinner on the submit button */\n isLoading?: boolean;\n /** Server-side error message rendered in a destructive Alert */\n errorMessage?: string;\n /** Dialog heading. Default: \"Đăng nhập\" */\n title?: string;\n /** Dialog subheading. Default: \"Nhập thông tin để tiếp tục\" */\n subtitle?: string;\n}\n\nconst loginSchema = z.object({\n email: z.string().min(1, 'Vui lòng nhập email').email('Email không hợp lệ'),\n password: z.string().min(1, 'Vui lòng nhập mật khẩu'),\n});\n\n/**\n * Modal login dialog for the client authentication flow.\n *\n * @example\n * ```tsx\n * import { LoginPage } from '@customafk/lunas-ui/pages/LoginPage';\n *\n * <LoginPage\n * open={open}\n * onOpenChange={setOpen}\n * onLogin={async (email, password) => {\n * await authService.login(email, password);\n * setOpen(false);\n * }}\n * onRegister={() => { setOpen(false); setRegisterOpen(true); }}\n * />\n * ```\n */\nexport const LoginPage = ({\n open,\n onOpenChange,\n onLogin,\n onForgotPassword,\n onRegister,\n isLoading = false,\n errorMessage,\n title = 'Đăng nhập',\n subtitle = 'Nhập thông tin để tiếp tục',\n}: LoginPageProps) => {\n const emailId = useId();\n const passwordId = useId();\n const [email, setEmail] = useState('');\n const [password, setPassword] = useState('');\n const [showPassword, setShowPassword] = useState(false);\n const [fieldErrors, setFieldErrors] = useState<{ email?: string; password?: string }>({});\n\n const handleSubmit = async (e: React.FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n const result = loginSchema.safeParse({ email, password });\n if (!result.success) {\n const errors = result.error.flatten().fieldErrors;\n setFieldErrors({ email: errors.email?.[0], password: errors.password?.[0] });\n return;\n }\n setFieldErrors({});\n await onLogin(email, password);\n };\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent className=\"max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=open]:zoom-in-100 max-sm:data-[state=closed]:slide-out-to-bottom max-sm:data-[state=closed]:zoom-out-100 max-sm:top-auto max-sm:right-0 max-sm:bottom-0 max-sm:left-0 max-sm:max-w-full max-sm:translate-x-0 max-sm:translate-y-0 max-sm:rounded-b-none sm:max-w-sm\">\n <DialogHeader>\n <LunasLogo variant=\"horizontal\" size=\"sm\" className=\"mx-auto\" />\n <div className=\"flex flex-col gap-0.5\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{subtitle}</DialogDescription>\n </div>\n </DialogHeader>\n\n <form onSubmit={handleSubmit} noValidate className=\"flex flex-col gap-4\">\n {errorMessage && (\n <Alert variant=\"destructive\">\n <AlertDescription>{errorMessage}</AlertDescription>\n </Alert>\n )}\n\n <div className=\"flex flex-col gap-1.5\">\n <Label htmlFor={emailId}>Email</Label>\n <Input\n id={emailId}\n type=\"email\"\n autoComplete=\"email\"\n placeholder=\"you@example.com\"\n value={email}\n onChange={e => setEmail(e.target.value)}\n aria-invalid={!!fieldErrors.email}\n disabled={isLoading}\n />\n {fieldErrors.email && <p className=\"text-destructive text-xs\">{fieldErrors.email}</p>}\n </div>\n\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"flex items-center justify-between\">\n <Label htmlFor={passwordId}>Mật khẩu</Label>\n {onForgotPassword && (\n <Button type=\"button\" variant=\"link\" size=\"sm\" className=\"h-auto p-0 text-xs\" onClick={onForgotPassword}>\n Quên mật khẩu?\n </Button>\n )}\n </div>\n <div className=\"relative\">\n <Input\n id={passwordId}\n type={showPassword ? 'text' : 'password'}\n autoComplete=\"current-password\"\n placeholder=\"••••••••\"\n value={password}\n onChange={e => setPassword(e.target.value)}\n aria-invalid={!!fieldErrors.password}\n disabled={isLoading}\n className=\"pr-10\"\n />\n <button\n type=\"button\"\n className=\"absolute inset-y-0 right-0 flex items-center px-3 text-muted-foreground hover:text-foreground\"\n onMouseDown={e => {\n e.preventDefault();\n setShowPassword(v => !v);\n }}\n aria-label={showPassword ? 'Ẩn mật khẩu' : 'Hiện mật khẩu'}\n >\n {showPassword ? <EyeOff size={16} /> : <Eye size={16} />}\n </button>\n </div>\n {fieldErrors.password && <p className=\"text-destructive text-xs\">{fieldErrors.password}</p>}\n </div>\n\n <Button type=\"submit\" isLoading={isLoading} className=\"w-full\">\n Đăng nhập\n </Button>\n <Button type=\"button\" variant=\"outline\" className=\"w-full\" disabled={isLoading} onClick={() => onOpenChange(false)}>\n Đóng hộp thoại\n </Button>\n </form>\n\n {onRegister && (\n <div className=\"flex justify-center gap-1 text-muted-foreground text-sm\">\n <span>Chưa có tài khoản?</span>\n <Button variant=\"link\" size=\"sm\" className=\"h-auto p-0\" onClick={onRegister}>\n Đăng ký\n </Button>\n </div>\n )}\n </DialogContent>\n </Dialog>\n );\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../ui/button.cjs");let t=require("lucide-react"),n=require("@customafk/react-toolkit/utils"),r=require("react/jsx-runtime");const i=({title:i=`Quyền truy cập bị từ chối`,subtitle:a=`Xin lỗi, bạn không có quyền truy cập vào trang này.`,buttonText:o=`Quay lại`,onButtonClick:s=()=>window.history.back(),className:c,iconClassName:l})=>(0,r.jsxs)(`div`,{className:(0,n.cn)(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,c),children:[(0,r.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,r.jsx)(t.ShieldAlert,{className:(0,n.cn)(`size-16 sm:size-24 text-primary`,l)}),(0,r.jsx)(`div`,{className:`text-4xl sm:text-6xl font-bold text-primary`,children:`403`})]}),(0,r.jsx)(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:i}),(0,r.jsx)(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:a}),(0,r.jsx)(e.Button,{onClick:s,variant:`default`,className:`mt-2`,size:`sm`,children:o})]});exports.NotAuthorized=i,exports.default=i;
1
+ "use client";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../ui/button.cjs"),t=require("../features/logo/index.cjs");let n=require("lucide-react"),r=require("@customafk/react-toolkit/utils"),i=require("react/jsx-runtime");const a=({title:a=`Quyền truy cập bị từ chối`,subtitle:o=`Xin lỗi, bạn không có quyền truy cập vào trang này.`,buttonText:s=`Quay lại`,onButtonClick:c=()=>window.history.back(),className:l,iconClassName:u})=>(0,i.jsxs)(`div`,{className:(0,r.cn)(`flex flex-col items-center justify-center min-h-[50vh] gap-4 sm:gap-6 py-8 sm:py-10 px-4 text-center w-full`,l),children:[(0,i.jsx)(t.LunasLogo,{variant:`stacked`,size:`sm`}),(0,i.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,i.jsx)(n.ShieldAlert,{className:(0,r.cn)(`size-16 sm:size-24 text-primary`,u)}),(0,i.jsx)(`div`,{className:`text-4xl sm:text-6xl font-bold text-primary`,children:`403`})]}),(0,i.jsx)(`h1`,{className:`text-xl sm:text-2xl font-semibold mt-2`,children:a}),(0,i.jsx)(`p`,{className:`text-muted-foreground max-w-md text-sm sm:text-base`,children:o}),(0,i.jsx)(e.Button,{onClick:c,variant:`default`,className:`mt-2`,size:`sm`,children:s})]});exports.NotAuthorized=a,exports.default=a;
2
2
  //# sourceMappingURL=NotAuthorized.cjs.map