mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-11 09:51:40 +00:00
wip
This commit is contained in:
@@ -1,17 +1,15 @@
|
||||
"use client"
|
||||
|
||||
import * as React from "react"
|
||||
import {
|
||||
ComputerTerminal01Icon,
|
||||
Copy01Icon,
|
||||
Tick02Icon,
|
||||
} from "@hugeicons/core-free-icons"
|
||||
import { HugeiconsIcon } from "@hugeicons/react"
|
||||
import * as React from "react"
|
||||
import { toast } from "sonner"
|
||||
|
||||
import { useDesignSystemSearchParams } from "@/app/(create)/lib/search-params"
|
||||
import { copyToClipboardWithMeta } from "@/components/copy-button"
|
||||
import { useConfig } from "@/hooks/use-config"
|
||||
import { copyToClipboardWithMeta } from "@/components/copy-button"
|
||||
import { Button } from "@/registry/new-york-v4/ui/button"
|
||||
import {
|
||||
Dialog,
|
||||
@@ -41,6 +39,7 @@ import {
|
||||
TabsList,
|
||||
TabsTrigger,
|
||||
} from "@/registry/new-york-v4/ui/tabs"
|
||||
import { useDesignSystemSearchParams } from "@/app/(create)/lib/search-params"
|
||||
|
||||
const TEMPLATES = [
|
||||
{
|
||||
@@ -65,7 +64,7 @@ const TEMPLATES = [
|
||||
},
|
||||
] as const
|
||||
|
||||
export function ToolbarControls() {
|
||||
export function ProjectForm() {
|
||||
const [open, setOpen] = React.useState(false)
|
||||
const [params, setParams] = useDesignSystemSearchParams()
|
||||
const [config, setConfig] = useConfig()
|
||||
@@ -76,15 +75,40 @@ export function ToolbarControls() {
|
||||
const commands = React.useMemo(() => {
|
||||
const origin = process.env.NEXT_PUBLIC_APP_URL || "http://localhost:4000"
|
||||
const url = `${origin}/init?base=${params.base}&style=${params.style}&baseColor=${params.baseColor}&theme=${params.theme}&iconLibrary=${params.iconLibrary}&font=${params.font}&menuAccent=${params.menuAccent}&menuColor=${params.menuColor}&radius=${params.radius}&template=${params.template}&rtl=${params.rtl}`
|
||||
const templateFlag = params.template ? ` --template ${params.template}` : ""
|
||||
const rtlFlag = params.rtl ? " --rtl" : ""
|
||||
return {
|
||||
pnpm: `pnpm dlx shadcn@latest create${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
npm: `npx shadcn@latest create${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
yarn: `yarn dlx shadcn@latest create${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
bun: `bunx --bun shadcn@latest create${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
const templateFlag = params.template ? ` --template ${params.template}` : ""
|
||||
const isLocalDev = origin.includes("localhost")
|
||||
|
||||
if (!params.new) {
|
||||
return isLocalDev
|
||||
? {
|
||||
pnpm: `pnpm shadcn init${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
npm: `pnpm shadcn init${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
yarn: `pnpm shadcn init${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
bun: `pnpm shadcn init${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
}
|
||||
: {
|
||||
pnpm: `pnpm dlx shadcn@latest init${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
npm: `npx shadcn@latest init${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
yarn: `yarn dlx shadcn@latest init${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
bun: `bunx --bun shadcn@latest init${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
}
|
||||
}
|
||||
return isLocalDev
|
||||
? {
|
||||
pnpm: `pnpm shadcn create${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
npm: `pnpm shadcn create${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
yarn: `pnpm shadcn create${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
bun: `pnpm shadcn create${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
}
|
||||
: {
|
||||
pnpm: `pnpm dlx shadcn@latest create${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
npm: `npx shadcn@latest create${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
yarn: `yarn dlx shadcn@latest create${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
bun: `bunx --bun shadcn@latest create${rtlFlag} --preset "${url}"${templateFlag}`,
|
||||
}
|
||||
}, [
|
||||
params.new,
|
||||
params.base,
|
||||
params.style,
|
||||
params.baseColor,
|
||||
@@ -108,31 +132,6 @@ export function ToolbarControls() {
|
||||
}, [hasCopied])
|
||||
|
||||
const handleCopy = React.useCallback(() => {
|
||||
const properties: Record<string, string> = {
|
||||
command,
|
||||
}
|
||||
if (params.template) {
|
||||
properties.template = params.template
|
||||
}
|
||||
copyToClipboardWithMeta(command, {
|
||||
name: "copy_npm_command",
|
||||
properties,
|
||||
})
|
||||
setOpen(false)
|
||||
setHasCopied(true)
|
||||
toast("Command copied to clipboard.", {
|
||||
description:
|
||||
"Paste and run the command in your terminal to create a new shadcn/ui project.",
|
||||
position: "bottom-center",
|
||||
classNames: {
|
||||
content: "rounded-xl",
|
||||
toast: "rounded-xl!",
|
||||
description: "text-sm/leading-normal!",
|
||||
},
|
||||
})
|
||||
}, [command, params.template, setOpen])
|
||||
|
||||
const handleCopyFromTabs = React.useCallback(() => {
|
||||
const properties: Record<string, string> = {
|
||||
command,
|
||||
}
|
||||
@@ -163,23 +162,33 @@ export function ToolbarControls() {
|
||||
</DialogTrigger>
|
||||
<DialogContent className="dialog-ring min-w-0 overflow-hidden rounded-xl sm:max-w-md">
|
||||
<DialogHeader>
|
||||
<DialogTitle>Create Project</DialogTitle>
|
||||
<DialogTitle>
|
||||
{params.new
|
||||
? "Create Project"
|
||||
: "Initialize Project"}
|
||||
</DialogTitle>
|
||||
<DialogDescription className="text-balance">
|
||||
Select a template and run this command to create a{" "}
|
||||
{selectedTemplate?.title} + shadcn/ui project.
|
||||
Run this command to initialize shadcn/ui in your project.
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
<FieldGroup className="gap-3">
|
||||
<Field>
|
||||
<FieldLabel htmlFor="template" className="sr-only">
|
||||
Template
|
||||
<FieldLabel htmlFor="template">
|
||||
Select a template
|
||||
</FieldLabel>
|
||||
<FieldDescription>
|
||||
Which template would you like to use?
|
||||
</FieldDescription>
|
||||
<RadioGroup
|
||||
id="template"
|
||||
value={params.template}
|
||||
onValueChange={(value) => {
|
||||
setParams({
|
||||
template: value as "next" | "next-monorepo" | "start" | "vite",
|
||||
template: value as
|
||||
| "next"
|
||||
| "next-monorepo"
|
||||
| "start"
|
||||
| "vite",
|
||||
})
|
||||
}}
|
||||
className="grid grid-cols-2 gap-2"
|
||||
@@ -210,6 +219,24 @@ export function ToolbarControls() {
|
||||
))}
|
||||
</RadioGroup>
|
||||
</Field>
|
||||
<FieldLabel className="has-data-[state=checked]:border-primary/10 rounded-lg!">
|
||||
<Field orientation="horizontal">
|
||||
<FieldContent className="gap-1">
|
||||
<FieldTitle>Existing Project</FieldTitle>
|
||||
<FieldDescription>
|
||||
Initialize shadcn/ui in an existing project.
|
||||
</FieldDescription>
|
||||
</FieldContent>
|
||||
<Switch
|
||||
checked={!params.new}
|
||||
onCheckedChange={(checked) =>
|
||||
setParams({ new: !checked })
|
||||
}
|
||||
className="shadow-none"
|
||||
/>
|
||||
</Field>
|
||||
</FieldLabel>
|
||||
|
||||
<FieldLabel className="has-data-[state=checked]:border-primary/10 rounded-lg!">
|
||||
<Field orientation="horizontal">
|
||||
<FieldContent className="gap-1">
|
||||
@@ -232,6 +259,9 @@ export function ToolbarControls() {
|
||||
/>
|
||||
</Field>
|
||||
</FieldLabel>
|
||||
|
||||
</FieldGroup>
|
||||
<DialogFooter className="bg-muted/30 -mx-6 mt-2 -mb-6 flex flex-col gap-3 border-t p-6 sm:flex-col min-w-0">
|
||||
<Tabs
|
||||
value={packageManager}
|
||||
onValueChange={(value) => {
|
||||
@@ -253,7 +283,7 @@ export function ToolbarControls() {
|
||||
size="icon-sm"
|
||||
variant="ghost"
|
||||
className="ml-auto size-7 rounded-lg"
|
||||
onClick={handleCopyFromTabs}
|
||||
onClick={handleCopy}
|
||||
>
|
||||
{hasCopied ? (
|
||||
<HugeiconsIcon icon={Tick02Icon} className="size-4" />
|
||||
@@ -277,8 +307,6 @@ export function ToolbarControls() {
|
||||
)
|
||||
})}
|
||||
</Tabs>
|
||||
</FieldGroup>
|
||||
<DialogFooter className="bg-muted/50 -mx-6 mt-2 -mb-6 flex flex-col gap-2 border-t p-6 sm:flex-col">
|
||||
<Button
|
||||
size="sm"
|
||||
onClick={handleCopy}
|
||||
@@ -22,7 +22,7 @@ import { Preview } from "@/app/(create)/components/preview"
|
||||
import { RandomButton } from "@/app/(create)/components/random-button"
|
||||
import { ResetButton } from "@/app/(create)/components/reset-button"
|
||||
import { ShareButton } from "@/app/(create)/components/share-button"
|
||||
import { ToolbarControls } from "@/app/(create)/components/toolbar-controls"
|
||||
import { ProjectForm } from "@/app/(create)/components/project-form"
|
||||
import { V0Button } from "@/app/(create)/components/v0-button"
|
||||
import { WelcomeDialog } from "@/app/(create)/components/welcome-dialog"
|
||||
import { getItemsForBase } from "@/app/(create)/lib/api"
|
||||
@@ -125,7 +125,7 @@ export default async function CreatePage({
|
||||
/>
|
||||
<ShareButton />
|
||||
<V0Button />
|
||||
<ToolbarControls />
|
||||
<ProjectForm />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -61,6 +61,7 @@ const designSystemSearchParams = {
|
||||
radius: parseAsStringLiteral<RadiusValue>(
|
||||
RADII.map((r) => r.name)
|
||||
).withDefault("default"),
|
||||
new: parseAsBoolean.withDefault(true),
|
||||
template: parseAsStringLiteral([
|
||||
"next",
|
||||
"next-monorepo",
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
{
|
||||
"name": "radix-nova",
|
||||
"title": "Nova (Radix)",
|
||||
"description": "Nova / Hugeicons / Geist",
|
||||
"description": "Nova / Lucide / Geist",
|
||||
"base": "radix",
|
||||
"style": "nova",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"iconLibrary": "hugeicons",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "geist",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
@@ -83,12 +83,12 @@
|
||||
{
|
||||
"name": "base-nova",
|
||||
"title": "Nova (Base)",
|
||||
"description": "Nova / Hugeicons / Geist",
|
||||
"description": "Nova / Lucide / Geist",
|
||||
"base": "base",
|
||||
"style": "nova",
|
||||
"baseColor": "neutral",
|
||||
"theme": "neutral",
|
||||
"iconLibrary": "hugeicons",
|
||||
"iconLibrary": "lucide",
|
||||
"font": "geist",
|
||||
"item": "Item",
|
||||
"rtl": false,
|
||||
|
||||
@@ -761,4 +761,4 @@
|
||||
"url": "https://sona-ui.vercel.app/r/{name}.json",
|
||||
"description": "A modern UI component library built with React and TailwindCSS to help you build beautiful and accessible web applications faster."
|
||||
}
|
||||
]
|
||||
]
|
||||
31
apps/v4/public/r/styles/base-lyra/index.json
Normal file
31
apps/v4/public/r/styles/base-lyra/index.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
@@ -2,6 +2,66 @@
|
||||
"name": "shadcn/ui",
|
||||
"homepage": "https://ui.shadcn.com",
|
||||
"items": [
|
||||
{
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "accordion",
|
||||
"files": [
|
||||
|
||||
31
apps/v4/public/r/styles/base-lyra/style.json
Normal file
31
apps/v4/public/r/styles/base-lyra/style.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
31
apps/v4/public/r/styles/base-maia/index.json
Normal file
31
apps/v4/public/r/styles/base-maia/index.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
@@ -2,6 +2,66 @@
|
||||
"name": "shadcn/ui",
|
||||
"homepage": "https://ui.shadcn.com",
|
||||
"items": [
|
||||
{
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "accordion",
|
||||
"files": [
|
||||
|
||||
31
apps/v4/public/r/styles/base-maia/style.json
Normal file
31
apps/v4/public/r/styles/base-maia/style.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
31
apps/v4/public/r/styles/base-mira/index.json
Normal file
31
apps/v4/public/r/styles/base-mira/index.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
@@ -2,6 +2,66 @@
|
||||
"name": "shadcn/ui",
|
||||
"homepage": "https://ui.shadcn.com",
|
||||
"items": [
|
||||
{
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "accordion",
|
||||
"files": [
|
||||
|
||||
31
apps/v4/public/r/styles/base-mira/style.json
Normal file
31
apps/v4/public/r/styles/base-mira/style.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
31
apps/v4/public/r/styles/base-nova/index.json
Normal file
31
apps/v4/public/r/styles/base-nova/index.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
@@ -2,6 +2,66 @@
|
||||
"name": "shadcn/ui",
|
||||
"homepage": "https://ui.shadcn.com",
|
||||
"items": [
|
||||
{
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "accordion",
|
||||
"files": [
|
||||
|
||||
31
apps/v4/public/r/styles/base-nova/style.json
Normal file
31
apps/v4/public/r/styles/base-nova/style.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
31
apps/v4/public/r/styles/base-vega/index.json
Normal file
31
apps/v4/public/r/styles/base-vega/index.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
@@ -2,6 +2,66 @@
|
||||
"name": "shadcn/ui",
|
||||
"homepage": "https://ui.shadcn.com",
|
||||
"items": [
|
||||
{
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "accordion",
|
||||
"files": [
|
||||
|
||||
31
apps/v4/public/r/styles/base-vega/style.json
Normal file
31
apps/v4/public/r/styles/base-vega/style.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"@base-ui/react"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
31
apps/v4/public/r/styles/radix-lyra/index.json
Normal file
31
apps/v4/public/r/styles/radix-lyra/index.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
@@ -2,6 +2,66 @@
|
||||
"name": "shadcn/ui",
|
||||
"homepage": "https://ui.shadcn.com",
|
||||
"items": [
|
||||
{
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "accordion",
|
||||
"files": [
|
||||
|
||||
31
apps/v4/public/r/styles/radix-lyra/style.json
Normal file
31
apps/v4/public/r/styles/radix-lyra/style.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
31
apps/v4/public/r/styles/radix-maia/index.json
Normal file
31
apps/v4/public/r/styles/radix-maia/index.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
@@ -2,6 +2,66 @@
|
||||
"name": "shadcn/ui",
|
||||
"homepage": "https://ui.shadcn.com",
|
||||
"items": [
|
||||
{
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "accordion",
|
||||
"files": [
|
||||
|
||||
31
apps/v4/public/r/styles/radix-maia/style.json
Normal file
31
apps/v4/public/r/styles/radix-maia/style.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
31
apps/v4/public/r/styles/radix-mira/index.json
Normal file
31
apps/v4/public/r/styles/radix-mira/index.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
@@ -2,6 +2,66 @@
|
||||
"name": "shadcn/ui",
|
||||
"homepage": "https://ui.shadcn.com",
|
||||
"items": [
|
||||
{
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "accordion",
|
||||
"files": [
|
||||
|
||||
31
apps/v4/public/r/styles/radix-mira/style.json
Normal file
31
apps/v4/public/r/styles/radix-mira/style.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
31
apps/v4/public/r/styles/radix-nova/index.json
Normal file
31
apps/v4/public/r/styles/radix-nova/index.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
@@ -2,6 +2,66 @@
|
||||
"name": "shadcn/ui",
|
||||
"homepage": "https://ui.shadcn.com",
|
||||
"items": [
|
||||
{
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "accordion",
|
||||
"files": [
|
||||
|
||||
31
apps/v4/public/r/styles/radix-nova/style.json
Normal file
31
apps/v4/public/r/styles/radix-nova/style.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
31
apps/v4/public/r/styles/radix-vega/index.json
Normal file
31
apps/v4/public/r/styles/radix-vega/index.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
@@ -2,6 +2,66 @@
|
||||
"name": "shadcn/ui",
|
||||
"homepage": "https://ui.shadcn.com",
|
||||
"items": [
|
||||
{
|
||||
"name": "index",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
},
|
||||
{
|
||||
"name": "accordion",
|
||||
"files": [
|
||||
|
||||
31
apps/v4/public/r/styles/radix-vega/style.json
Normal file
31
apps/v4/public/r/styles/radix-vega/style.json
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
|
||||
"name": "style",
|
||||
"dependencies": [
|
||||
"class-variance-authority",
|
||||
"lucide-react",
|
||||
"radix-ui"
|
||||
],
|
||||
"devDependencies": [
|
||||
"tw-animate-css",
|
||||
"shadcn"
|
||||
],
|
||||
"registryDependencies": [
|
||||
"utils"
|
||||
],
|
||||
"files": [],
|
||||
"cssVars": {},
|
||||
"css": {
|
||||
"@import \"tw-animate-css\"": {},
|
||||
"@import \"shadcn/tailwind.css\"": {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {}
|
||||
},
|
||||
"body": {
|
||||
"@apply bg-background text-foreground": {}
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "registry:style"
|
||||
}
|
||||
@@ -11,19 +11,47 @@ import { internal } from "./internal/_registry"
|
||||
import { lib } from "./lib/_registry"
|
||||
import { ui } from "./ui/_registry"
|
||||
|
||||
// Shared between index and style.
|
||||
const BASE_STYLE = {
|
||||
type: "registry:style",
|
||||
dependencies: ["class-variance-authority", "lucide-react", "@base-ui/react"],
|
||||
devDependencies: ["tw-animate-css", "shadcn"],
|
||||
registryDependencies: ["utils"],
|
||||
css: {
|
||||
'@import "tw-animate-css"': {},
|
||||
'@import "shadcn/tailwind.css"': {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {},
|
||||
},
|
||||
body: {
|
||||
"@apply bg-background text-foreground": {},
|
||||
},
|
||||
},
|
||||
},
|
||||
cssVars: {},
|
||||
files: [],
|
||||
}
|
||||
|
||||
export const registry = {
|
||||
name: "shadcn/ui",
|
||||
homepage: "https://ui.shadcn.com",
|
||||
items: z
|
||||
.array(registryItemSchema)
|
||||
.parse([
|
||||
...ui,
|
||||
...examples,
|
||||
...lib,
|
||||
...components,
|
||||
...blocks,
|
||||
...hooks,
|
||||
...internal,
|
||||
...fonts,
|
||||
]),
|
||||
items: z.array(registryItemSchema).parse([
|
||||
{
|
||||
name: "index",
|
||||
...BASE_STYLE,
|
||||
},
|
||||
{
|
||||
name: "style",
|
||||
...BASE_STYLE,
|
||||
},
|
||||
...ui,
|
||||
...examples,
|
||||
...lib,
|
||||
...components,
|
||||
...blocks,
|
||||
...hooks,
|
||||
...internal,
|
||||
...fonts,
|
||||
]),
|
||||
} satisfies Registry
|
||||
|
||||
@@ -11,19 +11,47 @@ import { internal } from "./internal/_registry"
|
||||
import { lib } from "./lib/_registry"
|
||||
import { ui } from "./ui/_registry"
|
||||
|
||||
// Shared between index and style.
|
||||
const RADIX_STYLE = {
|
||||
type: "registry:style",
|
||||
dependencies: ["class-variance-authority", "lucide-react", "radix-ui"],
|
||||
devDependencies: ["tw-animate-css", "shadcn"],
|
||||
registryDependencies: ["utils"],
|
||||
css: {
|
||||
'@import "tw-animate-css"': {},
|
||||
'@import "shadcn/tailwind.css"': {},
|
||||
"@layer base": {
|
||||
"*": {
|
||||
"@apply border-border outline-ring/50": {},
|
||||
},
|
||||
body: {
|
||||
"@apply bg-background text-foreground": {},
|
||||
},
|
||||
},
|
||||
},
|
||||
cssVars: {},
|
||||
files: [],
|
||||
}
|
||||
|
||||
export const registry = {
|
||||
name: "shadcn/ui",
|
||||
homepage: "https://ui.shadcn.com",
|
||||
items: z
|
||||
.array(registryItemSchema)
|
||||
.parse([
|
||||
...ui,
|
||||
...examples,
|
||||
...lib,
|
||||
...components,
|
||||
...internal,
|
||||
...blocks,
|
||||
...hooks,
|
||||
...fonts,
|
||||
]),
|
||||
items: z.array(registryItemSchema).parse([
|
||||
{
|
||||
name: "index",
|
||||
...RADIX_STYLE,
|
||||
},
|
||||
{
|
||||
name: "style",
|
||||
...RADIX_STYLE,
|
||||
},
|
||||
...ui,
|
||||
...examples,
|
||||
...lib,
|
||||
...components,
|
||||
...internal,
|
||||
...blocks,
|
||||
...hooks,
|
||||
...fonts,
|
||||
]),
|
||||
} satisfies Registry
|
||||
|
||||
@@ -94,7 +94,10 @@ export const designSystemConfigSchema = z
|
||||
radius: z
|
||||
.enum(RADII.map((r) => r.name) as [RadiusValue, ...RadiusValue[]])
|
||||
.default("default"),
|
||||
template: z.enum(["next", "next-monorepo", "start", "vite"]).default("next").optional(),
|
||||
template: z
|
||||
.enum(["next", "next-monorepo", "start", "vite"])
|
||||
.default("next")
|
||||
.optional(),
|
||||
})
|
||||
.refine(
|
||||
(data) => {
|
||||
@@ -151,12 +154,12 @@ export const PRESETS: Preset[] = [
|
||||
{
|
||||
name: "radix-nova",
|
||||
title: "Nova (Radix)",
|
||||
description: "Nova / Hugeicons / Geist",
|
||||
description: "Nova / Lucide / Geist",
|
||||
base: "radix",
|
||||
style: "nova",
|
||||
baseColor: "neutral",
|
||||
theme: "neutral",
|
||||
iconLibrary: "hugeicons",
|
||||
iconLibrary: "lucide",
|
||||
font: "geist",
|
||||
item: "Item",
|
||||
rtl: false,
|
||||
@@ -216,12 +219,12 @@ export const PRESETS: Preset[] = [
|
||||
{
|
||||
name: "base-nova",
|
||||
title: "Nova (Base)",
|
||||
description: "Nova / Hugeicons / Geist",
|
||||
description: "Nova / Lucide / Geist",
|
||||
base: "base",
|
||||
style: "nova",
|
||||
baseColor: "neutral",
|
||||
theme: "neutral",
|
||||
iconLibrary: "hugeicons",
|
||||
iconLibrary: "lucide",
|
||||
font: "geist",
|
||||
item: "Item",
|
||||
rtl: false,
|
||||
|
||||
@@ -147,7 +147,8 @@ export const create = new Command()
|
||||
// Handle preset selection.
|
||||
const presetResult = await handlePresetOption(
|
||||
opts.preset ?? true,
|
||||
opts.rtl
|
||||
opts.rtl,
|
||||
"create"
|
||||
)
|
||||
|
||||
if (!presetResult) {
|
||||
|
||||
@@ -13,7 +13,6 @@ import { clearRegistryContext } from "@/src/registry/context"
|
||||
import { rawConfigSchema } from "@/src/schema"
|
||||
import { addComponents } from "@/src/utils/add-components"
|
||||
import { TEMPLATES, createProject } from "@/src/utils/create-project"
|
||||
import { initMonorepoProject } from "@/src/utils/init-monorepo"
|
||||
import { loadEnvFiles } from "@/src/utils/env-loader"
|
||||
import * as ERRORS from "@/src/utils/errors"
|
||||
import {
|
||||
@@ -39,10 +38,12 @@ import {
|
||||
} from "@/src/utils/get-project-info"
|
||||
import { handleError } from "@/src/utils/handle-error"
|
||||
import { highlighter } from "@/src/utils/highlighter"
|
||||
import { initMonorepoProject } from "@/src/utils/init-monorepo"
|
||||
import { logger } from "@/src/utils/logger"
|
||||
import {
|
||||
buildInitUrl,
|
||||
getShadcnCreateUrl,
|
||||
getShadcnInitUrl,
|
||||
handlePresetOption,
|
||||
} from "@/src/utils/presets"
|
||||
import { ensureRegistriesInConfig } from "@/src/utils/registries"
|
||||
@@ -129,6 +130,7 @@ export const init = new Command()
|
||||
"the base color to use. (neutral, gray, zinc, stone, slate)",
|
||||
undefined
|
||||
)
|
||||
.option("-p, --preset [name]", "use a preset configuration")
|
||||
.option("-y, --yes", "skip confirmation prompt.", true)
|
||||
.option("-d, --defaults,", "use default configuration.", false)
|
||||
.option("-f, --force", "force overwrite of existing configuration.", false)
|
||||
@@ -151,7 +153,6 @@ export const init = new Command()
|
||||
.option("--no-css-variables", "do not use css variables for theming.")
|
||||
.option("--no-base-style", "do not install the base shadcn style.")
|
||||
.option("--rtl", "enable RTL support.", false)
|
||||
.option("-p, --preset [name]", "use a preset configuration")
|
||||
.action(async (components, opts) => {
|
||||
try {
|
||||
// Apply defaults when --defaults flag is set.
|
||||
@@ -160,6 +161,20 @@ export const init = new Command()
|
||||
opts.baseColor = opts.baseColor || "neutral"
|
||||
}
|
||||
|
||||
// Validate template early.
|
||||
if (opts.template && !TEMPLATES[opts.template as keyof typeof TEMPLATES]) {
|
||||
logger.break()
|
||||
logger.error(
|
||||
`Invalid template: ${highlighter.info(
|
||||
opts.template
|
||||
)}. Use ${Object.keys(TEMPLATES)
|
||||
.map((t) => highlighter.info(t))
|
||||
.join(", ")}.`
|
||||
)
|
||||
logger.break()
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
// Run early preflight check for existing components.json.
|
||||
const cwd = path.resolve(opts.cwd)
|
||||
if (
|
||||
@@ -184,7 +199,8 @@ export const init = new Command()
|
||||
if (opts.preset !== undefined) {
|
||||
const presetResult = await handlePresetOption(
|
||||
opts.preset === true ? true : opts.preset,
|
||||
opts.rtl ?? false
|
||||
opts.rtl ?? false,
|
||||
"init"
|
||||
)
|
||||
|
||||
if (!presetResult) {
|
||||
@@ -215,28 +231,80 @@ export const init = new Command()
|
||||
}
|
||||
}
|
||||
|
||||
// Prompt to use shadcn/create when no preset, no components, and no defaults.
|
||||
// Prompt for preset when no preset, no components, and no defaults.
|
||||
if (
|
||||
opts.preset === undefined &&
|
||||
components.length === 0 &&
|
||||
!opts.defaults
|
||||
) {
|
||||
const createUrl = getShadcnCreateUrl(
|
||||
opts.rtl ? { rtl: "true" } : undefined
|
||||
// Determine template for the create URL.
|
||||
const hasPackageJson = fsExtra.existsSync(
|
||||
path.resolve(cwd, "package.json")
|
||||
)
|
||||
|
||||
if (!hasPackageJson) {
|
||||
// New project: prompt for template (skip if already set via -t flag).
|
||||
const { template } = await prompts({
|
||||
type: opts.template ? null : "select",
|
||||
name: "template",
|
||||
message: "Which template would you like to use?",
|
||||
choices: [
|
||||
{ title: "Next.js", value: "next" },
|
||||
{ title: "Next.js (Monorepo)", value: "next-monorepo" },
|
||||
{ title: "Vite", value: "vite" },
|
||||
{ title: "TanStack Start", value: "start" },
|
||||
],
|
||||
})
|
||||
|
||||
if (template) {
|
||||
opts.template = template
|
||||
}
|
||||
|
||||
if (!opts.template) {
|
||||
process.exit(0)
|
||||
}
|
||||
}
|
||||
|
||||
// For existing projects, detect framework for the create URL.
|
||||
if (hasPackageJson && !opts.template) {
|
||||
const frameworkTemplateMap: Record<string, string> = {
|
||||
"next-app": "next",
|
||||
"next-pages": "next",
|
||||
vite: "vite",
|
||||
"tanstack-start": "start",
|
||||
}
|
||||
const projectInfo = await getProjectInfo(cwd)
|
||||
if (projectInfo) {
|
||||
opts.template = frameworkTemplateMap[projectInfo.framework.name]
|
||||
}
|
||||
}
|
||||
|
||||
// Build create URL with template param.
|
||||
const createUrl = getShadcnCreateUrl({
|
||||
command: "init",
|
||||
...(opts.rtl && { rtl: "true" }),
|
||||
...(opts.template && { template: opts.template }),
|
||||
})
|
||||
|
||||
const { preset } = await prompts({
|
||||
type: "select",
|
||||
name: "preset",
|
||||
message: "Would you like to start with a preset?",
|
||||
message: "Which preset would you like to use?",
|
||||
choices: [
|
||||
{
|
||||
title: "Use shadcn/create to build a preset.",
|
||||
title: "Build your own",
|
||||
description: "Build a custom preset on ui.shadcn.com",
|
||||
value: "create",
|
||||
},
|
||||
{
|
||||
title: "No. Continue without a preset.",
|
||||
value: "defaults",
|
||||
title: "Radix UI",
|
||||
description: "Nova / Lucide / Geist",
|
||||
value: "radix",
|
||||
},
|
||||
{
|
||||
title: "Base UI",
|
||||
description: "Nova / Lucide / Geist",
|
||||
value: "base",
|
||||
},
|
||||
],
|
||||
})
|
||||
@@ -253,7 +321,24 @@ export const init = new Command()
|
||||
process.exit(0)
|
||||
}
|
||||
|
||||
// User chose no preset — continue with normal init flow.
|
||||
// User chose a default base (radix or base).
|
||||
const initUrl = buildInitUrl(
|
||||
{
|
||||
base: preset,
|
||||
style: "nova",
|
||||
baseColor: "neutral",
|
||||
theme: "neutral",
|
||||
iconLibrary: "lucide",
|
||||
font: "geist",
|
||||
rtl: opts.rtl ?? false,
|
||||
menuAccent: "subtle",
|
||||
menuColor: "default",
|
||||
radius: "default",
|
||||
},
|
||||
opts.rtl ?? false
|
||||
)
|
||||
components = [initUrl, ...components]
|
||||
opts.baseColor = "neutral"
|
||||
}
|
||||
|
||||
const options = initOptionsSchema.parse({
|
||||
@@ -415,14 +500,14 @@ export async function runInit(
|
||||
}
|
||||
|
||||
const components = [
|
||||
...(options.baseStyle ? ["index"] : []),
|
||||
...(options.installStyleIndex ? ["index"] : []),
|
||||
...(options.components ?? []),
|
||||
]
|
||||
|
||||
return await initMonorepoProject({
|
||||
projectPath: options.cwd,
|
||||
components,
|
||||
baseStyle: options.baseStyle,
|
||||
installStyleIndex: options.installStyleIndex,
|
||||
baseColor: options.baseColor ?? "neutral",
|
||||
registryBaseConfig: options.registryBaseConfig,
|
||||
rtl: options.rtl ?? false,
|
||||
|
||||
@@ -15,7 +15,7 @@ import fsExtra from "fs-extra"
|
||||
export async function initMonorepoProject(options: {
|
||||
projectPath: string
|
||||
components: string[]
|
||||
baseStyle: boolean
|
||||
installStyleIndex: boolean
|
||||
baseColor: string
|
||||
registryBaseConfig?: Record<string, unknown>
|
||||
rtl: boolean
|
||||
|
||||
@@ -23,7 +23,22 @@ export function getShadcnInitUrl() {
|
||||
return `${SHADCN_URL}/init`
|
||||
}
|
||||
|
||||
export function buildInitUrl(preset: Preset, rtl: boolean) {
|
||||
export function buildInitUrl(
|
||||
preset: Pick<
|
||||
Preset,
|
||||
| "base"
|
||||
| "style"
|
||||
| "baseColor"
|
||||
| "theme"
|
||||
| "iconLibrary"
|
||||
| "font"
|
||||
| "rtl"
|
||||
| "menuAccent"
|
||||
| "menuColor"
|
||||
| "radius"
|
||||
>,
|
||||
rtl: boolean
|
||||
) {
|
||||
const params = new URLSearchParams({
|
||||
base: preset.base,
|
||||
style: preset.style,
|
||||
@@ -42,7 +57,8 @@ export function buildInitUrl(preset: Preset, rtl: boolean) {
|
||||
|
||||
export async function handlePresetOption(
|
||||
presetArg: string | boolean,
|
||||
rtl: boolean
|
||||
rtl: boolean,
|
||||
command: "create" | "init" = "create"
|
||||
) {
|
||||
// If --preset is used without a name, show interactive list.
|
||||
if (presetArg === true) {
|
||||
@@ -71,7 +87,10 @@ export async function handlePresetOption(
|
||||
}
|
||||
|
||||
if (selectedPreset === "custom") {
|
||||
const url = getShadcnCreateUrl(rtl ? { rtl: "true" } : undefined)
|
||||
const url = getShadcnCreateUrl({
|
||||
command,
|
||||
...(rtl && { rtl: "true" }),
|
||||
})
|
||||
logger.info(`\nOpening ${highlighter.info(url)} in your browser...\n`)
|
||||
await open(url)
|
||||
return null
|
||||
|
||||
@@ -497,6 +497,34 @@ describe("shadcn init - custom style", async () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe("shadcn init - template flag", () => {
|
||||
it("should reject invalid template", async () => {
|
||||
const fixturePath = await createFixtureTestDirectory("next-app")
|
||||
const result = await npxShadcn(fixturePath, ["init", "-t", "invalid"])
|
||||
|
||||
expect(result.exitCode).toBe(1)
|
||||
expect(result.stdout).toContain("Invalid template")
|
||||
})
|
||||
|
||||
it("should accept valid template with --defaults", async () => {
|
||||
const fixturePath = await createFixtureTestDirectory("next-app")
|
||||
await npxShadcn(fixturePath, [
|
||||
"init",
|
||||
"-t",
|
||||
"next",
|
||||
"--defaults",
|
||||
"--base-color=neutral",
|
||||
])
|
||||
|
||||
const componentsJsonPath = path.join(fixturePath, "components.json")
|
||||
expect(await fs.pathExists(componentsJsonPath)).toBe(true)
|
||||
|
||||
const componentsJson = await fs.readJson(componentsJsonPath)
|
||||
expect(componentsJson.style).toBe("new-york")
|
||||
expect(componentsJson.tailwind.baseColor).toBe("neutral")
|
||||
})
|
||||
})
|
||||
|
||||
describe("shadcn init - existing components.json", () => {
|
||||
// TODO: Revisit --force behavior. Currently it only skips backup merge,
|
||||
// but doesn't reset config values like style. Need to decide intended behavior.
|
||||
|
||||
386
pnpm-lock.yaml
generated
386
pnpm-lock.yaml
generated
@@ -35,10 +35,10 @@ importers:
|
||||
version: 0.20.0
|
||||
'@typescript-eslint/eslint-plugin':
|
||||
specifier: ^8.49.0
|
||||
version: 8.49.0(@typescript-eslint/parser@8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)
|
||||
version: 8.49.0(@typescript-eslint/parser@8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2))(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)
|
||||
'@typescript-eslint/parser':
|
||||
specifier: ^8.49.0
|
||||
version: 8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)
|
||||
version: 8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)
|
||||
autoprefixer:
|
||||
specifier: ^10.4.14
|
||||
version: 10.4.21(postcss@8.5.6)
|
||||
@@ -53,19 +53,19 @@ importers:
|
||||
version: 7.0.3
|
||||
eslint:
|
||||
specifier: ^9.26.0
|
||||
version: 9.26.0(jiti@1.21.7)
|
||||
version: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
eslint-config-next:
|
||||
specifier: ^15.0.0
|
||||
version: 15.5.11(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)
|
||||
version: 15.5.11(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)
|
||||
eslint-config-prettier:
|
||||
specifier: ^8.8.0
|
||||
version: 8.10.2(eslint@9.26.0(jiti@1.21.7))
|
||||
version: 8.10.2(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
eslint-config-turbo:
|
||||
specifier: ^1.9.9
|
||||
version: 1.13.4(eslint@9.26.0(jiti@1.21.7))
|
||||
version: 1.13.4(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
eslint-plugin-react:
|
||||
specifier: ^7.32.2
|
||||
version: 7.37.5(eslint@9.26.0(jiti@1.21.7))
|
||||
version: 7.37.5(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
eslint-plugin-tailwindcss:
|
||||
specifier: 3.13.1
|
||||
version: 3.13.1(tailwindcss@3.4.19(tsx@4.20.3)(yaml@2.8.1))
|
||||
@@ -415,7 +415,7 @@ importers:
|
||||
version: 4.1.5
|
||||
msw:
|
||||
specifier: ^2.10.4
|
||||
version: 2.10.4(@types/node@20.19.10)(typescript@5.9.2)
|
||||
version: 2.10.4(@types/node@24.10.13)(typescript@5.9.2)
|
||||
node-fetch:
|
||||
specifier: ^3.3.2
|
||||
version: 3.3.2
|
||||
@@ -3040,6 +3040,9 @@ packages:
|
||||
'@types/node@20.19.10':
|
||||
resolution: {integrity: sha512-iAFpG6DokED3roLSP0K+ybeDdIX6Bc0Vd3mLW5uDqThPWtNos3E+EqOM11mPQHKzfWHqEBuLjIlsBQQ8CsISmQ==}
|
||||
|
||||
'@types/node@24.10.13':
|
||||
resolution: {integrity: sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg==}
|
||||
|
||||
'@types/prompts@2.4.9':
|
||||
resolution: {integrity: sha512-qTxFi6Buiu8+50/+3DGIWLHM6QuWsEKugJnnP6iv2Mc4ncxE4A/OJkjuVOA+5X0X1S/nq5VJRa8Lu+nwcvbrKA==}
|
||||
|
||||
@@ -7550,6 +7553,9 @@ packages:
|
||||
undici-types@6.21.0:
|
||||
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
|
||||
|
||||
undici-types@7.16.0:
|
||||
resolution: {integrity: sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==}
|
||||
|
||||
unicorn-magic@0.1.0:
|
||||
resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==}
|
||||
engines: {node: '>=18'}
|
||||
@@ -7997,8 +8003,8 @@ snapshots:
|
||||
|
||||
'@ampproject/remapping@2.3.0':
|
||||
dependencies:
|
||||
'@jridgewell/gen-mapping': 0.3.12
|
||||
'@jridgewell/trace-mapping': 0.3.29
|
||||
'@jridgewell/gen-mapping': 0.3.13
|
||||
'@jridgewell/trace-mapping': 0.3.31
|
||||
|
||||
'@antfu/ni@25.0.0':
|
||||
dependencies:
|
||||
@@ -8039,8 +8045,8 @@ snapshots:
|
||||
dependencies:
|
||||
'@babel/parser': 7.28.0
|
||||
'@babel/types': 7.28.2
|
||||
'@jridgewell/gen-mapping': 0.3.12
|
||||
'@jridgewell/trace-mapping': 0.3.29
|
||||
'@jridgewell/gen-mapping': 0.3.13
|
||||
'@jridgewell/trace-mapping': 0.3.31
|
||||
jsesc: 3.1.0
|
||||
|
||||
'@babel/helper-annotate-as-pure@7.27.3':
|
||||
@@ -8802,16 +8808,16 @@ snapshots:
|
||||
'@esbuild/win32-x64@0.25.8':
|
||||
optional: true
|
||||
|
||||
'@eslint-community/eslint-utils@4.9.1(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))':
|
||||
dependencies:
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@eslint-community/eslint-utils@4.9.1(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1))':
|
||||
dependencies:
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@2.6.1)
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@eslint-community/eslint-utils@4.9.1(eslint@9.26.0(jiti@1.21.7))':
|
||||
dependencies:
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
eslint-visitor-keys: 3.4.3
|
||||
|
||||
'@eslint-community/regexpp@4.12.1': {}
|
||||
|
||||
'@eslint-community/regexpp@4.12.2': {}
|
||||
@@ -9035,6 +9041,14 @@ snapshots:
|
||||
'@inquirer/type': 3.0.8(@types/node@20.19.10)
|
||||
optionalDependencies:
|
||||
'@types/node': 20.19.10
|
||||
optional: true
|
||||
|
||||
'@inquirer/confirm@5.1.14(@types/node@24.10.13)':
|
||||
dependencies:
|
||||
'@inquirer/core': 10.1.15(@types/node@24.10.13)
|
||||
'@inquirer/type': 3.0.8(@types/node@24.10.13)
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.13
|
||||
|
||||
'@inquirer/core@10.1.15(@types/node@20.19.10)':
|
||||
dependencies:
|
||||
@@ -9048,12 +9062,31 @@ snapshots:
|
||||
yoctocolors-cjs: 2.1.2
|
||||
optionalDependencies:
|
||||
'@types/node': 20.19.10
|
||||
optional: true
|
||||
|
||||
'@inquirer/core@10.1.15(@types/node@24.10.13)':
|
||||
dependencies:
|
||||
'@inquirer/figures': 1.0.13
|
||||
'@inquirer/type': 3.0.8(@types/node@24.10.13)
|
||||
ansi-escapes: 4.3.2
|
||||
cli-width: 4.1.0
|
||||
mute-stream: 2.0.0
|
||||
signal-exit: 4.1.0
|
||||
wrap-ansi: 6.2.0
|
||||
yoctocolors-cjs: 2.1.2
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.13
|
||||
|
||||
'@inquirer/figures@1.0.13': {}
|
||||
|
||||
'@inquirer/type@3.0.8(@types/node@20.19.10)':
|
||||
optionalDependencies:
|
||||
'@types/node': 20.19.10
|
||||
optional: true
|
||||
|
||||
'@inquirer/type@3.0.8(@types/node@24.10.13)':
|
||||
optionalDependencies:
|
||||
'@types/node': 24.10.13
|
||||
|
||||
'@isaacs/balanced-match@4.0.1': {}
|
||||
|
||||
@@ -10546,6 +10579,11 @@ snapshots:
|
||||
dependencies:
|
||||
undici-types: 6.21.0
|
||||
|
||||
'@types/node@24.10.13':
|
||||
dependencies:
|
||||
undici-types: 7.16.0
|
||||
optional: true
|
||||
|
||||
'@types/prompts@2.4.9':
|
||||
dependencies:
|
||||
'@types/node': 20.19.10
|
||||
@@ -10599,15 +10637,15 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)':
|
||||
'@typescript-eslint/eslint-plugin@8.49.0(@typescript-eslint/parser@8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2))(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@typescript-eslint/parser': 8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)
|
||||
'@typescript-eslint/parser': 8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)
|
||||
'@typescript-eslint/scope-manager': 8.49.0
|
||||
'@typescript-eslint/type-utils': 8.49.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)
|
||||
'@typescript-eslint/utils': 8.49.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)
|
||||
'@typescript-eslint/type-utils': 8.49.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)
|
||||
'@typescript-eslint/utils': 8.49.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)
|
||||
'@typescript-eslint/visitor-keys': 8.49.0
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
ignore: 7.0.5
|
||||
natural-compare: 1.4.0
|
||||
ts-api-utils: 2.1.0(typescript@5.9.2)
|
||||
@@ -10639,14 +10677,14 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)':
|
||||
'@typescript-eslint/parser@8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 8.54.0
|
||||
'@typescript-eslint/types': 8.54.0
|
||||
'@typescript-eslint/typescript-estree': 8.54.0(typescript@5.9.2)
|
||||
'@typescript-eslint/visitor-keys': 8.54.0
|
||||
debug: 4.4.3
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
typescript: 5.9.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -10735,13 +10773,13 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/type-utils@8.49.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)':
|
||||
'@typescript-eslint/type-utils@8.49.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.49.0
|
||||
'@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.2)
|
||||
'@typescript-eslint/utils': 8.49.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)
|
||||
'@typescript-eslint/utils': 8.49.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)
|
||||
debug: 4.4.3
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
ts-api-utils: 2.1.0(typescript@5.9.2)
|
||||
typescript: 5.9.2
|
||||
transitivePeerDependencies:
|
||||
@@ -10828,13 +10866,13 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@8.49.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)':
|
||||
'@typescript-eslint/utils@8.49.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.9.1(eslint@9.26.0(jiti@1.21.7))
|
||||
'@eslint-community/eslint-utils': 4.9.1(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
'@typescript-eslint/scope-manager': 8.49.0
|
||||
'@typescript-eslint/types': 8.49.0
|
||||
'@typescript-eslint/typescript-estree': 8.49.0(typescript@5.9.2)
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
typescript: 5.9.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
@@ -12001,19 +12039,19 @@ snapshots:
|
||||
optionalDependencies:
|
||||
source-map: 0.6.1
|
||||
|
||||
eslint-config-next@15.5.11(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2):
|
||||
eslint-config-next@15.5.11(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2):
|
||||
dependencies:
|
||||
'@next/eslint-plugin-next': 15.5.11
|
||||
'@rushstack/eslint-patch': 1.12.0
|
||||
'@typescript-eslint/eslint-plugin': 8.49.0(@typescript-eslint/parser@8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2))(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)
|
||||
'@typescript-eslint/parser': 8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
'@typescript-eslint/eslint-plugin': 8.49.0(@typescript-eslint/parser@8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2))(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)
|
||||
'@typescript-eslint/parser': 8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.26.0(jiti@1.21.7))
|
||||
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.26.0(jiti@1.21.7))
|
||||
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.26.0(jiti@1.21.7))
|
||||
eslint-plugin-react: 7.37.5(eslint@9.26.0(jiti@1.21.7))
|
||||
eslint-plugin-react-hooks: 5.2.0(eslint@9.26.0(jiti@1.21.7))
|
||||
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
eslint-plugin-jsx-a11y: 6.10.2(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
eslint-plugin-react: 7.37.5(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
eslint-plugin-react-hooks: 5.2.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
optionalDependencies:
|
||||
typescript: 5.9.2
|
||||
transitivePeerDependencies:
|
||||
@@ -12041,14 +12079,14 @@ snapshots:
|
||||
- eslint-plugin-import-x
|
||||
- supports-color
|
||||
|
||||
eslint-config-prettier@8.10.2(eslint@9.26.0(jiti@1.21.7)):
|
||||
eslint-config-prettier@8.10.2(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7)):
|
||||
dependencies:
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
|
||||
eslint-config-turbo@1.13.4(eslint@9.26.0(jiti@1.21.7)):
|
||||
eslint-config-turbo@1.13.4(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7)):
|
||||
dependencies:
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
eslint-plugin-turbo: 1.13.4(eslint@9.26.0(jiti@1.21.7))
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
eslint-plugin-turbo: 1.13.4(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
|
||||
eslint-import-resolver-node@0.3.9:
|
||||
dependencies:
|
||||
@@ -12058,6 +12096,21 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7)):
|
||||
dependencies:
|
||||
'@nolyfill/is-core-module': 1.0.39
|
||||
debug: 4.4.3
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
get-tsconfig: 4.10.1
|
||||
is-bun-module: 2.0.0
|
||||
stable-hash: 0.0.5
|
||||
tinyglobby: 0.2.15
|
||||
unrs-resolver: 1.11.1
|
||||
optionalDependencies:
|
||||
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1)):
|
||||
dependencies:
|
||||
'@nolyfill/is-core-module': 1.0.39
|
||||
@@ -12073,22 +12126,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.26.0(jiti@1.21.7)):
|
||||
dependencies:
|
||||
'@nolyfill/is-core-module': 1.0.39
|
||||
debug: 4.4.3
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
get-tsconfig: 4.10.1
|
||||
is-bun-module: 2.0.0
|
||||
stable-hash: 0.0.5
|
||||
tinyglobby: 0.2.15
|
||||
unrs-resolver: 1.11.1
|
||||
optionalDependencies:
|
||||
eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.26.0(jiti@1.21.7))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.39.0(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1)))(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1)):
|
||||
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.39.0(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1)):
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
optionalDependencies:
|
||||
@@ -12099,14 +12137,14 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.26.0(jiti@1.21.7)))(eslint@9.26.0(jiti@1.21.7)):
|
||||
eslint-module-utils@2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7)):
|
||||
dependencies:
|
||||
debug: 3.2.7
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
'@typescript-eslint/parser': 8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.26.0(jiti@1.21.7))
|
||||
eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0)(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
@@ -12121,7 +12159,7 @@ snapshots:
|
||||
doctrine: 2.1.0
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@2.6.1)
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.39.0(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1)))(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1))
|
||||
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.39.0(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1))
|
||||
hasown: 2.0.2
|
||||
is-core-module: 2.16.1
|
||||
is-glob: 4.0.3
|
||||
@@ -12139,7 +12177,7 @@ snapshots:
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.26.0(jiti@1.21.7)):
|
||||
eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-typescript@3.10.1)(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7)):
|
||||
dependencies:
|
||||
'@rtsao/scc': 1.1.0
|
||||
array-includes: 3.1.9
|
||||
@@ -12148,9 +12186,9 @@ snapshots:
|
||||
array.prototype.flatmap: 1.3.3
|
||||
debug: 3.2.7
|
||||
doctrine: 2.1.0
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
eslint-import-resolver-node: 0.3.9
|
||||
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0)(eslint@9.26.0(jiti@1.21.7)))(eslint@9.26.0(jiti@1.21.7))
|
||||
eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2))(eslint-import-resolver-node@0.3.9)(eslint-import-resolver-typescript@3.10.1)(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
hasown: 2.0.2
|
||||
is-core-module: 2.16.1
|
||||
is-glob: 4.0.3
|
||||
@@ -12162,12 +12200,31 @@ snapshots:
|
||||
string.prototype.trimend: 1.0.9
|
||||
tsconfig-paths: 3.15.0
|
||||
optionalDependencies:
|
||||
'@typescript-eslint/parser': 8.54.0(eslint@9.26.0(jiti@1.21.7))(typescript@5.9.2)
|
||||
'@typescript-eslint/parser': 8.54.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))(typescript@5.9.2)
|
||||
transitivePeerDependencies:
|
||||
- eslint-import-resolver-typescript
|
||||
- eslint-import-resolver-webpack
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-jsx-a11y@6.10.2(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7)):
|
||||
dependencies:
|
||||
aria-query: 5.3.2
|
||||
array-includes: 3.1.9
|
||||
array.prototype.flatmap: 1.3.3
|
||||
ast-types-flow: 0.0.8
|
||||
axe-core: 4.10.3
|
||||
axobject-query: 4.1.0
|
||||
damerau-levenshtein: 1.0.8
|
||||
emoji-regex: 9.2.2
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
hasown: 2.0.2
|
||||
jsx-ast-utils: 3.3.5
|
||||
language-tags: 1.0.9
|
||||
minimatch: 3.1.2
|
||||
object.fromentries: 2.0.8
|
||||
safe-regex-test: 1.1.0
|
||||
string.prototype.includes: 2.0.1
|
||||
|
||||
eslint-plugin-jsx-a11y@6.10.2(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1)):
|
||||
dependencies:
|
||||
aria-query: 5.3.2
|
||||
@@ -12187,28 +12244,9 @@ snapshots:
|
||||
safe-regex-test: 1.1.0
|
||||
string.prototype.includes: 2.0.1
|
||||
|
||||
eslint-plugin-jsx-a11y@6.10.2(eslint@9.26.0(jiti@1.21.7)):
|
||||
eslint-plugin-react-hooks@5.2.0(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7)):
|
||||
dependencies:
|
||||
aria-query: 5.3.2
|
||||
array-includes: 3.1.9
|
||||
array.prototype.flatmap: 1.3.3
|
||||
ast-types-flow: 0.0.8
|
||||
axe-core: 4.10.3
|
||||
axobject-query: 4.1.0
|
||||
damerau-levenshtein: 1.0.8
|
||||
emoji-regex: 9.2.2
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
hasown: 2.0.2
|
||||
jsx-ast-utils: 3.3.5
|
||||
language-tags: 1.0.9
|
||||
minimatch: 3.1.2
|
||||
object.fromentries: 2.0.8
|
||||
safe-regex-test: 1.1.0
|
||||
string.prototype.includes: 2.0.1
|
||||
|
||||
eslint-plugin-react-hooks@5.2.0(eslint@9.26.0(jiti@1.21.7)):
|
||||
dependencies:
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
|
||||
eslint-plugin-react-hooks@7.0.1(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1)):
|
||||
dependencies:
|
||||
@@ -12221,6 +12259,28 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
eslint-plugin-react@7.37.5(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7)):
|
||||
dependencies:
|
||||
array-includes: 3.1.9
|
||||
array.prototype.findlast: 1.2.5
|
||||
array.prototype.flatmap: 1.3.3
|
||||
array.prototype.tosorted: 1.1.4
|
||||
doctrine: 2.1.0
|
||||
es-iterator-helpers: 1.2.1
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
estraverse: 5.3.0
|
||||
hasown: 2.0.2
|
||||
jsx-ast-utils: 3.3.5
|
||||
minimatch: 3.1.2
|
||||
object.entries: 1.1.9
|
||||
object.fromentries: 2.0.8
|
||||
object.values: 1.2.1
|
||||
prop-types: 15.8.1
|
||||
resolve: 2.0.0-next.5
|
||||
semver: 6.3.1
|
||||
string.prototype.matchall: 4.0.12
|
||||
string.prototype.repeat: 1.0.0
|
||||
|
||||
eslint-plugin-react@7.37.5(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1)):
|
||||
dependencies:
|
||||
array-includes: 3.1.9
|
||||
@@ -12243,38 +12303,16 @@ snapshots:
|
||||
string.prototype.matchall: 4.0.12
|
||||
string.prototype.repeat: 1.0.0
|
||||
|
||||
eslint-plugin-react@7.37.5(eslint@9.26.0(jiti@1.21.7)):
|
||||
dependencies:
|
||||
array-includes: 3.1.9
|
||||
array.prototype.findlast: 1.2.5
|
||||
array.prototype.flatmap: 1.3.3
|
||||
array.prototype.tosorted: 1.1.4
|
||||
doctrine: 2.1.0
|
||||
es-iterator-helpers: 1.2.1
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
estraverse: 5.3.0
|
||||
hasown: 2.0.2
|
||||
jsx-ast-utils: 3.3.5
|
||||
minimatch: 3.1.2
|
||||
object.entries: 1.1.9
|
||||
object.fromentries: 2.0.8
|
||||
object.values: 1.2.1
|
||||
prop-types: 15.8.1
|
||||
resolve: 2.0.0-next.5
|
||||
semver: 6.3.1
|
||||
string.prototype.matchall: 4.0.12
|
||||
string.prototype.repeat: 1.0.0
|
||||
|
||||
eslint-plugin-tailwindcss@3.13.1(tailwindcss@3.4.19(tsx@4.20.3)(yaml@2.8.1)):
|
||||
dependencies:
|
||||
fast-glob: 3.3.3
|
||||
postcss: 8.5.6
|
||||
tailwindcss: 3.4.19(tsx@4.20.3)(yaml@2.8.1)
|
||||
|
||||
eslint-plugin-turbo@1.13.4(eslint@9.26.0(jiti@1.21.7)):
|
||||
eslint-plugin-turbo@1.13.4(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7)):
|
||||
dependencies:
|
||||
dotenv: 16.0.3
|
||||
eslint: 9.26.0(jiti@1.21.7)
|
||||
eslint: 9.26.0(hono@4.11.7)(jiti@1.21.7)
|
||||
|
||||
eslint-scope@8.4.0:
|
||||
dependencies:
|
||||
@@ -12285,6 +12323,52 @@ snapshots:
|
||||
|
||||
eslint-visitor-keys@4.2.1: {}
|
||||
|
||||
eslint@9.26.0(hono@4.11.7)(jiti@1.21.7):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.9.1(eslint@9.26.0(hono@4.11.7)(jiti@1.21.7))
|
||||
'@eslint-community/regexpp': 4.12.2
|
||||
'@eslint/config-array': 0.20.1
|
||||
'@eslint/config-helpers': 0.2.3
|
||||
'@eslint/core': 0.13.0
|
||||
'@eslint/eslintrc': 3.3.3
|
||||
'@eslint/js': 9.26.0
|
||||
'@eslint/plugin-kit': 0.2.8
|
||||
'@humanfs/node': 0.16.7
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
'@humanwhocodes/retry': 0.4.3
|
||||
'@modelcontextprotocol/sdk': 1.25.3(hono@4.11.7)(zod@3.25.76)
|
||||
'@types/estree': 1.0.8
|
||||
'@types/json-schema': 7.0.15
|
||||
ajv: 6.12.6
|
||||
chalk: 4.1.2
|
||||
cross-spawn: 7.0.6
|
||||
debug: 4.4.3
|
||||
escape-string-regexp: 4.0.0
|
||||
eslint-scope: 8.4.0
|
||||
eslint-visitor-keys: 4.2.1
|
||||
espree: 10.4.0
|
||||
esquery: 1.7.0
|
||||
esutils: 2.0.3
|
||||
fast-deep-equal: 3.1.3
|
||||
file-entry-cache: 8.0.0
|
||||
find-up: 5.0.0
|
||||
glob-parent: 6.0.2
|
||||
ignore: 5.3.2
|
||||
imurmurhash: 0.1.4
|
||||
is-glob: 4.0.3
|
||||
json-stable-stringify-without-jsonify: 1.0.1
|
||||
lodash.merge: 4.6.2
|
||||
minimatch: 3.1.2
|
||||
natural-compare: 1.4.0
|
||||
optionator: 0.9.4
|
||||
zod: 3.25.76
|
||||
optionalDependencies:
|
||||
jiti: 1.21.7
|
||||
transitivePeerDependencies:
|
||||
- '@cfworker/json-schema'
|
||||
- hono
|
||||
- supports-color
|
||||
|
||||
eslint@9.26.0(hono@4.11.7)(jiti@2.6.1):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.9.1(eslint@9.26.0(hono@4.11.7)(jiti@2.6.1))
|
||||
@@ -12331,51 +12415,6 @@ snapshots:
|
||||
- hono
|
||||
- supports-color
|
||||
|
||||
eslint@9.26.0(jiti@1.21.7):
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.9.1(eslint@9.26.0(jiti@1.21.7))
|
||||
'@eslint-community/regexpp': 4.12.2
|
||||
'@eslint/config-array': 0.20.1
|
||||
'@eslint/config-helpers': 0.2.3
|
||||
'@eslint/core': 0.13.0
|
||||
'@eslint/eslintrc': 3.3.3
|
||||
'@eslint/js': 9.26.0
|
||||
'@eslint/plugin-kit': 0.2.8
|
||||
'@humanfs/node': 0.16.7
|
||||
'@humanwhocodes/module-importer': 1.0.1
|
||||
'@humanwhocodes/retry': 0.4.3
|
||||
'@modelcontextprotocol/sdk': 1.26.0(zod@3.25.76)
|
||||
'@types/estree': 1.0.8
|
||||
'@types/json-schema': 7.0.15
|
||||
ajv: 6.12.6
|
||||
chalk: 4.1.2
|
||||
cross-spawn: 7.0.6
|
||||
debug: 4.4.3
|
||||
escape-string-regexp: 4.0.0
|
||||
eslint-scope: 8.4.0
|
||||
eslint-visitor-keys: 4.2.1
|
||||
espree: 10.4.0
|
||||
esquery: 1.7.0
|
||||
esutils: 2.0.3
|
||||
fast-deep-equal: 3.1.3
|
||||
file-entry-cache: 8.0.0
|
||||
find-up: 5.0.0
|
||||
glob-parent: 6.0.2
|
||||
ignore: 5.3.2
|
||||
imurmurhash: 0.1.4
|
||||
is-glob: 4.0.3
|
||||
json-stable-stringify-without-jsonify: 1.0.1
|
||||
lodash.merge: 4.6.2
|
||||
minimatch: 3.1.2
|
||||
natural-compare: 1.4.0
|
||||
optionator: 0.9.4
|
||||
zod: 3.25.76
|
||||
optionalDependencies:
|
||||
jiti: 1.21.7
|
||||
transitivePeerDependencies:
|
||||
- '@cfworker/json-schema'
|
||||
- supports-color
|
||||
|
||||
espree@10.4.0:
|
||||
dependencies:
|
||||
acorn: 8.15.0
|
||||
@@ -14217,6 +14256,32 @@ snapshots:
|
||||
typescript: 5.9.2
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
optional: true
|
||||
|
||||
msw@2.10.4(@types/node@24.10.13)(typescript@5.9.2):
|
||||
dependencies:
|
||||
'@bundled-es-modules/cookie': 2.0.1
|
||||
'@bundled-es-modules/statuses': 1.0.1
|
||||
'@bundled-es-modules/tough-cookie': 0.1.6
|
||||
'@inquirer/confirm': 5.1.14(@types/node@24.10.13)
|
||||
'@mswjs/interceptors': 0.39.5
|
||||
'@open-draft/deferred-promise': 2.2.0
|
||||
'@open-draft/until': 2.1.0
|
||||
'@types/cookie': 0.6.0
|
||||
'@types/statuses': 2.0.6
|
||||
graphql: 16.11.0
|
||||
headers-polyfill: 4.0.3
|
||||
is-node-process: 1.2.0
|
||||
outvariant: 1.4.3
|
||||
path-to-regexp: 6.3.0
|
||||
picocolors: 1.1.1
|
||||
strict-event-emitter: 0.5.1
|
||||
type-fest: 4.41.0
|
||||
yargs: 17.7.2
|
||||
optionalDependencies:
|
||||
typescript: 5.9.2
|
||||
transitivePeerDependencies:
|
||||
- '@types/node'
|
||||
|
||||
mute-stream@2.0.0: {}
|
||||
|
||||
@@ -15967,6 +16032,9 @@ snapshots:
|
||||
|
||||
undici-types@6.21.0: {}
|
||||
|
||||
undici-types@7.16.0:
|
||||
optional: true
|
||||
|
||||
unicorn-magic@0.1.0: {}
|
||||
|
||||
unicorn-magic@0.3.0: {}
|
||||
|
||||
@@ -1,14 +1,8 @@
|
||||
import { Button } from "@workspace/ui/components/button"
|
||||
|
||||
export default function Page() {
|
||||
return (
|
||||
<div className="flex items-center justify-center min-h-svh">
|
||||
<div className="flex flex-col items-center justify-center gap-4">
|
||||
<h1 className="text-2xl font-bold">Hello World</h1>
|
||||
<div className="flex gap-2">
|
||||
<Button>Button</Button>
|
||||
<Button variant="outline">Outline</Button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user