From 651d3dd2e6967f4ee1ecb0d1323945bcd8d6ae20 Mon Sep 17 00:00:00 2001 From: OrcDev Date: Tue, 20 May 2025 16:30:37 +0200 Subject: [PATCH 1/2] feat(registry) add toast --- app/docs/components/toast/page.tsx | 86 +++++++++++++++++++++++++++ app/layout.tsx | 2 +- components/examples/toast.tsx | 12 ++++ components/ui/8bit/toast.tsx | 48 +++++++++++++++ config/nav-items.ts | 5 ++ lib/metadata.ts | 1 + public/assets/8bitcn-toast-light.png | Bin 0 -> 12684 bytes public/r/8bit-toast.json | 18 ++++++ registry.json | 14 +++++ 9 files changed, 185 insertions(+), 1 deletion(-) create mode 100644 app/docs/components/toast/page.tsx create mode 100644 components/examples/toast.tsx create mode 100644 components/ui/8bit/toast.tsx create mode 100644 public/assets/8bitcn-toast-light.png create mode 100644 public/r/8bit-toast.json diff --git a/app/docs/components/toast/page.tsx b/app/docs/components/toast/page.tsx new file mode 100644 index 00000000..d7a5d10d --- /dev/null +++ b/app/docs/components/toast/page.tsx @@ -0,0 +1,86 @@ +import { Metadata } from "next" + +import { buttonMetaData } from "@/lib/metadata" +import { Separator } from "@/components/ui/separator" +import { ToastExample } from "@/components/examples/toast" + +import CodeSnippet from "../code-snippet" +import CopyCommandButton from "../copy-command-button" +import InstallationCommands from "../installation-commands" +import { OpenInV0Button } from "../open-in-v0-button" + +export const metadata: Metadata = { + title: "8-bit Toast", + description: "Displays an 8-bit toast component.", + openGraph: { + images: buttonMetaData, + }, +} + +export default function ToastPage() { + return ( +
+
+

Toast

+ +
+ +

+ Displays an 8-bit toast component. +

+ +
+
+

+ 8-bit toast component +

+ +
+ +
+
+
+ +
+
+ +

Installation

+ + + + + +

+ 8bitcn Toast is using Sonner under the hood. Add the Sonner Toaster + component to your layout +

+ + {`import { Toaster } from "@/components/ui/sonner" + +export default function RootLayout({ children }) { + return ( + + + +
{children}
+ + + + ) +}`}
+ +

Usage

+ + + + {`import { toast } from "@/components/ui/8bit/toast"`} + + {`toast("8bitcn is an awesome project!")`} +
+ ) +} diff --git a/app/layout.tsx b/app/layout.tsx index 4e50a174..dd35d3e1 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -4,9 +4,9 @@ import { Geist, Geist_Mono } from "next/font/google" import "./globals.css" import { Analytics } from "@vercel/analytics/react" -import { Toaster } from "sonner" import { sharedMetaData } from "@/lib/metadata" +import { Toaster } from "@/components/ui/sonner" import { ScreenSize } from "@/components/screen-size" import SiteFooter from "@/components/site-footer" import { SiteHeader } from "@/components/site-header" diff --git a/components/examples/toast.tsx b/components/examples/toast.tsx new file mode 100644 index 00000000..f428424c --- /dev/null +++ b/components/examples/toast.tsx @@ -0,0 +1,12 @@ +"use client" + +import { Button } from "@/components/ui/8bit/button" +import { toast } from "@/components/ui/8bit/toast" + +export function ToastExample() { + return ( + + ) +} diff --git a/components/ui/8bit/toast.tsx b/components/ui/8bit/toast.tsx new file mode 100644 index 00000000..ae6cdf52 --- /dev/null +++ b/components/ui/8bit/toast.tsx @@ -0,0 +1,48 @@ +"use client" + +import React from "react" +import { Press_Start_2P } from "next/font/google" +import { toast as sonnerToast } from "sonner" + +export function toast(toast: string) { + return sonnerToast.custom((id) => ) +} + +const pressStart = Press_Start_2P({ + weight: ["400"], + subsets: ["latin"], +}) + +interface ToastProps { + id: string | number + title: string +} + +function Toast(props: ToastProps) { + const { title } = props + + return ( +
+
+
+
+

{title}

+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+ ) +} diff --git a/config/nav-items.ts b/config/nav-items.ts index 92364c57..a3faffbc 100644 --- a/config/nav-items.ts +++ b/config/nav-items.ts @@ -170,6 +170,11 @@ const components = [ title: "Textarea", url: "/docs/components/textarea", }, + { + title: "Toast", + url: "/docs/components/toast", + new: true, + }, { title: "Toggle", url: "/docs/components/toggle", diff --git a/lib/metadata.ts b/lib/metadata.ts index 8a06bd5d..1e62ae32 100644 --- a/lib/metadata.ts +++ b/lib/metadata.ts @@ -53,3 +53,4 @@ export const datePickerMetaData = "/assets/8bitcn-date-picker-light.png" export const contextMenuMetaData = "/assets/8bitcn-context-menu-light.png" export const menubarMetaData = "/assets/8bitcn-menubar-light.png" export const sidebarMetaData = "/assets/8bitcn-sidebar-light.png" +export const toastMetaData = "/assets/8bitcn-toast-light.png" diff --git a/public/assets/8bitcn-toast-light.png b/public/assets/8bitcn-toast-light.png new file mode 100644 index 0000000000000000000000000000000000000000..4f5f3806cf613bc275a0901bbcfc647be710811c GIT binary patch literal 12684 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 CQlFUs literal 0 HcmV?d00001 diff --git a/public/r/8bit-toast.json b/public/r/8bit-toast.json new file mode 100644 index 00000000..cc105738 --- /dev/null +++ b/public/r/8bit-toast.json @@ -0,0 +1,18 @@ +{ + "$schema": "https://ui.shadcn.com/schema/registry-item.json", + "name": "8bit-toast", + "type": "registry:component", + "title": "8-bit Toast", + "description": "A simple 8-bit toast component", + "registryDependencies": [ + "sonner" + ], + "files": [ + { + "path": "components/ui/8bit/toast.tsx", + "content": "\"use client\"\n\nimport React from \"react\"\nimport { Press_Start_2P } from \"next/font/google\"\nimport { toast as sonnerToast } from \"sonner\"\n\nexport function toast(toast: string) {\n return sonnerToast.custom((id) => )\n}\n\nconst pressStart = Press_Start_2P({\n weight: [\"400\"],\n subsets: [\"latin\"],\n})\n\ninterface ToastProps {\n id: string | number\n title: string\n}\n\nfunction Toast(props: ToastProps) {\n const { title } = props\n\n return (\n
\n
\n
\n
\n

{title}

\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n )\n}\n", + "type": "registry:component", + "target": "components/ui/8bit/toast.tsx" + } + ] +} \ No newline at end of file diff --git a/registry.json b/registry.json index 09d18e30..a7e9fc6a 100644 --- a/registry.json +++ b/registry.json @@ -31,6 +31,20 @@ } ] }, + { + "name": "8bit-toast", + "type": "registry:component", + "title": "8-bit Toast", + "description": "A simple 8-bit toast component", + "registryDependencies": ["sonner"], + "files": [ + { + "path": "components/ui/8bit/toast.tsx", + "type": "registry:component", + "target": "components/ui/8bit/toast.tsx" + } + ] + }, { "name": "8bit-input-otp", "type": "registry:component", From 1f6de897bbb8feb14ec86b0e41c96ca37c1553ca Mon Sep 17 00:00:00 2001 From: OrcDev Date: Tue, 20 May 2025 16:32:18 +0200 Subject: [PATCH 2/2] refactor(toast) change to 8-bit toast --- app/docs/components/copy-command-button.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/docs/components/copy-command-button.tsx b/app/docs/components/copy-command-button.tsx index 8cc013fc..1b514f4e 100644 --- a/app/docs/components/copy-command-button.tsx +++ b/app/docs/components/copy-command-button.tsx @@ -1,8 +1,8 @@ "use client" import { Terminal } from "lucide-react" -import { toast } from "sonner" +import { toast } from "@/components/ui/8bit/toast" import { Button } from "@/components/ui/button" interface CopyCommandButtonProps {