Compare commits

...

24 Commits

Author SHA1 Message Date
shadcn
b8c7ae8088 Merge pull request #9528 from shadcn-ui/changeset-release/main
chore(release): version packages
2026-02-02 15:29:24 +04:00
github-actions[bot]
d21c74fb3a chore(release): version packages 2026-02-02 11:25:41 +00:00
shadcn
d6548b4ae8 Merge pull request #9507 from shadcn-ui/ny-radix-ui
feat: update new-york to radix-ui
2026-02-02 15:24:41 +04:00
shadcn
110a4ec10b docs: add changelog 2026-02-02 15:15:02 +04:00
shadcn
851562f4f2 Merge branch 'ny-radix-ui' of github.com:shadcn-ui/ui into ny-radix-ui 2026-02-02 14:32:21 +04:00
shadcn
b7b839ebc2 chore: changeset 2026-02-02 14:32:01 +04:00
shadcn
8d9be074a3 feat: update migrate radix command 2026-02-02 14:31:40 +04:00
shadcn
a0c077da9e Merge branch 'main' into ny-radix-ui 2026-02-02 13:15:42 +04:00
shadcn
540cd031c3 fix 2026-02-02 13:14:09 +04:00
shadcn
f1e10f3da8 Merge pull request #9495 from withden/patch-3 2026-02-02 08:40:02 +04:00
Denish Navadiya
e2225d4a93 Rename @paceui to @pacekit with updated details
Updated '@paceui' to '@pacekit' with new homepage, URL, and description.
2026-02-02 10:07:22 +05:30
Copilot
03a7804c42 Update callout component to use rounded-xl (#9512)
* Initial plan

* Fix callout component to use rounded-lg in style-lyra.css

Co-authored-by: shadcn <124599+shadcn@users.noreply.github.com>

* Revert CSS change - callout.tsx already has rounded-lg

Co-authored-by: shadcn <124599+shadcn@users.noreply.github.com>

* Change callout rounded class from rounded-lg to rounded-xl

Co-authored-by: shadcn <124599+shadcn@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: shadcn <124599+shadcn@users.noreply.github.com>
2026-02-01 15:44:23 +04:00
Chad Bell
acc847bed3 docs(select): add SelectGroup to usage examples (#9508) 2026-02-01 10:19:59 +04:00
shadcn
abfa2ddb74 Merge branch 'main' into ny-radix-ui 2026-01-31 21:19:59 +04:00
shadcn
5e92c160dd feat: update new-york to radix-ui 2026-01-31 21:18:49 +04:00
shadcn
d41e857ba3 fix: select group in field-demo (#9504) 2026-01-31 15:32:07 +04:00
dependabot[bot]
99651191cc chore(deps): bump next in /templates/monorepo-next/apps/web (#9499)
Bumps [next](https://github.com/vercel/next.js) from 16.0.10 to 16.1.5.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v16.0.10...v16.1.5)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 16.1.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-31 15:25:45 +04:00
dependabot[bot]
712285f60e chore(deps): bump eslint from 8.57.1 to 9.26.0 (#9500)
Bumps [eslint](https://github.com/eslint/eslint) from 8.57.1 to 9.26.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/v9.26.0/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.57.1...v9.26.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.26.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-31 15:25:21 +04:00
github-actions[bot]
aed95086e0 chore(release): version packages (#9503)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-01-31 15:10:28 +04:00
shadcn
1990280d66 ci: update changesets 2026-01-31 15:04:54 +04:00
shadcn
2bf55c9133 feat: add geist fonts (#9502) 2026-01-31 14:52:43 +04:00
shadcn
3192a3db55 fix: registry script 2026-01-31 11:34:35 +04:00
shadcn
afa2a7adf2 fix 2026-01-30 22:14:48 +04:00
Denish Navadiya
7ea124b25d Rename @paceui to @pacekit with updated details 2026-01-30 17:42:39 +05:30
154 changed files with 6857 additions and 2975 deletions

View File

@@ -1,12 +1,12 @@
// ORIGINALLY FROM CLOUDFLARE WRANGLER:
// https://github.com/cloudflare/wrangler2/blob/main/.github/changeset-version.js
import { exec } from "child_process"
import { execSync } from "child_process"
// This script is used by the `release.yml` workflow to update the version of the packages being released.
// The standard step is only to run `changeset version` but this does not update the package-lock.json file.
// So we also run `npm install`, which does this update.
// The standard step is only to run `changeset version` but this does not update the pnpm-lock.yaml file.
// So we also run `pnpm install`, which does this update.
// This is a workaround until this is handled automatically by `changeset version`.
// See https://github.com/changesets/changesets/issues/421.
exec("npx changeset version")
exec("npm install")
execSync("npx changeset version", { stdio: "inherit" })
execSync("pnpm install --lockfile-only", { stdio: "inherit" })

View File

@@ -13,6 +13,7 @@ import { Input } from "@/examples/radix/ui/input"
import {
Select,
SelectContent,
SelectGroup,
SelectItem,
SelectTrigger,
SelectValue,
@@ -69,18 +70,20 @@ export function FieldDemo() {
<SelectValue placeholder="MM" />
</SelectTrigger>
<SelectContent>
<SelectItem value="01">01</SelectItem>
<SelectItem value="02">02</SelectItem>
<SelectItem value="03">03</SelectItem>
<SelectItem value="04">04</SelectItem>
<SelectItem value="05">05</SelectItem>
<SelectItem value="06">06</SelectItem>
<SelectItem value="07">07</SelectItem>
<SelectItem value="08">08</SelectItem>
<SelectItem value="09">09</SelectItem>
<SelectItem value="10">10</SelectItem>
<SelectItem value="11">11</SelectItem>
<SelectItem value="12">12</SelectItem>
<SelectGroup>
<SelectItem value="01">01</SelectItem>
<SelectItem value="02">02</SelectItem>
<SelectItem value="03">03</SelectItem>
<SelectItem value="04">04</SelectItem>
<SelectItem value="05">05</SelectItem>
<SelectItem value="06">06</SelectItem>
<SelectItem value="07">07</SelectItem>
<SelectItem value="08">08</SelectItem>
<SelectItem value="09">09</SelectItem>
<SelectItem value="10">10</SelectItem>
<SelectItem value="11">11</SelectItem>
<SelectItem value="12">12</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
</Field>
@@ -93,12 +96,14 @@ export function FieldDemo() {
<SelectValue placeholder="YYYY" />
</SelectTrigger>
<SelectContent>
<SelectItem value="2024">2024</SelectItem>
<SelectItem value="2025">2025</SelectItem>
<SelectItem value="2026">2026</SelectItem>
<SelectItem value="2027">2027</SelectItem>
<SelectItem value="2028">2028</SelectItem>
<SelectItem value="2029">2029</SelectItem>
<SelectGroup>
<SelectItem value="2024">2024</SelectItem>
<SelectItem value="2025">2025</SelectItem>
<SelectItem value="2026">2026</SelectItem>
<SelectItem value="2027">2027</SelectItem>
<SelectItem value="2028">2028</SelectItem>
<SelectItem value="2029">2029</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
</Field>

View File

@@ -1,7 +1,7 @@
"use client"
import * as React from "react"
import { type SliderProps } from "@radix-ui/react-slider"
import type { Slider as SliderPrimitive } from "radix-ui"
import {
HoverCard,
@@ -12,7 +12,9 @@ import { Label } from "@/registry/new-york-v4/ui/label"
import { Slider } from "@/registry/new-york-v4/ui/slider"
interface MaxLengthSelectorProps {
defaultValue: SliderProps["defaultValue"]
defaultValue: React.ComponentProps<
typeof SliderPrimitive.Root
>["defaultValue"]
}
export function MaxLengthSelector({ defaultValue }: MaxLengthSelectorProps) {

View File

@@ -1,8 +1,8 @@
"use client"
import * as React from "react"
import { type PopoverProps } from "@radix-ui/react-popover"
import { Check, ChevronsUpDown } from "lucide-react"
import type { Popover as PopoverPrimitive } from "radix-ui"
import { cn } from "@/lib/utils"
import { useMutationObserver } from "@/hooks/use-mutation-observer"
@@ -29,7 +29,8 @@ import {
import { type Model, type ModelType } from "../data/models"
interface ModelSelectorProps extends PopoverProps {
interface ModelSelectorProps
extends React.ComponentProps<typeof PopoverPrimitive.Root> {
types: readonly ModelType[]
models: Model[]
}

View File

@@ -1,7 +1,6 @@
"use client"
import * as React from "react"
import { Dialog } from "@radix-ui/react-dialog"
import { MoreHorizontal } from "lucide-react"
import { toast } from "sonner"
@@ -16,6 +15,7 @@ import {
} from "@/registry/new-york-v4/ui/alert-dialog"
import { Button } from "@/registry/new-york-v4/ui/button"
import {
Dialog,
DialogClose,
DialogContent,
DialogDescription,

View File

@@ -1,8 +1,8 @@
"use client"
import * as React from "react"
import { type PopoverProps } from "@radix-ui/react-popover"
import { Check, ChevronsUpDown } from "lucide-react"
import type { Popover as PopoverPrimitive } from "radix-ui"
import { cn } from "@/lib/utils"
import { Button } from "@/registry/new-york-v4/ui/button"
@@ -23,7 +23,8 @@ import {
import { type Preset } from "../data/presets"
interface PresetSelectorProps extends PopoverProps {
interface PresetSelectorProps
extends React.ComponentProps<typeof PopoverPrimitive.Root> {
presets: Preset[]
}

View File

@@ -1,7 +1,7 @@
"use client"
import * as React from "react"
import { type SliderProps } from "@radix-ui/react-slider"
import type { Slider as SliderPrimitive } from "radix-ui"
import {
HoverCard,
@@ -12,7 +12,9 @@ import { Label } from "@/registry/new-york-v4/ui/label"
import { Slider } from "@/registry/new-york-v4/ui/slider"
interface TemperatureSelectorProps {
defaultValue: SliderProps["defaultValue"]
defaultValue: React.ComponentProps<
typeof SliderPrimitive.Root
>["defaultValue"]
}
export function TemperatureSelector({

View File

@@ -1,7 +1,7 @@
"use client"
import * as React from "react"
import { type SliderProps } from "@radix-ui/react-slider"
import type { Slider as SliderPrimitive } from "radix-ui"
import {
HoverCard,
@@ -12,7 +12,9 @@ import { Label } from "@/registry/new-york-v4/ui/label"
import { Slider } from "@/registry/new-york-v4/ui/slider"
interface TopPSelectorProps {
defaultValue: SliderProps["defaultValue"]
defaultValue: React.ComponentProps<
typeof SliderPrimitive.Root
>["defaultValue"]
}
export function TopPSelector({ defaultValue }: TopPSelectorProps) {

View File

@@ -1,6 +1,5 @@
"use client"
import { DropdownMenuTrigger } from "@radix-ui/react-dropdown-menu"
import { type Table } from "@tanstack/react-table"
import { Settings2 } from "lucide-react"
@@ -11,6 +10,7 @@ import {
DropdownMenuContent,
DropdownMenuLabel,
DropdownMenuSeparator,
DropdownMenuTrigger,
} from "@/registry/new-york-v4/ui/dropdown-menu"
export function DataTableViewOptions<TData>({

View File

@@ -59,7 +59,7 @@ export function FontPicker({
anchor={isMobile ? anchorRef : undefined}
side={isMobile ? "top" : "right"}
align={isMobile ? "center" : "start"}
className="max-h-80 md:w-72"
className="max-h-96 md:w-72"
>
<PickerRadioGroup
value={currentFont?.value}

View File

@@ -76,7 +76,7 @@ export function ThemePicker({
anchor={isMobile ? anchorRef : undefined}
side={isMobile ? "top" : "right"}
align={isMobile ? "center" : "start"}
className="max-h-96"
className="max-h-[23rem]"
>
<PickerRadioGroup
value={currentTheme?.name}

View File

@@ -38,15 +38,15 @@ const jetbrainsMono = JetBrains_Mono({
variable: "--font-jetbrains-mono",
})
// const geistSans = Geist({
// subsets: ["latin"],
// variable: "--font-geist-sans",
// })
const geistSans = Geist({
subsets: ["latin"],
variable: "--font-geist-sans",
})
// const geistMono = Geist_Mono({
// subsets: ["latin"],
// variable: "--font-geist-mono",
// })
const geistMono = Geist_Mono({
subsets: ["latin"],
variable: "--font-geist-mono",
})
const roboto = Roboto({
subsets: ["latin"],
@@ -74,12 +74,12 @@ const outfit = Outfit({
})
export const FONTS = [
// {
// name: "Geist Sans",
// value: "geist",
// font: geistSans,
// type: "sans",
// },
{
name: "Geist",
value: "geist",
font: geistSans,
type: "sans",
},
{
name: "Inter",
value: "inter",
@@ -134,18 +134,18 @@ export const FONTS = [
font: outfit,
type: "sans",
},
{
name: "Geist Mono",
value: "geist-mono",
font: geistMono,
type: "mono",
},
{
name: "JetBrains Mono",
value: "jetbrains-mono",
font: jetbrainsMono,
type: "mono",
},
// {
// name: "Geist Mono",
// value: "geist-mono",
// font: geistMono,
// type: "mono",
// },
] as const
export type Font = (typeof FONTS)[number]

View File

@@ -20,7 +20,7 @@ export function Callout({
<Alert
data-variant={variant}
className={cn(
"bg-surface text-surface-foreground border-surface mt-6 w-auto rounded-lg md:-mx-1 **:[code]:border",
"bg-surface text-surface-foreground border-surface mt-6 w-auto rounded-xl md:-mx-1 **:[code]:border",
className
)}
{...props}

View File

@@ -2,11 +2,10 @@
import * as React from "react"
import { usePathname, useRouter } from "next/navigation"
import * as DialogPrimitive from "@radix-ui/react-dialog"
import { type DialogProps } from "@radix-ui/react-dialog"
import { IconArrowRight } from "@tabler/icons-react"
import { useDocsSearch } from "fumadocs-core/search/client"
import { CornerDownLeftIcon, SquareDashedIcon } from "lucide-react"
import { Dialog as DialogPrimitive } from "radix-ui"
import { type Color, type ColorPalette } from "@/lib/colors"
import { trackEvent } from "@/lib/events"
@@ -44,7 +43,7 @@ export function CommandMenu({
blocks,
navItems,
...props
}: DialogProps & {
}: React.ComponentProps<typeof Dialog> & {
tree: typeof source.pageTree
colors: ColorPalette[]
blocks?: { name: string; description: string; categories: string[] }[]

View File

@@ -289,3 +289,47 @@ npx shadcn@latest migrate rtl "src/components/ui/**"
```
If no path is provided, the migration will transform all files in your `ui` directory (from `components.json`).
---
### migrate radix
The `radix` migration updates your imports from individual `@radix-ui/react-*` packages to the unified `radix-ui` package.
```bash
npx shadcn@latest migrate radix
```
This will:
1. Transform imports from `@radix-ui/react-*` to `radix-ui`
2. Add the `radix-ui` package to your `package.json`
**Before**
```tsx
import * as DialogPrimitive from "@radix-ui/react-dialog"
import * as SelectPrimitive from "@radix-ui/react-select"
```
**After**
```tsx
import { Dialog as DialogPrimitive, Select as SelectPrimitive } from "radix-ui"
```
**Migrate specific files**
You can migrate specific files or use glob patterns:
```bash
# Migrate a specific file.
npx shadcn@latest migrate radix src/components/ui/dialog.tsx
# Migrate files matching a glob pattern.
npx shadcn@latest migrate radix "src/components/ui/**"
```
If no path is provided, the migration will transform all files in your `ui` directory (from `components.json`).
Once complete, you can remove any unused `@radix-ui/react-*` packages from your `package.json`.

View File

@@ -0,0 +1,38 @@
---
title: February 2026 - Unified Radix UI Package
description: The new-york style now uses the unified radix-ui package.
date: 2026-02-02
---
The `new-york` style now uses the unified `radix-ui` package instead of individual `@radix-ui/react-*` packages.
### What's Changed
When you add components using the `new-york` style, they will now import from `radix-ui` instead of separate packages:
```diff title="components/ui/dialog.tsx"
- import * as DialogPrimitive from "@radix-ui/react-dialog"
+ import { Dialog as DialogPrimitive } from "radix-ui"
```
This results in a cleaner `package.json` with a single `radix-ui` dependency instead of multiple `@radix-ui/react-*` packages.
### Migrating Existing Projects
If you have an existing project using the `new-york` style, you can migrate to the new `radix-ui` package using the migrate command:
```bash
npx shadcn@latest migrate radix
```
This will update all imports in your UI components and add `radix-ui` to your dependencies.
To migrate components outside of your `ui` directory, use the `path` argument:
```bash
npx shadcn@latest migrate radix src/components/custom
```
Once complete, you can remove any unused `@radix-ui/react-*` packages from your `package.json`.
See the [migrate radix documentation](/docs/cli#migrate-radix) for more details.

View File

@@ -59,6 +59,7 @@ npm install @base-ui/react
import {
Select,
SelectContent,
SelectGroup,
SelectItem,
SelectTrigger,
SelectValue,
@@ -71,9 +72,11 @@ import {
<SelectValue placeholder="Theme" />
</SelectTrigger>
<SelectContent>
<SelectItem value="light">Light</SelectItem>
<SelectItem value="dark">Dark</SelectItem>
<SelectItem value="system">System</SelectItem>
<SelectGroup>
<SelectItem value="light">Light</SelectItem>
<SelectItem value="dark">Dark</SelectItem>
<SelectItem value="system">System</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
```

View File

@@ -59,6 +59,7 @@ npm install radix-ui
import {
Select,
SelectContent,
SelectGroup,
SelectItem,
SelectTrigger,
SelectValue,
@@ -71,9 +72,11 @@ import {
<SelectValue placeholder="Theme" />
</SelectTrigger>
<SelectContent>
<SelectItem value="light">Light</SelectItem>
<SelectItem value="dark">Dark</SelectItem>
<SelectItem value="system">System</SelectItem>
<SelectGroup>
<SelectItem value="light">Light</SelectItem>
<SelectItem value="dark">Dark</SelectItem>
<SelectItem value="system">System</SelectItem>
</SelectGroup>
</SelectContent>
</Select>
```

View File

@@ -66,7 +66,7 @@ export function DatePickerRtl() {
: undefined
return (
<Popover dir={dir}>
<Popover>
<PopoverTrigger
render={
<Button

View File

@@ -66,7 +66,7 @@ export function DatePickerRtl() {
: undefined
return (
<Popover dir={dir}>
<Popover>
<PopoverTrigger asChild>
<Button
variant="outline"

View File

@@ -32,36 +32,6 @@
"@hugeicons/core-free-icons": "^1.2.1",
"@hugeicons/react": "^1.1.1",
"@phosphor-icons/react": "^2.1.10",
"@radix-ui/react-accessible-icon": "^1.1.1",
"@radix-ui/react-accordion": "^1.2.12",
"@radix-ui/react-alert-dialog": "^1.1.5",
"@radix-ui/react-aspect-ratio": "^1.1.1",
"@radix-ui/react-avatar": "^1.1.2",
"@radix-ui/react-checkbox": "^1.1.3",
"@radix-ui/react-collapsible": "^1.1.2",
"@radix-ui/react-context-menu": "^2.2.5",
"@radix-ui/react-dialog": "^1.1.5",
"@radix-ui/react-dropdown-menu": "^2.1.5",
"@radix-ui/react-hover-card": "^1.1.5",
"@radix-ui/react-icons": "^1.3.2",
"@radix-ui/react-label": "^2.1.1",
"@radix-ui/react-menubar": "^1.1.5",
"@radix-ui/react-navigation-menu": "^1.2.14",
"@radix-ui/react-popover": "^1.1.5",
"@radix-ui/react-portal": "^1.1.3",
"@radix-ui/react-progress": "^1.1.1",
"@radix-ui/react-radio-group": "^1.2.2",
"@radix-ui/react-scroll-area": "^1.2.3",
"@radix-ui/react-select": "^2.1.5",
"@radix-ui/react-separator": "^1.1.1",
"@radix-ui/react-slider": "^1.2.2",
"@radix-ui/react-slot": "^1.1.1",
"@radix-ui/react-switch": "^1.1.2",
"@radix-ui/react-tabs": "^1.1.2",
"@radix-ui/react-toast": "^1.2.5",
"@radix-ui/react-toggle": "^1.1.10",
"@radix-ui/react-toggle-group": "^1.1.1",
"@radix-ui/react-tooltip": "^1.2.8",
"@remixicon/react": "^4.7.0",
"@tabler/icons-react": "^3.31.0",
"@tailwindcss/postcss": "^4.1.11",
@@ -104,7 +74,7 @@
"rehype-pretty-code": "^0.14.1",
"rimraf": "^6.0.1",
"server-only": "^0.0.1",
"shadcn": "3.8.0",
"shadcn": "3.8.2",
"shiki": "^1.10.1",
"sonner": "^2.0.0",
"swr": "^2.3.6",

View File

@@ -19,13 +19,13 @@
{
"name": "radix-nova",
"title": "Nova (Radix)",
"description": "Nova / Hugeicons / Inter",
"description": "Nova / Hugeicons / Geist",
"base": "radix",
"style": "nova",
"baseColor": "neutral",
"theme": "neutral",
"iconLibrary": "hugeicons",
"font": "inter",
"font": "geist",
"item": "Item",
"rtl": false,
"menuAccent": "subtle",
@@ -83,13 +83,13 @@
{
"name": "base-nova",
"title": "Nova (Base)",
"description": "Nova / Hugeicons / Inter",
"description": "Nova / Hugeicons / Geist",
"base": "base",
"style": "nova",
"baseColor": "neutral",
"theme": "neutral",
"iconLibrary": "hugeicons",
"font": "inter",
"font": "geist",
"item": "Item",
"rtl": false,
"menuAccent": "subtle",
@@ -161,4 +161,4 @@
"radius": "default"
}
]
}
}

View File

@@ -164,7 +164,7 @@
{
"name": "@elements",
"homepage": "https://www.tryelements.dev",
"url": "https://www.tryelements.dev/r/registry.json",
"url": "https://www.tryelements.dev/r/{name}.json",
"description": "Full-stack shadcn/ui components that go beyond UI. Add auth, monetization, uploads, and AI to your app in seconds."
},
{
@@ -176,7 +176,7 @@
{
"name": "@efferd",
"homepage": "https://efferd.com/",
"url": "https://efferd.com/r/registry.json",
"url": "https://efferd.com/r/{name}.json",
"description": "A collection of beautifully crafted Shadcn/UI blocks, designed to help developers build modern websites with ease."
},
{
@@ -342,10 +342,10 @@
"description": "React Aria Components with shadcn characteristics.Copy-and-paste react aria components that run side-by-side with shadcn components."
},
{
"name": "@paceui",
"homepage": "https://ui.paceui.com",
"url": "https://ui.paceui.com/r/{name}.json",
"description": "Animated components and building blocks built for smooth interaction and rich detail. Copy, customise, and create without the extra setup."
"name": "@pacekit",
"homepage": "https://ui.pacekit.dev",
"url": "https://ui.pacekit.dev/r/{name}.json",
"description": "Carefully built UI blocks for real apps and dashboards, designed to integrate smoothly from early ideas to production releases."
},
{
"name": "@pastecn",
@@ -368,7 +368,7 @@
{
"name": "@prompt-kit",
"homepage": "https://www.prompt-kit.com",
"url": "https://www.prompt-kit.com/c/registry.json",
"url": "https://www.prompt-kit.com/c/{name}.json",
"description": "Core building blocks for AI apps. High-quality, accessible, and customizable components for AI interfaces."
},
{
@@ -638,7 +638,7 @@
{
"name": "@beste-ui",
"homepage": "https://ui.beste.co",
"url": "https://ui.beste.co/r/registry.json",
"url": "https://ui.beste.co/r/{name}.json",
"description": "Production-ready UI blocks for landing pages, dashboards, and web apps."
},
{
@@ -707,4 +707,4 @@
"url": "https://typedora-ui.netlify.app/r/{name}.json",
"description": "Typedora UI is a next-generation extension layer for shadcn/ui, designed to bring full type-safety to your UI components."
}
]
]

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": [
"latin"
]
}
}

View File

@@ -24,7 +24,9 @@
},
{
"name": "alert-dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-lyra/ui/alert-dialog.tsx",
@@ -85,7 +87,9 @@
},
{
"name": "button-group",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/base-lyra/ui/button-group.tsx",
@@ -96,8 +100,13 @@
},
{
"name": "calendar",
"dependencies": ["react-day-picker@latest", "date-fns"],
"registryDependencies": ["button"],
"dependencies": [
"react-day-picker@latest",
"date-fns"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-lyra/ui/calendar.tsx",
@@ -118,8 +127,12 @@
},
{
"name": "carousel",
"dependencies": ["embla-carousel-react"],
"registryDependencies": ["button"],
"dependencies": [
"embla-carousel-react"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-lyra/ui/carousel.tsx",
@@ -130,8 +143,12 @@
},
{
"name": "chart",
"dependencies": ["recharts@2.15.4"],
"registryDependencies": ["card"],
"dependencies": [
"recharts@2.15.4"
],
"registryDependencies": [
"card"
],
"files": [
{
"path": "registry/base-lyra/ui/chart.tsx",
@@ -162,8 +179,13 @@
},
{
"name": "combobox",
"dependencies": ["@base-ui/react"],
"registryDependencies": ["button", "input-group"],
"dependencies": [
"@base-ui/react"
],
"registryDependencies": [
"button",
"input-group"
],
"files": [
{
"path": "registry/base-lyra/ui/combobox.tsx",
@@ -174,8 +196,13 @@
},
{
"name": "command",
"dependencies": ["cmdk"],
"registryDependencies": ["dialog", "input-group"],
"dependencies": [
"cmdk"
],
"registryDependencies": [
"dialog",
"input-group"
],
"files": [
{
"path": "registry/base-lyra/ui/command.tsx",
@@ -196,7 +223,9 @@
},
{
"name": "dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-lyra/ui/dialog.tsx",
@@ -207,7 +236,9 @@
},
{
"name": "drawer",
"dependencies": ["vaul"],
"dependencies": [
"vaul"
],
"files": [
{
"path": "registry/base-lyra/ui/drawer.tsx",
@@ -238,7 +269,10 @@
},
{
"name": "field",
"registryDependencies": ["label", "separator"],
"registryDependencies": [
"label",
"separator"
],
"files": [
{
"path": "registry/base-lyra/ui/field.tsx",
@@ -273,7 +307,11 @@
},
{
"name": "input-group",
"registryDependencies": ["button", "input", "textarea"],
"registryDependencies": [
"button",
"input",
"textarea"
],
"files": [
{
"path": "registry/base-lyra/ui/input-group.tsx",
@@ -284,7 +322,9 @@
},
{
"name": "input-otp",
"dependencies": ["input-otp"],
"dependencies": [
"input-otp"
],
"files": [
{
"path": "registry/base-lyra/ui/input-otp.tsx",
@@ -295,7 +335,9 @@
},
{
"name": "item",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/base-lyra/ui/item.tsx",
@@ -316,7 +358,9 @@
},
{
"name": "menubar",
"registryDependencies": ["dropdown-menu"],
"registryDependencies": [
"dropdown-menu"
],
"files": [
{
"path": "registry/base-lyra/ui/menubar.tsx",
@@ -337,7 +381,9 @@
},
{
"name": "pagination",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-lyra/ui/pagination.tsx",
@@ -378,7 +424,9 @@
},
{
"name": "resizable",
"dependencies": ["react-resizable-panels"],
"dependencies": [
"react-resizable-panels"
],
"files": [
{
"path": "registry/base-lyra/ui/resizable.tsx",
@@ -419,7 +467,9 @@
},
{
"name": "sheet",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-lyra/ui/sheet.tsx",
@@ -468,7 +518,10 @@
},
{
"name": "sonner",
"dependencies": ["sonner", "next-themes"],
"dependencies": [
"sonner",
"next-themes"
],
"files": [
{
"path": "registry/base-lyra/ui/sonner.tsx",
@@ -539,7 +592,9 @@
},
{
"name": "toggle-group",
"registryDependencies": ["toggle"],
"registryDependencies": [
"toggle"
],
"files": [
{
"path": "registry/base-lyra/ui/toggle-group.tsx",
@@ -580,7 +635,9 @@
},
{
"name": "direction",
"dependencies": ["@base-ui/react"],
"dependencies": [
"@base-ui/react"
],
"files": [
{
"path": "registry/base-lyra/ui/direction.tsx",
@@ -592,7 +649,12 @@
{
"name": "accordion-example",
"title": "Accordion",
"registryDependencies": ["accordion", "button", "card", "example"],
"registryDependencies": [
"accordion",
"button",
"card",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/accordion-example.tsx",
@@ -604,7 +666,11 @@
{
"name": "alert-example",
"title": "Alert",
"registryDependencies": ["alert", "badge", "example"],
"registryDependencies": [
"alert",
"badge",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/alert-example.tsx",
@@ -616,7 +682,12 @@
{
"name": "alert-dialog-example",
"title": "Alert Dialog",
"registryDependencies": ["alert-dialog", "button", "dialog", "example"],
"registryDependencies": [
"alert-dialog",
"button",
"dialog",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/alert-dialog-example.tsx",
@@ -628,7 +699,10 @@
{
"name": "aspect-ratio-example",
"title": "Aspect Ratio",
"registryDependencies": ["aspect-ratio", "example"],
"registryDependencies": [
"aspect-ratio",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/aspect-ratio-example.tsx",
@@ -640,7 +714,12 @@
{
"name": "avatar-example",
"title": "Avatar",
"registryDependencies": ["avatar", "button", "empty", "example"],
"registryDependencies": [
"avatar",
"button",
"empty",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/avatar-example.tsx",
@@ -652,7 +731,11 @@
{
"name": "badge-example",
"title": "Badge",
"registryDependencies": ["badge", "spinner", "example"],
"registryDependencies": [
"badge",
"spinner",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/badge-example.tsx",
@@ -664,7 +747,11 @@
{
"name": "breadcrumb-example",
"title": "Breadcrumb",
"registryDependencies": ["breadcrumb", "dropdown-menu", "example"],
"registryDependencies": [
"breadcrumb",
"dropdown-menu",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/breadcrumb-example.tsx",
@@ -676,7 +763,10 @@
{
"name": "button-example",
"title": "Button",
"registryDependencies": ["button", "example"],
"registryDependencies": [
"button",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/button-example.tsx",
@@ -752,7 +842,11 @@
{
"name": "carousel-example",
"title": "Carousel",
"registryDependencies": ["card", "carousel", "example"],
"registryDependencies": [
"card",
"carousel",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/carousel-example.tsx",
@@ -764,7 +858,11 @@
{
"name": "chart-example",
"title": "Chart",
"registryDependencies": ["chart", "card", "example"],
"registryDependencies": [
"chart",
"card",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/chart-example.tsx",
@@ -776,7 +874,12 @@
{
"name": "checkbox-example",
"title": "Checkbox",
"registryDependencies": ["checkbox", "field", "table", "example"],
"registryDependencies": [
"checkbox",
"field",
"table",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/checkbox-example.tsx",
@@ -831,7 +934,11 @@
{
"name": "command-example",
"title": "Command",
"registryDependencies": ["button", "command", "example"],
"registryDependencies": [
"button",
"command",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/command-example.tsx",
@@ -843,7 +950,12 @@
{
"name": "context-menu-example",
"title": "Context Menu",
"registryDependencies": ["button", "context-menu", "dialog", "example"],
"registryDependencies": [
"button",
"context-menu",
"dialog",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/context-menu-example.tsx",
@@ -882,7 +994,10 @@
{
"name": "drawer-example",
"title": "Drawer",
"registryDependencies": ["drawer", "example"],
"registryDependencies": [
"drawer",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/drawer-example.tsx",
@@ -955,7 +1070,12 @@
{
"name": "hover-card-example",
"title": "Hover Card",
"registryDependencies": ["button", "dialog", "hover-card", "example"],
"registryDependencies": [
"button",
"dialog",
"hover-card",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/hover-card-example.tsx",
@@ -1030,7 +1150,11 @@
{
"name": "item-example",
"title": "Item",
"registryDependencies": ["button", "item", "example"],
"registryDependencies": [
"button",
"item",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/item-example.tsx",
@@ -1079,7 +1203,12 @@
{
"name": "menubar-example",
"title": "Menubar",
"registryDependencies": ["button", "dialog", "menubar", "example"],
"registryDependencies": [
"button",
"dialog",
"menubar",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/menubar-example.tsx",
@@ -1091,7 +1220,11 @@
{
"name": "native-select-example",
"title": "Native Select",
"registryDependencies": ["field", "native-select", "example"],
"registryDependencies": [
"field",
"native-select",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/native-select-example.tsx",
@@ -1120,7 +1253,12 @@
{
"name": "pagination-example",
"title": "Pagination",
"registryDependencies": ["field", "pagination", "select", "example"],
"registryDependencies": [
"field",
"pagination",
"select",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/pagination-example.tsx",
@@ -1169,7 +1307,11 @@
{
"name": "radio-group-example",
"title": "Radio Group",
"registryDependencies": ["field", "radio-group", "example"],
"registryDependencies": [
"field",
"radio-group",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/radio-group-example.tsx",
@@ -1181,7 +1323,10 @@
{
"name": "resizable-example",
"title": "Resizable",
"registryDependencies": ["resizable", "example"],
"registryDependencies": [
"resizable",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/resizable-example.tsx",
@@ -1193,7 +1338,11 @@
{
"name": "scroll-area-example",
"title": "Scroll Area",
"registryDependencies": ["scroll-area", "separator", "example"],
"registryDependencies": [
"scroll-area",
"separator",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/scroll-area-example.tsx",
@@ -1226,7 +1375,10 @@
{
"name": "separator-example",
"title": "Separator",
"registryDependencies": ["separator", "example"],
"registryDependencies": [
"separator",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/separator-example.tsx",
@@ -1238,7 +1390,13 @@
{
"name": "sheet-example",
"title": "Sheet",
"registryDependencies": ["button", "field", "input", "sheet", "example"],
"registryDependencies": [
"button",
"field",
"input",
"sheet",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/sheet-example.tsx",
@@ -1289,7 +1447,11 @@
{
"name": "sidebar-inset-example",
"title": "Sidebar (Inset)",
"registryDependencies": ["collapsible", "sidebar", "example"],
"registryDependencies": [
"collapsible",
"sidebar",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/sidebar-inset-example.tsx",
@@ -1321,7 +1483,10 @@
{
"name": "skeleton-example",
"title": "Skeleton",
"registryDependencies": ["skeleton", "example"],
"registryDependencies": [
"skeleton",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/skeleton-example.tsx",
@@ -1333,7 +1498,11 @@
{
"name": "slider-example",
"title": "Slider",
"registryDependencies": ["label", "slider", "example"],
"registryDependencies": [
"label",
"slider",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/slider-example.tsx",
@@ -1345,7 +1514,10 @@
{
"name": "sonner-example",
"title": "Sonner",
"registryDependencies": ["sonner", "example"],
"registryDependencies": [
"sonner",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/sonner-example.tsx",
@@ -1377,7 +1549,12 @@
{
"name": "switch-example",
"title": "Switch",
"registryDependencies": ["field", "label", "switch", "example"],
"registryDependencies": [
"field",
"label",
"switch",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/switch-example.tsx",
@@ -1408,7 +1585,12 @@
{
"name": "tabs-example",
"title": "Tabs",
"registryDependencies": ["button", "dropdown-menu", "tabs", "example"],
"registryDependencies": [
"button",
"dropdown-menu",
"tabs",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/tabs-example.tsx",
@@ -1420,7 +1602,11 @@
{
"name": "textarea-example",
"title": "Textarea",
"registryDependencies": ["field", "textarea", "example"],
"registryDependencies": [
"field",
"textarea",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/textarea-example.tsx",
@@ -1432,7 +1618,10 @@
{
"name": "toggle-example",
"title": "Toggle",
"registryDependencies": ["toggle", "example"],
"registryDependencies": [
"toggle",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/toggle-example.tsx",
@@ -1444,7 +1633,12 @@
{
"name": "toggle-group-example",
"title": "Toggle Group",
"registryDependencies": ["input", "select", "toggle-group", "example"],
"registryDependencies": [
"input",
"select",
"toggle-group",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/toggle-group-example.tsx",
@@ -1456,7 +1650,12 @@
{
"name": "tooltip-example",
"title": "Tooltip",
"registryDependencies": ["button", "kbd", "tooltip", "example"],
"registryDependencies": [
"button",
"kbd",
"tooltip",
"example"
],
"files": [
{
"path": "registry/base-lyra/examples/tooltip-example.tsx",
@@ -1491,7 +1690,10 @@
},
{
"name": "utils",
"dependencies": ["clsx", "tailwind-merge"],
"dependencies": [
"clsx",
"tailwind-merge"
],
"files": [
{
"path": "registry/base-lyra/lib/utils.ts",
@@ -1553,7 +1755,11 @@
{
"name": "elevenlabs",
"title": "Elevenlabs",
"registryDependencies": ["example", "button", "card"],
"registryDependencies": [
"example",
"button",
"card"
],
"files": [
{
"path": "registry/base-lyra/blocks/elevenlabs.tsx",
@@ -1664,15 +1870,17 @@
"type": "registry:hook"
},
{
"name": "font-geist-sans",
"title": "Geist Sans",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1684,7 +1892,9 @@
"provider": "google",
"import": "Inter",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1718,7 +1928,9 @@
"provider": "google",
"import": "Figtree",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1730,7 +1942,9 @@
"provider": "google",
"import": "Roboto",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1742,7 +1956,9 @@
"provider": "google",
"import": "Raleway",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1754,7 +1970,9 @@
"provider": "google",
"import": "DM_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1766,7 +1984,9 @@
"provider": "google",
"import": "Public_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1778,7 +1998,9 @@
"provider": "google",
"import": "Outfit",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1790,8 +2012,24 @@
"provider": "google",
"import": "JetBrains_Mono",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": [
"latin"
]
}
}

View File

@@ -24,7 +24,9 @@
},
{
"name": "alert-dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-maia/ui/alert-dialog.tsx",
@@ -85,7 +87,9 @@
},
{
"name": "button-group",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/base-maia/ui/button-group.tsx",
@@ -96,8 +100,13 @@
},
{
"name": "calendar",
"dependencies": ["react-day-picker@latest", "date-fns"],
"registryDependencies": ["button"],
"dependencies": [
"react-day-picker@latest",
"date-fns"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-maia/ui/calendar.tsx",
@@ -118,8 +127,12 @@
},
{
"name": "carousel",
"dependencies": ["embla-carousel-react"],
"registryDependencies": ["button"],
"dependencies": [
"embla-carousel-react"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-maia/ui/carousel.tsx",
@@ -130,8 +143,12 @@
},
{
"name": "chart",
"dependencies": ["recharts@2.15.4"],
"registryDependencies": ["card"],
"dependencies": [
"recharts@2.15.4"
],
"registryDependencies": [
"card"
],
"files": [
{
"path": "registry/base-maia/ui/chart.tsx",
@@ -162,8 +179,13 @@
},
{
"name": "combobox",
"dependencies": ["@base-ui/react"],
"registryDependencies": ["button", "input-group"],
"dependencies": [
"@base-ui/react"
],
"registryDependencies": [
"button",
"input-group"
],
"files": [
{
"path": "registry/base-maia/ui/combobox.tsx",
@@ -174,8 +196,13 @@
},
{
"name": "command",
"dependencies": ["cmdk"],
"registryDependencies": ["dialog", "input-group"],
"dependencies": [
"cmdk"
],
"registryDependencies": [
"dialog",
"input-group"
],
"files": [
{
"path": "registry/base-maia/ui/command.tsx",
@@ -196,7 +223,9 @@
},
{
"name": "dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-maia/ui/dialog.tsx",
@@ -207,7 +236,9 @@
},
{
"name": "drawer",
"dependencies": ["vaul"],
"dependencies": [
"vaul"
],
"files": [
{
"path": "registry/base-maia/ui/drawer.tsx",
@@ -238,7 +269,10 @@
},
{
"name": "field",
"registryDependencies": ["label", "separator"],
"registryDependencies": [
"label",
"separator"
],
"files": [
{
"path": "registry/base-maia/ui/field.tsx",
@@ -273,7 +307,11 @@
},
{
"name": "input-group",
"registryDependencies": ["button", "input", "textarea"],
"registryDependencies": [
"button",
"input",
"textarea"
],
"files": [
{
"path": "registry/base-maia/ui/input-group.tsx",
@@ -284,7 +322,9 @@
},
{
"name": "input-otp",
"dependencies": ["input-otp"],
"dependencies": [
"input-otp"
],
"files": [
{
"path": "registry/base-maia/ui/input-otp.tsx",
@@ -295,7 +335,9 @@
},
{
"name": "item",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/base-maia/ui/item.tsx",
@@ -316,7 +358,9 @@
},
{
"name": "menubar",
"registryDependencies": ["dropdown-menu"],
"registryDependencies": [
"dropdown-menu"
],
"files": [
{
"path": "registry/base-maia/ui/menubar.tsx",
@@ -337,7 +381,9 @@
},
{
"name": "pagination",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-maia/ui/pagination.tsx",
@@ -378,7 +424,9 @@
},
{
"name": "resizable",
"dependencies": ["react-resizable-panels"],
"dependencies": [
"react-resizable-panels"
],
"files": [
{
"path": "registry/base-maia/ui/resizable.tsx",
@@ -419,7 +467,9 @@
},
{
"name": "sheet",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-maia/ui/sheet.tsx",
@@ -468,7 +518,10 @@
},
{
"name": "sonner",
"dependencies": ["sonner", "next-themes"],
"dependencies": [
"sonner",
"next-themes"
],
"files": [
{
"path": "registry/base-maia/ui/sonner.tsx",
@@ -539,7 +592,9 @@
},
{
"name": "toggle-group",
"registryDependencies": ["toggle"],
"registryDependencies": [
"toggle"
],
"files": [
{
"path": "registry/base-maia/ui/toggle-group.tsx",
@@ -580,7 +635,9 @@
},
{
"name": "direction",
"dependencies": ["@base-ui/react"],
"dependencies": [
"@base-ui/react"
],
"files": [
{
"path": "registry/base-maia/ui/direction.tsx",
@@ -592,7 +649,12 @@
{
"name": "accordion-example",
"title": "Accordion",
"registryDependencies": ["accordion", "button", "card", "example"],
"registryDependencies": [
"accordion",
"button",
"card",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/accordion-example.tsx",
@@ -604,7 +666,11 @@
{
"name": "alert-example",
"title": "Alert",
"registryDependencies": ["alert", "badge", "example"],
"registryDependencies": [
"alert",
"badge",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/alert-example.tsx",
@@ -616,7 +682,12 @@
{
"name": "alert-dialog-example",
"title": "Alert Dialog",
"registryDependencies": ["alert-dialog", "button", "dialog", "example"],
"registryDependencies": [
"alert-dialog",
"button",
"dialog",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/alert-dialog-example.tsx",
@@ -628,7 +699,10 @@
{
"name": "aspect-ratio-example",
"title": "Aspect Ratio",
"registryDependencies": ["aspect-ratio", "example"],
"registryDependencies": [
"aspect-ratio",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/aspect-ratio-example.tsx",
@@ -640,7 +714,12 @@
{
"name": "avatar-example",
"title": "Avatar",
"registryDependencies": ["avatar", "button", "empty", "example"],
"registryDependencies": [
"avatar",
"button",
"empty",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/avatar-example.tsx",
@@ -652,7 +731,11 @@
{
"name": "badge-example",
"title": "Badge",
"registryDependencies": ["badge", "spinner", "example"],
"registryDependencies": [
"badge",
"spinner",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/badge-example.tsx",
@@ -664,7 +747,11 @@
{
"name": "breadcrumb-example",
"title": "Breadcrumb",
"registryDependencies": ["breadcrumb", "dropdown-menu", "example"],
"registryDependencies": [
"breadcrumb",
"dropdown-menu",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/breadcrumb-example.tsx",
@@ -676,7 +763,10 @@
{
"name": "button-example",
"title": "Button",
"registryDependencies": ["button", "example"],
"registryDependencies": [
"button",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/button-example.tsx",
@@ -752,7 +842,11 @@
{
"name": "carousel-example",
"title": "Carousel",
"registryDependencies": ["card", "carousel", "example"],
"registryDependencies": [
"card",
"carousel",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/carousel-example.tsx",
@@ -764,7 +858,11 @@
{
"name": "chart-example",
"title": "Chart",
"registryDependencies": ["chart", "card", "example"],
"registryDependencies": [
"chart",
"card",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/chart-example.tsx",
@@ -776,7 +874,12 @@
{
"name": "checkbox-example",
"title": "Checkbox",
"registryDependencies": ["checkbox", "field", "table", "example"],
"registryDependencies": [
"checkbox",
"field",
"table",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/checkbox-example.tsx",
@@ -831,7 +934,11 @@
{
"name": "command-example",
"title": "Command",
"registryDependencies": ["button", "command", "example"],
"registryDependencies": [
"button",
"command",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/command-example.tsx",
@@ -843,7 +950,12 @@
{
"name": "context-menu-example",
"title": "Context Menu",
"registryDependencies": ["button", "context-menu", "dialog", "example"],
"registryDependencies": [
"button",
"context-menu",
"dialog",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/context-menu-example.tsx",
@@ -882,7 +994,10 @@
{
"name": "drawer-example",
"title": "Drawer",
"registryDependencies": ["drawer", "example"],
"registryDependencies": [
"drawer",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/drawer-example.tsx",
@@ -955,7 +1070,12 @@
{
"name": "hover-card-example",
"title": "Hover Card",
"registryDependencies": ["button", "dialog", "hover-card", "example"],
"registryDependencies": [
"button",
"dialog",
"hover-card",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/hover-card-example.tsx",
@@ -1030,7 +1150,11 @@
{
"name": "item-example",
"title": "Item",
"registryDependencies": ["button", "item", "example"],
"registryDependencies": [
"button",
"item",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/item-example.tsx",
@@ -1079,7 +1203,12 @@
{
"name": "menubar-example",
"title": "Menubar",
"registryDependencies": ["button", "dialog", "menubar", "example"],
"registryDependencies": [
"button",
"dialog",
"menubar",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/menubar-example.tsx",
@@ -1091,7 +1220,11 @@
{
"name": "native-select-example",
"title": "Native Select",
"registryDependencies": ["field", "native-select", "example"],
"registryDependencies": [
"field",
"native-select",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/native-select-example.tsx",
@@ -1120,7 +1253,12 @@
{
"name": "pagination-example",
"title": "Pagination",
"registryDependencies": ["field", "pagination", "select", "example"],
"registryDependencies": [
"field",
"pagination",
"select",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/pagination-example.tsx",
@@ -1169,7 +1307,11 @@
{
"name": "radio-group-example",
"title": "Radio Group",
"registryDependencies": ["field", "radio-group", "example"],
"registryDependencies": [
"field",
"radio-group",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/radio-group-example.tsx",
@@ -1181,7 +1323,10 @@
{
"name": "resizable-example",
"title": "Resizable",
"registryDependencies": ["resizable", "example"],
"registryDependencies": [
"resizable",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/resizable-example.tsx",
@@ -1193,7 +1338,11 @@
{
"name": "scroll-area-example",
"title": "Scroll Area",
"registryDependencies": ["scroll-area", "separator", "example"],
"registryDependencies": [
"scroll-area",
"separator",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/scroll-area-example.tsx",
@@ -1226,7 +1375,10 @@
{
"name": "separator-example",
"title": "Separator",
"registryDependencies": ["separator", "example"],
"registryDependencies": [
"separator",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/separator-example.tsx",
@@ -1238,7 +1390,13 @@
{
"name": "sheet-example",
"title": "Sheet",
"registryDependencies": ["button", "field", "input", "sheet", "example"],
"registryDependencies": [
"button",
"field",
"input",
"sheet",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/sheet-example.tsx",
@@ -1289,7 +1447,11 @@
{
"name": "sidebar-inset-example",
"title": "Sidebar (Inset)",
"registryDependencies": ["collapsible", "sidebar", "example"],
"registryDependencies": [
"collapsible",
"sidebar",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/sidebar-inset-example.tsx",
@@ -1321,7 +1483,10 @@
{
"name": "skeleton-example",
"title": "Skeleton",
"registryDependencies": ["skeleton", "example"],
"registryDependencies": [
"skeleton",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/skeleton-example.tsx",
@@ -1333,7 +1498,11 @@
{
"name": "slider-example",
"title": "Slider",
"registryDependencies": ["label", "slider", "example"],
"registryDependencies": [
"label",
"slider",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/slider-example.tsx",
@@ -1345,7 +1514,10 @@
{
"name": "sonner-example",
"title": "Sonner",
"registryDependencies": ["sonner", "example"],
"registryDependencies": [
"sonner",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/sonner-example.tsx",
@@ -1377,7 +1549,12 @@
{
"name": "switch-example",
"title": "Switch",
"registryDependencies": ["field", "label", "switch", "example"],
"registryDependencies": [
"field",
"label",
"switch",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/switch-example.tsx",
@@ -1408,7 +1585,12 @@
{
"name": "tabs-example",
"title": "Tabs",
"registryDependencies": ["button", "dropdown-menu", "tabs", "example"],
"registryDependencies": [
"button",
"dropdown-menu",
"tabs",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/tabs-example.tsx",
@@ -1420,7 +1602,11 @@
{
"name": "textarea-example",
"title": "Textarea",
"registryDependencies": ["field", "textarea", "example"],
"registryDependencies": [
"field",
"textarea",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/textarea-example.tsx",
@@ -1432,7 +1618,10 @@
{
"name": "toggle-example",
"title": "Toggle",
"registryDependencies": ["toggle", "example"],
"registryDependencies": [
"toggle",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/toggle-example.tsx",
@@ -1444,7 +1633,12 @@
{
"name": "toggle-group-example",
"title": "Toggle Group",
"registryDependencies": ["input", "select", "toggle-group", "example"],
"registryDependencies": [
"input",
"select",
"toggle-group",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/toggle-group-example.tsx",
@@ -1456,7 +1650,12 @@
{
"name": "tooltip-example",
"title": "Tooltip",
"registryDependencies": ["button", "kbd", "tooltip", "example"],
"registryDependencies": [
"button",
"kbd",
"tooltip",
"example"
],
"files": [
{
"path": "registry/base-maia/examples/tooltip-example.tsx",
@@ -1491,7 +1690,10 @@
},
{
"name": "utils",
"dependencies": ["clsx", "tailwind-merge"],
"dependencies": [
"clsx",
"tailwind-merge"
],
"files": [
{
"path": "registry/base-maia/lib/utils.ts",
@@ -1553,7 +1755,11 @@
{
"name": "elevenlabs",
"title": "Elevenlabs",
"registryDependencies": ["example", "button", "card"],
"registryDependencies": [
"example",
"button",
"card"
],
"files": [
{
"path": "registry/base-maia/blocks/elevenlabs.tsx",
@@ -1664,15 +1870,17 @@
"type": "registry:hook"
},
{
"name": "font-geist-sans",
"title": "Geist Sans",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1684,7 +1892,9 @@
"provider": "google",
"import": "Inter",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1718,7 +1928,9 @@
"provider": "google",
"import": "Figtree",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1730,7 +1942,9 @@
"provider": "google",
"import": "Roboto",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1742,7 +1956,9 @@
"provider": "google",
"import": "Raleway",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1754,7 +1970,9 @@
"provider": "google",
"import": "DM_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1766,7 +1984,9 @@
"provider": "google",
"import": "Public_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1778,7 +1998,9 @@
"provider": "google",
"import": "Outfit",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1790,8 +2012,24 @@
"provider": "google",
"import": "JetBrains_Mono",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": [
"latin"
]
}
}

View File

@@ -24,7 +24,9 @@
},
{
"name": "alert-dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-mira/ui/alert-dialog.tsx",
@@ -85,7 +87,9 @@
},
{
"name": "button-group",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/base-mira/ui/button-group.tsx",
@@ -96,8 +100,13 @@
},
{
"name": "calendar",
"dependencies": ["react-day-picker@latest", "date-fns"],
"registryDependencies": ["button"],
"dependencies": [
"react-day-picker@latest",
"date-fns"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-mira/ui/calendar.tsx",
@@ -118,8 +127,12 @@
},
{
"name": "carousel",
"dependencies": ["embla-carousel-react"],
"registryDependencies": ["button"],
"dependencies": [
"embla-carousel-react"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-mira/ui/carousel.tsx",
@@ -130,8 +143,12 @@
},
{
"name": "chart",
"dependencies": ["recharts@2.15.4"],
"registryDependencies": ["card"],
"dependencies": [
"recharts@2.15.4"
],
"registryDependencies": [
"card"
],
"files": [
{
"path": "registry/base-mira/ui/chart.tsx",
@@ -162,8 +179,13 @@
},
{
"name": "combobox",
"dependencies": ["@base-ui/react"],
"registryDependencies": ["button", "input-group"],
"dependencies": [
"@base-ui/react"
],
"registryDependencies": [
"button",
"input-group"
],
"files": [
{
"path": "registry/base-mira/ui/combobox.tsx",
@@ -174,8 +196,13 @@
},
{
"name": "command",
"dependencies": ["cmdk"],
"registryDependencies": ["dialog", "input-group"],
"dependencies": [
"cmdk"
],
"registryDependencies": [
"dialog",
"input-group"
],
"files": [
{
"path": "registry/base-mira/ui/command.tsx",
@@ -196,7 +223,9 @@
},
{
"name": "dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-mira/ui/dialog.tsx",
@@ -207,7 +236,9 @@
},
{
"name": "drawer",
"dependencies": ["vaul"],
"dependencies": [
"vaul"
],
"files": [
{
"path": "registry/base-mira/ui/drawer.tsx",
@@ -238,7 +269,10 @@
},
{
"name": "field",
"registryDependencies": ["label", "separator"],
"registryDependencies": [
"label",
"separator"
],
"files": [
{
"path": "registry/base-mira/ui/field.tsx",
@@ -273,7 +307,11 @@
},
{
"name": "input-group",
"registryDependencies": ["button", "input", "textarea"],
"registryDependencies": [
"button",
"input",
"textarea"
],
"files": [
{
"path": "registry/base-mira/ui/input-group.tsx",
@@ -284,7 +322,9 @@
},
{
"name": "input-otp",
"dependencies": ["input-otp"],
"dependencies": [
"input-otp"
],
"files": [
{
"path": "registry/base-mira/ui/input-otp.tsx",
@@ -295,7 +335,9 @@
},
{
"name": "item",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/base-mira/ui/item.tsx",
@@ -316,7 +358,9 @@
},
{
"name": "menubar",
"registryDependencies": ["dropdown-menu"],
"registryDependencies": [
"dropdown-menu"
],
"files": [
{
"path": "registry/base-mira/ui/menubar.tsx",
@@ -337,7 +381,9 @@
},
{
"name": "pagination",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-mira/ui/pagination.tsx",
@@ -378,7 +424,9 @@
},
{
"name": "resizable",
"dependencies": ["react-resizable-panels"],
"dependencies": [
"react-resizable-panels"
],
"files": [
{
"path": "registry/base-mira/ui/resizable.tsx",
@@ -419,7 +467,9 @@
},
{
"name": "sheet",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-mira/ui/sheet.tsx",
@@ -468,7 +518,10 @@
},
{
"name": "sonner",
"dependencies": ["sonner", "next-themes"],
"dependencies": [
"sonner",
"next-themes"
],
"files": [
{
"path": "registry/base-mira/ui/sonner.tsx",
@@ -539,7 +592,9 @@
},
{
"name": "toggle-group",
"registryDependencies": ["toggle"],
"registryDependencies": [
"toggle"
],
"files": [
{
"path": "registry/base-mira/ui/toggle-group.tsx",
@@ -580,7 +635,9 @@
},
{
"name": "direction",
"dependencies": ["@base-ui/react"],
"dependencies": [
"@base-ui/react"
],
"files": [
{
"path": "registry/base-mira/ui/direction.tsx",
@@ -592,7 +649,12 @@
{
"name": "accordion-example",
"title": "Accordion",
"registryDependencies": ["accordion", "button", "card", "example"],
"registryDependencies": [
"accordion",
"button",
"card",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/accordion-example.tsx",
@@ -604,7 +666,11 @@
{
"name": "alert-example",
"title": "Alert",
"registryDependencies": ["alert", "badge", "example"],
"registryDependencies": [
"alert",
"badge",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/alert-example.tsx",
@@ -616,7 +682,12 @@
{
"name": "alert-dialog-example",
"title": "Alert Dialog",
"registryDependencies": ["alert-dialog", "button", "dialog", "example"],
"registryDependencies": [
"alert-dialog",
"button",
"dialog",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/alert-dialog-example.tsx",
@@ -628,7 +699,10 @@
{
"name": "aspect-ratio-example",
"title": "Aspect Ratio",
"registryDependencies": ["aspect-ratio", "example"],
"registryDependencies": [
"aspect-ratio",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/aspect-ratio-example.tsx",
@@ -640,7 +714,12 @@
{
"name": "avatar-example",
"title": "Avatar",
"registryDependencies": ["avatar", "button", "empty", "example"],
"registryDependencies": [
"avatar",
"button",
"empty",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/avatar-example.tsx",
@@ -652,7 +731,11 @@
{
"name": "badge-example",
"title": "Badge",
"registryDependencies": ["badge", "spinner", "example"],
"registryDependencies": [
"badge",
"spinner",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/badge-example.tsx",
@@ -664,7 +747,11 @@
{
"name": "breadcrumb-example",
"title": "Breadcrumb",
"registryDependencies": ["breadcrumb", "dropdown-menu", "example"],
"registryDependencies": [
"breadcrumb",
"dropdown-menu",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/breadcrumb-example.tsx",
@@ -676,7 +763,10 @@
{
"name": "button-example",
"title": "Button",
"registryDependencies": ["button", "example"],
"registryDependencies": [
"button",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/button-example.tsx",
@@ -752,7 +842,11 @@
{
"name": "carousel-example",
"title": "Carousel",
"registryDependencies": ["card", "carousel", "example"],
"registryDependencies": [
"card",
"carousel",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/carousel-example.tsx",
@@ -764,7 +858,11 @@
{
"name": "chart-example",
"title": "Chart",
"registryDependencies": ["chart", "card", "example"],
"registryDependencies": [
"chart",
"card",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/chart-example.tsx",
@@ -776,7 +874,12 @@
{
"name": "checkbox-example",
"title": "Checkbox",
"registryDependencies": ["checkbox", "field", "table", "example"],
"registryDependencies": [
"checkbox",
"field",
"table",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/checkbox-example.tsx",
@@ -831,7 +934,11 @@
{
"name": "command-example",
"title": "Command",
"registryDependencies": ["button", "command", "example"],
"registryDependencies": [
"button",
"command",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/command-example.tsx",
@@ -843,7 +950,12 @@
{
"name": "context-menu-example",
"title": "Context Menu",
"registryDependencies": ["button", "context-menu", "dialog", "example"],
"registryDependencies": [
"button",
"context-menu",
"dialog",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/context-menu-example.tsx",
@@ -882,7 +994,10 @@
{
"name": "drawer-example",
"title": "Drawer",
"registryDependencies": ["drawer", "example"],
"registryDependencies": [
"drawer",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/drawer-example.tsx",
@@ -955,7 +1070,12 @@
{
"name": "hover-card-example",
"title": "Hover Card",
"registryDependencies": ["button", "dialog", "hover-card", "example"],
"registryDependencies": [
"button",
"dialog",
"hover-card",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/hover-card-example.tsx",
@@ -1030,7 +1150,11 @@
{
"name": "item-example",
"title": "Item",
"registryDependencies": ["button", "item", "example"],
"registryDependencies": [
"button",
"item",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/item-example.tsx",
@@ -1079,7 +1203,12 @@
{
"name": "menubar-example",
"title": "Menubar",
"registryDependencies": ["button", "dialog", "menubar", "example"],
"registryDependencies": [
"button",
"dialog",
"menubar",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/menubar-example.tsx",
@@ -1091,7 +1220,11 @@
{
"name": "native-select-example",
"title": "Native Select",
"registryDependencies": ["field", "native-select", "example"],
"registryDependencies": [
"field",
"native-select",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/native-select-example.tsx",
@@ -1120,7 +1253,12 @@
{
"name": "pagination-example",
"title": "Pagination",
"registryDependencies": ["field", "pagination", "select", "example"],
"registryDependencies": [
"field",
"pagination",
"select",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/pagination-example.tsx",
@@ -1169,7 +1307,11 @@
{
"name": "radio-group-example",
"title": "Radio Group",
"registryDependencies": ["field", "radio-group", "example"],
"registryDependencies": [
"field",
"radio-group",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/radio-group-example.tsx",
@@ -1181,7 +1323,10 @@
{
"name": "resizable-example",
"title": "Resizable",
"registryDependencies": ["resizable", "example"],
"registryDependencies": [
"resizable",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/resizable-example.tsx",
@@ -1193,7 +1338,11 @@
{
"name": "scroll-area-example",
"title": "Scroll Area",
"registryDependencies": ["scroll-area", "separator", "example"],
"registryDependencies": [
"scroll-area",
"separator",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/scroll-area-example.tsx",
@@ -1226,7 +1375,10 @@
{
"name": "separator-example",
"title": "Separator",
"registryDependencies": ["separator", "example"],
"registryDependencies": [
"separator",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/separator-example.tsx",
@@ -1238,7 +1390,13 @@
{
"name": "sheet-example",
"title": "Sheet",
"registryDependencies": ["button", "field", "input", "sheet", "example"],
"registryDependencies": [
"button",
"field",
"input",
"sheet",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/sheet-example.tsx",
@@ -1289,7 +1447,11 @@
{
"name": "sidebar-inset-example",
"title": "Sidebar (Inset)",
"registryDependencies": ["collapsible", "sidebar", "example"],
"registryDependencies": [
"collapsible",
"sidebar",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/sidebar-inset-example.tsx",
@@ -1321,7 +1483,10 @@
{
"name": "skeleton-example",
"title": "Skeleton",
"registryDependencies": ["skeleton", "example"],
"registryDependencies": [
"skeleton",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/skeleton-example.tsx",
@@ -1333,7 +1498,11 @@
{
"name": "slider-example",
"title": "Slider",
"registryDependencies": ["label", "slider", "example"],
"registryDependencies": [
"label",
"slider",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/slider-example.tsx",
@@ -1345,7 +1514,10 @@
{
"name": "sonner-example",
"title": "Sonner",
"registryDependencies": ["sonner", "example"],
"registryDependencies": [
"sonner",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/sonner-example.tsx",
@@ -1377,7 +1549,12 @@
{
"name": "switch-example",
"title": "Switch",
"registryDependencies": ["field", "label", "switch", "example"],
"registryDependencies": [
"field",
"label",
"switch",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/switch-example.tsx",
@@ -1408,7 +1585,12 @@
{
"name": "tabs-example",
"title": "Tabs",
"registryDependencies": ["button", "dropdown-menu", "tabs", "example"],
"registryDependencies": [
"button",
"dropdown-menu",
"tabs",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/tabs-example.tsx",
@@ -1420,7 +1602,11 @@
{
"name": "textarea-example",
"title": "Textarea",
"registryDependencies": ["field", "textarea", "example"],
"registryDependencies": [
"field",
"textarea",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/textarea-example.tsx",
@@ -1432,7 +1618,10 @@
{
"name": "toggle-example",
"title": "Toggle",
"registryDependencies": ["toggle", "example"],
"registryDependencies": [
"toggle",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/toggle-example.tsx",
@@ -1444,7 +1633,12 @@
{
"name": "toggle-group-example",
"title": "Toggle Group",
"registryDependencies": ["input", "select", "toggle-group", "example"],
"registryDependencies": [
"input",
"select",
"toggle-group",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/toggle-group-example.tsx",
@@ -1456,7 +1650,12 @@
{
"name": "tooltip-example",
"title": "Tooltip",
"registryDependencies": ["button", "kbd", "tooltip", "example"],
"registryDependencies": [
"button",
"kbd",
"tooltip",
"example"
],
"files": [
{
"path": "registry/base-mira/examples/tooltip-example.tsx",
@@ -1491,7 +1690,10 @@
},
{
"name": "utils",
"dependencies": ["clsx", "tailwind-merge"],
"dependencies": [
"clsx",
"tailwind-merge"
],
"files": [
{
"path": "registry/base-mira/lib/utils.ts",
@@ -1553,7 +1755,11 @@
{
"name": "elevenlabs",
"title": "Elevenlabs",
"registryDependencies": ["example", "button", "card"],
"registryDependencies": [
"example",
"button",
"card"
],
"files": [
{
"path": "registry/base-mira/blocks/elevenlabs.tsx",
@@ -1664,15 +1870,17 @@
"type": "registry:hook"
},
{
"name": "font-geist-sans",
"title": "Geist Sans",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1684,7 +1892,9 @@
"provider": "google",
"import": "Inter",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1718,7 +1928,9 @@
"provider": "google",
"import": "Figtree",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1730,7 +1942,9 @@
"provider": "google",
"import": "Roboto",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1742,7 +1956,9 @@
"provider": "google",
"import": "Raleway",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1754,7 +1970,9 @@
"provider": "google",
"import": "DM_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1766,7 +1984,9 @@
"provider": "google",
"import": "Public_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1778,7 +1998,9 @@
"provider": "google",
"import": "Outfit",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1790,8 +2012,24 @@
"provider": "google",
"import": "JetBrains_Mono",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": [
"latin"
]
}
}

View File

@@ -24,7 +24,9 @@
},
{
"name": "alert-dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-nova/ui/alert-dialog.tsx",
@@ -85,7 +87,9 @@
},
{
"name": "button-group",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/base-nova/ui/button-group.tsx",
@@ -96,8 +100,13 @@
},
{
"name": "calendar",
"dependencies": ["react-day-picker@latest", "date-fns"],
"registryDependencies": ["button"],
"dependencies": [
"react-day-picker@latest",
"date-fns"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-nova/ui/calendar.tsx",
@@ -118,8 +127,12 @@
},
{
"name": "carousel",
"dependencies": ["embla-carousel-react"],
"registryDependencies": ["button"],
"dependencies": [
"embla-carousel-react"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-nova/ui/carousel.tsx",
@@ -130,8 +143,12 @@
},
{
"name": "chart",
"dependencies": ["recharts@2.15.4"],
"registryDependencies": ["card"],
"dependencies": [
"recharts@2.15.4"
],
"registryDependencies": [
"card"
],
"files": [
{
"path": "registry/base-nova/ui/chart.tsx",
@@ -162,8 +179,13 @@
},
{
"name": "combobox",
"dependencies": ["@base-ui/react"],
"registryDependencies": ["button", "input-group"],
"dependencies": [
"@base-ui/react"
],
"registryDependencies": [
"button",
"input-group"
],
"files": [
{
"path": "registry/base-nova/ui/combobox.tsx",
@@ -174,8 +196,13 @@
},
{
"name": "command",
"dependencies": ["cmdk"],
"registryDependencies": ["dialog", "input-group"],
"dependencies": [
"cmdk"
],
"registryDependencies": [
"dialog",
"input-group"
],
"files": [
{
"path": "registry/base-nova/ui/command.tsx",
@@ -196,7 +223,9 @@
},
{
"name": "dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-nova/ui/dialog.tsx",
@@ -207,7 +236,9 @@
},
{
"name": "drawer",
"dependencies": ["vaul"],
"dependencies": [
"vaul"
],
"files": [
{
"path": "registry/base-nova/ui/drawer.tsx",
@@ -238,7 +269,10 @@
},
{
"name": "field",
"registryDependencies": ["label", "separator"],
"registryDependencies": [
"label",
"separator"
],
"files": [
{
"path": "registry/base-nova/ui/field.tsx",
@@ -273,7 +307,11 @@
},
{
"name": "input-group",
"registryDependencies": ["button", "input", "textarea"],
"registryDependencies": [
"button",
"input",
"textarea"
],
"files": [
{
"path": "registry/base-nova/ui/input-group.tsx",
@@ -284,7 +322,9 @@
},
{
"name": "input-otp",
"dependencies": ["input-otp"],
"dependencies": [
"input-otp"
],
"files": [
{
"path": "registry/base-nova/ui/input-otp.tsx",
@@ -295,7 +335,9 @@
},
{
"name": "item",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/base-nova/ui/item.tsx",
@@ -316,7 +358,9 @@
},
{
"name": "menubar",
"registryDependencies": ["dropdown-menu"],
"registryDependencies": [
"dropdown-menu"
],
"files": [
{
"path": "registry/base-nova/ui/menubar.tsx",
@@ -337,7 +381,9 @@
},
{
"name": "pagination",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-nova/ui/pagination.tsx",
@@ -378,7 +424,9 @@
},
{
"name": "resizable",
"dependencies": ["react-resizable-panels"],
"dependencies": [
"react-resizable-panels"
],
"files": [
{
"path": "registry/base-nova/ui/resizable.tsx",
@@ -419,7 +467,9 @@
},
{
"name": "sheet",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-nova/ui/sheet.tsx",
@@ -468,7 +518,10 @@
},
{
"name": "sonner",
"dependencies": ["sonner", "next-themes"],
"dependencies": [
"sonner",
"next-themes"
],
"files": [
{
"path": "registry/base-nova/ui/sonner.tsx",
@@ -539,7 +592,9 @@
},
{
"name": "toggle-group",
"registryDependencies": ["toggle"],
"registryDependencies": [
"toggle"
],
"files": [
{
"path": "registry/base-nova/ui/toggle-group.tsx",
@@ -580,7 +635,9 @@
},
{
"name": "direction",
"dependencies": ["@base-ui/react"],
"dependencies": [
"@base-ui/react"
],
"files": [
{
"path": "registry/base-nova/ui/direction.tsx",
@@ -592,7 +649,12 @@
{
"name": "accordion-example",
"title": "Accordion",
"registryDependencies": ["accordion", "button", "card", "example"],
"registryDependencies": [
"accordion",
"button",
"card",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/accordion-example.tsx",
@@ -604,7 +666,11 @@
{
"name": "alert-example",
"title": "Alert",
"registryDependencies": ["alert", "badge", "example"],
"registryDependencies": [
"alert",
"badge",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/alert-example.tsx",
@@ -616,7 +682,12 @@
{
"name": "alert-dialog-example",
"title": "Alert Dialog",
"registryDependencies": ["alert-dialog", "button", "dialog", "example"],
"registryDependencies": [
"alert-dialog",
"button",
"dialog",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/alert-dialog-example.tsx",
@@ -628,7 +699,10 @@
{
"name": "aspect-ratio-example",
"title": "Aspect Ratio",
"registryDependencies": ["aspect-ratio", "example"],
"registryDependencies": [
"aspect-ratio",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/aspect-ratio-example.tsx",
@@ -640,7 +714,12 @@
{
"name": "avatar-example",
"title": "Avatar",
"registryDependencies": ["avatar", "button", "empty", "example"],
"registryDependencies": [
"avatar",
"button",
"empty",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/avatar-example.tsx",
@@ -652,7 +731,11 @@
{
"name": "badge-example",
"title": "Badge",
"registryDependencies": ["badge", "spinner", "example"],
"registryDependencies": [
"badge",
"spinner",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/badge-example.tsx",
@@ -664,7 +747,11 @@
{
"name": "breadcrumb-example",
"title": "Breadcrumb",
"registryDependencies": ["breadcrumb", "dropdown-menu", "example"],
"registryDependencies": [
"breadcrumb",
"dropdown-menu",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/breadcrumb-example.tsx",
@@ -676,7 +763,10 @@
{
"name": "button-example",
"title": "Button",
"registryDependencies": ["button", "example"],
"registryDependencies": [
"button",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/button-example.tsx",
@@ -752,7 +842,11 @@
{
"name": "carousel-example",
"title": "Carousel",
"registryDependencies": ["card", "carousel", "example"],
"registryDependencies": [
"card",
"carousel",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/carousel-example.tsx",
@@ -764,7 +858,11 @@
{
"name": "chart-example",
"title": "Chart",
"registryDependencies": ["chart", "card", "example"],
"registryDependencies": [
"chart",
"card",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/chart-example.tsx",
@@ -776,7 +874,12 @@
{
"name": "checkbox-example",
"title": "Checkbox",
"registryDependencies": ["checkbox", "field", "table", "example"],
"registryDependencies": [
"checkbox",
"field",
"table",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/checkbox-example.tsx",
@@ -831,7 +934,11 @@
{
"name": "command-example",
"title": "Command",
"registryDependencies": ["button", "command", "example"],
"registryDependencies": [
"button",
"command",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/command-example.tsx",
@@ -843,7 +950,12 @@
{
"name": "context-menu-example",
"title": "Context Menu",
"registryDependencies": ["button", "context-menu", "dialog", "example"],
"registryDependencies": [
"button",
"context-menu",
"dialog",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/context-menu-example.tsx",
@@ -882,7 +994,10 @@
{
"name": "drawer-example",
"title": "Drawer",
"registryDependencies": ["drawer", "example"],
"registryDependencies": [
"drawer",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/drawer-example.tsx",
@@ -955,7 +1070,12 @@
{
"name": "hover-card-example",
"title": "Hover Card",
"registryDependencies": ["button", "dialog", "hover-card", "example"],
"registryDependencies": [
"button",
"dialog",
"hover-card",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/hover-card-example.tsx",
@@ -1030,7 +1150,11 @@
{
"name": "item-example",
"title": "Item",
"registryDependencies": ["button", "item", "example"],
"registryDependencies": [
"button",
"item",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/item-example.tsx",
@@ -1079,7 +1203,12 @@
{
"name": "menubar-example",
"title": "Menubar",
"registryDependencies": ["button", "dialog", "menubar", "example"],
"registryDependencies": [
"button",
"dialog",
"menubar",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/menubar-example.tsx",
@@ -1091,7 +1220,11 @@
{
"name": "native-select-example",
"title": "Native Select",
"registryDependencies": ["field", "native-select", "example"],
"registryDependencies": [
"field",
"native-select",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/native-select-example.tsx",
@@ -1120,7 +1253,12 @@
{
"name": "pagination-example",
"title": "Pagination",
"registryDependencies": ["field", "pagination", "select", "example"],
"registryDependencies": [
"field",
"pagination",
"select",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/pagination-example.tsx",
@@ -1169,7 +1307,11 @@
{
"name": "radio-group-example",
"title": "Radio Group",
"registryDependencies": ["field", "radio-group", "example"],
"registryDependencies": [
"field",
"radio-group",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/radio-group-example.tsx",
@@ -1181,7 +1323,10 @@
{
"name": "resizable-example",
"title": "Resizable",
"registryDependencies": ["resizable", "example"],
"registryDependencies": [
"resizable",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/resizable-example.tsx",
@@ -1193,7 +1338,11 @@
{
"name": "scroll-area-example",
"title": "Scroll Area",
"registryDependencies": ["scroll-area", "separator", "example"],
"registryDependencies": [
"scroll-area",
"separator",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/scroll-area-example.tsx",
@@ -1226,7 +1375,10 @@
{
"name": "separator-example",
"title": "Separator",
"registryDependencies": ["separator", "example"],
"registryDependencies": [
"separator",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/separator-example.tsx",
@@ -1238,7 +1390,13 @@
{
"name": "sheet-example",
"title": "Sheet",
"registryDependencies": ["button", "field", "input", "sheet", "example"],
"registryDependencies": [
"button",
"field",
"input",
"sheet",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/sheet-example.tsx",
@@ -1289,7 +1447,11 @@
{
"name": "sidebar-inset-example",
"title": "Sidebar (Inset)",
"registryDependencies": ["collapsible", "sidebar", "example"],
"registryDependencies": [
"collapsible",
"sidebar",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/sidebar-inset-example.tsx",
@@ -1321,7 +1483,10 @@
{
"name": "skeleton-example",
"title": "Skeleton",
"registryDependencies": ["skeleton", "example"],
"registryDependencies": [
"skeleton",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/skeleton-example.tsx",
@@ -1333,7 +1498,11 @@
{
"name": "slider-example",
"title": "Slider",
"registryDependencies": ["label", "slider", "example"],
"registryDependencies": [
"label",
"slider",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/slider-example.tsx",
@@ -1345,7 +1514,10 @@
{
"name": "sonner-example",
"title": "Sonner",
"registryDependencies": ["sonner", "example"],
"registryDependencies": [
"sonner",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/sonner-example.tsx",
@@ -1377,7 +1549,12 @@
{
"name": "switch-example",
"title": "Switch",
"registryDependencies": ["field", "label", "switch", "example"],
"registryDependencies": [
"field",
"label",
"switch",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/switch-example.tsx",
@@ -1408,7 +1585,12 @@
{
"name": "tabs-example",
"title": "Tabs",
"registryDependencies": ["button", "dropdown-menu", "tabs", "example"],
"registryDependencies": [
"button",
"dropdown-menu",
"tabs",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/tabs-example.tsx",
@@ -1420,7 +1602,11 @@
{
"name": "textarea-example",
"title": "Textarea",
"registryDependencies": ["field", "textarea", "example"],
"registryDependencies": [
"field",
"textarea",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/textarea-example.tsx",
@@ -1432,7 +1618,10 @@
{
"name": "toggle-example",
"title": "Toggle",
"registryDependencies": ["toggle", "example"],
"registryDependencies": [
"toggle",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/toggle-example.tsx",
@@ -1444,7 +1633,12 @@
{
"name": "toggle-group-example",
"title": "Toggle Group",
"registryDependencies": ["input", "select", "toggle-group", "example"],
"registryDependencies": [
"input",
"select",
"toggle-group",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/toggle-group-example.tsx",
@@ -1456,7 +1650,12 @@
{
"name": "tooltip-example",
"title": "Tooltip",
"registryDependencies": ["button", "kbd", "tooltip", "example"],
"registryDependencies": [
"button",
"kbd",
"tooltip",
"example"
],
"files": [
{
"path": "registry/base-nova/examples/tooltip-example.tsx",
@@ -1491,7 +1690,10 @@
},
{
"name": "utils",
"dependencies": ["clsx", "tailwind-merge"],
"dependencies": [
"clsx",
"tailwind-merge"
],
"files": [
{
"path": "registry/base-nova/lib/utils.ts",
@@ -1553,7 +1755,11 @@
{
"name": "elevenlabs",
"title": "Elevenlabs",
"registryDependencies": ["example", "button", "card"],
"registryDependencies": [
"example",
"button",
"card"
],
"files": [
{
"path": "registry/base-nova/blocks/elevenlabs.tsx",
@@ -1664,15 +1870,17 @@
"type": "registry:hook"
},
{
"name": "font-geist-sans",
"title": "Geist Sans",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1684,7 +1892,9 @@
"provider": "google",
"import": "Inter",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1718,7 +1928,9 @@
"provider": "google",
"import": "Figtree",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1730,7 +1942,9 @@
"provider": "google",
"import": "Roboto",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1742,7 +1956,9 @@
"provider": "google",
"import": "Raleway",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1754,7 +1970,9 @@
"provider": "google",
"import": "DM_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1766,7 +1984,9 @@
"provider": "google",
"import": "Public_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1778,7 +1998,9 @@
"provider": "google",
"import": "Outfit",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1790,8 +2012,24 @@
"provider": "google",
"import": "JetBrains_Mono",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": [
"latin"
]
}
}

View File

@@ -24,7 +24,9 @@
},
{
"name": "alert-dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-vega/ui/alert-dialog.tsx",
@@ -85,7 +87,9 @@
},
{
"name": "button-group",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/base-vega/ui/button-group.tsx",
@@ -96,8 +100,13 @@
},
{
"name": "calendar",
"dependencies": ["react-day-picker@latest", "date-fns"],
"registryDependencies": ["button"],
"dependencies": [
"react-day-picker@latest",
"date-fns"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-vega/ui/calendar.tsx",
@@ -118,8 +127,12 @@
},
{
"name": "carousel",
"dependencies": ["embla-carousel-react"],
"registryDependencies": ["button"],
"dependencies": [
"embla-carousel-react"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-vega/ui/carousel.tsx",
@@ -130,8 +143,12 @@
},
{
"name": "chart",
"dependencies": ["recharts@2.15.4"],
"registryDependencies": ["card"],
"dependencies": [
"recharts@2.15.4"
],
"registryDependencies": [
"card"
],
"files": [
{
"path": "registry/base-vega/ui/chart.tsx",
@@ -162,8 +179,13 @@
},
{
"name": "combobox",
"dependencies": ["@base-ui/react"],
"registryDependencies": ["button", "input-group"],
"dependencies": [
"@base-ui/react"
],
"registryDependencies": [
"button",
"input-group"
],
"files": [
{
"path": "registry/base-vega/ui/combobox.tsx",
@@ -174,8 +196,13 @@
},
{
"name": "command",
"dependencies": ["cmdk"],
"registryDependencies": ["dialog", "input-group"],
"dependencies": [
"cmdk"
],
"registryDependencies": [
"dialog",
"input-group"
],
"files": [
{
"path": "registry/base-vega/ui/command.tsx",
@@ -196,7 +223,9 @@
},
{
"name": "dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-vega/ui/dialog.tsx",
@@ -207,7 +236,9 @@
},
{
"name": "drawer",
"dependencies": ["vaul"],
"dependencies": [
"vaul"
],
"files": [
{
"path": "registry/base-vega/ui/drawer.tsx",
@@ -238,7 +269,10 @@
},
{
"name": "field",
"registryDependencies": ["label", "separator"],
"registryDependencies": [
"label",
"separator"
],
"files": [
{
"path": "registry/base-vega/ui/field.tsx",
@@ -273,7 +307,11 @@
},
{
"name": "input-group",
"registryDependencies": ["button", "input", "textarea"],
"registryDependencies": [
"button",
"input",
"textarea"
],
"files": [
{
"path": "registry/base-vega/ui/input-group.tsx",
@@ -284,7 +322,9 @@
},
{
"name": "input-otp",
"dependencies": ["input-otp"],
"dependencies": [
"input-otp"
],
"files": [
{
"path": "registry/base-vega/ui/input-otp.tsx",
@@ -295,7 +335,9 @@
},
{
"name": "item",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/base-vega/ui/item.tsx",
@@ -316,7 +358,9 @@
},
{
"name": "menubar",
"registryDependencies": ["dropdown-menu"],
"registryDependencies": [
"dropdown-menu"
],
"files": [
{
"path": "registry/base-vega/ui/menubar.tsx",
@@ -337,7 +381,9 @@
},
{
"name": "pagination",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-vega/ui/pagination.tsx",
@@ -378,7 +424,9 @@
},
{
"name": "resizable",
"dependencies": ["react-resizable-panels"],
"dependencies": [
"react-resizable-panels"
],
"files": [
{
"path": "registry/base-vega/ui/resizable.tsx",
@@ -419,7 +467,9 @@
},
{
"name": "sheet",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/base-vega/ui/sheet.tsx",
@@ -468,7 +518,10 @@
},
{
"name": "sonner",
"dependencies": ["sonner", "next-themes"],
"dependencies": [
"sonner",
"next-themes"
],
"files": [
{
"path": "registry/base-vega/ui/sonner.tsx",
@@ -539,7 +592,9 @@
},
{
"name": "toggle-group",
"registryDependencies": ["toggle"],
"registryDependencies": [
"toggle"
],
"files": [
{
"path": "registry/base-vega/ui/toggle-group.tsx",
@@ -580,7 +635,9 @@
},
{
"name": "direction",
"dependencies": ["@base-ui/react"],
"dependencies": [
"@base-ui/react"
],
"files": [
{
"path": "registry/base-vega/ui/direction.tsx",
@@ -592,7 +649,12 @@
{
"name": "accordion-example",
"title": "Accordion",
"registryDependencies": ["accordion", "button", "card", "example"],
"registryDependencies": [
"accordion",
"button",
"card",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/accordion-example.tsx",
@@ -604,7 +666,11 @@
{
"name": "alert-example",
"title": "Alert",
"registryDependencies": ["alert", "badge", "example"],
"registryDependencies": [
"alert",
"badge",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/alert-example.tsx",
@@ -616,7 +682,12 @@
{
"name": "alert-dialog-example",
"title": "Alert Dialog",
"registryDependencies": ["alert-dialog", "button", "dialog", "example"],
"registryDependencies": [
"alert-dialog",
"button",
"dialog",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/alert-dialog-example.tsx",
@@ -628,7 +699,10 @@
{
"name": "aspect-ratio-example",
"title": "Aspect Ratio",
"registryDependencies": ["aspect-ratio", "example"],
"registryDependencies": [
"aspect-ratio",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/aspect-ratio-example.tsx",
@@ -640,7 +714,12 @@
{
"name": "avatar-example",
"title": "Avatar",
"registryDependencies": ["avatar", "button", "empty", "example"],
"registryDependencies": [
"avatar",
"button",
"empty",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/avatar-example.tsx",
@@ -652,7 +731,11 @@
{
"name": "badge-example",
"title": "Badge",
"registryDependencies": ["badge", "spinner", "example"],
"registryDependencies": [
"badge",
"spinner",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/badge-example.tsx",
@@ -664,7 +747,11 @@
{
"name": "breadcrumb-example",
"title": "Breadcrumb",
"registryDependencies": ["breadcrumb", "dropdown-menu", "example"],
"registryDependencies": [
"breadcrumb",
"dropdown-menu",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/breadcrumb-example.tsx",
@@ -676,7 +763,10 @@
{
"name": "button-example",
"title": "Button",
"registryDependencies": ["button", "example"],
"registryDependencies": [
"button",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/button-example.tsx",
@@ -752,7 +842,11 @@
{
"name": "carousel-example",
"title": "Carousel",
"registryDependencies": ["card", "carousel", "example"],
"registryDependencies": [
"card",
"carousel",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/carousel-example.tsx",
@@ -764,7 +858,11 @@
{
"name": "chart-example",
"title": "Chart",
"registryDependencies": ["chart", "card", "example"],
"registryDependencies": [
"chart",
"card",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/chart-example.tsx",
@@ -776,7 +874,12 @@
{
"name": "checkbox-example",
"title": "Checkbox",
"registryDependencies": ["checkbox", "field", "table", "example"],
"registryDependencies": [
"checkbox",
"field",
"table",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/checkbox-example.tsx",
@@ -831,7 +934,11 @@
{
"name": "command-example",
"title": "Command",
"registryDependencies": ["button", "command", "example"],
"registryDependencies": [
"button",
"command",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/command-example.tsx",
@@ -843,7 +950,12 @@
{
"name": "context-menu-example",
"title": "Context Menu",
"registryDependencies": ["button", "context-menu", "dialog", "example"],
"registryDependencies": [
"button",
"context-menu",
"dialog",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/context-menu-example.tsx",
@@ -882,7 +994,10 @@
{
"name": "drawer-example",
"title": "Drawer",
"registryDependencies": ["drawer", "example"],
"registryDependencies": [
"drawer",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/drawer-example.tsx",
@@ -955,7 +1070,12 @@
{
"name": "hover-card-example",
"title": "Hover Card",
"registryDependencies": ["button", "dialog", "hover-card", "example"],
"registryDependencies": [
"button",
"dialog",
"hover-card",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/hover-card-example.tsx",
@@ -1030,7 +1150,11 @@
{
"name": "item-example",
"title": "Item",
"registryDependencies": ["button", "item", "example"],
"registryDependencies": [
"button",
"item",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/item-example.tsx",
@@ -1079,7 +1203,12 @@
{
"name": "menubar-example",
"title": "Menubar",
"registryDependencies": ["button", "dialog", "menubar", "example"],
"registryDependencies": [
"button",
"dialog",
"menubar",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/menubar-example.tsx",
@@ -1091,7 +1220,11 @@
{
"name": "native-select-example",
"title": "Native Select",
"registryDependencies": ["field", "native-select", "example"],
"registryDependencies": [
"field",
"native-select",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/native-select-example.tsx",
@@ -1120,7 +1253,12 @@
{
"name": "pagination-example",
"title": "Pagination",
"registryDependencies": ["field", "pagination", "select", "example"],
"registryDependencies": [
"field",
"pagination",
"select",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/pagination-example.tsx",
@@ -1169,7 +1307,11 @@
{
"name": "radio-group-example",
"title": "Radio Group",
"registryDependencies": ["field", "radio-group", "example"],
"registryDependencies": [
"field",
"radio-group",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/radio-group-example.tsx",
@@ -1181,7 +1323,10 @@
{
"name": "resizable-example",
"title": "Resizable",
"registryDependencies": ["resizable", "example"],
"registryDependencies": [
"resizable",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/resizable-example.tsx",
@@ -1193,7 +1338,11 @@
{
"name": "scroll-area-example",
"title": "Scroll Area",
"registryDependencies": ["scroll-area", "separator", "example"],
"registryDependencies": [
"scroll-area",
"separator",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/scroll-area-example.tsx",
@@ -1226,7 +1375,10 @@
{
"name": "separator-example",
"title": "Separator",
"registryDependencies": ["separator", "example"],
"registryDependencies": [
"separator",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/separator-example.tsx",
@@ -1238,7 +1390,13 @@
{
"name": "sheet-example",
"title": "Sheet",
"registryDependencies": ["button", "field", "input", "sheet", "example"],
"registryDependencies": [
"button",
"field",
"input",
"sheet",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/sheet-example.tsx",
@@ -1289,7 +1447,11 @@
{
"name": "sidebar-inset-example",
"title": "Sidebar (Inset)",
"registryDependencies": ["collapsible", "sidebar", "example"],
"registryDependencies": [
"collapsible",
"sidebar",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/sidebar-inset-example.tsx",
@@ -1321,7 +1483,10 @@
{
"name": "skeleton-example",
"title": "Skeleton",
"registryDependencies": ["skeleton", "example"],
"registryDependencies": [
"skeleton",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/skeleton-example.tsx",
@@ -1333,7 +1498,11 @@
{
"name": "slider-example",
"title": "Slider",
"registryDependencies": ["label", "slider", "example"],
"registryDependencies": [
"label",
"slider",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/slider-example.tsx",
@@ -1345,7 +1514,10 @@
{
"name": "sonner-example",
"title": "Sonner",
"registryDependencies": ["sonner", "example"],
"registryDependencies": [
"sonner",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/sonner-example.tsx",
@@ -1377,7 +1549,12 @@
{
"name": "switch-example",
"title": "Switch",
"registryDependencies": ["field", "label", "switch", "example"],
"registryDependencies": [
"field",
"label",
"switch",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/switch-example.tsx",
@@ -1408,7 +1585,12 @@
{
"name": "tabs-example",
"title": "Tabs",
"registryDependencies": ["button", "dropdown-menu", "tabs", "example"],
"registryDependencies": [
"button",
"dropdown-menu",
"tabs",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/tabs-example.tsx",
@@ -1420,7 +1602,11 @@
{
"name": "textarea-example",
"title": "Textarea",
"registryDependencies": ["field", "textarea", "example"],
"registryDependencies": [
"field",
"textarea",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/textarea-example.tsx",
@@ -1432,7 +1618,10 @@
{
"name": "toggle-example",
"title": "Toggle",
"registryDependencies": ["toggle", "example"],
"registryDependencies": [
"toggle",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/toggle-example.tsx",
@@ -1444,7 +1633,12 @@
{
"name": "toggle-group-example",
"title": "Toggle Group",
"registryDependencies": ["input", "select", "toggle-group", "example"],
"registryDependencies": [
"input",
"select",
"toggle-group",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/toggle-group-example.tsx",
@@ -1456,7 +1650,12 @@
{
"name": "tooltip-example",
"title": "Tooltip",
"registryDependencies": ["button", "kbd", "tooltip", "example"],
"registryDependencies": [
"button",
"kbd",
"tooltip",
"example"
],
"files": [
{
"path": "registry/base-vega/examples/tooltip-example.tsx",
@@ -1491,7 +1690,10 @@
},
{
"name": "utils",
"dependencies": ["clsx", "tailwind-merge"],
"dependencies": [
"clsx",
"tailwind-merge"
],
"files": [
{
"path": "registry/base-vega/lib/utils.ts",
@@ -1553,7 +1755,11 @@
{
"name": "elevenlabs",
"title": "Elevenlabs",
"registryDependencies": ["example", "button", "card"],
"registryDependencies": [
"example",
"button",
"card"
],
"files": [
{
"path": "registry/base-vega/blocks/elevenlabs.tsx",
@@ -1664,15 +1870,17 @@
"type": "registry:hook"
},
{
"name": "font-geist-sans",
"title": "Geist Sans",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1684,7 +1892,9 @@
"provider": "google",
"import": "Inter",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1718,7 +1928,9 @@
"provider": "google",
"import": "Figtree",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1730,7 +1942,9 @@
"provider": "google",
"import": "Roboto",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1742,7 +1956,9 @@
"provider": "google",
"import": "Raleway",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1754,7 +1970,9 @@
"provider": "google",
"import": "DM_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1766,7 +1984,9 @@
"provider": "google",
"import": "Public_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1778,7 +1998,9 @@
"provider": "google",
"import": "Outfit",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1790,8 +2012,24 @@
"provider": "google",
"import": "JetBrains_Mono",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}
]
}
}

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "accordion",
"dependencies": [
"@radix-ui/react-accordion"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/accordion.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronDownIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"border-b last:border-b-0\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\n {...props}\n >\n <div className={cn(\"pt-0 pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ChevronDownIcon } from \"lucide-react\"\nimport { Accordion as AccordionPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Accordion({\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Root>) {\n return <AccordionPrimitive.Root data-slot=\"accordion\" {...props} />\n}\n\nfunction AccordionItem({\n className,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Item>) {\n return (\n <AccordionPrimitive.Item\n data-slot=\"accordion-item\"\n className={cn(\"border-b last:border-b-0\", className)}\n {...props}\n />\n )\n}\n\nfunction AccordionTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Trigger>) {\n return (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n data-slot=\"accordion-trigger\"\n className={cn(\n \"focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180\",\n className\n )}\n {...props}\n >\n {children}\n <ChevronDownIcon className=\"text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200\" />\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n )\n}\n\nfunction AccordionContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof AccordionPrimitive.Content>) {\n return (\n <AccordionPrimitive.Content\n data-slot=\"accordion-content\"\n className=\"data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm\"\n {...props}\n >\n <div className={cn(\"pt-0 pb-4\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n )\n}\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n",
"type": "registry:ui"
}
],

File diff suppressed because one or more lines are too long

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "aspect-ratio",
"dependencies": [
"@radix-ui/react-aspect-ratio"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/aspect-ratio.tsx",
"content": "\"use client\"\n\nimport * as AspectRatioPrimitive from \"@radix-ui/react-aspect-ratio\"\n\nfunction AspectRatio({\n ...props\n}: React.ComponentProps<typeof AspectRatioPrimitive.Root>) {\n return <AspectRatioPrimitive.Root data-slot=\"aspect-ratio\" {...props} />\n}\n\nexport { AspectRatio }\n",
"content": "\"use client\"\n\nimport { AspectRatio as AspectRatioPrimitive } from \"radix-ui\"\n\nfunction AspectRatio({\n ...props\n}: React.ComponentProps<typeof AspectRatioPrimitive.Root>) {\n return <AspectRatioPrimitive.Root data-slot=\"aspect-ratio\" {...props} />\n}\n\nexport { AspectRatio }\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "avatar",
"dependencies": [
"@radix-ui/react-avatar"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/avatar.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root> & {\n size?: \"default\" | \"sm\" | \"lg\"\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n \"group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full\", className)}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n \"bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full ring-2 select-none\",\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n \"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2\",\n \"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n \"*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroupCount({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n \"bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0 items-center justify-center rounded-full text-sm ring-2 group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Avatar,\n AvatarImage,\n AvatarFallback,\n AvatarBadge,\n AvatarGroup,\n AvatarGroupCount,\n}\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Avatar as AvatarPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Avatar({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root> & {\n size?: \"default\" | \"sm\" | \"lg\"\n}) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n data-size={size}\n className={cn(\n \"group/avatar relative flex size-8 shrink-0 overflow-hidden rounded-full select-none data-[size=lg]:size-10 data-[size=sm]:size-6\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn(\"aspect-square size-full\", className)}\n {...props}\n />\n )\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n \"bg-muted text-muted-foreground flex size-full items-center justify-center rounded-full text-sm group-data-[size=sm]/avatar:text-xs\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarBadge({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"avatar-badge\"\n className={cn(\n \"bg-primary text-primary-foreground ring-background absolute right-0 bottom-0 z-10 inline-flex items-center justify-center rounded-full ring-2 select-none\",\n \"group-data-[size=sm]/avatar:size-2 group-data-[size=sm]/avatar:[&>svg]:hidden\",\n \"group-data-[size=default]/avatar:size-2.5 group-data-[size=default]/avatar:[&>svg]:size-2\",\n \"group-data-[size=lg]/avatar:size-3 group-data-[size=lg]/avatar:[&>svg]:size-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group\"\n className={cn(\n \"*:data-[slot=avatar]:ring-background group/avatar-group flex -space-x-2 *:data-[slot=avatar]:ring-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AvatarGroupCount({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"avatar-group-count\"\n className={cn(\n \"bg-muted text-muted-foreground ring-background relative flex size-8 shrink-0 items-center justify-center rounded-full text-sm ring-2 group-has-data-[size=lg]/avatar-group:size-10 group-has-data-[size=sm]/avatar-group:size-6 [&>svg]:size-4 group-has-data-[size=lg]/avatar-group:[&>svg]:size-5 group-has-data-[size=sm]/avatar-group:[&>svg]:size-3\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Avatar,\n AvatarImage,\n AvatarFallback,\n AvatarBadge,\n AvatarGroup,\n AvatarGroupCount,\n}\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "badge",
"dependencies": [
"@radix-ui/react-slot"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/badge.tsx",
"content": "import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a&]:hover:bg-primary/90\",\n secondary:\n \"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90\",\n destructive:\n \"bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground\",\n ghost: \"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 [a&]:hover:underline\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Badge({\n className,\n variant = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"span\"\n\n return (\n <Comp\n data-slot=\"badge\"\n data-variant={variant}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nexport { Badge, badgeVariants }\n",
"content": "import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst badgeVariants = cva(\n \"inline-flex items-center justify-center rounded-full border border-transparent px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground [a&]:hover:bg-primary/90\",\n secondary:\n \"bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90\",\n destructive:\n \"bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border-border text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground\",\n ghost: \"[a&]:hover:bg-accent [a&]:hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 [a&]:hover:underline\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction Badge({\n className,\n variant = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"span\"> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"span\"\n\n return (\n <Comp\n data-slot=\"badge\"\n data-variant={variant}\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nexport { Badge, badgeVariants }\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "breadcrumb",
"dependencies": [
"@radix-ui/react-slot"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/breadcrumb.tsx",
"content": "import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<\"nav\">) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot : \"a\"\n\n return (\n <Comp\n data-slot=\"breadcrumb-link\"\n className={cn(\"hover:text-foreground transition-colors\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"text-foreground font-normal\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n )\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n )\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n",
"content": "import * as React from \"react\"\nimport { ChevronRight, MoreHorizontal } from \"lucide-react\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Breadcrumb({ ...props }: React.ComponentProps<\"nav\">) {\n return <nav aria-label=\"breadcrumb\" data-slot=\"breadcrumb\" {...props} />\n}\n\nfunction BreadcrumbList({ className, ...props }: React.ComponentProps<\"ol\">) {\n return (\n <ol\n data-slot=\"breadcrumb-list\"\n className={cn(\n \"text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbItem({ className, ...props }: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-item\"\n className={cn(\"inline-flex items-center gap-1.5\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbLink({\n asChild,\n className,\n ...props\n}: React.ComponentProps<\"a\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot.Root : \"a\"\n\n return (\n <Comp\n data-slot=\"breadcrumb-link\"\n className={cn(\"hover:text-foreground transition-colors\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbPage({ className, ...props }: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-page\"\n role=\"link\"\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\"text-foreground font-normal\", className)}\n {...props}\n />\n )\n}\n\nfunction BreadcrumbSeparator({\n children,\n className,\n ...props\n}: React.ComponentProps<\"li\">) {\n return (\n <li\n data-slot=\"breadcrumb-separator\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"[&>svg]:size-3.5\", className)}\n {...props}\n >\n {children ?? <ChevronRight />}\n </li>\n )\n}\n\nfunction BreadcrumbEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n data-slot=\"breadcrumb-ellipsis\"\n role=\"presentation\"\n aria-hidden=\"true\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontal className=\"size-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n )\n}\n\nexport {\n Breadcrumb,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n}\n",
"type": "registry:ui"
}
],

View File

@@ -8,7 +8,7 @@
"files": [
{
"path": "registry/new-york-v4/ui/button-group.tsx",
"content": "import { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Separator } from \"@/registry/new-york-v4/ui/separator\"\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n }\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot : \"div\"\n\n return (\n <Comp\n className={cn(\n \"bg-muted flex items-center gap-2 rounded-md border px-4 text-sm font-medium shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"bg-input relative !m-0 self-stretch data-[orientation=vertical]:h-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n",
"content": "import { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Separator } from \"@/registry/new-york-v4/ui/separator\"\n\nconst buttonGroupVariants = cva(\n \"flex w-fit items-stretch [&>*]:focus-visible:z-10 [&>*]:focus-visible:relative [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md has-[>[data-slot=button-group]]:gap-2\",\n {\n variants: {\n orientation: {\n horizontal:\n \"[&>*:not(:first-child)]:rounded-l-none [&>*:not(:first-child)]:border-l-0 [&>*:not(:last-child)]:rounded-r-none\",\n vertical:\n \"flex-col [&>*:not(:first-child)]:rounded-t-none [&>*:not(:first-child)]:border-t-0 [&>*:not(:last-child)]:rounded-b-none\",\n },\n },\n defaultVariants: {\n orientation: \"horizontal\",\n },\n }\n)\n\nfunction ButtonGroup({\n className,\n orientation,\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof buttonGroupVariants>) {\n return (\n <div\n role=\"group\"\n data-slot=\"button-group\"\n data-orientation={orientation}\n className={cn(buttonGroupVariants({ orientation }), className)}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupText({\n className,\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> & {\n asChild?: boolean\n}) {\n const Comp = asChild ? Slot.Root : \"div\"\n\n return (\n <Comp\n className={cn(\n \"bg-muted flex items-center gap-2 rounded-md border px-4 text-sm font-medium shadow-xs [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ButtonGroupSeparator({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"button-group-separator\"\n orientation={orientation}\n className={cn(\n \"bg-input relative !m-0 self-stretch data-[orientation=vertical]:h-auto\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n ButtonGroup,\n ButtonGroupSeparator,\n ButtonGroupText,\n buttonGroupVariants,\n}\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "button",
"dependencies": [
"@radix-ui/react-slot"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/button.tsx",
"content": "import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n xs: \"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n \"icon-xs\": \"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n",
"content": "import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive:\n \"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\n outline:\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\n secondary:\n \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost:\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\n link: \"text-primary underline-offset-4 hover:underline\",\n },\n size: {\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\n xs: \"h-6 gap-1 rounded-md px-2 text-xs has-[>svg]:px-1.5 [&_svg:not([class*='size-'])]:size-3\",\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\n icon: \"size-9\",\n \"icon-xs\": \"size-6 rounded-md [&_svg:not([class*='size-'])]:size-3\",\n \"icon-sm\": \"size-8\",\n \"icon-lg\": \"size-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Button({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"button\"> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot.Root : \"button\"\n\n return (\n <Comp\n data-slot=\"button\"\n data-variant={variant}\n data-size={size}\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "checkbox",
"dependencies": [
"@radix-ui/react-checkbox"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/checkbox.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { CheckIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { CheckIcon } from \"lucide-react\"\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "collapsible",
"dependencies": [
"@radix-ui/react-collapsible"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/collapsible.tsx",
"content": "\"use client\"\n\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\"\n\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n )\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n",
"content": "\"use client\"\n\nimport { Collapsible as CollapsiblePrimitive } from \"radix-ui\"\n\nfunction Collapsible({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.Root>) {\n return <CollapsiblePrimitive.Root data-slot=\"collapsible\" {...props} />\n}\n\nfunction CollapsibleTrigger({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleTrigger>) {\n return (\n <CollapsiblePrimitive.CollapsibleTrigger\n data-slot=\"collapsible-trigger\"\n {...props}\n />\n )\n}\n\nfunction CollapsibleContent({\n ...props\n}: React.ComponentProps<typeof CollapsiblePrimitive.CollapsibleContent>) {\n return (\n <CollapsiblePrimitive.CollapsibleContent\n data-slot=\"collapsible-content\"\n {...props}\n />\n )\n}\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent }\n",
"type": "registry:ui"
}
],

File diff suppressed because one or more lines are too long

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "dialog",
"dependencies": [
"@radix-ui/react-dialog"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/dialog.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/new-york-v4/ui/button\"\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogPrimitive.Close>\n )}\n </div>\n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg leading-none font-semibold\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { XIcon } from \"lucide-react\"\nimport { Dialog as DialogPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button } from \"@/registry/new-york-v4/ui/button\"\n\nfunction Dialog({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />\n}\n\nfunction DialogTrigger({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />\n}\n\nfunction DialogPortal({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />\n}\n\nfunction DialogClose({\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction DialogContent({\n className,\n children,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content> & {\n showCloseButton?: boolean\n}) {\n return (\n <DialogPortal data-slot=\"dialog-portal\">\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border p-6 shadow-lg duration-200 outline-none sm:max-w-lg\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close\n data-slot=\"dialog-close\"\n className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\"\n >\n <XIcon />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n )}\n </DialogPrimitive.Content>\n </DialogPortal>\n )\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogFooter({\n className,\n showCloseButton = false,\n children,\n ...props\n}: React.ComponentProps<\"div\"> & {\n showCloseButton?: boolean\n}) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\n \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <DialogPrimitive.Close asChild>\n <Button variant=\"outline\">Close</Button>\n </DialogPrimitive.Close>\n )}\n </div>\n )\n}\n\nfunction DialogTitle({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg leading-none font-semibold\", className)}\n {...props}\n />\n )\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Dialog,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogOverlay,\n DialogPortal,\n DialogTitle,\n DialogTrigger,\n}\n",
"type": "registry:ui"
}
],

View File

@@ -1,9 +1,6 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "direction",
"dependencies": [
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/direction.tsx",

View File

@@ -2,8 +2,7 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "drawer",
"dependencies": [
"vaul",
"@radix-ui/react-dialog"
"vaul"
],
"files": [
{

View File

@@ -8,7 +8,7 @@
"files": [
{
"path": "registry/new-york-v4/examples/dropdown-menu-checkboxes.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { type DropdownMenuCheckboxItemProps } from \"@radix-ui/react-dropdown-menu\"\n\nimport { Button } from \"@/registry/new-york-v4/ui/button\"\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/new-york-v4/ui/dropdown-menu\"\n\ntype Checked = DropdownMenuCheckboxItemProps[\"checked\"]\n\nexport default function DropdownMenuCheckboxes() {\n const [showStatusBar, setShowStatusBar] = React.useState<Checked>(true)\n const [showActivityBar, setShowActivityBar] = React.useState<Checked>(false)\n const [showPanel, setShowPanel] = React.useState<Checked>(false)\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\">Open</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>Appearance</DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuCheckboxItem\n checked={showStatusBar}\n onCheckedChange={setShowStatusBar}\n >\n Status Bar\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={showActivityBar}\n onCheckedChange={setShowActivityBar}\n disabled\n >\n Activity Bar\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={showPanel}\n onCheckedChange={setShowPanel}\n >\n Panel\n </DropdownMenuCheckboxItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport type { DropdownMenu as DropdownMenuPrimitive } from \"radix-ui\"\n\nimport { Button } from \"@/registry/new-york-v4/ui/button\"\nimport {\n DropdownMenu,\n DropdownMenuCheckboxItem,\n DropdownMenuContent,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuTrigger,\n} from \"@/registry/new-york-v4/ui/dropdown-menu\"\n\ntype Checked = React.ComponentProps<\n typeof DropdownMenuPrimitive.CheckboxItem\n>[\"checked\"]\n\nexport default function DropdownMenuCheckboxes() {\n const [showStatusBar, setShowStatusBar] = React.useState<Checked>(true)\n const [showActivityBar, setShowActivityBar] = React.useState<Checked>(false)\n const [showPanel, setShowPanel] = React.useState<Checked>(false)\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <Button variant=\"outline\">Open</Button>\n </DropdownMenuTrigger>\n <DropdownMenuContent className=\"w-56\">\n <DropdownMenuLabel>Appearance</DropdownMenuLabel>\n <DropdownMenuSeparator />\n <DropdownMenuCheckboxItem\n checked={showStatusBar}\n onCheckedChange={setShowStatusBar}\n >\n Status Bar\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={showActivityBar}\n onCheckedChange={setShowActivityBar}\n disabled\n >\n Activity Bar\n </DropdownMenuCheckboxItem>\n <DropdownMenuCheckboxItem\n checked={showPanel}\n onCheckedChange={setShowPanel}\n >\n Panel\n </DropdownMenuCheckboxItem>\n </DropdownMenuContent>\n </DropdownMenu>\n )\n}\n",
"type": "registry:example"
}
],

File diff suppressed because one or more lines are too long

View File

@@ -2,8 +2,7 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "form",
"dependencies": [
"@radix-ui/react-label",
"@radix-ui/react-slot",
"radix-ui",
"@hookform/resolvers",
"zod",
"react-hook-form"
@@ -15,7 +14,7 @@
"files": [
{
"path": "registry/new-york-v4/ui/form.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport type * as LabelPrimitive from \"@radix-ui/react-label\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Label } from \"@/registry/new-york-v4/ui/label\"\n\nconst Form = FormProvider\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n)\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext)\n const itemContext = React.useContext(FormItemContext)\n const { getFieldState } = useFormContext()\n const formState = useFormState({ name: fieldContext.name })\n const fieldState = getFieldState(fieldContext.name, formState)\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\")\n }\n\n const { id } = itemContext\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n }\n}\n\ntype FormItemContextValue = {\n id: string\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n)\n\nfunction FormItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const id = React.useId()\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n data-slot=\"form-item\"\n className={cn(\"grid gap-2\", className)}\n {...props}\n />\n </FormItemContext.Provider>\n )\n}\n\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField()\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(\"data-[error=true]:text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n )\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot>) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n\n return (\n <Slot\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n )\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n const { formDescriptionId } = useFormField()\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<\"p\">) {\n const { error, formMessageId } = useFormField()\n const body = error ? String(error?.message ?? \"\") : props.children\n\n if (!body) {\n return null\n }\n\n return (\n <p\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn(\"text-destructive text-sm\", className)}\n {...props}\n >\n {body}\n </p>\n )\n}\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n}\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport type { Label as LabelPrimitive } from \"radix-ui\"\nimport { Slot } from \"radix-ui\"\nimport {\n Controller,\n FormProvider,\n useFormContext,\n useFormState,\n type ControllerProps,\n type FieldPath,\n type FieldValues,\n} from \"react-hook-form\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Label } from \"@/registry/new-york-v4/ui/label\"\n\nconst Form = FormProvider\n\ntype FormFieldContextValue<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n> = {\n name: TName\n}\n\nconst FormFieldContext = React.createContext<FormFieldContextValue>(\n {} as FormFieldContextValue\n)\n\nconst FormField = <\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>,\n>({\n ...props\n}: ControllerProps<TFieldValues, TName>) => {\n return (\n <FormFieldContext.Provider value={{ name: props.name }}>\n <Controller {...props} />\n </FormFieldContext.Provider>\n )\n}\n\nconst useFormField = () => {\n const fieldContext = React.useContext(FormFieldContext)\n const itemContext = React.useContext(FormItemContext)\n const { getFieldState } = useFormContext()\n const formState = useFormState({ name: fieldContext.name })\n const fieldState = getFieldState(fieldContext.name, formState)\n\n if (!fieldContext) {\n throw new Error(\"useFormField should be used within <FormField>\")\n }\n\n const { id } = itemContext\n\n return {\n id,\n name: fieldContext.name,\n formItemId: `${id}-form-item`,\n formDescriptionId: `${id}-form-item-description`,\n formMessageId: `${id}-form-item-message`,\n ...fieldState,\n }\n}\n\ntype FormItemContextValue = {\n id: string\n}\n\nconst FormItemContext = React.createContext<FormItemContextValue>(\n {} as FormItemContextValue\n)\n\nfunction FormItem({ className, ...props }: React.ComponentProps<\"div\">) {\n const id = React.useId()\n\n return (\n <FormItemContext.Provider value={{ id }}>\n <div\n data-slot=\"form-item\"\n className={cn(\"grid gap-2\", className)}\n {...props}\n />\n </FormItemContext.Provider>\n )\n}\n\nfunction FormLabel({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n const { error, formItemId } = useFormField()\n\n return (\n <Label\n data-slot=\"form-label\"\n data-error={!!error}\n className={cn(\"data-[error=true]:text-destructive\", className)}\n htmlFor={formItemId}\n {...props}\n />\n )\n}\n\nfunction FormControl({ ...props }: React.ComponentProps<typeof Slot.Root>) {\n const { error, formItemId, formDescriptionId, formMessageId } = useFormField()\n\n return (\n <Slot.Root\n data-slot=\"form-control\"\n id={formItemId}\n aria-describedby={\n !error\n ? `${formDescriptionId}`\n : `${formDescriptionId} ${formMessageId}`\n }\n aria-invalid={!!error}\n {...props}\n />\n )\n}\n\nfunction FormDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n const { formDescriptionId } = useFormField()\n\n return (\n <p\n data-slot=\"form-description\"\n id={formDescriptionId}\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction FormMessage({ className, ...props }: React.ComponentProps<\"p\">) {\n const { error, formMessageId } = useFormField()\n const body = error ? String(error?.message ?? \"\") : props.children\n\n if (!body) {\n return null\n }\n\n return (\n <p\n data-slot=\"form-message\"\n id={formMessageId}\n className={cn(\"text-destructive text-sm\", className)}\n {...props}\n >\n {body}\n </p>\n )\n}\n\nexport {\n useFormField,\n Form,\n FormItem,\n FormLabel,\n FormControl,\n FormDescription,\n FormMessage,\n FormField,\n}\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "hover-card",
"dependencies": [
"@radix-ui/react-hover-card"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/hover-card.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as HoverCardPrimitive from \"@radix-ui/react-hover-card\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction HoverCard({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />\n}\n\nfunction HoverCardTrigger({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return (\n <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n )\n}\n\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n )\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { HoverCard as HoverCardPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction HoverCard({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />\n}\n\nfunction HoverCardTrigger({\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return (\n <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />\n )\n}\n\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal data-slot=\"hover-card-portal\">\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n )\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent }\n",
"type": "registry:ui"
}
],

View File

@@ -3,7 +3,8 @@
"name": "index",
"dependencies": [
"class-variance-authority",
"lucide-react"
"lucide-react",
"radix-ui"
],
"devDependencies": [
"tw-animate-css"

View File

@@ -1,13 +1,16 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "item",
"dependencies": [
"radix-ui"
],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/new-york-v4/ui/item.tsx",
"content": "import * as React from \"react\"\nimport { Slot } from \"@radix-ui/react-slot\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Separator } from \"@/registry/new-york-v4/ui/separator\"\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn(\"group/item-group flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn(\"my-0\", className)}\n {...props}\n />\n )\n}\n\nconst itemVariants = cva(\n \"group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50\",\n },\n size: {\n default: \"p-4 gap-4 \",\n sm: \"py-3 px-4 gap-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Item({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> &\n VariantProps<typeof itemVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : \"div\"\n return (\n <Comp\n data-slot=\"item\"\n data-variant={variant}\n data-size={size}\n className={cn(itemVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nconst itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(itemMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn(\n \"flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"item-description\"\n className={cn(\n \"text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-actions\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemActions,\n ItemGroup,\n ItemSeparator,\n ItemTitle,\n ItemDescription,\n ItemHeader,\n ItemFooter,\n}\n",
"content": "import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Slot } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Separator } from \"@/registry/new-york-v4/ui/separator\"\n\nfunction ItemGroup({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n role=\"list\"\n data-slot=\"item-group\"\n className={cn(\"group/item-group flex flex-col\", className)}\n {...props}\n />\n )\n}\n\nfunction ItemSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof Separator>) {\n return (\n <Separator\n data-slot=\"item-separator\"\n orientation=\"horizontal\"\n className={cn(\"my-0\", className)}\n {...props}\n />\n )\n}\n\nconst itemVariants = cva(\n \"group/item flex items-center border border-transparent text-sm rounded-md transition-colors [a]:hover:bg-accent/50 [a]:transition-colors duration-100 flex-wrap outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline: \"border-border\",\n muted: \"bg-muted/50\",\n },\n size: {\n default: \"p-4 gap-4 \",\n sm: \"py-3 px-4 gap-2.5\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Item({\n className,\n variant = \"default\",\n size = \"default\",\n asChild = false,\n ...props\n}: React.ComponentProps<\"div\"> &\n VariantProps<typeof itemVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot.Root : \"div\"\n return (\n <Comp\n data-slot=\"item\"\n data-variant={variant}\n data-size={size}\n className={cn(itemVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nconst itemMediaVariants = cva(\n \"flex shrink-0 items-center justify-center gap-2 group-has-[[data-slot=item-description]]/item:self-start [&_svg]:pointer-events-none group-has-[[data-slot=item-description]]/item:translate-y-0.5\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n icon: \"size-8 border rounded-sm bg-muted [&_svg:not([class*='size-'])]:size-4\",\n image:\n \"size-10 rounded-sm overflow-hidden [&_img]:size-full [&_img]:object-cover\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction ItemMedia({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<\"div\"> & VariantProps<typeof itemMediaVariants>) {\n return (\n <div\n data-slot=\"item-media\"\n data-variant={variant}\n className={cn(itemMediaVariants({ variant, className }))}\n {...props}\n />\n )\n}\n\nfunction ItemContent({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-content\"\n className={cn(\n \"flex flex-1 flex-col gap-1 [&+[data-slot=item-content]]:flex-none\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-title\"\n className={cn(\n \"flex w-fit items-center gap-2 text-sm leading-snug font-medium\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemDescription({ className, ...props }: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"item-description\"\n className={cn(\n \"text-muted-foreground line-clamp-2 text-sm leading-normal font-normal text-balance\",\n \"[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemActions({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-actions\"\n className={cn(\"flex items-center gap-2\", className)}\n {...props}\n />\n )\n}\n\nfunction ItemHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-header\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ItemFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"item-footer\"\n className={cn(\n \"flex basis-full items-center justify-between gap-2\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport {\n Item,\n ItemMedia,\n ItemContent,\n ItemActions,\n ItemGroup,\n ItemSeparator,\n ItemTitle,\n ItemDescription,\n ItemHeader,\n ItemFooter,\n}\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "label",
"dependencies": [
"@radix-ui/react-label"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/label.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Label as LabelPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n",
"type": "registry:ui"
}
],

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "popover",
"dependencies": [
"@radix-ui/react-popover"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/popover.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-1 text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverTitle({ className, ...props }: React.ComponentProps<\"h2\">) {\n return (\n <div\n data-slot=\"popover-title\"\n className={cn(\"font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverDescription({\n className,\n ...props\n}: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"popover-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Popover,\n PopoverTrigger,\n PopoverContent,\n PopoverAnchor,\n PopoverHeader,\n PopoverTitle,\n PopoverDescription,\n}\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nfunction PopoverHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"popover-header\"\n className={cn(\"flex flex-col gap-1 text-sm\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverTitle({ className, ...props }: React.ComponentProps<\"h2\">) {\n return (\n <div\n data-slot=\"popover-title\"\n className={cn(\"font-medium\", className)}\n {...props}\n />\n )\n}\n\nfunction PopoverDescription({\n className,\n ...props\n}: React.ComponentProps<\"p\">) {\n return (\n <p\n data-slot=\"popover-description\"\n className={cn(\"text-muted-foreground\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Popover,\n PopoverTrigger,\n PopoverContent,\n PopoverAnchor,\n PopoverHeader,\n PopoverTitle,\n PopoverDescription,\n}\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "progress",
"dependencies": [
"@radix-ui/react-progress"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/progress.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Progress({\n className,\n value,\n ...props\n}: React.ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n \"bg-primary/20 relative h-2 w-full overflow-hidden rounded-full\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"bg-primary h-full w-full flex-1 transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n )\n}\n\nexport { Progress }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Progress as ProgressPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Progress({\n className,\n value,\n ...props\n}: React.ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n \"bg-primary/20 relative h-2 w-full overflow-hidden rounded-full\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"bg-primary h-full w-full flex-1 transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n )\n}\n\nexport { Progress }\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "radio-group",
"dependencies": [
"@radix-ui/react-radio-group"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/radio-group.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { CircleIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { CircleIcon } from \"lucide-react\"\nimport { RadioGroup as RadioGroupPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n",
"type": "registry:ui"
}
],

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "resizable",
"dependencies": [
"react-resizable-panels"
"react-resizable-panels@^3"
],
"files": [
{

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "scroll-area",
"dependencies": [
"@radix-ui/react-scroll-area"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/scroll-area.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-border relative flex-1 rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { ScrollArea as ScrollAreaPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction ScrollArea({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.Root>) {\n return (\n <ScrollAreaPrimitive.Root\n data-slot=\"scroll-area\"\n className={cn(\"relative\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport\n data-slot=\"scroll-area-viewport\"\n className=\"focus-visible:ring-ring/50 size-full rounded-[inherit] transition-[color,box-shadow] outline-none focus-visible:ring-[3px] focus-visible:outline-1\"\n >\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n )\n}\n\nfunction ScrollBar({\n className,\n orientation = \"vertical\",\n ...props\n}: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>) {\n return (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n data-slot=\"scroll-area-scrollbar\"\n orientation={orientation}\n className={cn(\n \"flex touch-none p-px transition-colors select-none\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb\n data-slot=\"scroll-area-thumb\"\n className=\"bg-border relative flex-1 rounded-full\"\n />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n )\n}\n\nexport { ScrollArea, ScrollBar }\n",
"type": "registry:ui"
}
],

File diff suppressed because one or more lines are too long

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "separator",
"dependencies": [
"@radix-ui/react-separator"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/separator.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Separator as SeparatorPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Separator({\n className,\n orientation = \"horizontal\",\n decorative = true,\n ...props\n}: React.ComponentProps<typeof SeparatorPrimitive.Root>) {\n return (\n <SeparatorPrimitive.Root\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n \"bg-border shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Separator }\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "sheet",
"dependencies": [
"@radix-ui/react-dialog"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/sheet.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as SheetPrimitive from \"@radix-ui/react-dialog\"\nimport { XIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n side === \"right\" &&\n \"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm\",\n side === \"left\" &&\n \"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm\",\n side === \"top\" &&\n \"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b\",\n side === \"bottom\" &&\n \"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none\">\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-1.5 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\"text-foreground font-semibold\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { XIcon } from \"lucide-react\"\nimport { Dialog as SheetPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Sheet({ ...props }: React.ComponentProps<typeof SheetPrimitive.Root>) {\n return <SheetPrimitive.Root data-slot=\"sheet\" {...props} />\n}\n\nfunction SheetTrigger({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Trigger>) {\n return <SheetPrimitive.Trigger data-slot=\"sheet-trigger\" {...props} />\n}\n\nfunction SheetClose({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Close>) {\n return <SheetPrimitive.Close data-slot=\"sheet-close\" {...props} />\n}\n\nfunction SheetPortal({\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Portal>) {\n return <SheetPrimitive.Portal data-slot=\"sheet-portal\" {...props} />\n}\n\nfunction SheetOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Overlay>) {\n return (\n <SheetPrimitive.Overlay\n data-slot=\"sheet-overlay\"\n className={cn(\n \"data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction SheetContent({\n className,\n children,\n side = \"right\",\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Content> & {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\"\n showCloseButton?: boolean\n}) {\n return (\n <SheetPortal>\n <SheetOverlay />\n <SheetPrimitive.Content\n data-slot=\"sheet-content\"\n className={cn(\n \"bg-background data-[state=open]:animate-in data-[state=closed]:animate-out fixed z-50 flex flex-col gap-4 shadow-lg transition ease-in-out data-[state=closed]:duration-300 data-[state=open]:duration-500\",\n side === \"right\" &&\n \"data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right inset-y-0 right-0 h-full w-3/4 border-l sm:max-w-sm\",\n side === \"left\" &&\n \"data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left inset-y-0 left-0 h-full w-3/4 border-r sm:max-w-sm\",\n side === \"top\" &&\n \"data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top inset-x-0 top-0 h-auto border-b\",\n side === \"bottom\" &&\n \"data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom inset-x-0 bottom-0 h-auto border-t\",\n className\n )}\n {...props}\n >\n {children}\n {showCloseButton && (\n <SheetPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-xs opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden disabled:pointer-events-none\">\n <XIcon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </SheetPrimitive.Close>\n )}\n </SheetPrimitive.Content>\n </SheetPortal>\n )\n}\n\nfunction SheetHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-header\"\n className={cn(\"flex flex-col gap-1.5 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"sheet-footer\"\n className={cn(\"mt-auto flex flex-col gap-2 p-4\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetTitle({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Title>) {\n return (\n <SheetPrimitive.Title\n data-slot=\"sheet-title\"\n className={cn(\"text-foreground font-semibold\", className)}\n {...props}\n />\n )\n}\n\nfunction SheetDescription({\n className,\n ...props\n}: React.ComponentProps<typeof SheetPrimitive.Description>) {\n return (\n <SheetPrimitive.Description\n data-slot=\"sheet-description\"\n className={cn(\"text-muted-foreground text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Sheet,\n SheetTrigger,\n SheetClose,\n SheetContent,\n SheetHeader,\n SheetFooter,\n SheetTitle,\n SheetDescription,\n}\n",
"type": "registry:ui"
}
],

File diff suppressed because one or more lines are too long

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "slider",
"dependencies": [
"@radix-ui/react-slider"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/slider.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as SliderPrimitive from \"@radix-ui/react-slider\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n )\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5\"\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Slider as SliderPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Slider({\n className,\n defaultValue,\n value,\n min = 0,\n max = 100,\n ...props\n}: React.ComponentProps<typeof SliderPrimitive.Root>) {\n const _values = React.useMemo(\n () =>\n Array.isArray(value)\n ? value\n : Array.isArray(defaultValue)\n ? defaultValue\n : [min, max],\n [value, defaultValue, min, max]\n )\n\n return (\n <SliderPrimitive.Root\n data-slot=\"slider\"\n defaultValue={defaultValue}\n value={value}\n min={min}\n max={max}\n className={cn(\n \"relative flex w-full touch-none items-center select-none data-[disabled]:opacity-50 data-[orientation=vertical]:h-full data-[orientation=vertical]:min-h-44 data-[orientation=vertical]:w-auto data-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n >\n <SliderPrimitive.Track\n data-slot=\"slider-track\"\n className={cn(\n \"bg-muted relative grow overflow-hidden rounded-full data-[orientation=horizontal]:h-1.5 data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-1.5\"\n )}\n >\n <SliderPrimitive.Range\n data-slot=\"slider-range\"\n className={cn(\n \"bg-primary absolute data-[orientation=horizontal]:h-full data-[orientation=vertical]:w-full\"\n )}\n />\n </SliderPrimitive.Track>\n {Array.from({ length: _values.length }, (_, index) => (\n <SliderPrimitive.Thumb\n data-slot=\"slider-thumb\"\n key={index}\n className=\"border-primary ring-ring/50 block size-4 shrink-0 rounded-full border bg-white shadow-sm transition-[color,box-shadow] hover:ring-4 focus-visible:ring-4 focus-visible:outline-hidden disabled:pointer-events-none disabled:opacity-50\"\n />\n ))}\n </SliderPrimitive.Root>\n )\n}\n\nexport { Slider }\n",
"type": "registry:ui"
}
],

View File

@@ -3,7 +3,8 @@
"name": "style",
"dependencies": [
"class-variance-authority",
"lucide-react"
"lucide-react",
"radix-ui"
],
"devDependencies": [
"tw-animate-css"

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "switch",
"dependencies": [
"@radix-ui/react-switch"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/switch.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Switch as SwitchPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Switch({\n className,\n size = \"default\",\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 group/switch inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "tabs",
"dependencies": [
"@radix-ui/react-tabs"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/tabs.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as TabsPrimitive from \"@radix-ui/react-tabs\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Tabs({\n className,\n orientation = \"horizontal\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n \"group/tabs flex gap-2 data-[orientation=horizontal]:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst tabsListVariants = cva(\n \"rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"gap-1 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List> &\n VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent\",\n \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 data-[state=active]:text-foreground\",\n \"after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Tabs as TabsPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Tabs({\n className,\n orientation = \"horizontal\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Root>) {\n return (\n <TabsPrimitive.Root\n data-slot=\"tabs\"\n data-orientation={orientation}\n orientation={orientation}\n className={cn(\n \"group/tabs flex gap-2 data-[orientation=horizontal]:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nconst tabsListVariants = cva(\n \"rounded-lg p-[3px] group-data-[orientation=horizontal]/tabs:h-9 data-[variant=line]:rounded-none group/tabs-list text-muted-foreground inline-flex w-fit items-center justify-center group-data-[orientation=vertical]/tabs:h-fit group-data-[orientation=vertical]/tabs:flex-col\",\n {\n variants: {\n variant: {\n default: \"bg-muted\",\n line: \"gap-1 bg-transparent\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nfunction TabsList({\n className,\n variant = \"default\",\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.List> &\n VariantProps<typeof tabsListVariants>) {\n return (\n <TabsPrimitive.List\n data-slot=\"tabs-list\"\n data-variant={variant}\n className={cn(tabsListVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction TabsTrigger({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Trigger>) {\n return (\n <TabsPrimitive.Trigger\n data-slot=\"tabs-trigger\"\n className={cn(\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring text-foreground/60 hover:text-foreground dark:text-muted-foreground dark:hover:text-foreground relative inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-all group-data-[orientation=vertical]/tabs:w-full group-data-[orientation=vertical]/tabs:justify-start focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 group-data-[variant=default]/tabs-list:data-[state=active]:shadow-sm group-data-[variant=line]/tabs-list:data-[state=active]:shadow-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n \"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:border-transparent dark:group-data-[variant=line]/tabs-list:data-[state=active]:bg-transparent\",\n \"data-[state=active]:bg-background dark:data-[state=active]:text-foreground dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 data-[state=active]:text-foreground\",\n \"after:bg-foreground after:absolute after:opacity-0 after:transition-opacity group-data-[orientation=horizontal]/tabs:after:inset-x-0 group-data-[orientation=horizontal]/tabs:after:bottom-[-5px] group-data-[orientation=horizontal]/tabs:after:h-0.5 group-data-[orientation=vertical]/tabs:after:inset-y-0 group-data-[orientation=vertical]/tabs:after:-right-1 group-data-[orientation=vertical]/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-[state=active]:after:opacity-100\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction TabsContent({\n className,\n ...props\n}: React.ComponentProps<typeof TabsPrimitive.Content>) {\n return (\n <TabsPrimitive.Content\n data-slot=\"tabs-content\"\n className={cn(\"flex-1 outline-none\", className)}\n {...props}\n />\n )\n}\n\nexport { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }\n",
"type": "registry:ui"
}
],

View File

@@ -2,7 +2,7 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "toggle-group",
"dependencies": [
"@radix-ui/react-toggle-group"
"radix-ui"
],
"registryDependencies": [
"toggle"
@@ -10,7 +10,7 @@
"files": [
{
"path": "registry/new-york-v4/ui/toggle-group.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as ToggleGroupPrimitive from \"@radix-ui/react-toggle-group\"\nimport { type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\nimport { toggleVariants } from \"@/registry/new-york-v4/ui/toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n }) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size, spacing }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n \"w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10\",\n \"data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l\",\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { type VariantProps } from \"class-variance-authority\"\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\nimport { toggleVariants } from \"@/registry/new-york-v4/ui/toggle\"\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n }\n>({\n size: \"default\",\n variant: \"default\",\n spacing: 0,\n})\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number\n }) {\n return (\n <ToggleGroupPrimitive.Root\n data-slot=\"toggle-group\"\n data-variant={variant}\n data-size={size}\n data-spacing={spacing}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n className={cn(\n \"group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs\",\n className\n )}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ variant, size, spacing }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n )\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext)\n\n return (\n <ToggleGroupPrimitive.Item\n data-slot=\"toggle-group-item\"\n data-variant={context.variant || variant}\n data-size={context.size || size}\n data-spacing={context.spacing}\n className={cn(\n toggleVariants({\n variant: context.variant || variant,\n size: context.size || size,\n }),\n \"w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10\",\n \"data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:first:rounded-l-md data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:data-[variant=outline]:first:border-l\",\n className\n )}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n )\n}\n\nexport { ToggleGroup, ToggleGroupItem }\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "toggle",
"dependencies": [
"@radix-ui/react-toggle"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/toggle.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as TogglePrimitive from \"@radix-ui/react-toggle\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-2 min-w-9\",\n sm: \"h-8 px-1.5 min-w-8\",\n lg: \"h-10 px-2.5 min-w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Toggle({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { Toggle as TogglePrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium hover:bg-muted hover:text-muted-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0 focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] outline-none transition-[color,box-shadow] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive whitespace-nowrap\",\n {\n variants: {\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground\",\n },\n size: {\n default: \"h-9 px-2 min-w-9\",\n sm: \"h-8 px-1.5 min-w-8\",\n lg: \"h-10 px-2.5 min-w-10\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\",\n },\n }\n)\n\nfunction Toggle({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n data-slot=\"toggle\"\n className={cn(toggleVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Toggle, toggleVariants }\n",
"type": "registry:ui"
}
],

View File

@@ -2,12 +2,12 @@
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "tooltip",
"dependencies": [
"@radix-ui/react-tooltip"
"radix-ui"
],
"files": [
{
"path": "registry/new-york-v4/ui/tooltip.tsx",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n )\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n )\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n",
"content": "\"use client\"\n\nimport * as React from \"react\"\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n )\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return (\n <TooltipProvider>\n <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n </TooltipProvider>\n )\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n",
"type": "registry:ui"
}
],

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": [
"latin"
]
}
}

View File

@@ -24,7 +24,9 @@
},
{
"name": "alert-dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-lyra/ui/alert-dialog.tsx",
@@ -85,7 +87,9 @@
},
{
"name": "button-group",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/radix-lyra/ui/button-group.tsx",
@@ -96,8 +100,13 @@
},
{
"name": "calendar",
"dependencies": ["react-day-picker@latest", "date-fns"],
"registryDependencies": ["button"],
"dependencies": [
"react-day-picker@latest",
"date-fns"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-lyra/ui/calendar.tsx",
@@ -118,8 +127,12 @@
},
{
"name": "carousel",
"dependencies": ["embla-carousel-react"],
"registryDependencies": ["button"],
"dependencies": [
"embla-carousel-react"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-lyra/ui/carousel.tsx",
@@ -130,7 +143,9 @@
},
{
"name": "chart",
"dependencies": ["recharts@2.15.4"],
"dependencies": [
"recharts@2.15.4"
],
"files": [
{
"path": "registry/radix-lyra/ui/chart.tsx",
@@ -161,8 +176,13 @@
},
{
"name": "combobox",
"dependencies": ["@base-ui/react"],
"registryDependencies": ["button", "input-group"],
"dependencies": [
"@base-ui/react"
],
"registryDependencies": [
"button",
"input-group"
],
"files": [
{
"path": "registry/radix-lyra/ui/combobox.tsx",
@@ -173,8 +193,13 @@
},
{
"name": "command",
"dependencies": ["cmdk"],
"registryDependencies": ["dialog", "input-group"],
"dependencies": [
"cmdk"
],
"registryDependencies": [
"dialog",
"input-group"
],
"files": [
{
"path": "registry/radix-lyra/ui/command.tsx",
@@ -195,7 +220,9 @@
},
{
"name": "dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-lyra/ui/dialog.tsx",
@@ -206,7 +233,9 @@
},
{
"name": "drawer",
"dependencies": ["vaul"],
"dependencies": [
"vaul"
],
"files": [
{
"path": "registry/radix-lyra/ui/drawer.tsx",
@@ -237,7 +266,10 @@
},
{
"name": "field",
"registryDependencies": ["label", "separator"],
"registryDependencies": [
"label",
"separator"
],
"files": [
{
"path": "registry/radix-lyra/ui/field.tsx",
@@ -272,7 +304,11 @@
},
{
"name": "input-group",
"registryDependencies": ["button", "input", "textarea"],
"registryDependencies": [
"button",
"input",
"textarea"
],
"files": [
{
"path": "registry/radix-lyra/ui/input-group.tsx",
@@ -283,7 +319,9 @@
},
{
"name": "input-otp",
"dependencies": ["input-otp"],
"dependencies": [
"input-otp"
],
"files": [
{
"path": "registry/radix-lyra/ui/input-otp.tsx",
@@ -294,7 +332,9 @@
},
{
"name": "item",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/radix-lyra/ui/item.tsx",
@@ -335,7 +375,9 @@
},
{
"name": "pagination",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-lyra/ui/pagination.tsx",
@@ -376,7 +418,9 @@
},
{
"name": "resizable",
"dependencies": ["react-resizable-panels"],
"dependencies": [
"react-resizable-panels"
],
"files": [
{
"path": "registry/radix-lyra/ui/resizable.tsx",
@@ -417,7 +461,9 @@
},
{
"name": "sheet",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-lyra/ui/sheet.tsx",
@@ -467,7 +513,10 @@
},
{
"name": "sonner",
"dependencies": ["sonner", "next-themes"],
"dependencies": [
"sonner",
"next-themes"
],
"files": [
{
"path": "registry/radix-lyra/ui/sonner.tsx",
@@ -538,7 +587,9 @@
},
{
"name": "toggle-group",
"registryDependencies": ["toggle"],
"registryDependencies": [
"toggle"
],
"files": [
{
"path": "registry/radix-lyra/ui/toggle-group.tsx",
@@ -590,7 +641,12 @@
{
"name": "accordion-example",
"title": "Accordion",
"registryDependencies": ["accordion", "button", "card", "example"],
"registryDependencies": [
"accordion",
"button",
"card",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/accordion-example.tsx",
@@ -602,7 +658,12 @@
{
"name": "alert-example",
"title": "Alert",
"registryDependencies": ["alert", "badge", "button", "example"],
"registryDependencies": [
"alert",
"badge",
"button",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/alert-example.tsx",
@@ -614,7 +675,12 @@
{
"name": "alert-dialog-example",
"title": "Alert Dialog",
"registryDependencies": ["alert-dialog", "button", "dialog", "example"],
"registryDependencies": [
"alert-dialog",
"button",
"dialog",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/alert-dialog-example.tsx",
@@ -626,7 +692,10 @@
{
"name": "aspect-ratio-example",
"title": "Aspect Ratio",
"registryDependencies": ["aspect-ratio", "example"],
"registryDependencies": [
"aspect-ratio",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/aspect-ratio-example.tsx",
@@ -638,7 +707,12 @@
{
"name": "avatar-example",
"title": "Avatar",
"registryDependencies": ["avatar", "button", "empty", "example"],
"registryDependencies": [
"avatar",
"button",
"empty",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/avatar-example.tsx",
@@ -650,7 +724,11 @@
{
"name": "badge-example",
"title": "Badge",
"registryDependencies": ["badge", "spinner", "example"],
"registryDependencies": [
"badge",
"spinner",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/badge-example.tsx",
@@ -662,7 +740,11 @@
{
"name": "breadcrumb-example",
"title": "Breadcrumb",
"registryDependencies": ["breadcrumb", "dropdown-menu", "example"],
"registryDependencies": [
"breadcrumb",
"dropdown-menu",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/breadcrumb-example.tsx",
@@ -674,7 +756,10 @@
{
"name": "button-example",
"title": "Button",
"registryDependencies": ["button", "example"],
"registryDependencies": [
"button",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/button-example.tsx",
@@ -750,7 +835,11 @@
{
"name": "carousel-example",
"title": "Carousel",
"registryDependencies": ["card", "carousel", "example"],
"registryDependencies": [
"card",
"carousel",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/carousel-example.tsx",
@@ -762,7 +851,11 @@
{
"name": "chart-example",
"title": "Chart",
"registryDependencies": ["chart", "card", "example"],
"registryDependencies": [
"chart",
"card",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/chart-example.tsx",
@@ -774,7 +867,12 @@
{
"name": "checkbox-example",
"title": "Checkbox",
"registryDependencies": ["checkbox", "field", "table", "example"],
"registryDependencies": [
"checkbox",
"field",
"table",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/checkbox-example.tsx",
@@ -829,7 +927,11 @@
{
"name": "command-example",
"title": "Command",
"registryDependencies": ["button", "command", "example"],
"registryDependencies": [
"button",
"command",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/command-example.tsx",
@@ -841,7 +943,12 @@
{
"name": "context-menu-example",
"title": "Context Menu",
"registryDependencies": ["button", "context-menu", "dialog", "example"],
"registryDependencies": [
"button",
"context-menu",
"dialog",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/context-menu-example.tsx",
@@ -880,7 +987,10 @@
{
"name": "drawer-example",
"title": "Drawer",
"registryDependencies": ["drawer", "example"],
"registryDependencies": [
"drawer",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/drawer-example.tsx",
@@ -953,7 +1063,12 @@
{
"name": "hover-card-example",
"title": "Hover Card",
"registryDependencies": ["button", "dialog", "hover-card", "example"],
"registryDependencies": [
"button",
"dialog",
"hover-card",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/hover-card-example.tsx",
@@ -1028,7 +1143,11 @@
{
"name": "item-example",
"title": "Item",
"registryDependencies": ["button", "item", "example"],
"registryDependencies": [
"button",
"item",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/item-example.tsx",
@@ -1077,7 +1196,12 @@
{
"name": "menubar-example",
"title": "Menubar",
"registryDependencies": ["button", "dialog", "menubar", "example"],
"registryDependencies": [
"button",
"dialog",
"menubar",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/menubar-example.tsx",
@@ -1089,7 +1213,11 @@
{
"name": "native-select-example",
"title": "Native Select",
"registryDependencies": ["field", "native-select", "example"],
"registryDependencies": [
"field",
"native-select",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/native-select-example.tsx",
@@ -1118,7 +1246,12 @@
{
"name": "pagination-example",
"title": "Pagination",
"registryDependencies": ["field", "pagination", "select", "example"],
"registryDependencies": [
"field",
"pagination",
"select",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/pagination-example.tsx",
@@ -1167,7 +1300,11 @@
{
"name": "radio-group-example",
"title": "Radio Group",
"registryDependencies": ["field", "radio-group", "example"],
"registryDependencies": [
"field",
"radio-group",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/radio-group-example.tsx",
@@ -1179,7 +1316,10 @@
{
"name": "resizable-example",
"title": "Resizable",
"registryDependencies": ["resizable", "example"],
"registryDependencies": [
"resizable",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/resizable-example.tsx",
@@ -1191,7 +1331,11 @@
{
"name": "scroll-area-example",
"title": "Scroll Area",
"registryDependencies": ["scroll-area", "separator", "example"],
"registryDependencies": [
"scroll-area",
"separator",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/scroll-area-example.tsx",
@@ -1224,7 +1368,10 @@
{
"name": "separator-example",
"title": "Separator",
"registryDependencies": ["separator", "example"],
"registryDependencies": [
"separator",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/separator-example.tsx",
@@ -1236,7 +1383,13 @@
{
"name": "sheet-example",
"title": "Sheet",
"registryDependencies": ["button", "field", "input", "sheet", "example"],
"registryDependencies": [
"button",
"field",
"input",
"sheet",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/sheet-example.tsx",
@@ -1287,7 +1440,11 @@
{
"name": "sidebar-inset-example",
"title": "Sidebar (Inset)",
"registryDependencies": ["collapsible", "sidebar", "example"],
"registryDependencies": [
"collapsible",
"sidebar",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/sidebar-inset-example.tsx",
@@ -1319,7 +1476,10 @@
{
"name": "skeleton-example",
"title": "Skeleton",
"registryDependencies": ["skeleton", "example"],
"registryDependencies": [
"skeleton",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/skeleton-example.tsx",
@@ -1331,7 +1491,11 @@
{
"name": "slider-example",
"title": "Slider",
"registryDependencies": ["label", "slider", "example"],
"registryDependencies": [
"label",
"slider",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/slider-example.tsx",
@@ -1343,7 +1507,10 @@
{
"name": "sonner-example",
"title": "Sonner",
"registryDependencies": ["sonner", "example"],
"registryDependencies": [
"sonner",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/sonner-example.tsx",
@@ -1375,7 +1542,12 @@
{
"name": "switch-example",
"title": "Switch",
"registryDependencies": ["field", "label", "switch", "example"],
"registryDependencies": [
"field",
"label",
"switch",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/switch-example.tsx",
@@ -1406,7 +1578,12 @@
{
"name": "tabs-example",
"title": "Tabs",
"registryDependencies": ["button", "dropdown-menu", "tabs", "example"],
"registryDependencies": [
"button",
"dropdown-menu",
"tabs",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/tabs-example.tsx",
@@ -1418,7 +1595,11 @@
{
"name": "textarea-example",
"title": "Textarea",
"registryDependencies": ["field", "textarea", "example"],
"registryDependencies": [
"field",
"textarea",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/textarea-example.tsx",
@@ -1430,7 +1611,10 @@
{
"name": "toggle-example",
"title": "Toggle",
"registryDependencies": ["toggle", "example"],
"registryDependencies": [
"toggle",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/toggle-example.tsx",
@@ -1442,7 +1626,12 @@
{
"name": "toggle-group-example",
"title": "Toggle Group",
"registryDependencies": ["input", "select", "toggle-group", "example"],
"registryDependencies": [
"input",
"select",
"toggle-group",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/toggle-group-example.tsx",
@@ -1454,7 +1643,12 @@
{
"name": "tooltip-example",
"title": "Tooltip",
"registryDependencies": ["button", "kbd", "tooltip", "example"],
"registryDependencies": [
"button",
"kbd",
"tooltip",
"example"
],
"files": [
{
"path": "registry/radix-lyra/examples/tooltip-example.tsx",
@@ -1489,7 +1683,10 @@
},
{
"name": "utils",
"dependencies": ["clsx", "tailwind-merge"],
"dependencies": [
"clsx",
"tailwind-merge"
],
"files": [
{
"path": "registry/radix-lyra/lib/utils.ts",
@@ -1551,7 +1748,11 @@
{
"name": "elevenlabs",
"title": "Elevenlabs",
"registryDependencies": ["example", "button", "card"],
"registryDependencies": [
"example",
"button",
"card"
],
"files": [
{
"path": "registry/radix-lyra/blocks/elevenlabs.tsx",
@@ -1662,15 +1863,17 @@
"type": "registry:hook"
},
{
"name": "font-geist-sans",
"title": "Geist Sans",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1682,7 +1885,9 @@
"provider": "google",
"import": "Inter",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1716,7 +1921,9 @@
"provider": "google",
"import": "Figtree",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1728,7 +1935,9 @@
"provider": "google",
"import": "Roboto",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1740,7 +1949,9 @@
"provider": "google",
"import": "Raleway",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1752,7 +1963,9 @@
"provider": "google",
"import": "DM_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1764,7 +1977,9 @@
"provider": "google",
"import": "Public_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1776,7 +1991,9 @@
"provider": "google",
"import": "Outfit",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1788,8 +2005,24 @@
"provider": "google",
"import": "JetBrains_Mono",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": [
"latin"
]
}
}

View File

@@ -24,7 +24,9 @@
},
{
"name": "alert-dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-maia/ui/alert-dialog.tsx",
@@ -85,7 +87,9 @@
},
{
"name": "button-group",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/radix-maia/ui/button-group.tsx",
@@ -96,8 +100,13 @@
},
{
"name": "calendar",
"dependencies": ["react-day-picker@latest", "date-fns"],
"registryDependencies": ["button"],
"dependencies": [
"react-day-picker@latest",
"date-fns"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-maia/ui/calendar.tsx",
@@ -118,8 +127,12 @@
},
{
"name": "carousel",
"dependencies": ["embla-carousel-react"],
"registryDependencies": ["button"],
"dependencies": [
"embla-carousel-react"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-maia/ui/carousel.tsx",
@@ -130,7 +143,9 @@
},
{
"name": "chart",
"dependencies": ["recharts@2.15.4"],
"dependencies": [
"recharts@2.15.4"
],
"files": [
{
"path": "registry/radix-maia/ui/chart.tsx",
@@ -161,8 +176,13 @@
},
{
"name": "combobox",
"dependencies": ["@base-ui/react"],
"registryDependencies": ["button", "input-group"],
"dependencies": [
"@base-ui/react"
],
"registryDependencies": [
"button",
"input-group"
],
"files": [
{
"path": "registry/radix-maia/ui/combobox.tsx",
@@ -173,8 +193,13 @@
},
{
"name": "command",
"dependencies": ["cmdk"],
"registryDependencies": ["dialog", "input-group"],
"dependencies": [
"cmdk"
],
"registryDependencies": [
"dialog",
"input-group"
],
"files": [
{
"path": "registry/radix-maia/ui/command.tsx",
@@ -195,7 +220,9 @@
},
{
"name": "dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-maia/ui/dialog.tsx",
@@ -206,7 +233,9 @@
},
{
"name": "drawer",
"dependencies": ["vaul"],
"dependencies": [
"vaul"
],
"files": [
{
"path": "registry/radix-maia/ui/drawer.tsx",
@@ -237,7 +266,10 @@
},
{
"name": "field",
"registryDependencies": ["label", "separator"],
"registryDependencies": [
"label",
"separator"
],
"files": [
{
"path": "registry/radix-maia/ui/field.tsx",
@@ -272,7 +304,11 @@
},
{
"name": "input-group",
"registryDependencies": ["button", "input", "textarea"],
"registryDependencies": [
"button",
"input",
"textarea"
],
"files": [
{
"path": "registry/radix-maia/ui/input-group.tsx",
@@ -283,7 +319,9 @@
},
{
"name": "input-otp",
"dependencies": ["input-otp"],
"dependencies": [
"input-otp"
],
"files": [
{
"path": "registry/radix-maia/ui/input-otp.tsx",
@@ -294,7 +332,9 @@
},
{
"name": "item",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/radix-maia/ui/item.tsx",
@@ -335,7 +375,9 @@
},
{
"name": "pagination",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-maia/ui/pagination.tsx",
@@ -376,7 +418,9 @@
},
{
"name": "resizable",
"dependencies": ["react-resizable-panels"],
"dependencies": [
"react-resizable-panels"
],
"files": [
{
"path": "registry/radix-maia/ui/resizable.tsx",
@@ -417,7 +461,9 @@
},
{
"name": "sheet",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-maia/ui/sheet.tsx",
@@ -467,7 +513,10 @@
},
{
"name": "sonner",
"dependencies": ["sonner", "next-themes"],
"dependencies": [
"sonner",
"next-themes"
],
"files": [
{
"path": "registry/radix-maia/ui/sonner.tsx",
@@ -538,7 +587,9 @@
},
{
"name": "toggle-group",
"registryDependencies": ["toggle"],
"registryDependencies": [
"toggle"
],
"files": [
{
"path": "registry/radix-maia/ui/toggle-group.tsx",
@@ -590,7 +641,12 @@
{
"name": "accordion-example",
"title": "Accordion",
"registryDependencies": ["accordion", "button", "card", "example"],
"registryDependencies": [
"accordion",
"button",
"card",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/accordion-example.tsx",
@@ -602,7 +658,12 @@
{
"name": "alert-example",
"title": "Alert",
"registryDependencies": ["alert", "badge", "button", "example"],
"registryDependencies": [
"alert",
"badge",
"button",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/alert-example.tsx",
@@ -614,7 +675,12 @@
{
"name": "alert-dialog-example",
"title": "Alert Dialog",
"registryDependencies": ["alert-dialog", "button", "dialog", "example"],
"registryDependencies": [
"alert-dialog",
"button",
"dialog",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/alert-dialog-example.tsx",
@@ -626,7 +692,10 @@
{
"name": "aspect-ratio-example",
"title": "Aspect Ratio",
"registryDependencies": ["aspect-ratio", "example"],
"registryDependencies": [
"aspect-ratio",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/aspect-ratio-example.tsx",
@@ -638,7 +707,12 @@
{
"name": "avatar-example",
"title": "Avatar",
"registryDependencies": ["avatar", "button", "empty", "example"],
"registryDependencies": [
"avatar",
"button",
"empty",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/avatar-example.tsx",
@@ -650,7 +724,11 @@
{
"name": "badge-example",
"title": "Badge",
"registryDependencies": ["badge", "spinner", "example"],
"registryDependencies": [
"badge",
"spinner",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/badge-example.tsx",
@@ -662,7 +740,11 @@
{
"name": "breadcrumb-example",
"title": "Breadcrumb",
"registryDependencies": ["breadcrumb", "dropdown-menu", "example"],
"registryDependencies": [
"breadcrumb",
"dropdown-menu",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/breadcrumb-example.tsx",
@@ -674,7 +756,10 @@
{
"name": "button-example",
"title": "Button",
"registryDependencies": ["button", "example"],
"registryDependencies": [
"button",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/button-example.tsx",
@@ -750,7 +835,11 @@
{
"name": "carousel-example",
"title": "Carousel",
"registryDependencies": ["card", "carousel", "example"],
"registryDependencies": [
"card",
"carousel",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/carousel-example.tsx",
@@ -762,7 +851,11 @@
{
"name": "chart-example",
"title": "Chart",
"registryDependencies": ["chart", "card", "example"],
"registryDependencies": [
"chart",
"card",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/chart-example.tsx",
@@ -774,7 +867,12 @@
{
"name": "checkbox-example",
"title": "Checkbox",
"registryDependencies": ["checkbox", "field", "table", "example"],
"registryDependencies": [
"checkbox",
"field",
"table",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/checkbox-example.tsx",
@@ -829,7 +927,11 @@
{
"name": "command-example",
"title": "Command",
"registryDependencies": ["button", "command", "example"],
"registryDependencies": [
"button",
"command",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/command-example.tsx",
@@ -841,7 +943,12 @@
{
"name": "context-menu-example",
"title": "Context Menu",
"registryDependencies": ["button", "context-menu", "dialog", "example"],
"registryDependencies": [
"button",
"context-menu",
"dialog",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/context-menu-example.tsx",
@@ -880,7 +987,10 @@
{
"name": "drawer-example",
"title": "Drawer",
"registryDependencies": ["drawer", "example"],
"registryDependencies": [
"drawer",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/drawer-example.tsx",
@@ -953,7 +1063,12 @@
{
"name": "hover-card-example",
"title": "Hover Card",
"registryDependencies": ["button", "dialog", "hover-card", "example"],
"registryDependencies": [
"button",
"dialog",
"hover-card",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/hover-card-example.tsx",
@@ -1028,7 +1143,11 @@
{
"name": "item-example",
"title": "Item",
"registryDependencies": ["button", "item", "example"],
"registryDependencies": [
"button",
"item",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/item-example.tsx",
@@ -1077,7 +1196,12 @@
{
"name": "menubar-example",
"title": "Menubar",
"registryDependencies": ["button", "dialog", "menubar", "example"],
"registryDependencies": [
"button",
"dialog",
"menubar",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/menubar-example.tsx",
@@ -1089,7 +1213,11 @@
{
"name": "native-select-example",
"title": "Native Select",
"registryDependencies": ["field", "native-select", "example"],
"registryDependencies": [
"field",
"native-select",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/native-select-example.tsx",
@@ -1118,7 +1246,12 @@
{
"name": "pagination-example",
"title": "Pagination",
"registryDependencies": ["field", "pagination", "select", "example"],
"registryDependencies": [
"field",
"pagination",
"select",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/pagination-example.tsx",
@@ -1167,7 +1300,11 @@
{
"name": "radio-group-example",
"title": "Radio Group",
"registryDependencies": ["field", "radio-group", "example"],
"registryDependencies": [
"field",
"radio-group",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/radio-group-example.tsx",
@@ -1179,7 +1316,10 @@
{
"name": "resizable-example",
"title": "Resizable",
"registryDependencies": ["resizable", "example"],
"registryDependencies": [
"resizable",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/resizable-example.tsx",
@@ -1191,7 +1331,11 @@
{
"name": "scroll-area-example",
"title": "Scroll Area",
"registryDependencies": ["scroll-area", "separator", "example"],
"registryDependencies": [
"scroll-area",
"separator",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/scroll-area-example.tsx",
@@ -1224,7 +1368,10 @@
{
"name": "separator-example",
"title": "Separator",
"registryDependencies": ["separator", "example"],
"registryDependencies": [
"separator",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/separator-example.tsx",
@@ -1236,7 +1383,13 @@
{
"name": "sheet-example",
"title": "Sheet",
"registryDependencies": ["button", "field", "input", "sheet", "example"],
"registryDependencies": [
"button",
"field",
"input",
"sheet",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/sheet-example.tsx",
@@ -1287,7 +1440,11 @@
{
"name": "sidebar-inset-example",
"title": "Sidebar (Inset)",
"registryDependencies": ["collapsible", "sidebar", "example"],
"registryDependencies": [
"collapsible",
"sidebar",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/sidebar-inset-example.tsx",
@@ -1319,7 +1476,10 @@
{
"name": "skeleton-example",
"title": "Skeleton",
"registryDependencies": ["skeleton", "example"],
"registryDependencies": [
"skeleton",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/skeleton-example.tsx",
@@ -1331,7 +1491,11 @@
{
"name": "slider-example",
"title": "Slider",
"registryDependencies": ["label", "slider", "example"],
"registryDependencies": [
"label",
"slider",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/slider-example.tsx",
@@ -1343,7 +1507,10 @@
{
"name": "sonner-example",
"title": "Sonner",
"registryDependencies": ["sonner", "example"],
"registryDependencies": [
"sonner",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/sonner-example.tsx",
@@ -1375,7 +1542,12 @@
{
"name": "switch-example",
"title": "Switch",
"registryDependencies": ["field", "label", "switch", "example"],
"registryDependencies": [
"field",
"label",
"switch",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/switch-example.tsx",
@@ -1406,7 +1578,12 @@
{
"name": "tabs-example",
"title": "Tabs",
"registryDependencies": ["button", "dropdown-menu", "tabs", "example"],
"registryDependencies": [
"button",
"dropdown-menu",
"tabs",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/tabs-example.tsx",
@@ -1418,7 +1595,11 @@
{
"name": "textarea-example",
"title": "Textarea",
"registryDependencies": ["field", "textarea", "example"],
"registryDependencies": [
"field",
"textarea",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/textarea-example.tsx",
@@ -1430,7 +1611,10 @@
{
"name": "toggle-example",
"title": "Toggle",
"registryDependencies": ["toggle", "example"],
"registryDependencies": [
"toggle",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/toggle-example.tsx",
@@ -1442,7 +1626,12 @@
{
"name": "toggle-group-example",
"title": "Toggle Group",
"registryDependencies": ["input", "select", "toggle-group", "example"],
"registryDependencies": [
"input",
"select",
"toggle-group",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/toggle-group-example.tsx",
@@ -1454,7 +1643,12 @@
{
"name": "tooltip-example",
"title": "Tooltip",
"registryDependencies": ["button", "kbd", "tooltip", "example"],
"registryDependencies": [
"button",
"kbd",
"tooltip",
"example"
],
"files": [
{
"path": "registry/radix-maia/examples/tooltip-example.tsx",
@@ -1489,7 +1683,10 @@
},
{
"name": "utils",
"dependencies": ["clsx", "tailwind-merge"],
"dependencies": [
"clsx",
"tailwind-merge"
],
"files": [
{
"path": "registry/radix-maia/lib/utils.ts",
@@ -1551,7 +1748,11 @@
{
"name": "elevenlabs",
"title": "Elevenlabs",
"registryDependencies": ["example", "button", "card"],
"registryDependencies": [
"example",
"button",
"card"
],
"files": [
{
"path": "registry/radix-maia/blocks/elevenlabs.tsx",
@@ -1662,15 +1863,17 @@
"type": "registry:hook"
},
{
"name": "font-geist-sans",
"title": "Geist Sans",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1682,7 +1885,9 @@
"provider": "google",
"import": "Inter",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1716,7 +1921,9 @@
"provider": "google",
"import": "Figtree",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1728,7 +1935,9 @@
"provider": "google",
"import": "Roboto",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1740,7 +1949,9 @@
"provider": "google",
"import": "Raleway",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1752,7 +1963,9 @@
"provider": "google",
"import": "DM_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1764,7 +1977,9 @@
"provider": "google",
"import": "Public_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1776,7 +1991,9 @@
"provider": "google",
"import": "Outfit",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1788,8 +2005,24 @@
"provider": "google",
"import": "JetBrains_Mono",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": [
"latin"
]
}
}

View File

@@ -24,7 +24,9 @@
},
{
"name": "alert-dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-mira/ui/alert-dialog.tsx",
@@ -85,7 +87,9 @@
},
{
"name": "button-group",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/radix-mira/ui/button-group.tsx",
@@ -96,8 +100,13 @@
},
{
"name": "calendar",
"dependencies": ["react-day-picker@latest", "date-fns"],
"registryDependencies": ["button"],
"dependencies": [
"react-day-picker@latest",
"date-fns"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-mira/ui/calendar.tsx",
@@ -118,8 +127,12 @@
},
{
"name": "carousel",
"dependencies": ["embla-carousel-react"],
"registryDependencies": ["button"],
"dependencies": [
"embla-carousel-react"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-mira/ui/carousel.tsx",
@@ -130,7 +143,9 @@
},
{
"name": "chart",
"dependencies": ["recharts@2.15.4"],
"dependencies": [
"recharts@2.15.4"
],
"files": [
{
"path": "registry/radix-mira/ui/chart.tsx",
@@ -161,8 +176,13 @@
},
{
"name": "combobox",
"dependencies": ["@base-ui/react"],
"registryDependencies": ["button", "input-group"],
"dependencies": [
"@base-ui/react"
],
"registryDependencies": [
"button",
"input-group"
],
"files": [
{
"path": "registry/radix-mira/ui/combobox.tsx",
@@ -173,8 +193,13 @@
},
{
"name": "command",
"dependencies": ["cmdk"],
"registryDependencies": ["dialog", "input-group"],
"dependencies": [
"cmdk"
],
"registryDependencies": [
"dialog",
"input-group"
],
"files": [
{
"path": "registry/radix-mira/ui/command.tsx",
@@ -195,7 +220,9 @@
},
{
"name": "dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-mira/ui/dialog.tsx",
@@ -206,7 +233,9 @@
},
{
"name": "drawer",
"dependencies": ["vaul"],
"dependencies": [
"vaul"
],
"files": [
{
"path": "registry/radix-mira/ui/drawer.tsx",
@@ -237,7 +266,10 @@
},
{
"name": "field",
"registryDependencies": ["label", "separator"],
"registryDependencies": [
"label",
"separator"
],
"files": [
{
"path": "registry/radix-mira/ui/field.tsx",
@@ -272,7 +304,11 @@
},
{
"name": "input-group",
"registryDependencies": ["button", "input", "textarea"],
"registryDependencies": [
"button",
"input",
"textarea"
],
"files": [
{
"path": "registry/radix-mira/ui/input-group.tsx",
@@ -283,7 +319,9 @@
},
{
"name": "input-otp",
"dependencies": ["input-otp"],
"dependencies": [
"input-otp"
],
"files": [
{
"path": "registry/radix-mira/ui/input-otp.tsx",
@@ -294,7 +332,9 @@
},
{
"name": "item",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/radix-mira/ui/item.tsx",
@@ -335,7 +375,9 @@
},
{
"name": "pagination",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-mira/ui/pagination.tsx",
@@ -376,7 +418,9 @@
},
{
"name": "resizable",
"dependencies": ["react-resizable-panels"],
"dependencies": [
"react-resizable-panels"
],
"files": [
{
"path": "registry/radix-mira/ui/resizable.tsx",
@@ -417,7 +461,9 @@
},
{
"name": "sheet",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-mira/ui/sheet.tsx",
@@ -467,7 +513,10 @@
},
{
"name": "sonner",
"dependencies": ["sonner", "next-themes"],
"dependencies": [
"sonner",
"next-themes"
],
"files": [
{
"path": "registry/radix-mira/ui/sonner.tsx",
@@ -538,7 +587,9 @@
},
{
"name": "toggle-group",
"registryDependencies": ["toggle"],
"registryDependencies": [
"toggle"
],
"files": [
{
"path": "registry/radix-mira/ui/toggle-group.tsx",
@@ -590,7 +641,12 @@
{
"name": "accordion-example",
"title": "Accordion",
"registryDependencies": ["accordion", "button", "card", "example"],
"registryDependencies": [
"accordion",
"button",
"card",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/accordion-example.tsx",
@@ -602,7 +658,12 @@
{
"name": "alert-example",
"title": "Alert",
"registryDependencies": ["alert", "badge", "button", "example"],
"registryDependencies": [
"alert",
"badge",
"button",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/alert-example.tsx",
@@ -614,7 +675,12 @@
{
"name": "alert-dialog-example",
"title": "Alert Dialog",
"registryDependencies": ["alert-dialog", "button", "dialog", "example"],
"registryDependencies": [
"alert-dialog",
"button",
"dialog",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/alert-dialog-example.tsx",
@@ -626,7 +692,10 @@
{
"name": "aspect-ratio-example",
"title": "Aspect Ratio",
"registryDependencies": ["aspect-ratio", "example"],
"registryDependencies": [
"aspect-ratio",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/aspect-ratio-example.tsx",
@@ -638,7 +707,12 @@
{
"name": "avatar-example",
"title": "Avatar",
"registryDependencies": ["avatar", "button", "empty", "example"],
"registryDependencies": [
"avatar",
"button",
"empty",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/avatar-example.tsx",
@@ -650,7 +724,11 @@
{
"name": "badge-example",
"title": "Badge",
"registryDependencies": ["badge", "spinner", "example"],
"registryDependencies": [
"badge",
"spinner",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/badge-example.tsx",
@@ -662,7 +740,11 @@
{
"name": "breadcrumb-example",
"title": "Breadcrumb",
"registryDependencies": ["breadcrumb", "dropdown-menu", "example"],
"registryDependencies": [
"breadcrumb",
"dropdown-menu",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/breadcrumb-example.tsx",
@@ -674,7 +756,10 @@
{
"name": "button-example",
"title": "Button",
"registryDependencies": ["button", "example"],
"registryDependencies": [
"button",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/button-example.tsx",
@@ -750,7 +835,11 @@
{
"name": "carousel-example",
"title": "Carousel",
"registryDependencies": ["card", "carousel", "example"],
"registryDependencies": [
"card",
"carousel",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/carousel-example.tsx",
@@ -762,7 +851,11 @@
{
"name": "chart-example",
"title": "Chart",
"registryDependencies": ["chart", "card", "example"],
"registryDependencies": [
"chart",
"card",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/chart-example.tsx",
@@ -774,7 +867,12 @@
{
"name": "checkbox-example",
"title": "Checkbox",
"registryDependencies": ["checkbox", "field", "table", "example"],
"registryDependencies": [
"checkbox",
"field",
"table",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/checkbox-example.tsx",
@@ -829,7 +927,11 @@
{
"name": "command-example",
"title": "Command",
"registryDependencies": ["button", "command", "example"],
"registryDependencies": [
"button",
"command",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/command-example.tsx",
@@ -841,7 +943,12 @@
{
"name": "context-menu-example",
"title": "Context Menu",
"registryDependencies": ["button", "context-menu", "dialog", "example"],
"registryDependencies": [
"button",
"context-menu",
"dialog",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/context-menu-example.tsx",
@@ -880,7 +987,10 @@
{
"name": "drawer-example",
"title": "Drawer",
"registryDependencies": ["drawer", "example"],
"registryDependencies": [
"drawer",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/drawer-example.tsx",
@@ -953,7 +1063,12 @@
{
"name": "hover-card-example",
"title": "Hover Card",
"registryDependencies": ["button", "dialog", "hover-card", "example"],
"registryDependencies": [
"button",
"dialog",
"hover-card",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/hover-card-example.tsx",
@@ -1028,7 +1143,11 @@
{
"name": "item-example",
"title": "Item",
"registryDependencies": ["button", "item", "example"],
"registryDependencies": [
"button",
"item",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/item-example.tsx",
@@ -1077,7 +1196,12 @@
{
"name": "menubar-example",
"title": "Menubar",
"registryDependencies": ["button", "dialog", "menubar", "example"],
"registryDependencies": [
"button",
"dialog",
"menubar",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/menubar-example.tsx",
@@ -1089,7 +1213,11 @@
{
"name": "native-select-example",
"title": "Native Select",
"registryDependencies": ["field", "native-select", "example"],
"registryDependencies": [
"field",
"native-select",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/native-select-example.tsx",
@@ -1118,7 +1246,12 @@
{
"name": "pagination-example",
"title": "Pagination",
"registryDependencies": ["field", "pagination", "select", "example"],
"registryDependencies": [
"field",
"pagination",
"select",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/pagination-example.tsx",
@@ -1167,7 +1300,11 @@
{
"name": "radio-group-example",
"title": "Radio Group",
"registryDependencies": ["field", "radio-group", "example"],
"registryDependencies": [
"field",
"radio-group",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/radio-group-example.tsx",
@@ -1179,7 +1316,10 @@
{
"name": "resizable-example",
"title": "Resizable",
"registryDependencies": ["resizable", "example"],
"registryDependencies": [
"resizable",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/resizable-example.tsx",
@@ -1191,7 +1331,11 @@
{
"name": "scroll-area-example",
"title": "Scroll Area",
"registryDependencies": ["scroll-area", "separator", "example"],
"registryDependencies": [
"scroll-area",
"separator",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/scroll-area-example.tsx",
@@ -1224,7 +1368,10 @@
{
"name": "separator-example",
"title": "Separator",
"registryDependencies": ["separator", "example"],
"registryDependencies": [
"separator",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/separator-example.tsx",
@@ -1236,7 +1383,13 @@
{
"name": "sheet-example",
"title": "Sheet",
"registryDependencies": ["button", "field", "input", "sheet", "example"],
"registryDependencies": [
"button",
"field",
"input",
"sheet",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/sheet-example.tsx",
@@ -1287,7 +1440,11 @@
{
"name": "sidebar-inset-example",
"title": "Sidebar (Inset)",
"registryDependencies": ["collapsible", "sidebar", "example"],
"registryDependencies": [
"collapsible",
"sidebar",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/sidebar-inset-example.tsx",
@@ -1319,7 +1476,10 @@
{
"name": "skeleton-example",
"title": "Skeleton",
"registryDependencies": ["skeleton", "example"],
"registryDependencies": [
"skeleton",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/skeleton-example.tsx",
@@ -1331,7 +1491,11 @@
{
"name": "slider-example",
"title": "Slider",
"registryDependencies": ["label", "slider", "example"],
"registryDependencies": [
"label",
"slider",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/slider-example.tsx",
@@ -1343,7 +1507,10 @@
{
"name": "sonner-example",
"title": "Sonner",
"registryDependencies": ["sonner", "example"],
"registryDependencies": [
"sonner",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/sonner-example.tsx",
@@ -1375,7 +1542,12 @@
{
"name": "switch-example",
"title": "Switch",
"registryDependencies": ["field", "label", "switch", "example"],
"registryDependencies": [
"field",
"label",
"switch",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/switch-example.tsx",
@@ -1406,7 +1578,12 @@
{
"name": "tabs-example",
"title": "Tabs",
"registryDependencies": ["button", "dropdown-menu", "tabs", "example"],
"registryDependencies": [
"button",
"dropdown-menu",
"tabs",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/tabs-example.tsx",
@@ -1418,7 +1595,11 @@
{
"name": "textarea-example",
"title": "Textarea",
"registryDependencies": ["field", "textarea", "example"],
"registryDependencies": [
"field",
"textarea",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/textarea-example.tsx",
@@ -1430,7 +1611,10 @@
{
"name": "toggle-example",
"title": "Toggle",
"registryDependencies": ["toggle", "example"],
"registryDependencies": [
"toggle",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/toggle-example.tsx",
@@ -1442,7 +1626,12 @@
{
"name": "toggle-group-example",
"title": "Toggle Group",
"registryDependencies": ["input", "select", "toggle-group", "example"],
"registryDependencies": [
"input",
"select",
"toggle-group",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/toggle-group-example.tsx",
@@ -1454,7 +1643,12 @@
{
"name": "tooltip-example",
"title": "Tooltip",
"registryDependencies": ["button", "kbd", "tooltip", "example"],
"registryDependencies": [
"button",
"kbd",
"tooltip",
"example"
],
"files": [
{
"path": "registry/radix-mira/examples/tooltip-example.tsx",
@@ -1489,7 +1683,10 @@
},
{
"name": "utils",
"dependencies": ["clsx", "tailwind-merge"],
"dependencies": [
"clsx",
"tailwind-merge"
],
"files": [
{
"path": "registry/radix-mira/lib/utils.ts",
@@ -1551,7 +1748,11 @@
{
"name": "elevenlabs",
"title": "Elevenlabs",
"registryDependencies": ["example", "button", "card"],
"registryDependencies": [
"example",
"button",
"card"
],
"files": [
{
"path": "registry/radix-mira/blocks/elevenlabs.tsx",
@@ -1662,15 +1863,17 @@
"type": "registry:hook"
},
{
"name": "font-geist-sans",
"title": "Geist Sans",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1682,7 +1885,9 @@
"provider": "google",
"import": "Inter",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1716,7 +1921,9 @@
"provider": "google",
"import": "Figtree",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1728,7 +1935,9 @@
"provider": "google",
"import": "Roboto",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1740,7 +1949,9 @@
"provider": "google",
"import": "Raleway",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1752,7 +1963,9 @@
"provider": "google",
"import": "DM_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1764,7 +1977,9 @@
"provider": "google",
"import": "Public_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1776,7 +1991,9 @@
"provider": "google",
"import": "Outfit",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1788,8 +2005,24 @@
"provider": "google",
"import": "JetBrains_Mono",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": [
"latin"
]
}
}

View File

@@ -24,7 +24,9 @@
},
{
"name": "alert-dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-nova/ui/alert-dialog.tsx",
@@ -85,7 +87,9 @@
},
{
"name": "button-group",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/radix-nova/ui/button-group.tsx",
@@ -96,8 +100,13 @@
},
{
"name": "calendar",
"dependencies": ["react-day-picker@latest", "date-fns"],
"registryDependencies": ["button"],
"dependencies": [
"react-day-picker@latest",
"date-fns"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-nova/ui/calendar.tsx",
@@ -118,8 +127,12 @@
},
{
"name": "carousel",
"dependencies": ["embla-carousel-react"],
"registryDependencies": ["button"],
"dependencies": [
"embla-carousel-react"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-nova/ui/carousel.tsx",
@@ -130,7 +143,9 @@
},
{
"name": "chart",
"dependencies": ["recharts@2.15.4"],
"dependencies": [
"recharts@2.15.4"
],
"files": [
{
"path": "registry/radix-nova/ui/chart.tsx",
@@ -161,8 +176,13 @@
},
{
"name": "combobox",
"dependencies": ["@base-ui/react"],
"registryDependencies": ["button", "input-group"],
"dependencies": [
"@base-ui/react"
],
"registryDependencies": [
"button",
"input-group"
],
"files": [
{
"path": "registry/radix-nova/ui/combobox.tsx",
@@ -173,8 +193,13 @@
},
{
"name": "command",
"dependencies": ["cmdk"],
"registryDependencies": ["dialog", "input-group"],
"dependencies": [
"cmdk"
],
"registryDependencies": [
"dialog",
"input-group"
],
"files": [
{
"path": "registry/radix-nova/ui/command.tsx",
@@ -195,7 +220,9 @@
},
{
"name": "dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-nova/ui/dialog.tsx",
@@ -206,7 +233,9 @@
},
{
"name": "drawer",
"dependencies": ["vaul"],
"dependencies": [
"vaul"
],
"files": [
{
"path": "registry/radix-nova/ui/drawer.tsx",
@@ -237,7 +266,10 @@
},
{
"name": "field",
"registryDependencies": ["label", "separator"],
"registryDependencies": [
"label",
"separator"
],
"files": [
{
"path": "registry/radix-nova/ui/field.tsx",
@@ -272,7 +304,11 @@
},
{
"name": "input-group",
"registryDependencies": ["button", "input", "textarea"],
"registryDependencies": [
"button",
"input",
"textarea"
],
"files": [
{
"path": "registry/radix-nova/ui/input-group.tsx",
@@ -283,7 +319,9 @@
},
{
"name": "input-otp",
"dependencies": ["input-otp"],
"dependencies": [
"input-otp"
],
"files": [
{
"path": "registry/radix-nova/ui/input-otp.tsx",
@@ -294,7 +332,9 @@
},
{
"name": "item",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/radix-nova/ui/item.tsx",
@@ -335,7 +375,9 @@
},
{
"name": "pagination",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-nova/ui/pagination.tsx",
@@ -376,7 +418,9 @@
},
{
"name": "resizable",
"dependencies": ["react-resizable-panels"],
"dependencies": [
"react-resizable-panels"
],
"files": [
{
"path": "registry/radix-nova/ui/resizable.tsx",
@@ -417,7 +461,9 @@
},
{
"name": "sheet",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-nova/ui/sheet.tsx",
@@ -467,7 +513,10 @@
},
{
"name": "sonner",
"dependencies": ["sonner", "next-themes"],
"dependencies": [
"sonner",
"next-themes"
],
"files": [
{
"path": "registry/radix-nova/ui/sonner.tsx",
@@ -538,7 +587,9 @@
},
{
"name": "toggle-group",
"registryDependencies": ["toggle"],
"registryDependencies": [
"toggle"
],
"files": [
{
"path": "registry/radix-nova/ui/toggle-group.tsx",
@@ -590,7 +641,12 @@
{
"name": "accordion-example",
"title": "Accordion",
"registryDependencies": ["accordion", "button", "card", "example"],
"registryDependencies": [
"accordion",
"button",
"card",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/accordion-example.tsx",
@@ -602,7 +658,12 @@
{
"name": "alert-example",
"title": "Alert",
"registryDependencies": ["alert", "badge", "button", "example"],
"registryDependencies": [
"alert",
"badge",
"button",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/alert-example.tsx",
@@ -614,7 +675,12 @@
{
"name": "alert-dialog-example",
"title": "Alert Dialog",
"registryDependencies": ["alert-dialog", "button", "dialog", "example"],
"registryDependencies": [
"alert-dialog",
"button",
"dialog",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/alert-dialog-example.tsx",
@@ -626,7 +692,10 @@
{
"name": "aspect-ratio-example",
"title": "Aspect Ratio",
"registryDependencies": ["aspect-ratio", "example"],
"registryDependencies": [
"aspect-ratio",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/aspect-ratio-example.tsx",
@@ -638,7 +707,12 @@
{
"name": "avatar-example",
"title": "Avatar",
"registryDependencies": ["avatar", "button", "empty", "example"],
"registryDependencies": [
"avatar",
"button",
"empty",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/avatar-example.tsx",
@@ -650,7 +724,11 @@
{
"name": "badge-example",
"title": "Badge",
"registryDependencies": ["badge", "spinner", "example"],
"registryDependencies": [
"badge",
"spinner",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/badge-example.tsx",
@@ -662,7 +740,11 @@
{
"name": "breadcrumb-example",
"title": "Breadcrumb",
"registryDependencies": ["breadcrumb", "dropdown-menu", "example"],
"registryDependencies": [
"breadcrumb",
"dropdown-menu",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/breadcrumb-example.tsx",
@@ -674,7 +756,10 @@
{
"name": "button-example",
"title": "Button",
"registryDependencies": ["button", "example"],
"registryDependencies": [
"button",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/button-example.tsx",
@@ -750,7 +835,11 @@
{
"name": "carousel-example",
"title": "Carousel",
"registryDependencies": ["card", "carousel", "example"],
"registryDependencies": [
"card",
"carousel",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/carousel-example.tsx",
@@ -762,7 +851,11 @@
{
"name": "chart-example",
"title": "Chart",
"registryDependencies": ["chart", "card", "example"],
"registryDependencies": [
"chart",
"card",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/chart-example.tsx",
@@ -774,7 +867,12 @@
{
"name": "checkbox-example",
"title": "Checkbox",
"registryDependencies": ["checkbox", "field", "table", "example"],
"registryDependencies": [
"checkbox",
"field",
"table",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/checkbox-example.tsx",
@@ -829,7 +927,11 @@
{
"name": "command-example",
"title": "Command",
"registryDependencies": ["button", "command", "example"],
"registryDependencies": [
"button",
"command",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/command-example.tsx",
@@ -841,7 +943,12 @@
{
"name": "context-menu-example",
"title": "Context Menu",
"registryDependencies": ["button", "context-menu", "dialog", "example"],
"registryDependencies": [
"button",
"context-menu",
"dialog",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/context-menu-example.tsx",
@@ -880,7 +987,10 @@
{
"name": "drawer-example",
"title": "Drawer",
"registryDependencies": ["drawer", "example"],
"registryDependencies": [
"drawer",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/drawer-example.tsx",
@@ -953,7 +1063,12 @@
{
"name": "hover-card-example",
"title": "Hover Card",
"registryDependencies": ["button", "dialog", "hover-card", "example"],
"registryDependencies": [
"button",
"dialog",
"hover-card",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/hover-card-example.tsx",
@@ -1028,7 +1143,11 @@
{
"name": "item-example",
"title": "Item",
"registryDependencies": ["button", "item", "example"],
"registryDependencies": [
"button",
"item",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/item-example.tsx",
@@ -1077,7 +1196,12 @@
{
"name": "menubar-example",
"title": "Menubar",
"registryDependencies": ["button", "dialog", "menubar", "example"],
"registryDependencies": [
"button",
"dialog",
"menubar",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/menubar-example.tsx",
@@ -1089,7 +1213,11 @@
{
"name": "native-select-example",
"title": "Native Select",
"registryDependencies": ["field", "native-select", "example"],
"registryDependencies": [
"field",
"native-select",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/native-select-example.tsx",
@@ -1118,7 +1246,12 @@
{
"name": "pagination-example",
"title": "Pagination",
"registryDependencies": ["field", "pagination", "select", "example"],
"registryDependencies": [
"field",
"pagination",
"select",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/pagination-example.tsx",
@@ -1167,7 +1300,11 @@
{
"name": "radio-group-example",
"title": "Radio Group",
"registryDependencies": ["field", "radio-group", "example"],
"registryDependencies": [
"field",
"radio-group",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/radio-group-example.tsx",
@@ -1179,7 +1316,10 @@
{
"name": "resizable-example",
"title": "Resizable",
"registryDependencies": ["resizable", "example"],
"registryDependencies": [
"resizable",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/resizable-example.tsx",
@@ -1191,7 +1331,11 @@
{
"name": "scroll-area-example",
"title": "Scroll Area",
"registryDependencies": ["scroll-area", "separator", "example"],
"registryDependencies": [
"scroll-area",
"separator",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/scroll-area-example.tsx",
@@ -1224,7 +1368,10 @@
{
"name": "separator-example",
"title": "Separator",
"registryDependencies": ["separator", "example"],
"registryDependencies": [
"separator",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/separator-example.tsx",
@@ -1236,7 +1383,13 @@
{
"name": "sheet-example",
"title": "Sheet",
"registryDependencies": ["button", "field", "input", "sheet", "example"],
"registryDependencies": [
"button",
"field",
"input",
"sheet",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/sheet-example.tsx",
@@ -1287,7 +1440,11 @@
{
"name": "sidebar-inset-example",
"title": "Sidebar (Inset)",
"registryDependencies": ["collapsible", "sidebar", "example"],
"registryDependencies": [
"collapsible",
"sidebar",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/sidebar-inset-example.tsx",
@@ -1319,7 +1476,10 @@
{
"name": "skeleton-example",
"title": "Skeleton",
"registryDependencies": ["skeleton", "example"],
"registryDependencies": [
"skeleton",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/skeleton-example.tsx",
@@ -1331,7 +1491,11 @@
{
"name": "slider-example",
"title": "Slider",
"registryDependencies": ["label", "slider", "example"],
"registryDependencies": [
"label",
"slider",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/slider-example.tsx",
@@ -1343,7 +1507,10 @@
{
"name": "sonner-example",
"title": "Sonner",
"registryDependencies": ["sonner", "example"],
"registryDependencies": [
"sonner",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/sonner-example.tsx",
@@ -1375,7 +1542,12 @@
{
"name": "switch-example",
"title": "Switch",
"registryDependencies": ["field", "label", "switch", "example"],
"registryDependencies": [
"field",
"label",
"switch",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/switch-example.tsx",
@@ -1406,7 +1578,12 @@
{
"name": "tabs-example",
"title": "Tabs",
"registryDependencies": ["button", "dropdown-menu", "tabs", "example"],
"registryDependencies": [
"button",
"dropdown-menu",
"tabs",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/tabs-example.tsx",
@@ -1418,7 +1595,11 @@
{
"name": "textarea-example",
"title": "Textarea",
"registryDependencies": ["field", "textarea", "example"],
"registryDependencies": [
"field",
"textarea",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/textarea-example.tsx",
@@ -1430,7 +1611,10 @@
{
"name": "toggle-example",
"title": "Toggle",
"registryDependencies": ["toggle", "example"],
"registryDependencies": [
"toggle",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/toggle-example.tsx",
@@ -1442,7 +1626,12 @@
{
"name": "toggle-group-example",
"title": "Toggle Group",
"registryDependencies": ["input", "select", "toggle-group", "example"],
"registryDependencies": [
"input",
"select",
"toggle-group",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/toggle-group-example.tsx",
@@ -1454,7 +1643,12 @@
{
"name": "tooltip-example",
"title": "Tooltip",
"registryDependencies": ["button", "kbd", "tooltip", "example"],
"registryDependencies": [
"button",
"kbd",
"tooltip",
"example"
],
"files": [
{
"path": "registry/radix-nova/examples/tooltip-example.tsx",
@@ -1489,7 +1683,10 @@
},
{
"name": "utils",
"dependencies": ["clsx", "tailwind-merge"],
"dependencies": [
"clsx",
"tailwind-merge"
],
"files": [
{
"path": "registry/radix-nova/lib/utils.ts",
@@ -1551,7 +1748,11 @@
{
"name": "elevenlabs",
"title": "Elevenlabs",
"registryDependencies": ["example", "button", "card"],
"registryDependencies": [
"example",
"button",
"card"
],
"files": [
{
"path": "registry/radix-nova/blocks/elevenlabs.tsx",
@@ -1662,15 +1863,17 @@
"type": "registry:hook"
},
{
"name": "font-geist-sans",
"title": "Geist Sans",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1682,7 +1885,9 @@
"provider": "google",
"import": "Inter",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1716,7 +1921,9 @@
"provider": "google",
"import": "Figtree",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1728,7 +1935,9 @@
"provider": "google",
"import": "Roboto",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1740,7 +1949,9 @@
"provider": "google",
"import": "Raleway",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1752,7 +1963,9 @@
"provider": "google",
"import": "DM_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1764,7 +1977,9 @@
"provider": "google",
"import": "Public_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1776,7 +1991,9 @@
"provider": "google",
"import": "Outfit",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1788,8 +2005,24 @@
"provider": "google",
"import": "JetBrains_Mono",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}

View File

@@ -0,0 +1,15 @@
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": [
"latin"
]
}
}

View File

@@ -24,7 +24,9 @@
},
{
"name": "alert-dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-vega/ui/alert-dialog.tsx",
@@ -85,7 +87,9 @@
},
{
"name": "button-group",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/radix-vega/ui/button-group.tsx",
@@ -96,8 +100,13 @@
},
{
"name": "calendar",
"dependencies": ["react-day-picker@latest", "date-fns"],
"registryDependencies": ["button"],
"dependencies": [
"react-day-picker@latest",
"date-fns"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-vega/ui/calendar.tsx",
@@ -118,8 +127,12 @@
},
{
"name": "carousel",
"dependencies": ["embla-carousel-react"],
"registryDependencies": ["button"],
"dependencies": [
"embla-carousel-react"
],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-vega/ui/carousel.tsx",
@@ -130,7 +143,9 @@
},
{
"name": "chart",
"dependencies": ["recharts@2.15.4"],
"dependencies": [
"recharts@2.15.4"
],
"files": [
{
"path": "registry/radix-vega/ui/chart.tsx",
@@ -161,8 +176,13 @@
},
{
"name": "combobox",
"dependencies": ["@base-ui/react"],
"registryDependencies": ["button", "input-group"],
"dependencies": [
"@base-ui/react"
],
"registryDependencies": [
"button",
"input-group"
],
"files": [
{
"path": "registry/radix-vega/ui/combobox.tsx",
@@ -173,8 +193,13 @@
},
{
"name": "command",
"dependencies": ["cmdk"],
"registryDependencies": ["dialog", "input-group"],
"dependencies": [
"cmdk"
],
"registryDependencies": [
"dialog",
"input-group"
],
"files": [
{
"path": "registry/radix-vega/ui/command.tsx",
@@ -195,7 +220,9 @@
},
{
"name": "dialog",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-vega/ui/dialog.tsx",
@@ -206,7 +233,9 @@
},
{
"name": "drawer",
"dependencies": ["vaul"],
"dependencies": [
"vaul"
],
"files": [
{
"path": "registry/radix-vega/ui/drawer.tsx",
@@ -237,7 +266,10 @@
},
{
"name": "field",
"registryDependencies": ["label", "separator"],
"registryDependencies": [
"label",
"separator"
],
"files": [
{
"path": "registry/radix-vega/ui/field.tsx",
@@ -272,7 +304,11 @@
},
{
"name": "input-group",
"registryDependencies": ["button", "input", "textarea"],
"registryDependencies": [
"button",
"input",
"textarea"
],
"files": [
{
"path": "registry/radix-vega/ui/input-group.tsx",
@@ -283,7 +319,9 @@
},
{
"name": "input-otp",
"dependencies": ["input-otp"],
"dependencies": [
"input-otp"
],
"files": [
{
"path": "registry/radix-vega/ui/input-otp.tsx",
@@ -294,7 +332,9 @@
},
{
"name": "item",
"registryDependencies": ["separator"],
"registryDependencies": [
"separator"
],
"files": [
{
"path": "registry/radix-vega/ui/item.tsx",
@@ -335,7 +375,9 @@
},
{
"name": "pagination",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-vega/ui/pagination.tsx",
@@ -376,7 +418,9 @@
},
{
"name": "resizable",
"dependencies": ["react-resizable-panels"],
"dependencies": [
"react-resizable-panels"
],
"files": [
{
"path": "registry/radix-vega/ui/resizable.tsx",
@@ -417,7 +461,9 @@
},
{
"name": "sheet",
"registryDependencies": ["button"],
"registryDependencies": [
"button"
],
"files": [
{
"path": "registry/radix-vega/ui/sheet.tsx",
@@ -467,7 +513,10 @@
},
{
"name": "sonner",
"dependencies": ["sonner", "next-themes"],
"dependencies": [
"sonner",
"next-themes"
],
"files": [
{
"path": "registry/radix-vega/ui/sonner.tsx",
@@ -538,7 +587,9 @@
},
{
"name": "toggle-group",
"registryDependencies": ["toggle"],
"registryDependencies": [
"toggle"
],
"files": [
{
"path": "registry/radix-vega/ui/toggle-group.tsx",
@@ -590,7 +641,12 @@
{
"name": "accordion-example",
"title": "Accordion",
"registryDependencies": ["accordion", "button", "card", "example"],
"registryDependencies": [
"accordion",
"button",
"card",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/accordion-example.tsx",
@@ -602,7 +658,12 @@
{
"name": "alert-example",
"title": "Alert",
"registryDependencies": ["alert", "badge", "button", "example"],
"registryDependencies": [
"alert",
"badge",
"button",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/alert-example.tsx",
@@ -614,7 +675,12 @@
{
"name": "alert-dialog-example",
"title": "Alert Dialog",
"registryDependencies": ["alert-dialog", "button", "dialog", "example"],
"registryDependencies": [
"alert-dialog",
"button",
"dialog",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/alert-dialog-example.tsx",
@@ -626,7 +692,10 @@
{
"name": "aspect-ratio-example",
"title": "Aspect Ratio",
"registryDependencies": ["aspect-ratio", "example"],
"registryDependencies": [
"aspect-ratio",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/aspect-ratio-example.tsx",
@@ -638,7 +707,12 @@
{
"name": "avatar-example",
"title": "Avatar",
"registryDependencies": ["avatar", "button", "empty", "example"],
"registryDependencies": [
"avatar",
"button",
"empty",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/avatar-example.tsx",
@@ -650,7 +724,11 @@
{
"name": "badge-example",
"title": "Badge",
"registryDependencies": ["badge", "spinner", "example"],
"registryDependencies": [
"badge",
"spinner",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/badge-example.tsx",
@@ -662,7 +740,11 @@
{
"name": "breadcrumb-example",
"title": "Breadcrumb",
"registryDependencies": ["breadcrumb", "dropdown-menu", "example"],
"registryDependencies": [
"breadcrumb",
"dropdown-menu",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/breadcrumb-example.tsx",
@@ -674,7 +756,10 @@
{
"name": "button-example",
"title": "Button",
"registryDependencies": ["button", "example"],
"registryDependencies": [
"button",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/button-example.tsx",
@@ -750,7 +835,11 @@
{
"name": "carousel-example",
"title": "Carousel",
"registryDependencies": ["card", "carousel", "example"],
"registryDependencies": [
"card",
"carousel",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/carousel-example.tsx",
@@ -762,7 +851,11 @@
{
"name": "chart-example",
"title": "Chart",
"registryDependencies": ["chart", "card", "example"],
"registryDependencies": [
"chart",
"card",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/chart-example.tsx",
@@ -774,7 +867,12 @@
{
"name": "checkbox-example",
"title": "Checkbox",
"registryDependencies": ["checkbox", "field", "table", "example"],
"registryDependencies": [
"checkbox",
"field",
"table",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/checkbox-example.tsx",
@@ -829,7 +927,11 @@
{
"name": "command-example",
"title": "Command",
"registryDependencies": ["button", "command", "example"],
"registryDependencies": [
"button",
"command",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/command-example.tsx",
@@ -841,7 +943,12 @@
{
"name": "context-menu-example",
"title": "Context Menu",
"registryDependencies": ["button", "context-menu", "dialog", "example"],
"registryDependencies": [
"button",
"context-menu",
"dialog",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/context-menu-example.tsx",
@@ -880,7 +987,10 @@
{
"name": "drawer-example",
"title": "Drawer",
"registryDependencies": ["drawer", "example"],
"registryDependencies": [
"drawer",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/drawer-example.tsx",
@@ -953,7 +1063,12 @@
{
"name": "hover-card-example",
"title": "Hover Card",
"registryDependencies": ["button", "dialog", "hover-card", "example"],
"registryDependencies": [
"button",
"dialog",
"hover-card",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/hover-card-example.tsx",
@@ -1028,7 +1143,11 @@
{
"name": "item-example",
"title": "Item",
"registryDependencies": ["button", "item", "example"],
"registryDependencies": [
"button",
"item",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/item-example.tsx",
@@ -1077,7 +1196,12 @@
{
"name": "menubar-example",
"title": "Menubar",
"registryDependencies": ["button", "dialog", "menubar", "example"],
"registryDependencies": [
"button",
"dialog",
"menubar",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/menubar-example.tsx",
@@ -1089,7 +1213,11 @@
{
"name": "native-select-example",
"title": "Native Select",
"registryDependencies": ["field", "native-select", "example"],
"registryDependencies": [
"field",
"native-select",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/native-select-example.tsx",
@@ -1118,7 +1246,12 @@
{
"name": "pagination-example",
"title": "Pagination",
"registryDependencies": ["field", "pagination", "select", "example"],
"registryDependencies": [
"field",
"pagination",
"select",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/pagination-example.tsx",
@@ -1167,7 +1300,11 @@
{
"name": "radio-group-example",
"title": "Radio Group",
"registryDependencies": ["field", "radio-group", "example"],
"registryDependencies": [
"field",
"radio-group",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/radio-group-example.tsx",
@@ -1179,7 +1316,10 @@
{
"name": "resizable-example",
"title": "Resizable",
"registryDependencies": ["resizable", "example"],
"registryDependencies": [
"resizable",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/resizable-example.tsx",
@@ -1191,7 +1331,11 @@
{
"name": "scroll-area-example",
"title": "Scroll Area",
"registryDependencies": ["scroll-area", "separator", "example"],
"registryDependencies": [
"scroll-area",
"separator",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/scroll-area-example.tsx",
@@ -1224,7 +1368,10 @@
{
"name": "separator-example",
"title": "Separator",
"registryDependencies": ["separator", "example"],
"registryDependencies": [
"separator",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/separator-example.tsx",
@@ -1236,7 +1383,13 @@
{
"name": "sheet-example",
"title": "Sheet",
"registryDependencies": ["button", "field", "input", "sheet", "example"],
"registryDependencies": [
"button",
"field",
"input",
"sheet",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/sheet-example.tsx",
@@ -1287,7 +1440,11 @@
{
"name": "sidebar-inset-example",
"title": "Sidebar (Inset)",
"registryDependencies": ["collapsible", "sidebar", "example"],
"registryDependencies": [
"collapsible",
"sidebar",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/sidebar-inset-example.tsx",
@@ -1319,7 +1476,10 @@
{
"name": "skeleton-example",
"title": "Skeleton",
"registryDependencies": ["skeleton", "example"],
"registryDependencies": [
"skeleton",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/skeleton-example.tsx",
@@ -1331,7 +1491,11 @@
{
"name": "slider-example",
"title": "Slider",
"registryDependencies": ["label", "slider", "example"],
"registryDependencies": [
"label",
"slider",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/slider-example.tsx",
@@ -1343,7 +1507,10 @@
{
"name": "sonner-example",
"title": "Sonner",
"registryDependencies": ["sonner", "example"],
"registryDependencies": [
"sonner",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/sonner-example.tsx",
@@ -1375,7 +1542,12 @@
{
"name": "switch-example",
"title": "Switch",
"registryDependencies": ["field", "label", "switch", "example"],
"registryDependencies": [
"field",
"label",
"switch",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/switch-example.tsx",
@@ -1406,7 +1578,12 @@
{
"name": "tabs-example",
"title": "Tabs",
"registryDependencies": ["button", "dropdown-menu", "tabs", "example"],
"registryDependencies": [
"button",
"dropdown-menu",
"tabs",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/tabs-example.tsx",
@@ -1418,7 +1595,11 @@
{
"name": "textarea-example",
"title": "Textarea",
"registryDependencies": ["field", "textarea", "example"],
"registryDependencies": [
"field",
"textarea",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/textarea-example.tsx",
@@ -1430,7 +1611,10 @@
{
"name": "toggle-example",
"title": "Toggle",
"registryDependencies": ["toggle", "example"],
"registryDependencies": [
"toggle",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/toggle-example.tsx",
@@ -1442,7 +1626,12 @@
{
"name": "toggle-group-example",
"title": "Toggle Group",
"registryDependencies": ["input", "select", "toggle-group", "example"],
"registryDependencies": [
"input",
"select",
"toggle-group",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/toggle-group-example.tsx",
@@ -1454,7 +1643,12 @@
{
"name": "tooltip-example",
"title": "Tooltip",
"registryDependencies": ["button", "kbd", "tooltip", "example"],
"registryDependencies": [
"button",
"kbd",
"tooltip",
"example"
],
"files": [
{
"path": "registry/radix-vega/examples/tooltip-example.tsx",
@@ -1489,7 +1683,10 @@
},
{
"name": "utils",
"dependencies": ["clsx", "tailwind-merge"],
"dependencies": [
"clsx",
"tailwind-merge"
],
"files": [
{
"path": "registry/radix-vega/lib/utils.ts",
@@ -1551,7 +1748,11 @@
{
"name": "elevenlabs",
"title": "Elevenlabs",
"registryDependencies": ["example", "button", "card"],
"registryDependencies": [
"example",
"button",
"card"
],
"files": [
{
"path": "registry/radix-vega/blocks/elevenlabs.tsx",
@@ -1662,15 +1863,17 @@
"type": "registry:hook"
},
{
"name": "font-geist-sans",
"title": "Geist Sans",
"name": "font-geist",
"title": "Geist",
"type": "registry:font",
"font": {
"family": "'Geist Variable', sans-serif",
"provider": "google",
"import": "Geist",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1682,7 +1885,9 @@
"provider": "google",
"import": "Inter",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1716,7 +1921,9 @@
"provider": "google",
"import": "Figtree",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1728,7 +1935,9 @@
"provider": "google",
"import": "Roboto",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1740,7 +1949,9 @@
"provider": "google",
"import": "Raleway",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1752,7 +1963,9 @@
"provider": "google",
"import": "DM_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1764,7 +1977,9 @@
"provider": "google",
"import": "Public_Sans",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1776,7 +1991,9 @@
"provider": "google",
"import": "Outfit",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
@@ -1788,8 +2005,24 @@
"provider": "google",
"import": "JetBrains_Mono",
"variable": "--font-sans",
"subsets": ["latin"]
"subsets": [
"latin"
]
}
},
{
"name": "font-geist-mono",
"title": "Geist Mono",
"type": "registry:font",
"font": {
"family": "'Geist Mono Variable', monospace",
"provider": "google",
"import": "Geist_Mono",
"variable": "--font-mono",
"subsets": [
"latin"
]
}
}
]
}
}

View File

@@ -151,13 +151,13 @@ export const PRESETS: Preset[] = [
{
name: "radix-nova",
title: "Nova (Radix)",
description: "Nova / Hugeicons / Inter",
description: "Nova / Hugeicons / Geist",
base: "radix",
style: "nova",
baseColor: "neutral",
theme: "neutral",
iconLibrary: "hugeicons",
font: "inter",
font: "geist",
item: "Item",
rtl: false,
menuAccent: "subtle",
@@ -216,13 +216,13 @@ export const PRESETS: Preset[] = [
{
name: "base-nova",
title: "Nova (Base)",
description: "Nova / Hugeicons / Inter",
description: "Nova / Hugeicons / Geist",
base: "base",
style: "nova",
baseColor: "neutral",
theme: "neutral",
iconLibrary: "hugeicons",
font: "inter",
font: "geist",
item: "Item",
rtl: false,
menuAccent: "subtle",

View File

@@ -399,10 +399,10 @@
"logo": "<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' class='fill-none!' stroke-linejoin='round'><circle cx='12' cy='12' r='10'/></svg>"
},
{
"name": "@paceui",
"homepage": "https://ui.paceui.com",
"url": "https://ui.paceui.com/r/{name}.json",
"description": "Animated components and building blocks built for smooth interaction and rich detail. Copy, customise, and create without the extra setup.",
"name": "@pacekit",
"homepage": "https://ui.pacekit.dev",
"url": "https://ui.pacekit.dev/r/{name}.json",
"description": "Carefully built UI blocks for real apps and dashboards, designed to integrate smoothly from early ideas to production releases.",
"logo": "<svg xmlns='http://www.w3.org/2000/svg' width='512' height='512' fill='none' viewBox='0 0 512 512'><g clip-path='url(#clip0_832_289)'><path fill='var(--foregorund)' d='M256 0C51.2 0 0 51.2 0 256s51.2 256 256 256 256-51.2 256-256S460.8 0 256 0'/><path stroke='var(--background)' stroke-width='24' d='M381.631 89.102 156.848 226.934c-1.77 1.101-3.439 2.653-4.844 4.505s-2.5 3.94-3.177 6.062c-.673 2.062-.875 4.084-.584 5.83.288 1.658 1.077 2.946 2.257 3.686l98.286 32.478-122.2 137.576a7.9 7.9 0 0 0-1.306 2.72c-.234.895-.22 1.742.04 2.404q.369 1.032 1.341 1.214c.64.125 1.387-.039 2.127-.468l224.795-137.85c1.77-1.102 3.438-2.654 4.844-4.506 1.405-1.852 2.5-3.94 3.177-6.061.666-2.057.864-4.072.571-5.813-.282-1.663-1.066-2.957-2.245-3.704l-87.131-44.529L383.845 94.953a7.9 7.9 0 0 0 1.306-2.72c.233-.895.219-1.741-.04-2.404-.257-.632-.727-1.058-1.341-1.214-.641-.125-1.4.058-2.139.487Z'/></g></svg>"
},
{

View File

@@ -2,8 +2,8 @@ import { type RegistryItem } from "shadcn/schema"
export const fonts = [
{
name: "font-geist-sans",
title: "Geist Sans",
name: "font-geist",
title: "Geist",
type: "registry:font",
font: {
family: "'Geist Variable', sans-serif",
@@ -131,16 +131,16 @@ export const fonts = [
import: "JetBrains_Mono",
},
},
// {
// name: "font-geist-mono",
// title: "Geist Mono",
// type: "registry:font",
// font: {
// family: "'Geist Mono Variable', monospace",
// provider: "google",
// variable: "--font-sans",
// subsets: ["latin"],
// import: "Geist_Mono",
// },
// },
{
name: "font-geist-mono",
title: "Geist Mono",
type: "registry:font",
font: {
family: "'Geist Mono Variable', monospace",
provider: "google",
variable: "--font-mono",
subsets: ["latin"],
import: "Geist_Mono",
},
},
] satisfies RegistryItem[]

View File

@@ -1,7 +1,7 @@
"use client"
import * as React from "react"
import { type DropdownMenuCheckboxItemProps } from "@radix-ui/react-dropdown-menu"
import type { DropdownMenu as DropdownMenuPrimitive } from "radix-ui"
import { Button } from "@/registry/new-york-v4/ui/button"
import {
@@ -13,7 +13,9 @@ import {
DropdownMenuTrigger,
} from "@/registry/new-york-v4/ui/dropdown-menu"
type Checked = DropdownMenuCheckboxItemProps["checked"]
type Checked = React.ComponentProps<
typeof DropdownMenuPrimitive.CheckboxItem
>["checked"]
export default function DropdownMenuCheckboxes() {
const [showStatusBar, setShowStatusBar] = React.useState<Checked>(true)

View File

@@ -22,7 +22,7 @@ const DEPRECATED_ITEMS = [
// Shared between index and style for backward compatibility.
const NEW_YORK_V4_STYLE = {
type: "registry:style",
dependencies: ["class-variance-authority", "lucide-react"],
dependencies: ["class-variance-authority", "lucide-react", "radix-ui"],
devDependencies: ["tw-animate-css"],
registryDependencies: ["utils"],
cssVars: {},

View File

@@ -4,7 +4,7 @@ export const ui: Registry["items"] = [
{
name: "accordion",
type: "registry:ui",
dependencies: ["@radix-ui/react-accordion"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/accordion.tsx",
@@ -25,7 +25,7 @@ export const ui: Registry["items"] = [
{
name: "alert-dialog",
type: "registry:ui",
dependencies: ["@radix-ui/react-alert-dialog"],
dependencies: ["radix-ui"],
registryDependencies: ["button"],
files: [
{
@@ -37,7 +37,7 @@ export const ui: Registry["items"] = [
{
name: "aspect-ratio",
type: "registry:ui",
dependencies: ["@radix-ui/react-aspect-ratio"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/aspect-ratio.tsx",
@@ -48,7 +48,7 @@ export const ui: Registry["items"] = [
{
name: "avatar",
type: "registry:ui",
dependencies: ["@radix-ui/react-avatar"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/avatar.tsx",
@@ -59,7 +59,7 @@ export const ui: Registry["items"] = [
{
name: "badge",
type: "registry:ui",
dependencies: ["@radix-ui/react-slot"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/badge.tsx",
@@ -70,7 +70,7 @@ export const ui: Registry["items"] = [
{
name: "breadcrumb",
type: "registry:ui",
dependencies: ["@radix-ui/react-slot"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/breadcrumb.tsx",
@@ -81,7 +81,7 @@ export const ui: Registry["items"] = [
{
name: "button",
type: "registry:ui",
dependencies: ["@radix-ui/react-slot"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/button.tsx",
@@ -149,7 +149,7 @@ export const ui: Registry["items"] = [
{
name: "checkbox",
type: "registry:ui",
dependencies: ["@radix-ui/react-checkbox"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/checkbox.tsx",
@@ -160,7 +160,7 @@ export const ui: Registry["items"] = [
{
name: "collapsible",
type: "registry:ui",
dependencies: ["@radix-ui/react-collapsible"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/collapsible.tsx",
@@ -195,7 +195,7 @@ export const ui: Registry["items"] = [
{
name: "context-menu",
type: "registry:ui",
dependencies: ["@radix-ui/react-context-menu"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/context-menu.tsx",
@@ -206,7 +206,7 @@ export const ui: Registry["items"] = [
{
name: "dialog",
type: "registry:ui",
dependencies: ["@radix-ui/react-dialog"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/dialog.tsx",
@@ -217,7 +217,7 @@ export const ui: Registry["items"] = [
{
name: "drawer",
type: "registry:ui",
dependencies: ["vaul", "@radix-ui/react-dialog"],
dependencies: ["vaul"],
files: [
{
path: "ui/drawer.tsx",
@@ -228,7 +228,7 @@ export const ui: Registry["items"] = [
{
name: "dropdown-menu",
type: "registry:ui",
dependencies: ["@radix-ui/react-dropdown-menu"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/dropdown-menu.tsx",
@@ -260,13 +260,7 @@ export const ui: Registry["items"] = [
{
name: "form",
type: "registry:ui",
dependencies: [
"@radix-ui/react-label",
"@radix-ui/react-slot",
"@hookform/resolvers",
"zod",
"react-hook-form",
],
dependencies: ["radix-ui", "@hookform/resolvers", "zod", "react-hook-form"],
registryDependencies: ["button", "label"],
files: [
{
@@ -278,7 +272,7 @@ export const ui: Registry["items"] = [
{
name: "hover-card",
type: "registry:ui",
dependencies: ["@radix-ui/react-hover-card"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/hover-card.tsx",
@@ -321,6 +315,7 @@ export const ui: Registry["items"] = [
{
name: "item",
type: "registry:ui",
dependencies: ["radix-ui"],
registryDependencies: ["separator"],
files: [
{
@@ -332,7 +327,7 @@ export const ui: Registry["items"] = [
{
name: "label",
type: "registry:ui",
dependencies: ["@radix-ui/react-label"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/label.tsx",
@@ -343,7 +338,7 @@ export const ui: Registry["items"] = [
{
name: "menubar",
type: "registry:ui",
dependencies: ["@radix-ui/react-menubar"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/menubar.tsx",
@@ -354,7 +349,7 @@ export const ui: Registry["items"] = [
{
name: "navigation-menu",
type: "registry:ui",
dependencies: ["@radix-ui/react-navigation-menu"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/navigation-menu.tsx",
@@ -376,7 +371,7 @@ export const ui: Registry["items"] = [
{
name: "popover",
type: "registry:ui",
dependencies: ["@radix-ui/react-popover"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/popover.tsx",
@@ -387,7 +382,7 @@ export const ui: Registry["items"] = [
{
name: "progress",
type: "registry:ui",
dependencies: ["@radix-ui/react-progress"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/progress.tsx",
@@ -398,7 +393,7 @@ export const ui: Registry["items"] = [
{
name: "radio-group",
type: "registry:ui",
dependencies: ["@radix-ui/react-radio-group"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/radio-group.tsx",
@@ -409,7 +404,7 @@ export const ui: Registry["items"] = [
{
name: "resizable",
type: "registry:ui",
dependencies: ["react-resizable-panels"],
dependencies: ["react-resizable-panels@^3"],
files: [
{
path: "ui/resizable.tsx",
@@ -420,7 +415,7 @@ export const ui: Registry["items"] = [
{
name: "scroll-area",
type: "registry:ui",
dependencies: ["@radix-ui/react-scroll-area"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/scroll-area.tsx",
@@ -431,7 +426,7 @@ export const ui: Registry["items"] = [
{
name: "select",
type: "registry:ui",
dependencies: ["@radix-ui/react-select"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/select.tsx",
@@ -442,7 +437,7 @@ export const ui: Registry["items"] = [
{
name: "separator",
type: "registry:ui",
dependencies: ["@radix-ui/react-separator"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/separator.tsx",
@@ -453,7 +448,7 @@ export const ui: Registry["items"] = [
{
name: "sheet",
type: "registry:ui",
dependencies: ["@radix-ui/react-dialog"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/sheet.tsx",
@@ -464,11 +459,7 @@ export const ui: Registry["items"] = [
{
name: "sidebar",
type: "registry:ui",
dependencies: [
"@radix-ui/react-slot",
"class-variance-authority",
"lucide-react",
],
dependencies: ["radix-ui", "class-variance-authority", "lucide-react"],
registryDependencies: [
"button",
"separator",
@@ -540,7 +531,7 @@ export const ui: Registry["items"] = [
{
name: "slider",
type: "registry:ui",
dependencies: ["@radix-ui/react-slider"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/slider.tsx",
@@ -573,7 +564,7 @@ export const ui: Registry["items"] = [
{
name: "switch",
type: "registry:ui",
dependencies: ["@radix-ui/react-switch"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/switch.tsx",
@@ -594,7 +585,7 @@ export const ui: Registry["items"] = [
{
name: "tabs",
type: "registry:ui",
dependencies: ["@radix-ui/react-tabs"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/tabs.tsx",
@@ -615,7 +606,7 @@ export const ui: Registry["items"] = [
{
name: "toast",
type: "registry:ui",
dependencies: ["@radix-ui/react-toast"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/toast.tsx",
@@ -634,7 +625,7 @@ export const ui: Registry["items"] = [
{
name: "toggle",
type: "registry:ui",
dependencies: ["@radix-ui/react-toggle"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/toggle.tsx",
@@ -645,7 +636,7 @@ export const ui: Registry["items"] = [
{
name: "toggle-group",
type: "registry:ui",
dependencies: ["@radix-ui/react-toggle-group"],
dependencies: ["radix-ui"],
registryDependencies: ["toggle"],
files: [
{
@@ -657,7 +648,7 @@ export const ui: Registry["items"] = [
{
name: "tooltip",
type: "registry:ui",
dependencies: ["@radix-ui/react-tooltip"],
dependencies: ["radix-ui"],
files: [
{
path: "ui/tooltip.tsx",
@@ -688,7 +679,6 @@ export const ui: Registry["items"] = [
{
name: "direction",
type: "registry:ui",
dependencies: ["radix-ui"],
files: [
{
path: "ui/direction.tsx",

View File

@@ -1,8 +1,8 @@
"use client"
import * as React from "react"
import * as AccordionPrimitive from "@radix-ui/react-accordion"
import { ChevronDownIcon } from "lucide-react"
import { Accordion as AccordionPrimitive } from "radix-ui"
import { cn } from "@/lib/utils"

Some files were not shown because too many files have changed in this diff Show More