Commit Graph

70 Commits

Author SHA1 Message Date
61b64cb1df feat: migrate ConflictIndicator to JSON 2026-01-21 05:02:38 +00:00
22d45d0257 feat: migrate special and utility components to JSON (Phase 13)
- Migrated 9 special utility components to JSON definitions
- Created JSON wrappers for: PreloadIndicator, PWAUpdatePrompt, ConflictIndicator, FileExplorer, GlobalSearch
- Created JSON wrappers for: JSONFlaskDesigner, JSONStyleDesigner, ComponentTreeDemoPage
- Created JSON wrappers for: JSONConversionShowcase, JSONLambdaDesigner, JSONModelDesigner, JSONWorkflowDesigner, JSONComponentTreeManager, SassStylesShowcase
- Added corresponding interfaces in src/lib/json-ui/interfaces/
- Updated json-components.ts exports
- Updated interfaces/index.ts
- Registry entries: 392 → 395
- JSON definitions: 225 → 234
- Coverage: 57% → 59%

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-21 04:26:05 +00:00
e050a30cb6 feat: migrate page components and layouts to JSON (Phase 12)
Migrated 20 page-level and layout components to JSON-based architecture:
- SchemaEditorPage, KeyboardShortcutsDialog, PreloadIndicator
- PWA components: PWAStatusBar, PWAUpdatePrompt, PWAInstallPrompt
- UI components: ConflictCard, ConflictIndicator, ErrorPanel, PreviewDialog
- Page templates: NotFoundPage, GlobalSearch
- Demo pages: AtomicComponentShowcase, JSONUIShowcasePage, JSONDemoPage
  DashboardDemoPage, ComprehensiveDemoPage
- Feature components: TemplateExplorer, ProjectManager, StorageSettingsPanel

Created JSON definitions and interfaces for all components. Updated registry
to include 19 new entries (one was duplicate). All components now available
as pure JSON exports via json-components.ts.

Coverage improvements:
- JSON exports: 203 → 224 (+21 components)
- JSON definitions: 204 → 225 (+21 files)
- Registry entries: 373 → 392 (+19 entries)

Build passes with no errors. All page components now use JSON-driven
architecture instead of TSX.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-21 04:21:44 +00:00
d5e118a1cf feat: migrate reusable application feature components to JSON (Phase 9)
Migrated 14 reusable feature components to JSON architecture:

Error Handling:
- ErrorPanelHeader: header with action buttons and badges
- ErrorPanelEmptyState: conditional empty state rendering

PWA Settings:
- PWAUpdateSection: update notification card
- PWACacheSection: cache management settings

Conflict Resolution:
- ConflictResolutionStats: statistics cards grid

Feature Components:
- HowItWorksCard: instructional step cards
- SearchResults: search results display with categories
- SearchEmptyState: empty search state

Comprehensive Demo:
- ComprehensiveDemoHeader: gradient title header
- ComprehensiveDemoStatsRow: task statistics cards

Reusable Patterns:
- ConfigCard: configuration input card
- StatusCard: status indicator card
- InfoSection: key-value information display
- ListHeader: list header with count badge

Changes:
- Created 14 JSON definitions in src/components/json-definitions/
- Created 14 TypeScript interfaces in src/lib/json-ui/interfaces/
- Exported all components from json-components.ts
- Updated json-components-registry.json (373 total, 223 JSON-compatible)
- Updated json-ui-component-types.ts

Features extracted from:
- error-panel, pwa-settings, conflict-resolution, data-binding-designer
- global-search, comprehensive-demo, project-settings

Build status: PASS ✓

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-21 04:09:48 +00:00
d180d59ba4 feat: delete all 62 remaining duplicate TSX files (Phase 6 complete)
Phase 6 Achievements:
- Deleted 62 duplicate TSX files with JSON equivalents (44 atoms + 14 molecules + 4 organisms)
- Added 27 missing component exports to json-components.ts
- Created interface files for deleted components in src/lib/json-ui/interfaces/
- Copied JSON definitions from config/pages to components/json-definitions/ for consistency
- Updated atoms/index.ts with comprehensive exports for all 100+ components
- Fixed import issues in AtomicComponentDemo.tsx
- Removed orphaned CodeEditor registry entry and JSON config file
- Fixed registry entry count (359 total, 0 orphans, 0 duplicates)

