@vadimcomanescu/nadicode-design-system 2.0.9 → 4.0.1
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/skills/seed/SKILL.md +24 -14
- package/.agents/skills/seed/contract.md +19 -6
- package/.agents/skills/seed/recipes/agency-home.md +5 -5
- package/.agents/skills/seed/recipes/auth.md +3 -3
- package/.agents/skills/seed/recipes/blog-content.md +2 -2
- package/.agents/skills/seed/recipes/company-about.md +3 -3
- package/.agents/skills/seed/recipes/company-contact.md +3 -3
- package/.agents/skills/seed/recipes/digital-workers.md +3 -3
- package/.agents/skills/seed/recipes/marketing-landing.md +8 -8
- package/.agents/skills/seed/recipes/marketing-shell.md +4 -4
- package/.agents/skills/seed/recipes/navigation-shell.md +3 -2
- package/.agents/skills/seed/recipes/pricing.md +4 -4
- package/.agents/skills/seed/recipes/service-detail.md +3 -3
- package/.agents/skills/seed/references/blocks.md +5 -5
- package/.agents/skills/seed/references/components.md +2 -2
- package/.agents/skills/seed/references/nextjs.md +2 -2
- package/README.md +3 -3
- package/contracts/consumer-intent-map.json +1 -2
- package/contracts/release-governance-baseline.json +3 -37
- package/dist/catalog/catalog.d.ts +2220 -0
- package/dist/catalog/catalog.js +1913 -0
- package/dist/catalog/components.d.ts +201 -0
- package/dist/catalog/components.js +407 -0
- package/dist/catalog/types.d.ts +4 -0
- package/dist/catalog/types.js +1 -0
- package/dist/chunk-224KPIOG.js +60 -0
- package/dist/chunk-25BOZMXA.js +169 -0
- package/dist/chunk-32OLQ7FC.js +130 -0
- package/dist/chunk-3JJBJ4VR.js +47 -0
- package/dist/chunk-3U56FXYC.js +30 -0
- package/dist/chunk-4MWKE6F5.js +86 -0
- package/dist/chunk-6HGSU24S.js +94 -0
- package/dist/chunk-7IADIXDV.js +168 -0
- package/dist/chunk-7NS3VFD7.js +86 -0
- package/dist/chunk-ALA6OM7K.js +134 -0
- package/dist/chunk-AN5TW4AL.js +50 -0
- package/dist/chunk-AWZFQQGN.js +167 -0
- package/dist/chunk-BRCBJ3S4.js +42 -0
- package/dist/chunk-BRICSLHJ.js +30 -0
- package/dist/chunk-BYEHHZZN.js +115 -0
- package/dist/chunk-C33GUEDY.js +149 -0
- package/dist/chunk-CUDMDYKE.js +150 -0
- package/dist/chunk-CVTMWSNS.js +145 -0
- package/dist/chunk-DEZXWNYF.js +165 -0
- package/dist/chunk-DNJEVMDY.js +40 -0
- package/dist/chunk-DNJOBML6.js +66 -0
- package/dist/chunk-FTGFOK6T.js +69 -0
- package/dist/{chunk-7A2RXKGH.js → chunk-GJ557DGH.js} +1 -1
- package/dist/chunk-HFBJ6L6O.js +104 -0
- package/dist/chunk-HPTHS7SX.js +52 -0
- package/dist/chunk-K4U67BVG.js +175 -0
- package/dist/chunk-KNR3WB5C.js +147 -0
- package/dist/chunk-KQ7ZC6EM.js +66 -0
- package/dist/chunk-LGW7FVG5.js +83 -0
- package/dist/chunk-LK2L3C7D.js +72 -0
- package/dist/chunk-LP6ZZYOQ.js +36 -0
- package/dist/chunk-LV4P7WVM.js +54 -0
- package/dist/chunk-MGSGCARB.js +164 -0
- package/dist/chunk-N3YFYMNZ.js +73 -0
- package/dist/{chunk-DSMGCFMJ.js → chunk-POFFOUQW.js} +2 -5
- package/dist/chunk-Q5IYBNA7.js +56 -0
- package/dist/chunk-QJCE7NZF.js +85 -0
- package/dist/chunk-QW5II6YK.js +96 -0
- package/dist/chunk-RMGDDOCD.js +138 -0
- package/dist/chunk-RNCX4JIE.js +70 -0
- package/dist/chunk-RWCL5OPX.js +112 -0
- package/dist/chunk-S5OY2B63.js +28 -0
- package/dist/chunk-SIQNG72C.js +257 -0
- package/dist/chunk-SP7NIZFP.js +117 -0
- package/dist/chunk-SWRJWMGG.js +30 -0
- package/dist/chunk-TCQIJ3DO.js +85 -0
- package/dist/chunk-TPJ6JJ2F.js +290 -0
- package/dist/chunk-UR43ANYS.js +159 -0
- package/dist/chunk-VRGPG2YN.js +79 -0
- package/dist/chunk-WSBLCWY7.js +126 -0
- package/dist/chunk-XKKFSFYO.js +93 -0
- package/dist/chunk-XO7TBM47.js +32 -0
- package/dist/chunk-YDYDGG5K.js +132 -0
- package/dist/chunk-YMJOUYMT.js +171 -0
- package/dist/chunk-Z2WION42.js +32 -0
- package/dist/chunk-ZFKSVEYW.js +35 -0
- package/dist/components/blocks/AgentProfileGridBlock.js +8 -86
- package/dist/components/blocks/AgentRunOverviewBlock.js +8 -147
- package/dist/components/blocks/AgentWorkbenchBlock.js +15 -257
- package/dist/components/blocks/AudioVisualizerBlock.js +2 -50
- package/dist/components/blocks/AuthLayout.js +9 -73
- package/dist/components/blocks/BannerBlock.js +8 -66
- package/dist/components/blocks/BarChartBlock.js +5 -47
- package/dist/components/blocks/ChartBlock.js +7 -54
- package/dist/components/blocks/ChartCollectionBlock.js +11 -171
- package/dist/components/blocks/ChatLayout.js +12 -126
- package/dist/components/blocks/CreateBlock.js +9 -104
- package/dist/components/blocks/DataGridBlock.js +9 -117
- package/dist/components/blocks/DirectoryBlock.js +12 -85
- package/dist/components/blocks/FeatureGridBlock.js +6 -56
- package/dist/components/blocks/GalleryBlock.js +6 -69
- package/dist/components/blocks/HeroBlock.js +2 -2
- package/dist/components/blocks/HeroSectionBlock.js +10 -134
- package/dist/components/blocks/IntegrationsBlock.js +13 -94
- package/dist/components/blocks/InteractiveAreaChartBlock.js +5 -290
- package/dist/components/blocks/KanbanDemoBlock.js +8 -145
- package/dist/components/blocks/LogoCloud.js +4 -35
- package/dist/components/blocks/NavUser.js +5 -85
- package/dist/components/blocks/NotFoundBlock.js +8 -32
- package/dist/components/blocks/OnboardingBlock.js +7 -66
- package/dist/components/blocks/SettingsLayout.js +13 -86
- package/dist/components/blocks/SignUpBlock.js +8 -168
- package/dist/components/blocks/SolutionShowcaseBlock.js +11 -112
- package/dist/components/blocks/StatsBlock.js +6 -60
- package/dist/components/blocks/UsageDonutBlock.js +5 -79
- package/dist/components/blocks/WizardBlock.js +12 -93
- package/dist/components/blocks/user/InviteUserModal.js +10 -132
- package/dist/components/page-kits/AccountLockedPageKit.js +3 -40
- package/dist/components/page-kits/AgentsChatPageKit.js +11 -159
- package/dist/components/page-kits/AnalyticsPageKit.js +12 -150
- package/dist/components/page-kits/BlogContentPageKit.js +12 -167
- package/dist/components/page-kits/CheckoutPageKit.js +9 -83
- package/dist/components/page-kits/CompanySuitePageKit.js +9 -96
- package/dist/components/page-kits/DashboardPageKit.js +11 -149
- package/dist/components/page-kits/ErrorPageKit.js +5 -52
- package/dist/components/page-kits/KanbanBoardPageKit.js +7 -169
- package/dist/components/page-kits/LandingPageKit.js +12 -73
- package/dist/components/page-kits/LoginPageKit.js +3 -32
- package/dist/components/page-kits/OnboardingPageKit.js +6 -115
- package/dist/components/page-kits/PricingPageKit.js +12 -138
- package/dist/components/page-kits/ProfileSettingsPageKit.js +10 -164
- package/dist/components/page-kits/RecoveryPageKit.js +3 -42
- package/dist/components/page-kits/ResetPageKit.js +3 -36
- package/dist/components/page-kits/ServiceSuitePageKit.js +11 -176
- package/dist/components/page-kits/SignupPageKit.js +3 -30
- package/dist/components/page-kits/SuccessPageKit.js +4 -30
- package/dist/components/page-kits/TeamSettingsPageKit.js +9 -165
- package/dist/components/page-kits/TwoFactorPageKit.js +4 -28
- package/dist/components/page-kits/VerifyEmailPageKit.js +4 -30
- package/dist/components/page-kits/VoiceAgentsPageKit.js +13 -130
- package/dist/components/ui/AvatarUpload.js +1 -1
- package/dist/components/ui/CheckoutForm.js +5 -70
- package/dist/components/ui/MouseEffect.js +1 -1
- package/eslint-rules/nadicode/config.js +2 -0
- package/eslint-rules/nadicode/data/catalog-names.json +93 -0
- package/eslint-rules/nadicode/index.js +4 -0
- package/eslint-rules/nadicode/rules/__tests__/require-catalog-component.test.js +77 -0
- package/eslint-rules/nadicode/rules/__tests__/require-catalog-import.test.js +111 -0
- package/eslint-rules/nadicode/rules/require-catalog-component.js +79 -0
- package/eslint-rules/nadicode/rules/require-catalog-import.js +59 -0
- package/package.json +15 -358
- package/contracts/block-props-schemas.json +0 -2186
- package/contracts/component-props-schemas.json +0 -8322
- package/contracts/consumer-contract.json +0 -178
- package/contracts/page-kit-props-schemas.json +0 -1894
- package/contracts/public-surface-registry.json +0 -5822
- package/contracts/public-surface-registry.schema.json +0 -219
- package/contracts/spec-manifest.json +0 -46
- package/dist/catalog.json +0 -5221
|
@@ -20,29 +20,40 @@ Consumer scaffold contract: brand customization stays palette-only unless the ta
|
|
|
20
20
|
|
|
21
21
|
## Component Discovery
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
The catalog (`./catalog` and `./catalog/components` subpath exports) is the single surface for discovering and consuming Seed blocks and page-kits.
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
**Discovery** (server-safe, read this to learn what's available):
|
|
26
|
+
```ts
|
|
27
|
+
import { seedComponentDefinitions } from "@vadimcomanescu/nadicode-design-system/catalog"
|
|
27
28
|
```
|
|
28
29
|
|
|
29
|
-
|
|
30
|
+
Each entry provides: `props` (Zod schema), `description`, `slots`, `events`, `example`.
|
|
30
31
|
|
|
32
|
+
**Components** (client, import this to get React components):
|
|
33
|
+
```ts
|
|
34
|
+
import { seedComponents } from "@vadimcomanescu/nadicode-design-system/catalog/components"
|
|
31
35
|
```
|
|
32
|
-
|
|
36
|
+
|
|
37
|
+
Usage:
|
|
38
|
+
```tsx
|
|
39
|
+
const { LoginBlock, DashboardPageKit } = seedComponents
|
|
40
|
+
<LoginBlock onSubmit={handleLogin} />
|
|
33
41
|
```
|
|
34
42
|
|
|
35
|
-
|
|
43
|
+
**Blocks and page-kits** are imported exclusively from `seedComponents`. Do not import them via individual subpath exports (ADR 0009). The ESLint rule `nadicode/require-catalog-import` enforces this at lint time.
|
|
44
|
+
|
|
45
|
+
**UI primitives** (Button, Heading, Input, etc.), icons, charts, and effects are imported via individual subpath exports. They are not registered in the catalog.
|
|
46
|
+
|
|
47
|
+
See the full Import Rules in `contract.md`.
|
|
36
48
|
|
|
37
|
-
The derived references under `references/components.md` and `references/blocks.md` are generated from the catalog. Any repo `Path` column there is a maintainer source path, not a consumer import path.
|
|
49
|
+
The derived references under `references/components.md` and `references/blocks.md` are generated from the catalog. Any repo `Path` column there is a maintainer source path, not a consumer import path.
|
|
38
50
|
|
|
39
51
|
## Read Order
|
|
40
52
|
|
|
41
53
|
1. **This file** -- router, quick references, forbidden patterns
|
|
42
54
|
2. **`contract.md`** -- binary rules, package integration contract
|
|
43
|
-
3. **
|
|
44
|
-
4.
|
|
45
|
-
5. **`intent-map.md`** -- intent decision tree + recipe index
|
|
55
|
+
3. **catalog** (`@vadimcomanescu/nadicode-design-system/catalog`) -- machine-readable component metadata (variants, props, tiers)
|
|
56
|
+
4. **`intent-map.md`** -- intent decision tree + recipe index
|
|
46
57
|
6. **`recipes/<page-type>.md`** -- matching recipe for your page
|
|
47
58
|
7. **`references/`** -- deep dives as needed
|
|
48
59
|
8. **`references/brand-override.md`** -- palette-only brand customization guide for seeded apps
|
|
@@ -336,10 +347,9 @@ Content widths, vertical rhythm, responsive contracts: `references/composition.m
|
|
|
336
347
|
Compound component for multi-column sortable boards (project boards, runs views, pipelines).
|
|
337
348
|
|
|
338
349
|
```tsx
|
|
339
|
-
import {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
} from '@vadimcomanescu/nadicode-design-system/kanban-board'
|
|
350
|
+
import { seedComponents } from "@vadimcomanescu/nadicode-design-system/catalog/components"
|
|
351
|
+
const { KanbanBoard: kanban } = seedComponents
|
|
352
|
+
const { KanbanBoard, KanbanColumn, KanbanColumnHeader, KanbanItem, KanbanHandle } = kanban
|
|
343
353
|
import type { KanbanColumnState, KanbanMoveMeta } from '@vadimcomanescu/nadicode-design-system/kanban-board'
|
|
344
354
|
```
|
|
345
355
|
|
|
@@ -9,14 +9,27 @@ Binary rules for consumer apps using the Seed Design System. Every rule is non-n
|
|
|
9
9
|
|
|
10
10
|
## Component Catalog
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
The catalog is the single starting point for component discovery. Read it via the `./catalog` subpath export for the authoritative list of components, variant names, props, and tiers. Get actual React components from `./catalog/components`. Verify component names and variant values against the catalog. Do not guess variant names or prop values.
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
// Discovery (server-safe)
|
|
16
|
+
import { seedComponentDefinitions } from "@vadimcomanescu/nadicode-design-system/catalog"
|
|
17
|
+
|
|
18
|
+
// Components (client)
|
|
19
|
+
import { seedComponents } from "@vadimcomanescu/nadicode-design-system/catalog/components"
|
|
20
|
+
```
|
|
14
21
|
|
|
15
22
|
## Import Rules
|
|
16
23
|
|
|
17
|
-
1.
|
|
18
|
-
|
|
19
|
-
|
|
24
|
+
1. **Blocks and page-kits**: import from `seedComponents` via `@vadimcomanescu/nadicode-design-system/catalog/components`. No individual subpath imports for blocks or page-kits.
|
|
25
|
+
```ts
|
|
26
|
+
import { seedComponents } from "@vadimcomanescu/nadicode-design-system/catalog/components"
|
|
27
|
+
const { LoginBlock, DashboardPageKit } = seedComponents
|
|
28
|
+
```
|
|
29
|
+
2. **UI primitives, charts, effects, text-effects**: import via individual subpath exports (e.g., `@vadimcomanescu/nadicode-design-system/button`, `@vadimcomanescu/nadicode-design-system/charts`). These are not in the catalog.
|
|
30
|
+
3. **Icons**: import from `@vadimcomanescu/nadicode-design-system/icons` or the matching `@vadimcomanescu/nadicode-design-system/icons/<name>` subpath. Never import from `lucide-react` directly.
|
|
31
|
+
4. **Infrastructure** (tokens.css, tailwind preset, eslint-plugin, theme-provider, messages, test, lib/*): import via subpath exports. These are configuration wiring, not component consumption.
|
|
32
|
+
5. Do not vendor or recreate DS runtime files inside the scaffold. If a needed primitive is missing, stop and report it. Do not invent ad-hoc replacements.
|
|
20
33
|
|
|
21
34
|
## Token Rules
|
|
22
35
|
|
|
@@ -62,7 +75,7 @@ Registry digest: `sha256:b5370c96c1bb877883860055c4b3d2c7c67ef7c2b1df4acacd7ea5c
|
|
|
62
75
|
24. Dashboard KPI cards must use `MetricCard`, not ad-hoc Card + value compositions.
|
|
63
76
|
25. Chart components must not be rendered without an empty-data guard (`data.length > 0` or `ChartCard`).
|
|
64
77
|
26. Chart color configs must use `var(--color-chart-N)` tokens, never hex/rgb/hsl literals.
|
|
65
|
-
27. Import chart primitives from `@vadimcomanescu/nadicode-design-system/charts` or the matching `@vadimcomanescu/nadicode-design-system/charts/<chart-name>` subpath. Do not import `recharts` directly into scaffold app code.
|
|
78
|
+
27. Import chart primitives from `@vadimcomanescu/nadicode-design-system/charts` or the matching `@vadimcomanescu/nadicode-design-system/charts/<chart-name>` subpath (charts are UI primitives, not catalog items). Do not import `recharts` directly into scaffold app code.
|
|
66
79
|
|
|
67
80
|
## ESLint Rule Reference
|
|
68
81
|
|
|
@@ -231,15 +231,15 @@ REDUCED MOTION: All items visible immediately, opacity 0->1 in 10ms
|
|
|
231
231
|
|
|
232
232
|
| Component | Import Path | Purpose |
|
|
233
233
|
|-----------|-------------|---------|
|
|
234
|
-
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
235
|
-
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
234
|
+
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site navigation |
|
|
235
|
+
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site footer |
|
|
236
236
|
| `Button` | `@vadimcomanescu/nadicode-design-system/button` | CTAs |
|
|
237
237
|
| `Badge` | `@vadimcomanescu/nadicode-design-system/badge` | Hero tag |
|
|
238
238
|
| `Typography` | `@vadimcomanescu/nadicode-design-system/typography` | Headings, body text |
|
|
239
239
|
| `ScrollFadeIn` | `@vadimcomanescu/nadicode-design-system/scroll-fade-in` | Below-fold animations |
|
|
240
|
-
| `ProcessFlowBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
241
|
-
| `FeatureGridBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
242
|
-
| `StatsMarketingBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
240
|
+
| `ProcessFlowBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | How-we-work process |
|
|
241
|
+
| `FeatureGridBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Services grid |
|
|
242
|
+
| `StatsMarketingBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Outcome metrics (ROI, time saved) |
|
|
243
243
|
|
|
244
244
|
### Allowed (optional)
|
|
245
245
|
|
|
@@ -167,9 +167,9 @@ REDUCED MOTION: Card and all children visible immediately
|
|
|
167
167
|
|
|
168
168
|
| Component | Import Path | Purpose |
|
|
169
169
|
|-----------|-------------|---------|
|
|
170
|
-
| `AuthLayout` | `@vadimcomanescu/nadicode-design-system/
|
|
171
|
-
| `LoginBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
172
|
-
| `SignUpBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
170
|
+
| `AuthLayout` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Split-screen wrapper |
|
|
171
|
+
| `LoginBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Pre-built login form |
|
|
172
|
+
| `SignUpBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Pre-built signup form |
|
|
173
173
|
| `Card` | `@vadimcomanescu/nadicode-design-system/card` | Auth card container |
|
|
174
174
|
| `Input` | `@vadimcomanescu/nadicode-design-system/input` | Email, name fields |
|
|
175
175
|
| `PasswordInput` | `@vadimcomanescu/nadicode-design-system/password-input` | Password with toggle |
|
|
@@ -233,8 +233,8 @@ REDUCED MOTION: All items visible immediately
|
|
|
233
233
|
| `Pagination` | `@vadimcomanescu/nadicode-design-system/pagination` | Blog index pages |
|
|
234
234
|
| `Separator` | `@vadimcomanescu/nadicode-design-system/separator` | Content dividers |
|
|
235
235
|
| `Select` | `@vadimcomanescu/nadicode-design-system/select` | Category filter |
|
|
236
|
-
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
237
|
-
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
236
|
+
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site navigation |
|
|
237
|
+
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site footer |
|
|
238
238
|
| `ScrollFadeIn` | `@vadimcomanescu/nadicode-design-system/scroll-fade-in` | Below-fold animations |
|
|
239
239
|
| `Button` | `@vadimcomanescu/nadicode-design-system/button` | Share, read more |
|
|
240
240
|
|
|
@@ -200,13 +200,13 @@ REDUCED MOTION: All items visible immediately, opacity 0->1 in 10ms
|
|
|
200
200
|
|
|
201
201
|
| Component | Import Path | Purpose |
|
|
202
202
|
|-----------|-------------|---------|
|
|
203
|
-
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
204
|
-
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
203
|
+
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site navigation |
|
|
204
|
+
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site footer |
|
|
205
205
|
| `Button` | `@vadimcomanescu/nadicode-design-system/button` | CTAs |
|
|
206
206
|
| `Badge` | `@vadimcomanescu/nadicode-design-system/badge` | Hero tag |
|
|
207
207
|
| `Typography` | `@vadimcomanescu/nadicode-design-system/typography` | Headings, body text |
|
|
208
208
|
| `ScrollFadeIn` | `@vadimcomanescu/nadicode-design-system/scroll-fade-in` | Below-fold animations |
|
|
209
|
-
| `TeamBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
209
|
+
| `TeamBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Team member grid |
|
|
210
210
|
|
|
211
211
|
### Allowed (optional)
|
|
212
212
|
|
|
@@ -157,11 +157,11 @@ REDUCED MOTION: All items visible immediately, opacity 0->1 in 10ms
|
|
|
157
157
|
|
|
158
158
|
| Component | Import Path | Purpose |
|
|
159
159
|
|-----------|-------------|---------|
|
|
160
|
-
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
161
|
-
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
160
|
+
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site navigation |
|
|
161
|
+
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site footer |
|
|
162
162
|
| `Button` | `@vadimcomanescu/nadicode-design-system/button` | CTAs and form submit |
|
|
163
163
|
| `ScrollFadeIn` | `@vadimcomanescu/nadicode-design-system/scroll-fade-in` | Below-fold animations |
|
|
164
|
-
| `ContactBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
164
|
+
| `ContactBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Contact form + company info |
|
|
165
165
|
|
|
166
166
|
### Allowed (optional)
|
|
167
167
|
|
|
@@ -237,13 +237,13 @@ REDUCED MOTION: All items visible immediately, opacity 0->1 in 10ms
|
|
|
237
237
|
|
|
238
238
|
| Component | Import Path | Purpose |
|
|
239
239
|
|-----------|-------------|---------|
|
|
240
|
-
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
241
|
-
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
240
|
+
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site navigation |
|
|
241
|
+
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site footer |
|
|
242
242
|
| `Button` | `@vadimcomanescu/nadicode-design-system/button` | CTAs |
|
|
243
243
|
| `Badge` | `@vadimcomanescu/nadicode-design-system/badge` | Hero tag |
|
|
244
244
|
| `Typography` | `@vadimcomanescu/nadicode-design-system/typography` | Headings, body text |
|
|
245
245
|
| `ScrollFadeIn` | `@vadimcomanescu/nadicode-design-system/scroll-fade-in` | Below-fold animations |
|
|
246
|
-
| `AgentProfileGridBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
246
|
+
| `AgentProfileGridBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Agent profile cards grid |
|
|
247
247
|
|
|
248
248
|
### Allowed (optional)
|
|
249
249
|
|
|
@@ -212,17 +212,17 @@ REDUCED MOTION: All items visible immediately, opacity 0->1 in 10ms
|
|
|
212
212
|
|
|
213
213
|
| Component | Import Path | Purpose |
|
|
214
214
|
|-----------|-------------|---------|
|
|
215
|
-
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
216
|
-
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
215
|
+
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site navigation |
|
|
216
|
+
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site footer |
|
|
217
217
|
| `Button` | `@vadimcomanescu/nadicode-design-system/button` | CTAs |
|
|
218
218
|
| `Badge` | `@vadimcomanescu/nadicode-design-system/badge` | Announcement tag |
|
|
219
219
|
| `Typography` | `@vadimcomanescu/nadicode-design-system/typography` | Headings, body text |
|
|
220
|
-
| `FeatureBlock` / `FeatureGridBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
221
|
-
| `FAQBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
222
|
-
| `CallToActionBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
223
|
-
| `TestimonialsBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
224
|
-
| `LogoCloud` | `@vadimcomanescu/nadicode-design-system/
|
|
225
|
-
| `StatsMarketingBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
220
|
+
| `FeatureBlock` / `FeatureGridBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Feature showcase |
|
|
221
|
+
| `FAQBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | FAQ accordion |
|
|
222
|
+
| `CallToActionBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Final CTA |
|
|
223
|
+
| `TestimonialsBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Social proof |
|
|
224
|
+
| `LogoCloud` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Partner logos |
|
|
225
|
+
| `StatsMarketingBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Key metrics |
|
|
226
226
|
| `ScrollFadeIn` | `@vadimcomanescu/nadicode-design-system/scroll-fade-in` | Below-fold animations |
|
|
227
227
|
| `ShaderBackground` | `@vadimcomanescu/nadicode-design-system/shader-background` | Hero background |
|
|
228
228
|
|
|
@@ -35,8 +35,8 @@ Shared marketing layout providing scroll-aware header, main content area, and fo
|
|
|
35
35
|
### 1. Layout Shell
|
|
36
36
|
|
|
37
37
|
```tsx
|
|
38
|
-
import {
|
|
39
|
-
|
|
38
|
+
import { seedComponents } from '@vadimcomanescu/nadicode-design-system/catalog/components'
|
|
39
|
+
const { HeaderBlock, FooterBlock } = seedComponents
|
|
40
40
|
|
|
41
41
|
const navLinks = [
|
|
42
42
|
{ name: 'Services', href: '/services' },
|
|
@@ -86,8 +86,8 @@ REDUCED MOTION: Header visible immediately, no blur transition
|
|
|
86
86
|
|
|
87
87
|
| Component | Import Path | Purpose |
|
|
88
88
|
|-----------|-------------|---------|
|
|
89
|
-
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
90
|
-
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
89
|
+
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site navigation with glass blur |
|
|
90
|
+
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site footer |
|
|
91
91
|
|
|
92
92
|
### Allowed (optional)
|
|
93
93
|
|
|
@@ -75,7 +75,8 @@ import {
|
|
|
75
75
|
SidebarMenuSubItem,
|
|
76
76
|
SidebarMenuSubButton,
|
|
77
77
|
} from '@vadimcomanescu/nadicode-design-system/sidebar'
|
|
78
|
-
import {
|
|
78
|
+
import { seedComponents } from '@vadimcomanescu/nadicode-design-system/catalog/components'
|
|
79
|
+
const { NavUser } = seedComponents
|
|
79
80
|
import { AppBreadcrumb } from '@/components/blocks/AppBreadcrumb'
|
|
80
81
|
import { AppSearch } from '@/components/blocks/AppSearch'
|
|
81
82
|
import { WorkspaceSwitcher } from '@/components/blocks/WorkspaceSwitcher'
|
|
@@ -704,7 +705,7 @@ REDUCED MOTION: All transitions instant
|
|
|
704
705
|
| Component | Import Path | Purpose |
|
|
705
706
|
|-----------|-------------|---------|
|
|
706
707
|
| `Sidebar` (full system) | `@vadimcomanescu/nadicode-design-system/sidebar` | App sidebar with all subcomponents |
|
|
707
|
-
| `NavUser` | `@vadimcomanescu/nadicode-design-system/
|
|
708
|
+
| `NavUser` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | User menu in sidebar footer |
|
|
708
709
|
| `AppBreadcrumb` | Consumer block (see Section 2) | Route-aware breadcrumb |
|
|
709
710
|
| `AppSearch` | Consumer block (see Section 3) | Cmd+K search palette |
|
|
710
711
|
| `WorkspaceSwitcher` | Consumer block (see Section 7) | Org/workspace picker |
|
|
@@ -195,10 +195,10 @@ REDUCED MOTION: All items visible immediately
|
|
|
195
195
|
| `Switch` | `@vadimcomanescu/nadicode-design-system/switch` | Billing toggle |
|
|
196
196
|
| `Typography` | `@vadimcomanescu/nadicode-design-system/typography` | Headings, descriptions |
|
|
197
197
|
| `Separator` | `@vadimcomanescu/nadicode-design-system/separator` | Plan card divider |
|
|
198
|
-
| `FAQBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
199
|
-
| `CallToActionBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
200
|
-
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
201
|
-
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
198
|
+
| `FAQBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | FAQ section |
|
|
199
|
+
| `CallToActionBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Final CTA |
|
|
200
|
+
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Navigation |
|
|
201
|
+
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Footer |
|
|
202
202
|
| `ScrollFadeIn` | `@vadimcomanescu/nadicode-design-system/scroll-fade-in` | Below-fold animation |
|
|
203
203
|
| `CountingNumber` | `@vadimcomanescu/nadicode-design-system/text-effects/counting-number` | Price animation on toggle |
|
|
204
204
|
|
|
@@ -225,13 +225,13 @@ REDUCED MOTION: All items visible immediately, opacity 0->1 in 10ms
|
|
|
225
225
|
|
|
226
226
|
| Component | Import Path | Purpose |
|
|
227
227
|
|-----------|-------------|---------|
|
|
228
|
-
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
229
|
-
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
228
|
+
| `HeaderBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site navigation |
|
|
229
|
+
| `FooterBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Site footer |
|
|
230
230
|
| `Button` | `@vadimcomanescu/nadicode-design-system/button` | CTAs |
|
|
231
231
|
| `Badge` | `@vadimcomanescu/nadicode-design-system/badge` | Category tag |
|
|
232
232
|
| `Typography` | `@vadimcomanescu/nadicode-design-system/typography` | Headings, body text |
|
|
233
233
|
| `ScrollFadeIn` | `@vadimcomanescu/nadicode-design-system/scroll-fade-in` | Below-fold animations |
|
|
234
|
-
| `FeatureGridBlock` | `@vadimcomanescu/nadicode-design-system/
|
|
234
|
+
| `FeatureGridBlock` | `@vadimcomanescu/nadicode-design-system/catalog/components` via `seedComponents` | Product/service showcase |
|
|
235
235
|
|
|
236
236
|
### Allowed (optional)
|
|
237
237
|
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
# Blocks Catalog
|
|
2
2
|
|
|
3
|
-
Derived from `
|
|
4
|
-
|
|
5
|
-
Consumer code must import from `@vadimcomanescu/nadicode-design-system/*` block subpaths. Repo source paths are maintainer references only.
|
|
3
|
+
Derived from `src/catalog/catalog.ts`.
|
|
6
4
|
|
|
5
|
+
Components are consumed via `seedComponents` from `@vadimcomanescu/nadicode-design-system/catalog/components`. Repo source paths are maintainer references only.
|
|
7
6
|
Blocks are pre-composed page sections built from Seed UI primitives.
|
|
8
7
|
Run `npm run docs:inventory` for the current filesystem-backed list.
|
|
9
8
|
|
|
@@ -115,8 +114,9 @@ Run `npm run docs:inventory` for the current filesystem-backed list.
|
|
|
115
114
|
Blocks accept `className` for placement and compose Seed UI primitives:
|
|
116
115
|
|
|
117
116
|
```tsx
|
|
118
|
-
import {
|
|
119
|
-
|
|
117
|
+
import { seedComponents } from "@vadimcomanescu/nadicode-design-system/catalog/components"
|
|
118
|
+
|
|
119
|
+
const { LoginBlock, HeroBlock } = seedComponents
|
|
120
120
|
|
|
121
121
|
<div className="flex items-center justify-center min-h-dvh">
|
|
122
122
|
<LoginBlock type="login" showSocial />
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Component Inventory
|
|
2
2
|
|
|
3
|
-
Derived from `
|
|
3
|
+
Derived from `src/catalog/catalog.ts`.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Components are consumed via `seedComponents` from `@vadimcomanescu/nadicode-design-system/catalog/components`. The `Path` column below is the repo source location for maintainers.
|
|
6
6
|
|
|
7
7
|
Tiers: **1**=Core (3+ recipes), **2**=Domain (1-2 recipes), **3**=Decorative (marketing only), **4**=Deprecation candidate.
|
|
8
8
|
|
|
@@ -8,8 +8,8 @@ Use these in order:
|
|
|
8
8
|
|
|
9
9
|
1. `contract.md`, binary consumer rules
|
|
10
10
|
2. this guide, integration checklist
|
|
11
|
-
3. `
|
|
12
|
-
4.
|
|
11
|
+
3. `./catalog` subpath export, server-safe component definitions with Zod schemas
|
|
12
|
+
4. `./catalog/components` subpath export, React component map keyed by catalog name
|
|
13
13
|
|
|
14
14
|
## Integration Checklist
|
|
15
15
|
|
package/README.md
CHANGED
|
@@ -27,11 +27,11 @@ Canonical consumer docs:
|
|
|
27
27
|
The repo treats structured truth and prose differently.
|
|
28
28
|
|
|
29
29
|
- Operational truth lives in `package.json` scripts and `.husky/*`.
|
|
30
|
-
- The
|
|
31
|
-
- Public package surface lives in `package.json` exports, `
|
|
30
|
+
- The catalog is the single machine-readable component surface. Discovery: `@vadimcomanescu/nadicode-design-system/catalog`. Components: `@vadimcomanescu/nadicode-design-system/catalog/components`.
|
|
31
|
+
- Public package surface lives in `package.json` exports, `src/catalog/catalog.ts`, and `bin/shipped-files.json`.
|
|
32
32
|
- Consumer ownership and package-backed runtime rules live in [docs/nadicode/SCAFFOLDING_PROCESS.md](docs/nadicode/SCAFFOLDING_PROCESS.md).
|
|
33
33
|
- Release steps live in [docs/releasing-package.md](docs/releasing-package.md).
|
|
34
|
-
- Component metadata lives in `dist/catalog.
|
|
34
|
+
- Component metadata lives in `dist/catalog/catalog.js`, generated from `src/catalog/catalog.ts`.
|
|
35
35
|
|
|
36
36
|
Use prose docs for guidance and rationale. Use scripts, manifests, and generated artifacts for anything that must stay machine-accurate.
|
|
37
37
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-03-
|
|
4
|
-
"packageVersion": "
|
|
3
|
+
"generatedAt": "2026-03-27T10:15:35.016Z",
|
|
4
|
+
"packageVersion": "4.0.0",
|
|
5
5
|
"stableExports": [
|
|
6
6
|
".",
|
|
7
7
|
"./accordion",
|
|
@@ -52,7 +52,6 @@
|
|
|
52
52
|
"./banner-block",
|
|
53
53
|
"./bar-chart-block",
|
|
54
54
|
"./bento-grid",
|
|
55
|
-
"./block-props-schemas",
|
|
56
55
|
"./blog-content-page-kit",
|
|
57
56
|
"./brand-icons",
|
|
58
57
|
"./breadcrumb",
|
|
@@ -106,9 +105,7 @@
|
|
|
106
105
|
"./command",
|
|
107
106
|
"./company-suite-page-kit",
|
|
108
107
|
"./comparison-block",
|
|
109
|
-
"./component-props-schemas",
|
|
110
108
|
"./confetti-burst",
|
|
111
|
-
"./consumer-contract",
|
|
112
109
|
"./consumer-intent-map",
|
|
113
110
|
"./contact-block",
|
|
114
111
|
"./context-menu",
|
|
@@ -330,7 +327,6 @@
|
|
|
330
327
|
"./notification-center",
|
|
331
328
|
"./onboarding-block",
|
|
332
329
|
"./onboarding-page-kit",
|
|
333
|
-
"./page-kit-props-schemas",
|
|
334
330
|
"./page-transition",
|
|
335
331
|
"./pagination",
|
|
336
332
|
"./password-input",
|
|
@@ -345,7 +341,6 @@
|
|
|
345
341
|
"./progress-ring",
|
|
346
342
|
"./progressive-blur",
|
|
347
343
|
"./promo-card",
|
|
348
|
-
"./public-surface-registry",
|
|
349
344
|
"./radio-group",
|
|
350
345
|
"./react-utils",
|
|
351
346
|
"./recovery-page-kit",
|
|
@@ -374,7 +369,6 @@
|
|
|
374
369
|
"./social-proof-block",
|
|
375
370
|
"./sonner",
|
|
376
371
|
"./source-citation",
|
|
377
|
-
"./spec-manifest",
|
|
378
372
|
"./spinner",
|
|
379
373
|
"./spring-hover",
|
|
380
374
|
"./stagger-children",
|
|
@@ -810,41 +804,13 @@
|
|
|
810
804
|
"pages.settings.underConstruction"
|
|
811
805
|
],
|
|
812
806
|
"artifacts": {
|
|
813
|
-
"contracts/public-surface-registry.json": {
|
|
814
|
-
"schemaVersion": "1.0.0",
|
|
815
|
-
"shapeSignature": "5a76cac109041a9f60e288cfe903e23db0a45c56f6daff8f09bff97bfeeb2d11"
|
|
816
|
-
},
|
|
817
|
-
"contracts/block-props-schemas.json": {
|
|
818
|
-
"schemaVersion": "1.0.0",
|
|
819
|
-
"shapeSignature": "5a20094b5a00004d3187ee3bc5b8fe6d5b2d76a6b5ad0297834ee39deefe8988"
|
|
820
|
-
},
|
|
821
|
-
"contracts/component-props-schemas.json": {
|
|
822
|
-
"schemaVersion": "1.0.0",
|
|
823
|
-
"shapeSignature": "61e2aa0831df178f701cdcb7d3905b87f33d15d5e13e42487c24ee8ff15a386a"
|
|
824
|
-
},
|
|
825
|
-
"contracts/page-kit-props-schemas.json": {
|
|
826
|
-
"schemaVersion": "1.0.0",
|
|
827
|
-
"shapeSignature": "76a764c4d9b76a1ccf40d5493872c344df2c136c8b4bdc06bddc854ea54e3590"
|
|
828
|
-
},
|
|
829
807
|
"contracts/consumer-intent-map.json": {
|
|
830
808
|
"schemaVersion": "1.0.0",
|
|
831
|
-
"shapeSignature": "
|
|
809
|
+
"shapeSignature": "583a600417b95d3b7278d18d8a23ad8f0353314feb64fba7fa037c2c7db5b8b9"
|
|
832
810
|
},
|
|
833
811
|
"contracts/message-catalog-contract.json": {
|
|
834
812
|
"schemaVersion": "1.0.0",
|
|
835
813
|
"shapeSignature": "c95089ecca818272b27b77f8fac6fae04f8e4f0f381e302dfa084b00da12fcc8"
|
|
836
|
-
},
|
|
837
|
-
"contracts/spec-manifest.json": {
|
|
838
|
-
"schemaVersion": "1.0.0",
|
|
839
|
-
"shapeSignature": "e6c8904e15cc0fa5117b58485856a7db80746905ab61615b3e9936fe7b59ce08"
|
|
840
|
-
},
|
|
841
|
-
"contracts/consumer-contract.json": {
|
|
842
|
-
"schemaVersion": "1.0.0",
|
|
843
|
-
"shapeSignature": "1472ab7f0c0d4cc77d02821ae5284c85fed6e57d664d93bb6552cf42157c9a86"
|
|
844
|
-
},
|
|
845
|
-
"dist/catalog.json": {
|
|
846
|
-
"schemaVersion": "1.1.0",
|
|
847
|
-
"shapeSignature": "163dd9cef740c711e04d3402491df7684801764142fd48de45ef9bdde9920e54"
|
|
848
814
|
}
|
|
849
815
|
}
|
|
850
816
|
}
|