diff --git a/.kodiak.toml b/.kodiak.toml deleted file mode 100644 index bbfdb225..00000000 --- a/.kodiak.toml +++ /dev/null @@ -1,18 +0,0 @@ -# .kodiak.toml -version = 1 - -[merge] -automerge_label = "automerge" -require_automerge_label = true -method = "squash" -delete_branch_on_merge = true -optimistic_updates = false -prioritize_ready_to_merge = true -notify_on_conflict = true - -[merge.message] -title = "pull_request_title" -body = "pull_request_body" -include_pr_number = true -body_type = "markdown" -strip_html_comments = true diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 674e1baf..00000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,174 +0,0 @@ -# Contributing - -Thanks for your interest in contributing to ui.shadcn.com. We're happy to have you here. - -Please take a moment to review this document before submitting your first pull request. We also strongly recommend that you check for open issues and pull requests to see if someone else is working on something similar. - -If you need any help, feel free to reach out to [@shadcn](https://twitter.com/shadcn). - -## About this repository - -This repository is a monorepo. - -- We use [pnpm](https://pnpm.io) and [`workspaces`](https://pnpm.io/workspaces) for development. -- We use [Turborepo](https://turbo.build/repo) as our build system. - -## Structure - -This repository is structured as follows: - -``` -apps -└── www - ├── app - ├── components - ├── content - └── registry - ├── default - │ ├── example - │ └── ui - └── new-york - ├── example - └── ui -packages -└── cli -``` - -| Path | Description | -| --------------------- | ---------------------------------------- | -| `apps/www/app` | The Next.js application for the website. | -| `apps/www/components` | The React components for the website. | -| `apps/www/content` | The content for the website. | -| `apps/www/registry` | The registry for the components. | -| `packages/cli` | The `shadcn-ui` package. | - -## Development - -### Fork this repo - -You can fork this repo by clicking the fork button in the top right corner of this page. - -### Clone on your local machine - -```bash -git clone https://github.com/your-username/ui.git -``` - -### Navigate to project directory - -```bash -cd ui -``` - -### Create a new Branch - -```bash -git checkout -b my-new-branch -``` - -### Install dependencies - -```bash -pnpm install -``` - -### Run a workspace - -You can use the `pnpm --filter=[WORKSPACE]` command to start the development process for a workspace. - -#### Examples - -1. To run the `ui.shadcn.com` website: - -```bash -pnpm --filter=www dev -``` - -2. To run the `shadcn-ui` package: - -```bash -pnpm --filter=shadcn-ui dev -``` - -## Documentation - -The documentation for this project is located in the `www` workspace. You can run the documentation locally by running the following command: - -```bash -pnpm --filter=www dev -``` - -Documentation is written using [MDX](https://mdxjs.com). You can find the documentation files in the `apps/www/content/docs` directory. - -## Components - -We use a registry system for developing components. You can find the source code for the components under `apps/www/registry`. The components are organized by styles. - -```bash -apps -└── www - └── registry - ├── default - │ ├── example - │ └── ui - └── new-york - ├── example - └── ui -``` - -When adding or modifying components, please ensure that: - -1. You make the changes for every style. -2. You update the documentation. -3. You run `pnpm build:registry` to update the registry. - -## Commit Convention - -Before you create a Pull Request, please check whether your commits comply with -the commit conventions used in this repository. - -When you create a commit we kindly ask you to follow the convention -`category(scope or module): message` in your commit message while using one of -the following categories: - -- `feat / feature`: all changes that introduce completely new code or new - features -- `fix`: changes that fix a bug (ideally you will additionally reference an - issue if present) -- `refactor`: any code related change that is not a fix nor a feature -- `docs`: changing existing or creating new documentation (i.e. README, docs for - usage of a lib or cli usage) -- `build`: all changes regarding the build of the software, changes to - dependencies or the addition of new dependencies -- `test`: all changes regarding tests (adding new tests or changing existing - ones) -- `ci`: all changes regarding the configuration of continuous integration (i.e. - github actions, ci system) -- `chore`: all changes to the repository that do not fit into any of the above - categories - - e.g. `feat(components): add new prop to the avatar component` - -If you are interested in the detailed specification you can visit -https://www.conventionalcommits.org/ or check out the -[Angular Commit Message Guidelines](https://github.com/angular/angular/blob/22b96b9/CONTRIBUTING.md#-commit-message-guidelines). - -## Requests for new components - -If you have a request for a new component, please open a discussion on GitHub. We'll be happy to help you out. - -## CLI - -The `shadcn-ui` package is a CLI for adding components to your project. You can find the documentation for the CLI [here](https://ui.shadcn.com/docs/cli). - -Any changes to the CLI should be made in the `packages/cli` directory. If you can, it would be great if you could add tests for your changes. - -## Testing - -Tests are written using [Vitest](https://vitest.dev). You can run all the tests from the root of the repository. - -```bash -pnpm test -``` - -Please ensure that the tests are passing when submitting a pull request. If you're adding new features, please include tests. diff --git a/README.md b/README.md index 904c780e..6efdb010 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,6 @@ Beautifully designed chatbot components built with and compatible with the shadc Visit http://sck.blazity.com/docs to view the documentation. -## Contributing - -Please read the [contributing guide](/CONTRIBUTING.md). - ## License Licensed under the [MIT license](https://github.com/Blazity/shadcn-chatbot-kit/blob/main/LICENSE.md). diff --git a/apps/www/content/docs/components/sidebar.mdx b/apps/www/content/docs/components/sidebar.mdx index 863f0106..1112f700 100644 --- a/apps/www/content/docs/components/sidebar.mdx +++ b/apps/www/content/docs/components/sidebar.mdx @@ -342,11 +342,11 @@ The `SidebarProvider` component is used to provide the sidebar context to the `S ### Props -| Name | Type | Description | -| ------------- | ------------------------- | -------------------------------------------- | -| `defaultOpen` | `boolean` | Default open state of the sidebar. | -| `open` | `boolean` | Open state of the sidebar (controlled). | -| `onOpenChange`| `(open: boolean) => void` | Sets open state of the sidebar (controlled). | +| Name | Type | Description | +| -------------- | ------------------------- | -------------------------------------------- | +| `defaultOpen` | `boolean` | Default open state of the sidebar. | +| `open` | `boolean` | Open state of the sidebar (controlled). | +| `onOpenChange` | `(open: boolean) => void` | Sets open state of the sidebar (controlled). | ### Width diff --git a/apps/www/public/r/chat-bubble.json b/apps/www/public/r/chat-bubble.json deleted file mode 100644 index dfb73acf..00000000 --- a/apps/www/public/r/chat-bubble.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "chat-bubble", - "type": "registry:ui", - "files": [ - { - "path": "ui/chat-bubble.tsx", - "content": "import React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nexport interface ChatBubbleProps {\n content: string\n isUser: boolean\n timestamp?: string\n}\n\nexport const ChatBubble: React.FC = ({\n content,\n isUser,\n timestamp,\n}) => {\n return (\n \n \n

{content}

