) {
- toast("You submitted the following values:", {
- description: (
-
- {JSON.stringify(data, null, 2)}
-
- ),
- })
- }
-
- return (
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/hover-card-demo.tsx b/apps/v4/app/(internal)/sink/components/hover-card-demo.tsx
deleted file mode 100644
index 3ac291ceff..0000000000
--- a/apps/v4/app/(internal)/sink/components/hover-card-demo.tsx
+++ /dev/null
@@ -1,43 +0,0 @@
-import { CalendarIcon } from "lucide-react"
-
-import {
- Avatar,
- AvatarFallback,
- AvatarImage,
-} from "@/registry/new-york-v4/ui/avatar"
-import { Button } from "@/registry/new-york-v4/ui/button"
-import {
- HoverCard,
- HoverCardContent,
- HoverCardTrigger,
-} from "@/registry/new-york-v4/ui/hover-card"
-
-export function HoverCardDemo() {
- return (
-
-
- @nextjs
-
-
-
-
-
- VC
-
-
-
@nextjs
-
- The React Framework – created and maintained by @vercel.
-
-
- {" "}
-
- Joined December 2021
-
-
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/input-demo.tsx b/apps/v4/app/(internal)/sink/components/input-demo.tsx
deleted file mode 100644
index bcd50a6264..0000000000
--- a/apps/v4/app/(internal)/sink/components/input-demo.tsx
+++ /dev/null
@@ -1,23 +0,0 @@
-import { Input } from "@/registry/new-york-v4/ui/input"
-
-export function InputDemo() {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/input-group-demo.tsx b/apps/v4/app/(internal)/sink/components/input-group-demo.tsx
deleted file mode 100644
index 1d6171d053..0000000000
--- a/apps/v4/app/(internal)/sink/components/input-group-demo.tsx
+++ /dev/null
@@ -1,663 +0,0 @@
-"use client"
-
-import { useState } from "react"
-import {
- IconBrandJavascript,
- IconCheck,
- IconChevronDown,
- IconCopy,
- IconInfoCircle,
- IconLoader2,
- IconMicrophone,
- IconPlayerRecordFilled,
- IconPlus,
- IconRefresh,
- IconSearch,
- IconServerSpark,
- IconStar,
- IconTrash,
-} from "@tabler/icons-react"
-import {
- ArrowRightIcon,
- ArrowUpIcon,
- ChevronDownIcon,
- EyeClosedIcon,
- FlipVerticalIcon,
- SearchIcon,
-} from "lucide-react"
-import { toast } from "sonner"
-
-import { Button } from "@/registry/new-york-v4/ui/button"
-import {
- ButtonGroup,
- ButtonGroupText,
-} from "@/registry/new-york-v4/ui/button-group"
-import {
- DropdownMenu,
- DropdownMenuContent,
- DropdownMenuItem,
- DropdownMenuTrigger,
-} from "@/registry/new-york-v4/ui/dropdown-menu"
-import {
- Field,
- FieldDescription,
- FieldGroup,
- FieldLabel,
-} from "@/registry/new-york-v4/ui/field"
-import { Input } from "@/registry/new-york-v4/ui/input"
-import {
- InputGroup,
- InputGroupAddon,
- InputGroupButton,
- InputGroupInput,
- InputGroupText,
- InputGroupTextarea,
-} from "@/registry/new-york-v4/ui/input-group"
-import { Kbd, KbdGroup } from "@/registry/new-york-v4/ui/kbd"
-import {
- Popover,
- PopoverContent,
- PopoverTrigger,
-} from "@/registry/new-york-v4/ui/popover"
-import { Spinner } from "@/registry/new-york-v4/ui/spinner"
-import { Textarea } from "@/registry/new-york-v4/ui/textarea"
-import {
- Tooltip,
- TooltipContent,
- TooltipTrigger,
-} from "@/registry/new-york-v4/ui/tooltip"
-
-export function InputGroupDemo() {
- const [country, setCountry] = useState("+1")
-
- return (
-
-
-
-
- Default (No Input Group)
-
-
-
-
- Input Group
-
-
-
-
-
- Disabled
-
-
-
-
-
- Invalid
-
-
-
-
-
- Icon (left)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Icon (right)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Icon (both)
-
-
-
-
-
-
-
-
-
-
-
- Multiple Icons
-
-
-
-
- toast.success("Copied to clipboard")}
- >
-
-
-
-
-
-
-
-
-
- Description
-
-
-
-
-
-
-
- This is a description of the input group.
-
-
-
-
- First Name
-
-
-
-
-
-
-
-
- Last Name
-
-
-
-
-
-
-
-
-
-
-
- Tooltip
-
-
-
-
-
-
-
-
-
- This is content in a tooltip.
-
-
-
-
-
- Dropdown
-
-
-
-
-
-
- {country}
-
-
-
- setCountry("+1")}>
- +1
-
- setCountry("+44")}>
- +44
-
- setCountry("+46")}>
- +46
-
-
-
-
-
-
-
- Label
-
-
- Label
-
-
-
-
-
-
- example.com/
-
-
-
-
-
-
-
- (optional)
-
-
-
-
- Button
-
-
-
- Button
-
-
-
-
-
- Button
-
-
-
-
-
- Button
-
-
-
-
-
- Button
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Your connection is not secure.
-
- You should not enter any sensitive information on this site.
-
-
-
-
- https://
-
-
-
- toast.success("Added to favorites")}
- >
-
-
-
-
-
-
- Addon (block-start)
-
-
-
- First Name
-
-
-
-
-
- Addon (block-end)
-
-
-
- 20/240 characters
-
-
-
-
-
- Default Button
-
-
-
-
-
- Button
-
-
-
-
-
-
- Cancel
-
-
- Post
-
-
-
-
-
-
-
- Input Group with Kbd
-
-
-
- ⌘K
-
-
-
-
-
- ⌘K
-
-
-
-
- Ask AI
-
- Tab
-
-
-
-
-
-
-
-
-
- Ctrl
- C
-
-
-
-
-
- Username
-
-
-
-
-
-
-
-
-
- This username is available.
-
-
-
-
-
-
-
- 12 results
-
-
-
-
-
-
- Disabled
-
-
- With Button Group
-
- https://
-
-
-
-
-
-
- .com
-
-
- This is a description of the input group.
-
-
-
- Loading
-
- This is a description of the input group.
-
-
-
-
-
-
-
-
-
-
- Code Editor
-
-
-
-
-
- script.js
-
-
-
-
-
-
-
-
-
- Line 1, Column 1
- JavaScript
-
-
-
-
-
-
- Default
-
-
-
-
- Input Group
-
-
-
-
-
- This is a description of the input group.
-
-
-
- Invalid
-
-
-
-
- This is a description of the input group.
-
-
-
- Disabled
-
-
-
-
- This is a description of the input group.
-
-
-
- Textarea
-
-
-
- 0/280 characters
-
-
- Send
-
-
-
-
-
- Enter your prompt
-
-
-
-
-
-
-
-
- Auto
-
-
- Auto
- Agent
- Manual
-
-
-
- 12 messages left
-
-
-
- Send
-
-
-
-
- This is a description of the input group.
-
-
-
- Comment Box
-
-
-
-
- Cancel
-
-
- Post Comment
-
-
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/input-otp-demo.tsx b/apps/v4/app/(internal)/sink/components/input-otp-demo.tsx
deleted file mode 100644
index 81da12719b..0000000000
--- a/apps/v4/app/(internal)/sink/components/input-otp-demo.tsx
+++ /dev/null
@@ -1,109 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { REGEXP_ONLY_DIGITS } from "input-otp"
-
-import {
- InputOTP,
- InputOTPGroup,
- InputOTPSeparator,
- InputOTPSlot,
-} from "@/registry/new-york-v4/ui/input-otp"
-import { Label } from "@/registry/new-york-v4/ui/label"
-
-export function InputOTPDemo() {
- return (
-
-
-
-
-
-
- )
-}
-
-function InputOTPSimple() {
- return (
-
- Simple
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
-}
-
-function InputOTPPattern() {
- return (
-
- Digits Only
-
-
-
-
-
-
-
-
-
-
-
- )
-}
-
-function InputOTPWithSeparator() {
- const [value, setValue] = React.useState("123456")
-
- return (
-
- With Separator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- )
-}
-
-function InputOTPWithSpacing() {
- return (
-
- With Spacing
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/item-demo.tsx b/apps/v4/app/(internal)/sink/components/item-demo.tsx
deleted file mode 100644
index 6aa0169e79..0000000000
--- a/apps/v4/app/(internal)/sink/components/item-demo.tsx
+++ /dev/null
@@ -1,392 +0,0 @@
-import * as React from "react"
-import Image from "next/image"
-import { IconChevronRight, IconDownload } from "@tabler/icons-react"
-import { PlusIcon, TicketIcon } from "lucide-react"
-
-import {
- Avatar,
- AvatarFallback,
- AvatarImage,
-} from "@/registry/new-york-v4/ui/avatar"
-import { Button } from "@/registry/new-york-v4/ui/button"
-import {
- Field,
- FieldContent,
- FieldDescription,
- FieldLabel,
- FieldTitle,
-} from "@/registry/new-york-v4/ui/field"
-import {
- Item,
- ItemActions,
- ItemContent,
- ItemDescription,
- ItemFooter,
- ItemGroup,
- ItemHeader,
- ItemMedia,
- ItemSeparator,
- ItemTitle,
-} from "@/registry/new-york-v4/ui/item"
-import { Progress } from "@/registry/new-york-v4/ui/progress"
-import { Spinner } from "@/registry/new-york-v4/ui/spinner"
-
-const people = [
- {
- username: "shadcn",
- avatar: "https://github.com/shadcn.png",
- message: "Just shipped a component that fixes itself",
- },
- {
- username: "pranathip",
- avatar: "https://github.com/pranathip.png",
- message: "My code is so clean, it does its own laundry",
- },
- {
- username: "evilrabbit",
- avatar: "https://github.com/evilrabbit.png",
- message:
- "Debugging is like being a detective in a crime movie where you're also the murderer",
- },
- {
- username: "maxleiter",
- avatar: "https://github.com/maxleiter.png",
- message:
- "I don't always test my code, but when I do, I test it in production",
- },
-]
-
-const music = [
- {
- title: "Midnight City Lights",
- artist: "Neon Dreams",
- album: "Electric Nights",
- duration: "3:45",
- },
- {
- title: "Coffee Shop Conversations",
- artist: "The Morning Brew",
- album: "Urban Stories",
- duration: "4:05",
- },
- {
- title: "Digital Rain",
- artist: "Cyber Symphony",
- album: "Binary Beats",
- duration: "3:30",
- },
- {
- title: "Sunset Boulevard",
- artist: "Golden Hour",
- album: "California Dreams",
- duration: "3:55",
- },
- {
- title: "Neon Sign Romance",
- artist: "Retro Wave",
- album: "80s Forever",
- duration: "4:10",
- },
- {
- title: "Ocean Depths",
- artist: "Deep Blue",
- album: "Underwater Symphony",
- duration: "3:40",
- },
- {
- title: "Space Station Alpha",
- artist: "Cosmic Explorers",
- album: "Galactic Journey",
- duration: "3:50",
- },
- {
- title: "Forest Whispers",
- artist: "Nature's Choir",
- album: "Woodland Tales",
- duration: "3:35",
- },
-]
-
-const issues = [
- {
- number: 1247,
- date: "March 15, 2024",
- title:
- "Button component doesn't respect disabled state when using custom variants",
- description:
- "When applying custom variants to the Button component, the disabled prop is ignored and the button remains clickable. This affects accessibility and user experience.",
- },
- {
- number: 892,
- date: "February 8, 2024",
- title: "Dialog component causes scroll lock on mobile devices",
- description:
- "The Dialog component prevents scrolling on the background content but doesn't restore scroll position properly on mobile Safari and Chrome, causing layout shifts.",
- },
- {
- number: 1156,
- date: "January 22, 2024",
- title: "TypeScript errors with Select component in strict mode",
- description:
- "Using the Select component with TypeScript strict mode enabled throws type errors related to generic constraints and value prop typing.",
- },
- {
- number: 734,
- date: "December 3, 2023",
- title: "Dark mode toggle causes flash of unstyled content",
- description:
- "When switching between light and dark themes, there's a brief moment where components render with incorrect styling before the theme transition completes.",
- },
- {
- number: 1389,
- date: "April 2, 2024",
- title: "Form validation messages overlap with floating labels",
- description:
- "Error messages in Form components with floating labels appear underneath the label text, making them difficult to read. Need better positioning logic for validation feedback.",
- },
-]
-
-export function ItemDemo() {
- return (
-
-
-
- -
-
- Item Title
-
-
- Button
-
-
- -
-
- Item Title
-
-
- Button
-
-
- -
-
- Item Title
- Item Description
-
-
- Button
-
-
- -
-
- Item Title
- Item Description
-
-
- -
-
- Item Title
- Item Description
-
-
- -
-
- Item Title
- Item Description
-
-
- Button
- Button
-
-
- -
-
-
-
-
- Item Title
-
-
- Purchase
-
-
- -
-
-
-
-
- Item Title
- Item Description
-
-
- Upgrade
-
-
-
-
-
- Field Title
- Field Description
-
- Button
-
-
-
-
-
- {people.map((person, index) => (
-
- -
-
-
-
-
- {person.username.charAt(0)}
-
-
-
-
- {person.username}
- {person.message}
-
-
-
-
-
-
-
- {index !== people.length - 1 && }
-
- ))}
-
-
-
-
-
-
-
- CN
-
-
-
- LR
-
-
-
- ER
-
-
-
-
- Design Department
-
- Meet our team of designers, engineers, and researchers.
-
-
-
-
-
-
-
-
-
-
-
Your download has started.
-
-
-
-
- Downloading...
- 129 MB / 1000 MB
-
-
-
- Cancel
-
-
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/kbd-demo.tsx b/apps/v4/app/(internal)/sink/components/kbd-demo.tsx
deleted file mode 100644
index 9eaa8ba316..0000000000
--- a/apps/v4/app/(internal)/sink/components/kbd-demo.tsx
+++ /dev/null
@@ -1,103 +0,0 @@
-import { IconArrowLeft, IconArrowRight } from "@tabler/icons-react"
-import { CommandIcon, WavesIcon } from "lucide-react"
-
-import { Button } from "@/registry/new-york-v4/ui/button"
-import { ButtonGroup } from "@/registry/new-york-v4/ui/button-group"
-import {
- InputGroup,
- InputGroupAddon,
- InputGroupInput,
-} from "@/registry/new-york-v4/ui/input-group"
-import { Kbd, KbdGroup } from "@/registry/new-york-v4/ui/kbd"
-import {
- Tooltip,
- TooltipContent,
- TooltipTrigger,
-} from "@/registry/new-york-v4/ui/tooltip"
-
-export function KbdDemo() {
- return (
-
-
- Ctrl
- ⌘K
- Ctrl + B
-
-
- ⌘
- C
-
-
- Ctrl
- Shift
- P
-
-
- ↑
- ↓
- ←
- →
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Left
-
-
-
- Voice Enabled
-
-
-
-
-
- Space
-
-
-
-
-
-
- Save
-
-
-
-
- Save Changes S
-
-
-
-
-
-
- Print
-
-
-
-
- Print Document{" "}
-
- Ctrl
- P
-
-
-
-
-
-
- File
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/label-demo.tsx b/apps/v4/app/(internal)/sink/components/label-demo.tsx
deleted file mode 100644
index d3ed8060fb..0000000000
--- a/apps/v4/app/(internal)/sink/components/label-demo.tsx
+++ /dev/null
@@ -1,27 +0,0 @@
-import { Checkbox } from "@/registry/new-york-v4/ui/checkbox"
-import { Input } from "@/registry/new-york-v4/ui/input"
-import { Label } from "@/registry/new-york-v4/ui/label"
-import { Textarea } from "@/registry/new-york-v4/ui/textarea"
-
-export function LabelDemo() {
- return (
-
-
-
- Accept terms and conditions
-
-
- Username
-
-
-
- Disabled
-
-
-
- Message
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/menubar-demo.tsx b/apps/v4/app/(internal)/sink/components/menubar-demo.tsx
deleted file mode 100644
index 1ece3f98ca..0000000000
--- a/apps/v4/app/(internal)/sink/components/menubar-demo.tsx
+++ /dev/null
@@ -1,130 +0,0 @@
-import { HelpCircleIcon, SettingsIcon, Trash2Icon } from "lucide-react"
-
-import {
- Menubar,
- MenubarCheckboxItem,
- MenubarContent,
- MenubarGroup,
- MenubarItem,
- MenubarMenu,
- MenubarRadioGroup,
- MenubarRadioItem,
- MenubarSeparator,
- MenubarShortcut,
- MenubarSub,
- MenubarSubContent,
- MenubarSubTrigger,
- MenubarTrigger,
-} from "@/registry/new-york-v4/ui/menubar"
-
-export function MenubarDemo() {
- return (
-
-
- File
-
-
- New Tab ⌘T
-
-
- New Window ⌘N
-
- New Incognito Window
-
-
- Share
-
- Email link
- Messages
- Notes
-
-
-
-
- Print... ⌘P
-
-
-
-
- Edit
-
-
- Undo ⌘Z
-
-
- Redo ⇧⌘Z
-
-
-
- Find
-
- Search the web
-
- Find...
- Find Next
- Find Previous
-
-
-
- Cut
- Copy
- Paste
-
-
-
- View
-
- Always Show Bookmarks Bar
-
- Always Show Full URLs
-
-
-
- Reload ⌘R
-
-
- Force Reload ⇧⌘R
-
-
- Toggle Fullscreen
-
- Hide Sidebar
-
-
-
- Profiles
-
-
- Andy
- Benoit
- Luis
-
-
- Edit...
-
- Add Profile...
-
-
-
- More
-
-
-
-
- Settings
-
-
-
- Help
-
-
-
-
- Delete
-
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/native-select-demo.tsx b/apps/v4/app/(internal)/sink/components/native-select-demo.tsx
deleted file mode 100644
index 9f26a80635..0000000000
--- a/apps/v4/app/(internal)/sink/components/native-select-demo.tsx
+++ /dev/null
@@ -1,135 +0,0 @@
-import {
- NativeSelect,
- NativeSelectOptGroup,
- NativeSelectOption,
-} from "@/registry/new-york-v4/ui/native-select"
-import {
- Select,
- SelectContent,
- SelectGroup,
- SelectItem,
- SelectLabel,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york-v4/ui/select"
-
-export function NativeSelectDemo() {
- return (
-
-
-
- Basic Select
-
-
-
- Select a fruit
- Apple
- Banana
- Blueberry
-
- Grapes
-
- Pineapple
-
-
-
-
-
-
- Apple
- Banana
- Blueberry
-
- Grapes
-
- Pineapple
-
-
-
-
-
-
- With Groups
-
-
-
- Select a food
-
- Apple
- Banana
-
- Blueberry
-
-
-
- Carrot
- Broccoli
- Spinach
-
-
-
-
-
-
-
-
- Fruits
- Apple
- Banana
- Blueberry
-
-
- Vegetables
- Carrot
- Broccoli
- Spinach
-
-
-
-
-
-
-
- Disabled State
-
-
-
- Disabled
- Apple
- Banana
-
-
-
-
-
-
- Apple
- Banana
-
-
-
-
-
-
- Error State
-
-
-
- Error state
- Apple
- Banana
-
-
-
-
-
-
- Apple
- Banana
-
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/navigation-menu-demo.tsx b/apps/v4/app/(internal)/sink/components/navigation-menu-demo.tsx
deleted file mode 100644
index 6e47c943b9..0000000000
--- a/apps/v4/app/(internal)/sink/components/navigation-menu-demo.tsx
+++ /dev/null
@@ -1,227 +0,0 @@
-import * as React from "react"
-import Link from "next/link"
-import { CircleCheckIcon, CircleHelpIcon, CircleIcon } from "lucide-react"
-
-import {
- NavigationMenu,
- NavigationMenuContent,
- NavigationMenuItem,
- NavigationMenuLink,
- NavigationMenuList,
- NavigationMenuTrigger,
- navigationMenuTriggerStyle,
-} from "@/registry/new-york-v4/ui/navigation-menu"
-
-const components: { title: string; href: string; description: string }[] = [
- {
- title: "Alert Dialog",
- href: "/docs/primitives/alert-dialog",
- description:
- "A modal dialog that interrupts the user with important content and expects a response.",
- },
- {
- title: "Hover Card",
- href: "/docs/primitives/hover-card",
- description:
- "For sighted users to preview content available behind a link.",
- },
- {
- title: "Progress",
- href: "/docs/primitives/progress",
- description:
- "Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.",
- },
- {
- title: "Scroll-area",
- href: "/docs/primitives/scroll-area",
- description: "Visually or semantically separates content.",
- },
- {
- title: "Tabs",
- href: "/docs/primitives/tabs",
- description:
- "A set of layered sections of content—known as tab panels—that are displayed one at a time.",
- },
- {
- title: "Tooltip",
- href: "/docs/primitives/tooltip",
- description:
- "A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.",
- },
-]
-
-export function NavigationMenuDemo() {
- return (
-
-
-
-
- Getting started
-
-
-
-
-
- Components
-
-
- {components.map((component) => (
-
- {component.description}
-
- ))}
-
-
-
-
-
- Documentation
-
-
-
-
-
-
-
-
- Documentation
-
-
-
- List
-
-
-
-
-
- Components
-
- Browse all components in the library.
-
-
-
-
-
- Documentation
-
- Learn how to use the library.
-
-
-
-
-
- Blog
-
- Read our latest blog posts.
-
-
-
-
-
-
-
-
- Simple List
-
-
-
-
- Components
-
-
- Documentation
-
-
- Blocks
-
-
-
-
-
-
- With Icon
-
-
-
-
-
-
- Backlog
-
-
-
-
-
- To Do
-
-
-
-
-
- Done
-
-
-
-
-
-
-
-
-
- )
-}
-
-function ListItem({
- title,
- children,
- href,
- ...props
-}: React.ComponentPropsWithoutRef<"li"> & { href: string }) {
- return (
-
-
-
- {title}
-
- {children}
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/pagination-demo.tsx b/apps/v4/app/(internal)/sink/components/pagination-demo.tsx
deleted file mode 100644
index 451eb8b278..0000000000
--- a/apps/v4/app/(internal)/sink/components/pagination-demo.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import {
- Pagination,
- PaginationContent,
- PaginationEllipsis,
- PaginationItem,
- PaginationLink,
- PaginationNext,
- PaginationPrevious,
-} from "@/registry/new-york-v4/ui/pagination"
-
-export function PaginationDemo() {
- return (
-
-
-
-
-
-
-
- 1
-
-
-
- 2
-
-
-
- 3
-
-
-
-
-
-
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/popover-demo.tsx b/apps/v4/app/(internal)/sink/components/popover-demo.tsx
deleted file mode 100644
index ef316de2d1..0000000000
--- a/apps/v4/app/(internal)/sink/components/popover-demo.tsx
+++ /dev/null
@@ -1,67 +0,0 @@
-import { Button } from "@/registry/new-york-v4/ui/button"
-import { Input } from "@/registry/new-york-v4/ui/input"
-import { Label } from "@/registry/new-york-v4/ui/label"
-import {
- Popover,
- PopoverContent,
- PopoverDescription,
- PopoverHeader,
- PopoverTitle,
- PopoverTrigger,
-} from "@/registry/new-york-v4/ui/popover"
-
-export function PopoverDemo() {
- return (
-
-
-
- Open popover
-
-
-
-
- Dimensions
-
- Set the dimensions for the layer.
-
-
-
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/progress-demo.tsx b/apps/v4/app/(internal)/sink/components/progress-demo.tsx
deleted file mode 100644
index ee94673b9b..0000000000
--- a/apps/v4/app/(internal)/sink/components/progress-demo.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Progress } from "@/registry/new-york-v4/ui/progress"
-
-export function ProgressDemo() {
- const [progress, setProgress] = React.useState(13)
-
- React.useEffect(() => {
- const timer = setTimeout(() => setProgress(66), 500)
- return () => clearTimeout(timer)
- }, [])
-
- return
-}
diff --git a/apps/v4/app/(internal)/sink/components/radio-group-demo.tsx b/apps/v4/app/(internal)/sink/components/radio-group-demo.tsx
deleted file mode 100644
index f15fc0c1d7..0000000000
--- a/apps/v4/app/(internal)/sink/components/radio-group-demo.tsx
+++ /dev/null
@@ -1,62 +0,0 @@
-import { Label } from "@/registry/new-york-v4/ui/label"
-import {
- RadioGroup,
- RadioGroupItem,
-} from "@/registry/new-york-v4/ui/radio-group"
-
-const plans = [
- {
- id: "starter",
- name: "Starter Plan",
- description:
- "Perfect for small businesses getting started with our platform",
- price: "$10",
- },
- {
- id: "pro",
- name: "Pro Plan",
- description: "Advanced features for growing businesses with higher demands",
- price: "$20",
- },
-] as const
-
-export function RadioGroupDemo() {
- return (
-
-
-
-
- Default
-
-
-
- Comfortable
-
-
-
- Compact
-
-
-
- {plans.map((plan) => (
-
-
-
-
{plan.name}
-
- {plan.description}
-
-
-
- ))}
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/resizable-demo.tsx b/apps/v4/app/(internal)/sink/components/resizable-demo.tsx
deleted file mode 100644
index 2ce698b783..0000000000
--- a/apps/v4/app/(internal)/sink/components/resizable-demo.tsx
+++ /dev/null
@@ -1,70 +0,0 @@
-import {
- ResizableHandle,
- ResizablePanel,
- ResizablePanelGroup,
-} from "@/registry/new-york-v4/ui/resizable"
-
-export function ResizableDemo() {
- return (
-
-
-
-
- One
-
-
-
-
-
-
-
- Two
-
-
-
-
-
- Three
-
-
-
-
-
-
-
-
- Sidebar
-
-
-
-
-
- Content
-
-
-
-
-
-
- Header
-
-
-
-
-
- Content
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/scroll-area-demo.tsx b/apps/v4/app/(internal)/sink/components/scroll-area-demo.tsx
deleted file mode 100644
index 25db5ab70e..0000000000
--- a/apps/v4/app/(internal)/sink/components/scroll-area-demo.tsx
+++ /dev/null
@@ -1,80 +0,0 @@
-import * as React from "react"
-import Image from "next/image"
-
-import { ScrollArea, ScrollBar } from "@/registry/new-york-v4/ui/scroll-area"
-import { Separator } from "@/registry/new-york-v4/ui/separator"
-
-export function ScrollAreaDemo() {
- return (
-
-
-
-
- )
-}
-
-const tags = Array.from({ length: 50 }).map(
- (_, i, a) => `v1.2.0-beta.${a.length - i}`
-)
-
-function ScrollAreaVertical() {
- return (
-
-
-
-
Tags
- {tags.map((tag) => (
-
- {tag}
-
-
- ))}
-
-
-
- )
-}
-
-export const works = [
- {
- artist: "Ornella Binni",
- art: "https://images.unsplash.com/photo-1465869185982-5a1a7522cbcb?auto=format&fit=crop&w=300&q=80",
- },
- {
- artist: "Tom Byrom",
- art: "https://images.unsplash.com/photo-1548516173-3cabfa4607e9?auto=format&fit=crop&w=300&q=80",
- },
- {
- artist: "Vladimir Malyav",
- art: "https://images.unsplash.com/photo-1494337480532-3725c85fd2ab?auto=format&fit=crop&w=300&q=80",
- },
-] as const
-
-function ScrollAreaHorizontalDemo() {
- return (
-
-
- {works.map((artwork) => (
-
-
-
-
-
- Photo by{" "}
-
- {artwork.artist}
-
-
-
- ))}
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/select-demo.tsx b/apps/v4/app/(internal)/sink/components/select-demo.tsx
deleted file mode 100644
index eb4a6a195d..0000000000
--- a/apps/v4/app/(internal)/sink/components/select-demo.tsx
+++ /dev/null
@@ -1,93 +0,0 @@
-import * as React from "react"
-import {
- ChartBarIcon,
- ChartLineIcon,
- ChartPieIcon,
- CircleDashed,
-} from "lucide-react"
-
-import {
- Select,
- SelectContent,
- SelectGroup,
- SelectItem,
- SelectLabel,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york-v4/ui/select"
-
-export function SelectDemo() {
- return (
-
-
-
-
-
-
-
- Fruits
- Apple
- Banana
- Blueberry
-
- Grapes
-
- Pineapple
-
-
-
-
-
-
-
-
- {Array.from({ length: 100 }).map((_, i) => (
-
- Item {i}
-
- ))}
-
-
-
-
-
-
-
- Apple
- Banana
- Blueberry
-
- Grapes
-
- Pineapple
-
-
-
-
-
-
- With Icon
- >
- }
- />
-
-
-
-
- Line
-
-
-
- Bar
-
-
-
- Pie
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/separator-demo.tsx b/apps/v4/app/(internal)/sink/components/separator-demo.tsx
deleted file mode 100644
index 9943453f12..0000000000
--- a/apps/v4/app/(internal)/sink/components/separator-demo.tsx
+++ /dev/null
@@ -1,22 +0,0 @@
-import { Separator } from "@/registry/new-york-v4/ui/separator"
-
-export function SeparatorDemo() {
- return (
-
-
-
Tailwind CSS
-
- A utility-first CSS framework.
-
-
-
-
-
Blog
-
-
Docs
-
-
Source
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/sheet-demo.tsx b/apps/v4/app/(internal)/sink/components/sheet-demo.tsx
deleted file mode 100644
index 10eb5494a4..0000000000
--- a/apps/v4/app/(internal)/sink/components/sheet-demo.tsx
+++ /dev/null
@@ -1,116 +0,0 @@
-import { Button } from "@/registry/new-york-v4/ui/button"
-import { Input } from "@/registry/new-york-v4/ui/input"
-import { Label } from "@/registry/new-york-v4/ui/label"
-import {
- Sheet,
- SheetClose,
- SheetContent,
- SheetDescription,
- SheetFooter,
- SheetHeader,
- SheetTitle,
- SheetTrigger,
-} from "@/registry/new-york-v4/ui/sheet"
-
-const SHEET_SIDES = ["top", "right", "bottom", "left"] as const
-
-export function SheetDemo() {
- return (
-
-
-
- Open
-
-
-
- Edit profile
-
- Make changes to your profile here. Click save when you're
- done.
-
-
-
-
- Save changes
-
- Close
-
-
-
-
-
-
- No Close Button
-
-
-
- Custom Close
-
- This sheet has no default close button. Use the footer buttons
- instead.
-
-
-
-
-
- Cancel
-
- Save
-
-
-
-
- {SHEET_SIDES.map((side) => (
-
-
-
- {side}
-
-
-
-
- Edit profile
-
- Make changes to your profile here. Click save when you're
- done.
-
-
-
-
- Lorem Ipsum
-
- {Array.from({ length: 10 }).map((_, index) => (
-
- Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed
- do eiusmod tempor incididunt ut labore et dolore magna
- aliqua. Ut enim ad minim veniam, quis nostrud exercitation
- ullamco laboris nisi ut aliquip ex ea commodo consequat.
- Duis aute irure dolor in reprehenderit in voluptate velit
- esse cillum dolore eu fugiat nulla pariatur. Excepteur sint
- occaecat cupidatat non proident, sunt in culpa qui officia
- deserunt mollit anim id est laborum.
-
- ))}
-
-
- Save changes
-
- Cancel
-
-
-
-
- ))}
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/skeleton-demo.tsx b/apps/v4/app/(internal)/sink/components/skeleton-demo.tsx
deleted file mode 100644
index 66a6b61997..0000000000
--- a/apps/v4/app/(internal)/sink/components/skeleton-demo.tsx
+++ /dev/null
@@ -1,29 +0,0 @@
-import { Card, CardContent, CardHeader } from "@/registry/new-york-v4/ui/card"
-import { Skeleton } from "@/registry/new-york-v4/ui/skeleton"
-
-export function SkeletonDemo() {
- return (
-
-
-
- {Array.from({ length: 3 }).map((_, index) => (
-
-
-
-
-
-
-
-
-
- ))}
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/slider-demo.tsx b/apps/v4/app/(internal)/sink/components/slider-demo.tsx
deleted file mode 100644
index 0932dac158..0000000000
--- a/apps/v4/app/(internal)/sink/components/slider-demo.tsx
+++ /dev/null
@@ -1,44 +0,0 @@
-"use client"
-
-import * as React from "react"
-
-import { Label } from "@/registry/new-york-v4/ui/label"
-import { Slider } from "@/registry/new-york-v4/ui/slider"
-
-export function SliderDemo() {
- return (
-
- )
-}
-
-function SliderControlled() {
- const [value, setValue] = React.useState([0.3, 0.7])
-
- return (
-
-
- Temperature
-
- {value.join(", ")}
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/sonner-demo.tsx b/apps/v4/app/(internal)/sink/components/sonner-demo.tsx
deleted file mode 100644
index eb2656bb70..0000000000
--- a/apps/v4/app/(internal)/sink/components/sonner-demo.tsx
+++ /dev/null
@@ -1,132 +0,0 @@
-"use client"
-
-import * as React from "react"
-import { toast } from "sonner"
-
-import { Button } from "@/registry/new-york-v4/ui/button"
-
-const promiseCode = "`${data.name} toast has been added`"
-
-const allTypes = [
- {
- name: "Default",
- snippet: `toast('Event has been created')`,
- action: () => toast("Event has been created"),
- },
- {
- name: "Description",
- snippet: `toast.message('Event has been created', {
- description: 'Monday, January 3rd at 6:00pm',
-})`,
- action: () =>
- toast("Event has been created", {
- description: "Monday, January 3rd at 6:00pm",
- }),
- },
- {
- name: "Success",
- snippet: `toast.success('Event has been created')`,
- action: () => toast.success("Event has been created"),
- },
- {
- name: "Info",
- snippet: `toast.info('Be at the area 10 minutes before the event time')`,
- action: () => toast.info("Be at the area 10 minutes before the event time"),
- },
- {
- name: "Warning",
- snippet: `toast.warning('Event start time cannot be earlier than 8am')`,
- action: () => toast.warning("Event start time cannot be earlier than 8am"),
- },
- {
- name: "Error",
- snippet: `toast.error('Event has not been created')`,
- action: () => toast.error("Event has not been created"),
- },
- {
- name: "Action",
- action: () =>
- toast.message("Event has been created", {
- action: {
- label: "Undo",
- onClick: () => console.log("Undo"),
- },
- }),
- },
- {
- name: "Cancel",
- action: () =>
- toast.message("Event has been created", {
- cancel: {
- label: "Cancel",
- onClick: () => console.log("Cancel"),
- },
- }),
- },
- {
- name: "Promise",
- snippet: `const promise = () => new Promise((resolve) => setTimeout(() => resolve({ name: 'Sonner' }), 2000));
-
-toast.promise(promise, {
- loading: 'Loading...',
- success: (data) => {
- return ${promiseCode};
- },
- error: 'Error',
-});`,
- action: () =>
- toast.promise<{ name: string }>(
- () =>
- new Promise((resolve) => {
- setTimeout(() => {
- resolve({ name: "Sonner" })
- }, 2000)
- }),
- {
- loading: "Loading...",
- success: (data) => {
- return `${data.name} toast has been added`
- },
- error: "Error",
- }
- ),
- },
-]
-
-export function SonnerDemo() {
- const [activeType, setActiveType] = React.useState(allTypes[0])
- return (
-
- toast("My first toast")} variant="outline">
- Give me a toast
-
-
- toast("Event has been created", {
- description: "Sunday, December 03, 2023 at 9:00 AM",
- action: {
- label: "Undo",
- onClick: () => console.log("Undo"),
- },
- })
- }
- >
- Show Toast
-
- {allTypes.map((type) => (
- {
- type.action()
- setActiveType(type)
- }}
- key={type.name}
- >
- {type.name}
-
- ))}
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/spinner-demo.tsx b/apps/v4/app/(internal)/sink/components/spinner-demo.tsx
deleted file mode 100644
index f59f3570a0..0000000000
--- a/apps/v4/app/(internal)/sink/components/spinner-demo.tsx
+++ /dev/null
@@ -1,106 +0,0 @@
-import { ArrowRightIcon } from "lucide-react"
-
-import { Badge } from "@/registry/new-york-v4/ui/badge"
-import { Button } from "@/registry/new-york-v4/ui/button"
-import {
- Empty,
- EmptyContent,
- EmptyDescription,
- EmptyHeader,
- EmptyMedia,
- EmptyTitle,
-} from "@/registry/new-york-v4/ui/empty"
-import { Field, FieldLabel } from "@/registry/new-york-v4/ui/field"
-import {
- InputGroup,
- InputGroupAddon,
- InputGroupInput,
-} from "@/registry/new-york-v4/ui/input-group"
-import { Spinner } from "@/registry/new-york-v4/ui/spinner"
-
-export function SpinnerDemo() {
- return (
-
-
-
-
-
-
-
- Submit
-
-
- Disabled
-
-
- Small
-
-
- Outline
-
-
-
- Loading...
-
-
-
- Remove
-
-
-
-
-
- Badge
-
-
-
- Badge
-
-
-
- Badge
-
-
-
- Badge
-
-
-
-
- Input Group
-
-
-
-
-
-
-
-
-
-
-
-
-
- No projects yet
-
- You haven't created any projects yet. Get started by creating
- your first project.
-
-
-
-
-
-
- Learn more
-
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/switch-demo.tsx b/apps/v4/app/(internal)/sink/components/switch-demo.tsx
deleted file mode 100644
index 80413f9660..0000000000
--- a/apps/v4/app/(internal)/sink/components/switch-demo.tsx
+++ /dev/null
@@ -1,45 +0,0 @@
-import { Label } from "@/registry/new-york-v4/ui/label"
-import { Switch } from "@/registry/new-york-v4/ui/switch"
-
-export function SwitchDemo() {
- return (
-
- {/* Sizes. */}
-
-
-
- Small
-
-
-
- Default
-
-
-
-
- Airplane Mode
-
-
-
- Bluetooth
-
-
-
-
Share across devices
-
- Focus is shared across devices, and turns off when you leave the
- app.
-
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/table-demo.tsx b/apps/v4/app/(internal)/sink/components/table-demo.tsx
deleted file mode 100644
index c1269df1ba..0000000000
--- a/apps/v4/app/(internal)/sink/components/table-demo.tsx
+++ /dev/null
@@ -1,87 +0,0 @@
-import {
- Table,
- TableBody,
- TableCaption,
- TableCell,
- TableFooter,
- TableHead,
- TableHeader,
- TableRow,
-} from "@/registry/new-york-v4/ui/table"
-
-const invoices = [
- {
- invoice: "INV001",
- paymentStatus: "Paid",
- totalAmount: "$250.00",
- paymentMethod: "Credit Card",
- },
- {
- invoice: "INV002",
- paymentStatus: "Pending",
- totalAmount: "$150.00",
- paymentMethod: "PayPal",
- },
- {
- invoice: "INV003",
- paymentStatus: "Unpaid",
- totalAmount: "$350.00",
- paymentMethod: "Bank Transfer",
- },
- {
- invoice: "INV004",
- paymentStatus: "Paid",
- totalAmount: "$450.00",
- paymentMethod: "Credit Card",
- },
- {
- invoice: "INV005",
- paymentStatus: "Paid",
- totalAmount: "$550.00",
- paymentMethod: "PayPal",
- },
- {
- invoice: "INV006",
- paymentStatus: "Pending",
- totalAmount: "$200.00",
- paymentMethod: "Bank Transfer",
- },
- {
- invoice: "INV007",
- paymentStatus: "Unpaid",
- totalAmount: "$300.00",
- paymentMethod: "Credit Card",
- },
-]
-
-export function TableDemo() {
- return (
-
- A list of your recent invoices.
-
-
- Invoice
- Status
- Method
- Amount
-
-
-
- {invoices.map((invoice) => (
-
- {invoice.invoice}
- {invoice.paymentStatus}
- {invoice.paymentMethod}
- {invoice.totalAmount}
-
- ))}
-
-
-
- Total
- $2,500.00
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/tabs-demo.tsx b/apps/v4/app/(internal)/sink/components/tabs-demo.tsx
deleted file mode 100644
index 7388730c97..0000000000
--- a/apps/v4/app/(internal)/sink/components/tabs-demo.tsx
+++ /dev/null
@@ -1,145 +0,0 @@
-import { AppWindowIcon, CodeIcon } from "lucide-react"
-
-import { Button } from "@/registry/new-york-v4/ui/button"
-import {
- Card,
- CardContent,
- CardDescription,
- CardFooter,
- CardHeader,
- CardTitle,
-} from "@/registry/new-york-v4/ui/card"
-import { Input } from "@/registry/new-york-v4/ui/input"
-import { Label } from "@/registry/new-york-v4/ui/label"
-import {
- Tabs,
- TabsContent,
- TabsList,
- TabsTrigger,
-} from "@/registry/new-york-v4/ui/tabs"
-
-export function TabsDemo() {
- return (
-
-
-
- Account
- Password
-
-
-
-
- Account
-
- Make changes to your account here. Click save when you're
- done.
-
-
-
-
- Name
-
-
-
- Username
-
-
-
-
- Save changes
-
-
-
-
-
-
- Password
-
- Change your password here. After saving, you'll be logged
- out.
-
-
-
-
- Current password
-
-
-
- New password
-
-
-
-
- Save password
-
-
-
-
-
-
- Home
- Settings
-
-
-
-
- Home
-
- Disabled
-
-
-
-
-
-
-
- Preview
-
-
-
- Code
-
-
-
- {/* Line variant. */}
-
-
-
-
- Preview
-
-
-
- Code
-
-
-
- {/* Vertical orientation. */}
-
-
-
-
- Preview
-
-
-
- Code
-
-
-
- {/* Vertical orientation with line variant. */}
-
-
-
-
- Preview
-
-
-
- Code
-
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/textarea-demo.tsx b/apps/v4/app/(internal)/sink/components/textarea-demo.tsx
deleted file mode 100644
index 8ba32fb2a3..0000000000
--- a/apps/v4/app/(internal)/sink/components/textarea-demo.tsx
+++ /dev/null
@@ -1,40 +0,0 @@
-import { Label } from "@/registry/new-york-v4/ui/label"
-import { Textarea } from "@/registry/new-york-v4/ui/textarea"
-
-export function TextareaDemo() {
- return (
-
-
-
-
- Label
-
-
-
-
- With label and description
-
-
-
- Type your message and press enter to send.
-
-
-
- Disabled
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/theme-selector.tsx b/apps/v4/app/(internal)/sink/components/theme-selector.tsx
deleted file mode 100644
index e8a03f00a8..0000000000
--- a/apps/v4/app/(internal)/sink/components/theme-selector.tsx
+++ /dev/null
@@ -1,147 +0,0 @@
-"use client"
-
-import { cn } from "@/lib/utils"
-import { useThemeConfig } from "@/components/active-theme"
-import { Label } from "@/registry/new-york-v4/ui/label"
-import {
- Select,
- SelectContent,
- SelectGroup,
- SelectItem,
- SelectLabel,
- SelectSeparator,
- SelectTrigger,
- SelectValue,
-} from "@/registry/new-york-v4/ui/select"
-
-const THEMES = {
- sizes: [
- {
- name: "Default",
- value: "default",
- },
- {
- name: "Scaled",
- value: "scaled",
- },
- {
- name: "Mono",
- value: "mono",
- },
- ],
- colors: [
- {
- name: "Blue",
- value: "blue",
- },
- {
- name: "Green",
- value: "green",
- },
- {
- name: "Amber",
- value: "amber",
- },
- {
- name: "Rose",
- value: "rose",
- },
- {
- name: "Purple",
- value: "purple",
- },
- {
- name: "Orange",
- value: "orange",
- },
- {
- name: "Teal",
- value: "teal",
- },
- ],
- fonts: [
- {
- name: "Inter",
- value: "inter",
- },
- {
- name: "Noto Sans",
- value: "noto-sans",
- },
- {
- name: "Nunito Sans",
- value: "nunito-sans",
- },
- {
- name: "Figtree",
- value: "figtree",
- },
- ],
- radius: [
- {
- name: "None",
- value: "rounded-none",
- },
- {
- name: "Small",
- value: "rounded-small",
- },
- {
- name: "Medium",
- value: "rounded-medium",
- },
- {
- name: "Large",
- value: "rounded-large",
- },
- {
- name: "Full",
- value: "rounded-full",
- },
- ],
-}
-
-export function ThemeSelector({ className }: React.ComponentProps<"div">) {
- const { activeTheme, setActiveTheme } = useThemeConfig()
-
- return (
-
-
- Theme
-
-
-
-
-
-
- {Object.entries(THEMES).map(
- ([key, themes], index) =>
- themes.length > 0 && (
-
- {index > 0 && }
-
-
- {key.charAt(0).toUpperCase() + key.slice(1)}
-
- {themes.map((theme) => (
-
- {theme.name}
-
- ))}
-
-
- )
- )}
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/toggle-demo.tsx b/apps/v4/app/(internal)/sink/components/toggle-demo.tsx
deleted file mode 100644
index 466025c646..0000000000
--- a/apps/v4/app/(internal)/sink/components/toggle-demo.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-import { BoldIcon, BookmarkIcon, ItalicIcon, UnderlineIcon } from "lucide-react"
-
-import { Toggle } from "@/registry/new-york-v4/ui/toggle"
-
-export function ToggleDemo() {
- return (
-
-
-
-
-
-
-
-
- Disabled
-
-
-
- Italic
-
-
-
-
-
- Small
-
-
- Large
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/toggle-group-demo.tsx b/apps/v4/app/(internal)/sink/components/toggle-group-demo.tsx
deleted file mode 100644
index b8c9fc4267..0000000000
--- a/apps/v4/app/(internal)/sink/components/toggle-group-demo.tsx
+++ /dev/null
@@ -1,139 +0,0 @@
-import {
- BoldIcon,
- BookmarkIcon,
- HeartIcon,
- ItalicIcon,
- StarIcon,
- UnderlineIcon,
-} from "lucide-react"
-
-import {
- ToggleGroup,
- ToggleGroupItem,
-} from "@/registry/new-york-v4/ui/toggle-group"
-
-export function ToggleGroupDemo() {
- return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- All
-
-
- Missed
-
-
-
-
-
- Last 24 hours
-
-
- Last 7 days
-
-
-
-
-
- Last 24 hours
-
-
- Last 7 days
-
-
-
-
- Top
-
-
- Bottom
-
-
- Left
-
-
- Right
-
-
-
-
-
- Top
-
-
- Bottom
-
-
- Left
-
-
- Right
-
-
-
-
-
-
- Star
-
-
-
- Heart
-
-
-
- Bookmark
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/components/tooltip-demo.tsx b/apps/v4/app/(internal)/sink/components/tooltip-demo.tsx
deleted file mode 100644
index cdf55188d9..0000000000
--- a/apps/v4/app/(internal)/sink/components/tooltip-demo.tsx
+++ /dev/null
@@ -1,49 +0,0 @@
-import { InfoIcon } from "lucide-react"
-
-import { Button } from "@/registry/new-york-v4/ui/button"
-import {
- Tooltip,
- TooltipContent,
- TooltipTrigger,
-} from "@/registry/new-york-v4/ui/tooltip"
-
-export function TooltipDemo() {
- return (
-
-
-
- Hover
-
-
- Add to library
-
-
-
- {["top", "right", "bottom", "left"].map((side) => (
-
-
-
- {side}
-
-
-
- Add to library
-
-
- ))}
-
-
-
-
-
- Info
-
-
-
- To learn more about how this works, check out the docs. If you have
- any questions, please reach out to us.
-
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/layout.tsx b/apps/v4/app/(internal)/sink/layout.tsx
deleted file mode 100644
index 5bb2c725e4..0000000000
--- a/apps/v4/app/(internal)/sink/layout.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-import { Figtree, Inter, Noto_Sans, Nunito_Sans } from "next/font/google"
-
-import { cn } from "@/lib/utils"
-import { ModeSwitcher } from "@/components/mode-switcher"
-import { Separator } from "@/registry/new-york-v4/ui/separator"
-import {
- SidebarInset,
- SidebarProvider,
- SidebarTrigger,
-} from "@/registry/new-york-v4/ui/sidebar"
-import { AppBreadcrumbs } from "@/app/(internal)/sink/components/app-breadcrumbs"
-import { AppSidebar } from "@/app/(internal)/sink/components/app-sidebar"
-import { ThemeSelector } from "@/app/(internal)/sink/components/theme-selector"
-
-const inter = Inter({
- subsets: ["latin"],
- variable: "--font-inter",
-})
-
-const notoSans = Noto_Sans({
- subsets: ["latin"],
- variable: "--font-noto-sans",
-})
-
-const nunitoSans = Nunito_Sans({
- subsets: ["latin"],
- variable: "--font-nunito-sans",
-})
-
-const figtree = Figtree({
- subsets: ["latin"],
- variable: "--font-figtree",
-})
-
-export default async function SinkLayout({
- children,
-}: {
- children: React.ReactNode
-}) {
- return (
-
-
-
-
- {children}
-
-
- )
-}
diff --git a/apps/v4/app/(internal)/sink/page.tsx b/apps/v4/app/(internal)/sink/page.tsx
deleted file mode 100644
index 0e20da93b1..0000000000
--- a/apps/v4/app/(internal)/sink/page.tsx
+++ /dev/null
@@ -1,35 +0,0 @@
-import { type Metadata } from "next"
-
-import { componentRegistry } from "@/app/(internal)/sink/component-registry"
-import { ComponentWrapper } from "@/app/(internal)/sink/components/component-wrapper"
-
-export const dynamic = "force-static"
-export const revalidate = false
-
-export const metadata: Metadata = {
- title: "Kitchen Sink",
- description: "A page with all components for testing purposes.",
-}
-
-export default function SinkPage() {
- return (
-
- {Object.entries(componentRegistry)
- .filter(([, component]) => {
- return component.type === "registry:ui"
- })
- .map(([key, component]) => {
- const Component = component.component
- return (
-
-
-
- )
- })}
-
- )
-}
diff --git a/apps/v4/components/lo-fi/accordion.tsx b/apps/v4/components/lo-fi/accordion.tsx
deleted file mode 100644
index cb3c16b374..0000000000
--- a/apps/v4/components/lo-fi/accordion.tsx
+++ /dev/null
@@ -1,32 +0,0 @@
-import { ChevronDownIcon, ChevronUpIcon } from "lucide-react"
-
-import { Atom } from "@/components/lo-fi/atom"
-
-export function AccordionLoFi() {
- return (
-
- )
-}
diff --git a/apps/v4/components/lo-fi/alert.tsx b/apps/v4/components/lo-fi/alert.tsx
deleted file mode 100644
index 13e44a4916..0000000000
--- a/apps/v4/components/lo-fi/alert.tsx
+++ /dev/null
@@ -1,18 +0,0 @@
-import { CircleAlertIcon } from "lucide-react"
-
-import { Atom } from "@/components/lo-fi/atom"
-
-export function AlertLoFi() {
- return (
-
-
-
-
- )
-}
diff --git a/apps/v4/components/lo-fi/atom.tsx b/apps/v4/components/lo-fi/atom.tsx
deleted file mode 100644
index 8952be0980..0000000000
--- a/apps/v4/components/lo-fi/atom.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 atomVariants = cva(
- "inline-flex rounded-lg border-neutral-300 dark:border-neutral-600",
- {
- variants: {
- shade: {
- "50": "bg-neutral-50 dark:bg-neutral-900",
- "100": "bg-neutral-100 dark:bg-neutral-800",
- "200": "bg-neutral-200 dark:bg-neutral-700",
- "300": "bg-neutral-300 dark:bg-neutral-600",
- "400": "bg-neutral-400 dark:bg-neutral-500",
- "500": "bg-neutral-500 dark:bg-neutral-400",
- "600": "bg-neutral-600 dark:bg-neutral-300",
- "700": "bg-neutral-700 dark:bg-neutral-200",
- "800": "bg-neutral-800 dark:bg-neutral-100",
- "900": "bg-neutral-900 dark:bg-neutral-50",
- },
- },
- defaultVariants: {
- shade: "50",
- },
- }
-)
-
-function Atom({
- className,
- shade,
- ...props
-}: React.ComponentProps<"div"> & VariantProps) {
- return (
-
- )
-}
-
-export { Atom }
diff --git a/apps/v4/components/lo-fi/component.tsx b/apps/v4/components/lo-fi/component.tsx
deleted file mode 100644
index 45244d3698..0000000000
--- a/apps/v4/components/lo-fi/component.tsx
+++ /dev/null
@@ -1,28 +0,0 @@
-import Link from "next/link"
-
-import { Atom } from "@/components/lo-fi/atom"
-
-function Component({ href, ...props }: React.ComponentProps) {
- return
-}
-
-function ComponentContent({ ...props }: React.ComponentProps) {
- return (
-
- )
-}
-
-function ComponentName({ ...props }: React.ComponentProps<"div">) {
- return (
-
- )
-}
-
-export { Component, ComponentContent, ComponentName }
diff --git a/apps/v4/components/lo-fi/index.tsx b/apps/v4/components/lo-fi/index.tsx
deleted file mode 100644
index 69429ef834..0000000000
--- a/apps/v4/components/lo-fi/index.tsx
+++ /dev/null
@@ -1,26 +0,0 @@
-import { AccordionLoFi } from "@/components/lo-fi/accordion"
-import { AlertLoFi } from "@/components/lo-fi/alert"
-import {
- Component,
- ComponentContent,
- ComponentName,
-} from "@/components/lo-fi/component"
-
-export function LoFi() {
- return (
-
-
-
-
-
- Accordion
-
-
-
-
-
- Alert
-
-
- )
-}
diff --git a/apps/v4/lib/explore.ts b/apps/v4/lib/explore.ts
deleted file mode 100644
index 0768962363..0000000000
--- a/apps/v4/lib/explore.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-export const EXPLORE_PRESETS: string[] = [
- "auFzoPZ",
- "a1zDJJ",
- "a1DN5Lx2",
- "abZIu0W",
- "a2r6bw",
- "a2He4G",
- "a1DOCw6i",
- "a1D5CKfo",
- "abYAmrx",
-]
diff --git a/apps/v4/next.config.mjs b/apps/v4/next.config.mjs
index a4f51b7605..a8349ba53b 100644
--- a/apps/v4/next.config.mjs
+++ b/apps/v4/next.config.mjs
@@ -127,6 +127,11 @@ const nextConfig = {
destination: "/docs/cli",
permanent: true,
},
+ {
+ source: "/themes",
+ destination: "/create",
+ permanent: true,
+ },
]
},
rewrites() {
diff --git a/apps/v4/public/r/styles/default/registry.json b/apps/v4/public/r/styles/default/registry.json
index 0ae97702c3..49fe140c7d 100644
--- a/apps/v4/public/r/styles/default/registry.json
+++ b/apps/v4/public/r/styles/default/registry.json
@@ -4153,390 +4153,6 @@
}
}
},
- {
- "name": "sink",
- "type": "registry:internal",
- "registryDependencies": [
- "accordion",
- "alert",
- "alert-dialog",
- "aspect-ratio",
- "avatar",
- "badge",
- "breadcrumb",
- "button",
- "calendar",
- "card",
- "carousel",
- "chart",
- "checkbox",
- "collapsible",
- "command",
- "context-menu",
- "dialog",
- "drawer",
- "dropdown-menu",
- "hover-card",
- "input",
- "input-otp",
- "label",
- "menubar",
- "navigation-menu",
- "pagination",
- "popover",
- "progress",
- "radio-group",
- "resizable",
- "scroll-area",
- "select",
- "separator",
- "sheet",
- "sidebar",
- "skeleton",
- "slider",
- "sonner",
- "switch",
- "table",
- "tabs",
- "textarea",
- "toast",
- "toggle",
- "toggle-group",
- "tooltip"
- ],
- "files": [
- {
- "path": "registry/default/internal/sink/page.tsx",
- "type": "registry:page",
- "target": "app/sink/page.tsx"
- },
- {
- "path": "registry/default/internal/sink/components/app-sidebar.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/component-wrapper.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/nav-main.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/nav-projects.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/nav-user.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/team-switcher.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/accordion-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/alert-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/alert-dialog-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/aspect-ratio-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/avatar-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/badge-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/breadcrumb-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/button-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/calendar-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/card-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/carousel-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/checkbox-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/collapsible-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/combobox-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/command-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/context-menu-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/date-picker-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/dialog-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/drawer-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/dropdown-menu-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/hover-card-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/input-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/input-otp-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/label-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/menubar-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/navigation-menu-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/pagination-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/popover-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/progress-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/radio-group-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/resizable-handle.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/scroll-area-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/select-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/separator-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/sheet-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/skeleton-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/slider-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/sonner-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/switch-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/table-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/tabs-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/textarea-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/toast-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/toggle-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/toggle-group-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/tooltip-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/badge-destructive.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/badge-outline.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/badge-secondary.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/button-destructive.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/button-ghost.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/button-link.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/button-loading.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/button-outline.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/button-secondary.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/button-with-icon.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/toggle-disabled.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/toggle-outline.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/default/internal/sink/components/toggle-with-text.tsx",
- "type": "registry:component",
- "target": ""
- }
- ]
- },
{
"name": "sidebar-demo",
"type": "registry:internal",
@@ -7035,4 +6651,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/apps/v4/public/r/styles/default/sink.json b/apps/v4/public/r/styles/default/sink.json
deleted file mode 100644
index b99700b7fa..0000000000
--- a/apps/v4/public/r/styles/default/sink.json
+++ /dev/null
@@ -1,452 +0,0 @@
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "sink",
- "type": "registry:internal",
- "author": "shadcn (https://ui.shadcn.com)",
- "registryDependencies": [
- "accordion",
- "alert",
- "alert-dialog",
- "aspect-ratio",
- "avatar",
- "badge",
- "breadcrumb",
- "button",
- "calendar",
- "card",
- "carousel",
- "chart",
- "checkbox",
- "collapsible",
- "command",
- "context-menu",
- "dialog",
- "drawer",
- "dropdown-menu",
- "hover-card",
- "input",
- "input-otp",
- "label",
- "menubar",
- "navigation-menu",
- "pagination",
- "popover",
- "progress",
- "radio-group",
- "resizable",
- "scroll-area",
- "select",
- "separator",
- "sheet",
- "sidebar",
- "skeleton",
- "slider",
- "sonner",
- "switch",
- "table",
- "tabs",
- "textarea",
- "toast",
- "toggle",
- "toggle-group",
- "tooltip"
- ],
- "files": [
- {
- "path": "internal/sink/page.tsx",
- "content": "import { AccordionDemo } from \"@/registry/default/internal/sink/components/accordion-demo\"\nimport { AlertDemo } from \"@/registry/default/internal/sink/components/alert-demo\"\nimport { AlertDialogDemo } from \"@/registry/default/internal/sink/components/alert-dialog-demo\"\nimport { AppSidebar } from \"@/registry/default/internal/sink/components/app-sidebar\"\nimport { AspectRatioDemo } from \"@/registry/default/internal/sink/components/aspect-ratio-demo\"\nimport { AvatarDemo } from \"@/registry/default/internal/sink/components/avatar-demo\"\nimport { BadgeDemo } from \"@/registry/default/internal/sink/components/badge-demo\"\nimport { BadgeDestructive } from \"@/registry/default/internal/sink/components/badge-destructive\"\nimport { BadgeOutline } from \"@/registry/default/internal/sink/components/badge-outline\"\nimport { BadgeSecondary } from \"@/registry/default/internal/sink/components/badge-secondary\"\nimport { BreadcrumbDemo } from \"@/registry/default/internal/sink/components/breadcrumb-demo\"\nimport { ButtonDemo } from \"@/registry/default/internal/sink/components/button-demo\"\nimport { ButtonDestructive } from \"@/registry/default/internal/sink/components/button-destructive\"\nimport { ButtonGhost } from \"@/registry/default/internal/sink/components/button-ghost\"\nimport { ButtonLink } from \"@/registry/default/internal/sink/components/button-link\"\nimport { ButtonLoading } from \"@/registry/default/internal/sink/components/button-loading\"\nimport { ButtonOutline } from \"@/registry/default/internal/sink/components/button-outline\"\nimport { ButtonSecondary } from \"@/registry/default/internal/sink/components/button-secondary\"\nimport { ButtonWithIcon } from \"@/registry/default/internal/sink/components/button-with-icon\"\nimport { CalendarDemo } from \"@/registry/default/internal/sink/components/calendar-demo\"\nimport { CardDemo } from \"@/registry/default/internal/sink/components/card-demo\"\nimport { CarouselDemo } from \"@/registry/default/internal/sink/components/carousel-demo\"\nimport { CheckboxDemo } from \"@/registry/default/internal/sink/components/checkbox-demo\"\nimport { CollapsibleDemo } from \"@/registry/default/internal/sink/components/collapsible-demo\"\nimport { ComboboxDemo } from \"@/registry/default/internal/sink/components/combobox-demo\"\nimport { CommandDemo } from \"@/registry/default/internal/sink/components/command-demo\"\nimport { ComponentWrapper } from \"@/registry/default/internal/sink/components/component-wrapper\"\nimport { ContextMenuDemo } from \"@/registry/default/internal/sink/components/context-menu-demo\"\nimport { DatePickerDemo } from \"@/registry/default/internal/sink/components/date-picker-demo\"\nimport { DialogDemo } from \"@/registry/default/internal/sink/components/dialog-demo\"\nimport { DrawerDemo } from \"@/registry/default/internal/sink/components/drawer-demo\"\nimport { DropdownMenuDemo } from \"@/registry/default/internal/sink/components/dropdown-menu-demo\"\nimport { HoverCardDemo } from \"@/registry/default/internal/sink/components/hover-card-demo\"\nimport { InputDemo } from \"@/registry/default/internal/sink/components/input-demo\"\nimport { InputOTPDemo } from \"@/registry/default/internal/sink/components/input-otp-demo\"\nimport { LabelDemo } from \"@/registry/default/internal/sink/components/label-demo\"\nimport { MenubarDemo } from \"@/registry/default/internal/sink/components/menubar-demo\"\nimport { NavigationMenuDemo } from \"@/registry/default/internal/sink/components/navigation-menu-demo\"\nimport { PaginationDemo } from \"@/registry/default/internal/sink/components/pagination-demo\"\nimport { PopoverDemo } from \"@/registry/default/internal/sink/components/popover-demo\"\nimport { ProgressDemo } from \"@/registry/default/internal/sink/components/progress-demo\"\nimport { RadioGroupDemo } from \"@/registry/default/internal/sink/components/radio-group-demo\"\nimport { ResizableHandleDemo } from \"@/registry/default/internal/sink/components/resizable-handle\"\nimport { ScrollAreaDemo } from \"@/registry/default/internal/sink/components/scroll-area-demo\"\nimport { SelectDemo } from \"@/registry/default/internal/sink/components/select-demo\"\nimport { SeparatorDemo } from \"@/registry/default/internal/sink/components/separator-demo\"\nimport { SheetDemo } from \"@/registry/default/internal/sink/components/sheet-demo\"\nimport { SkeletonDemo } from \"@/registry/default/internal/sink/components/skeleton-demo\"\nimport { SliderDemo } from \"@/registry/default/internal/sink/components/slider-demo\"\nimport { SonnerDemo } from \"@/registry/default/internal/sink/components/sonner-demo\"\nimport { SwitchDemo } from \"@/registry/default/internal/sink/components/switch-demo\"\nimport { TableDemo } from \"@/registry/default/internal/sink/components/table-demo\"\nimport { TabsDemo } from \"@/registry/default/internal/sink/components/tabs-demo\"\nimport { TextareaDemo } from \"@/registry/default/internal/sink/components/textarea-demo\"\nimport { ToastDemo } from \"@/registry/default/internal/sink/components/toast-demo\"\nimport { ToggleDemo } from \"@/registry/default/internal/sink/components/toggle-demo\"\nimport { ToggleDisabled } from \"@/registry/default/internal/sink/components/toggle-disabled\"\nimport { ToggleGroupDemo } from \"@/registry/default/internal/sink/components/toggle-group-demo\"\nimport { ToggleOutline } from \"@/registry/default/internal/sink/components/toggle-outline\"\nimport { ToggleWithText } from \"@/registry/default/internal/sink/components/toggle-with-text\"\nimport { TooltipDemo } from \"@/registry/default/internal/sink/components/tooltip-demo\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/registry/default/ui/breadcrumb\"\nimport { Separator } from \"@/registry/default/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/registry/default/ui/sidebar\"\n\nexport default function SinkPage() {\n return (\n \n \n \n \n \n
\n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n \n
\n \n \n
\n \n \n \n \n \n
\n \n \n \n \n
\n \n \n
\n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n \n
\n \n
\n \n \n
\n \n \n
\n
\n \n \n )\n}\n",
- "type": "registry:page",
- "target": "app/sink/page.tsx"
- },
- {
- "path": "internal/sink/components/app-sidebar.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n AudioWaveform,\n BookOpen,\n Bot,\n Command,\n Frame,\n GalleryVerticalEnd,\n Map,\n PieChart,\n Settings2,\n SquareTerminal,\n} from \"lucide-react\"\n\nimport { NavMain } from \"@/registry/default/blocks/sidebar-07/components/nav-main\"\nimport { NavProjects } from \"@/registry/default/blocks/sidebar-07/components/nav-projects\"\nimport { NavUser } from \"@/registry/default/blocks/sidebar-07/components/nav-user\"\nimport { TeamSwitcher } from \"@/registry/default/blocks/sidebar-07/components/team-switcher\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarHeader,\n SidebarRail,\n} from \"@/registry/default/ui/sidebar\"\n\n// This is sample data.\nconst data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n teams: [\n {\n name: \"Acme Inc\",\n logo: GalleryVerticalEnd,\n plan: \"Enterprise\",\n },\n {\n name: \"Acme Corp.\",\n logo: AudioWaveform,\n plan: \"Startup\",\n },\n {\n name: \"Evil Corp.\",\n logo: Command,\n plan: \"Free\",\n },\n ],\n navMain: [\n {\n title: \"Playground\",\n url: \"#\",\n icon: SquareTerminal,\n isActive: true,\n items: [\n {\n title: \"History\",\n url: \"#\",\n },\n {\n title: \"Starred\",\n url: \"#\",\n },\n {\n title: \"Settings\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Models\",\n url: \"#\",\n icon: Bot,\n items: [\n {\n title: \"Genesis\",\n url: \"#\",\n },\n {\n title: \"Explorer\",\n url: \"#\",\n },\n {\n title: \"Quantum\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Documentation\",\n url: \"#\",\n icon: BookOpen,\n items: [\n {\n title: \"Introduction\",\n url: \"#\",\n },\n {\n title: \"Get Started\",\n url: \"#\",\n },\n {\n title: \"Tutorials\",\n url: \"#\",\n },\n {\n title: \"Changelog\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: Settings2,\n items: [\n {\n title: \"General\",\n url: \"#\",\n },\n {\n title: \"Team\",\n url: \"#\",\n },\n {\n title: \"Billing\",\n url: \"#\",\n },\n {\n title: \"Limits\",\n url: \"#\",\n },\n ],\n },\n ],\n projects: [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: Frame,\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: PieChart,\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: Map,\n },\n ],\n}\n\nexport function AppSidebar({ ...props }: React.ComponentProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/component-wrapper.tsx",
- "content": "import { cn } from \"@/registry/default/lib/utils\"\n\nexport function ComponentWrapper({\n className,\n name,\n children,\n ...props\n}: React.ComponentPropsWithoutRef<\"div\"> & { name: string }) {\n return (\n \n
\n
div]:max-w-full\">\n {children}\n
\n
\n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/nav-main.tsx",
- "content": "\"use client\"\n\nimport { ChevronRight, type LucideIcon } from \"lucide-react\"\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/default/ui/collapsible\"\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/registry/default/ui/sidebar\"\n\nexport function NavMain({\n items,\n}: {\n items: {\n title: string\n url: string\n icon?: LucideIcon\n isActive?: boolean\n items?: {\n title: string\n url: string\n }[]\n }[]\n}) {\n return (\n \n Platform \n \n {items.map((item) => (\n \n \n \n \n {item.icon && }\n {item.title} \n \n \n \n \n \n {item.items?.map((subItem) => (\n \n \n \n {subItem.title} \n \n \n \n ))}\n \n \n \n \n ))}\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/nav-projects.tsx",
- "content": "\"use client\"\n\nimport {\n Folder,\n Forward,\n MoreHorizontal,\n Trash2,\n type LucideIcon,\n} from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/default/ui/dropdown-menu\"\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/registry/default/ui/sidebar\"\n\nexport function NavProjects({\n projects,\n}: {\n projects: {\n name: string\n url: string\n icon: LucideIcon\n }[]\n}) {\n const { isMobile } = useSidebar()\n\n return (\n \n Projects \n \n {projects.map((item) => (\n \n \n \n \n {item.name} \n \n \n \n \n \n \n More \n \n \n \n \n \n View Project \n \n \n \n Share Project \n \n \n \n \n Delete Project \n \n \n \n \n ))}\n \n \n \n More \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/nav-user.tsx",
- "content": "\"use client\"\n\nimport {\n BadgeCheck,\n Bell,\n ChevronsUpDown,\n CreditCard,\n LogOut,\n Sparkles,\n} from \"lucide-react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/default/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/default/ui/dropdown-menu\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/registry/default/ui/sidebar\"\n\nexport function NavUser({\n user,\n}: {\n user: {\n name: string\n email: string\n avatar: string\n }\n}) {\n const { isMobile } = useSidebar()\n\n return (\n \n \n \n \n \n \n \n CN \n \n \n {user.name} \n {user.email} \n
\n \n \n \n \n \n \n
\n \n CN \n \n
\n {user.name} \n {user.email} \n
\n
\n \n \n \n \n \n Upgrade to Pro\n \n \n \n \n \n \n Account\n \n \n \n Billing\n \n \n \n Notifications\n \n \n \n \n \n Log out\n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/team-switcher.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronsUpDown, Plus } from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from \"@/registry/default/ui/dropdown-menu\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/registry/default/ui/sidebar\"\n\nexport function TeamSwitcher({\n teams,\n}: {\n teams: {\n name: string\n logo: React.ElementType\n plan: string\n }[]\n}) {\n const { isMobile } = useSidebar()\n const [activeTeam, setActiveTeam] = React.useState(teams[0])\n\n if (!activeTeam) {\n return null\n }\n\n return (\n \n \n \n \n \n \n \n \n {activeTeam.name}\n \n {activeTeam.plan} \n
\n \n \n \n \n \n Teams\n \n {teams.map((team, index) => (\n setActiveTeam(team)}\n className=\"gap-2 p-2\"\n >\n \n \n
\n {team.name}\n ⌘{index + 1} \n \n ))}\n \n \n \n Add team
\n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/accordion-demo.tsx",
- "content": "import {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"@/registry/default/ui/accordion\"\n\nexport function AccordionDemo() {\n return (\n \n \n Is it accessible? \n \n Yes. It adheres to the WAI-ARIA design pattern.\n \n \n \n Is it styled? \n \n Yes. It comes with default styles that matches the other\n components' aesthetic.\n \n \n \n Is it animated? \n \n Yes. It's animated by default, but you can disable it if you prefer.\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/alert-demo.tsx",
- "content": "import { Terminal } from \"lucide-react\"\n\nimport {\n Alert,\n AlertDescription,\n AlertTitle,\n} from \"@/registry/default/ui/alert\"\n\nexport function AlertDemo() {\n return (\n \n \n Heads up! \n \n You can add components to your app using the cli.\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/alert-dialog-demo.tsx",
- "content": "import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"@/registry/default/ui/alert-dialog\"\nimport { Button } from \"@/registry/default/ui/button\"\n\nexport function AlertDialogDemo() {\n return (\n \n \n Show Dialog \n \n \n \n Are you absolutely sure? \n \n This action cannot be undone. This will permanently delete your\n account and remove your data from our servers.\n \n \n \n Cancel \n Continue \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/aspect-ratio-demo.tsx",
- "content": "import Image from \"next/image\"\n\nimport { AspectRatio } from \"@/registry/default/ui/aspect-ratio\"\n\nexport function AspectRatioDemo() {\n return (\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/avatar-demo.tsx",
- "content": "import {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/default/ui/avatar\"\n\nexport function AvatarDemo() {\n return (\n \n \n CN \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/badge-demo.tsx",
- "content": "import { Badge } from \"@/registry/default/ui/badge\"\n\nexport function BadgeDemo() {\n return Badge \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/breadcrumb-demo.tsx",
- "content": "import {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/registry/default/ui/breadcrumb\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/default/ui/dropdown-menu\"\n\nexport function BreadcrumbDemo() {\n return (\n \n \n \n Home \n \n \n \n \n \n \n Toggle menu \n \n \n Documentation \n Themes \n GitHub \n \n \n \n \n \n Components \n \n \n \n Breadcrumb \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-demo.tsx",
- "content": "import { Button } from \"@/registry/default/ui/button\"\n\nexport function ButtonDemo() {\n return Button \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/calendar-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/registry/default/ui/calendar\"\n\nexport function CalendarDemo() {\n const [date, setDate] = React.useState(new Date())\n\n return (\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/card-demo.tsx",
- "content": "import { BellRing, Check } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport { Switch } from \"@/registry/default/ui/switch\"\n\nconst notifications = [\n {\n title: \"Your call has been confirmed.\",\n description: \"1 hour ago\",\n },\n {\n title: \"You have a new message!\",\n description: \"1 hour ago\",\n },\n {\n title: \"Your subscription is expiring soon!\",\n description: \"2 hours ago\",\n },\n]\n\ntype CardProps = React.ComponentProps\n\nexport function CardDemo({ className, ...props }: CardProps) {\n return (\n \n \n Notifications \n You have 3 unread messages. \n \n \n \n
\n
\n
\n Push Notifications\n
\n
\n Send notifications to device.\n
\n
\n
\n
\n \n {notifications.map((notification, index) => (\n
\n
\n
\n
\n {notification.title}\n
\n
\n {notification.description}\n
\n
\n
\n ))}\n
\n \n \n \n Mark all as read\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/carousel-demo.tsx",
- "content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/registry/default/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/registry/default/ui/carousel\"\n\nexport function CarouselDemo() {\n return (\n \n \n {Array.from({ length: 5 }).map((_, index) => (\n \n \n \n \n {index + 1} \n \n \n
\n \n ))}\n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/checkbox-demo.tsx",
- "content": "\"use client\"\n\nimport { Checkbox } from \"@/registry/default/ui/checkbox\"\n\nexport function CheckboxDemo() {\n return (\n \n \n \n Accept terms and conditions\n \n
\n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/collapsible-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronsUpDown } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/default/ui/collapsible\"\n\nexport function CollapsibleDemo() {\n const [isOpen, setIsOpen] = React.useState(false)\n\n return (\n \n \n
\n @peduarte starred 3 repositories\n \n \n \n \n Toggle \n \n \n \n \n @radix-ui/primitives\n
\n \n \n @radix-ui/colors\n
\n \n @stitches/react\n
\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/combobox-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronsUpDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/default/ui/command\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\nconst frameworks = [\n {\n value: \"next.js\",\n label: \"Next.js\",\n },\n {\n value: \"sveltekit\",\n label: \"SvelteKit\",\n },\n {\n value: \"nuxt.js\",\n label: \"Nuxt.js\",\n },\n {\n value: \"remix\",\n label: \"Remix\",\n },\n {\n value: \"astro\",\n label: \"Astro\",\n },\n]\n\nexport function ComboboxDemo() {\n const [open, setOpen] = React.useState(false)\n const [value, setValue] = React.useState(\"\")\n\n return (\n \n \n \n {value\n ? frameworks.find((framework) => framework.value === value)?.label\n : \"Select framework...\"}\n \n \n \n \n \n \n \n No framework found. \n \n {frameworks.map((framework) => (\n {\n setValue(currentValue === value ? \"\" : currentValue)\n setOpen(false)\n }}\n >\n {framework.label}\n \n \n ))}\n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/command-demo.tsx",
- "content": "import {\n Calculator,\n Calendar,\n CreditCard,\n Settings,\n Smile,\n User,\n} from \"lucide-react\"\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n} from \"@/registry/default/ui/command\"\n\nexport function CommandDemo() {\n return (\n \n \n \n No results found. \n \n \n \n Calendar \n \n \n \n Search Emoji \n \n \n \n Calculator \n \n \n \n \n \n \n Profile \n ⌘P \n \n \n \n Billing \n ⌘B \n \n \n \n Settings \n ⌘S \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/context-menu-demo.tsx",
- "content": "import {\n ContextMenu,\n ContextMenuCheckboxItem,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuLabel,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuTrigger,\n} from \"@/registry/default/ui/context-menu\"\n\nexport function ContextMenuDemo() {\n return (\n \n \n Right click here\n \n \n \n Back\n ⌘[ \n \n \n Forward\n ⌘] \n \n \n Reload\n ⌘R \n \n \n More Tools \n \n \n Save Page As...\n ⇧⌘S \n \n Create Shortcut... \n Name Window... \n \n Developer Tools \n \n \n \n \n Show Bookmarks Bar\n ⌘⇧B \n \n Show Full URLs \n \n \n People \n \n \n Pedro Duarte\n \n Colm Tuite \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/date-picker-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { CalendarIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport { Calendar } from \"@/registry/default/ui/calendar\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\nexport function DatePickerDemo() {\n const [date, setDate] = React.useState()\n\n return (\n \n \n \n \n {date ? format(date, \"PPP\") : Pick a date }\n \n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/dialog-demo.tsx",
- "content": "import { Button } from \"@/registry/default/ui/button\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/registry/default/ui/dialog\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\n\nexport function DialogDemo() {\n return (\n \n \n Edit Profile \n \n \n \n Edit profile \n \n Make changes to your profile here. Click save when you're done.\n \n \n \n \n Save changes \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/drawer-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Minus, Plus } from \"lucide-react\"\nimport { Bar, BarChart, ResponsiveContainer } from \"recharts\"\n\nimport { Button } from \"@/registry/default/ui/button\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/default/ui/drawer\"\n\nconst data = [\n {\n goal: 400,\n },\n {\n goal: 300,\n },\n {\n goal: 200,\n },\n {\n goal: 300,\n },\n {\n goal: 200,\n },\n {\n goal: 278,\n },\n {\n goal: 189,\n },\n {\n goal: 239,\n },\n {\n goal: 300,\n },\n {\n goal: 200,\n },\n {\n goal: 278,\n },\n {\n goal: 189,\n },\n {\n goal: 349,\n },\n]\n\nexport function DrawerDemo() {\n const [goal, setGoal] = React.useState(350)\n\n function onClick(adjustment: number) {\n setGoal(Math.max(200, Math.min(400, goal + adjustment)))\n }\n\n return (\n \n \n Open Drawer \n \n \n \n
\n Move Goal \n Set your daily activity goal. \n \n
\n
\n
onClick(-10)}\n disabled={goal <= 200}\n >\n \n Decrease \n \n
\n
\n {goal}\n
\n
\n Calories/day\n
\n
\n
onClick(10)}\n disabled={goal >= 400}\n >\n \n Increase \n \n
\n
\n \n \n \n \n \n
\n
\n
\n Submit \n \n Cancel \n \n \n
\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/dropdown-menu-demo.tsx",
- "content": "import { Button } from \"@/registry/default/ui/button\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"@/registry/default/ui/dropdown-menu\"\n\nexport function DropdownMenuDemo() {\n return (\n \n \n Open \n \n \n My Account \n \n \n \n Profile\n ⇧⌘P \n \n \n Billing\n ⌘B \n \n \n Settings\n ⌘S \n \n \n Keyboard shortcuts\n ⌘K \n \n \n \n \n Team \n \n Invite users \n \n \n Email \n Message \n \n More... \n \n \n \n \n New Team\n ⌘+T \n \n \n \n GitHub \n Support \n API \n \n \n Log out\n ⇧⌘Q \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/hover-card-demo.tsx",
- "content": "import { CalendarIcon } from \"lucide-react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/default/ui/avatar\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport {\n HoverCard,\n HoverCardContent,\n HoverCardTrigger,\n} from \"@/registry/default/ui/hover-card\"\n\nexport function HoverCardDemo() {\n return (\n \n \n @nextjs \n \n \n \n
\n \n VC \n \n
\n
@nextjs \n
\n The React Framework – created and maintained by @vercel.\n
\n
\n {\" \"}\n \n Joined December 2021\n \n
\n
\n
\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/input-demo.tsx",
- "content": "import { Input } from \"@/registry/default/ui/input\"\n\nexport function InputDemo() {\n return \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/input-otp-demo.tsx",
- "content": "import {\n InputOTP,\n InputOTPGroup,\n InputOTPSeparator,\n InputOTPSlot,\n} from \"@/registry/default/ui/input-otp\"\n\nexport function InputOTPDemo() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/label-demo.tsx",
- "content": "import { Checkbox } from \"@/registry/default/ui/checkbox\"\nimport { Label } from \"@/registry/default/ui/label\"\n\nexport function LabelDemo() {\n return (\n \n
\n \n Accept terms and conditions \n
\n
\n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/menubar-demo.tsx",
- "content": "import {\n Menubar,\n MenubarCheckboxItem,\n MenubarContent,\n MenubarItem,\n MenubarMenu,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSeparator,\n MenubarShortcut,\n MenubarSub,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarTrigger,\n} from \"@/registry/default/ui/menubar\"\n\nexport function MenubarDemo() {\n return (\n \n \n File \n \n \n New Tab ⌘T \n \n \n New Window ⌘N \n \n New Incognito Window \n \n \n Share \n \n Email link \n Messages \n Notes \n \n \n \n \n Print... ⌘P \n \n \n \n \n Edit \n \n \n Undo ⌘Z \n \n \n Redo ⇧⌘Z \n \n \n \n Find \n \n Search the web \n \n Find... \n Find Next \n Find Previous \n \n \n \n Cut \n Copy \n Paste \n \n \n \n View \n \n Always Show Bookmarks Bar \n \n Always Show Full URLs\n \n \n \n Reload ⌘R \n \n \n Force Reload ⇧⌘R \n \n \n Toggle Fullscreen \n \n Hide Sidebar \n \n \n \n Profiles \n \n \n Andy \n Benoit \n Luis \n \n \n Edit... \n \n Add Profile... \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/navigation-menu-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport Link from \"next/link\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n} from \"@/registry/default/ui/navigation-menu\"\n\nconst components: { title: string; href: string; description: string }[] = [\n {\n title: \"Alert Dialog\",\n href: \"/docs/primitives/alert-dialog\",\n description:\n \"A modal dialog that interrupts the user with important content and expects a response.\",\n },\n {\n title: \"Hover Card\",\n href: \"/docs/primitives/hover-card\",\n description:\n \"For sighted users to preview content available behind a link.\",\n },\n {\n title: \"Progress\",\n href: \"/docs/primitives/progress\",\n description:\n \"Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.\",\n },\n {\n title: \"Scroll-area\",\n href: \"/docs/primitives/scroll-area\",\n description: \"Visually or semantically separates content.\",\n },\n {\n title: \"Tabs\",\n href: \"/docs/primitives/tabs\",\n description:\n \"A set of layered sections of content—known as tab panels—that are displayed one at a time.\",\n },\n {\n title: \"Tooltip\",\n href: \"/docs/primitives/tooltip\",\n description:\n \"A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.\",\n },\n]\n\nexport function NavigationMenuDemo() {\n return (\n \n \n \n Getting started \n \n \n \n \n \n Components \n \n \n {components.map((component) => (\n \n {component.description}\n \n ))}\n \n \n \n \n \n \n Documentation\n \n \n \n \n \n )\n}\n\nconst ListItem = React.forwardRef<\n React.ElementRef<\"a\">,\n React.ComponentPropsWithoutRef<\"a\">\n>(({ className, title, children, ...props }, ref) => {\n return (\n \n \n \n {title}
\n \n {children}\n
\n \n \n \n )\n})\nListItem.displayName = \"ListItem\"\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/pagination-demo.tsx",
- "content": "import {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n} from \"@/registry/default/ui/pagination\"\n\nexport function PaginationDemo() {\n return (\n \n \n \n \n \n \n 1 \n \n \n \n 2\n \n \n \n 3 \n \n \n \n \n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/popover-demo.tsx",
- "content": "import { Button } from \"@/registry/default/ui/button\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/default/ui/popover\"\n\nexport function PopoverDemo() {\n return (\n \n \n Open popover \n \n \n \n
\n
Dimensions \n
\n Set the dimensions for the layer.\n
\n
\n
\n
\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/progress-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Progress } from \"@/registry/default/ui/progress\"\n\nexport function ProgressDemo() {\n const [progress, setProgress] = React.useState(13)\n\n React.useEffect(() => {\n const timer = setTimeout(() => setProgress(66), 500)\n return () => clearTimeout(timer)\n }, [])\n\n return \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/radio-group-demo.tsx",
- "content": "import { Label } from \"@/registry/default/ui/label\"\nimport { RadioGroup, RadioGroupItem } from \"@/registry/default/ui/radio-group\"\n\nexport function RadioGroupDemo() {\n return (\n \n \n \n Default \n
\n \n \n Comfortable \n
\n \n \n Compact \n
\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/resizable-handle.tsx",
- "content": "import {\n ResizableHandle,\n ResizablePanel,\n ResizablePanelGroup,\n} from \"@/registry/default/ui/resizable\"\n\nexport function ResizableHandleDemo() {\n return (\n \n \n \n Sidebar \n
\n \n \n \n \n Content \n
\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/scroll-area-demo.tsx",
- "content": "import * as React from \"react\"\n\nimport { ScrollArea } from \"@/registry/default/ui/scroll-area\"\nimport { Separator } from \"@/registry/default/ui/separator\"\n\nconst tags = Array.from({ length: 50 }).map(\n (_, i, a) => `v1.2.0-beta.${a.length - i}`\n)\n\nexport function ScrollAreaDemo() {\n return (\n \n \n
Tags \n {tags.map((tag) => (\n
\n {tag}
\n \n \n ))}\n
\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/select-demo.tsx",
- "content": "import * as React from \"react\"\n\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/default/ui/select\"\n\nexport function SelectDemo() {\n return (\n \n \n \n \n \n \n Fruits \n Apple \n Banana \n Blueberry \n Grapes \n Pineapple \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/separator-demo.tsx",
- "content": "import { Separator } from \"@/registry/default/ui/separator\"\n\nexport function SeparatorDemo() {\n return (\n \n
\n
Radix Primitives \n
\n An open-source UI component library.\n
\n
\n
\n
\n
Blog
\n
\n
Docs
\n
\n
Source
\n
\n
\n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/sheet-demo.tsx",
- "content": "import { Button } from \"@/registry/default/ui/button\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from \"@/registry/default/ui/sheet\"\n\nexport function SheetDemo() {\n return (\n \n \n Open \n \n \n \n Edit profile \n \n Make changes to your profile here. Click save when you're done.\n \n \n \n \n \n Save changes \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/skeleton-demo.tsx",
- "content": "import { Skeleton } from \"@/registry/default/ui/skeleton\"\n\nexport function SkeletonDemo() {\n return (\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/slider-demo.tsx",
- "content": "import { cn } from \"@/lib/utils\"\nimport { Slider } from \"@/registry/default/ui/slider\"\n\ntype SliderProps = React.ComponentProps\n\nexport function SliderDemo({ className, ...props }: SliderProps) {\n return (\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/sonner-demo.tsx",
- "content": "\"use client\"\n\nimport { toast } from \"sonner\"\n\nimport { Button } from \"@/registry/default/ui/button\"\n\nexport function SonnerDemo() {\n return (\n \n toast(\"Event has been created\", {\n description: \"Sunday, December 03, 2023 at 9:00 AM\",\n action: {\n label: \"Undo\",\n onClick: () => console.log(\"Undo\"),\n },\n })\n }\n >\n Show Toast\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/switch-demo.tsx",
- "content": "import { Label } from \"@/registry/default/ui/label\"\nimport { Switch } from \"@/registry/default/ui/switch\"\n\nexport function SwitchDemo() {\n return (\n \n \n Airplane Mode \n
\n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/table-demo.tsx",
- "content": "import {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/registry/default/ui/table\"\n\nconst invoices = [\n {\n invoice: \"INV001\",\n paymentStatus: \"Paid\",\n totalAmount: \"$250.00\",\n paymentMethod: \"Credit Card\",\n },\n {\n invoice: \"INV002\",\n paymentStatus: \"Pending\",\n totalAmount: \"$150.00\",\n paymentMethod: \"PayPal\",\n },\n {\n invoice: \"INV003\",\n paymentStatus: \"Unpaid\",\n totalAmount: \"$350.00\",\n paymentMethod: \"Bank Transfer\",\n },\n {\n invoice: \"INV004\",\n paymentStatus: \"Paid\",\n totalAmount: \"$450.00\",\n paymentMethod: \"Credit Card\",\n },\n {\n invoice: \"INV005\",\n paymentStatus: \"Paid\",\n totalAmount: \"$550.00\",\n paymentMethod: \"PayPal\",\n },\n {\n invoice: \"INV006\",\n paymentStatus: \"Pending\",\n totalAmount: \"$200.00\",\n paymentMethod: \"Bank Transfer\",\n },\n {\n invoice: \"INV007\",\n paymentStatus: \"Unpaid\",\n totalAmount: \"$300.00\",\n paymentMethod: \"Credit Card\",\n },\n]\n\nexport function TableDemo() {\n return (\n \n A list of your recent invoices. \n \n \n Invoice \n Status \n Method \n Amount \n \n \n \n {invoices.map((invoice) => (\n \n {invoice.invoice} \n {invoice.paymentStatus} \n {invoice.paymentMethod} \n {invoice.totalAmount} \n \n ))}\n \n \n \n Total \n $2,500.00 \n \n \n
\n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/tabs-demo.tsx",
- "content": "import { Button } from \"@/registry/default/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/default/ui/card\"\nimport { Input } from \"@/registry/default/ui/input\"\nimport { Label } from \"@/registry/default/ui/label\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/registry/default/ui/tabs\"\n\nexport function TabsDemo() {\n return (\n \n \n Account \n Password \n \n \n \n \n Account \n \n Make changes to your account here. Click save when you're done.\n \n \n \n \n Name \n \n
\n \n Username \n \n
\n \n \n Save changes \n \n \n \n \n \n \n Password \n \n Change your password here. After saving, you'll be logged out.\n \n \n \n \n Current password \n \n
\n \n New password \n \n
\n \n \n Save password \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/textarea-demo.tsx",
- "content": "import { Textarea } from \"@/registry/default/ui/textarea\"\n\nexport function TextareaDemo() {\n return \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/toast-demo.tsx",
- "content": "\"use client\"\n\nimport { useToast } from \"@/registry/default/hooks/use-toast\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport { ToastAction } from \"@/registry/default/ui/toast\"\n\nexport function ToastDemo() {\n const { toast } = useToast()\n\n return (\n {\n toast({\n title: \"Scheduled: Catch up \",\n description: \"Friday, February 10, 2023 at 5:57 PM\",\n action: (\n Undo \n ),\n })\n }}\n >\n Add to calendar\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/toggle-demo.tsx",
- "content": "import { Bold } from \"lucide-react\"\n\nimport { Toggle } from \"@/registry/default/ui/toggle\"\n\nexport function ToggleDemo() {\n return (\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/toggle-group-demo.tsx",
- "content": "import { Bold, Italic, Underline } from \"lucide-react\"\n\nimport {\n ToggleGroup,\n ToggleGroupItem,\n} from \"@/registry/default/ui/toggle-group\"\n\nexport function ToggleGroupDemo() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/tooltip-demo.tsx",
- "content": "import { Button } from \"@/registry/default/ui/button\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/registry/default/ui/tooltip\"\n\nexport function TooltipDemo() {\n return (\n \n \n \n Hover \n \n \n Add to library
\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/badge-destructive.tsx",
- "content": "import { Badge } from \"@/registry/default/ui/badge\"\n\nexport function BadgeDestructive() {\n return Destructive \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/badge-outline.tsx",
- "content": "import { Badge } from \"@/registry/default/ui/badge\"\n\nexport function BadgeOutline() {\n return Outline \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/badge-secondary.tsx",
- "content": "import { Badge } from \"@/registry/default/ui/badge\"\n\nexport function BadgeSecondary() {\n return Secondary \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-destructive.tsx",
- "content": "import { Button } from \"@/registry/default/ui/button\"\n\nexport function ButtonDestructive() {\n return Destructive \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-ghost.tsx",
- "content": "import { Button } from \"@/registry/default/ui/button\"\n\nexport function ButtonGhost() {\n return Ghost \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-link.tsx",
- "content": "import { Button } from \"@/registry/default/ui/button\"\n\nexport function ButtonLink() {\n return Link \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-loading.tsx",
- "content": "import { Loader2 } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\n\nexport function ButtonLoading() {\n return (\n \n \n Please wait\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-outline.tsx",
- "content": "import { Button } from \"@/registry/default/ui/button\"\n\nexport function ButtonOutline() {\n return Outline \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-secondary.tsx",
- "content": "import { Button } from \"@/registry/default/ui/button\"\n\nexport function ButtonSecondary() {\n return Secondary \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-with-icon.tsx",
- "content": "import { MailOpen } from \"lucide-react\"\n\nimport { Button } from \"@/registry/default/ui/button\"\n\nexport function ButtonWithIcon() {\n return (\n \n Login with Email\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/toggle-disabled.tsx",
- "content": "import { Underline } from \"lucide-react\"\n\nimport { Toggle } from \"@/registry/default/ui/toggle\"\n\nexport function ToggleDisabled() {\n return (\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/toggle-outline.tsx",
- "content": "import { Italic } from \"lucide-react\"\n\nimport { Toggle } from \"@/registry/default/ui/toggle\"\n\nexport function ToggleOutline() {\n return (\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/toggle-with-text.tsx",
- "content": "import { Italic } from \"lucide-react\"\n\nimport { Toggle } from \"@/registry/default/ui/toggle\"\n\nexport function ToggleWithText() {\n return (\n \n \n Italic\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- }
- ]
-}
\ No newline at end of file
diff --git a/apps/v4/public/r/styles/new-york/registry.json b/apps/v4/public/r/styles/new-york/registry.json
index 561bec85d8..fee87c19bb 100644
--- a/apps/v4/public/r/styles/new-york/registry.json
+++ b/apps/v4/public/r/styles/new-york/registry.json
@@ -4153,390 +4153,6 @@
}
}
},
- {
- "name": "sink",
- "type": "registry:internal",
- "registryDependencies": [
- "accordion",
- "alert",
- "alert-dialog",
- "aspect-ratio",
- "avatar",
- "badge",
- "breadcrumb",
- "button",
- "calendar",
- "card",
- "carousel",
- "chart",
- "checkbox",
- "collapsible",
- "command",
- "context-menu",
- "dialog",
- "drawer",
- "dropdown-menu",
- "hover-card",
- "input",
- "input-otp",
- "label",
- "menubar",
- "navigation-menu",
- "pagination",
- "popover",
- "progress",
- "radio-group",
- "resizable",
- "scroll-area",
- "select",
- "separator",
- "sheet",
- "sidebar",
- "skeleton",
- "slider",
- "sonner",
- "switch",
- "table",
- "tabs",
- "textarea",
- "toast",
- "toggle",
- "toggle-group",
- "tooltip"
- ],
- "files": [
- {
- "path": "registry/new-york/internal/sink/page.tsx",
- "type": "registry:page",
- "target": "app/sink/page.tsx"
- },
- {
- "path": "registry/new-york/internal/sink/components/app-sidebar.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/component-wrapper.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/nav-main.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/nav-projects.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/nav-user.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/team-switcher.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/accordion-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/alert-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/alert-dialog-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/aspect-ratio-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/avatar-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/badge-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/breadcrumb-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/button-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/calendar-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/card-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/carousel-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/checkbox-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/collapsible-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/combobox-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/command-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/context-menu-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/date-picker-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/dialog-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/drawer-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/dropdown-menu-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/hover-card-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/input-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/input-otp-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/label-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/menubar-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/navigation-menu-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/pagination-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/popover-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/progress-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/radio-group-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/resizable-handle.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/scroll-area-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/select-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/separator-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/sheet-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/skeleton-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/slider-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/sonner-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/switch-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/table-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/tabs-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/textarea-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/toast-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/toggle-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/toggle-group-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/tooltip-demo.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/badge-destructive.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/badge-outline.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/badge-secondary.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/button-destructive.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/button-ghost.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/button-link.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/button-loading.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/button-outline.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/button-secondary.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/button-with-icon.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/toggle-disabled.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/toggle-outline.tsx",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "registry/new-york/internal/sink/components/toggle-with-text.tsx",
- "type": "registry:component",
- "target": ""
- }
- ]
- },
{
"name": "sidebar-demo",
"type": "registry:internal",
@@ -7035,4 +6651,4 @@
]
}
]
-}
\ No newline at end of file
+}
diff --git a/apps/v4/public/r/styles/new-york/sink.json b/apps/v4/public/r/styles/new-york/sink.json
deleted file mode 100644
index dd7bdb1263..0000000000
--- a/apps/v4/public/r/styles/new-york/sink.json
+++ /dev/null
@@ -1,452 +0,0 @@
-{
- "$schema": "https://ui.shadcn.com/schema/registry-item.json",
- "name": "sink",
- "type": "registry:internal",
- "author": "shadcn (https://ui.shadcn.com)",
- "registryDependencies": [
- "accordion",
- "alert",
- "alert-dialog",
- "aspect-ratio",
- "avatar",
- "badge",
- "breadcrumb",
- "button",
- "calendar",
- "card",
- "carousel",
- "chart",
- "checkbox",
- "collapsible",
- "command",
- "context-menu",
- "dialog",
- "drawer",
- "dropdown-menu",
- "hover-card",
- "input",
- "input-otp",
- "label",
- "menubar",
- "navigation-menu",
- "pagination",
- "popover",
- "progress",
- "radio-group",
- "resizable",
- "scroll-area",
- "select",
- "separator",
- "sheet",
- "sidebar",
- "skeleton",
- "slider",
- "sonner",
- "switch",
- "table",
- "tabs",
- "textarea",
- "toast",
- "toggle",
- "toggle-group",
- "tooltip"
- ],
- "files": [
- {
- "path": "internal/sink/page.tsx",
- "content": "import { AccordionDemo } from \"@/registry/new-york/internal/sink/components/accordion-demo\"\nimport { AlertDemo } from \"@/registry/new-york/internal/sink/components/alert-demo\"\nimport { AlertDialogDemo } from \"@/registry/new-york/internal/sink/components/alert-dialog-demo\"\nimport { AppSidebar } from \"@/registry/new-york/internal/sink/components/app-sidebar\"\nimport { AspectRatioDemo } from \"@/registry/new-york/internal/sink/components/aspect-ratio-demo\"\nimport { AvatarDemo } from \"@/registry/new-york/internal/sink/components/avatar-demo\"\nimport { BadgeDemo } from \"@/registry/new-york/internal/sink/components/badge-demo\"\nimport { BadgeDestructive } from \"@/registry/new-york/internal/sink/components/badge-destructive\"\nimport { BadgeOutline } from \"@/registry/new-york/internal/sink/components/badge-outline\"\nimport { BadgeSecondary } from \"@/registry/new-york/internal/sink/components/badge-secondary\"\nimport { BreadcrumbDemo } from \"@/registry/new-york/internal/sink/components/breadcrumb-demo\"\nimport { ButtonDemo } from \"@/registry/new-york/internal/sink/components/button-demo\"\nimport { ButtonDestructive } from \"@/registry/new-york/internal/sink/components/button-destructive\"\nimport { ButtonGhost } from \"@/registry/new-york/internal/sink/components/button-ghost\"\nimport { ButtonLink } from \"@/registry/new-york/internal/sink/components/button-link\"\nimport { ButtonLoading } from \"@/registry/new-york/internal/sink/components/button-loading\"\nimport { ButtonOutline } from \"@/registry/new-york/internal/sink/components/button-outline\"\nimport { ButtonSecondary } from \"@/registry/new-york/internal/sink/components/button-secondary\"\nimport { ButtonWithIcon } from \"@/registry/new-york/internal/sink/components/button-with-icon\"\nimport { CalendarDemo } from \"@/registry/new-york/internal/sink/components/calendar-demo\"\nimport { CardDemo } from \"@/registry/new-york/internal/sink/components/card-demo\"\nimport { CarouselDemo } from \"@/registry/new-york/internal/sink/components/carousel-demo\"\nimport { CheckboxDemo } from \"@/registry/new-york/internal/sink/components/checkbox-demo\"\nimport { CollapsibleDemo } from \"@/registry/new-york/internal/sink/components/collapsible-demo\"\nimport { ComboboxDemo } from \"@/registry/new-york/internal/sink/components/combobox-demo\"\nimport { CommandDemo } from \"@/registry/new-york/internal/sink/components/command-demo\"\nimport { ComponentWrapper } from \"@/registry/new-york/internal/sink/components/component-wrapper\"\nimport { ContextMenuDemo } from \"@/registry/new-york/internal/sink/components/context-menu-demo\"\nimport { DatePickerDemo } from \"@/registry/new-york/internal/sink/components/date-picker-demo\"\nimport { DialogDemo } from \"@/registry/new-york/internal/sink/components/dialog-demo\"\nimport { DrawerDemo } from \"@/registry/new-york/internal/sink/components/drawer-demo\"\nimport { DropdownMenuDemo } from \"@/registry/new-york/internal/sink/components/dropdown-menu-demo\"\nimport { HoverCardDemo } from \"@/registry/new-york/internal/sink/components/hover-card-demo\"\nimport { InputDemo } from \"@/registry/new-york/internal/sink/components/input-demo\"\nimport { InputOTPDemo } from \"@/registry/new-york/internal/sink/components/input-otp-demo\"\nimport { LabelDemo } from \"@/registry/new-york/internal/sink/components/label-demo\"\nimport { MenubarDemo } from \"@/registry/new-york/internal/sink/components/menubar-demo\"\nimport { NavigationMenuDemo } from \"@/registry/new-york/internal/sink/components/navigation-menu-demo\"\nimport { PaginationDemo } from \"@/registry/new-york/internal/sink/components/pagination-demo\"\nimport { PopoverDemo } from \"@/registry/new-york/internal/sink/components/popover-demo\"\nimport { ProgressDemo } from \"@/registry/new-york/internal/sink/components/progress-demo\"\nimport { RadioGroupDemo } from \"@/registry/new-york/internal/sink/components/radio-group-demo\"\nimport { ResizableHandleDemo } from \"@/registry/new-york/internal/sink/components/resizable-handle\"\nimport { ScrollAreaDemo } from \"@/registry/new-york/internal/sink/components/scroll-area-demo\"\nimport { SelectDemo } from \"@/registry/new-york/internal/sink/components/select-demo\"\nimport { SeparatorDemo } from \"@/registry/new-york/internal/sink/components/separator-demo\"\nimport { SheetDemo } from \"@/registry/new-york/internal/sink/components/sheet-demo\"\nimport { SkeletonDemo } from \"@/registry/new-york/internal/sink/components/skeleton-demo\"\nimport { SliderDemo } from \"@/registry/new-york/internal/sink/components/slider-demo\"\nimport { SonnerDemo } from \"@/registry/new-york/internal/sink/components/sonner-demo\"\nimport { SwitchDemo } from \"@/registry/new-york/internal/sink/components/switch-demo\"\nimport { TableDemo } from \"@/registry/new-york/internal/sink/components/table-demo\"\nimport { TabsDemo } from \"@/registry/new-york/internal/sink/components/tabs-demo\"\nimport { TextareaDemo } from \"@/registry/new-york/internal/sink/components/textarea-demo\"\nimport { ToastDemo } from \"@/registry/new-york/internal/sink/components/toast-demo\"\nimport { ToggleDemo } from \"@/registry/new-york/internal/sink/components/toggle-demo\"\nimport { ToggleDisabled } from \"@/registry/new-york/internal/sink/components/toggle-disabled\"\nimport { ToggleGroupDemo } from \"@/registry/new-york/internal/sink/components/toggle-group-demo\"\nimport { ToggleOutline } from \"@/registry/new-york/internal/sink/components/toggle-outline\"\nimport { ToggleWithText } from \"@/registry/new-york/internal/sink/components/toggle-with-text\"\nimport { TooltipDemo } from \"@/registry/new-york/internal/sink/components/tooltip-demo\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/registry/new-york/ui/breadcrumb\"\nimport { Separator } from \"@/registry/new-york/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/registry/new-york/ui/sidebar\"\n\nexport default function SinkPage() {\n return (\n \n \n \n \n \n
\n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n \n
\n \n \n
\n \n \n \n \n \n
\n \n \n \n \n
\n \n \n
\n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n \n \n \n
\n \n
\n \n \n
\n \n \n
\n
\n \n \n )\n}\n",
- "type": "registry:page",
- "target": "app/sink/page.tsx"
- },
- {
- "path": "internal/sink/components/app-sidebar.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n AudioWaveform,\n BookOpen,\n Bot,\n Command,\n Frame,\n GalleryVerticalEnd,\n Map,\n PieChart,\n Settings2,\n SquareTerminal,\n} from \"lucide-react\"\n\nimport { NavMain } from \"@/registry/new-york/blocks/sidebar-07/components/nav-main\"\nimport { NavProjects } from \"@/registry/new-york/blocks/sidebar-07/components/nav-projects\"\nimport { NavUser } from \"@/registry/new-york/blocks/sidebar-07/components/nav-user\"\nimport { TeamSwitcher } from \"@/registry/new-york/blocks/sidebar-07/components/team-switcher\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarHeader,\n SidebarRail,\n} from \"@/registry/new-york/ui/sidebar\"\n\n// This is sample data.\nconst data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n teams: [\n {\n name: \"Acme Inc\",\n logo: GalleryVerticalEnd,\n plan: \"Enterprise\",\n },\n {\n name: \"Acme Corp.\",\n logo: AudioWaveform,\n plan: \"Startup\",\n },\n {\n name: \"Evil Corp.\",\n logo: Command,\n plan: \"Free\",\n },\n ],\n navMain: [\n {\n title: \"Playground\",\n url: \"#\",\n icon: SquareTerminal,\n isActive: true,\n items: [\n {\n title: \"History\",\n url: \"#\",\n },\n {\n title: \"Starred\",\n url: \"#\",\n },\n {\n title: \"Settings\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Models\",\n url: \"#\",\n icon: Bot,\n items: [\n {\n title: \"Genesis\",\n url: \"#\",\n },\n {\n title: \"Explorer\",\n url: \"#\",\n },\n {\n title: \"Quantum\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Documentation\",\n url: \"#\",\n icon: BookOpen,\n items: [\n {\n title: \"Introduction\",\n url: \"#\",\n },\n {\n title: \"Get Started\",\n url: \"#\",\n },\n {\n title: \"Tutorials\",\n url: \"#\",\n },\n {\n title: \"Changelog\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: Settings2,\n items: [\n {\n title: \"General\",\n url: \"#\",\n },\n {\n title: \"Team\",\n url: \"#\",\n },\n {\n title: \"Billing\",\n url: \"#\",\n },\n {\n title: \"Limits\",\n url: \"#\",\n },\n ],\n },\n ],\n projects: [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: Frame,\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: PieChart,\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: Map,\n },\n ],\n}\n\nexport function AppSidebar({ ...props }: React.ComponentProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/component-wrapper.tsx",
- "content": "import { cn } from \"@/registry/new-york/lib/utils\"\n\nexport function ComponentWrapper({\n className,\n name,\n children,\n ...props\n}: React.ComponentPropsWithoutRef<\"div\"> & { name: string }) {\n return (\n \n
\n
div]:max-w-full\">\n {children}\n
\n
\n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/nav-main.tsx",
- "content": "\"use client\"\n\nimport { ChevronRight, type LucideIcon } from \"lucide-react\"\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/new-york/ui/collapsible\"\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/registry/new-york/ui/sidebar\"\n\nexport function NavMain({\n items,\n}: {\n items: {\n title: string\n url: string\n icon?: LucideIcon\n isActive?: boolean\n items?: {\n title: string\n url: string\n }[]\n }[]\n}) {\n return (\n \n Platform \n \n {items.map((item) => (\n \n \n \n \n {item.icon && }\n {item.title} \n \n \n \n \n \n {item.items?.map((subItem) => (\n \n \n \n {subItem.title} \n \n \n \n ))}\n \n \n \n \n ))}\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/nav-projects.tsx",
- "content": "\"use client\"\n\nimport {\n Folder,\n Forward,\n MoreHorizontal,\n Trash2,\n type LucideIcon,\n} from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/new-york/ui/dropdown-menu\"\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/registry/new-york/ui/sidebar\"\n\nexport function NavProjects({\n projects,\n}: {\n projects: {\n name: string\n url: string\n icon: LucideIcon\n }[]\n}) {\n const { isMobile } = useSidebar()\n\n return (\n \n Projects \n \n {projects.map((item) => (\n \n \n \n \n {item.name} \n \n \n \n \n \n \n More \n \n \n \n \n \n View Project \n \n \n \n Share Project \n \n \n \n \n Delete Project \n \n \n \n \n ))}\n \n \n \n More \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/nav-user.tsx",
- "content": "\"use client\"\n\nimport {\n BadgeCheck,\n Bell,\n ChevronsUpDown,\n CreditCard,\n LogOut,\n Sparkles,\n} from \"lucide-react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/new-york/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/new-york/ui/dropdown-menu\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/registry/new-york/ui/sidebar\"\n\nexport function NavUser({\n user,\n}: {\n user: {\n name: string\n email: string\n avatar: string\n }\n}) {\n const { isMobile } = useSidebar()\n\n return (\n \n \n \n \n \n \n \n CN \n \n \n {user.name} \n {user.email} \n
\n \n \n \n \n \n \n
\n \n CN \n \n
\n {user.name} \n {user.email} \n
\n
\n \n \n \n \n \n Upgrade to Pro\n \n \n \n \n \n \n Account\n \n \n \n Billing\n \n \n \n Notifications\n \n \n \n \n \n Log out\n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/team-switcher.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronsUpDown, Plus } from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from \"@/registry/new-york/ui/dropdown-menu\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/registry/new-york/ui/sidebar\"\n\nexport function TeamSwitcher({\n teams,\n}: {\n teams: {\n name: string\n logo: React.ElementType\n plan: string\n }[]\n}) {\n const { isMobile } = useSidebar()\n const [activeTeam, setActiveTeam] = React.useState(teams[0])\n\n if (!activeTeam) {\n return null\n }\n\n return (\n \n \n \n \n \n \n \n \n {activeTeam.name}\n \n {activeTeam.plan} \n
\n \n \n \n \n \n Teams\n \n {teams.map((team, index) => (\n setActiveTeam(team)}\n className=\"gap-2 p-2\"\n >\n \n \n
\n {team.name}\n ⌘{index + 1} \n \n ))}\n \n \n \n Add team
\n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/accordion-demo.tsx",
- "content": "import {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"@/registry/new-york/ui/accordion\"\n\nexport function AccordionDemo() {\n return (\n \n \n Is it accessible? \n \n Yes. It adheres to the WAI-ARIA design pattern.\n \n \n \n Is it styled? \n \n Yes. It comes with default styles that matches the other\n components' aesthetic.\n \n \n \n Is it animated? \n \n Yes. It's animated by default, but you can disable it if you prefer.\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/alert-demo.tsx",
- "content": "import { Terminal } from \"lucide-react\"\n\nimport {\n Alert,\n AlertDescription,\n AlertTitle,\n} from \"@/registry/new-york/ui/alert\"\n\nexport function AlertDemo() {\n return (\n \n \n Heads up! \n \n You can add components to your app using the cli.\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/alert-dialog-demo.tsx",
- "content": "import {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from \"@/registry/new-york/ui/alert-dialog\"\nimport { Button } from \"@/registry/new-york/ui/button\"\n\nexport function AlertDialogDemo() {\n return (\n \n \n Show Dialog \n \n \n \n Are you absolutely sure? \n \n This action cannot be undone. This will permanently delete your\n account and remove your data from our servers.\n \n \n \n Cancel \n Continue \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/aspect-ratio-demo.tsx",
- "content": "import Image from \"next/image\"\n\nimport { AspectRatio } from \"@/registry/new-york/ui/aspect-ratio\"\n\nexport function AspectRatioDemo() {\n return (\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/avatar-demo.tsx",
- "content": "import {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/new-york/ui/avatar\"\n\nexport function AvatarDemo() {\n return (\n \n \n CN \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/badge-demo.tsx",
- "content": "import { Badge } from \"@/registry/new-york/ui/badge\"\n\nexport function BadgeDemo() {\n return Badge \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/breadcrumb-demo.tsx",
- "content": "import {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/registry/new-york/ui/breadcrumb\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/new-york/ui/dropdown-menu\"\n\nexport function BreadcrumbDemo() {\n return (\n \n \n \n Home \n \n \n \n \n \n \n Toggle menu \n \n \n Documentation \n Themes \n GitHub \n \n \n \n \n \n Components \n \n \n \n Breadcrumb \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-demo.tsx",
- "content": "import { Button } from \"@/registry/new-york/ui/button\"\n\nexport function ButtonDemo() {\n return Button \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/calendar-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/registry/new-york/ui/calendar\"\n\nexport function CalendarDemo() {\n const [date, setDate] = React.useState(new Date())\n\n return (\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/card-demo.tsx",
- "content": "import { BellRing, Check } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/new-york/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/new-york/ui/card\"\nimport { Switch } from \"@/registry/new-york/ui/switch\"\n\nconst notifications = [\n {\n title: \"Your call has been confirmed.\",\n description: \"1 hour ago\",\n },\n {\n title: \"You have a new message!\",\n description: \"1 hour ago\",\n },\n {\n title: \"Your subscription is expiring soon!\",\n description: \"2 hours ago\",\n },\n]\n\ntype CardProps = React.ComponentProps\n\nexport function CardDemo({ className, ...props }: CardProps) {\n return (\n \n \n Notifications \n You have 3 unread messages. \n \n \n \n
\n
\n
\n Push Notifications\n
\n
\n Send notifications to device.\n
\n
\n
\n
\n \n {notifications.map((notification, index) => (\n
\n
\n
\n
\n {notification.title}\n
\n
\n {notification.description}\n
\n
\n
\n ))}\n
\n \n \n \n Mark all as read\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/carousel-demo.tsx",
- "content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/registry/new-york/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/registry/new-york/ui/carousel\"\n\nexport function CarouselDemo() {\n return (\n \n \n {Array.from({ length: 5 }).map((_, index) => (\n \n \n \n \n {index + 1} \n \n \n
\n \n ))}\n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/checkbox-demo.tsx",
- "content": "\"use client\"\n\nimport { Checkbox } from \"@/registry/new-york/ui/checkbox\"\n\nexport function CheckboxDemo() {\n return (\n \n \n \n Accept terms and conditions\n \n
\n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/collapsible-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronsUpDown } from \"lucide-react\"\n\nimport { Button } from \"@/registry/new-york/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/new-york/ui/collapsible\"\n\nexport function CollapsibleDemo() {\n const [isOpen, setIsOpen] = React.useState(false)\n\n return (\n \n \n
\n @peduarte starred 3 repositories\n \n \n \n \n Toggle \n \n \n \n \n @radix-ui/primitives\n
\n \n \n @radix-ui/colors\n
\n \n @stitches/react\n
\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/combobox-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronsUpDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/new-york/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/new-york/ui/command\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/new-york/ui/popover\"\n\nconst frameworks = [\n {\n value: \"next.js\",\n label: \"Next.js\",\n },\n {\n value: \"sveltekit\",\n label: \"SvelteKit\",\n },\n {\n value: \"nuxt.js\",\n label: \"Nuxt.js\",\n },\n {\n value: \"remix\",\n label: \"Remix\",\n },\n {\n value: \"astro\",\n label: \"Astro\",\n },\n]\n\nexport function ComboboxDemo() {\n const [open, setOpen] = React.useState(false)\n const [value, setValue] = React.useState(\"\")\n\n return (\n \n \n \n {value\n ? frameworks.find((framework) => framework.value === value)?.label\n : \"Select framework...\"}\n \n \n \n \n \n \n \n No framework found. \n \n {frameworks.map((framework) => (\n {\n setValue(currentValue === value ? \"\" : currentValue)\n setOpen(false)\n }}\n >\n {framework.label}\n \n \n ))}\n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/command-demo.tsx",
- "content": "import {\n Calculator,\n Calendar,\n CreditCard,\n Settings,\n Smile,\n User,\n} from \"lucide-react\"\n\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n} from \"@/registry/new-york/ui/command\"\n\nexport function CommandDemo() {\n return (\n \n \n \n No results found. \n \n \n \n Calendar \n \n \n \n Search Emoji \n \n \n \n Calculator \n \n \n \n \n \n \n Profile \n ⌘P \n \n \n \n Billing \n ⌘B \n \n \n \n Settings \n ⌘S \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/context-menu-demo.tsx",
- "content": "import {\n ContextMenu,\n ContextMenuCheckboxItem,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuLabel,\n ContextMenuRadioGroup,\n ContextMenuRadioItem,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuTrigger,\n} from \"@/registry/new-york/ui/context-menu\"\n\nexport function ContextMenuDemo() {\n return (\n \n \n Right click here\n \n \n \n Back\n ⌘[ \n \n \n Forward\n ⌘] \n \n \n Reload\n ⌘R \n \n \n More Tools \n \n \n Save Page As...\n ⇧⌘S \n \n Create Shortcut... \n Name Window... \n \n Developer Tools \n \n \n \n \n Show Bookmarks Bar\n ⌘⇧B \n \n Show Full URLs \n \n \n People \n \n \n Pedro Duarte\n \n Colm Tuite \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/date-picker-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { CalendarIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/new-york/ui/button\"\nimport { Calendar } from \"@/registry/new-york/ui/calendar\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/new-york/ui/popover\"\n\nexport function DatePickerDemo() {\n const [date, setDate] = React.useState()\n\n return (\n \n \n \n \n {date ? format(date, \"PPP\") : Pick a date }\n \n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/dialog-demo.tsx",
- "content": "import { Button } from \"@/registry/new-york/ui/button\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/registry/new-york/ui/dialog\"\nimport { Input } from \"@/registry/new-york/ui/input\"\nimport { Label } from \"@/registry/new-york/ui/label\"\n\nexport function DialogDemo() {\n return (\n \n \n Edit Profile \n \n \n \n Edit profile \n \n Make changes to your profile here. Click save when you're done.\n \n \n \n \n Save changes \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/drawer-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Minus, Plus } from \"lucide-react\"\nimport { Bar, BarChart, ResponsiveContainer } from \"recharts\"\n\nimport { Button } from \"@/registry/new-york/ui/button\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/new-york/ui/drawer\"\n\nconst data = [\n {\n goal: 400,\n },\n {\n goal: 300,\n },\n {\n goal: 200,\n },\n {\n goal: 300,\n },\n {\n goal: 200,\n },\n {\n goal: 278,\n },\n {\n goal: 189,\n },\n {\n goal: 239,\n },\n {\n goal: 300,\n },\n {\n goal: 200,\n },\n {\n goal: 278,\n },\n {\n goal: 189,\n },\n {\n goal: 349,\n },\n]\n\nexport function DrawerDemo() {\n const [goal, setGoal] = React.useState(350)\n\n function onClick(adjustment: number) {\n setGoal(Math.max(200, Math.min(400, goal + adjustment)))\n }\n\n return (\n \n \n Open Drawer \n \n \n \n
\n Move Goal \n Set your daily activity goal. \n \n
\n
\n
onClick(-10)}\n disabled={goal <= 200}\n >\n \n Decrease \n \n
\n
\n {goal}\n
\n
\n Calories/day\n
\n
\n
onClick(10)}\n disabled={goal >= 400}\n >\n \n Increase \n \n
\n
\n \n \n \n \n \n
\n
\n
\n Submit \n \n Cancel \n \n \n
\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/dropdown-menu-demo.tsx",
- "content": "import { Button } from \"@/registry/new-york/ui/button\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuPortal,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"@/registry/new-york/ui/dropdown-menu\"\n\nexport function DropdownMenuDemo() {\n return (\n \n \n Open \n \n \n My Account \n \n \n \n Profile\n ⇧⌘P \n \n \n Billing\n ⌘B \n \n \n Settings\n ⌘S \n \n \n Keyboard shortcuts\n ⌘K \n \n \n \n \n Team \n \n Invite users \n \n \n Email \n Message \n \n More... \n \n \n \n \n New Team\n ⌘+T \n \n \n \n GitHub \n Support \n API \n \n \n Log out\n ⇧⌘Q \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/hover-card-demo.tsx",
- "content": "import { CalendarIcon } from \"lucide-react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/new-york/ui/avatar\"\nimport { Button } from \"@/registry/new-york/ui/button\"\nimport {\n HoverCard,\n HoverCardContent,\n HoverCardTrigger,\n} from \"@/registry/new-york/ui/hover-card\"\n\nexport function HoverCardDemo() {\n return (\n \n \n @nextjs \n \n \n \n
\n \n VC \n \n
\n
@nextjs \n
\n The React Framework – created and maintained by @vercel.\n
\n
\n {\" \"}\n \n Joined December 2021\n \n
\n
\n
\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/input-demo.tsx",
- "content": "import { Input } from \"@/registry/new-york/ui/input\"\n\nexport function InputDemo() {\n return \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/input-otp-demo.tsx",
- "content": "import {\n InputOTP,\n InputOTPGroup,\n InputOTPSeparator,\n InputOTPSlot,\n} from \"@/registry/new-york/ui/input-otp\"\n\nexport function InputOTPDemo() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/label-demo.tsx",
- "content": "import { Checkbox } from \"@/registry/new-york/ui/checkbox\"\nimport { Label } from \"@/registry/new-york/ui/label\"\n\nexport function LabelDemo() {\n return (\n \n
\n \n Accept terms and conditions \n
\n
\n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/menubar-demo.tsx",
- "content": "import {\n Menubar,\n MenubarCheckboxItem,\n MenubarContent,\n MenubarItem,\n MenubarMenu,\n MenubarRadioGroup,\n MenubarRadioItem,\n MenubarSeparator,\n MenubarShortcut,\n MenubarSub,\n MenubarSubContent,\n MenubarSubTrigger,\n MenubarTrigger,\n} from \"@/registry/new-york/ui/menubar\"\n\nexport function MenubarDemo() {\n return (\n \n \n File \n \n \n New Tab ⌘T \n \n \n New Window ⌘N \n \n New Incognito Window \n \n \n Share \n \n Email link \n Messages \n Notes \n \n \n \n \n Print... ⌘P \n \n \n \n \n Edit \n \n \n Undo ⌘Z \n \n \n Redo ⇧⌘Z \n \n \n \n Find \n \n Search the web \n \n Find... \n Find Next \n Find Previous \n \n \n \n Cut \n Copy \n Paste \n \n \n \n View \n \n Always Show Bookmarks Bar \n \n Always Show Full URLs\n \n \n \n Reload ⌘R \n \n \n Force Reload ⇧⌘R \n \n \n Toggle Fullscreen \n \n Hide Sidebar \n \n \n \n Profiles \n \n \n Andy \n Benoit \n Luis \n \n \n Edit... \n \n Add Profile... \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/navigation-menu-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\nimport Link from \"next/link\"\n\nimport { cn } from \"@/lib/utils\"\nimport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n} from \"@/registry/new-york/ui/navigation-menu\"\n\nconst components: { title: string; href: string; description: string }[] = [\n {\n title: \"Alert Dialog\",\n href: \"/docs/primitives/alert-dialog\",\n description:\n \"A modal dialog that interrupts the user with important content and expects a response.\",\n },\n {\n title: \"Hover Card\",\n href: \"/docs/primitives/hover-card\",\n description:\n \"For sighted users to preview content available behind a link.\",\n },\n {\n title: \"Progress\",\n href: \"/docs/primitives/progress\",\n description:\n \"Displays an indicator showing the completion progress of a task, typically displayed as a progress bar.\",\n },\n {\n title: \"Scroll-area\",\n href: \"/docs/primitives/scroll-area\",\n description: \"Visually or semantically separates content.\",\n },\n {\n title: \"Tabs\",\n href: \"/docs/primitives/tabs\",\n description:\n \"A set of layered sections of content—known as tab panels—that are displayed one at a time.\",\n },\n {\n title: \"Tooltip\",\n href: \"/docs/primitives/tooltip\",\n description:\n \"A popup that displays information related to an element when the element receives keyboard focus or the mouse hovers over it.\",\n },\n]\n\nexport function NavigationMenuDemo() {\n return (\n \n \n \n Getting started \n \n \n \n \n \n Components \n \n \n {components.map((component) => (\n \n {component.description}\n \n ))}\n \n \n \n \n \n \n Documentation\n \n \n \n \n \n )\n}\n\nconst ListItem = React.forwardRef<\n React.ElementRef<\"a\">,\n React.ComponentPropsWithoutRef<\"a\">\n>(({ className, title, children, ...props }, ref) => {\n return (\n \n \n \n {title}
\n \n {children}\n
\n \n \n \n )\n})\nListItem.displayName = \"ListItem\"\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/pagination-demo.tsx",
- "content": "import {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n} from \"@/registry/new-york/ui/pagination\"\n\nexport function PaginationDemo() {\n return (\n \n \n \n \n \n \n 1 \n \n \n \n 2\n \n \n \n 3 \n \n \n \n \n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/popover-demo.tsx",
- "content": "import { Button } from \"@/registry/new-york/ui/button\"\nimport { Input } from \"@/registry/new-york/ui/input\"\nimport { Label } from \"@/registry/new-york/ui/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/new-york/ui/popover\"\n\nexport function PopoverDemo() {\n return (\n \n \n Open popover \n \n \n \n
\n
Dimensions \n
\n Set the dimensions for the layer.\n
\n
\n
\n
\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/progress-demo.tsx",
- "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Progress } from \"@/registry/new-york/ui/progress\"\n\nexport function ProgressDemo() {\n const [progress, setProgress] = React.useState(13)\n\n React.useEffect(() => {\n const timer = setTimeout(() => setProgress(66), 500)\n return () => clearTimeout(timer)\n }, [])\n\n return \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/radio-group-demo.tsx",
- "content": "import { Label } from \"@/registry/new-york/ui/label\"\nimport { RadioGroup, RadioGroupItem } from \"@/registry/new-york/ui/radio-group\"\n\nexport function RadioGroupDemo() {\n return (\n \n \n \n Default \n
\n \n \n Comfortable \n
\n \n \n Compact \n
\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/resizable-handle.tsx",
- "content": "import {\n ResizableHandle,\n ResizablePanel,\n ResizablePanelGroup,\n} from \"@/registry/new-york/ui/resizable\"\n\nexport function ResizableHandleDemo() {\n return (\n \n \n \n Sidebar \n
\n \n \n \n \n Content \n
\n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/scroll-area-demo.tsx",
- "content": "import * as React from \"react\"\n\nimport { ScrollArea } from \"@/registry/new-york/ui/scroll-area\"\nimport { Separator } from \"@/registry/new-york/ui/separator\"\n\nconst tags = Array.from({ length: 50 }).map(\n (_, i, a) => `v1.2.0-beta.${a.length - i}`\n)\n\nexport function ScrollAreaDemo() {\n return (\n \n \n
Tags \n {tags.map((tag) => (\n
\n {tag}
\n \n \n ))}\n
\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/select-demo.tsx",
- "content": "import * as React from \"react\"\n\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/new-york/ui/select\"\n\nexport function SelectDemo() {\n return (\n \n \n \n \n \n \n Fruits \n Apple \n Banana \n Blueberry \n Grapes \n Pineapple \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/separator-demo.tsx",
- "content": "import { Separator } from \"@/registry/new-york/ui/separator\"\n\nexport function SeparatorDemo() {\n return (\n \n
\n
Radix Primitives \n
\n An open-source UI component library.\n
\n
\n
\n
\n
Blog
\n
\n
Docs
\n
\n
Source
\n
\n
\n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/sheet-demo.tsx",
- "content": "import { Button } from \"@/registry/new-york/ui/button\"\nimport { Input } from \"@/registry/new-york/ui/input\"\nimport { Label } from \"@/registry/new-york/ui/label\"\nimport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from \"@/registry/new-york/ui/sheet\"\n\nexport function SheetDemo() {\n return (\n \n \n Open \n \n \n \n Edit profile \n \n Make changes to your profile here. Click save when you're done.\n \n \n \n \n \n Save changes \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/skeleton-demo.tsx",
- "content": "import { Skeleton } from \"@/registry/new-york/ui/skeleton\"\n\nexport function SkeletonDemo() {\n return (\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/slider-demo.tsx",
- "content": "import { cn } from \"@/lib/utils\"\nimport { Slider } from \"@/registry/new-york/ui/slider\"\n\ntype SliderProps = React.ComponentProps\n\nexport function SliderDemo({ className, ...props }: SliderProps) {\n return (\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/sonner-demo.tsx",
- "content": "\"use client\"\n\nimport { toast } from \"sonner\"\n\nimport { Button } from \"@/registry/new-york/ui/button\"\n\nexport function SonnerDemo() {\n return (\n \n toast(\"Event has been created\", {\n description: \"Sunday, December 03, 2023 at 9:00 AM\",\n action: {\n label: \"Undo\",\n onClick: () => console.log(\"Undo\"),\n },\n })\n }\n >\n Show Toast\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/switch-demo.tsx",
- "content": "import { Label } from \"@/registry/new-york/ui/label\"\nimport { Switch } from \"@/registry/new-york/ui/switch\"\n\nexport function SwitchDemo() {\n return (\n \n \n Airplane Mode \n
\n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/table-demo.tsx",
- "content": "import {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/registry/new-york/ui/table\"\n\nconst invoices = [\n {\n invoice: \"INV001\",\n paymentStatus: \"Paid\",\n totalAmount: \"$250.00\",\n paymentMethod: \"Credit Card\",\n },\n {\n invoice: \"INV002\",\n paymentStatus: \"Pending\",\n totalAmount: \"$150.00\",\n paymentMethod: \"PayPal\",\n },\n {\n invoice: \"INV003\",\n paymentStatus: \"Unpaid\",\n totalAmount: \"$350.00\",\n paymentMethod: \"Bank Transfer\",\n },\n {\n invoice: \"INV004\",\n paymentStatus: \"Paid\",\n totalAmount: \"$450.00\",\n paymentMethod: \"Credit Card\",\n },\n {\n invoice: \"INV005\",\n paymentStatus: \"Paid\",\n totalAmount: \"$550.00\",\n paymentMethod: \"PayPal\",\n },\n {\n invoice: \"INV006\",\n paymentStatus: \"Pending\",\n totalAmount: \"$200.00\",\n paymentMethod: \"Bank Transfer\",\n },\n {\n invoice: \"INV007\",\n paymentStatus: \"Unpaid\",\n totalAmount: \"$300.00\",\n paymentMethod: \"Credit Card\",\n },\n]\n\nexport function TableDemo() {\n return (\n \n A list of your recent invoices. \n \n \n Invoice \n Status \n Method \n Amount \n \n \n \n {invoices.map((invoice) => (\n \n {invoice.invoice} \n {invoice.paymentStatus} \n {invoice.paymentMethod} \n {invoice.totalAmount} \n \n ))}\n \n \n \n Total \n $2,500.00 \n \n \n
\n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/tabs-demo.tsx",
- "content": "import { Button } from \"@/registry/new-york/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/new-york/ui/card\"\nimport { Input } from \"@/registry/new-york/ui/input\"\nimport { Label } from \"@/registry/new-york/ui/label\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/registry/new-york/ui/tabs\"\n\nexport function TabsDemo() {\n return (\n \n \n Account \n Password \n \n \n \n \n Account \n \n Make changes to your account here. Click save when you're done.\n \n \n \n \n Name \n \n
\n \n Username \n \n
\n \n \n Save changes \n \n \n \n \n \n \n Password \n \n Change your password here. After saving, you'll be logged out.\n \n \n \n \n Current password \n \n
\n \n New password \n \n
\n \n \n Save password \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/textarea-demo.tsx",
- "content": "import { Textarea } from \"@/registry/new-york/ui/textarea\"\n\nexport function TextareaDemo() {\n return \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/toast-demo.tsx",
- "content": "\"use client\"\n\nimport { useToast } from \"@/registry/new-york/hooks/use-toast\"\nimport { Button } from \"@/registry/new-york/ui/button\"\nimport { ToastAction } from \"@/registry/new-york/ui/toast\"\n\nexport function ToastDemo() {\n const { toast } = useToast()\n\n return (\n {\n toast({\n title: \"Scheduled: Catch up \",\n description: \"Friday, February 10, 2023 at 5:57 PM\",\n action: (\n Undo \n ),\n })\n }}\n >\n Add to calendar\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/toggle-demo.tsx",
- "content": "import { Bold } from \"lucide-react\"\n\nimport { Toggle } from \"@/registry/new-york/ui/toggle\"\n\nexport function ToggleDemo() {\n return (\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/toggle-group-demo.tsx",
- "content": "import { Bold, Italic, Underline } from \"lucide-react\"\n\nimport {\n ToggleGroup,\n ToggleGroupItem,\n} from \"@/registry/new-york/ui/toggle-group\"\n\nexport function ToggleGroupDemo() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/tooltip-demo.tsx",
- "content": "import { Button } from \"@/registry/new-york/ui/button\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"@/registry/new-york/ui/tooltip\"\n\nexport function TooltipDemo() {\n return (\n \n \n \n Hover \n \n \n Add to library
\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/badge-destructive.tsx",
- "content": "import { Badge } from \"@/registry/new-york/ui/badge\"\n\nexport function BadgeDestructive() {\n return Destructive \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/badge-outline.tsx",
- "content": "import { Badge } from \"@/registry/new-york/ui/badge\"\n\nexport function BadgeOutline() {\n return Outline \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/badge-secondary.tsx",
- "content": "import { Badge } from \"@/registry/new-york/ui/badge\"\n\nexport function BadgeSecondary() {\n return Secondary \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-destructive.tsx",
- "content": "import { Button } from \"@/registry/new-york/ui/button\"\n\nexport function ButtonDestructive() {\n return Destructive \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-ghost.tsx",
- "content": "import { Button } from \"@/registry/new-york/ui/button\"\n\nexport function ButtonGhost() {\n return Ghost \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-link.tsx",
- "content": "import { Button } from \"@/registry/new-york/ui/button\"\n\nexport function ButtonLink() {\n return Link \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-loading.tsx",
- "content": "import { Loader2 } from \"lucide-react\"\n\nimport { Button } from \"@/registry/new-york/ui/button\"\n\nexport function ButtonLoading() {\n return (\n \n \n Please wait\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-outline.tsx",
- "content": "import { Button } from \"@/registry/new-york/ui/button\"\n\nexport function ButtonOutline() {\n return Outline \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-secondary.tsx",
- "content": "import { Button } from \"@/registry/new-york/ui/button\"\n\nexport function ButtonSecondary() {\n return Secondary \n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/button-with-icon.tsx",
- "content": "import { MailOpen } from \"lucide-react\"\n\nimport { Button } from \"@/registry/new-york/ui/button\"\n\nexport function ButtonWithIcon() {\n return (\n \n Login with Email\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/toggle-disabled.tsx",
- "content": "import { Underline } from \"lucide-react\"\n\nimport { Toggle } from \"@/registry/new-york/ui/toggle\"\n\nexport function ToggleDisabled() {\n return (\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/toggle-outline.tsx",
- "content": "import { Italic } from \"lucide-react\"\n\nimport { Toggle } from \"@/registry/new-york/ui/toggle\"\n\nexport function ToggleOutline() {\n return (\n \n \n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- },
- {
- "path": "internal/sink/components/toggle-with-text.tsx",
- "content": "import { Italic } from \"lucide-react\"\n\nimport { Toggle } from \"@/registry/new-york/ui/toggle\"\n\nexport function ToggleWithText() {\n return (\n \n \n Italic\n \n )\n}\n",
- "type": "registry:component",
- "target": ""
- }
- ]
-}
\ No newline at end of file
diff --git a/apps/v4/registry/bases/base/internal/_registry.ts b/apps/v4/registry/bases/base/internal/_registry.ts
index 2ef30f93ad..d3a989b4ca 100644
--- a/apps/v4/registry/bases/base/internal/_registry.ts
+++ b/apps/v4/registry/bases/base/internal/_registry.ts
@@ -1,70 +1,3 @@
import { type Registry } from "shadcn/schema"
-export const internal: Registry["items"] = [
- {
- name: "sink",
- type: "registry:internal",
- files: [
- {
- path: "internal/sink.tsx",
- type: "registry:page",
- target: "app/sink/page.tsx",
- },
- ],
- registryDependencies: [
- "accordion-example",
- "alert-dialog-example",
- "alert-example",
- "aspect-ratio-example",
- "avatar-example",
- "badge-example",
- "breadcrumb-example",
- "button-example",
- "button-group-example",
- "calendar-example",
- "card-example",
- "carousel-example",
- "chart-example",
- "checkbox-example",
- "collapsible-example",
- "combobox-example",
- "command-example",
- "context-menu-example",
- "dialog-example",
- "drawer-example",
- "dropdown-menu-example",
- "empty-example",
- "field-example",
- "hover-card-example",
- "input-example",
- "input-group-example",
- "input-otp-example",
- "item-example",
- "kbd-example",
- "label-example",
- "menubar-example",
- "native-select-example",
- "navigation-menu-example",
- "pagination-example",
- "popover-example",
- "progress-example",
- "radio-group-example",
- "resizable-example",
- "scroll-area-example",
- "select-example",
- "separator-example",
- "sheet-example",
- "skeleton-example",
- "slider-example",
- "sonner-example",
- "spinner-example",
- "switch-example",
- "table-example",
- "tabs-example",
- "textarea-example",
- "toggle-example",
- "toggle-group-example",
- "tooltip-example",
- ],
- },
-]
+export const internal: Registry["items"] = []
diff --git a/apps/v4/registry/bases/radix/internal/_registry.ts b/apps/v4/registry/bases/radix/internal/_registry.ts
index 2ef30f93ad..d3a989b4ca 100644
--- a/apps/v4/registry/bases/radix/internal/_registry.ts
+++ b/apps/v4/registry/bases/radix/internal/_registry.ts
@@ -1,70 +1,3 @@
import { type Registry } from "shadcn/schema"
-export const internal: Registry["items"] = [
- {
- name: "sink",
- type: "registry:internal",
- files: [
- {
- path: "internal/sink.tsx",
- type: "registry:page",
- target: "app/sink/page.tsx",
- },
- ],
- registryDependencies: [
- "accordion-example",
- "alert-dialog-example",
- "alert-example",
- "aspect-ratio-example",
- "avatar-example",
- "badge-example",
- "breadcrumb-example",
- "button-example",
- "button-group-example",
- "calendar-example",
- "card-example",
- "carousel-example",
- "chart-example",
- "checkbox-example",
- "collapsible-example",
- "combobox-example",
- "command-example",
- "context-menu-example",
- "dialog-example",
- "drawer-example",
- "dropdown-menu-example",
- "empty-example",
- "field-example",
- "hover-card-example",
- "input-example",
- "input-group-example",
- "input-otp-example",
- "item-example",
- "kbd-example",
- "label-example",
- "menubar-example",
- "native-select-example",
- "navigation-menu-example",
- "pagination-example",
- "popover-example",
- "progress-example",
- "radio-group-example",
- "resizable-example",
- "scroll-area-example",
- "select-example",
- "separator-example",
- "sheet-example",
- "skeleton-example",
- "slider-example",
- "sonner-example",
- "spinner-example",
- "switch-example",
- "table-example",
- "tabs-example",
- "textarea-example",
- "toggle-example",
- "toggle-group-example",
- "tooltip-example",
- ],
- },
-]
+export const internal: Registry["items"] = []