Skip to content

Commit 046a72e

Browse files
Update v0 links
1 parent 22e42e6 commit 046a72e

File tree

3 files changed

+5
-22
lines changed

3 files changed

+5
-22
lines changed

site/public/registry/v0/README.md

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1 @@
11
These registry items aren’t meant to be installed via the shadcn CLI, they’re specifically built to be opened as examples in [v0](https://v0.dev/).
2-
3-
### Tailwind CSS v4
4-
5-
These examples are built for Tailwind CSS v3 as v0 doesn’t support Tailwind CSS v4 yet:
6-
- `outline-hidden``outline-none`
7-
- `rounded-sm``rounded-md`
8-
- `max-w-(--frimousse-viewport-width)``max-w-[--frimousse-viewport-width]`
9-
10-
When Tailwind CSS v4 is supported, the `components/ui/emoji-picker.tsx` entries (duplicated from `/public/registry/emoji-picker.json`) should be removed and replaced by `"registryDependencies": ["https://frimousse.liveblocks.io/r/emoji-picker"]`.

site/public/registry/v0/emoji-picker-popover.json

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,11 @@
66
"type": "registry:block",
77
"categories": ["emoji-picker"],
88
"dependencies": ["frimousse", "lucide-react"],
9-
"registryDependencies": ["popover"],
9+
"registryDependencies": [
10+
"https://frimousse.liveblocks.io/r/emoji-picker",
11+
"popover"
12+
],
1013
"files": [
11-
{
12-
"type": "registry:ui",
13-
"path": "src/examples/shadcnui/ui/emoji-picker.tsx",
14-
"target": "components/ui/emoji-picker.tsx",
15-
"content": "\"use client\";\n\nimport {\n type EmojiPickerListCategoryHeaderProps,\n type EmojiPickerListEmojiProps,\n type EmojiPickerListRowProps,\n EmojiPicker as EmojiPickerPrimitive,\n} from \"frimousse\";\nimport { LoaderIcon, SearchIcon } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction EmojiPicker({\n className,\n ...props\n}: React.ComponentProps<typeof EmojiPickerPrimitive.Root>) {\n return (\n <EmojiPickerPrimitive.Root\n className={cn(\n \"bg-popover text-popover-foreground isolate flex h-full w-fit flex-col overflow-hidden rounded-md\",\n className\n )}\n data-slot=\"emoji-picker\"\n {...props}\n />\n );\n}\n\nfunction EmojiPickerSearch({\n className,\n ...props\n}: React.ComponentProps<typeof EmojiPickerPrimitive.Search>) {\n return (\n <div\n className={cn(\"flex h-9 items-center gap-2 border-b px-3\", className)}\n data-slot=\"emoji-picker-search-wrapper\"\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <EmojiPickerPrimitive.Search\n className=\"outline-none placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm disabled:cursor-not-allowed disabled:opacity-50\"\n data-slot=\"emoji-picker-search\"\n {...props}\n />\n </div>\n );\n}\n\nfunction EmojiPickerRow({ children, ...props }: EmojiPickerListRowProps) {\n return (\n <div {...props} className=\"scroll-my-1 px-1\" data-slot=\"emoji-picker-row\">\n {children}\n </div>\n );\n}\n\nfunction EmojiPickerEmoji({\n emoji,\n className,\n ...props\n}: EmojiPickerListEmojiProps) {\n return (\n <button\n {...props}\n className={cn(\n \"data-[active]:bg-accent flex size-7 items-center justify-center rounded-md text-base\",\n className\n )}\n data-slot=\"emoji-picker-emoji\"\n >\n {emoji.emoji}\n </button>\n );\n}\n\nfunction EmojiPickerCategoryHeader({\n category,\n ...props\n}: EmojiPickerListCategoryHeaderProps) {\n return (\n <div\n {...props}\n className=\"bg-popover text-muted-foreground px-3 pb-2 pt-3.5 text-xs leading-none\"\n data-slot=\"emoji-picker-category-header\"\n >\n {category.label}\n </div>\n );\n}\n\nfunction EmojiPickerContent({\n className,\n ...props\n}: React.ComponentProps<typeof EmojiPickerPrimitive.Viewport>) {\n return (\n <EmojiPickerPrimitive.Viewport\n className={cn(\"outline-none relative flex-1\", className)}\n data-slot=\"emoji-picker-viewport\"\n {...props}\n >\n <EmojiPickerPrimitive.Loading\n className=\"absolute inset-0 flex items-center justify-center text-muted-foreground\"\n data-slot=\"emoji-picker-loading\"\n >\n <LoaderIcon className=\"size-4 animate-spin\" />\n </EmojiPickerPrimitive.Loading>\n <EmojiPickerPrimitive.Empty\n className=\"absolute inset-0 flex items-center justify-center text-muted-foreground text-sm\"\n data-slot=\"emoji-picker-empty\"\n >\n No emoji found.\n </EmojiPickerPrimitive.Empty>\n <EmojiPickerPrimitive.List\n className=\"select-none pb-1\"\n components={{\n Row: EmojiPickerRow,\n Emoji: EmojiPickerEmoji,\n CategoryHeader: EmojiPickerCategoryHeader,\n }}\n data-slot=\"emoji-picker-list\"\n />\n </EmojiPickerPrimitive.Viewport>\n );\n}\n\nfunction EmojiPickerFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"max-w-[--frimousse-viewport-width] flex w-full min-w-0 items-center gap-1 border-t p-2\",\n className\n )}\n data-slot=\"emoji-picker-footer\"\n {...props}\n >\n <EmojiPickerPrimitive.ActiveEmoji>\n {({ emoji }) =>\n emoji ? (\n <>\n <div className=\"flex size-7 flex-none items-center justify-center text-lg\">\n {emoji.emoji}\n </div>\n <span className=\"text-secondary-foreground truncate text-xs\">\n {emoji.label}\n </span>\n </>\n ) : (\n <span className=\"text-muted-foreground ml-1.5 flex h-7 items-center truncate text-xs\">\n Select an emoji…\n </span>\n )\n }\n </EmojiPickerPrimitive.ActiveEmoji>\n </div>\n );\n}\n\nexport {\n EmojiPicker,\n EmojiPickerSearch,\n EmojiPickerContent,\n EmojiPickerFooter,\n};"
16-
},
1714
{
1815
"type": "registry:page",
1916
"path": "src/examples/shadcnui/shadcnui-popover.tsx",

site/public/registry/v0/emoji-picker.json

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,8 @@
66
"type": "registry:block",
77
"categories": ["emoji-picker"],
88
"dependencies": ["frimousse", "lucide-react"],
9+
"registryDependencies": ["https://frimousse.liveblocks.io/r/emoji-picker"],
910
"files": [
10-
{
11-
"type": "registry:ui",
12-
"path": "src/examples/shadcnui/ui/emoji-picker.tsx",
13-
"target": "components/ui/emoji-picker.tsx",
14-
"content": "\"use client\";\n\nimport {\n type EmojiPickerListCategoryHeaderProps,\n type EmojiPickerListEmojiProps,\n type EmojiPickerListRowProps,\n EmojiPicker as EmojiPickerPrimitive,\n} from \"frimousse\";\nimport { LoaderIcon, SearchIcon } from \"lucide-react\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction EmojiPicker({\n className,\n ...props\n}: React.ComponentProps<typeof EmojiPickerPrimitive.Root>) {\n return (\n <EmojiPickerPrimitive.Root\n className={cn(\n \"bg-popover text-popover-foreground isolate flex h-full w-fit flex-col overflow-hidden rounded-md\",\n className\n )}\n data-slot=\"emoji-picker\"\n {...props}\n />\n );\n}\n\nfunction EmojiPickerSearch({\n className,\n ...props\n}: React.ComponentProps<typeof EmojiPickerPrimitive.Search>) {\n return (\n <div\n className={cn(\"flex h-9 items-center gap-2 border-b px-3\", className)}\n data-slot=\"emoji-picker-search-wrapper\"\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <EmojiPickerPrimitive.Search\n className=\"outline-none placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm disabled:cursor-not-allowed disabled:opacity-50\"\n data-slot=\"emoji-picker-search\"\n {...props}\n />\n </div>\n );\n}\n\nfunction EmojiPickerRow({ children, ...props }: EmojiPickerListRowProps) {\n return (\n <div {...props} className=\"scroll-my-1 px-1\" data-slot=\"emoji-picker-row\">\n {children}\n </div>\n );\n}\n\nfunction EmojiPickerEmoji({\n emoji,\n className,\n ...props\n}: EmojiPickerListEmojiProps) {\n return (\n <button\n {...props}\n className={cn(\n \"data-[active]:bg-accent flex size-7 items-center justify-center rounded-md text-base\",\n className\n )}\n data-slot=\"emoji-picker-emoji\"\n >\n {emoji.emoji}\n </button>\n );\n}\n\nfunction EmojiPickerCategoryHeader({\n category,\n ...props\n}: EmojiPickerListCategoryHeaderProps) {\n return (\n <div\n {...props}\n className=\"bg-popover text-muted-foreground px-3 pb-2 pt-3.5 text-xs leading-none\"\n data-slot=\"emoji-picker-category-header\"\n >\n {category.label}\n </div>\n );\n}\n\nfunction EmojiPickerContent({\n className,\n ...props\n}: React.ComponentProps<typeof EmojiPickerPrimitive.Viewport>) {\n return (\n <EmojiPickerPrimitive.Viewport\n className={cn(\"outline-none relative flex-1\", className)}\n data-slot=\"emoji-picker-viewport\"\n {...props}\n >\n <EmojiPickerPrimitive.Loading\n className=\"absolute inset-0 flex items-center justify-center text-muted-foreground\"\n data-slot=\"emoji-picker-loading\"\n >\n <LoaderIcon className=\"size-4 animate-spin\" />\n </EmojiPickerPrimitive.Loading>\n <EmojiPickerPrimitive.Empty\n className=\"absolute inset-0 flex items-center justify-center text-muted-foreground text-sm\"\n data-slot=\"emoji-picker-empty\"\n >\n No emoji found.\n </EmojiPickerPrimitive.Empty>\n <EmojiPickerPrimitive.List\n className=\"select-none pb-1\"\n components={{\n Row: EmojiPickerRow,\n Emoji: EmojiPickerEmoji,\n CategoryHeader: EmojiPickerCategoryHeader,\n }}\n data-slot=\"emoji-picker-list\"\n />\n </EmojiPickerPrimitive.Viewport>\n );\n}\n\nfunction EmojiPickerFooter({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n className={cn(\n \"max-w-[--frimousse-viewport-width] flex w-full min-w-0 items-center gap-1 border-t p-2\",\n className\n )}\n data-slot=\"emoji-picker-footer\"\n {...props}\n >\n <EmojiPickerPrimitive.ActiveEmoji>\n {({ emoji }) =>\n emoji ? (\n <>\n <div className=\"flex size-7 flex-none items-center justify-center text-lg\">\n {emoji.emoji}\n </div>\n <span className=\"text-secondary-foreground truncate text-xs\">\n {emoji.label}\n </span>\n </>\n ) : (\n <span className=\"text-muted-foreground ml-1.5 flex h-7 items-center truncate text-xs\">\n Select an emoji…\n </span>\n )\n }\n </EmojiPickerPrimitive.ActiveEmoji>\n </div>\n );\n}\n\nexport {\n EmojiPicker,\n EmojiPickerSearch,\n EmojiPickerContent,\n EmojiPickerFooter,\n};"
15-
},
1611
{
1712
"type": "registry:page",
1813
"path": "src/examples/shadcnui/shadcnui.tsx",

0 commit comments

Comments
 (0)