From 82d45d872ed910d2143b2d9281772462fa76c752 Mon Sep 17 00:00:00 2001 From: Leo dev Date: Fri, 26 Dec 2025 16:37:32 +0100 Subject: [PATCH 01/14] Dockship lite env --- src/app/layout.tsx | 2 +- src/app/page.tsx | 2 +- src/{actions => core}/docker.tsx | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename src/{actions => core}/docker.tsx (100%) diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 11234a9..1b1dcb0 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -27,7 +27,7 @@ export default function RootLayout({ - {children} + {process.env.DOCKSHIP_LITE === "true" ? null : children} ); diff --git a/src/app/page.tsx b/src/app/page.tsx index cab489e..9980dee 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { getDocker } from "@/actions/docker"; +import { getDocker } from "@/core/docker"; export default function Home() { return ( diff --git a/src/actions/docker.tsx b/src/core/docker.tsx similarity index 100% rename from src/actions/docker.tsx rename to src/core/docker.tsx From 10bd71a76171982a2ca29779f8f554c067771e6e Mon Sep 17 00:00:00 2001 From: Leo dev Date: Fri, 26 Dec 2025 19:05:49 +0100 Subject: [PATCH 02/14] Trying to fix tw --- package-lock.json | 65 +++++++++++++++++++++++++- package.json | 1 + src/app/applications/page.tsx | 6 +-- src/app/monitoring/page.tsx | 10 ++-- src/app/nodes/page.tsx | 8 ++-- src/app/overview/page.tsx | 10 ++-- src/components/dashboard/MetricBar.tsx | 32 ------------- src/components/ui/progress.tsx | 48 +++++++++++-------- 8 files changed, 110 insertions(+), 70 deletions(-) delete mode 100644 src/components/dashboard/MetricBar.tsx diff --git a/package-lock.json b/package-lock.json index eeb7c2a..4125b70 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8,6 +8,7 @@ "name": "dockship", "version": "0.1.0", "dependencies": { + "@radix-ui/react-progress": "^1.1.8", "@radix-ui/react-slot": "^1.2.4", "@types/dockerode": "^3.3.47", "class-variance-authority": "^0.7.1", @@ -848,6 +849,68 @@ } } }, + "node_modules/@radix-ui/react-context": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.3.tgz", + "integrity": "sha512-ieIFACdMpYfMEjF0rEf5KLvfVyIkOz6PDGyNnP+u+4xQ6jny3VCgA4OgXOwNx2aUkxn8zx9fiVcM8CfFYv9Lxw==", + "license": "MIT", + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.1.4.tgz", + "integrity": "sha512-9hQc4+GNVtJAIEPEqlYqW5RiYdrr8ea5XQ0ZOnD6fgru+83kqT15mq2OCcbe8KnjRZl5vF3ks69AKz3kh1jrhg==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-slot": "1.2.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-progress": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@radix-ui/react-progress/-/react-progress-1.1.8.tgz", + "integrity": "sha512-+gISHcSPUJ7ktBy9RnTqbdKW78bcGke3t6taawyZ71pio1JewwGSJizycs7rLhGTvMJYCQB1DBK4KQsxs7U8dA==", + "license": "MIT", + "dependencies": { + "@radix-ui/react-context": "1.1.3", + "@radix-ui/react-primitive": "2.1.4" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, "node_modules/@radix-ui/react-slot": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.2.4.tgz", @@ -1301,7 +1364,7 @@ "version": "19.2.3", "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", - "dev": true, + "devOptional": true, "license": "MIT", "peerDependencies": { "@types/react": "^19.2.0" diff --git a/package.json b/package.json index a13920d..c4b6f18 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "start": "next start" }, "dependencies": { + "@radix-ui/react-progress": "^1.1.8", "@radix-ui/react-slot": "^1.2.4", "@types/dockerode": "^3.3.47", "class-variance-authority": "^0.7.1", diff --git a/src/app/applications/page.tsx b/src/app/applications/page.tsx index 108c2cb..04cbdd3 100644 --- a/src/app/applications/page.tsx +++ b/src/app/applications/page.tsx @@ -5,8 +5,8 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { StatusIndicator } from "@/components/dashboard/StatusIndicator"; -import { MetricBar } from "@/components/dashboard/MetricBar"; import { Play, Square, RotateCcw, MoreVertical, Plus } from "lucide-react"; +import { Progress } from "@/components/ui/progress"; const applications = [ { @@ -130,7 +130,7 @@ export default function ApplicationsPage() {
CPU
- + {app.cpu}%
@@ -141,7 +141,7 @@ export default function ApplicationsPage() { Memory
- + {app.memory}%
diff --git a/src/app/monitoring/page.tsx b/src/app/monitoring/page.tsx index 95c3a18..5950844 100644 --- a/src/app/monitoring/page.tsx +++ b/src/app/monitoring/page.tsx @@ -3,7 +3,6 @@ import { DashboardLayout } from "@/components/dashboard/DashboardLayout"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; -import { MetricBar } from "@/components/dashboard/MetricBar"; import { LineChart, Line, @@ -14,6 +13,7 @@ import { AreaChart, Area, } from "recharts"; +import { Progress } from "@/components/ui/progress"; const cpuData = [ { time: "00:00", value: 45 }, @@ -88,7 +88,7 @@ export default function MonitoringPage() { Cluster CPU
68%
- + @@ -97,7 +97,7 @@ export default function MonitoringPage() { Cluster Memory
71%
- +
@@ -337,14 +337,14 @@ export default function MonitoringPage() { CPU {container.cpu}% - +
Memory {container.memory}%
- +
Network diff --git a/src/app/nodes/page.tsx b/src/app/nodes/page.tsx index 565c9d2..9155e78 100644 --- a/src/app/nodes/page.tsx +++ b/src/app/nodes/page.tsx @@ -5,8 +5,8 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { StatusIndicator } from "@/components/dashboard/StatusIndicator"; -import { MetricBar } from "@/components/dashboard/MetricBar"; import { Server, Plus, Settings, Trash2 } from "lucide-react"; +import { Progress } from "@/components/ui/progress"; const nodes = [ { @@ -130,7 +130,7 @@ export default function NodesPage() { CPU ({node.cpu.cores} cores)
{node.cpu.usage}%
- + {/* Memory */} @@ -141,7 +141,7 @@ export default function NodesPage() {
{node.memory.percentage}%
- +
{node.memory.used} / {node.memory.total}
@@ -151,7 +151,7 @@ export default function NodesPage() {
Disk
{node.disk.percentage}%
- +
{node.disk.used} / {node.disk.total}
diff --git a/src/app/overview/page.tsx b/src/app/overview/page.tsx index 1083036..c6ce00f 100644 --- a/src/app/overview/page.tsx +++ b/src/app/overview/page.tsx @@ -6,7 +6,6 @@ import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Button } from "@/components/ui/button"; import { StatusIndicator } from "@/components/dashboard/StatusIndicator"; -import { MetricBar } from "@/components/dashboard/MetricBar"; import { Box, Server, @@ -15,6 +14,7 @@ import { ArrowRight, Clock, } from "lucide-react"; +import { Progress } from "@/components/ui/progress"; const recentDeployments = [ { @@ -172,7 +172,7 @@ export default function OverviewPage() {
- + {app.cpu}% @@ -180,7 +180,7 @@ export default function OverviewPage() {
- + {app.memory}% @@ -257,12 +257,12 @@ export default function OverviewPage() { CPU {node.cpu}%
- +
Memory {node.memory}%
- +
Containers {node.containers} diff --git a/src/components/dashboard/MetricBar.tsx b/src/components/dashboard/MetricBar.tsx deleted file mode 100644 index f3c1c3c..0000000 --- a/src/components/dashboard/MetricBar.tsx +++ /dev/null @@ -1,32 +0,0 @@ -interface MetricBarProps { - value: number; - max: number; - variant?: "default" | "success" | "warning" | "danger"; -} - -export function MetricBar({ value, max, variant = "default" }: MetricBarProps) { - const percentage = Math.min((value / max) * 100, 100); - - const getColor = () => { - if (variant !== "default") { - switch (variant) { - case "success": return "bg-success"; - case "warning": return "bg-warning"; - case "danger": return "bg-destructive"; - } - } - - if (percentage > 80) return "bg-destructive"; - if (percentage > 60) return "bg-warning"; - return "bg-primary"; - }; - - return ( -
-
-
- ); -} diff --git a/src/components/ui/progress.tsx b/src/components/ui/progress.tsx index f9f131e..e7a416c 100644 --- a/src/components/ui/progress.tsx +++ b/src/components/ui/progress.tsx @@ -1,23 +1,31 @@ -import * as React from "react"; -import * as ProgressPrimitive from "@radix-ui/react-progress"; +"use client" -import { cn } from "@/lib/utils"; +import * as React from "react" +import * as ProgressPrimitive from "@radix-ui/react-progress" -const Progress = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, value, ...props }, ref) => ( - - - -)); -Progress.displayName = ProgressPrimitive.Root.displayName; +import { cn } from "@/lib/utils" -export { Progress }; +function Progress({ + className, + value, + ...props +}: React.ComponentProps) { + return ( + + + + ) +} + +export { Progress } From 80c1ed546fda8f966a2c32f934c5939b29be5e3f Mon Sep 17 00:00:00 2001 From: Leo dev Date: Fri, 26 Dec 2025 19:07:39 +0100 Subject: [PATCH 03/14] Removed shadcn --- components.json | 22 - src/components/ui/accordion.tsx | 52 --- src/components/ui/alert-dialog.tsx | 104 ----- src/components/ui/alert.tsx | 43 -- src/components/ui/aspect-ratio.tsx | 5 - src/components/ui/avatar.tsx | 38 -- src/components/ui/badge.tsx | 34 -- src/components/ui/breadcrumb.tsx | 90 ---- src/components/ui/button.tsx | 60 --- src/components/ui/calendar.tsx | 54 --- src/components/ui/card.tsx | 64 --- src/components/ui/carousel.tsx | 224 --------- src/components/ui/chart.tsx | 303 ------------ src/components/ui/checkbox.tsx | 26 -- src/components/ui/collapsible.tsx | 9 - src/components/ui/command.tsx | 132 ------ src/components/ui/context-menu.tsx | 178 ------- src/components/ui/dialog.tsx | 95 ---- src/components/ui/drawer.tsx | 87 ---- src/components/ui/dropdown-menu.tsx | 179 -------- src/components/ui/form.tsx | 129 ------ src/components/ui/hover-card.tsx | 27 -- src/components/ui/input-otp.tsx | 61 --- src/components/ui/input.tsx | 22 - src/components/ui/label.tsx | 17 - src/components/ui/menubar.tsx | 207 --------- src/components/ui/navigation-menu.tsx | 120 ----- src/components/ui/pagination.tsx | 81 ---- src/components/ui/popover.tsx | 29 -- src/components/ui/progress.tsx | 31 -- src/components/ui/radio-group.tsx | 36 -- src/components/ui/resizable.tsx | 37 -- src/components/ui/scroll-area.tsx | 38 -- src/components/ui/select.tsx | 143 ------ src/components/ui/separator.tsx | 20 - src/components/ui/sheet.tsx | 107 ----- src/components/ui/sidebar.tsx | 637 -------------------------- src/components/ui/skeleton.tsx | 7 - src/components/ui/slider.tsx | 23 - src/components/ui/sonner.tsx | 27 -- src/components/ui/switch.tsx | 27 -- src/components/ui/table.tsx | 72 --- src/components/ui/tabs.tsx | 53 --- src/components/ui/textarea.tsx | 21 - src/components/ui/toast.tsx | 111 ----- src/components/ui/toaster.tsx | 24 - src/components/ui/toggle-group.tsx | 49 -- src/components/ui/toggle.tsx | 37 -- src/components/ui/tooltip.tsx | 28 -- src/components/ui/use-toast.ts | 3 - tailwind.config.ts | 72 --- 51 files changed, 4095 deletions(-) delete mode 100644 components.json delete mode 100644 src/components/ui/accordion.tsx delete mode 100644 src/components/ui/alert-dialog.tsx delete mode 100644 src/components/ui/alert.tsx delete mode 100644 src/components/ui/aspect-ratio.tsx delete mode 100644 src/components/ui/avatar.tsx delete mode 100644 src/components/ui/badge.tsx delete mode 100644 src/components/ui/breadcrumb.tsx delete mode 100644 src/components/ui/button.tsx delete mode 100644 src/components/ui/calendar.tsx delete mode 100644 src/components/ui/card.tsx delete mode 100644 src/components/ui/carousel.tsx delete mode 100644 src/components/ui/chart.tsx delete mode 100644 src/components/ui/checkbox.tsx delete mode 100644 src/components/ui/collapsible.tsx delete mode 100644 src/components/ui/command.tsx delete mode 100644 src/components/ui/context-menu.tsx delete mode 100644 src/components/ui/dialog.tsx delete mode 100644 src/components/ui/drawer.tsx delete mode 100644 src/components/ui/dropdown-menu.tsx delete mode 100644 src/components/ui/form.tsx delete mode 100644 src/components/ui/hover-card.tsx delete mode 100644 src/components/ui/input-otp.tsx delete mode 100644 src/components/ui/input.tsx delete mode 100644 src/components/ui/label.tsx delete mode 100644 src/components/ui/menubar.tsx delete mode 100644 src/components/ui/navigation-menu.tsx delete mode 100644 src/components/ui/pagination.tsx delete mode 100644 src/components/ui/popover.tsx delete mode 100644 src/components/ui/progress.tsx delete mode 100644 src/components/ui/radio-group.tsx delete mode 100644 src/components/ui/resizable.tsx delete mode 100644 src/components/ui/scroll-area.tsx delete mode 100644 src/components/ui/select.tsx delete mode 100644 src/components/ui/separator.tsx delete mode 100644 src/components/ui/sheet.tsx delete mode 100644 src/components/ui/sidebar.tsx delete mode 100644 src/components/ui/skeleton.tsx delete mode 100644 src/components/ui/slider.tsx delete mode 100644 src/components/ui/sonner.tsx delete mode 100644 src/components/ui/switch.tsx delete mode 100644 src/components/ui/table.tsx delete mode 100644 src/components/ui/tabs.tsx delete mode 100644 src/components/ui/textarea.tsx delete mode 100644 src/components/ui/toast.tsx delete mode 100644 src/components/ui/toaster.tsx delete mode 100644 src/components/ui/toggle-group.tsx delete mode 100644 src/components/ui/toggle.tsx delete mode 100644 src/components/ui/tooltip.tsx delete mode 100644 src/components/ui/use-toast.ts delete mode 100644 tailwind.config.ts diff --git a/components.json b/components.json deleted file mode 100644 index edcaef2..0000000 --- a/components.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "$schema": "https://ui.shadcn.com/schema.json", - "style": "new-york", - "rsc": true, - "tsx": true, - "tailwind": { - "config": "", - "css": "src/app/globals.css", - "baseColor": "neutral", - "cssVariables": true, - "prefix": "" - }, - "iconLibrary": "lucide", - "aliases": { - "components": "@/components", - "utils": "@/lib/utils", - "ui": "@/components/ui", - "lib": "@/lib", - "hooks": "@/hooks" - }, - "registries": {} -} diff --git a/src/components/ui/accordion.tsx b/src/components/ui/accordion.tsx deleted file mode 100644 index 1e7878c..0000000 --- a/src/components/ui/accordion.tsx +++ /dev/null @@ -1,52 +0,0 @@ -import * as React from "react"; -import * as AccordionPrimitive from "@radix-ui/react-accordion"; -import { ChevronDown } from "lucide-react"; - -import { cn } from "@/lib/utils"; - -const Accordion = AccordionPrimitive.Root; - -const AccordionItem = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -AccordionItem.displayName = "AccordionItem"; - -const AccordionTrigger = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - - svg]:rotate-180", - className, - )} - {...props} - > - {children} - - - -)); -AccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName; - -const AccordionContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, children, ...props }, ref) => ( - -
{children}
-
-)); - -AccordionContent.displayName = AccordionPrimitive.Content.displayName; - -export { Accordion, AccordionItem, AccordionTrigger, AccordionContent }; diff --git a/src/components/ui/alert-dialog.tsx b/src/components/ui/alert-dialog.tsx deleted file mode 100644 index 6dfbfb4..0000000 --- a/src/components/ui/alert-dialog.tsx +++ /dev/null @@ -1,104 +0,0 @@ -import * as React from "react"; -import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog"; - -import { cn } from "@/lib/utils"; -import { buttonVariants } from "@/components/ui/button"; - -const AlertDialog = AlertDialogPrimitive.Root; - -const AlertDialogTrigger = AlertDialogPrimitive.Trigger; - -const AlertDialogPortal = AlertDialogPrimitive.Portal; - -const AlertDialogOverlay = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName; - -const AlertDialogContent = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - - - - -)); -AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName; - -const AlertDialogHeader = ({ className, ...props }: React.HTMLAttributes) => ( -
-); -AlertDialogHeader.displayName = "AlertDialogHeader"; - -const AlertDialogFooter = ({ className, ...props }: React.HTMLAttributes) => ( -
-); -AlertDialogFooter.displayName = "AlertDialogFooter"; - -const AlertDialogTitle = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName; - -const AlertDialogDescription = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName; - -const AlertDialogAction = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName; - -const AlertDialogCancel = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName; - -export { - AlertDialog, - AlertDialogPortal, - AlertDialogOverlay, - AlertDialogTrigger, - AlertDialogContent, - AlertDialogHeader, - AlertDialogFooter, - AlertDialogTitle, - AlertDialogDescription, - AlertDialogAction, - AlertDialogCancel, -}; diff --git a/src/components/ui/alert.tsx b/src/components/ui/alert.tsx deleted file mode 100644 index 2efc3c8..0000000 --- a/src/components/ui/alert.tsx +++ /dev/null @@ -1,43 +0,0 @@ -import * as React from "react"; -import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -const alertVariants = cva( - "relative w-full rounded-lg border p-4 [&>svg~*]:pl-7 [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground", - { - variants: { - variant: { - default: "bg-background text-foreground", - destructive: "border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive", - }, - }, - defaultVariants: { - variant: "default", - }, - }, -); - -const Alert = React.forwardRef< - HTMLDivElement, - React.HTMLAttributes & VariantProps ->(({ className, variant, ...props }, ref) => ( -
-)); -Alert.displayName = "Alert"; - -const AlertTitle = React.forwardRef>( - ({ className, ...props }, ref) => ( -
- ), -); -AlertTitle.displayName = "AlertTitle"; - -const AlertDescription = React.forwardRef>( - ({ className, ...props }, ref) => ( -
- ), -); -AlertDescription.displayName = "AlertDescription"; - -export { Alert, AlertTitle, AlertDescription }; diff --git a/src/components/ui/aspect-ratio.tsx b/src/components/ui/aspect-ratio.tsx deleted file mode 100644 index c9e6f4b..0000000 --- a/src/components/ui/aspect-ratio.tsx +++ /dev/null @@ -1,5 +0,0 @@ -import * as AspectRatioPrimitive from "@radix-ui/react-aspect-ratio"; - -const AspectRatio = AspectRatioPrimitive.Root; - -export { AspectRatio }; diff --git a/src/components/ui/avatar.tsx b/src/components/ui/avatar.tsx deleted file mode 100644 index 68d21bb..0000000 --- a/src/components/ui/avatar.tsx +++ /dev/null @@ -1,38 +0,0 @@ -import * as React from "react"; -import * as AvatarPrimitive from "@radix-ui/react-avatar"; - -import { cn } from "@/lib/utils"; - -const Avatar = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -Avatar.displayName = AvatarPrimitive.Root.displayName; - -const AvatarImage = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -AvatarImage.displayName = AvatarPrimitive.Image.displayName; - -const AvatarFallback = React.forwardRef< - React.ElementRef, - React.ComponentPropsWithoutRef ->(({ className, ...props }, ref) => ( - -)); -AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName; - -export { Avatar, AvatarImage, AvatarFallback }; diff --git a/src/components/ui/badge.tsx b/src/components/ui/badge.tsx deleted file mode 100644 index f7bdefa..0000000 --- a/src/components/ui/badge.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import * as React from "react"; -import { cva, type VariantProps } from "class-variance-authority"; - -import { cn } from "@/lib/utils"; - -const badgeVariants = cva( - "inline-flex items-center border px-2 py-0.5 text-xs font-medium transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2", - { - variants: { - variant: { - default: "border-transparent bg-primary text-primary-foreground shadow", - secondary: "border-transparent bg-secondary text-secondary-foreground", - destructive: "border-transparent bg-destructive/20 text-destructive", - success: "border-transparent bg-success/20 text-success", - warning: "border-transparent bg-warning/20 text-warning", - outline: "text-foreground border-border", - terminal: "border-border bg-transparent text-muted-foreground font-mono", - }, - }, - defaultVariants: { - variant: "default", - }, - } -); - -export interface BadgeProps - extends React.HTMLAttributes, - VariantProps {} - -function Badge({ className, variant, ...props }: BadgeProps) { - return
; -} - -export { Badge, badgeVariants }; diff --git a/src/components/ui/breadcrumb.tsx b/src/components/ui/breadcrumb.tsx deleted file mode 100644 index ca91ff5..0000000 --- a/src/components/ui/breadcrumb.tsx +++ /dev/null @@ -1,90 +0,0 @@ -import * as React from "react"; -import { Slot } from "@radix-ui/react-slot"; -import { ChevronRight, MoreHorizontal } from "lucide-react"; - -import { cn } from "@/lib/utils"; - -const Breadcrumb = React.forwardRef< - HTMLElement, - React.ComponentPropsWithoutRef<"nav"> & { - separator?: React.ReactNode; - } ->(({ ...props }, ref) =>