UNPKG

sandai-react

Version:

React components and utilities for the Sandai 3D AI Characters.

120 lines (82 loc) 3.11 kB
# sandai-react React components and utilities for the Sandai 3D AI Characters. ## Installation To use **sandai-react**, install it via npm: ```sh npm install sandai-react ``` ## Components ### `AI3DCharacter` A React component that renders a 3D AI character using Sandai. #### AI3DCharacter Props | Prop | Type | Description | |--------------|---------------------------------|-------------| | `url` | `string` | The base URL for the Sandai AI 3D character chat interface. | | `onLoad` | `(client: SandaiClient) => void` | Callback function triggered when the SandaiClient is loaded. | | `vrmUrl` | `string` _(optional)_ | URL for the VRM model to be loaded as the 3D character. | | `voiceName` | `VoiceNames` _(optional)_ | Name of the voice to be used by the 3D character. | | `showControls` | `boolean` _(optional)_ | Determines if controls should be displayed in the interface. | #### AI3DCharacter Example Usage ```tsx import { AI3DCharacter } from "sandai-react"; const handleLoad = (client) => { console.log("Sandai Client Loaded", client); }; <AI3DCharacter url="https://sandai.org/chat" onLoad={handleLoad} vrmUrl="https://example.com/model.vrm" voiceName="ruri" showControls={true} /> ``` --- ### `AI3DCharacterDocs` A React component that renders interactive documentation for functions exposed by the `SandaiClient` instance. #### AI3DCharacterDocs Props | Prop | Type | Description | |---------|------------------|-------------| | `client` | `SandaiClient` | The SandaiClient instance retrieved from the `onLoad` callback of `AI3DCharacter`. | #### AI3DCharacterDocs Example Usage ```tsx import { AI3DCharacter, AI3DCharacterDocs } from "sandai-react"; import { useState } from "react"; const App = () => { const [client, setClient] = useState(null); return ( <> <AI3DCharacter url="https://sandai.org/chat" onLoad={setClient} showControls /> {client && <AI3DCharacterDocs client={client} />} </> ); }; ``` --- ### `FunctionTester` A reusable form component that dynamically generates input fields based on a schema and executes a function when submitted. #### FunctionTester Props | Prop | Type | Description | |--------|-----------------|-------------| | `func` | `Function` | The function to be tested, receiving input values as arguments. | | `schema` | `SchemaType[]` | An array of schema objects defining the function parameters. | #### FunctionTester Example Usage ```tsx import { FunctionTester } from "sandai-react"; const myFunction = (name, age) => { console.log(`Name: ${name}, Age: ${age}`); }; const schema = [ { id: "name", type: "text", label: "Name" }, { id: "age", type: "number", label: "Age" } ]; <FunctionTester func={myFunction} schema={schema} />; ``` --- ## Contributing Contributions are welcome! If you have suggestions or find issues, feel free to open a pull request. ## License This project is licensed under the MIT License. See the `LICENSE` file for details.