The @object-ui/components package provides pre-built UI components that implement the Object UI protocol.
npm install @object-ui/componentsRegister all default components:
import { registerDefaultRenderers } from '@object-ui/components'
registerDefaultRenderers()Or register individual components:
import { Button, Input, Form } from '@object-ui/components'
import { registerRenderer } from '@object-ui/react'
registerRenderer('button', Button)
registerRenderer('input', Input)
registerRenderer('form', Form)input- Text input fieldtextarea- Multi-line text inputselect- Dropdown selectcheckbox- Checkbox inputradio- Radio buttondate-picker- Date selectionfile-upload- File upload
table- Data table with sorting/paginationlist- List viewcard- Card containertree- Tree view
grid- Grid layoutflex- Flexbox layoutcontainer- Container wrappertabs- Tab navigation
alert- Alert messagestoast- Toast notificationsdialog- Modal dialogloading- Loading indicators
All components accept Tailwind classes:
{
"type": "button",
"className": "bg-blue-500 hover:bg-blue-700 text-white"
}Create custom components:
import { Button } from '@object-ui/components'
function CustomButton(props) {
return (
<Button
{...props}
className={`custom-styles ${props.className}`}
/>
)
}
registerRenderer('custom-button', CustomButton)Apply themes to all components:
import { ThemeProvider } from '@object-ui/components'
<ThemeProvider theme="dark">
<SchemaRenderer schema={schema} />
</ThemeProvider>Full component API documentation coming soon.
For now, see:
- GitHub Repository
- Storybook (coming soon)