diff --git a/src/lib/json-ui/interfaces/index.ts b/src/lib/json-ui/interfaces/index.ts index f63cb55..4e5f1e7 100644 --- a/src/lib/json-ui/interfaces/index.ts +++ b/src/lib/json-ui/interfaces/index.ts @@ -162,6 +162,22 @@ export * from './status-badge' export * from './text' export * from './tree-icon' +// Phase 9: Reusable feature component interfaces +export * from './error-panel-header' +export * from './error-panel-empty-state' +export * from './pwa-update-section' +export * from './pwa-cache-section' +export * from './conflict-resolution-stats' +export * from './how-it-works-card' +export * from './search-results' +export * from './search-empty-state' +export * from './comprehensive-demo-header' +export * from './comprehensive-demo-stats-row' +export * from './config-card' +export * from './status-card' +export * from './info-section' +export * from './list-header' + // Shadcn/ui wrapper interfaces export * from './shadcn-button' export * from './shadcn-badge' diff --git a/src/lib/json-ui/json-components.ts b/src/lib/json-ui/json-components.ts index 80a7251..388d180 100644 --- a/src/lib/json-ui/json-components.ts +++ b/src/lib/json-ui/json-components.ts @@ -197,6 +197,20 @@ import type { ShadcnTooltipProps, ShadcnTooltipTriggerProps, ShadcnTooltipContentProps, + ErrorPanelHeaderProps, + ErrorPanelEmptyStateProps, + PWAUpdateSectionProps, + PWACacheSectionProps, + ConflictResolutionStatsProps, + HowItWorksCardProps, + SearchResultsProps, + SearchEmptyStateProps, + ComprehensiveDemoHeaderProps, + ComprehensiveDemoStatsRowProps, + ConfigCardProps, + StatusCardProps, + InfoSectionProps, + ListHeaderProps, } from './interfaces' // Import JSON definitions @@ -391,6 +405,20 @@ import shadcnCheckboxDef from '@/components/json-definitions/shadcn-checkbox.jso import shadcnTooltipDef from '@/components/json-definitions/shadcn-tooltip.json' import shadcnTooltipTriggerDef from '@/components/json-definitions/shadcn-tooltip-trigger.json' import shadcnTooltipContentDef from '@/components/json-definitions/shadcn-tooltip-content.json' +import errorPanelHeaderDef from '@/components/json-definitions/error-panel-header.json' +import errorPanelEmptyStateDef from '@/components/json-definitions/error-panel-empty-state.json' +import pwaUpdateSectionDef from '@/components/json-definitions/pwa-update-section.json' +import pwaCacheSectionDef from '@/components/json-definitions/pwa-cache-section.json' +import conflictResolutionStatsDef from '@/components/json-definitions/conflict-resolution-stats.json' +import howItWorksCardDef from '@/components/json-definitions/how-it-works-card.json' +import searchResultsDef from '@/components/json-definitions/search-results.json' +import searchEmptyStateDef from '@/components/json-definitions/search-empty-state.json' +import comprehensiveDemoHeaderDef from '@/components/json-definitions/comprehensive-demo-header.json' +import comprehensiveDemoStatsRowDef from '@/components/json-definitions/comprehensive-demo-stats-row.json' +import configCardDef from '@/components/json-definitions/config-card.json' +import statusCardDef from '@/components/json-definitions/status-card.json' +import infoSectionDef from '@/components/json-definitions/info-section.json' +import listHeaderDef from '@/components/json-definitions/list-header.json' // Create pure JSON components (no hooks) export const BindingIndicator = createJsonComponent(bindingIndicatorDef) @@ -667,6 +695,22 @@ export const NavigationMenu = createJsonComponentWithHooks( export const TreeListPanel = createJsonComponent(treeListPanelDef) +// Phase 9: Reusable feature components +export const ErrorPanelHeader = createJsonComponent(errorPanelHeaderDef) +export const ErrorPanelEmptyState = createJsonComponent(errorPanelEmptyStateDef) +export const PWAUpdateSection = createJsonComponent(pwaUpdateSectionDef) +export const PWACacheSection = createJsonComponent(pwaCacheSectionDef) +export const ConflictResolutionStats = createJsonComponent(conflictResolutionStatsDef) +export const HowItWorksCard = createJsonComponent(howItWorksCardDef) +export const SearchResults = createJsonComponent(searchResultsDef) +export const SearchEmptyState = createJsonComponent(searchEmptyStateDef) +export const ComprehensiveDemoHeader = createJsonComponent(comprehensiveDemoHeaderDef) +export const ComprehensiveDemoStatsRow = createJsonComponent(comprehensiveDemoStatsRowDef) +export const ConfigCard = createJsonComponent(configCardDef) +export const StatusCard = createJsonComponent(statusCardDef) +export const InfoSection = createJsonComponent(infoSectionDef) +export const ListHeader = createJsonComponent(listHeaderDef) + // Additional deleted components now available as JSON-based exports export const ColorSwatch = createJsonComponent(colorSwatchDef) export const ComponentTreeNode = createJsonComponent(componentTreeNodeDef) diff --git a/src/types/json-ui-component-types.ts b/src/types/json-ui-component-types.ts index 464a479..49c3a94 100644 --- a/src/types/json-ui-component-types.ts +++ b/src/types/json-ui-component-types.ts @@ -344,6 +344,20 @@ export const jsonUIComponentTypes = [ "toggleVariants", "tooltip", "update", + "ErrorPanelHeader", + "ErrorPanelEmptyState", + "PWAUpdateSection", + "PWACacheSection", + "ConflictResolutionStats", + "HowItWorksCard", + "SearchResults", + "SearchEmptyState", + "ComprehensiveDemoHeader", + "ComprehensiveDemoStatsRow", + "ConfigCard", + "StatusCard", + "InfoSection", + "ListHeader", ] as const export type JSONUIComponentType = typeof jsonUIComponentTypes[number]