Metrics:
- TSX file reduction: 475 → 412 files (63 deleted, 13.3% reduction)
- Build: Passing with no errors
- Audit: 0 issues found

Coverage Progress:
- Phase 1-5: 141 deletions (30%)
- Phase 6: 63 deletions (13.3%)
- Total: 204 deletions (43.3% of initial 475)
- Target: 70-75% by end of Phase 6

Components Status:
- All deleted components now available as JSON-based exports
- Full backwards compatibility through atoms/molecules/organisms index files

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-21 03:35:47 +00:00
c123c8c563 fix: Consolidate and verify JSON component exports (Task 8)
- Remove duplicate form.json import from json-components.ts
- Add missing interface exports to interfaces/index.ts:
  - loading-screen interface
  - sparkle interface
- Add missing registry entries for FormField and InputOTP
- Update registry statistics: 360 total, 204 jsonCompatible (56.66%)
- Verify all 127 exports have valid interfaces
- All exports now properly registered and indexed

Build: PASSED ✓
Coverage: 56.66% jsonCompatible entries
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-21 02:32:43 +00:00
53c8a72c0f feat: Migrate 5 key molecules to JSON architecture
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>
2026-01-21 02:25:05 +00:00
eb8a8689fb feat: migrate Tier 3 atoms batch 6 - Slider through Tooltip (17 components)
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>
2026-01-21 01:43:09 +00:00
94d67dfed5 feat: migrate DataSourceManager to JSON (Tier 2 - Organism 1)
- 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>
2026-01-21 01:29:19 +00:00
bef28e8c91 feat: add Timestamp and Toggle components; implement TreeIcon and EditorActions components
- Introduced Timestamp component for displaying formatted dates and relative time.
- Added Toggle component for switch-like functionality with customizable sizes.
- Implemented TreeIcon component for rendering tree icons using Phosphor icons.
- Created EditorActions component for explain and improve actions with icons.
- Developed FileTabs component for managing open files with close functionality.
- Added LazyInlineMonacoEditor and LazyMonacoEditor for lazy loading Monaco editor.
- Implemented NavigationItem for navigation with badges and icons.
- Created PageHeaderContent for displaying page headers with icons and descriptions.
- Added JSON configuration files for various UI components and layouts.
- Enhanced data binding with new computed data source hook.
- Updated component registry and types for new components.
- Configured Vite for improved hot module replacement experience.
2026-01-18 21:42:51 +00:00
aa51074380 Remove 123 simple TypeScript components now defined in JSON
Deleted files:
- 71 simple atoms (ActionIcon, Alert, AppLogo, Avatar, Badge, Chip, etc.)
- 21 simple molecules (ActionBar, AppBranding, DataCard, etc.)
- 8 simple organisms (EmptyCanvasState, PageHeader, SchemaEditorCanvas, etc.)
- 23 simple UI components (accordion, alert, button, card, etc.)

Changes:
- Created cleanup-simple-components.ts script to automate deletion
- Created update-index-exports.ts script to update index files
- Updated index.ts in atoms/, molecules/, organisms/ to remove deleted exports
- Installed npm dependencies

Remaining TypeScript components (kept for complexity):
- 46 atoms wrapping UI or with hooks
- 20 molecules with complex logic
- 6 organisms with state management
- 11 UI components with advanced features

