Skip to content

Commit feaadba

Browse files
grokifyclaude
andcommitted
feat(renderer): add React PageRenderer with UISpec rendering
TypeScript renderer for UISpec pages: PageRenderer component, layout engine, component registry, expression evaluator, interaction handler, datasource connector, reactive state store, and assistant-ui components. Includes vitest test suite. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 5a06e51 commit feaadba

47 files changed

Lines changed: 4840 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

renderer/dist/PageRenderer.d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import React from 'react';
2+
import type { PageSpec } from './types';
3+
export interface PageRendererProps {
4+
page: PageSpec;
5+
className?: string;
6+
style?: React.CSSProperties;
7+
onError?: (componentId: string, error: Error) => void;
8+
}
9+
export declare function PageRenderer({ page, className, style, onError }: PageRendererProps): React.ReactElement;
10+
//# sourceMappingURL=PageRenderer.d.ts.map

renderer/dist/PageRenderer.d.ts.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

renderer/dist/PageRenderer.js

Lines changed: 48 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

renderer/dist/PageRenderer.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

renderer/dist/index.d.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
export { PageRenderer } from './PageRenderer';
2+
export type { PageRendererProps } from './PageRenderer';
3+
export { registerComponent, getComponent, hasComponent, listComponents, clearRegistry } from './registry';
4+
export type { ComponentProps, UIForgeComponent } from './registry';
5+
export { Layout } from './layouts';
6+
export type { PageSpec, PageMetadata, LayoutSpec, LayoutType, LayoutConfig, BreakpointConfig, LayoutRegion, ComponentInstance, Position, Binding, VisibilityRule, Interaction, InteractionTrigger, InteractionAction, NavigationSpec, NavItem, ThemeRef, } from './types';
7+
export { API_VERSION, KIND_PAGE } from './types';
8+
//# sourceMappingURL=index.d.ts.map

renderer/dist/index.d.ts.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

renderer/dist/index.js

Lines changed: 5 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

renderer/dist/index.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

renderer/dist/layouts.d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import React from 'react';
2+
import type { LayoutSpec, ComponentInstance } from './types';
3+
interface LayoutProps {
4+
layout: LayoutSpec;
5+
components: ComponentInstance[];
6+
renderComponent: (instance: ComponentInstance) => React.ReactNode;
7+
}
8+
export declare function Layout({ layout, components, renderComponent }: LayoutProps): React.ReactElement;
9+
export {};
10+
//# sourceMappingURL=layouts.d.ts.map

renderer/dist/layouts.d.ts.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)