feat: migrate ConflictIndicator to JSON

This commit is contained in:
2026-01-21 05:02:38 +00:00
parent 3f2f698516
commit 61b64cb1df
33 changed files with 1803 additions and 25 deletions

View File

@@ -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-21T04:19:28.496Z",
"lastUpdated": "2026-01-21T04:44:15.096836Z",
"categories": {
"layout": "Layout and container components",
"input": "Form inputs and interactive controls",
@@ -1088,6 +1088,17 @@
"jsonCompatible": true,
"deleteOldTSX": true
},
{
"type": "ConditionalWrapper",
"name": "ConditionalWrapper",
"category": "layout",
"canHaveChildren": true,
"description": "Conditionally renders children or fallback based on condition prop",
"status": "supported",
"source": "atoms",
"jsonCompatible": true,
"deleteOldTSX": true
},
{
"type": "ConflictResolutionPage",
"name": "ConflictResolutionPage",
@@ -1179,15 +1190,15 @@
{
"type": "DataCard",
"name": "DataCard",
"category": "custom",
"canHaveChildren": false,
"description": "Custom data display card",
"category": "layout",
"canHaveChildren": true,
"description": "Data display card with icon, title, and description",
"status": "supported",
"source": "molecules",
"source": "atoms",
"jsonCompatible": true,
"metadata": {
"conversionPriority": "high",
"notes": "JSON-ready: presentational molecule with conditional rendering only; bindings supported in json-ui component types."
"notes": "JSON-based: presentational card with slot for children; icon rendering supported via custom transform."
}
},
{
@@ -1351,6 +1362,20 @@
"autoGenerated": true
}
},
{
"type": "DynamicText",
"name": "DynamicText",
"category": "display",
"canHaveChildren": false,
"description": "Text with dynamic formatting (number, currency, date, time, boolean)",
"status": "supported",
"source": "atoms",
"jsonCompatible": true,
"metadata": {
"conversionDate": "2026-01-21",
"notes": "JSON component with useFormatValue hook for formatting values"
}
},
{
"type": "Divider",
"name": "Divider",
@@ -1622,13 +1647,14 @@
"description": "Display component",
"status": "supported",
"source": "custom",
"jsonCompatible": false,
"jsonCompatible": true,
"metadata": {
"conversionDate": "2026-01-18",
"autoGenerated": true
"conversionDate": "2026-01-21",
"phase": "Batch C migration",
"autoGenerated": false
},
"load": {
"path": "@/components/FeatureToggleSettings",
"path": "@/lib/json-ui/json-components",
"export": "FeatureToggleSettings"
}
},
@@ -1694,6 +1720,16 @@
"source": "atoms",
"deleteOldTSX": true
},
{
"type": "FlexLayout",
"name": "FlexLayout",
"category": "layout",
"canHaveChildren": true,
"description": "Flexible box layout with direction, alignment, justify, gap, and wrap props",
"status": "supported",
"source": "atoms",
"jsonCompatible": true
},
{
"type": "Form",
"name": "Form",
@@ -1769,6 +1805,16 @@
"source": "atoms",
"deleteOldTSX": true
},
{
"type": "GridLayout",
"name": "GridLayout",
"category": "layout",
"canHaveChildren": true,
"description": "Responsive grid layout with responsive column configuration",
"status": "supported",
"source": "atoms",
"jsonCompatible": true
},
{
"type": "Heading",
"name": "Heading",
@@ -1865,6 +1911,20 @@
"autoGenerated": true
}
},
{
"type": "IconRenderer",
"name": "IconRenderer",
"category": "display",
"canHaveChildren": false,
"description": "Dynamic icon renderer using Phosphor icons",
"status": "supported",
"source": "atoms",
"jsonCompatible": true,
"metadata": {
"conversionDate": "2026-01-21",
"notes": "Pure JSON component - renders Phosphor icons dynamically by name"
}
},
{
"type": "IconButton",
"name": "IconButton",
@@ -2452,6 +2512,17 @@
"source": "ui",
"jsonCompatible": true
},
{
"type": "Panel",
"name": "Panel",
"category": "layout",
"canHaveChildren": true,
"description": "Container panel with optional header, title, description, and actions",
"status": "supported",
"source": "atoms",
"jsonCompatible": true,
"deleteOldTSX": true
},
{
"type": "PanelHeader",
"name": "PanelHeader",
@@ -2662,6 +2733,20 @@
"source": "atoms",
"jsonCompatible": true
},
{
"type": "RepeatWrapper",
"name": "RepeatWrapper",
"category": "layout",
"canHaveChildren": false,
"description": "Wrapper component for rendering arrays of items with custom render function",
"status": "supported",
"source": "atoms",
"jsonCompatible": true,
"metadata": {
"conversionPriority": "high",
"notes": "JSON-based: iteration component with useRepeatWrapper hook for array rendering and empty state handling."
}
},
{
"type": "RefreshCw",
"name": "RefreshCw",
@@ -4798,4 +4883,4 @@
"jsonCompatible": 226,
"coverage": "60%"
}
}
}