@tollerud/ui 4.0.1 → 4.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +44 -2
- package/GETTING_STARTED.md +1 -1
- package/README.md +10 -10
- package/SKILL.md +1 -1
- package/dist/utils.js +0 -1
- package/globals.css +1 -1
- package/package.json +5 -11
- package/{tollerud-preset.js → tollerud-preset.cjs} +1 -1
- package/components.json +0 -18
- package/registry.json +0 -941
package/AGENTS.md
CHANGED
|
@@ -44,7 +44,7 @@ npm install @tollerud/footer
|
|
|
44
44
|
|
|
45
45
|
Adjust `@source` relative to your CSS file. Without it, classes used only inside `@tollerud/ui` dist may be purged.
|
|
46
46
|
|
|
47
|
-
**Optional preset shim** — extra utilities from
|
|
47
|
+
**Optional preset shim** — extra utilities from `@tollerud/ui/preset`:
|
|
48
48
|
|
|
49
49
|
```ts
|
|
50
50
|
// tailwind.config.ts
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,48 @@
|
|
|
7
7
|
• Never write bold mid-paragraph as a heading substitute — it merges into surrounding text
|
|
8
8
|
-->
|
|
9
9
|
|
|
10
|
+
## 4.0.3 — 2026-06-09 — Publish pipeline hardening
|
|
11
|
+
|
|
12
|
+
Patch release: aligns npm publish with `validate`, fixes preset export shape, enables provenance via OIDC, and fixes `@tollerud/footer` CI build.
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- `prepublishOnly` and `publish-npm.yml` now run `verify:footer-sync` and `test:consumer` before publish
|
|
17
|
+
- `publish-npm.yml` auto-builds and publishes `@tollerud/footer` alongside `@tollerud/ui`
|
|
18
|
+
- `tollerud-preset.js` renamed to `tollerud-preset.cjs` — fixes publint CJS-in-ESM warning; import via `@tollerud/ui/preset`
|
|
19
|
+
- `@tollerud/ui/utils` subpath no longer ships `'use client'` — `cn` is safe to import from Server Components
|
|
20
|
+
- Removed `engines.node` from `package.json` (contributor Node/npm guidance stays in `CONTRIBUTING.md`)
|
|
21
|
+
- Publish uses npm Trusted Publishers (OIDC) with `--provenance` instead of `NPM_TOKEN`
|
|
22
|
+
- `@tollerud/footer` ships its own `tsup.config.ts` — stops inheriting root TS 6 `tsconfig.build.json` during DTS emit
|
|
23
|
+
|
|
24
|
+
### Docs
|
|
25
|
+
|
|
26
|
+
- `README.md`, `GETTING_STARTED.md`, `SKILL.md`, `AGENTS.md` — preset import path updated
|
|
27
|
+
- Added `NPM_PACKAGE_PLAN.md` — npm hardening audit and task list
|
|
28
|
+
|
|
29
|
+
### Migration
|
|
30
|
+
|
|
31
|
+
Nothing breaking. If you copied `tollerud-preset.js` locally, rename to `tollerud-preset.cjs` or switch to `import preset from '@tollerud/ui/preset'`.
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 4.0.2 — 2026-06-10 — Repo layout and publish surface cleanup
|
|
36
|
+
|
|
37
|
+
Patch release: consolidates docs and CI fixtures, stops shipping internal manifests, and clarifies docs copy after the npm-only pivot.
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
|
|
41
|
+
- Tarball smoke test moved to `fixtures/consumer/` (was `examples/consumer/`)
|
|
42
|
+
- Docs chrome consolidated under `docs-app/styles/docs.css` (removed top-level `docs/`)
|
|
43
|
+
- `registry.json` kept in the repo for `npm run test:drift` — no longer published in the npm tarball
|
|
44
|
+
- Docs copy: semantic tokens described without shadcn install-path framing
|
|
45
|
+
|
|
46
|
+
### Removed
|
|
47
|
+
|
|
48
|
+
- `components.json` — unused after copy-via-shadcn removal
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
10
52
|
## 4.0.1 — 2026-06-10 — npm-only install path
|
|
11
53
|
|
|
12
54
|
Patch release: drops copy-via-shadcn registry tooling. Install from the package — barrel or subpath imports.
|
|
@@ -62,9 +104,9 @@ Major release: completes the post-v3 roadmap (light gallery, registry CLI, foote
|
|
|
62
104
|
### Tooling
|
|
63
105
|
|
|
64
106
|
- CI and dev tooling on Node 24 + npm 11.16.0 (`.nvmrc`, lockfile guardrails)
|
|
65
|
-
- Dependabot for `docs-app/` and `examples/consumer/`
|
|
107
|
+
- Dependabot for `docs-app/` and `fixtures/consumer/` (moved from `examples/consumer/` in v4.0.2)
|
|
66
108
|
- Removed legacy `preview.html`, completed planning docs, and stale docs artifacts
|
|
67
|
-
- Consumer smoke test auto-syncs tarball version in `
|
|
109
|
+
- Consumer smoke test auto-syncs tarball version in `fixtures/consumer/package.json` (path at release: `examples/consumer/`)
|
|
68
110
|
|
|
69
111
|
### Migration
|
|
70
112
|
|
package/GETTING_STARTED.md
CHANGED
|
@@ -29,7 +29,7 @@ npm install @paper-design/shaders-react
|
|
|
29
29
|
|
|
30
30
|
`globals.css` bundles Tailwind v4, design tokens, and all component layer styles. Point `@source` at the package `dist` folder relative to your CSS file so component utility classes are not purged.
|
|
31
31
|
|
|
32
|
-
**Optional preset shim** — for extra theme tokens from `tollerud-preset.
|
|
32
|
+
**Optional preset shim** — for extra theme tokens from `@tollerud/ui/preset` (`tollerud-preset.cjs`):
|
|
33
33
|
|
|
34
34
|
```ts
|
|
35
35
|
// tailwind.config.ts
|
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ A complete, browsable UI library built around **monochrome + yellow accent**. No
|
|
|
21
21
|
|
|
22
22
|
> Clean lines. Sharp contrast. Yellow where it counts.
|
|
23
23
|
|
|
24
|
-
Tollerud
|
|
24
|
+
Tollerud UI is minimal but not cold. It uses a near-black foundation with warm yellow accents for interaction points. Every element has purpose — nothing decorative for its own sake. The cross-hatching spirit lives in the sharp borders, the thin lines, the deliberate whitespace.
|
|
25
25
|
|
|
26
26
|
## Quick Start
|
|
27
27
|
|
|
@@ -51,7 +51,7 @@ npm install @paper-design/shaders-react
|
|
|
51
51
|
|
|
52
52
|
Adjust the `@source` path relative to your CSS file so it resolves to `node_modules/@tollerud/ui/dist`.
|
|
53
53
|
|
|
54
|
-
**Optional preset shim** — if you need utilities from
|
|
54
|
+
**Optional preset shim** — if you need utilities from `@tollerud/ui/preset` beyond what `tokens.css` provides:
|
|
55
55
|
|
|
56
56
|
```ts
|
|
57
57
|
// tailwind.config.ts
|
|
@@ -97,13 +97,13 @@ import { Button, Card, Badge, StatusDot, CodeBlock, Kbd, CommandMenu, NoirGlowBa
|
|
|
97
97
|
|
|
98
98
|
TypeScript types are included — no `@types/*` package needed. See **[COMPONENTS.md](COMPONENTS.md)** for the full prop reference for every component.
|
|
99
99
|
|
|
100
|
-
Publish a new version by bumping `version` in `package.json` and pushing to `main` — the `publish-npm` GitHub Action detects the version change, runs `npm publish`
|
|
100
|
+
Publish a new version by bumping `version` in `package.json` and pushing to `main` — the `publish-npm` GitHub Action detects the version change, runs `npm publish --provenance` via npm Trusted Publishers (OIDC), and then creates a matching GitHub Release automatically.
|
|
101
101
|
|
|
102
102
|
### Copy from repo (alternative)
|
|
103
103
|
|
|
104
104
|
```bash
|
|
105
105
|
npm install clsx tailwind-merge
|
|
106
|
-
cp tollerud-preset.
|
|
106
|
+
cp tollerud-preset.cjs globals.css components/ -r <your-next-project>/
|
|
107
107
|
```
|
|
108
108
|
|
|
109
109
|
Then use local paths instead of `@tollerud/ui` in the snippets above.
|
|
@@ -224,7 +224,7 @@ See [GETTING_STARTED.md](GETTING_STARTED.md) for Tailwind setup and peer depende
|
|
|
224
224
|
design-system/
|
|
225
225
|
├── .nvmrc # Node 24 for local dev / CI parity
|
|
226
226
|
├── package.json # @tollerud/ui — version, exports, scripts
|
|
227
|
-
├── registry.json #
|
|
227
|
+
├── registry.json # Repo-only drift manifest (`test:drift`; not in npm tarball)
|
|
228
228
|
├── CHANGELOG.md # Version history (synced to docs on build)
|
|
229
229
|
├── SKILL.md # AI agent catalog — source of truth for exports
|
|
230
230
|
├── COMPONENTS.md # Human prop reference
|
|
@@ -235,14 +235,14 @@ design-system/
|
|
|
235
235
|
├── globals-v3.css # Tailwind v3 legacy
|
|
236
236
|
├── globals-layers.css # Shared component CSS layers
|
|
237
237
|
├── tokens.css # Design tokens
|
|
238
|
-
├── tollerud-preset.
|
|
238
|
+
├── tollerud-preset.cjs # Tailwind preset (CJS)
|
|
239
239
|
├── scripts/ # Build, validate, docs, and release helpers
|
|
240
|
-
├── docs-app/ # Next.js docs (static export → _site/)
|
|
241
|
-
│ ├── app/ # App Router
|
|
240
|
+
├── docs-app/ # Next.js docs site (static export → _site/)
|
|
241
|
+
│ ├── app/ # App Router + globals.css
|
|
242
242
|
│ ├── components/ # Page demos + docs shell
|
|
243
|
+
│ ├── styles/docs.css # Docs chrome + light theme
|
|
243
244
|
│ └── public/CNAME # design.tollerud.dev
|
|
244
|
-
|
|
245
|
-
└── docs/docs.css # Docs chrome (imported by docs-app)
|
|
245
|
+
└── fixtures/consumer/ # npm tarball install smoke test (CI)
|
|
246
246
|
```
|
|
247
247
|
|
|
248
248
|
## Graphify-inspired Components
|
package/SKILL.md
CHANGED
|
@@ -22,7 +22,7 @@ npm install @paper-design/shaders-react
|
|
|
22
22
|
|
|
23
23
|
As of **v4.0.1**, install is **npm-only** — `import { Button } from '@tollerud/ui'` or subpaths like `@tollerud/ui/button`. Copy-via-shadcn registry CLI is unsupported. As of **v4.0.0**, `@tollerud/ui/globals-v4.css` is removed — use `globals.css` only. Brand assets live at `@tollerud/ui/brand/*`. As of **v3.1.1**, `.tollerud-display-shimmer` ships in `globals.css` for animated hero accent text. As of **v3.1.0**, `Monogram` ships as an inline SVG component (`color`: `yellow` | `black` | `white`). As of **v3.0.0**, the package is **ESM-only** (no CJS `require` entry). As of **v2.0.0**, Radix, Lucide, Framer Motion, and Sonner are **required peers** (not bundled).
|
|
24
24
|
|
|
25
|
-
Apply the Tailwind preset when you need extra utilities from
|
|
25
|
+
Apply the Tailwind preset when you need extra utilities from `@tollerud/ui/preset` — `globals.css` already includes tokens and component layers for v4:
|
|
26
26
|
|
|
27
27
|
```css
|
|
28
28
|
/* app/globals.css — Tailwind v4 (default) */
|
package/dist/utils.js
CHANGED
package/globals.css
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
@import '@tollerud/ui/globals.css';
|
|
7
7
|
@source '../node_modules/@tollerud/ui/dist';
|
|
8
8
|
|
|
9
|
-
Optional preset shim (extra theme tokens from tollerud-preset.
|
|
9
|
+
Optional preset shim (extra theme tokens from tollerud-preset.cjs):
|
|
10
10
|
|
|
11
11
|
@import 'tailwindcss';
|
|
12
12
|
@config './tailwind.config.ts';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tollerud/ui",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.3",
|
|
4
4
|
"description": "Tollerud User Interface — dark, monochrome + yellow accent. Noir aesthetic meets modern utility.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -13,11 +13,8 @@
|
|
|
13
13
|
"url": "https://github.com/Tollerud/ui/issues"
|
|
14
14
|
},
|
|
15
15
|
"license": "MIT",
|
|
16
|
-
"author": "Mathias Tollerud <mathias
|
|
16
|
+
"author": "Mathias Tollerud <mathias@tollerud.no>",
|
|
17
17
|
"packageManager": "npm@11.16.0",
|
|
18
|
-
"engines": {
|
|
19
|
-
"node": ">=20"
|
|
20
|
-
},
|
|
21
18
|
"sideEffects": [
|
|
22
19
|
"*.css"
|
|
23
20
|
],
|
|
@@ -36,13 +33,12 @@
|
|
|
36
33
|
"./globals-layers.css": "./globals-layers.css",
|
|
37
34
|
"./tailwind.css": "./tailwind.css",
|
|
38
35
|
"./tokens.css": "./tokens.css",
|
|
39
|
-
"./preset": "./tollerud-preset.
|
|
36
|
+
"./preset": "./tollerud-preset.cjs",
|
|
40
37
|
"./brand/tollerud-logo.svg": "./brand/tollerud-logo.svg",
|
|
41
38
|
"./brand/tollerud-avatar.svg": "./brand/tollerud-avatar.svg",
|
|
42
39
|
"./brand/tollerud-avatar.png": "./brand/tollerud-avatar.png",
|
|
43
40
|
"./brand/tollerud-avatar-full.svg": "./brand/tollerud-avatar-full.svg",
|
|
44
41
|
"./brand/tollerud-avatar-full.png": "./brand/tollerud-avatar-full.png",
|
|
45
|
-
"./registry.json": "./registry.json",
|
|
46
42
|
"./*": {
|
|
47
43
|
"import": {
|
|
48
44
|
"types": "./dist/*.d.ts",
|
|
@@ -57,9 +53,7 @@
|
|
|
57
53
|
"globals-layers.css",
|
|
58
54
|
"tailwind.css",
|
|
59
55
|
"tokens.css",
|
|
60
|
-
"tollerud-preset.
|
|
61
|
-
"registry.json",
|
|
62
|
-
"components.json",
|
|
56
|
+
"tollerud-preset.cjs",
|
|
63
57
|
"GETTING_STARTED.md",
|
|
64
58
|
"COMPONENTS.md",
|
|
65
59
|
"CHANGELOG.md",
|
|
@@ -89,7 +83,7 @@
|
|
|
89
83
|
"docs:props": "node scripts/generate-props.mjs",
|
|
90
84
|
"test:props": "node scripts/verify-props-drift.mjs",
|
|
91
85
|
"validate": "npm run typecheck && npm run lint && npm run test && npm run build && npm run test:subpath && npm run test:drift && npm run test:package && npm run test:size && npm run test:props && npm run verify:footer-sync && npm run build:docs && npm run test:consumer",
|
|
92
|
-
"prepublishOnly": "npm run sync:registry && npm run typecheck && npm run lint && npm run test && npm run build && npm run test:subpath && npm run test:drift && npm run test:package && npm run test:size && npm run test:props",
|
|
86
|
+
"prepublishOnly": "npm run sync:registry && npm run typecheck && npm run lint && npm run test && npm run build && npm run test:subpath && npm run test:drift && npm run test:package && npm run test:size && npm run test:props && npm run verify:footer-sync && npm run test:consumer",
|
|
93
87
|
"build:docs": "node scripts/build-docs.mjs",
|
|
94
88
|
"preview:docs": "npx --yes serve _site -l 4173"
|
|
95
89
|
},
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Drop this into any Tailwind project:
|
|
5
5
|
*
|
|
6
6
|
* // tailwind.config.ts
|
|
7
|
-
* import tollerudPreset from '
|
|
7
|
+
* import tollerudPreset from '@tollerud/ui/preset'
|
|
8
8
|
* export default {
|
|
9
9
|
* presets: [tollerudPreset],
|
|
10
10
|
* content: ['your-source-files'],
|
package/components.json
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "https://ui.shadcn.com/schema.json",
|
|
3
|
-
"name": "Tollerud User Interface",
|
|
4
|
-
"style": "default",
|
|
5
|
-
"rsc": true,
|
|
6
|
-
"tsx": true,
|
|
7
|
-
"tailwind": {
|
|
8
|
-
"config": "tailwind.config.ts",
|
|
9
|
-
"css": "globals.css",
|
|
10
|
-
"baseColor": "stone",
|
|
11
|
-
"cssVariables": true,
|
|
12
|
-
"prefix": ""
|
|
13
|
-
},
|
|
14
|
-
"aliases": {
|
|
15
|
-
"components": "@/components/ui",
|
|
16
|
-
"utils": "@/lib/utils"
|
|
17
|
-
}
|
|
18
|
-
}
|
package/registry.json
DELETED
|
@@ -1,941 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "Tollerud User Interface",
|
|
3
|
-
"version": "4.0.1",
|
|
4
|
-
"description": "Dark, monochrome React components with a single yellow accent — built for dashboards, tools, and homelab UIs.",
|
|
5
|
-
"components": {
|
|
6
|
-
"button": {
|
|
7
|
-
"name": "Button",
|
|
8
|
-
"description": "Five variants and three sizes — primary, secondary, ghost, destructive, and terminal. Supports asChild, icons, and loading state",
|
|
9
|
-
"files": [
|
|
10
|
-
"components/Button.tsx"
|
|
11
|
-
],
|
|
12
|
-
"dependencies": [
|
|
13
|
-
"clsx",
|
|
14
|
-
"tailwind-merge",
|
|
15
|
-
"@radix-ui/react-slot"
|
|
16
|
-
],
|
|
17
|
-
"registryDependencies": [],
|
|
18
|
-
"type": "components:ui"
|
|
19
|
-
},
|
|
20
|
-
"card": {
|
|
21
|
-
"name": "Card",
|
|
22
|
-
"description": "Surface container with optional accent border",
|
|
23
|
-
"files": [
|
|
24
|
-
"components/Card.tsx"
|
|
25
|
-
],
|
|
26
|
-
"dependencies": [
|
|
27
|
-
"clsx",
|
|
28
|
-
"tailwind-merge"
|
|
29
|
-
],
|
|
30
|
-
"registryDependencies": [],
|
|
31
|
-
"type": "components:ui"
|
|
32
|
-
},
|
|
33
|
-
"badge": {
|
|
34
|
-
"name": "Badge",
|
|
35
|
-
"description": "Status/notification badge with variant colors",
|
|
36
|
-
"files": [
|
|
37
|
-
"components/Badge.tsx"
|
|
38
|
-
],
|
|
39
|
-
"dependencies": [
|
|
40
|
-
"clsx",
|
|
41
|
-
"tailwind-merge"
|
|
42
|
-
],
|
|
43
|
-
"registryDependencies": [],
|
|
44
|
-
"type": "components:ui"
|
|
45
|
-
},
|
|
46
|
-
"status-dot": {
|
|
47
|
-
"name": "StatusDot",
|
|
48
|
-
"description": "Online/offline/warning/idle signal indicator",
|
|
49
|
-
"files": [
|
|
50
|
-
"components/StatusDot.tsx"
|
|
51
|
-
],
|
|
52
|
-
"dependencies": [
|
|
53
|
-
"clsx",
|
|
54
|
-
"tailwind-merge",
|
|
55
|
-
"framer-motion"
|
|
56
|
-
],
|
|
57
|
-
"registryDependencies": [],
|
|
58
|
-
"type": "components:ui"
|
|
59
|
-
},
|
|
60
|
-
"input": {
|
|
61
|
-
"name": "Input",
|
|
62
|
-
"description": "Text input with error state support",
|
|
63
|
-
"files": [
|
|
64
|
-
"components/Input.tsx"
|
|
65
|
-
],
|
|
66
|
-
"dependencies": [
|
|
67
|
-
"clsx",
|
|
68
|
-
"tailwind-merge"
|
|
69
|
-
],
|
|
70
|
-
"registryDependencies": [],
|
|
71
|
-
"type": "components:ui"
|
|
72
|
-
},
|
|
73
|
-
"code-block": {
|
|
74
|
-
"name": "CodeBlock",
|
|
75
|
-
"description": "Terminal-style code display with copy action",
|
|
76
|
-
"files": [
|
|
77
|
-
"components/CodeBlock.tsx"
|
|
78
|
-
],
|
|
79
|
-
"dependencies": [
|
|
80
|
-
"clsx",
|
|
81
|
-
"tailwind-merge"
|
|
82
|
-
],
|
|
83
|
-
"registryDependencies": [],
|
|
84
|
-
"type": "components:ui"
|
|
85
|
-
},
|
|
86
|
-
"stat-card": {
|
|
87
|
-
"name": "StatCard",
|
|
88
|
-
"description": "Dashboard metric card with label, value, and change indicator",
|
|
89
|
-
"files": [
|
|
90
|
-
"components/StatCard.tsx"
|
|
91
|
-
],
|
|
92
|
-
"dependencies": [
|
|
93
|
-
"clsx",
|
|
94
|
-
"tailwind-merge"
|
|
95
|
-
],
|
|
96
|
-
"registryDependencies": [],
|
|
97
|
-
"type": "components:ui"
|
|
98
|
-
},
|
|
99
|
-
"container": {
|
|
100
|
-
"name": "Container",
|
|
101
|
-
"description": "Width-constrained content wrapper",
|
|
102
|
-
"files": [
|
|
103
|
-
"components/Container.tsx"
|
|
104
|
-
],
|
|
105
|
-
"dependencies": [
|
|
106
|
-
"clsx",
|
|
107
|
-
"tailwind-merge"
|
|
108
|
-
],
|
|
109
|
-
"registryDependencies": [],
|
|
110
|
-
"type": "components:ui"
|
|
111
|
-
},
|
|
112
|
-
"noir-glow-background": {
|
|
113
|
-
"name": "NoirGlowBackground",
|
|
114
|
-
"description": "Tollerud.no-inspired animated WebGL background with CSS fallback",
|
|
115
|
-
"files": [
|
|
116
|
-
"components/NoirGlowBackground.tsx"
|
|
117
|
-
],
|
|
118
|
-
"dependencies": [
|
|
119
|
-
"clsx",
|
|
120
|
-
"tailwind-merge",
|
|
121
|
-
"@paper-design/shaders-react"
|
|
122
|
-
],
|
|
123
|
-
"registryDependencies": [],
|
|
124
|
-
"type": "components:ui"
|
|
125
|
-
},
|
|
126
|
-
"kbd": {
|
|
127
|
-
"name": "Kbd",
|
|
128
|
-
"description": "Keyboard shortcut chip (Raycast-style)",
|
|
129
|
-
"files": [
|
|
130
|
-
"components/Kbd.tsx"
|
|
131
|
-
],
|
|
132
|
-
"dependencies": [
|
|
133
|
-
"clsx",
|
|
134
|
-
"tailwind-merge"
|
|
135
|
-
],
|
|
136
|
-
"registryDependencies": [],
|
|
137
|
-
"type": "components:ui"
|
|
138
|
-
},
|
|
139
|
-
"action-row": {
|
|
140
|
-
"name": "ActionRow",
|
|
141
|
-
"description": "Command/action item row with icon, label, description, and shortcut",
|
|
142
|
-
"files": [
|
|
143
|
-
"components/ActionRow.tsx"
|
|
144
|
-
],
|
|
145
|
-
"dependencies": [
|
|
146
|
-
"clsx",
|
|
147
|
-
"tailwind-merge"
|
|
148
|
-
],
|
|
149
|
-
"registryDependencies": [
|
|
150
|
-
"kbd"
|
|
151
|
-
],
|
|
152
|
-
"type": "components:ui"
|
|
153
|
-
},
|
|
154
|
-
"command-menu": {
|
|
155
|
-
"name": "CommandMenu",
|
|
156
|
-
"description": "Raycast-style global command palette with search, groups, and keyboard nav",
|
|
157
|
-
"files": [
|
|
158
|
-
"components/CommandMenu.tsx"
|
|
159
|
-
],
|
|
160
|
-
"dependencies": [
|
|
161
|
-
"clsx",
|
|
162
|
-
"tailwind-merge"
|
|
163
|
-
],
|
|
164
|
-
"registryDependencies": [
|
|
165
|
-
"action-row"
|
|
166
|
-
],
|
|
167
|
-
"type": "components:ui"
|
|
168
|
-
},
|
|
169
|
-
"service-health-card": {
|
|
170
|
-
"name": "ServiceHealthCard",
|
|
171
|
-
"description": "Service status card with uptime, response time, and version",
|
|
172
|
-
"files": [
|
|
173
|
-
"components/ServiceHealthCard.tsx"
|
|
174
|
-
],
|
|
175
|
-
"dependencies": [
|
|
176
|
-
"clsx",
|
|
177
|
-
"tailwind-merge"
|
|
178
|
-
],
|
|
179
|
-
"registryDependencies": [
|
|
180
|
-
"status-dot"
|
|
181
|
-
],
|
|
182
|
-
"type": "components:ui"
|
|
183
|
-
},
|
|
184
|
-
"host-card": {
|
|
185
|
-
"name": "HostCard",
|
|
186
|
-
"description": "Server/VM card with CPU, RAM, disk, containers, and IP",
|
|
187
|
-
"files": [
|
|
188
|
-
"components/HostCard.tsx"
|
|
189
|
-
],
|
|
190
|
-
"dependencies": [
|
|
191
|
-
"clsx",
|
|
192
|
-
"tailwind-merge"
|
|
193
|
-
],
|
|
194
|
-
"registryDependencies": [
|
|
195
|
-
"status-dot"
|
|
196
|
-
],
|
|
197
|
-
"type": "components:ui"
|
|
198
|
-
},
|
|
199
|
-
"docker-stack-card": {
|
|
200
|
-
"name": "DockerStackCard",
|
|
201
|
-
"description": "Docker Compose stack overview with per-service health",
|
|
202
|
-
"files": [
|
|
203
|
-
"components/DockerStackCard.tsx"
|
|
204
|
-
],
|
|
205
|
-
"dependencies": [
|
|
206
|
-
"clsx",
|
|
207
|
-
"tailwind-merge"
|
|
208
|
-
],
|
|
209
|
-
"registryDependencies": [
|
|
210
|
-
"status-dot"
|
|
211
|
-
],
|
|
212
|
-
"type": "components:ui"
|
|
213
|
-
},
|
|
214
|
-
"incident-card": {
|
|
215
|
-
"name": "IncidentCard",
|
|
216
|
-
"description": "Severity-graded incident/alert card (critical → info)",
|
|
217
|
-
"files": [
|
|
218
|
-
"components/IncidentCard.tsx"
|
|
219
|
-
],
|
|
220
|
-
"dependencies": [
|
|
221
|
-
"clsx",
|
|
222
|
-
"tailwind-merge"
|
|
223
|
-
],
|
|
224
|
-
"registryDependencies": [],
|
|
225
|
-
"type": "components:ui"
|
|
226
|
-
},
|
|
227
|
-
"approval-card": {
|
|
228
|
-
"name": "ApprovalCard",
|
|
229
|
-
"description": "Pending operation approval card with approve/reject actions",
|
|
230
|
-
"files": [
|
|
231
|
-
"components/ApprovalCard.tsx"
|
|
232
|
-
],
|
|
233
|
-
"dependencies": [
|
|
234
|
-
"clsx",
|
|
235
|
-
"tailwind-merge"
|
|
236
|
-
],
|
|
237
|
-
"registryDependencies": [],
|
|
238
|
-
"type": "components:ui"
|
|
239
|
-
},
|
|
240
|
-
"action-diff": {
|
|
241
|
-
"name": "ActionDiff",
|
|
242
|
-
"description": "Unified diff viewer with line numbers and context toggle",
|
|
243
|
-
"files": [
|
|
244
|
-
"components/ActionDiff.tsx"
|
|
245
|
-
],
|
|
246
|
-
"dependencies": [
|
|
247
|
-
"clsx",
|
|
248
|
-
"tailwind-merge"
|
|
249
|
-
],
|
|
250
|
-
"registryDependencies": [],
|
|
251
|
-
"type": "components:ui"
|
|
252
|
-
},
|
|
253
|
-
"rollback-plan": {
|
|
254
|
-
"name": "RollbackPlan",
|
|
255
|
-
"description": "Ordered rollback step list with execution status",
|
|
256
|
-
"files": [
|
|
257
|
-
"components/RollbackPlan.tsx"
|
|
258
|
-
],
|
|
259
|
-
"dependencies": [
|
|
260
|
-
"clsx",
|
|
261
|
-
"tailwind-merge"
|
|
262
|
-
],
|
|
263
|
-
"registryDependencies": [],
|
|
264
|
-
"type": "components:ui"
|
|
265
|
-
},
|
|
266
|
-
"log-viewer": {
|
|
267
|
-
"name": "LogViewer",
|
|
268
|
-
"description": "Terminal-style scrollable log viewer with search, live follow, and level coloring",
|
|
269
|
-
"files": [
|
|
270
|
-
"components/LogViewer.tsx"
|
|
271
|
-
],
|
|
272
|
-
"dependencies": [
|
|
273
|
-
"clsx",
|
|
274
|
-
"tailwind-merge"
|
|
275
|
-
],
|
|
276
|
-
"registryDependencies": [],
|
|
277
|
-
"type": "components:ui"
|
|
278
|
-
},
|
|
279
|
-
"alert-inbox": {
|
|
280
|
-
"name": "AlertInbox",
|
|
281
|
-
"description": "Alert feed with severity badges, filters, and acknowledge action",
|
|
282
|
-
"files": [
|
|
283
|
-
"components/AlertInbox.tsx"
|
|
284
|
-
],
|
|
285
|
-
"dependencies": [
|
|
286
|
-
"clsx",
|
|
287
|
-
"tailwind-merge"
|
|
288
|
-
],
|
|
289
|
-
"registryDependencies": [
|
|
290
|
-
"incident-card"
|
|
291
|
-
],
|
|
292
|
-
"type": "components:ui"
|
|
293
|
-
},
|
|
294
|
-
"timeline": {
|
|
295
|
-
"name": "Timeline",
|
|
296
|
-
"description": "Vertical activity timeline with status dots, connecting lines, and metadata",
|
|
297
|
-
"files": [
|
|
298
|
-
"components/Timeline.tsx"
|
|
299
|
-
],
|
|
300
|
-
"dependencies": [
|
|
301
|
-
"clsx",
|
|
302
|
-
"tailwind-merge"
|
|
303
|
-
],
|
|
304
|
-
"registryDependencies": [],
|
|
305
|
-
"type": "components:ui"
|
|
306
|
-
},
|
|
307
|
-
"backup-status-panel": {
|
|
308
|
-
"name": "BackupStatusPanel",
|
|
309
|
-
"description": "Backup job overview with per-job status, size, and schedule",
|
|
310
|
-
"files": [
|
|
311
|
-
"components/BackupStatusPanel.tsx"
|
|
312
|
-
],
|
|
313
|
-
"dependencies": [
|
|
314
|
-
"clsx",
|
|
315
|
-
"tailwind-merge"
|
|
316
|
-
],
|
|
317
|
-
"registryDependencies": [
|
|
318
|
-
"status-dot"
|
|
319
|
-
],
|
|
320
|
-
"type": "components:ui"
|
|
321
|
-
},
|
|
322
|
-
"textarea": {
|
|
323
|
-
"name": "Textarea",
|
|
324
|
-
"description": "Multiline text input with label and error state",
|
|
325
|
-
"files": [
|
|
326
|
-
"components/Textarea.tsx"
|
|
327
|
-
],
|
|
328
|
-
"dependencies": [
|
|
329
|
-
"clsx",
|
|
330
|
-
"tailwind-merge"
|
|
331
|
-
],
|
|
332
|
-
"registryDependencies": [],
|
|
333
|
-
"type": "components:ui"
|
|
334
|
-
},
|
|
335
|
-
"select": {
|
|
336
|
-
"name": "Select",
|
|
337
|
-
"description": "Styled native select dropdown with custom chevron",
|
|
338
|
-
"files": [
|
|
339
|
-
"components/Select.tsx"
|
|
340
|
-
],
|
|
341
|
-
"dependencies": [
|
|
342
|
-
"clsx",
|
|
343
|
-
"tailwind-merge"
|
|
344
|
-
],
|
|
345
|
-
"registryDependencies": [],
|
|
346
|
-
"type": "components:ui"
|
|
347
|
-
},
|
|
348
|
-
"checkbox": {
|
|
349
|
-
"name": "Checkbox",
|
|
350
|
-
"description": "Custom-styled checkbox with checkmark SVG and label",
|
|
351
|
-
"files": [
|
|
352
|
-
"components/Checkbox.tsx"
|
|
353
|
-
],
|
|
354
|
-
"dependencies": [
|
|
355
|
-
"clsx",
|
|
356
|
-
"tailwind-merge"
|
|
357
|
-
],
|
|
358
|
-
"registryDependencies": [],
|
|
359
|
-
"type": "components:ui"
|
|
360
|
-
},
|
|
361
|
-
"switch": {
|
|
362
|
-
"name": "Switch",
|
|
363
|
-
"description": "Toggle switch with role=switch accessibility",
|
|
364
|
-
"files": [
|
|
365
|
-
"components/Switch.tsx"
|
|
366
|
-
],
|
|
367
|
-
"dependencies": [
|
|
368
|
-
"clsx",
|
|
369
|
-
"tailwind-merge"
|
|
370
|
-
],
|
|
371
|
-
"registryDependencies": [],
|
|
372
|
-
"type": "components:ui"
|
|
373
|
-
},
|
|
374
|
-
"radio-group": {
|
|
375
|
-
"name": "RadioGroup",
|
|
376
|
-
"description": "Fieldset-based radio group with custom dot indicator",
|
|
377
|
-
"files": [
|
|
378
|
-
"components/RadioGroup.tsx"
|
|
379
|
-
],
|
|
380
|
-
"dependencies": [
|
|
381
|
-
"clsx",
|
|
382
|
-
"tailwind-merge"
|
|
383
|
-
],
|
|
384
|
-
"registryDependencies": [],
|
|
385
|
-
"type": "components:ui"
|
|
386
|
-
},
|
|
387
|
-
"footer": {
|
|
388
|
-
"name": "Footer",
|
|
389
|
-
"description": "Footer bar with Tollerud monogram and branding link",
|
|
390
|
-
"files": [
|
|
391
|
-
"components/Footer.tsx"
|
|
392
|
-
],
|
|
393
|
-
"dependencies": [
|
|
394
|
-
"clsx",
|
|
395
|
-
"tailwind-merge"
|
|
396
|
-
],
|
|
397
|
-
"registryDependencies": [
|
|
398
|
-
"monogram"
|
|
399
|
-
],
|
|
400
|
-
"type": "components:ui"
|
|
401
|
-
},
|
|
402
|
-
"monogram": {
|
|
403
|
-
"name": "Monogram",
|
|
404
|
-
"description": "Tollerud monogram SVG with yellow, black, or white fill",
|
|
405
|
-
"files": [
|
|
406
|
-
"components/Monogram.tsx",
|
|
407
|
-
"components/monogram-geometry.ts"
|
|
408
|
-
],
|
|
409
|
-
"dependencies": [
|
|
410
|
-
"clsx",
|
|
411
|
-
"tailwind-merge"
|
|
412
|
-
],
|
|
413
|
-
"registryDependencies": [],
|
|
414
|
-
"type": "components:ui"
|
|
415
|
-
},
|
|
416
|
-
"alert": {
|
|
417
|
-
"name": "Alert",
|
|
418
|
-
"description": "Inline alert banner with tone variants and optional icon",
|
|
419
|
-
"files": [
|
|
420
|
-
"components/Alert.tsx"
|
|
421
|
-
],
|
|
422
|
-
"dependencies": [
|
|
423
|
-
"clsx",
|
|
424
|
-
"tailwind-merge"
|
|
425
|
-
],
|
|
426
|
-
"registryDependencies": [],
|
|
427
|
-
"type": "components:ui"
|
|
428
|
-
},
|
|
429
|
-
"accordion": {
|
|
430
|
-
"name": "Accordion",
|
|
431
|
-
"description": "Collapsible accordion with single or multiple open items",
|
|
432
|
-
"files": [
|
|
433
|
-
"components/Accordion.tsx"
|
|
434
|
-
],
|
|
435
|
-
"dependencies": [
|
|
436
|
-
"clsx",
|
|
437
|
-
"tailwind-merge",
|
|
438
|
-
"lucide-react"
|
|
439
|
-
],
|
|
440
|
-
"registryDependencies": [],
|
|
441
|
-
"type": "components:ui"
|
|
442
|
-
},
|
|
443
|
-
"avatar": {
|
|
444
|
-
"name": "Avatar",
|
|
445
|
-
"description": "Avatar with image-to-initials fallback, plus AvatarGroup for stacked avatars",
|
|
446
|
-
"files": [
|
|
447
|
-
"components/Avatar.tsx"
|
|
448
|
-
],
|
|
449
|
-
"dependencies": [
|
|
450
|
-
"clsx",
|
|
451
|
-
"tailwind-merge"
|
|
452
|
-
],
|
|
453
|
-
"registryDependencies": [],
|
|
454
|
-
"type": "components:ui"
|
|
455
|
-
},
|
|
456
|
-
"bento-dashboard": {
|
|
457
|
-
"name": "BentoDashboard",
|
|
458
|
-
"description": "Homelab mission-control bento grid — host cards, metrics, services, and recent incidents",
|
|
459
|
-
"files": [
|
|
460
|
-
"components/BentoDashboard.tsx"
|
|
461
|
-
],
|
|
462
|
-
"dependencies": [
|
|
463
|
-
"clsx",
|
|
464
|
-
"tailwind-merge"
|
|
465
|
-
],
|
|
466
|
-
"registryDependencies": [
|
|
467
|
-
"host-card",
|
|
468
|
-
"stat-card",
|
|
469
|
-
"service-health-card",
|
|
470
|
-
"incident-card"
|
|
471
|
-
],
|
|
472
|
-
"type": "components:ui"
|
|
473
|
-
},
|
|
474
|
-
"breadcrumb": {
|
|
475
|
-
"name": "Breadcrumb",
|
|
476
|
-
"description": "Breadcrumb navigation trail with custom separators",
|
|
477
|
-
"files": [
|
|
478
|
-
"components/Breadcrumb.tsx"
|
|
479
|
-
],
|
|
480
|
-
"dependencies": [
|
|
481
|
-
"clsx",
|
|
482
|
-
"tailwind-merge",
|
|
483
|
-
"lucide-react"
|
|
484
|
-
],
|
|
485
|
-
"registryDependencies": [],
|
|
486
|
-
"type": "components:ui"
|
|
487
|
-
},
|
|
488
|
-
"combobox": {
|
|
489
|
-
"name": "Combobox",
|
|
490
|
-
"description": "Searchable single-select combobox with full keyboard navigation",
|
|
491
|
-
"files": [
|
|
492
|
-
"components/Combobox.tsx"
|
|
493
|
-
],
|
|
494
|
-
"dependencies": [
|
|
495
|
-
"clsx",
|
|
496
|
-
"tailwind-merge",
|
|
497
|
-
"lucide-react"
|
|
498
|
-
],
|
|
499
|
-
"registryDependencies": [],
|
|
500
|
-
"type": "components:ui"
|
|
501
|
-
},
|
|
502
|
-
"data-table": {
|
|
503
|
-
"name": "DataTable",
|
|
504
|
-
"description": "Data table with sort, column filters, search, segmented filter, selection, bulk actions, row menus, and pagination",
|
|
505
|
-
"files": [
|
|
506
|
-
"components/DataTable.tsx"
|
|
507
|
-
],
|
|
508
|
-
"dependencies": [
|
|
509
|
-
"clsx",
|
|
510
|
-
"tailwind-merge"
|
|
511
|
-
],
|
|
512
|
-
"registryDependencies": [],
|
|
513
|
-
"type": "components:ui"
|
|
514
|
-
},
|
|
515
|
-
"date-picker": {
|
|
516
|
-
"name": "DatePicker",
|
|
517
|
-
"description": "Calendar date picker with month navigation",
|
|
518
|
-
"files": [
|
|
519
|
-
"components/DatePicker.tsx"
|
|
520
|
-
],
|
|
521
|
-
"dependencies": [
|
|
522
|
-
"clsx",
|
|
523
|
-
"tailwind-merge",
|
|
524
|
-
"lucide-react"
|
|
525
|
-
],
|
|
526
|
-
"registryDependencies": [],
|
|
527
|
-
"type": "components:ui"
|
|
528
|
-
},
|
|
529
|
-
"dialog": {
|
|
530
|
-
"name": "Dialog",
|
|
531
|
-
"description": "Modal dialog built on Radix Dialog with overlay, header, and footer",
|
|
532
|
-
"files": [
|
|
533
|
-
"components/Dialog.tsx"
|
|
534
|
-
],
|
|
535
|
-
"dependencies": [
|
|
536
|
-
"clsx",
|
|
537
|
-
"tailwind-merge",
|
|
538
|
-
"@radix-ui/react-dialog",
|
|
539
|
-
"lucide-react"
|
|
540
|
-
],
|
|
541
|
-
"registryDependencies": [],
|
|
542
|
-
"type": "components:ui"
|
|
543
|
-
},
|
|
544
|
-
"divider": {
|
|
545
|
-
"name": "Divider",
|
|
546
|
-
"description": "Horizontal or vertical separator with an optional inline label",
|
|
547
|
-
"files": [
|
|
548
|
-
"components/Divider.tsx"
|
|
549
|
-
],
|
|
550
|
-
"dependencies": [
|
|
551
|
-
"clsx",
|
|
552
|
-
"tailwind-merge"
|
|
553
|
-
],
|
|
554
|
-
"registryDependencies": [],
|
|
555
|
-
"type": "components:ui"
|
|
556
|
-
},
|
|
557
|
-
"dropdown-menu": {
|
|
558
|
-
"name": "DropdownMenu",
|
|
559
|
-
"description": "Dropdown menu built on Radix Dropdown Menu",
|
|
560
|
-
"files": [
|
|
561
|
-
"components/DropdownMenu.tsx"
|
|
562
|
-
],
|
|
563
|
-
"dependencies": [
|
|
564
|
-
"clsx",
|
|
565
|
-
"tailwind-merge",
|
|
566
|
-
"@radix-ui/react-dropdown-menu"
|
|
567
|
-
],
|
|
568
|
-
"registryDependencies": [],
|
|
569
|
-
"type": "components:ui"
|
|
570
|
-
},
|
|
571
|
-
"empty": {
|
|
572
|
-
"name": "Empty",
|
|
573
|
-
"description": "Empty state block with icon, title, description, and action slots",
|
|
574
|
-
"files": [
|
|
575
|
-
"components/Empty.tsx"
|
|
576
|
-
],
|
|
577
|
-
"dependencies": [
|
|
578
|
-
"clsx",
|
|
579
|
-
"tailwind-merge"
|
|
580
|
-
],
|
|
581
|
-
"registryDependencies": [],
|
|
582
|
-
"type": "components:ui"
|
|
583
|
-
},
|
|
584
|
-
"file-upload": {
|
|
585
|
-
"name": "FileUpload",
|
|
586
|
-
"description": "Drag-and-drop file upload with selected-file list and removal",
|
|
587
|
-
"files": [
|
|
588
|
-
"components/FileUpload.tsx"
|
|
589
|
-
],
|
|
590
|
-
"dependencies": [
|
|
591
|
-
"clsx",
|
|
592
|
-
"tailwind-merge",
|
|
593
|
-
"lucide-react"
|
|
594
|
-
],
|
|
595
|
-
"registryDependencies": [],
|
|
596
|
-
"type": "components:ui"
|
|
597
|
-
},
|
|
598
|
-
"form-row": {
|
|
599
|
-
"name": "FormRow",
|
|
600
|
-
"description": "Form field wrapper with label, description, required mark, and error",
|
|
601
|
-
"files": [
|
|
602
|
-
"components/FormRow.tsx"
|
|
603
|
-
],
|
|
604
|
-
"dependencies": [
|
|
605
|
-
"clsx",
|
|
606
|
-
"tailwind-merge"
|
|
607
|
-
],
|
|
608
|
-
"registryDependencies": [],
|
|
609
|
-
"type": "components:ui"
|
|
610
|
-
},
|
|
611
|
-
"glow-card": {
|
|
612
|
-
"name": "GlowCard",
|
|
613
|
-
"description": "Card with an animated glow border effect",
|
|
614
|
-
"files": [
|
|
615
|
-
"components/GlowCard.tsx"
|
|
616
|
-
],
|
|
617
|
-
"dependencies": [
|
|
618
|
-
"clsx",
|
|
619
|
-
"tailwind-merge"
|
|
620
|
-
],
|
|
621
|
-
"registryDependencies": [],
|
|
622
|
-
"type": "components:ui"
|
|
623
|
-
},
|
|
624
|
-
"meter": {
|
|
625
|
-
"name": "Meter",
|
|
626
|
-
"description": "Labeled progress meter with tone variants",
|
|
627
|
-
"files": [
|
|
628
|
-
"components/Meter.tsx"
|
|
629
|
-
],
|
|
630
|
-
"dependencies": [
|
|
631
|
-
"clsx",
|
|
632
|
-
"tailwind-merge"
|
|
633
|
-
],
|
|
634
|
-
"registryDependencies": [],
|
|
635
|
-
"type": "components:ui"
|
|
636
|
-
},
|
|
637
|
-
"pagination": {
|
|
638
|
-
"name": "Pagination",
|
|
639
|
-
"description": "Page navigation with sibling pages and ellipsis collapsing",
|
|
640
|
-
"files": [
|
|
641
|
-
"components/Pagination.tsx"
|
|
642
|
-
],
|
|
643
|
-
"dependencies": [
|
|
644
|
-
"clsx",
|
|
645
|
-
"tailwind-merge",
|
|
646
|
-
"lucide-react"
|
|
647
|
-
],
|
|
648
|
-
"registryDependencies": [],
|
|
649
|
-
"type": "components:ui"
|
|
650
|
-
},
|
|
651
|
-
"panel": {
|
|
652
|
-
"name": "Panel",
|
|
653
|
-
"description": "Bordered content panel with header, description, and action slot",
|
|
654
|
-
"files": [
|
|
655
|
-
"components/Panel.tsx"
|
|
656
|
-
],
|
|
657
|
-
"dependencies": [
|
|
658
|
-
"clsx",
|
|
659
|
-
"tailwind-merge"
|
|
660
|
-
],
|
|
661
|
-
"registryDependencies": [],
|
|
662
|
-
"type": "components:ui"
|
|
663
|
-
},
|
|
664
|
-
"password-input": {
|
|
665
|
-
"name": "PasswordInput",
|
|
666
|
-
"description": "Password field with a show/hide visibility toggle",
|
|
667
|
-
"files": [
|
|
668
|
-
"components/PasswordInput.tsx"
|
|
669
|
-
],
|
|
670
|
-
"dependencies": [
|
|
671
|
-
"clsx",
|
|
672
|
-
"tailwind-merge",
|
|
673
|
-
"lucide-react"
|
|
674
|
-
],
|
|
675
|
-
"registryDependencies": [],
|
|
676
|
-
"type": "components:ui"
|
|
677
|
-
},
|
|
678
|
-
"pill": {
|
|
679
|
-
"name": "Pill",
|
|
680
|
-
"description": "Rounded pill badge with outline, solid, and accent variants",
|
|
681
|
-
"files": [
|
|
682
|
-
"components/Pill.tsx"
|
|
683
|
-
],
|
|
684
|
-
"dependencies": [
|
|
685
|
-
"clsx",
|
|
686
|
-
"tailwind-merge"
|
|
687
|
-
],
|
|
688
|
-
"registryDependencies": [],
|
|
689
|
-
"type": "components:ui"
|
|
690
|
-
},
|
|
691
|
-
"pricing-card": {
|
|
692
|
-
"name": "PricingCard",
|
|
693
|
-
"description": "Pricing plan card with feature list, badge, and call-to-action button",
|
|
694
|
-
"files": [
|
|
695
|
-
"components/PricingCard.tsx"
|
|
696
|
-
],
|
|
697
|
-
"dependencies": [
|
|
698
|
-
"clsx",
|
|
699
|
-
"tailwind-merge",
|
|
700
|
-
"lucide-react"
|
|
701
|
-
],
|
|
702
|
-
"registryDependencies": [
|
|
703
|
-
"button"
|
|
704
|
-
],
|
|
705
|
-
"type": "components:ui"
|
|
706
|
-
},
|
|
707
|
-
"progress": {
|
|
708
|
-
"name": "Progress",
|
|
709
|
-
"description": "Progress bar built on Radix Progress",
|
|
710
|
-
"files": [
|
|
711
|
-
"components/Progress.tsx"
|
|
712
|
-
],
|
|
713
|
-
"dependencies": [
|
|
714
|
-
"clsx",
|
|
715
|
-
"tailwind-merge",
|
|
716
|
-
"@radix-ui/react-progress"
|
|
717
|
-
],
|
|
718
|
-
"registryDependencies": [],
|
|
719
|
-
"type": "components:ui"
|
|
720
|
-
},
|
|
721
|
-
"segmented": {
|
|
722
|
-
"name": "Segmented",
|
|
723
|
-
"description": "Segmented control for switching between a small set of options",
|
|
724
|
-
"files": [
|
|
725
|
-
"components/Segmented.tsx"
|
|
726
|
-
],
|
|
727
|
-
"dependencies": [
|
|
728
|
-
"clsx",
|
|
729
|
-
"tailwind-merge"
|
|
730
|
-
],
|
|
731
|
-
"registryDependencies": [],
|
|
732
|
-
"type": "components:ui"
|
|
733
|
-
},
|
|
734
|
-
"sheet": {
|
|
735
|
-
"name": "Sheet",
|
|
736
|
-
"description": "Slide-out side panel built on Radix Dialog",
|
|
737
|
-
"files": [
|
|
738
|
-
"components/Sheet.tsx"
|
|
739
|
-
],
|
|
740
|
-
"dependencies": [
|
|
741
|
-
"clsx",
|
|
742
|
-
"tailwind-merge",
|
|
743
|
-
"@radix-ui/react-dialog"
|
|
744
|
-
],
|
|
745
|
-
"registryDependencies": [],
|
|
746
|
-
"type": "components:ui"
|
|
747
|
-
},
|
|
748
|
-
"skeleton": {
|
|
749
|
-
"name": "Skeleton",
|
|
750
|
-
"description": "Skeleton loading placeholder block",
|
|
751
|
-
"files": [
|
|
752
|
-
"components/Skeleton.tsx"
|
|
753
|
-
],
|
|
754
|
-
"dependencies": [
|
|
755
|
-
"clsx",
|
|
756
|
-
"tailwind-merge"
|
|
757
|
-
],
|
|
758
|
-
"registryDependencies": [],
|
|
759
|
-
"type": "components:ui"
|
|
760
|
-
},
|
|
761
|
-
"slider": {
|
|
762
|
-
"name": "Slider",
|
|
763
|
-
"description": "Range slider with optional label and live value display",
|
|
764
|
-
"files": [
|
|
765
|
-
"components/Slider.tsx"
|
|
766
|
-
],
|
|
767
|
-
"dependencies": [
|
|
768
|
-
"clsx",
|
|
769
|
-
"tailwind-merge"
|
|
770
|
-
],
|
|
771
|
-
"registryDependencies": [],
|
|
772
|
-
"type": "components:ui"
|
|
773
|
-
},
|
|
774
|
-
"stepper": {
|
|
775
|
-
"name": "Stepper",
|
|
776
|
-
"description": "Step progress indicator for multi-step flows, horizontal or vertical",
|
|
777
|
-
"files": [
|
|
778
|
-
"components/Stepper.tsx"
|
|
779
|
-
],
|
|
780
|
-
"dependencies": [
|
|
781
|
-
"clsx",
|
|
782
|
-
"tailwind-merge",
|
|
783
|
-
"lucide-react"
|
|
784
|
-
],
|
|
785
|
-
"registryDependencies": [],
|
|
786
|
-
"type": "components:ui"
|
|
787
|
-
},
|
|
788
|
-
"tabs": {
|
|
789
|
-
"name": "Tabs",
|
|
790
|
-
"description": "Tabs built on Radix Tabs",
|
|
791
|
-
"files": [
|
|
792
|
-
"components/Tabs.tsx"
|
|
793
|
-
],
|
|
794
|
-
"dependencies": [
|
|
795
|
-
"clsx",
|
|
796
|
-
"tailwind-merge",
|
|
797
|
-
"@radix-ui/react-tabs"
|
|
798
|
-
],
|
|
799
|
-
"registryDependencies": [],
|
|
800
|
-
"type": "components:ui"
|
|
801
|
-
},
|
|
802
|
-
"tag-input": {
|
|
803
|
-
"name": "TagInput",
|
|
804
|
-
"description": "Tag/chip input with keyboard add and remove",
|
|
805
|
-
"files": [
|
|
806
|
-
"components/TagInput.tsx"
|
|
807
|
-
],
|
|
808
|
-
"dependencies": [
|
|
809
|
-
"clsx",
|
|
810
|
-
"tailwind-merge",
|
|
811
|
-
"lucide-react"
|
|
812
|
-
],
|
|
813
|
-
"registryDependencies": [],
|
|
814
|
-
"type": "components:ui"
|
|
815
|
-
},
|
|
816
|
-
"toaster": {
|
|
817
|
-
"name": "Toaster",
|
|
818
|
-
"description": "Toast notification host built on Sonner",
|
|
819
|
-
"files": [
|
|
820
|
-
"components/Toaster.tsx"
|
|
821
|
-
],
|
|
822
|
-
"dependencies": [
|
|
823
|
-
"clsx",
|
|
824
|
-
"tailwind-merge",
|
|
825
|
-
"sonner"
|
|
826
|
-
],
|
|
827
|
-
"registryDependencies": [],
|
|
828
|
-
"type": "components:ui"
|
|
829
|
-
},
|
|
830
|
-
"tooltip": {
|
|
831
|
-
"name": "Tooltip",
|
|
832
|
-
"description": "Tooltip built on Radix Tooltip",
|
|
833
|
-
"files": [
|
|
834
|
-
"components/Tooltip.tsx"
|
|
835
|
-
],
|
|
836
|
-
"dependencies": [
|
|
837
|
-
"clsx",
|
|
838
|
-
"tailwind-merge",
|
|
839
|
-
"@radix-ui/react-tooltip"
|
|
840
|
-
],
|
|
841
|
-
"registryDependencies": [],
|
|
842
|
-
"type": "components:ui"
|
|
843
|
-
},
|
|
844
|
-
"bar-chart": {
|
|
845
|
-
"name": "BarChart",
|
|
846
|
-
"description": "Palette-aware vertical bar chart with optional yellow accent series",
|
|
847
|
-
"files": [
|
|
848
|
-
"components/BarChart.tsx"
|
|
849
|
-
],
|
|
850
|
-
"dependencies": [
|
|
851
|
-
"clsx",
|
|
852
|
-
"tailwind-merge"
|
|
853
|
-
],
|
|
854
|
-
"registryDependencies": [],
|
|
855
|
-
"type": "components:ui"
|
|
856
|
-
},
|
|
857
|
-
"area-chart": {
|
|
858
|
-
"name": "AreaChart",
|
|
859
|
-
"description": "Area/line chart with yellow gradient fill and grid lines",
|
|
860
|
-
"files": [
|
|
861
|
-
"components/AreaChart.tsx"
|
|
862
|
-
],
|
|
863
|
-
"dependencies": [
|
|
864
|
-
"clsx",
|
|
865
|
-
"tailwind-merge"
|
|
866
|
-
],
|
|
867
|
-
"registryDependencies": [],
|
|
868
|
-
"type": "components:ui"
|
|
869
|
-
},
|
|
870
|
-
"donut": {
|
|
871
|
-
"name": "Donut",
|
|
872
|
-
"description": "Donut chart with segment legend",
|
|
873
|
-
"files": [
|
|
874
|
-
"components/Donut.tsx"
|
|
875
|
-
],
|
|
876
|
-
"dependencies": [
|
|
877
|
-
"clsx",
|
|
878
|
-
"tailwind-merge"
|
|
879
|
-
],
|
|
880
|
-
"registryDependencies": [],
|
|
881
|
-
"type": "components:ui"
|
|
882
|
-
},
|
|
883
|
-
"sparkline": {
|
|
884
|
-
"name": "Sparkline",
|
|
885
|
-
"description": "Compact inline sparkline for stat cards and tables",
|
|
886
|
-
"files": [
|
|
887
|
-
"components/Sparkline.tsx"
|
|
888
|
-
],
|
|
889
|
-
"dependencies": [
|
|
890
|
-
"clsx",
|
|
891
|
-
"tailwind-merge"
|
|
892
|
-
],
|
|
893
|
-
"registryDependencies": [],
|
|
894
|
-
"type": "components:ui"
|
|
895
|
-
},
|
|
896
|
-
"hero-block": {
|
|
897
|
-
"name": "HeroBlock",
|
|
898
|
-
"description": "Landing hero with noir glow background. Pass intense for live WebGL shader; optional media slot for two-column layout",
|
|
899
|
-
"files": [
|
|
900
|
-
"components/HeroBlock.tsx"
|
|
901
|
-
],
|
|
902
|
-
"dependencies": [
|
|
903
|
-
"clsx",
|
|
904
|
-
"tailwind-merge"
|
|
905
|
-
],
|
|
906
|
-
"registryDependencies": [
|
|
907
|
-
"pill",
|
|
908
|
-
"noir-glow-background"
|
|
909
|
-
],
|
|
910
|
-
"type": "components:ui"
|
|
911
|
-
},
|
|
912
|
-
"feature-card": {
|
|
913
|
-
"name": "FeatureCard",
|
|
914
|
-
"description": "Marketing feature card with icon chip, title and description",
|
|
915
|
-
"files": [
|
|
916
|
-
"components/FeatureCard.tsx"
|
|
917
|
-
],
|
|
918
|
-
"dependencies": [
|
|
919
|
-
"clsx",
|
|
920
|
-
"tailwind-merge"
|
|
921
|
-
],
|
|
922
|
-
"registryDependencies": [
|
|
923
|
-
"card"
|
|
924
|
-
],
|
|
925
|
-
"type": "components:ui"
|
|
926
|
-
},
|
|
927
|
-
"cta-band": {
|
|
928
|
-
"name": "CTABand",
|
|
929
|
-
"description": "Centered closing call-to-action with title, description, action row, and optional yellow accent bar",
|
|
930
|
-
"files": [
|
|
931
|
-
"components/CTABand.tsx"
|
|
932
|
-
],
|
|
933
|
-
"dependencies": [
|
|
934
|
-
"clsx",
|
|
935
|
-
"tailwind-merge"
|
|
936
|
-
],
|
|
937
|
-
"registryDependencies": [],
|
|
938
|
-
"type": "components:ui"
|
|
939
|
-
}
|
|
940
|
-
}
|
|
941
|
-
}
|