mirror of
https://github.com/johndoe6345789/low-code-react-app-b.git
synced 2026-04-24 13:44:54 +00:00
feat: migrate shadcn/ui components to JSON wrapper definitions (Phase 8)
Implemented JSON wrappers for 29 key shadcn/ui components, enabling JSON-based configuration for commonly-used library components. These stay as TSX internally but are now JSON-compatible. Components migrated: - Button: ShadcnButton - Badge: ShadcnBadge - Card family: ShadcnCard, ShadcnCardHeader, ShadcnCardTitle, ShadcnCardContent - Form inputs: ShadcnLabel, ShadcnInput, ShadcnTextarea, ShadcnCheckbox, ShadcnSwitch - Separator: ShadcnSeparator - ScrollArea: ShadcnScrollArea - Tabs family: ShadcnTabs, ShadcnTabsList, ShadcnTabsTrigger, ShadcnTabsContent - Dialog family: ShadcnDialog, ShadcnDialogContent, ShadcnDialogHeader, ShadcnDialogTitle - Select family: ShadcnSelect, ShadcnSelectTrigger, ShadcnSelectContent, ShadcnSelectItem - Slider: ShadcnSlider - Tooltip family: ShadcnTooltip, ShadcnTooltipTrigger, ShadcnTooltipContent Files created: - 14 TypeScript interface files in src/lib/json-ui/interfaces/ - 29 JSON definition files in src/components/json-definitions/ Updated exports in: - src/lib/json-ui/json-components.ts (29 new components) - src/lib/json-ui/interfaces/index.ts (14 new interfaces) Build: ✓ PASSED Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
"$schema": "./schemas/json-components-registry-schema.json",
|
||||
"version": "2.0.0",
|
||||
"description": "Registry of all components in the application",
|
||||
"lastUpdated": "2026-01-21T01:57:14.374Z",
|
||||
"lastUpdated": "2026-01-21T03:35:00.000Z",
|
||||
"categories": {
|
||||
"layout": "Layout and container components",
|
||||
"input": "Form inputs and interactive controls",
|
||||
@@ -4359,11 +4359,223 @@
|
||||
"type": "update",
|
||||
"source": "actions",
|
||||
"jsonCompatible": true
|
||||
},
|
||||
{
|
||||
"type": "ErrorPanelHeader",
|
||||
"name": "ErrorPanelHeader",
|
||||
"category": "custom",
|
||||
"canHaveChildren": false,
|
||||
"description": "Error panel header with action buttons",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"feature": "error-panel",
|
||||
"notes": "Reusable header component"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ErrorPanelEmptyState",
|
||||
"name": "ErrorPanelEmptyState",
|
||||
"category": "feedback",
|
||||
"canHaveChildren": false,
|
||||
"description": "Error panel empty state with conditional rendering",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"feature": "error-panel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "PWAUpdateSection",
|
||||
"name": "PWAUpdateSection",
|
||||
"category": "custom",
|
||||
"canHaveChildren": false,
|
||||
"description": "PWA update settings section",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"feature": "pwa-settings"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "PWACacheSection",
|
||||
"name": "PWACacheSection",
|
||||
"category": "custom",
|
||||
"canHaveChildren": false,
|
||||
"description": "PWA cache settings section",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"feature": "pwa-settings"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ConflictResolutionStats",
|
||||
"name": "ConflictResolutionStats",
|
||||
"category": "data",
|
||||
"canHaveChildren": false,
|
||||
"description": "Conflict resolution statistics cards",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"feature": "conflict-resolution"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "HowItWorksCard",
|
||||
"name": "HowItWorksCard",
|
||||
"category": "display",
|
||||
"canHaveChildren": false,
|
||||
"description": "Instructional card with numbered steps",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"feature": "data-binding-designer"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "SearchResults",
|
||||
"name": "SearchResults",
|
||||
"category": "display",
|
||||
"canHaveChildren": false,
|
||||
"description": "Search results list with categories",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"feature": "global-search"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "SearchEmptyState",
|
||||
"name": "SearchEmptyState",
|
||||
"category": "feedback",
|
||||
"canHaveChildren": false,
|
||||
"description": "Search empty state message",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"feature": "global-search"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ComprehensiveDemoHeader",
|
||||
"name": "ComprehensiveDemoHeader",
|
||||
"category": "display",
|
||||
"canHaveChildren": false,
|
||||
"description": "Feature demo header with gradient text",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"feature": "comprehensive-demo"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ComprehensiveDemoStatsRow",
|
||||
"name": "ComprehensiveDemoStatsRow",
|
||||
"category": "data",
|
||||
"canHaveChildren": false,
|
||||
"description": "Statistics cards for task tracking",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"feature": "comprehensive-demo"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ConfigCard",
|
||||
"name": "ConfigCard",
|
||||
"category": "custom",
|
||||
"canHaveChildren": false,
|
||||
"description": "Configuration input card",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"feature": "project-settings",
|
||||
"notes": "Reusable configuration pattern"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "StatusCard",
|
||||
"name": "StatusCard",
|
||||
"category": "feedback",
|
||||
"canHaveChildren": false,
|
||||
"description": "Status indicator card with icon",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"notes": "Reusable status pattern"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "InfoSection",
|
||||
"name": "InfoSection",
|
||||
"category": "display",
|
||||
"canHaveChildren": false,
|
||||
"description": "Information section with key-value pairs",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"notes": "Reusable info display pattern"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "ListHeader",
|
||||
"name": "ListHeader",
|
||||
"category": "display",
|
||||
"canHaveChildren": false,
|
||||
"description": "List header with count badge",
|
||||
"status": "supported",
|
||||
"source": "feature-components",
|
||||
"jsonCompatible": true,
|
||||
"metadata": {
|
||||
"conversionDate": "2026-01-21",
|
||||
"phase": "9",
|
||||
"notes": "Reusable list header pattern"
|
||||
}
|
||||
}
|
||||
],
|
||||
"statistics": {
|
||||
"total": 360,
|
||||
"jsonCompatible": 204,
|
||||
"coverage": "57%"
|
||||
"total": 373,
|
||||
"jsonCompatible": 223,
|
||||
"coverage": "60%"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user