Commit Graph

89 Commits

Author SHA1 Message Date
git 982fee43ac feat: migrate Tier 3 atoms batch 1 - ActionButton through Badge (8 components)
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>
2026-01-21 01:32:20 +00:00
git 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
git a78943a854 feat: migrate NavigationMenu to JSON (Tier 2 - Organism 2)
- Create NavigationMenuProps interface for type safety
- Implement useNavigationMenu hook with:
  - expandedGroups state management
  - toggleGroup, expandAll, collapseAll actions
  - isItemVisible, getVisibleItemsCount, getItemBadge utilities
  - handleItemHover, handleItemLeave with route preloading
- Create comprehensive JSON definition with:
  - Nested Collapsible groups for navigation sections
  - Dynamic item rendering with visibility filtering
  - Badge support for error count and item badges
  - Active state styling and hover effects
- Register hook in hooks-registry
- Export from json-components.ts with hook integration
- Update json-components-registry.json (source: organisms, jsonCompatible: true)

All state management delegated to useNavigationMenu hook.
Navigation logic fully expressible in JSON with custom hooks.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-21 01:28:33 +00:00
git 85fce883dd feat: migrate AppMainPanel to JSON
Converts AppMainPanel from TSX to pure JSON component. AppMainPanel is a
simple container that composes PWAStatusBar, PWAUpdatePrompt, AppHeader,
and RouterProvider components.

- Create interface in src/lib/json-ui/interfaces/app-main-panel.ts
- Create JSON definition in src/components/json-definitions/app-main-panel.json
- Export from json-components.ts as pure component
- Update registry with AppMainPanel entry
- Update interfaces/index.ts to export new interface

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-21 01:19:18 +00:00
git 3fc51d5576 feat: migrate AppRouterLayout to JSON with useAppRouterLayout hook 2026-01-21 01:18:31 +00:00
git d287d6e0b6 feat: migrate AppLayout to JSON with useAppLayout hook 2026-01-21 01:15:12 +00:00
git f05f896a67 feat: Complete JSON component migration for 9 components (atoms + BindingEditor)
Migration complete for:
- 5 atoms: Accordion, CopyButton, FileUpload, FilterInput, Image, Input, PasswordInput, Popover (8 total)
- 1 molecule: BindingEditor

Changes:
- Deleted 9 legacy TSX files that have complete JSON equivalents
- Exported BindingEditor from json-components.ts with useBindingEditor hook
- Registered useBindingEditor in hooks-registry.ts
- Updated all imports across codebase to use JSON-based components
- Fixed build errors: schema-loader dynamic import, DataSourceGroupSection
- Cleaned up component index exports

Build status:  PASSING
- 0 TypeScript errors
- All 9,408 modules transformed successfully
- No blocking build warnings

Next steps:
- 3 organisms still need conversion: DataSourceManager, NavigationMenu, TreeListPanel
- 120+ additional components have TSX versions (need individual migration)
- 22 JSON components now available for use throughout the app

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-01-21 00:12:50 +00:00
git 809803283b feat: Add JSON definitions for menu, password input, and popover components
- Introduced `menu.json` for menu component structure with bindings for trigger and content.
- Created `password-input.json` for password input handling visibility and value changes.
- Added `popover.json` for popover component with trigger and content bindings.

feat: Implement custom hooks for UI interactions

- Added `useAccordion` for managing accordion state with single/multiple item support.
- Created `useBindingEditor` for managing bindings in a dynamic editor.
- Implemented `useCopyState` for clipboard copy functionality with feedback.
- Developed `useFileUpload` for handling file uploads with drag-and-drop support.
- Introduced `useFocusState` for managing focus state in components.
- Created `useImageState` for handling image loading and error states.
- Added `useMenuState` for managing menu interactions and item clicks.
- Implemented `usePasswordVisibility` for toggling password visibility.
- Developed `usePopoverState` for managing popover visibility and interactions.

feat: Add constants and interfaces for JSON UI components

