squiggle/packages/components
2022-09-25 03:16:14 +04:00
..
.storybook
public
src error stacktraces and locations (initial take, WIP) 2022-09-25 03:16:14 +04:00
.gitignore
.npmignore
.prettierignore
.prettierrc.json
netlify.toml
package.json 0.5.0-alpha.2 2022-09-21 03:41:12 +04:00
postcss.config.js
README.md
tailwind.config.js
tsconfig.json
webpack.config.js

npm version License: MIT

Squiggle components

This package contains the react components for squiggle. These can be used either as a library or hosted as a storybook.

The @quri/squiggle-components package offers several components and utilities for people who want to embed Squiggle components into websites.

Usage in a react project

For example, in a fresh create-react-app project

yarn add @quri/squiggle-components

Add to App.js:

import { SquiggleEditor } from "@quri/squiggle-components";
<SquiggleEditor
  defaultCode="x = beta($alpha, 10); x + $shift"
  jsImports={{ alpha: 3, shift: 20 }}
/>;

Usage in a Nextjs project

For now, squiggle-components requires the window property, so using the package in nextjs requires dynamic loading:


import React from "react";
import { SquiggleChart } from "@quri/squiggle-components";

import dynamic from "next/dynamic";

const SquiggleChart = dynamic(
  () => import("@quri/squiggle-components").then((mod) => mod.SquiggleChart),
  {
    loading: () => <p>Loading...</p>,
    ssr: false,
  }
);

export function DynamicSquiggleChart({ squiggleString }) {
  if (squiggleString == "") {
    return null;
  } else {
    return (
        <SquiggleChart
          defaultCode={squiggleString}
          width={445}
          height={200}
          showSummary={true}
        />
    );
  }
}

Build storybook for development

We assume that you had run yarn at monorepo level, installing dependencies.

You need to prepare by building and bundling squiggle-lang

cd ../squiggle-lang
yarn build

If you've otherwise done this recently you can skip those.

Run a development server

yarn start