diff --git a/apps/v4/public/r/config.json b/apps/v4/public/r/config.json index 31867c3cfb..e8a383bb79 100644 --- a/apps/v4/public/r/config.json +++ b/apps/v4/public/r/config.json @@ -3,13 +3,13 @@ { "name": "radix-vega", "title": "Vega (Radix)", - "description": "Vega / Lucide / Geist Sans", + "description": "Vega / Lucide / Inter", "base": "radix", "style": "vega", "baseColor": "neutral", "theme": "neutral", "iconLibrary": "lucide", - "font": "geist", + "font": "inter", "item": "Item", "menuAccent": "subtle", "menuColor": "default", diff --git a/apps/v4/public/r/styles/base-lyra/calendar.json b/apps/v4/public/r/styles/base-lyra/calendar.json index 5de2511806..6ef42f3937 100644 --- a/apps/v4/public/r/styles/base-lyra/calendar.json +++ b/apps/v4/public/r/styles/base-lyra/calendar.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/base-lyra/ui/calendar.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/base/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/base/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted elative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/base/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/base/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", "type": "registry:ui" } ], diff --git a/apps/v4/public/r/styles/base-lyra/input-group-example.json b/apps/v4/public/r/styles/base-lyra/input-group-example.json index e6df8720d1..0736085323 100644 --- a/apps/v4/public/r/styles/base-lyra/input-group-example.json +++ b/apps/v4/public/r/styles/base-lyra/input-group-example.json @@ -20,7 +20,7 @@ "files": [ { "path": "registry/base-lyra/examples/input-group-example.tsx", - "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { toast } from \"sonner\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n ButtonGroup,\n ButtonGroupText,\n} from \"@/registry/bases/base/ui/button-group\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/base/ui/card\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/bases/base/ui/dropdown-menu\"\nimport {\n Field,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n} from \"@/registry/bases/base/ui/field\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n} from \"@/registry/bases/base/ui/input-group\"\nimport { Kbd, KbdGroup } from \"@/registry/bases/base/ui/kbd\"\nimport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n} from \"@/registry/bases/base/ui/popover\"\nimport { Spinner } from \"@/registry/bases/base/ui/spinner\"\nimport { Textarea } from \"@/registry/bases/base/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/base/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function InputGroupExample() {\n const [country, setCountry] = useState(\"+1\")\n\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupBasic() {\n return (\n \n \n \n \n Default (No Input Group)\n \n \n \n \n Input Group\n \n \n \n \n \n Disabled\n \n \n \n \n \n Invalid\n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithAddons() {\n return (\n \n \n \n \n Addon (inline-start)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-end)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-start and inline-end)\n \n \n \n \n \n \n \n \n \n \n \n \n Addon (block-start)\n \n \n \n First Name\n \n \n \n \n \n Addon (block-end)\n \n \n \n 20/240 characters\n \n \n \n \n \n Multiple Icons\n \n \n \n \n toast(\"Copied to clipboard\")}\n >\n \n \n \n \n \n \n \n \n \n Description\n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Label\n \n \n Label\n \n \n \n \n \n \n (optional)\n \n \n \n \n \n )\n}\n\nfunction InputGroupWithButtons() {\n return (\n \n \n \n Button\n \n \n \n Default\n \n \n \n \n \n Outline\n \n \n \n \n \n Secondary\n \n \n \n \n \n Button\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithTooltip({\n country,\n setCountry,\n}: {\n country: string\n setCountry: (value: string) => void\n}) {\n return (\n \n \n \n Tooltip\n \n \n \n \n \n }\n >\n \n \n This is content in a tooltip.\n \n \n \n \n This is a description of the input group.\n \n \n \n Dropdown\n \n \n \n \n \n }\n >\n {country}{\" \"}\n \n \n \n setCountry(\"+1\")}>\n +1\n \n setCountry(\"+44\")}>\n +44\n \n setCountry(\"+46\")}>\n +46\n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Popover\n \n \n } nativeButton={false}>\n \n \n \n \n \n \n Your connection is not secure.\n \n You should not enter any sensitive information on this site.\n \n \n \n \n \n https://\n \n \n \n toast(\"Added to favorites\")}\n >\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Button Group\n \n https://\n \n \n \n \n \n \n .com\n \n \n This is a description of the input group.\n \n \n \n \n )\n}\n\nfunction InputGroupWithKbd() {\n return (\n \n \n \n Input Group with Kbd\n \n \n \n ⌘K\n \n \n \n \n \n ⌘K\n \n \n \n \n Ask AI\n \n Tab\n \n \n \n \n \n \n \n \n \n Ctrl\n C\n \n \n \n \n \n Username\n \n \n \n
\n \n
\n
\n
\n \n This username is available.\n \n
\n \n \n \n \n \n 12 results\n \n \n \n \n \n \n Disabled\n \n \n \n First Name\n \n \n \n \n \n \n \n \n Last Name\n \n \n \n \n \n \n \n \n \n \n Loading ("data-disabled="true")\n \n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n
\n
\n )\n}\n\nfunction InputGroupInCard() {\n return (\n \n \n \n Card with Input Group\n This is a card with an input group.\n \n \n \n \n Email Address\n \n \n \n \n \n \n \n \n Website URL\n \n \n https://\n \n \n \n \n \n \n \n \n \n Feedback & Comments\n \n \n \n \n 0/500 characters\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupTextareaExamples() {\n return (\n \n \n \n \n Default Textarea (No Input Group)\n \n \n \n \n \n Input Group\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Invalid\n \n \n \n \n This is a description of the input group.\n \n \n \n Disabled\n \n \n \n \n This is a description of the input group.\n \n \n \n Addon (block-start)\n \n \n \n Ask, Search or Chat...\n \n \n \n \n This is a description of the input group.\n \n \n \n \n Addon (block-end)\n \n \n \n \n 0/280 characters\n \n \n Send\n \n \n \n \n \n Addon (Buttons)\n \n \n \n \n Cancel\n \n \n Post Comment\n \n \n \n \n \n Code Editor\n \n \n \n \n \n script.js\n \n \n \n \n \n \n \n \n \n Line 1, Column 1\n JavaScript\n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { toast } from \"sonner\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n ButtonGroup,\n ButtonGroupText,\n} from \"@/registry/bases/base/ui/button-group\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/base/ui/card\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/bases/base/ui/dropdown-menu\"\nimport {\n Field,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n} from \"@/registry/bases/base/ui/field\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n} from \"@/registry/bases/base/ui/input-group\"\nimport { Kbd, KbdGroup } from \"@/registry/bases/base/ui/kbd\"\nimport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n} from \"@/registry/bases/base/ui/popover\"\nimport { Spinner } from \"@/registry/bases/base/ui/spinner\"\nimport { Textarea } from \"@/registry/bases/base/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/base/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function InputGroupExample() {\n const [country, setCountry] = useState(\"+1\")\n\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupBasic() {\n return (\n \n \n \n \n Default (No Input Group)\n \n \n \n \n Input Group\n \n \n \n \n \n Disabled\n \n \n \n \n \n Invalid\n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithAddons() {\n return (\n \n \n \n \n Addon (inline-start)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-end)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-start and inline-end)\n \n \n \n \n \n \n \n \n \n \n \n \n Addon (block-start)\n \n \n \n First Name\n \n \n \n \n \n Addon (block-end)\n \n \n \n 20/240 characters\n \n \n \n \n \n Multiple Icons\n \n \n \n \n toast(\"Copied to clipboard\")}\n >\n \n \n \n \n \n \n \n \n \n Description\n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Label\n \n \n Label\n \n \n \n \n \n \n (optional)\n \n \n \n \n \n )\n}\n\nfunction InputGroupWithButtons() {\n return (\n \n \n \n Button\n \n \n \n Default\n \n \n \n \n \n Outline\n \n \n \n \n \n Secondary\n \n \n \n \n \n Button\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithTooltip({\n country,\n setCountry,\n}: {\n country: string\n setCountry: (value: string) => void\n}) {\n return (\n \n \n \n Tooltip\n \n \n \n \n \n }\n >\n \n \n This is content in a tooltip.\n \n \n \n \n This is a description of the input group.\n \n \n \n Dropdown\n \n \n \n \n \n }\n >\n {country}{\" \"}\n \n \n \n setCountry(\"+1\")}>\n +1\n \n setCountry(\"+44\")}>\n +44\n \n setCountry(\"+46\")}>\n +46\n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Popover\n \n \n } nativeButton={false}>\n \n \n \n \n \n \n Your connection is not secure.\n \n You should not enter any sensitive information on this site.\n \n \n \n \n \n https://\n \n \n \n toast(\"Added to favorites\")}\n >\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Button Group\n \n https://\n \n \n \n \n \n \n .com\n \n \n This is a description of the input group.\n \n \n \n \n )\n}\n\nfunction InputGroupWithKbd() {\n return (\n \n \n \n Input Group with Kbd\n \n \n \n ⌘K\n \n \n \n \n \n ⌘K\n \n \n \n \n Ask AI\n \n Tab\n \n \n \n \n \n \n \n \n \n Ctrl\n C\n \n \n \n \n \n Username\n \n \n \n
\n \n
\n
\n
\n \n This username is available.\n \n
\n \n \n \n \n \n 12 results\n \n \n \n \n \n \n Disabled\n \n \n \n First Name\n \n \n \n \n \n \n \n \n Last Name\n \n \n \n \n \n \n \n \n \n \n Loading ("data-disabled="true")\n \n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n
\n
\n )\n}\n\nfunction InputGroupInCard() {\n return (\n \n \n \n Card with Input Group\n This is a card with an input group.\n \n \n \n \n Email Address\n \n \n \n \n \n \n \n \n Website URL\n \n \n https://\n \n \n \n \n \n \n \n \n \n Feedback & Comments\n \n \n \n \n 0/500 characters\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupTextareaExamples() {\n return (\n \n \n \n \n Default Textarea (No Input Group)\n \n \n \n \n \n Input Group\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Invalid\n \n \n \n \n This is a description of the input group.\n \n \n \n Disabled\n \n \n \n \n This is a description of the input group.\n \n \n \n Addon (block-start)\n \n \n \n Ask, Search or Chat...\n \n \n \n \n This is a description of the input group.\n \n \n \n \n Addon (block-end)\n \n \n \n \n 0/280 characters\n \n \n Send\n \n \n \n \n \n Addon (Buttons)\n \n \n \n \n Cancel\n \n \n Post Comment\n \n \n \n \n \n Code Editor\n \n \n \n \n \n script.js\n \n \n \n \n \n \n \n \n \n Line 1, Column 1\n JavaScript\n \n \n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-lyra/item-example.json b/apps/v4/public/r/styles/base-lyra/item-example.json index 8ecf0dfae5..54484b6776 100644 --- a/apps/v4/public/r/styles/base-lyra/item-example.json +++ b/apps/v4/public/r/styles/base-lyra/item-example.json @@ -10,7 +10,7 @@ "files": [ { "path": "registry/base-lyra/examples/item-example.tsx", - "content": "import Image from \"next/image\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/base/ui/item\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ItemExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in the group.\n \n \n \n \n Item 2\n Second item in the group.\n \n \n \n \n Item 3\n Third item in the group.\n \n \n \n \n )\n}\n\nfunction OutlineItemGroup() {\n return (\n \n \n \n \n \n \n \n Item 1\n First item with icon.\n \n \n \n \n \n \n \n Item 2\n Second item with icon.\n \n \n \n \n \n \n \n Item 3\n Third item with icon.\n \n \n \n \n )\n}\n\nfunction MutedItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in muted group.\n \n \n \n \n \n \n \n Item 2\n Second item in muted group.\n \n \n \n \n \n \n \n Item 3\n Third item in muted group.\n \n \n \n \n \n \n \n )\n}\n\nfunction ItemSeparatorExample() {\n return (\n \n \n \n \n \n \n \n Inbox\n View all incoming messages.\n \n \n \n \n \n \n \n \n Sent\n View all sent messages.\n \n \n \n \n \n \n \n \n Drafts\n View all draft messages.\n \n \n \n \n \n \n \n \n Archive\n View archived messages.\n \n \n \n \n )\n}\n\nfunction ItemHeaderExamples() {\n return (\n \n \n \n Design System\n \n \n Component Library\n \n A comprehensive collection of reusable UI components for building\n consistent interfaces.\n \n \n \n \n \n Marketing\n \n \n Campaign Analytics\n \n Track performance metrics and engagement rates across all marketing\n channels.\n \n \n \n \n \n Engineering\n \n \n API Documentation\n \n Complete reference guide for all available endpoints and\n authentication methods.\n \n \n \n \n )\n}\n\nfunction ItemFooterExamples() {\n return (\n \n \n \n Quarterly Report Q4 2024\n \n Financial overview including revenue, expenses, and growth metrics\n for the fourth quarter.\n \n \n \n \n Last updated 2 hours ago\n \n \n \n \n \n User Research Findings\n \n Insights from interviews and surveys conducted with 50+ users across\n different demographics.\n \n \n \n \n Created by Sarah Chen\n \n \n \n \n \n Product Roadmap\n \n Planned features and improvements scheduled for the next three\n months.\n \n \n \n 12 comments\n \n \n \n )\n}\n\nfunction ItemHeaderAndFooterExamples() {\n return (\n \n \n \n Team Project\n \n \n Website Redesign\n \n Complete overhaul of the company website with modern design\n principles and improved user experience.\n \n \n \n \n Updated 5 minutes ago\n \n \n \n \n \n Client Work\n \n \n Mobile App Development\n \n Building a cross-platform mobile application for iOS and Android\n with React Native.\n \n \n \n \n Status: In Progress\n \n \n \n \n \n Documentation\n \n \n API Integration Guide\n \n Step-by-step instructions for integrating third-party APIs with\n authentication and error handling.\n \n \n \n \n Category: Technical • 3 attachments\n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageExtraSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n \n \n \n \n \n \n Document\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n", + "content": "import Image from \"next/image\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/base/ui/item\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ItemExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in the group.\n \n \n \n \n Item 2\n Second item in the group.\n \n \n \n \n Item 3\n Third item in the group.\n \n \n \n \n )\n}\n\nfunction OutlineItemGroup() {\n return (\n \n \n \n \n \n \n \n Item 1\n First item with icon.\n \n \n \n \n \n \n \n Item 2\n Second item with icon.\n \n \n \n \n \n \n \n Item 3\n Third item with icon.\n \n \n \n \n )\n}\n\nfunction MutedItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in muted group.\n \n \n \n \n \n \n \n Item 2\n Second item in muted group.\n \n \n \n \n \n \n \n Item 3\n Third item in muted group.\n \n \n \n \n \n \n \n )\n}\n\nfunction ItemSeparatorExample() {\n return (\n \n \n \n \n \n \n \n Inbox\n View all incoming messages.\n \n \n \n \n \n \n \n \n Sent\n View all sent messages.\n \n \n \n \n \n \n \n \n Drafts\n View all draft messages.\n \n \n \n \n \n \n \n \n Archive\n View archived messages.\n \n \n \n \n )\n}\n\nfunction ItemHeaderExamples() {\n return (\n \n \n \n Design System\n \n \n Component Library\n \n A comprehensive collection of reusable UI components for building\n consistent interfaces.\n \n \n \n \n \n Marketing\n \n \n Campaign Analytics\n \n Track performance metrics and engagement rates across all marketing\n channels.\n \n \n \n \n \n Engineering\n \n \n API Documentation\n \n Complete reference guide for all available endpoints and\n authentication methods.\n \n \n \n \n )\n}\n\nfunction ItemFooterExamples() {\n return (\n \n \n \n Quarterly Report Q4 2024\n \n Financial overview including revenue, expenses, and growth metrics\n for the fourth quarter.\n \n \n \n \n Last updated 2 hours ago\n \n \n \n \n \n User Research Findings\n \n Insights from interviews and surveys conducted with 50+ users across\n different demographics.\n \n \n \n \n Created by Sarah Chen\n \n \n \n \n \n Product Roadmap\n \n Planned features and improvements scheduled for the next three\n months.\n \n \n \n 12 comments\n \n \n \n )\n}\n\nfunction ItemHeaderAndFooterExamples() {\n return (\n \n \n \n Team Project\n \n \n Website Redesign\n \n Complete overhaul of the company website with modern design\n principles and improved user experience.\n \n \n \n \n Updated 5 minutes ago\n \n \n \n \n \n Client Work\n \n \n Mobile App Development\n \n Building a cross-platform mobile application for iOS and Android\n with React Native.\n \n \n \n \n Status: In Progress\n \n \n \n \n \n Documentation\n \n \n API Integration Guide\n \n Step-by-step instructions for integrating third-party APIs with\n authentication and error handling.\n \n \n \n \n Category: Technical • 3 attachments\n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageExtraSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n \n \n \n \n \n \n Document\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-lyra/toggle-example.json b/apps/v4/public/r/styles/base-lyra/toggle-example.json index 543e10cce1..756132b6a2 100644 --- a/apps/v4/public/r/styles/base-lyra/toggle-example.json +++ b/apps/v4/public/r/styles/base-lyra/toggle-example.json @@ -9,7 +9,7 @@ "files": [ { "path": "registry/base-lyra/examples/toggle-example.tsx", - "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport { Toggle } from \"@/registry/bases/base/ui/toggle\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleBasic() {\n return (\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction ToggleOutline() {\n return (\n \n
\n \n \n Italic\n \n \n \n Bold\n \n
\n
\n )\n}\n\nfunction ToggleSizes() {\n return (\n \n
\n \n Small\n \n \n Default\n \n \n Large\n \n
\n
\n )\n}\n\nfunction ToggleWithButtonText() {\n return (\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIcon() {\n return (\n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIconText() {\n return (\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleDisabled() {\n return (\n \n
\n \n Disabled\n \n \n Disabled\n \n
\n
\n )\n}\n\nfunction ToggleWithIcon() {\n return (\n \n
\n \n \n \n \n \n Bookmark\n \n
\n
\n )\n}\n", + "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport { Toggle } from \"@/registry/bases/base/ui/toggle\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleBasic() {\n return (\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction ToggleOutline() {\n return (\n \n
\n \n \n Italic\n \n \n \n Bold\n \n
\n
\n )\n}\n\nfunction ToggleSizes() {\n return (\n \n
\n \n Small\n \n \n Default\n \n \n Large\n \n
\n
\n )\n}\n\nfunction ToggleWithButtonText() {\n return (\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIcon() {\n return (\n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIconText() {\n return (\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleDisabled() {\n return (\n \n
\n \n Disabled\n \n \n Disabled\n \n
\n
\n )\n}\n\nfunction ToggleWithIcon() {\n return (\n \n
\n \n \n \n \n \n Bookmark\n \n
\n
\n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-lyra/toggle-group-example.json b/apps/v4/public/r/styles/base-lyra/toggle-group-example.json index 84f4b5d691..b3828dd720 100644 --- a/apps/v4/public/r/styles/base-lyra/toggle-group-example.json +++ b/apps/v4/public/r/styles/base-lyra/toggle-group-example.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/base-lyra/examples/toggle-group-example.tsx", - "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/bases/base/ui/select\"\nimport {\n ToggleGroup,\n ToggleGroupItem,\n} from \"@/registry/bases/base/ui/toggle-group\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleGroupExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupBasic() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupOutline() {\n return (\n \n \n \n All\n \n \n Missed\n \n \n \n )\n}\n\nfunction ToggleGroupOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupSizes() {\n return (\n \n
\n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n\nfunction ToggleGroupWithIcons() {\n return (\n \n \n \n \n Star\n \n \n \n Heart\n \n \n \n Bookmark\n \n \n \n )\n}\n\nfunction ToggleGroupFilter() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupDateRange() {\n return (\n \n \n \n Today\n \n \n This Week\n \n \n This Month\n \n \n This Year\n \n \n \n )\n}\n\nfunction ToggleGroupSort() {\n return (\n \n \n \n \n Newest\n \n \n \n Oldest\n \n \n \n Popular\n \n \n \n )\n}\n\nfunction ToggleGroupWithInputAndSelect() {\n const items = [\n { label: \"All\", value: \"all\" },\n { label: \"Active\", value: \"active\" },\n { label: \"Archived\", value: \"archived\" },\n ]\n return (\n \n
\n \n \n \n \n Grid\n \n \n List\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupVertical() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutline() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalWithSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n", + "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/bases/base/ui/select\"\nimport {\n ToggleGroup,\n ToggleGroupItem,\n} from \"@/registry/bases/base/ui/toggle-group\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleGroupExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupBasic() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupOutline() {\n return (\n \n \n \n All\n \n \n Missed\n \n \n \n )\n}\n\nfunction ToggleGroupOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupSizes() {\n return (\n \n
\n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n\nfunction ToggleGroupWithIcons() {\n return (\n \n \n \n \n Star\n \n \n \n Heart\n \n \n \n Bookmark\n \n \n \n )\n}\n\nfunction ToggleGroupFilter() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupDateRange() {\n return (\n \n \n \n Today\n \n \n This Week\n \n \n This Month\n \n \n This Year\n \n \n \n )\n}\n\nfunction ToggleGroupSort() {\n return (\n \n \n \n \n Newest\n \n \n \n Oldest\n \n \n \n Popular\n \n \n \n )\n}\n\nfunction ToggleGroupWithInputAndSelect() {\n const items = [\n { label: \"All\", value: \"all\" },\n { label: \"Active\", value: \"active\" },\n { label: \"Archived\", value: \"archived\" },\n ]\n return (\n \n
\n \n \n \n \n Grid\n \n \n List\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupVertical() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutline() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalWithSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-maia/calendar.json b/apps/v4/public/r/styles/base-maia/calendar.json index 090cd463cd..1099d107e6 100644 --- a/apps/v4/public/r/styles/base-maia/calendar.json +++ b/apps/v4/public/r/styles/base-maia/calendar.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/base-maia/ui/calendar.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/base/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/base/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted elative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/base/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/base/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", "type": "registry:ui" } ], diff --git a/apps/v4/public/r/styles/base-maia/input-group-example.json b/apps/v4/public/r/styles/base-maia/input-group-example.json index da6b08c020..2fb200598c 100644 --- a/apps/v4/public/r/styles/base-maia/input-group-example.json +++ b/apps/v4/public/r/styles/base-maia/input-group-example.json @@ -20,7 +20,7 @@ "files": [ { "path": "registry/base-maia/examples/input-group-example.tsx", - "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { toast } from \"sonner\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n ButtonGroup,\n ButtonGroupText,\n} from \"@/registry/bases/base/ui/button-group\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/base/ui/card\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/bases/base/ui/dropdown-menu\"\nimport {\n Field,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n} from \"@/registry/bases/base/ui/field\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n} from \"@/registry/bases/base/ui/input-group\"\nimport { Kbd, KbdGroup } from \"@/registry/bases/base/ui/kbd\"\nimport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n} from \"@/registry/bases/base/ui/popover\"\nimport { Spinner } from \"@/registry/bases/base/ui/spinner\"\nimport { Textarea } from \"@/registry/bases/base/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/base/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function InputGroupExample() {\n const [country, setCountry] = useState(\"+1\")\n\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupBasic() {\n return (\n \n \n \n \n Default (No Input Group)\n \n \n \n \n Input Group\n \n \n \n \n \n Disabled\n \n \n \n \n \n Invalid\n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithAddons() {\n return (\n \n \n \n \n Addon (inline-start)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-end)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-start and inline-end)\n \n \n \n \n \n \n \n \n \n \n \n \n Addon (block-start)\n \n \n \n First Name\n \n \n \n \n \n Addon (block-end)\n \n \n \n 20/240 characters\n \n \n \n \n \n Multiple Icons\n \n \n \n \n toast(\"Copied to clipboard\")}\n >\n \n \n \n \n \n \n \n \n \n Description\n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Label\n \n \n Label\n \n \n \n \n \n \n (optional)\n \n \n \n \n \n )\n}\n\nfunction InputGroupWithButtons() {\n return (\n \n \n \n Button\n \n \n \n Default\n \n \n \n \n \n Outline\n \n \n \n \n \n Secondary\n \n \n \n \n \n Button\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithTooltip({\n country,\n setCountry,\n}: {\n country: string\n setCountry: (value: string) => void\n}) {\n return (\n \n \n \n Tooltip\n \n \n \n \n \n }\n >\n \n \n This is content in a tooltip.\n \n \n \n \n This is a description of the input group.\n \n \n \n Dropdown\n \n \n \n \n \n }\n >\n {country}{\" \"}\n \n \n \n setCountry(\"+1\")}>\n +1\n \n setCountry(\"+44\")}>\n +44\n \n setCountry(\"+46\")}>\n +46\n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Popover\n \n \n } nativeButton={false}>\n \n \n \n \n \n \n Your connection is not secure.\n \n You should not enter any sensitive information on this site.\n \n \n \n \n \n https://\n \n \n \n toast(\"Added to favorites\")}\n >\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Button Group\n \n https://\n \n \n \n \n \n \n .com\n \n \n This is a description of the input group.\n \n \n \n \n )\n}\n\nfunction InputGroupWithKbd() {\n return (\n \n \n \n Input Group with Kbd\n \n \n \n ⌘K\n \n \n \n \n \n ⌘K\n \n \n \n \n Ask AI\n \n Tab\n \n \n \n \n \n \n \n \n \n Ctrl\n C\n \n \n \n \n \n Username\n \n \n \n
\n \n
\n
\n
\n \n This username is available.\n \n
\n \n \n \n \n \n 12 results\n \n \n \n \n \n \n Disabled\n \n \n \n First Name\n \n \n \n \n \n \n \n \n Last Name\n \n \n \n \n \n \n \n \n \n \n Loading ("data-disabled="true")\n \n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n
\n
\n )\n}\n\nfunction InputGroupInCard() {\n return (\n \n \n \n Card with Input Group\n This is a card with an input group.\n \n \n \n \n Email Address\n \n \n \n \n \n \n \n \n Website URL\n \n \n https://\n \n \n \n \n \n \n \n \n \n Feedback & Comments\n \n \n \n \n 0/500 characters\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupTextareaExamples() {\n return (\n \n \n \n \n Default Textarea (No Input Group)\n \n \n \n \n \n Input Group\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Invalid\n \n \n \n \n This is a description of the input group.\n \n \n \n Disabled\n \n \n \n \n This is a description of the input group.\n \n \n \n Addon (block-start)\n \n \n \n Ask, Search or Chat...\n \n \n \n \n This is a description of the input group.\n \n \n \n \n Addon (block-end)\n \n \n \n \n 0/280 characters\n \n \n Send\n \n \n \n \n \n Addon (Buttons)\n \n \n \n \n Cancel\n \n \n Post Comment\n \n \n \n \n \n Code Editor\n \n \n \n \n \n script.js\n \n \n \n \n \n \n \n \n \n Line 1, Column 1\n JavaScript\n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { toast } from \"sonner\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n ButtonGroup,\n ButtonGroupText,\n} from \"@/registry/bases/base/ui/button-group\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/base/ui/card\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/bases/base/ui/dropdown-menu\"\nimport {\n Field,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n} from \"@/registry/bases/base/ui/field\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n} from \"@/registry/bases/base/ui/input-group\"\nimport { Kbd, KbdGroup } from \"@/registry/bases/base/ui/kbd\"\nimport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n} from \"@/registry/bases/base/ui/popover\"\nimport { Spinner } from \"@/registry/bases/base/ui/spinner\"\nimport { Textarea } from \"@/registry/bases/base/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/base/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function InputGroupExample() {\n const [country, setCountry] = useState(\"+1\")\n\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupBasic() {\n return (\n \n \n \n \n Default (No Input Group)\n \n \n \n \n Input Group\n \n \n \n \n \n Disabled\n \n \n \n \n \n Invalid\n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithAddons() {\n return (\n \n \n \n \n Addon (inline-start)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-end)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-start and inline-end)\n \n \n \n \n \n \n \n \n \n \n \n \n Addon (block-start)\n \n \n \n First Name\n \n \n \n \n \n Addon (block-end)\n \n \n \n 20/240 characters\n \n \n \n \n \n Multiple Icons\n \n \n \n \n toast(\"Copied to clipboard\")}\n >\n \n \n \n \n \n \n \n \n \n Description\n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Label\n \n \n Label\n \n \n \n \n \n \n (optional)\n \n \n \n \n \n )\n}\n\nfunction InputGroupWithButtons() {\n return (\n \n \n \n Button\n \n \n \n Default\n \n \n \n \n \n Outline\n \n \n \n \n \n Secondary\n \n \n \n \n \n Button\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithTooltip({\n country,\n setCountry,\n}: {\n country: string\n setCountry: (value: string) => void\n}) {\n return (\n \n \n \n Tooltip\n \n \n \n \n \n }\n >\n \n \n This is content in a tooltip.\n \n \n \n \n This is a description of the input group.\n \n \n \n Dropdown\n \n \n \n \n \n }\n >\n {country}{\" \"}\n \n \n \n setCountry(\"+1\")}>\n +1\n \n setCountry(\"+44\")}>\n +44\n \n setCountry(\"+46\")}>\n +46\n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Popover\n \n \n } nativeButton={false}>\n \n \n \n \n \n \n Your connection is not secure.\n \n You should not enter any sensitive information on this site.\n \n \n \n \n \n https://\n \n \n \n toast(\"Added to favorites\")}\n >\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Button Group\n \n https://\n \n \n \n \n \n \n .com\n \n \n This is a description of the input group.\n \n \n \n \n )\n}\n\nfunction InputGroupWithKbd() {\n return (\n \n \n \n Input Group with Kbd\n \n \n \n ⌘K\n \n \n \n \n \n ⌘K\n \n \n \n \n Ask AI\n \n Tab\n \n \n \n \n \n \n \n \n \n Ctrl\n C\n \n \n \n \n \n Username\n \n \n \n
\n \n
\n
\n
\n \n This username is available.\n \n
\n \n \n \n \n \n 12 results\n \n \n \n \n \n \n Disabled\n \n \n \n First Name\n \n \n \n \n \n \n \n \n Last Name\n \n \n \n \n \n \n \n \n \n \n Loading ("data-disabled="true")\n \n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n
\n
\n )\n}\n\nfunction InputGroupInCard() {\n return (\n \n \n \n Card with Input Group\n This is a card with an input group.\n \n \n \n \n Email Address\n \n \n \n \n \n \n \n \n Website URL\n \n \n https://\n \n \n \n \n \n \n \n \n \n Feedback & Comments\n \n \n \n \n 0/500 characters\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupTextareaExamples() {\n return (\n \n \n \n \n Default Textarea (No Input Group)\n \n \n \n \n \n Input Group\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Invalid\n \n \n \n \n This is a description of the input group.\n \n \n \n Disabled\n \n \n \n \n This is a description of the input group.\n \n \n \n Addon (block-start)\n \n \n \n Ask, Search or Chat...\n \n \n \n \n This is a description of the input group.\n \n \n \n \n Addon (block-end)\n \n \n \n \n 0/280 characters\n \n \n Send\n \n \n \n \n \n Addon (Buttons)\n \n \n \n \n Cancel\n \n \n Post Comment\n \n \n \n \n \n Code Editor\n \n \n \n \n \n script.js\n \n \n \n \n \n \n \n \n \n Line 1, Column 1\n JavaScript\n \n \n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-maia/item-example.json b/apps/v4/public/r/styles/base-maia/item-example.json index aaea31ae7d..38450b12e9 100644 --- a/apps/v4/public/r/styles/base-maia/item-example.json +++ b/apps/v4/public/r/styles/base-maia/item-example.json @@ -10,7 +10,7 @@ "files": [ { "path": "registry/base-maia/examples/item-example.tsx", - "content": "import Image from \"next/image\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/base/ui/item\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ItemExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in the group.\n \n \n \n \n Item 2\n Second item in the group.\n \n \n \n \n Item 3\n Third item in the group.\n \n \n \n \n )\n}\n\nfunction OutlineItemGroup() {\n return (\n \n \n \n \n \n \n \n Item 1\n First item with icon.\n \n \n \n \n \n \n \n Item 2\n Second item with icon.\n \n \n \n \n \n \n \n Item 3\n Third item with icon.\n \n \n \n \n )\n}\n\nfunction MutedItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in muted group.\n \n \n \n \n \n \n \n Item 2\n Second item in muted group.\n \n \n \n \n \n \n \n Item 3\n Third item in muted group.\n \n \n \n \n \n \n \n )\n}\n\nfunction ItemSeparatorExample() {\n return (\n \n \n \n \n \n \n \n Inbox\n View all incoming messages.\n \n \n \n \n \n \n \n \n Sent\n View all sent messages.\n \n \n \n \n \n \n \n \n Drafts\n View all draft messages.\n \n \n \n \n \n \n \n \n Archive\n View archived messages.\n \n \n \n \n )\n}\n\nfunction ItemHeaderExamples() {\n return (\n \n \n \n Design System\n \n \n Component Library\n \n A comprehensive collection of reusable UI components for building\n consistent interfaces.\n \n \n \n \n \n Marketing\n \n \n Campaign Analytics\n \n Track performance metrics and engagement rates across all marketing\n channels.\n \n \n \n \n \n Engineering\n \n \n API Documentation\n \n Complete reference guide for all available endpoints and\n authentication methods.\n \n \n \n \n )\n}\n\nfunction ItemFooterExamples() {\n return (\n \n \n \n Quarterly Report Q4 2024\n \n Financial overview including revenue, expenses, and growth metrics\n for the fourth quarter.\n \n \n \n \n Last updated 2 hours ago\n \n \n \n \n \n User Research Findings\n \n Insights from interviews and surveys conducted with 50+ users across\n different demographics.\n \n \n \n \n Created by Sarah Chen\n \n \n \n \n \n Product Roadmap\n \n Planned features and improvements scheduled for the next three\n months.\n \n \n \n 12 comments\n \n \n \n )\n}\n\nfunction ItemHeaderAndFooterExamples() {\n return (\n \n \n \n Team Project\n \n \n Website Redesign\n \n Complete overhaul of the company website with modern design\n principles and improved user experience.\n \n \n \n \n Updated 5 minutes ago\n \n \n \n \n \n Client Work\n \n \n Mobile App Development\n \n Building a cross-platform mobile application for iOS and Android\n with React Native.\n \n \n \n \n Status: In Progress\n \n \n \n \n \n Documentation\n \n \n API Integration Guide\n \n Step-by-step instructions for integrating third-party APIs with\n authentication and error handling.\n \n \n \n \n Category: Technical • 3 attachments\n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageExtraSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n \n \n \n \n \n \n Document\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n", + "content": "import Image from \"next/image\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/base/ui/item\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ItemExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in the group.\n \n \n \n \n Item 2\n Second item in the group.\n \n \n \n \n Item 3\n Third item in the group.\n \n \n \n \n )\n}\n\nfunction OutlineItemGroup() {\n return (\n \n \n \n \n \n \n \n Item 1\n First item with icon.\n \n \n \n \n \n \n \n Item 2\n Second item with icon.\n \n \n \n \n \n \n \n Item 3\n Third item with icon.\n \n \n \n \n )\n}\n\nfunction MutedItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in muted group.\n \n \n \n \n \n \n \n Item 2\n Second item in muted group.\n \n \n \n \n \n \n \n Item 3\n Third item in muted group.\n \n \n \n \n \n \n \n )\n}\n\nfunction ItemSeparatorExample() {\n return (\n \n \n \n \n \n \n \n Inbox\n View all incoming messages.\n \n \n \n \n \n \n \n \n Sent\n View all sent messages.\n \n \n \n \n \n \n \n \n Drafts\n View all draft messages.\n \n \n \n \n \n \n \n \n Archive\n View archived messages.\n \n \n \n \n )\n}\n\nfunction ItemHeaderExamples() {\n return (\n \n \n \n Design System\n \n \n Component Library\n \n A comprehensive collection of reusable UI components for building\n consistent interfaces.\n \n \n \n \n \n Marketing\n \n \n Campaign Analytics\n \n Track performance metrics and engagement rates across all marketing\n channels.\n \n \n \n \n \n Engineering\n \n \n API Documentation\n \n Complete reference guide for all available endpoints and\n authentication methods.\n \n \n \n \n )\n}\n\nfunction ItemFooterExamples() {\n return (\n \n \n \n Quarterly Report Q4 2024\n \n Financial overview including revenue, expenses, and growth metrics\n for the fourth quarter.\n \n \n \n \n Last updated 2 hours ago\n \n \n \n \n \n User Research Findings\n \n Insights from interviews and surveys conducted with 50+ users across\n different demographics.\n \n \n \n \n Created by Sarah Chen\n \n \n \n \n \n Product Roadmap\n \n Planned features and improvements scheduled for the next three\n months.\n \n \n \n 12 comments\n \n \n \n )\n}\n\nfunction ItemHeaderAndFooterExamples() {\n return (\n \n \n \n Team Project\n \n \n Website Redesign\n \n Complete overhaul of the company website with modern design\n principles and improved user experience.\n \n \n \n \n Updated 5 minutes ago\n \n \n \n \n \n Client Work\n \n \n Mobile App Development\n \n Building a cross-platform mobile application for iOS and Android\n with React Native.\n \n \n \n \n Status: In Progress\n \n \n \n \n \n Documentation\n \n \n API Integration Guide\n \n Step-by-step instructions for integrating third-party APIs with\n authentication and error handling.\n \n \n \n \n Category: Technical • 3 attachments\n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageExtraSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n \n \n \n \n \n \n Document\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-maia/toggle-example.json b/apps/v4/public/r/styles/base-maia/toggle-example.json index bac2594d0a..f643af46b2 100644 --- a/apps/v4/public/r/styles/base-maia/toggle-example.json +++ b/apps/v4/public/r/styles/base-maia/toggle-example.json @@ -9,7 +9,7 @@ "files": [ { "path": "registry/base-maia/examples/toggle-example.tsx", - "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport { Toggle } from \"@/registry/bases/base/ui/toggle\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleBasic() {\n return (\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction ToggleOutline() {\n return (\n \n
\n \n \n Italic\n \n \n \n Bold\n \n
\n
\n )\n}\n\nfunction ToggleSizes() {\n return (\n \n
\n \n Small\n \n \n Default\n \n \n Large\n \n
\n
\n )\n}\n\nfunction ToggleWithButtonText() {\n return (\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIcon() {\n return (\n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIconText() {\n return (\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleDisabled() {\n return (\n \n
\n \n Disabled\n \n \n Disabled\n \n
\n
\n )\n}\n\nfunction ToggleWithIcon() {\n return (\n \n
\n \n \n \n \n \n Bookmark\n \n
\n
\n )\n}\n", + "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport { Toggle } from \"@/registry/bases/base/ui/toggle\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleBasic() {\n return (\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction ToggleOutline() {\n return (\n \n
\n \n \n Italic\n \n \n \n Bold\n \n
\n
\n )\n}\n\nfunction ToggleSizes() {\n return (\n \n
\n \n Small\n \n \n Default\n \n \n Large\n \n
\n
\n )\n}\n\nfunction ToggleWithButtonText() {\n return (\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIcon() {\n return (\n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIconText() {\n return (\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleDisabled() {\n return (\n \n
\n \n Disabled\n \n \n Disabled\n \n
\n
\n )\n}\n\nfunction ToggleWithIcon() {\n return (\n \n
\n \n \n \n \n \n Bookmark\n \n
\n
\n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-maia/toggle-group-example.json b/apps/v4/public/r/styles/base-maia/toggle-group-example.json index 881f89f5cc..fa1c1129a6 100644 --- a/apps/v4/public/r/styles/base-maia/toggle-group-example.json +++ b/apps/v4/public/r/styles/base-maia/toggle-group-example.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/base-maia/examples/toggle-group-example.tsx", - "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/bases/base/ui/select\"\nimport {\n ToggleGroup,\n ToggleGroupItem,\n} from \"@/registry/bases/base/ui/toggle-group\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleGroupExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupBasic() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupOutline() {\n return (\n \n \n \n All\n \n \n Missed\n \n \n \n )\n}\n\nfunction ToggleGroupOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupSizes() {\n return (\n \n
\n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n\nfunction ToggleGroupWithIcons() {\n return (\n \n \n \n \n Star\n \n \n \n Heart\n \n \n \n Bookmark\n \n \n \n )\n}\n\nfunction ToggleGroupFilter() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupDateRange() {\n return (\n \n \n \n Today\n \n \n This Week\n \n \n This Month\n \n \n This Year\n \n \n \n )\n}\n\nfunction ToggleGroupSort() {\n return (\n \n \n \n \n Newest\n \n \n \n Oldest\n \n \n \n Popular\n \n \n \n )\n}\n\nfunction ToggleGroupWithInputAndSelect() {\n const items = [\n { label: \"All\", value: \"all\" },\n { label: \"Active\", value: \"active\" },\n { label: \"Archived\", value: \"archived\" },\n ]\n return (\n \n
\n \n \n \n \n Grid\n \n \n List\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupVertical() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutline() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalWithSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n", + "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/bases/base/ui/select\"\nimport {\n ToggleGroup,\n ToggleGroupItem,\n} from \"@/registry/bases/base/ui/toggle-group\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleGroupExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupBasic() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupOutline() {\n return (\n \n \n \n All\n \n \n Missed\n \n \n \n )\n}\n\nfunction ToggleGroupOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupSizes() {\n return (\n \n
\n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n\nfunction ToggleGroupWithIcons() {\n return (\n \n \n \n \n Star\n \n \n \n Heart\n \n \n \n Bookmark\n \n \n \n )\n}\n\nfunction ToggleGroupFilter() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupDateRange() {\n return (\n \n \n \n Today\n \n \n This Week\n \n \n This Month\n \n \n This Year\n \n \n \n )\n}\n\nfunction ToggleGroupSort() {\n return (\n \n \n \n \n Newest\n \n \n \n Oldest\n \n \n \n Popular\n \n \n \n )\n}\n\nfunction ToggleGroupWithInputAndSelect() {\n const items = [\n { label: \"All\", value: \"all\" },\n { label: \"Active\", value: \"active\" },\n { label: \"Archived\", value: \"archived\" },\n ]\n return (\n \n
\n \n \n \n \n Grid\n \n \n List\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupVertical() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutline() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalWithSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-mira/calendar.json b/apps/v4/public/r/styles/base-mira/calendar.json index f9d741e299..fcffd2fabe 100644 --- a/apps/v4/public/r/styles/base-mira/calendar.json +++ b/apps/v4/public/r/styles/base-mira/calendar.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/base-mira/ui/calendar.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/base/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/base/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted elative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/base/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/base/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", "type": "registry:ui" } ], diff --git a/apps/v4/public/r/styles/base-mira/input-group-example.json b/apps/v4/public/r/styles/base-mira/input-group-example.json index 2bf3bc6971..dc9cf6c797 100644 --- a/apps/v4/public/r/styles/base-mira/input-group-example.json +++ b/apps/v4/public/r/styles/base-mira/input-group-example.json @@ -20,7 +20,7 @@ "files": [ { "path": "registry/base-mira/examples/input-group-example.tsx", - "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { toast } from \"sonner\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n ButtonGroup,\n ButtonGroupText,\n} from \"@/registry/bases/base/ui/button-group\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/base/ui/card\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/bases/base/ui/dropdown-menu\"\nimport {\n Field,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n} from \"@/registry/bases/base/ui/field\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n} from \"@/registry/bases/base/ui/input-group\"\nimport { Kbd, KbdGroup } from \"@/registry/bases/base/ui/kbd\"\nimport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n} from \"@/registry/bases/base/ui/popover\"\nimport { Spinner } from \"@/registry/bases/base/ui/spinner\"\nimport { Textarea } from \"@/registry/bases/base/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/base/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function InputGroupExample() {\n const [country, setCountry] = useState(\"+1\")\n\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupBasic() {\n return (\n \n \n \n \n Default (No Input Group)\n \n \n \n \n Input Group\n \n \n \n \n \n Disabled\n \n \n \n \n \n Invalid\n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithAddons() {\n return (\n \n \n \n \n Addon (inline-start)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-end)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-start and inline-end)\n \n \n \n \n \n \n \n \n \n \n \n \n Addon (block-start)\n \n \n \n First Name\n \n \n \n \n \n Addon (block-end)\n \n \n \n 20/240 characters\n \n \n \n \n \n Multiple Icons\n \n \n \n \n toast(\"Copied to clipboard\")}\n >\n \n \n \n \n \n \n \n \n \n Description\n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Label\n \n \n Label\n \n \n \n \n \n \n (optional)\n \n \n \n \n \n )\n}\n\nfunction InputGroupWithButtons() {\n return (\n \n \n \n Button\n \n \n \n Default\n \n \n \n \n \n Outline\n \n \n \n \n \n Secondary\n \n \n \n \n \n Button\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithTooltip({\n country,\n setCountry,\n}: {\n country: string\n setCountry: (value: string) => void\n}) {\n return (\n \n \n \n Tooltip\n \n \n \n \n \n }\n >\n \n \n This is content in a tooltip.\n \n \n \n \n This is a description of the input group.\n \n \n \n Dropdown\n \n \n \n \n \n }\n >\n {country}{\" \"}\n \n \n \n setCountry(\"+1\")}>\n +1\n \n setCountry(\"+44\")}>\n +44\n \n setCountry(\"+46\")}>\n +46\n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Popover\n \n \n } nativeButton={false}>\n \n \n \n \n \n \n Your connection is not secure.\n \n You should not enter any sensitive information on this site.\n \n \n \n \n \n https://\n \n \n \n toast(\"Added to favorites\")}\n >\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Button Group\n \n https://\n \n \n \n \n \n \n .com\n \n \n This is a description of the input group.\n \n \n \n \n )\n}\n\nfunction InputGroupWithKbd() {\n return (\n \n \n \n Input Group with Kbd\n \n \n \n ⌘K\n \n \n \n \n \n ⌘K\n \n \n \n \n Ask AI\n \n Tab\n \n \n \n \n \n \n \n \n \n Ctrl\n C\n \n \n \n \n \n Username\n \n \n \n
\n \n
\n
\n
\n \n This username is available.\n \n
\n \n \n \n \n \n 12 results\n \n \n \n \n \n \n Disabled\n \n \n \n First Name\n \n \n \n \n \n \n \n \n Last Name\n \n \n \n \n \n \n \n \n \n \n Loading ("data-disabled="true")\n \n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n
\n
\n )\n}\n\nfunction InputGroupInCard() {\n return (\n \n \n \n Card with Input Group\n This is a card with an input group.\n \n \n \n \n Email Address\n \n \n \n \n \n \n \n \n Website URL\n \n \n https://\n \n \n \n \n \n \n \n \n \n Feedback & Comments\n \n \n \n \n 0/500 characters\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupTextareaExamples() {\n return (\n \n \n \n \n Default Textarea (No Input Group)\n \n \n \n \n \n Input Group\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Invalid\n \n \n \n \n This is a description of the input group.\n \n \n \n Disabled\n \n \n \n \n This is a description of the input group.\n \n \n \n Addon (block-start)\n \n \n \n Ask, Search or Chat...\n \n \n \n \n This is a description of the input group.\n \n \n \n \n Addon (block-end)\n \n \n \n \n 0/280 characters\n \n \n Send\n \n \n \n \n \n Addon (Buttons)\n \n \n \n \n Cancel\n \n \n Post Comment\n \n \n \n \n \n Code Editor\n \n \n \n \n \n script.js\n \n \n \n \n \n \n \n \n \n Line 1, Column 1\n JavaScript\n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { toast } from \"sonner\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n ButtonGroup,\n ButtonGroupText,\n} from \"@/registry/bases/base/ui/button-group\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/base/ui/card\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/bases/base/ui/dropdown-menu\"\nimport {\n Field,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n} from \"@/registry/bases/base/ui/field\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n} from \"@/registry/bases/base/ui/input-group\"\nimport { Kbd, KbdGroup } from \"@/registry/bases/base/ui/kbd\"\nimport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n} from \"@/registry/bases/base/ui/popover\"\nimport { Spinner } from \"@/registry/bases/base/ui/spinner\"\nimport { Textarea } from \"@/registry/bases/base/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/base/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function InputGroupExample() {\n const [country, setCountry] = useState(\"+1\")\n\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupBasic() {\n return (\n \n \n \n \n Default (No Input Group)\n \n \n \n \n Input Group\n \n \n \n \n \n Disabled\n \n \n \n \n \n Invalid\n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithAddons() {\n return (\n \n \n \n \n Addon (inline-start)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-end)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-start and inline-end)\n \n \n \n \n \n \n \n \n \n \n \n \n Addon (block-start)\n \n \n \n First Name\n \n \n \n \n \n Addon (block-end)\n \n \n \n 20/240 characters\n \n \n \n \n \n Multiple Icons\n \n \n \n \n toast(\"Copied to clipboard\")}\n >\n \n \n \n \n \n \n \n \n \n Description\n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Label\n \n \n Label\n \n \n \n \n \n \n (optional)\n \n \n \n \n \n )\n}\n\nfunction InputGroupWithButtons() {\n return (\n \n \n \n Button\n \n \n \n Default\n \n \n \n \n \n Outline\n \n \n \n \n \n Secondary\n \n \n \n \n \n Button\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithTooltip({\n country,\n setCountry,\n}: {\n country: string\n setCountry: (value: string) => void\n}) {\n return (\n \n \n \n Tooltip\n \n \n \n \n \n }\n >\n \n \n This is content in a tooltip.\n \n \n \n \n This is a description of the input group.\n \n \n \n Dropdown\n \n \n \n \n \n }\n >\n {country}{\" \"}\n \n \n \n setCountry(\"+1\")}>\n +1\n \n setCountry(\"+44\")}>\n +44\n \n setCountry(\"+46\")}>\n +46\n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Popover\n \n \n } nativeButton={false}>\n \n \n \n \n \n \n Your connection is not secure.\n \n You should not enter any sensitive information on this site.\n \n \n \n \n \n https://\n \n \n \n toast(\"Added to favorites\")}\n >\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Button Group\n \n https://\n \n \n \n \n \n \n .com\n \n \n This is a description of the input group.\n \n \n \n \n )\n}\n\nfunction InputGroupWithKbd() {\n return (\n \n \n \n Input Group with Kbd\n \n \n \n ⌘K\n \n \n \n \n \n ⌘K\n \n \n \n \n Ask AI\n \n Tab\n \n \n \n \n \n \n \n \n \n Ctrl\n C\n \n \n \n \n \n Username\n \n \n \n
\n \n
\n
\n
\n \n This username is available.\n \n
\n \n \n \n \n \n 12 results\n \n \n \n \n \n \n Disabled\n \n \n \n First Name\n \n \n \n \n \n \n \n \n Last Name\n \n \n \n \n \n \n \n \n \n \n Loading ("data-disabled="true")\n \n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n
\n
\n )\n}\n\nfunction InputGroupInCard() {\n return (\n \n \n \n Card with Input Group\n This is a card with an input group.\n \n \n \n \n Email Address\n \n \n \n \n \n \n \n \n Website URL\n \n \n https://\n \n \n \n \n \n \n \n \n \n Feedback & Comments\n \n \n \n \n 0/500 characters\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupTextareaExamples() {\n return (\n \n \n \n \n Default Textarea (No Input Group)\n \n \n \n \n \n Input Group\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Invalid\n \n \n \n \n This is a description of the input group.\n \n \n \n Disabled\n \n \n \n \n This is a description of the input group.\n \n \n \n Addon (block-start)\n \n \n \n Ask, Search or Chat...\n \n \n \n \n This is a description of the input group.\n \n \n \n \n Addon (block-end)\n \n \n \n \n 0/280 characters\n \n \n Send\n \n \n \n \n \n Addon (Buttons)\n \n \n \n \n Cancel\n \n \n Post Comment\n \n \n \n \n \n Code Editor\n \n \n \n \n \n script.js\n \n \n \n \n \n \n \n \n \n Line 1, Column 1\n JavaScript\n \n \n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-mira/item-example.json b/apps/v4/public/r/styles/base-mira/item-example.json index 71aa2bbb95..b66cb8acd8 100644 --- a/apps/v4/public/r/styles/base-mira/item-example.json +++ b/apps/v4/public/r/styles/base-mira/item-example.json @@ -10,7 +10,7 @@ "files": [ { "path": "registry/base-mira/examples/item-example.tsx", - "content": "import Image from \"next/image\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/base/ui/item\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ItemExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in the group.\n \n \n \n \n Item 2\n Second item in the group.\n \n \n \n \n Item 3\n Third item in the group.\n \n \n \n \n )\n}\n\nfunction OutlineItemGroup() {\n return (\n \n \n \n \n \n \n \n Item 1\n First item with icon.\n \n \n \n \n \n \n \n Item 2\n Second item with icon.\n \n \n \n \n \n \n \n Item 3\n Third item with icon.\n \n \n \n \n )\n}\n\nfunction MutedItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in muted group.\n \n \n \n \n \n \n \n Item 2\n Second item in muted group.\n \n \n \n \n \n \n \n Item 3\n Third item in muted group.\n \n \n \n \n \n \n \n )\n}\n\nfunction ItemSeparatorExample() {\n return (\n \n \n \n \n \n \n \n Inbox\n View all incoming messages.\n \n \n \n \n \n \n \n \n Sent\n View all sent messages.\n \n \n \n \n \n \n \n \n Drafts\n View all draft messages.\n \n \n \n \n \n \n \n \n Archive\n View archived messages.\n \n \n \n \n )\n}\n\nfunction ItemHeaderExamples() {\n return (\n \n \n \n Design System\n \n \n Component Library\n \n A comprehensive collection of reusable UI components for building\n consistent interfaces.\n \n \n \n \n \n Marketing\n \n \n Campaign Analytics\n \n Track performance metrics and engagement rates across all marketing\n channels.\n \n \n \n \n \n Engineering\n \n \n API Documentation\n \n Complete reference guide for all available endpoints and\n authentication methods.\n \n \n \n \n )\n}\n\nfunction ItemFooterExamples() {\n return (\n \n \n \n Quarterly Report Q4 2024\n \n Financial overview including revenue, expenses, and growth metrics\n for the fourth quarter.\n \n \n \n \n Last updated 2 hours ago\n \n \n \n \n \n User Research Findings\n \n Insights from interviews and surveys conducted with 50+ users across\n different demographics.\n \n \n \n \n Created by Sarah Chen\n \n \n \n \n \n Product Roadmap\n \n Planned features and improvements scheduled for the next three\n months.\n \n \n \n 12 comments\n \n \n \n )\n}\n\nfunction ItemHeaderAndFooterExamples() {\n return (\n \n \n \n Team Project\n \n \n Website Redesign\n \n Complete overhaul of the company website with modern design\n principles and improved user experience.\n \n \n \n \n Updated 5 minutes ago\n \n \n \n \n \n Client Work\n \n \n Mobile App Development\n \n Building a cross-platform mobile application for iOS and Android\n with React Native.\n \n \n \n \n Status: In Progress\n \n \n \n \n \n Documentation\n \n \n API Integration Guide\n \n Step-by-step instructions for integrating third-party APIs with\n authentication and error handling.\n \n \n \n \n Category: Technical • 3 attachments\n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageExtraSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n \n \n \n \n \n \n Document\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n", + "content": "import Image from \"next/image\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/base/ui/item\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ItemExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in the group.\n \n \n \n \n Item 2\n Second item in the group.\n \n \n \n \n Item 3\n Third item in the group.\n \n \n \n \n )\n}\n\nfunction OutlineItemGroup() {\n return (\n \n \n \n \n \n \n \n Item 1\n First item with icon.\n \n \n \n \n \n \n \n Item 2\n Second item with icon.\n \n \n \n \n \n \n \n Item 3\n Third item with icon.\n \n \n \n \n )\n}\n\nfunction MutedItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in muted group.\n \n \n \n \n \n \n \n Item 2\n Second item in muted group.\n \n \n \n \n \n \n \n Item 3\n Third item in muted group.\n \n \n \n \n \n \n \n )\n}\n\nfunction ItemSeparatorExample() {\n return (\n \n \n \n \n \n \n \n Inbox\n View all incoming messages.\n \n \n \n \n \n \n \n \n Sent\n View all sent messages.\n \n \n \n \n \n \n \n \n Drafts\n View all draft messages.\n \n \n \n \n \n \n \n \n Archive\n View archived messages.\n \n \n \n \n )\n}\n\nfunction ItemHeaderExamples() {\n return (\n \n \n \n Design System\n \n \n Component Library\n \n A comprehensive collection of reusable UI components for building\n consistent interfaces.\n \n \n \n \n \n Marketing\n \n \n Campaign Analytics\n \n Track performance metrics and engagement rates across all marketing\n channels.\n \n \n \n \n \n Engineering\n \n \n API Documentation\n \n Complete reference guide for all available endpoints and\n authentication methods.\n \n \n \n \n )\n}\n\nfunction ItemFooterExamples() {\n return (\n \n \n \n Quarterly Report Q4 2024\n \n Financial overview including revenue, expenses, and growth metrics\n for the fourth quarter.\n \n \n \n \n Last updated 2 hours ago\n \n \n \n \n \n User Research Findings\n \n Insights from interviews and surveys conducted with 50+ users across\n different demographics.\n \n \n \n \n Created by Sarah Chen\n \n \n \n \n \n Product Roadmap\n \n Planned features and improvements scheduled for the next three\n months.\n \n \n \n 12 comments\n \n \n \n )\n}\n\nfunction ItemHeaderAndFooterExamples() {\n return (\n \n \n \n Team Project\n \n \n Website Redesign\n \n Complete overhaul of the company website with modern design\n principles and improved user experience.\n \n \n \n \n Updated 5 minutes ago\n \n \n \n \n \n Client Work\n \n \n Mobile App Development\n \n Building a cross-platform mobile application for iOS and Android\n with React Native.\n \n \n \n \n Status: In Progress\n \n \n \n \n \n Documentation\n \n \n API Integration Guide\n \n Step-by-step instructions for integrating third-party APIs with\n authentication and error handling.\n \n \n \n \n Category: Technical • 3 attachments\n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageExtraSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n \n \n \n \n \n \n Document\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-mira/toggle-example.json b/apps/v4/public/r/styles/base-mira/toggle-example.json index 92105cf68b..6e648b3d18 100644 --- a/apps/v4/public/r/styles/base-mira/toggle-example.json +++ b/apps/v4/public/r/styles/base-mira/toggle-example.json @@ -9,7 +9,7 @@ "files": [ { "path": "registry/base-mira/examples/toggle-example.tsx", - "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport { Toggle } from \"@/registry/bases/base/ui/toggle\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleBasic() {\n return (\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction ToggleOutline() {\n return (\n \n
\n \n \n Italic\n \n \n \n Bold\n \n
\n
\n )\n}\n\nfunction ToggleSizes() {\n return (\n \n
\n \n Small\n \n \n Default\n \n \n Large\n \n
\n
\n )\n}\n\nfunction ToggleWithButtonText() {\n return (\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIcon() {\n return (\n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIconText() {\n return (\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleDisabled() {\n return (\n \n
\n \n Disabled\n \n \n Disabled\n \n
\n
\n )\n}\n\nfunction ToggleWithIcon() {\n return (\n \n
\n \n \n \n \n \n Bookmark\n \n
\n
\n )\n}\n", + "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport { Toggle } from \"@/registry/bases/base/ui/toggle\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleBasic() {\n return (\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction ToggleOutline() {\n return (\n \n
\n \n \n Italic\n \n \n \n Bold\n \n
\n
\n )\n}\n\nfunction ToggleSizes() {\n return (\n \n
\n \n Small\n \n \n Default\n \n \n Large\n \n
\n
\n )\n}\n\nfunction ToggleWithButtonText() {\n return (\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIcon() {\n return (\n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIconText() {\n return (\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleDisabled() {\n return (\n \n
\n \n Disabled\n \n \n Disabled\n \n
\n
\n )\n}\n\nfunction ToggleWithIcon() {\n return (\n \n
\n \n \n \n \n \n Bookmark\n \n
\n
\n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-mira/toggle-group-example.json b/apps/v4/public/r/styles/base-mira/toggle-group-example.json index 795e595d6b..28d2cc5643 100644 --- a/apps/v4/public/r/styles/base-mira/toggle-group-example.json +++ b/apps/v4/public/r/styles/base-mira/toggle-group-example.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/base-mira/examples/toggle-group-example.tsx", - "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/bases/base/ui/select\"\nimport {\n ToggleGroup,\n ToggleGroupItem,\n} from \"@/registry/bases/base/ui/toggle-group\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleGroupExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupBasic() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupOutline() {\n return (\n \n \n \n All\n \n \n Missed\n \n \n \n )\n}\n\nfunction ToggleGroupOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupSizes() {\n return (\n \n
\n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n\nfunction ToggleGroupWithIcons() {\n return (\n \n \n \n \n Star\n \n \n \n Heart\n \n \n \n Bookmark\n \n \n \n )\n}\n\nfunction ToggleGroupFilter() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupDateRange() {\n return (\n \n \n \n Today\n \n \n This Week\n \n \n This Month\n \n \n This Year\n \n \n \n )\n}\n\nfunction ToggleGroupSort() {\n return (\n \n \n \n \n Newest\n \n \n \n Oldest\n \n \n \n Popular\n \n \n \n )\n}\n\nfunction ToggleGroupWithInputAndSelect() {\n const items = [\n { label: \"All\", value: \"all\" },\n { label: \"Active\", value: \"active\" },\n { label: \"Archived\", value: \"archived\" },\n ]\n return (\n \n
\n \n \n \n \n Grid\n \n \n List\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupVertical() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutline() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalWithSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n", + "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/bases/base/ui/select\"\nimport {\n ToggleGroup,\n ToggleGroupItem,\n} from \"@/registry/bases/base/ui/toggle-group\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleGroupExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupBasic() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupOutline() {\n return (\n \n \n \n All\n \n \n Missed\n \n \n \n )\n}\n\nfunction ToggleGroupOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupSizes() {\n return (\n \n
\n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n\nfunction ToggleGroupWithIcons() {\n return (\n \n \n \n \n Star\n \n \n \n Heart\n \n \n \n Bookmark\n \n \n \n )\n}\n\nfunction ToggleGroupFilter() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupDateRange() {\n return (\n \n \n \n Today\n \n \n This Week\n \n \n This Month\n \n \n This Year\n \n \n \n )\n}\n\nfunction ToggleGroupSort() {\n return (\n \n \n \n \n Newest\n \n \n \n Oldest\n \n \n \n Popular\n \n \n \n )\n}\n\nfunction ToggleGroupWithInputAndSelect() {\n const items = [\n { label: \"All\", value: \"all\" },\n { label: \"Active\", value: \"active\" },\n { label: \"Archived\", value: \"archived\" },\n ]\n return (\n \n
\n \n \n \n \n Grid\n \n \n List\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupVertical() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutline() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalWithSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-nova/calendar.json b/apps/v4/public/r/styles/base-nova/calendar.json index 71901bcf9d..486cb3769e 100644 --- a/apps/v4/public/r/styles/base-nova/calendar.json +++ b/apps/v4/public/r/styles/base-nova/calendar.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/base-nova/ui/calendar.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/base/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/base/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted elative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/base/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/base/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", "type": "registry:ui" } ], diff --git a/apps/v4/public/r/styles/base-nova/input-group-example.json b/apps/v4/public/r/styles/base-nova/input-group-example.json index abc0d06cb7..a14c12088d 100644 --- a/apps/v4/public/r/styles/base-nova/input-group-example.json +++ b/apps/v4/public/r/styles/base-nova/input-group-example.json @@ -20,7 +20,7 @@ "files": [ { "path": "registry/base-nova/examples/input-group-example.tsx", - "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { toast } from \"sonner\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n ButtonGroup,\n ButtonGroupText,\n} from \"@/registry/bases/base/ui/button-group\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/base/ui/card\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/bases/base/ui/dropdown-menu\"\nimport {\n Field,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n} from \"@/registry/bases/base/ui/field\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n} from \"@/registry/bases/base/ui/input-group\"\nimport { Kbd, KbdGroup } from \"@/registry/bases/base/ui/kbd\"\nimport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n} from \"@/registry/bases/base/ui/popover\"\nimport { Spinner } from \"@/registry/bases/base/ui/spinner\"\nimport { Textarea } from \"@/registry/bases/base/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/base/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function InputGroupExample() {\n const [country, setCountry] = useState(\"+1\")\n\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupBasic() {\n return (\n \n \n \n \n Default (No Input Group)\n \n \n \n \n Input Group\n \n \n \n \n \n Disabled\n \n \n \n \n \n Invalid\n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithAddons() {\n return (\n \n \n \n \n Addon (inline-start)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-end)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-start and inline-end)\n \n \n \n \n \n \n \n \n \n \n \n \n Addon (block-start)\n \n \n \n First Name\n \n \n \n \n \n Addon (block-end)\n \n \n \n 20/240 characters\n \n \n \n \n \n Multiple Icons\n \n \n \n \n toast(\"Copied to clipboard\")}\n >\n \n \n \n \n \n \n \n \n \n Description\n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Label\n \n \n Label\n \n \n \n \n \n \n (optional)\n \n \n \n \n \n )\n}\n\nfunction InputGroupWithButtons() {\n return (\n \n \n \n Button\n \n \n \n Default\n \n \n \n \n \n Outline\n \n \n \n \n \n Secondary\n \n \n \n \n \n Button\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithTooltip({\n country,\n setCountry,\n}: {\n country: string\n setCountry: (value: string) => void\n}) {\n return (\n \n \n \n Tooltip\n \n \n \n \n \n }\n >\n \n \n This is content in a tooltip.\n \n \n \n \n This is a description of the input group.\n \n \n \n Dropdown\n \n \n \n \n \n }\n >\n {country}{\" \"}\n \n \n \n setCountry(\"+1\")}>\n +1\n \n setCountry(\"+44\")}>\n +44\n \n setCountry(\"+46\")}>\n +46\n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Popover\n \n \n } nativeButton={false}>\n \n \n \n \n \n \n Your connection is not secure.\n \n You should not enter any sensitive information on this site.\n \n \n \n \n \n https://\n \n \n \n toast(\"Added to favorites\")}\n >\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Button Group\n \n https://\n \n \n \n \n \n \n .com\n \n \n This is a description of the input group.\n \n \n \n \n )\n}\n\nfunction InputGroupWithKbd() {\n return (\n \n \n \n Input Group with Kbd\n \n \n \n ⌘K\n \n \n \n \n \n ⌘K\n \n \n \n \n Ask AI\n \n Tab\n \n \n \n \n \n \n \n \n \n Ctrl\n C\n \n \n \n \n \n Username\n \n \n \n
\n \n
\n
\n
\n \n This username is available.\n \n
\n \n \n \n \n \n 12 results\n \n \n \n \n \n \n Disabled\n \n \n \n First Name\n \n \n \n \n \n \n \n \n Last Name\n \n \n \n \n \n \n \n \n \n \n Loading ("data-disabled="true")\n \n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n
\n
\n )\n}\n\nfunction InputGroupInCard() {\n return (\n \n \n \n Card with Input Group\n This is a card with an input group.\n \n \n \n \n Email Address\n \n \n \n \n \n \n \n \n Website URL\n \n \n https://\n \n \n \n \n \n \n \n \n \n Feedback & Comments\n \n \n \n \n 0/500 characters\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupTextareaExamples() {\n return (\n \n \n \n \n Default Textarea (No Input Group)\n \n \n \n \n \n Input Group\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Invalid\n \n \n \n \n This is a description of the input group.\n \n \n \n Disabled\n \n \n \n \n This is a description of the input group.\n \n \n \n Addon (block-start)\n \n \n \n Ask, Search or Chat...\n \n \n \n \n This is a description of the input group.\n \n \n \n \n Addon (block-end)\n \n \n \n \n 0/280 characters\n \n \n Send\n \n \n \n \n \n Addon (Buttons)\n \n \n \n \n Cancel\n \n \n Post Comment\n \n \n \n \n \n Code Editor\n \n \n \n \n \n script.js\n \n \n \n \n \n \n \n \n \n Line 1, Column 1\n JavaScript\n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { toast } from \"sonner\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n ButtonGroup,\n ButtonGroupText,\n} from \"@/registry/bases/base/ui/button-group\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/base/ui/card\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/bases/base/ui/dropdown-menu\"\nimport {\n Field,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n} from \"@/registry/bases/base/ui/field\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n} from \"@/registry/bases/base/ui/input-group\"\nimport { Kbd, KbdGroup } from \"@/registry/bases/base/ui/kbd\"\nimport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n} from \"@/registry/bases/base/ui/popover\"\nimport { Spinner } from \"@/registry/bases/base/ui/spinner\"\nimport { Textarea } from \"@/registry/bases/base/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/base/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function InputGroupExample() {\n const [country, setCountry] = useState(\"+1\")\n\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupBasic() {\n return (\n \n \n \n \n Default (No Input Group)\n \n \n \n \n Input Group\n \n \n \n \n \n Disabled\n \n \n \n \n \n Invalid\n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithAddons() {\n return (\n \n \n \n \n Addon (inline-start)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-end)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-start and inline-end)\n \n \n \n \n \n \n \n \n \n \n \n \n Addon (block-start)\n \n \n \n First Name\n \n \n \n \n \n Addon (block-end)\n \n \n \n 20/240 characters\n \n \n \n \n \n Multiple Icons\n \n \n \n \n toast(\"Copied to clipboard\")}\n >\n \n \n \n \n \n \n \n \n \n Description\n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Label\n \n \n Label\n \n \n \n \n \n \n (optional)\n \n \n \n \n \n )\n}\n\nfunction InputGroupWithButtons() {\n return (\n \n \n \n Button\n \n \n \n Default\n \n \n \n \n \n Outline\n \n \n \n \n \n Secondary\n \n \n \n \n \n Button\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithTooltip({\n country,\n setCountry,\n}: {\n country: string\n setCountry: (value: string) => void\n}) {\n return (\n \n \n \n Tooltip\n \n \n \n \n \n }\n >\n \n \n This is content in a tooltip.\n \n \n \n \n This is a description of the input group.\n \n \n \n Dropdown\n \n \n \n \n \n }\n >\n {country}{\" \"}\n \n \n \n setCountry(\"+1\")}>\n +1\n \n setCountry(\"+44\")}>\n +44\n \n setCountry(\"+46\")}>\n +46\n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Popover\n \n \n } nativeButton={false}>\n \n \n \n \n \n \n Your connection is not secure.\n \n You should not enter any sensitive information on this site.\n \n \n \n \n \n https://\n \n \n \n toast(\"Added to favorites\")}\n >\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Button Group\n \n https://\n \n \n \n \n \n \n .com\n \n \n This is a description of the input group.\n \n \n \n \n )\n}\n\nfunction InputGroupWithKbd() {\n return (\n \n \n \n Input Group with Kbd\n \n \n \n ⌘K\n \n \n \n \n \n ⌘K\n \n \n \n \n Ask AI\n \n Tab\n \n \n \n \n \n \n \n \n \n Ctrl\n C\n \n \n \n \n \n Username\n \n \n \n
\n \n
\n
\n
\n \n This username is available.\n \n
\n \n \n \n \n \n 12 results\n \n \n \n \n \n \n Disabled\n \n \n \n First Name\n \n \n \n \n \n \n \n \n Last Name\n \n \n \n \n \n \n \n \n \n \n Loading ("data-disabled="true")\n \n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n
\n
\n )\n}\n\nfunction InputGroupInCard() {\n return (\n \n \n \n Card with Input Group\n This is a card with an input group.\n \n \n \n \n Email Address\n \n \n \n \n \n \n \n \n Website URL\n \n \n https://\n \n \n \n \n \n \n \n \n \n Feedback & Comments\n \n \n \n \n 0/500 characters\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupTextareaExamples() {\n return (\n \n \n \n \n Default Textarea (No Input Group)\n \n \n \n \n \n Input Group\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Invalid\n \n \n \n \n This is a description of the input group.\n \n \n \n Disabled\n \n \n \n \n This is a description of the input group.\n \n \n \n Addon (block-start)\n \n \n \n Ask, Search or Chat...\n \n \n \n \n This is a description of the input group.\n \n \n \n \n Addon (block-end)\n \n \n \n \n 0/280 characters\n \n \n Send\n \n \n \n \n \n Addon (Buttons)\n \n \n \n \n Cancel\n \n \n Post Comment\n \n \n \n \n \n Code Editor\n \n \n \n \n \n script.js\n \n \n \n \n \n \n \n \n \n Line 1, Column 1\n JavaScript\n \n \n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-nova/item-example.json b/apps/v4/public/r/styles/base-nova/item-example.json index ba43576e82..4957d9fb41 100644 --- a/apps/v4/public/r/styles/base-nova/item-example.json +++ b/apps/v4/public/r/styles/base-nova/item-example.json @@ -10,7 +10,7 @@ "files": [ { "path": "registry/base-nova/examples/item-example.tsx", - "content": "import Image from \"next/image\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/base/ui/item\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ItemExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in the group.\n \n \n \n \n Item 2\n Second item in the group.\n \n \n \n \n Item 3\n Third item in the group.\n \n \n \n \n )\n}\n\nfunction OutlineItemGroup() {\n return (\n \n \n \n \n \n \n \n Item 1\n First item with icon.\n \n \n \n \n \n \n \n Item 2\n Second item with icon.\n \n \n \n \n \n \n \n Item 3\n Third item with icon.\n \n \n \n \n )\n}\n\nfunction MutedItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in muted group.\n \n \n \n \n \n \n \n Item 2\n Second item in muted group.\n \n \n \n \n \n \n \n Item 3\n Third item in muted group.\n \n \n \n \n \n \n \n )\n}\n\nfunction ItemSeparatorExample() {\n return (\n \n \n \n \n \n \n \n Inbox\n View all incoming messages.\n \n \n \n \n \n \n \n \n Sent\n View all sent messages.\n \n \n \n \n \n \n \n \n Drafts\n View all draft messages.\n \n \n \n \n \n \n \n \n Archive\n View archived messages.\n \n \n \n \n )\n}\n\nfunction ItemHeaderExamples() {\n return (\n \n \n \n Design System\n \n \n Component Library\n \n A comprehensive collection of reusable UI components for building\n consistent interfaces.\n \n \n \n \n \n Marketing\n \n \n Campaign Analytics\n \n Track performance metrics and engagement rates across all marketing\n channels.\n \n \n \n \n \n Engineering\n \n \n API Documentation\n \n Complete reference guide for all available endpoints and\n authentication methods.\n \n \n \n \n )\n}\n\nfunction ItemFooterExamples() {\n return (\n \n \n \n Quarterly Report Q4 2024\n \n Financial overview including revenue, expenses, and growth metrics\n for the fourth quarter.\n \n \n \n \n Last updated 2 hours ago\n \n \n \n \n \n User Research Findings\n \n Insights from interviews and surveys conducted with 50+ users across\n different demographics.\n \n \n \n \n Created by Sarah Chen\n \n \n \n \n \n Product Roadmap\n \n Planned features and improvements scheduled for the next three\n months.\n \n \n \n 12 comments\n \n \n \n )\n}\n\nfunction ItemHeaderAndFooterExamples() {\n return (\n \n \n \n Team Project\n \n \n Website Redesign\n \n Complete overhaul of the company website with modern design\n principles and improved user experience.\n \n \n \n \n Updated 5 minutes ago\n \n \n \n \n \n Client Work\n \n \n Mobile App Development\n \n Building a cross-platform mobile application for iOS and Android\n with React Native.\n \n \n \n \n Status: In Progress\n \n \n \n \n \n Documentation\n \n \n API Integration Guide\n \n Step-by-step instructions for integrating third-party APIs with\n authentication and error handling.\n \n \n \n \n Category: Technical • 3 attachments\n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageExtraSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n \n \n \n \n \n \n Document\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n", + "content": "import Image from \"next/image\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/base/ui/item\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ItemExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in the group.\n \n \n \n \n Item 2\n Second item in the group.\n \n \n \n \n Item 3\n Third item in the group.\n \n \n \n \n )\n}\n\nfunction OutlineItemGroup() {\n return (\n \n \n \n \n \n \n \n Item 1\n First item with icon.\n \n \n \n \n \n \n \n Item 2\n Second item with icon.\n \n \n \n \n \n \n \n Item 3\n Third item with icon.\n \n \n \n \n )\n}\n\nfunction MutedItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in muted group.\n \n \n \n \n \n \n \n Item 2\n Second item in muted group.\n \n \n \n \n \n \n \n Item 3\n Third item in muted group.\n \n \n \n \n \n \n \n )\n}\n\nfunction ItemSeparatorExample() {\n return (\n \n \n \n \n \n \n \n Inbox\n View all incoming messages.\n \n \n \n \n \n \n \n \n Sent\n View all sent messages.\n \n \n \n \n \n \n \n \n Drafts\n View all draft messages.\n \n \n \n \n \n \n \n \n Archive\n View archived messages.\n \n \n \n \n )\n}\n\nfunction ItemHeaderExamples() {\n return (\n \n \n \n Design System\n \n \n Component Library\n \n A comprehensive collection of reusable UI components for building\n consistent interfaces.\n \n \n \n \n \n Marketing\n \n \n Campaign Analytics\n \n Track performance metrics and engagement rates across all marketing\n channels.\n \n \n \n \n \n Engineering\n \n \n API Documentation\n \n Complete reference guide for all available endpoints and\n authentication methods.\n \n \n \n \n )\n}\n\nfunction ItemFooterExamples() {\n return (\n \n \n \n Quarterly Report Q4 2024\n \n Financial overview including revenue, expenses, and growth metrics\n for the fourth quarter.\n \n \n \n \n Last updated 2 hours ago\n \n \n \n \n \n User Research Findings\n \n Insights from interviews and surveys conducted with 50+ users across\n different demographics.\n \n \n \n \n Created by Sarah Chen\n \n \n \n \n \n Product Roadmap\n \n Planned features and improvements scheduled for the next three\n months.\n \n \n \n 12 comments\n \n \n \n )\n}\n\nfunction ItemHeaderAndFooterExamples() {\n return (\n \n \n \n Team Project\n \n \n Website Redesign\n \n Complete overhaul of the company website with modern design\n principles and improved user experience.\n \n \n \n \n Updated 5 minutes ago\n \n \n \n \n \n Client Work\n \n \n Mobile App Development\n \n Building a cross-platform mobile application for iOS and Android\n with React Native.\n \n \n \n \n Status: In Progress\n \n \n \n \n \n Documentation\n \n \n API Integration Guide\n \n Step-by-step instructions for integrating third-party APIs with\n authentication and error handling.\n \n \n \n \n Category: Technical • 3 attachments\n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageExtraSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n \n \n \n \n \n \n Document\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-nova/toggle-example.json b/apps/v4/public/r/styles/base-nova/toggle-example.json index 10ea0d6f6c..683ccb63c7 100644 --- a/apps/v4/public/r/styles/base-nova/toggle-example.json +++ b/apps/v4/public/r/styles/base-nova/toggle-example.json @@ -9,7 +9,7 @@ "files": [ { "path": "registry/base-nova/examples/toggle-example.tsx", - "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport { Toggle } from \"@/registry/bases/base/ui/toggle\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleBasic() {\n return (\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction ToggleOutline() {\n return (\n \n
\n \n \n Italic\n \n \n \n Bold\n \n
\n
\n )\n}\n\nfunction ToggleSizes() {\n return (\n \n
\n \n Small\n \n \n Default\n \n \n Large\n \n
\n
\n )\n}\n\nfunction ToggleWithButtonText() {\n return (\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIcon() {\n return (\n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIconText() {\n return (\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleDisabled() {\n return (\n \n
\n \n Disabled\n \n \n Disabled\n \n
\n
\n )\n}\n\nfunction ToggleWithIcon() {\n return (\n \n
\n \n \n \n \n \n Bookmark\n \n
\n
\n )\n}\n", + "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport { Toggle } from \"@/registry/bases/base/ui/toggle\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleBasic() {\n return (\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction ToggleOutline() {\n return (\n \n
\n \n \n Italic\n \n \n \n Bold\n \n
\n
\n )\n}\n\nfunction ToggleSizes() {\n return (\n \n
\n \n Small\n \n \n Default\n \n \n Large\n \n
\n
\n )\n}\n\nfunction ToggleWithButtonText() {\n return (\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIcon() {\n return (\n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIconText() {\n return (\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleDisabled() {\n return (\n \n
\n \n Disabled\n \n \n Disabled\n \n
\n
\n )\n}\n\nfunction ToggleWithIcon() {\n return (\n \n
\n \n \n \n \n \n Bookmark\n \n
\n
\n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-nova/toggle-group-example.json b/apps/v4/public/r/styles/base-nova/toggle-group-example.json index 5807c140ae..c638c81234 100644 --- a/apps/v4/public/r/styles/base-nova/toggle-group-example.json +++ b/apps/v4/public/r/styles/base-nova/toggle-group-example.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/base-nova/examples/toggle-group-example.tsx", - "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/bases/base/ui/select\"\nimport {\n ToggleGroup,\n ToggleGroupItem,\n} from \"@/registry/bases/base/ui/toggle-group\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleGroupExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupBasic() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupOutline() {\n return (\n \n \n \n All\n \n \n Missed\n \n \n \n )\n}\n\nfunction ToggleGroupOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupSizes() {\n return (\n \n
\n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n\nfunction ToggleGroupWithIcons() {\n return (\n \n \n \n \n Star\n \n \n \n Heart\n \n \n \n Bookmark\n \n \n \n )\n}\n\nfunction ToggleGroupFilter() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupDateRange() {\n return (\n \n \n \n Today\n \n \n This Week\n \n \n This Month\n \n \n This Year\n \n \n \n )\n}\n\nfunction ToggleGroupSort() {\n return (\n \n \n \n \n Newest\n \n \n \n Oldest\n \n \n \n Popular\n \n \n \n )\n}\n\nfunction ToggleGroupWithInputAndSelect() {\n const items = [\n { label: \"All\", value: \"all\" },\n { label: \"Active\", value: \"active\" },\n { label: \"Archived\", value: \"archived\" },\n ]\n return (\n \n
\n \n \n \n \n Grid\n \n \n List\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupVertical() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutline() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalWithSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n", + "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/bases/base/ui/select\"\nimport {\n ToggleGroup,\n ToggleGroupItem,\n} from \"@/registry/bases/base/ui/toggle-group\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleGroupExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupBasic() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupOutline() {\n return (\n \n \n \n All\n \n \n Missed\n \n \n \n )\n}\n\nfunction ToggleGroupOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupSizes() {\n return (\n \n
\n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n\nfunction ToggleGroupWithIcons() {\n return (\n \n \n \n \n Star\n \n \n \n Heart\n \n \n \n Bookmark\n \n \n \n )\n}\n\nfunction ToggleGroupFilter() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupDateRange() {\n return (\n \n \n \n Today\n \n \n This Week\n \n \n This Month\n \n \n This Year\n \n \n \n )\n}\n\nfunction ToggleGroupSort() {\n return (\n \n \n \n \n Newest\n \n \n \n Oldest\n \n \n \n Popular\n \n \n \n )\n}\n\nfunction ToggleGroupWithInputAndSelect() {\n const items = [\n { label: \"All\", value: \"all\" },\n { label: \"Active\", value: \"active\" },\n { label: \"Archived\", value: \"archived\" },\n ]\n return (\n \n
\n \n \n \n \n Grid\n \n \n List\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupVertical() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutline() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalWithSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-vega/calendar.json b/apps/v4/public/r/styles/base-vega/calendar.json index cc750f4095..6337ace126 100644 --- a/apps/v4/public/r/styles/base-vega/calendar.json +++ b/apps/v4/public/r/styles/base-vega/calendar.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/base-vega/ui/calendar.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/base/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/base/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted elative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/base/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/base/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", "type": "registry:ui" } ], diff --git a/apps/v4/public/r/styles/base-vega/input-group-example.json b/apps/v4/public/r/styles/base-vega/input-group-example.json index 9590f48c9e..bb1cb0933a 100644 --- a/apps/v4/public/r/styles/base-vega/input-group-example.json +++ b/apps/v4/public/r/styles/base-vega/input-group-example.json @@ -20,7 +20,7 @@ "files": [ { "path": "registry/base-vega/examples/input-group-example.tsx", - "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { toast } from \"sonner\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n ButtonGroup,\n ButtonGroupText,\n} from \"@/registry/bases/base/ui/button-group\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/base/ui/card\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/bases/base/ui/dropdown-menu\"\nimport {\n Field,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n} from \"@/registry/bases/base/ui/field\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n} from \"@/registry/bases/base/ui/input-group\"\nimport { Kbd, KbdGroup } from \"@/registry/bases/base/ui/kbd\"\nimport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n} from \"@/registry/bases/base/ui/popover\"\nimport { Spinner } from \"@/registry/bases/base/ui/spinner\"\nimport { Textarea } from \"@/registry/bases/base/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/base/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function InputGroupExample() {\n const [country, setCountry] = useState(\"+1\")\n\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupBasic() {\n return (\n \n \n \n \n Default (No Input Group)\n \n \n \n \n Input Group\n \n \n \n \n \n Disabled\n \n \n \n \n \n Invalid\n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithAddons() {\n return (\n \n \n \n \n Addon (inline-start)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-end)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-start and inline-end)\n \n \n \n \n \n \n \n \n \n \n \n \n Addon (block-start)\n \n \n \n First Name\n \n \n \n \n \n Addon (block-end)\n \n \n \n 20/240 characters\n \n \n \n \n \n Multiple Icons\n \n \n \n \n toast(\"Copied to clipboard\")}\n >\n \n \n \n \n \n \n \n \n \n Description\n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Label\n \n \n Label\n \n \n \n \n \n \n (optional)\n \n \n \n \n \n )\n}\n\nfunction InputGroupWithButtons() {\n return (\n \n \n \n Button\n \n \n \n Default\n \n \n \n \n \n Outline\n \n \n \n \n \n Secondary\n \n \n \n \n \n Button\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithTooltip({\n country,\n setCountry,\n}: {\n country: string\n setCountry: (value: string) => void\n}) {\n return (\n \n \n \n Tooltip\n \n \n \n \n \n }\n >\n \n \n This is content in a tooltip.\n \n \n \n \n This is a description of the input group.\n \n \n \n Dropdown\n \n \n \n \n \n }\n >\n {country}{\" \"}\n \n \n \n setCountry(\"+1\")}>\n +1\n \n setCountry(\"+44\")}>\n +44\n \n setCountry(\"+46\")}>\n +46\n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Popover\n \n \n } nativeButton={false}>\n \n \n \n \n \n \n Your connection is not secure.\n \n You should not enter any sensitive information on this site.\n \n \n \n \n \n https://\n \n \n \n toast(\"Added to favorites\")}\n >\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Button Group\n \n https://\n \n \n \n \n \n \n .com\n \n \n This is a description of the input group.\n \n \n \n \n )\n}\n\nfunction InputGroupWithKbd() {\n return (\n \n \n \n Input Group with Kbd\n \n \n \n ⌘K\n \n \n \n \n \n ⌘K\n \n \n \n \n Ask AI\n \n Tab\n \n \n \n \n \n \n \n \n \n Ctrl\n C\n \n \n \n \n \n Username\n \n \n \n
\n \n
\n
\n
\n \n This username is available.\n \n
\n \n \n \n \n \n 12 results\n \n \n \n \n \n \n Disabled\n \n \n \n First Name\n \n \n \n \n \n \n \n \n Last Name\n \n \n \n \n \n \n \n \n \n \n Loading ("data-disabled="true")\n \n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n
\n
\n )\n}\n\nfunction InputGroupInCard() {\n return (\n \n \n \n Card with Input Group\n This is a card with an input group.\n \n \n \n \n Email Address\n \n \n \n \n \n \n \n \n Website URL\n \n \n https://\n \n \n \n \n \n \n \n \n \n Feedback & Comments\n \n \n \n \n 0/500 characters\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupTextareaExamples() {\n return (\n \n \n \n \n Default Textarea (No Input Group)\n \n \n \n \n \n Input Group\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Invalid\n \n \n \n \n This is a description of the input group.\n \n \n \n Disabled\n \n \n \n \n This is a description of the input group.\n \n \n \n Addon (block-start)\n \n \n \n Ask, Search or Chat...\n \n \n \n \n This is a description of the input group.\n \n \n \n \n Addon (block-end)\n \n \n \n \n 0/280 characters\n \n \n Send\n \n \n \n \n \n Addon (Buttons)\n \n \n \n \n Cancel\n \n \n Post Comment\n \n \n \n \n \n Code Editor\n \n \n \n \n \n script.js\n \n \n \n \n \n \n \n \n \n Line 1, Column 1\n JavaScript\n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport { useState } from \"react\"\nimport { toast } from \"sonner\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n ButtonGroup,\n ButtonGroupText,\n} from \"@/registry/bases/base/ui/button-group\"\nimport {\n Card,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/base/ui/card\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuTrigger,\n} from \"@/registry/bases/base/ui/dropdown-menu\"\nimport {\n Field,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n} from \"@/registry/bases/base/ui/field\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupText,\n InputGroupTextarea,\n} from \"@/registry/bases/base/ui/input-group\"\nimport { Kbd, KbdGroup } from \"@/registry/bases/base/ui/kbd\"\nimport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n} from \"@/registry/bases/base/ui/popover\"\nimport { Spinner } from \"@/registry/bases/base/ui/spinner\"\nimport { Textarea } from \"@/registry/bases/base/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/base/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function InputGroupExample() {\n const [country, setCountry] = useState(\"+1\")\n\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupBasic() {\n return (\n \n \n \n \n Default (No Input Group)\n \n \n \n \n Input Group\n \n \n \n \n \n Disabled\n \n \n \n \n \n Invalid\n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithAddons() {\n return (\n \n \n \n \n Addon (inline-start)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-end)\n \n \n \n \n \n \n \n \n \n \n Addon (inline-start and inline-end)\n \n \n \n \n \n \n \n \n \n \n \n \n Addon (block-start)\n \n \n \n First Name\n \n \n \n \n \n Addon (block-end)\n \n \n \n 20/240 characters\n \n \n \n \n \n Multiple Icons\n \n \n \n \n toast(\"Copied to clipboard\")}\n >\n \n \n \n \n \n \n \n \n \n Description\n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Label\n \n \n Label\n \n \n \n \n \n \n (optional)\n \n \n \n \n \n )\n}\n\nfunction InputGroupWithButtons() {\n return (\n \n \n \n Button\n \n \n \n Default\n \n \n \n \n \n Outline\n \n \n \n \n \n Secondary\n \n \n \n \n \n Button\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupWithTooltip({\n country,\n setCountry,\n}: {\n country: string\n setCountry: (value: string) => void\n}) {\n return (\n \n \n \n Tooltip\n \n \n \n \n \n }\n >\n \n \n This is content in a tooltip.\n \n \n \n \n This is a description of the input group.\n \n \n \n Dropdown\n \n \n \n \n \n }\n >\n {country}{\" \"}\n \n \n \n setCountry(\"+1\")}>\n +1\n \n setCountry(\"+44\")}>\n +44\n \n setCountry(\"+46\")}>\n +46\n \n \n \n \n \n \n This is a description of the input group.\n \n \n \n Popover\n \n \n } nativeButton={false}>\n \n \n \n \n \n \n Your connection is not secure.\n \n You should not enter any sensitive information on this site.\n \n \n \n \n \n https://\n \n \n \n toast(\"Added to favorites\")}\n >\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Button Group\n \n https://\n \n \n \n \n \n \n .com\n \n \n This is a description of the input group.\n \n \n \n \n )\n}\n\nfunction InputGroupWithKbd() {\n return (\n \n \n \n Input Group with Kbd\n \n \n \n ⌘K\n \n \n \n \n \n ⌘K\n \n \n \n \n Ask AI\n \n Tab\n \n \n \n \n \n \n \n \n \n Ctrl\n C\n \n \n \n \n \n Username\n \n \n \n
\n \n
\n
\n
\n \n This username is available.\n \n
\n \n \n \n \n \n 12 results\n \n \n \n \n \n \n Disabled\n \n \n \n First Name\n \n \n \n \n \n \n \n \n Last Name\n \n \n \n \n \n \n \n \n \n \n Loading ("data-disabled="true")\n \n \n \n \n \n \n \n \n This is a description of the input group.\n \n \n
\n
\n )\n}\n\nfunction InputGroupInCard() {\n return (\n \n \n \n Card with Input Group\n This is a card with an input group.\n \n \n \n \n Email Address\n \n \n \n \n \n \n \n \n Website URL\n \n \n https://\n \n \n \n \n \n \n \n \n \n Feedback & Comments\n \n \n \n \n 0/500 characters\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction InputGroupTextareaExamples() {\n return (\n \n \n \n \n Default Textarea (No Input Group)\n \n \n \n \n \n Input Group\n \n \n \n \n \n This is a description of the input group.\n \n \n \n Invalid\n \n \n \n \n This is a description of the input group.\n \n \n \n Disabled\n \n \n \n \n This is a description of the input group.\n \n \n \n Addon (block-start)\n \n \n \n Ask, Search or Chat...\n \n \n \n \n This is a description of the input group.\n \n \n \n \n Addon (block-end)\n \n \n \n \n 0/280 characters\n \n \n Send\n \n \n \n \n \n Addon (Buttons)\n \n \n \n \n Cancel\n \n \n Post Comment\n \n \n \n \n \n Code Editor\n \n \n \n \n \n script.js\n \n \n \n \n \n \n \n \n \n Line 1, Column 1\n JavaScript\n \n \n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-vega/item-example.json b/apps/v4/public/r/styles/base-vega/item-example.json index de27523e55..b6bf1aa040 100644 --- a/apps/v4/public/r/styles/base-vega/item-example.json +++ b/apps/v4/public/r/styles/base-vega/item-example.json @@ -10,7 +10,7 @@ "files": [ { "path": "registry/base-vega/examples/item-example.tsx", - "content": "import Image from \"next/image\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/base/ui/item\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ItemExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in the group.\n \n \n \n \n Item 2\n Second item in the group.\n \n \n \n \n Item 3\n Third item in the group.\n \n \n \n \n )\n}\n\nfunction OutlineItemGroup() {\n return (\n \n \n \n \n \n \n \n Item 1\n First item with icon.\n \n \n \n \n \n \n \n Item 2\n Second item with icon.\n \n \n \n \n \n \n \n Item 3\n Third item with icon.\n \n \n \n \n )\n}\n\nfunction MutedItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in muted group.\n \n \n \n \n \n \n \n Item 2\n Second item in muted group.\n \n \n \n \n \n \n \n Item 3\n Third item in muted group.\n \n \n \n \n \n \n \n )\n}\n\nfunction ItemSeparatorExample() {\n return (\n \n \n \n \n \n \n \n Inbox\n View all incoming messages.\n \n \n \n \n \n \n \n \n Sent\n View all sent messages.\n \n \n \n \n \n \n \n \n Drafts\n View all draft messages.\n \n \n \n \n \n \n \n \n Archive\n View archived messages.\n \n \n \n \n )\n}\n\nfunction ItemHeaderExamples() {\n return (\n \n \n \n Design System\n \n \n Component Library\n \n A comprehensive collection of reusable UI components for building\n consistent interfaces.\n \n \n \n \n \n Marketing\n \n \n Campaign Analytics\n \n Track performance metrics and engagement rates across all marketing\n channels.\n \n \n \n \n \n Engineering\n \n \n API Documentation\n \n Complete reference guide for all available endpoints and\n authentication methods.\n \n \n \n \n )\n}\n\nfunction ItemFooterExamples() {\n return (\n \n \n \n Quarterly Report Q4 2024\n \n Financial overview including revenue, expenses, and growth metrics\n for the fourth quarter.\n \n \n \n \n Last updated 2 hours ago\n \n \n \n \n \n User Research Findings\n \n Insights from interviews and surveys conducted with 50+ users across\n different demographics.\n \n \n \n \n Created by Sarah Chen\n \n \n \n \n \n Product Roadmap\n \n Planned features and improvements scheduled for the next three\n months.\n \n \n \n 12 comments\n \n \n \n )\n}\n\nfunction ItemHeaderAndFooterExamples() {\n return (\n \n \n \n Team Project\n \n \n Website Redesign\n \n Complete overhaul of the company website with modern design\n principles and improved user experience.\n \n \n \n \n Updated 5 minutes ago\n \n \n \n \n \n Client Work\n \n \n Mobile App Development\n \n Building a cross-platform mobile application for iOS and Android\n with React Native.\n \n \n \n \n Status: In Progress\n \n \n \n \n \n Documentation\n \n \n API Integration Guide\n \n Step-by-step instructions for integrating third-party APIs with\n authentication and error handling.\n \n \n \n \n Category: Technical • 3 attachments\n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageExtraSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n \n \n \n \n \n \n Document\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n", + "content": "import Image from \"next/image\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemHeader,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/base/ui/item\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ItemExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItems() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsExtraSmall() {\n return (\n \n \n \n Title Only\n \n \n \n \n Title + Button\n \n \n \n \n \n \n \n Title + Description\n \n This is a description that provides additional context.\n \n \n \n \n \n Title + Description + Button\n \n This item includes a title, description, and action button.\n \n \n \n \n \n \n \n \n \n \n \n Media + Title\n \n \n \n \n \n \n \n Media + Title + Button\n \n \n \n \n \n \n \n \n \n \n Media + Title + Description\n \n This item includes media, title, and description.\n \n \n \n \n \n \n \n \n Media + Title + Description + Button\n \n Complete item with all components: media, title, description, and\n button.\n \n \n \n \n \n \n \n \n Multiple Actions\n \n Item with multiple action buttons in the actions area.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction MutedLinkItems() {\n return (\n \n \n }>\n \n Title Only (Link)\n \n \n }>\n \n Title + Description (Link)\n \n Clickable item with title and description.\n \n \n \n }>\n \n \n \n \n Media + Title (Link)\n \n \n }>\n \n \n \n \n Media + Title + Description (Link)\n \n Complete link item with media, title, and description.\n \n \n \n }>\n \n With Actions (Link)\n \n Link item that also has action buttons.\n \n \n \n \n \n \n \n \n )\n}\n\nfunction DefaultItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in the group.\n \n \n \n \n Item 2\n Second item in the group.\n \n \n \n \n Item 3\n Third item in the group.\n \n \n \n \n )\n}\n\nfunction OutlineItemGroup() {\n return (\n \n \n \n \n \n \n \n Item 1\n First item with icon.\n \n \n \n \n \n \n \n Item 2\n Second item with icon.\n \n \n \n \n \n \n \n Item 3\n Third item with icon.\n \n \n \n \n )\n}\n\nfunction MutedItemGroup() {\n return (\n \n \n \n \n Item 1\n First item in muted group.\n \n \n \n \n \n \n \n Item 2\n Second item in muted group.\n \n \n \n \n \n \n \n Item 3\n Third item in muted group.\n \n \n \n \n \n \n \n )\n}\n\nfunction ItemSeparatorExample() {\n return (\n \n \n \n \n \n \n \n Inbox\n View all incoming messages.\n \n \n \n \n \n \n \n \n Sent\n View all sent messages.\n \n \n \n \n \n \n \n \n Drafts\n View all draft messages.\n \n \n \n \n \n \n \n \n Archive\n View archived messages.\n \n \n \n \n )\n}\n\nfunction ItemHeaderExamples() {\n return (\n \n \n \n Design System\n \n \n Component Library\n \n A comprehensive collection of reusable UI components for building\n consistent interfaces.\n \n \n \n \n \n Marketing\n \n \n Campaign Analytics\n \n Track performance metrics and engagement rates across all marketing\n channels.\n \n \n \n \n \n Engineering\n \n \n API Documentation\n \n Complete reference guide for all available endpoints and\n authentication methods.\n \n \n \n \n )\n}\n\nfunction ItemFooterExamples() {\n return (\n \n \n \n Quarterly Report Q4 2024\n \n Financial overview including revenue, expenses, and growth metrics\n for the fourth quarter.\n \n \n \n \n Last updated 2 hours ago\n \n \n \n \n \n User Research Findings\n \n Insights from interviews and surveys conducted with 50+ users across\n different demographics.\n \n \n \n \n Created by Sarah Chen\n \n \n \n \n \n Product Roadmap\n \n Planned features and improvements scheduled for the next three\n months.\n \n \n \n 12 comments\n \n \n \n )\n}\n\nfunction ItemHeaderAndFooterExamples() {\n return (\n \n \n \n Team Project\n \n \n Website Redesign\n \n Complete overhaul of the company website with modern design\n principles and improved user experience.\n \n \n \n \n Updated 5 minutes ago\n \n \n \n \n \n Client Work\n \n \n Mobile App Development\n \n Building a cross-platform mobile application for iOS and Android\n with React Native.\n \n \n \n \n Status: In Progress\n \n \n \n \n \n Documentation\n \n \n API Integration Guide\n \n Step-by-step instructions for integrating third-party APIs with\n authentication and error handling.\n \n \n \n \n Category: Technical • 3 attachments\n \n \n \n \n )\n}\n\nfunction DefaultVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n\nfunction OutlineVariantItemsWithImageExtraSmall() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n \n \n \n \n \n \n Document\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n \n \n \n \n \n )\n}\n\nfunction MutedVariantItemsWithImage() {\n return (\n \n \n \n \n \n \n Project Dashboard\n \n Overview of project settings and configuration.\n \n \n \n \n \n \n \n \n Document\n A document with metadata displayed.\n \n \n \n \n \n \n \n \n \n \n File Attachment\n \n Complete file with image, title, description, and action button.\n \n \n \n \n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-vega/toggle-example.json b/apps/v4/public/r/styles/base-vega/toggle-example.json index a94fced9cc..852e8d29af 100644 --- a/apps/v4/public/r/styles/base-vega/toggle-example.json +++ b/apps/v4/public/r/styles/base-vega/toggle-example.json @@ -9,7 +9,7 @@ "files": [ { "path": "registry/base-vega/examples/toggle-example.tsx", - "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport { Toggle } from \"@/registry/bases/base/ui/toggle\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleBasic() {\n return (\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction ToggleOutline() {\n return (\n \n
\n \n \n Italic\n \n \n \n Bold\n \n
\n
\n )\n}\n\nfunction ToggleSizes() {\n return (\n \n
\n \n Small\n \n \n Default\n \n \n Large\n \n
\n
\n )\n}\n\nfunction ToggleWithButtonText() {\n return (\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIcon() {\n return (\n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIconText() {\n return (\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleDisabled() {\n return (\n \n
\n \n Disabled\n \n \n Disabled\n \n
\n
\n )\n}\n\nfunction ToggleWithIcon() {\n return (\n \n
\n \n \n \n \n \n Bookmark\n \n
\n
\n )\n}\n", + "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Button } from \"@/registry/bases/base/ui/button\"\nimport { Toggle } from \"@/registry/bases/base/ui/toggle\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleBasic() {\n return (\n \n
\n \n \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction ToggleOutline() {\n return (\n \n
\n \n \n Italic\n \n \n \n Bold\n \n
\n
\n )\n}\n\nfunction ToggleSizes() {\n return (\n \n
\n \n Small\n \n \n Default\n \n \n Large\n \n
\n
\n )\n}\n\nfunction ToggleWithButtonText() {\n return (\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIcon() {\n return (\n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ToggleWithButtonIconText() {\n return (\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n \n \n \n Toggle\n \n
\n
\n
\n )\n}\n\nfunction ToggleDisabled() {\n return (\n \n
\n \n Disabled\n \n \n Disabled\n \n
\n
\n )\n}\n\nfunction ToggleWithIcon() {\n return (\n \n
\n \n \n \n \n \n Bookmark\n \n
\n
\n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-vega/toggle-group-example.json b/apps/v4/public/r/styles/base-vega/toggle-group-example.json index 5c8e870233..8063eed0f2 100644 --- a/apps/v4/public/r/styles/base-vega/toggle-group-example.json +++ b/apps/v4/public/r/styles/base-vega/toggle-group-example.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/base-vega/examples/toggle-group-example.tsx", - "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/bases/base/ui/select\"\nimport {\n ToggleGroup,\n ToggleGroupItem,\n} from \"@/registry/bases/base/ui/toggle-group\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleGroupExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupBasic() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupOutline() {\n return (\n \n \n \n All\n \n \n Missed\n \n \n \n )\n}\n\nfunction ToggleGroupOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupSizes() {\n return (\n \n
\n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n\nfunction ToggleGroupWithIcons() {\n return (\n \n \n \n \n Star\n \n \n \n Heart\n \n \n \n Bookmark\n \n \n \n )\n}\n\nfunction ToggleGroupFilter() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupDateRange() {\n return (\n \n \n \n Today\n \n \n This Week\n \n \n This Month\n \n \n This Year\n \n \n \n )\n}\n\nfunction ToggleGroupSort() {\n return (\n \n \n \n \n Newest\n \n \n \n Oldest\n \n \n \n Popular\n \n \n \n )\n}\n\nfunction ToggleGroupWithInputAndSelect() {\n const items = [\n { label: \"All\", value: \"all\" },\n { label: \"Active\", value: \"active\" },\n { label: \"Archived\", value: \"archived\" },\n ]\n return (\n \n
\n \n \n \n \n Grid\n \n \n List\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupVertical() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutline() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalWithSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n", + "content": "import {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/base/components/example\"\nimport { Input } from \"@/registry/bases/base/ui/input\"\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/registry/bases/base/ui/select\"\nimport {\n ToggleGroup,\n ToggleGroupItem,\n} from \"@/registry/bases/base/ui/toggle-group\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function ToggleGroupExample() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupBasic() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupOutline() {\n return (\n \n \n \n All\n \n \n Missed\n \n \n \n )\n}\n\nfunction ToggleGroupOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupSizes() {\n return (\n \n
\n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n\nfunction ToggleGroupWithIcons() {\n return (\n \n \n \n \n Star\n \n \n \n Heart\n \n \n \n Bookmark\n \n \n \n )\n}\n\nfunction ToggleGroupFilter() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupDateRange() {\n return (\n \n \n \n Today\n \n \n This Week\n \n \n This Month\n \n \n This Year\n \n \n \n )\n}\n\nfunction ToggleGroupSort() {\n return (\n \n \n \n \n Newest\n \n \n \n Oldest\n \n \n \n Popular\n \n \n \n )\n}\n\nfunction ToggleGroupWithInputAndSelect() {\n const items = [\n { label: \"All\", value: \"all\" },\n { label: \"Active\", value: \"active\" },\n { label: \"Archived\", value: \"archived\" },\n ]\n return (\n \n
\n \n \n \n \n Grid\n \n \n List\n \n \n
\n
\n )\n}\n\nfunction ToggleGroupVertical() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutline() {\n return (\n \n \n \n All\n \n \n Active\n \n \n Completed\n \n \n Archived\n \n \n \n )\n}\n\nfunction ToggleGroupVerticalOutlineWithIcons() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction ToggleGroupVerticalWithSpacing() {\n return (\n \n \n \n Top\n \n \n Bottom\n \n \n Left\n \n \n Right\n \n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/radix-lyra/calendar.json b/apps/v4/public/r/styles/radix-lyra/calendar.json index 13d8c18cc4..323199d5c0 100644 --- a/apps/v4/public/r/styles/radix-lyra/calendar.json +++ b/apps/v4/public/r/styles/radix-lyra/calendar.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/radix-lyra/ui/calendar.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/radix/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/radix/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted elative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted-200 after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/radix/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/radix/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted-200 after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", "type": "registry:ui" } ], diff --git a/apps/v4/public/r/styles/radix-lyra/github.json b/apps/v4/public/r/styles/radix-lyra/github.json index 35ef71d44e..3bdc01d25c 100644 --- a/apps/v4/public/r/styles/radix-lyra/github.json +++ b/apps/v4/public/r/styles/radix-lyra/github.json @@ -30,7 +30,7 @@ "files": [ { "path": "registry/radix-lyra/blocks/github.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxItem,\n ComboboxList,\n ComboboxValue,\n useComboboxAnchor,\n} from \"@/registry/bases/base/ui/combobox\"\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/bases/radix/ui/avatar\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport { Checkbox } from \"@/registry/bases/radix/ui/checkbox\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/bases/radix/ui/command\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/bases/radix/ui/drawer\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from \"@/registry/bases/radix/ui/field\"\nimport { Input } from \"@/registry/bases/radix/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupTextarea,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport { Kbd } from \"@/registry/bases/radix/ui/kbd\"\nimport { NativeSelect } from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Separator } from \"@/registry/bases/radix/ui/separator\"\nimport { Spinner } from \"@/registry/bases/radix/ui/spinner\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/registry/bases/radix/ui/tabs\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/radix/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function GithubBlock() {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction CodespacesCard() {\n const [isCreatingCodespace, setIsCreatingCodespace] = React.useState(false)\n\n return (\n \n \n \n \n \n Codespaces\n Local\n \n \n \n \n Codespaces\n \n Your workspaces in the cloud\n \n \n \n \n \n \n \n \n Create a codespace on main\n \n \n \n \n \n \n \n \n \n \n Codespace repository configuration\n \n \n e.preventDefault()}\n className=\"w-56\"\n >\n \n \n New with options...\n \n \n \n Configure dev container\n \n \n \n Set up prebuilds\n \n \n \n \n Manage codespaces\n \n \n \n Share deep link\n \n \n \n What are codespaces?\n \n \n \n \n \n \n \n \n \n \n \n No codespaces\n \n You don't have any codespaces with this repository\n checked out\n \n \n \n {\n setIsCreatingCodespace(true)\n setTimeout(() => {\n setIsCreatingCodespace(false)\n }, 2000)\n }}\n disabled={isCreatingCodespace}\n >\n {isCreatingCodespace ? (\n \n ) : (\n \"\"\n )}\n Create Codespace\n \n \n Learn more about codespaces\n \n \n \n \n
\n Codespace usage for this repository is paid for by{\" \"}\n shadcn.\n
\n
\n \n \n \n \n \n Clone\n \n \n \n \n \n \n \n \n Which remote URL should I use?\n \n \n \n \n \n \n HTTPS\n SSH\n GitHub CLI\n \n
\n \n \n \n HTTPS URL\n \n \n \n \n \n \n \n \n \n \n Clone using the web URL.\n \n \n \n \n \n \n SSH URL\n \n \n \n \n \n \n \n \n \n \n Use a password-protected SSH key.\n \n \n \n \n \n \n CLI Command\n \n \n \n \n \n \n \n \n \n \n Work fast with our official CLI.{\" \"}\n Learn more\n \n \n \n
\n
\n \n
\n \n \n Open with GitHub Desktop\n \n \n \n Download ZIP\n \n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction RepositoryToolbar() {\n const [selectedBranch, setSelectedBranch] = React.useState(\"main\")\n return (\n \n
\n \n \n \n \n \n \n \n \n t\n \n \n \n \n \n \n \n \n \n Create new file\n \n \n \n Upload files\n \n \n \n \n \n \n \n \n \n \n New Agent Task\n \n e.preventDefault()}\n >\n \n New Agent Task\n \n \n \n \n \n \n \n \n \n \n \n \n Select a branch\n \n e.preventDefault()}\n >\n \n \n Select a Branch\n \n \n \n No branches found\n \n \n {[\n \"main\",\n \"develop\",\n \"feature/123\",\n \"feature/user-authentication\",\n \"feature/dashboard-redesign\",\n \"bugfix/login-error\",\n \"hotfix/security-patch\",\n \"release/v2.0.0\",\n \"feature/api-integration\",\n \"bugfix/memory-leak\",\n \"feature/dark-mode\",\n \"feature/responsive-design\",\n \"bugfix/typo-fix\",\n \"feature/search-functionality\",\n \"release/v1.9.0\",\n \"feature/notifications\",\n \"bugfix/cache-issue\",\n \"feature/payment-gateway\",\n \"hotfix/critical-bug\",\n \"feature/admin-panel\",\n \"bugfix/validation-error\",\n \"feature/analytics\",\n \"release/v2.1.0\",\n ].map((branch) => (\n setSelectedBranch(branch)}\n data-checked={selectedBranch === branch}\n >\n {branch}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Select Agent\n \n \n \n \n \n This repository has no custom agents\n \n \n Custom agents are reusable instructions and tools in\n your repository.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Start Task \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction Navbar() {\n return (\n \n
\n \n \n \n \n \n \n Menu\n \n \n \n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n shadcn\n \n \n shadcn@example.com\n \n \n \n \n \n \n \n \n Set status\n \n \n \n Single sign-on\n \n \n \n \n \n \n Profile\n \n \n \n Repositories\n \n \n \n Stars\n \n \n \n Gists\n \n \n \n Organizations\n \n \n \n Enterprises\n \n \n \n Sponsors\n \n \n \n \n \n \n Settings\n \n \n \n Copilot settings\n \n \n \n Feature preview\n \n \n \n Appearance\n \n \n \n Accessibility\n \n \n \n Upgrade\n \n \n \n \n \n Sign out\n \n \n \n
\n
\n )\n}\n\nconst usernames = [\n \"shadcn\",\n \"vercel\",\n \"nextjs\",\n \"tailwindlabs\",\n \"typescript-lang\",\n \"eslint\",\n \"prettier\",\n \"babel\",\n \"webpack\",\n \"rollup\",\n \"parcel\",\n \"vite\",\n \"react\",\n \"vue\",\n \"angular\",\n \"solid\",\n]\n\nfunction Contributors() {\n return (\n \n \n \n \n Contributors 312\n \n \n \n
\n {usernames.map((username) => (\n \n \n {username.charAt(0)}\n \n ))}\n
\n
\n \n \n + 810 contributors\n \n \n
\n
\n )\n}\n\nfunction Profile() {\n return (\n \n \n \n Profile\n Manage your profile information.\n \n \n
\n \n \n Name\n \n \n Your name may appear around GitHub where you contribute or are\n mentioned. You can remove it at any time.\n \n \n \n Public Email\n \n \n \n \n \n You can manage verified email addresses in your{\" \"}\n email settings.\n \n \n \n Bio\n \n \n You can @mention other users and organizations to\n link to them.\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nfunction ContributionsActivity() {\n return (\n \n \n \n Contributions & Activity\n \n Manage your contributions and activity visibility.\n \n \n \n
\n \n
\n \n Contributions & activity\n \n \n \n \n \n \n Make profile private and hide activity\n \n \n Enabling this will hide your contributions and activity\n from your GitHub profile and from social features like\n followers, stars, feeds, leaderboards and releases.\n \n \n \n \n \n \n \n Include private contributions on my profile\n \n \n Your contribution graph, achievements, and activity\n overview will show your private contributions without\n revealing any repository or organization information.{\" \"}\n Read more.\n \n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n )\n}\n\nconst users = [\n \"shadcn\",\n \"maxleiter\",\n \"evilrabbit\",\n \"pranathip\",\n \"jorgezreik\",\n \"shuding\",\n \"rauchg\",\n]\n\nfunction AssignIssue() {\n const anchor = useComboboxAnchor()\n\n return (\n \n \n \n Assign Issue\n \n Select users to assign to this issue.\n \n \n \n \n \n \n Add user\n \n \n \n \n \n \n \n {(values) => (\n \n {values.map((username: string) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n ))}\n 0 ? undefined : \"Select a item...\"\n }\n />\n \n )}\n \n \n \n No users found.\n \n {(username) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n )}\n \n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxItem,\n ComboboxList,\n ComboboxValue,\n useComboboxAnchor,\n} from \"@/registry/bases/base/ui/combobox\"\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/bases/radix/ui/avatar\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport { Checkbox } from \"@/registry/bases/radix/ui/checkbox\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/bases/radix/ui/command\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/bases/radix/ui/drawer\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from \"@/registry/bases/radix/ui/field\"\nimport { Input } from \"@/registry/bases/radix/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupTextarea,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport { Kbd } from \"@/registry/bases/radix/ui/kbd\"\nimport { NativeSelect } from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Separator } from \"@/registry/bases/radix/ui/separator\"\nimport { Spinner } from \"@/registry/bases/radix/ui/spinner\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/registry/bases/radix/ui/tabs\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/radix/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function GithubBlock() {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction CodespacesCard() {\n const [isCreatingCodespace, setIsCreatingCodespace] = React.useState(false)\n\n return (\n \n \n \n \n \n Codespaces\n Local\n \n \n \n \n Codespaces\n \n Your workspaces in the cloud\n \n \n \n \n \n \n \n \n Create a codespace on main\n \n \n \n \n \n \n \n \n \n \n Codespace repository configuration\n \n \n e.preventDefault()}\n className=\"w-56\"\n >\n \n \n New with options...\n \n \n \n Configure dev container\n \n \n \n Set up prebuilds\n \n \n \n \n Manage codespaces\n \n \n \n Share deep link\n \n \n \n What are codespaces?\n \n \n \n \n \n \n \n \n \n \n \n No codespaces\n \n You don't have any codespaces with this repository\n checked out\n \n \n \n {\n setIsCreatingCodespace(true)\n setTimeout(() => {\n setIsCreatingCodespace(false)\n }, 2000)\n }}\n disabled={isCreatingCodespace}\n >\n {isCreatingCodespace ? (\n \n ) : (\n \"\"\n )}\n Create Codespace\n \n \n Learn more about codespaces\n \n \n \n \n
\n Codespace usage for this repository is paid for by{\" \"}\n shadcn.\n
\n
\n \n \n \n \n \n Clone\n \n \n \n \n \n \n \n \n Which remote URL should I use?\n \n \n \n \n \n \n HTTPS\n SSH\n GitHub CLI\n \n
\n \n \n \n HTTPS URL\n \n \n \n \n \n \n \n \n \n \n Clone using the web URL.\n \n \n \n \n \n \n SSH URL\n \n \n \n \n \n \n \n \n \n \n Use a password-protected SSH key.\n \n \n \n \n \n \n CLI Command\n \n \n \n \n \n \n \n \n \n \n Work fast with our official CLI.{\" \"}\n Learn more\n \n \n \n
\n
\n \n
\n \n \n Open with GitHub Desktop\n \n \n \n Download ZIP\n \n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction RepositoryToolbar() {\n const [selectedBranch, setSelectedBranch] = React.useState(\"main\")\n return (\n \n
\n \n \n \n \n \n \n \n \n t\n \n \n \n \n \n \n \n \n \n Create new file\n \n \n \n Upload files\n \n \n \n \n \n \n \n \n \n \n New Agent Task\n \n e.preventDefault()}\n >\n \n New Agent Task\n \n \n \n \n \n \n \n \n \n \n \n \n Select a branch\n \n e.preventDefault()}\n >\n \n \n Select a Branch\n \n \n \n No branches found\n \n \n {[\n \"main\",\n \"develop\",\n \"feature/123\",\n \"feature/user-authentication\",\n \"feature/dashboard-redesign\",\n \"bugfix/login-error\",\n \"hotfix/security-patch\",\n \"release/v2.0.0\",\n \"feature/api-integration\",\n \"bugfix/memory-leak\",\n \"feature/dark-mode\",\n \"feature/responsive-design\",\n \"bugfix/typo-fix\",\n \"feature/search-functionality\",\n \"release/v1.9.0\",\n \"feature/notifications\",\n \"bugfix/cache-issue\",\n \"feature/payment-gateway\",\n \"hotfix/critical-bug\",\n \"feature/admin-panel\",\n \"bugfix/validation-error\",\n \"feature/analytics\",\n \"release/v2.1.0\",\n ].map((branch) => (\n setSelectedBranch(branch)}\n data-checked={selectedBranch === branch}\n >\n {branch}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Select Agent\n \n \n \n \n \n This repository has no custom agents\n \n \n Custom agents are reusable instructions and tools in\n your repository.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Start Task \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction Navbar() {\n return (\n \n
\n \n \n \n \n \n \n Menu\n \n \n \n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n shadcn\n \n \n shadcn@example.com\n \n \n \n \n \n \n \n \n Set status\n \n \n \n Single sign-on\n \n \n \n \n \n \n Profile\n \n \n \n Repositories\n \n \n \n Stars\n \n \n \n Gists\n \n \n \n Organizations\n \n \n \n Enterprises\n \n \n \n Sponsors\n \n \n \n \n \n \n Settings\n \n \n \n Copilot settings\n \n \n \n Feature preview\n \n \n \n Appearance\n \n \n \n Accessibility\n \n \n \n Upgrade\n \n \n \n \n \n Sign out\n \n \n \n
\n
\n )\n}\n\nconst usernames = [\n \"shadcn\",\n \"vercel\",\n \"nextjs\",\n \"tailwindlabs\",\n \"typescript-lang\",\n \"eslint\",\n \"prettier\",\n \"babel\",\n \"webpack\",\n \"rollup\",\n \"parcel\",\n \"vite\",\n \"react\",\n \"vue\",\n \"angular\",\n \"solid\",\n]\n\nfunction Contributors() {\n return (\n \n \n \n \n Contributors 312\n \n \n \n
\n {usernames.map((username) => (\n \n \n {username.charAt(0)}\n \n ))}\n
\n
\n \n \n + 810 contributors\n \n \n
\n
\n )\n}\n\nfunction Profile() {\n return (\n \n \n \n Profile\n Manage your profile information.\n \n \n
\n \n \n Name\n \n \n Your name may appear around GitHub where you contribute or are\n mentioned. You can remove it at any time.\n \n \n \n Public Email\n \n \n \n \n \n You can manage verified email addresses in your{\" \"}\n email settings.\n \n \n \n Bio\n \n \n You can @mention other users and organizations to\n link to them.\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nfunction ContributionsActivity() {\n return (\n \n \n \n Contributions & Activity\n \n Manage your contributions and activity visibility.\n \n \n \n
\n \n
\n \n Contributions & activity\n \n \n \n \n \n \n Make profile private and hide activity\n \n \n Enabling this will hide your contributions and activity\n from your GitHub profile and from social features like\n followers, stars, feeds, leaderboards and releases.\n \n \n \n \n \n \n \n Include private contributions on my profile\n \n \n Your contribution graph, achievements, and activity\n overview will show your private contributions without\n revealing any repository or organization information.{\" \"}\n Read more.\n \n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n )\n}\n\nconst users = [\n \"shadcn\",\n \"maxleiter\",\n \"evilrabbit\",\n \"pranathip\",\n \"jorgezreik\",\n \"shuding\",\n \"rauchg\",\n]\n\nfunction AssignIssue() {\n const anchor = useComboboxAnchor()\n\n return (\n \n \n \n Assign Issue\n \n Select users to assign to this issue.\n \n \n \n \n \n \n Add user\n \n \n \n \n \n \n \n {(values) => (\n \n {values.map((username: string) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n ))}\n 0 ? undefined : \"Select a item...\"\n }\n />\n \n )}\n \n \n \n No users found.\n \n {(username) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n )}\n \n \n \n \n \n \n )\n}\n", "type": "registry:block" } ], diff --git a/apps/v4/public/r/styles/radix-lyra/vercel.json b/apps/v4/public/r/styles/radix-lyra/vercel.json index 722794dcbd..609a354707 100644 --- a/apps/v4/public/r/styles/radix-lyra/vercel.json +++ b/apps/v4/public/r/styles/radix-lyra/vercel.json @@ -23,7 +23,7 @@ "files": [ { "path": "registry/radix-lyra/blocks/vercel.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { type DateRange } from \"react-day-picker\"\nimport { Area, AreaChart } from \"recharts\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport { Alert, AlertDescription } from \"@/registry/bases/radix/ui/alert\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport { Calendar } from \"@/registry/bases/radix/ui/calendar\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n type ChartConfig,\n} from \"@/registry/bases/radix/ui/chart\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/registry/bases/radix/ui/dialog\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport { Field, FieldGroup, FieldLabel } from \"@/registry/bases/radix/ui/field\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport {\n NativeSelect,\n NativeSelectOption,\n} from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function VercelBlock() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst items = [\n {\n name: \"Edge Requests\",\n value: \"$1.83K\",\n percentage: 67.34,\n },\n {\n name: \"Fast Data Transfer\",\n percentage: 52.18,\n value: \"$952.51\",\n },\n {\n name: \"Monitoring data points\",\n percentage: 89.42,\n value: \"$901.20\",\n },\n {\n name: \"Web Analytics Events\",\n percentage: 45.67,\n value: \"$603.71\",\n },\n {\n name: \"Edge Request CPU Duration\",\n percentage: 23.91,\n value: \"$4.65\",\n },\n {\n name: \"Fast Origin Transfer\",\n percentage: 38.75,\n value: \"$3.85\",\n },\n {\n name: \"ISR Reads\",\n percentage: 71.24,\n value: \"$2.86\",\n },\n {\n name: \"Function Invocations\",\n percentage: 15.83,\n value: \"$0.60\",\n },\n {\n name: \"ISR Writes\",\n percentage: 26.23,\n value: \"524.52K / 2M\",\n },\n {\n name: \"Function Duration\",\n percentage: 5.11,\n value: \"5.11 GB Hrs / 1K GB Hrs\",\n },\n]\n\nfunction UsageCard() {\n return (\n \n \n \n \n 5 days remaining in cycle\n \n \n \n \n {items.map((item) => (\n \n \n \n \n \n \n {item.name}\n \n \n \n {item.value}\n \n \n \n \n ))}\n \n \n \n \n )\n}\n\nfunction AnomalyAlert() {\n return (\n \n \n \n \n \n Get alerted for anomalies\n \n Automatically monitor your projects for anomalies and get\n notified.\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst environments = [\n \"All Environments\",\n \"Production\",\n \"Preview\",\n \"Development\",\n \"Staging\",\n \"Test\",\n \"Other\",\n]\n\nconst statuses = [\n { name: \"Ready\", color: \"oklch(0.72 0.19 150)\" },\n { name: \"Error\", color: \"oklch(0.64 0.21 25)\" },\n { name: \"Building\", color: \"oklch(0.77 0.16 70)\" },\n { name: \"Queued\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Provisioning\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Canceled\", color: \"oklch(0.72 0.00 0)\" },\n]\n\nfunction DeploymentFilter() {\n const [selectedEnvironment, setSelectedEnvironment] = React.useState(\n environments[0]\n )\n const [selectedStatuses, setSelectedStatuses] = React.useState>(\n new Set(statuses.slice(0, 5).map((s) => s.name))\n )\n const [dateRange, setDateRange] = React.useState()\n\n const toggleStatus = (statusName: string) => {\n setSelectedStatuses((prev) => {\n const next = new Set(prev)\n if (next.has(statusName)) {\n next.delete(statusName)\n } else {\n next.add(statusName)\n }\n return next\n })\n }\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {environments.map((environment) => (\n setSelectedEnvironment(environment)}\n data-active={selectedEnvironment === environment}\n >\n {environment}\n \n \n ))}\n \n \n \n \n \n \n \n {statuses.map((status) => {\n const isSelected = selectedStatuses.has(status.name)\n return (\n toggleStatus(status.name)}\n data-active={isSelected}\n style={\n {\n \"--color\": status.color,\n } as React.CSSProperties\n }\n >\n
\n
\n {status.name}\n
\n \n \n )\n })}\n \n \n
\n \n )\n}\n\nconst billingItems = [\n {\n month: \"November 2025\",\n invoiceDate: new Date(2025, 10, 5),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"October 2025\",\n invoiceDate: new Date(2025, 9, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"September 2025\",\n invoiceDate: new Date(2025, 8, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n]\n\nfunction BillingList() {\n return (\n \n \n {billingItems.map((item, index) => (\n \n \n \n \n {item.month}\n \n {item.status}\n \n \n \n Infrastructure usage & Vercel platform\n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n \n \n \n \n View invoice\n Download PDF\n \n Contact support\n \n \n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n {index !== billingItems.length - 1 && (\n \n )}\n \n ))}\n \n \n )\n}\n\nfunction CircularGauge({ percentage }: { percentage: number }) {\n const normalizedPercentage = Math.min(Math.max(percentage, 0), 100)\n const circumference = 2 * Math.PI * 42.5\n const strokePercent = (normalizedPercentage / 100) * circumference\n\n return (\n \n \n \n \n )\n}\n\nconst agentFeatures = [\n {\n id: \"code-reviews\",\n content: (\n <>\n Code reviews with full codebase context to catch{\" \"}\n hard-to-find bugs. bugs.\n \n ),\n },\n {\n id: \"code-suggestions\",\n content: (\n <>\n Code suggestions validated in sandboxes before you\n merge.\n \n ),\n },\n {\n id: \"root-cause\",\n content: (\n <>\n Root-cause analysis for production issues with\n deployment context.{\" \"}\n \n Requires Observability Plus\n \n \n ),\n },\n]\n\nfunction ActivateAgentDialog() {\n return (\n \n \n \n \n \n \n \n Ship faster & safer with Vercel Agent\n \n Your use is subject to Vercel's{\" \"}\n Public Beta Agreement and{\" \"}\n AI Product Terms.\n \n \n
\n \n {agentFeatures.map((feature) => (\n \n \n \n \n \n \n {feature.content}\n \n \n \n ))}\n \n \n \n \n Pro teams get $100 in Vercel Agent trial credit for 2 weeks.\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ObservabilityCard() {\n return (\n \n \n
\n \n \n Observability Plus is replacing Monitoring\n \n Switch to the improved way to explore your data, with natural\n language. Monitoring will no longer be available on the Pro plan in\n November, 2025\n \n \n \n \n \n Warning\n \n \n \n \n )\n}\n\nfunction FeedbackForm() {\n return (\n \n \n \n
\n \n \n Topic\n \n \n Select a topic\n \n AI\n \n Accounts and Access Controls\n \n \n Billing\n \n \n CDN (Firewall, Caching)\n \n \n CI/CD (Builds, Deployments, Environment Variables)\n \n \n Dashboard Interface (Navigation, UI Issues)\n \n \n Domains\n \n \n Frameworks\n \n \n Marketplace and Integrations\n \n \n Observability (Observability, Logs, Monitoring)\n \n \n Storage\n \n \n \n \n Feedback\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nconst chartData = [\n { month: \"January\", visitors: 186 },\n { month: \"February\", visitors: 305 },\n { month: \"March\", visitors: 237 },\n { month: \"April\", visitors: 73 },\n { month: \"May\", visitors: 209 },\n { month: \"June\", visitors: 214 },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n color: \"var(--chart-1)\",\n },\n} satisfies ChartConfig\n\nfunction AnalyticsCard() {\n return (\n \n \n \n Analytics\n \n 418.2K Visitors +10%\n \n \n \n \n \n \n \n }\n defaultIndex={2}\n />\n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { type DateRange } from \"react-day-picker\"\nimport { Area, AreaChart } from \"recharts\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport { Alert, AlertDescription } from \"@/registry/bases/radix/ui/alert\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport { Calendar } from \"@/registry/bases/radix/ui/calendar\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n type ChartConfig,\n} from \"@/registry/bases/radix/ui/chart\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/registry/bases/radix/ui/dialog\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport { Field, FieldGroup, FieldLabel } from \"@/registry/bases/radix/ui/field\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport {\n NativeSelect,\n NativeSelectOption,\n} from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function VercelBlock() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst items = [\n {\n name: \"Edge Requests\",\n value: \"$1.83K\",\n percentage: 67.34,\n },\n {\n name: \"Fast Data Transfer\",\n percentage: 52.18,\n value: \"$952.51\",\n },\n {\n name: \"Monitoring data points\",\n percentage: 89.42,\n value: \"$901.20\",\n },\n {\n name: \"Web Analytics Events\",\n percentage: 45.67,\n value: \"$603.71\",\n },\n {\n name: \"Edge Request CPU Duration\",\n percentage: 23.91,\n value: \"$4.65\",\n },\n {\n name: \"Fast Origin Transfer\",\n percentage: 38.75,\n value: \"$3.85\",\n },\n {\n name: \"ISR Reads\",\n percentage: 71.24,\n value: \"$2.86\",\n },\n {\n name: \"Function Invocations\",\n percentage: 15.83,\n value: \"$0.60\",\n },\n {\n name: \"ISR Writes\",\n percentage: 26.23,\n value: \"524.52K / 2M\",\n },\n {\n name: \"Function Duration\",\n percentage: 5.11,\n value: \"5.11 GB Hrs / 1K GB Hrs\",\n },\n]\n\nfunction UsageCard() {\n return (\n \n \n \n \n 5 days remaining in cycle\n \n \n \n \n {items.map((item) => (\n \n \n \n \n \n \n {item.name}\n \n \n \n {item.value}\n \n \n \n \n ))}\n \n \n \n \n )\n}\n\nfunction AnomalyAlert() {\n return (\n \n \n \n \n \n Get alerted for anomalies\n \n Automatically monitor your projects for anomalies and get\n notified.\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst environments = [\n \"All Environments\",\n \"Production\",\n \"Preview\",\n \"Development\",\n \"Staging\",\n \"Test\",\n \"Other\",\n]\n\nconst statuses = [\n { name: \"Ready\", color: \"oklch(0.72 0.19 150)\" },\n { name: \"Error\", color: \"oklch(0.64 0.21 25)\" },\n { name: \"Building\", color: \"oklch(0.77 0.16 70)\" },\n { name: \"Queued\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Provisioning\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Canceled\", color: \"oklch(0.72 0.00 0)\" },\n]\n\nfunction DeploymentFilter() {\n const [selectedEnvironment, setSelectedEnvironment] = React.useState(\n environments[0]\n )\n const [selectedStatuses, setSelectedStatuses] = React.useState>(\n new Set(statuses.slice(0, 5).map((s) => s.name))\n )\n const [dateRange, setDateRange] = React.useState()\n\n const toggleStatus = (statusName: string) => {\n setSelectedStatuses((prev) => {\n const next = new Set(prev)\n if (next.has(statusName)) {\n next.delete(statusName)\n } else {\n next.add(statusName)\n }\n return next\n })\n }\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {environments.map((environment) => (\n setSelectedEnvironment(environment)}\n data-active={selectedEnvironment === environment}\n >\n {environment}\n \n \n ))}\n \n \n \n \n \n \n \n {statuses.map((status) => {\n const isSelected = selectedStatuses.has(status.name)\n return (\n toggleStatus(status.name)}\n data-active={isSelected}\n style={\n {\n \"--color\": status.color,\n } as React.CSSProperties\n }\n >\n
\n
\n {status.name}\n
\n \n \n )\n })}\n \n \n
\n \n )\n}\n\nconst billingItems = [\n {\n month: \"November 2025\",\n invoiceDate: new Date(2025, 10, 5),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"October 2025\",\n invoiceDate: new Date(2025, 9, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"September 2025\",\n invoiceDate: new Date(2025, 8, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n]\n\nfunction BillingList() {\n return (\n \n \n {billingItems.map((item, index) => (\n \n \n \n \n {item.month}\n \n {item.status}\n \n \n \n Infrastructure usage & Vercel platform\n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n \n \n \n \n View invoice\n Download PDF\n \n Contact support\n \n \n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n {index !== billingItems.length - 1 && (\n \n )}\n \n ))}\n \n \n )\n}\n\nfunction CircularGauge({ percentage }: { percentage: number }) {\n const normalizedPercentage = Math.min(Math.max(percentage, 0), 100)\n const circumference = 2 * Math.PI * 42.5\n const strokePercent = (normalizedPercentage / 100) * circumference\n\n return (\n \n \n \n \n )\n}\n\nconst agentFeatures = [\n {\n id: \"code-reviews\",\n content: (\n <>\n Code reviews with full codebase context to catch{\" \"}\n hard-to-find bugs. bugs.\n \n ),\n },\n {\n id: \"code-suggestions\",\n content: (\n <>\n Code suggestions validated in sandboxes before you\n merge.\n \n ),\n },\n {\n id: \"root-cause\",\n content: (\n <>\n Root-cause analysis for production issues with\n deployment context.{\" \"}\n \n Requires Observability Plus\n \n \n ),\n },\n]\n\nfunction ActivateAgentDialog() {\n return (\n \n \n \n \n \n \n \n Ship faster & safer with Vercel Agent\n \n Your use is subject to Vercel's{\" \"}\n Public Beta Agreement and{\" \"}\n AI Product Terms.\n \n \n
\n \n {agentFeatures.map((feature) => (\n \n \n \n \n \n \n {feature.content}\n \n \n \n ))}\n \n \n \n \n Pro teams get $100 in Vercel Agent trial credit for 2 weeks.\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ObservabilityCard() {\n return (\n \n \n
\n \n \n Observability Plus is replacing Monitoring\n \n Switch to the improved way to explore your data, with natural\n language. Monitoring will no longer be available on the Pro plan in\n November, 2025\n \n \n \n \n \n Warning\n \n \n \n \n )\n}\n\nfunction FeedbackForm() {\n return (\n \n \n \n
\n \n \n Topic\n \n \n Select a topic\n \n AI\n \n Accounts and Access Controls\n \n \n Billing\n \n \n CDN (Firewall, Caching)\n \n \n CI/CD (Builds, Deployments, Environment Variables)\n \n \n Dashboard Interface (Navigation, UI Issues)\n \n \n Domains\n \n \n Frameworks\n \n \n Marketplace and Integrations\n \n \n Observability (Observability, Logs, Monitoring)\n \n \n Storage\n \n \n \n \n Feedback\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nconst chartData = [\n { month: \"January\", visitors: 186 },\n { month: \"February\", visitors: 305 },\n { month: \"March\", visitors: 237 },\n { month: \"April\", visitors: 73 },\n { month: \"May\", visitors: 209 },\n { month: \"June\", visitors: 214 },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n color: \"var(--chart-1)\",\n },\n} satisfies ChartConfig\n\nfunction AnalyticsCard() {\n return (\n \n \n \n Analytics\n \n 418.2K Visitors +10%\n \n \n \n \n \n \n \n }\n defaultIndex={2}\n />\n \n \n \n \n \n )\n}\n", "type": "registry:block" } ], diff --git a/apps/v4/public/r/styles/radix-maia/calendar.json b/apps/v4/public/r/styles/radix-maia/calendar.json index 56170f3e08..2d48057ded 100644 --- a/apps/v4/public/r/styles/radix-maia/calendar.json +++ b/apps/v4/public/r/styles/radix-maia/calendar.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/radix-maia/ui/calendar.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/radix/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/radix/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted elative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted-200 after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/radix/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/radix/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted-200 after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", "type": "registry:ui" } ], diff --git a/apps/v4/public/r/styles/radix-maia/github.json b/apps/v4/public/r/styles/radix-maia/github.json index de4b1c7bf5..6b40325188 100644 --- a/apps/v4/public/r/styles/radix-maia/github.json +++ b/apps/v4/public/r/styles/radix-maia/github.json @@ -30,7 +30,7 @@ "files": [ { "path": "registry/radix-maia/blocks/github.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxItem,\n ComboboxList,\n ComboboxValue,\n useComboboxAnchor,\n} from \"@/registry/bases/base/ui/combobox\"\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/bases/radix/ui/avatar\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport { Checkbox } from \"@/registry/bases/radix/ui/checkbox\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/bases/radix/ui/command\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/bases/radix/ui/drawer\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from \"@/registry/bases/radix/ui/field\"\nimport { Input } from \"@/registry/bases/radix/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupTextarea,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport { Kbd } from \"@/registry/bases/radix/ui/kbd\"\nimport { NativeSelect } from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Separator } from \"@/registry/bases/radix/ui/separator\"\nimport { Spinner } from \"@/registry/bases/radix/ui/spinner\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/registry/bases/radix/ui/tabs\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/radix/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function GithubBlock() {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction CodespacesCard() {\n const [isCreatingCodespace, setIsCreatingCodespace] = React.useState(false)\n\n return (\n \n \n \n \n \n Codespaces\n Local\n \n \n \n \n Codespaces\n \n Your workspaces in the cloud\n \n \n \n \n \n \n \n \n Create a codespace on main\n \n \n \n \n \n \n \n \n \n \n Codespace repository configuration\n \n \n e.preventDefault()}\n className=\"w-56\"\n >\n \n \n New with options...\n \n \n \n Configure dev container\n \n \n \n Set up prebuilds\n \n \n \n \n Manage codespaces\n \n \n \n Share deep link\n \n \n \n What are codespaces?\n \n \n \n \n \n \n \n \n \n \n \n No codespaces\n \n You don't have any codespaces with this repository\n checked out\n \n \n \n {\n setIsCreatingCodespace(true)\n setTimeout(() => {\n setIsCreatingCodespace(false)\n }, 2000)\n }}\n disabled={isCreatingCodespace}\n >\n {isCreatingCodespace ? (\n \n ) : (\n \"\"\n )}\n Create Codespace\n \n \n Learn more about codespaces\n \n \n \n \n
\n Codespace usage for this repository is paid for by{\" \"}\n shadcn.\n
\n
\n \n \n \n \n \n Clone\n \n \n \n \n \n \n \n \n Which remote URL should I use?\n \n \n \n \n \n \n HTTPS\n SSH\n GitHub CLI\n \n
\n \n \n \n HTTPS URL\n \n \n \n \n \n \n \n \n \n \n Clone using the web URL.\n \n \n \n \n \n \n SSH URL\n \n \n \n \n \n \n \n \n \n \n Use a password-protected SSH key.\n \n \n \n \n \n \n CLI Command\n \n \n \n \n \n \n \n \n \n \n Work fast with our official CLI.{\" \"}\n Learn more\n \n \n \n
\n
\n \n
\n \n \n Open with GitHub Desktop\n \n \n \n Download ZIP\n \n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction RepositoryToolbar() {\n const [selectedBranch, setSelectedBranch] = React.useState(\"main\")\n return (\n \n
\n \n \n \n \n \n \n \n \n t\n \n \n \n \n \n \n \n \n \n Create new file\n \n \n \n Upload files\n \n \n \n \n \n \n \n \n \n \n New Agent Task\n \n e.preventDefault()}\n >\n \n New Agent Task\n \n \n \n \n \n \n \n \n \n \n \n \n Select a branch\n \n e.preventDefault()}\n >\n \n \n Select a Branch\n \n \n \n No branches found\n \n \n {[\n \"main\",\n \"develop\",\n \"feature/123\",\n \"feature/user-authentication\",\n \"feature/dashboard-redesign\",\n \"bugfix/login-error\",\n \"hotfix/security-patch\",\n \"release/v2.0.0\",\n \"feature/api-integration\",\n \"bugfix/memory-leak\",\n \"feature/dark-mode\",\n \"feature/responsive-design\",\n \"bugfix/typo-fix\",\n \"feature/search-functionality\",\n \"release/v1.9.0\",\n \"feature/notifications\",\n \"bugfix/cache-issue\",\n \"feature/payment-gateway\",\n \"hotfix/critical-bug\",\n \"feature/admin-panel\",\n \"bugfix/validation-error\",\n \"feature/analytics\",\n \"release/v2.1.0\",\n ].map((branch) => (\n setSelectedBranch(branch)}\n data-checked={selectedBranch === branch}\n >\n {branch}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Select Agent\n \n \n \n \n \n This repository has no custom agents\n \n \n Custom agents are reusable instructions and tools in\n your repository.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Start Task \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction Navbar() {\n return (\n \n
\n \n \n \n \n \n \n Menu\n \n \n \n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n shadcn\n \n \n shadcn@example.com\n \n \n \n \n \n \n \n \n Set status\n \n \n \n Single sign-on\n \n \n \n \n \n \n Profile\n \n \n \n Repositories\n \n \n \n Stars\n \n \n \n Gists\n \n \n \n Organizations\n \n \n \n Enterprises\n \n \n \n Sponsors\n \n \n \n \n \n \n Settings\n \n \n \n Copilot settings\n \n \n \n Feature preview\n \n \n \n Appearance\n \n \n \n Accessibility\n \n \n \n Upgrade\n \n \n \n \n \n Sign out\n \n \n \n
\n
\n )\n}\n\nconst usernames = [\n \"shadcn\",\n \"vercel\",\n \"nextjs\",\n \"tailwindlabs\",\n \"typescript-lang\",\n \"eslint\",\n \"prettier\",\n \"babel\",\n \"webpack\",\n \"rollup\",\n \"parcel\",\n \"vite\",\n \"react\",\n \"vue\",\n \"angular\",\n \"solid\",\n]\n\nfunction Contributors() {\n return (\n \n \n \n \n Contributors 312\n \n \n \n
\n {usernames.map((username) => (\n \n \n {username.charAt(0)}\n \n ))}\n
\n
\n \n \n + 810 contributors\n \n \n
\n
\n )\n}\n\nfunction Profile() {\n return (\n \n \n \n Profile\n Manage your profile information.\n \n \n
\n \n \n Name\n \n \n Your name may appear around GitHub where you contribute or are\n mentioned. You can remove it at any time.\n \n \n \n Public Email\n \n \n \n \n \n You can manage verified email addresses in your{\" \"}\n email settings.\n \n \n \n Bio\n \n \n You can @mention other users and organizations to\n link to them.\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nfunction ContributionsActivity() {\n return (\n \n \n \n Contributions & Activity\n \n Manage your contributions and activity visibility.\n \n \n \n
\n \n
\n \n Contributions & activity\n \n \n \n \n \n \n Make profile private and hide activity\n \n \n Enabling this will hide your contributions and activity\n from your GitHub profile and from social features like\n followers, stars, feeds, leaderboards and releases.\n \n \n \n \n \n \n \n Include private contributions on my profile\n \n \n Your contribution graph, achievements, and activity\n overview will show your private contributions without\n revealing any repository or organization information.{\" \"}\n Read more.\n \n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n )\n}\n\nconst users = [\n \"shadcn\",\n \"maxleiter\",\n \"evilrabbit\",\n \"pranathip\",\n \"jorgezreik\",\n \"shuding\",\n \"rauchg\",\n]\n\nfunction AssignIssue() {\n const anchor = useComboboxAnchor()\n\n return (\n \n \n \n Assign Issue\n \n Select users to assign to this issue.\n \n \n \n \n \n \n Add user\n \n \n \n \n \n \n \n {(values) => (\n \n {values.map((username: string) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n ))}\n 0 ? undefined : \"Select a item...\"\n }\n />\n \n )}\n \n \n \n No users found.\n \n {(username) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n )}\n \n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxItem,\n ComboboxList,\n ComboboxValue,\n useComboboxAnchor,\n} from \"@/registry/bases/base/ui/combobox\"\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/bases/radix/ui/avatar\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport { Checkbox } from \"@/registry/bases/radix/ui/checkbox\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/bases/radix/ui/command\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/bases/radix/ui/drawer\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from \"@/registry/bases/radix/ui/field\"\nimport { Input } from \"@/registry/bases/radix/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupTextarea,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport { Kbd } from \"@/registry/bases/radix/ui/kbd\"\nimport { NativeSelect } from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Separator } from \"@/registry/bases/radix/ui/separator\"\nimport { Spinner } from \"@/registry/bases/radix/ui/spinner\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/registry/bases/radix/ui/tabs\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/radix/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function GithubBlock() {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction CodespacesCard() {\n const [isCreatingCodespace, setIsCreatingCodespace] = React.useState(false)\n\n return (\n \n \n \n \n \n Codespaces\n Local\n \n \n \n \n Codespaces\n \n Your workspaces in the cloud\n \n \n \n \n \n \n \n \n Create a codespace on main\n \n \n \n \n \n \n \n \n \n \n Codespace repository configuration\n \n \n e.preventDefault()}\n className=\"w-56\"\n >\n \n \n New with options...\n \n \n \n Configure dev container\n \n \n \n Set up prebuilds\n \n \n \n \n Manage codespaces\n \n \n \n Share deep link\n \n \n \n What are codespaces?\n \n \n \n \n \n \n \n \n \n \n \n No codespaces\n \n You don't have any codespaces with this repository\n checked out\n \n \n \n {\n setIsCreatingCodespace(true)\n setTimeout(() => {\n setIsCreatingCodespace(false)\n }, 2000)\n }}\n disabled={isCreatingCodespace}\n >\n {isCreatingCodespace ? (\n \n ) : (\n \"\"\n )}\n Create Codespace\n \n \n Learn more about codespaces\n \n \n \n \n
\n Codespace usage for this repository is paid for by{\" \"}\n shadcn.\n
\n
\n \n \n \n \n \n Clone\n \n \n \n \n \n \n \n \n Which remote URL should I use?\n \n \n \n \n \n \n HTTPS\n SSH\n GitHub CLI\n \n
\n \n \n \n HTTPS URL\n \n \n \n \n \n \n \n \n \n \n Clone using the web URL.\n \n \n \n \n \n \n SSH URL\n \n \n \n \n \n \n \n \n \n \n Use a password-protected SSH key.\n \n \n \n \n \n \n CLI Command\n \n \n \n \n \n \n \n \n \n \n Work fast with our official CLI.{\" \"}\n Learn more\n \n \n \n
\n
\n \n
\n \n \n Open with GitHub Desktop\n \n \n \n Download ZIP\n \n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction RepositoryToolbar() {\n const [selectedBranch, setSelectedBranch] = React.useState(\"main\")\n return (\n \n
\n \n \n \n \n \n \n \n \n t\n \n \n \n \n \n \n \n \n \n Create new file\n \n \n \n Upload files\n \n \n \n \n \n \n \n \n \n \n New Agent Task\n \n e.preventDefault()}\n >\n \n New Agent Task\n \n \n \n \n \n \n \n \n \n \n \n \n Select a branch\n \n e.preventDefault()}\n >\n \n \n Select a Branch\n \n \n \n No branches found\n \n \n {[\n \"main\",\n \"develop\",\n \"feature/123\",\n \"feature/user-authentication\",\n \"feature/dashboard-redesign\",\n \"bugfix/login-error\",\n \"hotfix/security-patch\",\n \"release/v2.0.0\",\n \"feature/api-integration\",\n \"bugfix/memory-leak\",\n \"feature/dark-mode\",\n \"feature/responsive-design\",\n \"bugfix/typo-fix\",\n \"feature/search-functionality\",\n \"release/v1.9.0\",\n \"feature/notifications\",\n \"bugfix/cache-issue\",\n \"feature/payment-gateway\",\n \"hotfix/critical-bug\",\n \"feature/admin-panel\",\n \"bugfix/validation-error\",\n \"feature/analytics\",\n \"release/v2.1.0\",\n ].map((branch) => (\n setSelectedBranch(branch)}\n data-checked={selectedBranch === branch}\n >\n {branch}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Select Agent\n \n \n \n \n \n This repository has no custom agents\n \n \n Custom agents are reusable instructions and tools in\n your repository.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Start Task \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction Navbar() {\n return (\n \n
\n \n \n \n \n \n \n Menu\n \n \n \n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n shadcn\n \n \n shadcn@example.com\n \n \n \n \n \n \n \n \n Set status\n \n \n \n Single sign-on\n \n \n \n \n \n \n Profile\n \n \n \n Repositories\n \n \n \n Stars\n \n \n \n Gists\n \n \n \n Organizations\n \n \n \n Enterprises\n \n \n \n Sponsors\n \n \n \n \n \n \n Settings\n \n \n \n Copilot settings\n \n \n \n Feature preview\n \n \n \n Appearance\n \n \n \n Accessibility\n \n \n \n Upgrade\n \n \n \n \n \n Sign out\n \n \n \n
\n
\n )\n}\n\nconst usernames = [\n \"shadcn\",\n \"vercel\",\n \"nextjs\",\n \"tailwindlabs\",\n \"typescript-lang\",\n \"eslint\",\n \"prettier\",\n \"babel\",\n \"webpack\",\n \"rollup\",\n \"parcel\",\n \"vite\",\n \"react\",\n \"vue\",\n \"angular\",\n \"solid\",\n]\n\nfunction Contributors() {\n return (\n \n \n \n \n Contributors 312\n \n \n \n
\n {usernames.map((username) => (\n \n \n {username.charAt(0)}\n \n ))}\n
\n
\n \n \n + 810 contributors\n \n \n
\n
\n )\n}\n\nfunction Profile() {\n return (\n \n \n \n Profile\n Manage your profile information.\n \n \n
\n \n \n Name\n \n \n Your name may appear around GitHub where you contribute or are\n mentioned. You can remove it at any time.\n \n \n \n Public Email\n \n \n \n \n \n You can manage verified email addresses in your{\" \"}\n email settings.\n \n \n \n Bio\n \n \n You can @mention other users and organizations to\n link to them.\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nfunction ContributionsActivity() {\n return (\n \n \n \n Contributions & Activity\n \n Manage your contributions and activity visibility.\n \n \n \n
\n \n
\n \n Contributions & activity\n \n \n \n \n \n \n Make profile private and hide activity\n \n \n Enabling this will hide your contributions and activity\n from your GitHub profile and from social features like\n followers, stars, feeds, leaderboards and releases.\n \n \n \n \n \n \n \n Include private contributions on my profile\n \n \n Your contribution graph, achievements, and activity\n overview will show your private contributions without\n revealing any repository or organization information.{\" \"}\n Read more.\n \n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n )\n}\n\nconst users = [\n \"shadcn\",\n \"maxleiter\",\n \"evilrabbit\",\n \"pranathip\",\n \"jorgezreik\",\n \"shuding\",\n \"rauchg\",\n]\n\nfunction AssignIssue() {\n const anchor = useComboboxAnchor()\n\n return (\n \n \n \n Assign Issue\n \n Select users to assign to this issue.\n \n \n \n \n \n \n Add user\n \n \n \n \n \n \n \n {(values) => (\n \n {values.map((username: string) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n ))}\n 0 ? undefined : \"Select a item...\"\n }\n />\n \n )}\n \n \n \n No users found.\n \n {(username) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n )}\n \n \n \n \n \n \n )\n}\n", "type": "registry:block" } ], diff --git a/apps/v4/public/r/styles/radix-maia/vercel.json b/apps/v4/public/r/styles/radix-maia/vercel.json index 4d72c7458d..50bcc52f60 100644 --- a/apps/v4/public/r/styles/radix-maia/vercel.json +++ b/apps/v4/public/r/styles/radix-maia/vercel.json @@ -23,7 +23,7 @@ "files": [ { "path": "registry/radix-maia/blocks/vercel.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { type DateRange } from \"react-day-picker\"\nimport { Area, AreaChart } from \"recharts\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport { Alert, AlertDescription } from \"@/registry/bases/radix/ui/alert\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport { Calendar } from \"@/registry/bases/radix/ui/calendar\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n type ChartConfig,\n} from \"@/registry/bases/radix/ui/chart\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/registry/bases/radix/ui/dialog\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport { Field, FieldGroup, FieldLabel } from \"@/registry/bases/radix/ui/field\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport {\n NativeSelect,\n NativeSelectOption,\n} from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function VercelBlock() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst items = [\n {\n name: \"Edge Requests\",\n value: \"$1.83K\",\n percentage: 67.34,\n },\n {\n name: \"Fast Data Transfer\",\n percentage: 52.18,\n value: \"$952.51\",\n },\n {\n name: \"Monitoring data points\",\n percentage: 89.42,\n value: \"$901.20\",\n },\n {\n name: \"Web Analytics Events\",\n percentage: 45.67,\n value: \"$603.71\",\n },\n {\n name: \"Edge Request CPU Duration\",\n percentage: 23.91,\n value: \"$4.65\",\n },\n {\n name: \"Fast Origin Transfer\",\n percentage: 38.75,\n value: \"$3.85\",\n },\n {\n name: \"ISR Reads\",\n percentage: 71.24,\n value: \"$2.86\",\n },\n {\n name: \"Function Invocations\",\n percentage: 15.83,\n value: \"$0.60\",\n },\n {\n name: \"ISR Writes\",\n percentage: 26.23,\n value: \"524.52K / 2M\",\n },\n {\n name: \"Function Duration\",\n percentage: 5.11,\n value: \"5.11 GB Hrs / 1K GB Hrs\",\n },\n]\n\nfunction UsageCard() {\n return (\n \n \n \n \n 5 days remaining in cycle\n \n \n \n \n {items.map((item) => (\n \n \n \n \n \n \n {item.name}\n \n \n \n {item.value}\n \n \n \n \n ))}\n \n \n \n \n )\n}\n\nfunction AnomalyAlert() {\n return (\n \n \n \n \n \n Get alerted for anomalies\n \n Automatically monitor your projects for anomalies and get\n notified.\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst environments = [\n \"All Environments\",\n \"Production\",\n \"Preview\",\n \"Development\",\n \"Staging\",\n \"Test\",\n \"Other\",\n]\n\nconst statuses = [\n { name: \"Ready\", color: \"oklch(0.72 0.19 150)\" },\n { name: \"Error\", color: \"oklch(0.64 0.21 25)\" },\n { name: \"Building\", color: \"oklch(0.77 0.16 70)\" },\n { name: \"Queued\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Provisioning\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Canceled\", color: \"oklch(0.72 0.00 0)\" },\n]\n\nfunction DeploymentFilter() {\n const [selectedEnvironment, setSelectedEnvironment] = React.useState(\n environments[0]\n )\n const [selectedStatuses, setSelectedStatuses] = React.useState>(\n new Set(statuses.slice(0, 5).map((s) => s.name))\n )\n const [dateRange, setDateRange] = React.useState()\n\n const toggleStatus = (statusName: string) => {\n setSelectedStatuses((prev) => {\n const next = new Set(prev)\n if (next.has(statusName)) {\n next.delete(statusName)\n } else {\n next.add(statusName)\n }\n return next\n })\n }\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {environments.map((environment) => (\n setSelectedEnvironment(environment)}\n data-active={selectedEnvironment === environment}\n >\n {environment}\n \n \n ))}\n \n \n \n \n \n \n \n {statuses.map((status) => {\n const isSelected = selectedStatuses.has(status.name)\n return (\n toggleStatus(status.name)}\n data-active={isSelected}\n style={\n {\n \"--color\": status.color,\n } as React.CSSProperties\n }\n >\n
\n
\n {status.name}\n
\n \n \n )\n })}\n \n \n
\n \n )\n}\n\nconst billingItems = [\n {\n month: \"November 2025\",\n invoiceDate: new Date(2025, 10, 5),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"October 2025\",\n invoiceDate: new Date(2025, 9, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"September 2025\",\n invoiceDate: new Date(2025, 8, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n]\n\nfunction BillingList() {\n return (\n \n \n {billingItems.map((item, index) => (\n \n \n \n \n {item.month}\n \n {item.status}\n \n \n \n Infrastructure usage & Vercel platform\n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n \n \n \n \n View invoice\n Download PDF\n \n Contact support\n \n \n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n {index !== billingItems.length - 1 && (\n \n )}\n \n ))}\n \n \n )\n}\n\nfunction CircularGauge({ percentage }: { percentage: number }) {\n const normalizedPercentage = Math.min(Math.max(percentage, 0), 100)\n const circumference = 2 * Math.PI * 42.5\n const strokePercent = (normalizedPercentage / 100) * circumference\n\n return (\n \n \n \n \n )\n}\n\nconst agentFeatures = [\n {\n id: \"code-reviews\",\n content: (\n <>\n Code reviews with full codebase context to catch{\" \"}\n hard-to-find bugs. bugs.\n \n ),\n },\n {\n id: \"code-suggestions\",\n content: (\n <>\n Code suggestions validated in sandboxes before you\n merge.\n \n ),\n },\n {\n id: \"root-cause\",\n content: (\n <>\n Root-cause analysis for production issues with\n deployment context.{\" \"}\n \n Requires Observability Plus\n \n \n ),\n },\n]\n\nfunction ActivateAgentDialog() {\n return (\n \n \n \n \n \n \n \n Ship faster & safer with Vercel Agent\n \n Your use is subject to Vercel's{\" \"}\n Public Beta Agreement and{\" \"}\n AI Product Terms.\n \n \n
\n \n {agentFeatures.map((feature) => (\n \n \n \n \n \n \n {feature.content}\n \n \n \n ))}\n \n \n \n \n Pro teams get $100 in Vercel Agent trial credit for 2 weeks.\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ObservabilityCard() {\n return (\n \n \n
\n \n \n Observability Plus is replacing Monitoring\n \n Switch to the improved way to explore your data, with natural\n language. Monitoring will no longer be available on the Pro plan in\n November, 2025\n \n \n \n \n \n Warning\n \n \n \n \n )\n}\n\nfunction FeedbackForm() {\n return (\n \n \n \n
\n \n \n Topic\n \n \n Select a topic\n \n AI\n \n Accounts and Access Controls\n \n \n Billing\n \n \n CDN (Firewall, Caching)\n \n \n CI/CD (Builds, Deployments, Environment Variables)\n \n \n Dashboard Interface (Navigation, UI Issues)\n \n \n Domains\n \n \n Frameworks\n \n \n Marketplace and Integrations\n \n \n Observability (Observability, Logs, Monitoring)\n \n \n Storage\n \n \n \n \n Feedback\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nconst chartData = [\n { month: \"January\", visitors: 186 },\n { month: \"February\", visitors: 305 },\n { month: \"March\", visitors: 237 },\n { month: \"April\", visitors: 73 },\n { month: \"May\", visitors: 209 },\n { month: \"June\", visitors: 214 },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n color: \"var(--chart-1)\",\n },\n} satisfies ChartConfig\n\nfunction AnalyticsCard() {\n return (\n \n \n \n Analytics\n \n 418.2K Visitors +10%\n \n \n \n \n \n \n \n }\n defaultIndex={2}\n />\n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { type DateRange } from \"react-day-picker\"\nimport { Area, AreaChart } from \"recharts\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport { Alert, AlertDescription } from \"@/registry/bases/radix/ui/alert\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport { Calendar } from \"@/registry/bases/radix/ui/calendar\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n type ChartConfig,\n} from \"@/registry/bases/radix/ui/chart\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/registry/bases/radix/ui/dialog\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport { Field, FieldGroup, FieldLabel } from \"@/registry/bases/radix/ui/field\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport {\n NativeSelect,\n NativeSelectOption,\n} from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function VercelBlock() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst items = [\n {\n name: \"Edge Requests\",\n value: \"$1.83K\",\n percentage: 67.34,\n },\n {\n name: \"Fast Data Transfer\",\n percentage: 52.18,\n value: \"$952.51\",\n },\n {\n name: \"Monitoring data points\",\n percentage: 89.42,\n value: \"$901.20\",\n },\n {\n name: \"Web Analytics Events\",\n percentage: 45.67,\n value: \"$603.71\",\n },\n {\n name: \"Edge Request CPU Duration\",\n percentage: 23.91,\n value: \"$4.65\",\n },\n {\n name: \"Fast Origin Transfer\",\n percentage: 38.75,\n value: \"$3.85\",\n },\n {\n name: \"ISR Reads\",\n percentage: 71.24,\n value: \"$2.86\",\n },\n {\n name: \"Function Invocations\",\n percentage: 15.83,\n value: \"$0.60\",\n },\n {\n name: \"ISR Writes\",\n percentage: 26.23,\n value: \"524.52K / 2M\",\n },\n {\n name: \"Function Duration\",\n percentage: 5.11,\n value: \"5.11 GB Hrs / 1K GB Hrs\",\n },\n]\n\nfunction UsageCard() {\n return (\n \n \n \n \n 5 days remaining in cycle\n \n \n \n \n {items.map((item) => (\n \n \n \n \n \n \n {item.name}\n \n \n \n {item.value}\n \n \n \n \n ))}\n \n \n \n \n )\n}\n\nfunction AnomalyAlert() {\n return (\n \n \n \n \n \n Get alerted for anomalies\n \n Automatically monitor your projects for anomalies and get\n notified.\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst environments = [\n \"All Environments\",\n \"Production\",\n \"Preview\",\n \"Development\",\n \"Staging\",\n \"Test\",\n \"Other\",\n]\n\nconst statuses = [\n { name: \"Ready\", color: \"oklch(0.72 0.19 150)\" },\n { name: \"Error\", color: \"oklch(0.64 0.21 25)\" },\n { name: \"Building\", color: \"oklch(0.77 0.16 70)\" },\n { name: \"Queued\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Provisioning\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Canceled\", color: \"oklch(0.72 0.00 0)\" },\n]\n\nfunction DeploymentFilter() {\n const [selectedEnvironment, setSelectedEnvironment] = React.useState(\n environments[0]\n )\n const [selectedStatuses, setSelectedStatuses] = React.useState>(\n new Set(statuses.slice(0, 5).map((s) => s.name))\n )\n const [dateRange, setDateRange] = React.useState()\n\n const toggleStatus = (statusName: string) => {\n setSelectedStatuses((prev) => {\n const next = new Set(prev)\n if (next.has(statusName)) {\n next.delete(statusName)\n } else {\n next.add(statusName)\n }\n return next\n })\n }\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {environments.map((environment) => (\n setSelectedEnvironment(environment)}\n data-active={selectedEnvironment === environment}\n >\n {environment}\n \n \n ))}\n \n \n \n \n \n \n \n {statuses.map((status) => {\n const isSelected = selectedStatuses.has(status.name)\n return (\n toggleStatus(status.name)}\n data-active={isSelected}\n style={\n {\n \"--color\": status.color,\n } as React.CSSProperties\n }\n >\n
\n
\n {status.name}\n
\n \n \n )\n })}\n \n \n
\n \n )\n}\n\nconst billingItems = [\n {\n month: \"November 2025\",\n invoiceDate: new Date(2025, 10, 5),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"October 2025\",\n invoiceDate: new Date(2025, 9, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"September 2025\",\n invoiceDate: new Date(2025, 8, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n]\n\nfunction BillingList() {\n return (\n \n \n {billingItems.map((item, index) => (\n \n \n \n \n {item.month}\n \n {item.status}\n \n \n \n Infrastructure usage & Vercel platform\n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n \n \n \n \n View invoice\n Download PDF\n \n Contact support\n \n \n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n {index !== billingItems.length - 1 && (\n \n )}\n \n ))}\n \n \n )\n}\n\nfunction CircularGauge({ percentage }: { percentage: number }) {\n const normalizedPercentage = Math.min(Math.max(percentage, 0), 100)\n const circumference = 2 * Math.PI * 42.5\n const strokePercent = (normalizedPercentage / 100) * circumference\n\n return (\n \n \n \n \n )\n}\n\nconst agentFeatures = [\n {\n id: \"code-reviews\",\n content: (\n <>\n Code reviews with full codebase context to catch{\" \"}\n hard-to-find bugs. bugs.\n \n ),\n },\n {\n id: \"code-suggestions\",\n content: (\n <>\n Code suggestions validated in sandboxes before you\n merge.\n \n ),\n },\n {\n id: \"root-cause\",\n content: (\n <>\n Root-cause analysis for production issues with\n deployment context.{\" \"}\n \n Requires Observability Plus\n \n \n ),\n },\n]\n\nfunction ActivateAgentDialog() {\n return (\n \n \n \n \n \n \n \n Ship faster & safer with Vercel Agent\n \n Your use is subject to Vercel's{\" \"}\n Public Beta Agreement and{\" \"}\n AI Product Terms.\n \n \n
\n \n {agentFeatures.map((feature) => (\n \n \n \n \n \n \n {feature.content}\n \n \n \n ))}\n \n \n \n \n Pro teams get $100 in Vercel Agent trial credit for 2 weeks.\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ObservabilityCard() {\n return (\n \n \n
\n \n \n Observability Plus is replacing Monitoring\n \n Switch to the improved way to explore your data, with natural\n language. Monitoring will no longer be available on the Pro plan in\n November, 2025\n \n \n \n \n \n Warning\n \n \n \n \n )\n}\n\nfunction FeedbackForm() {\n return (\n \n \n \n
\n \n \n Topic\n \n \n Select a topic\n \n AI\n \n Accounts and Access Controls\n \n \n Billing\n \n \n CDN (Firewall, Caching)\n \n \n CI/CD (Builds, Deployments, Environment Variables)\n \n \n Dashboard Interface (Navigation, UI Issues)\n \n \n Domains\n \n \n Frameworks\n \n \n Marketplace and Integrations\n \n \n Observability (Observability, Logs, Monitoring)\n \n \n Storage\n \n \n \n \n Feedback\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nconst chartData = [\n { month: \"January\", visitors: 186 },\n { month: \"February\", visitors: 305 },\n { month: \"March\", visitors: 237 },\n { month: \"April\", visitors: 73 },\n { month: \"May\", visitors: 209 },\n { month: \"June\", visitors: 214 },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n color: \"var(--chart-1)\",\n },\n} satisfies ChartConfig\n\nfunction AnalyticsCard() {\n return (\n \n \n \n Analytics\n \n 418.2K Visitors +10%\n \n \n \n \n \n \n \n }\n defaultIndex={2}\n />\n \n \n \n \n \n )\n}\n", "type": "registry:block" } ], diff --git a/apps/v4/public/r/styles/radix-mira/calendar.json b/apps/v4/public/r/styles/radix-mira/calendar.json index 7eee4c34ae..299023b043 100644 --- a/apps/v4/public/r/styles/radix-mira/calendar.json +++ b/apps/v4/public/r/styles/radix-mira/calendar.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/radix-mira/ui/calendar.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/radix/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/radix/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted elative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted-200 after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/radix/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/radix/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted-200 after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", "type": "registry:ui" } ], diff --git a/apps/v4/public/r/styles/radix-mira/github.json b/apps/v4/public/r/styles/radix-mira/github.json index a125bb4989..7cdce33c8e 100644 --- a/apps/v4/public/r/styles/radix-mira/github.json +++ b/apps/v4/public/r/styles/radix-mira/github.json @@ -30,7 +30,7 @@ "files": [ { "path": "registry/radix-mira/blocks/github.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxItem,\n ComboboxList,\n ComboboxValue,\n useComboboxAnchor,\n} from \"@/registry/bases/base/ui/combobox\"\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/bases/radix/ui/avatar\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport { Checkbox } from \"@/registry/bases/radix/ui/checkbox\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/bases/radix/ui/command\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/bases/radix/ui/drawer\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from \"@/registry/bases/radix/ui/field\"\nimport { Input } from \"@/registry/bases/radix/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupTextarea,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport { Kbd } from \"@/registry/bases/radix/ui/kbd\"\nimport { NativeSelect } from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Separator } from \"@/registry/bases/radix/ui/separator\"\nimport { Spinner } from \"@/registry/bases/radix/ui/spinner\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/registry/bases/radix/ui/tabs\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/radix/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function GithubBlock() {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction CodespacesCard() {\n const [isCreatingCodespace, setIsCreatingCodespace] = React.useState(false)\n\n return (\n \n \n \n \n \n Codespaces\n Local\n \n \n \n \n Codespaces\n \n Your workspaces in the cloud\n \n \n \n \n \n \n \n \n Create a codespace on main\n \n \n \n \n \n \n \n \n \n \n Codespace repository configuration\n \n \n e.preventDefault()}\n className=\"w-56\"\n >\n \n \n New with options...\n \n \n \n Configure dev container\n \n \n \n Set up prebuilds\n \n \n \n \n Manage codespaces\n \n \n \n Share deep link\n \n \n \n What are codespaces?\n \n \n \n \n \n \n \n \n \n \n \n No codespaces\n \n You don't have any codespaces with this repository\n checked out\n \n \n \n {\n setIsCreatingCodespace(true)\n setTimeout(() => {\n setIsCreatingCodespace(false)\n }, 2000)\n }}\n disabled={isCreatingCodespace}\n >\n {isCreatingCodespace ? (\n \n ) : (\n \"\"\n )}\n Create Codespace\n \n \n Learn more about codespaces\n \n \n \n \n
\n Codespace usage for this repository is paid for by{\" \"}\n shadcn.\n
\n
\n \n \n \n \n \n Clone\n \n \n \n \n \n \n \n \n Which remote URL should I use?\n \n \n \n \n \n \n HTTPS\n SSH\n GitHub CLI\n \n
\n \n \n \n HTTPS URL\n \n \n \n \n \n \n \n \n \n \n Clone using the web URL.\n \n \n \n \n \n \n SSH URL\n \n \n \n \n \n \n \n \n \n \n Use a password-protected SSH key.\n \n \n \n \n \n \n CLI Command\n \n \n \n \n \n \n \n \n \n \n Work fast with our official CLI.{\" \"}\n Learn more\n \n \n \n
\n
\n \n
\n \n \n Open with GitHub Desktop\n \n \n \n Download ZIP\n \n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction RepositoryToolbar() {\n const [selectedBranch, setSelectedBranch] = React.useState(\"main\")\n return (\n \n
\n \n \n \n \n \n \n \n \n t\n \n \n \n \n \n \n \n \n \n Create new file\n \n \n \n Upload files\n \n \n \n \n \n \n \n \n \n \n New Agent Task\n \n e.preventDefault()}\n >\n \n New Agent Task\n \n \n \n \n \n \n \n \n \n \n \n \n Select a branch\n \n e.preventDefault()}\n >\n \n \n Select a Branch\n \n \n \n No branches found\n \n \n {[\n \"main\",\n \"develop\",\n \"feature/123\",\n \"feature/user-authentication\",\n \"feature/dashboard-redesign\",\n \"bugfix/login-error\",\n \"hotfix/security-patch\",\n \"release/v2.0.0\",\n \"feature/api-integration\",\n \"bugfix/memory-leak\",\n \"feature/dark-mode\",\n \"feature/responsive-design\",\n \"bugfix/typo-fix\",\n \"feature/search-functionality\",\n \"release/v1.9.0\",\n \"feature/notifications\",\n \"bugfix/cache-issue\",\n \"feature/payment-gateway\",\n \"hotfix/critical-bug\",\n \"feature/admin-panel\",\n \"bugfix/validation-error\",\n \"feature/analytics\",\n \"release/v2.1.0\",\n ].map((branch) => (\n setSelectedBranch(branch)}\n data-checked={selectedBranch === branch}\n >\n {branch}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Select Agent\n \n \n \n \n \n This repository has no custom agents\n \n \n Custom agents are reusable instructions and tools in\n your repository.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Start Task \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction Navbar() {\n return (\n \n
\n \n \n \n \n \n \n Menu\n \n \n \n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n shadcn\n \n \n shadcn@example.com\n \n \n \n \n \n \n \n \n Set status\n \n \n \n Single sign-on\n \n \n \n \n \n \n Profile\n \n \n \n Repositories\n \n \n \n Stars\n \n \n \n Gists\n \n \n \n Organizations\n \n \n \n Enterprises\n \n \n \n Sponsors\n \n \n \n \n \n \n Settings\n \n \n \n Copilot settings\n \n \n \n Feature preview\n \n \n \n Appearance\n \n \n \n Accessibility\n \n \n \n Upgrade\n \n \n \n \n \n Sign out\n \n \n \n
\n
\n )\n}\n\nconst usernames = [\n \"shadcn\",\n \"vercel\",\n \"nextjs\",\n \"tailwindlabs\",\n \"typescript-lang\",\n \"eslint\",\n \"prettier\",\n \"babel\",\n \"webpack\",\n \"rollup\",\n \"parcel\",\n \"vite\",\n \"react\",\n \"vue\",\n \"angular\",\n \"solid\",\n]\n\nfunction Contributors() {\n return (\n \n \n \n \n Contributors 312\n \n \n \n
\n {usernames.map((username) => (\n \n \n {username.charAt(0)}\n \n ))}\n
\n
\n \n \n + 810 contributors\n \n \n
\n
\n )\n}\n\nfunction Profile() {\n return (\n \n \n \n Profile\n Manage your profile information.\n \n \n
\n \n \n Name\n \n \n Your name may appear around GitHub where you contribute or are\n mentioned. You can remove it at any time.\n \n \n \n Public Email\n \n \n \n \n \n You can manage verified email addresses in your{\" \"}\n email settings.\n \n \n \n Bio\n \n \n You can @mention other users and organizations to\n link to them.\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nfunction ContributionsActivity() {\n return (\n \n \n \n Contributions & Activity\n \n Manage your contributions and activity visibility.\n \n \n \n
\n \n
\n \n Contributions & activity\n \n \n \n \n \n \n Make profile private and hide activity\n \n \n Enabling this will hide your contributions and activity\n from your GitHub profile and from social features like\n followers, stars, feeds, leaderboards and releases.\n \n \n \n \n \n \n \n Include private contributions on my profile\n \n \n Your contribution graph, achievements, and activity\n overview will show your private contributions without\n revealing any repository or organization information.{\" \"}\n Read more.\n \n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n )\n}\n\nconst users = [\n \"shadcn\",\n \"maxleiter\",\n \"evilrabbit\",\n \"pranathip\",\n \"jorgezreik\",\n \"shuding\",\n \"rauchg\",\n]\n\nfunction AssignIssue() {\n const anchor = useComboboxAnchor()\n\n return (\n \n \n \n Assign Issue\n \n Select users to assign to this issue.\n \n \n \n \n \n \n Add user\n \n \n \n \n \n \n \n {(values) => (\n \n {values.map((username: string) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n ))}\n 0 ? undefined : \"Select a item...\"\n }\n />\n \n )}\n \n \n \n No users found.\n \n {(username) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n )}\n \n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxItem,\n ComboboxList,\n ComboboxValue,\n useComboboxAnchor,\n} from \"@/registry/bases/base/ui/combobox\"\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/bases/radix/ui/avatar\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport { Checkbox } from \"@/registry/bases/radix/ui/checkbox\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/bases/radix/ui/command\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/bases/radix/ui/drawer\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from \"@/registry/bases/radix/ui/field\"\nimport { Input } from \"@/registry/bases/radix/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupTextarea,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport { Kbd } from \"@/registry/bases/radix/ui/kbd\"\nimport { NativeSelect } from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Separator } from \"@/registry/bases/radix/ui/separator\"\nimport { Spinner } from \"@/registry/bases/radix/ui/spinner\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/registry/bases/radix/ui/tabs\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/radix/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function GithubBlock() {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction CodespacesCard() {\n const [isCreatingCodespace, setIsCreatingCodespace] = React.useState(false)\n\n return (\n \n \n \n \n \n Codespaces\n Local\n \n \n \n \n Codespaces\n \n Your workspaces in the cloud\n \n \n \n \n \n \n \n \n Create a codespace on main\n \n \n \n \n \n \n \n \n \n \n Codespace repository configuration\n \n \n e.preventDefault()}\n className=\"w-56\"\n >\n \n \n New with options...\n \n \n \n Configure dev container\n \n \n \n Set up prebuilds\n \n \n \n \n Manage codespaces\n \n \n \n Share deep link\n \n \n \n What are codespaces?\n \n \n \n \n \n \n \n \n \n \n \n No codespaces\n \n You don't have any codespaces with this repository\n checked out\n \n \n \n {\n setIsCreatingCodespace(true)\n setTimeout(() => {\n setIsCreatingCodespace(false)\n }, 2000)\n }}\n disabled={isCreatingCodespace}\n >\n {isCreatingCodespace ? (\n \n ) : (\n \"\"\n )}\n Create Codespace\n \n \n Learn more about codespaces\n \n \n \n \n
\n Codespace usage for this repository is paid for by{\" \"}\n shadcn.\n
\n
\n \n \n \n \n \n Clone\n \n \n \n \n \n \n \n \n Which remote URL should I use?\n \n \n \n \n \n \n HTTPS\n SSH\n GitHub CLI\n \n
\n \n \n \n HTTPS URL\n \n \n \n \n \n \n \n \n \n \n Clone using the web URL.\n \n \n \n \n \n \n SSH URL\n \n \n \n \n \n \n \n \n \n \n Use a password-protected SSH key.\n \n \n \n \n \n \n CLI Command\n \n \n \n \n \n \n \n \n \n \n Work fast with our official CLI.{\" \"}\n Learn more\n \n \n \n
\n
\n \n
\n \n \n Open with GitHub Desktop\n \n \n \n Download ZIP\n \n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction RepositoryToolbar() {\n const [selectedBranch, setSelectedBranch] = React.useState(\"main\")\n return (\n \n
\n \n \n \n \n \n \n \n \n t\n \n \n \n \n \n \n \n \n \n Create new file\n \n \n \n Upload files\n \n \n \n \n \n \n \n \n \n \n New Agent Task\n \n e.preventDefault()}\n >\n \n New Agent Task\n \n \n \n \n \n \n \n \n \n \n \n \n Select a branch\n \n e.preventDefault()}\n >\n \n \n Select a Branch\n \n \n \n No branches found\n \n \n {[\n \"main\",\n \"develop\",\n \"feature/123\",\n \"feature/user-authentication\",\n \"feature/dashboard-redesign\",\n \"bugfix/login-error\",\n \"hotfix/security-patch\",\n \"release/v2.0.0\",\n \"feature/api-integration\",\n \"bugfix/memory-leak\",\n \"feature/dark-mode\",\n \"feature/responsive-design\",\n \"bugfix/typo-fix\",\n \"feature/search-functionality\",\n \"release/v1.9.0\",\n \"feature/notifications\",\n \"bugfix/cache-issue\",\n \"feature/payment-gateway\",\n \"hotfix/critical-bug\",\n \"feature/admin-panel\",\n \"bugfix/validation-error\",\n \"feature/analytics\",\n \"release/v2.1.0\",\n ].map((branch) => (\n setSelectedBranch(branch)}\n data-checked={selectedBranch === branch}\n >\n {branch}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Select Agent\n \n \n \n \n \n This repository has no custom agents\n \n \n Custom agents are reusable instructions and tools in\n your repository.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Start Task \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction Navbar() {\n return (\n \n
\n \n \n \n \n \n \n Menu\n \n \n \n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n shadcn\n \n \n shadcn@example.com\n \n \n \n \n \n \n \n \n Set status\n \n \n \n Single sign-on\n \n \n \n \n \n \n Profile\n \n \n \n Repositories\n \n \n \n Stars\n \n \n \n Gists\n \n \n \n Organizations\n \n \n \n Enterprises\n \n \n \n Sponsors\n \n \n \n \n \n \n Settings\n \n \n \n Copilot settings\n \n \n \n Feature preview\n \n \n \n Appearance\n \n \n \n Accessibility\n \n \n \n Upgrade\n \n \n \n \n \n Sign out\n \n \n \n
\n
\n )\n}\n\nconst usernames = [\n \"shadcn\",\n \"vercel\",\n \"nextjs\",\n \"tailwindlabs\",\n \"typescript-lang\",\n \"eslint\",\n \"prettier\",\n \"babel\",\n \"webpack\",\n \"rollup\",\n \"parcel\",\n \"vite\",\n \"react\",\n \"vue\",\n \"angular\",\n \"solid\",\n]\n\nfunction Contributors() {\n return (\n \n \n \n \n Contributors 312\n \n \n \n
\n {usernames.map((username) => (\n \n \n {username.charAt(0)}\n \n ))}\n
\n
\n \n \n + 810 contributors\n \n \n
\n
\n )\n}\n\nfunction Profile() {\n return (\n \n \n \n Profile\n Manage your profile information.\n \n \n
\n \n \n Name\n \n \n Your name may appear around GitHub where you contribute or are\n mentioned. You can remove it at any time.\n \n \n \n Public Email\n \n \n \n \n \n You can manage verified email addresses in your{\" \"}\n email settings.\n \n \n \n Bio\n \n \n You can @mention other users and organizations to\n link to them.\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nfunction ContributionsActivity() {\n return (\n \n \n \n Contributions & Activity\n \n Manage your contributions and activity visibility.\n \n \n \n
\n \n
\n \n Contributions & activity\n \n \n \n \n \n \n Make profile private and hide activity\n \n \n Enabling this will hide your contributions and activity\n from your GitHub profile and from social features like\n followers, stars, feeds, leaderboards and releases.\n \n \n \n \n \n \n \n Include private contributions on my profile\n \n \n Your contribution graph, achievements, and activity\n overview will show your private contributions without\n revealing any repository or organization information.{\" \"}\n Read more.\n \n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n )\n}\n\nconst users = [\n \"shadcn\",\n \"maxleiter\",\n \"evilrabbit\",\n \"pranathip\",\n \"jorgezreik\",\n \"shuding\",\n \"rauchg\",\n]\n\nfunction AssignIssue() {\n const anchor = useComboboxAnchor()\n\n return (\n \n \n \n Assign Issue\n \n Select users to assign to this issue.\n \n \n \n \n \n \n Add user\n \n \n \n \n \n \n \n {(values) => (\n \n {values.map((username: string) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n ))}\n 0 ? undefined : \"Select a item...\"\n }\n />\n \n )}\n \n \n \n No users found.\n \n {(username) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n )}\n \n \n \n \n \n \n )\n}\n", "type": "registry:block" } ], diff --git a/apps/v4/public/r/styles/radix-mira/vercel.json b/apps/v4/public/r/styles/radix-mira/vercel.json index 70732833ea..8cbb466d06 100644 --- a/apps/v4/public/r/styles/radix-mira/vercel.json +++ b/apps/v4/public/r/styles/radix-mira/vercel.json @@ -23,7 +23,7 @@ "files": [ { "path": "registry/radix-mira/blocks/vercel.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { type DateRange } from \"react-day-picker\"\nimport { Area, AreaChart } from \"recharts\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport { Alert, AlertDescription } from \"@/registry/bases/radix/ui/alert\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport { Calendar } from \"@/registry/bases/radix/ui/calendar\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n type ChartConfig,\n} from \"@/registry/bases/radix/ui/chart\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/registry/bases/radix/ui/dialog\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport { Field, FieldGroup, FieldLabel } from \"@/registry/bases/radix/ui/field\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport {\n NativeSelect,\n NativeSelectOption,\n} from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function VercelBlock() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst items = [\n {\n name: \"Edge Requests\",\n value: \"$1.83K\",\n percentage: 67.34,\n },\n {\n name: \"Fast Data Transfer\",\n percentage: 52.18,\n value: \"$952.51\",\n },\n {\n name: \"Monitoring data points\",\n percentage: 89.42,\n value: \"$901.20\",\n },\n {\n name: \"Web Analytics Events\",\n percentage: 45.67,\n value: \"$603.71\",\n },\n {\n name: \"Edge Request CPU Duration\",\n percentage: 23.91,\n value: \"$4.65\",\n },\n {\n name: \"Fast Origin Transfer\",\n percentage: 38.75,\n value: \"$3.85\",\n },\n {\n name: \"ISR Reads\",\n percentage: 71.24,\n value: \"$2.86\",\n },\n {\n name: \"Function Invocations\",\n percentage: 15.83,\n value: \"$0.60\",\n },\n {\n name: \"ISR Writes\",\n percentage: 26.23,\n value: \"524.52K / 2M\",\n },\n {\n name: \"Function Duration\",\n percentage: 5.11,\n value: \"5.11 GB Hrs / 1K GB Hrs\",\n },\n]\n\nfunction UsageCard() {\n return (\n \n \n \n \n 5 days remaining in cycle\n \n \n \n \n {items.map((item) => (\n \n \n \n \n \n \n {item.name}\n \n \n \n {item.value}\n \n \n \n \n ))}\n \n \n \n \n )\n}\n\nfunction AnomalyAlert() {\n return (\n \n \n \n \n \n Get alerted for anomalies\n \n Automatically monitor your projects for anomalies and get\n notified.\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst environments = [\n \"All Environments\",\n \"Production\",\n \"Preview\",\n \"Development\",\n \"Staging\",\n \"Test\",\n \"Other\",\n]\n\nconst statuses = [\n { name: \"Ready\", color: \"oklch(0.72 0.19 150)\" },\n { name: \"Error\", color: \"oklch(0.64 0.21 25)\" },\n { name: \"Building\", color: \"oklch(0.77 0.16 70)\" },\n { name: \"Queued\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Provisioning\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Canceled\", color: \"oklch(0.72 0.00 0)\" },\n]\n\nfunction DeploymentFilter() {\n const [selectedEnvironment, setSelectedEnvironment] = React.useState(\n environments[0]\n )\n const [selectedStatuses, setSelectedStatuses] = React.useState>(\n new Set(statuses.slice(0, 5).map((s) => s.name))\n )\n const [dateRange, setDateRange] = React.useState()\n\n const toggleStatus = (statusName: string) => {\n setSelectedStatuses((prev) => {\n const next = new Set(prev)\n if (next.has(statusName)) {\n next.delete(statusName)\n } else {\n next.add(statusName)\n }\n return next\n })\n }\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {environments.map((environment) => (\n setSelectedEnvironment(environment)}\n data-active={selectedEnvironment === environment}\n >\n {environment}\n \n \n ))}\n \n \n \n \n \n \n \n {statuses.map((status) => {\n const isSelected = selectedStatuses.has(status.name)\n return (\n toggleStatus(status.name)}\n data-active={isSelected}\n style={\n {\n \"--color\": status.color,\n } as React.CSSProperties\n }\n >\n
\n
\n {status.name}\n
\n \n \n )\n })}\n \n \n
\n \n )\n}\n\nconst billingItems = [\n {\n month: \"November 2025\",\n invoiceDate: new Date(2025, 10, 5),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"October 2025\",\n invoiceDate: new Date(2025, 9, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"September 2025\",\n invoiceDate: new Date(2025, 8, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n]\n\nfunction BillingList() {\n return (\n \n \n {billingItems.map((item, index) => (\n \n \n \n \n {item.month}\n \n {item.status}\n \n \n \n Infrastructure usage & Vercel platform\n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n \n \n \n \n View invoice\n Download PDF\n \n Contact support\n \n \n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n {index !== billingItems.length - 1 && (\n \n )}\n \n ))}\n \n \n )\n}\n\nfunction CircularGauge({ percentage }: { percentage: number }) {\n const normalizedPercentage = Math.min(Math.max(percentage, 0), 100)\n const circumference = 2 * Math.PI * 42.5\n const strokePercent = (normalizedPercentage / 100) * circumference\n\n return (\n \n \n \n \n )\n}\n\nconst agentFeatures = [\n {\n id: \"code-reviews\",\n content: (\n <>\n Code reviews with full codebase context to catch{\" \"}\n hard-to-find bugs. bugs.\n \n ),\n },\n {\n id: \"code-suggestions\",\n content: (\n <>\n Code suggestions validated in sandboxes before you\n merge.\n \n ),\n },\n {\n id: \"root-cause\",\n content: (\n <>\n Root-cause analysis for production issues with\n deployment context.{\" \"}\n \n Requires Observability Plus\n \n \n ),\n },\n]\n\nfunction ActivateAgentDialog() {\n return (\n \n \n \n \n \n \n \n Ship faster & safer with Vercel Agent\n \n Your use is subject to Vercel's{\" \"}\n Public Beta Agreement and{\" \"}\n AI Product Terms.\n \n \n
\n \n {agentFeatures.map((feature) => (\n \n \n \n \n \n \n {feature.content}\n \n \n \n ))}\n \n \n \n \n Pro teams get $100 in Vercel Agent trial credit for 2 weeks.\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ObservabilityCard() {\n return (\n \n \n
\n \n \n Observability Plus is replacing Monitoring\n \n Switch to the improved way to explore your data, with natural\n language. Monitoring will no longer be available on the Pro plan in\n November, 2025\n \n \n \n \n \n Warning\n \n \n \n \n )\n}\n\nfunction FeedbackForm() {\n return (\n \n \n \n
\n \n \n Topic\n \n \n Select a topic\n \n AI\n \n Accounts and Access Controls\n \n \n Billing\n \n \n CDN (Firewall, Caching)\n \n \n CI/CD (Builds, Deployments, Environment Variables)\n \n \n Dashboard Interface (Navigation, UI Issues)\n \n \n Domains\n \n \n Frameworks\n \n \n Marketplace and Integrations\n \n \n Observability (Observability, Logs, Monitoring)\n \n \n Storage\n \n \n \n \n Feedback\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nconst chartData = [\n { month: \"January\", visitors: 186 },\n { month: \"February\", visitors: 305 },\n { month: \"March\", visitors: 237 },\n { month: \"April\", visitors: 73 },\n { month: \"May\", visitors: 209 },\n { month: \"June\", visitors: 214 },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n color: \"var(--chart-1)\",\n },\n} satisfies ChartConfig\n\nfunction AnalyticsCard() {\n return (\n \n \n \n Analytics\n \n 418.2K Visitors +10%\n \n \n \n \n \n \n \n }\n defaultIndex={2}\n />\n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { type DateRange } from \"react-day-picker\"\nimport { Area, AreaChart } from \"recharts\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport { Alert, AlertDescription } from \"@/registry/bases/radix/ui/alert\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport { Calendar } from \"@/registry/bases/radix/ui/calendar\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n type ChartConfig,\n} from \"@/registry/bases/radix/ui/chart\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/registry/bases/radix/ui/dialog\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport { Field, FieldGroup, FieldLabel } from \"@/registry/bases/radix/ui/field\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport {\n NativeSelect,\n NativeSelectOption,\n} from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function VercelBlock() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst items = [\n {\n name: \"Edge Requests\",\n value: \"$1.83K\",\n percentage: 67.34,\n },\n {\n name: \"Fast Data Transfer\",\n percentage: 52.18,\n value: \"$952.51\",\n },\n {\n name: \"Monitoring data points\",\n percentage: 89.42,\n value: \"$901.20\",\n },\n {\n name: \"Web Analytics Events\",\n percentage: 45.67,\n value: \"$603.71\",\n },\n {\n name: \"Edge Request CPU Duration\",\n percentage: 23.91,\n value: \"$4.65\",\n },\n {\n name: \"Fast Origin Transfer\",\n percentage: 38.75,\n value: \"$3.85\",\n },\n {\n name: \"ISR Reads\",\n percentage: 71.24,\n value: \"$2.86\",\n },\n {\n name: \"Function Invocations\",\n percentage: 15.83,\n value: \"$0.60\",\n },\n {\n name: \"ISR Writes\",\n percentage: 26.23,\n value: \"524.52K / 2M\",\n },\n {\n name: \"Function Duration\",\n percentage: 5.11,\n value: \"5.11 GB Hrs / 1K GB Hrs\",\n },\n]\n\nfunction UsageCard() {\n return (\n \n \n \n \n 5 days remaining in cycle\n \n \n \n \n {items.map((item) => (\n \n \n \n \n \n \n {item.name}\n \n \n \n {item.value}\n \n \n \n \n ))}\n \n \n \n \n )\n}\n\nfunction AnomalyAlert() {\n return (\n \n \n \n \n \n Get alerted for anomalies\n \n Automatically monitor your projects for anomalies and get\n notified.\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst environments = [\n \"All Environments\",\n \"Production\",\n \"Preview\",\n \"Development\",\n \"Staging\",\n \"Test\",\n \"Other\",\n]\n\nconst statuses = [\n { name: \"Ready\", color: \"oklch(0.72 0.19 150)\" },\n { name: \"Error\", color: \"oklch(0.64 0.21 25)\" },\n { name: \"Building\", color: \"oklch(0.77 0.16 70)\" },\n { name: \"Queued\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Provisioning\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Canceled\", color: \"oklch(0.72 0.00 0)\" },\n]\n\nfunction DeploymentFilter() {\n const [selectedEnvironment, setSelectedEnvironment] = React.useState(\n environments[0]\n )\n const [selectedStatuses, setSelectedStatuses] = React.useState>(\n new Set(statuses.slice(0, 5).map((s) => s.name))\n )\n const [dateRange, setDateRange] = React.useState()\n\n const toggleStatus = (statusName: string) => {\n setSelectedStatuses((prev) => {\n const next = new Set(prev)\n if (next.has(statusName)) {\n next.delete(statusName)\n } else {\n next.add(statusName)\n }\n return next\n })\n }\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {environments.map((environment) => (\n setSelectedEnvironment(environment)}\n data-active={selectedEnvironment === environment}\n >\n {environment}\n \n \n ))}\n \n \n \n \n \n \n \n {statuses.map((status) => {\n const isSelected = selectedStatuses.has(status.name)\n return (\n toggleStatus(status.name)}\n data-active={isSelected}\n style={\n {\n \"--color\": status.color,\n } as React.CSSProperties\n }\n >\n
\n
\n {status.name}\n
\n \n \n )\n })}\n \n \n
\n \n )\n}\n\nconst billingItems = [\n {\n month: \"November 2025\",\n invoiceDate: new Date(2025, 10, 5),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"October 2025\",\n invoiceDate: new Date(2025, 9, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"September 2025\",\n invoiceDate: new Date(2025, 8, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n]\n\nfunction BillingList() {\n return (\n \n \n {billingItems.map((item, index) => (\n \n \n \n \n {item.month}\n \n {item.status}\n \n \n \n Infrastructure usage & Vercel platform\n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n \n \n \n \n View invoice\n Download PDF\n \n Contact support\n \n \n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n {index !== billingItems.length - 1 && (\n \n )}\n \n ))}\n \n \n )\n}\n\nfunction CircularGauge({ percentage }: { percentage: number }) {\n const normalizedPercentage = Math.min(Math.max(percentage, 0), 100)\n const circumference = 2 * Math.PI * 42.5\n const strokePercent = (normalizedPercentage / 100) * circumference\n\n return (\n \n \n \n \n )\n}\n\nconst agentFeatures = [\n {\n id: \"code-reviews\",\n content: (\n <>\n Code reviews with full codebase context to catch{\" \"}\n hard-to-find bugs. bugs.\n \n ),\n },\n {\n id: \"code-suggestions\",\n content: (\n <>\n Code suggestions validated in sandboxes before you\n merge.\n \n ),\n },\n {\n id: \"root-cause\",\n content: (\n <>\n Root-cause analysis for production issues with\n deployment context.{\" \"}\n \n Requires Observability Plus\n \n \n ),\n },\n]\n\nfunction ActivateAgentDialog() {\n return (\n \n \n \n \n \n \n \n Ship faster & safer with Vercel Agent\n \n Your use is subject to Vercel's{\" \"}\n Public Beta Agreement and{\" \"}\n AI Product Terms.\n \n \n
\n \n {agentFeatures.map((feature) => (\n \n \n \n \n \n \n {feature.content}\n \n \n \n ))}\n \n \n \n \n Pro teams get $100 in Vercel Agent trial credit for 2 weeks.\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ObservabilityCard() {\n return (\n \n \n
\n \n \n Observability Plus is replacing Monitoring\n \n Switch to the improved way to explore your data, with natural\n language. Monitoring will no longer be available on the Pro plan in\n November, 2025\n \n \n \n \n \n Warning\n \n \n \n \n )\n}\n\nfunction FeedbackForm() {\n return (\n \n \n \n
\n \n \n Topic\n \n \n Select a topic\n \n AI\n \n Accounts and Access Controls\n \n \n Billing\n \n \n CDN (Firewall, Caching)\n \n \n CI/CD (Builds, Deployments, Environment Variables)\n \n \n Dashboard Interface (Navigation, UI Issues)\n \n \n Domains\n \n \n Frameworks\n \n \n Marketplace and Integrations\n \n \n Observability (Observability, Logs, Monitoring)\n \n \n Storage\n \n \n \n \n Feedback\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nconst chartData = [\n { month: \"January\", visitors: 186 },\n { month: \"February\", visitors: 305 },\n { month: \"March\", visitors: 237 },\n { month: \"April\", visitors: 73 },\n { month: \"May\", visitors: 209 },\n { month: \"June\", visitors: 214 },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n color: \"var(--chart-1)\",\n },\n} satisfies ChartConfig\n\nfunction AnalyticsCard() {\n return (\n \n \n \n Analytics\n \n 418.2K Visitors +10%\n \n \n \n \n \n \n \n }\n defaultIndex={2}\n />\n \n \n \n \n \n )\n}\n", "type": "registry:block" } ], diff --git a/apps/v4/public/r/styles/radix-nova/calendar.json b/apps/v4/public/r/styles/radix-nova/calendar.json index 0ab7554034..532d29c348 100644 --- a/apps/v4/public/r/styles/radix-nova/calendar.json +++ b/apps/v4/public/r/styles/radix-nova/calendar.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/radix-nova/ui/calendar.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/radix/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/radix/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted elative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted-200 after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/radix/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/radix/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted-200 after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", "type": "registry:ui" } ], diff --git a/apps/v4/public/r/styles/radix-nova/github.json b/apps/v4/public/r/styles/radix-nova/github.json index 9bc08993e1..8fcc80cd0f 100644 --- a/apps/v4/public/r/styles/radix-nova/github.json +++ b/apps/v4/public/r/styles/radix-nova/github.json @@ -30,7 +30,7 @@ "files": [ { "path": "registry/radix-nova/blocks/github.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxItem,\n ComboboxList,\n ComboboxValue,\n useComboboxAnchor,\n} from \"@/registry/bases/base/ui/combobox\"\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/bases/radix/ui/avatar\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport { Checkbox } from \"@/registry/bases/radix/ui/checkbox\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/bases/radix/ui/command\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/bases/radix/ui/drawer\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from \"@/registry/bases/radix/ui/field\"\nimport { Input } from \"@/registry/bases/radix/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupTextarea,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport { Kbd } from \"@/registry/bases/radix/ui/kbd\"\nimport { NativeSelect } from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Separator } from \"@/registry/bases/radix/ui/separator\"\nimport { Spinner } from \"@/registry/bases/radix/ui/spinner\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/registry/bases/radix/ui/tabs\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/radix/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function GithubBlock() {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction CodespacesCard() {\n const [isCreatingCodespace, setIsCreatingCodespace] = React.useState(false)\n\n return (\n \n \n \n \n \n Codespaces\n Local\n \n \n \n \n Codespaces\n \n Your workspaces in the cloud\n \n \n \n \n \n \n \n \n Create a codespace on main\n \n \n \n \n \n \n \n \n \n \n Codespace repository configuration\n \n \n e.preventDefault()}\n className=\"w-56\"\n >\n \n \n New with options...\n \n \n \n Configure dev container\n \n \n \n Set up prebuilds\n \n \n \n \n Manage codespaces\n \n \n \n Share deep link\n \n \n \n What are codespaces?\n \n \n \n \n \n \n \n \n \n \n \n No codespaces\n \n You don't have any codespaces with this repository\n checked out\n \n \n \n {\n setIsCreatingCodespace(true)\n setTimeout(() => {\n setIsCreatingCodespace(false)\n }, 2000)\n }}\n disabled={isCreatingCodespace}\n >\n {isCreatingCodespace ? (\n \n ) : (\n \"\"\n )}\n Create Codespace\n \n \n Learn more about codespaces\n \n \n \n \n
\n Codespace usage for this repository is paid for by{\" \"}\n shadcn.\n
\n
\n \n \n \n \n \n Clone\n \n \n \n \n \n \n \n \n Which remote URL should I use?\n \n \n \n \n \n \n HTTPS\n SSH\n GitHub CLI\n \n
\n \n \n \n HTTPS URL\n \n \n \n \n \n \n \n \n \n \n Clone using the web URL.\n \n \n \n \n \n \n SSH URL\n \n \n \n \n \n \n \n \n \n \n Use a password-protected SSH key.\n \n \n \n \n \n \n CLI Command\n \n \n \n \n \n \n \n \n \n \n Work fast with our official CLI.{\" \"}\n Learn more\n \n \n \n
\n
\n \n
\n \n \n Open with GitHub Desktop\n \n \n \n Download ZIP\n \n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction RepositoryToolbar() {\n const [selectedBranch, setSelectedBranch] = React.useState(\"main\")\n return (\n \n
\n \n \n \n \n \n \n \n \n t\n \n \n \n \n \n \n \n \n \n Create new file\n \n \n \n Upload files\n \n \n \n \n \n \n \n \n \n \n New Agent Task\n \n e.preventDefault()}\n >\n \n New Agent Task\n \n \n \n \n \n \n \n \n \n \n \n \n Select a branch\n \n e.preventDefault()}\n >\n \n \n Select a Branch\n \n \n \n No branches found\n \n \n {[\n \"main\",\n \"develop\",\n \"feature/123\",\n \"feature/user-authentication\",\n \"feature/dashboard-redesign\",\n \"bugfix/login-error\",\n \"hotfix/security-patch\",\n \"release/v2.0.0\",\n \"feature/api-integration\",\n \"bugfix/memory-leak\",\n \"feature/dark-mode\",\n \"feature/responsive-design\",\n \"bugfix/typo-fix\",\n \"feature/search-functionality\",\n \"release/v1.9.0\",\n \"feature/notifications\",\n \"bugfix/cache-issue\",\n \"feature/payment-gateway\",\n \"hotfix/critical-bug\",\n \"feature/admin-panel\",\n \"bugfix/validation-error\",\n \"feature/analytics\",\n \"release/v2.1.0\",\n ].map((branch) => (\n setSelectedBranch(branch)}\n data-checked={selectedBranch === branch}\n >\n {branch}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Select Agent\n \n \n \n \n \n This repository has no custom agents\n \n \n Custom agents are reusable instructions and tools in\n your repository.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Start Task \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction Navbar() {\n return (\n \n
\n \n \n \n \n \n \n Menu\n \n \n \n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n shadcn\n \n \n shadcn@example.com\n \n \n \n \n \n \n \n \n Set status\n \n \n \n Single sign-on\n \n \n \n \n \n \n Profile\n \n \n \n Repositories\n \n \n \n Stars\n \n \n \n Gists\n \n \n \n Organizations\n \n \n \n Enterprises\n \n \n \n Sponsors\n \n \n \n \n \n \n Settings\n \n \n \n Copilot settings\n \n \n \n Feature preview\n \n \n \n Appearance\n \n \n \n Accessibility\n \n \n \n Upgrade\n \n \n \n \n \n Sign out\n \n \n \n
\n
\n )\n}\n\nconst usernames = [\n \"shadcn\",\n \"vercel\",\n \"nextjs\",\n \"tailwindlabs\",\n \"typescript-lang\",\n \"eslint\",\n \"prettier\",\n \"babel\",\n \"webpack\",\n \"rollup\",\n \"parcel\",\n \"vite\",\n \"react\",\n \"vue\",\n \"angular\",\n \"solid\",\n]\n\nfunction Contributors() {\n return (\n \n \n \n \n Contributors 312\n \n \n \n
\n {usernames.map((username) => (\n \n \n {username.charAt(0)}\n \n ))}\n
\n
\n \n \n + 810 contributors\n \n \n
\n
\n )\n}\n\nfunction Profile() {\n return (\n \n \n \n Profile\n Manage your profile information.\n \n \n
\n \n \n Name\n \n \n Your name may appear around GitHub where you contribute or are\n mentioned. You can remove it at any time.\n \n \n \n Public Email\n \n \n \n \n \n You can manage verified email addresses in your{\" \"}\n email settings.\n \n \n \n Bio\n \n \n You can @mention other users and organizations to\n link to them.\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nfunction ContributionsActivity() {\n return (\n \n \n \n Contributions & Activity\n \n Manage your contributions and activity visibility.\n \n \n \n
\n \n
\n \n Contributions & activity\n \n \n \n \n \n \n Make profile private and hide activity\n \n \n Enabling this will hide your contributions and activity\n from your GitHub profile and from social features like\n followers, stars, feeds, leaderboards and releases.\n \n \n \n \n \n \n \n Include private contributions on my profile\n \n \n Your contribution graph, achievements, and activity\n overview will show your private contributions without\n revealing any repository or organization information.{\" \"}\n Read more.\n \n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n )\n}\n\nconst users = [\n \"shadcn\",\n \"maxleiter\",\n \"evilrabbit\",\n \"pranathip\",\n \"jorgezreik\",\n \"shuding\",\n \"rauchg\",\n]\n\nfunction AssignIssue() {\n const anchor = useComboboxAnchor()\n\n return (\n \n \n \n Assign Issue\n \n Select users to assign to this issue.\n \n \n \n \n \n \n Add user\n \n \n \n \n \n \n \n {(values) => (\n \n {values.map((username: string) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n ))}\n 0 ? undefined : \"Select a item...\"\n }\n />\n \n )}\n \n \n \n No users found.\n \n {(username) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n )}\n \n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxItem,\n ComboboxList,\n ComboboxValue,\n useComboboxAnchor,\n} from \"@/registry/bases/base/ui/combobox\"\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/bases/radix/ui/avatar\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport { Checkbox } from \"@/registry/bases/radix/ui/checkbox\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/bases/radix/ui/command\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/bases/radix/ui/drawer\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from \"@/registry/bases/radix/ui/field\"\nimport { Input } from \"@/registry/bases/radix/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupTextarea,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport { Kbd } from \"@/registry/bases/radix/ui/kbd\"\nimport { NativeSelect } from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Separator } from \"@/registry/bases/radix/ui/separator\"\nimport { Spinner } from \"@/registry/bases/radix/ui/spinner\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/registry/bases/radix/ui/tabs\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/radix/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function GithubBlock() {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction CodespacesCard() {\n const [isCreatingCodespace, setIsCreatingCodespace] = React.useState(false)\n\n return (\n \n \n \n \n \n Codespaces\n Local\n \n \n \n \n Codespaces\n \n Your workspaces in the cloud\n \n \n \n \n \n \n \n \n Create a codespace on main\n \n \n \n \n \n \n \n \n \n \n Codespace repository configuration\n \n \n e.preventDefault()}\n className=\"w-56\"\n >\n \n \n New with options...\n \n \n \n Configure dev container\n \n \n \n Set up prebuilds\n \n \n \n \n Manage codespaces\n \n \n \n Share deep link\n \n \n \n What are codespaces?\n \n \n \n \n \n \n \n \n \n \n \n No codespaces\n \n You don't have any codespaces with this repository\n checked out\n \n \n \n {\n setIsCreatingCodespace(true)\n setTimeout(() => {\n setIsCreatingCodespace(false)\n }, 2000)\n }}\n disabled={isCreatingCodespace}\n >\n {isCreatingCodespace ? (\n \n ) : (\n \"\"\n )}\n Create Codespace\n \n \n Learn more about codespaces\n \n \n \n \n
\n Codespace usage for this repository is paid for by{\" \"}\n shadcn.\n
\n
\n \n \n \n \n \n Clone\n \n \n \n \n \n \n \n \n Which remote URL should I use?\n \n \n \n \n \n \n HTTPS\n SSH\n GitHub CLI\n \n
\n \n \n \n HTTPS URL\n \n \n \n \n \n \n \n \n \n \n Clone using the web URL.\n \n \n \n \n \n \n SSH URL\n \n \n \n \n \n \n \n \n \n \n Use a password-protected SSH key.\n \n \n \n \n \n \n CLI Command\n \n \n \n \n \n \n \n \n \n \n Work fast with our official CLI.{\" \"}\n Learn more\n \n \n \n
\n
\n \n
\n \n \n Open with GitHub Desktop\n \n \n \n Download ZIP\n \n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction RepositoryToolbar() {\n const [selectedBranch, setSelectedBranch] = React.useState(\"main\")\n return (\n \n
\n \n \n \n \n \n \n \n \n t\n \n \n \n \n \n \n \n \n \n Create new file\n \n \n \n Upload files\n \n \n \n \n \n \n \n \n \n \n New Agent Task\n \n e.preventDefault()}\n >\n \n New Agent Task\n \n \n \n \n \n \n \n \n \n \n \n \n Select a branch\n \n e.preventDefault()}\n >\n \n \n Select a Branch\n \n \n \n No branches found\n \n \n {[\n \"main\",\n \"develop\",\n \"feature/123\",\n \"feature/user-authentication\",\n \"feature/dashboard-redesign\",\n \"bugfix/login-error\",\n \"hotfix/security-patch\",\n \"release/v2.0.0\",\n \"feature/api-integration\",\n \"bugfix/memory-leak\",\n \"feature/dark-mode\",\n \"feature/responsive-design\",\n \"bugfix/typo-fix\",\n \"feature/search-functionality\",\n \"release/v1.9.0\",\n \"feature/notifications\",\n \"bugfix/cache-issue\",\n \"feature/payment-gateway\",\n \"hotfix/critical-bug\",\n \"feature/admin-panel\",\n \"bugfix/validation-error\",\n \"feature/analytics\",\n \"release/v2.1.0\",\n ].map((branch) => (\n setSelectedBranch(branch)}\n data-checked={selectedBranch === branch}\n >\n {branch}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Select Agent\n \n \n \n \n \n This repository has no custom agents\n \n \n Custom agents are reusable instructions and tools in\n your repository.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Start Task \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction Navbar() {\n return (\n \n
\n \n \n \n \n \n \n Menu\n \n \n \n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n shadcn\n \n \n shadcn@example.com\n \n \n \n \n \n \n \n \n Set status\n \n \n \n Single sign-on\n \n \n \n \n \n \n Profile\n \n \n \n Repositories\n \n \n \n Stars\n \n \n \n Gists\n \n \n \n Organizations\n \n \n \n Enterprises\n \n \n \n Sponsors\n \n \n \n \n \n \n Settings\n \n \n \n Copilot settings\n \n \n \n Feature preview\n \n \n \n Appearance\n \n \n \n Accessibility\n \n \n \n Upgrade\n \n \n \n \n \n Sign out\n \n \n \n
\n
\n )\n}\n\nconst usernames = [\n \"shadcn\",\n \"vercel\",\n \"nextjs\",\n \"tailwindlabs\",\n \"typescript-lang\",\n \"eslint\",\n \"prettier\",\n \"babel\",\n \"webpack\",\n \"rollup\",\n \"parcel\",\n \"vite\",\n \"react\",\n \"vue\",\n \"angular\",\n \"solid\",\n]\n\nfunction Contributors() {\n return (\n \n \n \n \n Contributors 312\n \n \n \n
\n {usernames.map((username) => (\n \n \n {username.charAt(0)}\n \n ))}\n
\n
\n \n \n + 810 contributors\n \n \n
\n
\n )\n}\n\nfunction Profile() {\n return (\n \n \n \n Profile\n Manage your profile information.\n \n \n
\n \n \n Name\n \n \n Your name may appear around GitHub where you contribute or are\n mentioned. You can remove it at any time.\n \n \n \n Public Email\n \n \n \n \n \n You can manage verified email addresses in your{\" \"}\n email settings.\n \n \n \n Bio\n \n \n You can @mention other users and organizations to\n link to them.\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nfunction ContributionsActivity() {\n return (\n \n \n \n Contributions & Activity\n \n Manage your contributions and activity visibility.\n \n \n \n
\n \n
\n \n Contributions & activity\n \n \n \n \n \n \n Make profile private and hide activity\n \n \n Enabling this will hide your contributions and activity\n from your GitHub profile and from social features like\n followers, stars, feeds, leaderboards and releases.\n \n \n \n \n \n \n \n Include private contributions on my profile\n \n \n Your contribution graph, achievements, and activity\n overview will show your private contributions without\n revealing any repository or organization information.{\" \"}\n Read more.\n \n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n )\n}\n\nconst users = [\n \"shadcn\",\n \"maxleiter\",\n \"evilrabbit\",\n \"pranathip\",\n \"jorgezreik\",\n \"shuding\",\n \"rauchg\",\n]\n\nfunction AssignIssue() {\n const anchor = useComboboxAnchor()\n\n return (\n \n \n \n Assign Issue\n \n Select users to assign to this issue.\n \n \n \n \n \n \n Add user\n \n \n \n \n \n \n \n {(values) => (\n \n {values.map((username: string) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n ))}\n 0 ? undefined : \"Select a item...\"\n }\n />\n \n )}\n \n \n \n No users found.\n \n {(username) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n )}\n \n \n \n \n \n \n )\n}\n", "type": "registry:block" } ], diff --git a/apps/v4/public/r/styles/radix-nova/vercel.json b/apps/v4/public/r/styles/radix-nova/vercel.json index a61ec8c77e..50e0168709 100644 --- a/apps/v4/public/r/styles/radix-nova/vercel.json +++ b/apps/v4/public/r/styles/radix-nova/vercel.json @@ -23,7 +23,7 @@ "files": [ { "path": "registry/radix-nova/blocks/vercel.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { type DateRange } from \"react-day-picker\"\nimport { Area, AreaChart } from \"recharts\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport { Alert, AlertDescription } from \"@/registry/bases/radix/ui/alert\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport { Calendar } from \"@/registry/bases/radix/ui/calendar\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n type ChartConfig,\n} from \"@/registry/bases/radix/ui/chart\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/registry/bases/radix/ui/dialog\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport { Field, FieldGroup, FieldLabel } from \"@/registry/bases/radix/ui/field\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport {\n NativeSelect,\n NativeSelectOption,\n} from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function VercelBlock() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst items = [\n {\n name: \"Edge Requests\",\n value: \"$1.83K\",\n percentage: 67.34,\n },\n {\n name: \"Fast Data Transfer\",\n percentage: 52.18,\n value: \"$952.51\",\n },\n {\n name: \"Monitoring data points\",\n percentage: 89.42,\n value: \"$901.20\",\n },\n {\n name: \"Web Analytics Events\",\n percentage: 45.67,\n value: \"$603.71\",\n },\n {\n name: \"Edge Request CPU Duration\",\n percentage: 23.91,\n value: \"$4.65\",\n },\n {\n name: \"Fast Origin Transfer\",\n percentage: 38.75,\n value: \"$3.85\",\n },\n {\n name: \"ISR Reads\",\n percentage: 71.24,\n value: \"$2.86\",\n },\n {\n name: \"Function Invocations\",\n percentage: 15.83,\n value: \"$0.60\",\n },\n {\n name: \"ISR Writes\",\n percentage: 26.23,\n value: \"524.52K / 2M\",\n },\n {\n name: \"Function Duration\",\n percentage: 5.11,\n value: \"5.11 GB Hrs / 1K GB Hrs\",\n },\n]\n\nfunction UsageCard() {\n return (\n \n \n \n \n 5 days remaining in cycle\n \n \n \n \n {items.map((item) => (\n \n \n \n \n \n \n {item.name}\n \n \n \n {item.value}\n \n \n \n \n ))}\n \n \n \n \n )\n}\n\nfunction AnomalyAlert() {\n return (\n \n \n \n \n \n Get alerted for anomalies\n \n Automatically monitor your projects for anomalies and get\n notified.\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst environments = [\n \"All Environments\",\n \"Production\",\n \"Preview\",\n \"Development\",\n \"Staging\",\n \"Test\",\n \"Other\",\n]\n\nconst statuses = [\n { name: \"Ready\", color: \"oklch(0.72 0.19 150)\" },\n { name: \"Error\", color: \"oklch(0.64 0.21 25)\" },\n { name: \"Building\", color: \"oklch(0.77 0.16 70)\" },\n { name: \"Queued\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Provisioning\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Canceled\", color: \"oklch(0.72 0.00 0)\" },\n]\n\nfunction DeploymentFilter() {\n const [selectedEnvironment, setSelectedEnvironment] = React.useState(\n environments[0]\n )\n const [selectedStatuses, setSelectedStatuses] = React.useState>(\n new Set(statuses.slice(0, 5).map((s) => s.name))\n )\n const [dateRange, setDateRange] = React.useState()\n\n const toggleStatus = (statusName: string) => {\n setSelectedStatuses((prev) => {\n const next = new Set(prev)\n if (next.has(statusName)) {\n next.delete(statusName)\n } else {\n next.add(statusName)\n }\n return next\n })\n }\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {environments.map((environment) => (\n setSelectedEnvironment(environment)}\n data-active={selectedEnvironment === environment}\n >\n {environment}\n \n \n ))}\n \n \n \n \n \n \n \n {statuses.map((status) => {\n const isSelected = selectedStatuses.has(status.name)\n return (\n toggleStatus(status.name)}\n data-active={isSelected}\n style={\n {\n \"--color\": status.color,\n } as React.CSSProperties\n }\n >\n
\n
\n {status.name}\n
\n \n \n )\n })}\n \n \n
\n \n )\n}\n\nconst billingItems = [\n {\n month: \"November 2025\",\n invoiceDate: new Date(2025, 10, 5),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"October 2025\",\n invoiceDate: new Date(2025, 9, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"September 2025\",\n invoiceDate: new Date(2025, 8, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n]\n\nfunction BillingList() {\n return (\n \n \n {billingItems.map((item, index) => (\n \n \n \n \n {item.month}\n \n {item.status}\n \n \n \n Infrastructure usage & Vercel platform\n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n \n \n \n \n View invoice\n Download PDF\n \n Contact support\n \n \n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n {index !== billingItems.length - 1 && (\n \n )}\n \n ))}\n \n \n )\n}\n\nfunction CircularGauge({ percentage }: { percentage: number }) {\n const normalizedPercentage = Math.min(Math.max(percentage, 0), 100)\n const circumference = 2 * Math.PI * 42.5\n const strokePercent = (normalizedPercentage / 100) * circumference\n\n return (\n \n \n \n \n )\n}\n\nconst agentFeatures = [\n {\n id: \"code-reviews\",\n content: (\n <>\n Code reviews with full codebase context to catch{\" \"}\n hard-to-find bugs. bugs.\n \n ),\n },\n {\n id: \"code-suggestions\",\n content: (\n <>\n Code suggestions validated in sandboxes before you\n merge.\n \n ),\n },\n {\n id: \"root-cause\",\n content: (\n <>\n Root-cause analysis for production issues with\n deployment context.{\" \"}\n \n Requires Observability Plus\n \n \n ),\n },\n]\n\nfunction ActivateAgentDialog() {\n return (\n \n \n \n \n \n \n \n Ship faster & safer with Vercel Agent\n \n Your use is subject to Vercel's{\" \"}\n Public Beta Agreement and{\" \"}\n AI Product Terms.\n \n \n
\n \n {agentFeatures.map((feature) => (\n \n \n \n \n \n \n {feature.content}\n \n \n \n ))}\n \n \n \n \n Pro teams get $100 in Vercel Agent trial credit for 2 weeks.\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ObservabilityCard() {\n return (\n \n \n
\n \n \n Observability Plus is replacing Monitoring\n \n Switch to the improved way to explore your data, with natural\n language. Monitoring will no longer be available on the Pro plan in\n November, 2025\n \n \n \n \n \n Warning\n \n \n \n \n )\n}\n\nfunction FeedbackForm() {\n return (\n \n \n \n
\n \n \n Topic\n \n \n Select a topic\n \n AI\n \n Accounts and Access Controls\n \n \n Billing\n \n \n CDN (Firewall, Caching)\n \n \n CI/CD (Builds, Deployments, Environment Variables)\n \n \n Dashboard Interface (Navigation, UI Issues)\n \n \n Domains\n \n \n Frameworks\n \n \n Marketplace and Integrations\n \n \n Observability (Observability, Logs, Monitoring)\n \n \n Storage\n \n \n \n \n Feedback\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nconst chartData = [\n { month: \"January\", visitors: 186 },\n { month: \"February\", visitors: 305 },\n { month: \"March\", visitors: 237 },\n { month: \"April\", visitors: 73 },\n { month: \"May\", visitors: 209 },\n { month: \"June\", visitors: 214 },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n color: \"var(--chart-1)\",\n },\n} satisfies ChartConfig\n\nfunction AnalyticsCard() {\n return (\n \n \n \n Analytics\n \n 418.2K Visitors +10%\n \n \n \n \n \n \n \n }\n defaultIndex={2}\n />\n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { type DateRange } from \"react-day-picker\"\nimport { Area, AreaChart } from \"recharts\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport { Alert, AlertDescription } from \"@/registry/bases/radix/ui/alert\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport { Calendar } from \"@/registry/bases/radix/ui/calendar\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n type ChartConfig,\n} from \"@/registry/bases/radix/ui/chart\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/registry/bases/radix/ui/dialog\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport { Field, FieldGroup, FieldLabel } from \"@/registry/bases/radix/ui/field\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport {\n NativeSelect,\n NativeSelectOption,\n} from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function VercelBlock() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst items = [\n {\n name: \"Edge Requests\",\n value: \"$1.83K\",\n percentage: 67.34,\n },\n {\n name: \"Fast Data Transfer\",\n percentage: 52.18,\n value: \"$952.51\",\n },\n {\n name: \"Monitoring data points\",\n percentage: 89.42,\n value: \"$901.20\",\n },\n {\n name: \"Web Analytics Events\",\n percentage: 45.67,\n value: \"$603.71\",\n },\n {\n name: \"Edge Request CPU Duration\",\n percentage: 23.91,\n value: \"$4.65\",\n },\n {\n name: \"Fast Origin Transfer\",\n percentage: 38.75,\n value: \"$3.85\",\n },\n {\n name: \"ISR Reads\",\n percentage: 71.24,\n value: \"$2.86\",\n },\n {\n name: \"Function Invocations\",\n percentage: 15.83,\n value: \"$0.60\",\n },\n {\n name: \"ISR Writes\",\n percentage: 26.23,\n value: \"524.52K / 2M\",\n },\n {\n name: \"Function Duration\",\n percentage: 5.11,\n value: \"5.11 GB Hrs / 1K GB Hrs\",\n },\n]\n\nfunction UsageCard() {\n return (\n \n \n \n \n 5 days remaining in cycle\n \n \n \n \n {items.map((item) => (\n \n \n \n \n \n \n {item.name}\n \n \n \n {item.value}\n \n \n \n \n ))}\n \n \n \n \n )\n}\n\nfunction AnomalyAlert() {\n return (\n \n \n \n \n \n Get alerted for anomalies\n \n Automatically monitor your projects for anomalies and get\n notified.\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst environments = [\n \"All Environments\",\n \"Production\",\n \"Preview\",\n \"Development\",\n \"Staging\",\n \"Test\",\n \"Other\",\n]\n\nconst statuses = [\n { name: \"Ready\", color: \"oklch(0.72 0.19 150)\" },\n { name: \"Error\", color: \"oklch(0.64 0.21 25)\" },\n { name: \"Building\", color: \"oklch(0.77 0.16 70)\" },\n { name: \"Queued\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Provisioning\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Canceled\", color: \"oklch(0.72 0.00 0)\" },\n]\n\nfunction DeploymentFilter() {\n const [selectedEnvironment, setSelectedEnvironment] = React.useState(\n environments[0]\n )\n const [selectedStatuses, setSelectedStatuses] = React.useState>(\n new Set(statuses.slice(0, 5).map((s) => s.name))\n )\n const [dateRange, setDateRange] = React.useState()\n\n const toggleStatus = (statusName: string) => {\n setSelectedStatuses((prev) => {\n const next = new Set(prev)\n if (next.has(statusName)) {\n next.delete(statusName)\n } else {\n next.add(statusName)\n }\n return next\n })\n }\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {environments.map((environment) => (\n setSelectedEnvironment(environment)}\n data-active={selectedEnvironment === environment}\n >\n {environment}\n \n \n ))}\n \n \n \n \n \n \n \n {statuses.map((status) => {\n const isSelected = selectedStatuses.has(status.name)\n return (\n toggleStatus(status.name)}\n data-active={isSelected}\n style={\n {\n \"--color\": status.color,\n } as React.CSSProperties\n }\n >\n
\n
\n {status.name}\n
\n \n \n )\n })}\n \n \n
\n \n )\n}\n\nconst billingItems = [\n {\n month: \"November 2025\",\n invoiceDate: new Date(2025, 10, 5),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"October 2025\",\n invoiceDate: new Date(2025, 9, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"September 2025\",\n invoiceDate: new Date(2025, 8, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n]\n\nfunction BillingList() {\n return (\n \n \n {billingItems.map((item, index) => (\n \n \n \n \n {item.month}\n \n {item.status}\n \n \n \n Infrastructure usage & Vercel platform\n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n \n \n \n \n View invoice\n Download PDF\n \n Contact support\n \n \n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n {index !== billingItems.length - 1 && (\n \n )}\n \n ))}\n \n \n )\n}\n\nfunction CircularGauge({ percentage }: { percentage: number }) {\n const normalizedPercentage = Math.min(Math.max(percentage, 0), 100)\n const circumference = 2 * Math.PI * 42.5\n const strokePercent = (normalizedPercentage / 100) * circumference\n\n return (\n \n \n \n \n )\n}\n\nconst agentFeatures = [\n {\n id: \"code-reviews\",\n content: (\n <>\n Code reviews with full codebase context to catch{\" \"}\n hard-to-find bugs. bugs.\n \n ),\n },\n {\n id: \"code-suggestions\",\n content: (\n <>\n Code suggestions validated in sandboxes before you\n merge.\n \n ),\n },\n {\n id: \"root-cause\",\n content: (\n <>\n Root-cause analysis for production issues with\n deployment context.{\" \"}\n \n Requires Observability Plus\n \n \n ),\n },\n]\n\nfunction ActivateAgentDialog() {\n return (\n \n \n \n \n \n \n \n Ship faster & safer with Vercel Agent\n \n Your use is subject to Vercel's{\" \"}\n Public Beta Agreement and{\" \"}\n AI Product Terms.\n \n \n
\n \n {agentFeatures.map((feature) => (\n \n \n \n \n \n \n {feature.content}\n \n \n \n ))}\n \n \n \n \n Pro teams get $100 in Vercel Agent trial credit for 2 weeks.\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ObservabilityCard() {\n return (\n \n \n
\n \n \n Observability Plus is replacing Monitoring\n \n Switch to the improved way to explore your data, with natural\n language. Monitoring will no longer be available on the Pro plan in\n November, 2025\n \n \n \n \n \n Warning\n \n \n \n \n )\n}\n\nfunction FeedbackForm() {\n return (\n \n \n \n
\n \n \n Topic\n \n \n Select a topic\n \n AI\n \n Accounts and Access Controls\n \n \n Billing\n \n \n CDN (Firewall, Caching)\n \n \n CI/CD (Builds, Deployments, Environment Variables)\n \n \n Dashboard Interface (Navigation, UI Issues)\n \n \n Domains\n \n \n Frameworks\n \n \n Marketplace and Integrations\n \n \n Observability (Observability, Logs, Monitoring)\n \n \n Storage\n \n \n \n \n Feedback\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nconst chartData = [\n { month: \"January\", visitors: 186 },\n { month: \"February\", visitors: 305 },\n { month: \"March\", visitors: 237 },\n { month: \"April\", visitors: 73 },\n { month: \"May\", visitors: 209 },\n { month: \"June\", visitors: 214 },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n color: \"var(--chart-1)\",\n },\n} satisfies ChartConfig\n\nfunction AnalyticsCard() {\n return (\n \n \n \n Analytics\n \n 418.2K Visitors +10%\n \n \n \n \n \n \n \n }\n defaultIndex={2}\n />\n \n \n \n \n \n )\n}\n", "type": "registry:block" } ], diff --git a/apps/v4/public/r/styles/radix-vega/calendar.json b/apps/v4/public/r/styles/radix-vega/calendar.json index fcfe05fe78..7e2d5c6321 100644 --- a/apps/v4/public/r/styles/radix-vega/calendar.json +++ b/apps/v4/public/r/styles/radix-vega/calendar.json @@ -11,7 +11,7 @@ "files": [ { "path": "registry/radix-vega/ui/calendar.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/radix/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/radix/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted elative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted-200 after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport {\n DayPicker,\n getDefaultClassNames,\n type DayButton,\n} from \"react-day-picker\"\n\nimport { cn } from \"@/registry/bases/radix/lib/utils\"\nimport { Button, buttonVariants } from \"@/registry/bases/radix/ui/button\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps & {\n buttonVariant?: React.ComponentProps[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative cn-calendar-dropdown-root rounded-(--cell-radius)\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"cn-calendar-caption-label rounded-(--cell-radius) flex items-center gap-1 text-sm [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-(--cell-radius) flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full rounded-(--cell-radius) h-full p-0 text-center [&:last-child[data-selected=true]_button]:rounded-r-(--cell-radius) group/day aspect-square select-none\",\n props.showWeekNumber\n ? \"[&:nth-child(2)[data-selected=true]_button]:rounded-l-(--cell-radius)\"\n : \"[&:first-child[data-selected=true]_button]:rounded-l-(--cell-radius)\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-(--cell-radius) bg-muted relative after:bg-muted after:absolute after:inset-y-0 after:w-4 after:right-0 -z-0 isolate\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\n \"rounded-r-(--cell-radius) bg-muted relative after:bg-muted-200 after:absolute after:inset-y-0 after:w-4 after:left-0 -z-0 isolate\",\n defaultClassNames.range_end\n ),\n today: cn(\n \"bg-muted text-foreground rounded-(--cell-radius) data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n \n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n \n )\n }\n\n if (orientation === \"right\") {\n return (\n \n )\n }\n\n return (\n \n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n \n
\n {children}\n
\n \n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n", "type": "registry:ui" } ], diff --git a/apps/v4/public/r/styles/radix-vega/github.json b/apps/v4/public/r/styles/radix-vega/github.json index de00d624a9..c94c2ef42e 100644 --- a/apps/v4/public/r/styles/radix-vega/github.json +++ b/apps/v4/public/r/styles/radix-vega/github.json @@ -30,7 +30,7 @@ "files": [ { "path": "registry/radix-vega/blocks/github.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxItem,\n ComboboxList,\n ComboboxValue,\n useComboboxAnchor,\n} from \"@/registry/bases/base/ui/combobox\"\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/bases/radix/ui/avatar\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport { Checkbox } from \"@/registry/bases/radix/ui/checkbox\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/bases/radix/ui/command\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/bases/radix/ui/drawer\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from \"@/registry/bases/radix/ui/field\"\nimport { Input } from \"@/registry/bases/radix/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupTextarea,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport { Kbd } from \"@/registry/bases/radix/ui/kbd\"\nimport { NativeSelect } from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Separator } from \"@/registry/bases/radix/ui/separator\"\nimport { Spinner } from \"@/registry/bases/radix/ui/spinner\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/registry/bases/radix/ui/tabs\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/radix/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function GithubBlock() {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction CodespacesCard() {\n const [isCreatingCodespace, setIsCreatingCodespace] = React.useState(false)\n\n return (\n \n \n \n \n \n Codespaces\n Local\n \n \n \n \n Codespaces\n \n Your workspaces in the cloud\n \n \n \n \n \n \n \n \n Create a codespace on main\n \n \n \n \n \n \n \n \n \n \n Codespace repository configuration\n \n \n e.preventDefault()}\n className=\"w-56\"\n >\n \n \n New with options...\n \n \n \n Configure dev container\n \n \n \n Set up prebuilds\n \n \n \n \n Manage codespaces\n \n \n \n Share deep link\n \n \n \n What are codespaces?\n \n \n \n \n \n \n \n \n \n \n \n No codespaces\n \n You don't have any codespaces with this repository\n checked out\n \n \n \n {\n setIsCreatingCodespace(true)\n setTimeout(() => {\n setIsCreatingCodespace(false)\n }, 2000)\n }}\n disabled={isCreatingCodespace}\n >\n {isCreatingCodespace ? (\n \n ) : (\n \"\"\n )}\n Create Codespace\n \n \n Learn more about codespaces\n \n \n \n \n
\n Codespace usage for this repository is paid for by{\" \"}\n shadcn.\n
\n
\n \n \n \n \n \n Clone\n \n \n \n \n \n \n \n \n Which remote URL should I use?\n \n \n \n \n \n \n HTTPS\n SSH\n GitHub CLI\n \n
\n \n \n \n HTTPS URL\n \n \n \n \n \n \n \n \n \n \n Clone using the web URL.\n \n \n \n \n \n \n SSH URL\n \n \n \n \n \n \n \n \n \n \n Use a password-protected SSH key.\n \n \n \n \n \n \n CLI Command\n \n \n \n \n \n \n \n \n \n \n Work fast with our official CLI.{\" \"}\n Learn more\n \n \n \n
\n
\n \n
\n \n \n Open with GitHub Desktop\n \n \n \n Download ZIP\n \n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction RepositoryToolbar() {\n const [selectedBranch, setSelectedBranch] = React.useState(\"main\")\n return (\n \n
\n \n \n \n \n \n \n \n \n t\n \n \n \n \n \n \n \n \n \n Create new file\n \n \n \n Upload files\n \n \n \n \n \n \n \n \n \n \n New Agent Task\n \n e.preventDefault()}\n >\n \n New Agent Task\n \n \n \n \n \n \n \n \n \n \n \n \n Select a branch\n \n e.preventDefault()}\n >\n \n \n Select a Branch\n \n \n \n No branches found\n \n \n {[\n \"main\",\n \"develop\",\n \"feature/123\",\n \"feature/user-authentication\",\n \"feature/dashboard-redesign\",\n \"bugfix/login-error\",\n \"hotfix/security-patch\",\n \"release/v2.0.0\",\n \"feature/api-integration\",\n \"bugfix/memory-leak\",\n \"feature/dark-mode\",\n \"feature/responsive-design\",\n \"bugfix/typo-fix\",\n \"feature/search-functionality\",\n \"release/v1.9.0\",\n \"feature/notifications\",\n \"bugfix/cache-issue\",\n \"feature/payment-gateway\",\n \"hotfix/critical-bug\",\n \"feature/admin-panel\",\n \"bugfix/validation-error\",\n \"feature/analytics\",\n \"release/v2.1.0\",\n ].map((branch) => (\n setSelectedBranch(branch)}\n data-checked={selectedBranch === branch}\n >\n {branch}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Select Agent\n \n \n \n \n \n This repository has no custom agents\n \n \n Custom agents are reusable instructions and tools in\n your repository.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Start Task \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction Navbar() {\n return (\n \n
\n \n \n \n \n \n \n Menu\n \n \n \n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n shadcn\n \n \n shadcn@example.com\n \n \n \n \n \n \n \n \n Set status\n \n \n \n Single sign-on\n \n \n \n \n \n \n Profile\n \n \n \n Repositories\n \n \n \n Stars\n \n \n \n Gists\n \n \n \n Organizations\n \n \n \n Enterprises\n \n \n \n Sponsors\n \n \n \n \n \n \n Settings\n \n \n \n Copilot settings\n \n \n \n Feature preview\n \n \n \n Appearance\n \n \n \n Accessibility\n \n \n \n Upgrade\n \n \n \n \n \n Sign out\n \n \n \n
\n
\n )\n}\n\nconst usernames = [\n \"shadcn\",\n \"vercel\",\n \"nextjs\",\n \"tailwindlabs\",\n \"typescript-lang\",\n \"eslint\",\n \"prettier\",\n \"babel\",\n \"webpack\",\n \"rollup\",\n \"parcel\",\n \"vite\",\n \"react\",\n \"vue\",\n \"angular\",\n \"solid\",\n]\n\nfunction Contributors() {\n return (\n \n \n \n \n Contributors 312\n \n \n \n
\n {usernames.map((username) => (\n \n \n {username.charAt(0)}\n \n ))}\n
\n
\n \n \n + 810 contributors\n \n \n
\n
\n )\n}\n\nfunction Profile() {\n return (\n \n \n \n Profile\n Manage your profile information.\n \n \n
\n \n \n Name\n \n \n Your name may appear around GitHub where you contribute or are\n mentioned. You can remove it at any time.\n \n \n \n Public Email\n \n \n \n \n \n You can manage verified email addresses in your{\" \"}\n email settings.\n \n \n \n Bio\n \n \n You can @mention other users and organizations to\n link to them.\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nfunction ContributionsActivity() {\n return (\n \n \n \n Contributions & Activity\n \n Manage your contributions and activity visibility.\n \n \n \n
\n \n
\n \n Contributions & activity\n \n \n \n \n \n \n Make profile private and hide activity\n \n \n Enabling this will hide your contributions and activity\n from your GitHub profile and from social features like\n followers, stars, feeds, leaderboards and releases.\n \n \n \n \n \n \n \n Include private contributions on my profile\n \n \n Your contribution graph, achievements, and activity\n overview will show your private contributions without\n revealing any repository or organization information.{\" \"}\n Read more.\n \n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n )\n}\n\nconst users = [\n \"shadcn\",\n \"maxleiter\",\n \"evilrabbit\",\n \"pranathip\",\n \"jorgezreik\",\n \"shuding\",\n \"rauchg\",\n]\n\nfunction AssignIssue() {\n const anchor = useComboboxAnchor()\n\n return (\n \n \n \n Assign Issue\n \n Select users to assign to this issue.\n \n \n \n \n \n \n Add user\n \n \n \n \n \n \n \n {(values) => (\n \n {values.map((username: string) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n ))}\n 0 ? undefined : \"Select a item...\"\n }\n />\n \n )}\n \n \n \n No users found.\n \n {(username) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n )}\n \n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Combobox,\n ComboboxChip,\n ComboboxChips,\n ComboboxChipsInput,\n ComboboxContent,\n ComboboxEmpty,\n ComboboxItem,\n ComboboxList,\n ComboboxValue,\n useComboboxAnchor,\n} from \"@/registry/bases/base/ui/combobox\"\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/bases/radix/ui/avatar\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport { Checkbox } from \"@/registry/bases/radix/ui/checkbox\"\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"@/registry/bases/radix/ui/command\"\nimport {\n Drawer,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerTitle,\n DrawerTrigger,\n} from \"@/registry/bases/radix/ui/drawer\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyMedia,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport {\n Field,\n FieldContent,\n FieldDescription,\n FieldGroup,\n FieldLabel,\n FieldLegend,\n FieldSet,\n} from \"@/registry/bases/radix/ui/field\"\nimport { Input } from \"@/registry/bases/radix/ui/input\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupButton,\n InputGroupInput,\n InputGroupTextarea,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport { Kbd } from \"@/registry/bases/radix/ui/kbd\"\nimport { NativeSelect } from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Separator } from \"@/registry/bases/radix/ui/separator\"\nimport { Spinner } from \"@/registry/bases/radix/ui/spinner\"\nimport {\n Tabs,\n TabsContent,\n TabsList,\n TabsTrigger,\n} from \"@/registry/bases/radix/ui/tabs\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport {\n Tooltip,\n TooltipContent,\n TooltipTrigger,\n} from \"@/registry/bases/radix/ui/tooltip\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function GithubBlock() {\n return (\n \n \n \n \n \n \n \n \n \n )\n}\n\nfunction CodespacesCard() {\n const [isCreatingCodespace, setIsCreatingCodespace] = React.useState(false)\n\n return (\n \n \n \n \n \n Codespaces\n Local\n \n \n \n \n Codespaces\n \n Your workspaces in the cloud\n \n \n \n \n \n \n \n \n Create a codespace on main\n \n \n \n \n \n \n \n \n \n \n Codespace repository configuration\n \n \n e.preventDefault()}\n className=\"w-56\"\n >\n \n \n New with options...\n \n \n \n Configure dev container\n \n \n \n Set up prebuilds\n \n \n \n \n Manage codespaces\n \n \n \n Share deep link\n \n \n \n What are codespaces?\n \n \n \n \n \n \n \n \n \n \n \n No codespaces\n \n You don't have any codespaces with this repository\n checked out\n \n \n \n {\n setIsCreatingCodespace(true)\n setTimeout(() => {\n setIsCreatingCodespace(false)\n }, 2000)\n }}\n disabled={isCreatingCodespace}\n >\n {isCreatingCodespace ? (\n \n ) : (\n \"\"\n )}\n Create Codespace\n \n \n Learn more about codespaces\n \n \n \n \n
\n Codespace usage for this repository is paid for by{\" \"}\n shadcn.\n
\n
\n \n \n \n \n \n Clone\n \n \n \n \n \n \n \n \n Which remote URL should I use?\n \n \n \n \n \n \n HTTPS\n SSH\n GitHub CLI\n \n
\n \n \n \n HTTPS URL\n \n \n \n \n \n \n \n \n \n \n Clone using the web URL.\n \n \n \n \n \n \n SSH URL\n \n \n \n \n \n \n \n \n \n \n Use a password-protected SSH key.\n \n \n \n \n \n \n CLI Command\n \n \n \n \n \n \n \n \n \n \n Work fast with our official CLI.{\" \"}\n Learn more\n \n \n \n
\n
\n \n
\n \n \n Open with GitHub Desktop\n \n \n \n Download ZIP\n \n
\n
\n
\n
\n
\n
\n )\n}\n\nfunction RepositoryToolbar() {\n const [selectedBranch, setSelectedBranch] = React.useState(\"main\")\n return (\n \n
\n \n \n \n \n \n \n \n \n t\n \n \n \n \n \n \n \n \n \n Create new file\n \n \n \n Upload files\n \n \n \n \n \n \n \n \n \n \n New Agent Task\n \n e.preventDefault()}\n >\n \n New Agent Task\n \n \n \n \n \n \n \n \n \n \n \n \n Select a branch\n \n e.preventDefault()}\n >\n \n \n Select a Branch\n \n \n \n No branches found\n \n \n {[\n \"main\",\n \"develop\",\n \"feature/123\",\n \"feature/user-authentication\",\n \"feature/dashboard-redesign\",\n \"bugfix/login-error\",\n \"hotfix/security-patch\",\n \"release/v2.0.0\",\n \"feature/api-integration\",\n \"bugfix/memory-leak\",\n \"feature/dark-mode\",\n \"feature/responsive-design\",\n \"bugfix/typo-fix\",\n \"feature/search-functionality\",\n \"release/v1.9.0\",\n \"feature/notifications\",\n \"bugfix/cache-issue\",\n \"feature/payment-gateway\",\n \"hotfix/critical-bug\",\n \"feature/admin-panel\",\n \"bugfix/validation-error\",\n \"feature/analytics\",\n \"release/v2.1.0\",\n ].map((branch) => (\n setSelectedBranch(branch)}\n data-checked={selectedBranch === branch}\n >\n {branch}\n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Select Agent\n \n \n \n \n \n This repository has no custom agents\n \n \n Custom agents are reusable instructions and tools in\n your repository.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Start Task \n \n \n \n \n \n \n \n
\n
\n )\n}\n\nfunction Navbar() {\n return (\n \n
\n \n \n \n \n \n \n Menu\n \n \n \n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n \n \n \n \n \n SC\n \n \n \n \n shadcn\n \n \n shadcn@example.com\n \n \n \n \n \n \n \n \n Set status\n \n \n \n Single sign-on\n \n \n \n \n \n \n Profile\n \n \n \n Repositories\n \n \n \n Stars\n \n \n \n Gists\n \n \n \n Organizations\n \n \n \n Enterprises\n \n \n \n Sponsors\n \n \n \n \n \n \n Settings\n \n \n \n Copilot settings\n \n \n \n Feature preview\n \n \n \n Appearance\n \n \n \n Accessibility\n \n \n \n Upgrade\n \n \n \n \n \n Sign out\n \n \n \n
\n
\n )\n}\n\nconst usernames = [\n \"shadcn\",\n \"vercel\",\n \"nextjs\",\n \"tailwindlabs\",\n \"typescript-lang\",\n \"eslint\",\n \"prettier\",\n \"babel\",\n \"webpack\",\n \"rollup\",\n \"parcel\",\n \"vite\",\n \"react\",\n \"vue\",\n \"angular\",\n \"solid\",\n]\n\nfunction Contributors() {\n return (\n \n \n \n \n Contributors 312\n \n \n \n
\n {usernames.map((username) => (\n \n \n {username.charAt(0)}\n \n ))}\n
\n
\n \n \n + 810 contributors\n \n \n
\n
\n )\n}\n\nfunction Profile() {\n return (\n \n \n \n Profile\n Manage your profile information.\n \n \n
\n \n \n Name\n \n \n Your name may appear around GitHub where you contribute or are\n mentioned. You can remove it at any time.\n \n \n \n Public Email\n \n \n \n \n \n You can manage verified email addresses in your{\" \"}\n email settings.\n \n \n \n Bio\n \n \n You can @mention other users and organizations to\n link to them.\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nfunction ContributionsActivity() {\n return (\n \n \n \n Contributions & Activity\n \n Manage your contributions and activity visibility.\n \n \n \n
\n \n
\n \n Contributions & activity\n \n \n \n \n \n \n Make profile private and hide activity\n \n \n Enabling this will hide your contributions and activity\n from your GitHub profile and from social features like\n followers, stars, feeds, leaderboards and releases.\n \n \n \n \n \n \n \n Include private contributions on my profile\n \n \n Your contribution graph, achievements, and activity\n overview will show your private contributions without\n revealing any repository or organization information.{\" \"}\n Read more.\n \n \n \n \n
\n
\n
\n
\n \n \n \n
\n
\n )\n}\n\nconst users = [\n \"shadcn\",\n \"maxleiter\",\n \"evilrabbit\",\n \"pranathip\",\n \"jorgezreik\",\n \"shuding\",\n \"rauchg\",\n]\n\nfunction AssignIssue() {\n const anchor = useComboboxAnchor()\n\n return (\n \n \n \n Assign Issue\n \n Select users to assign to this issue.\n \n \n \n \n \n \n Add user\n \n \n \n \n \n \n \n {(values) => (\n \n {values.map((username: string) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n ))}\n 0 ? undefined : \"Select a item...\"\n }\n />\n \n )}\n \n \n \n No users found.\n \n {(username) => (\n \n \n \n {username.charAt(0)}\n \n {username}\n \n )}\n \n \n \n \n \n \n )\n}\n", "type": "registry:block" } ], diff --git a/apps/v4/public/r/styles/radix-vega/vercel.json b/apps/v4/public/r/styles/radix-vega/vercel.json index e6c561d07d..f30df169a5 100644 --- a/apps/v4/public/r/styles/radix-vega/vercel.json +++ b/apps/v4/public/r/styles/radix-vega/vercel.json @@ -23,7 +23,7 @@ "files": [ { "path": "registry/radix-vega/blocks/vercel.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { type DateRange } from \"react-day-picker\"\nimport { Area, AreaChart } from \"recharts\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport { Alert, AlertDescription } from \"@/registry/bases/radix/ui/alert\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport { Calendar } from \"@/registry/bases/radix/ui/calendar\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n type ChartConfig,\n} from \"@/registry/bases/radix/ui/chart\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/registry/bases/radix/ui/dialog\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport { Field, FieldGroup, FieldLabel } from \"@/registry/bases/radix/ui/field\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport {\n NativeSelect,\n NativeSelectOption,\n} from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function VercelBlock() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst items = [\n {\n name: \"Edge Requests\",\n value: \"$1.83K\",\n percentage: 67.34,\n },\n {\n name: \"Fast Data Transfer\",\n percentage: 52.18,\n value: \"$952.51\",\n },\n {\n name: \"Monitoring data points\",\n percentage: 89.42,\n value: \"$901.20\",\n },\n {\n name: \"Web Analytics Events\",\n percentage: 45.67,\n value: \"$603.71\",\n },\n {\n name: \"Edge Request CPU Duration\",\n percentage: 23.91,\n value: \"$4.65\",\n },\n {\n name: \"Fast Origin Transfer\",\n percentage: 38.75,\n value: \"$3.85\",\n },\n {\n name: \"ISR Reads\",\n percentage: 71.24,\n value: \"$2.86\",\n },\n {\n name: \"Function Invocations\",\n percentage: 15.83,\n value: \"$0.60\",\n },\n {\n name: \"ISR Writes\",\n percentage: 26.23,\n value: \"524.52K / 2M\",\n },\n {\n name: \"Function Duration\",\n percentage: 5.11,\n value: \"5.11 GB Hrs / 1K GB Hrs\",\n },\n]\n\nfunction UsageCard() {\n return (\n \n \n \n \n 5 days remaining in cycle\n \n \n \n \n {items.map((item) => (\n \n \n \n \n \n \n {item.name}\n \n \n \n {item.value}\n \n \n \n \n ))}\n \n \n \n \n )\n}\n\nfunction AnomalyAlert() {\n return (\n \n \n \n \n \n Get alerted for anomalies\n \n Automatically monitor your projects for anomalies and get\n notified.\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst environments = [\n \"All Environments\",\n \"Production\",\n \"Preview\",\n \"Development\",\n \"Staging\",\n \"Test\",\n \"Other\",\n]\n\nconst statuses = [\n { name: \"Ready\", color: \"oklch(0.72 0.19 150)\" },\n { name: \"Error\", color: \"oklch(0.64 0.21 25)\" },\n { name: \"Building\", color: \"oklch(0.77 0.16 70)\" },\n { name: \"Queued\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Provisioning\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Canceled\", color: \"oklch(0.72 0.00 0)\" },\n]\n\nfunction DeploymentFilter() {\n const [selectedEnvironment, setSelectedEnvironment] = React.useState(\n environments[0]\n )\n const [selectedStatuses, setSelectedStatuses] = React.useState>(\n new Set(statuses.slice(0, 5).map((s) => s.name))\n )\n const [dateRange, setDateRange] = React.useState()\n\n const toggleStatus = (statusName: string) => {\n setSelectedStatuses((prev) => {\n const next = new Set(prev)\n if (next.has(statusName)) {\n next.delete(statusName)\n } else {\n next.add(statusName)\n }\n return next\n })\n }\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {environments.map((environment) => (\n setSelectedEnvironment(environment)}\n data-active={selectedEnvironment === environment}\n >\n {environment}\n \n \n ))}\n \n \n \n \n \n \n \n {statuses.map((status) => {\n const isSelected = selectedStatuses.has(status.name)\n return (\n toggleStatus(status.name)}\n data-active={isSelected}\n style={\n {\n \"--color\": status.color,\n } as React.CSSProperties\n }\n >\n
\n
\n {status.name}\n
\n \n \n )\n })}\n \n \n
\n \n )\n}\n\nconst billingItems = [\n {\n month: \"November 2025\",\n invoiceDate: new Date(2025, 10, 5),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"October 2025\",\n invoiceDate: new Date(2025, 9, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"September 2025\",\n invoiceDate: new Date(2025, 8, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n]\n\nfunction BillingList() {\n return (\n \n \n {billingItems.map((item, index) => (\n \n \n \n \n {item.month}\n \n {item.status}\n \n \n \n Infrastructure usage & Vercel platform\n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n \n \n \n \n View invoice\n Download PDF\n \n Contact support\n \n \n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n {index !== billingItems.length - 1 && (\n \n )}\n \n ))}\n \n \n )\n}\n\nfunction CircularGauge({ percentage }: { percentage: number }) {\n const normalizedPercentage = Math.min(Math.max(percentage, 0), 100)\n const circumference = 2 * Math.PI * 42.5\n const strokePercent = (normalizedPercentage / 100) * circumference\n\n return (\n \n \n \n \n )\n}\n\nconst agentFeatures = [\n {\n id: \"code-reviews\",\n content: (\n <>\n Code reviews with full codebase context to catch{\" \"}\n hard-to-find bugs. bugs.\n \n ),\n },\n {\n id: \"code-suggestions\",\n content: (\n <>\n Code suggestions validated in sandboxes before you\n merge.\n \n ),\n },\n {\n id: \"root-cause\",\n content: (\n <>\n Root-cause analysis for production issues with\n deployment context.{\" \"}\n \n Requires Observability Plus\n \n \n ),\n },\n]\n\nfunction ActivateAgentDialog() {\n return (\n \n \n \n \n \n \n \n Ship faster & safer with Vercel Agent\n \n Your use is subject to Vercel's{\" \"}\n Public Beta Agreement and{\" \"}\n AI Product Terms.\n \n \n
\n \n {agentFeatures.map((feature) => (\n \n \n \n \n \n \n {feature.content}\n \n \n \n ))}\n \n \n \n \n Pro teams get $100 in Vercel Agent trial credit for 2 weeks.\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ObservabilityCard() {\n return (\n \n \n
\n \n \n Observability Plus is replacing Monitoring\n \n Switch to the improved way to explore your data, with natural\n language. Monitoring will no longer be available on the Pro plan in\n November, 2025\n \n \n \n \n \n Warning\n \n \n \n \n )\n}\n\nfunction FeedbackForm() {\n return (\n \n \n \n
\n \n \n Topic\n \n \n Select a topic\n \n AI\n \n Accounts and Access Controls\n \n \n Billing\n \n \n CDN (Firewall, Caching)\n \n \n CI/CD (Builds, Deployments, Environment Variables)\n \n \n Dashboard Interface (Navigation, UI Issues)\n \n \n Domains\n \n \n Frameworks\n \n \n Marketplace and Integrations\n \n \n Observability (Observability, Logs, Monitoring)\n \n \n Storage\n \n \n \n \n Feedback\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nconst chartData = [\n { month: \"January\", visitors: 186 },\n { month: \"February\", visitors: 305 },\n { month: \"March\", visitors: 237 },\n { month: \"April\", visitors: 73 },\n { month: \"May\", visitors: 209 },\n { month: \"June\", visitors: 214 },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n color: \"var(--chart-1)\",\n },\n} satisfies ChartConfig\n\nfunction AnalyticsCard() {\n return (\n \n \n \n Analytics\n \n 418.2K Visitors +10%\n \n \n \n \n \n \n \n }\n defaultIndex={2}\n />\n \n \n \n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { format } from \"date-fns\"\nimport { type DateRange } from \"react-day-picker\"\nimport { Area, AreaChart } from \"recharts\"\n\nimport {\n Example,\n ExampleWrapper,\n} from \"@/registry/bases/radix/components/example\"\nimport { Alert, AlertDescription } from \"@/registry/bases/radix/ui/alert\"\nimport { Badge } from \"@/registry/bases/radix/ui/badge\"\nimport { Button } from \"@/registry/bases/radix/ui/button\"\nimport { Calendar } from \"@/registry/bases/radix/ui/calendar\"\nimport {\n Card,\n CardAction,\n CardContent,\n CardDescription,\n CardFooter,\n CardHeader,\n CardTitle,\n} from \"@/registry/bases/radix/ui/card\"\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n type ChartConfig,\n} from \"@/registry/bases/radix/ui/chart\"\nimport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from \"@/registry/bases/radix/ui/dialog\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/bases/radix/ui/dropdown-menu\"\nimport {\n Empty,\n EmptyContent,\n EmptyDescription,\n EmptyHeader,\n EmptyTitle,\n} from \"@/registry/bases/radix/ui/empty\"\nimport { Field, FieldGroup, FieldLabel } from \"@/registry/bases/radix/ui/field\"\nimport {\n InputGroup,\n InputGroupAddon,\n InputGroupInput,\n} from \"@/registry/bases/radix/ui/input-group\"\nimport {\n Item,\n ItemActions,\n ItemContent,\n ItemDescription,\n ItemFooter,\n ItemGroup,\n ItemMedia,\n ItemSeparator,\n ItemTitle,\n} from \"@/registry/bases/radix/ui/item\"\nimport {\n NativeSelect,\n NativeSelectOption,\n} from \"@/registry/bases/radix/ui/native-select\"\nimport {\n Popover,\n PopoverContent,\n PopoverTrigger,\n} from \"@/registry/bases/radix/ui/popover\"\nimport { Textarea } from \"@/registry/bases/radix/ui/textarea\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function VercelBlock() {\n return (\n \n \n \n \n \n \n \n \n \n \n )\n}\n\nconst items = [\n {\n name: \"Edge Requests\",\n value: \"$1.83K\",\n percentage: 67.34,\n },\n {\n name: \"Fast Data Transfer\",\n percentage: 52.18,\n value: \"$952.51\",\n },\n {\n name: \"Monitoring data points\",\n percentage: 89.42,\n value: \"$901.20\",\n },\n {\n name: \"Web Analytics Events\",\n percentage: 45.67,\n value: \"$603.71\",\n },\n {\n name: \"Edge Request CPU Duration\",\n percentage: 23.91,\n value: \"$4.65\",\n },\n {\n name: \"Fast Origin Transfer\",\n percentage: 38.75,\n value: \"$3.85\",\n },\n {\n name: \"ISR Reads\",\n percentage: 71.24,\n value: \"$2.86\",\n },\n {\n name: \"Function Invocations\",\n percentage: 15.83,\n value: \"$0.60\",\n },\n {\n name: \"ISR Writes\",\n percentage: 26.23,\n value: \"524.52K / 2M\",\n },\n {\n name: \"Function Duration\",\n percentage: 5.11,\n value: \"5.11 GB Hrs / 1K GB Hrs\",\n },\n]\n\nfunction UsageCard() {\n return (\n \n \n \n \n 5 days remaining in cycle\n \n \n \n \n {items.map((item) => (\n \n \n \n \n \n \n {item.name}\n \n \n \n {item.value}\n \n \n \n \n ))}\n \n \n \n \n )\n}\n\nfunction AnomalyAlert() {\n return (\n \n \n \n \n \n Get alerted for anomalies\n \n Automatically monitor your projects for anomalies and get\n notified.\n \n \n \n \n \n \n \n \n \n )\n}\n\nconst environments = [\n \"All Environments\",\n \"Production\",\n \"Preview\",\n \"Development\",\n \"Staging\",\n \"Test\",\n \"Other\",\n]\n\nconst statuses = [\n { name: \"Ready\", color: \"oklch(0.72 0.19 150)\" },\n { name: \"Error\", color: \"oklch(0.64 0.21 25)\" },\n { name: \"Building\", color: \"oklch(0.77 0.16 70)\" },\n { name: \"Queued\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Provisioning\", color: \"oklch(0.72 0.00 0)\" },\n { name: \"Canceled\", color: \"oklch(0.72 0.00 0)\" },\n]\n\nfunction DeploymentFilter() {\n const [selectedEnvironment, setSelectedEnvironment] = React.useState(\n environments[0]\n )\n const [selectedStatuses, setSelectedStatuses] = React.useState>(\n new Set(statuses.slice(0, 5).map((s) => s.name))\n )\n const [dateRange, setDateRange] = React.useState()\n\n const toggleStatus = (statusName: string) => {\n setSelectedStatuses((prev) => {\n const next = new Set(prev)\n if (next.has(statusName)) {\n next.delete(statusName)\n } else {\n next.add(statusName)\n }\n return next\n })\n }\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {environments.map((environment) => (\n setSelectedEnvironment(environment)}\n data-active={selectedEnvironment === environment}\n >\n {environment}\n \n \n ))}\n \n \n \n \n \n \n \n {statuses.map((status) => {\n const isSelected = selectedStatuses.has(status.name)\n return (\n toggleStatus(status.name)}\n data-active={isSelected}\n style={\n {\n \"--color\": status.color,\n } as React.CSSProperties\n }\n >\n
\n
\n {status.name}\n
\n \n \n )\n })}\n \n \n
\n \n )\n}\n\nconst billingItems = [\n {\n month: \"November 2025\",\n invoiceDate: new Date(2025, 10, 5),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"October 2025\",\n invoiceDate: new Date(2025, 9, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n {\n month: \"September 2025\",\n invoiceDate: new Date(2025, 8, 4),\n amount: \"$10.00\",\n status: \"Paid\" as const,\n },\n]\n\nfunction BillingList() {\n return (\n \n \n {billingItems.map((item, index) => (\n \n \n \n \n {item.month}\n \n {item.status}\n \n \n \n Infrastructure usage & Vercel platform\n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n \n \n \n \n View invoice\n Download PDF\n \n Contact support\n \n \n \n \n \n Total Due\n {item.amount}\n \n \n \n Invoiced {format(item.invoiceDate, \"d MMM yyyy\")}\n \n \n \n \n {index !== billingItems.length - 1 && (\n \n )}\n \n ))}\n \n \n )\n}\n\nfunction CircularGauge({ percentage }: { percentage: number }) {\n const normalizedPercentage = Math.min(Math.max(percentage, 0), 100)\n const circumference = 2 * Math.PI * 42.5\n const strokePercent = (normalizedPercentage / 100) * circumference\n\n return (\n \n \n \n \n )\n}\n\nconst agentFeatures = [\n {\n id: \"code-reviews\",\n content: (\n <>\n Code reviews with full codebase context to catch{\" \"}\n hard-to-find bugs. bugs.\n \n ),\n },\n {\n id: \"code-suggestions\",\n content: (\n <>\n Code suggestions validated in sandboxes before you\n merge.\n \n ),\n },\n {\n id: \"root-cause\",\n content: (\n <>\n Root-cause analysis for production issues with\n deployment context.{\" \"}\n \n Requires Observability Plus\n \n \n ),\n },\n]\n\nfunction ActivateAgentDialog() {\n return (\n \n \n \n \n \n \n \n Ship faster & safer with Vercel Agent\n \n Your use is subject to Vercel's{\" \"}\n Public Beta Agreement and{\" \"}\n AI Product Terms.\n \n \n
\n \n {agentFeatures.map((feature) => (\n \n \n \n \n \n \n {feature.content}\n \n \n \n ))}\n \n \n \n \n Pro teams get $100 in Vercel Agent trial credit for 2 weeks.\n \n \n
\n \n \n \n \n \n \n
\n
\n
\n )\n}\n\nfunction ObservabilityCard() {\n return (\n \n \n
\n \n \n Observability Plus is replacing Monitoring\n \n Switch to the improved way to explore your data, with natural\n language. Monitoring will no longer be available on the Pro plan in\n November, 2025\n \n \n \n \n \n Warning\n \n \n \n \n )\n}\n\nfunction FeedbackForm() {\n return (\n \n \n \n
\n \n \n Topic\n \n \n Select a topic\n \n AI\n \n Accounts and Access Controls\n \n \n Billing\n \n \n CDN (Firewall, Caching)\n \n \n CI/CD (Builds, Deployments, Environment Variables)\n \n \n Dashboard Interface (Navigation, UI Issues)\n \n \n Domains\n \n \n Frameworks\n \n \n Marketplace and Integrations\n \n \n Observability (Observability, Logs, Monitoring)\n \n \n Storage\n \n \n \n \n Feedback\n \n \n \n
\n
\n \n \n \n
\n
\n )\n}\n\nconst chartData = [\n { month: \"January\", visitors: 186 },\n { month: \"February\", visitors: 305 },\n { month: \"March\", visitors: 237 },\n { month: \"April\", visitors: 73 },\n { month: \"May\", visitors: 209 },\n { month: \"June\", visitors: 214 },\n]\n\nconst chartConfig = {\n visitors: {\n label: \"Visitors\",\n color: \"var(--chart-1)\",\n },\n} satisfies ChartConfig\n\nfunction AnalyticsCard() {\n return (\n \n \n \n Analytics\n \n 418.2K Visitors +10%\n \n \n \n \n \n \n \n }\n defaultIndex={2}\n />\n \n \n \n \n \n )\n}\n", "type": "registry:block" } ],