diff --git a/packages/react/components/Echart/index.mjs b/packages/react/components/Echart/index.mjs
index 4c38b4d216a..66a5a8b9739 100644
--- a/packages/react/components/Echart/index.mjs
+++ b/packages/react/components/Echart/index.mjs
@@ -12,6 +12,25 @@ echarts.registerTheme('dark', {
backgroundColor: 'transparent',
})
+/**
+ * A component to provide Echart functionality.
+ *
+ * This is a wrapper around Apache Echarts. The option prop is for echarts.
+ *
+ * @component
+ * @param {object} props - All component props
+ * @param {object} [props.option = false] - The Echarts option object. This is
+ * marked as optional because this component will show a loading message when
+ * option is not an object. However, that is intended for use-cases where
+ * option relies on async code. This component is pointless if you do not
+ * (eventually) pass it an option prop.
+ * @param {string} [props.theme = 'light'] - The theme to use for echarts. Supports 'light' and 'dark'.
+ * @param {number} [props.h = 400] - The height of the chart, in pixels. Charts
+ * are rendered as SVG, we need to set a height because without a height, some
+ * browsers will not properly render the SVG element. This is an Echart
+ * limitation.
+ * @returns {JSX.Element}
+ */
export const ChartWrapper = ({ option = false, theme = 'light', h = 400 }) => {
return option ? (
diff --git a/packages/react/mkdocs.sh b/packages/react/mkdocs.sh
index d5089a8a14d..9c8c531afc6 100755
--- a/packages/react/mkdocs.sh
+++ b/packages/react/mkdocs.sh
@@ -9,3 +9,4 @@ jsdoc -c jsdoc.json components/Collection/* > ../../sites/dev/prebuild/jsdoc/rea
jsdoc -c jsdoc.json components/Control/* > ../../sites/dev/prebuild/jsdoc/react/components/control.json
jsdoc -c jsdoc.json components/CuratedSet/* > ../../sites/dev/prebuild/jsdoc/react/components/curatedset.json
jsdoc -c jsdoc.json components/Docusaurus/* > ../../sites/dev/prebuild/jsdoc/react/components/docusaurus.json
+jsdoc -c jsdoc.json components/Echart/* > ../../sites/dev/prebuild/jsdoc/react/components/echart.json
diff --git a/sites/dev/docs/reference/packages/react/components/echart/_examples.js b/sites/dev/docs/reference/packages/react/components/echart/_examples.js
new file mode 100644
index 00000000000..b16e5156695
--- /dev/null
+++ b/sites/dev/docs/reference/packages/react/components/echart/_examples.js
@@ -0,0 +1,103 @@
+import React from 'react'
+import { ChartWrapper } from '@freesewing/react/components/Echart'
+
+// Taken from https://echarts.apache.org/examples/en/editor.html?c=area-stack
+const option = {
+ title: {
+ text: 'Stacked Area Chart'
+ },
+ tooltip: {
+ trigger: 'axis',
+ axisPointer: {
+ type: 'cross',
+ label: {
+ backgroundColor: '#6a7985'
+ }
+ }
+ },
+ legend: {
+ data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
+ },
+ toolbox: {
+ feature: {
+ saveAsImage: {}
+ }
+ },
+ grid: {
+ left: '3%',
+ right: '4%',
+ bottom: '3%',
+ containLabel: true
+ },
+ xAxis: [
+ {
+ type: 'category',
+ boundaryGap: false,
+ data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
+ }
+ ],
+ yAxis: [
+ {
+ type: 'value'
+ }
+ ],
+ series: [
+ {
+ name: 'Email',
+ type: 'line',
+ stack: 'Total',
+ areaStyle: {},
+ emphasis: {
+ focus: 'series'
+ },
+ data: [120, 132, 101, 134, 90, 230, 210]
+ },
+ {
+ name: 'Union Ads',
+ type: 'line',
+ stack: 'Total',
+ areaStyle: {},
+ emphasis: {
+ focus: 'series'
+ },
+ data: [220, 182, 191, 234, 290, 330, 310]
+ },
+ {
+ name: 'Video Ads',
+ type: 'line',
+ stack: 'Total',
+ areaStyle: {},
+ emphasis: {
+ focus: 'series'
+ },
+ data: [150, 232, 201, 154, 190, 330, 410]
+ },
+ {
+ name: 'Direct',
+ type: 'line',
+ stack: 'Total',
+ areaStyle: {},
+ emphasis: {
+ focus: 'series'
+ },
+ data: [320, 332, 301, 334, 390, 330, 320]
+ },
+ {
+ name: 'Search Engine',
+ type: 'line',
+ stack: 'Total',
+ label: {
+ show: true,
+ position: 'top'
+ },
+ areaStyle: {},
+ emphasis: {
+ focus: 'series'
+ },
+ data: [820, 932, 901, 934, 1290, 1330, 1320]
+ }
+ ]
+}
+
+export const ChartWrapperExample = () =>
+
diff --git a/sites/dev/docs/reference/packages/react/components/echart/readme.mdx b/sites/dev/docs/reference/packages/react/components/echart/readme.mdx
index 9b5cfbc0434..22e9207f051 100644
--- a/sites/dev/docs/reference/packages/react/components/echart/readme.mdx
+++ b/sites/dev/docs/reference/packages/react/components/echart/readme.mdx
@@ -2,6 +2,33 @@
title: Echart
---
-:::note
-This page is yet to be created
+import { DocusaurusDoc } from '@freesewing/react/components/Docusaurus'
+import { ComponentDocs } from '@site/src/components/component-docs.js'
+import { jsdocChartWrapper } from '@site/prebuild/jsdoc/components.echart.mjs'
+import { ChartWrapperExample } from './_examples.js'
+
+
+
+The **Echart** component family provides the following components:
+
+- [ChartWrapper](#chartwrapper)
+
+In addition, it also exports the following objects:
+
+- [echarts](#echarts)
+
+## EchartWrapper
+
+
+
+## echarts
+
+This is a re-export of [Apache Echarts](https://echarts.apache.org/).
+
+:::tip
+#### Not FreeSewing code
+We re-export echarts
for convenience.
+Please refer to the documentation for [Apache Echarts](https://echarts.apache.org/).
:::
+
+