Total: 317 components now have JSON definitions, 123 TypeScript files deleted (39% reduction)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-18 19:45:25 +00:00
b8dc6f38e6 Generate JSON UI component types 2026-01-18 18:46:02 +00:00
03cc955d20 Update data source editor copy 2026-01-18 18:32:55 +00:00
52f1703c35 Merge pull request #168 from johndoe6345789/codex/update-schemas-to-remove-legacy-compute-functions
Replace legacy compute usage with JSON expressions
2026-01-18 17:42:12 +00:00
966b6f2aa6 Remove legacy compute schema support 2026-01-18 17:41:57 +00:00
f6673e1b77 Add JSON page support to page configs 2026-01-18 17:25:22 +00:00
7be52ffc1e Add JSON page routing support 2026-01-18 17:15:39 +00:00
f547d38539 things 2026-01-18 15:48:29 +00:00
67f2c26f10 Add nested target path updates 2026-01-18 13:35:00 +00:00
9ea7c15f5d Merge pull request #153 from johndoe6345789/codex/unify-breadcrumb-components-implementation
Mark Breadcrumb as JSON compatible
2026-01-18 13:17:10 +00:00
92e9b02d6d Mark breadcrumb as JSON compatible 2026-01-18 13:16:08 +00:00
6f01619141 Merge pull request #152 from johndoe6345789/codex/add-component-types-and-register-them
Support branding and navigation molecules in JSON UI
2026-01-18 13:15:22 +00:00
f627f6955f Support branding and navigation molecules 2026-01-18 13:15:04 +00:00
3f190f7e5a Merge pull request #151 from johndoe6345789/codex/add-component-types-and-registration
Add ListItem and table subcomponents + List/Table/Timeline bindings example
2026-01-18 13:14:43 +00:00
7d04abb7d9 Add list/table/timeline bindings example 2026-01-18 13:14:31 +00:00
968efc7701 Add DatePicker and FileUpload defaults 2026-01-18 13:12:25 +00:00
578b52bb95 Add converted JSON UI components 2026-01-18 12:36:11 +00:00
bd9482b6d4 Merge pull request #127 from johndoe6345789/codex/create-wrapper-components-for-skipped-items
Move JSON wrapper interfaces to shared file
2026-01-18 12:18:45 +00:00
9e80117569 Fix wrapper interfaces import order 2026-01-18 12:18:33 +00:00
13192f422e Register progress indicators for JSON UI 2026-01-18 12:10:45 +00:00
0d13710c09 Add DatePicker and FileUpload to JSON UI 2026-01-18 11:59:51 +00:00
4529708f76 Merge branch 'main' into codex/integrate-breadcrumb-component-into-json 2026-01-18 11:42:50 +00:00
8945c746cb Add breadcrumb to JSON component registry 2026-01-18 11:42:27 +00:00
9448b8327d Merge branch 'main' into codex/implement-prop-compatibility-for-components 2026-01-18 11:41:15 +00:00
0d82406e5f Add JSON UI support for feedback atoms 2026-01-18 11:38:50 +00:00
3fe02ed098 Add JSON UI support for data atoms 2026-01-18 11:35:57 +00:00
8465a9de5a Merge pull request #111 from johndoe6345789/codex/extend-json-schema-types-for-bindings
Add state-aware bindings for JSON renderer
2026-01-18 11:19:06 +00:00
d04333e565 Add state-aware bindings for JSON renderer 2026-01-18 11:18:40 +00:00
39c57e9967 Add JSON event definitions and renderer support 2026-01-18 11:17:37 +00:00
813c36b953 Stabilize JSON UI bindings and loop rendering 2026-01-18 11:07:32 +00:00
b232c220df Merge branch 'main' into codex/align-event/action-shape-in-renderer 2026-01-18 02:38:04 +00:00
01921d4b80 Align json-ui event action handlers 2026-01-18 02:36:16 +00:00
f7d7b9f478 Merge branch 'main' into codex/refactor-data-binding-resolution-in-componentrenderer 2026-01-18 02:32:30 +00:00
17ff0eaaea Enhance binding resolution in component renderer 2026-01-18 02:31:49 +00:00
94018c0e3c Align JSON UI binding transforms 2026-01-18 02:31:19 +00:00
320e8a4c2c Consolidate JSON UI component registry 2026-01-18 01:42:41 +00:00
3891625692 Move ComponentRendererProps to shared JSON UI types 2026-01-18 01:14:17 +00:00
copilot-swe-agent[bot]
6be1e9d918 Implement JSON-friendly expression system for events
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 22:53:54 +00:00
ab152bbd67 Generated by Spark: Work on low hanging fruit from JSON_COMPATIBILITY_ANALYSIS.md 2026-01-17 22:21:40 +00:00
copilot-swe-agent[bot]
58437b9770 Migrate 20+ components to JSON UI system - now 46 supported
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-17 21:54:51 +00:00