From 801e7d6b3d881b79f4346cae3d26197ab1868e06 Mon Sep 17 00:00:00 2001 From: shadcn Date: Mon, 2 Mar 2026 09:28:49 +0400 Subject: [PATCH] style --- apps/v4/public/r/styles/base-lyra/sidebar-icon-example.json | 2 +- apps/v4/public/r/styles/base-maia/sidebar-icon-example.json | 2 +- apps/v4/public/r/styles/base-mira/sidebar-icon-example.json | 2 +- apps/v4/public/r/styles/base-nova/sidebar-icon-example.json | 2 +- apps/v4/public/r/styles/base-vega/sidebar-icon-example.json | 2 +- packages/shadcn/src/utils/resolve-import.ts | 5 ++--- packages/shadcn/src/utils/updaters/update-files.ts | 3 +-- 7 files changed, 8 insertions(+), 10 deletions(-) diff --git a/apps/v4/public/r/styles/base-lyra/sidebar-icon-example.json b/apps/v4/public/r/styles/base-lyra/sidebar-icon-example.json index ced4fa48e6..07df8aff50 100644 --- a/apps/v4/public/r/styles/base-lyra/sidebar-icon-example.json +++ b/apps/v4/public/r/styles/base-lyra/sidebar-icon-example.json @@ -14,7 +14,7 @@ "files": [ { "path": "registry/base-lyra/examples/sidebar-icon-example.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/base-lyra/ui/avatar\"\nimport { Button } from \"@/registry/base-lyra/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/base-lyra/ui/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/base-lyra/ui/dropdown-menu\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n ItemTitle,\n} from \"@/registry/base-lyra/ui/item\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n} from \"@/registry/base-lyra/ui/sidebar\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function SidebarIconExample() {\n const data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n teams: [\n {\n name: \"Acme Inc\",\n plan: \"Enterprise\",\n },\n {\n name: \"Acme Corp.\",\n plan: \"Startup\",\n },\n {\n name: \"Evil Corp.\",\n plan: \"Free\",\n },\n ],\n navMain: [\n {\n title: \"Playground\",\n url: \"#\",\n icon: (\n \n ),\n isActive: true,\n items: [\n {\n title: \"History\",\n url: \"#\",\n },\n {\n title: \"Starred\",\n url: \"#\",\n },\n {\n title: \"Settings\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Models\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Genesis\",\n url: \"#\",\n },\n {\n title: \"Explorer\",\n url: \"#\",\n },\n {\n title: \"Quantum\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Documentation\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Introduction\",\n url: \"#\",\n },\n {\n title: \"Get Started\",\n url: \"#\",\n },\n {\n title: \"Tutorials\",\n url: \"#\",\n },\n {\n title: \"Changelog\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"General\",\n url: \"#\",\n },\n {\n title: \"Team\",\n url: \"#\",\n },\n {\n title: \"Billing\",\n url: \"#\",\n },\n {\n title: \"Limits\",\n url: \"#\",\n },\n ],\n },\n ],\n projects: [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: (\n \n ),\n },\n ],\n }\n\n const [activeTeam, setActiveTeam] = React.useState(data.teams[0])\n\n return (\n \n \n \n \n \n \n \n }\n >\n }\n nativeButton={false}\n className=\"size-8\"\n >\n \n \n \n \n \n \n
\n \n {activeTeam.name}\n \n {activeTeam.plan}\n
\n \n \n \n \n Teams\n \n \n {data.teams.map((team) => (\n setActiveTeam(team)}\n >\n {team.name}\n \n ))}\n \n \n
\n
\n
\n
\n \n \n Platform\n \n {data.navMain.map((item) => (\n }\n >\n }\n >\n {item.icon}\n {item.title}\n \n \n \n \n {item.items?.map((subItem) => (\n \n }\n >\n {subItem.title}\n \n \n ))}\n \n \n \n ))}\n \n \n \n Projects\n \n {data.projects.map((item) => (\n \n }>\n {item.icon}\n {item.name}\n \n \n ))}\n \n \n \n \n \n \n \n \n }\n >\n \n \n CN\n \n
\n \n {data.user.name}\n \n {data.user.email}\n
\n \n \n \n \n \n \n \n \n \n CN\n \n \n \n {data.user.name}\n {data.user.email}\n \n \n \n \n \n \n Account\n Billing\n Settings\n \n \n \n Log out\n \n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/base-lyra/ui/avatar\"\nimport { Button } from \"@/registry/base-lyra/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/base-lyra/ui/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/base-lyra/ui/dropdown-menu\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n ItemTitle,\n} from \"@/registry/base-lyra/ui/item\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n} from \"@/registry/base-lyra/ui/sidebar\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function SidebarIconExample() {\n const data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n teams: [\n {\n name: \"Acme Inc\",\n plan: \"Enterprise\",\n },\n {\n name: \"Acme Corp.\",\n plan: \"Startup\",\n },\n {\n name: \"Evil Corp.\",\n plan: \"Free\",\n },\n ],\n navMain: [\n {\n title: \"Playground\",\n url: \"#\",\n icon: (\n \n ),\n isActive: true,\n items: [\n {\n title: \"History\",\n url: \"#\",\n },\n {\n title: \"Starred\",\n url: \"#\",\n },\n {\n title: \"Settings\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Models\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Genesis\",\n url: \"#\",\n },\n {\n title: \"Explorer\",\n url: \"#\",\n },\n {\n title: \"Quantum\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Documentation\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Introduction\",\n url: \"#\",\n },\n {\n title: \"Get Started\",\n url: \"#\",\n },\n {\n title: \"Tutorials\",\n url: \"#\",\n },\n {\n title: \"Changelog\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"General\",\n url: \"#\",\n },\n {\n title: \"Team\",\n url: \"#\",\n },\n {\n title: \"Billing\",\n url: \"#\",\n },\n {\n title: \"Limits\",\n url: \"#\",\n },\n ],\n },\n ],\n projects: [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: (\n \n ),\n },\n ],\n }\n\n const [activeTeam, setActiveTeam] = React.useState(data.teams[0])\n\n return (\n \n \n \n \n \n \n \n }\n >\n }\n nativeButton={false}\n className=\"size-8\"\n >\n \n \n \n \n \n \n
\n \n {activeTeam.name}\n \n {activeTeam.plan}\n
\n \n \n \n \n Teams\n \n \n {data.teams.map((team) => (\n setActiveTeam(team)}\n >\n {team.name}\n \n ))}\n \n \n
\n
\n
\n
\n \n \n Platform\n \n {data.navMain.map((item) => (\n \n \n }\n >\n {item.icon}\n {item.title}\n \n \n \n \n {item.items?.map((subItem) => (\n \n }\n >\n {subItem.title}\n \n \n ))}\n \n \n \n \n ))}\n \n \n \n Projects\n \n {data.projects.map((item) => (\n \n }>\n {item.icon}\n {item.name}\n \n \n ))}\n \n \n \n \n \n \n \n \n }\n >\n \n \n CN\n \n
\n \n {data.user.name}\n \n {data.user.email}\n
\n \n \n \n \n \n \n \n \n \n CN\n \n \n \n {data.user.name}\n {data.user.email}\n \n \n \n \n \n \n Account\n Billing\n Settings\n \n \n \n Log out\n \n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-maia/sidebar-icon-example.json b/apps/v4/public/r/styles/base-maia/sidebar-icon-example.json index 23de794f4a..1a991f661e 100644 --- a/apps/v4/public/r/styles/base-maia/sidebar-icon-example.json +++ b/apps/v4/public/r/styles/base-maia/sidebar-icon-example.json @@ -14,7 +14,7 @@ "files": [ { "path": "registry/base-maia/examples/sidebar-icon-example.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/base-maia/ui/avatar\"\nimport { Button } from \"@/registry/base-maia/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/base-maia/ui/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/base-maia/ui/dropdown-menu\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n ItemTitle,\n} from \"@/registry/base-maia/ui/item\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n} from \"@/registry/base-maia/ui/sidebar\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function SidebarIconExample() {\n const data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n teams: [\n {\n name: \"Acme Inc\",\n plan: \"Enterprise\",\n },\n {\n name: \"Acme Corp.\",\n plan: \"Startup\",\n },\n {\n name: \"Evil Corp.\",\n plan: \"Free\",\n },\n ],\n navMain: [\n {\n title: \"Playground\",\n url: \"#\",\n icon: (\n \n ),\n isActive: true,\n items: [\n {\n title: \"History\",\n url: \"#\",\n },\n {\n title: \"Starred\",\n url: \"#\",\n },\n {\n title: \"Settings\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Models\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Genesis\",\n url: \"#\",\n },\n {\n title: \"Explorer\",\n url: \"#\",\n },\n {\n title: \"Quantum\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Documentation\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Introduction\",\n url: \"#\",\n },\n {\n title: \"Get Started\",\n url: \"#\",\n },\n {\n title: \"Tutorials\",\n url: \"#\",\n },\n {\n title: \"Changelog\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"General\",\n url: \"#\",\n },\n {\n title: \"Team\",\n url: \"#\",\n },\n {\n title: \"Billing\",\n url: \"#\",\n },\n {\n title: \"Limits\",\n url: \"#\",\n },\n ],\n },\n ],\n projects: [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: (\n \n ),\n },\n ],\n }\n\n const [activeTeam, setActiveTeam] = React.useState(data.teams[0])\n\n return (\n \n \n \n \n \n \n \n }\n >\n }\n nativeButton={false}\n className=\"size-8\"\n >\n \n \n \n \n \n \n
\n \n {activeTeam.name}\n \n {activeTeam.plan}\n
\n \n \n \n \n Teams\n \n \n {data.teams.map((team) => (\n setActiveTeam(team)}\n >\n {team.name}\n \n ))}\n \n \n
\n
\n
\n
\n \n \n Platform\n \n {data.navMain.map((item) => (\n }\n >\n }\n >\n {item.icon}\n {item.title}\n \n \n \n \n {item.items?.map((subItem) => (\n \n }\n >\n {subItem.title}\n \n \n ))}\n \n \n \n ))}\n \n \n \n Projects\n \n {data.projects.map((item) => (\n \n }>\n {item.icon}\n {item.name}\n \n \n ))}\n \n \n \n \n \n \n \n \n }\n >\n \n \n CN\n \n
\n \n {data.user.name}\n \n {data.user.email}\n
\n \n \n \n \n \n \n \n \n \n CN\n \n \n \n {data.user.name}\n {data.user.email}\n \n \n \n \n \n \n Account\n Billing\n Settings\n \n \n \n Log out\n \n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/base-maia/ui/avatar\"\nimport { Button } from \"@/registry/base-maia/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/base-maia/ui/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/base-maia/ui/dropdown-menu\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n ItemTitle,\n} from \"@/registry/base-maia/ui/item\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n} from \"@/registry/base-maia/ui/sidebar\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function SidebarIconExample() {\n const data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n teams: [\n {\n name: \"Acme Inc\",\n plan: \"Enterprise\",\n },\n {\n name: \"Acme Corp.\",\n plan: \"Startup\",\n },\n {\n name: \"Evil Corp.\",\n plan: \"Free\",\n },\n ],\n navMain: [\n {\n title: \"Playground\",\n url: \"#\",\n icon: (\n \n ),\n isActive: true,\n items: [\n {\n title: \"History\",\n url: \"#\",\n },\n {\n title: \"Starred\",\n url: \"#\",\n },\n {\n title: \"Settings\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Models\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Genesis\",\n url: \"#\",\n },\n {\n title: \"Explorer\",\n url: \"#\",\n },\n {\n title: \"Quantum\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Documentation\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Introduction\",\n url: \"#\",\n },\n {\n title: \"Get Started\",\n url: \"#\",\n },\n {\n title: \"Tutorials\",\n url: \"#\",\n },\n {\n title: \"Changelog\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"General\",\n url: \"#\",\n },\n {\n title: \"Team\",\n url: \"#\",\n },\n {\n title: \"Billing\",\n url: \"#\",\n },\n {\n title: \"Limits\",\n url: \"#\",\n },\n ],\n },\n ],\n projects: [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: (\n \n ),\n },\n ],\n }\n\n const [activeTeam, setActiveTeam] = React.useState(data.teams[0])\n\n return (\n \n \n \n \n \n \n \n }\n >\n }\n nativeButton={false}\n className=\"size-8\"\n >\n \n \n \n \n \n \n
\n \n {activeTeam.name}\n \n {activeTeam.plan}\n
\n \n \n \n \n Teams\n \n \n {data.teams.map((team) => (\n setActiveTeam(team)}\n >\n {team.name}\n \n ))}\n \n \n
\n
\n
\n
\n \n \n Platform\n \n {data.navMain.map((item) => (\n \n \n }\n >\n {item.icon}\n {item.title}\n \n \n \n \n {item.items?.map((subItem) => (\n \n }\n >\n {subItem.title}\n \n \n ))}\n \n \n \n \n ))}\n \n \n \n Projects\n \n {data.projects.map((item) => (\n \n }>\n {item.icon}\n {item.name}\n \n \n ))}\n \n \n \n \n \n \n \n \n }\n >\n \n \n CN\n \n
\n \n {data.user.name}\n \n {data.user.email}\n
\n \n \n \n \n \n \n \n \n \n CN\n \n \n \n {data.user.name}\n {data.user.email}\n \n \n \n \n \n \n Account\n Billing\n Settings\n \n \n \n Log out\n \n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-mira/sidebar-icon-example.json b/apps/v4/public/r/styles/base-mira/sidebar-icon-example.json index a628eb773e..8cccbcf4e2 100644 --- a/apps/v4/public/r/styles/base-mira/sidebar-icon-example.json +++ b/apps/v4/public/r/styles/base-mira/sidebar-icon-example.json @@ -14,7 +14,7 @@ "files": [ { "path": "registry/base-mira/examples/sidebar-icon-example.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/base-mira/ui/avatar\"\nimport { Button } from \"@/registry/base-mira/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/base-mira/ui/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/base-mira/ui/dropdown-menu\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n ItemTitle,\n} from \"@/registry/base-mira/ui/item\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n} from \"@/registry/base-mira/ui/sidebar\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function SidebarIconExample() {\n const data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n teams: [\n {\n name: \"Acme Inc\",\n plan: \"Enterprise\",\n },\n {\n name: \"Acme Corp.\",\n plan: \"Startup\",\n },\n {\n name: \"Evil Corp.\",\n plan: \"Free\",\n },\n ],\n navMain: [\n {\n title: \"Playground\",\n url: \"#\",\n icon: (\n \n ),\n isActive: true,\n items: [\n {\n title: \"History\",\n url: \"#\",\n },\n {\n title: \"Starred\",\n url: \"#\",\n },\n {\n title: \"Settings\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Models\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Genesis\",\n url: \"#\",\n },\n {\n title: \"Explorer\",\n url: \"#\",\n },\n {\n title: \"Quantum\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Documentation\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Introduction\",\n url: \"#\",\n },\n {\n title: \"Get Started\",\n url: \"#\",\n },\n {\n title: \"Tutorials\",\n url: \"#\",\n },\n {\n title: \"Changelog\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"General\",\n url: \"#\",\n },\n {\n title: \"Team\",\n url: \"#\",\n },\n {\n title: \"Billing\",\n url: \"#\",\n },\n {\n title: \"Limits\",\n url: \"#\",\n },\n ],\n },\n ],\n projects: [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: (\n \n ),\n },\n ],\n }\n\n const [activeTeam, setActiveTeam] = React.useState(data.teams[0])\n\n return (\n \n \n \n \n \n \n \n }\n >\n }\n nativeButton={false}\n className=\"size-8\"\n >\n \n \n \n \n \n \n
\n \n {activeTeam.name}\n \n {activeTeam.plan}\n
\n \n \n \n \n Teams\n \n \n {data.teams.map((team) => (\n setActiveTeam(team)}\n >\n {team.name}\n \n ))}\n \n \n
\n
\n
\n
\n \n \n Platform\n \n {data.navMain.map((item) => (\n }\n >\n }\n >\n {item.icon}\n {item.title}\n \n \n \n \n {item.items?.map((subItem) => (\n \n }\n >\n {subItem.title}\n \n \n ))}\n \n \n \n ))}\n \n \n \n Projects\n \n {data.projects.map((item) => (\n \n }>\n {item.icon}\n {item.name}\n \n \n ))}\n \n \n \n \n \n \n \n \n }\n >\n \n \n CN\n \n
\n \n {data.user.name}\n \n {data.user.email}\n
\n \n \n \n \n \n \n \n \n \n CN\n \n \n \n {data.user.name}\n {data.user.email}\n \n \n \n \n \n \n Account\n Billing\n Settings\n \n \n \n Log out\n \n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/base-mira/ui/avatar\"\nimport { Button } from \"@/registry/base-mira/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/base-mira/ui/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/base-mira/ui/dropdown-menu\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n ItemTitle,\n} from \"@/registry/base-mira/ui/item\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n} from \"@/registry/base-mira/ui/sidebar\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function SidebarIconExample() {\n const data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n teams: [\n {\n name: \"Acme Inc\",\n plan: \"Enterprise\",\n },\n {\n name: \"Acme Corp.\",\n plan: \"Startup\",\n },\n {\n name: \"Evil Corp.\",\n plan: \"Free\",\n },\n ],\n navMain: [\n {\n title: \"Playground\",\n url: \"#\",\n icon: (\n \n ),\n isActive: true,\n items: [\n {\n title: \"History\",\n url: \"#\",\n },\n {\n title: \"Starred\",\n url: \"#\",\n },\n {\n title: \"Settings\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Models\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Genesis\",\n url: \"#\",\n },\n {\n title: \"Explorer\",\n url: \"#\",\n },\n {\n title: \"Quantum\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Documentation\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Introduction\",\n url: \"#\",\n },\n {\n title: \"Get Started\",\n url: \"#\",\n },\n {\n title: \"Tutorials\",\n url: \"#\",\n },\n {\n title: \"Changelog\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"General\",\n url: \"#\",\n },\n {\n title: \"Team\",\n url: \"#\",\n },\n {\n title: \"Billing\",\n url: \"#\",\n },\n {\n title: \"Limits\",\n url: \"#\",\n },\n ],\n },\n ],\n projects: [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: (\n \n ),\n },\n ],\n }\n\n const [activeTeam, setActiveTeam] = React.useState(data.teams[0])\n\n return (\n \n \n \n \n \n \n \n }\n >\n }\n nativeButton={false}\n className=\"size-8\"\n >\n \n \n \n \n \n \n
\n \n {activeTeam.name}\n \n {activeTeam.plan}\n
\n \n \n \n \n Teams\n \n \n {data.teams.map((team) => (\n setActiveTeam(team)}\n >\n {team.name}\n \n ))}\n \n \n
\n
\n
\n
\n \n \n Platform\n \n {data.navMain.map((item) => (\n \n \n }\n >\n {item.icon}\n {item.title}\n \n \n \n \n {item.items?.map((subItem) => (\n \n }\n >\n {subItem.title}\n \n \n ))}\n \n \n \n \n ))}\n \n \n \n Projects\n \n {data.projects.map((item) => (\n \n }>\n {item.icon}\n {item.name}\n \n \n ))}\n \n \n \n \n \n \n \n \n }\n >\n \n \n CN\n \n
\n \n {data.user.name}\n \n {data.user.email}\n
\n \n \n \n \n \n \n \n \n \n CN\n \n \n \n {data.user.name}\n {data.user.email}\n \n \n \n \n \n \n Account\n Billing\n Settings\n \n \n \n Log out\n \n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-nova/sidebar-icon-example.json b/apps/v4/public/r/styles/base-nova/sidebar-icon-example.json index 5dc8b0b27e..5adf4576d2 100644 --- a/apps/v4/public/r/styles/base-nova/sidebar-icon-example.json +++ b/apps/v4/public/r/styles/base-nova/sidebar-icon-example.json @@ -14,7 +14,7 @@ "files": [ { "path": "registry/base-nova/examples/sidebar-icon-example.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/base-nova/ui/avatar\"\nimport { Button } from \"@/registry/base-nova/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/base-nova/ui/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/base-nova/ui/dropdown-menu\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n ItemTitle,\n} from \"@/registry/base-nova/ui/item\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n} from \"@/registry/base-nova/ui/sidebar\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function SidebarIconExample() {\n const data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n teams: [\n {\n name: \"Acme Inc\",\n plan: \"Enterprise\",\n },\n {\n name: \"Acme Corp.\",\n plan: \"Startup\",\n },\n {\n name: \"Evil Corp.\",\n plan: \"Free\",\n },\n ],\n navMain: [\n {\n title: \"Playground\",\n url: \"#\",\n icon: (\n \n ),\n isActive: true,\n items: [\n {\n title: \"History\",\n url: \"#\",\n },\n {\n title: \"Starred\",\n url: \"#\",\n },\n {\n title: \"Settings\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Models\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Genesis\",\n url: \"#\",\n },\n {\n title: \"Explorer\",\n url: \"#\",\n },\n {\n title: \"Quantum\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Documentation\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Introduction\",\n url: \"#\",\n },\n {\n title: \"Get Started\",\n url: \"#\",\n },\n {\n title: \"Tutorials\",\n url: \"#\",\n },\n {\n title: \"Changelog\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"General\",\n url: \"#\",\n },\n {\n title: \"Team\",\n url: \"#\",\n },\n {\n title: \"Billing\",\n url: \"#\",\n },\n {\n title: \"Limits\",\n url: \"#\",\n },\n ],\n },\n ],\n projects: [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: (\n \n ),\n },\n ],\n }\n\n const [activeTeam, setActiveTeam] = React.useState(data.teams[0])\n\n return (\n \n \n \n \n \n \n \n }\n >\n }\n nativeButton={false}\n className=\"size-8\"\n >\n \n \n \n \n \n \n
\n \n {activeTeam.name}\n \n {activeTeam.plan}\n
\n \n \n \n \n Teams\n \n \n {data.teams.map((team) => (\n setActiveTeam(team)}\n >\n {team.name}\n \n ))}\n \n \n
\n
\n
\n
\n \n \n Platform\n \n {data.navMain.map((item) => (\n }\n >\n }\n >\n {item.icon}\n {item.title}\n \n \n \n \n {item.items?.map((subItem) => (\n \n }\n >\n {subItem.title}\n \n \n ))}\n \n \n \n ))}\n \n \n \n Projects\n \n {data.projects.map((item) => (\n \n }>\n {item.icon}\n {item.name}\n \n \n ))}\n \n \n \n \n \n \n \n \n }\n >\n \n \n CN\n \n
\n \n {data.user.name}\n \n {data.user.email}\n
\n \n \n \n \n \n \n \n \n \n CN\n \n \n \n {data.user.name}\n {data.user.email}\n \n \n \n \n \n \n Account\n Billing\n Settings\n \n \n \n Log out\n \n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/base-nova/ui/avatar\"\nimport { Button } from \"@/registry/base-nova/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/base-nova/ui/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/base-nova/ui/dropdown-menu\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n ItemTitle,\n} from \"@/registry/base-nova/ui/item\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n} from \"@/registry/base-nova/ui/sidebar\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function SidebarIconExample() {\n const data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n teams: [\n {\n name: \"Acme Inc\",\n plan: \"Enterprise\",\n },\n {\n name: \"Acme Corp.\",\n plan: \"Startup\",\n },\n {\n name: \"Evil Corp.\",\n plan: \"Free\",\n },\n ],\n navMain: [\n {\n title: \"Playground\",\n url: \"#\",\n icon: (\n \n ),\n isActive: true,\n items: [\n {\n title: \"History\",\n url: \"#\",\n },\n {\n title: \"Starred\",\n url: \"#\",\n },\n {\n title: \"Settings\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Models\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Genesis\",\n url: \"#\",\n },\n {\n title: \"Explorer\",\n url: \"#\",\n },\n {\n title: \"Quantum\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Documentation\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Introduction\",\n url: \"#\",\n },\n {\n title: \"Get Started\",\n url: \"#\",\n },\n {\n title: \"Tutorials\",\n url: \"#\",\n },\n {\n title: \"Changelog\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"General\",\n url: \"#\",\n },\n {\n title: \"Team\",\n url: \"#\",\n },\n {\n title: \"Billing\",\n url: \"#\",\n },\n {\n title: \"Limits\",\n url: \"#\",\n },\n ],\n },\n ],\n projects: [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: (\n \n ),\n },\n ],\n }\n\n const [activeTeam, setActiveTeam] = React.useState(data.teams[0])\n\n return (\n \n \n \n \n \n \n \n }\n >\n }\n nativeButton={false}\n className=\"size-8\"\n >\n \n \n \n \n \n \n
\n \n {activeTeam.name}\n \n {activeTeam.plan}\n
\n \n \n \n \n Teams\n \n \n {data.teams.map((team) => (\n setActiveTeam(team)}\n >\n {team.name}\n \n ))}\n \n \n
\n
\n
\n
\n \n \n Platform\n \n {data.navMain.map((item) => (\n \n \n }\n >\n {item.icon}\n {item.title}\n \n \n \n \n {item.items?.map((subItem) => (\n \n }\n >\n {subItem.title}\n \n \n ))}\n \n \n \n \n ))}\n \n \n \n Projects\n \n {data.projects.map((item) => (\n \n }>\n {item.icon}\n {item.name}\n \n \n ))}\n \n \n \n \n \n \n \n \n }\n >\n \n \n CN\n \n
\n \n {data.user.name}\n \n {data.user.email}\n
\n \n \n \n \n \n \n \n \n \n CN\n \n \n \n {data.user.name}\n {data.user.email}\n \n \n \n \n \n \n Account\n Billing\n Settings\n \n \n \n Log out\n \n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/apps/v4/public/r/styles/base-vega/sidebar-icon-example.json b/apps/v4/public/r/styles/base-vega/sidebar-icon-example.json index 64860e9644..88940d8a75 100644 --- a/apps/v4/public/r/styles/base-vega/sidebar-icon-example.json +++ b/apps/v4/public/r/styles/base-vega/sidebar-icon-example.json @@ -14,7 +14,7 @@ "files": [ { "path": "registry/base-vega/examples/sidebar-icon-example.tsx", - "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/base-vega/ui/avatar\"\nimport { Button } from \"@/registry/base-vega/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/base-vega/ui/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/base-vega/ui/dropdown-menu\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n ItemTitle,\n} from \"@/registry/base-vega/ui/item\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n} from \"@/registry/base-vega/ui/sidebar\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function SidebarIconExample() {\n const data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n teams: [\n {\n name: \"Acme Inc\",\n plan: \"Enterprise\",\n },\n {\n name: \"Acme Corp.\",\n plan: \"Startup\",\n },\n {\n name: \"Evil Corp.\",\n plan: \"Free\",\n },\n ],\n navMain: [\n {\n title: \"Playground\",\n url: \"#\",\n icon: (\n \n ),\n isActive: true,\n items: [\n {\n title: \"History\",\n url: \"#\",\n },\n {\n title: \"Starred\",\n url: \"#\",\n },\n {\n title: \"Settings\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Models\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Genesis\",\n url: \"#\",\n },\n {\n title: \"Explorer\",\n url: \"#\",\n },\n {\n title: \"Quantum\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Documentation\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Introduction\",\n url: \"#\",\n },\n {\n title: \"Get Started\",\n url: \"#\",\n },\n {\n title: \"Tutorials\",\n url: \"#\",\n },\n {\n title: \"Changelog\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"General\",\n url: \"#\",\n },\n {\n title: \"Team\",\n url: \"#\",\n },\n {\n title: \"Billing\",\n url: \"#\",\n },\n {\n title: \"Limits\",\n url: \"#\",\n },\n ],\n },\n ],\n projects: [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: (\n \n ),\n },\n ],\n }\n\n const [activeTeam, setActiveTeam] = React.useState(data.teams[0])\n\n return (\n \n \n \n \n \n \n \n }\n >\n }\n nativeButton={false}\n className=\"size-8\"\n >\n \n \n \n \n \n \n
\n \n {activeTeam.name}\n \n {activeTeam.plan}\n
\n \n \n \n \n Teams\n \n \n {data.teams.map((team) => (\n setActiveTeam(team)}\n >\n {team.name}\n \n ))}\n \n \n
\n
\n
\n
\n \n \n Platform\n \n {data.navMain.map((item) => (\n }\n >\n }\n >\n {item.icon}\n {item.title}\n \n \n \n \n {item.items?.map((subItem) => (\n \n }\n >\n {subItem.title}\n \n \n ))}\n \n \n \n ))}\n \n \n \n Projects\n \n {data.projects.map((item) => (\n \n }>\n {item.icon}\n {item.name}\n \n \n ))}\n \n \n \n \n \n \n \n \n }\n >\n \n \n CN\n \n
\n \n {data.user.name}\n \n {data.user.email}\n
\n \n \n \n \n \n \n \n \n \n CN\n \n \n \n {data.user.name}\n {data.user.email}\n \n \n \n \n \n \n Account\n Billing\n Settings\n \n \n \n Log out\n \n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n )\n}\n", + "content": "\"use client\"\n\nimport * as React from \"react\"\n\nimport {\n Avatar,\n AvatarFallback,\n AvatarImage,\n} from \"@/registry/base-vega/ui/avatar\"\nimport { Button } from \"@/registry/base-vega/ui/button\"\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger,\n} from \"@/registry/base-vega/ui/collapsible\"\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/base-vega/ui/dropdown-menu\"\nimport {\n Item,\n ItemContent,\n ItemDescription,\n ItemMedia,\n ItemTitle,\n} from \"@/registry/base-vega/ui/item\"\nimport {\n Sidebar,\n SidebarContent,\n SidebarFooter,\n SidebarGroup,\n SidebarGroupLabel,\n SidebarHeader,\n SidebarInset,\n SidebarMenu,\n SidebarMenuButton,\n SidebarMenuItem,\n SidebarMenuSub,\n SidebarMenuSubButton,\n SidebarMenuSubItem,\n SidebarProvider,\n SidebarRail,\n SidebarTrigger,\n} from \"@/registry/base-vega/ui/sidebar\"\nimport { IconPlaceholder } from \"@/app/(create)/components/icon-placeholder\"\n\nexport default function SidebarIconExample() {\n const data = {\n user: {\n name: \"shadcn\",\n email: \"m@example.com\",\n avatar: \"/avatars/shadcn.jpg\",\n },\n teams: [\n {\n name: \"Acme Inc\",\n plan: \"Enterprise\",\n },\n {\n name: \"Acme Corp.\",\n plan: \"Startup\",\n },\n {\n name: \"Evil Corp.\",\n plan: \"Free\",\n },\n ],\n navMain: [\n {\n title: \"Playground\",\n url: \"#\",\n icon: (\n \n ),\n isActive: true,\n items: [\n {\n title: \"History\",\n url: \"#\",\n },\n {\n title: \"Starred\",\n url: \"#\",\n },\n {\n title: \"Settings\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Models\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Genesis\",\n url: \"#\",\n },\n {\n title: \"Explorer\",\n url: \"#\",\n },\n {\n title: \"Quantum\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Documentation\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"Introduction\",\n url: \"#\",\n },\n {\n title: \"Get Started\",\n url: \"#\",\n },\n {\n title: \"Tutorials\",\n url: \"#\",\n },\n {\n title: \"Changelog\",\n url: \"#\",\n },\n ],\n },\n {\n title: \"Settings\",\n url: \"#\",\n icon: (\n \n ),\n items: [\n {\n title: \"General\",\n url: \"#\",\n },\n {\n title: \"Team\",\n url: \"#\",\n },\n {\n title: \"Billing\",\n url: \"#\",\n },\n {\n title: \"Limits\",\n url: \"#\",\n },\n ],\n },\n ],\n projects: [\n {\n name: \"Design Engineering\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Sales & Marketing\",\n url: \"#\",\n icon: (\n \n ),\n },\n {\n name: \"Travel\",\n url: \"#\",\n icon: (\n \n ),\n },\n ],\n }\n\n const [activeTeam, setActiveTeam] = React.useState(data.teams[0])\n\n return (\n \n \n \n \n \n \n \n }\n >\n }\n nativeButton={false}\n className=\"size-8\"\n >\n \n \n \n \n \n \n
\n \n {activeTeam.name}\n \n {activeTeam.plan}\n
\n \n \n \n \n Teams\n \n \n {data.teams.map((team) => (\n setActiveTeam(team)}\n >\n {team.name}\n \n ))}\n \n \n
\n
\n
\n
\n \n \n Platform\n \n {data.navMain.map((item) => (\n \n \n }\n >\n {item.icon}\n {item.title}\n \n \n \n \n {item.items?.map((subItem) => (\n \n }\n >\n {subItem.title}\n \n \n ))}\n \n \n \n \n ))}\n \n \n \n Projects\n \n {data.projects.map((item) => (\n \n }>\n {item.icon}\n {item.name}\n \n \n ))}\n \n \n \n \n \n \n \n \n }\n >\n \n \n CN\n \n
\n \n {data.user.name}\n \n {data.user.email}\n
\n \n \n \n \n \n \n \n \n \n CN\n \n \n \n {data.user.name}\n {data.user.email}\n \n \n \n \n \n \n Account\n Billing\n Settings\n \n \n \n Log out\n \n \n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n )\n}\n", "type": "registry:example" } ], diff --git a/packages/shadcn/src/utils/resolve-import.ts b/packages/shadcn/src/utils/resolve-import.ts index 0a1332da56..3ac6d9f0bf 100644 --- a/packages/shadcn/src/utils/resolve-import.ts +++ b/packages/shadcn/src/utils/resolve-import.ts @@ -11,9 +11,8 @@ export async function resolveImport( try { // @ts-ignore const resolved = import.meta.resolve(importPath, import.meta.url) - if(resolved) return resolved; - } - catch { + if (resolved) return resolved + } catch { // If native resolution fails, fallback to manual resolution. } diff --git a/packages/shadcn/src/utils/updaters/update-files.ts b/packages/shadcn/src/utils/updaters/update-files.ts index 104ce8c9d8..ab61850e64 100644 --- a/packages/shadcn/src/utils/updaters/update-files.ts +++ b/packages/shadcn/src/utils/updaters/update-files.ts @@ -716,8 +716,7 @@ export function toAliasedImport( aliasKey === "cwd" ? projectInfo.aliasPrefix?.startsWith("#") : config.aliases[aliasKey as keyof typeof config.aliases]?.startsWith("#") - const keepExt = - codeExts.includes(ext) && !isSubpathImport ? "" : ext + const keepExt = codeExts.includes(ext) && !isSubpathImport ? "" : ext let noExt = rel.slice(0, rel.length - ext.length) // 4️⃣ Collapse "/index" to its directory