Added 3 additional JSON component definitions and interfaces:
- ComponentTreeDemoPage: Demo page for component tree visualization
- JsonFlaskDesigner: Designer for Flask app config using JSON
- JsonStyleDesigner: Designer for styling config using JSON
Changes:
- Created 2 JSON definitions in src/components/json-definitions/
- Created 3 TypeScript interfaces in src/lib/json-ui/interfaces/
- Updated interfaces/index.ts to export all new interfaces
- Updated json-components.ts exports for all 3 new components
- Updated json-components-registry.json with 3 new entries
- Updated registry statistics: 373 → 376 total, 223 → 226 JSON-compatible
Build status: PASS ✓
All components verified and building successfully.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Completed migration of Accordion, FileUpload, Image, Menu, and Popover
from TypeScript to JSON-driven architecture. All 5 atoms now:
- Use JSON definitions in src/components/json-definitions/
- Have TypeScript interfaces in src/lib/json-ui/interfaces/
- Are exported from src/lib/json-ui/json-components.ts
- Are marked as jsonCompatible: true in registry
- Have all hooks registered and available
Migration coverage increased to 58.2% (209/359 components).
All builds passing with zero audit issues.
Hooks registered:
- useAccordion
- useFileUpload
- useImageState
- useMenuState
- usePopoverState
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Removed deleted EditorToolbar and MonacoEditorPanel from CodeEditor
- Fixed SearchBar import in ComprehensiveDemoTaskList (replaced with Input)
- Updated AtomicComponentDemo to remove missing Grid component import
- Fixed atoms/index.ts to export only available JSON components
- Re-added Container component support (JSON definition exists)
- All build errors resolved, production build passes successfully
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
All component index files (atoms, molecules, organisms) have been verified
to correctly export only existing TSX files after the massive deletion of
141 duplicate components.
Verification Summary:
- Atoms: 27 TSX exports + JSON-UI imports ✓
- Molecules: 8 TSX exports + 1 function export + JSON-UI imports ✓
- Organisms: 6 TSX exports + 1 root export + JSON-UI imports ✓
All files verified to exist, no broken imports detected.
Build: PASSED (9.30s)
Audit: 68 remaining duplicates, 11 potential conversions identified
No changes needed to index files - they were already cleaned during
the previous TSX deletion commits.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Delete 7 organisms that have JSON equivalents and are no longer needed:
- AppHeader (routes to @/lib/json-ui/json-components)
- EmptyCanvasState (routes to JSON)
- NavigationMenu (routes to JSON with useNavigationMenu hook)
- PageHeader (routes to JSON)
- SchemaCodeViewer (routes to JSON)
- ToolbarActions (routes to JSON)
- TreeListPanel (routes to JSON)
Updated imports in 2 files to use JSON versions:
- AppMainPanel: AppHeader from json-components
- AppLayout: NavigationMenu from json-components
Remaining organisms (6):
- SchemaEditorLayout, SchemaEditorCanvas, SchemaEditorPropertiesPanel
- SchemaEditorSidebar, SchemaEditorStatusBar, SchemaEditorToolbar
(These don't have JSON equivalents yet)
Build: passing ✓
Component types: 343 ✓
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Deleted molecules now using JSON-ui implementations:
- AppBranding, CodeExplanationDialog, ComponentBindingDialog
- DataSourceCard, DataSourceEditorDialog, GitHubBuildStatus
- LazyBarChart, LazyD3BarChart, LazyLineChart
- NavigationGroupHeader, SaveIndicator, StorageSettings
Updated src/components/molecules/index.ts to import these from
@/lib/json-ui/json-components instead of TSX files.
Updated src/components/CodeEditor.tsx to import CodeExplanationDialog
from json-components.
Organisms still depend on some molecules (CanvasRenderer, ComponentPalette,
ComponentTree, PropertyEditor, etc) so those remain as TSX.
Build passes successfully with no errors.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Migrated EmptyCanvasState, SchemaCodeViewer, ToolbarActions, and AppHeader
from TSX to JSON-based components. These are display-focused organisms with
no complex state management requirements.
Changes:
- Create JSON definitions for 4 organisms in src/components/json-definitions/
- Create TypeScript interfaces in src/lib/json-ui/interfaces/
- Add exports to src/lib/json-ui/json-components.ts
- Update interfaces/index.ts to export new interfaces
- Registry entries already marked as jsonCompatible: true
All organisms are pure JSON components (no custom hooks needed):
- EmptyCanvasState: Display component with optional action buttons
- SchemaCodeViewer: Display component showing JSON schema with tabs
- ToolbarActions: Flex container with conditional toolbar buttons
- AppHeader: Complex header layout with multiple sub-components
Build passing with no errors.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Converted AppBranding, DataSourceCard, CodeExplanationDialog, ComponentPalette, and CanvasRenderer from TSX to JSON-based architecture.
Changes:
- Created JSON definitions in src/components/json-definitions/
- Created TypeScript interfaces in src/lib/json-ui/interfaces/
- Added exports to src/lib/json-ui/json-components.ts
- Updated json-components-registry.json with 5 new components
- Updated registry statistics (total: 347, molecules: 50, jsonCompatible: 124)
All components use createJsonComponent for pure JSON rendering without hooks.
Build passes with no errors.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Updated DisplayTab.tsx to use Breadcrumb instead of BreadcrumbNav
- Updated atoms/index.ts to re-export JSON components that were previously unavailable from atoms module (Notification, ProgressBar, Pulse, etc.)
- Fixed build errors from missing component exports by consolidating exports from json-components module
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Created JSON interface files: PageHeader, ProgressBar, Pulse, QuickActionButton, SearchInput, SeedDataStatus, Sparkle
- Created JSON definitions for all 12 components with full bindings
- Updated json-components.ts with imports and exports for new components
- Updated interfaces/index.ts to export new interface types
- Updated json-components-registry.json marking components as migrated and jsonCompatible
- Deleted 12 legacy TSX files from src/components/atoms/
- Updated atom imports where the deleted components were used
This completes the migration of the second batch of atoms, moving stateless UI components to JSON-driven architecture.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Migrated the following 12 atoms to JSON:
- DatePicker
- DetailRow
- Divider
- Drawer
- EmptyMessage
- ErrorBadge
- FileIcon
- Form
- FormField
- GlowCard
- Heading
- HelperText
Created JSON definitions in src/components/json-definitions/
Created TypeScript interfaces in src/lib/json-ui/interfaces/
Exported all 12 components from src/lib/json-ui/json-components.ts
Updated src/lib/json-ui/interfaces/index.ts with new exports
Migrate the following components from TSX to JSON-driven architecture:
- Slider - range input control with label and value display
- Spinner - rotating loading indicator with Phosphor icons
- StatusIcon - saved/synced status indicators
- StepIndicator - step-by-step progress display
- Stepper - numbered step progression indicator
- Switch - toggle control with optional label
- Table - data table with columns and row handling
- Tabs - tabbed navigation with active state
- Tag - inline tag/badge with optional remove button
- TextArea - multiline text input with error state
- TextGradient - gradient text effect component
- TextHighlight - highlighted/emphasized text span
- Timeline - vertical timeline with status indicators
- Timestamp - date/time display with relative formatting
- Toggle - simple toggle switch control
- Tooltip - popover tooltip with positioning
Created:
- 17 TypeScript interface files in src/lib/json-ui/interfaces/
- 17 JSON definition files in src/components/json-definitions/
- Updated json-components.ts with imports and exports
- Updated json-components-registry.json to mark components as jsonCompatible
All components are pure JSON with no custom hooks required (stateless rendering).
Build successfully completes with no errors.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
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>
Converts 8 atom components from TSX to JSON-driven architecture:
- ActionButton: Action trigger with optional tooltip
- ActionCard: Interactive card with icon and description
- ActionIcon: Icon mapper for common actions
- Alert: Variant-based alert notifications
- AppLogo: Branding logo component
- Avatar: User profile images with fallbacks
- AvatarGroup: Grouped avatar display with overflow
- Badge: Status and count indicators
Changes:
- Created interface files for all 8 components in src/lib/json-ui/interfaces/
- Created JSON definitions in src/components/json-definitions/
- Updated json-components.ts with imports and pure JSON exports
- Updated interfaces/index.ts with new exports
- Updated json-components-registry.json to mark all as jsonCompatible
All components are stateless pure JSON implementations using createJsonComponent.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- Create JSON definition in src/components/json-definitions/data-source-manager.json
- Create TypeScript interface in src/lib/json-ui/interfaces/data-source-manager.ts
- Create custom hook useDataSourceManagerState in src/hooks/use-data-source-manager-state.ts
- Register hook in src/lib/json-ui/hooks-registry.ts
- Export DataSourceManager from src/lib/json-ui/json-components.ts
- Update imports in src/components/DataBindingDesigner.tsx
- Remove legacy TSX files and sub-components
- Update exports in src/components/organisms/index.ts
- Add hook export in src/hooks/index.ts
DataSourceManager now uses JSON-driven architecture with custom hooks for state management.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>