@opentf/react-sandbox
Version:
The CodeSandbox sandpack wrapper with tabs layout.
84 lines (55 loc) • 3.86 kB
Markdown
<img align="left" src="https://open-tech-foundation.pages.dev/img/Logo.svg" width="50" height="50">
[OPEN TECH FOUNDATION](https://open-tech-foundation.pages.dev/)
<div align="center">

</div>
> The [CodeSandbox](https://codesandbox.io/) sandpack wrapper with additional features.
- [CodeSandbox](https://codesandbox.io/s/react-sandbox-bcggdd)
- [Stackblitz](https://stackblitz.com/edit/vitejs-vite-ic6mks?file=src/App.jsx) (If preview is not working, try `Open in New Tab` button)
- Multiple Layouts (`Tabs`, `Code+Console`, etc)
- Choose between console types: `Basic` or `Advanced`([console-feed](https://www.npmjs.com/package/console-feed))
## Installation
```sh
npm install @opentf/react-sandbox
```
```sh
yarn add @opentf/react-sandbox
```
```sh
pnpm add @opentf/react-sandbox
```
```sh
bun add @opentf/react-sandbox
```
## Usage
```ts
import { SandBox } from '@opentf/react-sandbox';
export default function App() {
const code = `export default function App() {
return <h1>Hello world</h1>
}`;
return <SandBox code={code} />;
}
```
| Name | Type | Required | Default | Description |
| ----------- | ---------------------- | -------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| code | string | Yes | '' | Template specific default file content <br /> Eg: `nextjs` -> `pages/index.js` |
| template | string | No | 'react' | The codesandbox template. |
| theme | SandpackThemeProp | No | 'auto' | The codesandbox [theme](https://sandpack.codesandbox.io/docs/getting-started/themes). |
| layout | string | No | 'Default' | Currently, there are three presets available: <br />1. `Default`<br /> 2.`Tabs`<br /> 3. `Code_Console` |
| deps | string[] | No | [] | The npm dependencies.<br /> eg: ['lodash', 'immer@10.0.0']. |
| files | Record<string, string> | No | {} | The files prop accepts an object, where each key is the relative path of that file in the sandbox folder structure. |
| cdns | string[] | No | [] | Any third party external dependencies, eg: ['https://cdn.tailwindcss.com'] |
| tabIndex | number | No | 0 | The tab index to select in the `Tabs` layout |
| consoleType | string | No | 'Basic' | There are two types, `Basic` and `Advanced`. <br /> It uses [console-feed](https://www.npmjs.com/package/console-feed) for 'Advanced' |
- [@opentf/react-node-repl](https://node-repl.pages.dev/) - The Node.js REPL in a React component.
- [@opentf/react-state](https://react-app-state.pages.dev/) - A global state manager for React.
- [@opentf/react-form](https://react-form.pages.dev/) - A simple form state manager for React.
- [@opentf/std](https://js-std.pages.dev/) - An Extensive JavaScript Standard Library.
Copyright (c) [Thanga Ganapathy](https://github.com/Thanga-Ganapathy) ([MIT License](./LICENSE)).