Skip to content

feat(venuscn): 25 new components — full primitive coverage for dashboards, json-render, LLM readiness#3

Open
ellisedwards wants to merge 27 commits into
mainfrom
feat/venuscn-component-expansion
Open

feat(venuscn): 25 new components — full primitive coverage for dashboards, json-render, LLM readiness#3
ellisedwards wants to merge 27 commits into
mainfrom
feat/venuscn-component-expansion

Conversation

@ellisedwards
Copy link
Copy Markdown
Collaborator

Summary

Expands VenusCN from 39 → 64 components, covering all primitives needed for dashboard building, json-render integration, and LLM-generated UI.

All components match Venus legacy visual styling (colors, spacing, border-radius, typography) but use clean VenusCN architecture (Radix primitives, Tailwind, forwardRef, full TypeScript interfaces with JSDoc).

New Components (25)

Tier 1 — Basics

  • Typography — h1-h6, p, small, label, code variants with weight/color props
  • Stack — Flex layout with direction, gap, align, justify
  • Breadcrumb — Navigation hierarchy with separator, link styling
  • Toast — Success/error/warning/info notifications with progress bar
  • Popover — Contextual overlay (Radix)
  • Label — Form label with required asterisk
  • Separator — Horizontal/vertical divider
  • Icon — Lucide icon wrapper with 80 curated icons, sm/md/lg sizes

Tier 2 — Dashboard / Data

  • EmptyState — Centered placeholder with icon, title, description, action
  • Accordion — Expandable sections (Radix)
  • Stat — Metric display with value, label, trend indicator
  • AvatarGroup — Stacked avatars with overflow count
  • Pagination — Page navigation with previous/next
  • Command — Searchable command palette (⌘K)
  • ContextMenu — Right-click menu (Radix)
  • DropdownMenu — Action menu from trigger (Radix)
  • DatePicker — Styled native date input
  • Collapsible — Show/hide toggle (Radix)

Tier 3 — LLM / json-render Ready

  • Form — Form wrapper with context
  • List / ListItem — Structured list with icon, title, description, action slots
  • Callout — Full-width banner with variant colors and border-left accent
  • CodeBlock — Syntax display with dark theme, line numbers
  • Switch — Accessible toggle with label and description
  • DataTable — Generic sortable table wrapping existing Table compound
  • Chart — Lightweight bar/line charts using CSS + SVG, Venus chart tokens

Test plan

  • TypeScript passes (npx tsc --noEmit)
  • All exports wired in index.ts
  • Visual review of key components in a test app
  • Verify Venus token usage matches legacy visual treatment

🤖 Generated with Claude Code

ellisedwards and others added 26 commits April 28, 2026 17:33
…ination, Command, ContextMenu, DropdownMenu, DatePicker, Collapsible

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…, Label, Separator, Icon

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ut, CodeBlock, Switch, DataTable, Chart

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds /comparison gallery page rendering all 25 new VenusCN components
(Typography, Stack, Breadcrumb, Toast, Popover, Label, Separator, Icon,
EmptyState, Accordion, Stat, AvatarGroup, Pagination, Command, ContextMenu,
DropdownMenu, DatePicker, Collapsible, Form, List, Callout, CodeBlock,
Switch, DataTable, Chart) in a split layout with legacy Venus reference notes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…rison

Replace invalid description= props with fallbackText= on LegacyPane; wire Accordion to components-accordion--default Storybook iframe. Breadcrumb, Toast, Popover, and Icon were already correctly mapped.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…mptyState, Form, ListItem, ToggleSwitch, Table, DatePicker, Dropdown, Notification
…ls + specific fallback reasons

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…, Toast matches Notification (exact variant colors)
… vertical padding, 17px icon size from computed styles
…ed white SVG icons, 13px/20px text, 10px margin-left, exact icon column dimensions
…by-side

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Adds a fixed pill toggle at the bottom-center of the viewport.
Switches the 2-column grid to full-width single-column; selecting
VenusCN or Legacy Venus shows only that pane. Removes the per-pane
labels since the toggle handles context.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…orts

- Replace hardcoded hex colors with token classes across 15 components
  (pagination, data-table, accordion, command, switch, date-picker, chart,
  empty-state, list, dropdown-menu, context-menu, typography, avatar-group,
  breadcrumb, stat) — dark mode now works for all components
- Add clarifying comments to tokens.css dual system (`:root` HSL for
  Radix/shadcn compat, `@theme` hex as primary source), remove redundant
  manual utility classes
- Fix comparison page to use correct VenusCN API: Table bordered with
  StatusPill/Tag/TableActionButton, Checkbox/Radio/Toggle built-in label
  props, Pill variants, Tag removable, Dropdown v2, Button sizes
- Fix ESLint (install missing deps), add Prettier config + format scripts
- Add Vitest + testing-library: 14 test files, 123 tests covering Button,
  Input, Table, Dropdown, Toggle, Checkbox, Radio, Tabs, Dialog, Select,
  Accordion, Callout, Pagination, Card
- Per-component exports via tsup multi-entry + wildcard package.json
  exports (import from '@contentstack/venuscn/button' etc.)
- README: add 25 missing components, variant guidance, dark mode section

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ellisedwards ellisedwards force-pushed the feat/venuscn-component-expansion branch from 74fdc69 to 9a5e52c Compare April 29, 2026 02:10
- Remove default `border` from Card (ghost border in applet mode)
- Add SimpleTabs: flat wrapper taking items[] array instead of compound children
- Add SimpleAccordion: flat wrapper taking items[] array
- Add accordion @Keyframes and --animate-accordion-* tokens to tokens.css
  (were only defined in demo app globals.css)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant