@phsa.tec/design-system-react 0.1.9 → 0.2.0
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 +372 -371
- package/dist/index.css +2549 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.mts +148 -35
- package/dist/index.d.ts +148 -35
- package/dist/index.js +1114 -1357
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1064 -1309
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +1 -2534
- package/dist/styles.js +1 -0
- package/package.json +12 -4
- package/dist/styles.css.map +0 -1
- package/dist/styles.d.mts +0 -2
- package/dist/styles.d.ts +0 -2
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/dataDisplay/Table/components/DynamicTable/index.tsx","../src/components/ui/table.tsx","../src/lib/utils.ts","../src/components/dataDisplay/Table/components/DynamicTable/data-table-view-options.tsx","../src/components/ui/button.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/dataDisplay/Table/components/DynamicTable/data-table-toolbar.tsx","../src/components/dataDisplay/Table/components/DynamicTable/data-table-pagination.tsx","../src/components/ui/select.tsx","../src/components/dataDisplay/Table/components/DynamicTable/data-table-column-header.tsx","../src/components/ui/badge.tsx","../src/components/dataDisplay/Icon/Icon.tsx","../src/components/ui/avatar.tsx","../src/components/dataDisplay/DataPairList/DataPairList.tsx","../src/components/dataDisplay/Text/Text.tsx","../src/components/dataInput/checkbox/Checkbox.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/label.tsx","../src/components/dataInput/form/index.ts","../src/components/ui/form.tsx","../src/components/dataDisplay/ErrorMessage/ErrorMessage.tsx","../src/components/ui/input.tsx","../src/components/dataInput/Input/components/Input/index.tsx","../src/components/feedback/ErrorLabel/index.tsx","../src/components/dataInput/Input/components/InputBase/index.tsx","../src/hooks/use-conditional-controller.tsx","../src/components/dataInput/Input/components/NumberInput/number-input.tsx","../src/components/dataInput/Input/components/MaskInput/mask-input.tsx","../src/hooks/use-mask.tsx","../src/components/actions/Button/Button.tsx","../src/components/ui/spinner.tsx","../src/hooks/use-toast.ts","../src/components/ui/toast.tsx","../src/components/ui/toaster.tsx","../src/components/dataInput/Input/components/MultipleInput/MultipleInput.tsx","../src/components/ui/dialog.tsx","../src/components/actions/Dialog/Dialog.tsx","../src/components/ui/collapsible.tsx","../src/components/actions/Steps/Steps.tsx","../src/components/ui/drawer.tsx","../src/components/layout/Drawer/CustomDrawer/index.tsx","../src/components/ui/sheet.tsx","../src/components/layout/Sheet/Sheet.tsx","../src/components/ui/sidebar.tsx","../src/hooks/use-mobile.tsx","../src/components/ui/separator.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/components/layout/Sidebar/components/app-sidebar.tsx","../src/components/layout/Sidebar/components/team-switcher.tsx","../src/components/layout/Sidebar/components/menus.tsx","../src/components/ui/breadcrumb.tsx","../src/components/layout/Sidebar/provider/index.tsx","../src/components/layout/Sidebar/components/header-sidebar.tsx","../src/components/layout/Sidebar/components/footer-sidebar.tsx","../src/components/layout/Sidebar/Sidebar.tsx","../src/components/layout/Sidebar/components/nav-user.tsx","../src/components/layout/PageLayout/index.tsx","../src/components/ui/tabs.tsx","../src/components/layout/Tabs/Tabs.tsx","../src/components/ui/alert-dialog.tsx","../src/components/actions/AlertDialog/AlertDialog.tsx","../src/components/dataInput/Input/components/MultipleInput/MultipleInputBase.tsx","../src/components/dataInput/Input/components/MultipleInput/MultipleMaskInput.tsx","../src/components/dataInput/Select/SelectBase.tsx","../src/components/dataInput/Select/Select.tsx","../src/components/dataDisplay/Label/Label.tsx","../src/components/dataInput/Select/MultiSelect/MultiSelectBase.tsx","../src/components/dataInput/Select/MultiSelect/index.tsx","../src/components/ui/switch.tsx","../src/components/dataInput/Switch/Switch.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n flexRender,\n getCoreRowModel,\n getSortedRowModel,\n getPaginationRowModel,\n useReactTable,\n SortingState,\n VisibilityState,\n PaginationState,\n} from \"@tanstack/react-table\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../../../../../components/ui/table\";\nimport { DataTableToolbar } from \"./data-table-toolbar\";\nimport { DataTablePagination } from \"./data-table-pagination\";\nimport { cn } from \"../../../../../lib/utils\";\nimport { DataTableColumnHeader } from \"./data-table-column-header\";\nimport { DynamicTableProps } from \"./types\";\n\nexport function DynamicTable<TData>({\n data,\n columns,\n className,\n toolbar,\n pagination: showPagination = true,\n sorting: showSorting = true,\n columnVisibility: showColumnVisibility = true,\n filters,\n rowsPerPage = [10, 20, 30, 40, 50],\n defaultSort = [],\n defaultVisibility = {},\n}: DynamicTableProps<TData>) {\n const [sorting, setSorting] = React.useState<SortingState>(defaultSort);\n const [columnVisibility, setColumnVisibility] =\n React.useState<VisibilityState>(defaultVisibility);\n const [{ pageIndex, pageSize }, setPagination] =\n React.useState<PaginationState>({\n pageIndex: 0,\n pageSize: rowsPerPage[0],\n });\n\n const pagination = React.useMemo(\n () => ({\n pageIndex,\n pageSize,\n }),\n [pageIndex, pageSize]\n );\n\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n onSortingChange: setSorting,\n getSortedRowModel: showSorting ? getSortedRowModel() : undefined,\n getPaginationRowModel: getPaginationRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onPaginationChange: setPagination,\n manualPagination: false,\n pageCount: Math.ceil(data.length / pageSize),\n state: {\n sorting,\n columnVisibility,\n pagination,\n },\n enableSorting: showSorting,\n });\n\n return (\n <div className=\"space-y-4\">\n {(toolbar || filters || showColumnVisibility) && (\n <DataTableToolbar\n table={table}\n filters={filters}\n showColumnVisibility={showColumnVisibility}\n />\n )}\n <div className={cn(\"rounded-md border\", className)}>\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder ? null : (\n <DataTableColumnHeader\n column={header.column}\n title={header.column.columnDef.header as string}\n />\n )}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow key={row.id}>\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"h-24 text-center\"\n >\n Nenhum resultado encontrado.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n {showPagination && (\n <DataTablePagination table={table} pageSizeOptions={rowsPerPage} />\n )}\n </div>\n );\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","import { clsx, type ClassValue } from \"clsx\"\nimport { twMerge } from \"tailwind-merge\"\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","\"use client\";\n\nimport { DropdownMenuTrigger } from \"@radix-ui/react-dropdown-menu\";\nimport { MixerHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { Table } from \"@tanstack/react-table\";\nimport { Button } from \"../../../../../components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n} from \"../../../../../components/ui/dropdown-menu\";\n\ninterface DataTableViewOptionsProps<TData> {\n table: Table<TData>;\n}\n\nexport function DataTableViewOptions<TData>({\n table,\n}: DataTableViewOptionsProps<TData>) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"ml-auto hidden h-8 lg:flex\"\n >\n <MixerHorizontalIcon className=\"mr-2 h-4 w-4\" />\n Colunas\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"w-[150px]\">\n <DropdownMenuLabel>Colunas visíveis</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {table\n .getAllColumns()\n .filter(\n (column) =>\n typeof column.accessorFn !== \"undefined\" && column.getCanHide()\n )\n .map((column) => {\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(!!value)}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","import * 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","\"use client\";\n\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n \"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 </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors 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 left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n","\"use client\";\n\nimport { DataTableViewOptions } from \"./data-table-view-options\";\nimport { DynamicTableToolbarProps } from \"./types\";\n\nexport function DataTableToolbar<TData>({\n table,\n filters,\n showColumnVisibility,\n}: DynamicTableToolbarProps<TData>) {\n return (\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-1 items-center space-x-2\">{filters}</div>\n {showColumnVisibility && <DataTableViewOptions table={table} />}\n </div>\n );\n}\n","\"use client\";\n\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n DoubleArrowLeftIcon,\n DoubleArrowRightIcon,\n} from \"@radix-ui/react-icons\";\nimport { Button } from \"../../../../../components/ui/button\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../../../../components/ui/select\";\nimport { DynamicTablePaginationProps } from \"./types\";\n\nexport function DataTablePagination<TData>({\n table,\n pageSizeOptions = [10, 20, 30, 40, 50],\n}: DynamicTablePaginationProps<TData>) {\n return (\n <div className=\"flex items-center justify-between px-2\">\n <div className=\"flex-1 text-sm text-muted-foreground\">\n {table.getFilteredSelectedRowModel().rows.length} de{\" \"}\n {table.getFilteredRowModel().rows.length} linha(s) selecionada(s).\n </div>\n <div className=\"flex items-center space-x-6 lg:space-x-8\">\n <div className=\"flex items-center space-x-2\">\n <p className=\"text-sm font-medium\">Linhas por página</p>\n <Select\n value={`${table.getState().pagination.pageSize}`}\n onValueChange={(value) => {\n table.setPageSize(Number(value));\n }}\n >\n <SelectTrigger className=\"h-8 w-[70px]\">\n <SelectValue placeholder={table.getState().pagination.pageSize} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {pageSizeOptions.map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"flex w-[100px] items-center justify-center text-sm font-medium\">\n Página {table.getState().pagination.pageIndex + 1} de{\" \"}\n {table.getPageCount()}\n </div>\n <div className=\"flex items-center space-x-2\">\n <Button\n variant=\"outline\"\n className=\"hidden h-8 w-8 p-0 lg:flex\"\n onClick={() => table.setPageIndex(0)}\n disabled={!table.getCanPreviousPage()}\n >\n <DoubleArrowLeftIcon className=\"h-4 w-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"h-8 w-8 p-0\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n <ChevronLeftIcon className=\"h-4 w-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"h-8 w-8 p-0\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n <ChevronRightIcon className=\"h-4 w-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"hidden h-8 w-8 p-0 lg:flex\"\n onClick={() => table.setPageIndex(table.getPageCount() - 1)}\n disabled={!table.getCanNextPage()}\n >\n <DoubleArrowRightIcon className=\"h-4 w-4\" />\n </Button>\n </div>\n </div>\n </div>\n );\n}\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\nexport type SelectProps = SelectPrimitive.SelectProps;\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 {\n ArrowDownIcon,\n ArrowUpIcon,\n CaretSortIcon,\n EyeNoneIcon,\n} from \"@radix-ui/react-icons\";\nimport { Column } from \"@tanstack/react-table\";\nimport { cn } from \"../../../../../lib/utils\";\nimport { Button } from \"../../../../../components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"../../../../../components/ui/dropdown-menu\";\n\ninterface DataTableColumnHeaderProps<TData, TValue>\n extends React.HTMLAttributes<HTMLDivElement> {\n column: Column<TData, TValue>;\n title: string;\n}\n\nexport function DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: DataTableColumnHeaderProps<TData, TValue>) {\n if (!column.getCanSort()) {\n return <div className={cn(className)}>{title}</div>;\n }\n\n return (\n <div className={cn(\"flex items-center space-x-2\", className)}>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"-ml-3 h-8 data-[state=open]:bg-accent\"\n >\n <span>{title}</span>\n {column.getIsSorted() === \"desc\" ? (\n <ArrowDownIcon className=\"ml-2 h-4 w-4\" />\n ) : column.getIsSorted() === \"asc\" ? (\n <ArrowUpIcon className=\"ml-2 h-4 w-4\" />\n ) : (\n <CaretSortIcon className=\"ml-2 h-4 w-4\" />\n )}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem onClick={() => column.toggleSorting(false)}>\n <ArrowUpIcon className=\"mr-2 h-3.5 w-3.5 text-muted-foreground/70\" />\n Crescente\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.toggleSorting(true)}>\n <ArrowDownIcon className=\"mr-2 h-3.5 w-3.5 text-muted-foreground/70\" />\n Decrescente\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={() => column.toggleVisibility(false)}>\n <EyeNoneIcon className=\"mr-2 h-3.5 w-3.5 text-muted-foreground/70\" />\n Ocultar\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\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 success:\n \"border-transparent bg-success text-primary-foreground shadow hover:bg-success/80\",\n warning:\n \"border-transparent bg-warning text-primary-foreground shadow hover:bg-warning/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","import React, { useCallback, useMemo } from \"react\";\nimport { IconContext } from \"react-icons\";\nimport { IconProps } from \"./types\";\n\nexport const Icon: React.FC<IconProps> = ({ name, size = 24, ...rest }) => {\n const nameIcon = useMemo(() => name, [name]);\n\n const iconsModulePath = useMemo(\n () => ({\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n md: require(\"react-icons/md\"),\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n fa: require(\"react-icons/fa\"),\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n bs: require(\"react-icons/bs\"),\n }),\n []\n );\n\n const typeIcon = useMemo(() => {\n const matches = [...nameIcon.matchAll(/[A-Z]/g)];\n return String(\n nameIcon.slice(0, matches[1]?.index) || \"\"\n ).toLocaleLowerCase();\n }, [nameIcon]);\n\n const Icon = useCallback(\n (props: typeof rest) => {\n try {\n if (!typeIcon || !nameIcon) return <></>;\n\n return iconsModulePath[typeIcon as keyof typeof iconsModulePath][\n nameIcon\n ]?.(props);\n } catch {\n return <></>;\n }\n },\n [iconsModulePath, nameIcon, typeIcon]\n );\n\n return (\n <IconContext.Provider value={{ size: String(size) }}>\n <Icon {...rest} />\n </IconContext.Provider>\n );\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\n\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 React from \"react\";\nimport { isEmpty } from \"lodash\";\nimport { DataPairListProps } from \"./types\";\nimport { cn } from \"../../../lib/utils\";\nimport { Text } from \"../Text\";\n\nexport const DataPairList = ({\n title,\n data,\n labels,\n className,\n infoDirection = \"horizontal\",\n direction = \"vertical\",\n withBorder = false,\n header = <></>,\n}: DataPairListProps) => {\n if (isEmpty(data)) return null;\n\n return (\n <div\n className={cn(\n \"flex flex-col gap-2 rounded-md p-4\",\n withBorder && \"border border-muted\",\n className\n )}\n >\n <div className=\"flex gap-3\">\n {title && <Text variant=\"title\">{title}</Text>}\n {header}\n </div>\n <div\n className={cn(\n \"grid grid-cols-1 mt-5\",\n direction === \"vertical\"\n ? \"gap-3\"\n : \"sm:grid-cols-2 md:grid-cols-4 gap-10\"\n )}\n >\n {Object.entries(data || {}).map(([key, value], index) => (\n <div\n className={cn(\n \"flex gap-3\",\n infoDirection === \"horizontal\" ? \"flex-row\" : \"flex-col\"\n )}\n key={index}\n >\n <Text className=\"uppercase text-muted-foreground font-bold\">\n {labels?.[key] || key}:\n </Text>\n <Text>{value}</Text>\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../..//lib/utils\";\n\n// Definição das variantes com pesos adequados\nconst textVariants = cva(\"\", {\n variants: {\n variant: {\n display: \"text-5xl font-extrabold tracking-tight\",\n title: \"text-3xl font-bold tracking-tight\",\n subtitle: \"text-2xl font-semibold\",\n normal: \"text-base font-normal\",\n caption: \"text-sm font-medium\",\n muted: \"text-sm font-normal text-muted-foreground\",\n },\n align: {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n justify: \"text-justify\",\n },\n },\n defaultVariants: {\n variant: \"normal\",\n align: \"left\",\n },\n});\n\n// Mapeia variantes para as tags HTML corretas\nconst tagMap = {\n display: \"h1\",\n title: \"h2\",\n subtitle: \"h3\",\n normal: \"p\",\n caption: \"small\",\n muted: \"p\",\n} as const;\n\ntype TextProps = VariantProps<typeof textVariants> & {\n className?: string;\n children: React.ReactNode;\n};\n\nexport function Text({\n variant = \"normal\",\n align,\n className,\n children,\n}: TextProps) {\n const Tag = tagMap[variant || \"normal\"] || \"p\";\n\n return (\n <Tag className={cn(textVariants({ variant, align }), className)}>\n {children}\n </Tag>\n );\n}\n","import { useFormContext } from \"react-hook-form\";\nimport {\n Checkbox as CheckboxUI,\n CheckboxProps as CheckboxUIProps,\n} from \"../../ui/checkbox\";\nimport { Label } from \"../../../components/ui/label\";\n\nimport { FormControl, FormField, FormItem, FormLabel } from \"../form\";\n\nimport { ErrorMessage } from \"../../../components/dataDisplay/ErrorMessage\";\n\nexport type CheckboxProps = CheckboxUIProps & {\n label: string;\n error?: string;\n withoutForm?: boolean;\n};\n\nexport const Checkbox = ({\n label,\n error,\n withoutForm,\n ...props\n}: CheckboxProps) => {\n const form = useFormContext();\n\n const hasForm = !withoutForm && !!form && !!props.name;\n if (!hasForm)\n return (\n <div className=\"flex items-center space-x-2\">\n <CheckboxUI {...props} />\n {label && <Label htmlFor={props.id}>{label}</Label>}\n {error && <ErrorMessage>{error}</ErrorMessage>}\n </div>\n );\n\n return (\n <FormField\n control={form.control}\n name={props.name ?? \"\"}\n render={({ field }) => (\n <FormItem className=\"flex flex-row items-start space-x-3 space-y-0 rounded-md border p-4\">\n <FormControl>\n <CheckboxUI\n checked={field.value}\n onCheckedChange={field.onChange}\n />\n </FormControl>\n {label && (\n <div className=\"space-y-1 leading-none\">\n <FormLabel>{label}</FormLabel>\n </div>\n )}\n </FormItem>\n )}\n />\n );\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\nexport type CheckboxProps = React.ComponentPropsWithoutRef<\n typeof CheckboxPrimitive.Root\n>;\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\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 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\nexport type LabelProps = React.ComponentPropsWithoutRef<\n typeof LabelPrimitive.Root\n> &\n VariantProps<typeof labelVariants>;\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n LabelProps\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","import { useFormContext } from \"react-hook-form\";\nexport * from \"../../ui/form\";\nexport { useFormContext };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n} from \"react-hook-form\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Label } from \"../../components/ui/label\";\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState, formState } = useFormContext();\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n);\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n </FormItemContext.Provider>\n );\n});\nFormItem.displayName = \"FormItem\";\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\nFormLabel.displayName = \"FormLabel\";\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = \"FormControl\";\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"text-[0.8rem] text-muted-foreground\", className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = \"FormDescription\";\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message) : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"text-[0.8rem] font-medium text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nFormMessage.displayName = \"FormMessage\";\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n","export type ErrorMessageProps = {\n children: string;\n};\nexport const ErrorMessage = ({ children }: ErrorMessageProps) => {\n return <p className=\"text-sm font-medium text-destructive\">{children}</p>;\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nexport type InputProps = React.ComponentProps<\"input\">;\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\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","import { Input as InputUI } from \"@/components/ui/input\";\nimport { InputProps } from \"./types\";\nimport { useMemo } from \"react\";\nimport { InputBase } from \"../InputBase\";\nimport { useConditionalController } from \"@/hooks/use-conditional-controller\";\nimport { cn } from \"@/lib/utils\";\n\nexport const Input = ({\n \"data-testid\": dataTestId,\n withoutForm = false,\n extraElement,\n containerClassName,\n ...props\n}: InputProps) => {\n const formData = useConditionalController({\n name: props.name || \"\",\n withoutForm,\n });\n\n const inputProps = useMemo(() => {\n return {\n ...formData,\n ...props,\n };\n }, [formData, props]);\n\n return (\n <InputBase\n label={props.label}\n error={props.error}\n required={props.required}\n data-testid={dataTestId}\n >\n <div className={cn(\"flex items-center gap-2\", containerClassName)}>\n <InputUI\n {...inputProps}\n data-testid={dataTestId}\n className={cn(\n props.className,\n props.error &&\n \"border-destructive focus:border-destructive focus-visible:ring-0\"\n )}\n />\n {extraElement}\n </div>\n </InputBase>\n );\n};\n","import React from \"react\";\nimport { Icon } from \"@/components/dataDisplay\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ErrorLabelProps = React.PropsWithChildren<{\n className?: string;\n \"data-testid\"?: string;\n}>;\n\nexport const ErrorLabel = ({\n children,\n className,\n \"data-testid\": dataTestId,\n}: ErrorLabelProps) => {\n return (\n <div\n className={cn(\"flex items-center gap-2 my-2\", className)}\n data-testid={`${dataTestId}-error-label`}\n >\n <Icon name=\"MdErrorOutline\" size={18} className=\"text-destructive\" />\n <span className=\"text-destructive text-sm\">{children}</span>\n </div>\n );\n};\n","import { ErrorLabel } from \"@/components/feedback/ErrorLabel\";\nimport { InputProps as InputPropsUI } from \"../../../../ui/input\";\nimport { Label } from \"../../../../ui/label\";\n\nexport type InputBaseProps = Omit<InputPropsUI, \"children\"> & {\n label?: string;\n error?: string;\n required?: boolean;\n children: React.ReactNode;\n \"data-testid\"?: string;\n};\n\nexport const InputBase = ({\n label,\n error,\n children,\n required,\n \"data-testid\": testId,\n}: InputBaseProps) => {\n return (\n <div>\n {label && (\n <Label data-testid={`${testId}-label`}>\n {`${label} ${required ? \"*\" : \"\"}`}{\" \"}\n </Label>\n )}\n {children}\n {error && <ErrorLabel data-testid={testId}>{error}</ErrorLabel>}\n </div>\n );\n};\n","import { useMemo } from \"react\";\nimport {\n useController,\n useForm,\n useFormContext,\n ControllerRenderProps,\n FieldValues,\n} from \"react-hook-form\";\n\nexport const useConditionalController = ({\n name,\n withoutForm,\n}: {\n name: string;\n withoutForm?: boolean;\n}): ControllerRenderProps<FieldValues, string> | Record<string, never> => {\n const form = useFormContext();\n\n const hasForm = useMemo(() => {\n return !withoutForm && !!form?.control;\n }, [withoutForm, form]);\n\n const tempForm = useForm();\n\n const controlToUse = useMemo(() => {\n return hasForm ? form.control : tempForm.control;\n }, [tempForm, form, hasForm]);\n\n const controller = useController({\n control: controlToUse,\n name: name || \"temp\",\n });\n\n return hasForm ? controller.field : {};\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n NumericFormat,\n NumericFormatProps,\n SourceInfo,\n} from \"react-number-format\";\nimport { InputBase } from \"../InputBase\";\nimport { Input } from \"../../../../ui/input\";\nimport { InputProps } from \"../Input/types\";\nimport { useCallback, useMemo } from \"react\";\nimport { useConditionalController } from \"@/hooks/use-conditional-controller\";\n\nexport type NumberInputProps = Omit<NumericFormatProps, \"onChange\"> &\n InputProps;\n\nexport const NumberInput = (props: NumberInputProps) => {\n const formData = useConditionalController({\n name: props.name || \"\",\n withoutForm: props.withoutForm,\n });\n\n const inputProps = useMemo(() => {\n return {\n ...formData,\n ...props,\n };\n }, [formData, props]);\n\n const onValueChange = useCallback(\n (\n data: {\n value: string;\n floatValue: number | undefined;\n formattedValue: string;\n },\n sourceInfo: SourceInfo\n ) => {\n const syntheticEvent = {\n target: {\n value: data.formattedValue,\n name: props.name,\n },\n currentTarget: {\n value: data.formattedValue,\n name: props.name,\n },\n } as React.ChangeEvent<HTMLInputElement>;\n\n props.onChange?.(syntheticEvent);\n props.onValueChange?.(data, sourceInfo);\n if (formData.onChange) {\n formData.onChange(data.formattedValue);\n }\n },\n [props, formData]\n );\n\n return (\n <InputBase {...props}>\n <NumericFormat\n {...inputProps}\n customInput={Input}\n value={props.value}\n onValueChange={onValueChange}\n />\n </InputBase>\n );\n};\n","\"use client\";\nimport * as React from \"react\";\nimport { Input } from \"../Input\";\nimport { useConditionalController } from \"@/hooks/use-conditional-controller\";\nimport { InputProps } from \"../Input/types\";\nimport { useMask } from \"@/hooks/use-mask\";\nimport { useRef } from \"react\";\n\nexport type MaskInputProps = {\n mask?: string;\n} & InputProps;\n\nexport const MaskInput = ({\n \"data-testid\": dataTestId,\n withoutForm = false,\n extraElement,\n mask = \"\",\n ...props\n}: MaskInputProps) => {\n const formData = useConditionalController({\n name: props.name || \"\",\n withoutForm,\n });\n\n const inputProps = React.useMemo(() => {\n return {\n ...formData,\n ...props,\n };\n }, [formData, props]);\n\n const { applyMask } = useMask({ mask });\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const applyMaskToInput = React.useCallback(\n (value: string) => {\n if (inputRef.current && mask) {\n const maskedValue = applyMask(value);\n inputRef.current.value = maskedValue;\n }\n },\n [applyMask, mask]\n );\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const maskedValue = mask ? applyMask(e.target.value) : e.target.value;\n\n const response = {\n ...e,\n target: {\n ...e.target,\n value: maskedValue,\n },\n };\n applyMaskToInput(maskedValue);\n return inputProps?.onChange?.(response);\n },\n [applyMask, inputProps, mask, applyMaskToInput]\n );\n\n return (\n <Input\n {...inputProps}\n ref={inputRef}\n onChange={handleChange}\n extraElement={extraElement}\n data-testid={dataTestId}\n withoutForm={true}\n />\n );\n};\n","import { useState, useCallback } from \"react\";\n\nexport type UseMaskProps = {\n mask: string;\n placeholder?: string; // Placeholder que mostra a máscara\n showMask?: boolean; // Se deve mostrar a máscara mesmo sem valor\n allowEmpty?: boolean; // Se permite valor vazio\n transform?: \"uppercase\" | \"lowercase\" | \"capitalize\"; // Transformação do texto\n};\n\nexport const useMask = ({ mask, ...options }: UseMaskProps) => {\n const [value, setValue] = useState(\"\");\n\n const applyMask = useCallback(\n (inputValue: string) => {\n if (!inputValue || !mask) return \"\";\n\n // Remove todos os caracteres que não são letras ou números\n const cleanValue = inputValue.replace(/[^a-zA-Z0-9]/g, \"\");\n\n let maskedValue = \"\";\n let cleanIndex = 0;\n\n for (let i = 0; i < mask.length && cleanIndex < cleanValue.length; i++) {\n const maskChar = mask[i];\n const inputChar = cleanValue[cleanIndex];\n\n if (maskChar === \"9\") {\n // Só aceita números\n if (/\\d/.test(inputChar)) {\n maskedValue += inputChar;\n cleanIndex++;\n } else {\n // Se não for número, pula esse caractere do input\n cleanIndex++;\n i--; // Volta um passo na máscara para tentar novamente\n }\n } else if (maskChar === \"A\") {\n // Só aceita letras\n if (/[a-zA-Z]/.test(inputChar)) {\n let char = inputChar;\n // Aplica transformação se especificada\n if (options.transform === \"uppercase\") char = char.toUpperCase();\n else if (options.transform === \"lowercase\")\n char = char.toLowerCase();\n maskedValue += char;\n cleanIndex++;\n } else {\n // Se não for letra, pula esse caractere do input\n cleanIndex++;\n i--; // Volta um passo na máscara para tentar novamente\n }\n } else {\n // Caractere literal da máscara (parênteses, hífen, etc.)\n maskedValue += maskChar;\n }\n }\n\n return maskedValue;\n },\n [mask, options.transform]\n );\n\n const handleSetValue = useCallback(\n (newValue: string) => {\n const maskedValue = applyMask(newValue);\n setValue(maskedValue);\n },\n [applyMask]\n );\n\n // Função para obter valor sem máscara (raw)\n const getRawValue = useCallback(() => {\n return value.replace(/[^a-zA-Z0-9]/g, \"\");\n }, [value]);\n\n // Função para verificar se está completo\n const isComplete = useCallback(() => {\n return value.length === mask.length;\n }, [value, mask]);\n\n // Função para verificar se é válido\n const isValid = useCallback(() => {\n // Implementar validação específica\n return isComplete() && value.length > 0;\n }, [isComplete, value]);\n\n // Função para limpar o valor\n const clear = useCallback(() => {\n setValue(\"\");\n }, []);\n\n // Compatibilidade com react-hook-form\n const getFormProps = useCallback(\n () => ({\n value,\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => {\n handleSetValue(e.target.value);\n },\n placeholder: options.placeholder,\n }),\n [value, handleSetValue, options.placeholder]\n );\n\n return {\n value,\n setValue: handleSetValue,\n rawValue: getRawValue(),\n isComplete: isComplete(),\n isValid: isValid(),\n applyMask,\n clear,\n placeholder: options.placeholder || mask.replace(/[9A]/g, \"_\"),\n formProps: getFormProps(),\n };\n};\n","import { forwardRef } from \"react\";\nimport { Spinner } from \"../../../components/feedback\";\nimport {\n Button as UIButton,\n ButtonProps as UIButtonProps,\n} from \"../../ui/button\";\n\nexport type ButtonProps = UIButtonProps & {\n loading?: boolean;\n};\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, disabled, loading, ...rest }, ref) => {\n return (\n <UIButton {...rest} disabled={disabled || loading} ref={ref}>\n {loading && <Spinner className=\"fill-white\" />}\n {children}\n </UIButton>\n );\n }\n);\n\nButton.displayName = \"Button\";\n","import React from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { VariantProps, cva } from \"class-variance-authority\";\nimport { Loader } from \"lucide-react\";\nimport { Icon } from \"../dataDisplay\";\n\nconst spinnerVariants = cva(\"flex-col items-center justify-center\", {\n variants: {\n show: {\n true: \"flex\",\n false: \"hidden\",\n },\n },\n defaultVariants: {\n show: true,\n },\n});\n\nconst loaderVariants = cva(\"animate-spin text-primary\", {\n variants: {\n size: {\n small: \"size-6\",\n medium: \"size-8\",\n large: \"size-12\",\n },\n },\n defaultVariants: {\n size: \"medium\",\n },\n});\n\ninterface SpinnerContentProps\n extends VariantProps<typeof spinnerVariants>,\n VariantProps<typeof loaderVariants> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport function Spinner({\n size,\n show,\n children,\n className,\n}: SpinnerContentProps) {\n return (\n <span className={spinnerVariants({ show })}>\n <Icon\n name=\"FaSpinner\"\n className={cn(loaderVariants({ size }), className)}\n />\n {children}\n </span>\n );\n}\n","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"../components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ToastPrimitives from \"@radix-ui/react-toast\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst ToastProvider = ToastPrimitives.Provider;\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n \"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]\",\n className\n )}\n {...props}\n />\n));\nToastViewport.displayName = ToastPrimitives.Viewport.displayName;\n\nconst toastVariants = cva(\n \"group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full\",\n {\n variants: {\n variant: {\n default: \"border bg-background text-foreground\",\n success: \"border-success bg-success text-success-foreground\",\n destructive:\n \"destructive group border-destructive bg-destructive text-destructive-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> &\n VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return (\n <ToastPrimitives.Root\n ref={ref}\n className={cn(toastVariants({ variant }), className)}\n {...props}\n />\n );\n});\nToast.displayName = ToastPrimitives.Root.displayName;\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n \"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive\",\n className\n )}\n {...props}\n />\n));\nToastAction.displayName = ToastPrimitives.Action.displayName;\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n \"absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600\",\n className\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"h-4 w-4\" />\n </ToastPrimitives.Close>\n));\nToastClose.displayName = ToastPrimitives.Close.displayName;\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title\n ref={ref}\n className={cn(\"text-sm font-semibold [&+div]:text-xs\", className)}\n {...props}\n />\n));\nToastTitle.displayName = ToastPrimitives.Title.displayName;\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description\n ref={ref}\n className={cn(\"text-sm opacity-90\", className)}\n {...props}\n />\n));\nToastDescription.displayName = ToastPrimitives.Description.displayName;\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\n\nexport {\n type ToastProps,\n type ToastActionElement,\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction,\n};\n","\"use client\";\n\nimport { useToast } from \"../../hooks/use-toast\";\nimport {\n Toast,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n} from \"../../components/ui/toast\";\n\nexport function Toaster() {\n const { toasts } = useToast();\n\n return (\n <ToastProvider>\n {toasts.map(function ({ id, title, description, action, ...props }) {\n return (\n <Toast key={id} {...props}>\n <div className=\"grid gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && (\n <ToastDescription>{description}</ToastDescription>\n )}\n </div>\n {action}\n <ToastClose />\n </Toast>\n );\n })}\n <ToastViewport />\n </ToastProvider>\n );\n}\n","import { Button } from \"../../../../actions/Button\";\nimport { Icon } from \"../../../../dataDisplay/Icon\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { useConditionalController } from \"@/hooks/use-conditional-controller\";\nimport { MaskInput, MaskInputProps } from \"../MaskInput\";\n\nexport type MultipleInputProps = MaskInputProps & {\n data?: string[];\n onAdd?: (data: string) => void;\n onRemove?: (position: number) => void;\n name: string;\n defaultValue?: string;\n \"data-testid\"?: string;\n};\n\nexport const MultipleInput = ({\n data = [],\n onAdd = () => {},\n defaultValue = \"\",\n onRemove = () => {},\n withoutForm = false,\n ...props\n}: MultipleInputProps) => {\n const [inputValue, setInputValue] = useState(defaultValue);\n\n const formData = useConditionalController({\n name: props.name || \"\",\n withoutForm,\n });\n\n const inputItems = useMemo(() => {\n if (formData?.value) {\n return formData.value;\n }\n return data;\n }, [data, formData]);\n\n const onAddData = useCallback(() => {\n const trimmedValue = inputValue.trim();\n if (trimmedValue) {\n if (formData?.onChange) {\n formData.onChange([...inputItems, trimmedValue]);\n } else {\n onAdd(trimmedValue);\n }\n setInputValue(\"\");\n }\n }, [inputValue, formData, onAdd, inputItems]);\n\n const onRemoveData = useCallback(\n (index: number) => {\n if (formData?.onChange) {\n const newData = inputItems.filter(\n (_: string, i: number) => i !== index\n );\n formData.onChange(newData);\n } else {\n onRemove(index);\n }\n },\n [formData, inputItems, onRemove]\n );\n\n const renderItens = useCallback(() => {\n return inputItems?.map((item: string, index: number) => {\n return (\n <div key={item} className=\"flex justify-between\">\n {item}\n <Button\n variant=\"ghost\"\n className=\"text-destructive\"\n size={\"icon\"}\n onClick={() => onRemoveData(index)}\n >\n <Icon name=\"MdDelete\" />\n </Button>\n </div>\n );\n });\n }, [inputItems, onRemoveData]);\n\n const extraElement = useMemo(\n () => (\n <Button type=\"button\" onClick={onAddData} disabled={!inputValue}>\n <Icon name=\"MdAdd\" />\n </Button>\n ),\n [onAddData, inputValue]\n );\n\n return (\n <div className=\"flex flex-col gap-2\">\n <MaskInput\n {...props}\n withoutForm\n extraElement={extraElement}\n onChange={(e) => {\n setInputValue(e.target.value);\n }}\n value={inputValue}\n />\n {renderItens()}\n </div>\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\nexport type DialogProps = DialogPrimitive.DialogProps;\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 overflow-auto max-h-[80vh]\",\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\";\nimport {\n Dialog as DialogComponent,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogProps as DialogComponentProps,\n DialogClose,\n} from \"../../../components/ui/dialog\";\nimport { PropsWithChildren, useRef } from \"react\";\nimport { Button } from \"../Button\";\n\nexport type DialogProps = DialogComponentProps &\n PropsWithChildren & {\n className?: string;\n title?: string;\n description?: string;\n footer?: () => React.ReactNode;\n };\n\nexport function Dialog({\n title,\n description,\n className,\n children,\n footer = () => null,\n ...props\n}: DialogProps) {\n return (\n <DialogComponent {...props}>\n <DialogContent className={className}>\n <DialogHeader>\n {title && <DialogTitle>{title}</DialogTitle>}\n {description && <DialogDescription>{description}</DialogDescription>}\n </DialogHeader>\n {children}\n {footer && <DialogFooter>{footer()}</DialogFooter>}\n </DialogContent>\n </DialogComponent>\n );\n}\n\nexport type DialogWithFormProps = DialogProps & {\n onSubmit: () => void;\n};\n\nexport const DialogWithForm = ({\n title,\n description,\n className,\n children,\n footer = () => null,\n onSubmit = () => {},\n ...props\n}: DialogWithFormProps) => {\n const dialogRef = useRef<HTMLDivElement>(null);\n\n return (\n <DialogComponent {...props}>\n <DialogContent className={className} ref={dialogRef}>\n <form onSubmit={onSubmit} className=\"flex flex-col gap-4\">\n <DialogHeader>\n {title && <DialogTitle>{title}</DialogTitle>}\n {description && (\n <DialogDescription>{description}</DialogDescription>\n )}\n </DialogHeader>\n {children}\n {footer && (\n <DialogFooter>\n <div className=\"flex justify-between w-full\">\n <DialogClose asChild>\n <Button type=\"button\" variant=\"secondary\">\n Fechar\n </Button>\n </DialogClose>\n {footer()}\n </div>\n </DialogFooter>\n )}\n </form>\n </DialogContent>\n </DialogComponent>\n );\n};\n","\"use client\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","import { useCallback } from \"react\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../../../components/dataDisplay\";\nimport { Separator } from \"../../../components/layout\";\nimport { cn } from \"../../../lib/utils\";\n\ntype StepsProps = {\n data: {\n label?: string;\n id: number;\n }[];\n onClick?: (id: number) => void;\n value?: number;\n};\nexport const Steps = ({ data, onClick = () => {}, value }: StepsProps) => {\n const renderSteps = useCallback(() => {\n return data.map(({ label, id }, index) => {\n const isLast = index === data.length - 1;\n const isActive = typeof value === \"number\" && id <= value;\n\n return (\n <div key={index} className={cn(!isLast && \"w-full flex items-center\")}>\n <div>\n <Button\n onClick={() => onClick && onClick(id)}\n variant={isActive ? \"default\" : \"outline\"}\n size=\"icon\"\n className=\"rounded-full\"\n >\n {isActive ? <Icon name=\"MdCheck\" /> : index + 1}\n </Button>\n </div>\n {label && <p className=\"absolute\">{label}</p>}\n {!isLast && (\n <Separator\n orientation=\"horizontal\"\n className={cn(isActive && \"bg-primary h-[2px]\")}\n />\n )}\n {/* {\n <Separator\n orientation=\"horizontal\"\n className={cn(\"bg-primary h-[2px]\")}\n />\n } */}\n </div>\n );\n });\n }, [data, onClick, value]);\n return <div className=\"flex w-full\">{renderSteps()}</div>;\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\nimport { cn } from \"../../lib/utils\";\n\nexport type DrawerProps = React.ComponentProps<typeof DrawerPrimitive.Root>;\n\nconst Drawer = ({ shouldScaleBackground = true, ...props }: DrawerProps) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\n className\n )}\n {...props}\n >\n <div className=\"mx-auto mt-4 h-2 w-[100px] rounded-full bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\n {...props}\n />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Minus, Plus } from \"lucide-react\";\n// import { Bar, BarChart, ResponsiveContainer } from \"recharts\";\n\nimport { Button } from \"../../../actions\";\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerProps,\n DrawerTitle,\n DrawerTrigger,\n} from \"../../Drawer\";\n\nexport type CustomDrawerProps = DrawerProps & {\n className?: string;\n};\n\nexport function CustomDrawer({ className, ...props }: CustomDrawerProps) {\n return (\n <Drawer {...props}>\n {/* <DrawerTrigger asChild>\n <Button variant=\"outline\">Open Drawer</Button>\n </DrawerTrigger> */}\n <DrawerContent className={className}>{props.children}</DrawerContent>\n </Drawer>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\nconst SheetClose = SheetPrimitive.Close;\n\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\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 ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\n \"fixed z-50 gap-4 bg-background p-6 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500 data-[state=open]:animate-in data-[state=closed]:animate-out\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n);\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n <SheetPrimitive.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-secondary\">\n <X className=\"h-4 w-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n));\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\nSheetHeader.displayName = \"SheetHeader\";\n\nconst SheetFooter = ({\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);\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n","import {\n Sheet as SheetComponent,\n SheetContent,\n} from \"../../../components/ui/sheet\";\nimport { PropsWithChildren } from \"react\";\n\nexport type SheetProps = typeof SheetComponent &\n PropsWithChildren & {\n side?: \"left\" | \"right\" | \"top\" | \"bottom\";\n className?: string;\n onOpenChange?: (open: boolean) => void;\n open?: boolean;\n };\nexport function Sheet({ side, className, children, ...props }: SheetProps) {\n return (\n <SheetComponent {...props}>\n <SheetContent side={side} className={className}>\n {children}\n </SheetContent>\n </SheetComponent>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { VariantProps, cva } from \"class-variance-authority\";\nimport { PanelLeft } from \"lucide-react\";\n\nimport { useIsMobile } from \"../../hooks/use-mobile\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/ui/button\";\nimport { Input } from \"../../components/ui/input\";\nimport { Separator } from \"../../components/ui/separator\";\nimport { Sheet, SheetContent } from \"../../components/ui/sheet\";\nimport { Skeleton } from \"../../components/ui/skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../components/ui/tooltip\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar:state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContext = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref\n ) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n }\n);\nSidebarProvider.displayName = \"SidebarProvider\";\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n }\n>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n className={cn(\n \"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"w-[--sidebar-width] bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"flex h-full w-full flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer hidden md:block text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"duration-200 relative h-svh w-[--sidebar-width] bg-transparent transition-[width] ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n )}\n />\n <div\n className={cn(\n \"duration-200 fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n }\n);\nSidebar.displayName = \"Sidebar\";\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = \"SidebarTrigger\";\n\nconst SidebarRail = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\">\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n \"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarRail.displayName = \"SidebarRail\";\n\nconst SidebarInset = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"main\">\n>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n \"relative flex min-h-svh flex-1 flex-col bg-background\",\n \"peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarInset.displayName = \"SidebarInset\";\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n \"h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarInput.displayName = \"SidebarInput\";\n\nconst SidebarHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n});\nSidebarHeader.displayName = \"SidebarHeader\";\n\nconst SidebarFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n});\nSidebarFooter.displayName = \"SidebarFooter\";\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n );\n});\nSidebarSeparator.displayName = \"SidebarSeparator\";\n\nconst SidebarContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarContent.displayName = \"SidebarContent\";\n\nconst SidebarGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n});\nSidebarGroup.displayName = \"SidebarGroup\";\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n \"duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\n\nconst SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n));\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\n\nconst SidebarMenu = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n));\nSidebarMenu.displayName = \"SidebarMenu\";\n\nconst SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n));\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\n\nconst sidebarMenuButtonVariants = cva(\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n }\n);\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\n\nconst SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n));\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn(\"rounded-md h-8 flex gap-2 px-2 items-center\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"size-4 rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"h-4 flex-1 max-w-[--skeleton-width]\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\n\nconst SidebarMenuSub = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n));\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\n\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ ...props }, ref) => <li ref={ref} {...props} />);\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n }\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n","import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return !!isMobile\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","import { cn } from \"../../lib/utils\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-primary/10\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\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 * as React from \"react\";\nimport { GalleryVerticalEnd } from \"lucide-react\";\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarHeader,\n SidebarRail,\n} from \"../../../ui/sidebar\";\nimport { TeamSwitcher } from \"./team-switcher\";\nimport { Menus } from \"./menus\";\n\nexport type AppSidebarProps = {\n footer?: () => React.ReactNode;\n user?: {\n email?: string;\n name?: string;\n };\n enterprise?: {\n name: string;\n logo: () => React.ReactNode;\n plan: string;\n };\n navbar: {\n title: string;\n url: string;\n items: {\n title: string;\n url: string;\n isActive?: boolean | undefined;\n icon?: () => React.ReactNode;\n }[];\n }[];\n};\n\nexport function AppSidebar({\n navbar = [],\n enterprise = {\n name: \"Acme Inc\",\n logo: () => <GalleryVerticalEnd />,\n plan: \"Enterprise\",\n },\n footer,\n ...props\n}: AppSidebarProps) {\n return (\n <Sidebar collapsible=\"icon\" {...props}>\n <SidebarHeader>\n <TeamSwitcher teams={enterprise} />\n </SidebarHeader>\n <SidebarContent>\n <Menus items={navbar} />\n </SidebarContent>\n {footer && <SidebarFooter>{footer()}</SidebarFooter>}\n <SidebarRail />\n </Sidebar>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronsUpDown, Plus } from \"lucide-react\";\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"../../../ui/sidebar\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from \"../../../ui/dropdown-menu\";\n\nexport function TeamSwitcher({\n teams,\n}: {\n teams: {\n name: string;\n logo: () => React.ReactNode;\n plan: string;\n };\n}) {\n const { isMobile } = useSidebar();\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n <div className=\"flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground\">\n {/* {teams?.logo && teams?.logo?.()} */}\n </div>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{teams?.name}</span>\n <span className=\"truncate text-xs\">{teams?.plan}</span>\n </div>\n <ChevronsUpDown className=\"ml-auto\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n {/* <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg\"\n align=\"start\"\n side={isMobile ? \"bottom\" : \"right\"}\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"text-xs text-muted-foreground\">\n Teams\n </DropdownMenuLabel>\n {teams.map((team, index) => (\n <DropdownMenuItem\n key={team.name}\n onClick={() => setActiveTeam(team)}\n className=\"gap-2 p-2\"\n >\n <div className=\"flex size-6 items-center justify-center rounded-sm border\">\n <team.logo className=\"size-4 shrink-0\" />\n </div>\n {team.name}\n <DropdownMenuShortcut>⌘{index + 1}</DropdownMenuShortcut>\n </DropdownMenuItem>\n ))}\n <DropdownMenuSeparator />\n <DropdownMenuItem className=\"gap-2 p-2\">\n <div className=\"flex size-6 items-center justify-center rounded-md border bg-background\">\n <Plus className=\"size-4\" />\n </div>\n <div className=\"font-medium text-muted-foreground\">Add team</div>\n </DropdownMenuItem>\n </DropdownMenuContent> */}\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../../../lib/utils\";\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n} from \"../../../ui/sidebar\";\nimport React from \"react\";\n\nexport function Menus({\n items,\n}: {\n items: {\n title: string;\n url: string;\n items?: {\n title: string;\n url: string;\n icon?: () => React.ReactNode;\n isActive?: boolean | undefined;\n }[];\n }[];\n}) {\n return (\n <>\n {items.map((item, index) => {\n return (\n <SidebarGroup key={index}>\n <SidebarGroupLabel>{item.title}</SidebarGroupLabel>\n <SidebarMenu>\n {item.items?.map((subItem) => (\n <SidebarMenuItem key={subItem.title}>\n <SidebarMenuButton\n asChild\n className={cn(\n subItem?.isActive && \"bg-sidebar-accent font-semibold\"\n )}\n >\n <a href={subItem.url}>\n {subItem?.icon && subItem.icon()}\n <span>{subItem.title}</span>\n </a>\n </SidebarMenuButton>\n </SidebarMenuItem>\n ))}\n </SidebarMenu>\n </SidebarGroup>\n );\n })}\n </>\n );\n}\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode;\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<\"ol\">\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className\n )}\n {...props}\n />\n));\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","\"use client\";\nimport { createContext, useContext, useState } from \"react\";\n\ninterface SidebarContextData {\n currentPath: string;\n isCollapsed: boolean;\n toggleCollapse: () => void;\n setCurrentPath: (path: string) => void;\n}\n\ninterface SidebarProviderProps {\n children: React.ReactNode;\n defaultPath?: string;\n defaultCollapsed?: boolean;\n}\n\nconst SidebarContext = createContext({} as SidebarContextData);\n\nexport function SidebarProvider({\n children,\n defaultPath = \"/\",\n defaultCollapsed = false,\n}: SidebarProviderProps) {\n const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);\n const [currentPath, setCurrentPath] = useState(defaultPath);\n\n const toggleCollapse = () => setIsCollapsed((prev) => !prev);\n\n return (\n <SidebarContext.Provider\n value={{\n currentPath,\n isCollapsed,\n toggleCollapse,\n setCurrentPath,\n }}\n >\n {children}\n </SidebarContext.Provider>\n );\n}\n\nexport function useSidebar() {\n const context = useContext(SidebarContext);\n\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider\");\n }\n\n return context;\n}\n","\"use client\";\nimport { SidebarTrigger } from \"../../../ui/sidebar\";\nimport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbPage,\n BreadcrumbLink,\n BreadcrumbSeparator,\n} from \"../../../ui/breadcrumb\";\nimport { Separator } from \"../../Separator\";\nimport { useSidebar } from \"../provider\";\n\ninterface BreadcrumbItemProps {\n isLast?: boolean;\n path: string;\n label: string;\n}\n\nconst routeMap: Record<string, string> = {\n dashboard: \"Dashboard\",\n users: \"Usuários\",\n documents: \"Documentos\",\n settings: \"Configurações\",\n create: \"Criar\",\n edit: \"Editar\",\n profile: \"Perfil\",\n analytics: \"Análises\",\n reports: \"Relatórios\",\n};\n\nconst BreadcrumbElement = ({ isLast, path, label }: BreadcrumbItemProps) => {\n if (isLast) {\n return (\n <BreadcrumbItem>\n <BreadcrumbPage className=\"capitalize\">{label}</BreadcrumbPage>\n </BreadcrumbItem>\n );\n }\n\n return (\n <BreadcrumbItem>\n <BreadcrumbLink href={path} className=\"capitalize\">\n {label}\n </BreadcrumbLink>\n <BreadcrumbSeparator />\n </BreadcrumbItem>\n );\n};\n\nexport const HeaderSidebar = () => {\n const { currentPath } = useSidebar();\n\n const breadcrumbItems = currentPath\n .split(\"/\")\n .filter(Boolean)\n .map((segment, index, array) => {\n const path = `/${array.slice(0, index + 1).join(\"/\")}`;\n const isLast = index === array.length - 1;\n const label = routeMap[segment] || segment;\n\n return {\n path,\n label,\n isLast,\n };\n });\n\n return (\n <header className=\"flex h-16 shrink-0 items-center border-b border-border bg-background px-4 transition-[width,height] ease-linear group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12\">\n <div className=\"flex items-center gap-4\">\n <SidebarTrigger className=\"-ml-2 h-9 w-9\" />\n <Separator orientation=\"vertical\" className=\"h-6\" />\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/\" className=\"capitalize\">\n Home\n </BreadcrumbLink>\n <BreadcrumbSeparator />\n </BreadcrumbItem>\n {breadcrumbItems.map((item) => (\n <BreadcrumbElement key={item.path} {...item} />\n ))}\n </BreadcrumbList>\n </Breadcrumb>\n </div>\n </header>\n );\n};\n","import { Separator } from \"../../Separator\";\n\nexport const FooterSidebar = () => {\n return (\n <footer className=\"h-[65px]\">\n <Separator />\n <div className=\"flex items-center justify-between h-16 bg-background px-5\">\n <span className=\"text-sm text-muted-foreground\">\n © {new Date().getFullYear()} Your Company\n </span>\n <span className=\"text-sm text-muted-foreground\">\n Feito na terra do sol 🌞\n </span>\n </div>\n </footer>\n );\n};\n","\"use client\";\nimport {\n SidebarInset,\n SidebarProvider as UISidebarProvider,\n} from \"../../ui/sidebar\";\nimport { AppSidebar, AppSidebarProps } from \"./components/app-sidebar\";\nimport { HeaderSidebar } from \"./components/header-sidebar\";\nimport { FooterSidebar } from \"./components/footer-sidebar\";\nimport { cn } from \"../../../lib/utils\";\nimport { SidebarProvider } from \"./provider\";\n\ninterface SidebarProps extends AppSidebarProps {\n children: React.ReactNode;\n contentClassName?: string;\n showFooter?: boolean;\n defaultPath?: string;\n defaultCollapsed?: boolean;\n}\n\nexport const Sidebar = ({\n children,\n contentClassName,\n showFooter = true,\n defaultPath,\n defaultCollapsed,\n ...rest\n}: SidebarProps) => {\n return (\n <SidebarProvider\n defaultPath={defaultPath}\n defaultCollapsed={defaultCollapsed}\n >\n <UISidebarProvider>\n <AppSidebar {...rest} />\n <SidebarInset className=\"overflow-auto bg-slate-50\">\n <HeaderSidebar />\n <main\n className={cn(\n \"flex flex-1 flex-col gap-4 p-4 pt-0\",\n contentClassName\n )}\n >\n {children}\n </main>\n {showFooter && <FooterSidebar />}\n </SidebarInset>\n </UISidebarProvider>\n </SidebarProvider>\n );\n};\n","\"use client\";\n\nimport {\n BadgeCheck,\n Bell,\n ChevronsUpDown,\n CreditCard,\n LogOut,\n Sparkles,\n} from \"lucide-react\";\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"../../../ui/sidebar\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../../ui/avatar\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"../../../ui/dropdown-menu\";\nimport { useCallback } from \"react\";\n\nexport function NavUser({\n user,\n logoutAction = () => {},\n}: {\n user: {\n name: string;\n email: string;\n avatar: string;\n };\n\n logoutAction?: () => void;\n}) {\n const { isMobile } = useSidebar();\n\n const renderUserInformation = useCallback(() => {\n return (\n <>\n <Avatar className=\"h-8 w-8 rounded-lg\">\n <AvatarImage src={user?.avatar} alt={user?.name} />\n <AvatarFallback className=\"rounded-lg\">CN</AvatarFallback>\n </Avatar>\n <div className=\"grid flex-1 text-left text-sm leading-tight\">\n <span className=\"truncate font-semibold\">{user?.name}</span>\n <span className=\"truncate text-xs\">{user?.email}</span>\n </div>\n </>\n );\n }, [user]);\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground\"\n >\n {renderUserInformation()}\n <ChevronsUpDown className=\"ml-auto size-4\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"w-[--radix-dropdown-menu-trigger-width] min-w-56 rounded-lg\"\n side={isMobile ? \"bottom\" : \"right\"}\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"p-0 font-normal\">\n <div className=\"flex items-center gap-2 px-1 py-1.5 text-left text-sm\">\n {renderUserInformation()}\n </div>\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem>\n <Sparkles />\n Upgrade to Pro\n </DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem>\n <BadgeCheck />\n Account\n </DropdownMenuItem>\n <DropdownMenuItem>\n <CreditCard />\n Billing\n </DropdownMenuItem>\n <DropdownMenuItem>\n <Bell />\n Notifications\n </DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={logoutAction}>\n <LogOut />\n Log out\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n","import React from \"react\";\nimport { Text } from \"../../../components/dataDisplay\";\nimport { PropsWithChildren } from \"react\";\n\nexport type PageLayoutProps = PropsWithChildren & {\n title: string;\n subtitle?: string;\n header?: React.ReactNode;\n};\n\nexport const PageLayout = ({\n subtitle,\n title,\n children,\n header,\n}: PageLayoutProps) => {\n return (\n <div className=\"m-5 p-4 bg-white\">\n <div className=\"flex justify-between\">\n <div>\n {title && <Text variant=\"title\">{title}</Text>}\n {subtitle && <Text variant=\"muted\">{subtitle}</Text>}\n </div>\n {header}\n </div>\n <div className=\"mt-5\">{children}</div>\n </div>\n );\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow\",\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n Tabs as TabsUI,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"../../../components/ui/tabs\";\nimport { cn } from \"../../../lib/utils\";\n\ninterface TabsProps {\n tabs: {\n label: string;\n content: React.ReactNode;\n }[];\n activeTabIndex?: number;\n onTabChange?: (index: number) => void;\n className?: string;\n}\n\nexport const Tabs: React.FC<TabsProps> = ({\n tabs,\n activeTabIndex = 0,\n onTabChange,\n className,\n}) => {\n return (\n <TabsUI\n value={tabs[activeTabIndex].label}\n onValueChange={(value) => {\n const index = tabs.findIndex((tab) => tab.label === value);\n if (onTabChange) onTabChange(index);\n }}\n className={cn(\"w-full\", className)}\n >\n <TabsList>\n {tabs.map((tab, index) => (\n <TabsTrigger key={index} value={tab.label}>\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n {tabs.map((tab, index) => (\n <TabsContent key={index} value={tab.label}>\n {tab.content}\n </TabsContent>\n ))}\n </TabsUI>\n );\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from \"../../lib/utils\";\nimport { buttonVariants } from \"../../components/ui/button\";\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\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 ref={ref}\n />\n));\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.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 </AlertDialogPortal>\n));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nconst AlertDialogFooter = ({\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);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName;\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n));\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n));\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n","import {\n AlertDialog as AlertDialogUI,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"../../ui/alert-dialog\";\n\nexport type AlertDialogProps = {\n title: string;\n description?: string;\n children: React.ReactNode;\n onConfirm?: () => void;\n onCancel?: () => void;\n};\n\nexport const AlertDialog = ({\n title,\n description,\n children,\n onConfirm,\n onCancel,\n}: AlertDialogProps) => {\n return (\n <AlertDialogUI>\n <AlertDialogTrigger asChild>{children}</AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n {description && (\n <AlertDialogDescription>{description}</AlertDialogDescription>\n )}\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel onClick={onCancel}>Cancel</AlertDialogCancel>\n <AlertDialogAction onClick={onConfirm}>Continue</AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialogUI>\n );\n};\n","import { Button } from \"../../../../../components/actions\";\nimport { Icon } from \"../../../../../components/dataDisplay\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport _ from \"lodash\";\n\nexport type MultipleInputBaseProps = {\n children: (params: {\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n addItem: () => void;\n value: string;\n error?: string;\n }) => React.ReactNode;\n data: string[];\n name?: string;\n onChangeData?: (data: string[]) => void;\n error?: string;\n};\n\nexport const MultipleInputBase = ({\n children,\n data = [],\n name,\n onChangeData = () => {},\n error,\n}: MultipleInputBaseProps) => {\n const form = useFormContext();\n const withForm = !!form && !!name;\n const [inputValue, setInputValue] = useState(\"\");\n\n const inputData = useMemo(() => {\n if (withForm) {\n return _.get(form.watch(), name) || [];\n }\n return data;\n }, [withForm, form, name, data]);\n\n const errorMessage = useMemo(() => {\n if (withForm) {\n return _.get(form.formState.errors, name)?.message as string;\n }\n return error;\n }, [error, form, name, withForm]);\n\n const updateData = useCallback(() => {\n if (!inputValue.length) return;\n if (withForm) {\n form.setValue(name, [...inputData, inputValue]);\n } else {\n onChangeData?.(inputData.concat(inputValue));\n }\n setInputValue(\"\");\n }, [inputData, inputValue, withForm, form, name, onChangeData]);\n\n const removeItem = useCallback(\n (index: number) => {\n if (withForm) {\n form.setValue(\n name,\n inputData.filter((_: string, i: number) => i !== index)\n );\n } else {\n onChangeData?.(inputData.filter((_: string, i: number) => i !== index));\n }\n },\n [withForm, form, name, inputData, onChangeData]\n );\n\n const renderOptions = useCallback(() => {\n return inputData?.map((item: string, index: number) => {\n return (\n <div key={index} className=\"flex justify-between mt-2\">\n <div>{item}</div>\n <Button\n onClick={() => removeItem(index)}\n variant={\"ghost\"}\n size={\"icon\"}\n type=\"button\"\n >\n <Icon name=\"MdDelete\" className=\"fill-destructive\" />\n </Button>\n </div>\n );\n });\n }, [inputData, removeItem]);\n\n return (\n <div>\n {children({\n onChange: ({ target: { value } }) => {\n setInputValue(value);\n },\n addItem: updateData,\n value: inputValue,\n error: errorMessage,\n })}\n {renderOptions()}\n </div>\n );\n};\n","import { Button } from \"../../../../../components/actions\";\nimport { MaskInput, MaskInputProps } from \"../MaskInput\";\nimport { MultipleInputBase } from \"./MultipleInputBase\";\nimport { Icon } from \"../../../../../components/dataDisplay\";\n\nexport type MultipleMaskInputProps = MaskInputProps & {\n data?: string[];\n onChangeData?: (data: string[]) => void;\n name: string;\n};\n\nexport const MultipleMaskInput = ({\n data = [],\n ...props\n}: MultipleMaskInputProps) => {\n return (\n <MultipleInputBase data={data} {...props}>\n {({ onChange, addItem, value }) => {\n return (\n <MaskInput\n {...props}\n value={value}\n onChange={onChange}\n withoutForm\n component={\n <Button type=\"button\" onClick={() => addItem()}>\n <Icon name=\"MdAdd\" />\n </Button>\n }\n />\n );\n }}\n </MultipleInputBase>\n );\n};\n","import { useCallback } from \"react\";\nimport {\n Select,\n SelectProps,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../../components/ui/select\";\n\nexport type SelectBaseProps = Omit<SelectProps, \"onValueChange\"> & {\n options: {\n value: string | number;\n label: string;\n }[];\n placeholder?: string;\n className?: string;\n id?: string;\n onChange?: (value: string) => void;\n value?: string;\n onChangeCallback?: (value: string) => void;\n};\n\nexport const SelectBase = ({\n options,\n placeholder,\n onChange = () => {},\n onChangeCallback = () => {},\n value,\n ...rest\n}: SelectBaseProps) => {\n const onSelect = useCallback(\n (value: string) => {\n onChange(value);\n onChangeCallback(value);\n },\n [onChange, onChangeCallback]\n );\n return (\n <Select\n {...rest}\n onValueChange={onSelect}\n defaultValue={value}\n value={value}\n >\n <SelectTrigger>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent>\n {options?.map((option, index: number) => (\n <SelectItem key={index} value={String(option.value)}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n );\n};\n","import React from \"react\";\nimport { Label } from \"../../../components/ui/label\";\n\nimport {\n FormField,\n FormItem,\n FormLabel,\n FormControl,\n FormMessage,\n FormDescription,\n} from \"../../../components/ui/form\";\nimport { SelectBase, SelectBaseProps } from \"./SelectBase\";\nimport { useFormContext } from \"react-hook-form\";\nimport { cn } from \"../../../lib/utils\";\nimport { ErrorMessage } from \"../../../components/dataDisplay/ErrorMessage/ErrorMessage\";\n\nexport type SelectProps = SelectBaseProps & {\n label?: string;\n name?: string;\n error?: string;\n description?: string;\n withoutForm?: boolean;\n};\n\nexport const Select = ({\n name,\n label,\n description,\n error,\n className,\n withoutForm,\n options,\n placeholder,\n ...props\n}: SelectProps) => {\n const form = useFormContext();\n const hasForm = !!form && !!name;\n\n if (!hasForm || withoutForm) {\n return (\n <div className={cn(\"space-y-2\", className)}>\n {label && <Label>{label}</Label>}\n <SelectBase options={options} placeholder={placeholder} {...props} />\n {description && (\n <p className=\"text-sm text-muted-foreground\">{description}</p>\n )}\n {error && <ErrorMessage>{error}</ErrorMessage>}\n </div>\n );\n }\n\n return (\n <FormField\n control={form.control}\n name={name!}\n render={({ field }) => (\n <FormItem className={className}>\n {label && <FormLabel>{label}</FormLabel>}\n <FormControl>\n <SelectBase\n options={options}\n placeholder={placeholder}\n {...props}\n {...field}\n />\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n <FormMessage />\n </FormItem>\n )}\n />\n );\n};\n","import {\n Label as LabelComponent,\n LabelProps as LabelComponentProps,\n} from \"../../ui/label\";\n\nexport type LabelProps = LabelComponentProps;\n\nexport const Label = (props: LabelProps) => {\n return <LabelComponent {...props} />;\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Search, X } from \"lucide-react\";\nimport { cn } from \"../../../../lib/utils\";\nimport * as Popover from \"@radix-ui/react-popover\";\n\nexport type MultiSelectBaseProps = {\n options: { label: string; value: string }[];\n selected?: string[];\n onChange?: (values: string[]) => void;\n placeholder?: string;\n className?: string;\n};\n\nexport function MultiSelectBase({\n options = [],\n selected = [],\n onChange = () => {},\n placeholder = \"Select frameworks...\",\n className,\n}: MultiSelectBaseProps) {\n const [open, setOpen] = React.useState(false);\n const [inputValue, setInputValue] = React.useState(\"\");\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const handleRemoveItem = (valueToRemove: string) => {\n onChange(selected.filter((value) => value !== valueToRemove));\n };\n\n const handleSelectItem = (value: string) => {\n if (selected.includes(value)) {\n onChange(selected.filter((v) => v !== value));\n } else {\n onChange([...selected, value]);\n }\n };\n\n const filteredOptions = options.filter((option) =>\n option.label.toLowerCase().includes(inputValue.toLowerCase())\n );\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger asChild>\n <div\n className={cn(\n \"flex min-h-[40px] w-full flex-wrap gap-1.5 rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2\",\n className\n )}\n >\n {selected.map((value) => {\n const option = options.find((o) => o.value === value);\n if (!option) return null;\n\n return (\n <div\n key={value}\n className=\"flex items-center gap-1 rounded-md bg-secondary px-2 py-1 text-sm text-secondary-foreground\"\n >\n {option.label}\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n handleRemoveItem(value);\n }}\n className=\"rounded-full hover:bg-secondary-foreground/20\"\n >\n <X className=\"h-3 w-3\" />\n <span className=\"sr-only\">Remove {option.label}</span>\n </button>\n </div>\n );\n })}\n <div className=\"flex-1\">\n {selected.length === 0 && (\n <span className=\"text-muted-foreground\">{placeholder}</span>\n )}\n </div>\n </div>\n </Popover.Trigger>\n\n <Popover.Portal>\n <Popover.Content\n className=\"w-[--radix-popover-trigger-width] z-50 mt-1 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95\"\n align=\"start\"\n sideOffset={4}\n >\n <div className=\"flex items-center border-b border-border px-3 py-2\">\n <Search className=\"h-4 w-4 text-muted-foreground\" />\n <input\n ref={inputRef}\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n placeholder=\"Search...\"\n className=\"flex-1 bg-transparent px-2 outline-none placeholder:text-muted-foreground\"\n />\n </div>\n <div className=\"max-h-[200px] overflow-auto\">\n {filteredOptions.length === 0 ? (\n <div className=\"px-2 py-4 text-center text-sm text-muted-foreground\">\n No results found.\n </div>\n ) : (\n filteredOptions.map((option) => (\n <div\n key={option.value}\n onClick={() => handleSelectItem(option.value)}\n className={cn(\n \"flex cursor-pointer items-center gap-2 px-4 py-2 text-sm hover:bg-accent\",\n selected.includes(option.value) && \"bg-accent\"\n )}\n >\n <div\n className={cn(\n \"flex h-4 w-4 items-center justify-center rounded border border-primary\",\n selected.includes(option.value) &&\n \"bg-primary text-primary-foreground\"\n )}\n >\n {selected.includes(option.value) && (\n <span className=\"text-[10px]\">✓</span>\n )}\n </div>\n {option.label}\n </div>\n ))\n )}\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n}\n","\"use client\";\nimport React from \"react\";\nimport { Label } from \"../../../../components/dataDisplay/Label\";\nimport { MultiSelectBase, MultiSelectBaseProps } from \"./MultiSelectBase\";\nimport {\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"../../../../components/ui/form\";\nimport { useFormContext } from \"react-hook-form\";\n\ntype MultiSelectProps = MultiSelectBaseProps & {\n label?: string;\n name?: string;\n withoutForm?: boolean;\n className?: string;\n required?: boolean;\n \"data-testid\"?: string;\n};\n\nexport function MultiSelect({\n label,\n name,\n withoutForm,\n className,\n required,\n \"data-testid\": testId,\n ...props\n}: MultiSelectProps) {\n const form = useFormContext();\n const hasForm = !withoutForm && !!form && !!name;\n\n if (!hasForm)\n return (\n <div className=\"grid w-full items-center gap-3\">\n {label && <Label htmlFor={name}>{label}</Label>}\n <MultiSelectBase {...props} />\n </div>\n );\n\n return (\n <FormField\n control={form.control}\n name={name}\n render={({ field: { value, ...rest } }) => {\n return (\n <FormItem\n className={className}\n data-testid={testId ? `form-item-${testId}` : undefined}\n >\n {label && (\n <FormLabel\n htmlFor={name}\n data-testid={testId ? `form-label-${testId}` : undefined}\n >\n {`${label}${required ? \" *\" : \"\"}`}\n </FormLabel>\n )}\n <FormControl>\n <div className=\"flex w-full items-center space-x-2\">\n <MultiSelectBase {...props} {...rest} selected={value} />\n </div>\n </FormControl>\n <FormMessage\n role=\"alert\"\n data-testid={testId ? `form-message-${testId}` : undefined}\n />\n </FormItem>\n );\n }}\n />\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\n\nimport { cn } from \"../../lib/utils\";\n\nexport type SwitchProps = React.ComponentPropsWithoutRef<\n typeof SwitchPrimitives.Root\n>;\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n SwitchProps\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm 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-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import { Label } from \"../../../components/ui/label\";\nimport {\n Switch as SwitchUI,\n SwitchProps as SwitchUIProps,\n} from \"../../../components/ui/switch\";\nimport { useFormContext } from \"react-hook-form\";\nimport {\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n} from \"../../../components/ui/form\";\nimport { cn } from \"../../../lib/utils\";\n\nexport type SwitchProps = SwitchUIProps & {\n label?: string;\n withoutForm?: boolean;\n};\n\nexport function Switch({\n label,\n withoutForm,\n className,\n ...props\n}: SwitchProps) {\n const form = useFormContext();\n const hasForm = !!form && !withoutForm && !!props.name;\n\n if (!hasForm)\n return (\n <div className=\"flex items-center space-x-2\">\n <SwitchUI {...props} />\n {label && <Label htmlFor={props.id}>{label}</Label>}\n </div>\n );\n return (\n <FormField\n control={form.control}\n name={props.name ?? \"\"}\n render={({ field }) => (\n <FormItem\n className={cn(className, \"flex items-center space-x-2 space-y-0\")}\n >\n <FormControl>\n <Switch checked={field.value} onCheckedChange={field.onChange} />\n </FormControl>\n <FormLabel>{label}</FormLabel>\n </FormItem>\n )}\n />\n );\n}\n"],"mappings":"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","names":["React","DropdownMenuTrigger","React","jsx","React","jsx","jsx","jsxs","DropdownMenuTrigger","jsx","jsxs","React","Check","jsx","jsxs","jsxs","jsx","Check","jsx","jsxs","jsx","jsxs","jsx","jsxs","cva","jsx","cva","useMemo","jsx","Icon","useMemo","_a","_b","React","jsx","cva","jsx","cva","Fragment","jsx","jsxs","useFormContext","React","Check","jsx","Check","React","cva","jsx","cva","Label","useFormContext","React","Slot","jsx","Label","Slot","jsx","jsx","jsxs","Checkbox","_a","useFormContext","Label","React","jsx","useMemo","jsx","jsxs","Icon","jsx","jsxs","Label","useMemo","useFormContext","jsx","jsxs","Input","useMemo","useCallback","useMemo","jsx","useMemo","useCallback","React","useState","useCallback","useState","useCallback","jsx","_a","Input","forwardRef","cva","jsx","jsxs","cva","Icon","React","toast","props","React","cva","jsx","cva","jsx","jsxs","jsx","jsxs","Button","forwardRef","useCallback","useMemo","useState","jsx","jsxs","useState","useMemo","useCallback","_","Button","Icon","React","X","jsx","jsxs","jsx","jsxs","X","useRef","jsx","jsxs","Dialog","useRef","Button","CollapsibleTrigger","CollapsibleContent","useCallback","React","jsx","jsxs","jsx","React","cva","X","jsx","jsxs","jsx","cva","jsxs","X","jsx","Sheet","React","Slot","cva","React","React","jsx","Separator","jsx","React","jsx","jsx","jsxs","open","Separator","Slot","cva","jsx","jsxs","Fragment","jsx","jsxs","jsx","jsxs","React","Slot","ChevronRight","jsx","jsxs","Slot","ChevronRight","createContext","useContext","useState","jsx","SidebarContext","SidebarProvider","useSidebar","jsx","jsxs","useSidebar","Separator","jsx","jsxs","Separator","jsx","jsxs","Sidebar","SidebarProvider","ChevronsUpDown","useCallback","Fragment","jsx","jsxs","ChevronsUpDown","jsx","jsxs","React","jsx","jsx","jsxs","Tabs","jsx","jsxs","useCallback","Button","Icon","Separator","React","jsx","jsxs","jsx","jsxs","AlertDialog","useCallback","useMemo","useState","useFormContext","jsx","jsxs","_","Button","Icon","jsx","Button","Icon","useCallback","jsx","jsxs","useCallback","value","useFormContext","jsx","jsxs","Select","useFormContext","Label","jsx","Label","React","X","jsx","jsxs","X","useFormContext","jsx","jsxs","useFormContext","Label","_a","_b","React","jsx","useFormContext","jsx","jsxs","Switch","_a","useFormContext","Label"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/dataDisplay/Table/components/DynamicTable/index.tsx","../src/components/ui/table.tsx","../src/lib/utils.ts","../src/components/dataDisplay/Table/components/DynamicTable/data-table-view-options.tsx","../src/components/ui/button.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/dataDisplay/Table/components/DynamicTable/data-table-toolbar.tsx","../src/components/dataDisplay/Table/components/DynamicTable/data-table-pagination.tsx","../src/components/ui/select.tsx","../src/components/dataDisplay/Table/components/DynamicTable/data-table-column-header.tsx","../src/components/ui/badge.tsx","../src/components/dataDisplay/Icon/Icon.tsx","../src/components/ui/avatar.tsx","../src/components/dataDisplay/DataPairList/DataPairList.tsx","../src/components/dataDisplay/Text/Text.tsx","../src/components/dataInput/checkbox/Checkbox.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/label.tsx","../src/components/dataInput/form/index.ts","../src/components/ui/form.tsx","../src/components/dataDisplay/ErrorMessage/ErrorMessage.tsx","../src/components/ui/input.tsx","../src/components/dataInput/Input/components/Input/index.tsx","../src/components/feedback/ErrorLabel/index.tsx","../src/components/dataInput/Input/components/InputBase/index.tsx","../src/hooks/use-conditional-controller.tsx","../src/components/dataInput/Input/components/NumberInput/number-input.tsx","../src/components/dataInput/Input/components/MaskInput/mask-input.tsx","../src/hooks/use-mask.tsx","../src/components/actions/Button/Button.tsx","../src/components/ui/spinner.tsx","../src/hooks/use-toast.ts","../src/components/ui/toast.tsx","../src/components/ui/toaster.tsx","../src/components/dataInput/Input/components/MultipleInput/MultipleInput.tsx","../src/components/ui/dialog.tsx","../src/components/actions/Dialog/Dialog.tsx","../src/components/ui/collapsible.tsx","../src/components/actions/Steps/Steps.tsx","../src/components/ui/drawer.tsx","../src/components/layout/Drawer/CustomDrawer/index.tsx","../src/components/ui/sheet.tsx","../src/components/layout/Sheet/Sheet.tsx","../src/components/ui/sidebar.tsx","../src/hooks/use-mobile.tsx","../src/components/ui/separator.tsx","../src/components/ui/skeleton.tsx","../src/components/ui/tooltip.tsx","../src/components/layout/Sidebar/components/app-sidebar.tsx","../src/components/layout/Sidebar/components/team-switcher.tsx","../src/components/layout/Sidebar/components/menus.tsx","../src/components/ui/breadcrumb.tsx","../src/components/layout/Sidebar/provider/index.tsx","../src/components/layout/Sidebar/components/header-sidebar.tsx","../src/components/layout/Sidebar/components/footer-sidebar.tsx","../src/components/layout/Sidebar/Sidebar.tsx","../src/components/layout/Sidebar/components/nav-user.tsx","../src/components/layout/PageLayout/index.tsx","../src/components/layout/Tabs/Tabs.tsx","../src/components/ui/tabs.tsx","../src/components/ui/alert-dialog.tsx","../src/components/actions/AlertDialog/AlertDialog.tsx","../src/components/dataInput/Input/components/MultipleInput/MultipleInputBase.tsx","../src/components/dataInput/Input/components/MultipleInput/MultipleMaskInput.tsx","../src/components/dataInput/Select/Select.tsx","../src/components/dataInput/Select/SelectBase.tsx","../src/components/dataInput/Select/MultiSelect/index.tsx","../src/components/dataDisplay/Label/Label.tsx","../src/components/dataInput/Select/MultiSelect/MultiSelectBase.tsx","../src/components/ui/switch.tsx","../src/components/dataInput/Switch/Switch.tsx","../src/components/config/DesignSystemProvider/index.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport {\n flexRender,\n getCoreRowModel,\n getSortedRowModel,\n getPaginationRowModel,\n useReactTable,\n SortingState,\n VisibilityState,\n PaginationState,\n} from \"@tanstack/react-table\";\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../../../../../components/ui/table\";\nimport { DataTableToolbar } from \"./data-table-toolbar\";\nimport { DataTablePagination } from \"./data-table-pagination\";\nimport { cn } from \"../../../../../lib/utils\";\nimport { DataTableColumnHeader } from \"./data-table-column-header\";\nimport { DynamicTableProps } from \"./types\";\n\nexport function DynamicTable<TData>({\n data,\n columns,\n className,\n toolbar,\n pagination: showPagination = true,\n sorting: showSorting = true,\n columnVisibility: showColumnVisibility = true,\n filters,\n rowsPerPage = [10, 20, 30, 40, 50],\n defaultSort = [],\n defaultVisibility = {},\n}: DynamicTableProps<TData>) {\n const [sorting, setSorting] = React.useState<SortingState>(defaultSort);\n const [columnVisibility, setColumnVisibility] =\n React.useState<VisibilityState>(defaultVisibility);\n const [{ pageIndex, pageSize }, setPagination] =\n React.useState<PaginationState>({\n pageIndex: 0,\n pageSize: rowsPerPage[0],\n });\n\n const pagination = React.useMemo(\n () => ({\n pageIndex,\n pageSize,\n }),\n [pageIndex, pageSize]\n );\n\n const table = useReactTable({\n data,\n columns,\n getCoreRowModel: getCoreRowModel(),\n onSortingChange: setSorting,\n getSortedRowModel: showSorting ? getSortedRowModel() : undefined,\n getPaginationRowModel: getPaginationRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onPaginationChange: setPagination,\n manualPagination: false,\n pageCount: Math.ceil(data.length / pageSize),\n state: {\n sorting,\n columnVisibility,\n pagination,\n },\n enableSorting: showSorting,\n });\n\n return (\n <div className=\"phsa-space-y-4\">\n {(toolbar || filters || showColumnVisibility) && (\n <DataTableToolbar\n table={table}\n filters={filters}\n showColumnVisibility={showColumnVisibility}\n />\n )}\n <div className={cn(\"rounded-md border\", className)}>\n <Table>\n <TableHeader>\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead key={header.id}>\n {header.isPlaceholder ? null : (\n <DataTableColumnHeader\n column={header.column}\n title={header.column.columnDef.header as string}\n />\n )}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n <TableRow key={row.id}>\n {row.getVisibleCells().map((cell) => (\n <TableCell key={cell.id}>\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n ))\n ) : (\n <TableRow>\n <TableCell\n colSpan={columns.length}\n className=\"phsa-h-24 phsa-text-center\"\n >\n Nenhum resultado encontrado.\n </TableCell>\n </TableRow>\n )}\n </TableBody>\n </Table>\n </div>\n {showPagination && (\n <DataTablePagination table={table} pageSizeOptions={rowsPerPage} />\n )}\n </div>\n );\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 phsa-w-full phsa-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","import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nexport const hexToHsl = (hex?: string): string => {\n if (!hex) return \"\";\n\n const cleanHex = hex.replace(/^#/, \"\");\n\n const [r, g, b] = cleanHex.match(/.{2}/g)!.map((x) => parseInt(x, 16) / 255);\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h = 0;\n let s = 0;\n\n if (max !== min) {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h =\n max === r\n ? (g - b) / d + (g < b ? 6 : 0)\n : max === g\n ? (b - r) / d + 2\n : (r - g) / d + 4;\n h *= 60;\n }\n\n return `${Math.round(h)} ${Math.round(s * 100)}% ${Math.round(l * 100)}%`;\n};\n","\"use client\";\n\nimport { DropdownMenuTrigger } from \"@radix-ui/react-dropdown-menu\";\nimport { MixerHorizontalIcon } from \"@radix-ui/react-icons\";\nimport { Table } from \"@tanstack/react-table\";\nimport { Button } from \"../../../../../components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n} from \"../../../../../components/ui/dropdown-menu\";\n\ninterface DataTableViewOptionsProps<TData> {\n table: Table<TData>;\n}\n\nexport function DataTableViewOptions<TData>({\n table,\n}: DataTableViewOptionsProps<TData>) {\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"outline\"\n size=\"sm\"\n className=\"phsa-ml-auto phsa-hidden phsa-h-8 lg:flex\"\n >\n <MixerHorizontalIcon className=\"phsa-mr-2 phsa-h-4 phsa-w-4\" />\n Colunas\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"end\" className=\"phsa-w-[150px]\">\n <DropdownMenuLabel>Colunas visíveis</DropdownMenuLabel>\n <DropdownMenuSeparator />\n {table\n .getAllColumns()\n .filter(\n (column) =>\n typeof column.accessorFn !== \"undefined\" && column.getCanHide()\n )\n .map((column) => {\n return (\n <DropdownMenuCheckboxItem\n key={column.id}\n className=\"capitalize\"\n checked={column.getIsVisible()}\n onCheckedChange={(value) => column.toggleVisibility(!!value)}\n >\n {column.id}\n </DropdownMenuCheckboxItem>\n );\n })}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n","import * 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(\"phsa-inline-flex phsa-items-center phsa-justify-center phsa-gap-2 phsa-whitespace-nowrap phsa-rounded-md phsa-text-sm phsa-font-medium phsa-transition-colors phsa-focus-visible:outline-none phsa-focus-visible:ring-1 phsa-focus-visible:ring-ring phsa-disabled:pointer-events-none phsa-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","\"use client\";\n\nimport * as React from \"react\";\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\";\nimport { Check, ChevronRight, Circle } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst DropdownMenu = DropdownMenuPrimitive.Root;\n\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;\n\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group;\n\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal;\n\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub;\n\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;\n\nconst DropdownMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <DropdownMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n \"flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none focus:bg-accent data-[state=open]:bg-accent [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"phsa-ml-auto\" />\n </DropdownMenuPrimitive.SubTrigger>\n));\nDropdownMenuSubTrigger.displayName =\n DropdownMenuPrimitive.SubTrigger.displayName;\n\nconst DropdownMenuSubContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg 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));\nDropdownMenuSubContent.displayName =\n DropdownMenuPrimitive.SubContent.displayName;\n\nconst DropdownMenuContent = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\n>(({ className, sideOffset = 4, ...props }, ref) => (\n <DropdownMenuPrimitive.Portal>\n <DropdownMenuPrimitive.Content\n ref={ref}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\",\n \"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 </DropdownMenuPrimitive.Portal>\n));\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;\n\nconst DropdownMenuItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&>svg]:size-4 [&>svg]:shrink-0\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n));\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;\n\nconst DropdownMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <DropdownMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute phsa-left-2 phsa-flex phsa-h-3.5 phsa-w-3.5 phsa-items-center phsa-justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Check className=\"phsa-h-4 phsa-w-4\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.CheckboxItem>\n));\nDropdownMenuCheckboxItem.displayName =\n DropdownMenuPrimitive.CheckboxItem.displayName;\n\nconst DropdownMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <DropdownMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none transition-colors 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 phsa-left-2 phsa-flex phsa-h-3.5 phsa-w-3.5 phsa-items-center phsa-justify-center\">\n <DropdownMenuPrimitive.ItemIndicator>\n <Circle className=\"phsa-h-2 phsa-w-2 phsa-fill-current\" />\n </DropdownMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </DropdownMenuPrimitive.RadioItem>\n));\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;\n\nconst DropdownMenuLabel = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <DropdownMenuPrimitive.Label\n ref={ref}\n className={cn(\n \"px-2 py-1.5 text-sm font-semibold\",\n inset && \"pl-8\",\n className\n )}\n {...props}\n />\n));\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;\n\nconst DropdownMenuSeparator = React.forwardRef<\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <DropdownMenuPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\n {...props}\n />\n));\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;\n\nconst DropdownMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\n {...props}\n />\n );\n};\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\";\n\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n};\n","\"use client\";\n\nimport { DataTableViewOptions } from \"./data-table-view-options\";\nimport { DynamicTableToolbarProps } from \"./types\";\n\nexport function DataTableToolbar<TData>({\n table,\n filters,\n showColumnVisibility,\n}: DynamicTableToolbarProps<TData>) {\n return (\n <div className=\"phsa-flex phsa-items-center phsa-justify-between\">\n <div className=\"phsa-flex phsa-flex-1 phsa-items-center phsa-space-x-2\">{filters}</div>\n {showColumnVisibility && <DataTableViewOptions table={table} />}\n </div>\n );\n}\n","\"use client\";\n\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n DoubleArrowLeftIcon,\n DoubleArrowRightIcon,\n} from \"@radix-ui/react-icons\";\nimport { Button } from \"../../../../../components/ui/button\";\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../../../../components/ui/select\";\nimport { DynamicTablePaginationProps } from \"./types\";\n\nexport function DataTablePagination<TData>({\n table,\n pageSizeOptions = [10, 20, 30, 40, 50],\n}: DynamicTablePaginationProps<TData>) {\n return (\n <div className=\"phsa-flex phsa-items-center phsa-justify-between phsa-px-2\">\n <div className=\"phsa-flex-1 phsa-text-sm phsa-text-muted-foreground\">\n {table.getFilteredSelectedRowModel().rows.length} de{\" \"}\n {table.getFilteredRowModel().rows.length} linha(s) selecionada(s).\n </div>\n <div className=\"phsa-flex phsa-items-center phsa-space-x-6 phsa-lg:space-x-8\">\n <div className=\"phsa-flex phsa-items-center phsa-space-x-2\">\n <p className=\"phsa-text-sm phsa-font-medium\">Linhas por página</p>\n <Select\n value={`${table.getState().pagination.pageSize}`}\n onValueChange={(value) => {\n table.setPageSize(Number(value));\n }}\n >\n <SelectTrigger className=\"phsa-h-8 phsa-w-[70px]\">\n <SelectValue placeholder={table.getState().pagination.pageSize} />\n </SelectTrigger>\n <SelectContent side=\"top\">\n {pageSizeOptions.map((pageSize) => (\n <SelectItem key={pageSize} value={`${pageSize}`}>\n {pageSize}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n <div className=\"phsa-flex phsa-w-[100px] phsa-items-center phsa-justify-center phsa-text-sm phsa-font-medium\">\n Página {table.getState().pagination.pageIndex + 1} de{\" \"}\n {table.getPageCount()}\n </div>\n <div className=\"phsa-flex phsa-items-center phsa-space-x-2\">\n <Button\n variant=\"outline\"\n className=\"phsa-hidden phsa-h-8 phsa-w-8 phsa-p-0 lg:flex\"\n onClick={() => table.setPageIndex(0)}\n disabled={!table.getCanPreviousPage()}\n >\n <DoubleArrowLeftIcon className=\"phsa-h-4 phsa-w-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"phsa-h-8 phsa-w-8 phsa-p-0\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n <ChevronLeftIcon className=\"phsa-h-4 phsa-w-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"phsa-h-8 phsa-w-8 phsa-p-0\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n <ChevronRightIcon className=\"phsa-h-4 phsa-w-4\" />\n </Button>\n <Button\n variant=\"outline\"\n className=\"phsa-hidden phsa-h-8 phsa-w-8 phsa-p-0 lg:flex\"\n onClick={() => table.setPageIndex(table.getPageCount() - 1)}\n disabled={!table.getCanNextPage()}\n >\n <DoubleArrowRightIcon className=\"phsa-h-4 phsa-w-4\" />\n </Button>\n </div>\n </div>\n </div>\n );\n}\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\nexport type SelectProps = SelectPrimitive.SelectProps;\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=\"phsa-h-4 phsa-w-4 phsa-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=\"phsa-h-4 phsa-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=\"phsa-h-4 phsa-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 phsa-right-2 phsa-flex phsa-h-3.5 phsa-w-3.5 phsa-items-center phsa-justify-center\">\n <SelectPrimitive.ItemIndicator>\n <Check className=\"phsa-h-4 phsa-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 {\n ArrowDownIcon,\n ArrowUpIcon,\n CaretSortIcon,\n EyeNoneIcon,\n} from \"@radix-ui/react-icons\";\nimport { Column } from \"@tanstack/react-table\";\nimport { cn } from \"../../../../../lib/utils\";\nimport { Button } from \"../../../../../components/ui/button\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"../../../../../components/ui/dropdown-menu\";\n\ninterface DataTableColumnHeaderProps<TData, TValue>\n extends React.HTMLAttributes<HTMLDivElement> {\n column: Column<TData, TValue>;\n title: string;\n}\n\nexport function DataTableColumnHeader<TData, TValue>({\n column,\n title,\n className,\n}: DataTableColumnHeaderProps<TData, TValue>) {\n if (!column.getCanSort()) {\n return <div className={cn(className)}>{title}</div>;\n }\n\n return (\n <div className={cn(\"flex items-center space-x-2\", className)}>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"phsa--ml-3 phsa-h-8 phsa-data-[state=open]:bg-accent\"\n >\n <span>{title}</span>\n {column.getIsSorted() === \"desc\" ? (\n <ArrowDownIcon className=\"phsa-ml-2 phsa-h-4 phsa-w-4\" />\n ) : column.getIsSorted() === \"asc\" ? (\n <ArrowUpIcon className=\"phsa-ml-2 phsa-h-4 phsa-w-4\" />\n ) : (\n <CaretSortIcon className=\"phsa-ml-2 phsa-h-4 phsa-w-4\" />\n )}\n </Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent align=\"start\">\n <DropdownMenuItem onClick={() => column.toggleSorting(false)}>\n <ArrowUpIcon className=\"phsa-mr-2 phsa-h-3.5 phsa-w-3.5 phsa-text-muted-foreground/70\" />\n Crescente\n </DropdownMenuItem>\n <DropdownMenuItem onClick={() => column.toggleSorting(true)}>\n <ArrowDownIcon className=\"phsa-mr-2 phsa-h-3.5 phsa-w-3.5 phsa-text-muted-foreground/70\" />\n Decrescente\n </DropdownMenuItem>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={() => column.toggleVisibility(false)}>\n <EyeNoneIcon className=\"phsa-mr-2 phsa-h-3.5 phsa-w-3.5 phsa-text-muted-foreground/70\" />\n Ocultar\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </div>\n );\n}\n","import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst badgeVariants = cva(\"phsa-inline-flex phsa-items-center phsa-rounded-md border phsa-px-2.5 phsa-py-0.5 phsa-text-xs phsa-font-semibold phsa-transition-colors phsa-focus:outline-none phsa-focus:ring-2 phsa-focus:ring-ring phsa-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 success:\n \"border-transparent bg-success text-primary-foreground shadow hover:bg-success/80\",\n warning:\n \"border-transparent bg-warning text-primary-foreground shadow hover:bg-warning/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","import React, { useCallback, useMemo } from \"react\";\nimport { IconContext } from \"react-icons\";\nimport { IconProps } from \"./types\";\n\nexport const Icon: React.FC<IconProps> = ({ name, size = 24, ...rest }) => {\n const nameIcon = useMemo(() => name, [name]);\n\n const iconsModulePath = useMemo(\n () => ({\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n md: require(\"react-icons/md\"),\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n fa: require(\"react-icons/fa\"),\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n bs: require(\"react-icons/bs\"),\n }),\n []\n );\n\n const typeIcon = useMemo(() => {\n const matches = [...nameIcon.matchAll(/[A-Z]/g)];\n return String(\n nameIcon.slice(0, matches[1]?.index) || \"\"\n ).toLocaleLowerCase();\n }, [nameIcon]);\n\n const Icon = useCallback(\n (props: typeof rest) => {\n try {\n if (!typeIcon || !nameIcon) return <></>;\n\n return iconsModulePath[typeIcon as keyof typeof iconsModulePath][\n nameIcon\n ]?.(props);\n } catch {\n return <></>;\n }\n },\n [iconsModulePath, nameIcon, typeIcon]\n );\n\n return (\n <IconContext.Provider value={{ size: String(size) }}>\n <Icon {...rest} />\n </IconContext.Provider>\n );\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\";\n\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 React from \"react\";\nimport { isEmpty } from \"lodash\";\nimport { DataPairListProps } from \"./types\";\nimport { cn } from \"../../../lib/utils\";\nimport { Text } from \"../Text\";\n\nexport const DataPairList = ({\n title,\n data,\n labels,\n className,\n infoDirection = \"horizontal\",\n direction = \"vertical\",\n withBorder = false,\n header = <></>,\n}: DataPairListProps) => {\n if (isEmpty(data)) return null;\n\n return (\n <div\n className={cn(\n \"flex flex-col gap-2 rounded-md p-4\",\n withBorder && \"border border-muted\",\n className\n )}\n >\n <div className=\"phsa-flex phsa-gap-3\">\n {title && <Text variant=\"title\">{title}</Text>}\n {header}\n </div>\n <div\n className={cn(\n \"grid grid-cols-1 mt-5\",\n direction === \"vertical\"\n ? \"gap-3\"\n : \"sm:grid-cols-2 md:grid-cols-4 gap-10\"\n )}\n >\n {Object.entries(data || {}).map(([key, value], index) => (\n <div\n className={cn(\n \"flex gap-3\",\n infoDirection === \"horizontal\" ? \"flex-row\" : \"flex-col\"\n )}\n key={index}\n >\n <Text className=\"uppercase phsa-text-muted-foreground phsa-font-bold\">\n {labels?.[key] || key}:\n </Text>\n <Text>{value}</Text>\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../..//lib/utils\";\n\n// Definição das variantes com pesos adequados\nconst textVariants = cva(\"\", {\n variants: {\n variant: {\n display: \"text-5xl font-extrabold tracking-tight\",\n title: \"text-3xl font-bold tracking-tight\",\n subtitle: \"text-2xl font-semibold\",\n normal: \"text-base font-normal\",\n caption: \"text-sm font-medium\",\n muted: \"text-sm font-normal text-muted-foreground\",\n },\n align: {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n justify: \"text-justify\",\n },\n },\n defaultVariants: {\n variant: \"normal\",\n align: \"left\",\n },\n});\n\n// Mapeia variantes para as tags HTML corretas\nconst tagMap = {\n display: \"h1\",\n title: \"h2\",\n subtitle: \"h3\",\n normal: \"p\",\n caption: \"small\",\n muted: \"p\",\n} as const;\n\ntype TextProps = VariantProps<typeof textVariants> & {\n className?: string;\n children: React.ReactNode;\n};\n\nexport function Text({\n variant = \"normal\",\n align,\n className,\n children,\n}: TextProps) {\n const Tag = tagMap[variant || \"normal\"] || \"p\";\n\n return (\n <Tag className={cn(textVariants({ variant, align }), className)}>\n {children}\n </Tag>\n );\n}\n","import { useFormContext } from \"react-hook-form\";\nimport {\n Checkbox as CheckboxUI,\n CheckboxProps as CheckboxUIProps,\n} from \"../../ui/checkbox\";\nimport { Label } from \"../../../components/ui/label\";\n\nimport { FormControl, FormField, FormItem, FormLabel } from \"../form\";\n\nimport { ErrorMessage } from \"../../../components/dataDisplay/ErrorMessage\";\n\nexport type CheckboxProps = CheckboxUIProps & {\n label: string;\n error?: string;\n withoutForm?: boolean;\n};\n\nexport const Checkbox = ({\n label,\n error,\n withoutForm,\n ...props\n}: CheckboxProps) => {\n const form = useFormContext();\n\n const hasForm = !withoutForm && !!form && !!props.name;\n if (!hasForm)\n return (\n <div className=\"phsa-flex phsa-items-center phsa-space-x-2\">\n <CheckboxUI {...props} />\n {label && <Label htmlFor={props.id}>{label}</Label>}\n {error && <ErrorMessage>{error}</ErrorMessage>}\n </div>\n );\n\n return (\n <FormField\n control={form.control}\n name={props.name ?? \"\"}\n render={({ field }) => (\n <FormItem className=\"phsa-flex phsa-flex-row phsa-items-start phsa-space-x-3 phsa-space-y-0 phsa-rounded-md border phsa-p-4\">\n <FormControl>\n <CheckboxUI\n checked={field.value}\n onCheckedChange={field.onChange}\n />\n </FormControl>\n {label && (\n <div className=\"phsa-space-y-1 phsa-leading-none\">\n <FormLabel>{label}</FormLabel>\n </div>\n )}\n </FormItem>\n )}\n />\n );\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\nexport type CheckboxProps = React.ComponentPropsWithoutRef<\n typeof CheckboxPrimitive.Root\n>;\n\nconst Checkbox = React.forwardRef<\n React.ElementRef<typeof CheckboxPrimitive.Root>,\n CheckboxProps\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=\"phsa-h-4 phsa-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 LabelPrimitive from \"@radix-ui/react-label\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst labelVariants = cva(\"phsa-text-sm phsa-font-medium phsa-leading-none phsa-peer-disabled:cursor-not-allowed phsa-peer-disabled:opacity-70\"\n);\n\nexport type LabelProps = React.ComponentPropsWithoutRef<\n typeof LabelPrimitive.Root\n> &\n VariantProps<typeof labelVariants>;\n\nconst Label = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n LabelProps\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","import { useFormContext } from \"react-hook-form\";\nexport * from \"../../ui/form\";\nexport { useFormContext };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport {\n Controller,\n ControllerProps,\n FieldPath,\n FieldValues,\n FormProvider,\n useFormContext,\n} from \"react-hook-form\";\n\nimport { cn } from \"../../lib/utils\";\nimport { Label } from \"../../components/ui/label\";\n\nconst Form = FormProvider;\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = {\n name: TName;\n};\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n);\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n );\n};\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext);\n const itemContext = React.useContext(FormItemContext);\n const { getFieldState, formState } = useFormContext();\n\n const fieldState = getFieldState(fieldContext.name, formState);\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\");\n }\n\n const { id } = itemContext;\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n };\n};\n\ntype FormItemContextValue = {\n id: string;\n};\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n);\n\nconst FormItem = React.forwardRef<\n HTMLDivElement,\n React.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => {\n const id = React.useId();\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div ref={ref} className={cn(\"space-y-2\", className)} {...props} />\n </FormItemContext.Provider>\n );\n});\nFormItem.displayName = \"FormItem\";\n\nconst FormLabel = React.forwardRef<\n React.ElementRef<typeof LabelPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>\n>(({ className, ...props }, ref) => {\n const { error, formItemId } = useFormField();\n\n return (\n <Label\n ref={ref}\n className={cn(error && \"text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n );\n});\nFormLabel.displayName = \"FormLabel\";\n\nconst FormControl = React.forwardRef<\n React.ElementRef<typeof Slot>,\n React.ComponentPropsWithoutRef<typeof Slot>\n>(({ ...props }, ref) => {\n const { error, formItemId, formDescriptionId, formMessageId } =\n useFormField();\n\n return (\n <Slot\n ref={ref}\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n );\n});\nFormControl.displayName = \"FormControl\";\n\nconst FormDescription = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, ...props }, ref) => {\n const { formDescriptionId } = useFormField();\n\n return (\n <p\n ref={ref}\n id={formDescriptionId}\n className={cn(\"text-[0.8rem] text-muted-foreground\", className)}\n {...props}\n />\n );\n});\nFormDescription.displayName = \"FormDescription\";\n\nconst FormMessage = React.forwardRef<\n HTMLParagraphElement,\n React.HTMLAttributes<HTMLParagraphElement>\n>(({ className, children, ...props }, ref) => {\n const { error, formMessageId } = useFormField();\n const body = error ? String(error?.message) : children;\n\n if (!body) {\n return null;\n }\n\n return (\n <p\n ref={ref}\n id={formMessageId}\n className={cn(\"text-[0.8rem] font-medium text-destructive\", className)}\n {...props}\n >\n {body}\n </p>\n );\n});\nFormMessage.displayName = \"FormMessage\";\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n};\n","export type ErrorMessageProps = {\n children: string;\n};\nexport const ErrorMessage = ({ children }: ErrorMessageProps) => {\n return <p className=\"phsa-text-sm phsa-font-medium phsa-text-destructive\">{children}</p>;\n};\n","import * as React from \"react\";\n\nimport { cn } from \"../../lib/utils\";\n\nexport type InputProps = React.ComponentProps<\"input\">;\n\nconst Input = React.forwardRef<HTMLInputElement, InputProps>(\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","import { Input as InputUI } from \"@/components/ui/input\";\nimport { InputProps } from \"./types\";\nimport { useMemo } from \"react\";\nimport { InputBase } from \"../InputBase\";\nimport { useConditionalController } from \"@/hooks/use-conditional-controller\";\nimport { cn } from \"@/lib/utils\";\n\nexport const Input = ({\n \"data-testid\": dataTestId,\n withoutForm = false,\n extraElement,\n containerClassName,\n ...props\n}: InputProps) => {\n const formData = useConditionalController({\n name: props.name || \"\",\n withoutForm,\n });\n\n const inputProps = useMemo(() => {\n return {\n ...formData,\n ...props,\n };\n }, [formData, props]);\n\n return (\n <InputBase\n label={props.label}\n error={props.error}\n required={props.required}\n data-testid={dataTestId}\n >\n <div className={cn(\"flex items-center gap-2\", containerClassName)}>\n <InputUI\n {...inputProps}\n data-testid={dataTestId}\n className={cn(\n props.className,\n props.error &&\n \"border-destructive focus:border-destructive focus-visible:ring-0\"\n )}\n />\n {extraElement}\n </div>\n </InputBase>\n );\n};\n","import React from \"react\";\nimport { Icon } from \"@/components/dataDisplay\";\nimport { cn } from \"@/lib/utils\";\n\nexport type ErrorLabelProps = React.PropsWithChildren<{\n className?: string;\n \"data-testid\"?: string;\n}>;\n\nexport const ErrorLabel = ({\n children,\n className,\n \"data-testid\": dataTestId,\n}: ErrorLabelProps) => {\n return (\n <div\n className={cn(\"flex items-center gap-2 my-2\", className)}\n data-testid={`${dataTestId}-error-label`}\n >\n <Icon name=\"MdErrorOutline\" size={18} className=\"phsa-text-destructive\" />\n <span className=\"phsa-text-destructive phsa-text-sm\">{children}</span>\n </div>\n );\n};\n","import { ErrorLabel } from \"@/components/feedback/ErrorLabel\";\nimport { InputProps as InputPropsUI } from \"../../../../ui/input\";\nimport { Label } from \"../../../../ui/label\";\n\nexport type InputBaseProps = Omit<InputPropsUI, \"children\"> & {\n label?: string;\n error?: string;\n required?: boolean;\n children: React.ReactNode;\n \"data-testid\"?: string;\n};\n\nexport const InputBase = ({\n label,\n error,\n children,\n required,\n \"data-testid\": testId,\n}: InputBaseProps) => {\n return (\n <div>\n {label && (\n <Label data-testid={`${testId}-label`}>\n {`${label} ${required ? \"*\" : \"\"}`}{\" \"}\n </Label>\n )}\n {children}\n {error && <ErrorLabel data-testid={testId}>{error}</ErrorLabel>}\n </div>\n );\n};\n","import { useMemo } from \"react\";\nimport {\n useController,\n useForm,\n useFormContext,\n ControllerRenderProps,\n FieldValues,\n} from \"react-hook-form\";\n\nexport const useConditionalController = ({\n name,\n withoutForm,\n}: {\n name: string;\n withoutForm?: boolean;\n}): ControllerRenderProps<FieldValues, string> | Record<string, never> => {\n const form = useFormContext();\n\n const hasForm = useMemo(() => {\n return !withoutForm && !!form?.control;\n }, [withoutForm, form]);\n\n const tempForm = useForm();\n\n const controlToUse = useMemo(() => {\n return hasForm ? form.control : tempForm.control;\n }, [tempForm, form, hasForm]);\n\n const controller = useController({\n control: controlToUse,\n name: name || \"temp\",\n });\n\n return hasForm ? controller.field : {};\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n NumericFormat,\n NumericFormatProps,\n SourceInfo,\n} from \"react-number-format\";\nimport { InputBase } from \"../InputBase\";\nimport { Input } from \"../../../../ui/input\";\nimport { InputProps } from \"../Input/types\";\nimport { useCallback, useMemo } from \"react\";\nimport { useConditionalController } from \"@/hooks/use-conditional-controller\";\n\nexport type NumberInputProps = Omit<NumericFormatProps, \"onChange\"> &\n InputProps;\n\nexport const NumberInput = (props: NumberInputProps) => {\n const formData = useConditionalController({\n name: props.name || \"\",\n withoutForm: props.withoutForm,\n });\n\n const inputProps = useMemo(() => {\n return {\n ...formData,\n ...props,\n };\n }, [formData, props]);\n\n const onValueChange = useCallback(\n (\n data: {\n value: string;\n floatValue: number | undefined;\n formattedValue: string;\n },\n sourceInfo: SourceInfo\n ) => {\n const syntheticEvent = {\n target: {\n value: data.formattedValue,\n name: props.name,\n },\n currentTarget: {\n value: data.formattedValue,\n name: props.name,\n },\n } as React.ChangeEvent<HTMLInputElement>;\n\n props.onChange?.(syntheticEvent);\n props.onValueChange?.(data, sourceInfo);\n if (formData.onChange) {\n formData.onChange(data.formattedValue);\n }\n },\n [props, formData]\n );\n\n return (\n <InputBase {...props}>\n <NumericFormat\n {...inputProps}\n customInput={Input}\n value={props.value}\n onValueChange={onValueChange}\n />\n </InputBase>\n );\n};\n","\"use client\";\nimport * as React from \"react\";\nimport { Input } from \"../Input\";\nimport { useConditionalController } from \"@/hooks/use-conditional-controller\";\nimport { InputProps } from \"../Input/types\";\nimport { useMask } from \"@/hooks/use-mask\";\nimport { useRef } from \"react\";\n\nexport type MaskInputProps = {\n mask?: string;\n} & InputProps;\n\nexport const MaskInput = ({\n \"data-testid\": dataTestId,\n withoutForm = false,\n extraElement,\n mask = \"\",\n ...props\n}: MaskInputProps) => {\n const formData = useConditionalController({\n name: props.name || \"\",\n withoutForm,\n });\n\n const inputProps = React.useMemo(() => {\n return {\n ...formData,\n ...props,\n };\n }, [formData, props]);\n\n const { applyMask } = useMask({ mask });\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const applyMaskToInput = React.useCallback(\n (value: string) => {\n if (inputRef.current && mask) {\n const maskedValue = applyMask(value);\n inputRef.current.value = maskedValue;\n }\n },\n [applyMask, mask]\n );\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const maskedValue = mask ? applyMask(e.target.value) : e.target.value;\n\n const response = {\n ...e,\n target: {\n ...e.target,\n value: maskedValue,\n },\n };\n applyMaskToInput(maskedValue);\n return inputProps?.onChange?.(response);\n },\n [applyMask, inputProps, mask, applyMaskToInput]\n );\n\n return (\n <Input\n {...inputProps}\n ref={inputRef}\n onChange={handleChange}\n extraElement={extraElement}\n data-testid={dataTestId}\n withoutForm={true}\n />\n );\n};\n","import { useState, useCallback } from \"react\";\n\nexport type UseMaskProps = {\n mask: string;\n placeholder?: string; // Placeholder que mostra a máscara\n showMask?: boolean; // Se deve mostrar a máscara mesmo sem valor\n allowEmpty?: boolean; // Se permite valor vazio\n transform?: \"uppercase\" | \"lowercase\" | \"capitalize\"; // Transformação do texto\n};\n\nexport const useMask = ({ mask, ...options }: UseMaskProps) => {\n const [value, setValue] = useState(\"\");\n\n const applyMask = useCallback(\n (inputValue: string) => {\n if (!inputValue || !mask) return \"\";\n\n // Remove todos os caracteres que não são letras ou números\n const cleanValue = inputValue.replace(/[^a-zA-Z0-9]/g, \"\");\n\n let maskedValue = \"\";\n let cleanIndex = 0;\n\n for (let i = 0; i < mask.length && cleanIndex < cleanValue.length; i++) {\n const maskChar = mask[i];\n const inputChar = cleanValue[cleanIndex];\n\n if (maskChar === \"9\") {\n // Só aceita números\n if (/\\d/.test(inputChar)) {\n maskedValue += inputChar;\n cleanIndex++;\n } else {\n // Se não for número, pula esse caractere do input\n cleanIndex++;\n i--; // Volta um passo na máscara para tentar novamente\n }\n } else if (maskChar === \"A\") {\n // Só aceita letras\n if (/[a-zA-Z]/.test(inputChar)) {\n let char = inputChar;\n // Aplica transformação se especificada\n if (options.transform === \"uppercase\") char = char.toUpperCase();\n else if (options.transform === \"lowercase\")\n char = char.toLowerCase();\n maskedValue += char;\n cleanIndex++;\n } else {\n // Se não for letra, pula esse caractere do input\n cleanIndex++;\n i--; // Volta um passo na máscara para tentar novamente\n }\n } else {\n // Caractere literal da máscara (parênteses, hífen, etc.)\n maskedValue += maskChar;\n }\n }\n\n return maskedValue;\n },\n [mask, options.transform]\n );\n\n const handleSetValue = useCallback(\n (newValue: string) => {\n const maskedValue = applyMask(newValue);\n setValue(maskedValue);\n },\n [applyMask]\n );\n\n // Função para obter valor sem máscara (raw)\n const getRawValue = useCallback(() => {\n return value.replace(/[^a-zA-Z0-9]/g, \"\");\n }, [value]);\n\n // Função para verificar se está completo\n const isComplete = useCallback(() => {\n return value.length === mask.length;\n }, [value, mask]);\n\n // Função para verificar se é válido\n const isValid = useCallback(() => {\n // Implementar validação específica\n return isComplete() && value.length > 0;\n }, [isComplete, value]);\n\n // Função para limpar o valor\n const clear = useCallback(() => {\n setValue(\"\");\n }, []);\n\n // Compatibilidade com react-hook-form\n const getFormProps = useCallback(\n () => ({\n value,\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => {\n handleSetValue(e.target.value);\n },\n placeholder: options.placeholder,\n }),\n [value, handleSetValue, options.placeholder]\n );\n\n return {\n value,\n setValue: handleSetValue,\n rawValue: getRawValue(),\n isComplete: isComplete(),\n isValid: isValid(),\n applyMask,\n clear,\n placeholder: options.placeholder || mask.replace(/[9A]/g, \"_\"),\n formProps: getFormProps(),\n };\n};\n","import { forwardRef } from \"react\";\nimport { Spinner } from \"../../../components/feedback\";\nimport {\n Button as UIButton,\n ButtonProps as UIButtonProps,\n} from \"../../ui/button\";\n\nexport type ButtonProps = UIButtonProps & {\n loading?: boolean;\n};\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({ children, disabled, loading, ...rest }, ref) => {\n return (\n <UIButton {...rest} disabled={disabled || loading} ref={ref}>\n {loading && <Spinner className=\"phsa-fill-white\" />}\n {children}\n </UIButton>\n );\n }\n);\n\nButton.displayName = \"Button\";\n","import React from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { VariantProps, cva } from \"class-variance-authority\";\nimport { Loader } from \"lucide-react\";\nimport { Icon } from \"../dataDisplay\";\n\nconst spinnerVariants = cva(\"phsa-flex-col phsa-items-center phsa-justify-center\", {\n variants: {\n show: {\n true: \"flex\",\n false: \"hidden\",\n },\n },\n defaultVariants: {\n show: true,\n },\n});\n\nconst loaderVariants = cva(\"phsa-animate-spin phsa-text-primary\", {\n variants: {\n size: {\n small: \"size-6\",\n medium: \"size-8\",\n large: \"size-12\",\n },\n },\n defaultVariants: {\n size: \"medium\",\n },\n});\n\ninterface SpinnerContentProps\n extends VariantProps<typeof spinnerVariants>,\n VariantProps<typeof loaderVariants> {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport function Spinner({\n size,\n show,\n children,\n className,\n}: SpinnerContentProps) {\n return (\n <span className={spinnerVariants({ show })}>\n <Icon\n name=\"FaSpinner\"\n className={cn(loaderVariants({ size }), className)}\n />\n {children}\n </span>\n );\n}\n","\"use client\";\n\n// Inspired by react-hot-toast library\nimport * as React from \"react\";\n\nimport type { ToastActionElement, ToastProps } from \"../components/ui/toast\";\n\nconst TOAST_LIMIT = 1;\nconst TOAST_REMOVE_DELAY = 1000000;\n\ntype ToasterToast = ToastProps & {\n id: string;\n title?: React.ReactNode;\n description?: React.ReactNode;\n action?: ToastActionElement;\n};\n\nconst actionTypes = {\n ADD_TOAST: \"ADD_TOAST\",\n UPDATE_TOAST: \"UPDATE_TOAST\",\n DISMISS_TOAST: \"DISMISS_TOAST\",\n REMOVE_TOAST: \"REMOVE_TOAST\",\n} as const;\n\nlet count = 0;\n\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\n\ntype ActionType = typeof actionTypes;\n\ntype Action =\n | {\n type: ActionType[\"ADD_TOAST\"];\n toast: ToasterToast;\n }\n | {\n type: ActionType[\"UPDATE_TOAST\"];\n toast: Partial<ToasterToast>;\n }\n | {\n type: ActionType[\"DISMISS_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n }\n | {\n type: ActionType[\"REMOVE_TOAST\"];\n toastId?: ToasterToast[\"id\"];\n };\n\ninterface State {\n toasts: ToasterToast[];\n}\n\nconst toastTimeouts = new Map<string, ReturnType<typeof setTimeout>>();\n\nconst addToRemoveQueue = (toastId: string) => {\n if (toastTimeouts.has(toastId)) {\n return;\n }\n\n const timeout = setTimeout(() => {\n toastTimeouts.delete(toastId);\n dispatch({\n type: \"REMOVE_TOAST\",\n toastId: toastId,\n });\n }, TOAST_REMOVE_DELAY);\n\n toastTimeouts.set(toastId, timeout);\n};\n\nexport const reducer = (state: State, action: Action): State => {\n switch (action.type) {\n case \"ADD_TOAST\":\n return {\n ...state,\n toasts: [action.toast, ...state.toasts].slice(0, TOAST_LIMIT),\n };\n\n case \"UPDATE_TOAST\":\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === action.toast.id ? { ...t, ...action.toast } : t\n ),\n };\n\n case \"DISMISS_TOAST\": {\n const { toastId } = action;\n\n // ! Side effects ! - This could be extracted into a dismissToast() action,\n // but I'll keep it here for simplicity\n if (toastId) {\n addToRemoveQueue(toastId);\n } else {\n state.toasts.forEach((toast) => {\n addToRemoveQueue(toast.id);\n });\n }\n\n return {\n ...state,\n toasts: state.toasts.map((t) =>\n t.id === toastId || toastId === undefined\n ? {\n ...t,\n open: false,\n }\n : t\n ),\n };\n }\n case \"REMOVE_TOAST\":\n if (action.toastId === undefined) {\n return {\n ...state,\n toasts: [],\n };\n }\n return {\n ...state,\n toasts: state.toasts.filter((t) => t.id !== action.toastId),\n };\n }\n};\n\nconst listeners: Array<(state: State) => void> = [];\n\nlet memoryState: State = { toasts: [] };\n\nfunction dispatch(action: Action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener) => {\n listener(memoryState);\n });\n}\n\ntype Toast = Omit<ToasterToast, \"id\">;\n\nfunction toast({ ...props }: Toast) {\n const id = genId();\n\n const update = (props: ToasterToast) =>\n dispatch({\n type: \"UPDATE_TOAST\",\n toast: { ...props, id },\n });\n const dismiss = () => dispatch({ type: \"DISMISS_TOAST\", toastId: id });\n\n dispatch({\n type: \"ADD_TOAST\",\n toast: {\n ...props,\n id,\n open: true,\n onOpenChange: (open) => {\n if (!open) dismiss();\n },\n },\n });\n\n return {\n id: id,\n dismiss,\n update,\n };\n}\n\nfunction useToast() {\n const [state, setState] = React.useState<State>(memoryState);\n\n React.useEffect(() => {\n listeners.push(setState);\n return () => {\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n };\n }, [state]);\n\n return {\n ...state,\n toast,\n dismiss: (toastId?: string) => dispatch({ type: \"DISMISS_TOAST\", toastId }),\n };\n}\n\nexport { useToast, toast };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as ToastPrimitives from \"@radix-ui/react-toast\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst ToastProvider = ToastPrimitives.Provider;\n\nconst ToastViewport = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Viewport>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Viewport>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Viewport\n ref={ref}\n className={cn(\n \"fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]\",\n className\n )}\n {...props}\n />\n));\nToastViewport.displayName = ToastPrimitives.Viewport.displayName;\n\nconst toastVariants = cva(\"group phsa-pointer-events-auto relative phsa-flex phsa-w-full phsa-items-center phsa-justify-between phsa-space-x-2 phsa-overflow-hidden phsa-rounded-md border phsa-p-4 phsa-pr-6 phsa-shadow-lg phsa-transition-all phsa-data-[swipe=cancel]:translate-x-0 phsa-data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] phsa-data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] phsa-data-[swipe=move]:transition-none phsa-data-[state=open]:animate-in phsa-data-[state=closed]:animate-out phsa-data-[swipe=end]:animate-out phsa-data-[state=closed]:fade-out-80 phsa-data-[state=closed]:slide-out-to-right-full phsa-data-[state=open]:slide-in-from-top-full phsa-data-[state=open]:sm:slide-in-from-bottom-full\",\n {\n variants: {\n variant: {\n default: \"border bg-background text-foreground\",\n success: \"border-success bg-success text-success-foreground\",\n destructive:\n \"destructive group border-destructive bg-destructive text-destructive-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n);\n\nconst Toast = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Root>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Root> &\n VariantProps<typeof toastVariants>\n>(({ className, variant, ...props }, ref) => {\n return (\n <ToastPrimitives.Root\n ref={ref}\n className={cn(toastVariants({ variant }), className)}\n {...props}\n />\n );\n});\nToast.displayName = ToastPrimitives.Root.displayName;\n\nconst ToastAction = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Action>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Action>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Action\n ref={ref}\n className={cn(\n \"inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive\",\n className\n )}\n {...props}\n />\n));\nToastAction.displayName = ToastPrimitives.Action.displayName;\n\nconst ToastClose = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Close>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Close>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Close\n ref={ref}\n className={cn(\n \"absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600\",\n className\n )}\n toast-close=\"\"\n {...props}\n >\n <X className=\"phsa-h-4 phsa-w-4\" />\n </ToastPrimitives.Close>\n));\nToastClose.displayName = ToastPrimitives.Close.displayName;\n\nconst ToastTitle = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Title>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Title>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Title\n ref={ref}\n className={cn(\"text-sm font-semibold [&+div]:text-xs\", className)}\n {...props}\n />\n));\nToastTitle.displayName = ToastPrimitives.Title.displayName;\n\nconst ToastDescription = React.forwardRef<\n React.ElementRef<typeof ToastPrimitives.Description>,\n React.ComponentPropsWithoutRef<typeof ToastPrimitives.Description>\n>(({ className, ...props }, ref) => (\n <ToastPrimitives.Description\n ref={ref}\n className={cn(\"text-sm opacity-90\", className)}\n {...props}\n />\n));\nToastDescription.displayName = ToastPrimitives.Description.displayName;\n\ntype ToastProps = React.ComponentPropsWithoutRef<typeof Toast>;\n\ntype ToastActionElement = React.ReactElement<typeof ToastAction>;\n\nexport {\n type ToastProps,\n type ToastActionElement,\n ToastProvider,\n ToastViewport,\n Toast,\n ToastTitle,\n ToastDescription,\n ToastClose,\n ToastAction,\n};\n","\"use client\";\n\nimport { useToast } from \"../../hooks/use-toast\";\nimport {\n Toast,\n ToastClose,\n ToastDescription,\n ToastProvider,\n ToastTitle,\n ToastViewport,\n} from \"../../components/ui/toast\";\n\nexport function Toaster() {\n const { toasts } = useToast();\n\n return (\n <ToastProvider>\n {toasts.map(function ({ id, title, description, action, ...props }) {\n return (\n <Toast key={id} {...props}>\n <div className=\"phsa-grid phsa-gap-1\">\n {title && <ToastTitle>{title}</ToastTitle>}\n {description && (\n <ToastDescription>{description}</ToastDescription>\n )}\n </div>\n {action}\n <ToastClose />\n </Toast>\n );\n })}\n <ToastViewport />\n </ToastProvider>\n );\n}\n","import { Button } from \"../../../../actions/Button\";\nimport { Icon } from \"../../../../dataDisplay/Icon\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { useConditionalController } from \"@/hooks/use-conditional-controller\";\nimport { MaskInput, MaskInputProps } from \"../MaskInput\";\n\nexport type MultipleInputProps = MaskInputProps & {\n data?: string[];\n onAdd?: (data: string) => void;\n onRemove?: (position: number) => void;\n name: string;\n defaultValue?: string;\n \"data-testid\"?: string;\n};\n\nexport const MultipleInput = ({\n data = [],\n onAdd = () => {},\n defaultValue = \"\",\n onRemove = () => {},\n withoutForm = false,\n ...props\n}: MultipleInputProps) => {\n const [inputValue, setInputValue] = useState(defaultValue);\n\n const formData = useConditionalController({\n name: props.name || \"\",\n withoutForm,\n });\n\n const inputItems = useMemo(() => {\n if (formData?.value) {\n return formData.value;\n }\n return data;\n }, [data, formData]);\n\n const onAddData = useCallback(() => {\n const trimmedValue = inputValue.trim();\n if (trimmedValue) {\n if (formData?.onChange) {\n formData.onChange([...inputItems, trimmedValue]);\n } else {\n onAdd(trimmedValue);\n }\n setInputValue(\"\");\n }\n }, [inputValue, formData, onAdd, inputItems]);\n\n const onRemoveData = useCallback(\n (index: number) => {\n if (formData?.onChange) {\n const newData = inputItems.filter(\n (_: string, i: number) => i !== index\n );\n formData.onChange(newData);\n } else {\n onRemove(index);\n }\n },\n [formData, inputItems, onRemove]\n );\n\n const renderItens = useCallback(() => {\n return inputItems?.map((item: string, index: number) => {\n return (\n <div key={item} className=\"phsa-flex phsa-justify-between\">\n {item}\n <Button\n variant=\"ghost\"\n className=\"phsa-text-destructive\"\n size={\"icon\"}\n onClick={() => onRemoveData(index)}\n >\n <Icon name=\"MdDelete\" />\n </Button>\n </div>\n );\n });\n }, [inputItems, onRemoveData]);\n\n const extraElement = useMemo(\n () => (\n <Button type=\"button\" onClick={onAddData} disabled={!inputValue}>\n <Icon name=\"MdAdd\" />\n </Button>\n ),\n [onAddData, inputValue]\n );\n\n return (\n <div className=\"phsa-flex phsa-flex-col phsa-gap-2\">\n <MaskInput\n {...props}\n withoutForm\n extraElement={extraElement}\n onChange={(e) => {\n setInputValue(e.target.value);\n }}\n value={inputValue}\n />\n {renderItens()}\n </div>\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\nexport type DialogProps = DialogPrimitive.DialogProps;\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 overflow-auto max-h-[80vh]\",\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"absolute phsa-right-4 phsa-top-4 phsa-rounded-sm phsa-opacity-70 phsa-ring-offset-background phsa-transition-opacity phsa-hover:opacity-100 phsa-focus:outline-none phsa-focus:ring-2 phsa-focus:ring-ring phsa-focus:ring-offset-2 phsa-disabled:pointer-events-none phsa-data-[state=open]:bg-accent phsa-data-[state=open]:text-muted-foreground\">\n <X className=\"phsa-h-4 phsa-w-4\" />\n <span className=\"phsa-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\";\nimport {\n Dialog as DialogComponent,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogProps as DialogComponentProps,\n DialogClose,\n} from \"../../../components/ui/dialog\";\nimport { PropsWithChildren, useRef } from \"react\";\nimport { Button } from \"../Button\";\n\nexport type DialogProps = DialogComponentProps &\n PropsWithChildren & {\n className?: string;\n title?: string;\n description?: string;\n footer?: () => React.ReactNode;\n };\n\nexport function Dialog({\n title,\n description,\n className,\n children,\n footer = () => null,\n ...props\n}: DialogProps) {\n return (\n <DialogComponent {...props}>\n <DialogContent className={className}>\n <DialogHeader>\n {title && <DialogTitle>{title}</DialogTitle>}\n {description && <DialogDescription>{description}</DialogDescription>}\n </DialogHeader>\n {children}\n {footer && <DialogFooter>{footer()}</DialogFooter>}\n </DialogContent>\n </DialogComponent>\n );\n}\n\nexport type DialogWithFormProps = DialogProps & {\n onSubmit: () => void;\n};\n\nexport const DialogWithForm = ({\n title,\n description,\n className,\n children,\n footer = () => null,\n onSubmit = () => {},\n ...props\n}: DialogWithFormProps) => {\n const dialogRef = useRef<HTMLDivElement>(null);\n\n return (\n <DialogComponent {...props}>\n <DialogContent className={className} ref={dialogRef}>\n <form onSubmit={onSubmit} className=\"phsa-flex phsa-flex-col phsa-gap-4\">\n <DialogHeader>\n {title && <DialogTitle>{title}</DialogTitle>}\n {description && (\n <DialogDescription>{description}</DialogDescription>\n )}\n </DialogHeader>\n {children}\n {footer && (\n <DialogFooter>\n <div className=\"phsa-flex phsa-justify-between phsa-w-full\">\n <DialogClose asChild>\n <Button type=\"button\" variant=\"secondary\">\n Fechar\n </Button>\n </DialogClose>\n {footer()}\n </div>\n </DialogFooter>\n )}\n </form>\n </DialogContent>\n </DialogComponent>\n );\n};\n","\"use client\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nconst Collapsible = CollapsiblePrimitive.Root\n\nconst CollapsibleTrigger = CollapsiblePrimitive.CollapsibleTrigger\n\nconst CollapsibleContent = CollapsiblePrimitive.CollapsibleContent\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n","import { useCallback } from \"react\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../../../components/dataDisplay\";\nimport { Separator } from \"../../../components/layout\";\nimport { cn } from \"../../../lib/utils\";\n\ntype StepsProps = {\n data: {\n label?: string;\n id: number;\n }[];\n onClick?: (id: number) => void;\n value?: number;\n};\nexport const Steps = ({ data, onClick = () => {}, value }: StepsProps) => {\n const renderSteps = useCallback(() => {\n return data.map(({ label, id }, index) => {\n const isLast = index === data.length - 1;\n const isActive = typeof value === \"number\" && id <= value;\n\n return (\n <div key={index} className={cn(!isLast && \"w-full flex items-center\")}>\n <div>\n <Button\n onClick={() => onClick && onClick(id)}\n variant={isActive ? \"default\" : \"outline\"}\n size=\"icon\"\n className=\"phsa-rounded-full\"\n >\n {isActive ? <Icon name=\"MdCheck\" /> : index + 1}\n </Button>\n </div>\n {label && <p className=\"absolute\">{label}</p>}\n {!isLast && (\n <Separator\n orientation=\"horizontal\"\n className={cn(isActive && \"bg-primary h-[2px]\")}\n />\n )}\n {/* {\n <Separator\n orientation=\"horizontal\"\n className={cn(\"bg-primary h-[2px]\")}\n />\n } */}\n </div>\n );\n });\n }, [data, onClick, value]);\n return <div className=\"phsa-flex phsa-w-full\">{renderSteps()}</div>;\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Drawer as DrawerPrimitive } from \"vaul\";\n\nimport { cn } from \"../../lib/utils\";\n\nexport type DrawerProps = React.ComponentProps<typeof DrawerPrimitive.Root>;\n\nconst Drawer = ({ shouldScaleBackground = true, ...props }: DrawerProps) => (\n <DrawerPrimitive.Root\n shouldScaleBackground={shouldScaleBackground}\n {...props}\n />\n);\nDrawer.displayName = \"Drawer\";\n\nconst DrawerTrigger = DrawerPrimitive.Trigger;\n\nconst DrawerPortal = DrawerPrimitive.Portal;\n\nconst DrawerClose = DrawerPrimitive.Close;\n\nconst DrawerOverlay = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Overlay\n ref={ref}\n className={cn(\"fixed inset-0 z-50 bg-black/80\", className)}\n {...props}\n />\n));\nDrawerOverlay.displayName = DrawerPrimitive.Overlay.displayName;\n\nconst DrawerContent = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n <DrawerPortal>\n <DrawerOverlay />\n <DrawerPrimitive.Content\n ref={ref}\n className={cn(\n \"fixed inset-x-0 bottom-0 z-50 mt-24 flex h-auto flex-col rounded-t-[10px] border bg-background\",\n className\n )}\n {...props}\n >\n <div className=\"phsa-mx-auto phsa-mt-4 phsa-h-2 phsa-w-[100px] phsa-rounded-full phsa-bg-muted\" />\n {children}\n </DrawerPrimitive.Content>\n </DrawerPortal>\n));\nDrawerContent.displayName = \"DrawerContent\";\n\nconst DrawerHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"grid gap-1.5 p-4 text-center sm:text-left\", className)}\n {...props}\n />\n);\nDrawerHeader.displayName = \"DrawerHeader\";\n\nconst DrawerFooter = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n);\nDrawerFooter.displayName = \"DrawerFooter\";\n\nconst DrawerTitle = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Title\n ref={ref}\n className={cn(\n \"text-lg font-semibold leading-none tracking-tight\",\n className\n )}\n {...props}\n />\n));\nDrawerTitle.displayName = DrawerPrimitive.Title.displayName;\n\nconst DrawerDescription = React.forwardRef<\n React.ElementRef<typeof DrawerPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DrawerPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DrawerPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nDrawerDescription.displayName = DrawerPrimitive.Description.displayName;\n\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Minus, Plus } from \"lucide-react\";\n// import { Bar, BarChart, ResponsiveContainer } from \"recharts\";\n\nimport { Button } from \"../../../actions\";\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerProps,\n DrawerTitle,\n DrawerTrigger,\n} from \"../../Drawer\";\n\nexport type CustomDrawerProps = DrawerProps & {\n className?: string;\n};\n\nexport function CustomDrawer({ className, ...props }: CustomDrawerProps) {\n return (\n <Drawer {...props}>\n {/* <DrawerTrigger asChild>\n <Button variant=\"outline\">Open Drawer</Button>\n </DrawerTrigger> */}\n <DrawerContent className={className}>{props.children}</DrawerContent>\n </Drawer>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { X } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Sheet = SheetPrimitive.Root;\n\nconst SheetTrigger = SheetPrimitive.Trigger;\n\nconst SheetClose = SheetPrimitive.Close;\n\nconst SheetPortal = SheetPrimitive.Portal;\n\nconst SheetOverlay = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Overlay\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 ref={ref}\n />\n));\nSheetOverlay.displayName = SheetPrimitive.Overlay.displayName;\n\nconst sheetVariants = cva(\"fixed phsa-z-50 phsa-gap-4 phsa-bg-background phsa-p-6 phsa-shadow-lg transition phsa-ease-in-out phsa-data-[state=closed]:duration-300 phsa-data-[state=open]:duration-500 phsa-data-[state=open]:animate-in phsa-data-[state=closed]:animate-out\",\n {\n variants: {\n side: {\n top: \"inset-x-0 top-0 border-b data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top\",\n bottom:\n \"inset-x-0 bottom-0 border-t data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom\",\n left: \"inset-y-0 left-0 h-full w-3/4 border-r data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left sm:max-w-sm\",\n right:\n \"inset-y-0 right-0 h-full w-3/4 border-l data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right sm:max-w-sm\",\n },\n },\n defaultVariants: {\n side: \"right\",\n },\n }\n);\n\ninterface SheetContentProps\n extends React.ComponentPropsWithoutRef<typeof SheetPrimitive.Content>,\n VariantProps<typeof sheetVariants> {}\n\nconst SheetContent = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Content>,\n SheetContentProps\n>(({ side = \"right\", className, children, ...props }, ref) => (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n ref={ref}\n className={cn(sheetVariants({ side }), className)}\n {...props}\n >\n <SheetPrimitive.Close className=\"absolute phsa-right-4 phsa-top-4 phsa-rounded-sm phsa-opacity-70 phsa-ring-offset-background phsa-transition-opacity phsa-hover:opacity-100 phsa-focus:outline-none phsa-focus:ring-2 phsa-focus:ring-ring phsa-focus:ring-offset-2 phsa-disabled:pointer-events-none phsa-data-[state=open]:bg-secondary\">\n <X className=\"phsa-h-4 phsa-w-4\" />\n <span className=\"phsa-sr-only\">Close</span>\n </SheetPrimitive.Close>\n {children}\n </SheetPrimitive.Content>\n </SheetPortal>\n));\nSheetContent.displayName = SheetPrimitive.Content.displayName;\n\nconst SheetHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\nSheetHeader.displayName = \"SheetHeader\";\n\nconst SheetFooter = ({\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);\nSheetFooter.displayName = \"SheetFooter\";\n\nconst SheetTitle = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold text-foreground\", className)}\n {...props}\n />\n));\nSheetTitle.displayName = SheetPrimitive.Title.displayName;\n\nconst SheetDescription = React.forwardRef<\n React.ElementRef<typeof SheetPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof SheetPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <SheetPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nSheetDescription.displayName = SheetPrimitive.Description.displayName;\n\nexport {\n Sheet,\n SheetPortal,\n SheetOverlay,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n};\n","import {\n Sheet as SheetComponent,\n SheetContent,\n} from \"../../../components/ui/sheet\";\nimport { PropsWithChildren } from \"react\";\n\nexport type SheetProps = typeof SheetComponent &\n PropsWithChildren & {\n side?: \"left\" | \"right\" | \"top\" | \"bottom\";\n className?: string;\n onOpenChange?: (open: boolean) => void;\n open?: boolean;\n };\nexport function Sheet({ side, className, children, ...props }: SheetProps) {\n return (\n <SheetComponent {...props}>\n <SheetContent side={side} className={className}>\n {children}\n </SheetContent>\n </SheetComponent>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { VariantProps, cva } from \"class-variance-authority\";\nimport { PanelLeft } from \"lucide-react\";\n\nimport { useIsMobile } from \"../../hooks/use-mobile\";\nimport { cn } from \"../../lib/utils\";\nimport { Button } from \"../../components/ui/button\";\nimport { Input } from \"../../components/ui/input\";\nimport { Separator } from \"../../components/ui/separator\";\nimport { Sheet, SheetContent } from \"../../components/ui/sheet\";\nimport { Skeleton } from \"../../components/ui/skeleton\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"../../components/ui/tooltip\";\n\nconst SIDEBAR_COOKIE_NAME = \"sidebar:state\";\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7;\nconst SIDEBAR_WIDTH = \"16rem\";\nconst SIDEBAR_WIDTH_MOBILE = \"18rem\";\nconst SIDEBAR_WIDTH_ICON = \"3rem\";\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\";\n\ntype SidebarContext = {\n state: \"expanded\" | \"collapsed\";\n open: boolean;\n setOpen: (open: boolean) => void;\n openMobile: boolean;\n setOpenMobile: (open: boolean) => void;\n isMobile: boolean;\n toggleSidebar: () => void;\n};\n\nconst SidebarContext = React.createContext<SidebarContext | null>(null);\n\nfunction useSidebar() {\n const context = React.useContext(SidebarContext);\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider.\");\n }\n\n return context;\n}\n\nconst SidebarProvider = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n defaultOpen?: boolean;\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n }\n>(\n (\n {\n defaultOpen = true,\n open: openProp,\n onOpenChange: setOpenProp,\n className,\n style,\n children,\n ...props\n },\n ref\n ) => {\n const isMobile = useIsMobile();\n const [openMobile, setOpenMobile] = React.useState(false);\n\n // This is the internal state of the sidebar.\n // We use openProp and setOpenProp for control from outside the component.\n const [_open, _setOpen] = React.useState(defaultOpen);\n const open = openProp ?? _open;\n const setOpen = React.useCallback(\n (value: boolean | ((value: boolean) => boolean)) => {\n const openState = typeof value === \"function\" ? value(open) : value;\n if (setOpenProp) {\n setOpenProp(openState);\n } else {\n _setOpen(openState);\n }\n\n // This sets the cookie to keep the sidebar state.\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`;\n },\n [setOpenProp, open]\n );\n\n // Helper to toggle the sidebar.\n const toggleSidebar = React.useCallback(() => {\n return isMobile\n ? setOpenMobile((open) => !open)\n : setOpen((open) => !open);\n }, [isMobile, setOpen, setOpenMobile]);\n\n // Adds a keyboard shortcut to toggle the sidebar.\n React.useEffect(() => {\n const handleKeyDown = (event: KeyboardEvent) => {\n if (\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\n (event.metaKey || event.ctrlKey)\n ) {\n event.preventDefault();\n toggleSidebar();\n }\n };\n\n window.addEventListener(\"keydown\", handleKeyDown);\n return () => window.removeEventListener(\"keydown\", handleKeyDown);\n }, [toggleSidebar]);\n\n // We add a state so that we can do data-state=\"expanded\" or \"collapsed\".\n // This makes it easier to style the sidebar with Tailwind classes.\n const state = open ? \"expanded\" : \"collapsed\";\n\n const contextValue = React.useMemo<SidebarContext>(\n () => ({\n state,\n open,\n setOpen,\n isMobile,\n openMobile,\n setOpenMobile,\n toggleSidebar,\n }),\n [state, open, setOpen, isMobile, openMobile, setOpenMobile, toggleSidebar]\n );\n\n return (\n <SidebarContext.Provider value={contextValue}>\n <TooltipProvider delayDuration={0}>\n <div\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH,\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\n ...style,\n } as React.CSSProperties\n }\n className={cn(\n \"group/sidebar-wrapper flex min-h-svh w-full has-[[data-variant=inset]]:bg-sidebar\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n </TooltipProvider>\n </SidebarContext.Provider>\n );\n }\n);\nSidebarProvider.displayName = \"SidebarProvider\";\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\";\n variant?: \"sidebar\" | \"floating\" | \"inset\";\n collapsible?: \"offcanvas\" | \"icon\" | \"none\";\n }\n>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar();\n\n if (collapsible === \"none\") {\n return (\n <div\n className={cn(\n \"flex h-full w-[--sidebar-width] flex-col bg-sidebar text-sidebar-foreground\",\n className\n )}\n ref={ref}\n {...props}\n >\n {children}\n </div>\n );\n }\n\n if (isMobile) {\n return (\n <Sheet open={openMobile} onOpenChange={setOpenMobile} {...props}>\n <SheetContent\n data-sidebar=\"sidebar\"\n data-mobile=\"true\"\n className=\"phsa-w-[--sidebar-width] phsa-bg-sidebar phsa-p-0 phsa-text-sidebar-foreground [&>button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n <div className=\"phsa-flex phsa-h-full phsa-w-full phsa-flex-col\">{children}</div>\n </SheetContent>\n </Sheet>\n );\n }\n\n return (\n <div\n ref={ref}\n className=\"group peer phsa-hidden md:block phsa-text-sidebar-foreground\"\n data-state={state}\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\n data-variant={variant}\n data-side={side}\n >\n {/* This is what handles the sidebar gap on desktop */}\n <div\n className={cn(\n \"duration-200 relative h-svh w-[--sidebar-width] bg-transparent transition-[width] ease-linear\",\n \"group-data-[collapsible=offcanvas]:w-0\",\n \"group-data-[side=right]:rotate-180\",\n variant === \"floating\" || variant === \"inset\"\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4))]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon]\"\n )}\n />\n <div\n className={cn(\n \"duration-200 fixed inset-y-0 z-10 hidden h-svh w-[--sidebar-width] transition-[left,right,width] ease-linear md:flex\",\n side === \"left\"\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\n // Adjust the padding for floating and inset variants.\n variant === \"floating\" || variant === \"inset\"\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)_+_theme(spacing.4)_+2px)]\"\n : \"group-data-[collapsible=icon]:w-[--sidebar-width-icon] group-data-[side=left]:border-r group-data-[side=right]:border-l\",\n className\n )}\n {...props}\n >\n <div\n data-sidebar=\"sidebar\"\n className=\"phsa-flex phsa-h-full phsa-w-full phsa-flex-col phsa-bg-sidebar phsa-group-data-[variant=floating]:rounded-lg phsa-group-data-[variant=floating]:border phsa-group-data-[variant=floating]:border-sidebar-border phsa-group-data-[variant=floating]:shadow\"\n >\n {children}\n </div>\n </div>\n </div>\n );\n }\n);\nSidebar.displayName = \"Sidebar\";\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef<typeof Button>,\n React.ComponentProps<typeof Button>\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <Button\n ref={ref}\n data-sidebar=\"trigger\"\n variant=\"ghost\"\n size=\"icon\"\n className={cn(\"h-7 w-7\", className)}\n onClick={(event) => {\n onClick?.(event);\n toggleSidebar();\n }}\n {...props}\n >\n <PanelLeft />\n <span className=\"phsa-sr-only\">Toggle Sidebar</span>\n </Button>\n );\n});\nSidebarTrigger.displayName = \"SidebarTrigger\";\n\nconst SidebarRail = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\">\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar();\n\n return (\n <button\n ref={ref}\n data-sidebar=\"rail\"\n aria-label=\"Toggle Sidebar\"\n tabIndex={-1}\n onClick={toggleSidebar}\n title=\"Toggle Sidebar\"\n className={cn(\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\n \"[[data-side=left]_&]:cursor-w-resize [[data-side=right]_&]:cursor-e-resize\",\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarRail.displayName = \"SidebarRail\";\n\nconst SidebarInset = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"main\">\n>(({ className, ...props }, ref) => {\n return (\n <main\n ref={ref}\n className={cn(\n \"relative flex min-h-svh flex-1 flex-col bg-background\",\n \"peer-data-[variant=inset]:min-h-[calc(100svh-theme(spacing.4))] md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarInset.displayName = \"SidebarInset\";\n\nconst SidebarInput = React.forwardRef<\n React.ElementRef<typeof Input>,\n React.ComponentProps<typeof Input>\n>(({ className, ...props }, ref) => {\n return (\n <Input\n ref={ref}\n data-sidebar=\"input\"\n className={cn(\n \"h-8 w-full bg-background shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarInput.displayName = \"SidebarInput\";\n\nconst SidebarHeader = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"header\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n});\nSidebarHeader.displayName = \"SidebarHeader\";\n\nconst SidebarFooter = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"footer\"\n className={cn(\"flex flex-col gap-2 p-2\", className)}\n {...props}\n />\n );\n});\nSidebarFooter.displayName = \"SidebarFooter\";\n\nconst SidebarSeparator = React.forwardRef<\n React.ElementRef<typeof Separator>,\n React.ComponentProps<typeof Separator>\n>(({ className, ...props }, ref) => {\n return (\n <Separator\n ref={ref}\n data-sidebar=\"separator\"\n className={cn(\"mx-2 w-auto bg-sidebar-border\", className)}\n {...props}\n />\n );\n});\nSidebarSeparator.displayName = \"SidebarSeparator\";\n\nconst SidebarContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"content\"\n className={cn(\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarContent.displayName = \"SidebarContent\";\n\nconst SidebarGroup = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => {\n return (\n <div\n ref={ref}\n data-sidebar=\"group\"\n className={cn(\"relative flex w-full min-w-0 flex-col p-2\", className)}\n {...props}\n />\n );\n});\nSidebarGroup.displayName = \"SidebarGroup\";\n\nconst SidebarGroupLabel = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"div\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-label\"\n className={cn(\n \"duration-200 flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-none ring-sidebar-ring transition-[margin,opa] ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\";\n\nconst SidebarGroupAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & { asChild?: boolean }\n>(({ className, asChild = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"group-action\"\n className={cn(\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarGroupAction.displayName = \"SidebarGroupAction\";\n\nconst SidebarGroupContent = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"group-content\"\n className={cn(\"w-full text-sm\", className)}\n {...props}\n />\n));\nSidebarGroupContent.displayName = \"SidebarGroupContent\";\n\nconst SidebarMenu = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu\"\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\n {...props}\n />\n));\nSidebarMenu.displayName = \"SidebarMenu\";\n\nconst SidebarMenuItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n data-sidebar=\"menu-item\"\n className={cn(\"group/menu-item relative\", className)}\n {...props}\n />\n));\nSidebarMenuItem.displayName = \"SidebarMenuItem\";\n\nconst sidebarMenuButtonVariants = cva(\"phsa-peer/menu-button phsa-flex phsa-w-full phsa-items-center phsa-gap-2 phsa-overflow-hidden phsa-rounded-md phsa-p-2 phsa-text-left phsa-text-sm phsa-outline-none phsa-ring-sidebar-ring phsa-transition-[width,height,padding] phsa-hover:bg-sidebar-accent phsa-hover:text-sidebar-accent-foreground phsa-focus-visible:ring-2 phsa-active:bg-sidebar-accent phsa-active:text-sidebar-accent-foreground phsa-disabled:pointer-events-none phsa-disabled:opacity-50 phsa-group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 phsa-aria-disabled:pointer-events-none phsa-aria-disabled:opacity-50 phsa-data-[active=true]:bg-sidebar-accent phsa-data-[active=true]:font-medium phsa-data-[active=true]:text-sidebar-accent-foreground phsa-data-[state=open]:hover:bg-sidebar-accent phsa-data-[state=open]:hover:text-sidebar-accent-foreground phsa-group-data-[collapsible=icon]:!size-8 phsa-group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\n {\n variants: {\n variant: {\n default: \"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground\",\n outline:\n \"bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]\",\n },\n size: {\n default: \"h-8 text-sm\",\n sm: \"h-7 text-xs\",\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n);\n\nconst SidebarMenuButton = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n isActive?: boolean;\n tooltip?: string | React.ComponentProps<typeof TooltipContent>;\n } & VariantProps<typeof sidebarMenuButtonVariants>\n>(\n (\n {\n asChild = false,\n isActive = false,\n variant = \"default\",\n size = \"default\",\n tooltip,\n className,\n ...props\n },\n ref\n ) => {\n const Comp = asChild ? Slot : \"button\";\n const { isMobile, state } = useSidebar();\n\n const button = (\n <Comp\n ref={ref}\n data-sidebar=\"menu-button\"\n data-size={size}\n data-active={isActive}\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\n {...props}\n />\n );\n\n if (!tooltip) {\n return button;\n }\n\n if (typeof tooltip === \"string\") {\n tooltip = {\n children: tooltip,\n };\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{button}</TooltipTrigger>\n <TooltipContent\n side=\"right\"\n align=\"center\"\n hidden={state !== \"collapsed\" || isMobile}\n {...tooltip}\n />\n </Tooltip>\n );\n }\n);\nSidebarMenuButton.displayName = \"SidebarMenuButton\";\n\nconst SidebarMenuAction = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\"> & {\n asChild?: boolean;\n showOnHover?: boolean;\n }\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\n const Comp = asChild ? Slot : \"button\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-action\"\n className={cn(\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\n // Increases the hit area of the button on mobile.\n \"after:absolute after:-inset-2 after:md:hidden\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n showOnHover &&\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarMenuAction.displayName = \"SidebarMenuAction\";\n\nconst SidebarMenuBadge = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\">\n>(({ className, ...props }, ref) => (\n <div\n ref={ref}\n data-sidebar=\"menu-badge\"\n className={cn(\n \"absolute right-1 flex h-5 min-w-5 items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground select-none pointer-events-none\",\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\n \"peer-data-[size=sm]/menu-button:top-1\",\n \"peer-data-[size=default]/menu-button:top-1.5\",\n \"peer-data-[size=lg]/menu-button:top-2.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n));\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\";\n\nconst SidebarMenuSkeleton = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n showIcon?: boolean;\n }\n>(({ className, showIcon = false, ...props }, ref) => {\n // Random width between 50 to 90%.\n const width = React.useMemo(() => {\n return `${Math.floor(Math.random() * 40) + 50}%`;\n }, []);\n\n return (\n <div\n ref={ref}\n data-sidebar=\"menu-skeleton\"\n className={cn(\"rounded-md h-8 flex gap-2 px-2 items-center\", className)}\n {...props}\n >\n {showIcon && (\n <Skeleton\n className=\"phsa-size-4 phsa-rounded-md\"\n data-sidebar=\"menu-skeleton-icon\"\n />\n )}\n <Skeleton\n className=\"phsa-h-4 phsa-flex-1 phsa-max-w-[--skeleton-width]\"\n data-sidebar=\"menu-skeleton-text\"\n style={\n {\n \"--skeleton-width\": width,\n } as React.CSSProperties\n }\n />\n </div>\n );\n});\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\";\n\nconst SidebarMenuSub = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n <ul\n ref={ref}\n data-sidebar=\"menu-sub\"\n className={cn(\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n));\nSidebarMenuSub.displayName = \"SidebarMenuSub\";\n\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ ...props }, ref) => <li ref={ref} {...props} />);\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\";\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<\"a\"> & {\n asChild?: boolean;\n size?: \"sm\" | \"md\";\n isActive?: boolean;\n }\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n data-sidebar=\"menu-sub-button\"\n data-size={size}\n data-active={isActive}\n className={cn(\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n );\n});\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\";\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n};\n","import * as React from \"react\"\n\nconst MOBILE_BREAKPOINT = 768\n\nexport function useIsMobile() {\n const [isMobile, setIsMobile] = React.useState<boolean | undefined>(undefined)\n\n React.useEffect(() => {\n const mql = window.matchMedia(`(max-width: ${MOBILE_BREAKPOINT - 1}px)`)\n const onChange = () => {\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n }\n mql.addEventListener(\"change\", onChange)\n setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)\n return () => mql.removeEventListener(\"change\", onChange)\n }, [])\n\n return !!isMobile\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Separator = React.forwardRef<\n React.ElementRef<typeof SeparatorPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root>\n>(\n (\n { className, orientation = \"horizontal\", decorative = true, ...props },\n ref\n ) => (\n <SeparatorPrimitive.Root\n ref={ref}\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"shrink-0 bg-border\",\n orientation === \"horizontal\" ? \"h-[1px] w-full\" : \"h-full w-[1px]\",\n className\n )}\n {...props}\n />\n )\n);\nSeparator.displayName = SeparatorPrimitive.Root.displayName;\n\nexport { Separator };\n","import { cn } from \"../../lib/utils\";\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-primary/10\", className)}\n {...props}\n />\n );\n}\n\nexport { Skeleton };\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 * as React from \"react\";\nimport { GalleryVerticalEnd } from \"lucide-react\";\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarHeader,\n SidebarRail,\n} from \"../../../ui/sidebar\";\nimport { TeamSwitcher } from \"./team-switcher\";\nimport { Menus } from \"./menus\";\n\nexport type AppSidebarProps = {\n footer?: () => React.ReactNode;\n user?: {\n email?: string;\n name?: string;\n };\n enterprise?: {\n name: string;\n logo: () => React.ReactNode;\n plan: string;\n };\n navbar: {\n title: string;\n url: string;\n items: {\n title: string;\n url: string;\n isActive?: boolean | undefined;\n icon?: () => React.ReactNode;\n }[];\n }[];\n};\n\nexport function AppSidebar({\n navbar = [],\n enterprise = {\n name: \"Acme Inc\",\n logo: () => <GalleryVerticalEnd />,\n plan: \"Enterprise\",\n },\n footer,\n ...props\n}: AppSidebarProps) {\n return (\n <Sidebar collapsible=\"icon\" {...props}>\n <SidebarHeader>\n <TeamSwitcher teams={enterprise} />\n </SidebarHeader>\n <SidebarContent>\n <Menus items={navbar} />\n </SidebarContent>\n {footer && <SidebarFooter>{footer()}</SidebarFooter>}\n <SidebarRail />\n </Sidebar>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport { ChevronsUpDown, Plus } from \"lucide-react\";\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"../../../ui/sidebar\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from \"../../../ui/dropdown-menu\";\n\nexport function TeamSwitcher({\n teams,\n}: {\n teams: {\n name: string;\n logo: () => React.ReactNode;\n plan: string;\n };\n}) {\n const { isMobile } = useSidebar();\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"phsa-data-[state=open]:bg-sidebar-accent phsa-data-[state=open]:text-sidebar-accent-foreground\"\n >\n <div className=\"phsa-flex phsa-aspect-square phsa-size-8 phsa-items-center phsa-justify-center phsa-rounded-lg phsa-bg-sidebar-primary phsa-text-sidebar-primary-foreground\">\n {/* {teams?.logo && teams?.logo?.()} */}\n </div>\n <div className=\"phsa-grid phsa-flex-1 phsa-text-left phsa-text-sm phsa-leading-tight\">\n <span className=\"truncate phsa-font-semibold\">{teams?.name}</span>\n <span className=\"truncate phsa-text-xs\">{teams?.plan}</span>\n </div>\n <ChevronsUpDown className=\"phsa-ml-auto\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n {/* <DropdownMenuContent\n className=\"phsa-w-[--radix-dropdown-menu-trigger-width] phsa-min-w-56 phsa-rounded-lg\"\n align=\"start\"\n side={isMobile ? \"bottom\" : \"right\"}\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"phsa-text-xs phsa-text-muted-foreground\">\n Teams\n </DropdownMenuLabel>\n {teams.map((team, index) => (\n <DropdownMenuItem\n key={team.name}\n onClick={() => setActiveTeam(team)}\n className=\"phsa-gap-2 phsa-p-2\"\n >\n <div className=\"phsa-flex phsa-size-6 phsa-items-center phsa-justify-center phsa-rounded-sm border\">\n <team.logo className=\"phsa-size-4 phsa-shrink-0\" />\n </div>\n {team.name}\n <DropdownMenuShortcut>⌘{index + 1}</DropdownMenuShortcut>\n </DropdownMenuItem>\n ))}\n <DropdownMenuSeparator />\n <DropdownMenuItem className=\"phsa-gap-2 phsa-p-2\">\n <div className=\"phsa-flex phsa-size-6 phsa-items-center phsa-justify-center phsa-rounded-md border phsa-bg-background\">\n <Plus className=\"phsa-size-4\" />\n </div>\n <div className=\"phsa-font-medium phsa-text-muted-foreground\">Add team</div>\n </DropdownMenuItem>\n </DropdownMenuContent> */}\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n","\"use client\";\n\nimport { cn } from \"../../../../lib/utils\";\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n} from \"../../../ui/sidebar\";\nimport React from \"react\";\n\nexport function Menus({\n items,\n}: {\n items: {\n title: string;\n url: string;\n items?: {\n title: string;\n url: string;\n icon?: () => React.ReactNode;\n isActive?: boolean | undefined;\n }[];\n }[];\n}) {\n return (\n <>\n {items.map((item, index) => {\n return (\n <SidebarGroup key={index}>\n <SidebarGroupLabel>{item.title}</SidebarGroupLabel>\n <SidebarMenu>\n {item.items?.map((subItem) => (\n <SidebarMenuItem key={subItem.title}>\n <SidebarMenuButton\n asChild\n className={cn(\n subItem?.isActive && \"bg-sidebar-accent font-semibold\"\n )}\n >\n <a href={subItem.url}>\n {subItem?.icon && subItem.icon()}\n <span>{subItem.title}</span>\n </a>\n </SidebarMenuButton>\n </SidebarMenuItem>\n ))}\n </SidebarMenu>\n </SidebarGroup>\n );\n })}\n </>\n );\n}\n","import * as React from \"react\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Breadcrumb = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<\"nav\"> & {\n separator?: React.ReactNode;\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />);\nBreadcrumb.displayName = \"Breadcrumb\";\n\nconst BreadcrumbList = React.forwardRef<\n HTMLOListElement,\n React.ComponentPropsWithoutRef<\"ol\">\n>(({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n \"flex flex-wrap items-center gap-1.5 break-words text-sm text-muted-foreground sm:gap-2.5\",\n className\n )}\n {...props}\n />\n));\nBreadcrumbList.displayName = \"BreadcrumbList\";\n\nconst BreadcrumbItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentPropsWithoutRef<\"li\">\n>(({ className, ...props }, ref) => (\n <li\n ref={ref}\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n));\nBreadcrumbItem.displayName = \"BreadcrumbItem\";\n\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<\"a\"> & {\n asChild?: boolean;\n }\n>(({ asChild, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\";\n\n return (\n <Comp\n ref={ref}\n className={cn(\"transition-colors hover:text-foreground\", className)}\n {...props}\n />\n );\n});\nBreadcrumbLink.displayName = \"BreadcrumbLink\";\n\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<\"span\">\n>(({ className, ...props }, ref) => (\n <span\n ref={ref}\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"font-normal text-foreground\", className)}\n {...props}\n />\n));\nBreadcrumbPage.displayName = \"BreadcrumbPage\";\n\nconst BreadcrumbSeparator = ({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) => (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:w-3.5 [&>svg]:h-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n);\nBreadcrumbSeparator.displayName = \"BreadcrumbSeparator\";\n\nconst BreadcrumbEllipsis = ({\n className,\n ...props\n}: React.ComponentProps<\"span\">) => (\n <span\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex h-9 w-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"phsa-h-4 phsa-w-4\" />\n <span className=\"phsa-sr-only\">More</span>\n </span>\n);\nBreadcrumbEllipsis.displayName = \"BreadcrumbElipssis\";\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n};\n","\"use client\";\nimport { createContext, useContext, useState } from \"react\";\n\ninterface SidebarContextData {\n currentPath: string;\n isCollapsed: boolean;\n toggleCollapse: () => void;\n setCurrentPath: (path: string) => void;\n}\n\ninterface SidebarProviderProps {\n children: React.ReactNode;\n defaultPath?: string;\n defaultCollapsed?: boolean;\n}\n\nconst SidebarContext = createContext({} as SidebarContextData);\n\nexport function SidebarProvider({\n children,\n defaultPath = \"/\",\n defaultCollapsed = false,\n}: SidebarProviderProps) {\n const [isCollapsed, setIsCollapsed] = useState(defaultCollapsed);\n const [currentPath, setCurrentPath] = useState(defaultPath);\n\n const toggleCollapse = () => setIsCollapsed((prev) => !prev);\n\n return (\n <SidebarContext.Provider\n value={{\n currentPath,\n isCollapsed,\n toggleCollapse,\n setCurrentPath,\n }}\n >\n {children}\n </SidebarContext.Provider>\n );\n}\n\nexport function useSidebar() {\n const context = useContext(SidebarContext);\n\n if (!context) {\n throw new Error(\"useSidebar must be used within a SidebarProvider\");\n }\n\n return context;\n}\n","\"use client\";\nimport { SidebarTrigger } from \"../../../ui/sidebar\";\nimport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbPage,\n BreadcrumbLink,\n BreadcrumbSeparator,\n} from \"../../../ui/breadcrumb\";\nimport { Separator } from \"../../Separator\";\nimport { useSidebar } from \"../provider\";\n\ninterface BreadcrumbItemProps {\n isLast?: boolean;\n path: string;\n label: string;\n}\n\nconst routeMap: Record<string, string> = {\n dashboard: \"Dashboard\",\n users: \"Usuários\",\n documents: \"Documentos\",\n settings: \"Configurações\",\n create: \"Criar\",\n edit: \"Editar\",\n profile: \"Perfil\",\n analytics: \"Análises\",\n reports: \"Relatórios\",\n};\n\nconst BreadcrumbElement = ({ isLast, path, label }: BreadcrumbItemProps) => {\n if (isLast) {\n return (\n <BreadcrumbItem>\n <BreadcrumbPage className=\"capitalize\">{label}</BreadcrumbPage>\n </BreadcrumbItem>\n );\n }\n\n return (\n <BreadcrumbItem>\n <BreadcrumbLink href={path} className=\"capitalize\">\n {label}\n </BreadcrumbLink>\n <BreadcrumbSeparator />\n </BreadcrumbItem>\n );\n};\n\nexport const HeaderSidebar = () => {\n const { currentPath } = useSidebar();\n\n const breadcrumbItems = currentPath\n .split(\"/\")\n .filter(Boolean)\n .map((segment, index, array) => {\n const path = `/${array.slice(0, index + 1).join(\"/\")}`;\n const isLast = index === array.length - 1;\n const label = routeMap[segment] || segment;\n\n return {\n path,\n label,\n isLast,\n };\n });\n\n return (\n <header className=\"phsa-flex phsa-h-16 phsa-shrink-0 phsa-items-center phsa-border-b phsa-border-border phsa-bg-background phsa-px-4 phsa-transition-[width,height] phsa-ease-linear phsa-group-has-[[data-collapsible=icon]]/sidebar-wrapper:h-12\">\n <div className=\"phsa-flex phsa-items-center phsa-gap-4\">\n <SidebarTrigger className=\"phsa--ml-2 phsa-h-9 phsa-w-9\" />\n <Separator orientation=\"vertical\" className=\"phsa-h-6\" />\n <Breadcrumb>\n <BreadcrumbList>\n <BreadcrumbItem>\n <BreadcrumbLink href=\"/\" className=\"capitalize\">\n Home\n </BreadcrumbLink>\n <BreadcrumbSeparator />\n </BreadcrumbItem>\n {breadcrumbItems.map((item) => (\n <BreadcrumbElement key={item.path} {...item} />\n ))}\n </BreadcrumbList>\n </Breadcrumb>\n </div>\n </header>\n );\n};\n","import { Separator } from \"../../Separator\";\n\nexport const FooterSidebar = () => {\n return (\n <footer className=\"phsa-h-[65px]\">\n <Separator />\n <div className=\"phsa-flex phsa-items-center phsa-justify-between phsa-h-16 phsa-bg-background phsa-px-5\">\n <span className=\"phsa-text-sm phsa-text-muted-foreground\">\n © {new Date().getFullYear()} Your Company\n </span>\n <span className=\"phsa-text-sm phsa-text-muted-foreground\">\n Feito na terra do sol 🌞\n </span>\n </div>\n </footer>\n );\n};\n","\"use client\";\nimport {\n SidebarInset,\n SidebarProvider as UISidebarProvider,\n} from \"../../ui/sidebar\";\nimport { AppSidebar, AppSidebarProps } from \"./components/app-sidebar\";\nimport { HeaderSidebar } from \"./components/header-sidebar\";\nimport { FooterSidebar } from \"./components/footer-sidebar\";\nimport { cn } from \"../../../lib/utils\";\nimport { SidebarProvider } from \"./provider\";\n\ninterface SidebarProps extends AppSidebarProps {\n children: React.ReactNode;\n contentClassName?: string;\n showFooter?: boolean;\n defaultPath?: string;\n defaultCollapsed?: boolean;\n}\n\nexport const Sidebar = ({\n children,\n contentClassName,\n showFooter = true,\n defaultPath,\n defaultCollapsed,\n ...rest\n}: SidebarProps) => {\n return (\n <SidebarProvider\n defaultPath={defaultPath}\n defaultCollapsed={defaultCollapsed}\n >\n <UISidebarProvider>\n <AppSidebar {...rest} />\n <SidebarInset className=\"phsa-overflow-auto phsa-bg-slate-50\">\n <HeaderSidebar />\n <main\n className={cn(\n \"flex flex-1 flex-col gap-4 p-4 pt-0\",\n contentClassName\n )}\n >\n {children}\n </main>\n {showFooter && <FooterSidebar />}\n </SidebarInset>\n </UISidebarProvider>\n </SidebarProvider>\n );\n};\n","\"use client\";\n\nimport {\n BadgeCheck,\n Bell,\n ChevronsUpDown,\n CreditCard,\n LogOut,\n Sparkles,\n} from \"lucide-react\";\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"../../../ui/sidebar\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../../ui/avatar\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"../../../ui/dropdown-menu\";\nimport { useCallback } from \"react\";\n\nexport function NavUser({\n user,\n logoutAction = () => {},\n}: {\n user: {\n name: string;\n email: string;\n avatar: string;\n };\n\n logoutAction?: () => void;\n}) {\n const { isMobile } = useSidebar();\n\n const renderUserInformation = useCallback(() => {\n return (\n <>\n <Avatar className=\"phsa-h-8 phsa-w-8 phsa-rounded-lg\">\n <AvatarImage src={user?.avatar} alt={user?.name} />\n <AvatarFallback className=\"phsa-rounded-lg\">CN</AvatarFallback>\n </Avatar>\n <div className=\"phsa-grid phsa-flex-1 phsa-text-left phsa-text-sm phsa-leading-tight\">\n <span className=\"truncate phsa-font-semibold\">{user?.name}</span>\n <span className=\"truncate phsa-text-xs\">{user?.email}</span>\n </div>\n </>\n );\n }, [user]);\n\n return (\n <SidebarMenu>\n <SidebarMenuItem>\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <SidebarMenuButton\n size=\"lg\"\n className=\"phsa-data-[state=open]:bg-sidebar-accent phsa-data-[state=open]:text-sidebar-accent-foreground\"\n >\n {renderUserInformation()}\n <ChevronsUpDown className=\"phsa-ml-auto phsa-size-4\" />\n </SidebarMenuButton>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n className=\"phsa-w-[--radix-dropdown-menu-trigger-width] phsa-min-w-56 phsa-rounded-lg\"\n side={isMobile ? \"bottom\" : \"right\"}\n align=\"end\"\n sideOffset={4}\n >\n <DropdownMenuLabel className=\"phsa-p-0 phsa-font-normal\">\n <div className=\"phsa-flex phsa-items-center phsa-gap-2 phsa-px-1 phsa-py-1.5 phsa-text-left phsa-text-sm\">\n {renderUserInformation()}\n </div>\n </DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem>\n <Sparkles />\n Upgrade to Pro\n </DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuGroup>\n <DropdownMenuItem>\n <BadgeCheck />\n Account\n </DropdownMenuItem>\n <DropdownMenuItem>\n <CreditCard />\n Billing\n </DropdownMenuItem>\n <DropdownMenuItem>\n <Bell />\n Notifications\n </DropdownMenuItem>\n </DropdownMenuGroup>\n <DropdownMenuSeparator />\n <DropdownMenuItem onClick={logoutAction}>\n <LogOut />\n Log out\n </DropdownMenuItem>\n </DropdownMenuContent>\n </DropdownMenu>\n </SidebarMenuItem>\n </SidebarMenu>\n );\n}\n","import React from \"react\";\nimport { Text } from \"../../../components/dataDisplay\";\nimport { PropsWithChildren } from \"react\";\n\nexport type PageLayoutProps = PropsWithChildren & {\n title: string;\n subtitle?: string;\n header?: React.ReactNode;\n};\n\nexport const PageLayout = ({\n subtitle,\n title,\n children,\n header,\n}: PageLayoutProps) => {\n return (\n <div className=\"phsa-m-5 phsa-p-4 phsa-bg-white\">\n <div className=\"phsa-flex phsa-justify-between\">\n <div>\n {title && <Text variant=\"title\">{title}</Text>}\n {subtitle && <Text variant=\"muted\">{subtitle}</Text>}\n </div>\n {header}\n </div>\n <div className=\"phsa-mt-5\">{children}</div>\n </div>\n );\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport {\n Tabs as TabsUI,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"../../../components/ui/tabs\";\nimport { cn } from \"../../../lib/utils\";\n\ninterface TabsProps {\n tabs: {\n label: string;\n content: React.ReactNode;\n }[];\n activeTabIndex?: number;\n onTabChange?: (index: number) => void;\n className?: string;\n}\n\nexport const Tabs: React.FC<TabsProps> = ({\n tabs,\n activeTabIndex = 0,\n onTabChange,\n className,\n}) => {\n return (\n <TabsUI\n value={tabs[activeTabIndex].label}\n onValueChange={(value) => {\n const index = tabs.findIndex((tab) => tab.label === value);\n if (onTabChange) onTabChange(index);\n }}\n className={cn(\"w-full\", className)}\n >\n <TabsList>\n {tabs.map((tab, index) => (\n <TabsTrigger key={index} value={tab.label}>\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n {tabs.map((tab, index) => (\n <TabsContent key={index} value={tab.label}>\n {tab.content}\n </TabsContent>\n ))}\n </TabsUI>\n );\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\";\n\nimport { cn } from \"../../lib/utils\";\n\nconst Tabs = TabsPrimitive.Root;\n\nconst TabsList = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.List>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.List\n ref={ref}\n className={cn(\n \"inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground\",\n className\n )}\n {...props}\n />\n));\nTabsList.displayName = TabsPrimitive.List.displayName;\n\nconst TabsTrigger = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Trigger>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Trigger\n ref={ref}\n className={cn(\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow\",\n className\n )}\n {...props}\n />\n));\nTabsTrigger.displayName = TabsPrimitive.Trigger.displayName;\n\nconst TabsContent = React.forwardRef<\n React.ElementRef<typeof TabsPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof TabsPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <TabsPrimitive.Content\n ref={ref}\n className={cn(\n \"mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n className\n )}\n {...props}\n />\n));\nTabsContent.displayName = TabsPrimitive.Content.displayName;\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent };\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as AlertDialogPrimitive from \"@radix-ui/react-alert-dialog\";\n\nimport { cn } from \"../../lib/utils\";\nimport { buttonVariants } from \"../../components/ui/button\";\n\nconst AlertDialog = AlertDialogPrimitive.Root;\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger;\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal;\n\nconst AlertDialogOverlay = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Overlay\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 ref={ref}\n />\n));\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;\n\nconst AlertDialogContent = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <AlertDialogPortal>\n <AlertDialogOverlay />\n <AlertDialogPrimitive.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 </AlertDialogPortal>\n));\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;\n\nconst AlertDialogHeader = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn(\n \"flex flex-col space-y-2 text-center sm:text-left\",\n className\n )}\n {...props}\n />\n);\nAlertDialogHeader.displayName = \"AlertDialogHeader\";\n\nconst AlertDialogFooter = ({\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);\nAlertDialogFooter.displayName = \"AlertDialogFooter\";\n\nconst AlertDialogTitle = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Title\n ref={ref}\n className={cn(\"text-lg font-semibold\", className)}\n {...props}\n />\n));\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;\n\nconst AlertDialogDescription = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Description\n ref={ref}\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n));\nAlertDialogDescription.displayName =\n AlertDialogPrimitive.Description.displayName;\n\nconst AlertDialogAction = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Action>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Action\n ref={ref}\n className={cn(buttonVariants(), className)}\n {...props}\n />\n));\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;\n\nconst AlertDialogCancel = React.forwardRef<\n React.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n React.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n <AlertDialogPrimitive.Cancel\n ref={ref}\n className={cn(\n buttonVariants({ variant: \"outline\" }),\n \"mt-2 sm:mt-0\",\n className\n )}\n {...props}\n />\n));\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;\n\nexport {\n AlertDialog,\n AlertDialogPortal,\n AlertDialogOverlay,\n AlertDialogTrigger,\n AlertDialogContent,\n AlertDialogHeader,\n AlertDialogFooter,\n AlertDialogTitle,\n AlertDialogDescription,\n AlertDialogAction,\n AlertDialogCancel,\n};\n","import {\n AlertDialog as AlertDialogUI,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"../../ui/alert-dialog\";\n\nexport type AlertDialogProps = {\n title: string;\n description?: string;\n children: React.ReactNode;\n onConfirm?: () => void;\n onCancel?: () => void;\n};\n\nexport const AlertDialog = ({\n title,\n description,\n children,\n onConfirm,\n onCancel,\n}: AlertDialogProps) => {\n return (\n <AlertDialogUI>\n <AlertDialogTrigger asChild>{children}</AlertDialogTrigger>\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n {description && (\n <AlertDialogDescription>{description}</AlertDialogDescription>\n )}\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel onClick={onCancel}>Cancel</AlertDialogCancel>\n <AlertDialogAction onClick={onConfirm}>Continue</AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialogUI>\n );\n};\n","import { Button } from \"../../../../../components/actions\";\nimport { Icon } from \"../../../../../components/dataDisplay\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { useFormContext } from \"react-hook-form\";\nimport _ from \"lodash\";\n\nexport type MultipleInputBaseProps = {\n children: (params: {\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n addItem: () => void;\n value: string;\n error?: string;\n }) => React.ReactNode;\n data: string[];\n name?: string;\n onChangeData?: (data: string[]) => void;\n error?: string;\n};\n\nexport const MultipleInputBase = ({\n children,\n data = [],\n name,\n onChangeData = () => {},\n error,\n}: MultipleInputBaseProps) => {\n const form = useFormContext();\n const withForm = !!form && !!name;\n const [inputValue, setInputValue] = useState(\"\");\n\n const inputData = useMemo(() => {\n if (withForm) {\n return _.get(form.watch(), name) || [];\n }\n return data;\n }, [withForm, form, name, data]);\n\n const errorMessage = useMemo(() => {\n if (withForm) {\n return _.get(form.formState.errors, name)?.message as string;\n }\n return error;\n }, [error, form, name, withForm]);\n\n const updateData = useCallback(() => {\n if (!inputValue.length) return;\n if (withForm) {\n form.setValue(name, [...inputData, inputValue]);\n } else {\n onChangeData?.(inputData.concat(inputValue));\n }\n setInputValue(\"\");\n }, [inputData, inputValue, withForm, form, name, onChangeData]);\n\n const removeItem = useCallback(\n (index: number) => {\n if (withForm) {\n form.setValue(\n name,\n inputData.filter((_: string, i: number) => i !== index)\n );\n } else {\n onChangeData?.(inputData.filter((_: string, i: number) => i !== index));\n }\n },\n [withForm, form, name, inputData, onChangeData]\n );\n\n const renderOptions = useCallback(() => {\n return inputData?.map((item: string, index: number) => {\n return (\n <div key={index} className=\"phsa-flex phsa-justify-between phsa-mt-2\">\n <div>{item}</div>\n <Button\n onClick={() => removeItem(index)}\n variant={\"ghost\"}\n size={\"icon\"}\n type=\"button\"\n >\n <Icon name=\"MdDelete\" className=\"phsa-fill-destructive\" />\n </Button>\n </div>\n );\n });\n }, [inputData, removeItem]);\n\n return (\n <div>\n {children({\n onChange: ({ target: { value } }) => {\n setInputValue(value);\n },\n addItem: updateData,\n value: inputValue,\n error: errorMessage,\n })}\n {renderOptions()}\n </div>\n );\n};\n","import { Button } from \"../../../../../components/actions\";\nimport { MaskInput, MaskInputProps } from \"../MaskInput\";\nimport { MultipleInputBase } from \"./MultipleInputBase\";\nimport { Icon } from \"../../../../../components/dataDisplay\";\n\nexport type MultipleMaskInputProps = MaskInputProps & {\n data?: string[];\n onChangeData?: (data: string[]) => void;\n name: string;\n};\n\nexport const MultipleMaskInput = ({\n data = [],\n ...props\n}: MultipleMaskInputProps) => {\n return (\n <MultipleInputBase data={data} {...props}>\n {({ onChange, addItem, value }) => {\n return (\n <MaskInput\n {...props}\n value={value}\n onChange={onChange}\n withoutForm\n component={\n <Button type=\"button\" onClick={() => addItem()}>\n <Icon name=\"MdAdd\" />\n </Button>\n }\n />\n );\n }}\n </MultipleInputBase>\n );\n};\n","import React from \"react\";\nimport { Label } from \"../../../components/ui/label\";\n\nimport {\n FormField,\n FormItem,\n FormLabel,\n FormControl,\n FormMessage,\n FormDescription,\n} from \"../../../components/ui/form\";\nimport { SelectBase, SelectBaseProps } from \"./SelectBase\";\nimport { useFormContext } from \"react-hook-form\";\nimport { cn } from \"../../../lib/utils\";\nimport { ErrorMessage } from \"../../../components/dataDisplay/ErrorMessage/ErrorMessage\";\n\nexport type SelectProps = SelectBaseProps & {\n label?: string;\n name?: string;\n error?: string;\n description?: string;\n withoutForm?: boolean;\n};\n\nexport const Select = ({\n name,\n label,\n description,\n error,\n className,\n withoutForm,\n options,\n placeholder,\n ...props\n}: SelectProps) => {\n const form = useFormContext();\n const hasForm = !!form && !!name;\n\n if (!hasForm || withoutForm) {\n return (\n <div className={cn(\"space-y-2\", className)}>\n {label && <Label>{label}</Label>}\n <SelectBase options={options} placeholder={placeholder} {...props} />\n {description && (\n <p className=\"phsa-text-sm phsa-text-muted-foreground\">{description}</p>\n )}\n {error && <ErrorMessage>{error}</ErrorMessage>}\n </div>\n );\n }\n\n return (\n <FormField\n control={form.control}\n name={name!}\n render={({ field }) => (\n <FormItem className={className}>\n {label && <FormLabel>{label}</FormLabel>}\n <FormControl>\n <SelectBase\n options={options}\n placeholder={placeholder}\n {...props}\n {...field}\n />\n </FormControl>\n {description && <FormDescription>{description}</FormDescription>}\n <FormMessage />\n </FormItem>\n )}\n />\n );\n};\n","import { useCallback } from \"react\";\nimport {\n Select,\n SelectProps,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../../components/ui/select\";\n\nexport type SelectBaseProps = Omit<SelectProps, \"onValueChange\"> & {\n options: {\n value: string | number;\n label: string;\n }[];\n placeholder?: string;\n className?: string;\n id?: string;\n onChange?: (value: string) => void;\n value?: string;\n onChangeCallback?: (value: string) => void;\n};\n\nexport const SelectBase = ({\n options,\n placeholder,\n onChange = () => {},\n onChangeCallback = () => {},\n value,\n ...rest\n}: SelectBaseProps) => {\n const onSelect = useCallback(\n (value: string) => {\n onChange(value);\n onChangeCallback(value);\n },\n [onChange, onChangeCallback]\n );\n return (\n <Select\n {...rest}\n onValueChange={onSelect}\n defaultValue={value}\n value={value}\n >\n <SelectTrigger>\n <SelectValue placeholder={placeholder} />\n </SelectTrigger>\n <SelectContent>\n {options?.map((option, index: number) => (\n <SelectItem key={index} value={String(option.value)}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n );\n};\n","\"use client\";\nimport React from \"react\";\nimport { Label } from \"../../../../components/dataDisplay/Label\";\nimport { MultiSelectBase, MultiSelectBaseProps } from \"./MultiSelectBase\";\nimport {\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"../../../../components/ui/form\";\nimport { useFormContext } from \"react-hook-form\";\n\ntype MultiSelectProps = MultiSelectBaseProps & {\n label?: string;\n name?: string;\n withoutForm?: boolean;\n className?: string;\n required?: boolean;\n \"data-testid\"?: string;\n};\n\nexport function MultiSelect({\n label,\n name,\n withoutForm,\n className,\n required,\n \"data-testid\": testId,\n ...props\n}: MultiSelectProps) {\n const form = useFormContext();\n const hasForm = !withoutForm && !!form && !!name;\n\n if (!hasForm)\n return (\n <div className=\"phsa-grid phsa-w-full phsa-items-center phsa-gap-3\">\n {label && <Label htmlFor={name}>{label}</Label>}\n <MultiSelectBase {...props} />\n </div>\n );\n\n return (\n <FormField\n control={form.control}\n name={name}\n render={({ field: { value, ...rest } }) => {\n return (\n <FormItem\n className={className}\n data-testid={testId ? `form-item-${testId}` : undefined}\n >\n {label && (\n <FormLabel\n htmlFor={name}\n data-testid={testId ? `form-label-${testId}` : undefined}\n >\n {`${label}${required ? \" *\" : \"\"}`}\n </FormLabel>\n )}\n <FormControl>\n <div className=\"phsa-flex phsa-w-full phsa-items-center phsa-space-x-2\">\n <MultiSelectBase {...props} {...rest} selected={value} />\n </div>\n </FormControl>\n <FormMessage\n role=\"alert\"\n data-testid={testId ? `form-message-${testId}` : undefined}\n />\n </FormItem>\n );\n }}\n />\n );\n}\n","import {\n Label as LabelComponent,\n LabelProps as LabelComponentProps,\n} from \"../../ui/label\";\n\nexport type LabelProps = LabelComponentProps;\n\nexport const Label = (props: LabelProps) => {\n return <LabelComponent {...props} />;\n};\n","\"use client\";\n\nimport * as React from \"react\";\nimport { Search, X } from \"lucide-react\";\nimport { cn } from \"../../../../lib/utils\";\nimport * as Popover from \"@radix-ui/react-popover\";\n\nexport type MultiSelectBaseProps = {\n options: { label: string; value: string }[];\n selected?: string[];\n onChange?: (values: string[]) => void;\n placeholder?: string;\n className?: string;\n};\n\nexport function MultiSelectBase({\n options = [],\n selected = [],\n onChange = () => {},\n placeholder = \"Select frameworks...\",\n className,\n}: MultiSelectBaseProps) {\n const [open, setOpen] = React.useState(false);\n const [inputValue, setInputValue] = React.useState(\"\");\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const handleRemoveItem = (valueToRemove: string) => {\n onChange(selected.filter((value) => value !== valueToRemove));\n };\n\n const handleSelectItem = (value: string) => {\n if (selected.includes(value)) {\n onChange(selected.filter((v) => v !== value));\n } else {\n onChange([...selected, value]);\n }\n };\n\n const filteredOptions = options.filter((option) =>\n option.label.toLowerCase().includes(inputValue.toLowerCase())\n );\n\n return (\n <Popover.Root open={open} onOpenChange={setOpen}>\n <Popover.Trigger asChild>\n <div\n className={cn(\n \"flex min-h-[40px] w-full flex-wrap gap-1.5 rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2\",\n className\n )}\n >\n {selected.map((value) => {\n const option = options.find((o) => o.value === value);\n if (!option) return null;\n\n return (\n <div\n key={value}\n className=\"phsa-flex phsa-items-center phsa-gap-1 phsa-rounded-md phsa-bg-secondary phsa-px-2 phsa-py-1 phsa-text-sm phsa-text-secondary-foreground\"\n >\n {option.label}\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n handleRemoveItem(value);\n }}\n className=\"phsa-rounded-full phsa-hover:bg-secondary-foreground/20\"\n >\n <X className=\"phsa-h-3 phsa-w-3\" />\n <span className=\"phsa-sr-only\">Remove {option.label}</span>\n </button>\n </div>\n );\n })}\n <div className=\"phsa-flex-1\">\n {selected.length === 0 && (\n <span className=\"phsa-text-muted-foreground\">{placeholder}</span>\n )}\n </div>\n </div>\n </Popover.Trigger>\n\n <Popover.Portal>\n <Popover.Content\n className=\"phsa-w-[--radix-popover-trigger-width] phsa-z-50 phsa-mt-1 phsa-overflow-hidden phsa-rounded-md border phsa-bg-popover phsa-text-popover-foreground phsa-shadow-md phsa-animate-in phsa-fade-in-0 phsa-zoom-in-95\"\n align=\"start\"\n sideOffset={4}\n >\n <div className=\"phsa-flex phsa-items-center phsa-border-b phsa-border-border phsa-px-3 phsa-py-2\">\n <Search className=\"phsa-h-4 phsa-w-4 phsa-text-muted-foreground\" />\n <input\n ref={inputRef}\n value={inputValue}\n onChange={(e) => setInputValue(e.target.value)}\n placeholder=\"Search...\"\n className=\"phsa-flex-1 phsa-bg-transparent phsa-px-2 phsa-outline-none phsa-placeholder:text-muted-foreground\"\n />\n </div>\n <div className=\"phsa-max-h-[200px] phsa-overflow-auto\">\n {filteredOptions.length === 0 ? (\n <div className=\"phsa-px-2 phsa-py-4 phsa-text-center phsa-text-sm phsa-text-muted-foreground\">\n No results found.\n </div>\n ) : (\n filteredOptions.map((option) => (\n <div\n key={option.value}\n onClick={() => handleSelectItem(option.value)}\n className={cn(\n \"flex cursor-pointer items-center gap-2 px-4 py-2 text-sm hover:bg-accent\",\n selected.includes(option.value) && \"bg-accent\"\n )}\n >\n <div\n className={cn(\n \"flex h-4 w-4 items-center justify-center rounded border border-primary\",\n selected.includes(option.value) &&\n \"bg-primary text-primary-foreground\"\n )}\n >\n {selected.includes(option.value) && (\n <span className=\"phsa-text-[10px]\">✓</span>\n )}\n </div>\n {option.label}\n </div>\n ))\n )}\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n}\n","\"use client\";\n\nimport * as React from \"react\";\nimport * as SwitchPrimitives from \"@radix-ui/react-switch\";\n\nimport { cn } from \"../../lib/utils\";\n\nexport type SwitchProps = React.ComponentPropsWithoutRef<\n typeof SwitchPrimitives.Root\n>;\n\nconst Switch = React.forwardRef<\n React.ElementRef<typeof SwitchPrimitives.Root>,\n SwitchProps\n>(({ className, ...props }, ref) => (\n <SwitchPrimitives.Root\n className={cn(\n \"peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm 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-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitives.Root>\n));\nSwitch.displayName = SwitchPrimitives.Root.displayName;\n\nexport { Switch };\n","import { Label } from \"../../../components/ui/label\";\nimport {\n Switch as SwitchUI,\n SwitchProps as SwitchUIProps,\n} from \"../../../components/ui/switch\";\nimport { useFormContext } from \"react-hook-form\";\nimport {\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n} from \"../../../components/ui/form\";\nimport { cn } from \"../../../lib/utils\";\n\nexport type SwitchProps = SwitchUIProps & {\n label?: string;\n withoutForm?: boolean;\n};\n\nexport function Switch({\n label,\n withoutForm,\n className,\n ...props\n}: SwitchProps) {\n const form = useFormContext();\n const hasForm = !!form && !withoutForm && !!props.name;\n\n if (!hasForm)\n return (\n <div className=\"phsa-flex phsa-items-center phsa-space-x-2\">\n <SwitchUI {...props} />\n {label && <Label htmlFor={props.id}>{label}</Label>}\n </div>\n );\n return (\n <FormField\n control={form.control}\n name={props.name ?? \"\"}\n render={({ field }) => (\n <FormItem\n className={cn(className, \"flex items-center space-x-2 space-y-0\")}\n >\n <FormControl>\n <Switch checked={field.value} onCheckedChange={field.onChange} />\n </FormControl>\n <FormLabel>{label}</FormLabel>\n </FormItem>\n )}\n />\n );\n}\n","\"use client\";\nimport React, { useLayoutEffect, useId, useMemo } from \"react\";\nimport { hexToHsl } from \"@/lib/utils\";\n\n// CSS será injetado automaticamente\nlet stylesInjected = false;\n\ntype ColorValues = {\n background?: string;\n foreground?: string;\n card?: string;\n cardForeground?: string;\n popover?: string;\n popoverForeground?: string;\n primary?: string;\n primaryForeground?: string;\n secondary?: string;\n secondaryForeground?: string;\n muted?: string;\n mutedForeground?: string;\n accent?: string;\n accentForeground?: string;\n success?: string;\n successForeground?: string;\n warning?: string;\n destructive?: string;\n destructiveForeground?: string;\n border?: string;\n input?: string;\n ring?: string;\n radius?: string;\n};\n\ntype SpacingValues = {\n /** Base spacing unit (default: 0.25rem = 4px) */\n base?: string;\n /** Custom spacing scale */\n xs?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n \"2xl\"?: string;\n \"3xl\"?: string;\n};\n\ntype TypographyValues = {\n /** Font family */\n fontFamily?: string;\n /** Base font size */\n fontSize?: {\n xs?: string;\n sm?: string;\n base?: string;\n lg?: string;\n xl?: string;\n \"2xl\"?: string;\n \"3xl\"?: string;\n \"4xl\"?: string;\n \"5xl\"?: string;\n };\n /** Font weights */\n fontWeight?: {\n light?: string;\n normal?: string;\n medium?: string;\n semibold?: string;\n bold?: string;\n };\n /** Line heights */\n lineHeight?: {\n none?: string;\n tight?: string;\n snug?: string;\n normal?: string;\n relaxed?: string;\n loose?: string;\n };\n};\n\ntype ThemeValues = {\n colors?: ColorValues;\n spacing?: SpacingValues;\n typography?: TypographyValues;\n /** Border radius values */\n borderRadius?: {\n none?: string;\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n \"2xl\"?: string;\n \"3xl\"?: string;\n full?: string;\n };\n /** Shadow values */\n boxShadow?: {\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n \"2xl\"?: string;\n inner?: string;\n none?: string;\n };\n /** Breakpoints */\n breakpoints?: {\n sm?: string;\n md?: string;\n lg?: string;\n xl?: string;\n \"2xl\"?: string;\n };\n};\n\nexport type DesignSystemProviderProps = {\n children: React.ReactNode;\n className?: string;\n /** @deprecated Use `theme.colors` instead */\n colors?: ColorValues;\n /** Complete theme configuration */\n theme?: ThemeValues;\n};\n\nconst normalizeColor = (color?: string): string | undefined => {\n if (!color) return undefined;\n\n if (/^\\d+\\s+\\d+%\\s+\\d+%$/.test(color)) {\n return color;\n }\n\n if (/^#?[0-9A-Fa-f]{6}$/.test(color)) {\n return hexToHsl(color);\n }\n\n return color;\n};\n\nexport function DesignSystemProvider({\n children,\n className = \"\",\n colors,\n theme,\n}: DesignSystemProviderProps) {\n const uniqueId = useId().replace(/:/g, \"_\");\n const scopeClass = `ds-${uniqueId}`;\n\n // Compatibilidade: usar colors se theme não for fornecido\n const themeColors = theme?.colors || colors;\n\n // Auto-injetar CSS uma única vez\n useLayoutEffect(() => {\n if (stylesInjected) return;\n \n const styleId = 'phsa-design-system-styles';\n let styleElement = document.getElementById(styleId) as HTMLStyleElement;\n\n if (!styleElement) {\n // Tentar importar CSS compilado dinamicamente\n // Usar string dinâmica para evitar erro de TypeScript durante build\n const stylesPath = '@phsa.tec/design-system-react/styles';\n import(stylesPath)\n .then((module: any) => {\n const css = module.default || '';\n \n if (css) {\n styleElement = document.createElement('style');\n styleElement.id = styleId;\n styleElement.textContent = css;\n document.head.appendChild(styleElement);\n stylesInjected = true;\n }\n })\n .catch((error: any) => {\n // Em desenvolvimento, pode não ter o CSS compilado\n // Isso é normal e não deve quebrar a aplicação\n if (process.env.NODE_ENV === 'development') {\n console.warn('⚠️ CSS do design system não encontrado. Execute \"npm run build:lib\" para compilar.');\n }\n });\n }\n }, []);\n\n const themeVariables = useMemo(() => {\n const vars: Record<string, string> = {};\n\n // Cores\n if (themeColors) {\n vars[\"--background\"] = normalizeColor(themeColors.background) || '';\n vars[\"--foreground\"] = normalizeColor(themeColors.foreground) || '';\n vars[\"--card\"] = normalizeColor(themeColors.card) || '';\n vars[\"--card-foreground\"] = normalizeColor(themeColors.cardForeground) || '';\n vars[\"--popover\"] = normalizeColor(themeColors.popover) || '';\n vars[\"--popover-foreground\"] = normalizeColor(themeColors.popoverForeground) || '';\n vars[\"--primary\"] = normalizeColor(themeColors.primary) || '';\n vars[\"--primary-foreground\"] = normalizeColor(themeColors.primaryForeground) || '';\n vars[\"--secondary\"] = normalizeColor(themeColors.secondary) || '';\n vars[\"--secondary-foreground\"] = normalizeColor(themeColors.secondaryForeground) || '';\n vars[\"--muted\"] = normalizeColor(themeColors.muted) || '';\n vars[\"--muted-foreground\"] = normalizeColor(themeColors.mutedForeground) || '';\n vars[\"--accent\"] = normalizeColor(themeColors.accent) || '';\n vars[\"--accent-foreground\"] = normalizeColor(themeColors.accentForeground) || '';\n vars[\"--success\"] = normalizeColor(themeColors.success) || '';\n vars[\"--success-foreground\"] = normalizeColor(themeColors.successForeground) || '';\n vars[\"--warning\"] = normalizeColor(themeColors.warning) || '';\n vars[\"--destructive\"] = normalizeColor(themeColors.destructive) || '';\n vars[\"--destructive-foreground\"] = normalizeColor(themeColors.destructiveForeground) || '';\n vars[\"--border\"] = normalizeColor(themeColors.border) || '';\n vars[\"--input\"] = normalizeColor(themeColors.input) || '';\n vars[\"--ring\"] = normalizeColor(themeColors.ring) || '';\n vars[\"--radius\"] = themeColors.radius || '';\n }\n\n // Espaçamento\n if (theme?.spacing) {\n if (theme.spacing.base) vars[\"--spacing-base\"] = theme.spacing.base;\n if (theme.spacing.xs) vars[\"--spacing-xs\"] = theme.spacing.xs;\n if (theme.spacing.sm) vars[\"--spacing-sm\"] = theme.spacing.sm;\n if (theme.spacing.md) vars[\"--spacing-md\"] = theme.spacing.md;\n if (theme.spacing.lg) vars[\"--spacing-lg\"] = theme.spacing.lg;\n if (theme.spacing.xl) vars[\"--spacing-xl\"] = theme.spacing.xl;\n if (theme.spacing[\"2xl\"]) vars[\"--spacing-2xl\"] = theme.spacing[\"2xl\"];\n if (theme.spacing[\"3xl\"]) vars[\"--spacing-3xl\"] = theme.spacing[\"3xl\"];\n }\n\n // Tipografia\n if (theme?.typography) {\n if (theme.typography.fontFamily) vars[\"--font-family\"] = theme.typography.fontFamily;\n if (theme.typography.fontSize) {\n Object.entries(theme.typography.fontSize).forEach(([key, value]) => {\n vars[`--font-size-${key}`] = value;\n });\n }\n if (theme.typography.fontWeight) {\n Object.entries(theme.typography.fontWeight).forEach(([key, value]) => {\n vars[`--font-weight-${key}`] = value;\n });\n }\n if (theme.typography.lineHeight) {\n Object.entries(theme.typography.lineHeight).forEach(([key, value]) => {\n vars[`--line-height-${key}`] = value;\n });\n }\n }\n\n // Border Radius\n if (theme?.borderRadius) {\n Object.entries(theme.borderRadius).forEach(([key, value]) => {\n vars[`--radius-${key}`] = value;\n });\n }\n\n // Box Shadow\n if (theme?.boxShadow) {\n Object.entries(theme.boxShadow).forEach(([key, value]) => {\n vars[`--shadow-${key}`] = value;\n });\n }\n\n // Breakpoints\n if (theme?.breakpoints) {\n Object.entries(theme.breakpoints).forEach(([key, value]) => {\n vars[`--breakpoint-${key}`] = value;\n });\n }\n\n // Remover variáveis vazias\n return Object.fromEntries(\n Object.entries(vars).filter(([, value]) => value !== undefined && value !== '')\n );\n }, [theme, themeColors]);\n\n useLayoutEffect(() => {\n if (Object.keys(themeVariables).length === 0) return;\n\n const styleId = `design-system-theme-${uniqueId}`;\n let styleElement = document.getElementById(styleId) as HTMLStyleElement;\n\n if (!styleElement) {\n styleElement = document.createElement(\"style\");\n styleElement.id = styleId;\n document.head.appendChild(styleElement);\n }\n\n const cssVariables = Object.entries(themeVariables)\n .map(([key, value]) => ` ${key}: ${value};`)\n .join(\"\\n\");\n\n styleElement.textContent = `.${scopeClass} {\\n${cssVariables}\\n}`;\n\n return () => {\n styleElement.remove();\n };\n }, [themeVariables, uniqueId, scopeClass]);\n\n const inlineStyle = Object.keys(themeVariables).length > 0\n ? (themeVariables as React.CSSProperties)\n : undefined;\n\n return (\n <div className={`ds ${scopeClass} ${className}`.trim()} style={inlineStyle}>\n {children}\n </div>\n );\n}\n"],"mappings":"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","names":["React","React","DropdownMenuTrigger","React","React","DropdownMenuTrigger","React","Check","Check","React","cva","cva","React","useMemo","Icon","useMemo","_a","_b","React","React","React","cva","cva","React","useFormContext","React","Check","Check","React","cva","cva","Label","useFormContext","React","Slot","Label","Slot","Checkbox","_a","useFormContext","Label","React","useMemo","React","React","Icon","Label","useMemo","useFormContext","Input","useMemo","React","useCallback","useMemo","useMemo","useCallback","React","useState","useCallback","useState","useCallback","_a","Input","forwardRef","React","cva","cva","React","Icon","React","toast","props","React","cva","cva","Button","forwardRef","useCallback","useMemo","useState","useState","useMemo","useCallback","_","Button","Icon","React","X","X","useRef","Dialog","useRef","Button","CollapsibleTrigger","CollapsibleContent","useCallback","React","React","React","cva","X","cva","X","Sheet","React","Slot","cva","React","React","Separator","React","open","Separator","Slot","cva","React","React","React","React","Slot","ChevronRight","Slot","ChevronRight","createContext","useContext","useState","SidebarContext","SidebarProvider","useSidebar","useSidebar","Separator","Separator","Sidebar","SidebarProvider","ChevronsUpDown","useCallback","ChevronsUpDown","React","React","React","React","Tabs","useCallback","Button","Icon","Separator","React","AlertDialog","useCallback","useMemo","useState","useFormContext","_","Button","Icon","Button","Icon","React","useCallback","useCallback","value","useFormContext","Select","useFormContext","React","Label","React","Label","React","X","X","useFormContext","useFormContext","React","Label","_a","_b","React","useFormContext","Switch","_a","useFormContext","Label","React","useId","useMemo","useId","useMemo","React"]}
|