@vadimcomanescu/nadicode-design-system 4.0.1 → 4.0.2

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.
Files changed (35) hide show
  1. package/.agents/skills/seed/SKILL.md +34 -163
  2. package/.agents/skills/seed/references/animation.md +2 -2
  3. package/.agents/skills/seed/references/responsive.md +1 -1
  4. package/README.md +2 -2
  5. package/eslint-rules/nadicode/rules/no-has-svg-selector.js +1 -1
  6. package/package.json +1 -2
  7. package/scripts/ds-check.mjs +0 -10
  8. package/scripts/sync-seed-skill.mjs +0 -3
  9. package/.agents/skills/seed/contract.md +0 -110
  10. package/.agents/skills/seed/intent-map.md +0 -320
  11. package/.agents/skills/seed/recipes/agency-home.md +0 -311
  12. package/.agents/skills/seed/recipes/agents-chat.md +0 -305
  13. package/.agents/skills/seed/recipes/analytics.md +0 -253
  14. package/.agents/skills/seed/recipes/auth.md +0 -254
  15. package/.agents/skills/seed/recipes/blog-content.md +0 -307
  16. package/.agents/skills/seed/recipes/checkout.md +0 -311
  17. package/.agents/skills/seed/recipes/company-about.md +0 -276
  18. package/.agents/skills/seed/recipes/company-contact.md +0 -234
  19. package/.agents/skills/seed/recipes/crud-form.md +0 -233
  20. package/.agents/skills/seed/recipes/crud-list-detail.md +0 -230
  21. package/.agents/skills/seed/recipes/dashboard.md +0 -354
  22. package/.agents/skills/seed/recipes/digital-workers.md +0 -314
  23. package/.agents/skills/seed/recipes/error-pages.md +0 -199
  24. package/.agents/skills/seed/recipes/marketing-landing.md +0 -293
  25. package/.agents/skills/seed/recipes/marketing-shell.md +0 -156
  26. package/.agents/skills/seed/recipes/navigation-shell.md +0 -787
  27. package/.agents/skills/seed/recipes/onboarding.md +0 -258
  28. package/.agents/skills/seed/recipes/pricing.md +0 -271
  29. package/.agents/skills/seed/recipes/service-detail.md +0 -302
  30. package/.agents/skills/seed/recipes/settings.md +0 -252
  31. package/.agents/skills/seed/references/blocks.md +0 -128
  32. package/.agents/skills/seed/references/components.md +0 -287
  33. package/.agents/skills/seed/references/icons.md +0 -169
  34. package/.agents/skills/seed/references/nextjs.md +0 -49
  35. package/.agents/skills/seed/references/tokens.md +0 -88
