# Registry

Learn how to use the angular-pdfcn registry with the shadcn CLI.

> For the complete documentation index, see [llms.txt](/llms.txt). Markdown variants are available by appending `.md` to any docs URL. An agent skill is available at [/.well-known/agent-skills/site-skill.md](/.well-known/agent-skills/site-skill.md).

The **angular-pdfcn** registry ships Takumi and Forme components, blocks, and themes in the [shadcn registry format](https://ui.shadcn.com/docs/registry). Register the namespace once in `components.json`, then pull items by name with the CLI.

## Setup

Add a **registries** entry for this site. Angular projects need the whole file, because `shadcn init` does not support Angular. See the [shadcn registry documentation](https://ui.shadcn.com/docs/registry) for all `components.json` fields and behaviors.

```json title="components.json"
{
  "$schema": "https://ui.shadcn.com/schema.json",
  "aliases": {
    "components": "@/components",
    "hooks": "@/hooks",
    "lib": "@/lib",
    "ui": "@/components/ui",
    "utils": "@/lib/utils"
  },
  "registries": {
    "@angular-pdfcn": "https://pdfcn-angular.com/r/{name}.json"
  },
  "rsc": false,
  "style": "new-york",
  "tailwind": {
    "baseColor": "neutral",
    "config": "",
    "css": "src/styles.css",
    "cssVariables": true
  },
  "tsx": true
}
```

Keep the `@angular-pdfcn` namespace. Registry items depend on each other through it, so the CLI resolves dependencies only when the namespace matches.

## Usage

Items are namespaced by base: `takumi/` for Takumi and `forme/` for Forme. Themes have no base prefix, because both bases share them.

Registry files follow these destinations:

- Components install into `components/pdf/`.
- Blocks install into `components/pdf/blocks/`.
- Themes install into `lib/pdf-themes/`, and shared helpers such as `lib/render.ts` and `lib/pdf-primitives.ts` into `lib/`.

Components declare their dependencies, so installing a component does not require additional setup.

### Takumi

Install a component:

```bash
npx shadcn@latest add @angular-pdfcn/takumi/text
```

Install a block:

```bash
npx shadcn@latest add @angular-pdfcn/takumi/invoice-minimal
```

### Forme

Install a component:

```bash
npx shadcn@latest add @angular-pdfcn/forme/text
```

Install a block:

```bash
npx shadcn@latest add @angular-pdfcn/forme/invoice-minimal
```