diff --git a/CHANGELOG.md b/CHANGELOG.md
index c1364db65..a9a66e41d 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,13 +10,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Comprehensive test suite using Vitest and React Testing Library
-- Test coverage for @object-ui/protocol, @object-ui/engine, @object-ui/renderer, @object-ui/ui, and @object-ui/designer packages
+- Test coverage for @object-ui/core, @object-ui/react, @object-ui/components, and @object-ui/designer packages
- GitHub Actions CI/CD workflows:
- CI workflow for automated testing, linting, and building
- Release workflow for publishing new versions
- Test coverage reporting with @vitest/coverage-v8
- Contributing guidelines (CONTRIBUTING.md)
- Documentation for testing and development workflow in README
+- README files for all core packages
### Changed
@@ -28,14 +29,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
- Core packages:
- - @object-ui/protocol - Pure metadata definitions and types
- - @object-ui/engine - Headless logic for handling data
- - @object-ui/renderer - Schema to UI component renderer
- - @object-ui/ui - High-quality UI components built with Tailwind CSS & Shadcn
+ - @object-ui/core - Core logic, types, and validation (Zero React dependencies)
+ - @object-ui/react - React bindings and SchemaRenderer component
+ - @object-ui/components - Standard UI components built with Tailwind CSS & Shadcn
- @object-ui/designer - Drag-and-drop visual editor
-- Monorepo structure using pnpm and TurboRepo
+- Monorepo structure using pnpm workspaces
- Basic TypeScript configuration
- Example applications in the examples directory
+- Complete documentation site with VitePress
[Unreleased]: https://github.com/objectql/objectui/compare/v0.1.0...HEAD
[0.1.0]: https://github.com/objectql/objectui/releases/tag/v0.1.0
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a60c48a8a..347bb4cac 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -34,7 +34,7 @@ pnpm test:coverage
pnpm build
# Build specific package
-cd packages/protocol && pnpm build
+cd packages/core && pnpm build
```
### Linting
diff --git a/README.md b/README.md
index d0eab9714..fa82dd4e3 100644
--- a/README.md
+++ b/README.md
@@ -172,11 +172,10 @@ This project is organized as a Monorepo:
| Package | Description |
| --- | --- |
-| **`@object-ui/types`** | The protocol definitions. Pure TypeScript interfaces. |
-| **`@object-ui/core`** | The logic engine. Data scoping, validation, evaluation. |
-| **`@object-ui/react`** | The React framework adapter. |
+| **`@object-ui/core`** | Core logic, types, and validation. Zero React dependencies. |
+| **`@object-ui/react`** | The React framework adapter with SchemaRenderer. |
| **`@object-ui/components`** | The standard UI library implementation (Shadcn + Tailwind). |
-| **`@object-ui/plugin-*`** | Lazy-loaded complex components (e.g., AG Grid, Monaco). |
+| **`@object-ui/designer`** | Visual schema editor for building UIs without code. |
---
diff --git a/docs/api/core.md b/docs/api/core.md
index 2db271f36..5b4d7846b 100644
--- a/docs/api/core.md
+++ b/docs/api/core.md
@@ -1,11 +1,13 @@
# Core API
-The `@object-ui/core` package (also published as `@object-ui/protocol`) provides the foundational type definitions and schemas for Object UI.
+The `@object-ui/core` package provides the foundational type definitions, schemas, and core logic for Object UI.
+
+This package is **framework-agnostic** with zero React dependencies, making it suitable for use in Node.js environments, build tools, or other frameworks.
## Installation
```bash
-npm install @object-ui/protocol
+npm install @object-ui/core
```
## Type Definitions
@@ -19,7 +21,7 @@ import type {
FormSchema,
ViewSchema,
ComponentSchema
-} from '@object-ui/protocol'
+} from '@object-ui/core'
```
### BaseSchema
@@ -82,7 +84,7 @@ interface InputSchema extends BaseSchema {
### Using Zod
```typescript
-import { PageSchema } from '@object-ui/protocol'
+import { PageSchema } from '@object-ui/core'
import { z } from 'zod'
const pageValidator = z.object({
@@ -100,7 +102,7 @@ const result = pageValidator.safeParse(mySchema)
### Type Guards
```typescript
-import { isPageSchema, isFormSchema } from '@object-ui/protocol'
+import { isPageSchema, isFormSchema } from '@object-ui/core'
if (isPageSchema(schema)) {
// TypeScript knows schema is PageSchema
@@ -108,10 +110,30 @@ if (isPageSchema(schema)) {
}
```
-## API Reference
+## Component Registry
+
+The core package provides a framework-agnostic component registry:
+
+```typescript
+import { ComponentRegistry } from '@object-ui/core'
+
+const registry = new ComponentRegistry()
+registry.register('button', buttonMetadata)
+```
-Full API documentation coming soon.
+## Data Scope
+
+Data scope management for expression evaluation:
+
+```typescript
+import { DataScope } from '@object-ui/core'
+
+const scope = new DataScope({ user: { name: 'John' } })
+const value = scope.get('user.name') // 'John'
+```
+
+## API Reference
-For now, see:
-- [GitHub Repository](https://github.com/objectql/objectui/tree/main/packages/protocol)
-- [TypeScript Definitions](https://github.com/objectql/objectui/blob/main/packages/protocol/src/types)
+For detailed API documentation, see:
+- [GitHub Repository](https://github.com/objectql/objectui/tree/main/packages/core)
+- [TypeScript Definitions](https://github.com/objectql/objectui/blob/main/packages/core/src/index.ts)
diff --git a/docs/api/designer.md b/docs/api/designer.md
index 6d40578eb..0332c426b 100644
--- a/docs/api/designer.md
+++ b/docs/api/designer.md
@@ -2,13 +2,15 @@
The `@object-ui/designer` package provides a visual drag-and-drop editor for creating Object UI schemas.
-::: warning Coming Soon
-The Designer is planned for release in Q3 2026. This documentation is a preview.
-:::
+## Installation
-## Planned Features
+```bash
+npm install @object-ui/designer @object-ui/react @object-ui/components
+```
+
+## Features
-### Visual Editor
+### ✅ Visual Editor
```tsx
import { Designer } from '@object-ui/designer'
@@ -18,48 +20,130 @@ function App() {
return (
)
}
```
-### Component Palette
+### ✅ Component Palette
+
+Drag components from the categorized palette to the canvas. Includes:
+- Basic components (text, button, link, image)
+- Form inputs (input, textarea, select, checkbox, radio, date picker)
+- Layout components (container, grid, flex, tabs, card)
+- Data display (table, list, badge)
+- Feedback components (alert, toast, dialog)
+
+### ✅ Property Editor
+
+Edit component properties visually with a dynamic form in the sidebar panel.
+
+### ✅ Real-time Preview
-Drag components from the palette to the canvas.
+See your changes instantly with live preview in the canvas.
-### Property Editor
+### ✅ Drag and Drop
-Edit component properties visually with a sidebar panel.
+- Drag components from palette to canvas
+- Reorder components within the canvas
+- Visual feedback during drag operations
-### Real-time Preview
+### ✅ JSON Import/Export
-See your changes instantly with live preview.
+- Export schema as JSON
+- Import schema from JSON
+- Copy schema to clipboard
-### AI Assistant
+## Components
-Generate schemas using natural language:
+### Designer
+
+The main designer component that includes all functionality.
```tsx
```
-### Collaboration
+**Props:**
+- `initialSchema?: SchemaNode` - Initial schema to load
+- `onSchemaChange?: (schema: SchemaNode) => void` - Callback when schema changes
+
+### Custom Layout
+
+Use individual components for custom layouts:
+
+```tsx
+import {
+ DesignerProvider,
+ Canvas,
+ ComponentPalette,
+ PropertyPanel,
+ Toolbar
+} from '@object-ui/designer'
+
+function CustomDesigner() {
+ return (
+
+
+
+ )
+}
+```
+
+## API Reference
-Real-time multi-user editing like Google Docs.
+### useDesigner Hook
-## Stay Updated
+Access designer state and methods:
-Want to be notified when Designer launches?
+```tsx
+import { useDesigner } from '@object-ui/designer'
+
+function CustomComponent() {
+ const {
+ schema,
+ setSchema,
+ selectedNodeId,
+ setSelectedNodeId,
+ updateNode,
+ addNode,
+ deleteNode,
+ moveNode
+ } = useDesigner()
+
+ // Use designer state
+}
+```
-- ⭐ [Star on GitHub](https://github.com/objectql/objectui)
-- 📧 [Email us](mailto:hello@objectui.org)
-- 📋 [View Roadmap](/roadmap)
+### Context API
+
+```typescript
+interface DesignerContextValue {
+ schema: SchemaNode
+ setSchema: (schema: SchemaNode) => void
+ selectedNodeId: string | null
+ setSelectedNodeId: (id: string | null) => void
+ hoveredNodeId: string | null
+ setHoveredNodeId: (id: string | null) => void
+ updateNode: (id: string, updates: Partial) => void
+ addNode: (parentId: string | null, node: SchemaNode, index?: number) => void
+ deleteNode: (id: string) => void
+ moveNode: (nodeId: string, targetParentId: string | null, targetIndex: number) => void
+}
+```
-## Roadmap
+## Examples
-See the [full roadmap](/roadmap#q3-2026-visual-designer-available-september-2026) for Designer features and timeline.
+See [examples/designer-demo](https://github.com/objectql/objectui/tree/main/examples/designer-demo) for a complete working example.
diff --git a/docs/guide/installation.md b/docs/guide/installation.md
index f3e8b006b..342bd7e88 100644
--- a/docs/guide/installation.md
+++ b/docs/guide/installation.md
@@ -16,9 +16,9 @@ Object UI is distributed as several packages:
| Package | Description | Required |
|---------|-------------|----------|
-| `@object-ui/protocol` | Type definitions and schemas | Yes |
-| `@object-ui/renderer` | The core compiler that turns JSON into React | Yes |
-| `@object-ui/ui` | The visual component library (Shadcn extended) | Yes |
+| `@object-ui/core` | Core logic, types, and validation (Zero React dependencies) | Yes |
+| `@object-ui/react` | React bindings and SchemaRenderer component | Yes |
+| `@object-ui/components` | Standard UI library with Shadcn + Tailwind components | Yes |
| `@object-ui/designer` | Visual schema editor and builder | Optional |
## Basic Installation
@@ -28,29 +28,17 @@ To get started, install the core packages:
::: code-group
```bash [npm]
-npm install @object-ui/renderer @object-ui/ui @object-ui/protocol
+npm install @object-ui/react @object-ui/components
```
```bash [pnpm]
-pnpm add @object-ui/renderer @object-ui/ui @object-ui/protocol
-```
-
-```bash [yarn]
-yarn add @object-ui/renderer @object-ui/ui @object-ui/protocol
-```
-
-:::bash [npm]
-npm install @object-ui/react @object-ui/components
+pnpm add @object-ui/react @object-ui/components
```
```bash [yarn]
yarn add @object-ui/react @object-ui/components
```
-```bash [pnpm]
-pnpm add @object-ui/react @object-ui/components
-```
-
:::
## Setup Steps
@@ -158,19 +146,19 @@ Create React App requires no special configuration.
For TypeScript type definitions:
```bash
-npm install @object-ui/protocol
+npm install @object-ui/core
```
```typescript
-import type { PageSchema, FormSchema } from '@object-ui/protocol'
+import type { PageSchema, FormSchema } from '@object-ui/core'
```
-### Engine
+### Designer
-For advanced state management and data handling:
+For visual schema editing:
```bash
-npm install @object-ui/engine
+npm install @object-ui/designer
```
## Verification
diff --git a/docs/guide/introduction.md b/docs/guide/introduction.md
index d518d3c8e..59dec862f 100644
--- a/docs/guide/introduction.md
+++ b/docs/guide/introduction.md
@@ -119,11 +119,10 @@ Object UI automatically:
Object UI is built as a modular ecosystem:
```
-@object-ui/protocol → Type definitions and schemas
-@object-ui/engine → Core logic and state management
-@object-ui/ui → UI components (Tailwind + Shadcn)
-@object-ui/renderer → Schema-to-React transformer
-@object-ui/designer → Visual editor (coming Q3 2026)
+@object-ui/core → Core logic, types, and validation (Zero React)
+@object-ui/react → React bindings and SchemaRenderer
+@object-ui/components → UI components (Tailwind + Shadcn)
+@object-ui/designer → Visual schema editor
```
This modular design means:
diff --git a/docs/protocol/overview.md b/docs/protocol/overview.md
index 8671326c5..1bc76237e 100644
--- a/docs/protocol/overview.md
+++ b/docs/protocol/overview.md
@@ -149,7 +149,7 @@ All schemas can be validated using:
Example validation:
```typescript
-import { PageSchema } from '@object-ui/protocol'
+import { PageSchema } from '@object-ui/core'
import { z } from 'zod'
const pageSchema = z.object({
@@ -233,7 +233,7 @@ This single schema creates a complete user management interface with:
The reference implementation is available in TypeScript:
```bash
-npm install @object-ui/protocol
+npm install @object-ui/core
```
```typescript
@@ -241,7 +241,7 @@ import {
PageSchema,
ViewSchema,
ObjectSchema
-} from '@object-ui/protocol'
+} from '@object-ui/core'
```
## Contributing
diff --git a/docs/spec/architecture.md b/docs/spec/architecture.md
index b0645c0f2..1ca954fd4 100644
--- a/docs/spec/architecture.md
+++ b/docs/spec/architecture.md
@@ -71,27 +71,29 @@ Dynamic logic is handled via string expressions in the JSON schema.
## 4. Architecture Layers
```
-Layer 1: @object-ui/protocol (The Language)
- - Types definitions for Object, Field, View, Page (from docs/objectql)
+Layer 1: @object-ui/core (The Foundation)
+ - Type definitions for schemas and components
+ - Core logic with zero React dependencies
- Validation Logic (Zod)
+ - Component Registry
+ - Data Scope and Expression Evaluation
-Layer 2: @object-ui/engine (The Brain)
- - Headless State Management
- - Data Source / API Connectors
- - Expression Evaluation utils
+Layer 2: @object-ui/react (The Glue)
+ - React bindings and hooks
+ - SchemaRenderer component
+ - Context providers
+ - React-specific state management
-Layer 3: @object-ui/ui (The Look)
+Layer 3: @object-ui/components (The Look)
- Shadcn/UI primitives
- Tailwind Configuration
- - Dumb React Components
-
-Layer 4: @object-ui/renderer (The Compiler)
- - SchemaRenderer
- - Component Registry
- - Concrete implementations of Page, View, Object renderers
+ - Component Renderers
+ - Standard UI implementations
-Layer 5: @object-ui/designer (The Tool)
- - Visual Editor
+Layer 4: @object-ui/designer (The Tool)
+ - Visual Schema Editor
+ - Drag-and-Drop Interface
+ - Property Editing
```
## 5. Advantages over Traditional Engines
diff --git a/docs/spec/project-structure.md b/docs/spec/project-structure.md
index 9247b0757..b8ce66db4 100644
--- a/docs/spec/project-structure.md
+++ b/docs/spec/project-structure.md
@@ -1,6 +1,6 @@
-# AI-Driven Project Structure
+# Project Structure
-This document defines the directory structure designed to facilitate AI-driven development. The goal is to establish a deterministic 1:1 mapping between the ObjectQL specifications (in `docs/objectql`) and the source code.
+This document defines the current directory structure of Object UI, designed for clarity and AI-driven development.
## 1. Top-Level Structure (Monorepo)
@@ -8,78 +8,150 @@ We use a standard Monorepo structure managed by `pnpm`.
```
/
-├── apps/ # End-user applications
-│ ├── design-studio/ # The visual designer (Next.js/Vite)
-│ └── docs/ # Documentation site
-├── packages/ # Shared libraries
-│ ├── protocol/ # (New) Pure Metadata Definitions & Types
-│ ├── engine/ # (New) The Core Logic (State, Data, Expressions)
-│ ├── ui/ # (New) The Atomic Component Library (Shadcn + Tailwind)
-│ └── renderer/ # (Renamed from react) The Schema->React Transformer
-├── docs/
-│ ├── objectql/ # The Source of Truth (Specs)
-│ └── spec/ # Technical Specs
+├── examples/ # Example applications
+│ ├── prototype/ # Main prototype/demo app
+│ └── designer-demo/ # Designer demonstration
+├── packages/ # Shared libraries
+│ ├── core/ # Core logic, types, and validation (Zero React)
+│ ├── react/ # React bindings and SchemaRenderer
+│ ├── components/ # Standard UI components (Shadcn + Tailwind)
+│ └── designer/ # Visual schema editor
+├── docs/ # Documentation site (VitePress)
+│ ├── .vitepress/ # VitePress configuration
+│ ├── guide/ # User guides
+│ ├── api/ # API documentation
+│ ├── protocol/ # Protocol specifications
+│ └── spec/ # Technical specifications
+└── .github/ # GitHub workflows and configurations
```
## 2. Package Responsibilities
-### `@object-ui/protocol` (was `core`)
-**Goal**: Define the "Language" of ObjectQL.
-**Mapping**: `docs/objectql/*.md` → `packages/protocol/src/*.ts`
+### `@object-ui/core`
+**Goal**: The "Brain" - Core logic with zero React dependencies.
+**Tech**: Pure TypeScript + Zod + Lodash
-* `src/types/object.ts` (Defines ObjectConfig)
-* `src/types/field.ts` (Defines FieldConfig)
-* `src/types/view.ts` (Defines ViewConfig)
-* `src/types/page.ts` (Defines PageConfig)
-* `src/utils/validator.ts` (Zod schemas for runtime validation)
+**Contents**:
+- `src/types/` - TypeScript type definitions (schemas, components)
+- `src/registry/` - Component registry system
+- `src/data-scope/` - Data scope and expression evaluation
+- `src/validators/` - Zod validation schemas
-### `@object-ui/engine` (was `react` internals)
-**Goal**: The "Brain". Headless logic for handling data.
+**Key Principle**: This package can run in Node.js or any JavaScript environment.
-* `src/store/` (Zustand stores for Object data)
-* `src/data-source/` (React Query wrappers)
-* `src/expressions/` (Expression evaluator)
-* `src/context/` (DataScope implementation)
+### `@object-ui/react`
+**Goal**: The "Glue" - React bindings and renderer.
+**Tech**: React 18+ with Hooks
-### `@object-ui/ui` (was `components`)
-**Goal**: The "Look". Dumb, stateless UI atoms.
-**Tech**: Radix UI + Tailwind + Shadcn.
-
-* `src/primitives/` (Button, Input, Dialog)
-* `src/layout/` (Grid, Stack, Card)
+**Structure**:
+```
+src/
+├── SchemaRenderer.tsx # Main renderer component
+├── hooks/ # React hooks
+│ ├── useRenderer.ts
+│ ├── useDataScope.ts
+│ └── useRegistry.ts
+└── context/ # React Context providers
+ ├── RendererContext.tsx
+ └── DataScopeContext.tsx
+```
-### `@object-ui/renderer` (was `react` public)
-**Goal**: The "Compiler". Turns Metadata into UI.
-**Structure**: Strictly organized by Schema Type.
+### `@object-ui/components`
+**Goal**: The "Body" - Standard UI implementation.
+**Tech**: Shadcn UI + Radix UI + Tailwind CSS
+**Structure**:
```
src/
-├── renderers/
-│ ├── page/
-│ │ ├── PageRenderer.tsx
-│ │ └── index.ts
-│ ├── object/
-│ │ ├── ObjectFormRenderer.tsx
-│ │ ├── ObjectTableRenderer.tsx
-│ │ └── ...
-│ ├── view/
-│ │ ├── ViewRenderer.tsx (Dispatcher)
-│ │ ├── ListView.tsx
-│ │ ├── KanbanView.tsx
-│ │ └── ...
-│ └── field/
-│ ├── FieldRenderer.tsx (Dispatcher)
-│ ├── StringField.tsx
-│ └── SelectField.tsx
-├── registry.ts # Maps types to renderers
-└── SchemaRenderer.tsx # Entry point
+├── ui/ # Base Shadcn components
+│ ├── button.tsx
+│ ├── input.tsx
+│ ├── select.tsx
+│ └── ...
+├── renderers/ # Object UI component renderers
+│ ├── basic/ # Basic components
+│ ├── form/ # Form components
+│ ├── layout/ # Layout components
+│ └── data-display/ # Data display components
+└── index.ts # Public exports
+```
+
+### `@object-ui/designer`
+**Goal**: The "Tool" - Visual schema editor.
+**Tech**: React + Drag-and-Drop
+
+**Contents**:
+- `src/Designer.tsx` - Main designer component
+- `src/Canvas.tsx` - Visual editing canvas
+- `src/ComponentPalette.tsx` - Component library browser
+- `src/PropertyPanel.tsx` - Property editor
+- `src/Toolbar.tsx` - Actions toolbar
+- `src/context/` - Designer state management
+
+## 3. Development Workflow
+
+### Adding a New Component
+
+When implementing a new component:
+
+1. **Define Types** in `packages/core/src/types/`
+ ```typescript
+ export interface MyComponentSchema extends BaseSchema {
+ type: 'my-component'
+ // ... component-specific properties
+ }
+ ```
+
+2. **Create UI Component** in `packages/components/src/ui/` (if needed)
+ ```tsx
+ // Base Shadcn component
+ export function MyComponent({ ... }) { ... }
+ ```
+
+3. **Create Renderer** in `packages/components/src/renderers/`
+ ```tsx
+ export function MyComponentRenderer({ schema, ...props }) {
+ return
+ }
+ ```
+
+4. **Register** in `packages/components/src/index.ts`
+ ```typescript
+ registry.register('my-component', MyComponentRenderer)
+ ```
+
+### Package Dependencies
+
+```
+designer
+ ↓
+components ──→ react ──→ core
+ ↓ ↓
+ui components types & logic
```
-## 3. Workflow for AI
+**Dependency Rules**:
+- `core`: NO dependencies on React or any UI framework
+- `react`: Depends on `core`, peer depends on React
+- `components`: Depends on `core` + `react` + Shadcn/Radix
+- `designer`: Depends on `components`
-When asked to "Implement the View spec":
+## 4. File Naming Conventions
-1. **Read** `docs/objectql/view.md`.
-2. **Define** `packages/protocol/src/types/view.ts`.
-3. **Create** `packages/renderer/src/renderers/view/ViewRenderer.tsx`.
-4. **Register** it in `packages/renderer/src/registry.ts`.
+- **Components**: PascalCase with `.tsx` extension (e.g., `Button.tsx`)
+- **Hooks**: camelCase starting with `use` (e.g., `useRenderer.ts`)
+- **Types**: PascalCase with `.ts` extension (e.g., `Schema.ts`)
+- **Utilities**: camelCase with `.ts` extension (e.g., `registry.ts`)
+
+## 5. Import Aliases
+
+When working within the monorepo, use workspace protocol:
+
+```typescript
+// In packages/react
+import { BaseSchema } from '@object-ui/core'
+
+// In packages/components
+import { SchemaRenderer } from '@object-ui/react'
+import type { ButtonSchema } from '@object-ui/core'
+```
diff --git a/packages/components/README.md b/packages/components/README.md
new file mode 100644
index 000000000..20bc35102
--- /dev/null
+++ b/packages/components/README.md
@@ -0,0 +1,170 @@
+# @object-ui/components
+
+Standard UI component library for Object UI, built with Shadcn UI + Tailwind CSS.
+
+## Features
+
+- 🎨 **Tailwind Native** - Built entirely with Tailwind CSS utility classes
+- 🧩 **Shadcn UI** - Based on Radix UI primitives for accessibility
+- 📦 **50+ Components** - Complete set of UI components
+- ♿ **Accessible** - WCAG compliant components
+- 🎯 **Type-Safe** - Full TypeScript support
+- 🔌 **Extensible** - Easy to customize and extend
+
+## Installation
+
+```bash
+npm install @object-ui/components @object-ui/react @object-ui/core
+```
+
+**Peer Dependencies:**
+- `react` ^18.0.0 || ^19.0.0
+- `react-dom` ^18.0.0 || ^19.0.0
+- `tailwindcss` ^3.0.0
+
+## Setup
+
+### 1. Configure Tailwind
+
+Add to your `tailwind.config.js`:
+
+```js
+module.exports = {
+ content: [
+ './src/**/*.{js,jsx,ts,tsx}',
+ './node_modules/@object-ui/components/**/*.{js,ts,jsx,tsx}'
+ ],
+ // ... your config
+}
+```
+
+### 2. Import Styles
+
+Add to your main CSS file:
+
+```css
+@import '@object-ui/components/dist/style.css';
+```
+
+### 3. Register Components
+
+```tsx
+import { registerDefaultRenderers } from '@object-ui/components'
+
+registerDefaultRenderers()
+```
+
+## Usage
+
+### With SchemaRenderer
+
+```tsx
+import { SchemaRenderer } from '@object-ui/react'
+import { registerDefaultRenderers } from '@object-ui/components'
+
+registerDefaultRenderers()
+
+const schema = {
+ type: 'card',
+ title: 'Welcome',
+ body: {
+ type: 'text',
+ value: 'Hello from Object UI!'
+ }
+}
+
+function App() {
+ return
+}
+```
+
+### Direct Import
+
+You can also import UI components directly:
+
+```tsx
+import { Button, Input, Card } from '@object-ui/components'
+
+function MyComponent() {
+ return (
+
+
+
+
+ )
+}
+```
+
+## Available Components
+
+### Form Components
+- `input` - Text input
+- `textarea` - Multi-line text
+- `select` - Dropdown select
+- `checkbox` - Checkbox
+- `radio` - Radio button
+- `date-picker` - Date selection
+- `switch` - Toggle switch
+
+### Layout Components
+- `container` - Container wrapper
+- `grid` - Grid layout
+- `flex` - Flexbox layout
+- `card` - Card container
+- `tabs` - Tab navigation
+- `accordion` - Collapsible sections
+
+### Data Display
+- `table` - Data table
+- `list` - List view
+- `badge` - Badge label
+- `avatar` - User avatar
+- `progress` - Progress bar
+
+### Feedback
+- `alert` - Alert messages
+- `toast` - Toast notifications
+- `dialog` - Modal dialog
+- `popover` - Popover overlay
+
+### Navigation
+- `button` - Button component
+- `link` - Link component
+- `breadcrumb` - Breadcrumb navigation
+
+## Customization
+
+### Override Styles
+
+All components accept `className` for Tailwind classes:
+
+```json
+{
+ "type": "button",
+ "label": "Click Me",
+ "className": "bg-blue-500 hover:bg-blue-700 text-white"
+}
+```
+
+### Custom Components
+
+Register your own components:
+
+```tsx
+import { registerRenderer } from '@object-ui/react'
+import { Button } from '@object-ui/components'
+
+function CustomButton(props) {
+ return
+}
+
+registerRenderer('custom-button', CustomButton)
+```
+
+## API Reference
+
+See [full documentation](https://objectui.org/api/components) for detailed API reference.
+
+## License
+
+MIT
diff --git a/packages/core/README.md b/packages/core/README.md
new file mode 100644
index 000000000..80ef52c34
--- /dev/null
+++ b/packages/core/README.md
@@ -0,0 +1,84 @@
+# @object-ui/core
+
+Core logic, types, and validation for Object UI. Zero React dependencies.
+
+## Features
+
+- 🎯 **Type Definitions** - Complete TypeScript schemas for all components
+- 🔍 **Component Registry** - Framework-agnostic component registration system
+- 📊 **Data Scope** - Data scope management and expression evaluation
+- ✅ **Validation** - Zod-based schema validation
+- 🚀 **Zero React** - Can run in Node.js or any JavaScript environment
+
+## Installation
+
+```bash
+npm install @object-ui/core
+```
+
+## Usage
+
+### Type Definitions
+
+```typescript
+import type {
+ PageSchema,
+ FormSchema,
+ InputSchema,
+ BaseSchema
+} from '@object-ui/core'
+
+const mySchema: PageSchema = {
+ type: 'page',
+ title: 'My Page',
+ body: []
+}
+```
+
+### Component Registry
+
+```typescript
+import { ComponentRegistry } from '@object-ui/core'
+
+const registry = new ComponentRegistry()
+registry.register('button', buttonMetadata)
+const metadata = registry.get('button')
+```
+
+### Data Scope
+
+```typescript
+import { DataScope } from '@object-ui/core'
+
+const scope = new DataScope({
+ user: { name: 'John', role: 'admin' }
+})
+
+const userName = scope.get('user.name') // 'John'
+const isAdmin = scope.evaluate('${user.role === "admin"}') // true
+```
+
+## Philosophy
+
+This package is designed to be **framework-agnostic**. It contains:
+
+- ✅ Pure TypeScript types and interfaces
+- ✅ Core logic and utilities
+- ✅ Validation schemas
+- ❌ NO React components
+- ❌ NO UI rendering logic
+- ❌ NO framework dependencies
+
+This allows the core types and logic to be used in:
+- Build tools and CLI utilities
+- Backend validation
+- Code generators
+- Alternative framework adapters (Vue, Svelte, etc.)
+
+## API Reference
+
+See [full documentation](https://objectui.org/api/core) for detailed API reference.
+
+## License
+
+MIT
diff --git a/packages/designer/README.md b/packages/designer/README.md
index bcb7e3c32..b5d23044e 100644
--- a/packages/designer/README.md
+++ b/packages/designer/README.md
@@ -15,11 +15,11 @@ A drag-and-drop visual editor to generate Object UI schemas.
## Installation
```bash
-npm install @object-ui/designer @object-ui/renderer @object-ui/ui
+npm install @object-ui/designer @object-ui/react @object-ui/components
# or
-yarn add @object-ui/designer @object-ui/renderer @object-ui/ui
+yarn add @object-ui/designer @object-ui/react @object-ui/components
# or
-pnpm add @object-ui/designer @object-ui/renderer @object-ui/ui
+pnpm add @object-ui/designer @object-ui/react @object-ui/components
```
## Usage
@@ -29,7 +29,7 @@ pnpm add @object-ui/designer @object-ui/renderer @object-ui/ui
```tsx
import { Designer } from '@object-ui/designer';
import { useState } from 'react';
-import type { SchemaNode } from '@object-ui/protocol';
+import type { SchemaNode } from '@object-ui/core';
function App() {
const [schema, setSchema] = useState({
@@ -201,6 +201,7 @@ module.exports = {
content: [
'./src/**/*.{js,ts,jsx,tsx}',
'./node_modules/@object-ui/designer/**/*.{js,ts,jsx,tsx}',
+ './node_modules/@object-ui/components/**/*.{js,ts,jsx,tsx}',
],
// ...
}
diff --git a/packages/react/README.md b/packages/react/README.md
new file mode 100644
index 000000000..5f768ea0d
--- /dev/null
+++ b/packages/react/README.md
@@ -0,0 +1,121 @@
+# @object-ui/react
+
+React bindings and SchemaRenderer component for Object UI.
+
+## Features
+
+- ⚛️ **SchemaRenderer** - Main component for rendering Object UI schemas
+- 🪝 **React Hooks** - Hooks for accessing renderer context
+- 🔄 **Context Providers** - React Context for state management
+- 📦 **Tree-Shakable** - Import only what you need
+
+## Installation
+
+```bash
+npm install @object-ui/react @object-ui/core
+```
+
+**Peer Dependencies:**
+- `react` ^18.0.0 || ^19.0.0
+- `react-dom` ^18.0.0 || ^19.0.0
+
+## Usage
+
+### Basic Example
+
+```tsx
+import { SchemaRenderer } from '@object-ui/react'
+
+const schema = {
+ type: 'text',
+ value: 'Hello, Object UI!'
+}
+
+function App() {
+ return
+}
+```
+
+### With Data
+
+```tsx
+import { SchemaRenderer } from '@object-ui/react'
+
+const schema = {
+ type: 'form',
+ body: [
+ {
+ type: 'input',
+ name: 'name',
+ label: 'Name',
+ value: '${user.name}'
+ }
+ ]
+}
+
+const data = {
+ user: { name: 'John Doe' }
+}
+
+function App() {
+ return
+}
+```
+
+### Handling Actions
+
+```tsx
+import { SchemaRenderer } from '@object-ui/react'
+
+function App() {
+ const handleSubmit = (data) => {
+ console.log('Form submitted:', data)
+ }
+
+ return (
+
+ )
+}
+```
+
+## Hooks
+
+### useSchemaContext
+
+Access the current schema context:
+
+```tsx
+import { useSchemaContext } from '@object-ui/react'
+
+function MyComponent() {
+ const { data, updateData } = useSchemaContext()
+
+ return {data.value}
+}
+```
+
+### useRegistry
+
+Access the component registry:
+
+```tsx
+import { useRegistry } from '@object-ui/react'
+
+function MyComponent() {
+ const registry = useRegistry()
+ const Component = registry.get('button')
+
+ return
+}
+```
+
+## API Reference
+
+See [full documentation](https://objectui.org/api/react) for detailed API reference.
+
+## License
+
+MIT