@customafk/lunas-ui 0.2.58 → 0.2.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cms-layout-BMwn0Yv3.cjs +2 -0
- package/dist/cms-layout-BMwn0Yv3.cjs.map +1 -0
- package/dist/cms-layout-sd6GB6tR.mjs +2 -0
- package/dist/cms-layout-sd6GB6tR.mjs.map +1 -0
- package/dist/dialogs/detail-dialog/index.cjs +1 -1
- package/dist/dialogs/detail-dialog/index.cjs.map +1 -1
- package/dist/dialogs/detail-dialog/index.mjs +1 -1
- package/dist/dialogs/detail-dialog/index.mjs.map +1 -1
- package/dist/features/logo/index.cjs +2 -0
- package/dist/features/logo/index.cjs.map +1 -0
- package/dist/features/logo/index.d.cts +22 -0
- package/dist/features/logo/index.d.mts +22 -0
- package/dist/features/logo/index.mjs +2 -0
- package/dist/features/logo/index.mjs.map +1 -0
- package/dist/features/tables/index.cjs +1 -1
- package/dist/features/tables/index.d.cts +2 -2
- package/dist/features/tables/index.d.mts +2 -2
- package/dist/features/tables/index.mjs +1 -1
- package/dist/features/tanstack-form/index.cjs +1 -1
- package/dist/features/tanstack-form/index.mjs +1 -1
- package/dist/{index-aPuQLHfq.d.mts → index-Cbhv1_Xe.d.mts} +49 -19
- package/dist/{index-Cqe6rsMe.d.cts → index-nsk470g_.d.cts} +49 -19
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.mts +3 -3
- package/dist/index.mjs +1 -1
- package/dist/layouts/cms-layout/index.cjs +1 -1
- package/dist/layouts/cms-layout/index.mjs +1 -1
- package/dist/layouts/payment-layout/index.cjs +1 -1
- package/dist/layouts/payment-layout/index.mjs +1 -1
- package/dist/pages/FeatureDeveloping.cjs +1 -1
- package/dist/pages/FeatureDeveloping.cjs.map +1 -1
- package/dist/pages/FeatureDeveloping.mjs +1 -1
- package/dist/pages/FeatureDeveloping.mjs.map +1 -1
- package/dist/pages/FeatureFixing.cjs +1 -1
- package/dist/pages/FeatureFixing.cjs.map +1 -1
- package/dist/pages/FeatureFixing.mjs +1 -1
- package/dist/pages/FeatureFixing.mjs.map +1 -1
- package/dist/pages/LoginPage.cjs +1 -1
- package/dist/pages/LoginPage.cjs.map +1 -1
- package/dist/pages/LoginPage.mjs +1 -1
- package/dist/pages/LoginPage.mjs.map +1 -1
- package/dist/pages/NotAuthorized.cjs +1 -1
- package/dist/pages/NotAuthorized.cjs.map +1 -1
- package/dist/pages/NotAuthorized.mjs +1 -1
- package/dist/pages/NotAuthorized.mjs.map +1 -1
- package/dist/pages/NotFound.cjs +1 -1
- package/dist/pages/NotFound.cjs.map +1 -1
- package/dist/pages/NotFound.mjs +1 -1
- package/dist/pages/NotFound.mjs.map +1 -1
- package/dist/pages/RegisterPage.cjs +1 -1
- package/dist/pages/RegisterPage.cjs.map +1 -1
- package/dist/pages/RegisterPage.mjs +1 -1
- package/dist/pages/RegisterPage.mjs.map +1 -1
- package/dist/pages/VerifyEmailPage.cjs +1 -1
- package/dist/pages/VerifyEmailPage.cjs.map +1 -1
- package/dist/pages/VerifyEmailPage.mjs +1 -1
- package/dist/pages/VerifyEmailPage.mjs.map +1 -1
- package/dist/payment-layout-BLrXT-oc.cjs +2 -0
- package/dist/payment-layout-BLrXT-oc.cjs.map +1 -0
- package/dist/payment-layout-Dsz6wYT1.mjs +2 -0
- package/dist/{payment-layout-CG_l7Es-.mjs.map → payment-layout-Dsz6wYT1.mjs.map} +1 -1
- package/dist/{resizable-CNIYTd7k.d.cts → resizable-CFCYn9e_.d.cts} +2 -2
- package/dist/{resizable-CNIYTd7k.d.mts → resizable-CFCYn9e_.d.mts} +2 -2
- package/dist/tables-B9cF58YD.mjs +4 -0
- package/dist/tables-B9cF58YD.mjs.map +1 -0
- package/dist/tables-NiAoBy75.cjs +4 -0
- package/dist/tables-NiAoBy75.cjs.map +1 -0
- package/dist/{tanstack-form-Bnfatlfx.cjs → tanstack-form-BMVn8ai_.cjs} +2 -2
- package/dist/tanstack-form-BMVn8ai_.cjs.map +1 -0
- package/dist/{tanstack-form-CRY_uHFd.mjs → tanstack-form-DTCgWGCA.mjs} +2 -2
- package/dist/tanstack-form-DTCgWGCA.mjs.map +1 -0
- package/dist/ui/resizable.d.cts +1 -1
- package/dist/ui/resizable.d.mts +1 -1
- package/dist/ui/switch.cjs +1 -1
- package/dist/ui/switch.cjs.map +1 -1
- package/dist/ui/switch.mjs +1 -1
- package/dist/ui/switch.mjs.map +1 -1
- package/package.json +5 -1
- package/dist/cms-layout-Bsw2mKXo.cjs +0 -2
- package/dist/cms-layout-Bsw2mKXo.cjs.map +0 -1
- package/dist/cms-layout-IwpD0LvR.mjs +0 -2
- package/dist/cms-layout-IwpD0LvR.mjs.map +0 -1
- package/dist/payment-layout-CG_l7Es-.mjs +0 -2
- package/dist/payment-layout-Dlvc1P7b.cjs +0 -2
- package/dist/payment-layout-Dlvc1P7b.cjs.map +0 -1
- package/dist/tables-BHdeig0n.mjs +0 -4
- package/dist/tables-BHdeig0n.mjs.map +0 -1
- package/dist/tables-BfuoYxlt.cjs +0 -4
- package/dist/tables-BfuoYxlt.cjs.map +0 -1
- package/dist/tanstack-form-Bnfatlfx.cjs.map +0 -1
- package/dist/tanstack-form-CRY_uHFd.mjs.map +0 -1
package/dist/index.d.mts
CHANGED
|
@@ -21,7 +21,7 @@ import { LoadingDialog, LoadingDialogProps } from "./dialogs/loading-dialog.mjs"
|
|
|
21
21
|
import { n as BadgeProps, r as badgeVariants, t as Badge } from "./badge-D0InQSvM.mjs";
|
|
22
22
|
import { Description, DescriptionBadge, DescriptionBoolean, DescriptionCopy, DescriptionDate, DescriptionEmpty, DescriptionHeader, DescriptionImages, DescriptionItem, DescriptionLink, DescriptionLongText, DescriptionName, DescriptionNumberPhone, DescriptionSection, DescriptionStatistic, DescriptionStatisticProps, DescriptionStatus, DescriptionTagList, DescriptionUser } from "./features/descriptions/index.mjs";
|
|
23
23
|
import { SearchModal } from "./features/search-modal/index.mjs";
|
|
24
|
-
import { $ as
|
|
24
|
+
import { $ as TUITableEmptyDisplay, A as CsvCell, At as UITableBooleanDisplay, B as TTableAnalysisContext, C as UITableCellActions, Ct as UITableMoreButton, D as BooleanFilterValue, Dt as UITableDescriptionDisplay, E as ActiveFilter, Et as UITableEditButton, F as FilterValue, G as TTableInnerTableContext, H as TTableContext, I as NumberFilterValue, J as TUITableBody, K as TTableInnerWrapperContext, L as RowData, M as FilterDefinition, Mt as UITableAvatarNameDisplay, N as FilterOption, O as ColumnAggregation, Ot as UITableDateDisplay, P as FilterType, Q as TUITableColumn, R as SingleTagFilterValue, S as UITableCellSelect, St as UITableNameDisplay, T as UITableBody, Tt as UITableEmailDisplay, U as TTableFilterContext, V as TTableBodyContext, W as TTableHeadRowContext, X as TUITableCellActions, Y as TUITableCell, Z as TUITableCellSelect, _ as UITableHeadCell, _t as UITableStatisticDisplay, a as UITableProvider, at as TUITableHeadRow, b as UITableFooter, bt as UITablePhoneNumberDisplay, c as UITableContainer, ct as TUITableLoadMore, d as UITableLoadMore, dt as TableProviderProps, et as TUITableFooter, f as UITableInnerWrapper, ft as TagFilterValue, g as UITableHeadCellOption, gt as UITableStatusDisplay, h as UITableHeadCellSelect, ht as UITableToggleButton, i as UITableSummaryBar, it as TUITableHeadCellSelect, j as DateRangeFilterValue, jt as UITableBadgeDisplay, k as ColumnAggregationType, kt as UITableCurrencyDisplay, l as UITableWrapper, lt as TUITableRow, m as UITableHeadRow, mt as UITableUserDataDisplay, n as UITableTooltipActions, nt as TUITableHeadCell, o as UITableFilter, ot as TUITableInnerTable, p as UITableInnerTable, pt as TextFilterValue, q as TTableRowContext, r as UITableTooltipFilter, rt as TUITableHeadCellOption, s as UITableAnalysisPanel, st as TUITableInnerWrapper, t as UITableTooltip, tt as TUITableHead, u as UITableRow, ut as TUITableWrapper, v as UITableHead, vt as UITableRemoveButton, w as UITableCell, wt as UITableListDisplay, x as UITableEmptyDisplay, xt as UITablePermalink, y as UITableFooterRow, yt as UITableProgressDisplay, z as SummaryItem } from "./index-Cbhv1_Xe.mjs";
|
|
25
25
|
import { n as InputVariantProps, t as Input } from "./input-BJMvABEL.mjs";
|
|
26
26
|
import { $ as EmailFieldProps, A as EmailField, B as SimpleRadioGroupField, C as TextareaField, D as RadioGroupField, E as SelectField, F as SimpleTextareaField, G as ArrayHeaderRow, H as SimpleComboboxField, I as SimpleSelectField, J as BooleanFieldValue, K as SimpleArrayField, L as SimplePasswordField, M as ComboboxField, N as CheckboxField, O as PasswordField, P as SimpleTextField, Q as DateFieldValue, R as SimpleNumberField, S as TextEditorField, T as SwitchField, U as SimpleBooleanField, V as SimpleDateField, W as ArrayCol, X as ComboboxFieldProps, Y as CheckboxFieldProps, Z as DateFieldProps, _ as TanStackDialogForm, a as withTanStackForm, at as NumberFieldValue, b as TanStackActionsForm, c as FieldContentMain, ct as RadioOption, d as FieldLabel, dt as SimpleTextFieldProps, et as FieldOrientation, f as FieldSeparator, ft as SwitchFieldProps, g as TanStackFieldGroup, gt as TextareaFieldProps, h as TanStackPopoverForm, ht as TextFieldValue, i as withTanStackFieldGroup, it as NumberFieldProps, j as DateField, k as NumberField, l as FieldError, lt as SelectFieldProps, m as TanStackSectionForm, mt as TextFieldProps, n as useTanStackForm, nt as FieldType, o as Field, ot as PasswordFieldProps, p as TanStackTitleField, pt as TextEditorFieldProps, q as AnyFieldProps, r as useTanStackFormContext, rt as MultiSelectFieldValue, s as FieldContent, st as RadioGroupFieldProps, t as useTanStackFieldContext, tt as FieldRounding, u as FieldGroup, ut as SelectOption, v as TanStackContainerForm, w as TextField, x as TanStackActionSubmit, y as TanStackCardForm, z as SimpleEmailField } from "./index-C2KjuFXQ.mjs";
|
|
27
27
|
import { i as TextEditorProps, n as TextEditorToolbarProps, r as TextEditor, t as TextEditorToolbar } from "./index-DOaKN0wJ.mjs";
|
|
@@ -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-
|
|
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";
|
|
@@ -90,4 +90,4 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "./ui/tabs.mjs";
|
|
|
90
90
|
import { Textarea } from "./ui/textarea.mjs";
|
|
91
91
|
import { Toggle, toggleVariants } from "./ui/toggle.mjs";
|
|
92
92
|
import { ToggleGroup, ToggleGroupItem } from "./ui/toggle-group.mjs";
|
|
93
|
-
export { ActiveFilter, AddNewBtn, Alert, AlertDescription, AlertDescriptionProps, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertProps, AlertTitle, AlertTitleProps, AnyFieldProps, ArrayCol, ArrayHeaderRow, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, BooleanFieldValue, BooleanFilterValue, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, CMSLayout, CMSLayoutProps, type CMSLayoutUser, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, CheckboxField, CheckboxFieldProps, Collapsible, CollapsibleContent, CollapsibleTrigger, ColumnAggregation, ColumnAggregationType, ComboboxField, ComboboxFieldProps, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, type ConfirmDialogProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CountryDisplay, CsvCell, DataList, DataListItem, DateDisplay, DateField, DateFieldProps, DateFieldValue, DateRangeFilterValue, DateTooltip, Description, DescriptionBadge, DescriptionBoolean, DescriptionCopy, DescriptionDate, DescriptionEmpty, DescriptionHeader, DescriptionImages, DescriptionItem, DescriptionLink, DescriptionLongText, DescriptionName, DescriptionNumberPhone, DescriptionSection, DescriptionStatistic, DescriptionStatisticProps, DescriptionStatus, DescriptionTagList, DescriptionUser, DetailDialog, type DetailDialogProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditBtn, EmailField, EmailFieldProps, Empty, EmptyContent, EmptyDescription, EmptyDisplay, EmptyHeader, EmptyMedia, EmptyTitle, ErrorDialog, type ErrorDialogProps, FeatureDeveloping, FeatureFixing, Field, FieldContent, FieldContentMain, FieldError, FieldGroup, FieldLabel, FieldOrientation, FieldRounding, FieldSeparator, FieldType, FileUploader, FilterDefinition, FilterOption, FilterType, FilterValue, Flex, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Google, Grid, GridProductCard, HoverCard, HoverCardContent, HoverCardTrigger, Image, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputVariantProps, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Label, LoadingDialog, type LoadingDialogProps, LoginPage, type LoginPageProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MultiSelectFieldValue, MultipleSelector, MultipleSelectorRef, NameDisplay, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NotAuthorized, NotFound, type NotFoundProps, NumberField, NumberFieldProps, NumberFieldValue, NumberFilterValue, Option, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Paragraph, type ParagraphProps, PasswordField, PasswordFieldProps, PaymentLayout, PaymentLayoutUser, PhoneNumberDisplay, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger, ProductCard, Progress, RadioGroup, RadioGroupField, RadioGroupFieldProps, RadioGroupItem, RadioOption, RefreshBtn, RegisterPage, type RegisterPageProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RoleBadge, RowData, ScrollArea, ScrollBar, SearchInput, SearchModal, Select, SelectContent, SelectField, SelectFieldProps, SelectGroup, SelectItem, SelectLabel, SelectOption, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, SimpleArrayField, SimpleBooleanField, SimpleCard, SimpleComboboxField, SimpleDateField, SimpleEmailField, SimpleNumberField, SimplePasswordField, SimpleRadioGroupField, SimpleSelectField, SimpleTextField, SimpleTextFieldProps, SimpleTextareaField, SingleTagFilterValue, Skeleton, Slider, Spinner, Statistic, type StatisticProps, SummaryItem, Switch, SwitchField, SwitchFieldProps, TTableAnalysisContext, TTableBodyContext, TTableContext, TTableFilterContext, TTableHeadRowContext, TTableInnerTableContext, TTableInnerWrapperContext, TTableRowContext,
|
|
93
|
+
export { ActiveFilter, AddNewBtn, Alert, AlertDescription, AlertDescriptionProps, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertProps, AlertTitle, AlertTitleProps, AnyFieldProps, ArrayCol, ArrayHeaderRow, AspectRatio, Avatar, AvatarFallback, AvatarImage, Badge, type BadgeProps, BooleanFieldValue, BooleanFilterValue, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, type ButtonProps, CMSLayout, CMSLayoutProps, type CMSLayoutUser, Calendar, CalendarDayButton, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Carousel, type CarouselApi, CarouselContent, CarouselItem, CarouselNext, CarouselPrevious, Checkbox, CheckboxField, CheckboxFieldProps, Collapsible, CollapsibleContent, CollapsibleTrigger, ColumnAggregation, ColumnAggregationType, ComboboxField, ComboboxFieldProps, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ConfirmDialog, type ConfirmDialogProps, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, CountryDisplay, CsvCell, DataList, DataListItem, DateDisplay, DateField, DateFieldProps, DateFieldValue, DateRangeFilterValue, DateTooltip, Description, DescriptionBadge, DescriptionBoolean, DescriptionCopy, DescriptionDate, DescriptionEmpty, DescriptionHeader, DescriptionImages, DescriptionItem, DescriptionLink, DescriptionLongText, DescriptionName, DescriptionNumberPhone, DescriptionSection, DescriptionStatistic, DescriptionStatisticProps, DescriptionStatus, DescriptionTagList, DescriptionUser, DetailDialog, type DetailDialogProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditBtn, EmailField, EmailFieldProps, Empty, EmptyContent, EmptyDescription, EmptyDisplay, EmptyHeader, EmptyMedia, EmptyTitle, ErrorDialog, type ErrorDialogProps, FeatureDeveloping, FeatureFixing, Field, FieldContent, FieldContentMain, FieldError, FieldGroup, FieldLabel, FieldOrientation, FieldRounding, FieldSeparator, FieldType, FileUploader, FilterDefinition, FilterOption, FilterType, FilterValue, Flex, Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, Google, Grid, GridProductCard, HoverCard, HoverCardContent, HoverCardTrigger, Image, Input, InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot, type InputVariantProps, Item, ItemActions, ItemContent, ItemDescription, ItemFooter, ItemGroup, ItemHeader, ItemMedia, ItemSeparator, ItemTitle, Label, LoadingDialog, type LoadingDialogProps, LoginPage, type LoginPageProps, Menubar, MenubarCheckboxItem, MenubarContent, MenubarGroup, MenubarItem, MenubarLabel, MenubarMenu, MenubarPortal, MenubarRadioGroup, MenubarRadioItem, MenubarSeparator, MenubarShortcut, MenubarSub, MenubarSubContent, MenubarSubTrigger, MenubarTrigger, MultiSelectFieldValue, MultipleSelector, MultipleSelectorRef, NameDisplay, NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, NotAuthorized, NotFound, type NotFoundProps, NumberField, NumberFieldProps, NumberFieldValue, NumberFilterValue, Option, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, Paragraph, type ParagraphProps, PasswordField, PasswordFieldProps, PaymentLayout, PaymentLayoutUser, PhoneNumberDisplay, Popover, PopoverAnchor, PopoverClose, PopoverContent, PopoverTrigger, ProductCard, Progress, RadioGroup, RadioGroupField, RadioGroupFieldProps, RadioGroupItem, RadioOption, RefreshBtn, RegisterPage, type RegisterPageProps, ResizableHandle, ResizablePanel, ResizablePanelGroup, RoleBadge, RowData, ScrollArea, ScrollBar, SearchInput, SearchModal, Select, SelectContent, SelectField, SelectFieldProps, SelectGroup, SelectItem, SelectLabel, SelectOption, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, SimpleArrayField, SimpleBooleanField, SimpleCard, SimpleComboboxField, SimpleDateField, SimpleEmailField, SimpleNumberField, SimplePasswordField, SimpleRadioGroupField, SimpleSelectField, SimpleTextField, SimpleTextFieldProps, SimpleTextareaField, SingleTagFilterValue, Skeleton, Slider, Spinner, Statistic, type StatisticProps, SummaryItem, Switch, SwitchField, SwitchFieldProps, TTableAnalysisContext, TTableBodyContext, TTableContext, TTableFilterContext, TTableHeadRowContext, TTableInnerTableContext, TTableInnerWrapperContext, TTableRowContext, TUITableBody, TUITableCell, TUITableCellActions, TUITableCellSelect, TUITableColumn, TUITableEmptyDisplay, TUITableFooter, TUITableHead, TUITableHeadCell, TUITableHeadCellOption, TUITableHeadCellSelect, TUITableHeadRow, TUITableInnerTable, TUITableInnerWrapper, TUITableLoadMore, TUITableRow, TUITableWrapper, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableProviderProps, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, TagFilterValue, TanStackActionSubmit, TanStackActionsForm, TanStackCardForm, TanStackContainerForm, TanStackDialogForm, TanStackFieldGroup, TanStackPopoverForm, TanStackSectionForm, TanStackTitleField, TextEditor, TextEditorField, TextEditorFieldProps, type TextEditorProps, TextEditorToolbar, type TextEditorToolbarProps, TextField, TextFieldProps, TextFieldValue, TextFilterValue, Textarea, TextareaField, TextareaFieldProps, Title, type TitleProps, Toaster, Toggle, ToggleGroup, ToggleGroupItem, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TrashBtn, UITableAnalysisPanel, UITableAvatarNameDisplay, UITableBadgeDisplay, UITableBody, UITableBooleanDisplay, UITableCell, UITableCellActions, UITableCellSelect, UITableContainer, UITableCurrencyDisplay, UITableDateDisplay, UITableDescriptionDisplay, UITableEditButton, UITableEmailDisplay, UITableEmptyDisplay, UITableFilter, UITableFooter, UITableFooterRow, UITableHead, UITableHeadCell, UITableHeadCellOption, UITableHeadCellSelect, UITableHeadRow, UITableInnerTable, UITableInnerWrapper, UITableListDisplay, UITableLoadMore, UITableMoreButton, UITableNameDisplay, UITablePermalink, UITablePhoneNumberDisplay, UITableProgressDisplay, UITableProvider, UITableRemoveButton, UITableRow, UITableStatisticDisplay, UITableStatusDisplay, UITableSummaryBar, UITableToggleButton, UITableTooltip, UITableTooltipActions, UITableTooltipFilter, UITableUserDataDisplay, UITableWrapper, UploadImageBtn, UserDataDisplay, VerifyEmailPage, type VerifyEmailPageProps, badgeVariants, buttonGroupVariants, navigationMenuTriggerStyle, paragraphVariants, toast, toggleVariants, useDebounce, useFormField, useTanStackFieldContext, useTanStackForm, useTanStackFormContext, withTanStackFieldGroup, withTanStackForm };
|
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,V as st,_ as ct,a as lt,b as ut,c as dt,d as ft,f as pt,g as mt,h as ht,i as gt,j as _t,k as vt,l as yt,m as bt,n as xt,o as St,p as Ct,r as wt,s as Tt,t as Et,u as Dt,v as Ot,w as kt,x as At,y as jt,z as Mt}from"./tables-BHdeig0n.mjs";import{DropdownMenu as Nt,DropdownMenuCheckboxItem as Pt,DropdownMenuContent as Ft,DropdownMenuGroup as It,DropdownMenuItem as Lt,DropdownMenuLabel as Rt,DropdownMenuPortal as zt,DropdownMenuRadioGroup as Bt,DropdownMenuRadioItem as Vt,DropdownMenuSeparator as Ht,DropdownMenuShortcut as Ut,DropdownMenuSub as Wt,DropdownMenuSubContent as Gt,DropdownMenuSubTrigger as Kt,DropdownMenuTrigger as qt}from"./ui/dropdown-menu.mjs";import{Progress as Jt}from"./ui/progress.mjs";import{Checkbox as Yt}from"./ui/checkbox.mjs";import{Spinner as Xt}from"./ui/spinner.mjs";import{ResizableHandle as Zt,ResizablePanel as Qt,ResizablePanelGroup as $t}from"./ui/resizable.mjs";import{Input as en}from"./ui/input.mjs";import{Label as tn}from"./ui/label.mjs";import{Popover as nn,PopoverAnchor as rn,PopoverClose as an,PopoverContent as on,PopoverTrigger as sn}from"./ui/popover.mjs";import{Select as cn,SelectContent as ln,SelectGroup as un,SelectItem as dn,SelectLabel as fn,SelectSeparator as pn,SelectTrigger as mn,SelectValue as hn}from"./ui/select.mjs";import{A as gn,B as _n,C as vn,D as yn,E as bn,F as xn,G as Sn,H as Cn,I as wn,K as Tn,L as En,M as Dn,N as On,O as kn,P as An,R as jn,S as Mn,T as Nn,U as Pn,V as Fn,W as In,_ as Ln,a as Rn,b as zn,c as Bn,d as Vn,f as Hn,g as Un,h as Wn,i as Gn,j as Kn,k as qn,l as Jn,m as Yn,n as Xn,o as Zn,p as Qn,r as $n,s as er,t as tr,u as nr,v as rr,w as ir,x as ar,y as or,z as sr}from"./tanstack-form-CRY_uHFd.mjs";import{Switch as cr}from"./ui/switch.mjs";import{Drawer as lr,DrawerClose as ur,DrawerContent as dr,DrawerDescription as fr,DrawerFooter as pr,DrawerHeader as mr,DrawerOverlay as hr,DrawerPortal as gr,DrawerTitle as _r,DrawerTrigger as vr}from"./ui/drawer.mjs";import{Calendar as yr,CalendarDayButton as br}from"./ui/calendar.mjs";import{RadioGroup as xr,RadioGroupItem as Sr}from"./ui/radio-group.mjs";import{Textarea as Cr}from"./ui/textarea.mjs";import{n as wr,t as Tr}from"./text-editor-BQtIXOpM.mjs";import{t as Er}from"./cms-layout-IwpD0LvR.mjs";import{t as Dr}from"./payment-layout-CG_l7Es-.mjs";import{Grid as Or}from"./layouts/grid.mjs";import{FeatureDeveloping as kr}from"./pages/FeatureDeveloping.mjs";import{FeatureFixing as Ar}from"./pages/FeatureFixing.mjs";import{NotAuthorized as jr}from"./pages/NotAuthorized.mjs";import{NotFound as Mr}from"./pages/NotFound.mjs";import{n as Nr,r as Pr,t as Fr}from"./alert-OD1KJTEV.mjs";import{LoginPage as Ir}from"./pages/LoginPage.mjs";import{RegisterPage as Lr}from"./pages/RegisterPage.mjs";import{InputOTP as Rr,InputOTPGroup as zr,InputOTPSeparator as Br,InputOTPSlot as Vr}from"./ui/input-otp.mjs";import{VerifyEmailPage as Hr}from"./pages/VerifyEmailPage.mjs";import{Google as Ur}from"./systems/google.mjs";import{AddNewBtn as Wr}from"./ui/buttons/add-new.mjs";import{EditBtn as Gr}from"./ui/buttons/edit.mjs";import{RefreshBtn as Kr}from"./ui/buttons/refresh.mjs";import{TrashBtn as qr}from"./ui/buttons/trash.mjs";import{UploadImageBtn as Jr}from"./ui/buttons/upload-image.mjs";import{SearchInput as Yr}from"./ui/inputs/search-input.mjs";import{AspectRatio as Xr}from"./ui/aspect-ratio.mjs";import{Breadcrumb as Zr,BreadcrumbEllipsis as Qr,BreadcrumbItem as $r,BreadcrumbLink as ei,BreadcrumbList as ti,BreadcrumbPage as ni,BreadcrumbSeparator as ri}from"./ui/breadcrumb.mjs";import{ButtonGroup as ii,ButtonGroupSeparator as ai,ButtonGroupText as oi,buttonGroupVariants as si}from"./ui/button-group.mjs";import{Carousel as ci,CarouselContent as li,CarouselItem as ui,CarouselNext as di,CarouselPrevious as fi}from"./ui/carousel.mjs";import{Collapsible as pi,CollapsibleContent as mi,CollapsibleTrigger as hi}from"./ui/collapsible.mjs";import{ContextMenu as gi,ContextMenuCheckboxItem as _i,ContextMenuContent as vi,ContextMenuGroup as yi,ContextMenuItem as bi,ContextMenuLabel as xi,ContextMenuPortal as Si,ContextMenuRadioGroup as Ci,ContextMenuRadioItem as wi,ContextMenuSeparator as Ti,ContextMenuShortcut as Ei,ContextMenuSub as Di,ContextMenuSubContent as Oi,ContextMenuSubTrigger as ki,ContextMenuTrigger as Ai}from"./ui/context-menu.mjs";import{Empty as ji,EmptyContent as Mi,EmptyDescription as Ni,EmptyHeader as Pi,EmptyMedia as Fi,EmptyTitle as Ii}from"./ui/empty.mjs";import{FileUploader as Li}from"./ui/file-uploader.mjs";import{Form as Ri,FormControl as zi,FormDescription as Bi,FormField as Vi,FormItem as Hi,FormLabel as Ui,FormMessage as Wi,useFormField as Gi}from"./ui/form.mjs";import{HoverCard as Ki,HoverCardContent as qi,HoverCardTrigger as Ji}from"./ui/hover-card.mjs";import{Item as Yi,ItemActions as Xi,ItemContent as Zi,ItemDescription as Qi,ItemFooter as $i,ItemGroup as ea,ItemHeader as ta,ItemMedia as na,ItemSeparator as ra,ItemTitle as ia}from"./ui/item.mjs";import{Menubar as aa,MenubarCheckboxItem as oa,MenubarContent as sa,MenubarGroup as ca,MenubarItem as la,MenubarLabel as ua,MenubarMenu as da,MenubarPortal as fa,MenubarRadioGroup as pa,MenubarRadioItem as ma,MenubarSeparator as ha,MenubarShortcut as ga,MenubarSub as _a,MenubarSubContent as va,MenubarSubTrigger as ya,MenubarTrigger as ba}from"./ui/menubar.mjs";import{MultipleSelector as xa,useDebounce as Sa}from"./ui/multi-select.mjs";import{NavigationMenu as Ca,NavigationMenuContent as wa,NavigationMenuIndicator as Ta,NavigationMenuItem as Ea,NavigationMenuLink as Da,NavigationMenuList as Oa,NavigationMenuTrigger as ka,NavigationMenuViewport as Aa,navigationMenuTriggerStyle as ja}from"./ui/navigation-menu.mjs";import{Pagination as Ma,PaginationContent as Na,PaginationEllipsis as Pa,PaginationItem as Fa,PaginationLink as Ia,PaginationNext as La,PaginationPrevious as Ra}from"./ui/pagination.mjs";import{ScrollArea as za,ScrollBar as Ba}from"./ui/scroll-area.mjs";import{Slider as Va}from"./ui/slider.mjs";import{Toaster as Ha,toast as Ua}from"./ui/sonner.mjs";import{Table as Wa,TableBody as Ga,TableCaption as Ka,TableCell as qa,TableFooter as Ja,TableHead as Ya,TableHeader as Xa,TableRow as Za}from"./ui/table.mjs";import{Tabs as Qa,TabsContent as $a,TabsList as eo,TabsTrigger as to}from"./ui/tabs.mjs";import{Toggle as no,toggleVariants as ro}from"./ui/toggle.mjs";import{ToggleGroup as io,ToggleGroupItem as ao}from"./ui/toggle-group.mjs";export{Wr as AddNewBtn,Fr as Alert,Nr 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,Pr as AlertTitle,In as ArrayCol,Sn as ArrayHeaderRow,Xr as AspectRatio,M as Avatar,N as AvatarFallback,P as AvatarImage,b as Badge,Zr as Breadcrumb,Qr as BreadcrumbEllipsis,$r as BreadcrumbItem,ei as BreadcrumbLink,ti as BreadcrumbList,ni as BreadcrumbPage,ri as BreadcrumbSeparator,e as Button,ii as ButtonGroup,ai as ButtonGroupSeparator,oi as ButtonGroupText,Er as CMSLayout,yr as Calendar,br as CalendarDayButton,r as Card,i as CardAction,a as CardContent,o as CardDescription,s as CardFooter,c as CardHeader,l as CardTitle,ci as Carousel,li as CarouselContent,ui as CarouselItem,di as CarouselNext,fi as CarouselPrevious,Yt as Checkbox,bn as CheckboxField,pi as Collapsible,mi as CollapsibleContent,hi as CollapsibleTrigger,Nn 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,gi as ContextMenu,_i as ContextMenuCheckboxItem,vi as ContextMenuContent,yi as ContextMenuGroup,bi as ContextMenuItem,xi as ContextMenuLabel,Si as ContextMenuPortal,Ci as ContextMenuRadioGroup,wi as ContextMenuRadioItem,Ti as ContextMenuSeparator,Ei as ContextMenuShortcut,Di as ContextMenuSub,Oi as ContextMenuSubContent,ki as ContextMenuSubTrigger,Ai as ContextMenuTrigger,g as CountryDisplay,_ as DataList,v as DataListItem,y as DateDisplay,ir 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,lr as Drawer,ur as DrawerClose,dr as DrawerContent,fr as DrawerDescription,pr as DrawerFooter,mr as DrawerHeader,hr as DrawerOverlay,gr as DrawerPortal,_r as DrawerTitle,vr as DrawerTrigger,Nt as DropdownMenu,Pt as DropdownMenuCheckboxItem,Ft as DropdownMenuContent,It as DropdownMenuGroup,Lt as DropdownMenuItem,Rt as DropdownMenuLabel,zt as DropdownMenuPortal,Bt as DropdownMenuRadioGroup,Vt as DropdownMenuRadioItem,Ht as DropdownMenuSeparator,Ut as DropdownMenuShortcut,Wt as DropdownMenuSub,Gt as DropdownMenuSubContent,Kt as DropdownMenuSubTrigger,qt as DropdownMenuTrigger,Gr as EditBtn,vn as EmailField,ji as Empty,Mi as EmptyContent,Ni as EmptyDescription,D as EmptyDisplay,Pi as EmptyHeader,Fi as EmptyMedia,Ii as EmptyTitle,ae as ErrorDialog,kr as FeatureDeveloping,Ar as FeatureFixing,En as Field,jn as FieldContent,sr as FieldContentMain,_n as FieldError,Fn as FieldGroup,Cn as FieldLabel,Pn as FieldSeparator,Li as FileUploader,h as Flex,Ri as Form,zi as FormControl,Bi as FormDescription,Vi as FormField,Hi as FormItem,Ui as FormLabel,Wi as FormMessage,Ur as Google,Or as Grid,f as GridProductCard,Ki as HoverCard,qi as HoverCardContent,Ji as HoverCardTrigger,d as Image,en as Input,Rr as InputOTP,zr as InputOTPGroup,Br as InputOTPSeparator,Vr as InputOTPSlot,Yi as Item,Xi as ItemActions,Zi as ItemContent,Qi as ItemDescription,$i as ItemFooter,ea as ItemGroup,ta as ItemHeader,na as ItemMedia,ra as ItemSeparator,ia as ItemTitle,tn as Label,ge as LoadingDialog,Ir as LoginPage,aa as Menubar,oa as MenubarCheckboxItem,sa as MenubarContent,ca as MenubarGroup,la as MenubarItem,ua as MenubarLabel,da as MenubarMenu,fa as MenubarPortal,pa as MenubarRadioGroup,ma as MenubarRadioItem,ha as MenubarSeparator,ga as MenubarShortcut,_a as MenubarSub,va as MenubarSubContent,ya as MenubarSubTrigger,ba as MenubarTrigger,xa as MultipleSelector,O as NameDisplay,Ca as NavigationMenu,wa as NavigationMenuContent,Ta as NavigationMenuIndicator,Ea as NavigationMenuItem,Da as NavigationMenuLink,Oa as NavigationMenuList,ka as NavigationMenuTrigger,Aa as NavigationMenuViewport,jr as NotAuthorized,Mr as NotFound,Mn as NumberField,Ma as Pagination,Na as PaginationContent,Pa as PaginationEllipsis,Fa as PaginationItem,Ia as PaginationLink,La as PaginationNext,Ra as PaginationPrevious,t as Paragraph,ar as PasswordField,Dr as PaymentLayout,k as PhoneNumberDisplay,nn as Popover,rn as PopoverAnchor,an as PopoverClose,on as PopoverContent,sn as PopoverTrigger,p as ProductCard,Jt as Progress,xr as RadioGroup,zn as RadioGroupField,Sr as RadioGroupItem,Kr as RefreshBtn,Lr as RegisterPage,Zt as ResizableHandle,Qt as ResizablePanel,$t as ResizablePanelGroup,A as RoleBadge,za as ScrollArea,Ba as ScrollBar,Yr as SearchInput,We as SearchModal,cn as Select,ln as SelectContent,or as SelectField,un as SelectGroup,dn as SelectItem,fn as SelectLabel,pn as SelectSeparator,mn as SelectTrigger,hn 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,Tn as SimpleArrayField,wn as SimpleBooleanField,m as SimpleCard,xn as SimpleComboboxField,An as SimpleDateField,Dn as SimpleEmailField,Kn as SimpleNumberField,gn as SimplePasswordField,On as SimpleRadioGroupField,qn as SimpleSelectField,yn as SimpleTextField,kn as SimpleTextareaField,u as Skeleton,Va as Slider,Xt as Spinner,j as Statistic,cr as Switch,rr as SwitchField,Wa as Table,Ga as TableBody,Ka as TableCaption,qa as TableCell,Ja as TableFooter,Ya as TableHead,Xa as TableHeader,Za as TableRow,Qa as Tabs,$a as TabsContent,eo as TabsList,to as TabsTrigger,Yn as TanStackActionSubmit,Qn as TanStackActionsForm,Hn as TanStackCardForm,Vn as TanStackContainerForm,nr as TanStackDialogForm,Jn as TanStackFieldGroup,Bn as TanStackPopoverForm,er as TanStackSectionForm,Zn as TanStackTitleField,Tr as TextEditor,Wn as TextEditorField,wr as TextEditorToolbar,Ln as TextField,Cr as Textarea,Un as TextareaField,J as Title,Ha as Toaster,no as Toggle,io as ToggleGroup,ao as ToggleGroupItem,S as Tooltip,C as TooltipContent,w as TooltipProvider,T as TooltipTrigger,qr as TrashBtn,Tt as UITableAnalysisPanel,Ze as UITableAvatarNameDisplay,st as UITableBadgeDisplay,ot as UITableBody,Ke as UITableBooleanDisplay,kt as UITableCell,qe as UITableCellActions,at as UITableCellSelect,dt as UITableContainer,Mt as UITableCurrencyDisplay,it as UITableDateDisplay,$e as UITableDescriptionDisplay,Qe as UITableEmailDisplay,At as UITableEmptyDisplay,St as UITableFilter,ut as UITableFooter,jt as UITableFooterRow,Ot as UITableHead,mt as UITableHeadCell,ct as UITableHeadCellOption,ht as UITableHeadCellSelect,bt as UITableHeadRow,Ct as UITableInnerTable,pt as UITableInnerWrapper,Xe as UITableListDisplay,ft as UITableLoadMore,rt as UITableMoreButton,tt as UITableNameDisplay,et as UITablePermalink,_t as UITablePhoneNumberDisplay,Ge as UITableProgressDisplay,lt as UITableProvider,vt as UITableRemoveButton,Dt as UITableRow,nt as UITableStatisticDisplay,Je as UITableStatusDisplay,gt as UITableSummaryBar,Et as UITableTooltip,xt as UITableTooltipActions,wt as UITableTooltipFilter,Ye as UITableUserDataDisplay,yt as UITableWrapper,Jr as UploadImageBtn,F as UserDataDisplay,Hr as VerifyEmailPage,x as badgeVariants,si as buttonGroupVariants,ja as navigationMenuTriggerStyle,n as paragraphVariants,Ua as toast,ro as toggleVariants,Sa as useDebounce,Gi as useFormField,tr as useTanStackFieldContext,Xn as useTanStackForm,$n as useTanStackFormContext,Gn as withTanStackFieldGroup,Rn 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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
|
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":["
|
|
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{
|
|
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":["
|
|
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
|
|
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":["
|
|
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{
|
|
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":["
|
|
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"}
|
package/dist/pages/LoginPage.cjs
CHANGED
|
@@ -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"),
|
|
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":"gVAkCA,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,YAAD,CAAA,SAAc,CAAmB,CAAA,GACjC,EAAA,EAAA,IAAA,CAACC,EAAAA,kBAAD,CAAA,SAAoB,CAA4B,CAAA,CACpC,CAAA,CAAA,GAEd,EAAA,EAAA,KAAA,CAAC,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,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
|
+
{"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":"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"}
|
package/dist/pages/LoginPage.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use client";import{Button as e}from"../ui/button.mjs";import{Dialog as
|
|
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
|
|
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
|
|
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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotAuthorized.cjs","names":["ShieldAlert","Button"],"sources":["../../packages/components/pages/NotAuthorized.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"NotAuthorized.cjs","names":["LunasLogo","ShieldAlert","Button"],"sources":["../../packages/components/pages/NotAuthorized.tsx"],"sourcesContent":["'use client';\n\nimport { Button } from '../ui/button';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { ShieldAlert } from 'lucide-react';\nimport { LunasLogo } from '../features/logo';\n\nexport interface NotAuthorizedProps {\n /** Main heading shown beneath the shield icon. Defaults to `'Quyền truy cập bị từ chối'`. */\n title?: string;\n /** Supporting text shown below the title. Defaults to a Vietnamese access-denied 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 `ShieldAlert` icon. */\n iconClassName?: string;\n}\n\n/**\n * Full-page 403 error screen shown when the current user lacks permission to access a resource.\n *\n * @example\n * ```tsx\n * import { NotAuthorized } from '@customafk/lunas-ui/pages/NotAuthorized';\n *\n * <NotAuthorized\n * title=\"Access Denied\"\n * subtitle=\"You do not have permission to view this page.\"\n * buttonText=\"Go Back\"\n * onButtonClick={() => router.push('/')}\n * />\n * ```\n */\nexport const NotAuthorized = ({\n title = 'Quyền truy cập bị từ chối',\n subtitle = 'Xin lỗi, bạn không có quyền truy cập vào trang này.',\n buttonText = 'Quay lại',\n onButtonClick = () => window.history.back(),\n className,\n iconClassName,\n}: NotAuthorizedProps) => {\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 <ShieldAlert className={cn('size-16 sm:size-24 text-primary', iconClassName)} />\n <div className=\"text-4xl sm:text-6xl font-bold text-primary\">403</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 NotAuthorized;\n"],"mappings":"iSAqCA,MAAa,GAAiB,CAC5B,QAAQ,4BACR,WAAW,sDACX,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,YAAD,CAAa,WAAA,EAAA,EAAA,GAAA,CAAc,kCAAmC,CAAa,CAAI,CAAA,GAC/E,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,uDAA8C,KAAQ,CAAA,CAClE,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{
|
|
1
|
+
"use client";import{Button as e}from"../ui/button.mjs";import{LunasLogo as t}from"../features/logo/index.mjs";import{ShieldAlert 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=`Quyền truy cập bị từ chối`,subtitle:s=`Xin lỗi, bạn không có quyền truy cập vào trang này.`,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-primary`,d)}),i(`div`,{className:`text-4xl sm:text-6xl font-bold text-primary`,children:`403`})]}),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 NotAuthorized,o as default};
|
|
2
2
|
//# sourceMappingURL=NotAuthorized.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotAuthorized.mjs","names":[],"sources":["../../packages/components/pages/NotAuthorized.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"NotAuthorized.mjs","names":[],"sources":["../../packages/components/pages/NotAuthorized.tsx"],"sourcesContent":["'use client';\n\nimport { Button } from '../ui/button';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { ShieldAlert } from 'lucide-react';\nimport { LunasLogo } from '../features/logo';\n\nexport interface NotAuthorizedProps {\n /** Main heading shown beneath the shield icon. Defaults to `'Quyền truy cập bị từ chối'`. */\n title?: string;\n /** Supporting text shown below the title. Defaults to a Vietnamese access-denied 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 `ShieldAlert` icon. */\n iconClassName?: string;\n}\n\n/**\n * Full-page 403 error screen shown when the current user lacks permission to access a resource.\n *\n * @example\n * ```tsx\n * import { NotAuthorized } from '@customafk/lunas-ui/pages/NotAuthorized';\n *\n * <NotAuthorized\n * title=\"Access Denied\"\n * subtitle=\"You do not have permission to view this page.\"\n * buttonText=\"Go Back\"\n * onButtonClick={() => router.push('/')}\n * />\n * ```\n */\nexport const NotAuthorized = ({\n title = 'Quyền truy cập bị từ chối',\n subtitle = 'Xin lỗi, bạn không có quyền truy cập vào trang này.',\n buttonText = 'Quay lại',\n onButtonClick = () => window.history.back(),\n className,\n iconClassName,\n}: NotAuthorizedProps) => {\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 <ShieldAlert className={cn('size-16 sm:size-24 text-primary', iconClassName)} />\n <div className=\"text-4xl sm:text-6xl font-bold text-primary\">403</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 NotAuthorized;\n"],"mappings":"+PAqCA,MAAa,GAAiB,CAC5B,QAAQ,4BACR,WAAW,sDACX,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,CAAa,UAAW,EAAG,kCAAmC,CAAa,CAAI,CAAA,EAC/E,EAAC,MAAD,CAAK,UAAU,uDAA8C,KAAQ,CAAA,CAClE,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"}
|
package/dist/pages/NotFound.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=require("../ui/button.cjs");let
|
|
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=`Không tìm thấy trang`,subtitle:o=`Xin lỗi, trang bạn đang tìm kiếm không tồn tại hoặc đã bị di chuyển.`,buttonText:s=`Trở về trang chủ`,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.FileQuestion,{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:`404`})]}),(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.NotFound=a,exports.default=a;
|
|
2
2
|
//# sourceMappingURL=NotFound.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotFound.cjs","names":["FileQuestion","Button"],"sources":["../../packages/components/pages/NotFound.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"NotFound.cjs","names":["LunasLogo","FileQuestion","Button"],"sources":["../../packages/components/pages/NotFound.tsx"],"sourcesContent":["'use client';\n\nimport { Button } from '../ui/button';\nimport { cn } from '@customafk/react-toolkit/utils';\nimport { FileQuestion } from 'lucide-react';\nimport { LunasLogo } from '../features/logo';\n\nexport interface NotFoundProps {\n /** Main heading shown beneath the file-question icon. Defaults to `'Không tìm thấy trang'`. */\n title?: string;\n /** Supporting text shown below the title. Defaults to a Vietnamese 404 message. */\n subtitle?: string;\n /** Label for the action button. Defaults to `'Trở về trang chủ'`. */\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 `FileQuestion` icon. */\n iconClassName?: string;\n}\n\n/**\n * Full-page 404 error screen displayed when a requested route or resource does not exist.\n *\n * @example\n * ```tsx\n * import { NotFound } from '@customafk/lunas-ui/pages/NotFound';\n *\n * <NotFound\n * title=\"Page Not Found\"\n * subtitle=\"The page you are looking for does not exist.\"\n * buttonText=\"Go Home\"\n * onButtonClick={() => router.push('/')}\n * />\n * ```\n */\nexport const NotFound = ({\n title = 'Không tìm thấy trang',\n subtitle = 'Xin lỗi, trang bạn đang tìm kiếm không tồn tại hoặc đã bị di chuyển.',\n buttonText = 'Trở về trang chủ',\n onButtonClick = () => window.history.back(),\n className,\n iconClassName,\n}: NotFoundProps) => {\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 <FileQuestion className={cn('size-16 sm:size-24 text-primary', iconClassName)} />\n <div className=\"text-4xl sm:text-6xl font-bold text-primary\">404</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 NotFound;\n"],"mappings":"iSAqCA,MAAa,GAAY,CACvB,QAAQ,uBACR,WAAW,uEACX,aAAa,mBACb,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,kCAAmC,CAAa,CAAI,CAAA,GAChF,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,uDAA8C,KAAQ,CAAA,CAClE,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"}
|