\n {timestamp && (\n {timestamp}\n )}\n \n \n )\n}\n", - "type": "registry:ui", - "target": "" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/chat-demo.json b/apps/www/public/r/chat-demo.json deleted file mode 100644 index e0100e0a..00000000 --- a/apps/www/public/r/chat-demo.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "chat-demo", - "type": "registry:example", - "description": "A chat interface with message bubbles and a form to send new messages", - "files": [ - { - "path": "example/chat-demo.tsx", - "content": "import { useChat } from \"ai/react\"\n\nimport { Chat } from \"../ui/chat\"\n\nexport default function ChatDemo() {\n const {\n messages,\n input,\n handleInputChange,\n handleSubmit,\n error,\n append,\n stop,\n isLoading,\n } = useChat()\n\n const lastMessage = messages.at(-1)\n\n return (\n
\n \n
\n )\n}\n", - "type": "registry:example", - "target": "" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/chat-message.json b/apps/www/public/r/chat-message.json index 44d17072..2d28a514 100644 --- a/apps/www/public/r/chat-message.json +++ b/apps/www/public/r/chat-message.json @@ -4,7 +4,7 @@ "files": [ { "path": "ui/chat-message.tsx", - "content": "\"use client\"\n\nimport React from \"react\"\nimport type { Attachment } from \"ai\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { ThumbsDown, ThumbsUp } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport { CopyButton } from \"@/registry/default/ui/copy-button\"\nimport { MarkdownRenderer } from \"@/registry/default/ui/markdown-renderer\"\n\nconst chatBubbleVariants = cva(\n \"group/message relative break-words rounded-lg p-3 text-sm sm:max-w-[70%]\",\n {\n variants: {\n isUser: {\n true: \"bg-primary\",\n false: \"bg-muted\",\n },\n animation: {\n none: \"\",\n slide: \"animate-in fade-in-0 duration-300\",\n scale: \"animate-in fade-in-0 zoom-in-75 duration-300\",\n fade: \"animate-in fade-in-0 duration-500\",\n },\n },\n compoundVariants: [\n {\n isUser: true,\n animation: \"slide\",\n class: \"slide-in-from-right\",\n },\n {\n isUser: false,\n animation: \"slide\",\n class: \"slide-in-from-left\",\n },\n {\n isUser: true,\n animation: \"scale\",\n class: \"origin-bottom-right\",\n },\n {\n isUser: false,\n animation: \"scale\",\n class: \"origin-bottom-left\",\n },\n ],\n }\n)\n\ntype Animation = VariantProps[\"animation\"]\n\nexport interface Message {\n id: string\n role: \"user\" | \"assistant\" | (string & {})\n content: string\n createdAt?: Date\n experimental_attachments?: Attachment[]\n}\n\nexport interface ChatMessageProps extends Message {\n showTimeStamp?: boolean\n animation?: Animation\n}\n\nexport const ChatMessage: React.FC = ({\n role,\n content,\n createdAt,\n showTimeStamp = true,\n animation = \"scale\",\n}) => {\n const isUser = role === \"user\"\n\n const formattedTime = createdAt?.toLocaleTimeString(\"en-US\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n })\n\n return (\n
\n
\n {/* TODO: improve markdown rendering */}\n \n \n
\n\n {role === \"assistant\" ? (\n
\n
\n \n
\n \n \n
\n ) : null}\n
\n\n {showTimeStamp && createdAt ? (\n \n {formattedTime}\n \n ) : null}\n \n )\n}\n", + "content": "\"use client\"\n\nimport React from \"react\"\nimport type { Attachment } from \"ai\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { ThumbsDown, ThumbsUp } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport { CopyButton } from \"@/registry/default/ui/copy-button\"\nimport { MarkdownRenderer } from \"@/registry/default/ui/markdown-renderer\"\n\nconst chatBubbleVariants = cva(\n \"group/message relative break-words rounded-lg p-3 text-sm sm:max-w-[70%]\",\n {\n variants: {\n isUser: {\n true: \"bg-primary\",\n false: \"bg-muted\",\n },\n animation: {\n none: \"\",\n slide: \"animate-in fade-in-0 duration-300\",\n scale: \"animate-in fade-in-0 zoom-in-75 duration-300\",\n fade: \"animate-in fade-in-0 duration-500\",\n },\n },\n compoundVariants: [\n {\n isUser: true,\n animation: \"slide\",\n class: \"slide-in-from-right\",\n },\n {\n isUser: false,\n animation: \"slide\",\n class: \"slide-in-from-left\",\n },\n {\n isUser: true,\n animation: \"scale\",\n class: \"origin-bottom-right\",\n },\n {\n isUser: false,\n animation: \"scale\",\n class: \"origin-bottom-left\",\n },\n ],\n }\n)\n\ntype Animation = VariantProps[\"animation\"]\n\nexport interface Message {\n id: string\n role: \"user\" | \"assistant\" | (string & {})\n content: string\n createdAt?: Date\n experimental_attachments?: Attachment[]\n}\n\nexport interface ChatMessageProps extends Message {\n showTimeStamp?: boolean\n animation?: Animation\n}\n\nexport const ChatMessage: React.FC = ({\n role,\n content,\n createdAt,\n showTimeStamp = false,\n animation = \"scale\",\n}) => {\n const isUser = role === \"user\"\n\n const formattedTime = createdAt?.toLocaleTimeString(\"en-US\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n })\n\n return (\n
\n
\n \n {content}\n
\n\n {role === \"assistant\" ? (\n
\n
\n \n
\n \n \n
\n ) : null}\n
\n\n {showTimeStamp && createdAt ? (\n \n {formattedTime}\n \n ) : null}\n \n )\n}\n", "type": "registry:ui", "target": "" } diff --git a/apps/www/public/r/chat.json b/apps/www/public/r/chat.json index c692c28c..0ab9a71b 100644 --- a/apps/www/public/r/chat.json +++ b/apps/www/public/r/chat.json @@ -12,7 +12,7 @@ "files": [ { "path": "ui/chat.tsx", - "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { ArrowDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { useAutoScroll } from \"@/registry/default/hooks/use-auto-scroll\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport { type Message } from \"@/registry/default/ui/chat-message\"\nimport { MessageInput } from \"@/registry/default/ui/message-input\"\nimport { MessageList } from \"@/registry/default/ui/message-list\"\nimport { PromptSuggestions } from \"@/registry/default/ui/prompt-suggestions\"\n\n// TODO: expose subcomponent props\ninterface ChatPropsBase {\n handleSubmit: (\n event?: { preventDefault?: () => void },\n options?: { experimental_attachments?: FileList }\n ) => void\n messages: Array\n className?: string\n input: string\n handleInputChange: React.ChangeEventHandler\n isLoading?: boolean\n isGenerating: boolean\n stop?: () => void\n}\n\ninterface ChatPropsWithoutSuggestions extends ChatPropsBase {\n append?: never\n suggestions?: never\n}\n\ninterface ChatPropsWithSuggestions extends ChatPropsBase {\n append: (message: { role: \"user\"; content: string }) => void\n suggestions: string[]\n}\n\ntype ChatProps = ChatPropsWithoutSuggestions | ChatPropsWithSuggestions\n\nexport const Chat: React.FC = ({\n messages,\n handleSubmit,\n input,\n handleInputChange,\n className,\n isLoading = false,\n append,\n suggestions,\n stop,\n isGenerating,\n}) => {\n const [files, setFiles] = useState(null)\n const { containerRef, scrollToBottom, handleScroll, shouldAutoScroll } =\n useAutoScroll([messages])\n\n const onSubmit = (event: React.FormEvent) => {\n if (isGenerating || isLoading) {\n event.preventDefault()\n return\n }\n\n if (!files) {\n handleSubmit(event)\n return\n }\n\n const fileList = createFileList(files)\n handleSubmit(event, { experimental_attachments: fileList })\n setFiles(null)\n }\n\n return (\n
\n {messages.length === 0 && append && suggestions ? (\n \n ) : null}\n\n {messages.length > 0 ? (\n \n \n {!shouldAutoScroll && (\n
\n \n \n \n
\n )}\n
\n ) : null}\n\n
\n \n \n \n )\n}\nChat.displayName = \"Chat\"\n\nfunction createFileList(files: File[] | FileList): FileList {\n const dataTransfer = new DataTransfer()\n for (const file of Array.from(files)) {\n dataTransfer.items.add(file)\n }\n return dataTransfer.files\n}\n", + "content": "\"use client\"\n\nimport { forwardRef, useState, type ReactElement } from \"react\"\nimport { ArrowDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { useAutoScroll } from \"@/registry/default/hooks/use-auto-scroll\"\nimport { Button } from \"@/registry/default/ui/button\"\nimport { type Message } from \"@/registry/default/ui/chat-message\"\nimport { MessageInput } from \"@/registry/default/ui/message-input\"\nimport { MessageList } from \"@/registry/default/ui/message-list\"\n\nimport { PromptSuggestions } from \"./prompt-suggestions\"\n\ninterface ChatPropsBase {\n handleSubmit: (\n event?: { preventDefault?: () => void },\n options?: { experimental_attachments?: FileList }\n ) => void\n messages: Array\n input: string\n className?: string\n handleInputChange: React.ChangeEventHandler\n isGenerating: boolean\n stop?: () => void\n}\n\ninterface ChatPropsWithoutSuggestions extends ChatPropsBase {\n append?: never\n suggestions?: never\n}\n\ninterface ChatPropsWithSuggestions extends ChatPropsBase {\n append: (message: { role: \"user\"; content: string }) => void\n suggestions: string[]\n}\n\ntype ChatProps = ChatPropsWithoutSuggestions | ChatPropsWithSuggestions\n\nexport function Chat({\n messages,\n handleSubmit,\n input,\n handleInputChange,\n stop,\n isGenerating,\n append,\n suggestions,\n className,\n}: ChatProps) {\n const lastMessage = messages.at(-1)\n const isEmpty = messages.length === 0\n const isTyping = lastMessage?.role === \"user\"\n\n const { containerRef, scrollToBottom, handleScroll, shouldAutoScroll } =\n useAutoScroll([messages])\n\n return (\n \n {isEmpty && append && suggestions ? (\n \n ) : null}\n\n {messages.length > 0 ? (\n \n \n {!shouldAutoScroll && (\n
\n \n \n \n
\n )}\n \n ) : null}\n\n \n {({ files, setFiles }) => (\n \n )}\n \n
\n )\n}\nChat.displayName = \"Chat\"\n\nfunction createFileList(files: File[] | FileList): FileList {\n const dataTransfer = new DataTransfer()\n for (const file of Array.from(files)) {\n dataTransfer.items.add(file)\n }\n return dataTransfer.files\n}\n\nconst ChatContainer = forwardRef<\n HTMLDivElement,\n React.HTMLAttributes\n>(({ className, ...props }, ref) => {\n return (\n \n )\n})\nChatContainer.displayName = \"ChatContainer\"\n\ninterface ChatFormProps {\n className?: string\n isPending: boolean\n handleSubmit: (\n event?: { preventDefault?: () => void },\n options?: { experimental_attachments?: FileList }\n ) => void\n children: (props: {\n files: File[] | null\n setFiles: React.Dispatch>\n }) => ReactElement\n}\n\nconst ChatForm = forwardRef(\n ({ children, handleSubmit, isPending, className }, ref) => {\n const [files, setFiles] = useState(null)\n\n const onSubmit = (event: React.FormEvent) => {\n if (isPending) {\n event.preventDefault()\n return\n }\n\n if (!files) {\n handleSubmit(event)\n return\n }\n\n const fileList = createFileList(files)\n handleSubmit(event, { experimental_attachments: fileList })\n setFiles(null)\n }\n\n return (\n
\n {children({ files, setFiles })}\n
\n )\n }\n)\nChatForm.displayName = \"ChatForm\"\n", "type": "registry:ui", "target": "" } diff --git a/apps/www/public/r/message-input.json b/apps/www/public/r/message-input.json index f455c032..9fdc11b4 100644 --- a/apps/www/public/r/message-input.json +++ b/apps/www/public/r/message-input.json @@ -10,7 +10,7 @@ "files": [ { "path": "ui/message-input.tsx", - "content": "\"use client\"\n\nimport React, { useRef, useState } from \"react\"\nimport { AnimatePresence, motion } from \"framer-motion\"\nimport { ArrowUp, Paperclip, Square, X } from \"lucide-react\"\nimport { omit } from \"remeda\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/default/ui/button\"\n\nimport { useAutosizeTextArea } from \"../hooks/use-autosize-textarea\"\n\ninterface MessageInputBaseProps\n extends React.TextareaHTMLAttributes {\n value: string\n submitOnEnter?: boolean\n stop?: () => void\n isGenerating: boolean\n}\n\ninterface MessageInputWithoutAttachmentProps extends MessageInputBaseProps {\n allowAttachments?: false\n}\n\ninterface MessageInputWithAttachmentsProps extends MessageInputBaseProps {\n allowAttachments: true\n files: File[] | null\n setFiles: React.Dispatch>\n}\n\ntype MessageInputProps =\n | MessageInputWithoutAttachmentProps\n | MessageInputWithAttachmentsProps\n\nexport function MessageInput({\n placeholder = \"Ask AI...\",\n className,\n onKeyDown,\n submitOnEnter = true,\n stop,\n isGenerating,\n ...props\n}: MessageInputProps) {\n const [isDragging, setIsDragging] = useState(false)\n\n const onDragOver = (event: React.DragEvent) => {\n if (props.allowAttachments !== true) return\n event.preventDefault()\n setIsDragging(true)\n }\n\n const onDragLeave = (event: React.DragEvent) => {\n if (props.allowAttachments !== true) return\n event.preventDefault()\n setIsDragging(false)\n }\n\n const onDrop = (event: React.DragEvent) => {\n setIsDragging(false)\n if (props.allowAttachments !== true) return\n event.preventDefault()\n const dataTransfer = event.dataTransfer\n if (dataTransfer.files.length) {\n props.setFiles(Array.from(dataTransfer.files))\n }\n }\n\n const textAreaRef = useRef(null)\n\n const showFileList =\n props.allowAttachments && props.files && props.files.length > 0\n\n useAutosizeTextArea({\n ref: textAreaRef,\n maxHeight: 240,\n borderWidth: 1,\n dependencies: [props.value, showFileList],\n })\n\n return (\n \n {\n if (submitOnEnter && event.key === \"Enter\" && !event.shiftKey) {\n event.preventDefault()\n event.currentTarget.form?.requestSubmit()\n }\n\n onKeyDown?.(event)\n }}\n className={cn(\n \"w-full grow resize-none rounded-xl border border-input bg-background p-3 pr-24 text-sm ring-offset-background transition-[border,padding] placeholder:text-muted-foreground focus-visible:border-primary focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50\",\n showFileList && \"pb-16\",\n className\n )}\n // TODO: better way to do this\n {...(props.allowAttachments\n ? omit(props, [\"allowAttachments\", \"files\", \"setFiles\"])\n : omit(props, [\"allowAttachments\"]))}\n />\n\n \n {props.allowAttachments && props.files && (\n
\n
\n {props.files.map((file) => {\n return (\n \n {\n props.setFiles((files) => {\n if (!files) return null\n\n const filtered = Array.from(files).filter(\n (f) => f !== file\n )\n if (filtered.length === 0) return null\n return filtered\n })\n }}\n >\n \n \n \n {file.name}\n \n \n )\n })}\n
\n
\n )}\n
\n\n
\n {props.allowAttachments && (\n {\n const files = await showFileUploadDialog()\n props.setFiles(files)\n }}\n >\n \n \n )}\n {isGenerating ? (\n \n \n \n ) : (\n \n \n \n )}\n
\n\n {props.allowAttachments && }\n \n )\n}\nMessageInput.displayName = \"MessageInput\"\n\ninterface FileUploadOverlayProps {\n isDragging: boolean\n}\n\nfunction FileUploadOverlay({ isDragging }: FileUploadOverlayProps) {\n return (\n \n {isDragging && (\n \n \n Drop your files here to attach them.\n \n )}\n \n )\n}\n\nfunction showFileUploadDialog() {\n const input = document.createElement(\"input\")\n\n input.type = \"file\"\n input.multiple = true\n // TODO: define accept values?\n input.accept = \"*/*\"\n input.click()\n\n return new Promise((resolve) => {\n input.onchange = (e) => {\n const files = (e.currentTarget as HTMLInputElement).files\n\n if (files) {\n resolve(Array.from(files))\n return\n }\n\n resolve(null)\n }\n })\n}\n", + "content": "\"use client\"\n\nimport React, { useRef, useState } from \"react\"\nimport { AnimatePresence, motion } from \"framer-motion\"\nimport { ArrowUp, Paperclip, Square, X } from \"lucide-react\"\nimport { omit } from \"remeda\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/default/ui/button\"\n\nimport { useAutosizeTextArea } from \"../hooks/use-autosize-textarea\"\n\ninterface MessageInputBaseProps\n extends React.TextareaHTMLAttributes {\n value: string\n submitOnEnter?: boolean\n stop?: () => void\n isGenerating: boolean\n}\n\ninterface MessageInputWithoutAttachmentProps extends MessageInputBaseProps {\n allowAttachments?: false\n}\n\ninterface MessageInputWithAttachmentsProps extends MessageInputBaseProps {\n allowAttachments: true\n files: File[] | null\n setFiles: React.Dispatch>\n}\n\ntype MessageInputProps =\n | MessageInputWithoutAttachmentProps\n | MessageInputWithAttachmentsProps\n\nexport function MessageInput({\n placeholder = \"Ask AI...\",\n className,\n onKeyDown,\n submitOnEnter = true,\n stop,\n isGenerating,\n ...props\n}: MessageInputProps) {\n const [isDragging, setIsDragging] = useState(false)\n\n const onDragOver = (event: React.DragEvent) => {\n if (props.allowAttachments !== true) return\n event.preventDefault()\n setIsDragging(true)\n }\n\n const onDragLeave = (event: React.DragEvent) => {\n if (props.allowAttachments !== true) return\n event.preventDefault()\n setIsDragging(false)\n }\n\n const onDrop = (event: React.DragEvent) => {\n setIsDragging(false)\n if (props.allowAttachments !== true) return\n event.preventDefault()\n const dataTransfer = event.dataTransfer\n if (dataTransfer.files.length) {\n props.setFiles(Array.from(dataTransfer.files))\n }\n }\n\n const textAreaRef = useRef(null)\n\n const showFileList =\n props.allowAttachments && props.files && props.files.length > 0\n\n useAutosizeTextArea({\n ref: textAreaRef,\n maxHeight: 240,\n borderWidth: 1,\n dependencies: [props.value, showFileList],\n })\n\n return (\n \n {\n if (submitOnEnter && event.key === \"Enter\" && !event.shiftKey) {\n event.preventDefault()\n event.currentTarget.form?.requestSubmit()\n }\n\n onKeyDown?.(event)\n }}\n className={cn(\n \"w-full grow resize-none rounded-xl border border-input bg-background p-3 pr-24 text-sm ring-offset-background transition-[border] placeholder:text-muted-foreground focus-visible:border-primary focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50\",\n showFileList && \"pb-16\",\n className\n )}\n // TODO: better way to do this\n {...(props.allowAttachments\n ? omit(props, [\"allowAttachments\", \"files\", \"setFiles\"])\n : omit(props, [\"allowAttachments\"]))}\n />\n\n {props.allowAttachments && (\n \n
\n
\n {props.files?.map((file) => {\n return (\n \n {\n props.setFiles((files) => {\n if (!files) return null\n\n const filtered = Array.from(files).filter(\n (f) => f !== file\n )\n if (filtered.length === 0) return null\n return filtered\n })\n }}\n >\n \n \n \n {file.name}\n \n \n )\n })}\n
\n
\n
\n )}\n\n
\n {props.allowAttachments && (\n {\n const files = await showFileUploadDialog()\n props.setFiles(files)\n }}\n >\n \n \n )}\n {isGenerating ? (\n \n \n \n ) : (\n \n \n \n )}\n
\n\n {props.allowAttachments && }\n \n )\n}\nMessageInput.displayName = \"MessageInput\"\n\ninterface FileUploadOverlayProps {\n isDragging: boolean\n}\n\nfunction FileUploadOverlay({ isDragging }: FileUploadOverlayProps) {\n return (\n \n {isDragging && (\n \n \n Drop your files here to attach them.\n \n )}\n \n )\n}\n\nfunction showFileUploadDialog() {\n const input = document.createElement(\"input\")\n\n input.type = \"file\"\n input.multiple = true\n input.accept = \"*/*\"\n input.click()\n\n return new Promise((resolve) => {\n input.onchange = (e) => {\n const files = (e.currentTarget as HTMLInputElement).files\n\n if (files) {\n resolve(Array.from(files))\n return\n }\n\n resolve(null)\n }\n })\n}\n", "type": "registry:ui", "target": "" } diff --git a/apps/www/public/r/message-list.json b/apps/www/public/r/message-list.json index ac603220..e47974a4 100644 --- a/apps/www/public/r/message-list.json +++ b/apps/www/public/r/message-list.json @@ -4,7 +4,7 @@ "files": [ { "path": "ui/message-list.tsx", - "content": "import { Dot } from \"lucide-react\"\n\nimport { ChatMessage, type Message } from \"@/registry/default/ui/chat-message\"\n\ninterface MessageListProps {\n messages: Message[]\n showTimeStamps?: boolean\n isLoading?: boolean\n}\n\nexport function MessageList({\n messages,\n showTimeStamps = true,\n isLoading = false,\n}: MessageListProps) {\n return (\n
\n {messages.map((message, index) => (\n \n ))}\n {isLoading && (\n
\n
\n
\n \n \n \n
\n
\n
\n )}\n
\n )\n}\n", + "content": "import { ChatMessage, type Message } from \"@/registry/default/ui/chat-message\"\nimport { TypingIndicator } from \"@/registry/default/ui/typing-indicator\"\n\ninterface MessageListProps {\n messages: Message[]\n showTimeStamps?: boolean\n isTyping?: boolean\n}\n\nexport function MessageList({\n messages,\n showTimeStamps = true,\n isTyping: isTyping = false,\n}: MessageListProps) {\n return (\n
\n {messages.map((message, index) => (\n \n ))}\n {isTyping && }\n
\n )\n}\n", "type": "registry:ui", "target": "" } diff --git a/apps/www/public/r/styles/default/accordion-demo.json b/apps/www/public/r/styles/default/accordion-demo.json deleted file mode 100644 index 253a3414..00000000 --- a/apps/www/public/r/styles/default/accordion-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "accordion-demo", - "type": "registry:example", - "registryDependencies": [ - "accordion" - ], - "files": [ - { - "path": "example/accordion-demo.tsx", - "content": "import {\n Accordion,\n AccordionContent,\n AccordionItem,\n AccordionTrigger,\n} from \"@/components/ui/accordion\"\n\nexport default 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\n prefer.\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/accordion-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/alert-demo.json b/apps/www/public/r/styles/default/alert-demo.json deleted file mode 100644 index 51f8e8fa..00000000 --- a/apps/www/public/r/styles/default/alert-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "alert-demo", - "type": "registry:example", - "registryDependencies": [ - "alert" - ], - "files": [ - { - "path": "example/alert-demo.tsx", - "content": "import { Terminal } from \"lucide-react\"\n\nimport {\n Alert,\n AlertDescription,\n AlertTitle,\n} from \"@/components/ui/alert\"\n\nexport default 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:example", - "target": "components/alert-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/alert-destructive.json b/apps/www/public/r/styles/default/alert-destructive.json deleted file mode 100644 index 240caeb4..00000000 --- a/apps/www/public/r/styles/default/alert-destructive.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "alert-destructive", - "type": "registry:example", - "registryDependencies": [ - "alert" - ], - "files": [ - { - "path": "example/alert-destructive.tsx", - "content": "import { AlertCircle } from \"lucide-react\"\n\nimport {\n Alert,\n AlertDescription,\n AlertTitle,\n} from \"@/components/ui/alert\"\n\nexport default function AlertDestructive() {\n return (\n \n \n Error\n \n Your session has expired. Please log in again.\n \n \n )\n}\n", - "type": "registry:example", - "target": "components/alert-destructive.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/alert-dialog-demo.json b/apps/www/public/r/styles/default/alert-dialog-demo.json deleted file mode 100644 index c60ee78b..00000000 --- a/apps/www/public/r/styles/default/alert-dialog-demo.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "alert-dialog-demo", - "type": "registry:example", - "registryDependencies": [ - "alert-dialog", - "button" - ], - "files": [ - { - "path": "example/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 \"@/components/ui/alert-dialog\"\nimport { Button } from \"@/components/ui/button\"\n\nexport default function AlertDialogDemo() {\n return (\n \n \n \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:example", - "target": "components/alert-dialog-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/aspect-ratio-demo.json b/apps/www/public/r/styles/default/aspect-ratio-demo.json deleted file mode 100644 index ddc9d3c2..00000000 --- a/apps/www/public/r/styles/default/aspect-ratio-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "aspect-ratio-demo", - "type": "registry:example", - "registryDependencies": [ - "aspect-ratio" - ], - "files": [ - { - "path": "example/aspect-ratio-demo.tsx", - "content": "import Image from \"next/image\"\n\nimport { AspectRatio } from \"@/components/ui/aspect-ratio\"\n\nexport default function AspectRatioDemo() {\n return (\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/aspect-ratio-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/avatar-demo.json b/apps/www/public/r/styles/default/avatar-demo.json deleted file mode 100644 index 56016adf..00000000 --- a/apps/www/public/r/styles/default/avatar-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "avatar-demo", - "type": "registry:example", - "registryDependencies": [ - "avatar" - ], - "files": [ - { - "path": "example/avatar-demo.tsx", - "content": "import {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/components/ui/avatar\"\n\nexport default function AvatarDemo() {\n return (\n \n \n CN\n \n )\n}\n", - "type": "registry:example", - "target": "components/avatar-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/badge-demo.json b/apps/www/public/r/styles/default/badge-demo.json deleted file mode 100644 index fc27d7a5..00000000 --- a/apps/www/public/r/styles/default/badge-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "badge-demo", - "type": "registry:example", - "registryDependencies": [ - "badge" - ], - "files": [ - { - "path": "example/badge-demo.tsx", - "content": "import { Badge } from \"@/components/ui/badge\"\n\nexport default function BadgeDemo() {\n return Badge\n}\n", - "type": "registry:example", - "target": "components/badge-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/badge-destructive.json b/apps/www/public/r/styles/default/badge-destructive.json deleted file mode 100644 index ee99f9f5..00000000 --- a/apps/www/public/r/styles/default/badge-destructive.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "badge-destructive", - "type": "registry:example", - "registryDependencies": [ - "badge" - ], - "files": [ - { - "path": "example/badge-destructive.tsx", - "content": "import { Badge } from \"@/components/ui/badge\"\n\nexport default function BadgeDestructive() {\n return Destructive\n}\n", - "type": "registry:example", - "target": "components/badge-destructive.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/badge-outline.json b/apps/www/public/r/styles/default/badge-outline.json deleted file mode 100644 index 89f3a7f8..00000000 --- a/apps/www/public/r/styles/default/badge-outline.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "badge-outline", - "type": "registry:example", - "registryDependencies": [ - "badge" - ], - "files": [ - { - "path": "example/badge-outline.tsx", - "content": "import { Badge } from \"@/components/ui/badge\"\n\nexport default function BadgeOutline() {\n return Outline\n}\n", - "type": "registry:example", - "target": "components/badge-outline.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/badge-secondary.json b/apps/www/public/r/styles/default/badge-secondary.json deleted file mode 100644 index a0e762e3..00000000 --- a/apps/www/public/r/styles/default/badge-secondary.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "badge-secondary", - "type": "registry:example", - "registryDependencies": [ - "badge" - ], - "files": [ - { - "path": "example/badge-secondary.tsx", - "content": "import { Badge } from \"@/components/ui/badge\"\n\nexport default function BadgeSecondary() {\n return Secondary\n}\n", - "type": "registry:example", - "target": "components/badge-secondary.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/breadcrumb-demo.json b/apps/www/public/r/styles/default/breadcrumb-demo.json deleted file mode 100644 index 70a69361..00000000 --- a/apps/www/public/r/styles/default/breadcrumb-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "breadcrumb-demo", - "type": "registry:example", - "registryDependencies": [ - "breadcrumb" - ], - "files": [ - { - "path": "example/breadcrumb-demo.tsx", - "content": "import {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\n\nexport default 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:example", - "target": "components/breadcrumb-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/breadcrumb-dropdown.json b/apps/www/public/r/styles/default/breadcrumb-dropdown.json deleted file mode 100644 index 0804cdc0..00000000 --- a/apps/www/public/r/styles/default/breadcrumb-dropdown.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "breadcrumb-dropdown", - "type": "registry:example", - "registryDependencies": [ - "breadcrumb" - ], - "files": [ - { - "path": "example/breadcrumb-dropdown.tsx", - "content": "import { ChevronDown, Slash } from \"lucide-react\"\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\n\nexport default function BreadcrumbWithDropdown() {\n return (\n \n \n \n Home\n \n \n \n \n \n \n \n Components\n \n \n \n Documentation\n Themes\n GitHub\n \n \n \n \n \n \n \n Breadcrumb\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/breadcrumb-dropdown.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/breadcrumb-ellipsis.json b/apps/www/public/r/styles/default/breadcrumb-ellipsis.json deleted file mode 100644 index 34ca2479..00000000 --- a/apps/www/public/r/styles/default/breadcrumb-ellipsis.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "breadcrumb-ellipsis", - "type": "registry:example", - "registryDependencies": [ - "breadcrumb" - ], - "files": [ - { - "path": "example/breadcrumb-ellipsis.tsx", - "content": "import Link from \"next/link\"\n\nimport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\n\nexport default function BreadcrumbCollapsed() {\n return (\n \n \n \n \n Home\n \n \n \n \n \n \n \n \n \n Components\n \n \n \n \n Breadcrumb\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/breadcrumb-ellipsis.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/breadcrumb-link.json b/apps/www/public/r/styles/default/breadcrumb-link.json deleted file mode 100644 index 92b6f9ac..00000000 --- a/apps/www/public/r/styles/default/breadcrumb-link.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "breadcrumb-link", - "type": "registry:example", - "registryDependencies": [ - "breadcrumb" - ], - "files": [ - { - "path": "example/breadcrumb-link.tsx", - "content": "import Link from \"next/link\"\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\n\nexport default function BreadcrumbWithCustomSeparator() {\n return (\n \n \n \n \n Home\n \n \n \n \n \n Components\n \n \n \n \n Breadcrumb\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/breadcrumb-link.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/breadcrumb-responsive.json b/apps/www/public/r/styles/default/breadcrumb-responsive.json deleted file mode 100644 index 8e3f50fc..00000000 --- a/apps/www/public/r/styles/default/breadcrumb-responsive.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "breadcrumb-responsive", - "type": "registry:example", - "registryDependencies": [ - "breadcrumb" - ], - "files": [ - { - "path": "example/breadcrumb-responsive.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport Link from \"next/link\"\n\nimport { useMediaQuery } from \"@/hooks/use-media-query\"\nimport {\n Breadcrumb,\n BreadcrumbEllipsis,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/components/ui/drawer\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\n\nconst items = [\n { href: \"#\", label: \"Home\" },\n { href: \"#\", label: \"Documentation\" },\n { href: \"#\", label: \"Building Your Application\" },\n { href: \"#\", label: \"Data Fetching\" },\n { label: \"Caching and Revalidating\" },\n]\n\nconst ITEMS_TO_DISPLAY = 3\n\nexport default function BreadcrumbResponsive() {\n const [open, setOpen] = React.useState(false)\n const isDesktop = useMediaQuery(\"(min-width: 768px)\")\n\n return (\n \n \n \n {items[0].label}\n \n \n {items.length > ITEMS_TO_DISPLAY ? (\n <>\n \n {isDesktop ? (\n \n \n \n \n \n {items.slice(1, -2).map((item, index) => (\n \n \n {item.label}\n \n \n ))}\n \n \n ) : (\n \n \n \n \n \n \n Navigate to\n \n Select a page to navigate to.\n \n \n
\n {items.slice(1, -2).map((item, index) => (\n \n {item.label}\n \n ))}\n
\n \n \n \n \n \n
\n
\n )}\n
\n \n \n ) : null}\n {items.slice(-ITEMS_TO_DISPLAY + 1).map((item, index) => (\n \n {item.href ? (\n <>\n \n {item.label}\n \n \n \n ) : (\n \n {item.label}\n \n )}\n \n ))}\n
\n
\n )\n}\n", - "type": "registry:example", - "target": "components/breadcrumb-responsive.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/breadcrumb-separator.json b/apps/www/public/r/styles/default/breadcrumb-separator.json deleted file mode 100644 index 16021b4a..00000000 --- a/apps/www/public/r/styles/default/breadcrumb-separator.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "breadcrumb-separator", - "type": "registry:example", - "registryDependencies": [ - "breadcrumb" - ], - "files": [ - { - "path": "example/breadcrumb-separator.tsx", - "content": "import { Slash } from \"lucide-react\"\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\n\nexport default function BreadcrumbWithCustomSeparator() {\n return (\n \n \n \n Home\n \n \n \n \n \n Components\n \n \n \n \n \n Breadcrumb\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/breadcrumb-separator.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/button-as-child.json b/apps/www/public/r/styles/default/button-as-child.json deleted file mode 100644 index 4d345ec3..00000000 --- a/apps/www/public/r/styles/default/button-as-child.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "button-as-child", - "type": "registry:example", - "registryDependencies": [ - "button" - ], - "files": [ - { - "path": "example/button-as-child.tsx", - "content": "import Link from \"next/link\"\n\nimport { Button } from \"@/components/ui/button\"\n\nexport default function ButtonAsChild() {\n return (\n \n )\n}\n", - "type": "registry:example", - "target": "components/button-as-child.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/button-demo.json b/apps/www/public/r/styles/default/button-demo.json deleted file mode 100644 index c34cb99a..00000000 --- a/apps/www/public/r/styles/default/button-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "button-demo", - "type": "registry:example", - "registryDependencies": [ - "button" - ], - "files": [ - { - "path": "example/button-demo.tsx", - "content": "import { Button } from \"@/components/ui/button\"\n\nexport default function ButtonDemo() {\n return \n}\n", - "type": "registry:example", - "target": "components/button-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/button-destructive.json b/apps/www/public/r/styles/default/button-destructive.json deleted file mode 100644 index d97c2a9c..00000000 --- a/apps/www/public/r/styles/default/button-destructive.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "button-destructive", - "type": "registry:example", - "registryDependencies": [ - "button" - ], - "files": [ - { - "path": "example/button-destructive.tsx", - "content": "import { Button } from \"@/components/ui/button\"\n\nexport default function ButtonDestructive() {\n return \n}\n", - "type": "registry:example", - "target": "components/button-destructive.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/button-ghost.json b/apps/www/public/r/styles/default/button-ghost.json deleted file mode 100644 index 59565e9c..00000000 --- a/apps/www/public/r/styles/default/button-ghost.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "button-ghost", - "type": "registry:example", - "registryDependencies": [ - "button" - ], - "files": [ - { - "path": "example/button-ghost.tsx", - "content": "import { Button } from \"@/components/ui/button\"\n\nexport default function ButtonGhost() {\n return \n}\n", - "type": "registry:example", - "target": "components/button-ghost.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/button-icon.json b/apps/www/public/r/styles/default/button-icon.json deleted file mode 100644 index 8a3d5546..00000000 --- a/apps/www/public/r/styles/default/button-icon.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "button-icon", - "type": "registry:example", - "registryDependencies": [ - "button" - ], - "files": [ - { - "path": "example/button-icon.tsx", - "content": "import { ChevronRight } from \"lucide-react\"\n\nimport { Button } from \"@/components/ui/button\"\n\nexport default function ButtonIcon() {\n return (\n \n )\n}\n", - "type": "registry:example", - "target": "components/button-icon.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/button-link.json b/apps/www/public/r/styles/default/button-link.json deleted file mode 100644 index a32bbfaa..00000000 --- a/apps/www/public/r/styles/default/button-link.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "button-link", - "type": "registry:example", - "registryDependencies": [ - "button" - ], - "files": [ - { - "path": "example/button-link.tsx", - "content": "import { Button } from \"@/components/ui/button\"\n\nexport default function ButtonLink() {\n return \n}\n", - "type": "registry:example", - "target": "components/button-link.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/button-loading.json b/apps/www/public/r/styles/default/button-loading.json deleted file mode 100644 index c794c3e4..00000000 --- a/apps/www/public/r/styles/default/button-loading.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "button-loading", - "type": "registry:example", - "registryDependencies": [ - "button" - ], - "files": [ - { - "path": "example/button-loading.tsx", - "content": "import { Loader2 } from \"lucide-react\"\n\nimport { Button } from \"@/components/ui/button\"\n\nexport default function ButtonLoading() {\n return (\n \n )\n}\n", - "type": "registry:example", - "target": "components/button-loading.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/button-outline.json b/apps/www/public/r/styles/default/button-outline.json deleted file mode 100644 index 7bd0ddcc..00000000 --- a/apps/www/public/r/styles/default/button-outline.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "button-outline", - "type": "registry:example", - "registryDependencies": [ - "button" - ], - "files": [ - { - "path": "example/button-outline.tsx", - "content": "import { Button } from \"@/components/ui/button\"\n\nexport default function ButtonOutline() {\n return \n}\n", - "type": "registry:example", - "target": "components/button-outline.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/button-secondary.json b/apps/www/public/r/styles/default/button-secondary.json deleted file mode 100644 index 5f5d3aaf..00000000 --- a/apps/www/public/r/styles/default/button-secondary.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "button-secondary", - "type": "registry:example", - "registryDependencies": [ - "button" - ], - "files": [ - { - "path": "example/button-secondary.tsx", - "content": "import { Button } from \"@/components/ui/button\"\n\nexport default function ButtonSecondary() {\n return \n}\n", - "type": "registry:example", - "target": "components/button-secondary.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/button-with-icon.json b/apps/www/public/r/styles/default/button-with-icon.json deleted file mode 100644 index 7c12d1c1..00000000 --- a/apps/www/public/r/styles/default/button-with-icon.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "button-with-icon", - "type": "registry:example", - "registryDependencies": [ - "button" - ], - "files": [ - { - "path": "example/button-with-icon.tsx", - "content": "import { Mail } from \"lucide-react\"\n\nimport { Button } from \"@/components/ui/button\"\n\nexport default function ButtonWithIcon() {\n return (\n \n )\n}\n", - "type": "registry:example", - "target": "components/button-with-icon.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/calendar-demo.json b/apps/www/public/r/styles/default/calendar-demo.json deleted file mode 100644 index 7f841ae5..00000000 --- a/apps/www/public/r/styles/default/calendar-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "calendar-demo", - "type": "registry:example", - "registryDependencies": [ - "calendar" - ], - "files": [ - { - "path": "example/calendar-demo.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Calendar } from \"@/components/ui/calendar\"\n\nexport default function CalendarDemo() {\n const [date, setDate] = React.useState(new Date())\n\n return (\n \n )\n}\n", - "type": "registry:example", - "target": "components/calendar-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/calendar-form.json b/apps/www/public/r/styles/default/calendar-form.json deleted file mode 100644 index 758e7299..00000000 --- a/apps/www/public/r/styles/default/calendar-form.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "calendar-form", - "type": "registry:example", - "registryDependencies": [ - "calendar", - "form", - "popover" - ], - "files": [ - { - "path": "example/calendar-form.tsx", - "content": "\"use client\"\n\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { format } from \"date-fns\"\nimport { CalendarIcon } from \"lucide-react\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\n\nimport { cn } from \"@/lib/utils\"\nimport { toast } from \"@/hooks/use-toast\"\nimport { Button } from \"@/components/ui/button\"\nimport { Calendar } from \"@/components/ui/calendar\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\nconst FormSchema = z.object({\n dob: z.date({\n required_error: \"A date of birth is required.\",\n }),\n})\n\nexport default function CalendarForm() {\n const form = useForm>({\n resolver: zodResolver(FormSchema),\n })\n\n function onSubmit(data: z.infer) {\n toast({\n title: \"You submitted the following values:\",\n description: (\n
\n          {JSON.stringify(data, null, 2)}\n        
\n ),\n })\n }\n\n return (\n
\n \n (\n \n Date of birth\n \n \n \n \n {field.value ? (\n format(field.value, \"PPP\")\n ) : (\n Pick a date\n )}\n \n \n \n \n \n \n date > new Date() || date < new Date(\"1900-01-01\")\n }\n initialFocus\n />\n \n \n \n Your date of birth is used to calculate your age.\n \n \n \n )}\n />\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/calendar-form.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/card-demo.json b/apps/www/public/r/styles/default/card-demo.json deleted file mode 100644 index 0d1e5600..00000000 --- a/apps/www/public/r/styles/default/card-demo.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "card-demo", - "type": "registry:example", - "registryDependencies": [ - "card", - "button", - "switch" - ], - "files": [ - { - "path": "example/card-demo.tsx", - "content": "import { BellRing, Check } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Switch } from \"@/components/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 default 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 \n
\n )\n}\n", - "type": "registry:example", - "target": "components/card-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/card-with-form.json b/apps/www/public/r/styles/default/card-with-form.json deleted file mode 100644 index 506afeb8..00000000 --- a/apps/www/public/r/styles/default/card-with-form.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "card-with-form", - "type": "registry:example", - "registryDependencies": [ - "button", - "card", - "input", - "label", - "select" - ], - "files": [ - { - "path": "example/card-with-form.tsx", - "content": "import * as React from \"react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\n\nexport default function CardWithForm() {\n return (\n \n \n Create project\n Deploy your new project in one-click.\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:example", - "target": "components/card-with-form.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/carousel-api.json b/apps/www/public/r/styles/default/carousel-api.json deleted file mode 100644 index 169a1a5c..00000000 --- a/apps/www/public/r/styles/default/carousel-api.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "carousel-api", - "type": "registry:example", - "registryDependencies": [ - "carousel" - ], - "files": [ - { - "path": "example/carousel-api.tsx", - "content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/components/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n type CarouselApi,\n} from \"@/components/ui/carousel\"\n\nexport default function CarouselDApiDemo() {\n const [api, setApi] = React.useState()\n const [current, setCurrent] = React.useState(0)\n const [count, setCount] = React.useState(0)\n\n React.useEffect(() => {\n if (!api) {\n return\n }\n\n setCount(api.scrollSnapList().length)\n setCurrent(api.selectedScrollSnap() + 1)\n\n api.on(\"select\", () => {\n setCurrent(api.selectedScrollSnap() + 1)\n })\n }, [api])\n\n return (\n
\n \n \n {Array.from({ length: 5 }).map((_, index) => (\n \n \n \n {index + 1}\n \n \n \n ))}\n \n \n \n \n
\n Slide {current} of {count}\n
\n
\n )\n}\n", - "type": "registry:example", - "target": "components/carousel-api.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/carousel-demo.json b/apps/www/public/r/styles/default/carousel-demo.json deleted file mode 100644 index 9c7ff8a1..00000000 --- a/apps/www/public/r/styles/default/carousel-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "carousel-demo", - "type": "registry:example", - "registryDependencies": [ - "carousel" - ], - "files": [ - { - "path": "example/carousel-demo.tsx", - "content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/components/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/components/ui/carousel\"\n\nexport default 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:example", - "target": "components/carousel-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/carousel-orientation.json b/apps/www/public/r/styles/default/carousel-orientation.json deleted file mode 100644 index 0024d04c..00000000 --- a/apps/www/public/r/styles/default/carousel-orientation.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "carousel-orientation", - "type": "registry:example", - "registryDependencies": [ - "carousel" - ], - "files": [ - { - "path": "example/carousel-orientation.tsx", - "content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/components/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/components/ui/carousel\"\n\nexport default function CarouselOrientation() {\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:example", - "target": "components/carousel-orientation.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/carousel-plugin.json b/apps/www/public/r/styles/default/carousel-plugin.json deleted file mode 100644 index 64404496..00000000 --- a/apps/www/public/r/styles/default/carousel-plugin.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "carousel-plugin", - "type": "registry:example", - "registryDependencies": [ - "carousel" - ], - "files": [ - { - "path": "example/carousel-plugin.tsx", - "content": "import * as React from \"react\"\nimport Autoplay from \"embla-carousel-autoplay\"\n\nimport { Card, CardContent } from \"@/components/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/components/ui/carousel\"\n\nexport default function CarouselPlugin() {\n const plugin = React.useRef(\n Autoplay({ delay: 2000, stopOnInteraction: true })\n )\n\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:example", - "target": "components/carousel-plugin.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/carousel-size.json b/apps/www/public/r/styles/default/carousel-size.json deleted file mode 100644 index 195926c5..00000000 --- a/apps/www/public/r/styles/default/carousel-size.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "carousel-size", - "type": "registry:example", - "registryDependencies": [ - "carousel" - ], - "files": [ - { - "path": "example/carousel-size.tsx", - "content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/components/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/components/ui/carousel\"\n\nexport default function CarouselSize() {\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:example", - "target": "components/carousel-size.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/carousel-spacing.json b/apps/www/public/r/styles/default/carousel-spacing.json deleted file mode 100644 index 312c8dde..00000000 --- a/apps/www/public/r/styles/default/carousel-spacing.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "carousel-spacing", - "type": "registry:example", - "registryDependencies": [ - "carousel" - ], - "files": [ - { - "path": "example/carousel-spacing.tsx", - "content": "import * as React from \"react\"\n\nimport { Card, CardContent } from \"@/components/ui/card\"\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n} from \"@/components/ui/carousel\"\n\nexport default function CarouselSpacing() {\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:example", - "target": "components/carousel-spacing.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/chart-bar-demo-axis.json b/apps/www/public/r/styles/default/chart-bar-demo-axis.json deleted file mode 100644 index ad25538b..00000000 --- a/apps/www/public/r/styles/default/chart-bar-demo-axis.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "chart-bar-demo-axis", - "type": "registry:example", - "files": [ - { - "path": "example/chart-bar-demo-axis.tsx", - "content": "\"use client\"\n\nimport { Bar, BarChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport { ChartConfig, ChartContainer } from \"@/components/ui/chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"#2563eb\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"#60a5fa\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n \n value.slice(0, 3)}\n />\n \n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/chart-bar-demo-axis.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/chart-bar-demo-grid.json b/apps/www/public/r/styles/default/chart-bar-demo-grid.json deleted file mode 100644 index 43da00de..00000000 --- a/apps/www/public/r/styles/default/chart-bar-demo-grid.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "chart-bar-demo-grid", - "type": "registry:example", - "files": [ - { - "path": "example/chart-bar-demo-grid.tsx", - "content": "\"use client\"\n\nimport { Bar, BarChart, CartesianGrid } from \"recharts\"\n\nimport { ChartConfig, ChartContainer } from \"@/components/ui/chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"#2563eb\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"#60a5fa\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n \n \n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/chart-bar-demo-grid.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/chart-bar-demo-legend.json b/apps/www/public/r/styles/default/chart-bar-demo-legend.json deleted file mode 100644 index 7258850e..00000000 --- a/apps/www/public/r/styles/default/chart-bar-demo-legend.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "chart-bar-demo-legend", - "type": "registry:example", - "files": [ - { - "path": "example/chart-bar-demo-legend.tsx", - "content": "\"use client\"\n\nimport { Bar, BarChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n ChartConfig,\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/components/ui/chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"#2563eb\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"#60a5fa\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n \n value.slice(0, 3)}\n />\n } />\n } />\n \n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/chart-bar-demo-legend.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/chart-bar-demo-tooltip.json b/apps/www/public/r/styles/default/chart-bar-demo-tooltip.json deleted file mode 100644 index 8bda5abf..00000000 --- a/apps/www/public/r/styles/default/chart-bar-demo-tooltip.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "chart-bar-demo-tooltip", - "type": "registry:example", - "files": [ - { - "path": "example/chart-bar-demo-tooltip.tsx", - "content": "\"use client\"\n\nimport { Bar, BarChart, CartesianGrid, XAxis } from \"recharts\"\n\nimport {\n ChartConfig,\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/components/ui/chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"#2563eb\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"#60a5fa\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n \n value.slice(0, 3)}\n />\n } />\n \n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/chart-bar-demo-tooltip.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/chart-bar-demo.json b/apps/www/public/r/styles/default/chart-bar-demo.json deleted file mode 100644 index 86cfc97b..00000000 --- a/apps/www/public/r/styles/default/chart-bar-demo.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "chart-bar-demo", - "type": "registry:example", - "files": [ - { - "path": "example/chart-bar-demo.tsx", - "content": "\"use client\"\n\nimport { Bar, BarChart } from \"recharts\"\n\nimport { ChartConfig, ChartContainer } from \"@/components/ui/chart\"\n\nconst chartData = [\n { month: \"January\", desktop: 186, mobile: 80 },\n { month: \"February\", desktop: 305, mobile: 200 },\n { month: \"March\", desktop: 237, mobile: 120 },\n { month: \"April\", desktop: 73, mobile: 190 },\n { month: \"May\", desktop: 209, mobile: 130 },\n { month: \"June\", desktop: 214, mobile: 140 },\n]\n\nconst chartConfig = {\n desktop: {\n label: \"Desktop\",\n color: \"#2563eb\",\n },\n mobile: {\n label: \"Mobile\",\n color: \"#60a5fa\",\n },\n} satisfies ChartConfig\n\nexport default function Component() {\n return (\n \n \n \n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/chart-bar-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/chart-tooltip-demo.json b/apps/www/public/r/styles/default/chart-tooltip-demo.json deleted file mode 100644 index 2f997734..00000000 --- a/apps/www/public/r/styles/default/chart-tooltip-demo.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "chart-tooltip-demo", - "type": "registry:example", - "files": [ - { - "path": "example/chart-tooltip-demo.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nexport default function Component() {\n return (\n
div]:relative [&>div]:flex [&>div]:h-[137px] [&>div]:w-[224px] [&>div]:items-center [&>div]:justify-center [&>div]:p-4\">\n
\n
\n Label\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n Name\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n Indicator\n
\n \n \n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction TooltipDemo({\n indicator = \"dot\",\n label,\n payload,\n hideLabel,\n hideIndicator,\n className,\n}: {\n label: string\n hideLabel?: boolean\n hideIndicator?: boolean\n indicator?: \"line\" | \"dot\" | \"dashed\"\n payload: {\n name: string\n value: number\n fill: string\n }[]\n nameKey?: string\n labelKey?: string\n} & React.ComponentProps<\"div\">) {\n const tooltipLabel = hideLabel ? null : (\n
{label}
\n )\n\n if (!payload?.length) {\n return null\n }\n\n const nestLabel = payload.length === 1 && indicator !== \"dot\"\n\n return (\n \n {!nestLabel ? tooltipLabel : null}\n
\n {payload.map((item, index) => {\n const indicatorColor = item.fill\n\n return (\n svg]:h-2.5 [&>svg]:w-2.5 [&>svg]:text-muted-foreground\",\n indicator === \"dot\" && \"items-center\"\n )}\n >\n <>\n {!hideIndicator && (\n \n )}\n \n
\n {nestLabel ? tooltipLabel : null}\n {item.name}\n
\n \n {item.value.toLocaleString()}\n \n
\n \n \n )\n })}\n \n \n )\n}\n", - "type": "registry:example", - "target": "components/chart-tooltip-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/chat-demo.json b/apps/www/public/r/styles/default/chat-demo.json deleted file mode 100644 index 453b642a..00000000 --- a/apps/www/public/r/styles/default/chat-demo.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "chat-demo", - "type": "registry:example", - "description": "A chat interface with message bubbles and a form to send new messages", - "files": [ - { - "path": "example/chat-demo.tsx", - "content": "import { useChat } from \"ai/react\"\n\nimport { Chat } from \"../ui/chat\"\n\nexport default function ChatDemo() {\n const {\n messages,\n input,\n handleInputChange,\n handleSubmit,\n error,\n append,\n stop,\n isLoading,\n } = useChat()\n\n const lastMessage = messages.at(-1)\n\n return (\n
\n \n
\n )\n}\n", - "type": "registry:example", - "target": "components/chat-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/chat-message.json b/apps/www/public/r/styles/default/chat-message.json deleted file mode 100644 index fc708cac..00000000 --- a/apps/www/public/r/styles/default/chat-message.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "chat-message", - "type": "registry:ui", - "files": [ - { - "path": "ui/chat-message.tsx", - "content": "\"use client\"\n\nimport React from \"react\"\nimport type { Attachment } from \"ai\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { ThumbsDown, ThumbsUp } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { CopyButton } from \"@/components/ui/copy-button\"\nimport { MarkdownRenderer } from \"@/components/ui/markdown-renderer\"\n\nconst chatBubbleVariants = cva(\n \"group/message relative break-words rounded-lg p-3 text-sm sm:max-w-[70%]\",\n {\n variants: {\n isUser: {\n true: \"bg-primary\",\n false: \"bg-muted\",\n },\n animation: {\n none: \"\",\n slide: \"animate-in fade-in-0 duration-300\",\n scale: \"animate-in fade-in-0 zoom-in-75 duration-300\",\n fade: \"animate-in fade-in-0 duration-500\",\n },\n },\n compoundVariants: [\n {\n isUser: true,\n animation: \"slide\",\n class: \"slide-in-from-right\",\n },\n {\n isUser: false,\n animation: \"slide\",\n class: \"slide-in-from-left\",\n },\n {\n isUser: true,\n animation: \"scale\",\n class: \"origin-bottom-right\",\n },\n {\n isUser: false,\n animation: \"scale\",\n class: \"origin-bottom-left\",\n },\n ],\n }\n)\n\ntype Animation = VariantProps[\"animation\"]\n\nexport interface Message {\n id: string\n role: \"user\" | \"assistant\" | (string & {})\n content: string\n createdAt?: Date\n experimental_attachments?: Attachment[]\n}\n\nexport interface ChatMessageProps extends Message {\n showTimeStamp?: boolean\n animation?: Animation\n}\n\nexport const ChatMessage: React.FC = ({\n role,\n content,\n createdAt,\n showTimeStamp = true,\n animation = \"scale\",\n}) => {\n const isUser = role === \"user\"\n\n const formattedTime = createdAt?.toLocaleTimeString(\"en-US\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n })\n\n return (\n
\n
\n {/* TODO: improve markdown rendering */}\n \n \n
\n\n {role === \"assistant\" ? (\n
\n
\n \n
\n \n \n
\n ) : null}\n
\n\n {showTimeStamp && createdAt ? (\n \n {formattedTime}\n \n ) : null}\n \n )\n}\n", - "type": "registry:ui", - "target": "components/ui/chat-message.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/chat.json b/apps/www/public/r/styles/default/chat.json deleted file mode 100644 index a0607679..00000000 --- a/apps/www/public/r/styles/default/chat.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "chat", - "type": "registry:ui", - "registryDependencies": [ - "button", - "http://localhost:3333/r/chat-message.json", - "http://localhost:3333/r/message-input.json", - "http://localhost:3333/r/message-list.json", - "http://localhost:3333/r/prompt-suggestions.json", - "http://localhost:3333/r/use-auto-scroll.json" - ], - "files": [ - { - "path": "ui/chat.tsx", - "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { ArrowDown } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { useAutoScroll } from \"@/hooks/use-auto-scroll\"\nimport { Button } from \"@/components/ui/button\"\nimport { type Message } from \"@/components/ui/chat-message\"\nimport { MessageInput } from \"@/components/ui/message-input\"\nimport { MessageList } from \"@/components/ui/message-list\"\nimport { PromptSuggestions } from \"@/components/ui/prompt-suggestions\"\n\n// TODO: expose subcomponent props\ninterface ChatPropsBase {\n handleSubmit: (\n event?: { preventDefault?: () => void },\n options?: { experimental_attachments?: FileList }\n ) => void\n messages: Array\n className?: string\n input: string\n handleInputChange: React.ChangeEventHandler\n isLoading?: boolean\n isGenerating: boolean\n stop?: () => void\n}\n\ninterface ChatPropsWithoutSuggestions extends ChatPropsBase {\n append?: never\n suggestions?: never\n}\n\ninterface ChatPropsWithSuggestions extends ChatPropsBase {\n append: (message: { role: \"user\"; content: string }) => void\n suggestions: string[]\n}\n\ntype ChatProps = ChatPropsWithoutSuggestions | ChatPropsWithSuggestions\n\nexport const Chat: React.FC = ({\n messages,\n handleSubmit,\n input,\n handleInputChange,\n className,\n isLoading = false,\n append,\n suggestions,\n stop,\n isGenerating,\n}) => {\n const [files, setFiles] = useState(null)\n const { containerRef, scrollToBottom, handleScroll, shouldAutoScroll } =\n useAutoScroll([messages])\n\n const onSubmit = (event: React.FormEvent) => {\n if (isGenerating || isLoading) {\n event.preventDefault()\n return\n }\n\n if (!files) {\n handleSubmit(event)\n return\n }\n\n const fileList = createFileList(files)\n handleSubmit(event, { experimental_attachments: fileList })\n setFiles(null)\n }\n\n return (\n
\n {messages.length === 0 && append && suggestions ? (\n \n ) : null}\n\n {messages.length > 0 ? (\n \n \n {!shouldAutoScroll && (\n
\n \n \n \n
\n )}\n
\n ) : null}\n\n
\n \n \n \n )\n}\nChat.displayName = \"Chat\"\n\nfunction createFileList(files: File[] | FileList): FileList {\n const dataTransfer = new DataTransfer()\n for (const file of Array.from(files)) {\n dataTransfer.items.add(file)\n }\n return dataTransfer.files\n}\n", - "type": "registry:ui", - "target": "components/ui/chat.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/checkbox-demo.json b/apps/www/public/r/styles/default/checkbox-demo.json deleted file mode 100644 index f7fc973d..00000000 --- a/apps/www/public/r/styles/default/checkbox-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "checkbox-demo", - "type": "registry:example", - "registryDependencies": [ - "checkbox" - ], - "files": [ - { - "path": "example/checkbox-demo.tsx", - "content": "\"use client\"\n\nimport { Checkbox } from \"@/components/ui/checkbox\"\n\nexport default function CheckboxDemo() {\n return (\n
\n \n \n Accept terms and conditions\n \n
\n )\n}\n", - "type": "registry:example", - "target": "components/checkbox-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/checkbox-disabled.json b/apps/www/public/r/styles/default/checkbox-disabled.json deleted file mode 100644 index a2ea6bb8..00000000 --- a/apps/www/public/r/styles/default/checkbox-disabled.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "checkbox-disabled", - "type": "registry:example", - "registryDependencies": [ - "checkbox" - ], - "files": [ - { - "path": "example/checkbox-disabled.tsx", - "content": "import { Checkbox } from \"@/components/ui/checkbox\"\n\nexport default function CheckboxDisabled() {\n return (\n
\n \n \n Accept terms and conditions\n \n
\n )\n}\n", - "type": "registry:example", - "target": "components/checkbox-disabled.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/checkbox-form-multiple.json b/apps/www/public/r/styles/default/checkbox-form-multiple.json deleted file mode 100644 index 25400aa7..00000000 --- a/apps/www/public/r/styles/default/checkbox-form-multiple.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "checkbox-form-multiple", - "type": "registry:example", - "registryDependencies": [ - "checkbox", - "form" - ], - "files": [ - { - "path": "example/checkbox-form-multiple.tsx", - "content": "\"use client\"\n\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\n\nimport { toast } from \"@/hooks/use-toast\"\nimport { Button } from \"@/components/ui/button\"\nimport { Checkbox } from \"@/components/ui/checkbox\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form\"\n\nconst items = [\n {\n id: \"recents\",\n label: \"Recents\",\n },\n {\n id: \"home\",\n label: \"Home\",\n },\n {\n id: \"applications\",\n label: \"Applications\",\n },\n {\n id: \"desktop\",\n label: \"Desktop\",\n },\n {\n id: \"downloads\",\n label: \"Downloads\",\n },\n {\n id: \"documents\",\n label: \"Documents\",\n },\n] as const\n\nconst FormSchema = z.object({\n items: z.array(z.string()).refine((value) => value.some((item) => item), {\n message: \"You have to select at least one item.\",\n }),\n})\n\nexport default function CheckboxReactHookFormMultiple() {\n const form = useForm>({\n resolver: zodResolver(FormSchema),\n defaultValues: {\n items: [\"recents\", \"home\"],\n },\n })\n\n function onSubmit(data: z.infer) {\n toast({\n title: \"You submitted the following values:\",\n description: (\n
\n          {JSON.stringify(data, null, 2)}\n        
\n ),\n })\n }\n\n return (\n
\n \n (\n \n
\n Sidebar\n \n Select the items you want to display in the sidebar.\n \n
\n {items.map((item) => (\n {\n return (\n \n \n {\n return checked\n ? field.onChange([...field.value, item.id])\n : field.onChange(\n field.value?.filter(\n (value) => value !== item.id\n )\n )\n }}\n />\n \n \n {item.label}\n \n
\n )\n }}\n />\n ))}\n \n \n )}\n />\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/checkbox-form-multiple.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/checkbox-form-single.json b/apps/www/public/r/styles/default/checkbox-form-single.json deleted file mode 100644 index 3fdd2496..00000000 --- a/apps/www/public/r/styles/default/checkbox-form-single.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "checkbox-form-single", - "type": "registry:example", - "registryDependencies": [ - "checkbox", - "form" - ], - "files": [ - { - "path": "example/checkbox-form-single.tsx", - "content": "\"use client\"\n\nimport Link from \"next/link\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\n\nimport { toast } from \"@/hooks/use-toast\"\nimport { Button } from \"@/components/ui/button\"\nimport { Checkbox } from \"@/components/ui/checkbox\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n} from \"@/components/ui/form\"\n\nconst FormSchema = z.object({\n mobile: z.boolean().default(false).optional(),\n})\n\nexport default function CheckboxReactHookFormSingle() {\n const form = useForm>({\n resolver: zodResolver(FormSchema),\n defaultValues: {\n mobile: true,\n },\n })\n\n function onSubmit(data: z.infer) {\n toast({\n title: \"You submitted the following values:\",\n description: (\n
\n          {JSON.stringify(data, null, 2)}\n        
\n ),\n })\n }\n\n return (\n
\n \n (\n \n \n \n \n
\n \n Use different settings for my mobile devices\n \n \n You can manage your mobile notifications in the{\" \"}\n mobile settings page.\n \n
\n
\n )}\n />\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/checkbox-form-single.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/checkbox-with-text.json b/apps/www/public/r/styles/default/checkbox-with-text.json deleted file mode 100644 index ebaa3abc..00000000 --- a/apps/www/public/r/styles/default/checkbox-with-text.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "checkbox-with-text", - "type": "registry:example", - "registryDependencies": [ - "checkbox" - ], - "files": [ - { - "path": "example/checkbox-with-text.tsx", - "content": "\"use client\"\n\nimport { Checkbox } from \"@/components/ui/checkbox\"\n\nexport default function CheckboxWithText() {\n return (\n
\n \n
\n \n Accept terms and conditions\n \n

\n You agree to our Terms of Service and Privacy Policy.\n

\n
\n
\n )\n}\n", - "type": "registry:example", - "target": "components/checkbox-with-text.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/collapsible-demo.json b/apps/www/public/r/styles/default/collapsible-demo.json deleted file mode 100644 index 5dd09c28..00000000 --- a/apps/www/public/r/styles/default/collapsible-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "collapsible-demo", - "type": "registry:example", - "registryDependencies": [ - "collapsible" - ], - "files": [ - { - "path": "example/collapsible-demo.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronsUpDown, Plus, X } from \"lucide-react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\n\nexport default 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
\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:example", - "target": "components/collapsible-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/combobox-demo.json b/apps/www/public/r/styles/default/combobox-demo.json deleted file mode 100644 index e3c7e6fb..00000000 --- a/apps/www/public/r/styles/default/combobox-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "combobox-demo", - "type": "registry:example", - "registryDependencies": [ - "command" - ], - "files": [ - { - "path": "example/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 \"@/components/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/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 default 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 \n {framework.label}\n \n ))}\n \n \n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/combobox-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/combobox-dropdown-menu.json b/apps/www/public/r/styles/default/combobox-dropdown-menu.json deleted file mode 100644 index f22bbcbf..00000000 --- a/apps/www/public/r/styles/default/combobox-dropdown-menu.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "combobox-dropdown-menu", - "type": "registry:example", - "registryDependencies": [ - "command", - "dropdown-menu", - "button" - ], - "files": [ - { - "path": "example/combobox-dropdown-menu.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Calendar, MoreHorizontal, Tags, Trash, User } from \"lucide-react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\n\nconst labels = [\n \"feature\",\n \"bug\",\n \"enhancement\",\n \"documentation\",\n \"design\",\n \"question\",\n \"maintenance\",\n]\n\nexport default function ComboboxDropdownMenu() {\n const [label, setLabel] = React.useState(\"feature\")\n const [open, setOpen] = React.useState(false)\n\n return (\n
\n

\n \n {label}\n \n Create a new project\n

\n \n \n \n \n \n Actions\n \n \n \n Assign to...\n \n \n \n Set due date...\n \n \n \n \n \n Apply label\n \n \n \n \n \n No label found.\n \n {labels.map((label) => (\n {\n setLabel(value)\n setOpen(false)\n }}\n >\n {label}\n \n ))}\n \n \n \n \n \n \n \n \n Delete\n ⌘⌫\n \n \n \n \n
\n )\n}\n", - "type": "registry:example", - "target": "components/combobox-dropdown-menu.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/combobox-form.json b/apps/www/public/r/styles/default/combobox-form.json deleted file mode 100644 index 8e0c79b2..00000000 --- a/apps/www/public/r/styles/default/combobox-form.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "combobox-form", - "type": "registry:example", - "registryDependencies": [ - "command", - "form" - ], - "files": [ - { - "path": "example/combobox-form.tsx", - "content": "\"use client\"\n\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { Check, ChevronsUpDown } from \"lucide-react\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\n\nimport { cn } from \"@/lib/utils\"\nimport { toast } from \"@/hooks/use-toast\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\nconst languages = [\n { label: \"English\", value: \"en\" },\n { label: \"French\", value: \"fr\" },\n { label: \"German\", value: \"de\" },\n { label: \"Spanish\", value: \"es\" },\n { label: \"Portuguese\", value: \"pt\" },\n { label: \"Russian\", value: \"ru\" },\n { label: \"Japanese\", value: \"ja\" },\n { label: \"Korean\", value: \"ko\" },\n { label: \"Chinese\", value: \"zh\" },\n] as const\n\nconst FormSchema = z.object({\n language: z.string({\n required_error: \"Please select a language.\",\n }),\n})\n\nexport default function ComboboxForm() {\n const form = useForm>({\n resolver: zodResolver(FormSchema),\n })\n\n function onSubmit(data: z.infer) {\n toast({\n title: \"You submitted the following values:\",\n description: (\n
\n          {JSON.stringify(data, null, 2)}\n        
\n ),\n })\n }\n\n return (\n
\n \n (\n \n Language\n \n \n \n \n {field.value\n ? languages.find(\n (language) => language.value === field.value\n )?.label\n : \"Select language\"}\n \n \n \n \n \n \n \n \n No language found.\n \n {languages.map((language) => (\n {\n form.setValue(\"language\", language.value)\n }}\n >\n \n {language.label}\n \n ))}\n \n \n \n \n \n \n This is the language that will be used in the dashboard.\n \n \n \n )}\n />\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/combobox-form.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/combobox-popover.json b/apps/www/public/r/styles/default/combobox-popover.json deleted file mode 100644 index df902278..00000000 --- a/apps/www/public/r/styles/default/combobox-popover.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "combobox-popover", - "type": "registry:example", - "registryDependencies": [ - "combobox", - "popover" - ], - "files": [ - { - "path": "example/combobox-popover.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n ArrowUpCircle,\n CheckCircle2,\n Circle,\n HelpCircle,\n LucideIcon,\n XCircle,\n} from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\ntype Status = {\n value: string\n label: string\n icon: LucideIcon\n}\n\nconst statuses: Status[] = [\n {\n value: \"backlog\",\n label: \"Backlog\",\n icon: HelpCircle,\n },\n {\n value: \"todo\",\n label: \"Todo\",\n icon: Circle,\n },\n {\n value: \"in progress\",\n label: \"In Progress\",\n icon: ArrowUpCircle,\n },\n {\n value: \"done\",\n label: \"Done\",\n icon: CheckCircle2,\n },\n {\n value: \"canceled\",\n label: \"Canceled\",\n icon: XCircle,\n },\n]\n\nexport default function ComboboxPopover() {\n const [open, setOpen] = React.useState(false)\n const [selectedStatus, setSelectedStatus] = React.useState(\n null\n )\n\n return (\n
\n

Status

\n \n \n \n {selectedStatus ? (\n <>\n \n {selectedStatus.label}\n \n ) : (\n <>+ Set status\n )}\n \n \n \n \n \n \n No results found.\n \n {statuses.map((status) => (\n {\n setSelectedStatus(\n statuses.find((priority) => priority.value === value) ||\n null\n )\n setOpen(false)\n }}\n >\n \n {status.label}\n \n ))}\n \n \n \n \n \n
\n )\n}\n", - "type": "registry:example", - "target": "components/combobox-popover.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/combobox-responsive.json b/apps/www/public/r/styles/default/combobox-responsive.json deleted file mode 100644 index 87672559..00000000 --- a/apps/www/public/r/styles/default/combobox-responsive.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "combobox-responsive", - "type": "registry:example", - "registryDependencies": [ - "combobox", - "popover", - "drawer" - ], - "files": [ - { - "path": "example/combobox-responsive.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { useMediaQuery } from \"@/hooks/use-media-query\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/components/ui/command\"\nimport {\n Drawer,\n DrawerContent,\n DrawerTrigger,\n} from \"@/components/ui/drawer\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\ntype Status = {\n value: string\n label: string\n}\n\nconst statuses: Status[] = [\n {\n value: \"backlog\",\n label: \"Backlog\",\n },\n {\n value: \"todo\",\n label: \"Todo\",\n },\n {\n value: \"in progress\",\n label: \"In Progress\",\n },\n {\n value: \"done\",\n label: \"Done\",\n },\n {\n value: \"canceled\",\n label: \"Canceled\",\n },\n]\n\nexport default function ComboBoxResponsive() {\n const [open, setOpen] = React.useState(false)\n const isDesktop = useMediaQuery(\"(min-width: 768px)\")\n const [selectedStatus, setSelectedStatus] = React.useState(\n null\n )\n\n if (isDesktop) {\n return (\n \n \n \n \n \n \n \n \n )\n }\n\n return (\n \n \n \n \n \n
\n \n
\n
\n
\n )\n}\n\nfunction StatusList({\n setOpen,\n setSelectedStatus,\n}: {\n setOpen: (open: boolean) => void\n setSelectedStatus: (status: Status | null) => void\n}) {\n return (\n \n \n \n No results found.\n \n {statuses.map((status) => (\n {\n setSelectedStatus(\n statuses.find((priority) => priority.value === value) || null\n )\n setOpen(false)\n }}\n >\n {status.label}\n \n ))}\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/combobox-responsive.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/command-demo.json b/apps/www/public/r/styles/default/command-demo.json deleted file mode 100644 index 5a89af7a..00000000 --- a/apps/www/public/r/styles/default/command-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "command-demo", - "type": "registry:example", - "registryDependencies": [ - "command" - ], - "files": [ - { - "path": "example/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 \"@/components/ui/command\"\n\nexport default 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:example", - "target": "components/command-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/command-dialog.json b/apps/www/public/r/styles/default/command-dialog.json deleted file mode 100644 index ff213da8..00000000 --- a/apps/www/public/r/styles/default/command-dialog.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "command-dialog", - "type": "registry:example", - "registryDependencies": [ - "command", - "dialog" - ], - "files": [ - { - "path": "example/command-dialog.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n Calculator,\n Calendar,\n CreditCard,\n Settings,\n Smile,\n User,\n} from \"lucide-react\"\n\nimport {\n CommandDialog,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n CommandSeparator,\n CommandShortcut,\n} from \"@/components/ui/command\"\n\nexport default function CommandDialogDemo() {\n const [open, setOpen] = React.useState(false)\n\n React.useEffect(() => {\n const down = (e: KeyboardEvent) => {\n if (e.key === \"j\" && (e.metaKey || e.ctrlKey)) {\n e.preventDefault()\n setOpen((open) => !open)\n }\n }\n\n document.addEventListener(\"keydown\", down)\n return () => document.removeEventListener(\"keydown\", down)\n }, [])\n\n return (\n <>\n

\n Press{\" \"}\n \n J\n \n

\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}\n", - "type": "registry:example", - "target": "components/command-dialog.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/context-menu-demo.json b/apps/www/public/r/styles/default/context-menu-demo.json deleted file mode 100644 index 53f96d0f..00000000 --- a/apps/www/public/r/styles/default/context-menu-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "context-menu-demo", - "type": "registry:example", - "registryDependencies": [ - "context-menu" - ], - "files": [ - { - "path": "example/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 \"@/components/ui/context-menu\"\n\nexport default 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:example", - "target": "components/context-menu-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/copy-button.json b/apps/www/public/r/styles/default/copy-button.json deleted file mode 100644 index 62180471..00000000 --- a/apps/www/public/r/styles/default/copy-button.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "copy-button", - "type": "registry:ui", - "registryDependencies": [ - "button", - "http://localhost:3333/r/use-copy-to-clipboard.json" - ], - "files": [ - { - "path": "ui/copy-button.tsx", - "content": "\"use client\"\n\nimport { Check, Copy } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { useCopyToClipboard } from \"@/hooks/use-copy-to-clipboard\"\nimport { Button } from \"@/components/ui/button\"\n\ntype CopyButtonProps = {\n content: string\n copyMessage?: string\n}\n\nexport function CopyButton({ content, copyMessage }: CopyButtonProps) {\n const { isCopied, handleCopy } = useCopyToClipboard({\n text: content,\n copyMessage,\n })\n\n return (\n \n
\n \n
\n \n \n )\n}\n", - "type": "registry:ui", - "target": "components/ui/copy-button.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/data-table-demo.json b/apps/www/public/r/styles/default/data-table-demo.json deleted file mode 100644 index 291fc668..00000000 --- a/apps/www/public/r/styles/default/data-table-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "data-table-demo", - "type": "registry:example", - "registryDependencies": [ - "data-table" - ], - "files": [ - { - "path": "example/data-table-demo.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n ColumnDef,\n ColumnFiltersState,\n SortingState,\n VisibilityState,\n flexRender,\n getCoreRowModel,\n getFilteredRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { ArrowUpDown, ChevronDown, MoreHorizontal } from \"lucide-react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { Checkbox } from \"@/components/ui/checkbox\"\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport { Input } from \"@/components/ui/input\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\"\n\nconst data: Payment[] = [\n {\n id: \"m5gr84i9\",\n amount: 316,\n status: \"success\",\n email: \"ken99@yahoo.com\",\n },\n {\n id: \"3u1reuv4\",\n amount: 242,\n status: \"success\",\n email: \"Abe45@gmail.com\",\n },\n {\n id: \"derv1ws0\",\n amount: 837,\n status: \"processing\",\n email: \"Monserrat44@gmail.com\",\n },\n {\n id: \"5kma53ae\",\n amount: 874,\n status: \"success\",\n email: \"Silas22@gmail.com\",\n },\n {\n id: \"bhqecj4p\",\n amount: 721,\n status: \"failed\",\n email: \"carmella@hotmail.com\",\n },\n]\n\nexport type Payment = {\n id: string\n amount: number\n status: \"pending\" | \"processing\" | \"success\" | \"failed\"\n email: string\n}\n\nexport const columns: ColumnDef[] = [\n {\n id: \"select\",\n header: ({ table }) => (\n table.toggleAllPageRowsSelected(!!value)}\n aria-label=\"Select all\"\n />\n ),\n cell: ({ row }) => (\n row.toggleSelected(!!value)}\n aria-label=\"Select row\"\n />\n ),\n enableSorting: false,\n enableHiding: false,\n },\n {\n accessorKey: \"status\",\n header: \"Status\",\n cell: ({ row }) => (\n
{row.getValue(\"status\")}
\n ),\n },\n {\n accessorKey: \"email\",\n header: ({ column }) => {\n return (\n column.toggleSorting(column.getIsSorted() === \"asc\")}\n >\n Email\n \n \n )\n },\n cell: ({ row }) =>
{row.getValue(\"email\")}
,\n },\n {\n accessorKey: \"amount\",\n header: () =>
Amount
,\n cell: ({ row }) => {\n const amount = parseFloat(row.getValue(\"amount\"))\n\n // Format the amount as a dollar amount\n const formatted = new Intl.NumberFormat(\"en-US\", {\n style: \"currency\",\n currency: \"USD\",\n }).format(amount)\n\n return
{formatted}
\n },\n },\n {\n id: \"actions\",\n enableHiding: false,\n cell: ({ row }) => {\n const payment = row.original\n\n return (\n \n \n \n \n \n Actions\n navigator.clipboard.writeText(payment.id)}\n >\n Copy payment ID\n \n \n View customer\n View payment details\n \n \n )\n },\n },\n]\n\nexport default function DataTableDemo() {\n const [sorting, setSorting] = React.useState([])\n const [columnFilters, setColumnFilters] = React.useState(\n []\n )\n const [columnVisibility, setColumnVisibility] =\n React.useState({})\n const [rowSelection, setRowSelection] = React.useState({})\n\n const table = useReactTable({\n data,\n columns,\n onSortingChange: setSorting,\n onColumnFiltersChange: setColumnFilters,\n getCoreRowModel: getCoreRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n onColumnVisibilityChange: setColumnVisibility,\n onRowSelectionChange: setRowSelection,\n state: {\n sorting,\n columnFilters,\n columnVisibility,\n rowSelection,\n },\n })\n\n return (\n
\n
\n \n table.getColumn(\"email\")?.setFilterValue(event.target.value)\n }\n className=\"max-w-sm\"\n />\n \n \n \n \n \n {table\n .getAllColumns()\n .filter((column) => column.getCanHide())\n .map((column) => {\n return (\n \n column.toggleVisibility(!!value)\n }\n >\n {column.id}\n \n )\n })}\n \n \n
\n
\n \n \n {table.getHeaderGroups().map((headerGroup) => (\n \n {headerGroup.headers.map((header) => {\n return (\n \n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n \n )\n })}\n \n ))}\n \n \n {table.getRowModel().rows?.length ? (\n table.getRowModel().rows.map((row) => (\n \n {row.getVisibleCells().map((cell) => (\n \n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n \n ))}\n \n ))\n ) : (\n \n \n No results.\n \n \n )}\n \n
\n
\n
\n
\n {table.getFilteredSelectedRowModel().rows.length} of{\" \"}\n {table.getFilteredRowModel().rows.length} row(s) selected.\n
\n
\n table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n >\n Previous\n \n table.nextPage()}\n disabled={!table.getCanNextPage()}\n >\n Next\n \n
\n
\n
\n )\n}\n", - "type": "registry:example", - "target": "components/data-table-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/date-picker-demo.json b/apps/www/public/r/styles/default/date-picker-demo.json deleted file mode 100644 index 3a2d4bbc..00000000 --- a/apps/www/public/r/styles/default/date-picker-demo.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "date-picker-demo", - "type": "registry:example", - "dependencies": [ - "date-fns" - ], - "registryDependencies": [ - "button", - "calendar", - "popover" - ], - "files": [ - { - "path": "example/date-picker-demo.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { Calendar as CalendarIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Calendar } from \"@/components/ui/calendar\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\nexport default 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:example", - "target": "components/date-picker-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/date-picker-form.json b/apps/www/public/r/styles/default/date-picker-form.json deleted file mode 100644 index 6b0509fd..00000000 --- a/apps/www/public/r/styles/default/date-picker-form.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "date-picker-form", - "type": "registry:example", - "dependencies": [ - "date-fns" - ], - "registryDependencies": [ - "button", - "calendar", - "form", - "popover" - ], - "files": [ - { - "path": "example/date-picker-form.tsx", - "content": "\"use client\"\n\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { format } from \"date-fns\"\nimport { CalendarIcon } from \"lucide-react\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\n\nimport { cn } from \"@/lib/utils\"\nimport { toast } from \"@/hooks/use-toast\"\nimport { Button } from \"@/components/ui/button\"\nimport { Calendar } from \"@/components/ui/calendar\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\nconst FormSchema = z.object({\n dob: z.date({\n required_error: \"A date of birth is required.\",\n }),\n})\n\nexport default function DatePickerForm() {\n const form = useForm>({\n resolver: zodResolver(FormSchema),\n })\n\n function onSubmit(data: z.infer) {\n toast({\n title: \"You submitted the following values:\",\n description: (\n
\n          {JSON.stringify(data, null, 2)}\n        
\n ),\n })\n }\n\n return (\n
\n \n (\n \n Date of birth\n \n \n \n \n {field.value ? (\n format(field.value, \"PPP\")\n ) : (\n Pick a date\n )}\n \n \n \n \n \n \n date > new Date() || date < new Date(\"1900-01-01\")\n }\n initialFocus\n />\n \n \n \n Your date of birth is used to calculate your age.\n \n \n \n )}\n />\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/date-picker-form.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/date-picker-with-presets.json b/apps/www/public/r/styles/default/date-picker-with-presets.json deleted file mode 100644 index 8eba18d1..00000000 --- a/apps/www/public/r/styles/default/date-picker-with-presets.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "date-picker-with-presets", - "type": "registry:example", - "dependencies": [ - "date-fns" - ], - "registryDependencies": [ - "button", - "calendar", - "popover", - "select" - ], - "files": [ - { - "path": "example/date-picker-with-presets.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { addDays, format } from \"date-fns\"\nimport { Calendar as CalendarIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Calendar } from \"@/components/ui/calendar\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\n\nexport default function DatePickerWithPresets() {\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 setDate(addDays(new Date(), parseInt(value)))\n }\n >\n \n \n \n \n Today\n Tomorrow\n In 3 days\n In a week\n \n \n
\n \n
\n
\n
\n )\n}\n", - "type": "registry:example", - "target": "components/date-picker-with-presets.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/date-picker-with-range.json b/apps/www/public/r/styles/default/date-picker-with-range.json deleted file mode 100644 index 3910328c..00000000 --- a/apps/www/public/r/styles/default/date-picker-with-range.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "date-picker-with-range", - "type": "registry:example", - "dependencies": [ - "date-fns" - ], - "registryDependencies": [ - "button", - "calendar", - "popover" - ], - "files": [ - { - "path": "example/date-picker-with-range.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { addDays, format } from \"date-fns\"\nimport { Calendar as CalendarIcon } from \"lucide-react\"\nimport { DateRange } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\nimport { Calendar } from \"@/components/ui/calendar\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\nexport default function DatePickerWithRange({\n className,\n}: React.HTMLAttributes) {\n const [date, setDate] = React.useState({\n from: new Date(2022, 0, 20),\n to: addDays(new Date(2022, 0, 20), 20),\n })\n\n return (\n
\n \n \n \n \n {date?.from ? (\n date.to ? (\n <>\n {format(date.from, \"LLL dd, y\")} -{\" \"}\n {format(date.to, \"LLL dd, y\")}\n \n ) : (\n format(date.from, \"LLL dd, y\")\n )\n ) : (\n Pick a date\n )}\n \n \n \n \n \n \n
\n )\n}\n", - "type": "registry:example", - "target": "components/date-picker-with-range.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar-controlled.json b/apps/www/public/r/styles/default/demo-sidebar-controlled.json deleted file mode 100644 index 16fe2fd9..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar-controlled.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar-controlled", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar-controlled.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n Frame,\n LifeBuoy,\n Map,\n PanelLeftClose,\n PanelLeftOpen,\n PieChart,\n Send,\n} from \"lucide-react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n} from \"@/components/ui/sidebar\"\n\nconst 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 name: \"Support\",\n url: \"#\",\n icon: LifeBuoy,\n },\n {\n name: \"Feedback\",\n url: \"#\",\n icon: Send,\n },\n]\n\nexport default function AppSidebar() {\n const [open, setOpen] = React.useState(true)\n\n return (\n \n \n \n \n Projects\n \n \n {projects.map((project) => (\n \n \n \n \n {project.name}\n \n \n \n ))}\n \n \n \n \n \n \n
\n setOpen((open) => !open)}\n size=\"sm\"\n variant=\"ghost\"\n >\n {open ? : }\n {open ? \"Open\" : \"Close\"} Sidebar\n \n
\n
\n
\n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar-controlled.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar-footer.json b/apps/www/public/r/styles/default/demo-sidebar-footer.json deleted file mode 100644 index d0399033..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar-footer.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar-footer", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar-footer.tsx", - "content": "\"use client\"\n\nimport { ChevronDown, ChevronUp, User2 } from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function AppSidebar() {\n return (\n \n \n \n \n \n \n \n \n \n \n Username\n \n \n \n \n \n Account\n \n \n Billing\n \n \n Sign out\n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar-footer.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar-group-action.json b/apps/www/public/r/styles/default/demo-sidebar-group-action.json deleted file mode 100644 index ce27fd76..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar-group-action.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar-group-action", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar-group-action.tsx", - "content": "\"use client\"\n\nimport {\n ChevronDown,\n Frame,\n LifeBuoy,\n Map,\n PieChart,\n Plus,\n Send,\n} from \"lucide-react\"\nimport { Toaster, toast } from \"sonner\"\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n} from \"@/components/ui/sidebar\"\n\nexport default function AppSidebar() {\n return (\n \n \n \n \n \n Projects\n toast(\"You clicked the group action!\")}\n >\n Add Project\n \n \n \n \n \n \n \n Design Engineering\n \n \n \n \n \n \n \n Sales & Marketing\n \n \n \n \n \n \n \n Travel\n \n \n \n \n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar-group-action.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar-group-collapsible.json b/apps/www/public/r/styles/default/demo-sidebar-group-collapsible.json deleted file mode 100644 index 6c5648b5..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar-group-collapsible.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar-group-collapsible", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar-group-collapsible.tsx", - "content": "\"use client\"\n\nimport { ChevronDown, LifeBuoy, Send } from \"lucide-react\"\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n} from \"@/components/ui/sidebar\"\n\nexport default function AppSidebar() {\n return (\n \n \n \n \n \n \n \n Help\n \n \n \n \n \n \n \n \n \n Support\n \n \n \n \n \n Feedback\n \n \n \n \n \n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar-group-collapsible.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar-group.json b/apps/www/public/r/styles/default/demo-sidebar-group.json deleted file mode 100644 index 6db26391..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar-group.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar-group", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar-group.tsx", - "content": "\"use client\"\n\nimport { LifeBuoy, Send } from \"lucide-react\"\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n} from \"@/components/ui/sidebar\"\n\nexport default function AppSidebar() {\n return (\n \n \n \n \n Help\n \n \n \n \n \n Support\n \n \n \n \n \n Feedback\n \n \n \n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar-group.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar-header.json b/apps/www/public/r/styles/default/demo-sidebar-header.json deleted file mode 100644 index 4a7ebfd2..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar-header.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar-header", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar-header.tsx", - "content": "\"use client\"\n\nimport { ChevronDown } from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n Sidebar,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function AppSidebar() {\n return (\n \n \n \n \n \n \n \n \n Select Workspace\n \n \n \n \n \n Acme Inc\n \n \n Acme Corp.\n \n \n \n \n \n \n \n \n
\n \n
\n
\n
\n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar-header.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar-menu-action.json b/apps/www/public/r/styles/default/demo-sidebar-menu-action.json deleted file mode 100644 index 5be9cc8a..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar-menu-action.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar-menu-action", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar-menu-action.tsx", - "content": "\"use client\"\n\nimport {\n Frame,\n LifeBuoy,\n Map,\n MoreHorizontal,\n PieChart,\n Send,\n} from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n} from \"@/components/ui/sidebar\"\n\nconst 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 name: \"Support\",\n url: \"#\",\n icon: LifeBuoy,\n },\n {\n name: \"Feedback\",\n url: \"#\",\n icon: Send,\n },\n]\n\nexport default function AppSidebar() {\n return (\n \n \n \n \n Projects\n \n \n {projects.map((project, index) => (\n \n \n \n \n {project.name}\n \n \n \n \n \n \n More\n \n \n \n \n Edit Project\n \n \n Delete Project\n \n \n \n \n ))}\n \n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar-menu-action.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar-menu-badge.json b/apps/www/public/r/styles/default/demo-sidebar-menu-badge.json deleted file mode 100644 index 57d3cbba..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar-menu-badge.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar-menu-badge", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar-menu-badge.tsx", - "content": "\"use client\"\n\nimport { Frame, LifeBuoy, Map, PieChart, Send } from \"lucide-react\"\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n} from \"@/components/ui/sidebar\"\n\nconst projects = [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: Frame,\n badge: \"24\",\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: PieChart,\n badge: \"12\",\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: Map,\n badge: \"3\",\n },\n {\n name: \"Support\",\n url: \"#\",\n icon: LifeBuoy,\n badge: \"21\",\n },\n {\n name: \"Feedback\",\n url: \"#\",\n icon: Send,\n badge: \"8\",\n },\n]\n\nexport default function AppSidebar() {\n return (\n \n \n \n \n Projects\n \n \n {projects.map((project) => (\n \n \n \n \n {project.name}\n \n \n {project.badge}\n \n ))}\n \n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar-menu-badge.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar-menu-collapsible.json b/apps/www/public/r/styles/default/demo-sidebar-menu-collapsible.json deleted file mode 100644 index 6bbef880..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar-menu-collapsible.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar-menu-collapsible", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar-menu-collapsible.tsx", - "content": "\"use client\"\n\nimport { ChevronRight } from \"lucide-react\"\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n} from \"@/components/ui/sidebar\"\n\nconst items = [\n {\n title: \"Getting Started\",\n url: \"#\",\n items: [\n {\n title: \"Installation\",\n url: \"#\",\n },\n {\n title: \"Project Structure\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Building Your Application\",\n url: \"#\",\n items: [\n {\n title: \"Routing\",\n url: \"#\",\n },\n {\n title: \"Data Fetching\",\n url: \"#\",\n isActive: true,\n },\n {\n title: \"Rendering\",\n url: \"#\",\n },\n {\n title: \"Caching\",\n url: \"#\",\n },\n {\n title: \"Styling\",\n url: \"#\",\n },\n {\n title: \"Optimizing\",\n url: \"#\",\n },\n {\n title: \"Configuring\",\n url: \"#\",\n },\n {\n title: \"Testing\",\n url: \"#\",\n },\n {\n title: \"Authentication\",\n url: \"#\",\n },\n {\n title: \"Deploying\",\n url: \"#\",\n },\n {\n title: \"Upgrading\",\n url: \"#\",\n },\n {\n title: \"Examples\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"API Reference\",\n url: \"#\",\n items: [\n {\n title: \"Components\",\n url: \"#\",\n },\n {\n title: \"File Conventions\",\n url: \"#\",\n },\n {\n title: \"Functions\",\n url: \"#\",\n },\n {\n title: \"next.config.js Options\",\n url: \"#\",\n },\n {\n title: \"CLI\",\n url: \"#\",\n },\n {\n title: \"Edge Runtime\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Architecture\",\n url: \"#\",\n items: [\n {\n title: \"Accessibility\",\n url: \"#\",\n },\n {\n title: \"Fast Refresh\",\n url: \"#\",\n },\n {\n title: \"Next.js Compiler\",\n url: \"#\",\n },\n {\n title: \"Supported Browsers\",\n url: \"#\",\n },\n {\n title: \"Turbopack\",\n url: \"#\",\n },\n ],\n },\n]\n\nexport default function AppSidebar() {\n return (\n \n \n \n \n \n \n {items.map((item, index) => (\n \n \n \n \n {item.title}\n \n \n \n \n \n {item.items.map((subItem, subIndex) => (\n \n \n \n {subItem.title}\n \n \n \n ))}\n \n \n \n \n ))}\n \n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar-menu-collapsible.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar-menu-sub.json b/apps/www/public/r/styles/default/demo-sidebar-menu-sub.json deleted file mode 100644 index 10678070..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar-menu-sub.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar-menu-sub", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar-menu-sub.tsx", - "content": "\"use client\"\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n} from \"@/components/ui/sidebar\"\n\nconst items = [\n {\n title: \"Getting Started\",\n url: \"#\",\n items: [\n {\n title: \"Installation\",\n url: \"#\",\n },\n {\n title: \"Project Structure\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Building Your Application\",\n url: \"#\",\n items: [\n {\n title: \"Routing\",\n url: \"#\",\n },\n {\n title: \"Data Fetching\",\n url: \"#\",\n isActive: true,\n },\n {\n title: \"Rendering\",\n url: \"#\",\n },\n {\n title: \"Caching\",\n url: \"#\",\n },\n {\n title: \"Styling\",\n url: \"#\",\n },\n {\n title: \"Optimizing\",\n url: \"#\",\n },\n {\n title: \"Configuring\",\n url: \"#\",\n },\n {\n title: \"Testing\",\n url: \"#\",\n },\n {\n title: \"Authentication\",\n url: \"#\",\n },\n {\n title: \"Deploying\",\n url: \"#\",\n },\n {\n title: \"Upgrading\",\n url: \"#\",\n },\n {\n title: \"Examples\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"API Reference\",\n url: \"#\",\n items: [\n {\n title: \"Components\",\n url: \"#\",\n },\n {\n title: \"File Conventions\",\n url: \"#\",\n },\n {\n title: \"Functions\",\n url: \"#\",\n },\n {\n title: \"next.config.js Options\",\n url: \"#\",\n },\n {\n title: \"CLI\",\n url: \"#\",\n },\n {\n title: \"Edge Runtime\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Architecture\",\n url: \"#\",\n items: [\n {\n title: \"Accessibility\",\n url: \"#\",\n },\n {\n title: \"Fast Refresh\",\n url: \"#\",\n },\n {\n title: \"Next.js Compiler\",\n url: \"#\",\n },\n {\n title: \"Supported Browsers\",\n url: \"#\",\n },\n {\n title: \"Turbopack\",\n url: \"#\",\n },\n ],\n },\n]\n\nexport default function AppSidebar() {\n return (\n \n \n \n \n \n \n {items.map((item, index) => (\n \n \n \n {item.title}\n \n \n \n {item.items.map((subItem, subIndex) => (\n \n \n \n {subItem.title}\n \n \n \n ))}\n \n \n ))}\n \n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar-menu-sub.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar-menu.json b/apps/www/public/r/styles/default/demo-sidebar-menu.json deleted file mode 100644 index e75d0bf6..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar-menu.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar-menu", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar-menu.tsx", - "content": "\"use client\"\n\nimport { Frame, LifeBuoy, Map, PieChart, Send } from \"lucide-react\"\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n} from \"@/components/ui/sidebar\"\n\nconst 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 name: \"Support\",\n url: \"#\",\n icon: LifeBuoy,\n },\n {\n name: \"Feedback\",\n url: \"#\",\n icon: Send,\n },\n]\n\nexport default function AppSidebar() {\n return (\n \n \n \n \n Projects\n \n \n {projects.map((project) => (\n \n \n \n \n {project.name}\n \n \n \n ))}\n \n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar-menu.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar-rsc.json b/apps/www/public/r/styles/default/demo-sidebar-rsc.json deleted file mode 100644 index a3ba6ed5..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar-rsc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar-rsc", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar-rsc.tsx", - "content": "import * as React from \"react\"\nimport { Frame, LifeBuoy, Map, PieChart, Send } from \"lucide-react\"\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarProvider,\n} from \"@/components/ui/sidebar\"\n\nconst projects = [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: Frame,\n badge: \"24\",\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: PieChart,\n badge: \"12\",\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: Map,\n badge: \"3\",\n },\n {\n name: \"Support\",\n url: \"#\",\n icon: LifeBuoy,\n badge: \"21\",\n },\n {\n name: \"Feedback\",\n url: \"#\",\n icon: Send,\n badge: \"8\",\n },\n]\n\n// Dummy fetch function\nasync function fetchProjects() {\n await new Promise((resolve) => setTimeout(resolve, 3000))\n return projects\n}\n\nexport default function AppSidebar() {\n return (\n \n \n \n \n Projects\n \n }>\n \n \n \n \n \n \n \n )\n}\n\nfunction NavProjectsSkeleton() {\n return (\n \n {Array.from({ length: 5 }).map((_, index) => (\n \n \n \n ))}\n \n )\n}\n\nasync function NavProjects() {\n const projects = await fetchProjects()\n\n return (\n \n {projects.map((project) => (\n \n \n \n \n {project.name}\n \n \n \n ))}\n \n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar-rsc.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/demo-sidebar.json b/apps/www/public/r/styles/default/demo-sidebar.json deleted file mode 100644 index b9acd690..00000000 --- a/apps/www/public/r/styles/default/demo-sidebar.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "name": "demo-sidebar", - "type": "registry:block", - "description": "", - "files": [ - { - "path": "block/demo-sidebar.tsx", - "content": "\"use client\"\n\nimport { Calendar, Home, Inbox, Search, Settings } from \"lucide-react\"\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\n// Menu items.\nconst items = [\n {\n title: \"Home\",\n url: \"#\",\n icon: Home,\n },\n {\n title: \"Inbox\",\n url: \"#\",\n icon: Inbox,\n },\n {\n title: \"Calendar\",\n url: \"#\",\n icon: Calendar,\n },\n {\n title: \"Search\",\n url: \"#\",\n icon: Search,\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: Settings,\n },\n]\n\nexport default function AppSidebar() {\n return (\n \n \n \n \n Application\n \n \n {items.map((item) => (\n \n \n \n \n {item.title}\n \n \n \n ))}\n \n \n \n \n \n \n
\n \n
\n
\n
\n )\n}\n", - "type": "registry:component", - "target": "components/demo-sidebar.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/dialog-close-button.json b/apps/www/public/r/styles/default/dialog-close-button.json deleted file mode 100644 index 6a32350c..00000000 --- a/apps/www/public/r/styles/default/dialog-close-button.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "dialog-close-button", - "type": "registry:example", - "registryDependencies": [ - "dialog", - "button" - ], - "files": [ - { - "path": "example/dialog-close-button.tsx", - "content": "import { Copy } from \"lucide-react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\n\nexport default function DialogCloseButton() {\n return (\n \n \n \n \n \n \n Share link\n \n Anyone who has this link will be able to view this.\n \n \n
\n
\n \n \n
\n \n
\n \n \n \n \n \n
\n
\n )\n}\n", - "type": "registry:example", - "target": "components/dialog-close-button.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/dialog-demo.json b/apps/www/public/r/styles/default/dialog-demo.json deleted file mode 100644 index db170ee1..00000000 --- a/apps/www/public/r/styles/default/dialog-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "dialog-demo", - "type": "registry:example", - "registryDependencies": [ - "dialog" - ], - "files": [ - { - "path": "example/dialog-demo.tsx", - "content": "import { Button } from \"@/components/ui/button\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\n\nexport default function DialogDemo() {\n return (\n \n \n \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 \n
\n
\n \n \n
\n
\n \n \n \n
\n
\n )\n}\n", - "type": "registry:example", - "target": "components/dialog-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/drawer-demo.json b/apps/www/public/r/styles/default/drawer-demo.json deleted file mode 100644 index 911d2aa8..00000000 --- a/apps/www/public/r/styles/default/drawer-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "drawer-demo", - "type": "registry:example", - "registryDependencies": [ - "drawer" - ], - "files": [ - { - "path": "example/drawer-demo.tsx", - "content": "import * as React from \"react\"\nimport { Minus, Plus } from \"lucide-react\"\nimport { Bar, BarChart, ResponsiveContainer } from \"recharts\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/components/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 default 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 \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 \n \n \n \n \n
\n
\n
\n )\n}\n", - "type": "registry:example", - "target": "components/drawer-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/drawer-dialog.json b/apps/www/public/r/styles/default/drawer-dialog.json deleted file mode 100644 index 3b3ad7cb..00000000 --- a/apps/www/public/r/styles/default/drawer-dialog.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "drawer-dialog", - "type": "registry:example", - "registryDependencies": [ - "drawer", - "dialog" - ], - "files": [ - { - "path": "example/drawer-dialog.tsx", - "content": "import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { useMediaQuery } from \"@/hooks/use-media-query\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/components/ui/drawer\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\n\nexport default function DrawerDialogDemo() {\n const [open, setOpen] = React.useState(false)\n const isDesktop = useMediaQuery(\"(min-width: 768px)\")\n\n if (isDesktop) {\n return (\n \n \n \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 )\n }\n\n return (\n \n \n \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 \n \n \n \n \n )\n}\n\nfunction ProfileForm({ className }: React.ComponentProps<\"form\">) {\n return (\n
\n
\n \n \n
\n
\n \n \n
\n \n
\n )\n}\n", - "type": "registry:example", - "target": "components/drawer-dialog.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/dropdown-menu-checkboxes.json b/apps/www/public/r/styles/default/dropdown-menu-checkboxes.json deleted file mode 100644 index 8d306178..00000000 --- a/apps/www/public/r/styles/default/dropdown-menu-checkboxes.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "dropdown-menu-checkboxes", - "type": "registry:example", - "registryDependencies": [ - "dropdown-menu", - "checkbox" - ], - "files": [ - { - "path": "example/dropdown-menu-checkboxes.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { DropdownMenuCheckboxItemProps } from \"@radix-ui/react-dropdown-menu\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\n\ntype Checked = DropdownMenuCheckboxItemProps[\"checked\"]\n\nexport default function DropdownMenuCheckboxes() {\n const [showStatusBar, setShowStatusBar] = React.useState(true)\n const [showActivityBar, setShowActivityBar] = React.useState(false)\n const [showPanel, setShowPanel] = React.useState(false)\n\n return (\n \n \n \n \n \n Appearance\n \n \n Status Bar\n \n \n Activity Bar\n \n \n Panel\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/dropdown-menu-checkboxes.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/dropdown-menu-demo.json b/apps/www/public/r/styles/default/dropdown-menu-demo.json deleted file mode 100644 index 66b25c65..00000000 --- a/apps/www/public/r/styles/default/dropdown-menu-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "dropdown-menu-demo", - "type": "registry:example", - "registryDependencies": [ - "dropdown-menu" - ], - "files": [ - { - "path": "example/dropdown-menu-demo.tsx", - "content": "import {\n Cloud,\n CreditCard,\n Github,\n Keyboard,\n LifeBuoy,\n LogOut,\n Mail,\n MessageSquare,\n Plus,\n PlusCircle,\n Settings,\n User,\n UserPlus,\n Users,\n} from \"lucide-react\"\n\nimport { Button } from \"@/components/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 \"@/components/ui/dropdown-menu\"\n\nexport default function DropdownMenuDemo() {\n return (\n \n \n \n \n \n My Account\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 Keyboard shortcuts\n ⌘K\n \n \n \n \n \n \n Team\n \n \n \n \n Invite users\n \n \n \n \n \n Email\n \n \n \n Message\n \n \n \n \n More...\n \n \n \n \n \n \n New Team\n ⌘+T\n \n \n \n \n \n GitHub\n \n \n \n Support\n \n \n \n API\n \n \n \n \n Log out\n ⇧⌘Q\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/dropdown-menu-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/dropdown-menu-radio-group.json b/apps/www/public/r/styles/default/dropdown-menu-radio-group.json deleted file mode 100644 index d13a4616..00000000 --- a/apps/www/public/r/styles/default/dropdown-menu-radio-group.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "dropdown-menu-radio-group", - "type": "registry:example", - "registryDependencies": [ - "dropdown-menu", - "radio-group" - ], - "files": [ - { - "path": "example/dropdown-menu-radio-group.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuRadioGroup,\n DropdownMenuRadioItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\n\nexport default function DropdownMenuRadioGroupDemo() {\n const [position, setPosition] = React.useState(\"bottom\")\n\n return (\n \n \n \n \n \n Panel Position\n \n \n Top\n Bottom\n Right\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/dropdown-menu-radio-group.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/hover-card-demo.json b/apps/www/public/r/styles/default/hover-card-demo.json deleted file mode 100644 index 348ec4ce..00000000 --- a/apps/www/public/r/styles/default/hover-card-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "hover-card-demo", - "type": "registry:example", - "registryDependencies": [ - "hover-card" - ], - "files": [ - { - "path": "example/hover-card-demo.tsx", - "content": "import { CalendarDays } from \"lucide-react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/components/ui/avatar\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n HoverCard,\n HoverCardContent,\n HoverCardTrigger,\n} from \"@/components/ui/hover-card\"\n\nexport default function HoverCardDemo() {\n return (\n \n \n \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:example", - "target": "components/hover-card-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/index.json b/apps/www/public/r/styles/default/index.json deleted file mode 100644 index d13e4c82..00000000 --- a/apps/www/public/r/styles/default/index.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "default", - "type": "registry:style", - "dependencies": [ - "tailwindcss-animate", - "class-variance-authority", - "lucide-react" - ], - "registryDependencies": [ - "utils" - ], - "tailwind": { - "config": { - "plugins": [ - "require(\"tailwindcss-animate\")" - ] - } - }, - "cssVars": {}, - "files": [] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/input-demo.json b/apps/www/public/r/styles/default/input-demo.json deleted file mode 100644 index ee1b3f05..00000000 --- a/apps/www/public/r/styles/default/input-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "input-demo", - "type": "registry:example", - "registryDependencies": [ - "input" - ], - "files": [ - { - "path": "example/input-demo.tsx", - "content": "import { Input } from \"@/components/ui/input\"\n\nexport default function InputDemo() {\n return \n}\n", - "type": "registry:example", - "target": "components/input-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/input-disabled.json b/apps/www/public/r/styles/default/input-disabled.json deleted file mode 100644 index 1a512732..00000000 --- a/apps/www/public/r/styles/default/input-disabled.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "input-disabled", - "type": "registry:example", - "registryDependencies": [ - "input" - ], - "files": [ - { - "path": "example/input-disabled.tsx", - "content": "import { Input } from \"@/components/ui/input\"\n\nexport default function InputDisabled() {\n return \n}\n", - "type": "registry:example", - "target": "components/input-disabled.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/input-file.json b/apps/www/public/r/styles/default/input-file.json deleted file mode 100644 index 56fa2111..00000000 --- a/apps/www/public/r/styles/default/input-file.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "input-file", - "type": "registry:example", - "registryDependencies": [ - "input" - ], - "files": [ - { - "path": "example/input-file.tsx", - "content": "import { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\n\nexport default function InputFile() {\n return (\n
\n \n \n
\n )\n}\n", - "type": "registry:example", - "target": "components/input-file.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/input-form.json b/apps/www/public/r/styles/default/input-form.json deleted file mode 100644 index 0b0cfdbd..00000000 --- a/apps/www/public/r/styles/default/input-form.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "input-form", - "type": "registry:example", - "registryDependencies": [ - "input", - "button", - "form" - ], - "files": [ - { - "path": "example/input-form.tsx", - "content": "\"use client\"\n\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\n\nimport { toast } from \"@/hooks/use-toast\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form\"\nimport { Input } from \"@/components/ui/input\"\n\nconst FormSchema = z.object({\n username: z.string().min(2, {\n message: \"Username must be at least 2 characters.\",\n }),\n})\n\nexport default function InputForm() {\n const form = useForm>({\n resolver: zodResolver(FormSchema),\n defaultValues: {\n username: \"\",\n },\n })\n\n function onSubmit(data: z.infer) {\n toast({\n title: \"You submitted the following values:\",\n description: (\n
\n          {JSON.stringify(data, null, 2)}\n        
\n ),\n })\n }\n\n return (\n
\n \n (\n \n Username\n \n \n \n \n This is your public display name.\n \n \n \n )}\n />\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/input-form.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/input-otp-controlled.json b/apps/www/public/r/styles/default/input-otp-controlled.json deleted file mode 100644 index 08ec4550..00000000 --- a/apps/www/public/r/styles/default/input-otp-controlled.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "input-otp-controlled", - "type": "registry:example", - "registryDependencies": [ - "input-otp" - ], - "files": [ - { - "path": "example/input-otp-controlled.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n InputOTP,\n InputOTPGroup,\n InputOTPSlot,\n} from \"@/components/ui/input-otp\"\n\nexport default function InputOTPControlled() {\n const [value, setValue] = React.useState(\"\")\n\n return (\n
\n setValue(value)}\n >\n \n \n \n \n \n \n \n \n \n
\n {value === \"\" ? (\n <>Enter your one-time password.\n ) : (\n <>You entered: {value}\n )}\n
\n
\n )\n}\n", - "type": "registry:example", - "target": "components/input-otp-controlled.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/input-otp-demo.json b/apps/www/public/r/styles/default/input-otp-demo.json deleted file mode 100644 index 478462de..00000000 --- a/apps/www/public/r/styles/default/input-otp-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "input-otp-demo", - "type": "registry:example", - "registryDependencies": [ - "input-otp" - ], - "files": [ - { - "path": "example/input-otp-demo.tsx", - "content": "import {\n InputOTP,\n InputOTPGroup,\n InputOTPSeparator,\n InputOTPSlot,\n} from \"@/components/ui/input-otp\"\n\nexport default function InputOTPDemo() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/input-otp-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/input-otp-form.json b/apps/www/public/r/styles/default/input-otp-form.json deleted file mode 100644 index fb836cef..00000000 --- a/apps/www/public/r/styles/default/input-otp-form.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "input-otp-form", - "type": "registry:example", - "registryDependencies": [ - "input-otp", - "form" - ], - "files": [ - { - "path": "example/input-otp-form.tsx", - "content": "\"use client\"\n\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\n\nimport { toast } from \"@/hooks/use-toast\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form\"\nimport {\n InputOTP,\n InputOTPGroup,\n InputOTPSlot,\n} from \"@/components/ui/input-otp\"\n\nconst FormSchema = z.object({\n pin: z.string().min(6, {\n message: \"Your one-time password must be 6 characters.\",\n }),\n})\n\nexport default function InputOTPForm() {\n const form = useForm>({\n resolver: zodResolver(FormSchema),\n defaultValues: {\n pin: \"\",\n },\n })\n\n function onSubmit(data: z.infer) {\n toast({\n title: \"You submitted the following values:\",\n description: (\n
\n          {JSON.stringify(data, null, 2)}\n        
\n ),\n })\n }\n\n return (\n
\n \n (\n \n One-Time Password\n \n \n \n \n \n \n \n \n \n \n \n \n \n Please enter the one-time password sent to your phone.\n \n \n \n )}\n />\n\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/input-otp-form.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/input-otp-pattern.json b/apps/www/public/r/styles/default/input-otp-pattern.json deleted file mode 100644 index 079e9aa3..00000000 --- a/apps/www/public/r/styles/default/input-otp-pattern.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "input-otp-pattern", - "type": "registry:example", - "registryDependencies": [ - "input-otp" - ], - "files": [ - { - "path": "example/input-otp-pattern.tsx", - "content": "import { REGEXP_ONLY_DIGITS_AND_CHARS } from \"input-otp\"\n\nimport {\n InputOTP,\n InputOTPGroup,\n InputOTPSlot,\n} from \"@/components/ui/input-otp\"\n\nexport default function InputOTPPattern() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/input-otp-pattern.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/input-otp-separator.json b/apps/www/public/r/styles/default/input-otp-separator.json deleted file mode 100644 index 07810955..00000000 --- a/apps/www/public/r/styles/default/input-otp-separator.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "input-otp-separator", - "type": "registry:example", - "registryDependencies": [ - "input-otp" - ], - "files": [ - { - "path": "example/input-otp-separator.tsx", - "content": "import React from \"react\"\n\nimport {\n InputOTP,\n InputOTPGroup,\n InputOTPSeparator,\n InputOTPSlot,\n} from \"@/components/ui/input-otp\"\n\nexport default function InputOTPWithSeparator() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/input-otp-separator.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/input-with-button.json b/apps/www/public/r/styles/default/input-with-button.json deleted file mode 100644 index 422991a2..00000000 --- a/apps/www/public/r/styles/default/input-with-button.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "input-with-button", - "type": "registry:example", - "registryDependencies": [ - "input", - "button" - ], - "files": [ - { - "path": "example/input-with-button.tsx", - "content": "import { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\n\nexport default function InputWithButton() {\n return (\n
\n \n \n
\n )\n}\n", - "type": "registry:example", - "target": "components/input-with-button.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/input-with-label.json b/apps/www/public/r/styles/default/input-with-label.json deleted file mode 100644 index 600b7107..00000000 --- a/apps/www/public/r/styles/default/input-with-label.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "input-with-label", - "type": "registry:example", - "registryDependencies": [ - "input", - "button", - "label" - ], - "files": [ - { - "path": "example/input-with-label.tsx", - "content": "import { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\n\nexport default function InputWithLabel() {\n return (\n
\n \n \n
\n )\n}\n", - "type": "registry:example", - "target": "components/input-with-label.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/input-with-text.json b/apps/www/public/r/styles/default/input-with-text.json deleted file mode 100644 index 80ea840b..00000000 --- a/apps/www/public/r/styles/default/input-with-text.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "input-with-text", - "type": "registry:example", - "registryDependencies": [ - "input", - "button", - "label" - ], - "files": [ - { - "path": "example/input-with-text.tsx", - "content": "import { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\n\nexport default function InputWithText() {\n return (\n
\n \n \n

Enter your email address.

\n
\n )\n}\n", - "type": "registry:example", - "target": "components/input-with-text.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/label-demo.json b/apps/www/public/r/styles/default/label-demo.json deleted file mode 100644 index b42a600b..00000000 --- a/apps/www/public/r/styles/default/label-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "label-demo", - "type": "registry:example", - "registryDependencies": [ - "label" - ], - "files": [ - { - "path": "example/label-demo.tsx", - "content": "import { Checkbox } from \"@/components/ui/checkbox\"\nimport { Label } from \"@/components/ui/label\"\n\nexport default function LabelDemo() {\n return (\n
\n
\n \n \n
\n
\n )\n}\n", - "type": "registry:example", - "target": "components/label-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/menubar-demo.json b/apps/www/public/r/styles/default/menubar-demo.json deleted file mode 100644 index a8985cda..00000000 --- a/apps/www/public/r/styles/default/menubar-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "menubar-demo", - "type": "registry:example", - "registryDependencies": [ - "menubar" - ], - "files": [ - { - "path": "example/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 \"@/components/ui/menubar\"\n\nexport default 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:example", - "target": "components/menubar-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/message-input.json b/apps/www/public/r/styles/default/message-input.json deleted file mode 100644 index 2936a0bd..00000000 --- a/apps/www/public/r/styles/default/message-input.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "name": "message-input", - "type": "registry:ui", - "dependencies": [ - "framer-motion@11" - ], - "registryDependencies": [ - "http://localhost:3333/r/use-autosize-textarea.json" - ], - "files": [ - { - "path": "ui/message-input.tsx", - "content": "\"use client\"\n\nimport React, { useRef, useState } from \"react\"\nimport { AnimatePresence, motion } from \"framer-motion\"\nimport { ArrowUp, Paperclip, Square, X } from \"lucide-react\"\nimport { omit } from \"remeda\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/components/ui/button\"\n\nimport { useAutosizeTextArea } from \"../hooks/use-autosize-textarea\"\n\ninterface MessageInputBaseProps\n extends React.TextareaHTMLAttributes {\n value: string\n submitOnEnter?: boolean\n stop?: () => void\n isGenerating: boolean\n}\n\ninterface MessageInputWithoutAttachmentProps extends MessageInputBaseProps {\n allowAttachments?: false\n}\n\ninterface MessageInputWithAttachmentsProps extends MessageInputBaseProps {\n allowAttachments: true\n files: File[] | null\n setFiles: React.Dispatch>\n}\n\ntype MessageInputProps =\n | MessageInputWithoutAttachmentProps\n | MessageInputWithAttachmentsProps\n\nexport function MessageInput({\n placeholder = \"Ask AI...\",\n className,\n onKeyDown,\n submitOnEnter = true,\n stop,\n isGenerating,\n ...props\n}: MessageInputProps) {\n const [isDragging, setIsDragging] = useState(false)\n\n const onDragOver = (event: React.DragEvent) => {\n if (props.allowAttachments !== true) return\n event.preventDefault()\n setIsDragging(true)\n }\n\n const onDragLeave = (event: React.DragEvent) => {\n if (props.allowAttachments !== true) return\n event.preventDefault()\n setIsDragging(false)\n }\n\n const onDrop = (event: React.DragEvent) => {\n setIsDragging(false)\n if (props.allowAttachments !== true) return\n event.preventDefault()\n const dataTransfer = event.dataTransfer\n if (dataTransfer.files.length) {\n props.setFiles(Array.from(dataTransfer.files))\n }\n }\n\n const textAreaRef = useRef(null)\n\n const showFileList =\n props.allowAttachments && props.files && props.files.length > 0\n\n useAutosizeTextArea({\n ref: textAreaRef,\n maxHeight: 240,\n borderWidth: 1,\n dependencies: [props.value, showFileList],\n })\n\n return (\n \n {\n if (submitOnEnter && event.key === \"Enter\" && !event.shiftKey) {\n event.preventDefault()\n event.currentTarget.form?.requestSubmit()\n }\n\n onKeyDown?.(event)\n }}\n className={cn(\n \"w-full grow resize-none rounded-xl border border-input bg-background p-3 pr-24 text-sm ring-offset-background transition-[border,padding] placeholder:text-muted-foreground focus-visible:border-primary focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50\",\n showFileList && \"pb-16\",\n className\n )}\n // TODO: better way to do this\n {...(props.allowAttachments\n ? omit(props, [\"allowAttachments\", \"files\", \"setFiles\"])\n : omit(props, [\"allowAttachments\"]))}\n />\n\n \n {props.allowAttachments && props.files && (\n
\n
\n {props.files.map((file) => {\n return (\n \n {\n props.setFiles((files) => {\n if (!files) return null\n\n const filtered = Array.from(files).filter(\n (f) => f !== file\n )\n if (filtered.length === 0) return null\n return filtered\n })\n }}\n >\n \n \n \n {file.name}\n \n \n )\n })}\n
\n
\n )}\n
\n\n
\n {props.allowAttachments && (\n {\n const files = await showFileUploadDialog()\n props.setFiles(files)\n }}\n >\n \n \n )}\n {isGenerating ? (\n \n \n \n ) : (\n \n \n \n )}\n
\n\n {props.allowAttachments && }\n \n )\n}\nMessageInput.displayName = \"MessageInput\"\n\ninterface FileUploadOverlayProps {\n isDragging: boolean\n}\n\nfunction FileUploadOverlay({ isDragging }: FileUploadOverlayProps) {\n return (\n \n {isDragging && (\n \n \n Drop your files here to attach them.\n \n )}\n \n )\n}\n\nfunction showFileUploadDialog() {\n const input = document.createElement(\"input\")\n\n input.type = \"file\"\n input.multiple = true\n // TODO: define accept values?\n input.accept = \"*/*\"\n input.click()\n\n return new Promise((resolve) => {\n input.onchange = (e) => {\n const files = (e.currentTarget as HTMLInputElement).files\n\n if (files) {\n resolve(Array.from(files))\n return\n }\n\n resolve(null)\n }\n })\n}\n", - "type": "registry:ui", - "target": "components/ui/message-input.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/message-list.json b/apps/www/public/r/styles/default/message-list.json deleted file mode 100644 index 1432c723..00000000 --- a/apps/www/public/r/styles/default/message-list.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "message-list", - "type": "registry:ui", - "files": [ - { - "path": "ui/message-list.tsx", - "content": "import { Dot } from \"lucide-react\"\n\nimport { ChatMessage, type Message } from \"@/components/ui/chat-message\"\n\ninterface MessageListProps {\n messages: Message[]\n showTimeStamps?: boolean\n isLoading?: boolean\n}\n\nexport function MessageList({\n messages,\n showTimeStamps = true,\n isLoading = false,\n}: MessageListProps) {\n return (\n
\n {messages.map((message, index) => (\n \n ))}\n {isLoading && (\n
\n
\n
\n \n \n \n
\n
\n
\n )}\n
\n )\n}\n", - "type": "registry:ui", - "target": "components/ui/message-list.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/mode-toggle.json b/apps/www/public/r/styles/default/mode-toggle.json deleted file mode 100644 index 089d4221..00000000 --- a/apps/www/public/r/styles/default/mode-toggle.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "mode-toggle", - "type": "registry:example", - "files": [ - { - "path": "example/mode-toggle.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Moon, Sun } from \"lucide-react\"\nimport { useTheme } from \"next-themes\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\n\nexport default function ModeToggle() {\n const { setTheme } = useTheme()\n\n return (\n \n \n \n \n \n setTheme(\"light\")}>\n Light\n \n setTheme(\"dark\")}>\n Dark\n \n setTheme(\"system\")}>\n System\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/mode-toggle.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/navigation-menu-demo.json b/apps/www/public/r/styles/default/navigation-menu-demo.json deleted file mode 100644 index 2b670629..00000000 --- a/apps/www/public/r/styles/default/navigation-menu-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "navigation-menu-demo", - "type": "registry:example", - "registryDependencies": [ - "navigation-menu" - ], - "files": [ - { - "path": "example/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 { Icons } from \"@/components/icons\"\nimport {\n NavigationMenu,\n NavigationMenuContent,\n NavigationMenuItem,\n NavigationMenuLink,\n NavigationMenuList,\n NavigationMenuTrigger,\n navigationMenuTriggerStyle,\n} from \"@/components/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 default function NavigationMenuDemo() {\n return (\n \n \n \n Getting started\n \n
    \n
  • \n \n \n \n
    \n shadcn/ui\n
    \n

    \n Beautifully designed components that you can copy and\n paste into your apps. Accessible. Customizable. Open\n Source.\n

    \n \n
    \n
  • \n \n Re-usable components built using Radix UI and Tailwind CSS.\n \n \n How to install dependencies and structure your app.\n \n \n Styles for headings, paragraphs, lists...etc\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:example", - "target": "components/navigation-menu-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/pagination-demo.json b/apps/www/public/r/styles/default/pagination-demo.json deleted file mode 100644 index 29a54a5e..00000000 --- a/apps/www/public/r/styles/default/pagination-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "pagination-demo", - "type": "registry:example", - "registryDependencies": [ - "pagination" - ], - "files": [ - { - "path": "example/pagination-demo.tsx", - "content": "import {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n} from \"@/components/ui/pagination\"\n\nexport default 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:example", - "target": "components/pagination-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/popover-demo.json b/apps/www/public/r/styles/default/popover-demo.json deleted file mode 100644 index 5ac08077..00000000 --- a/apps/www/public/r/styles/default/popover-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "popover-demo", - "type": "registry:example", - "registryDependencies": [ - "popover" - ], - "files": [ - { - "path": "example/popover-demo.tsx", - "content": "import { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\n\nexport default function PopoverDemo() {\n return (\n \n \n \n \n \n
    \n
    \n

    Dimensions

    \n

    \n Set the dimensions for the layer.\n

    \n
    \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:example", - "target": "components/popover-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/progress-demo.json b/apps/www/public/r/styles/default/progress-demo.json deleted file mode 100644 index 8f08bba4..00000000 --- a/apps/www/public/r/styles/default/progress-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "progress-demo", - "type": "registry:example", - "registryDependencies": [ - "progress" - ], - "files": [ - { - "path": "example/progress-demo.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport { Progress } from \"@/components/ui/progress\"\n\nexport default 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:example", - "target": "components/progress-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/prompt-suggestions.json b/apps/www/public/r/styles/default/prompt-suggestions.json deleted file mode 100644 index e135a6c6..00000000 --- a/apps/www/public/r/styles/default/prompt-suggestions.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "prompt-suggestions", - "type": "registry:ui", - "files": [ - { - "path": "ui/prompt-suggestions.tsx", - "content": "interface PromptSuggestionsProps {\n append: (message: { role: \"user\"; content: string }) => void\n suggestions: string[]\n}\n\nexport function PromptSuggestions({\n append,\n suggestions,\n}: PromptSuggestionsProps) {\n return (\n
    \n

    Try these prompts ✨

    \n
    \n {suggestions.map((suggestion) => (\n append({ role: \"user\", content: suggestion })}\n className=\"h-max flex-1 rounded-xl border bg-background p-4 hover:bg-muted\"\n >\n

    {suggestion}

    \n \n ))}\n
    \n
    \n )\n}\n", - "type": "registry:ui", - "target": "components/ui/prompt-suggestions.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/radio-group-demo.json b/apps/www/public/r/styles/default/radio-group-demo.json deleted file mode 100644 index 83b76b51..00000000 --- a/apps/www/public/r/styles/default/radio-group-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "radio-group-demo", - "type": "registry:example", - "registryDependencies": [ - "radio-group" - ], - "files": [ - { - "path": "example/radio-group-demo.tsx", - "content": "import { Label } from \"@/components/ui/label\"\nimport { RadioGroup, RadioGroupItem } from \"@/components/ui/radio-group\"\n\nexport default function RadioGroupDemo() {\n return (\n \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n )\n}\n", - "type": "registry:example", - "target": "components/radio-group-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/radio-group-form.json b/apps/www/public/r/styles/default/radio-group-form.json deleted file mode 100644 index 39ca218e..00000000 --- a/apps/www/public/r/styles/default/radio-group-form.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "radio-group-form", - "type": "registry:example", - "registryDependencies": [ - "radio-group", - "form" - ], - "files": [ - { - "path": "example/radio-group-form.tsx", - "content": "\"use client\"\n\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\n\nimport { toast } from \"@/hooks/use-toast\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Form,\n FormControl,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form\"\nimport { RadioGroup, RadioGroupItem } from \"@/components/ui/radio-group\"\n\nconst FormSchema = z.object({\n type: z.enum([\"all\", \"mentions\", \"none\"], {\n required_error: \"You need to select a notification type.\",\n }),\n})\n\nexport default function RadioGroupForm() {\n const form = useForm>({\n resolver: zodResolver(FormSchema),\n })\n\n function onSubmit(data: z.infer) {\n toast({\n title: \"You submitted the following values:\",\n description: (\n
    \n          {JSON.stringify(data, null, 2)}\n        
    \n ),\n })\n }\n\n return (\n
    \n \n (\n \n Notify me about...\n \n \n \n \n \n \n \n All new messages\n \n \n \n \n \n \n \n Direct messages and mentions\n \n \n \n \n \n \n Nothing\n \n \n \n \n \n )}\n />\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/radio-group-form.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/resizable-demo-with-handle.json b/apps/www/public/r/styles/default/resizable-demo-with-handle.json deleted file mode 100644 index c65717a3..00000000 --- a/apps/www/public/r/styles/default/resizable-demo-with-handle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "resizable-demo-with-handle", - "type": "registry:example", - "registryDependencies": [ - "resizable" - ], - "files": [ - { - "path": "example/resizable-demo-with-handle.tsx", - "content": "import {\n ResizableHandle,\n ResizablePanel,\n ResizablePanelGroup,\n} from \"@/components/ui/resizable\"\n\nexport default function ResizableDemo() {\n return (\n \n \n
    \n One\n
    \n
    \n \n \n \n \n
    \n Two\n
    \n
    \n \n \n
    \n Three\n
    \n
    \n
    \n
    \n \n )\n}\n", - "type": "registry:example", - "target": "components/resizable-demo-with-handle.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/resizable-demo.json b/apps/www/public/r/styles/default/resizable-demo.json deleted file mode 100644 index d8831c7d..00000000 --- a/apps/www/public/r/styles/default/resizable-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "resizable-demo", - "type": "registry:example", - "registryDependencies": [ - "resizable" - ], - "files": [ - { - "path": "example/resizable-demo.tsx", - "content": "import {\n ResizableHandle,\n ResizablePanel,\n ResizablePanelGroup,\n} from \"@/components/ui/resizable\"\n\nexport default function ResizableDemo() {\n return (\n \n \n
    \n One\n
    \n
    \n \n \n \n \n
    \n Two\n
    \n
    \n \n \n
    \n Three\n
    \n
    \n
    \n
    \n \n )\n}\n", - "type": "registry:example", - "target": "components/resizable-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/resizable-handle.json b/apps/www/public/r/styles/default/resizable-handle.json deleted file mode 100644 index c2fc2b1c..00000000 --- a/apps/www/public/r/styles/default/resizable-handle.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "resizable-handle", - "type": "registry:example", - "registryDependencies": [ - "resizable" - ], - "files": [ - { - "path": "example/resizable-handle.tsx", - "content": "import {\n ResizableHandle,\n ResizablePanel,\n ResizablePanelGroup,\n} from \"@/components/ui/resizable\"\n\nexport default function ResizableDemo() {\n return (\n \n \n
    \n Sidebar\n
    \n
    \n \n \n
    \n Content\n
    \n
    \n \n )\n}\n", - "type": "registry:example", - "target": "components/resizable-handle.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/resizable-vertical.json b/apps/www/public/r/styles/default/resizable-vertical.json deleted file mode 100644 index 2c5f5877..00000000 --- a/apps/www/public/r/styles/default/resizable-vertical.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "resizable-vertical", - "type": "registry:example", - "registryDependencies": [ - "resizable" - ], - "files": [ - { - "path": "example/resizable-vertical.tsx", - "content": "import {\n ResizableHandle,\n ResizablePanel,\n ResizablePanelGroup,\n} from \"@/components/ui/resizable\"\n\nexport default function ResizableDemo() {\n return (\n \n \n
    \n Header\n
    \n
    \n \n \n
    \n Content\n
    \n
    \n \n )\n}\n", - "type": "registry:example", - "target": "components/resizable-vertical.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/scroll-area-demo.json b/apps/www/public/r/styles/default/scroll-area-demo.json deleted file mode 100644 index c768cfb0..00000000 --- a/apps/www/public/r/styles/default/scroll-area-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "scroll-area-demo", - "type": "registry:example", - "registryDependencies": [ - "scroll-area" - ], - "files": [ - { - "path": "example/scroll-area-demo.tsx", - "content": "import * as React from \"react\"\n\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\nimport { Separator } from \"@/components/ui/separator\"\n\nconst tags = Array.from({ length: 50 }).map(\n (_, i, a) => `v1.2.0-beta.${a.length - i}`\n)\n\nexport default function ScrollAreaDemo() {\n return (\n \n
    \n

    Tags

    \n {tags.map((tag) => (\n <>\n
    \n {tag}\n
    \n \n \n ))}\n
    \n
    \n )\n}\n", - "type": "registry:example", - "target": "components/scroll-area-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/scroll-area-horizontal-demo.json b/apps/www/public/r/styles/default/scroll-area-horizontal-demo.json deleted file mode 100644 index fdfa1c62..00000000 --- a/apps/www/public/r/styles/default/scroll-area-horizontal-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "scroll-area-horizontal-demo", - "type": "registry:example", - "registryDependencies": [ - "scroll-area" - ], - "files": [ - { - "path": "example/scroll-area-horizontal-demo.tsx", - "content": "import * as React from \"react\"\nimport Image from \"next/image\"\n\nimport { ScrollArea, ScrollBar } from \"@/components/ui/scroll-area\"\n\nexport interface Artwork {\n artist: string\n art: string\n}\n\nexport const works: Artwork[] = [\n {\n artist: \"Ornella Binni\",\n art: \"https://images.unsplash.com/photo-1465869185982-5a1a7522cbcb?auto=format&fit=crop&w=300&q=80\",\n },\n {\n artist: \"Tom Byrom\",\n art: \"https://images.unsplash.com/photo-1548516173-3cabfa4607e9?auto=format&fit=crop&w=300&q=80\",\n },\n {\n artist: \"Vladimir Malyavko\",\n art: \"https://images.unsplash.com/photo-1494337480532-3725c85fd2ab?auto=format&fit=crop&w=300&q=80\",\n },\n]\n\nexport default function ScrollAreaHorizontalDemo() {\n return (\n \n
    \n {works.map((artwork) => (\n
    \n
    \n \n
    \n
    \n Photo by{\" \"}\n \n {artwork.artist}\n \n
    \n
    \n ))}\n
    \n \n
    \n )\n}\n", - "type": "registry:example", - "target": "components/scroll-area-horizontal-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/select-demo.json b/apps/www/public/r/styles/default/select-demo.json deleted file mode 100644 index 53fe9f25..00000000 --- a/apps/www/public/r/styles/default/select-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "select-demo", - "type": "registry:example", - "registryDependencies": [ - "select" - ], - "files": [ - { - "path": "example/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 \"@/components/ui/select\"\n\nexport default function SelectDemo() {\n return (\n \n )\n}\n", - "type": "registry:example", - "target": "components/select-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/select-form.json b/apps/www/public/r/styles/default/select-form.json deleted file mode 100644 index dba2af6f..00000000 --- a/apps/www/public/r/styles/default/select-form.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "select-form", - "type": "registry:example", - "registryDependencies": [ - "select" - ], - "files": [ - { - "path": "example/select-form.tsx", - "content": "\"use client\"\n\nimport Link from \"next/link\"\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\n\nimport { toast } from \"@/hooks/use-toast\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,\n} from \"@/components/ui/form\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\n\nconst FormSchema = z.object({\n email: z\n .string({\n required_error: \"Please select an email to display.\",\n })\n .email(),\n})\n\nexport default function SelectForm() {\n const form = useForm>({\n resolver: zodResolver(FormSchema),\n })\n\n function onSubmit(data: z.infer) {\n toast({\n title: \"You submitted the following values:\",\n description: (\n
    \n          {JSON.stringify(data, null, 2)}\n        
    \n ),\n })\n }\n\n return (\n
    \n \n (\n \n Email\n \n \n You can manage email addresses in your{\" \"}\n email settings.\n \n \n \n )}\n />\n \n \n \n )\n}\n", - "type": "registry:example", - "target": "components/select-form.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/select-scrollable.json b/apps/www/public/r/styles/default/select-scrollable.json deleted file mode 100644 index 622417b5..00000000 --- a/apps/www/public/r/styles/default/select-scrollable.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "select-scrollable", - "type": "registry:example", - "registryDependencies": [ - "select" - ], - "files": [ - { - "path": "example/select-scrollable.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 \"@/components/ui/select\"\n\nexport default function SelectScrollable() {\n return (\n \n )\n}\n", - "type": "registry:example", - "target": "components/select-scrollable.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/separator-demo.json b/apps/www/public/r/styles/default/separator-demo.json deleted file mode 100644 index 1ced5557..00000000 --- a/apps/www/public/r/styles/default/separator-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "separator-demo", - "type": "registry:example", - "registryDependencies": [ - "separator" - ], - "files": [ - { - "path": "example/separator-demo.tsx", - "content": "import { Separator } from \"@/components/ui/separator\"\n\nexport default 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:example", - "target": "components/separator-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sheet-demo.json b/apps/www/public/r/styles/default/sheet-demo.json deleted file mode 100644 index b44891c3..00000000 --- a/apps/www/public/r/styles/default/sheet-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "sheet-demo", - "type": "registry:example", - "registryDependencies": [ - "sheet" - ], - "files": [ - { - "path": "example/sheet-demo.tsx", - "content": "import { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from \"@/components/ui/sheet\"\n\nexport default function SheetDemo() {\n return (\n \n \n \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 \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n )\n}\n", - "type": "registry:example", - "target": "components/sheet-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sheet-side.json b/apps/www/public/r/styles/default/sheet-side.json deleted file mode 100644 index 24534d0f..00000000 --- a/apps/www/public/r/styles/default/sheet-side.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "sheet-side", - "type": "registry:example", - "registryDependencies": [ - "sheet" - ], - "files": [ - { - "path": "example/sheet-side.tsx", - "content": "\"use client\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport {\n Sheet,\n SheetClose,\n SheetContent,\n SheetDescription,\n SheetFooter,\n SheetHeader,\n SheetTitle,\n SheetTrigger,\n} from \"@/components/ui/sheet\"\n\nconst SHEET_SIDES = [\"top\", \"right\", \"bottom\", \"left\"] as const\n\ntype SheetSide = (typeof SHEET_SIDES)[number]\n\nexport default function SheetSide() {\n return (\n
    \n {SHEET_SIDES.map((side) => (\n \n \n \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 \n
    \n
    \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n ))}\n
    \n )\n}\n", - "type": "registry:example", - "target": "components/sheet-side.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-02.json b/apps/www/public/r/styles/default/sidebar-02.json deleted file mode 100644 index 62dcf484..00000000 --- a/apps/www/public/r/styles/default/sidebar-02.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "sidebar-02", - "type": "registry:block", - "description": "A sidebar with collapsible sections.", - "registryDependencies": [ - "sidebar", - "breadcrumb", - "separator", - "label", - "dropdown-menu" - ], - "files": [ - { - "path": "block/sidebar-02/page.tsx", - "content": "import { AppSidebar } from \"@/components/app-sidebar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n \n
    \n \n \n \n \n \n \n Building Your Application\n \n \n \n \n Data Fetching\n \n \n \n
    \n
    \n {Array.from({ length: 24 }).map((_, index) => (\n \n ))}\n
    \n
    \n
    \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-02/components/app-sidebar.tsx", - "content": "import * as React from \"react\"\nimport { ChevronRight } from \"lucide-react\"\n\nimport { SearchForm } from \"@/components/search-form\"\nimport { VersionSwitcher } from \"@/components/version-switcher\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarRail,\n} from \"@/components/ui/sidebar\"\n\n// This is sample data.\nconst data = {\n versions: [\"1.0.1\", \"1.1.0-alpha\", \"2.0.0-beta1\"],\n navMain: [\n {\n title: \"Getting Started\",\n url: \"#\",\n items: [\n {\n title: \"Installation\",\n url: \"#\",\n },\n {\n title: \"Project Structure\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Building Your Application\",\n url: \"#\",\n items: [\n {\n title: \"Routing\",\n url: \"#\",\n },\n {\n title: \"Data Fetching\",\n url: \"#\",\n isActive: true,\n },\n {\n title: \"Rendering\",\n url: \"#\",\n },\n {\n title: \"Caching\",\n url: \"#\",\n },\n {\n title: \"Styling\",\n url: \"#\",\n },\n {\n title: \"Optimizing\",\n url: \"#\",\n },\n {\n title: \"Configuring\",\n url: \"#\",\n },\n {\n title: \"Testing\",\n url: \"#\",\n },\n {\n title: \"Authentication\",\n url: \"#\",\n },\n {\n title: \"Deploying\",\n url: \"#\",\n },\n {\n title: \"Upgrading\",\n url: \"#\",\n },\n {\n title: \"Examples\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"API Reference\",\n url: \"#\",\n items: [\n {\n title: \"Components\",\n url: \"#\",\n },\n {\n title: \"File Conventions\",\n url: \"#\",\n },\n {\n title: \"Functions\",\n url: \"#\",\n },\n {\n title: \"next.config.js Options\",\n url: \"#\",\n },\n {\n title: \"CLI\",\n url: \"#\",\n },\n {\n title: \"Edge Runtime\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Architecture\",\n url: \"#\",\n items: [\n {\n title: \"Accessibility\",\n url: \"#\",\n },\n {\n title: \"Fast Refresh\",\n url: \"#\",\n },\n {\n title: \"Next.js Compiler\",\n url: \"#\",\n },\n {\n title: \"Supported Browsers\",\n url: \"#\",\n },\n {\n title: \"Turbopack\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Community\",\n url: \"#\",\n items: [\n {\n title: \"Contribution Guide\",\n url: \"#\",\n },\n ],\n },\n ],\n}\n\nexport function AppSidebar({ ...props }: React.ComponentProps) {\n return (\n \n \n \n \n \n \n {/* We create a collapsible SidebarGroup for each parent. */}\n {data.navMain.map((item) => (\n \n \n \n \n {item.title}{\" \"}\n \n \n \n \n \n \n {item.items.map((item) => (\n \n \n {item.title}\n \n \n ))}\n \n \n \n \n \n ))}\n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/app-sidebar.tsx" - }, - { - "path": "block/sidebar-02/components/search-form.tsx", - "content": "import { Search } from \"lucide-react\"\n\nimport { Label } from \"@/components/ui/label\"\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarInput,\n} from \"@/components/ui/sidebar\"\n\nexport function SearchForm({ ...props }: React.ComponentProps<\"form\">) {\n return (\n
    \n \n \n \n \n \n \n \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/search-form.tsx" - }, - { - "path": "block/sidebar-02/components/version-switcher.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronsUpDown, GalleryVerticalEnd } from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n} from \"@/components/ui/sidebar\"\n\nexport function VersionSwitcher({\n versions,\n defaultVersion,\n}: {\n versions: string[]\n defaultVersion: string\n}) {\n const [selectedVersion, setSelectedVersion] = React.useState(defaultVersion)\n\n return (\n \n \n \n \n \n
    \n \n
    \n
    \n Documentation\n v{selectedVersion}\n
    \n \n \n
    \n \n {versions.map((version) => (\n setSelectedVersion(version)}\n >\n v{version}{\" \"}\n {version === selectedVersion && }\n \n ))}\n \n
    \n
    \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/version-switcher.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-03.json b/apps/www/public/r/styles/default/sidebar-03.json deleted file mode 100644 index 71bb3d9f..00000000 --- a/apps/www/public/r/styles/default/sidebar-03.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "sidebar-03", - "type": "registry:block", - "description": "A sidebar with submenus.", - "registryDependencies": [ - "sidebar", - "breadcrumb" - ], - "files": [ - { - "path": "block/sidebar-03/page.tsx", - "content": "import { AppSidebar } from \"@/components/app-sidebar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n \n
    \n
    \n \n \n \n \n \n \n Building Your Application\n \n \n \n \n Data Fetching\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-03/components/app-sidebar.tsx", - "content": "import * as React from \"react\"\nimport { GalleryVerticalEnd } from \"lucide-react\"\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarRail,\n} from \"@/components/ui/sidebar\"\n\n// This is sample data.\nconst data = {\n navMain: [\n {\n title: \"Getting Started\",\n url: \"#\",\n items: [\n {\n title: \"Installation\",\n url: \"#\",\n },\n {\n title: \"Project Structure\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Building Your Application\",\n url: \"#\",\n items: [\n {\n title: \"Routing\",\n url: \"#\",\n },\n {\n title: \"Data Fetching\",\n url: \"#\",\n isActive: true,\n },\n {\n title: \"Rendering\",\n url: \"#\",\n },\n {\n title: \"Caching\",\n url: \"#\",\n },\n {\n title: \"Styling\",\n url: \"#\",\n },\n {\n title: \"Optimizing\",\n url: \"#\",\n },\n {\n title: \"Configuring\",\n url: \"#\",\n },\n {\n title: \"Testing\",\n url: \"#\",\n },\n {\n title: \"Authentication\",\n url: \"#\",\n },\n {\n title: \"Deploying\",\n url: \"#\",\n },\n {\n title: \"Upgrading\",\n url: \"#\",\n },\n {\n title: \"Examples\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"API Reference\",\n url: \"#\",\n items: [\n {\n title: \"Components\",\n url: \"#\",\n },\n {\n title: \"File Conventions\",\n url: \"#\",\n },\n {\n title: \"Functions\",\n url: \"#\",\n },\n {\n title: \"next.config.js Options\",\n url: \"#\",\n },\n {\n title: \"CLI\",\n url: \"#\",\n },\n {\n title: \"Edge Runtime\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Architecture\",\n url: \"#\",\n items: [\n {\n title: \"Accessibility\",\n url: \"#\",\n },\n {\n title: \"Fast Refresh\",\n url: \"#\",\n },\n {\n title: \"Next.js Compiler\",\n url: \"#\",\n },\n {\n title: \"Supported Browsers\",\n url: \"#\",\n },\n {\n title: \"Turbopack\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Community\",\n url: \"#\",\n items: [\n {\n title: \"Contribution Guide\",\n url: \"#\",\n },\n ],\n },\n ],\n}\n\nexport function AppSidebar({ ...props }: React.ComponentProps) {\n return (\n \n \n \n \n \n \n
    \n \n
    \n
    \n Documentation\n v1.0.0\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n {data.navMain.map((item) => (\n \n \n \n {item.title}\n \n \n {item.items?.length ? (\n \n {item.items.map((item) => (\n \n \n {item.title}\n \n \n ))}\n \n ) : null}\n \n ))}\n \n \n \n \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/app-sidebar.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-04.json b/apps/www/public/r/styles/default/sidebar-04.json deleted file mode 100644 index 5544331a..00000000 --- a/apps/www/public/r/styles/default/sidebar-04.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "sidebar-04", - "type": "registry:block", - "description": "A floating sidebar with submenus.", - "registryDependencies": [ - "sidebar", - "breadcrumb", - "separator" - ], - "files": [ - { - "path": "block/sidebar-04/page.tsx", - "content": "import { AppSidebar } from \"@/components/app-sidebar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n \n
    \n \n \n \n \n \n \n Building Your Application\n \n \n \n \n Data Fetching\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-04/components/app-sidebar.tsx", - "content": "import * as React from \"react\"\nimport { GalleryVerticalEnd } from \"lucide-react\"\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/components/ui/sidebar\"\n\n// This is sample data.\nconst data = {\n navMain: [\n {\n title: \"Getting Started\",\n url: \"#\",\n items: [\n {\n title: \"Installation\",\n url: \"#\",\n },\n {\n title: \"Project Structure\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Building Your Application\",\n url: \"#\",\n items: [\n {\n title: \"Routing\",\n url: \"#\",\n },\n {\n title: \"Data Fetching\",\n url: \"#\",\n isActive: true,\n },\n {\n title: \"Rendering\",\n url: \"#\",\n },\n {\n title: \"Caching\",\n url: \"#\",\n },\n {\n title: \"Styling\",\n url: \"#\",\n },\n {\n title: \"Optimizing\",\n url: \"#\",\n },\n {\n title: \"Configuring\",\n url: \"#\",\n },\n {\n title: \"Testing\",\n url: \"#\",\n },\n {\n title: \"Authentication\",\n url: \"#\",\n },\n {\n title: \"Deploying\",\n url: \"#\",\n },\n {\n title: \"Upgrading\",\n url: \"#\",\n },\n {\n title: \"Examples\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"API Reference\",\n url: \"#\",\n items: [\n {\n title: \"Components\",\n url: \"#\",\n },\n {\n title: \"File Conventions\",\n url: \"#\",\n },\n {\n title: \"Functions\",\n url: \"#\",\n },\n {\n title: \"next.config.js Options\",\n url: \"#\",\n },\n {\n title: \"CLI\",\n url: \"#\",\n },\n {\n title: \"Edge Runtime\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Architecture\",\n url: \"#\",\n items: [\n {\n title: \"Accessibility\",\n url: \"#\",\n },\n {\n title: \"Fast Refresh\",\n url: \"#\",\n },\n {\n title: \"Next.js Compiler\",\n url: \"#\",\n },\n {\n title: \"Supported Browsers\",\n url: \"#\",\n },\n {\n title: \"Turbopack\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Community\",\n url: \"#\",\n items: [\n {\n title: \"Contribution Guide\",\n url: \"#\",\n },\n ],\n },\n ],\n}\n\nexport function AppSidebar({ ...props }: React.ComponentProps) {\n return (\n \n \n \n \n \n \n
    \n \n
    \n
    \n Documentation\n v1.0.0\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n {data.navMain.map((item) => (\n \n \n \n {item.title}\n \n \n {item.items?.length ? (\n \n {item.items.map((item) => (\n \n \n {item.title}\n \n \n ))}\n \n ) : null}\n \n ))}\n \n \n \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/app-sidebar.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-05.json b/apps/www/public/r/styles/default/sidebar-05.json deleted file mode 100644 index bc8e4419..00000000 --- a/apps/www/public/r/styles/default/sidebar-05.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "sidebar-05", - "type": "registry:block", - "description": "A sidebar with collapsible submenus.", - "registryDependencies": [ - "sidebar", - "breadcrumb", - "separator", - "label", - "collapsible" - ], - "files": [ - { - "path": "block/sidebar-05/page.tsx", - "content": "import { AppSidebar } from \"@/components/app-sidebar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n \n
    \n \n \n \n \n \n \n Building Your Application\n \n \n \n \n Data Fetching\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-05/components/app-sidebar.tsx", - "content": "import * as React from \"react\"\nimport { GalleryVerticalEnd, Minus, Plus } from \"lucide-react\"\n\nimport { SearchForm } from \"@/components/search-form\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarRail,\n} from \"@/components/ui/sidebar\"\n\n// This is sample data.\nconst data = {\n navMain: [\n {\n title: \"Getting Started\",\n url: \"#\",\n items: [\n {\n title: \"Installation\",\n url: \"#\",\n },\n {\n title: \"Project Structure\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Building Your Application\",\n url: \"#\",\n items: [\n {\n title: \"Routing\",\n url: \"#\",\n },\n {\n title: \"Data Fetching\",\n url: \"#\",\n isActive: true,\n },\n {\n title: \"Rendering\",\n url: \"#\",\n },\n {\n title: \"Caching\",\n url: \"#\",\n },\n {\n title: \"Styling\",\n url: \"#\",\n },\n {\n title: \"Optimizing\",\n url: \"#\",\n },\n {\n title: \"Configuring\",\n url: \"#\",\n },\n {\n title: \"Testing\",\n url: \"#\",\n },\n {\n title: \"Authentication\",\n url: \"#\",\n },\n {\n title: \"Deploying\",\n url: \"#\",\n },\n {\n title: \"Upgrading\",\n url: \"#\",\n },\n {\n title: \"Examples\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"API Reference\",\n url: \"#\",\n items: [\n {\n title: \"Components\",\n url: \"#\",\n },\n {\n title: \"File Conventions\",\n url: \"#\",\n },\n {\n title: \"Functions\",\n url: \"#\",\n },\n {\n title: \"next.config.js Options\",\n url: \"#\",\n },\n {\n title: \"CLI\",\n url: \"#\",\n },\n {\n title: \"Edge Runtime\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Architecture\",\n url: \"#\",\n items: [\n {\n title: \"Accessibility\",\n url: \"#\",\n },\n {\n title: \"Fast Refresh\",\n url: \"#\",\n },\n {\n title: \"Next.js Compiler\",\n url: \"#\",\n },\n {\n title: \"Supported Browsers\",\n url: \"#\",\n },\n {\n title: \"Turbopack\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Community\",\n url: \"#\",\n items: [\n {\n title: \"Contribution Guide\",\n url: \"#\",\n },\n ],\n },\n ],\n}\n\nexport function AppSidebar({ ...props }: React.ComponentProps) {\n return (\n \n \n \n \n \n \n
    \n \n
    \n
    \n Documentation\n v1.0.0\n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n {data.navMain.map((item, index) => (\n \n \n \n \n {item.title}{\" \"}\n \n \n \n \n {item.items?.length ? (\n \n \n {item.items.map((item) => (\n \n \n {item.title}\n \n \n ))}\n \n \n ) : null}\n \n \n ))}\n \n \n \n \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/app-sidebar.tsx" - }, - { - "path": "block/sidebar-05/components/search-form.tsx", - "content": "import { Search } from \"lucide-react\"\n\nimport { Label } from \"@/components/ui/label\"\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarInput,\n} from \"@/components/ui/sidebar\"\n\nexport function SearchForm({ ...props }: React.ComponentProps<\"form\">) {\n return (\n
    \n \n \n \n \n \n \n \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/search-form.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-06.json b/apps/www/public/r/styles/default/sidebar-06.json deleted file mode 100644 index 6d0d04de..00000000 --- a/apps/www/public/r/styles/default/sidebar-06.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "sidebar-06", - "type": "registry:block", - "description": "A sidebar with submenus as dropdowns.", - "registryDependencies": [ - "sidebar", - "breadcrumb", - "separator", - "card", - "dropdown-menu" - ], - "files": [ - { - "path": "block/sidebar-06/page.tsx", - "content": "import { AppSidebar } from \"@/components/app-sidebar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n \n
    \n \n \n \n \n \n \n Building Your Application\n \n \n \n \n Data Fetching\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-06/components/app-sidebar.tsx", - "content": "import * as React from \"react\"\nimport { GalleryVerticalEnd } from \"lucide-react\"\n\nimport { NavMain } from \"@/components/nav-main\"\nimport { SidebarOptInForm } from \"@/components/sidebar-opt-in-form\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarRail,\n} from \"@/components/ui/sidebar\"\n\n// This is sample data.\nconst data = {\n navMain: [\n {\n title: \"Getting Started\",\n url: \"#\",\n items: [\n {\n title: \"Installation\",\n url: \"#\",\n },\n {\n title: \"Project Structure\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Building Your Application\",\n url: \"#\",\n items: [\n {\n title: \"Routing\",\n url: \"#\",\n },\n {\n title: \"Data Fetching\",\n url: \"#\",\n isActive: true,\n },\n {\n title: \"Rendering\",\n url: \"#\",\n },\n {\n title: \"Caching\",\n url: \"#\",\n },\n {\n title: \"Styling\",\n url: \"#\",\n },\n {\n title: \"Optimizing\",\n url: \"#\",\n },\n {\n title: \"Configuring\",\n url: \"#\",\n },\n {\n title: \"Testing\",\n url: \"#\",\n },\n {\n title: \"Authentication\",\n url: \"#\",\n },\n {\n title: \"Deploying\",\n url: \"#\",\n },\n {\n title: \"Upgrading\",\n url: \"#\",\n },\n {\n title: \"Examples\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"API Reference\",\n url: \"#\",\n items: [\n {\n title: \"Components\",\n url: \"#\",\n },\n {\n title: \"File Conventions\",\n url: \"#\",\n },\n {\n title: \"Functions\",\n url: \"#\",\n },\n {\n title: \"next.config.js Options\",\n url: \"#\",\n },\n {\n title: \"CLI\",\n url: \"#\",\n },\n {\n title: \"Edge Runtime\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Architecture\",\n url: \"#\",\n items: [\n {\n title: \"Accessibility\",\n url: \"#\",\n },\n {\n title: \"Fast Refresh\",\n url: \"#\",\n },\n {\n title: \"Next.js Compiler\",\n url: \"#\",\n },\n {\n title: \"Supported Browsers\",\n url: \"#\",\n },\n {\n title: \"Turbopack\",\n url: \"#\",\n },\n ],\n },\n ],\n}\n\nexport function AppSidebar({ ...props }: React.ComponentProps) {\n return (\n \n \n \n \n \n \n
    \n \n
    \n
    \n Documentation\n v1.0.0\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n \n
    \n
    \n \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/app-sidebar.tsx" - }, - { - "path": "block/sidebar-06/components/nav-main.tsx", - "content": "\"use client\"\n\nimport { MoreHorizontal, type LucideIcon } from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n SidebarGroup,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/components/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 const { isMobile } = useSidebar()\n\n return (\n \n \n {items.map((item) => (\n \n \n \n \n {item.title} \n \n \n {item.items?.length ? (\n \n {item.items.map((item) => (\n \n {item.title}\n \n ))}\n \n ) : null}\n \n \n ))}\n \n \n )\n}\n", - "type": "registry:component", - "target": "components/nav-main.tsx" - }, - { - "path": "block/sidebar-06/components/sidebar-opt-in-form.tsx", - "content": "import { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { SidebarInput } from \"@/components/ui/sidebar\"\n\nexport function SidebarOptInForm() {\n return (\n \n
    \n \n Subscribe to our newsletter\n \n Opt-in to receive updates and news about the sidebar.\n \n \n \n \n \n Subscribe\n \n \n
    \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/sidebar-opt-in-form.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-07.json b/apps/www/public/r/styles/default/sidebar-07.json deleted file mode 100644 index ae4e2b69..00000000 --- a/apps/www/public/r/styles/default/sidebar-07.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "sidebar-07", - "type": "registry:block", - "description": "A sidebar that collapses to icons.", - "registryDependencies": [ - "sidebar", - "breadcrumb", - "separator", - "collapsible", - "dropdown-menu", - "avatar" - ], - "files": [ - { - "path": "block/sidebar-07/page.tsx", - "content": "import { AppSidebar } from \"@/components/app-sidebar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n \n
    \n
    \n \n \n \n \n \n \n Building Your Application\n \n \n \n \n Data Fetching\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-07/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 \"@/components/nav-main\"\nimport { NavProjects } from \"@/components/nav-projects\"\nimport { NavUser } from \"@/components/nav-user\"\nimport { TeamSwitcher } from \"@/components/team-switcher\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarHeader,\n SidebarRail,\n} from \"@/components/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": "components/app-sidebar.tsx" - }, - { - "path": "block/sidebar-07/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 \"@/components/ui/collapsible\"\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/components/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": "components/nav-main.tsx" - }, - { - "path": "block/sidebar-07/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 \"@/components/ui/dropdown-menu\"\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/components/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": "components/nav-projects.tsx" - }, - { - "path": "block/sidebar-07/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 \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/components/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": "components/nav-user.tsx" - }, - { - "path": "block/sidebar-07/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 \"@/components/ui/dropdown-menu\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/components/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 return (\n \n \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 \n
    \n
    Add team
    \n
    \n \n
    \n
    \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/team-switcher.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-08.json b/apps/www/public/r/styles/default/sidebar-08.json deleted file mode 100644 index 69d9e449..00000000 --- a/apps/www/public/r/styles/default/sidebar-08.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "name": "sidebar-08", - "type": "registry:block", - "description": "An inset sidebar with secondary navigation.", - "registryDependencies": [ - "sidebar", - "breadcrumb", - "separator", - "collapsible", - "dropdown-menu", - "avatar" - ], - "files": [ - { - "path": "block/sidebar-08/page.tsx", - "content": "import { AppSidebar } from \"@/components/app-sidebar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n \n
    \n
    \n \n \n \n \n \n \n Building Your Application\n \n \n \n \n Data Fetching\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-08/components/app-sidebar.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n BookOpen,\n Bot,\n Command,\n Frame,\n LifeBuoy,\n Map,\n PieChart,\n Send,\n Settings2,\n SquareTerminal,\n} from \"lucide-react\"\n\nimport { NavMain } from \"@/components/nav-main\"\nimport { NavProjects } from \"@/components/nav-projects\"\nimport { NavSecondary } from \"@/components/nav-secondary\"\nimport { NavUser } from \"@/components/nav-user\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n} from \"@/components/ui/sidebar\"\n\nconst data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\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 navSecondary: [\n {\n title: \"Support\",\n url: \"#\",\n icon: LifeBuoy,\n },\n {\n title: \"Feedback\",\n url: \"#\",\n icon: Send,\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 Acme Inc\n Enterprise\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n \n \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/app-sidebar.tsx" - }, - { - "path": "block/sidebar-08/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 \"@/components/ui/collapsible\"\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/components/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 \n {item.title}\n \n \n {item.items?.length ? (\n <>\n \n \n \n Toggle\n \n \n \n \n {item.items?.map((subItem) => (\n \n \n \n {subItem.title}\n \n \n \n ))}\n \n \n \n ) : null}\n \n \n ))}\n \n \n )\n}\n", - "type": "registry:component", - "target": "components/nav-main.tsx" - }, - { - "path": "block/sidebar-08/components/nav-projects.tsx", - "content": "\"use client\"\n\nimport {\n Folder,\n MoreHorizontal,\n Share,\n Trash2,\n type LucideIcon,\n} from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/components/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": "components/nav-projects.tsx" - }, - { - "path": "block/sidebar-08/components/nav-secondary.tsx", - "content": "import * as React from \"react\"\nimport { type LucideIcon } from \"lucide-react\"\n\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n} from \"@/components/ui/sidebar\"\n\nexport function NavSecondary({\n items,\n ...props\n}: {\n items: {\n title: string\n url: string\n icon: LucideIcon\n }[]\n} & React.ComponentPropsWithoutRef) {\n return (\n \n \n \n {items.map((item) => (\n \n \n \n \n {item.title}\n \n \n \n ))}\n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/nav-secondary.tsx" - }, - { - "path": "block/sidebar-08/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 \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/components/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": "components/nav-user.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-09.json b/apps/www/public/r/styles/default/sidebar-09.json deleted file mode 100644 index fd7b7ebd..00000000 --- a/apps/www/public/r/styles/default/sidebar-09.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "sidebar-09", - "type": "registry:block", - "description": "Collapsible nested sidebars.", - "registryDependencies": [ - "sidebar", - "breadcrumb", - "separator", - "collapsible", - "dropdown-menu", - "avatar", - "switch" - ], - "files": [ - { - "path": "block/sidebar-09/page.tsx", - "content": "import { AppSidebar } from \"@/components/app-sidebar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n \n
    \n \n \n \n \n \n All Inboxes\n \n \n \n Inbox\n \n \n \n
    \n
    \n {Array.from({ length: 24 }).map((_, index) => (\n \n ))}\n
    \n
    \n \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-09/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 \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/components/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": "components/nav-user.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-10.json b/apps/www/public/r/styles/default/sidebar-10.json deleted file mode 100644 index 8a5614ce..00000000 --- a/apps/www/public/r/styles/default/sidebar-10.json +++ /dev/null @@ -1,63 +0,0 @@ -{ - "name": "sidebar-10", - "type": "registry:block", - "description": "A sidebar in a popover.", - "registryDependencies": [ - "sidebar", - "breadcrumb", - "separator", - "popover", - "collapsible", - "dropdown-menu" - ], - "files": [ - { - "path": "block/sidebar-10/page.tsx", - "content": "import { AppSidebar } from \"@/components/app-sidebar\"\nimport { NavActions } from \"@/components/nav-actions\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbList,\n BreadcrumbPage,\n} from \"@/components/ui/breadcrumb\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n \n
    \n
    \n \n \n \n \n \n \n Project Management & Task Tracking\n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-10/components/app-sidebar.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n AudioWaveform,\n Blocks,\n Calendar,\n Command,\n Home,\n Inbox,\n MessageCircleQuestion,\n Search,\n Settings2,\n Sparkles,\n Trash2,\n} from \"lucide-react\"\n\nimport { NavFavorites } from \"@/components/nav-favorites\"\nimport { NavMain } from \"@/components/nav-main\"\nimport { NavSecondary } from \"@/components/nav-secondary\"\nimport { NavWorkspaces } from \"@/components/nav-workspaces\"\nimport { TeamSwitcher } from \"@/components/team-switcher\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarHeader,\n SidebarRail,\n} from \"@/components/ui/sidebar\"\n\n// This is sample data.\nconst data = {\n teams: [\n {\n name: \"Acme Inc\",\n logo: Command,\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: \"Search\",\n url: \"#\",\n icon: Search,\n },\n {\n title: \"Ask AI\",\n url: \"#\",\n icon: Sparkles,\n },\n {\n title: \"Home\",\n url: \"#\",\n icon: Home,\n isActive: true,\n },\n {\n title: \"Inbox\",\n url: \"#\",\n icon: Inbox,\n badge: \"10\",\n },\n ],\n navSecondary: [\n {\n title: \"Calendar\",\n url: \"#\",\n icon: Calendar,\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: Settings2,\n },\n {\n title: \"Templates\",\n url: \"#\",\n icon: Blocks,\n },\n {\n title: \"Trash\",\n url: \"#\",\n icon: Trash2,\n },\n {\n title: \"Help\",\n url: \"#\",\n icon: MessageCircleQuestion,\n },\n ],\n favorites: [\n {\n name: \"Project Management & Task Tracking\",\n url: \"#\",\n emoji: \"📊\",\n },\n {\n name: \"Family Recipe Collection & Meal Planning\",\n url: \"#\",\n emoji: \"🍳\",\n },\n {\n name: \"Fitness Tracker & Workout Routines\",\n url: \"#\",\n emoji: \"💪\",\n },\n {\n name: \"Book Notes & Reading List\",\n url: \"#\",\n emoji: \"📚\",\n },\n {\n name: \"Sustainable Gardening Tips & Plant Care\",\n url: \"#\",\n emoji: \"🌱\",\n },\n {\n name: \"Language Learning Progress & Resources\",\n url: \"#\",\n emoji: \"🗣️\",\n },\n {\n name: \"Home Renovation Ideas & Budget Tracker\",\n url: \"#\",\n emoji: \"🏠\",\n },\n {\n name: \"Personal Finance & Investment Portfolio\",\n url: \"#\",\n emoji: \"💰\",\n },\n {\n name: \"Movie & TV Show Watchlist with Reviews\",\n url: \"#\",\n emoji: \"🎬\",\n },\n {\n name: \"Daily Habit Tracker & Goal Setting\",\n url: \"#\",\n emoji: \"✅\",\n },\n ],\n workspaces: [\n {\n name: \"Personal Life Management\",\n emoji: \"🏠\",\n pages: [\n {\n name: \"Daily Journal & Reflection\",\n url: \"#\",\n emoji: \"📔\",\n },\n {\n name: \"Health & Wellness Tracker\",\n url: \"#\",\n emoji: \"🍏\",\n },\n {\n name: \"Personal Growth & Learning Goals\",\n url: \"#\",\n emoji: \"🌟\",\n },\n ],\n },\n {\n name: \"Professional Development\",\n emoji: \"💼\",\n pages: [\n {\n name: \"Career Objectives & Milestones\",\n url: \"#\",\n emoji: \"🎯\",\n },\n {\n name: \"Skill Acquisition & Training Log\",\n url: \"#\",\n emoji: \"🧠\",\n },\n {\n name: \"Networking Contacts & Events\",\n url: \"#\",\n emoji: \"🤝\",\n },\n ],\n },\n {\n name: \"Creative Projects\",\n emoji: \"🎨\",\n pages: [\n {\n name: \"Writing Ideas & Story Outlines\",\n url: \"#\",\n emoji: \"✍️\",\n },\n {\n name: \"Art & Design Portfolio\",\n url: \"#\",\n emoji: \"🖼️\",\n },\n {\n name: \"Music Composition & Practice Log\",\n url: \"#\",\n emoji: \"🎵\",\n },\n ],\n },\n {\n name: \"Home Management\",\n emoji: \"🏡\",\n pages: [\n {\n name: \"Household Budget & Expense Tracking\",\n url: \"#\",\n emoji: \"💰\",\n },\n {\n name: \"Home Maintenance Schedule & Tasks\",\n url: \"#\",\n emoji: \"🔧\",\n },\n {\n name: \"Family Calendar & Event Planning\",\n url: \"#\",\n emoji: \"📅\",\n },\n ],\n },\n {\n name: \"Travel & Adventure\",\n emoji: \"🧳\",\n pages: [\n {\n name: \"Trip Planning & Itineraries\",\n url: \"#\",\n emoji: \"🗺️\",\n },\n {\n name: \"Travel Bucket List & Inspiration\",\n url: \"#\",\n emoji: \"🌎\",\n },\n {\n name: \"Travel Journal & Photo Gallery\",\n url: \"#\",\n emoji: \"📸\",\n },\n ],\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", - "type": "registry:component", - "target": "components/app-sidebar.tsx" - }, - { - "path": "block/sidebar-10/components/nav-actions.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n ArrowDown,\n ArrowUp,\n Bell,\n Copy,\n CornerUpLeft,\n CornerUpRight,\n FileText,\n GalleryVerticalEnd,\n LineChart,\n Link,\n MoreHorizontal,\n Settings2,\n Star,\n Trash,\n Trash2,\n} from \"lucide-react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/components/ui/popover\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n} from \"@/components/ui/sidebar\"\n\nconst data = [\n [\n {\n label: \"Customize Page\",\n icon: Settings2,\n },\n {\n label: \"Turn into wiki\",\n icon: FileText,\n },\n ],\n [\n {\n label: \"Copy Link\",\n icon: Link,\n },\n {\n label: \"Duplicate\",\n icon: Copy,\n },\n {\n label: \"Move to\",\n icon: CornerUpRight,\n },\n {\n label: \"Move to Trash\",\n icon: Trash2,\n },\n ],\n [\n {\n label: \"Undo\",\n icon: CornerUpLeft,\n },\n {\n label: \"View analytics\",\n icon: LineChart,\n },\n {\n label: \"Version History\",\n icon: GalleryVerticalEnd,\n },\n {\n label: \"Show delete pages\",\n icon: Trash,\n },\n {\n label: \"Notifications\",\n icon: Bell,\n },\n ],\n [\n {\n label: \"Import\",\n icon: ArrowUp,\n },\n {\n label: \"Export\",\n icon: ArrowDown,\n },\n ],\n]\n\nexport function NavActions() {\n const [isOpen, setIsOpen] = React.useState(false)\n\n React.useEffect(() => {\n setIsOpen(true)\n }, [])\n\n return (\n
    \n
    \n Edit Oct 08\n
    \n \n \n \n \n \n \n \n \n \n \n {data.map((group, index) => (\n \n \n \n {group.map((item, index) => (\n \n \n {item.label}\n \n \n ))}\n \n \n \n ))}\n \n \n \n \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/nav-actions.tsx" - }, - { - "path": "block/sidebar-10/components/nav-favorites.tsx", - "content": "\"use client\"\n\nimport {\n ArrowUpRight,\n Link,\n MoreHorizontal,\n StarOff,\n Trash2,\n} from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/components/ui/sidebar\"\n\nexport function NavFavorites({\n favorites,\n}: {\n favorites: {\n name: string\n url: string\n emoji: string\n }[]\n}) {\n const { isMobile } = useSidebar()\n\n return (\n \n Favorites\n \n {favorites.map((item) => (\n \n \n \n {item.emoji}\n {item.name}\n \n \n \n \n \n \n More\n \n \n \n \n \n Remove from Favorites\n \n \n \n \n Copy Link\n \n \n \n Open in New Tab\n \n \n \n \n Delete\n \n \n \n \n ))}\n \n \n \n More\n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/nav-favorites.tsx" - }, - { - "path": "block/sidebar-10/components/nav-main.tsx", - "content": "\"use client\"\n\nimport { type LucideIcon } from \"lucide-react\"\n\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n} from \"@/components/ui/sidebar\"\n\nexport function NavMain({\n items,\n}: {\n items: {\n title: string\n url: string\n icon: LucideIcon\n isActive?: boolean\n }[]\n}) {\n return (\n \n {items.map((item) => (\n \n \n \n \n {item.title}\n \n \n \n ))}\n \n )\n}\n", - "type": "registry:component", - "target": "components/nav-main.tsx" - }, - { - "path": "block/sidebar-10/components/nav-secondary.tsx", - "content": "import React from \"react\"\nimport { type LucideIcon } from \"lucide-react\"\n\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarMenu,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n} from \"@/components/ui/sidebar\"\n\nexport function NavSecondary({\n items,\n ...props\n}: {\n items: {\n title: string\n url: string\n icon: LucideIcon\n badge?: React.ReactNode\n }[]\n} & React.ComponentPropsWithoutRef) {\n return (\n \n \n \n {items.map((item) => (\n \n \n \n \n {item.title}\n \n \n {item.badge && {item.badge}}\n \n ))}\n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/nav-secondary.tsx" - }, - { - "path": "block/sidebar-10/components/nav-workspaces.tsx", - "content": "import { ChevronRight, MoreHorizontal, Plus } from \"lucide-react\"\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/components/ui/sidebar\"\n\nexport function NavWorkspaces({\n workspaces,\n}: {\n workspaces: {\n name: string\n emoji: React.ReactNode\n pages: {\n name: string\n emoji: React.ReactNode\n }[]\n }[]\n}) {\n return (\n \n Workspaces\n \n \n {workspaces.map((workspace) => (\n \n \n \n \n {workspace.emoji}\n {workspace.name}\n \n \n \n \n \n \n \n \n \n \n \n \n {workspace.pages.map((page) => (\n \n \n \n {page.emoji}\n {page.name}\n \n \n \n ))}\n \n \n \n \n ))}\n \n \n \n More\n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/nav-workspaces.tsx" - }, - { - "path": "block/sidebar-10/components/team-switcher.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronDown, Plus } from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n} from \"@/components/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 [activeTeam, setActiveTeam] = React.useState(teams[0])\n\n return (\n \n \n \n \n \n
    \n \n
    \n {activeTeam.name}\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 \n
    \n
    Add team
    \n
    \n \n
    \n
    \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/team-switcher.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-11.json b/apps/www/public/r/styles/default/sidebar-11.json deleted file mode 100644 index afa18c1a..00000000 --- a/apps/www/public/r/styles/default/sidebar-11.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "sidebar-11", - "type": "registry:block", - "description": "A sidebar with a collapsible file tree.", - "registryDependencies": [ - "sidebar", - "breadcrumb", - "separator", - "collapsible" - ], - "files": [ - { - "path": "block/sidebar-11/page.tsx", - "content": "import { AppSidebar } from \"@/components/app-sidebar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n \n
    \n \n \n \n \n \n components\n \n \n \n ui\n \n \n \n button.tsx\n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-11/components/app-sidebar.tsx", - "content": "import * as React from \"react\"\nimport { ChevronRight, File, Folder } from \"lucide-react\"\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarRail,\n} from \"@/components/ui/sidebar\"\n\n// This is sample data.\nconst data = {\n changes: [\n {\n file: \"README.md\",\n state: \"M\",\n },\n {\n file: \"api/hello/route.ts\",\n state: \"U\",\n },\n {\n file: \"app/layout.tsx\",\n state: \"M\",\n },\n ],\n tree: [\n [\n \"app\",\n [\n \"api\",\n [\"hello\", [\"route.ts\"]],\n \"page.tsx\",\n \"layout.tsx\",\n [\"blog\", [\"page.tsx\"]],\n ],\n ],\n [\n \"components\",\n [\"ui\", \"button.tsx\", \"card.tsx\"],\n \"header.tsx\",\n \"footer.tsx\",\n ],\n [\"lib\", [\"util.ts\"]],\n [\"public\", \"favicon.ico\", \"vercel.svg\"],\n \".eslintrc.json\",\n \".gitignore\",\n \"next.config.js\",\n \"tailwind.config.js\",\n \"package.json\",\n \"README.md\",\n ],\n}\n\nexport function AppSidebar({ ...props }: React.ComponentProps) {\n return (\n \n \n \n Changes\n \n \n {data.changes.map((item, index) => (\n \n \n \n {item.file}\n \n {item.state}\n \n ))}\n \n \n \n \n Files\n \n \n {data.tree.map((item, index) => (\n \n ))}\n \n \n \n \n \n \n )\n}\n\nfunction Tree({ item }: { item: string | any[] }) {\n const [name, ...items] = Array.isArray(item) ? item : [item]\n\n if (!items.length) {\n return (\n \n \n {name}\n \n )\n }\n\n return (\n \n button>svg:first-child]:rotate-90\"\n defaultOpen={name === \"components\" || name === \"ui\"}\n >\n \n \n \n \n {name}\n \n \n \n \n {items.map((subItem, index) => (\n \n ))}\n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/app-sidebar.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-12.json b/apps/www/public/r/styles/default/sidebar-12.json deleted file mode 100644 index a9d07ae2..00000000 --- a/apps/www/public/r/styles/default/sidebar-12.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "sidebar-12", - "type": "registry:block", - "description": "A sidebar with a calendar.", - "registryDependencies": [ - "sidebar", - "breadcrumb", - "separator", - "collapsible", - "calendar", - "dropdown-menu", - "avatar" - ], - "files": [ - { - "path": "block/sidebar-12/page.tsx", - "content": "import { AppSidebar } from \"@/components/app-sidebar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbList,\n BreadcrumbPage,\n} from \"@/components/ui/breadcrumb\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n \n
    \n \n \n \n \n \n October 2024\n \n \n \n
    \n
    \n
    \n {Array.from({ length: 20 }).map((_, i) => (\n
    \n ))}\n
    \n
    \n \n \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-12/components/app-sidebar.tsx", - "content": "import * as React from \"react\"\nimport { Plus } from \"lucide-react\"\n\nimport { Calendars } from \"@/components/calendars\"\nimport { DatePicker } from \"@/components/date-picker\"\nimport { NavUser } from \"@/components/nav-user\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarRail,\n SidebarSeparator,\n} from \"@/components/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 calendars: [\n {\n name: \"My Calendars\",\n items: [\"Personal\", \"Work\", \"Family\"],\n },\n {\n name: \"Favorites\",\n items: [\"Holidays\", \"Birthdays\"],\n },\n {\n name: \"Other\",\n items: [\"Travel\", \"Reminders\", \"Deadlines\"],\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 New Calendar\n \n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/app-sidebar.tsx" - }, - { - "path": "block/sidebar-12/components/calendars.tsx", - "content": "import * as React from \"react\"\nimport { Check, ChevronRight } from \"lucide-react\"\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarSeparator,\n} from \"@/components/ui/sidebar\"\n\nexport function Calendars({\n calendars,\n}: {\n calendars: {\n name: string\n items: string[]\n }[]\n}) {\n return (\n <>\n {calendars.map((calendar, index) => (\n \n \n \n \n \n {calendar.name}{\" \"}\n \n \n \n \n \n \n {calendar.items.map((item, index) => (\n \n \n \n \n
    \n {item}\n \n \n ))}\n \n \n \n \n \n \n \n ))}\n \n )\n}\n", - "type": "registry:component", - "target": "components/calendars.tsx" - }, - { - "path": "block/sidebar-12/components/date-picker.tsx", - "content": "import { Calendar } from \"@/components/ui/calendar\"\nimport {\n SidebarGroup,\n SidebarGroupContent,\n} from \"@/components/ui/sidebar\"\n\nexport function DatePicker() {\n return (\n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/date-picker.tsx" - }, - { - "path": "block/sidebar-12/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 \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/components/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": "components/nav-user.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-13.json b/apps/www/public/r/styles/default/sidebar-13.json deleted file mode 100644 index d36a6c3b..00000000 --- a/apps/www/public/r/styles/default/sidebar-13.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "sidebar-13", - "type": "registry:block", - "description": "A sidebar in a dialog.", - "registryDependencies": [ - "sidebar", - "breadcrumb", - "button", - "dialog" - ], - "files": [ - { - "path": "block/sidebar-13/page.tsx", - "content": "import { SettingsDialog } from \"@/components/settings-dialog\"\n\nexport default function Page() {\n return (\n
    \n \n
    \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-13/components/settings-dialog.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n Bell,\n Check,\n Globe,\n Home,\n Keyboard,\n Link,\n Lock,\n Menu,\n MessageCircle,\n Paintbrush,\n Settings,\n Video,\n} from \"lucide-react\"\n\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogTitle,\n DialogTrigger,\n} from \"@/components/ui/dialog\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarProvider,\n} from \"@/components/ui/sidebar\"\n\nconst data = {\n nav: [\n { name: \"Notifications\", icon: Bell },\n { name: \"Navigation\", icon: Menu },\n { name: \"Home\", icon: Home },\n { name: \"Appearance\", icon: Paintbrush },\n { name: \"Messages & media\", icon: MessageCircle },\n { name: \"Language & region\", icon: Globe },\n { name: \"Accessibility\", icon: Keyboard },\n { name: \"Mark as read\", icon: Check },\n { name: \"Audio & video\", icon: Video },\n { name: \"Connected accounts\", icon: Link },\n { name: \"Privacy & visibility\", icon: Lock },\n { name: \"Advanced\", icon: Settings },\n ],\n}\n\nexport function SettingsDialog() {\n const [open, setOpen] = React.useState(true)\n\n return (\n \n \n \n \n \n Settings\n \n Customize your settings here.\n \n \n \n \n \n \n \n {data.nav.map((item) => (\n \n \n \n \n {item.name}\n \n \n \n ))}\n \n \n \n \n \n
    \n
    \n
    \n \n \n \n Settings\n \n \n \n Messages & media\n \n \n \n
    \n
    \n
    \n {Array.from({ length: 10 }).map((_, i) => (\n \n ))}\n
    \n
    \n
    \n
    \n
    \n )\n}\n", - "type": "registry:component", - "target": "components/settings-dialog.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-14.json b/apps/www/public/r/styles/default/sidebar-14.json deleted file mode 100644 index f126ddf5..00000000 --- a/apps/www/public/r/styles/default/sidebar-14.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "sidebar-14", - "type": "registry:block", - "description": "A sidebar on the right.", - "registryDependencies": [ - "sidebar", - "breadcrumb" - ], - "files": [ - { - "path": "block/sidebar-14/page.tsx", - "content": "import { AppSidebar } from \"@/components/app-sidebar\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbList,\n BreadcrumbPage,\n BreadcrumbSeparator,\n} from \"@/components/ui/breadcrumb\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n
    \n \n \n \n \n Building Your Application\n \n \n \n \n Data Fetching\n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-14/components/app-sidebar.tsx", - "content": "import * as React from \"react\"\n\nimport {\n Sidebar,\n SidebarContent,\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarRail,\n} from \"@/components/ui/sidebar\"\n\n// This is sample data.\nconst data = {\n navMain: [\n {\n title: \"Getting Started\",\n url: \"#\",\n items: [\n {\n title: \"Installation\",\n url: \"#\",\n },\n {\n title: \"Project Structure\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Building Your Application\",\n url: \"#\",\n items: [\n {\n title: \"Routing\",\n url: \"#\",\n },\n {\n title: \"Data Fetching\",\n url: \"#\",\n isActive: true,\n },\n {\n title: \"Rendering\",\n url: \"#\",\n },\n {\n title: \"Caching\",\n url: \"#\",\n },\n {\n title: \"Styling\",\n url: \"#\",\n },\n {\n title: \"Optimizing\",\n url: \"#\",\n },\n {\n title: \"Configuring\",\n url: \"#\",\n },\n {\n title: \"Testing\",\n url: \"#\",\n },\n {\n title: \"Authentication\",\n url: \"#\",\n },\n {\n title: \"Deploying\",\n url: \"#\",\n },\n {\n title: \"Upgrading\",\n url: \"#\",\n },\n {\n title: \"Examples\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"API Reference\",\n url: \"#\",\n items: [\n {\n title: \"Components\",\n url: \"#\",\n },\n {\n title: \"File Conventions\",\n url: \"#\",\n },\n {\n title: \"Functions\",\n url: \"#\",\n },\n {\n title: \"next.config.js Options\",\n url: \"#\",\n },\n {\n title: \"CLI\",\n url: \"#\",\n },\n {\n title: \"Edge Runtime\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Architecture\",\n url: \"#\",\n items: [\n {\n title: \"Accessibility\",\n url: \"#\",\n },\n {\n title: \"Fast Refresh\",\n url: \"#\",\n },\n {\n title: \"Next.js Compiler\",\n url: \"#\",\n },\n {\n title: \"Supported Browsers\",\n url: \"#\",\n },\n {\n title: \"Turbopack\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Community\",\n url: \"#\",\n items: [\n {\n title: \"Contribution Guide\",\n url: \"#\",\n },\n ],\n },\n ],\n}\n\nexport function AppSidebar({ ...props }: React.ComponentProps) {\n return (\n \n \n \n Table of Contents\n \n \n {data.navMain.map((item) => (\n \n \n \n {item.title}\n \n \n {item.items?.length ? (\n \n {item.items.map((item) => (\n \n \n {item.title}\n \n \n ))}\n \n ) : null}\n \n ))}\n \n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/app-sidebar.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sidebar-15.json b/apps/www/public/r/styles/default/sidebar-15.json deleted file mode 100644 index 64e8d78d..00000000 --- a/apps/www/public/r/styles/default/sidebar-15.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "name": "sidebar-15", - "type": "registry:block", - "description": "A left and right sidebar.", - "registryDependencies": [ - "sidebar", - "breadcrumb", - "separator", - "popover", - "collapsible", - "dropdown-menu", - "calendar", - "avatar" - ], - "files": [ - { - "path": "block/sidebar-15/page.tsx", - "content": "import { SidebarLeft } from \"@/components/sidebar-left\"\nimport { SidebarRight } from \"@/components/sidebar-right\"\nimport {\n Breadcrumb,\n BreadcrumbItem,\n BreadcrumbList,\n BreadcrumbPage,\n} from \"@/components/ui/breadcrumb\"\nimport { Separator } from \"@/components/ui/separator\"\nimport {\n SidebarInset,\n SidebarProvider,\n SidebarTrigger,\n} from \"@/components/ui/sidebar\"\n\nexport default function Page() {\n return (\n \n \n \n
    \n
    \n \n \n \n \n \n \n Project Management & Task Tracking\n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n )\n}\n", - "type": "registry:page", - "target": "app/dashboard/page.tsx" - }, - { - "path": "block/sidebar-15/components/calendars.tsx", - "content": "import * as React from \"react\"\nimport { Check, ChevronRight } from \"lucide-react\"\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarSeparator,\n} from \"@/components/ui/sidebar\"\n\nexport function Calendars({\n calendars,\n}: {\n calendars: {\n name: string\n items: string[]\n }[]\n}) {\n return (\n <>\n {calendars.map((calendar, index) => (\n \n \n \n \n \n {calendar.name}{\" \"}\n \n \n \n \n \n \n {calendar.items.map((item, index) => (\n \n \n \n \n
    \n {item}\n \n \n ))}\n \n \n \n \n \n \n \n ))}\n \n )\n}\n", - "type": "registry:component", - "target": "components/calendars.tsx" - }, - { - "path": "block/sidebar-15/components/date-picker.tsx", - "content": "import { Calendar } from \"@/components/ui/calendar\"\nimport {\n SidebarGroup,\n SidebarGroupContent,\n} from \"@/components/ui/sidebar\"\n\nexport function DatePicker() {\n return (\n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/date-picker.tsx" - }, - { - "path": "block/sidebar-15/components/nav-favorites.tsx", - "content": "\"use client\"\n\nimport {\n ArrowUpRight,\n Link,\n MoreHorizontal,\n StarOff,\n Trash2,\n} from \"lucide-react\"\n\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n SidebarGroup,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/components/ui/sidebar\"\n\nexport function NavFavorites({\n favorites,\n}: {\n favorites: {\n name: string\n url: string\n emoji: string\n }[]\n}) {\n const { isMobile } = useSidebar()\n\n return (\n \n Favorites\n \n {favorites.map((item) => (\n \n \n \n {item.emoji}\n {item.name}\n \n \n \n \n \n \n More\n \n \n \n \n \n Remove from Favorites\n \n \n \n \n Copy Link\n \n \n \n Open in New Tab\n \n \n \n \n Delete\n \n \n \n \n ))}\n \n \n \n More\n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/nav-favorites.tsx" - }, - { - "path": "block/sidebar-15/components/nav-main.tsx", - "content": "\"use client\"\n\nimport { type LucideIcon } from \"lucide-react\"\n\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n} from \"@/components/ui/sidebar\"\n\nexport function NavMain({\n items,\n}: {\n items: {\n title: string\n url: string\n icon: LucideIcon\n isActive?: boolean\n }[]\n}) {\n return (\n \n {items.map((item) => (\n \n \n \n \n {item.title}\n \n \n \n ))}\n \n )\n}\n", - "type": "registry:component", - "target": "components/nav-main.tsx" - }, - { - "path": "block/sidebar-15/components/nav-secondary.tsx", - "content": "import React from \"react\"\nimport { type LucideIcon } from \"lucide-react\"\n\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarMenu,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n} from \"@/components/ui/sidebar\"\n\nexport function NavSecondary({\n items,\n ...props\n}: {\n items: {\n title: string\n url: string\n icon: LucideIcon\n badge?: React.ReactNode\n }[]\n} & React.ComponentPropsWithoutRef) {\n return (\n \n \n \n {items.map((item) => (\n \n \n \n \n {item.title}\n \n \n {item.badge && {item.badge}}\n \n ))}\n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/nav-secondary.tsx" - }, - { - "path": "block/sidebar-15/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 \"@/components/ui/avatar\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/components/ui/dropdown-menu\"\nimport {\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n useSidebar,\n} from \"@/components/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": "components/nav-user.tsx" - }, - { - "path": "block/sidebar-15/components/nav-workspaces.tsx", - "content": "import { ChevronRight, MoreHorizontal, Plus } from \"lucide-react\"\n\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/components/ui/collapsible\"\nimport {\n SidebarGroup,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n} from \"@/components/ui/sidebar\"\n\nexport function NavWorkspaces({\n workspaces,\n}: {\n workspaces: {\n name: string\n emoji: React.ReactNode\n pages: {\n name: string\n emoji: React.ReactNode\n }[]\n }[]\n}) {\n return (\n \n Workspaces\n \n \n {workspaces.map((workspace) => (\n \n \n \n \n {workspace.emoji}\n {workspace.name}\n \n \n \n \n \n \n \n \n \n \n \n \n {workspace.pages.map((page) => (\n \n \n \n {page.emoji}\n {page.name}\n \n \n \n ))}\n \n \n \n \n ))}\n \n \n \n More\n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/nav-workspaces.tsx" - }, - { - "path": "block/sidebar-15/components/sidebar-left.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n AudioWaveform,\n Blocks,\n Calendar,\n Command,\n Home,\n Inbox,\n MessageCircleQuestion,\n Search,\n Settings2,\n Sparkles,\n Trash2,\n} from \"lucide-react\"\n\nimport { NavFavorites } from \"@/components/nav-favorites\"\nimport { NavMain } from \"@/components/nav-main\"\nimport { NavSecondary } from \"@/components/nav-secondary\"\nimport { NavWorkspaces } from \"@/components/nav-workspaces\"\nimport { TeamSwitcher } from \"@/components/team-switcher\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarHeader,\n SidebarRail,\n} from \"@/components/ui/sidebar\"\n\n// This is sample data.\nconst data = {\n teams: [\n {\n name: \"Acme Inc\",\n logo: Command,\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: \"Search\",\n url: \"#\",\n icon: Search,\n },\n {\n title: \"Ask AI\",\n url: \"#\",\n icon: Sparkles,\n },\n {\n title: \"Home\",\n url: \"#\",\n icon: Home,\n isActive: true,\n },\n {\n title: \"Inbox\",\n url: \"#\",\n icon: Inbox,\n badge: \"10\",\n },\n ],\n navSecondary: [\n {\n title: \"Calendar\",\n url: \"#\",\n icon: Calendar,\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: Settings2,\n },\n {\n title: \"Templates\",\n url: \"#\",\n icon: Blocks,\n },\n {\n title: \"Trash\",\n url: \"#\",\n icon: Trash2,\n },\n {\n title: \"Help\",\n url: \"#\",\n icon: MessageCircleQuestion,\n },\n ],\n favorites: [\n {\n name: \"Project Management & Task Tracking\",\n url: \"#\",\n emoji: \"📊\",\n },\n {\n name: \"Family Recipe Collection & Meal Planning\",\n url: \"#\",\n emoji: \"🍳\",\n },\n {\n name: \"Fitness Tracker & Workout Routines\",\n url: \"#\",\n emoji: \"💪\",\n },\n {\n name: \"Book Notes & Reading List\",\n url: \"#\",\n emoji: \"📚\",\n },\n {\n name: \"Sustainable Gardening Tips & Plant Care\",\n url: \"#\",\n emoji: \"🌱\",\n },\n {\n name: \"Language Learning Progress & Resources\",\n url: \"#\",\n emoji: \"🗣️\",\n },\n {\n name: \"Home Renovation Ideas & Budget Tracker\",\n url: \"#\",\n emoji: \"🏠\",\n },\n {\n name: \"Personal Finance & Investment Portfolio\",\n url: \"#\",\n emoji: \"💰\",\n },\n {\n name: \"Movie & TV Show Watchlist with Reviews\",\n url: \"#\",\n emoji: \"🎬\",\n },\n {\n name: \"Daily Habit Tracker & Goal Setting\",\n url: \"#\",\n emoji: \"✅\",\n },\n ],\n workspaces: [\n {\n name: \"Personal Life Management\",\n emoji: \"🏠\",\n pages: [\n {\n name: \"Daily Journal & Reflection\",\n url: \"#\",\n emoji: \"📔\",\n },\n {\n name: \"Health & Wellness Tracker\",\n url: \"#\",\n emoji: \"🍏\",\n },\n {\n name: \"Personal Growth & Learning Goals\",\n url: \"#\",\n emoji: \"🌟\",\n },\n ],\n },\n {\n name: \"Professional Development\",\n emoji: \"💼\",\n pages: [\n {\n name: \"Career Objectives & Milestones\",\n url: \"#\",\n emoji: \"🎯\",\n },\n {\n name: \"Skill Acquisition & Training Log\",\n url: \"#\",\n emoji: \"🧠\",\n },\n {\n name: \"Networking Contacts & Events\",\n url: \"#\",\n emoji: \"🤝\",\n },\n ],\n },\n {\n name: \"Creative Projects\",\n emoji: \"🎨\",\n pages: [\n {\n name: \"Writing Ideas & Story Outlines\",\n url: \"#\",\n emoji: \"✍️\",\n },\n {\n name: \"Art & Design Portfolio\",\n url: \"#\",\n emoji: \"🖼️\",\n },\n {\n name: \"Music Composition & Practice Log\",\n url: \"#\",\n emoji: \"🎵\",\n },\n ],\n },\n {\n name: \"Home Management\",\n emoji: \"🏡\",\n pages: [\n {\n name: \"Household Budget & Expense Tracking\",\n url: \"#\",\n emoji: \"💰\",\n },\n {\n name: \"Home Maintenance Schedule & Tasks\",\n url: \"#\",\n emoji: \"🔧\",\n },\n {\n name: \"Family Calendar & Event Planning\",\n url: \"#\",\n emoji: \"📅\",\n },\n ],\n },\n {\n name: \"Travel & Adventure\",\n emoji: \"🧳\",\n pages: [\n {\n name: \"Trip Planning & Itineraries\",\n url: \"#\",\n emoji: \"🗺️\",\n },\n {\n name: \"Travel Bucket List & Inspiration\",\n url: \"#\",\n emoji: \"🌎\",\n },\n {\n name: \"Travel Journal & Photo Gallery\",\n url: \"#\",\n emoji: \"📸\",\n },\n ],\n },\n ],\n}\n\nexport function SidebarLeft({\n ...props\n}: React.ComponentProps) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n", - "type": "registry:component", - "target": "components/sidebar-left.tsx" - }, - { - "path": "block/sidebar-15/components/sidebar-right.tsx", - "content": "import * as React from \"react\"\nimport { Plus } from \"lucide-react\"\n\nimport { Calendars } from \"@/components/calendars\"\nimport { DatePicker } from \"@/components/date-picker\"\nimport { NavUser } from \"@/components/nav-user\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarHeader,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarRail,\n SidebarSeparator,\n} from \"@/components/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 calendars: [\n {\n name: \"My Calendars\",\n items: [\"Personal\", \"Work\", \"Family\"],\n },\n {\n name: \"Favorites\",\n items: [\"Holidays\", \"Birthdays\"],\n },\n {\n name: \"Other\",\n items: [\"Travel\", \"Reminders\", \"Deadlines\"],\n },\n ],\n}\n\nexport function SidebarRight({\n ...props\n}: React.ComponentProps) {\n return (\n
    \n \n \n )\n }\n)\nSidebarProvider.displayName = \"SidebarProvider\"\n\nconst Sidebar = React.forwardRef<\n HTMLDivElement,\n React.ComponentProps<\"div\"> & {\n side?: \"left\" | \"right\"\n variant?: \"sidebar\" | \"floating\" | \"inset\"\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\n }\n>(\n (\n {\n side = \"left\",\n variant = \"sidebar\",\n collapsible = \"offcanvas\",\n className,\n children,\n ...props\n },\n ref\n ) => {\n const { isMobile, state, openMobile, setOpenMobile } = useSidebar()\n\n if (collapsible === \"none\") {\n return (\n \n {children}\n
    \n )\n }\n\n if (isMobile) {\n return (\n \n button]:hidden\"\n style={\n {\n \"--sidebar-width\": SIDEBAR_WIDTH_MOBILE,\n } as React.CSSProperties\n }\n side={side}\n >\n
    {children}
    \n \n
    \n )\n }\n\n return (\n
    \n
    \n
    \n )\n }\n)\nSidebar.displayName = \"Sidebar\"\n\nconst SidebarTrigger = React.forwardRef<\n React.ElementRef,\n React.ComponentProps\n>(({ className, onClick, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n {\n onClick?.(event)\n toggleSidebar()\n }}\n {...props}\n >\n \n Toggle Sidebar\n \n )\n})\nSidebarTrigger.displayName = \"SidebarTrigger\"\n\nconst SidebarRail = React.forwardRef<\n HTMLButtonElement,\n React.ComponentProps<\"button\">\n>(({ className, ...props }, ref) => {\n const { toggleSidebar } = useSidebar()\n\n return (\n
    \n )\n})\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\"\n\nconst SidebarMenuSub = React.forwardRef<\n HTMLUListElement,\n React.ComponentProps<\"ul\">\n>(({ className, ...props }, ref) => (\n \n))\nSidebarMenuSub.displayName = \"SidebarMenuSub\"\n\nconst SidebarMenuSubItem = React.forwardRef<\n HTMLLIElement,\n React.ComponentProps<\"li\">\n>(({ ...props }, ref) =>
  • )\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\"\n\nconst SidebarMenuSubButton = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentProps<\"a\"> & {\n asChild?: boolean\n size?: \"sm\" | \"md\"\n isActive?: boolean\n }\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\n size === \"sm\" && \"text-xs\",\n size === \"md\" && \"text-sm\",\n \"group-data-[collapsible=icon]:hidden\",\n className\n )}\n {...props}\n />\n )\n})\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\"\n\nexport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupAction,\n SidebarGroupContent,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInput,\n SidebarInset,\n SidebarMenu,\n SidebarMenuAction,\n SidebarMenuBadge,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSkeleton,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarSeparator,\n SidebarTrigger,\n useSidebar,\n}\n", - "type": "registry:ui", - "target": "components/ui/sidebar.tsx" - } - ], - "tailwind": { - "config": { - "theme": { - "extend": { - "colors": { - "sidebar": { - "DEFAULT": "hsl(var(--sidebar-background))", - "foreground": "hsl(var(--sidebar-foreground))", - "primary": "hsl(var(--sidebar-primary))", - "primary-foreground": "hsl(var(--sidebar-primary-foreground))", - "accent": "hsl(var(--sidebar-accent))", - "accent-foreground": "hsl(var(--sidebar-accent-foreground))", - "border": "hsl(var(--sidebar-border))", - "ring": "hsl(var(--sidebar-ring))" - } - } - } - } - } - }, - "cssVars": { - "light": { - "sidebar-background": "0 0% 98%", - "sidebar-foreground": "240 5.3% 26.1%", - "sidebar-primary": "240 5.9% 10%", - "sidebar-primary-foreground": "0 0% 98%", - "sidebar-accent": "240 4.8% 95.9%", - "sidebar-accent-foreground": "240 5.9% 10%", - "sidebar-border": "220 13% 91%", - "sidebar-ring": "217.2 91.2% 59.8%" - }, - "dark": { - "sidebar-background": "240 5.9% 10%", - "sidebar-foreground": "240 4.8% 95.9%", - "sidebar-primary": "224.3 76.3% 48%", - "sidebar-primary-foreground": "0 0% 100%", - "sidebar-accent": "240 3.7% 15.9%", - "sidebar-accent-foreground": "240 4.8% 95.9%", - "sidebar-border": "240 3.7% 15.9%", - "sidebar-ring": "217.2 91.2% 59.8%" - } - } -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/skeleton-card.json b/apps/www/public/r/styles/default/skeleton-card.json deleted file mode 100644 index b89d76a3..00000000 --- a/apps/www/public/r/styles/default/skeleton-card.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "skeleton-card", - "type": "registry:example", - "registryDependencies": [ - "skeleton" - ], - "files": [ - { - "path": "example/skeleton-card.tsx", - "content": "import { Skeleton } from \"@/components/ui/skeleton\"\n\nexport default function SkeletonCard() {\n return (\n
    \n \n
    \n \n \n
    \n
    \n )\n}\n", - "type": "registry:example", - "target": "components/skeleton-card.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/skeleton-demo.json b/apps/www/public/r/styles/default/skeleton-demo.json deleted file mode 100644 index 1d897240..00000000 --- a/apps/www/public/r/styles/default/skeleton-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "skeleton-demo", - "type": "registry:example", - "registryDependencies": [ - "skeleton" - ], - "files": [ - { - "path": "example/skeleton-demo.tsx", - "content": "import { Skeleton } from \"@/components/ui/skeleton\"\n\nexport default function SkeletonDemo() {\n return (\n
    \n \n
    \n \n \n
    \n
    \n )\n}\n", - "type": "registry:example", - "target": "components/skeleton-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/slider-demo.json b/apps/www/public/r/styles/default/slider-demo.json deleted file mode 100644 index ba801368..00000000 --- a/apps/www/public/r/styles/default/slider-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "slider-demo", - "type": "registry:example", - "registryDependencies": [ - "slider" - ], - "files": [ - { - "path": "example/slider-demo.tsx", - "content": "import { cn } from \"@/lib/utils\"\nimport { Slider } from \"@/components/ui/slider\"\n\ntype SliderProps = React.ComponentProps\n\nexport default function SliderDemo({ className, ...props }: SliderProps) {\n return (\n \n )\n}\n", - "type": "registry:example", - "target": "components/slider-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/sonner-demo.json b/apps/www/public/r/styles/default/sonner-demo.json deleted file mode 100644 index 7bf8c7c7..00000000 --- a/apps/www/public/r/styles/default/sonner-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "sonner-demo", - "type": "registry:example", - "registryDependencies": [ - "sonner" - ], - "files": [ - { - "path": "example/sonner-demo.tsx", - "content": "import { toast } from \"sonner\"\n\nimport { Button } from \"@/components/ui/button\"\n\nexport default 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:example", - "target": "components/sonner-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/switch-demo.json b/apps/www/public/r/styles/default/switch-demo.json deleted file mode 100644 index 31af98aa..00000000 --- a/apps/www/public/r/styles/default/switch-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "switch-demo", - "type": "registry:example", - "registryDependencies": [ - "switch" - ], - "files": [ - { - "path": "example/switch-demo.tsx", - "content": "import { Label } from \"@/components/ui/label\"\nimport { Switch } from \"@/components/ui/switch\"\n\nexport default function SwitchDemo() {\n return (\n
    \n \n \n
    \n )\n}\n", - "type": "registry:example", - "target": "components/switch-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/switch-form.json b/apps/www/public/r/styles/default/switch-form.json deleted file mode 100644 index 33bba65b..00000000 --- a/apps/www/public/r/styles/default/switch-form.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "name": "switch-form", - "type": "registry:example", - "registryDependencies": [ - "switch", - "form" - ], - "files": [ - { - "path": "example/switch-form.tsx", - "content": "\"use client\"\n\nimport { zodResolver } from \"@hookform/resolvers/zod\"\nimport { useForm } from \"react-hook-form\"\nimport { z } from \"zod\"\n\nimport { toast } from \"@/hooks/use-toast\"\nimport { Button } from \"@/components/ui/button\"\nimport {\n Form,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n} from \"@/components/ui/form\"\nimport { Switch } from \"@/components/ui/switch\"\n\nconst FormSchema = z.object({\n marketing_emails: z.boolean().default(false).optional(),\n security_emails: z.boolean(),\n})\n\nexport default function SwitchForm() {\n const form = useForm>({\n resolver: zodResolver(FormSchema),\n defaultValues: {\n security_emails: true,\n },\n })\n\n function onSubmit(data: z.infer) {\n toast({\n title: \"You submitted the following values:\",\n description: (\n
    \n          {JSON.stringify(data, null, 2)}\n        
    \n ),\n })\n }\n\n return (\n
    \n \n
    \n

    Email Notifications

    \n
    \n (\n \n
    \n \n Marketing emails\n \n \n Receive emails about new products, features, and more.\n \n
    \n \n \n \n
    \n )}\n />\n (\n \n
    \n Security emails\n \n Receive emails about your account security.\n \n
    \n \n \n \n
    \n )}\n />\n
    \n
    \n \n
    \n \n )\n}\n", - "type": "registry:example", - "target": "components/switch-form.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/table-demo.json b/apps/www/public/r/styles/default/table-demo.json deleted file mode 100644 index d7f2fcb6..00000000 --- a/apps/www/public/r/styles/default/table-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "table-demo", - "type": "registry:example", - "registryDependencies": [ - "table" - ], - "files": [ - { - "path": "example/table-demo.tsx", - "content": "import {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/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 default 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:example", - "target": "components/table-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/tabs-demo.json b/apps/www/public/r/styles/default/tabs-demo.json deleted file mode 100644 index b86d9d89..00000000 --- a/apps/www/public/r/styles/default/tabs-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "tabs-demo", - "type": "registry:example", - "registryDependencies": [ - "tabs" - ], - "files": [ - { - "path": "example/tabs-demo.tsx", - "content": "import { Button } from \"@/components/ui/button\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/components/ui/card\"\nimport { Input } from \"@/components/ui/input\"\nimport { Label } from \"@/components/ui/label\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/components/ui/tabs\"\n\nexport default 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 \n \n
    \n
    \n \n \n
    \n
    \n \n \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 \n \n
    \n
    \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n )\n}\n", - "type": "registry:example", - "target": "components/tabs-demo.tsx" - } - ] -} \ No newline at end of file diff --git a/apps/www/public/r/styles/default/textarea-demo.json b/apps/www/public/r/styles/default/textarea-demo.json deleted file mode 100644 index 2563df9d..00000000 --- a/apps/www/public/r/styles/default/textarea-demo.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "name": "textarea-demo", - "type": "registry:example", - "registryDependencies": [ - "textarea" - ], - "files": [ - { - "path": "example/textarea-demo.tsx", - "content": "import { Textarea } from \"@/components/ui/textarea\"\n\nexport default function TextareaDemo() {\n return