From e41d08d40c8dd7bd2aa5684f72202c03df039b93 Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Sun, 18 Jan 2026 11:32:24 +0000 Subject: [PATCH] Add JSON component conversion task list --- docs/JSON_COMPONENT_CONVERSION_TASKS.md | 95 +++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 docs/JSON_COMPONENT_CONVERSION_TASKS.md diff --git a/docs/JSON_COMPONENT_CONVERSION_TASKS.md b/docs/JSON_COMPONENT_CONVERSION_TASKS.md new file mode 100644 index 0000000..f312ed4 --- /dev/null +++ b/docs/JSON_COMPONENT_CONVERSION_TASKS.md @@ -0,0 +1,95 @@ +# JSON Component Conversion Tasks + +This task list captures the next steps for expanding JSON UI coverage, split between **component migrations** and **framework enablers**. + +## Component Migration Tasks (Planned → Supported) + +### Input Components +- [ ] **DatePicker** + - Add `DatePicker` to `ComponentType` in `src/types/json-ui.ts`. + - Register `DatePicker` in `src/lib/json-ui/component-registry.tsx`. + - Add metadata/defaults to `src/lib/component-definitions.ts`. + - Flip status to `supported` in `json-components-registry.json`. +- [ ] **FileUpload** + - Add `FileUpload` to `ComponentType` in `src/types/json-ui.ts`. + - Register `FileUpload` in `src/lib/json-ui/component-registry.tsx`. + - Add metadata/defaults to `src/lib/component-definitions.ts`. + - Flip status to `supported` in `json-components-registry.json`. + +### Display Components +- [ ] **CircularProgress** + - Add `CircularProgress` to `ComponentType` in `src/types/json-ui.ts`. + - Register `CircularProgress` in `src/lib/json-ui/component-registry.tsx`. + - Add metadata/defaults to `src/lib/component-definitions.ts`. + - Flip status to `supported` in `json-components-registry.json`. +- [ ] **Divider** + - Add `Divider` to `ComponentType` in `src/types/json-ui.ts`. + - Register `Divider` in `src/lib/json-ui/component-registry.tsx`. + - Add metadata/defaults to `src/lib/component-definitions.ts`. + - Flip status to `supported` in `json-components-registry.json`. +- [ ] **ProgressBar** + - Add `ProgressBar` to `ComponentType` in `src/types/json-ui.ts`. + - Register `ProgressBar` in `src/lib/json-ui/component-registry.tsx`. + - Add metadata/defaults to `src/lib/component-definitions.ts`. + - Flip status to `supported` in `json-components-registry.json`. + +### Navigation Components +- [ ] **Breadcrumb** + - Decide whether JSON should map to `BreadcrumbNav` (atoms) or `Breadcrumb` (molecules). + - Align props and bindings to a single JSON-friendly surface. + - Register a single `Breadcrumb` entry and set status to `supported` in `json-components-registry.json`. + +### Feedback Components +- [ ] **ErrorBadge** + - Add `ErrorBadge` to `ComponentType` in `src/types/json-ui.ts`. + - Register `ErrorBadge` in `src/lib/json-ui/component-registry.tsx`. + - Add metadata/defaults to `src/lib/component-definitions.ts`. + - Flip status to `supported` in `json-components-registry.json`. +- [ ] **Notification** + - Add `Notification` to `ComponentType` in `src/types/json-ui.ts`. + - Register `Notification` in `src/lib/json-ui/component-registry.tsx`. + - Add metadata/defaults to `src/lib/component-definitions.ts`. + - Flip status to `supported` in `json-components-registry.json`. +- [ ] **StatusIcon** + - Add `StatusIcon` to `ComponentType` in `src/types/json-ui.ts`. + - Register `StatusIcon` in `src/lib/json-ui/component-registry.tsx`. + - Add metadata/defaults to `src/lib/component-definitions.ts`. + - Flip status to `supported` in `json-components-registry.json`. + +### Data Components +- [ ] **DataList** + - Add `DataList` to `ComponentType` in `src/types/json-ui.ts`. + - Register `DataList` in `src/lib/json-ui/component-registry.tsx`. + - Add metadata/defaults to `src/lib/component-definitions.ts`. + - Flip status to `supported` in `json-components-registry.json`. +- [ ] **DataTable** + - Add `DataTable` to `ComponentType` in `src/types/json-ui.ts`. + - Register `DataTable` in `src/lib/json-ui/component-registry.tsx`. + - Add metadata/defaults to `src/lib/component-definitions.ts`. + - Flip status to `supported` in `json-components-registry.json`. +- [ ] **MetricCard** + - Add `MetricCard` to `ComponentType` in `src/types/json-ui.ts`. + - Register `MetricCard` in `src/lib/json-ui/component-registry.tsx`. + - Add metadata/defaults to `src/lib/component-definitions.ts`. + - Flip status to `supported` in `json-components-registry.json`. +- [ ] **Timeline** + - Add `Timeline` to `ComponentType` in `src/types/json-ui.ts`. + - Register `Timeline` in `src/lib/json-ui/component-registry.tsx`. + - Add metadata/defaults to `src/lib/component-definitions.ts`. + - Flip status to `supported` in `json-components-registry.json`. + +## Framework Enablers + +- [ ] **Event binding extensions** + - Expand event/action coverage to support richer interactions via JSON expressions. + - Confirm compatibility with existing `expression` and `valueTemplate` handling. +- [ ] **State binding system** + - Add support for stateful bindings needed by interactive components. + - Document and enforce which components require state binding. +- [ ] **JSON-friendly wrappers** + - Create wrapper components for hook-heavy/side-effect components. + - Register wrappers in the JSON registry instead of direct usage. +- [ ] **Registry normalization** + - Resolve duplicate component entries (e.g., multiple `Breadcrumb` variants) in `json-components-registry.json`. +- [ ] **Showcase schema coverage** + - Add JSON schema examples for each newly supported component to keep demos current.