diff --git a/packages/vx-demo/pages/arcs.js b/packages/vx-demo/pages/arcs.js
index 80f9100a4..664e78030 100644
--- a/packages/vx-demo/pages/arcs.js
+++ b/packages/vx-demo/pages/arcs.js
@@ -16,196 +16,87 @@ export default () => {
title="Arcs"
>
{`import React from 'react';
-import { AreaClosed, Line, Bar } from '@vx/shape';
-import { appleStock } from '@vx/mock-data';
-import { curveMonotoneX } from '@vx/curve';
-import { LinearGradient } from '@vx/gradient';
-import { GridRows, GridColumns } from '@vx/grid';
-import { scaleTime, scaleLinear } from '@vx/scale';
-import { withTooltip, Tooltip } from '@vx/tooltip';
-import { localPoint } from '@vx/event';
-import { extent, max, bisector } from 'd3-array';
-import { timeFormat } from 'd3-time-format';
+import { Arc } from '@vx/shape';
+import { Group } from '@vx/group';
+import { GradientPinkBlue } from '@vx/gradient';
+import { letterFrequency, browserUsage } from '@vx/mock-data';
-const stock = appleStock.slice(800);
-const formatDate = timeFormat("%b %d, '%y");
+const letters = letterFrequency.slice(0, 4);
+const browsers = Object.keys(browserUsage[0])
+ .filter(k => k !== "date")
+ .map(k => ({ label: k, usage: browserUsage[0][k] }));
-// accessors
-const xStock = d => new Date(d.date);
-const yStock = d => d.close;
-const bisectDate = bisector(d => new Date(d.date)).left;
-
-class Area extends React.Component {
- render() {
- const {
- width,
- height,
- margin,
- showTooltip,
- hideTooltip,
- tooltipData,
- tooltipTop,
- tooltipLeft,
- events,
- } = this.props;
- if (width < 10) return null;
-
- // bounds
- const xMax = width - margin.left - margin.right;
- const yMax = height - margin.top - margin.bottom;
-
- // scales
- const xScale = scaleTime({
- range: [0, xMax],
- domain: extent(stock, xStock),
- });
- const yScale = scaleLinear({
- range: [yMax, 0],
- domain: [0, max(stock, yStock) + yMax / 3],
- nice: true,
- });
-
- return (
-
-
- {tooltipData &&
-
-
- {\`\$\${yStock(tooltipData)}\`}
-
-
- {formatDate(xStock(tooltipData))}
-
-
}
-
- );
- }
+function Label({ x, y, children }) {
+ return (
+
+ {children}
+
+ );
}
-export default withTooltip(Area);`}
+export default ({
+ width,
+ height,
+ events = false,
+ margin = {
+ top: 30,
+ left: 20,
+ right: 20,
+ bottom: 110,
+ }
+}) => {
+ if (width < 10) return null;
+ const radius = Math.min(width, height) / 2;
+ return (
+
+ );
+}`}
);
};
diff --git a/packages/vx-demo/pages/areas.js b/packages/vx-demo/pages/areas.js
index 77b2aadf8..51c58a38a 100644
--- a/packages/vx-demo/pages/areas.js
+++ b/packages/vx-demo/pages/areas.js
@@ -4,89 +4,207 @@ import Areas from '../components/tiles/area';
export default () => {
return (
-
-{`import React from 'react';
-import { AreaClosed } from '@vx/shape';
-import { Rows, Columns } from '@vx/grid';
-import { curveMonotoneX } from '@vx/curve';
+
+ {`import React from 'react';
+import { AreaClosed, Line, Bar } from '@vx/shape';
import { appleStock } from '@vx/mock-data';
+import { curveMonotoneX } from '@vx/curve';
import { LinearGradient } from '@vx/gradient';
+import { GridRows, GridColumns } from '@vx/grid';
import { scaleTime, scaleLinear } from '@vx/scale';
-import { extent, max } from 'd3-array';
+import { withTooltip, Tooltip } from '@vx/tooltip';
+import { localPoint } from '@vx/event';
+import { extent, max, bisector } from 'd3-array';
+import { timeFormat } from 'd3-time-format';
const stock = appleStock.slice(800);
+const formatDate = timeFormat("%b %d, '%y");
// accessors
const xStock = d => new Date(d.date);
const yStock = d => d.close;
+const bisectDate = bisector(d => new Date(d.date)).left;
-export default ({
- width,
- height,
- margin,
-}) => {
+class Area extends React.Component {
+ render() {
+ const {
+ width,
+ height,
+ margin,
+ showTooltip,
+ hideTooltip,
+ tooltipData,
+ tooltipTop,
+ tooltipLeft,
+ events,
+ } = this.props;
+ if (width < 10) return null;
- // bounds
- const xMax = width - margin.left - margin.right;
- const yMax = height - margin.top - margin.bottom;
+ // bounds
+ const xMax = width - margin.left - margin.right;
+ const yMax = height - margin.top - margin.bottom;
- // scales
- const xScale = scaleTime({
- range: [0, xMax],
- domain: extent(stock, xStock),
- });
- const yScale = scaleLinear({
- range: [yMax, 0],
- domain: [0, max(stock, yStock) + yMax / 3],
- nice: true,
- });
+ // scales
+ const xScale = scaleTime({
+ range: [0, xMax],
+ domain: extent(stock, xStock),
+ });
+ const yScale = scaleLinear({
+ range: [yMax, 0],
+ domain: [0, max(stock, yStock) + yMax / 3],
+ nice: true,
+ });
- return (
-
- );
-}`}
+ return (
+
+
+ {tooltipData &&
+
+
+ {\`\$\${yStock(tooltipData)}\`}
+
+
+ {formatDate(xStock(tooltipData))}
+
+
}
+
+ );
+ }
+}
+
+export default withTooltip(Area);`}
);
-}
+};