Skip to content

Commit 28c4a7d

Browse files
committed
chore: initial commit
0 parents  commit 28c4a7d

203 files changed

Lines changed: 22046 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: ci
2+
on: push
3+
jobs:
4+
ci:
5+
runs-on: ${{ matrix.os }}
6+
strategy:
7+
matrix:
8+
os: [ubuntu-latest]
9+
node: [24]
10+
steps:
11+
- name: Checkout
12+
uses: actions/checkout@v6
13+
- name: Install pnpm
14+
uses: pnpm/action-setup@v4
15+
- name: Install node
16+
uses: actions/setup-node@v6
17+
with:
18+
node-version: ${{ matrix.node }}
19+
cache: pnpm
20+
- name: Install dependencies
21+
run: pnpm install
22+
- name: Lint
23+
run: pnpm run lint
24+
- name: Typecheck
25+
run: pnpm run typecheck

.gitignore

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Nuxt dev/build outputs
2+
.output
3+
.data
4+
.nuxt
5+
.nitro
6+
.cache
7+
dist
8+
9+
# Node dependencies
10+
node_modules
11+
12+
# Logs
13+
logs
14+
*.log
15+
16+
# Misc
17+
.DS_Store
18+
.fleet
19+
.idea
20+
21+
# Local env files
22+
.env
23+
.env.*
24+
!.env.example
25+
26+
.dmux/worktrees/task-response/.data
27+
.dmux/worktrees/task-request/.data
28+
.dmux/worktrees/task-15-3/.data
29+
.dmux/worktrees/task-15-5/.data
30+
.dmux/worktrees/task-17-1/.data
31+
.dmux/worktrees/task-17-3/.data

AGENTS.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# AGENTS.md
2+
3+
## Project overview
4+
5+
Nuxt 4 documentation site with a built-in shadcn-vue component registry for distributing custom blocks.
6+
7+
## Commands
8+
9+
- `pnpm dev` — dev server
10+
- `pnpm lint` — ESLint (`@nuxt/eslint`-based, stylistic enabled: double quotes, semi)
11+
- `pnpm lint:fix` — auto-fix
12+
- `pnpm typecheck``nuxt typecheck`
13+
- `pnpm registry:build` — generate registry JSON files into `public/r/`
14+
15+
CI order: **lint → typecheck** (no tests)
16+
17+
## Architecture
18+
19+
- **Nuxt 4 compat mode** (`future.compatibilityVersion: 4`) — app code lives under `app/`
20+
- `app/components/ui/` — shadcn-vue UI primitives (`shadcn-nuxt` module, no prefix)
21+
- `app/components/content/` — global MDC components (`pathPrefix: false`)
22+
- `app/components/_internal/`, `app/components/examples/` — excluded from Nuxt auto-imports
23+
- `app/registry/blocks/` — distributable components; each block = directory with `index.ts` + `.vue`
24+
- `content/docs/` — Markdown docs (`@nuxt/content` v3, D1 database)
25+
- `public/r/` — generated output from `registry:build` (should be gitignored)
26+
27+
## Registry build
28+
29+
`pnpm registry:build` runs `scripts/registry-build.ts`:
30+
1. `shadcn-vue-registry` generates registry.json from `app/registry/`
31+
2. `shadcn-vue build` outputs per-item JSON to `public/r/*.json`
32+
3. Intermediate file `app/registry/registry.json` is auto-deleted
33+
34+
Config: `registry.config.ts` and `components.json` `registries` field.
35+
36+
## Style conventions
37+
38+
- ESLint stylistic: **double quotes**, **semicolons**
39+
- Tailwind v4 via `@tailwindcss/vite` plugin — no `tailwind.config` file
40+
- shadcn-vue style: `new-york`, baseColor: `neutral`, CSS variables enabled
41+
- Icons: `lucide-vue-next`
42+
43+
## Content
44+
45+
- `content.config.ts` defines the docs collection with `category` field: `element | chat | overview`
46+
- `@nuxt/content` v3 with D1 database (`content.database.type: "d1"`)
47+
- Markdown highlight disabled; `nuxt-shiki` module handles syntax highlighting instead
48+
49+
## Infrastructure
50+
51+
- **NuxtHub** (`@nuxthub/core`) — Cloudflare D1/SQLite bindings
52+
- `hub.db: "sqlite"` — uses SQLite for local development

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Shadcn Nuxt UI Contributors
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Shadcn Nuxt UI
2+
3+
Open-source templates and reusable components for Nuxt with shadcn-vue.
4+
5+
This project aims to make shadcn-vue easier to use in Nuxt by providing:
6+
7+
- practical templates you can start from,
8+
- reusable components you can install independently,
9+
- documentation that connects both paths clearly.
10+
11+
## What this repository includes
12+
13+
- **Docs site** (Nuxt 4 + Nuxt Content)
14+
- **shadcn-vue registry output** under `public/r/*.json`
15+
- **Template and component documentation** under `content/docs`
16+
17+
## Use the registry
18+
19+
Install an item with the shadcn-vue CLI:
20+
21+
```bash
22+
npx shadcn-vue@latest add "https://shadcn-nuxt-ui.stackhacker.io/r/lucide-icon.json"
23+
```
24+
25+
## Local development
26+
27+
Install dependencies:
28+
29+
```bash
30+
pnpm install
31+
```
32+
33+
Start the docs site:
34+
35+
```bash
36+
pnpm dev
37+
```
38+
39+
## Quality checks
40+
41+
```bash
42+
pnpm lint
43+
pnpm typecheck
44+
```
45+
46+
## Build registry files
47+
48+
```bash
49+
pnpm registry:build
50+
```
51+
52+
This command generates distributable registry JSON files in `public/r/`.

app/app.vue

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<script lang="ts" setup>
2+
import { ConfigProvider, TooltipProvider } from "reka-ui";
3+
</script>
4+
5+
<template>
6+
<SiteBody>
7+
<ConfigProvider>
8+
<TooltipProvider>
9+
<NuxtLayout>
10+
<NuxtPage />
11+
</NuxtLayout>
12+
</TooltipProvider>
13+
</ConfigProvider>
14+
</SiteBody>
15+
</template>

0 commit comments

Comments
 (0)