From 07d6bed4b34070f818c51e7ae5bcced169c63d7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Rafael=20Siqueira?= Date: Wed, 5 Nov 2025 01:10:25 -0300 Subject: [PATCH] add admin to monorepo --- apps/admin.saladeaula.digital/app/app.css | 138 ---- .../app/components/app-sidebar.tsx | 2 +- .../app/components/dark-mode.tsx | 4 +- .../app/components/data-table.tsx | 16 +- .../app/components/faceted-filter.tsx | 12 +- .../app/components/nav-main.tsx | 4 +- .../app/components/nav-user.tsx | 6 +- .../app/components/org-switcher.tsx | 4 +- .../app/components/range-calendar-filter.tsx | 12 +- .../app/components/search-form.tsx | 4 +- .../app/components/skeleton.tsx | 2 +- .../app/components/ui/avatar.tsx | 51 -- .../app/components/ui/breadcrumb.tsx | 109 --- .../app/components/ui/button.tsx | 60 -- .../app/components/ui/calendar.tsx | 214 ------ .../app/components/ui/checkbox.tsx | 30 - .../app/components/ui/command.tsx | 184 ----- .../app/components/ui/dialog.tsx | 141 ---- .../app/components/ui/dropdown-menu.tsx | 255 ------ .../app/components/ui/form.tsx | 167 ---- .../app/components/ui/input.tsx | 21 - .../app/components/ui/label.tsx | 22 - .../app/components/ui/pagination.tsx | 127 --- .../app/components/ui/separator.tsx | 26 - .../app/components/ui/sheet.tsx | 137 ---- .../app/components/ui/sidebar.tsx | 724 ------------------ .../app/components/ui/skeleton.tsx | 13 - .../app/components/ui/spinner.tsx | 16 - .../app/components/ui/table.tsx | 114 --- .../app/components/ui/tabs.tsx | 64 -- .../app/components/ui/tooltip.tsx | 61 -- .../admin.saladeaula.digital/app/lib/utils.ts | 20 - apps/admin.saladeaula.digital/app/root.tsx | 4 +- .../routes/_.$orgid.courses._index/route.tsx | 17 +- .../_.$orgid.enrollments._index/columns.tsx | 8 +- .../_.$orgid.enrollments._index/route.tsx | 8 +- .../routes/_.$orgid.enrollments.add/route.tsx | 4 +- .../app/routes/_.$orgid.main._index/route.tsx | 5 - .../_.$orgid.users.$id._index/route.tsx | 12 +- .../app/routes/_.$orgid.users.$id/route.tsx | 10 +- .../routes/_.$orgid.users._index/columns.tsx | 8 +- .../routes/_.$orgid.users._index/route.tsx | 4 +- .../app/routes/_.$orgid.users.add/route.tsx | 4 +- .../app/routes/_.$orgid/route.tsx | 10 +- apps/admin.saladeaula.digital/components.json | 4 +- apps/admin.saladeaula.digital/package.json | 19 - .../app/routes/home.tsx | 8 +- .../app/routes/layout.tsx | 7 +- package-lock.json | 70 +- packages/ui/components.json | 10 +- packages/ui/package.json | 16 +- packages/ui/postcss.config.mjs | 5 - .../ui/src}/components/theme-provider.tsx | 0 .../ui/src}/components/ui/badge.tsx | 2 +- packages/ui/src/components/ui/breadcrumb.tsx | 42 +- packages/ui/src/components/ui/button.tsx | 44 +- packages/ui/src/components/ui/calendar.tsx | 100 +-- .../ui/src}/components/ui/card.tsx | 0 .../ui/src}/components/ui/empty.tsx | 0 .../ui/src}/components/ui/input-group.tsx | 0 .../ui/src}/components/ui/kbd.tsx | 0 .../ui/src}/components/ui/popover.tsx | 0 .../ui/src}/components/ui/progress.tsx | 0 .../ui/src}/components/ui/select.tsx | 4 + packages/ui/src/components/ui/tabs.tsx | 14 +- .../ui/src}/components/ui/textarea.tsx | 0 packages/ui/src/globals.css | 3 +- packages/ui/src/lib/utils.ts | 14 + packages/ui/tsconfig.json | 2 +- 69 files changed, 240 insertions(+), 2978 deletions(-) delete mode 100644 apps/admin.saladeaula.digital/app/app.css delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/avatar.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/breadcrumb.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/button.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/calendar.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/checkbox.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/command.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/dialog.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/dropdown-menu.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/form.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/input.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/label.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/pagination.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/separator.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/sheet.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/sidebar.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/skeleton.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/spinner.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/table.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/tabs.tsx delete mode 100644 apps/admin.saladeaula.digital/app/components/ui/tooltip.tsx delete mode 100644 apps/admin.saladeaula.digital/app/lib/utils.ts delete mode 100644 packages/ui/postcss.config.mjs rename {apps/admin.saladeaula.digital/app => packages/ui/src}/components/theme-provider.tsx (100%) rename {apps/admin.saladeaula.digital/app => packages/ui/src}/components/ui/badge.tsx (75%) rename {apps/admin.saladeaula.digital/app => packages/ui/src}/components/ui/card.tsx (100%) rename {apps/admin.saladeaula.digital/app => packages/ui/src}/components/ui/empty.tsx (100%) rename {apps/admin.saladeaula.digital/app => packages/ui/src}/components/ui/input-group.tsx (100%) rename {apps/admin.saladeaula.digital/app => packages/ui/src}/components/ui/kbd.tsx (100%) rename {apps/admin.saladeaula.digital/app => packages/ui/src}/components/ui/popover.tsx (100%) rename {apps/admin.saladeaula.digital/app => packages/ui/src}/components/ui/progress.tsx (100%) rename {apps/admin.saladeaula.digital/app => packages/ui/src}/components/ui/select.tsx (99%) rename {apps/admin.saladeaula.digital/app => packages/ui/src}/components/ui/textarea.tsx (100%) diff --git a/apps/admin.saladeaula.digital/app/app.css b/apps/admin.saladeaula.digital/app/app.css deleted file mode 100644 index b77868d..0000000 --- a/apps/admin.saladeaula.digital/app/app.css +++ /dev/null @@ -1,138 +0,0 @@ -@import 'tailwindcss' source('.'); -@import 'tw-animate-css'; - -@custom-variant dark (&:is(.dark *)); - -@theme { - --font-sans: - 'Inter', ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', - 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; -} - -html, -body { - @media (prefers-color-scheme: dark) { - color-scheme: dark; - } -} - -.dark [data-hide-on-theme='dark'], -.light [data-hide-on-theme='light'] { - @apply hidden; -} - -@theme inline { - --radius-sm: calc(var(--radius) - 4px); - --radius-md: calc(var(--radius) - 2px); - --radius-lg: var(--radius); - --radius-xl: calc(var(--radius) + 4px); - --color-background: var(--background); - --color-foreground: var(--foreground); - --color-card: var(--card); - --color-card-foreground: var(--card-foreground); - --color-popover: var(--popover); - --color-popover-foreground: var(--popover-foreground); - --color-primary: var(--primary); - --color-primary-foreground: var(--primary-foreground); - --color-secondary: var(--secondary); - --color-secondary-foreground: var(--secondary-foreground); - --color-muted: var(--muted); - --color-muted-foreground: var(--muted-foreground); - --color-accent: var(--accent); - --color-accent-foreground: var(--accent-foreground); - --color-destructive: var(--destructive); - --color-border: var(--border); - --color-input: var(--input); - --color-ring: var(--ring); - --color-chart-1: var(--chart-1); - --color-chart-2: var(--chart-2); - --color-chart-3: var(--chart-3); - --color-chart-4: var(--chart-4); - --color-chart-5: var(--chart-5); - --color-sidebar: var(--sidebar); - --color-sidebar-foreground: var(--sidebar-foreground); - --color-sidebar-primary: var(--sidebar-primary); - --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); - --color-sidebar-accent: var(--sidebar-accent); - --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); - --color-sidebar-border: var(--sidebar-border); - --color-sidebar-ring: var(--sidebar-ring); -} - -:root { - --radius: 0.65rem; - --background: oklch(1 0 0); - --foreground: oklch(0.141 0.005 285.823); - --card: oklch(1 0 0); - --card-foreground: oklch(0.141 0.005 285.823); - --popover: oklch(1 0 0); - --popover-foreground: oklch(0.141 0.005 285.823); - --primary: oklch(0.648 0.2 131.684); - --primary-foreground: oklch(0.986 0.031 120.757); - --secondary: oklch(0.967 0.001 286.375); - --secondary-foreground: oklch(0.21 0.006 285.885); - --muted: oklch(0.967 0.001 286.375); - --muted-foreground: oklch(0.552 0.016 285.938); - --accent: oklch(0.967 0.001 286.375); - --accent-foreground: oklch(0.21 0.006 285.885); - --destructive: oklch(0.577 0.245 27.325); - --border: oklch(0.92 0.004 286.32); - --input: oklch(0.92 0.004 286.32); - --ring: oklch(0.841 0.238 128.85); - --chart-1: oklch(0.871 0.15 154.449); - --chart-2: oklch(0.723 0.219 149.579); - --chart-3: oklch(0.627 0.194 149.214); - --chart-4: oklch(0.527 0.154 150.069); - --chart-5: oklch(0.448 0.119 151.328); - --sidebar: oklch(0.985 0 0); - --sidebar-foreground: oklch(0.141 0.005 285.823); - --sidebar-primary: oklch(0.648 0.2 131.684); - --sidebar-primary-foreground: oklch(0.986 0.031 120.757); - --sidebar-accent: oklch(0.967 0.001 286.375); - --sidebar-accent-foreground: oklch(0.21 0.006 285.885); - --sidebar-border: oklch(0.92 0.004 286.32); - --sidebar-ring: oklch(0.841 0.238 128.85); -} - -.dark { - --background: oklch(0.141 0.005 285.823); - --foreground: oklch(0.985 0 0); - --card: oklch(0.21 0.006 285.885); - --card-foreground: oklch(0.985 0 0); - --popover: oklch(0.21 0.006 285.885); - --popover-foreground: oklch(0.985 0 0); - --primary: oklch(0.648 0.2 131.684); - --primary-foreground: oklch(0.986 0.031 120.757); - --secondary: oklch(0.274 0.006 286.033); - --secondary-foreground: oklch(0.985 0 0); - --muted: oklch(0.274 0.006 286.033); - --muted-foreground: oklch(0.705 0.015 286.067); - --accent: oklch(0.274 0.006 286.033); - --accent-foreground: oklch(0.985 0 0); - --destructive: oklch(0.704 0.191 22.216); - --border: oklch(1 0 0 / 10%); - --input: oklch(1 0 0 / 15%); - --ring: oklch(0.405 0.101 131.063); - --chart-1: oklch(0.871 0.15 154.449); - --chart-2: oklch(0.723 0.219 149.579); - --chart-3: oklch(0.627 0.194 149.214); - --chart-4: oklch(0.527 0.154 150.069); - --chart-5: oklch(0.448 0.119 151.328); - --sidebar: oklch(0.21 0.006 285.885); - --sidebar-foreground: oklch(0.985 0 0); - --sidebar-primary: oklch(0.768 0.233 130.85); - --sidebar-primary-foreground: oklch(0.986 0.031 120.757); - --sidebar-accent: oklch(0.274 0.006 286.033); - --sidebar-accent-foreground: oklch(0.985 0 0); - --sidebar-border: oklch(1 0 0 / 10%); - --sidebar-ring: oklch(0.405 0.101 131.063); -} - -@layer base { - * { - @apply border-border outline-ring/50; - } - body { - @apply bg-background text-foreground; - } -} diff --git a/apps/admin.saladeaula.digital/app/components/app-sidebar.tsx b/apps/admin.saladeaula.digital/app/components/app-sidebar.tsx index f9e32ae..767ae3c 100644 --- a/apps/admin.saladeaula.digital/app/components/app-sidebar.tsx +++ b/apps/admin.saladeaula.digital/app/components/app-sidebar.tsx @@ -17,7 +17,7 @@ import { SidebarContent, SidebarFooter, SidebarHeader -} from '@/components/ui/sidebar' +} from '@repo/ui/components/ui/sidebar' const data = { navMain: [ diff --git a/apps/admin.saladeaula.digital/app/components/dark-mode.tsx b/apps/admin.saladeaula.digital/app/components/dark-mode.tsx index 4af28fe..0eb39fb 100644 --- a/apps/admin.saladeaula.digital/app/components/dark-mode.tsx +++ b/apps/admin.saladeaula.digital/app/components/dark-mode.tsx @@ -3,13 +3,13 @@ import { Moon, Sun, SunMoon } from 'lucide-react' import { useTheme } from 'next-themes' -import { Button } from '@/components/ui/button' +import { Button } from '@repo/ui/components/ui/button' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger -} from '@/components/ui/dropdown-menu' +} from '@repo/ui/components/ui/dropdown-menu' import dark from './logo-dark.svg' import light from './logo-light.svg' diff --git a/apps/admin.saladeaula.digital/app/components/data-table.tsx b/apps/admin.saladeaula.digital/app/components/data-table.tsx index dfc0cc4..3c09d75 100644 --- a/apps/admin.saladeaula.digital/app/components/data-table.tsx +++ b/apps/admin.saladeaula.digital/app/components/data-table.tsx @@ -17,26 +17,27 @@ import { import { createContext, useContext, useState, type ReactNode } from 'react' import { useSearchParams } from 'react-router' -import { Card, CardContent } from '@/components/ui/card' +import { Button } from '@repo/ui/components/ui/button' +import { Card, CardContent } from '@repo/ui/components/ui/card' import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuTrigger -} from '@/components/ui/dropdown-menu' -import { Label } from '@/components/ui/label' +} from '@repo/ui/components/ui/dropdown-menu' +import { Label } from '@repo/ui/components/ui/label' import { Pagination, PaginationContent, PaginationItem -} from '@/components/ui/pagination' +} from '@repo/ui/components/ui/pagination' import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue -} from '@/components/ui/select' +} from '@repo/ui/components/ui/select' import { Table, TableBody, @@ -44,9 +45,8 @@ import { TableHead, TableHeader, TableRow -} from '@/components/ui/table' -import { cn } from '@/lib/utils' -import { Button } from './ui/button' +} from '@repo/ui/components/ui/table' +import { cn } from '@repo/ui/lib/utils' interface DataTableProps { children?: ReactNode diff --git a/apps/admin.saladeaula.digital/app/components/faceted-filter.tsx b/apps/admin.saladeaula.digital/app/components/faceted-filter.tsx index 761e30d..5cc2056 100644 --- a/apps/admin.saladeaula.digital/app/components/faceted-filter.tsx +++ b/apps/admin.saladeaula.digital/app/components/faceted-filter.tsx @@ -1,8 +1,8 @@ import { CheckIcon } from 'lucide-react' import { useState } from 'react' -import { Badge } from '@/components/ui/badge' -import { Button } from '@/components/ui/button' +import { Badge } from '@repo/ui/components/ui/badge' +import { Button } from '@repo/ui/components/ui/button' import { Command, CommandEmpty, @@ -11,14 +11,14 @@ import { CommandItem, CommandList, CommandSeparator -} from '@/components/ui/command' +} from '@repo/ui/components/ui/command' import { Popover, PopoverContent, PopoverTrigger -} from '@/components/ui/popover' -import { Separator } from '@/components/ui/separator' -import { cn } from '@/lib/utils' +} from '@repo/ui/components/ui/popover' +import { Separator } from '@repo/ui/components/ui/separator' +import { cn } from '@repo/ui/lib/utils' interface FacetedFilterProps { value?: string[] diff --git a/apps/admin.saladeaula.digital/app/components/nav-main.tsx b/apps/admin.saladeaula.digital/app/components/nav-main.tsx index 51ae8c9..8097b84 100644 --- a/apps/admin.saladeaula.digital/app/components/nav-main.tsx +++ b/apps/admin.saladeaula.digital/app/components/nav-main.tsx @@ -8,8 +8,8 @@ import { SidebarMenuButton, SidebarMenuItem, useSidebar -} from '@/components/ui/sidebar' -import { useIsMobile } from '@/hooks/use-mobile' +} from '@repo/ui/components/ui/sidebar' +import { useIsMobile } from '@repo/ui/hooks/use-mobile' import { type LucideIcon } from 'lucide-react' import { NavLink, useParams } from 'react-router' diff --git a/apps/admin.saladeaula.digital/app/components/nav-user.tsx b/apps/admin.saladeaula.digital/app/components/nav-user.tsx index 74a69fd..7849887 100644 --- a/apps/admin.saladeaula.digital/app/components/nav-user.tsx +++ b/apps/admin.saladeaula.digital/app/components/nav-user.tsx @@ -9,7 +9,7 @@ import { } from 'lucide-react' import { Link } from 'react-router' -import { Avatar, AvatarFallback } from '@/components/ui/avatar' +import { Avatar, AvatarFallback } from '@repo/ui/components/ui/avatar' import { DropdownMenu, DropdownMenuContent, @@ -18,8 +18,8 @@ import { DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger -} from '@/components/ui/dropdown-menu' -import { initials } from '@/lib/utils' +} from '@repo/ui/components/ui/dropdown-menu' +import { initials } from '@repo/ui/lib/utils' export function NavUser({ user diff --git a/apps/admin.saladeaula.digital/app/components/org-switcher.tsx b/apps/admin.saladeaula.digital/app/components/org-switcher.tsx index 1290aff..690bed2 100644 --- a/apps/admin.saladeaula.digital/app/components/org-switcher.tsx +++ b/apps/admin.saladeaula.digital/app/components/org-switcher.tsx @@ -13,13 +13,13 @@ import { DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuTrigger -} from '@/components/ui/dropdown-menu' +} from '@repo/ui/components/ui/dropdown-menu' import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar -} from '@/components/ui/sidebar' +} from '@repo/ui/components/ui/sidebar' type Org = { id: string diff --git a/apps/admin.saladeaula.digital/app/components/range-calendar-filter.tsx b/apps/admin.saladeaula.digital/app/components/range-calendar-filter.tsx index 7fccae8..f3e28c0 100644 --- a/apps/admin.saladeaula.digital/app/components/range-calendar-filter.tsx +++ b/apps/admin.saladeaula.digital/app/components/range-calendar-filter.tsx @@ -5,17 +5,17 @@ import { useState, type ReactNode } from 'react' import { type DateRange } from 'react-day-picker' import { ptBR } from 'react-day-picker/locale' -import { Badge } from '@/components/ui/badge' -import { Button } from '@/components/ui/button' -import { Calendar } from '@/components/ui/calendar' +import { Badge } from '@repo/ui/components/ui/badge' +import { Button } from '@repo/ui/components/ui/button' +import { Calendar } from '@repo/ui/components/ui/calendar' import { Popover, PopoverContent, PopoverTrigger -} from '@/components/ui/popover' +} from '@repo/ui/components/ui/popover' -import { Separator } from '@/components/ui/separator' -import { cn } from '@/lib/utils' +import { Separator } from '@repo/ui/components/ui/separator' +import { cn } from '@repo/ui/lib/utils' const formatted = new Intl.DateTimeFormat('pt-BR', { day: '2-digit', diff --git a/apps/admin.saladeaula.digital/app/components/search-form.tsx b/apps/admin.saladeaula.digital/app/components/search-form.tsx index 149e480..879c633 100644 --- a/apps/admin.saladeaula.digital/app/components/search-form.tsx +++ b/apps/admin.saladeaula.digital/app/components/search-form.tsx @@ -7,10 +7,10 @@ import { InputGroupAddon, InputGroupButton, InputGroupInput -} from '@/components/ui/input-group' +} from '@repo/ui/components/ui/input-group' import { useKeyPress } from '@/hooks/use-keypress' -import { cn } from '@/lib/utils' +import { cn } from '@repo/ui/lib/utils' export function SearchForm({ placeholder, diff --git a/apps/admin.saladeaula.digital/app/components/skeleton.tsx b/apps/admin.saladeaula.digital/app/components/skeleton.tsx index c86dd3d..115815a 100644 --- a/apps/admin.saladeaula.digital/app/components/skeleton.tsx +++ b/apps/admin.saladeaula.digital/app/components/skeleton.tsx @@ -1,4 +1,4 @@ -import { Skeleton as XSkeleton } from '@/components/ui/skeleton' +import { Skeleton as XSkeleton } from '@repo/ui/components/ui/skeleton' export function Skeleton() { return ( diff --git a/apps/admin.saladeaula.digital/app/components/ui/avatar.tsx b/apps/admin.saladeaula.digital/app/components/ui/avatar.tsx deleted file mode 100644 index b7224f0..0000000 --- a/apps/admin.saladeaula.digital/app/components/ui/avatar.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import * as React from "react" -import * as AvatarPrimitive from "@radix-ui/react-avatar" - -import { cn } from "@/lib/utils" - -function Avatar({ - className, - ...props -}: React.ComponentProps) { - return ( - - ) -} - -function AvatarImage({ - className, - ...props -}: React.ComponentProps) { - return ( - - ) -} - -function AvatarFallback({ - className, - ...props -}: React.ComponentProps) { - return ( - - ) -} - -export { Avatar, AvatarImage, AvatarFallback } diff --git a/apps/admin.saladeaula.digital/app/components/ui/breadcrumb.tsx b/apps/admin.saladeaula.digital/app/components/ui/breadcrumb.tsx deleted file mode 100644 index d62407f..0000000 --- a/apps/admin.saladeaula.digital/app/components/ui/breadcrumb.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import { Slot } from "@radix-ui/react-slot"; -import { ChevronRight, MoreHorizontal } from "lucide-react"; -import * as React from "react"; - -import { cn } from "@/lib/utils"; - -function Breadcrumb({ ...props }: React.ComponentProps<"nav">) { - return