mirror of
https://github.com/prdlk/dotfiles.git
synced 2026-11-06 12:37:37 +00:00
- 16 cross-shell utilities converted to sh/bash chezmoi executables: ai c2p cp-appid extract_agents fab gdc gh-sonr-org-migrate ghg-clone ghn gho git-summary launch_omp_livediff_overlay lc-elir mdcp mdp pj (ghg-clone not named ghg: unrelated cargo binary owns that name) - cwd/history helpers stay per-shell: yy c cd clip-last + ghg/ghn/gho cd-wrappers in bash/functions/ and zsh/functions/, loaded by rc files - fish keeps only shell-state functions; converted ones now hit PATH - cp-appid ignore gating moved to .local/bin path - dot_agents/skills: 82 skills materialized from dotstate storage so dot_claude skill symlinks resolve on fresh bootstrap; dotstate profile/symlinks.json released .agents/skills .bashrc .zshrc
179 lines
4.2 KiB
Markdown
179 lines
4.2 KiB
Markdown
---
|
|
name: fumadocs-registry-integration
|
|
description: Register 8-bit components in registry.json for shadcn/ui add command. Apply when adding new components to the component library distribution.
|
|
---
|
|
|
|
## Registry Integration
|
|
|
|
Register 8-bit components in `registry.json` for discovery via `shadcn add @8bitcn/[component-name]`.
|
|
|
|
### Component Entry Pattern
|
|
|
|
```json
|
|
{
|
|
"name": "button",
|
|
"type": "registry:component",
|
|
"title": "8-bit Button",
|
|
"description": "A simple 8-bit button component",
|
|
"registryDependencies": ["button"],
|
|
"files": [
|
|
{
|
|
"path": "components/ui/8bit/button.tsx",
|
|
"type": "registry:component",
|
|
"target": "components/ui/8bit/button.tsx"
|
|
},
|
|
{
|
|
"path": "components/ui/8bit/styles/retro.css",
|
|
"type": "registry:component",
|
|
"target": "components/ui/8bit/styles/retro.css"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Block Entry Pattern
|
|
|
|
For pre-built layouts like game UIs:
|
|
|
|
```json
|
|
{
|
|
"name": "quest-log",
|
|
"type": "registry:block",
|
|
"title": "8-bit Quest Log",
|
|
"description": "An 8-bit quest and mission tracking system.",
|
|
"registryDependencies": ["card", "accordion"],
|
|
"categories": ["gaming"],
|
|
"files": [
|
|
{
|
|
"path": "components/ui/8bit/quest-log.tsx",
|
|
"type": "registry:block",
|
|
"target": "components/ui/8bit/quest-log.tsx"
|
|
},
|
|
{
|
|
"path": "components/ui/8bit/styles/retro.css",
|
|
"type": "registry:component",
|
|
"target": "components/ui/8bit/styles/retro.css"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Required retro.css
|
|
|
|
Always include `retro.css` in files array:
|
|
|
|
```json
|
|
"files": [
|
|
{
|
|
"path": "components/ui/8bit/new-component.tsx",
|
|
"type": "registry:component",
|
|
"target": "components/ui/8bit/new-component.tsx"
|
|
},
|
|
{
|
|
"path": "components/ui/8bit/styles/retro.css",
|
|
"type": "registry:component",
|
|
"target": "components/ui/8bit/styles/retro.css"
|
|
}
|
|
]
|
|
```
|
|
|
|
### Categories
|
|
|
|
Use gaming-specific categories for game components:
|
|
|
|
```json
|
|
"categories": ["gaming"]
|
|
```
|
|
|
|
Available categories: `gaming`, `layout`, `form`, `data-display`, `feedback`, `navigation`, `overlay`.
|
|
|
|
### Registry Dependencies
|
|
|
|
List base shadcn dependencies (not 8-bit versions):
|
|
|
|
```json
|
|
"registryDependencies": ["button", "dialog", "progress"]
|
|
```
|
|
|
|
For blocks with multiple components:
|
|
|
|
```json
|
|
"registryDependencies": ["card", "button", "progress", "tabs"]
|
|
```
|
|
|
|
### Type Selection
|
|
|
|
**registry:component** - Single reusable component:
|
|
|
|
```json
|
|
{
|
|
"type": "registry:component",
|
|
"files": [...]
|
|
}
|
|
```
|
|
|
|
**registry:block** - Pre-built layout or feature:
|
|
|
|
```json
|
|
{
|
|
"type": "registry:block",
|
|
"categories": ["gaming"],
|
|
"files": [...]
|
|
}
|
|
```
|
|
|
|
### Complete Example
|
|
|
|
```json
|
|
{
|
|
"name": "health-bar",
|
|
"type": "registry:component",
|
|
"title": "8-bit Health Bar",
|
|
"description": "An 8-bit health bar component for game UI.",
|
|
"registryDependencies": ["progress"],
|
|
"files": [
|
|
{
|
|
"path": "components/ui/8bit/health-bar.tsx",
|
|
"type": "registry:component",
|
|
"target": "components/ui/8bit/health-bar.tsx"
|
|
},
|
|
{
|
|
"path": "components/ui/8bit/progress.tsx",
|
|
"type": "registry:component",
|
|
"target": "components/ui/8bit/progress.tsx"
|
|
},
|
|
{
|
|
"path": "components/ui/8bit/styles/retro.css",
|
|
"type": "registry:component",
|
|
"target": "components/ui/8bit/styles/retro.css"
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Key Principles
|
|
|
|
1. **Type** - Use `registry:component` for single, `registry:block` for layouts
|
|
2. **retro.css required** - Always include in files array
|
|
3. **Target path** - Same path for source and target
|
|
4. **Categories** - Use `gaming` for retro-themed blocks
|
|
5. **Dependencies** - List base shadcn/ui components (not 8-bit)
|
|
6. **Description** - Clear, concise for CLI output
|
|
7. **Files order** - Component first, retro.css last
|
|
|
|
### Adding a New Component
|
|
|
|
1. Create component in `components/ui/8bit/component.tsx`
|
|
2. Create documentation in `content/docs/components/component.mdx`
|
|
3. Add entry to `registry.json`:
|
|
- Copy existing component as template
|
|
- Update name, title, description
|
|
- Set correct registryDependencies
|
|
- Include retro.css in files
|
|
4. Test: `pnpm dlx shadcn@latest add @8bitcn/component`
|
|
|
|
### Reference
|
|
|
|
- `registry.json` - Full component registry
|
|
- `content/docs/components/*.mdx` - Component documentation
|