diff --git a/json-components-registry.json b/json-components-registry.json index 076eb01..bc0676f 100644 --- a/json-components-registry.json +++ b/json-components-registry.json @@ -2,7 +2,7 @@ "$schema": "./schemas/json-components-registry-schema.json", "version": "2.0.0", "description": "Registry of all components in the application", - "lastUpdated": "2026-01-17T22:10:22.582Z", + "lastUpdated": "2026-01-18T11:30:24.191Z", "categories": { "layout": "Layout and container components", "input": "Form inputs and interactive controls", @@ -836,29 +836,10 @@ "name": "Breadcrumb", "category": "navigation", "canHaveChildren": false, - "description": "Navigation breadcrumb trail", - "status": "planned", + "description": "Navigation breadcrumb trail using the atoms/BreadcrumbNav JSON-safe items prop", + "status": "supported", "source": "atoms" }, - { - "type": "Breadcrumb", - "name": "Breadcrumb", - "category": "navigation", - "canHaveChildren": false, - "description": "Navigation breadcrumb trail", - "status": "json-compatible", - "source": "molecules", - "jsonCompatible": true - }, - { - "type": "Breadcrumb", - "name": "Breadcrumb", - "category": "navigation", - "canHaveChildren": false, - "description": "Navigation breadcrumb trail", - "status": "planned", - "source": "ui" - }, { "type": "ContextMenu", "name": "ContextMenu", @@ -2051,16 +2032,16 @@ "layout": 25, "input": 34, "display": 31, - "navigation": 17, + "navigation": 15, "feedback": 23, "data": 20, "custom": 69 }, "bySource": { "atoms": 117, - "molecules": 41, + "molecules": 40, "organisms": 15, - "ui": 46 + "ui": 45 } } } diff --git a/src/components/atoms/Breadcrumb.tsx b/src/components/atoms/Breadcrumb.tsx index 3964503..4cce34b 100644 --- a/src/components/atoms/Breadcrumb.tsx +++ b/src/components/atoms/Breadcrumb.tsx @@ -17,19 +17,19 @@ export function BreadcrumbNav({ items, className }: BreadcrumbNavProps) { ) } + +export const Breadcrumb = BreadcrumbNav diff --git a/src/components/atoms/index.ts b/src/components/atoms/index.ts index 75fde87..fb449ff 100644 --- a/src/components/atoms/index.ts +++ b/src/components/atoms/index.ts @@ -54,7 +54,7 @@ export { Timestamp } from './Timestamp' export { ScrollArea } from './ScrollArea' export { Tag } from './Tag' -export { BreadcrumbNav } from './Breadcrumb' +export { Breadcrumb, BreadcrumbNav } from './Breadcrumb' export { IconText } from './IconText' export { TextArea } from './TextArea' export { Input } from './Input' @@ -118,4 +118,3 @@ export { MetricDisplay } from './MetricDisplay' export { KeyValue } from './KeyValue' export { EmptyMessage } from './EmptyMessage' export { StepIndicator } from './StepIndicator' - diff --git a/src/lib/component-definitions.ts b/src/lib/component-definitions.ts index 85d3f5b..c607634 100644 --- a/src/lib/component-definitions.ts +++ b/src/lib/component-definitions.ts @@ -241,6 +241,19 @@ export const componentDefinitions: ComponentDefinition[] = [ canHaveChildren: true, defaultProps: { href: '#', children: 'Link' } }, + { + type: 'Breadcrumb', + label: 'Breadcrumb', + category: 'navigation', + icon: 'CaretRight', + canHaveChildren: false, + defaultProps: { + items: [ + { label: 'Home', href: '/' }, + { label: 'Current' } + ] + } + }, // Feedback Components { type: 'Alert', diff --git a/src/lib/json-ui/component-registry.ts b/src/lib/json-ui/component-registry.ts index 507a5d1..6206321 100644 --- a/src/lib/json-ui/component-registry.ts +++ b/src/lib/json-ui/component-registry.ts @@ -147,6 +147,11 @@ export const atomComponents: UIComponentRegistry = { Timeline: (AtomComponents as Record>).Timeline, } +const breadcrumbComponent = AtomComponents.Breadcrumb ?? AtomComponents.BreadcrumbNav +if (breadcrumbComponent) { + atomComponents.Breadcrumb = breadcrumbComponent as ComponentType +} + export const moleculeComponents: UIComponentRegistry = buildRegistryFromNames( moleculeRegistryNames, MoleculeComponents as Record> diff --git a/src/types/json-ui.ts b/src/types/json-ui.ts index 3dd53f3..8c30f10 100644 --- a/src/types/json-ui.ts +++ b/src/types/json-ui.ts @@ -4,7 +4,7 @@ export type ComponentType = | 'Input' | 'TextArea' | 'Textarea' | 'Select' | 'Checkbox' | 'Radio' | 'Switch' | 'Slider' | 'NumberInput' | 'Badge' | 'Progress' | 'Separator' | 'Tabs' | 'TabsContent' | 'TabsList' | 'TabsTrigger' | 'Dialog' | 'Text' | 'Heading' | 'Label' | 'List' | 'Grid' | 'Stack' | 'Flex' | 'Container' - | 'Link' | 'Image' | 'Avatar' | 'Code' | 'Tag' | 'Spinner' | 'Skeleton' + | 'Link' | 'Breadcrumb' | 'Image' | 'Avatar' | 'Code' | 'Tag' | 'Spinner' | 'Skeleton' | 'Alert' | 'InfoBox' | 'EmptyState' | 'StatusBadge' | 'ErrorBadge' | 'Notification' | 'StatusIcon' | 'Table' | 'KeyValue' | 'StatCard' | 'DataCard' | 'SearchInput' | 'ActionBar'