- Introduced constants for sizes, placements, styles, and object-fit handling.
- Created interfaces for various components including Accordion, Binding Editor, Copy Button, Data Source Editor, File Upload, and more.
- Added type definitions for menu items, popover props, and other UI elements to enhance type safety and maintainability.
2026-01-19 01:30:42 +00:00
copilot-swe-agent[bot] 4ac334a12c feat: Convert final 2 components - ALL wrappers now pure JSON! 🎉
- Created lazy-d3-bar-chart.json with SVG rendering using chartData hook
- Created storage-settings.json with backend switching and import/export
- Deleted LazyD3BarChartWrapper.tsx and StorageSettingsWrapper.tsx
- Updated exports to use JSON components
- ALL 11 components now pure JSON - zero wrappers remaining
- Complete JSON component system with hooks loader proven working

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-18 23:51:09 +00:00
copilot-swe-agent[bot] e549f4e0de feat: Convert ComponentTree and SeedDataManager to pure JSON with hooks
- Created useComponentTree hook to flatten recursive tree structure
- Created useStorageBackendInfo hook for backend icon/copy logic
- Created useD3BarChart hook for chart calculations
- Registered all new hooks in hooks-registry
- Created component-tree.json with list rendering using treeData from hook
- Created seed-data-manager.json with full Card/Alert/Button structure
- Deleted ComponentTreeWrapper.tsx and SeedDataManagerWrapper.tsx
- Updated exports to use JSON components
- 9 components now pure JSON, 2 wrappers remaining

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-18 23:48:23 +00:00
copilot-swe-agent[bot] 4c17cc49c1 feat: Implement hooks loader system for JSON components, convert SaveIndicator to pure JSON
- Created hooks-registry.ts for registering custom React hooks
- Created createJsonComponentWithHooks for JSON components that need hooks
- Implemented SaveIndicator as pure JSON with useSaveIndicator hook
- Moved JSON definitions from wrappers/definitions to components/json-definitions
- Removed wrappers folder entirely
- Fixed NavigationItem JSON to include onClick handler binding
- Deleted legacy NavigationItem.tsx and PageHeaderContent.tsx files
- Architecture: JSON + interfaces + hook loader = fully functional components

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-18 23:22:40 +00:00
copilot-swe-agent[bot] 0514e61000 feat: Remove wrapper system, implement pure JSON components
- Created src/lib/json-ui/interfaces/ folder for component interfaces
- Created createJsonComponent() helper for pure JSON component creation
- Deleted wrapper TypeScript files (LoadingFallbackWrapper, NavigationItemWrapper, PageHeaderContentWrapper, TreeCardWrapper)
- Components now export directly from JSON definitions via json-components.ts
- No more wrapper layer - components are pure JSON with separate interface definitions
- Architecture simplified: JSON definition + interface = component

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-18 23:13:00 +00:00
copilot-swe-agent[bot] 9a6c7f8652 fix: Remove duplicate LoadingFallbackWrapper export
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-18 22:19:57 +00:00
copilot-swe-agent[bot] a65a994ec4 feat: Implement JSON components with wrappers for LoadingFallback, NavigationItem, PageHeaderContent
Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-18 22:07:46 +00:00
git 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
git 3864fd247a Fix syntax errors preventing dev server startup
Fixed two critical syntax errors:
1. renderer.tsx:363 - Extra closing brace in form field rendering
2. syncSlice.ts:81-86 - Missing closing brace and duplicate code in sync loop

Changes:
- Fixed renderer.tsx form field map closing
- Cleaned up syncSlice.ts for loop structure
- Dev server now starts successfully on port 5001

These were pre-existing errors unrelated to JSON component conversion.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-18 19:51:34 +00:00
git 05d9034366 Merge pull request #204 from johndoe6345789/codex/add-tests-for-json-components-registry
Add json-ui registry coverage test
2026-01-18 18:49:37 +00:00
git 29d59ec863 Add registry coverage test for json ui 2026-01-18 18:49:23 +00:00
git d351f05b14 Merge branch 'main' into codex/update-component-registry-paths-and-sources 2026-01-18 18:48:07 +00:00
git 85fb859131 Add explicit component paths to JSON registry 2026-01-18 18:47:07 +00:00
git 4cb9c01748 Add sourceRoots config for component registry 2026-01-18 18:44:59 +00:00
git 27dfebcb24 Merge pull request #197 from johndoe6345789/codex/refactor-computed-json-configs
Remove legacy `computed` data sources; migrate to expression/valueTemplate and update UI
2026-01-18 18:33:08 +00:00
git 03cc955d20 Update data source editor copy 2026-01-18 18:32:55 +00:00
git fdd1828fda Move wrapper/icon resolution into JSON registry 2026-01-18 18:26:39 +00:00
git baf5001704 Refactor JSON UI component registry 2026-01-18 18:15:46 +00:00
git 395ab80610 Make json-ui registry sources data-driven 2026-01-18 17:57:15 +00:00
git 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
git 966b6f2aa6 Remove legacy compute schema support 2026-01-18 17:41:57 +00:00
git 174f03edd2 Add JSON page data/function prop mapping 2026-01-18 17:29:18 +00:00
git c6208fafd1 Replace eval bindings with JSON expression evaluator 2026-01-18 17:09:02 +00:00
git bbcc91dc80 Update JSON UI actions and conditionals 2026-01-18 16:19:42 +00:00
git 67f2c26f10 Add nested target path updates 2026-01-18 13:35:00 +00:00
git 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
git 92e9b02d6d Mark breadcrumb as JSON compatible 2026-01-18 13:16:08 +00:00
git 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
git f627f6955f Support branding and navigation molecules 2026-01-18 13:15:04 +00:00
git 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
git 7d04abb7d9 Add list/table/timeline bindings example 2026-01-18 13:14:31 +00:00
git 9fb7765c51 Merge branch 'main' into codex/update-json-ui-components-and-registry-u03e4j 2026-01-18 13:13:48 +00:00
git 968efc7701 Add DatePicker and FileUpload defaults 2026-01-18 13:12:25 +00:00
git 83b5e51b7e Merge branch 'main' into codex/identify-components-for-hooks-and-context 2026-01-18 13:05:37 +00:00
git 0a491528f3 Add progress components to JSON UI schemas 2026-01-18 13:03:37 +00:00
git 3c96b733b2 Move wrapper layouts into JSON definition files 2026-01-18 13:03:24 +00:00
git 21ef3d1d3e Render JSON wrappers from schema definitions 2026-01-18 13:03:14 +00:00
git 6df9c0c3dd Resolve wrapper components via registry metadata 2026-01-18 13:03:05 +00:00
git 5f921e6193 Merge pull request #145 from johndoe6345789/codex/define-deprecation-process-for-components
Add deprecation workflow and runtime warnings for deprecated JSON components
2026-01-18 12:49:14 +00:00
git 571fe3ef2c Add deprecation guidance and schema warnings 2026-01-18 12:49:03 +00:00
git c345e892f9 Add JSON wrapper components for hook-based UI 2026-01-18 12:38:39 +00:00
git 578b52bb95 Add converted JSON UI components 2026-01-18 12:36:11 +00:00
git 9e80117569 Fix wrapper interfaces import order 2026-01-18 12:18:33 +00:00