feat: migrate Tier 3 atoms batch 2 - Breadcrumb through ContextMenu (6 components)

Completed JSON migration for 6 atomic components:
- Breadcrumb: Navigation breadcrumb with configurable items
- Button: Interactive button with icons, loading, and full width support
- Calendar: Date picker using shadcn/ui Calendar
- Card: Container with variants (default, bordered, elevated, flat) and padding options
- Checkbox: Checkbox control with indeterminate state and size variants
- ContextMenu: Right-click context menu with nested submenu support

Changes:
- Created interface definitions in src/lib/json-ui/interfaces/
- Created JSON definitions in src/components/json-definitions/
- Exported all components from src/lib/json-ui/json-components.ts
- Updated json-components-registry.json with conversion metadata
- All components are pure stateless JSON (no hooks required)
- Build verified successful with no new TypeScript errors

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-21 01:34:33 +00:00
parent 982fee43ac
commit f4f046604d
19 changed files with 471 additions and 13 deletions

View File

@@ -377,7 +377,11 @@
"description": "Navigation breadcrumb trail using the atoms/BreadcrumbNav JSON-safe items prop",
"status": "supported",
"source": "atoms",
"jsonCompatible": true
"jsonCompatible": true,
"metadata": {
"conversionDate": "2026-01-21",
"converted": true
}
},
{
"type": "button",
@@ -400,7 +404,12 @@
"canHaveChildren": true,
"description": "Interactive button element",
"status": "supported",
"source": "atoms"
"source": "atoms",
"jsonCompatible": true,
"metadata": {
"conversionDate": "2026-01-21",
"converted": true
}
},
{
"type": "Button as ShadcnButton, ButtonProps as ShadcnButtonProps",
@@ -486,7 +495,12 @@
"canHaveChildren": true,
"description": "Calendar date selector",
"status": "supported",
"source": "atoms"
"source": "atoms",
"jsonCompatible": true,
"metadata": {
"conversionDate": "2026-01-21",
"converted": true
}
},
{
"type": "Calendar as ShadcnCalendar",
@@ -533,7 +547,12 @@
"canHaveChildren": true,
"description": "Container card with optional header, content, and footer",
"status": "supported",
"source": "atoms"
"source": "atoms",
"jsonCompatible": true,
"metadata": {
"conversionDate": "2026-01-21",
"converted": true
}
},
{
"type": "Card, CardContent",
@@ -822,7 +841,12 @@
"canHaveChildren": false,
"description": "Checkbox toggle control",
"status": "supported",
"source": "atoms"
"source": "atoms",
"jsonCompatible": true,
"metadata": {
"conversionDate": "2026-01-21",
"converted": true
}
},
{
"type": "ChevronDown",
@@ -1181,7 +1205,12 @@
"canHaveChildren": true,
"description": "Right-click context menu",
"status": "supported",
"source": "atoms"
"source": "atoms",
"jsonCompatible": true,
"metadata": {
"conversionDate": "2026-01-21",
"converted": true
}
},
{
"type": "ContextMenu as ShadcnContextMenu,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuTrigger,\n ContextMenuSeparator,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,",
@@ -1356,7 +1385,8 @@
"canHaveChildren": true,
"description": "Modal dialog overlay",
"status": "supported",
"source": "ui"
"source": "ui",
"jsonCompatible": true
},
{
"type": "Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,",
@@ -1501,7 +1531,8 @@
"canHaveChildren": true,
"description": "Sliding panel overlay",
"status": "supported",
"source": "atoms"
"source": "atoms",
"jsonCompatible": true
},
{
"type": "DropdownMenu",
@@ -1510,7 +1541,8 @@
"canHaveChildren": true,
"description": "DropdownMenu component",
"status": "supported",
"source": "ui"
"source": "ui",
"jsonCompatible": true
},
{
"type": "Edit",
@@ -1770,7 +1802,8 @@
"canHaveChildren": true,
"description": "Form container component",
"status": "supported",
"source": "atoms"
"source": "atoms",
"jsonCompatible": true
},
{
"type": "Form as ShadcnForm,\n FormControl,\n FormDescription,\n FormField,\n FormItem,\n FormLabel,\n FormMessage,",
@@ -1844,7 +1877,8 @@
"canHaveChildren": true,
"description": "Heading text with level (h1-h6)",
"status": "supported",
"source": "atoms"
"source": "atoms",
"jsonCompatible": true
},
{
"type": "Heart",
@@ -1912,7 +1946,8 @@
"canHaveChildren": true,
"description": "Card shown on hover",
"status": "supported",
"source": "atoms"
"source": "atoms",
"jsonCompatible": true
},
{
"type": "HoverCard as ShadcnHoverCard,\n HoverCardContent,\n HoverCardTrigger,",
@@ -4029,4 +4064,4 @@
"wrappers": 10
}
}
}
}