@dsbtek/component-library 1.0.0 → 1.0.2
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/README.md +330 -7
- package/dist/index.d.mts +12 -1
- package/dist/index.d.ts +12 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +8 -2
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/utils.tsx","../src/shadcn/ui/table.tsx","../src/shadcn/ui/button.tsx","../src/shadcn/ui/input.tsx","../src/shadcn/ui/select.tsx","../src/shadcn/ui/checkbox.tsx","../src/shadcn/ui/avatar.tsx","../src/shadcn/ui/badge.tsx","../src/shadcn/ui/tooltip.tsx","../src/advanced-data-table/index.tsx","../src/shadcn/ui/dialog.tsx","../src/shadcn/ui/command.tsx","../src/shadcn/ui/popover.tsx","../src/advanced-combobox/index.tsx"],"names":["cn","inputs","twMerge","clsx","Table","className","props","ref","jsx","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","buttonVariants","cva","Button","ce","variant","size","asChild","Slot","Input","de","type","Select","SelectTrigger","T","children","jsxs","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator","Checkbox","ve","Avatar","U","AvatarImage","AvatarFallback","TooltipContent","he","sideOffset","AdvancedDataTable","columns","fetchData","itemsPerPageOptions","data","setData","useState","loading","setLoading","currentPage","setCurrentPage","itemsPerPage","setItemsPerPage","sortColumn","setSortColumn","sortOrder","setSortOrder","filters","setFilters","selectedRows","setSelectedRows","meta","setMeta","useEffect","loadData","result","error","handleSort","column","handleFilter","value","prev","toggleRowSelection","id","newSelectedRows","toggleAllRows","item","renderCell","e","option","ArrowUpDown","DialogPortal","DialogOverlay","F","DialogContent","X","DialogTitle","DialogDescription","Command","S","CommandPrimitive","CommandInput","Search","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","Popover","PopoverTrigger","PopoverContent","Ne","align","AdvancedCombobox","items","placeholder","onSelect","multiple","searchable","_a","open","setOpen","B","setValue","search","setSearch","filteredItems","handleSelect","currentValue","v","ChevronsUpDown"],"mappings":"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","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","'use client';\n\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../../lib/utils';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground shadow hover:bg-primary/90',\n destructive:\n 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',\n outline:\n 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground',\n secondary:\n 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 rounded-md px-3 text-xs',\n lg: 'h-10 rounded-md px-8',\n icon: 'h-9 w-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","import * as React from \"react\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport {cn} from \"../../../lib/utils\";\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...props}\n />\n))\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","\"use client\"\n\nimport type React from \"react\"\nimport { useState, useEffect } from \"react\"\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"../shadcn/ui/table\"\nimport { Button } from \"../shadcn/ui/button\"\nimport { Input } from \"../shadcn/ui/input\"\nimport { Select } from \"../shadcn/ui/select\"\nimport { Checkbox } from \"../shadcn/ui/checkbox\"\nimport { ArrowUpDown } from \"lucide-react\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"../shadcn/ui/avatar\"\nimport { Badge } from \"../shadcn/ui/badge\"\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../shadcn/ui/tooltip\"\n\ninterface Column<T> {\n accessor: keyof T | ((item: T) => React.ReactNode)\n header: string\n sortable?: boolean\n filterable?: boolean\n cell?: (value: any, item: T) => React.ReactNode\n}\n\ninterface AdvancedDataTableProps<T> {\n columns: Column<T>[]\n fetchData: (params: {\n page: number\n perPage: number\n sortBy?: string\n sortOrder?: \"asc\" | \"desc\"\n filters?: Record<string, string>\n }) => Promise<{\n data: T[]\n meta: {\n current_page: number\n last_page: number\n per_page: number\n total: number\n }\n }>\n itemsPerPageOptions?: number[]\n}\n\nexport function AdvancedDataTable<T extends Record<string, any>>({\n columns,\n fetchData,\n itemsPerPageOptions = [10, 20, 50],\n }: AdvancedDataTableProps<T>) {\n const [data, setData] = useState<T[]>([])\n const [loading, setLoading] = useState(true)\n const [currentPage, setCurrentPage] = useState(1)\n const [itemsPerPage, setItemsPerPage] = useState(itemsPerPageOptions[0])\n const [sortColumn, setSortColumn] = useState<keyof T | null>(null)\n const [sortOrder, setSortOrder] = useState<\"asc\" | \"desc\">(\"asc\")\n const [filters, setFilters] = useState<Record<string, string>>({})\n const [selectedRows, setSelectedRows] = useState<Set<number>>(new Set())\n const [meta, setMeta] = useState<{\n current_page: number\n last_page: number\n per_page: number\n total: number\n } | null>(null)\n\n useEffect(() => {\n loadData()\n }, [fetchData, currentPage, itemsPerPage, sortColumn, sortOrder, filters]) //Fixed useEffect dependency\n\n const loadData = async () => {\n setLoading(true)\n try {\n const result = await fetchData({\n page: currentPage,\n perPage: itemsPerPage,\n sortBy: sortColumn as string,\n sortOrder,\n filters,\n })\n setData(result.data)\n setMeta(result.meta)\n } catch (error) {\n console.error(\"Error fetching data:\", error)\n } finally {\n setLoading(false)\n }\n }\n\n const handleSort = (column: keyof T) => {\n if (sortColumn === column) {\n setSortOrder(sortOrder === \"asc\" ? \"desc\" : \"asc\")\n } else {\n setSortColumn(column)\n setSortOrder(\"asc\")\n }\n }\n\n const handleFilter = (column: keyof T, value: string) => {\n setFilters((prev) => ({ ...prev, [column]: value }))\n setCurrentPage(1)\n }\n\n const toggleRowSelection = (id: number) => {\n const newSelectedRows = new Set(selectedRows)\n if (newSelectedRows.has(id)) {\n newSelectedRows.delete(id)\n } else {\n newSelectedRows.add(id)\n }\n setSelectedRows(newSelectedRows)\n }\n\n const toggleAllRows = () => {\n if (selectedRows.size === data.length) {\n setSelectedRows(new Set())\n } else {\n setSelectedRows(new Set(data.map((item) => item.id)))\n }\n }\n\n const renderCell = (item: T, column: Column<T>) => {\n if (column.cell) {\n return column.cell(item[column.accessor as keyof T], item)\n }\n if (typeof column.accessor === \"function\") {\n return column.accessor(item)\n }\n return item[column.accessor as keyof T]\n }\n\n return (\n <div>\n <div className=\"flex justify-between mb-4\">\n <div className=\"flex space-x-2\">\n {columns\n .filter((column) => column.filterable)\n .map((column) => (\n <Input\n key={column.accessor as string}\n placeholder={`Filter ${column.header}`}\n value={filters[column.accessor as string] || \"\"}\n onChange={(e) => handleFilter(column.accessor as keyof T, e.target.value)}\n className=\"w-40\"\n />\n ))}\n </div>\n <Select\n value={itemsPerPage.toString()}\n onValueChange={(value) => {\n setItemsPerPage(Number(value))\n setCurrentPage(1)\n }}\n >\n {itemsPerPageOptions.map((option) => (\n <option key={option} value={option.toString()}>\n {option} per page\n </option>\n ))}\n </Select>\n </div>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead className=\"w-[50px]\">\n <Checkbox checked={selectedRows.size === data.length} onCheckedChange={toggleAllRows} />\n </TableHead>\n {columns.map((column) => (\n <TableHead\n key={column.accessor as string}\n className={column.sortable ? \"cursor-pointer\" : \"\"}\n onClick={() => column.sortable && handleSort(column.accessor as keyof T)}\n >\n <div className=\"flex items-center\">\n {column.header}\n {column.sortable && <ArrowUpDown className=\"ml-2 h-4 w-4\" />}\n </div>\n </TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {loading ? (\n <TableRow>\n <TableCell colSpan={columns.length + 1} className=\"h-24 text-center\">\n Loading...\n </TableCell>\n </TableRow>\n ) : data.length === 0 ? (\n <TableRow>\n <TableCell colSpan={columns.length + 1} className=\"h-24 text-center\">\n No results found.\n </TableCell>\n </TableRow>\n ) : (\n data.map((item) => (\n <TableRow key={item.id} className={selectedRows.has(item.id) ? \"bg-muted\" : \"\"}>\n <TableCell>\n <Checkbox checked={selectedRows.has(item.id)} onCheckedChange={() => toggleRowSelection(item.id)} />\n </TableCell>\n {columns.map((column) => (\n <TableCell key={column.accessor as string}>{renderCell(item, column)}</TableCell>\n ))}\n </TableRow>\n ))\n )}\n </TableBody>\n </Table>\n {meta && (\n <div className=\"flex justify-between items-center mt-4\">\n <div>\n Showing {(meta.current_page - 1) * meta.per_page + 1} to{\" \"}\n {Math.min(meta.current_page * meta.per_page, meta.total)} of {meta.total} entries\n </div>\n <div className=\"flex space-x-2\">\n <Button onClick={() => setCurrentPage((prev) => Math.max(prev - 1, 1))} disabled={currentPage === 1}>\n Previous\n </Button>\n <Button\n onClick={() => setCurrentPage((prev) => Math.min(prev + 1, meta.last_page))}\n disabled={currentPage === meta.last_page}\n >\n Next\n </Button>\n </div>\n </div>\n )}\n </div>\n )\n}\n\n// Custom cell renderers\nexport const AvatarCell = ({ value }: { value: string }) => (\n <Avatar>\n <AvatarImage src={value} alt=\"Avatar\" />\n <AvatarFallback>Avatar</AvatarFallback>\n </Avatar>\n)\n\nexport const BadgeCell = ({ value }: { value: string }) => <Badge variant=\"outline\">{value}</Badge>\n\nexport const TooltipCell = ({ value, tooltip }: { value: string; tooltip: string }) => (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger>{value}</TooltipTrigger>\n <TooltipContent>\n <p>{tooltip}</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n)\n\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\n\nimport {cn} from \"../../../lib/utils\";\nimport {Dialog, DialogContent} from \"./dialog\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({\n className,\n ...props\n }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverAnchor = PopoverPrimitive.Anchor\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","// 'use client';\n\nimport * as React from 'react';\nimport { Check, ChevronsUpDown } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\nimport { Button } from '../shadcn/ui/button';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n} from '../shadcn/ui/command';\nimport { Popover, PopoverContent, PopoverTrigger } from '../shadcn/ui/popover';\n\ninterface ComboboxItem {\n value: string;\n label: string;\n}\n\ninterface AdvancedComboboxProps {\n items: ComboboxItem[];\n placeholder: string;\n onSelect: (value: string) => void;\n multiple?: boolean;\n searchable?: boolean;\n}\n\nexport function AdvancedCombobox({\n items,\n placeholder,\n onSelect,\n multiple = false,\n searchable = true,\n}: AdvancedComboboxProps) {\n const [open, setOpen] = React.useState(false);\n const [value, setValue] = React.useState<string[]>([]);\n const [search, setSearch] = React.useState('');\n\n const filteredItems = React.useMemo(() => {\n if (!searchable || !search) return items;\n return items.filter(\n (item) =>\n item.label.toLowerCase().includes(search.toLowerCase()) ||\n item.value.toLowerCase().includes(search.toLowerCase()),\n );\n }, [items, search, searchable]);\n\n const handleSelect = (currentValue: string) => {\n if (multiple) {\n setValue((prev) => {\n if (prev.includes(currentValue)) {\n return prev.filter((v) => v !== currentValue);\n } else {\n return [...prev, currentValue];\n }\n });\n } else {\n setValue([currentValue]);\n setOpen(false);\n }\n onSelect(currentValue);\n };\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className=\"w-[200px] justify-between\"\n >\n {value.length > 0\n ? multiple\n ? `${value.length} selected`\n : items.find((item) => item.value === value[0])\n ?.label\n : placeholder}\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[200px] p-0\">\n <Command>\n {searchable && (\n <CommandInput\n placeholder={`Search ${placeholder.toLowerCase()}...`}\n onValueChange={setSearch}\n />\n )}\n <CommandEmpty>No item found.</CommandEmpty>\n <CommandGroup>\n {filteredItems.map((item) => (\n <CommandItem\n key={item.value}\n onSelect={() => handleSelect(item.value)}\n >\n <Check\n className={cn(\n 'mr-2 h-4 w-4',\n value.includes(item.value)\n ? 'opacity-100'\n : 'opacity-0',\n )}\n />\n {item.label}\n </CommandItem>\n ))}\n </CommandGroup>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../lib/utils.tsx","../src/shadcn/ui/table.tsx","../src/shadcn/ui/button.tsx","../src/shadcn/ui/input.tsx","../src/shadcn/ui/select.tsx","../src/shadcn/ui/checkbox.tsx","../src/shadcn/ui/avatar.tsx","../src/shadcn/ui/badge.tsx","../src/shadcn/ui/tooltip.tsx","../src/advanced-data-table/index.tsx","../src/shadcn/ui/dialog.tsx","../src/shadcn/ui/command.tsx","../src/shadcn/ui/popover.tsx","../src/advanced-combobox/index.tsx","../src/shadcn/ui/calendar.tsx","../src/shadcn/ui/label.tsx","../src/shadcn/ui/switch.tsx","../src/date-time-picker/index.tsx"],"names":["cn","inputs","twMerge","clsx","Table","className","props","ref","jsx","TableHeader","TableBody","TableFooter","TableRow","TableHead","TableCell","TableCaption","buttonVariants","cva","Button","De","variant","size","asChild","Slot","Input","ke","type","Select","SelectTrigger","V","children","jsxs","ChevronDown","SelectScrollUpButton","ChevronUp","SelectScrollDownButton","SelectContent","position","SelectLabel","SelectItem","Check","SelectSeparator","Checkbox","Ae","Avatar","le","AvatarImage","AvatarFallback","TooltipContent","We","sideOffset","AdvancedDataTable","columns","fetchData","itemsPerPageOptions","data","setData","useState","loading","setLoading","currentPage","setCurrentPage","itemsPerPage","setItemsPerPage","sortColumn","setSortColumn","sortOrder","setSortOrder","filters","setFilters","selectedRows","setSelectedRows","meta","setMeta","useEffect","loadData","result","error","handleSort","column","handleFilter","value","prev","toggleRowSelection","id","newSelectedRows","toggleAllRows","item","renderCell","e","option","ArrowUpDown","DialogPortal","DialogOverlay","oe","DialogContent","X","DialogTitle","DialogDescription","Command","F","CommandPrimitive","CommandInput","Search","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","Popover","PopoverTrigger","PopoverContent","Ue","align","AdvancedCombobox","items","placeholder","onSelect","multiple","searchable","_a","open","setOpen","Q","setValue","search","setSearch","filteredItems","handleSelect","currentValue","v","ChevronsUpDown","Calendar","classNames","showOutsideDays","DayPicker","ChevronLeft","ChevronRight","labelVariants","Label","$e","Switch","qe","DateTimePicker","mode","selected","disabledDates","fromDate","toDate","date","setDate","q","range","setRange","isOpen","setIsOpen","showSeconds","setShowSeconds","debouncedHandleTimeChange","useDebounce","newDate","handleTimeChange","isEndTime","timeValue","parsedTime","parseTimeString","formatDate","format","fromTime","toTime","handleClear","timeString","parse","isValid","Clock","CalendarIcon","Fragment"],"mappings":"62BAGO,SAASA,CAAMC,CAAAA,GAAAA,CAAAA,CAAsB,CACxC,OAAOC,OAAQC,CAAAA,IAAAA,CAAKF,CAAM,CAAC,CAC/B,CCDA,IAAMG,EAAAA,CAAc,CAGlB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAA,CAAAC,EAAW,GAAGC,CAAM,EAAGC,CACxBC,GAAAA,GAAAA,CAAC,OAAI,SAAU,CAAA,+BAAA,CACX,QAAAA,CAAAA,GAAAA,CAAC,OACG,CAAA,CAAA,GAAA,CAAKD,EACL,SAAWP,CAAAA,CAAAA,CAAG,gCAAiCK,CAAS,CAAA,CACvD,GAAGC,CACR,CAAA,CAAA,CACJ,CACH,CACDF,CAAAA,EAAAA,CAAM,YAAc,OAEpB,CAAA,IAAMK,GAAoB,CAGxB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAAJ,CAAAA,CAAAA,CAAW,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GACxBC,IAAC,OAAM,CAAA,CAAA,GAAA,CAAKD,EAAK,SAAWP,CAAAA,CAAAA,CAAG,kBAAmBK,CAAS,CAAA,CAAI,GAAGC,CAAAA,CAAO,CAC5E,CAAA,CACDG,GAAY,WAAc,CAAA,aAAA,CAE1B,IAAMC,EAAkB,CAAA,CAAA,CAAA,UAAA,CAGtB,CAAC,CAAE,SAAA,CAAAL,CAAW,CAAA,GAAGC,CAAM,CAAA,CAAGC,IACxBC,GAAC,CAAA,OAAA,CAAA,CACG,IAAKD,CACL,CAAA,SAAA,CAAWP,EAAG,4BAA8BK,CAAAA,CAAS,EACpD,GAAGC,CAAAA,CACR,CACH,CACDI,CAAAA,EAAAA,CAAU,YAAc,WAExB,CAAA,IAAMC,GAAoB,CAGxB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAA,CAAAN,CAAW,CAAA,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GACxBC,IAAC,OACG,CAAA,CAAA,GAAA,CAAKD,EACL,SAAWP,CAAAA,CAAAA,CACP,yDACAK,CAAAA,CACJ,CACC,CAAA,GAAGC,EACR,CACH,CAAA,CACDK,GAAY,WAAc,CAAA,aAAA,CAE1B,IAAMC,CAAiB,CAAA,CAAA,CAAA,UAAA,CAGrB,CAAC,CAAE,SAAAP,CAAAA,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,IACxBC,GAAC,CAAA,IAAA,CAAA,CACG,IAAKD,CACL,CAAA,SAAA,CAAWP,CACP,CAAA,6EAAA,CACAK,CACJ,CAAA,CACC,GAAGC,CACR,CAAA,CACH,EACDM,CAAS,CAAA,WAAA,CAAc,WAEvB,IAAMC,EAAAA,CAAkB,CAGtB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAA,CAAAR,EAAW,GAAGC,CAAM,EAAGC,CACxBC,GAAAA,GAAAA,CAAC,MACG,GAAKD,CAAAA,CAAAA,CACL,SAAWP,CAAAA,CAAAA,CACP,wIACAK,CAAAA,CACJ,EACC,GAAGC,CAAAA,CACR,CACH,CACDO,CAAAA,EAAAA,CAAU,YAAc,WAExB,CAAA,IAAMC,CAAkB,CAAA,CAAA,CAAA,UAAA,CAGtB,CAAC,CAAE,UAAAT,CAAW,CAAA,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GACxBC,IAAC,IACG,CAAA,CAAA,GAAA,CAAKD,EACL,SAAWP,CAAAA,CAAAA,CACP,uFACAK,CACJ,CAAA,CACC,GAAGC,CACR,CAAA,CACH,EACDQ,CAAU,CAAA,WAAA,CAAc,WAExB,CAAA,IAAMC,EAAqB,CAAA,CAAA,CAAA,UAAA,CAGzB,CAAC,CAAE,SAAA,CAAAV,EAAW,GAAGC,CAAM,EAAGC,CACxBC,GAAAA,GAAAA,CAAC,SACG,CAAA,CAAA,GAAA,CAAKD,CACL,CAAA,SAAA,CAAWP,EAAG,oCAAsCK,CAAAA,CAAS,EAC5D,GAAGC,CAAAA,CACR,CACH,CACDS,CAAAA,EAAAA,CAAa,WAAc,CAAA,cAAA,CCpG3B,IAAMC,GAAiBC,GACnB,CAAA,uSAAA,CACA,CACI,QAAU,CAAA,CACN,QAAS,CACL,OAAA,CACI,+DACJ,CAAA,WAAA,CACI,8EACJ,CAAA,OAAA,CACI,2FACJ,SACI,CAAA,wEAAA,CACJ,MAAO,8CACP,CAAA,IAAA,CAAM,iDACV,CACA,CAAA,IAAA,CAAM,CACF,OAAA,CAAS,eACT,CAAA,EAAA,CAAI,8BACJ,EAAI,CAAA,sBAAA,CACJ,KAAM,SACV,CACJ,EACA,eAAiB,CAAA,CACb,OAAS,CAAA,SAAA,CACT,IAAM,CAAA,SACV,CACJ,CACJ,CAAA,CAQMC,EAAeC,CACjB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAAd,CAAAA,CAAAA,CAAW,QAAAe,CAAS,CAAA,IAAA,CAAAC,EAAM,OAAAC,CAAAA,CAAAA,CAAU,MAAO,GAAGhB,CAAM,EAAGC,CAGlDC,GAAAA,GAAAA,CAFSc,CAAUC,CAAAA,IAAAA,CAAO,QAEzB,CAAA,CACG,UAAWvB,CAAGgB,CAAAA,EAAAA,CAAe,CAAE,OAAAI,CAAAA,CAAAA,CAAS,KAAAC,CAAM,CAAA,SAAA,CAAAhB,CAAU,CAAC,CAAC,CAAA,CAC1D,IAAKE,CACJ,CAAA,GAAGD,EACR,CAGZ,CAAA,CACAY,EAAO,WAAc,CAAA,QAAA,CCpDrB,IAAMM,EAAcC,CAChB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAApB,CAAAA,CAAAA,CAAW,IAAAqB,CAAAA,CAAAA,CAAM,GAAGpB,CAAM,EAAGC,CAExBC,GAAAA,GAAAA,CAAC,SACG,IAAMkB,CAAAA,CAAAA,CACN,UAAW1B,CACP,CAAA,yWAAA,CACAK,CACJ,CAAA,CACA,GAAKE,CAAAA,CAAAA,CACJ,GAAGD,CACR,CAAA,CAGZ,EACAkB,CAAM,CAAA,WAAA,CAAc,QCXpB,IAAMG,EAAAA,CAAyB,OAM/B,IAAMC,EAAAA,CAAsBC,aAG1B,CAAC,CAAE,UAAAxB,CAAW,CAAA,QAAA,CAAAyB,EAAU,GAAGxB,CAAM,EAAGC,CAClCwB,GAAAA,IAAAA,CAAiB,UAAhB,CACG,GAAA,CAAKxB,CACL,CAAA,SAAA,CAAWP,CACP,CAAA,yTAAA,CACAK,CACJ,CACC,CAAA,GAAGC,EAEH,QAAAwB,CAAAA,CAAAA,CAAAA,CACDtB,IAAiB,CAAhB,CAAA,IAAA,CAAA,CAAqB,OAAO,CAAA,IAAA,CACzB,QAAAA,CAAAA,GAAAA,CAACwB,YAAA,CAAY,SAAA,CAAU,qBAAqB,CAChD,CAAA,CAAA,CAAA,CACJ,CACH,CACDJ,CAAAA,EAAAA,CAAc,WAA8B,CAAA,CAAA,CAAA,OAAA,CAAQ,WAEpD,CAAA,IAAMK,GAA6BJ,CAGjC,CAAA,UAAA,CAAA,CAAC,CAAE,SAAAxB,CAAAA,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,IACxBC,GAAiB,CAAA,CAAA,CAAA,cAAA,CAAhB,CACG,GAAKD,CAAAA,CAAAA,CACL,UAAWP,CACP,CAAA,sDAAA,CACAK,CACJ,CACC,CAAA,GAAGC,CAEJ,CAAA,QAAA,CAAAE,GAAC0B,CAAAA,SAAAA,CAAA,CAAU,SAAU,CAAA,SAAA,CAAU,EACnC,CACH,CAAA,CACDD,GAAqB,WAA8B,CAAA,CAAA,CAAA,cAAA,CAAe,WAElE,CAAA,IAAME,EAA+B,CAAAN,CAAA,CAAA,UAAA,CAGnC,CAAC,CAAE,SAAA,CAAAxB,EAAW,GAAGC,CAAM,EAAGC,CACxBC,GAAAA,GAAAA,CAAiB,CAAhB,CAAA,gBAAA,CAAA,CACG,GAAKD,CAAAA,CAAAA,CACL,UAAWP,CACP,CAAA,sDAAA,CACAK,CACJ,CACC,CAAA,GAAGC,EAEJ,QAAAE,CAAAA,GAAAA,CAACwB,YAAA,CAAY,SAAA,CAAU,UAAU,CACrC,CAAA,CACH,EACDG,EAAuB,CAAA,WAAA,CACH,mBAAiB,WAErC,CAAA,IAAMC,EAAsB,CAAAP,CAAA,CAAA,UAAA,CAG1B,CAAC,CAAE,UAAAxB,CAAW,CAAA,QAAA,CAAAyB,EAAU,QAAAO,CAAAA,CAAAA,CAAW,SAAU,GAAG/B,CAAM,CAAGC,CAAAA,CAAAA,GACvDC,GAAiB,CAAA,CAAA,CAAA,MAAA,CAAhB,CACG,QAAAuB,CAAAA,IAAAA,CAAiB,UAAhB,CACG,GAAA,CAAKxB,EACL,SAAWP,CAAAA,CAAAA,CACP,qcACAqC,CAAAA,CAAAA,GAAa,QACb,EAAA,iIAAA,CACAhC,CACJ,CACA,CAAA,QAAA,CAAUgC,EACT,GAAG/B,CAAAA,CAEJ,UAAAE,GAACyB,CAAAA,EAAAA,CAAA,EAAqB,CAAA,CACtBzB,GAAiB,CAAA,CAAA,CAAA,QAAA,CAAhB,CACG,SAAWR,CAAAA,CAAAA,CACP,MACAqC,CAAa,GAAA,QAAA,EACb,yFACJ,CAEC,CAAA,QAAA,CAAAP,CACL,CAAA,CAAA,CACAtB,GAAC2B,CAAAA,EAAAA,CAAA,EAAuB,CAC5B,CAAA,CAAA,CAAA,CACJ,CACH,CACDC,CAAAA,EAAAA,CAAc,YAA8B,CAAQ,CAAA,OAAA,CAAA,WAAA,CAEpD,IAAME,EAAAA,CAAoBT,CAGxB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAAxB,CAAAA,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,IACxBC,GAAiB,CAAA,CAAA,CAAA,KAAA,CAAhB,CACG,GAAA,CAAKD,CACL,CAAA,SAAA,CAAWP,EAAG,mCAAqCK,CAAAA,CAAS,EAC3D,GAAGC,CAAAA,CACR,CACH,CACDgC,CAAAA,EAAAA,CAAY,YAA8B,CAAM,CAAA,KAAA,CAAA,WAAA,CAEhD,IAAMC,EAAmB,CAAAV,CAAA,CAAA,UAAA,CAGvB,CAAC,CAAE,SAAA,CAAAxB,EAAW,QAAAyB,CAAAA,CAAAA,CAAU,GAAGxB,CAAM,CAAGC,CAAAA,CAAAA,GAClCwB,KAAiB,CAAhB,CAAA,IAAA,CAAA,CACG,IAAKxB,CACL,CAAA,SAAA,CAAWP,EACP,2NACAK,CAAAA,CACJ,CACC,CAAA,GAAGC,CAER,CAAA,QAAA,CAAA,CAAAE,IAAC,MAAK,CAAA,CAAA,SAAA,CAAU,gEACd,QAAAA,CAAAA,GAAAA,CAAiB,gBAAhB,CACC,QAAA,CAAAA,GAACgC,CAAAA,KAAAA,CAAA,CAAM,SAAA,CAAU,UAAU,CAC7B,CAAA,CAAA,CACF,EACIhC,GAAiB,CAAA,CAAA,CAAA,QAAA,CAAhB,CAA0B,QAAAsB,CAAAA,CAAAA,CAAS,CACxC,CAAA,CAAA,CACH,CACDS,CAAAA,EAAAA,CAAW,YAA8B,CAAK,CAAA,IAAA,CAAA,WAAA,CAE9C,IAAME,EAAwB,CAAAZ,CAAA,CAAA,UAAA,CAG5B,CAAC,CAAE,SAAA,CAAAxB,CAAW,CAAA,GAAGC,CAAM,CAAA,CAAGC,IACxBC,GAAiB,CAAA,CAAA,CAAA,SAAA,CAAhB,CACG,GAAKD,CAAAA,CAAAA,CACL,UAAWP,CAAG,CAAA,0BAAA,CAA4BK,CAAS,CAAA,CAClD,GAAGC,CAAAA,CACR,CACH,CACDmC,CAAAA,EAAAA,CAAgB,YAA8B,CAAU,CAAA,SAAA,CAAA,WAAA,CCzIxD,IAAMC,EAAiB,CAAAC,CAAA,CAAA,UAAA,CAGrB,CAAC,CAAE,SAAA,CAAAtC,EAAW,GAAGC,CAAM,EAAGC,CACxBC,GAAAA,GAAAA,CAAmB,QAAlB,CACG,GAAA,CAAKD,CACL,CAAA,SAAA,CAAWP,CACP,CAAA,oQAAA,CACAK,CACJ,CACC,CAAA,GAAGC,EAEJ,QAAAE,CAAAA,GAAAA,CAAmB,aAAlB,CACG,SAAA,CAAWR,CAAG,CAAA,+CAA+C,CAE7D,CAAA,QAAA,CAAAQ,IAACgC,KAAA,CAAA,CAAM,UAAU,SAAU,CAAA,CAAA,CAC/B,EACJ,CACH,CAAA,CACDE,EAAS,CAAA,WAAA,CAAgC,EAAK,CAAA,IAAA,CAAA,WAAA,CCrB9C,IAAME,EAAe,CAAAC,CAAA,CAAA,UAAA,CAGnB,CAAC,CAAE,SAAA,CAAAxC,EAAW,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GACxBC,GAAiB,CAAA,CAAA,CAAA,IAAA,CAAhB,CACG,GAAKD,CAAAA,CAAAA,CACL,UAAWP,CACP,CAAA,+DAAA,CACAK,CACJ,CACC,CAAA,GAAGC,CACR,CAAA,CACH,CACDsC,CAAAA,EAAAA,CAAO,YAA8B,CAAK,CAAA,IAAA,CAAA,WAAA,CAE1C,IAAME,EAAoB,CAAAD,CAAA,CAAA,UAAA,CAGxB,CAAC,CAAE,SAAA,CAAAxC,CAAW,CAAA,GAAGC,CAAM,CAAA,CAAGC,IACxBC,GAAiB,CAAA,CAAA,CAAA,KAAA,CAAhB,CACG,GAAKD,CAAAA,CAAAA,CACL,UAAWP,CAAG,CAAA,6BAAA,CAA+BK,CAAS,CACrD,CAAA,GAAGC,EACR,CACH,CAAA,CACDwC,GAAY,WAA8B,CAAA,CAAA,CAAA,KAAA,CAAM,YAEhD,IAAMC,EAAAA,CAAuBF,CAG3B,CAAA,UAAA,CAAA,CAAC,CAAE,SAAA,CAAAxC,EAAW,GAAGC,CAAM,EAAGC,CACxBC,GAAAA,GAAAA,CAAiB,WAAhB,CACG,GAAA,CAAKD,CACL,CAAA,SAAA,CAAWP,CACP,CAAA,sEAAA,CACAK,CACJ,CACC,CAAA,GAAGC,EACR,CACH,CAAA,CACDyC,GAAe,WAA8B,CAAA,CAAA,CAAA,QAAA,CAAS,WC7CtD,CAIsB9B,IAClB,sKACA,CAAA,CACI,SAAU,CACN,OAAA,CAAS,CACL,OACI,CAAA,kFAAA,CACJ,UACI,iFACJ,CAAA,WAAA,CACI,+FACJ,OAAS,CAAA,iBACb,CACJ,CAAA,CACA,eAAiB,CAAA,CACb,QAAS,SACb,CACJ,CACJ,ECVA,IAAM+B,EAAAA,CAAuBC,aAG3B,CAAC,CAAE,UAAA5C,CAAW,CAAA,UAAA,CAAA6C,CAAa,CAAA,CAAA,CAAG,GAAG5C,CAAM,EAAGC,CACxCC,GAAAA,GAAAA,CAAkB,SAAjB,CACG,QAAA,CAAAA,IAAkB,CAAjB,CAAA,OAAA,CAAA,CACG,IAAKD,CACL,CAAA,UAAA,CAAY2C,EACZ,SAAWlD,CAAAA,CAAAA,CACP,oXACAK,CACJ,CAAA,CACC,GAAGC,CACR,CAAA,CAAA,CACJ,CACH,CAAA,CACD0C,EAAe,CAAA,WAAA,CAA+B,UAAQ,WCyG1B,CA5FrB,SAASG,EAAAA,CAAiD,CACI,OAAA,CAAAC,CACA,CAAA,SAAA,CAAAC,EACA,mBAAAC,CAAAA,CAAAA,CAAsB,CAAC,EAAI,CAAA,EAAA,CAAI,EAAE,CACrC,CAAA,CAA8B,CAC3F,GAAM,CAACC,CAAAA,CAAMC,CAAO,CAAIC,CAAAA,QAAAA,CAAc,EAAE,CAAA,CAClC,CAACC,CAASC,CAAAA,CAAU,CAAIF,CAAAA,QAAAA,CAAS,IAAI,CAAA,CACrC,CAACG,CAAaC,CAAAA,CAAc,EAAIJ,QAAS,CAAA,CAAC,EAC1C,CAACK,CAAAA,CAAcC,CAAe,CAAA,CAAIN,QAASH,CAAAA,CAAAA,CAAoB,CAAC,CAAC,CAAA,CACjE,CAACU,CAAYC,CAAAA,CAAa,EAAIR,QAAyB,CAAA,IAAI,CAC3D,CAAA,CAACS,CAAWC,CAAAA,CAAY,EAAIV,QAAyB,CAAA,KAAK,EAC1D,CAACW,CAAAA,CAASC,CAAU,CAAIZ,CAAAA,QAAAA,CAAiC,EAAE,CAC3D,CAAA,CAACa,EAAcC,CAAe,CAAA,CAAId,SAAsB,IAAI,GAAK,EACjE,CAACe,CAAAA,CAAMC,CAAO,CAAIhB,CAAAA,QAAAA,CAKd,IAAI,CAEdiB,CAAAA,SAAAA,CAAU,IAAM,CACZC,CAAAA,GACJ,CAAG,CAAA,CAACtB,CAAWO,CAAAA,CAAAA,CAAaE,CAAcE,CAAAA,CAAAA,CAAYE,EAAWE,CAAO,CAAC,EAEzE,IAAMO,CAAAA,CAAW,SAAY,CACzBhB,CAAAA,CAAW,IAAI,CAAA,CACf,GAAI,CACA,IAAMiB,CAAS,CAAA,MAAMvB,EAAU,CAC3B,IAAA,CAAMO,EACN,OAASE,CAAAA,CAAAA,CACT,MAAQE,CAAAA,CAAAA,CACR,SAAAE,CAAAA,CAAAA,CACA,QAAAE,CACJ,CAAC,EACDZ,CAAQoB,CAAAA,CAAAA,CAAO,IAAI,CACnBH,CAAAA,CAAAA,CAAQG,CAAO,CAAA,IAAI,EACvB,CAAA,MAASC,EAAO,CACZ,OAAA,CAAQ,MAAM,sBAAwBA,CAAAA,CAAK,EAC/C,CAAE,OAAA,CACElB,CAAW,CAAA,KAAK,EACpB,CACJ,EAEMmB,EAAcC,CAAAA,CAAAA,EAAoB,CAChCf,CAAee,GAAAA,CAAAA,CACfZ,EAAaD,CAAc,GAAA,KAAA,CAAQ,MAAS,CAAA,KAAK,CAEjDD,EAAAA,CAAAA,CAAcc,CAAM,CACpBZ,CAAAA,CAAAA,CAAa,KAAK,CAE1B,EAAA,CAAA,CAEMa,EAAe,CAACD,CAAAA,CAAiBE,CAAkB,GAAA,CACrDZ,CAAYa,CAAAA,EAAAA,GAAU,CAAE,GAAGA,EAAAA,CAAM,CAACH,CAAM,EAAGE,CAAM,CAAE,CAAA,CAAA,CACnDpB,EAAe,CAAC,EACpB,EAEMsB,CAAsBC,CAAAA,CAAAA,EAAe,CACvC,IAAMC,CAAAA,CAAkB,IAAI,GAAIf,CAAAA,CAAY,CACxCe,CAAAA,CAAAA,CAAgB,GAAID,CAAAA,CAAE,EACtBC,CAAgB,CAAA,MAAA,CAAOD,CAAE,CAEzBC,CAAAA,CAAAA,CAAgB,IAAID,CAAE,CAAA,CAE1Bb,CAAgBc,CAAAA,CAAe,EACnC,CAAA,CAEMC,GAAgB,IAAM,CACpBhB,EAAa,IAASf,GAAAA,CAAAA,CAAK,OAC3BgB,CAAgB,CAAA,IAAI,GAAK,CAAA,CAEzBA,CAAgB,CAAA,IAAI,IAAIhB,CAAK,CAAA,GAAA,CAAKgC,GAASA,CAAK,CAAA,EAAE,CAAC,CAAC,EAE5D,CAEMC,CAAAA,EAAAA,CAAa,CAACD,CAAAA,CAASR,IACrBA,CAAO,CAAA,IAAA,CACAA,EAAO,IAAKQ,CAAAA,CAAAA,CAAKR,EAAO,QAAmB,CAAA,CAAGQ,CAAI,CAAA,CAEzD,OAAOR,CAAAA,CAAO,UAAa,UACpBA,CAAAA,CAAAA,CAAO,SAASQ,CAAI,CAAA,CAExBA,EAAKR,CAAO,CAAA,QAAmB,CAG1C,CAAA,OACIhD,IAAC,CAAA,KAAA,CAAA,CACG,UAAAA,IAAC,CAAA,KAAA,CAAA,CAAI,UAAU,2BACX,CAAA,QAAA,CAAA,CAAAvB,IAAC,KAAI,CAAA,CAAA,SAAA,CAAU,gBACV,CAAA,QAAA,CAAA4C,CACI,CAAA,MAAA,CAAQ2B,GAAWA,CAAO,CAAA,UAAU,EACpC,GAAKA,CAAAA,CAAAA,EACFvE,IAACgB,CAAA,CAAA,CAEG,YAAa,CAAUuD,OAAAA,EAAAA,CAAAA,CAAO,MAAM,CACpC,CAAA,CAAA,KAAA,CAAOX,EAAQW,CAAO,CAAA,QAAkB,GAAK,EAC7C,CAAA,QAAA,CAAWU,CAAMT,EAAAA,CAAAA,CAAaD,CAAO,CAAA,QAAA,CAAqBU,EAAE,MAAO,CAAA,KAAK,EACxE,SAAU,CAAA,MAAA,CAAA,CAJLV,EAAO,QAKhB,CACH,CACT,CAAA,CAAA,CACAvE,GAACmB,CAAAA,EAAAA,CAAA,CACG,KAAOmC,CAAAA,CAAAA,CAAa,UACpB,CAAA,aAAA,CAAgBmB,GAAU,CACtBlB,CAAAA,CAAgB,MAAOkB,CAAAA,CAAK,CAAC,CAAA,CAC7BpB,EAAe,CAAC,EACpB,EAEC,QAAAP,CAAAA,CAAAA,CAAoB,IAAKoC,CACtB3D,EAAAA,IAAAA,CAAC,QAAoB,CAAA,CAAA,KAAA,CAAO2D,CAAO,CAAA,QAAA,GAC9B,QAAAA,CAAAA,CAAAA,CAAAA,CAAO,cADCA,CAEb,CACH,EACL,CACJ,CAAA,CAAA,CAAA,CACA3D,IAAC3B,CAAAA,EAAAA,CAAA,CACG,QAAA,CAAA,CAAAI,IAACC,EAAA,CAAA,CACG,SAAAsB,IAACnB,CAAAA,CAAAA,CAAA,CACG,QAAAJ,CAAAA,CAAAA,GAAAA,CAACK,EAAA,CAAA,CAAU,SAAU,CAAA,UAAA,CACjB,SAAAL,GAACkC,CAAAA,EAAAA,CAAA,CAAS,OAAS4B,CAAAA,CAAAA,CAAa,OAASf,CAAK,CAAA,MAAA,CAAQ,eAAiB+B,CAAAA,EAAAA,CAAe,CAC1F,CAAA,CAAA,CACClC,EAAQ,GAAK2B,CAAAA,CAAAA,EACVvE,IAACK,EAAA,CAAA,CAEG,UAAWkE,CAAO,CAAA,QAAA,CAAW,iBAAmB,EAChD,CAAA,OAAA,CAAS,IAAMA,CAAO,CAAA,QAAA,EAAYD,GAAWC,CAAO,CAAA,QAAmB,EAEvE,QAAAhD,CAAAA,IAAAA,CAAC,KAAI,CAAA,CAAA,SAAA,CAAU,mBACV,CAAA,QAAA,CAAA,CAAAgD,EAAO,MACPA,CAAAA,CAAAA,CAAO,UAAYvE,GAACmF,CAAAA,WAAAA,CAAA,CAAY,SAAU,CAAA,cAAA,CAAe,CAC9D,CAAA,CAAA,CAAA,CAAA,CAPKZ,CAAO,CAAA,QAQhB,CACH,CACL,CAAA,CAAA,CAAA,CACJ,EACAvE,GAACE,CAAAA,EAAAA,CAAA,CACI,QAAAgD,CAAAA,CAAAA,CACGlD,GAACI,CAAAA,CAAAA,CAAA,CACG,QAAA,CAAAJ,IAACM,CAAA,CAAA,CAAU,QAASsC,CAAQ,CAAA,MAAA,CAAS,EAAG,SAAU,CAAA,kBAAA,CAAmB,QAErE,CAAA,YAAA,CAAA,CAAA,CACJ,CACAG,CAAAA,CAAAA,CAAK,SAAW,CAChB/C,CAAAA,GAAAA,CAACI,EAAA,CACG,QAAA,CAAAJ,IAACM,CAAA,CAAA,CAAU,OAASsC,CAAAA,CAAAA,CAAQ,MAAS,CAAA,CAAA,CAAG,UAAU,kBAAmB,CAAA,QAAA,CAAA,mBAAA,CAErE,EACJ,CAEAG,CAAAA,CAAAA,CAAK,IAAKgC,CACNxD,EAAAA,IAAAA,CAACnB,CAAA,CAAA,CAAuB,SAAW0D,CAAAA,CAAAA,CAAa,IAAIiB,CAAK,CAAA,EAAE,EAAI,UAAa,CAAA,EAAA,CACxE,UAAA/E,GAACM,CAAAA,CAAAA,CAAA,CACG,QAAA,CAAAN,GAACkC,CAAAA,EAAAA,CAAA,CAAS,OAAS4B,CAAAA,CAAAA,CAAa,IAAIiB,CAAK,CAAA,EAAE,EAAG,eAAiB,CAAA,IAAMJ,EAAmBI,CAAK,CAAA,EAAE,EAAG,CACtG,CAAA,CAAA,CACCnC,EAAQ,GAAK2B,CAAAA,CAAAA,EACVvE,IAACM,CAAA,CAAA,CAA2C,QAAA0E,CAAAA,EAAAA,CAAWD,CAAMR,CAAAA,CAAM,GAAnDA,CAAO,CAAA,QAA8C,CACxE,CANUQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,EAOpB,CACH,CAAA,CAET,CACJ,CAAA,CAAA,CAAA,CACCf,CACGzC,EAAAA,IAAAA,CAAC,OAAI,SAAU,CAAA,wCAAA,CACX,UAAAA,IAAC,CAAA,KAAA,CAAA,CAAI,sBACSyC,CAAK,CAAA,YAAA,CAAe,CAAKA,EAAAA,CAAAA,CAAK,QAAW,CAAA,CAAA,CAAE,MAAI,GACxD,CAAA,IAAA,CAAK,IAAIA,CAAK,CAAA,YAAA,CAAeA,EAAK,QAAUA,CAAAA,CAAAA,CAAK,KAAK,CAAA,CAAE,MAAKA,CAAAA,CAAAA,CAAK,MAAM,UAC7E,CAAA,CAAA,CAAA,CACAzC,KAAC,KAAI,CAAA,CAAA,SAAA,CAAU,iBACX,QAAAvB,CAAAA,CAAAA,GAAAA,CAACU,CAAA,CAAA,CAAO,OAAS,CAAA,IAAM2C,EAAgBqB,CAAS,EAAA,IAAA,CAAK,IAAIA,CAAO,CAAA,CAAA,CAAG,CAAC,CAAC,CAAA,CAAG,QAAUtB,CAAAA,CAAAA,GAAgB,CAAG,CAAA,QAAA,CAAA,UAAA,CAErG,EACApD,GAACU,CAAAA,CAAAA,CAAA,CACG,OAAS,CAAA,IAAM2C,EAAgBqB,CAAS,EAAA,IAAA,CAAK,GAAIA,CAAAA,CAAAA,CAAO,CAAGV,CAAAA,CAAAA,CAAK,SAAS,CAAC,CAAA,CAC1E,SAAUZ,CAAgBY,GAAAA,CAAAA,CAAK,UAClC,QAED,CAAA,MAAA,CAAA,CAAA,CAAA,CACJ,GACJ,CAER,CAAA,CAAA,CAER,CCrNA,IAAMoB,EAA+B,CAAA,CAAA,CAAA,MAAA,CAIrC,IAAMC,EAAsB,CAAAC,CAAA,CAAA,UAAA,CAG1B,CAAC,CAAE,SAAA,CAAAzF,EAAW,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GACxBC,GAAiB,CAAA,CAAA,CAAA,OAAA,CAAhB,CACG,GAAKD,CAAAA,CAAAA,CACL,UAAWP,CACP,CAAA,yJAAA,CACAK,CACJ,CACC,CAAA,GAAGC,CACR,CAAA,CACH,CACDuF,CAAAA,EAAAA,CAAc,YAA8B,CAAQ,CAAA,OAAA,CAAA,WAAA,CAEpD,IAAME,EAAsB,CAAAD,CAAA,CAAA,UAAA,CAG1B,CAAC,CAAE,SAAA,CAAAzF,CAAW,CAAA,QAAA,CAAAyB,CAAU,CAAA,GAAGxB,CAAM,CAAGC,CAAAA,CAAAA,GAClCwB,KAAC6D,EAAA,CAAA,CACG,UAAApF,GAACqF,CAAAA,EAAAA,CAAA,EAAc,CAAA,CACf9D,IAAiB,CAAA,CAAA,CAAA,OAAA,CAAhB,CACG,GAAKxB,CAAAA,CAAAA,CACL,UAAWP,CACP,CAAA,6fAAA,CACAK,CACJ,CACC,CAAA,GAAGC,EAEH,QAAAwB,CAAAA,CAAAA,CAAAA,CACDC,KAAiB,CAAhB,CAAA,KAAA,CAAA,CAAsB,UAAU,+QAC7B,CAAA,QAAA,CAAA,CAAAvB,IAACwF,CAAA,CAAA,CAAE,SAAU,CAAA,SAAA,CAAU,CACvBxF,CAAAA,GAAAA,CAAC,QAAK,SAAU,CAAA,SAAA,CAAU,iBAAK,CACnC,CAAA,CAAA,CAAA,CAAA,CACJ,GACJ,CACH,CAAA,CACDuF,EAAc,CAAA,WAAA,CAA8B,CAAQ,CAAA,OAAA,CAAA,WAAA,CA8BpD,IAAME,EAAoB,CAAAH,CAAA,CAAA,UAAA,CAGxB,CAAC,CAAE,SAAAzF,CAAAA,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,IACxBC,GAAiB,CAAA,CAAA,CAAA,KAAA,CAAhB,CACG,GAAKD,CAAAA,CAAAA,CACL,SAAWP,CAAAA,CAAAA,CACP,mDACAK,CAAAA,CACJ,EACC,GAAGC,CAAAA,CACR,CACH,CACD2F,CAAAA,EAAAA,CAAY,YAA8B,CAAM,CAAA,KAAA,CAAA,WAAA,CAEhD,IAAMC,EAA0B,CAAAJ,CAAA,CAAA,UAAA,CAG9B,CAAC,CAAE,SAAA,CAAAzF,EAAW,GAAGC,CAAM,EAAGC,CACxBC,GAAAA,GAAAA,CAAiB,CAAhB,CAAA,WAAA,CAAA,CACG,GAAKD,CAAAA,CAAAA,CACL,UAAWP,CAAG,CAAA,+BAAA,CAAiCK,CAAS,CACvD,CAAA,GAAGC,EACR,CACH,CAAA,CACD4F,EAAkB,CAAA,WAAA,CAA8B,CAAY,CAAA,WAAA,CAAA,WAAA,CClG5D,IAAMC,GAAgBC,CAGpB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAA,CAAA/F,CAAW,CAAA,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GACxBC,IAAC6F,OAAA,CAAA,CACG,IAAK9F,CACL,CAAA,SAAA,CAAWP,CACP,CAAA,2FAAA,CACAK,CACJ,CAAA,CACC,GAAGC,CACR,CAAA,CACH,EACD6F,EAAQ,CAAA,WAAA,CAAcE,QAAiB,WAcvC,CAAA,IAAMC,EAAqB,CAAAF,CAAA,CAAA,UAAA,CAGzB,CAAC,CAAE,UAAA/F,CAAW,CAAA,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GACxBwB,KAAC,KAAI,CAAA,CAAA,SAAA,CAAU,iCAAkC,CAAA,oBAAA,CAAmB,EAChE,CAAA,QAAA,CAAA,CAAAvB,IAAC+F,MAAA,CAAA,CAAO,UAAU,kCAAmC,CAAA,CAAA,CACrD/F,IAAC6F,OAAiB,CAAA,KAAA,CAAjB,CACG,GAAA,CAAK9F,CACL,CAAA,SAAA,CAAWP,EACP,wJACAK,CAAAA,CACJ,EACC,GAAGC,CAAAA,CACR,GACJ,CACH,CAAA,CAEDgG,GAAa,WAAcD,CAAAA,OAAAA,CAAiB,MAAM,WAElD,CAAA,IAAMG,GAAoBJ,CAGxB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAA/F,CAAAA,CAAAA,CAAW,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GACxBC,IAAC6F,OAAiB,CAAA,IAAA,CAAjB,CACG,GAAK9F,CAAAA,CAAAA,CACL,UAAWP,CAAG,CAAA,iDAAA,CAAmDK,CAAS,CAAA,CACzE,GAAGC,CAAAA,CACR,CACH,CAEDkG,CAAAA,EAAAA,CAAY,YAAcH,OAAiB,CAAA,IAAA,CAAK,YAEhD,IAAMI,EAAAA,CAAqBL,CAGzB,CAAA,UAAA,CAAA,CAAC9F,CAAOC,CAAAA,CAAAA,GACNC,IAAC6F,OAAiB,CAAA,KAAA,CAAjB,CACG,GAAK9F,CAAAA,CAAAA,CACL,UAAU,0BACT,CAAA,GAAGD,CACR,CAAA,CACH,CAEDmG,CAAAA,EAAAA,CAAa,YAAcJ,OAAiB,CAAA,KAAA,CAAM,YAElD,IAAMK,EAAAA,CAAqBN,aAGzB,CAAC,CAAE,SAAA/F,CAAAA,CAAAA,CAAW,GAAGC,CAAM,EAAGC,CACxBC,GAAAA,GAAAA,CAAC6F,QAAiB,KAAjB,CAAA,CACG,IAAK9F,CACL,CAAA,SAAA,CAAWP,CACP,CAAA,wNAAA,CACAK,CACJ,CAAA,CACC,GAAGC,CACR,CAAA,CACH,EAEDoG,EAAa,CAAA,WAAA,CAAcL,QAAiB,KAAM,CAAA,WAAA,CAElD,IAAMM,EAAAA,CAAyBP,CAG7B,CAAA,UAAA,CAAA,CAAC,CAAE,SAAA/F,CAAAA,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,IACxBC,GAAC6F,CAAAA,OAAAA,CAAiB,UAAjB,CACG,GAAA,CAAK9F,EACL,SAAWP,CAAAA,CAAAA,CAAG,uBAAwBK,CAAS,CAAA,CAC9C,GAAGC,CACR,CAAA,CACH,CACDqG,CAAAA,EAAAA,CAAiB,WAAcN,CAAAA,OAAAA,CAAiB,UAAU,WAE1D,CAAA,IAAMO,GAAoBR,CAGxB,CAAA,UAAA,CAAA,CAAC,CAAE,SAAA/F,CAAAA,CAAAA,CAAW,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GACxBC,IAAC6F,OAAiB,CAAA,IAAA,CAAjB,CACG,GAAK9F,CAAAA,CAAAA,CACL,UAAWP,CACP,CAAA,yTAAA,CACAK,CACJ,CAAA,CACC,GAAGC,CAAAA,CACR,CACH,CAEDsG,CAAAA,EAAAA,CAAY,YAAcP,OAAiB,CAAA,IAAA,CAAK,YCrHhD,IAAMQ,GAA2B,CAE3BC,CAAAA,IAAAA,CAAAA,EAAAA,CAAkC,UAIxC,IAAMC,EAAAA,CAAuBC,aAG3B,CAAC,CAAE,SAAA3G,CAAAA,CAAAA,CAAW,KAAA4G,CAAAA,CAAAA,CAAQ,SAAU,UAAA/D,CAAAA,CAAAA,CAAa,EAAG,GAAG5C,CAAM,EAAGC,CAC1DC,GAAAA,GAAAA,CAAkB,SAAjB,CACG,QAAA,CAAAA,IAAkB,CAAjB,CAAA,OAAA,CAAA,CACG,IAAKD,CACL,CAAA,KAAA,CAAO0G,EACP,UAAY/D,CAAAA,CAAAA,CACZ,SAAWlD,CAAAA,CAAAA,CACP,4aACAK,CAAAA,CACJ,EACC,GAAGC,CAAAA,CACR,EACJ,CACH,CAAA,CACDyG,GAAe,WAA+B,CAAA,CAAA,CAAA,OAAA,CAAQ,WCsCtC,CAvCT,SAASG,EAAiB,CAAA,CAC7B,MAAAC,CACA,CAAA,WAAA,CAAAC,CACA,CAAA,QAAA,CAAAC,CACA,CAAA,QAAA,CAAAC,EAAW,KACX,CAAA,UAAA,CAAAC,EAAa,IACjB,CAAA,CAA0B,CAnC1B,IAAAC,CAAAA,CAoCI,GAAM,CAACC,CAAMC,CAAAA,CAAO,EAAUC,CAAS,CAAA,QAAA,CAAA,KAAK,EACtC,CAAC1C,CAAAA,CAAO2C,CAAQ,CAAU,CAAAD,CAAA,CAAA,QAAA,CAAmB,EAAE,CAC/C,CAAA,CAACE,EAAQC,CAAS,CAAA,CAAUH,WAAS,EAAE,CAAA,CAEvCI,EAAsBJ,CAAQ,CAAA,OAAA,CAAA,IAC5B,CAACJ,CAAAA,EAAc,CAACM,CAAAA,CAAeV,EAC5BA,CAAM,CAAA,MAAA,CACR5B,GACGA,CAAK,CAAA,KAAA,CAAM,aAAc,CAAA,QAAA,CAASsC,CAAO,CAAA,WAAA,EAAa,CAAA,EACtDtC,EAAK,KAAM,CAAA,WAAA,GAAc,QAASsC,CAAAA,CAAAA,CAAO,aAAa,CAC9D,EACD,CAACV,CAAAA,CAAOU,EAAQN,CAAU,CAAC,EAExBS,CAAgBC,CAAAA,CAAAA,EAAyB,CACvCX,CACAM,CAAAA,CAAAA,CAAU1C,CACFA,EAAAA,CAAAA,CAAK,QAAS+C,CAAAA,CAAY,EACnB/C,CAAK,CAAA,MAAA,CAAQgD,GAAMA,CAAMD,GAAAA,CAAY,EAErC,CAAC,GAAG/C,CAAM+C,CAAAA,CAAY,CAEpC,CAAA,EAEDL,EAAS,CAACK,CAAY,CAAC,CACvBP,CAAAA,CAAAA,CAAQ,KAAK,CAEjBL,CAAAA,CAAAA,CAAAA,CAASY,CAAY,EACzB,CAEA,CAAA,OACIlG,KAAC8E,EAAA,CAAA,CAAQ,KAAMY,CAAM,CAAA,YAAA,CAAcC,EAC/B,QAAAlH,CAAAA,CAAAA,GAAAA,CAACsG,EAAA,CAAA,CAAe,OAAO,CAAA,IAAA,CACnB,SAAA/E,IAACb,CAAAA,CAAAA,CAAA,CACG,OAAQ,CAAA,SAAA,CACR,KAAK,UACL,CAAA,eAAA,CAAeuG,CACf,CAAA,SAAA,CAAU,2BAET,CAAA,QAAA,CAAA,CAAAxC,EAAM,MAAS,CAAA,CAAA,CACVqC,EACI,CAAGrC,EAAAA,CAAAA,CAAM,MAAM,CACfuC,SAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAL,CAAM,CAAA,IAAA,CAAM5B,CAASA,EAAAA,CAAAA,CAAK,QAAUN,CAAM,CAAA,CAAC,CAAC,CAA5C,GAAA,IAAA,CAAA,MAAA,CAAAuC,EACM,KACVJ,CAAAA,CAAAA,CACN5G,GAAC2H,CAAAA,cAAAA,CAAA,CAAe,SAAA,CAAU,mCAAmC,CACjE,CAAA,CAAA,CAAA,CACJ,EACA3H,GAACuG,CAAAA,EAAAA,CAAA,CAAe,SAAU,CAAA,eAAA,CACtB,SAAAhF,IAACoE,CAAAA,EAAAA,CAAA,CACI,QAAAoB,CAAAA,CAAAA,CAAAA,EACG/G,IAAC8F,EAAA,CAAA,CACG,YAAa,CAAUc,OAAAA,EAAAA,CAAAA,CAAY,WAAY,EAAC,CAChD,GAAA,CAAA,CAAA,aAAA,CAAeU,EACnB,CAEJtH,CAAAA,GAAAA,CAACiG,GAAA,CAAa,QAAA,CAAA,gBAAA,CAAc,EAC5BjG,GAACkG,CAAAA,EAAAA,CAAA,CACI,QAAA,CAAAqB,CAAc,CAAA,GAAA,CAAKxC,GAChBxD,IAAC6E,CAAAA,EAAAA,CAAA,CAEG,QAAU,CAAA,IAAMoB,EAAazC,CAAK,CAAA,KAAK,CAEvC,CAAA,QAAA,CAAA,CAAA/E,GAACgC,CAAAA,KAAAA,CAAA,CACG,SAAWxC,CAAAA,CAAAA,CACP,eACAiF,CAAM,CAAA,QAAA,CAASM,EAAK,KAAK,CAAA,CACnB,aACA,CAAA,WACV,CACJ,CAAA,CAAA,CACCA,EAAK,KAXDA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,KAYd,CACH,CAAA,CACL,GACJ,CACJ,CAAA,CAAA,CAAA,CACJ,CAER,CCvGA,SAAS6C,GAAS,CACI,SAAA,CAAA/H,EACA,UAAAgI,CAAAA,CAAAA,CACA,gBAAAC,CAAkB,CAAA,IAAA,CAClB,GAAGhI,CACP,CAAA,CAAkB,CAChC,OACIE,GAAC+H,CAAAA,SAAAA,CAAA,CACG,eAAiBD,CAAAA,CAAAA,CACjB,UAAWtI,CAAG,CAAA,KAAA,CAAOK,CAAS,CAC9B,CAAA,UAAA,CAAY,CACR,MAAA,CAAQ,+DACR,CAAA,KAAA,CAAO,YACP,OAAS,CAAA,gDAAA,CACT,cAAe,qBACf,CAAA,GAAA,CAAK,8BACL,UAAYL,CAAAA,CAAAA,CACRgB,EAAe,CAAA,CAAE,OAAS,CAAA,SAAU,CAAC,CACrC,CAAA,yDACJ,EACA,mBAAqB,CAAA,iBAAA,CACrB,gBAAiB,kBACjB,CAAA,KAAA,CAAO,kCACP,CAAA,QAAA,CAAU,MACV,CAAA,SAAA,CACI,iEACJ,GAAK,CAAA,kBAAA,CACL,KAAM,kTACN,CAAA,GAAA,CAAKhB,EACDgB,EAAe,CAAA,CAAE,OAAS,CAAA,OAAQ,CAAC,CAAA,CACnC,mDACJ,CACA,CAAA,aAAA,CAAe,gBACf,YACI,CAAA,kIAAA,CACJ,UAAW,kCACX,CAAA,WAAA,CACI,kGACJ,CAAA,YAAA,CAAc,kCACd,CAAA,gBAAA,CACI,+DACJ,UAAY,CAAA,WAAA,CACZ,GAAGqH,CACP,CAAA,CACA,WAAY,CACR,QAAA,CAAU,CAAC,CAAE,SAAAhI,CAAAA,CAAAA,CAAW,GAAGC,CAAM,CAAA,GAC7BE,IAACgI,WAAA,CAAA,CAAY,UAAWxI,CAAG,CAAA,SAAA,CAAWK,CAAS,CAAI,CAAA,GAAGC,EAAO,CAEjE,CAAA,SAAA,CAAW,CAAC,CAAE,SAAA,CAAAD,EAAW,GAAGC,CAAM,CAC9BE,GAAAA,GAAAA,CAACiI,YAAA,CAAA,CAAa,UAAWzI,CAAG,CAAA,SAAA,CAAWK,CAAS,CAAI,CAAA,GAAGC,EAAO,CAEtE,CAAA,CACC,GAAGA,CAAAA,CACR,CAER,CACA8H,GAAS,WAAc,CAAA,UAAA,CC3DvB,IAAMM,EAAgBzH,CAAAA,GAAAA,CAClB,4FACJ,CAEM0H,CAAAA,CAAAA,CAAcC,aAIlB,CAAC,CAAE,UAAAvI,CAAW,CAAA,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GACxBC,IAAgB,EAAf,CAAA,IAAA,CAAA,CACG,GAAKD,CAAAA,CAAAA,CACL,SAAWP,CAAAA,CAAAA,CAAG0I,IAAiBrI,CAAAA,CAAS,EACvC,GAAGC,CAAAA,CACR,CACH,CACDqI,CAAAA,CAAAA,CAAM,WAA6B,CAAA,EAAA,CAAA,IAAA,CAAK,WCrBxC,CAKA,IAAME,EAAe,CAAAC,CAAA,CAAA,UAAA,CAGnB,CAAC,CAAE,UAAAzI,CAAW,CAAA,GAAGC,CAAM,CAAGC,CAAAA,CAAAA,GACxBC,IAAkB,EAAjB,CAAA,IAAA,CAAA,CACG,UAAWR,CACP,CAAA,oXAAA,CACAK,CACJ,CACC,CAAA,GAAGC,EACJ,GAAKC,CAAAA,CAAAA,CAEL,SAAAC,GAAkB,CAAA,EAAA,CAAA,KAAA,CAAjB,CACG,SAAA,CAAWR,CACP,CAAA,4KACJ,EACJ,CACJ,CAAA,CACH,EACD6I,EAAO,CAAA,WAAA,CAA+B,QAAK,WC8I3B,CA3IT,SAASE,EAAe,CAAA,CAC3B,KAAAC,CACA,CAAA,QAAA,CAAAC,CACA,CAAA,QAAA,CAAA5B,CACA,CAAA,aAAA,CAAA6B,EACA,QAAAC,CAAAA,CAAAA,CACA,OAAAC,CACJ,CAAA,CAAwB,CACpB,GAAM,CAACC,CAAMC,CAAAA,CAAO,CAAU,CAAAC,CAAA,CAAA,QAAA,CAC1BP,IAAS,QAAYC,CAAAA,CAAAA,CAAoB,MAC7C,CACM,CAAA,CAACO,EAAOC,CAAQ,CAAA,CAAUF,CAC5BP,CAAAA,QAAAA,CAAAA,CAAAA,GAAS,OAAWC,CAAAA,CAAAA,CAAyB,MACjD,CACM,CAAA,CAACS,EAAQC,CAAS,CAAA,CAAUJ,WAAS,KAAK,CAAA,CAC1C,CAACK,CAAAA,CAAaC,CAAc,CAAA,CAAUN,WAAS,KAAK,CAAA,CACpD,CAACO,CAAyB,CAAA,CAAIC,YAAaC,CAAyB,EAAA,CACtE3C,CAAS2C,CAAAA,CAAO,EACpB,CAAA,CAAG,GAAG,CAGA,CAAAT,CAAA,CAAA,SAAA,CAAU,IAAM,CACdP,CAAAA,GAAS,UAAY,CAACK,CAAAA,EAEtBC,EADY,IAAI,IACL,EAEnB,CAAG,CAAA,CAACN,EAAMK,CAAMC,CAAAA,CAAO,CAAC,CAExB,CAAA,IAsBMW,CAAAA,CAAmB,CACrBxE,CAAAA,CACAyE,EAAY,KACX,GAAA,CACD,IAAMC,EAAY1E,CAAAA,CAAAA,CAAE,OAAO,KACrB2E,CAAAA,CAAAA,CAAaC,CAAgBF,CAAAA,EAAS,CAE5C,CAAA,GAAKC,EAEL,GAAIpB,CAAAA,GAAS,SAAWQ,CAAS,EAAA,MAAA,GAAUA,EAAO,CAC9C,IAAMQ,CAAU,CAAA,IAAI,IAChBE,CAAAA,CAAAA,CACMV,EAAM,EAAMA,EAAAA,CAAAA,CAAM,MAAQ,IAAI,IAAA,CAC9BA,EAAM,IAAQ,EAAA,IAAI,IAC5B,CAAA,CACAQ,CAAQ,CAAA,QAAA,CACJI,EAAW,QAAS,EAAA,CACpBA,EAAW,UAAW,EAAA,CACtBA,EAAW,UAAW,EAC1B,EACAN,CAA0B,CAAA,CACtB,KAAMI,CAAYV,CAAAA,CAAAA,CAAM,KAAOQ,CAC/B,CAAA,EAAA,CAAIE,EAAYF,CAAUR,CAAAA,CAAAA,CAAM,EACpC,CAAC,EACL,CAAA,KAAA,GAAWH,aAAgB,IAAM,CAAA,CAC7B,IAAMW,CAAU,CAAA,IAAI,KAAKX,CAAI,CAAA,CAC7BW,CAAQ,CAAA,QAAA,CACJI,CAAW,CAAA,QAAA,GACXA,CAAW,CAAA,UAAA,GACXA,CAAW,CAAA,UAAA,EACf,CACAN,CAAAA,CAAAA,CAA0BE,CAAO,EACrC,CAAO,KAAA,CACH,IAAMA,CAAU,CAAA,IAAI,KACpBA,CAAQ,CAAA,QAAA,CACJI,EAAW,QAAS,EAAA,CACpBA,CAAW,CAAA,UAAA,EACXA,CAAAA,CAAAA,CAAW,YACf,CAAA,CACAN,EAA0BE,CAAO,EACrC,CACJ,CAEMM,CAAAA,CAAAA,CAAcjB,CAA8B,EAAA,CAC9C,GAAI,CAACA,EAAM,OAAO,EAAA,CAElB,GAAIL,CAAS,GAAA,OAAA,EAAWQ,GAAS,MAAUA,GAAAA,CAAAA,CAAO,CAC9C,IAAML,CAAWK,CAAAA,CAAAA,CAAM,KAAOe,MAAOf,CAAAA,CAAAA,CAAM,KAAM,IAAI,CAAA,CAAI,GACnDJ,EAASI,CAAAA,CAAAA,CAAM,EAAKe,CAAAA,MAAAA,CAAOf,CAAM,CAAA,EAAA,CAAI,IAAI,CAAI,CAAA,EAAA,CAC7CgB,EAAWhB,CAAM,CAAA,IAAA,CACjBe,OAAOf,CAAM,CAAA,IAAA,CAAMI,EAAc,UAAa,CAAA,OAAO,EACrD,EACAa,CAAAA,CAAAA,CAASjB,EAAM,EACfe,CAAAA,MAAAA,CAAOf,EAAM,EAAII,CAAAA,CAAAA,CAAc,UAAa,CAAA,OAAO,CACnD,CAAA,EAAA,CAEN,OAAO,CAAGT,EAAAA,CAAQ,GAAGqB,CAAW,CAAA,CAAA,CAAA,EAAIA,CAAQ,CAAK,CAAA,CAAA,EAAE,CAAMpB,GAAAA,EAAAA,EAAM,CAC3DqB,EAAAA,CAAAA,CAAS,IAAIA,CAAM,CAAA,CAAA,CAAK,EAC5B,CACJ,CAAA,CAEA,OAAIpB,CAAgB,YAAA,IAAA,CACTkB,MACHlB,CAAAA,CAAAA,CACAL,CAAS,GAAA,QAAA,CAAYY,EAAc,UAAa,CAAA,OAAA,CAAW,IAC/D,CAGG,CAAA,EACX,EAEMc,CAAc,CAAA,IAAM,CACtBrD,CAAAA,CACI2B,CAAS,GAAA,OAAA,CAAU,CAAE,IAAM,CAAA,MAAA,CAAW,GAAI,MAAU,CAAA,CAAI,MAC5D,EACJ,CAAA,CAEMqB,CAAmBM,CAAAA,CAAAA,EAAoC,CACzD,IAAMP,EAAaQ,KACfD,CAAAA,CAAAA,CACAf,EAAc,UAAa,CAAA,OAAA,CAC3B,IAAI,IACR,CAAA,CACA,OAAOiB,OAAAA,CAAQT,CAAU,CAAA,CAAIA,EAAa,IAC9C,EAEA,OACIrI,IAAC8E,CAAAA,EAAAA,CAAA,CAAQ,IAAM6C,CAAAA,CAAAA,CAAQ,YAAcC,CAAAA,CAAAA,CACjC,QAAAnJ,CAAAA,CAAAA,GAAAA,CAACsG,GAAA,CAAe,OAAA,CAAO,KACnB,QAAA/E,CAAAA,IAAAA,CAACb,EAAA,CACG,OAAA,CAAS,UACT,SAAWlB,CAAAA,CAAAA,CACP,yDACA,CAACqJ,CAAAA,EAAQ,uBACb,CAEC,CAAA,QAAA,CAAA,CAAAL,IAAS,QACNxI,CAAAA,GAAAA,CAACsK,KAAA,CAAA,CAAM,SAAU,CAAA,cAAA,CAAe,EAEhCtK,GAACuK,CAAAA,YAAAA,CAAA,CAAa,SAAU,CAAA,cAAA,CAAe,EAE1C1B,CACKiB,CAAAA,CAAAA,CAAWjB,CAAI,CAAA,CACfL,CAAS,GAAA,QAAA,CACT,cACA,aACLA,CAAAA,CAAAA,GAAS,UAAYK,CAClB7I,EAAAA,GAAAA,CAACU,EAAA,CACG,OAAA,CAAQ,OACR,CAAA,IAAA,CAAK,IACL,CAAA,SAAA,CAAU,sBACV,OAAUuE,CAAAA,CAAAA,EAAM,CACZA,CAAE,CAAA,eAAA,GACFiF,CAAY,GAChB,CAEA,CAAA,QAAA,CAAAlK,GAACwF,CAAAA,CAAAA,CAAA,CAAE,SAAU,CAAA,SAAA,CAAU,EAC3B,CAER,CAAA,CAAA,CAAA,CACJ,EACAjE,IAACgF,CAAAA,EAAAA,CAAA,CAAe,SAAA,CAAU,YAAa,CAAA,KAAA,CAAM,QACxC,QAAAiC,CAAAA,CAAAA,CAAAA,GAAS,SACNxI,GAAC4H,CAAAA,EAAAA,CAAA,CACG,IAAK,CAAA,QAAA,CACL,QAAUiB,CAAAA,CAAAA,CACV,QAAWpE,CAAAA,CAAAA,EAAUqE,EAAQrE,CAAK,CAAA,CAClC,SAAUiE,CACV,CAAA,QAAA,CAAUC,EACV,MAAQC,CAAAA,CAAAA,CACR,YAAY,CAAA,IAAA,CAChB,CAEA5I,CAAAA,GAAAA,CAAC4H,GAAA,CACG,IAAA,CAAK,QACL,QAAUoB,CAAAA,CAAAA,CACV,SAAWvE,CAAUwE,EAAAA,CAAAA,CAASxE,CAAK,CACnC,CAAA,QAAA,CAAUiE,EACV,QAAUC,CAAAA,CAAAA,CACV,OAAQC,CACR,CAAA,YAAA,CAAY,KAChB,CAEFJ,CAAAA,CAAAA,CAAAA,GAAS,QAAYA,EAAAA,CAAAA,GAAS,OAC5BjH,GAAAA,IAAAA,CAAC,OAAI,SAAU,CAAA,cAAA,CACX,UAAAA,IAAC,CAAA,KAAA,CAAA,CAAI,UAAU,wCACX,CAAA,QAAA,CAAA,CAAAvB,GAACmI,CAAAA,CAAAA,CAAA,CAAM,OAAA,CAAQ,cAAc,SAAU,CAAA,SAAA,CAAU,wBAEjD,CACAnI,CAAAA,GAAAA,CAACqI,GAAA,CACG,EAAA,CAAG,aACH,CAAA,OAAA,CAASe,CACT,CAAA,eAAA,CAAiBC,EACrB,CACJ,CAAA,CAAA,CAAA,CACArJ,IAAC,KAAI,CAAA,CAAA,SAAA,CAAU,iCACV,QAAAwI,CAAAA,CAAAA,GAAS,OACNjH,CAAAA,IAAAA,CAAAiJ,QAAA,CAAA,CACI,UAAAjJ,IAAC,CAAA,KAAA,CAAA,CAAI,UAAU,eACX,CAAA,QAAA,CAAA,CAAAvB,IAACmI,CAAA,CAAA,CACG,OAAQ,CAAA,WAAA,CACR,SAAU,CAAA,cAAA,CACb,sBAED,CACAnI,CAAAA,GAAAA,CAACgB,EAAA,CACG,EAAA,CAAG,YACH,IAAK,CAAA,MAAA,CACL,IAAMoI,CAAAA,CAAAA,CAAc,CAAI,CAAA,EAAA,CACxB,SAAUK,CACV,CAAA,KAAA,CACIT,GACA,MAAUA,GAAAA,CAAAA,EACVA,EAAM,IACAe,CAAAA,MAAAA,CACIf,CAAM,CAAA,IAAA,CACNI,CACM,CAAA,UAAA,CACA,OACV,CACA,CAAA,EAAA,CAEd,GACJ,CACApJ,CAAAA,GAAAA,CAACsK,MAAA,CAAM,SAAA,CAAU,qCAAqC,CACtD/I,CAAAA,IAAAA,CAAC,OAAI,SAAU,CAAA,eAAA,CACX,UAAAvB,GAACmI,CAAAA,CAAAA,CAAA,CACG,OAAQ,CAAA,SAAA,CACR,SAAU,CAAA,cAAA,CACb,QAED,CAAA,UAAA,CAAA,CAAA,CACAnI,IAACgB,CAAA,CAAA,CACG,GAAG,SACH,CAAA,IAAA,CAAK,OACL,IAAMoI,CAAAA,CAAAA,CAAc,CAAI,CAAA,EAAA,CACxB,QAAWnE,CAAAA,CAAAA,EACPwE,EAAiBxE,CAAG,CAAA,IAAI,EAE5B,KACI+D,CAAAA,CAAAA,EACA,SAAUA,CACVA,EAAAA,CAAAA,CAAM,EACAe,CAAAA,MAAAA,CACIf,CAAM,CAAA,EAAA,CACNI,EACM,UACA,CAAA,OACV,EACA,EAEd,CAAA,CAAA,CAAA,CACJ,GACJ,CAEA7H,CAAAA,IAAAA,CAAC,KAAI,CAAA,CAAA,SAAA,CAAU,sBACX,CAAA,QAAA,CAAA,CAAAvB,IAACmI,CAAA,CAAA,CACG,QAAQ,MACR,CAAA,SAAA,CAAU,eACb,QAED,CAAA,MAAA,CAAA,CAAA,CACAnI,GAACgB,CAAAA,CAAAA,CAAA,CACG,EAAA,CAAG,OACH,IAAK,CAAA,MAAA,CACL,KAAMoI,CAAc,CAAA,CAAA,CAAI,GACxB,QAAUK,CAAAA,CAAAA,CACV,KACIZ,CAAAA,CAAAA,YAAgB,IACVkB,CAAAA,MAAAA,CACIlB,EACAO,CACM,CAAA,UAAA,CACA,OACV,CACA,CAAA,EAAA,CAEd,GACJ,CAER,CAAA,CAAA,CAAA,CACJ,CAER,CAAA,CAAA,CAAA,CAAA,CACJ,CAER","file":"index.mjs","sourcesContent":["import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import * as React from \"react\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst Table = React.forwardRef<\n HTMLTableElement,\n React.HTMLAttributes<HTMLTableElement>\n>(({ className, ...props }, ref) => (\n <div className=\"relative w-full overflow-auto\">\n <table\n ref={ref}\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n))\nTable.displayName = \"Table\"\n\nconst TableHeader = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <thead ref={ref} className={cn(\"[&_tr]:border-b\", className)} {...props} />\n))\nTableHeader.displayName = \"TableHeader\"\n\nconst TableBody = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tbody\n ref={ref}\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n))\nTableBody.displayName = \"TableBody\"\n\nconst TableFooter = React.forwardRef<\n HTMLTableSectionElement,\n React.HTMLAttributes<HTMLTableSectionElement>\n>(({ className, ...props }, ref) => (\n <tfoot\n ref={ref}\n className={cn(\n \"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n))\nTableFooter.displayName = \"TableFooter\"\n\nconst TableRow = React.forwardRef<\n HTMLTableRowElement,\n React.HTMLAttributes<HTMLTableRowElement>\n>(({ className, ...props }, ref) => (\n <tr\n ref={ref}\n className={cn(\n \"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted\",\n className\n )}\n {...props}\n />\n))\nTableRow.displayName = \"TableRow\"\n\nconst TableHead = React.forwardRef<\n HTMLTableCellElement,\n React.ThHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <th\n ref={ref}\n className={cn(\n \"h-10 px-2 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableHead.displayName = \"TableHead\"\n\nconst TableCell = React.forwardRef<\n HTMLTableCellElement,\n React.TdHTMLAttributes<HTMLTableCellElement>\n>(({ className, ...props }, ref) => (\n <td\n ref={ref}\n className={cn(\n \"p-2 align-middle [&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n {...props}\n />\n))\nTableCell.displayName = \"TableCell\"\n\nconst TableCaption = React.forwardRef<\n HTMLTableCaptionElement,\n React.HTMLAttributes<HTMLTableCaptionElement>\n>(({ className, ...props }, ref) => (\n <caption\n ref={ref}\n className={cn(\"mt-4 text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nTableCaption.displayName = \"TableCaption\"\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCaption,\n}\n","'use client';\n\nimport * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../../lib/utils';\n\nconst buttonVariants = cva(\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n {\n variants: {\n variant: {\n default:\n 'bg-primary text-primary-foreground shadow hover:bg-primary/90',\n destructive:\n 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',\n outline:\n 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground',\n secondary:\n 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2',\n sm: 'h-8 rounded-md px-3 text-xs',\n lg: 'h-10 rounded-md px-8',\n icon: 'h-9 w-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n);\n\nexport interface ButtonProps\n extends React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof buttonVariants> {\n asChild?: boolean;\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : 'button';\n return (\n <Comp\n className={cn(buttonVariants({ variant, size, className }))}\n ref={ref}\n {...props}\n />\n );\n },\n);\nButton.displayName = 'Button';\n\nexport { Button, buttonVariants };\n","import * as React from \"react\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst Input = React.forwardRef<HTMLInputElement, React.ComponentProps<\"input\">>(\n ({ className, type, ...props }, ref) => {\n return (\n <input\n type={type}\n className={cn(\n \"flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n ref={ref}\n {...props}\n />\n )\n }\n)\nInput.displayName = \"Input\"\n\nexport { Input }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { Check, ChevronDown, ChevronUp } from \"lucide-react\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst Select = SelectPrimitive.Root\n\nconst SelectGroup = SelectPrimitive.Group\n\nconst SelectValue = SelectPrimitive.Value\n\nconst SelectTrigger = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDown className=\"h-4 w-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n))\nSelectTrigger.displayName = SelectPrimitive.Trigger.displayName\n\nconst SelectScrollUpButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollUpButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollUpButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollUpButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUp className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollUpButton>\n))\nSelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName\n\nconst SelectScrollDownButton = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.ScrollDownButton>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.ScrollDownButton>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.ScrollDownButton\n ref={ref}\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDown className=\"h-4 w-4\" />\n </SelectPrimitive.ScrollDownButton>\n))\nSelectScrollDownButton.displayName =\n SelectPrimitive.ScrollDownButton.displayName\n\nconst SelectContent = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Content>\n>(({ className, children, position = \"popper\", ...props }, ref) => (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n ref={ref}\n className={cn(\n \"relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n))\nSelectContent.displayName = SelectPrimitive.Content.displayName\n\nconst SelectLabel = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Label>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Label\n ref={ref}\n className={cn(\"px-2 py-1.5 text-sm font-semibold\", className)}\n {...props}\n />\n))\nSelectLabel.displayName = SelectPrimitive.Label.displayName\n\nconst SelectItem = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Item>\n>(({ className, children, ...props }, ref) => (\n <SelectPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex h-3.5 w-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n))\nSelectItem.displayName = SelectPrimitive.Item.displayName\n\nconst SelectSeparator = React.forwardRef<\n React.ElementRef<typeof SelectPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof SelectPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <SelectPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n))\nSelectSeparator.displayName = SelectPrimitive.Separator.displayName\n\nexport {\n Select,\n SelectGroup,\n SelectValue,\n SelectTrigger,\n SelectContent,\n SelectLabel,\n SelectItem,\n SelectSeparator,\n SelectScrollUpButton,\n SelectScrollDownButton,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { Check } from \"lucide-react\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <CheckboxPrimitive.Root\n ref={ref}\n className={cn(\n \"peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n className={cn(\"flex items-center justify-center text-current\")}\n >\n <Check className=\"h-4 w-4\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport {cn} from \"../../../lib/utils\";\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Fallback\n ref={ref}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full bg-muted\",\n className\n )}\n {...props}\n />\n))\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport { Avatar, AvatarImage, AvatarFallback }\n","import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst badgeVariants = cva(\n \"inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2\",\n {\n variants: {\n variant: {\n default:\n \"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80\",\n secondary:\n \"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n destructive:\n \"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80\",\n outline: \"text-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface BadgeProps\n extends React.HTMLAttributes<HTMLDivElement>,\n VariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n return (\n <div className={cn(badgeVariants({ variant }), className)} {...props} />\n )\n}\n\nexport { Badge, badgeVariants }\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst TooltipProvider = TooltipPrimitive.Provider\n\nconst Tooltip = TooltipPrimitive.Root\n\nconst TooltipTrigger = TooltipPrimitive.Trigger\n\nconst TooltipContent = React.forwardRef<\n React.ElementRef<typeof TooltipPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </TooltipPrimitive.Portal>\n))\nTooltipContent.displayName = TooltipPrimitive.Content.displayName\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n","\"use client\"\n\nimport type React from \"react\"\nimport { useState, useEffect } from \"react\"\nimport { Table, TableBody, TableCell, TableHead, TableHeader, TableRow } from \"../shadcn/ui/table\"\nimport { Button } from \"../shadcn/ui/button\"\nimport { Input } from \"../shadcn/ui/input\"\nimport { Select } from \"../shadcn/ui/select\"\nimport { Checkbox } from \"../shadcn/ui/checkbox\"\nimport { ArrowUpDown } from \"lucide-react\"\nimport { Avatar, AvatarFallback, AvatarImage } from \"../shadcn/ui/avatar\"\nimport { Badge } from \"../shadcn/ui/badge\"\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../shadcn/ui/tooltip\"\n\ninterface Column<T> {\n accessor: keyof T | ((item: T) => React.ReactNode)\n header: string\n sortable?: boolean\n filterable?: boolean\n cell?: (value: any, item: T) => React.ReactNode\n}\n\ninterface AdvancedDataTableProps<T> {\n columns: Column<T>[]\n fetchData: (params: {\n page: number\n perPage: number\n sortBy?: string\n sortOrder?: \"asc\" | \"desc\"\n filters?: Record<string, string>\n }) => Promise<{\n data: T[]\n meta: {\n current_page: number\n last_page: number\n per_page: number\n total: number\n }\n }>\n itemsPerPageOptions?: number[]\n}\n\nexport function AdvancedDataTable<T extends Record<string, any>>({\n columns,\n fetchData,\n itemsPerPageOptions = [10, 20, 50],\n }: AdvancedDataTableProps<T>) {\n const [data, setData] = useState<T[]>([])\n const [loading, setLoading] = useState(true)\n const [currentPage, setCurrentPage] = useState(1)\n const [itemsPerPage, setItemsPerPage] = useState(itemsPerPageOptions[0])\n const [sortColumn, setSortColumn] = useState<keyof T | null>(null)\n const [sortOrder, setSortOrder] = useState<\"asc\" | \"desc\">(\"asc\")\n const [filters, setFilters] = useState<Record<string, string>>({})\n const [selectedRows, setSelectedRows] = useState<Set<number>>(new Set())\n const [meta, setMeta] = useState<{\n current_page: number\n last_page: number\n per_page: number\n total: number\n } | null>(null)\n\n useEffect(() => {\n loadData()\n }, [fetchData, currentPage, itemsPerPage, sortColumn, sortOrder, filters]) //Fixed useEffect dependency\n\n const loadData = async () => {\n setLoading(true)\n try {\n const result = await fetchData({\n page: currentPage,\n perPage: itemsPerPage,\n sortBy: sortColumn as string,\n sortOrder,\n filters,\n })\n setData(result.data)\n setMeta(result.meta)\n } catch (error) {\n console.error(\"Error fetching data:\", error)\n } finally {\n setLoading(false)\n }\n }\n\n const handleSort = (column: keyof T) => {\n if (sortColumn === column) {\n setSortOrder(sortOrder === \"asc\" ? \"desc\" : \"asc\")\n } else {\n setSortColumn(column)\n setSortOrder(\"asc\")\n }\n }\n\n const handleFilter = (column: keyof T, value: string) => {\n setFilters((prev) => ({ ...prev, [column]: value }))\n setCurrentPage(1)\n }\n\n const toggleRowSelection = (id: number) => {\n const newSelectedRows = new Set(selectedRows)\n if (newSelectedRows.has(id)) {\n newSelectedRows.delete(id)\n } else {\n newSelectedRows.add(id)\n }\n setSelectedRows(newSelectedRows)\n }\n\n const toggleAllRows = () => {\n if (selectedRows.size === data.length) {\n setSelectedRows(new Set())\n } else {\n setSelectedRows(new Set(data.map((item) => item.id)))\n }\n }\n\n const renderCell = (item: T, column: Column<T>) => {\n if (column.cell) {\n return column.cell(item[column.accessor as keyof T], item)\n }\n if (typeof column.accessor === \"function\") {\n return column.accessor(item)\n }\n return item[column.accessor as keyof T]\n }\n\n return (\n <div>\n <div className=\"flex justify-between mb-4\">\n <div className=\"flex space-x-2\">\n {columns\n .filter((column) => column.filterable)\n .map((column) => (\n <Input\n key={column.accessor as string}\n placeholder={`Filter ${column.header}`}\n value={filters[column.accessor as string] || \"\"}\n onChange={(e) => handleFilter(column.accessor as keyof T, e.target.value)}\n className=\"w-40\"\n />\n ))}\n </div>\n <Select\n value={itemsPerPage.toString()}\n onValueChange={(value) => {\n setItemsPerPage(Number(value))\n setCurrentPage(1)\n }}\n >\n {itemsPerPageOptions.map((option) => (\n <option key={option} value={option.toString()}>\n {option} per page\n </option>\n ))}\n </Select>\n </div>\n <Table>\n <TableHeader>\n <TableRow>\n <TableHead className=\"w-[50px]\">\n <Checkbox checked={selectedRows.size === data.length} onCheckedChange={toggleAllRows} />\n </TableHead>\n {columns.map((column) => (\n <TableHead\n key={column.accessor as string}\n className={column.sortable ? \"cursor-pointer\" : \"\"}\n onClick={() => column.sortable && handleSort(column.accessor as keyof T)}\n >\n <div className=\"flex items-center\">\n {column.header}\n {column.sortable && <ArrowUpDown className=\"ml-2 h-4 w-4\" />}\n </div>\n </TableHead>\n ))}\n </TableRow>\n </TableHeader>\n <TableBody>\n {loading ? (\n <TableRow>\n <TableCell colSpan={columns.length + 1} className=\"h-24 text-center\">\n Loading...\n </TableCell>\n </TableRow>\n ) : data.length === 0 ? (\n <TableRow>\n <TableCell colSpan={columns.length + 1} className=\"h-24 text-center\">\n No results found.\n </TableCell>\n </TableRow>\n ) : (\n data.map((item) => (\n <TableRow key={item.id} className={selectedRows.has(item.id) ? \"bg-muted\" : \"\"}>\n <TableCell>\n <Checkbox checked={selectedRows.has(item.id)} onCheckedChange={() => toggleRowSelection(item.id)} />\n </TableCell>\n {columns.map((column) => (\n <TableCell key={column.accessor as string}>{renderCell(item, column)}</TableCell>\n ))}\n </TableRow>\n ))\n )}\n </TableBody>\n </Table>\n {meta && (\n <div className=\"flex justify-between items-center mt-4\">\n <div>\n Showing {(meta.current_page - 1) * meta.per_page + 1} to{\" \"}\n {Math.min(meta.current_page * meta.per_page, meta.total)} of {meta.total} entries\n </div>\n <div className=\"flex space-x-2\">\n <Button onClick={() => setCurrentPage((prev) => Math.max(prev - 1, 1))} disabled={currentPage === 1}>\n Previous\n </Button>\n <Button\n onClick={() => setCurrentPage((prev) => Math.min(prev + 1, meta.last_page))}\n disabled={currentPage === meta.last_page}\n >\n Next\n </Button>\n </div>\n </div>\n )}\n </div>\n )\n}\n\n// Custom cell renderers\nexport const AvatarCell = ({ value }: { value: string }) => (\n <Avatar>\n <AvatarImage src={value} alt=\"Avatar\" />\n <AvatarFallback>Avatar</AvatarFallback>\n </Avatar>\n)\n\nexport const BadgeCell = ({ value }: { value: string }) => <Badge variant=\"outline\">{value}</Badge>\n\nexport const TooltipCell = ({ value, tooltip }: { value: string; tooltip: string }) => (\n <TooltipProvider>\n <Tooltip>\n <TooltipTrigger>{value}</TooltipTrigger>\n <TooltipContent>\n <p>{tooltip}</p>\n </TooltipContent>\n </Tooltip>\n </TooltipProvider>\n)\n\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { X } from \"lucide-react\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst Dialog = DialogPrimitive.Root\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n \"fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({\n className,\n ...props\n }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-1.5 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n)\nDialogHeader.displayName = \"DialogHeader\"\n\nconst DialogFooter = ({\n className,\n ...props\n }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2\",\n className\n )}\n {...props}\n />\n)\nDialogFooter.displayName = \"DialogFooter\"\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogTrigger,\n DialogClose,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\n\nimport {cn} from \"../../../lib/utils\";\nimport {Dialog, DialogContent} from \"./dialog\";\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\nconst CommandDialog = ({ children, ...props }: DialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({\n className,\n ...props\n }: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport {cn} from \"../../../lib/utils\";\n\nconst Popover = PopoverPrimitive.Root\n\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverAnchor = PopoverPrimitive.Anchor\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"center\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","// 'use client';\n\nimport * as React from 'react';\nimport { Check, ChevronsUpDown } from 'lucide-react';\n\nimport { cn } from '../../lib/utils';\nimport { Button } from '../shadcn/ui/button';\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n} from '../shadcn/ui/command';\nimport { Popover, PopoverContent, PopoverTrigger } from '../shadcn/ui/popover';\n\ninterface ComboboxItem {\n value: string;\n label: string;\n}\n\ninterface AdvancedComboboxProps {\n items: ComboboxItem[];\n placeholder: string;\n onSelect: (value: string) => void;\n multiple?: boolean;\n searchable?: boolean;\n}\n\nexport function AdvancedCombobox({\n items,\n placeholder,\n onSelect,\n multiple = false,\n searchable = true,\n}: AdvancedComboboxProps) {\n const [open, setOpen] = React.useState(false);\n const [value, setValue] = React.useState<string[]>([]);\n const [search, setSearch] = React.useState('');\n\n const filteredItems = React.useMemo(() => {\n if (!searchable || !search) return items;\n return items.filter(\n (item) =>\n item.label.toLowerCase().includes(search.toLowerCase()) ||\n item.value.toLowerCase().includes(search.toLowerCase()),\n );\n }, [items, search, searchable]);\n\n const handleSelect = (currentValue: string) => {\n if (multiple) {\n setValue((prev) => {\n if (prev.includes(currentValue)) {\n return prev.filter((v) => v !== currentValue);\n } else {\n return [...prev, currentValue];\n }\n });\n } else {\n setValue([currentValue]);\n setOpen(false);\n }\n onSelect(currentValue);\n };\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <Button\n variant=\"outline\"\n role=\"combobox\"\n aria-expanded={open}\n className=\"w-[200px] justify-between\"\n >\n {value.length > 0\n ? multiple\n ? `${value.length} selected`\n : items.find((item) => item.value === value[0])\n ?.label\n : placeholder}\n <ChevronsUpDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-[200px] p-0\">\n <Command>\n {searchable && (\n <CommandInput\n placeholder={`Search ${placeholder.toLowerCase()}...`}\n onValueChange={setSearch}\n />\n )}\n <CommandEmpty>No item found.</CommandEmpty>\n <CommandGroup>\n {filteredItems.map((item) => (\n <CommandItem\n key={item.value}\n onSelect={() => handleSelect(item.value)}\n >\n <Check\n className={cn(\n 'mr-2 h-4 w-4',\n value.includes(item.value)\n ? 'opacity-100'\n : 'opacity-0',\n )}\n />\n {item.label}\n </CommandItem>\n ))}\n </CommandGroup>\n </Command>\n </PopoverContent>\n </Popover>\n );\n}\n","\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronLeft, ChevronRight } from \"lucide-react\"\nimport { DayPicker } from \"react-day-picker\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { buttonVariants } from \"./button\"\n\nexport type CalendarProps = React.ComponentProps<typeof DayPicker>\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n ...props\n }: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\"p-3\", className)}\n classNames={{\n months: \"flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0\",\n month: \"space-y-4\",\n caption: \"flex justify-center pt-1 relative items-center\",\n caption_label: \"text-sm font-medium\",\n nav: \"space-x-1 flex items-center\",\n nav_button: cn(\n buttonVariants({ variant: \"outline\" }),\n \"h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100\"\n ),\n nav_button_previous: \"absolute left-1\",\n nav_button_next: \"absolute right-1\",\n table: \"w-full border-collapse space-y-1\",\n head_row: \"flex\",\n head_cell:\n \"text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]\",\n row: \"flex w-full mt-2\",\n cell: \"h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20\",\n day: cn(\n buttonVariants({ variant: \"ghost\" }),\n \"h-9 w-9 p-0 font-normal aria-selected:opacity-100\"\n ),\n day_range_end: \"day-range-end\",\n day_selected:\n \"bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground\",\n day_today: \"bg-accent text-accent-foreground\",\n day_outside:\n \"day-outside text-muted-foreground aria-selected:bg-accent/50 aria-selected:text-muted-foreground\",\n day_disabled: \"text-muted-foreground opacity-50\",\n day_range_middle:\n \"aria-selected:bg-accent aria-selected:text-accent-foreground\",\n day_hidden: \"invisible\",\n ...classNames,\n }}\n components={{\n IconLeft: ({ className, ...props }) => (\n <ChevronLeft className={cn(\"h-4 w-4\", className)} {...props} />\n ),\n IconRight: ({ className, ...props }) => (\n <ChevronRight className={cn(\"h-4 w-4\", className)} {...props} />\n ),\n }}\n {...props}\n />\n )\n}\nCalendar.displayName = \"Calendar\"\n\nexport { Calendar }\n","'use client';\n\nimport * as React from 'react';\nimport * as LabelPrimitive from '@radix-ui/react-label';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '../../../lib/utils';\n\nconst labelVariants = cva(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n);\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> &\n VariantProps<typeof labelVariants>\n>(({ className, ...props }, ref) => (\n <LabelPrimitive.Root\n ref={ref}\n className={cn(labelVariants(), className)}\n {...props}\n />\n));\nLabel.displayName = LabelPrimitive.Root.displayName;\n\nexport { Label };\n","\"use client\"\n\nimport * as React from \"react\"\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof SwitchPrimitives.Root>\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\",\n className\n )}\n {...props}\n ref={ref}\n >\n <SwitchPrimitives.Thumb\n className={cn(\n \"pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n))\nSwitch.displayName = SwitchPrimitives.Root.displayName\n\nexport { Switch }\n","'use client';\n\nimport * as React from 'react';\nimport { format, isValid, parse } from 'date-fns';\nimport { CalendarIcon, Clock, X } from 'lucide-react';\nimport { useDebounce } from 'use-debounce';\nimport { DateRange } from 'react-day-picker';\n\nimport { cn } from '../../lib/utils';\nimport { Button } from '../shadcn/ui/button';\nimport { Calendar } from '../shadcn/ui/calendar';\nimport { Popover, PopoverContent, PopoverTrigger } from '../shadcn/ui/popover';\nimport { Input } from '../shadcn/ui/input';\nimport { Label } from '../shadcn/ui/label';\nimport { Switch } from '../shadcn/ui/switch';\n\nexport type DateValue = Date | undefined;\nexport type RangeValue = { from: DateValue; to: DateValue };\nexport type PickerValue = DateValue | RangeValue | undefined;\n\ninterface DateTimePickerProps {\n mode: 'single' | 'range';\n selected: Date | DateRange | undefined;\n onSelect: (date: Date | DateRange | undefined) => void;\n disabledDates?: Date[];\n fromDate?: Date;\n toDate?: Date;\n}\n\nexport function DateTimePicker({\n mode,\n selected,\n onSelect,\n disabledDates,\n fromDate,\n toDate,\n}: DateTimePickerProps) {\n const [date, setDate] = React.useState<Date | undefined>(\n mode === 'single' ? (selected as Date) : undefined,\n );\n const [range, setRange] = React.useState<DateRange | undefined>(\n mode === 'range' ? (selected as DateRange) : undefined,\n );\n const [isOpen, setIsOpen] = React.useState(false);\n const [showSeconds, setShowSeconds] = React.useState(false);\n const [debouncedHandleTimeChange] = useDebounce((newDate: PickerValue) => {\n onSelect(newDate);\n }, 300);\n\n // Initialize with current time for time-only mode\n React.useEffect(() => {\n if (mode === 'single' && !date) {\n const now = new Date();\n setDate(now);\n }\n }, [mode, date, setDate]);\n\n const handleDateSelect = (\n selectedDate: DateValue | RangeValue | undefined,\n ) => {\n if (selectedDate) {\n if (mode === 'single' && date instanceof Date) {\n // Preserve the time when selecting a new date in time-only mode\n const currentTime = date;\n if (selectedDate instanceof Date) {\n selectedDate.setHours(\n currentTime.getHours(),\n currentTime.getMinutes(),\n currentTime.getSeconds(),\n );\n }\n }\n debouncedHandleTimeChange(selectedDate);\n }\n if (mode === 'single') {\n setIsOpen(false);\n }\n };\n\n const handleTimeChange = (\n e: React.ChangeEvent<HTMLInputElement>,\n isEndTime = false,\n ) => {\n const timeValue = e.target.value;\n const parsedTime = parseTimeString(timeValue);\n\n if (!parsedTime) return;\n\n if (mode === 'range' && range && 'from' in range) {\n const newDate = new Date(\n isEndTime\n ? range.to || range.from || new Date()\n : range.from || new Date(),\n );\n newDate.setHours(\n parsedTime.getHours(),\n parsedTime.getMinutes(),\n parsedTime.getSeconds(),\n );\n debouncedHandleTimeChange({\n from: isEndTime ? range.from : newDate,\n to: isEndTime ? newDate : range.to,\n });\n } else if (date instanceof Date) {\n const newDate = new Date(date);\n newDate.setHours(\n parsedTime.getHours(),\n parsedTime.getMinutes(),\n parsedTime.getSeconds(),\n );\n debouncedHandleTimeChange(newDate);\n } else {\n const newDate = new Date();\n newDate.setHours(\n parsedTime.getHours(),\n parsedTime.getMinutes(),\n parsedTime.getSeconds(),\n );\n debouncedHandleTimeChange(newDate);\n }\n };\n\n const formatDate = (date: PickerValue): string => {\n if (!date) return '';\n\n if (mode === 'range' && range && 'from' in range) {\n const fromDate = range.from ? format(range.from, 'PP') : '';\n const toDate = range.to ? format(range.to, 'PP') : '';\n const fromTime = range.from\n ? format(range.from, showSeconds ? 'HH:mm:ss' : 'HH:mm')\n : '';\n const toTime = range.to\n ? format(range.to, showSeconds ? 'HH:mm:ss' : 'HH:mm')\n : '';\n\n return `${fromDate}${fromTime ? ` ${fromTime}` : ''} - ${toDate}${\n toTime ? ` ${toTime}` : ''\n }`;\n }\n\n if (date instanceof Date) {\n return format(\n date,\n mode === 'single' ? (showSeconds ? 'HH:mm:ss' : 'HH:mm') : 'PP',\n );\n }\n\n return '';\n };\n\n const handleClear = () => {\n onSelect(\n mode === 'range' ? { from: undefined, to: undefined } : undefined,\n );\n };\n\n const parseTimeString = (timeString: string): Date | null => {\n const parsedTime = parse(\n timeString,\n showSeconds ? 'HH:mm:ss' : 'HH:mm',\n new Date(),\n );\n return isValid(parsedTime) ? parsedTime : null;\n };\n\n return (\n <Popover open={isOpen} onOpenChange={setIsOpen}>\n <PopoverTrigger asChild>\n <Button\n variant={'outline'}\n className={cn(\n 'w-full justify-start text-left font-normal h-9 bg-card',\n !date && 'text-muted-foreground',\n )}\n >\n {mode === 'single' ? (\n <Clock className=\"mr-2 h-4 w-4\" />\n ) : (\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n )}\n {date\n ? formatDate(date)\n : mode === 'single'\n ? 'Select time'\n : 'Select date'}\n {mode === 'single' && date && (\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"ml-auto h-6 w-6 p-0\"\n onClick={(e) => {\n e.stopPropagation();\n handleClear();\n }}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n )}\n </Button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n {mode === 'single' ? (\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={(value) => setDate(value)}\n disabled={disabledDates}\n fromDate={fromDate}\n toDate={toDate}\n initialFocus\n />\n ) : (\n <Calendar\n mode=\"range\"\n selected={range}\n onSelect={(value) => setRange(value)}\n disabled={disabledDates}\n fromDate={fromDate}\n toDate={toDate}\n initialFocus\n />\n )}\n {(mode === 'single' || mode === 'range') && (\n <div className=\"p-3 border-t\">\n <div className=\"flex items-center justify-between mb-2\">\n <Label htmlFor=\"showSeconds\" className=\"text-sm\">\n Show seconds\n </Label>\n <Switch\n id=\"showSeconds\"\n checked={showSeconds}\n onCheckedChange={setShowSeconds}\n />\n </div>\n <div className=\"flex justify-between items-end\">\n {mode === 'range' ? (\n <>\n <div className=\"flex flex-col\">\n <Label\n htmlFor=\"startTime\"\n className=\"text-sm mb-1\"\n >\n Start Time\n </Label>\n <Input\n id=\"startTime\"\n type=\"time\"\n step={showSeconds ? 1 : 60}\n onChange={handleTimeChange}\n value={\n range &&\n 'from' in range &&\n range.from\n ? format(\n range.from,\n showSeconds\n ? 'HH:mm:ss'\n : 'HH:mm',\n )\n : ''\n }\n />\n </div>\n <Clock className=\"mx-2 h-4 w-4 text-muted-foreground\" />\n <div className=\"flex flex-col\">\n <Label\n htmlFor=\"endTime\"\n className=\"text-sm mb-1\"\n >\n End Time\n </Label>\n <Input\n id=\"endTime\"\n type=\"time\"\n step={showSeconds ? 1 : 60}\n onChange={(e) =>\n handleTimeChange(e, true)\n }\n value={\n range &&\n 'from' in range &&\n range.to\n ? format(\n range.to,\n showSeconds\n ? 'HH:mm:ss'\n : 'HH:mm',\n )\n : ''\n }\n />\n </div>\n </>\n ) : (\n <div className=\"flex flex-col w-full\">\n <Label\n htmlFor=\"time\"\n className=\"text-sm mb-1\"\n >\n Time\n </Label>\n <Input\n id=\"time\"\n type=\"time\"\n step={showSeconds ? 1 : 60}\n onChange={handleTimeChange}\n value={\n date instanceof Date\n ? format(\n date,\n showSeconds\n ? 'HH:mm:ss'\n : 'HH:mm',\n )\n : ''\n }\n />\n </div>\n )}\n </div>\n </div>\n )}\n </PopoverContent>\n </Popover>\n );\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dsbtek/component-library",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -26,24 +26,30 @@
|
|
|
26
26
|
"@radix-ui/react-checkbox": "^1.1.4",
|
|
27
27
|
"@radix-ui/react-dialog": "^1.1.6",
|
|
28
28
|
"@radix-ui/react-icons": "^1.3.2",
|
|
29
|
+
"@radix-ui/react-label": "^2.1.2",
|
|
29
30
|
"@radix-ui/react-popover": "^1.1.6",
|
|
30
31
|
"@radix-ui/react-select": "^2.1.6",
|
|
31
32
|
"@radix-ui/react-slot": "^1.1.2",
|
|
33
|
+
"@radix-ui/react-switch": "^1.1.3",
|
|
32
34
|
"@radix-ui/react-tooltip": "^1.1.8",
|
|
33
35
|
"class-variance-authority": "^0.7.1",
|
|
34
36
|
"clsx": "^2.1.1",
|
|
35
37
|
"cmdk": "^1.0.4",
|
|
38
|
+
"date-fns": "^3.6.0",
|
|
36
39
|
"lucide-react": "^0.475.0",
|
|
37
40
|
"react": "^18.0.0",
|
|
41
|
+
"react-day-picker": "^8.10.1",
|
|
38
42
|
"react-dom": "^18.0.0",
|
|
39
43
|
"tailwind-merge": "^3.0.1",
|
|
40
44
|
"tailwindcss": "^4.0.6",
|
|
41
|
-
"tslib": "^2.8.1"
|
|
45
|
+
"tslib": "^2.8.1",
|
|
46
|
+
"use-debounce": "^10.0.4"
|
|
42
47
|
},
|
|
43
48
|
"devDependencies": {
|
|
44
49
|
"@swc/core": "^1.10.16",
|
|
45
50
|
"@types/react": "^19.0.8",
|
|
46
51
|
"@types/react-dom": "^19.0.3",
|
|
52
|
+
"@types/react-day-picker": "^5.3.0",
|
|
47
53
|
"tsup": "^8.3.6",
|
|
48
54
|
"typescript": "^5.7.3"
|
|
49
55
|
},
|