From 8899983d2a0f134a144ca44003e78a331a1f411e Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Wed, 21 Jan 2026 02:06:04 +0000 Subject: [PATCH] feat: migrate remaining atoms batch 2 - DatePicker through HelperText (12 components) 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 --- json-components-registry.json | 87 ++++++++++++--------- src/components/AtomicLibraryShowcase.tsx | 5 +- src/components/atomic-showcase/FormsTab.tsx | 10 +-- src/components/atoms/PageHeader.tsx | 24 ------ src/components/atoms/ProgressBar.tsx | 62 --------------- src/components/atoms/Pulse.tsx | 56 ------------- src/components/atoms/QuickActionButton.tsx | 61 --------------- src/components/atoms/Radio.tsx | 69 ---------------- src/components/atoms/RangeSlider.tsx | 47 ----------- src/components/atoms/Rating.tsx | 71 ----------------- src/components/atoms/ScrollArea.tsx | 35 --------- src/components/atoms/SearchInput.tsx | 46 ----------- src/components/atoms/SeedDataStatus.tsx | 60 -------------- src/components/atoms/Select.tsx | 69 ---------------- src/components/atoms/Sparkle.tsx | 35 --------- src/components/atoms/index.ts | 71 +---------------- src/components/organisms/PageHeader.tsx | 3 +- src/lib/json-ui/json-components.ts | 3 + 18 files changed, 65 insertions(+), 749 deletions(-) delete mode 100644 src/components/atoms/PageHeader.tsx delete mode 100644 src/components/atoms/ProgressBar.tsx delete mode 100644 src/components/atoms/Pulse.tsx delete mode 100644 src/components/atoms/QuickActionButton.tsx delete mode 100644 src/components/atoms/Radio.tsx delete mode 100644 src/components/atoms/RangeSlider.tsx delete mode 100644 src/components/atoms/Rating.tsx delete mode 100644 src/components/atoms/ScrollArea.tsx delete mode 100644 src/components/atoms/SearchInput.tsx delete mode 100644 src/components/atoms/SeedDataStatus.tsx delete mode 100644 src/components/atoms/Select.tsx delete mode 100644 src/components/atoms/Sparkle.tsx diff --git a/json-components-registry.json b/json-components-registry.json index c57afe6..1a16138 100644 --- a/json-components-registry.json +++ b/json-components-registry.json @@ -348,7 +348,8 @@ "canHaveChildren": true, "description": "BindingIndicator component", "status": "supported", - "source": "atoms" + "source": "atoms", + "jsonCompatible": true }, { "type": "breadcrumb", @@ -460,7 +461,8 @@ "canHaveChildren": true, "description": "Group of related buttons", "status": "supported", - "source": "atoms" + "source": "atoms", + "jsonCompatible": true }, { "type": "buttonVariants", @@ -903,7 +905,8 @@ "canHaveChildren": true, "description": "Compact element for tags or selections", "status": "supported", - "source": "atoms" + "source": "atoms", + "jsonCompatible": true }, { "type": "CircularProgress", @@ -912,7 +915,8 @@ "canHaveChildren": false, "description": "Circular progress indicator", "status": "supported", - "source": "atoms" + "source": "atoms", + "jsonCompatible": true }, { "type": "Clock", @@ -933,7 +937,8 @@ "canHaveChildren": true, "description": "Inline or block code display", "status": "supported", - "source": "atoms" + "source": "atoms", + "jsonCompatible": true }, { "type": "CodeEditor", @@ -1039,7 +1044,8 @@ "canHaveChildren": true, "description": "Command search and execution", "status": "supported", - "source": "atoms" + "source": "atoms", + "jsonCompatible": true }, { "type": "CompletionCard", @@ -1048,7 +1054,8 @@ "canHaveChildren": true, "description": "CompletionCard component", "status": "supported", - "source": "atoms" + "source": "atoms", + "jsonCompatible": true }, { "type": "ComponentBindingDialog", @@ -1091,7 +1098,8 @@ "canHaveChildren": true, "description": "ComponentPaletteItem component", "status": "supported", - "source": "atoms" + "source": "atoms", + "jsonCompatible": true }, { "type": "ComponentTree", @@ -1169,7 +1177,8 @@ "canHaveChildren": true, "description": "ConfirmButton component", "status": "supported", - "source": "atoms" + "source": "atoms", + "jsonCompatible": true }, { "type": "ConflictResolutionPage", @@ -1286,7 +1295,8 @@ "canHaveChildren": true, "description": "DataSourceBadge component", "status": "supported", - "source": "atoms" + "source": "atoms", + "jsonCompatible": true }, { "type": "DataSourceCard", @@ -1339,7 +1349,8 @@ "canHaveChildren": false, "description": "Advanced data table with sorting and filtering", "status": "supported", - "source": "atoms" + "source": "atoms", + "jsonCompatible": true }, { "type": "DatePicker", @@ -2556,12 +2567,9 @@ "category": "custom", "canHaveChildren": true, "description": "PageHeader component", - "status": "supported", + "status": "migrated", "source": "atoms", - "load": { - "path": "@/components/atoms/PageHeader.tsx", - "export": "BasicPageHeader" - } + "jsonCompatible": true }, { "type": "PageHeaderContent", @@ -2716,8 +2724,9 @@ "category": "display", "canHaveChildren": false, "description": "Linear progress bar", - "status": "supported", - "source": "atoms" + "status": "migrated", + "source": "atoms", + "jsonCompatible": true }, { "type": "ProjectDashboard", @@ -2762,8 +2771,9 @@ "category": "custom", "canHaveChildren": true, "description": "Pulse component", - "status": "supported", - "source": "atoms" + "status": "migrated", + "source": "atoms", + "jsonCompatible": true }, { "type": "PWASettings", @@ -2789,8 +2799,9 @@ "category": "input", "canHaveChildren": true, "description": "QuickActionButton component", - "status": "supported", - "source": "atoms" + "status": "migrated", + "source": "atoms", + "jsonCompatible": true }, { "type": "Radio", @@ -2798,8 +2809,9 @@ "category": "input", "canHaveChildren": false, "description": "Radio button selection", - "status": "supported", - "source": "atoms" + "status": "migrated", + "source": "atoms", + "jsonCompatible": true }, { "type": "radio-group", @@ -2831,7 +2843,7 @@ "category": "input", "canHaveChildren": true, "description": "RangeSlider component", - "status": "supported", + "status": "migrated", "source": "atoms", "jsonCompatible": true }, @@ -2841,7 +2853,7 @@ "category": "custom", "canHaveChildren": true, "description": "Star rating component", - "status": "supported", + "status": "migrated", "source": "atoms", "jsonCompatible": true }, @@ -3037,7 +3049,7 @@ "category": "custom", "canHaveChildren": true, "description": "Scrollable container area", - "status": "supported", + "status": "migrated", "source": "atoms", "jsonCompatible": true }, @@ -3079,12 +3091,9 @@ "category": "custom", "canHaveChildren": false, "description": "Search input with icon", - "status": "supported", + "status": "migrated", "source": "atoms", - "load": { - "path": "@/components/atoms/SearchInput.tsx", - "export": "BasicSearchInput" - } + "jsonCompatible": true }, { "type": "section", @@ -3134,8 +3143,9 @@ "category": "feedback", "canHaveChildren": true, "description": "SeedDataStatus component", - "status": "supported", - "source": "atoms" + "status": "migrated", + "source": "atoms", + "jsonCompatible": true }, { "type": "Select", @@ -3143,7 +3153,7 @@ "category": "input", "canHaveChildren": false, "description": "Dropdown select control", - "status": "supported", + "status": "migrated", "source": "atoms", "jsonCompatible": true }, @@ -3360,8 +3370,9 @@ "category": "custom", "canHaveChildren": true, "description": "Sparkle component", - "status": "supported", - "source": "atoms" + "status": "migrated", + "source": "atoms", + "jsonCompatible": true }, { "type": "Spinner", @@ -4175,4 +4186,4 @@ "wrappers": 10 } } -} \ No newline at end of file +} diff --git a/src/components/AtomicLibraryShowcase.tsx b/src/components/AtomicLibraryShowcase.tsx index 4b7f344..08b6984 100644 --- a/src/components/AtomicLibraryShowcase.tsx +++ b/src/components/AtomicLibraryShowcase.tsx @@ -1,5 +1,6 @@ import { useState } from 'react' -import { BasicPageHeader, Container, Stack } from '@/components/atoms' +import { Container, Stack } from '@/components/atoms' +import { PageHeader } from '@/lib/json-ui/json-components' import data from '@/data/atomic-library-showcase.json' import { AvatarsUserElementsSection } from '@/components/atomic-library/AvatarsUserElementsSection' import { BadgesIndicatorsSection } from '@/components/atomic-library/BadgesIndicatorsSection' @@ -26,7 +27,7 @@ export function AtomicLibraryShowcase() { return ( - + diff --git a/src/components/atomic-showcase/FormsTab.tsx b/src/components/atomic-showcase/FormsTab.tsx index 4f8cce9..cd1ea4a 100644 --- a/src/components/atomic-showcase/FormsTab.tsx +++ b/src/components/atomic-showcase/FormsTab.tsx @@ -2,15 +2,11 @@ import { Envelope, Heart, Share, Trash } from '@phosphor-icons/react' import formsCopy from '@/data/atomic-showcase/forms.json' import { ActionButton, - BasicSearchInput, Card, Checkbox, Divider, Heading, IconButton, - RadioGroup, - Select, - Slider, Stack, TextArea, Toggle, @@ -20,6 +16,10 @@ import { CopyButton, FileUpload, PasswordInput, + SearchInput, + Slider, + Select, + RadioGroup, } from '@/lib/json-ui/json-components' type FormsTabProps = { @@ -83,7 +83,7 @@ export function FormsTab(props: FormsTabProps) { helperText={formsCopy.email.helperText} /> - +