@@ -1,287 +0,0 @@
1
- # Component Inventory
2
-
3
- Derived from `src/catalog/catalog.ts`.
4
-
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
-
7
- Tiers: **1**=Core (3+ recipes), **2**=Domain (1-2 recipes), **3**=Decorative (marketing only), **4**=Deprecation candidate.
8
-
9
- ---
10
-
11
- ## Form Controls
12
-
13
- | Component | Path | Tier | Radix/Lib | Notes |
14
- |-----------|------|------|-----------|-------|
15
- | Button | `ui/Button` | 1 | `react-slot` | 8 variants (primary, secondary, outline, ghost, link, destructive, accent, glass), 4 sizes |
16
- | Calendar | `ui/Calendar` | 1 | `react-day-picker` | Calendar grid primitive |
17
- | Checkbox | `ui/Checkbox` | 1 | `react-checkbox` | With optional label |
18
- | CheckoutForm | `ui/CheckoutForm` | 2 | `@stripe/react-stripe-js` | Stripe Elements checkout form |
19
- | CheckoutFormDemo | `ui/CheckoutFormDemo` | 2 | `@stripe/react-stripe-js` | Demo checkout with pre-wired state |
20
- | Combobox | `ui/Combobox` | 1 | `cmdk` | Searchable select |
21
- | DatePicker | `ui/DatePicker` | 1 | `react-day-picker` | Single date picker |
22
- | DateRangePicker | `ui/DateRangePicker` | 1 | `react-day-picker` | Date range selection |
23
- | Field | `ui/Field` | 1 | - | Generic field wrapper (label + error) |
24
- | FileUpload | `ui/FileUpload` | 1 | - | Drag-and-drop file upload zone |
25
- | Form | `ui/Form` | 1 | `react-hook-form` | FormField, FormItem, FormLabel, FormControl, FormMessage |
26
- | FormWizard | `ui/FormWizard` | 1 | - | Multi-step form wizard |
27
- | Input | `ui/Input` | 1 | - | size: sm/default/lg, props: label, error, startIcon, endIcon |
28
- | InputGroup | `ui/InputGroup` | 1 | - | Input + addon composition |
29
- | InputOTP | `ui/InputOTP` | 1 | `input-otp` | OTP input with groups, slots, separators |
30
- | Label | `ui/Label` | 1 | `react-label` | Accessible label |
31
- | NativeSelect | `ui/NativeSelect` | 4 | - | Browser-native <select> styled |
32
- | PasswordInput | `ui/PasswordInput` | 1 | - | Input with show/hide toggle |
33
- | RadioGroup | `ui/RadioGroup` | 1 | `react-radio-group` | RadioGroup + RadioGroupItem |
34
- | Select | `ui/Select` | 1 | `react-select` | Compound: Trigger, Content, Item, Group, Separator |
35
- | Slider | `ui/Slider` | 1 | `react-slider` | Range slider |
36
- | Switch | `ui/Switch` | 1 | `react-switch` | Toggle switch |
37
- | TagInput | `ui/TagInput` | 1 | - | Multi-value tag input |
38
- | Textarea | `ui/Textarea` | 1 | - | Auto-grow text area |
39
-
40
- ---
41
-
42
- ## Display
43
-
44
- | Component | Path | Tier | Radix/Lib | Notes |
45
- |-----------|------|------|-----------|-------|
46
- | Accordion | `ui/Accordion` | 1 | `react-accordion` | Accordion, Item, Trigger, Content |
47
- | Alert | `ui/Alert` | 1 | - | variant: default, destructive |
48
- | AlertDialog | `ui/AlertDialog` | 1 | `react-alert-dialog` | Full compound set with actions |
49
- | AnimatedTabs | `ui/AnimatedTabs` | 3 | - | Tabs with sliding indicator (layoutId) |
50
- | AnnouncementBanner | `ui/AnnouncementBanner` | 1 | - | Top-of-page announcement |
51
- | Avatar | `ui/Avatar` | 1 | `react-avatar` | Avatar, AvatarImage, AvatarFallback |
52
- | AvatarUpload | `ui/AvatarUpload` | 1 | - | Avatar with upload functionality |
53
- | Badge | `ui/Badge` | 1 | - | variant: primary, secondary, destructive, outline, accent |
54
- | Breadcrumb | `ui/Breadcrumb` | 1 | - | Breadcrumb, List, Item, Link, Separator |
55
- | Card | `ui/Card` | 1 | - | Card, Header, Title, Description, Content, Footer |
56
- | Carousel | `ui/Carousel` | 1 | `embla-carousel-react` | Content, Item, Previous, Next |
57
- | CheckStatus | `ui/CheckStatus` | 2 | - | Status check indicator component |
58
- | DataFreshness | `ui/DataFreshness` | 2 | - | Data freshness/staleness indicator |
59
- | DataTable | `ui/DataTable` | 1 | `@tanstack/react-table` | Full-featured with sorting/filtering |
60
- | Empty | `ui/Empty` | 1 | - | Empty state placeholder |
61
- | Heading | `ui/Heading` | 1 | - | Semantic headings with explicit level + visual size |
62
- | HoverCard | `ui/HoverCard` | 4 | `react-hover-card` | HoverCard, Trigger, Content |
63
- | KanbanBoard | `ui/KanbanBoard` | 2 | - | Drag-and-drop kanban board component |
64
- | Kbd | `ui/Kbd` | 1 | - | Keyboard shortcut display |
65
- | MetricCard | `ui/MetricCard` | 2 | - | Single metric display card with label, value, and trend |
66
- | Popover | `ui/Popover` | 1 | `react-popover` | Popover, Trigger, Content |
67
- | Progress | `ui/Progress` | 1 | `react-progress` | Progress bar |
68
- | ProgressRing | `ui/ProgressRing` | 2 | - | Circular progress ring indicator |
69
- | PromoCard | `ui/PromoCard` | 4 | - | Promotional card (Card + glass-floating may replace) |
70
- | RoleBadge | `ui/RoleBadge` | 4 | - | Role-specific badge styling (merge into Badge) |
71
- | Skeleton | `ui/Skeleton` | 1 | - | Loading placeholder |
72
- | Spinner | `ui/Spinner` | 1 | - | Loading spinner |
73
- | StatusDot | `ui/StatusDot` | 4 | - | Status indicator dot (can be CSS utility) |
74
- | Table | `ui/Table` | 1 | - | Table, Header, Body, Row, Head, Cell |
75
- | Tabs | `ui/Tabs` | 1 | `react-tabs` | Tabs, TabsList, TabsTrigger, TabsContent |
76
- | Timeline | `ui/Timeline` | 1 | - | Vertical timeline |
77
- | Tooltip | `ui/Tooltip` | 1 | `react-tooltip` | Provider, Tooltip, Trigger, Content |
78
- | TrendIndicator | `ui/TrendIndicator` | 2 | - | Trend direction indicator (up/down/neutral) |
79
- | Typography | `ui/Typography` | 1 | - | Body, small, and muted text only |
80
-
81
- ---
82
-
83
- ## Navigation
84
-
85
- | Component | Path | Tier | Radix/Lib | Notes |
86
- |-----------|------|------|-----------|-------|
87
- | Command | `ui/Command` | 1 | `cmdk` | Command palette primitive |
88
- | ContextMenu | `ui/ContextMenu` | 4 | `react-context-menu` | Rarely needed |
89
- | DropdownMenu | `ui/DropdownMenu` | 1 | `react-dropdown-menu` | Full compound set |
90
- | FloatingDock | `ui/FloatingDock` | 4 | - | macOS-style floating dock |
91
- | LanguageSwitcher | `ui/LanguageSwitcher` | 2 | - | Locale/language selection switcher |
92
- | Menubar | `ui/Menubar` | 4 | `react-menubar` | Rare in modern SaaS |
93
- | NavigationMenu | `ui/NavigationMenu` | 1 | `react-navigation-menu` | Menu, List, Item, Trigger, Content |
94
- | Pagination | `ui/Pagination` | 1 | - | Content, Item, Previous, Next |
95
- | SearchCommand | `ui/SearchCommand` | 1 | `cmdk` | Cmd+K search dialog |
96
- | Sidebar | `ui/Sidebar` | 1 | - | Full system: Provider, Trigger, Content, Group, Menu |
97
- | TreeView | `ui/TreeView` | 1 | - | Recursive collapsible tree with keyboard nav |
98
-
99
- ---
100
-
101
- ## Layout and Overlays
102
-
103
- | Component | Path | Tier | Radix/Lib | Notes |
104
- |-----------|------|------|-----------|-------|
105
- | AnimatedDialog | `ui/AnimatedDialog` | 3 | `react-dialog` | Dialog with motion spring animations |
106
- | AnimatedSheet | `ui/AnimatedSheet` | 3 | `react-dialog` | Sheet with motion animations |
107
- | AspectRatio | `ui/AspectRatio` | 1 | `react-aspect-ratio` | Fixed aspect ratio container |
108
- | BentoGrid | `ui/BentoGrid` | 1 | - | CSS grid layout system |
109
- | Collapsible | `ui/Collapsible` | 4 | `react-collapsible` | Used by Sidebar internally |
110
- | Dialog | `ui/Dialog` | 1 | `react-dialog` | Full compound set with close button |
111
- | Drawer | `ui/Drawer` | 1 | `vaul` | Mobile-friendly bottom drawer |
112
- | Grid | `layout/Grid` | 1 | - | CSS Grid wrapper |
113
- | GridSystem | `layout/GridSystem` | 2 | - | Extended grid system with responsive column and gap utilities |
114
- | Resizable | `ui/Resizable` | 1 | `react-resizable-panels` | PanelGroup, Panel, Handle |
115
- | ScrollArea | `ui/ScrollArea` | 1 | `react-scroll-area` | Custom scrollbar |
116
- | Separator | `ui/Separator` | 1 | `react-separator` | Horizontal/vertical divider |
117
- | SettingsModal | `ui/SettingsModal` | 2 | - | Modal dialog for application settings |
118
- | Sheet | `ui/Sheet` | 1 | `react-dialog` | Slide-in side panel |
119
- | Toggle | `ui/Toggle` | 4 | `react-toggle` | variant: default, outline |
120
- | ToggleGroup | `ui/ToggleGroup` | 4 | `react-toggle-group` | Group of toggles |
121
-
122
- ---
123
-
124
- ## Decorative Effects
125
-
126
- | Component | Path | Tier | Notes |
127
- |-----------|------|------|-------|
128
- | AmbientGrid | `ui/AmbientGrid` | 3 | CSS grid overlay (24px cells, 0.06 opacity) |
129
- | AnimatedBackground | `ui/AnimatedBackground` | 3 | CSS animated gradient background |
130
- | AuroraEffect | `ui/AuroraEffect` | 3 | Animated gradient aurora background |
131
- | InfiniteSlider | `ui/InfiniteSlider` | 3 | Auto-scrolling content slider |
132
- | MagneticElement | `ui/MagneticElement` | 3 | Magnetic cursor attraction |
133
- | MeteorShower | `ui/MeteorShower` | 3 | Falling meteor particles |
134
- | MouseEffect | `ui/MouseEffect` | 3 | Mouse-tracking effects (MouseGlow, MouseSpotlight) |
135
- | MovingBorder | `ui/MovingBorder` | 3 | Animated border rotation |
136
- | ProgressiveBlur | `ui/ProgressiveBlur` | 3 | Gradient blur effect |
137
- | ShaderBackground | `ui/ShaderBackground` | 2 | 21 shader types with intent-based presets (hero, section, ambient, card) |
138
- | TiltCard | `ui/TiltCard` | 3 | 3D perspective tilt on hover |
139
-
140
- ---
141
-
142
- ## Text Effects
143
-
144
- All in `@vadimcomanescu/nadicode-design-system/text-effects/`.
145
-
146
- | Component | Path | Tier | Notes |
147
- |-----------|------|------|-------|
148
- | AnimatedGradientText | `ui/text-effects/AnimatedGradientText` | 3 | Animated gradient sweep on text |
149
- | CountingNumber | `ui/text-effects/CountingNumber` | 3 | Animated number counter (also used in dashboard) |
150
- | FlipWords | `ui/text-effects/FlipWords` | 3 | Word cycling with flip animation |
151
- | HighlightText | `ui/text-effects/HighlightText` | 3 | Animated highlight marker |
152
- | MorphingText | `ui/text-effects/MorphingText` | 3 | SVG text morphing transitions |
153
- | ShimmeringText | `ui/text-effects/ShimmeringText` | 3 | Shimmer highlight sweep |
154
- | SlidingNumber | `ui/text-effects/SlidingNumber` | 3 | Digit-by-digit sliding animation |
155
- | StreamingText | `ui/text-effects/StreamingText` | 3 | ChatGPT-style streaming output |
156
- | TextReveal | `ui/text-effects/TextReveal` | 3 | Scroll-triggered text reveal |
157
-
158
- ---
159
-
160
- ## Animation Utilities
161
-
162
- | Component | Path | Tier | Notes |
163
- |-----------|------|------|-------|
164
- | ConfettiBurst | `ui/ConfettiBurst` | 1 | Celebratory confetti animation |
165
- | PageTransition | `ui/PageTransition` | 1 | Route transition wrapper (keyed on pathname) |
166
- | ScrollFadeIn | `ui/ScrollFadeIn` | 1 | Fade in on scroll intersection |
167
- | SpringHover | `ui/SpringHover` | 3 | Spring-based hover effect wrapper |
168
- | StaggerChildren | `ui/StaggerChildren` | 1 | Stagger child element entrances |
169
- | StaggeredEntrance | `ui/StaggeredEntrance` | 3 | Sequential entrance animation |
170
- | SuccessCheck | `ui/SuccessCheck` | 1 | Animated success checkmark |
171
-
172
- ---
173
-
174
- ## Charts
175
-
176
- Base `Chart.tsx` in `ui/` (not `ui/charts/`). The 7 chart variants in `ui/charts/`.
177
-
178
- | Component | Path | Tier | Notes |
179
- |-----------|------|------|-------|
180
- | AreaChart | `ui/charts/AreaChart` | 2 | Recharts area chart |
181
- | BarChart | `ui/charts/BarChart` | 2 | Recharts bar chart |
182
- | Chart | `ui/Chart` | 2 | Base config: ChartContainer, ChartTooltip, ChartLegend |
183
- | ChartCard | `ui/ChartCard` | 2 | Card wrapper for chart display with title and description |
184
- | HeatmapChart | `ui/charts/HeatmapChart` | 2 | Custom heatmap visualization |
185
- | LineChart | `ui/charts/LineChart` | 2 | Recharts line chart |
186
- | PieChart | `ui/charts/PieChart` | 2 | Recharts pie/donut chart |
187
- | RadarChart | `ui/charts/RadarChart` | 2 | Recharts radar chart |
188
- | RadialBarChart | `ui/charts/RadialBarChart` | 2 | Recharts radial bar chart |
189
- | Sparkline | `ui/charts/Sparkline` | 2 | Inline sparkline chart for compact trend display |
190
-
191
- ---
192
-
193
- ## AI / Voice
194
-
195
- | Component | Path | Tier | Notes |
196
- |-----------|------|------|-------|
197
- | AgentAvatar | `ui/AgentAvatar` | 2 | AI agent avatar with idle/listening/speaking states |
198
- | AgentStatus | `ui/AgentStatus` | 2 | Agent connection status indicator |
199
- | AudioWaveform | `ui/AudioWaveform` | 2 | Real-time audio visualization |
200
- | Avatar3D | `ui/Avatar3D` | 2 | 3D avatar with Three.js |
201
- | ConversationThread | `ui/ConversationThread` | 2 | Chat message thread |
202
-
203
- ---
204
-
205
- ## Agentic UI
206
-
207
- Components for AI agent interfaces, tool-use visualization, and multi-agent workflows.
208
-
209
- | Component | Path | Tier | Notes |
210
- |-----------|------|------|-------|
211
- | AgentMessageBubble | `ui/AgentMessageBubble` | 2 | Chat bubble with role-based styling |
212
- | AgentMetricsCard | `ui/AgentMetricsCard` | 2 | Agent performance metrics dashboard |
213
- | AgentTeamPanel | `ui/AgentTeamPanel` | 2 | Agent team members and statuses |
214
- | AgentTerminal | `ui/AgentTerminal` | 2 | Terminal-style command output |
215
- | AgentTimeline | `ui/AgentTimeline` | 2 | Timeline of agent actions |
216
- | ApprovalCard | `ui/ApprovalCard` | 2 | Human-in-the-loop approval/reject |
217
- | ArtifactCard | `ui/ArtifactCard` | 2 | Generated artifacts display |
218
- | ChatActions | `ui/ChatActions` | 2 | Quick-action buttons for chat messages |
219
- | ChatBranch | `ui/ChatBranch` | 2 | Conversation branching and fork navigation |
220
- | ChatChainOfThought | `ui/ChatChainOfThought` | 2 | Step-by-step reasoning display |
221
- | ChatConfirmation | `ui/ChatConfirmation` | 2 | Action confirmation dialog in chat |
222
- | ChatGreeting | `ui/ChatGreeting` | 2 | Welcome greeting for chat sessions |
223
- | ChatMessage | `ui/ChatMessage` | 2 | Core chat message with avatar, content, actions |
224
- | ChatPlan | `ui/ChatPlan` | 2 | Collapsible plan card with streaming title |
225
- | ChatPromptInput | `ui/ChatPromptInput` | 2 | Chat text input with keyboard handling |
226
- | ChatPromptInputAttachments | `ui/ChatPromptInputAttachments` | 2 | File attachment support for chat input |
227
- | ChatQueue | `ui/ChatQueue` | 2 | Task queue with collapsible sections |
228
- | ChatReasoning | `ui/ChatReasoning` | 2 | AI reasoning display with auto-close |
229
- | ChatResponse | `ui/ChatResponse` | 2 | Streaming markdown response renderer |
230
- | ChatShimmer | `ui/ChatShimmer` | 2 | Loading shimmer placeholder for chat |
231
- | ChatSources | `ui/ChatSources` | 2 | Source citations panel with inline citation |
232
- | ChatSuggestion | `ui/ChatSuggestion` | 2 | Suggested follow-up prompt chips |
233
- | ChatThinkingMessage | `ui/ChatThinkingMessage` | 2 | Animated thinking state message |
234
- | ChatToolCall | `ui/ChatToolCall` | 2 | Tool call lifecycle wrapper with state management |
235
- | CodeDiffViewer | `ui/CodeDiffViewer` | 2 | Side-by-side or unified diff view |
236
- | ContextMeter | `ui/ContextMeter` | 2 | Context window usage visualization |
237
- | Conversation | `ui/Conversation` | 2 | Scroll-aware conversation container with auto-scroll |
238
- | DiffStat | `ui/DiffStat` | 2 | Diff statistics display (additions/deletions) |
239
- | HandoffIndicator | `ui/HandoffIndicator` | 2 | Agent-to-agent task handoff |
240
- | MemoryInspector | `ui/MemoryInspector` | 2 | Agent memory/state inspector |
241
- | SourceCitation | `ui/SourceCitation` | 2 | Cited sources with links |
242
- | ThinkingIndicator | `ui/ThinkingIndicator` | 2 | Animated "thinking..." for agent reasoning |
243
- | ToolCallCard | `ui/ToolCallCard` | 2 | Tool invocation with name, args, status, result |
244
- | WorkflowGraph | `ui/WorkflowGraph` | 2 | Visual graph of workflow steps |
245
-
246
- ---
247
-
248
- ## Multi-Step / Stepper
249
-
250
- All in `src/components/ui/stepper/`. Distinct from FormWizard.
251
-
252
- | Component | Path | Tier | Notes |
253
- |-----------|------|------|-------|
254
- | Step | `ui/stepper/step` | 1 | Individual step |
255
- | Stepper | `ui/stepper/stepper` | 1 | Root stepper, exports useStepper hook |
256
-
257
- ---
258
-
259
- ## Miscellaneous
260
-
261
- | Component | Path | Tier | Notes |
262
- |-----------|------|------|-------|
263
- | BrandIcons | `ui/BrandIcons` | 1 | Google, GitHub brand SVGs |
264
- | ButtonGroup | `ui/ButtonGroup` | 4 | Grouped button layout (use flex+gap) |
265
- | Item | `ui/Item` | 4 | Generic list item (too generic) |
266
- | Logo | `ui/Logo` | 1 | Brand logo component |
267
- | NotificationCenter | `ui/NotificationCenter` | 4 | Overlaps with Sonner/Toast |
268
- | SkipNav | `ui/SkipNav` | 1 | Accessibility skip navigation |
269
- | Sonner | `ui/Sonner` | 1 | Sonner toast integration |
270
- | StyleToggle | `ui/StyleToggle` | 1 | Arctic/bloom style switcher |
271
- | ThemeToggle | `ui/ThemeToggle` | 1 | Light/dark/system theme switcher |
272
- | Toast | `ui/Toast` | 1 | Toast notification primitive |
273
- | Toaster | `ui/Toaster` | 1 | Toast container and renderer |
274
- | VisuallyHidden | `ui/VisuallyHidden` | 1 | Screen-reader-only content |
275
-
276
- ---
277
-
278
- ## Tier Summary
279
-
280
- | Tier | Count | Usage |
281
- |------|-------|-------|
282
- | 1 (Core) | ~76 | 3+ recipes, always available |
283
- | 2 (Domain) | ~61 | Agentic, charts, AI/voice, checkout |
284
- | 3 (Decorative) | ~24 | Marketing/showcase only |
285
- | 4 (Deprecation) | ~14 | Evaluate for removal/consolidation |
286
-
287
- Use `npm run docs:inventory` for filesystem-backed inventory output.
@@ -1,169 +0,0 @@
1
- # Icons Catalog
2
-
3
- Two-tier animated icon system: **109 hand-crafted** + **290 factory-wrapped** = **399 total**.
4
-
5
- - **Hand-crafted** (`src/components/ui/icons/*.tsx`): Custom SVG path animations using `motion/react` with imperative `startAnimation`/`stopAnimation` handles. Sourced from [lucide-animated.com](https://lucide-animated.com).
6
- - **Factory-wrapped** (`src/components/ui/icons/lucide-wrapped.tsx`): Full Lucide icon catalog wrapped via `createAnimatedIcon()`. These animate on hover but lack custom path transitions.
7
-
8
- All icons import from `@vadimcomanescu/nadicode-design-system/icons` (unified re-export via `index.ts`).
9
-
10
- ## Usage
11
-
12
- ```tsx
13
- import { SettingsIcon, BellIcon, SearchIcon } from "@vadimcomanescu/nadicode-design-system/icons"
14
-
15
- <SettingsIcon size={16} />
16
- <BellIcon size={20} />
17
- <SearchIcon size={24} /> // default size is 28
18
- ```
19
-
20
- ## Rules
21
-
22
- - **NEVER import directly from `lucide-react`** in component files. Enforced by `no-static-lucide-imports.test.ts`.
23
- - Hand-crafted icons contain inline SVG path data. They do NOT import from `lucide-react`.
24
- - Factory-wrapped icons use Lucide's React components internally via `createAnimatedIcon`.
25
-
26
- ## Hand-Crafted Icons (109)
27
-
28
- Premium animated icons with custom per-path motion.
29
-
30
- | Export Name | File | Common Use |
31
- | --- | --- | --- |
32
- | ActivityIcon | `activity.tsx` | Activity feed |
33
- | AlertCircleIcon | `alert-circle.tsx` | Error alert |
34
- | AlertTriangleIcon | `alert-triangle.tsx` | Warning |
35
- | ArrowDownIcon | `arrow-down.tsx` | Directional |
36
- | ArrowDownRightIcon | `arrow-down-right.tsx` | Directional |
37
- | ArrowLeftIcon | `arrow-left.tsx` | Back navigation |
38
- | ArrowRightIcon | `arrow-right.tsx` | Forward navigation |
39
- | ArrowUpIcon | `arrow-up.tsx` | Directional |
40
- | ArrowUpRightIcon | `arrow-up-right.tsx` | External link |
41
- | BellIcon | `bell.tsx` | Notifications |
42
- | BoldIcon | `bold.tsx` | Text formatting |
43
- | BotIcon | `bot.tsx` | AI agent |
44
- | CalendarIcon | `calendar.tsx` | Date picker, events |
45
- | ChartBarIcon | `chart-bar.tsx` | Analytics |
46
- | ChartLineIcon | `chart-line.tsx` | Trends |
47
- | ChartPieIcon | `chart-pie.tsx` | Pie charts |
48
- | CheckIcon | `check.tsx` | Confirmations |
49
- | CheckCircleIcon | `check-circle.tsx` | Success state |
50
- | ChevronDownIcon | `chevron-down.tsx` | Expand, dropdown |
51
- | ChevronLeftIcon | `chevron-left.tsx` | Previous |
52
- | ChevronRightIcon | `chevron-right.tsx` | Next |
53
- | ChevronUpIcon | `chevron-up.tsx` | Collapse |
54
- | ChevronsUpDownIcon | `chevrons-up-down.tsx` | Sort, reorder |
55
- | CircleIcon | `circle.tsx` | Status indicator |
56
- | ClipboardIcon | `clipboard.tsx` | Copy, paste |
57
- | ClockIcon | `clock.tsx` | Time |
58
- | CloudIcon | `cloud.tsx` | Cloud services |
59
- | Code2Icon | `code-2.tsx` | Source code |
60
- | CopyIcon | `copy.tsx` | Copy to clipboard |
61
- | CornerDownLeftIcon | `corner-down-left.tsx` | Reply, enter |
62
- | CreditCardIcon | `credit-card.tsx` | Payments |
63
- | DatabaseIcon | `database.tsx` | Database |
64
- | DollarSignIcon | `dollar-sign.tsx` | Pricing, money |
65
- | DotIcon | `dot.tsx` | Bullet, separator |
66
- | DownloadIcon | `download.tsx` | Download |
67
- | EllipsisIcon | `ellipsis.tsx` | More actions |
68
- | ExternalLinkIcon | `external-link.tsx` | External link |
69
- | EyeIcon | `eye.tsx` | Show, visibility |
70
- | EyeOffIcon | `eye-off.tsx` | Hide, toggle visibility |
71
- | FileIcon | `file.tsx` | Files, documents |
72
- | FilterIcon | `filter.tsx` | Filtering |
73
- | FolderIcon | `folder.tsx` | Folders, files |
74
- | GithubIcon | `github.tsx` | GitHub link |
75
- | GlobeIcon | `globe.tsx` | International, web |
76
- | GripVerticalIcon | `grip-vertical.tsx` | Drag handle |
77
- | HomeIcon | `home.tsx` | Home, dashboard |
78
- | ImageIcon | `image.tsx` | Images, media |
79
- | InfoIcon | `info.tsx` | Information |
80
- | ItalicIcon | `italic.tsx` | Text formatting |
81
- | KeyIcon | `key.tsx` | Authentication, API keys |
82
- | LaptopIcon | `laptop.tsx` | Desktop device |
83
- | LayersIcon | `layers.tsx` | Stacks, layers |
84
- | LayoutDashboardIcon | `layout-dashboard.tsx` | Dashboard |
85
- | LinkIcon | `link.tsx` | Hyperlinks |
86
- | LinkedinIcon | `linkedin.tsx` | LinkedIn link |
87
- | ListIcon | `list.tsx` | Lists |
88
- | LoaderIcon | `loader.tsx` | Loading |
89
- | LoaderCircleIcon | `loader-circle.tsx` | Loading spinner |
90
- | LockIcon | `lock.tsx` | Security, locked state |
91
- | LogInIcon | `log-in.tsx` | Sign in |
92
- | LogOutIcon | `log-out.tsx` | Sign out |
93
- | MailIcon | `mail.tsx` | Email |
94
- | MenuIcon | `menu.tsx` | Hamburger menu |
95
- | MicIcon | `mic.tsx` | Voice input, recording |
96
- | MicOffIcon | `mic-off.tsx` | Muted mic |
97
- | MinusIcon | `minus.tsx` | Remove, collapse |
98
- | MonitorIcon | `monitor.tsx` | Display, screen |
99
- | MoonIcon | `moon.tsx` | Dark mode |
100
- | PackageIcon | `package.tsx` | Packages, shipping |
101
- | Package2Icon | `package-2.tsx` | Alt package icon |
102
- | PanelLeftIcon | `panel-left.tsx` | Sidebar toggle |
103
- | PaperclipIcon | `paperclip.tsx` | Attachments |
104
- | PauseIcon | `pause.tsx` | Pause media |
105
- | PencilIcon | `pencil.tsx` | Edit |
106
- | PlayIcon | `play.tsx` | Play media |
107
- | PlusIcon | `plus.tsx` | Add, create |
108
- | ReceiptIcon | `receipt.tsx` | Billing, receipts |
109
- | RefreshCwIcon | `refresh-cw.tsx` | Refresh, sync |
110
- | ReplyIcon | `reply.tsx` | Reply |
111
- | RocketIcon | `rocket.tsx` | Launch, deploy |
112
- | SaveIcon | `save.tsx` | Save |
113
- | SearchIcon | `search.tsx` | Search fields |
114
- | SendIcon | `send.tsx` | Send message |
115
- | SettingsIcon | `settings.tsx` | Settings, preferences |
116
- | Settings2Icon | `settings-2.tsx` | Alt settings |
117
- | ShareIcon | `share.tsx` | Share |
118
- | ShieldIcon | `shield.tsx` | Security |
119
- | ShieldCheckIcon | `shield-check.tsx` | Security verified |
120
- | SmartphoneIcon | `smartphone.tsx` | Mobile device |
121
- | SnowflakeIcon | `snowflake.tsx` | Arctic style, winter |
122
- | SortIcon | `sort.tsx` | Sorting |
123
- | SparklesIcon | `sparkles.tsx` | AI, magic, premium |
124
- | StarIcon | `star.tsx` | Favorites, rating |
125
- | StopIcon | `stop.tsx` | Stop media |
126
- | SunIcon | `sun.tsx` | Light mode |
127
- | TableIcon | `table.tsx` | Data tables |
128
- | TerminalIcon | `terminal.tsx` | Code, CLI |
129
- | ThumbsDownIcon | `thumbs-down.tsx` | Dislike |
130
- | ThumbsUpIcon | `thumbs-up.tsx` | Like |
131
- | Trash2Icon | `trash-2.tsx` | Delete |
132
- | TwitterIcon | `twitter.tsx` | Twitter/X link |
133
- | UnderlineIcon | `underline.tsx` | Text formatting |
134
- | UploadIcon | `upload.tsx` | File upload |
135
- | UserIcon | `user.tsx` | User profile |
136
- | UsersIcon | `users.tsx` | Team, groups |
137
- | WrenchIcon | `wrench.tsx` | Tools, configuration |
138
- | XIcon | `x.tsx` | Close, dismiss |
139
- | XCircleIcon | `x-circle.tsx` | Error, cancel |
140
- | ZapIcon | `zap.tsx` | Power, performance |
141
-
142
- ## Factory-Wrapped Icons (290)
143
-
144
- Standard Lucide icons wrapped with `createAnimatedIcon()` for consistent hover behavior. All export as `<Name>Icon` and are available from `@vadimcomanescu/nadicode-design-system/icons`.
145
-
146
- For the full list, see `src/components/ui/icons/lucide-wrapped.tsx`. Representative icons include: AlarmClockIcon, AlignLeftIcon, AnchorIcon, ApertureIcon, ArchiveIcon, ArrowBigDownIcon, AtSignIcon, AwardIcon, BadgeCheckIcon, BanIcon, BanknoteIcon, BarChartIcon, BeakerIcon, BellDotIcon, BellOffIcon, BellRingIcon, BluetoothIcon, BookOpenIcon, BookmarkIcon, BoxIcon, BracesIcon, BriefcaseIcon, BugIcon, BuildingIcon, CalculatorIcon, CalendarCheckIcon, CalendarDaysIcon, CameraIcon, CircleAlertIcon, CircleCheckIcon, CodeIcon, CoinsIcon, CommandIcon, CompassIcon, CpuIcon, CrownIcon, FacebookIcon, FeatherIcon, FileCodeIcon, FileTextIcon, FlagIcon, FlameIcon, GaugeIcon, GemIcon, GiftIcon, GitBranchIcon, GlassesIcon, HammerIcon, HeartIcon, HeadphonesIcon, HighlighterIcon, HistoryIcon, HourglassIcon, InstagramIcon, KanbanIcon, LampIcon, LandmarkIcon, LanguagesIcon, LeafIcon, LightbulbIcon, LineChartIcon, LockKeyholeIcon, MapIcon, MapPinIcon, MegaphoneIcon, MessageCircleIcon, MessageSquareIcon, MicroscopeIcon, MoveIcon, MusicIcon, NetworkIcon, NotebookIcon, PaintbrushIcon, PaletteIcon, PartyPopperIcon, PenIcon, PenToolIcon, PercentIcon, PhoneIcon, PieChartIcon, PiggyBankIcon, PlugIcon, PodcastIcon, PowerIcon, PrinterIcon, PuzzleIcon, QrCodeIcon, RadioIcon, RedoIcon, RepeatIcon, RotateCcwIcon, RouteIcon, RssIcon, RulerIcon, ScaleIcon, ScanIcon, ScissorsIcon, ServerIcon, ShieldAlertIcon, ShieldOffIcon, ShoppingCartIcon, SirenIcon, SpeakerIcon, SquareIcon, StampIcon, StoreIcon, SunriseIcon, SunsetIcon, TagIcon, TargetIcon, TelescopeIcon, TicketIcon, TimerIcon, ToggleLeftIcon, TornadoIcon, TrashIcon, TrendingDownIcon, TrendingUpIcon, TrophyIcon, TvIcon, TwitchIcon, UmbrellaIcon, UndoIcon, UnlockIcon, UserCheckIcon, UserCogIcon, UserMinusIcon, UserPlusIcon, VideoIcon, VolumeIcon, WalletIcon, WandIcon, WatchIcon, WaypointsIcon, WebhookIcon, WifiIcon, WindIcon, YoutubeIcon.
147
-
148
- ## Adding a New Icon
149
-
150
- Two paths depending on quality requirements:
151
-
152
- ### Quick path — factory-wrapped
153
-
154
- Use when you need an icon quickly and custom animation is not required.
155
-
156
- 1. Open `src/components/ui/icons/lucide-wrapped.tsx`
157
- 2. Add the Lucide import at the top: `import { MyIcon } from 'lucide-react'`
158
- 3. Add an export line: `export const MyIconIcon = createAnimatedIcon(MyIcon, 'MyIconIcon')`
159
-
160
- No changes to `index.ts` needed — `lucide-wrapped.tsx` is already re-exported.
161
-
162
- ### Premium path — hand-crafted
163
-
164
- Use for icons that appear in high-visibility UI (nav, hero, primary actions) and benefit from custom per-path animation.
165
-
166
- 1. Find the icon on [lucide-animated.com](https://lucide-animated.com) and grab the animation code
167
- 2. Create `src/components/ui/icons/<icon-name>.tsx`
168
- 3. Adapt to match project pattern: `motion/react` animations, imperative handle with `startAnimation`/`stopAnimation`, `size` prop (see `sun.tsx` as reference)
169
- 4. Export from `src/components/ui/icons/index.ts`
@@ -1,49 +0,0 @@
1
- # Next.js Integration Guide
2
-
3
- Seed integrates into Next.js apps through installable package artifacts, not live repo-path links.
4
-
5
- ## Canonical Contract
6
-
7
- Use these in order:
8
-
9
- 1. `contract.md`, binary consumer rules
10
- 2. this guide, integration checklist
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
-
14
- ## Integration Checklist
15
-
16
- - install an exact released package version of `@vadimcomanescu/nadicode-design-system`, or a committed relative tarball fallback such as `file:.nadicode/packages/vadimcomanescu-nadicode-design-system-<version>.tgz`
17
- - never point `package.json` at a live repo directory such as `file:/absolute/path/to/nadicode-design-system`
18
- - import `@vadimcomanescu/nadicode-design-system/tokens.css` before `seed-palette.css`
19
- - use `@vadimcomanescu/nadicode-design-system/tailwind` in `tailwind.config.*`
20
- - use `@vadimcomanescu/nadicode-design-system/eslint-config` and `@vadimcomanescu/nadicode-design-system/eslint-plugin` in `eslint.config.*`
21
- - mount `ThemeProvider` from `@vadimcomanescu/nadicode-design-system/theme-provider`
22
- - keep `scripts/ds-check.mjs` and `scripts/ds-update.mjs` as thin package delegates
23
-
24
- ## i18n
25
-
26
- The app owns `src/i18n/request.ts`, locale routing, `NextIntlClientProvider`, and app catalogs. Seed owns DS catalogs and merge helpers.
27
-
28
- Import DS catalogs from `@vadimcomanescu/nadicode-design-system/messages/<locale>`, keep app catalogs in `messages/<locale>.json`, merge both with `mergeSeedMessages()`, and do not copy DS catalog files into the app.
29
-
30
- ## Update Path
31
-
32
- After the first install, the stable consumer command is:
33
-
34
- ```bash
35
- npm run ds:update
36
- ```
37
-
38
- `ds:update` must reinstall the exact `@vadimcomanescu/nadicode-design-system` dependency already declared in `package.json`.
39
-
40
- That tarball path is the unpublished local fallback. Do not point the app at a live repo directory.
41
-
42
- ## Verification
43
-
44
- ```bash
45
- npm run ds:check
46
- npm run lint
47
- npx tsc --noEmit
48
- npm run build
49
- ```
@@ -1,88 +0,0 @@
1
- # Tokens Reference
2
-
3
- This file is a usage guide, not the raw source of token values.
4
-
5
- ## Source Of Truth
6
-
7
- - authored source: `src/lib/tokens.config.js`
8
- - generated repo CSS: `src/index.css`
9
- - shipped consumer CSS: `@vadimcomanescu/nadicode-design-system/tokens.css`
10
-
11
- When maintaining the DS, edit `src/lib/tokens.config.js` and regenerate through `npm run build:lib`. Do not hand-edit generated CSS.
12
-
13
- In consumer apps, normal branding work happens in `seed-palette.css`, not in the package token pipeline.
14
-
15
- ## CSS Variable Format
16
-
17
- Use space-separated RGB values, not hex:
18
-
19
- ```css
20
- /* correct */
21
- --color-background: 247 247 248;
22
-
23
- /* wrong */
24
- --color-background: #f7f7f8;
25
- ```
26
-
27
- This preserves Tailwind opacity modifiers such as `bg-background/50`.
28
-
29
- ## Allowed Semantic Utilities
30
-
31
- ### Backgrounds
32
-
33
- - `bg-background`
34
- - `bg-surface`
35
- - `bg-surface-hover`
36
- - `bg-surface-active`
37
- - `bg-surface-raised`
38
- - `bg-muted`
39
- - `bg-overlay/80`
40
-
41
- ### Text
42
-
43
- - `text-text-primary`
44
- - `text-text-secondary`
45
- - `text-text-tertiary`
46
- - `text-link`
47
-
48
- Do not use `text-foreground` or `text-muted-foreground`.
49
-
50
- ### Borders And Focus
51
-
52
- - `border-border`
53
- - `border-border-hover`
54
- - `border-border-subtle`
55
- - `ring-focus-ring` for default focus indication
56
- - `ring-accent` for selected or emphasized states
57
-
58
- Do not use `border-error`.
59
-
60
- ### Status
61
-
62
- - `bg-destructive`, `text-destructive`
63
- - `bg-success`, `text-success`
64
- - `bg-warning`, `text-warning`
65
- - `bg-info`, `text-info`
66
-
67
- ### Interactive
68
-
69
- - `bg-primary`
70
- - `bg-secondary`
71
- - `bg-accent`
72
- - `text-accent`
73
-
74
- ### Charts
75
-
76
- - `chart-1` through `chart-8`
77
-
78
- Use the exported chart tokens, not hardcoded hex values.
79
-
80
- ## Theme Notes
81
-
82
- - Arctic is the baseline jade and teal style across light and dark themes.
83
- - Bloom is the warm light-only style variant.
84
- - `--color-focus-ring` currently tracks the jade focus color in Arctic and the bloom-specific focus token in Bloom.
85
-
86
- ## Consumer Override Rule
87
-
88
- Consumers may override palette tokens in `seed-palette.css`. They should not change the package token catalog or copy package CSS into the app.